用于soa注册处中存储的xml对象的一致性强制系统的制作方法

文档序号:6604768阅读:329来源:国知局
专利名称:用于soa注册处中存储的xml对象的一致性强制系统的制作方法
技术领域
本发明涉及一种用于SOA注册处中存储的XML对象的一致性强制系统和相应的 方法。
背景技术
复杂的任务,例如制造复杂的技术产品,像汽车、飞机等,通常借助于分布式 计算环境,即各自处理某种功能(例如作为全部制造的一部分控制数字化编程的机器工 具)的单独计算机系统的网络的帮助来完成。这种复杂的交互工作计算环境不仅可在逻 辑上分布(即每个计算机系统处理某个子任务),而且可在物理上分布。例如,在制造汽 车期间,某些计算系统可位于汽车制造厂以控制汽车底盘和引擎的生产,而其它计算系 统可位于各个供应商的地点用于控制汽车座位或汽车娱乐部件的生产。计算系统可经由 网络(例如因特网)连接,以便协调要执行的处理任务的顺序。为了使这种复杂的分布式计算环境正确地工作,必须明确地定义必须执行的整 个处理顺序,以便最终得到期望的结果,例如完成的汽车。同时,这种处理顺序必须保 持灵活,以使得例如当为了汽车的某些部件选择新的供应商时,它可容易地适应。这在 可能包括由不同方管理的数千个单独计算系统的大型计算环境的情况下尤其重要,其中 在一方面需要由不同的各方自己来调整处理顺序,例如一个特定供应商可调整分配给他 的处理任务,以便使它们适应他的独特的装配线。然而,另一方面,绝对关键性的是, 不能以不允许的方式来调整处理顺序,即以不再提供处理顺序的总体结果这样的方式。 尤其是在制造复杂产品(例如汽车)的情况下,这可导致生产中断,或者最坏的情况,对 于各个计算系统和所连接的机器工具设备造成严重的损害。在面向服务的架构(SOA)的领域中,因此已知的是,将处理任务的定义作为 SOA注册处内的对象来维护,这对于协调和控制处理任务的所需顺序是有帮助的。然 而,已知的SOA注册处不提供确保不以未允许的方式调整处理任务的预定义顺序的方式。因此,本发明潜在的技术问题是提供这样的一种系统和方法,其确保可灵活地 调整SOA注册处中存储的信息,而同时保证调整限于允许的范围,由此至少部分地克服 了现有技术的上述缺点。

发明内容
根据本发明的一个方面,该问题通过用于SOA注册处中存储的至少一个XML对 象的一致性强制系统来解决,所述至少一个XML对象包括多个处理任务XML元素,这 多个处理任务XML元素各自定义了要由SOA的部件执行的至少一个处理任务。在权利 要求1的实施例中,一致性强制系统包括a.适于接收更新的XML对象的接口,该更新的XML对象包括未包括在SOA注 册处中存储的至少一个XML对象中的,定义了要由SOA的部件执行的至少一个另外的处理任务的至少一个另外的处理任务XML元素;b.适于查询SOA注册处以便获得一个或多个预定义处理任务标识符的确认单 元;c.其中确认单元还适于将所更新XML对象的至少一个另外的处理任务XML元 素的处理任务标识符与从SOA注册处获得的一个或多个预定义的处理任务标识符相匹 配,并且适于取决于匹配结果来认可或拒绝所更新的XML对象。因此,实施例定义了一种一致性强制系统,其便利了 SOA注册处中XML对象的 灵活适应,例如定义了一种复杂的制造过程,其中系统同时确保不能以未允许方式改变 XML对象。为此,SOA注册处存储一个或多个各自包括多个处理任务XML元素的XML 对象。处理任务元素各自定义SOA的部件(例如计算机、客户端和/或服务器)为了执 行全部处理而要执行的一个或多个处理任务。一致性强制系统的接口接收更新的XML对象,该更新的XML对象包括在一个 或多个相应的另外处理任务XML元素中定义的用于SOA部件的一个或多个另外的处理任 务(相对于SOA注册处中存储的原始XML对象)。每个处理任务XML元素优选地包括 处理任务标识符,例如唯一 ID和/或类型定义。而且,一致性强制系统的确认单元可查 询SOA注册处以便接收一个或多个处理任务标识符,优选地以预定义处理任务标识符的 列表的形式。确认单元然后可将另外处理任务XML元素的处理任务标识符与从SOA注 册处接收的列表匹配,并且可确定认可还是拒绝更新的XML对象。查询SOA注册处可 包括将XQuery提交到SOA注册处,调用SOA注册处提供的API(应用编程接口),或者 任何其它适当的查询机制,如将在下面的详细描述中进一步说明的。为此,在一个方面中,如果至少一个另外处理任务XML元素的处理任务标识符 不匹配从SOA注册处获得的至少一个预定义处理任务标识符,确认单元可适于拒绝更新 的XML对象。因此,预定义处理任务标识符的列表可视为“白列表”。换言之,如果 在预定义处理任务标识符的“白列表”中明确地提及另外的处理任务XML元素(即,如 果另外的处理任务XML元素的处理任务标识符包括在列表中),才认为它是有效的。这 方面是尤其有利的,因为例如允许想要更新XML对象的制造供应商以灵活方式实现此, 同时可维护“白列表”的汽车制造商保持对供应商可执行的调整的范围的控制。而且,XML对象和/或更新的XML对象以及它们的处理任务XML元素,可分 别包括对另外对象的引用,例如配置文件。如果是这种情况,优选地,例如通过解析引 用并且还确认所引用对象的内容,确认至少一个另外的处理任务XML元素和从SOA注册 处获得的预定义处理任务标识符之间的匹配也考虑被进一步引用的对象。这方面的示例 在下面的详细描述中提供。另外,或作为候选,如果至少一个另外的处理任务XML元素的处理任务标识符 匹配从SOA注册处获得的至少一个预定义处理任务标识符,确认单元可适于拒绝所更新 对象。因此,在该情况下,预定义处理任务标识符的列表可视为“黑列表”,即默认允 许任何另外的处理任务XML元素,除非它在“黑列表”中明确地被提及。应当理解, 该方面以稍微更少的控制成本获得了更大的灵活性。不管上面给出的候选方式,确认单元还可适于只有当认可所更新的XML对象 时,在SOA注册处中存储所更新的XML对象和/或替换SOA注册处中存储的至少一个XML对象。因此,有效地防止被拒绝的所更新XML对象存储在SOA注册处中,以 便确保该无效的所更新XML对象不能妨碍SOA注册处控制的处理任务。优选地,所更 新XML对象在由一致性强制系统的确认单元认可之后,直接覆盖SOA注册处内的原始 XML对象。这方面确保所更新的XML对象是立即“起作用的”,即,立即根据所更新 XML对象来执行相应的处理任务。另外,或作为候选,被拒绝的所更新XML对象也可存储在SOA注册处中,艮口, 即使它包括无效的扩展,如将在下面的详细描述中进一步说明的。在该情况下,可通知 负责更新的部件或用户,以便能够校正被拒绝的所更新XML对象,如将在下面的详细描 述中进一步说明的。在本发明的另一个方面中,如果所更新的XML对象包括未包括在SOA注册处 中存储的至少一个XML对象中的至少一个终止步骤XML元素,所述至少一个终止步骤 XML元素定义了要由SOA的部件执行的处理任务的顺序的端点,确认单元适于拒绝所更 新的XML对象。终止步骤XML元素定义了 SOA注册处中的XML对象定义的处理顺序的 端点,即它确定一系列中的最终处理任务。一个示例是称为“delivermanufacturedcar(交 付所制造汽车)”的终止步骤XML元素作为用于制造汽车的处理顺序的端点。因此,不 允许并且因此由确认单元拒绝包括新的终止步骤XML元素(即,未包括在SOA注册处中 的相应原始XML对象中的终止步骤XML元素)的所更新XML对象。否则,处理顺序 (即相应的XML对象)可以它在获得原本期望的结果之前结束这样的方式来调整,这将 导致整个处理的故障。另外,或作为候选,如果所更新的XML对象包括除了处理任务XML元素之外 的至少一个XML元素,确认单元还可适于拒绝所更新的XML对象。这方面对于XML 对象的适应性施加了甚至更严格的限制,因为允许添加唯一和专门的新处理任务XML元 素,并且拒绝任何其它调整。在本发明的又另一方面中,如果SOA注册处中存储的XML对象包括未包括在至 少一个更新的XML对象中的至少一个处理任务XML元素,确认单元适于拒绝所更新的 XML对象。换言之,不允许从更新的XML对象中删除在原始XML对象中定义的处理 任务XML元素。这方面确保了没有关键任务的处理任务从整个处理顺序删除,以使得在 任何时候保证,如原本期望地从开始到结束执行处理顺序。而且,SOA注册处中存储的至少一个XML对象可包括至少一个转变XML元 素,该至少一个转变XML元素引用至少一个源处理任务XML元素和至少一个目标处理 任务XML元素,以便定义相应处理任务XML元素之间的顺序。因此,在SOA注册处 中的XML对象中明确地定义各个处理任务之间的期望顺序。为此,至少一个转变XML 元素引用两个处理任务XML元素,即源和目标元素。优选地,处理任务XML元素各自 包括定义唯一 ID的XML属性,并且转变XML元素包括值设置为各个处理任务XML元 素的相应唯一 ID的XML属性“source”和XML属性“target”。在另一方面中,如果至少一个更新XML对象的至少一个另外的处理任务XML 元素不在至少一个转变XML元素定义的顺序内,确认单元可适于拒绝所更新的XML对 象。因此,XML对象的调整限于在两个特定处理任务XML元素(即转变XML元素定 义的源和目标处理任务XML元素)之间添加另外的处理任务XML元素。应当理解,也可能限制对XML对象的更新,以使得另外的处理任务XML元素仅可插入在可能由一系 列转变XML元素和中间处理任务XML元素连接的位于处理顺序内任何地方的两个特定 处理任务XML元素之间。为此,确认单元可参数化为将两个特定处理任务XML元素定 义为“边界”,即确认单元可适于确保所更新的XML对象仅包括在这两个参数化的、预 定义“边界”处理任务XML元素之间的另外处理任务XML元素。而且,如果所更新的XML对象包括至少一个另外的转变XML元素,该至少一 个另外的转变XML元素定义了不通向SOA注册处中存储的XML对象中定义的终止步骤 XML元素的处理任务的顺序,确认单元可适于拒绝所更新的XML对象。因此,在这方 面中,确认单元能够避免“死胡同”的引入,即以下面这样的方式对所更新XML对象的 调整,存在到达没有定义后续处理步骤的处理步骤的处理步骤顺序。仅仅对于终止步骤 允许这种场景。相应无效的所更新XML对象可导致这样的情况,整个处理不能完成, 和/或顺序中的最后处理任务不能完成它的处理,因为没有定义随后的处理步骤id。在 该情况下,最后的处理步骤将运行直到底层计算环境崩溃,或甚至更糟,直到所连接的 另外的计算系统、机器工具等被严重损害。在又另一个方面中,如果所更新的XML对象包括至少一个另外的转变XML元 素,该至少一个另外的转变XML元素定义了未通向至少一个另外的处理任务XML元素 的处理任务顺序,确认单元可适于拒绝所更新的XML对象。因此,如果没有定义“回 环”,即循环运行的处理任务的顺序,确认单元才认可所更新的XML对象。代替地,仅 仅允许连接到另外的处理任务XML元素的这些另外的转变XML元素。换言之,另外的 转变XML元素可不指向(经由它的“target” XML属性)原本在XML对象中定义的处 理任务XML元素之一。本发明还针对于一种使用上面给出的任何一种一致性强制系统来强制SOA注册 处中存储的至少一个XML对象的一致性的方法。最后,本发明提供了包括用于实现上面 方法的指令的计算机程序。


在随后的详细描述中,参考下面的附图进一步描述本发明的当前优选实施例图1 根据本发明的一致性强制系统的实施例的示意图;图2 根据本发明实施例的XML对象和所更新的XML对象的示意图;图3 根据本发明实施例的示例过程;图4 根据本发明实施例的包括未允许处理任务的示例所更新过程;图5a 根据本发明实施例的预定义处理任务标识符的示例定义;图5b 根据本发明实施例的定义对SOA注册处的查询的示例搜索模板;图5c 根据本发明实施例的由SOA注册处接收的示例结果列表;图6 根据本发明实施例的包括图4的示例过程的所允许扩展的示例所更新过 程;图7 根据本发明实施例的包括未允许的另外终止步骤的示例所更新过程;图8 根据本发明实施例的包括未允许回环的示例所更新过程;图9 根据本发明实施例的包括未允许死胡同处理任务的示例所更新过程;
图10 本发明实施例的示例实施方式的示意图;图11 根据本发明实施例的一致性强制系统的一部分的示例实施方式;图12 根据本发明实施例的一致性强制系统的一部分的示例实施方式;图13 根据本发明实施例的一致性强制系统的示例输出;图14 根据本发明实施例的一致性强制系统的示例输出;图15 根据本发明实施例的可配置XML比较器的示例实现方式的示意图;图16 用于访问可配置XML比较器的JavaAPI ;图17a、b 与命名空间知晓性比较的两个示例XML文档;图18 与前缀知晓性比较的两个示例XML文档;图19 与白空间知晓性比较的两个示例XML文档;图20:与比较策略“ordered”比较的两个示例XML文档;图21:与比较策略“unordered”比较的两个示例XML文档;图22 可配置XML比较器的示例HTML报告;图23 可配置XML比较器的示例简洁HTML报告;图24 可配置XML比较器的差别报告的概观;图25 用于可配置XML比较器的数据类型定义;和图26 在商业过程的环境中本发明的示例使用的示意图。
具体实施例方式在下面,针对如图1示意性示出的一致性强制系统1描述了本发明的当前优选实 施例。如可见到的,一致性强制系统1包括接口 10和确认单元11。一致性强制系统1 与包括XML对象20的SOA注册处2通信。XML对象20包括两个处理任务XML元素 200、201。应当理解,图1仅示出了简单的示例,并且SOA注册处2可包括多个,可能 数千个可由本发明的一致性强制系统1处理的任意复杂的XML对象20。一致性强制系统1能够经由接口 10接收XML对象20以及所更新的XML对象 20’。在图1的示例中,所更新的XML对象20’包括未包括在SOA注册处2内存储的 XML对象20中的另外的处理任务XML元素202。更具体地,图2示出了示例XML对象20,其包括两个XML元素 ‘processingTask,200 和 2Ol。XML 元素 ‘processingTask,200、201 中的每一个包括
表示相应的处理任务XML元素200、201的处理任务标识符的XML属性‘uid’(在图2 的示例中分别具有值‘S200’和‘S201’)。应当理解,作为候选,处理任务XML元 素可包括人可读的形式的标签(例如,以XML属性‘label’),其也可用作为处理任务 标识符。图2中还示出的所更新XML对象‘20’包括与XML对象20相同的处理任务 XML元素,并且还包括另外的处理任务XML元素202。应当理解,为了例示,图2仅 示出了简单的示例,并且本发明支持包括更复杂结构的元素的更复杂的XML对象20。返回图1,一致性强制系统1还包括确认单元11。优选地经由XQuery,确认单 元11能够查询SOA注册处2,以便检索预定义处理任务标识符25的列表(参照图1,其 中确认单元11对SOA注册处2的查询通过底部的双头虚线箭头来表示)。确认单元11 能够将所更新XML对象20’的另外处理任务XML元素202的处理任务标识符与预定义
8处理任务标识符25的列表匹配,以便确定考虑到XML对象20,所更新的XML对象20’ 是否为可允许的,即图1和2中示出的另外的处理任务XML元素202是否为XML对象 20的有效扩展。为此,确认单元11确定另外的处理任务XML元素202的处理任务标识 符是否包括在预定义处理任务标识符的列表中。确认单元11可以两种方式评估匹配结果。一种方式是将处理任务标识符25的 列表视为“白列表”,即如果处理任务标识符包括在处理任务标识符25的列表中,确认 单元11才认可所更新的XML对象20’,否则拒绝所更新的XML对象20’。另外,或 者作为候选,处理任务标识符25的列表可视为“黑列表”,即如果处理任务标识符未包 括在处理任务标识符25的列表中,确认单元11才认可所更新的XML对象20’,否则拒 绝所更新的XML对象20’。通常,SOA注册处2的XML对象中包括的处理任务XML元素可定义要由SOA 的部件执行的若干处理任务,例如要由SOA的各种计算系统执行的各个计算。为此, XML对象,例如图2中示出的XML对象20,可包括对处理任务XML元素定义顺序的一 个或多个转变XML元素300。如在图2中可见到的,示例XML对象20包括XML元素
‘transition (转变),300,该 XML 元素 ‘transition,300 包括 XML 属性 ‘source(源), 和XML属性‘target(目标),。XML属性‘source’的值为‘S200’,并且因此引 用处理任务XML元素200 (具有uid S200)。类似地,转变XML元素300的XML属性
‘target’的值为‘S201’,因此在该示例中引用处理任务XML元素201。应当理解, 图2中示出的XML结构仅仅是广泛种类的可能性之一,并且本发明还支持具有不同标记 的XML元素、XML属性等的不同结构的XML内容,例如不是将‘source’和‘target, 引用作为XML属性来定义,而是作为XML元素本身来定义,或者以任何其它适当的方 式。总的来说,XML对象定义了要由SOA的部件执行的处理任务(在下面也称为 ‘服务’)的顺序,优选地为有向图,在下面广泛地称作为过程。图3示意性地示出了
示例过程‘订单到现金’。过程‘订单到现金’定义了客户如何订购物品(即例如汽车 这样的产品)(参照图3中的处理任务‘订购物品’)。在接收并且接受订单之后(参照 图3中的处理任务‘接收订单’、‘识别客户’和‘接受订单’,其中‘识别客户’定 义了本身包括另外的处理任务‘客户识别开始’、‘创建客户’、‘读取客户信息’和 ‘客户识别结束’的组合处理任务),由处理任务‘制造物品’产生相应的订购物品。随 后,运送所生产的物品(参照处理任务‘运送物品’),并且物流部分接收订购确认(参 照图3中的处理任务‘接收订单确认’)。最后,客户接收订购的物品(参照处理任务 ‘接收物品’),使用物品,并且过程结束。在技术层面上,每个上述的处理任务(即服 务)由SOA注册处2中存储的XML对象20内的相应处理任务XML元素定义。处理任 务XML元素还可包括用于执行计算机程序的定义,例如实现必要的处理逻辑的本地和/ 或远程服务或web服务。在图3的示例过程的环境下,公司‘A’可指示它们的IT部门创建过程‘订单 到现金’作为用作为过程模板的基础过程。该模板遵循于公司规则(策略)并且可被提 供给参与过程执行的伙伴,例如公司‘A’的供应商。伙伴可照现在的样子使用过程模 板和/或以“兼容”方式扩展它,即以不执行未允许的扩展(相对于公司‘A’的规则)这样的方式。因此,必须安装管理过程,从而确保所有的扩展过程定义有效。如上面进一步提及的,难题是提供灵活性(修改基础过程的能力)和控制(确保 修改后的过程仍然兼容)之间的平衡。本发明对该难题提供了有利的方案。为此,在 SOA术语中,SOA注册处2中存储的XML对象20理解为XML工件所描述的资产,并 且本发明便于维护这些资产的生命周期状态转变(即随着时间的改变)。本发明的一致性 强制系统1接收两个XML工件作为输入,工件1表示生命周期状态转变之前(即在扩展 之前)的XML对象20,并且工件2表示包括(一个或多个)扩展的XML对象20 (即所 更新的XML对象20’)的当前状态。本发明的一致性强制系统1然后根据变化的位置 (“哪里”)和/或变化的类型(“什么”)分析对象版本20和20’之间的所识别变化 是否有效。取决于结果,接受(认可)或拒绝变化。在下面,更详细地给出可由本发明 的一致性强制系统1执行的各种分析和确认。应当认识到,如果需要,这些方面可相互 独立地实现,并且可在本发明内实现另外的分析和确认。第一步骤可以为分析过程的XML格式(即XML对象20)并且获得对一致性强制 系统1的约束。一个约束可以是允许伙伴的过程设计者添加新的服务(即处理任务XML 元素表示的处理任务)。而且,可允许伙伴仅添加服务而不添加终止步骤。而且,可不 允许伙伴从XML对象20中定义的过程中删除任何现有的服务。图11示出了一致性强制系统1的示例Java实现的一部分。在XML层面,在图 11中由XML元素‘invokeStep,表示服务(即处理任务XML元素)。图11中的Java
代码示出了确认单元11(在代码中称为‘bpmdc’)可如何确认上面给出的约束。在一 个可能的实现方式中,一致性强制系统1可包括XML比较器单元,并且可由来自XML 比较器的事件供给验证器。另外的约束可以为仅允许服务(即,处理任务XML元素表示的处理任务)插入 在两个不同服务(例如图3中示出的服务‘制造物品’ 200和‘运送物品’ 201)之间。 图12中的示例Java代码示出了确认单元11 (在代码中称为‘bpmdc’ )可如何确认该约 束,可能由来自XML比较器的事件提供。对XML对象20的有效改变(在所更新XML对象20’内)的示例包括-插入新服务,即添加新的处理任务XML元素(图11和12中的 ‘invokeStep,)。-恰好一个转变已被修改为指向新服务,即所更新的XML对象20’包括具有改 变的XML属性‘source’和/或‘target,的经修改的转变XML元素。-插入新的转变,即所更新的XML对象20’包括新的转变XML元素(图12中 的 ‘transition,)。-从修改的转变开始的每个路径(即处理步骤的顺序)通向特定的预定义服务, 例如服务‘运送物品’。图6示出了过程模板(由XML对象20定义)的有效扩展,即图6示出了所更新 XML对象20,的显现(visualization)。如可见到的,所更新的XML对象20,包括两个 另外的处理任务XML元素202 (由另外的服务‘添加季节礼物’和‘为客户竞赛添加登 记表格’表示),其插入在预定义“边界”服务‘制造物品’ 200和‘运送物品’ 201 之间。图13示出了一致性强制系统1产生的示例输出日志。
对XML对象20的无效改变(在所更新的XML对象20’内)的示例包括-添加除了服务和/或转变之外的元素。-已修改多于一个的转变。这意味着伙伴正试图修改除了‘制造物品’和‘运 送物品’之间的过程的其它范围。_从所修改转变开始的任何路径不通向服务‘运送物品’,这意味着所更新的 XML对象20’定义了无效端点。-从所修改转变开始的任何路径通向除了新插入服务或‘运送物品’中任何一个 之外的服务,这意味着所更新的XML对象20’包括到先前过程步骤的无效循环。图7示出了由于另外的终止步骤400造成的过程的无效扩展的示例。如可见到 的,所更新的过程(如在所更新XML对象20’中定义)包括相对于模板过程(如在XML 对象20中定义)的另外的终止步骤(由终止步骤XML元素400定义)。图8示出了由于无效循环造成的过程的无效扩展的示例。如可见到的,所更新 的过程(如在所更新的XML对象20’中定义)包括相对于模板过程(如在XML对象 20中定义)从服务‘修改订单’ 202发起回到服务‘制造物品’ 200的转变301 (由转变 XML元素301定义)。图14示出了一致性强制系统1所产生的示例输出日志。图9示出了由于死胡同造成的过程的无效扩展的示例。如可见到的,所更新的 过程(如在所更新的XML对象20’中定义)包括另外的服务203 ‘死胡同停止’以及 具有源服务‘修改订单’和目标服务203 ‘死胡同停止’的转变302。然而,没有定 义相对于模板过程(如在XML对象20中定义)将通向过程的端点‘使用物品’的路径 (即处理任务/服务的顺序)的另外转变。上面的示例示出了本发明可如何确认规则,怎样找出对XML对象20的改变(如 在所更新的XML对象20’中所定义)和/或所找到的改变针对它们的出现位置来说是否 有效。在下面,描述了本发明可如何根据新服务(即所更新XML对象20’中的处理任 务XML元素所定义的处理任务)的类型确认它们是否有效。通常,服务可借助分类法在注册处(例如SOA注册处2)内分类。图5a示出了 包括预定义处理任务标识符25的示例分类法。针对此的示例分类法包括服务名称/标签 的层次列表。如已经在上面进一步提及的,作为候选,列表可按独特标识符的形式,例 如关联于处理任务XML元素的XML属性‘uid’,来包括预定义处理任务标识符25。依据白列表的概念,本发明的确认单元11可检查所更新XML对象20’中定义 的(一个或多个)新服务是否在SOA注册处2中作为有效扩展服务列出。确认单元11因 此可执行对SOA注册处2的XQuery,并且检查新服务是否包括在查询响应列表中。如 果是,那么它匹配扩展标准并且所更新的XML对象20’得到认可,否则它不匹配并且所 更新的XML对象20’被拒绝。图5b示出了为列出具有范围直到每订单5欧元的值的季节性礼物服务定义查询 的示例搜索模板。该查询的结果是允许被插入的服务的列表。如图5c中所示,结果列 表仅包括称为‘AddFlowerToOrderService’的单个服务(即处理任务标识符25)。在图 5b的示例中,使用保存的查询,其触发对SOA注册处2提供的API(应用编程接口)的 调用,例如 ‘List<Service>getWhiteList (String savedQueryName),。图4在该环境下示出了对过程(如在XML对象20中定义)的无效改变的示例。如可见到的,所更新的过程(如在所更新XML对象20’中定义)包括另外的服务 ‘格式化硬盘’(由所更新XML对象20’中的相应处理任务XML元素202定义)。然 而,不允许该另外的服务,因为它的处理任务标识符未包括在预定义处理任务25的列表 中。代替地,根据图5c中示出的预定义处理任务标识符25的示例列表,过程可仅用服 务 ‘ AddFlowerToOrderService,来扩展。总的来说,本发明对以下方面尤其有利可非常快速地调整规则,例如但不限 于XML比较器和/或来自注册处的信息的帮助。本发明可按模板形式已提供80%的方 案,并且仅需要定义用于模板演变的规则(即对模板的改变)。最后,本发明便于尤其可 靠地控制对过程的改变,因为默认每件事都在控制之下,并且除非明确地忽略,否则不 忽略改变。因此,本发明提供了用于在生命周期状态转变期间(即随着时间过去)约束资产 (即XML对象)的演变(即改变)的方案,并且因此可容易地嵌入在SOA管理过程内。 通过分析资产的演变,本发明允许策略设计者定义在生命周期转变期间当改变时被触发 的一组规则。资产,即XML对象,可描述具有与服务的直接或间接关系的注册处中的所 有种类的对象。根据OASIS,结合面向服务的架构(SOA)的服务是“对软件功能的约 定接口”。在该环境下,服务通常是可远程访问的,并且可由过程使用。本发明解决的 典型问题是在该生命周期阶段允许修改资产吗?哪部分资产受到修改影响?变更(元) 数据显著改变了该资产的表现?本发明通过定义允许改变的地方,通过定义允许哪些类 型的改变和通过结合生命周期状态转变强制兼容性,来解决这些问题。有利地,本发明可用于但不限于,SOA注册处中存储的表示商业过程或工作流 的至少一个XML对象的一致性的强制。表示商业过程或工作流的XML对象可包括一组 由XML对象的XML元素和/或XML属性(例如上面进一步描述的处理任务XML元素) 表示的相关的、结构化的活动。通常,商业过程的活动表示服务调用(在该环境下,商 业过程也可理解为服务安排)和/或人员执行的一个或多个任务(为了做出某些判定或异 常处理)的混合。以下是在如图26中所示的示例商业过程的环境下使用本发明的示例。在示例 中,组织‘A,(参照图26)具有一个或多个特许伙伴‘Al’、 ‘A2’ (在图26中, 仅示出了组织‘Al’)。 ‘A’定义了核心的商业过程并且想要允许仅仅少量的修改。 因此,使用本发明,‘A’向‘Al’、 ‘A2’提供了核心流程以及生命周期定义和附 属到生命周期转变的策略。在该情况下,策略用于检查表示商业流程的注册处对象(参 照XML对象20和/或所更新XML对象20’ )和它们的活动(参照处理任务XML元素 200、201、202)的一致性。参考图26,用于‘Al,、 ‘A2,的示例生命周期看起来如下(Zn表示状态,_> 表示转变)-Zl-72-Z3-Z4 BPM活动)
12请求模板PiPl.1的设计阶段(Pl的扩展/修改,例如生成概念文档、Word、用例等) Pl.1的实现阶段(即为BPM过程中的新活动建模) 将Pl.1绑定到具体服务,即服务端点(具有SOA注册处内服务对象的
-Z5 部署P1.1 (在测试环境中)-Z6 测试阶段-Z7 部署P1.1 (在生产环境中)-Z8 生产中然后,没有回环(例如校正)的生命周期可看起来像 Z1->Z2->Z3->Z4->Z5->Z6->Z7->Z8,如图26中所示。使用本发明,确保了例如在Z3 内,可任意修改(和存储)XML对象。然而,在Z3和Z4之间的转变期间,可应用优选 地实现为策略动作的一个或多个一致性规则来匹配实体的XML对象Pl (对应于原始XML 对象20)和Pl.1 (对应于所更新的XML对象20’)。在确认为否定(即拒绝表示Pl.1的 所更新XML对象)的情况下,阻止到Z4的转变(并且因此也不到Z5和后续的状态)。 应当认识到,如上已经提及的,所更新的XML对象可仍然存储在SOA注册处中,即使 它包括无效扩展。然而,当试图移动到生命周期模型的下一状态(图26的示例中的Z4) 时,可触发确认所选择对象的目标状态兼容的策略,并且在策略违反的情况下,禁止从 当前状态到目标状态的转变。在肯定确认的情况下,执行到状态Z4的转变。在Z4(P1.1与服务的连接;参照 图26)中,创建服务绑定。在Z4和Z5之间的转变期间,可执行黑列表/白列表确认。 在确认期间遇到违法服务的情况下,不执行部署(即,不转变到Z5)。如上面已经进一步 给出的,黑列表/白列表确认可包括不仅执行针对所更新XML对象的匹配,而且另外执 行针对所更新XML对象中进一步的配置文件引用的匹配,因为不是所有的信息可存储在 所更新XML对象本身内。例如,XML对象可包括关于各个服务的接口的信息(例如, 它的输入/输出接口定义),但是可不包括关于哪些具体服务实现了接口定义的信息,即 服务位于哪里(服务器URL、端口等)。代替地,该信息例如可包括在绑定和/或部署 配置文件(其可位于SOA注册处中)中。图10更详细地示出了本发明的示例和非限制性实现方式。如可见到的,一致性 强制系统1可包括可配置XML比较器来标识XML工件的两个版本之间(即XML对象20 和所更新XML对象20’之间)的差别。专门的策略动作调用该比较器并且传递XML对 象20和所更新XML对象20’。附接于该比较器的事件处理器根据本发明的上述方面来 分析所标识改变是否有效。为此,存储资产20的SOA注册处2可维护资产20的生命周 期状态转变。绑定到状态转变的生命周期事件可触发策略。每个策略可包括一组动作, 以便确认和要求与公司标准的兼容性。改变的位置的正确性可立即从XML比较器的配置 得到,而确认改变的类型需要查询SOA注册处2,如上已经描述的。图15中示出的XML比较器允许比较包括高级命名空间处理、命名空间知晓性 (即驻留在相同命名空间的元素和/或属性)、前缀知晓性(即具有相同命名空间和前缀 的元素和/或属性)和/或白空间知晓性的XML文档和树。而且,可使用XPATH语句 选择或丢弃XML文档内的子树。XML比较器还支持针对节点类型的不同或定制的比较 器的集成。XML比较器可支持三种报告模式高亮并且使用定制模板的HTML输出,其 中差别作为XPATH语句报告的XML输出和/或确定XML文档相同(真)或不同(假) 的布尔输出。XML文档可以URL、文件和/或流的形式得到。XML比较器的一个示 例实现需要JRE1.4.X和Xalan2.4+,并且可经由命令行访问,例如如下xdt2_l file:testl.
13xml-2 file:test2.xml-xml report.xml-xmlns 或者 xdt2_l file:a.xml-2 http://a.b.c/b.xml-x “// comment () ” -xml report.xmL图16示出了用于访问XML比较器的JavaAPI (应用编程接口)。在下面,用所附示例更详细地描述XML比较器的各种能力-命名空间知晓性图17a示出了被认为相同的两个示例XML文档500、501, 尽管它们具有不同的前缀(分别为‘a’和‘b’)。图17b示出了被认为相同的两个 示例XML文档500、501,尽管使用了不同的前缀和命名空间(分别为‘http://A’和
‘http://B,)。-前缀知晓性图18示出了被认为不同的两个示例XML文档500、501,因为
启动了前缀知晓性。-白空间知晓性图19示出了被认为不同的两个示例XML文档500、501,因 为文档500具有在双亲和孩子元素之间的白空间文本节点,并且文档501没有。-比较策略“排序”图20示出了被认为不同的两个示例XML文档500、501, 因为如果按原始顺序逐节点地比较,修改了文本节点。-比较测量“非排序”图21示出了被认为相同的两个示例XML文档500、 501,因为忽略了节点的顺序。-普通的HTML报告如果支持普通的HTML报告,两个文档500、501以 规范样式打印没有孩子元素的XML元素打印为如下<elementattr 1 =,,.. ” attr2 =” ..,,/>。对于XML元素的每个孩子节点,打印新行和首行缩进。如果元素仅包 含一个文本节点也是这样。用颜色高亮显示差别并且从文档500的视角打印,即所添 加的节点是被加到文档500内的节点并且标记为绿色。修改的节点是在两个文档500、 501中可得到并且不同的节点,并且标记为蓝色。删除的节点是从文档500移除的节点, 或者新添加到文档501中的节点,并且标记为红色。排除在外的节点标记为灰色并且为 斜体。排除在外的节点可使用命令行选项“-showExcluded”或相应的JAVA API方法 #setShowExcluded (true) (class DOMComparator)来在 HTML 报告中可见。示例的普通 HTML报告在图22中示出。-简洁HTML报告如果支持简洁的HTML报告,仅以规范样式打印文档500, 并且来自文档501的差别被插入并且标记为反转没有孩子元素的XML元素打印为如 下〈element attrl = ” ..” attr2=” ..” />。对于XML元素的每个孩子节点,打印新 行和首行缩进。如果元素仅包含一个文本节点也是这样。用颜色高亮显示差别并且从 文档500的视角打印,即所添加的节点是被加到文档500内的节点并且标记为绿色。 修改的节点是在两个文档500、501中可得到并且不同的节点,并且标记为蓝色。来自 文档501的经修改节点标记为反转蓝色并且添加到文档500的被修改节点的后面或者下 方。删除的节点是从文档500中移除的节点,或者新添加到文档501中的节点,并且 标记为反转红色。排除在外的节点标记为灰色并且为斜体。注意所有反转标记的节 点和属性不是文档500的一部分,它们是文档501的一部分。排除在外的节点可使用 命令行选项 “ -showExcluded,,或相应的 JAVA API 方法 #setShowExcluded (true) (class DOMComparator)来在简洁HTML报告中可见。示例的简洁HTML报告在图23中示出。-定制HTML报告另外,或者作为候选,可通过编写定制的XSL样式表来影响比较操作的输出的显现。 图24示出了如何使用XPATH以XML实现差异报告的概观。图25示出了用于 差别报告的DTD (文档类型定义)0
权利要求
1.一种用于SOA注册处(2)中存储的至少一个XML对象(20)的一致性强制系统(1),所述至少一个XML对象(20)包括多个处理任务XML元素(200、201),所述多个 处理任务XML元素各自定义要由所述SOA的部件执行的至少一个处理任务,所述一致性 强制系统(1)包括a.适于接收更新的XML对象(20’)的接口,该更新的XML对象包括未包括在所述 SOA注册处(2)中存储的所述至少一个XML对象(20)中的、定义了要由所述SOA的部 件执行的至少一个另外的处理任务的至少一个另外的处理任务XML元素(202);b.适于查询所述SOA注册处(2)以便获得一个或多个预定义处理任务标识符(25)的 确认单元(11);C.其中所述确认单元(11)还适于将所述更新的XML对象(20’ )的至少一个另外的 处理任务XML元素(202)的处理任务标识符与从所述SOA注册处(2)获得的所述一个或 多个预定义的处理任务标识符(25)相匹配,并且适于取决于所述匹配结果来认可或拒绝 所述更新的XML对象(20’)。
2.根据权利要求1所述的一致性强制系统(1),其中,所述确认单元(11)适于在所 述至少一个另外处理任务XML元素(202)的处理任务标识符不匹配从所述SOA注册处(2)获得的至少一个所述预定义处理任务标识符(25)的情况下拒绝所述更新的XML对象 (20,)。
3.根据权利要求1或2所述的一致性强制系统(1),其中,所述确认单元(11)适于 在所述至少一个另外的处理任务XML元素(202)的处理任务标识符匹配从所述SOA注 册处(2)获得的至少一个所述预定义处理任务标识符(25)的情况下拒绝所述更新的对象 (20,)。
4.根据前述任一权利要求所述的一致性强制系统(1),其中所述确认单元(11)适于 只有当认可所述更新的XML对象(20’)时,在所述SOA注册处(2)中存储所述更新 的XML对象(20’ )和/或替换所述SOA注册处(2)中存储的所述至少一个XML对象 (20)。
5.根据前述任一权利要求所述的一致性强制系统(1),其中,所述确认单元(11)适 于在所述更新的XML对象(20’ )包括未包括在所述SOA注册处(2)中存储的所述至 少一个XML对象(20)中的至少一个终止步骤XML元素(400)的情况下拒绝所述更新的 XML对象(20’),其中所述至少一个终止步骤XML元素(400)定义要由所述SOA的部 件执行的处理任务的顺序的端点。
6.根据前述任一权利要求所述的一致性强制系统(1),其中,所述确认单元(11)适 于在所述更新的XML对象(20’ )包括除了处理任务XML元素之外的至少一个XML元 素的情况下拒绝所述更新的XML对象(20’)。
7.根据前述任一权利要求所述的一致性强制系统(1),其中,所述确认单元(11)适 于在所述SOA注册处(2)中存储的XML对象(20)包括未包括在所述至少一个所更新的 XML对象(20’ )中的至少一个处理任务XML元素(200、201)的情况下拒绝所述更新 的XML对象(20’)。
8.根据前述任一权利要求所述的一致性强制系统(1),其中所述SOA注册处(2)中存 储的所述至少一个XML对象(20)包括至少一个转变XML元素(300),所述至少一个转变XML元素(300)引用至少一个源处理任务XML元素(200)和至少一个目标处理任务 XML元素(201),以便定义所述相应处理任务XML元素(200、201)之间的顺序。
9.根据前一权利要求所述的一致性强制系统(1),其中如果至少一个更新的XML对 象(20’ )的至少一个另外的处理任务XML元素(202)不在所述至少一个转变XML元素(300)定义的所述顺序内,所述确认单元(11)适于拒绝所述更新的XML对象(20’)。
10.根据前述权利要求8或9中任何一个所述的一致性强制系统(1),其中所述确认单 元(11)适于在所述更新的XML对象(20’ )包括至少一个另外的转变XML元素(302) 的情况下拒绝所述更新的XML对象(20’),其中所述至少一个另外的转变XML元素定 义不通向所述SOA注册处(2)中存储的所述XML对象(20)中定义的终止步骤XML元 素的处理任务的顺序。
11.根据前述权利要求8到10中任何一个所述的一致性强制系统(1),其中,所述 确认单元(11)适于在所述更新的XML对象(20’ )包括至少一个另外的转变XML元素(301)的情况下拒绝所述更新的XML对象(20’),该至少一个另外的转变XML元素定 义未通向所述至少一个另外的处理任务XML元素(202)的处理任务的顺序。
12.—种强制SOA注册处(2)中存储的至少一个XML对象(20)的一致性的方法,所 述方法使用根据前述任一权利要求所述的一致性强制系统(1)。
13.—种包括用于实现根据前述权利要求所述的方法的指令的计算机程序。
全文摘要
本发明公开了用于SOA注册处中存储的XML对象的一致性强制系统。本发明涉及一种用于SOA注册处(2)中存储的至少一个XML对象(20)的一致性强制系统(1),所述至少一个XML对象(20)包括多个处理任务XML元素(200、201),所述多个处理任务XML元素各自定义要由所述SOA的部件执行的至少一个处理任务,所述一致性强制系统(1)包括a.适于接收更新的XML对象(20’)的接口,该更新的XML对象包括未包括在所述SOA注册处(2)中存储的所述至少一个XML对象(20)中的、定义要由所述SOA的部件执行的至少一个另外的处理任务的至少一个另外的处理任务XML元素(202);b.适于查询所述SOA注册处(2)以便获得一个或多个预定义处理任务标识符(25)的确认单元(11);c.其中所述确认单元(11)还适于将所述更新的XML对象(20’)的至少一个另外的处理任务XML元素(202)的处理任务标识符与从所述SOA注册处(2)获得的所述一个或多个预定义的处理任务标识符(25)相匹配,并且适于取决于所述匹配结果来认可或拒绝所述更新的XML对象(20’)。
文档编号G06Q10/00GK102013044SQ20101021101
公开日2011年4月13日 申请日期2010年6月21日 优先权日2009年6月19日
发明者彼得·克里格斯曼 申请人:软件股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1