http://blog.csdn.net/[userid]/services/MetaBlogApi.aspx
PNML简介:用于实现Petri Net工具的互操作性的Petri Net描述语言
先从法国的LIP6 实验室开始,标准制定方面的牵头人,请先访问它的PNML标准化主页 ,然后是PNML Framework 。
关于PNML的标准化进程,当前通过的有ISO/IEC-15909,还有一个2009-version 处于草稿状态。
ISO/IEC-15909包括两部分,Part 1定义了PNML的语义,Part 2定义语法,PNML Framework就是针对Part 2的Java 实现。
提供PNML支持的工具(如PNML Framework)至少要提供如下两类API:
- create and save PNML models;
- load and fetch PNML models elements.
为什么要选择LIP6 的PNML Framework 呢 ?
有5条理由 ,主要是因为LIP6是倡导、参与PNML标准化进程的主体。
它 有什么能力 ?它支持如下类型的Petri Net和记号系统:
- PNML Core Model;
- PNML Place/Transition Net;
- structural PNML High-level Petri Net;
- Symmetric Net.
- Place/Transition Net in High-level Notation
PNML标准在一个core model基础上,定义了4种类型的网。
The Core Model
It is the common graph, on top of which all types are built. It states that a Petri Nets Document is composed of Petri Nets models. Every Petri Net contains Pages which, in turn, contain Places , Transitions , Arcs , their labels and graphical appearance. At this point, what kinds of label we have is not relevant. They are abstract.
From every Petri nets type, you should be able to extract the underlying Core model .
Place/Transition Nets
It models the classical P/T nets which define annotations such as markings and arc inscriptions. Those are natural numbers .
Symmetric Nets
Symmetric Nets (aka Well-Formed Nets) are a restricted definition of High-level nets. Their carrier sets are finite, and they only allow for a predefined sets of operations. Their annotations follow a strict abstract syntax definition. Simple text in exclusion of the abstract syntax representation of any annotation is not allowed.
High-Level Nets
They allow for infinite carrier sets such as integers. They allow for any arbitrary user-defined operation or sort. Their annotations can only be simple text, though the abstract syntax representation is also allowed.
Place/Transition in High-Level Nets notation
Those are P/T nets whose annotations are in dots instead of natural numbers. In which case they are also entitled to use multisets and booleans. Therefore these annotations can also follow the abstract syntax representation defined for any high-level net annotation.
灰色部分暂时不用看了
怎么用 它 呢?
PNML Framework is intended to be used as a Java library for your application. It provides two essential features, which will allow you to:
- export your Petri net models, represented in your own tool format, into PNML;
- import PNML models into your format.
To use these features, the only requirement is to provide your parsing tool for your proprietary representation format of Petri nets (which most of the time you already have). Once you meet this requirement, you just build your new application in a few steps and integrate it to your Petri net tool.
由于它采用一种C/S架构(保护知识产权的有效手段),系统部署方式如下:
接下来,就要具体看API 文档 和Developer指南 了。
CVS:https://srcdev.lip6.fr/svn/research/ISOIEC-15909/Dev/Sources/pnmlFramework_2/trunk
开发建议 :Recommended plugins for eclipse
Name | Description | Address |
FindBugs | Looks for bugs in your code using static analysis | http://findbugs.sourceforge.net/index.html |
Metrics | Analyzes and gives feedback about the metrics of your program | http://metrics.sourceforge.net/ |
Mylyn | Task-focused interface for context-based development. Integrate Bugzilla, Trac and JIRA | http://www.eclipse.org/mylyn/ |
PMD | Detects dead code, duplicates, possible bugs, overcomplicated expressions | http://pmd.sourceforge.net/ |
Checkstyle | Point out your bad coding practice and propose improvements | http://eclipse-cs.sourceforge.net/ |
总体架构
Architecture of PNML Framework ¶
We present here the release number 3 of PNML Framework architecture.
Of course, this architecture may change in the future, but with this diagram you will have an idea. The goal of this article is to enable you to give us your feedback about this architecture, what are your suggestions.
In this outline, we use a component diagram to expose the architecture. Component representation is the nearest approach for implementations which work with Eclipse plug-in system. Indeed, in Eclipse environment, softwares are mainly based on plug-ins. Currently, we have defined 9 components for PNML Framework.
We have defined some sub-components, which are not plug-ins but considered as packages (in the Eclipse terminology). For example, : PNML Writer of the architecture.
Legend:
Pink: Provided interfaces
Grey: Required interfaces
Brown / green: Delegate links
Brief Description ¶
Here is a little summary of each component:
- PNML Core Model : this component is the base of PNML Framework. It contains all base methods to write, read, or modify PNML models.
- P/T Type, SN Type, HLPN Type : those components implement the real Petri nets Types. There are inherited links between them and PNML Core Model component as the UML package overview of PNML Framework shows.
- Format Validator allows to check if PNML files are in the right XML format.
- General Reader contains methods to find PNML objects type.
- Id Repository guarantees uniqueness of each PNML object we will create.
- Model Repository stores references to all PNML Models being used. Its usefulness for PNML Framework is not yet well established, since users can do the same in their applications.
- Utilities gives many methods for exception and logs reports.
Activity diagrams below describe the dynamic of the export and import features of PNML Framework.
Activity of the export feature in PNML Framework ¶
This outline describes all activities performed during the export of a PNML model into a PNML syntax . It explains all conditions which are necessary to go to a next step for each activity.
The export of a PNML model is driven by a Petri net tool A , which is a user of PNML Framework. Download the image of the export activity diagram.
Activity of the import feature in PNML Framework ¶
This outline describes all activities performed during the import of a PNMl model. It explains all conditions which are necessary to go to a next step for each activity.
Again, the import of a PNML model is driven by a Petri net tool A , which is a user of PNML Framework. Download the image of the import activity diagram
用它有什么成功经验吗?
Softwares using PNML Framework
Coloane | Coloane is a generic graph editor and a front-end of FrameKit . |
CpnAmi application | Application to convert Cami models to PNML models and vice versa. |
The following people have contributed valuable time and effort to the development of PNML Framework.
Name | Qualification | Institution | Home page |
Fabrice Kordon | CIO | UPMC/LIP6 | Access |
Lom Messan Hillah | Project leader, developper | UPMC/LIP6 | Access |
Laure Petrucci | Advisor, bêta tester | Paris 13/LIPN | Access |
Nicolas Trèves | Advisor, bêta tester | CNAM/CEDRIC | Access |
Guillaume Giffo | Core Architect, developper, integrator | UPMC | Access |
Rachid Alahyane | Infrastructure and CI manager | UPMC | Access |
Bastien Bouzerau | Junior Architect, developper | UPMC | Access |
Etienne Renault | Demonstrator GUI Taipa | UPMC | Access |
Jean-Luc Mounier | System Admin | UPMC/LIP6 | Access |
Nicolas Gibelin | System Admin | UPMC/LIP6 | Access |
Alexandre Hamez | Subversion Admin | UPMC/LIP6 | Access |
Alban Linard | Consultant | UPMC/LIP6 | Access |
Jean-Baptiste Voron | Consultant, bêta tester | UPMC/LIP6 | Access |