Introduction

Architecture

Demonstrations

Publications

People

Links

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.

 

 

2000 University of Maryland. All rights reserved.


Last update was on June 11th, 2000
manuel@cs.umd.edu