王 雷,姜久雷,王晓峰
(北方民族大学 计算机科学与工程学院,宁夏 银川750021)
Petri 网(Petri net)具有严格的数学表达方式和直观的图形表达方式,在软件设计等方面有着非常广泛的应用[1]。如果系统的规模很大,人工来完成Petri 网的建模和仿真是不可能的,此时需要借助于软件工具,那么,开发一种Petri 网建模工具就变得非常有意义。
目前,国内外的一些高校和科研机构已经开发出一些Petri 网建模工具,但是这些Petri 网建模工具多数基于Unix或Linux 平台且是收费的,操作起来比较困难,使用门槛较高[2]。
本文所述的Petri 网建模工具采用了一种改进的三层架构,增强了系统的性能。该工具提供了友好的人机界面,可以方便地对模型进行仿真和分析。
定义1 网是一个三元组N(P,T,F),其中
其中:
1)P 为网N 的有穷库所(Place)集合;
2)T 为网N 的有穷变迁(Transition)集合;
3)F 为网N 中的一个库所元素和一个变迁元素组成的有序偶集合;
定义2 六元组N=(P,T,F,K,W,M)称为一个Petri网模型,其中
1)(P,T,F)是一个网(定义1);
2)K:P→N0(N0是自然数集合)为库所上的容量函数;
3)W:F→N0-{0}为变迁启动对库所标记的影响(弧上的权函数);
4)M:P→N0为网N 的一个标识,满足条件
∀p∈P:M(p)≤K(p).
一个变迁可以发生的条件为每个输入库所包含托肯的数量都大于等于对应的连接弧上标明的数字(权重)。当一个变迁发生时,其输入库所中托肯的数量就根据此值而相应地减少。输出库中所托肯的数量也根据对应值而增加。
分层体系结构风格[4]将软件结构组织成一个层次结构,一个分层系统是分层次组织,每层对上层服务,同时对下层也是一个服务的对象。典型的分层体系结构包括表示层、业务层和数据层三大部分。表示层把运行结果通过人机界面返回给用户,并接受用户的请求。业务层主要负责对数据层的操作,对数据进行业务逻辑处理。数据层主要负责对数据文件的操作,为业务层或表示层提供数据服务。
分层体系结构具有以下优点[5]:
1)由于对层次的邻接层数目进行了限制,所以,系统易于改进和扩展。
2)每一层的软件都易于重用,并可为某一层次提供多种可交换的具体实现。
3)分层系统所支持的设计体现了不断增加的抽象层次,这样,一个复杂问题的求解被分解为一系列递增的步骤。
该建模工具需要频繁地进行读取和保存模型信息操作,且这些操作不需要任何逻辑处理。而传统的三层架构对数据的操作必须通过中间层来完成,降低了系统的性能[6]。为解决这个问题,提出了一种新的三层架构——对称三层架构,如图1 所示。
图1 对称三层架构Fig 1 Symmetrical three-tier architecture
在该架构中,表示层可以直接访问数据层,也可以直接访问业务逻辑层。而数据层和业务逻辑层之间不能直接互相访问。
业务逻辑层和数据层的通信需要通过表示层来完成。当业务逻辑层需要用到数据库中的数据时,表示层从数据层中取出数据,然后再传递给业务逻辑层。
采用对称三层架构来设计该工具的软件体系结构,如图2 所示。
图2 基于对称三层架构的Petri 网建模工具Fig 2 Petri net modeling tool based on symmetrical three-tier architecture
1)用户界面层:该层作为表示层,具有可视化编辑Petri网模型等功能。该层还充当数据层与模型仿真/分析层之间的数据传递功能。
2)数据层:该层主要负责用户界面层和模型仿真/分析层的数据通信以及后台数据的存储。
3)模型仿真/分析层:该层主要实现模型仿真/分析算法。
实体类,是从数据库中的表映射出来的对象类[7]。Petri网模型由库所、变迁和弧线三种元素组成,这样就可以抽象出以下四个类:
1)库所类:
实体类供用户界面层、数据层和模型仿真/分析层进行数据传递。
目前该Petri 网建模工具已经开发完成,如图3 所示。
该系统由以下四大功能模块组成:
1)模型编辑区:用于以人机交互的方式编辑Petri 网模型,位于主界面右侧。
图3 系统主界面Fig 3 Main interface of system
2)资源管理器:用于对库所等资源进行管理,位于主界面的左上侧。
3)属性管理器:用于显示和设置元素的属性,位于界面的左下侧。
4)模型仿真/分析模块:对Petri 网模型进行动态仿真和分析。
图3 所示为一个四季变化系统的Petri 网模型[8],库所元素p1,p2,p3,p4分别代表温暖花开、炎热、温暖叶落和寒冷。
单击菜单项“模型分析”→“关联矩阵”,即可弹出“关联矩阵”窗口,如图4 所示。单击菜单项“模型分析”→“可达树”,可以得到该Petri 网模型的可达树,如图5 所示。
图4 “关联矩阵”窗口Fig 4 "Incidence matrix"dialog
图5 “可达树”窗口Fig 5 "Reachable tree"dialog
还可以利用该工具对模型的有界性和有无死锁做判断,结果为1,即有界,且没有死锁。
Petri 网既有严格的形式定义,又有直观的图形表示[9]。本文从体系结构的角度出发,对一个Petri 网仿真工具的设计和实现进行了介绍,并给出了一个建模实例。该工具采用了一种改进的三层架构,具有良好的性能和可扩展性。
目前,该工具只实现了几个常用性质,如有界性、可达性的分析算法,今后将研究其他性质的分析算法的实现,并适当增加该工具体系结构的层数,进一步增强系统的性能和可扩展性。
[1] 吴 琼,邵志清,刘 刚,等.基于着色时间Petri 网的实时系统的形式验证[J].计算机科学,2008,35(7):257-260.
[2] Kounev S,Buchmann A.SimQPN—A tool and methodology for analyzing queueing Petri net models by means of simulation[J].Performance Evaluation,2006,63:364-394.
[3] Lohmann N,Verbeek E,Dijkman R.Petri net transformations for business processes—A survey[C]∥Transactions on Petri Nets and Other Models of Concurrency II,Berlin Heidelberg:Springer-Verlag,2009:46-63.
[4] 杨春成,何列松,周校东,等.基于分层体系结构的数字出版原图数据库管理系统[J].测绘科学技术学报,2008,25(2):83-86.
[5] 王 嫣,张志强.基于B/S 软件分层体系结构的研究[J].煤炭技术,2012,31(10):210-211.
[6] 余腊生,叶 楠.基于J2EE 三层架构的远程答疑系统的研究与实现[J].计算机工程与设计,2007,28(13):3216-3219.
[7] 朱 玲,薛 贺.对象关系数据库系统映射模型及应用[J].计算机工程与科学,2007,29(12):120-122.
[8] 袁崇义.Petri 网原理[M].北京:科学出版社,2013.
[9] 韩耀军.基于Petri 网和并发调度标识图的并发任务调度的建模与分析[J].计算机科学,2014,41(7):105-109.