Dateiverwaltung für die WebBox
ulrich
2018-02-17 fe50f98aae09eaf8c360857f9fc8a024409469d9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<h1>Apps</h1>
<p>Dieses Dokument beschreibt Programme, die von der <a href="http://uhilger.de/dev/Software/WebBox/WebBox">WebBox</a> ausgef&uuml;hrt werden k&ouml;nnen, die Apps. Das ist interessant, wenn man selbst Apps erstellen m&ouml;chte. Anwender, die fertige Apps auf einer WebBox nutzen m&ouml;chten, m&uuml;ssen hier nicht weiterlesen.</p>
<p>Apps m&uuml;ssen gem&auml;&szlig; 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&uuml;hrt werden k&ouml;nnen. In diesem Dokument wird nicht der gesamte Standard der Java Servlet Spezifikation beschrieben. Es werden hier nur Teile erw&auml;hnt, die als Minimalansatz f&uuml;r eine App dienen k&ouml;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&uuml;hrt, in dem die WebBox l&auml;uft.</p>
<p>Prizipiell kann jede App, die die Java Servlet Spezifikation implementiert, auf der WebBox laufen. Einzelheiten zu besonderen Laufzeitvoraussetzungen m&uuml;ssen der Dokumentation der betreffenden App entnommen werden.</p>
<p>Die nachfolgenden Abschnitte beschreiben Aspekte einer App, die mindestens gegeben sein m&uuml;ssen. Diese werden in aller Regel von Apps erf&uuml;llt, die der Java Servlet Spezifikation entsprechen. Die Angaben an dieser Stelle richten sich an Nutzer, die selbst Apps f&uuml;r die WebBox herstellen m&ouml;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&uuml;ssen wie folgt aufgebaut sein:</p>
<p style="padding-left: 30px;"><code>/App-Ordner</code><br /><code>&nbsp; /WEB-INF</code><br /><code>&nbsp;&nbsp;&nbsp; web.xml</code><br /><code>&nbsp;&nbsp;&nbsp; /classes</code><br /><code>&nbsp;&nbsp;&nbsp; /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&auml;lt alle Bestandteile der App, z.B. Webseiten, Konfigurationsdateien, als Programm ausf&uuml;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&auml;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 &uuml;ber die WebBox &uuml;ber folgenden URL zug&auml;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&uuml;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&uuml;hrbaren Teile einer App zu erkennen und so auszuf&uuml;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>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>