CN1955956A - 基于bpel的图形与xml文档相互转换的方法 - Google Patents
基于bpel的图形与xml文档相互转换的方法 Download PDFInfo
- Publication number
- CN1955956A CN1955956A CNA2005101146891A CN200510114689A CN1955956A CN 1955956 A CN1955956 A CN 1955956A CN A2005101146891 A CNA2005101146891 A CN A2005101146891A CN 200510114689 A CN200510114689 A CN 200510114689A CN 1955956 A CN1955956 A CN 1955956A
- Authority
- CN
- China
- Prior art keywords
- metaset
- create
- button
- sub
- xml document
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种基于BPEL的图形到XML文档的转换方法,它包括以下步骤:1.创建基于BPEL的图形;2.创建与基本图形相对应的元集;3.将创建好的元集序列化,生成与基于BPEL的基本图形相对应的XML文档。另外,本发明还公开了一种实现XML文档到基于BPEL的图形转换的方法,它包括以下步骤:1.通过反序列化操作,将XML文档转换成元集;2.使用递归的方法,将元集转换成基于BPEL的图形。
Description
技术领域
本发明涉及一种实现基于BPEL的图形与XML文档之间相互转换的方法。
背景技术
随着计算机网络技术的发展和Internet应用的不断普及,Web服务因其完好的封装性、松耦合性及与平台的无关性,在其出现之后就得了迅速发展。然而,由于单个的Web服务所提供的功能单一,无法构成完整的业务应用,不能满足企业级应用的流程层集成需求,因此,需要把已有的分散的单个的Web服务组合起来,创建新的功能,形成具有增值价值的Web服务。基于Web服务的工作流技术可以实现Web服务的组合。
基于Web服务的工作流技术是指:把已经存在的多个单一的Web服务按正确的顺序组合起来,即通过使用Web服务工作流语言定义使用这些Web服务的业务流程。
业务流程是指通过组合实现一个特定业务目标的各项活动的一个集合。活动指业务流程中实现特定业务目标的步骤。在Web服务工作流中,活动可以暴露为一个Web服务的操作,从而可以被请求者调用。伙伴指这个业务流程的参与者。因此,我们根据Web服务工作流语言可以定义出Web服务工作流模型,该工作流模型可以被工作流管理***所执行。
使用Web服务工作流语言描述业务流程的方式如下:指定一组Web服务操作可能的执行顺序、这些Web服务间共享的数据、业务流程涉及哪些伙伴以及这些伙伴在业务流程中扮演什么角色、以及关于多个服务和组织是怎样参与等问题。
目前,存在着不同版本的Web服务工作流语言如Microsoft的XLANG,IBM的WSFL,IBM、Microsoft和Bea共同开发的BPEL(业务流程执行语言)规范等。其中,BPEL规范正显示出逐渐成为Web服务工作流描述语言标准的趋势,它为描述基于Web服务的业务流程的XML文档,提供了XML文档大纲。
在BPEL规范中定义了两种类型的Web服务活动:基本活动和结构化活动。基本活动又包括九种活动:invoke活动、receive活动、reply活动、assign活动、throw活动、terminate活动、wait活动、empty活动和compensate活动。结构化活动包括六种活动:sequence活动、switch活动、while活动、scope活动、pick活动和flow活动。
为了高效简便地按照BPEL规范定义Web服务工作流模型,一般需要提供一个可视化的工作流建模***。工作流建模***在可视化界面中提供了的表示Web服务活动的图形和表示流程逻辑的图形(两类图形统称基于BPEL的图形),通过组合这些图形来完成Web服务工作流模型的定义。由于工作流模型可能需要多次完成或者需要修改,并且建模的结果是为工作流管理***中的工作流引擎提供一个可以被其解析执行的部署单元(包括一个工作流模型的描述文档),这样工作流模型必须能够持久化,一般就是以XML文档的形式保存下来。对于基于BPEL的Web服务工作流建模***来说,工作流模型是用基于BPEL的图形来构造的,所以就是要实现基于BPEL的图形到XML文档的转换。当把工作流模型以文档的形式保存后,用户又要继续完成或修改工作流模型的时候,工作流建模***就应该能够将这个文档还原成图形化的工作流模型。对于基于BPEL的Web服务工作流建模***来说,也就是实现XML文档到基于BPEL图形的转换。除了这个原因以外,因为流程可重用性这个原因,也要实现XML文档到基于BPEL图形的转换。具体来说就是,因为BPEL规范是确定的,遵守BPEL规范的XML文档的格式是确定的,如果实现了上述功能,可以把任何一个遵循BPEL规范的XML文档转换为一个图形化的工作流模型,这样就可以通过修改或直接使用已有的流程来完成需要的流程,而不需要从开始开发,提高了效率。
因此,从上面可以看出如何实现基于BPEL的图形与XML文档之间的相互转换是工作流建模***需要解决的一个重要问题。
发明内容
鉴于上述原因,本发明的目的是提供一种应用于可视化工作流建模***中的、实现基于BPEL的图形与XML文档相互转换的方法。该方法规定了工作流建模***如何处理基于BPEL的图形与XML文档之间的相互转换。
为实现上述目的,本发明采用以下技术方案:一种基于BPEL的基本图形到XML文档的转换方法,它包括以下步骤:
第一步:创建基于BPEL的图形;
第二步:创建与图形相对应的元集;
第三步:将创建好的元集序列化,生成与基于BPEL的图形相对应的XML文档。
一种实现XML文档到基于BPEL的图形转换的方法,它包括以下步骤:
第一步:通过反序列化操作,将XML文档转换成元集;
第二步:使用递归的方法,将元集转换成基于BPEL的图形。
附图说明
图1为本发明实现基于BPEL的基本图形转换成XML文档的方法
图2为本发明实现基于BPEL的结构图形转换成XML文档的方法
图3为本发明将添加有子图形的结构图形转换成XML文档的方法
图4为本发明将删除了子图形的结构图形转换成XML文档的方法
图5为本发明将XML文档转换成基于BPEL的图形的方法
图6为本发明基于BPEL的基本图形描述和与其对应的XML文档片段示意图
图7为本发明基于BPEL的结构图形描述和与其对应的XML文档片段示意图
具体实施方式
为了便于实现基于BPEL的图形与XML文档之间的相互转换,本发明引入了元集这个概念。元集是一种对于XML的形式化描述及其处理方法。所述形式化描述是对XML的基于文档的集合的表示。所述处理方法即是对元集的处理,元集的处理包括创建、添加、删除、查找(过滤)、序列化、反序列化、设置父亲等方法。
一个元集中可以包含其他元集。如果一个元集中包含有其他元集,那么这个元集称为其他元集的父元集,其他元集称为这个元集的子元集。
一个元集中可以包含多个属性。属性就对应着XML文档中元素的属性。
本发明中,元集和属性都用Java类实现。
创建元集的方法:即java类的构造函数,它的输入是一个字符串,该字符串作为元集的名字。下文提到的创建特定名字的元集,就是使用该方法,方法的参数是一个字符串,该字符串就是元集的特定名字。
添加属性的方法:往元集中添加一个属性。元集中维护一个列表来存储它的属性,添加属性就是往列表中添加一个属性。
添加子元集的方法:往父元集中添加一个子元集。元集中维护一个列表来存储它的子元集,添加子元集就是往列表中添加一个元集。
删除子元集的方法:从父元集中删除一个子元集。就是从父元集中存储子元集的列表中把相应子元集删去。
查找子元集的方法:从一个元集中查找某个子元集。就是从父元集存储子元集的列表中查找相应的子元集。
序列化方法:将一个元集对象转换为一个XML文档。就是将一个元集对象以字节流的形式存储成一个XML文档。
反序列化方法:将一个XML文档转换为一个元集对象。输入为XML文档的路径,可以利用SAX解析器解析XML文档还原成一个元集对象。
设置父亲方法:设置一个元集的父元集。这个方法可以保证元集间的关系与XML文档中元素间的关系相一致。
获取父亲方法:如果该元集有父元集,返回父元集;否则,返回空。
创建属性的方法:即java类的构造函数,它的输入是一个字符串,该字符串作为属性的名字。下文提到的创建元集的属性,就是使用该方法,方法的参数是一个字符串,该字符串就是属性的名字。
基于上面的描述可知,元集和XML文档之间的转换是非常容易的,就是一个序列化和反序列化的过程,那么从基于BPEL的图形和XML文档的转换问题的重点就变为如何实现基于BPEL的图形和元集转换的问题。
在BPEL规范中,定义了两种Web服务活动类型:基本活动和结构化活动。本发明为了表示Web服务的这两种活动类型,规定了两类基于BPEL的图形:基本图形和结构图形来实现它们的图形化表示。具体如下:
这些图形的结构是根据BPEL中的活动的属性和结构确定的。基本图形包括(如图6左栏所示):receive图形、reply图形、invoke图形、empty图形、assign图形、throw图形、wait图形、terminate图形和compensate图形。结构图形包括(如图7左栏所示):sequence图形、switch图形、while图形、pick图形、flow图形和scope图形。除了这些结构活动对应的结构图形之外,从结构化角度来看,switch活动中的case、otherwise分支尽管不是活动,但都是结构化的,因此也将它们分别对应为结构图形:case图形和otherwise图形,且它们只能作为switch图形的一个分支,同理pick活动中的onMessage和onAlarm分支也分别对应为结构图形:onMessage图形和onAlarm图形,且它们都只能作为pick图形的一个分支。一个结构图形可以包括其他结构图形或者基本图形,它们之间是一种父子关系。
本方法以元集作为中介来实现基于BPEL的图形与XML文档之间的相互转换,又由于基于BPEL的图形分为基于BPEL的基本图形和基于BPEL的结构图形,故,本发明实现基于BPEL的图形到XML文档转换的方法包括两种情况:基于BPEL的基本图形到XML文档的转换方法和基于BPEL的结构图形到XML文档的转换方法。下面分别介绍:
一、基于BPEL的图形到XML文档的转换方法
(一)、基于BPEL的基本图形到XML文档的转换方法,如图1所示:
第一步:创建基于BPEL的基本图形;
创建一个按钮,其上显示的图片根据所要表示的基本图形的类型来确定,如图6左栏所示。
第二步:创建与基本图形相对应的元集;
调用创建元集的方法创建一个名与基本图形名相同的元集,创建元集的属性,添加到元集中,属性包括这种基本图形在BPEL中对应的基本活动所具有的属性。
第三步:将创建好的元集序列化,生成与基于BPEL的基本图形相对应的XML文档;
创建好的元集调用序列化方法,序列化为XML文档,如图6右栏所示。
(二)、基于BPEL的结构图形到XML文档的转换方法,如图2所示:
第一步:创建基于BPEL的结构图形;
创建一个按钮,其上显示的图片根据所要表示的结构图形的类型确定,我们将这个按钮称为主按钮;除了主按钮外,还需要创建一些表示分支(包括case分支、otherwise分支、onMessage分支和onAlarm分支)的按钮、表示提示的按钮和表示结构结束的按钮;再创建一些表示结构的线,将已创建的按钮连接起来形成一个结构图形,如图7左栏所示。
第二步:创建与结构图形相对应的元集
调用创建元集的方法创建与图形同名的元集,将该元集设为父元集,创建该元集的属性,添加到该元集中,属性包括这种图形在BPEL中对应的活动所具有的属性;如果结构图形中包含分支按钮,也要创建分支按钮相应的元集,称该元集为子元集,创建该元集的属性,添加到该元集中,属性包括该分支所具有的属性;将子元集加到父元集中;其他按钮和线只用来加强视觉的作用,不对应元集;子元集要调用设置父亲方法,设置其与父元集的父子关系。
第三步:将创建好的元集序列化,生成与基于BPEL的结构图形相对应的XML文档;
创建好的元集调用序列化方法,序列化为XML文档,如图7右栏所示。
结构图形建立好后,可以根据需要在结构图形中添加或删除子图形。如果往结构图形中添加子图形,具体方法如图3所示:
第一步:创建结构图形中的子图形,并将其添加到结构图形中相应的位置;
创建子图形,创建线,用线将子图形与合适的按钮相连;添加子图形到结构图形的过程是一个将已有图形与子图形用线相连的过程。
第二步:创建与子图形对应的子元集,并将子元集添加到结构图形所对应的元集中,并设置父子关系;
调用创建元集的方法,创建子图形对应的子元集;结构图形对应的元集调用添加子元集方法,将子元集加到结构图形对应的元集中;子元集调用设置父亲方法,设置两元集间的父子关系。
第三步:将变化后的结构图形所对应的元集序列化,生成与变化后的结构图形相对应的XML文档;
结构图形所对应的元集调用序列化方法,序列化为XML文档。
如果想从结构图形中删除子图形,具体方法如图4所示:
第一步:从结构图形对应的元集中删除将要被删除子图形所对应的子元集;
结构图形对应的元集调用删除子元集方法,将子元集删除。
第二步:从结构图形中删除子图形;
从结构图形中删除子图形就是将连接结构图形和子图形的线删除,然后将子图形删除。
第三步:将变化后的结构图形对应的元集序列化,生成与变化后的结构图形相对应的XML文档;
结构图形对应的元集调用序列化方法,序列化为一个XML文档。
下面举例说明如何将基于BPEL的图形转换成XML文档。
实施例1:将基于BPEL的invoke基本图形转换成XML文档
具体方法是:
A、创建invoke图形;
创建一个按钮,按钮上显示invoke图形所对应的图片;
B、创建invoke元集;
调用创建元集的方法,创建名为“invoke”的元集,创建invoke元集的属性,添加到invoke元集中,属性包括invoke活动所具有的属性;
C、将invoke元集序列化生成与invoke图形相对应的XML文档;
invoke元集调用序列化方法,序列化为XML文档。
由于基本图形不包含其他图形,图形结构简单,所以,依此类推,按照上述方法可以创建其它基本图形,并将基本图形转换成XML文档。
实施例2、将基于BPEL的sequence图形转换成XML文档
具体方法是:
A、创建sequence图形;
具体步骤:创建sequence按钮、标识结构结束的按钮和线,把按钮用线组合起来,见图7;
B、创建sequence元集
具体步骤:调用创建元集的方法,创建名为“sequence”的元集,创建sequence元集的属性,添加到sequence元集中,属性包括sequence活动所具有的属性;
C、将“sequence”元集序列化为XML文档
具体步骤:sequence元集调用序列化方法,序列化为XML文档。
这就完成了“sequence”元集到XML文档的转换。从而,完成了sequence图形到XML文档的转换。
创建完成“sequence”图形后,如果想往“sequence”图形中添加子图形,其方法是:
A、根据子图形类型创建子图形,并添加在sequence图形中相应的位置;
具体步骤:创建子图形,创建线,用线将子图形与合适的按钮相连;
B、创建子图形所对应的元集;并将该元集添加到sequence元集中,并设置父子关系;
具体步骤:1、创建子图形所对应的元集,称为子元集;
2、创建子元集的属性,添加到子元集中,属性包括子图形对应的BPEL活动所具有的属性;
3、调用sequence元集的添加子元集方法,将子元集添加到sequence元集中;
4、子元集调用设置父亲方法,设置sequence元集和子元集的父子关系;
C、将变化后的sequence元集序列化,生成与变化后的结构图形相对应的XML文档;
具体步骤:sequence元集调用序列化方法,序列化为XML文档,见图7。
至此完成了变化了的sequence元集到XML文档的转换,从而,完成了变化了的sequence图形到XML文档的转换。
创建完成“sequence”图形后,如果想从“sequence”图形中删除子图形,其方法是:
A、从sequence元集中删除将要被删除子图形所对应的子元集;
具体步骤:sequence元集调用删除子元集操作,删除子元集;
B、删除sequence图形中的子图形;
具体步骤:删除连接sequence图形和子图形的线,删除子图形;
C、将变化后的“sequence”元集序列化为XML文档;
具体步骤:sequence元集调用序列化方法,序列化为XML文档
这就完成了变化了的“sequence”元集到XML文档的转换,从而,完成了变化了的sequence图形到XML文档的转换。
实施3:将基于BPEL的while图形转换成XML文档
具体方法是:
A、创建while图形
具体步骤:创建while按钮、标识结构结束的按钮、一个表提示的按钮(根据BPEL规范,while图形中只能添加一个子图形,所以用一个提示按钮将这个语义表达出来)和线,把按钮用线组合起来(见图7);
B、创建while元集
具体步骤:调用创建元集的方法,创建名为“while”的元集,创建while元集的属性,添加到while元集中,属性包括while活动所具有的属性;
C、将while元集序列化为XML文档
具体步骤:while元集调用序列化方法,序列化为XML文档。
这就完成了while元集到XML文档的转换。从而,完成了while图形到XML文档的转换。
创建完成while图形后,如果想往while图形中添加子图形,其方法是:
A、根据子图形类型创建子图形,并添加在while图形中相应的位置;
具体步骤:创建子图形,删去表提示的按钮,用子图形替换;
B、创建子图形所对应的元集;并将该元集添加到while元集中,并设置父子关系;
具体步骤:1、创建子图形所对应的元集,称为子元集;
2、创建子元集的属性,添加到子元集中,属性包括子图形对应的BPEL活动所具有的属性;
3、调用while元集的添加子元集方法,将子元集添加到while元集中;
4、子元集调用设置父亲方法,设置while元集和子元集的父子关系;
C、将变化后的while元集序列化,生成与变化后的结构图形相对应的XML文档;
具体步骤:while元集调用序列化方法,序列化为XML文档。
至此完成了变化了的while元集到XML文档的转换,从而,完成了变化了的while图形到XML文档的转换。
创建完成while图形后,如果想从while图形中删除子图形,其方法是:
A、从while元集中删除将要被删除子图形所对应的子元集;
具体步骤:while元集调用删除子元集操作,删除子元集;
B、删除while图形中的子图形;
具体步骤:删去子图形,用表提示的按钮替换;
C、将变化后的while元集序列化为XML文档;
具体步骤:while元集调用序列化方法,序列化为XML文档。
这就完成了变化了的while元集到XML文档的转换,从而,完成了变化了的while图形到XML文档的转换。
scope图形的创建、增加、删除子图形与while图形相应的操作方法一样,其图形到XML文档转换的方法也一样。
在创建case图形时,不需要创建表结构结束的按钮。case图形对应名为“case”的元集,且该元集具有BPEL中switch活动的case分支的属性。此外,case图形的创建、增加、删除子图形到XML文档的转换过程与while图形相应的操作到XML文档转换的方法一样。
在创建otherwise图形时,不需要创建表结构结束的按钮。otherwise图形对应名为“otherwise”的元集,且该元集具有BPEL中switch活动的otherwise分支的属性。此外,otherwise图形的创建、增加、删除子图形到XML文档的转换过程与while图形相应的操作到XML文档转换的方法一样。
在创建onMessage图形时,不需要创建表结构结束的按钮。onMessage图形对应名为“onMessage”的元集,且该元集具有BPEL中pick活动的onMessage分支的属性。此外,onMessage图形的创建、增加、删除子图形到XML文档的转换过程与while图形相应的操作到XML文档转换的方法一样。
在创建onAlarm图形时,不需要创建表结构结束的按钮。onAlarm图形对应名为“onAlarm”的元集,且该元集具有BPEL中pick活动的onAlarm分支的属性。此外,onAlarm图形的创建、增加、删除子图形到XML文档的转换过程与while图形相应的操作到XML文档转换的方法一样。
实施例4:将基于BPEL的switch图形转换成XML文档
具体方法是:
A、创建switch图形
具体步骤:创建switch按钮、标识结构结束的按钮、一个case图形、一个otherwise图形(根据BPEL规范,switch图形中只能添加case图形和otherwise图形,其中case图形可以有一到多个,otherwise图形至多一个)和线,把按钮用线连接组合起来(见图7);
B、创建switch图形对应的元集
具体步骤:1、调用元集构造函数,创建名为“switch”、“case”、“otherwise”的元集;
2、创建switch元集的属性,添加到switch元集中,属性包括switch活动所具有的属性;
3、创建case元集的属性,添加到case元集中,属性包括case分支所具有的属性;
4、otherwise分支没有属性,所以不需要为otherwise元集创建属性;
5、switch元集调用添加子元集方法,添加case元集和otherwise元集;
6、case元集和otherwise元集分别调用设置父亲方法,设置与switch元集的父子关系;
C、将switch元集序列化为XML文档;
具体步骤:switch元集调用序列化方法,序列化为XML文档。
这就完成了switch元集到XML文档的转换。从而,完成了switch图形到XML文档的转换。
创建完成switch图形后,如果想往switch图形中添加子图形(只能是case图形和otherwise图形),其方法是:
A、如增加的是otherwise图形,且switch图形中是否已存在otherwise图形就结束。否则,根据子图形类型创建子图形,并添加在switch图形中相应的位置;
具体步骤:创建子图形,创建线,用线将子图形与switch按钮相连;
B、创建子图形所对应的元集;并将该元集添加到switch元集中,并设置父子关系;
具体步骤:1、创建子图形所对应的元集,称为子元集;
2、创建子元集的属性,添加到子元集中,属性包括子图形对应的BPEL活动所具有的属性;
3、调用switch元集的添加子元集方法,将子元集添加到switch元集中;
4、子元集调用设置父亲方法,设置switch元集和子元集的父子关系;
C、将变化后的switch元集序列化,生成与变化后的结构图形相对应的XML文档;
具体步骤:switch元集调用序列化方法,序列化为XML文档。
至此完成了变化了的switch元集到XML文档的转换,从而,完成了变化了的switch图形到XML文档的转换。
创建完成switch图形后,如果想从switch图形中删除子图形,其方法是:
A、从switch元集中删除将要被删除子图形所对应的子元集;
具体步骤:switch元集调用删除子元集操作,删除子元集;
B、删除switch图形中的子图形;
具体步骤:删除连接switch图形和子图形的线,删除子图形;
C、将变化后的switch元集序列化为XML文档;
具体步骤:switch元集调用序列化方法,序列化为XML文档。
这就完成了变化了的switch元集到XML文档的转换,从而,完成了变化了的switch图形到XML文档的转换。
实施例5:将基于BPEL的pick图形转换成XML文档
具体方法是:
A、创建pick图形;
具体步骤:创建pick按钮、标识结构结束的按钮、一个onAlarm图形、一个onMessage图形(根据BPEL规范,pick图形中只能添加onAlarm图形和onMessage图形,其中onMessage图形至少有一个)和线,把按钮用线组合起来(见图7);
B、创建pick图形对应的元集;
具体步骤:1、调用元集构造函数,创建名为“pick”、“onAlarm”、“onMessage”的元集;
2、创建pick元集的属性,添加到pick元集中,属性包括pick活动所具有的属性;
3、创建onAlarm元集的属性,添加到onAlarm元集中,属性包括onAlarm分支所具有的属性;
4、创建onMessage元集的属性,添加到onMessage元集中,属性包括onMessage分支所具有的属性;
5、pick元集调用添加子元集方法,添加onAlarm元集和onMessage元集;
6、onAlarm元集和onMessage元集分别调用设置父亲方法,设置与pick元集的父子关系;
C、将pick元集序列化为XML文档;
具体步骤:pick元集调用序列化方法,序列化为XML文档。
这就完成了pick元集到XML文档的转换。从而,完成了pick图形到XML文档的转换。
创建完成pick图形后,如果想往pick图形中添加子图形(必须为onAlarm图形或onMessge图形),其方法是:
A、根据子图形类型创建子图形,并添加在pick图形中相应的位置;
具体步骤:创建子图形,创建线,用线将子图形与pick按钮相连;
B、创建子图形所对应的元集;并将该元集添加到pick元集中,并设置父子关系;
具体步骤:1、创建子图形所对应的元集,称为子元集;
2、创建子元集的属性,添加到子元集中,属性包括子图形对应的BPEL活动所具有的属性;
3、调用pick元集的添加子元集方法,将子元集添加到pick元集中;
4、子元集调用设置父亲方法,设置pick元集和子元集的父子关系;
C、将变化后的pick元集序列化,生成与变化后的结构图形相对应的XML文档;
具体步骤:pick元集调用序列化方法,序列化为XML文档。
至此完成了变化了的pick元集到XML文档的转换,从而,完成了变化了的pick图形到XML文档的转换。
创建完成pick图形后,如果想从pick图形中删除子图形,其方法是:
A、如删除的是onMessage图形且pick图形中只剩下将要删除的onMessage图形,结束;否则从pick元集中删除将要被删除子图形所对应的子元集;
具体步骤:pick元集调用删除子元集操作,删除子元集;
B、删除pick图形中的子图形;
具体步骤:删除连接pick图形和子图形的线,删除子图形;
C、将变化后的pick元集序列化为XML文档;
具体步骤:pick元集调用序列化方法,序列化为XML文档。
这就完成了变化了的pick元集到XML文档的转换,从而,完成了变化了的pick图形到XML文档的转换。
实施例6:将基于BPEL的flow图形转换成XML文档
具体方法是:
A、创建flow图形;
具体步骤:创建flow按钮、标识结构结束的按钮、两个并行的表提示的按钮(称为空分支按钮,根据BPEL规范,flow图形中只能添加一个或多个并行的子图形,所以用两个并行空分支将这个语义表达出来)和线,把按钮用线组合起来(见图7);
B、创建flow图形对应的元集;
具体步骤:1、调用元集构造函数,创建名为“flow”的元集;
2、创建flow元集的属性,添加到flow元集中,属性包括flow活动所具有的属性;
3、两个并行的空分支不对应元集,只是起视觉作用;
C、将flow元集序列化为XML文档;
具体步骤:flow元集调用序列化方法,序列化为XML文档。
这就完成了flow元集到XML文档的转换。从而,完成了flow图形到XML文档的转换。
创建完成flow图形后,如果想往flow图形中添加子图形(必须为onAlarm图形或onMessge图形),其方法是:
A、根据子图形类型创建子图形,并添加在flow图形中相应的位置;
具体步骤:创建子图形,用子图形代替空分支按钮;
B、创建子图形所对应的元集;并将该元集添加到flow元集中,并设置父子关系;
具体步骤:1、创建子图形所对应的元集,称为子元集;
2、创建子元集的属性,添加到子元集中,属性包括子图形对应的BPEL活动所具有的属性;
3、调用flow元集的添加子元集方法,将子元集添加到floW元集中;
4、子元集调用设置父亲方法,设置floW元集和子元集的父子关系;
C、将变化后的flow元集序列化,生成与变化后的结构图形相对应的XML文档;
具体步骤:flow元集调用序列化方法,序列化为XML文档。
至此完成了变化了的flow元集到XML文档的转换,从而,完成了变化了的flow图形到XML文档的转换。
创建完成flow图形后,如果想从flow图形中删除子图形,其方法是:
A、从flow元集中删除将要被删除子图形所对应的子元集;
具体步骤:flow元集调用删除子元集操作,删除子元集;
B、删除flow图形中的子图形;
具体步骤:删去子图形,用空分支按钮代替;
C、将变化后的flow元集序列化为XML文档;
具体步骤:flow元集调用序列化方法,序列化为XML文档。
这就完成了变化了的flow元集到XML文档的转换,从而,完成了变化了的flow图形到XML文档的转换。
从上面可以看出,往flow图形中添加或删除子图形,是通过子图形代替空分支按钮和空分支按钮代替子图形来实现的,所以下面介绍如何往flow图形里添加或删除空分支的方法。
向flow图形中添加空分支的方法:即添加空分支;
具体步骤:创建一个表提示的按钮(空分支按钮)和线,用线将空分支按钮和flow按钮连接起来。
由于空分支按钮只是视觉上的提示,不对应到元集。所以此时flow图形的变化不会引起flow元集的变化。
删除flow图形中空分支的方法:即删除空分支;
具体步骤:删除连接空分支按钮和flow图形的线,删除空分支按钮。
由于空分支按钮只是视觉上的提示,不对应到元集,所以图形的变化不会引起其所对应的元集的变化。
二、XML文档到基于BPEL的图形的转换方法
本发明实现XML文档到基于BPEL的图形转换的方法,如图5所示:
第一步:通过反序列化操作,将XML文档转换成元集
具体步骤:1、调用元集的反序列化方法,将XML文档反序列化为一个元集;
2、同时根据XML文档的元素之间的父子关系,设置元集之间的父子关系;
第二步:使用递归的方法,将元集转换成基于BPEL的图形;
具体步骤:
A、判断元集所对应图形的类型,如果是基本图形,转至B;如果是结构图形,转至C;
B、创建相应的基本图形:
1、创建一个按钮,按钮上显示可以标识该图形的图片;
C、创建相应的结构图形:
具体步骤:1、创建相应的图形:创建一个按钮,其上显示的图片根据图形类型确定,我们将这个按钮成为主按钮;除了主按钮外,可能还需要创建表示结构结束的按钮;再创建一些表示结构的线;
2、将已创建的按钮连接起来形成一个结构图形框架(见图7);
3、判断该元集中是否包含子元集,如果包含,查找该元集中所有子元集,依次创建子元集对应的图形,就是依次将各子元集转至A进行递归处理;
4.依次将得到子图形添加到本结构图形中。
实施例7:下面详细描述如何将XML文档转换成基于BPEL的图形。
具体方法如下:
第一步:通过使用输入为XML文档的路径的元集的反序列化方法,XML文档反序列化为一个元集;根据XML文档中元素的父子关系设置元集间的父子关系;
第二步:根据元集的名字判断生成图形的类型:
1.如果元集名字为“invoke”或“receive”或“reply”或“assign”或“throw”或“terminate”或“empty”或“wait”或“compensate”:
A)创建相应的基本图形:创建一个按钮,按钮上显示的可以标识该图形的图片。
2.如果元集名字为“sequence”:
A)创建sequence图形:创建一个sequence按钮、一个标识结构结束的按钮和线,用线将这些按钮连接组合起来;
B)判断该元集中是否包含子元集,如果包含,查找该元集中的所有子元集,依次创建子元集对应的图形,就是依次将子元集转至第二步进行递归处理
C)将子图形依次顺序添加到sequence图形中。
3.如果元集名字为“while”:
A)创建while图形:创建一个while按钮、一个表提示的按钮和线,用线将这些按钮连接组合起来;
B)判断该元集中是否包含子元集,如果包含,查找该元集中的子元集,创建子元集对应的图形,就是将子元集转至第二步进行递归处理
C)将子图形添加到while图形中;
D)如果该元集没有父元集,结束;否则,将该图形返回给其父图形。
4.如果元集名字为“switch”:
A)创建switch图形:创建一个switch按钮、一个标识结构结束的按钮和和线,用线将这些按钮连接组合起来;
B)判断该元集中是否包含子元集,如果包含,查找该元集中的所有子元集,依次创建子元集对应的图形,就是依次将子元集转至第二步进行递归处理
C)将子图形依次并行添加到switch图形中;
5.如果元集名字为“flow”:
A)创建一个flow按钮、一个标识结构结束的按钮和线,用线将这些按钮连接组合起来。
B)判断该元集中是否包含子元集,如果包含,查找该元集中的所有子元集,依次创建子元集对应的图形,就是依次将子元集转至第二步进行递归处理
C)将子图形依次并行添加到switch图形中。
6.如果元集名字为“pick”:
A)创建pick图形:创建一个pick按钮、一个标识结构结束的按钮和线,用线将这些按钮连接组合起来。
B)判断该元集中是否包含子元集,如果包含,查找该元集中的所有子元集,创建子元集对应的图形,就是将子元集转至第二步进行递归处理
C)将生成的子图形依次并行添加到pick图形中。
7.如果元集名字为“scope”:
A)创建scope图形:创建一个scope按钮、一个表提示的按钮和线,用线将这些按钮连接组合起来。
B)判断该元集中是否包含子元集,如果包含,查找该元集中的子元集,创建子元集对应的图形,就是将子元集转至第二步进行递归处理
C)将子图形添加到scope图形中。
8.如果元集名字为“case”:
A)创建case图形:创建一个case按钮、一个提示的按钮和线,用线将这些按钮连接组合起来。
B)判断该元集中是否包含子元集,如果包含,查找该元集中的子元集,创建子元集对应的图形,就是将子元集转至第二步进行递归处理
C)将子图形添加到case图形中,即替换提示按钮。
9.如果元集名字为“otherwise”:
A)创建otherwise图形:创建一个otherwise按钮、一个表提示的按钮和线,用线将这些按钮连接组合起来。
B)判断该元集中是否包含子元集,如果包含,查找该元集中的子元集,创建子元集对应的图形,就是将子元集转至第二步进行递归处理
C)将子图形添加到otherwise图形中,即替换提示按钮。
10.如果元集名字为“onAlarm”:
A)创建onAlarm图形:创建一个onAlarm按钮、一个表提示的按钮和线,用线将这些按钮连接组合起来。
B)判断该元集中是否包含子元集,如果包含,查找该元集中的子元集,创建子元集对应的图形,就是将子元集转至第二步进行递归处理
C)将子图形添加到onAlarm图形中,即替换提示按钮。
11.如果元集名字为“onMessage”:
A)创建onMessage图形:创建一个onMessage按钮、一个表提示的按钮和线,用线将这些按钮连接组合起来。
B)判断该元集中是否包含子元集,如果包含,查找该元集中的子元集,创建子元集对应的图形,就是将子元集转至第二步进行递归处理
C)将子图形添加到onMessage图形中,即替换提示按钮。
至此,实现了从XML文档到基于BPEL的图形的转换。
本发明提供的实现基于BPEL的图形与XML文档之间相互转换的方法主要应用于工作流建模工具,该方法使工作流建模工具可以实现通过基于BPEL的图形完成Web服务工作流模型的定义,同时有一个描述工作流模型的XML文档也能还原成模型的图形显示。本发明的优点是:
1、建模友好度高:本发明描述图形的方法保证了图形的显示结果直观明了,还配以了一些提示,使得建模过程相对简单。
2、建模效率高:本发明描述图形的方法保证了结构化图形的结构化,建模过程简化为往结构中添加删除图形的过程。
3、可见即可得:采用本发明,在建模过程中,会将视图的变化实时准确地记录在XML文档中。
4、图形和XML文档的转换:本发明保证了有一个符合BPEL规范的可视化模型就有一个符合BPEL规范的XML文档;同时保证了有一个符合BPEL规范的XML文档就有一个符合BPEL规范的模型可以展示。
Claims (5)
1、一种基于BPEL的基本图形到XML文档的转换方法,它包括以下步骤:
第一步:创建基于BPEL的基本图形;
创建一个按钮,其上显示的图片根据所要表示的基本图形的类型来确定;
第二步:创建与基本图形相对应的元集;
调用创建元集的方法创建一个名与基本图形名相同的元集,创建元集的属性,添加到元集中,属性包括这种基本图形在BPEL中对应的基本活动所具有的属性;
第三步:将创建好的元集序列化,生成与基于BPEL的基本图形相对应的XML文档;
创建好的元集调用序列化方法,序列化为XML文档,如图6右栏所示。
2、一种基于BPEL的结构图形到XML文档的转换方法,它包括以下步骤:
第一步:创建基于BPEL的结构图形;
创建一个按钮,其上显示的图片根据所要表示的结构图形的类型确定,我们将这个按钮称为主按钮;除了主按钮外,还需要创建一些表示分支的按钮、表示提示的按钮和表示结构结束的按钮;再创建一些表示结构的线,将已创建的按钮连接起来形成一个结构图形;
第二步:创建与结构图形相对应的元集
调用创建元集的方法创建与图形同名的元集,将该元集设为父元集,创建该元集的属性,添加到该元集中,属性包括这种图形在BPEL中对应的活动所具有的属性;如果结构图形中包含分支按钮,也要创建分支按钮相应的元集,称该元集为子元集,创建该元集的属性,添加到该元集中,属性包括该分支所具有的属性;将子元集加到父元集中;其他按钮和线只用来加强视觉的作用,不对应元集;子元集要调用设置父亲方法,设置其与父元集的父子关系;
第三步:将创建好的元集序列化,生成与基于BPEL的结构图形相对应的XML文档。
3、根据权利要求2所述的一种基于BPEL的结构图形到XML文档的转换方法,其特征在于:结构图形建立好后,可以根据需要在结构图形中添加子图形,具体方法如下:
第一步:创建结构图形中的子图形,并将其添加到结构图形中相应的位置;
创建子图形,创建线,用线将子图形与合适的按钮相连;添加子图形到结构图形的过程是一个将已有图形与子图形用线相连的过程;
第二步:创建与子图形对应的子元集,并将子元集添加到结构图形所对应的元集中,并设置父子关系;
调用创建元集的方法,创建子图形对应的子元集;结构图形对应的元集调用添加子元集方法,将子元集加到结构图形对应的元集中;子元集调用设置父亲方法,设置两元集间的父子关系;
第三步:将变化后的结构图形所对应的元集序列化,生成与变化后的结构图形相对应的XML文档。
4、根据权利要求2所述的一种基于BPEL的结构图形到XML文档的转换方法,其特征在于:结构图形建立好后,可以根据需要从结构图形中删除子图形,具体方法如下:
第一步:从结构图形对应的元集中删除将要被删除子图形所对应的子元集;
结构图形对应的元集调用删除子元集方法,将子元集删除;
第二步:从结构图形中删除子图形;
从结构图形中删除子图形就是将连接结构图形和子图形的线删除,然后将子图形删除;
第三步:将变化后的结构图形对应的元集序列化,生成与变化后的结构图形相对应的XML文档。
5、一种实现XML文档到基于BPEL的图形转换的方法,它包括以下步骤:
第一步:通过反序列化操作,将XML文档转换成元集
具体步骤:1、调用元集的反序列化方法,将XML文档反序列化为一个元集;
2、同时根据XML文档的元素之间的父子关系;设置元集之间的父子关系;
第二步:使用递归的方法,将元集转换成基于BPEL的图形;
具体步骤:
A、判断元集所对应图形的类型,如果是基本图形,转至B;如果是结构图形,转至C;
B、创建相应的基本图形:
1、创建一个按钮,按钮上显示可以标识该图形的图片;
C、创建相应的结构图形:
具体步骤:1、创建相应的图形:创建一个按钮,其上显示的图片根据图形类型确定,我们将这个按钮成为主按钮;除了主按钮外,可能还需要创建表示结构结束的按钮;再创建一些表示结构的线;
2、将已创建的按钮连接起来形成一个结构图形框架;
3、判断该元集中是否包含子元集,如果包含,查找该元集中所有子元集,依次创建子元集对应的图形,就是依次将各子元集转至A进行递归处理;
4.依次将得到子图形添加到本结构图形中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101146891A CN100504863C (zh) | 2005-10-28 | 2005-10-28 | 基于bpel的图形与xml文档相互转换的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101146891A CN100504863C (zh) | 2005-10-28 | 2005-10-28 | 基于bpel的图形与xml文档相互转换的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1955956A true CN1955956A (zh) | 2007-05-02 |
CN100504863C CN100504863C (zh) | 2009-06-24 |
Family
ID=38063285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101146891A Expired - Fee Related CN100504863C (zh) | 2005-10-28 | 2005-10-28 | 基于bpel的图形与xml文档相互转换的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100504863C (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101533569B (zh) * | 2009-03-23 | 2011-01-05 | 民航数据通信有限责任公司 | 支持航空器四维时空信息的飞行动态监视方法 |
CN101282345B (zh) * | 2008-03-03 | 2011-12-07 | 北京航空航天大学 | 一种基于形式化描述和状态迁移的xml转换方法 |
CN101378403B (zh) * | 2008-07-02 | 2011-12-07 | 北京航空航天大学 | 一种基于集合的资源通知处理***及处理方法 |
CN102915476A (zh) * | 2012-05-11 | 2013-02-06 | 摩卡软件(天津)有限公司 | 一种可视化的业务流程设计方法 |
CN103065221A (zh) * | 2012-12-27 | 2013-04-24 | 北京仿真中心 | 基于bpel的多学科协同优化流程建模与调度的方法和*** |
CN101661391B (zh) * | 2009-09-24 | 2013-08-28 | 金蝶软件(中国)有限公司 | 一种对象序列化方法、对象反序列化方法、装置及*** |
CN104504118A (zh) * | 2014-12-31 | 2015-04-08 | 桂林电子科技大学 | 一种工作流建模数据的存储和读取方法 |
CN106126416A (zh) * | 2016-06-16 | 2016-11-16 | 北京航空航天大学 | 一种基于流程编排的服务组合路径推导方法 |
CN107209863A (zh) * | 2015-01-30 | 2017-09-26 | 株式会社理光 | 信息处理装置和程序 |
-
2005
- 2005-10-28 CN CNB2005101146891A patent/CN100504863C/zh not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101282345B (zh) * | 2008-03-03 | 2011-12-07 | 北京航空航天大学 | 一种基于形式化描述和状态迁移的xml转换方法 |
CN101378403B (zh) * | 2008-07-02 | 2011-12-07 | 北京航空航天大学 | 一种基于集合的资源通知处理***及处理方法 |
CN101533569B (zh) * | 2009-03-23 | 2011-01-05 | 民航数据通信有限责任公司 | 支持航空器四维时空信息的飞行动态监视方法 |
CN101661391B (zh) * | 2009-09-24 | 2013-08-28 | 金蝶软件(中国)有限公司 | 一种对象序列化方法、对象反序列化方法、装置及*** |
CN102915476A (zh) * | 2012-05-11 | 2013-02-06 | 摩卡软件(天津)有限公司 | 一种可视化的业务流程设计方法 |
CN103065221A (zh) * | 2012-12-27 | 2013-04-24 | 北京仿真中心 | 基于bpel的多学科协同优化流程建模与调度的方法和*** |
CN104504118A (zh) * | 2014-12-31 | 2015-04-08 | 桂林电子科技大学 | 一种工作流建模数据的存储和读取方法 |
CN107209863A (zh) * | 2015-01-30 | 2017-09-26 | 株式会社理光 | 信息处理装置和程序 |
CN106126416A (zh) * | 2016-06-16 | 2016-11-16 | 北京航空航天大学 | 一种基于流程编排的服务组合路径推导方法 |
CN106126416B (zh) * | 2016-06-16 | 2018-12-07 | 北京航空航天大学 | 一种基于流程编排的服务组合路径推导方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100504863C (zh) | 2009-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1955956A (zh) | 基于bpel的图形与xml文档相互转换的方法 | |
CN1112637C (zh) | 信息获取代理***和信息传送管理*** | |
CN1172239C (zh) | 执行移动对象的方法 | |
CN1209893A (zh) | 分层结构的图形显示方法及装置 | |
CN1558348A (zh) | 将基于模式的分级数据结构转换成平面数据结构的方法以及*** | |
CN1841592A (zh) | 叠层电容器 | |
CN1700652A (zh) | 一种基于协同模板的协同设计方法 | |
CN1873625A (zh) | 一种基于功能覆盖率的随机激励的自动产生方法 | |
CN1111795C (zh) | 利用网络的信息分发*** | |
CN1862522A (zh) | 数据核对装置及核对方法 | |
CN1239982C (zh) | 数据处理*** | |
CN1230833A (zh) | 多媒体信息通信*** | |
CN1545303A (zh) | 承载和控制相分离的通信网络中多方会议业务的实现方法 | |
CN101046867A (zh) | 工作流决定方法以及工作流决定*** | |
CN1912830A (zh) | 定义面向对象模型的操作接口的方法 | |
CN1720696A (zh) | 通过多层进行通信的通信网中的路径设定方法和通信装置 | |
CN1498509A (zh) | 宿留和执行客户软件的无线电通信模块以及用于实施客户驱动软件的匹配过程 | |
CN1968120A (zh) | 一种管理群组信息的方法和*** | |
CN101047525A (zh) | 智能型ivr接口网关数据处理方法 | |
CN1928904A (zh) | 一种具有丰富业务语义的工作流模型结构 | |
CN1828531A (zh) | 构件化软件***中构件接口和运行逻辑的构建方法 | |
CN1118180C (zh) | 具有内置极性切换电路的用户电路 | |
CN1831767A (zh) | 采用用户引导进行自动应用开发的***设置和方法 | |
CN1967274A (zh) | Asic器件的自动测试技术 | |
CN1532756A (zh) | 具有订购能力的版面设计***和程序以及版面设计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090624 Termination date: 20121028 |