Gebruik het Eclipse Data Tools Platform voor data centrische applicatieontwikkeling
Het Eclipse Data Tools Platform (DTP) en het Eclipse Rich Client Platform (RCP) vormen samen met de Open Source database Apache Derby een interessante verzameling gereedschappen voor het ontwikkelen van data-centrische applicaties.
In een data-centrische gerichte aanpak wordt het ontwerp en de ontwikkeling van applicaties benaderd vanuit het gegevensmodel. De gegevens nemen de centrale rol in en de stroom van gegevens bepalen welke functies (objecten) en data structuren (tables of classes) moeten worden ontwikkeld. De ontwikkelaar start met het analyseren van de gegevensbehoefte en het ontwerpen van het relationele schema. Het relationele gegevensmodel vormt de basis voor de objecten die later aangemaakt worden in het ontwikkelgereedschap. Deze objecten worden in de applicatieprogrammatuur gebruikt voor het verzorgen van het ophalen en wegschrijven van gegevens. De objecten werken direct op de data in de database en het ophalen en wegschrijven van gegevens gebeurt door het aanroepen van methodes.
Het Eclipse Data Tools Platform beoogt zo’n data-centric application development framework te worden en is goed op weg om dit streven waar te maken. Voor een beter begrip van het concept data-centric application development framework zou u het artikel designing data-centric software erop na moeten lezen.
Het Eclipse Data Tools Platform richt zich op het ondersteunen van Java ontwikkelaars in het bouwen van applicaties die toegesneden zijn op een relationele database, “building to a database” genoemd.
Het Eclipse Data Tools Platform project (DTP) bestaat uit de volgende projecten:
- het Model Base project vormt de basis voor het Eclipse DTP project en volgt ondermeer een model-driven aanpak gebaseerd op UML voor de ontwikkeling van relationale databases. Model Base maakt gebruik van het Eclipse Modeling Framework (EMF).
Het Model Base project bestaat uit de onderdelen database definition model, SQL model, SQL Query model en SQL XML Query model.
- het Connectivity project richt zich op de kreatie, het beheer en het gebruik van data source connecties en bevat ondermeer het Driver Management Framework (DMF), het Connection Management Framework (CMF), Open Data Access (ODA), JDBC Connection Support en de Data Source Explorer (DSE).
Het Driver Management Framework (DMF) biedt gebruikers de mogelijkheid om data access definities op te stellen voor verder gebruik in het Connection Management Framework. Deze specifieke driver definities worden gebaseerd op aanwezige driver templates. Het Data Tools Platform komt standaard met een aantal driver templates en zal in de toekomst verder uitgebreid worden met additionele templates. Aanbieders en ontwikkelaars van data sources kunnen nieuwe data access templates ontwikkelen en toevoegen via DMF Extension Points.
De driver definitie specificeert de software componenten, waaronder de driver class name en het JAR-bestand, nodig voor het verkrijgen van toegang tot specifieke types van data sources.
Het Connection Management Framework (CMF) bouwt verder op het Driver Management Framework en voorziet in een raamwerk en gereedschappen voor het definiëren van verbindingen met een data source en voor het aanmaken van connectie-instanties (Connection Profile Instance), zie objectoriëntatie). Het CMF kunt u zien als een laag boven het DMF waarmee gebruikers de configuratieinstellingen (parameters) voor een specifieke data source kunnen vastleggen in een connectieprofiel (Connection Profile) en nadien een verbinding met de data source tot stand kunnen brengen. Het Connection Profile bevat de detailgegevens voor het maken van een verbinding met een specifieke server of data source. Deze gegevens bestaan ondermeer uit database, locatie, URL (host, port, parameters), gebruikersnaam en wachtwoord.
De Data Source Explorer (DSE) geeft een overzicht van alle beschikbare Connection Profile Instances en maakt interactie met een Connection Profile mogelijk. Via DSE is het eveneens mogelijk om het database schema van de data source te bekijken. Deze bevat ondermeer Stored Procedures, User-Defined Functions, Tables, Views en Dependencies. In detail kan ook gekeken worden waaruit een tabel is opgebouwd, zoals Columns, Constraints, Dependencies, Indexes en Triggers.
Daarnaast kunnen elementen van Connection Profiles via drag-and-drop verplaatst worden tussen Connection Profiles of naar bestemmingen buiten de DSE (editor of andere views).
- het SQL Developments Tools project voorziet in raamwerken en gereedschappen voor het werken met SQL waaronder het Routines Editor Framework, het Routines Debugger Framework, de SQL Query Parser, het SQL Execution Plan Framework, de SQL Editor, de Visual SQL Builder, Results View en Script History.
- het Enablement project voorziet in de ontwikkeling van gespecialiseerde ondersteuning voor verschillende data sources. Hierdoor kunnen database leveranciers zelfstandig driver templates ontwikkelen die hun databases ondersteunen en deze onderbrengen in het Eclipse Data Tools Platform.
Installatie van het Eclipse Data Tools Platform
De laatste versie van DTP is beschikbaar als twee distributies:
- DTP 1.5.1 Extender SDK
- DTP 1.5.1 End User
De End User distributie bevat de eindgebruikersdocumentatie en de binaries (gecompileerde programma’s) van al de DTP componenten. De SDK disctributie voegt hieraan de broncode en uitgebreide documentatie toe.
Ga naar de downloadpagina van het Eclipse Data Tools Platform voor een overzicht van installatievereisten.
U kunt het beste de laatste versie van de Eclipse SDK downloaden van de Eclipse download website en installeren. Daarna moet u nog het Eclipse Modeling Framework (EMF) en het Graphical Editing Framework (GEF) installeren.
Wanneer u de Eclipse SDK opstart is het verstandig om een specifieke werkruimte - workspace voor DTP aan te maken. Volg hiervoor de stappen die ik beschreven heb in mijn bloart Aanmaken van een specifieke werkspace in Eclipse.
- Eclipse EMF kunt u installeren via de Eclipse Update Manager zoals beschreven in mijn bloart Installeer het Eclipse Modeling Framework (EMF).
- Eclipse GEF kunt u installerren via de Eclipse Update Manager in mijn bloart Installeer het Graphical Editing Framework (GEF).
Voor meer informatie over DTP kunt u de website van het DTP Project bezoeken.
Eclipse DTP kunt u installeren via de Eclipse Update Manager.
- Ga naar het menu Help > Software Updates > Find and Install.
- Selecteer in het dialoogscherm Install/Update de optie Search for new features to install
- Klik op de knop Next en u krijgt dan het overzicht van alle reeds geregistreerde updates sites.
- Klik op de knop New Remote Site.
- Vul de naam en URL van de update site in en klik op de knop OK.
Naam: DTP Update Manager Site
URL: http://download.eclipse.org/datatools/updates/
- Klik op de knop Finish
- Vink in het dialoogscherm Update Site Mirrors de optie Automatically select mirrors aan en klik op de knop OK
Hint: De optie “Automatically select mirrors” voorkomt dat u tijdens het zoeken naar updates voortdurend gevraagd wordt een update site te selecteren. Wanneer u eenmaal “Automatically select mirrors” hebt aangevinkt wordt uw keuze opgeslagen onder Preferences.
In het dialoogscherm Updates vink onderaan de optie Filter features included in other features on the list aan en vink de node DTP Update Manager Site aan. Als u de filter hebt geactiveerd worden alleen de macro-level features getoond en niet al de features die daaronder vallen.
Als u de node DTP Update Manager Site opent ziet u alleen de node Eclipse Data Tools Platform (versienummer). De node Enabling Features for DTP (versienummer) is verborgen wanneer u de optie Filter features hebt aangevinkt.
- Klik op de knop Next
- Accepteer de Licentievoorwaarden
Daarna zal in het dialoogscherm Install al de optionele features getoond worden die zijn opgenomen onder het Data Tools Platform onderverdeeld naar:
- Data Tools Platform Enablement
- Data Tools Platform Extender SDK
- Data Tools Platform SQL Development
Aangezien u (waarschijnlijk) niet al deze features nodig hebt kunt u de overbodige features hier deselecteren. Dit geldt vooral voor het Data Tools Platform Enablement project dat zich richt zich op het bieden van gespecialiseerde ondersteuning voor het ontwikkelen van extensies en API’s voor verschillende data sources (databases). Het is verstandig om hier alleen de databases te deselecteren waarvan u geen gebruik gaat maken.
- Klik op de knop Next.
Als u vervuiling van uw standaard Eclipse Europa-omgeving wil voorkomen is het aangeraden om de plug-in als een extensie te installeren. Dit houdt in dat u de plug-in opslaat in een eigen map en niet in de standaard mappen van uw Eclipse-omgeving. Op deze manier zorgt u ervoor dat de mappen plugins en features van uw standaard installatie niet vervuild worden met plug-in’s die u aan het bestuderen bent. De installatiemap van de DTP plug-in’s kunt u aanpassen in het dialoogscherm Install. Selecteer alle plug-in’s en klik op de knop Change Location. Kies nu de map waarin u de DTP plug-in’s wilt installeren. Ik heb een speciale folder “eclipse-extensions” aangemaakt op mijn harde schijf waarin de plug-in’s opgeslagen worden.
- Klik op de knop Finish en dan worden de bestanden gedownload van de DTP Update Manager Site
- Klik op de knop Install All in het dialoogscherm Verification.
Nadat het Eclipse Data Tools Platform is geïnstalleerd wordt Eclipse opnieuw opgestart.
Na het opstarten opent Eclipse met het welkomscherm met een overzicht van het Data Tools Platform.

Voordat u met het Data Tools Platform van start kunt gaan moet u eerst Apache Derby installeren als dit al niet gebeurt is. Immers de Java DB die u als onderdeel van Sun’s Java 1.6 kunt installeren is voor de volle 100% gebaseerd op Apache Derby. Als dit nog niet het geval is kunt u de laatste versie van Apache Derby of van Java DB downloaden en installeren. U kunt ook de stappen volgen die ik beschreven heb in mijn bloart Installatie van Apache Derby.
Apache Derby wordt in het Data Tools Platform gebruikt als demonstratiedatabase.
Het Data Tools Platform is nu geïnstalleerd en de volgende stap in deze introductie is het aansluiten en werken met Apache Derby. Daarvoor moeten de volgende stappen doorlopen worden:
1. definiëren van een Driver Definitie
2. kreatie van een Connection Profile
3. verbinden met Apache Derby
4. gebruik maken van de Apache Derby connectie
1. Definiëren van een Driver Definitie
- Open het menu Windows
- Open de dialoog Open Perspective via de optie Open Perspective > Other
- Selecteer de optie Database Development
Het Database Development perspectief is als volgt opgebouwd:

- Open het menu Windows
- Open de dialoog Preferences
- Selecteer de optie Connectivity > Driver Definitions
Hier ziet u al de beschikbare Driver Templates en Driver Definities. Standaard zijn er geen Driver Definities aanwezig zijn, alleen maar Driver Templates.
Een Diver Template is de basis waarop een Driver Definitie is gebaseerd. In feite zijn Driver Definities instanties van een Driver Template zoals een object een instantie is van een java-klasse, is afgeleid van een bepaalde klasse. De Driver Definitie is nodig om toegang te verkrijgen tot specifieke gegevensbronnen.
- Open de node Database en ga naar de node Derby
- Open de node Derby en selecteer de laatste Driver Template
- Klik op de knop Add voor het opstarten van de Driver Definitie Wizard

- Selecteer de Derby Embedded JDBC Driver Template en geef uw Driver Definitie een naam.
Driver Name = Derby Embedded JDBC Driver MyDerbyDB
- Vink de optie Edit New Driver Definition Immediately aan en klik op de knop OK
Het Driver Details dialoogscherm wordt geopend waarmee u de driver kunt initialiseren. Hier moet u het pad naar uw Apache Derby installatie, het bestand derby.jar, vastleggen.

In het vak Driver File(s):
- Verwijder de sample derby.jar locatie via de knop Clear All
- Klik op de knop Add Jar/Zip en geef de correcte locatie van het bestand derby.jar op.
In mijn omgeving is dat C:\ProgramFiles\Apache Software Foundation\db-derby-10.3.2.1-bin\lib\derby.jar.
In het vak Properties:
- Wijzig de locatie naar de embedded database in het veld Connection URL en geef de naam van de database op.
In mijn omgeving is de URL C:\DataFiles\DerbyDatabases\MyDerbyDB en de naam van de database MyDerbyDB.
- Klik op de knop OK

U ziet nu de driver definitie die u hebt aangemaakt verschijnen in het overzicht.
- Sluit het Preferences scherm.
2. kreatie van een Connection Profile
In het Database Development perspectief ziet u aan de linkerkant de Data Source Explorer (DSE).
De Data Source Explorer biedt u functies om een Connectie Profile voor uw Apache Derby database aan te maken en te onderhouden.
De Data Source Explorer kan de volgende node types bevatten:
* Category
* Connection Profile
* Other Nodes
- Klik met de rechter muisknop op de Category Databases en selecteer New voor het openen van de Connection Profile Wizard. Het aantal connectiemogelijkheden dat u ziet is afhankelijk van de data sources die u geselecteerd hebt tijdens installatie van het Data Tools Platform.
- Selecteer de Derby Embedded Database en klik op de knop Next
- Geef uw Connectie Profile een naam en omschrijving
De naam van mijn Connection Profile is MyDerbyDBConnection met als omschrijving My Derby DB Connection Profile.
- Klik op de knop Next voor het openen van het dialoogscherm Specify a Driver and Connection Details
- Selecteer de driver die u daarnet hebt aangemaakt van de drop-down-lijst en geef uw database een naam. Normaal gesproken worden de gegevens die u hiervoor hebt ingevoerd overgenomen.
- Geef in het veld Database location de directory van uw Derby database op, C:\DataFiles\DerbyDatabases\MyDerbyDB\. Met de knop Browse kunt de directory op uw computer opzoeken en eventueel een nieuwe folder aanmaken.

- Zorg ervoor dat de optie Create database (if required) is aangevinkt
Het is nu mogelijk om uw Connection Profile te testen, klik daarvoor op de knop Test Connection. Als de database nog niet bestaat dan wordt deze aangemaakt en krijgt u een positief ping-resultaat.
Tips: Zorg ervoor dat uw Connection URL de naam van uw database bevat en volg de stappen die hierboven zijn opgenomen zorgvuldig. De eerste maal kreeg ik na het aanmaken van mijn Driver Definition en Connection Profile een negatief ping-signaal. In de Apache Derby Reference Manual onder de paragraaf Derby database connection URL syntax is de syntax voor de embedded database opgenomen:
jdbc:derby: [subsubprotocol:][databasename][;attributes]*
Hieruit maakte ik op dat de databasenaam opgenomen moeten worden in de URL. De velden in de driver definitie doen iets anders vermoeden.
- Klik op de knop Finish en uw Connection Profile wordt aangemaakt
3. verbinden met Apache Derby
Ga naar de Data Source Explorer en klik met uw rechtermuisknop op uw connectie profiel. Selecteer de menuoptie Connect om een verbinding te maken met uw database.

Nadat de verbinding is gemaakt kunt u de inhoud van uw Apache Derby database bekijken door uw connectie profiel te openen.

U kunt niet alleen de structuur van de database bekijken maar eveneens de inhoud van de database. Het Eclipse Data Tools Platform biedt een aantal mogelijkheden:
- het aanroepen en uitvoeren van een Stored Procedure via het database schema
- de kreatie en het uitvoeren van een SQL Query via de SQL Editor
het aanroepen en uitvoeren van een Stored Procedure
Stored Procedures zijn opgeslagen onder de node Stored Procedures van de schema’s van uw database en zijn een Routine Objects Type. Routine Objects kunnen worden aangeroepen vanuit DTP. Het is niet mogelijk om Routine Objects aan te maken vanuit DTP. Dit laatste moet gedaan worden met Database Development gereedschappen.
Als voorbeeld kunt u de SQLTABLES procedure, die u kunt vinden onder het schema SYSIBM, aanroepen en uitvoeren.

Klik met uw rechtermuisknop op de SQLTABLES procedure en selecteer de menuoptie Run. Hierna wordt de Routine Editor geopend en een dialoogscherm voor het invoeren van parameters.

Klik op de knop OK voor het uitvoeren van de procedure. De resultaten worden weergegeven in het SQL Results View. Zoals u kunt zien zijn 19 records gevonden in de tabel SQLTABLES.

de kreatie en het uitvoeren van een SQL Query
Voor het uitvoeren van een SQL Query moet u eerst een Java project aanmaken.
- Open het menu File en selecteer de menuoptie New > Project voor het openen van het dialoogscherm Select a wizard.
- Selecteer Java Project en klik op de knop Next
- Geef uw project een naam in het dialoogscherm Create a Java project en klik op de knop Finish. Omdat het om een Java project gaat zal u voorgesteld worden om het Java perspectief te openen. Klik op de knop YES.
- Klik met de rechtermuisknop op uw project en selecteer de menuoptie New > Other voor het openen van het dialoogscherm Select a wizard.
- Selecteer onder de node SQL Development de optie SQL File en klik op de knop Next voor het openen van de wizard Create SQL File

- Voer een naam in voor uw SQL File: MyDerbyDB_SYSTABLES_QUERY
- Selecteer in de velden Database server type, Connection profile name en Database name de juiste waarden voor uw SQL bestand:
Database server type = Derby_10.x
Connection profile name = MyDerbyDBConnection
Database name = MyDerbyDB
- Klik op de knop Finish en uw SQL File wordt aangemaakt. U ziet het bestand verschijnen in de Package Explorer.
Uw SQL File wordt gelijktijdig geopend in de SQL Editor en bovenaan het scherm ziet u in het rechthoek Connection profile de status van de connectie met uw data source.

- Voer nu het SQL statement select * from SYS.SYSTABLES in en klik met uw rechtermuisknop in de editor.
- Selecteer de menuoptie Execute All.
In het SQL Results View worden dezelfde 19 records getoond als hierboven.

Hiermee ben ik aan het einde gekomen van mijn verhaal over het Eclipse Data Tools Platform. Uit de informatie die ik kan vinden op het Internet over het platform begrijp ik dat het een handig gereedschap is voor Java ontwikkelaars om de output van Java statements tegen een database te vergelijken met de records die aanwezig zijn.
Het is immers zo dat eenmaal u een SQL File of een Stored Procedure hebt uitgevoerd via DTP de resultaten aanwezig blijven in het SQL Results View, zelfs wanneer u de connectie met de database hebt afgesloten.
Het allerbelangrijkste aan het Eclipse Data Tools Platform is dat het de basis vormt voor nieuwe ontwikkelingen en gereedschappen die betrekking hebben op het benaderen van databases, zowel binnen als buiten Eclipse .
Zo zijn daar:
- het Web Tools Platform Project met het Dali JPA Tools Project
- het Business Intelligence and Reporting Tools (BIRT) Project
- de reporting module voor het JFire ERP system die de ODA data source extension points verder uitbreiden en daarmee het gebruik van BIRT met JFire mogelijk maakt
Verder is de kennis van het Eclipse Data Tools Platform zinvol om een aantal andere Eclipse projecten goed te kunnen positioneren, ondermeer het Eclipse Persistence Services Project (EclipseLink).
Over deze gereedschappen en andere zal ik het binnenkort hebben.