Transaktionsmonitore II

Werbung
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
Herunterladen