HOME

TheInfoList



OR:

Service-orientation is a
design paradigm A design is a plan or specification for the construction of an object or system or for the implementation of an activity or process or the result of that plan or specification in the form of a prototype, product, or process. The verb ''to design'' ...
for
computer software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consists ...
in the form of
services Service may refer to: Activities * Administrative service, a required part of the workload of university faculty * Civil service, the body of employees of a government * Community service, volunteer service for the benefit of a community or a p ...
. The principles of service-oriented design stress the
separation of concerns In computer science, separation of concerns is a design principle for separating a computer program into distinct sections. Each section addresses a separate '' concern'', a set of information that affects the code of a computer program. A concern ...
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 Return on investment (ROI) or return on costs (ROC) is a ratio between net income (over a period) and investment (costs resulting from an investment of some resources at a point in time). A high ROI means the investment's gains compare favourably ...
, organisational
agility Agility or nimbleness is an ability to change the body's list of human positions, position quickly and requires the integration of isolated movement skills using a combination of balance (ability), balance, coordination (physiology), coordination ...
and
interoperability Interoperability is a characteristic of a product or system to work with other products or systems. While the term was initially defined for information technology or systems engineering services to allow for information exchange, a broader defi ...
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 A microservice architecture – a variant of the service-oriented architecture structural style – is an architectural pattern that arranges an application as a collection of loosely-coupled, fine-grained services, communicating through lightw ...
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 small number of principles from earlier paradigms including
object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pr ...
,
component-based software engineering Component-based software engineering (CBSE), also called component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a give ...
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 * 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

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 Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
Indigo (subsequently
Windows Communication Foundation The Windows Communication Foundation (WCF), previously known as Indigo, is a free and open-source runtime and a set of APIs in the .NET Framework for building connected, service-oriented applications. .NET Core 1.0, released 2016, did not sup ...
) 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 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 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 In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. By consequence, it is also applied in the field of software design where services are provide ...
and software oriented management. Allen's book defines seven Service-Oriented Viewpoints (labelled SOV7): #Transparence #*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 #Adaptation #*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. #Optimization #*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 In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. By consequence, it is also applied in the field of software design where services are provide ...
.


See also

*
Loose coupling In computing and systems design, a loosely coupled system is one # in which components are weakly associated (have breakable relationships) with each other, and thus changes in one component least affect existence or performance of another comp ...
*
Service-oriented architecture In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. By consequence, it is also applied in the field of software design where services are provide ...
(SOA) *
Service granularity principle 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 ...
*
Service-oriented modeling 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 arch ...
*
Software architecture Software architecture is the fundamental structure of a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations. ...
* Service-oriented communications (SOC)


References


Further reading

* * Luba Cherbakov et al. (2005).
Impact of service orientation at the business level
. IBM Systems Journal Oct 2005 * * * 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. {{DEFAULTSORT:Service-Orientation Service-oriented (business computing)