SOA
浅析面向服务的架构
周龙海 石家庄铁道大学 河北省石家庄市 050043
摘要:早在十年前,Gartner Group就提出了面向服务软件体系架构概念。但是传统SOA(Service Oriented Architecture)的实现采用的都是一种紧耦合、非通用的接口设计,无法满足跨企业的分布式系统的信息共享,无法使软件得到最大限度的重用,不能实现实时系统,因而一直没有得到很好的应用。随着W3C对Web Service的协议的规范化以及IBM,Microsoft,SUN等国际顶级IT大公司联合制定规范和服务支持,Web Service技术日趋成熟化。Web Service采用了一种面向服务(SOA)的开放的、松耦合的架构,所有协议都是基于XML具有通用性,并且实现简单。因此,Web Service给SOA软件体系架构带来了新的契机。深入剖析了传统SOA架构技术和Web Service的原理、实现机制,并且分析了基于Web服务的SOA的实现,描述了基于Web服务的SOA的通信结构和实现层次结构。
关键词:面向服务架构
1 SOA概述
面向服务的体系结构,是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
2 SOA特征
2.1 可重用
一个服务创建后能用于多个应用和业务流程。
2.2 松耦合
服务请求者到服务提供者的绑定与服务之间应该是松耦合的。因此,服务请求者不需要知道服务提供者实现的技术细节,例如程序语言、底层平台等等。
2.3 明确定义的缺口
服务交互必须是明确定义的。Web服务描述语言(Web Services Description Language,WSDL)是用于描述服务请求者所要求的绑定到服务提供者的细节。WSDL不包括服务实现的任何技术细节。服务请求者不知道也不关心服务究竟是由哪种程序设计语言编写的。
2.4 无状态的服务设计
服务应该是独立的、自包含的请求,在实现时它不需要获取从一个请求到另一个请求的信息或状态。服务不应该依赖于其他服务的上下文和状态。当产生依赖时,它们可以定义成通用业务流程、函数和数据模型。
2.3 基于开放标准
当前SOA的实现形式是Web服务,基于的是公开的W3C及其他公认标准.采用第一代Web服务定义的SOAP、WSDL和UDDI以及第二代Web服务定义的WS-*来实现SOA。
3 SOA工作原理
3.1 SOA架构中角色
服务提供者:发布自己的服务,并且对服务请求进行响应。
服务注册中心:注册已经发布的web service,对其进行分类,并提供搜索服务。
服务请求者:利用服务中心查找所需要的服务,然后使用该服务。
3.2 SOA的相关标准——WSDL、UUDI、SOAP
SOAP: 简单对象访问协议 (Simple Object Access Protocol)
WSDL: Web服务描述语言 WSDL (Web Services Description Language)
UUDI: 统一描述、发现和集成 (Universal Description, Discovery and Integration) WSDL用来描述服务;
UDDI用来注册和查找服务;
SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。
3.3 SOA的三大核心部件
1、ESB(Enterprise Service Bus)企业服务总线 ESB是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。
从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。
ESB的五个基本功能:
1)服务的MetaData管理:在总线范畴内对服务的注册命名及寻址管理功能。
2)传输服务:必须确保通过企业总线互连的业务流程间的消息的正确交付,传输还包括基于内容的路由功能。
3)中介:提供位置透明性的服务路由和定位服务;多种消息传递形式;支持广泛使用的传输协议。
4)多种服务集成方式:如JCA,Web服务,Messaging ,Adaptor等。
5)服务和事件管理支持:如服务调用的记录、测量和监控数据;提供事件检测、触发和分布功能;
2、BPM(Business Process Management)业务流程管理
所谓业务流程管理是指根据业务环境的变化,推进人与人之间、人与系统之间的整合及调整经营方法与解决方案的IT工具。
BPM可以使系统更为强壮,通过BPM组件,SOA能够更好地监控它连接的系统。
3、Portal 门户
门户是一个基于WEB的应用程序,它提供个性化、单点登录、不同来源内容整合及存放信息系统的表示层。 Portal是低成本的集成技术。如果企业已经有了很多信息系统,Portal可以很容易的将这些系统集成到一起,并以统一界面方式提供给用户。
4 SOA优缺点总结
4.1优点
1、敏捷性
SOA 支持更加快速地开发业务流程以及更加轻松地对业务流程进行改变。它可以使组织更迅速地适应他们业务环境的改变。这就转化成为实际的市场优势,因为它能够使产品和服务比竞争对手更快速地推向市场。
2.一致性
业务与 IT 之间更加紧密的合作关系抛开了阻碍 IT 实现业务需求的传统障碍。业务领域中的服务足迹是一项业务功能,并且用业务术语对其进行了描述。它实现的细节是隐藏的。
3. 数据统一
服务接口可提供统一数据特征的机会,以使服务接口使用遵照统一的数据模型的数据。
4.2 缺点
1、组织结构的改变
在每个 SOA 的中心都有一个卓越中心(COE)。COE 就是一个控制 SOA 技术开发以及向组织的其他人员提供专业知识的新实体。SOA COE 是对任何组织来说都是新增加的,并且由此推出,当它实力雄厚并且在这里所做的决定会影响组织的其他人员时,它的引入可能会导致冲突。
2. 组织权力结构的改变
将服务的所有权和控制权放到业务领域中,会改变组织中的权力结构。这样做通常会遭遇来自那些有维持现状特权的人的阻力。
3. 没有数据视图
服务的标准接口需要统一的数据视图。这种统一视图通常不存在,并且设法开发统一视图时往往会发现组织中的视图非常不同。
参考文献
[1] 王春樵. "面向服务架构——分布式网络应用的方向——WebServices及其相关技术." 广东通信技术 022.001(2002):40-44.
[2] 谭永明, and 苏斌. "面向服务架构体系的研究." 计算机技术与发展 03(2007):138-140+143.
[3]孙华林, and 赵正文. "基于Web Services的面向服务架构(SOA)的探索与研究." 信息技术 031.001(2007):50-53.
[4]张春霞, 李旭东, and 徐涛. "浅谈面向服务架构(SOA)的核心理念." 计算机系统应用 019.006(2010):251-256.