2002-08-23 08:59
InterOP Stack新一代平台互操作技术:InterOP Stack技术概览
柴晓路
Chief System Architect
2001年3月23日
本文介绍了Internet上平台互操作的最新技术: InterOP Stack技术家族,InterOP Stack主要是为解决目前B2B全球体系进程中遇到的最大问题:集成和交互。InterOP Stack利用Internet系统交互的标准技术XML,在其之上定义了模块接口和平台服务的标准界面,使得B2B服务的全球集成成为可能。而基于InterOP Stack技术而构建的B2B应用称为Web Service。
互联网的高速发展,在给人以丰富的信息资源的同时,也带来了巨大的商机。在新一轮的热潮中,Business-to-Business电子商务脱颖而出,成为互联网发展的主角。随着B2B电子商务的不断发展,互联网为各种类型的商务活动提供了新的客户、新的供需流、新的服务类型,使之有了空前的经济回报,体现了其巨大的价值。各类企业与组织都已经或正在将其业务移向互联网,期待着电子商务为他们带来经济上的回报,真是所谓“要么电子商务,要么无商可务”。目前,一些基础的服务项目,如在线拍卖、在线采购、电子化信息应用等,已经出现并逐步成形,构成了Business-to-Business电子商务的一些基础构件。
尽管B2B的电子商务在近年来有了飞速的发展,但有个主要的屏障阻碍了电子商务向开放的一体化的商贸体系发展。这个阻碍不仅仅是针对现在已有的电子商务,也影响着那些现在还不属于数字经济的企业。因为目前大多数电子商务的应用和Web服务在处理购买者、供应商、e-Marketplace、服务提供者之间的联系方式上,各不相同。每个市场、商家或是服务提供者都以尽可能地满足自己的需求为主要目的,得到各不相同的解决方法。结果则是诸多错综复杂的解决方案、内容和架构,无法让全球的各种商务活动以最适宜的方式应用到全球化、整体化的B2B电子商务体系中去。
本文所引用的资源主要包括用于解决B2B电子商务应用交互和集成的系列技术标准规范,包括UDDI、SOAP、XML等,他们的全体就构成了InterOP Stack,本文的最后给出了这些资源的链接,有兴趣的读者可以通过这些资源链接找到所需的内容
InterOP Stack 的提出
在B2B电子商务的发展过程中,许多公司和服务提供者作了许多的努力。许多电子商务的基础功能建设工作,如在线拍卖、电子采购、信息发布、电子市场等,为B2B电子商务的发展进行了很多探索与尝试工作。这些基础功能的建设工作也取得了一定的成就,同时也使企业和服务提供者对电子商务有了更为深刻的认识。电子商务实施的过程中,对于标准的确定,一直是最为关键的部分。在和商务相关的领域内,企业间很难达成一致的协议与标准,各种非技术因素也导致了这方面工作的重重阻碍。幸运的是,XML的出现改变了这一状况。1998年2月由W3C组织提出的XML在这方面使B2B电子商务的发展向前跨出了一大步,各企业与服务提供者也纷纷接受XML标准。一股XML应用热潮正在展开,由此也拉开了在各种B2B电子商务领域的工业标准纷纷出现的序幕。其后,一些计算机厂商,包括IBM、Microsoft、DevelopMentor、Userland Software在内的许多公司,合作勾画了SOAP的框架,用以将WWW上的远程调用和简单信息传送标准化。SOAP的出现,使得由于电子商务互用标准不同而产生的代价开始缩小。使用XML和SOAP这样跨语言、跨平台的解决方案,将为今后的电子商务带来更简单和高效的方法。
Web Service的概念和UDDI标准是由Ariba、IBM和Microsoft提出的,它的目的是为了满足企业间的互相联系,减少开发与使用代价,最大限度地利用资源,并使得国际化的B2B电子商务成为可能。在Web Service的体系中,电子商务被分割为高内聚、弱耦合的单个的服务,可以通过Web的形式被调用和访问。这些服务是企业为其它公司或是另外的应用软件提供的特定功能,从本质上讲是放置于Web站点上的可重用构件。Web Service可以分散于Web的各个地方,通过互相地调用以协同完成商务活动。而UDDI规范则正是整合集成这些Web Service的最佳工具,UDDI-based Web Service Registry能够将所有符合该规范的标准服务集成在一个开放、标准的服务描述、发现和集成的平台之上,极大地降低集成和互操作的代价。
可以认为,Web Service/UDDI是电子商务应用中的一个重要而崭新的体系。原来的电子商务大都是封闭式的,各个企业和服务提供者纷纷根据自己的需要与特别得出自己的解决方案,从低层的体系结构到上层的软件实现。虽然目前已有一些企业采用XML方案,使数据表示标准化,开放了数据层上的交流。不同的电子商务应用之间,有可能通过统一的XML数据格式进行互操作,但这样的解决方案最大程度上也只能较好地处理内部的商务,很难与其它的电子商务应用进行充分的交流与互操作。而贸易的重要原则之一就是开放性,好的开放性是市场与利润的来源。事实表明,没有哪一个企业能统一电子商务的市场,哪怕是大部分,也是几乎不可能的,得到充分程度的开放性就是成功与否的关键。Web Service/UDDI的提出,正是从开放性着眼,试图解决Web服务界面层的一致性和和集成平台的开放性。
InterOP Stack 体系架构
体系大致可分为五层,如下表所示:
InterOP Stack | Universal Service Interop Protocol (USIP) |
Universal Discovery , Discription and Integration (UDDI) | |
Simple Object Access Protocol (SOAP) | |
Extensible Markup Language (XML) | |
Hypertext Transfer protocol (HTTP) |
其中,USIP协议仍在开发中。
本文的下面部分将对这五层做一个概览性的介绍。其中,HTTP作为Web中的主流协议,理所当然地成为通信层的标准,而且大家也对他比较熟悉了,因此就不将其作为重点内容介绍了。USIP作为一个非常重要的协议,但目前还在开发过程中。作为Interop Stack的一个重要部分,本文也将就此对USIP的功能和特性作一下展望和初步的探讨。
通信层:HTTP
Interop Stack的基础是Web,而Web上最主要的协议就是HTTP。虽然HTTP在Interop Stack中是作为单独的一层,但实际上,整个Interop Stack的协议/标准都紧密地结合在HTTP上。例如,XML一般都是通过HTTP进行传输,SOAP更是和HTTP进行绑定。
数据层:XML
XML是整个Interop Stack以及基于Web Service的电子商务的核心。因为在所有的操作中,数据的交换始终是占有着重要的地位,数据交换时的跨平台性也是必然的,于是使用XML成为其上层的所有协议/标准的核心,这些协议/标准同时也丰富了XML的应用。
另外,XML Schema也将在SOAP、UDDI等协议/标准中有具体的应用。
接口层:SOAP (Simple Object Access Protocol)
SOAP协议是在XML的基础上,提供了在一个松散的、分布的环境中对等地通过交换结构化类型化调用信息描述而完成远程过程/对象调用的一个简单机制。它本身并没有定义任何应用语义,如编程模型或特定语义实现,只是通过一个模块化的包装模型和对模块中特定格式编码的数据的重编码机制来表示应用语义。
SOAP由三部分组成:1)SOAP信封,它构造定义了一个整体的表示框架,可用于表示在消息中是什么,谁应当处理它,以及这是可选的还是强制的;2)SOAP编码规则,定义了一个编序机制用于交换应用程序定义的数据类型的实例;3)SOAP RPC表示,定义了一个用于表示远端过程调用和响应的约定。
这样定义的SOAP可以应用在很多类型的系统中,从消息系统到远程过程调用等。Interop Stack是它的一个实际应用。正由于SOAP采用了XML,并在调用与交换信息方面有其优势,使得它成为解决Web Service中互相调用的接口定义所遵循的规范。
SOAP的主要特点是简明性和可扩展性。对于各Web Service之间的弱耦合关系,采用一种简单的调用描述方法,符合其需求和特点。SOAP是完全基于XML之上的。他也继承了XML的可扩展性和可描述性。同时,SOAP利用了XML Schema所定义的丰富的数据结构,使得其对数据的描述功能变得更为丰富。
SOAP协议是和底层的通信协议无关的,但大多数情况下SOAP将和HTTP协议绑定。在Interop Stack的体系结构中更是如此,也由于Web Service的访问本身就是基于HTTP的。所以我们这里讨论的SOAP协议,可以默认为它是和HTTP绑定的。
平台服务层:UDDI (Universal Discovery, Description and Integration)
UDDI是一套基于Web的信息与服务注册的标准,同时也实现了一组使企业能将自己提供的Web服务登记并让别的企业用户能够查询并访问到的标准。UDDI计划是通过一个物理分布逻辑集中的企业登记中心和对应用服务进行描述的统一的XML Application来实现的。
其中,UDDI企业登记中心是其核心组件。它从概念上是一个云状结构,由很多提供UDDI登记服务的Server所组成,成为一个集群。在物理上,他们很可能是分散的,但是这些UDDI登记中心将进行数据的同步,对于用户来说,注册一次就等于向全世界发布了信息。这些信息可被当作以后被“发现”的对象。企业应用可以通过编程API来对其进行访问,得到相应的结果,从而完成“发现”的工作。
另外,UDDI定义了一套统一的XML格式,以描述企业与其提供的Web Service的信息。这些信息分为三个部分:“White Pages”包括了地址,联系方法,和已知的标识;“Yellow Pages”包括了基于分类学的工业划分;“Green Pages”包括了关于该企业提供的Web Service的技术信息,其中还包含了指向特定的Web Service的链接或是URL等。通过这样一个信息结构,企业可以详细地将自身与提供的Web Service的信息描述清楚,并让“发现”它们的人能清楚的知道,这些是否是他们所需要的,如果是,那么如何去调用它们。
可以通过UDDI标准所定义的程序员API,来实现对UDDI登记中心的信息的编程访问。API主要分为两类,一类是查询API,一类是发布API。另外,UDDI的标准中,也对出错恢复、授权与识别进行了定义。
集成应用层:USIP
单独的Web Service只能完成单一的工作,而事实上的商务活动,都不是单一的操作所能够完成的,需要一系列操作步骤。并且,在大部分情况下,这些操作不是相互独立,各自为政的,而是需要互相协作,形成一个工作流。在形成工作流之后,才能解决具体的商务问题。形象一点的描述就是,UDDI定义了函数/过程,而USIP则要将这些函数/过程组织成程序或事务。
形成工作流的前提条件,就是需要Web Service之间能进行互操作。这里我们引入一个最简单的采购过程的例子,如下图所示。客户使用提供产品查询服务的Web Service后,需要产生提供采购服务的Web Service可操作的数据,使其能进行订单的操作;在完成订单的过程中,分别需要调用提供支付服务与配送服务的Web Service,并根据相应的结果不同,进行不同的处理。采购过程的完成,就是这些Web Service所构成的工作流的完成。这些Web Service在互相调用的过程中,需要解决一个调用一致性的问题。
一个实际上的采购业务,不可能像上面所提及的那样简单。但上面所述已能描述进行商务操作的Web Service之间,需要如何地协作,这些都是UDDI和以下各层所无法提供的。大致有以下需要解决的问题:1)数据相关的互操作;2)流程相关的互操作;3)商务相关的互操作。在我们的例子中,提供产品查询服务的Web Service与提供订单服务的Web Service之间需要进行数据相关的互操作;提供订单服务的Web Service与提供支付和配送服务的Web Service之间需要进行流程相关的互操作;提供支付与配送服务的Web Service之间需要进行商务相关的互操作。
Interop Stack的下一层,Universal Service Interop Protocols,将定义解决上述问题的标准。
结语
本文从技术层次介绍了InterOP Stack的整体结构,对Web Service和UDDI作了初步的阐述,而关于Web Service、UDDI的应用则将在另一篇文章InterOP Stack技术应用中作近一步的讨论。
参考资料
作者简介
柴晓路:上海得易电子商务技术有限公司首席系统架构师、XML技术顾问。2000年获复旦大学计算机科学硕士学位,曾在国际计算机科学学术会议(ICSC)、中国XML技术研讨会(北京)、计算机科学期刊等各类国内、国际重要会议与期刊上发表论文多篇。其专长为 XML与数据交换、数据库、面向对象技术等。 |