Thema dieser Dokumentation / Das FirstSpirit 5 Modul- / Komponenten-Modell / Der Komponenten-<components>-Deskriptor-Teil / Komponenten-Deskriptoren und spezielle Eigenschaften / Service
Service
Ein Service ist eine Server-Komponente, ausgestattet mit einem öffentlichen Interface. Über den de.espirit.firstspirit.access.ServiceLocator der FirstSpirit Access-API ist der Service serverweit verfügbar. Über die öffentliche Schnittstelle können z. B. Eingabekomponenten (SwingGadgets) oder Skripte den Dienst ansprechen. Als Beispiel ist hier die Virenscan-Modul-Implementierung zu nennen, welchen im Verlauf dieses Dokumentes näher erläutert wird (siehe Modul-Implementierung mit den Komponenten-Typen - PUBLIC, SERVICE, LIBRARY).
Listing: Service Komponenten-Deskriptor und Eigenschaften
<service>
<name>VScanService</name>
<displayname>My Service</displayname>
<description>FirstSpirit Virus Scan Service</description>
<class>de.espirit.firstspirit.opt.vscan.VScanServiceImpl</class>
<configurable>
de.espirit.firstspirit.opt.vscan.admin.gui.VScanServiceConfigPanel
</configurable>
<resources>
<resource name="libvscan">lib/fs-vscan.jar</resource>
<resource>fs-vscan.conf</resource>
</resources>
</service>
Eigenschaft | Beschreibung |
---|---|
<name> | Definiert den Namen, über den die Komponente in FirstSpirit als Service-Komponente erreichbar ist. |
<displayname> | Optionaler Anzeigename für die Komponente. Ist kein Anzeigename definiert, wird im FirstSpirit ServerManager, z. B. in der Konfigurations-GUI, der technische Name (<name>) der Komponente verwendet. |
<class> | Klasse, die das typisierte Interface de.espirit.firstspirit.module.Service<T> implementiert. |
<configurable> | Optional. Definition der Konfigurationsoberflächen-Klasse. Ist dieses Element nicht definiert, stellt der Service im ServerManager keine Konfigurations-GUI zur Verfügung – der „Konfigurieren“-Button im ServerManager ist deaktiviert. |
<resource> | Definition der Service-eigenen Ressourcen. Jeder Service muss zwingend seine “eigenen” Klassen als Ressourcen in Form eines JARs enthalten.
|
Eine Beispiel-Service-Implementierung befindet sich im Zip-Archiv zum Modul-Entwicklerhandbuch (MDEV_modexamples.zip – siehe FirstSpirit Online Dokumentation).
Jeder Service ist out-of-the-box multithreaded, d.h. ein ExecutorService oder andere nebenläufige Implementierungen innerhalb der Service-Implementierung sind nicht nötig. Jeder Remote-Request an den Service wird indirekt über den FirstSpirit-NIOSocketServer angesprochen, somit ist die Nutzung/Anfrage des Services, z. B. aus einer Eingabe-Komponente oder wie im Beispiel der Virenscanner-Modul-Implementierung automatisch multithreaded. Alle Anfragen/Threads werden vom FirstSpirit-NIOSocketServer verwaltet. |