|
Web Anwendung erzeugen (Applet) |
|
|
01.11.2009 Web-Anwendung erzeugen (Applet)
Wenn Sie Ihre Anwendung als Java Applet fertig stellen, erhalten Sie eine Web-Anwendung, sprich ein Java Programm, das in einem Web-Browser abläuft. Die Browser-basierende XDEV-Anwendung wird wie eine Webseite über eine URL aufgerufen. Das Java Applet selbst wird aus einer PHP-Seite heraus aufgerufen, anschließend vom Webserver geladen und in der PHP-Seite eingebettet im Web-Browser ausgeführt. Da ein Web-Browser ausschließlich HTML, jedoch keine Java Programme lesen und ausführen kann, muss auf dem Rechner des Benutzers die Java Virtual Machine (JVM) vorhanden sein. Die JVM ist ein Interpreter, der für die Ausführung von Java Programmen grundsätzlich benötigt wird. Auf Grund der starken Marktdurchdringung gehört mittlerweile bei vielen Systemen eine aktuelle Java Version zum Standardumfang, z.B. bei den Betriebssystemen Mac OS-X, Sun Solaris, i.d.R. bei den zahlreichen Linux-Distributionen, sowie beim Web-Browser Opera. Der Internet Explorer nimmt dagegen eine Sonderstellung ein, denn der Microsoft Browser enthält eine von Microsoft selbst entwickelte JVM, die jedoch leider auf der längst veralteten Java Version 1.1.3 basiert und zudem von Microsoft nicht mehr weiter entwickelt wird. Der Firefox liefert leider gar keine JVM, sodass die JVM erst downgeloaded und installiert werden muss. Da die von XDEV 2 erzeugten Applets auf Java 2, Version 1.4 basieren, muss auch auf dem Client eine JVM ab Version 1.4 vorhanden sein, um eine XDEV-Anwendung im Browser ausführen zu können.
Zwischen einem Applet und einer Applikation besteht optisch und funktionell, mit Ausnahme des Anwendungs-Fensters kein nennenswerter Unterschied. Der Unterschied zu einer HTML-basierenden Web-Anwendung ist jedoch so unterschiedlich wie Tag und Nacht. Ein XDEV-Applet bietet dem Anwender das hundertprozentige Gefühl, mit einer richtigen Applikation zu arbeiten. Applets erlauben den Einsatz zahlreicher Komponenten und Features, die man auf dynamischen HTML-Seiten meist vergeblich sucht, z.B. echte Fenstertechnik, Kontextmenüs, Splitpanes, Assistenten oder schlicht bequemes Drag&Drop. Während bei dynamischen Webseiten die Anwendungslogik nahezu vollständig auf dem Server ausgeführt und lediglich das Ergebnis als HTML-Seite im Browser angezeigt wird, wird die Programmlogik bei Java Applets nahezu komplett auf dem Client ausgeführt. Dadurch wird eine Menge Rechenzeit auf die zugreifenden Anwenderrechner verteilt und der Server stark entlastet. Zudem lassen sich einmal geladene Daten auch über viele Aktionen hinweg beliebig lange im Speicher des Client halten, während HTML-Anwendungen nach jeder Aktion auf dem Server eine neue HTML-Seite generieren und an den Browser übermitteln müssen. Das macht HTML-Anwendungen oft sehr träge. AJAX-basierende HTML-Anwendungen (Asynchronous JavaScript and XML) sind deutlich schneller als klassische HTML-Anwendungen und stellen eine erste Alternative zu Desktop-Anwendungen und Java Applets dar. In der Praxis ist jedoch die Ausführbarkeit unter den verschiedenen Browsern auf Grund fehlender oder nicht generell akzeptierter Standards (noch) sehr problematisch und der Entwicklungsaufwand von AJAX-Anwendungen ist dadurch vergleichsweise sehr hoch. Dies spricht für den Einsatz von Browser- und System-unabhängigen Java Applets.
Zugriffsrechte: Ein Java Applet hat grundsätzlich keine Zugriffsrechte auf den lokalen Rechner auf dem es läuft. Das Applet kann sowohl schreibend als auch lesen ausschließlich auf den Quell-Ordner zugreifen, aus dem es geladen wurde (Codebase). Das Applet läuft somit in der sicheren Umgebung einer Sandbox.
Zugriff auf Datenbanken: Der größte technische Unterschied zwischen einer Java Applikation und einem Java Applet besteht beim Zugriff auf Datenbanken. Anders als eine Applikation darf ein Applet ausschließlich auf den Ordner zugreifen, von dem es kommt. Dieser Ordner wird als Sandbox oder auch als Codebase bezeichnet. Ein Applet kann somit nicht direkt auf eine Datenbank zugreifen, da diese kaum im selben Programmordner wie das Applet liegen wird. In der Praxis liegt die Datenbank i.d.R. sogar auf einem anderen physikalischen Rechner, sprich auf einem speziellen Datenbank-Server. Um dennoch vom Applet aus darauf zugreifen zu können, werden alle Datenbankabfragen über eine spezielle PHP-Middleware (Zwischenschicht) umgeleitet. Diese wird beim Kompilieren des Projekts automatisch an die generierten Applet-Dateien angebunden. Nach der Übertragung der Dateien auf den Webserver liegen die PHP-Dateien somit automatisch in der Codebase des Java Applets, wodurch Datentransfers zwischen Java Applet, PHP-Middleware und Datenbank-Server möglich werden.
Die Daten werden zwischen Java Applet, PHP-Middleware und Datenbank werden komprimiert und verschlüsselt übertragen. Bei entsprechender Webserver-Konfiguration ist auch die verschlüsselte Übertragung der Daten per https problemlos möglich.
Java Applets testen: Um ein Java Applet lokal testen zu können, benötigen Sie auf Ihrem Entwicklungsrechner dieselbe Architektur wie später auf dem Server, sprich einen Webserver, eine Datenbank und die Programmiersprache PHP (ab Version 4). Bei der Installation von XDEV 2 werden diese Komponenten automatisch im Ordner srv installiert, den Sie im XDEV-Programmverzeichnis finden. Wenn Sie Ihren eigenen Webserver nutzen möchten, müssen Sie lediglich die Webserver-Standardeinstellungen abändern, die Sie im Menü Extras unter Einstellungen bei Allgemein finden.
Anschließend müssen Sie nur noch in der XDEV-Menüleiste einstellen, dass die Vorschau als Java Applet gestartet werden soll. Klicken Sie dazu auf die Auswahlbox bei dem Symbol
Java Applets uploaden: Um das Java Applet als Anwendung frei zu geben, müssen Sie nun nur noch die generierten Dateien auf Ihren Webserver übertragen. Dazu steht Ihnen in XDEV 2 ein FTP-Client, sowie eine sehr komfortable Auto-Upload-Funktion zur Verfügung. Bevor Sie den Upload durchführen können, müssen Sie die Verbindungsdaten zu Ihrem Webserver angeben. Klicken Sie dazu im Dialog Projekt fertig stellen auf Verbindungen bearbeiten oder im FTP-Client auf Verbindungsmanager.
|