Web Service体系框架
Web Service体系结构是一种面向服务的体系结构(SOA),这种体系结构设定了3个角色和3种操作。3种角色分别是服务提供者、服务请求者和服务注册机构。对象由服务和服务描述充当,在这些对象上执行的操作是发布、查找和绑定。这些角色和操作一起作用于Web Service构件:Web Service软体模组及其描述。在典型情况下,服务提供者提供可通过网路访问的软体模组(Web Service的一个实现)。服务提供者定义Web Service的服务描述,并把它发布到服务请求者或服务注册中心。服务请求者使用查找操作从本地或服务注册中心搜寻服务描述,然后使用服务描述与服务提供者进行绑定,并调用相应的Web Service实现,同它互动。服务提供者和服务请求者角色是逻辑结构。
基本介绍
- 中文名:Web Service体系框架
- 外文名:Web Service system framework
Web Service体系结构
角色
Web Service体系结构中的角色包括如下3个。
· 服务提供者(Service Provider):从企业的角度看,这是服务的所有者。从体系结构的角度看,这是託管被访问服务的平台。
· 服务请求者(Service Requestor):从企业的角度看,这是要求满足特定功能的企业。从体系结构的角度看,这是寻找并调用服务,或启动与服务互动的应用程式。服务请求者角色可以由浏览器来担当,由人或无用户界面的程式(例如另外一个Web Service)来控制它。
· 服务注册中心(Service Registry):这是可搜寻的服务描述注册中心,服务提供者在此发布它们的服务描述。在静态绑定开发或动态绑定执行期间,服务请求者查找服务并获得服务的绑定信息(在服务描述中)。对于静态绑定的服务请求者,服务注册中心是体系结构中的可选角色,因为服务提供者可以把描述直接传送给服务请求者。同样,服务请求者可以从服务注册中心以外的其他来源得到服务描述,例如本地档案、FTP站点、Web站点、ADS文本档案(Advertisement and Discovery of Services)或DISCO档案(Discovery of Web Service)。
操作
对于利用Web Service的应用程式,必须发生以下3个操作:发布服务描述、查询或查找服务描述以及根据服务描述绑定或调用服务。这些行为可以单次或反覆出现。Web Service体系架构中包含的这些具体操作如下。
· 发布(Publish):为了使服务可访问,需要发布服务描述以使服务请求者可以查找它。发布服务描述的位置可以根据应用程式的要求而变化。
· 查找(Find):在查找操作中,服务请求者直接检索服务描述或在服务注册中心中查询所要求的服务类型。对于服务请求者,可能会在两个不同的生命周期阶段中牵涉到查找操作:在设计时,为了程式开发而检索服务的接口描述;而在运行时,为了调用而检索服务的绑定和位置描述。
· 绑定(Bind):最后需要调用服务。在绑定操作中,服务请求者使用服务描述中的绑定细节来定位、联繫和调用服务,从而在运行时调用或启动与服务的互动。
而Web Service体系架构中包含如下Web Service构件。
· 服务(Service):在这里,Web Service是一个由服务描述语言描述的接口,服务描述的实现就是该服务。服务是一个软体模组,它部署在由服务提供者提供的可以通过网路访问的平台上。服务的存在目的就是要被服务请求者调用或者同服务请求者互动。当服务的实现中利用到其他的Web Service时,它也可以作为请求者。
· 服务描述(Service Description):服务描述包含服务的接口和实现的细节。其中,包括服务的数据类型、操作、绑定信息和网路位置。还可能包括可以方便服务请求者发现和利用的分类及其他元数据。服务描述可以被发布给服务请求者或服务注册中心。
Web Service体系结构解释了如何以一种可以互操作的方式实现这些操作。
开发生命周期
Web Service开发生命周期则包括了设计和部署以及在运行时对服务注册中心、服务提供者和服务请求者每一个角色的要求。每个角色对开发生命周期的每一元素都有特定要求。
开发生命周期有以下4个阶段。
· 构建:生命周期的构建阶段包括开发和测试Web Service实现,定义服务接口描述和定义服务实现描述。可以通过创建新的Web Service,把现有的应用程式变成Web Service和由其他Web Service和应用程式组成新的Web Service,从而提供Web Service的实现。
· 部署:部署阶段包括向服务请求者或服务注册中心发布服务接口和服务实现的定义,以及把Web Service的执行档部署到执行环境(典型情况下,被部署到Web套用伺服器)中。
· 运行:在运行阶段,可以调用Web Service。在此,Web Service完全部署、可操作,并且服务提供者可以通过网路访问服务。服务请求者可以进行查找和绑定操作。
· 管理:管理阶段包括持续的管理和经营Web Service应用程式。安全性、可用性、性能、服务质量和业务流程问题都必须被解决。
Web Service结构模型
为了完成在鬆散耦合环境下的对象访问,Web Service採用了分层的思想,各层分别实现不同的功能。
网路传输层
Web Service体系的基础是网路传输层。Web Service要被服务请求者调用,就必须是可以通过网路访问的。Internet上可以访问的Web Service使用已普遍部署的网路协定。HTTP凭藉其普遍性,成为了Internet环境下Web Service使用的标準网路协定。同时,在某些扩展套用领域,也支持SMTP协定(用于电子邮件)和FTP协定(用于档案传输)。而在Intranet环境中,Web Service还可以使用中间件作为传输互动的基础架构,如IBM的MQ Series(已经改名为Websphere MQ)和CORBA(Common Object Request Broker Architecture)。
Web Service的好处之一在于它能够为Intranet和Internet服务开发和使用提供统一的编程模型。所以,网路协定和技术的选择对于服务开发者来说是透明的。
数据表现层
数据表现层的XML为整个Web Service上层协定提供了数据/信息描述手段,XML是全球範围内用于描述数据和交换数据的一种标準方式。
可扩展标注语言XML作为Internet上的一种新的数据交换标準,其套用範围从早先的Web信息描述,发展到后来的数据交换开放标準,直至服务集成和服务互动的开放技术,XML已经成为开放环境下描述数据和描述信息的标準技术。在Web Service的时代,全部的规範、技术同样都是以XML为底层核心和构架基础的。对于Web Service而言,无论是Web Service的调用(SOAP技术)、Web Service界面的描述(WSDL技术),还是Web Service的发现(UDDI技术),都是使用XML作为信息描述和交换的标準手段。
数据模型层
在数据表现层上是数据模型层,描述数据结构的数据模型(也称为元数据)。它同样也是一种数据,因此,描述数据结构的方式也是使用基础的数据表现方式:XML。
XML Schema已经成为XML世界中的标準数据建模语言,SOAP、WSDL和UDDI的XML语法都是採用XML Schema进行定义和描述的。XML Schema已经成为XML世界中的标準交流工具,这有些类似于UML在软体设计中的地位。
基于XML的讯息层
在这一层次,使用的是基于XML的讯息协定SOAP。讯息层是构筑在更低的传输层之上的,这意味着SOAP可以单独使用,也可以与任何传输协定联合使用。所有的SOAP讯息都支持我们先前提到的Web Service架构中的发布(Publish)、绑定(Bind)和查找(Find)等操作。SOAP由3部分组成。
· 一个使用XML信封来描述讯息内容的机制;
· 一组编序规则,用于对各种类型的数据进行编码;
· 一个提供远程过程调用(RPC)和回响的机制。
IBM、Microsoft以及其他的一些公司将SOAP提交给W3C,作为XML协定工作组(XML Protocol Working Group)的基础。当W3C发布XML Protocol标準规範的时候,Web Service协定栈将升级,SOAP将被XML Protocol所替代。
服务描述层
服务描述为调用Web Service提供了具体的方法。WSDL是一个基于XML格式的定义服务的实现和接口的基础标準。这意味着WSDL将服务的描述分为两部分:服务实现和服务接口。在按照WSDL进行服务实现之前,我们必须先定义服务接口。WSDL仅是一个基本的服务描述手段,要指定业务环境、服务质量和服务之间的关係,我们还需要另外的描述手段。
服务发布层
WSDL文档可以由其他服务描述文档来补充,从而描述Web Service更高级的方面。例如,我们可以使用UDDI数据结构来表示商业上下文。在服务客户生命周期的任一阶段,都可以将WSDL文档提供给服务客户端。当这一操作被涉及后,我们就需要从服务描述层更进一步到达下一个层次服务发布层。在这一层次,服务提供者能够直接向服务客户端传送WSDL文档,一个可能的例子是通过E-mail的形式。这一动作被称为直接发布。同时,服务提供者也可以选择将WSDL文档发布到本地的WSDL注册库,或是公共/私有的UDDI注册中心。服务客户端可以通过这些注册库来获得WSDL文档。
服务发现层
服务发现是基于服务发布的。如果Web Service没有或不能被发布,那幺它就不能被发现。服务客户端可以在运行时态获取服务描述。例如,服务客户端可以获取一个以本地档案形式存在的WSDL文档,这个WSDL文档是通过直接发布手段发布的。这一操作被称为静态发现。同时,这个服务客户端也可以选择在设计阶段或运行时态通过一个本地WSDL注册库或公共/私有的UDDI注册中心发现WSDL文档。
服务工作流层
Web Service工作流语言(WSFL)是套用于协定栈顶层的服务工作流层标準。与协定栈中的其他标準不同,WSFL针对的是商务流程建模和工作流。WSFL用于描述Web Service在工作流中如何互相作用,以及它们如何处理服务到服务的通信或协同。这意味着Web Service可以是工作流的一部分,也可以动态地被编入工作流。
例如,WSFL允许工作流管理器从一个複合Web Service中,按工作流来定义依据商业流程赋予的各自角色的调用作为其成分的每个个体Web Service,这样的商业流程可能包括财务报表管理、预测支持或5年IT计画等。
Web Service运行机理
服务提供者通过服务注册中心发布自己的Web Service,以供服务请求者查找和调用,服务请求者(Java、VB等应用程式)通过服务注册中心查找到Web Service描述档案,服务注册中心授权给服务请求者,继而通过WSDL描述文档创建相应的SOAP请求讯息。Web Service放在具体的可执行环境(J2EE、CORBA、JMS)中,服务描述与可执行环境通过一个映射层相分离,映射层通常以代理(Proxy)或桩(Stub)的形式实现;SOAP请求通过HTTP传送给可执行环境。Web Service在完成服务请求后,将SOAP返回讯息通过HTTP传回请求者,服务请求者再根据WSDL文档将SOAP返回讯息解析成自己能够理解的内容。
转载请注明出处海之美文 » Web Service体系框架