CN102013044A - 用于soa注册处中存储的xml对象的一致性强制系统 - Google Patents

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

Info

Publication number
CN102013044A
CN102013044A CN2010102110116A CN201010211011A CN102013044A CN 102013044 A CN102013044 A CN 102013044A CN 2010102110116 A CN2010102110116 A CN 2010102110116A CN 201010211011 A CN201010211011 A CN 201010211011A CN 102013044 A CN102013044 A CN 102013044A
Authority
CN
China
Prior art keywords
xml
processing tasks
soa
renewal
consistance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2010102110116A
Other languages
English (en)
Inventor
彼得·克里格斯曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Software AG
Original Assignee
Software AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Software AG filed Critical Software AG
Publication of CN102013044A publication Critical patent/CN102013044A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了用于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’)。

Description

用于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对象定义的处理顺序的端点,即它确定一系列中的最终处理任务。一个示例是称为“deliver manufacturedcar(交付所制造汽车)”的终止步骤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比较器的Java API;
图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和201。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的处理任务标识符与预定义处理任务标识符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)具有一个或多个特许伙伴‘A1’、‘A2’(在图26中,仅示出了组织‘A1’)。‘A’定义了核心的商业过程并且想要允许仅仅少量的修改。因此,使用本发明,‘A’向‘A1’、‘A2’提供了核心流程以及生命周期定义和附属到生命周期转变的策略。在该情况下,策略用于检查表示商业流程的注册处对象(参照XML对象20和/或所更新XML对象20’)和它们的活动(参照处理任务XML元素200、201、202)的一致性。
参考图26,用于‘A1’、‘A2’的示例生命周期看起来如下(Zn表示状态,->表示转变):
-Z1:请求模板P1
-Z2:P1.1的设计阶段(P1的扩展/修改,例如生成概念文档、Word、用例等)
-Z3:P1.1的实现阶段(即为BPM过程中的新活动建模)
-Z4:将P1.1绑定到具体服务,即服务端点(具有SOA注册处内服务对象的BPM活动)
-Z5:部署P1.1(在测试环境中)
-Z6:测试阶段
-Z7:部署P1.1(在生产环境中)
-Z8:生产中
然后,没有回环(例如校正)的生命周期可看起来像Z1->Z2->Z3->Z4->Z5->Z6->Z7->Z8,如图26中所示。使用本发明,确保了例如在Z3内,可任意修改(和存储)XML对象。然而,在Z3和Z4之间的转变期间,可应用优选地实现为策略动作的一个或多个一致性规则来匹配实体的XML对象P1(对应于原始XML对象20)和P1.1(对应于所更新的XML对象20’)。在确认为否定(即拒绝表示P1.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-1 file:test1.xml-2 file:test2.xml-xml report.xml-xmlns或者xdt2-1 file:a.xml-2 http://a.b.c/b.xml-x“//comment()”-xml report.xml。
图16示出了用于访问XML比较器的Java API(应用编程接口)。
在下面,用所附示例更详细地描述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元素打印为如下:<elementattr1=”..”attr2=”..”/>。对于XML元素的每个孩子节点,打印新行和首行缩进。如果元素仅包含一个文本节点也是这样。用颜色高亮显示差别并且从文档500的视角打印,即:所添加的节点是被加到文档500内的节点并且标记为绿色。修改的节点是在两个文档500、501中可得到并且不同的节点,并且标记为蓝色。删除的节点是从文档500移除的节点,或者新添加到文档501中的节点,并且标记为红色。排除在外的节点标记为灰色并且为斜体。排除在外的节点可使用命令行选项“-showExcluded”或相应的JAVA API方法#setShowExcluded(true)(class DOMComparator)来在HTML报告中可见。示例的普通HTML报告在图22中示出。
-简洁HTML报告:如果支持简洁的HTML报告,仅以规范样式打印文档500,并且来自文档501的差别被插入并且标记为反转:没有孩子元素的XML元素打印为如下:<element attr1=”..”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(文档类型定义)。

Claims (13)

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.一种包括用于实现根据前述权利要求所述的方法的指令的计算机程序。
CN2010102110116A 2009-06-19 2010-06-21 用于soa注册处中存储的xml对象的一致性强制系统 Pending CN102013044A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP09163301.6 2009-06-19
EP09163301A EP2264654A1 (en) 2009-06-19 2009-06-19 Consistency enforcement system for XML objects stored in an SOA-registry

Publications (1)

Publication Number Publication Date
CN102013044A true CN102013044A (zh) 2011-04-13

Family

ID=41315822

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102110116A Pending CN102013044A (zh) 2009-06-19 2010-06-21 用于soa注册处中存储的xml对象的一致性强制系统

Country Status (3)

Country Link
US (1) US8176092B2 (zh)
EP (1) EP2264654A1 (zh)
CN (1) CN102013044A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8543971B2 (en) * 2011-07-13 2013-09-24 International Business Machines Corporation Specifying on the fly sequential assembly in SOA environments
EP2819005A1 (en) * 2013-06-24 2014-12-31 Software AG Lifecycle management system with conditional approvals and corresponding method
US11467868B1 (en) * 2017-05-03 2022-10-11 Amazon Technologies, Inc. Service relationship orchestration service

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040193703A1 (en) * 2003-01-10 2004-09-30 Guy Loewy System and method for conformance and governance in a service oriented architecture
EP2270622B1 (en) * 2003-06-05 2016-08-24 Intertrust Technologies Corporation Interoperable systems and methods for peer-to-peer service orchestration
US8060553B2 (en) * 2003-08-27 2011-11-15 International Business Machines Corporation Service oriented architecture for a transformation function in a data integration platform
US7814470B2 (en) * 2003-08-27 2010-10-12 International Business Machines Corporation Multiple service bindings for a real time data integration service
WO2008018080A2 (en) * 2006-08-11 2008-02-14 Bizwheel Ltd. Smart integration engine and metadata-oriented architecture for automatic eii and business integration
US20090063522A1 (en) * 2007-08-17 2009-03-05 Oracle International Corporation System and method for managing ontologies as service metadata assets in a metadata repository
US20090326988A1 (en) * 2008-06-26 2009-12-31 Robert Barth Managing consistent interfaces for business objects across heterogeneous systems

Also Published As

Publication number Publication date
US8176092B2 (en) 2012-05-08
EP2264654A1 (en) 2010-12-22
US20100325165A1 (en) 2010-12-23

Similar Documents

Publication Publication Date Title
Thöne et al. Process-oriented, flexible composition of web services with UML
CA2681699C (en) Manufacturing collaboration hub data exchange interface
Ayora et al. VIVACE: A framework for the systematic evaluation of variability support in process-aware information systems
US11218484B2 (en) Hierarchical permissions model within a document
US7516229B2 (en) Method and system for integrating interaction protocols between two entities
Petrasch Model-based engineering for microservice architectures using Enterprise Integration Patterns for inter-service communication
US20060009960A1 (en) System and method for managing data tables
US20060036687A1 (en) Computer implemented method and system for running a plurality of business processes
Hoisl et al. Modeling and enforcing secure object flows in process-driven SOAs: an integrated model-driven approach
US7693861B2 (en) Schematization of establishing relationships between applications
US20030140058A1 (en) Method and apparatus for sharing information between applications using common objects
CN102013044A (zh) 用于soa注册处中存储的xml对象的一致性强制系统
US20050246687A1 (en) Determination of the status of an object in a source control system and a method to automatically check-in an object when its definition is provided from an external source
Adam et al. From business processes to software services and vice versa—an improved transition through service‐oriented requirements engineering
CN104217145B (zh) 限制特定用户访问制造执行系统屏幕的预定部分的方法
Hartmann et al. Using MDA for integration of heterogeneous components in software supply chains
Kulkarni et al. Towards business application product lines
Tiedeken et al. On the Integration of Electrical/Electronic Product Data in the Automotive Domain: Challenges, Requirements, Solutions
Böhmer et al. Seamless interoperability in logistics: narrowing the business-IT gap by logistics business objects
CN1316408C (zh) 工作流程管理系统及判断其中信令事件收件人的方法
Fung et al. Supply chain workflow modelling using XML-formatted modular Petri nets
CN114663177A (zh) 状态变更控制方法、装置、电子设备及存储介质
US10353381B2 (en) Method to extend MES functionalities in a message routing system
Buchmann et al. Advancing negative variability in model-driven software product line engineering
Taher et al. A model-driven approach for web service adaptation using complex event processing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110413