info@yenlo.com
ned
Menu
WSO2 Enterprise Integrator 12 min

Eerste impressie van WSO2 EI 6.5.0, Micro Integrator & Developer Studio

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

Ook al is de WSO2 Enterprise Integrator 6.5.0 nog niet officieel uitgebracht, ik was toch al benieuwd naar de nieuwe versie en natuurlijk naar de developer studio die we gebruiken om artefacten voor het product te maken. Voor veel WSO2 producten kun je simpelweg zien waar WSO2 mee bezig is, door te kijken naar de broncode die op GitHub wordt gepost. Daarnaast kun je je abonneren op de mailinglijst voor ontwikkelaars om inzicht te krijgen in de ontwikkeling van nieuwe versies en kun je een aantal discussies volgen die WSO2 intern heeft over de ontwikkeling van het platform. In deze blog gaan we de verschillen bespreken tussen de huidige en de nieuwe versie van de WSO2 Enterprise Integrator en welke functies veranderen of toegevoegd worden.

Als je op GitHub kijkt wat er beschikbaar is, dan zul je zien dat er een versie 6.5.0 is die we bespreken in deze blog, maar ook dat versie 7 al langer in de maak is, maar die wordt gebaseerd op de Ballerina-taal. Dit gaat natuurlijk een grote nieuwe versie worden, dus dat zullen we in een aparte blog bespreken tegen de tijd dat we dichterbij de GA release van v7 zijn. De planning voor de release van versie 7 is nu nog niet duidelijk.

EI 6.5.0

Voor mij als WSO2 trainer is het interessant om te zien waar de verschillen liggen tussen de huidige versie en de nieuwe versie, en om daarnaast de veranderingen en nieuwe functies te bekijken die het product krijgt.

Download developer Studio

Ik heb de previewversie van de Developer Studio gedownload: de 6.5.0-M5 (Milestone 5) release van de Enterprise Integrator en een afzonderlijk product dat WSO2 Micro Integrator heet. v1.0.0-M3 komt samen met v6.5.0 van de Enterprise Integrator beschikbaar.

Ik test dit in de op CentOS-gebaseerde Amazon omgeving die ingericht is voor onze trainingen.

Laten we eerst de grootte van deze bestanden bekijken. De nieuwe WSO2 Enterprise Integrator is qua grootte ongeveer hetzelfde als de 64x. Toen WSO2 Enterprise Integrator Analytics naar de stream processor verhuisde zijn we flink gezakt, deze heeft een kleinere bestandsgrootte omdat het op Carbon 5 (C5) draait in plaats van de Carbon 4.4 waar de andere producten nog steeds op draaien.

Het opstarten van WSO2 EI (plain vanilla) duurt ongeveer 40 seconden, heel vergelijkbaar met de vorige versie. Wat betreft de functionaliteit van de management UI zien we zo goed als geen verschillen.

Als je wilt weten wat er binnenin het product veranderd is, dan kun je de release notes bekijken. Het is altijd goed om de lijst met Known Issues van het product te bekijken. Daar kun je zien of er mogelijk problemen zijn die het uitrollen van het product zouden kunnen belemmeren. Vergeet niet dat deze lijst alleen de problemen die tot op heden ontdekt zijn bevat. Je kunt de lijst filteren om alleen de problemen voor een specifiek product of tooling versie te controleren

Micro Integrator

WSO2 Micro Integrator staat je toe om een architectuur te bouwen op basis van microservices met bestaande Synapse /AXIS2 configuraties. In andere woorden: de artefacten die je momenteel voor Enterprise Integrator aan het ontwikkelen bent, kunnen worden ingezet in een microservices omgeving zonder dat je er iets aan hoeft te veranderen. Hoe is dit mogelijk?

In feite kan het omdat de Micro Integrator een hele lichte versie van Enterprise Integrator is.

In vorige versies was de Micro Integrator een profiel van de Enterprise Integrator maar in v6.5.0 heeft WSO2 besloten om de Micro Integrator als losse download beschikbaar te maken. De Micro Integrator is gestript van alles dat onnodig is in een minimale setup en wat het opstarten van het systeem vertraagt.

Laten we de structuur van het product bekijken.

Het is een lang overzicht, maar het laat zien dat de structuur van de Micro Integrator voor een heel groot deel vergelijkbaar is met Enterprise Integrator. Hieronder staat een boomoverzicht waar we alleen de mappen tot 4 lagen diep laten zien. Zoals je kunt zien is er een componentenmap, een deploymentmap etc.

├── 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

Dus, laten we het uitproberen. Ik heb een hele simpele proxy aangemaakt, wat eigenlijk gewoon een pass-through proxy is naar de echo service, een onderdeel van de Enterprise Integrator installatie (dus eigenlijk een Axis2 service). Als je de WSDL van de service gebruikt, staat de echo-string je toe om een bericht als “Hello Micro Integrator” naar de service te sturen en wordt het zowaar naar je teruggestuurd.

Om het uit te proberen, ga ik een service ontwikkelen die de nieuwe versie van de Developer Studio gebruikt. Deze wordt samen met de WSO2 Enterprise Integrator v6.5.0 en de WSO2 Micro Integrator 1.0.0 uitgebracht.

Ik had natuurlijk ook een oudere versie van de Developer Studio kunnen gebruiken, maar in dit geval wilde ik zien wat er nieuw is aan de Developer Studio.

Developer studio

WSO2 Developer Studio Enterprise Integrator

Een triviale maar merkbare verandering in Developer Studio is het nieuwe logo en de nieuwe naamgeving. Maar laat je niet voor de gek houden, het is nog steeds gebaseerd op Eclipse. Als je dieper in Developer Studio duikt komt het herkenbare overzicht van Eclipse tevoorschijn in de project explorer, het developer studio dashboard en in alle andere onderdelen die we de afgelopen jaren hebben gebruikt.

Ik ga de ontwikkeling van een proxy niet bespreken, als je daar meer over wilt leren ben je meer dan welkom om een van onze trainingen over de Enterprise Integrator te volgen. Voor nu houd ik het bij een beetje van het nieuwe uiterlijk en de feel die het heeft. En natuurlijk de uitkomst van de proxy.

Tijdens de ontwikkeling van de proxy ga ik laten zien dat Micro Integrator precies dezelfde interne mechanismen heeft als de Enterprise Integrator.

De proxy die ik ga ontwikkelen zal MI_Proxy heten en opgeslagen worden in een project dat ik MI_Project noem. Het komt beschikbaar in HTTP en HTTPS en het zal het eindpunt URL http://localhost:8280/services/echo aanroepen. Ik ga een log mediator toevoegen aan zowel de InSequence als de OutSequence. Deze beide mediators zullen een bericht in de Console van Eclipse laten zien.

Als we aan de slag gaan met deze nieuwe versie van Developer Studio, zien we gelijk een paar veranderingen. Een aantal van deze veranderingen zitten puur in het uiterlijk, waaronder een set icoontjes voor de mediators, maar er zijn ook functionele verbeteringen. In de Properties tab van de mediators hebben we bijvoorbeeld een nieuwe interface die het configureren van eigenschappen hopelijk makkelijker gaat maken.

Proxy configuration WSO2 Enterprise Integrator 6.5.0

De bronweergave is er nog steeds en laat de vertrouwde XML-weergave van de proxyconfiguratie zien:

<?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>

Als we kijken naar de eigenschappen van de Log mediator, zien we dat we nu met de + en de X icoontjes, die in de rechterbovenhoek van de eigenschappenlijst staan, een extra manier hebben om nieuwe eigenschappen aan de log mediator toe te voegen.

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

Wanneer we een nieuwe service willen uitrollen, hebben we natuurlijk een werkende server nodig. Met de nieuwe Developer Studio kunnen dit doen door een nieuwe server te definiëren. Hier zijn nu ook de Enterprise Integrator 6.5.0 en de Micro Integrator als servertypes beschikbaar.

Define a new server WSO2 Enterprise Integrator 6.5.0

Ik ga twee servers definiëren: een Enterprise Integrator 6.5.0 en een Micro Integrator. Daarna regel ik de deployment van de artefacten op beide servers. Ik verwacht dat de Enterprise Integrator een ‘hot deploy’ uit gaat voeren met het car-bestand en het onmiddellijk beschikbaar maakt. De Micro Integrator heeft deze hot-deployment functie echter niet, dus het car-bestand zal naar naar de carbonapps map gekopieerd worden, maar wordt pas beschikbaar als je de Micro Integrator herstart.

Het opzetten van de Enterprise Integrator in Eclipse is appeltje eitje. De Micro Integrator server is helaas een iets grotere uitdaging. Deze tussentijdse release heeft een probleem in de definitie van de server, omdat het eigenlijk verwijst naar een oudere versie van een afhankelijk jar-bestand, namelijk de work.WSO2.carbon.bootstrap – 4.4.36.jar in plaats van de 4.4.38.jar die met Micro Integrator geleverd wordt. Bovendien is er ook een dubbele vermelding van ‘bin’ in de URL. Jammer genoeg kon ik de configuratie van Micro Integrator niet afmaken omdat de Developer Studio af en toe vreemd reageerde. Dat probleem heb ik gerapporteerd aan WSO2!

We gaan dus alleen verder met de Enterprise Integrator server. De proxy was opgeslagen en ik heb het toegevoegd aan de samengestelde applicatie die ik vervolgens toegevoegd heb aan de zojuist geconfigureerde Enterprise Integrator Server.

Een snelle check van de management URI van Enterprise Integrator laat zien dat de deployment van de proxy inderdaad gelukt is.

deployed services - wso2 enterpise integrator

Het aanroepen van de proxy via de bijbehorende SOAP url geeft het verwachte bericht terug vanuit de Echo Service.

Proxy Invocation - Echo service - WSO2 Enterprise Integrator 6.5.0

Op de console zien we de twee log-mediators die we hadden gedefinieerd in de In- en de OutSequences:

[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

Dus, met de Enterprise Integrator 6.5.0 werkt het als een trein.

[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

Nu is het tijd om met de Micro Integrator te beginnen. Omdat we de Micro Integrator niet als server aan Eclipse konden toevoegen, gaan we de command-line gebruiken voor de deployment en het opstarten van de service.

Micro Integrator doet niet aan hot deployments, dus we moeten het car-bestand naar de deployment-map kopiëren en dan de Micro Integrator opstarten. Dat doen we, net als bij de Enterprise Integrator, door naar de bin-map van het product te gaan en een ‘sh micro-integrator.sh’ uit te voeren in een terminalsessie. Terwijl we afwachten of de console ons enige informatie geeft over de deployment van de samengestelde applicatie of het car-bestand, zien we dat Micro Integrator in ongeveer 12 seconden succesvol opstart en de aanroepen kan verwerken. We moeten nog iets aan de Proxy aanpassen, omdat nu de Echo Service op de EI (poort 8280) aangeroepen wordt. Ik verander de poort van het eindpunt naar 8290 om toegang tot de echo service op de Micro Integrator te krijgen.

De deployment van het car-bestand is gelukt en de proxy is nu beschikbaar voor gebruik.

deployed car file. - wso2 enterprise integrator 6.5.0

We zien dat de Micro Integrator in vergelijking met de out-of-the-box Enterprise Integrator andere poorten gebruikt. De standaard HTTP listener poort is 8290 en de standaard HTTPS listener poort is 8253 voor de Micro Integrator, voor de oplettende lezer een verschuiving van 10 vergeleken met de poorten van de Enterprise Integrator.

Dus het simpelweg veranderen van het poortnummer in de aanroep-url van de proxy (en natuurlijk het eindpunt) die ik vroeger gebruikte, zou moeten volstaan om het op Micro Integrator te laten werken. Ik heb de veranderingen toegepast, de proxy aangeroepen en het resultaat is vrijwel hetzelfde. Zie onderstaande afbeelding.

Micro Integrator ports - wso2 enterprise integrator 6.5.0

Hoe compatibel is de Micro Integrator eigenlijk met de Enterprise Integrator die we tot nu toe hebben gebruikt? Dat is een hele goede vraag die niet te beantwoorden is in deze blog. Ik probeerde een hele simpele proxy uit en dat werkte.

Het bereiken van sommige admin services lukte echter niet. Tot op zekere hoogte is dit logisch, omdat de admin services door de management UI gebruikt worden om taken uit te voeren. Met andere woorden, als je een gebruiker toevoegt met de management UI, dan wordt op de achtergrond een admin service aangeroepen die de gebruiker toevoegt aan de user store. Aangezien de Micro Integrator zonder management UI geleverd wordt, zijn deze admin services ook niet nodig. Dit heeft weer te maken met de compatibiliteit van beide producten. Als je bijvoorbeeld een van de admin services gebruikt om te zien of de server draait, kun je dat niet doen met Micro Integrator. Er zouden nog veel meer incompatibiliteiten kunnen bestaan tussen deze Enterprise Integrator en Micro Integrator, maar om die te identificeren gaat te ver voor deze blog.

De mogelijkheid om de Micro Integrator te draaien in een Docker-omgeving is ook iets dat het verkennen waard is. Dit zal in een aparte blog gedaan worden, omdat deze al lang genoeg is.

Developer Studio

Als je Developer Studio/Eclipse zegt, is niet iedereen direct enthousiast, omdat er in het verleden eigenaardigheden waren die de veerkracht van de ontwikkelaar aan de tand voelden. Een voorbeeld: als er direct in de bronweergave van een sequence ontwikkeld werd, dan kon een aangemaakte configuratie-instantie niet opgeslagen worden. Bovendien was het onmogelijk om te wisselen van bron naar design met een dergelijke fout in de configuratie. In de volgende versie van developer studio is dit verbeterd en volgens de technici van WSO2 is er nu een validatielaag die je accuratere informatie kan geven over de fout die in je bron staat. Je kunt nu zelfs het artefact opslaan, ongeacht de fouten die erin zitten. In dit artikel kun je een uitleg vinden over hoe dit werkt.

Ik heb onlangs een stukje XML-code voor fault-mediation hergebruikt. Developer Studio pikte de error in de bronweergave echter niet op. Een attribuut van de fault-mediator die ik gebruikte had een fout in het code-element zitten. De waarde=”soap11Env:Sender” bestaat namelijk niet meer als een van de opties van de fault-mediator. Toen ik terugschakelde naar de design-view verving het mijn waarde met een willekeurige (maar bestaande) waarde voor de code (value=”soap11Env:VersionMismatch”). Een gemaakte fout in de Log mediator category werd echter wel opgepikt, waarbij een suggestie werd gegeven voor mogelijke waarden.

log mediator category dveloper studio WSO2 Enterprise Integrator 6.5.0

Aangezien dit niet de uiteindelijke versie is, kunnen er nog bugfixes doorgevoerd worden. Na verloop van tijd zullen er verbeteringen gemaakt worden en hopelijk zal ook deze fout verholpen worden. Ik dien het vandaag in bij de problemenlijst van Developer Studio, dus er is een goede kans dat het in de uiteindelijke versie opgelost is.

Er is meer te zeggen over de nieuwe Developer Studio (zoals de mogelijkheid om een Docker image van een Compsite Application te genereren), maar dat zou deze blog nog langer maken. Dus dat bewaren we ook voor een volgende.

Ik denk dat, al met al, het verbeteren van de user interface en ook de prestaties van Developer Studio iets is dat we allemaal toejuichen en waar we van kunnen profiteren. Ik kijk dus uit naar de nieuwe versie van de drie producten die ik hier besproken heb: de Micro Integrator 1.0.0-M3, de WSO2 Enterprise Integrator 6.5.0-M5 en de nieuwe versie van de Developer Studio.

ned
Sluiten