Priming The CLAMP Automation Composition Runtime Lifecycle Management uses the following system-level dialogues. These dialogues enable the CLAMP runtime capabilities described in Section 2 of TOSCA Defined Automation Compositions: Architecture and Design. Design Time dialogues will be described in future releases of the system.

1 Dialogues on Participants

1.1 Register a Participant

Participant Registration is performed by a Participant when it starts up. It registers its ID and the ACM Element Types it supports with the ACM runtime. Participant Participant ACM_Runtime ACM_RuntimeACM_Database ACM_Database [ASYNC] Register Create or Update Participant Registrationand store supported ACM element types Set Participant State as ONLINE Registration Accepted Mark all ACM Element Instancesrunning on Participant as ONLINE

1.2 Deregister a Participant

Participant Deregistration is performed by a Participant when it shuts down. It deregisters its ID and type with the ACM runtime.

The participant should already have cleared down all its ACM Element instances and set their states to "Not In Service".


Participant Participant ACM_Runtime ACM_RuntimeACM_Database ACM_Database Uninitialize all ACM Element Instances running on Participant(See Instantiation Dialogues) [ASYNC] Deregister Delete Participant Registration Set Participant State as OFFLINE [ASYNC] Deregistration Accepted Mark all ACM Element Instancesrunning on Participant as OFFLINE

1.3 Supervise Participants

Participant Supervision is performed periodically between participants and the ACM runtime server to ensure that registered participants are available over time. Participants send a heartbeat message to the ACM runtime at a configured interval.

The heartbeat message contains updated status information for each AC Element Instance that has changed status since the last Heartbeat message sent by the participant


Participant Participant ACM_Runtime ACM_RuntimeACM_Database ACM_Database loop[Every Participant Supervision Interval] [ASYNC] Heartbeat message includingstatus and states of AC Element Instances on Participant Update Participant Heartbeat data Set Participant State as ONLINE loop[Every AC Element Instance in Heartbeat Message] Mark AC Element Instance as ONLINEand Update AC Element Instance status

The ACM runtime regularly checks the heartbeat reports from participants and takes action if participants time out. If a heartbeat message is not received for a participant in the Timeout Interval, the participant is marked as timed out and its ACM element instances are informed.


ACM_Runtime ACM_RuntimeACM_Database ACM_Database Database Database loop[Every ACM_Runtime Supervision Interval] loop[Over all Participants] Read Participant Heartbeat Information alt[Participant Heartbeat not received in Timeout Interval] Set Participant State as OFFLINE Mark all ACM Element Instancesrunning on Participant as OFFLINE

1.4 Get Participant Information

The information on participants is available over a REST endpoint.


REST REST ACM_Runtime ACM_RuntimeACM_Database ACM_Database Get Participant Information Read Participant Data Return Participant Information includingsupported AC Element Types,AC Element Instances and their statesand Heartbeat Information

1.5 Order Full Participant Report

A user can order a full participant report. Each participant responds with a heartbeat report immediately. This preempts the normal heartbeat period reporting and refreshes the status of AC Element Instances immediately.


REST REST ACM_Runtime ACM_Runtime Participants Participants Order Participant Information Issue immediate Heartbeat Report(See §1.3) Participant Information Ordered

2 Dialogues on Automation Composition Types

Commissioning dialogues are used to commission and decommission Automation Composition Types and to set the values of Common Parameters. The values of common parameters are included in the TOSCA YAML file that defines the full Automation Composition Type.

2.1 Commission or Update an Automation Composition Type

Create on a POST and update on a PUT.


REST REST ACM_Runtime ACM_RuntimeACM_Database ACM_Database Commission Automation Composition Type alt[Automation Composition Type exists and has Instances] Automation Composition Type Commissioning Failed Create and Store Automation Composition Type Set Automation Composition Type State to COMMISSIONED Automation Composition Type Commissioned

2.2 Commission an Automation Composition Type using SDC

SDC SDC Policy_Distribution Policy_Distribution ACM_Runtime ACM_Runtime [ASYNC] CSAR containing Automation Composition Type Definition Commission Automation Composition Type(See Commissioning Sequence Diagram) Result of Commissioning [ASYNC] Return result of Deployment

2.3 Decommission an Automation Composition Type

REST REST ACM_Runtime ACM_RuntimeACM_Database ACM_Database Decommission Automation Composition Type alt[Automation Composition Type is not in state COMMISSIONED] Automation Composition Type Decommissioning Failed Delete Automation Composition Type Automation Composition Type Decommissioned

2.4 Prime an Automation Composition Type on Participants

The Priming operation sends Automation Composition Types and common property values to participants for each Automation Composition Element Type in the Automation Composition Type.


REST REST ACM_Runtime ACM_Runtime Participant ParticipantACM_Database ACM_Database alt[Automation Composition Type has Deployed Instances] Priming of Automation Composition Type Failed, instances deployed [Automation Composition Type is in state COMMISSIONED or PRIMED] Prime Automation Composition Type Read Automation Composition Type Read Participants Set suitable participant ID on each AC Element Type alt[Was a sutable participant ID found for each AC Element Type?] [ASYNC] Send Priming Request to all Participantswith Automation Composition Type Definition Set Automation Composition Type State to PRIMING Priming of Automation Composition Type Ordered Priming of Automation Composition Type Faield, no sutiable participant found Priming of Automation Composition Type Failed, invalid state

A participant should respond for each Automation Composition Element Type, thus causing the full Automation Composition Type to become primed. Note that if more than one participant can support an Automation Composition Element Type the ACM Runtime uses the participant in the first response it receives for that Automation Composition Element Type. ACM_Runtime ACM_Runtime Participant Participant participant participant [ASYNC] Prime AC Element Types for this AC Type loop[over AC Element Types in AC Type] alt[Does the primed Participant ID on this AC Element Typematch my Participant ID] alt[Does this AC Element Type already exist] [ASYNC] WARN: AC Element Type already exists Create AC Element Type alt[AC Element successfully created] [ASYNC] INFO: AC Element successfully primed [ASYNC] ERROR: AC Element priming failed ignore this AC Element Type as its for another participant

The ACM Runtime updates the priming information in the database.


ACM_Runtime ACM_Runtime Participant ParticipantACM_Database ACM_Database [ASYNC] Result of Priming of AC Element Type Record result of AC Element Type Priming alt[Is AC Element Type Primed?] alt[Have all the other AC Element Types in this AC Type been Primed?] Set AC Type state as PRIMED

2.5 Deprime an Automation Composition Type on Participants

The Depriming operation removes Automation Composition Types and common property values on participants for each Automation Composition Element Type in the Automation Composition Type.


REST REST ACM_Runtime ACM_Runtime Participant ParticipantACM_Database ACM_Database alt[Automation Composition Type has Instances] Depriming of Automation Composition Type Failed [AC Type State is PRIMED or PRIMING] Deprime Automation Composition Type Read Automation Composition Type [ASYNC] Send Depriming Request to all Participantswith Automation Composition Type Definition Set Automation Composition Type State to DEPRIMING Depriming of Automation Composition Type Ordered Depriming of Automation Composition Type Failed, invalid state

A participant should respond for each Automation Composition Element Type, thus causing the full Automation Composition Type to become deprimed.


ACM_Runtime ACM_Runtime Participant Participant [ASYNC] Deprime AC Element Types for this AC Type loop[over AC Element Types in AC Type] alt[Does the deprimed Participant ID on this AC Element Typematch my Participant ID] alt[Does this AC Element Type Exist] Delete AC Element Type Deletion of an AC Element Type always returns success [ASYNC] INFO: AC Element successfully primed [ASYNC] WARN: AC Element Type is already deprimed ignore this AC Element Type as its for another participant

The ACM Runtime updates the priming information in the database.


ACM_Runtime ACM_Runtime Participant ParticipantACM_Database ACM_Database [ASYNC] Result of Depriming of AC Element Type Record result of AC Element Type Depriming alt[Is AC Element Type Deprimed?] alt[Have all the other AC Element Types in this AC Type been Deprimed?] Set AC Type state as COMMISSIONED

2.6 Get Automation Composition Types

This dialogue allows an Automation Composition Type  to be read.


REST REST ACM_Runtime ACM_RuntimeACM_Database ACM_Database Get Automation Composition Type Information Read Automation Composition Type Information Respond with Automation Composition Type informationincluding ACM Element Type information and Priming Status

3. Instantiation Dialogues

Instantiation dialogues are used to create, set parameters on, instantiate, update, and remove Automation Composition instances.

3.1 Create an Automation Composition Instance


REST REST ACM_Runtime ACM_RuntimeACM_Database ACM_Database Create Automation Composition Instance forspecified Automation Composition Type withspecified parameter values alt[Automation Composition Instance exists] alt[Automation Composition Instance is not in state UNDEPLOYED] Automation Composition instance exists and is already deployed Updates on "Not In Service" Automation Composition Instances are allowed alt[Specified Automation Composition Type Exists] alt[Specified Automation Composition Type is in state PRIMED] Store Automation Composition Instance Set Automation Composition Instance State to UNDEPLOYED Automation Composition Instance Created Automation Composition Type is not in state PRIMED Automation Composition Type is not found

Note that this dialogue creates the Automation Composition Instance in the ACM database. The instance is sent to the participants using the process described in the dialogue in Section 3.3.

3.2 Delete an Automation Composition Instance

REST REST ACM_Runtime ACM_RuntimeACM_Database ACM_Database Delete Automation Composition Instance alt[Automation Composition Instance exists] alt[Automation Composition Instance is not in state UNDEPLOYED] Automation Composition instance exists and is deployed Automation Composition instance does not exist Delete Automation Composition Instance Automation Composition Instance Deleted

3.3 Deploy Automation Composition Instance

The user requests the AC Instance to be deployed using a REST endpoint. The ACM Runtime orders the AC Instance to be deployed to Participants.


REST REST ACM_Runtime ACM_Runtime Participants ParticipantsACM_Database ACM_Database Deploy Automation Composition Instance Read Automation Composition Instance Information alt[Automation Composition Instance exists] alt[Automation Composition Instance is deployed] Automation Composition instance is already deployed [ASYNC] Deploy AC Element Instances for this AC Instance Set AC Instance and its AC Element Instances to state DEPLOYING Deployment of Automation Composition Instance has been requested Automation Composition instance does not exist

Each participant deploys its AC Element Instances from the AC Instance.


ACM_Runtime ACM_Runtime Participant Participant Participant_API Participant_API [ASYNC] Deploy AC Element Instances for this AC Instance loop[over AC Element Instances in AC Instance] alt[Does the primed Participant ID on this AC Element Instancematch my Participant ID?] alt[Is this AC Element Instance already deployed] [ASYNC] WARN: AC Element is already deployed Deploy AC Element Instance AC Element Instance Deploy Response alt[AC Element deployed successfully] Set AC Element Instance administrative state to LOCKED [ASYNC] INFO: AC Element has been deployed [ASYNC] ERROR: AC Element was not deployed Ignore this AC Element instance as its for another participant

The ACM Runtime receives and stores the responses.


ACM_Runtime ACM_Runtime Participant ParticipantACM_Database ACM_Database [ASYNC] Deploy Automation Composition Element Instance Response Store Automation Composition Element Instance Response Information alt[Is AC Element Instance Deployed?] Set AC Element Instance State as DEPLOYED alt[Are all the other AC Element Instances in this AC Instance in state DEPLOYED?] Set AC Instance state as DEPLOYED

3.4 Undeploy Automation Composition Instance

The user requests the AC Instance to be undeployed using a REST endpoint. The ACM Runtime orders the AC Instance to be undeployed.


REST REST ACM_Runtime ACM_Runtime Participants ParticipantsACM_Database ACM_Database Undeploy Automation Composition Instance Read Automation Composition Instance Information alt[Automation Composition Instance exists] alt[Automation Composition Instance administrative state is not LOCKED] Automation Composition instance exists and is not LOCKED Automation Composition instance does not exist [ASYNC] Undeploy AC Element Instances for this AC Instance Mark this AC Instance and its AC Element Instances as UNDEPLOYING Undeployment of Automation Composition Instance has been requested

Each participant undeploys its AC Element Instances from the AC Instance


ACM_Runtime ACM_Runtime Participant Participant Participant_API Participant_API [ASYNC] Undeploy AC Element Instances for this AC Instance loop[over AC Element Instances in AC Instance] alt[Does the primed Participant ID on this AC Element Instancematch my Participant ID?] alt[Does this AC Element Instance exist?] [ASYNC] WARN: AC Element does not exist [Is this administrative state of this AC Element Instance LOCKED] Undeploy AC Element Instance Undeploy AC Element Instance Response [ASYNC] INFO: AC Element undeployed successfully Undeploy always returns success [ASYNC] WARN: AC Element is already undeployed Ignore this AC Element instance as its for another participant

The ACM Runtime receives and stores the responses.


ACM_Runtime ACM_Runtime Participant ParticipantACM_Database ACM_Database [ASYNC] Undeploy Automation Composition Element Instance Response Store Automation Composition Element Instance Response Information alt[Is AC Element Instance undeployed?] Mark AC Element Instance as UNDEPLOYED alt[Are all the other AC Element Instances in this AC Instance in state UNDEPLOYED?] Set AC Instance state as UNDEPLOYED

3.5 Read Automation Composition Instances

REST REST ACM_Runtime ACM_RuntimeACM_Database ACM_Database Get Automation Composition Instance Information Read Automation Composition Instance Information Respond with Automation Composition Instance informationincluding ACM Element Instance informationand admin, operational, and usage state

3.6 Unlock Automation Composition Instance

The user requests the AC Instance to be unlocked using a REST endpoint. The ACM Runtime orders the AC Instance to be unlocked on Participants.


REST REST ACM_Runtime ACM_Runtime Participants ParticipantsACM_Database ACM_Database Unlock Automation Composition Instance Read Automation Composition Instance Information alt[Automation Composition Instance exists] alt[Automation Composition Instance administrative state is LOCKED] [ASYNC] Unlock AC Element Instances for this AC Instance Mark AC Instance and its AC Element Instances as Unlocking Unlocking of Automation Composition Instance has been requested Automation Composition instance is not locked Automation Composition instance does not exist

Each participant unlocks its AC Element Instances from the AC Instance.


ACM_Runtime ACM_Runtime Participant Participant Participant_API Participant_API participant participant [ASYNC] Unlock AC Element Instances for this AC Instance loop[over AC Element Instances in AC Instance] alt[Does the primed Participant ID on this AC Element Instancematch my Participant ID?] alt[Is this AC Element Instance administrative state not LOCKED] [ASYNC] WARN: AC Element is not LOCKED Unlock AC Element Instance Unlock AC Element Instance Response alt[AC Element unlocked successfully] Set AC Element Instance administrative state to UNLOCKED [ASYNC] INFO: AC Element has been unlocked [ASYNC] ERROR: AC Element was not unlocked Ignore this AC Element instance as its for another participant

The ACM Runtime receives and stores the responses.


ACM_Runtime ACM_Runtime Participant ParticipantACM_Database ACM_Database [ASYNC] Unlock Automation Composition Element Instance Response Store Automation Composition Element Instance Response Information alt[Is AC Element Instance Unlocked?] Set AC Element Instance administrative state as UNLOCKED alt[Have all the other AC Element Instances in this AC Instance been UNLOCKED?] Set AC Instance administrative state as UNLOCKED

3.7 Lock Automation Composition Instance

The user requests the AC Instance to be locked using a REST endpoint. The ACM Runtime orders the AC Instance to be locked on Participants.


REST REST ACM_Runtime ACM_Runtime Participants ParticipantsACM_Database ACM_Database Lock Automation Composition Instance Read Automation Composition Instance Information alt[Automation Composition Instance exists] alt[Automation Composition Instance administrative state is UNLOCKED] [ASYNC] Lock AC Element Instances for this AC Instance Mark AC Instance and its AC Element Instances as Locking Locking of Automation Composition Instance has been requested Automation Composition instance is not unlocked Automation Composition instance does not exist

Each participant locks its AC Element Instances from the AC Instance.


ACM_Runtime ACM_Runtime Participant Participant Participant_API Participant_API participant participant [ASYNC] Lock AC Element Instances for this AC Instance loop[over AC Element Instances in AC Instance] alt[Does the primed Participant ID on this AC Element Instancematch my Participant ID?] alt[Is this AC Element Instance administrative state not UNLOCKED] [ASYNC] WARN: AC Element is not UNLOCKED Set AC Element Instance administrative state to SHUTTING_DOWN Lock AC Element Instance Lock AC Element Instance Response alt[AC Element locked successfully] Set AC Element Instance administrative state to LOCKED [ASYNC] INFO: AC Element has been locked [ASYNC] ERROR: AC Element was not locked Ignore this AC Element instance as its for another participant

The ACM Runtime receives and stores the responses.


ACM_Runtime ACM_Runtime Participant ParticipantACM_Database ACM_Database [ASYNC] Lock Automation Composition Element Instance Response Store Automation Composition Element Instance Response Information alt[Is AC Element Instance Locked?] Set AC Element Instance administrative state as LOCKED alt[Have all the other AC Element Instances in this AC Instance been LOCKED?] Set AC Instance administrative state as LOCKED

3.8 Update Operational State on Automation Composition Instance

Participant_API Participant_API Participant Participant ACM_Runtime ACM_Runtime Perform Operation that Updates Operational State Operational State has been updated Update Operational State in ACM Element Instance Periodically with Heartbeat [ASYNC] Heartbeat message includingstatus and states of AC Element Instances on Participant

3.9 Update Usage State on Automation Composition Instance

Participant_API Participant_API Participant Participant ACM_Runtime ACM_Runtime Perform Operation that Updates Usage State Usage State has been updated Update Usage State in ACM Element Instance Periodically with Heartbeat [ASYNC] Heartbeat message includingstatus and states of AC Element Instances on Participant

  • No labels