Service-orientation

Last updated

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]

Contents

History of service-orientation principles and tenets

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

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

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

Related Research Articles

A design pattern is the re-usable form of a solution to a design problem. The idea was introduced by the architect Christopher Alexander and has been adapted for various other disciplines, particularly software engineering.

Middleware in the context of distributed applications is software that provides services beyond those provided by the operating system to enable the various components of a distributed system to communicate and manage data. Middleware supports and simplifies complex distributed applications. It includes web servers, application servers, messaging and similar tools that support application development and delivery. Middleware is especially integral to modern information technology based on XML, SOAP, Web services, and service-oriented architecture.

In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. SOA is a good choice for system integration. By consequence, it is also applied in the field of software design where services are provided to the other components by application components, through a communication protocol over a network. A service is a discrete unit of functionality that can be accessed remotely and acted upon and updated independently, such as retrieving a credit card statement online. SOA is also intended to be independent of vendors, products and technologies.

<span class="mw-page-title-main">Enterprise service bus</span> Communication system in a service-oriented architecture

An enterprise service bus (ESB) implements a communication system between mutually interacting software applications in a service-oriented architecture (SOA). It represents a software architecture for distributed computing, and is a special variant of the more general client-server model, wherein any application may behave as server or client. ESB promotes agility and flexibility with regard to high-level protocol communication between applications. Its primary use is in enterprise application integration (EAI) of heterogeneous and complex service landscapes.

In computing and systems design, a loosely coupled system is one

  1. in which components are weakly associated with each other, and thus changes in one component least affect existence or performance of another component.
  2. in which each of its components has, or makes use of, little or no knowledge of the definitions of other separate components. Subareas include the coupling of classes, interfaces, data, and services. Loose coupling is the opposite of tight coupling.
<span class="mw-page-title-main">RM-ODP</span> Reference model in computer science

Reference Model of Open Distributed Processing (RM-ODP) is a reference model in computer science, which provides a co-ordinating framework for the standardization of open distributed processing (ODP). It supports distribution, interworking, platform and technology independence, and portability, together with an enterprise architecture framework for the specification of ODP systems.

SOA Governance is a set of processes used for activities related to exercising control over services in a service-oriented architecture (SOA). One viewpoint, from IBM and others, is that SOA governance is an extension (subset) of IT governance which itself is an extension of corporate governance. The implicit assumption in this view is that services created using SOA are just one more type of IT asset in need of governance, with the corollary that SOA governance does not apply to IT assets that are "not SOA". A contrasting viewpoint, expressed by blogger Dave Oliver and others, is that service orientation provides a broad organising principle for all aspects of IT in an organisation — including IT governance. Hence SOA governance is nothing but IT governance informed by SOA principles.

<span class="mw-page-title-main">Kerrie Holley</span> American computer scientist

Kerrie Lamont Holley is an American computer scientist, software engineer, author, and inventor. Former Google executive and architect specializing in the healthcare industry with expertise in artificial intelligence, large language models and generative AI. Now pursuing selective endeavors following a distinguished career in tech.

Service-oriented modeling is the discipline of modeling business and software systems, for the purpose of designing and specifying service-oriented business systems within a variety of architectural styles and paradigms, such as application architecture, service-oriented architecture, microservices, and cloud computing.

Service Component Architecture (SCA) is a software technology designed to provide a model for applications that follow service-oriented architecture principles. The technology, created by major software vendors, including IBM, Oracle Corporation and TIBCO Software, encompasses a wide range of technologies and as such is specified in independent specifications to maintain programming language and application environment neutrality. Many times it uses an enterprise service bus (ESB).

Service-orientation design principles are proposed principles for developing the solution logic of services within service-oriented architectures (SOA).

In the domain of the service-orientation design paradigm, the Enterprise Inventory is a design pattern by Thomas Erl that answers the question, "How can services be delivered to maximize recomposition?"; the application of this pattern results in a standardized enterprise-wide service inventory that fosters repeated service composition.

The standardized service contract is a software design principle applied within the service-orientation design paradigm to guarantee that service contracts within a service inventory adhere to the same set of design standards. This facilitates standardized service contracts across the service inventory.

Service statelessness is a design principle that is applied within the service-orientation design paradigm, in order to design scalable services by separating them from their state data whenever possible. This results in reduction of the resources consumed by a service as the actual state data management is delegated to an external component or to an architectural extension. By reducing resource consumption, the service can handle more requests in a reliable manner.

In computing, service composability is a design principle, applied within the service-orientation design paradigm, that encourages the design of services that can be reused in multiple solutions that are themselves made up of composed services. The ability to recompose the service is ideally independent of the size and complexity of the service composition.

Domain Inventory is a design pattern, applied within the service-orientation design paradigm, whose application enables creating pools of services, which correspond to different segments of the enterprise, instead of creating a single enterprise-wide pool of services. This design pattern is usually applied when it is not possible to create a single inventory of services for whole of the enterprise by following the same design standards across the different segments of the enterprise. The Domain Inventory Design pattern by Thomas Erl asks, "How can services be delivered to maximize recomposition when enterprise-wide standardization is not possible?" and is discussed as part of this podcast.

Service layer is an architectural pattern, applied within the service-orientation design paradigm, which aims to organize the services, within a service inventory, into a set of logical layers. Services that are categorized into a particular layer share functionality. This helps to reduce the conceptual overhead related to managing the service inventory, as the services belonging to the same layer address a smaller set of activities.

In the context of software engineering and software architecture, service granularity is a key design concern when applying the paradigm of service-orientation for instance during service-oriented modeling. Service granularity specifies the scope of business functionality and the structure of the message payload in a service operation that is provided within a service-oriented architecture (SOA).

Thomas Erl is a Canadian author, and public speaker known for major contributions to the field of service-oriented architecture. Author of eight books on Service Orientation, Erl defined eight widely accepted principles of service orientation.

The Open Group Future Airborne Capability Environment was formed in 2010 to define an open avionics environment for all military airborne platform types. Today, it is a real-time software-focused professional group made up of industry suppliers, customers, academia, and users. The FACE approach is a government-industry software standard and business strategy for acquisition of affordable software systems that promotes innovation and rapid integration of portable capabilities across programs. The FACE Consortium provides a vendor-neutral forum for industry and government to work together to develop and consolidate the open standards, best practices, guidance documents, and business strategy necessary to result in:

References

  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. Archived from the original on 2006-03-12.
  9. "Impact of service orientation at the business level". www.research.ibm.com. 23 October 2017. Archived from the original on 2006-03-12.

Further reading