We love *5 2e jaargang | nummer 2 | 2007
Magazine voor en door Oracle gebr uikers -en ontwikkelaars
TM
POWERED BY 5HART
2
Thema: JAVA/J2EE & COBOL
mmm$X[bWij_d]Z_[dij$db%_Yj
>e[X[mWWa`[Wbi?9J½[h[[d c[j)&$&&&_d
Bij een bedrijf met één ingang is een stevige ‘portier’ doorgaans voldoende. Maar hoe zit dat bij een bedrijf met 30.000 medewerkers? Die allemaal toegang willen hebben, op honderden verschillende plaatsen en op het moment dat het hén uitkomt? Dan kom je al snel ogen tekort. Daarom heeft de Belastingdienst een complete digitale veiligheidsdienst. Die niet alleen kijkt óf iemand naar binnen mag, maar ook wáár. Wie mag wat doen in de systemen? En wat niet? Bij een bedrijf met zoveel ‘ingangen’ en zoveel gebruikers moet de ICT in staat zijn om ‘automatisch’ haar beveiliging te handhaven. Dan moet je een systeem kunnen bouwen dat tienduizenden toegangspoorten kan openzetten, én tegelijkertijd een werkbare maar toch veilige ICT-omgeving oplevert. Denk jij dat je je staande kunt houden in een dergelijke complexe omgeving en beschik je over de juiste kennis en ervaring, dan zetten we onze toegangspoort graag voor je open.
X[Zh_`\ ]Wd][d5
C_ZZb[mWh[if[Y_Wb_ij Op het snijvlak van applicatieontwikkeling en infrastructuur ben je continu bezig met het ontwikkelen en integreren van software, waardoor complexe functionele applicaties op een generieke en snelle wijze kunnen worden gerealiseerd. Omwille van de transparantie naar bovenliggende services houd je daarbij rekening met alle technische aspecten van databases, netwerken, os’en en hardware. Je beschikt over een ICT-opleiding op ten minste hbo-niveau en over kennis en vaardigheden op het gebied van het ontwerpen en realiseren van complexe infrastructuur. Je bent in staat om de werking van applicaties tot op het laagste niveau te ontleden en werkt moeiteloos samen met andere ICT’ers van uiteenlopende disciplines. Je salaris kan op termijn oplopen tot 46.000 bruto per jaar. :8(#if[Y_Wb_ij Je bent verantwoordelijk voor het tijdig installeren en inrichten van DB2 op de mainframeomgeving. Daarnaast los je complexe incidenten op, analyseer je meervoudige problemen en draag je structurele verbetervoorstellen aan. Je levert specialistische ondersteuning in de beheeromgeving en bereidt grootschalige wijzigingen voor. Naast een hbo werk- en denkniveau heb je kennis van en ervaring met het centrale z/OS-platform van IBM en uitgebreide kennis van en ervaring met DB2. Verder heb je ervaring in het realiseren van ontwerpen van complexe mainframe-infrastructuren en kennis van de beveiligingsrichtlijnen voor en structuren op het mainframe. Je bent flexibel en besluitvaardig en kunt zowel zelfstandig als in teamverband goed uit de voeten. Je salaris kan op termijn oplopen tot 45.700 bruto per jaar. Edjm[hf[h Je maakt Functionele Ontwerpen voor verschillende COOL:Gen (Advantage Gen)- of Cobol/ CICS/DB2-ontwikkeltrajecten. Daarnaast geef je ondersteuning bij het opstellen van Programma’s van Eisen en Informatie Analyse Rapporten en werk je mee aan het opstellen van begrotingen. Bouwers en testers op dezelfde projecten kunnen altijd op je terugvallen voor inhoudelijke ondersteuning. Je hebt een hbo-niveau en ruime werkervaring, onder andere in meerdere trajecten van systeemontwikkeling, in COOL:Gen of Cobol/CICS/ DB2 en in het werken volgens LAD, DSDM of RUP. Daarnaast ben je bekend met het werken volgens procesontwerpen en met modelmanagement. Je bent flexibel en beschikt over een helikopterview en goede communicatieve vaardigheden. Je salaris kan op termijn oplopen tot 52.150 bruto per jaar. :[iebb_Y_jWj_[ Interesse in een van deze functies? Op www.belastingdienst.nl/ict vind je een uitgebreide beschrijving van deze en alle andere vacatures bij het Centrum voor ICT van de Belastingdienst, en informatie over hoe je kunt solliciteren. Acquisitie naar aanleiding van deze advertentie stellen wij niet op prijs.
M[hamWWh`[jhejiefX[dj
Game Entertainment Europe "Moeten IT architecten in de leer bij de GAME-bouwers"
inhoud
48
Sun:
Unisys:
Historische Java-tijdslijn PAGE 10
"Agile Business Suite ideaal voor ontwikkelen van Javaapplicaties".
James Gosling en het open sourcen van java
38
13
Finalist IT:
Carthago:
Hinttech:
"Minder bureaucratie dankzij REWA applicatie van Finalist"
"JAVA plaftorm de basis voor een nieuw behandel, registratie en evaluatie systeem".
"Enterprise Java – De stand van zaken".
27
22
42
James Gosling
Oracle:
Teydo:
"Geef webdiensten en SOA een gezicht".
"Location Based Service booming business".
52
34 Cobol.nl:
Mainframe SW:
VX Company:
Colum "Cobol is IT"
"Back to The Future".
Applicatie ontwikkeling nu (met Java/J2EE) en vroeger (met Cobol)
62
64
54
VOORWOORD
De verpakking is eraf! Dank voor uw interesse in We Love IT.
8
Het magazine voor en door de markt gericht op de Oracle gebruikers en ontwikkelaars in de Benelux. We Love IT heeft ook een website. Hier kunt u ideeën opdoen, een gratis abonnement aanvragen en het
5hart:
dagelijks nieuws volgen op het gebied van applicatieontwikkeling,
Column Marko Bikkker "GOTO JAVA" PAGE 7
business intelligence, databases en IT architectuur. www.weloveit.nl.
Recent presenteerden de groten van de Benelux haar Oracle & Java
Java Opleidingen door Marco Marcellis PAGE 20
De artikelen stroomden binnen en helaas moesten er partijen afvallen. Voor ons een reden om door te gaan met We Love IT. Blijf daarom uw
Het Spring Framework door Rene de Jong
46
artikelen insturen en creëer een platform voor uw gedachtegoed. Niet geschoten is altijd mis, toch?
Java is uitgegroeid tot een werkelijk belangwekkend verschijnsel. Van chip tot webapplicatie is Java een wezenlijk fundament voor veranderingen in de persoonlijke –en zakelijke communicatie. Cobol wordt gezien als een taal die door Java verdrongen zal worden. Maar is dit wel zo? Sta open voor de visie en ideeën van de partijen die meewerkten aan deze uitgave. Stel later misschien uw mening bij.
2
4
expertise in We Love IT. Hiervoor wil ik nogmaals alle auteurs bedanken.
We Love IT kijkt verder, wil verder en vraagt naar uw input voor wat betreft de thema’s die nog gaan komen. Voor de komende uitgaven staan de thema’s Architectuur, BI, Datawarehousing, SOA, Security, UML en XML in
Ordina:
de planning. Dus lees of werk mee aan de volgende uitgaven van
"EJB’s zijn gevaarlijk speelgoed".
We Love IT. Suggesties voor thema’s of rubrieken zijn uiteraard welkom.
Just do IT.
30
We Love IT Tom van Luijk
[email protected]
project managers De uitdaging voor de Project Manager is het op tijd afronden van het project binnen het budget en de tijd en naar volle tevredenheid van de klant. HintTech Projects is op zoek naar ervaren project managers die proactief en resultaatgedreven te werk gaan en beslissingen durven te nemen in moeilijke situaties. Als project manager voel je je thuis in complexe IT trajecten en heb je affiniteit met Internettechnologie en informatiebeveiliging. Je bent in staat om een ontwikkelteam te begeleiden en te coachen. Je hebt gevoel voor veranderende omgevingen en je kan daar adequaat op inspelen. Je bent in staat stakeholders te managen in diverse organisaties, ook als politiek een duidelijke rol speelt. Je hebt een sterke persoonlijkheid met uitstekende communicatieve en sociale vaardigheden en weet deze aan te wenden om het team optimaal te laten presteren. Je hebt een afgeronde opleiding op HBO/Academisch niveau. Daarnaast heb je minimaal 5 jaar aantoonbare ervaring met projectmanagement. Gedurende die periode heb je kennis en ervaring van projectmethodieken als Prince2, IPMA en RUP opgedaan. Certificering in een of meerdere projectmethodieken evenals affiniteit met systeemarchitecturen als Microsoft .Net en/of J2EE alsook informatiebeveiliging zijn een pré. Solliciteren kan schriftelijk of per e-mail (
[email protected]). Voor vragen kun je contact opnemen met Caroline van der Beek, tel. (015) 268 25 73. www.hinttech.nl/carriere
HINTTECH HINTTECH PROJECTS
software engineering | project management | information security | business consulting
JAVA GURU’S Als senior Java architect of developer ben je thuis in de wereld van enterprise applicaties en integratievraagstukken en heb je veel ervaring met aspecten die van invloed zijn op het succesvol realiseren van uitdagende Java projecten. Je werkt in uiteenlopende rollen tijdens de verschillende fases van het project waarbij je jouw expertise en vaardigheden kan aanwenden om een project succesvol af te ronden. Je bent in staat om een ontwikkelteam te begeleiden en te coachen. Je hebt een scherp oog voor de veranderende omgeving van onze opdrachtgevers en je bent in staat daar proactief op in te spelen met een sterk uitgesproken visie. Je hebt een afgeronde informatiseringopleiding op HBO/Academisch niveau en minimaal 5 jaar aantoonbare ervaring met het ontwikkelen van Java / J2EE applicaties op basis van bijvoorbeeld WebSphere technologie, evenals minimaal 3 jaar ervaring met applicatie ontwerp en applicatie architectuur. Kennis en aantoonbare ervaring met IBM WebSphere, UML, Rational tools zijn een pré. Solliciteren kan schriftelijk of per e-mail (
[email protected]). Voor vragen kun je contact opnemen met Caroline van der Beek, tel. (015) 2682573. www.hinttech.nl/carriere
software engineering | project management | information security | business consulting
A R T I K E L CGOALMUI M NN G
Marko Bikker is afgestudeerd in de technische cognitiewetenschap (tegenwoordig: kunstmatige intelligentie).
MARKO BIKKER
"GOTO JAVA" 'Evolutie of nieuwe creatie?' Ik herinner het me als de dag van (eer)gisteren. Lekker programmaatjes schrijven in BASIC op de P2000, Atari, MSX, C64 of welke nostalgische voorloper van de huidige duo core machines dan ook. Van objectgeoriënteerd programmeren had nog nooit iemand gehoord (ik in ieder geval niet). Enige gestructureerdheid was vaak ver te zoeken, vanwege misschien wel het meest misbruikte BASIC statement: GOTO. Maar als ik alle BASIC programma’s die ik ooit geschreven heb achter elkaar zou uitprinten, zou de stapel kettingpapier (ik blijf in nostalgische stijl) waarschijnlijk net zo hoog worden als ikzelf. Omdat BASIC ook zijn beperkingen kent en bovendien niet voorhanden was op de UNIX terminals waar ik op werkte, ging ik steeds meer over op de meer ‘professionele’ talen Pascal en C/C++. En dat laatste werd bij mij favoriet. Heerlijk om te programmeren in een taal die zo low-level is, dat je er eigenlijk alles in kon doen – en er daarmee ook alles in fout kon doen. Maar als het debuggen eenmaal achter de rug was dan had je ook wat! Aan het eind van de twintigste eeuw nam de rekenkracht en de geheugengrootte van computers zo snel toe, dat snelheid en efficiëntie niet de enige argumenten bleven bij het ontwikkelen van software. Een programma dat geschreven is in een taal als C is weliswaar heel snel en efficiënt, maar het kan niet zomaar op een ander platform worden uitgevoerd. Wat zou het toch gemakkelijk zijn als… Java werd geboren. Of hoe je het maar wil uitdrukken: misschien kun je het zien als evolutie vanuit oudere programmeertalen of juist als een totaal nieuwe creatie. Eén ding is zeker: er zit een bepaalde mate van intelligent design achter. Kritisch als ik ben stond ik in het begin nogal sceptisch tegenover het concept van Java: een platformonafhankelijke taal die in gecompileerde vorm niet op een echte (fysieke) processor draait, maar op een virtuele machine. De processor wordt als het ware gesimuleerd
door een stukje software. Daar gaat je snelheid en efficiëntie! En in het begin was dat dan ook een probleem: een Java programma was eigenlijk per definitie log en traag. Ik herinner me hoe ik de Oracle Universal Installer (gemaakt in Java) moest uitvoeren op een Windows 95 machine met 16 MB geheugen. Je kunt nog beter op je spreekwoordelijke hoofd gaan staan en wachten tot je geitenwollen sokken afzakken. Maar ik moet eerlijk toegeven: er is sindsdien echt wat veranderd! In de nieuwere Java versies worden technieken gebruikt als just-in-time compilation (JIT) en dynamic recompilation. Deze features zorgen voor een veel efficiëntere uitvoering, waarbij (een deel van) de code on-the-fly wordt doorgecompileerd naar processorniveau. Hierdoor is de performance vergelijkbaar geworden met die van in andere talen geschreven en gecompileerde software. Hèt grote voordeel van Java blijft echter de platformonafhankelijkheid. Deze eigenschap is in combinatie met de opkomst van het internet gedurende de afgelopen tien jaar waarschijnlijk de belangrijkste reden geweest voor het succes van Java. En terecht. Ruim tien jaar na de introductie kan ik nog maar één conclusie trekken. In BASIC terminologie: GOTO Java!
9 7
D a t a b a s e
M a n a g e m e n t
Can Quest Software Make Your Coffee? Maybe not, but we have everything you need for your Oracle database. In fact, Quest Software has something to offer anyone who uses an Oracle database. Here are just some of the ways we can help you and your team to be more productive: Do you want...
Quest Software
Oracle migrations with minimal downtime
√
Report offloading
√
Deep dive diagnoses for all Oracle versions
√
Fundamental tuning for SQL performance challenges
√
Change Management for PeopleSoft and Oracle Applications
√
Monitoring integration with Microsoft MOM
√
End-user Experience Management
√
A great cup of coffee
?
What can Quest Software Netherlands do for you today? Find out a www.quest.com/coffee
©2007 Quest Software, Inc. All rights reserved. Quest and Quest Software are trademarks or registered trademarks of Quest Software. All other brand or product names are trademarks or registered trademarks of their respective holders. DBM_Toad4Oracle_ToadCan_Q12007.
NIEUWS
JAVA/NIEUWS
OPEN SOURCE/NIEUWS
5HART-IT
Sun Microsystems
stoomt Java programmeur klaar voor Sun certificatie
voorop in Open Source
5HART-IT introduceert het opleidingstraject Certified Programmer Java. Het traject samengesteld uit hoogwaardige Java cursussen geldt als stevige basis voor het Sun Certified Programmer certificaat.
Sun Microsystems is volgens een studie van de Europese Commissie de belangrijkste leverancier van Open Sourcesoftware. De studie onderzocht de economische impact van FLOSS – Free/Libre Open Source Software en de impact van ICT binnen de Europese Unie.
Om precies te zijn voor het Sun Certified Programmer for the Java Platform, standard Edition 5.0 certificaat CX-310-055. 5HART-IT maakt zich hiermee sterk voor startende én ervaren Java programmeurs in de Benelux die zich grondig willen voorbereiden op het Sun Certified Java Programmer examen.
Het onderzoeksrapport toont aan dat Sun de grootste bijdrage levert en frequenter deelneemt aan open sourceprojecten dan welke andere leverancier ook. De top drie bestaat uit Sun Microsystems, IBM en Red Hat. De inspanningen en bijdragen van Sun zijn driemaal zo groot dan van IBM, en zelfs vijfmaal zo groot als die van Red Hat, die op de derde plaats komt.
Iedereen die begint met Java of al ervaring heeft met Java kan aan het traject deelnemen. Je bepaalt namelijk zelf waar en wanneer je het traject start. Een absolute must op de CV van de Java Programmeur! Ga voor meer informatie naar: www.vijfhart.nl/trajecten.
De Europese Commissie komt tot de conclusie dat het gebruik van Open Source software door Europese bedrijven grote kostenbesparingen met zich meebrengt in vergelijking tot het gebruik van ‘proprietary applications’, software waarvan de broncode volledig in eigendom is bij een bepaald bedrijf.
APPLICATIE/NIEUWS
Oracle introduceert nieuwe versies van vijf grootste applicaties Oracle vernieuwt zijn vijf grootste applicatielijnen met de introductie van E-Business Suite release 12, PeopleSoft Enterprise Release 9.0, Siebel CRM 8.0, JD Edwards Edwards Enterprise One 8.12 en JD Edwards World A9.1. De nieuwe versies geven invulling aan Oracle’s ‘Applications Unlimited’-programma, dat een voortdurende innovatie van eerder ontwikkelde producten garandeert. Voor de ontwikkeling van de nieuwe toepassingen is gebruikgemaakt van diverse gebruikersgroepen. Hierdoor beschikken de nieuwe producten over functies die zijn ontwikkeld naar aanleiding van wensen van gebruikers. Samen met de introductie van de releases geeft Oracle ook meer zicht op de eerder aangekondigde Oracle Fusion Applications, de volgende generatie applicatie-suite. De op Oracle Fusion Middleware gebaseerde Fusion Applications zijn ontwikkeld om de eerste, compleet op standaarden gebaseerde en op SOAgebouwde applicatie-suite te worden.
Vo o r d a g e l i j k s n i e u w s s u r f n a a r : w w w. we l o v e i t . n l . A l l e o n t w i k ke l i n g e n o p e e n r i j !
9
10
WE LOVE IT
Febr u a r i 2007
SUN
Historische JAVA-tijdslijn 1991 1992 1993 1994 1995 1996
Het Green Project gaat van start MS DOS is het dominante besturingssysteem Mobiele telefoons wegen een half pond Het "Biosphere 2"-project gaat van start.
"Oak" is de taal Debuut van *7 "Duke" wordt opgenomen in de interface Johnny Carson stopt met "The Tonight Show" op NBC.
Het Green Project wordt omgedoopt in FirstPerson Introductie van Mosaic v1.0 "Cheers" na 11 jaar van de buis.
Introductie van WebRunner, de eerste browser die ondersteuning biedt voor bewegende objecten en dynamisch uitvoerbare content Introductie van de Apple QuickTake 100, de eerste digitale camera voor consumenten, tegen een prijs van net iets onder de 1.000 dollar Eerste aflevering van "Friends" op NBC.
Introductie van Javatechnologie voor selecte groep gebruikers via wicked.neato.org De San Jose Mercury News wijdt voorpaginaartikel aan Javatechnologie "Oak" omgedoopt in "Java" Officiële geboorte van Java-technologie aangekondigd tijdens Sun World.
De eerste JavaOne Developer Conference vindt plaats Introductie van JDKtm 1.0 Schaakcomputer Deep Blue verslaat voor het eerst Garry Kasparow Geboorte van "Dolly", het eerste gekloonde schaap.
J AVA / T I M E L I N E
JDK 1.1 meer dan 2 miljoen keer gedownload Visa introduceert ‘s werelds eerste op Java Cardtechnologie gebaseerde smart card Het Java Community Process (JCP)-programma geformaliseerd. De Morsecode wordt internationaal afgeschaft
Wereldwijd zijn meer dan 400 Java User Groups gevestigd Java Developer Connectionprogramma telt meer dan 1,5 miljoen leden Steve Jobs klimt bij Scott McNealy op het podium tijdens JavaOne met de belangrijke mededeling dat Apple haar volledige steun aan Javatechnologie toezegt Heavy Metal band Metallica klaagt Napster wegens schending van copyright.
J2EE SDK 2 miljoen keer gedownload 78% van alle topmanagers ziet J2EEtechnologie als meest effectieve platform voor het bouwen en inzetten van webservices Introductie van de euro. Invoering van de euro.
11
>
Introductie van Java 2 Platform, Standard Edition 5 (Project Tiger) De Mars Rover (Spirit), ondersteund door Java-technologie, landt op Mars Introductie van Sun Java Studio Creator.
1998 2000 2002 2004 2006
1997 JDK 1.1 wordt in slechts drie weken tijd meer dan 220.000 keer gedownload Met 8.000 wordt JavaOne trekt de grootste beurs voor ontwikkelaars ter wereld Java Card 2.0platform onthuld 43% van alle Amerikaanse gezinnen bezit een computer.
1999 2001 2003 2005
Vrijgave broncode Java 2-platform JavaOne trekt 20.000 bezoekers Introductie bètaversie van J2EE Première van "Star Wars Episode I: The Phantom Menace"
Eerste internationale JavaOne-beurs vindt plaats in het Japanse Yokohama Meer dan 1 miljoen downloads van Java Platform, Enterprise Edition (Java EE) SDK Google verkrijgt patent voor haar PageRankzoekalgoritme Première van "The Lord of the Rings: The Fellowship of the Ring."
Java-technologie wordt op bijna 550 miljoen desktopcomputers gebruikt Bijna 75% van alle professionele developers maakt gebruik van de programmeertaal Java als belangrijkste ontwikkelingstaal Eerste commerciële Voice-OverInternet (VoiP)telefoondiensten Publicatie van "De Da Vinci-code."
Java-technologie viert haar tiende verjaardag Circa 4,5 miljoen ontwikkelaars maken gebruik van Java-technologie Meer dan 2,5 miljard apparaten met Java-technologie verkrijgbaar java.com neemt Google Toolbar op in downloads van JRE.
Rich Green kondigt tijdens de JavaOne 2006 Conference aan dat het geen kwestie is óf Sun de broncode van haar Javatechnologie openbaar maakt, maar van hoe. Introductie van NetBeans IDE 5.0. Sun maakt via java. net de broncode van Java EEcomponenten openbaar op basis van Project Glassfish. Openbaarmaking broncode van eerste Java SEen MEcomponenten. Het officiële Rembrandtjaar (400e geboortedag).
JIJ Voor onze vacatures surf naar WWW.VIJFHART.NL of bel +31 (0) 88 - 542 78 48 /VACATURES
H E T O P E N S O U R C E N VA N J AVA
“Weet je, de meeste grote vragen waarvan mensen denken dat ik wakker lig, daar lig ik helemaal niet wakker van.
James Gosling, door velen als de geestelijke vader van Java-technologie beschouwd, is hard bezig geweest om Sun Microsystems bij te staan in haar streven om de broncode van Java SE (JDK)- en Java ME-implementaties openbaar te maken. De broncode van de Java EE-implementatie is reeds meer dan een jaar openbaar dankzij het project Project GlassFish. Afgelopen maand kondigde Sun verdergaande stappen aan om java te open sourcen. In dit interview geeft hij zijn visie op de meest recente ontwikkelingen. Waarom maakt Sun de broncode van haar Java-platform openbaar? Gosling: “In zekere zin hebben we ons al geruime tijd heel dicht in de buurt van een open source-situatie bevonden. Het verschil tussen wat we nu doen en open source had in de meeste gevallen met de licentie te maken. Gelukkig behoren veel van de problemen waarmee we in het verleden werden geconfronteerd nu tot het verleden. Het landschap is een stuk overzichtelijker geworden, en we zijn erop gebrand om op een nog interactievere wijze met de open sourcegemeenschap te werken. Traditioneel hebben we al veel met de open source-gemeenschap samengewerkt, onder meer met java.net, tal van privé-bijdragen en eindeloze hoeveelheden discussies op forums. Wat weerhield Sun ervan om dit eerder te doen, of bijvoorbeeld pas over vijf jaar?
JAMES GOSLING
Het Open Sourcen van Java
Gosling: “Een van de grote problemen was – helaas - het juridisch proces waarin we waren verwikkeld, zoals de rechtzaak met Microsoft, maar die ligt nu voldoende in het verleden. De zaken die ons problemen opleverden, zijn verdwenen. Vreemd genoeg was een van de grootste struikelblokken onze visie op het beheer van broncode. Vanuit een pragmatisch, technisch oogpunt gezien zijn open-source-tools zoals CVS (Concurrent Versioning System) niet bijster geschikt voor grootschalige projecten. Intern maakten we gebruik van een tool genaamd Teamware, maar om uiteenlopende redenen leek het geen logische stap om die tool op de markt te brengen. Daarom was een van de belangrijkste veranderingen in het afgelopen jaar de introductie van een nieuwe tool voor broncodebeheer genaamd Mercurial, een feit waar alle engineers erg blij mee zijn geweest.” >>>
13
14
WE LOVE IT
Febr u a r i 2007
Het open sourcen van Java vervolg “We willen een betere dialoog met de ontwikkelaarsgemeenschap... We willen betere relaties met een groot aantal Linux-distributies".
James Gosling Vice-president en Sun Fellow van Sun Microsystems Wat hoopt Sun te bereiken met het openbaar maken van de broncode van de JDK? Gosling: “We willen een betere dialoog met de ontwikkelaarsgemeenschap, een relatie die meer op samenwerking is gericht. We willen betere een betere relatie met een groot aantal Linuxdistributies, en veel van de Linux-distributies zijn zeer gevoelig met betrekking tot de licentie die je gebruikt. We willen betere relaties met de open sourcegemeenschap, hetgeen tot een betere distributie zal leiden en het makkelijk voor mensen maakt om met ons samen te werken aan de verdere ontwikkeling van het platform en het toe te passen op nog interessantere manieren en op nog interessantere terreinen. Wanneer een bedrijf overweegt om haar broncode openbaar te maken, zijn er twee reacties mogelijk. Het ene kamp zal zeggen: "Als Sun de broncode van Java openbaar maakt, zal dat het beste zijn dat het bedrijf is overkomen". Aan de andere kant bestaat er de onvermijdelijke zorg dat andere partijen het intellectueel eigendom eruit zullen vissen en gaan verkopen. Hoe zit het met de compatibiliteit? Zal als gevolg van deze stap in de richting van open sourcing het Java-platform niet simpelweg gefragmenteerd raken? Gosling: “De broncode wordt openbaar gemaakt, maar het definiëren van de specificatie is nog steeds het domein van het Java Community Process. Daarnaast zijn er enorme testpakketten beschikbaar, waar we een gigantische testslag zullen maken. We verwachten dat mensen die waarde hechten aan
betrouwbaarheid en compatibiliteit met de specificatie voor onze versie zullen kiezen. De meeste mensen in de open source-wereld die gebruikmaken van open source-software maken zelf geen builds. Ze downloaden simpelweg de binaries. En we verwachten dus dat medewerkers van grote ondernemingen precies hetzelfde zullen doen. We zullen zeker binaries leveren die een complete en zware kwaliteitscontrole hebben doorstaan en waarvan is vastgesteld dat ze aan alle eisen op het gebied van naleving voldoen. Je hoeft je daarom over fragmentatie geen zorgen maken. We laten jan en alleman niet zomaar om het even welke code inchecken. Net zoals elk ander open source-project zullen we uiteindelijk over een verzameling van regels beschikken met betrekking tot wie gemachtigd is om grote hoeveelheden code in te checken. Alles zal worden gecontroleerd, opnieuw worden gecontroleerd en worden gedebugged.” " De broncode wordt openbaar gemaakt, maar het definiëren van de specificatie is nog steeds het domein van het Java Community Process". “Waar het nu op neerkomt, is dat Sun de broncode van al haar Java-platformimplementaties openbaar maakt op basis van dezelfde licentie die wordt gebruikt door het besturingssysteem GNU/Linux: de GNU General Public License (GPL) versie 2. Meer concreet kondigden we het volgende aan: • Het gebruik van de GPL v2-licentie voor de Java SE (JDK)- en Java ME-implementaties van Sun, en de toevoeging van deze licentie aan de Java EE-implementatie van Sun. • De eerste openbaarmaking van broncode van de JDK en de Java ME-implementatie van SUN en de introductie van projecten en community's. • De introductie van een planning voor toekomstige codereleases en het ontwikkelen van community's.
Voor de open-source-onderdelen van JDK hebben we gekozen voor GNU General Public License (GPL) versie 2 voor vrijwel de gehele virtuele machine, en GPL v2 met de Classpath exception voor de class libraries en die onderdelen van de virtuele machine die openbare API’s prijsgeven. In het geval van Java ME besloten we om uitsluitend GPL v2 te gebruiken. Wat was de achterliggende reden voor deze keuze? En wat is de Classpath exception precies? Gosling: “Het leuke van de GPL is dat een zeer gemeenschapsvriendelijke en symmetrische licentie is. Bovendien geniet de licentie een zeer grote populariteit binnen de open sourcegemeenschap. De Classpath exception werd ontwikkeld door de Free Software Foundation op basis van het GNU/Classpath Project. Waar het op neerkomt, is dat het je in staat stelt om een toepassing te koppelen die op basis van een willekeurige licentie beschikbaar is voor een bibliotheek die onderdeel uitmaakt van software die gelicenseerd is op basis van GPL v2, zonder dat deze toepassing op basis van de GPL zelf openbaar moet worden gemaakt. Dit is een licentieparadigma dat vaak wordt gebruikt in gratis software-gemeenschappen zoals GNU/Classpath en Kaffe voor onderdelen van een implementatie van Java-technologie die de virtuele machine en class library bevat. We hebben er bewust voor gekozen om dezelfde licentiemethode te hanteren, zodat men niet in de verleiding komt om vraagtekens bij onze bedoelingen te stellen met betrekking tot het beschikbaar stellen van de Java SE-implementatie van Sun op basis van een werkelijk gratis en open licentie.” We hebben de afgelopen weken heel wat gehoord over de OpenJDK Community. Wat is de OpenJDK Community nu eigenlijk precies? Gosling: “We hebben de OpenJDK Community opgericht met het oog op de voortdurende ontwikkeling van Suns open source-implementatie van Java SE. >>
8*+;*+/,-""3 7003 '64*0/
600,
%FUPFQBTTJOHWBO0SBDMF'VTJPO"QQMJDBUJPOTFO.JEEMFXBSF %FJOUFHSBUJFWBO4JFCFM +%&EXBSETFO0SBDMFLFOOJT;PXFMQSPKFDU VJUWPFSJOHBMTCFIFFSWBONBBUXFSLFOCVTJOFTTBQQMJDBUJPOTPOEFSÏÏO EBL0SEJOB0SBDMF4PMVUJPOTHFFGUJONFFSEFSFPQ[JDIUFOJOWVMMJOHBBO IFUCFHSJQ'VTJPO.FUVXDPODVSSFOUJFWPPSEFFMJOIFUWJ[JFS
nFYJCFMFFOQSPGFTTJPOFMFPQTUFMMJOHTUSFWFOXJK UFWFOTOBBSUPFLPNTUWBTUFQBSUOFSTIJQT 5PUBM4PMVUJPO1SPWJEFS 0SEJOB0SBDMF4PMVUJPOTJTNFUSVJN 0SBDMFTQFDJBMJTUFO$FSUJmFE"EWBOUBHF 1BSUOFSWBO0SBDMFFOFFOTJHOJmDBOUFTQFMFS
JOIVJT'VODUJPOFFMFOUFDIOJTDIDPOTVMUBOUT
JOEF/FEFSMBOETFNBSLU8FIFCCFONFFS
"MT0SBDMFTQFDJBMJTUWBO0SEJOBCFTDIJLU
BSDIJUFDUFOFOQSPHSBNNFVST UFTUFSTFO
EBOWJKGUJFOKBBS0SBDMFFSWBSJOHPQHFCPVXE
0SEJOB0SBDMF4PMVUJPOTPWFSEFCFOPEJHEF
CFIFFSEFST QSPKFDUMFJEFSTFOBDDPVOUNBOBHFST
CJKHSPUFFOLMFJOFPSHBOJTBUJFTJOEFPWFS
DBQBDJUFJUFOPNFFOUPUBMTPMVUJPOQSPWJEFSWPPS
XFSLFOOBVXNFUVFOFMLBBSTBNFOPNIFU
IFJE QSPmUFOOPOQSPmUTFDUPS0SEJOB0SBDMF
VUFLVOOFO[JKO6LVOUCJKPOTUFSFDIUWPPSEF
HFXFOTUFSFTVMUBBUUFCFSFJLFO8JKWPFSFO
4PMVUJPOTNBBLUEFFMVJUWBO0SEJOBBMTUPPO
UPUBMFWFS[PSHJOHWBOVX0SBDMFBQQMJDBUJFT
VXQSPKFDUHSBBHVJUNFUWPMMMFEJHFSFTVMUBBU
BBOHFWFOEFEJFOTUWFSMFOFSPQIFUHFCJFEWBO
WBOBEWJFTUPUPOUXFSQ POUXJLLFMJOHUPU
WFSBOUXPPSEFMJKLIFJE
NBOBHFNFOU $POTVMUBODZ *$5FO0VUTPVDJOH
5PUBM4PMVUJPO1SPWJEFS
JNQMFNFOUBUJFFOJOUFHSBUJFUPUCFIFFS #JK0SEJOB0SBDMF4PMVUJPOTWJOEUVLFOOJT
5PFLPNTUWBTU
6XDPODVSSFOUJFWPPSEFFM
FOFSWBSJOHWBO0SBDMF +%&EXBSET
%FPQMPTTJOHFOEJFXFJNQMFNFOUFSFO[JKO
8BUWFSXBDIUVWBO'VTJPOFOXBUWFSXBDIUV
FO4JFCFMPOEFSÏÏOEBL
[PJOOPWBUJFGBMTVXJMU NBBSEPPSPOTBMUJKE
WBO0SEJOB0SBDMF4PMVUJPOT
HFUFTUPQEFUPFQBTCBBSIFJEFOFGGFDUJWJUFJU
6XWPPSTQSPOHPQEFDPODVSSFOUJFCFHJOU
JOEFQSBLUJKL0O[FTQFDJBMJTUFOXFUFOBMMFT
NFUFFOUFMFGPPOUKFOBBS0SEJOB0SBDMF
7PPSVXJNQMFNFOUBUJFTWBOFFOTUBOEBBSE
WBO40" JOGSBTUSVDUVVS +"7" +EFWFMPQFS
4PMVUJPOTWJBØGFFOFNBJM
CVTJOFTTBQQMJDBUJFPGKVJTUIFUMBUFOPOUXJLLFMFO
0SBDMF'VTJPOFONFFS8FTUBBOHBSBOUWPPS
OBBSPPT!PSEJOBOM
WBOFFOCFESJKGTTQFDJmFLFBQQMJDBUJF
QSBLUJTDIFTZTUFNFONFUWPMEPFOEFTDIBBMCBBS
IFFGU0SEJOB0SBDMF4PMVUJPOTEFKVJTUFUFBNT
IFJEWPPSEFUPFLPNTU&ONFUFFOOVDIUFSF
3FTVMUBBUHFSJDIU
© 2006 Sun Microsystems, Inc. All rights reserved.
H E T O P E N S O U R C E N VA N J AVA
Het open sourcen van Java vervolg
Een van de grote problemen was – helaas - het juridisch proces waarin we waren verwikkeld, zoals de rechtzaak met Microsoft, maar die ligt nu voldoende in het verleden.
Waar het op neer komt, is dat de OpenJDK Community de plek is waar ontwikkelaars zullen samenkomen om met elkaar te werken aan de open-source codebasis van JDK en verwante projecten. Het OpenJDK-project waarin de open-source codebasis zal "wonen", maakt deel van deze gemeenschap uit. Hier zullen ontwikkelaars in staat zijn om direct invloed uit te oefenen op de JDKimplementatie, met hun collega's deelnemen aan een open gemeenschap en te helpen om het gebruik van Java-technologie naar nieuwe terreinen te verleggen. Sun ontwikkelt de bestaande JDK Community waar ontwikkelaars de afgelopen twee jaar aan de broncode hebben gewerkt, tot een website waar ontwikkelaars binnen en buiten Sun aan de implementatie kunnen samenwerken. De OpenJDK Community vindt je op http://community.java.net/openjdk. Welk beheermodel wordt er voor de OpenJDK-projecten gehanteerd? “We zijn momenteel bezig het met onderzoeken van bestaande beheermodellen binnen de open sourcegemeenschap, maar we willen de nodige tijd uittrekken
om een grondige analyse uit te voeren en meer feedback en advies in te winnen voordat we een besluit nemen. Ons plan is om het beheermodel te ontwikkelen tot een model waarbij de open source-gemeenschap is betrokken, met een doelstelling van inclusieve, transparante en op verdienste gebaseerd beheer.” Wat kan een ontwikkelaar direct met onderdelen van het open-source Java SE platform doen? “Waarschijnlijk het meest nuttige dat je ermee kunt doen, is ernaar kijken en ervan leren. Het lijkt misschien nogal traditioneel, maar ik zeg altijd dat de bron[code] qua documentatie de laatste toevlucht is. We hebben heel hard geprobeerd om over echte documentatie te beschikken. Natuurlijk is iedereen al geruime tijd in staat geweest om de code te raadplegen via het JDK 6-project. Er zullen zeker mensen zijn die louter voor hun eigen doeleinden lokaal onderdelen aan het tweaken zijn. In het verleden heeft een groot aantal academische onderzoekers de code gebruikt voor hun onderzoeksprojecten. Mensen die bijdragen leveren, zullen in staat zijn om hun bijdrage te bouwen en ervoor te zorgen dat alle bijdragen in elkaar passen.” >
17
Wie zet hem weer even op het veld? /ÜiiÊÕÌ}i>ÌiÊ ÜÃÊiÊ`iÊ>iÀÊÛ>ÊiÀiÊLi°Ê
]Ê`ÌÊiiÊÜiÊÕÊ
iÌÊ ÜÃÊivviVÌ\ÊâiiÊ`iÀiÊ
ÛiÊâÊLi`Ê
>}ÌÊiiÊ«ÃÌiÀÊÛ>ÊâÊv>ÛÀiÌiÊÛiÌL>Ìi>°Ê
ÜiiÀÊiÛiÊ`Ê>ÌiÊâ°Ê-ÃÊÜiÊ`iÀiÊiiÀÊ>V
i°Ê
/iÀÜÊiiÊÛ>Ê`iÊVÜÃÊiiÊÛiÀÜ}Ãi`ÊâiÌ]Ê
Õ`ÌÊ`iÊ
<V
ÊiÌÊLiÜÕÃÌÊâÊÛ>Ê
ÕÊ}iÛ}ÊiÊâivÊVÌÀiÊ
iL
>`iÀÊ iiÊ `iLii`}iÊ >«iÃLiiÀÊ LÛiÊ âÊ
LiÊÛiÀÊ
ÕÊÃÌÕ>Ìi°Ê ÜÃÊâÊ}iÌÀ>`iÊ
v`°Ê iâiÊ LiiÀÊ ÃÊ ÛÀÊ iÀi°Ê 7>ÌÊ
Ê Ü>ÃÊ
iÌÊ
«ÀviÃÃ>ÃÊ`iÊiÌÊVÀi>ÌÛÌiÌÊiÊ«ÀÛÃ>ÌiÊ
ÌV
Ê `iÊ `iÊ Üi`iÊ ÌÀivviÀÊ >>Ìi¶Ê Ê ÌÊ Ãi]Ê
âiiÊ`iÀiÊ«iâiÀÊiÊ>vi`}ÊLiâÀ}i°
ÕV
ÌÊ ÕÌ}i>ÌiÊ iÊ iiÌ]Ê >ÃÊ iiÊ jV
ÌiÊ Ã«ÀÌ
i`]Ê
-ÌiÕÊ `>>ÀÊ
iÌÊ ÜÃÊ ivviVÌÊ iÊ ÜÀ`Ê
âÊLiiÀÊÊÌÛ>}ÃÌ°Ê iÊVÜÃÊâ}iÊ
>À`«ÊiÊ
`>ÌiÕÀ°Ê -ÌÕÕÀÊ `iÊ }iÛÕ`iÊ LÊ Ê vÊ Ê «Ê
ÛiÀ>ÌiÊÊ«>ÃiÊ`iÊ>iÀ°Ê
ÜÜܰVVÜð
Steun het CliniClowns effect! >]ÊÊÃÌiÕÊ
iÌÊ ÜÃÊivviVÌt
6ÀiÌÌiÀÃ\ÊÊ
V
ÌiÀ>>\Ê
ÊÊ
>>ÀÊÜÀ`ÊÊ`>ÌiÕÀÊiÊ}iivÊ>>`iÃÊiiÊÊ
-ÌÀ>>Ì\ÊÊ
Ê
ÊÊÊÊÊÊÊÊ À°\
Li`À>}ÊÛ>\ÊÊ ÊÊ{]ÊÊ ÊÊÈ]ÊÊ ÊÊn]ÊÊ ÊvÊiiÀÊ
*ÃÌV`iʳʫ>>ÌÃ\Ê
«âi}}}ÊLÛi}ii`ÊLi`À>}Ê>>`iÃÊÛ>Ê
*ÃÌâi}iÊ
ivÌÊiÌ]Ê>>ÀÊ>}ÊÜi°Ê "ÊÕÊÊ`iÊÌiÃÌÊÌiÊvÀiÀiÊÛiÀÊ`iÊ
iLÀÌi`>ÌÕ\Ê
>\
>vÊÌiÊÃV
ÀÛi°
>`Ìii}\Ê Ê
`iÊ>V
Ì}}Ê>>ÀÊ ÜÃÊ i`iÀ>`]ÊÊ ÌÜÀ`ÕiÀÊ ]Ê ÎnääÊ 6 Ê iÀÃvÀ̰Ê
/iiv\ÊÊ
ÊL>É}ÀÀii}ÊÊ
-ÌÕÕÀÊ`iâiÊÛi`}Ê}iÛÕ`iÊiÊ`iÀÌii
>VÌÛÌiÌiÊÛ>Ê ÜÃÊÛiÀÜiÀiÊÜÊÕÜÊ «iÀÃÃ}i}iÛiðÊ`iÊÕÊ}iiÊvÀ>ÌiÊ
>ÌÕ\Ê
"Ê`ÌÊÌ`ÃV
ÀvÌÊÃÌiÕÌÊ ÜÃÊiÌÊ`iâiÊ>`ÛiÀÌiÌi
ÜiÃÌ]ÊiiÌÊÕÊ`>ÊVÌ>VÌÊiÌÊÃÊ«°
£äΣ{
Ê>V
Ì}Ê
iÀLÊ-ÌV
Ì}Ê ÜÃÊÊÌÌÊÜi`iÀ
ÉÛ
H E T O P E N S O U R C E N VA N J AVA
Het open sourcen van Java vervolg Hoe denkt u dat deze stap van invloed zal zijn op andere open-source-implementaties van de programmeertaal Java, zoals bijvoorbeeld Apache Harmony of GNU Classpath? “Dat is moeilijk te voorspellen. In ieder geval zal men in staat zijn om de broncode te doorlopen op elementen die ze in hun projecten kunnen opnemen. Zeg eens eerlijk: is er iets aan het feit dat Sun nu de broncode van Java openbaar maakt waarover u ’s nachts wakker ligt? Gosling: “Weet je, de meeste grote vragen waarvan mensen denken dat ik wakker lig, daar lig ik helemaal niet wakker van. Ik ben behoorlijk tevreden met de manier waarop OpenJDK zich ontwikkelt. Ik ben uiterst tevreden met de manier waarop we omgaan met zaken als kwaliteitscontrole enzovoort. Ik denk wel dat veel mensen een beetje zenuwachtig kunnen zijn dat het Java-platform hierdoor misschien minder betrouwbaar wordt, maar ik denk simpelweg niet dat dit het geval zal zijn, en ik hou er geen slapeloze nachten aan over. Als er iets is waar ik over wakker lig, is het wel het mechanisme van de infrastructuur: het hosten, het vinden van bugs, de dagelijkse beslommeringen, zaken waar alle open source-projecten mee te maken krijgen. Maar ik weet zeker dat alles op zijn pootjes terecht zal komen.” Op welke manier denkt Sun geld te verdienen met Java-technologieën nu de broncode daarvan eenmaal openbaar is gemaakt? Gosling: “Vandaag de dag wordt het meeste geld hoger in de keten verdiend. Geld verdien je met de dienstverlening, met de ondersteuning. We halen een fors deel van onze omzet uit deze gebieden en uit verschillende onderdelen van de technologieën, en dat zal zo blijven. Vanuit financieel oogpunt is het Java-
platform voor al deze bedrijven vanaf het begin gratis geweest. En vanuit dat oogpunt zal het openbaar maken van de code van weinig invloed zijn op onze financiële situatie. Waarom zou een ontwikkelaar van Java-technologie die aan een open source-project meewerkt willen bijdragen aan Java-broncode? “Er zijn verschillende soorten van bijdragen. Zo bevatten alle programma’s bugs. En als er een probleem is dat je na aan het hart ligt, kun je het herstellen en de oplossing bijdragen. Dat is een gebied waar in de loop van de jaren tienduizenden bijdragen zijn geleverd. Maar dat brengt ook problemen met zich mee, omdat je door het herstellen van een bug soms tegelijkertijd drie nieuwe bugs in het leven roept. Daarom zullen we uiteindelijk over een mechanisme beschikken waarmee we kunnen garanderen dat de code die mensen inchecken, uitgebreid wordt getest. De andere categorie is het toevoegen van nieuwe functies. Als er een methode ontbreekt in het string-pakket dat
je onder geen beding wilt missen, kun je die toevoegen en aan het project bijdragen, zo lang het de beoordelingen van de gemeenschap doorstaat. Er bestaat een traject waarmee het je een dergelijke bijdrage door het gemeenschapsproces heen kunt krijgen. En daarnaast zijn er volledig nieuwe pakketten, vergelijkbaar met wat er met de JCP-expertgroepen gebeurt. Dat zijn allemaal verschillende dingen die je kunt doen.” Welke kansen denkt u dat dit zal opleveren voor het Java-platform zelf? “We zullen in staat zijn om ons sneller verder te ontwikkelen, hoewel we momenteel al een verdraaid snelle ontwikkeling doormaken. Weet je, we zijn altijd geïnteresseerd in mensen die Java-technologie op verschillende manieren en in verschillende omgevingen gebruiken. Een van de grootste gebieden waar we zonder meer positief over zijn gestemd, zijn de verschillende Linux-distributies. Omdat we open source zijn, hebben we veel meer kansen om met samen met hen te worden gedistribueerd.”
19
20
WE LOVE IT
Febr u a r i 2007
VIJFHART
Evolutie Java opleidingen Vijfhart onderscheidt zich onder andere op het gebied van Java opleidingen. Om deze positie te behouden is het noodzakelijk dat de Java opleidingen evolueren.
Een vergelijking met de evolutietheorie is eenvoudig te trekken; de trainingen die zich het beste kunnen aanpassen aan hun omgeving zullen overleven. Hoe gaat Vijfhart nu om met deze voortdurend veranderende werkelijkheid?
Dynamische omgeving Alvorens we gaan kijken hoe Vijfhart inspeelt op deze dynamiek, moeten we eerst in kaart brengen waaruit de dynamiek bestaat. De dynamiek van de omgeving wordt bepaald door diverse factoren. Ik beperk mij tot de volgende vier invloeden: • niveauverschillen tussen cursisten • ontwikkelingen in de Java wereld • continue verbetering • software ontwikkelomgeving Wanneer goed ingespeeld wordt op deze factoren zal dit leiden tot een positieve ontwikkeling van de trainingen.
Niveauverschillen Bij het geven van trainingen heb je te maken met niveauverschillen tussen de cursisten. Dit is altijd al zo geweest, maar met de komst van Java is het niveauverschil tussen cursisten aanzienlijk
vergroot. Grofweg kun je cursisten indelen in drie groepen. Ten eerste is er de groep die al met een objectgeoriënteerde taal heeft gewerkt (bijvoorbeeld C++), vervolgens heb je de groep die al jaren procedureel programmeert, en ten slotte de groep die nog nooit geprogrammeerd heeft. Het aanbieden van een klassikale basis Java programmeercursus kan heel lastig zijn voor zo’n divers publiek. De persoonlijk begeleide leermethode biedt uitkomst. Cursisten kunnen in hun eigen tempo de cursus doorlopen. Verder biedt deze methode cursisten de mogelijkheid om middels extra opdrachten hun kennis te verdiepen (voor meer informatie over de persoonlijk begeleide leermethode verwijs ik naar het vorige nummer van We Love IT).
Ontwikkelingen in de Java wereld Om de vele ontwikkelingen in de Java wereld het hoofd te kunnen bieden, wordt er samengewerkt met adviseurs uit het werkveld. Deze input kan onmiddellijk worden verwerkt in de cursussen. Om flexibel te kunnen blijven inspelen op deze continue veranderingen,
worden de geavanceerde Java trainingen klassikaal aangeboden. Deze lesvorm kan namelijk sneller inspelen op veranderingen dan de persoonlijk begeleide variant. Zo worden al weer geruime tijd, in de JEE Enterprise applicatieontwikkeling training, de nieuwste ontwikkelingen op dit gebied behandeld, namelijk: Java Server Faces (JSF) en Enterprise Java Beans 3.0 (EJB 3.0). Vaak zie je dat dit soort trainingen nog enkel met behulp van Servlets en EJB’s 2.x worden verzorgd. In onze training komen zowel de oude als de nieuwe technieken aan de orde. Ook nieuwe ontwikkelingen in de toekomst zullen onmiddellijk worden verwerkt. De grote niveauverschillen, die in de vorige paragraaf zijn aangehaald, zijn met name van toepassing op basisniveau, waardoor het voor de geavanceerde cursussen geen probleem vormt om deze klassikaal aan te bieden.
J AVA O P L E I D I N G E N
elke training gewerkt met de laatste versie van de betreffende IDE.
Continue verbetering Wij bieden onze cursisten kwalitatief hoogwaardige cursussen. Om dit te bewerkstelligen werken wij volgens het principe van continue verbetering. Dit geldt zowel voor de persoonlijk begeleide als voor de klassikale trainingen. Na elke klassikale training wordt de feedback van de cursisten gewogen en meegenomen in de revisie. Ook bij de persoonlijk begeleide trainingen wordt er continu verbeterd. Zowel de docenten als de cursisten hebben applicaties tot hun beschikking om zaken ter verbetering aan te geven. Voortdurend worden deze aandachtspunten verwerkt in de cursussen. We streven daarbij naar 100% foutloze cursussen.
Software ontwikkelomgeving Een software ontwikkelomgeving, ook wel IDE (Integrated Development
Environment) genoemd, is in de praktijk natuurlijk onmisbaar. Tijdens de JEE trainingen wordt hier dan ook veelvuldig gebruik gemaakt. Er zijn in de praktijk veel IDE´s in omloop. Onze klanten blijken voornamelijk te werken met JDeveloper en MyEclipse. Onze visie is dat de cursisten tijdens de training moeten kunnen werken met de tool van hun keuze. We bieden de JEE Enterprise Applicatieontwikkeling training dan ook aan op zowel MyEclipse met als applicatie server JBoss, als op JDeveloper met de Oracle Application Server. De theorie wordt klassikaal onderwezen en vervolgens gaan de cursisten zelf aan de slag met de opdrachten met behulp van de IDE die ze gekozen hebben. Doordat in een groep zowel cursisten met de ene IDE zitten als de andere kan er kruisbestuiving plaatsvinden. Uiteraard wordt er bij
Bij de basis Java trainingen hebben we gekozen om niet te werken met een IDE. Cursisten gaan aan de slag met een simpele editor (vergelijkbaar met notepad). Hierdoor worden cursisten gedwongen om goed na te denken over de syntax en semantiek van de Java code. In de praktijk zul je zelden op deze manier je programma´s maken, maar voor het aanleren en het doorgronden van de Java code is het juist uitstekend. Daarnaast is dit de ideale voorbereiding op de SUN examens. Hier wordt je namelijk geacht om op `punt komma´ niveau de Java code te kunnen doorgronden.
Conclusie Goed inspelen op de ontwikkelingen in de markt, het opvangen van niveauverschillen, het wel of juist niet inzetten van een IDE en het continu verbeteren van de cursussen leiden tot kwalitatief hoogwaardige Java trainingen. Marco Marcellis is opleidingscoördinator bij Vijfhart (
[email protected]).
21
22
WE LOVE IT
Febr u a r i 2007
H I N T E C H B. V.
Enterprise Java
De stand van zaken door Ulas Onder, Jan Quartel, Chris de Vreeze
Het enterprise applicatie ontwikkelparadigma in Java verandert snel. Eind jaren ‘90, toen het allemaal begon voor Java, had men niet kunnen raden waar ontwikkelaars en architecten vandaag de dag mee bezig zouden zijn.
E N T E R P R I S E J AVA
HintTech (www.hinttech.nl) levert specialisten op het gebied van softwareontwikkeling (DotNet en Java), Projectmanagement en informatiebeveiliging.
write once, run everywhere gold nu ook voor de server code en vooral voor de EJB. Entity beans waren optioneel voor EJB containers in EJB 1.0, waarin de fameuze lifecycle methoden waren geïntroduceerd. In december 1999, samen met EJB 1.1, werd J2EE 1.2 aangekondigd. Veranderingen zijn dat Entity beans in J2EE 1.2 verplicht zijn geworden voor EJB containers. Deployment descriptors worden XML bestanden, transactie specificatie is ontwikkeld tot JTA. Technische omgevingsvariabelen worden bewaard in deployment descriptors.
In dit artikel zoomen we in op de geschiedenis van J2EE, voornamelijk over het meest belangrijke aspect van de gehele specificatie, de Enterprise Java Bean (EJB). Vervolgens hebben we het over een overzicht van de evolutie van enterprise applicatie ontwikkeling. Tevens wordt dieper ingegaan op het EJB 3 persistentie. Als laatste wordt het ontstaan van Spring behandeld en de aansluiting op EJB 3 persistentie toegelicht.
Korte geschiedenis van EJB als componentenmodel De Enterprise Java Bean (EJB) is het hoofdcomponent van J2EE en Java EE 5. Dit component wordt volwassen geacht sinds de komst van EJB 2.0. De eerste versie, EJB 1.0, verscheen in 1998, De complete J2EE specificatie bestond toen nog niet. Het concept
In september 2001 ziet EJB 2.0 het licht met nieuwe features, als onderdeel van J2EE 1.3: EJB Query Language, entity bean relaties, local interfaces, abstract getters en setters zijn de grootste aanpassingen aan het componentenmodel. Hiermee geniet EJB de hoogste populariteit tot nu toe in het bedrijfsleven. De opvolger EJB 2.1, onderdeel van J2EE 1.4 (april 2004), werd echter geen doorbraak in de geschiedenis van Java EE: de introductie van de timer service, XSD validatie voor deployment descriptors en een licht aangepaste Query Language was niet voldoende om dit als een grote verandering te zien. Inmiddels is EJB 3.0 geïntroduceerd met een totaal andere componentenarchitectuur: eenvoud is het sleutelwoord. Voordelen zijn dat er zijn geen life-cycle callback methoden meer die geïmplementeerd moeten worden en geen onnodig zware deployment descriptors meer. Alles waar de ontwikkelaar zich druk over
dient te maken is in één plaats terug te vinden, de code zelf.
Nieuwste model: EJB 3.0 Wat maakt EJB 3.0 anders dan zijn voorgangers? Het antwoord is simpelweg: vereenvoudiging. Het EJB 3.0 componentenmodel legt ieder aspect van een EJB vast in de code, er zijn geen XML deployment descriptors meer nodig en er zijn zinnige defaults gekozen. Informatie die voorheen in deployment descriptors stond, kan nu worden opgegeven met annotations, één van de kern concepten van Java 5, Standard Edition. Het is geen verrassing dat annotations veelvuldig worden gebruikt in Java: ze vertellen ons veel over de code met weinig woorden. Als voorbeeld kijken wij naar een session bean. Voordat EJB 3.0 er was, moest een session bean in de deployment descriptor met een XML element <session> binnen een ander element <enterprise-beans> expliciet worden gedeclareerd. Dit was omslachtig en het beheer van al deze afzonderlijke bestanden, dat door andere rollen en vaak andere personen werd gedaan, was lastig. Nu annoteert men gewoon een Plain Old Java Object (POJO) als @Stateless of @Stateful om het type session bean aan te geven. Ditzelfde geldt ook voor de entity bean. Deze annoteert men met @Entity en men hoeft alleen de tabel en de primary key aan te geven.
Web Services verbeteringen Het definiëren van web services was een pijnlijke taak voor de komst van Java EE 5. Men had afzonderlijke >
23
24
WE LOVE IT
Febr u a r i 2007
descriptors voor de service methoden nodig, net als deployment descriptors voor de enterprise beans. Nu dat JAX-WS 2.0 onderdeel uitmaakt van Java EE 5, kan men eenvoudig de methoden exporteren als web services. JAXB 2.0 wordt gebruikt om de mapping te maken tussen de web service parameters en de XML Schema datatypes. Om een eenvoudige web service te maken hoeft men slechts de code te schrijven en annoteert men de Java class die men wilt exporteren als web service met @WebService. Al de public methoden zullen geëxporteerd worden als web service. Indien men de methoden wil exporteren, annoteert men deze met @WebMethod.
EJB 3.0 Persistentie, de Java Persistence API De EJB entity beans, die representaties zijn van database data, zijn door een aantal problemen nooit populair geworden. De open source O/R mapper Hibernate bleek veruit het meest populair. Hibernate stond aan de basis van de Java Persistence API (JPA) standaard, die nu door meerdere producten wordt geïmplementeerd, zoals door Hibernate en Toplink. Een zeer belangrijk aspect van de JPA is dat het buiten een Java EE container gebruikt kan worden. In overeenstemming met de Java EE 5 filosofie van vereenvoudiging, is de JPA sterk op annotaties gebaseerd. Een typische Java webapplicatie (met of zonder EJBs) kent twee soorten objecten: value object classes (data, geen business logica), en applicatielogica componenten (business logica, nauwelijks data). De methoden van de applicatielogica componenten hebben value objects als parameters en return waarden. Als dit wordt vertaald naar het gebruik van JPA, dan zijn de value objects JPA entities, en de applicatielogica componenten gebruiken de JPA EntityManager om deze entities te persisteren en op te
halen. Applicatielogica kan als EJB 3 session bean gerealiseerd zijn, maar ook als Spring POJO, waarover later meer. Enkele van de vele annotatietypes in de JPA zijn: • @Entity, waarmee aangegeven wordt dat de class een JPA entity class voorstelt. • Annotatietypes als @Table, @Column, @JoinTable, waarmee de mapping tussen Java en database vergaand getuned kan worden. • Primary key annotaties zoals @Id. • Annotatietypes zoals @ManyToOne, waarmee multi-valued (collection) fields worden gemapt op relaties tussen tabellen. • @Inheritance, waarmee Java inheritance wordt gemapt op tabellen. Meerdere tabelstrategieën zijn mogelijk om inheritance in de database te realiseren. Nog steeds kan metadata worden geconfigureerd in de orm.xml file in plaats van annotaties, waarbij de orm.xml leidend is. De JPA heeft een aantal aantrekkelijke aspecten. Zo probeert de JPA niet Java op relationele databases te laten lijken of andersom, maar respecteert het de verschillen tussen beide werelden. Het bevat de annotaties om ook in complexe gevallen tussen beide paradigma’s te mappen. Zonder de annotaties blijft de Java code “natuurlijk”. Bovendien, of de database nu leidend is of de geannoteerde Java code, de JPA is in beide gevallen bruikbaar. De JPA heeft een querytaal die sterk op SQL is gebaseerd, maar op entities werkt in plaats van database records. Zoals te verwachten van een echte O/R mapper gaat deze querytaal prima om met Java polymorfisme. Merk op dat waar nodig, nog steeds native SQL kan worden gebruikt. JPA werk wordt uitgevoerd met de EntityManager. Deze wordt verkregen in een Java SE omgeving
programmatisch, door deze via een EntityManagerFactory aan te laten maken. In een enterprise container is veel minder programmeerwerk nodig. Veronderstel een EJB 3 session bean waarin men de JPA gebruikt. Dan annoteert men een EntityManager veld met de @PersistenceContext annotatie. Het instantiëren van dit veld wordt door de (Java EE 5) container gedaan, niet door de programmeur. Dit staat bekend als dependency injection, een principe dat zeer bekend is geworden door Spring. Niet de applicatie vraagt het veld op, maar de container zorgt ervoor dat tijdig een EntityManager instantie wordt geïnjecteerd. Dit is een vorm van inversion of control. Enkele van de operaties op een EntityManager zijn: persist, find en createQuery. Na constructie van een entity is deze nog in de toestand new. Pas na een persist aanroep gaat deze over in toestand managed. Daarnaast bestaan toestanden detached en removed. Het is zaak om altijd goed te beseffen in welke toestand een entity zich bevindt. Zo kan een entity in toestand detached vrij gemanipuleerd en uitgewisseld worden zonder effect op de database.
HintTech Ulas Onder, Jan Quartel, Chris de Vreeze zijn in dienst bij HintTech als senior Java engineers. HintTech (www.hinttech.nl) levert specialisten op het gebied van softwareontwikkeling (DotNet en Java),Project- management en informatiebeveiliging. De werkzaamheden van HintTech zijn ondergebracht in vier samenwerkende business units. Hiermee biedt HintTech organisaties een pragmatische oplossing, ongeacht de schaal en complexiteit van het project op het gebied van systeem integratie, project management en informatiebeveiliging.
JAVA
specialist
EE J2
|
a| v a J
IBM
ML | Web X | s s o e | JB r e h Sp Web
Services
De Java specialisten van HintTech hebben vele
De pragmatische aanpak van de Java specialis-
jaren ervaring met complexe ICT projecten bij
ten garandeert dat uw cruciale Java projecten
middelgrote en multinationals in binnen- en
succesvol worden afgerond.
buitenland. HintTech’s Java ontwikkelaars, systeem architecten en technische project managers zijn in staat om op elk gewenst moment in te stappen.
Meer informatie op www.hinttech.com
e\m\ijkfg[\m\cfg`e^ Leehfhe`[Yj[de\Z[jWY^[h_d]efXWi_ilWd@WlW"M[Xif^[h[e\Ef[dIekhY[ p_`dZ[if[Y_Wb_ij[dlWd<_dWb_ijWbj_`Zd[j[[dX[[j`[l[hZ[hZWdZ[h[ij$
nnn%ÔeXc`jk%Zfd
J AVA / P R A K T I J K C A S E
FINALIST
Gemeente Amsterdam:
Helen Klappe, Projectmanager Dienst Belastingen Gemeente Amsterdam: Een internetapplicatie om Erfpachtgegevens en WOZ-gegevens binnen Amsterdam te kunnen opvragen.
minder bureaucratie dankzij REWA applicatie van Finalist door Marcel van Kanten, Marketing & Communications Manager Finalist IT Group.
Ambitie kan de gemeente Amsterdam niet worden ontzegd. De Dienst Belastingen gemeente Amsterdam (DBGA) en het Ontwikkelingsbedrijf (OGA) besloten tot een landelijk unieke vorm van samenwerking. Beiden wilden een internetapplicatie waarmee gebruikers Erfpachtgegevens en WOZ-gegevens (Waardering Onroerende Zaken) voor alle objecten binnen de gemeente Amsterdam kunnen opvragen.
Probleemstelling Finalist IT Group realiseerde met succes voor DBGA en OGA deze zogenaamde REWA applicatie. Het project heeft nu een voorbeeldfunctie binnen de gemeente Amsterdam voor hoe diensten door samenwerking meer synergie kunnen bereiken. REWA is een online applicatie en de afkorting van ‘Raadplegen Erfpacht- en WOZ-gegevens Amsterdam’. De doelstelling van het REWA project was het ontwikkelen van een internetapplicatie waarmee gebruikers de Erfpachtgegevens voor alle objecten binnen de Gemeente Amsterdam kunnen opvragen. Deze groep bestaat uit makelaars, notarissen, OGA-medewerkers, DBGA-medewerkers WOZgegevens en Contact Center medewerkers. REWA heeft geleid tot een verbeterde serviceverlening, verbetering van het imago en een kostenbesparing. Dit past volledig in het programma ’Beter Presteren’ van de gemeente Amsterdam. Helen Klappe, Dienst Belastingen Gemeente Amsterdam: “In de oude situatie (voorafgaand aan het gebruik van REWA) hadden makelaars en notarissen niet automatisch inzicht in dergelijke gegevens. Deze klanten konden de gemeente per fax vragen om gegevens te verstrekken over een bepaald object of een bepaald pand.
Dat kunnen ze nog steeds. Want je hebt nog altijd notarissen die niet via internet kunnen of willen werken. Daar moet je als gemeente wel rekening mee houden. “ “ We zoeken de gevraagde gegevens dan op in onze administratie en faxen deze vervolgens weer terug naar de aanvrager. De verschuldigde leges worden apart vastgelegd in een systeem waaruit de gemaakte kosten periodiek worden gefactureerd. Voor de gegevens van OGA kan de belanghebbende bellen met het Bureau Erfpacht van OGA. Ook die mogelijkheid bestaat nog steeds. Maar voor OGA geldt nu ook dat zij bijvoorbeeld notarissen inzage kunnen geven in de nota’s die behoren bij de erfpacht. In Amsterdam staan bijna geen panden op eigen grond; die worden allemaal door de gemeente in erfpacht uitgegeven. Daar moet een bedrag over worden betaald, de canon. Dit moet bij verkoop ook verrekend worden. Dus moet die notaris ook daar inzage in hebben. Dat kan nu met REWA. " >
27
28
WE LOVE IT
Febr u a r i 2007
data van en naar andere applicaties zoals relationele databases).
WO
De bestaande WOZ-Online code moest voor delen hergebruikt kunnen worden, zoals voor onderdelen van de ‘datalaag’ voor de communicatie met de MidOffice. Deze moest worden uitgebreid met nieuwe functionaliteit voor de nieuwe gegevens en de gegevens van OGA. Daarnaast zou de Services laag deels worden hergebruikt, onder andere voor de koppelingen met externe systemen zoals het Content Management Systeem Web-in-a-Box (WIAB). Het website-gedeelte moest wel volledig nieuw ontwikkeld worden waarbij mogelijk delen van de source code van WOZ-Online gebruikt konden worden als voorbeeld.
Een andere eis was dat alle relevante doelgroepen van de applicatie goed waren vertegenwoordigd in de diverse overlegsessies. De vertegenwoordigers brachten ook alle niet functionele aspecten in die van belang waren voor de fase definitiestudie. Voorbeelden hiervan waren binnen de organisatie(s) geldende kwaliteitscriteria en onderkende risico’s.
Eisen Finalist heeft eind 2004 voor DBGA een WOZ-Online applicatie opgeleverd. Partijen met grote vastgoedbelangen in Amsterdam konden via deze applicatie de WOZ-gegevens van hun objecten inzien en, waar nodig, muteren. Finalist heeft over de realisatie van WOZOnline voor zowel de DBGA als ook de gemeente Spijkenisse eerder Whitepapers uitgebracht. Volgens DBGA en Finalist vormde deze WOZ-Online applicatie een geschikte basis voor de nieuw te ontwikkelen functionaliteiten. Daarbij waren de volgende eisen relevant:
DBGA en OGA wilden verder de gegevens graag via één platform aanbieden, maar vonden het hierbij noodzakelijk dat het voor de klant duidelijk zou zijn en blijven van wie de geraadpleegde informatie afkomstig was (verantwoordelijkheid). Het was daarom noodzakelijk dat de eigen identiteit van beide organisaties behouden zou blijven. Het functioneel ontwerp van de applicatie diende hiermee rekening te houden. Uitgangspunt was verder dat REWA gehost zou worden bij DBGA, later over te gaan in Shared Service Center.
Website De REWA applicatie architectuur bestaat uit verschillende lagen: de Presentatie laag (bevat alle componenten die verantwoordelijk zijn voor de interactie met de eindgebruiker), de Services laag (bevat de logica van de applicatie) en de Integratie laag (bevat componenten verantwoordelijk voor
De REWA website kent vanzelfsprekend vele onderdelen. Onder Algemeen verschijnt een scherm met algemene informatie over REWA. Autorisatie/authenticatie biedt de mogelijkheid om bij de applicatie in te loggen via een gebruikersnaam en een wachtwoord. Gebruikers moeten
zich eerst aanmelden alvorens zij aan REWA kunnen deelnemen. Na inloggen verschijnt de Startpagina: met actuele nieuwsitems en de mogelijkheid een zoekactie uit te voeren. Via een aantal schermen kunnen gebruikers objecten kunnen zoeken en hun zoekresultaten bekijken. Voor sommige WOZ-gegevens van een object moet voor inzage worden betaald. Daarnaast zijn er schermen via welke de bezoeker ook gratis bepaalde WOZ-gegevens kan opvragen. Erfpacht recht gegevens (inclusief openstaande nota’s) kunnen als PDF bestand worden opgehaald. Via het scherm Vragen stellen kunnen gebruikersalgemene en specifieke vragen stellen. Kosten rapportage vertoont de gedane opvragingen. De informatie kan gefilterd worden op datum en als bulkdata uit de REWA applicatie opgehaald worden. Medewerkers van de gemeente Amsterdam kunnen via Kosten rapportage medewerkers een overzicht van de
J AVA / P R A K T I J K C A S E
OZ gedane opvragingen van bedrijven zien en in CSV formaat exporteren. Applicatie status is een pagina waarbij de beheerder inzage heeft in de status van de applicatie. Overige publieke informatie is een helpfunctie met onder meer een lijst veelgestelde vragen, algemene informatie in de vorm van een disclaimer, privacy statement, colofon, een contactformulier en een uitlogfunctie. Medewerker informatie bevat tenslotte FAQ pagina’s voor medewerkers. De Applicatie status pagina geeft de beheerder inzage in de status van de applicatie.
Gebruikers beheer Personen kunnen zich als gebruiker van de REWA site aanmelden via de website zelf. Vervolgens wordt via een administratief proces de persoon als REWA gebruiker in de directory server van DBGA aangemaakt. Het beheer van de gebruikersrollen wordt in de beheer omgeving van BEA WebLogic gedaan.
Technische oplossing De REWA applicatie voldoet aan de eisen voor een Portaal applicatie. Voor de ontwikkeling van de REWA applicatie wordt geen gebruik gemaakt van BEA WebLogic specifieke techniek. De applicatie is door gebruik van Java 2 Enterprise Edition (J2EE) standaarden volledig compatible met de WebLogic omgeving van de DBGA. De MidOffice database is ontwikkeld door DBGA op basis van het MidOffice is Oracle 9.
Resultaat Finalist heeft de Ontwerpfase van het REWA project uitgevoerd op basis van fixed price. De Realisatiefase vond plaats op basis van nacalculatie. De REWA applicatie werd binnen de deadline opgeleverd.
Uniciteit van het REWA project Helen Klappe: “REWA richt zich op de vertegenwoordigers van de direct belanghebbenden: de notaris of de makelaar. Dat maakt REWA als project uniek in Nederland.“
Samenwerking met Finalist IT Group Helen Klappe; “Het samenwerken met Finalist voelde als werken met een collega. Dat is wel heel erg prettig als je het hebt over de leverancier van jouw project.”
Eerste ervaringen met REWA live Helen Klappe: “ Steeds meer makelaars en notarissen sluiten zich aan bij REWA. We krijgen dagelijks aanmeldingen binnen. Dit komt mede door onze timing in de externe communicatie. We hebben gewacht om een de ring van makelaars toe te spreken. Zij hebben periodiek een openbare veiling. We hebben dat moment aangegrepen om net even voor de veiling een presentatie over REWA te geven. Dat was een succes. Over een half jaar kunnen we een uitgebreide Klanten Evaluatie uitvoeren. “
29
30
WE LOVE IT
Febr u a r i 2007
De EJB-specificaties zijn zo onduidelijk en incompleet dat elke applicatieserver een specifieke configuratie nodig heeft om de component te laten werken.
JAVA/EJB'S
EJB’s zijn gevaarlijk speelgoed EJB’s zijn hot! EJB’s zijn een hype! Een CV zonder EJB’s stelt niks voor! Software-ontwerpers en vele anderen bezwijken dagelijks voor dit soort kreten en besluiten om EJB’s als standaardoplossing in te zetten voor multitiersystemen. Gewapend met dikke pillen over EJB’s en Design Patterns gaan ze met frisse moed aan de slag. Maanden na het verstrijken van de deadline is het project nog niet af. Iedereen is in paniek: programmeurs
begrijpen nog steeds niks van het ontwerp, bugs op de productieserver zijn niet te reproduceren op de ontwikkel-server en de klant dreigt weg te lopen. Hoe heeft het zover kunnen komen? Los van de redenen waarom softwareontwerpers EJB’s gebruiken, komen dit soort problemen bij velen bekend voor. De ontwerper wil een component maken met (ongetwijfeld) prachtige functionaliteit, maar aangezien het
een Enterprise Java Bean (EJB) moet zijn, wordt hij in een keurslijf gedwongen dat niets met de gewenste functionaliteit te maken heeft. Het begint al met de parameteroverdracht: de invoer van de component. In plaats van de vier losse parameters die nodig zijn, moet het Design Pattern ‘Transfer Object’ toegepast worden, zodat alle parameters in een verzamelobject worden ingepakt. Dit is alleen maar
J AVA / E J B ' S
waren toegepast, vanwege het Transfer Object-gedeelte. De belofte van Java om zonder aanpassingen in diverse omgevingen uitgevoerd te worden -write once, run everywhere- is redelijk ingelost voor serverapplicaties. Voor EJB’s geldt dat helaas een stuk minder. De EJBspecificaties zijn zo onduidelijk en incompleet dat elke applicatieserver een specifieke configuratie nodig heeft om de component te laten werken. Het is behoorlijk naïef om te denken dat een werkende EJB zomaar op een applicatieserver van een andere fabrikant kan worden geïnstalleerd. Er komt nog eens bij dat een software-ontwerper zich bindt aan een leverancier door te kiezen voor EJB’s. Hieronder enkele URL’s over dit onderwerp om aan te geven dat we nog heel lang over dit onderwerp door zouden kunnen vertellen:
om het netwerkverkeer te verminderen, terwijl al duidelijk is dat deze component lokaal zal worden gebruikt. De specificaties spreken echter over een potentieel netwerk. Aan de andere kant van de ‘lijn’ in de component moet de ontwerper alles weten over ‘Home-interface’, ‘Remote-interface’ en ‘Abstract EJB-classes’. Daarmee maakt hij dan een laag om de feitelijke component heen. Deze laag wil hij wellicht helemaal niet, maar is wel verplicht. Om vervolgens de complexiteit weer te verdoezelen, wordt een Business Delegate gemaakt. De gebruiker van de component kan deze dan ‘eenvoudig’ gebruiken. Om precies te zijn, nog net iets minder eenvoudig dan wanneer er geen EJB-technieken
http://c2.com/cgi/ wiki?WhatsWrongWithEjb (Whats wrong with EJB) http://www.softwarereality.com/ programming/ejb/index.jsp (EJB’s 101 Damnations)
Waarom EJB’s Door naar de vraag waarom je EJB’s zou willen gebruiken. De meest gebruikte argumenten zijn schaalbaarheid, transactiemanagement en connection pooling. Dat zijn inderdaad waardevolle zaken, maar het gebruik van EJB’s is niet de enige manier om die te realiseren. EJB-technologie biedt volgens de folder alles om een schaalbaar systeem mogelijk te maken. Om dit voor deel te kunnen benutten moet ook de belangrijkste component in het systeem, de database, schaalbaar zijn. Een Oracle RAC cluster is een mogelijkheid als de
extra licentiekosten geen bezwaar zijn. De beans, eventueel verspreid over meerdere machines, praten allemaal met dezelfde database. Entity Beans -of althans de containers waarin ze draaien- moeten op de hoogte zijn van elkaars wijzigingen. Dat is dus helemaal niet schaalbaar en veroorzaakt een explosie van netwerkcommunicatie. Bij transactiemanagement denken velen wellicht aan transacties die verdeeld zijn over meerdere systemen. Een kreet als ‘two fase commit’ hoort daarbij. Wij denken dat de ontwerper dat niet vaak nodig heeft, maar als hij het bij de hand heeft gehad, ging het waarschijnlijk om een database en een ander systeem, bijvoorbeeld CICS op een mainframe. Bestaan er eigenlijk wel ontwerpers die een wijziging op beide systemen in één transactie hebben verwerkt in een EJB? De ontwikkelaar kan zelf heel goed bepalen of een method in een transactie zou kunnen meedoen, of dat een transactie zelfs verplicht is. Dat zou achteraf door niemand veranderd mogen worden. Bij EJB’s moet dat echter wel gebeuren en dat is erg onhandig. Een belangrijk ‘gratis’ aspect van EJB-containers is connection pooling. Dit zorgt ervoor dat de software-ontwerper snel een reeds geopende connection krijgt, in plaats van er telkens opnieuw één te openen. Dit is een belangrijk voordeel dat een EJB-container biedt. Hieronder wordt bekeken of de containers daarin uniek zijn.
Alternatieven Wie meer dan bovenstaande argumenten kan bedenken om EJB’s te gebruiken, moet wellicht doorgaan langs deze moeizame weg. Mocht dit niet het geval zijn dan zijn er een aantal eenvoudige alternatieven. >
31
XML JAVA
BI
ORACLE
SOA
VOOR ONZE OPLEIDINGEN SURF NAAR
WWW.VIJFHART.NL of BEL +31 (0) 88 - 542 78 48
J AVA / E J B ' S
JAVA/EJB'S vervolg
EJB’s zijn gevaarlijk speelgoed en dienen alleen te worden ingezet als vooraf vaststaat dat de objecten Remote aangeroepen worden
Om te beginnen is er de schaalbaarheid, die in de meeste gevallen prima bereikt kan worden door alleen het aantal webservers uit te breiden. Hierboven is al beschreven dat we helemaal niet gelukkig zijn met de manier waarop je de transactieverwerking moet instellen. Ontwerpers kunnen heel goed zelf bepalen wanneer een transactie begint en wanneer deze eindigt. Een JDBC Connection biedt al ondersteuning voor de database transactie. Voor de pooling van connections zijn er meerdere (open source-) oplossingen, zoals bijvoorbeeld de Apache DBCP: http://jakarta.apache.org/commons/dbcp/. Kijk ook eens naar het Spring framework (http://www.springframework.org) dat constant populairder lijkt te worden. Dit framework maakt zaken als transactie en beveiliging volledig transparant zonder gebruik te maken van de ingewikkelde EJB-constructies. Op het Oracle plat-form bieden ADF Business Components (BC) en Toplink vergelijkbare mogelijkheden, mits de JDeveloper IDE gebruikt wordt. Dat Oracle veel ziet in de combinatie Toplink en POJO’s blijkt uit het feit dat de volgende versie van de JHeadstart productiviteitsbooster naast ADF BC ook op basis van Top-link bindings een GUI kan genereren: http://www.oracle.com/technology/ consulting/9iServices/JHeadstart.html.
Conclusie en aanbeveling Indien er een herkansing wordt aangeboden voor een nieuw multi-tierproject door een leidinggevende geven wij als aanbeveling om deze in POJO’s te bouwen en te deployen als webapplicaties. EJB’s veroorzaken in de meeste gevallen meer problemen dan dat ze oplossingen bieden. Met Spring, Hybernate, ADF BC en Toplink kunnen schaalbare applicaties kosteneffectiever ontwikkeld worden zonder architec-tonische wangedrochten en Design Pattern overloads. Gebruik alleen EJB’s als het echt niet anders kan en overleg vooraf met ervaren rotten in het vak. Immers EJB’s zijn gevaarlijk speelgoed en dienen alleen ingezet te worden als vooraf vaststaat dat de objecten Remote aangeroepen worden. Michael Kreuwels, Consultant ICT bij Ordina SI&D DC Oracle. Foto: Jan-Jaap Zijlstra, Senior Software Engineer bij Ordina SI&D J-Technologies.
33
34
WE LOVE IT
Febr u a r i 2007
Zonder gebruikersinterface ook geen applicatie.
JAVA/JSF-SOA
Geef webdiensten en SOA een gezicht door Sandor Nieuwenhuijs en Dick Lans
De IT-architectuur bij bedrijven is steeds onderheving aan nieuwe trends. De grootste uitdaging voor ontwikkelaars en IT-architecten is niet alleen om de nieuwste trends bij te houden, maar ook om ze te gebruiken om er concurrentievoordeel mee te behalen.
J AVA / J S F - S O A
werk per component. Daarnaast zijn ze betrouwbaarder omdat componenten vooraf getest worden en zichzelf eerst bewijzen in verschillende gebruikerscases. Ook zijn gebruikers er vaak tevreden over omdat de componenten gebouwd zijn door experts in interface design. Tot slot zijn ze vaak nogmaals te gebruiken, waardoor de ontwikkeling ervan kostenefficiënter wordt. Met de opkomst van webdiensten en Service Oriented Artchitectures (SOA), neemt de behoefte aan JSFcomponenten sterk toe. JSF-componenten maken het immers mogelijk webdiensten in een begrijpelijk format aan de eindgebruiker aan te bieden. In combinatie met Service Oriented Architectures (SOA’s) maken JSF-componenten het mogelijk een aantal los gekoppelde diensten te gebruiken inéén enkele applicatie.
Het voordeel van het gebruik van nieuwe technologie in bedrijfsapplicaties kan immers volledig teniet worden gedaan als de nieuwe applicatie te duur is in ontwikkeling en onderhoud, de implementatie tijdrovend is en het gebruik ervan lastig. JavaServer Faces (JSF) is een gebruikersvriendelijke technologie die de complexiteit verkleint en de snelheid van het op de markt brengen verhoogt. JSF levert een flexibel, op standaarden gebaseerd, raamwerk voor het bouwen van user interfaces voor bedrijfsapplicaties. JavaServer Faces is een middel om herbruikbare componenten voor applicatieontwikkeling toe te passen. JSF-componenten hebben diverse voordelen. Ze verhogen de productiviteit; het scheelt vaak zelfs maanden
Dit artikel bespreekt de relatie tussen goed interface design en SOA’s. Ook laat dit artikel de lezer zien wat het verschil is tussen een goede en een supergoede applicatie.
Waarom SOA? SOA’s zijn voortdurend onderwerp van gesprek bij analisten, CIO’s en technology markteteers. Maar de weg van architectonische principes op hoog niveau naar het programmeren van een functionerende service in de echte wereld is niet altijd eenvoudig. De ontwerper moet uiteindelijk een heldere user interface creëren die zo flexibel is als de diensten die de user interface levert. De concepten achter SOA verschillen niet veel van standaard ontwerpprincipes als onttrekking, inkapseling en hergebruik. Om het simpel te zeggen, SOA is een software architectuur waarin de functionaliteit van applicaties is
ingekapseld als een onafhankelijke service. Deze service is in veel gevallen een webdienst, maar het kunnen ook services zijn die zijn afgeleid van verschillende technologie types. Klanten die verschillende applicaties of bedrijfsprocessen gebruiken, kunnen deze services dan toch gebruiken. Nog belangrijker is misschien dat SOA is ontworpen om de implementatie van een softwaredienst los te koppelen van de interfaces die deze dienst gebruiken. Hierdoor kunnen klanten van een service vertrouwen op een consistente interface, en bovendien wordt het gebruik ervan flexibeler omdat ontwikkelaars de implementatie van een dienst geleidelijk kunnen laten verlopen, zonder dat de klanten van een dienst daar last van hoeven te hebben. Dit betetekent dat de voornaamste vereiste van een SOA is dat de interface van de dienst wordt losgekoppeld van de implementatie ervan. Deze scheiding betekent meteen het grootste voordeel van SOA, zowel gezien vanuit programmeer oogpunt als vanuit een financieel oogpunt. Bestaande systemen zowel verouderd als modern, intern en extern, kunnen worden getoond en worden gebruikt als diensten, waardoor het ontwikkelen ervan vereenvoudigd wordt.
Geef SOA een gezicht Een discussie over het in gebruik nemen van een Service Oriented Architecture gaat vaak over de betrouwbaarheid van webdiensten, hoe verschillende applicaties samen kunnen opereren en over messaging. Dat betekent dus dat het gaat over hoe bestaande software geïntegreerd moet worden in processen en samengestelde applicaties. Waar het echter in veel gevallen niet over gaat is hoe gebruikers met deze processen zullen omgaan. Zonder gebruikersinterface is er echter ook geen applicatie. >
35
Oracle Fusion Middleware
Drop and Deplo y
Oracle Integration Cognos Business Intelligence
Drop and Deplo y
Oracle Enterprise Portal Microsoft Active Director y
Drop and Deplo y
Oracle Identity Management Websphere J2EE
Your IT Infrastructure Unchanged
Hot-Pluggable
So Standard, It’s Hot-Pluggable With Your Existing Software J2EE — Enterprise Portal — Identity Management — Integration — Data Hub — Business Intelligence
oracle.com/middleware or call +353 1 8031099
Copyright © 2005, Oracle. All rights reserved. Oracle, JD Edwards and PeopleSoft are registered trademarks of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
J AVA / J S F - S O A
Java/JSF-SOA vervolg SOA is een software architectuur waarin de functionaliteit van applicaties is ingekapseld als een onafhankelijke service. JSF-componenten vullen SOA aan door er voor te zorgen op een makkelijke manier het laatste stukje van de SOA-puzzel toe te voegen: een door mensen goed te gebruiken user interface. JSF is een standaard J2EE-technologie die een op componenten gebaseerde aanpak biedt voor het ontwikkelen van een gebruikersinterface. JSF-componenten zijn te vergelijken met services in SOA. Zij kapselen de gebruikelijke vereisten en commando’s in van een web-gebaseerde user interface in. In plaats van het via programmeren opbouwen van HTML-tabellen of het schrijven van een data validatie in Java Script, bieden de JSF-componenten deze functionaliteit al. Hierdoor wordt de ontwikkelaar in staat gesteld om een component simpelweg naar een pagina te slepen en de eigenschappen in te stellen. Wat nog interessanter is, is dat nog uitgebreidere JSFcomponenten zoals Oracle’s ADF Faces, worden gebouwd met verschillende kitsets. Deze kitsets maken het mogelijk JSF-componenten te gebruiken voor verschillende clients en apparaten, zoals PDA’s, mobiele telefoons, TelNet en IM.
SOA-details Webdiensten die beschikken over het implementationagnostic messaging protocol, het standaard messaging protocol voor het bouwen van SOA-applicaties in combinatie met standaarden voor betrouwbare messaging, veiligheid en interoperabiliteit, vormen de ideale ‘ruggegraat’voor een Service Oriented Architecture. Services die de bouwstenen vormen van een SOAapplicatie, hebben één overeenkomstige eigenschap: een voor iedereen zichtbare interface die gemaakt is op basis van van inzichtelijke methodes die te gebruiken zijn door andere delen van de applicatie. De zichtbare interface is in elke technologie te integreren (.NET, J2EE, COBOL, PL/SQL, etc.). Verreweg het meest gebruikte type service gebruikt bij SOA zijn webservices Webdiensten voorzien echter niet in de basisinfrastructuur die je zou verwachten in een programmeertaal. Om er voor de zorgen dat een set webdiensten toch functioneert in een bedrijfsproces, moet er daarom vaak veel low-level code worden geschreven. Een andere mogelijkheid is gebruik te maken van Business Process Execution Language (BPEL). BPEL is een opkomende OASIS-standaard (Organization
for the Advancement of Structured Information Standards) die er voor zorgt dat webdiensten te integereren zijn in een bedrijfsproces. Ondanks het feit dat de BPELtaal een enigszins ingewikkeld XML-schema bevat, zijn er meerdere visuele BPEL-tools zoals Oracle BPELdesigner die het het inzetten van webdiensten in stromen van bedrijfsprocessen vereenvoudigent doordat simpelweg ‘drag and drop’ gebruikt kan worden.
Conclusie Kortom, met SOA ontstaat er de uitzonderlijke mogelijkheid om verschillende behoorlijk verschillende diensten te koppelen in één enkele samenhangende bedrijfsdienst. Bij de combinatie van Service Oriented Architecture met een op JSF-gebaseerde gebruikersinterface kan een BPEL-proces van nut zijn voor het ontwikkelen en rijke gebruikers interface. Het bouwen van een samengestelde SOA-applicatie inclusief een op JSF-gesbaseerd user interface is eigelijk een voor de hand liggend proces. Door daar een tool zoals Oracle Jdeveloper 10g voor te gebruiken, kan het zelfs eenvoudig en op een hele visuele manier bereikt worden.
37
38
WE LOVE IT
Febr u a r i 2007
Bestaande LINC/ EAE-applicaties zijn probleemloos in te laden in de nieuwe omgeving, wat een naadloze migratie garandeert. JAVA/AGILE
Agile Business Suite van Unisys ideaal voor ontwikkelen van Java-applicaties Dit jaar introduceerde Unisys de Agile Business Suite-ontwikkelomgeving (AB Suite). Deze genereert complete applicaties naar onder meer Java die onmiddellijk klaar voor gebruik zijn. Daardoor kunnen bedrijven profiteren van de voordelen van de Java Runtime, terwijl ze geen last hebben van de nadelen van Java als ontwikkelplatform.
J AVA / AG I L E
De voordelen van de Java Runtime liggen vooral in de brede connectiviteit en portabiliteit die Java biedt met bijvoorbeeld verschillende applicatieservers. De nadelen liggen met name in het relatief tijdrovende bouwen en onderhouden van Java code en -templates. Daarbij komt het nadeel van een lockin: wie eenmaal kiest voor Java kan niet zomaar meer overstappen. Bij ABS is dat wel mogelijk én op ieder moment. Deze nieuwe softwaresuite vormt mede daardoor een doorbraak in softwareontwikkeling. Veel grote bedrijven staan voor voor wat betreft hun bedrijfskritische backoffice-toepassingen regelmatig voor fundamentele keuzes. Gaan ze bestaande legacy-applicaties vervangen door standaardtoepassingen of is het zelf bouwen een betere mogelijkheid? En als dat laatste het geval is, welk platform leent zich daar dan het best voor? Java? .NET? En hoe staat het met de return on investment? Unisys biedt in dit verband een alternatief met een platformonafhankelijke omgeving die de techniek weg houdt van de ontwikkelaar. In de filosofie van Unisys moet een ontwikkelaar zich volledig kunnen concentreren op de eisen vanuit de business en niet ook nog belast worden met eisen op technisch gebied. Vanuit die visie ontwikkelde Unisys destijds LINC, dat vooral werd ingezet ten behoeve van grootschalige, transactieintensieve omgevingen op mainframes. LINC heeft in de afgelopen jaren een duidelijke ontwikkeling ondergaan. Er kwam de mogelijkheid om ook te generen naar UNIX en NT. Het product werd workstation-based en Unisys introduceerde de repository. LINC werd daarna Enterprise Application Environment (EAE) genoemd.
de open wereld binnenstapte en de mogelijkheid bood om ook te genereren naar .NET door middel van C# en naar JEE door middel van Java. Het bedrijf stelde met het oog daarop een suite samen van oplossingen die dit ondersteunt: Agile Business Suite (AB Suite). AB Suite beschermt uiteraard gedane investeringen. Bestaande LINC/EAE-applicaties zijn probleemloos in te laden in de nieuwe omgeving, wat een naadloze migratie garandeert. Daarnaast zorgt AB Suite voor aanmerkelijk meer flexibiliteit. Doordat een ontwikkelaar zich volledig kan richten op het voldoen aan business requirements, ligt de productiviteit aanzienlijk hoger dan bij andere ontwikkelomgevingen. Dit geldt niet alleen bij het bouwen van nieuwe applicaties, maar ook tijdens het onderhoud gedurende de periode dat de applicatie gebruikt wordt. Het gaat daarbij nadrukkelijk om grote, bedrijfskritische en transactie-intensieve back officeapplicaties van meer dan tweeduizend functiepunten en een beoogde levensduur van tien tot vijftien jaar. AB Suite is een echte suite, omdat het in feite een set van best-of-breed tools biedt voor ontwikkeling. Visual Studio van Microsoft vormt daarin het raamwerk. Voor versiebeheer biedt de suite Star Team van Borland of de standaard SCCI-interface, terwijl Microsoft SQL Server fungeert als repository. Hierdoor verbreedt Unisys zijn scope voor wat betreft ontwikkeling drastisch. Door Visual Studio als basis te hanteren, is de groep van potentiële ontwikkelaars veel groter en zijn ontwikkelaars snel vertrouwd met AB Suite. Dit geldt ook voor de huidge Eclipse-gebruikers.
De open wereld
SOA Ready
In 2006 kreeg deze ontwikkeling een vervolg doordat Unisys nu volledig
De suite biedt ook generatoren voor het creëren van Active Server Pages en >
39
40
WE LOVE IT
Febr u a r i 2007
Java & Agile vervolg
maken (en nog steeds oude code te houden) of de back office-applicaties opnieuw te bouwen met nieuwe technieken.
Hardware- en softwareonafhankelijk Web Services. Ook hier wordt zoveel mogelijk technologie weggehouden van de ontwikkelaar en gestopt in generatoren. Hierdoor is het mogelijk de snelle technologieontwikkelingen bij te houden zonder steeds de applicatie te moeten aanpassen. Daar grote back office-applicaties tien twintig jaar geleden niet gebouwd zijn met internet-, zelfservice- en straight through processing-concepten in gedachten hebben organisaties een keuze tussen grote investeringen om oude applicaties hiervoor geschikt te
AB Suite zorgt er mede voor dat er eindelijk volledig hardware- en softwareplatform-onafhankelijk ontwikkeld kan worden. Bij AB Suite hoeft een gebruiker niet vooraf keuzes te maken qua productieomgeving, bijvoorbeeld Linux of Windows, Java of C#, Oracle of SQL Server. De suite stelt ontwikkelaars in staat om eerst de applicatieontwikkeling geheel uit te voeren en dan pas te genereren naar een platform naar keuze. De ontwikkeling vindt plaats in een high-level scripting-taal, met
natuurlijk UML-input via een XMIinterface en OO-ontwikkelstatements. Het unieke van deze generator is dat deze 100 procent genereert. Dat wil zeggen dat alle specificaties uit de repository in één keer worden meegenomen. Na het genereren is de applicatie (online- en batchprogrammatuur en database) dan ook klaar voor gebruik. Dus een volledige Build. Na deze Build wordt de code dus niet meer aangevuld of aangepast. De generator zorgt er tevens voor dat het onderhoud van applicaties vele malen eenvoudiger is. Gebruikers die bijvoorbeeld een overstap willen maken van de ene Oracle-release naar een andere hebben in de regel veel werk aan allerlei aanpassingen om applicaties geschikt te maken voor de nieuwe database. Bij AB Suite is in deze gevallen uitsluitend een nieuwe generator nodig die alle applicaties geschikt maakt en de databasemigratie verzorgt. Hetzelfde geldt bijvoorbeeld bij een toekomstige migratie van Java 2.0 naar Java 3.0. Unisys ontwikkelt en levert in deze gevallen de noodzakelijke generators. In de praktijk is gebleken dat een ontwikkelafdeling met AB Suite in het algemeen twee tot drie keer productiever is dan met de combinatie Java-code en Java-templates. Dit in combinatie met minder onderhoud en een beter aansluiting op de specifieke businesseisen van een organisatie maakt de AB Suite bij uitstek geschikt voor organisaties die hoogwaardige ontwikkeling willen combineren met lage kosten en een hoge return on investment. Meer informatie: http://www.unisys. com/products/ software/index.htm of e-mail; maarten.
[email protected]
NBBSUFOTDIOFJEFS!OMVOJTZTDPN XXXBHJMFCVTJOFTTTVJUFDPN
Brooke Hospital for Animals gezonde werkdieren voor de allerarmsten
Brooke Hospital for Animals (opgericht in 1934, door mrs. Dorothy Brooke) zet zich in voor verbetering van de leefomstandigheden van werkpaarden en -ezels in landen als India en Egypte. De eigenaren van de dieren zijn straatarm. Zij zijn met hun gezin volledig afhankelijk van hun werkdier: één paardenkracht voorziet in het levensonderhoud van zes mensen. Maar door geldgebrek en onwetendheid moeten de paarden en ezels werken onder vreselijke omstandigheden, vaak tot ze er dood bij neervallen, waardoor het gezin zonder inkomen is. In 15 hospitaalcentra en met 43 rijdende klinieken worden door Brooke jaarlijks 500.000 dieren gratis behandeld. Eigenaren krijgen voorlichting over een goede dierverzorging. Watertroggen worden geplaatst voor mens en dier. Steun deze combinatie van dierenbescherming en ontwikkelingshulp en word donateur, voor 15,88 euro per jaar. Stichting Brooke Hospital for Animals Van Baerlestraat 13-C 1071 AM Amsterdam Tel.: 020-6709229 Fax: 020-6792800 E-mail:
[email protected] Website: www.brooke.nl/www.werkdier.nl Giro: 5568671 Bank: 49.24.41.294
42
WE LOVE IT
Febr u a r i 2007
Coert van der Elzen, Principal Consultant (r) en Erwin Fallaux, Software Architect (l): 'Innovatie op technologisch gebied staat hoog in het vaandel bij Carthago ICT.'
JAVA/PRAKTIJKCASE
Java Platform: “de basis voor een nieuw behandel, registratie en evaluatie systeem”. Voor een tweetal klanten uit de justitiële jeugdinrichting wereld wordt momenteel een omvangrijk project uitgevoerd.
J AVA / P R A K T I J K C A S E
“Deze specifieke klantomgeving is een erg complexe. Niet alleen dient men rekening te houden met de wensen van het plaatsingsbureau, de gedragswetenschapper of de groepsleider, ook is vanuit een Ministerie van Justitie of VWS nauwkeurig voorgeschreven aan welke wettelijke regels en rapportages je dient te voldoen. Dat stelt hoge eisen aan het flexibel kunnen inrichten van je modules voor een Intake proces, de Diagnostiek, je Planningsmodule of de Behandelplannen.” Ook moet op ieder gewenst moment de Management-rapportage module gegevens kunnen opleveren omtrent bezettingsgraad van personeel en gebouwen en de effectiviteit van therapiën.”
De informatie analyse fase
Het betreft de (nieuw)bouw van een behandel, registratie en evaluatie systeem (BRES) wat de jeugdinrichting niet alleen in staat stelt om NAW gegevens van de jeugdige te registreren maar wat nog belangrijker is, met behulp van diverse op maat gesneden modules de juiste diagnose te stellen en op basis van behandelplannen ervoor te zorgen dat de jongeren weer voorbereid worden voor herintreding in de maatschappij. Dat een op maat gesneden aanpak zijn vruchten afwerpt wordt duidelijk als we spreken met de project-manager voor het BRES project, Coert van der Elzen, die het als volgt verwoordt:
In een vroegtijdig stadium is een uitgebreide Informatie Analyse fase opgestart waarbij met vertegenwoordigers van de diverse disciplines via Workshops gedetailleerde informatie werd opgeleverd. Het is essentieel dat de eind-gebruikers van meet af aan intensief deelnemer zijn aan een dergelijk traject. Immers, zij kennen als geen ander hun eigen bedrijfsprocessen. Carthago ICT is dan ook erg verheugd dat er vanuit de directie en de gebruikersgroepen bij beide klanten zo enthousiast gereageerd en geparticipeerd wordt. Het nieuw te ontwikkelen systeem bouwt voort op een al oudere Visual Basic oplossing die aan het eind van haar mogelijkheden zit. Omdat de klant toe wilde naar een Web-based oplossing heeft Carthago ICT gekozen voor het JAVA platform. Binnen Carthago ICT hebben we een JAVA competence groep en de daar aanwezige expertise wordt volledig benut om weliswaar de nieuwste, maar toch ook bewezen oplossingen aan te dragen.
Use cases & projectmanagement Ook van belang is dat Carthago ICT voortdurend terugkoppeling krijgt op wat er ontworpen en gebouwd wordt. Binnen Carthago ICT wordt de UML methodiek (Unified Modeling Language) gehanteerd waarbij objectgeoriënteerde analyses en ontwerpen worden gebruikt om een informatiesysteem te kunnen maken. Via use cases wordt de problematiek in de diverse deelgebieden benaderd. Iedere drie tot vier weken is er een demonstratie van de diverse stadia van het BRES prototype waarbij de klant aangeeft of dit nog steeds de richting is die men op wil. Anders dan bij een waterval methode waarbij men aan het eind van het project het risico loopt dat het eindproduct wat dan gepresenteerd toch niet voldoet aan de wens van de eindgebruiker, levert de projectgroep hier direct commentaar en kan het vrijwel onmiddellijk aangepast worden. Het project wordt verder conform Prince II richtlijnen gemanaged, en ook stuurgroepleden worden wekelijks geïnformeerd over voortgang, issues, risico’s en mogelijke changes. Dat vergt uiteraard een stringente administratieve aanpak, maar de klant ervaart die mate van detailinformatie als zeer positief. Door deze iteratieve werkwijze waarbij je steeds de klant voorhoudt wat er ontwikkeld is gekoppeld aan een gedetailleerde rapportage dicht je de communicatiekloof tussen gebruiker en ontwikkelaars.
Klanttevredenheid centraal Uiteraard probeert Carthago ICT binnen het kader van de projecttoleranties de klant zoveel mogelijk tegemoet te komen. Wensen ten aanzien van gebruikersvriendelijkheid, nieuwe functionaliteit, vereenvoudiging >
43
44
WE LOVE IT
Febr u a r i 2007
Java Platform vervolg
van schermen, nieuwe navigatie mogelijkheden, zijn allemaal zaken die tijdens de bouw van meet af aan geïntroduceerd werden. Je merkt dat de eindgebruiker het erg waardeert dat hun wensen zoveel mogelijk worden gehonoreerd. Immers bij Carthago staat klanttevredenheid voorop. Hier geldt overigens wel de taak van de projectmanager om samen met de interne projectleiders aan klantzijde te zorgen voor een goede balans tussen wensenlijst en maakbaarheid binnen budget en tijd.
Gebruikte technologie(en) Erwin Fallaux, verantwoordelijk software architect: ”Innovatie op technologisch gebied staat hoog in het vaandel bij Carthago ICT. Daarom wordt er voortdurend ingespeeld op de nieuwste ontwikkelingen in de technologische markt. Om dit doel te bewerkstelligen heeft de Java Competence Groep als taak de ontwikkelingen in de gaten te houden, deze te toetsen op bruikbaarheid in projecten en de opgedane kennis in de organisatie te borgen. Het Behandel- Registratie en Evaluatie systeem is opgezet als multi-tier applicatie, gebruikmakend van de nieuwste technologieën die beschikbaar zijn voor het JAVA platform. Naast Hibernate 3 als oplossing voor de backend wordt tevens het Spring framework gebruikt, en Webwork (Struts 2). Deze frameworks zijn naadloos met elkaar geïntegreerd, wat resulteert in een oplossing die architectureel gezien goed in elkaar zit, maar toch doeltreffend simpel is. Beide klanten hebben een ander database-systeem in gebruik waar rekening mee gehouden moet worden. De combinatie Spring+Hibernate biedt standaard oplossingen die hierin kunnen voorzien. Zo kan op een eenvoudige manier van onderliggende database gewisseld worden, zonder dat daarvoor de code moet worden aangepast”.
Toekomst
Ondersteuning gewaarborgd middels een Service Level Agreement en een helpdesk
Het Behandel- Registratie- en Evaluatie systeem is een product dat generiek van opzet is en dat betrekkelijk eenvoudig op de wensen van individuele klant is in te richten. Het is daarnaast de bedoeling dit pakket in de markt te introduceren voor collega-instellingen maar het is dankzij een modulaire opzet ook uitstekend geschikt voor GGZ instellingen, GGD, TBS klinieken of RIAGG-instellingen. De ondersteuning voor de komende jaren is gewaarborgd middels een Service Level Agreement en een Helpdesk waarbij de klant zelf het gewenste niveau van ondersteuning kan afspreken.
Pump up
your profitability
&($'#($%'%!&"('$(+&$%!$''## &'%&$''####$&#'('"& (&(&/#(& #*$)&#$ $%&" #.#$(# '($&####)'(&-&(!"#%)!'&*' *&.$&#*$$&#$%($%#*)$"%!(!-!*# %%!('0*#$#(+&%$)+"%!"#((($($#&$) #&'#($#+"('('%!'(## "& ((*##.#
!&($*$$&#'%& $")'#''#,(& "%)!'(*#
"!#&#$&($(#! $%+++&($(#!*$$&"&#$&"(
Niets houdt je tegen. Carthago ICT.
46
WE LOVE IT
Febr u a r i 2007
JAVA/SPRING
Het Spring Framework door Rene de Jong
Het Spring framework is een zeer populair framework dat het bouwen van enterprise java applicaties simpeler maakt. Het Spring framework is ontstaan door het feit dat J2EE ontwikkeling nogal complex is. Met Spring is het mogelijk om op een object georiënteerde manier enterprise java applicaties te schrijven die flexibel, beter leesbaar en beter te testen zijn.
J AVA / S P R I N G
Wat is Spring? De hoofdgedachte van Spring is dat alle business logica code in gewone java objecten (in het Engels Plain Old Java Object of POJO) wordt geschreven. Deze POJO’s bevatten alleen maar business logica en geen ‘plumbing’ code zoals code voor security, logging en database aanroepen. Het voordeel van deze aanpak is dat: • De business logica makkelijk te begrijpen is, en dus makkelijker te schrijven en te onderhouden is. • De business logica makkelijk te testen is, en test gedreven software ontwikkeling ondersteunt. • De business logica niet afhankelijk is van technologische veranderingen. De ‘plumbing’ code wordt dan in aparte objecten geïmplementeerd en deze ‘plumbing’ code wordt m.b.v. een XML configuratie file toegevoegd aan de business logica code.
Waar bestaat Spring uit? Het hart van Spring bestaat uit 3 verschillende technieken: • Dependency Injection (DI), een techniek om de applicatie flexibeler en beter testbaar te maken. • Aspect oriented programming (AOP), een techniek om de business logica te scheiden van de technische infrastructuur. • Enterprise service templates, een techniek die het programmeren van de verschillende enterprise service API’s een stuk simpeler maakt.
Rene de Jong is zelfstandig adviseur en docent op het gebied van enterprise java architectuur.
Het gebruik van deze 3 technieken samen maakt het implementeren, testen en veranderen van enterprise java applicaties een stuk eenvoudiger. Dit is de reden waarom het Spring framework zo popu-lair is. Het mooie van Spring is dat je zelf kunt kiezen welke technieken van Spring je wilt gebruiken. Veel projecten beginnen met het gebruik
van alleen het JDBC template van Spring. Dit JDBC template levert al snel een besparing op van 75% minder regels code in vergelijking met het gebruik van de JDBC API. Daarna gaat men geleidelijk DI en/of AOP gebruiken. Een ander belangrijk aspect van Spring is dat het aan de voorkant ondersteuning biedt voor integratie met allerlei web frameworks zoals Struts of JSF en aan de achterkant ondersteuning biedt voor integratie met allerlei persistentie frameworks zoals Hibernate, JDBC of JDO. Veel projecten gebruiken tegenwoordig de combinatie van Struts, Spring en Hibernate of JSF, Spring en Hibernate.
Spring en EJB 3 Spring is op dit moment erg populair in de enterprise java wereld, maar zal de nieuwe EJB 3 standaard Spring niet overbodig maken? Dit verwacht ik niet want Spring biedt veel meer dan wat EJB 3 te bieden heeft. Hoewel men bij het vaststellen van de EJB 3 standaard goed naar Spring heeft gekeken, zijn de mogelijkheden van EJB 3 veel minder krachtig dan de mogelijkheden van Spring. De nieuwe Java Enterprise Edition (JEE) standaard is een grote vooruitgang ten opzichte van de oude J2EE standaard, maar bevat nog steeds bepaalde beperkingen. Open source frameworks als Spring, Seam en Hibernate bieden oplossingen voor deze beperkingen. Door naast de JEE standaard een open source framework als Spring te gebruiken krijgt men de ‘best of both worlds’.
47
48
WE LOVE IT
Febr u a r i 2007
Een IT-architect die zijn neus ophaalt voor de gamewereld, zet zichzelf als professional op achterstand en doet zijn gebruikers tekort.
copyright Liam Kemp - www.this-wonderful-life.com)
GAMING
Moeten IT architecten in de leer bij de game-bouwers? Tien jaar geleden was het onder IT-ers niet politiek correct om over gaming te praten. Dat is nu wel even anders: er is een leerstoel gaming aan de Universiteit van Utrecht en een bedrijf als Game Entertainment Europe heeft zwaargewichten als Willem Vermeend en Eckart Wintzen in haar raad van advies. Recent hoor je links en rechts zelfs dat IT-architecten bij de gamebouwers in de leer zouden moeten gaan. Hoe zit dat? Op de laatste door Sun Microsystems georganiseerde Architectuurmiddag stelde Paul Wouters, consultant van
WagernaarHoes Organisatieadvies, onverdroten dat IT-architecten stage zouden moeten lopen in de gaming-industrie. We love IT! ging op onderzoek uit om te ontdekken hoe serieus we deze opmerking moeten nemen. We interviewden de Paul Wouters zelf en hadden een uitvoerig gesprek Jurriaan van Rijswijk, die als oprichter van The Game Factory en Game Entertainment Europe als een spin in het wereldwijde web van de gaming-industrie zit. Tenslotte legden we ons oor te luister bij hèt orakel op het gebied van software architectuur
en gaming: Will Wright, de geniale geestelijk vader van spraakmakende games zoals The Sims en Spore. ‘Multidisciplinair’ is een van de toverwoorden in moderne ontwerpprocessen. Als dit op iemand van toepassing is, dan op de Vlaming Paul Wouters. Ooit programmeerde hij op mainframes. Later was hij onderwijzer en maatschappelijk werker. Na een studie filosofie bekleedde hij 18 jaar lang de functie van directeur van de Internationale School voor Wijsbegeerte in Leusden.
GAMING
Nu is hij voltijds organisatieadviseur met een overvolle agenda aan nevenactiviteiten. Hij schreef een origineel boek over de cultuurverschillen tussen Nederlanders en Belgen, hij is docent en coördinator aan de Haagse Hogeschool, hij is voorzitter van de raad van toezicht van een lokale bank en hij is samen met een keur aan IT-architecten lid van de studiegroep ‘De Menselijke Maat in de IT’ (www.it4humans.org).
Verleiden “Het zelfbeeld van de architect is aan het wankelen”, aldus Wouters. “Sommige IT-architecten presenteren zich nog met trots en met hoofdletters NERDS en vinden zichzelf technisch een heel groot licht. Dat kan echt niet meer. Die houding leidt tot oplossingen waar-bij de gebruikers het eindproduct door de strot geduwd krijgen. Gebruikers kijken dan de hele dag naar hun applicatie als naar een vreemde. Dat kan vriendelijker en verstandiger. De applicatie moet de gebruiker verleiden en ook keuzevrijheid en speelruimte bieden. Het mag best wat kosten om dat te bereiken: gebruikers knappen dan niet na 5 uur al af, maar werken ook het achtste uur nog met plezier.”
Serious gaming Een andere duizendpoot is de ITarchitect Jurriaan van Rijswijk. Zijn CV verraadt dat hij al in zijn jonge jaren het spelletje pong programmeerde op zijn met een zwart-wit TV verbonden Sinclair ZX81 spectrum. Tijdens zijn studie in Wageningen hield hij zich bezig met modellering om daarna weer te focussen op zijn passie: gaming en ‘serious gaming’. Zijn eerste grote opdracht voor een serieus spel was een game voor de deelnemers aan het World Water Forum van de Verenigde Naties. Inmiddels is hij ‘Chief Gaming Officer’ van twee door hem opgerichte bedrijven: Gaming Entertainment Europe (www.ge-eu.com) en The Games Factory (www.gamesfactoryonline. com). Het eerste bedrijf richt zich op het onderhouden van de infrastructuur van grote online game communities in Europa inclusief Rusland en Turkije, terwijl het tweede bedrijf uiteenlopende organisaties voorziet van ‘serious games’. Tel daar bij op zijn adviseurschap bij Nederland Breedbandland en zijn projecten voor Interimic, dan hoeft het niet te verbazen dat Van Rijswijk een veelgevraagd spreker is.
Windows wordt ‘Doors’ Hoofd, handen en hart Volgens Wouters is een architect -en eigenlijk iedere professional in de dienstverlening- iemand die de drie dimensies van zingeving bij elkaar kan brengen: de cognitieve dimensie, de functionele dimensie en de emotionele of zintuiglijke dimensie. Waar staat een applicatie (of een gebouw) voor? Welke doelen en middelen kent de applicatie (of een gebouw)? En hoe voelt de applicatie (of een gebouw)? “Simpel gezegd gaat het om hoofd, handen en hart”, aldus Wouters. “Goede games zijn schoolvoorbeelden van goede architectuur, want ze vertellen een verhaal en verleiden de gebruiker om urenlang in de virtuele omgeving te vertoeven. Dit kan omdat de gamebouwers zelf ook enthousiaste gamers zijn en omdat de eindgebruikers intensief betrokken zijn bij elke fase van het ontwerpproces. Dit is waarom ik zeg dat IT-architecten stage zouden moeten lopen in de gamewereld.
Als je met Jurriaan van Rijswijk spreekt, betreedt je een wereld waarin niets hetzelfde blijft. Hij haalt al snel de zeer veelzijdige Thijs Chanowski aan, die zich ontwikkelde van producent van de Fabeltjeskrant en Paulus de Boskabouter, tot creatief IT-ondernemer en hoogleraar Multimedia Interactie aan de Universiteit van Amsterdam. Volgens Chanowski zegt het feit dat je ‘vóór de televisie’ zit en ‘áchter de computer’ eigenlijk alles. Achter de computer wil je ‘in control’ zijn. Een zoekmachine vindt hij eigenlijk maar niets: hij wil een ‘vindmachine’. De computer moet begrijpen wat ik bedoel. Nog een goede bekende van Van Rijswijk: Marc Overmars, hoog-leraar en wetenschappelijk directeur van het Center for Advanced Gaming and Simulation van de Universiteit van Utrecht. Overmars betoogt enthousiast dat Windows rond 2015 een second life-achtig spel zal zijn en noemt deze visie dan ook ‘Doors’ in plaats van ‘Windows’.
Ergonomiestudies met Quake-monsters “Gaming doet met de IT-omgeving wat Apple altijd al voor ogen had”, aldus Van Rijswijk. “De gameconsoles realiseren wat iedereen altijd al zocht: een computer die de gebruiker een ervaring biedt zonder iets van de achterliggende techniek te merken. Het is eigenlijk bizar dat Apple deze boot heeft gemist!” De gamewereld laat aan architecten zien dat je de gebruikerservaring van bedrijfsapplicaties en de kantooromgeving niet serieus genoeg kunt nemen. “Het schietspel Quake is ooit door gewone architecten ingezet om ergonomiestudies met gebouwen en ruimtes te doen. Dan werd er een draadmodel van een gebouw in het spel geladen om er vervolgens Quakemonsters doorheen te laten lopen en te kijken naar lichtval en dergelijke.” Van Rijswijk wijst erop dat er geen vliegtuig meer wordt gebouwd zonder eerst tot in het laatste detail te zijn gemodelleerd en gesimuleerd. Hetzelfde geldt voor elke nieuwe BMW en ook voor de peperdure producten van ASML en Delft Instruments. Van Rijswijk: “Het ligt toch voor de hand om ook eerst een model van een bedrijfsapplicatie te produceren, voordat een groot bedrijf een miljoenenverslindende investering in een nieuwe applicatie doet?” Van Rijswijk kan het belang van ‘serious gaming’ niet genoeg benadrukken: “Met The Games Factory bouwen wij nu een spel voor een ROC. Dat spel zou heel binnenkort wel eens de standaard kunnen zetten voor nieuwe onderwijsmethodieken.” Illustratief is ook de Intel Manager Game (http://itmg2.intel.com), waarmee Intel zijn managers opleidt. “Het is nu al zo dat sollicitanten bij Intel hun spelranking in hun cv vermelden en op basis daarvan worden geselecteerd”, aldus Van Rijswijk. Hij pleit voor een optimale kruisbestuiving tussen IT-architecten en game-bouwers: “Het zijn tenslotte IT-architecten zoals de voormalige Utrechtse hoogleraar Eric Meijer, de bedenker van de programmeertaal Haskell, die met hele goede basissoftware de >
49
need a break? BETA
Ontspannen sneeuwuitjes, van een halve dag in een Nederlandse sneeuwhal tot onvergetelijke snow breaks naar de Alpen, de Tatra and beyond.
www.priveskileraar.nl
Gezellige mountainbike instructie en tochtjes op de mooiste Nederlandse trails èn betaalbare breaks naar o.a. Saalbach en Gardameer.
www.bikegids.nl
Bel: 0615206402 Beginners en gevorderden • Flexibel • Persoonlijk • Betaalbaar • Veilig
Grensverleggend • Incentives •
Inspirerend
• Ontspannend • Teambuilding
Bedrijfsuitje • Vriendengroepen • Sfeervol primitief • Opperste luxe GPS tracks • Lekker eten • Eigen video
www.needabreak.nl
GAMING
Gaming vervolg
mogelijkheid hebben geschapen voor game-bouwers om met een beperkte rekencapaciteit toch een vloeiende computerervaring te bieden.”
Architectuur en The Sims De laatste naam die Van Rijswijk naar voren schuift is die van Will Wright. Dit onbetwiste genie is geestelijk vader van The Sims en werkt momenteel aan Spore - zie www.spore.com and say no more! Wright is het levende bewijs dat architectuur en gaming alles met elkaar te maken hebben. In 1994 zei Wright -toen alleen nog bekend als maker van het spel SimCity- in een interview met Wired Magazine: “Ik ben geïnteresseerd in het ontwerpproces en ontwerpstrategieën. In zijn boek ‘A Pattern Language’ formaliseerde de architect Christopher Alexander allerlei ruimtelijke relaties tot een grammatica voor ontwerpers. Ik werk nu ook aan een grammatica voor complexe systemen en wil mensen de tools bieden om complexe dingen te ontwerpen.” Wat blijkt? Een grensverleggend boek van een stedenbouwkundige heeft ten grondslag gelegen aan The Sims! De verkoop van dit ‘spel zonder concreet doel’ werd bij het verschijnen door de marketing manager geschat op 30.000. Het werden er 30 miljoen en daarmee is deze game de best verkochte PC-game ooit. Om nog meer belangrijke lessen van de gamewereld te kunnen leren, ging We Love IT! eens zitten voor Will Wright’s ‘Lessons from Game Design’, een razendsnelle en bij tijd en wijle hilarische lezing van Wright voor SDForum die je kunt downloaden op www.itconversations.com/shows/ detail195.html.
Intens dramatische landschap Wright benadrukt dat je altijd voor twee processors programmeert: enerzijds voor de computer en anderzijds voor de hersens van de gebruiker. Daar gebeurt
het eigenlijk allemaal en daarom is een goede balans tussen technologie en psychologie essentieel. Een game is een set problemen. Als je een game koopt, geef je eigenlijk een paar tientjes uit voor een set problemen. Daarom weten gamebouwers maar al te goed dat het oplossen van die problemen interessant en leuk moet zijn. Als gamer beweeg je in een ‘possibility space’ en de bouwer moet ervoor zorgen dat die ruimte interessant, gevarieerd en ‘open ended’ is. De gamer moet vrijheid ervaren en het gevoel hebben dat wat hij of zij doet, er ook echt toe doet. Wright verstaat als geen ander de kunst om met een zo simpel mogelijke set regels -en dus met minimaal programmeerwerk -een maximaal intens dramatisch
gamelandschap te creëren. Binnen de game moeten er routes met een steile leercurve zijn en alternatieve routes met een vlakkere leercurve die alle gebruikers uiteindelijk naar de hogere gameniveaus leiden. De gamer mag nergens tegen onzichtbare muren botsen die er alleen maar zijn omdat het programmeerbudget op was. Vervang in dit betoog ‘game’ door ‘applicatie’ of ‘kantooromgeving’ en de lessen voor IT-architecten zijn duidelijk.
Razend enthousiast In de gamewereld is het absoluut normaal om eindeloos veel ‘metrics’ te verzamelen van alles wat gamers doen en overkomt binnen de game. Op basis van die metrics worden de games dan steeds verder verbeterd. Terwijl deze anonieme gebruikersmeetwaarden voor Wright heilig zijn, gelooft hij absoluut niet in het bespreken van specificaties
met een gebruikerspanel. Het panel dat de eerste versie van The Sims mocht spelen, was vooraf op basis van de beschrijving unaniem van mening dat het suf was om op je computer een beetje zinloos met poppetjes te spelen. Na een uurtje spelen, bleken ze allemaal razend enthousiast. Wright is van mening dat applicatiebouwers op dezelfde manier enorme massa’s meetwaarden zouden kunnen genereren, om er dan bijvoorbeeld achter te komen waarom gebruikers steeds waardevolle tijd verspillen om een bepaalde knop te vinden of waarom ze een bepaalde toepassing liever vermijden. Het derde punt waar Wright sterke parallellen tussen games en applicaties ziet, is bij de conversie van casual gebruikers, naar enthousiaste gebruikers, naar fanatieke gebruikers tot aan de supergebruikers die een directe stem krijgen in de verdere ontwikkeling of die zelfs actief meebouwen. Gamebouwers houden bij het ontwerpen van de game al rekening met deze verschillende groepen en denken erover na waar, wanneer, waarom en hoe de gebruikers zullen promoveren naar een hogere categorie en ook waar, wanneer en waarom gebruikers eventueel zullen afhaken. Zouden organisaties hun IT wellicht beter kunnen stroomlijnen als de ITomgeving zou inspelen op de specifieke behoeften en eigenschappen van deze uiteenlopende groepen gebruikers?
Conclusie Het mag duidelijk zijn dat een ITarchitect die zijn neus ophaalt voor de gamewereld, zichzelf als professional op achterstand zet en tegelijk zijn gebruikers tekort doet. Organisaties zouden erbij gebaat zijn als ITarchitecten vertrouwd waren met de belangrijkste multidisciplinaire aspecten op het snijvlak van architectuur en gaming. Medewerkers die in het belang van hun bedrijf een groot deel van hun tijd in de virtuele omgeving vertoeven, hebben recht op een prettig, intuïtief en open applicatielandschap. Privé internet surfen en nutteloos geklets in de tijd van de baas nemen in dit scenario wellicht af ten faveure van de gewenste productiviteit.
51
52
WE LOVE IT
Febr u a r i 2007
Specifieke 'white lists' geven u de mogelijkheid te bepalen welke diensten u toegang wilt geven tot uw locatie.
JAVA/LOCATION BASED SERVICE
Navigatie booming business 2007 is een interessant jaar voor de Location Based Service markt gezien de huidige marktontwikkelingen. Zien we nu al dat navigatie een booming business is, het is zeer wel denkbaar dat “locatie” gebaseerde diensten een steeds grotere rol gaan spelen in het alledaagse leven. Vandaag de dag wordt er al zeer veel gebruik gemaakt van GPS en andere plaatsbepalingstechnieken om bedrijfsprocessen te ondersteunen of hulp te bieden in urgente situaties. Dit zal met de komst van Gallileo (Europese variant op GPS), Wifi en RF technieken alleen maar gaan toenemen en met de integratie van een plaatsbepalingstechniek in iedere GSM telefoon heeft iedereen per definitie de mogelijkheid om zijn of haar locatie vrij te geven en LBS diensten te gebruiken.
Misschien klinkt dit op het eerste gezicht wel erg als “big brother” maar wat te denken van een noodknop op uw telefoon zodat uw locatie snel bekend is indien u zich in een noodsituatie bevindt? Teydo, met kantoren in Bilthoven en Potomac Falls, VA in de USA, is al jaren bekend op dit terrein met haar op Oracle gebaseerde LocationXS dienst en het obiSPOT LBS platform. Innovatief op het gebied van locatie gebaseerde diensten en met haar business model, heeft Teydo meer dan 20.000 gebruikers die dagelijks meer dan 200.000 assets volgen. “Niet zozeer de techniek op zich, als wel de integratie van de vele componenten in de value chain en het toegankelijk maken van
diensten voor eindgebruikers en partners, is uniek aan deze businesscase”. In de afgelopen 5 jaar zijn de meeste GSM operators in Europe en de VS aangesloten om in realtime de locatie van een telefoon te kunnen opvragen uit het GSM netwerk. Met name in het midden en klein bedrijf, alsmede in de B2C markt, is behoefte aan een eenvoudige en betaalbare dienst voor “tracking en tracing”. Aangezien de locatie van een GSM telefoon niet erg nauwkeurig is, gemiddeld zo’n 800 meter radius, zijn er ook diverse GPS oplossingen geïntegreerd die wel op 5 meter precies de locatie weergeven. Neem daarbij de opkomst van Google Maps en Microsoft’s Virtual Earth, waarbij iedereen op satelliet beelden zeer nauwkeurig kan
J AVA / L O C AT I O N B A S E D S E R V I C E
Screendump LocationXS zien waar een persoon of asset zich bevindt, en het wordt duidelijk waarom de LBS markt in opkomst is.
Oracle IAS en DB Aangezien we hier spreken over een massa markt, momenteel worden al vele millioenen locaties per maand opgevraagd, is gekozen voor het gebruik van Oracle. Teydo gebruikt hiervoor Oracle 10g database servers voor de data-opslag en –bewerking. Dankzij de spatial componenten van de database oplossing kunnen diverse geografische berekeningen lokaal op de servers uitvoeren waarmee de performance van de applicaties gewaarborgd blijft. Gezien de vele mogelijkheden binnen de Oracle software maakt Teydo gebruik van de specialisten van Vijfhart om de huidige structuur te optimaliseren en nieuwe ontwikkelingen uitvoerig te testen en tunen. De LocationXS tracking service (Java georiënteerd) is volledig webbased en de klant hoeft derhalve geen software te downloaden of te installeren. Om deze software te hosten wordt Oracle IAS 10 gebruikt, waarbij Teydo ervoor gekozen heeft om het scala aan functionaliteit dat geboden wordt in een reeks bouwstenen op te breken in de vorm van losse instances binnen de IAS server. Hierdoor kunnen we het onderhoud vergemakkelijken en de schaalbaarheid beter beheersen. Op dit moment lopen er, in samenwerking met Vijfhart, testen met Oracle op virtuele servers, zodat in combinatie met IAS Real aplication server er een serverpark neergezet kan worden waarmee load-balancing en fail-over van de diverse software componenten en databases geautomatiseerd wordt en hiermee de uptime nog verder verbeterd kan worden (welke op dit moment al boven de 99% ligt).
LocationXS en Java Op het Java vlak loopt Teydo voorop als het gaat om innovatief gebruik.
Java/J2EE heeft zich inmiddels bewezen als de programmeeromgeving voor bedrijfskritische applicaties. Onze applicaties zijn ontwikkeld met de nadruk op stabiliteit en onderhoudbaarheid. We maken gebruik van Eclipse als ontwikkelomgeving. Eclipse is een veelgebruikte opensource IDE die erg makkelijk uit te breiden is met diverse plugins om het ontwikkelproces te vereenvoudigen. Zo maken we onder andere gebruik van de MyEclipse plugin. Alle builds worden uitgevoerd met behulp van Ant build scripts. Backend en frontend applicaties zijn gebouwd op basis van EJB, waarbij we ons houden aan het MVC concept. We maken gebruik van het Struts framework voor de view van onze web applicaties. Dit zorgt voor makkelijk uitbreidbare codebase, waarin J2EE ontwikkelaars zich snel wegwijs kunnen maken.
Locatie geörienteerde diensten, iets voor u? In 2007 zullen er veel nieuwe diensten en apparaten komen die op de een of andere wijze gebruik maken van uw locatie, indien u daar tenminste toestemming voor geeft. Met name de
privacy speelt natuurlijk een belangrijke rol, vandaar ook specifieke “white lists” die u de mogelijkheid geven te bepalen welke diensten u toegang wilt geven tot uw locatie. U kunt hierbij denken aan specifieke oplossingen om bijvoorbeeld uw caravan, motor, boot of auto te kunnen opsporen en daarmee uw verzekeringspremie aanzienlijk goedkoper wordt. Ook meer generieke oplossingen waarbij u een melding krijgt als uw kinderen de school of een anderszins “veilige zone” verlaten zijn vandaag de dag al in gebruik. Nog beter zijn diensten die u ondersteunen om bepaalde locaties in uw omgeving te zoeken zoals een restaurant of pin automaat. En als u dat wenst kan zelfs uw bonuskaart van de supermarkt gekoppeld worden aan uw locatie zodat u een melding krijgt als er specifieke, op uw profiel toegesneden, aanbiedingen zijn. Dit alles gebasseerd op uw mobiele telefoon, al dan niet uitgerust met GPS of andere plaatsbepalingstechnieken. Klinkt dit wel erg futuristisch? Kijk eens op www.locationxs.com en bepaal zelf of u bij de early adaptors wilt horen.
53
54
WE LOVE IT
Febr u a r i 2007
Cobol is de afkorting van COmmon Business Oriented Language (algemeen zakelijk georiënteerde taal).
JAVA & COBOL
Applicatie ontwikkeling nu (met Java/J2EE) en vroeger (met Cobol) De huidige Java-professionals zijn jong, wild en opgegroeid met PC’s waarop ze alleen werken. Hoe anders was dat in de tijd van Cobol. Duizenden gebruikers werkten gelijktijdig op één systeem. Dat stelde hoge eisen aan het computerwerk in die tijd. Die ervaring bracht de Cobol-generatie veel wijsheid. Tegenwoordig wordt vanaf PC’s via webservices weer op grote systemen gewerkt. Maar de Java-professionals hebben de
Cobol-leerschool niet doorlopen. In dit artikel staan we stil bij de evolutie van Cobol naar Java. En we halen het stof van de oude IT-lessen. Ter leering natuurlijk, maar ook ter ‘vermaeck’.
Wijsheid van traditionele aanpakken De Cobol standaarden zouden toch standaard onderdeel moeten zijn van cursusmateriaal. Maar Java-professionals
slaan die klassieke leerschool over. Met alle gevolgen van dien. Ze lijken te vergeten dat een project ook een keer afgerond moet worden. Iets opleveren is er nauwelijks bij, laat staan dat er uitspraak gedaan wordt over wat wanneer wordt opgeleverd. Dat wordt verbloemd door het bedenken van nieuwe methoden zoals eXtreme Programming (XP). Zo kunnen ze ook formeel zeggen dat ze echt niet weten
J AVA & C O B O L
wat ze uiteindelijk zullen opleveren. En worden de Javanen wel gedwongen zich te committeren aan een oplevering, dan gaan stress, zweet, liters cola en koffie en kilo's pizza daaraan vooraf. Dit leidt tot een ongezonde situatie! Het wordt tijd dat professionals getraind worden in de nieuwe Java ontwikkelomgevingen met de wijsheid van de traditionele aanpakken.
Makkelijk omspringen met grote gegevensbestanden En zo’n traditionele aanpak is Cobol. Cobol is de afkorting van COmmon Business Oriented Language (algemeen zakelijk georiënteerde taal). Deze programmeertaal stamt uit de jaren 60 van de vorige eeuw. Cobol is een taal die gemakkelijker te lezen, te schrijven en te onderhouden is. Het was een ware verademing voor die tijd waarin Assembly talen vrij gangbaar waren. Cobol is gericht op het makkelijk omspringen met grote gegevensbestanden in een vaak batch-georiënteerde omgeving. De jaren zeventig werden gedomineerd door de 3GL’s (met name Cobol), de jaren tachtig door de 4GL’s en de afgelopen tien jaar voerden OO-talen (zoals Java) de boventoon. Tegenwoordig heeft Cobol een slecht imago en zijn de IT-professionals van vandaag niet uitgerust met Cobol kennis. Het web is belangrijker, dus programmeren voor het web ook.
kan goed geoptimaliseerd worden. De optimizer in de database heeft alle vrijheid om de meest efficiënte oplossing te zoeken. Dit alles heeft zijn weerslag als je het wilt combineren met object technologie. Bijna alle object-relational tools vertalen een tabel naar een klasse. En dat is wat anders. Klassen hebben geen unieke sleutels maar een magische eigen identiteit die alleen met pointers (references) onderhouden kunnen worden. Ze zijn gebaseerd op inkapseling en laten liever niet alle attributes zichtbaar voor de wereld. Het is niet declaratief. Feitelijk is een klassemodel met collections een stap terug naar de oude netwerk database (Codasyl model), een toonaangevende techniek in 1981. Inkapseling keert zich tegen ons. Alle nadelen van de netwerk databases (bijvoorbeeld niet declaratief en fysieke toegangspaden die in de code sluipen) kunnen ook optreden bij klassemodellen, waardoor het ontwerp star wordt. Ook zaken zoals caching, locking en sharing moet je zelf maar via allerlei slimme patterns regelen, terwijl databases hier zulke mooie
volwassen techniek voor hebben. Het lijkt een stap terug! We gooien het oude boek van Chris Date nog maar niet weg.
Java is terug naar af De eerste Java/J2EE-specificaties dateren van 1998 (bèta). De ontwikkeling van Java startte in 1991 en werd in 1995 voor het eerst publiekelijk aangekondigd. Hoewel we nu een flink aantal jaren verder zijn, is de snelheid waarmee Java/ J2EE applicaties ontwikkeld worden nog steeds bedroevend laag. De focus ligt maar al te vaak op de techniek (b.v. raamwerken, die maar moeizaam met elkaar te koppelen zijn), in plaats van op de business. Het classificeren van business rules vindt maar al te weinig plaats. Vanwege die teleurstellende progressie, grijpen organisaties voorzichtig terug naar de 4GL ontwikkelproducten van het vorige decennium. Sommige leveranciers van deze oude bekenden melden weer omzetgroei! De komst van 4GL leverde immers een productiviteitsverbetering van minimaal een factor 3 (gemeten ten opzichte van Cobol). Met de komst van Java/J2EE lijken we deze productiviteitsverbetering weer in een klap te verliezen. >
Een mooi boek is ‘An introduction to Database Systems’ van meneer Chris Date (hij is een van de grondleggers van relationele database). Bij de jongere Java professionals niet echt bekend, maar voor de ouderen onder ons een icoon. Het relationele model is een manier om data te structureren en is ook declaratief. We geven niet aan welke stappen doorlopen moeten worden, maar alleen wat we willen weten. Het wat dus en niet het hoe. Hierdoor
Fekn`bb\cgif[lZk`m`k\`k
Objecten en relaties
kXXc:fYfc [XkXYXj\e\kn\ib (0.'$(0/'
kXXc:fYfc [XkXYXj\i\cXk`fe\\c
kXXc+>C [XkXYXj\i\cXk`fe\\c
[XkXYXj\[\ZcXiXk`\]
Xggc`ZXk`\[\ZcXiXk`\]
(0/'$(00'
(00'$)'''
kXXcAXmX Ê[XkXYXj\ËfYa\Zk\e )'''$_\[\e
Bron: VX Company; Evolutieschema
55
nnn%moZfdgXep%Zfd
Kfg*9\jk\ N\ib^\m\ij`e@K
@K$[\kXZ_\\i[\i mXe_\kaXXi
Ef)d\\jk k\mi\[\en\ibe\d\ij
@ek\id\[`X`i9\jk\
:fdglkXYc\8nXi[)''-
@ek\id\[`X`iN\ibe\d\i
N\ib^\m\ijfe[\iqf\b)''-
K\mi\[\e_\`[jfe[\iqf\b)''-
MO:FDG8EP%M8BBLE;@><E9
J AVA & C O B O L
Java & Cobol vervolg
We kunnen stellen dat Java/J2EE een goede basis is. Nu gaan we op zoek naar de oplossing voor de productiviteit. Gewoon om weer net zo snel te ontwikkelen als in de 4GL tijd.
Betere productiviteit met Oracle Java Oracle heeft breed ingezet op Java en biedt met JDeveloper een van de meest productieve Java ontwikkelomgevingen. Kenmerkend hierbij is Oracle's brede ondersteuning voor de Java standaarden, goede ondersteuning voor bewezen open source tools en libraries en uiteraard Oracle's Application Development Framework (ADF). ADF stelt ontwikkelaars in staat om productiever te ontwikkelen eventueel in combinatie met bijvoorbeeld aan JSP, JSF en EJB 3 of Toplink. Als de businesscase daarom vraagt kan gebruik worden gemaakt van Oracle JHeadstart. Door de declaratieve manier van specificeren worden verschillende ADF componenten gegenereerd, wat een enorme productiviteitswinst oplevert. Vooral voor Java-ontwikkelaars met een Oracle Designer achtergrond is Oracle Jdeveloper/ Jheadstart een perfecte combinatie van Java en het Oracle platform.
Betere productiviteit met open source De open source community heeft de afgelopen jaren een enorme bijdrage geleverd aan de de productiviteit van software ontwikkeling. Het Spring framework loopt hier voorop en levert naast meer productiviteit, ook betere kwaliteit. De behoefte aan zware enterprise oplossingen is niet altijd aanwezig. De markt vraagt steeds vaker om lightweight oplossingen. Daar biedt Spring in combinatie met Hibernate en Struts, JSF of Tapestry een uitermate geschikte oplossing voor. Sleutelwoorden bij deze oplossingen zijn Domain Driven Development en AOP (Aspect Oriented Programming). Oplossingen die uitermate goed samengaan met Agile methodes zoals XP of Scrum.
Ultieme gebruikerservaring met AJAX Je kan het een hype noemen of ‘oude wijn in nieuwe zakken’, maar één ding is zeker: AJAX zorgt voor een enorme verbetering van de gebruikerservaring. AJAX wordt dan ook toegepast in meerdere varianten: Spring in combinatie met DWR en scriptaculous, Tapestry met Dojo en natuurlijk de JSF implementaties van Apache’s MyFaces (Tomahawk en ADF Faces/Trinidad)
IT professional ben jij Java ready? Als Java professional begeef je je in een speelveld van heel veel ontwikkelingen. Uiteraard misstaat enige basiskennis van het relationele model hierbij niet (het boek van Chris Date). Maar ook professionele vaardigheden zoals plannen en organiseren worden steeds belangrijker. Verder moet je minstens een Java/J2EE omgeving van een leverancier (b.v. Oracle) goed beheersen
en ben je bekend met een behoorlijk aantal open source producten. Gelukkig worden veel open source initiatieven door de productleverancier toegejuicht en opgenomen in de verschillende Suites. Als Java professional ben je minimaal gecertificeerd SCJP en als Java Architect heb je uiteraard meerdere Sun certificaten. Kennis en ervaring van producten zoals Oracle Java/J2EE Suite en de open source gerichte MyEclipse Suite worden steeds vaker gevraagd. We zien deze producten dan ook de komende periode steeds vaker terug bij organisaties en hopelijk zijn de meeste valkuilen nu getackeld. Maikel Alderhout is technisch manager bij VX Company. VX Company is een IT-dienstverlener voor ontwikkeling, integratie, testen en beheer van bedrijfskritische infrastructuren en applicaties. Dit doen wij met Microsoft .NET, Java/J2EE, Oracle en Unix. Het bedrijf telt 250 medewerkers, bestaat sinds 1988 en is gevestigd in Baarn.
ADF architectuur. Bron VX Company.
57
58
WE LOVE IT
Febr u a r i 2007
Een Cobol programmeur heeft lang geleerd strikt procedureel te denken met als resultaat dat de stap naar OO vaak als zeer moeilijk wordt ervaren.
JAVA & COBOL
Java vaak te complex en inproductief voor Cobol programmeurs Wereldwijd zijn er tienduizenden ISV's (softwarehuizen en agenten) in zowel verticale als horizontale markten die vandaag de dag nog steeds Cobol gebruiken. Belangrijke spelers zijn hier: MicroFocus, AcuCobol, RM/Cobol van Liant en natuurlijk IBM.
J AVA & C O B O L
- Ingeval van WAN deployment veelal noodzaak tot het gebruik van Citrix of Terminal Services. - Perceptie van Cobol bij de eindklant is 'oude meuk'.
2 tot 3 keer meer kost dan in Cobol. Dit is voor bestaande Cobol software huizen een onacceptabele en niet te verkopen downgrade van hun bestaande omgeving!
Met deze karakteristieken van Cobol -nogmaals er bestaan grote verschillen per leverancier- in het achterhoofd, wordt door deze softwarehuizen naarstig gezocht naar alternatieve omgevingen voor hun Cobol applicaties. Tot enige jaren kwam men dan vooral bij de klassieke 4GL tools uit zoals Progress, Uniface, 4D, Magic, FoxPro, etc. De laatste jaren is er echter een sterke tendens naar Java en .Net gebaseerde omgevingen.
Gebruik maken van Frameworks
Van Cobol naar Java
Veel van deze bedrijven hebben al een of meer pogingen ondernomen om hun producten om te schrijven in andere taal. Redenen om dit te doen zijn -per Cobol leverancier zijn er verschillen-: - Vaak beperkte en kostbare support voor SQL databases. - Lastig te draaien in multi-tier omgevingen. - Er is veel code nodig is om grafisch te ontwikkelen. - Grafisch interface is mogelijk maar oogt oubollig (Windows 3.11). - Er is weinig tot geen support voor nieuwe architecturen en / of business modellen als SOA en SaaS. - Moeilijk om internet toepassing mee te ontwikkelen. - Deployment door afzonderlijke installatie per gebruiker als zeer kostbaar en tijdrovend wordt ervaren.
Voor softwarehuizen die de overstap vanuit Cobol naar Java maken, zijn er twee probleemgebieden: kennis en productiviteit. Het kennis probleem -dit geldt zowel voor Java als .NETbestaat weer uit een aantal deelgebieden: a. Object georiënteerd denken en programmeren. Dit onderdeel vormt in veel gevallen een onoverkomelijk probleem. Een Cobol programmeur heeft lang geleerd strikt procedureel te denken met als resultaat dat de stap naar OO vaak als zeer moeilijk wordt ervaren. b. Veel complexere taal. Java - en ook .NET - is veel uitgebreider dan Cobol en maakt het programmeren in Java een stuk lastiger. Met name als men voor J2EE kiest is dit een groot probleem en ook reden dat J2SE een sterk groeiende populariteit geniet. Het tweede probleem is productiviteit. Volgens een onderzoek uitgevoerd door Servoy blijkt dat het ontwikkelen van een gelijkwaardige toepassing (qua functionaliteit en end-user experience) in Java gemiddeld
Om productiviteit en kennis probleem te verkleinen worden vaak allerlei Java frameworks ingezet. Deze frameworks helpen in sommige gevallen de deployment eenvoudiger te maken en in andere gevallen lossen ze bepaalde deelproblemen in applicatie ontwikkeling op, zoals bijvoorbeeld het sneller maken van het ontwerpen van schermen. Probleem blijft echter dat geen van de frameworks compleet is waardoor een combinatie van frameworks gekozen moet worden om tot een oplossing te komen. Dit vereist weer veel specifieke en uitgebreide kennis waardoor men weer terug bij af is.
Java '4GLs' Bij gebrek aan een betere categorisering groepeerde Rick van der Lans in een van zijn columns van dit jaar een aantal nieuwe tool leveranciers met Java '4GL'. Van oorsprong was het doel van de 4GL's het productiever maken van programmeurs en het vereenvoudigen van software development en deployment. Een van de spelers in deze markt is het Nederlandse en internationaal actieve Servoy met zijn gelijknamige product. Servoy is een op Java gebaseerd product waarbij een programmeur routinematige handelingen niet hoeft uit te programmeren. Te denken valt aan schermdefinities, databinding en aller-hande sql statements. Tegelijkertijd, en dit is een voordeel van een op Java gebaseerde omgeving, heeft een programmeur ten alle tijde de mogelijkheid om zelf componenten in Java te programmeren. >
59
Uw applicaties naar Java in 3-12 maanden. Gegarandeerd!
Kalender integratie
GIS integratie
Ingebouwde CMS functies
u u u u u
Microsoft Office integratie
Ingebouwde Document Management functies
Web-Ajax en PDF integratie
Fixed time (3-12 maanden) Fixed cost (vanaf 50.000 euro) Internationale track-record On-site co-development en training Uw applicatie klaar voor: • • • • •
E-mail integratie: POP/IMAP/SMTP
SaaS (Software as a Service) Web-deployment (AJAX) SOA (Services-Oriented Architecture) Integratie met Microsoft .NET producten Uitgebreide e-mail- en documentmanagement functies
Kies voor het Servoy ISV programma Kijk op servoy.com/isv of bel 033 455 9877
SOA integratie (Microsoft Dynamics)
J AVA & C O B O L
Java & Cobol vervolg
Servoy is een op Java gebaseerd product waarbij een programmeur routinematige handelingen niet hoeft uit te programmeren.
Heb je functionaliteit nodig die niet in de omgeving wordt aangeboden dan is het veel werk of in sommigegevallen zelfs onmogelijk dit erbij te programmeren. Door de openheid van Servoy's Java API's bestaat dit probleem niet meer. Doordat Servoy onderdeel is van 'Java ecosysteem' is de acceptatie van producten die gebouwd worden in Servoy bij eindklanten substantieel hoger, dan bij traditionele 4GL's.
ISV Assurance Programma Servoy brengt kennis en draagt mede risico Toen Servoy 4 jaar geleden haar eerste release uitbracht bestond er direct interesse vanuit de Cobol en 4GL wereld. Kernwoorden waarom men interesse toonde: makkelijk te leren, productiviteit en de acceptatie en mogelijkheden van Java. Bij ISV's is veelal sprake van complexe producten waaraan langdurig is ontwikkeld. Het herschrijven van dit soort applicaties zo merkte Servoy dient goed voorbereid en weloverwogen te gebeuren. In overleg met een aantal ISV's is nu een programma ontwikkeld waarbij Servoy een directe bijdrage levert door
kennis, kunde en manpower onsite beschikbaar te stellen aan de ISV. Door opgedane ervaring in verschillende landen en ISV markten heeft het inzetten van Servoy manpower een vliegwiel effect op de herontwikkeling van software: complete pakketten kunnen nu 4-8 keer sneller ontwikkeld worden. Dankzij dit programma zijn al enkele ISV's met relatief complexe applicaties overgestapt op Java. Een ISV met 400,000 regels code en een applicatie met 20 manjaar ontwikkeltijd heeft zijn pakket in 4 maanden met behulp van het Servoy ISV programma volledig in Servoy herschreven. Niet alleen een-op-een herschrijven vond plaats, maar ook nieuwe functionaliteit om SaaS (Software as a Service, voorheen ook wel ASP), web-enabled, multi sql backend compatibiliteit mogelijk te maken, is toegevoegd. 1
deployment: is het bij de eindgebruiker krijgen van software. Bij klassieke 2-tier applicaties betekende dat op iedere client pc software installeren. Bij modernere omgevingen (waaronder Servoy) gebeurt dit automatisch. Bij web-browsers is het niet meer van toepassing omdat de software op de server draait.
61
62
WE LOVE IT
Febr u a r i 2007
bevindingen meegenomen worden, want ik kan wel een product opleveren op de geplande datum en het product de volgende dag weer in onderhoud nemen. Klinkt niet logisch, maar komt zeker voor.
COBOL.NL
Cobol is IT!
Cobol is een roestige sculptuur, een dinosaurus, een 2CV of wat dan ook waar deze programmeertaal tegenwoordig mee vergeleken wordt. Als we dan toch een vergelijking moeten maken zou ik Cobol willen zien als een robuuste stier, want aangezien Cobol in de ruim 40 jaar dat het bestaat al talloze malen dood verklaard is vormt het nog steeds het fundament onder de wereldwijde itinfrastructuur. Cobol heeft immers van het begin af aan zijn niche aangevoerd en 70 procent van alle in gebruik zijnde bedrijfsapplicaties draait nog steeds op Cobol. Cobol ligt gewoon aan de basis van vele vitale systemen, vooral in de financiële sector. Natuurlijk willen andere programmeertalen een markt-aandeel van Cobol afsnoepen, want we praten hier over een gigantische markt. Het ontwikkelen in Cobol (3GL-taal) kost meer functiepunten dan het ontwikkelen in een 4GL-taal, is een veel gehoord argument. Ik heb nog geen vergelijkingscijfers gezien, maar er moet dan wel onderscheid gemaakt worden tussen nieuwbouw en onderhoud. Bij nieuwbouw moeten dan ook het aantal
Ook wordt Cobol nogal eens met deegwaren, spaghetti, vergeleken. Ik ben het, behalve op mijn bord, in al die jaren nog niet zo vaak tegen gekomen. Nu moet ik er wel bij zeggen dat mijn leeftijd aanzienlijk onder de gemiddelde leeftijd van een Cobollaar ligt. Sommige programma’s zijn gewoon al tientallen jaren oud en door al het onderhoud is er van alles aangeknoopt, waardoor de structuur ver te zoeken is. Ook hebben deze programma’s de tijd van dure opslagcapaciteit nog meegemaakt, waardoor sommige velden oneigenlijk gebruikt werden. Waarschijnlijk zijn er in die tientallen jaren al diverse pogingen geweest over te stappen naar een andere programmeertaal, waardoor het onderhoud aan de Cobol programma’s op de quick and dirty manier zijn gebeurd en vervolgens slecht gedocumenteerd zijn. Men zou deze programma’s ook gewoon weer eens op de tekentafel kunnen leggen. De Cobollaars zijn aan het vergrijzen en zijn bijna niet meer te vinden, IBM gaat zelfs de komende tijd 100 miljoen investeren om het mainframe makkelijker te maken. Aan de tarieven voor een Cobollaar kan ik niet zien dat er een dreigend tekort aan zit te komen. Dat hoeft niet alles te zeggen, want veel bedrijven en instellingen hebben in de slechte IT-tijd raamcontracten met leve-ranciers afgesloten die een jarenlange looptijd hebben. De daar vastgelegde tarieven geven dus waarschijnlijk niet de huidige marktsituatie weer. Wel zie ik hier en daar in de markt dat er weer Cobol specialisten worden opgeleid, maar aangezien Cobol een stoffig en saai image heeft vraag ik me af of er veel animo voor is. Er moet dus iets veranderen aan het image van Cobol, want de public relations zijn erg matig. Het oprichten van een Cobol portaal zou een begin kunnen zijn en IBM gaat niet alleen het mainframe makkelijker maken, maar ook fraaier. Dit laatste is ook wel nodig, kan me voorstellen dat het jongeren niet echt aantrekt. Cobol is erg stabiel, kan uitstekend omgaan met grote volumes en met de modernste technieken, kan draaien op alle platformen, is zelfdocumenterend en snel te leren. Bedrijven die toch willen migreren naar een andere taal moeten zich goed beseffen dat ze een aanmerkelijk risico nemen, want veel bedrijfskritische applicaties zijn in Cobol geschreven. Cobol is erg sterk in het verwerken van grote volumes, de vraag is of 4GL-talen zulke grote bulkprocessen wel aankunnen binnen de gewenste tijd. Als performance geen issue is, dan zit er aan die kant geen gevaar. Ik kan me zo voorstellen dat in de toekomst de bulkverwerking in de batch ’s nachts nog met Cobol zal gebeuren en de voorkant steeds meer zal worden vervangen door 4GL-talen of pakketten, of krijgt Cobol toch nog een krachtige concurrent in de toekomst?
U
vraagt wij draaien! Voor detachering surf naar WWW.VIJFHART.NL/DETACHERING of bel +31 (0) 88 - 542 78 48
64
WE LOVE IT
Febr u a r i 2007
Wijzigingen vanuit de wettelijke richtlijnen vormen reeds decennia een werkvoorraad voor informatici
COBOL
Back to the Future 2007! Zeker nog 10 jaar werk voor de Cobol Programmeur.
COBOL
Dit aantal groeit nog steeds jaarlijks als gevolg van de introductie van nieuwe functionaliteit. Met name de back office processen van veel financiële instellingen worden nog steeds ondersteund door COBOL programma’s. Grote Nederlandse banken en verzekeringsmaatschappijen gebruiken bijvoorbeeld nog COBOL programmatuur voor dagelijkse productiebatches die o.a. voor onze miljoenen bankafschriften en polissen zorgen. Eén grote verzekeraar heeft al gauw 1500 in COBOL geschreven programma’s en deelsystemen die ook nog beheerd en onderhouden moeten worden.
Wanneer COBOL genoemd wordt, denk je niet direct aan de meest spannende ICT oplossingen. Waar je echter niet snel bij stil staat is het feit dat veel programmatuur die de bedrijfskritische processen ondersteunt bij zowel overheidsinstellingen als in het bedrijfsleven, nog steeds COBOL programmatuur betreft, die nu al tientallen jaren dienst doet. Naar een voorzichtige schatting zijn er alleen al in Nederland nu nog duizenden COBOL applicaties die bestaan uit ruim 1 miljard COBOL coderegels.
COBOL staat voor Common Business Oriented Language en is in de jaren ’60 ontwikkeld. In de loop der decennia is de taal verder uitgebreid en aangepast, telkens vastgelegd in nieuwe standaards, zoals Cobol68 en Cobol-74. Na Cobol 85 is in 2002 zelfs de object georienteerde Cobol-2000 versie geïntroduceerd. Daarnaast is ook COBOL .Net beschikbaar gekomen, waarbij op eenvoudige wijze user interfaces gebouwd kunnen worden in de modernste Microsoft omgevingen. Desondanks wordt COBOL in de wandelgangen van de ICT doorgaans als verouderd beschouwd en derhalve nauwelijks meer onderwezen op de Informatica opleidingen. Maar is dit uitgangspunt terecht ? Er zijn in de afgelopen jaren enkele pieken geweest in de vraag naar COBOL expertise: voor het millennium probleem en voor de introductie van de Euro. Tijdens het oplossen van de genoemde kwesties zijn vele programma’s aangepast die toen reeds tientallen jaren draaiden. Veel programmatuur stamt nog uit de 70’er en 80’er jaren waarbij tijdens de ontwikkeling ervan niet
gedacht werd dat die nog tientallen jaren in productie zouden zijn en in de loop van de tijd zijn dan ook veel ‘tijdelijke, quick and dirty’ oplossingen bedacht en zogenaamde ‘spaghetti’ programmatuur geschreven met vaak een onlogische structuur. Daarbij stond de ICT toen nog in de kinder-schoenen waarbij er nog geen kwaliteitssystemen gehanteerd werden en er geen eenduidige functionele en/of technische documentatie bestond. Ook recente veranderingen zoals de introductie van 10-cijferige bankrekeningnummers, waarop de zogenaamde 11-proef van toepassing is, zorgde voor aanpassingen waarbij wederom COBOL expertise nodig was. Je zou je af kunnen vragen waarom deze ‘oude’ COBOL programmatuur eigenlijk nog steeds in productie is en niet al lang vervangen door moderne programmeertalen op nieuwe platforms? In het kort gezegd was hier geen noodzaak toe: Alles draaide in principe en de bugs die er waren zijn in de loop van de tijd verdwenen. Op de welbekende, betrouwbare mainframes draait deze programmatuur snel en is de 3GL code in principe transparant en leesbaar. Bovendien betreffen het, zoals eerder gezegd, inhoudelijk complexe informatiesystemen, die niet zo snel te vervangen zijn door maatwerk of een standaard pakket. Eventuele aanpassingen moeten vaak met de grootst mogelijke voorzichtigheid aangebracht worden omdat functionaliteit vaak over meerdere plaatsen binnen de systemen verdeeld was. Voorts wordt bij deze organisaties vaak het uitgangspunt gehanteerd dat je een systeem dat goed, betrouwbaar en snel draait niet hoeft te vervangen. De volgende ICT kwesties zijn zeer actueel en hebben gevolgen voor veel COBOL legacy systemen: >>
65
Al ruim 10 jaar uw ICT partner in : - Software - Detachering - Werving en Selectie - Projecten
MFSW Software & Detachering • Marconistraat 4 • 2809 PD Gouda • Tel: 0182-541541 • www.mfsw.nl
COBOL
Cobol vervolg
1) Wettelijke wijzigingen, w.o. de International Financial Reporting Standards (IFRS). Wijzigingen vanuit de wettelijke richtlijnen vormen reeds decennia een werkvoorraad voor informatici. De introductie van de nieuwe IFRS (International Financial Reporting Standards) richtlijnen houdt momenteel financieel Nederland bezig, evenals de wet Sarbanes-Oxley (SOX). De nieuwe, scherpere IFRS richtlijnen hebben op alle beursgenoteerde bedrijven invloed, waarbij de financiële systemen ingrijpend dienen te worden aangepast. Daarna zullen deze richtlijnen gaan gelden voor alle overige publicatieplichtige ondernemingen. In tegenstelling tot het millenniumprobleem en de introductie van de EURO zal er op functioneel vlak veel veranderen in de informatiesystemen van financiële dienstverleners zoals banken en verzekeringsmaatschappijen. Een van de voorbeelden van de IFRS richtlijnen is dat de waarde van de assets een zogenaamde ‘fair value’ moet gaan weergeven, waarbij de waardefluctuaties van o.a. effectenportefeuilles en onroerend goed over de verliesen winstrekening zullen gaan lopen in tegenstelling tot de huidige situatie waarbij dit jaarlijks op de balans geactiveerd dan wel gepassiveerd mag worden. De impact van de vorige zin alleen al heeft de komende jaren in Nederland honderdduizenden uren werk tot gevolg voor managers, analisten, accountants, programmeurs, testers en ontwerpers, waarbij de legacy systemen zullen moeten worden aangepast.
Hetzelfde geldt voor wettelijke wijzigingen op de pensioenenmarkt, waarbij o.a. de bevindingen van de commissie Witteveen en de levensloopregeling worden geïmplementeerd. Recentelijk is tevens
de herziening van het Nederlandse ziekteverzekeringsstelsel afgerond inzake de basisverzekering, welke ook veel werk heeft opgeleverd. 2) De opmars van ERP systemen. De bekendste ERP systemen zijn: SAP, Oracle en JD Edwards. In omvangrijke implementatietrajecten wordt deze standaardsoftware geïmplementeerd bij grotere organisaties. Waarom winnen deze ERP systemen eigenlijk marktterrein ? Het antwoord ligt in de eerste plaats in het feit dat de genoemde ERP systemen een volwassenheidsfase hebben bereikt waarbij, in tegenstelling tot de eerst geintrodu-ceerde versies, tegenwoordig 75 tot 80 % van de vereiste functionaliteit gedekt kan worden door de genoemde ERP systemen. Daarnaast speelt het kostenoogpunt mee: hoewel deze pakketten en de implementatie ervan kostbaar zijn, is maatwerksoftware doorgaans duurder indien je de totale kosten (total cost of ownership) in ogenschouw neemt over de economische levensduur. Overigens blijkt de resterende 20-25% van de functionaliteit, die specifiek op de betreffende organisatie van toepassing is, opgelost te moeten worden middels maatwerk omdat dit niet of niet volledig door de gekozen ERP oplossing kan worden opgelost. Het gaat hierbij specifiek om de complexe bedrijfslogica die uitsluitend op de betreffende organisatie van toepassing is. Ook hierbij dienen vele koppelingen (interfaces) tussen front office en back office legacy systemen te worden ontworpen, ontwikkeld en/of aangepast. ERP systemen zouden de reeds lang bestaande legacy systemen kunnen vervangen, of althans grote delen ervan. Dit zou opgaan voor met name front end oplossingen.
Invoer- en raadpleegschermen laten zich relatief eenvoudig standaardiseren en parametriseren en middels generatoren worden de Graphical User Interfaces opgebouwd. Ook de eenvoudige tot redelijk complexe validaties en standaard overzichten kunnen binnen de ERP implementaties gerealiseerd worden. Voor de back end functionaliteit echter, waarin bijvoorbeeld complexe batchverwerkingen plaatsvinden, is dit echter veel minder snel te doen. Hoewel ERP leveranciers tegenwoordig veel branche specifieke oplossingen bieden, weerhouden de complexiteit van het geheel en de grote risico’s van een volledige ERP implementatie veel potentiële klanten hiertoe over te gaan. Klaas Kok van Corus onderschrijft dat de laatste jaren deelfunctionaliteiten zijn ondergebracht in SAP, meer stelt tevens dat er daarnaast veel aanvullende functionaliteit is ontwikkeld in COBOL. 3) Web-ontsluiting, extranet omgevingen en integratie. De ontwikkeling van de afgelopen jaren op internet gebied zijn snel gegaan en hadden in de beginfase geen impact op de back office systemen. In die periode, midden jaren negentig, volstond het voor een bedrijf wanneer het een eigen website had met voornamelijk een infor-merende functionaliteit. Gaandeweg is dit uitgegroeid tot een wezenlijk voorportaal van elk bedrijf dat naast communicatiemedium tevens een wervende en/of commerciële functie heeft voor potentiële klanten, sollicitanten en overige relaties. Daarbij is het extranet portal niet meer weg te denken, waarbij klanten en andere relaties direct in kunnen loggen en hun mutaties door kunnen geven. Extranet portals dienen tevens gekoppeld te worden met de back office legacy systemen door middel van interfaces. >
67
68
WE LOVE IT
Febr u a r i 2007
Cobol vervolg
De aanpassingen die uit voorgenoemde punten voortvloeien, komen boven op het reguliere onderhoud en de reeds bestaande interfacing van en naar COBOL systemen en zullen in de nabije toekomst een forse werkvoorraad gaan vormen.
Gevolgen De gevolgen van de genoemde ontwikkelingen zijn in het kort: Informatiesystemen worden complexer, behoefte aan flexibiliteit wordt hoger. Dit lijkt wellicht een open deur: in de afgelopen decennia zijn informatiesystemen alleen maar complexer geworden en niet eenvoudiger. Ook ICT-organisaties lijken te leren van het verleden, waarin men de wijzigingen in bijvoorbeeld wet- en regelgeving moet implementeren. Ook wordt een steeds kortere time to market verwacht door de klanten van de betrokken organisaties. De genoemde ontwikkelingen hebben gemeen dat ze de behoefte aan flexibele informatiesystemen vergroten, waarbij je van tevoren niet weet wat er exact gaat veranderen, maar wel dat er gaat veranderen. Deze behoefte wordt doorgaans verwerkt in een integraal informatieplan waarin het informatiebeleid voor de komende jaren wordt verwoord. Hierbij zouden twee randvoorwaarden een grote rol moeten spelen : 1) Interoperabiliteit , dit wil zeggen: modulaire opzet van informatiesystemen, waarbij de afzonderlijke bouwstenen afzonderlijk onderhoudbaar dan wel vervangbaar zijn. 2) de mogelijkheid tot ontkoppeling van de deelsystemen. Dit vereist een andere manier van denken, ontwerpen en programmeren dan voorheen. Waarom dat met name voor COBOL systemen veel gevolgen heeft, komt omdat deze in feite uit
De functionele en technische kennisborging omtrent COBOL systemen is een groot attentiepunt.
het stenen ICT-tijdperk afkomstig zijn. De toenmalige eisen die aan deze systemen werden gesteld, liggen op een geheel ander vlak dan tegenwoordig. Een voorbeeld: aan een slimme, flexibele architectuur werd nauwelijks aandacht besteed, maar aan gebruikte geheugen- en schijfruimte des te meer, waarbij elke byte telde. Tegenwoordig zijn de kosten van opslagmedia en processors een fractie van toen en worden dus gemakkelijker ‘bijgeprikt’. Daarnaast stond de systeem-ontwikkeling in feite nog in de kinderschoenen en was die nog volop aan het evolueren vanuit het pons-kaartentijdperk. De programmeur die in het
verleden uitsluitend met coderen bezig was, moet nu veel meer in architectuurvraagstukken thuis zijn, zoals Service Oriented Architecture (SOA), concepten kunnen interpreteren en materiekennis bezitten, wil hij een toegevoegde waarde in het systeemontwikkelingsproces kunnen leveren. Zoals eerder genoemd is adaptief en correc-tief onderhoud uit het verleden bij COBOL systemen vaak ad-hoc opgelost zonder deugdelijke documentatie, zodat het ook in dit opzicht gewoonweg complexer wordt. 1
Een duidelijk herkenbaar voorbeeld vormen inter-
faces van en naar het GBA of financiële pakketten.
COBOL
core-business wordt ondersteund op een centraal mainframe; uitval betekent altijd kostbaar productiviteitsverlies. Werkelijk alle transacties bij financiële instellingen worden tegenwoordig in een informatiesysteem vastgelegd en bij een eventuele productieverstoring ligt in feite het hele bedrijf ‘plat’.
Hogere ICT kosten.
Grotere afhankelijkheid van informatiesystemen. Samenhangend met het vorige punt kan gesteld worden dat de informatiesystemen steeds bedrijfskritischer worden, aangezien steeds meer bedrijfsprocessen door de informatiesystemen worden ondersteund. Tegenwoordig zien steeds meer grote organisaties de noodzaak voor een deugdelijk risk management en wordt in het contingency plan veel aandacht besteed aan vooral betrouwbaarheid, beheersbaarheid, continuïteit en beveiliging van hun ICT platforms. Waarom dit specifiek voor de COBOL systemen van toepassing is, komt omdat die voornamelijk in financiële omgevingen draaien waarin direct de
Dat het implementeren van de bovengenoemde kwesties veel tijd, inspanningen en (dus) veel geld gaan kosten behoeft geen betoog. Hoeveel dit exact gaat kosten, verschilt nogal per organisatie. Opvallend is dat veel organisaties dit niet eens grofweg in kunnen schatten, omdat zij simpelweg nog niet weten wat voor (wets)wijzigingen op hun af zal komen in de komende jaren. Middels impact analyses zal steeds bepaald moeten worden wat er gewijzigd moet worden. COBOL systemen draaien veelal op mainframes; platforms die in vergelijking tot andere hardware alternatieven niet echt goedkoop zijn. Aanpassingen in hard- en software zullen voor COBOL systemen derhalve doorgaans duurder uitpakken dan andere, modernere systemen, mede omdat er geen case-tools en codegeneratoren beschikbaar zijn , zoals bij 4GL systemen. De betrokken organisaties hebben geen keus bij wetswijzigingen: ze moeten wel blijven investeren in de informatiesystemen. De huidige technologische vooruitgang op het gebied van webontsluiting wordt bij commerciële organisaties als een push factor beschouwd, mede omdat zij de concurrentie hiermee een stap voor kunnen zijn (of blijven).
Uitstervende COBOL expertise: risico of kans ? De echte COBOL programmeur ‘sterft’ uit en degenen die de bestaande programmatuur geschreven hebben, hebben zich tijdens de dalen in vraag naar COBOL expertise laten omscholen of gaan zo langzamerhand met pensioen. Hierbij komt nog dat het dalende aan-tal startende, programmerende ICT’ers liever voor iets sexier kiest als .NET, Java, Oracle of SAP.
Ook de in de afgelopen decennia geschreven spaghetti programmatuur dient echter nog te worden onderhouden, waarbij het uitgangspunt blijft dat deze bedrijfskritische programmatuur betrouwbaar moet blijven draaien. Volgens ingewijden vormt dit een wezenlijk risico, omdat de continuïteit in het beheer hiermee gevaar kan komen. De functionele en technische kennisborging omtrent COBOL systemen is derhalve een groot attentiepunt. "Ronald Vervenne, Unitmanager Mainframe Services bij Sogeti onderschrijft de stelling dat er de komende jaren nog veel werk ligt in het COBOL vak: 'Wij zien dat grote klanten voor de continuïteit en beschikbaarheid kiezen van het Mainframe in combinatie met COBOL. Daarom investeren wij in kennis en leiden wij tevens nieuwe COBOL programmeurs op om aan de vraag te kunnen blijven voldoen'." Nog steeds is de combinatie van COBOL op het Mainframe bijzonder snel, robuust en betrouwbaar. Daarnaast is de code zeer goed leesbaar, wat de onderhoudbaarheid ten goede komt. De hierboven beschreven ontwikkelingen geven aan dat er in de COBOL wereld, ondanks het wellicht stoffige imago, nog steeds veel te doen is en dat zal in de komende jaren naar verwachting nog wel zo blijven. Dit kan ook een kans blijken voor al de IT’ers die op dit moment zoekende zijn naar een nieuwe uitdaging. Reacties op dit artikel ? Ga naar http://www.mfsw.nl en geef je opmerking of reactie! Een e-mailbericht sturen kan natuurlijk ook naar: Mailto:
[email protected] Randolph Nuis is Business Development Manager bij MFSW Software en Detachering.
69
70
WE LOVE IT
Febr u a r i 2007
VOLGENDE UITGAVE:
Colofon We Love IT is een uitgave powered by 5hart
Hoofdthema: Business Intelligence
Hét magazine voor en door Database gebruikers en Ontwikkelaars
Oplage 30.000 exemplaren
Redactie MSFW, Cobol.nl, Ordina, Game Entertainment Europe, Teydo, Unisys, Hinttech, Marko Bikker, Marco Marcellis, Rene de Jong, Quest Software, Sun Microsystems, Finalist IT, Oracle, Carthago, VX Company, Servoy, freewriter en Tom van Luijk.
Contact We Love IT Arnhemsestraatweg 33 6881 ND Velp 026 - 3529336 www.weloveit.nl
[email protected]
Vormgeving & PrePress Van der Velden Mediaproducties b.v. Brinkeweg 33 7108 AJ Winterswijk 0543 - 476 476
[email protected]
Adverteerders index Belastingdienst ICT Brooke hospital for Animals Carthago Finalist IT Hinttech Oracle Quest Software Servoy Sun Microsystems Vijfhart Vijfhart DBA diensten VX Company www.bikegids.nl www.priveskileraar.nl
Subthema's: TOAD & SOA
Uw artikel in We Love IT? We Love IT ontvangt graag uw artikelen. Bijvoorbeeld op het gebied van: • • • • •
Applicatieontwikkeling Business Intelligence Databases IT Architectuur Et cetera
Voorbeelden zijn: • • • • • • • • •
Klantcase Implementatie project Interview Uw visie Innoverende cases Onderzoeksresultaten Column Evenement verslag Cartoon/strip
Voor meer informatie over We Love IT ga naar:
www.weloveit.nl.
Voor een GRATIS Abonnement surf naar WWW.WELOVEIT.NL of bel +31 (0) 26 - 352 93 36
“Ons hart staat voor passie, onze passie is Oracle technologie!”
P
SSIE VIJFHART DBA-diensten
“Wij zoeken gepassioneerde Oracle DBA’s. Ben jij Oracle DBA, of wil je dat worden?” Ga naar:
WWW.DBA.NL/PASSIE