The key components of the of the ATMOSPHERE ecosystem will provide adaptation mechanisms to cope with the trustworthiness level goals.
These mechanisms are controlled by actuators
which are in turn invoked by the TMA_Execute
.
Runtime adaptation is required to achieve/maintain the desired levels of trustworthiness.
The TMA_Planning
structures the actions needed to achieve goals and objectives.
It creates or selects a procedure to perform a desired update in the managed resource.
The TMA_Execute
is the responsible to change the behavior of managed resources using the actuators based on the actions recommended by the TMA_Planning
.
Based on the idea of a runtime assessment of trustworthiness, we understand that the managed resources should be adapted to improve trustworthiness. The ability of such a system to adapt its own behavior and/or structure in response to changes occurring to the system itself, its environment, or even its goals at runtime is called self-adaptation. Examples of such changes include requirements and execution environments, failures, as well as bug fixes and security issues.
These adaptations are implemented by actuators, which are key components that have the ability to change the managed element by adapting rules/policies implemented at the different layers/resources of the system.
Although the development of each actuator
depends on the component with which it integrates, all the actuators
will follow a standard architecture and provide a similar interface in order to integrate with the TMA_Execute
.
The messages to be submitted from TMA_Execute
to one actuator
follow the JSON
schema specified in tma-e_schema, which is currently in the version 0.2
.
The figure below presents a representation of this schema, which is also explained below.
Format of the data to be provided to the actuator components.
Each message will include:
resourceId
-- identifies the resource to which the adaptation is targetedmessageId
-- control informationtimestamp
-- control informationaction
-- identifies the adaptation to be promoted by the actuatorconfiguration
-- configuration data for theaction
, which can be included in the form of a JSON object.
Actuators
, actions
and respective configuration
data must be configured in the system, and saved in the knowledge base.
Actuators
can be added by the administrator that should add information about them, including the types of available adaptations, foreseen effects and the definition of rules that specify if one adaptation should be triggered. To this process we call Registration of Actuators, presented in detail in the TMA_Knowledge
description.
The executor component will encrypt the message to be sent to the ActuatorAPI. In order to encrypt the message, both the private and public keys are needed, besides the information about the adaptation operation.
Then, the executor will invoke the ActuatorAPI, which will be responsible to decrypt the message. After decryptying the message, the ActuatorAPI will invoke the proper operation to be performed in the corresponding resource.
The interaction with TMA will be done through Actuators, which will be provided by each system. In order to establish the communication, each system has to implement its own Actuator. It should be a ConcreteActuator, which implements the interface Actuator. The method to be implemented is act, which has the following parameters:
resourceId
-- identifies the resource that is the subject of the adaptationaction
-- name of the action to be performed. This will be used to inform the ActuatorAPI about which action to be performedconfig
-- list (key/value) of attributes to execute the operation