Table of Contents

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: "?=Category1|Category2[&=Category3|Category4]" z.B. [HOSTING] Webservice=TRUE?pit_IS_Service=Web|Mobile&pit_IS_Service_2=Replication

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":

Bilder

Webservice Kategorien