Title: Transaktionsmonitore II
1Transaktionsmonitore II
Christoph Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
2Inhalt
- Allgemeines über CICS
- CICS im Betriebssystem
- CICS Transaktion
- Programmstruktur
- Verwendung
- Programmentwicklung
- Programmierstile
Christoph Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
3Allgemeines über CICS
1/2
- 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 Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
4Allgemeines über CICS
2/2
- 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 Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
5CICS im Betriebssystem
1/3
- 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
FFFF
CICS
DB2 Relationale Datenbank
USS Unix Shell
TSO Entwicklungs-umgebung
OS/390 Kernel
00..00
Christoph Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
6CICS im Betriebssystem
2/3
CICS
DB2
USS
TSO
OS/390 Kernel
- 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 Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
7CICS im Betriebssystem
3/3
FFFF
CICS Anwendungen
CICS - Nucleus
0000
- CICS-Dienste (Ressource-Manager) werden als
Threads innerhalb des virtuelle Adressraumes
ausgeführt und vom CICS-Nucleus verwaltet.
Christoph Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
8CICS Transaktion
1/2
- Zu einem CICSSubsystem gehört eine Menge von
- CICSAnwendungen
- 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
Christoph Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
9CICS Transaktion
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üller Fritz 13.5.1952 langweilig
Name Vorname Geb.-Dat. Bem.
Meier Horst 12.6.1938 stur pedantisch
Name Vorname Geb.-Dat. Bem.
Strauch Karl 3.1.1824 tod
- Bsp. CEDA ist die Transaktions-ID einer
Anwendung, die - Bestandteil von CICS ist
- (Aufruf einer interaktiven CICS-Shell)
Christoph Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
10Programmstruktur
1/3
- Aufbau eines CICS Anwendungsprogrammes
TRID
Transaktions ID (4 Byte)
Mapset
Bildschirmausgabe
Zusammen CICS Anwendung (Group)
Programm
Business Logik
Christoph Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
11Programmstruktur
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.
Christoph Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
12Programmstruktur
3/3
Christoph Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
13Verwendung
1/1
- Abarbeitung einer CICS Transaktion
Eingangsbildschirm CICS - Aufruf
Identifizierung UserID und Passwort
Eingabe TRID
Transaktions- Menü Auswahl
Ausgabe Antwortbildschirm
Christoph Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
14Programmentwicklung
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)
Christoph Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
15Programmentwicklung
2/3
CICS - Precompiler
Programm mit native CICS API
C - Compiler
Object Programm
Linking
Maschinenprogramm (ausführbar)
Christoph Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
16Programmentwicklung
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
Christoph Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
17Programmierstile
1/2
- Ablauf einer Conversational Transaction
Benutzer - TA
aktiv
passiv
aktiv
CICS - TA
Zeit
Start
Commit
- Ü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
Christoph Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
18Programmierstile
2/2
- Ablauf einer Pseudo-Conversational Transaction
Benutzer - TA
aktiv
passiv
aktiv
CICS - TA
passiv
Zeit
Start
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.
Christoph Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
19Zusammenfassung
1/2
- 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 Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
20Zusammenfassung
2/2
- 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 Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes
21Abkürzungen
1/1
- 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 Salomon
DB-Seminar 2003 Großrechneraspekte / Mainframes