The last entry covered a simple discovery example. Before we get into more complex scenarios, let’s cover some of the core concepts behind WCF-Discovery. The entry below covers the main components, exposed functionality as well as the modes of operation of WCF-Discovery.
Discovery Components
In any application architecture, there can be three types of components utilizing discovery. As the picture above shows, Discovery involves a client, a service, and/or a Discovery Proxy. Without resorting to strict definitions, here is how you can think of them and their capabilities:
Discovery Functionality The real key is, how can a Client become aware of a Service? As hinted at above, discovery functionality can be broken down into two areas: find/ resolve operations and announcements.
The find/resolve functionality is characterized by a client looking for a service. This can be broken down further into: Find and Resolves
Another functionality open to users is Announcements. In this case Services can announce themselves to the network and clients can be configured to listen for such announcements. In the default case a service sends out a hello message when it comes online and a bye message when going offline. This pattern is useful when a service wants to notify a recipient without having the recipient pinging the network periodically.
Operation Modes There are two modes of operation for Discovery, Ad-Hoc mode and Managed mode.
Discovery Protocols
The WCF-Discovery product supports two versions of the WS-Discovery protocol. These include:
Currently the default is set to the WS-Discovery April 2005. Selecting the appropriate protocol is important depending on how you want to interop with other implementations of WS-Discovery. We'll cover protocols in depth later on.