|
Web 服务概念性体系结构(Web Services Conceptual Architecture 1.0 第1部分)广告 Web 服务概念性体系结构(Web Services Conceptual Architecture 1.0 第1部分)
本文从组件、交互以及应用程序开发模式的观点描述了 Web 服务的体系结构。这个体系结构是 IBM 对 Web
服务方法进行实例化的一张蓝图。它是构建和部署 Web 服务应用程序的框架。 目标读者 IBM 公司以外的评估 IBM Web 服务方法的技术评论家。 Web 服务概览 Web 服务:电子商务的新天地 Web 服务使应用程序的集成比以前更快、更容易而且更便宜。集成在协议栈中较高层发生,它基于更注重服务语义而不那么注重网络协议语义的消息,从而实现了业务功能的松散集成。这些特性对于在企业之间和企业内部通过 Web 连接业务功能是非常理想的。它们提供一种一致化编程模型,从而在企业内外都可以利用通用的基础设施并以一种通用的方法进行应用程序集成。利用现有的语言和平台以及旧应用程序,可以以一种增量的方式来集成和应用 Web 服务。此外,Web 服务遵循 Java 2 平台,企业版(Java 2 Platform,Enterprise Edition,J2EE)、通用对象请求代理体系结构(Common Object Request Broker Architecture,CORBA)以及其它针对与耦合较紧的分布式或非分布式应用程序集成的标准。Web 服务是部署并提供通过 Web 访问业务功能的技术;J2EE、CORBA 和其它标准是实现 Web 服务的技术。 尽管 Web 服务早先是类似对等的并且是专用的,但它仍能解决程序到程序通信的整个问题,包括描述、发布和查找接口。而且,随着 Web 服务的使用越来越多以及行业的成熟,将会有更多的应用程序集成的动态模型发展起来。最终,通过 Web 服务进行系统集成将会在运行时动态发生。即时集成将宣布通过因特网进行企业到企业集成的新纪元的到来。 Web 服务的定义 Web 服务模型
图 1. Web 服务角色、操作和构件 Web 服务体系结构中的角色 服务提供者。从企业的角度看,这是服务的所有者。从体系结构的角度看,这是托管访问服务的平台。
Web 服务体系结构中的操作 发布。为了使服务可访问,需要发布服务描述以使服务请求者可以查找它。发布服务描述的位置可以根据应用程序的要求而变化(请参阅“服务发布”以了解更多细节)。
Web 服务的构件 服务。在这里,Web
服务是一个由服务描述来描述的接口,服务描述的实现就是该服务。服务是一个软件模块,它部署在由服务提供者提供的可以通过网络访问的平台上。服务存在就是要被服务请求者调用或者同服务请求者交互。当服务的实现中利用到其它
的Web 服务时,它也可以作为请求者。
Web 服务体系结构解释了如何实例化元素和如何以一种可以互操作的方式实现这些操作。 Web 服务开发生命周期 Web 服务开发生命周期包括了设计和部署以及在运行时对服务注册中心、服务提供者和服务请求者每一个角色的要求。每个角色对开发生命周期的每一元素都有特定要求。服务注册中心的开发和部署不在本文的范围以内。 开发生命周期有以下四个阶段: 1. 构建 2.
部署 3. 运行 4. 管理 体系结构概览 Web
服务协议栈 概念性 Web 服务协议栈 图2. Web 服务概念性协议栈 Web 服务协议栈的基础是网络层。Web 服务要被服务请求者调用,就必须是可以通过网络访问的。因特网上可以公用的 Web 服务使用普遍部署的网络协议。HTTP 凭借其普遍性,成为了因特网可用的 Web 服务真正的标准网络协议。Web 服务还可以支持其它因特网协议,包括 SMTP 和 FTP。内部网域可以使用可靠消息传递和调用基础结构,如 MQSeries 和 CORBA 等等。本文的“网络层”部分将更详细地描述这个层。 下一层是基于 XML 的消息传递,它表示使用 XML 作为消息传递协议的基础。选择 SOAP 作为 XML 消息传递协议有很多原因: 它是使用 XML 传送以文档为中心的消息以及远程过程调用的标准化封装机制。 服务描述层实际上是描述文档的一个协议栈。首先,WSDL 是基于 XML 的服务描述的真正标准。这是支持可互操作的 Web 服务所需的最小标准服务描述。WSDL 定义了服务交互的接口和结构。要指定业务环境、服务质量和服务之间的关系,我们还需要另外的描述。WSDL 文档可以由其它服务描述文档来补充,从而描述 Web 服务的这些更高级的方面。例如,描述业务环境除了使用 WSDL 文档,还要使用 UDDI 数据结构。Web 服务流程语言(Web Services Flow Language,WSFL)文档中则描述了服务组成和流程。“服务描述:从 XML 消息传递到 Web 服务”部分更详细地描述了这一层。 因为 Web 服务被定义为可以通过 SOAP 从网络进行访问,并由服务描述表示,所以该协议栈中的前三层需要提供或使用 Web 服务。最简单的协议栈将包括网络层的 HTTP、XML 消息传递层的 SOAP 协议以及服务描述层的 WSDL。所有企业间或公用 Web 服务都应该支持这种可互操作的基础协议栈。Web 服务,特别是企业内部或专用 Web 服务,能够支持其它的网络协议和分布式计算技术。图 3 描述了可互操作的基础协议栈。 图 3. 可互操作的基础 Web 服务协议栈 图 3 中描述的协议栈提供了互操作性,它使 Web 服务能够利用现有的因特网基础结构。这将使进入普遍存在的环境的成本非常低。灵活性并不会因为互操作性需求而有所降低,因为我们可以为选择性和增值的技术提供另外的支持。例如,我们必须支持 HTTP 上的 SOAP,但也可以同时支持 MQ 上的 SOAP。 协议栈的最下面三层确立了保证一致性和互操作性的技术,而它们上面的两层,即服务发布和服务发现,可以用多种解决方案来实现。 任何能够让服务请求者使用 WSDL 文档的操作,不管它处于服务请求者生命周期的哪个阶段,都符合服务发布的标准。该层中最简单、最静态的示例就是服务提供者直接向服务请求者发送 WSDL 文档。这被称为直接发布。电子邮件是直接发布的载体之一。直接发布对静态绑定的应用程序来说很有用。另外,服务提供者还可以将描述服务的文档发布到主机本地 WSDL 注册中心、专用 UDDI 注册中心或 UDDI 运营商节点。我们将在“服务发布”部分更详细地讨论各种不同的服务发布机制。 因为 Web 服务如果没有被发布就不能被发现,所以说服务发现依赖于服务发布。该层的各种发现机制和一组发布机制互相平行。任何允许服务请求者获得对服务描述的访问权,并在运行时使应用程序能够使用该服务描述的机制都符合服务发现的标准。最简单、最静态的发现的示例是静态发现,其中服务请求者从本地文件获取 WSDL 文档。这通常都是通过直接发布获取的 WSDL 文档,或者前面查找操作的结果。另外,也可以通过使用本地 WSDL 注册中心、专用 UDDI 注册中心或 UDDI 运营商节点在设计时或运行时发现服务。我们将在“服务发现”部分更详细地讨论各种不同的服务发现机制。因为 Web 服务实现是一种软件模块,所以通过组建 Web 服务来产生 Web 服务是很自然的。Web 服务的组合可以扮演很多角色之一。企业内部的 Web 服务可能会相互合作,从而对外显示出一个单独的 Web 服务接口,或者,来自不同企业的 Web 服务可以相互合作,从而执行机器到机器、企业到企业的事务。另外,工作流程管理者还可以在参与业务流程的时侯调用每个 Web 服务。最上面一层,即服务流程,描述了如何执行服务到服务的通讯、合作以及流程。WSFL 用于描述这些交互。Web 服务这个主题在它自己那一部分,即“业务流程、工作流程和 Web 服务”中有所描述。 要使 Web 服务应用程序满足当今电子商务的迫切需求,就必须提供企业级基础结构,包括安全性、管理和服务质量。这几个垂直条在协议栈的每一层都必须得到解决。每一层的解决方案可以彼此独立。随着 Web 服务范例的采用和发展,将会出现更多此类垂直条。我们将在“真正电子商务的 Web 服务”部分讨论这些垂直条。 该协议栈的最下面几层表示基础 Web 服务协议栈,它们相对于协议栈中上面几层来说更成熟,也更标准。Web 服务的成熟和采用将会带动协议栈中上面几层和垂直条的开发和标准化。 网络层 对于可以从因特网访问的 Web 服务,人们选择网络技术的时侯通常会倾向于选择普遍部署的协议,如 HTTP。对于内部网中提供和使用的 Web 服务,使用另外的网络技术也会被认同。我们可以根据其它需求选择网络技术,包括安全性、可用性、性能以及可靠性。这使得 Web 服务可以利用已有的功能更高级的联网基础结构和面向消息的中间件,如 MQSeries。在有多种网络基础结构的企业中,HTTP 可以用来在这些基础结构之间搭建桥梁。 Web 服务的好处之一在于,它为专用内部网和公用因特网服务的开发和使用提供了统一的编程模型。所以,网络技术的选择对服务开发者来说是透明的。 基于 XML 消息传递的分布式计算 SOAP 是一种简单的、轻量级的基于 XML 的机制,用于在网络应用程序之间进行结构化数据交换。SOAP 包括三部分:一个定义描述消息内容的框架的信封、一组表示应用程序定义的数据类型实例的编码规则,以及表示远程过程调用(remote procedure calls,RPC)和响应的约定。SOAP 可以和各种网络协议(如 HTTP、SMTP、FTP 和 IIOP 或 MQ 上的 RMI)相结合使用,或者用这些协议重新封装后使用。 虽然理解这个基础很重要,但多数 Web 服务开发者不必直接处理这个基础结构。大多数 Web 服务都会使用从 WSDL 生成的经过优化的特定于编程语言的绑定。当服务提供者和服务请求者都在类似的环境中执行时,这种优化可能尤为重要。 图 4 展示了 XML 消息传递(即 SOAP)和网络协议如何组成 IBM Web 服务体系结构的基础。
图 4. 使用 SOAP 的 XML 消息传递 网络节点在基于 XML 消息传递的分布式计算中扮演提供者和请求者的角色的基本要求是构建、解析 SOAP 消息的能力(或两者),以及在网络上通信的能力(接收、发送消息,或两者)。 通常,在 Web 应用程序服务器中运行的 SOAP 服务器将执行这些功能。另外,我们也可以使用在 API 中封装这些功能的特定于编程语言的运行库。应用程序与 SOAP 的集成可以通过使用四个基本步骤来实现: 在图 4 中,服务提供者的应用程序在(1)创建一条 SOAP 消息。这条 SOAP 消息是调用由服务提供者提供的 Web
服务操作的请求。消息主体中的 XML 文档可以是一个 SOAP RPC
请求,也可以是一个服务描述中所描述的以文档为中心的消息。服务请求者将此信息和服务提供者的网址一起提供给 SOAP 基础结构(例如一个 SOAP
客户机运行时)。SOAP 客户机运行时与一个底层网络协议(例如 HTTP)交互,然后在网络上将 SOAP 消息发送出去。
本示例使用了请求/响应传送基本原理,这种原理在大多数分布式计算环境中都很常见。请求/响应交换可以是同步的,也可以是异步的。其它传送基本原理,如单向消息传递(无响应),通知(推动式响应)以及发布/订阅,也可能用到 SOAP。 那么,服务请求者如何知道请求消息应该使用什么格式呢?这个问题在下面一部分中会得到回答。 参考资料 AXIS http://xml.apache.org/axis
浏览:Web 服务概念性体系结构(WSCA 1.0 第2部分)
如果您希望与本文章的作者或其所在机构,进一步交流,请联系:畅享网 姜小姐 jill.jiang@amteam.org | 021-51096826-112 | 在线联系 |
节能与优化IT 企业CIO过冬良策当前金融危机的影响还在继续漫延,很多企业都在苦寻过冬的良策,在这种情况下,节能与优化技术与产品无疑成为CIO们关注的首要对象,本次选题就是针对节能与优化IT来为CIO们提供过冬的良…… |
|
|