DEVS Namespace for Interoperable DEVS/SOA
Chungman SeoBernard P. Zeigler
Arizona Center for Integrative Modeling and SimulationThe University of Arizona
Outline Motivation of the study Objectives Background Design of interoperable DEVS simulation environment Implementation of interoperable DEVS simulation
environment Track Display Application HLA vs. SOA support for DEVS interoperability Conclusions Future work
The Problem DEVS simulators implement the DEVS modeling formalism in diverse
programming environments, e.g. DEVSJAVA, ADEVS, CD++, DEVSim++, PythonDEVS
The DEVS formalism specifies the same abstract simulator algorithm for any simulator
Different simulators implement the same abstract simulator using different codes
This situation inhibits interoperating DEVS simulators prevents simulation of heterogeneous models
Each simulator can not provide platform-neutral message passing
The Need for Interoperability Different platforms specialize in different capabilities, e.g., C++
supports fast execution, but JAVA provides a better platform for web service development
In our applications at JITC, ADEVS based on C++ is employed for radar track generation while DEVSJAVA is used for track display
Reusability of Models increases through interoperability System of Systems (SoS) requires interoperability to compose new
systems from existing systems Interoperability requires well-defined interfaces to use systems in
different platforms or languages Web services, HLA, and CORBA provide communication channels
between software systems with different platforms
DEVS Standardization Supports Higher Level Web-Centric Interoperability
Prior Work Mittal and Rico developed DEVS/SOA
it employs JAVA serialization to code messages into byte array this restricts interoperation to simulators based on JAVA, e.g.
DEVSJAVA, and XDEVS It does not use DEVS namespace
Taekyu Kim extended DEVS/SOA to run in real time but did not address interoperability
Moath Jarrah developed a Negotiation Model and simulated it on DEVS/SOA but did not implement it in web services
Objectives To design and implement interoperable DEVS Simulation
environment using SOA and DEVS namespace To manage DEVS namespace for interoperable DEVS
Simulation environment To implement neutral message passing between different
DEVS simulation environments To show implementation of layered interoperability
concept Platforms and languages neutral DEVS simulation
environment using SOA
Background - DEVS Modeling and Simulation Framework
Set theory based system specification formalism
Atomic model : lowest level model, contains structural dynamics
Coupled model : composed of one or more atomic and / or coupled -> hierarchical construction
Basic Parallel DEVS Model:M = <X, Y, S, δint, δext, δcon, λ ta> X : set of input events Y : set of output events S : set of states δint : internal transition function δext :external transition function δcon : confluent function λ : output function ta : time advance function
Time base is logical time
Background - SOA (Service-Oriented Architecture)
An architectural approach to build software application that use services available in a network
Registry
Service Consumer Service Provider
RegisterFind
Bind & invoke
Contract
SOA’s Find-bind-execute paradigm
Language and platform independent =>separation of specification and implementation
Loosely coupled => message based, synchronous and asynchronous
interactions. Over the Internet =>
No centralized control, use of established protocols, security considerations.
Inter-operable =>Standards based.
Transport protocol HTTP/HTTPS
Data Encoding SOAP (Simple Object Access Protocol), XML Schema
Interface Description WSDL (Web Services Description Language)
Service Description and Discovery UDDI (Universal Description, Discovery and Integration)
Security WS-Security, XML-Signature, XML-Encryption, ...
Web Service
Overall System of Interoperable DEVS Simulator Services with DEVS namespace
DEVS Simulator
Service
CommonInterface(WSDL)
CommonInterface(WSDL)
OS 1 / Language 1
DEVS Name Space
Use DEVS message types
Register DEVS message types
DEVS Simulator Services Integration/Execution
Use DEVS message types
Simulationprotocol
Simulationprotocol
DEVS Simulator
Service
OS 2 / Language 2
Schema Schema
Service Provider 1
Service Provider 2
Web service
Web service
user
Web Server 1 Web Server 2
Web-enabled interoperability of DEVS components
DEVS namespace Network accessible schema document Storage for types of messages which
are used in DEVS models A unique element name in the DEVS
namespace Register and extract domain specific
schema through a web service Supports re-use, composability, and
interoperability
<xsd:schema xmlns:ns0="http://devs.service" xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://devs.service"><xsd:element name="EFP">
<xsd:complexType><xsd:sequence>
<xsd:element name="Job" type="ns0:Job"/></xsd:sequence>
</xsd:complexType></xsd:element><xsd:complexType name="Job">
<xsd:sequence><xsd:element name="id" type="xsd:int"/><xsd:element name="time" type="xsd:double"/>
</xsd:sequence></xsd:complexType><xsd:complexType name="TrackData">
<xsd:sequence><xsd:element name="xposition" type="xsd:double"/><xsd:element name="yposition" type="xsd:double"/><xsd:element name="heading" type="xsd:double"/>
</xsd:sequence></xsd:complexType><xsd:element name="TrackGenerator">
<xsd:complexType><xsd:sequence>
<xsd:element name="TrackData" type="ns0:TrackData"/></xsd:sequence>
</xsd:complexType></xsd:element></xsd:schema>
The Structure of DEVS Simulator Service
DEVS Web Service operations
DEVS Interface
DEVS Modeling & Simulation
Web Service Middleware (AXIS2 or .Net)• Manage Networking and SOAP
• Implement DEVS M&S with variousLanguages ( Java, C++, Python, Matlab)
• Link between DEVS M&S and WS operations• Convert DEVS message to XML message
• Web Service displayed to clients
The operations of DEVS simulator service
DEVS Simulation protocol operations
Schema location and Message type operations
Reporting function operations
void getSimulator(boolean)void initialize(double)double getTN()void lambda (double)String getOutput()void receiveInput(String,String,String)void deltfcn(double)void addCoupling(String,String,String)void exit()
String getSchemaInfo()String getType(String)String[ ] getInports()String[ ] getOutports()
String getConsole(String)String getResult()
DEVS message to XML message
DEVS message consists of a port/value pairs Implementation of DEVS message is
different in different DEVS implementations DEVSJAVA : employs a message class
for DEVS message ADEVS : PortValue class is used for
ADEVS message
<Message> <content> <port>out</port> <entity> <class>Job</class> <id type=”int”>9</id> <time type=”double”>0.0</time> </entity> </content> <content>...</Message>
XML message
XML Message
SOAP
Web Sevice MiddlewareDEVS Message / XML
Message ConvertorXML MessageDEVS Message
Web ServiceDEVS M&S DEVS Interface NetWork
DeSerialize XML to DEVS
Serialize DEVS to XML
Track Display Application Shows interoperability between DEVS models in
different implementation languages Consists of a TrackDisplay model and
TrackGenerator models The TrackGenerators generate time indexed
TrackData behavior The TrackDisplay has a capability of displaying
track data in GUI Uses a message type called TrackData consisting
of four variablesid : int xposition : double yposition : doubleheading : double
DEVSJAVATrackGenerator 1
ModelCoordinator
IP NetworkIP Network
AXIS2 environmentApache web server TrackDisplay for web service using AXIS2
ADEVSTrackGenerator 2
Model
.Net environmentMicrosoft web server
Virtual TimeSimulation
SOAPmessages
SOAPmessages
SOAPmessages
HLA vs. SOA support for DEVS interoperability
DEVSsimHLA Interoperable DEVS/SOA
Platform/Language interoperability
Support Support
Neutral Message passing No Support
Middleware interoperability
Possible using a HLA bridge
Support
Linguistic levels of interoperability
Support 2 levels (syntactic and semantic)
Support all levels (syntactic, semantic, and pragmatic)
Conclusions Designed and Implemented an interoperable
DEVS Simulator services with DEVS namespace Applied to DEVSJAVA and ADEVS
Developed the web service for handling DEVS namespace to provide semantic level interoperability between DEVS simulator services
Implemented the platform-neutral message passing on the interoperable DEVS Simulation environment
Future Work
Design/Implement pragmatic level interoperability
Apply interoperable DEVS simulator service to the other DEVS implementations (DEVS python, DEVS Matlab, and so on)
Add more functions to the web service for handling the DEVS namespace
Extend the platform-neutral message passing to support complex message types
Thank you
Implement the DEVS namespace
Provider
DEVSNamespace
Register GUI
User
Browsing GUI
Web Service for DEVS namespace
Schema 1
Schema3
Schema2
Example of Registration /Extraction of DEVS message
Domain : EFPMessage type : JobVariable : id type : intVariable : time type : double
Web Service Operation
Web Service Operation
Web Service
Operation
Web Service
Operation
Registration Extraction
DEVS simulator service for DEVSJAVA
DEVSJAVA Modeling & Simulation DEVSJAVA interface between
operations and DEVSJAVA simulator
DEVSJAVA message to XML message
AXIS2 to generate a DEVS simulator service
Java based web service on Apache tomcat server
Simulator classes for virtual time and real time simulations A Atomic class contains DEVS atomic or coupled model using a
Digraph2Atomic class A Digraph2Atomic class which pretends to be an atomic model to follow
DEVS protocol during simulation of interoperable DEVS simulator services A XMLObjectMessageHandler class to convert DEVSJAVA message to XML
message vice versa
Message
port
Content
Entity
Job
id
timeContent
The Structure of DEVSJAVA message
<Message> <content> <port>out</port> <entity> <class>Job</class> <id type=”int”>9</id> <time type=”double”>0.0</time> </entity> </content> <content>...</Message>
XMLObjectMessageHandler
XML Document for DEVSJAVA message
DEVS Interface
DEVS simulator service for ADEVS ADEVS modeling and
simulation ADEVS interface between
operations and ADEVS simulator
ADEVS message converter .Net to generate a DEVS
simulator service C++ based web service on
Microsoft web server
adevs_models.hadevs_digraph.hadevs_simpledigraph.hadevs_wrapper.h
adevs_simulator.hadevs_sched.h
adevs_bag.hadevs_set.hobject_pool.h
Modeling API Container APISimulation API
ADEVS API
ADEVS Library
Bag
PortValue
type
value
port
Job
id
time
PortValue
<Message> <content> <port>1</port> <entity> <class>Job</class> <id type=”int”>9</id> <time type=”double”>0.0</time> </entity> </content> <content>..</Message>
XML Document for ADEVS messageThe Structure of ADEVS
message
MessageConverting
ADEVS Interface simulator string converter of C++ to VC++ vice versa ADEVS message converter
ADEVS Interface