Versions Compared

Key

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

...

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

...