Erstellen eines Diensts
Ein Dienst wird auf dieselbe Art und Weise wie eine Lösung erstellt. Sie können Seitenquellenstrukturen erstellen, damit im Dienst Daten aus diesen Strukturen verwendet werden können. Da ein Dienst jedoch auf dem Server ausgeführt wird (und daher keine Benutzeroberfläche hat), sind alle Steuerelemente deaktiviert und es können auch keine neuen Seiten (weder Toplevelseiten noch Unterseiten) hinzugefügt werden. Bei den Diensten, die auf dem Server ausgeführt werden können, handelt es sich um serverseitige Aktionen wie z.B. das Senden einer E-Mail vom Server aus oder die Aktualisierung eines Node einer Seitenquelle. Sie können daher eine Gruppe solcher Aktionen als Aktionen eines Diensts definieren; andere Aktionen sind deaktiviert.
So erstellen Sie einen neuen Dienst:
1.Klicken Sie auf Datei | Neuer Dienst, um eine Designdatei für den Dienst zu öffnen. Daraufhin wird ein neues Dienst-Design erstellt und es wird automatisch eine $MT_SERVICE-Seitenquelle erstellt. Die MobileTogether Designer-Benutzeroberfläche sieht wie die einer Lösung aus. Der einzige sofort ersichtliche Unterschied ist, dass keine Benutzeroberfläche für einen Client erstellt werden kann, da alle Steuerelemente deaktiviert sind. Stattdessen müssen alle gewünschten Aktionen für den Dienst auf dem Register des Projektereignisses BeiGestartetemDienst definiert werden.
2.Wenn Seitenquellen verwendet werden müssen, fügen Sie diese zum Fenster "Seitenquellen" hinzu. In der Abbildung unten wurde eine XML-Seitenquelle namens $XML1 hinzugefügt.
3.Öffnen Sie das Dialogfeld "Aktionen" des Diensts (siehe Abbildung unten) auf eine der folgenden Arten: (i) Klicken Sie auf die Schaltfläche Dienst-Aktionsstruktur in der Mitte des Design-Fensters; oder (ii) klicken Sie im Fenster "Stile & Eigenschaften" auf die Schaltfläche Zusätzliches Dialogfeld der Eigenschaft Dienstaktionen.
4.Im linken Bereich des Dialogfelds (in der Abbildung oben nicht sichtbar) werden alle für Dienste verfügbaren Aktionen angezeigt. Aktionen, die nicht zur Verfügung stehen, sind deaktiviert (und ausgegraut). Ziehen Sie die Aktionen, die als Dienst ausgeführt werden sollen, auf das Register BeiGestartetemDienst. Diese Aktionen bilden die Dienst-Aktionsstruktur. In der Abbildung oben wurden zwei Aktionen hinzugefügt: (i) Aus Datei laden lädt die MobileTogether Server-Log-Datei in die Seitenquelle $XML1 und (ii) E-Mail senden sendet E-Mails an drei Empfänger, wobei die $XML1-Struktur des MobileTogether Server-Log als Anhang angehängt wird.
5.Klicken Sie auf OK, um die Erstellung der Aktionen des Diensts fertig zu stellen.
6.Speichern Sie die Datei (Strg+S) unter einem passenden Namen für den Dienst und mit dem Dateityp .mtd.
Anmerkung: | Sie können für jeden Dienst nur eine einzige Gruppe von Aktionen erstellen. Wenn Sie den Befehl Datei | Neuer Dienst ein zweites Mal auswählen, wird eine neue leere Dienstdatei erstellt. |
Anmerkung: | Über das Dialogfeld Lokalisierung (Menübefehl Projekt | Lokalisierung) können Sie Dienste für andere Sprachen lokalisieren. |
Die $MT_SERVICE-Seitenquelle
Die $MT_SERVICE-Seitenquelle wird automatisch bei der Erstellung des Dienst-Designs erstellt. In der Abbildung unten und im Codefragment unterhalb davon sehen Sie die Struktur der Seitenquelle.
<<Root> <Triggers> <File name="" filename="" reason=""/> <URL name="" url=""/> <Timer name=""/> </Triggers> </Root> |
Zur Laufzeit werden vom Server Daten zu den Triggern, die für den Dienst eingestellt wurden, an die Seitenquelle übergeben und in den entsprechenden Nodes der Seitenquelle gespeichert. So wird z.B. der Name der Datei, die einen Dateisystem-Trigger aktiviert, im Node //File/@filename der Seitenquelle gespeichert. Wenn diese Nodes durch XPath-Ausdrücke von Dienst-Aktionen aufgerufen werden, so können die in diesen Nodes gespeicherten Laufzeitinformationen von den XPath-Ausdrücken verwendet werden. So kann etwa der Name der Datei, die eine Dienst-Aktion ausgelöst hat, in einer E-Mail senden an-Aktion zusammen mit dem Grund für die Auslösung des Triggers (neue Datei erstellt, Datei geändert oder Datei gelöscht) gesendet werden - alle diese Informationen sind im Vorhinein nicht bekannt, sondern erst zur Laufzeit.
Da die entsprechenden Nodes der Seitenquelle automatisch zur Laufzeit befüllt werden, müssen Sie nichts weiter tun, was die $MT_SERVICE-Seitenquelle oder das Befüllen ihrer Nodes betrifft. Sie dient Ihnen nur als Quelle für (zusätzliche) Laufzeitinformationen zu serverseitigen Triggern. Sie können diese Informationen über XPath-Ausdrücke aufrufen und diese Informationen verwenden: (i) um Dienstaktionen vom Wert der Information abhängig zu machen und/oder (ii) um diese als Daten zu verwenden, die in einer Dienst-Aktion übergeben werden.
Anmerkung: | Sie können Daten in eine $MT_SERVICE-Seitenquelle eingeben, die ausschließlich für Simulationen verwendet wird. Mit Hilfe dieser Daten werden die zur Laufzeit erhaltenen Daten simuliert. Eine Anleitung zur Erstellung einer $MT_SERVICE-Seitenquelle für Simulationen finden Sie im Kapitel Dienst-Trigger-Simulationen. |
Diensteigenschaften
Im Fenster "Stile & Eigenschaften" (siehe Abbildung oben) können Sie ein Datenabrufs-Timeout (in Sekunden) für den Dienst definieren.
Dies ist die Zeitspanne, die der Server wartet, bis die Daten von einer externen Quelle aus (z.B. einer DB oder URL) auf dem Server abgerufen werden. Der Wert ist ein Ganzzahlwert in Sekunden, der eingegeben oder aus der Dropdown-Liste der Auswahlliste ausgewählt werden kann. Der Standardwert ist 10 Sekunden. Bei Überschreitung dieses Werts wird eine Fehlermeldung angezeigt. Eine Ausnahme bildet der Fall, wenn bei Ladeaktionen die Einstellungen Bei Fehler auf Fortfahren gesetzt ist. In diesem Fall werden die "Bei Fehler"-Aktionen der Fortfahren-Einstellung dieser Aktion ausgeführt.