1. 引言
现如今,我国信息技术的发展迅速,系统架构在我国企业中高速发展。针对业务架构描述存在许多建模定义语言,其中BPMN2.0 [1] 由于既融合了图像化设计思想、UML [2] 的面向对象的设计思想,同时减少业务与IT用户之间的混乱,在业务架构建模中被广泛使用。
但是BPMN标准提出的业务架构建模只是业务架构的静态描述,由于业务架构本身理应是动态的,各个对象之间的作用由相应事件的发生而触发,进而带动相应事件的执行。为了完成业务架构的动态仿真和分析,因此我们还需要建立BPMN的可执行模型。
就此问题,已经有学者开展了相关研究,Zafar [3] 等人提出从高级BPMN模型自动生成Web服务,Yong [4] 等人对业务流程的可执行性模型构建运用是Uni-Flex View框架,Eduardo Díaz [5] 等人将BPMN映射到图形用户界面(GUI),代飞 [6] [7] 等人对BPMN中的元素制定映射规则,由此建立CPN可执行模型的方法。基于上述研究,本文选取CPN作为可执行模型。同时,Umair [8] 、Li [9] 等人对CPN构建BPMN的可执行模型方法做了进一步的研究。Zhong [10] 、Dec [11] 、Nao [12] 、F Corradini [13] 等人侧重研究运用CPN对BPMN活性,可达性,正确性子流程进行分析。
随着业务架构的不断发展,在确保必要信息完整性的前提下,人们逐渐难以通过单一的架构模型对其进行模拟表达的问题。因此我们需要引入其他模型对BPMN的语义进行补充。为了解决BPMN模型对业务架构描述能力上的存在一些不足。国内外多名学者也做了相关研究,比如提出了通过将附加属性和元素附加到现有BPMN元素的方法,对BPMN模型进行视角拓展,如BPMN-E2 [14] 、u-BPMN [15] ,对医院流程的BPMN符号改进方法 [16] 等等。但各类拓展均特定于某个过程或企业,无法将补充的符号通用化。所以本文引入i-BPMN [17] 系统架构,其在BPMN描述业务架构的基础上,采用集成体系的思想,结合IDEF0、if-else语句以及IDEF1x建模方法,对BPMN中结构层次性,数据复杂性等任务进行建模补充,建立一组多视角、易操作且通用性强的i-BPMN模型组。i-BPMN中的四种模型分别是场景过程模型、活动模型、规则模型以及数据实体模型。对于IDEF0的可执行模型的研究。倪枫 [18] 、周小舟 [19] 等人分析IDEF0与CPN俩者之间的语义对应关系,提出IDEF0与CPN之间的层次化映射与自动转换。但上述研究中,不管是BPMN的可执行模型的建立,还是IDEF0的可执行模型的建立,都只是单一架构模型到可执行模型的生成,因此,为了解决这一问题,本文提出基于i-BPMN的业务架构CPN可执行建模方法。此方法实现了多个架构模型到可执行模型的生成,基于建模过程是一一映射的,为模型组到可执行模型的自动转换提供了技术支持。同时完善了i-BPMN建模方法,通过模型可执行化,验证和分析i-BPMN的动态特性,使得i-BPMN建模方法能够适用于更多场景下。
2. 相关基础
CPN应用领域包括分布式算法,数据网,通信协议及嵌入式系统。同时也广泛地适用于以交互性和并发性为主要特点的架构建模。CPN是普通petri的高级形态,主要增加了颜色集和网络分层的俩部分功能。通过对库所加入颜色集和相应的令牌标定系统当前状态。同时每个库所都绑定特定的颜色集,表示该库所只能存放相应颜色的令牌。CPN的变迁上和弧上写条件表达式和函数。说明弧的颜色集和权值,以及触发变迁的约束条件。CPN被认为是建立复杂架构建模和仿真分析的最佳工具。CPN建立的模型是可执行的,可以对模型进行动态仿真。标记的颜色集可以是任何复杂的数据,由此提高模型对数据的处理能力,简化了模型的复杂度。同时,CPN具有分层框架的功能,将架构从顶层到底层,从整体到局部,从粗到细,逐步细化,突出重点。
定义1 (CPN形式化定义)
· Σ为有限非空“类”集合,称之为颜色集,P为有限非空库所元素集合;T为有限非空变迁元素集合;A为弧集合;N为节点;C是库所的颜色集函数,G是变迁的警卫函数;E为弧表达式函数;I是初始化函数,即初始标示;
·
·
·
·
(expr即表达式)
·
其中B是BOOL函数,Var()表示变量,Type()表示类型(type);
·
·
·
其中P是N(a)的库所集元素,下标MS为多重集函数;
定义2 (BPMN形式化定义)
BPMN2.0流元素是活动、事件、网关、序列流和序列流。其中:其中P表示活动的集合、G表示网关的集合、E表示事件的集合,S表示顺序流、M表示消息流。
3. i-BPMN到CPN建模方法
i-BPMN是一个集成了场景,功能,规则以及数据视角的模型组。在BPMN原有的基础上,引入数据库概念中一种建模方法IDEF1x,补充数据视角;引入if-else语句描述业务流程的业务规则,补充规则视角;引入具有分层结构的IDEF0建模方法。补充BPMN模型的层次性功能。逐步精化,突出重点。但由于i-BPMN模型组只能分析静态模型的关键缺陷,因此,本文将i-BPMN映射为CPN可执行动态模型。首先从场景过程模型(BPMN)和活动模型(IDEF0)中得到CPN模型的框架信息,其次从规则模型(if-then-else)中得到CPN模型的约束信息,再从数据模型(IDEF1x)中得到CPN模型的数据域信息。最后获得i-BPMN对应的CPN模型,运行该模型,从它的运行过程和运行结果中,可以对i-BPMN的逻辑、行为和数据域等信息进行验证。以i-BPMN建模方法和CPN俩者的语义为基础,将i-BPMN模型组一一映射到CPN中。我们将i-BPMN建模方法映业务映射到CPN的具体过程分为五个阶段,其核心思想是以场景过程模型为主体,活动模型为补充的CPN模型框架的建设,以数据实体模型为主体的CPN颜色集的定义,以规则模型为主体的CPN中的弧函数规则的嵌入。具体过程分为以下五个阶段:
3.1. 构建CPN框架
设φ为BPMN模型与CPN模型之间的映射,即
。该映射规则遵循如下规则:
a)
,
,
。即BPMN模型中的任意活动均映射为CPN的变迁;
b)
,
,
即BPMN模型中的任意事件均映射为CPN中对应的变迁;
c)
,
,
,即BPMN模型中的顺序流映射为CPN中对应的弧。

Table 1. Mapping between product components of the scenario process model and CPN model units
表1. 场景过程模型产品组件与CPN模型单元的对应
基于上述定义,以场景过程模型(BPMN)为依据,构建CPN的基础框架,其中事件包括开始事件,中间事件,结束事件。网关分为排他数据(事件)决策网关,排他数据(事件)合并网关,并发分叉网关,并发汇聚网关。BPMN与CPN模型之间的语义映射关系,如表1所示。
CPN基础框架建立过程应遵循以下步骤:
1) 将场景活动模型按照流元素的分类进行拆分。
2) 将拆分后的场景过程模型各个片段按照表1的对应关系进行一一映射。开始事件映射的变迁元素以Start命名,结束事件映射的变迁元素以End命名。活动映射的变迁元素以该活动名称来命名。
3) 最后运用库所融合技术 [6] 将对应的CPN元素片段进行组合。形成场景过程模型对应的CPN基础框架。
3.2. 确定CPN结构
定义3 (IDEF0形式化定义)
将基于IDEF0所描述的模型表示为一个五元组形式,In、Out、Con、M、Act分别表示模型输入信息(Input);输出信息(Output);控制要素(Control);机制要素(Mechanism);活动(Activity)。
设φ为IDEF0模型与CPN模型之间的映射,即
。该映射规则遵循如下规则:
a)
,
,
即IDEF0模型中的任意活动均映射为CPN中的变迁;
b)
,
,
,
,
,即IDEF0模型中的任意输入输出信息(或资源)均映射为CPN的库所;
c)
,
,即对于IDEF0模型中的控制要素,映射为CPN的库所;
d)
,
,即对于IDEF0模型中的机制要素M,它表示的是活动Act所需要的资源,映射为CPN中的库所;

Figure 1. Correspondence between IDEF0 and CPN model
图1. IDEF0与CPN模型的对应关系
在CPN基础框架的基础上,依据活动模型(IDEF0)对CPN结构进行完善。i-BPMN中的活动模型是对场景过程模型的视角补充,如图1所示,场景过程模型对应基础框架,活动A和活动B分别对应变迁A和B,采用IDEF0模型对活动A进行视角补充,根据CPN基础框架,找到对应的变迁A,接下来按照映射规则对IDEF0的元素进行一一映射,第一,IDEF0中的Input,Output表示输入输出信息或资源,映射为CPN的库所,库所名称以输入输出名称命名。第二,IDEF0中Controls是指活动的约束条件,映射为CPN中的库所,一些情况下,Controls还需要映射为CPN中的guard函数,guard函数大多采用if-then函数来控制令牌的流动。第四,对于IDEF0中的mechanism,他表示为活动提供支持的手段,包括活动所需的人员,设备及装备等。机制映射为CPN中的库所。依据上述步骤,确定CPN的结构。
3.3. 定义颜色集
根据数据实体模型(IDEF1x)来定义CPN模型的颜色集,CPN颜色集的名称必须采用数据实体模型的实体名名称,颜色集中各个子颜色集以该实体的各个属性名命名。由此可以确保i-BPMN和CPN模型之间数据的一致性和可追溯性。同时,颜色集的命名也需符合CPN Tools的命名规则。通过第三阶段,CPN中所有库所的颜色集标签都应该被赋予具体的定义。
3.4. 建立底层规则
规则模型(if-then-else)规定了业务活动的触发规则,描述了触发事件和业务规则以及俩者之间的联系。第四阶段,首先,依据规则模型,将规则映射为触发事件对应CPN变迁中的输出弧上,映射为输出弧的弧函数。通过弧函数控制令牌的流动。或者将规则作为一个变迁,并以这个规则名称来命名该变迁,该规则变迁的输入弧上输入规则的前提条件函数,该规则变迁输出弧上写该规则的结果函数。最后,在没有规则函数的输入弧上均需关联前集库所,后集库所颜色集对应的变量,必须保证有向弧上的变量和库所颜色集的一致性。令牌能够在模型中顺利流动,否则CPN模型采用代码形式进行报错。经过以上四个阶段,整个CPN建模过程基本完成。
3.5. 验证模型行为
CPN建模系统的状态是依据库所状态代表的。每一个库所可以存放一个或多个令牌(tokens)标示,令牌类型由该库所的颜色集决定,令牌的颜色是指令牌自身附带的数据值。每一个单独库所的令牌数量和

Figure 2. Shows the five phases of the i-BPMN to CPN executable model
图2. i-BPMN到CPN可执行模型的五个阶段
令牌颜色组合在一起,构成了该系统的状态(marking)。验证模型行为,在系统的库所中加入相应的令牌,通过令牌的动态变化能够反映CPN执行情况。通过CPN的执行记录验证模型的逻辑是否与预期一致,仿真结束后,结合CPN Tool生成的状态空间报告、状态图和OG图等,报告给出CPN模型的数学性质,包括可达性、有界性和活性等,以此判断模型的正确性。将以上步骤模版化地应用建立CPN可执行模型。
综上所述,由i-BPMN到CPN可执行模型的建模五个阶段如图2所示。
4. 智慧课堂的业务架构CPN建模过程
智慧教育 [20] 的真谛是通过互联网,大数据技术结合到学习中,让教师们能够更加高效的分析学生的学习情况,对症下药。让学生能够获得合适的个性化学习服务,使得学生的潜能从无到有,从小到大,从而培养出具有创新能力,社会所需要的复合型人才。以下图3是智慧课堂的业务功能,为了更好说明建模映射过程,我们以基本业务“课堂小测”为例,进行i-BPMN建模过程。第一阶段,顶层架构阶段。构建出一个顶层框架,即场景过程模型如图4所示。

Figure 3. Basic business decomposition of wisdom class
图3. 智慧课堂基本业务分解

Figure 4. Scene process model of “Classroom quiz”
图4. “课堂小测”的场景过程模型
第二阶段,环形建模阶段,根据业务需求,补充业务架构的新视角。即加入活动模型、规则模型以及数据实体模型。在此阶段中,下层的数据域和业务规则补充并完善了顶层的BPMN流程模型,每创建一个新的模型,都进入第三阶段,进行“粒度”的对齐,在建模初期阶段,需要多次迭代。模型经过多次修改。形成建模过程的“闭环”。

Figure 5. Business activity model of “classroom quiz”
图5. “课堂小测”的业务活动模型

Figure 6. Dateentity model of “Classroom quiz”
图6. “课堂小测”的数据实体模型
第三阶段,“粒度”对齐阶段,在同一轮迭代中,i-BPMN各视角相应的模型在同一层次、同一水平上对业务架构进行描述。通过不断修正模型间粒度以及语义的基础上,找到描述业务流程的最佳粒度平衡点。
第四阶段,迭代调整阶段,通过重复前三个步骤,不断迭代,不断的修改直至构建出多视角、粒度对齐且能够满足不同粒度需求的多维度,多视角的业务流程模型组——i-BPMN模型组。“课堂小测”业务的活动模型如图5所示,“课堂小测”业务的数据实体模型如图6所示。表2中例举了“课堂小测”业务规则模型。
以“课堂小测”i-BPMN建模方法为例,进一步说明,i-BPMN建模方法可执行模型的建模过程,使用的工具软件是CPN Tools。

Table 2. “Classroom quiz” business rule model
表2. “课堂小测”业务的规则模型
4.1. 构建“课堂小测”CPN的基础框架
将过程场景模型按照2.1的映射规则,得到CPN框架如图7所示。其中开始事件,结束事件分别对应的是变迁是“Start”,“End”。网关对应的是库所“Exclusive”。中间事件“学生签到”“课堂小测”“查看成绩”“合格”“不合格”分别对应的是变迁“Students Log in”“Class quiz”“View grades”“pass”“not passed”。图中红色库所是相邻活动对应的变迁前后库所融合的结果。

Figure 7. CPN model of “Classroom quiz” system (framework)
图7. “课堂小测”系统CPN模型(框架)
4.2. “课堂小测”CPN的结构
活动模型是对场景过程模型视角的补充,按照2.2的步骤,“课堂小测”活动模型活动框“学生登陆”在过程场景模型中对应活动“学生登陆”活动,对应的变迁是“Students Log in”,同理,活动框课堂小测对应的变迁是“Class quiz”。再依据映射规则,加入控制元素“课堂信息”对应的库所“Class information”。其对应的警卫函数放在规则模型的映射过程中加入。机制“平台”对应的是库所“System”。输出“出勤人数实时更新”“成绩汇总”分别对应库所“Attendance is update”“Summary of grades”。输入“学生签到”“进入课堂”对应库所“Students sign in”“Enter classroom”,如图8所示。

Figure 8. CPN model of “Classroom quiz” system (structure)
图8. “课堂小测”系统CPN模型(结构)
4.3. 定义“课堂小测”CPN的颜色集
建模第三阶段,在“智慧课堂”的数据模型中列举三个数据实体“Student”“Class”“System”定义CPN中各个颜色集,他们各自的属性对应其颜色集的子集,以上三个数据实体的CPN颜色集定义如表3所示。本文篇幅有限,只列举了部分颜色集。

Table 3. Color set of “Classroom quiz” business
表3. “课堂小测”业务的颜色集
4.4. 定义“课堂小测”CPN的底层规则
建模第四阶段,建立CPN的底层规则,依据2.4,将规则映射到CPN的弧函数,同时其余有向弧上依据前后前集库所,后集库所的颜色集依次加入变量值,使得CPN变迁能够依据前集库所和后集库所相应的颜色集删除或生成token。将表2的规则模型映射到CPN,如下图9所示。

Figure 9. CPN model of “Classroom quiz” system (initial state)
图9. “课堂小测”系统CPN模型(初始状态)
4.5. 验证模型行为
依次向相关库所里加入相应的token。在Start前集库所加入令牌,如图9。“1`(joy,1)++1`(petri,1)++1`(ben,1)++1`(david,0)”分别代表四个学生Joy,Petri,Ben,David,他们的学生信息简化用0,1代表,1代表正确的学生信息,0代表错误的学生信息。在库所“Class information”中加入token“1`1”代表正确的学生信息1。在库所“Attendance”中加入token“1`0”。代表在当前状态下签到人数为零。在库所“system”中加入token“1`61++1`59++1`99”代表学生们的成绩。接着进行仿真模拟。仿真结果得到结果图10,可以看到结果,3位同学的学生信息正确,登陆成功3位,出勤人数更新为正确的出勤人数,显示为“1`3”,分数61分和99分进入pass库所所在那条路径,59分进入not passed库所所在那条路径。最后到达各自的结束事件的变迁的后集库所。依据仿真执行记录,模型的动态行为与预期一致。验证模式依靠状态空间生成器来构造状态空间图,由节点和边组成。节点或标记表示系统的状态,而边表示状态转换,状态转换是转换的触发信息,称为绑定元素。在状态空间上解释的函数命令和时间公式用于创建用于状态空间探索的查询。CPN的状态空间报告见图11。状态分析报告说明表明该模型中没有不必要的循环,死锁,状态空间爆炸,验证模型是正确的。
遵循以上的建模方法,我们由i-BPMN建立可执行模型CPN模型,并且验证了模型与预期的逻辑行为一致性,说明这套建模步骤是行之有效的。

Figure10. CPN model of “Classroom quiz” system (simulation results)
图10. “课堂小测”系统CPN模型(仿真结果)

Figure 11. CPN state space report of “Classroom Quiz” system (local)
图11. “课堂小测”系统CPN状态空间报告(局部)
5. 结论
本文在研究i-BPMN与CPN建模语言俩者之间语义对应关系的基础上,提出i-BPMN到可执行模型CPN的五阶建模法,实现模型组到CPN可执行模型的转换,支持集成架构模型的动态行为检验和评价。但是在本文中,本文只是研究了过程场景模型(BPMN)中的流程视图,并未对BPMN中编排图和协作图做出相应的映射。下一步,我们将继续研究i-BPMN中过程场景模型存在协作图,编排图时,i-BPMN的动态可执行模型的建设。