DMC Specifications

L2/L3 Requirements

Réza Ansari, Éric Aubourg, Floor van Leeuwen

July 10, 2000 (draft)

PL-HFI-SPP-SP-DMC002

Introduction

The Data Management Component (DMC) is a set of interfaces handling data persistence for Planck DPC's (in the IDIS framework). It will be used by both consortia (HFI and LFI).

Since the DMC is a set of interfaces, different persistence mechanisms can be implemented in a transparent way. This insures some independance from the market (especially from the currently highly volatile market of object databases, O2 being virtually dead, Object Design appearing as the new leader as of June 2000).

Even if the two consortia choose the same implementation, which is not required, care must be taken to preserve this independence as the DMC interface is evolved.

Object persistence mechanisms

The DMC should provide object persistence, i.e. the fact that the internal state of an object is preserved after the end of the life of the application that created or modified it. The DPC's will use this object persistence facility to store data, like maps, TOI's, calibration information, pointing information, etc.

Data persistence can be achieved in several ways. For L2/L3 DPC's, one should keep in mind that

One way to achieve this is by using the Bridge design pattern [Gamma 1995], to decouple interface and implementation inside the DMC. The DMC should probably be kept as a separate package providing persistence services, the science objects and classes having no explicit dependency to the DMC.

The DMC interface should moreover make minimal assumptions on the implementation layer functionalities.

Data structure details, and opaque persistence

DPC software will need to store complex objects, which structure can evolve. The precise internal data structure does not need to be handled by the DMC (semantically, although the DMC needs of course to know how the structure is built in terms of basic data types).

This facilitates schema evolution, since this provides skill separation between precise data structure definition (a physicist task) and data persistence (a database specialist task).

This also keeps the DMCI simple: it is a low-level software layer, that should not depend on higher-level (and thus more volatile) concepts.

Persistent data should be associated with tags and flags on which DMC requests can be based. A history of each object should also be kept, with support for versioning. Finer-grained searches should be handled by higher-level software layers.

Use cases

The data model specifications document should be complemented by use cases. A list of the kind of requests on each type of data will help determine the information that need to be accessible by the DMC, i.e. which classes of the data model have to be known by the DMC, and which tags should be associated with them.

Requirements summary

The DMCI should implement the following requirements: The DMCI could provide more functionalities for fundamental data structures like TOI's and maps. This remains to be defined, keeping in particular in mind that, for instance, unforeseen pixelisation schemes could be used and that this should neither break the DMC nor imply major developments in a low software layer.

Revisions