Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte /...

21
Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes

Transcript of Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte /...

Page 1: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

Transaktionsmonitore IIBeispiel CICS

Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes

Page 2: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-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

Page 3: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-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

Page 4: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

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

Page 5: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

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

Page 6: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

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

Page 7: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

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

Page 8: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

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

Page 9: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

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)

Page 10: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

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)

Page 11: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

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.

Page 12: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

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

Page 13: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

Verwendung

Christoph SalomonDB-Seminar 2003: Großrechneraspekte / Mainframes

1/1

• Abarbeitung einer CICS – TransaktionEingangsbildschirmCICS - Aufruf

IdentifizierungUserID und Passwort Eingabe TRID

Transaktions-Menü Auswahl

AusgabeAntwortbildschirm

Page 14: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

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)

Page 15: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

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

Page 16: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

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

Page 17: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

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

Page 18: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

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

Page 19: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

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

Page 20: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

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

Page 21: Transaktionsmonitore II Beispiel CICS Christoph Salomon DB-Seminar 2003: Großrechneraspekte / Mainframes.

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