Wie wird eine neue Client-Version auf dem Test-Server erzeugt?
<2018-03-02>
Auf dem Test-Server wird bei der Entwicklung mit unkomprimierten Quelldateien gearbeitet. Für den effizienten Betrieb auf dem Cloud-Server müssen die Dateien unter anderem erst noch verdichtet ("minified") und teilweise zusammengefügt werden.

Ausgangssituation:

Die Entwicklung von Software für das und mit dem openWIM-System findet auf einem Entwicklungs- und Test-Server statt. Dabei wird zunächst mit Quelldateien gearbeitet, die "unverdichtet" sind - also Kommentierungen sowie Leerzeilen zur besseren Übersicht enthalten und jeweils nur für einzelne Teilaufgaben vorgesehen sind. Die Entwicklungsarbeiten finden direkt auf Basis dieser Dateien statt. Dazu werden lokale (nichtöffentliche) Domains wie beispielsweise developer.wim-d.cs08 verwendet.

Die Entwicklungsarbeiten können verschiedene Bereiche umfassen:

  1. Die Dateien für den generellen Server-Betrieb,

  2. die jeweiligen projektspezifisch ergänzenden Dateien zum Server-System,

  3. die grundlegenden Dateien für den Betrieb der openWIM Client-Software (im Browser) und

  4. die jeweiligen projektspezifisch ergänzenden Dateien für die Client-Software im Browser.

  5. In der Datenbank des Servers stehen die projektbezogenen Objektdaten für die Inhalte der Darstellungen der Internetpräsenz bzw. der "App". Dabei werden Objektdaten auch projektübergreifend genutzt.

  6. Weiterhin werden ggf. noch Änderungen an Steuerungs-Dateien wie bower.json, manifest.json, wim-admin.json, etc. gemacht.

Aufgabenstellung:

Für die Nutzung (= Übertragung) im Internet müssen aus Gründen der Effizienz diverse Dateien noch "verdichtet" (minified) werden um die Menge der an die Browser zu übertragenden Daten möglichst gering zu halten. Dabei werden aus den Dateien möglichst alle Zeichen entfernt, die für die Funktion nicht benötigt werden. Auch werden lange Bezeichner möglichst durch kurze Bezeichner ersetzt.

Weiterhin werden einige Dateien zusammengefügt, damit sie nicht (aufwändig) alle einzeln übertragen werden müssen, sondern gebündelt auf eine einzelne Anforderung hin. Wenn HTTP/2 genutzt werden kann, ist ein solches vorab durchgeführtes "paketieren" nicht mehr nötig, da dieses aufwandsarm und situationsgerecht zur Laufzeit geschehen kann.

Die eben beschriebenen Aufgaben werden auf dem Entwicklungs- und Test-Server mit Unterstützung von Polymer-CLI durchgeführt. Die damit erstellten Dateien werden dann an die dafür vorgesehenen Plätze verschoben und können dann über eine Domain wie test.wim-d.cs08 getestet werden um nach erfolgreichem Test dann an die entsprechende Stelle auf den Server im Internet kopiert zu werden (nachdem dort ggf. der Zielbereich aufgeräumt wurde).

Ablauf der Erstellung einer neuen Client-Version:

In der Datei "polymer.json" muss eingetragen sein, welche Dateien für die Zusammenstellung der Client-Software genutzt werden sollen. Nachfolgend beschriebene Parameter haben dabei folgende Bedeutungen:

entrypoint:
Wird derzeit nicht wirklich genutzt, aber von Polymer CLI benötigt. Es wird daher auf die Datei "murks.html" (ein HTML-Dokument ohne darzustellenden Inhalt) verwiesen.
shell:
Die .html-Datei, die als "Wurzel"-Datei alle weiteren (projektunabhängigen) .html-Dateien benötigt und zu der im Falle der Erzeugung einer "bundeled"-Erzeugung alle anderen .html-Dateien hinzugefügt werden.
fragments:
Hier muss die Liste aller HTML-Dateien eingetragen sein, die jeweils für die einzelnen Projekte zum Client übertragen werden müssen. Die "simple"-Dateien zu den einzelnen Projekten gehören nicht dazu, denn diese werden nur auf dem Server benötigt. Diese Dateien werden nicht mit anderen zusammengefasst, sondern nur verdichtet.
sources:
[++tbd++] [Details hierzu sind der Polymer CLI Dokumentation zu entnehen]
extraDependencies:
[++tbd++] [Details hierzu sind der Polymer CLI Dokumentation zu entnehen]
builds:
Hier können alternative Parametereinstellungen angegeben werden, falls nicht eine der Standard-Builds erzeugt werden soll. [Details dazu sind der Polymer CLI Dokumentation zu entnehen]

Alternativ können auch Standard-Builds wie "es6-bundled" generiert werden wie beispielsweise:
polymer build --preset es6-bundled
lint:
Hier werden Einstellungen für die formale Überprüfung der zu verwendenden Dateien eingetragen. [Details hierzu sind der Polymer CLI Dokumentation zu entnehen]

Normalerweise werden die Dateien für eine neue Client-Version per

polymer build --preset es6-bundled

generiert. Das Ergebnis hierzu wird im Verzeichnis build/es6-bundled abgelegt. Zuvor dort vorhandene Dateien werden gelöscht.

Diese Dateien müssen dann "manuell" in beispielsweise das Verzeichnis /clients/32.22.2 (für die Version 32.22.2) verschoben werden. Dabei ist anzumerken, dass die Dateien /src/wim-common.js und /src/wim-service.js sowohl in ihrer unverdichteten Originalfassung (vom Server) als auch in ihrer verdichteten Fassung des /clients/src Verzeichnis (vom Worker-Teil des Client) verwendet werden. Die Dateien /src/wim-worker.js und /src/pouchdb-*.js werden nur vom worker-Bereich des Clients verwendet. Vom Server (wim-server.js) wird je nach verwendeter Subdomain (test.xxx oder developer.xxx usw.) die verdichtete oder unverdichtete Version der Dateien zum Client gesendet.

Themen hierzuAssciated topics:

Test-Server ()

Das könnte Sie auch interessierenFurther readings:
Was ist bei der Installation eines openWIM-Servers zu beachten ?
<2020-05-04>
Wenn ein neuer openWIM-Server Installiert wird sind verschiedene Aktionen manuell durchzuführen, weil es derzeit noch kein automatisches Installationsverfahren gibt. Die einzelnen Schritte werden hier vorgestellt.   Mehr »
Rollenverteilung im WIM-Kontext
<2013-01-01>
Bei der Benutzung, dem Betrieb und der Entwicklung des WIM-Systems gibt es verschiedenste Rollen, die hier näher erläutert werden.   Mehr »
Die Bildrechte werden in der Online-Version angegeben.For copyright notice look at the online version.

Bildrechte zu den in diese Datei eingebundenen Bild-Dateien:

Hinweise:
1. Die Bilder sind in der Reihenfolge ihres ersten Auftretens (im Quelltext dieser Seite) angeordnet.
2. Beim Anklicken eines der nachfolgenden Bezeichnungen, wird das zugehörige Bild angezeigt.
3, Die Bildrechte-Liste wird normalerweise nicht mitgedruckt,
4. Bildname und Rechteinhaber sind jeweils im Dateinamen des Bildes enthalten.