Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte /...
-
Upload
herta-kohler -
Category
Documents
-
view
213 -
download
0
Transcript of Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte /...
Transaktionsmonitore IIBeispiel CICS
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
Inhalt
• Allgemeines über CICS• CICS im Betriebssystem• CICS Transaktion• Programmstruktur• Verwendung• Programmentwicklung• Programmierstile
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
Allgemeines über CICS
• Customer Information Control System• Erstmalig 1968 eingesetzt• der am weitesten verbreitete IBM - proprietäre
Transaktionsmonitor• hat eine Spitzenposition bzgl. Zuverlässigkeit und
Verfügbarkeit• verfügbar unter:
– S/390 Betriebssysteme: OS/390 und VSE– In modifizierter Form: OS/400, OS/2, NT, AIX,
Solaris, Digital UNIX
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
1/2
Allgemeines über CICS• Ca. 16 000 Unternehmen (ca. 90% der 2 000 größten
Unternehmen) weltweit setzen u.a. CICS ein
• Weltweit existieren ca. 30 Mill. CICS Terminals (1/12 der Anzahl aller Internetanschlüsse 2001)
• Anzahl der ausgeführten CICS-Transaktionen Anzahl aller Zugriffe auf Webseiten weltweit
• Programmiersprachen:– Cobol (alte CICS-Anwendungen: gute Lesbarkeit, Wartbarkeit) – C++, Java (neue CICS-Anwendungen: moderne Sprachen)– PL/1 (von IBM entwickelt)
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
2/2
CICS im Betriebssystem• OS/390 Betriebssystem
• CICS läuft also als Subsystem in einem OS/390 Betriebssystem
• Kommunikation der Subsysteme untereinander Interprocess Communication (IPC nächster Vortrag)
• CICS kann auf Daten zugreifen, die z.B. von einem relationalen DBS bereitgestellt werden
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
1/3
OS/390 Kernel
CICS DB2Relationale Datenbank
USSUnix Shell
TSOEntwicklungs-
umgebung
FF…FF
00..00
CICS im Betriebssystem
• es laufen parallel in einer Region– CICS – Nucleus (CICS – Kernel)– CICS – Anwendungen (Serverprozesse/Transaktionen)
• alle CICS-Anwendungen und CICS-Dienste (Ressource Manager) laufen ungeschützt voneinander im Problemstatus (User mode)
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
2/3
OS/390 Kernel
CICS DB2 USS TSO• CICS – Region
CICS – Anwendungen
CICS - Nucleus
CICS im Betriebssystem
• CICS-Dienste (Ressource-Manager) werden als Threads innerhalb des virtuelle Adressraumes ausgeführt und vom CICS-Nucleus verwaltet.
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
3/3
• CICS – Region CICS – Anwendungen
CICS - Nucleus
FF…FF
00…00
CICS Transaktion
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
1/2
• Zu einem CICS–Subsystem gehört eine Menge von CICS–Anwendungen
• Eine Anwendung ist ein bestimmter Transaktionstyp mit einem eindeutigen Transaktions-Identifier (TRID)
• Die Ausführung einer CICS – Anwendung heißt Transaktion.
• CICS – Anwendungsprogramme sind reentrant (wiedereintritts-invariant)d.h. es genügt eine Kopie des Programmes im Hauptspeicher für mehrere parallele Ausführungen
CICS Transaktion
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
2/2
• Bsp.: Anwendung „ABCD“, die aus einer Datenbank bestimmte Daten ausliest und am Bildschirm ausgibt.(3x die gleiche TRID, aber unterschiedliche Ausgabedaten)
Name:Vorname:Geb.-Dat.:
Bem.:
MüllerFritz13.5.1952
langweilig
Name:Vorname:Geb.-Dat.:
Bem.:
MeierHorst12.6.1938
sturpedantisch
Name:Vorname:Geb.-Dat.:
Bem.:
StrauchKarl3.1.1824
tod
• Bsp.: „CEDA“ ist die Transaktions-ID einer Anwendung, dieBestandteil von CICS ist (Aufruf einer interaktiven CICS-Shell)
Programmstruktur
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
1/3
• Aufbau eines CICS – Anwendungsprogrammes
Programm
Mapset
TRID
Zusammen: CICS Anwendung (Group)
Business Logik
Bildschirmausgabe
Transaktions – ID(4 Byte)
Programmstruktur
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
2/3
• TRID: – aus 4 Byte bestehender Transaktions-Identifier zum Aufrufen der
Anwendung
• Mapset: (Presentationslogik)– der Teil der Anwendung, der Informationen über Struktur und
Datenausgabeformatierungen enthält– ist der feste Teil der Ausgabe einer Transaktion
• Programm: (Businesslogik)– Anwendungsprogramm, in einer bestimmten Programmiersprache– ist lauffähig, fordert Informationen z.B. vom DBS an, kommuniziert mit
anderen Regionen– liefert die Daten, die verarbeitet oder nach Vorgabe von Mapset am
Bildschirm ausgegeben werden.
Programmstruktur
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
3/3
• In unserem Beispiel:• TRID: ABCD
Name:Vorname:Geb.-Dat.:
Bem.:
• Mapset: (hier nur ein Map)
StrauchKarl3.1.1824
tod
• Programm: liefert die DatenMeierHorst12.6.1938
sturpedantisch
MüllerFritz13.5.1952
langweilig
Verwendung
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
1/1
• Abarbeitung einer CICS – TransaktionEingangsbildschirmCICS - Aufruf
IdentifizierungUserID und Passwort Eingabe TRID
Transaktions-Menü Auswahl
AusgabeAntwortbildschirm
Programmentwicklung
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
1/3
• außerhalb von CICS in einer anderen Region (z.B. TSO)– Programmierung des ausführbaren Teils einer CICS –
Anwendung – Compilieren des ausführbaren Teils einer CICS –
Anwendung– Erstellung der Maps außerhalb von CICS mit BMS
• CICS wird nur für die Ausführung der Programme verwendet (u.a. Schutz des Systems)
Programmentwicklung
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
2/3
Programm mit native CICS API
Object Programm
Maschinenprogramm (ausführbar)
CICS - Precompiler
C - Compiler
Linking
QuellprogrammProgramm mit native DB2 API
SQL - Precompiler
Programmentwicklung
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
3/3
• Installation eines CICS – Anwendungsprogrammes:– CEDA öffnet eine CICS – Shell
• DEFINE– Erstellung einer neuen „Group“– Definition der Komponenten der Gruppe (TRID, Mapset,
Programm)
• INSTALL– Aktivierung der neuen Gruppe einschließlich aller Komponenten– Integration in das CICS – Subsystem
Programmierstile
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
1/2
• Ablauf einer Conversational Transaction
Benutzer - TA
CICS - TA
aktiv
passiv
ZeitStart Commit
aktiv
– Über den gesamten Zeitraum der Sitzung des Benutzers werden die benötigten Ressourcen blockiert
– Die Maschine „wartet“ auf die Eingaben des Benutzers und „verschenkt“ wertvolle Zeit
– Ressourcen werden erst nach dem Abschluß der Transaktion wieder freigegeben
Programmierstile
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
2/2
• Ablauf einer Pseudo-Conversational Transaction
Benutzer - TA
CICS - TA
aktiv
passiv
ZeitStart Commit
– Die logische Benutzertransaktion wird in mehrere reale CICS-Transaktionen unterteilt.
– Resourcen stehen anderen Transaktionen zur Verfügung, solange sie nicht direkt beansprucht werden.
– Um die ACID-Eigenschaften von Transaktionen sicherzustellen müssen hierbei zusätzlich die Sitzungsparameter jeder einzelnen Sitzung berücksichtigt werden.
aktiv
passiv
Zusammenfassung
• Verfügbar für viele Betriebssysteme• Weitverbreitetster Transaktionsmonitor
• Läuft als Subsystem in eigener Region auf dem Mainframe
• Kommuniziert mit Anwendungen anderer Regionen z.B. DBS (empfängt / sendet Daten)
• Ausführung einer CICS-Anwendung ist eine Transaktion• Anwendungen werden durch eindeutige TRID
aufgerufen, bestehen aus Presentationslogik (Maps) und Businesslogik (Programm)
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
1/2
Zusammenfassung
• Programmentwicklung erfolgt außerhalb von CICS• Installation der compilierten Anwendung in die CICS
Umgebung
• Anwendungen können als Conversational Transaction (eine lange CICS-Transaktion) oder Pseudo-Conversational Transaction (reale Unterteilung der logischen Session) programmiert werden.
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
2/2
Abkürzungen
• Problemstatus (User-Mode)– Im Gegensatz zum Kernel-Mode können solche Programme
nicht auf den Kernel-Speicher zugreifen (haben weniger Privilegien – Schutz des Betriebssystems)
• API (Application Programming Interface)– Definierte Softwareschnittstelle zwischen zwei
Programmiersprachen (z.B. embedded SQL in C++) oder einer Programmiersprache und dem Betriebssystem
• BMS (Basic Mapping Support)– „Sprache“ in der Maps für CICS-Anwendungen geschrieben
werden können
Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes
1/1