11:SOA(面向服务架构)的定义体现了哪些内涵?
发布时间:2011年06月09日点击数: 作者:ITGov 来源:ITGov中国IT治理研究中心
【字体: 收藏 打印文章
摘要:
为了更好地理解SOA的内涵与内容,我们先关注一下各个厂商对它的定义。SOA最初的定义是由Gartner公司给出的,但到目前为止,由于各厂商、个人和专家对SOA的理解不同,所以出现了很多关于SOA的定义:

SOA(面向服务架构)的定义体现了哪些内涵?

为了更好地理解SOA的内涵与内容,我们先关注一下各个厂商对它的定义。SOA最初的定义是由Gartner公司给出的,但到目前为止,由于各厂商、个人和专家对SOA的理解不同,所以出现了很多关于SOA的定义:

则将SOA描述为:“客户端/服务器的软件设计方法,一项应用由软件服务和软件服务使用者组成……SOA与大多数通用的客户端/服务器模型的不同之处,在于它着重强调软件组件的松散耦合,并使用独立的标准接口。”

将SOA定义为:“其本质是服务的集合。服务间彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协调进行某些活动。服务间需要某些方法进行连接。所谓服务就是精确定义、封装完善、独立于其他服务所处环境和状态的函数。”

将SOA定义为:“按需连接资源的系统。在SOA中,资源被作为可通过标准方式访问的独立服务,提供给网络中的其他成员。与传统的系统结构相比,SOA规定了资源间更为灵活的松散耦合关系。”

这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。松耦合系统的好处有两点,一点是它的灵活性,另一点是,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。

对松耦合的系统需要来源于业务应用程序,需要根据业务的需要变得更加灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质。我们称能够灵活地适应环境变化的业务为按需(On demand)业务,在按需业务中,一旦需要,就可以对完成或执行任务的方式进行必要的更改。

由于SOA考虑到了系统内的对象,所以,虽然 SOA 是基于对象的,但是作为一个整体,它却不是面向对象的,而是面向服务的。不同之处在于接口本身。SOA 系统原型的一个典型例子是通用对象请求代理体系结构(Common Object Request Broker Architecture,CORBA),它已经出现很长时间了,其定义的概念与 SOA 相似。

现在的 SOA依赖于一些更新的进展,这些进展是以可扩展标记语言(eXtensible Markup Language,XML)为基础的。通过使用基于 XML 的语言( Web服务描述语言,Web Services Definition Language,缩写为WSDL)来描述接口,服务已经转到更动态且更灵活的接口系统中,非以前 CORBA 中的接口描述语言(Interface Definition Language,IDL)可比了。
Web服务并不是实现SOA的惟一方式, CORBA是另一种方式,这样就有了面向消息的中间件(Message-Oriented Middleware)系统,比如IBM的MQseries。但是为了建立体系结构模型,所需要的并不只是服务描述。需要定义整个应用程序如何在服务之间执行其工作流。尤其需要找到业务的操作和业务中所使用的软件的操作之间的转换点。因此,SOA应该能够将业务的商业流程与它们的技术流程联系起来,并且能映射这两者之间的关系。例如,给供应商付款的操作是商业流程,而更新零件数据库,以包含进新供应的货物却是技术流程。因而,工作流还可以在 SOA 的设计中扮演重要的角色。

动态业务的工作流不仅可以包括部门之间的操作,甚至还可以包括与不为您控制的外部合作伙伴进行的操作。因此,为了提高效率,需要定义如何得知服务之间的关系的策略,这种策略常常采用服务级别协定和操作策略的形式。

所有这些都必须处于一个信任和可靠的环境之中,以同预期的一样根据约定的条款来执行流程。因此,安全、信任和可靠的消息传递应该在任何SOA中都起着重要的作用。
SOA是在计算环境下设计、开发、应用、管理分散的逻辑(服务)单元的一种规范。这个定义决定了SOA的广泛性。SOA要求开发者从服务集成的角度来设计应用软件,即使这么做的利益不会马上显现。SOA要求开发者超越应用软件来思考,并考虑复用现有的服务,或者检查如何让服务被重复利用。SOA鼓励使用可替代的技术和方法(例如消息机制),通过把服务联系在一起而非编写新代码来构架应用。经过适当构架后,这种消息机制的应用允许公司不用被迫进行大规模新的应用代码的开发,而仅通过调整原有服务模式,在商业环境许可的时间内对变化的市场条件做出快速的响应。

SOA也不仅仅是一种开发的方法论,它还包含管理。应用SOA后,管理者可以方便的管理这些搭建在服务平台上的企业应用,而不是管理单一的应用模块。SOA的一个中心思想就是使得企业应用摆脱面向技术的解决方案的束缚,轻松应对企业商业服务变化、发展的需要。通过将注意力放在服务上,应用程序能够集中起来提供更加丰富、目的性更强的商业流程。其结果就是,基于SOA的企业应用系统通常会更加真实地反映出与业务模型的结合。服务是从业务流程的角度来看待技术的——这是从上向下看的。这种角度同一般的从可用技术所驱动的商业视角是相反的。服务的优势很清楚:它们会同业务流程结合在一起,因此能够更加精确地表示业务模型、更好地支持业务流程。相反我们可以看到以应用程序为中心的企业应用模型迫使业务用户将其能力局限为应用程序的能力。
 

京ICP备06004481号   Copyright 2002 - 2006 ITGov.org.cn, All Rights Reserved