Terug naar de beginpaginaCentor Homepage

Java Development minder complex door gebruik van Oracle's ADF en JHeadstart

ADF versnelt ontwikkeling van J2EE-applicaties



Oracle ADF (Application Development Framework) is een framework dat deel uitmaakt van Oracle JDeveloper 10g en waarmee op een productieve en flexibele wijze J2EE-applicaties ontwikkeld kunnen worden. ADF versnelt de ontwikkeling dankzij de implementatie van een set gebruiksklare J2EE design patterns en door metadata-aangestuurde componenten die men anders met de hand zou moeten coderen, testen en debuggen. Doordat de implementatie is gebaseerd op standaarden en geput is uit de jarenlange ervaringen van Oracle's eigen ontwikkelaars van zakelijke applicaties, zijn de ADF-aangestuurde applicaties niet alleen zorgvuldig opgezet, maar kennen ze ook een hoog prestatieniveau. In dit artikel een beschouwing van Oracle ADF, waarbij ook JHeadstart de revue passeert.


Het gebruik van Java is in bij ontwikkelaars. Sedert de lancering in 1995 heeft Java aanzienlijk aan populariteit gewonnen. Dat blijkt uit het feit dat momenteel versie 5.0 de zoveelste in omloop is. Niet ten onrechte, want Java oftewel J2EE* biedt een scala aan mogelijkheden voor het ontwikkelen van geavanceerde applicaties. Maar… het is complex en daardoor weinig productief. 4GLontwikkelaars hebben wel eens gesteld dat wat hen minuten werk kost, in Java en J2EE wel eens een dag of wellicht zelfs meer kost. En dat is geen irreële bewering. Ruimte voor frustraties te over.
Bij Oracle moet men gedacht hebben: ‘Dat kan anders'. Leuk opgemerkt, maar hoe realiseer je dat?

Hoe realiseer je dat?
In de eerste plaats is er een Integrated Development Environment (IDE) nodig die ons in staat stelt op een productieve manier te werken. Oracle heeft gezorgd voor een van de beste — zoniet dé beste — Java IDE's die er bestaan: Oracle JDeveloper 10g. Deze IDE reikt de ontwikkelaar een bruikbare set geïntegreerde hulpmiddelen aan die de volledige levenscyclus van een ontwikkelproces ondersteunen; van source control, modeling en coderen tot en met debuggen, testen, profiling en deploying.
JDeveloper vereenvoudigt de ontwikkeling van J2EE door wizards aan te reiken, evenals editors, visual design tools en deployment tools om zo J2EE-componenten — zoals applets, JavaBeans, JavaServer Pages (JSP), servlets en Enterprise JavaBeans (EJB) — van hoge kwaliteit te kunnen creëren. JDeveloper 10g voorziet ook in een publieke Add-in API (Application Program Interface) om de ontwikkelomgeving uit te breiden en aan te passen en naadloos te laten samenwerken met externe producten.
Maar we hebben ook een Application Server nodig die J2EE-gecertificeerd is om onze applicatie te kunnen testen en op orde te brengen. Ook daar heeft Oracle een van de beste oplossingen: Oracle Application Server 10g.
Wie nu denkt dat we met de voornoemde prima IDE, het open standaard J2EE-platform en een van de beste Application Servers, het maken van een J2EE-applicatie hebben gereduceerd tot het niveau van ‘fluitje van een cent', moeten we teleurstellen. Ondanks alle wizards en het modulaire platform, moet er nog heel wat worden gedaan voor er een transactionele applicatie kan worden gebouwd. Hoe communiceren we met de database? Hoe implementeren we een aantal van de ‘best practices' in de J2EE-wereld (bekend als J2EE design patterns) en hoe ontwerpen we een goede en bruikbare user interface?

Voor al dit soort zaken kan gebruik worden gemaakt van frameworks. Frameworks zorgen voor het ‘laagbij- de-grondse' sleutelwerk en verbergen de complexiteit van het ontwikkelen van J2EE-applicaties, zodat het voor de ontwikkelaars niet noodzakelijk is om op de hoogte te zijn van de complexe onderliggende architectuur. Een goed framework heeft zijn nut bewezen, is uitgebreid getest en geoptimaliseerd. Simpel gesteld: een goed framework doet het vuile werk voor de ontwikkelaar, waardoor het gemakkelijker wordt een J2EE-applicatie in een relatief kort tijdsbestek af te ronden.

Application Development Framework
Oracle heeft ook een dergelijk framework vervaardigd. Het resultaat was Oracle's Application Development Framework (ADF) dat onderdeel uitmaakt van — het in januari van dit jaar in productie genomen — JDeveloper 10g. ADF minimaliseert de noodzaak om codes te schrijven voor de implementatie van design patterns en de infrastructuur voor applicaties.
De voornaamste kenmerken van ADF zijn:

  • Een geïntegreerde ontwikkelomgeving waartoe visuele hulpmiddelen behoren, evenals een declaratieve benadering;
  • Platform-onafhankelijkheid die zekerstelt dat op ADF gebaseerde applicaties draaien op elke gecertificeerde J2EE-applicatieserver;
  • MVC-architectuur (Model, View, Controller) die zorgt voor een vereenvoudigd onderhoud en hergebruik van componenten over de applicaties heen;
  • De keuze van technologie maakt het voor ontwikkelaars mogelijk om te kiezen uit diverse opties voor elke layer in de MVC-architectuur; en
  • Zorgt voor een totaaloplossing (end-to-end). Oracle ADF voorziet in een complete oplossing voor elke J2EE-layer en elke fase van de ontwikkelcyclus.

Deze karakteristieken maken Oracle ADF tot een productief, krachtig en flexibel framework, dat onmisbaar is voor elke J2EE-ontwikkelaar die zich wil richten op de functionele vereisten in plaats van op het ‘laag-bij-degrondse' sleutelwerk.



Figuur 1: Oracle's ADF schematisch weergegeven.

ADF zorgt — zoals ook in figuur 1 te zien is — voor een tijdsbesparende functionaliteit voor alle vier de lagen waaruit een J2EE business applicatie in principe wordt opgetrokken. Deze lagen zijn:

  • Business Services (layer die onder andere de volgende zaken bevat: business logica, het datamodel en object-relational mapping dat het datamodel weergeeft als tabellen in een database);
  • Model (zorgt voor de business logic en bevat de data die in View getoond worden);
  • Controller (zorgt voor een correcte afhandeling van de acties door gebruikers; hij zorgt voor de interactie tussen Model en View); en
  • View (waarin HTML-pagina's worden gegenereerd; het verzorgt de presentatie).

ADF houdt zich echter vooral bezig met de reeds eerder genoemde MVC architectuur (Model, View, Controller) die schematisch is weergegeven in figuur 2.

Figuur 2: Een schematische weergave van de MVC-architectuur.

De klachten van ontwikkelaars met betrekking tot Java, werden veroorzaakt doordat voor al deze lagen een scala aan technologieën ter beschikking stond. Er moesten steeds keuzes worden gemaakt en zelfs met de meest optimale keuzes bleken de diverse frameworks nog niet goed op elkaar aan te sluiten.
ADF nu kan worden gezien als cement dat alle onderdelen (de verschillende lagen en ook de diverse technologieën) op een juiste en bruikbare manier (in beperkte mate zelfs door het gebruik van drag & drop!) tot een compact en bruikbaar huis samenbrengt. Hiertoe maakt ADF gebruik van de Oracle Databinding Technology.

ADF kan worden beschouwd als een etiket dat Oracle heeft geplakt op diverse componenten die (grotendeels) al eerder bestonden, zoals: Business Components (dat eind 1999 beschikbaar kwam onder de naam BC4J – Business Components for Java) en UIX (User Interface XML) dat Oracle al sinds 2000 kent. Relatief nieuw — stammend uit deze zomer — is het Binding framework dat View/Controller en Model met elkaar in contact brengt. Dit Binding framework (dat is gebaseerd op Java Specification Request 227 oftewel JSR 227, een standaard data-binding, en data-access facility voor J2EE) zorgt voor ondersteuning en tevens voor de uitwisseling van diverse Business Services technologie-onderdelen.

Door ADF in te zetten kan op een relatief makkelijke en efficiënte wijze — lees snel — een basis worden gelegd voor een effectieve, data- en transactiegerichte applicatie.

Tijd om JHeadstart te introduceren
Maar wie denkt dat het daarmee allemaal achter de rug is, staat toch nog een verrassing te wachten. ADF vergt van de ontwikkelaar dat deze de nodige tijd besteedt aan de registratie van Data Controls en vervolgens aan de bouw van de individuele pagina's. Hiervoor zijn echter weinig algemene definities beschikbaar die op diverse pagina's ingezet kunnen worden.

Op dit punt aangeland, wordt het tijd dat we JHeadstart introduceren. Het tijdschrift ‘Optimize' stelt in haar septembernummer in een artikel van Lucas Jellema dat ‘waar Oracle Designer aan de ontwikkeling van Oracle Forms een grote mate van standaardisatie en productiviteit heeft toegevoegd door ondermeer het centraal en declaratief vastleggen van eigenschappen die door generatie op vele plaatsen in de applicatie kunnen worden toegepast, doet JHeadstart datzelfde voor ADF!'

Begin dit jaar werd de eerste ADF JHeadstart uitgebracht. De recent verschenen nieuwste release (versie 10.1.2.1) bouwt voort op de versie die in 2001 werd gepubliceerd.
Oracle's JDeveloper en ADF reiken u een manier aan om uw applicatie pagina voor pagina op een declaratieve manier te bouwen. Oracle JHeadstart voegt aan JDeveloper een geïntegreerde tool toe doordat het direct metadata specificeert en een complete applicatie genereert. JHeadstart verbetert hiermee op een ingrijpende manier de productiviteit van de ontwikkelaar die met ADF werkt.

De opbouw van JHeadstart
JHeadstart is opgebouwd uit drie hoofdbestanddelen. Deze zijn:

1. JHeadstart Runtime
JHeadstart Runtime is een soort software-bibliotheek die herbruikbare componenten bevat welke een aanvulling vormen op Oracle ADF. Deze herbruikbare componenten implementeren Oracle ADF's ‘best practices' die zijn ontwikkeld tijdens maatwerkprojecten die door Oracle Consulting werden uitgevoerd. We hebben het dan over applicatiegenerieke functionaliteit, zoals transactionele functies, ondersteuning voor meertalige inzet, beveiliging enzovoort.

2. JHeadstart Application Generator (JAG)
De JAG is een krachtig hulpmiddel dat de ontwikkeling automatiseert van de Controller (Struts configuratie file), View (UIX- of JSP-bestanden) en Model-componenten (ADF data controls en data bindings). De JAG wordt aangedreven door XML-metadata die u creëert met behulp van JDeveloper (plug in) wizards en JHeadstart Property Editors. Om u te helpen een begin te maken met het gebruik van metadata, genereert JHeadstart een eerste hoeveelheid metadata gebaseerd op ADF Business Components, die van een UML class model of van databasetabellen betrokken kunnen worden.

3. JHeadstart Designer Generator (JDG)
JHeadstart biedt u ook een migratiepad van Oracle Forms/Designer naar Java/J2EE. Door de JDG te gebruiken wordt de metadata in de Oracle Designer Repository omgezet naar het XML metadata-format dat de JAG vereist. Als u met de hand een Forms-applicatie hebt gebouwd, kunt u de Designer Design Capture faciliteiten gebruiken om deze informatie naar de repository (het depot) te laden. U kunt dan de JDG gebruiken, gevolgd door de JAG om uw forms-applicatie te migreren naar een professionele J2EE-applicatie die het MVC-ontwerppatroon implementeert.

De werking van JHeadstart
JHeadstart creëert automatisch initiële metadata. Gebaseerd op datacollecties die in uw model-layer worden gedefinieerd, kan uw eerste applicatie al binnen luttele minuten draaien. Door uw applicatie met hoogfunctionele metadata declaratief te verfijnen — waarbij gebruik kan worden gemaakt van een eenvoudige editor voor eigenschappen (Property Editor) en JHeadstart's Application Generator (JAG) —, genereert JHeadstart volledig functionele applicaties gebaseerd op Oracle ADF. Zo genereert het onder meer zaken als multirow editing, trees, een (meerkeuze) lijst van waarden, een snelle en geavanceerde zoekmogelijkheid evenals shuttles op basis van eenvoudige metadata. Het creëert geen Java; het genereert UI-pagina's, configureert de page flow en ‘lijmt' de pagina's, de page flow en de business components aaneen.
Het maakt het voor ICT-organisaties mogelijk J2EE op een snelle manier te introduceren, zonder dat er een team van J2EE-goeroes nodig is dat complexe transactionele J2EE-applicaties moet bouwen.
Het declaratieve karakter van deze benadering maakt het mogelijk Oracle Designer als optionele mogelijkheid te zien voor het genereren van J2EEapplicaties of voor het migreren van Oracle Forms naar Java/HTML. Dit beschermd investeringen als naar J2EE wordt overgestapt.
In de niet te verre toekomst kan de 10.1.3 release van JHeadstart worden verwacht. Naast ADF Business Components zal, zo stelt Lucas Jellema in ‘Optimize', daarin ook aandacht worden besteed aan andere Business Service-technologieën. Een rol van belang lijkt, volgens deze deskundige, ook weggelegd voor persistentie onder de EJB 3.0- (Enterprise JavaBeans)-noemer, met implementatie door bijvoorbeeld Oracle TopLink, maar mogelijk ook Hibernate.

Het plaatje lijkt duidelijk. Wie met Java bezig is of wil gaan en zichzelf — nu en in de nabije toekomst — niet tekort wil doen, doet er goed aan zich te verdiepen in de productiviteit en flexibiliteit creërende Oracle-programma's ADF en JHeadstart.

* J2EE (Java 2 Enterprise Edition) is een verzameling van standaarden en technologieën die binnen een multi-tier omgeving gebruikt kunnen worden.


OC Centor BV
Coltbaan 4e
3439 NG
Nieuwegein
tel. 030 6020060

Realisatie:
Beaumont Tekst&Ontwerp
H. Dunantweg 20 2400BD
Alphen a/d Rijn
tel. 0172 419370

: Dagelijks Nieuws :
Klik hier voor een actueel overzicht van Linux, Unix, Oracle, DWH, BI, Java, Database, Emercing Technologies, Security, ICT en Financieel nieuws.