OGSA-DAI Architecture

The architecture of OGSA-DAI consists of a number of layers each serving a different purpose. A high-level schematic representation of this architecture is shown in Figure 1.

The high-level architecture of OGSA-DAI.
Figure 1: The high-level architecture of OGSA-DAI.

The components in each layer and the interfaces between them are explained below, starting from the bottom layer and working upwards.

Data Layer

The data layer consists of the data resources that can be exposed via OGSA-DAI. Currently these include:

Data Layer ↔ Business Logic Layer Interface

This interface allows information to be communicated between the data layer and the business logic layer in both directions. It is realised by components known as data resource accessors. Each data service resource has its own data resource accessor which controls access to an underlying data resource, as shown in Figure 2.

A data resource accessor provides access to the underlying data resource.
Figure 2: A data resource accessor provides access to an underlying data resource.

OGSA-DAI includes data resource accessors for relational databases, XML databases and file systems. This component is an extensibility point, so users can develop their own data resource accessors in order to expose new kinds of data resource.

Business Logic Layer

This layer encapsulates the core functionality of OGSA-DAI. It consists of components known as data service resources. As shown in Figure 1, multiple data service resources can be deployed to expose multiple data resources. There is a 1-1 relationship between data service resources and data resources. The responsibilities of a data service resource include:

Several components of the business logic layer are described in further detail in the Interacting with Data Service Resources section.

Business Logic Layer ↔ Presentation Layer Interface

This interface allows information to be communicated between the business logic layer and the presentation layer in both directions. It supports the invocation of OGSA-DAI functionality within the business logic layer in a way that is independent of a particular web environment. In fact, the same interfaces could even be used by a stand-alone client application outside of any web environment.

When SOAP Requests arrive at OGSA-DAI WSRF or WSI data services, this interface is used to pass information and instructions to and from the business logic layer. The flow of information between these two layers is described below.

Presentation Layer → Business Logic Layer

Business Logic Layer → Presentation Layer

Presentation Layer

This layer encapsulates the functionality required to expose data service resources using web service interfaces. OGSA-DAI includes two realisations, one compliant with WSRF and the other compliant with WSI (that is a solution that only relies on the specifications mentioned in the WS-I basic profile, i.e. that do not use WSRF). These were schematically shown in Figure 1 as the WSRF and WSI data services. For each realisation there is a WSDL document that describes the interface.

Client Layer

A client can interact with a data service resource via a corresponding data service. Depending on whether a WSRF or WSI data service has been deployed, the client application must be compliant with the WSRF or WSI standards.

OGSA-DAI also includes a Java Client Toolkit which provides a higher-level API for interacting with data services. The Client Toolkit simplifies the development of client applications by providing convenient ways to construct and send requests and interpret the subsequent responses. An additional benefit of the Client Toolkit is the inter-operability it offers between the WSRF and WSI data services. An application written using the Client Toolkit will be able to access and interact with WSRF and WSI data services transparently. The Client Toolkit is described in detail in the Client Toolkit Tutorial.