EMPIRICALLY ASSESSING THE IMPACT OF DEPENDENCY INJECTION ON THE DEVELOPMENT OF WEB SERVICE APPLICATIONS
Keywords:
service-oriented computing, Web Services, dependency injection, code-first outsourcing, text miningAbstract
Service-Oriented Computing (SOC) has been broadly conceived as the next big thing in distributed software development. The software industry has embraced SOC through Web Services –functionality that is accessible via ubiquitous protocols such as HTTP–. This technology provides the basis for reuse and interoperability of applications across the WWW. However, consuming Web Services is still an expensive task in terms of de- velopment costs, since developers still have to invest much effort not only into manually discovering services, but also on providing code to invoke them, which leads to software that is polluted with service-aware code and therefore is more difficult to modify and test. Recently, a technique that has become very popular for building software is Dependency Injection (DI), which allows applications to be far more testable and maintainable. In this paper, we quantitatively analyze some of the benefits and costs of DI for building Web Service applications. We base our experiments on a refined version of DI that com- bines text-mining, machine learning, and best practices from component-based software development to simplify the way Web Services are discovered and consumed. To our knowledge, this is the first study on the impacts of using DI in the context of SOC.
Downloads
References
Michael N. Huhns and Munindar P. Singh. Service-oriented computing: Key concepts and principles.
IEEE Internet Computing, 9(1):75–81, 2005.
Martin Bichler and Kwei-Jay Lin. Service-oriented computing. IEEE Computer, 39(3):99–101,
Steven J. Vaughan-Nichols. Web Services: Beyond the hype. Computer, 35(2):18–21, 2002.
Francisco Curbera, Rania Khalaf, Nirmal Mukhi, Stefan Tai, and Sanjiva Weerawarana. The next
step in Web Services. Communications of the ACM, 46(10):29–34, 2003.
W3C Consortium. WSDL version 2.0 part 1: Core language. W3C Candidate Recommendation,
http://www.w3.org/TR/wsdl20, June 2007.
OASIS Consortium. UDDI version 3.0.2. UDDI Spec Technical Committee Draft, http://uddi.
org/pubs/uddi_v3.htm, October 2004.
Rob McCool. Rethinking the Semantic Web. part I. IEEE Internet Computing, 9(6):88, 86–87,
Hongbing Wang, Joshua Zhexue Huang, Yuzhong Qu, and Junyuan Xie. Web Services: Problems
and future directions. Journal of Web Semantics, 1(3):309–320, 2004.
John Garofalakis, Yannis Panagis, Evangelos Sakkopoulos, and Athanasios Tsakalidis. Contemporary
Web Service discovery mechanisms. Journal of Web Engineering, 5(3):265–290, 2006.
Marco Crasso, Alejandro Zunino, and Marcelo Campo. Easy Web Service discovery: a Query-by-
Example approach. Science of Computer Programming, 71(2):144–164, 2008.
Matthew J. Duftler, Nirmal K. Mukhi, Aleksander Slominski, and Sanjiva Weerawarana. Web
Services Invocation Framework (WSIF). In Workshop on Object-Oriented Web Services (OOWS
’01) - ACM Conference on Object-Oriented Programming, Systems, Languages and Applications
(OOPSLA ’01), Tampa, Florida, USA, New York, NY, USA, 2001. ACM Press.
Apache Software Foundation. Apache CXF: An Open Source Service Framework. http://cxf.
apache.org, 2009.
Massimo Paolucci and Katia Sycara. Autonomous semantic Web Services. IEEE Internet Com-
puting, 7(5):34–41, 2003.
Rod Johnson. J2EE development frameworks. Computer, 38(1):107–110, 2005.
Ekaterina Razina and David Janzen. Effects of Dependency Injection on maintainability. In
th IASTED International Conference on Software Engineering and Applications (SEA ’07),
Cambridge, MA, USA, Calgary, AB, Canada, 2007. ACTA Press.
Hong Yul Yang, E. Tempero, and H. Melton. An empirical study into use of dependency injection
in java. In Liang-Jie Zhang, editor, 19th Australian Conference on Software Engineering (ASWEC
’08), pages 239–247, Perth, WA, USA, March 2008. IEEE Computer Society.
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of
Reusable Object-Oriented Software. Addison-Wesley, Reading, MA, USA, 1995.
M. Brian Blake, Daniel R. Kahan, and Michael Fitzgerald Nowlan. Context-aware agents for useroriented
Web Services discovery and execution. Distributed and Parallel Databases, 21(1):39–58,
Nektarios Dourdas, Xiaohong Zhu, Neil Maiden, Sara Jones, and Konstantinos Zachos. Discovering
remote software services that satisfy requirements: Patterns for query reformulation. In Advanced
Information Systems Engineering, volume 4001 of Lecture Notes in Computer Science, pages 239–
Springer-Verlag, 2006.
Clemens Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley,
Boston, MA, USA, 2002.
Mike P. Papazoglou and Willem-Jan Heuvel. Service Oriented Architectures: Approaches, technologies
and research issues. The VLDB Journal, 16(3):389–415, 2007.
Jack Greenfield, Keith Short, Steve Cook, and Stuart Kent. Software Factories: Assembling Ap-
plications with Patterns, Models, Frameworks, and Tools. John Wiley & Sons, 2004.
Robert R. Korfhage. Information Storage and Retrieval. John Wiley & Sons, New York, NY,
USA, 1997.
Gerad Salton, A. Wong, and C. S. Yang. A vector space model for automatic indexing. Commu-
nications of the ACM, 18(11):613–620, 1975.
Martin F. Porter. An algorithm for suffix stripping. In Readings in Information Retrieval, pages
–316. Morgan-Kaufmann Publishers, San Francisco, CA, USA, 1997.
Padmal Vitharana, Hemant Jain, and Fatemeh Zahedi. Strategy-based design of reusable business
components. IEEE Transactions on Systems, Man, and Cybernetics, 34(4):460–474, November
Parag C. Pendharkar and James A. Rodger. An empirical study of factors impacting the size
of object-oriented component code documentation. In 20th annual international Conference on
Computer Documentation (SIGDOC ’02), Toronto, Ontario, Canada, pages 152–156, New York,
NY, USA, 2002. ACM Press.
Diomidis Spinellis. The way we program. IEEE Software, 25(4):89–91, 2008.
Eclipse Foundation. Eclipse Java Development Tools (JDT). http://www.eclipse.org/jdt, 2009.
Eclipse Foundation. Web Tools Platform (WTP) Project. http://www.eclipse.org/webtools,
Andreas Heß, Eddie Johnston, and Nicholas Kushmerick. ASSAM: A tool for semi-automatically
annotating semantic Web Services. In The Semantic Web - ISWC 2004, volume 3298 of Lecture
Notes in Computer Science, pages 320–334. Springer-Verlag, 2004.
Eugene Agichtein, Eric Brill, Susan Dumais, and Robert Ragno. Learning user interaction models
for predicting web search result preferences. In 29th Annual International ACM SIGIR Conference
on Research and Development in Information Retrieval (SIGIR ’06), Seattle, Washington, USA,
pages 3–10, New York, NY, USA, 2006. ACM Press.
Apache Software Foundation. jUDDI. http://ws.apache.org/juddi, 2009.
Rod Johnson and Juergen Hoeller. Expert One-on-One J2EE Development without EJB. John
Wiley & Sons, 2004.
PicoContainer Committers. PicoContainer. http://www.picocontainer.org, 2008.
SpringSource. The Spring Framework. http://www.springsource.org, 2009.
Apache Software Foundation. HiveMind. http://hivemind.apache.org, 2009.
Vítor Estêv ao Silva Souza and Ricardo de Almeida Falbo. FrameWeb: A framework-based design
method for web engineering. In 2007 Euro American Conference on Telematics and Information
Systems (EATIS ’07), Faro, Portugal, pages 1–8, New York, NY, USA, 2007. ACM Press.
Cristian Mateos, Alejandro Zunino, and Marcelo Campo. Grid-Enabling Applications with
JGRIM. International Journal of Grid and High Performance Computing, 1(3):52–72, 2009.
Malcolm Atkinson, David DeRoure, Alistair Dunlop, Geoffrey Fox, Peter Henderson, Tony Hey,
Norman Paton, Steven Newhouse, Savas Parastatidis, Anne Trefethen, Paul Watson, and Jim
Webber. Web Service Grids: An evolutionary approach. Concurrency and Computation: Practice
and Experience, 17(2-4):377–389, 2005.
John Erickson and Keng Siau. Web Service, Service-Oriented Computing, and Service-Oriented
Architecture: Separating hype from reality. Journal of Database Management, 19(3):42–54, 2008.
María Agustina Cibrán, Bart Verheecke, Wim Vanderperren, Davy Suvée, and Viviane Jonckers.
Aspect-oriented programming for dynamic Web Service selection, integration and management.
World Wide Web, 10(3):211–242, 2007.
Marisol Pérez Reséndiz and José Oscar Olmedo Aguirre. Dynamic invocation of Web Services by
using aspect-oriented programming. 2nd International Conference on Electrical and Electronics
Engineering, pages 48–51, 2005.
Shuping Ran. A model for Web Services discovery with QoS. SIGecom Exchanges, 4(1):1–10,
Hamid Reza Motahari Nezhad, Boualem Benatallah, Axel Martens, Francisco Curbera, and Fabio
Casati. Semi-automated adaptation of service interactions. In Proceedings of the 16th international
conference on World Wide Web (WWW ’07), Banff, Alberta, Canada, pages 993–1002, New York,
NY, USA, 2007. ACM Press.
Michael Schäfer, Peter Dolog, and Wolfgang Nejdl. An environment for flexible advanced compensations
of Web Service transactions. ACM Transactions on the Web, 2(2):1–36, 2008.
Ioana Manolescu, Marco Brambilla, Stefano Ceri, Sara Comai, and Piero Fraternali. Modeldriven
design and deployment of service-enabled Web applications. ACM Transactions on Internet
Technology, 5(3):439–479, 2005.