IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  SOA and Web services  >

使用基于RosettaNet的Web服务,第三部分: BPEL4WS和RosettaNet

数字表示和电子商务对话

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

Suhayl Masud (SuhaylA@DifferentThinking.com), Founder和Lead Architect, Different Thinking

2003 年 8 月 01 日

您可以在一本普通的字典中找到所有您想知道的关于Web服务的编排。为此,首先您必须意识到Web服务实际上就是电子商务对话;接着,在字典中查找单词对话。例如,Merrian-Webster字典将对话定义为书面的组合,其中,两个或更多的特性以转换的形式表示出来。阅读这篇文章,就像我所阐述的那样,看看这个简单而完美的定义是如何揭示出需要编排、编排语言、数字表示等等的。

首先,简要重述一下前面所讲的内容。在这一系列文章的第一部分和第二部分中(参阅 参考资料),我说明了Web服务的真正价值在于使业务合作合作伙伴之间可以进行电子商务对话。我们讨论了为什么RosettaNet对于构建工业级(industry strength)的Web服务是极其重要的,并且描述了如何将RosettaNet映射到Web服务世界。在本文中,我将要进一步描述电子商务对话,并且介绍在这一系列文章中将要实现的电子商务对话。 

查字典

如前所述,在Merriam-Webster字典中,“对话”的定义是“书面的组合,其中,两个或更多的特性以转换的形式来表示”。如果您再仔细地分析这个定义,将得到如下启示:

  • “书面的组合...”——对话的成分是编排,并且每个电子商务对话都需要有一个已定义的编排。此外,您还需要一种语言来表达这个编排。
  • “...其中,两个或更多的特性...”——对话有多方参加——业务合作伙伴。对话应该能够选择性地处理两个以上的业务合作伙伴,以防第三个业务合作伙伴需要加入该流程。例如,某个船运公司或者保险公司可能需要加入该流程以便成功地完成交易。 
  • “...以转换的形式表示出来。”——电子商务对话的组织结构需要进行说明,该说明是通过数字表示的。





回页首


编排语言:

虽然可以用Web服务描述语言(WSDL)来定义简单的请求/响应交互,但我们不能使用功能有限的WSDL来表示实际的编排。早期对RosettaNet和Web服务进行的评估都集中在WSDL如何能够适用于RosettaNet世界。这些评估预先发现WSDL不能够表示RosettaNet PIP,因此它是不合适的。通过使用Business Process Execution Language for Web Services(BPEL4WS),这种情况已经完全改变了,RosettaNet和Web服务之间的关系也需要重新进行评估。

就如上面指出的一样,您需要一种能够表示编排的语言,该语言可以提供这样的表达式,两个或多个业务合作伙伴能够通过表达式进行交互。在Web服务的世界中,这种语言就是BPEL4WS。它非常灵活,具有许多逻辑和流控制机制;它为多方协作创造了条件;而最重要的是,它提供了一种标准方法,将公共流程(public process)连接到后端的私有流程(private process)中。





回页首


定义编排

要为我正在这一系列文章中创建的基于RosettaNet的Web服务创建一个健壮的电子商务对话,我们需要将编排定义添加到对话中。编排是电子商务对话中极其重要的一部分。它确定了参与对话的各方,并且描述了合作伙伴之间交互的顺序和内容。

非常需要编排语言将标准信息组合成有意义的、长期运行的电子商务对话,用以处理完整的业务场景。随着组织开始通过它们的数字表示来处理电子商务,编排语言会变得越来越重要;数字表示太简单,不足以有共同的消息定义,就像EDI指定的的那样,使得对话的编排部分只有通过电话和面对面的会议进行处理。电子商务对话是关于业务的数字表示之间的交互的,因而这些表示需要具体的编排定义。


图1:编排Web服务




回页首


业务的数字表示

那么,什么是数字表示呢?您基本上可以将数字表示看作是一个组织中业务合作伙伴的应用可以连接到的计算机系统。一个比较好的思考数字表示的方法就是看看一个组织如何在物理领域中处理业务。 

组织一般允许合作伙伴和顾客通过其物理表示(例如,一个门面或一座办公楼)来访问服务。类似地,当该组织在数字领域(例如,通过Web)中处理电子商务时,它允许合作伙伴和顾客通过其数字表示来访问服务。该表示不仅仅是提供对数据库的访问或者与连接软件系统这一类的技术问题。组织需要考虑构建基于服务体系结构的全面策略,并创建能够反映它们的服务的数字表示。

随着越来越多的组织开始进行电子商务对话,它们将需要了解如何使用各种电子商务流程语言和编排语言。即使是在早期阶段,也有好几种编排语言可供选择,而正确地选择编排语言是一项困难的工作。为了帮助解决这个问题,我现在将提供一些关于BPEL和更多像RosettaNet和ebXML这样的成熟标准如何处理电子商务对话和编排的信息。





回页首


解决编排语言的冲突

在各种编排语言和业务流程语言中,电子商务对话有很多名称,为了使您理解起来更容易,我把这些名称的定义收集在一个表中(参见 1)。


表1. 电子商务对话有不同的名称

在这一部分中,我们将描述如何用诸如Web Service Choreography Interface(WSCI)和Web Service Choreography Language(WSCL)这样更加成熟的电子商务语言来处理电子商务对话和编排。目前,有几种语言使用Web服务来处理编排的创建,这样的语言包括Web Service Choreography Interface(WSCI)、Web Service Choreography Language(WSCL)和BPEL;从这一部分开始,我们将研究BPEL。

RosettaNet


RosettaNet标准化通用的电子商务对话,以Partner Interface Processes(PIP)的形式获取工业最优方法来处理业务流程,这大大减少了启动业务合作伙伴之间的对话的准备时间。RosettaNet规范包括电子商务对话规范(PIP)、标准化消息中所用术语的用法的字典以及描述如何打包、解包和传递消息的实现框架。

下面是业务合作伙伴使用RosettaNet进行电子商务对话的方式:为了处理RosettaNet PIP,合作伙伴双方都需要遵循RosettaNet Implementation Framework,该框架描述了如何打包和使用开放式标准(如HTTP和S-MIME)来传递消息。电子商务对话的准备相当简单,合作伙伴约定使用哪一种RosettaNet的电子商务对话(PIP),然后他们就可以在Internet上通过交换安全的基于XML的消息来开始进行对话。PIP指定了公共流程、消息的编排、消息的定义、流程成功和失败的定义以及当发生异常时如何进行处理。

ebXML


ebXML标准包括定义电子商务对话的Business Process Specification Schema(BPSS)、传输和路由规范、描述组织可以进行什么样的电子商务对话的能力简档(capability profile)以及存储规范和能力简档的注册中心。

现在,我们给您提供一个示例,说明业务合作伙伴如何使用ebXML处理典型的电子商务对话。业务合作伙伴应该已经实现了ebXML“基础结构”,并且他们应该已经通过ebXML注册中心注册了能力简档。该简档表示合作伙伴进行用ebXML BPSS编写的工业标准电子商务对话的能力。为了进行电子商务对话,合作伙伴要在注册中心找到彼此的能力简档,然后就他们将进行什么样的对话达成协议。这些对话可以相当简单(如RosettaNet PIP),也可以是其他对话的复杂组合。所有的消息都基于XML,用S-MIME和一些SOAP打包,并且以一种安全的方式在公共网络(如web)上进行交换。

Web服务编排语言


Web服务编排语言构建在WSDL规范的顶层,可以重用操作和传输信息,它们的重点在于通过将无状态的Web服务组合成已知状态的电子商务对话来提供编排。 图3展示了RosettaNet、ebXML和WS编排语言之间的关系。


图3. 理解RosettaNet、EbXML和BPEL之间的关系

编排语言(如WSCI、WSCL和BPEL)都在尽力做同一件事,就是使Web服务对业务的作用更大,尽管它们所做的可能有不同的名称,比如安排(orchestration)、组合(composition)、编排(choreography)或流(flow)。在当前的语言中,BPEL似乎在领导着潮流,因而是构建电子商务对话的理想候选者。

要使用WSDL和BPEL组合进行电子商务对话,合作伙伴必须有已经实现的Web服务框架。他们可以使用BPEL中的抽象流程特征构造一个互相认可的电子商务对话定义。合作伙伴可以为这个电子商务对话重用Web服务,并在必要时创建新的Web服务。目前,合作伙伴将必须在对话中定义每一件事,包括使用的词汇、交换的消息、消息的编排和业务流程的定义。可以预计,在不久的将来,合作伙伴将不必一切从头开始,而是可以从包括标准词汇、消息和编排在内的标准化流程中受益。在这一系列文章中,我阐述了在用WSDL和BPEL定义Web服务时,合作伙伴可以如何利用RosettaNet所定义的标准化流程。





回页首


扩展的电子商务对话

前面我们已经讲解了许多重要的主题,比如电子商务对话、RosettaNet、BPEL4WS和数字表示,现在就让我们开始构建基于RosettaNet的Web服务。这种Web服务是在两个业务合作伙伴之间进行的Purchase Order(购买订单)对话。它基于RosettaNet PIP3A4。

由于BPEL4WS提供的功能比RosettaNet公共流程空间多,所以我们也将说明您可以如何将公共流程连接到您的后端私有流程和应用中。这意味着您实际上可以开始测试您的试验项目的真实数据和真实系统。


图4. 扩展的电子商务对话

4中展示了我在这一系列文章中构建的扩展的电子商务场景。扩展的电子商务场景如下:某一天,当成功地出售了便携式计算机之后,ACME的Inventory Manager应用意识到存货不足,然后它触发ACME PO Requester流程。ACME PO Requester流程接着开始与与JoeLaptops Inc进行公共电子商务对话,并且发出购买订单请求。

JoeLaptops Inc从ACME接收购买订单请求,然后立即发回一个消息,告知请求收到。ACME的PO Requester收到接收确认,然后通知Inventory Manager,Purchase Order已经发出。Inventory Manager返回到其他的活动,而PO Requester结束请求流程。同时,在JoeLaptops公司,Place PO流程调用Sales Agent,一个内部Web服务,然后将ACME的购买订单请求传到Sales Agent。Sales Agent计算出购买订单的哪些部分可以满足,然后形成购买订单确认,以提供一份详细说明,逐行显示所能供应的物品。然后把该确认从Sales Agent传回到JoeLaptops的公共Place PO流程。

然后,JoeLaptops的流程将购买订单确认发送到接受购买订单确认的ACME流程。ACME确认接受流程调用内部Web服务来通知ACME的Accounts Service关于购买的情况。ACME流程接着发回一个消息,告知收到购买订单确认,并且结束ACME和JoeLaptops公司之间的购买订单电子商务对话。JoeLaptops公司收到此接收确认,然后调用内部Web服务到它的成品库,这样就可以把订购的货物发送到ACME。





回页首


结束语

在本文中,我描述了编排和电子商务对话,并且介绍了数字表示,作为一种策略,数字表示允许对服务进行电子访问。我还说明了为什么BPEL4WS是构建我们的电子商务对话的一个理想选择,然后介绍了我为这一系列文章精心设计的电子商务对话。

在接下来的文章中,为了创建这个精致设计的电子商务对话,我将描述如何在合作伙伴之间创建可靠的异步消息传输,如何将后端系统与公共流程进行绑定,如何创建公共流程,然后我还将说明需要哪些工具以及如何安装这些工具。当然,我们也将提供所需的全部代码。请继续阅读下一篇文章。



参考资料



关于作者

作者相片

Suhayl Masud是 Different Thinking的总裁,该公司是一个咨询公司,通过提供培训、体系结构和应用构建服务,使组织可以理解并处理电子商务。Suhayl还是 Agile Webservices的共同创办人,该公司提供Policy Based Computing解决方案。Suhayl曾作为RosettaNet的lead technical architect担任过顾问工作,帮助定义下一代的电子商务流程标准。您可以通过 SuhaylA@DifferentThinking.com与Suhayl联系,他会很高兴收到您的信。




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款