版权归原作者所有,如有侵权,请联系我们

[科普中国]-分布式Web

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

背景

INTERNET经过近十年的迅猛发展,至少在两个方面发生了变化。第一是规模上急剧膨胀,而且积累了大量的信息资源;第二是它己经从当初的信息发布平台发展为信息交换平台。这两个变化导致将INTERNET的巨大资源集成到传统的信息处理系统的需求。但是以HTTP和HTML为主要手段的INTERNET技术却不能满足这种集成需求。分布式Web技术正是为满足这种集成需求而发展起来的新的INTERNET技术。

传统WPh技术是以HTTP和HTML技术为核心的。在当前的形式下,HTTP技术和HTML技术都己经不能满足上述的集成的需求,这主要表现在如卜几点:

(1) 作为数据传送协议,HTTP缺乏模块化,HTTP当初设计时主要是为了传送文档的,它没有清楚地分离文档传送的相关的三个层次:消息传输,远程方法激活(RMI)和用于文档处理的方法(如表格处理和搜索)。HTTP这种设计完全可以满足传送文档的需求,但是在要求把Web作为一个集成平台的情况下,就显得力不从心了。

(2) 作为数据传送格式,HTML缺乏模块化,HTML文档把数据和数据表现混合在一起,在要求集成WEB的需求下,这种方式使得应用程序处理数据复杂化,同时也浪费了一定的网络带宽。

(3) 作为数据表示格式,HTML显得过于简单,HTML是一种标签语言,但是它的标签是不能扩展的,同时HTML缺乏实际的应用语义,因此它不能表示结构化的数据。

结构不论是理想主义的分布式Web技术,还是实际主义的分布式Web技术,都可以把它们分为三层:消息传送层,远程方法激活层和分布式服务层。下面以实际主义的分布式Web技术为例来说明这三个层次:

(1) 消息传送层:主要采用HTTP、 HTTPS、SMTP协议完成消息传送,但是它们传送的不再是HTML或MIME文档,而是基于XML的结构化文档;

(2) 远程方法激活层:描述远程Web站点提供的服务接口,提供激活远程Web站点上服务的方法;

(3) 分布式服务层:基于远程方法激活,向应用层提供各种分布式服务,如消息服务、ORB服务、事件服务、发现服务、目录服务等。

XML技术在分布式Web中的应用XML技术在分布式Web中的应用主要在远程方法激活层。这一层处于消息传送层和应用接口层之间,它主要通过XML技术在HTTP、SMTP等协议基础上构建平台无关的远程方法激活。这里主要需要完成下面几项工作:

(1) 接口描述协议:描述Web站点提供的服务接口,这种描述主要用于应用程序对Web站点服务的集成;

(2) 结构化数据交换协议:用于描述远程方法调用请求和WPb站点对方法调用的响应;

由于XML技术便于表示结构化数据,同时又方便HTTP、SMTP等协议传送,所以在远程方法激活层的各种协议一般都采用基于XML的协议。下面分别介绍几种接口描述协议和数据交换协议中的XML技术。

接口描述协议主要的接口描述协议有WIDL( Web Interface Description Language)和WSDL ( Web Service Description Language)等,WIDL是由WebMethode公司在实际应用中提出,并提交给W3C。WSDL是在SDL基础上发展起来,是由Ariba、IBM、Microsoft等共同制定的接口描述标准。这两种协议都是基于XML的,图1是两种协议的比较。

从WIDL和WSDL的设计目的,就很容易理解两者的差异。WIDL主要是用于Web自动化,设计它的目的是为了方便将己有基于HTTP请求和HTML文档响应的Web请求响应集成到非浏览器应用中,所以它的接口层次和数据类型都很简单。而WSDL的设计目的是为了描述基于Web的服务,这种服务主要是企业提供的和电子商务相关的服务,这种服务木身是有层次的,其最底层的接口也是比较复杂的,所以WSDL定义了多层次服务描述,并支持丰富的数据类型。

数据交换协议在分布式Web的远程方法激活中的数据交换协议主要是将对远程方法的调用请求和请求的参数,请求的响应以结构化的方式传送的协议。这种协议主要有:XML_RPC、SOAP、WDDX、ebXML、BizTalk。

XML_RPC是UserLand公司向W3C提交的用XML描述RPC请求和响应的协议,SOAP是在XML_RPC基础上由IBM、Microsoft、Ariba、Commerce One、UserLand等共同制定的W3C的Notes,WDDX是由Alliare(开发ColdFusion的公司)提出的交换结构化数据的协议,实际上它并不能作为RMI中的交换协议,因为它没有定义远程过程调用标签,这里只是把它作为一种普通的XML数据交换协议加以介绍。ebXML和BizTalk则是两种电子商务交易规范,实际上它们定义己经超出了这里所说的数据交换协议的范围。1