.Net Services in TIBCO AMX

 
22 november 2012

In deze blog ga ik in op het deployen van een .Net-service in TIBCO-AMX Administrator met behulp van TIBCO software. TIBCO ActiveMatrix (AMX) is het paradepaardje van TIBCO. AMX is een platform voor onder andere BPM (Business Process Management) en SOA (Service Oriented Architecture) applicaties.

Enkele dagen terug kwam een collega bij ons op de academy langs met het verzoek om .Net-services te deployen in een TIBCO-jasje. Een bank is geinteresseerd in TIBCO in combinatie met een .NET node. Het doel was uiteindelijk om aan de bank te laten zien dat TIBCO de goede keuze is aan de hand van een demo. Samen ben met een service ontwikkelaar ben ik aan de slag gegaan. Ik kreeg 2 VM’s, een paar TIBCO installatiepakketten. De service ontwikkelaar zou met Visual Studio een simpele .Net kredietservice bouwen en mij een dll-file leveren.

Simpel gezegd ben ik als volgt te werk gegaan:

  • Je bouwt een service met TIBCO Designer (of in dit geval Visual Studio)

  • Je zet daar een AMX-container omheen in TIBCO Business Studio

  • Je deployed je applicatie naar AMX Administrator

  • Je test je applicatie door een soapmessage te sturen met SoapUI

Er zijn verschillende ‘AMX-containers’ te vinden binnen TIBCO . Zo heb je containers voor TIBCO BusinessWorks, Java, C++ en gelukkig ook voor .Net/WCF/C#. Sommige containers worden automatisch mee geinstalleerd, anderen moet je uit aparte pakketten zien te halen en in dit geval het pakket: Tibco ActiveMatrix Implementation Type for Microsoft CLR. Dit pakket moet je op zowel Designtime als Runtime installeren, net als .Net Framework. Voordat je dit pakket installeert, moet er al het nodige aan Tibco Software geinstalleerd zijn, waaronder Tibco Service Grid.

Je installeert het pakket op Designtime om ervoor te zorgen dat je in Tibco Business Studio de juiste container kunt aanmaken om daar een .Net-service aan te kunnen hangen. Zie onderstaand screenshot voor de CLR IT container waarin je in Business Studio de .Net-service implementeert.

Screenshot-1

Op de Runtime heb je dit pakket nodig om ervoor te zorgen dat de Node waarop je de applicatie deployed, de juiste features heeft om de applicatie te implementeren binnen AMX. Een Node binnen AMX is simpel gezegd een JVM waarop je applicaties kunt draaien. Zie Description in onderstaand screenshot.

Screenshot

De installatie was uiteindelijk gelukt. De volgende stap is natuurlijk een voorbeeld project. TIBCO geeft bij installatie vaak een paar HelloWorld samples met instructies mee, en gelukkig ook met deze installatie. Volgens de instructies was het heel simpel:

  • Implementeer in Business Studio de HelloWorld .Net-service

  • Hang een WSDL (voor de interface) eraan

  • Maak een Soapbinding aan voor het transport

  • Deployen naar AMX en testen met SoapUI

Overigens heeft Business Studio nog 2 dll-bestanden nodig om de CLR te herkennen. Deze worden gewoon door TIBCO geleverd.

Nu staat er in de instructies van TIBCO wel vaker dat het simpel gaat, maar de praktijk heeft uitgewezen dat zo’n proces nog wel wat frustrerende ochtendjes kan opleveren, maar vooruit.. je gaat erin mee. Je moet eerst het een en ander importeren in Business Studio, waaronder een WSDL. Tot nu toe herkenbaar, want de WSDL is nodig voor de interface. Zou het dan toch zo simpel gaan?

“Importeer Helloworld.exe en HelloWorld.exe.config”.Mijn collega  kijkt raar op: “.exe? En dll dan?” Maar vooruit, tot nu toe nog geen errors. Normaal gesproken popt er hier en daar wel 1 op, maar alles gaat nog goed. Importeren gaat goed, het implementeren in een CLR-container gaat goed, de WSDL wordt gelezen en herkend, de Soapbinding zit eraan vast, deployen gaat goed en bij het testen met SoapUI: “Hello Niels”, binnen 5 minuten. Ok, het werkt dus prima.

Ik blij dus op naar de volgende stap: de kredietservice waarin je een lening van een persoon of bedrijf kunt opslaan of opvragen. Mijn collega tovert wat met Visual Studio en ik mag het gaan proberen met de TestApp.exe. Hij gebruikte overigens de HelloWorld.exe.config als template voor de TestApp.exe.config. Het aanpassen van de config, was slechts een kwestie van naamgeving en verwijzen naar de juiste bindings, services en de 2 dll-bestanden die we moesten importeren in Studio. We doorlopen samen hetzelfde proces en binnen 5 minuten is het werkend. Blijheid alom.

De laatste uitdaging is om het via een dll-bestand te doen. Mijn collega merkt terecht op dat een dll-bestand logischer is, omdat dan nog niet alles vast ligt zoals met een exe-bestand. Hoe hij het verder doet, weet ik niet, maar een paar minuten later krijg ik van Jan-Willem een dll-bestand van de kredietservice. We hoeven niks meer te veranderen aan de config en het deployen gaat opnieuw helemaal goed. Een lichte vorm van euforie wordt overschaduwd door twijfel. Waar is het addertje onder het gras? Zo soepel hebben wij nog nooit met Business Studio gewerkt..

Maar er is geen addertje. TIBCO heeft een goede manier gevonden om .Net services te deployen naar AMX. Het enige wat je dus blijkbaar nodig hebt, zijn de juiste installatiepakketten, een wsdl en dll die de service beschrijven en iemand die de dll voor je maakt, naast wat basiskennis van TIBCO Business Studio en AMX. Dit is natuurlijk wel een redelijk simpele service en ik wil natuurlijk straks ook de moeilijkere services kunnen implementeren, maar het begin is er in elk geval. Nu eerst even een klein feestje vieren, want nu het werkt, is dit stiekem toch best gaaf.


Werken met ?
Kijk dan bij onze mogelijkheden voor zowel starters als ervaren engineers.


Categorieën: Development