Wer den Einsatz einer automatisierten Softwareverteilung scheut und stattdessen plant, die Anwendung zentral bereitzustellen, hat mit Applets und Java WebStart zwei browserbasierte Varianten zur Verfügung. Sie unterscheiden sich in ihrem Erscheinungsbild und besonders auch in ihren Möglichkeiten und Einschränkungen.
Java Applets stellen sich dem Nutzer als Teil einer HTML-Seite innerhalb des Browsers dar. Dies macht einerseits den Einsatz einer Softwareverteilung überflüssig, da benötigte Programmdaten direkt vom Web-Server geladen werden. Andererseits entstehen dadurch schwer kontrollierbare Abhängigkeiten. Unterschiedliche Browsertypen oder die Umstellung auf eine neue Browserversion können unvorhergesehen zu Änderungen im Verhalten des Applets führen.
Auch allgemein führt die enge Verzahnung von Browser und Applet zu Problemen. Es kommt ein Faktor hinzu, der Einfluss auf die gefühlte Performance nimmt. Mit jedem erneuten Laden der HTML-Seite wird beispielsweise eine neue Java VM initialisiert und gestartet. In ähnlicher Weise kann die Stabilität des Applets negativ beeinträchtigt werden, da ein Fehlverhalten des Browsers auch auf Applets durchschlägt. Auch in der Bereitstellung von Ressourcen wie beispielsweise dem Arbeitsspeicher für eine Java VM bleiben Applets vom Browser abhängig. Verfügt dieser über ein ungünstiges Speichermanagement, können die für eine VM benötigten Speichermengen unter Umständen nicht zur Verfügung gestellt werden.
Um eine
Anwendung als Applet zur Verfügung zu stellen, wird diese in eine oder mehrere
jar
-Dateien gepackt und auf einem
Webserver abgelegt. Zusätzlich muss eine Webseite angeboten werden, die das
Applet integriert. Ein <applet>
-Tag innerhalb der
HTML-Seite bestimmt, an welcher Position im Fenster das
Applet angezeigt werden soll. Das Tag bietet außerdem die Möglichkeit,
zusätzliche Parameter anzugeben, die für die Laufzeit des Applets berücksichtigt
werden sollen. Dies können einerseits Applet Standardparameter sein,
andererseits aber auch solche, die für die spezielle Applikation definiert
sind.
Für die Ausführung von Applet-Integrationen der jadice document platform ist einer der
Standard-Parameter unbedingt zu setzen. Es handelt sich um den Parameter
separate_jvm
dem der Wert
true
zugewiesen werden muss. Die Bereitstellung von
Applets ohne diesen Parameter wird nicht unterstützt.
Da Applets, wie oben beschrieben, durch Download vom Server bei Seitenaufruf
bereitgestellt werden, führt dies zu einer erhöhten Netzwerklast. Um zu
verhindern, dass mit jedem Zugriff ein Download sämtlicher jar
-Files erfolgt, besteht die Möglichkeit,
entsprechende Applet-Parameter zu setzen. Diese bewirken, dass geladene
jar
-Files durch die
VM in einem Zwischenspeicher abgelegt werden. Ein
erneuter Download erfolgt dann nur, wenn eine geänderte Version der Dateien vorliegt.[84]
Zusätzlich zur Konfiguration einzelner Applets über geeignete Parameter kann auch die Java VM selbst parametrisiert werden. Mögliche Einstellungen sind hier beispielsweise der zugewiesene Arbeitsspeicher oder die Definition von System Properties.
Für Java Applets müssen diese Einstellungen auf jedem einzelnen Client Rechner innerhalb des Java Plugins definiert werden. Sie gelten dort für sämtliche Applets, die mit dieser VM gestartet werden.[85]
Da Java-Applets potenziell
von unklarem Ursprung über das Internet geladen werden können, gelten strikte
Richtlinien dafür, welche Aktionen innerhalb von Applets zulässig sind. Per
default sind viele Möglichkeiten nicht gegeben, sodass manche Funktionalitäten
der jadice document platform in diesem Fall nicht zur Verfügung gestellt werden können. Um den
vollen Funktionsumfang zu erhalten, existieren zwei Möglichkeiten: Indem
Einstellungen an den Java Policies auf jedem Client System vorgenommen werden,
können Applets zusätzliche Rechte eingeräumt werden. Diese Einstellungen gelten
jedoch für jedes Applet, das auf der so konfigurierten VM
läuft, gleichermaßen und stellen daher prinzipiell ein Sicherheitsrisiko dar.
Die zweite Möglichkeit besteht darin, die jar
-Dateien des Applets zu signieren mit einem Zertifikat, das
im Trust Store der ausführenden VM vorliegt. Über diesen Weg
wird der Ursprung des Applets als vertrauenswürdig eingestuft und es werden
sämtliche Rechte eingeräumt.
WICHTIG: Die jadice document platform Version 5.5.18.10 ist für den Einsatz als unsigniertes Applet nicht freigegeben. Für gegebenenfalls auftretende Probleme kann kein Support geleistet werden.
Der
Lebenszyklus eines Java Applets besteht aus den Methoden
init()
, start()
,
stop()
, und destroy()
, die in
Applet
definiert sind und durch den einbettenden
Browser aufgerufen werden. Applet-Integrationen der jadice document platform steht die Klasse
JadiceLifeCycleApplet
zur Verfügung. Diese
implementiert die Standard-Lifecycle Methoden und führt darin notwendige Initialisierungen[86] durch, die es ermöglichen, jadice als Applet zu betreiben. Danach
wird jeweils an die Methode doInit()
,
doStart()
, doStop()
,
beziehungsweise doDestroy()
weiterdelegiert.
Für Applet-Integrationen muss das JadiceLifeCycleApplet
zwingend als Basis verwendet werden. Andere Konfigurationen werden nicht
unterstützt. Konkret müssen Applets, die jadice Funktionalität nutzen, von
JadiceLifeCycleApplet
erben anstatt direkt von
JApplet
oder Applet
.
Integrationsspezifischer Code für den Lebenszyklus des Applets muss in den
do…
-Methoden ausgeführt werden. Zudem muss
TGASwingUtil
konsequent verwendet werden.
Die wichtigsten Punkte, die beim Einsatz der jadice document platform als Applet zu beachten sind, sollen an dieser Stelle nochmals zusammengefasst werden:
-
Parameter
separate_jvm
mit dem Werttrue
gesetzt? (siehe „Bereitstellung von Applets“) -
Applet erbt von
JadiceLifeCycleApplet
? (siehe „Integrationen von Applet“) -
TGASwingUtil
wird konsequent verwendet? (siehe „Arbeit mit Swing undTGASwingUtil
“)
[84] Details zur Erkennung von Änderungen an jar
-Files können der offiziellen Java-Dokumentation
entnommen werden. Es existieren verschiedene Möglichkeiten wie
Zeitstempel oder Versionsnummern.
[85] Die unter „WebStart“ beschriebene WebStart Technologie bietet mit Hilfe von JNLP-Files eine Konfigurationsmöglichkeit pro gestarteter Anwendung.
[86] Es wird beispielsweise das in „Arbeit mit Swing und TGASwingUtil
“
vorgestellte TGASwingUtil
initialisiert.