Service Discovery¶
Since there does not exist a ELT control software wide solution for service discovery yet, the RTC Toolkit introduces a very basic service discovery mechanism that allows lookup and retrieval of service endpoints by name.
The discovery mechanism makes use of the Client-Side Discovery Pattern where a client retrieves endpoints of required services by querying a central service registry (a database).
The service registry is implemented using the same mechanisms as the Runtime Configuration Repository and its storage back-end is a simple, shared YAML file.
Service endpoints are represented in
URI format and retrieved
using the elt::mal::Uri class.
Supported Service Types¶
Currently the following service types are supported:
Service Type |
Format |
Description |
|---|---|---|
runtime_repo_endpoint |
elt::mal::Uri |
Service endpoint of the Runtime Configuration Repository. |
oldb_endpoint |
elt::mal::Uri |
Service endpoint of the Online Database. |
req_rep_endpoint |
elt::mal::Uri |
CII MAL request/reply endpoint of an RTC Component. |
pub_sub_endpoint |
elt::mal::Uri |
CII MAL publish/subscribe endpoint of an RTC Component. |
Limitations and Known Issues¶
The current implementation of the service registry is only a temporary one, it will be replaced by a CII conformant service registry once this is available.
Currently it is not foreseen that developers define custom service types in the service registry. Users are only supposed to re-use the available service types by adjusting or adding new endpoints to the YAML file of their SRTC system.