Skip to content

Latest commit

 

History

History
442 lines (328 loc) · 14 KB

SystemManager.md

File metadata and controls

442 lines (328 loc) · 14 KB

SystemManager

ODENOS core Component: System Manager
System Manager is in charge of managing the ComponentManager, EventManager, ComponentType, Component, and ComponentConnection.

Followings are brief description of these components' REST API


REST APIs

RemoteObject Manager
Event Manager
Component
Component Connection

get Object property.

[Request]:
  • Body : none
[Response]:

update Object property.

[Request]:
[Response]:

get Object settings.

[Request]:
  • Body : none
[Response]:

set Object settings.

[Request]:
[Response]:

get RemoteObject ObjectProperty.(SystemManager, EventManager, ComponentManager, Component ..)
<object_id> is ObjectProperty.id

[Request]:
  • Body : none
[Response]:

Get ComponentManagers list.

[Request]:
  • Body : none
[Response]:

get ComponentManagers property

[Request]:
  • Body : none
[Response]:

get ComponentType list.
ComponentType is Registered Component.Property.type

[Request]:
  • Body : none
[Response]:
  • Status Code : 200
  • Body : dict {ComponentType:{"type" :<string> "super_type":<string> , "connection_types":{<string>: <string>} , "description":<string> }
example(JSON)
 {
   "Aggregator"  : { "type": "Aggregator" ,  "super_type":"Aggregator" ,
                     "connection_types":{"original":"1", "aggregated":"1"}, "description":"Aggregator ...." },
   "Slicer"  : { "type": "Slicer" ,  "super_type":"Slicer" ,
                 "connection_types":{"original":"1", "Sliver":"*"}, "description":"Slicer  ...." },
   "Federator"  : { "type": "Federator" ,  "super_type":"Federator" ,
                    "connection_types":{"original":"*", "Federeted":"1"}, "description":"Federator  ...." }
   }
Key Value Description
type <String> ObjectType (example:ComponentManager,Network,Slicer,,,)
super_type <String> super class ObjectType. (example:ComponentManager,NetworkComponent,Slicer,,,)
connection_types dict{<String>:<String>} ComponentConnection.connection_type : connection max num
description <String>

get a list of ComponentManager.property <ComponentType> that can be created.
<ComponentType> is Registered Component.Property.type

[Request]:
  • Body : none
[Response]:

Registration ComponentManager in System management.
ComponentManager register themselves the SystemManager.
notification event "ComponentManagerChanged"

[Request]:
[Response]:

delete ComponentManager notification event "ComponentManagerChanged"

[Request]:
  • Body : none
[Response]:
  • Status Code : 200
  • Body : none

get EventManagers property

[Request]:
  • Body : none
[Response]:

get ComponentType list.
ComponentType is Registered Component.Property.type

[Request]:
  • Body : none
[Response]:
[Response]:
  • Body : dict {ComponentType:{"type" :<string> , "super_type":<string> , "connection_types":{<string>: <string>} , "description":<string>, "cm_id" :list[ <string> ] }
example(JSON)
 {
   "Aggregator"  : { "type": "Aggregator" ,  "super_type":"Aggregator" ,
                     "connection_types":{"original":"1", "aggregated":"1"}, "description":"Aggregator ....",
                     "cm_id":["CompManager1", "CompManager2"]},
   "Slicer"  : { "type": "Slicer" ,  "super_type":"Slicer" ,
                 "connection_types":{"original":"1", "Sliver":"*"}, "description":"Slicer  ....",
                     "cm_id":["CompManager1", "CompManager2"]},
   "Federator"  : { "type": "Federator" ,  "super_type":"Federator" ,
                    "connection_types":{"original":"*", "Federeted":"1"}, "description":"Federator  ....",
                     "cm_id":["CompManager1", "CompManager2"]}
 }
Key Value Description
type <String> ObjectType (example:ComponentManager,Network,Slicer,,,)
super_type <String> super class ObjectType. (example:ComponentManager,NetworkComponent,Slicer,,,)
connection_types dict{<String>:<String>} ComponentConnection.connection_type : connection max num
description <String>
cm_id list[<String>] componentManager.Property.id

get a list of ComponentManager.property <ComponentType> that can be created.
<ComponentType> is Registered Component.Property.type

[Request]:
  • Body : none
[Response]:

get Component instance List.

[Request]:
  • Body : none
[Response]:

It want to get the components that are instantiated.
<comp_id> is Component.property.id

[Request]:
  • Body : none
[Response]:
  • Status Code : 200
  • Body : Component.Property
  • Note : Component.Property is Component instance information.

Component instance create. id is granted automatically. (specified id is invalid)
notification event "ComponentChanged"

[Request]:
key value description
type <String> ObjectType (example:ComponentManager, Network, Aggregator, Slicer, ...)
cm_id <String> Specify the componentManager.Property.id to generate an instance. (Optional)
example(JSON)
    {    
        "type": "Network",  "cm_id" : "compmgr_java"
    }

Component instance create or update. notification event "ComponentChanged"

[Request]:
key value description
id <String> ObjectID (unique ID of ODENOS)
type <String> ObjectType (example:ComponentManager, Network, Aggregator, Slicer, ...)
cm_id <String> Specify the componentManager.Property.id to generate an instance. (Optional)
example(JSON)
    {    
        "id": "network1",  "type": "Network",  "cm_id" : "compmgr_java"
    }
[Response](Update):
[Response](Create):

Delete Component instance. <comp_id> is Component.property.id notification event "ComponentChanged"

[Request]:
  • Body : none
[Response]:
  • Status Code : 200
  • Body : none

get ComponentConnection infomation.

[Request]:
  • Body : none
[Response]:

get ComponentConnection. <conn_id> is ComponentConnection.id

[Request]:
  • Body : none
[Response]:

create ComponentConnection. notification event "ComponentConnectionChanged"

[Request]:
example(JSON)
    {    
        "type": "LogicAndNetwork", 
        "connection_type": "original", "logic_id": "slicer1", "network_id":"network0"
    }
[Response]:

update ComponentConnection. <conn_id> is ComponentConnection.id
notification event "ComponentConnectionChanged"

[Request]:
example(JSON)
    {    
        "id": "connection0", "type": "LogicAndNetwork", 
        "connection_type": "original", "logic_id": "slicer1", "network_id":"network0",
        "status": "initializing"
    }
[Response](Updated):
[Response](Created):

delete ComponentConnection. <conn_id> is ComponentConnection.id
notification event "ComponentConnectionChanged"

[Request]:
  • Body : none
[Response]:
  • Status Code : 200
  • Body : none