Wie bearbeiten Cloud-Server eintreffende Anforderungen der openWIM-Clients?
Wie sind die Schnittstellen und Funktionen gestaltet?
Von: @VB <2016-10-06>
Von den Internet-Browsern ("Clients") werden die URLs der Projekte aufgerufen. Die URLs führen zum (zuständigen) "Cloud"-Server, der - nach Möglichkeit - die von den Clients gewünschten Aktionen ausführt. Beispielsweise zu ladende Daten liefert.
Aufgaben eines Cloud-Servers:

Alle Anforderungen des Internet-Browsers (auch "Client" oder "User Agent" genannt), die das openWIM-direkt System betreffen, werden an einen Cloud-Server gerichtet. Ein Cloud-Server muss daher folgende Aufgaben erledigen:

  • Ein Cloud-Server ist für eine oder mehrere Projektgruppen zuständig und hält alle Daten zu diesen Projektgruppen in seiner Datenbasis oder seinen Dateiverzeichnissen. Kopien von Objektdaten anderer Projektgruppen werden bei Bedarf nachgeladen und für die Dauer ihrer Nutzung (incl. einer Wartezeit) gespeichert.
    Anfangs werden sämtliche Projektgruppen von einem einzelnen Cloud-Server bedient.

  • Bei Aufruf einer Projekt-(Basis-)Url muss eine "Boot-" HTML-Datei an den Browser geliefert werden, die die Startseite für das aufgerufene Projekt darstellt und auch von einfachen oder "veralteten" Internetbrowsern ansehnlich dargestellt werden kann. Diese Darstellung muss auch in akzeptabler Form gedruckt werden können.

    Der Server muss zur Erzeugung der Boot-Datei zunächst ermitteln, welches Projekt mit welcher Version und welchem Release angesprochen wird. Die dazu passenden Daten für die Erstellung der Boot-Datei werden aus der DB geholt.

    Um kürzeste Reaktionszeiten zu erreichen, werden in die Boot-Datei möglichst viele Daten eingebunden und die Anzahl von Folge-Requests (für eine erste Darstellung im Browser) an den Server damit möglichst reduziert. So sollen CSS-, JavaScript- und auch Daten kleinerer Bilder direkt eingebunden werden.

    Die so zusammengestellten Boot-Dateien werden pro Projekt im Hauptspeicher für weitere Abrufe bereitgehalten.
    Falls die für die Zusammenstellung der Boot-Datei verwendeten Daten sich (in der DB) ändern, werden die betroffenen Boot-Dateien gelöscht.

    Falls der genutzte Browser auf dem halbwegs aktuellen Stand der Technik ist, wird das eigentliche openWIM-System aus der Cloud nachgeladen und gestartet, sofern dieses nicht explizit unterdrückt werden soll. Die initiale "simple" Darstellung der Startseite wird dann durch die Startseite des komfortablen openWIM-Systems überlagert.

  • Wird dediziert die Anzeige eines Objektes aus einem Projekt aufgerufen, wird analog zum Aufruf der Basis-URL agiert. Anstelle der Startseite wird jedoch eine einfache Darstellung des aufgerufenen Objektes generiert - sofern es sich um ein darstellbares Objekt handelt, dass für den öffentlichen Zugriff freigegeben ist.

  • ...

  • ...

  • Während der Übergangszeit bis zur Ablösung der alten Perl-Implementation des Servers werden beim Starten des node.js -basierten Servers die seit dem letzten Abgleichszeitpunkt geänderten Objektdaten für die betroffenen Projektgruppen aus der alten Perl-DB geholt und in der CouchDB aktualisiert. Ein solcher Datenabgleich erfolgt während der Laufzeit des node.js -basierten Servers perodisch während seiner gesamten Laufzeit. Dabei wird anfangs und bei Daten-Änderungen die Aktualisierungperiode spürbar verkürzt.

  • ...

  • ...

Aufgabenbereiche innerhalb eines Cloud-Servers:
  • Alle via Internet eintreffenden Anfragen müssen sach- und situationsgerecht bearbeitet werden. Dazu gehören die Abfrage von "Internetseiten" und Daten-Nachfragen zur Aktualisierung /Änderung sowie das Laden von Dateien, die für die Darstellungen im Browser benötigt werden sowie das Bearbeiten Administrativer Aufgaben.

  • Die Daten der vom Cloud-Server verwalteten Datenbank müssen mit anderen Datenbanken abgeglichen und ggf. aktualisiert werden. Änderungen in der Cloud-Datenbank müssen ggf. an andere Datenbanken weitergemeldet werden.

  • Die für die Bearbeitung von Anfragen der Nutzer und Aufträgen der Administration benötigten Daten müssen übergeben werden. Zu ändernde Daten müssen angenommen und bearbeitet - beispielsweise gespeichert - werden.

  • Die Änderungen von Objektdaten müssen überprüft und bewertet werden. Abgeleitete Daten (beispielsweise für die Volltextsuche oder aus der Nutzungsauswertung) müssen erstellt bzw. aktualisiert werden.

  • Unerwünschte Zugriffe müssen abgewehrt werden,

  • Der laufende Betrieb muss überwacht und protokolliert werden. Vor sich anbahnenden Störungen soll gewarnt werden. Akute Störungen müssen angemessen bearbeitet werden.

  • ...

  • ...

Grundsätzliche Regeln beim Betrieb des Cloud-Servers:
  • Die verschiedenen Aufgabengebiete werden möglichst in separaten Modulen gebündelt.

  • ...

  • ...

  • ...

  • ...



Veraltet:

Wie bearbeiten die Frontend-Server eintreffende Anforderungen der openWIM-Clients?

Wie sind die Schnittstellen und Funktionen gestaltet?

Von den Internet-Browsern ("Clients") werden die URLs der Projekte aufgerufen. Die URLs führen zu den "Frontend"-Servern, die - nach Möglichkeit - die von den Clients gewünschen Aktionen durchführen beispielsweise zu ladende Daten liefern.

Was ist das Aufgabenspektrum der Frontend-Server?

Bei den Frontend-Servern treffen verschiedene Arten von Anforderungen ein:

  • Aufruf der Projektadresse und Abruf von Internetseiten.
  • Abruf von Script-Dateien für den Client-Betrieb im Advanced-Modus.
  • Abruf von Dateien (Grafik, Dokumente, ...).
  • Nachladen von Daten, ausführen spezieller Aufträge.
    • Beispielsweise im advanced-Modus angefprderte weitere Daten zu angezeigten Objekten oder Abruf von Daten neuer Objekte.
    • Speichern von bearbeiteten Objekt-Parameterwerten.
    • Nutzer-Anmeldung, Newsletter-Anmeldung, etc. .
    • Anforderung von Laufzeit-Informationen etc. (für die Administration).
  • Abruf von Feeder-Dateien (RSS, Atom)
  • Zugriff auf nicht vorhandene Adressen (Hacker-Aktionen oder Versehen?)

Darüber hinaus können noch Anforderungen anderer Frontend-Server eintreffen. Auch die Backend-Server können Anforderungen, wie beispielsweise die Übergabe aktualisierter Daten, senden.

Für jede dieser Anforderungs-Arten gibt es jeweils ein eigenes Script, damit die Scripts besser überschaubar werden - und leichter von Perl auf php umgestellt werden können.


Die Anforderungs-Arten im Detail:

Aufrufe der Basis-URL:

Hierunter fallen alle Aufrufe der Projekt-URL, bei denen keine Datei und/oder Unterverzeichnisse angegeben sind. CGI-Parameter (...?show=XxXx usw.) können jedoch vorhanden sein. Die Hash-Angaben der URL werden NICHT zum Server übermittelt, sondern nur lokal im Browser bearbeitet.

Bei diesen Aufträgen wird die Default-Datei "index.pl" (oder .php ?) aufgerufen. Die Bearbeitung dieser Aufrufe wird in einem separaten Dokument beschrieben.

Abruf von Script-Dateien für den Client-Betrieb im Advanced-Modus:

Aus organisatorischen Gründen sollen die Script-Dateien für die Clients zusammen mit den Script-Dateien für die Server auf dem gleichen Verzeichnis stehen. Jeweils für jede System-Version (retired, preview, ...) und jedes System-Release (..., update, test) separat. Dateien auf diesen Verzeichnissen sind jedoch für den freien Abruf gesperrt. Deshalb geschieht der Abruf mit Hilfe von Server-Scripts, die gewünschten Dateien zum Client schicken.

Da die Programmierung der Frontend-Server derzeit mit Perl-Scripten erfolgt, aber auf PHP-Scripte umgestellt werden soll, soll auch keine Datei-Endungen beim Zugriff verwendet werden. Darum wird für jede Client-Script-Datei ein eigenes Verzeichnis angelegt, bei dem die index.pl (pder .php ?) -Datei die Auslieferung besorgt.

Wegen der Abhängigkeit von der Version und dem Release müssen diese Dateien bzw. deren Verzeichnisse im Aufruf-Verzeichnis stehen.

Abruf von Dateien (Grafik, Dokumente, ...):

...

Nachladen von Daten, ausführen spezieller Aufträge:

...

Abruf von Feeder-Dateien (RSS, Atom):

...

Zugriff auf nicht vorhandene Adressen:

...


Dateien und Verzeichnisse, die für die Interaktionen mit den Frontend-Servern besonders relevant sind:

Beschreibungen von Teilverfahren:


.. ?

...tbd:

  • => Das Aufbauen der Darstellung soll die Nutzer nicht verwirren, sondern konsistent und nachvollziehbar sein. Keine Flash-Effekte oder Geflatter etc. .
  • => Die App soll in kürzester Zeit (unter 3 Sekunden ?) für Aktionen der Nutzer aufnahmebereit sein.
  • => Das WIM-System soll auch möglichst weitgehend offline nutzbar sein (aus dem lokalen Speicher bzw. Browser-Cache ?)
  • => Möglichst alle öffentlichen(!) Informationen eines Projektes müssen auch durch (dafür freigegebene) Suchmaschinen-Roboter abrufbar sein.
  • => Auch mit Browsern, die nicht dem Stand der Technik entsprechen oder bei denen Scripting ausgeschaltet ist, müssen möglichst alle öffentlich zugreifbaren Informationen abrufbar sein - wenngleich auch nicht immer mit allem "Komfort".
  • => Beim Aufruf von Infos aus Ergebnislisten der Suchmaschinen heraus sollte immer die WIM-App starten, wenn es die Browser-Konfiguration zulässt.
  • => Der Abruf der öffentlichen(!) Infos sollen auch per RSS2- oder atom-Feed möglich sein.
  • => Unerwünschte Aufrufer sollen geblockt werden können.
  • => Unmäßig intensive Nutzungen sollten automatisch gebremst werden können. (Ungewollte) "Endlos-Aufrufschleifen" im System dürfen das System nicht blockieren.
  • => Bei den verwendeten Kommunikationsadressen ist eine Unabhängigkeit von der verwendeten Software sicherzustellen. Für Nutzer der Frontend-Server sollte möglichst nicht bemerkbar sein, welche Software auf dem Server gerade verwendet wird.
.. ?

...

.. ?

...

.. ?

...

Welche Aufgabenbereiche haben Frontend-Server abzudecken ?

Die Frontend-Server stellen die direkte Schnittstelle zwischen den Internet-Browsern der Nutzer und den im Internet gespeicherten Daten und Programmen dar. Für die primäre Speicherung der Objekt-Daten sind die Backend-Server zuständig. Die Frontend-Server haben die Aufgabe, die konkret nachgefragten Daten möglichst schnell zu liefern und die Backend-Server von allen direkten Anfragen aus den Weiten des Internets abzuschirmen.

Die Aufgabenbereiche im Einzelnen:

    "Spontan" eintreffende Anfragen:

    § Siehe auch Wie werden Aufrufe der Basis-URL vom Frontend-Server bearbeitet?

  • => Alle Aufrufe der Internetseiten einer Internetpräsenz oder zum Starten einer WIM-App müssen bearbeitet und beantwortet werden.
  • => Auch alle Aufrufe von Internetbrowsern, bei denen das WIM-Laufzeitsystem nicht gestartet werden kann (beispielsweise mangels Browser-Fähigkeiten) oder soll (weil Scripting abgeschaltet /blockiert wurde), müssen angenommen und bearbeitet werdenli>
  • => Anfragen von "erwünschten" Suchmaschinen-Robotern werden so beantwortet, dass die gelieferten Daten von ihnen gut verarbeitbar sind. Anfragen unerwünschter Suchmaschinen-Roboter werden wie "Hacking"-Anfragen behandelt.Die Identität der erwünschten Suchmaschinen-Roboter wird verifiziert.
  • => "unerwünschte" (Hacking-) Anfragen werden nach Möglichkeit blockiert. Beispielsweise, in dem die Antworten sehr stark verzögert werden und ein abweisender http-Statuscode zurückgesendet wird.
  • => Anfragen zu nicht existierenden Dateien werden meist wie Hacking-Anfragen behandelt. Wenn eine Analyse ergibt, dass es sich sehr wahrscheinlich um eine Hacking-Anfrage handelt, können "verschärfte Maßnahmen" (IP-Blockade, ...) aktiviert werden. IP-Blockaden sollten an alle openWIM-Server weitergemeldet werden.
  • Bei neu aufzunehmenden Sitzungen auf einem überlasteten Server oder Nichtverfügbarkeit des angesprochenen Servers (Wartung etc.) kann eine automatische Weiterleitung auf einen verfügbaren bzw. weniger ausgelasteten Server erfolgen.
  • Laufende Sitzung, Datenaustausch:

  • => Anfragen von Clients oder anderen openWIM-Servern nach Objekt-Daten werden beantwortet. Eventuell benötigte Berechtigungen werden überprüft.
  • => Empfangene Daten werden verarbeitet und ggf. weitergegeben, wenn die Berechtigung der Sender vorliegt.
  • => Wenn Daten von einem Client (oder anderen Frontend-Server) abonniert wurden, werden betroffene aktualisierte Daten an die Abonnenten weitergemeldet.
  • => Wenn die Kommunikation mit einem Client zu lange unterbrochen wird (beispielsweise, wenn ein Client-Gerät vorübergehend abgeschaltet wird oder wenn die Netzwerk-Verbindung wegen Durchqueren eines Mobilfunk-Lochs etc. unterbrochen wurde), wird die im Prinzip "endlose" Sitzung pausiert.
  • => Wiederaufnahme einer Sitzung: Meldet sich ein Client nach einer Sitzung-Pause wieder, kann die Sitzung wieder aufgenommen werden, wenn die Autentifizierung gelingt. bei nur kurzen Pausen werden aufgestaute Daten gesendet, ansonsten müssen sich Client und Friontend-Server synchronisieren und beispielsweise zwischenzeitlich aktualisierte Daten austauschen.
  • Bereitstellung von Dateien:

  • => Dateien werden (zur Ausfallsicherheit) in Kopie unter allen URLs eines Projektes gehalten und an die Aufrufer herausgegeben - falls sie keinen Zugriffs-Restriktionen unterliegen.
  • => Nichtöffentliche Dateien ( files/private/ oder files/projectname/private/ ) dürfen nur an berechtigte Aufrufer herausgegeben werden. Die Verzeichnisse sind gegen direkte Aufrufe geschützt.
  • => Eventuell für ein Projekt unter einer seiner URLs noch nicht bereitgestellte Dateien (Grafiken, PDF-Dateien, ...) müssen von geeigneter Stelle (beispielsweise dem Backend-Server der zuständigen Projektgruppe) besorgt und an die Aufrufer weitergegeben werden. Pro Projekt wird eine Adressliste möglicher Datei-Quellen gehalten.
  • Spezielle Kommunikation, RPC:

  • => Nutzeranmeldungen werden (mit Rückgriff auf den Backend-Server) durchgeführt,
  • => Administrative Aktionen können vom Client veranlasst werden, wenn die notwendige Berechtigung vorliegt.
  • => Sofern auf einem Frontend-Server Kopien aller Daten vorliegen, können die Frontend-Server möglichst viele Leistungen für die Clients erbringen. Sie arbeiten notfalls weitestgehend ohne Backend-Server.
  • Bereitstellen, aktualisieren unf ausliefern von generierten Dokumenten /Fragmenten:

  • => Bei allen "spontanen" Anfragenvon Clients an den Frontend-Server wird eine einfache Seite im "uncomplicated"-Format mit der Darstellung des abgerufenen Objektes bzw. der Startseite mitgeliefert. Diese einzubettenden Darstellungen sollen als Dokument-Fragmente zum einfachen Einbetten bereitstehen. Der Frontend-Server muss dafür sorgen, dass diese Fragmente bei Bedarf erstellt und aktualisiert werden. Nötigenfalls mit Hilfe eines Support-Servers.
  • => Bei Internetpräsenzen können RSS- und/oder Atom-Feeds bereitgestellt werden. Der Frontend-Server muss diese Dokumente bei Bedarf erzeugen, aktualisieren unf ausliefern. Nötigenfalls mit Hilfe eines Support-Servers.
  • ...

.

Welche "produktiven" Aufgaben hat ein Frontend-Server bei Aufrufen der Basis-Url eines Projektes zu erledigen ?

Für das WIM-System ist die schnell erreichte "Sichtbarkeit" und Arbeitsfähigkeit der App nach ihrem Aufruf im Browser von essentieller Bedeutung, weil sie die Nutzer animiert, "schnell mal" die App aufzurufen - auch wenn sie (in der Regel) erst vom Server geladen werden muss. Der Frontend-Server muss aber auch auf andere Anfragen reagieren, sodass die Optimierung nicht beliebig einseitig erfolgen darf.

Folgende Ziele und Randbedingungen sind dabei zu berücksichtigen:

  • => Der Aufruf der Projektseite (bzw. der App) durch die Nutzer soll in kürzester Zeit (deutlich unter 1 Sekunde) eine gut erkennbare, vernünftige Reaktion zeigen können.
  • => Das Script im Frontend-Server muss für den Regelfall möglichst kurz (und damit spezialisiert) gehalten werden.
  • => Falls eine vom Normalfall abweichende Reaktion nötig wird, können weitere Script-Module nachgeladen werden. Das geht auch ohne mod_Perl etc. .
  • => Das Script darf nicht prokektspezifisch sein, damit das Aufsetzen oder Ändern des Scripts automatisiert erfolgen kann.
  • => Das Script darf eine Datei einlesen, die projektspezifische Daten sowie alle Basis-Style-Definitionen und Basis-Scripts enthält. Diese Daten werden mit einem Rahmen versehen an den Browser zurückgeschickt.
  • => Die an den Browser zu sendenden einzubindenden Dateien müssen vom Server stets automatisch auf dem aktuellen Stand gehalten werden.
  • => Initial zu ladende Grafiken (beispielsweise Logos) sollten möglichst im SVG-Format bereitgestellt und direkt in die einzubindende Datei eingefügt werden, damit keine separate Nachlade-Aktion erfolgen muss.
  • => Das Frontend-Server-Script prüft, ob ein Aufruf von einem erwünschten Submaschinen-Roboter kommt und überprüft ggf. seine Identität. Der Bot bekommt eine vorbereitete Datei geliefert, die alle Daten für die Darstellung des aufgerufenen Objektes enthält (könnte aus dem Suchmaschinen-Cache heraus aufgerufen werden)
  • => Die Suchmaschinen-Bots werden nach Möglichkeit auf die Feed-Varianten der Objektdarstellungen geleitet.
  • => Das Frontend-Server-Script prüft einige Query-Parameter und sendet beispielsweise für Debug-Zwecke alternative Daten wie die Anforderung zur Verwendung unkomprimierte Sccripts.
  • => Falls ein?show=ObjSpec -Parameter entdeckt wird, wird die Suchmaschinen-Bot-Variante des aufgerufenen Objektes gesendet. Ist im Browser das WIM-Laufzeitsystem nutzbar, wird es nachgeladen und gestartet.
  • => Aufrufe der Basis-Url mit Angabe von Dateinamen führen in aller Regel zu 404-Fehlern etc., die dann entsprechend (von einem anderen Script) bearbeitet werden.
  • .
Welche "weiteren" Aufgaben sind vom Frontend-Server bei Aufrufen der Basis-Url zu erledigen ?
  • ...
Was sind kritische Erfolgsfaktoren für die Erreichung der Ziele ?
  • Für ein schnelles Hochfahren der App im Browser ist folgendes wichtig:
    • Die Hash-Tags der im Browser angegebenen Url müssen ausschließlich im Browser bearbeitet werden. Sie werden NICHT zum Server übertragen.
    • Ist ein "show" Query-Parameter angegeben oder ist erkennbar, dass der Aufruf von einem Suchmaschinen-Roboter oder einem "dummen" Browser kommt, müssen Module zur speziellen Bearbeitung nachgeladen werden.
    • Bei Servern ohne eigene Datenbanken kann die Abfrage an einen "versteckten" sekundären Frontend-Server zur Bearbeitung weitergereicht und dessen Antwort zurückgemeldet werden.
  • Für eine schnelle Reaktion auf Nutzeraktionen ist im Server-Kontext folgendes wichtig:
    • .
  • => Die verschiedenartigen Abfragen
    • WIM-Boot und Suchmaschinen-Aufrufe,
    • Objektparameter-Abfragen,
    • Meldung von verfügbar gewordenen Daten oder anderen Requests vom Server an die App,
    • Abfrage nichtöffentlicher Objektparameter,
    • Abfrage dynamischer Projekt-Parameter bzw. RPC-Aufrufe wie Login etc.,
    • Feed-Aufrufe,
    • ...
    sollten über verschiedene - meist möglichst kleine - URLs und spezialisierte Scripte erfolgen, damit unnötiger Overhead vermieden wird.
  • tbd.
  • .

...

Welche Maßnahmen werden durchgeführt und warum ?
  • Damit für die "uncomplicated" Nutzung möglichst wenige Daten bei Folgeaufrufen stets erneut übertragen werden müssen, werden die allgemeinen Style-Definitionen dafür in einer separat zu ladenden (Datei zusammengefasst.
  • Ebenso wird Script-Code, der die Fähigkeit zur Ausführung des WIM-Laufzeitsystems beim Nutzer-Agenten (=Browser) testet, in separat zu ladenden JavaScript-Dateien zusammengefasst.
  • Sofern möglich, wird bei der Boot-Seite ein als SVG-Grafik erstelltes Logo direkt in das HTML eingebettet und langsam eingeblendet. Das geht schneller, wie das Einbinden einer Image-Datei. SVG-Grafiken sind darüber hinaus auch meist kleiner wie Bitmap-Grafiken sowie beliebig skalierbar, ohne Unschärfe oder Rastereffekte zu zeigen. Bei Inkscape gibt es eine "Entrümpelungs"-Funktion zum Ausmisten von unnötigem Inhalt, was die Dateigröße erheblich reduzieren kann (bei ZRM-Logo fast 50%).
  • Beim Aufruf der "Boot"-Datei wird erstmal nur nur ein Mini-(Perl- oder PHP-) Script gestartet.
    > Falls der Aufruf zur Anzeige eines dedizierten Objektes erfolgt ( ?show=Xxx ) oder von einem registrierten Suchmaschinenroboter erfolgt, wird ein erweitertes Script geladen (bzw. ein Service-Prozess für komplexeres Handling angesprochen).
  • Sollte das Boot-Script bereits alle normalerweise zu übertragenden Inhalte enthalten oder sollten diese aus einer Datei ausgelesen werden? Was geht signifikant fixer ?
  • Die Boot-Datei sollte mit einem weit gefassten Ablaufdatum zum Browser gesendet werden, damit sie in der Regel aus dem Cache geholt werde. Beim Hochfahren sollte dann überprüft werden ob eine neuere Version bereitsteht und die Boot-Datei explizit neu geladen werden bzw. die veralteten Werte werden überschrieben. Bei offline-Aufrufen kann mit der Cache-Version gearbeitet werden.
  • tbd
  • Mit der ersten (HTML-)Datei müssen möglichst bereits alle Daten für die standardmäßig vorgenommenen projektspezifischen Verarbeitungen bereitgestellt werden. Für spezielle (seltene) Aktionen können Daten nachgeladen werden.
  • Da im Prinzip unklar ist, welcher "Nutzer-Agent" die URL aufgerufen hat, kann beim WIM-System nicht einfach eine fixe HTML-Datei übergeben werden, sondern die URL muss das anzuzeigende Objekt enthalten und die HTML-Datei muss den HTML-Code für die "einfache" Darstellung des aufgerufenen Objektes liefern. Dieses ist besonders für Aufrufe von Suchmaschinen-Roboter relevant.
  • .

...

Welche Maßnahmen werden NICHT durchgeführt oder zurückgestellt und warum ?
  • ...
...
Vorgänge beim und zum Hochfahren des WIM-Systems auf dem Frontend-Server:
Vorbereitungen: Zusammenstellen bzw. Definieren projektspezifischer Daten:

Alle zum "Booten" des Clients und der Ausführungssteuerung notwendigen Daten werden in der /data/config.xds-Datei unter der Projekt-Url zusammengestellt.

Benötigt werden: Projektname, Projektgruppenname (Worker-Name), Liste aller Projekt-URLs, ...

Vorbereitungen: Erstellen des Default-Scripts:

Ziel: Es soll eine projektspezifische "vollständige" (z.Z. Perl-) Script-Datei erzeugt werden, die beim Aufruf der Projekt-Url gestartet wird und inkürzester Zeit die Daten zum Client schicken kann.

Die Script-Datei wird durch das Admin-Script anlässlich der Erzeugung oder Aktualisierung der Projektdateien zu einer URL erzeugt.

Durch das Admin-Script wird auch die /data/config.xds-Datei erzeugt bzw. aktualisiert.

NICHT benötigt werden sollen Zugriffe auf die Datenbasen mit den Objektdaten, Request-Daten, WIM-Queues, etc. . Aus Geschwindigkeitsgründen sollen möglichst wenige Bibliotheken hinzugeladen werden müssen - insbesondere also auch kein XML-Handling usw. .

So bald wie möglich, sollte dieses Script in PHP realisiert werden, damit es auch auch auf preisgünstigen Hosts ausgeführt werden kann.

Bearbeitung des Aufruf des Default-Scripts einer Projekt-URL:

Diese Vorgänge werden in einem separaten Artikel beschrieben.

Bearbeitung von "file not found" usw. für /files/... -Dateien:

Ziel: Die fehlende Datei nachbeschaffen, falls sie vorhanden sein sollte.

Offene Frage: Können solche Fehlerereignisse auch auf einfachen Servern abgefangen werden?

...

Bearbeitung von "file not found" usw. für das Projektverzeichnis, soweit nicht /files/... betroffen ist:

Ziele: Abwehr von Hacker-Attacken und "gutmütige Weiterleitung" bei anderen Aufrufen. Auch die Bearbeitung der Meldung eines schweren Client-Crashs über den Aufruf einer nicht vorhandenen Image-Datei ist ordentlich umzusetzen.

...

Bearbeitung von WIM-Request (vom Client per XHT abgesetzt):

Ziele: Entgegennahme und Verarbeitung gesendeter Daten; Lieferung abgefragter Daten; Durchführung erbetener Aktionen - falls erlaubt.

...

... :

...

Themen hierzuAssciated topics:

WIM-App-Verfahren (techn.) Endlos-Prinzip Leistungsfähigkeit des WIM-Systems

Das könnte Sie auch interessierenFurther readings:
Standard-Request-Parameter
<2013-06-13>
WIM-Requests haben einen Basis-Satz von Parameter. Diese werden hier beschrieben.   Mehr »
Allgemeine Objektparameter
Von: @VB <2015-03-20>
Objekte sind Kern des WIM-Systems. Und "Parameter" (also "Datenwerte") sind essentielle Bestandteile der WIM-Objekte. In dieser Info werden Standard-Parameter kurz vorgestellt.   Mehr »
Steuerung der Darstellung von Objekten
<2019-02-03>
Das openWIM-System bietet die Möglichkeit, die Darstellung von Themen, Dokumenten, usw. in weiten Teilen zu gestalten, ohne dass dazu Änderungen im Programmcode oder an (HTML-)Vorlagen nötig sind.   Mehr »
Ausfallsicherheit ("fail save") im Konzept des WIM-Systems
<2013-02-25>
Auch wenn sich die Systemdesigner und -entwickler noch so viele Mühe geben - es ist prinzipiell nicht vermeidbar, dass ein System "ausfällt". Ein wesentliches Konzept des WIM-Systems ist es, solche "Ausfälle" auf möglichst kleine Bereiche einzugrenzen und möglichst "sicher" abzufangen.   Mehr »
Daten-Layer und -Aktualisierung
<2013-01-06>
Im WIM-System spielen "Vorlagen" eine bedeutende Rolle. Oftmals wird beim Zugriff auf einen Objekt-Parameter der Wert von einem Vorlage-Objekt geholt.   Mehr »
Was ist die Rolle der "Dialoge" (einschließlich "Meldungen") im openWIM-System?
<2015-04-05>
Bei Darstellungen von Dokumenten, Themen usw. sowie zur Gesamtdarstellung können bei bestimmten Anlässen "Dialoge" (im einfachsten Fall "Meldungen") überlagernd dargestellt werden.   Mehr »
Wie bearbeiten Cloud-Server eintreffende Anforderungen der openWIM-Clients?
Wie sind die Schnittstellen und Funktionen gestaltet?
Von: @VB <2016-10-06>
Von den Internet-Browsern ("Clients") werden die URLs der Projekte aufgerufen. Die URLs führen zum (zuständigen) "Cloud"-Server, der - nach Möglichkeit - die von den Clients gewünschten Aktionen ausführt. Beispielsweise zu ladende Daten liefert.   Mehr »
Wie werden Zugriffe auf - ggf. nicht vorhandene - Dateien beim Frontend-Server bearbeitet?
<2015-06-01>
Das Starten /Hochfahren der WIM-App ist für die Akzeptanz bei den Nutzern von besonderer Bedeutung. Die angewendeten Verfahren und Randbedingungen werden hier näher betrachtet.   Mehr »
Wie geschieht die Koordination zwischen den Modulen im Client?
Von: @VB <2015-04-18>
Die Module zur Darstellung der Informationen sind zwar in einer hierarchischen Struktur miteinander verknüpft, doch die Aufgabenteilung ist sehr kooperativ geregelt. Jedes Modul agiert möglichst autonom in seinen eigenen Aufgabenbereich, stimmt jedoch alle Aktionen, die andere Module betreffen, mit denen ab.   Mehr »
Internet-Links für openWIM-Entwickler
<2020-03-10>
In den Weiten des Internets gibt es etliche hilfreiche Internetpräsenzen und Dokumente, die für die Entwickler des openWIM-Systems hilfreich sein können. Hier sind einige aufgelistet:   Mehr »
Anordnung von WIM-App-Modulen
<2013-03-28>
Innerhalb eines (BOX-)Moduls können Module in verschiedener Art und Weise angeordnet werden. Dieser Beitrag geht näher darauf ein.   Mehr »
Was ist bei der Implementierung mehrsprachlicher Internetpräsenzen zu beachten?
Von: @VB <2016-10-03>
Wenn Informationssysteme für Nutzer in mehreren Sprachen betrieben werden sollen, sind bei der Implementation verschiedenste Aspekte zu beachten, die hier vorgestellt werden.   Mehr »
Aufbau einer Internetpräsenz mit dem WIM-System
<2013-08-04>
Mit dem WIM-System können kleine, überschaubare Internetpräsenzen leicht aufgebaut werden, aber auch sehr umfangreiche. Diese Info soll einen Überblick über den Aufbau des WIM-Systems und das Zusammenspiel seiner wichtigsten Komponenten geben.   Mehr »
Neues und Geändertes beim openWIM-System
<2019-02-03>
In diesem Artikel werden Neuigkeiten Änderungen zu Funktion und Aussehen des openWIM-Systems aufgelistet.   Mehr »
Responsive Design
<2015-01-03>
Unter der Bezeichnung "responsive design" oder "adaptive layout" etc. werden Verfahren zusammengefasst, mit deren Hilfe die Darstellung von Inhalten automatisiert an verschiedene Randbedingungen (Display-Größe, Geräte-Art, ...) angepasst werden kann.   Mehr »
Wie werden Infos oder Themen sichtbar gemacht?
<2014-05-24>
Bei verschiedensten Anlässen wird es notwendig, bestimmte Moduldarstellungen für die Nutzer sichtbar zu machen. Dieses kann beispielsweise durch Scrollen oder intransparent machen geschehen,
Hier werden die dabei verwendeten Verfahren beschrieben.
   Mehr »
Wie geschieht das Fokus-Handling im WIM-System?
<2014-05-21>
Die Interaktionen der Nutzer mit der WIM-App erfolgen in aller Regel mit einer ganz bestimmten Darstellungs-Komponente wie beispielsweise einem Texteingabefeld eines Moduls (bzw. seiner Darstellung).
Hier wird beschrieben, wie Änderungen des Interaktionsfokus gehandhabt werden.
   Mehr »
Welche Aspekte sind bei mehrsprachlichen Informationsangeboten besonders relevant?
Von: @VB <2016-10-03>
Bei der Nutzung und dem Betrieb mehrsprachlicher Informationssysteme und Internetpräsenzen sind einige Anforderungen zu beachten. In diesem Dokument werden sie aus der Anwender- und Betreiber-Perspektive diskutiert.   Mehr »
Überwachung der Sitzungen beim openWIM-System
<2017-08-15>
Die Kommunikation der Apps im Browser mit dem Server wird über "Sitzungen" (sessions) geregelt. Mit Hilfe dieses Dokumentes kann eine Übersicht über die beim Server notierten Sitzungen erstellt werden - falls die dafür notwendige Berechtigung aktiv ist.   Mehr »
Gestaltungs-Hinweise für WIM-Anwendungen
<2014-06-28>
Im Prinzip bietet eine mit dem WIM-System sehr große Freiheiten beider Gestaltung. Um jedoch eine bessere Nutzbarkeit zu erreichen, sollten einige Grundregeln beachten werden.   Mehr »
Wie kann der ordnungsgemäße Betrieb von openWIM-Systemen überwacht werden?
Von: @VB <2015-03-16>
Für eine zuverlässige Nutzung von openWIM-Systemen ist es unerlässlich, dass der laufende Betrieb "in Realzeit" überwacht werden kann. Der openWIM-Monitor wird dazu verwendet und hier beschrieben.   Mehr »
Welche Aufgaben liegen für die Bearbeitung von Dokumenten an?
Von: @VB <2015-03-31>
Die Erstellung und Bearbeitung von Dokumenten ist eine der zentralen Aufgaben des openWIM. Hier werden die bekannten Unzulänglichkeiten, anliegende Aufgaben und mögliche Verbesserungen beschrieben.   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.