|
A Component-based Data Mediator Definition Language to Support Heterogeneous Database Integration and Evolution
Christian Och
Computer Science PhD Candidate
Modern persistent applications typically run on top of numerous (often hundreds)
of distributed, heterogeneous databases. Integrating data from various data
sources in order to provide uniform, homogeneous, and consistent access to the
data from the underlying data sources while preserving the integrity and
autonomy of preexisting data sources is a huge problem, especially in evolving
environments.
The main issue that a global information sharing system has to address is
heterogeneity on all levels of the participating data sources: the data might
be stored in heterogeneous data sources, using different data models and
access/middleware technologies. Another major type of heterogeneity that has to
be addressed by a global information sharing system is due to differences in
the semantics of the data from the data source participating in the integration
process. In particular, the resolution of potential conflicts due to structural
and semantic heterogeneity of the integrated data is an essential part of the
integration process performed by a data integration environment.
The COIL data mediator definition language supports the definition of the
integration process and its semantics on a high level of abstraction. The
language provides powerful language components which can be used to resolve
potential conflicts due to structural and semantic heterogeneity, and to define
the integration process in general. The semantics of a specific integration
process are defined in a COIL data mediator definition (COIL program). The COIL
compiler uses those specifications expressed in the COIL language to generate a
regular Java object which captures the semantics of the integration process
defined in the COIL mediator definition. The generated Java object is called a
COIL data mediator.
In general, a COIL data mediator is a user-defined, customized object/component
which can be used like any other normal object in the Java development
environment. A COIL data mediator presents a well-defined interface which may
be used to access and configure the mediator at runtime. Therefore it is
possible to change the data mediator's behavior and the semantics of the
integration process in general at runtime.
This dissertation presents a detailed description of the COIL data mediator
definition language and its language components, and it also provides a
detailed discussion of how COIL data mediators are used to overcome different
heterogeneity problems.
|