<h1>Apps</h1>
|
<p>Dieses Dokument beschreibt Programme, die von der <a href="http://uhilger.de/dev/Software/WebBox/WebBox">WebBox</a> ausgeführt werden können, die Apps. Das ist interessant, wenn man selbst Apps erstellen möchte. Anwender, die fertige Apps auf einer WebBox nutzen möchten, müssen hier nicht weiterlesen.</p>
|
<p>Apps müssen gemäß der <a href="http://www.oracle.com/technetwork/java/javaee/tech/index.html">Java Servlet Spezifikation</a> aufgebaut sein, damit sie von der WebBox ausgeführt werden können. In diesem Dokument wird nicht der gesamte Standard der Java Servlet Spezifikation beschrieben. Es werden hier nur Teile erwähnt, die als Minimalansatz für eine App dienen können.</p>
|
<p style="padding-left: 30px;"><a href="#run">Laufzeitumgebung und -voraussetzungen</a><br /><a href="#strukt">Aufbau einer App</a></p>
|
<p style="padding-left: 60px;"><a href="#app-folder">App-Ordner</a><br /><a href="#web-inf-folder">Der Ordner WEB-INF</a><br /><a href="#webxml">Deployment Descriptor</a></p>
|
<h2><a name="run"></a>Laufzeitumgebung und -voraussetzungen</h2>
|
<p>Apps laufen auf der Maschine, auf der die WebBox gestartet wurde. Sie werden von der WebBox als Teil des Prozesses ausgeführt, in dem die WebBox läuft.</p>
|
<p>Prizipiell kann jede App, die die Java Servlet Spezifikation implementiert, auf der WebBox laufen. Einzelheiten zu besonderen Laufzeitvoraussetzungen müssen der Dokumentation der betreffenden App entnommen werden.</p>
|
<p>Die nachfolgenden Abschnitte beschreiben Aspekte einer App, die mindestens gegeben sein müssen. Diese werden in aller Regel von Apps erfüllt, die der Java Servlet Spezifikation entsprechen. Die Angaben an dieser Stelle richten sich an Nutzer, die selbst Apps für die WebBox herstellen möchten.</p>
|
<h2><a name="strukt"></a>Aufbau einer App</h2>
|
<p>Eine App ist eine Sammlung aus Dateien in einem Ordner des Dateisystems, dem App-Ordner. Apps müssen wie folgt aufgebaut sein:</p>
|
<p style="padding-left: 30px;"><code>/App-Ordner</code><br /><code> /WEB-INF</code><br /><code> web.xml</code><br /><code> /classes</code><br /><code> /lib</code></p>
|
<p>Der Hersteller einer App kann frei entscheiden, wie Struktur und Inhalt innerhalb dieses Rahmens beschaffen ist. NAchfolgend sind relevante Teile der obigen Struktur beschrieben.</p>
|
<h3><a name="app-folder"></a>App-Ordner</h3>
|
<p>Der App-Ordner enthält alle Bestandteile der App, z.B. Webseiten, Konfigurationsdateien, als Programm ausführbare Teile. Was sich nicht im Ordner <code>WEB-INF</code> befindet liefert die WebBox zur Laufzeit der App als Inhalt aus. Liegt im App-Verzeichnis z.B. eine HTML-Datei, wird diese als Webseite ausgeliefert. Ebenso werden Bilddateien ausgegeben.</p>
|
<p>Die so im App-Ordner vorgefundenen Inhalte erhalten von der WebBox jeweils ihren eigenen Uniform Resource Locator (URL) unter dem sie zugänglich sind. Den URL bildet die WebBox aus dem Ablageort des Inhalts innerhalb des App-Ordners und seinem Dateinamen. Dabei wird der Name des App-Ordners ebenfalls Teil des URL. Befindet sich beispielsweise eine Datei namens <code>Infos.html</code> im Ordner <code>/App-Ordner/meine</code> wird der Inhalt über die WebBox über folgenden URL zugänglich</p>
|
<p style="padding-left: 30px;"><code>http://localhost:8098/App-Ordner/meine/Infos.html</code></p>
|
<p>Aus diesem Schema ergibt sich, dass der Name eines App-Ordners nur einmal verwendet werden kann. Er dient der WebBox als eindeutige Zuordnung.</p>
|
<h3><a name="web-inf-folder"></a>Der Ordner WEB-INF</h3>
|
<p>Im Ordner <code>/App-Ordner/WEB-INF</code> werden Java-Klassen, Java-Klassenbibliotheken und Konfigurationsdateien abgelegt. Diese werden von der WebBox dynamisch geladen und ausgeführt wie vom Hersteller der App programmiert.</p>
|
<h3><a name="webxml"></a>Deployment Descriptor</h3>
|
<p>Als Deployment Descriptor wird die Datei <code>web.xml</code> bezeichnet. Der Deployment Descriptor beschreibt die App in einer standardisierten Weise und muss im Ordner <code>/App-Ordner/WEB-INF</code> abgelegt sein. Die WebBox zieht den Inhalt des Deployment Descriptors heran, um die ausführbaren Teile einer App zu erkennen und so auszuführen, wie es konfiguriert wurde. Die Beschreibung des Aufbaus eines Deployment Descriptors findet sich in der <a href="http://www.oracle.com/technetwork/java/javaee/tech/index.html">Java Servlet Spezifikation</a>.</p>
|
<p> </p>
|
<p> </p>
|
<p> </p>
|