用于通信系统中的分布式工作流的构造和执行的方法

文档序号:6569585阅读:187来源:国知局
专利名称:用于通信系统中的分布式工作流的构造和执行的方法
技术领域
本发明涉及通信系统中分布式处理和应用互操作性的控制。尤 其是,本发明涉及一种用于通信系统中的分布式工作流的构造和执 4亍的方法。
背景技术
在引入应用互才喿作性架构及软件之前,应用被设计成仅仅在给 定硬件和操作系统环境中操作的单片系统。时常非常难以确定给定 的应用从何处开始在何处结束,因此难以控制包括多个应用的执行
序列。这些应用形成了没有清晰的接口和边界的分布式(amoeba like )结构。
受到面向对象和网络服务技术以及互操作性解决方案的促进, 所显现的新兴的应用可被定义为可在各种经营过程中重用的分离组 件。在该方式中,随着新经营过程的引入,需要设计实现给定工作 流的用户接口 。还变得可以向现有的传统应用中引入包装器应用。 包装器的目的是使得现有的传统应用看起来像是独立的可重用组件 或者一组可重用组件。互操作性架构的实例包括例如,由对象管理 组织公司定义的公共对象请求代理体系结构(CORBATM)、由微软公 司定义的分布式公共对象模型(DCOM)和网络服务技术。应当注 意的是,工作流、包装器和互操作性架构的使用决不是为限制到企 业信息技术和企业应用。工作流还可以在工业过程控制、机械和电 子设备的控制以及通信网络管理中应用。可以使用例如以VISUAL BASIC⑧编程的用户接口软件组件来隐含地定义工作流。还可以利用 工作流语言来定义工作流,该工作流语言诸如是纟效软7>司定义的 XLANG、 IBM公司定义的Web服务流语言(WSFL)或者万维网联盟(W3C)定义的用于网络服务的语义标记(OWL-S)。首字母缩写OWL 代表网络本体语言。在2004年11的美国国防部高级研究规划局 (DARPA)代理标志语言(DAML)程序文件OWL-S 1.1中描述了 OWL-S。工作流包括大量任务,该大量任务例如包括带有参数的可 重用软件组件的执行,所述参数的值在工作流执行之前已经被确定。 工作流还包括编程语言常见的功能性,诸如分支条件和循环。
在图1中,示出了现有技术中包括任意数目的应用的工作流。 在图1中,至少示出了应用101、应用102、应用103、应用104和 应用105。代表任意整数的小写字母n表示可以存在任意数目的应 用。该应用被排列为一序列。然而,还示出了分支条件,该分支条 件直接使得能够从应用102步进到应用104。该工作流是例如使用图 形用户界面(GUI)而定义的。换言之,使用工作流语言来定义该工 作流。工作流语言的语法例如可以基于可以由解释器或者编译器解 析的可扩展标记语言或者用于类似用途的其他任何已知语法。
图2示出了在现有技术的通信系统中的工作流的执行。在图2 中,示出了工作流管理节点250。还示出的有与工作流管理节点250 通信的三个应用节点。存在应用节点252、应用节点254和应用节点 256。也可以存在任意数量的应用节点,如以小写字母m所示出,该 小写字母m代表任意整数。在图2中,假设存在由四个应用构成的 工作流。按照顺序一个接一个地调用这些应用。指示这四个应用的 执行的工作流说明存储在工作流管理节点250中。初始时,工作说 明命令工作流管理节点250调用应用节点252中的应用。以双向箭 头201示出了该应用调用请求和伴随的响应。指向应用节点252的 箭头表示该请求,相反方向的箭头表示该响应。随即,工作流管理 节点250根据工作流说明来确定从应用节点252调用第二应用。应 用调用和关联的响应以箭头202示出。接着工作流管理节点250确 定调用应用节点254中的第三应用。该应用调用请求和来自第三应 用的伴随响应以箭头203示出。最后,工作流管理节点250确定从 应用节点256调用第四应用。该应用调用请求和来自第四应用的相应响应消息以箭头204示出。
现有技术方案中的问题在于,单个工作流执行节点向通信网络 中引入了单个故障点。工作流执行节点必需复制有备用节点,这是 费用较高的方案。另外,需要载波级平台来使工作流执行节点以及 备用节点的状态同步,以便提供一种热备份配置。还非常可能的是, 无论是否被复制,单工作流执行节点都不是可扩展的方案。如果必 须在短时间帧内处理相当数量的工作流,则工作流执行节点成为系 统中的并瓦颈。

发明内容
本发明涉及一种用于通信系统中的分布式工作流的构造的方
法,其中所述通信系统至少包括存根配置节点和至少 一个主节点。
所述方法包括获取工作流说明,所述工作流说明包括对至少一个
可定位函数的调用以及用于每个所述至少一个可定位函数的标识
符;从所述工作流说明来确定所述至少一个可定位函数;针对所述 至少一个可定位函数确定至少一个触发条件;基于用于所述可定位
函数的标识符为每个所述至少一个可定位函数找到主节点;将所述
工作流分割到至少 一个分区,每个所述至少 一个分区与所述至少一
个主节点中的给定主节点关联,所述给定主节点主管在所述分区中
被调用的至少一个第一可定位函数,所述至少一个第一可定位函数
是所述至少一个可定位函数其中之一;在所述存根配置节点中从所
述至少一个分区之中的第一分区生成至少第一存根配置规则集;以
及从所述存根配置节点向所述至少一个主节点中与该第一分区关联
的第 一主节点提供所述第 一存根配置规则集。
本发明还涉及 一 种用于分布式工作流的构造的系统,所述系统
包括至少一个存根配置节点,其被配置为获取工作流说明,所
述工作流说明包括对至少一个可定位函数的调用以及用于每个所述 至少 一 个可定位函数的标识符;从所述工作流说明来确定所述至少
一个可定位函数;为所述至少一个可定位函数确定至少一个触发条件;基于用于所述可定位函数的所述标识符为每个所述至少一个可
定位函数找到所述至少一个主节点之中的主节点;将所述工作流分
割到至少一个分区,每个所述至少一个分区与所述至少一个主节点 中的给定主节点关联,所述给定主节点主管在所述分区中被调用的 至少一个第一可定位函数,所述至少一个第一可定位函数是所述至
少一个可定位函数其中之一;在从存根配置节点中根据所述至少一
个分区中的第一分区生成至少第一存根配置规则集;以及向所述至
少 一 个主节点中与该第 一分区关联的第 一主节点提供所述第 一存根
配置规则集;以及所述至少一个主节点中的所述第一主节点,其被 配置为从所述存根配置节点获取所述第一存根配置规则集。
本发明还涉及一种用于分布式工作流的构造的网络节点,所述 网络节点包括定义实体,其被配置为获取工作流说明,所述工作 流-说明包括对至少一个可定位函数的调用以及用于所述至少一个可 定位函数的标识符,从所述工作流说明来确定所述至少 一 个可定位 函数,以及为所述至少一个可定位函数确定至少一个触发条件;定 位实体,基于用于所述可定位函数的标识符为每个所述至少一个可 定位函数找到所述至少一个主节点中的主节点;分区实体,其被配 置为将所述工作流分割到至少一个分区,每个所述至少一个分区与 所述至少一个主节点中的给定主节点关联,所述给定主节点主管在 所述分区中被调用的至少一个第一可定位函数,所述至少一个第一 可定位函数是所述至少一个可定位函数其中之一;构造实体,其被 配置为在所述存根配置节点中从所述至少一个分区中的第一分区生 成至少第一存根配置规则集;以及提供实体,其被配置为向所述至 少一个主节点中与该第一分区关联的第一主节点提供所述第一存根 配置规则集。
本发明还涉及一种用于分布式工作流的构造的网络节点,所述 网络节点包括用于获取工作流说明的装置,所述工作流说明包括 对至少一个可定位函^:的调用以及用于每个所述至少一个可定位函 数的标识符;用于从所述工作流说明来确定所述至少一个可定位函数的装置;用于为所述至少一个可定位函数确定至少一个触发条件 的装置;用于基于用于所述可定位函数的标识符为所述至少一个可 定位函数找到至少一个主节点中的主节点的装置;用于将所述工作 流分割到至少 一个分区的装置,每个所述至少一个分区与所述至少 一个主节点中的给定主节点关联,所述给定主节点主管在所述分区 中调用的至少一个第一可定位函数,所述至少一个第一可定位函数 是所述至少一个可定位函数其中之一;用于在所述存根配置节点中 从所述至少一个分区中的第一分区生成至少第一存根配置规则集的 装置;以及用于向所述至少一个主节点中与该第一分区关联的第一 主节点提供所述第一存根配置规则集的装置。
本发明还涉及一种用于分布式工作流的处理的网络节点,所述 网络节点包括安装实体,其被配置为从存根配置节点获取用于工 作流的分区的至少一个配置规则集;以及存根实体,其被配置为 检测事件,所述事件包括接收第一消息、接收来自第一可定位函数 的响应、定时器到时以及参数具有值其中至少之一,以及基于所述 至少一个配置规则集中的至少一个配置规则和所述事件,来选择向 第二主节点输出第二消息和调用第二可定位函数其中至少之一。
本发明还涉及一种用于分布式工作流的处理的网络节点,所述 网络节点包括用于从存根配置节点获取用于工作流的分区的至少 一个配置规则集的装置;用于检测事件的装置,所述事件包括接收 第一消息、接收来自第一可定位函数的响应、定时器到时以及参数 具有值其中至少之一;以及基于至少一个配置规则集中的至少一个
配置规则和所述事件,来选择向第二主节点输出第二消息和调用第 二可定位函数其中至少之一的装置。
本发明还涉及一种计算机程序,包括在数据处理系统上执行时 适用于执行下列步骤的代码获取工作流说明,所述工作流说明包 括对至少一个可定位函数的调用以及用于每个所述至少一个可定位 函数的标识符;所述工作流说明来确定所述至少 一 个可定位函数; 为所述至少一个可定位函数确定至少一个触发条件;基于用于所述可定位函数的标识符找到用于所述至少一个可定位函数的主节点; 将所述工作流分割到至少一个分区,每个所述至少一个分区与主节 点关联,所述主节点主管在所述分区中被调用的至少一个第一可定 位函数,所述至少一个第一可定位函数是所述至少一个可定位函凄之 其中之一;从所迷至少一个分区中的第一分区生成至少第一存根配
置规则集;以及向与第一分区关联的主节点提供所述第一存根配置
规则集。
在本发明的一个实施方式中,将工作流启动消息接收到在进行 启动的主节点中的进行启动的存根中。在所述进行启动的主节点的 启动存才艮中处理工作流启动消息。
在本发明的一个实施方式中,在第三主节点的第三存根内接收 来自第二主节点的第二消息。在第三主节点中,例如,在第三存根 中,基于第二消息和至少 一个第 一存根配置规则选择将要调用的第 一可定位函数,其中所述至少一个第一存根配置规则是至少一个第 二存根配置规则集其中之一。基于所述至少一个第二存根配置规则 集中的至少一个第二存根配置规则,从第三主节点中将第三消息输 出到第四主节点内的第四存根,所迷至少 一个第二存根配置规则包 括对参数值和来自所述第一可定位函数的响应其中至少一个的引 用。在本发明的一个实施方式中,存在一个存根对于给定可定位函 数的调用的最大值。在主节点中,可以存在至少一个存根实体。
在本发明的一个实施方式中,在第五主节点内的第五存根中检测 事件,所述事件包括接收第四消息、接收来自第二可定位函数的响 应、定时器到时和参数已经获得值其中至少之一。基于至少一个第 三配置规则集中的至少一个第三配置规则和所述事件,选择以下操
作其中之一向第六主节点输出第五消息、调用第三可定位函数、 为第二参数提供值以及对第四配置规则进行评估。
在本发明的一个实施方式中,函数是根据面向对象编程由对象 或者一组对象提供的方法、与软件实体的消息交换模式、过程、由 软件执行的数学函数、程序模块、例程、操作系统服务或者由应用、一组应用或者其他软件实体提供的任何其他指令序列。该指令还可 以包括从主节点到外围设备的输出指令。可以有大量来自函数的随 后响应,其中的最后响应可以被定义为随后函数的前提条件。
在本发明的 一 个实施方式中,存根配置规则集包括例如用于函 数调用的至少 一 个前提条件和用于向另 一 存根发送消息的至少 一 个 前提条件。在本发明的一个实施方式中,用于存根的配置规则集包 括执行工作流所需的用于存根的处理规则,但是要与其他节点中的 其他存根及其处理规则协作。配置规则集包括例如函数或者消息的 前提条件形式的至少 一 个逻辑规则。
在本发明的一个实施方式中,可定位函数仅仅意指在至少一个 主节点其中之 一 内被主管的函数,基于该可定位函数的标识符而为 其获取该主节点,并且对该函数的主管对工作流的分区产生了影响。 在工作流执行之前、期间或者之后,该可定位函数并非必然需要在 任意主节点之间迁移任意单次,即使可能是这种情况。换言之,术 语可定位函数指代了影响工作流分区的函数。在本发明的 一 个实施 方式中,在工作流说明中除至少一个可定位函数之外,还可能存在 对于远程函数的引用,这并不从属于本发明的方法。处理这些函数 以使得它们并不影响流说明的分区。在从流说明分区而产生的存根
些函数。在工作流说明中除至少一个函数之外,还可能存在对于每 个主节点中存在的固定服务的引用,该固定服务不从属于本发明的 方法并且也不影响工作流的分区。
在本发明的 一 个实施方式中,从远程节点将工作流启动消息接 收到第一主节点中。第一主节点包含存根,该存根配置有来自工作 流的第一分区的处理规则。远程节点可以是网络管理节点、管理节 点或者终端用户节点。响应于工作流启动消息,第一主节点执行存 根,该存根对处理规则进行处理并因此为第 一 节点中的工作流调用 将要被调用的函数。因此,第一主节点发送请求消息给第二主节点, 第二主节点主管与随后的工作流分区对应的存根和处理规则。换言之,通过沿着原始工作流的线路在主节点之间交换消息来执行所述 工作流。
在本发明的一个实施方式中,通过所述存根配置节点中的定义 实体,从工作流说明来确定至少一个分支条件。该定义实体为该每 个所述至少一个分支条件确定由满足所述分支条件而触发的至少一 个动作。这种动作可以是对另 一 分支条件的检验或者对流说明的随 后函数中的调用。对于来自随后分区的随后函数的调用需要向当前 分区的存根中添加用于将消息发送到主管随后函数的节点的规则。 通过该分区实体将该规则添加到存根配置节点中。将必要的消息输
入和输出原语(primitives)添加至与分区的入口点和出口点对应的 存根处理规则中。其中存根对函数的调用需要接收多条消息,例如 来自主管先前分区的每个存根的消息,在与函数的前提条件中提及 的消息列表对应的接收存根中执行有限状态模块。该有限状态模块 确保在存根中调用函数之前,接收在函数调用前提条件中规定的 所有消息和消息参数值。函数调用前提条件也称为触发条件。
在本发明的一个实施方式中,从存根配置节点中的定位实体为 注册节点提供所述至少一个函数中的第二函数的标识符。作为响应, 注册节点向主管所述第二函数的主节点提供主机名或者主机地址。 注册节点例如可以包括域名服务器或者轻型目录访问协议 (Lightweight Directory Access Protocol) ( LDAP ) 目录。
在本发明的一个实施方式中,在第一主节点中,第一存根与至 少一个第四可定位函数关联。在第一主节点中,利用至少一个第四
可定位函数来接收第一存根配置规则集和第一存根配置规则集内的 至少一个存根配置规则。
在本发明的一个实施方式中,主节点可以是互联网协议节点。 该主节点还可以是移动节点,诸如移动通信网络内的移动台。该主 节点还可以是配置为直接或者通过通信网络设施与其他主节点通信 的任意无线节点,所述通信网络设施包括至少基站和基站通信所经 由的互联节点。通信系统可以是无线局域网(WLAN)。在本发明的一个实施方式中,主节点可以与生产工厂的工业机 器人相关联。因此,主节点控制工业机器人。在这种情况下,该工 作流实现了对产品的生产过程的执行。该函数可以代表发布到工业 机器人的控制指令。函数代码可以包括例如向包括大量操作臂和操 作钳的机器人请求的一系列的臂或钳运动。通常,本发明还可以应 用于包括大量协作机器人的过程。
在本发明的一个实施方式中,通信系统包括至少一个全球移动
通信系统(GSM)网络和通用移动电话系统(UMTS)网络。
在本发明的一个实施方式中,计算机程序存储在计算机可读介 质上。该计算机可读介质可以是可移动存储器卡、磁盘、光盘或者 磁带。
本发明的有益之处涉及在主节点中的工作流执行的分布,该主 节点主管将在工作流执行期间被调用的函数。与单个执行节点执行 多个工作流的方案相比,本发明避免了单个故障点。


附图示出了本发明的实施方式并与说明书一起来帮助说明本发 明的原理,包括附图是为了提供对于本发明的进一步的理解,并且 所述附图构成了本说明书的一部分。附图中
图1示出了现有技术中包括任意数目的应用的工作流的方框图; 图2示出了现有技术的通信系统中的工作流的执行的方框图; 图3示出了在本发明的一个实施方式中的工作流的方框图; 图4示出了在本发明的一个实施方式中实现工作流执行的网络 的方框图5示出了在本发明的一个实施方式中已经基于图4所示的功 能性的位置对图3的工作流进行了分区之后的该工作流的方框图6示出了在本发明的一个实施方式中的存根的执行,该存根 配置有从图5的分区信息而生成的处理规则
图7示出了在本发明的一个实施方式中用于分布式工作流的构造的方法的方框图;以及
图8示出了在本发明的一个实施方式中的通信系统的方框图。
具体实施例方式
现在将详细参考本发明的实施方式,附图中示出了这些实施方 式的实例。
图3示出了在本发明的一个实施方式中的工作流的方框图。该 工作流包括对九个函数的调用。在该上下文关系中,函数是由对象 或者一组对象提供的方法、与軟件实体的消息交换模式、过程、经 由软件执行的数学函数、模块、例程、操作系统服务或者由应用、 一组应用或者其他软件实体提供的任何其他指令序列。通常与关联 于应用、 一组应用或者其他软件实体的接口定义相关联地描述函数。 在这种上下文关系中的函数被调用并且返回响应。该调用和响应可 以分别包括至少一个参数。应当注意的是,在该上下文关系中的函 数并未将函数限制为严格数学意义中的映射。
在图3中,存在从函数301至函数309的函数。在函数能够影 响对工作流的分区这个意义上来讲,将这些函数认为是可定位函数。 顺序地无条件调用函数301和302。在对函数302的调用之后,存在 函数303和304的前提条件,该前提条件将引起对函数303或者函 数304的调用。该前提条件检查由函数302返回的参数或者由函数 301和302的函数序列共同产生的参数。在以字母C指示的条件等 于T的情况下,选择通向函数303的分支。换言之,对于函数303 的调用的前提条件是OT。在C等于F的情况下,选取通向函数304 的分支,也即,实现了函数304的前提条件。不管已经调用了函数 303还是调用了函数304,在函数305继续工作流。调用函数305的 前提条件是函数303或者函数304的完成。在已调用了函数305,并 且已经返回了包括其相应值的参数之后,利用在工作流执行期间已 经确定的大量参数值来调用函数306和307两者。对函数306和307 的调用的前提条件包括函数305的完成。函数306和307可以同时执行。在两个函数都返回了包括响应参数和参数相应值的函数响应
时,工作流可以在函数308处继续。函数308需要来自函数306和 307的响应参数。这是对函数308调用的前提条件。响应于函数308 的结束,调用函数309。在函数309返回其响应后,则认为工作流完 成。最后,将在工作流执行期间确定的参数值返回给最初调用该工 作流的函数。根据本发明,基于主管函数301至函数309中的每个 函数的节点来将工作流划分为分区。
在各主节点中所主管的存根软件组件配置有基于这些分区的信 息而产生的处理规则,所述每个主节点包括函数301至函数309中 至少一个函数。向处理M^则中添加必须的原语,以实现在不同物理 网络节点中定位的函数之间的必要消息传递。还将依赖于消息接收 的前提条件添加到该处理规则。例如,将未分区流说明中用于第一 函数调用的第一前提条件替换为该第一前提条件和第二对应前提条 件的组合,该第一前提条件此时针对向涉及第一函数的调用的分区 递送第一消息,该第二对应前提条件针对该第一消息的接收,对该 前提条件的实现引起对第 一 函数的调用。消息递送的前提条件位于 在预定的分区中,该消息接收的前提条件定位在后续分区中。将并 行调用函数的前提条件替换为针对主管函数中至少一个函数的每个 主节点发送消息的前提条件以及用于触发在所述至少一个主节点中 的函数调用的对应消息接收前提条件。
图4示出了在本发明的一个实施方式中实现工作流执行的网络 400。网络400包括六个网络节点,所述六个网络节点用于主管九个 被认为是可定位的函数,函数301至309。存在网络节点402,其主 管函数301和302。存在网络节点404,其主管函数303。存在网络 节点406,其主管函数304。存在网络节点408,其主管函数305。存 在网络节点410,其主管函数308和函数309。最后还存在网络节点 412,其主管函数306和307。在本发明的一个实施方式中,在给定 主节点中被主管的每组函数可以通过应用或一组应用或者在主节点 中执行的系统软件组件来提供。图5示出了在已经基于图4中所示函数301至309的位置对图3 的工作流进行了分区之后的工作流。函数301至309祐:i人为是可定 位的。分区501包括对函数301和函数302的顺序调用。分区501 还包括在消息发送到分区502或者分区503之前对于条件C的检查 的消息递送前提条件。第一消息递送前提条件是指,如果C-T则将 消息发送到分区502。第二消息递送前提条件是指,如果OF则将 消息发送到分区503。在已经调用了函数303或304并完成了该函数 的执行后,基于最初与函数305关联的前提条件来触发消息从分区 502或分区503的递送。在分区504中存在对函数305调用的前提条 件,其授权接收来自分区502或者分区503的消息。在函数305已 经返回其响应后,基于最初与函数306和307关联的前l是条件来触 发从分区504至分区505和506两者的消息递送。这些函数的前才是 条件现在要求消息递送到包括函数306和307的分区而不是仅作出 函数调用。分区505和506负责对来自分区504的消息的接收。分 区505和506包括基于接收到来自分区504的消息而调用函数306 和307的前提条件。分别在分区505和506中调用函数306和307。 现在,自函数306和307返回的响应触发将消息分别从分区505和 506递送到分区507。在分区507中,当调用函数308时,基于从分 区505和506接收的参数值来处理所接收的消息。函数308返回其 响应,并最后调用函数309。来自函数309的最终响应从分区506 返回到最初调用该工作流的应用或者函数(未示出)。从图5所示 的分区,形成大量存根配置规则集,所述存根配置规则被提供给图4 所示的网络节点。应当注意的是,分区之间的消息交换还可以包括 从接收分区向发送分区的应答消息的发送。在图5中并未示出应答 消息。
在图6中,示出了根据本发明的一个实施方式的存根的执行, 该存根配置有根据图5的分区信息而生成的处理规则。该存根通过 调用在图3的工作流说明中指定的函数,并基于图5示出的分区, 来根据处理规则执行工作流。示出的函数被认为是可定位的。处理规则包括根据该分区而修改的前提条件。在图6中,存在从650至 656的网络节点。在主节点650中主管配置有根据分区501产生的处 理规则的存根660。在主节点651中主管配置有使用分区502产生的 处理规则的存根661。在网络节点652中主管配置有根据分区503 产生的处理规则的存根662。在网络节点653中主管配置有使用分区 505产生的处理规则的存根663。在网络节点654中主管配置有使用 分区504产生的处理规则的存根664。在网络节点665中主管配置有 根据分区506产生的处理规则的存根665。在网络节点656中主管配 置有根据分区507产生的处理规则的存根666。
工作流的执行利用消息601来启动。消息601可以源自未示出 的外部网络节点。消息601还可以源自节点650内部的应用(未示 出)。对函数671的调用以箭头602示出。自函数671对存根660 的响应以603示出。存根660对函数672的调用以箭头604示出。 自函数672对存根660的响应以箭头605示出。
在接收消息605之后,存根660检查条件C是等于T还是等于 F。字母T和F可以分别对应于真值真和假。在满足了函数673的 前提条件OT的情况下,如箭头606A所示,存根660发送消息给 存根661。以箭头607A示出了该应答。在满足了函数674的前提条 件OF的情况下,如箭头606B所示,存根660发送消息给存根662。 以箭头607B示出了该相应的应答。存根661对函数673的调用以箭 头608A示出。来自函数673的响应以箭头609A示出。存根662对 函数674的调用以箭头608B示出。来自函数674的响应以箭头609B 示出。当在工作流期间调用函数673的情况下,如箭头610A所示, 存根661发送消息给存根664。以箭头611A示出了相应的应答。当 在工作流期间调用函数674的情况下,如箭头610B所示,存根662 发送消息给存根664。以箭头611B示出了相应的应答。存根664调 用函数675,如以箭头612所示。对存根664的响应以箭头613示出。 在自函数675响应时,存根664必须使得函数676和677并行执行。 自然地,由于通信介质中的限制,可能不能严格地并行调用这些函数。存根664对存根663的调用以箭头614示出。相应的应答以箭 头615示出。存根664对存根665的调用以箭头616示出。相应的 应答以箭头617示出。在通知存根663完成与调用618相关的函数 676时,存根663向存根666发送消息,如以箭头622所示。自存根 666发送到存根663的应答以箭头623示出。
应当说明的是,在图6中,假设在函数677完成其相应的调用 之前,函数676完成了调用。因此,在从节点655发送相应的消息 之前,将消息从节点653发送到节点656。响应于接收到来自函数 677的响应621,存根665发送消息到存根666,如以箭头624所示。 存根之间的相应应答以箭头625示出。
为了实现根据工作流的说明的工作流,将存根666配置为在允 许存根666以对函数678的请求的形式来继续执行工作流之前,等 待消息622和624两者。对于接收消息622和624两者的^^验通过 例如有限状态模块的方式来执行,该检验在针对存根666而安装的 处理规则中加以授权。存根666调用函数678,如以箭头626所示。 函数678对存根666的响应以箭头627示出。存根666对函数679 的调用以箭头628示出。自函数679对存根666的响应以箭头6" 示出。在已经接收到消息629后,存根666能够收集工作流执行的 最终结果,并向调用实体(未示出)或者网络节点(未示出)应答 工作流的成功执行,如以箭头630所示。
在本发明的一个实施方式中,给定主节点中的给定存根在任何 影响存根配置规则集中所提及的前提条件的事件之后,检查不断地 提供给它的存根配置规则集。这要求存根检验对于规则中提及的每 个函数递送和每个消息递送的前提条件是否满足。这在程序上避免 了对存根配置规则集和工作流的定义,而不是只是触发。
应当注意的是,使用存根实现的工作流,还可以包括后退步骤, 如果某些函数返回了错误状态则执行该后退步骤。工作流中的后退 步骤也可以通过存根之间的消息交换来实现。应当注意的是,如图6 所示,对于各个函数的各个函数调用实际上可能是指向由单个应用所提供的不同方法。例如,函数678和679可以是由主节点656中 主管的单个应用所提供的各个接口或者方法。出于本发明以及执行 工作流的目的,由单个软件实体提供的各个接口或者方法被示出为 各个函数。
图7示出了在本发明的一个实施方式中用于分布式工作流的构 造的方法。在步骤700,由程序员、系统操作员或网络管理员来定义 工作流。例如,可以使用在工作流说明节点中提供的图形用户界面 (GUI)来定义工作流,该工作流说明节点同时还可能是存根配置节 点。用户界面可以提供符号用以指示函数执行、分支条件、循环条 件、函数前提条件或者其他类似编程原语。用户将符号拖动到显示 的工作空间中,在此处用户可以由这些符号组装用于该工作流流程 图。当定义工作流时,可以在特定的测试工具或者测试环境中对其 进行测试。当提交工作流以用于在步骤702进一步处理时,确定函 数,即工作流中引用的可定位函数。例如在存根配置节点中执行进 一步的处理,该存根配置节点可以是工作流定义节点或者独立的节 点。这例如要求将函数名或者标识符收集在列表中。在步骤704,从 工作流确定函数输入和输出参数。在步骤706,根据工作流说明来确 定函数前提条件。例如,该前提条件指示了在可以调用给定函数之 前必须已经获得哪些参数和其相应的值。在本发明的一个实施方式 中,该前提条件还可以明确地指示这样的函数,该函数的完成是随 后函数的前提条件。在本发明的一个实施方式中,该前提条件还可 以借助于给定参数的值的存在或者借助于特定值,来隐含地指示这 样的函数,该函数的完成是随后函数的前提条件。在这种情况下, 假定由给定函数处理的所有参数已经在该函数中被修改。该信息在 相关存根的处理规则的构造中使用。
在本发明的 一个实施方式中,明确地确定工作流的分支条件。 在本发明的一个实施方式中,明确地确定函凄史和前述分支的后置条 件。该后置条件确定响应于来自给定函数的响应或者在工作流中遇 到给定分支,必须调用什么函数。在本发明的一个实施方式中,不存在明确的后置条件。该后置条件仅仅借助于函数的前提条件和流 的完成来定义。该前提条件使得必要的消息能够在对给定函数的调 用之前进行递送和接收动作,该给定函数将作为分区结果在存根配 置规则集中加以定义。从分区之前的原始函数调用前提条件中获得 消息递送的前提条件。
在步骤708,针对在工作流说明中提及的函数而确定主节点。主 节点的确定例如可以使用从函数名的至少 一部分到主机名或者地址 的映射。例如,基于预先配置的规则提取足以确定用于该函数的主 节点的函数名的第一部分。然后,将该第一部分映射到该函数的主 节点。该映射例如可以一使用域名系统,或者它可以^使用轻型目录访
问协议(LDAP)节点。例如在互联网工程任务组(IETF)的文件RFC 2251中定义了 LDAP。从域名系统服务器或者从LDAP协议节点接 收主节点名或者主节点地址。例如,存根配置节点所使用的域名解 析库可以进一步将主节点名解析成网络地址。在步骤710,确定哪些 主节点是在主管工作流中的随后函数。基于对不同主节点的分区函 数,将工作流分割到与主节点对应的特定的分区,所述主节点主管 了工作流中的大量随后的函数。在步骤712,根据工作流的分区而产 生存根配置规则集,即处理规则。在形成用于消息参数到函数参数 的映射的规则中,使用要求的函数输入参数。类似地,在形成用于 函数输出参数到消息参数的映射的规则中,使用要求的输出消息参 数。使用与分区相关的信息来确定存根配置规则中需要的消息发送 原语。步骤712的结果是准备好用于安装至主节点中的一组配置规 则。在步骤714,将存根配置规则集安装到该方法在其上结束的相关 主节点和它们的存根。此后,存根就准备用于根据所提供的配置规 则处理工作流的实例。
图8示出了在本发明的实施方式中的通信系统。在图8中,存 在网络800。主节点810和存才艮配置节点830连接至网络。还存在注 册器820,其执行函数名或者部分函数名至主节点名或者地址的映 射。存#4己置节点830包括工作流定义工具834。 一奐言之,其就是工作流定义实体834。存根配置节点830包括函数定位实体835、工作 流分区实体836、存根配置规则构造实体837和存根配置规则提供实 体838。存根配置节点830还包括通信实体832。通信实体832包括 用于对主节点执行存根配置规则安装的相关协议。例如,通信实体 832可以包括TCP/IP协议栈、超文本传输协议(HTTP )实体或者文 本传输协议(FTP)实体。通信实体832配置为与工作流定义实体 834、定位实体835和存根配置规则提供实体838交换数据。在本发 明的一个实施方式中,通信实体832 4^流与实体834至838中的每 个实体通信。
主节点810包括通信实体812,其进一步包括例如TCP/IP协议 实体和HTTP协议实体或者FTP协议实体。在IETF文件RFC 2616 中定义了 HTTP协议,在IETF文件RFC 959中定义了 FTP协议。 在主节点810中,还存在执行环境实体816。执行环境实体可以例如 是JAVA⑧虚拟机或者主机节点810的本机操作系统。该执行环境实 体816主管至少一个函数实体,即函数实体817,其是可定位函数。 执行环境实体816还包括至少一个存根实体,例如存储实体818。存 根实体818可以包括例如,用于存根配置规则的处理的执行或者推 论引擎。用于存根实体的配置规则使用安装实体814来安装,该安 装实体经由网络800从存根配置规则节点830中的工作流定义实体 接收存根配置规则。在本发明的一个实施方式中,提供了整个存根 软件实体来替代动态的存根配置规则。
安装实体814还可以执行给定存根实体和给定函数实体之间的 必要绑定。在本发明的一个实施方式中,安装实体814还可以包括 在执行环境实体816内。通信实体812的部分也可以包括在执行环 境实体816中。
以箭头850示出了至通信实体812的对配置规则集854的接收, 该配置规则集至少包括配置规则856和858。通信实体812可以经由 安装实体814或者直接向存根实体818提供配置规则集,如箭头852 所示。在本发明的一个实施方式中,安装实体814是存根实体818或者通信实体812的一部分。
在本发明的一个实施方式中,工作流定义实体834包括图7所 示的步骤700,定位实体835包括步骤702至708,工作流分区实体 836包括步骤710,存根配置规则构造实体837包括步骤712,并且 存根配置规则提供实体838包括步骤714。
在本发明的一个实施方式中,将完整的工作流定义接收至存根 配置节点830。在本发明的一个实施方式中,工作流定义实体834 包括若干工作流模式。该模式定义了通常工作流中步骤的组合或者 频繁出现的步骤。可以由定义工作流的用户来使用工作流模式,或 者可以在产生存根的配置规则中使用工作流模式。该图案定义了在 流中经常出现的步骤序列,该步骤序列用于给定用途。工作流模式 表明对于整个函数工作流的完成必须的特定消息交换模式,该完成 不能忽略任何可能的第四条件或者必要的消息交换。例如,工作流 模板可以确保产生的存根配置规则包含用于消息交换的适当的状态 模块以及适当的消息交换模式,包括诸如消息的应答以及错误条件 下的适当动作之类的模式。
可以以各种方式来实现软件组件,即图8中所示的工作流定义 实体834、定位实体835、工作流分区实体836、存根配置规则构造 实体837、存根配置规则提供实体838、存根818和函数817。这些 软件组件可以作为在本机操作系统下执行的处理来实现。这些软件 实体可以作为独立的过程来实现,或者利用一个过程来实现的不同 软件实体。这些软件组件可以作为独立的计算机程序来实现,或者 作为单个计算机程序来实现。 一些软件实体可以作为连接至另一实
体的模块来实现。这些实体可以在独立的计算机单元中实行,这些 独立的计算机单元经过消息总线、局域网或者包括若干网段的网络 进行通信,所述网段可以进一步包括局域网络或者骨干网络。计算 机单元包括例如处理器、随机访问存储器、诸如磁盘或光盘或者闪 速存储卡的辅助存储器以及通信接口 。存根或者存根配置规则集可 以直接地或者以存储并转发的方式通过若千中间节点提供给主节点。
对于本领域技术人员而言显而易见的是,随着技术的进步,本 发明的基本构思可以以各种方式来实现。因此本发明及其实施方式
不能仅限于上述的实例;相反,它们可以在权利要求书的范围内进 行变化。
权利要求
1. 一种用于通信系统中的分布式工作流的构造的方法,所述通信系统包括至少一个存根配置节点和至少一个主节点,所述方法包括获取工作流说明,所述工作流说明包括对至少一个可定位函数的调用以及用于所述至少一个可定位函数的标识符;从所述工作流说明来确定所述至少一个可定位函数;为所述至少一个可定位函数确定至少一个触发条件;基于用于所述可定位函数的标识符来为所述至少一个可定位函数找到主节点;将所述工作流说明分割到至少一个分区,所述至少一个分区与所述至少一个主节点中的给定主节点关联,所述给定主节点主管在所述至少一个分区中被调用的至少一个第一可定位函数,所述至少一个第一可定位函数是所述至少一个可定位函数其中之一;在所述存根配置节点中从所述至少一个分区之中的第一分区生成至少第一存根配置规则集;以及从所述存根配置节点向所述至少一个主节点中与该第一分区关联的第一主节点提供所述第一存根配置规则集。
2. 根据权利要求1所述的方法,所述方法进一步包括 将工作流启动消息接收到进行启动的主节点;以及 在所述进行启动的主节点中的启动存根中处理所述工作流启动消息。
3. 根据权利要求1或2所述的方法,所述方法进一步包括在第三主节点内的第三存根中从第二主节点接收第二消息;基于所述第二消息和至少 一 个第二存根配置规则集中的至少一 个第 一存根配置规则,在所述第三主节点中选择将被调用的该第一可定位函lt;以及基于所述至少一个第二存根配置规则集中的至少一个第二存根配置规则,从所述第三主节点将第三消息输出到第四主节点内的第 四存根,所述至少一个第二存根配置规则包括对参数值和来自所述 第一可定位函数的响应其中至少一个的引用。
4. 根据前述权利要求1至3中任一项所述的方法,所述方法进 一步包括在第五主节点内的第五存根中检测事件,所述事件包括接收第四 消息、接收来自第二可定位函数的响应、定时器到时和参数已经获 得值其中至少之一;以及基于至少一个第三配置规则集中的至少一个第三配置规则和所 述事件,对向第六主节点输出第五消息、调用第三可定位函数、为 第二参数提供值以及对第四配置规则进行评估其中至少之一进行选 择。
5. 根据前述权利要求1至4中任一项所述的方法,所述方法进 一步包括向注册节点提供用于所述至少 一 个可定位函数中的第二可定位 函数的标识符;以及所述注册节点向主管所述第二函数的主节点提供主机名或者主 机地址。
6. 根据前述权利要求1至5中任一项所述的方法,其中所述注 册节点包括域名服务器。
7. 根据前述权利要求1至5中任一项所述的方法,其中所述注 册节点包括轻型目录访问协议目录。
8. 根据前述权利要求1至6中任一项所述的方法,所述方法进 一步包括在所述第一主节点中使第一存根与至少一个第四可定位函数关联;在所述第一主节点中接收所述第一存根配置规则集;以及 使所述第一存根配置规则集内的至少一个存根配置规则与所述至少一个第四可定位函数关联。
9. 根据前迷权利要求1至6或8中任一项所述的方法,其中所 述主节点包括互联网协议节点。
10. 根据前述权利要求1至6、 8或9中任一项所述的方法,其 中所述主节点包括移动台。
11. 根据前述权利要求1至6、 8或9中任一项所述的方法,其 中所述主节点包括无线节点。
12. 根据前述权利要求1至6中任一项所述的方法,其中所述主 节与工业机器人关联。
13. —种用于分布式工作流的构造的系统,包括 至少一个存根配置节点,被配置为获取工作流说明,所述工作流说明包括对至少一个可定位函数的调用以及用于所述至少一个可 定位函数的标识符;从所述工作流il明来确定所述至少 一 个可定位 函数;为所述至少一个可定位函数确定至少一个触发条件;基于用 于所述可定位函数的所述标识符为所述至少 一 个可定位函数找到至 少一个主节点之中的主节点;将所述工作流分割到至少一个分区, 所述至少一个分区与所述至少一个主节点中的给定主节点相关联, 所述给定主节点主管在所述分区中被调用的至少一个第一可定位函 数,所述至少一个第一可定位函数是所述至少一个可定位函数其中 之一;在所述存根配置节点中从所述至少 一个分区中的第 一分区生 成至少第一存根配置规则集;以及向所述至少一个主节点中与该第 一分区关联的第 一主节点提供所述第 一存根配置规则集;以及所述至少一个主节点中的所述第一主节点,被配置为从所述存根 配置节点获取所述第一存根配置规则集。
14. 根据权利要求13所述的系统,所述系统进一步包括所述至少 一个主节点中的启动主节点,被配置为将工作流启动消息接收到所述启动主节点以及在启动存根中处理所述工作流启动消 自、
15. 根据权利要求13或14所述的系统,所述系统进一步包括 第三主节点,被配置为在第三存根中从第二主节点接收第二消息;基于所述第二消息和至少 一 个第二存根配置规则集中的至少一个第一存根配置规则,来选择将被调用的第一可定位函数;基于所述至少一个第二存根配置规则集中的至少一个第二存根配置规则,将第三消息输出到第四主节点内的第四存根,所述第二存根配置规 则包括对于来自所述第一可定位函数的响应参数中至少一个的引用。
16. 根据前述权利要求13至15中任一项所述的系统,所述系统 进一步包括第五主节点,被配置为在第五存根中检测事件,所述事件包括 接收第四消息、接收来自第二可定位函数的响应、定时器到时和参 数已经获得值其中至少之一;以及基于至少一个第三配置规则集中 的至少一个第三配置规则和所述事件,来选择向第六主节点输出第 五消息和调用第三可定位函数其中至少之一。
17. 根据前述权利要求13至16中任一项所述的系统,所述系统 进一步包括所述存根配置节点,被配置为向注册节点提供用于所述至少一个 可定位函数中的第二可定位函数的标识符;以及所述注册节点,被配置为向主管所述第二函数的主节点提供主机 名或者主才几地址。
18. 根据前述权利要求13至17中任一项所述的系统,其中所述注册节点包括域名服务器。
19. 根据前述权利要求13至17中任一项所述的系统,其中所述 注册节点包括轻型目录访问协议目录。
20. 4艮据前述权利要求13至18中任一项所述的系统,所述系统 进一步包括所述第一主节点被配置为将第一存根与至少一个第四可定位函 数关联;接收所述第一存根配置规则集;以及使所述第一存根配置 规则集内的至少 一个存根配置规则与所述至少 一个第四可定位函数 关联。
21. 根据前述权利要求13至17或20中任一项所述的系统,其 中所述主节点包括互联网协议节点。
22. 根据前述权利要求13至17、 20或21中任一项所述的系统, 其中所述主节点包括移动台。
23. 根据前述权利要求13至17、 20或21中任一项所述的系统, 其中所述主节点包括无线节点。
24. 根据前述权利要求13至17中任一项所述的系统,其中所述 主节被配置为控制工业机器人。
25. —种用于分布式工作流的构造的网络节点,所述网络节点包括定义实体,被配置为获取工作流说明,所述工作流说明包括对 至少一个可定位函数的调用以及用于所述至少一个可定位函数的标识符;从所述工作流说明来确定所述至少一个可定位函数;以及为 所述至少 一 个可定位函数确定至少 一 个触发条件;定位实体,用以基于用于所述可定位函数的标识符,来为所述至 少一个可定位函数找到至少一个主节点中的主节点;分区实体,被配置为将所述工作流分割到至少一个分区,所述至 少一个分区与所述至少一个主节点中的给定主节点关联,所述给定 主节点主管在所述至少一个分区中被调用的至少一个第一可定位函 数,所述至少一个第一可定位函数是所述至少一个可定位函数其中之一;构造实体,被配置为在所述存根配置节点中从所述至少一个分区中的第一分区生成至少第一存根配置规则集;以及提供实体,被配置为向所述至少一个主节点中与该第一分区关联 的第一主节点提供所述第一存根配置规则集。
26. —种用于分布式工作流的构造的网络节点,所述网络节点包括用于获取工作流说明的装置,所述工作流说明包括对至少 一 个可定位函数的调用以及用于每个所述至少一个可定位函数的标识符;用于从所述工作流说明来确定所述至少一个可定位函数的装置; 用于为所述至少一个可定位函数确定至少一个触发条件的装置; 用于基于用于所述至少一个可定位函数的标识符为所述至少一个可定位函数找到至少 一 个主节点中的第 一 主节点;用于将所述工作流分割到至少一个分区的装置,所述至少一个分 区与所述至少一个主节点中的给定主节点关联,所述给定主节点主 管在所述分区中被调用的至少一个第一可定位函数,所述至少一个 第一可定位函数是所述至少一个可定位函数其中之一;用于在所述存根配置节点中从所述至少一个分区中的第一分区 生成至少第一存根配置规则集的装置;以及向所述至少一个主节点中与该第一分区关联的第一主节点提供 所述第一存根配置规则集的装置。
27. —种用于分布式工作流的处理的网络节点,所述网络节点包括安装实体,被配置为从存根配置节点获取用于工作流的分区的至少一个配置规则集;以及存根实体,;故配置为检测事件,所述事件包括接收第一消息、接收来自第 一 可定位函数的响应、定时器到时以及参数具有值其中 至少之一;以及基于所述至少 一个配置规则集中的至少 一个配置规 则和所述事件,来选择向第二主节点输出第二消息和调用第二可定 位函数其中至少之一。
28. —种用于分布式工作流的处理的网络节点,所述网络节点包括用于从存根配置节点获取用于工作流的分区的至少 一个配置规 则集的装置;用于检测事件的装置,所述事件包括接收第一消息、接收来自第 一可定位函数的响应、定时器到时以及参数具有值其中至少之一; 以及基于至少 一个配置规则集中的至少 一个配置规则和所述事件,来选择向第二主节点输出第二消息和调用第二可定位函数其中至少之 一的装置。
29. —种计算机程序,包括在数据处理系统上执行时适用于执行 下列步骤的代码获取工作流说明,所述工作流说明包括对至少一个可定位函数的 调用以及用于所述至少一个可定位函数的标识符;从所述工作流说明来确定所述至少一个可定位函数; 为所述至少一个可定位函数确定至少一个触发条件;基于用于所述可定位函数的标识符为所述至少 一 个可定位函数 找到主节点;将所述工作流分割到至少一个分区,所述至少一个分区与主节点 关联,所述主节点主管在所述分区中被调用的至少一个第一可定位 函数,所述至少一个第一可定位函数是所述至少一个可定位函数其中之一;从所述至少一个分区中的第一分区生成至少第一存根配置规则 集;以及向与第一分区关联的主节点提供所述第一存根配置规则集。
30. 根据权利要求29所述的计算机程序,其中所述计算机程序 存储在计算机可读介质上。
31. 根据权利要求30所述的计算机程序,其中所述计算机可读介 质包括可移动存储卡。
32. 根据权利要求30所述的计算机程序,其中所述计算机可读介 质包括/磁盘或光盘。
全文摘要
本发明涉及一种用于分布式工作流的构造的方法。获取包括对大量可定位函数的调用的工作流说明。基于主管可定位函数的位置处的主节点,将工作流说明划分为分区。从分区生成用于每个主节点的存根配置规则,其实现在给定主节点中的工作流执行。将该存根配置规则提供给主节点。通过沿着原始工作流的线路在主节点之间交换消息来执行该工作流。该工作流可以与服务实现关联,或者该工作流可以用于网络管理的用途。
文档编号G06FGK101305551SQ200680041653
公开日2008年11月12日 申请日期2006年11月7日 优先权日2005年11月9日
发明者V·赖萨南 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1