Wie werden Aufrufe der Basis-URL vom Frontend-Server bearbeitet?
Von: @VB <2015-06-01>
Aufrufe der Projekt-URLs können von verschiedenen Quellen mit verschiedensten Intentionen kommen. Hier sollen die Bearbeitungsvorgänge des Frontend-Servers beschrieben werden.

Zur generellen Bearbeitung von beim Frontend-Server eintreffenden Anforderungen.


Ziel: Alle Aufrufe werden systematisch und vollständig abgearbeitet und eine passende Antwort schnellst­möglich zurückgesendet - es sei denn, der Aufruf ist unerwünscht und soll ausgebremst etc. werden.

Randbedingungen: Es werden nur GET-Aufrufe erwartet, HEAD-Aufrufe wwrden (zumindest vorläufig) wie GET behandelt; das Script wird zunächst in Perl implementiert und dann nach PHP übertragen, damit es auch auf sehr preisgünstigen Servern laufen kann.

  1. Die mit dem Request gesendeten Parameterwerte (QUERY) werden ausgewertet und für die spätere Verwendung bereitgestellt. Folgende Parameter können angegeben sein:
    • ...
    • redirected: Die Liste der URLs, von denen ein redirect durchgeführt wurde. Diese Angabe sollte dafür genutzt werden, überlastete bzw. nicht aktionsfähige Projektserver unter anderen URLs zu erkennen und denen für eine Weile keine Requests weiterzuleiten.
    • show: Angabe der Spezifikation eines Objektes, dessen Repräsentation als XHTML-Dokument zurückgesendet werden soll.
  2. Die /data/config.xds -Datei wird eingelesen und bedarfsgetrieben nach und nach die benötigten Daten (und aus Performancegründen unter Vermeidung der Nutzung von XML-Bibliotheken) per RegExp herausgeholt. Dabei ist zu beachten, dass die Parameterwerte entweder als Attribut-Werte oder als Element-Inhaltstexte zu finden sind.
  3. Zunächst wird geprüft, ob die Requestor-IP-Adresse speziell behandelt werden muss:
    • Falls ein Hack etc. vermutet wird, wird der Request ausgebremst und nach einer Wartezeit ein Fehlerstatus zurückgeschiickt.
    • Suchmaschinen-Roboter-Anfragen werden NICHT speziell behandelt.
    • Zukünftig: Zu jeder IP-Adresse wird in einer DB vermerkt, wann der letzte Aufruf stattfand und wieviel Zeit seit dem vorletzten Aufruf vergangen ist. Bei zu hoher Aufruffrequenz wird die Bearbeitungszeit künstlich durch eine Pause verlängert.
      Übereifrige Bots sollen so gebremst werden. Ob sich DoS-AAttacken hiermit wirksam ausbremsen lassen, bleibt jedoch abzuwarten.
    Falls der Request "ausgebremst" etc. wird, wird seine Bearbeitung abgeschlossen. Ansonsten wird weiter gemacht:
  4. Falls aus der config.xds herausgelesen wird, dass der Service derzeit nicht genutzt werden kann oder soll(te), werden entsprechende Antworten an den Requestor zurückgeschickt und die Bearbeitung beendet. Folgende Möglichkeiten stehen offen:
    • Es wird ein Redirect zurück gesendet und dabei in der Verweis-URL im Parameter "redirected" die eigene URL sowie ggf. weitere bereits zuvor zum Redirect verwendete URLs in der Liste angegeben.
    • Es sollte zwischen temporärer und langfristiger Weiterleitung unterschieden werden können.
    Nach einem Redirect wird die Request-Bearbeitung abgeschlossen.
  5. Das Default- (Perl- bzw. PHP-) Script liest das Grundgerüst für die an den Client (oder den Suchmaschinen-Roboter oder ...) zurückzusendende XHTML-Datei aus der Datei /cgi-bin/future/test/boot-template.xhtml (oder Äquivalent bei anderen Versionen/Releases) ein.
    => Hier könnte ein Perl-Bibliotheksmodul mit der entsprechenden Directories-Suchliste hilfreich sein, die auch das Script für die Umwandlung in das zu versendende Dokument - anstelle der explizit per Script abzuarbeitenden Quellenliste - sein.
  6. Beim Boot-Template werden anhand diverser Parameterwerte Ersetzungen vorgenommen:
    • Der Projekt-Name wird an allen mit {{project-name}} gekennzeichneten Stellen ersetzt.
    • Anhand der Angaben zur gewünschten (NIcht-)Script-Komprimierung wird der Link zur ausgewählten Script-Variante aufgesetzt (voll komprimiert, ohne Kommentare oder unkomprimiert oder ggf. weitere Varianten). {tbd: Exaktere Angaben}
    • Die Links zu den zugehörigen Komponenten-Bibliotheken werden aufgesetzt. {tbd: Exaktere Angaben}
      Sarissa ist baldmöglichst auszumustern.
  7. Wenn im QUERY-Parameter eine ?show=ObjId -Anforderung enthalten ist und das so bezeichnete Objekt frei veröffentlicht werden darf, das vorbereitete Darstellungsfragment des Objektes an der dafür vorgesehenen Stelle der der Boot-Datei einfügen. Die Fragmente stehen im Verzeichnis /uncomplicated/ und werden dort automatisiert auf Stand gehalten.
    Ansonsten: Falls ein Default-Objekt angegeben ist, dessen Darstellungsfragment einbetten.
    Ansonsten das vorbereitete Fragment für die Startseite des Projektes einbetten. Dabei wird der für die Objektdarstellung verwendete Navigations-Teil der Boot-Vorlage ersetzt.
    Anmerkung: Diese Einbettungen werden beim Client sofort auf "unsichtbar" gesetzt, falls dort Scripting verfügbar ist. Falls danach das Hochfahren des Client-WIM-Systems scheitert, wird das eingebettete Fragment wieder sichtbar geschaltet. Ergänzt durch einen Hinweis auf die "Browser-Unfähigkeit", die aber nicht für Suchmaschinen-Bots sichtbar sein sollte (windows.write verwenden ?)
  8. ...

... tbd ...

Aufgaben des Frontend-Servers bez. der Clients

Die Vorlage-Datei für das Boot-Dokument

Die config.xds -Datei

Themen hierzuAssciated topics:

Cloud-Server-Verfahren

Das könnte Sie auch interessierenFurther readings:
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 »
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 »
Auswahl und Reihenfolge der Dokumente bei INFOS-Listen
<2015-11-07>
An diversen Stellen des WIM-Systems sind Listen von Infos zu finden. Hier werden die Verfahren zur Auswahl und Bestimmung der Reihenfolge der dargestellten Infos vorgestellt.   Mehr »
Standard-Request-Parameter
<2013-06-13>
WIM-Requests haben einen Basis-Satz von Parameter. Diese werden hier beschrieben.   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 Aufrufe der Basis-URL vom Frontend-Server bearbeitet?
Von: @VB <2015-06-01>
Aufrufe der Projekt-URLs können von verschiedenen Quellen mit verschiedensten Intentionen kommen. Hier sollen die Bearbeitungsvorgänge des Frontend-Servers beschrieben werden.    Mehr »
Die Boot-Vorlage-Datei boot-template.xhtml im Frontend-Server
Von: @VB <2015-05-23>
Für alle Projekte gibt es ein Vorlage-Dokument mit dem Grundgerüst der Basis-Internetseite. Diese Vorlage wird bei jedem Aufruf ihrer Projektseite vom Frontend-Server projekt-, einstellungs- und aufrufspezifisch ergänzt und zu den Clients gesendet.   Mehr »
W🎯 Die openWIM-Version 34 ist einsatzbereit
 Ein Betrieb ohne Nutzung des Legacy-Servers ist möglich
<2019-06-01>
Mit der openWIM-Version 34 ist ein Betrieb völlig unabhängig vom alten Server-System möglich.   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 »
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 »
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 »
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 »
Bereitstellung von Objektdaten
 
<2019-02-17>
Für die Erarbeitung der Darstellungen werden Objekt-Daten benötigt. Die zur Beschaffung dieser Objektdaten genutzten Verfahren werden hier erläutert.   Mehr »
Spezifische Begriffe im openWIM-System
<2019-02-15>
Im openWIM-System werden verschiedene spezielle Begriffe verwendet. Hier wird deren Bedeutung im openWIM-Kontext erläutert.   Mehr »
Problem: Langsamer Server; scheinbar leere DB; ...
<2013-06-03>
Die Dateien einer Perl-Datenbasis können irgendwie /plötzlich /unerklärlich "kaput gehen". Mögliche Auswirkungen sind sehr vielfältig!   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 »
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.