java auf system z - amazon s3 · (db2-z/os) cobol upro z/os java upro cobol upro java upro ims - db...

41
Java auf System z Überblick Infrastruktur, Betrieb und Erfahrungen

Upload: others

Post on 17-Apr-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Java auf System z

Überblick Infrastruktur, Betrieb und Erfahrungen

Page 2: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Ziel dieses Vortrags

§ Technische Darstellung „Warum untersuchen wir Java am Host“ – Bei Java pure – Bei Cobol/Java Mix unter IMS

§ Überblick der infrastrukturellen Anpassungen/Erweiterungen unserer Betriebslandschaft– Für Java Batch Jobs– Für den Betrieb von „Java enabled IMS-Online Regions“

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 2 Copyright 2010 © Fiducia IT AG

§ Einblick in die Technologie aus Entwicklersicht anhand unserer Prototypen – ein Java-pure-Job am Host,– eine IMS-Transaktion im Java-Cobol MixedMode

§ Ausblick über die weitere Vorgehensweise

Page 3: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Agenda

§ Motivation Java und Java/Cobol am Host aus Techniksicht

§ Erweiterungen für Java-Batch

§ Erweiterungen für IMS-Java

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 3 Copyright 2010 © Fiducia IT AG

§ Erweiterungen für IMS-Java

§ IMS-Online: Java- und Cobol-Zusammenspiel aus Entwicklersicht

§ Fazit/Zusammenfassung

§ Batch: Ein JZOS-Beispiel aus Entwicklersicht

Page 4: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

„Warum setzen wir auf „Java am Host“ aus Techniksicht?

§ Der aktuelle Stand der Entwicklung von Java unter z/OS hat die Fiducia IT AG dazu veranlasst zu prüfen, ob diese Technologie für die Fiducia Vorteile bringt– Die neue IBM-Hardware bietet die notwendigen Ressourcen für den parallelen Betrieb

einer großen Anzahl von Java-Anwendungen– Ein Großteil der Java-Workload kann auf zIIPs ausgelagert werden – damit können

Java-Anwendungen MIPS-verträglich betrieben werden– Die Verarbeitung von Java und Cobol in derselben Region ist möglich. Programme

beider Sprachen können sich gegenseitig aufrufen und in einer Transaktion laufen

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 4 Copyright 2010 © Fiducia IT AG

beider Sprachen können sich gegenseitig aufrufen und in einer Transaktion laufen– Der technologische Reifegrad der dazu notwendigen Software (JVM, Debugger,

Profiling) ist inzwischen gut

Page 5: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Von der Verwendung von Java unter z/OS erwartet man für die Fiducia IT AG Vorteile in Entwicklung und Betrieb

§ Plattformsprünge in Verarbeitungen (Verarbeitung mit dezentralen Java-Batches und in Cobol implementierten Verarbeitungsschritten am Host) können vermieden werden

§ Durch die Ausführung von Java-Batchläufen auf dem Host können die Batchläufe "nahe" an die Daten gebracht werden

§ Plattformunabhängigkeit: Batchläufe können von dezentral nach zentral und umgekehrt verlagert werden

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 5 Copyright 2010 © Fiducia IT AG

§ In Java entwickelte Fremdanwendungen können unter z/OS deployed werden (Beispiel: ERK)

§ Da Programme der beiden Sprachen untereinander aufrufbar sind, können COBOL-Programme sukzessive durch Java-Programme ersetzt werden (ohne Big-Bang)

§ In Java entwickelte Businesslogik kann zentral und dezentral eingesetzt werden. Die Doppelentwicklung von Businesslogik in Java und Cobol entfällt

§ Mitttels einer technologisch modernen Sprache ist es nun möglich, Anwendungen am Host zu erstellen, für die auch ausreichend Programmierer verfügbar sind

Page 6: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Mögliche Verwendung Java/Z im Batch Java Jobs können am Host ausgeführt werden

Sche

dule

rO

PC Batchjob …

§ Pure Java Jobs (JJs) – Können sowohl am Host als auch am

Server produziert werden – Plattformspezifika werden im Framework

gekapselt – Technische Basis auf z/OS: JZOS– „Compute Grid“ oder Alternativen evtl.

ergänzend für kleine Jobs

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 6 Copyright 2010 © Fiducia IT AG

Batchjob (Java Main)

RDBMS(DB2-z/OS)z/OS

Java UproJava UproJava Upro

Files

ergänzend für kleine Jobs

§ Der Betrieb kann wahlweise entscheiden, auf welcher Plattform die Jobs produziert werden

§ JJs am Host dienen in erster Linie dazu, Abläufe aus Betriebssicht schlank und einfach zu halten

§ Prototyp: FU306A

Page 7: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Komplexität bei Batchabläufen – Plattform-übergreifende Abläufe sind komplex und werden daher wenig genutzt

1 HOST: CobolFachliche Verarbeitung

z/OS File2. HOST: FU306, LOB + Scheduling

4. DEZENTRAL: Java

Lob

1. Verarbeitung am Host

2. Aufbereitung der Daten für Verarbeitung auf der anderen Plattform, Ablage der Daten an der vereinbarten Stelle

3. (Scheduling: Host zu Unix)

4. Dezentrale Verarbeitung: inklusive fachliche Verarbeitung

INPUTDB

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 7 Copyright 2010 © Fiducia IT AG

6: HOST: FU306, LOB

4. DEZENTRAL: JavaFachliche Verarbeitung

z/OS File7 HOST: CobolFachliche Verarbeitung

Lob

Verarbeitung1. Einlesen File oder Blob inklusive Codepage-

Konvertierung2. Aufbereitung für Folgeverarbeitung am Host

(Codepage-Konvertierung und Ablage in File oder blob)

5. (Scheduling: Unix zum Host)

6. Aufbereitung der Daten für Verarbeitung auf der originären Plattform, Ablage der Daten an der vereinbarten Stelle

7. Weitere Verarbeitung am Host OUTPUTDB

Page 8: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Komplexität bei Batchabläufen: Die Verlagerung des dezentralen Teils (Pure-Java) auf den Host bringt schon eine Vereinfachung

I. HOST: CobolFachliche Verarbeitung

z/OS File

§ Die dezentrale Verarbeitung wird auf den Host verlagert (Verarbeitungsschritt 4 auf voriger Folie)

§ Die Verarbeitungsschritte 2, 3 und 5, 6 entfallen

§ Es besteht keine Notwendigkeit mehr, Daten über Plattformgrenze zu verschieben …

§ Der Verarbeitungsschritt 4 wird bei Bedarf angepasst, damit er mit den bestehenden Host-Files zurechtkommt II. HOST: Pure-JAVA

INPUTDB

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 8 Copyright 2010 © Fiducia IT AG

Files zurechtkommt

§ Der Ablauf wird einfacher – weniger Schritte– Scheduler-Kopplung entfällt

§ Der Ablauf verbraucht insgesamt weniger Ressourcen– Umformatieren entfällt – Zwischenspeichern entfällt – Zugriff übers Netz entfällt

§ Aus Gesamtlaufzeitbetrachtung (elaps) wird der Ablauf schneller (bei passender Checkpoint Frequenz auf DBs …)

II. HOST: Pure-JAVAFachliche Verarbeitung

z/OS File

III. HOST: CobolFachliche Verarbeitung OUTPUT

DB

Page 9: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Cobol Java Mix: die Transaktionsklammer macht es erst schmackhaft

§ Cobol zu Java Parameter Übergabe: – Wie funktioniert das?– wie wird aus einer Copystrecke ein java

Object

§ Datenbank-Zugriffe:– Wie sieht es mit Datenbank-Zugriffen aus? – Wie wird der Mix unterstützt?

Cobol Programm

Java U-ProgrammKundeÄndern

1. Kunde ändern

2. Protokollieren

Update

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 9 Copyright 2010 © Fiducia IT AG

RDBMS(DB2-z/OS)

z/OS

2. Protokollieren

Page 10: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Kana

l-N

eutra

l/

spez

ifisc

h

Mögliche Verwendung Java/Z OnlineIMS-Transaktionen beinhalten Java Services

JBF-Service

Clie

nt

BAP …

JBF Backend

§ JBF-Services am Server decken nicht die ganze Bandbreite der Technologie ab, die bei der Weiterentwicklung von agree benötigt wird. So kommt es häufig vor, dass Funktionalität als klassische Host-Transaktion (IMS-Cobol) implementiert wird

§ Zukünftig besteht die Möglichkeit, diese Funktionalität auch in Java zu

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 10 Copyright 2010 © Fiducia IT AG

IMS Transaktion (Cobol Hauptprogramm)

RDBMS(DB2-z/OS)

Cobol Upro

z/OS

Java UproJava UproCobol Upro

IMS - DB

JBF Backend Communication

Funktionalität auch in Java zu implementieren

§ Prototyping (FU075): Payload Compression

Page 11: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Mögliche Verwendung Java/Z im Batch bestehende Batch Jobs können Java Services verwenden

Sche

dule

rO

PC Batchjob …

§ Write once, use everywhere: neue Java-Funktionalität kann zukünftig auch in bestehende Cobol Batchprogramme eingebunden werden

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 11 Copyright 2010 © Fiducia IT AG

RDBMS(DB2-z/OS)z/OS Files

BMP Programm (Cobol Hauptprogramm)

Cobol Upro

Java UproJava UproCobol Upro

IMS - DB

Page 12: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Agenda

§ Motivation Java und Java/Cobol am Host aus Techniksicht

§ Erweiterungen für Java-Batch

§ Erweiterungen für IMS-Java

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 12 Copyright 2010 © Fiducia IT AG

§ Erweiterungen für IMS-Java

§ IMS-Online: Java- und Cobol-Zusammenspiel aus Entwicklersicht

§ Batch: Ein JZOS-Beispiel aus Entwicklersicht

Page 13: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Java pure im Batch: Infrastrukturellen Anpassungen

§ Die Verprobung erfolgte an zwei Prototypen– Der ERK der ParcIT ist seit Februar im Parallelbetrieb produktiv – FU306: Die für "Nizza – Daten entgegennehmen" notwendige Funktionalität ist

implementiert und in Betrieb genommen

§ Die wichtigsten betriebsrelevanten Aspekte – z/OS Systeme wurden zur Unterstützung zAAP over zIIp erweitert– Standards/Namenskonventionen-Erweiterungen

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 13 Copyright 2010 © Fiducia IT AG

– Standards/Namenskonventionen-Erweiterungen– Unix Filesysteme für Java-Programme, für Temp-Arbeitsplatz, für Logging– Security-Konzept ist abgeschlossen und umgesetzt– Überwachung & Alarmierung – Accounting (SMF basiert)-Erweiterung. Anpassungen am Verfahren sind erfolgt, z. B.

Auswertungen, die den Java-Ressourcenverbrauch aufzeichnen

Page 14: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Java pure im Batch: Infrastrukturelle Anpassungen

§ Entwicklung & Verwaltung von Programmen (Jarfiles) für Eigenentwicklung und Fremdsoftware– Entwicklung erfolgt dezentral mit

bestehenden Mitteln (RAD/RDZ)– Provisionierung Host-Transfer-Laufwerk

aus Build– Übergabe-/Übernahmeverfahren werden

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 14 Copyright 2010 © Fiducia IT AG

– Übergabe-/Übernahmeverfahren werden mittels erweitertem Hostverfahren (PUU) realisiert

§ Interaktion mit dem Host auch notwendig z. B. bei Fehleranalyse – Entwickler muss ins „Host Log“ (JCL

Output) schauen– Kann am Host testen und debuggen mit

den bekanten Mitteln

Page 15: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Agenda

§ Motivation Java und Java/Cobol am Host aus Techniksicht

§ Erweiterungen für Java-Batch

§ Erweiterungen für IMS-Java

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 15 Copyright 2010 © Fiducia IT AG

§ Erweiterungen für IMS-Java

§ IMS-Online: Java- und Cobol-Zusammenspiel aus Entwicklersicht

§ Fazit/Zusammenfassung

§ Batch: Ein JZOS-Beispiel aus Entwicklersicht

Page 16: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

IMS-Java: die JVM ist persistent in den IMS-MPRs eingebettet

IMS MPR mit JVM 1.6 - 31bit

IMS Connect,

MQ,

LE Enclave

JVM : C-Programme Cobol -Pgm

Cobol -Pgm

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 16 Copyright 2010 © Fiducia IT AG

Java-User-Code…

Page 17: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Infrastruktur: IMS Enabling für einen gezielten Einsatz von Java

§ Zwei zusätzliche Parameter in den MPR-Definitionen– Link zu den binaries: JVMOPMAS=DFSJVM61,

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 17 Copyright 2010 © Fiducia IT AG

– Konfig: ENVIRON=DFSJVC35

Page 18: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

IMS-Java: aktive JVM in IMS-MPRs Voraussetzungen und Nebenwirkungen

§ Die Aktivierung der JVM erfordert neue LE-Einstellungen– Posix (on), all31(on)– Alle Programme amode31– Alle Cobol-Module mit EnterpriseCobol compiliert

§ IMS/LE/JVM setzt voraus, dass alle Module IGZERRE unterstützen. Dies ist aktuell bei unseren hochvolumigen Transaktionen der Fall– Die aktuelle IMS-Implementierung deckt noch nicht alle Konstellationen ab

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 18 Copyright 2010 © Fiducia IT AG

– Die aktuelle IMS-Implementierung deckt noch nicht alle Konstellationen ab– Der gemeinsam konzipierte Lösungsansatz befindet sich seitens IBM in der

Umsetzung

§ Die Defizite bei den aktuell verwendeten Debugging- und Abend-Handling-Werkzeugen von Compuware verhindern deren Einsatz.– Xpediter kann nicht eingesetzt werden (bekommt keine Kontrolle)– AbendAid kommt mit der LE-Einstellung „posix(on)“ nicht zurecht– Compuware ist bemüht eine Lösung zu finden – DebugTool und FaultAnalyzer aus der IBM-PDT-Suite wären eher geeignet

Page 19: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Infrastruktur: Globale Auswirkungen bei Breiteneinsatz

Die Verwendung von Java führt zur Veränderung der Infrastruktur. Die Hardware muss auf die neuen Belange ausgelegt werden

§ Der Java Workload wird auf zIIP-Prozessoren ausgelagert– Aktivierung weiterer CPUs einplanen

§ Auch der Speicherbedarf verändert sich– Mehrbedarf-Prognose und bei Bedarf Erweiterung vorsehen

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 19 Copyright 2010 © Fiducia IT AG

– Mehrbedarf-Prognose und bei Bedarf Erweiterung vorsehen

§ Monitoring

Page 20: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Agenda

§ Motivation Java und Java/Cobol am Host aus Techniksicht

§ Erweiterungen für Java-Batch

§ Erweiterungen für IMS-Java

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 20 Copyright 2010 © Fiducia IT AG

§ Erweiterungen für IMS-Java

§ IMS-Online: Java- und Cobol-Zusammenspiel aus Entwicklersicht

§ Fazit/Zusammenfassung

§ Batch: Ein JZOS-Beispiel aus Entwicklersicht

Page 21: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Pure JavaJava-Batch

JZOS

§ JZOS ist ein Programmpaket für den Support der z/OS-Spezifika für Java

§ Zu JZOS gehören– Batch-Runner

• Unterstützt den Start einer JVM unter Job-Control-Language• Mappt den Java-Exit-Code auf den System Returncode

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 21 Copyright 2010 © Fiducia IT AG

• Mappt den Java-Exit-Code auf den System Returncode• Lenkt den Java out-Stream auf SYSOUT

– Klassenbibliothek• IO-Klassen für z/OS-Dateien (PS, PO)• Klassen für DFSort unter Java• Mapping-Framework für Copystrecken nach Java-Datentypen

Page 22: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

JZOS Job - Sample

//JAVA EXEC PROC=PROC6SR8,VERSION='60',// JAVACLS='de.basisagree.lobtab.service.impl.batchjob.LobChecker',// ARGS='MOD13_JBF00 compareDefault'

//STDENV DD DISP=SHR,DSN=XCK10.JAVA.CNTL(JDK1601)// DD *# JUNIT und Compression ergänzenAPP_HOME=/mvsr/home/xk07210

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 22 Copyright 2010 © Fiducia IT AG

APP_HOME=/mvsr/home/xk07210CLASSPATH="$CLASSPATH":"$APP_HOME/FU306.jar"CLASSPATH="$CLASSPATH":"/entw/appl/imsu/jbf/lib/ojdbc14.jar"CLASSPATH="$CLASSPATH":"$APP_HOME"export CLASSPATH="$CLASSPATH":/*//E0000S1 DD *<EmpfaengerCustom_ID="0000008603"Path="/horizon/zvaus"FileName="zvaus.ezv.0000008603.d20110926.t12413228000.txt"DSName="PC265K.F7149L2.WR2.IMSQTDBO.ZV25.D260911.L07"/>

Page 23: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Support von z/OS-Dateien

Die JZOS-Klassenbibliothek unterstützt die unterschiedlichen z/OS-Dateitypen

§ So kann mittels ZFile von einem DD-Statement gelesen werden:

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 23 Copyright 2010 © Fiducia IT AG

Page 24: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Java-Pure Batch: FU306 Oracle-Lob Filetransfer

§ Für die Pilotierung eines Java-Batches wurde die Oracle-Lob-API FU306A ausgewählt

§ Um Aufwand zu reduzieren, wurden allerdings in der ersten Stufe nur Teile der Funktionalität von FU306A in Java reimplementiert

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 24 Copyright 2010 © Fiducia IT AG

reimplementiert

§ Die Java-Implementierung läuft aktuell parallel zur produktiven Cobol-Implementierung. Die Ergebnisse werden maschinell verglichen

§ Als Ziel wollen wir ein Gefühl dafür bekommen, wie sich Java auch für kleine Batches eignet. Besonderes Augenmerk liegt auf den „Rüstzeiten“ für den JVM-Start bei Leer-Datei-Verarbeitung

Page 25: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Agenda

§ Motivation Java und Java/Cobol am Host aus Techniksicht

§ Erweiterungen für Java-Batch

§ Erweiterungen für IMS-Java

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 25 Copyright 2010 © Fiducia IT AG

§ Erweiterungen für IMS-Java

§ IMS-Online: Java- und Cobol-Zusammenspiel aus Entwicklersicht

§ Fazit/Zusammenfassung

§ Batch: Ein JZOS-Beispiel aus Entwicklersicht

Page 26: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Java<->CobolInterlanguage-Communication (ILC)

Die Aufrufe von Cobol nach Java und Java nach Cobol unterscheiden sich geringfügig in der Art der zu verwendenden Technik. Die Mechanismen der Datenübergabe und Konvertierungen sind aber auf Basis von JNI prinzipiell gleich

§ Cobol à Java– Der Aufruf der Java-Methode erfolgt über OO-Cobol-Spracherweiterung– Java kann nur aus DLLs gerufen werden– DLLs können aber nicht dynamisch aus Cobol gerufen werden

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 26 Copyright 2010 © Fiducia IT AG

– DLLs können aber nicht dynamisch aus Cobol gerufen werden

§ Java à Cobol– Java kann nur eine in OO-Cobol-implementierte Klasse aufrufen– Diese Klasse muss zu einer DLL gelinkt sein– Eine DLL kann aber keinen dynamischen Call auf ein Unterprogramm machen

Page 27: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Cobol ruft Java

Die Konventionen der DLL erfordern kleine Klimmzüge

§ Um die Sprachübergänge in Richtung Java mit dynamischen Calls zu unterstützen verwenden wir statisch gelinkte OO-Cobol-Stubs– Ein kleines Cobol-PGM, das nur den Cobol-Stub

CALL „OO-

Cobol-PgmCALL Cobol-Stub

DynamischerCall

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 27 Copyright 2010 © Fiducia IT AG

– Ein kleines Cobol-PGM, das nur den statischen Call der OO-Cobol DLL beinhaltet, wird zu einem Lademodul zusammengelinkt

– Dieses Lademodul kann mittels dynamischer Calls gerufen werden

Java-LibraryXY.jarJava-LibraryXY.jar

OO-CobolInvoke …

CALL „OO-COBOL“

StatischerCall

Page 28: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Cobol ruft Java – Cobol Stub und OO-Cobol

Der Cobol-Stub ist keine Hexerei

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 28 Copyright 2010 © Fiducia IT AG

Ein OO-Cobol-PGM sieht etwas anders aus

Page 29: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Beispiel: Aufruf einer Java-Methode aus CobolDie Java-Methode

CompressionWrapperCompressionWrapper

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 29 Copyright 2010 © Fiducia IT AG

Page 30: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Der zugehörige Cobol-Aufruf (1)FU382IFU382I

1. Neues Byte-Array anlegen

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 30 Copyright 2010 © Fiducia IT AG

2. Daten aus Cobol in das Byte-Array in die JVM übertragen

Page 31: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Der zugehörige Cobol-Aufruf (2)FU382IFU382I3. Aufruf der Methode compress()

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 31 Copyright 2010 © Fiducia IT AG

4. Ergebnis aus der JVM nach Cobol übertragen

Page 32: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Java ruft Cobol

In dieser Richtung muss mit zwei Stubs gearbeitet werden

§ Die Java-Klasse nutzt einen Java-Stub, um den Aufruf der „Cobol-Methode“ zu ermöglichen

§ Der Java-Stub entsteht beim Cobol-Compile!

Java-Klasse

Java-Stub

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 32 Copyright 2010 © Fiducia IT AG

§ Um dynamische Calls aus der OO-Cobol Methode in Richtung „klassischem Cobol“ zu unterstützen, greifen wir auch hier auf den Trick mit der statisch gelinkten Stub zurück

Cobol-PGM XYCobol-PGM XYCobol-StubCall XY

OO-CobolCALL „Cobol-Stub“

Dynamischer Call

StatischerCall

Page 33: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Java ruft Cobol, OO-CobolEine Klasse muss mit Methoden in Cobol geschrieben werden

§ Im Beispiel links wird eine Klasse mit einer Methode display(byte[]) dargestellt

§ Beim Cobol-Compile wird der Java-Stub erzeugt:

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 33 Copyright 2010 © Fiducia IT AG

Cobol-Compile

Page 34: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Datentypen und Konvertierungen

Zugeständnisse an die Performance und die Nerven der Entwickler haben zu folgenden Vereinbarungen geführt

§ Folgende Datentypen werden zwischen Cobol und Java ausgetauscht:– int, long, byte[]– Komplexe Daten werden auf Basis von Copy-Strecken mittels byte[] ausgetauscht

§ Das Mapping der Copy-Strecken auf die Java-Objekte erfolgt immer in Java

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 34 Copyright 2010 © Fiducia IT AG

§ Das Mapping der Copy-Strecken auf die Java-Objekte erfolgt immer in Java

§ Ebenfalls werden die Konvertierungen von Ebcdic nach Unicode auch immer in Java durchgeführt

Page 35: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

FU075U Prototyp/Komprimierung

§ JBCImsConnect komprimiert die Daten bevor sie zum IMS geschickt werden

§ Als Gegenstück werden die Daten von dem Gegenstück auf dem Host (FU075U) dekomprimiert. Die Komprimierung erfolgt in beiden Richtungen

§ Der zugehörige Komprimierungsalgorithmus wurde im Rahmen von BAP4.0 sowohl in

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 35 Copyright 2010 © Fiducia IT AG

§ Der zugehörige Komprimierungsalgorithmus wurde im Rahmen von BAP4.0 sowohl in Java als auch in Assembler implementiert

§ Aus diesem Umstand resultiert die Idee, die in Assembler implementierte Komprimierungsroutine durch die Java-Implementierung zu ersetzen und prototypisch zu einzusetzen

Page 36: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Unser FU075U Prototyp/Komprimierung

§ Ausgangslage: Implementierung der Komprimierung in Assembler

XY001T

(Anwendungs-PGM)

FU075UIMS I/O Queue

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 36 Copyright 2010 © Fiducia IT AG

FU075C FU075D

Ausgangslage FU075U Compression

Page 37: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Unser FU075U Prototyp/Komprimierung

§ Implementierung Komprimierung in Java

XY001T

(Anwendungs-PGM)

FU075UIMS I/O Queue

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 37 Copyright 2010 © Fiducia IT AG

FU075C FU075D FU382I

CompressionWrapper

JESCompressor JESDecompressor

Compression-service-api__VX.YY-ZZ.jarCompression-service-impl__VX.YY-ZZ.jar

Page 38: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Agenda

§ Motivation Java und Java/Cobol am Host aus Techniksicht

§ Erweiterungen für Java-Batch

§ Erweiterungen für IMS-Java

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 38 Copyright 2010 © Fiducia IT AG

§ Erweiterungen für IMS-Java

§ IMS-Online: Java- und Cobol-Zusammenspiel aus Entwicklersicht

§ Fazit/Zusammenfassung

§ Batch: Ein JZOS-Beispiel aus Entwicklersicht

Page 39: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Fazit/Zusammenfassung

§ In Bezug auf Java pure unterscheidet sich der Host nicht von anderen Plattformen

§ Java pure ist mittlerweile eine echte Variante und Ergänzung des Portfolios – Der Betrieb von Java auf Z kann einen erheblichen Mehrwert im Sinne von Einfachheit

der Abläufe, Durchlaufzeit und Wiederverwendung von Code und Skill erbringen

§ Es gibt noch einige Hürden beim Cobol/Java Mix unter IMS, die vor einer Nutzung gemeinsam mit dem Hersteller zu beseitigen sind

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 39 Copyright 2010 © Fiducia IT AG

gemeinsam mit dem Hersteller zu beseitigen sind

Page 40: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Fragen? – Diskussion?

Alexander TrischlerFiducia IT AG

JavaZ Überblick/Infrastruktur | Pascal Meyer, Alexander Trischler | JBFOne 2011 | Seite 40 Copyright 2010 © Fiducia IT AG

Fiducia IT AG

[email protected]/4004-5139

Pascal MeyerFiducia IT AG

[email protected]/4004–2834

Page 41: Java auf System z - Amazon S3 · (DB2-z/OS) Cobol Upro z/OS Java Upro Cobol Upro Java Upro IMS - DB implementieren Communication § Prototyping (FU075): Payload Compression. Mögliche

Ihr IT-Partner

Vielen Dank