Teiid Projects and the Eclipse DTP

Version 3
    The Teiid and Teiid Designer projects are interested in establishing integration with the Eclipse Data Tools Project (DTP).  There are several drivers for this including:

    • Eases use/adoption of Teiid across the eclipse environment generally.
    • JBoss Tools delivers DTP making it an obvious integration point with other JBoss projects such as Seam, Hibernate, etc.
    • The Eclipse SQL Explorer (http://eclipsesql.sourceforge.net/) used by Teiid Designer is forked from an earlier version and it make no sense to maintain it when DTP has a viable alternative.

     

    Integration Points

    There are several integration points or levels of integration that are possible for the Teiid projects and DTP.  I've divided these into two phases, the first of which I am committing to and the second is a likely course of action that will be reviewed and potentially implemented in light of all project commitments.

     

    • Phase I: Integration of the Teiid project in the DTP environment. This integration is accomplished by implementing extensions of existing DTP extension points and will make Teiid an available source in any DTP environment.  It will enable users to connect to and execute queries of a deployed VDB in a 6.2 Teiid server (and later versions as they become available).  This integration is not Teiid Designer specific and it is envisioned that the implementation source will live under a JBoss Tools umbrella and be delivered with JBoss Tools.  It could also be delivered with any DTP environment, including Teiid Designer, which could drop the SQL Explorer perspective in favor of the DTP perspectives.
    • Phase II: Integration of ConnectionProfiles with the JDBC Importer. The JDBC Importer could be modified to get its metadata from a DTP ConnectionProfile in addition to a JDBC driver as it does today (since most ConnectionProfiles just wrap a JDBC driver anyway).  Source bindings (however they are implemented) could be generated from the ConnectionProfile as well.


    DTP Features Overview
    The Data Tools Platform Project Charter (http://www.eclipse.org/datatools/charter.php) provides an overview of the project and details on the features supported.  Below is a break out of the DTP features that would be implemented in Phase I, and those that are less interesting or would require greater investment and planning on our part.

     
    Phase I Features

    Phase I described above consist of implementation of this grouping of frameworks and the resulting availability to use the Database Development Perspective.


    Connectivity-Driver Management Framework
    Enables management of data source drivers.  In the Teiid context we would deliver a driver template for each version of the Teiid JDBC driver, and perhaps different templates based upon the deployment context (embedded, server, etc).

    Connectivity-Connection Management Framework
    Creates Connection Profiles that enable connection to data sources from drivers in the Driver Management Framework.  Other DTP tools access data sources through the connections supplied by the Connection Profiles. 

    Database Definition
    XMI that provides metadata about the database (supported types, column properties, etc).

    SQL Query Parser Framework
    Enables flexibility in the SQL Dialect that the DTP tools support.

    SQL Execution Plan Framework
    Enables the capture and presentation of execution plans.

     

    Database Development Perspective
    Implementation of the above frameworks enables Teiid to act as a data source for the Data Source Explorer, SQL Editor, Visual SQL Builder, Results View and Script History provided by the Database Development Perspective.  This perspective can replace the SQL Explorer perspective.

    Other DTP Features for Future Consideration
    DDL Generation
    DTP is capable of producing DDL from the metadata returned by the ConnectionProvider.  This capability could prove useful when we move to using DDL as the serialized representation of model data.

    Open Data Access
    ODA enables heterogeneous data retrieval to access common data sources, such as XML, Web services, CSV files, and JDBC.  A custom data source driver is created simply by implementing the ODA data access interfaces.  ODA could make sense were Teiid to support connectors that implemented ODA, but I don't see that it is interesting in the context of DTP using Teiid as a source of data.

    Routines Editor Framework
    Enable vendor specific extensions for database routine creation.

    Routines Debugger Framework
    Enables debug support through the eclipse debug infrastructure.

     

    Model Base

    DTP has an EMF based Model Base project for model-driven development of Database Definitions and SQL.  We should expore the similarities/overlap between this implementation and ours.