- Information
Main Page
Publications
Software / Docs
Demo Programs
People

- Subsystems
Trust
Discovery
Switchboard
dRBAC
Runtime
Utilities
-- intro --
DisCo: Middleware for Securely Deploying Decomposable Services in Partly Trusted Environments
Discovery


The Discovery subsystem (API) is a locality-aware service location system with failover to a well-known home. This allows programs that want to use services to find a localized copy to reduce bandwidth limitations of communicating over wide-area networks. This mechanism also allows services that have been located to be verified. All of this is done over the low-overhead UDP protocol.

The following is a complementary description to the API of how Discovery works at a very high level. Understanding this will make the API easy to follow.

Services that wish to be found create a Locator. The Locator can contain the ServiceDescriptor of its particular service. This contains the name of the service and where it had originated from (incase it has been replicated). It then contains a location of where the service is currently. If a service wishes to publish its identity information, it will also send its public key, its credentials, and a signature of the Locator.

To put this Locator on the network, services have two options that are found in the ServiceManager. It can either publish its service or advertise it. Publishing its service means that the Discovery subsystem will listen on a certain port for requests from clients and respond when a request has been made. Advertising means that at certain intervals the Locator will be broadcast to the local-area network and programs that wish to use it can wait for it to be advertised.

Programs that want to find a service will create a ServiceDescriptor. This ServiceDescriptor contains the name of the service and its well-known home, where the service originates from. Through the use of the ServiceManager, the clients pass the ServiceDescriptor to the manager and then either actively broadcast the descriptor looking for services that have published their Locator or passively wait for Locator advertisements.