1.1 | Java |
Java ist eine objektorientierte Programmiersprache, die an C++ angelehnt ist, die aber auch einige Elemente von Smalltalk übernommen hat, wie beispielsweise den Bytecode oder die Garbage Collection. Sie weicht in einigen Merkmalen von C++ ab, um einfacher und robuster zu werden, und geht in einigen Fähigkeiten über C++ hinaus. Ihre Entwicklung begann 1990 bei der Firma Sun in einem Team, das unter der Leitung von James Gosling stand. Ursprünglich trug Java den Namen Oak und wurde für ein ganz anderes Anwendungsgebiet entwickelt als Online-Systeme im Internet. Eigentlich ging es den Entwicklern um hybride Systeme im Consumer-Electronic-Bereich, um beispielsweise eine allgemein verwendbare Hochsprache zu haben, die sich sowohl zur Steuerung von Waschmaschinen als auch für Telefonanlagen eignen würde.
Nachdem die Sprache konzipiert war und die Projekte in diesem Bereich nicht den gewünschten Erfolg brachten, kam man auf die Idee, Java für Internetanwendungen einzusetzen. Im aufkommenden Boom des WWW im Jahre 1993 erkannte man, dass Java durch die Portabilität, die eine Kernforderung bei der Konzeption der Sprache war, ideal für Internetanwendungen geeignet ist. Kleine Java-Programme, so genannte Applets, sollten durch ein eigens dafür definiertes Tag in HTML-Seiten eingebunden werden und auf diese Weise die bisher statischen HTML-Seiten mit Leben erfüllen. Hierzu wurde bei Sun ein Webbrowser entwickelt, der HotJava genannt wurde. HotJava war der erste Browser, der Applets unterstützte. Der endgültige Durchbruch von Java-Applets kam gegen Ende 1995, als der Netscape Navigator 2.0 als erster Browser mit einer integrierten Java Virtual Machine (JVM) auf den Markt kam.
Neben der Plattformunabhängigkeit sind für die Akzeptanz einer Technologie, mit der Programmcode auf die lokale Maschine heruntergeladen und ausgeführt wird, weitere Forderungen wichtig:Speziell der zweite Punkt ist kritisch. Die Vorstellung, sich auf Mausklick ein Programm zu übertragen und zu starten, das die Festplatte formatiert oder einen neuen Virus ins System bringt, ist abschreckend. Ein System, bei dem dies nicht zu einem sehr hohen Prozentsatz ausgeschlossen werden kann, hätte sicherlich Akzeptanzprobleme.
- Es müssen Sicherungsmaßnahmen ergriffen werden, damit der Programmcode keine unerwünschten und womöglich destruktiven Dinge tun kann.
- Der Programmcode muss robust sein und auch bei einfachen Änderungen der Ablaufumgebung stabil bleiben.
- Das Programmiersystem muss genügend Raum und Möglichkeiten lassen, um dennoch interessante Applikationen entwickeln zu können.
- Die Programmiersprache muss einem modernen Paradigma folgen, um auch wirtschaftliche Chancen zu besitzen.
Die Sicherheitsanforderungen betreffen einige besonders wichtige Fälle, die hier nochmals explizit genannt werden:
- Schutz vor Viren, die Programme auf dem eigenen Rechner befallen,
- Schutz vor Zugriffen des Java-Programms auf das Dateisystem und die Daten des Client-Rechners,
- Schutz vor direkten Zugriffen auf die Hardware des Client-Rechners,
- Schutz vor Änderungen des Browsers, in dem das geladene Programm abläuft.