【摘要】本文从web服务体系结构中的角色、操作以及协议栈三个方面剖析了Web服务的体系结构,通过本文能够对web服务有一个清晰的认识。
【关键词】Web角色操作栈
一、Web服务的概念
Web服务是一种部署在Web上的对象,它们具有对象技术所承诺的所有优点。同时,Web服务建立在以XML为主的、开放的Web规范技术基础上,因此具有比任何现有对象技术更好的开放性,是建立可互操作的分布式应用程序的新平台。Web服务平台是一套标准,它定义了应用程序如何在Web上实现互操作性,可以用任何语言、在任何平台上编写所需要的Web服务。
二、Web服务的体系结构
2.1体系结构中的角色
Web服务的体系结构是基于三种角色(服务提供者、服务请求者和服务注册中心)之间的交互,它是一种面向服务的体系结构(Web Services-Oriented Architecture,简称SOA)。
服务提供者是可通过网络地址访问的实体,它从服务请求者接受和执行请求。它发布服务和接口到服务注册中心以便于服务请求者能发现和访问该服务。
服务注册中心是可搜索的服务描述注册中心,服务提供者在此列出他们的Web服务清单。服务请求者可以从服务注册中心搜索Web服务。服务注册中心己包含了一个可利用的服务仓库和允许服务请求者查找他们感兴趣的服务提供者接口,使服务发现成为可能。
服务请求者是一个应用程序、一个软件模块或是另一个需要其它服务的服务。它向注册中心提出服务请求,通过传输器绑定该服务,然后执行该服务功能。服务请求者通过接口调用该服务。
2.2体系结构中的操作
利用Web服务,必然会发生以下三个行为:发布服务描述、查询或查找服务描述以及根据服务描述绑定或调用服务。这些行为可以单次或反复出现,这些操作具体为:①发布(publish)。为了使服务可访问,服务提供者向服务注册中心注册自己的功能和访问接口,发布服务描述以使服务请求者可以查找它。②查找(find)。服务请求者向服务注册中心检索服务描述或在服务注册中心中查询所要求的特定服务。在查找操作中,服务请求者直接检索服务描述或在服务注册中心中查询所要求的服务类型。对于服务请求者,可能会在两个不同的生命周期阶段中牵涉到查找操作在设计时为了程序开发而检索服务的接口描述,而在运行时为了调用而检索服务的绑定和位置描述。③绑定(bind)和调用(invoke)。在检索服务描述后,服务请求者最后需要绑定以调用服务。在绑定操作中,服务请求者使用服务描述中的绑定细节来定位、联系和调用服务,从而在运行时调用或启动与服务的交互。
2.3Web服务协议栈
要以一种可互操作的方式执行发布、发现和绑定这三个操作,必须有一个包含每层标准的Web服务协议体系。一个概念性Web服务协议栈,上面的层应建立在下面层提供的功能之上,并且协议栈中每层必须应用一定的标准技术,满足不同的需求。
我们把Web服务的互操作栈协议分为网络层、消息传递(XML)层、服务描述层、服务发布发现层和服务流程层,Web服务协议栈各层的功能如下:①网络层。Web服务协议栈的基础是网络层,Web服务要被服务请求者调用,就必须通过网络访问。②消息传递层。网络上的信息可以是任何格式的,但是信息的发送者和接收者必须互相明白信息里的数据才能完成一次有意义的交换,这就是消息传递层SOAP要解决的问题。③服务描述层。如果服务的提供者和请求者能够成功的进行交互,它们之间必须拥有更高一层的认识,描述层就提供了这样一种认识机制。Web服务的接口和实现均由WSDL来定义。使用WSDL开发可以描述一组Web服务的操作,包括每个操作的输入、输出参数与网络和数据编码结合的不同方式。④服务发布发现层。描述了绑定和调用某个Web服务的详细信息,但是服务请求者如何才能取得某个Web服务的WSDL文档呢?此时,就需要有一个发布发现层UDDI来实现WSDL文档的发布和查找。作为目录技术的标准协议UDDI,提供使用基于性能的查找来发现Web服务或者商务伙伴的功能,服务请求者可以按照服务的类型和服务的性能来发现所需要的Web服务。⑤服务流程层。单独的Web服务只能完成单一的操作,而事实上的活动,都不是单一的操作所能够完成的系列操作步骤,并且在大部分情况下,这些操作不是相互独立的,而是需要互相协作,从而形成一个服务流程。
所有的机制完全是基于现有的技术,并没有创造一个完全的新体系。无论是HTTP, FTP等现有的网络协议,还是SOAP, WSDL等基于XML定义的协议,都是遵循继承原有的被广泛接受的技术,这样才使得Web服务被广泛接受。
百度搜索“爱华网”,专业资料、生活学习,尽在爱华网!