21.2 | Java Web Start |
Der Java-Entwickler steht meist vor der Frage, ob er seine Applikation als Applet oder als Applikation schreiben soll. Beide Ausführungsarten haben dabei spezifische Vor- und Nachteile.
Folgende Vorteile haben Applets gegenüber Applikationen:
- Applets werden über den Browser gestartet. Dadurch kann man sie ohne großen Aufwand in einen Web-Auftritt integrieren, so dass der Benutzer sie leicht finden kann.
- Für das Laden des Applets wird lediglich das HTTP (HyperText Transport Protocol) benutzt. Damit sind die Applets für die meisten Firewalls und Proxies zugänglich.
- Applets laufen standardmäßig in der Sandbox und können so dem Benutzer nicht durch Zugriff auf lokale Ressourcen gefährlich werden.
- Applets werden jedes Mal neu geladen - der Benutzer erhält so immer die neueste Version.
Folgende Vorteile besitzen Applikationen gegenüber Applets:
- Der Benutzer kann sie auch offline starten.
- Der Startvorgang kann für den Benutzer intuitiver gestaltet werden, beispielsweise über einen Link auf dem Desktop.
- Die Klassen müssen nicht bei jedem Start neu geladen werden, die Applikation startet schneller.
- Das zu verwendende Java Runtime Environment kann selbst bestimmt bzw. mitgeliefert werden.
- Der Speicherverbrauch ist unter Umständen geringer, da kein zusätzlicher Browser laufen muss.
Um die Vorteile der beiden Welten zu vereinen, hat Sun Java Web Start entwickelt. Mit diesem Werkzeug ist es möglich, teilweise sogar ohne Codeänderung normale Applets und Applikationen in Java-Web-Start-Programme umzuwandeln, die dann folgende Vorteile besitzen:
Diese Programme können entweder über die Java-Web-Start-Management-Oberfläche, über ein Desktop-Icon oder über das Startmenü aufgerufen werden.
- Caching
Java-Web-Start-Applikationen werden auf der lokalen Festplatte gesichert und stehen somit bei jedem Start sofort zur Verfügung.- Automatisches Update
Java Web Start ermittelt - wenn möglich - ob eine neuere Version zur Verfügung steht und installiert diese automatisch. Beim Update kann ggf. lediglich die Differenz übertragen werden (JarDiff, s. Abschnitt ).- Einfaches und intuitives Starten
Auf Wunsch können zu einer heruntergeladenen Applikation Verknüpfungen auf dem Desktop oder dem Startmenü erstellt werden.- Sichere Sandbox
Wie bei Applets laufen die Applikationen in einer geschützten Sandbox, die den Zugriff auf die lokalen Ressourcen grundsätzlich verbietet.- Services für einfachen Zugriff auf wichtige Funktionen
Im Gegensatz zu Applets bietet die Umgebung Services an, mit denen man einfach und sicher weitreichendere Dienste wie beispielsweise den Zugriff auf bestimmte Dateien nutzen kann. Der Benutzer bekommt hierbei eine Warnung angezeigt, wenn die Sandbox gelockert werden soll. Diese Funktion ist dabei ohne Signierung möglich, kann aber vom Benutzer unterbunden werden.
Java Web Start ist seit Java 1.4 in dem Java Runtime Environment enthalten, kann aber auch für ältere Versionen separat aus dem Internet geladen werden.
Zunächst werden in einer XML-Datei die entsprechenden Parameter festgeschrieben. Klickt der Besucher einer Internetseite auf einen Verweis mit dieser XML-Datei als Ziel, wird die Java-Web-Start-Management-Oberfläche gestartet, die entsprechende Applikation heruntergeladen und lokal gespeichert (Caching). Die Parameter werden überprüft und die Applikation gestartet. Die XML-Datei ist Teil des Java Network Launching Protocol (JNLP), das die Kommunikation zwischen dem Server und dem Client definiert.
Falls der Benutzer eine offene Internetverbindung besitzt, wird beim Starten der Applikation überprüft, ob eine neuere Version des Programms zur Verfügung steht. Ist dies der Fall, wird entweder ein neues Java Archive oder die Differenz zur neuesten Version (JARDiff) geladen. Nach der Erneuerung wird das Programm dann in gewohnter Weise gestartet.
Abbildung 21.3: Sicherheitshinweis beim Versuch, einen Service zu benutzen, der die Sandbox auflockert
Die Programme laufen, solange sie nicht signiert sind, in einer dem Applet nachempfundenen Sandbox. Der Zugriff auf lokale Ressourcen ist generell, wie bei Applets, verboten. Über Dienste (so genannte Services), die von der Umgebung zur Verfügung gestellt werden, kann man jedoch restriktiv auf bestimmte Ressourcen (z.B. auf die Zwischenablage oder den Browser) zugreifen. Ein Zugriff auf Ressourcen außerhalb dieser vordefinierten Bereiche ist ohne Signierung nicht möglich. Wenn nötig (also wenn auf entsprechende Services zugegriffen wird), wird der Benutzer über die Sicherheitsrisiken informiert und kann sich dafür oder dagegen entscheiden.