Loading

Uli SDK

Implementation Notes

18.Implementation Notes

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:

core.MessageTransport
core.ServiceRegister
core.StatusRegister

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:

core.NodeManager
core.ServiceRegister
core.StatusRegister

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:

core.MessageTransport
core.ServiceRegister
core.StatusRegister
core.Subsystem Manager
core.StatusMonitor
core.Discovery
core.ResourceDiscovery
core.SubsystemControl

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:

core.MessageTransport
core.ServiceRegister
core.StatusRegister
core_client.Dashboard
core.IDAllocator

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:

core.MessageTransport
core.ServiceRegister
core.StatusRegister
core_client.Dashboard

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:

core.MessageTransport
core.ServiceRegister
core.StatusRegister
core.SubsystemState

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:


Name Comp ID
Node Manager Comp 1
Subsystem Comp 2
Operator Control Comp 3
Dashboard Comp 4
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.