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.