Applet

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.

Bereitstellung von Applets

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]

Konfiguration von VM-Parametern

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]

Sicherheit

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.12.1 ist für den Einsatz als unsigniertes Applet nicht freigegeben. Für gegebenenfalls auftretende Probleme kann kein Support geleistet werden.

Integrationen von Applet

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.

Checkliste

Die wichtigsten Punkte, die beim Einsatz der jadice document platform als Applet zu beachten sind, sollen an dieser Stelle nochmals zusammengefasst werden:



[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.

[jadice document platform Version 5.5.12.1: Dokumentation für Entwickler. Veröffentlicht: 2021-08-17]