长 风 开 放 标准平 台 软 件 联 盟
ChangFeng Open Standards Platform Software Alliance
目 录
1. 概述.....................................................................................................................................................2
1.1. 术语 ........................................................................................................................................2
1.2. 为什么需要 SOA...................................................................................................................3
1.3. SOA 的主要应用场景 ...........................................................................................................4
1.4. 什么是 SOA...........................................................................................................................4
1.5. SOA 的特点 ...........................................................................................................................4
1.6. SOA 带来的好处 ...................................................................................................................6
2. SOA 技术参考架构............................................................................................................................8
2.1. SOA 技术参考架构 ...............................................................................................................8
2.2. SOA 相关元素 .......................................................................................................................9
2.3. 适配器 ..................................................................................................................................11
2.4. 连通服务 ..............................................................................................................................12
2.5. 协作服务 ..............................................................................................................................14
2.6. 流程服务 ..............................................................................................................................14
2.7. 业务服务 ..............................................................................................................................15
2.8. 交互服务 ..............................................................................................................................16
2.9. 信息服务 ..............................................................................................................................16
2.10. 运行管理服务与工具 ..........................................................................................................17
2.11. 资源管理服务与工具 ..........................................................................................................18
2.12. 安全服务 ..............................................................................................................................19
3. SOA 的关键技术..............................................................................................................................21
3.1. 关键技术概述 ......................................................................................................................21
3.2. 服务的描述 ..........................................................................................................................22
3.3. 服务的注册和查找 ..............................................................................................................23
3.4. 服务的管理 ..........................................................................................................................24
3.5. 服务间的通信 ......................................................................................................................25
3.6. 服务的应用 ..........................................................................................................................26
3.7. 服务的开发 ..........................................................................................................................29
3.8. 服务质量属性 ......................................................................................................................30
4. SOA 技术优势与适用性..................................................................................................................34
4.1. 优势与适用性 ......................................................................................................................34
4.2. 实施中需要考虑的问题 ......................................................................................................35
附录:SOA 技术标准体系......................................................................................................................36
标准组织...........................................................................................................................................36
SOA 技术标准体系..........................................................................................................................36
长风联盟 SOA 参考架构白皮书 1
长 风 开 放 标准平 台 软 件 联 盟
ChangFeng Open Standards Platform Software Alliance
1. 概 述
1.1. 术语
l SOA:Service Oriented Architecture,面向服务的体系架构
l WSDL:Web Service Definition Language,Web 服务描述定义语言
l SOAP:Simple Object Access Protocol,简单对象访问协议
l UDDI:Universal Description Discovery and Integration,统一描述发现和集成
l BPEL:Business Process Execution Language,业务流程执行语言
l 服务
服务是 SOA 系统的基本元素,以明确且与实现无关的标准化接口完成业务功能定
义,服务可在不同业务过程中被重复使用,而且具体的服务实现不依赖特定实现语言与
工具。
l 资源
这里的资源指业务系统中所涉及到的企业、公众、政府部门和组织间存在的可用于
业务处理的数据、信息、知识以及软硬件产品等。
l 连通服务
连通又称服务总线,是面向服务架构的骨干,在完成服务的接入,服务间的通信和
交互基础上,还提供安全性、可靠性、高性能的服务能力保障。连通服务的一个典型实
现就是企业服务总线(ESB)
l 协作服务
协作服务是连通服务的一个重要补充,主要通过 WebServices 方式实现服务之间以
更松散耦合方式进行通信和交互,可以简单认为其就是整个服务通信和交互环节中的
WebServices 网关。协作服务也提供安全性、可靠性、高性能的服务能力。
l 流程服务
流程服务支持复杂业务流程的设计,运行和监控管理。业务流程通过将若干服务按
流程方式组织定义来实现,支持短时间运行的自动流程和可能长时间运行的有人工介入
的流程。
2 长风联盟 SOA 参考架构白皮书
长 风 开 放 标准平 台 软 件 联 盟
ChangFeng Open Standards Platform Software Alliance
1.2. 为什么需要 SOA
SOA 提供了一种构建 IT 组织的标准和方法,通过建立可组合、可重用的服务体系
来减少 IT 业务冗余,并加快项目开发的进程。SOA 允许一个企业高效地平衡现有的资
源和财产,这种体系能够使得 IT 部门效率更高、开发周期更短、项目分发更快,在帮
助 IT 技术和业务整合方面有着深远的意义,它可以:
l 缩小业务和技术的鸿沟——以业务为中心
SOA 改变了以往以技术为中心的信息系统建设模式,使得 IT 技术重新回到业务支
撑的角色。IT 技术的目标是为业务、应用服务,而不是 IT 技术本身的发展。业务人员
可以像组装硬件一样从业务角度即时构造应用,从而缩小业务和技术的鸿沟。
l 软件资源的共享与重用
SOA 提供了一种把原有的组件按一定的标准封装为具有文档形式接口描述的服务,
从而使服务的使用者和服务之间是一种松耦合关系。这样,一方面可以把遗留系统封装
为服务加以复用,提高了投资回报率;另一方面,可以直接调用外部服务提供商提供的
服务从而起到复用的作用。
l 应用的随需扩展——灵活性和敏捷性
SOA 的松耦合特性给应用带来了极大的灵活性。服务使用者和服务提供者在保持接
口契约一致性的情况下,可以独立演化。基于 SOA 的应用可以看成是一组服务以及服
务之间松散耦合的集合。因此,一方面新的服务可以很容易地加入这个松散集合,另一
方面也可以根据业务需求重新编排集合内的服务,以生成新的复合服务。因此基于 SOA
的应用具有易于改变、易于扩展的特点,从而支持了业务的快速反应和敏捷性。
总之,面向服务架构(SOA)试图将网络上需要共享的各种资源统一以服务的形式
进行封装和接入,让它们在物理上保持分布自治的同时实现以“虚拟信息中心”为基础
的逻辑上的一体化管理,以透明的方式进行资源的优化选取、按需中介和有效访问,并
能够支持用户主动参与应用配置。
SOA 主要通过复用性、灵活性和共享性从技术上支持上述目标。SOA 以服务为基
本单元,更加贴近于企业的商业活动,业务建模和流程编排的复杂度会有效降低,重用
性也会有效提高。因此,采用 SOA,可以让 IT 更加关注于业务流程而非底层 IT 基础结
长风联盟 SOA 参考架构白皮书 3
长 风 开 放 标准平 台 软 件 联 盟
ChangFeng Open Standards Platform Software Alliance
构,从而获得竞争优势的更高级别的应用程序开发架构。
1.3. SOA 的主要应用场景
SOA 的主要应用场景有:
l 跨部门资产联合使用
l 组织内部或组织之间应用整合需要,可以适应未来变化,实现对已有资产的保
护,简化开发
l 互联网环境下虚拟企业的建立,可以利用互联网上的服务进行组合提供新的业
务服务
l 为用户提供多渠道支持服务,服务接口的统一,有利于与服务展现方式和服务
渠道的多样化
1.4. 什么是 SOA
OASIS标准组织在SOA参考模型(RM)中对SOA的定义为:
l SOA(Service Oriented Architecture)是一种软件体系结构范型,可以组织和
使用处于不同所有者控制下的分布式功能。
我们对 SOA 的理解是:
l 对SOA的理解多种多样,从技术角度看,SOA就是一种体系架构,它描述了一
种IT基础设施,使得不同的业务服务可以相互交换数据,参与业务流程,通过
灵活的互相协作方式来完成具体的业务操作。这些业务服务独立于编程语言,
独立于实现方法,独立于运行环境。
1.5. SOA 的特点
1.5.1. 重点关注服务
SOA 支持面向服务的开发方法,是对前续的面向过程、面向消息、面向数据库和面
向对象开发方法的补充。
服务从更高抽象层次上定义,直接与业务相对应,且其实现可采用面向过程、面向
消息、面向数据库和面向对象等不同开发方法。
4 长风联盟 SOA 参考架构白皮书
长 风 开 放 标准平 台 软 件 联 盟
ChangFeng Open Standards Platform Software Alliance
与面向对象的调用接口相比,服务一般定义较粗粒度的接口,会接收更多的数据,
消耗更多的计算资源。服务一般是用来解决应用间互操作问题,以及将服务组合成新应
用或新的应用系统,而不是为应用创建具体的业务逻辑。
通过 SOA,围绕服务构建 IT 系统,有利于 IT 系统更靠近实际业务要求,使 IT 系
统更容易适应业务变化的要求,另外,对已有应用系统,通过服务化封装,可以使这些
系统得到更好的重用,能有效保护对已有应用系统建设的投资。
1.5.2. 松耦合
松耦合是软件设计中一个重要概念,SOA 强调服务间的松耦合。在 SOA 中松耦合
包括以下几个方面:
l 接口松耦合
接口耦合是指服务请求者与服务提供者之间的耦合。度量的是请求者与服务提供者
的依赖性。接口松耦合强调服务请求者仅需要根据已发布的服务契约和服务水平协议
(或称服务等级协议)就可以请求一个服务,任何时候服务请求者都不需要了解服务提
供者对内部实现的信息。即服务接口封装了所有的实现细节,使服务请求者看不到这些
实现细节。
l 技术松耦合
技术耦合度量的是服务对特定技术,产品或开发环境的依赖程度。技术松耦合强调
服务请求者和服务提供者的实现和运行不需要依赖与特定的某种技术,或某个厂家的解
决方案或产品,从而减少对某个厂商的依赖。在 SOA 系统中服务请求者和服务提供者
可以使用不同技术实现,可以在不同厂商的环境中运行。
l 流程松耦合
流程松耦合度量的是服务与特定业务流程的依赖程度。强调服务不应与具体的业务
流程相关,以便能够被重用于多种不同的业务流程与应用。这一点强调的是服务的可重
用性,在 SOA 系统中对业务服务的合理规划,使得一个业务服务可以在多个业务流程
中得到复用,并且随着业务要求的改变,一个服务可以在变化后的新的业务流程中能够
得到继续使用。
长风联盟 SOA 参考架构白皮书 5
长 风 开 放 标准平 台 软 件 联 盟
ChangFeng Open Standards Platform Software Alliance
1.5.3. 重构的灵活性
在 SOA 系统建设中,基本的单位是实现业务功能的服务,而不是实现业务逻辑的对
象,过程,函数等较小的技术单位。
服务与实际业务功能相关,具有明确的接口。这些服务可在不同的业务流程中得到
重用,提高了服务的价值;其次在使用中只需按其接口要求进行访问,屏蔽服务实现细
节,服务实现的修改不会影响到服务访问方的逻辑,提高了业务流程的适应性;另外,
一旦业务流程变更,仅需对服务进行重新编排,并不修改服务本身,提高了业务流程实
现的灵活性。
重构的灵活性,不仅可以使业务服务可以有更好的重用性,也使得业务流程更容易
重构,使 IT 系统具有了更好的灵活性,可以快速面对变化的市场需求。
1.5.4. 对标准的支持
为了强调互操作性,在 SOA 系统中,服务需要尽量符合开放标准。与服务相关的技
术几乎都存在相应标准,通过对标准的使用可以得到众多好处,包括:
l 减少对特定厂商的依赖;
l 为服务请求者增加了使用不同服务提供者的机会;
l 为服务提供者增加了被更多服务请求者使用的机会;
l 增加了使用开放源代码的标准实现,以及参与这些实现的开发机会;
在 SOA 系统中,除强调需要遵守技术标准(如 SOAP,WSDL,UDDI 和 WS-*)外,
服务层的数据模型和流程模型也有需尽可能基于一些成熟的业务领域标准或纵向的行
业标准。
1.6. SOA 带来的好处
按SOA方法构建应用系统,可获得技术、业务层面的不同优势。
在技术层面带来的好处有:
l 开发过程更有效,缩短开发周期
l 更利于重用
l 简化维护
l 增量采纳,在统一的规划下,系统可以通过试点后分步骤建立
6 长风联盟 SOA 参考架构白皮书
长 风 开 放 标准平 台 软 件 联 盟
ChangFeng Open Standards Platform Software Alliance
l 流畅的演进,可以逐步改进业务目标
在业务层面带来的好处有:
l 增强业务机动性,有更好敏捷性
l 更好的配合业务,可以优化业务框架
l 改善客户满意度
l 提高现有 IT 资产的投资回报率
l 降低集成成本,节省费用
l 降低对厂商的依赖和降低转换成本,获得技术的独立性
长风联盟 SOA 参考架构白皮书 7