Alles andere als kalter Kaffee

Java: Eine Programmiersprache macht Microsoft Konkurrenz

23.02.1996

Java, das neueste Beispiel fuer Software, die sich scheinbar von selbst verkauft, hat nur wenig mit dem gleichnamigen indonesischen Archipel oder dem koffeinhaltigen Getraenk zu tun, obwohl letzteres auch in Internet-Cafes ausgeschenkt wird. Java ist eine interpretierende Programmiersprache der Sun-Tochter Sunsoft mit dem Potential, das Web grundlegend zu veraendern.

Java ermoeglicht nicht nur, wie bisher Daten aus dem Web zu laden, sondern auch Programme, die lokal ausgefuehrt werden koennen. Das alleine waere nichts Besonderes, wuerde Java nicht auch die Sicherheitsprobleme loesen, die sich durch das Verwenden unbekannter Software ergeben. Java-Programme koennen darueber hinaus auf unterschiedlichsten Computersystemen ausgefuehrt werden, ohne dass sie speziell angepasst werden muessen.

Diese Kombination von Eigenschaften ist die Erfolgsmischung, die eine Vielzahl von Web-Software-Herstellern und Informationsanbietern von Java ueberzeugt hat. Netscape, IBM, Lotus, Oracle, Silicon Graphics (SGI), Borland, Symantec, Spyglass und andere haben inzwischen Lizenzen erworben und arbeiten an der Integration in ihre Produkte. Selbst Microsoft sah sich angesichts der allgemeinen Euphorie gezwungen, Unterstuetzung fuer die Java- Technologie anzukuendigen.

Grundsaetzlich ist der Einsatz von Software aus dem Web nicht ungefaehrlich. Wenn Programme vom Internet auf einen lokalen Rechner geladen werden, kann man im allgemeinen nicht davon ausgehen, dass sie sicher sind. Bei Paketen aus dem Haendlerregal ist die Gefahr von unerwuenschten Eingriffen gering. Im Netz kann die Software dagegen veraendert werden, bevor sie beim Kunden landet. Die gefuerchtete Verbreitung von Viren ist dabei noch das geringste Problem. In Kombination mit einer permanenten Netzwerkverbindung steigen die Moeglichkeiten des Missbrauchs enorm. So koennen zum Beispiel lokale Daten unbemerkt vom Benutzer an entfernte Rechner gesendet, von diesen ausgespaeht oder gar veraendert werden.

Java sieht verschiedene Sicherheitsstufen vor, um solche Gefahren auszuschalten. Java-Programme, sogenannte Applets, die sich ueber Web-Browser laden und ausfuehren lassen, werden bei der Uebersetzung des Codes auf vorhergegangene unzulaessige Operationen ueberprueft. Zusaetzlich wird beim Laden von Java-Programmen die Korrektheit des uebersetzten Codes kontrolliert, um manipulierte Entwicklungswerkzeuge ausmustern zu koennen. Schliesslich koennen fuer die Programmausfuehrung Sicherheitsschranken eingerichtet werden, die zum Beispiel den Zugang eines Applets zum Internet exakt definieren.

Mit Java koennen Informationsanbieter ihren Kunden nicht nur statische Daten sondern interaktive Werkzeuge anbieten, mit denen gezielt nach speziellen Informationen gesucht werden kann. Die Web-Nutzer koennen dabei sicher sein, dass diese Applets keinen Schaden anrichten. Die Java-Technologie wird das WWW von einem statischen Informationsspeicher in eine lebhafte Anwendungswelt mit hohem Automatisierungsgrad verwandeln.

Effizientere Datenbankabfragen sind dabei nur eine von vielen Verbesserungen. Interaktive Produktpraesentationen sind ebenso denkbar, wie personalisierte und staendig aktualisierte Informationsdienste. Web-Anbieter koennen mit entsprechenden Java- Applets Informationen auf Nutzungsbasis abrechnen und gleichzeitig ihr Copyright sichern, indem sie zum Beispiel ein Cut and paste der Informationen verhindern. Die Einsatzmoeglichkeiten von Java reichen jedoch ueber die interaktive Erweiterung von Web- Anwendungen und Web-Browsern durch Applets hinaus.

Ein Java-Programm kann auf unterschiedlichsten Systemen genutzt werden, weil die Ablaufumgebung von Java nicht durch die Hardware, sondern wie bei allen Interpreter-Sprachen durch eine Software, in diesem Fall den Browser, gebildet wird. Die Moeglichkeit, ein Progamm ohne Aenderungen auf verschiedensten Plattformen vermarkten zu koennen, ist insbesondere fuer die Hersteller von Standardapplikationen interessant.

Noch nehmen sich die im Web frei verfuegbaren Java-Anwendungen bescheiden aus. Beliebte Anbieter wie die Internet-Zeitschrift "Hot Wired" oder der Fernsehkanal "C net" nutzen Java fuer Spielereien wie grafische Animationen oder die Einblendung der neuesten Schlagzeilen.

Erste kommerzielle Applikationen nehmen im Bereich Finanz- Management Gestalt an. Es geht dabei um die kontinuierliche Auswertung von Kursinformationen. Unter Insidern werden inzwischen Vorversionen verschiedenster Java-Programme ausgetauscht, um neue Moeglichkeiten auszuloten. Insgesamt gilt, dass die meisten ernsthaften Programme sich noch im Betastadium befinden. Bis zur Entstehung eines vielleicht elektronischen Marktes fuer Java- Anwendungen und -Bausteine wird es wohl noch einige Zeit dauern.

Eine weitere Anwendungsmoeglichkeit ist der Einsatz auf dem schon vorab vieldiskutierten Internet-PC. Hier kann Java seine Staerken ausspielen, denn die Spache wurde urspruenglich zur Steuerung von elektronischen Geraeten entworfen. So stammt die Kompaktheit der Sprache von den Beschraenkungen, wie sie von Steuerschaltkreisen in Fernsehgeraeten, Videorecordern und Mikrowellenoefen vorgegeben werden. Unlaengst hat Sun einen Chip angekuendigt, der in der Lage ist, Java unmittelbar zu unterstuetzen und als Herzstueck eines vollwertigen Java- oder eines Internet-PC dienen kann. Ausserdem wird Java aufgrund seines geringen Ressourcenbedarfs auch fuer den Einsatz in den sogenannten Set-top-Boxen fuer interaktives Video on demand positioniert. Erste Prototypen existieren bereits.

Getragen wird der Java-Boom von den nicht nur in den USA rasant wachsenden Uebertragungsbandbreiten und fallenden Preisen fuer den Internet-Betrieb. Hinzu kommt die Hoffnung der Informationsindustrie auf eine Alternative zur sogenannten Wintel- Vorherrschaft von Microsoft und Intel. Hier koennte Java einen bruchlosen Uebergang von dem heute ueblichen Applikationsmonstern mit staendig wachsenden Hardware-Anspruechen zu schlankeren, aus leistungsstarken Modulen aufgebauten Softwaresystemen bahnen, die mit wesentlich preisguenstigeren Rechnerarchitekturen auskommen und zudem auch auf allen heutigen Computern lauffaehig sind.

Noch ist der Weg in diese neue Welt weit, denn Java ist keineswegs perfekt. Aufgrund seiner Sicherheits-Features gibt es Begrenzungen, die andere Programmiersprachen nicht kennen. So existiert - auch aufgrund des Interpreter-Ansatzes - kein systemnaher und damit beschleunigter Code, wie er zum Beispiel fuer Videospiele unerlaesslich ist. Derartige Optimierungen muessen bei Java ueber externe Schnittstellen zu C- oder C++-Routinen realisiert werden. Um es noch deutlicher zu sagen: Java hat ein Performance-Problem. Im Vergleich zu kompiliertem C ist die Interpretation des virtuellen Java-Codes etwa um den Faktor zehn langsamer.

Noch nicht ausreichend durchdacht wurde die Verwendung von den via Browser geladenen Applets als Stand-alone-Applikationen. Auch wenn dies nicht unbedingt im Sinne der Browser-Hersteller ist, werden die Anwender auf eine solche Moeglichkeit draengen.

Die weitere Entwicklung

Bis zur naechsten Version im Juni 1996 will Sunsoft die Leistungsmaengel durch einen Compiler beheben, der Objektklassen fuer die jeweilige Plattform dynamisch in Maschinencode uebersetzt. Dem Laden einer Java-Klasse wuerde dann ein kurzer Uebersetzungsvorgang folgen, der ein Codefragment in der jeweiligen Maschinensprache des Zielsystems erzeugt. Auf diese Weise liessen sich die Applikationen wie aus dem Laden gekaufte Progamme benutzen, ohne dabei die Plattformunabhaengigkeit auf der Ebene des virtuellen Codes zu verlieren. Fuer Java 2.0 ist zudem ein Persistenzmechanismus geplant, der die Nutzung von Applets als lokale Anwendungen ermoeglichen soll.

Zu den neuen Projekten des Java-Erfinders James Gosling zaehlen E- Mail-Anwendungen durch Einbettung von Java-Klassen in mit der Multipurpose Internet Mail Extension (MIME) kodierten Nachrichten und ein vollstaendig auf Java basierender Web-Server. Dessen hervorstechendste Eigenschaft waere die einfache Erweiterbarkeit. Denkbar ist dann auch die Erweiterung von Klassen zum Server, um fortgeschrittene Suchfunktionen zu ermoeglichen.

Insgesamt hat Sunsofts Java gute Chancen, sich zu einer plattformuebergreifenden Anwendungsumgebung zu entwickeln. Entsprechend hoch ist der Bedarf an Entwicklungswerkzeugen. Auf diese Marktluecke zielen Anbieter wie Borland und Symantec. Waehrend Borland bislang nichts Greifbares vorzuweisen hat, kann man "Espresso", das Java-Toolset von Symantec, wenigstens testen.

An der Integration von Java in bestehende Systeme wird ebenfalls fieberhaft gearbeitet. Neben anderen Softwarehaeusern entwickelt "Weblogic" eine Schnittstelle, um den Zugriff auf relationale Datenbanken aus Java heraus zu erleichtern. Die Interaktion des Benutzers mit der Datenbank ueber das Web kann mit Java sowohl auf der Client- als auch auf der Server-Seite wesentlich flexibler und kundenfreundlicher erfolgen als mit herkoemmlichen Web-Anwendungen.

Sunsoft geht inzwischen einen Schritt weiter und integriert Java derzeit in "Neo", die hauseigene Implementierung des objektorientierten Messaging-Standards Common Object Request Broker Architecture (Corba). Ueber den "Joe" genannten Request Broker von Java kann dann jede Anwendung mit jedem Corba- kompatiblen Softwaresystem zusammenarbeiten. Eine erste Implementation eines kompletten Corba-Systems in Java liegt inzwischen von Post Modern Computing vor.

Java kann ueber Corba zwar auch Desktop-Systeme wie Windows ansprechen, doch eine engere Integration mit der Windows-Plattform waere sicherlich wuenschenswert. Rein technisch laesst sich solch eine Verbindung zwar auch umstaendlich mit Hilfe von Visual Basic oder C herstellen. Eine entsprechende Schnittstelle waere jedoch komfortabler.

Die Verbreitung von Java ueber das Web hinaus haengt entscheidend von seiner Integration in bestehende Systeme ab. IBM-Chef Louis Gerstner charakterisierte auf der Lotusphere '96 die Rolle von WWW und Java: "Das Internet erfuellt, was die Informationstechnik- Hersteller seit Jahren versprechen und nie eingehalten haben - die Moeglichkeit, unterschiedlichste Systeme zu verbinden und Informationen zwischen diesen auszutauschen." Sprachen erzeugen mobilen Code

Uebersicht ueber die verschiedenen Ansaetze der Verteilung von Anwendungsfunktionalitaet im World Wide Web.

Java: compiliert zu virtuellem Code Version 1.0

Sunsoft: Sicherheitsprobleme durch Code-Checks und funktionale Beschraenkungen

Javascript: nur interpretiert, mit Java integrierend

Netscape: Sicherheit durch funktionale Beschraenkung

Schockwave: Multimedia-orientiert, nur als Beta-Version existent

Macromedia: Sicherheit durch funktionale Beschraenkung

Lotusscript: nur innerhalb von Notes, soll mit Java integriert werden, mit jedem Notes-Client

Louts: Sicherheit durch Authentisierung zwischen Notes-Systemen

Telescript: compilierte Sprache fuer Server-Agenten, fuer PDAs und Telefonnetze gedacht

General Magic: auf geeigneter Hardware (Betaversion fuer Windows)

VB Script: Sicherheit durch funktionale Beschraenkung?

Microsoft: aufwaertskompatibel zu Visual Basic for Applications nur als Beta-Version existent, dann aufgegeben

ICT: in der Unix-Welt beliebte interpretierende Oberflaechensprache, maessig verbreitet, keine Sicherheitsvorkehrungen

Python: interpretierende objektorientierte Sprache, geringe Verbreitung, keine Sicherheitsvorkehrungen

Produkte im Umfeld von Java

Echte Konkurrenten zu Java sind schwer zu finden. So sind Produkte wie "Schockwave" von Macromedia oder Apples "Quicktime" fast ausschliesslich auf Multimedia-Anwendungen ausgerichtet. "Javascript", das ehemalige "Livescript" von Netscape, ist eine interpretierende Sprache, deren Programmzeilen unmittelbar in die HTML-Seiten aufgenommen werden kann, um diese funktional zu erweitern. Es ergaenzt also Java und konkurriert nicht damit.

Aehnlich ist die Situation bei "Lotusscript" fuer Notes 4.0 von Lotus Development. Die damit erstellten Anwendungen werden zwischen Notes-Servern in aehnlicher Weise ausgetauscht wie Java- Applets, doch ist diese Replikation auf Notes-Systeme beschraenkt. Mit dem "Internotes"-Gateway kann die Lotusscript Funktionalitaet allerdings fuer Web-Anwendungen genutzt werden. Lotus hat bereits die Einbettung von Java in den "Notes Web-Navigator" gezeigt und arbeitet zudem an einer Integration von Lotusscript und Java.

Einen anderen Weg hat General Magic mit "Telescript" eingeschlagen, das fuer den Einsatz in telefonisch erreichbaren Personal Digital Assistants (PDAs) konzipiert ist. Nicht der Client fordert hier Code vom Server, sondern er schickt Code dorthin, um als Agent Informationen zu sammeln.

Microsoft wollte eigentlich "Visual Basic for Applications" ins Rennen gegen Java schicken. Zwar ist die Verbreitung von OCX- Modulen ueber das Internet technisch moeglich, gilt aber allgemein als zu aufwendig. Das hat inzwischen auch Bill Gates eingesehen. Mit "Visual Basic Script" soll daher eine abgespeckte, aber aufwaertskompatible VB-Version erarbeitet werden. Bislang sind dafuer jedoch keine Sicherheitsmechanismen bekannt. Ausserdem bleibt Visual Basic Script noch einige Zeit auf die Windows-Plattformen beschraenkt.

Aus dem akademischen Umfeld stammen "Tcl" und "Python", die insbesondere auf Unix-Systemen verbreitet sind. Als Interpreter- Sprache fuer Benutzer-Schnittstellen aehnelt Tcl Java, ist aber ebensowenig objektorientiert wie Python fuer eine verteilte Nutzung ausgelegt.

Glossar

Applet: Java-Programm, das ueber eine Referenz auf einer HTML-Seite in einen Web-Browser geladen und dort ausgefuehrt werden kann.

Agent: Ein Programm, das selbstaendig Informationen aufbereitet und dem Benutzer aktiv zur Verfuegung stellt.

Browser: Software, mit deren Hilfe WWW-Inhalte angezeigt werden koennen. Browser sind durch Sprachen wie Livescript, Java und Plug- ins erweiterbar und koennen Anwendungen enthalten.

HTML: Seitenbeschreibungssprache Hypertext Markup Language, mit der Informationen in WWW definiert werden.

HTTP: Host-to-Host-Protokoll fuer den Datenverkehr im Internet.

Hot Java: Web-Browser von Sunsoft, der in Java implementiert wurde und ueber Java erweitert werden kann.

Internet: Weltweites Computernetz, ueber das Informationen und Programme zwischen unterschiedlichsten Systemen ausgetauscht werden koennen.

Java: Objektorientierte Programmiersprache, deren kompilierte Module ueber das Internet geladen werden koennen, ohne die Sicherheit des eigenen Systems zu beeintraechtigen.

Javascript: Ehemals unter dem Namen Livescript von Netscape entwickelte objektorientierte Programmiersprache, deren Programm in HTML-Seiten aufgenommen und von Web-Browsern interpretiert werden.

Plug-in: Plattformabhaengiges Programmodul, mit dem in diesem Fall ein Web-Browser erweitert werden kann.

World Wide Web (WWW): Informationsnetzwerk auf Basis des Internet, in dem Informationen auf Seiten zusammengefasst werden, die ueber einen Web-Browser betrachtet werden koennen.