1、1第十讲 Web 服务技术标准与规范所谓 Web 服务(Web Services)是指由企业发布的完成其特别商务需求的在线应用服务,其它公司或应用软件能够通过 Internet 来访问并使用这项在线服务。 Web 服务技术促进了 Internet 上企业之间的协作,使用 Web 服务可以使合作伙伴的信息系统之间更容易地进行通信。但随之而来的问题是:如何集成来自不同企业的服务?为了使 Web 服务易于使用,众多组织已经致力于 Web 服务技术,进行标准协议的制定,提供 Web 服务的创建工具和解决方案。本讲将以 Web 服务栈为中心介绍 Web 服务技术涉及的一些关键标准和规范,如SOAP、 W
2、SDL、UDDI 等。Web 服务标准本身是不断发展变化的,文中着重介绍目前被普遍接受的底层标准,并对还需要进行标准化的领域进行简单的讨论。1Web 服务Web 服务是可以在组织内部或者公司之间的异构计算资源中被共享、组合、使用和复用的商业资产。Web 服务是一个可编程的部件,它提供一种易于通过 Internet 获取的商业服务。Web 服务可以是独立的,也可以连接在一起向外部世界提供更强大的系统功能。Web 服务将逐渐成为构建电子商务应用的基础体系结构。基于 Web 服务的体系结构是从一个分布式面向对象部件的系统向一个服务网络的逻辑演进,该服务网络提供一个能够跨企业集成的松散耦合的底层基础结
3、构。Web 服务是基于 Internet 的模块化应用,它们执行特定的商业任务并遵循特定的技术格式。如果应用中的某过程可以在 Internet 上以一种标准格式被调用,称之为 Web 服务的服务器;类似的,如果通过 Internet 调用本应用以外的某过程,则是 Web 服务的客户。因此,实质上 Web 服务是 Internet 上应用之间的客户服务器,目的是实现 B2B 伙伴之间的个性化信息交换,并以一种易用的格式提供和发布应用模块。为了实现这种开放工作,必须要有标准的格式和方法。几乎所有的主流技术公司都已相继涉足 Web 服务的标准化工作,参与了各种标准化组织。当前,最主要的标准化组织是
4、W3C(World Wide Web Consortium)。其它组织也做了大量的工作,如 UDDI.org,OASIS,UN/CEFACT ,BPMI.org,以及 ebXML.org 等。Web 服务栈(Web Services Stack)Web 服务不同于已有的构件对象模型以及相关的对象模型协议,如 CORBA 和IIOP(Internet Inter-ORB Protocol)、COM 和 DCOM 以及 Java 和 RMI(Remote Method Invocation)。Web 服务可以用任何语言编写,并且可以使用 HTTP 访问。从技术上看,一个 Web 服务是一个由内容、
5、应用代码、过程逻辑、或者这些部分的任意组合所构成的XML 对象,并且可以通过任何 TCP/IP 网络访问,只要网络中使用 SOAP 标准集成,使用WSDL 标准进行自描述,使用 UDDI 标准在一个公共的或者私有的目录中注册和发现。如图 1 所示,Web 服务由多个层构成,这些层堆叠在一起形成了发现和调用一个独立的 Web 服务所提供功能的标准机制的基础。即, Web 服务栈以层次结构来表示,高层在低层的基础之上构建。2图中 HTTP 提供了分布式应用之间的通信机制,XML 定义了数据交换和描述的格式,SOAP 是调用 Web 服务的协议, WSDL 描述 Web 服务的格式,而 UDDI 则
6、是注册、查找和使用 Web 服务的中枢组织。下面分别介绍这些协议及相关的规范。2 HTTPWeb 服务栈中的最底层是网络层,也可以称为协议层。分布式的应用需要有网络协议来定义两个并发过程之间的通信机制。概念上,Web 服务的设计是与协议无关的,在图 1的分层体系结构模型中,从底向上任何标准的 Internet 协议都可以用于在网络上调用 Web服务。但目前主要是 HTTP(Hypertext Transport Protocol)和 HTTPS(Hypertext Transport Protocol Secure )协议。HTTP/1.1 是一个基于文本的、 “请求响应”(request-r
7、esponse)型的协议,它规定一个客户打开到服务器的一个连接,然后以专门的格式发送一个请求,服务器进行响应,同时如果必要则保持连接的打开状态。HTTP 使用的普遍性及其固有的穿防火墙的能力使它成为主导的 Web 服务网络协议。但同时由于 HTTP 是基于文本的协议而缺乏表示远程过程调用(RPC)消息参数值的机制。其它的请求/响应类型的传输协议,如文件传输协议( File Transfer Protocol,FTP)和简单邮件协议(Simple Mail Transport Protocol,SMTP)也可以使用,但是并没有在 Web服务的各种标准中定义,目前也只有极少数实现支持这些协议。另外
8、,最近 IBM 发布了一个可靠通信协议的提案,称作 HTTPR。HTTPR 在 HTTP 的基础上加强了可靠性,在保持 HTTP 优点的同时能够保证消息可以不受阻碍地发送到目的地。可靠的通信对 Web 服务来说是一个非常关键的方面,虽然目前对由协议层实现是否最适合仍然有争议,但在不远的将来它肯定会以某种形式出现。3XML (Extensible Markup Language,可扩展标记语言)基于 XML 的消息层包括数据表示、数据格式和消息传输协议。XML 为信息交换定义了描述和格式。数据表示HTTP 是一种基于文本的协议,因而缺乏表示 RPC 消息中的参数值的机制,这也是XML 作为 We
9、b 服务的一个重要成分出现的原因。 XML 是一种元语言,可以通过标准的UDDIWeb 服务 & WSDLHTTP/HTTPS, SMTP, FTPSOAP/XML 服务发现层服务描述层基于 XML 的消息层网络层图 1 Web 服 务 栈3编码和格式化信息的方法进行跨平台的数据交换。XML 允许数据被串行化为易于被任何平台解码的消息格式,提供了在网络应用之间交换结构化数据的机制。XML 采用纯文本表示,设计的初衷是为了存储、传送和交换数据的。XML 是一种标记语言,标记在 XML 中不是预先确定的,而必须由使用者自己定义。XML 允许使用者自由发表有用的信息,不仅可以是有关数据结构的,也可以
10、是关于数据意义的。另外,XML 文档的结构、内容和外观可以作为三个不同的部分进行维护,提供了更高的独立性。对于数据表示层来说,可扩展性是一个关键因素。为了支持可扩展性,Web 服务需要一种机制以避免名字冲突,并允许一个程序只处理自己所关心的元素。XML 名空间(namespaces)提供了一种简单、通用的方式以区分相同名字的元素或属性。为了支持可扩展性,XML 中的每个元素和属性都有一个相关的名空间 URI。数据格式Web 服务需要一种方法定义 Web 服务消息中使用的数据类型。XML Schema 规范标准化了一个描述 XML 数据类型的符号集,还定义了一个内置简单数据类型的集合和在各XML
11、 文档中建立元素类型的机制。 XML Schema 规定了 XML 文档的逻辑结构,定义了元素、元素属性以及元素和元素属性之间的关系。XML 仍然处于不断的发展中。需要说明的是, XML 本身只是一种标记语言,只是进行描述,并不提供商务逻辑,Web 服务提供对这些逻辑的访问。这也是为什么 Web 服务的更高层的、基于 XML 概念同样非常重要的原因。 4SOAP(Simple Object Access Protocol,简单对象访问协议)SOAP 是目前被广泛接受的消息传输协议。SOAP 是一个为信息交换设计的轻量协议,用于在网络应用程序之间交换结构化数据,是一种基于 XML 的机制。SOA
12、P 主要是在分布的、分散的环境中提供了一个跨 Internet 调用服务的框架结构,并提供了独立于编程语言和分布对象底层基础结构的跨平台集成机制。SOAP 代表了 xml-rpc 的发展,已经被W3C 作为一种 Internet 标准采纳。SOAP 是一个远程过程调用(RPC )协议,使用标准的 Internet 协议进行传输:同步调用时的 HTTP 或异步调用时的 SMTP。由于可以在 HTTP 上运行,这使得 SOAP 在穿防火墙进行操作的方面优于 DCOM、RMI 和 IIOP,而在嵌入设备上实现 SOAP 也比开发一个ORB 更简单。SOAP 的主要设计目标是简单性和可扩充性。为了到达
13、这两个目标,SOAP 中省略了在其它消息系统和分布式对象系统中常见的一些特性,如无用存储单元收集、消息批处理等。SOAP 没有定义一种编程模型或实现,而是定义了一个模块化的包装模型,并在模块内定义了编码数据的编码机制。这使得 SOAP 可以在从消息传递系统到远程过程调用的任何系统中应用。SOAP 的组成SOAP 由四个部分组成: (1)一个 SOAP 封皮(Envelope ),定义了描述消息所包含信息的框架结构,即消息中包含什么信息、由谁来处理以及是必需的或可选的。 (2)一组 SOAP 编码规则(Encoding rules),定义了一个串行化机制,用于交换应用定义的数据类型的实例。SOA
14、P 编码的类型使用简单的标量类型和复合类型,如结构4和数组。这些类型以 XML 文档元素的形式表现, XML Schema 规范中定义的数据类型以及这些数据类型的派生类型都可以直接用作 SOAP 元素。 (3)SOAP RPC 表示,定义如何表示远程过程调用和响应。 SOAP 的设计目标之一是用 XML 的可扩展性和灵活性封装 RPC 功能,在 SOAP1.2 中详细定义了 RPC 和响应的统一表示,将对一个方法的调用和响应作为结构来建模,结构中包含了返回值,或者还可能包括传入的参数。 (4)SOAP 绑定(binding),定义如何使用底层传输协议进行 SOAP 消息的交换。虽然 SOAP
15、本身可以和多种协议结合使用,但 SOAP1.2 中只描述了在 HTTP 中的使用。SOAP 和 HTTP 绑定可以同时使用 SOAP 的形式方法与分散的灵活性以及 HTTP 丰富的特性集。在 HTTP 中使用 SOAP 并不意味着 SOAP 覆盖了 HTTP 现有的语义,而是 SOAP 继承了 HTTP 的语义。SOAP 消息SOAP 消息是用 XML 编码的文档,由三个部分组成: (1)SOAP 封皮(SOAP Envelope ),是描述 SOAP 消息的 XML 文档的顶点元素。 (2)SOAP 消息头(SOAP Header),提供了一种灵活的机制对 SOAP 消息以分散的、模块化的方
16、式进行扩充,而通信的各方(SOAP 发送者,SOAP 接收者以及 SOAP 中介)不必预先知道。SOAP 消息头是可选的。 (3)SOAP 消息体(SOAP Body),定义了一个简单的机制来交换要发送给最终SOAP 接收者的消息中的必要信息,是这些信息的容器。典型的使用是编组 RPC 调用和SOAP 错误报告。SOAP 消息交换模型SOAP 消息是单方向的,从一个 SOAP 发送者(sender)到一个 SOAP 接收者(receiver)。但单独的消息通常可以被组合在一起形成其它消息机制。例如,SOAP通过在 HTTP 请求中提供一个 SOAP 请求消息和在 HTTP 响应中提供一个 SO
17、AP 响应消息实现 HTTP 的请求/响应消息模型。SOAP 消息交换模型要求接收到一个 SOAP 消息的应用程序执行下列操作:(1)识别 SOAP 消息中意图供给本应用的部分,本应用可以作为 SOAP 中介将消息的其它部分传递给另外的应用。(2)检验 SOAP 消息中指定的所有必须处理的部分,并进行相应的处理。(3)如果 SOAP 应用不是消息的最终目的地,它应该在删除所有自己消耗的部分后将消息转发给消息要供给的下一个应用。SOAP 只是一种包装和绑定调用一个 Web 服务所需信息的方式, Web 服务也可以使用其它的编码技术调用。另外,SOAP 本身没有严格地归入 Web 服务,SOAP
18、可以作为一种对任何类型的远程对象或过程的访问机制使用,也可以只是一个简单的消息传递机制。除了 SOAP 以外,W3C 创建的 XMLP 工作组还建立了 XML 协议(Extensible Markup Language Protocol,XMLP)。XMLP 是类似于 SOAP 的 XML 消息协议,包括封皮、对象串行化方式、HTTP 传输绑定以及进行远程过程调用的方式几个部分。甚至有人认为XMLP 将逐步取代 SOAP。5WSDL(Web Services Description Language,Web 服务描述语言)Web 服务的目标之一是允许应用程序以标准的方式在两个或多个同等的服务之
19、间进行选择,因为有时应用可以由作为支持网络的服务而实现的构件构造而成,甚至可以从这些5服务中进行动态选择。服务描述层定义了为程序提供足够信息所需的描述机制,使程序能够根据一定的准则选择服务,如服务的质量、安全性、可靠性等。到 Web 服务的接口由基于 XML 的 WSDL 定义,它提供了应用访问指定的 Web 服务所必需的全部信息,描述服务提供了什么功能、服务位于何处以及服务如何调用。WSDL 以 XML 格式描述网络服务,将服务描述为在包含面向过程或面向文档信息的消息上进行操作的一组端点。操作和消息是抽象描述的,然后绑定到具体的网络协议和消息格式以定义一个端点。相关的具体端点被组合成为抽象端
20、点(服务)。WSDL 是可扩展的,允许描述任何端点和消息,而不考虑通信使用的消息格式或网络协议。WSDL 使用下面的元素定义网络服务: 类型(Types),使用某种类型系统的数据类型定义的容器。WSDL 并没有引入新的类型定义语言,而将 XSD 作为自己的标准类型系统,并允许通过可扩展性使用其它的类型定义语言。 消息(Message),对要传送的数据的一个抽象定义。 操作(Operation),对服务支持的动作的抽象描述。 端口类型(Port Type),一个或多个端点支持的操作的一个抽象集合。 绑定(Binding),对特定端口类型的一个具体协议和数据格式规格。 端口(Port ),一个单独
21、的端点,由一个绑定和一个网络地址组合在一起定义。 服务(Service),一组相关的端点的集合。一个 Web 服务由一组端口定义,而端口由绑定到一个具体协议和数据格式规范的一组抽象操作和消息定义。操作和消息的抽象是为了使它们可以复用和绑定到不同的协议和数据格式,如 SOAP、 HTTP GET/POST 或 MIME。在 WSDL 中,端点和消息的抽象定义是和它们的具体网络配置和数据格式绑定相分离的;另外,WSDL 定义了一个公共的绑定机制,用于将特定的协议或数据格式或结构连接到抽象的消息、操作或端点,这些都允许对抽象定义的复用。WSDL 目前已经被广泛支持,但还不是 W3C 推荐的标准语言。
22、6UDDI(Universal Description,Discovery,and Integration,统一描述、发现和集成)面对极度丰富的服务,最常出现的问题是“在哪里以及如何找到需要的信息?”。统一 UDDI 规范在底层协议的基础上又定义了一层,在这一层,不同的企业能够以相同的方式描述自己提供的服务和查询对方提供的服务。UDDI 是一套基于 Web 的、分布式的、为 Web 服务提供的信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的 Web 服务注册以使别的企业能够发现的访问协议的实现标准。信息结构UDDI 为表示 XML 中商业服务描述定义了一个数据结构标准,提供了更高
23、层次的商业信息以补充 WSDL 中的说明。 UDDI 定义了四种基本的结构: 商业实体(Business entity),描述商业信息,如名称、类型等。 商业服务(Business service),已发布的 Web 服务的集合。 绑定模板(Binding template),访问信息,如 URL。 技术规范(tModel),对服务类型的技术规格说明,如接口定义、消息格式、消息协议、安全协议等。6服务发布和发现在进行一个 Web 服务调用之前,必须先找到具有所需服务的企业,发现调用接口和语义,然后编写或配置自己的软件以便与服务合作。UDDI 的核心部件是 UDDI 商业注册,它用一个 XML
24、文档来描述企业及其提供的 Web 服务。UDDI 商业注册是一个基于 SOAP的 Web 服务,提供企业用于将它们的服务发布到注册中心的接口。注册中心是分布式的,彼此之间不断进行复制操作。Web 服务基本上是机器到机器的通信,为了有效工作,这种体系结构必须具有进行基于 Web 的应用和业务过程集成的有效工具。UDDI 商业注册中心包含三类信息,企业可以通过这些信息发现一个 Web 服务。 白页,包括企业的名称、地址、联系方式和企业标识,并允许其它公司按照名称查找目录。 黄页,包括基于标准分类法的行业类别。 绿页,包括了关于该企业所提供的 Web 服务的技术信息,其形式可能是一些指向文件或 UR
25、L 的指针,而这些文件或 URL 是为服务发现机制服务的。绿页还允许注册的公司之间使用 XML 进行连接,提供了业务过程自动化的关键机制。编程接口UDDI 规范提供了编程接口,允许商业注册一个 Web 服务,以及查找指定 Web 服务的注册。一旦想要的 Web 服务被确定,将提供一个指向 WSDL 文档所在位置的指针。编程接口分为查询 API 和发布 API 两个逻辑部分。查询 API 又分为两个部分:一部分用来构造搜索和浏览 UDDI 注册信息的程序,另一部分在 Web 服务出现错误时使用。发布 API 可以用来创建各种类型的工具,以直接与 UDDI 注册中心进行交互,便于企业技术人员管理发
26、布信息。使用 UDDIUDDI 规范包含了对基于 Web 的 UDDI 商业注册中心可以实施的整套共享操作。一般来说,程序或程序员通过 UDDI 商业注册中心来获得 Web 服务的位置及其技术信息。其中对于程序员来说,是对自己的系统实现准备,以使自己的系统能和那些 Web 服务实现访问兼容,或是描述自己的 Web 服务从而能让别人使用。从商业层次上来说, UDDI 商业注册中心可以被用于核查某个合作伙伴是否拥有特定的 Web 服务的调用接口,或是找出在某行业中能提供某种类型服务的公司,并确定某合作伙伴的 Web 服务的技术描述及交互时所需的技术细节。UDDI 是完全可选的,也就是说,具有 We
27、b 服务的公司,如果只是想对有限的人员或设备提供特定功能,它们不需要对外发布它们的服务。其它标准除了 UDDI 以外,服务发现层还有其它一些标准。如由 Microsoft 开发的DISCO( Discovery of Web Services)规范。DISCO 定义了一个基于 XML 的发现文档格式和一个检索该发现文档的协议。DISCO 允许开发人员通过一个 HTTP GET 操作发现服务。使用发现文档格式,可以将一个发现文档发送到一台远程服务器,如果存在支持 SOAP 的Web 服务,则收回一个服务所提供的 WSDL 描述。7服务集成和工作流工作流的概念在设计电子商务应用时愈加重要。当一个企
28、业需要集成来自多方的 Web服务并为终端用户组织这些服务时,必须掌握其系统的过程和顺序。对于这些具有异步特征的应用,适合使用工作流引擎。要使 Web 服务的实现不仅仅停留在简单的请求 /响应模7式上,商业过程协作和工作流是必不可少的,其中包括跨企业边界的 Web 服务的合成与自动化。要成功进行企业间的自动化和协作的必需条件是要有一个标准化的商业协议来描述这些商业过程。服务工作流领域目前尚未形成固定的标准,有一定影响的是 WSFL、Xlang以及 BPMI。WSFL Web 服务流程语言(Web Services Flow Language ,WSFL)是一个描述商业过程的规范。WSFL 提出了
29、两种 Web 服务组合的类型:一是商业过程,一是合作伙伴交互。商业过程作为一组为达到一个特定的商业目标而顺序执行的 Web 服务建模。合作伙伴交互描述Web 服务之间如何彼此交互。Web 服务被连接在一起以表明一个 Web 服务与另一个 Web服务接口的操作交互作用。 XLangXlang 是 Microsoft 的 BizTalk 服务器使用的 XML 商业过程语言。Xlang 用于描述商业过程,这些过程在运行时由 BizTalk 控制引擎(Orchestration engine)执行。Xlang 还允许将 Web 服务结合到商业过程中以及 Web 服务的组合。另外,Xlang 支持补偿过
30、程。Xlang不支持代价较高的两阶段提交协议,而是提供了一个可供选择的开放式模型的表示方法,其中可以为活动明确指定抵消该活动影响的补偿活动。由于 Microsoft 先前与 IBM 在 WSDL 和 UDDI 上的合作,有人认为将来二者可能会向W3C 提出将 Xlang 和 WSFL 结合起来的提议。BPMIBPMI( Business Process Management Initiative)推进公共商业过程的标准化。这些过程可能跨多个应用、部门或商业合作伙伴,可能在防火墙之后或者可以通过 Internet 访问。BPMI.org 制定了一些开放规范,如 BPML 和 BPQL,这使得可以
31、对电子商务过程用即将出现的 BPMS(Business Process Management System)进行基于标准的管理。 BPML(Business Process Modeling Language),是商业过程建模的元语言。 BPML将商业过程定义为为了达到一个共同目标在参与者和根据定义的规则集合执行的活动之间的交互作用。 BPQL(Business Process Query Language)是到一个过程服务器的管理接口,允许商业分析员查询由过程服务器管理的过程实例的状态,并控制过程实例的执行。该接口是基于 SOAP 的。为了过程的注册、广告和发现,由过程库管理的过程模型通过
32、BPQL 接口可以作为 UDDI 服务对外提供。BPML 和 BPQL 都是开放规范。8其它相关标准和领域其它许多组织在 Web 服务规范的制定方面也做了大量的工作。这里只简单介绍几种比较知名的规范。ebXMLEbXML 的结构类似 Web 服务栈,是在 Internet 上用标准技术引导电子商务的协议和规范的一个栈。EbXML 曾被考虑作为 Web 服务的另一个选择,其时间也早于 Web 服务模型。然而这两个模型之间有一些重叠,而 ebXML 更注重 EDI 方式的信息交换。一种可能的设想是 Web 服务模型和 ebXML 之间的逐步合并。UN/CEFACT 和 OASIS最近已经采纳 SO
33、AP 作为 ebXML 消息传递底层结构的基础。W3C 也积极考虑 ebXML 规范,并将并入规范中那些满足作为标准化 Web 服务体系结构的需求的方面。8JAX PackJAX Pack 是 Sun 封装了 Java 领域的各种标准的结果。JAX 是一组 XML 的 Java API,其设计支持 Web 服务标准 API,包括 SOAP、XMLP、WSDL 和 UDDI 等。JAX Pack 中包括的 API 如下: JAXP(Java API for XML Parsing),包含 SAX(Simple API for XML),DOM( Document Object Model)和 X
34、SLT。 JAXB(Java API for XML Binding),一种将 XML 数据类型定义编译到能够将XML 读入 Java 对象并将再其写回的 Java 类中的机制。 JAXM(Java API for XML-based Messaging),一个发送消息的基于 SOAP 的协议。 JAXR (Java API for XML Registries),一个包罗众多的规范,其中为 UDDI 和ebXML 注册及其它可能的注册提供了统一接口。 JAX-RPC (Java API for XML-based Remote Process Communication),一个请求远程服务器
35、上操作的基于 SOAP 的协议。除了上面描述的各种规范以外,还需要提及一些其它的重要领域,这些领域涉及 Web服务栈的所有层,其中包括安全性、管理、服务质量和事务等。在 Web 服务具有转换企业商业关系的能力之前,企业需要这些额外的特性以及随之而来的附加机制、安全、身份确认、合同管理、质量控制等。其中最重要的是安全性和事务。安全性XML 密钥管理系统(XML Key Management System,XKMS )是将 PKI 和数字化证书与 XML 应用集成的结果,由 W3C XML 签名工作组开发。该领域的其它规范包括安全服务标记语言(Security Services Markup La
36、nguage,S2ML )和 AuthXML,正由 OASIS XML安全服务委员会支持其统一标准化。BTP事务在 Web 服务中有独特的需求。在保证相关联的工作流可靠协调的同时,事务协议必须能够处理长时间运行的企业之间的商业事务。商务事务协议(Business Transaction Protocol,BTP )是一个基于 XML 的规范,用于描述和管理这些 Internet 上的复杂的、多步事务。BTP 为 XML 消息接口提供了一个开放规范,以支持来自不同 Internet 贸易伙伴的Web 服务的协调。另外,BTP 定义了一个模型来定义和管理这些交互以保证可靠消息传输和商业过程的完成而
37、无论其执行多长时间。BTP 最初由 BEA 开发并提交给 OASIS 商业事务技术委员会。该委员会的任务是定义需求、技术评估,最后产生一个商业事务协议的推荐规范,以补充现存的 Web 服务标准。9小结上面对 Web 服务相关标准、规范和组织的介绍可以通过图 2 进行一个小结。9至此,我们可以了解到 Web 服务领域的复杂性及其不断变化的特性。上文描述的 Web服务栈是一个开放规范集,其中有的是现有的 Internet 标准,有的还只是被广为接受的规范,正在逐步成为真正的标准。需要注意的是由于这些标准是不断发展变化的,因而在开发中使用时要考虑到变更是不可避免的,应该始终依据通用的设计原则和体系结
38、构。Web 服务栈定义了如何建造基于 Web 的解决方案,是实现互操作性的基础。Web 服务是否成功,首要因素在于能真正支持互操作性的开放标准。为此需要建立一致的标准和消除差异。各方面的参与者何时能够对这些标准达成一致意见对 Web 服务的成功程度起着决定性作用。参考文献1 Greg Heidel,Web Services Standards,White Paper ,Momentum Software Inc.2 SOAP Specification V1.1, W3C Note 08,2000.53 SOAP Version 1.2, W3C Draft,2001.7事务理服务集成/工作流
39、服务发布服务发现服务描述基于 XML 的消息传递消息传递协议数据格式规格说明数据表示网络管理安全服务质量理HTTP W3CHTTPR IBMXML W3CSOAP W3CXMLP W3CWSDL W3CUDDI UDDI.orgDISCO MicrosoftWSFL IBMXlang MicrosoftBPML BPMI.orgebXML ebXML.orgUDDI UDDI.orgebXML ebXML.org较稳定,不易改变较不稳定,易改变图 2 Web 服 务 栈 相 关 的 各 种 标 准 和 规 范 小 结104 WSDL Specification V1.1, W3C Note 15,2001.35 UDDI Specification, uddi.org,2000.96 UDDI Technical White Paper,uddi.org,2000.97 Business Process Management Language Specification,BPMI.org Draft0.4,2001.38 XLANG Specification, Microsoft Corporation,2001好资料