面向服务的架构及其应用
杨瑞1
(1.石家庄铁道大学,河北省石家庄市 050043;)
摘 要:面向服务的架构(Service-Oriented Architecture,SOA)是一种组件模型,把应用程序中的不同功能单元(即服务)通过这些服务之间定义良好的接口和契约联系起来,使得这些系统中的服务能够以-种统一和通用的方式进行交互。本文主要从参与的项目中,来阐述SOA基础技术平台与辅助工具,以及其他外围相关元素之间的关系。
关键字:SOA;
Service Oriented Architecture and its application
Yang Rui1
(1.Shijiazhuang Tiedao University, Hebei Provence Shijiazhuang City 050043)
Abstract: Service-oriented architecture (SOA) is a component model, which links different functional units (i.e. services) in applications through well-defined interfaces and contracts between these services, so that the services in these systems can interact in a unified and general way. This paper mainly discusses the relationship between SOA basic technology platform and auxiliary tools, as well as other peripheral related elements from the participating projects.
Key words:SOA;
一、SOA技术以及标准
SOA技术参考架构主要描述SOA基础技术平台与辅助工具,同时描述这两部分与其他外围相关元素之间的关系。SOA技术参考架构将服务分为6类,具体描述如下:
1. 连接服务连接服务又称连通服务,是面向服务架构的骨干,在完成服务的接入,服务间的通信和交互基础上,还提供安全性、可靠性、高性能的服务能力保障。连接服务的一个典型实现就是企业服务总线(Enterprise Service Bus, ESB)。
2.协作服务协作服务通常由通信代理和Web服务代理两部分组成。通信代理与连通服务中的通信代理实现内部有效的数据通信,Web 服务代理与外部的公共注册中心交互,注册本平台对外开放的Web服务以及查找所需要访问的外部Web服务。协作服务既可以实现组织之间(如供应链的合作伙伴之间)的交互通信,也可以实现组织内部(如跨地域的分支机构之间,并有防火墙进行保护的情况)之间的交互通信。
3.业务服务业务服务指为新建服务提供的特定运行支持环境。新建服务包括单个服务以及合成服务,不包括流程化的服务。合成服务一般由应用编码实现,它可以调用其他的服务(包括:单个服务、合成服务和流程化的服务)。业务服务与连通服务相联接,其中的新建服务与其他服务的通信和交互通过连通服务来实现。业务服务的运行信息由运行管理服务保存,业务服务也接受并执行运行管理服务的管理和控制命令。
4.业务流程服务流程服务是业务流程的运行环境,提供流程驱动、服务调用、事务管理等功能。流程服务是为业务流程的运行提供的一组标准服务。 业务流程是一组服务的集合,可以按照特定的顺序并使用一-组特 定的规则进行调用。业务流程可以由不同粒度的服务组成,其本身也可视为服务。
5. 交互服务交互服务实现人与服务之间的交互功能。人可以是服务的消费者,也可以是服务的提供者。人不能直接消费服务,也不能直接提供服务,需要通过相应的程序实现代理操作(即人通过操作程序实现与服务的交互)。交互服务就是需要提供一组完整的功能,以实现人与服务的交互,并能够方便地进行交互。
人员需要请求服务时,向连通服务发送消息请求,由连通服务查找服务,并将请求消息传递给服务提供者。
6.信息服务信息服务特指为_上层应用系统、同层的其他服务等提供数据访问及资源访问服务。其目标是使应用系统能够统一、透明、高效地访问和操纵位于网络环境中的各种分布、异构的数据资源,为实现全局数据访问、加快应用开发、增强网络应用和方便系统管理提供支持。
二 SOA的技术以及标准
SOA相关标准:WSDL、UUDI、SOAP
2.1 SOAP:简单对象访问协议(Simple Object Access Protocol)
简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
四个部分:
1.封装
它定义了一个框架 , 该框架描述了消息中的内容是什么,谁应当处理它以及它是可选的还是必须的。
2.编码规则
它定义了一种序列化的机制,用于交换应用程序所定义的数据类型的实例
3.RPC表示
它定义了用于表示远程过程调用和应答的协定。
4.绑定
定义了一种使用底层传输协议来完成在节点间交换SOAP封装的约定。
SOAP消息基本上是从发送端到接收端的单向传输,但它们常常结合起来执行类似于请求 / 应答的模式。所有的 SOAP消息都使用 XML 编码。一条 SOAP消息就是一个包含有一个必需的 SOAP 的封装包,一个可选的 SOAP 标头和一个必需的 SOAP 体块的 XML 文档。把 SOAP 绑定到 HTTP 提供了同时利用 SOAP 的样式和分散的灵活性的特点以及 HTTP 的丰富的特征库的优点。在HTTP上传送 SOAP 并不是说 SOAP 会覆盖现有的 HTTP 语义,而是 HTTP 上的 SOAP 语义会自然的映射到 HTTP 语义。在使用 HTTP 作为协议绑定的场合中, RPC 请求映射到 HTTP 请求上,而 RPC 应答映射到 HTTP 应答。然而,在 RPC 上使用 SOAP 并不仅限于 HTTP 协议绑定。SOAP也可以绑定到TCP和UDP协议上。
2.2 WSDL:web服务描述语言(Web Services Description Language)
WSDL 指网络服务描述语言 (Web Services Description Language)。
WSDL 是一种使用 XML 编写的文档。这种文档可描述某个 Web service。它可规定服务的位置,以及此服务提供的操作(或方法)。
2.2 UUDI:统一描述、发现和集成(Universal Description Discovery and Integration)
UDDI计划是一个广泛的,开放的行业计划,它使得商业实体能够 (1) 彼此发现,(2) 定义他们怎样在internet上互相作用,并在一个全球的注册体系架构中共享信息。UDDI是这样一种基础的系统构筑模块,他使商业实体能够快速,方便地使用他们自身的企业应用软件来发现合适的商业对等实体,并与其实施电子化的商业贸易。
UDDI同时也是Web服务集成的一个体系框架。它包含了服务描述与发现的标准规范。UDDI规范利用了W3C和Internet工程任务组织(IETF)的很多标准作为其实现基础,比如扩展标注语言(XML),HTTP和域名服务(DNS)这些协议。另外,在跨平台的设计特性中,UDDI主要采用了已经被提议给W3C的SOAP(Simple Object Access Protocol,简单对象访问协议)规范的早期版本。
三、SOA七个关键性问题
当然,SOA架构是今天才知道的,要说在应用上遇到了什么问题,那一定是不切实际的,但是下面这些问题是需要我们去深刻理解的:
- SOA的前提是能够使应用程序像服务那样工作。软件如何像服务一样工作呢?
- 请举例说明 SOA 如何使企业受益。
- SOA与Web服务以及SOA和网格计算之间是何关系。
- 因为还没有通用互操作性标准,SOA最大的问题不仍然是供应商中心性(vendor-centricity)吗?
- SOA如何影响SLA?而您如何让SLA适合您的SOA?
- 我如何着手构建SOA?
- 管理SOA需要哪些新的服务管理技能?
这是关于SOA建构的七个关键性问题,具体解答网上也是都有,我们需要去深刻理解。