Alle Beiträge von Tom

Software Engineering Ariane 5

Im Zuge einer Vorlesung im Fach Software Engineering an der HS Trier im Februar 2015 wurden in einigen Nebensätzen sozusagen prominente Fälle gescheiterter Projekte mit softwarelastigem Hintergrund besprochen.

Aufgrund technischem Interesse an Luft- und Raumfahrt ist mir der erwähnte Vorfall der Ariane 5 besonders nachhaltig in Erinnerung geblieben, der sich Mitte der 90er Jahre ereignet hat.

Was war geschehen? Das neuentwickelte Trägersystem „Ariane 5“ Startnummer V88 hob am 04. Juni 1996 um 12:34 Uhr GMT mit 1 Stunde Verzögerung zum ersten Mal vom Weltraumbahnhof Kuorou in französisch Guayana ab. Nach ca. 40 Sekunden explodierte das System. Außer einem Sachschaden in mehrstelliger Millionenhöhe wurden die vier an Bord transportierten Sateliten zerstört – also Know-How und Entwicklungsarbeit vernichtet – aber es gab keine menschlichen Opfer zu beklagen. Der Vorfall überwarf den Plan um über 3 Jahre in die Zukunft. Ein Testflug im Oktober 1997 fand nur mit Satelitenattrapen und dem von Studenten aus über 10 Ländern entwickelten YES-Sateliten statt. Der erste kommerzielle Flug fand 3 Jahre später statt. Die vier ursprünglichen Sateliten wurden vier Jahre (!) später von russischen Systemen in die Erdumlaufbahn befördert.

Hintergrund zum Trägersystem

Das Vorgänger-Trägersystem Ariane 4 wurde von 1982 bis 1988 entwickelt, d.h. die Entwicklungszeit nahm 6 Jahre (!) in Anspruch. Das System Ariane 5 wurde in 1988 zur Entwicklung freigegeben und im Jahre 1996 fertig gestellt – ein Jahr nach Plan, da der Erstflug bereits im Oktober 1995 hätte stattfinden sollen. Nur um es zu verdeutlichen: die Entwicklungszeit dieses Systems dauerte 8 Jahre! Betrachtet man diesen langen Zeitraum (in dieser Branche eine Ewigkeit) aus Sicht der Projektphasen Anforderung, Analyse, Entwicklung, Bau und Test möglicher Komponenten UND den Umstand, dass damals vermutlich das Verhältnis 50/50 oder 60/40 von Entwicklung zu Test einherging UND die Schwierigkeit dass ein einziges für dieses Großprojekt gegründete französische Unternehmen eine Vielzahl von Zulieferern organisieren musste sowie den kompletten technischen und wirtschaftlichen Part zu verantworten hatte, so werden 8 Jahre schlicht kurz. Dazu kommt, dass ein solch komplexes System nicht vollständig getestet werden kann. Es gab den Erstflug und der führte zu einem Fehlstart. Fertig.

Operanden-Fehler verursachte fehlerhafte Flugdaten

Die Flugdaten des Trägheitsnavigationssystems (auch „inertiales Navigationssystem“ genannt, inertial von lat. iner=träge) lieferten dem Hauptcomputer Daten, die an das Steuersystem weitergegeben und verarbeitet wurden. Genau genommen arbeitete alles gemäß der Softwareprogrammierung.

Hier eine vereinfachte Darstellung des Systems.

thomas-zehrer-de_sri-ocs-sensoren

Abb: einfaches UML über Abhängigkeiten OCS, SRI und Sensoren.

Der Hauptcomputer (OCS, Onboard Computer System) hat also zwei Navigationssysteme zur Verfügung. Das aktive SRI2 (Inertial Reference System, Trägeheits-Navigationssystem) hat die Aufgabe, über Gyroskope und Geschwindigkeitsmesser – also Sensoren, die an der Trägerrakete angebracht wurden – Navigationsdaten an den Hauptcomputer weiterzugeben, der diese Daten zur Berechnung und Anpassung der Flugbahn benötigt. Das im Hot-Standby befindliche Backupsystem SRI1 war als redundantes Hardwaresystem auch mit indentischer Software ausgestattet.

E_BH verursachte den Fehler

Der Code für das Trägheits-Navigationssystem SRI wurde der Ariane 4 entnommen. Eine nach der Bergung der Überreste gegründete Expertenkommission fand nach 4 Wochen den eigentlichen Fehler.

thomas-zehrer-de_ada-code-ariane5

Abb: Quellcode Programmiersprache ADA

Vereinfacht kann die Zeile so abgebildet werden:

PM_DERIVE(T_ALG.E_BH) =UC_16S_EN_16NS(E_ENTIER_16S ( (1 / C_M_LSB_BH) * G_M_INFO_DERIVE(T_ALG.E_BH))

Mich würde brennend interessieren, was UC_16S_EN_16NS genau macht. Versucht die Funktion eine Konvertierung von 16S signed in EN 16 NS nonsigned oder kann diese beide Arten Signed und Unsigned verarbeiten? Dann vermute ich hinter der C_M_LSB_BH eine Konstante sowbei die Variable LSB ein Kürzel für „Large Super Booster“ – die Flüssiggas-Tanks mit Brenner – sein kann. Sicher ist, dass E_BH in die Berechnung ständig einfließt, siehe rechten Term, hinten. Es heisst auch, dass der E_BH aus 64-bittigen floating-Werten berechnet wird. Das kann dann nur die C_M_LSB_BH oder der Multiplikant G_M_INFO_DERIVE (kann G_M etwas mit Gyro-Blabla, also der Wert der Sensorenphalanx sein?) sein. Trotz mehrere Suchen im Internet fand ich hierzu nichts bedeutendes.

Der Wert für die horizontale Ausrichtung (BH, horizontal bias) war aufgrund der technischen Eigenschaften der Ariane 5 (u.a. höhere Schubkraft, höhere Horizontal- und Vertikalgeschwindigkeit) ab einem Zeitpunkt X höher als die Werte der Ariane 4.

Der fehlerhafte Wert in E_BH sorgte also für einen Absturz der Software im SRI2, lieferte vorher aber ein Fehlerwertmuster an den Hauptcomputer. Das in hotstandby befindliche SRI1 war wenige Millisekunden voher bereits down – aufgrund des gleichen Fehlers. Btw: hotstandby heißt in diesem Fall, dass eigentlich zwei Systeme ständig arbeiten so dass im Notfall der Hauptcomputer vom Backup-SRI mit einer Zeitverzögerung im Millisekundenbereich Daten erhalten kann.

Das vom SRI2 gelieferte Fehlwertmuster wurde vom OCS Hauptcomputer angenommen und ungeprüft verarbeitet. OCS führte wie befohlen aufgrund der Werte Richtungsänderungen durch wobei die Korrekturen die strukturelle Integrität der Rakete überlastete. Das Raumfahrzeug brach auseinander. Eigentlich wurde es voher von Sicherheitssystemen an Board zur Explosion gebracht bzw. wäre von der Bodenstation ausgehend gesprengt worden.

thomas-zehrer-de_ariane5-serie

Abb: Serie von Sek. 38 bis 44 nach Liftoff

An der obigen Bilderserie ist gut zu erkennen, dass es vor der Explosion einen Richtungswechsel gegeben hat, der eine Detonation zur Folge hatte.

Wie könnte man einen solchen Fehler verhindern?

In heutiger Zeit wendet man beispielsweise für binäre Programmmodule – Software, für die also der Quellcode nicht zur Verfügung steht – sogenannte Blackbox-Tests an.

Bei Black-Box-Tests stellt man sich zu Beginn anhand sog. Äquivalenzklassen einen Satz mit Testwerten zusammen. Verlangt eine Eingabe (könnte auch der Parameter einer Funktion bzw. über eine Sensorenphalanx geschehen) einen Zahlenwert, der nicht kleiner als 0 aber auch nicht größer als 100 ist, so wäre diese Variable zu definieren mit var < 0 < 100.  Dann definiert man einen Gut- und einen Schlechtwert. Ein Schlechtwert wäre hier -1 und ein Gutwert kann man als 51 definieren. Die Funktion oder die Eingabe wird nun mit diesen Werten getestet. Gibt es eine Vielzahl Eingabeparameter, so muss eigentlich eine jede Kombination getestet werden. Bei einem Eingabewert wäre das 2 (1 Gutwert und ein Schlechtwert). Bei zwei Eingabewerten wären es schon 2^2 und bei 3 zu prüfenden Werten wären es 2^3 = 8 Werte.  Wieder unter Annahme, es handle sich um 10 zu prüfende Zahlewerten mit jeweils einem Gut- und einem Schlechtwert, dann wären 2^10 = 1024 Möglichkeiten zu prüfen.  Im technischen Umfeld Maschinen- oder Anlagenbau sowie in der Elektrotechnik gibt es oft eine Vielzahl von Parametern. Dann sollte von der Testperson das Ergebnis interpretiert werden können.  Alles nicht so einfach.

Vorhandener Quellcode – also sog. Whiteboxes – kann dagegen mit Whitebox-Testverfahren getestet werden.

Dabei kann der Quellcode generellen Analysen unterzogen werden: z.B. mit der sog. „zyklomatischen Zahl“.  Der Code wird zunächst als sog. Programmablaufgraph abgebildet. Alle Kanten, d.h. alle if-else- und Schleifen-Anweisungen werden gezählt, genau so die Kanten von Anweisung zu Anweisung. Eine if-else ist eine Kante. Eine Schleife ist ebenso eine Kante. Ein Knoten kann eine Anweisung sein. Dann wird die Zahl berechnet mit Z = e – n  + 2.  Wobei: e = edges und n = nodes.

Beispiel anhand eines 5-Zeilers:

thomas-zehrer-de_programmablaufgraph

 Abb: Code und der Programmablaufgraph

Obiges Beispiel hat 10 Kanten und 9 Knoten (Start und Stop mit gezählt).  Die zyklomatische Zahl lautet hier: 10 – 9 + 2 = 3. Man liest: die Zahl sollte den Wert 10 nicht überschreiten.

Ist der Programmablaufgraph erstellt, kann anhand daran der Quellcode nachvollzogen werden und zwar mit mehreren verschiedenen Verfahren:

Anweisungsüberdeckende Tests, d.h. der Test sollte alle Konten abdecken. Im obigen Fall wäre das Testmenge i= 2 oder 3.

Zweigüberdeckende Tests, d.h. alle Kanten/Zweige sollten mind. 1 mal durchlaufen werden. Oben wären das bei Testmenge  i = 3 und 5;

Dann gibt es noch den pfadüberdeckenden Test, bei denen alle Prüfungen mind. 1x erfolgreich und 1x nicht erfolgreich sein sollen. Schleifen sollen zudem komplett durchlaufen werden. Die Testsätze vermehren sich entsprechend.

Abschließend ist wichtig zu wissen: Quellcode soll gut dokumentiert werden. Die Funktionsparameter sollen in Funktionsköpfen dokumentiert werden ebenso was die Funktion genau macht mit einem entsprechenden Rückgabewert.

Die Aussage „ich bin gleich fertig – ich muss nur noch Testen“ darf es so nicht geben. Ein Verhältnis Entwicklung/Test von 50/50 oder 60/40 ist nicht außergewöhnlich.

In der Flug- und Raumfahrttechnik gibt es bspw. Levels, die anhand Konsequenzen festgelegt werden: katastrophal (Level A), gefährlich/schwerwiegend (Level B), erheblich (Level C) und geringfügig (Level D) und unbedeutend (Level E).  Nach Standard DO-178B muss eine 100%-iger Überdeckungsnachweis anhand obiger drei Testverfahren gebracht werden.

Ob das auch eine Übernahme von funktionierendem Code aus alten Systemen einschließt?  „Normal scho…“

Asiatisches IT-Kungfu. Ooss!

Vor kurzem hatte ich die Möglichkeit, über einige Trainingseinheiten der asiatischen Kampfphilosophie „Karate“ bei Sensai Rainer Hieckmann zwei bedeutende Konzepte der Bewegung kennen zu lernen. Es handelt sich dabei um die Bewegung als Reaktion auf einen Angriff, der bereits stattgefunden hat oder in diesem Augenblick stattfindet.

An dieser Stelle muss zunächst gesagt werden, dass es innerhalb von Karate keine Angriffsszenarien gibt. Die Kampfkunst beruht auf Abwehrstrategien. Die Feststellung „in karate, there is no first strike“ gibt den Gedanken wieder, der darauf hinweist, dass der geschichtliche Ursprung von Karate dem Selbstverteidigungszweck diente.

Geschichtlicher Abriss

Okinawa als Insel im südchinesischen Meer um Japan und China war in früheren Zeiten um 1500 wirtschaftlich und militärisch interessant. Diese Umstände sorgten dafür, dass die Insel regelmäßig als Mittelpunkt militärischer Auseinandersetzungen heimgesucht wurde. Die Menschen wollten sich rüsten und verteidigen und somit erließen die dortigen Herrscher das Waffenverbot. Alles was als Hieb- und Stoßwaffe zu gebrauchen war, musste abgegeben werden. Es kam sogar soweit, dass in einem Dorf nur ein Messer für die Zubereitung von Speisen erlaubt war. Dieses wurde zentral gelagert und bewacht. Die Bevölkerung war also entwaffnet. Nun gab es im vorindustriellen Japan die der Kriegerkaste angehörigen Samurai. Diesen Samurai war die sogenannte „Schwertprobe“ erlaubt. Sie durften ihr Schwert an allem toten und lebenden Getier sowie an toten und auch lebenden Menschen „probieren“, was auch gemacht wurde. Die Menschen passten sich an und lehrten und lernten die Verteidigung mit der leeren Hand. In etwa entspricht das „Kara“ dem „leer sein“ und das „te“ ist die Hand – ähnlich der Karaoke, das als leeres Orchester übersetzt werden kann.

„Sen o Sen“ und „Go o sen“

Also weiter zu den besagten Bewegungs-Reaktionsphilosophien. Das Go o Sen wird im Karate typischerweise im Kumite angewandt. Der Angreifer – und ja, bei Kumite-Partnerübungen gibt es den klassischen Angriff – kündigt vorher sein Vorhaben an, der Angegriffene sieht den Angriff kommen und – hier ist der entscheidende Punkt zum Go o Sen, er nimmt den Angriff dadurch auf, dass er abwehrend zurückweicht, dem Angreifer die Technik vollenden lässt und im Anschluss entweder einen Gegenangriff unternimmt oder weitere Techniken des Angreifers abwehrt. Dabei muss sich der Abwehrende bereits während der Abwehr über den nächsten Schritt im Klaren sein, den er unternimmt, wenn wenige Milisekunden später der Angriff abgeschlossen ist. Und wiederum ja: das hört sich alles schön getaktet an. Soweit das Go o Sen.

Das Sen o Sen ist für den Abwehrenden sehr viel schwieriger umzusetzen aber immens effektiver. Der Angriff findet statt, dieser wird abgewehrt und ein umittelbarer Gegenangriff erfolgt. Wird das Sen o Sen korrekt umgesetzt, so gibt es für den Angreifer keine Möglichkeit mehr, mit einem weiteren Angriff zu folgen, denn: der Abwehrende blockt den Angriff regelrecht in Kombination mit einem Konter, der Angriff kommt nicht zur Vollendung. Man kann sich das so vorstellen, dass eine jede Abwehrtechnik zunächst als solche eingesetzt werden kann aber auch als Angriff nützlich ist.

Das Timing ist hier entscheidend. Der Angreifer wählt sich einen Zeitpunkt für eine Angriffstechnik. Er beginnt, diese auszuführen und während der Ausführung erkennt der Abwehrende das Vorhaben und unternimmt in diesem Augenblick mit einer vorsorglichen Abwehrtechnik einen Schritt in Richtung Angreifenden, der die Technik noch nicht vollendet hat, in Kombination mit z.B. einem Stoß. Unheimlich effektiv.

Parallelen in die IT.

Versucht man jetzt, direkte Parallelen in die IT zu ziehen, so funktioniert Sen o Sen auch hier: Viele Ereignisse, die letztlich in Downzeiten der Systeme oder Datenverlust enden, kündigen sich an. Am Beispiel eines einfachen Festplattenausfalles – unwichtig ob eine klassische Festplatte oder eine Solid State Disk – lässt sich an S.M.A.R.T.-Parametern im Vorfeld erkennen, dass z.B. ein Datenverlust drohen kann (z.B. über Monitoring mit Nagios). Serversysteme geben über eingebaute Überwachungssyteme (z.B. ILO bei HP) Auskunft über verschiedenste Systemparameter und kündigen somit Probleme im Vorfeld an. Oder Systemprotokolle in Serverbetriebssysteme (z.B. die Windows Ereignisanzeige) gibt Auskunft, wie oft ein Benutzername zur Anmeldung verwendet wird, dito am Gateway oder in Routersystemen. Der Systemadmin sollte sich Sen o Sen aneignen. Die Angriffe, d.h. bevorstehende Einschläge oder sich anbahnende Probleme, sollten im Augenblick des Angriffs abgewehrt werden. Kommt es zur Vollendung des selbigen, ist der Aufwand der Fehlerbehebung um ein Vielfaches größer. Zudem kann Datenverlust auftreten, d.h. Daten sind unwiderruflich weg!

IT-Probleme kennen keine Kumite-Partnerübungen. Sie kündigen sich im besten Falle mit genügend Reaktionszeit an und sind DA. Verantwortliche müssen das Viergestirn der Datensicherheit unbedingt im Auge behalten:

1.) Die Datenintegrität, die sicherstellt, dass Daten nicht unabsichtlich verändert oder unbrauchbar gemacht werden können. 2.) Die Datenverfügbarkeit, die dem Nutzer Datenverlust ersparen soll. 3.) Die Vertraulichkeit, die den berechtigten Zugriff gewährleisten soll und 4.) Die Authentizität, die den Urheber der Daten nachhaltig glaubhaft machen soll.

Also Admins: Sen o Sen. OoSS.

Humanismus und Technologie

Ich möchte an dieser Stelle eine Erklärung und Stellungnahme zum Begriff Humanismus vermeiden. Seit Jahrhunderten diskutieren und streiten mehr oder weniger Fachleute über Humanismus und wie jemand ist, der sich damit identifiziert und wie er dann nicht sein darf. Ich sehe den Humanismus als eine Möglichkeit, miteinander über Grenzen hinweg leben zu können.  Stellt man den Anthropozentismus – also den Mensch – nicht zwingend in den Mittelpunkt, denn das macht der Humanismus nicht automatisch, dann hat sogar die freie Wahl – frei im den Sinne, den die westliche Welt als frei kennt – der Ausübung religiöser Zeremonien noch Platz.

Der Humanismus also. Wie steht es im Humanismus mit der Technologie, die uns umgibt?

Ein Ereignis, das ich im Oktober 2014 interessiert verfolgte, zeigte mir zum wiederholten male, dass wir – der Homo Technologicus der modernen Welt – unseren Kurs überdenken sollten.

Es war die Verleihung des Friedenspreises des Deutschen Buchhandels an den Informatiker Jaron Lanier [tschaeron lani-e]. Freilich möchte ein solches Ereignis in unserer Zeit Aufmerksamkeit auf sich ziehen, was in diesem Falle funktioniert hat. Sieht und hört man sich diesen Jaron Lanier näher an, erkennt man, dass er durch und durch Informatiker ist. Er spielt nicht nur auf Musikinstrumente, die vor 7000 Jahre bereits bestanden und gespielt wurden. Er bezeichnete Frank Schirrmacher als ein Licht in unserer Welt, das uns fehlen würde. Er gibt sich als Versteher, als ein Checker. Er sieht die Dinge klar, die vor sich gehen und wohin der Weg führen kann. Er ist Fellow an renomierten wissenschaftlichen Einrichtungen in den USA und er ist Softwareentwickler bei einem namhaften Hersteller, was ihn fachlich abhebt. Er versucht einen Weg zu definieren, auf dem alle Menschen die Technologie zu ihrem Gute nutzen können.  Einige seiner Aussagen und Gedanken möchte ich hier kurz nennen, die er u.a. in der Paulskirche in Frankfurt am 12.10.2014 in seiner Dankesrede verlauten lies:

  • die digitalen Netzwerke dieser Welt sollen dem Menschen zu Gute kommen. Dieser „digitale Kulturoptimismus“ sollte nicht benutzt werden um mit ausgefeilten Algorithmen letztlich das menschliche Tun vorhersagen zu können. Er nennt als Beispiel die digitalen Netzwerke um Energie, den Mangel sowie den Überschuss dessen über große Distanzen hinweg erkennen und mit Hilfe von Solarstrom ausgleichen zu können.
  • die gegenwärtige Nutzung digital-vernetzter Medien sorge erst für die Möglichkeit der Überwachung der Benutzer, die das nicht erkennen. Das Sammeln von Daten erschaffe eine Klasse ultraelitärer, unberührbarer Technologen, die als kleine Gruppe Zugriff auf das Datenuniversum der Nutzer habe.
  • In der Onlinewelt (gemeint sind hier v.a. die Sozialen Netzwerke) führe die These und Antithese nicht mehr zu einer höheren Synthese. Hegel definierte den Vorgang als Weg zum wissenschaftlichen Standpunkt. Lanier vergleicht: „Hegel wurde enthauptet“.
  • Der Blick auf das große Ganze kann nur mit Medien geschehen, die außerhalb des großen Ganzen erstellt werden. Buchautoren teilen in Momenten mit dem Lesern gemeinsame Gedanken. Bücher stellen eine gedankliche Verbindung von Autor und Leser her. Heute gehen Bücher mit der Pflicht einher, Zeugnisse über Leserverhalten abzugeben um wiederum von wenigen mächtigen Stellen analysiert und bewertet zu werden.
  • Der Glaube an das menschliche Wesen solle dem Glauben an die Maschinen vorkommen. Der Glaube an den Menschen sei vereinbar mit dem Glaube an Gott. Technologen sollten zumindest versuchen, den Menschen als solchen wahrzunehmen.

Letztlich sind es Freundschaften, Familien die den Menschen ausmachen, erstaunenswert machen und wirken lassen und auf das dieser sich verlassen sollte.

Aber wieso bringe ich hier Jaron Lanier? Es gab noch einen anderen Augenblick in der nahen Vergangenheit. Es war 2008 im März. Es starb ein anderer Pionier, der Computer und Netzwerke geprägt hat. Joseph Weizenbaum war es, der wenige Monate vorher noch Interviews gab und es bis zuletzt nicht lassen konnte, mit gehobenen Zeigefinger den User zu warnen, dass der gegenwärtige Weg, sich von Maschinen abhängig zu machen, falsch sei.

  • Wenn der Computer Einsatz findet, kann diese Entwicklung nicht rückgängig gemacht werden. Er nennt Banken- und Börsensoftware als Beispiel. Er sprach damals in den 80ern von „künstlichen Intelligenzprogrammen“ – heute würde er Algorithmen sagen. Der Hebel könne nicht mehr zurückgelegt werden, wenn die Maschinen lebenswichtige Dienste ausführen würden.
  • Der Mensch verlasse zu schnell die Realität und findet so die Partnerschaft zu der Maschine. Er traut der Maschinen zu schnell zuviel Kraft zu.
  • Programme zur künstlichen Intelligenz (es ging um das von ihn selbst in 1966 entwickelte „Eliza“) geben Informationen aus, die der User schlicht falsch verstehen würde. Alleine die Aussage des Computerprogrammes „Eliza“ z.B. wie „Yes, i understand“ als Antwort auf von User eingegebe Wörter wie „Heute hatte ich einen schönen Tag“ bezeichnet der Autor der Software als „Lüge“.

Das Erlebnis mit Eliza muss ab 1966 prekär seine weitere Ansicht über die Maschine definiert haben. Er war enttäuscht wie schnell (es war damals eine Mitarbeiterin seiner Verwaltung) das Programm als ernster Kommunikationspartner akzeptiert wurde.

Bereits Anfang der 70er mahnte er publik („Die Zeit“ Hamburg, Ausgabe von Freitag, den 21. Januar 1972), dass der Mensch auf eine schwere geistige Krise zusteuern würde. Der Mensch traue der Maschine zu viel zu. Dieser ist ununterbrochen damit beschäftigt, darzulegen, der Computer beweise, dass der Mensch und seine intellektuelle Leistung doch nur eine Maschine aus Fleisch sei. Er verteufelte diese Ansichten: „Alleine eine solche These zu erwähnen bedeutet, dem Nutzen der Freiheit des Menschen, seiner Würde und seiner Anstrengung zu widersprechen“. Wie könne der Mensch sich das selbst nur antun?

Der Mensch solle versuchen, das Ende seiner Tätigkeit zu erkennen, zu erkennen wohin die Reise ginge. Und wenn er das vollendete Tun verantworten kann und wenn während der Entstehung und im letztlichen Nutzen ein Cancel möglich ist, dann solle der Mensch das tun was er für sinnvoll hält.

Der Mensch solle gegenseitigen Respekt üben und lernen bevor er sich an die Arbeit macht, er solle Vernuft dem Legen entgegen bringen und sich in Bescheidenheit besinnen.

Legendär war sein Auftritt auf dem Open Forum in Davos im Jahre 2008 (alles bei Youtube einsehbar) wo er wieder die künstliche Intelligenz kritisierte: „… und da wird ein absoluter Blödsinn gesagt, z.B. Sie sagen jetzt schon zwei mal – HALLO MIT IHNEN SPRECHE ICH – <its happening> und <es wird weitergehen> …“. Weizenbaum wetterte zurecht, dass die Audience keinen Ton von sich gibt, als der Wissenschaftler die KI prohezeit, die eh nicht verhindert werden kann. Der Gesprächspartner warf Weizenbaum vor „You are a little bit negativ“ wobei Weizenbaum den Faden aufnahm: „Nein, nicht nur ein little negativ, ich bin richtig negativ“ – prädikat Sehenswert, wie der Fachmann seine Meinung vertritt.

Am Ende meines Betrages erkennt man, dass obige beide Persönlichkeiten den Blick in die Büchse der Pandora geworfen haben und sich bekehrt haben.

Der Mensch müsse wieder eine bedeutendere Rolle bei der Suche seines selbst spielen. Eine Einstellung, die ich teilen möchte. Das Individuum in die Mitte rücken, den Menschen Mensch sein lassen. Seinen Glauben leben lassen, ihn akzeptieren, der wiederum weiß, dass er akzeptiert wird und ist – es wäre grandios!

 

Die Geschichte des Internets

Wie auch auf den Vorläufern von thomas-zehrer.de (seit mittlerweile die 5. Seite seit 1998), so stelle ich auch hier meine eigene Internet Story von 1999 online.  Der Text stammt aus meiner frühen Zeit im Internet, die Jahreszahlen habe ich i.G.u.G. unverändert gelassen – hat Charme. Viel Spaß beim Lesen.

Die Anfänge…

Die Grundsteinlegung des Vorgängers unseres heutigen Internets ist in der Tat nicht leicht zu finden. In einigen Quellen wird das Jahr 1957 erwähnt, da der russische Satellit „Sputnik“ die Erdumlaufbahn erreichte und somit die Ära des „Kalten Krieges“ begann. Die USA erkannte die Gefahr dieser Zeit und mußte sich über ein System Gedanken machen, das abhörsicher ist, und im Falle eines atomaren Angriffes trotzdem funktionsfähig bleibt. Aus diesem Grund wurde im Jahre 1958 die Einrichtung „ARPA – Advanced Research and Projects Agency“ gegründet. ARPA war eine Einrichtung des US-Verteidigungsministeriums und somit militärisch begründet.

Das ARPANetwork und die IMPs…

Im Jahre 1967 übergab ARPA an die Abteilung „Information Processing Techniques“ den Auftrag, Überlegungen und Theorien über ein Netzwerk anzustellen, das vorallem abhörsicher war und trotz Störungen die Kommunikation aufrechterhalten konnte. Für diesen Zweck plante der damalige Präsident von ARPA, Charles Herzfeld ein Budget von 1 Million Dollar ein um dieses Ziel realisieren zu können. Zu dieser Zeit war Robert Taylor Chef dieser IPT-Abteilung. Taylor gab die Entwicklungsarbeiten an Lawrence Roberts, einen seiner Wissenschaftler weiter. Roberts‘ Theorie baute auf Netzwerkknoten auf, die untereinander ein Art Ring bildeten. Fiel ein Netzwerkknoten aus, so konnten die Daten über einen anderen angeschlossenen Netzwerkknoten geroutet werden. Um diese Theorie der Öffentlichkeit bekanntgeben zu können, veranstaltete Roberts ein Treffen in Ann Arbor/Michigan zu dem bekannte Wissenschaftler aus der damaligen Zeit eingeladen wurden. Einer dieser Gäste war Paul Baran, Mitarbeiter von RAND Corporation, der sich schon Anfang der 60er über „Packet switching“, also das weiterleiten von Daten über Kommunikationsmedien, Gedanken gemacht hatte. Beran fand gefallen an Roberts‘ Idee und so versuchten sie, gemeinsam eine Lösung für die besagten Netzwerkknoten zu finden. Die Zusammenarbeit erwies sich als erfolgreich, als ein Jahr später die Theorie des „IMP – Internet Message Processor“ veröffentlicht wurde. Der Auftrag, einen IMP zu entwickeln, wurde an die Firma „Bolt, Beranek and Newman“ (kurz: BBN, Sitz in Cambridge/Massachusetts) weitergegeben, da sie schon Erfahrung in Bezug auf die Entwicklung von militärischen Kommunikationsmedien vorweisen konnte. Roberts war auch für die Auswahl der ersten Standorte zuständig, die Prototypen des ersten IMP in Betrieb nehmen durften. Universitäten eigneten sich sinn- und zweckmäßig hierfür am Besten.

Entwicklung und Einsatz der ersten IMPs…

Der Mann, der Neujahr 1969 bei BBN für die Entwicklung des „Interface Message Processor“ zuständig wurde, hieß Frank Heart. Heart war MIT-Absolvent und leitete die Forschung von „Real-Time-Computing“ an den „Lincoln Labs“ in den 50er und 60er Jahren bevor er zu BBN wechselte. Er beschloss, den IMP nicht neu zu erfinden. Ein damals überaus leistungsstarker Minicomputer der Firma Honeywell, nämlich der „DDP-516“ (übrigens: 12 KByte Speicher), sollte für die Zwecke eines Netzwerk-IMPs modifiziert werden. Heart bevorzugte den DDP-516, da sich dieser Rechner bereits im Dienst der Army bewährt hatte, und nach APRA-Vorschriften aufgebaut war.

BBN mit Frank Heart
BBN mit Frank Heart

 

Sein Team an Programmierern (siehe Bild, Mitte: Heart) und Hardwaretechnikern hatten 9 Monate Zeit, um die DDP-516 zu einem IMP umzuwandeln, zu programmieren und zu debuggen. Der 30.August 1968 sollte dann ein Denkmal setzten. Der erste Prototyp eines IMPs wurde in der Universität von Los Angeles/Kalifornien installiert. Hier kam als Betriebssystem SDS Sigma 7 zum Einsatz.  Ein weiterer IMP folgte am 1.Oktober 1968, diesesmal in der Abteilung „Network-Information-Center“ am „Stanford Research Institute“ unter der Leitung von Doug Engelbart.

Übrigens: Engelbart ist auch Erfinder der Computermaus!. Im Gegensatz zum ersten IMP wurde hier als Betriebssystem das SDS 940/Genie ausgewählt. Genau ein Monat später wurde der dritte Knoten in der Universität von Santa Barbara in Kalifornien in Betrieb genommen. IBM entwickelte hierfür das Betriebssystem „IBM OS 360/75“. Schliesslich wurde der letzten der vier Testknoten an der „University of Utah“ aufgestellt. Auf diesem Host kam ein Betriebssystem von Digital, nämlich DEC PDP-10 zu Einsatz.

Der erste Loginversuch…

Bereits nachdem der zweite Knoten am „Stanford Research Institute“ (SRI) installiert wurde, unternahmen die Wissenschaftler einen ersten Loginversuch über eine Distanz von mehreren hundert Meilen. Charlie Klein, ein Student an der „University of California“ (UCLA) hackte das erste „L“ ein. „Did you get the L?“, so die Frage nach Stanford, „Yes!“ kam die Antwort zurück. Dann das „O“: „Did you get the O?“, und wieder „Yes!“. Doch zu einfach sollte es nicht werden – Nach dem „G“ crashte die Verbindung.

Doch es war nicht immer so. Im Jahre 1970 wurden immer mehr IMP-Hostrechner und TIP (=Terminal Interface Message Processoren) an das junge ARPA-Netzwerk angeschlossen, bis das ungefähr folgendes Bild ergab:

Erste TIMP im Arpa-Netzwerk.
Erste TIMP im Arpa-Netzwerk.

TIP-Terminals wurden als Art Zwischenstationen zwischen Terminal und IMP eingesetzt und übernahmen Verwaltungsaufgaben im Netzwerk, hatten aber – wie Terminals eben – keine eigene Intelligenz.

Larry Roberts, inzwischen Chef von der Technikabteilung von  ARPA, wollte jetzt der Netzwerk-Welt, die ja noch in Kinderschuhen stand, zeigen zu was dieses neue Medium fähig war. Er bat Bob Kahn bei BBN diese Veranstaltung zu organisieren und entsprechende Software für ein Demo zu entwickeln. Auch Bob Metcalfe, Kollege von Kahn, damals bei XEROX beschäftigt,  war von dieser Idee überzeugt und erklärte sich bereit, möglichst einfach-verständliche Dokumente zu erstellen, um die Funktionsweise verständlicher zu machen. Doch das erwartete Ziel blieb aus, da diese Technik zu neu und komplex für die jungen Studenten und Absolventen war.

In den darauffolgenden Jahren überstürzten sich die Ereignisse: Norm Abramson, Professor an Stanford war aus einem Grund oft auf Hawaii: Surfen! Es kam so, dass die „University of Hawaii“ eben einen dieser Wissenschaftler suchte und Abramson ihnen dieses Geschäft nicht abschlagen konnte. Innerhalb eines Jahres – es war 1970 – arbeitete er an einem radiowellen-basierten Kommunikationssystem um die Inseln von Hawaii – es gibt 7 davon – zu verbinden. Ein Jahr später war es soweit: Das ALOHANet war geboren. Abramson bat Roberts um einen IMP um die Inseln mit dem Festland verbinden zu können. Roberts stimmte zu, und so war es ein weiterer Meilenstein, als zwei Netzwerke verbunden wurden.

ALOHANet sagt man auch nach, dass es der Vorreiter des heutigen Ethernet-Netzwerk war. Denn da die Technik auf Hawaii es nur erlaubte durch einen einzigen Kanal Daten auszutauschen mußte sich Abramson eine Art „Collision-Detection“ ausdenken, um Datenkollisionen vermeiden zu können. Er legte fest, dass jeder Sender zu einem bestimmten Zeitpunkt senden durfte, und nicht erst wenn es möglich gewesen wäre. Traten trotzdem Kollisionen auf, wurden die Datenpakete neu gesendet, wie eben in einem modernen Ethernetzwerk.

TCP/IP,  Unix und das erste EMail …

Im gleichen Jahr wurde es notwendig, die Übertragungsweise der Datenpakete ins Visier zu nehmen, da der Netzwerkverkehr ungewollte Ausmaße erreichte. Ein damaliger Student der UCLA, Vinton Cerf, testete zusammen mit Robert Kahn die Lastenfähigkeit des damaligen Protokolls „NCP – Network Control Protocol“. Cerf hatte damals schon die Vision eines Netzwerkprotolls, welches „Error-Detection“, „Packaging“ und „Routing“ unterstützte. So entstand das Protokoll „Transmission Control Protocol“. Das Team Kahn und Cerf – sie waren jetzt offiziell „The Internetworking Group“ – wurden auch von ARPA beauftragt, Möglichkeiten für die Zusammenschließung von heterogenen Netzwerken zu finden. Sie waren auch hauptsächlich daran beteiligt, als später, 1982, ein Versuch gestartet wurde, die europäischen Netzwerke, welche hauptsächlich auf dem X.25-Standard beruhten, zusammenzuführen.

Doch es gab noch mehrere wichtige Ereignisse in den 70er Jahren. Im Jahre 1970 entschlossen Wissenschaftler der Bell-Laboratories (Teil von AT&T) das vorhandene Betriebssystem Multics zu überarbeiten. Ken Thompson wurde anfangs alleine damit beauftragt, später stieß aber Dennies Richie dazu, der gleichzeitig die Programmiersprache „C“ entwickelte. Der Vorgänger von „C“ war „B“, welche aber wiederum von Thompson stammte!

Thompson entwickelte für den Multics-Nachfolger UNIX die erste Shell sowie den Zeileneditor „ed“. Ritchie verfasste 1971 das erste „UNIX Programmer’s Manual“. Zusammen mit Thompson erhielt er 1983 den Turing-Award von der „Association for Computing Machinery“ (kurz ACM) verliehen. Diese Auszeichnung ist vergleichbar mit dem Nobelpreis oder der Fields-Medaille.

Verleihung der Fields-Auszeichnung an Richie (Mitte) und Thompson (Links) in 1999
Verleihung der Fields-Auszeichnung an Richie (Mitte) und Thompson (Links)

Auf dem Foto oben wurden Richie (rechts) und Thompson im Weissen Haus von Präsident Bill Clinton in Empfang genommen. Ihnen wurde an diesem 27. April im Jahre 1999 die „US National Medal of Technology“ für Ihre Dienste bei den Bell-Labs verliehen.

Ein anderer Pionier, Ray Tomlinson,  machte sich auf und versuchte sich an einem Programm, in C verfaßt, um Nachrichten über das Arpa-Netzwerk zu versenden. Im Jahre 1972 wurden dann erstmals Emails versendet. Der MIT-Abgänger erkannte die Notwendigkeit einer festen Notation: <NAME AT HERKUNFT>, wie es heute Standard ist. Der Geschichte nach wußte Tomlinson nicht, welches Zeichen er von seiner „Model 33 Teletyp“-Tastatur entbehren konnte um die beiden Adressteile zu trennen, und so legte er sich auf das „@“ fest.

Was geschah noch in den 70er Jahren?

Die 70er Jahre waren bedeutend für die Entwicklung des späteren Internets. Arpa-Forscher stellten erste Blackboards und Diskussionsforen auf. 1972 entstand „SF-Lovers“, das erste Diskussionsforum für SF-Freaks, denn Armstrong kam „gerade“ von seiner Reise zurück. Die Firma Digital entwickelte DEC-Net, IBM führte das „System-Architecture-Network“ ein und Xerox rief das „Xeroxnetwork“ ins Leben; alle drei Firmen mit drei verschiedenen Netzwerken in einem Jahr (1974)! Als erste europäische Staaten wurden 1975 England und Norwegen in das bestehende Internet eingebunden. Im gleichen Jahr wurde die Berkley-Unix-Variante mit TCP/IP ausgestattet, und drei Jahre später war erstmals das UUCP-Protokoll im Einsatz. Das „UNIX to UNIX Copy Protocol“ wurde entwickelt um Daten per Telefonleitung zwischen zwei UNIX-Maschinen austauschen zu können. Heute ist UUCP für nahezu alle Rechnerplattformen zu finden, EMails im UNIX-Umfeld werden neben MIME ebenfalls mit UUCP versendet.

Durch die stetige Wachstumsrate der Teilnehmer im ARPANet entschied man sich auch für eine wissenschaftliche Datenbank. Von nun an wurden Fehlerprotokolle, Bemerkungen, Ideen und sogar Provokationen zentral gehalten und informell zwischen Wissenschaftlern ausgetauscht: Die RFCs, „Request for Commands“! Innerhalb 26 Jahren wurde eine Liste mit 1700 RFCs zusammengetragen.

Die 80er Jahre kamen…

Bisher waren Konzerne wie Xerox, Digital, IBM oder AT&T aus der neuen Branche nicht mehr wegzudenken. IBM schaffte 1981 den Durchbruch, als der erste Personalcomputer auf dem Markt erschien. Von nun an wuchsen „IT-Konzerne“, denn profitable Geschäfte mit den jungen PCs waren in greifbarer Nähe. Bob Metcalfe, ehemals Xerox-Wissenschaftler und ARPA-Pionier in den 70er, sah neue Wege, Computer in entsprechenden Netzwerken sinnvoll einzusetzen und gründete 3COM (Abk: Computer Comunications Compatibility). 3Com ist aus der IT-Branche nicht mehr wegzudenken! Vier 27jährige Studenten von Stanford und Berkley schlossen sich zusammen und stampften netzwerkfähige Workstations aus dem Boden, die schneller waren als damalige Mainfraimes, SUN war geboren. Ein Ehepaar, ebenfalls Studenten von Stanford gründeten einen Konzern, der heute richtungsweisend für Netzwerktechnologie ist: CISCO. Vier Programmierer der „University of Utah“ – man erinnere sich an die Anfänge der IMPs im Jahre 1969 – sahen 1984 die Notwendigkeit eines leistungsfähigen Netzwerk-Betriebssystem und codierten die „NOVELL Inc“ mit NETWARE ins Leben! Heute ist Netware zwar noch weit verbreitet, aber aufgrund des späten Umstiegs auf das TCP/IP-Protokoll nicht mehr die „No. 1“ unter den Betriebssystemen. Diesen Posten gab Novell Anfang bis Mitte der 90er an Microsofts „Windows NT“ ab. Trotzdem galt Novell Mitte der 80er Jahre als Standard.

Doch was war mit dem legendären ARPANet in den 80er Jahren? Ende der 70er Jahre teilen immer mehr Universitäten die Sympathie für ARPA und so geschah es, dass z.B. zwei Studenten der Duke-University ein UNIX-Shellscript schrieben, um Nachrichten über das UUCP versenden zu können. Unix wurde einfach der Renner! Immer mehr Universitäten schlossen sich an das ARPA-Netzwerk an, denn mit der steigenden Nachfrage wurde auch UNIX rentabel und auch für kleinere Universitäten erschwinglich. Langsam aber sicher entwickelte sich das ARPANet immer mehr zum USENET – das geschah noch vor 1980. Das USENET war im Prinzip das Arpanet für Firmen, Universitäten und Privatleute. Drei Studenten – Truscott, Ellis, Bellovin – eröffneten das erste Diskussionsforum im USENET und „hängten“ Schwarze Bretter auf. Politsich-heikle Themen wurden nun auch über das neue Medium diskutiert. Die ehemaligen Arpa-Wissenschaftler nannten das USENET zynisch „das ARPANET des armen Mannes“, da die meisten Teilnehmer nicht von ARPA waren. 1980 waren 15 Rechner dem USENET angeschlossen; 10 News wurden pro Tag ausgetauscht. Im Jahre 1985 waren es bereits 1300 Teilnehmer mit über 360 versendeten News pro Tag. Da das Datenaufkommen anstieg wurde eine Einteilung notwendig. Von nun an sollte es den Bereich Wissenschaft (sci), Freizeitgestaltung (rec), Computer (comp), soziale Angelegenheiten (soc) und Neuigkeiten/Nachrichten (news) geben!

Im Jahre 1982, wie oben besprochen, wollte ARPA zeigen, welche Eigenschaften das USENET auszeichnete, und demonstrierte erstmals die Möglichkeit, Informationen zwischen dem X.25 basierten Netzwerk in Europa (hieß später EURONet) auszutauschen. TCP/IP setzte sich auch hier durch!

Da auch das Verteidigungsministerium reges Interesse an dem neuen Netzwerk zeigte, spaltete sich 1983 das USENET in den Bereich MILNET auf, wobei die Bezeichnung USENET trotzdem beibehalten wurde.

Natürlich geschahen noch einige andere, bedeutende Ereignisse in den Achtziger Jahren. Eine weitere Geschichte ereignete sich im Jahre 1986 als IBM die erste Version der Skript-Sprache „SGML“, von ISO standardisieren lies (ISO:8879). Denn: SGML – ursprünglich entwickelt von Charles Goldfarb, Edward Mosher und Raymond Lorie in den 60er Jahren – ist der Vorreiter von HTML und XML, den derzeitigen Standardsprachen für Websites im Internet. SGML wurde als Grundlage für HTML weiterentwickelt.

Die 80er Jahre vergingen, die 90er Jahre kamen…

Der Mann, der für die heutige Standard-Skript-Sprache im World-Wide-Web in die Geschichte einging, ist Dr. Tim Berners-Lee. Der Wissenschaftler, (Brite, ehemaliger Oxfort-Absolvent) damals am CERN in der Schweiz, einer Einrichtung für Kernforschung beschäftigt, wollte – so die Geschichte – um 1989 ein Hypertext-Informationssystem entwickeln, damit er die wissenschaftlichen Forschungsergebnisse am Institut veröffentlichen konnte.

Tim Berners-Lee
Tim Berners-Lee

Für dieses Vorhaben entwickelte er den Browser WorldWideWeb sowie den ersten Webserver für das Betriebssystem NeXTSTEP (ein Produk der Firma NeXT gegründet von Steve Jobs). Er trat für die Maxime ein, dass seine Entdeckung frei bleiben sollte und verzichtete auf ein Patent. Berners-Lee wurde durch die Königin Elisabeth II. am 16. Juli 2004 zum „Knight Commander, Order of the British Empire“, also zum Ritter, geschlagen. Es ist Träger des Millenium-Technologiepreises sowie des Quadriga-Preises. Derzeit ist er Inhaber des 3Com Founders-Lehrstuhls am Laboratory for Computer Science des Massachusetts Institute of Technology (MIT).

Das Internet heute…

Um diese Geschichte des Internets abzurunden will ich hier noch einige bedeutende Zahlen präsentieren: Heute, im Jahre 2006, nach dem 35. Geburtstag des Internets und dem 25. Geburtstag des Personalcomputers, geht man von einer Internet-Wachstumsrate von ca. 1% pro Tag aus. Daraus errechnet sich alle 10 Wochen eine Verdopplung des Informationsvolumens. Mehrere Hundert Millionen Benutzer sind täglich im World-Wide-Web unterwegs, wobei auch diese Zahl enorm steigt. Internet-Backbones wie SEAMEWE, Übertragungsleitungen mit mehr als 20 GBit/Sek Volumen, reichen über eine Streck von 30.000 Kilometer von Australien bis Europa und garantieren für eine sichere Verbindung. Die NASA forscht bereits jetzt an einem interplanetaren Netzwerk, welches künftige Stationen auf dem Mars mit der Erde verbinden wird. Domain-Namen wie „MyComputer.Mars.SOL“ sind nicht mehr Utopie. Das legendäre TCP/IP – Protokoll wird in 3 bis 4 Jahren einer weitreichenden Änderung unterworfen werden, denn die Anzahl der dem Internet angeschlossenen Computer steigt über die Anzahl, die mit TCP/IP gezählt und verwaltet werden können.