Einleitung
Die Verwendung von Software ohne administrative Kosten für Verteilung und Wartung auf einer Vielzahl von Clients gewinnt in einer vernetzten Welt immer mehr an Bedeutung. Erste Ansätze verwendeten HTML Benutzerschnittstellen um auf zentral laufenden Web-Applikationen zuzugreifen. Diese Technologie ist bestenfalls für einfache Anwendungen denkbar, da sich mittels HTML komplexere Benutzerschnittstellen bzw. Funktionalität nicht realisieren lassen.
Der nächste Schritt waren in HTML-Seiten eingebettete Java Applets. Im Vergleich zu den Möglichkeiten, die HTML bietet, können Applets auf ein reiches User-Interface zurückgreifen. Damit trat Java den Siegeszug auf dem Client an. Applets werden über das Netzwerk herunter geladen und dann in einer geschützten Umgebung - der Sandbox – ausgeführt. Bei der Ausführung sind Applets aus Sicherheitsgründen and die Umgebung des Browsers gebunden. Somit werden bestimmte sicherheitsrelevante Funktionen, wie z.B. der Zugriff auf das lokale Dateisystem des Clients, unterbunden.Während die Applets wieder von den Web-Seiten verschwanden, verbreitete sich die Java-Technologie auf dem Server in rasender Geschwindigkeit. Web-Services spielten eine wichtige Rolle in der letzten Zeit. Verlorenen Boden auf dem Client versucht SUN nun in jüngster Zeit durch das Java-Plugin und Java Web Start (JWS) wieder gut zu machen.
JWS – SUN’s Referenzimplementierung eines JNLP (Java Network Launching Protocol) Clients - ist eine plattformunabhängige, webzentrierte Deployment-Technologie, welche Installation, Update und Launch einer Java-Applikation aus einer Web-Seite heraus „with a single click“ ermöglicht. Auch dem „Write Once, Run Everywhere“ Paradigma wird durch die Plattformunabhängigkeit von Java Rechnung getragen. Ein weiterer Vorteil gegenüber den Applets ist die clientseitige Cache, sodass die Anwendung auch offline zur Verfügung steht und nicht erneut herunter geladen werden muss. JWS bietet zudem eine intelligente Technologie, um Applikationen automatisch über das Netz zu aktualisieren.
Inhaltsverzeichnis
Java Web Start – Quick Start Manual
Einleitung
Lizenzbestimmungen
Architektur
Vorteile für den Anwender
Vorteile für den Entwickler
Startvorgang
Java Network Launching Protocol (JNLP)
Kodierung von JNLP-Dateien
Das JNLP-API
BasicService
DownloadService
FileOpenService und FileSaveService
ClipboardService
PrintService
PersistenceService
ExtensionInstallerService
Vorbereiten des Web-Servers
Microsoft Internet Information Server (IIS)
Apache Web-Server
Installation auf dem Client
Probleme bei der Installation
Zusammenarbeit mit anderen Deployment-Technologien
Applikationsentwicklung
Erstellen eines Projekts mit JBuilder 6
Web Application erstellen
Archive Builder
Applikation erstellen
JavaDoc Wizard
Web Start Launcher
Projekteinstellungen ändern
Entwicklung der Applikation
Hinzufügen der Web Start Bibliothek
Testen mit dem Apache Web-Server
Debuggen von JWS Applikation
HTML-Dokument anpassen
Sicherheitseinstellungen
Unsignierte Applikationen
Signierte Applikationen
Testzertifikate
Signieren von JAR-Dateien
Support von SUN
Häufig gestellte Fragen (FAQ)
Supportdatenbank
Forum
JWS Anwendungsmanager
Allgemein
Verknüpfungsoptionen
Java
Erweitert
Root-Zertifikate
Beispielprogramm
Texteditor
BasicService
DownloadService
FileOpenService und FileSaveService
ClipboardService
PrintService
PersistenceService
ExtensionInstallerService
Quelltext
Application.java
JButtonNoFocus.java
MainFrame_AboutBox.java
MainFrame.java
PrintableDocument.java
Fazit
Inhalt der CD
Index
Zielsetzung & Themen
Das Ziel dieses Handbuchs ist es, eine praxisnahe Einführung in die Technologie Java Web Start (JWS) zu geben, um Entwicklern die effiziente Bereitstellung, Installation und Aktualisierung von Java-Applikationen über das Internet zu ermöglichen. Die zentrale Forschungsfrage ist dabei, wie durch das Java Network Launching Protocol (JNLP) die Brücke für Java-Anwendungen auf dem Client geschlagen werden kann, um eine "Single-Click"-Deployment-Lösung zu realisieren.
- Grundlagen der JNLP-Technologie und des JNLP-Clients.
- Implementierung und Nutzung der JNLP-API-Serviceklassen.
- Konfiguration von Web-Servern für JNLP-Anwendungen.
- Integration von JWS-Projekten in Entwicklungsumgebungen wie JBuilder 6.
- Sicherheitsmechanismen, Code-Signierung und Zertifikatsverwaltung.
Auszug aus dem Buch
Java Network Launching Protocol (JNLP)
Die Java Network Launching Protocol (JNLP) Spezifikation ist die Grundlage von Java Web Start. Der JNLP-Client wird als Software bezeichnet, welche diese Spezifikation implementiert. Genau genommen ist Java Web Start lediglich SUN’s Referenzimplementierung eines JNLP-Clients, d.h. es gibt bereits weitere Implementierungen wie z.B. das Open-Source-Projekt Open JNLP. Die Spezifikation kann unter http://java.sun.com/products/javawebstart/download-spec.html herunter geladen werden.
Die wesentlichen Konzepte der Spezifikation sind:
Ein webzentriertes Applikations-Modell ohne offensichtliche Installations-Phase, welches ebenso transparente und inkrementelle Updates der Applikation ermöglicht.
Ein Protokoll, durch welches eine Applikation mittels einer JNLP-Datei auf einem Web-Server an einen beliebigen JNLP-Client (z.B. Java Web Start) übertragen und ausgeführt werden kann.
Eine Laufzeit-Umgebung für die Applikation, in der sowohl eine sichere Umgebung für nicht signierte Anwendungen (Sandbox) als auch eine unbeschränkt Umgebung enthalten ist, anhand derer der uneingeschränkte Festplattenzugriff möglich ist.
Dadurch wird es praktisch möglich, im Internet abgelegte Java-Archive in den Classpath mit aufzunehmen und dann die Applikation zu starten. Dies würde dem folgenden (natürlich nicht wirklich funktionierenden) Aufruf einer im Internet abgelegten Java-Applikation entsprechen: java -jar -classpath www.meinserver.com/editor.jar
Zusammenfassung der Kapitel
Architektur: Beschreibt die Vorteile von JWS für Anwender und Entwickler sowie den grundsätzlichen Startvorgang einer Applikation.
Java Network Launching Protocol (JNLP): Erläutert die grundlegende Spezifikation hinter JWS und den Aufbau der XML-basierten JNLP-Dateien.
Das JNLP-API: Stellt die verschiedenen Services wie BasicService, PersistenceService oder DownloadService vor, die Applikationen zur Interaktion mit dem Client-System nutzen können.
Vorbereiten des Web-Servers: Zeigt die notwendige Konfiguration des MIME-Types auf Web-Servern wie IIS und Apache, um JNLP-Dateien korrekt auszuliefern.
Installation auf dem Client: Geht auf die Voraussetzungen für JWS auf dem Client-System ein und behandelt häufige Installationsprobleme.
Applikationsentwicklung: Bietet eine detaillierte Anleitung zur Projekterstellung mit dem JBuilder 6, inklusive Archivierung, Launcher-Konfiguration und Testumgebungen.
Sicherheitseinstellungen: Behandelt die Sandbox-Restriktionen, die Signierung von JAR-Dateien und die Arbeit mit Zertifikaten mittels keytool.
Support von SUN: Informiert über Anlaufstellen für weitere Hilfe, wie FAQs, Supportdatenbanken und Foren.
JWS Anwendungsmanager: Beschreibt die zentrale Verwaltungsoberfläche für installierte JWS-Applikationen und deren Konfigurationsmöglichkeiten.
Beispielprogramm: Demonstriert die praktische Implementierung der JNLP-Klassen anhand eines Texteditor-Beispielprojekts.
Quelltext: Listet die implementierten Java-Klassen des Beispiel-Texteditors auf.
Schlüsselwörter
Java Web Start, JNLP, JNLP-Client, Deployment-Technologie, Web-Server, MIME-Type, Java Runtime Environment, Sandbox, JAR-Dateien, Code-Signierung, JBuilder, PersistenceService, BasicService, Applikationsentwicklung, Zertifikate.
Häufig gestellte Fragen
Worum geht es in diesem Handbuch?
Dieses Handbuch dient als Quick Start Manual für die Java Web Start Technologie. Es führt in die Architektur, die Implementierung und die Konfiguration von Java-Anwendungen ein, die webzentriert über ein JNLP-Protokoll bereitgestellt werden.
Was sind die zentralen Themenfelder?
Die Arbeit fokussiert sich auf das Deployment von Java-Anwendungen, die Konfiguration von Web-Servern, die Nutzung der JNLP-API für Client-Interaktionen sowie Sicherheitsaspekte bei der Ausführung in einer Sandbox.
Was ist das primäre Ziel der Arbeit?
Das primäre Ziel ist es, Entwicklern den Einstieg in die Java Web Start Technologie zu erleichtern, damit sie ihre Anwendungen als komfortable, automatisch aktualisierbare Lösungen direkt aus dem Web anbieten können.
Welche wissenschaftlichen Methoden werden verwendet?
Die Arbeit basiert auf einer technischen Anforderungsanalyse für Software-Deployment, gefolgt von einer angewandten Methode: der Implementierung eines beispielhaften Texteditors, an dem alle relevanten JNLP-Klassen demonstriert werden.
Was wird im Hauptteil der Arbeit behandelt?
Der Hauptteil gliedert sich in technische Grundlagen des JNLP-Protokolls, praktische Anleitungen zur Web-Server-Konfiguration (IIS/Apache), die Einbindung in JBuilder 6 sowie detaillierte Abschnitte zu Sicherheit und Zertifikatsmanagement.
Welche Schlüsselwörter charakterisieren die Arbeit?
Die zentralen Begriffe sind Java Web Start, JNLP, Deployment, Sandbox, JAR-Signierung und JNLP-API.
Wie kann ein Java Web Start Programm unbeschränkten Zugriff auf das lokale System erhalten?
Standardmäßig laufen Anwendungen in einer eingeschränkten Sandbox. Für vollen Zugriff müssen die JAR-Dateien der Anwendung digital signiert werden und in der JNLP-Datei muss das <security>-Tag mit <all-permissions/> konfiguriert sein.
Warum ist die korrekte Konfiguration des MIME-Types auf dem Web-Server so wichtig?
Wenn der Web-Server den MIME-Type für JNLP-Dateien nicht kennt, sendet er diese als normalen Text an den Browser. Dadurch wird die JNLP-Datei im Browserfenster als Text angezeigt, statt den Java Web Start Client zur Ausführung zu aktivieren.
Was ist der Zweck des PersistenceService?
Der PersistenceService ermöglicht es Web-Start-Anwendungen, kleine Datenmengen persistent auf dem Client zu speichern, ähnlich wie Browser-Cookies. Dies wird im Handbuch beispielhaft genutzt, um die Fenstergröße eines Editors beim Beenden zu speichern und beim nächsten Start wiederherzustellen.
- Arbeit zitieren
- Thomas Wetzlmaier (Autor:in), 2002, Java Web Start, München, GRIN Verlag, https://www.hausarbeiten.de/document/42072