Home
Categories
Dictionary
Glossary
Download
Project Details
Changes Log
What Links Here
FAQ
License

Module



Modules are the executable units in the Applications. A Module can subscribe to or provide one or several services.

Modules types

Main Article: Modules types

Several types of modules are supported:
  • Modules which have a Java implementation. These are the default module types. For detailed information on how to develop and configure a Java module, see the Java modules article
  • Modules which are implemented in Python
  • Modules which are implemented in Groovy scripts
  • Modules which are implemented in C[1]
    Or more specifically, as C dlls
  • The unique owner module, which allows to create and control the Framework from a parent application

Modules data sharing

Main Article: Modules data sharing

If two modules are hosted in two different applications, they won't share their datas for any Services. The modules hosted in the same application will share the datas for the same services. On the contrary, if two modules are in hosted in two different applications, they will share the their datas for all Services[2]
If the Modules are executed in the same JVM, of course
.

Declaring the module implementation

The declaration of the module implementation depends on the module type:
  • Through the implementation element for Java modules. See Java modules
  • Through the groovyImplementation element for Groovy modules. See Groovy modules
  • Through the pythonImplementation element for Python modules. See Python modules
  • Through the cImplementation element for C modules. See C modules

Declaring the Services interface

Main Article: Service implementation

The declaration of the Service interface is performed in the Module configuration:
  • The module declares for which services it interfaces to
  • For each Service it interfaces to, it specifies if it is a provider or a subscriber of this Service
  • Several properties can be defined depending on the Service type

Example

In the following example, the FlightManagementSystem module:
  • subscribe to the position publish service
  • subscribe to the directTo event service
  • provides the computeFlightPlan request-response service
      <module name="FlightManagementSystem" id="1" > 
         <interfaces>
            <subscribe service="position" />
            <eventReceived service="directTo"/>
            <requestReceived service="computeFlightPlan"/>
         </interfaces>             
      </module>


serviceintexample

Declaring the module properties


Example

      <module name="FlightManagementSystem" > 
         <implementation path="org.da.aircraft.fms.FMS" >
            <initEntryPoint method="init" />
            <startEntryPoint method="start" />
            <defaultReceiveEntryPoint method="receive" />
            <defaultSendEntryPoint method="send" />
         </implementation>      
         <interfaces>
            <subscribe service="position" />
            <eventReceived service="directTo"/>
            <requestReceived service="computeFlightPlan"/>
         </interfaces>             
      </module>

Notes

  1. ^ Or more specifically, as C dlls
  2. ^ If the Modules are executed in the same JVM, of course

See also


Categories: concepts

Copyright 2017-2020 Dassault Aviation. All Rights Reserved. Documentation and source under the LGPL v3 licence