Service-orientation is a design paradigm for computer software in the form of services. The principles of service-oriented design stress the separation of concerns in the software. Applying service-orientation results in units of software partitioned into discrete, autonomous, and network-accessible units, each designed to solve an individual concern. These units qualify as services.
History of service-orientation principles and tenets
Service-orientation has received a lot of attention since 2003 due to the benefits it promises. These include increased return on investment, organisational agility and interoperability as well as a better alignment between business and IT. It builds heavily on earlier design paradigms and enhances them with standardisation, loose coupling and business involvement. The paradigm lost momentum in 2009; since 2014, renewed interest can be observed under the Microservices moniker. In technology, different vendor SOA platforms have used different definitions of service-orientation. Some vendors promote different principles and tenets over others, but a fair amount of commonality exists.
Service-orientation inherits a number of principles from earlier paradigms including object-oriented programming, component-based software engineering and open distributed processing. It is commonly acknowledged that several service-orientation principles have their roots in the object-oriented design paradigm. The two are complementary paradigms and that there will always be a need for both. Services also inherit a number of features of software components, including
- Encapsulated i.e., non-investigable through its interfaces
- A unit of independent deployment and versioning
Open Distributed Processing (ODP) combines the concepts of open systems and distributed computing, which are essential characteristics of service-orientation. The key features of ODP are all inherited by service-orientation, including federation, interoperability, heterogeneity, transparency and trading/broking.
Don Box was one of the first to provide a set of design guidelines referred to as his "four tenets of service-orientation", which he described primarily in relation to the Microsoft Indigo (subsequently Windows Communication Foundation) platform that was emerging at the time:
- Boundaries are explicit
- Services are autonomous
- Services share schema and contract, not class
- Service compatibility is based on policy
Other vendors and independent consultant have published their defnitions of service-orientation and SOA, for instance, N. Josuttis in "SOA in Practice" and D: Krafzig et al. in "Enterprise SOA". An article in the December 2005 edition of the IBM System Journal entitled "Impact of service orientation at the business level" provided a study of how the service-orientation paradigm relates to fundamental componentization and the IBM Component Business Model (CBM).
Paul Allen defines service orientation as a (business) paradigm, with three main components: business architecture, Service-oriented architecture and software oriented management. Allen's book defines seven Service-Oriented Viewpoints (labelled SOV7):
- Smoothness of customer’s experience in using the service.
- Customer fit
- Ability to tailor offerings to variations in customer needs.
- Partner connectivity
- Ability to use 3rd parties for performing commodity services
- Ability to offer a service to different partners
- Adapting to the changes in the marketplace.
- Multi-channel capability
- Support the customer end-to-end through process, using different channels to achieve continuity.
- Offering same service through different channels.
- Offering services in real time at high performance levels.
- One-stop experience
- Catering to different needs of the customers through one set of services.
Allen uses the viewpoints as starting point for stating questions during the design process.
Service-orientation has continued to receive increased recognition as an important part of the service-oriented computing landscape and a valid design approach to achieving service-oriented architecture.
- Loose coupling
- Service-oriented architecture (SOA)
- Service granularity principle
- Service-oriented modeling
- Software architecture
- Erl, Thomas. "SOA Principles".
- "Service-Oriented Software Engineering".
- "Gartner's Hype Cycle Special Report for 2005" (PDF).
- Erl, Thomas. "What Is SOA? - Introduction".
- Liebhart, Daniel. SOA goes real. Hanser, 2007, p. 22
- Allen, Paul (2006). Service Orientation, winning strategies and best practices. Cambridge, UK: Cambridge University Press. ISBN 9780521843362.
- Luba Cherbakov et al. (2005). "Impact of service orientation at the business level". IBM Systems Journal Oct 2005
- Josuttis, Nicolai (2007). SOA in Practice. Sebastopoal, CA, USA: O'Reilly. ISBN 978-0-596-52955-0.
- Rotem-Gal-Oz, Arnon (2012). SOA Patterns. Mannikng Publications. ISBN 978-1933988269.
- Jenny Ang, Luba Cherbakov, Mamdouh Ibrahim (2005). "SOA antipatterns". IBM Online article, Nov 2005.
- Ali Arsanjani (2004). "Service-Oriented Modeling & Architecture". IBM Online article, 09 Nov 2004.