...
PlantUML Macro |
---|
@startuml
participant CLAMP_GUI
participant CLAMP_Runtime
participant Participant
database Database
CLAMP_GUI -> CLAMP_Runtime: [REST] Read Control Loop Type Definitions
CLAMP_Runtime -> Database: Read Control Loop Type Definitions
CLAMP_Runtime -> CLAMP_GUI: [REST] Type Definitions returned
CLAMP_GUI -> CLAMP_GUI: Select Control Loop Type Definition for Commissioning on Participants
CLAMP_GUI -> CLAMP_Runtime: [REST] Commission Control Loop Type Definition on Participants
alt Control Loop Type Definition not Commissioned on Participants
CLAMP_Runtime -> Database: Read Control Loop Type Definition
CLAMP_Runtime -> Database: Read Common Parameter Values for Control Loop Type Definition
alt Common Parameter values set for Control Loop Type Definition
CLAMP_Runtime -> Participants: [DMaaP] Update Participants with Control Loop Type Definition and values for Common Parameters
CLAMP_Runtime -> CLAMP_GUI: [REST] Control Loop Type Definition commissioning ordered on participants
else Control Loop Type Definition already Commissioned on Participants
CLAMP_Runtime -> CLAMP_GUI: [REST] Common Parameters not set\non Control Loop Type Definition
end
else Control Loop Type Definition already Commissioned on Participants
CLAMP_Runtime -> CLAMP_GUI: [REST] Cannot set Common Parameters on\nControl Loop Type Definition that has\nbeen commissioned on participants
end
== Participant Responses ==
Participants -> CLAMP_Runtime: [DMaaP] Result of Update with Control Loop Type Definition and values for Common Parameters
CLAMP_Runtime -> Database: Store result of Control Loop Type Definition Update on Participant
== Supervision ==
loop forever
CLAMP_Runtime -> Database: Read Control Loop Type Definitions
loop over each Control Loop Type Definition
alt Control Loop Type Definition Participant Commission underway
CLAMP_Runtime -> Database: read result of Control Loop Type Definition Updates from participants
alt Updates completed on all participants
CLAMP_Runtime -> Database: set Control Loop Type Definition as Commissioned on Participants
else Updates not completed
alt Commissioning of Control Loop Type Definition on participants timed out
CLAMP_Runtime -> Database: set Control Loop Type Definition commissioning as timed out on Participants
CLAMP_Runtime -> CLAMP_Runtime: Log error
else Wait for updates to complete
end
end
else Control Loop Type Definition Participant Commission not underway
end
end
end
@enduml |
1.5 Decommissioning a Control Loop Type Definition on Participants
...
PlantUML Macro |
---|
@startuml
participant CLAMP_GUI
participant CLAMP_Runtime
participant Participant
database Database
CLAMP_GUI -> CLAMP_Runtime: [REST] Read Control Loop Type Definitions
CLAMP_Runtime -> Database: Read Control Loop Type Definitions
CLAMP_Runtime -> CLAMP_GUI: [REST] Type Definitions returned
CLAMP_GUI -> CLAMP_GUI: Select Control Loop Type Definition for Decommissioning on Participants
CLAMP_GUI -> CLAMP_Runtime: [REST] Decommission Control Loop Type Definition on Participants
alt Control Loop Type Definition Commissioned on Participants
alt Control Loop Instances do not exist for Control Loop Type Definition
CLAMP_Runtime -> Participants: [DMaaP] Update Participants, removing Control Loop Type Definition and values for Common Parameters
CLAMP_Runtime -> CLAMP_GUI: [REST] Control Loop Type Definition decommissioning ordered on participants
else Control Loop Instances exist for Control Loop Type Definition
CLAMP_Runtime -> CLAMP_GUI: [REST] Control Loop Type Definition cannot be\n decommissioned on participants\nit is in use on control loops
end
else Control Loop Type Definition not Commissioned on Participants
CLAMP_Runtime -> CLAMP_GUI: [REST] Control Loop Type Definition has not\nbeen commissioned on participants
end
== Participant Responses ==
Participants -> CLAMP_Runtime: [DMaaP] Result of Update to remove Control Loop Type Definition and values for Common Parameters
CLAMP_Runtime -> Database: Store result of Control Loop Type Definition Update on Participant
== Supervision ==
loop forever
CLAMP_Runtime -> Database: Read Control Loop Type Definitions
loop over each Control Loop Type Definition
alt Control Loop Type Definition Participant decommission underway
CLAMP_Runtime -> Database: read result of Control Loop Type Definition Updates from participants
alt Updates completed on all participants
CLAMP_Runtime -> Database: set Control Loop Type Definition as decommissioned on Participants
else Updates not completed
alt Commissioning of Control Loop Type Definition on participants timed out
CLAMP_Runtime -> Database: set Control Loop Type Definition decommissioning as timed out on Participants
CLAMP_Runtime -> CLAMP_Runtime: Log error
else Wait for updates to complete
end
end
else Control Loop Type Definition Participant decommission not underway
end
end
end
@enduml |
1.6 Decommissioning a Control Loop Type Definition in CLAMP
...
PlantUML Macro |
---|
@startuml
participant CLAMP_GUI
participant CLAMP_Runtime
participant Participant
database Database
CLAMP_GUI -> CLAMP_Runtime: [REST] Read all versions of Control Loop Instance
CLAMP_Runtime -> Database: Read all versions of Control Loop Instance
CLAMP_Runtime -> CLAMP_GUI: [REST] All versions of Control Loop Instance returned
CLAMP_GUI -> CLAMP_GUI: Select version of Control Loop Instance for Instantiation Participants
CLAMP_GUI -> CLAMP_Runtime: [REST] Instantiate selected version of Control Loop Instance on Participants
alt Selected version of Control Loop Instance not instantiated on Participants
CLAMP_Runtime -> Database: Read version of Control Loop Instance
CLAMP_Runtime -> Participants: [DMaaP] Update Participants with version of Control Loop Instance
CLAMP_Runtime -> CLAMP_GUI: [REST] Instantiation of Version of Control Loop Instance ordered on participants
else Selected version of Control Loop Instance instantiated on Participants
CLAMP_Runtime -> CLAMP_GUI: [REST] Version of Control Loop Instance already instantiated on participants
end
== Participant Responses ==
Participants -> CLAMP_Runtime: [DMaaP] Result of update of version of Control Loop Instance on participant
CLAMP_Runtime -> Database: Store result of update of version of Control Loop Instance on participant
== Supervision ==
loop forever
CLAMP_Runtime -> Database: Read Control Loop Instances
loop over each Control Loop Instance
alt Control Loop Instance Instantiation update underway on participants
CLAMP_Runtime -> Database: read result of Control Loop updates from participants
alt Updates completed on all participants
CLAMP_Runtime -> Database: set version of Control Loop Instance as Instantiated on Participants
CLAMP_Runtime -> Database: set overall version of Control Loop Instance state as Instantiated
else Updates not completed
alt Instantiation of Control Loop Instance on participants timed out
CLAMP_Runtime -> Database: set version Control Loop Instance Instantiation as timed out on Participants
CLAMP_Runtime -> CLAMP_Runtime: Log error
else Wait for updates to complete
end
end
else Control Loop Instance Instantiation update on participants not underway
end
end
end
@enduml |
2.5 Changing the state of a Control Loop Instance on Participants
PlantUML Macro |
---|
@startuml
participant CLAMP_GUI
participant CLAMP_Runtime
participant Participant
database Database
CLAMP_GUI -> CLAMP_Runtime: [REST] Read all Instantiated Control Loop Instances
CLAMP_Runtime -> Database: Read all Instantiated Control Loop Instances
CLAMP_Runtime -> CLAMP_GUI: [REST] All Instantiated Control Loop Instances returned
CLAMP_GUI -> CLAMP_GUI: Select Control Loop Instance on which to change state and specify new state
CLAMP_GUI -> CLAMP_Runtime: [REST] Change state of selected Control Loop Instance on Participants
alt Selected Control Loop Instance instantiated on Participants
CLAMP_Runtime -> Participants: [DMaaP] Request change of state of Control Loop Instance
CLAMP_Runtime -> CLAMP_GUI: [REST] Change of state of Control Loop Instance ordered on participants
else Selected Control Loop Instance not instantiated on Participants
CLAMP_Runtime -> CLAMP_GUI: [REST] Control Loop Instance not instantiated on participants
end
== Participant Responses ==
Participants -> CLAMP_Runtime: [DMaaP] Result of State Change of Control Loop Instance on participant
CLAMP_Runtime -> Database: Store result of State Change of Control Loop Instance on participant
== Supervision ==
loop forever
CLAMP_Runtime -> Database: Read Control Loop Instances
loop over each Control Loop Instance
alt Control Loop Instance State Change underway on participants
CLAMP_Runtime -> Database: read result of Control Loop State Change from participants
alt Updates completed on all participants
CLAMP_Runtime -> Database: set Control Loop Instance state as changed on Participants
CLAMP_Runtime -> Database: set overall Control Loop Instance state as changed
else Updates not completed
alt Control Loop Instance State Change on participants timed out
CLAMP_Runtime -> Database: set Control Loop State Change as timed out on Participants
CLAMP_Runtime -> CLAMP_Runtime: Log error
else Wait for updates to complete
end
end
else Control Loop Instance State Change on participants not underway
end
end
end
@enduml |
2.6 De-instantiating a Control Loop Instance from Participants
...
3.3 Statistics Housekeeping
PlantUML Macro |
---|
@startuml
participant CLAMP_Runtime
database Database
loop forever
CLAMP_Runtime -> Database: Read Control Loop Instances
loop over each Control Loop Instance
alt Control Loop Instance de-instantiation update underway on participants
CLAMP_Runtime -> Database: read result of Control Loop updates from participants
alt Updates completed on all participants
CLAMP_Runtime -> Database: set Control Loop Instance as de-instantiated on Participants
CLAMP_Runtime -> Database: set overall Control Loop Instance as de-instantiated
else Updates not completed
alt Control Loop Instance de-instantiation Update timed out on participants
CLAMP_Runtime -> Database: set Control Loop Instance de-instantiation as timed out on Participants
CLAMP_Runtime -> CLAMP_Runtime: Log error
else Wait for updates to complete
end
end
else Control Loop Instance de-instantiation update on participants not underway
end
end
@enduml |