The task of creating a system to mediate between multiple distributed heterogeneous data sources can be daunting. Not only must one find a way of connecting to the various data sources, but also some way of connecting them together. The first problem is more technical in nature than conceptual. K2 has some built-in data drivers for common kinds of data sources, and a simple means of connecting up others.
K2 handles the process of connecting the data sources together by providing a simple language for describing the data integration, called K2MDL (K2 Mediator Definition Language). This language allows one to build up an object-oriented model of the data, and specify how the objects map to the underlying data sources. Then one can issue vastly simplified queries against the object model, without concern about the query languages (or lack thereof) of the data sources themselves.
The class definitions in the K2MDL contain pieces of OQL which define the extents of the classes, and also the attributes and relationships within the classes. When a query comes in which refers to pieces of a K2MDL object model, we replace these references with the corresponding OQL. It is then the responsibility of the query translator to convert the query to K2's internal representation.
You can see an example of the mediator creation process in our technical document titled, "Building a Mediator".
[K2 Front Page]