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>
Mandatory

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>
Mandatory

Klasse, die das typisierte Interface de.espirit.firstspirit.module.Service<T> implementiert.
Konkret: VScanServiceImpl implements VScanService,
de.espirit.firstspirit.module.Service<VScanService>

<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.
Konkret: VScanServiceConfigPanel implements
de.espirit.firstspirit.module.Configuration<ServerEnvironment>

<resource>
Mandatory

Definition der Service-eigenen Ressourcen. Jeder Service muss zwingend seine “eigenen” Klassen als Ressourcen in Form eines JARs enthalten.


  • version Aktuelle Version (optional)
  • minVersion Minimal kompatible Version (optional)
  • maxVersion Maximal kompatible Version (optional)

  

Eine Beispiel-Service-Implementierung befindet sich im Zip-Archiv zum Modul-Entwicklerhandbuch (MDEV_modexamples.zip – siehe FirstSpirit Online Dokumentation).

Wichtig 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.

© 2005 - 2024 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2024.4 | Datenschutz