There are 4 main operations when working with the registry, querying for information, updating server information, updating client information, registering for notifications.
The registry is split into 4 areas, services [also known as tests], server implementations, client result info and notifications/events. Information about the current set of services can be found using the ServiceList method. Information about which servers provide implementations of a particular service can be found using the Servers method, and information about current client results can be found using the Clients method. A log of recent events can be obtained via the RecentChanges method, and is also available as a HTML page, and as a RDF/RSS XML file. A WS-Inspection document of all the registered servers is also available.
For each service [aka test] listed in the registry you can register a server implementation of that test. To do this you call the RegisterServer method, this takes a serviceID and a serverInfo struct, the serverInfo struct contains name, version, endpointURL and wsdlURL. the server will return a serverID. Once registered you can revise the registry information using the UpdateServer method or remove it altogether using the RemoveServer method, both of these methods require the serverID returned from the initial registerServer call.
Client results [currently just an URL where the results information is available], is managed in much the same way as server information is managed. The RegisterClient method is used to register a new client results URL, the registry will return a clientID, this clientID is used in subsequent calls to RemoveClient or UpdateClient
In addition to the above, you can register for notifications for changes to client and/or server information, when there's a change, the registry will make a SOAP call back to you telling you of the change, you can use these events to trigger re-runs of tests.
You register you notification callback URL with the Subscribe method, this takes the serviceID to monitor, two boolean flags ServerChanges and ClientChanges to indicate which type of changes you want notifying about, and the notificationURL, this is the fully qualified URL of the endpoint where you want to be called back on. This WSDL describes the format of the messages you'll receive on this callback URL. The response to the Subscribe call will include a notificationID and a expires timestamp. Your subscription will automatically expire when the expires date/time is reached, if you want to continue to receive notifications you need to call the Renew method before it expires. If you want to cancel your subscription before the expiry timeout, use the Cancel method.