DEVS Namespace for Interoperable DEVS/SOA Chungman Seo Bernard P. Zeigler Arizona Center for Integrative Modeling and Simulation The 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) 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, ... An architectural approach to build software application that use services available in a network Web Service
Overall System of Interoperable DEVS Simulator Services with DEVS namespace
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
The Structure of DEVS Simulator Service Web Service displayed to clients Link between DEVS M&S and WS operations Convert DEVS message to XML message Implement DEVS M&S with various Languages ( Java, C++, Python, Matlab) Manage Networking and SOAP
The operations of DEVS simulator service
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 XML message
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 variables id : int xposition : double yposition : double heading : double Coordinator DEVSJAVA TrackGenerator 1 Model ADEVS TrackGenerator 2 Model Virtual Time Simulation AXIS2 environment Apache web server .Net environment Microsoft web server TrackDisplay for web service using AXIS2 SOAP messages SOAP messages SOAP messages IP Network
HLA vs. SOA support for DEVS interoperability DEVSsimHLA Interoperable DEVS/SOA Platform/Language interoperability Support Neutral Message passing No Middleware interoperability Possible using a HLA bridge 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 21
Example of Registration /Extraction of DEVS message Web Service Operation Web Service Operation Web Service Operation Web Service Operation Registration Extraction 22
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 DEVS Interface 23
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 Library ADEVS Interface simulator string converter of C++ to VC++ vice versa ADEVS message converter ADEVS Interface 24