Modular+Specs+Federation+Overview

include component="page" wikiName="siframework" page="ModularSpecTabs" Previous provider directory standards use DSML as the messaging protocol. The requests and responses are respectively known as BatchRequest and BatchResponse. The Mod Spec federation solution is a wrapper around these existing messages, plus some additional error handling fields. This can be seen here.

As defined in the RTM, a provider directory may communicate with zero or more data sources and zero or more federation peers. The federation peers are defined in the directory configuration.

The requests are very straightforward. An HpdPlusRequest is sent from the client and it contains one BatchRequest. It also contains zero or more metadata values that are defined here.

The responses are more complex. An HpdPlusResponse is sent by the provider directory and it contains up to four things. Firstly, it contains zero or more BatchResponses. Each BatchResponse is a set of data from one data source with which the provider directory communicates. Secondly, an HpdPlusResponse contains zero or more HpdPlusErrors, defined here. Thirdly, an HpdPlusResponse contains zero or more metadata values, which are a direct copy of the request metadata, used for reference.

Finally, an HpdPlusResponse may itself contain zero or more HpdPlusResponses. This gives the responses a recursive nature as a result of any federated queries. For example, let's imagine that a query comes from the client to directory A, which then sends the query on to directory B. Both directories A and B will provide a single HpdPlusResponse, possibly with BatchResponses if both communicate with data sources. Directory B will respond to directory A with an HpdPlusResponse, and directory A will respond to the client with one HpdPlusResponse which itself contains directory B's response.

The response that is sent to the client will reflect the federation path that the directories use. Each HpdPlusResponse is from a single directory, so this allows for more robust error handling when problems occur at the directory.

Technical definitions for the WSDL and the XML Schema are linked on the artifact page.