SlideShare uma empresa Scribd logo
1 de 39
March 3-7, 2008
                                 Marseille, France




 A Layered Architecture for the
 Model-driven Development of
     Distributed Simulators
      Daniele Gianni*          Andrea D’Ambrogio#       Giuseppe Iazeolla#



(*) Dept. of Electrical & Electronic Eng.   (#) Dept. of Computer Science
    Imperial College London                     University of Roma “Tor Vergata”
    London (UK)                                 Roma (Italy)
Overview
 Motivations
 Definition of SimArch
  • Layers, Service Interfaces and Data Interfaces

 Example implementation of a SimArch-based
  simulation language
  • jEQN

 Application to the model-driven development
  of a distributed simulator
                       SIMUTools'08                  2
Motivations
 The development of distributed simulators generally
  requires more effort and know-how compared to
  centralized (local) simulators
 Only reusability and interoperability aspects have been
  addressed by distributed simulation approaches
 Adaptability aspects (how to switch from local to
  distributed simulation) have not been addressed
 The proposed layered architecture exploits model-driven
  development to allow the simulation developer to
  abstract from the execution environment and to deal
  only with the definition of the hi-level simulation model


                          SIMUTools'08                        3
SimArch
 A layered architecture to enable the model-
  driven development of distributed simulators:
  • transparent deployment of simulation
    components in either a local or a distributed
    environment
  • transparent introduction/modification of the
    layers’ implementation to meet additional/specific
    requirements
  • definition of custom (domain-specific) simulation
    languages on top of the layered architecture

                       SIMUTools'08                      4
SimArch Main Characteristics
 Based on the process interaction paradigm

 Composed of four layers

 Based on the definition of:
  • Service interfaces

  • Data interfaces

  • Factory interfaces for component instantiation


                         SIMUTools'08                5
Process Interaction Paradigm

     ev2

                                Key
            E2
      ev1
                                Entity
E1                              Input Port
      ev3                       Output Port
            E3
                                Link/Event    ev
     ev4




                 SIMUTools'08                      6
Simulation Model Layer       Layer 4




                          Simulation Components
                                                         Layer 3
                                   Layer


                         Discrete Event Simulation
                               Service Layer             Layer 2




SimArch                      Distributed Discrete
                            Event Simulation Layer       Layer 1




 Layers                     Distributed Computing
                                 Infrastructure          Layer 0




          CORBA
                                                                   DIS
                Grid               WS                HLA

          General Purpose
                                                     Simulation Oriented

                 SIMUTools'08                                              7
SimArch Service Interfaces
                (layers 12)
                        «interface»
                     Layer2ToLayer1
  +initDistributedSimulationInfrastructure()
  +postProcessingDistributedSimulationInfrastructure()
  +sendEvent(in event : Event)
  +waitNextDistributedEvent()
  +waitNextDistributedEventBeforeTime(in time : Time)


                       «interface»
                   Layer1ToLayer2
       +scheduleEvent(in event : Event)
       +scheduleSimulationEndEvent(in time : Time)




                         SIMUTools'08                    8
SimArch Service Interfaces
                                             (layers 23)
                            «interface»                                                     «interface»
                         Layer3ToLayer2                                                   Layer2ToLayer3
  +getUserInterface() : Layer3toLayer2UserInterface
                                                                              +body()
  +getDeveloperInterface() : Layer3ToLayer2DeveloperInterface
                                                                              +getId() : Integer
                                                                              +getEntityName() : Name
                                                                              +printStatistics()
                                                                              +setEventReceived()
                                                                              +setReceivedEvent(in event : Event)
                                                                              +setId(in id : Integer)
                                                                              +setSystemName(in name : Name)

               «interface»                                                       «interface»
    Layer3toLayer2UserInterface                                  Layer3ToLayer2DeveloperInterface
+registerEntity(in entity : GeneralEntity)    +getClock() : Time
+start()                                      +waitNextEvent()
                                              +hold(in time : Time)
                                              +holdUnlessIncomingEvent(in time : Time) : Boolean
                                              +send(in entity : Entity, in delay : Time, in tag : Enum, in data : Object)
                                              +send(in port : OutputPort, in delay : Time, in tag : Enum, in data : Object)
                                              +send(in recipient : Name, in delay : Time, in tag : Enum, in data : Object)



                                                     SIMUTools'08                                                       9
SimArch Data Interfaces (1/2)
                         «interface»
                             Link
      +getInputPorts() : List of InputPort
      +getOutputPorts() : List of OutputPort
      +isAllowedToSendThroughThisLink() : Boolean


                                                                     «interface»
                                                                   GeneralEntity
                                                             +getEntityId() : Integer
                                                             +getEntityName() : Name
              «interface»                                    +getFullName() : Name
                   Port                                      +getSystemName() : Name
                                                             +isLocal() : Boolean
      +getOwner() : GeneralEntity
      +getLink() : Link




«interface»                  «interface»               «interface»              «interface»
InputPort                    OutputPort            ComponentLevelEntity        RemoteEntity




                                           SIMUTools'08                                       10
SimArch Data Interfaces (2/2)

                  «interface»
                                                                  «interface»
                 Comparable
                                                                     Event
                                                        +getData() : Object
                                                        +getRecipient() : GeneralEntity
                  «interface»                           +getRecipientName() : Name
                     Time                               +getSender() : GeneralEntity
+decreaseBy()                                           +getSenderName() : Name
+decreasedBy(in time : Time) : Time                     +getTag() : Enum
+getValue() : Double                                    +getTime() : Time
+increaseBy(in time : Time)
+increasedBy(in time : Time) : Time
+isEqualTo(in time : Time) : Boolean                              «interface»
+isGreaterOrEqualThan(in time : Time) : Boolean                      Name
+isGreaterThan(in time : Time) : Boolean                  +getValue() : String
+isLesserOrEqualThan(in time : Time) : Boolean            +setValue(in name : String)
+isLesserThan(in time : Time) : Boolean
+setValue(in time : Double)




                                         SIMUTools'08                                     11
SimArch implementation status
 Layer 1
  • DDESoverHLA library: provides a DES
    abstraction on top of HLA
 Layer 2
  • SimJ library: provides generic simulation
    components
 Layer 3
  • jEQN library: provides the primitives for
    defining EQN simulation models

                      SIMUTools'08              12
jEQN
A Domain-Specific Language
    for the simulation of
Extended Queueing Networks



           SIMUTools'08      13
Domain Specific Language (DSL)
 Programming language
 Domain-specificity
 Increased expressiveness (decreased
  generality)
 Ease-of-use
 Reduced domain and programming
  expertise
 Verificability and transformability
 Declarative
 Enabler of reuse
                  SIMUTools'08          14
jEQN: a DSL for EQNs
 Based on:
  • Domain analysis of EQN models
  • Declarative approach (specify what to simulate
    rather then how to simulate)
 Used to:
  • Reduce the semantic gap between the model
    specification and the corresponding simulation
    program
 Composed of:
  • Simulation services defined by SimArch
  • Set of EQN simulation components
  • Set of parameters for the components
                       SIMUTools'08                  15
jEQN Simulation Components
 Derived from EQN domain analysis
 6 groups:
  •   user sources
  •   waiting systems
  •   service centers
  •   routers
  •   special nodes
  •   support components



                      SIMUTools'08   16
jEQN Parameters
 Design guidelines:
  • Decouple jEQN simulation components from
    the parameters that do not affect the
    simulation logic

  • Flexible parameter structure to allow the
    incorporation of additional parameter types



                       SIMUTools'08               17
Example candidate parameters
• For user source components:
    termination condition
    interarrival time
    user generation
• For waiting system components:
      preemptive waiting systems
      preemption policy
      queue structure
      service request generator
      enqueueing and dequeuing policy
                   SIMUTools'08          18
Categories of Parameters
1. Parameters used to take decisions
  • routing policy, enqueueing policy

2. Parameters that provide sequence of
  values
  • interarrival times, service request times
    (incorporating jRand)

3. Parameters that provide storage support
  • queues
                      SIMUTools'08              19
Category-1 parameters
• Organized around four variables:
   T: the decision data
   I: the input data
   S: the state data
   D: the type of decision


• According to the use of such variables, for
  example:
   StateOnlyDecisionPolicy
   InputOnlyDecisionPolicy


                      SIMUTools'08              20
Category-1 parameters
                                                                                                 «interface»
                                                                                                   Policy




                                                         «interface»                                                                            «interface»
                                                        InputPolicy                                                                           StatePolicy<S>
                                                                                                                                             +getDecision() : D
                                                                                                                                             +getState() : S
                                                                                                                                             +setState(in s : S)

                  «interface»
            ImplicitInputPolicy<I>                                                             «interface»                             «interface»
                                                                             ExplicitInputPolicy<T extends DecisionData,          InputAndStatePolicy
            +getImplicitInput() : I                                                                  D>                                                   StateOnlyDependentPolicy<S, D>
            +setImplicitInput(in i : I)
                                                                             +getDecisionFor(in t : T) : D                                                -state : S
                                                                                                                                                          +getDecision() : D


            «interface»                   ImplicitAndExplicitInputDependentPolicy<I,              ExplicitInputOnlyDependentPolicy<T,D>
ImplicitButNotExplicitPolicy<I,D>                             T,D>
+getDecisionFor() : D                     -implicitInput : I




     ImplicitButNotExplicitInputDependentPolicy<
                         I,D>                                          ImplicitAndExplicitInputAndStateDependentPolicy<
     -implicitInput : I                                                                      I,S,T,D>
     +getDecision() : D                                                -state : S
     +getImplicitInput() : I
     +setImplicitInput(in i : I)



   ImplicitButNotExplicitInputAndStateDependentPolicy<
                            I,S,D>
   -state : S
   +getState() : S
   +setState(in s : S)




                                                                                           SIMUTools'08                                                                                    21
Category-3 parameters
                                                «interface»
                                                UserQueue                                                                  MaskBasePolicy<?,?,?,UserQueue>
                                +getNumberOfUserEnqueued() : Integer                                                   *




                                                                                                                                                                         -userWithdrawer
                                +insert(in u : User)                                                                                                                                       1
                           1
                                +extract() : User


       1                                                                                                                                                             1                     1

FiniteUserQueue                             InfiniteUserQueue                                                                            MultiUserQueue

                                                                                                                                            1




                                                                                                                                                -queueAssigner
      1                                                                          1




                                                                                     -decisionDataFactory
                                            1


                                                -queue
                                                         1




                                                             -enqueueingPolicy
     «interface»
    java.util.List
                     1                                                                                                                      1
                                                                                                                                    1
MaskBasePolicy<?,?,UserBasedDecisionData,                                                                                                QueueAssigner
                Integer>                                                                                          -decisionDataFactory
                                                                                 1                          1
                                                                                                                                            1




                                                                                                                                                -dispatchingPolicy
                                       UserBasedDecisionDataFactory



                                                                                                                                            1

                                                                                                                MaskBasePolicy<?,?,UserBasedDecisionData,
                                                                                                                              UserQueue>



                                                                                 SIMUTools'08                                                                                                  22
Model-driven Development of
   Distributed Simulators

     Example Application




            SIMUTools'08      23
The Catenet System

                 Host A


                LAN1 (token ring)




                          WAN
                                                                     Host B
          GW1                                GW2

                                                   LAN2 (ethernet)

catenet




                                    SIMUTools'08                              24
EQN Model
                                                (high-level)
                                                                                                            catenet

                 GET




                                     TCP
 Source                                                   LAN1           LLC/
                                                                                      GW1




                                           IP
           TCP           TCP                       IP
(Host A)                                                                MAC802.5

                                      Host A




                                                                                                     X.25
                                  network layers




                                                              WAN
                         X.25




                                                                                       Host B
                                                                                   network layers
                                                                                                          RELEASE
                                                                                                                            Sink




                                                                                            TCP
                                                    LLC/




                                                                                       IP
                                     GW2           MAC802.3
                                                                 LAN2        IP                     TCP             TCP
                                                                                                                          (Host B)


                                Window
                                Size C
                 Token
                  Pool




                                                         SIMUTools'08                                                                25
EQN Model
                                                  (LAN1 details)


                           Msg


                                            Tok


?

    createMsg   allocMsg         allocTok         getToken   setSender       transfrm   putToken   relTok   decrfrm   routing   destrMsg




                                                                    SIMUTools'08                                                           26
Model-driven Development (1/3)
 Direct mapping between EQN model
 entities and SimArch/jEQN

 SimArch statements: environment set-up,
 connections between jEQN components

 jEQN components: model entities and
 their parameters

                    SIMUTools'08            27
Model-driven Development (2/3)
 EQN model entities and jEQN components:
      Service Center  jEQN Service Center
      Waiting System  jEQN Waiting System
      Passive Queue (Pool of Tokens, Activate and Release
       Nodes)  jEQN Special Nodes

 EQN entity properties and parameters (to be set at
  instantiation time) of jEQN components:
      Enqueueing policy: FIFO
      Service Time: Normal Stream
      Operation: setSender (for setSender node)

                          SIMUTools'08                       28
Model-driven Development (3/3)
   Extra jEQN components for the routing
    information (implicitly included in the EQN
    model)
   Parameterization of jEQN components
    according to the model properties (service
    time, enqueueing policy, routing policy, etc.)




                       SIMUTools'08                  29
Example Derivation of
Simulator Code from the Model (1/2)




               SIMUTools'08           30
Example Derivation of
Simulator Code from the Model (2/2)




                                    jRand




                                  jEQN
                                 Policy
                               Framework


               SIMUTools'08                 31
Local Simulator Development
1. Instantiate a Layer 2 implementation
  (Execution Container)

2. Declare and define jEQN components
  according to the previous guidelines

3. Connect components

4. Activate the execution container
                   SIMUTools'08           32
From Local to Distributed
1. Partition the model

2. Configure Layer1 components (e.g.
  FederationManager, with, e.g., number
  of simulators, lookahead, etc.)

3. Code each simulator (federate)


                    SIMUTools'08          33
Model Partitioning

Submodel 0
                    Host A


                   LAN1 (token ring)




                                WAN                   Submodel 2
                                                                         Host B
             GW1   Submodel 1
                                               GW2

                                                       LAN2 (ethernet)




                                       SIMUTools'08                               34
Coding the distributed simulator
1. Instantiation of a distributed implementation of Layer 2,
   which in turns requires Layer 1
2. Declaration and definition of jEQN components
   1. Local: as in the local simulator
   2. Remote: use of SimArch RemoteEntity
3. Connection between jEQN components
   1. Local-Local: as in the local simulator
   2. Local-Remote: similarly to local connection, with a
      local proxy for the RemoteEntity
4. Activation of the execution container

                           SIMUTools'08                        35
Simulators deployment
         US - Georgia                                                                  Italy


                                                                                                jEQN
                                                                                              Simulator



                                                                                                                                jEQN
                                                                                          SimArch                             Simulator



                                    HLA over IIOP                                             CORBA-HLA
                                                                                                Client
                                                                                                                       SimArch
           GATech's                                                                                                           CORBA -HLA
                                                                                                                                                      jEQN
                                                                                                                                                    Simulator

             LAN                                       WAN                                         Camerino
                                                                                                                                 Client




                                                                                 HLA over IIOP                                               SimArch

                                                                                                              Ascoli                                CORBA -HLA
                                                                                                                                                       Client
                   Ge orgia Te ch
                                                                                                                HLA o
                                                                                                                      ve   r IIOP
                                                                                          TorVe rgata
                                                                                           CORBA RTI Server


      CORBA-HLA
        Client                                                                                                                             Le cce

 SimArch

         jEQ N
       Simulator




                                                                                                          SimLab




Key

        Federate
                                                                   CORBA-HLA             CORBA-HLA                CORBA-HLA
                                                                     Client                Client                   Client
        IIOP protocol
                                                                                                                                           Server
        Pitch protocol over TCP and UDP                                                                                                                          Executive
                                                                    Federation
                                                                     Manager          SimArch                 SimArch
        pRTI 1516
                                                                                            jEQ N                    jEQ N
                                                                                          Simulator                Simulator               Local



        CORBA + CORBA-HLA


                                                    SIMUTools'08                                                                                                             36
Simulator Validation
 Local simulator




                    SIMUTools'08   37
Simulator Validation
 Distributed simulator
                    End-to-end delay [s]
   Time [s]

    100
     90
     80
     70
     60                                            C=4
     50                                            C=7
     40                                            C=12
     30
     20
     10
      0
          0     1     2              3     4   5

                     lambda [packets/s]




                          SIMUTools'08                    38
Conclusions
 SimArch eases the development of
  distributed simulators by introducing a set
  of layered abstract simulation services on
  top of the distributed environment
 SimArch advantages:
  • Reduces development effort and time
  • Does not need specialized distributed
    simulation skills
  • Facilitates the introduction of simulation
    languages as DSLs (e.g., jEQN)
                       SIMUTools'08              39

Mais conteúdo relacionado

Mais procurados

Java concurrency begining
Java concurrency   beginingJava concurrency   begining
Java concurrency beginingmaksym220889
 
Design patterns
Design patternsDesign patterns
Design patternsBa Tran
 
Qt Memory Management & Signal and Slots
Qt Memory Management & Signal and SlotsQt Memory Management & Signal and Slots
Qt Memory Management & Signal and SlotsJussi Pohjolainen
 
Chapter i(introduction to java)
Chapter i(introduction to java)Chapter i(introduction to java)
Chapter i(introduction to java)Chhom Karath
 
Java_practical_handbook
Java_practical_handbookJava_practical_handbook
Java_practical_handbookManusha Dilan
 
Max Koretskyi "Why are Angular and React so fast?"
Max Koretskyi "Why are Angular and React so fast?"Max Koretskyi "Why are Angular and React so fast?"
Max Koretskyi "Why are Angular and React so fast?"Fwdays
 
Aho-Corasick string matching algorithm
Aho-Corasick string matching algorithmAho-Corasick string matching algorithm
Aho-Corasick string matching algorithmTakatoshi Kondo
 
Oxygine 2 d objects,events,debug and resources
Oxygine 2 d objects,events,debug and resourcesOxygine 2 d objects,events,debug and resources
Oxygine 2 d objects,events,debug and resourcescorehard_by
 
JSUG - Effective Java Puzzlers by Christoph Pickl
JSUG - Effective Java Puzzlers by Christoph PicklJSUG - Effective Java Puzzlers by Christoph Pickl
JSUG - Effective Java Puzzlers by Christoph PicklChristoph Pickl
 
Collection frame work
Collection  frame workCollection  frame work
Collection frame workRahul Kolluri
 
Les nouveautés de C# 6
Les nouveautés de C# 6Les nouveautés de C# 6
Les nouveautés de C# 6Microsoft
 
Talk - Query monad
Talk - Query monad Talk - Query monad
Talk - Query monad Fabernovel
 
Java весна 2013 лекция 2
Java весна 2013 лекция 2Java весна 2013 лекция 2
Java весна 2013 лекция 2Technopark
 

Mais procurados (20)

Java concurrency begining
Java concurrency   beginingJava concurrency   begining
Java concurrency begining
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Qt Memory Management & Signal and Slots
Qt Memory Management & Signal and SlotsQt Memory Management & Signal and Slots
Qt Memory Management & Signal and Slots
 
E:\Plp 2009 2\Plp 9
E:\Plp 2009 2\Plp 9E:\Plp 2009 2\Plp 9
E:\Plp 2009 2\Plp 9
 
Chapter i(introduction to java)
Chapter i(introduction to java)Chapter i(introduction to java)
Chapter i(introduction to java)
 
OpenXR 0.90 Overview Guide
OpenXR 0.90 Overview GuideOpenXR 0.90 Overview Guide
OpenXR 0.90 Overview Guide
 
Using the Windows 8 Runtime from C++
Using the Windows 8 Runtime from C++Using the Windows 8 Runtime from C++
Using the Windows 8 Runtime from C++
 
Java_practical_handbook
Java_practical_handbookJava_practical_handbook
Java_practical_handbook
 
DDS-20m
DDS-20mDDS-20m
DDS-20m
 
Max Koretskyi "Why are Angular and React so fast?"
Max Koretskyi "Why are Angular and React so fast?"Max Koretskyi "Why are Angular and React so fast?"
Max Koretskyi "Why are Angular and React so fast?"
 
Aho-Corasick string matching algorithm
Aho-Corasick string matching algorithmAho-Corasick string matching algorithm
Aho-Corasick string matching algorithm
 
Thread
ThreadThread
Thread
 
Python material
Python materialPython material
Python material
 
Oxygine 2 d objects,events,debug and resources
Oxygine 2 d objects,events,debug and resourcesOxygine 2 d objects,events,debug and resources
Oxygine 2 d objects,events,debug and resources
 
JSUG - Effective Java Puzzlers by Christoph Pickl
JSUG - Effective Java Puzzlers by Christoph PicklJSUG - Effective Java Puzzlers by Christoph Pickl
JSUG - Effective Java Puzzlers by Christoph Pickl
 
Qe Reference
Qe ReferenceQe Reference
Qe Reference
 
Collection frame work
Collection  frame workCollection  frame work
Collection frame work
 
Les nouveautés de C# 6
Les nouveautés de C# 6Les nouveautés de C# 6
Les nouveautés de C# 6
 
Talk - Query monad
Talk - Query monad Talk - Query monad
Talk - Query monad
 
Java весна 2013 лекция 2
Java весна 2013 лекция 2Java весна 2013 лекция 2
Java весна 2013 лекция 2
 

Destaque

Bug deBug Chennai 2012 Talk - Test automation support systems layered archite...
Bug deBug Chennai 2012 Talk - Test automation support systems layered archite...Bug deBug Chennai 2012 Talk - Test automation support systems layered archite...
Bug deBug Chennai 2012 Talk - Test automation support systems layered archite...RIA RUI Society
 
Agile Entwicklung OXID Commons
Agile Entwicklung OXID CommonsAgile Entwicklung OXID Commons
Agile Entwicklung OXID CommonsLars Jankowfsky
 
Introduction to architectural patterns
Introduction to architectural patternsIntroduction to architectural patterns
Introduction to architectural patternsGeorgy Podsvetov
 
Rich Model And Layered Architecture in SF2 Application
Rich Model And Layered Architecture in SF2 ApplicationRich Model And Layered Architecture in SF2 Application
Rich Model And Layered Architecture in SF2 ApplicationKirill Chebunin
 
Layered Architecture 03 Format
Layered Architecture 03 FormatLayered Architecture 03 Format
Layered Architecture 03 Formatanishgoel
 
Soa Overview
Soa OverviewSoa Overview
Soa OverviewTerry Cho
 
Why Architecture in Web Development matters
Why Architecture in Web Development mattersWhy Architecture in Web Development matters
Why Architecture in Web Development mattersLars Jankowfsky
 
N-Tier, Layered Design, SOA
N-Tier, Layered Design, SOAN-Tier, Layered Design, SOA
N-Tier, Layered Design, SOASperasoft
 
Software engineering : Layered Architecture
Software engineering : Layered ArchitectureSoftware engineering : Layered Architecture
Software engineering : Layered ArchitectureMuhammed Afsal Villan
 
Software Engineering - Ch11
Software Engineering - Ch11Software Engineering - Ch11
Software Engineering - Ch11Siddharth Ayer
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture PatternsAssaf Gannon
 
Layered architecture style
Layered architecture styleLayered architecture style
Layered architecture styleBegench Suhanov
 
Software Architecture and Design - An Overview
Software Architecture and Design - An OverviewSoftware Architecture and Design - An Overview
Software Architecture and Design - An OverviewOliver Stadie
 
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Svetlin Nakov
 
Three Software Architecture Styles
Three Software Architecture StylesThree Software Architecture Styles
Three Software Architecture StylesJorgen Thelin
 

Destaque (20)

البريزنتيشن
البريزنتيشنالبريزنتيشن
البريزنتيشن
 
Bug deBug Chennai 2012 Talk - Test automation support systems layered archite...
Bug deBug Chennai 2012 Talk - Test automation support systems layered archite...Bug deBug Chennai 2012 Talk - Test automation support systems layered archite...
Bug deBug Chennai 2012 Talk - Test automation support systems layered archite...
 
Agile Entwicklung OXID Commons
Agile Entwicklung OXID CommonsAgile Entwicklung OXID Commons
Agile Entwicklung OXID Commons
 
Introduction to architectural patterns
Introduction to architectural patternsIntroduction to architectural patterns
Introduction to architectural patterns
 
Rich Model And Layered Architecture in SF2 Application
Rich Model And Layered Architecture in SF2 ApplicationRich Model And Layered Architecture in SF2 Application
Rich Model And Layered Architecture in SF2 Application
 
Layered Architecture 03 Format
Layered Architecture 03 FormatLayered Architecture 03 Format
Layered Architecture 03 Format
 
Soa Overview
Soa OverviewSoa Overview
Soa Overview
 
Osi Model
Osi ModelOsi Model
Osi Model
 
Why Architecture in Web Development matters
Why Architecture in Web Development mattersWhy Architecture in Web Development matters
Why Architecture in Web Development matters
 
N-Tier, Layered Design, SOA
N-Tier, Layered Design, SOAN-Tier, Layered Design, SOA
N-Tier, Layered Design, SOA
 
Software engineering : Layered Architecture
Software engineering : Layered ArchitectureSoftware engineering : Layered Architecture
Software engineering : Layered Architecture
 
Software Engineering - Ch11
Software Engineering - Ch11Software Engineering - Ch11
Software Engineering - Ch11
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture Patterns
 
Layered architecture style
Layered architecture styleLayered architecture style
Layered architecture style
 
Ch6 architectural design
Ch6 architectural designCh6 architectural design
Ch6 architectural design
 
Layered Architecture
Layered ArchitectureLayered Architecture
Layered Architecture
 
Software Architecture and Design - An Overview
Software Architecture and Design - An OverviewSoftware Architecture and Design - An Overview
Software Architecture and Design - An Overview
 
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
 
Three Software Architecture Styles
Three Software Architecture StylesThree Software Architecture Styles
Three Software Architecture Styles
 
Layered Software Architecture
Layered Software ArchitectureLayered Software Architecture
Layered Software Architecture
 

Semelhante a A Layered Architecture for the Model-driven Development of Distributed Simulators

There's more than web
There's more than webThere's more than web
There's more than webMatt Evans
 
beyond tellerrand: Mobile Apps with JavaScript – There's More Than Web
beyond tellerrand: Mobile Apps with JavaScript – There's More Than Webbeyond tellerrand: Mobile Apps with JavaScript – There's More Than Web
beyond tellerrand: Mobile Apps with JavaScript – There's More Than WebHeiko Behrens
 
Track c-High speed transaction-based hw-sw coverification -eve
Track c-High speed transaction-based hw-sw coverification -eveTrack c-High speed transaction-based hw-sw coverification -eve
Track c-High speed transaction-based hw-sw coverification -evechiportal
 
Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pyth...
Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pyth...Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pyth...
Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pyth...Rodrigo Senra
 
iPhone Development Intro
iPhone Development IntroiPhone Development Intro
iPhone Development IntroLuis Azevedo
 
XebiCon'17 : Faites chauffer les neurones de votre Smartphone avec du Deep Le...
XebiCon'17 : Faites chauffer les neurones de votre Smartphone avec du Deep Le...XebiCon'17 : Faites chauffer les neurones de votre Smartphone avec du Deep Le...
XebiCon'17 : Faites chauffer les neurones de votre Smartphone avec du Deep Le...Publicis Sapient Engineering
 
iOS overview
iOS overviewiOS overview
iOS overviewgupta25
 
망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19종인 전
 
Online test program generator for RISC-V processors
Online test program generator for RISC-V processorsOnline test program generator for RISC-V processors
Online test program generator for RISC-V processorsRISC-V International
 
Letswift18 워크숍#1 스위프트 클린코드와 코드리뷰
Letswift18 워크숍#1 스위프트 클린코드와 코드리뷰Letswift18 워크숍#1 스위프트 클린코드와 코드리뷰
Letswift18 워크숍#1 스위프트 클린코드와 코드리뷰Jung Kim
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?Doug Hawkins
 
Ida python intro
Ida python introIda python intro
Ida python intro小静 安
 
Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)Paulo Gandra de Sousa
 
Kotlin / Android Update
Kotlin / Android UpdateKotlin / Android Update
Kotlin / Android UpdateGarth Gilmour
 

Semelhante a A Layered Architecture for the Model-driven Development of Distributed Simulators (20)

分散式系統
分散式系統分散式系統
分散式系統
 
Cell Tech V09 0312
Cell Tech V09 0312Cell Tech V09 0312
Cell Tech V09 0312
 
There's more than web
There's more than webThere's more than web
There's more than web
 
#JavaFX.forReal() - ElsassJUG
#JavaFX.forReal() - ElsassJUG#JavaFX.forReal() - ElsassJUG
#JavaFX.forReal() - ElsassJUG
 
beyond tellerrand: Mobile Apps with JavaScript – There's More Than Web
beyond tellerrand: Mobile Apps with JavaScript – There's More Than Webbeyond tellerrand: Mobile Apps with JavaScript – There's More Than Web
beyond tellerrand: Mobile Apps with JavaScript – There's More Than Web
 
Track c-High speed transaction-based hw-sw coverification -eve
Track c-High speed transaction-based hw-sw coverification -eveTrack c-High speed transaction-based hw-sw coverification -eve
Track c-High speed transaction-based hw-sw coverification -eve
 
5c8605.ado.net
5c8605.ado.net5c8605.ado.net
5c8605.ado.net
 
Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pyth...
Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pyth...Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pyth...
Python Brasil 2010 - Potter vs Voldemort - Lições ofidiglotas da prática Pyth...
 
iPhone Development Intro
iPhone Development IntroiPhone Development Intro
iPhone Development Intro
 
XebiCon'17 : Faites chauffer les neurones de votre Smartphone avec du Deep Le...
XebiCon'17 : Faites chauffer les neurones de votre Smartphone avec du Deep Le...XebiCon'17 : Faites chauffer les neurones de votre Smartphone avec du Deep Le...
XebiCon'17 : Faites chauffer les neurones de votre Smartphone avec du Deep Le...
 
iOS overview
iOS overviewiOS overview
iOS overview
 
망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19망고100 보드로 놀아보자 19
망고100 보드로 놀아보자 19
 
Online test program generator for RISC-V processors
Online test program generator for RISC-V processorsOnline test program generator for RISC-V processors
Online test program generator for RISC-V processors
 
Letswift18 워크숍#1 스위프트 클린코드와 코드리뷰
Letswift18 워크숍#1 스위프트 클린코드와 코드리뷰Letswift18 워크숍#1 스위프트 클린코드와 코드리뷰
Letswift18 워크숍#1 스위프트 클린코드와 코드리뷰
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?
 
Ida python intro
Ida python introIda python intro
Ida python intro
 
PoEAA by Example
PoEAA by ExamplePoEAA by Example
PoEAA by Example
 
Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)
 
Kotlin / Android Update
Kotlin / Android UpdateKotlin / Android Update
Kotlin / Android Update
 
Cp7 rpc
Cp7 rpcCp7 rpc
Cp7 rpc
 

Mais de Daniele Gianni

Integrated modeling and simulation framework for wireless sensor networks
Integrated modeling and simulation framework for wireless sensor networksIntegrated modeling and simulation framework for wireless sensor networks
Integrated modeling and simulation framework for wireless sensor networksDaniele Gianni
 
Simulation assisted elicitation and validation of behavioral specifications f...
Simulation assisted elicitation and validation of behavioral specifications f...Simulation assisted elicitation and validation of behavioral specifications f...
Simulation assisted elicitation and validation of behavioral specifications f...Daniele Gianni
 
Validation of Spacecraft Behaviour Using a Collaborative Approach
Validation of Spacecraft Behaviour Using a Collaborative ApproachValidation of Spacecraft Behaviour Using a Collaborative Approach
Validation of Spacecraft Behaviour Using a Collaborative ApproachDaniele Gianni
 
Modules for reusable and collaborative modeling of biological mathematical sy...
Modules for reusable and collaborative modeling of biological mathematical sy...Modules for reusable and collaborative modeling of biological mathematical sy...
Modules for reusable and collaborative modeling of biological mathematical sy...Daniele Gianni
 
DDML a support for communication in m&s
DDML a support for communication in m&sDDML a support for communication in m&s
DDML a support for communication in m&sDaniele Gianni
 
Collaborative modeling and co simulation with destecs - a pilot study
Collaborative modeling and co simulation with destecs - a pilot studyCollaborative modeling and co simulation with destecs - a pilot study
Collaborative modeling and co simulation with destecs - a pilot studyDaniele Gianni
 
Collaborative engineering solutions and challenges in the development of spac...
Collaborative engineering solutions and challenges in the development of spac...Collaborative engineering solutions and challenges in the development of spac...
Collaborative engineering solutions and challenges in the development of spac...Daniele Gianni
 
Collaborative development and cataloguing of simulation and calculation model...
Collaborative development and cataloguing of simulation and calculation model...Collaborative development and cataloguing of simulation and calculation model...
Collaborative development and cataloguing of simulation and calculation model...Daniele Gianni
 
AFIS ambassodorship presentation
AFIS ambassodorship presentationAFIS ambassodorship presentation
AFIS ambassodorship presentationDaniele Gianni
 
A vision on collaborative computation of things for personalized analyses
A vision on collaborative computation of things for personalized analysesA vision on collaborative computation of things for personalized analyses
A vision on collaborative computation of things for personalized analysesDaniele Gianni
 
A package system for maintaining large model distributions in vle software
A package system for maintaining large model distributions in vle softwareA package system for maintaining large model distributions in vle software
A package system for maintaining large model distributions in vle softwareDaniele Gianni
 
A framework for distributed control and building performance simulation
A framework for distributed control and building performance simulationA framework for distributed control and building performance simulation
A framework for distributed control and building performance simulationDaniele Gianni
 
A collaborative environment for urban landscape simulation
A collaborative environment for urban landscape simulationA collaborative environment for urban landscape simulation
A collaborative environment for urban landscape simulationDaniele Gianni
 
System model optimization through functional models execution methodology and...
System model optimization through functional models execution methodology and...System model optimization through functional models execution methodology and...
System model optimization through functional models execution methodology and...Daniele Gianni
 
Validation of Service Oriented Computing DEVS Simulation Models
Validation of Service Oriented Computing DEVS Simulation ModelsValidation of Service Oriented Computing DEVS Simulation Models
Validation of Service Oriented Computing DEVS Simulation ModelsDaniele Gianni
 
The DEVS-Driven Modeling Language: Syntax and Semantics Definition by Meta-Mo...
The DEVS-Driven Modeling Language: Syntax and Semantics Definition by Meta-Mo...The DEVS-Driven Modeling Language: Syntax and Semantics Definition by Meta-Mo...
The DEVS-Driven Modeling Language: Syntax and Semantics Definition by Meta-Mo...Daniele Gianni
 
Modular Mathematical Modelling of Biological Systems
Modular Mathematical Modelling of Biological SystemsModular Mathematical Modelling of Biological Systems
Modular Mathematical Modelling of Biological SystemsDaniele Gianni
 
A Model-Based Method for System Reliability Analysis
A Model-Based Method for System Reliability AnalysisA Model-Based Method for System Reliability Analysis
A Model-Based Method for System Reliability AnalysisDaniele Gianni
 
Automation of SysML Activity Diagram Simulation with Model-Driven Engineering...
Automation of SysML Activity Diagram Simulation with Model-Driven Engineering...Automation of SysML Activity Diagram Simulation with Model-Driven Engineering...
Automation of SysML Activity Diagram Simulation with Model-Driven Engineering...Daniele Gianni
 
Calibration of Deployment Simulation Models - A Multi-Paradigm Modelling Appr...
Calibration of Deployment Simulation Models - A Multi-Paradigm Modelling Appr...Calibration of Deployment Simulation Models - A Multi-Paradigm Modelling Appr...
Calibration of Deployment Simulation Models - A Multi-Paradigm Modelling Appr...Daniele Gianni
 

Mais de Daniele Gianni (20)

Integrated modeling and simulation framework for wireless sensor networks
Integrated modeling and simulation framework for wireless sensor networksIntegrated modeling and simulation framework for wireless sensor networks
Integrated modeling and simulation framework for wireless sensor networks
 
Simulation assisted elicitation and validation of behavioral specifications f...
Simulation assisted elicitation and validation of behavioral specifications f...Simulation assisted elicitation and validation of behavioral specifications f...
Simulation assisted elicitation and validation of behavioral specifications f...
 
Validation of Spacecraft Behaviour Using a Collaborative Approach
Validation of Spacecraft Behaviour Using a Collaborative ApproachValidation of Spacecraft Behaviour Using a Collaborative Approach
Validation of Spacecraft Behaviour Using a Collaborative Approach
 
Modules for reusable and collaborative modeling of biological mathematical sy...
Modules for reusable and collaborative modeling of biological mathematical sy...Modules for reusable and collaborative modeling of biological mathematical sy...
Modules for reusable and collaborative modeling of biological mathematical sy...
 
DDML a support for communication in m&s
DDML a support for communication in m&sDDML a support for communication in m&s
DDML a support for communication in m&s
 
Collaborative modeling and co simulation with destecs - a pilot study
Collaborative modeling and co simulation with destecs - a pilot studyCollaborative modeling and co simulation with destecs - a pilot study
Collaborative modeling and co simulation with destecs - a pilot study
 
Collaborative engineering solutions and challenges in the development of spac...
Collaborative engineering solutions and challenges in the development of spac...Collaborative engineering solutions and challenges in the development of spac...
Collaborative engineering solutions and challenges in the development of spac...
 
Collaborative development and cataloguing of simulation and calculation model...
Collaborative development and cataloguing of simulation and calculation model...Collaborative development and cataloguing of simulation and calculation model...
Collaborative development and cataloguing of simulation and calculation model...
 
AFIS ambassodorship presentation
AFIS ambassodorship presentationAFIS ambassodorship presentation
AFIS ambassodorship presentation
 
A vision on collaborative computation of things for personalized analyses
A vision on collaborative computation of things for personalized analysesA vision on collaborative computation of things for personalized analyses
A vision on collaborative computation of things for personalized analyses
 
A package system for maintaining large model distributions in vle software
A package system for maintaining large model distributions in vle softwareA package system for maintaining large model distributions in vle software
A package system for maintaining large model distributions in vle software
 
A framework for distributed control and building performance simulation
A framework for distributed control and building performance simulationA framework for distributed control and building performance simulation
A framework for distributed control and building performance simulation
 
A collaborative environment for urban landscape simulation
A collaborative environment for urban landscape simulationA collaborative environment for urban landscape simulation
A collaborative environment for urban landscape simulation
 
System model optimization through functional models execution methodology and...
System model optimization through functional models execution methodology and...System model optimization through functional models execution methodology and...
System model optimization through functional models execution methodology and...
 
Validation of Service Oriented Computing DEVS Simulation Models
Validation of Service Oriented Computing DEVS Simulation ModelsValidation of Service Oriented Computing DEVS Simulation Models
Validation of Service Oriented Computing DEVS Simulation Models
 
The DEVS-Driven Modeling Language: Syntax and Semantics Definition by Meta-Mo...
The DEVS-Driven Modeling Language: Syntax and Semantics Definition by Meta-Mo...The DEVS-Driven Modeling Language: Syntax and Semantics Definition by Meta-Mo...
The DEVS-Driven Modeling Language: Syntax and Semantics Definition by Meta-Mo...
 
Modular Mathematical Modelling of Biological Systems
Modular Mathematical Modelling of Biological SystemsModular Mathematical Modelling of Biological Systems
Modular Mathematical Modelling of Biological Systems
 
A Model-Based Method for System Reliability Analysis
A Model-Based Method for System Reliability AnalysisA Model-Based Method for System Reliability Analysis
A Model-Based Method for System Reliability Analysis
 
Automation of SysML Activity Diagram Simulation with Model-Driven Engineering...
Automation of SysML Activity Diagram Simulation with Model-Driven Engineering...Automation of SysML Activity Diagram Simulation with Model-Driven Engineering...
Automation of SysML Activity Diagram Simulation with Model-Driven Engineering...
 
Calibration of Deployment Simulation Models - A Multi-Paradigm Modelling Appr...
Calibration of Deployment Simulation Models - A Multi-Paradigm Modelling Appr...Calibration of Deployment Simulation Models - A Multi-Paradigm Modelling Appr...
Calibration of Deployment Simulation Models - A Multi-Paradigm Modelling Appr...
 

Último

Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17Celine George
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docxPoojaSen20
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin ClassesCeline George
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
Role Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptxRole Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptxNikitaBankoti2
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxVishalSingh1417
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxnegromaestrong
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Shubhangi Sonawane
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfAyushMahapatra5
 

Último (20)

Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Role Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptxRole Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptx
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 

A Layered Architecture for the Model-driven Development of Distributed Simulators

  • 1. March 3-7, 2008 Marseille, France A Layered Architecture for the Model-driven Development of Distributed Simulators Daniele Gianni* Andrea D’Ambrogio# Giuseppe Iazeolla# (*) Dept. of Electrical & Electronic Eng. (#) Dept. of Computer Science Imperial College London University of Roma “Tor Vergata” London (UK) Roma (Italy)
  • 2. Overview  Motivations  Definition of SimArch • Layers, Service Interfaces and Data Interfaces  Example implementation of a SimArch-based simulation language • jEQN  Application to the model-driven development of a distributed simulator SIMUTools'08 2
  • 3. Motivations  The development of distributed simulators generally requires more effort and know-how compared to centralized (local) simulators  Only reusability and interoperability aspects have been addressed by distributed simulation approaches  Adaptability aspects (how to switch from local to distributed simulation) have not been addressed  The proposed layered architecture exploits model-driven development to allow the simulation developer to abstract from the execution environment and to deal only with the definition of the hi-level simulation model SIMUTools'08 3
  • 4. SimArch  A layered architecture to enable the model- driven development of distributed simulators: • transparent deployment of simulation components in either a local or a distributed environment • transparent introduction/modification of the layers’ implementation to meet additional/specific requirements • definition of custom (domain-specific) simulation languages on top of the layered architecture SIMUTools'08 4
  • 5. SimArch Main Characteristics  Based on the process interaction paradigm  Composed of four layers  Based on the definition of: • Service interfaces • Data interfaces • Factory interfaces for component instantiation SIMUTools'08 5
  • 6. Process Interaction Paradigm ev2 Key E2 ev1 Entity E1 Input Port ev3 Output Port E3 Link/Event ev ev4 SIMUTools'08 6
  • 7. Simulation Model Layer Layer 4 Simulation Components Layer 3 Layer Discrete Event Simulation Service Layer Layer 2 SimArch Distributed Discrete Event Simulation Layer Layer 1 Layers Distributed Computing Infrastructure Layer 0 CORBA DIS Grid WS HLA General Purpose Simulation Oriented SIMUTools'08 7
  • 8. SimArch Service Interfaces (layers 12) «interface» Layer2ToLayer1 +initDistributedSimulationInfrastructure() +postProcessingDistributedSimulationInfrastructure() +sendEvent(in event : Event) +waitNextDistributedEvent() +waitNextDistributedEventBeforeTime(in time : Time) «interface» Layer1ToLayer2 +scheduleEvent(in event : Event) +scheduleSimulationEndEvent(in time : Time) SIMUTools'08 8
  • 9. SimArch Service Interfaces (layers 23) «interface» «interface» Layer3ToLayer2 Layer2ToLayer3 +getUserInterface() : Layer3toLayer2UserInterface +body() +getDeveloperInterface() : Layer3ToLayer2DeveloperInterface +getId() : Integer +getEntityName() : Name +printStatistics() +setEventReceived() +setReceivedEvent(in event : Event) +setId(in id : Integer) +setSystemName(in name : Name) «interface» «interface» Layer3toLayer2UserInterface Layer3ToLayer2DeveloperInterface +registerEntity(in entity : GeneralEntity) +getClock() : Time +start() +waitNextEvent() +hold(in time : Time) +holdUnlessIncomingEvent(in time : Time) : Boolean +send(in entity : Entity, in delay : Time, in tag : Enum, in data : Object) +send(in port : OutputPort, in delay : Time, in tag : Enum, in data : Object) +send(in recipient : Name, in delay : Time, in tag : Enum, in data : Object) SIMUTools'08 9
  • 10. SimArch Data Interfaces (1/2) «interface» Link +getInputPorts() : List of InputPort +getOutputPorts() : List of OutputPort +isAllowedToSendThroughThisLink() : Boolean «interface» GeneralEntity +getEntityId() : Integer +getEntityName() : Name «interface» +getFullName() : Name Port +getSystemName() : Name +isLocal() : Boolean +getOwner() : GeneralEntity +getLink() : Link «interface» «interface» «interface» «interface» InputPort OutputPort ComponentLevelEntity RemoteEntity SIMUTools'08 10
  • 11. SimArch Data Interfaces (2/2) «interface» «interface» Comparable Event +getData() : Object +getRecipient() : GeneralEntity «interface» +getRecipientName() : Name Time +getSender() : GeneralEntity +decreaseBy() +getSenderName() : Name +decreasedBy(in time : Time) : Time +getTag() : Enum +getValue() : Double +getTime() : Time +increaseBy(in time : Time) +increasedBy(in time : Time) : Time +isEqualTo(in time : Time) : Boolean «interface» +isGreaterOrEqualThan(in time : Time) : Boolean Name +isGreaterThan(in time : Time) : Boolean +getValue() : String +isLesserOrEqualThan(in time : Time) : Boolean +setValue(in name : String) +isLesserThan(in time : Time) : Boolean +setValue(in time : Double) SIMUTools'08 11
  • 12. SimArch implementation status  Layer 1 • DDESoverHLA library: provides a DES abstraction on top of HLA  Layer 2 • SimJ library: provides generic simulation components  Layer 3 • jEQN library: provides the primitives for defining EQN simulation models SIMUTools'08 12
  • 13. jEQN A Domain-Specific Language for the simulation of Extended Queueing Networks SIMUTools'08 13
  • 14. Domain Specific Language (DSL)  Programming language  Domain-specificity  Increased expressiveness (decreased generality)  Ease-of-use  Reduced domain and programming expertise  Verificability and transformability  Declarative  Enabler of reuse SIMUTools'08 14
  • 15. jEQN: a DSL for EQNs  Based on: • Domain analysis of EQN models • Declarative approach (specify what to simulate rather then how to simulate)  Used to: • Reduce the semantic gap between the model specification and the corresponding simulation program  Composed of: • Simulation services defined by SimArch • Set of EQN simulation components • Set of parameters for the components SIMUTools'08 15
  • 16. jEQN Simulation Components  Derived from EQN domain analysis  6 groups: • user sources • waiting systems • service centers • routers • special nodes • support components SIMUTools'08 16
  • 17. jEQN Parameters  Design guidelines: • Decouple jEQN simulation components from the parameters that do not affect the simulation logic • Flexible parameter structure to allow the incorporation of additional parameter types SIMUTools'08 17
  • 18. Example candidate parameters • For user source components:  termination condition  interarrival time  user generation • For waiting system components:  preemptive waiting systems  preemption policy  queue structure  service request generator  enqueueing and dequeuing policy SIMUTools'08 18
  • 19. Categories of Parameters 1. Parameters used to take decisions • routing policy, enqueueing policy 2. Parameters that provide sequence of values • interarrival times, service request times (incorporating jRand) 3. Parameters that provide storage support • queues SIMUTools'08 19
  • 20. Category-1 parameters • Organized around four variables:  T: the decision data  I: the input data  S: the state data  D: the type of decision • According to the use of such variables, for example:  StateOnlyDecisionPolicy  InputOnlyDecisionPolicy SIMUTools'08 20
  • 21. Category-1 parameters «interface» Policy «interface» «interface» InputPolicy StatePolicy<S> +getDecision() : D +getState() : S +setState(in s : S) «interface» ImplicitInputPolicy<I> «interface» «interface» ExplicitInputPolicy<T extends DecisionData, InputAndStatePolicy +getImplicitInput() : I D> StateOnlyDependentPolicy<S, D> +setImplicitInput(in i : I) +getDecisionFor(in t : T) : D -state : S +getDecision() : D «interface» ImplicitAndExplicitInputDependentPolicy<I, ExplicitInputOnlyDependentPolicy<T,D> ImplicitButNotExplicitPolicy<I,D> T,D> +getDecisionFor() : D -implicitInput : I ImplicitButNotExplicitInputDependentPolicy< I,D> ImplicitAndExplicitInputAndStateDependentPolicy< -implicitInput : I I,S,T,D> +getDecision() : D -state : S +getImplicitInput() : I +setImplicitInput(in i : I) ImplicitButNotExplicitInputAndStateDependentPolicy< I,S,D> -state : S +getState() : S +setState(in s : S) SIMUTools'08 21
  • 22. Category-3 parameters «interface» UserQueue MaskBasePolicy<?,?,?,UserQueue> +getNumberOfUserEnqueued() : Integer * -userWithdrawer +insert(in u : User) 1 1 +extract() : User 1 1 1 FiniteUserQueue InfiniteUserQueue MultiUserQueue 1 -queueAssigner 1 1 -decisionDataFactory 1 -queue 1 -enqueueingPolicy «interface» java.util.List 1 1 1 MaskBasePolicy<?,?,UserBasedDecisionData, QueueAssigner Integer> -decisionDataFactory 1 1 1 -dispatchingPolicy UserBasedDecisionDataFactory 1 MaskBasePolicy<?,?,UserBasedDecisionData, UserQueue> SIMUTools'08 22
  • 23. Model-driven Development of Distributed Simulators Example Application SIMUTools'08 23
  • 24. The Catenet System Host A LAN1 (token ring) WAN Host B GW1 GW2 LAN2 (ethernet) catenet SIMUTools'08 24
  • 25. EQN Model (high-level) catenet GET TCP Source LAN1 LLC/ GW1 IP TCP TCP IP (Host A) MAC802.5 Host A X.25 network layers WAN X.25 Host B network layers RELEASE Sink TCP LLC/ IP GW2 MAC802.3 LAN2 IP TCP TCP (Host B) Window Size C Token Pool SIMUTools'08 25
  • 26. EQN Model (LAN1 details) Msg Tok ? createMsg allocMsg allocTok getToken setSender transfrm putToken relTok decrfrm routing destrMsg SIMUTools'08 26
  • 27. Model-driven Development (1/3)  Direct mapping between EQN model entities and SimArch/jEQN  SimArch statements: environment set-up, connections between jEQN components  jEQN components: model entities and their parameters SIMUTools'08 27
  • 28. Model-driven Development (2/3)  EQN model entities and jEQN components:  Service Center  jEQN Service Center  Waiting System  jEQN Waiting System  Passive Queue (Pool of Tokens, Activate and Release Nodes)  jEQN Special Nodes  EQN entity properties and parameters (to be set at instantiation time) of jEQN components:  Enqueueing policy: FIFO  Service Time: Normal Stream  Operation: setSender (for setSender node) SIMUTools'08 28
  • 29. Model-driven Development (3/3)  Extra jEQN components for the routing information (implicitly included in the EQN model)  Parameterization of jEQN components according to the model properties (service time, enqueueing policy, routing policy, etc.) SIMUTools'08 29
  • 30. Example Derivation of Simulator Code from the Model (1/2) SIMUTools'08 30
  • 31. Example Derivation of Simulator Code from the Model (2/2) jRand jEQN Policy Framework SIMUTools'08 31
  • 32. Local Simulator Development 1. Instantiate a Layer 2 implementation (Execution Container) 2. Declare and define jEQN components according to the previous guidelines 3. Connect components 4. Activate the execution container SIMUTools'08 32
  • 33. From Local to Distributed 1. Partition the model 2. Configure Layer1 components (e.g. FederationManager, with, e.g., number of simulators, lookahead, etc.) 3. Code each simulator (federate) SIMUTools'08 33
  • 34. Model Partitioning Submodel 0 Host A LAN1 (token ring) WAN Submodel 2 Host B GW1 Submodel 1 GW2 LAN2 (ethernet) SIMUTools'08 34
  • 35. Coding the distributed simulator 1. Instantiation of a distributed implementation of Layer 2, which in turns requires Layer 1 2. Declaration and definition of jEQN components 1. Local: as in the local simulator 2. Remote: use of SimArch RemoteEntity 3. Connection between jEQN components 1. Local-Local: as in the local simulator 2. Local-Remote: similarly to local connection, with a local proxy for the RemoteEntity 4. Activation of the execution container SIMUTools'08 35
  • 36. Simulators deployment US - Georgia Italy jEQN Simulator jEQN SimArch Simulator HLA over IIOP CORBA-HLA Client SimArch GATech's CORBA -HLA jEQN Simulator LAN WAN Camerino Client HLA over IIOP SimArch Ascoli CORBA -HLA Client Ge orgia Te ch HLA o ve r IIOP TorVe rgata CORBA RTI Server CORBA-HLA Client Le cce SimArch jEQ N Simulator SimLab Key Federate CORBA-HLA CORBA-HLA CORBA-HLA Client Client Client IIOP protocol Server Pitch protocol over TCP and UDP Executive Federation Manager SimArch SimArch pRTI 1516 jEQ N jEQ N Simulator Simulator Local CORBA + CORBA-HLA SIMUTools'08 36
  • 37. Simulator Validation  Local simulator SIMUTools'08 37
  • 38. Simulator Validation  Distributed simulator End-to-end delay [s] Time [s] 100 90 80 70 60 C=4 50 C=7 40 C=12 30 20 10 0 0 1 2 3 4 5 lambda [packets/s] SIMUTools'08 38
  • 39. Conclusions  SimArch eases the development of distributed simulators by introducing a set of layered abstract simulation services on top of the distributed environment  SimArch advantages: • Reduces development effort and time • Does not need specialized distributed simulation skills • Facilitates the introduction of simulation languages as DSLs (e.g., jEQN) SIMUTools'08 39