Webservice Kategorien
Informationen
- Kategorien: Kernel | Webservice (Server)
- Version: 19.0.1.9221
- Veröffentlichungsdatum: Dienstag, 24. Januar 2017
- Entwickler: Schulze
- Benötigt Datenbankänderung: Nein
- Betreff: Webservice Kategorien
Beschreibung
Problem:
Jeder installierte pit-ISService-Dienst (=Dienstinstanz) startet immer alle in der pit-Registrierung hinterlegten Webservices, somit können verschiedene Webservices (Web, Mobile, Replikation) nicht in verschiedenen Dienstinstanzen gestartet werden, um z.B. skalierbar zu bleiben.
Lösung:
Webservices können jetzt kategorisiert werden, und verschiedenen Dienstinstanzen können Kategorien zugeordnet werden. Es wurden Kategorien eingeführt, die Einstellung erfolgt am Webservice-Schlüssel und in der Dienstkonfiguration für die jeweiligen Dienstinstanzen.
Details:
[1] In der pit-Registrierung kann in der Werte-Liste für einen Webservice-Eintrag (External/Webservices) ein neuer Wert "Category" eingetragen werden, in diesem kann eine (oder mehrere, kommagetrennte) beliebige Kategorie(n) eingetragen werden, z.B. Web,Mobile,Replication,Test,Kategorie1,...
[2]
In der service.ini kann verschiedenen Diensten-Instanzen eine oder mehrere dieser Webservce-Kategorien zugeweisen werden.
Die Zuordnung erfolgt indem an den Eintrag für Webservice-Hosting ([HOSTING] Webservice=TRUE) ein Postfix angehängt wird in der Form:
"?
Hinweis: der Name einer Dienstinstanz ist im Windows-Dienstmanager unter den Eigenschaften des Dienstes auslesbar (Dienstname), Default="PIT_IS_SERVICE"
[3] Bei Start einer Dienstinstanz werden die zugehörigen Kategorien aus der service.ini gelesen und nur die Webservices gehostet welche mindestens eine dieser Kategorien besitzen.
[Anmerkungen]
Ein mehrmaliges Hosting des selben Webservices funktioniert, es muss aber hier wie auch generell nebem einem anderen Port auch eine jeweils komplett andere Url-Adresse für das Hosting angegeben werden (z.B. pitfm/model und pitfmTest/model)!
====== Beispiel:
Es gibt 3 Webservices: WsModel, WsCustom und WsReplikation. Es sind 2 IS-Service-Dienste installiert (pit_IS_Service und PIT_IS_SERVICE_1). Der 1.Dienst (pit_IS_Service) soll WsModel hosten, der 2.Dienst (PIT_IS_SERVICE_1) soll WsReplication hosten, WsCustom soll nicht gehostet werden: pit_IS_Service => WsModel PIT_IS_SERVICE_1 => WsReplication
Folgende Kategorien werden in der pit-Registrierung eingetragen: WsModel: Category=Web WsCustom: Category=Test WsReplication: Category=Replication
Die Kategorien werden in der service.ini folgendermaßen zugeordnet: [HOSTING] Webservice=TRUE?PIT_IS_SERVICE=Web&PIT_IS_SERVICE_1=Replication
Damit startet WsModel mit pit_IS_Service, und WsReplication startet mit PIT_IS_SERVICE_1.
Wenn der Webservice "WsCustom" zusätzlich mit dem 1.Dienst mitgestartet werden soll, dann müsste die Zuordnung folgendermaßen aussehen: [HOSTING] Webservice=TRUE?PIT_IS_SERVICE=Web|Test&PIT_IS_SERVICE_1=Replication
====== Beispiel-Screenshot:
Zuordnung Webservice "Model" - Dienst-Instanz "PIT_IS_SERVICE" über die Kategorie "Web":