第2章 面向服务体系架构(SOA)技术概要
2.1 SOA概述
SOA的思想最初由Gartner公司提出,由于当时的技术水平和市场环境尚不具备真正实施SOA的条件,因此当时SOA并未引起人们的广泛关注,SOA在当时沉寂了一段时间。伴随着互联网的浪潮,越来越多的企业将业务转移到互联网领域,带动了电子商务的蓬勃发展。为了能够将公司的业务打包成独立的、具有很强伸缩性的基于互联网的服务,人们提出了Web服务的概念,这可以说是SOA的发端。
SOA不是一种语言,也不是一种具体的技术而是一种软件系统架构。SOA是一种架构模型,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。SOA解决方案由可重用的服务组成,带有简单、精确定义的接口用于服务间的通讯,SOA提供了一种操作,通过这种操作,可以集成现有的各种应用程序,不论它们采用什么平台或语言开发。SOA的实质就是为企业核心业务提供端到端的服务,并且已成为现阶段企业信息化发展的方向。
2.1.1 SOA的基本概念
SOA是英文Service.OrientedArchitecture,即面向服务架构的缩写。当于“架构”结合时,面向服务便具有了一个技术内涵。SOA是一个术语,代表一个模型,其中的自动化逻辑可分解为小的、不同的逻辑单元。这些单元组成一个较大的业务自动化逻辑片段,并可以对这些单元进行独立地分布式部署。
SOA的关键是“服务”的概念,W3C将服务定义为:服务提供者完成一组工作,为服务使用者交付所需的最终结果。最终结果通常会使使用者的状态发生变化,但也可能使提供者的状态改变,或者双方都产生变化。
Service-architecture.com将SOA定义为:本质上是服务的集合,服务间彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协调进行某些活动。服务间需要某些方法进行连接。所谓服务就是精确定义、封装完善、独立于其他服务所处环境和状态的函数。
Looselycoupled.corn将SOA定义为:按需连接资源的系统,在SOA中,资源被作为可通过标准方式访问的独立服务,提供给网络中的其他成员。与传统的系统结构相比,Gartner则将SOA描述为:客户端朋艮务器的软件设计方法,一项应用由软件服务和软件服务使用者组成,SOA与大多数通用的客户端/服务器模型的不同之处,在于它着重强调软件组件的松散耦合,并使用独立的标准接口。
虽然不同的厂商、IT组织或个人对SOA有着不同的理解,因此本人认为可以从上述厂家与个人的定义中总结出SoA的特性定义:SOA是一个开放的、可扩展的、联邦的、可组合的架构,促进面向服务并由自治的、高质量的、厂商多样化的、互操作性的、可发现的和潜在可复用的服务组成,利用Web服务来实现。
2.1.2 SOA的基本特征
SOA是一种粗粒度、松耦合的服务架构,其服务之间通过简单的、精确定义的接口进行相互通讯,不涉及底层编程接口和通讯模式。这种结构主要具备如下几个特征:
(1)服务的封装:将服务封装成用于业务流程的可重用组件的应用程序函数。它提供信息或简化业务数据从一个有效的、一致的状态向另一个状态的转变,封装隐藏了复杂性。
(2)服务的重用:服务的可重用性设计显著地降低了成本。为了实现可重用性,服务只工作在特定处理过程的上下文中,独立于底层实现和客户需求的变更。
(3)服务的互操作:在SOA中,通过服务之间既定的通信协议进行互操作。
(4)服务是自治的功能实体:服务是由组件组成的组合模块,是自包含和模块化的,SOA非常强调架构中提供服务的功能实体的完全独立自主的能力。
(5)服务之间的松耦合度:服务请求者到服务提供者的绑定与服务之间应该是松耦合的。这就意味着,服务请求者不知道提供者实现的技术细节,比如程序设计语言、部署平台。服务请求者往往通过消息调用操作,请求消息和响应,而不是通过使用API和文件格式。
2.1.3 SOA的体系结构
SOA体系结构中的基本元素是服务,服务是一个自包含的、无状态的实体,可以由多个组件组成。它通过事先定义的界面响应服务请求。它也可以执行诸如编辑和处理事务等离散性任务。服务本身并不依赖于其他函数和过程的状态。用什么技术实现服务,并不在其定义中加以限制。
SOA体系结构包含:服务请求者,服务提供者,服务注册,它们的关系如图2.1示:
图2-1 SOA体系结构图
服务提供者是一个提供符合契约的服务的实体,并将自己的服务和接口契约发布到服务注册中心。
服务请求者是一个应用程序或一个需要调用服务的另一个服务,它发现并调用其他的软件服务达到它所需要的服务功能。
服务代理者是服务的储存库,产生由服务提供者发布的接口,可以使服务请求者查找服务提供者的接口。
2.2基于Web服务的SOA应用基本协议与技术
SOA本质上依赖Web服务,Web服务是一种部署在Web上的组件、对象,是可以通过网络访问的应用程序接口。Web服务定义了一套标准的互操作规范,根据这个规范,可以在任何平台实现互操作。这一规范,主要由四个技术协议组成:XML,SOAP,UDDI,WSDL。
2.2.1XML协议
XML是可扩展的标记语言(Extensible Markup Language)简称,XML是目前用来描述数据和交换数据的一种标准,是用结构化的方法存储数据的纯文本格式。XML由W3C于1998年2月发布,XML的最大优点是它的数据存储格式不受显示格式的制约,任何设备都可以读取它,因为它的格式本身就是文本文件。
XML的主要特点有:
(1)XML使用Unicode字符集,可生成英文、中文、希腊文或梵文等多种语言。
(2)可将多个来源(包括其他XML文档和二进制文件)汇合进一个XML文档。
(3)可利用DTD或Schema(模式)管理一致性问题。DTD主要用于文档型文档,Schema主要用数据型文档。
(4)具有很好的扩展性,可定义自己的元素和属性。
(5)通过XML可从关系数据库管理系统中提取数据到结构化文档。它还被设计成可对各种数据对象进行操作。
(6)XML标记不涉及文档如何显示,只表示文档的结构。
XML的文档结构主要包含两个部分:文档序言与文档体。文档序言包含指定关键特性和文件数据的元数据,文档体包含数据,一个简单的XML文档实例如下所示:
<产品>
<鞋子>
<尺寸>40码<广尺寸>
<颜色>黑色</颜色>
<产地>杭州叫产地>
</鞋子>
</产品>
其中是一个声明,说明了该文档是XML格式,使用XML的1.0版本和中文字符集标准的编码方法。指定编码方法是为了保证每个字符能被对应的编码方式正确的读取,通常的编码方式还有UTF-8、UTF-16。在XML中用以标记文本的基本构件称为元素,元素由一个开始标签与一个结束标签组成,在XML的例子中,<产品>与</产品>组成一个根元素,<鞋子>与组成一个子元素。<鞋子>元素包含三个元素,<产品>元素的三个孙元素每个都包含了文本内容数据。
综上所述,Web服务要运行,需要使用一种平台中立的方法来描述数据与数据交换,XML以标准化的文本格式以一种简单的方法格式化数据,成为了Web服务的技术基础。
2.2.2 DISCO协议
DISCO的全称是Dis.Co Service(集散服务系统)是一个意图将分散的服务资源进行有效的整合和管理的平台。DISCO协议被用来发现位于特定域上的Web服务,DISCO协议的背后推动者是Microsoft,它的工作原理是,为客户机提供一个单独的位置,以便将企业中的所有发布的Web服务进行定位。每个公司都应有一个DISCO文件存在Web服务上,某个客户机会检查这个DISCO文件,并知道为这个公司所发布的每个Web服务的WSDL文件进行定位。DISCO协议与UDDI协议功能上有相似的作用,它们的区别是,UDDI协议是定位于Internet上可用的Web服务的中心仓库,DISCO协议不但可以用于动态发现Web服务,还可以用于在未知的域上询问所有可能的Web服务。
DISCO协议格式比较简单,DISCO协议基本上是一个指向WSDL文件的指针集合。一个具体的DISCO文档如下示例:
一个发布的DISCO文档其实是一个XML文档,以元素
2.2.3 UDDI协议
UDDI的全称是Universal Description, Discovery, and Integration(通用描述、发现和集成),由uddi.org进行维护。UDDI规范一个由Web服务所构成的逻辑上的云状服务,同时也定义了一种编程接口,这种编程接口提供了描述Web服务的简单框架。规范包括几份相关的文档和一份XML Schema,用来定义基于SOAP的注册和发现Web服务的协议。
UDDI规范、XML Schema和UDDI注册中心集群之间的关系如图2-2所描述UDDI注册中心集群能为Web服务提供一次注册,到处发布的功能。
图2-2 UUDI关系图
UDDI注册使用的核心信息模型由XML Schema定义,使用XML是因为它提供了平台无关的数据描述并很自然的描述了数据的层次关系。选择XML Schema是因为它支持丰富的数据类型,便捷的描述方式及其按信息模型对数据进行验证的能力。UDDI XMLSchema定义了四种主要信息类型,它们是技术人员在需要使用合作伙伴所提供的Web服务时必须了解的技术信息。商业实体信息、服务信息、绑定信息和服务调用规范的说明信息。
UUDI有四种主要的数据结构,它们中每一种代表一个XML元素,它们分别为:
·业务信息保存在一个businessEntity元素中。
·服务信息保存在一个businessService元素中。
·绑定信息保存在一个bingdingTemplate元素中。
·为服务提供的规范保存在一个tModels元素中。
这四种数据结构都要保持独立,因此只能使用唯一的标志符或键码来单独访问它们,由UDDI注册表产生的每一个标志符都采用一个通用唯一ID的形式。一个UDDI是一个依照算法产生的十六进制字符串,该算法可以确保任何两个UDDI不相同。
一个UDDI的简单形式的示例:FCZX1315-1719-2226-ZJ13-WYZJWYFXYJ100N。
基于SOA的中小型企业业务流集成应用研究(一)
http://articles.e-works.net.cn/SOA/Article95112.htm
基于SOA的中小型企业业务流集成应用研究(二)上
http://articles.e-works.net.cn/SOA/Article95113.htm
基于SOA的中小型企业业务流集成应用研究(二)下
http://articles.e-works.net.cn/SOA/Article95114.htm
基于SOA的中小型企业业务流集成应用研究(三)上
http://articles.e-works.net.cn/SOA/Article95130.htm
基于SOA的中小型企业业务流集成应用研究(三)下
http://articles.e-works.net.cn/SOA/Article95133.htm
基于SOA的中小型企业业务流集成应用研究(四)
http://articles.e-works.net.cn/SOA/Article95189.htm
基于SOA的中小型企业业务流集成应用研究(五)上
http://articles.e-works.net.cn/SOA/Article95191.htm
基于SOA的中小型企业业务流集成应用研究(五)下
http://articles.e-works.net.cn/SOA/Article95221.htm
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/