The principles of service-orientation part 1 of 6: Introduction to service-orientation [by Thomas Erl]

转载 2006年06月01日 15:10:00
 This is the first article in a six-part series dedicated to exploring the common principles of service-orientation. Acclaimed author Thomas Erl shares his insights into the service-orientation design paradigm by providing excerpts from his second SOA book "Service-Oriented Architecture: Concepts, Technology, and Design", supplemented with additional commentary.

The adoption of SOA often comes with an expectation that many of the benefits commonly associated with service-oriented technology platforms will be realized simply through their successful implementation. However, some of the longer-term and more strategically significant goals of an SOA transition (such as the attainment of increased business agility) can really only be achieved to their full potential by applying a consistent approach to how automation logic is designed.

Before a service-oriented solution can be built, it needs to be understood what makes an individual service suitable for SOA in support of its strategic goals. In other words, the question of how services can be created to be truly service-oriented needs to be asked early on in the project lifecycle.

The answer lies in a design paradigm that has emerged to uniquely distinguish the service-oriented architectural model from its predecessors. This paradigm is service-orientation and its approach to modeling business automation logic has resulted in a set of commonly accepted principles that, when applied, position and shape the primitive components (services, descriptions, messages) found in a typical service-oriented environment.

In this series of articles we will initially explore how service-orientation principles can be applied to units of automation logic that constitute services. In the latter part of the series we then discuss how service-orientation as a paradigm can be applied beyond the individual service level to form service layers that encapsulate entire enterprise domains. For now, though, let's begin with a explanation of what service-orientation actually is.

Service-Orientation and the Separation of Concerns

Service-orientation has had many influences, but its roots lie in a software engineering theory known as the "separation of concerns." This theory is based on the notion that it is beneficial to break down a large problem into a series of smaller, individual problems or concerns. This allows the logic required to solve the larger problem to also be decomposed into a collection of smaller, related pieces. Each piece of logic addresses a specific concern.

The theory has already been implemented through established paradigms, such as object-orientation and component-based approaches. Service-orientation can be viewed as a distinct (and more recent) manner in which to realize a separation of concerns. More specifically, though, key service-orientation principles provide a unique approach to how the separation is performed. In doing so, these principles establish a foundation paradigm for SOA. If you study the common characteristics associated with contemporary implementations of SOA, you will notice that several are linked to how concerns have been separated.

The Common Principles of Service-Orientation

There are many opinions, originating from public IT organizations to vendors and consulting firms, about what constitutes service-orientation. As part of an on-going industry analysis initiative by SOA Systems Inc., I have been researching and assessing perspectives of service-orientation for quite some time. The purpose of this project is to identify and describe a set of common principles that are supported by all major SOA platforms, thereby establishing a real-world definition of the service-orientation paradigm. Our focus in this series is therefore centered around those principles that have become commonly accepted in the SOA industry and supported by corresponding vendor platforms.

The most recent results establish the following eight principles:

  • services share a formal contract
  • services are loosely coupled
  • services abstract underlying logic
  • services are composable
  • services are reusable
  • services are autonomous
  • services are stateless
  • services are discoverable

    Of these eight, autonomy, loose coupling, abstraction, and the need for a formal contract can be considered core principles that form a baseline foundation for SOA. Although each of the eight principles support or are supported by the others, these four directly enable the realization of the remaining principles. The study of inter-principle relationships is quite interesting and provides a deeper perspective of the unique dynamics introduced by service-orientation.

    It is also worth noting that Web services naturally support a subset of these principles, which provides an indication as to why the Web services technology platform is considered so suitable for building service-oriented solutions. Later in this series we will discuss some of the relationships between principles as well as how some are intrinsically realized through the use of Web services.

    What's Next

    To fully understand how service-orientation shapes service-oriented architecture, we need to explore the implications its application will have on all of the primary parts that comprise SOA. To kick-off this exploration, we will be focusing on loose coupling and the use of a formal contract as the first two of our principles, in part 2 of this series.

    This article contains excerpts from "Service-Oriented Architecture: Concepts, Technology, and Design" by Thomas Erl (792 pages, Hardcover, ISBN: 0131858580, Prentice Hall/Pearson PTR, Copyright 2006). For more information, visit

  • 相关文章推荐

    An example of using libexif to set JPEG Orientation Tag

    An example of using libexif to set JPEG Orientation Tag :

    翻译 Secrets of the JavaScript Ninja - 6.原型与面向对象(6.Object-orientation with prototypes)

    翻译 Secrets of the JavaScript Ninja (JavaScript忍者禁术) 第六章.原型与面向对象(6.Object-orientation with prototype...

    An introduction to the SOLID principles of OO design

    转自: I would be very...

    Principles of Digital Communications I 学习笔记1-Introduction

    Principles of Digital Communications I 学习笔记1-Introduction   按照惯例,先扯点闲话!早在大三刚学习通信原理的时候,我就做了一个决定,一定要将...

    Principles of Computing (Part 2) -- week 1

    1. The importance of Searching 2. Generators Generators are a kind of iterator that are defined l...

    <Principles of fMRI 1>课程笔记6--fMRI的噪音来源

    BOLD fMRI包含多种来源的噪音,与设备本身和被试本身相关噪音的来源-系统内自由电子的热运动-磁场和其梯度的不稳定性-头动及其对磁场的交互影响-生理影响:心跳、呼吸,co2浓度这些噪声如何在数据内...
    您举报文章:The principles of service-orientation part 1 of 6: Introduction to service-orientation [by Thomas Erl]