欢迎来到我的Blogs,希望在这里能同大家一起分享知识所带给我们的快乐。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

      
       当今,Web Services成为了业界关注的焦点,其魅力在于它是一种分布式计算平台,在该平台下基于Web为异构系统(running on a variety of platforms and/or frameworks)提供了一种松散耦合(Loosely-Coupled)的连接方式。这在以前是难以想象的,Web Services将改变人们对软件的理解。
       这方面我算个新手,以前读了些文章来了解Web Services,但文章大多都并没有系统的讲述到底什么是Web ServicesWeb Services的发展现状如何,Web Services下一步该何去何从。所以在今后的一段时间里,打算从根追寻,那现在就从Web服务的老家W3C(http://www.w3.org/2002/ws/Activity)开始我们的旅程吧:)朋友们,在旅程中请提出你们自己的见解,我们一同收获,少走弯路。 

       一.Web Services体系结构(WSA) 
       W3C中的Web Services Architecture Working Group于2004年1月完成了对Web Services体系结构
标准的制定。该标准旨在给出对Web Services的通用定义,并提供一种通用体系模型,但它不对Web Services该如何具体实现作出描述。这里,我要说的是,不知道大家对WSE(Web Services Enhancement)是否了解,它是微软为了弥补.net framework中对Web Services支持的不足而提出了策略性的补充;WSE实际上就是一个完整的Web Services体系架构的实现,我认为WSE的设计思想同W3C中所提出的模型是基本吻合的。如何大家能够将两者结合着学习,可能效果会更好:)
       1.什么是Web Services? 
        Web Services是一种软件系统,用于支持计算机间通过网络进行交互。它提供了一种计算机可识别的接口(WSDL)。系统间通过接口所定义的描述使用 Web Services进行交互,通常是使用HTTP和XML来传递SOAP消息,也可以使用其它与Web相关的传输协议。

[Definition: A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.]  
        那系统间是如何使用Web Services呢?下图给出了服务请求者(requester )服务提供者(provider)之间的交互模型,并用序号标注了具体步骤:
             
       具体步骤: 
           (1)服务请求者与提供者相互(至少是一方)识别到对方。 
           (2)就各自代理(Agent)间所要共同遵循的服务描述(Service Description)与语义(Semantics),双方达成共识。 
           (3)双方将服务描述与语义提交给各自的代理,并由它们来实现。 
           (4)各方代理进行消息传递,帮助服务请求者与提供者完成任务。 
       其中,代理是Web Services的具体实施者,它帮助服务请求者与提供者完成服务操作。服务描述是由WSDL(Web Services Description Language)编写的,规定了消息交换机制,定义了消息的格式、数据类型、传输协议以及传输序列化格式等信息。语义是对服务本身行为的描述。      
       2.Web Services体系结构模型(Model) 
       W3C在讲述Web Services体系结构模型前,首先强调了两个重要的定义:概念(Concepts)和关系(Relations)。概念:用于描述模型中各种事物或属性,具有名词性,其内容包括对此概念的一段简短的描述、所涉及的关系以及一段较长的解释;关系:描述了概念间的关联,具有动词性。我个人认为它们有点像UML中的类与关联。
       大概是鉴于Web Services体系结构模型的复杂性,简单的一张图表难以将全部内容描述清楚。同样,类似于RUP中的五视图建模方法,这里从四个角度分别建模来反映Web Services体系结构。看样面向对象的建模思想无处不在啊,呵呵。下面我们就来看一下Web Services体系结构是由哪四个模型组成的:
       首先,如下图所示,我们看到的是这四个模型的关系图。图中每个模型中的方框中的标签指明了该模型的关键概念。
         
         ★面向消息模型(Message Oriented Model,MOM):MOM是从消息的角度出发,关注消息(Message)、消息结构(Message Structure)、消息传输(Message Transport)等内容。
         下面显示的模型只是一个简单的面向消息模型,随后将给出详细的面向消息模型。
         (1) 简单的面向消息模型:
          
          
        图中,方框的中标签显示的是上面所提到的“概念”,而方框间的箭头则表示“概念间的关系”了。MOM中涉及到几个重要的概念:代理(Agent),用于发送和接收消息;消息(message);消息体(body)和消息头部(headers),它们都是消息的组成部分。
         (2)详细的面向消息模型:
           
       W3C中对模型中的每个概念都进行了详细介绍,包括概念定义(Definition)、关系(Relations)以及解释(Explanation)。这里就不再一一赘述了,可以参阅原文,链接将在本文最后提供给大家,我只列出一些自己感觉重要的概念列举出来。
         ①地址(Address)表示消息(Message)要发送的位置,应该包含在消息(Message)当中。
         ②消息只有一个发送者(Sender),但可以有一个或多个接收者(Receiver);另外,消息只有一个消息体,但可以有多个消息头部。
         ③消息相关器(Message Correlation)是与消息一对一的标识,通过消息相关器可以找到它所对应的消息。可以在消息中定义相关器内容(Implicitly),或者在消息传递中定义(Explicitly)。
         ④消息交换模式(Message Exchange Pattern ),它是一种代理间交换消息的通用模式。一些协议天生就支持某种特定的MEP,例如,HTTP支持请求\响应(Request\Response)模式,这就意味着有当一个调用请求消息发出后,将会有一个与其相关的响应消息返回。当然,MEP还有很多种模式,不局限于请求\响应。
         ⑤消息传输(Message Transport)用于指明消息使用了何种传输机制,比如基于TCP的HTTP,SMTP,消息中间件(MSMQ、JMS)等等。
         ⑥消息可靠性(Message Reliablity),其目的在于减少消息传递中发生的错误,当错误发生时能提供一种补偿方案。
       ★面向服务模型(Service Oriented Model)
              见续文
              

                        
           -------------------------------
           W3C介绍Web Services Architecture的原文链接:http://www.w3.org/TR/ws-arch/

          

          

         

posted on 2005-08-06 16:50  未知先觉  阅读(1225)  评论(0)    收藏  举报