Uli SDK is to provide the infrastructure of standardized platform architecture. Certain components are needed and organized in a specific way. Here are the descriptions:
18.1 Services needed for all components
Here is the list of services that all components need to include:
Those components that have resources to register need to include core.ResourceRegister service, which register resources to the ResourceDiscovery service of the subsystem.
The Message Transport service is responsible for transmitting messages in/out of the component.
The ServiceRegister is to register the services of the component to the Discovery service of the subsystem.
The StatusRegister is to register the status details of the component to the Status Monitor service.
18.2 Node Manager component
It is required that each computing device has a Node Manage component, that implements the Node Manager service. The comp ID of the Node Manager component is always 1. Here are the services in the Node Manager component:
Note that MessageTransport service is NOT needed as the NodeManager service implements the message routing capabilities.
18.3 Subsystem Manager component
It is also required that a subsystem needs to have a Subsystem Manager component, which should be in the computing device designated as Subsystem Node. The Subsystem Node always has the node ID 1. The comp ID of the Subsystem Manager component is always 2.
The Subsystem Manager component should provide the functions: Dynamic Node ID assignment, Service Discovery, Status Monitor, Resource Discovery and Subsystem Control.
Here are the services included in the Subsystem Manager component:
18.4 Dashboard component
The Dashboard component implement the Dashboard service, that discovers all the Subsystems in the network.
For a subsystem, Dashboard can provide the Status Details of all components of the subsystem. The Status Details include information:
List of components
Access control status of the component
Management state of the component
Running time of the component
Link test of the component
List of services of the component
List of resources of the component
Health of the services
ID Allocator service can be in the Dashboard component if there is none in the network. It only needs one of the ID Allocator in the network to assign IDs to the Subsystems.
Here is the list of services the Dashboard component includes the following services:
18.5 Operator Control component
The Operator Control includes clients that utilize services implemented in a subsystem. It needs to have a Dashboard service to discover the Subsystems in the network. After decided which subsystem to control, the Operator Control component uses the Dashboard service to locate the comp ID where the service is implemented.
Varying from the services will be used, the Operator Control component includes at least the following services:
18.6 Subsystem State component
The Subsystem State component is to host the Subsystem State service that manages the life-cycle of the subsystem.
The Subsystem State component includes the following services:
18.7 Pre-assigned Component IDs
The components described above are needed in many cases. It is convenient to have known IDs assigned to them:
|Node Manager Comp||1|
|Operator Control Comp||3|
|Subsystem State Comp||5|
Other than the IDs listed here, components are free to choose any numbers less than 255.
18.8 Comp App
The Comp App is an application that contains one or more components. You can find examples in uli_sdk/apps.