Abstract
As more and more enterprise systems endeavour to interconnect seamlessly by using a service-oriented architecture (SOA) a number of challenges are beginning to surface as a result of the differences in understanding between object-orientated programming (OOP) and service-orientation in technical development teams. These differences are thus explored to determine the potential of subsidising gaps in knowledge through relational learning in order to better prepare development environments for service migration. It emerges that the principles of service-oriented programming can be used within OOP by selectively identifying the existing knowledge found within object-orientation and traditional programming methodologies. The benefit of this approach proposes to lever the expertise of object-oriented developers so as to build service-ready computer software and encourage the seamlessness of SOA.
Similar content being viewed by others
References
Allen P (2006) Service orientation: winning stratergies and best practices. Cambridge University Press, New York
Armstrong J (1997) The development of erlang. SIGPLAN Not 32(8):196–203. doi:10.1145/258949.258967
Arsanjani A (2005) Toward a pattern language for service-oriented architecture and integration, part 1: build a service eco-system. http://www.ibm.com/developerworks/webservices/library/ws-soa-soi/. Accessed 30 October 2011
Baarda PJ (2008) Your SOA needs a business case. http://www.via-nova-architectura.org/files/magazine/baarda.pdf. Accessed 18 February 2012
Bär H, Ciupke O (1998) Exploiting design heuristics for automatic problem detection. In: Workshop ion on object-oriented technology, ECOOP ’98. Springer, Berlin, pp 73–74
Brown P (2008) Implementing SOA: total architecture in practice. TIBCO Press Series, Prentice Hall
Buck D, Stucki DJ (2000) Design early considered harmful: graduated exposure to complexity and structure based on levels of cognitive development. SIGCSE Bull 32(1):75–79. doi:10.1145/331795.331817
Clark D (2006) Designing OOP solutions: identifying the class structure. In: Beginning object-oriented programming with VB 2005. Apress, pp 11–30. doi:10.1007/978-1-4302-0095-6
D’Andrea V, Aiello M, Aiello M (2003) Services and objects: open issues. In: European workshop on OO and web service, pp 23–29
Dov D (2007) SOA for services or UML for objects: reconciliation of the battle of giants with object-process methodology. In: SwSTE. IEEE Computer Society, Herzlia, pp 147–156. doi:10.1109/SwSTE.2007.10
Erl T (2007) SOA principles of service design (the Prentice Hall service-oriented computing series from Thomas Erl). Prentice Hall, Upper Saddle River
Erl T (2008) Service-orientation and object-orientation part I: a comparison of goals and concepts. http://www.soamag.com/I15/0208-4.php. Accessed 29 January 2011
Fowler M (1999) Refactoring: improving the design of existing code. Addison-Wesley, Boston
Freeman E, Freeman E, Bates B, Sierra K (2004) Head first design patterns. O’ Reilly & Associates, Inc.
Gamma E, Helm R, Johnson RE, Vlissides J (1994) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Reading
Glen S (2008) Polymorphic web services, part 1: polymorphic data. http://www.ibm.com/developerworks/xml/library/ws-polymorphic/. Accessed 07 December 2012
Goedicke M, Neumann G, Zdun U (2001) Message redirector. In: Proceedings of EuroPloP 2001, sixth European conference on pattern languages of programs, Irsee
Graham I, O’Callaghan A, Wills A (2000) Object-oriented methods: principles and practice. Addison-Wesley Object Technology Series. Addison-Wesley, Reading
Guizzardi G, Wagner G, van Sinderen M (2004) A formal theory of conceptual modeling universals. In: Workshop on philosophy and informatics (WSPI). Deutsches Forchungszentrum fur Kunstliche Intelligenz, Cologne
Hoffman K (2006) Microsoft Visual C# 2005 Unleashed, chap. Designing for service-oriented architectures (SOA). Pearson Education, India
Holland S, Griffiths R, Woodman M (1997) Avoiding object misconceptions. SIGCSE Bull 29(1):131–134. doi:10.1145/268085.268132
IBM (2003) Rational process library. http://www.ibm.com/software/awdtools/rmc/library/. Accessed 05 December 2012
IBM (2004) Service-oriented modeling and architecture. http://www.ibm.com/developerworks/library/ws-soa-design1/. Accessed 07 December 2012
Johnson RE, Foote B (1988) Designing reusable classes. J Object Orient Program 1(2):22–35
Josuttis NM (2007) SOA in practice: the art of distributed system design. O’Reilly, Beijing
Karsten R, Roth RM (1998) The relationship of computer experience and computer self-efficacy to performance in introductory computer literacy courses. J Res Comput Educ 31(1):14–24
Koskela M, Rahikainen M, Wan T (2007) Software development methods: SOA vs. CBD, OO and AOP. http://www.soberit.hut.fi/t-86/t-86.5165/2007/final_koskela_rahikainen_wan.pdf. Accessed 20 December 2010
Marks EA (2008) Service-oriented architecture (SOA) governance for the services driven enterprise. Wiley, New York
Mcbeath J (2010) Scala pros and cons. http://www.scala-lang.org/node/8462. Accessed 30 October 201
Mittal K (2010) Service oriented unified process (soup). http://www.kunalmittal.com/html/soup.html. Accessed 24 December 2012
Papazoglou MP, Heuvel WJ (2007) Service oriented architectures: approaches, technologies and research issues. VLDB J 16(3):389–415. doi:10.1007/s00778-007-0044-3
Papazoglou MP, Traverso P, Ricerca I, Tecnologica S (2007) Service-oriented computing: state of the art and research challenges. IEEE Comput 40:38–45
Ragonis N (2004) Teaching object-oriented programming to novices. Ph.D. thesis, Weizmann Institute of Science
Ragonis N, Ben-Ari M (2005) A long-term investigation of the comprehension of OOP concepts by novices. Comput Sci Educ 15:203–221. doi:10.1080/08993400500224310
Riel AJ (1996) Object-oriented design heuristics, 1st edn. Addison-Wesley, Reading
Rosen M, Lublinsky B, Smith KT, Balcer MJ (2008) Applied SOA: service-oriented architecture and design strategies. Wiley, New York (2008)
Scala (2008) The scala programming language. http://www.scala-lang.org/node/25. Accessed 30 October 2012
Udell J (2005) The spiral staircase of SOA. InfoWorld 27(40):46–46
Voigt J (2009) Characterising the use of encapsulation in object-oriented systems
Yang J, Papazoglou MP (2004) Service components for managing the life-cycle of service compositions. Inf Syst 29(2):97–125. doi:10.1016/S0306-4379(03)00051-6
Zdun U (2008) Pattern-based design of a service-oriented middleware for remote object federations. ACM Trans Internet Technol 8(3):15:1–15:38 (2008). doi:10.1145/1361186.1361191
Zimmermann O (2009) SOA decision modeling (SOAD). http://soadecisions.org/soad.htm. Accessed 17 December 2012
Zimmermann O, Schlimm N, Waller G, Pestel M (2005) Analysis and design techniques for service-oriented development and, integration. pp 606–611
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Stubbings, G., Polovina, S. Levering object-oriented knowledge for service-oriented proficiency. Computing 95, 817–835 (2013). https://doi.org/10.1007/s00607-013-0304-6
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00607-013-0304-6
Keywords
- Object-orientation
- Service-orientation
- Developer capability
- Expertise
- Programming approach
- Knowledge transfer
- Service-ready