Open World bood 1.800 sessies; het was dus schier onmogelijk voor één persoon om in vijf dagen tijd een volledig beeld te krijgen. Gelukkig waren wij met een delegatie van tien collega’s...

De weg kwijt bij Oracle Open World

Door Yung Fu

Met 43.000 bezoekers is de Oracle Open World een event geworden dat nauwelijks meer past in San Francisco. Open World bood 1.800 sessies; het was dus schier onmogelijk voor één persoon om in vijf dagen tijd een volledig beeld te krijgen van de laatste ontwikkelingen rondom Oracle. Gelukkig waren wij met een delegatie van tien collega’s en hebben wij Oracle systeemontwikkeling- en integratie als focus voor ons bezoek.

Mocht je toevallig alleen geïnteresseerd zijn geweest in Oracle Designer en Developer, dan kon je je gelukkig prijzen en kon je een week onder heerlijke weersomstandigheden genieten van wat San Francisco te bieden heeft. Er was namelijk geen enkele sessie die echt daarover ging. Er is wel een aantal sessies dat je handvatten aanreikt om daarvandaan te migreren. Voor de velen onder ons die nog volop bezig zijn met deze technologieën, is het wellicht tijd om zich te bezinnen.

Iets nieuws

Wat te doen? Overschakelen naar Open Source Java en .NET? Of je richten op één van de Oracle-technologieën?:

  1. APEX
  2. JDeveloper
  3. JDeveloper ADF Framework
  4. BPEL
Een interessante overweging. Wat zegt Oracle Open World hierover?

Philips and Phelps
Oracle president Charles Philips in gesprek met zwemmer Michael Phelps, de achtvoudige gouden medaillewinnaar van de Olympische Spelen in Beijing.

APEX

Het is ongelooflijk hoeveel sessies er zijn over APEX. Is dat nou echt een ontwikkeling die zoveel aandacht waard is? APEX is fantastisch snel. Niet alleen kun je heel snel een eenvoudige webapplicatie bouwen en deployen, je kunt het ook heel snel leren zonder je al te veel te verdiepen in de webtechnologie. Met een zelfstudiecursus van enkele uren via bijvoorbeeld www.w3schools.com en het doorlopen van de tutorial van APEX, kom je al heel ver. Het is daarom een ideale tool als je iets werkends wilt, dat niet groot en onderhoudsgevoelig is, en waarvan de verwachte levensduur kort is. Wil je iets groots bouwen, dan is APEX niet geschikt. De webapplicatie vormt een monolithisch geheel en er is geen scheiding tussen model, logica en presentatie (wat ongewenste afhankelijkheden met zich meebrengt). Als je er een grote applicatie mee wilt bouwen, dan vereist dat al gauw specifieke kennis, waarbij je probeert om het onderste uit de kan te halen. En dat is niet verstandig. De pool van mensen die zich bezig gaan houden met APEX wordt kleiner omdat deze voornamelijk bestaat uit voormalige Oracle (Developer) ontwikkelaars. Er zullen nauwelijks nieuwkomers zijn vanuit de hoge scholen en universiteiten die zich hierin gaan specialiseren. Kortom, het is een raadsel waarom er zoveel sessies waren over APEX. Sessies zoals het migreren van Designer/Forms applicatie naar APEX wekken een verkeerde indruk. Maar het benadrukken van APEX als vervanger van een spreadsheet- of Access-applicatie is wel prima. Voor een Oracle ontwikkelaar is APEX een prima opstapje naar een webapplicatie, maar niet voor het grote werk dat hij/zij gewend is.

Itude at Oracle Open World
Oracle Open World brengt je in een sfeer, die je niet gauw zal vergeten. Een onvergetelijke happening, ook voor deze tien man/vrouw sterke delegatie van Itude uit Nederland.

JDeveloper / ADF

Uiteraard kun je als Oracle ontwikkelaar kiezen om JDeveloper te gaan gebruiken om webapplicaties te bouwen. Gewetensvraag: waarom zou je JDeveloper gebruiken als je het framework ADF of BPEL niet gebruikt? Juist, er zijn overtuigende geen redenen te bedenken. In dat geval is het namelijk voor de hand liggend om Eclipse of NetBeans als IDE te gebruiken. Waarom zou je een tool gebruiken dat slechts door klein deel van de Java community wordt gebruikt?
JDeveloper is dus eigenlijk alleen handig in combinatie met het ADF framework. Dit is een framework waarmee het mogelijk is om declaratief een applicatie te bouwen, waarbij je alleen het model, de business rules en allerlei properties hoeft te specificeren om een applicatie te genereren. Als Oracle ontwikkelaar moet je dit ter plekke een déjà vu gevoel geven. In 1994, toen wij actief waren tijdens de opkomst van 4GL-pakketten zoals Designer/Forms, Powerbuilder en Cool:Gen, was het precies hetzelfde. Pascal en C werden verdrongen door deze ontwikkelingen. Kortom, wij zijn terug bij af. Maar dan wel op een betere 3-tier architectuur.

Wat opvalt tijdens deze Oracle Open World is het groot aantal Aziatische deelnemers, naar schatting meer dan 40%. Niet alleen komen zij uit Azië zelf, maar er zijn er ook heel veel die uit de VS komen. Enkele Indiërs of Chinezen die ik heb gesproken zijn allen enkele jaren terug vanuit de universiteit geëmigreerd naar de VS en hebben daar hun gezin gesticht. Het is leuk om telkens te lezen dat dit tekenend is voor de internationalisatie van de kenniseconomie. Maar om dit met eigen ogen te zien, is toch wat anders. Het zal niet lang meer duren, voordat het aantal kennismigranten ook in Nederland zichtbare vormen aan gaan nemen tijdens conferenties. Zeker omdat de Nederlandse overheid de regeling een paar terug heeft versoepeld. Steeds meer bedrijven halen (uit nood) Indiërs naar Nederland in plaats van te outsourcen naar India. En de Indiase bedrijven realiseren dat zij niet meer verder kunnen groeien in de VS en zullen steeds intensiever proberen om in Europa (en ook in Nederland) hun marktaandeel te vergroten.

Iedereen die met Headstart of een eigen template heeft gestoeid, weet wat dit betekent voor de systeemontwikkeling. Het conformeren aan een framework zoals ADF, betekent het beperken van de vrijheid en een grote afhankelijkheid van de framework leverancier. Als oude rot realiseer je je dat het lastig is om met een framework te werken zonder dat je de onderliggende principes (en code) goed begrijpt. Er komt een dag dat je moet debuggen en zonder Java-kennis ben je dan aan de goden overgeleverd. Mijn beeld is dan ook dat JDeveloper/ADF op zich een fantastische combinatie is. Als ik de sessies nu zie dan is er veel verbeterd ten opzichte van de versies een paar jaren geleden. Het ziet er allemaal goed uit. Het is inderdaad mogelijk om snel master-detail schermen te bouwen. Met enkele definities kunnen inderdaad business rules worden aangebracht. Deze definities worden netjes in XML-bestanden opgeslagen. Kortom, het ziet eruit zoals het eruit zag rond 10 jaar geleden. Wij kunnen weer zonder veel moeite applicaties genereren.
Als je de laatste zinnen nog een paar keer leest, kan je je afvragen of dit wel een goede keuze is. De wereld is veranderd. Waarom hebben wij een nostalgische verlangen naar het verleden, het genereren van applicaties? Moeten wij dat niet gewoon achter ons laten en meegaan met de ontwikkelingen en ons storten op Component Based Development (CBD) in plaats van telkens terug te grijpen naar Model Based Development? Een groot project op basis van CBD is makkelijker gedistribueerd te ontwikkelen (team in VS, team in Nederland en team in India). Dit laatste zal niet mee vallen met Model Based Development. Onderhoud is makkelijker zonder een proprietary framework. Een Indiaas team kan zonder veel moeite in code duiken. Een proprietary framework vereist weer extra inleertijd en complexiteit bij het uitbesteden van systemen naar lagelonenlanden. Daarnaast moet nog maar blijken of een proprietary framework na zes jaar nog gedragen wordt door een community en/of leverancier. Kortom, technisch en op korte termijn gezien is zo’n framework handig en goedkoop. Maar organisatorisch en op langere termijn is het maar zeer de vraag of dit handig en goedkoop blijkt te zijn.

BPEL

Hoe zit het dan BPEL? Moeten wij ons daar niet op storten? Jazeker. Integreren is hot. Al jaren is ‘eerst kopen, dan integreren’ het motto van de meeste bedrijven. En dat blijft zo. Een ander argument waarom focussen op BPEL een goede stap is, is de strategie met betrekking tot Oracle Applications. Oracle wil compleet zijn op het gebied van diensten in de Applications markt. Dit betekent dat Oracle alles opkoopt dat enigszins doorgaat voor een standaardapplicatie in een bepaald marktsegment. Eigenlijk speelt Oracle een potje Go met SAP. Door alles om SAP heen op te kopen, probeert Oracle SAP in te sluiten. 60% van SAP applicaties draait op een Oracle database. In de meeste organisaties moet SAP interfacen met bijvoorbeeld Siebel, PeopleSoft en JD Edwards. Daarnaast worden met Hyperion analyses uitgevoerd op data van SAP. Dit illustreert de potentie van Oracle BPEL, dat als integratietool naar voren is geschoven door Oracle. Grote kans dat Oracle BPEL wordt gebruikt om als een SOA tool functies en data van de verschillende applicaties te integreren en nieuwe businessprocessen te ondersteunen. Wat betekent dit voor ons, Oracle ontwikkelaars? Inderdaad, willen wij hieraan meedoen, dan ontkomen wij er niet meer aan om toch mee te gaan met de hedendaagse internettechnologie.

Caching … caching… caching… Dat is het thema op het gebied van de database tijdens deze Oracle Open World. Ten eerste het cachen van een complete database via Oracle TimesTen (8 sessies). Bij TimesTen wordt de complete inhoud van een database ingelezen in het geheugen. Alle datamanipulaties vinden vervolgens plaats in het geheugen. Deze wijzigingen worden periodiek en asynchroon weggeschreven naar de storage unit. Ten tweede een wat geavanceerde caching op de middleware laag via Oracle Coherence (11 sessies). Een interessante ontwikkeling. In het kort komt het erop neer dat de objecten en data van applicaties met behulp van Oracle Coherence worden geclusterd over meerdere servers, waardoor het lijkt alsof er sprake is van één applicatieserver. Daarnaast is het op deze wijze niet meer nodig om telkens de database direct te benaderen, zodra data wordt geraadpleegd, gewijzigd of verwijderd. Dit leidt tot een data grid, die supersnel is en die blijft werken wanneer een onderliggende server uitvalt.

Lekker doorgaan

Natuurlijk is het mogelijk om nog lekker door te gaan met Designer/Developer. Naar verwachting zal er meer dan genoeg werk zijn op dit gebied de komende vijf, zes jaren en misschien nog langer. Immers, de populatie hardcore Designer/Developers sterft af door functiewisselingen en doorgroei. Er komt geen nieuwe aanwas vanuit de universiteiten en hogescholen. Niet voor niets liggen de tarieven voor de Oracle Designer/Developer-ontwikkelaars hoger dan die van een Java- of .NET-ontwikkelaar. De installed base Oracle klanten denken er voorlopig niet aan om tonnen of miljoenen te spenderen aan het opnieuw bouwen van systemen zonder er functionaliteit bij te krijgen. Als je bedenkt dat er nu klanten zijn die Natural/Adabas-systemen (pre-4GL technologie) willen vernieuwen naar bijvoorbeeld .NET, dan kunnen Designer/Developer applicaties nog zeker jaren mee.

Tijdens Oracle Open World zijn er 11 sessies over .NET en Oracle. Nu hebben wij als Oracle ontwikkelaars niet altijd een objectieve mening als het gaat om die ‘Mickey Mouse applicaties die met Microsoft tools worden ontwikkeld’. Echter, sommige sessies maken indruk. Met behulp van een Oracle plug-in in Visual Studio kunnen applicaties worden ontwikkeld op een declaratieve wijze. Het is mogelijk om op basis van een datamodel binnen de Oracle database een applicatie bij elkaar te klikken. Daarnaast is het mogelijk om met .NET tools vanuit Visual Studio te debuggen tot aan PL/SQL toe. Het is mogelijk om een watch point in te stellen in een PL/SQL-procedure en waarden van variabelen op te vragen. Daarnaast is een code tracing tot op regelniveau mogelijk. Dit is geen oproep om over te stappen. Maar dit is hopelijk een teken dat een hybride architectuur in opkomst is, waarbij het niet uitmaakt welke tools wij gebruiken, zolang de softwarearchitectuur maar solide is.

Verdiepen in de database

Daarnaast bestaat er de mogelijkheid om je te verdiepen in de kern van Oracle; de database. Tijdens de Oracle Open World merk je dat de Oracle database zich blijft ontwikkelen. Met betrekking tot de database probeert Oracle zoveel mogelijk het werk uit handen te nemen van de DBA’s. Dat heeft ook voordelen voor systeemontwikkelaars, omdat DBA-functies hiermee steeds toegankelijker worden voor hen.

Voor wie geïnteresseerd is in Oracle Developer en de handen uit de mouwen wilde steken zou het fantastisch kunnen zijn geweest. Er waren maar liefst 72 hands-on sessies. Wij hebben ons dan ook massaal ingeschreven. De praktijk bleek helaas weerbarstiger. Een hands-on sessie duurde slechts 45 minuten. Inderdaad, in 45 minuten kan je niet veel doen. Zeker als er tijdens de start af en toe wat aanloopproblemen zijn. Van de hands-on sessies die wij hebben bezocht, beoordeelden wij rond 75% als voldoende. Hopelijk handhaaft Oracle het concept van hands-on sessies, maar dan in een aangepaste vorm.

Het gevaar schuilt erin dat er steeds minder ontwikkelaars zijn die door al die ‘verpakkingen’ nog de basisconcepten kennen van de database, zoals hoe een index werkt, op welke wijze de data worden opgeslagen op de disks, etc. Als je tevens bedenkt dat de nieuwe lichting Java en .NET ontwikkelaars vanuit de hogescholen en universiteiten nauwelijks iets van databasetechnologie heeft geleerd, dan kan het bedrijfsleven zich alvast zorgen gaan maken over de performance van de nieuwe generatie webapplicaties. Het efficiënt programmeren verschuift naar de achtergrond. De database en de hardware compenseren voor een deel de inefficiëntie van de programmatuur.
Het bovenstaande toont aan dat er nog veel mogelijkheden zijn voor ontwikkelaars met Oracle database kennis. Zij kunnen zich richten op de database zelf, PL/SQL, datawarehousing of allerlei nieuwe features binnen de Oracle database. En zij kunnen samenwerken met Java of .NET softwarearchitecten om een efficiënte applicatie te ontwikkelen, waarbij gebruik wordt gemaakt van zowel Object Oriëntatie als stored procedures in de database.

En tot slot, last but not least, de grote aankondiging van deze Oracle Open World, de database machine. Als je niet in detail wilt treden is de database machine eigenlijk gebaseerd op een simpel concept. Dit concept is gericht op het versnellen van de dataoverdracht van de storage unit naar de databaseserver. Allereerst wordt de dataoverdracht beperkt door de fysieke lijntjes van de storage units naar de databaseserver. Tegenwoordig kunnen wij het aantal storage units uitbreiden zoveel wij willen, maar er is altijd maar één lijn naar de databaseserver. Het idee is daarmee geboren om een storage unit te voorzien van twee lijnen. Indien een storage unit wordt toegevoegd, dan worden tevens twee lijnen toegevoegd. Dit betekent dat de dataoverdracht geen bottleneck meer vormt voor het toevoegen van extra hardware. De tweede noviteit is het inbouwen van een stukje logica in de storage unit, waarbij gefilterd data wordt verstuurd naar de databaseserver in plaats van bijvoorbeeld een complete tabel. Stel dat voor een management rapport een sommatie moet worden gemaakt van 1 miljoen rijen per afdeling. Wat er nu gebeurt is, dat de databaseserver deze miljoen ophaalt en vervolgens het resultaat berekent. Door in de storage unit wat simpele logica in te bouwen, zal deze berekening in de storage unit kunnen plaatsvinden, zodat alleen enkele rijen wordt doorgegeven aan de databaseserver. Oracle heeft voorbeelden getoond waarbij met de database machine versnellingen kunnen worden gehaald tot een factor 75, afhankelijk van de toepassing. Dit is met name toepasbaar voor bedrijven die veel geld te besteden hebben en het uiterste uit hun applicaties willen halen.

En nu?

Als je het als Designer/Developer ontwikkelaar niet vol kunt houden tot aan je pensioen, dan lijkt de tijd nu toch echt rijp om je te verdiepen in een aantal technologieën zoals Java, .NET en BPEL. Immers, als je nog tenminste 10 jaren te gaan hebt, dan kun je in die tijd twee complete studies doen! Een weekje Oracle Open World past prima in dat plaatje.

Yung Fu is partner bij Itude en bestuurslid van de OGh.