Transaktionsmonitore II Beispiel CICS DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon Inhalt • • • • • • • Allgemeines über CICS CICS im Betriebssystem CICS Transaktion Programmstruktur Verwendung Programmentwicklung Programmierstile DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon Allgemeines ü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 DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon Allgemeines ü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) DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon CICS im Betriebssystem 1/3 • OS/390 Betriebssystem FF…FF CICS DB2 USS TSO Relationale Datenbank Unix Shell Entwicklungsumgebung OS/390 Kernel 00..00 • 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 DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon CICS im Betriebssystem 2/3 • CICS – Region CICS CICS – Anwendungen DB2 USS TSO OS/390 Kernel CICS - Nucleus • 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) DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon CICS im Betriebssystem • CICS – Region FF…FF 00…00 3/3 CICS – Anwendungen CICS - Nucleus • CICS-Dienste (Ressource-Manager) werden als Threads innerhalb des virtuelle Adressraumes ausgeführt und vom CICS-Nucleus verwaltet. DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon CICS Transaktion 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 DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon CICS 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: Müller Vorname: Fritz Geb.-Dat.: 13.5.1952 Name: Meier Vorname: Horst Geb.-Dat.: 12.6.1938 Name: Strauch Vorname: Karl Geb.-Dat.: 3.1.1824 Bem.: Bem.: Bem.: langweilig stur pedantisch tod • Bsp.: „CEDA“ ist die Transaktions-ID einer Anwendung, die Bestandteil von CICS ist (Aufruf einer interaktiven CICS-Shell) DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon Programmstruktur 1/3 • Aufbau eines CICS – Anwendungsprogrammes Transaktions – ID TRID (4 Byte) Bildschirmausgabe Business Logik Mapset Zusammen: CICS Anwendung (Group) Programm DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon Programmstruktur 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. DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon Programmstruktur 3/3 • In unserem Beispiel: • TRID: ABCD • Mapset: (hier nur ein Map) Name: Vorname: Geb.-Dat.: Bem.: • Programm: liefert die Daten Strauch Karl Meier 3.1.1824 Horst Müller 12.6.1938 Fritz tod 13.5.1952 stur pedantischlangweilig DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon Verwendung 1/1 • Abarbeitung einer CICS – Transaktion Eingangsbildschirm CICS - Aufruf Identifizierung UserID und Passwort Eingabe TRID TransaktionsMenü Auswahl Ausgabe Antwortbildschirm DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon Programmentwicklung 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) DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon Programmentwicklung 2/3 SQL - Precompiler Quellprogramm Programm mit native DB2 API CICS - Precompiler Programm mit native CICS API C - Compiler Object Programm Linking Maschinenprogramm (ausführbar) DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon Programmentwicklung 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 DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon Programmierstile 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 DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon Programmierstile 2/2 • Ablauf einer Pseudo-Conversational Transaction Benutzer - TA aktiv passiv aktiv CICS - TA Zeit passiv Start Commit – Die logische Benutzertransaktion wird in mehrere reale CICSTransaktionen 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. DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon Zusammenfassung 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) DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon Zusammenfassung 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 PseudoConversational Transaction (reale Unterteilung der logischen Session) programmiert werden. DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon Abkü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 DB-Seminar 2003: Großrechneraspekte / Mainframes Christoph Salomon