Configuring Service Discovery

What is a discovery server?

The Research task pane contacts Microsoft's servers to determine whether new research services are available and, if so, to make these new services available for the user to install. A server that provides this service is known as a discovery server, since it helps users to "discover" new research services.

An enterprise can easily set up discovery servers of its own, by building a Web service that implements the Discovery Web method on the server, and then installing a registry entry that points to the server on client computers. By modifying a single XML attribute in the response sent by a discovery server to a client, the administrator can install the new research service automatically on the client computer, or advertise it to the user and allow the user to decide whether to install the service.

For more information about deploying research services, see Deployment Overview and Deploying Services to Office Users.

Note  The Research task pane runs the discovery process each time it is opened.

Important  Although we talk about registering a research service, the normal registration process registers a research service provider, along with the research service or services that the provider chooses to register on the user's computer. While the provider (through logic in the Registration method) can programmatically select which services to install, the user does not have an equivalent option in the Research task pane user interface to select or exclude individual services at the time of registration. In some cases, the provider may choose to install services, but not to activate them, by setting their Display setting to "Off." The user can activate or deactivate services at any time, from the Research Options dialog box.

Building a discovery service

A discovery server must host an XML Web service that implements a Web method named Discovery. The Discovery method receives an incoming string value from the Research task pane in the form of an XML document that conforms to the Microsoft.Search.Registration.Request.xsd schema, and returns a string value in the form of an XML document that adheres to the Microsoft.Search.Discovery.xsd schema, in this format:

<Discovery xmlns="urn:Microsoft.Search.Discovery">
    <Research autoInstall="">
    <Id/>
        <Name/>
        <RegistrationPath/>
        <Description/>
        <AboutPath/>
        <Any/>
    </Research>
    <Any/>
</Discovery>

The discovery response can list multiple providers by using multiple Research elements. The Boolean autoInstall attribute of the Research element is an important item in the discovery response. This attribute determines whether the Research task pane automatically installs the new provider without user intervention, or merely advertises the availability of the provider to the user.

Note  Unlike the attributes for theRegistration and Query Web methods, the Discovery method's WebMethod attribute does not require a namespace reference. However, the method's single string parameter must have the case-sensitive name registrationXml. The WebService attribute of the Web service that implements the Discovery method must reference the Microsoft.Search namespace, whether the same service implements the Registration and Query methods or not. For more information, see Building a Research Web Service.

For more information about the response to a discovery request, see Microsoft.Search.Discovery Schema and Discovery Sample.

Configuring discovery clients

Up to five discovery servers can be configured on a client computer by adding DiscoveryPathN values (DiscoveryPath1, DiscoveryPath2, and so forth) pointing to the Discovery Web services under the optional HKEY_LOCAL_MACHINE\Software\Microsoft\Office\11.0\Common\Research\Discovery registry key.

Additional user-specific registry values under HKEY_LOCAL_MACHINE\Software\Microsoft\Office\11.0\Common\Research\Options control other aspects of discovery behavior:

  • The NoDiscovery value disables discovery.
  • The NoAdd value disables the addition of new services through discovery or through manual entry of the URL.
  • The DiscoveryNeedOptIn value determines whether the user must consent to the communication with discovery servers.

For more information about the settings used to configure discovery behavior, see Controlling Service Installation Options and Administrative Option Settings. For more information about the methods available to transfer these settings to users' computers, see Deploying Services to Office Users.