ClustrMaps

The roadrunner is back as never before! See also: My homepage or my very obsolete site
If by any means entries in my blog are considered to be harmful or damaging, please let me know (add comment) or just mail me. In this (unhopely) case I will remove or change the contents.

Friday, May 30, 2008

Hybride

http://en.wikipedia.org/wiki/Hybrid

Zie ook de vorige blog-entry:
http://joscoenen.blogspot.com/2008/05/rpg-versus-java-op-iseries-of-is-het.html
De Java omgeving is een webapplicatie (in de vorm van een warfile) die in een webserver (WebSphere of TomCat) draait.
Dit noemt men J2EE.

Inderdaad het is mogelijk om met Java en JTOpen database driver,
de iSeries database te gebruiken.
Maar om alleen de relationele database te gebruiken (die overigens heel volwassen is en volledig SQL enabled is) is zonde van de rest van de iSeries.

De legacy applicaties (RPG of CoolGen) kennen al jaren een uitgebreide API en UPI structuur om met andere (legacy) applicaties gegevens uit te wisselen.
Juist de API's zijn zeer goed via PCML aanroepen herbruikbaar in een Java (web) omgeving.
De eerder genoemde JTOpen AS400 toolkit ondersteunt program en command calls.

Zo is het dus mogelijk om (batch) programma's aan te roepen.
En ook commando's af te vuren, zoals SBMJOB.
Zo kunnen CL en RPG programma's vanuit de Java webapplicatie in een batchjob uitgevoerd worden, eventueel zelfs op een gepland tijdstip.

Zo wordt het workmanagement van de iSeries ook gebruikt:
jobs in een jobqueue verbonden aan een batchsubsysteem.
Inclusief een boodschap(message) dat de job (ab)normaal afgelopen is.
Inclusief een spooledfile met de Java standard of error output.
De JTOpen AS400 toolkit kan jobs, messages en spooledfiles 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.
Dat vereist wel dat de Java code (in de vorm van een warfile) in de webapplicatie, nogmaals gedeployed moet worden.
Ditmaal niet in WebSphere maar als filesystem in het IFS, het Integrated File System.

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]
De JTOpen AS400 toolkit kan files uit het IFS ophalen en de Java webapplicatie kan deze aan de gebruiker tonen, die deze files vervolgens downloadt en kan printen of e-mailen (PDF) of bewerken en analyseren (CSV).
Op deze manier wordt dus ook het IFS van de iSeries gebruikt.

En door de (zware) batchtaken uit te besteden aan de iSeries wordt de echte webapplicatie ontzien. Deze heeft het al zwaar genoeg met de UI taken.
Door (nieuwe) SQLRPG programma's te schrijven op de iSeries, kunnen zoekschermen in de webapplicatie pagina-gevuld gemaakt worden, inclusief zoekfilters.
De SQLRPG geeft dan in een aanroep precies genoeg records (die aan het zoekfilter voldoen) terug om 1 pagina te tonen.

Met WDSC for iSeries kunnen in een (1) IDE zowel de Java code als de (SQL)RPG's gedebugged worden.
Zo kan er steeds gekozen worden waar de programmatuur (hoort) te draaien:
op de server (iSeries) of in de (Java) webapplicatie.
En dat met gebruikmaking van de bestaande legacy expertise en de (schaarse) Java kennis.

Kortom: Best of Both Worlds!
Zie ook: http://www.systemimagazine.nl/html/archief/2008/okt/2611.html

1 comment:

D'niker said...

Wauw, wat een fantastisch verhaal. Maar alleen als je de achtergrond kent, is het denk ik te volgen.

Blog Archive