Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung...

50
Von Transaktionsmonitoren zu Applikationsservern Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 1 Vorlesung: Software-Engineering für große, betriebliche Informationssysteme für Universität Leipzig, Sommersemester 2004 Institut für Software- und Systementwicklung Professur Wirtschaftsinformatik, insbes. Informationsmanagement Hans Hartmann (Generali VIS Informatik Ges.m.b.H., Wien) Wolfgang Keller (AMB Generali Informatik Services GmbH, Aachen)

Transcript of Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung...

Page 1: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Von Transaktionsmonitorenzu Applikationsservern

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 1

Vorlesung: Software-Engineering für große, betriebliche Informationssysteme

für Universität Leipzig, Sommersemester 2004Institut für Software- und Systementwicklung

Professur Wirtschaftsinformatik, insbes. Informationsmanagement

Hans Hartmann (Generali VIS Informatik Ges.m.b.H., Wien)Wolfgang Keller (AMB Generali Informatik Services GmbH, Aachen)

Page 2: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Überblick (1)

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 2

• Die Probleme• Bedienung vieler Dialogbenutzer• MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs heute• Gemeinsamer Zugriff auf Ressourcen – Transaktionen

• Prozeß- und Dialogmodelle• Conversational vs. Transactional Programming• Und die dahinterliegende Prozeßorganisation

• Transaktionen und verteilte Transaktionen: 2PC• ACID Eigenschaften• X/Open Transaktionsmanager

Page 3: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Überblick (2)

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 3

• CICS als Beispiel für einen Transaktionsmonitor• Programmiermodell• Dienste• Zum Vergleich noch IMS• Services von IMS und CICS

• Was leistet im Vergleich dazu ein J2EE Applikationscontainer?

Page 4: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Bedienung vieler DialogbenutzerEin Prozess pro Benutzer

Server

Terminal 1

Terminal 2

Terminal n

Prozeß1

Prozeß2

Prozeß n

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 4

Page 5: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Ein Prozess pro Benutzerdas Modell hat Grenzen ...

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 5

• Das Modell gibt es in verschiedenen Ausprägungen• Zum Beispiel auf der AS/400 – mit bis zu ca. 400 Benutzern• Oder aber auch als Windows Terminalserver mit ca. 20

Benutzern für ca. 4 Prozessoren

• Problem: Prozeßwechsel der Prozessoren sind aufwändig

Page 6: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Leistungsdaten eines Mainframes der 70er Jahre ...

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 6

• Hardware und Leistung „Großrechner“ der 70er• 256 KB Hauptspeicher• 0,5 Mips• Bediente hunderte Benutzer ..

• Im Vergleich dazu ein Pentium PC (200 MHz) .... Im Jahr 2000 ☺• Ca. 200 Mips• 256 KB Prozessorcache ☺• 128 MB++ Hauptspeicher

• Im Vergleich dazu ein AMD Athlon XP 2500+ (1833 MHz) .... Im Jahr 2004 ☺• Ca. 6800 Mips (Quelle c‘t)• 512 Prozessorcache ☺• 64 bit Prozessor – Adressraum ziemlich groß, ca 19. Trillionen

• Aber Vorsicht – MIPS allein sagen nichts über die Dialog- und IO-Leistung

Page 7: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Nur als Dimension: Projezierte MIPS Entwicklung Großanwender

0

2000

4000

6000

8000

10000

12000

14000

16000

18000

20000

22000

2001 2002 2003 2004

MIPS

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 7

Page 8: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Was war anders undFolgerungen

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 8

• Anwendungen waren weniger CPU intensiv• Datenbanken weitgehend nicht existent – VSAM Files und

ähnliches• Weniger Ressourcen pro Benutzer• Maschinen waren auf Batch- und nicht Dialogbetrieb ausgelegt

• Man brauchte also ein Konzept für leichtgewichtige Prozesse• Threads waren damals noch nicht bekannt

Page 9: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Bedienung vieler DialogbenutzerEin Prozess pro Benutzer

Server

Terminal 1

Terminal 2

Terminal n+1

Prozeß1

Prozeß 2

Terminal n

Terminal n+2

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 9

Page 10: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Pro Terminal muß es einen Kontext im Prozeß geben ...

Terminal 1

Terminal 2

Prozeß1

Terminal n

Kontext 1

Kontext 2

Kontext n

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 10

Page 11: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Problem 2: Gemeinsamer Zugriff auf Datenbanken

Kontostand = 2

Add 1

Add 1

Lesen (2)

Lesen (2)

Schreiben (3)

Schreiben (3)

Kontostand = 3

2+1+1 = 3 ???Klassische Race Condition

Prozess 1 Prozess 2 Datenspeicher

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 11

Page 12: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 12

Prozeß- und Dialogmodelle

Page 13: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Prozeß- und DialogmodelleConversational Programming

Login

Repeat until Logout

Send screen mapGet screen mapIf not logoutWanted

process input

Logout

Problem:Hier lebt ein Prozeß, der keine

produktive Arbeit leistet – ihn auch nur zu suspendieren ist teuer!!

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 13

Page 14: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Zu einem Prozeßkontext bei symmetrischem Multiprocessing gehören u.a. ...

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 14

• Name des Prozesses• Bezeichnung der gerade bearbeiteten Aufträge• Stellung in der Prozeßhierarchie• Rechnerkernzustand (Register, ...)• Alarmzustand• Arbeitszustand• Rechte• Betriebsmittelkonten• Beschreibung zugeordneter Objekte und Betriebsmittel (IO,

Controller, Screens, ...)• Beschreibung des Programmadreßraumes

Quelle: Siegert, Betriebssysteme, Eine Einführung, Oldenbourg Verlag 1988

Page 15: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Und bei einem Prozeßwechsel passiert folgendes ...

Quelle: Siegert, Betriebssysteme, Eine Einführung, Oldenbourg Verlag 1988Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 15

Page 16: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Transactional Programming

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 16

For all input maps of all users

Repeat until doomsday

Analyse map and find the right programm

Invoke the programProgram sends map

Free the ressources

Assign ressources

Queue

Page 17: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Transactional Programming

the program

analyse input mape.g. derive virtual keysfind proper action and subsequent dialog state

perform the actionset new dialog statesend new map

Mindestens das sagt uns. Wir brauchen einen Zustand oder aber

auch Kontext ...

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 17

Page 18: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Vorsicht also: Der Begriff Transaktion bedeutet ..• Transaktion im Sinne von „transactional programming“

• Man programmiert „eine Transaktion“• Transaktion im Sinne der Datenbankprogrammierung

• Ich muß eine Transaktion gegen eine Datenbank fahren

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 18

Page 19: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Transaktionen und verteilte Transaktionen: 2PC• ACID Eigenschaften• 2PC

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 19

Page 20: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

ACID Eigenschaften (1)

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 20

• Atomicity (Atomarität)eine Transaktion wird entweder komplett ausgeführt (commit) oder gar nicht – sie erscheint dann so, als wäre sie nie gestartet worden (rollback).

• Consistency (Konsistenz)eine Transaktion führt eine Datenbank von einem konsistenten Zustand in den nächsten über(Hinweis: konsistent = technisch konsistent)

Page 21: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

ACID Eigenschaften(2)

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 21

• Isolation: Transaktionen, die zeitlich parallel ausgeführt werden erscheinen so, als wären sie isoliert voneinander (hintereinander) ausgeführt worden

• -> siehe Serialisierbarkeitstheorie, Sperrprotokolle• Durability:

Nach dem Commit werden die Effekte dauerhaft, also persistent gespeichert

Page 22: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Beispiel für verteilte TAsoder TAs mit >1 Ressource ..

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 22

• Wenn ein Callcenter-Mitarbeiter von einem Kunden einen Auftrag für eine Waschmaschine bekommen hat, muss Folgendes passieren:

• (OP1) Auftrag, Rechnung: Es muss ein Auftrag und eine Rechnung erstellt werden. Die Rechnung muss in der Buchhaltung verbucht werden.

• (OP2) Auslagerung, Lieferschein: Die Verfügbarkeit der Waschmaschine im Lager muss geprüft werden und falls vorhanden, muss die Waschmaschine ausgelagert werden. Der Einfachheit halber nehmen wir an, dass die Waschmaschinen immer lagernd verfügbar sind. Wir können deshalb immer einen Lieferschein erstellen. Die Auslagerung und der Lieferschein benötigen als Daten:

– die Rechnungsnummer und die Auftragsnummer,– die Adresse des Kunden.

• (OP3) Montageauftrag: Es muss ein Montageauftrag erstellt werden. Der Auftrag weist einen Mitarbeiter an, die Waschmaschine aus dem Lager abzuholen, zum Kunden zu bringen und dort zu montieren.

Page 23: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Beispiel für verteilte TAsoder TAs mit >1 Ressource ..

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 23

• In einem Unternehmen können an einem solchen Vorgang zum Beispiel vier DV-Systeme auf verschiedenen Plattformen beteiligt sein:

• ein Auftragserfassungssystem,• ein Buchhaltungssystem,• ein Lager- und Bestandsverwaltungssystem,• ein System für Transport- und Montageaufträge.

Page 24: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Verteilte Transaktion (Beispiel)

Auftrags-erfassungssystem

(Call Center)

Buchhaltung(T3)

Lagersystem(T4)

Transport- undMontage-

Auftragssystem(T5)

Auftragssystem(T1, T2)

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 24

Page 25: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Transaktionsbaum

(T0) Auftrag Waschmaschine erledigen

Auftrags-erfassungssystem

(Call Center)

(T1) (T2)

(TA)

(T3)

(T4) (T5)

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 25

Page 26: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

TransaktionsbaumTransaktions- und Ressourcemanager

Anwendung

T0 (TM)

T1 - RM1

Anwendung1 Anwendung2

T2 - RM2

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 26

Page 27: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

2PC Teilnehmer

Anwendung(AW)

OriginatorAnwendung

(AW)Originator

Anwendung(AW)

Originator

Transaktions-manager

(TM)OTS

RessourceManager

(RMi)

begincommitrollback

prepare, commitrollbackjoin

Aufrufe

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 27

Page 28: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

2PC Beispiel

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 28

AWOriginator

TMOTS AW2 RM2AW1 RM1

begin

op1

register Res

Exec SQLreturn

return

Page 29: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

2PC Beispiel

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 29

AWOriginator

TMOTS AW2 RM2AW1 RM1

commitprepare

yesprepare

yes

commit

commit

ack

ack

Page 30: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Als anderes Modell gibt es auch noch „Soft Rollback“

op1 op2

op1-1 rollback

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 30

Page 31: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

TP-Monitore – ganz allgemein (1)

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 31

• Ein „transaction processing monitor“ ist eine Art von Middleware. • Er nimmt einen Strom von Request entgegen von vielen Clients• Er bietet „failover“ Management, wenn einer der Server versagt

und steuert Transaktionen im Auftrag des Clients• Er bietet Übersetzung von Kommunkationsprotokollen an

Page 32: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

TP-Monitore – ganz allgemein (2)• Er konsolidiert Requests und Antworten darauf (Responses)

ziwschen Clients und vielen heterogenen Servern• Er bietet darüber hinaus umfangreiche Funktionen zu seiner

eigenen Steuerung an (Service Monitoring)

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 32

Page 33: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

TP Monitor - allgemeinClient

Client

Client

Client

Client

Client

Client

Request SchedulerS

ervi

ce 1

Ser

vice

1S

ervi

ce 1

Process

Ser

vice

1S

ervi

ce 1

Ser

vice

2

ProcessS

ervi

ce 1

Ser

vice

1S

ervi

ce 3

Process

Ser

vice

1S

ervi

ce 1

Ser

vice

n

Process

TP M

onito

r

Legacy

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 33

Page 34: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 34

CICS als Beispiel für einen Transaktionsmonitor

Page 35: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

CICS heißt• Customer Information Control System

• Beinhaltet Unterstützung für „transactional programming“• Und für 2PC – also Unterstützung für Transaktionen

mit mehr als einer „managed ressource“

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 35

Page 36: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

CICS Prozessorganisation

Quelle: Brössler et al.; Softwaretechnik, Hanser 2000Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 36

Page 37: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

CICS typisch – wie es verwendet wurde und wirdTypical ScenarioCICS tasks are usually started by someone at a 3270 terminal (or its equivalent) pressing oneof the 3270 "transmit" keys (ENTER or one of the PFkey). They are usually ended by a CICSapplication program explicitly ending the task. A typical scenario:

• A user hits Enter. • CICS remembers the transaction code left behind by the previous task (or CICS picks it out of the screen data). • CICS verifies that this terminal user is authorized for that transaction code. • CICS schedules the initial program for that transaction code, the task is born. Any passed COMMAREA is placed in the "linkage section".• That (or subsequent) program "maps" the terminal data to see what has been asked of it.• If appropriate, other programs are invoked. • VSAM or DB2 data is retrieved and/or written. • A program sends a screen image back to the terminal. • A program returns control to CICS. It identifies which transaction to run the next timethat terminal operator responds and the data to pass to the initial program. This ends the task.

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 37

Page 38: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Unter CICS Programmierern bekannte Eigenschaften• Alle CICS Tasks eines CICS laufen im selben Prozeß• Damit sind sie nicht gegeneinander geschützt

• Man kann durch eine Endlosschleife eine ganze CICS Instanz aufhängen• Man kann durch Programmierfehler die Daten anderer Tasks zerstören

oder das komplette CICS abschießen

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 38

Page 39: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Aufbau eines CICS „Anwendungsprogrammes“

Quelle: Brössler et al.; Softwaretechnik, Hanser 2000Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 39

Page 40: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Zum Vergleich: IMS Prozeßmodell

Prozesse

Quelle: Brössler et al.; Softwaretechnik, Hanser 2000Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 40

Page 41: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Eigenschaften von IMS

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 41

• Jedes „Anwendungsprogramm“ läuft bei IMS in einem oder mehreren Prozessen

• Damit besteht Speicherschutz• Ein fehlerhaftes Programm kann das IMS-System nicht abschießen• Ein fehlerhaftes Programm kann aber sehr wohl die Daten einer anderen

Session des selben Programmes „zerschießen“• Aber nicht die anderer „Programme“

Page 42: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Und zum Vergleich die IMS „Programmschleife“

Quelle: Brössler et al.; Softwaretechnik, Hanser 2000Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 42

Page 43: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Welche Services bieten IMS und CICS also (1)

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 43

• Unterstützung für performantes „transaktionales“ Programmieren auf Maschinen, die für Batch-Processing ausgelegt sind

• Zuordnung von Terminalsessions zu Programmen• Unterstützung für leichtgewichtige Prozesse• Halten von Kontext über Dialogschritte (CICS: COMMON AREA)

• Da gibt es Limits, z.B. 32kByte Größenbeschränkung – Beeinflusst den Programmierstil

• DLL-artiges, performantes Nachladen von Unterpogrammen• Und wie schaut das mit richtigen DLLs aus? Gibt es auch seit zOS.

Page 44: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Welche Services bieten IMS und CICS also (2)

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 44

• Transaktionsklammer (Ressorce Manager) über mehr als eine transaktionsgesicherte Ressource .. Also zum Beispiel

• DB2• IMS-DB• Und von jedem auch mehr als eine Instanz

• Es gibt aber auch Gefahren• Schlecht programmiertes CICS kann sogar den SYSPLEX

beeinträchtigen, also bis zur Sicherungsmaschine durchschlagen.

Page 45: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 45

Was leistet im Vergleich dazu ein J2EE Applikationsserver?

Page 46: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

J2EE ApplikationsserverWo finde ich den?

Client Schicht Web KomponentenSchicht

Business LogikSchicht

EIS Schicht

Browser

AppletContainer

Web KomponentenContainer

EJB Container

Servlet

JSP

EJB

Applet

ERPSysteme

LegacySysteme

Daten-banken

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 46

Page 47: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

J2EE ApplikationsserverWo finde ich den?

Geschäfts-prozess-Schicht

Integrations-schicht

Application-Server-schicht

WebProtokolle

XMLUnter-

stützung

Transak-tionsunter-stützung

DirectoryDienst

AsynchroneNachrichten

Konnek-toren

Web Container EJB Container

Web-Komponenten EJBs

Entwicklungstools und-frameworks

Metadaten-Management

Regelmaschine

IntelligentesRouting

Nachrichten-Transformation

Geschäftsprozess-Modellierung

Geschäftsprozess-ausführung

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 47

Page 48: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

J2EE ApplikationsserverWesentliche Dienste

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 48

• Ressource Manager für TA – Steuerung• Container für Programme

• JSP, EJB, Servlets• Persistenzdienste (CMP und BMP)• Load Balancing• Security• Messaging• Name Services• Backend Connectivity (Konnektoren)

Bei CICS/IMS so nicht direkt vorhanden ...

Page 49: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

J2EE Applikationsserver

Selbstbeschreibung eines Repräsentaten ...

Quelle:Borland

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 49

Page 50: Von Transaktionsmonitoren zu Applikationsservern · 2004. 6. 17. · • Die Probleme • Bedienung vieler Dialogbenutzer • MIPS-Entwicklung: Die Hosts der 70er Jahre ... Die PCs

Zusammenfassung

Vorlesung „Software Engineering für große, betriebliche Informationssysteme“, © 2004 Hans Hartmann, Wolfgang Keller, all rights reserved, Universität Leipzig, SS2004 50

• Namen und Programmiersprachen haben sich geändert • Produkte sind besser geworden – die Frameworks sind

umfangreicher• Herausforderungen sind ähnlich geblieben

• Performantes Bedienen von Requests vieler Clients• Transaktionssteuerung• Weitere Anwendungsdienste

• Kenntnis „der alten Eisen“ immer nocht ganz nützlich – weil man sie immer wieder integrieren muß