Unsere SAP Cloud Platform bietet die Möglichkeit, mandantenfähige Anwendungen zu entwickeln und auszuführen. Mit mandantenfähigen Anwendungen können Sie mehrere Clients aus verschiedenen Organisationen im Rahmen einer vom Anbieter bereitgestellten Lösung separat bedienen. Jeder Kunde wird als Mieter bezeichnet. Er greift über die zugewiesene URL eines bestimmten Mandanten auf die Anwendung zu - auf diese Weise sind Benutzer voneinander isoliert.
In mehreren Artikeln werden wir folgende Themen behandeln:
Teil 1. Mandantenfähig in der Szenarioübersicht der SAP Cloud Platform
Teil 2. Hochladen der MTAR-Lösung auf die Plattform, Verknüpfen der Datenbank und Erstellen von Abonnements für Mandanten, Konfigurieren des Provider-Unterkontos
Teil 3. Persistenzdienst - Dateninitialisierung und -isolierung
Teil 4. Identitätsauthentifizierungsverwaltung - Konfigurieren des Dienstmandanten
Teil 5. SAP Cloud Connector - Einrichten und Konfigurieren eines Dienstes für die Verbindung mit einem lokalen System
Teil 6. Konfigurieren des Konnektivitätsdienstes und Testen einer mandantenfähigen Anwendung
Teil 7. Fiori Launchpad - Verwenden des Portal-Dienstes, Kachelkonfiguration für mandantenfähige AnwendungenHinweis:Dieser Artikel verwendet das globale (produktive) SAP Cloud Platform-Konto. Um das Skript auszuführen, müssen im Konto zusätzlich folgende Dienste verbunden sein:
- Für das Unterkonto des Anwendungsanbieters - SAP HANA, SAP Cloud Platform Portal - muss mindestens ein Kontingent zum Starten einer Java-Anwendung zugewiesen werden (Java-Kontingent).
- Für Kundenunterkonto: SAP Cloud Platform Portal, SAP Cloud Platform Identity Authentication.
Teil 1. Mandantenfähigkeits- und Lösungsüberprüfung von SCPDie SAP Cloud Platform ist eine Plattform für die Entwicklung und den Start von Cloud-Anwendungen, einschließlich Anwendungen mit vielen Mandanten. Daher unterstützen ihre Services die Mandantenfähigkeit.
Glauben Sie, dass Kunden glücklich sein werden, wenn die Daten, die sie in Ihrer SaaS-Anwendung speichern, anderen Kunden zur Verfügung stehen? Dies ist ein klarer Verstoß gegen die Datenisolation.
Dieses Problem wird gelöst, indem jedem Client eine eindeutige Mandanten-ID zugewiesen wird. Da die Anwendung direkt vom Anbieter bereitgestellt wird, muss der Client diese Anwendung abonniert haben, um Zugriff darauf zu erhalten. Dies bedeutet, dass der Kunde die Anwendung nicht in sein Konto kopieren muss, sondern nur abonnieren muss. Danach erhält der Kunde eine spezielle URL für einen bestimmten Mandanten. Wenn die Anwendung über diese dedizierte URL gestartet wird, wird der Benutzer durch eine eindeutige Mandantenkennung identifiziert.
Vorteile von mandantenfähigen Anwendungen:
- Niedrigere Gesamtbetriebskosten (TCO): Durch die Aufteilung der Rechenressourcen und Betriebskosten zwischen den Kunden werden die Gesamtbetriebskosten für eine solche Anwendung reduziert. Die Kosteneinsparungen steigen mit zunehmender Anzahl von Kunden, die von der Mandantenanwendung bedient werden.
- Betriebseffizienz: Anwendungsaktualisierungen und Fehlerkorrekturen gelten für alle Mandanten, indem die Anwendungsinstanz vom Lieferanten aktualisiert wird.
- Skalierbarkeit: Schneller Kundenservice. Um auf die Anwendung zuzugreifen, muss der neue Client nur ein Abonnement dafür erstellen.
- Konfigurierbarkeit: Ermöglicht Kunden die Konfiguration ihrer eigenen Benutzerreserve, die die Anwendung, ihre eigenen Backend-Dienste usw. gemäß den Anforderungen der Anwendung verwenden kann.
Betrachten Sie den Unterschied zwischen Client- und Provider-Unterkonten innerhalb eines globalen SCP-Kontos:

Wie in der Abbildung dargestellt, werden zwei Unterkonten innerhalb des globalen SCP-Kontos bereitgestellt - das Provider-Unterkonto und das Client-Unterkonto.
Das Provider-Unterkonto enthält die Geschäftslogik der Anwendung, ihre Schnittstelle sowie eine Datenbank, in der Kundendaten isoliert voneinander gespeichert sind. Anwendungen werden tatsächlich auf diesem Konto ausgeführt.
Wie bereits erwähnt, greift der Client auf die Anwendung zu, indem er sie abonniert. Bitte beachten Sie, dass Anwendungen nicht im Benutzerkonto kopiert oder gestartet werden. Innerhalb des Unterkontos des Kunden können Konfigurationen hinzugefügt werden, die nur für diesen Verbraucher gelten. Beispielsweise können Sie den Identitätsanbieter als Benutzerrepository für Cloud-Plattformanwendungen konfigurieren. Oder konfigurieren Sie Zielpfade, die auf interne Dienste verweisen können, die in der Clientlandschaft ausgeführt werden (z. B. können Sie auf Daten auf dem lokalen System zugreifen).
Lassen Sie uns nun über die Mandantenfähigkeit von SCP-Diensten sprechen.
a) PersistenzdienstEs gibt drei Möglichkeiten, um bei diesem Service eine Mandantenfähigkeit zu erreichen:
1. Trennsäule. Diese Methode verwendet eine bestimmte Spalte in der Tabelle, um die Datenisolation sicherzustellen. In diesem Fall können die Benutzer dasselbe Schema verwenden. Die Daten werden jedoch anhand einer dedizierten Mandantenkennung für jeden Client unterschieden. Um die gemeinsame Nutzung von Daten in der Anwendung sicherzustellen, muss jede SQL-Anweisung eine Mandantenkennung enthalten.
2. Tabelle (n) in einem Design. Mit dieser Methode können Anwendungsclients ihre Daten in einer oder mehreren Tabellen bestimmter Mandanten isolieren. Dies wird erreicht, indem für jeden Client eine Tabelle oder ein Schema in der Datenbank erstellt wird. Der Client-Tabellendiskriminator bestimmt, wie diese Tabellen von Tabellen anderer Clients unterschieden werden. Tabellen können dasselbe Muster aufweisen und zur Unterscheidung ein Präfix oder Suffix verwenden. oder sie können sich in einem separaten Schema befinden, indem der Tabellenclient-Diskriminator des Schemas verwendet wird.
3. Die Trennung der Systeme. Die Isolierung von Kundendaten wird in diesem Fall durch Speichern von Tabellen in verschiedenen Schemata erreicht.
b) Identitätsauthentifizierung
Die Identitätsauthentifizierung ist eine Cloud-basierte Lösung zur Verwaltung des Lebenszyklus von SCP-Anwendungen und gegebenenfalls lokalen Anwendungen. Hier können Sie die Authentifizierung, die einmalige Anmeldung für Benutzer usw. konfigurieren. Wenn der Dienst verbunden ist, wird dem Administrator des Kontos ein Mandant bereitgestellt, in dem die Anwendung konfiguriert und die Benutzerautorisierung verwaltet wird. Dieser Dienst bietet einen Identitätsanbieter für SCP.
Das Unterkonto des Clients ist für einen bestimmten Anbieter konfiguriert, in dem Benutzer definiert, Rollen konfiguriert und der Zugriff auf die Anwendung des Anbieters konfiguriert ist, für die der Client abonniert ist. Rollen werden in der Anwendung des Anbieters beschrieben. Somit wird eine Isolation der Benutzer erreicht.
c) Konnektivität
Der Client kann den Zugriff auf Daten auf dem lokalen System konfigurieren. Mit einem Tool wie dem SAP Cloud Connector können Sie eine sichere Verbindung zu einer lokalen Anwendung oder einem lokalen System herstellen, das bestimmte Daten bereitstellt. In seinem Unterkonto konfiguriert der Client den Zielpfad zu dem im Cloud Connector beschriebenen lokalen System. Der Name des Zielpfads wird in der Anwendung des Anbieters angegeben. Wenn der Client auf die Anwendung zugreift, werden Daten vom lokalen System des Clients an die Anwendung übertragen und visualisiert.
Wir wenden uns der Überprüfung des Szenarios zu, dessen Beschreibung im Rahmen dieses Artikels beschrieben wird.
SAP hat ein zuverlässiges Partnerunternehmen, das sich auf die Bereitstellung von Lösungen für die Öl- und Gasindustrie spezialisiert hat. Wir werden es ITeLO Consulting nennen. Dieses Unternehmen verwendet die SAP Cloud Platform, um seine Cloud-Anwendungen zu erstellen und zu starten. ITeLO Consulting zieht es vor, ihre Anwendungen als SaaS bereitzustellen. In diesem Modell wird die Software als Service bereitgestellt und steht Kunden über das Internet zur Verfügung.
Das Unternehmen hat ein Gremium zur Überwachung der Umweltverschmutzung entwickelt, mit dessen Hilfe Öl- und Gasunternehmen die Luftverschmutzung in einer Anlage und in einer Stadt vergleichen können. Diese Entscheidung weckte das Interesse einiger Öl- und Gasunternehmen, Maßnahmen zur Vermeidung von Umweltverschmutzung zu ergreifen.
ABC PetroCorp und XYZ EnergyCorp sind zwei Öl- und Gasunternehmen, die diese Lösung von ITeLO kaufen.
Robert ITE, der der Architekt dieses Projekts ist, arbeitet bei ITeLO Consulting. Das Unternehmen kaufte ein SAP Cloud Platform-Paket mit den zum Erstellen dieser Anwendung erforderlichen Services. Roberts Szenario besteht darin, eine mandantenfähige SaaS-Anwendung zu entwickeln und sie seinen Kunden - ABC PetroCorp und XYZ EnergyCorp - zur Verfügung zu stellen. “ Emily ist eine IT-Mitarbeiterin von ABC PetroCorp. Sie ist beauftragt, mit Robert an diesem Projekt zu arbeiten.
Die Architektur der Lösung wird im Folgenden vorgestellt:

Das Unterkonto des Anbieters ist in diesem Fall ITeLO Consulting, und die Unterkonten der Kunden, die die Anwendung abonnieren, sind ABC PetroCorp und XYZ EnergyCorp. Die Einstellungen in den Client-Unterkonten sind ähnlich, daher wird nur die Konfiguration für den ABC PetroCorp-Client berücksichtigt.
Kontobeschreibung:
1) ITeLO Consulting - das Anbieterkonto, auf dem die Datenbank-, Geschäftslogik- und Benutzeroberflächenanwendungen ausgeführt werden.
Datenbank:
Luftverschmutzungsinformationen von jeder Anlage werden in der SAP-HANA-Datenbank gespeichert. Daten von verschiedenen Clients werden mithilfe der von JPA bereitgestellten Mandantenisolationsfunktion separat gespeichert.
Geschäftslogik:
Die Geschäftslogik wird in einer Java-Anwendung definiert, die im Unterkonto des Anbieters ausgeführt wird. Eine Java-Anwendungsinstanz wird von verschiedenen Clients verwendet. Jeder Benutzer abonniert diese Java-Anwendung und erhält eine eindeutige URL für den Zugriff auf die Anwendung. Da über diese URL auf die Anwendung zugegriffen wird, ruft SCP die Mandanten-ID ab, die in der Anwendungslogik verwendet wird.
Benutzeroberfläche:
Die Benutzeroberflächenlogik wird in der HTML5-Anwendung definiert, die im Unterkonto des Anbieters ausgeführt wird. Wie bei einer Java-Anwendung wird eine Instanz der HTML5-Anwendung für verschiedene Clients ausgeführt. Der Clientzugriff auf die Anwendung erfolgt über eine eindeutige URL, um auf die Anwendung zuzugreifen.
2) ABC PetroCorp - ein Client-Unterkonto, in dem Abonnements erstellt, bestimmte Konfigurationen eines Identitätsanbieters (IdP) erstellt und der Zugriff auf lokale Dienste bereitgestellt wird.
Java- und HTML5-Anwendungen werden nicht bereitgestellt oder in dieses Konto kopiert.
Identitäts- und Zugriffsverwaltung:
Der Zugriff auf die Anwendung sollte auf Mitarbeiter von ABC PetroCorp beschränkt sein. ABC PetroCorp verfügt über einen eigenen Identitätsauthentifizierungsanbieter (SAP Identity Authentication), der Informationen zu den Mitarbeitern des Unternehmens (Name, E-Mail, Organisation, Rolle usw.) enthält. Es ist speziell für das ABC PetroCorp-Unterkonto konfiguriert, sodass nur die Mitarbeiter auf die Anwendungen zugreifen können, für die sie sich angemeldet haben.
Konnektivitätsdienste:
ABC PetroCorp hat vor Ort Dienste eingeführt, die Informationen über ihre Werke bereitstellen - die Anzahl der Mitarbeiter im Werk, den Standort des Werks usw. Alle diese Informationen müssen aus ihrer Landschaft extrahiert und der Anwendung über den SAP Cloud Connector zur Verfügung gestellt werden.
Teil 2. Hochladen der MTAR-Lösung auf die Plattform, Verknüpfen der Datenbank und Erstellen von Abonnements für Mandanten, Konfigurieren des Provider-UnterkontosEine mandantenfähige Anwendung muss im Unterkonto des Anbieters ausgeführt werden. Robert von ITeLO Consulting ist der Kontoadministrator und muss die folgenden Schritte ausführen, um die Anwendung zu installieren:
- Erstellen Sie ein Anwendungsarchiv mit allen Artefakten.
- Laden Sie das Anwendungsarchiv in Ihr ITeLO Consulting-Konto herunter.
- Abonnieren Sie den ABC PetroCorp-Client für die Anwendung, die im Unterkonto des Anbieters ausgeführt wird.
- Festlegen des Pfads zu einem offenen Dienst, der im Internet ausgeführt wird.
Voreinstellungen:
- Sie haben Java 8 installiert.
- Installiertes Eclipse Neon mit Plugins für SAP CP ;
- In Eclipse ist das EGit- Plugin installiert .
- Laden Sie die neueste Version des SAP CP Java Web Tomcat 8 SDK herunter und entpacken Sie sie.
- Laden Sie den MTA Archive Builder herunter und installieren Sie ihn.
- Die SAP-HANA-Datenbank ist mit dem SCP-Konto (für das Provider-Unterkonto) verbunden.
- Im Unterkonto des ITeLO Consulting-Anbieters wurde ein Kontingent für den Start von Java-Anwendungen zugewiesen (mindestens eine nicht verwendete Recheneinheit, hier mehr zum Zuweisen eines Kontingents).
Hinweis: Das Erstellen mehrerer Unterkonten in einem globalen SCP-Konto ist für ein Testkonto (Testkonto) nicht möglich.Um eine multiethnische Anwendung zu installieren, wird in diesem Artikel eine SCP-Funktion wie „Lösungen“ (Download-Lösungen) verwendet. Alternativ können Sie Anwendungsmodule einzeln in die Plattform laden.
Der Quellcode für die Pollution Monitoring-Anwendung befindet sich auf
GitHub .
Zuerst klonen wir das Projekt und
laden es in den Eclipse-Arbeitsbereich hoch. Nach erfolgreicher Installation wird das Projekt im Arbeitsbereich angezeigt. Die Struktur sieht folgendermaßen aus:

Die Anwendung besteht aus mehreren Modulen, die mit verschiedenen Technologien entwickelt wurden. Diese Module müssen in verschiedenen Laufzeitumgebungen (z. B. Java, HTML5) installiert werden. Anstatt Module separat zu erstellen und zu laden, unterstützt SCP die Erstellung einer einzelnen Anwendung, die verschiedene Module in einem Archiv enthält.
Wie in der Anwendungsarchitektur gezeigt, ist die Geschäftslogik in einer Java-Anwendung und die Benutzeroberflächenlogik in einer HTML5-Anwendung definiert. Und jetzt werden wir in der Person von Robert ein Archiv einer Multimodul- (oder Mehrzweck-) Anwendung (MTA) erstellen, um die Anwendung in einem Format zu verpacken, das zum Herunterladen auf die Plattform geeignet ist.
Um ein Archiv mit mehreren Anwendungsmodulen zu erstellen, müssen Sie "mta.jar" herunterladen und "MTA Archive Builder" konfigurieren (der Link zur Beschreibung der Installation von "MTA Archive Builder" ist in der obigen Voreinstellung angegeben).
Mehrzweckanwendungsmodule werden in der MTA-Deskriptordatei (mta.yaml) beschrieben. Diese Datei befindet sich im Stammordner des Projekts.

Die Datei mta.yaml enthält Informationen zu den Java- und HTML5-Modulen, die während des Erstellungsprozesses der Anwendung erstellt werden. Öffnen Sie die Datei und binden Sie die SAP-HANA-Datenbank an die Java-Anwendung, indem Sie die Datenbankkennung im Feld id angeben.

Hier ist id die Kennung der Datenbank, die im Unterkonto des Anbieters ausgeführt wird. Sie finden es im SCP-Kontrollfeld des ITeLO Consulting-Kontos unter Persistenz -> Datenbanksysteme.

In unserem Fall wird die Datenbankkennung in "mta.yaml" wie folgt angegeben:

Wir speichern die Änderungen und öffnen beim Öffnen der Befehlszeile den Ordner mit dem Projekt zur Überwachung der Umweltverschmutzung und geben den folgenden Befehl ein:
java -jar [ mta.jar] –build-target=NEO build

Dieser Befehl startet den Prozess des Erstellens der Anwendung im MTA-Archiv.
Nach erfolgreicher Montage wird die MTA-Archivdatei (Pollutionmonitoring.mtar) im Projektordner generiert.

Der nächste Schritt ist die Installation des MTA-Archivs (Pollutionmonitoring.mtar) im Unterkonto von ITeLO Consulting. Dies kann mithilfe der Funktion „Lösungen“ im SCP-Bedienfeld erfolgen. Gehen Sie dazu zur Registerkarte "Lösungen" und klicken Sie auf die Schaltfläche "Bereitstellen".

Wechseln Sie im angezeigten Dialogfeld zum Speicherort der Datei Pollutionmonitoring.mtar, indem Sie im Feld MTA-Archiv auf die Schaltfläche Durchsuchen klicken, diese auswählen und dann auf Bereitstellen klicken.

Nach dem erfolgreichen Herunterladen des MTA-Archivs in der Systemsteuerung des ITeLO Consulting-Kontos wird Folgendes angezeigt:
• Auf der Registerkarte „Java-Anwendungen“ wird die laufende Java-Anwendung „Verschmutzungsüberwachung“ angezeigt.

• Die Datenbank wird automatisch an die Java-Anwendung gebunden. Gehen Sie zur Überprüfung zur Java-Anwendung und wählen Sie die Registerkarte "Konfiguration" -> "Data Sourse Bindings".

• Auf der Registerkarte „HTML5-Anwendungen“ wird die laufende HTML5-Anwendung „Pollutionmonitoringui“ angezeigt.

Jetzt muss Robert ein Unterkonto namens ABC Petro Corp für den Kunden erstellen.
Gehen Sie zu Ihrem globalen SCP-Konto und wählen Sie auf der Registerkarte "Unterkonten" die Option "Neues Unterkonto".

Geben Sie im angezeigten Dialogfeld den Namen des Unterkontos ein, wählen Sie die Umgebung (Neo) und die Region aus, in der sich das globale Konto und entsprechend das Unterkonto des Anbieters befinden. Klicken Sie dann auf "Erstellen".

Jetzt wird ein weiteres Unterkonto im globalen Konto angezeigt - das Client-Unterkonto.
Der nächste Schritt besteht darin, ein Abonnement innerhalb des ABC Petro Corp-Kundenkontos für Anwendungen zu erstellen, die im Konto des Anbieters ausgeführt werden. Verwenden Sie dazu den Konsolenclient für die Neo-Umgebung. Die Installation wird hier beschrieben.
Geben Sie im Konsolenclient für Neo den folgenden Befehl ein:
neo subscribe –account << ABC_PetroCorp>> -application << ITeLO_consulting>>:pollutionmonitoring -user << >> -host << >>
Die Unterkonten-ID finden Sie auf der Registerkarte „Übersicht“ -> „Unterkontoinformationen“.

Die Benutzer-ID wird auf der Registerkarte „Benutzerinformationen“ angezeigt, die sich im Dropdown-Menü in der oberen rechten Ecke des SCP-Bedienfelds befindet.

Hosts für alle Regionen der Neo-Umgebung werden
in der Dokumentation beschrieben .
Verwenden Sie das SCP-Kontrollfeld, um die HTML5-Anwendung zu abonnieren. Wir gehen zum Unterkonto des ABC Petro Corp-Kunden und wählen die Registerkarte "Abonnements" -> "Neues Abonnement" (für HTML5).

Wählen Sie im Dialogfeld das Unterkonto des Anbieters und die darin enthaltene HTML5-Anwendung aus und klicken Sie auf "Speichern".

Jetzt hat der Client Java- und HTML5-Anwendungen abonniert, die vom Anbieter bereitgestellt werden. Diese werden in der Systemsteuerung des ABC Petro Corp-Kontos angezeigt.

Mit einer Anwendung zur Überwachung der Verschmutzung können Sie Daten zur Verschmutzung der Anlage und der Stadt anzeigen.
Die Daten zur Pflanzenkontamination befinden sich im lokalen System des Kunden. Informationen zum Verschmutzungsgrad der Stadt erhalten Sie über den Open-Source-Dienst, der über das Internet verfügbar ist. Ein solcher Dienst könnte OpenAQ sein. Eine Anwendung zur Überwachung der Umweltverschmutzung kann auf diesen Dienst zugreifen, indem sie den Zielpfad im SCP-Bedienfeld beschreibt.
Dieser Service wird von ABC Petro Corp und anderen potenziellen Kunden genutzt, sodass die Zieladresse dem Konto des ITeLo Consulting-Anbieters hinzugefügt wird.
Für eine Java-Anwendung wird der Zielpfad openaq-api-dest in der Datei web.xml beschrieben.

Dieser Zielpfad wird in der Klasse "PollutionDataService" (Datei "PollutionDataService.java") angegeben.

Nachdem die Suche nach dem Zielpfad abgeschlossen ist, werden alle Aufrufe vom Java-Code an den OpenAQ-Dienst über diesen gestartet.
Die Zielpfaddatei "open-api-dest" befindet sich im Ordner "Destinations-Provider" im Projekt "Pollutionmonitoring".

Diese Datei enthält die URL zum OpenAQ-Dienst.

Dieser Zielpfad muss in das Unterkonto des ITeLo Consulting-Anbieters geladen werden. Dazu gehen wir zum Unterkonto von ITeLo Consulting, gehen zur Registerkarte „Java-Anwendungen“ und wählen die Anwendung „Verschmutzungsüberwachung“ aus.
Wählen Sie anschließend die Registerkarte „Konfiguration“ → „Ziele“ und klicken Sie auf die Schaltfläche „Ziel importieren“.

Geben Sie im angezeigten Dialogfeld den Pfad zur Datei "open-api-dest" an. Danach wird der Zielpfad in der SCP-Systemsteuerung konfiguriert. Klicken Sie auf die Schaltfläche "Speichern". Der Zielpfad sieht in einer Cloud-Plattform folgendermaßen aus:

Dieser Dienst ist über https verfügbar, daher müssen Sie eine sichere Verbindung herstellen. Dies kann mithilfe des "Schlüsselspeicher" -Dienstes für SCP erfolgen. Das von GitHub heruntergeladene Projekt zur Überwachung der Umweltverschmutzung enthält bereits Dateien mit den Schlüsseln: jssecacerts.jks und cacerts.jks. Sie müssen in das Unterkonto des Kunden der ABC Petro Corp. geladen werden.
Dazu verwenden wir wieder den Konsolenclient für die Neo-Umgebung.
Geben Sie im Konsolenclient für Neo die folgenden Befehle ein:
neo upload-keystore –account << ABC_PetroCorp>> –user << >> –location << jssecacerts.jks>> –host << >>
neo upload-keystore –account << ABC_PetroCorp >> –user << >> –location << cacerts.jks>> –host << >>
Diese Dateien ("jssecacerts.jks" und "cacerts.jks") befinden sich im Ordner "KeyStore Services" des Projekts "Pollutionmonitoring".
Teil 3. Persistenzdienst - Dateninitialisierung und -isolierungMehrere Kunden interessieren sich für die Anwendung von ITeLO Consulting. Diese mandantenfähige Anwendung sollte sicherstellen, dass ABC PetroCorp-Daten vollständig von den Daten anderer Kunden in der Datenbank isoliert sind (z. B. XYZ EnergyCorp-Daten). Dies ist sehr wichtig, um die Sicherheit von Client- und Anwendungsdaten zu gewährleisten.
Robert von ITeLO Consulting möchte, dass seine Anwendung die Datenspeicherung seiner Kunden isoliert, und er ist daran interessiert, wie dies erreicht werden kann.
Um eine Datenisolation zu erreichen, müssen wir den Isolationsgrad bestimmen, d.h. Isolation auf Tabellenebene (Daten in verschiedenen Tabellen in einem Schema speichern), auf Schemaebene (Clientdaten in verschiedenen Schemata speichern), auf Mandantenebene (Clientdaten in verschiedenen Datenbankmandanten speichern). Der Persistenzdienst der SAP Cloud Platform unterstützt in Verbindung mit der JPA (Java Persistence API) und EclipseLink die Implementierung dieser Datenisolationsmethoden.
Es gibt drei Möglichkeiten, um Mandantenfähigkeit auf Datenbankebene zu erreichen. Wir haben diese Methoden in Teil 1 untersucht.
Im zweiten Teil konzentrieren wir uns auf eine Methode, die als „Spaltentrenner“ bezeichnet wird. Er wird von Robert verwendet, um Daten auf Datenbankebene in seiner Entscheidung zu isolieren.
Verwenden einer Trennspalte:
Bei diesem Ansatz wird ein Datenbankschema auf alle Benutzer der Anwendung verteilt. Die Mandanten-ID kann als Wert in der Trennzeichen-Spalte verwendet werden. Das Code-Snippet wird unten dargestellt.

Als vorbereitenden Schritt initialisieren wir auch die Daten, die in der Anwendung zur Überwachung der Umweltverschmutzung verwendet werden.
Schritt 1: Überprüfen Sie die Beschreibung der Trennspalte im AnwendungscodeIn dieser Phase werden wir sehen, wie das Anwendungsdatenmodell verwendet wird, um Mandantenfähigkeit auf Datenbankebene bereitzustellen.
Schauen wir uns dazu
das von GitHub heruntergeladene Projekt an , das bereits in den Eclipse-Arbeitsbereich geladen ist.
Als nächstes werden wir uns einige Projektdateien ansehen. Sie können dies entweder über die Eclipse-Umgebung tun oder das Projekt herunterladen, es an einen für Sie geeigneten Ort entpacken und die Dateien separat öffnen. Wir werden die zweite Option verwenden.
Ein entpacktes Projekt lautet wie folgt:

Wir gehen zur Datei "BaseObject.java" des Projekts, die sich unter dem Pfad
"/pollutionmonitoring/java/src/main/java/com/sap/hana/cloud/samples/pollutionmonitoring/model/BaseObject.java" befindet, und öffnen sie mit dem Editor (z. B. Notepad ++).

In dieser Datei überprüfen wir die Beschreibung der Methode "Trennspalte". So sieht es aus:

Nun wenden wir uns der Datei "web.xml" zu, die sich unter dem Pfad "/pollutionmonitoring/java/src/main/webapp/WEB-INF/web.xml" befindet.

Stellen Sie sicher, dass die Datenquelle (Datenbank) als Standardquelle (Standard-DB) an die Anwendung angehängt ist. In der Datei web.xml sieht es folgendermaßen aus:

Dieses Beispiel zeigt, wie Mandantenfähigkeit in einer Anwendung zur Überwachung der Umweltverschmutzung implementiert wird.
Schritt 2: Überprüfen Sie die Konfiguration des DateninitialisierungsservletsRobert weiß, dass Kunden seiner Anwendung Daten herunterladen müssen, um sie verwenden zu können. Deshalb hat er ein Servlet erstellt, um Daten zu initialisieren, mit denen Kunden (wie Emily) Daten in eine Anwendung zur Überwachung der Umweltverschmutzung eingeben können.
An dieser Stelle sehen wir, wie die Veröffentlichung des Dateninitialisierungsservlets konfiguriert ist.
Das Servlet wird in der Datei "DataInitializationServlet.java" beschrieben, die sich im Projekt entlang des Pfads
"/pollutionmonitoring/java/src/main/java/com/sap/hana/cloud/samples/pollutionmonitoring/api/DataInitializationServlet.java" befindet .

Die Methode der Veröffentlichung ist in der Datei "web.xml" (
"/ Pollutionmonitoring / Java / Src / Main" angegeben
/webapp/WEB-INF/web.xml " ).

Öffnen Sie diese Datei und stellen Sie sicher, dass das Servlet zum Laden von Daten in die Anwendung zur Überwachung der Umweltverschmutzung unter der URL "/ initialize" veröffentlicht wurde. Es sieht so aus:
Schritt 3. Verwenden des Servlets zum Initialisieren der Verschmutzungsdaten für ABC PetroCorp (Client)Emily von ABC PetroCorp kann über das erstellte Abonnement auf die Anwendung zur Überwachung der Umweltverschmutzung zugreifen.
Die Anwendung zur Überwachung der Umweltverschmutzung verwendet zwei Arten von Daten:
Verschmutzungsdaten: Lesen Sie aus Quellen wie externen APIs, Verschmutzungssensoren usw.
Anlagendaten werden normalerweise aus lokalen Kundensystemen gelesen - beispielsweise aus ERP-Systemen.
1) In dieser Phase erstellen wir Verschmutzungsdaten mit dem im Projekt befindlichen Dateninitialisierungsservlet. Diese Daten werden in der HANA-Datenbank in SAP CP gespeichert, die mit der Anwendung im Anbieterkonto verknüpft ist.
2) Die Anlagendaten werden von der Anwendung aus dem lokalen System gelesen, dh sie werden nicht in der HANA-Datenbank in SAP CP gespeichert. Dies wird im fünften Teil des Artikels „SAP Cloud Connector - Konfigurieren und Konfigurieren des Dienstes für die Verbindung mit dem lokalen System“ erläutert.
Zu diesem Zeitpunkt laden wir die Verschmutzungsdaten in die Anwendung "per Abonnement" hoch. Hierzu wird das Servlet „Dateninitialisierung“ verwendet, das sich im Projekt befindet und zur Eingabe vorbereiteter Daten in die HANA-Datenbank verwendet werden kann.
Mal sehen, wie die vorbereiteten Daten aussehen und wie sie mit dem Servlet initialisiert werden können. Dazu wenden wir uns erneut der Datei "DataInitializationServlet.java" zu, die sich im Projekt entlang des Pfads
"/pollutionmonitoring/java/src/main/java/com/sap/hana/cloud/samples/pollutionmonitoring/api/DataInitializationServlet.java" befindet öffne es.
Hier sehen wir die vorbereiteten Daten für ABC PetroCorp und einen anderen Kunden (XYZ EnergyCorp).

Wir initialisieren die Verschmutzungsdaten für ABC PetroCorp, indem wir das Servlet zur Dateninitialisierung aufrufen.
Wir gehen zum Control Panel des ABC PetroCorp-Client-Unterkontos. In unserem Fall befindet sich das globale Konto in der Region Europa (Rot). Der Zugriff darauf erfolgt
über diesen Link .

Wechseln Sie in der Systemsteuerung für Unterkonten zur Registerkarte "Anwendungen -> Abonnements" und wählen Sie die Java-Anwendung aus, für die der Client abonniert ist.

Auf der Registerkarte "Übersicht" wird die URL-Anwendung angezeigt. Kopieren Sie sie.

Öffnen Sie ein neues Browserfenster, fügen Sie die kopierte Anwendungs-URL ein und fügen Sie "/ initialize? Company = ABC PetroCorp" hinzu. Danach ist die Initialisierung abgeschlossen und die Daten sollten auf dem Bildschirm angezeigt werden, der an die Anwendung gesendet wird.

Wir haben jetzt die Verschmutzungsdaten für ABC PetroCorp in der Anwendung zur Überwachung der Verschmutzung von ITeLO initialisiert.
Im nächsten Artikel werden wir über das Identitätsmanagement mithilfe der Identitätsauthentifizierung sprechen - Festlegen des Mandantendienstes.