...
3.1.2: Deployment Sequence Diagrams
This section defines Deployment/CRUD Operations that can be performed on ControlLoop.
A Client in this case CLAMP can perform CRUD operations or can deploy ControlLoops from DesignTime to RunTime Catalogue Database.
DesignTime/RunTime Catalogue Database stores ControlLoop definitions, CRUD operations on database supported by REST Endpoints like Get, Delete, Create allowing selection of a particular ControlLoop to be addressed, below sequence diag will help you understand flow how a client(Clamp) application can initiate Rest call for performing different operations on Database.
CL_Instance_Control Service is Gateway for interacting to different database DesignTime/RunTime and should be responsible for responding success or failure status on different operations.
GET, DELETE, CREATE API ControlLoop Sequence Diagram
PlantUML Macro title GET, DELETE, CREATE API Sequence Diag @startuml actor CLAMP control CL_Instance_Control database Database note over Database: It can be DesiginTime Or RuntTime Catalogue Database CLAMP -> CL_Instance_Control: Rest API Request (JSON/Yaml) CL_Instance_Control -> Database: Get, Delete Or Create ControlLoops activate CL_Instance_Control note over CL_Instance_Control,Database: Pull, Delete existing Or Create New ControlLoops in Database alt successful case Database -> CL_Instance_Control : Return List of ControlLoops Or able to Delete, Create ControlLoop in Database CL_Instance_Control -> CLAMP: Return Success else failure case CL_Instance_Control <- Database: Return either Empty List for Get ControlLoops Or Failure Status for Delete, Create Request deactivate CL_Instance_Control note over Database: No ControlLoops exist Or Failed in Deleting, Creating ControlLoops CL_Instance_Control -> CLAMP : Return Failure end @enduml
Deploy API ControlLoop Sequence Diagram
PlantUML Macro title Deploy API ControlLoop Sequence Diag @startuml actor CLAMP control CL_Instance_Control database DesignTime_Catalogue_Database database RunTime_Catalogue_Database CLAMP -> CL_Instance_Control: Rest Deploy API Request (JSON/Yaml) CL_Instance_Control -> DesignTime_Catalogue_Database: Fetch ControlLoop from DesignTime Catalogue Database activate CL_Instance_Control note over CL_Instance_Control,DesignTime_Catalogue_Database: Fetch existing ControlLoops from DesignTime Catalogue Database alt successful case DesignTime_Catalogue_Database -> CL_Instance_Control : Return List of existing ControlLoops from DesignTime Catalogue Database note over DesignTime_Catalogue_Database, RunTime_Catalogue_Database: Populate RunTime Catalogue with ControlLoops existing in DesignTime Catalogue Database CL_Instance_Control -> RunTime_Catalogue_Database: Push ControlLoop to RunTime Catalogue Database CL_Instance_Control -> CLAMP: Return Success else failure case CL_Instance_Control <- DesignTime_Catalogue_Database: Return Empty ControlLoop List, No ControlLoop exist in DesignTime Catalogue deactivate CL_Instance_Control note over CL_Instance_Control, DesignTime_Catalogue_Database: DesignTime Catalogue Database is Empty, cannot deploy ControLoop in RunTime Catalogue Database CL_Instance_Control -> CLAMP : Return Failure end @enduml
...