CICS / JAVA - PowerPoint PPT Presentation

About This Presentation
Title:

CICS / JAVA

Description:

CICS / JAVA Was ist das? Warum im CICS? Was ist m glich? Was w re m glich? Performance Laborumgebung Enterprise Java Beans im CICS – PowerPoint PPT presentation

Number of Views:168
Avg rating:3.0/5.0
Slides: 41
Provided by: iua92
Category:
Tags: cics | java | beans | corba | enterprise

less

Transcript and Presenter's Notes

Title: CICS / JAVA


1
CICS / JAVA
  • Was ist das?
  • Warum im CICS?
  • Was ist möglich?
  • Was wäre möglich?
  • Performance
  • Laborumgebung
  • Enterprise Java Beans im CICS

2
CICS / JAVA Was ist das?
  • Ab dem CICS Transaction Server 1.3 lassen sich
    Anwendungen im CICS mittels JAVA erstellen
  • JAVA wird vom CICS wie eine normale
    Programmiersprache behandelt (incl. gegenseit.
    Sprachaufrufe)
  • Es gibt zwei Modi
  • JVM-Ausführung Über das OTE wird die JVM aus den
    Unix-System-Services geladen (100 JAVA)
  • HPJ-Compilierung Momentan schneller, jedoch
    Einschränkungen vorhanden
  • In-bound Zugriff von Corba-Clients
    JAVA-Transaktionen von aussen aufrufbar
  • Kein EXEC CICS und kein CICS-Translator, da die
    CICS-APIs in JAVA-Klassen gekapselt sind
  • CICS-Abends oder -Conditions werden als
    JAVA-Exceptions umgesetzt
  • Entwicklungsumgebung JBuilder oder VisualAge
    JAVA möglich
  • Remote Debugging incl. graf. Oberfläche am PC ins
    CICS hinein

3
CICS / JAVA Gründe (1)
  • Vorteile von JAVA generell
  • Erhöhung der Qualität, da weniger Abbrüche (keine
    Pointer, keine Adressen in JAVA)
  • Moderene Sprache mit hoher Marktdurchdringung
    Quasi Standard
  • Integration bestehender/künftiger JAVA-Lösungen
    vereinfacht
  • Cobol und PL/1-Programmiererresourcen gehen
    zurück
  • Wenig spezifisches Plattform-Know-how
    erforderlich
  • Entwicklung plattformunabhängig
  • Einsatz moderner Entwicklungswerkzeuge am PC
    möglich
  • Vorteile der Objektorientierung (vorallem
    Schnittstellen / Kapselung)
  • Wesentlich einfacher als C
  • Automatische Garbage Collection (Vgl. C)
  • Verwendung von Komponententechnik professionell
    möglich

4
CICS / JAVAGründe (2)
  • IBM sieht JAVA als de facto Programmiersprache
    für OS/390
  • Gründe für die Unternehmen
  • Gemeinsamer Entwicklungssprachstandard
  • JAVA mit Oracle 8/9i möglich (z.B. Stored
    Procedures in JAVA, JDeveloper)
  • Oracle IBM EJBs sollen austauschbar sein
  • WebSphere EJBs in Verbindung zu CICS-EJBs
  • Integration mit bestehenden CICS-Anwendungen
    seichter Übergang
  • Nutzung von IBM-Host-Software

5
CICS / JAVAWas ist möglich? (1)
  • JAVA-Programme können im native MVS,
    Unix-System-Services (OpenEdition) und
  • auch im CICS laufen
  • MVS
  • Durch HPJ-Compiler wird ein native Executable
    (Loadmodul) erzeugt. Dies ist (wie bisher)
  • als JOB startbar
  • Alle MVS-Möglichkeiten sind vorhanden bzw. lassen
    sich Schnittstellen wie bisher leicht
  • erstellen
  • USS
  • In der USS- oder Linux-Umgebung können
    JAVA-Programme als Prozesse wie auf anderen
  • Servern laufen und mit dem CICS, MVS oder extern
    kommunizieren

6
CICS / JAVAWas ist möglich? (2)
  • CICS (Transaction Server 1.3)
  • Native per HPJ-Compiler oder auf der JVM
    lauffähig
  • Mittels JCICS-Klassen Zugriff auf die gekapselten
    CICS-Befehle
  • Interaktion/Integration mit CICS-Mitteln (CICS
    LINK, XCTL, etc.) oder selbst per JNI mögl.
  • Verwendung von MQSeries-JAVA im CICS möglich
  • Über CICS-Corba leichter Aufruf von
    CICS-Transaktionen (non-terminal) von externen
    Stellen
  • (Internet, C/S, u.v.m) ohne Commarea-Beschränkung
  • CICS TS 1.3 für die Entwicklung, CICS TS 2.1 für
    die Produktion
  • Nutzung von JDBC, SQLJ, MQSeries-JMS oder
    JAVA-Client, IIOP Corba

7
Offizielle Restriktionen
  • Aber per JNI oder CICS Link mögl.

8
JCICS - Auszug aus der Klassenhierarchie
9
JCICS - Klassenhierarchie Umsetzung von
Returncodes in Exceptions
10
TSQ Beispiel
11
TSQ Beispiel
12
Exceptions
13
Remote-Debugging Breakpoints, Single step, Stack
Trace, Variablen von Host-Programme graf. am PC
14
Programmerstellung
15
Beispiele
16
1. Beispiel Übersicht MitarbeiterkontenIn JAVA
erstellt, nutzt MQSeries-JAVA-Client um auf SAP
zuzugreifen (Nutzt DRAT-JAVA-Klassen im CICS)
17
Fakten zum Beispiel 1
  • Transaktionsorientiert
  • Nutzt MQSeries-JAVA-Client im CICS
  • Wiederverwendung von DRAT-JAVA-Klassen
  • BMS-Bildausgabe vollkommen generisch
  • Nutzt TCP/IP-CICS-Möglichkeiten
  • Ist ein mögliches Beispiel für späteren
    Anw.-Programmierer
  • Mit JBuilder erstellt

18
2. Beispiel Nutzung von math. Routinen im
CICS(JAVA-Verhalten bei Anzahl Berechnungen und
Neustart der CICS-JVM pro Tastendruck
(transaktionsorientiert))
19
Fakten zum Beispiel 2
  • Umgeschriebenes Applet als CICS-Transaktion
  • Nutzt weiterhin den unveränderten
    Original-JAVA-Kern-Code

CICS-Applet
Kern
  • Transaktionsorientiert, nutzt einige
    JCICS-Klassen
  • CICS-JVM startet pro Tastendruck Test des
    CICS-Hot-Poolings!!!

20
3. Beispiel Antwortzeitverhalten(JAVA-Verhalten
bei hoher Benutzerinteraktion)
21
Fakten zum Beispiel 3
  • Client/Server Server läuft in Endlosschleife
  • Der Client arbeitet transaktionsorientiert
  • Austausch zw. C/S-System per TS-Queue (MQSeries
    wäre besser)
  • Geeignet für Antwortzeitverhalten-Test und
    Resourcenverbrauch
  • Nutzt mehrstufige Tabellen
  • Pro Stein-Durchlauf wird 18 mal ein CICS-LINK
    durchgeführt
  • Pro Tastendruck wird ein CICS-LINK durchgeführt
  • Massenhafte Programmiersprachenübergänge (C und
    JAVA)
  • Nutzt JCICS-Klassen TSQ, Task, Program, Commarea
    und Terminal-
  • Klassen
  • Zeigt das Ausschließlichkeit der JCICS-Klassen im
    Initial-Thread
  • Auch hier sind die Original Tetris-JAVA-Kern-Sourc
    en unverändert!
  • CICS-JVM läuft dauerhaft im Speicher (CICS SOS???)

22
CICS / JAVAWas wäre möglich
  • Nutzung von CICS (ab Transaction Server 2.1) für
    Enterprise JAVA Beans (Session Beans)
  • Interaktion mit WebSphere auf S/390 (künftig mit
    gem. Adressbereich)

23
CICS Roadmap
24
CICS / JAVAPerformance
  • Hot-Pooling Erlaubt HPJ-JAVA-Programmen die
    selbe LE-Enclave
  • wiederzuverwenden
  • CICS Transaction Server 2.1 Nutzt neue JVM (die
    nicht portiert wurde)
  • Ab V2.1 persistent, reusable JVM und JAVA 2
    Unterstützung

25
JAVA Versionen
26
Verfügbarkeit von Funktionen
27
Performance
28
Laborumgebung CICS-NT mit JAVA-Support!
Bisherige Host-Anwendungen
CICS-Programm-Kommunikation
JAVA-Anwendung aus Anw.-Entwicklung
JCICS JAVA-Klassen
  • JNI

Direct-to-CICS (DTC) C-Schicht mit CICS-APIs
CICS System
29
JCICS-Klassen aus California -DFJCZDTC
JNI-CICS-C-Schicht selber zuhause... 1/2
Einfacher Fall
EXEC CICS WRITEQ TS
QUEUE(...) FROM(daten)
LENGTH(len) ITEM
(nr) MAIN
RESP(rcode)
TSQ tsq ... tsq new TSQ() tsq.setName("FIRST00
1") try tsq.writeItem(inhalt.getBytes(
)) catch (Throwable t) ...
30
JCICS-Klassen aus California -DFJCZDTC
JNI-CICS-C-Schicht selber zuhause... 2/2
Etwas mehr Gehirn-Jogging
  • Task myTask Task.getTask()
  • TerminalPrincipalFacility term
    (TerminalPrincipalFacility)

  • myTask.getPrincipalFacility() ???

31
Begriffe für die nächste Folie
Bisher war CICS eine geschlossene Umgebung, die
keine Calls nach aussen erlaubte. - CICS startet
Benutzertransaktionen in einem MVS Task Control
Block (quasi-reentrant TCB (QR-TCB)). - Alle
Calls von CICS nach aussen könnten den CICS TCB
so blockieren, dass alle Transaktionen
betroffen wären. gt Einführung eines open TCBs
für die JVM der sog. J8 TCB. Dieser darf
andere Services aus CICS heraus aufrufen, ohne
den QR-TCB von CICS zu beeinflussen. Jede
CICS-Transaktion mit JVM läuft jedoch in einem
eigenen J8 TCB mit einer eigenen JVM
jeweils! Die JVM wird beim Transaktionsstart
gestartet und bei Ende gelöscht. Der J8 TCB
benutzt MVS-LE und nicht CICS-LE-Services, daher
können auch die o.a. zusätzlichen Services in
Form der Java-Klassen benutzt werden / Packages
java.io. java.net. java.rmi.
32
Der Original CICS TS 1.3 Starter
33
By the way... 1/2
  • Quasi-reentrant TCB (QR-TCB)
  • Heute Alle Anwendungsprogramme laufen in diesem
    Main-TCB
  • Zeitscheibenmechanismus, jede CICS-Task kommt mal
    dran
  • Bei der Zuteilung einer anderen Task, wird die
    bestehende Task inaktiv
  • Heute ist immer nur eine Task zu einer Zeit
    wirklich aktiv
  • Einige Programme werden von mehr als einer
    CICS-Task aufgerufen
  • (jedoch ist trotzdem zu einer Zeit immer nur
    eine Task aktiv!)
  • Die QR erlaubt es Anwendungsprogrammen gemeinsame
    Speicher-
  • bereiche zu haben (z.B. CWA). Einen echten
    Concurrent-Update kann es
  • heute nicht geben (also auch keine Protection
    hierfür notwendig).
  • (Vergleich hierzu C, NT-Code mit Critical
    Sections oder JAVA mit den synchronized
  • Methoden (Monitors))
  • gt Heutiger CICS-Code ist nicht threadsafe! Die
    IBM arbeitet massiv
  • an der vollständigen multithread-CICS-Version.

34
By the way... 2/2
Open TCB Eine neue CICS-TCB-Art auch für
Anwendungsprogramme Jeder neue TCB für die
alleinige Benutzung durch eine CICS-Task
(wieder- verwendung möglich Hot-Pooling) Kein
Subdispatching in Open-TCBs, Blockierung durch
Anwendungen erlaubt Threadsafe Programs Können
von mehreren TCBs gleichzeitig aufgerufen
werden Sind i.d.R. read-only (nur serialisierter
Zugriff auf shared Storage bei Updates) Können
sich nicht auf QR verlassen (bei Zugriffen auf
Resourcen oder Speicher (CWA!)) Müssen
Serialisierungstechniken benutzten, z.B.
Enqueue/Dequeue für den Zugriff auf gem.
Speicherbereiche
35
  • EJB Ist eine nicht-visuelle Komponente einer
    verteilten, transaktionsorientierten,
  • server-seitigen Anwendung
  • Anwendungsentwickler können die Komponenten zu
    Anwendungen zusammenfügen
  • Framework-Dienste wie Naming, Security,
    Transaction, Persistenz stehen zur Verfügung

36
  • Warum im CICS?
  • Baut auf dem bisherigen Investment auf (best.
    CICS-Anwendungen)
  • Evolutionärer Ansatz
  • Nutzt best. System-Management
  • Performance
  • Programmierer wird entlastet von
  • Eigener Transaktionlogik
  • Eigene Security
  • Eigener Mehrfachzugriffslogik
  • Skalierbares Host-Umfeld
  • Kein WebSphere- oder BEA-Know-how erforderlich

37
(No Transcript)
38
(No Transcript)
39
EJB Zusammenspiel
40
Redbook www.redbooks.ibm.com (als PDF Datei
verfügbar)
SG245275-01
Write a Comment
User Comments (0)
About PowerShow.com