首页 百科知识 消息的构成元素有哪些

消息的构成元素有哪些

时间:2022-10-18 百科知识 版权反馈
【摘要】:开放式标准XML是基于经过验证的标准网络通信技术,并针对网络做了最佳优化,由众多业界顶尖公司与W3C的工作组并肩合作共同开发而成。XML最大的特点是以一种开放的自我描述方式定义了数据结构,并在描述数据内容的同时突出对结构的描述,从而体现出数据之间的关系。这在处理大型的信息仓库时是极为有用的。网络技术的飞速发展使分布式系统在许多领域得到应用。
相关技术_网络地理信息系统

3.4.2 Web Service相关技术

XML、SOAP、WSDL和UDDI共同构筑了Web服务的技术基础,下面简要介绍一下这些技术。

1.XML

XML(extensible markup language)(Bray等,2006)是一套定义语义标记的规则。XML可提供描述结构化资料的格式,是一种类似于HTML的用来描述数据的语言。XML提供了一种独立运行程序的方法来共享数据,它是用来自动描述信息的一种新的标准语言。XML由若干规则组成,这些规则可用于创建标记语言,并能用一种被称做分析程序的简明程序处理所有新创建的标记语言。XML以一种通用的标准来表现数据,而且可以增加结构和语义信息,使得计算机和服务器可以即时处理多种形式的信息。

XML作为一种标记语言,有许多特点:

①简单。XML经过精心设计,整个规范简单明了。它由若干规则组成,这些规则可用于创建标记语言,并能用一种常常被称做分析程序的简明程序处理所有新创建的标记语言。XML能创建一种任何人都可以读出和写入的通用数据表现形式,这种功能叫统一性功能。

②开放。开放式标准XML是基于经过验证的标准网络通信技术,并针对网络做了最佳优化,由众多业界顶尖公司与W3C的工作组并肩合作共同开发而成。

③国际化。标准国际化,且支持世界上大多数文字。这源于依靠它的统一代码的新的编码标准,这种编码标准支持世界上所有以主要语言编写的混合文本。能阅读XML语言的软件,就能顺利处理这些不同语言字符的任意组合。因此,XML不仅能在不同的计算机系统之间交换信息,而且能跨国界和超越不同文化疆界交换信息。

XML最大的特点是以一种开放的自我描述方式定义了数据结构,并在描述数据内容的同时突出对结构的描述,从而体现出数据之间的关系。这种特点使得XML在电子商务的应用上具有广泛的前景,并在一定程度上推动了分布式商务处理的发展。

由于XML易于阅读和编写,使得它成为在不同的应用间交换数据的理想格式。正如上面所讨论的一样,XML使用的是非专有的开放格式,XML在Web Service中的应用不受版权、专利、商业秘密或其他种类的知识产权的限制,同时对于人或是计算机程序来说,都容易阅读和编写,因而成为交换语言的首选。

XML对于大型和复杂的文档同样是理想的,因为数据是结构化的,这不仅使用户可以定义文档中的元素的词汇表,而且还可以指定元素之间的关系。这在处理大型的信息仓库(比如关系型数据库)时是极为有用的。

2.SOAP

网络技术的飞速发展使分布式系统在许多领域得到应用。为了解决分布式系统的可扩展性、平台无关性和互操作性等问题,出现了许多分布式系统的开发标准和产品,如CORBA、DCOM、SOAP,等等。CORBA和DCOM是当前比较流行的部件对象计算模型,但是都存在“局部计算”的局限性。也就是说,这些模型都仅仅是本地计算或本网计算模式,而不能把整个Internet当做一个计算资源体系来加以利用。

简单对象访问协议(simple object access protocol,SOAP)(Gudgin等,2007)就是为了解决这些问题而被提出的一种与平台无关的协议标准。IBM、Microsoft、UserLand、DevelopMentor等公司在2000年向W3C提交了SOAP,SOAP以XML的形式提供了一个简单的、轻量的用于分散或分布式的环境中交换结构化的类型和信息的一种机制。

SOAP包含3个部分:封装结构、编码规则和RPC机制,这3个部分在功能上是相交的。除此之外,SOAP还定义了两个协议的绑定,描述了在有或没有HTTP扩展框架的情况下,SOAP消息如何包含在HTTP消息中被传送。

由于SOAP是基于HTTP的,所以它解决了穿越防火墙的问题。由于它的调用和响应都使用简单的XML结构,显然如果DCOM和CORBA都结合SOAP使用,那么类似于DCOM/CORBA协议之间的协调问题会简单得多。

SOAP最突出的特点在于它的简单性和易实施性,它就是为了解决由于用传统方式提供Web服务所产生的问题而提出的。它有助于实现大量异构程序和平台之间的互操作,从而使存在的应用能够广泛地被用户所访问,SOAP把成熟的基于HTTP的Web技术与XML的灵活性和可扩展性结合在了一起。

SOAP是一个协议规范,是用XML描述的一种格式化的消息,定义了传递XML-encoded数据时的统一方式。SOAP的中心任务是如何把一个SOAP消息从发送者(客户)发送到最终目的地(Web服务),在发送者和目的地之间可能有一些中介节点。

在实际应用中,SOAP主要用来进行远程方法调用。发送者首先把方法的参数值从本地二进制格式转换到XML文档中,然后把这个文档发送给远程服务器,而在远程服务器端,则有对应的SOAP处理器解析XML文档,取出方法的参数信息,恢复成它的二进制状态,然后调用本地方法。Web服务执行其代码,将返回值和输出参数序列化为SOAP消息,并通过网络发送回客户端,客户端计算机接收该SOAP消息,将XML反序列化为返回值和输出参数,并将它们传给代理类的实例。图3-11直观地描述了这个过程。

图3-11 SOAP在Web服务中的应用

SOAP消息一般包括以下3个主要元素:

①SOAP<Envelope>。它是整个SOAP消息的根元素,也是每个SOAP消息中都必须有的元素,其他两个元素都在该元素内部。它一般用来指明命名空间和数据的编码规则。

②SOAP<Header>。<Header>元素是SOAP消息中的可选元素。也就是说,不是每个SOAP消息中都必须有<Header>元素。但如果有的话,必须是<Envelope>里的第一个元素。

③SOAP<Body>。这是每个SOAP消息中都必须有的元素,而一个<Body>元素可以由很多的体条目元素构成,每个体条目元素都被编码成<Body>元素中的独立子元素。接收SOAP消息的SOAP应用程序必须按顺序执行以下动作来处理消息:识别应用程序需要的SOAP消息的所有部分;检验应用程序是否支持已识别的消息中所有必需部分并对它们进行处理;如果不支持,则丢弃消息。在不影响处理结果的情况下,处理器可能忽略SOAP消息中的可选部分;如果这个SOAP应用程序不是该消息的最终目的地,则在转发消息之前从消息头中删除第一步中识别出来的所有部分。

3.WSDL

WSDL(web service description language)(Erik等,2001)是一种XML语法,目前版本为2.0,它为服务提供者提供了构建在不同协议或编码方式上的Web服务的基本信息和请求调用方法。WSDL用来描述一个Web服务能做什么,它的位置在哪里,如何调用它,等等。例如数据转换Web服务WSDL文档中,有5个主要元素来描述该服务的信息:

①<types>元素。这是WSDL中的第一个元素,这个元素用来定义不同数据类型的容器。任何有实际意义的Web服务都要处理数据,数据必须送到服务,并从服务返回。<types>元素包含服务要处理的数据类型的定义。在上面的示例片断中,有两个数据,它们的类型都是string,其中FilePath表示需要上传的文件路径,SavePath表示转换后的文件在服务端的保存地址

②<messages>元素。这是WSDL文件中的第二个元素,这个元素描述了通信的消息。这是该WSDL中<messages>元素的片断。消息在概念上是可以交换的数据单元。一个消息可以由多个参数组成,在方法调用的情况下,这种方法所有的参数都用一条消息代表。为此,每条消息包含一个或多个<part>元素,这些元素形成实际的消息。每个<part>元素引用一个在文档中定义的<types>元素中定义的类型。

③<portType>元素。确定了操作和操作中的消息。其中<input>表示请求消息格式名,<output>表示应答消息格式。

④<binding>元素。描述客户和服务通信时使用的机制,指定<portType>中定义的操作的协议细节。对每个操作,描述如何把抽象的消息内容映射成具体的格式。元素type属性指定了端口类型<operation>元素与<portType>中的元素相关联。<soap:operation>元素提供了特定操作的信息,style属性确定操作的类型,soapAction属性表示操作的处理者。<input>和<output>子元素指定了<soap:header>和<soap:body>元素,指定了输入输出参数在SOAP封装的<Header>或<Body>元素中的格式。

⑤<service>元素。把一系列相关的端口编成组。每个WSDL文件可以定义若干Web服务。Name属性提供了WSDL文件定义的每个端口的唯一名,Binding属性表示前面指定的绑定类型。<soap:address>元素提供服务端SOAP请求处理的地址。

WSDL文件以XML标准为基础,它与编程语言无关,适用于不同平台,WSDL还定义了服务的位置,以及用什么通信协议与服务进行通信。总而言之,WSDL文件定义了编写、使用Web服务所需的全部内容。

4.UDDI

统一描述、发现和集成(universal description,discovery and integration,UDDI)(Luc等,2004)技术是由IBM和Microsoft在2001年为促进商业性Web服务的互操作能力而推出的一项计划。按照UDDI规范构架起来的注册中心,将作为在Internet这个广泛信息操作网络空间中的商务信息的集散地,它为商务信息注册提供黄页/白页/绿页三个层次的服务注册。UDDI的核心竞争力是为所有规模的企业提供管理它们供销商务网络的手段,以及获得更多的渠道接触潜在的商业伙伴。UDDI面临的问题是,如何能够使更多的商家主动进入UDDI注册中心并发布他们自身的信息,以及如何使得用户发布的服务信息不断升级,并且能够包含实现细节的发布。

UDDI的核心是一个物理分布、逻辑集中的注册中心,它从概念上是一个云状结构,由很多提供UDDI登记服务的操作入口点组成一个集群。从注册中心的外部来看,它对于用户是一种整体的服务,由不同的UDDI操作入口点充当注册中心的访问入口。同时,UDDI提供两种有效的机制,保证注册中心查询操作和数据的一致性。第一种机制是查询分发和重定向,即当一个操作入口点除了完成本地查询外,还将查询请求分发和重定向到其他所有的操作入口点,并将所获得的查询结果与本地结果整合后一起返回给查询者;第二种机制是数据复制与同步,即当一个操作入口点在执行更改数据操作时,还需要将该操作分发和重定向到其他操作入口点以同步地执行数据更新。因此,在一个UDDI操作入口点上进行查询操作就等同于对整个UDDI注册中心进行查询。

UDDI本质上是为了解决当前在开发基于组件化的Web服务中所使用的技术方法无法解决的一些问题。UDDI具有非凡的技术简单性,它为Web服务在技术层次上提供了3种重要的支持:

①标准化的、透明的、专门描述Web服务的机制。

②调用Web服务的简单机制。

③可访问的Web服务注册中心。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈