fb
WSO2 Enterprise Integrator 12 min

Erste Einblicke: WSO2 EI 6.5.0, Micro Integrator und Developer Studio

Rob Blaauboer
Rob Blaauboer
Integration Consultant & WSO2 Trainer
First look at WSO2 Enterprise Integrator 6.5.0
Scrollen

Obwohl WSO2 Enterprise Integrator 6.5.0 noch nicht offiziell veröffentlicht ist, war ich neugierig auf die neue Version und natürlich auf das Entwicklerstudio, mit dem wir Artefakte für das Produkt erstellen. Für viele Produkte von WSO2 können Sie einfach sehen, was WSO2 macht, indem Sie sich den Quellcode ansehen, der auf GitHub veröffentlicht ist. Als Alternative können Sie auch die Mailingliste für Entwickler abonnieren, die ebenfalls Einblicke in die Entwicklung neuer Versionen sowie in einige der Diskussionen gibt, die WSO2 intern in Bezug auf die Entwicklung der Plattform führt. In diesem Blog werden wir die Unterschiede zwischen der aktuellen Version und der neuen Version von WSO2 Enterprise Integrator diskutieren und aufzeigen, welche Funktionen geändert oder hinzugefügt wurden.

Wenn Sie die auf GitHub verfügbaren Informationen überprüfen, werden Sie feststellen, dass es die Version 6.5.0 gibt, die wir in diesem Blog besprechen, aber auch, dass Version 7, die auf der Ballerina-Sprache basieren wird, schon seit geraumer Zeit in Arbeit ist. Das wird natürlich eine wichtige neue Version sein, aber wir werden das in einem anderen Blog besprechen, wenn wir näher an der GA-Veröffentlichung von Version 7 sind. Der Zeitplan für Version 7 ist zu diesem Zeitpunkt unklar.

EI 6.5.0

Für mich als WSO2-Trainer ist es interessant zu erfahren, wo die Unterschiede zwischen der aktuellen Version und der neuen Version liegen und was für Änderungen oder neue Funktionen das Produkt bietet.

Download developer Studio

Ich habe die Vorabversion von Developer Studio heruntergeladen, die Version 6.5.0-M5 (Milestone 5) von Enterprise Integrator und, seit der Version 6.5.0 von Enterprise Integrator, ein eigenständiges Produkt namens WSO2 Micro Integrator, v1.0.0-M3.

Ich habe dies in den Amazon-Umgebungen getestet, die für unsere Schulungskurse eingesetzt werden und auf CentOS basieren.

Schauen wir uns zunächst die Größe dieser Dateien an. Die Größe des neuen WSO2 Enterprise Integrator entspricht in etwa der Größe der 64x-Version. Die Größe von WSO2 Enterprise Integrator Analytics hat sich durch den Wechsel zum Stream-Prozessor erheblich verringert, weil dieser auf Carbon 5 (C5) basiert und nicht auf Carbon 4.4, auf dem die anderen Produkte noch basieren.

Der Start von WSO2 EI (Plain Vanilla) dauert etwa 40 Sekunden und liegt damit auf dem Niveau der Vorgängerversion. Hinsichtlich der Funktionalität der Verwaltungsoberfläche gibt es, wenn überhaupt, nur wenige Unterschiede.

Wer wissen will, was sich im Produkt verändert hat, sollte einen Blick in die Release Notes werfen. Es empfiehlt sich immer, auch die Liste der bekannten Probleme für das Produkt zu prüfen, um festzustellen, ob es irgendwelche Probleme gibt, die die Bereitstellung behindern könnten. Diese Liste zeigt standardmäßig alle bekannten Probleme bis zum heutigen Tag an. Sie können jedoch gefiltert werden, um nur die Probleme anzuzeigen, die für ein bestimmtes Produkt oder eine bestimmte Tooling-Version registriert wurden.

Micro Integrator

Mit WSO2 Micro Integrator können Sie eine Microservices-basierte Architektur auf bestehenden Synapse /AXIS2-Konfigurationen einrichten. Anders ausgedrückt: Artefakte, die Sie gerade für Enterprise Integrator entwickeln, können in einer Microservices-Architekturumgebung eingesetzt werden, ohne etwas ändern zu müssen. Wie ist das möglich?

Im Grunde ist es möglich, weil der Micro Integrator eine sehr schlanke Version von Enterprise Integrator ist.

In vorherigen Versionen war Micro Integrator ein Profil von Enterprise Integrator, aber mit v6.5.0 hat WSO2 beschlossen, Micro Integrator als separaten Download zur Verfügung zu stellen. Micro Integrator hat alles entfernt, was wir bei einem minimalen Setup nicht brauchen und was den Systemstart verlangsamen würde.

Schauen wir uns einmal die Struktur des Produkts an.

Es ist ein langer Überblick, der jedoch zeigt, dass die Struktur des Micro Integrator weitgehend mit der des Enterprise Integrator vergleichbar ist. Es handelt sich um eine Baumübersicht, in der wir nur die Verzeichnisse vier Ebenen tief zeigen. Wie Sie sehen können, gibt es ein Komponentenverzeichnis, ein Bereitstellungsverzeichnis usw.

├── bin
├── dropins
├── updates
└── wso2
    ├── components
    │   ├── micro-integrator-default
    │   │   └── configuration
    │   ├── p2
    │   │   ├── org.eclipse.equinox.p2.core
    │   │   └── org.eclipse.equinox.p2.engine
    │   └── plugins
    │       ├── org.eclipse.equinox.launcher.gtk.linux.x86_1.1.200.v20130807-1835
    │       └── org.eclipse.equinox.p2.publisher.eclipse_1.0.0.v20110511
    ├── lib
    │   ├── endorsed
    │   └── tomcat
    │       └── conf
    └── micro-integrator
        ├── bin
        │   └── yajsw
        ├── conf
        │   ├── axis2
        │   ├── data-bridge
        │   ├── datasources
        │   ├── email
        │   ├── etc
        │   ├── security
        │   └── tomcat
        ├── dbscripts
        ├── dockerfiles
        │   └── files
        ├── repository
        │   ├── data
        │   ├── database
        │   ├── deployment
        │   ├── logs
        │   ├── resources
        │   └── tenants
        └── tmp
            └── work

Versuchen wir es also. Wir haben einen sehr einfachen Proxy erstellt, der im Grunde ein Pass-Through-Proxy für den Echo-Dienst ist, der Teil der Enterprise Integrator-Installation ist (es handelt sich dabei um einen Axis2-Dienst). Wenn man die WSDL des Dienstes verwendet, kann man mit der Echo-Zeichenkette eine Nachricht wie „Hello Micro Integrator“ an den Dienst senden, und sie wird tatsächlich als Echo an einen zurückgesendet.

Zum Testen werde ich den Dienst mit der neuen Version von Developer Studio entwickeln, die zusammen mit WSO2 Enterprise Integrator v6.5.0 und WSO2 Micro Integrator 1.0.0 veröffentlicht werden wird.

Selbstverständlich hätte ich auch eine ältere Version von Developer Studio verwenden können, doch in diesem Fall wollte ich sehen, was es Neues in Developer Studio gibt.

Developer studio

WSO2 Developer Studio Enterprise Integrator

Eine triviale, aber auffällige Änderung im Developer Studio ist das neue Logo und die neue Namensgebung. Doch lassen Sie sich nicht täuschen, denn es basiert weiterhin auf Eclipse. Wenn Sie sich näher mit dem Developer Studio befassen, werden Sie den sehr vertrauten Überblick über Eclipse mit dem Projekt-Explorer, dem Developer Studio Dashboard und all den anderen Dingen sehen, die wir seit ein paar Jahren verwenden.

Wenn Sie mehr darüber erfahren möchten, können Sie gerne an einer unserer Schulungen zum Enterprise Integrator teilnehmen.  Im Grunde genommen werde ich Ihnen ein wenig über das neue Erscheinungsbild sowie das Ergebnis des Proxys zeigen.

In der Entwicklung des Proxys werde ich Ihnen zeigen, dass der Micro Integrator genau die gleichen internen Prozesse hat wie der Enterprise Integrator.

Der von mir entwickelte Proxy wird den Namen MI_Proxy tragen. Es wird in einem Projekt namens MI_Project gespeichert, ist in HTTP und HTTPS verfügbar und ruft die Endpunkt-URL http://localhost 8280/services/echo auf. Ich werde sowohl der InSequence als auch der OutSequence einen Log-Mediator hinzufügen, wobei beide Mediatoren eine Meldung in der Konsolenansicht von Eclipse anzeigen werden.

Bei der Arbeit mit dieser neuen Version von Developer Studio werden wir sofort einige Änderungen feststellen. Einige dieser Veränderungen sind lediglich kosmetischer Natur, da wir nun eine Reihe neuer Symbole für Mediatoren haben.  Andere Verbesserungen sind funktioneller Art, so haben wir zum Beispiel auf der Registerkarte „Eigenschaften“ eines Mediators eine neue Schnittstelle, die hoffentlich die Konfiguration der Eigenschaften vereinfachen wird.

Proxy configuration WSO2 Enterprise Integrator 6.5.0

Die Quellansicht ist weiterhin vorhanden und zeigt die bekannte XML-Ansicht der Proxy-Konfiguration:

<?xml version="1.0" encoding="UTF-8"?>
<proxy name="MI_Proxy" startOnLoad="true" transports="http https" xmlns="http://ws.apache.org/ns/synapse">
    <target>
        <endpoint name="endpoint_urn_uuid_81381bc6-95d4-4d8d-93c3-e8c35aa30dd0">
            <address uri="http://localhost:8280/services/echo"/>
        </endpoint>
        <inSequence>
            <log level="custom">
                <property name="Status" value="I am in the InSequence"/>
            </log>
        </inSequence>
        <outSequence>
            <log level="custom">
                <property name="Status" value="I am in the OutSequence"/>
            </log>
            <send/>
        </outSequence>
        <faultSequence/>
    </target>
</proxy>

Bei den Eigenschaften des Log-Mediators gibt es jetzt eine andere Möglichkeit, neue Eigenschaften innerhalb des Log-Mediators hinzuzufügen, indem man das + und das X Symbol oben rechts in der Eigenschaftsliste benutzt.

Log mediator WSO2 Enterprise Integrator 6.5.0
Log Property WSO2 Enterprise Integrator 6.5.0

Wenn wir einen Dienst bereitstellen wollen, müssen wir natürlich einen Server einrichten und in Betrieb nehmen. Mit dem neuen Developer Studio können wir das tun, indem wir einen neuen Server definieren, für den jetzt auch Enterprise Integrator 6.5.0 und Micro Integrator als Servertypen verfügbar sind.

Define a new server WSO2 Enterprise Integrator 6.5.0

Ich werde zwei Server definieren, einen Enterprise Integrator 6.5.0 und einen Micro Integrator. Ich werde dann die Artifacts auf beiden Servern bereitstellen. Der Enterprise Integrator wird die Car-Datei im laufenden Betrieb bereitstellen und sofort verfügbar machen, der Micro Integrator verfügt jedoch nicht über die Hot-Deployment-Funktion, so dass das Car zwar in das carbonapps-Verzeichnis kopiert wird, aber erst nach einem Neustart des Micro Integrators verfügbar ist.

Der Enterprise Integrator lässt sich in Eclipse leicht einrichten, der Micro Integrator Server ist jedoch eine etwas größere Herausforderung. Diese Milestone-Version hat ein Problem in der Definition des Servers, da sie auf eine ältere Version einer abhängigen jar-Datei verweist, nämlich auf die work.WSO2.carbon.bootstrap – 4.4.36.jar und nicht auf die 4.4.38.jar, die mit Micro Integrator ausgeliefert wird. Darüber hinaus wird in der URL auch zweimal „bin“ erwähnt. Unglücklicherweise konnte ich die Konfiguration von Micro Integrator aufgrund eines seltsamen Verhaltens von Developer Studio nicht abschließen. Wir haben den Fehler an WSO2 weitergeleitet!

Der Proxy wurde gespeichert und ich fügte ihn der zusammengesetzten Anwendung hinzu, die ich dann dem Enterprise Integrator Server hinzufügte, den ich gerade konfiguriert hatte.

Eine kurze Überprüfung der Management-URI von Enterprise Integrator zeigt, dass der Proxy tatsächlich erfolgreich bereitgestellt wurde.

deployed services - wso2 enterpise integrator

Der Proxy-Abruf über seine SOAP-Url gibt die Nachricht zurück, die vom Echo-Dienst erwartet wurde.

Proxy Invocation - Echo service - WSO2 Enterprise Integrator 6.5.0

Auf der Konsole sehen wir die beiden Log-Mediatoren, die wir in den In- und Out-Sequenzen definiert haben

[2019-04-19 14:07:50,270] [EI-Core]  INFO - ApplicationManager Successfully Deployed Carbon Application : Mi_CAPP_1.0.0 {super-tenant}
[2019-04-19 14:07:55,308] [EI-Core]  INFO - LogMediator Status = I am in the InSequence
[2019-04-19 14:07:55,379] [EI-Core]  INFO - LogMediator Status = I am in the OutSequence

Auf Enterprise Integrator 6.5.0 funktioniert es also einwandfrei.

[2019-04-19 14:07:50,270] [EI-Core]  INFO - ApplicationManager Successfully Deployed Carbon Application : Mi_CAPP_1.0.0 {super-tenant}
[2019-04-19 14:07:55,308] [EI-Core]  INFO - LogMediator Status = I am in the InSequence
[2019-04-19 14:07:55,379] [EI-Core]  INFO - LogMediator Status = I am in the OutSequence

Micro Integrator

Nun ist es an der Zeit, mit Micro Integrator zu beginnen. Da wir Micro Integrator nicht als Server zu Eclipse hinzufügen konnten, werden wir die Befehlszeile verwenden, um unseren Dienst bereitzustellen und zu starten.

Wir müssen die Autodatei in das Bereitstellungsverzeichnis kopieren und Micro Integrator starten. Ähnlich wie bei Enterprise Integrator gehen wir dazu in das bin-Verzeichnis des Produkts und führen in einer Terminalsitzung ein „sh micro-integrator.sh“ aus. Während wir in der Konsole nach Informationen über die Bereitstellung der zusammengesetzten Anwendung/Autodatei suchen, können wir sehen, dass Micro Integrator nach etwa 12 Sekunden erfolgreich gestartet wurde und in der Lage ist, Aufrufe zu verarbeiten. Der Proxy muss geändert werden, da er den Echo Service auf der EI (Port 8280) aufruft. Den Port des Endpunkts habe ich auf 8290 geändert, um auf den Echo-Dienst auf dem Micro Integrator zuzugreifen.

Die Autodatei wurde bereitgestellt und der Proxy kann nun verwendet werden.

deployed car file. - wso2 enterprise integrator 6.5.0

Im Vergleich zum Enterprise Integrator sehen wir, dass der Micro Integrator andere Ports verwendet als der Enterprise Integrator. Standardmäßig ist der HTTP-Listener-Port 8290 und der Standard-HTTPS-Listener-Port 8253 für den Micro Integrator, was für den aufmerksamen Leser ein Offset von 10 im Vergleich zu den Ports des Enterprise Integrators bedeutet.

Also genügt es, die Portnummer in der Aufruf-URL des Proxys (und natürlich des Endpunkts) zu ändern, die ich zuvor verwendet habe, damit es mit dem Micro Integrator funktioniert. Ich habe die Änderungen vorgenommen, den Proxy aufgerufen und das Ergebnis ist so ziemlich das gleiche. Der Screenshot unten zeigt dies.

Micro Integrator ports - wso2 enterprise integrator 6.5.0

Inwieweit ist Micro Integrator also mit Enterprise Integrator kompatibel, das wir bisher verwendet haben?  Eine sehr gute Frage, die im Rahmen dieses Dokuments nicht beantwortet werden kann. Ich habe einen sehr einfachen Proxy ausprobiert, und das hat funktioniert.

Allerdings hat der Versuch, auf einige Verwaltungsdienste zuzugreifen, nicht funktioniert. In gewisser Weise ist dies logisch, da die Verwaltungsdienste von der Verwaltungsoberfläche zur Durchführung von Aufgaben verwendet werden. Wenn Sie also einen Benutzer über die Verwaltungsoberfläche hinzufügen, wird im Hintergrund ein Admin-Dienst aufgerufen, der den Benutzer zum Benutzerspeicher hinzufügt. Da der Micro Integrator ohne Management UI bereitgestellt wird, besteht auch keine Notwendigkeit für diese Verwaltungsdienste. Allerdings betrifft dies die Kompatibilität der beiden Produkte. Wenn Sie einen der Verwaltungsdienste verwenden, um beispielsweise zu sehen, ob der Server läuft, können Sie dies mit Micro Integrator nicht tun. Es könnte noch viele weitere Inkompatibilitäten zwischen dem Enterprise Integrator und dem Micro Integrator geben, auf die ich aber im Rahmen dieses Artikels nicht näher eingehen werde.

Die Möglichkeit, Micro Integrator in einer Docker-Umgebung laufen zu lassen, ist ebenfalls eine Überlegung wert. Da dieser Blog bereits zu einer langen Lektüre geworden ist, wird dies in einem separaten Blog geschehen.

Developer Studio

Nicht jeder ist sofort begeistert, wenn man von Developer Studio/Eclipse spricht, da es in der Vergangenheit einige Macken gab, die das Durchhaltevermögen des Entwicklers auf die Probe stellten. Wenn man beispielsweise direkt in der Source-Ansicht einer Sequenz entwickelte und einen Konfigurationsfehler machte, konnte man diesen nicht speichern. Zudem war es nicht möglich, von der Quellcodeansicht zum Entwurf zu wechseln, wenn ein solcher Fehler in der Konfiguration auftrat. In der nächsten Version von Developer Studio wird dies verbessert und laut den Ingenieuren von WSO2 gibt es jetzt eine neue Validierungsschicht, die Ihnen genauere Informationen über den Fehler in Ihrer Quelle gibt und Sie können das Artefakt speichern, selbst wenn es Fehler enthält. Wie das funktioniert, erfahren Sie in diesem Artikel.

Vor kurzem habe ich einen Teil des XML-Codes wiederverwendet, um eine Fehlervermittlung durchzuführen. Developer Studio hat diesen Fehler in der Quellcode-Ansicht jedoch nicht erkannt. Bei einem Attribut des Fault Mediators, das ich verwendet habe, gab es einen Fehler, was den Wert im Code-Element anbelangt. Der Wert=“soap11Env:Sender“ existiert nicht mehr als eine der Optionen des Fault Mediators. Als ich zurück zur Design-Ansicht wechselte, wurde mein Wert durch einen zufälligen (aber vorhandenen) Wert für den Code ersetzt (value=“soap11Env:VersionMismatch“). Der Fehler in der Kategorie Log-Mediator wurde jedoch erkannt und es wurde ein Vorschlag für mögliche Werte angezeigt.

log mediator category dveloper studio WSO2 Enterprise Integrator 6.5.0

Da es sich jedoch nicht um die endgültige Version handelt, ist noch Zeit für die Fehlerbehebung. Im Laufe der Zeit wird es Verbesserungen geben, die hoffentlich auch diesen Fehler beheben werden. Ich werde ihn heute in die Problemliste für das Developer Studio aufnehmen, so dass die Chance groß ist, dass dieser Fehler in der endgültigen Version behoben sein wird.

Es gibt noch mehr über das neue Developer Studio zu sagen (z. B. die Möglichkeit, ein Docker-Image aus einer Compsite-Anwendung zu generieren), doch das würde den Artikel noch länger machen, also heben wir uns das für einen zukünftigen Blog auf.

Ich glaube, dass die Verbesserung der Benutzeroberfläche und der Leistung des Developer Studios insgesamt etwas ist, von dem wir alle profitieren und das wir begrüßen können. Daher freue ich mich auf die neue Version der drei Produkte, die ich in diesem Blog besprochen habe: Micro Integrator 1.0.0-M3, WSO2 Enterprise Integrator 6.5.0-M5 und die neue Version von Developer Studio.