Web服务技术标准与规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十讲Web服务技术标准与规范
所谓Web服务(Web Services)是指由企业发布的完成其特别商务需求的在线应用服务,其它公司或应用软件能够通过Internet来访问并使用这项在线服务。Web服务技术促进了Internet上企业之间的协作,使用Web服务可以使合作伙伴的信息系统之间更容易地进行通信。但随之而来的问题是:如何集成来自不同企业的服务?为了使Web服务易于使用,众多组织已经致力于Web服务技术,进行标准协议的制定,提供Web服务的创建工具和解决方案。
本讲将以Web服务栈为中心介绍Web服务技术涉及的一些关键标准和规范,如SOAP、WSDL、UDDI等。Web服务标准本身是不断发展变化的,文中着重介绍目前被普遍接受的底层标准,并对还需要进行标准化的领域进行简单的讨论。
1.Web服务
Web服务是可以在组织内部或者公司之间的异构计算资源中被共享、组合、使用和复用的商业资产。Web服务是一个可编程的部件,它提供一种易于通过Internet获取的商业服务。Web服务可以是独立的,也可以连接在一起向外部世界提供更强大的系统功能。
Web服务将逐渐成为构建电子商务应用的基础体系结构。基于Web服务的体系结构是从一个分布式面向对象部件的系统向一个服务网络的逻辑演进,该服务网络提供一个能够跨企业集成的松散耦合的底层基础结构。
Web服务是基于Internet的模块化应用,它们执行特定的商业任务并遵循特定的技术格式。如果应用中的某过程可以在Internet上以一种标准格式被调用,称之为Web服务的服务器;类似的,如果通过Internet调用本应用以外的某过程,则是Web服务的客户。因此,实质上Web服务是Internet上应用之间的客户服务器,目的是实现B2B伙伴之间的个性化信息交换,并以一种易用的格式提供和发布应用模块。为了实现这种开放工作,必须要有标准的格式和方法。
几乎所有的主流技术公司都已相继涉足Web服务的标准化工作,参与了各种标准化组织。当前,最主要的标准化组织是W3C(World Wide Web Consortium)。其它组织也做了大量的工作,如,OASIS,UN/CEFACT,,以及等。
Web服务栈(Web Services Stack)
Web服务不同于已有的构件对象模型以及相关的对象模型协议,如CORBA和IIOP(Internet Inter-ORB Protocol)、COM和DCOM以及Java和RMI(Remote Method Invocation)。Web服务可以用任何语言编写,并且可以使用HTTP访问。从技术上看,一个Web服务是一个由内容、应用代码、过程逻辑、或者这些部分的任意组合所构成的XML对象,并且可以通过任何TCP/IP网络访问,只要网络中使用SOAP标准集成,使用WSDL标准进行自描述,使用UDDI标准在一个公共的或者私有的目录中注册和发现。
如图1所示,Web服务由多个层构成,这些层堆叠在一起形成了发现和调用一个独立的Web服务所提供功能的标准机制的基础。即,Web服务栈以层次结构来表示,高层在低层的基础之上构建。
图中HTTP 提供了分布式应用之间的通信机制,XML 定义了数据交换和描述的格式,SOAP 是调用Web 服务的协议, WSDL 描述Web 服务的格式,而UDDI 则是注册、查找和使用Web 服务的中枢组织。下面分别介绍这些协议及相关的规范。
2. HTTP
Web 服务栈中的最底层是网络层,也可以称为协议层。分布式的应用需要有网络协议来定义两个并发过程之间的通信机制。概念上,Web 服务的设计是与协议无关的,在图1的分层体系结构模型中,从底向上任何标准的Internet 协议都可以用于在网络上调用Web 服务。但目前主要是HTTP (Hypertext Transport Protocol )和HTTPS (Hypertext Transport Protocol Secure )协议。
HTTP/1.1是一个基于文本的、“请求-响应”(request-response )型的协议,它规定一个客户打开到服务器的一个连接,然后以专门的格式发送一个请求,服务器进行响应,同时如果必要则保持连接的打开状态。HTTP 使用的普遍性及其固有的穿防火墙的能力使它成为主导的Web 服务网络协议。但同时由于HTTP 是基于文本的协议而缺乏表示远程过程调用(RPC )消息参数值的机制。
其它的请求/响应类型的传输协议,如文件传输协议(File Transfer Protocol ,FTP )和简单邮件协议(Simple Mail Transport Protocol ,SMTP )也可以使用,但是并没有在Web 服务的各种标准中定义,目前也只有极少数实现支持这些协议。
另外,最近IBM 发布了一个可靠通信协议的提案,称作HTTPR 。HTTPR 在HTTP 的基础上加强了可靠性,在保持HTTP 优点的同时能够保证消息可以不受阻碍地发送到目的地。可靠的通信对Web 服务来说是一个非常关键的方面,虽然目前对由协议层实现是否最适合仍然有争议,但在不远的将来它肯定会以某种形式出现。
3.XML (Extensible Markup Language ,可扩展标记语言)
基于XML 的消息层包括数据表示、数据格式和消息传输协议。XML 为信息交换定义了描述和格式。 数据表示
HTTP 是一种基于文本的协议,因而缺乏表示RPC 消息中的参数值的机制,这也是XML 作为Web 服务的一个重要成分出现的原因。XML 是一种元语言,可以通过标准的编码和格式化信息的方法进行跨平台的数据交换。XML 允许数据被串行化为易于被任何平台解码的消息格式,提供了在网络应用之间交换结构化数据的机制。
XML 采用纯文本表示,设计的初衷是为了存储、传送和交换数据的。XML 是一种标记语言,标记在XML 中不是预先确定的,而必须由使用者自己定义。XML 允许使用者自由发表有用的信息,不仅
服务发现层
服务描述层
基于XML 的消息层
网络层
图1 W e b 服务栈