...
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.
PlantUML Macro |
---|
@startuml participant ACM_Runtime participant Participant == Each Participant == ACM_Runtime -> Participant: [ASYNC] Receive Priming Request with Automation Composition Type Definition loop Over all Automation Composition Element Type Definitions\nin Automation Composition Type Definition alt Automation Composition Element Type supported by Participant Participant -> Participant: Save Automation Composition Element Type details on this Participant Bring AC Element Instances for this AC Instance into Service loop over AC Element Instances in AC Instance alt Does the primed Participant ID on this AC Element Instance\nmatch my Participant ID alt Is this AC Element Instance already in service ACM_Runtime <- Participant: [ASYNC] WARN: SendAC PrimingElement Responseis claimingalready Automationin Compositionservice Element Typeelse Participant -> altParticipant: AutomationBring CompositionAC Element TypeInstance alreadyinto PrimedService activate Participant note right ofdeactivate Participant alt IgnoreAC PrimingElement Response came into service end notesuccessfully else ACM_Runtime <-> ACM_DatabaseParticipant: Record Participant for Automation Composition Element Type\nand set Element Type as Primed[ASYNC] INFO: AC Element brought into service else ACM_Runtime <- Participant: [ASYNC] ERROR: AC Element was not brought into service end end else note rightleft of ACM_Runtime Ignore Priming Requestparticipant ignore this AC Element instance as its for another participant end note end end @enduml |
2.5 Get Automation Composition Types
...
PlantUML Macro |
---|
@startuml participant REST participant ACM_Runtime participant Participants database ACM_Database REST -> ACM_Runtime: [REST] Bring Automation Composition Instance into Service ACM_Runtime -> ACM_Database: Read Automation Composition Instance Information alt Automation Composition Instance exists alt Automation Composition Instance is not state UNINITIALIZED ACM_Runtime -> REST: [REST] Automation Composition instance exists and is already in service else ACM_Runtime -> REST: [REST] Automation Composition instance does not exist end else ACM_Runtime -> Participants: [ASYNC] Bring AC Element Instances for this AC Instance into Service ACM_Runtime -> ACM_Database: Set status of AC Instance and its AC Element InstnacesInstances as "Coming into Service" ACM_Runtime -> REST: Automation Composition Instance has been requested to come into service end @enduml |
...
PlantUML Macro |
---|
@startuml participant ACM_Runtime participant ParticipantsParticipant RESTACM_Runtime -> ACM_RuntimeParticipant: [RESTASYNC] Bring AC AutomationElement CompositionInstances Instancefor into Service ACM_Runtime -> ACM_Database: Read Automation Composition Instance Information alt Automation Composition Instance exists alt Automation Composition Instance is not state UNINITIALIZED this AC Instance into Service loop over AC Element Instances in AC Instance alt Does the primed Participant ID on this AC Element Instance\nmatch my Participant ID alt Is this AC Element Instance already in service ACM_Runtime <-> RESTParticipant: [RESTASYNC] AutomationWARN: Composition instance exists andAC Element is already in service else ACM_Runtime Participant -> RESTParticipant: [REST] Automation Composition instance does not exist end else Bring AC Element Instance into Service activate Participant deactivate Participant alt AC Element came into service successfully ACM_Runtime <-> ParticipantsParticipant: [ASYNC] BringINFO: AC Element Instances for this AC Instance into Service brought into service else ACM_Runtime -> ACM_Database: Set status of AC Instance and its AC Element Instnaces as "Coming into Service" ACM_Runtime -> REST: Automation Composition Instance has been requested to come into service<- Participant: [ASYNC] ERROR: AC Element was not brought into service end end else note left of participant ignore this AC Element instance as its for another participant end note end end @enduml |
3.4 Take Automation Composition Instance out of Service
...