Home
Over System iMagazineAS/400 linksSearchContact
Vorige
Remain

Hybride: een nauwe vermenging van ongelijksoortige zaken

In de context van een IBM Power System (voorheen System i, eServer iSeries en daarvoor AS/400) waarborgt een architectuur het naadloos samengaan van een Power System met een of meerdere webapplicaties. De webapplicaties kunnen worden geïnstalleerd in WebSphere. WebSphere kan daarbij draaien op een Power System (wat het beheer vereenvoudigt) of op een Wintel-server. De webapplicatie (in de vorm van een warfile) die in een webserver draait, noemt men J2EE.

door J.J.M. Coenen

Volwassen
Door middel van de JTOpen databasedriver kan in Java de System i-database worden gebruikt. Om alleen de relationele database te gebruiken (die overigens heel volwassen is en volledig SQL enabled is), is zonde van de rest van de Power System. De legacy-applicaties (RPG of CoolGen) kennen al jaren een uitgebreide API (Application Program Interface)- en UPI (User Program Interface)-structuur om met andere (legacy) applicaties gegevens uit te wisselen. Juist de API’s zijn zeer goed via PCML, Program Call Markup Language herbruikbaar in een Java (web)omgeving. De eerder genoemde JTOpen Toolkit ondersteunt (onder andere) program calls en command calls. Zo is het dus mogelijk om (batch) programma’s aan te roepen en commando’s af te vuren, zoals SBMJOB. Op deze manier kunnen Java-, CL- en RPG-programma’s vanuit de Java-webapplicatie in een batchjob worden uitgevoerd, eventueel zelfs op een gepland tijdstip.

Gebruik
Het workmanagement van de System i wordt ook zo gebruikt: jobs in een jobqueue worden verbonden aan een batchsubsysteem. Inclusief een boodschap (message) dat de job (ab)normaal afgelopen is en inclusief een spooled file met de Java standard of error output. De JTOpen Toolkit kan jobs, messages en spooled files ophalen en de Java-webapplicatie kan deze aan de gebruiker tonen. Ook het aanmaken van rapporten in CSV- of PDF-formaat kan in batch gebeuren door het Java-commando (RUNJVA of gewoon JAVA) af te vuren. Dit vereist wel dat de Java-code – in de vorm van een warfile – in de webapplicatie nogmaals moet worden geïnstalleerd (als ware het een webapplicatie). Ditmaal niet in WebSphere, maar als files op de System i in het IFS, het Integrated File System. Dit kan zeer eenvoudig met – jawel – de JTOpen Toolkit.

De warfile van de webapplicatie kan eenvoudig worden uitgepakt met het jar-commando in de QSH (een Unix shell op de System i). Het Java-commando wordt dan gesubmit, inclusief het classpath (WEB-INF/classes en WEB-INF lib) dat verwijst naar de ‘dummy’ webapplicatie in het IFS. De rapporten zelf (CSV- of PDF-files) kunnen door de Java-programmatuur in het IFS gezet worden, bijvoorbeeld in /home/naam van de context van de webapplicatie.

IFS
De JTOpen toolkit kan files uit het IFS ophalen en de Java-webapplicatie kan deze aan de gebruiker tonen. De gebruiker downloadt de files en kan deze vervolgens printen, e-mailen (PDF) of bewerken en analyseren (CSV). Op deze manier wordt dus ook het IFS van de System i gebruikt. Door de (zware) batchtaken uit te besteden aan de System i wordt de echte webapplicatie ontzien. Deze heeft het al zwaar genoeg met de UI-taken. Zoekschermen in de webapplicatie, inclusief zoekfilters, kunnen paginagevuld worden gemaakt door (nieuwe) SQL RPG-programma’s te schrijven op de System i. De SQLRPG geeft dan in een aanroep precies genoeg records (die aan het zoekfilter voldoen) terug om één pagina te tonen. De SQLRPG gebruikt zelf weer API’s van de legacy-programmatuur. CRUD-functies en zoekschermen op de SQL-database zijn eenvoudig te bouwen met JDA, de Java Development Accelerator van IBS.

Browservriendelijk
JDA is puur Java, dus er zijn geen complexe XML-configuratiebestanden (of dergelijke) nodig. Zowel de UI (User Interface) kan worden gebouwd en onderhouden met JDA. Met de AJAX-technologie leidt dit tot een browservriendelijke oplossing die het netwerk ontziet. Ook de business logic die veelvuldig de database zal (moeten) benaderen, wordt door JDA vereenvoudigd. In puur Java worden (onzichtbaar voor de ontwikkelaar) de meest complexe SQL-opdrachten opgebouwd. Het ontwerp van de database gebeurt met JDA op een intuïtieve manier, compleet met primary, foreign keys en relaties (owning of referring). Met IBM Rational Developer for System i (voorheen WDSC for System i) kunnen in één IDE zowel de Java-code als de (SQL) RPG-programma’s worden gebouwd, onderhouden en gedebugged.

Conclusie: op deze manier kan er steeds worden gekozen waar de programmatuur (hoort) te draaien: op de server (System i) óf in de (Java) webapplicatie. En dat met gebruikmaking van de bestaande legacy expertise en de (soms schaarse) Java-kennis. Kortom: Best of both worlds!

Meer informatie:
IBM Toolbox for Java: http://jt400.sourceforge.net/
Hybride: http://nl.wikipedia.org/wiki/Hybride
Integrated file system: http://tinyurl.com/4sp9f8
Program Call Markup Language: http://tinyurl.com/3nrunf
IBS Java Development Accelerator: http://tinyurl.com/4e3n67

Ing. J.J.M. Coenen werkt als Software Research Engineer Financial Solutions bij IBS Nederland. U kunt hem bereiken via jos.coenen@ibs.nl.

 

An unknown error occurred:
DBError
../../../../db/reactie.db
Database file could not be found or opened

© Hilarius Media