Discovery
protoSDC discovery defines a discovery protocol to locate gRPC services in a protoSDC-featured IT network. It is based on WS-Discovery to the extent that it functionally covers aspects like probe filtering, endpoint resolution, and a decentralized Ad hoc Mode as well as a centralized Managed Mode.
However, protoSDC discovery is not based on talkative XML messages but on protobuf-encoded messages. Moreover, it comes with a reduced set of message types: Hello, Bye, SearchRequest, SearchResponse.
See Definitions for more information on used terms.
Address information
In Ad hoc Mode, protoSDC discovery leverages the following address information to exchange messages:
Port: 6464 [IANA]
IPv4 multicast address: 239.255.255.250
IPv6 multicast address: FF02::C (link-local scope)
Action identifiers
Although protobuf messages are dispatched by means of the OneOf directive, protoSDC discovery defines the following action identifiers to facilitate debugging and additional message validation.
Hello: org.somda.protosdc.discovery.action.Hello
Bye: org.somda.protosdc.discovery.action.Bye
SearchRequest: org.somda.protosdc.discovery.action.SearchRequest
SearchResponse: org.somda.protosdc.discovery.action.SearchResponse
Implicit discovery in Ad hoc Mode
In Ad hoc Mode, a Service Provider shall send a Hello when it joins the network, when its Endpoint information changes, or when its Metadata changes. A Service Consumer that is interested in the Service Provider may send a SearchRequest if the Hello does not contain a physical address.
Note
A physical address can be missing from a Hello, e.g. if the Service Provider multicasts to multiple network adapters.
A Service Provider shall not send a Bye as the Ad hoc Mode uses an unsecured channel, and most Service Consumers would ignore that message anyway.
Explicit discovery in Ad hoc Mode
In Ad hoc Mode, a Service Consumer may send a SearchRequest to search for Service Providers.
Implicit discovery in Managed Mode
In Managed Mode, a Service Consumer may use the ConsumerProxyService of a Discovery Proxy to subscribe to Hello and Bye. The Discovery Proxy shall respond with a stream of HelloAndByeResponse messages.
Note
Explicit discovery in Managed Mode
In Managed Mode, a Service Consumer may use the ConsumerProxyService of a Discovery Proxy to search for Service Providers matching specific Scopes or Endpoint identifier.
Note
ConsumerProxyService is a gRPC service
ProxySearchRequest and ProxySearchResponse are messages used by the Discovery Proxy to convey search request and response data
Notification of Hello and Bye in Managed Mode
In Managed Mode, the Service Provider shall use the ProviderProxyService of a Discovery Proxy to establish a stream of NotifyHelloAndByeRequest messages.
Note