devs namespace for interoperable devs/soa

24
DEVS Namespace for Interoperable DEVS/SOA Chungman Seo Bernard P. Zeigler Arizona Center for Integrative Modeling and Simulation The University of Arizona

Upload: zubin67

Post on 05-Dec-2014

631 views

Category:

Documents


6 download

DESCRIPTION

 

TRANSCRIPT

Page 1: DEVS Namespace for Interoperable DEVS/SOA

DEVS Namespace for Interoperable DEVS/SOA

Chungman SeoBernard P. Zeigler

Arizona Center for Integrative Modeling and SimulationThe University of Arizona

Page 2: DEVS Namespace for Interoperable DEVS/SOA

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

Page 3: DEVS Namespace for Interoperable DEVS/SOA

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

Page 4: DEVS Namespace for Interoperable DEVS/SOA

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

Page 5: DEVS Namespace for Interoperable DEVS/SOA

DEVS Standardization Supports Higher Level Web-Centric Interoperability

Page 6: DEVS Namespace for Interoperable DEVS/SOA

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

Page 7: DEVS Namespace for Interoperable DEVS/SOA

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

Page 8: DEVS Namespace for Interoperable DEVS/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

Page 9: DEVS Namespace for Interoperable DEVS/SOA

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

Page 10: DEVS Namespace for Interoperable DEVS/SOA

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

Page 11: DEVS Namespace for Interoperable DEVS/SOA

Web-enabled interoperability of DEVS components

Page 12: DEVS Namespace for Interoperable DEVS/SOA

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>

Page 13: DEVS Namespace for Interoperable DEVS/SOA

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

Page 14: DEVS Namespace for Interoperable DEVS/SOA

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()

Page 15: DEVS Namespace for Interoperable DEVS/SOA

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

Page 16: DEVS Namespace for Interoperable DEVS/SOA

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

Page 17: DEVS Namespace for Interoperable DEVS/SOA

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)

Page 18: DEVS Namespace for Interoperable DEVS/SOA

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

Page 19: DEVS Namespace for Interoperable DEVS/SOA

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

Page 20: DEVS Namespace for Interoperable DEVS/SOA

Thank you

Page 21: DEVS Namespace for Interoperable DEVS/SOA

Implement the DEVS namespace

Provider

DEVSNamespace

Register GUI

User

Browsing GUI

Web Service for DEVS namespace

Schema 1

Schema3

Schema2

Page 22: DEVS Namespace for Interoperable DEVS/SOA

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

Page 23: DEVS Namespace for Interoperable DEVS/SOA

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

Page 24: DEVS Namespace for Interoperable DEVS/SOA

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