Der WSO2 Micro Integrator ist das jüngste Geschwisterchen der berühmten Enterprise Integrator-Reihe. Obwohl wir ihn als eigenständiges Produkt betrachten, verwendet er weiterhin die vertrauten Synapse / Axis2 Umgebungen, die wir seit der Veröffentlichung des ersten WSO2 Enterprise Integrator oder WSO2 Enterprise Service Bus vor mehr als 10 Jahren verwenden.
Weshalb betrachten wir es als ein neues Produkt? Nun, weil es auf den Trend zu Microservices, Containerisierung und Umgebungen wie Docker und Kubernetes zugeschnitten ist. Anders gesagt, auf Bereitstellungen, die sich von einer monolithischen Bereitstellung wie WSO2 Enterprise Integrator 6.x.0 (und früheren Versionen) unterscheiden.
In diesem Blog werden wir uns mit den folgenden Aspekten befassen:
- Installation des WSO2 Micro Integrator, einschließlich Analysefunktionen;
- Bereitstellung von zwei sehr einfachen Proxys und einer API in dieser Umgebung;
- Aufrufen der Proxys und der API;
- Vergleich mit einer normalen Bereitstellung (die Sie mit dem WSO2 Enterprise Integrator durchführen würden).
Wir werden die Anwendung in einer normalen virtuellen Maschinenumgebung einsetzen, aber auch in dem integrierten WSO2 Micro Integrator, der Teil von Integration Studio ist. In einem späteren Blog werden wir zeigen, wie Sie es in einer Docker-Umgebung und in MiniKube einsetzen können.
Installation
Wir nutzen den separaten Download für den WSO2 Micro Integrator und nicht den WSO2 Enterprise Integrator (EI) 7.0.0. Grund dafür ist, dass wir den Streaming Integrator, der in WSO2 EI 7.0.0 enthalten ist, nicht brauchen. Darüber hinaus werden wir das Installationsprogramm nicht verwenden, da es das Produkt an einem Ort installiert, an dem wir es nicht haben wollen. Wir laden einfach die Binärdatei (Zip-Datei) herunter und arbeiten damit. Wir werden auch die Zip-Datei für WSO2 Enterprise Integrator (Analytik für WSO2 Enterprise Integrator), das WSO2 Micro Integrator Befehlszeilentool, WSO2 Integration Studio 7.0.0 und das WSO2 Micro Integrator Dashboard herunterladen. Dieser Download hat es in sich, denn wir laden über 1,4 Gigabyte an Daten herunter. Dies liegt daran, dass wir den WSO2 Enterprise Integrator (523 MB) herunterladen, da die Analysefunktionen Teil des Downloads sind und nicht separat verfügbar sind. WSO2 Integration Studio ist weitere 772 Megabyte groß. Das Programm WSO2 Micro Integrator selbst ist zusammen mit dem Dashboard und dem Befehlszeilentool nur 200 Megabyte groß.
Ich habe alles auf dem Desktop abgelegt und die Dateien entpackt. Jetzt habe ich noch eine Reihe von Ordnern.
Verzeichnis | Ziel |
Integration Studio | Development environment |
wso2mi-1.1.0 | WSO2 Micro Integrator |
wso2mi-cli-1.1.0 | Command line interface |
wso2mi-monitoring-dashboard-1.1.0 | Dashboard |
wso2ei-6.6.0 | Analytics |
Konfiguration
Um den WSO2 Micro Integrator zu konfigurieren, sind Änderungen an der Datei deployment.toml erforderlich. Wir nehmen eine Reihe von Änderungen vor wie:
- Verbindung zum Analyseserver;
- Austausch von Zertifikaten zwischen Micro Integrator und der Analysekomponente.
Der WSO2 Micro Integrator arbeitet mit der Datei deployment.toml als zentrale Konfigurationsdatei zusätzlich zu den regulären Konfigurationsdateien, die sich im Verzeichnis conf befinden. Diesen Mechanismus finden Sie auch in den neuesten Versionen des WSO2 API Managers und des WSO2 Identity Servers, jedoch nicht in WSO2 Enterprise Integrator 6.6.0. In der Datei deployment.toml werden die Änderungen an der Konfiguration registriert und beim Start werden diese Werte in die zugehörigen Konfigurationsdateien wie carbon.xml, axis2.xml und andere geschrieben.
Die Datei deployment.toml öffnen Sie unter [MI-HOME]/conf und fügen Sie die folgenden Zeilen hinzu, um die Analysefunktionen von WSO2 Micro Integrator zu aktivieren.
WSO2-Produkte starten
Um dies auszuprobieren, müssen wir den Analyseserver starten, bevor wir den WSO2 Micro Integrator starten. Der Grund dafür ist die Tatsache, dass wir bei der Aktivierung von Analytics eine Abhängigkeit vom Analyseserver schaffen. Wenn Sie den Micro Integrator starten, wird er versuchen, eine Verbindung zum Analyseserver herzustellen, um die Datenübertragung vorzubereiten.
Jetzt starten wir den Analyseserver mit dem Befehl worker.sh, den Sie im Verzeichnis [EI-HOME]/wso2/analytics/bin finden. Starten Sie außerdem auch das Dashboard des Analyseservers. Dies erfolgt ebenfalls im Verzeichnis [EI-HOME]/wso2/analytics/bin unter Verwendung des Befehls sh dashboard.sh. Die URL des Dashboards finden Sie im Terminal. Rechtsklicken Sie darauf und öffnen Sie den Link. Loggen Sie sich mit den Anmeldedaten admin / admin ein.
Der Befehl zum Starten des WSO2 Micro Integrator lautet sh micro-integrator.sh. Wir warten jedoch, bis wir eine Autodatei haben, die wir bereitstellen können, bevor wir ihn starten.
Proxys erstellen
Wir werden zwei Proxys und eine API erstellen. Da wir keinen Backend-Server oder den Echo-Dienst haben (der in WSO2 Enterprise Integrator 6.6.0 verfügbar ist), erstellen wir einen einfachen Proxy, der das Systemdatum und die Uhrzeit abruft und diese an den Client übermittelt. Als API werden wir einen Online-API-Dienst aufrufen. Wir gehen nicht im Detail auf die Einrichtung des Proxys oder der API ein.
Der TellMe-Proxy ruft einfach das Systemdatum und die Uhrzeit ab und erstellt eine Soap-Nachricht, die an den Client zurückgegeben wird.
<?xml version="1.0" encoding="UTF-8"?> <proxy name="TellMe" startOnLoad="true" transports="http https" xmlns="http://ws.apache.org/ns/synapse"> <target> <inSequence> <property expression="get-property("SYSTEM_DATE", "yyyy-MM-dd' Time 'HH:mm:ss.SSSXXX")" name="SYSTEM_DATE" scope="default" type="STRING"/> <log/> <payloadFactory media-type="xml"> <format> <time xmlns="">$1</time> </format> <args> <arg evaluator="xml" expression="$ctx:SYSTEM_DATE"/> </args> </payloadFactory> <respond/> </inSequence> <outSequence/> <faultSequence/> </target> </proxy>
Für die API arbeite ich mit der debounce.io API, die prüfen kann, ob eine E-Mail-Adresse legitim erscheint. Um auf diesen Dienst zuzugreifen, müssen Sie sich anmelden und einen API-Schlüssel generieren. Die API selbst ist recht einfach:
Die API im Screenshot oben ist der Key, den Sie für debounce generieren. Die E-Mail-Adresse ist die Adresse, die Sie überprüfen möchten.
https://api.debounce.io/v1/?api=XXXXXXXXXXXXX&email=jexip69755@p5mail.com. Das XXX ist ein Platzhalter für den API Key.
Die Antwort lautet in etwa so.
{ "debounce": { "email": "jexip69755@p5mail.com", "code": "3", "role": "false", "free_email": "false", "result": "Invalid", "reason": "Disposable", "send_transactional": "0", "did_you_mean": "jexip69755@gmail.com" }, "success": "1", "balance": "99" }
Die API ist ebenfalls einfach:
<?xml version="1.0" encoding="UTF-8"?> <api context="/check" name="CheckEmail" xmlns="http://ws.apache.org/ns/synapse"> <resource methods="GET" uri-template="/{apikey}/{email}"> <inSequence> <log level="full"/> <send> <endpoint> <http method="get" statistics="enable" uri-template="https://api.debounce.io/v1/?api={uri.var.apikey}&email={uri.var.email}"> <suspendOnFailure> <initialDuration>-1</initialDuration><progressionFactor>-1</progressionFactor> <maximumDuration>0</maximumDuration> </suspendOnFailure> <markForSuspension><retriesBeforeSuspension>0</retriesBeforeSuspension> </markForSuspension> </http> </endpoint> </send> </inSequence> <outSequence> <send/> </outSequence> <faultSequence/> </resource> </api>
In dieser API übernehmen wir die Parameter aus der API (apikey und email) und fügen sie in den Aufruf des Debounce-Endpunkts ein. Beachten Sie bitte, dass ein @ in einer URL nicht funktioniert, also ersetzen wir es durch %40. So sieht der Aufruf in SoapUI wie folgt aus.
Wir fügen den Proxy und die API in eine Composite Application (C-App) ein und kreieren eine Car-Datei, die wir auf dem Micro Integrator bereitstellen werden. Bitte laden Sie die Car-Datei herunter.
Wir arbeiten mit dem Standalone WSO2 Micro Integrator. Car-Dateien können nicht im laufenden Betrieb auf dem WSO2 Micro Integrator bereitgestellt werden, so dass wir das Produkt neu starten müssen, nachdem wir die CAR-Datei in seinen Bereitstellungsordner [MI_HOME/repository/deployment/server/carbonapps. Danach sehen wir, dass die CAR-Dateien beim Start übernommen werden. Nun starten Sie den MI mit dem oben erwähnten Befehl.
Wenn Sie das WSO2 Micro Integrator Dashboard verwenden, können Sie sehen, ob der Proxy und die API erfolgreich bereitgestellt wurden. Das Dashboard erfordert, dass Sie wegen des selbstsignierten Zertifikats eine Sicherheitsausnahme im Browser hinzufügen. Rufen Sie zum Beispiel https://localhost:9164/management auf und fügen Sie die Website hinzu, wenn sie als vertrauenswürdig eingestuft wird. Andernfalls können Sie sich nicht anmelden.
Wenn wir auf TellMe klicken, erhalten wir den Quellcode, die Endpunkte und die Proxy-Details.
Nun müssen wir den Proxy und die API ein paar Mal aufrufen, um Analytics im Einsatz zu sehen. Wir werden nur die Proxy-Aufrufe zeigen.
Zunächst müssen Sie die Zertifikate aus dem KeyStore in den anderen Client-Truststore exportieren. Sonst kann es keinen Datentransfer zwischen WSO2 Micro Integrator und Analytics geben. Dafür sorgen diese Befehle. Bitte beachten Sie, dass diese Befehle für unsere spezielle Schulungsumgebung geschrieben wurden, was die Installation der WSO2 Produkte betrifft.
# Exporting Analytics certificate keytool - exportcert -alias wso2carbon -file /opt/wso2/Desktop/wso2analyticscert -keystore /opt/wso2/Desktop/wso2ei-6.6.0/wso2/analytics/resources/security/wso2carbon.jks -storepass wso2carbon # Exporting MI certificate keytool -exportcert -alias wso2carbon -file /opt/wso2/Desktop/wso2micert -keystore /opt/wso2/Desktop/wso2mi-1.1.0/repository/resources/security/wso2carbon.jks -storepass wso2carbon # Import MI certificate into Analytics truststore keytool -importcert -alias wso2analytics -file /opt/wso2/Desktop/wso2micert -keystore /opt/wso2/Desktop/wso2ei-6.6.0/wso2/analytics/resources/client-truststore.jks -trustcacerts -storepass wso2carbon -noprompt # Import Analytics certificate into MI truststore keytool -importcert -alias wso2mi -file /opt/wso2/Desktop/wso2analyticscert -keystore /opt/wso2/Desktop/wso2mi-1.1.0/repository/resources/security/client-truststore.jks -trustcacerts -storepass wso2carbon -noprompt
Rufen Sie den Proxy mehrere Male auf.
Wenn wir uns in das Dashboard des Analyseservers einloggen, können wir die Aufrufe sehen.
Fazit
Wie Sie bemerken werden, ist die Bereitstellung von Artefakten für den WSO2 Micro Integrator teilweise ähnlich wie bei einem normalen WSO2 Enterprise Integrator und teilweise anders. In einem späteren Blog werden wir dieselben Artefakte in einer Docker-Umgebung bereitstellen, denn auch diese wird von Integration Studio unterstützt.