Tags: Apex | Applicatieontwikkeling | Oracle

Modulair Ontwikkelen met Oracle Application Express

Door Ome-B: Douwe Pieter van den Bos

Modulair Ontwikkelen met Oracle Application Express Oracle Application Express, kortweg APEX, is hard op weg een van de populairste ontwikkelomgevingen van Oracle te worden. En niet voor niets; APEX is een manier om snel resultaten te boeken en toch gebruik te maken van de mogelijkheden die het web te bieden heeft. Deze snelheid in ontwikkelen wordt ook als de grootste zwakte en misschien wel gevaar van APEX genoemd. Maar waarom zouden we deze kracht dan niet zo inzetten dat de zwakheden weggenomen worden en er juist gebruik van gemaakt wordt? Modulair ontwikkelen is het antwoord op deze prangende vraag.

Modulair Ontwikkelen

Modulair Ontwikkelen is het opsplitsen van het ontwerp, de ontwikkeling en de oplevering van een te ontwikkelen software pakket. Door te splitsen in functionele of technische brokken, modules, is het mogelijk om eigenlijk grote teams op te splitsen in kleine samenwerkingsverbanden en om iteratief onderdelen van de software op te leveren en te testen. Hierdoor is de druk op de organisatie meer gefaseerd en dus zal de organisatie minder impact hebben van het op te leveren software pakket. Functionele en technische scheiding geschiedt meestal doormiddel van, al dan niet geprioriteerde, eisen- en wensenlijsten, hierdoor is modulair ontwikkelen bijzonder goed toe te passen op timeboxing. Doordat het mogelijk is om kleine samenwerkingsverbanden te creëren binnen de ontwikkelteams kan hiermee vol gebruik gemaakt worden van de kracht van APEX, de snelheid van ontwikkelen, zonder dat het een valkuil hoeft te worden.

Modules en Iteraties

Modules en Iteraties zijn niet hetzelfde. Iteraties zijn afzonderlijk op te leveren onderdelen van het systeem, en kunnen dus best uit meerdere modules bestaan. Toch is het wijs om modules zo snel mogelijk op te leveren. Door zo min mogelijk modules in een iteraties te stoppen zal het mogelijk zijn om op een vroegtijdig stadium fouten in de software te ontdekken. Hierdoor zal ook de doorlooptijd van een project aanzienlijk beter te managen zijn. Als leidraad voor de grootte van een module kan grofweg gezegd worden dat er maximaal twee ontwikkelaars aan mogen werken voor een periode van maximaal een week. Door deze strenge regel toe te passen is er voor ontwikkelaar, ontwerper en projectleiding minder moeite nodig om tijd te plannen en ook om de bestede tijd te managen.

Applicatie Ontwerp

Om een applicatie in meerdere module te kunnen ontwikkelen moet er rekening worden gehouden met het ontwerp van de applicatie. Door vanaf de analyse en het ontwerp te faseren in meerdere modules is het mogelijk om deze in functionele of technische gedeeltes op te splitsen. Voorbeeld hiervan is een te onderhouden, informatieve website. Een van de modules zal de frontend zijn, hier komen de bezoekers terecht en zij zullen de informatie die in de beheermodule in het systeem wordt gezet te zien krijgen. Daarnaast zou er bijvoorbeeld ook een aparte module kunnen zijn waarin de afbeeldingen gebruikt in de frontend worden beheerd. Applicaties en Modules Een te ontwikkelen systeem in Oracle Application Express bestaat meestal al uit meerdere applicaties. Toch is het wijs functionele en technische onderdelen te onderkennen om de applicaties op te delen in meerdere modules. Deze zijn afzonderlijk van elkaar op te delen in eigen applicaties in APEX. Voor het hergebruik van bepaalde eigenschappen, zoals de user interface, autorisatie, authenticatie en het aanroepen van gemeenschappelijke database procedures, is het wijs gebruik te maken van een zogenaamde ‘Core Applicatie’. Door overerving is het op die manier mogelijk om deze herbruikbare onderdelen van je applicatie ook in de verschillende module te gebruiken terwijl hier geen verdere moeite voor gedaan hoeft te worden.

Core Applicatie

De Core Applicatie binnen een Oracle Application Express ontwikkeld systeem zal de meeste gangbare, logische en overerfbare onderdelen van je applicatie bevatten. Onderdeel hiervan zijn bijvoorbeeld de JavaScript Libraries en de autorisatie en authenticatie schema’s. Daarnaast worden veelgebruikte onderdelen als knoppen en paginaprocessen hier in aangemaakt. Veelal is het handig om te werken met twee types van de Core Applicatie, eentje voor al je APEX projecten en eentje gespecificeerd voor het systeem welke ontwikkeld wordt. In elk systeem zitten applicatiespecifieke en toch over meerdere modules herbruikbare applicatieonderdelen. Denk hierbij aan de User Interface template, de stylesheet en klant- of applicatiespecifieke processen en procedures.

Common Sence

In ontwikkelen in Application Express is misschien wel de belangrijkste regel om het gezonde verstand erbij te houden. Op het moment dat een onderdeel van de applicatie meerdere malen gebruikt gaat worden, dan hoort deze naar alle waarschijnlijkheid thuis in de Core Applicatie. Mocht het te hergebruiken onderdeel niet thuis horen in de Core Applicatie, maak er dan een aparte module van. Daarnaast dient Oracle Application Express gezien te worden als User Interface technologie, niet om je Business Logica mee aan te maken. Het grote merendeel van de ontwikkelaars en ontwerpers in ons vakgebied weten meestal wel wat slim is om te doen en te laten. Door dit gezonde verstand erbij te houden zijn ook grote APEX projecten niet anders dan andere projecten.

Model – View – Controller

In de Java wereld wordt al jaren gebruik gemaakt van het zogenoemde ‘Model – View – Controller Design Patern’. Dit model voor architectuur worden in grote applicatiesystemen, ontwikkeld met Application Express, in een versimpelde vorm ook gebruikt. Het Model wordt gedefinieerd door het datamodel en de datalogica, de Controller door de Business Logica en de specifieke functies als Tabel Functies en instead of Triggers. Uiteindelijk wordt de View neergezet door de database Views en de API’s welke neergezet zijn ten behoeve van de applicatie en de Applicaties in Application Express zelf.

Door deze concrete scheiding van Data, Logica en User Interface is het mogelijk om met veel consistentie en betrouwbaarheid te ontwikkelen in Application Express. Door elke pagina binnen APEX te baseren op een eigen View in de database is het tevens mogelijk om data-inconsistentie te voorkomen. De database doet met een dergelijke opbouw van een applicatie het werk en het DBMS is hier immers voor ingericht.

Conclusie

Applicatie ontwikkeling met Oracle Application Express is ongekend snel. Deze snelheid in ontwikkelen is ook vast te houden in grote ontwikkelteams en zal geen vijand hoeven te zijn als er modulair ontwikkeld wordt. Daarnaast is het mogelijk om, doormiddel van het opbouwen van een applicatie in data, logica en interface lagen en gebruik te maken van ‘Core Applicaties’, zoveel mogelijk hergebruik van applicatie onderdelen en code te bevorderen. Als grote APEX ontwikkelteams zo eng zijn, waarom maken we er dan geen kleine teams van?

Ga terug naar We Love IT uitgave 5 - 2008
Advertentie