Service-orientation

Software design paradigm

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.[1][2]

## History of service-orientation principles and tenets[edit]

Service-orientation has received a lot of attention since 2003[3] 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.[4] The paradigm lost momentum in 2009;[5] 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.[6]

Service-orientation inherits a small 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 there will always be a need for both.[7] Services also inherit a number of features of software components, including

* Multiple-use
* Non-context-specific
* Composable
* 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.

## Essential characteristics[edit]

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:

1. Boundaries are explicit
2. Services are autonomous
3. Services share schema and contract, not class
4. Service compatibility is based on policy

Other vendors and independent consultants have published their definitions 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[8] entitled "Impact of service orientation at the business level"[9] 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): Allen, Paul (2006). Service Orientation Winning Strategies and Best Practices. Cambridge University Press. ISBN 978-0521843362.

1. Transparence
* Smoothness of customer's experience in using the service.
2. Customer fit
* Ability to tailor offerings to variations in customer needs.
3. Partner connectivity
* Ability to use 3rd parties for performing commodity services
* Ability to offer a service to different partners
4. Adaptation
* Adapting to the changes in the marketplace.
5. Multi-channel capability
* Support the customer end-to-end through process, using different channels to achieve continuity.
* Offering same service through different channels.
6. Optimization
* Offering services in real time at high performance levels.
7. 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.

## See also[edit]

* Loose coupling
* Service-oriented architecture (SOA)
* Service granularity principle
* Service-oriented modeling
* Software architecture
* Service-oriented communications (SOC)

## References[edit]

1. ^ Erl, Thomas. "SOA Principles".
2. ^ "Service-Oriented Software Engineering".
3. ^ "Gartner's Hype Cycle Special Report for 2005" (PDF).
4. ^ Erl, Thomas. "What Is SOA? - Introduction".
5. ^ "SOA is Dead; Long Live Services". Application Platform Strategies Blog.
6. ^ Liebhart, Daniel. SOA goes real. Hanser, 2007, p. 22
7. ^ "Elements of Service-Oriented Analysis and Design". www.ibm.com. 2 June 2004.
8. ^ "IBM Journal of Research & Development". www.research.ibm.com. 23 October 2017.
9. ^ "IBM Journal of Research & Development". www.research.ibm.com. 23 October 2017.

## Further reading[edit]

* 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.