摘 要]文章解释了基本的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服务介绍http://www.16sheji8.cn/
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服务
为带有单一请求和响应的交互提供了简单的模式 为带有多个消息交换的交互提供了精练的模式
具有有限的安全需求 具有强烈的安全需求
不支持交易协作 支持交易协作
同步的且不可靠 异步的并且可靠 http://www.16sheji8.cn/
只读的 可读并可更新
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所示 http://www.16sheji8.cn/
一些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的认可
已经有多个业界标准组织宣称它们对ebXML标准的认可,其中有:开放传播联盟Open Travel Alliance (OTA),一个国际化的传播协会;开放应用程序组 Open Applications Group (OAG),一个进行电子交易和应用集成的协会;全球商业主动者Global Commerce Initiative (GCI),一个引领制造商和消费者商品的零售商的自愿组织;自动化和零售行业技术标准组织 The Standards for Technology in Automotive Retail (STAR) organization,支持零售自动化操作的公司联盟;RosettaNet ,一个电子交易的开放标准组织;Health Level Seven ,一个开发关注健康标准的组织。
2.3 SOAP
当使用术语“SOAP”时,我们特定指的是声明的套件,包括有Web服务定义语言(WSDL)和统一描述、发现和集成(UDDI),也被称之为WUS(即WSDL、UDDI、SOAP的首写字母合成)。这个标准栈没有ebX.ML声明那么强大,也没有那么多的丰富特征,但是要较之使用简单并更适合满足变换的需求。http://www.16sheji8.cn/
例如,在应用程序层,位于HTTP之上的SOAP协议不足以提供可靠的消息传递。与能够被SOAP和WSDL实现的服务质量相比,比带有CPP/A的ebXML捕获的服务质量要为详尽、精道。
组成WUS标准栈的三个主要声明:SOAP声明——没有提供消息可靠性和安全性;WSDL 声明——提供了服务描述,因而服务消费者能够调用服务;UDDI声明——为定位业务和它们的Web服务提供注册。
通过如下步骤看一下Web服务的工作机制:
图3Web服务的工作机制图
2.3.1 SOAP的好处
SOAP作为为远程过程调用RPC和企业应用集成EAI提供传输和集成机制是有价值的,特别是在与B2B场合相比可靠的消息传递和安全需求均受限制的情况下。
2.3.2 SOAP的安全问题
在一些为Web服务开放的安全标准中,主要有两个提案:安全声明标记语言(SAML)——这是一个类似于XML,用来为授权和认证进行编码和交换机制的安全标准。SAML关注于支持单个广播信号single sign-on (SSO)的安全信用。SAML是在OASIS安全服务技术委员会(WSSTC)指导下开放,并用作基于XML的安全标准。Web服务安全WS-Security(WSS)——这是一个关注消息完整性,机密性和签订的安全标准。WSS并没有强调SSO,但是它详细地包括了消息加密。WSS继续在OASIS Web服务安全技术委员会(WSSTC)指导下进行开发。
SAML要比WSS更为成熟。即使这样SAML和WSS也有重复,它们并不是相互排斥的并且可以融合到将来的一个单一标准。
要想利用SAML或者WSS取得成功,你必须建立一个分层的系统,这个系统要支持当前和未来的安全实现。服务提供者接口(SPI)仅仅提供了削减连合的类别,这种连合对于能够有多个插槽实现是必需的。
从Sun领头、基于广泛使用的ebXML 和SAML工程来看,图3显示了建立基于SPI(服务提供者接口)的安全服务途径的基本体系结构,在这个体系结构中每一个被指派的权威组件包含一个提供者接口,它能够提升任何数量的具体实现。例如,签订权威authentication authority既可以使用一个基于Sun ONE的标识服务器Identity Server提供者也可以使用一个基于另一个与Sun ONE兼容的服务器的提供者。因为每一个供应商实现都暴露了相同的SPI,你能够如期望地那样交换或者替换另一个供应商的实现。这种方式不仅减少了锁定供应商的问题,它也利用了现存的体系结构。
也请关注Liberty Alliance ,它是建立在SAML之上用来提供健壮的标识管理方案。最近一项重要事件是Sun公司发布的Sun ONE Identity Server 6.0,它是基于Java技术、Liberty Alliance 和SAML声明的。产品发布者通过单一广播信号SSO来访问应用程序和服务的,并承诺在企业管理花费方面会有显著的削减。http://www.16sheji8.cn/
3 Sun ONE如何帮助我们
Sun开放网络环境(Sun ONE)是Sun公司基于标准的建立和部署Web服务和所需要服务的软件平台该平台使得你能够连接并集成你们企业信息资产,还使得服务在线可用。简单描述如下:
应用程序开放和内容发布 Sun ONE Application Server7提供了一个与1.3标准兼容的J2EE平台环境,用于开发并发表企业解决方案和Java Web服务。它集成了Sun ONE Studio 4应用开发环境。Sun ONE Web Server能够在高可信和服务层将内容发布到终端用户。从如Java Servlet和JSP技术生成的Web内容受紧凑的安全标准和鉴定及访问控制选项所保护。
安全和网络鉴定 Sun ONE Identity Server 管理安全访问基于Web的资源,并提供一个鉴定系统,它包括有访问管理,标识管理和目录服务。Sun ONE Directory Server 存储并管理了标识描述,访问优先权及应用程序和网络资源数据。
ebXML消息处理系统(MHS) Sun ONE Integration Server,安全贸易代理使得交易能够集成处理多个应用程序的交易,而这些应用程序是跨操作系统和通信协议的。
4小 结
当前技术,包括建立在SOAP和SAML之上的ebXML,提升了可信赖和安全的Web服务的开发,它能够跨互联网处理伙伴们之间的复杂事务。同时,开发人员能够用SOAP和WSDL建立更为基本的基于远程过程调用的Web服务。
尽管Web服务存在的许多标准有时候会引起混乱,但是目前正在努力在当前状况下融合相关的声明以提供更为清晰的标准。随着标准的发展,建议企业密切关注,逐渐将Web服务技术应用到作为相关并合适于它们商业需求的企业基础体系中。 http://www.16sheji8.cn/