Im Juli haben wir in Moskau unser eigenes Technologie- und Ausstellungszentrum eröffnet, das Digital Leadership Center. Dies ist eine neue Plattform für Veranstaltungen, die neue innovative Szenarien demonstriert, die gemeinsam mit Kunden und SAP-Partnern entwickelt wurden.

Während des Baus unseres eigenen Zentrums haben wir beschlossen, dass neue Technologien nicht nur als Demo-Stände gezeigt, sondern auch in die Arbeit des Zentrums selbst eingeführt werden müssen.
Zum Beispiel können alle Säle und das Publikum im Zentrum - in mehrere Teile unterteilt - umgewandelt und in einem einzigen Raum zusammengefasst werden. Die Site ist außerdem mit einem „Smart Office“ ausgestattet - Ressourcenmanagementlösungen, Kameras mit Gesichtserkennung, Sensoren für das Internet der Dinge.
Dabei haben wir ein einfaches und effektives Szenario basierend auf der SAP Cloud Platform entwickelt, um zu überwachen, wie die Besprechungsräume effektiv genutzt werden. In diesem Artikel erfahren Sie, wie Sie ein solches Szenario schnell und einfach an einem Tag zusammenstellen können.
Weiter - über Sensoren, IoT-Service in der SAP Cloud Platform und „Karma-Bewertung“ für Mitarbeiter.
Wir haben zunächst Services auf der SAP Cloud Platform für die Integration mit Sensoren für das Internet der Dinge vorbereitet. Zur Entwicklung der Lösung verwendeten wir den IoT-Service in der SAP Cloud Platform (SCP) zur Automatisierung der Datenübertragung sowie die Cloud Foundry-Entwicklungsumgebung in SCP.
Mit diesen Sensoren haben wir eine Demo erstellt:
- Magnetkontaktsensor, der sowohl beim Öffnen als auch beim Schließen von Türen funktioniert
- Infrarot-Bewegungssensor zur Erkennung des Eindringens in den geschützten Bereich und in unserem Fall auch in den Besprechungsraum
Die Überwachung der Besprechungsräume sollte durchgeführt werden, um zu überprüfen, wie die Mitarbeiter die Räumlichkeiten tatsächlich nutzen - ob die Besprechung stattgefunden hat oder der Besprechungsraum zu diesem Zeitpunkt leer war, wie viele Personen an der Besprechung teilgenommen haben und andere Details. Auf diese Weise können Sie Statistiken darüber sammeln, wie Mitarbeiter die Besprechungsräume über einen bestimmten Zeitraum effektiv genutzt haben.
Abbildung 1. Architektur des Internet of Things-Dienstes in der SAP Cloud Platform
Als Grundlage für dieses Beispiel haben wir die SAP Cloud Platform und den Internet of Things-Service verwendet. Die Plattformarchitektur ist in Abb. 1 dargestellt. Sie unterstützt Funktionen zum Kombinieren einzelner Geräte und Access Points (Gateways) zu einem gemeinsamen Netzwerk, das auf dem Internet of Things-Dienst in der SAP Cloud Platform basiert.
Für Geräte ohne HTTPS / MQTT-Protokolle sowie zum Aufteilen von Geräten in Segmente, die Nachrichten konsolidieren und zentral an das SAP Cloud Internet of Things senden, wird IoT GateWay Edge verwendet. Dies ist eine Softwarekomponente, die über Protokolle mit Geräten kommunizieren kann: HTTPS, MQTT, Modbus (1), CoAP, Datei (2), OPC UA (3), SigFox (4), SNMP (5). Darüber hinaus kann der Entwickler das SDK verwenden, um die GateWay-Funktionen zu erweitern und seine Protokolle für den Datenaustausch mit Geräten zu implementieren.
AnmerkungenHinweise aus der Dokumentation zur SAP Cloud Platform:
1) Der Modus wird derzeit implementiert mit:
• TCP / IP über Ethernet
• Asynchrone serielle Übertragung über verschiedene Medien (Kabel: RS-232, RS-485; Glasfaser, Radio usw.)
• ModbusPLUS, ein Hochgeschwindigkeits-Token-Passing-Netzwerk.
Modbus definiert eine einfache Protokolldateneinheit, die unabhängig von den zugrunde liegenden Kommunikationsschichten ist. Die Zuordnung in bestimmten Bussen oder Netzwerken kann einige zusätzliche Felder in der Anwendungsdateneinheit einführen. Das Protokoll folgt einem Client-Server-Ansatz, bei dem ein Client eine Modbus-Transaktion initiiert, um einen Server nach Daten abzufragen.
2) Der typische Arbeitsablauf des Adapters ist folgender:
1. Lesen Sie eine bestimmte Datei basierend auf einer Reihe von Konfigurationsparametern.
2. Gehen Sie den Dateiinhalt durch und extrahieren Sie wertvolle Felder, wie von einer Adapter-Parsing-Schemadatei angewiesen.
3. Ordnen Sie solche Felder den Konzepten und Entitäten des Internet of Things-Dienstes zu (z. B. Geräteadressierungsmetadaten, Messungen usw.), auch basierend auf der Parsing-Schemadatei des Adapters.
4. Streamen Sie normalisierte Daten bis zum Internet of Things Core Service.
5. Entfernen Sie die Zieldatei von ihrem ursprünglichen Speicherort und sichern Sie sie optional in einem anderen Ordner.
Die unterstützten Dateiformate sind JSON, CSV und Binär. Bei Binärdateien wird die Datei als Base64-codierte Zeichenfolge an den Internet of Things Core Service übertragen.
3) Das Internet of Things Gateway integriert OPC UA-Server als OPC UA-Client. Der Adapter kann eine Verbindung zum Server herstellen, um eine OPC-UA-Sitzung einzurichten. Bei der ersten Verbindung durchsucht der Adapter den Serveradressraum und erstellt ein entsprechendes Gerät mit einer Reihe von Sensoren. Anschließend wird der Abruf von Daten anhand von zwei möglichen Optionen konfiguriert:
• Periodischer Pull-Modus: Der Adapter fragt den Server regelmäßig nach Daten mit einem konfigurierbaren Abfrageintervall ab
• Abonnementmodus: Der Adapter erstellt ein Abonnement auf den Serverknoten, das vom Server selbst benachrichtigt wird, wenn sich der Wert eines Knotens ändert
4) SigFox ist ein französisches Unternehmen, das eine UNB-basierte Funktechnologie (Ultra Narrow Band) einsetzt, um IoT-Geräte mit seinem Netzwerk zu verbinden. Derzeit wird das ISM-Band auf 868 MHz (wie von ETSI und CEPT definiert) in Europa und auf 902 MHz in den USA (wie von der FCC definiert) verwendet, abhängig von spezifischen regionalen Vorschriften. Um den Servicebereich zu erweitern, unterhält SigFox Partnerschaften mit mehreren Netzbetreibern auf der ganzen Welt. Durch die Nutzung der von diesen Partnern bereitgestellten UNB-Infrastruktur ermöglicht SigFox die Kommunikation zwischen Geräten, die das SigFox-Funkprotokoll betreiben, und der SigFox-Cloud. In diesem Zusammenhang fungiert die SigFox-Infrastruktur als Transportschicht, die die von den Geräten generierten Daten an die Cloud sendet. Diese Schicht ist datenunabhängig, dh sie interpretiert die Daten nicht, sondern überträgt sie einfach. In Anbetracht dessen können Gerätehersteller, die die SigFox-Firmware auf ihren Produkten installieren, den SigFox-Dienst verwenden, um auf ihre Daten zuzugreifen, und eine Reihe von REST-APIs, um Anwendungen basierend auf diesen Daten zu erstellen. Die Grafik zeigt das SigFox-Netzwerk auf vereinfachte Weise.
5) Der Datenfluss folgt zwei Wegen:
• Das Internet of Things Gateway führt eine zyklische Abfrage über alle Geräte durch und führt für jedes angeschlossene Gerät einen vollständigen MIB-WALK durch.
• Das Internet of Things Gateway empfängt Traps von Geräten, wenn die Geräte die Traps senden können.
In der Internet of Things-Architektur kann der GateWay-Service sowohl innerhalb der SAP Cloud Platform als auch auf dem Endgerät bereitgestellt werden. Einer der Hauptvorteile von GateWay ist die Integration in die SAP Cloud Platform, da hierdurch das Problem der Datenübertragung von Geräten auf die Cloud-Plattform gelöst wird. Es ist jedoch auch möglich, mithilfe der MQTT / HTTPS-Protokolle ohne GateWay in den Internet of Things-Dienst zu integrieren.
Die Architektur des Internet of Things-Dienstes basiert auf der Cloud Foundry-Umgebung, mit der Sie Ihre Anwendungen, die auf der Grundlage der Sprachen Python, JavaScript (Nodejs), Java (Tomcat), Go, Scala
usw. entwickelt wurden, auf der SAP Cloud Platform bereitstellen können. In diesem Szenario haben wir den Nodejs-Anwendungsserver verwendet, um unseren eigenen Service für die Verarbeitung von Nachrichten von Sensoren in der SAP Cloud Platform-Umgebung zu erstellen.
Beispielcode für einen Nodejs-basierten Dienst finden Sie hier.const http = require('http'); const hdb = require('hdb'); http.createServer(function (req, res) { if (req.method === 'POST') { let body = ''; req.on('data', chunk => { body += chunk.toString();
Um den Code in Nodejs vorzubereiten, haben wir das Node-HDB-Modul verwendet, das die Kommunikation mit dem HANA-DBMS ermöglicht und bereits in den Buildpack-Nodejs in CloudFoundry vorhanden ist.
In einer CloudFoundry-Umgebung müssen Sie die Abhängigkeiten zwischen der Anwendung und den verwendeten Modulen definieren. In diesem Fall kann Nodejs auf das Modul zugreifen und unsere Anwendung starten. Daher geben wir den Link in der Datei package.json an
Abhängigkeit"dependencies" : {
"hdb" : "0.xx"
}
Als Haupt-Data Warehouse und Engine zum Erstellen von analytischen Abfragen verwenden wir das HANA-DBMS. Mit dem
Node-HDB- Modul können Sie die Funktionen Bulk Insert (um das Einfügen von Daten zu beschleunigen), Transaktionsmanagement (Commit, Rollback, Autocommit) und das Aufrufen gespeicherter SQL-Prozeduren nutzen.
Die mit den Sensoren des Internet der Dinge erhaltenen Daten gelangen über den Internet of Things Service zur SAP Cloud Platform - direkt zu unserem Nodejs-basierten Service. Sie müssen zuerst das Datenmodell und das Nachrichtenformat in SAP Cloud Internet of Things konfigurieren.
Wie kann man schnell eine Benutzeroberfläche erstellen und die grundlegenden Komponenten von SAP UI5 anpassen?
Um den Status des Besprechungsraums im Service anzuzeigen, haben wir die
GenericTile- Komponente verwendet. Abbildung 2 zeigt ein Beispiel für eine benutzerdefinierte GenericTile-Komponente, die den Status des Besprechungsraums angibt.

Zum Zeichnen von Symbolen und Farbanzeigen in der GenericTile-Komponente haben wir die HTML5-Canvas-Erweiterung und die Renderer-Methode des SAP UI5-Objektmodells verwendet.
Beispielcode finden Sie hier. renderer: function (oRM, oControl) { var model; var d; var view = sap.ui.getCore().byId("samplecontainer---mainview"); if (!this.status) this.status = {"door":"","motion":"","color":"#2bbc2d","busy":0}; if (view != undefined) model = view.getModel("DT1"); if (model != undefined){ d = JSON.parse(model.getJSON()); if (this.status){ this.status.busy = d.busy; this.status.door = d.door; this.status.motion = d.motion; this.status.color = d.color; } } oRM.write("<div"); oRM.writeControlData(oControl); oRM.write(">"); </spoiler> if (this.status.busy == 0){ oRM.write("<img id='iDT1' src='/iotex/images/room_empty.png' alt='Empty' height='64' width='70'>"); } else { oRM.write("<img id='iDT1' src='/iotex/images/room_booked.png' alt='Booked' height='64' width='70'>"); } oRM.write("<canvas id='cDT1' width='30' height='30'></canvas>"); oRM.write("<script>"); oRM.write("var canvas = document.getElementById('cDT1');"); oRM.write("var context = canvas.getContext('2d');"); oRM.write("var centerX = canvas.width / 2;"); oRM.write("var centerY = canvas.height / 2;"); oRM.write("var radius = 12;"); oRM.write("context.beginPath();"); oRM.write("context.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);"); if ((this.status.busy == 1)&&((this.status.door != 0)||(this.status.motion != 0))){ oRM.write("context.fillStyle = '#f46e41';");
Wie kann ich analytische Abfragen erstellen und Diagramme in einer Benutzeroberfläche in einer Anwendung auf SCP anzeigen?Der einfachste Weg, über UI5 auf Daten in SAP HANA zuzugreifen, ist das OData-Protokoll. Sie können ein vorgefertigtes Objektmodell verwenden, um Daten an ein UI5-Anzeigeelement zu übertragen. Wenn jedoch eine komplexe analytische Abfrage erforderlich ist, um einen Datensatz zu bilden, helfen SQLScript und gespeicherte Prozeduren in SAP HANA. Sie können auch nicht auf die komplexe Entwicklung von Abfragen in SQLScript zurückgreifen, sondern verwenden einfach den Editor für die Berechnungsansicht in der SAP Web IDE.
Abbildung 3. Ein Beispiel für ein Kreisdiagramm aus der Bibliothek sap.viz.ui5Beispiel für Javascript und SAP UI5-Code zum Anzeigen eines Kreisdiagramms
hier gezeigt $.ajax ({ type: "GET", url: "/iotex/odatasource/rooms.xsodata/rooms?$format=json", dataType: 'json', async: false, success: function (data, status){ var aData = data.d.results; var UData = {Data: aData}; room_model.setData(UData); } }); View.setModel(room_model,"Rooms"); var oVizFrame = this.oVizFrame = this.getView().byId("idVizFrame"); var oDataset = new sap.viz.ui5.data.FlattenedDataset({ dimensions : [{ name : 'Time', value : "{Time}"}], measures : [{ name : 'Usage', value : '{Value}'} ], data : { path : "/Data" } }); oVizFrame.setDataset(oDataset); oVizFrame.setVizProperties({ title:{ text : " " }, plotArea: { colorPalette : ['#2bbc2d','#f46e41','#c5f442'], drawingEffect: "glossy" }}); var feedSize = new sap.viz.ui5.controls.common.feeds.FeedItem({ 'uid': "size", 'type': "Measure", 'values': ["Usage"] }), feedColor = new sap.viz.ui5.controls.common.feeds.FeedItem({ 'uid': "color", 'type': "Dimension", 'values': ["Time"] }); oVizFrame.addFeed(feedSize); oVizFrame.addFeed(feedColor);
Um die Daten im Kreisdiagramm korrekt anzuzeigen, müssen Sie den Datenpfad in dem Format überprüfen, das in der Path-Eigenschaft des FlattenedDataset-Objekts angegeben ist. In diesem Fall zeigt die Path-Eigenschaft auf das Objekt / Data, sodass die gewünschte JSON-Struktur in der gezeigten Form dargestellt werden muss
hier var datapiechart = { "Data" : []}; var yellow = {"Time":"Abused","Value":data.yellow}; var red = {"Time":"Occupied","Value":data.red}; var green = {"Time":"Free","Value":data.green}; datapiechart.Data.push(yellow); datapiechart.Data.push(red); datapiechart.Data.push(green); var mod = viz.getModel(); mod.setData(datapiechart); viz.setModel(mod);
Um Statistiken (siehe Abb. 4) über Benutzer anzuzeigen, die Besprechungsräume buchen, haben wir ein einfaches UI5-Tabellenelement verwendet. Es werden die gesammelten „Punkte“ angezeigt, abhängig von der Anzahl der „Besuche“ bei Veranstaltungen. So können skrupellose Mitarbeiter identifiziert werden, die Besprechungsräume reservieren.
Abb. 4. Statistik der Besuche für einen bestimmten BenutzerMit dem Internet of Things-Dienst sowie der CloudFoundry-Umgebung in der SAP Cloud Platform können Sie Ihre IoT-Dienste schnell erstellen und problemlos in jedes Gerät integrieren. Als Referenzquelle für den Internet of Things-Dienst können Sie den
Link verwenden, über den die
Dienstarchitektur ausführlich beschrieben und Codebeispiele bereitgestellt werden.

Sie können hier auch den Testzugriff verwenden, um die Cloud Foundry-Umgebung zu testen, indem Sie zuerst auf die Schaltfläche Anmelden klicken und den Registrierungsvorgang abschließen.