"D"- <<SMO>> VirtualInventory

The Virtual Inventory provides access to other existing deployments. It is expected to be a distributed catalog and domain areas with their own Life Cycle and versions would have different domain roots.


This might be implemented by two separate objects as O-Clouds may be inventoried and managed independent of deployments which span them. Therefore O-Clouds and Deployments have two separate domain roots for the inventory created by a "deployment".


For the purposes of this implementation we will assume the following:

The Controller for inventory will be RESTful. The service endpoints will be used:

  • O-Clouds - {apiRoot}/OCloud/v1.
  • Deployments - {apiroot}/deployment/v1


 Click here to view plantUML...

@startsalt
{
scale 1.5
{T
+…/OCloud/v1
++/oclouds
+++/<oCloudID>
++++/resourcePools
+++++/<resourcePoolID>
++++++/resources
+++++++/<resourceID>
++++/deploymentServices
+++++/<DMSID>
++++++/resourcePools
+…/deployments/v1
++/deployments
+++/<deploymentID>
}
}
@endsalt


  • The O-Cloud Inventory Model is represented in the class diagram below

 Click here to view plantUML...

@startuml
Class EndPoint {
   IPV6Endpoint : string
   IPV4Endpoint : string
}

Class OCloud {
   oCloudID : string
   IMSEndPoint : EndPoint
   DMSList : string[]
   resourcePools : string []
   images : string []
}

Class ResourcePool {
   resourceID : string  
   locationID : string
   resourceNodes : string[]
}

Class OCloudNode {
   oCloudID : string
   resourePoolID : string
   resourceID : string
   resourceType : ResourceType
}

Class DeploymentService {
        OcloudID : string
        OcloudDMSID : string
        DMSEndPoint : EndPoint
        resourcePools : string []
        tenants : string []
}

OCloud -- EndPoint : > has a
DeploymentService -left- EndPoint : > has a

OCloud *-- ResourcePool
OCloud *-- DeploymentService

DeploymentService -right- ResourcePool : > allocates resources in
ResourcePool *-- OCloudNode

@enduml

  • The deployment Inventory Model is represented in the class diagram below

 Click here to view plantUML...

@startuml
Class Deployment {
     deploymentID : string
     deploymentTenant : string
     serviceConfigID : string
     resourceConfigID : string
     hostingOcloudID : string
     hostingOcloudDMSID : string
     hostedOCloudLocation : string
}

Deployment -left- Tenant : uses >
Deployment -- OCloud : deployed on >
Deployment -- DeploymentService : managed by >
Deployment -- Location : uses resources at >
Deployment -- ResourceConfiguration : with configuration >
Deployment -right- ServiceConfiguration : for service with >

@enduml