Sequence Diagram

@startuml
Title Application LCM Step 3 - Catalog Package
skinparam sequenceArrowThickness 2
skinparam ParticipantPadding 5
skinparam BoxPadding 10
skinparam ArrowColor #blue
autonumber

Box Personnel #lightblue
Actor sOP as "SMO Operator" <<INT OTF>>
End box

Box "SMO" #gold
Participant sPMGR as "Package Manager" <<RICAPP>>
Boundary MC as "Model Catalog" <<SMO MVC State Manager>>
end box

== Catalog ==

sOP -> sPMGR : Catalog (applicationVersionID, modelCatalogEndPoint)
sPMGR -> MC : GET ../applications/<applicationVersionID>
alt if application not found
   note over sPMGR : Requested Version not in Catalog, return error
else if application.State is NOT VALIDATED then
   note over sPMGR : Requested Version not in Validated State, return error
else
   sPMGR -> sPMGR : GetDeploymentList
   loop foreach defined deployment configuration
      sPMGR -> MC : POST ../applications/<applicationVersionID>/deployments {deployment}
      return deploymentID

      sPMGR -> sPMGR : GetDeploymentDescriptor
      sPMGR -> MC : POST ../applications/<applicationVersionID>/deployments/<deploymentID>/descriptor {deployment}

      sPMGR -> sPMGR : GetPolicyProfiles
      loop foreach Policy Profile
         sPMGR -> MC : POST ../applications/<applicationVersionID>/deployments/<deploymentID>/policytype {policyProfile}
      end

      sPMGR -> sPMGR : GetDataConsumptionInfo
      loop foreach dataConsumptionDefinition in dataConsumptionInfo
         sPMGR -> MC : POST ../applications/<applicationVersionID>/deployments/<deploymentID>/consumes {dataConsumptionDefinition}
      end

      sPMGR -> sPMGR : GetDataPublicationInfo
      loop foreach dataPublicationDefinition in dataPublicationInfo
         sPMGR -> MC : POST ../applications/<applicationVersionID>/deployments/<deploymentID>/publishes {dataPublicationDefinition}
      end

      sPMGR -> sPMGR : GetDeploymentConfigurationSchema
      sPMGR -> MC : POST ../applications/<applicationVersionID>/deployments/<deploymentID>/DeploymentConfiguration {deploymentConfiguration}

      sPMGR -> sPMGR : GetApplicationConfigurationSchema
      sPMGR -> MC : POST ../applications/<applicationVersionID>/deployments/<deploymentID>/ApplicationConfiguration {applicationConfiguration}

      sPMGR -> sPMGR : GetDeploymentImages
      loop foreach imageFile in deploymentImages
         sPMGR -> MC : POST ../applications/<applicationVersionID>/deployments/<deploymentID>/images {imageFile}
      end

      sPMGR -> sPMGR : GetCertificates
      loop foreach certificate in applicationCertificates
         sPMGR -> MC : POST ../applications/<applicationVersionID>/deployments/<deploymentID>/certificates {certificate}
      end
   end
end if

sPMGR --> sOP : Status

@enduml



  • No labels

2 Comments

  1. Question:

    I see here one "SET" request - what is the advantage of several independent SET requests?

    1. No real advantage, except object complexity. If we want one set then the entire object and its heirarchy, including sub-structure has to be known to the GET/SET pair. There is also more data for ML applications that is not represented here. I kept it this way such that the cataloging routines can simply be called without knowledge to sub-structure. It is of note to see that the Create of the objects under the application use POST instead of PUT. The main application version entry has an external key. These objects use POST such that the catalog provides the record key. This would change if it became one PUT (update) activity.