fb
WSO2 Enterprise Integrator 8 minuten

Werken met samples in de WSO2 Enterprise Integrator

Rob Blaauboer
Rob Blaauboer
Integration Consultant & WSO2 Trainer
Blog Sampling in WSO2
Scroll

Een oud gezegde luidt: “Je hoeft het wiel niet opnieuw uit te vinden.” Het houdt in dat het geen zin heeft om iets dat al bestaat zelf opnieuw te bedenken en te maken. Als je voor het eerst met de WSO2 Enterprise Integrator begint te werken is dit precies datgene wat je in gedachten zult moeten houden. De Enterprise integrator heeft tal van voorbeelden voor de functionaliteiten van de ESB en dat geldt net zo goed voor de andere producten die erbij in de bundel zitten, zoals de Business Processor.

Een overvloed aan Samples

In een eerdere blog van mijn hand schreef ik over Enterprise Integration Patterns en zagen we dat deze samengaan met voorbeelden voor de WSO2 Enterprise Integrator. 

Deze Enterprise Integration samples zijn, naar mijn mening, gestandaardiseerde user cases die eigenlijk in alle organisaties wel voorkomen. Content-based routing is zo’n voorbeeld en een dead letter channel net zo goed. Dit zijn heel herkenbare patronen voor iedereen die in de integratiebranche werkt. De samples die in de productbundels zitten zijn in sommige gevallen heel specifiek. De Enterprise Integration patronen zijn daarentegen juist veel algemener. Om wat extra diepte aan te brengen is er een speciaal gedeelte in de WSO2-documentatie die deze algemene patronen gebruikt en vertaalt naar specifieke WSO2-setups. 

Maar er is meer! De samples die de mogelijkheden van de ESB laten zien. Die voorbeelden zitten in het gedownloade zip-bestand en kun je vinden in de submap /samples.

WSO2 Enterprise Integrator samples 1

Het is goed om daarbij te benadrukken dat dit voorbeelden zijn en dat je ze kunt overnemen, aanpassen en naar eigen voorkeur bij kunt schaven. Zoals ik wel vaker zeg: “Er is altijd wel een andere manier om dezelfde dingen te doen.” En die uitspraak gaat zeker op voor de samples in deze blog.

WSO2 Micro Integrator of toch de Enterprise Integrator?

Ik ga je laten zien hoe je met deze voorbeelden kunt werken in de Enterprise Integrator. Waarom niet in de Micro Integrator? Hoewel de Micro Integrator dezelfde technologie gebruikt, werkt het toch net wat anders. De Micro Integrator is een uitgeklede versie van de Enterprise Integrator, waardoor er extra’s, zoals de Message Broker en de Business Process server, ontbreken. Daarnaast heeft het geen management UI zoals de Enterprise Integrators die heeft. Genoeg reden dus om het als een afzonderlijk product te beschouwen. Bovendien zitten de samples ook niet bij dat product. Mocht je de samples toch willen uitproberen op de Micro Integrator, download dan gewoon de Enterprise Integrator en bekijk de samples. 

Om de samples te gebruiken is er eerst een deployment naar de Enterprise Integrator nodig. Met eerdere versies van de Enterprise Integrator kon je het product simpelweg in een sample configuratie opstarten, maar de huidige versie (6.6.0) heeft die mogelijkheid helaas niet meer. 

Wat hebben we nodig?

Dus, wat hebben we nodig? Ik gebruik zelf Integration Studio om met deze voorbeelden te werken. Bij de samples zitten clients die je zult moeten opbouwen met Apache Ant. Dit is een tool om Java-applicaties, zoals Maven, mee te bouwen. Er zit ook een opzichzelfstaande Axis2Server in de samples. Apache Axis2™ is een Web Services / SOAP / WSDL engine die in de WSO2 Enterprise Integrator gebruikt wordt. Download Ant van de Apache website. Installeer het op je pc in een submap en zorg ervoor dat je de locatie aan het pad toevoegt, zodat je Ant overal vandaan kunt aanroepen.

WSO2 Enterprise Integrator samples 2

We richten ons op samples die we kunnen gebruiken met de Integration Studio en de WSO2 Enterprise Integrator.

Als je niet precies weet hoe je deze producten kunt installeren, lees onze eerdere blogs waarin de installatie van WSO2-producten besproken wordt.

Kortom heb je Java nodig, waarvan versies 8, 11 of OpenJDK en wellicht een nieuwere versie ondersteund worden. De volledige lijst vindt je hier: https://docs.wso2.com/display/compatibility/Tested+Operating+Systems+and+JDKs

Wat betreft het werken met de WSO2 Enterprise Integrator, kun je een zip-bestand downloaden van de GitHub repository. Houd wel even rekening met de licentie die je gebruikt, de versie die je downloadt van de WSO2-website is degene met de EULA-licentie en kan niet gebruikt worden voor productie zonder een andere licentie, maar kun je wel gebruiken om iets uit te proberen zoals we in deze blog doen.

WSO2 Enterprise Integrator samples 3

Een map op de desktop met de WSO2 Enterprise Integrator en Integration Studio 8. Open de Integration Studio map en klik op het icoontje van de Integration Studio Applicatie. 

WSO2 Enterprise Integrator samples 4

Als dit de eerste keer is dat je met dit product werkt, kun je het beste voor een default workspace kiezen of een eigen workspace maken.

WSO2 Enterprise Integrator samples 5

Na het opstarten klik je op het icoontje dat lijkt op een aantal druiven.

WSO2 Enterprise Integrator samples 6

Nu schakelt het programma over naar de modus waarin je met de ESB Graphical Mode werkt.

WSO2 Enterprise Integrator samples 7

Eerst voegen we een WSO2 Enterprise Integrator 6.6.0 Server toe. Klik op ‘Window’ in het menu. 

WSO2 Enterprise Integrator samples 8

Dan op ‘Show View’ en op ‘Other’.

WSO2 Enterprise Integrator samples 9

Klik op ‘Open’ en je krijgt de Server Tab te zien. Sleep de Server tab naar het scherm onder Getting Started.

WSO2 Enterprise Integrator samples 10

Klik met de rechtermuisknop op een lege plek in de Server en dan ‘Select New Server’.

WSO2 Enterprise Integrator samples 11

Kies voor 6.6.0.

WSO2 Enterprise Integrator samples 12

En klik op ‘Next’. Verwijs naar de locatie waar de WSO2 Enterprise Integrator geïnstalleerd is, in mijn geval:

WSO2 Enterprise Integrator samples 13

Klik op ‘Finish’. De server is nu toegevoegd.

Creating a project

Het voorbeeld dat ik ga gebruiken is Sample 150: Introduction to Proxy Services. De code hiervoor is simpel:

<definitions xmlns="http://ws.apache.org/ns/synapse">
    <proxy name="StockQuoteProxy">
        <target>
            <endpoint>
                <address uri="http://localhost:9000/services/SimpleStockQuoteService"/>
            </endpoint>
            <outSequence>
                <send/>
            </outSequence>
        </target>
        <publishWSDL uri="file:samples/service-bus/resources/proxy/sample_proxy_1.wsdl"/>
    </proxy>
</definitions>

Om dit artifact te maken, ga ik een proxy in een integratieproject maken zoals degene die hierboven gedefinieerd is en doe de deployment naar de WSO2 Enterprise Integrator. Het ‘Definitions Overview’ is genomen van de ESB Source view, waarin de hele deployment op het systeem getoond wordt. Dit is echter in read-only, dus we kunnen hier de setup niet veranderen, behalve door middel van deployment van artifacts via een CAR-bestand.

Creëer een Integration Project zoals hieronder en klik op ‘Finish’. 

WSO2 Enterprise Integrator samples 14

Creëer een nieuwe proxy met een custom proxy template. 

WSO2 Enterprise Integrator samples 15

Gebruik de naam StockQuoteProxy en klik op ‘Finish’.

WSO2 Enterprise Integrator samples 16

Schakel om naar de Source Code view en kopieer de <target> definitie naar view. Schakel weer naar de Graphical View en terug naar de Source om het volgende scherm te krijgen.

WSO2 Enterprise Integrator samples 17

Druk op CTRL + S om op te slaan. Ga nu naar de CompositeExporter en kies daar voor de Proxy die je zojuist hebt gemaakt. Gebruik opnieuw CTRL + S om op te slaan.

WSO2 Enterprise Integrator samples 18
WSO2 Enterprise Integrator samples 19

Als het is opgestart, voeg je het CAR-bestand toe aan de server. 

WSO2 Enterprise Integrator samples 20

Nu is alles deployed. Je kunt in de log-bestanden terugzien dat dit waar is.

[2021-06-25 12:37:03,917]  INFO {org.wso2.carbon.application.deployer.internal.ApplicationManager} - Deploying Carbon Application : SampleProjectCompositeExporter_1.0.0-SNAPSHOT.car...
[2021-06-25 12:37:05,242]  INFO {org.wso2.carbon.mediation.dependency.mgt.DependencyTracker} - Proxy service : StockQuoteProxy was added to the Synapse configuration successfully - [ Deployed From Artifact Container: SampleProjectCompositeExporter ] 
[2021-06-25 12:37:05,242]  INFO {org.apache.synapse.core.axis2.ProxyService} - Building Axis service for Proxy service : StockQuoteProxy
[2021-06-25 12:37:05,267]  INFO {org.apache.synapse.core.axis2.ProxyService} - Adding service StockQuoteProxy to the Axis2 configuration
[2021-06-25 12:37:05,271]  INFO {org.wso2.carbon.core.deployment.DeploymentInterceptor} - Deploying Axis2 service: StockQuoteProxy {super-tenant}
[2021-06-25 12:37:05,271]  INFO {org.apache.synapse.core.axis2.ProxyService} - Successfully created the Axis2 service for Proxy service : StockQuoteProxy
[2021-06-25 12:37:05,271]  INFO {org.apache.synapse.deployers.ProxyServiceDeployer} - ProxyService named 'StockQuoteProxy' has been deployed from file : C:\Users\rob\Desktop\samplesEI\wso2ei-6.6.0\tmp\carbonapps\-1234\1624617423923SampleProjectCompositeExporter_1.0.0-SNAPSHOT.car\StockQuoteProxy_1.0.0\StockQuoteProxy-1.0.0.xml
[2021-06-25 12:37:05,271]  INFO {org.wso2.carbon.application.deployer.internal.ApplicationManager} - Successfully Deployed Carbon Application : SampleProjectCompositeExporter_1.0.0-SNAPSHOT {super-tenant}

De service bouwen

Blader naar de map samples\axis2Server\src\SimpleStockQuoteService en bouw de service door gebruikt te maken van command ant.

WSO2 Enterprise Integrator samples 21

De (axis2) service, een .aar-bestand, is nu opgeslagen in de repository submap. Als je de axis2 server start, wordt het .aar-bestand toegepast. Probeer dit met het commando axis2server.bat (of .sh voor Linux)

WSO2 Enterprise Integrator samples 22

De service uitvoeren

Het is nu tijd om de service uit te voeren. Ik ga SoapUI als client gebruiken, in plaats van de ant stockquote client, omdat ik weet welk bericht we kunnen gaan sturen en omdat ik het al geïnstalleerd heb staan.

De ant client heeft een aantal aanpassingen nodig om te kunnen compileren en laat ook nogal veel debug statements zien waar ik niet zoveel aan heb. Dus SoapUI is een betere optie.

WSO2 Enterprise Integrator samples 23

Neem de URL van de WSDL uit de Management UI van de Enterprise Integrator door op het icoontje te klikken en dat adres naar de browser te kopiëren. Als er iets anders getoond wordt dan localhost, kun je dat gebruiken of vervangen. Dit is natuurlijk het geval als je op localhost draait, dus op je lokale machine met een Out Of The Box WSO2 Enterprise Integrator (zonder wijzigingen aan de config van de hostname).

WSO2 Enterprise Integrator samples 24

In SoapUI maak je een nieuw Soap project aan en dan kopieer je de WSDL in het Initial WSDL veld. Klik op OK.

WSO2 Enterprise Integrator samples 25

Selecteer getQuote in de opties.

WSO2 Enterprise Integrator samples 26

Vul IBM in bij het ? en druk op de groene driehoek. Je ziet de respons terugkomen.

WSO2 Enterprise Integrator samples 27

Conclusie

De samples in de WSO2 Enterprise Integrator helpen bij het begrijpen van het concept van de producten, maar deployment en testen kost toch nog flink wat werk. In een volgende blog ga ik kijken naar de samples die onderdeel zijn van de Integration Studio, één van de ontwikkelingsomgevingen die gebruikt kan worden in combinatie met de WSO2 Enterprise Integrator.

Meer leren over de WSO2 Enterprise Integrator 

Ik hoop dat je wat gehad hebt aan het voorbeeld in deze blog. Als je geïnteresseerd bent en meer zou willen leren over de WSO2 Enterprise Integrator, neem dan een kijkje bij de WSO2 trainingen die we bieden. Vanaf oktober 2021 starten we met onze live trainingen in Nederland en de Verenigde Staten en bedrijfstrainingen bij jou op kantoor of een trainingsfaciliteit in de buurt voor groepen vanuit één organisatie.