|
MOCHA
(Middleware Based On
a Code SHipping
Architecture) is a novel database
middleware system designed to interconnect hundreds of data sources
distributed over a wide area network.
Goals of MOCHA
- Transparent access to distributed data sources
- Scaleable middleware architecture
- Automatic deployment of user-defined code (Plug-And-Play)
to remote sites
- Processing and "filtering" of data close
to data sources
- Reduction of data movement over Internet and
intranets during query processing
- Build system upon Java,
XML and other Internet open standards
Main Features in MOCHA
- Platform independent database middleware solution
built using Java and
XML
- Extensible execution engine allows customized data
types and methods
- Automatic deployment of user-defined code (Plug-And-Play)
makes administration easier
- Query optimization based on data movement reduction
over Internet and intranets
- XML-based
metadata for system catalogs, data sets and data sources
- "Light-weight" data access layer for easy
installation and customization
- Supports Web-based Thin clients (e.g. applets)
- JDBC-compliant client access interface
- On-site data filtering (on data sources)
MOCHA Architecture
The MOCHA architecture consist consist of the
following components:
- Client Application - The GUI
for the user to query the data data sources and visualize query results.
MOCHA provides a series of APIs to build client applications, including
JDBC drivers.
- Query Processing Coordinator (QPC) -
The integration server of the systems, which provides services such as:
query parsing, query validation, query optimization, plan decomposition,
query execution, catalog management and error management. The QPC is
implemented in Java as a multi-threaded server.
- Data Access Provider (DAP) -
The provider of data for the QPC. The tasks for the DAP are: data
extraction, data translation and query execution. The DAP is implemented
in Java as a multi-threaded server.
- Data Server
- The server application used to store the data sets. This could be a
relational database server, an XML file repository, a file system or
some other custom-built storage server.
For a more detailed description of the MOCHA
architecture click here.
Experimental deployment on NASA ESIP
Federation sites
We are currently working towards deploying MOCHA on
various data centers that form part of the NASA Earth Science Information
Partnership (ESIP) Federation. Our goal is to install and
configure a QPC at the
University of Maryland, which will integrate the participating data
centers.
At each data center we will install a DAP to provide seamless access to
their data products. We expect to develop novel types, methods and
applications to manipulate these data products.
|