[摘 要]文章解释了基本的Web服务和协作的Web服务之间的差别,并描述使用电子商务扩展标记语言(ebXML)和简单对象协议(SOAP)开发Web服务的好处。讨论了Sun公司的开放网络环境(Sun ONE)产品在开发协作的Web服务过程中所扮演的重要角色。
[关键字]ebXML;SOAP;Web服务
Sun公司的Dan Malks和Marina Sun解释了基本的Web服务和协作的Web服务之间的差别,并认为问题不在于选择ebXML还是选择SOAP,而在于是否扩展SOAP以支持ebXML消息可靠性。
1 Web服务介绍
Web服务(Web Services)是目前程序设计领域中的一项新技术,是一个崭新的分布式计算模式,指的是模块化的独立于平台和与语言无关的系统功能,这个功能是基于开放标准并且它是根据所支持的交易方案需求来使用的。然而,术语“Web服务”有点让人觉得模糊,因为它描述了相关但却是不同领域的解决方案,包括贸易商到贸易商的集成(B2B),企业应用程序集成(EAI),以及基于远程过程调用(RPC)的基本服务。另外,Web服务如今存在着大量的标准——这些标准将很可能会因为它们发展和成熟而融合。为了更好地理解术语“Web服务”,我们使用了限定词——“协作的和基本的”来描述当前Web服务的发展。
1.1对比基本的Web服务和协作的Web服务
1.1.1基本的Web服务和协作的Web服务具有一些共同的特征:粗糙的——典型的,Web服务扮演在基于对象或组件的服务内详细描述的门面;松耦合——服务消费者和服务提供者不知道关于彼此的内在实现。因而,Web服务是独立于平台和语言的;自描述——存在着对这些服务的标准描述。那些通知其他系统有关服务细节的描述包括了链接它们的方式和它们可靠特征以及安全参数。
1.1.2那么,什么东西是基本Web服务中缺少而却是协作的Web服务的一部分呢?三个关键特征:可靠性——可靠的通信意味着它确保一条消息至少被发送——并且至多一次只送到一个接收者,这个接收者可以过虑掉重复的消息。这两大功能结合在一起就产生了可确保的、一次仅一次的传送。因为发送者和接收者都必须比较进来的消息和先前的消息以决定它们是否是重复的,这一项保证就暗含着消息的持续性;安全性——考虑到在互连网上,而不是在有防火墙控制的企业内部网出现最多的交互,可以说这是一个关键的组件,特别是对于基于B2B集成的Web服务。安全性关注存在的风险,这些风险包括从消息完整性和机密性到端点的网络级的保护。在两个消息端点之间的网络保护是有效的,但消息已被接收和从网络中移除的情况是一次也不会发生的;交易处理——协作的Web服务典型地包括有多个交易活动,它们是作为协作的一部分的。因而,我们必须在那些活动中定义事务和次序——处理指的是交易过程的编序。
1.2小结基本的Web服务和协作的Web服务的差别如下
基本的Web服务 协作的Web服务
为带有单一请求和响应的交互提供了简单的模式 为带有多个消息交换的交互提供了精练的模式
具有有限的安全需求 具有强烈的安全需求
不支持交易协作 支持交易协作
同步的且不可靠 异步的并且可靠
只读的 可读并可更新
2可应用的组件平台及技术
下面概述一下满足Web要求的两个组件平台和两种技术风险:Java2平台,企业版(J2EE平台),ebXML和SOAP。
2.1 J2EE平台
基于Java2平台,标准版本(J2EE平台),J2EE平台提供了健壮的建立、部署和管理分布式的多层的企业应用程序的基础。既然J2EE标准微你的基于服务体系中的应用程序提供了核心功能,那么那些成为创建Web服务砖瓦的组件根据那些标准创建。
另外,我们能够在J2EE平台下包装和改编我们的组件,因而提供了一个标准的访问既新又合法代码的途径。特别地,我们包装合法的组件,这些组件没有暴露依从于J2EE的接口,例如,J2EE连接器体系和改编已经存在的J2EE组件以适应我们需求。
建立基于J2EE平台的系统仅仅是一个开始。下面面临的问题是如何使系统模块化且可扩展,可重用,可伸缩,可维护等等。除了学习如何使用相关的API外,也必须要获取健壮的设计和软件体系原则的稳固理解。
在Sun专家服务(http://www.sun.com/service/sunps/architect/)中,在我们着手处理J2EE平台和基于Web服务的项目中,我们会基于大家熟悉的模式分类,用它们来帮助我们理解在特定环境中解决出现的问题。合理使用模式会提高我们进度的效率:我们为与给定的熟悉的解决方案相呼应的软件开发项目作图表,用共同的词汇与我们的团队人员进行交流。
2.2 ebXML
今天的电子商务世界正经历着对可靠和安全的消息以及自动化能力,特别使交易协作的紧迫需要。当前ebXML是唯一为基于B2B的Web服务协作而定案的、业界标准的声明集。
ebXML是联合国贸易促进和电子商务中心(UN/CEFACT)和结构化信息标准发展组织(OASIS)共同倡导、全球参与开发和使用的规范,其中UN/CEFACT提供相关的商务技术,OASIS则提供XML及相关技术的支持。ebXML作为电子商务全球化标准,它是一组支持模块化电子商务框架的规范,支持全球化的电子市场,它使得任意规模的企业能够通过交换基于XML的信息,不受地域限制地接洽和处理生意。
2.2.1 ebXML体系结构如图2所示
一些IT人士使用术语“ebXML”来指定ebXML一系列声明中的其中之一。例如,一些人可能会说,“让我们在咱们项目中使用ebXML进行可靠通信。”在这种情况下,话语实际所指的是ebXML消息服务声明,它只是ebXML体系中的一个组件。必须承认的是,以为声明支持可靠的通信,它经常会被一些交易商首先考虑到。同时,牢记ebXML是作为一个由多个声明所组成的整体出现的,那些声明可以被递增地或者每一个独立地采用。
ebXML体系具有的主要声明可靠通信:ebXML消息服务声明(ebMS)——它提供了可靠的、一次仅一次的传送,成层在SOAP消息之上;交易过程声明:ebXML交易过程声明模式(ebXML BPSS)——它定义了交易活动、协作和事务,并且描述了它们的关系。它也提供了机器可读的声明实例;贸易伙伴配置和协定:ebXML协作协议配置和协作协议协定(ebXML CPP/A)——它持有伙伴运行时系统的配置信息并存储了服务质量信息;注册中心和存储中心:ebXML注册中心/存储中心(ebXML Reg/Rep)——它为构件提供了强大的分类和存储机制,包括有BPSS和CPP/A。
那么,面临的选择就不是使用“ebXML还是SOAP”的问题了,而是是否扩展SOAP以支持ebXML消息的可靠性。
2.2.2 ebXML的好处
ebXML的首要目标是促进基于XML和文档交换的全球电子市场建立。由UN/CEFACT和OASIS国际性地发起的声明为建立支持协作的Web服务(包括可靠的通信)提供了一个开放的业界标准。
认识到ebXML的好处是为组织扩展它们的电子交易事务、发展它们伙伴和操作多个传送通道而提供的低成本的可替代方案。
2.2.3 ebXML的认可