Privilegierte Schnittstelle SMGWA
Das folgende Beispiel zeigt die asynchrone privilegierte Schnittstellen SMGWA2CS sowie deren Systemstruktur-Mandanten-Mapping samt Abbildung auf die von außen genutzten URLs. Zunächst müssen allerdings ein paar Grundlagen zum Verständnis von SMGWA2CS geschaffen werden.
Die privilegierte Schnittstelle SMGWA2CS ist Bestandteil der Schleupen.CS 3.0 Messstellenbetriebslösung (Schleupen 3.0 iMsb), um die zum Messstellenbetrieb notwendigen Leistungen zum Einbau, Ausbau, Betrieb und der Wartung von Messeinrichtungen (Zähler, Mengenumwerter, Datenspeicher, Wandler, Kommunikations- und Steuereinrichtungen) umzusetzen. Im Rahmen dieser Prozesse muss mit den Smartmeter Gateways/Messeinrichtungen kommuniziert werden, wobei die Gateways nicht direkt erreichbar sind. Eine SMGWA-Software ist den Gateways/Messeinrichtungen vorgeschaltet, wobei es wiederum eine Reihe von SMGWA-Software-Anbietern gibt, die unterstützt werden.
Die Kommunikation zwischen der Schleupen.CS 3.0 iMSB-Lösung und den verschiedenen SMGWA-Softwarelösungen übernehmen Schleupen.CS-SMGWA-Adapter. Schleupen.CS stellt derzeit einen Adapter namens Schleupen.CS.AP.SI.SMGWA2CS bereit, der die Kommunikation gemäß der Schleupen.CS 3.0 Standard Schnittstellenbeschreibung unterstützt. Da SMGWA2CS erweiterte Anforderungen unterstützt, verwendet es einen Aufbau, der über den Standardaufbau hinaus geht.
Die Abbildung zeigt in schwarz dargestellt die Schleupen.CS 3.0-Bausteine, die als privilegierte Schnittstelle fungieren:
- SMGWA2CS - Fassade mit REST-Schnittstellen zur externen Nutzung
- SGAM - Mapping von externem Mandant auf Schleupen.CS-Mandant und umgekehrt
- SGA - Adapter für eine SMGWA-Softwarelösung
In orange bzw. grün sind die externen Mandanten (MND1, ..., MND4) sowie die jeweilige Softwarelösung dargestellt.
Im folgenden Sequenzdiagramm wird das Zusammenspiel zwischen diesen Bausteinen am Beispiel der Anforderung einer initialen Konfigurationsdatei dargestellt. Diese wird durch einen Schleupen.CS 3.0-Geschäftsprozess initiiert. Das Sequenzdiagramm stellt die Kommunikation in Pseudoform dar und zeigt die grundsätzliche Arbeitsweise.
Wenn durch ein SMGWA-System eine Konfigurationsdatei angefordert wird, so erfolgt dies stets über die Services von SGA. Diese speichern den Request und ermitteln dann mithilfe des Systemstruktur-Mandanten-Mappings den externen SMGWA-Mandanten. Anschließend wird der Request in einen Request an den externen SMGWA übersetzt, die Ziel-URL zusammengebaut und dann der Request an den externen SMGWA per Service-Aufruf gesendet. Dieser Service-Aufruf ist ein REST-Service, wobei der zugehörige Endpunkt in Schleupen.CS 3.0 hinterlegt ist.
Wird umgekehrt Schleupen.CS von einem externen Schleupen.CS-System aufgerufen, so werden REST-Schnittstellen (genauer Web-APIs) zur Auftragsannahme bereitgestellt. Der Payload der Aufrufe wird in Form von JSON-Objekten im Body des jeweiligen HTTPS-Requests transportiert. Durch einen derartigen Aufruf wird der Auftrag (Request) lediglich entgegengenommen und der Aufrufer erhält eine Quittierung über die erfolgreiche Übergabe. Die Verarbeitung erfolgt dann asynchron durch Ausführung von Geschäftsprozessen. Nach Beendigung dessen wird eine Callback-Schnittstelle der SMGWA-Software mit enthaltener Korrelation (MessageID - RequestID) aufgerufen und somit eine Antwort gegeben.
Die URLs für den Aufruf von extern werden dabei wie folgt gebildet. Dabei wird in Schleupen.CS konfiguriert, wie bei der Kommunikation zwischen SMGWA und Schleupen CS der passende Systemstrukturknoten verwendet wird.
Die URL eines SMGWA2CS-Service hat dabei folgende Gestalt:
http://System/<Schleupen.CS-Adapter>/<Ressource>/<SMGWA-Mandant>/<Serviceversion>
Beispiel: http://schleupen.cloud/smgwa-Anbieter-A/messwerte/uebertragung.svc/mandant-1/V1.0
Die folgende Tabelle erläutert die Bestandteile.
Nr. | Logischer Teil der URL | Bildungs- regel | Bedeutung | Zweck | Beispiel |
---|---|---|---|---|---|
(1) | Endpunkt des Service | Server und System | Identifikation des CS3.0-Zielsystems, das die Adapter hostet. | Führt zum System | http://schleupen.cloud/ |
(2) | Schnittstelle/Name-des-Adapters im CS3.0-System | Ein von Schleupen-Entwicklung vorgegebener Name. | Unterscheidung des Endpunktes für Hersteller-spezifische Implementierungen der Schnittstelle. Wird für die Identifikation der Webapplikation mit dem passendem Adapter verwendet. | Führt zum Adapter | /smgwa-anbieter-A |
(3) | Zielservice in REST-Schreibweise | Funktionsanteil, der aufgerufen werden soll. | Unterscheidung Funktionalität | /messwerte/uebertragung | |
(4) | SMGWA-Mandant , global eindeutiger Bezeicher des Mandaten im Aufrufersystem. Da dieser Wert nach dem Zielservice angegeben wird, wird er im Sinne von REST als Parameter interpretiert. | Typsicherweise zu bilden aus Instanz und Mandant im Aufrufersystem. Wird von Schleupen in Absprache mit dem Hoster festgelegt. | Die Eindeutigkeit dieses Wertes/Namens ist sicherzustellen für die Kommunikation zwischen SMGWA und SMGWA2CS. Wird benötigt, um das Systemstrukturelement im CS3.0-System über ein Mapping zu identifizieren | Mapping zum Systemstrukturelement | /mandant-A1 |
(5) | Version des angebotenen Service. | Versionsnummer X.Y | Unterscheidung verschiedener Implementierungsstufen eines Service | Führt zu Version |
/V1.0 |