| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <HTML> |
| <HEAD> |
| <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252"> |
| <TITLE>Eclipse Data Tools Project</TITLE> |
| <STYLE> |
| <!-- |
| @page { size: 8.5in 11in } |
| TD P { margin-left: 0.12in; color: #000000; font-family: "arial", "helvetica", "geneva"; font-size: 10pt } |
| P { margin-left: 0.12in; color: #000000; font-family: "arial", "helvetica", "geneva"; font-size: 10pt } |
| A:link { color: #0000ee } |
| A:visited { color: #551a8b } |
| --> |
| </STYLE> |
| </HEAD> |
| <BODY LANG="en-US" TEXT="#000000" LINK="#0000ee" VLINK="#551a8b" BACKGROUND="DTP_Proposal/proposal.gif" DIR="LTR"> |
| <P STYLE="margin-bottom: 0in"> |
| </P> |
| <TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=5> |
| <TR> |
| <TD WIDTH=60%> |
| <P ALIGN=LEFT><B><FONT SIZE=6><FONT FACE="Verdana, Arial, Helvetica, sans-serif">Data |
| Tools Project</FONT></FONT></B><BR><FONT SIZE=1><FONT FACE="Arial, Helvetica, sans-serif"><FONT COLOR="#8080ff">Project |
| Home Page </FONT></FONT></FONT> |
| </P> |
| </TD> |
| <TD WIDTH=40%> |
| <P><IMG SRC="DTP_Proposal/Idea.jpg" NAME="Graphic1" ALIGN=MIDDLE HSPACE=50 WIDTH=120 HEIGHT=86 BORDER=0></P> |
| </TD> |
| </TR> |
| </TABLE> |
| <P>This project proposal is in the <A HREF="http://www.eclipse.org/org/documents/Eclipse Development Process 2003_11_09 FINAL.pdf">Proposal |
| Phase</A> and is posted here to solicit community feedback, |
| additional project participation, and ways the project can be |
| leveraged from the Eclipse membership-at-large. You are invited to |
| comment on and/or join the project. Please send all feedback to the |
| <a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.dtp"> |
| http://www.eclipse.org/newsportal/thread.php?group=eclipse.dtp</a> newsgroup.</P> |
| <TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0> |
| <COL WIDTH=252*> |
| <COL WIDTH=4*> |
| <TR> |
| <TD COLSPAN=2 WIDTH=100% VALIGN=TOP BGCOLOR="#0080c0"> |
| <P ALIGN=LEFT><FONT COLOR="#ffffff"><FONT FACE="Arial, Helvetica"><B>Project |
| Organization</B></FONT></FONT></P> |
| </TD> |
| </TR> |
| <TR> |
| <TD WIDTH=99%> |
| <P>The Data Tools Project (DTP) is a proposed open-source Top |
| Level Project of eclipse.org. The Charter will describe the organization of the project, roles and |
| responsibilities of the participants, and top-level development |
| process for the project.</P> |
| </TD> |
| <TD WIDTH=1% VALIGN=TOP></TD> |
| </TR> |
| </TABLE> |
| <TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=5> |
| <TR> |
| <TD VALIGN=TOP BGCOLOR="#0080c0"> |
| <P ALIGN=LEFT><FONT COLOR="#ffffff"><FONT FACE="Arial, Helvetica"><B>Overview</B></FONT></FONT></P> |
| </TD> |
| </TR> |
| <TR> |
| <TD> |
| <P>“Data Tools” is a vast domain, yet there are a |
| fairly small number of foundational requirements when developing |
| with or administering database systems. A developer is interested |
| in an environment that is easy to configure, one in which the |
| challenges of application development are due to the problem |
| domain, not the complexity of the tools employed. Administration |
| of databases, whether by a developer working on an application, or |
| a DBA maintaining or monitoring a production system, should also |
| provide a consistent, highly usable environment that works well |
| with associated technologies. |
| </P> |
| <P>Such an environment for data management starts with key |
| frameworks designed both for use and extensibility. These |
| frameworks include location and management of database drivers, |
| and configurations for access to particular database instances. |
| Once a connection is successfully made, the next task often is to |
| explore the database – tables, stored procedures, triggers, |
| and so on – making changes as required. Some of these |
| operations might be carried out by GUI actions, others directly |
| through commands. Users – both developers and administrators |
| – typically will create, edit, and test SQL for these |
| commands. Assistance in editing SQL through code completion, |
| formatting, and dialect specialization, greatly enhances |
| productivity. Further, the ability to execute or debug commands, |
| both SQL and stored procedures, rounds out the rapid development |
| process that Eclipse supports so well. Finally, bridging chasms, |
| whether between relational structures, objects, or XML, presents |
| challenges that data management tooling should address. To meet |
| these needs, DTP includes a broad set of core and tooling |
| components, enabling a diverse set of plug-in offerings specific |
| to particular database technologies and supported by the DTP |
| ecosystem.</P> |
| </TD> |
| </TR> |
| </TABLE> |
| <TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=5> |
| <TR> |
| <TD VALIGN=TOP BGCOLOR="#0080c0"> |
| <P ALIGN=LEFT><FONT COLOR="#ffffff"><FONT FACE="Arial, Helvetica"><B>Project |
| Principles</B></FONT></FONT></P> |
| </TD> |
| </TR> |
| <TR> |
| <TD> |
| <P>Founded in the spirit of open-source, community-driven |
| principles guiding eclipse.org itself, this project will |
| concentrate on several key ideals: <BR><BR><B>Vendor neutrality: |
| </B>We intend to provide data management frameworks and tools not |
| biased toward any database or database vendor. Our intention is |
| that DTP be leveraged to provide the Eclipse community with the |
| widest range of data management choices possible. To this end, we |
| seek community involvement in formulating key framework |
| interfaces, so that the largest possible constituency is |
| represented.<BR><BR><B>Extensibility: </B>We recognize both the |
| common need for data management tooling infrastructure and the |
| desire to extend the offerings in new and innovative ways. To |
| support these efforts, our components will be designed for, and |
| make good use of, extensibility mechanisms supported by Eclipse. |
| <BR><BR><B>Community Involvement: </B>Success for DTP, as with |
| other eclipse.org projects, is as much a factor of community |
| involvement as the technical merit of its components. We strongly |
| believe that DTP will achieve its full potential only as the |
| result of deep and broad cooperation with the Eclipse |
| membership-at-large. Thus, we will make every effort to |
| accommodate collaboration, reach acceptable compromises, and |
| provide a project management infrastructure that includes all |
| contributers, regardless of their affiliation, location, |
| interests, or level of involvement. Regular meetings covering all |
| aspects of DTP, open communication channels, and equal access to |
| process will be key areas in driving successful community |
| involvement.<BR><BR><B>Transparency:</B> As with all projects |
| under the eclipse.org banner, key information and discussions at |
| every level – such as requirements, design, implementation, |
| and testing – will be easily accessible to the Eclipse |
| membership-at-large. <BR><BR><B>Agile development</B> We will |
| strive to incorporate into our planning process innovations that |
| arise once a project is underway, and the feedback from our user |
| community on our achievements to date. We think an agile planning |
| and development process, in which progress is incremental, |
| near-term deliverables are focused, and long-term planning is |
| flexible, will be the best way to achieve this. |
| </P> |
| </TD> |
| </TR> |
| </TABLE> |
| <TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0> |
| <COL WIDTH=256*> |
| <TR> |
| <TD WIDTH=100% VALIGN=TOP BGCOLOR="#0080c0"> |
| <P ALIGN=LEFT><FONT COLOR="#ffffff"><FONT FACE="Arial, Helvetica"><B>Project |
| Scope </B></FONT></FONT> |
| </P> |
| </TD> |
| </TR> |
| <TR> |
| <TD WIDTH=100%> |
| <P>The foundation of DTP consists of three functional areas: |
| </P> |
| <UL> |
| <LI><P STYLE="margin-bottom: 0in; font-weight: medium">Connectivity</P> |
| <LI><P STYLE="margin-bottom: 0in; font-weight: medium">SQL |
| Development</P> |
| <LI><P STYLE="margin-bottom: 0in; font-weight: medium">Administration</P> |
| </UL> |
| <P STYLE="margin-bottom: 0in"><FONT FACE="arial, helvetica, geneva, sans-serif"><FONT SIZE=2>For |
| each of these functional areas, DTP will provide frameworks with |
| well-defined extension points. Upon these frameworks, DTP will |
| build exemplary, extensible tools. Our goal is to provide example |
| implementations targeted at well-known open source runtime |
| environments while enabling an ecosystem of complementary open |
| source and commercial projects to create components specialized to |
| particular databases.</FONT></FONT></P> |
| <P STYLE="margin-bottom: 0in"><FONT FACE="arial, helvetica, geneva, sans-serif"><FONT SIZE=2>Building |
| on this foundation, DTP will also include the three projects for |
| data-centric development:</FONT></FONT></P> |
| <UL> |
| <LI><P STYLE="margin-bottom: 0in; font-weight: medium">Object/Relational |
| Mapping</P> |
| <LI><P STYLE="margin-bottom: 0in; font-weight: medium">XML/Relational |
| Mapping</P> |
| <LI><P STYLE="margin-bottom: 0in; font-weight: medium">Extract-Transform-Load</P> |
| <P STYLE="margin-bottom: 0in; font-weight: medium"></P> |
| </UL> |
| <P>We understand that some areas of this proposal may overlap with |
| other efforts in eclipse.org and the community. Examples from |
| current eclipse.org projects include the 'rdb' components of Web |
| Tools, and the Extract-Transform-Load components mentioned in |
| BIRT. From the Eclipse membership-at-large, recent work on |
| Hibernate tooling provides one potential Object/Relational Mapping |
| tie-in. We are very interested in working with such groups to |
| insure a consistent, comprehensive, and best-of-breed set of data |
| management tools in Eclipse, regardless of where they are housed.</P> |
| </TD> |
| </TR> |
| <TR> |
| <TD WIDTH=100%></TD> |
| </TR> |
| <TR> |
| <TD WIDTH=100%> |
| <P><BR> |
| </P> |
| </TD> |
| </TR> |
| </TABLE> |
| <TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=5> |
| <TR> |
| <TD VALIGN=TOP BGCOLOR="#0080c0"> |
| <P ALIGN=LEFT><FONT COLOR="#ffffff"><FONT FACE="Arial, Helvetica"><B>Projects |
| </B></FONT></FONT> |
| </P> |
| </TD> |
| </TR> |
| <TR> |
| <TD> |
| <P><B>Database Connectivity<BR><BR></B>The Database Connectivity |
| project consists of core frameworks and components for DTP:</P> |
| <UL> |
| <LI><P STYLE="margin-bottom: 0in">Driver management<BR><BR>Access |
| to the appropriate database drivers is a prerequisite for |
| programmatic interaction with databases. The Driver Management |
| Framework (DMF) supplies an Eclipse preference page enabling |
| users to create driver definitions based on supplied templates. A |
| number of database templates are provided in the base |
| installation, and additional templates can be added by component |
| developers contributing to DMF extension points.</P> |
| <P STYLE="margin-bottom: 0in"></P> |
| <LI><P STYLE="margin-bottom: 0in">Connection Profile |
| Framework<BR><BR>The Connection Profile Framework (CPF) is the |
| foundation upon which specific connection types are created. The |
| connection types, called “Connection Profiles” (CP), |
| are contributed to the CPF through extension points. Users then |
| connect to database instances by creating and configuring a CP |
| for that database type. Database-standard configuration |
| parameters, such as the connection URL, user name, and password, |
| are provided on CP instance creation and stored as secure |
| meta-data for the CP. Database CP allow for host connectivity |
| checks (aka “ping”), connection, auto-connect on CP |
| startup, and disconnect. Further, CP Extensions enable additional |
| functionality and content to be added to a CP. For reuse of CP |
| instance configuration, base export/export functionality is |
| provided by CPF and surfaced in tools such as the Database |
| Explorer (see below). Database CP then become the connection |
| providers through which other DTP tooling accesses database |
| instances.</P> |
| <P STYLE="margin-bottom: 0in"></P> |
| <LI><P STYLE="margin-bottom: 0in">Sample Implementations of |
| Connection Profiles<BR><BR>DTP will include a number of database |
| CP, as a means of demonstrating, testing, and serving as examples |
| for further CP development. While the set of database CP has yet |
| to be determined, We will strive to include CP to open-source |
| database offerings whenever possible. With community support, we |
| hopes that the number of CP will quickly grow to encompass a |
| large number of databases. As described above, database-specific |
| capabilities can be surfaced as CP extensions, allowing for |
| specialization and presentation of differentiating database |
| functionality directly in that database's CP.</P> |
| <P STYLE="margin-bottom: 0in"></P> |
| <LI><P STYLE="margin-bottom: 0in">Database Explorer<BR><BR>The |
| Database Explorer (DE) is an Eclipse view housing CP instances. |
| From this view, CP capabilities are surfaced, and database |
| content is presented. Users can connect to database instances, |
| browse table, stored procedures, and so on. The type and and |
| level of detail for any one instance is constrained only by the |
| CP itself. DE also is a provider of CP instance data to clients, |
| such as drag and drop and API calls. This allows database tools |
| requiring connection management to interact with the DE as a |
| mediator to CP instances. |
| </P> |
| </UL> |
| <P><BR><B>SQL Development Tools<BR><BR></B>This SQL Development |
| Tools (SDT) project provides a development environment similar to |
| Eclipse JDT. It leverages the Database Connectivity project to |
| edit, execute, and debug procedural objects (stored procedures, |
| triggers and functions) and SQL statements. The following sections |
| comprise the SDT:</P> |
| <UL> |
| <LI><P STYLE="margin-bottom: 0in">SQL Editor Framework<BR><BR>The |
| SQL Editor Framework (SEF) is a text-based SQL statement and |
| procedural object editor framework. Coupled with SQL Execution |
| and Debugger Framework, SEF provides visual code generation |
| tooling and grammar extensions. Features found in Eclipse code |
| editors, such as formatting, content assist, dynamic feedback for |
| errors and warnings, correction suggestions, and so on, will be |
| supported.</P> |
| <P STYLE="margin-bottom: 0in"></P> |
| <LI><P STYLE="margin-bottom: 0in">SQL Execution and Debugger |
| Framework<BR><BR>The SQL Execution and Debugging Framework (SED) |
| provides core enabling DML functionality for:</P> |
| <P STYLE="margin-bottom: 0in"></P> |
| <UL> |
| <LI><P STYLE="margin-bottom: 0in">SQL statement execution and |
| debugging</P> |
| <LI><P STYLE="margin-bottom: 0in">Procedural object execution |
| and debugging</P> |
| <LI><P STYLE="margin-bottom: 0in">Results viewing</P> |
| <LI><P STYLE="margin-bottom: 0in">Results export</P> |
| <P STYLE="margin-bottom: 0in"></P> |
| </UL> |
| <LI><P STYLE="margin-bottom: 0in">Sample Implementation for SQL |
| Tools<BR><BR>Based on SEF and SED, the sample implementation for |
| SQL Tools will provide grammar extensions for chosen SQL dialects |
| and execution support for selected databases. As above with the |
| sample implementation for Connection Profiles, choices of dialect |
| and database support will be based on open-source alternatives, |
| and DTP members will work with the community to increase the |
| number of specializations whenever practical.</P> |
| <P STYLE="margin-bottom: 0in"></P> |
| </UL> |
| <P><B>Database Administration<BR></B><BR>This Database |
| Administration project provides a framework to support generic |
| administration functionality, which will then be tailored to |
| specific databases. As with the other projects above, a sample |
| implementation for selected databases will be provided. A third |
| component of the Data Administration project is tooling for the |
| presentation of SQL Execution plans. Thus, the Database |
| Administration project is divided as follows:</P> |
| <UL> |
| <LI><P STYLE="margin-bottom: 0in">Database Administration |
| Framework<BR><BR>The Database Administration Framework (DAF) |
| supplies generic database administration capabilities including:</P> |
| <P STYLE="margin-bottom: 0in"></P> |
| </UL> |
| <UL> |
| <UL> |
| <LI><P STYLE="margin-bottom: 0in">Database creation and DDL |
| support |
| </P> |
| <LI><P STYLE="margin-bottom: 0in">Schema generation, reverse |
| engineering and migration</P> |
| <LI><P STYLE="margin-bottom: 0in">Data loading and unloading</P> |
| <LI><P STYLE="margin-bottom: 0in">Performance monitoring, |
| analysis and tuning</P> |
| <LI><P STYLE="margin-bottom: 0in">Statistics collection</P> |
| <P STYLE="margin-bottom: 0in"></P> |
| </UL> |
| </UL> |
| <UL> |
| <LI><P STYLE="margin-bottom: 0in">Sample Implementation for |
| Database Administration<BR><BR>The sample implementation for |
| database administration will enable databases supported by |
| Connection Profiles to be administered using the interfaces and |
| capabilities of the target system. Given the wide range of |
| database-specific administration capabilities, it is expected |
| that different sample implementations will vary more than those |
| for Connection Profiles or SDT. Also, due to the large amount of |
| functionality entailed in full database administration, there |
| likely will be fewer choices supported at first in DTP, but, |
| depending on community involvement, the number could increase |
| over time.</P> |
| <P STYLE="margin-bottom: 0in"></P> |
| <LI><P STYLE="margin-bottom: 0in">SQL Execution Plan Inspection |
| Tools<BR><BR>A final component set in the Data Administration |
| project involves SQL Execution Plans. Vital for database tuning, |
| execution plans need to be obtained from a database and presented |
| to the user in a fashion that enables understanding and tuning. |
| DTP will include generic execution plan presentation components, |
| and extension points for specialization of execution plan |
| acquisition and representation as necessary.</P> |
| <P STYLE="margin-bottom: 0in"></P> |
| </UL> |
| <P STYLE="margin-bottom: 0in"><B>Object/Relational Mapping</B></P> |
| <P STYLE="margin-bottom: 0in">Object/Relational Mapping (ORM), is |
| important because of the prevalence of object-oriented languages, |
| especially Java, and the impedance in mapping object to relational |
| structures. These factors make robust ORM tools a valuable part of |
| modern database development. The DTP membership will strive to |
| work with the Eclipse membership-at-large in selecting ORM base |
| technologies and creating tools in Eclipse that are integrated |
| with the DTP base. |
| </P> |
| <P STYLE="margin-bottom: 0in"><B>XML/Relational Mapping</B></P> |
| <P STYLE="margin-bottom: 0in">Like ORM, the prevalence and |
| importance of XML in modern application development calls for |
| XML/Relational Mapping (XRM) tools . Built on DTP member |
| experience in this domain, and working with the Eclipse |
| membership-at-large, this project will provide both key and |
| supporting XRM components.</P> |
| <P STYLE="margin-bottom: 0in"><B>Extract-Transform-Load</B></P> |
| <P STYLE="margin-bottom: 0in">Starting with the simple, but |
| common, developer requirement to load and transfer data between |
| databases, and moving into the complex domain of production |
| Extract-Transform-Load (ETL) capabilities, this project will |
| consist of core components in this domain. We expect that |
| specialization of the extract and load endpoints will be a key |
| area of community plug-in development, based on sample |
| implementations. Translation capabilities will follow the |
| framework/extension model mentioned above and will include core |
| translation functionality in the sample implementation.</P> |
| <P><BR> |
| </P> |
| </TD> |
| </TR> |
| </TABLE> |
| <P><BR><BR> |
| </P> |
| </BODY> |
| </HTML> |