控制多节点进程的方法和设备的制作方法

文档序号:6430327阅读:212来源:国知局
专利名称:控制多节点进程的方法和设备的制作方法
技术领域
本发明涉及控制多节点进程的方法和设备。具体地说,本发明涉及控制两个或更多个客户机系统之间的进程的代理器系统。
背景技术
万维网服务描述了使应用能够在因特网上相互通信的一组协议和技术。它们是具有人们依据传统服务预期的相同服务质量的、涉及把商业服务引入因特网世界中的电子商务框架的一部分。
简单万维网服务牵涉到在因特网上连接的双方,即客户机和服务器。客户机在因特网上把请求发送到服务器;服务器处理请求和在因特网上把响应发回客户机;以及客户机接收信息。这样的信息可以是天气预报。
较复杂万维网服务牵涉到像如图1的现有技术所示那样的多个节点。客户机12(销售者)发送和接收来自客户机14(购买者)的消息,以便接受来自客户机14的支付。支付服务模块18代表客户机14进行支付而支付服务模块16代表客户机17接受支付。在本例中,客户机12向客户机14请求支付;客户机14把请求传递给支付服务模块18;支付服务模块18准备通过客户机14和客户机12转送到支付服务模块16的支付汇票;如果接收到支付汇票,支付服务模块16就把消息发送到客户机12。
在上面的服务中,在每个节点协调进程中的下一个步骤的每个节点中定义固定步骤的进程。进程步骤的知识保存在每个节点中。每个节点只知道如何独立地或与另一个节点一起执行进程中的某些步骤。进程中的每个步骤导致进程中的进一步步骤,从而,不是集中地,而是跨过一组节点地定义进程。一旦节点完成了进程中它自己的步骤,它就触发下一个节点,以便开始执行下一个步骤。在本例中,节点存在一些进程控制,但不是进程的个别控制。
这样的分布式进程对于那个进程和那些节点来说是固定的。需要的是客户机可以选择进程和选择要包括在那个进程中的节点的解决方案。

发明内容
根据本发明的第一方面,提供了如权利要求1所述的控制两个或更多个节点之间的进程的系统。
在优选实施例中,这样的系统被称为进程代理器。节点(在优选实施例中被称为客户机)最好被配置成唯一地与进程代理器交互而不与其它节点交互,以便没有节点可以不与代理器交互地对那个唯一节点执行进程。更可取地,这样的代理器成为可信方。最可取地,利用这样的代理器系统,把单个焦点(single point of focus)赋予形成整个进程的一部分的多个子进程。
更可取地,这样的系统为应用开发者提供面向简单命令的接口,使客户机能够无需知道实际如何与任何预定服务模块交互就可以与那个服务模块交互。这样的知识存储在系统中。
更可取地,节点可以是许多种计算机系统类型之一。第一节点可以是调用进程购买产品或服务的客户机。第二节点可以是拥有要处理的商品或服务的客户机。另一个节点可以是第一节点和第二节点的支付服务模块。还有一个节点可以是定位节点,例如,支付服务模块的连接细节的服务登记器。


现在参照附图,只通过举例的方式描述本发明的优选实施例,在附图中图1是现有技术多节点支付进程的示意图;图2是本实施例的多节点支付进程的示意图;图3是本实施例的进程代理器的主要部件的示意图;以及图4是支付进程模板的多节点进程流程。
具体实施例方式
参照图2对整个节点系统的部件加以描述。图2显示了通过一个网络或数个网络与进程代理器10连接的客户机40和客户机42。与进程代理器10相连接的还有支付服务模块44、支付服务模块46和服务登记器48。
客户机40把相关数据存储在保密存储器中,在这种情况下,相关数据是它的支付服务模块44的名称和支付服务模块44拥有的帐户详细资料。客户机40和42能够把数据发送到进程代理器10和从进程代理器10接收数据。在本实施例中,客户机40是利用WAP(无线应用协议)传输协议与进程代理器10通信的WAP启动移动电话。客户机42通过HTTP(超文本传输协议)的公用网络协议与进程代理器10通信。
服务登记器48包含支付服务模块44和46的连接详细资料。这样的连接详细资料由进程代理器10利用客户机提供的节点名获得。
网络连接包括客户机、代理器和服务登记器在内使用服务的所有节点。进程代理器10具有多网络传输能力和在网络上利用公用HTTP协议来协议万维网服务。
进程代理器10能够执行服务,图3更详细地显示了进程代理器10。在本实施例中,进程代理器是利用IBMWebSpere商用进程豆(bean)建造的,在IBM WebSpere万维网应用服务器上运行。但是,只要可以运行、执行、处理和调用服务模块,任何语言或平台都可以使用。进程代理器10的功能是存储进程模板;执行那些进程模板;维持执行状态;以及管理执行步骤之间的数据。下面描述进程模板的例子。
进程代理器10包括进程引擎30和进程模板库32。进程引擎30包括一堆部件消息收听器34、消息发送器35、进程解释器36、进程执行模块37、保密模块38和协议转换器39。进程模板库32包括进程模板1(支付进程模板)、进程模板2(加密的支付进程模板)和支付进程模板3(数字商品与报酬的交换)。
消息收听器34接收来自节点的消息。这个部件能够接收使用传输协议的消息(无论是来自对方的请求还是响应)。如果协议不是公用协议,而是不同协议,那么,调用协议转换器39转换不同协议消息。把不同协议存储起来,以便随后的消息可以是转换的不同协议。消息收听器34通过识别消息中的会话id或会话id的不存在,将作为当前进程的一部分的消息与请求执行新进程的那些消息区分开。如果没有会话id,那么把消息传递给进程解释器36。如果存在会话id,那么把消息传递给进程执行模块37。
消息发送器35把消息发送到节点。这个部件能够在HTTP传输机制下发送消息(无论是来自对方的请求还是响应)。一般说来,每个消息都将包含可以包括在响应中的会话id,以显示该消息是正在执行的进程的一部分。如果已知接收节点支持不同协议和不支持公用协议,那么,在发送消息之前,调制协议转换器39转换那个不同协议。
进程解释器36分析不含会话id的消息,以识别该消息是否是利用进程执行模块37启动会话。然后,它从消息(包括节点)中为进程执行模块37的随后执行识别进程模板和参数,并且,为进程模板的处理指定会话号。
进程执行模块37分析所选进程模板中的步骤和调用各种方法。如果包含会话id,它还分析来自节点的响应。它计数模板中的步骤并依次执行每一步。这里描述四种主要方法内部方法、调用节点方法、节点地址方法和角色管理方法。内部方法可以是许多种内部方法(例如,数学运算、逻辑运算、字符串运算、局部方法调用)中的任何一种。调用节点方法利用消息发送器35来与节点通信和请求进行服务。这种方法需要节点地址。一旦从调用节点方法中返回,就在接下来的步骤的处理中存储和使用响应。节点地址方法通过把节点名发送到服务目录,获取节点地址。只有当启动或随后客户机给出节点名时,才调用这种方法。角色管理方法把节点名分配给角色,当在进程模板中不直接引用节点名时,使用角色管理方法。进程模板按角色,例如,源节点、目标节点、目标节点的支付服务模块定义进程。角色管理方法根据来自节点的、在第一和随后消息中提供的参数,把角色分配给特定节点。
保密部件38识别对保密进程的请求。进程代理器10本身不使用,也无需使用任何加密数据,除了把它传递给相关节点之外。
保密部件包括识别对保密进程模板的请求和选择这样的保密进程模板的方法,以及识别进程模板中的保密进程的方法。
进程模板是这里用于描述多个节点之一之间的通用交互的术语。这样的描述由系统用于协议节点之间的万维网进程。进程模板是用适合于系统执行的语言描述的,它定义实现多个节点之间的特定目的的特定进程,如支付进程或商品交换进程。进程模板定义在进程中其作用必须由给定的一组参与方担当的、需要收集和交换的信息和为了实现特定目的而需要采取的步骤。可以在进程模板中定义以描述“支付”的示范性角色是“购买者”、“销售者”和“银行经营者”。就万维网服务而言,进程模板包括一个或多个子进程,每个子进程描述一个万维网服务交互。
当进程模板经进程代理器解释和执行时,它变成它描述的进程的运行实例,和在其中定义的角色必须与实际参与方相联系,无论这些实际参与方是进程代理器的客户机,还是进程代理器使用或告诉进程代理器供客户机使用的服务。
从本发明优选实施例中的进程模板被存储在系统中含有其它进程模板的数据库中和在执行期间保持不变的意义上,它是静态的。
在一些进程中需要敏感的详细资料,由此,人们希望限制牵涉的一些参与方访问敏感的详细资料。
协议转换器39包括当接收来自客户机的消息时,如果消息传输协议与公用协议不同,则将消息传输协议转换成公用协议;而当把消息发送到客户机时,如果客户机使用不同的传输协议,则将消息传输协议转换成客户机的传输协议。
加密技术可以处理在多节点系统中遇到的敏感的详细资料问题。信任领域存在于类似节点和相关节点之间,例如,在本实施例中,它们存在于客户机之间;客户机和它们的支付服务模块之间;以及支付服务模块之间。一种情况是每个客户机具有相同信任度和看见每个节点的所有数据。另一种情况是客户机和它的相应支付服务模块之间的通信用只有客户机和那个节点知道的密钥加密,其它节点意识不到。再一种情况是两个支付系统相互意识到和独立地或通过代理器交换公开加密密钥,因此,代理器将不知道如此加密的通过代理器发送的数据。在第三种情况中,由于允许代理器传递敏感数据,但代理器不知道那是什么,所述它只是半信任第三方进程协调者。
在最后一种情况中,由于只加密敏感数据和不加密消息,所以消息得到部分加密。IBM MQe产品已经阐述了这样的解决方案,在这种产品中,可以进行文件的部分加密和消息级加密,从而无需冒着消息被中间节点看见的风险,通过节点就可以路由它们。但是,这种产品纯粹是消息传送平台,是建造像本实施例那样的进程的基础。IBM MQe在MQe存在于每个节点(在这种情况下,客户机、支付服务模块和要调用的所有服务)中的同构环境下运行。
异构系统含有公用网络传输协议。进程代理器含有基本公用网络传输协议,以便协调进程,但还包括如果一个节点不支付公用协议,将协议转换成公用协议和从公用协议转换协议的装置。由于进程代理器处在进程的中心,所以它是执行这样的功能的理想位置,和使节点保持稀少和利用它们的原始传输协议进行通信。
在本实施例中描述了两个示范性进程模板。这些进程模板的每一个存储在进程模板库32中。进程模板利用标准接口定义来定义服务。进程模板的这个数据库可以按类型引用,进程引擎30可以为了解释和执行而检索它。
图4的支付进程模板把电子支付汇票直接从客户机42的支付服务模板传送到客户机40的支付服务模块。例如,一对客户机正在交易,在它们之间需要发生1美元的支付。客户机40(销售者)想要从客户机42(购买者)那里获得报酬。
在步骤401中,客户机40把请求和数据发送到进程代理器10。请求数据(C40数据)包含客户机40支付服务模块详细资料的名称(可以进行支付的支付服务模块44)、要支付的金额(1美元)和对进程代理器10将了解的客户机40的引用(例如,客户机40的节点名或地址)。没有会话id包括在消息中。
在步骤402中,进程代理器10通过消息收听器34接收消息。消息收听器34识别没有会话id和把它传递给进程解释器36。进程解释器36分析和选择请求所指的支付进程模板。进程解释器36从进程模板库32中为支付进程检索进程模板,并且把进程模板传递给进程执行模块37。进程执行模块37利用作为输入发送给进程的请求数据执行那个进程模板。进程执行模块37识别这个进程模板中作为购买者的启动角色,并且利用角色管理方法把客户机40与那个角色联系在一起。进程执行模块37还联系进程中的三个其它角色把Buyer与客户机42联系在一起;把BuyerBankingService与支付服务模块46联系在一起;以及把SellerBankingService与支付服务模块44联系在一起。在请求数据(C40)中规定了Seller BankingService,和在步骤402中,由进程解释器36将它与PaymentService 44相联系,而BuyerBankingService是在步骤404之后联系的。
步骤403是进程执行模块37所执行的进程模板的第一步骤,这个步骤从客户机42请求相关数据。按照来自Buyer角色的关于银行服务模块的详细资料的请求文件定义第一进程步骤。由于输入数据指定客户机42,事先把Buyer角色判定为客户机42。
客户机42接收请求文件,和根据销售者数据(amount=$1),通过指定支付服务模块46是BuyerBankingService,作出响应。客户机42根据客户机40的数据把它自己的数据(C42数据)加入请求文件中,并且把它发回进程代理器10。
在步骤404中,进程执行模块接收来自客户机42的请求文件。在这个步骤中,进程执行模块调用角色管理方法,而进程解释器36在接受客户机42之后,将支付服务模块46与BuyerBankingService联系在一起。
在步骤405中,如果存在为支付服务模块44和46获取节点地址的需要,进程执行模块调用服务登记器48。这个进程步骤从服务登记器48获取支付服务模块44和46的连接详细资料,因为这些支付服务模块分别与SellerBanking-Service和BuyerBankingService的角色联系在一起。
在步骤406中,为了开出可付给客户机的支付汇票,进程执行模块37把请求文件(购买者详细资料、销售者详细资料、金额)发送到客户机42的支付服务模块46。
在步骤407中,如果所有详细资料都处在可使用状态,进程执行模块37就从服务登记器48接收支付汇票。
在步骤408中,进程模板的下一个流程步骤把支付汇票存放在客户机40的支付服务模块44中。
在步骤409中,支付服务模块44指示成功还是失败,进程模板中的步骤410,即最后流程步骤把状态返回到客户机40。
进程模板的第二个例子与牵涉到数字商品与报酬的交换的更复杂进程流程有关。对于这个进程,没有用图显示出来,因为它与图2加上数字权利管理(DRM)节点相同。
一对客户机正在交易。客户机40(销售者)想要从客户机42(购买者)那里获得5美元金额的报酬。在交换过程中,客户机10将转移数字财产,即以MP3格式编码和受创作音乐文件的音乐发行公司管理的数字权利管理(DRM)系统(DRMService A)保护的音乐文件的所有权。
步骤1.客户机40把“ExchangeGoodsForPayment”请求发送到指定它的支付服务详细资料(PaymentService 44)、它的DRM服务名(DRMService A)、对DRM服务模块(MP3-A)知道的音乐文件的调用和客户机42的会话ID的代理器。
步骤2.进程代理器10检索ExchangeGoodsForPayment进程模板,并将提供的数据与适当的角色,即,Buyer、Seller、SellerPaymentService和DRMService相联系。
步骤3.第一进程步骤从Buyer角色请求银行服务模块详细资料。进程代理器10把对这个信息的请求发送到客户机42。
步骤4.客户机42接收请求,并通过指定支付服务模块46是它们的银行服务模块来作出响应。将支付服务模块46与BuyerBankingService(进程模板中的最后角色)相联系。
步骤5.在下一个进程步骤中,进程代理器10从服务登记器48请求支付服务模块44和46的连接详细资料,因为这些支付服务模块44和46分别与销售者和购买者的BankingService的角色联系在一起,和请求DRMServiceA的连接详细资料,因为这个DRMService A与DRMService角色联系在一起。
步骤6.在下一个进程步骤中,为了开出可付给销售者的支付汇票,进程代理器10把复合请求发送给支付服务模块46(购买者详细资料、销售者详细资料、金额)。
步骤7.如果所有详细资料都处在可使用状态,支付服务模块46把有效支付汇票返回给进程代理器10。
步骤8.在下一个步骤中,进程代理器10把支付汇票发送给支付服务模块44,以核实支付汇票是有效的和可接受的。
步骤9.在下一个步骤中,支付服务模块44把支付汇票有效的指示返回给代理器10。
步骤10.现在进程代理器10把请求发送到DRMService A,以便把虚拟财产(MP3-A)的所有权从客户机40变更给客户机42。
步骤11.DRMService A通过确认所有权的变更有效,对进程代理器10作出响应,但需要保证完成。
步骤12.像完成存款那样,下一个进程模板步骤把支付汇票发送给支付服务模块44。
步骤13.支付服务模块44指明成功还是失败。
步骤14.如果结果失败了,那么,进程代理器10把请求发送给DRMService A,以取消所有权变更,并且把失败响应发回客户机40。但是,如果结果成功了,那么,进程代理器10把成功状态返回到客户机40(成功地进行了支付和转移了财产所有权)。
上面借助于商用进程豆对进程代理器10作了描述,但是,也可以以适合执行进程模型,例如,有限状态机、有向图解释器等的任何多种方式实现进程代理器10。例如,商用进程豆将使用自适应商用服务模型,而诸如IBMMQSeries Work Flow(MQWF)之类的有向图流引擎将使用流定义模型化语言(FDML)。
权利要求
1.一种控制两个或更多个节点之间的进程的系统,包括存储两个或更多个进程模板的装置,每一个进程模板定义两个或更多个节点之间的进程;从节点接收消息和把消息发送到节点的装置;响应从第一节点接收的消息选择进程模板和第二节点的装置;执行进程模板,包括把消息发送到如进程模板所定义的所选第二节点并作出响应来从第二节点接收消息的装置;以及作为执行所选进程模板的结果,把响应发送到第一节点的装置。
2.根据权利要求1所述的系统,其中,第一节点是调用进程购买产品或服务的客户机。
3.根据权利要求1或2所述的系统,其中,第二节点是拥有要处理的商品或服务的客户机。
4.根据前述权利要求的任何一项所述的系统,其中,每个进程模板包括一个或多个步骤,和至少一个步骤是与节点的交互。
5.根据前述权利要求的任何一项所述的系统,其中,进程模板步骤是用解释语言编码的。
6.根据前述权利要求的任何一项所述的系统,其中,所选进程模板中的随后步骤是在执行前一步骤期间从节点接收的,和所述随后步骤被加入所选进程模板中。
7.根据前述权利要求的任何一项所述的系统,其中,代理器包括协议转换器,用于当接收来自客户机的消息时,如果消息传输协议与公用协议不同,则将消息传输协议转换成公用协议;而当把消息发送到客户机时,如果客户机使用不同的传输协议,则将消息传输协议转换成客户机的传输协议。
8.一种控制两个或更多个节点之间的进程的方法,包括存储两个或更多个进程模板,每一个进程模板定义两个或更多个节点之间的进程;从节点接收消息和把消息发送到节点;响应从第一节点接收的消息选择进程模板和第二节点;执行进程模板,包括把消息发送到如进程模板所定义的所选第二节点并作出响应来从第二节点接收消息;以及作为执行所选进程模板的结果,把响应发送到第一节点。
9.根据权利要求8所述的方法,其中,第一节点是调用进程购买产品或服务的客户机。
10.根据权利要求8或9所述的方法,其中,第二节点是拥有要处理的商品或服务的客户机。
11.根据权利要求8到10的任何一项所述的方法,其中,每个进程模板包括一个或多个步骤,和至少一个步骤是与节点的交互。
12.根据权利要求8到11的任何一项所述的方法,其中,进程模板步骤是用解释语言编码的。
13.根据权利要求8到12的任何一项所述的方法,其中,所选进程模板中的随后步骤是在执行前一步骤期间从节点接收的,和所述随后步骤被加入所选进程模板中。
14.根据权利要求8到13的任何一项所述的方法,其中,代理器包括协议转换器,用于当接收来自客户机的消息时,如果消息传输协议与公用协议不同,则将消息传输协议转换成公用协议;而当把消息发送到客户机时,如果客户机使用不同的传输协议,则将消息传输协议转换成客户机的传输协议。
15.一种控制两个或更多个节点之间的进程的计算机程序产品,包括当在计算机系统上运行上,执行如下步骤的程序代码存储两个或更多个进程模板,每一个进程模板定义两个或更多个节点之间的进程;从节点接收消息和把消息发送到节点;响应从第一节点接收的消息选择进程模板和第二节点;执行进程模板,包括把消息发送到如进程模板所定义的所选第二节点并作出响应来从第二节点接收消息;以及作为执行所选进程模板的结果,把响应发送到第一节点。
16.根据权利要求15所述的计算机程序产品,其中,第一节点是调用进程购买产品或服务的客户机。
17.根据权利要求15或16所述的计算机程序产品,其中,第二节点是拥有要处理的商品或服务的客户机。
18.根据权利要求15到17的任何一项所述的计算机程序产品,其中,每个进程模板包括一个或多个步骤,和至少一个步骤是与节点的交互。
19.根据权利要求15到18的任何一项所述的计算机程序产品,其中,进程模板步骤是用解释语言编码的。
20.根据权利要求15到19的任何一项所述的计算机程序产品,其中,所选进程模板中的随后步骤是在执行前一步骤期间从节点接收的,和所述随后步骤被加入所选进程模板中。
21.根据权利要求15到20的任何一项所述的计算机程序产品,其中,代理器包括协议转换器,用于当接收来自客户机的消息时,如果消息传输协议与公用协议不同,则将消息传输协议转换成公用协议;而当把消息发送到客户机时,如果客户机使用不同的传输协议,则将消息传输协议转换成客户机的传输协议。
全文摘要
本发明涉及控制多节点服务的方法和设备。描述了控制两个或更多个客户机与服务登记器之间的进程的进程代理器,它包括数个进程模板,每个进程模板代表在节点上协调服务的进程并包括与每个节点协调这样的服务的一个或多个步骤;从第一节点接收消息的装置;响应消息选择进程模板并参与节点的装置;在所选节点上调用如在所选进程模板中定义的进程步骤的装置;以及利用在所选进程模板中定义的那种类型的响应和根据来自参与节点的响应,对第一节点作出响应的装置。
文档编号G06Q30/00GK1611052SQ02821531
公开日2005年4月27日 申请日期2002年12月13日 优先权日2001年12月22日
发明者克里斯托弗·E·夏普 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1