QPE
A Graphical Editor for Modeling using Queueing Petri Nets
Christofer Dutz
Agenda
• Motivation
• XML Format
• Approaches to Java GUI development
• QPE Design & Architecture
• Demo
• Conclusion
• Future Work
Motivation
• Benefits of QPNs over ordinary PNs
• Problems analyzing QPNs
• How SimQPN solves these problems
• HiQPN as editor and its disadvantages
• QPE closing the gap
Benefits of QPNs over ordinary PNs
Motivation
Problems analyzing QPNs
• State space explosion problems
• Analysis techniques not scalable
Motivation
SimQPN simulator
• Scales much better
• Allows simulation of far more complex nets
• Unfortunately no GUI
Motivation
HiQPN
• currently only GUI tool for QPNs
• Not portable (Solaris)
• Problematic integration with SimQPN – C Java
• Screenshots
Motivation
HiQPN net editor
Motivation
HiQPN incidence functioneditor
Motivation
QPE
• Pure Java
• Developed directly for QPN support
• Available on all major platforms
• Integrates perfectly with SimQPN
• Screenshots
Motivation
QPE net editor
Motivation
QPE incidence function editor
Motivation
XML Format
• Why XML
• Format extension vs. new definition
• Demo
• Schema definition
Why XML?
• Portable
• Human readable
• Transformable
XML Format
Format extension vs. new definition
• PNML– Filled with unnecessary features– Unable to integrate global color definitions
• QPE format – Lightweight– Optimized for QPNs
• Conversion PNML QPE using XSL
XML Format
Format Demo
• ..\test-data\test2.xml
XML Format
Schema definition
• Schema– Good tool support widely spread– No support for type definition based on name
and attribute
• RelaxNG– Easy format– Able to define QPE format
XML Format
Schema Demo
• ..\qpn.rng
XML Format
Approaches to Java GUI development
• SWING & AWT
• Extending existing tools– PIPE
• Graphic frameworks and libraries– Touchgraph – Eclipse & GEF
SWING & AWT
• AWT fast but little features
• SWING slow but many features
• Implement Framework for QPN visualization by myself
• Reinventing the wheel is no solution
dropped
Approaches to Java GUI development
PIPE
• High level code object oriented• Low level code procedural• Class names had nothing to do with their function• Hacking against my understanding of software
quality• Reimplementation more time-consuming than
reimplementing from scratch using visualization framework
dropped
Approaches to Java GUI development
PIPE based QPN editor
Approaches to Java GUI development
Touchgraph
• Library for visualizing net structures
• Amazing visualization
• Homogeneous elements– No constraints– No attribute types bound to certain node types
dropped because of GEF
Approaches to Java GUI development
Touchgraph application
Approaches to Java GUI development
Eclipse & GEF
• RCP (Rich Client Platform)– Minimal Eclipse– Usage of all Eclipse plug-ins– Application generally usable as standalone
application or plug-in
• GEF = Graphical Editing Framework– Visualization framework for building graphical
editors
Approaches to Java GUI development
QPE Design & Architecture
• RCP Perspective
• Problems
• Main patterns
• Model
• Controller
• View
RCP Perspective
QPE Design & Architecture
Problems
• Change from 3.0 to 3.1 – Major changes in plug-in mechanism– Samples and how-to's for 3.1 hard to find– Google not yet indexed a lot of 3.1 content
• No Architecture Map
• How-to's mainly show samples without explanation
QPE Design & Architecture
Main patterns
• MVC – Model Model
– View Controller
• Observer– PropertyChangeListener
• Reflection– Parameters of type Object
– Implementing additional interface results in entirely different behavior
QPE Design & Architecture
Model
• XML (Dom4J and XPath for navigation)• Write access wrapped to enable event-listeners• General structure of read and write operations• Screenshots of sample actions
– Registering a new document
– Registering as event listener for an element
– Modify an element
QPE Design & Architecture
General structure
Document-Manager
Controller
read
acc
ess
writ
e ac
cess
Eve
nt n
otifi
catio
n
EventWrapperXmlDocument
QPE Design & Architecture
Registering a new document
Net
Colors Places Transitions Connections Meta-Attributes
Color Place Trnasition Connection Meta-Attribute
EventWrapper
ControllerContorller Contoller
Document-Manager
2. generate id and add as event-wrapper-id attribute
1. register document
4. fire document registerd
3. create EventWrapper and store using id as key
QPE Design & Architecture
Registering as event listener
Net
Colors Places Transitions Connections Meta-Attributes
Color Place Trnasition Connection Meta-Attribute
EventWrapper
ControllerContorller Contoller
Document-Manager
Wants to listen to element 1. Register request
2. get element3. get document
4. get event-wrapper-id 5. get event wrapper with id and register as listener for element
QPE Design & Architecture
Modify an element
Net
Colors Places Transitions Connections Meta-Attributes
Color Place Trnasition Connection Meta-Attribute
4. get event-wrapper-id
1. tell
DocumentManager to
modify element
EventWrapper
5. get event wrapper with id
ControllerContorller Contoller
7. fire element modified
7. fire element modified
Document-Manager
2. get element
Wants to modify
8. fire child modified
3. get document
6. modify
QPE Design & Architecture
Controller
• EditParts – interacting with Platform– Keeping model and view in sync– Register as event listeners to platform and
model events
• Screenshot of EditPart structure
QPE Design & Architecture
EditPart stucture
NetEditPart
PlaceTransitionEditPart
(base class)
PlaceEditPart TransitionEditPart
children
ConnactionEditPart
TargetConnections
Source- connections
TargetConnections
Source- connections
IncidenceFunctionEditPart
PlaceEditPart ModeEditPart
ColorRefEditPart
children children
children
NamedConnactionEditPart
TargetConnections
Source- connections
TargetConnections
Source- connections
NetEditPart Structure
Incidence function
EditPart Structure
QPE Design & Architecture
View
• Figures = Visual components• Problem
– Lists in Java only allow one reference to a single Object
– How to distinguish between input and output place?
• Solution: Wrapping in wrapper objects• Screenshot of I.F. editor figures
QPE Design & Architecture
Incidence function view structure
Wrapper Elements
Color-ref
Place A
Color-ref Color-ref
Place B
Color-ref Mode
Place A
Place A
Place B
Dom Elements
Editor
Demo
• QPE– Show everything
• SimQPN plug-in– Show wizard
QPE Design & Architecture
Conclusion
• Multiplatform QPN editor
• Integration of SimQPN simulator
• Together form QPME:– Queueing Petri Net Modeling Environment
• Able to be widely spread
• Because of simulator performance will be highly accepted by users
Future work
• Implementation of subnet editor– QPN HQPN editor
• Final adjustments in simulator integration.• Validation of simulator integration• Implementation of custom problem view for
RuleEngine• Branding to make executable binary
package for each supported platform
Fin