什么是SOA?
SOA(service-oriented architecture)是面向服务的体系结构,是一类分布式系统的体系结构。
这类系统是将异构平台上应用程序的不同功能部件(称为服务)通过这些服务之间定义良好的接口和规范按松耦合方式整合在一起,即将多个现有的应用软件通过网络将其整合成一个新系统。
SOA的二大目标
多应用的整合不但是跨平台的,而且应该是松耦合的,也就是说,被整合的应用自身仍保持其自主,如香港政府已回归中国,但保持一国二制。
新增设的业务功能,应允许适应变化,即随需应变。
如何做到跨平台、松耦合
②除使用方和服务方外,另有中介方,提供驻册登记和查询。
现在社会的劳务市场和职业介绍所等都起这样作用。即先查询、梆定、然后调用。
什么叫服务
服务是构件提供使用者调用的相关的物理黑盒封装的可执行代码单元。它的服务只能通过已发布接口(它包括交互标准)进行访问。也可以连接到其他构件以构成一个更大的服务”。
服务通常实现为粗粒度的软件实体,并且通过松散耦合的基于消息通信模型来与应用程序和其他服务交互。
面向服务的体系结构中的角色
服务使用者:服务使用者是一个应用程序、一个软件模块或需要一个服务的另一个服务。它发起对注册中心中的服务的查询,通过传输绑定服务,并且执行服务功能。服务使用者根据接口契约来执行服务。
服务提供者:服务提供者是一个可通过网络寻址的实体,它接受和执行来自使用者的请求。它将自己的服务和接口契约发布到服务注册中心,以便服务使用者可以发现和访问该服务。
服务注册中心:服务注册中心是服务发现的支持者。它包含一个可用服务的存储库,并允许感兴趣的服务使用者查找服务提供者接口。
面向服务的体系结构中的操作
发布:为了使服务可访问,需要发布服务描述以使服务使用者可以发现和调用它。
发现:服务请求者定位服务,方法是查询服务注册中心来找到满足其标准的服务。
绑定和调用:在检索完服务描述之后,服务使用者继续根据服务描述中的信息来调用服务。
SOA的实现中的组成部分
SOA的实现中的组成部分
体系结构堆栈分成两半,左边的一半集中于体系结构的功能性方面,而右边的一半集中于体系结构的服务质量方面。这些元素详细描述如下:
服务质量方面
策略是一组条件和规则,在这些条件和规则之下,服务提供者可以使服务可用于使用者。策略既有功能性方面,也有与服务质量有关的方面;因此,我们在功能和服务质量两个区中都有策略功能。
安全性是规则集,可以应用于调用服务的服务使用者的身份验证、授权和访问控制。
传输是属性集,可以应用于一组服务,以提供一致的结果。例如,如果要使用一组服务来完成一项业务功能,则所有的服务必须都完成,或者没有一个完成。
管理是属性集,可以应用于管理提供的
被整合应用程序的体系结构
建议应用程序实现层为:服务、组件、对象。
如何做到随需应变?
每个需求用工作流方式描述(BPEL语言),将各应用的服务串起来,也可以通过自展的方式扩展新的服务,一旦用语言写出其工作流的业务过程后,通过编译自动实现,由此实现了随需应变。
目前IBM提供了方案、提供了开发平台和运行平台、可以半自动地补充和增加新的业务流程。
SOA的优点
v利用现有的资产。
方法是将这些现有的资产包装成提供企业功能的服务。组织可以继续从现有的资源中获取价值,而不必重新从头开始构建。
v更易于集成和管理复杂性。
将基础设施和实现发生的改变所带来的影响降到最低限度。因为复杂性是隔离的。当更多的企业一起协作提供价值链时,这会变得更加重要。