Skip to content
diana-mg edited this page Dec 17, 2012 · 2 revisions

The behavior of the APAM system is the result of the collaboration between the APAM machine and a number of managers. Roughly, the duty of the APAM machine is to hold the Application State Machine (ASM), to ensure the causality between the ASM and the underlying platform, and to enforce the properties associated with the ASM objects. But the APAM machine by itself never changes the ASM, it delegates all change decisions to the available managers.

APAM core managers

Three classes of managers are defined:

  • dependency managers called when a dependency needs to be resolved,
  • property managers called when a property of a component is modified, and
  • dynamic managers called when a service appears or disappears.
APAM extensibility is based on managers provided by third parties. Two managers are closely related to the core and are then provided in the distribution: ApamMan and DynaMan.

ApamMan is the default dependency manager. ApamMan tries to resolve a dependency looking into the components currently running in the platform, taking into account the visibility expressed in the client composites. If an implementation is found but no instance is available, ApamMan creates an instance of the selected implementation.

Dynaman is the default dynamic manager. Dynaman interprets the strategies defined in the composites and dependencies when a resolution fails, and when a component appears or disappears.

With these two managers, all the information, properties and characteristics defined in the component definition are fully enforced. Another implementation of these two managers can significantly change the core semantics and is therefore discouraged.

Extended APAM

The standard distribution comes with the following basic managers:

OBRMan is a dependency manager that extends APAM with dynamic deployment. During a resolution, OBRMan is called if ApamMan did not found a convenient service (the right service is not currently running in the platform, or is not visible). OBRMan looks in a number of bundle repositories to find out a service that satisfies the dependency requirements; if found the corresponding bundle is deployed. See Compilation and OBR repositories bellow for more details on how OBRMan works.

DistriMan is a dependency manager that extends APAM with distribution. During a resolution, if ApamMan did not found a convenient service (the right service is not currently running in the platform, or is not visible), Distriman can be called (after or before or instead OBRMan). Distriman looks on the network to find out a visible APAM machine on which a convenient service is currently running. If found, a proxy is created from the current machine toward the distant service and the resolution returns the proxy address.

Specialized and domain specific managers

ConflictMan is a dynamic manager specialized in the resolution of access conflict between two or more applications that require an access to the same exclusive services. This manager is intended to solve the conflicts toward shared exclusive devices.

Third parties are encouraged to develop specialized managers as a solution to their needs.

Clone this wiki locally