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.
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.
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.
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.
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.
Na het opstarten klik je op het icoontje dat lijkt op een aantal druiven.
Nu schakelt het programma over naar de modus waarin je met de ESB Graphical Mode werkt.
Eerst voegen we een WSO2 Enterprise Integrator 6.6.0 Server toe. Klik op ‘Window’ in het menu.
Dan op ‘Show View’ en op ‘Other’.
Klik op ‘Open’ en je krijgt de Server Tab te zien. Sleep de Server tab naar het scherm onder Getting Started.
Klik met de rechtermuisknop op een lege plek in de Server en dan ‘Select New Server’.
Kies voor 6.6.0.
En klik op ‘Next’. Verwijs naar de locatie waar de WSO2 Enterprise Integrator geïnstalleerd is, in mijn geval:
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’.
Creëer een nieuwe proxy met een custom proxy template.
Gebruik de naam StockQuoteProxy en klik op ‘Finish’.
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.
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.
Als het is opgestart, voeg je het CAR-bestand toe aan de server.
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.
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)
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.
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).
In SoapUI maak je een nieuw Soap project aan en dan kopieer je de WSDL in het Initial WSDL veld. Klik op OK.
Selecteer getQuote in de opties.
Vul IBM in bij het ? en druk op de groene driehoek. Je ziet de respons terugkomen.
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.