 Der jetzt kommende Vortrag der letzte für den heutigen Tag auf dieser Bühne sind Geschichten aus der Kobol-Gruft von Harbrock. Harbrock arbeitet seit über zehn Jahren mit Kobol bei einer Versicherung und hat einen Vorgängervortrag bei den diesjährigen Mein-Kaus-Days gehalten. Den muss man nicht kennen, aber das ist jetzt hier die Fortsetzung und ich wünsche euch viel Spaß damit. Hallo, also wie schon gesagt, das ist gewissermaßen Teil zwei. Ich hoffe mal, dass es hier nächste Kopfschmerzen führt. Wir hören Teil eins, wo Leute tatsächlich einen Kopf auf Tische geschlagen haben, im Republikum. Diesmal erzähle ich über die Großrechnerumgebung, die in Versicherungen, Banken und auch an anderen Stellen immer noch im Einsatz ist. So ein Großrechner ist von der Konstruktion optimiert auf Zuverlässigkeit und Datendurchsatz. Das kommt daher dass die Entwicklerinnen der Rechnerin zu einem Zeitpunkt begann, als es nicht so viele Rechner gab. Also in einem Unternehmen stand dann durchaus nur ein Rechner oder so. Die Zuverlässigkeit sorgte dann dafür, dass die Rechner redundant ausgelegt sind und zwar sogar recht extrem. Bei heutigen Großrechnern kann man durchaus flüssigkeitsgekühlte Prozessermodule im Laufendenbetrieb tauschen, ohne Probleme, oder auch beliebige andere Bauteile und der Rechner selbst. Also das ist so die größte 219 Zollrechner nebeneinander. Die Festplatten sind dann aber externe angehörte. Festplatte oder früher Bandlaufwerke. Die Ein- und Ausgabe sah früher so aus, per Lochkarte oder Lochstreifen bzw. Lochkartenstapel. Ja, pro Lochkarte eine Textzeile. Also wie hoch dann der Stapel ist bei einem Programm von mehreren tausend Zeilen, kann man sich vorstellen. Es kam sogenannte Schreibmaschinenterminal als interaktive Bedienelemente dazu. Also größermaßen ein Drucker mit angeschlossener Tastatur oder auch Fernschreiber genannt. Ab 1972 gab es dann Datensichtgeräte, wie es das schön auf Deutsch heißt. Also im Fall von IBM 3270 Terminals. Da kann man sich vorstellen, wie ein Monitor, eine Tastatur und noch ein lokaler Pufferspeicher. Oder in heutiger Terminologie wird man das vielleicht als Fanclient bezeichnen. Ja, die waren dann aber noch sehr beschränkt. Also der erste Monochrom, also grün auf Schwarz, so wie meine Folien auch. Man konnte grün sogar in hell und dunkel, also zwei Helligkeitsstufen darstellen. Spätere Terminals konnten dann acht Farben plus blinken und unterstrichen, also alles nur Text. 24 Zeilen, 80 Zeichen oder dann auch speziellere Terminals mit mehr Zeilen. Und für Spezialanwendungen gab es auch welche für den APL-Zeichensatz, also für eine so etwas grafischer orientierte Mehrsprache. Oder für Vektor-Grafik. Aber insgesamt bei Grafikdarstellung war da nichts. Ja, mittlerweile sind die Terminals nahezu ausgestorben, aber es gibt ja noch die Terminalemulation auf dem PC, die man tatsächlich im Unternehmenseinsatz auch noch findet. Also bei uns im Unternehmen müssen die Sachbearbeiter tatsächlich die Online-Programme noch in der Terminalemulation bedienen. Oder heutzutage wird dann vor dem Großrechner an Frontend gesetzt als PC-Anwendung oder Online-Anwendung im Browser. Ja, da die Terminals tatsächlich sehr eingeschränkt waren, gab es dann den, oder gibt es immer noch den Unterschied zwischen Online- und Batchbetrieb. Also für den Online-Betrieb kommen die Transaktionsmanager zum Einsatz. Jetzt im Fall der IBM Z-Series Großrechner werden das der IMPS-TC oder ZIX, wie der Name schon sagt, sind die Transaktionsorientiert. Das heißt im Fall vom Terminal, dass man halt die sogenannte Bildschirmmaske, was man auf dem Schirm gesehen hat, sozusagen lokal bearbeitet hat, irgendwelche Daten eingegeben oder verändert oder so. Und durch Druck auf die Tastedatenfreigabe wurde dann die Maske an den Großrechner geschickt, um an dort vom Programm weiterverarbeitet zu werden. Und eine Ausgabe, da geht immer noch im Hintergrund dann an Datenbanken oder Unterprogramm oder so, beziehungsweise das Ergebnis wird dann wieder auf der Terminal angezeigt, der Terminal Emulation. Aufgabe des Transaktionsmanagers ist es hauptsächlich mit den ganzen Programmen, die so Ablauf mit den User-Interagieren zu sortieren, dass die User tatsächlich nur auf ihre Daten zugriff haben, beziehungsweise dass der Speicherinhalt pro User sortiert wird. Und zuerst sicher sind auch im Hintergrund Transaktionen möglich, also Programme, die ohne Eingriffe eines Nutzers ablaufen. Da der Online-Problem hat, wenn zum Beispiel viele Daten in der Datenbank gesperrt werden, gibt es auch noch den Batch-Betrieb, das ist dann ohne Interaktionsmöglichkeit, also das Programm läuft mit gewissen Eingabewerten über den Datenbestand. Das werden so Beispiele, wie zum Beispiel für alle fälligen Verträge die Prämenrechnung zu erstellen und dann Drucker zu geben. Das läuft üblicherweise nachts, nennt sich Batch-Fenster, also ist dann auch die Erklärung, falls sich schon mal jemand gewundert hat, warum man zum Beispiel mit Banken oder Versicherungen eventuell nachts nicht interagieren kann, dass da dann irgendwie die Daten online nicht zur Verfügung stehen oder so. Ja, ich habe gerade eben schon IMS Transaktionsmanager genannt, der wurde zusammen mit der IMS-DB, also einer Datenbank entwickelt. Das handelt sich ja hierbei um eine hierarchische Datenbank, sprich die Daten liegen sozusagen, also sind baumförmig strukturiert, also 1 zu 1 Beziehungen und 1 zu n Beziehungen sind darstellbar, aber die MZN Beziehungen sind nur mit Klimtzügen bzw. Redundanz in die Datenbank zu bekommen. Ja, diese Datenbanke hat den, oder dieses Datenbanksystem hat nur Vorteile recht schnell bei Zugriffen zu sein, aber nicht sonderlich komfortabel, also SQL-Abfragen funktionieren nicht, sondern für eine Auswertung, wo man in einer relationalen Datenbank vielleicht 10 Minuten oder eine Viertelstunde eine SQL-Abfrage zusammenschreiben würde, dann schreibt man da durchaus einen halben Tag ein Programm, aber man weiß, wie man auf die Datenbank zugreifen muss. Etwas ein weiteres Problem mit der IMS-Datenbank, was heutzutage besonders schön ist, ist, Änderungen an irgendwelchen Daten setzen, werden beidweise gespeichert. Das heißt, wenn man auf einen früheren Zustand zurückgehen möchte, muss man tatsächlich jede einzelne Änderung wieder verarbeiten und wenn man einfach so auf die Daten schaut, sieht man absolut nicht, was überhaupt passiert ist. In manchen Unternehmen oder in vielen Unternehmen wurden die IMS-Datenbanken mittlerweile abgeschafft oder abgelöst. Da kann man aber durchaus auf das Problem stoßen in der aktuellen Entwicklung, dass die Daten, so wie sie sind, einfach in DB2-Tabellen geschrieben wurden, also in einer Relationaldatenbank. Das heißt, man hat immer noch die Freude mit den historischen Daten, die beidweise abgespeichert sind und dementsprechend SQL-Abfragen auf historische Sätze funktionieren trotzdem immer noch nicht. Da verlässt sich diese Umwandlung mit Generatoren durchführen und ist deswegen günstiger. Zum Thema Wanderse entwickelt wurde, es wurde 1966 bis 1968 von IBM, North American Rockwell und Alcatapilla zusammen entwickelt. Wenn man an den Namen vielleicht sehen kann, es wurde als Stücklisteverwaltung für das Apollo-Programm entwickelt. Dafür ist die Datenstruktur auch wunderbar geeignet, weil man damit prima ablegen kann, welche Teile man für eine Baugruppe braucht. Also was als Tipp, wenn jemand mal mit Raumfahrttechnik was zu tun haben will, aber ein relativ einfachen Einstieg oder relativ einfachem Hinkommen möchte. Sicherheitsaspekte von einer Großrechnerumgebung. Früher sah das so aus, dass Vernetzungen lief höchstens über feste, angemettete beziehungsweise Well-Leitungen, weil hat ja so gut wie niemand überhaupt einen Rechte. Also in einem Unternehmen hat man vielleicht ein oder zwei Großrechner irgendwo stehen gehabt. Datenübertragung erfolgte durchaus per Kurier, sogar bis vor wenigen Jahren habe ich das bei Kollegen mitbekommen, dass die Datensätze, die von unserer Versicherung an eine Bank gingen, also an Wasser, jetzt an Lastschriften eingezogen werden müsste. In einem bestimmten Format wurden die Daten auf ein Magnetband geschrieben, z.B. wurde ein Begleitzettel ausgedruckt und das Ganze ging an so an die Hausbank, bei denen im Rechner eingespielt wurde wieder und dann verarbeitet, sodass dann für das täglichen Kassau, obwohl täglich jemand mit dem Magnetband von uns zur Bank gefahren ist und dann noch ein Band wieder zurückgebracht hat. Da Computer groß und teuer waren, hatte auch im Grunde niemand irgendwo hart, wer rumstehen, um automatisiert Angriffe zu fahren, selbst wenn die Leitung verfügbar gewesen wäre. Also sowas wie Passwerte durchprobieren oder so war für Privatpersonen ziemlich utopisch. Ja und rechte Management war eigentlich komplett in Haus und von außen konnte eigentlich auch niemand wirklich zugreifen. Dementsprechend haben auch problemlos achtstellige Passwerte für die Anmeldung oder auch nur ein vierstelliges Passwort mit wenigen Versuchen für die Anmeldung am Transationsmanager ausgereicht. Ja wie sieht das heute aus? Da die Terminals ausgestorben sind, hängt der Großrechner im lokalen Netzwerk, weil jeder Sachbearbeiter ein PC auf dem Tisch stehen hat und dementsprechend zwischen dem Großrechner und dem bösen Internet hängt dann halt das an Wasser, also an Sicherheit. Da ist Firewalls oder so. Also gut, muss man dann sehen wie, also wie sicher das dann ist, ist, denke ich, von Unternehmen zu Unternehmen unterschiedlich, aber das interne Rechner Management wurde bzw. Zugriffrecht wurden insofern verbessert, dass man die Anmeldung am Transationsmanager auch gegen Active Directory binden kann. Also mittlerweile sind es keine vierstelligen Passwerte mehr, sondern halt das normale Windows-Passwort. Allerdings die Anwendungen, die auf so einem Großrechner laufen, die sind häufig durchaus schon etwas älter, weil da immer wieder weiter entwickelt, aber da steckt dann durchaus die Fachlogik von Jahrzehnten drin. Also ich habe mir mal Spaß gemacht im Einsystem, von dem ich wusste, dass es schon relativ alt ist, kurz zu suchen, wie alt die Programme schon sind und das älteste Änderungsdatum, was ich gefunden habe, war von 1983. Also software, die so alt ist und immer auf der Zeit so teuer war, da schrecken wohl viele Unternehmen davor zurück, die wegzuwerfen und neu zu schreiben und ohne dadurch gefühlt groß etwas zu gewinnen. Ja, dann zum Thema Federsuche. Programmen darf man groß rechnen. Wie sieht das aus? Logs vom Programmlauf, was man bei der Entwicklung berücksichtigt hat und rausgeschrieben hat, wird gelockt, sonst sonst nichts. Also sollte man sich überlegen, was man im Fehlerfall eventuell brauchen könnte, aber man sollte auch nicht so viel rausschreiben, sonst wird die Datei so lange, man muss händisch drin suchen und außerdem ärgert sich der Rechenzentrumsbetrieb, weil die Dateien so groß werden. Und das kostet ja natürlich Speicherplatz. Im Absturzfall, man kriegt einen Dampf, was Speicher war und die Zahlennummer und Namen des abgestürzten Programms und warum es in der Zeile abgestürzt ist oder warum das System denkt, dass es in der Zeile abgestürzt ist. Für den Speicherdampf schreibt man dann auch besser am Anfang das Bereich für die variablen Definitionen im Programm. Irgendein Text hat, den man relativ gut finden kann, das macht die Suche im Dampen einfacher, obwohl die variablen stehen. Die Bugging in Batch-Programm Display Statements, die gehen in Online-Programmen nicht sinnvoll, die laufen dann nämlich in eine Datei, die nur das Operating sieht und die finden das nicht so toll, wenn er das Diss-out zugemüllt wird. Vor allem nicht wenn das Programm dann im Online-Betrieb produktiv läuft und Aktion der Sachbearbeiter jeweils ausgaben da dazäugen. Sonst gibt es ein paar zukaufbare Debugger, die aber durchaus eigene Probleme haben. So hatte ich schon mit einem Debugger zu tun, bei dem ich nie verstanden habe, unter welchen Bedingungen eine Änderung an der Variable dann eigentlich den bedingten Breakpoint ausgelöst hat. Und unter welchen Bedingungen der nicht ausgelöst wurde. Also hat man in heutigen Sprachen und Entwicklungsumgebungen doch etwas komfortablerer Möglichkeiten zur Fehler suche. Denn Ablösung des Großrechners gibt es mittlerweile doch einige Bestrebungen in verschiedensten Unternehmen. Dafür gibt es dann auch verschiedene Gründe. Also wie schon gesagt, die Software, die da drauf läuft, ist alt und häufig schwieriger zu warten, weil sich dann halt die Programmierspädele aus 30 Jahren angesammelt haben. Die Korrekturen durchaus häufig so auf die Schnelle erfolgten. Also Korrekturkode eingefügt. Häufige noch mangelte sinnvolle Versionsverwaltung mit Änderungskommentaren davor und danach, dass so das dann durchaus nicht die Änderungskommentare über die Jahre angesammelt haben und teilweise häufiger oder teilweise dann mehr Zeilen beanspruchen hat das eigentliche Programm. Ja, dann weiteres großes Problem ist das Personal, das halt der älteren und zunehmenden Ruhestand geht. Also mit 40 bin ich einer der jüngsten Kobolentwickler bei uns im Unternehmen und dabei geht es nicht nur ums Personal für die Software Entwicklung und Wartung, sondern auch die Leute für den Großrechner Betrieb. Wo es noch schwieriger ist, einen Nachfolger zu finden, weil das dann doch recht speziell ist und sich von normaler Serverumgebung doch stark unterscheidet. Ja, und insgesamt ist der Betrieb so eines Großrechners recht teuer, also nicht nur wegen der Personalkosten und wegen der Kosten für die Software-Wartung, sondern wer so ein Großrechner im Programm hatte und den Mitwartungsvertrag irgendwo in den Unternehmen stellte, dem ist schon klar, dass das Unternehmen gewisse Probleme hat, die Software abzulösen, weil wie schon gesagt, sind Jahrzehnte an Entwicklung reingeflossen oder wenn man die Personenjahre erzählt, eher im Bereich Jahrhunderte oder so, so dass man sich durchaus auch was kosten lassen kann oder kosten lassen muss, also ein Großrechner im Haus zu betreiben, so dass es durchaus viele Unternehmen gibt, die ein Großrechner eigentlich loswerden möchten. Ja, aber beim Loswerden gibt es dann auch eigene Probleme, also Eigenentwicklung der Software, die schon da ist, ist natürlich aufwändig, also wie gesagt, Personenjahrunderte sind da reingeflossen, also muss man durchaus mit einigen Personenjahrzehnten wohl rechnen, bis man da dann Software hat, die eigenen Ansprüche erfüllt, wenn man sie in den Haus entwickelt. Ja, und zumindest im Versicherungsbereich sieht es wohl so aus, dass es recht wenig Software von Drittanbietern gibt für eine moderne Umgebung und die Qualität des Reihilfs durchwachsen, also wie ich das per Flurfung mitbekommen habe, das sieht dann so aus, dass es zwei Unternehmen gibt, deren schönes System für die private Krankenversicherung haben, die können dann aber, oder deren Lebensversicherungssystem ist dann aber nicht wirklich toll und das System für die Allgemeine auch nicht. Dann gibt es Unternehmen, die haben ein schönes Lebensversicherungssystem, aber Krankenversicherung sieht nicht so toll aus und so weiter. Und man hätte natürlich schon gerne, dass die Sachbearbeiter ein System haben, in dem sie klarkommen, egal ob der Kunde der Anruf jetzt ein Problem mit seinem Krankenversicherungsvertrag hat oder mit einem Lebensversicherungsvertrag und sie nicht für jedes System einzeln geschult werden müssen. Das ist dann auch wieder teuer und aufwändig. Und Gerüchteweise führt die Situation dazu, dass es beiden leitende Datenverarbeitungsabteilungen in den Unternehmen eigentlich zwei Gruppen gibt. Diejenigen, die sozusagen verzweifelt nach einem neuen System suchen, um den Großrechner endlich aus dem Haus zu bekommen und diejenigen, die das nicht tun, weil sie wissen, in fünf Jahren bin ich sowieso im Ruhe stand und das interessiert mich nicht mehr. Ja, okay, dann war ich doch etwas schneller als gedacht. Ja, und ich bitte um Fragen. Fangen wir da drüben an. Mit was für Umgebungen hast du da im Allgemeinen gearbeitet, dieses System, den du erhattest, waren das Systeme, die hauptsächlich auf Elpa aufgesetzt haben mit US 93 ZOS, ZVSE oder irgendwas oder eher auch mit virtuellen Gästen unter ZVM? Entschuldigung, ich habe die leider nicht verstanden. Okay, noch mal. Die Großrechner Applikationen, mit denen du zu tun hast, auf welcher Basis laufen die US 93 VSE? Ist das Elpa oder ist es auch ein virtuelles Envolvement oder ZVM? Also bei uns im Haus läuft es in der ZOS im Gehbung alles. Danke. Und das ist eine Mikro, bitte. Ja, ich wollte mal fragen, wie du die Entscheidung der IBM jetzt siehst, dass sie ja irgendwann in den 80er Jahren eigentlich versucht haben, IMS komplett loszuwerden, soweit dass sie ihren Vertrieblern verboten haben, das Wort IMS überhaupt in den Mund zu nehmen und dann so Anfang der Nullzigerjahre überrascht festgestellt haben, dass die Leute immer noch dabei sind, dass es inzwischen einen sehr langen Katalog von Feature Requests gab, aber die IBM seit 15 Jahren einfach keine Abteilung mehr hatte, um dieses System zu entwickeln und dann plötzlich aus dem Nichts eine neue Abteilung von Kobold- Spezialisten mit IMS-Kentnissen irgendwie herforzhabern mussten, um die Kunden zufrieden zu stellen. Okay, danke für diese Bestätigung. Das ist etwas, was ich im Hinterkopf hatte, da ich dazu aber nichts gefunden habe, habe ich es nicht im Talk drin gehabt. Also aus Sicht von IBM kann ich es durchaus nachvollziehen, wenn sie da alte Zöpfe abschneiden wollten. Ja, offensichtlich waren Kundenseitige aber so problematisch, die Anwendungen umzustellen, dass sich die IBM sozusagen breit schlagen lassen, das System noch weiter in Betriebzen nehmen. Ich werde mal vermuten, sie haben sich das dann auch passend bezahlen lassen, aber dass man die IMS-Datenbank loswerden will, kann ich aber durchaus nachvollziehen. Also mit meiner Erfahrung damit also, dass die Datenbank wohl relativ schnell ist, aber es ist sehr schwierig, Daten überhaupt rauszubekommen. Jetzt mal auf die schnelle Sätze. Und jetzt eine Frage aus dem Internet, Signal Angel. Schneedern fragt im ERC nach einem Vergleich der Rechenleistung von dem, was du jetzt Großrechner nennst, zu modernen PCs. Das kann ich leider nicht sagen. Wie das aussieht, weiß ich leider nichts darüber. Das Mikrofon auf der Seite. Hallo, ich wollte fragen, was ihr für eine Entwicklungsumgebung auf dem Großrechner verwendet oder ob ihr lokal eine habt wie Visual Edge oder so? Ich habe auch mal wieder einen Teil verstanden, bezüglich der Entwicklungsumgebung, jetzt zumindest für die Softwareentwicklung. Bis vor ein paar Jahren war das TSO ein Editor für Cobol. Das waren dann tatsächlich in der 32-70 Terminal-Emulation, also 24 Zeilen, 80 Zeichen pro Zeile. Das war für mich gefühlt immer programmierend durch einen Briefschlitz. Das führte dann dazu, dass ich mir den Quelltext zuher sich noch im Online-Repositoren im Browser aufgemacht habe, um wenigstens ein bisschen was zu sehen. Mittlerweile ist die Entwicklungsumgebung aber dem RDZ, also eine Eclipse-Variante von IBM, angepasst auf die ZOS-Umgebung. Danke. Moin, IBM hat zur Z14 BCD-Vektor Instruktionen eingeführt. Hast du die schon mal benutzt? Sag mir jetzt überhaupt nichts. Also die Begründung war, die normalen BCD-Instruktionen sind etwas langsam, deswegen machen wir jetzt SIMD mit BCD. Habt ihr versucht, Lockdaten von DB2 oder vom Host mal in externe Systeme zu bringen, um dann nachzuweisen oder zu schauen, ob da Tabellen für Rechnungsdaten verändert worden sind, um dann Rechnungsnachweis zu bringen? Wer mir jetzt nichts bekannt, aber das wäre dann eher im Großrechner Operating angesiedelt beziehungsweise bei den Datenbankmenschen, solche Überprüfungen. Also ich gehe mal davon aus, dass es sowas gibt, aber ich weiß nichts genaueres darüber. An den Mikros sehe ich keine Fragen. Wie schaut es mit dem Internet aus? Nichts. Ja, dann haben wir die offenen Fragen alle abschließend geklärt. Vielen Dank nochmal für den Vortrag und die Antworten und einen schönen Abend noch.