Altova MobileTogether Designer

Server-Aktionsbibliotheken

Zur Startseite Zurück Nach oben Weiter

Eine Server-Aktionsbibliothek ist eine .mtd-Datei, die eine oder mehrere Aktionsgruppen enthält. Ihre Funktionalität ist auf die Verarbeitung dieser Aktionsgruppen eingeschränkt. Eine Lösung kann zur Laufzeit einen Aufruf mit oder ohne Parameter an eine Server-Aktionsbibliothek senden. Die Server-Aktionsbibliothek verarbeitet die angegebene Aktionsgruppe und gibt das Ergebnis an die aufrufende Lösung zurück.

 

Der Vorteil der Verwendung einer Server-Aktionsbibliothek ist, dass sie, da sie unabhängig von der (aufrufenden) Hauptlösung operiert, außerhalb der Lösung geändert werden kann. Dies hat folgende Vorteile:

 

Das Design der Hauptlösung muss nicht geändert werden.

Folglich muss die geänderte Hauptlösung nicht erneut auf dem Server bereitgestellt werden (um die bestehende Lösung auf dem Server zu aktualisieren).

Die geänderte Lösung muss nicht auf Client-Geräte heruntergeladen werden;

Wenn Sie eine Server-Aktionsbibliothek ändern, muss diese nur auf dem Server bereitgestellt werden, sodass die alte Server-Aktionsbibliothek überschrieben wird. Dies wirkt sich nicht auf den gesamten Runtime Workflow aus.

 

Beachten Sie jedoch, dass der Mehraufwand (an Verarbeitungsleistung und Zeit) bei Verwendung einer Aktionsgruppe in einer Server-Aktionsbibliothek größer als bei Verwendung einer Aktionsgruppe in der Hauptlösung ist. Eine Server-Aktionsbibliothek sollte daher nur dann verwendet werden, wenn ihr Hauptvorteil (nämlich, dass sie unabhängig von der Lösung geändert und ausgeführt wird) gegenüber der Verwendung einer Aktionsgruppe in der Hauptlösung einen Nutzen bringt.

 

MobileTogether Server Advanced Edition

Server-Aktionsbibliotheken können nur in der MobileTogether Server Advanced Edition und nicht in der Standard Edition von MobileTogether Server bereitgestellt werden.

 

Anwendungsfall

Angenommen, Sie haben eine Situation, in der Daten aus einer Datenstruktur abgerufen werden, die sich außerhalb ihres Einflussbereichs befindet und die sich beliebig und in unregelmäßigen Abständen ändert. Es ist unter Umständen schwierig, jedes Mal, wenn sich die Datenstruktur ändert, die Hauptlösung zu adaptieren, bereitzustellen und bereits heruntergeladene Lösungen zu aktualisieren. Eine Server-Aktionsbibliothek hingegen könnte die Änderungen der Datenstruktur außerhalb der Hauptlösung verarbeiten und die Daten an die Hauptlösung zurückgeben, sodass die retournierten Daten der erwarteten Struktur entsprechen.

 

Dies hat klare Vorteile:

 

Die Server-Aktionsbibliothek ist aufgrund ihrer eingeschränkten Aufgabe kleiner und einfacher als die Hauptlösung und kann schnell und einfach geändert werden.

Die geänderte externe Datenstruktur kann zur Gänze in der Server-Aktionsbibliothek verarbeitet werden, sodass Daten aus der externen Datenstruktur abgerufen und in einer mit der Hauptlösung konformen Struktur an die Hauptlösung gesendet werden.

Die geänderte Server-Aktionsbibliothek kann in einem einfachen Verfahren auf dem Server bereitgestellt werden. Die Hauptlösung, die ebenfalls auf dem Server bereitgestellt wird, muss nicht geändert werden. Außerdem müssen bereits auf Clients heruntergeladene Lösungen nicht aktualisiert werden.

 

Beispiel

Wir verwenden in unserer Beschreibung von Server-Aktionsbibliotheken in diesem Abschnitt das Beispiel einer einfachen Server-Aktionsbibliothek, die mit Hilfe der MobileTogether-Aktion Ordner lesen den Inhalt eines angegebenen Ordners ausliest. Mit dieser Aktion aus der Server-Aktionsbibliothek werden Informationen über die einzelnen Einträge des Ordners - dabei kann es sich um einen Unterordner oder eine Datei handeln - ausgelesen und im Node einer XML-Struktur der Server-Aktionsbibliothek gespeichert. Anschließend wird die Datenstruktur aus der Server-Aktionsbibliothek als Rückgabewert der Server-Aktionsbibliothek an die Hauptlösung gesendet.

 

Das Hauptproblem in unserem Beispiel ist, wie man in der Hauptlösung festlegt, welcher der drei alternativen Ordner gelesen werden soll. Angenommen, die Hauptlösung arbeitet mit drei fixen (statischen und unveränderten) auf tatsächlichen Sammlungen basierenden Datensätzen - einem für Bücher, einem für Filme und einem für Musik. Der Benutzer wählt in der Hauptlösung einen der Ordner (books, films oder music) aus und die Hauptlösung muss den ausgewählten Ordner auslesen. Wenn nun eine der zugrunde liegenden Sammlungen geändert wird, entsteht ein Problem, da die in der Hauptlösung fixe Datensätze verwendet werden und diese dann nicht mehr aktuell sind. Es könnte eine der folgenden Änderungen vorgenommen worden sein: (i) neuer oder geänderter Ordnerinhalt, (ii) eine geänderte Struktur der Datenstruktur, die die Ordnerinformationen enthält und/oder (iii) ein anderer Ordnerpfad.

 

In unserem Beispiel haben wir nur eine Änderung des Ordnerpfads berücksichtigt. Befänden sich die Datensätze in der Hauptlösung und beschlössen Sie, diese zu aktualisieren, müsste die geänderte Lösung erneut auf MobileTogether Server bereitgestellt und auf alle betroffenen Client-Geräte erneut heruntergeladen werden. Hier können wir nun die Server-Aktionsbibliothek verwenden. Die (neuen) Ordnerpfade können in der Server-Aktionsbibliothek definiert werden, sodass die Hauptlösung sich nicht mit den Ordnerpfaden befassen muss. Sie befasst sich direkt mit den Daten über den entsprechenden Ordner, die an die Server-Aktionsbibliothek weitergeleitet werden. Diese Aktualisierungen können in der Server-Aktionsbibliothek durchgeführt werden, wodurch die Hauptlösung nicht geändert werden muss. Die Hauptlösung würde dazu eine Aktionsgruppe der Server-Aktionsbibliothek aufrufen. Mit Hilfe der Aktionsgruppe würden die Daten des entsprechenden Ordners ausgelesen, in einem Struktur-Node gespeichert und an die Hauptlösung zurückgegeben werden. Wenn sich ein Ordnerpfad ändert, stehen die neuen Daten der Hauptlösung zur Verfügung, ohne dass die Hauptlösung geändert werden muss.

 

In der Abbildung unten sehen Sie eine Steuerelementaktion der Hauptlösung. Die Aktion führt den Aufruf einer Aktionsgruppe namens ScanFolder (die sich in der Server-Aktionsbibliothek namens ServerLibrary.mtd befindet) aus. Der Aufruf enthält einen einzigen Parameter namens $FolderToScan, dessen Wert vom Benutzer der Hauptlösung bereitgestellt wird und der aus einem dort gespeicherten Seitenquellen-Node stammt. Diese Benutzereingabe gibt die Art der Sammlung (Bücher, Filme, Musik), die der Benutzer durchsuchen will, an. Wenn der Aufruf der Aktionsgruppe zur Laufzeit erfolgt, wird die Aktionsgruppe in der Server-Aktionsbibliothek (außerhalb der Hauptlösung) ausgeführt und die Daten über den durchsuchten Ordner werden zurück an die Hauptlösung übertragen und in einer Lösungsvariablen namens $FolderReadout gespeichert. Diese Variable, die die Daten des durchsuchten Ordners enthält, ersetzt den Inhalt der Seitenquelle $XML1 in der Hauptlösung (dies geschieht mit Hilfe der Aktion Node(s) ersetzen). Die Seitenquelle $XML1 enthält somit nun die aktualisierten Daten aus dem durchsuchten Ordner.

MTDServerLibsMainSolnCall2SL

Beachten Sie bei Aufrufen der Server-Aktionsbibliothek und zur Abbildung oben die folgenden Anmerkungen. Die entsprechenden Einstellungen dazu sehen Sie, wenn Sie die Tutorial-Datei MainSolution.mtd im Ordner ServerActionLibraries des Ordners Tutorials öffnen. Um bei einer Simulation einen realen Ordner durchsuchen zu können, müssen Sie in der Server-Aktionsbibliotheksdatei (ServerLibrary.mtd) Pfade zu realen Ordnern auf Ihrem System definieren (nähere Informationen dazu finden Sie im Kapitel Erstellen einer Server-Aktionsbibliothek).

 

In der Abbildung oben sehen Sie das Dialogfeld "Aktionen" des Ereignisses BeimBeendenDerBearbeitung des einzigen Auswahllisten-Steuerelements der Hauptlösung.

Die Auswahl des Benutzer in dieser Auswahlliste - einer der Werte Books, Films, Music - wird im Node $PERSISTENT/Root/UserSelection gespeichert.

Die Server-Aktionsbibliotheken, die von der Hauptlösung aus aufgerufen werden sollen, müssen im Fenster "Dateien" zu den Server-Aktionsbibliotheken der Hauptlösung hinzugefügt werden.

Sobald eine Server-Aktionsbibliothek zu einer Lösung hinzugefügt wurde (siehe vorheriger Punkt), stehen alle Aktionsgruppen dieser Server-Aktionsbibliothek automatisch in Aktionsdialogfeldern der Lösung zur Verfügung (siehe Aktionsgruppenauswahl in der Abbildung oben).

Normalerweise wird in der Hauptlösung zum Aufrufen einer Aktionsgruppe einer Server-Aktionsbibliothek eine Let-Aktion verwendet (siehe Abbildung oben), da als Variable der Let-Aktion ($FolderReadout in der Abbildung oben) der Rückgabewert der Aktionsgruppe definiert werden kann (siehe Abbildung oben).

Wenn eine Aktionsgruppe aufgerufen wird, werden die in der Server-Aktionsbibliothek definierten Parameter der Aktionsgruppe in der Definition der Let-Aktion aufgelistet. Die Aktionsgruppe ScanFolder in der Abbildung oben hat einen Parameter namens $FolderToScan. Sie können nun den Wert definieren, den dieser Parameter haben soll, wenn die Aktionsgruppe aufgerufen wird. In unserem Beispiel verwenden wir als Parameter die Auswahl des Benutzers, die über die Auswahlliste getroffen und im Node $PERSISTENT/Root/UserSelection als Wert der Variablen $FolderToScan gespeichert wird.

Die Aktion Node(s) ersetzen ersetzt die Daten der Seitenquelle $XML1 in der Hauptlösung durch die Daten in der Variablen $FolderReadout, welche die von der Server-Aktionsbibliothek zurückgegebenen Daten sind.

 

© 2018-2024 Altova GmbH