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.
Hierarchische Koordination aller Module:

Im Client ist das APP-Modul die "oberste Koordinationsstelle". Alle anderen Module sind direkt oder indirekt in den Zuständigkeitsbereich des APP-Moduls eingebettet.

Das APP-Modul agiert (wie jedes andere koordinierende Modul) nach einem strikten Regelwerk, dass eine "faire" Koordinnation gewährleisten soll. Auch wenn es seinen koordinierten Modulen Resourcen (Darstellungbereiche, ...) zuteilt, ist es nicht wirklich "übergeordnet" in dem Sinne, dass es die Resource-Zuteilungen "eigenwillig" durchführen darf.

Bei der Zuteilung der Resourcen werden die Resource-Anforderungen der koordinierten Module berücksichtigt und bei Bedarf nach dem Regelwerk des koordinierenden Moduls für die sich daraus ergebende Resource-Zuteilung priorisiert.

Module müssen ihre Darstellungen strickt auf den ihnen zugeteilten Darstellungsbereich beschränken:

Damit die Darstellungen konsistent sein können, muss sich jedes Modul strikt an die ihm zugeteilenen Resourcen (Darstellungsbereiche, ...) halten. Wie es sich daraus ergebende Konflikte löst, ist ihm dann aber völlig freigestellt.

Eine mögliche Lösung bei zu kleinen zugestandenen Darstellungsbereichen ist es, dass nur ein Teil der Darstellung sichtbar wird. Die restliche Darstellung wird "abgeschnitten". Es wird mit Hilfe der CSS-Anweisung overflow:hidden; quasi ein "Guckfenster" auf die Darstellung realisiert. Dieses Verfahren findet beispielsweise dann Anwendung, wenn die Darstellung eines koordinierten Moduls ganz oder teilweise unsichtbar sein soll - wie beim Ein- und Ausblenden des Bereichs zur Eingabe eines Suchtextes,

Eine weitere Möglichkeit zur Lösung bzw. Linderung von Resource-Mengen-Konflikten ist die Einrichtung von Scrollbereichen. Hier wird die CSS-Anweisung overflow:auto; oder overflow:scroll; eingesetzt. Dieses Verhalten wird dann eingesetzt, wenn die Nutzer mittels Verschieben den Blick auf den einen oder anderen Teil einer Darstellung werfen können sollen.

Eine noch weitere Möglichkeit wäre das "Zoomen" der Darstellung bzw. das Gegenteil (= Verkleinern) davon. Diese Option (mit CSS realisierbar per transform:scale(0.5); für eine Verkleinerung auf halbe Höhe und Breite) kann problemlos bei beispielsweise Fotos eingesetzt werden, aber bei anderen darzustellenden Informationen durchaus herausfordernd sein.

Vorgaben werden "top-down" abgearbeitet:

Wenn ein Modul andere Module "koordiniert", bedeutet das, dass anhand der Anforderungen und Möglichkeiten auf Basis eines Regelwerkes die Zuteilung der Resourcen stattfindet. Dieses geschieht "top-down" - also beginnend bei "obersten" APP-Modul über gegebenenfalls viele Modul-Ebenen bis hin zu den Modulen, die dann tatsächlich "Inhalte" sichtbar machen.

Anforderungen werden "bottom-up" abgearbeitet:

Die Zuteilung von Resourcen an ein koordiniertes Modul ist meist nicht unverrückbar. Ein koordiniertes Modul muss initial seinem koordinierenden Modul seine Resourcebedarfe mitteilen, damit es Resources zugeteilt bekommen, auch wenn diese (wie es meist der Fall ist) knapp sind.

Das koordinierende Modul sammelt alle Resourcebedarfe seiner koordinierten Module - und wechselt bei geänderten Anforderungen die Rolle in die eines koordinierten Moduls, das die neuen Resource-Anforderungen wiederum an sein koordinierendes Modul weitermeldet.

Dieser Vorgang verläuft "bottom-up" von den darstellenden Modulen bis hin zum APP-Modul.

Worauf ist bei der modulinternen Implementierung zu achten?

Bei der Umsetzung der Vorgaben sind zunächst die Werte für die Moduldarstellung als ganzes ("Layout") umzusetzen. Gegebenenfalls mit Konfliktlösungen durch teilweises Ausblenden, Scrollen oder Skalieren. Dabei kann automatisches (de)aktivieren des "Scrollen" und Skalieren problematisch werden und unnötiges "Geflatter" verursachen.

Sobald der Darstellungsrahmen des Moduls eingestellt ist, werden den koordinierten statischen eingebetteten Modulen ihre Resources zugeteilt.

Als letztes werden in einem (SPACE-) Modul den dynamisch eingebetteten Modulen (WIDGETs und abgeleitete Modularten) ihre Resources zugewiesen.

Bei der Zuteilung der Resources erfolgt KEIN SOFORTIGES Feedback zu den (geänderten) Bedarfen des koordinierten Moduls. Änderungen der Bedarfe müssen von den koordinierten Module explizit angemeldet werden, weil es sonst zu "race conditions" und/oder "Schwingungen" kommen kann.

Während die koordinierten Module ihre Vorgaben der Regel unverzögert/direkt (CALL -Aufruf) mitgeteilt bekommen, werden die Anforderungen der koordinierten Module in eine Warteschlange gestellt, die sequentiell abgearbeitet wird.

Falls nötig, eine periodische Überprüfung der Resourcebedarfe:

Wenn geänderte Resourcebedarfe in einem Modul nicht automatisiert Ereignisse auslösen können, kann sich das betroffene Modul zur periodischen Überprüfung (beim APP-Modul) anmelden und wird dann zwecks Bedarfsüberprüfung periodisch "geweckt"

...
Themen hierzuAssciated topics:

Module (WIM) Darstellungen beim Client WIM-App-Verfahren (techn.)

Das könnte Sie auch interessierenFurther readings:
Wie werden Zugriffs-Konflikte beim Editieren gelöst?
<2019-03-10>
Um Konsistenz-Probleme zu verhindern, die beim zeitgleichen Bearbeiten von Objekten entstehen können, werden im openWIM-System Änderungssperren eingesetzt. Beim Beginn der Bearbeitung einer Eigenschaft wird dafür eine exklusive Bearbeitungserlaubnis (= Reservierung) für die betroffene Obj-Eigenschaft angefordert.   Mehr »
➖ Nächste Schritte zur Ablösung des Legacy-Servers
<2019-05-06>
Die schnelle Ablösung des veralteten Servers ist momentan das vordringliche Ziel. In diesem Artikel werden die jeweils nächsten Aktionen aufgelistet.    Mehr »
### tbd: Welche Aufgaben haben die verschiedenen Modul-Arten?
<2019-02-01>
Die WIM-App ist mit verschiedenartigen Modulen implementiert. Hier werden die verschiedenen Aufgabenstellungen erläutert.   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 »
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 »
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 »
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 »
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 »
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 »
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 »
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 »
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 »
Was ist die Aufgabe der RENDER-Methoden der Client-Module?
<2014-08-03>
Die RENDER-Methode stellt "das Rückgrat" der Aktionen zur Erstellung oder Aktualisierung der Darstellungen in den Client-Modulen dar. Es besteht aus einer Reihe von Abschnitten, die - meist mit Unterbrechungen - Schritt für Schritt abgearbeitet werden.   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.