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 www.soabooks.com.

Python系列(一)之Python基础

本文个人博客地址:http://www.huweihuang.com/article/python/basics/python-basics/ 1. 数据类型和变量 Python使用缩进来组织代码...
  • huwh_
  • huwh_
  • 2017年12月09日 11:49
  • 138

[Erlang].erl文件的一生

最初形式 File.erl1.preprocessing(预处理) compile:file(File,['P']).2.expansion(扩展) compile:file(File,['E'])....
  • abv123456789
  • abv123456789
  • 2015年06月16日 12:35
  • 1501

用 Go 构建一个区块链 -- Part 6: 交易(2)

翻译的系列文章我已经放到了 GitHub 上:blockchain-tutorial,后续如有更新都会在 GitHub 上,可能就不在这里同步了。如果想直接运行代码,也可以 clone GitHub ...
  • simple_the_best
  • simple_the_best
  • 2017年11月06日 21:22
  • 3755

【神经网络】11行Python代码实现的神经网络

今天看了一篇神经网络的文章,作者用11行就实现了一个神经网络,原文地址:A Neural Network in 11 lines of Python (Part 1),深为叹服,翻译如下。 BP(...
  • zgljl2012
  • zgljl2012
  • 2017年06月06日 23:46
  • 584

erlang 简单测试

% 最简单的测试文件: -module(test). -compile(export_all). % 打印数据 start(Ab) ->     io:format("Vsn1 (~...
  • yangzm
  • yangzm
  • 2015年02月06日 13:36
  • 840

macOS开发入门教程: Part 3

原文:macOS Development for Beginners: Part 3 作者:Sarah Reichelt 译者:kmyhy 欢迎回到 macOS 开发入门教程三部曲的最后...
  • kmyhy
  • kmyhy
  • 2017年06月22日 09:05
  • 863

小论文之旅(2)——introduction与related work

今天总结一下自己看的文献内容和查看的一些建议。 首先,在不确定你的文章的main idea的时候,不要着急写introduction,可以先写body部分内容,之后再写introduction部分...
  • u013408431
  • u013408431
  • 2016年08月27日 20:22
  • 3041

rabbitMQ 队列 安装

这里我先吐槽一下 , 在网上我看过很多篇文章, 内容有深有qian
  • u010310183
  • u010310183
  • 2014年11月05日 17:09
  • 1136

【读书笔记】《推荐系统(recommender systems An introduction)》第一章 引言

很久没上来写blog,前两个月赶上校招季节,都忙校招去了。 这本书我早就买来了,不过我从前看过项亮的《推荐系统实践》,看这本书的目录结构和项亮那本差不多,就一直放着没看。最近在做一个推荐系统...
  • xceman1997
  • xceman1997
  • 2014年12月02日 22:57
  • 1348

【读书笔记】《推荐系统(recommender systems An introduction)》第三章 基于内容的推荐

基于内容的推荐的基本推荐思路是:用户喜欢幻想小说,这本书是幻想小说,则用户有可能喜欢这本小说 两方面要求:(1)知道用户的喜好;(2)知道物品的属性 基于内容的推荐相比协同过滤方法(个人观...
  • xceman1997
  • xceman1997
  • 2014年12月07日 21:51
  • 1125
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:The principles of service-orientation part 1 of 6: Introduction to service-orientation [by Thomas Erl]
举报原因:
原因补充:

(最多只允许输入30个字)