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

Framework deployment


This article is about how to deploy modules. For about how to deploy protoFramework, see deploying
There are several possibilities for the modules deployment:
  • In the simplest architecture, all modules are in the same application, they are in the same JVM and share their datas
  • Modules can be managed by the same protoframework.jar instance, but they can be in separate applications
  • Modules can be managed by different protoframework.jar instances, on the same host or different hosts, and communicate though the Network
Of course all these use cases can be mixed.

Examples

Suppose the example from the tutorial:We will define two services:
  • One Service will publish the value
  • Another Service will publish the state of the toggle button in case of a click event
And two applications:
  • The first PublishModule will not have any graphical interface and will:
    • Increment or decrement the value
    • Publish cyclically the value
    • Listen to the toggle event to set if the value should increment or decrement
  • The second EventModule will have a graphical interface and will:
    • Subscribe to the published value and show this value
    • Show a toggle and sends an event when the user clicks on this toggle

tuto1archi

Both modules in the same application

In this case the modules are both managed by the same framework instance, and they share their datas. Communication from one module to another is going though the framework instance.
deployment1

Both modules in the same framework instance

In this case the modules are both managed by the same framework instance, but they don't share their datas. Communication from one module to another is also going though the framework instance.
deployment2

Modules in different framework instances

Main Article: Network communication

In this case the modules are managed by different framework instances. Communication from one module to another is going though the Network.
deployment3

Mixed deployment

In this case there are two instances of the EventModule module[1]
See application types to understand how to instanciate more than once the same application
:
  • One in the same framework instance as the PublishModule module
  • One in another framework instance

deploymentmixed

Sharing libraries between applications


It is completely possible to use the same libraries in several applications, but each application using a different ClassLoader, you will have exceptions if these applications share object types datas.

classloaders
In that case, if some jar files are common to several applications, a deployment element can be put at the top of the applications element. For example:
      <applications>
        <deployment>
           <lib url="commonLibrary.jar" />
        </deployment>      
        <application name="Aircraft">
           <deployment>
              <lib url="aircraft.jar" />
           </deployment>
      ...
        </application>
        <application name="Cockpit">
           <deployment>
              <lib url="cockpit.jar" />
           </deployment>
      ...
        </application>   
      </applications>

Notes

  1. ^ See application types to understand how to instanciate more than once the same application

See also


Categories: concepts

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