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

Key concepts



The framework is based on loose coupling between applications.
  • The configuration specifies Services interfaces
  • Each module declaration specifies which services it provides or requires
  • The framework automatically connect the modules which share services, and manage the data sharing between modules at runtime
  • Modules can be executed in the same JVM, or in other JVMs on the same platform, or even on different platforms
Typically modules don't know about each other:
  • They don't have compile-time dependencies
  • They don't have runtime dependencies. The framework takes care of their integration
  • Modules which provide services don't know which Modules use these Services
  • Modules which require services don't know which Modules provide these Services
  • Modules don't even know where to locate Services[1]
    The location of modules is defined in the configuration
    . The Modules which provide a Service, and the Modules which required this Service, can be on the same Application, the same JVM in different Applications, or even on different platforms
Note that:
  • It is not an error if a Module requires a Service but this Service is not provided by any other Module. This Module will just never be notified of the invocation of this Service
  • It is not an error if a Module provides a Service but this Service is not required by any other Module. This Module will just never notify any other Module of the invocation of this Service
  • It is not an error if several Modules require the same Service. The invocation of this Service will just notify all of these Modules at once
  • Depending on the Service type, it may not be an error if several Modules provide the same Service. For example several Modules can provide the same event

Creating and controlling the framework from an external application

It is possible to create and control the framework from an external Java application. See Framework Owner.

A real-world example

In the following example, the Flight Management System module:
  • The Flight Management System module subsctibe to the position and provides the computed FlightPlan
  • The Cockpit module subscribes for the computed FlightPlan (for example, the pilot can ask to recompute the FlightPlan)
  • The Inertial Navigation System module provides the aircraft position

examplefms

A more general example

In the following example:
  • The "Module A" module provides the "Service" service
  • The "Module B" and "Module C" modules require the "Service A" service
  • The "Module A" module has no knowledge of which module(s) use the "Service A" service
  • The "Module A" and "Module C" modules have no knowledge of which module(s) provide the "Service A" service

example

Notes

  1. ^ The location of modules is defined in the configuration

See also


Categories: concepts | general

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