Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Automation Composition Management manages a number of states of various types to manage the lifecycle of compositions. Those states are described here. Please also see the ACM System Level Dialogues page to see the system dialogues that change states and how states interrelate in detail. Please also see ITU Recommendation X.731, which is reflected in the states of AC Element Instances.

Participant State

ACParticipant states are NOT managed by ACM but the state of a participant is recorded and supervised by ACM.


PlantUML Macro
@startuml

[*] --> ONLINE: Register
ONLINE --> ONLINE: Heartbeat
ONLINE --> OFFLINE: Timeout
OFFLINE --> ONLINE: Heartbeat
ONLINE --> [*]: Deregister
OFFLINE --> [*]: Deregister

@enduml

Automation Composition Type State

The states that an Automation Composition Type can have are shown in the diagram below.


PlantUML Macro
@startuml

[*] --> COMMISSIONED: Commission
COMMISSIONED --> [*]: Decommission
COMMISSIONED --> PRIMING: Prime
PRIMED --> PRIMING: Prime
PRIMING --> PRIMED: AC Element Types\nall PRIMED
PRIMING --> DEPRIMING: Deprime
PRIMED --> DEPRIMING: Deprime
DEPRIMING --> COMMISSIONED: AC Element Types\nall DEPRIMED

@enduml


Automation Composition Element Type State

The states that an Automation Composition Element Type can have on ACM Runtime are shown in the diagram below.


PlantUML Macro
@startuml

[*] --> COMMISSIONED: Commission
COMMISSIONED --> [*]: Decommission
COMMISSIONED --> PRIMING: Prime
PRIMED --> PRIMING: Prime
PRIMING --> PRIMED: AC Element Type Primed\nresponse from Participant
PRIMING --> DEPRIMING: Deprime
PRIMED --> DEPRIMING: Deprime
DEPRIMING --> COMMISSIONED: AC Element Type Deprimed\nresponse from Participant

@enduml


The states that an Automation Composition Element Type can have on a Participant are shown in the diagram below.

PlantUML Macro
@startuml

[*] --> PRIMED: Prime from\nACM Runtime
PRIMED --> PRIMED: Prime from ACM Runtime
PRIMED --> [*]: Deprime from\nACM Runtime

@enduml

Automation Composition Instance State

The states that an Automation Composition Instance can have are shown in the diagram below.


PlantUML Macro
@startuml

The current ACM state machine works but it is incosistent in the way it handles error states or failed transitions. A composition and its elements can get "stuck" in transition states.

State Machine for Automation Compositions

Current State Machine

Proposed State Machine

PlantUML Macro
@startuml
'https://plantuml.com/state-diagram

state UNINITIALIZED

state UNINITIALIZED_TO_PASSIVE

state PASSIVE_TO_UNINITIALIZED

state PASSIVE

state PASSIVE_TO_RUNNING

state RUNNING_TO_PASSIVE

state RUNNING

state RUNNING_TO_PASSIVE_ERROR

state PASSIVE_TO_RUNNING_ERROR

state RUNNING

state RUN_ERROR



[*] --> UNDEPLOYED: UNINITIALIZED

UNINITIALIZEDCreate
UNDEPLOYED --> [*]: Delete
UNDEPLOYED --> UNINITIALIZED_TO_PASSIVE

PASSIVE_TO_UNINITIALIZEDDEPLOYING: Deploy
DEPLOYING --> DEPLOYED: AC Element Instances\nall DEPLOYED
DEPLOYING --> UNINITIALIZED

UNINITIALIZED_TO_PASSIVEUNDEPLOYING: Undeploy
DEPLOYED --> UNDEPLOYING: Undeploy
UNDEPLOYING --> PASSIVE

PASSIVE UNDEPLOYED: AC Element Instances\nall UNDEPLOYED


state DEPLOYED {
 [*] --> PASSIVE_TO_RUNNING

PASSIVELOCKED: Deploy
 LOCKED --> [*]: Undeploy
 LOCKED --> PASSIVE_TO_UNINITIALIZED

PASSIVE_TO_RUNNINGUNLOCKING: Unlock
 UNLOCKING --> UNLOCKED: AC Element Instances\nall UNLOCKED
 UNLOCKED --> LOCKING: RUNNING

PASSIVE_TO_RUNNING --> PASSIVE_TO_RUNNING_ERROR

PASSIVE_TO_RUNNING_ERROR --> PASSIVE_TO_RUNNING

RUNNING --> RUNNING_TO_PASSIVE

RUNNING_TO_PASSIVE --> PASSIVE

RUNNING_TO_PASSIVE --> RUNNING_TO_PASSIVE_ERROR

RUNNING --> RUN_ERROR

RUN_ERROR --> RUNNING

RUN_ERROR --> RUNNING_TO_PASSIVE

RUNNING_TO_PASSIVE_ERROR --> RUNNING_TO_PASSIVE

@enduml

State Machine for Automation Composition Elements

Current State Machine

Lock
 UNLOCKING --> LOCKING: Lock
 LOCKING --> LOCKED: AC Element Instances\nall LOCKED
}

@enduml

Automation Composition Element Instance State

The states that an Automation Composition Element Instance can have on ACM Runtime are shown in the diagram below.


PlantUML Macro
@startuml

[*] --> UNDEPLOYED: Create
UNDEPLOYED --> [*]: Delete
UNDEPLOYED --> DEPLOYING: Deploy
DEPLOYING --> DEPLOYED: AC Element\nInstance DEPLOYED
DEPLOYING --> UNDEPLOYING: Undeploy
DEPLOYED --> UNDEPLOYING: Undeploy
UNDEPLOYING --> UNDEPLOYED: AC Element\nInstance UNDEPLOYED


state DEPLOYED {
 [*] --> LOCKED: Deploy
 LOCKED --> [*]: Undeploy
 LOCKED --> UNLOCKING: Unlock
 UNLOCKING --> UNLOCKED: AC Element\nInstance UNLOCKED
 UNLOCKED --> LOCKING: Lock
 UNLOCKING --> LOCKING: Lock
 LOCKING --> LOCKED: AC Element\nInstance LOCKED
}

@enduml


The states that an Automation Composition Element Instance can have on a Participant are shown in the diagram below.


PlantUML Macro
@startuml

[*] --> DEPLOYING: Deploy
DEPLOYING --> DEPLOYED: AC Element\nInstance DEPLOYED\nRespond with\nAC Element State Update
DEPLOYING --> UNDEPLOYING: Undeploy
DEPLOYING --> [*]: Deploy Failed\nRespond with\nAC Element State Update
DEPLOYED --> UNDEPLOYING: Undeploy
UNDEPLOYING --> [*]: Undeployed\nRespond with\nAC Element State Update

state DEPLOYED {
 [*] --> LOCKED
 LOCKED --> [*]
 LOCKED --> UNLOCKING: Unlock
 UNLOCKING --> UNLOCKED: AC Element\nInstance UNLOCKED
 UNLOCKED --> LOCKING: Lock
 UNLOCKING --> LOCKING: Lock
 LOCKING --> LOCKED: AC Element\nInstance LOCKED
}

@enduml

...