现在的位置: 首页 > 综合 > 正文

PNML学习笔记

2013年12月01日 ⁄ 综合 ⁄ 共 6117字 ⁄ 字号 评论关闭

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.

我用过Coloane,确实很NB

技术支持?

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

抱歉!评论已关闭.