电子商务后台数据中XML消息的传递研究

来源:网络发布时间:2010-02-22

  在电子商务中,服务器与服务器之间、服务器与浏览器之间有大量的数据需要交换。这些被交换的数据,都被要求对数据的内容和表现方式有所说明,用XML担当这个重任是再合适不过了。因为它们的显示与信息是分开的,所以不增加任何程序,就可以使XML文档以不同的格式(由XSL样式指定)在各种设备上显示。

  一、XML在电子商务中的作用

  在电子商务应用系统中,XML简化了在制造商与消费者之间的数据交换过程,因为只要使用同样的XML语言并使用XML交换数据和元数据,他们就可不必采用同样的实现手段了。例如:XML可以被用在供应链管理环境中交换产品目录。此时,供货商使用XML作为默认的格式将他们的产品清单发送给零售商,零售商则可以将这些信息载入到自己的数据库中并能立即在他们的Web商店中显示。

  XML只处理数据及其结构,而不涉及数据的表示。XSL的样式表单负责处理XML结构化数据的表现形式。XSL对于XML而言是一个天然的数据转换机制,它允许同一XML文档可以被多个设备显示,而表现形式则主要依赖于该设备所应用的样式表单。每个样式表单对于每个特殊的设备都有不同的考虑。通过使用XML和XSL,开发者可以维护单一版本的应用程序和数据源,但可以通过不同的样式表单支持各种不同的设备。所以,在电子商务应用中,使用XML,就可以实现异种数据之间的相互转换。在电子商务中进行数据交换,以前都是基于EDI(电子数据内部交换)。但是基于XML的系统比基于EDI的系统在实现和维护上都要经济的多。XML围绕异种数据源提供了虚拟层,并通过单独一个统一接口简化了数据源的集合。而Oracle XML网关可用于将Oracle电子商务套件和任何第三方的ERP系统或类似的环境集成在一起。

  二、电子商务中的XML消息传递方案

  作为代表方案的SOAP采用了HTTP作为底层通讯协议,RPC作为一致性的调用途径,XML作为数据传送的格式,允许服务提供者和服务客户经过防火墙进行通讯。RPC的描叙可能不大准确,因为SOAP一开始构思就是要实现平台与环境的无关性和独立性,每一个通过网络的远调用都可以通过SOAP封装起来。SOAP的两个主要设计目标是简单性和可扩展性。这就意味着有一些传统消息系统或分布式对象系统中的某些性质将不是SOAP规范的一部分。SOAP在商业尤其是Web服务方面得到广泛的应用。

  支持传递XML消息的通讯协议当然不止SOAP一种,其中包括了XML-RPC,WDDX,ebXML和JMS,等等。W3C组织的Eric Prud'hommeaux和Ken Macleod调查了这些协议,并给出一个非常好的总结。XML-RPC提供了一个非常简单使用在HTTP上传递XML的RPC机制。WDDX(Web Distributed Data Exchange)是由Allaire公司开发的,提供了一个在HTTP之上交换复杂数据结构的机制。WDDX声明的目标是“提供一个更类似Web的方法在不同的网络实体间传送结构化数据对象,而不需要将开发Web应用的编程方法从面向页面改变到面向对象。”但是WDDX序列化的方法是基于结构的而不是基于对象的。可以看出,XML-RPC、SOAP和WDDX都是基本的在HTTP上序列化和传递XML编码数据的技术,也是相对简单和现实的解决方案。

  ebXML是一项倡议,参与者包括很多大公司和和官方标准协会。ebXML是一个规范集,这些规范共同实现了模块化电子商务框架。ebXML的构想是实现一个全球电子市场,不同规模和不同地区的企业可以通过交换基于XML的消息来合作和进行商业活动。ebXML消息传递支持在多方交易处理中必须的高层语义。这些语义包括一对一以及一对多路由模型,对多方回路文档交换的支持,以及根据消息头属性的服务质量确定。ebXML与传输协议无关,甚至可以用SOAP。

  Java消息服务(Java Message Service,JMS)API是J2EE平台的构成元素。JMS 1.0.2定义了两种类型的消息传递域(它们是相互独立的),即点对点发布/订阅。尽管JMS不是专门为传递XML设计,但是在实际应用中由于它对消息交换高层语义的支持使得它也可以传递XML。

  三、面向对象的XML消息传递协议

  为了避免一些已经存在缺陷和适应XML消息传递应用需求的复杂化,我们认为协议设计要着重考虑以下几个方面:

  1.序列化的实现应当更高层

  由于直接使用RPC机制会带来一些问题,如难以实现高度的交互性,在实现扩展协议编程接口时会有困难,在安全上的问题。为了可交互性序列化机制应使用高层协议实现,而不应依赖于面向RPC的实现。

  2.协议应当面向对象

  由于序列化的方法是基于结构而不是基于对象所以不能被用来交换具有复杂关系的对象实例,所以应采用面向对象更适合通用地表达商务逻辑,所以应采用面向对象方法来弥补这样的缺陷,以便能更通用地帮助协议实现模块化,以及提高模块的可重用性。

  3.协议应当简单化,并有良好的可扩展性

  在像Web环境这样的松散结构下,要求开发的简易性、系统的可扩展性,这也是对XML消息传递协议的要求。从这个角度来说,SOAP是一个典型代表。SOAP本身不解决高层的分布式对象问题,例如,对象引用、对象激活、分布式垃圾收集、成批传送消息、生命周期管理等。

  基于以上的分析,所以我们认为XML消息传递协议应是一个简单的、扩展性良好的面向对象的解决方案,并能在更高层实现序列化。

  四、结束语

  由于XML在电子商务的应用越来越广泛,本文从协议应用的角度,分析了目前在电子商务的应用领域,XML协议涉及的具体问题,尽量从较高的角度来介绍协议应用的现状,以及分析一些典型协议的可行之处和存在的问题,并尝试使用面向对象的建模技术,将模块化网络协议设计为可构建、可重用和可扩展的架构,提出了面向对象的XML消息传递协议的解决方向和体系结构,这也是我们以后研究工作的基础。