Kapow Mashup in de praktijk
Mei 2007 - In het Whitebook van december hebben we kennis gemaakt met Kapow en de Mashup Server, het product waarmee content integratie mogelijk gemaakt wordt. Deze keer gaan we dieper in op het product en de mogelijkheden en maken we een praktijkvoorbeeld.
In het vorige Whitebook hebben we voornamelijk gekeken naar OpenKapow. Nu zullen we gaan kijken naar de volledige versie van de Mashup Server Suite, met alle daaraan verbonden componenten.
De Mashup Server bestaat naast een uitgebreide hoeveelheid documentatie uit de volgende onderdelen:
- ModelMaker: In de ModelMaker wordt het datamodel voor een robot gedefinieerd. Hierin worden de input- en outputparameters voor de robot vastgelegd.
- RoboMaker: Het hart van de applicatieontwikkeling. Zoals de naam al zegt worden hier de robots gemaakt. Ook is binnen de RoboMaker een uitgebreide debugging tool aanwezig.
- RoboServer: Een soort applicatieserver waarbinnen robots beschikbaar worden gemaakt aan de buitenwereld.
- ControlCenter: De tool waarmee robots en RoboServers kunnen worden beheerd en gemonitored.
- RoboClient: Een tool om een robot die draait binnen een RoboServer te testen.
- RoboManager: Een uitgebreide tool vergelijkbaar met de RoboClient waarin groepen robots kunnen worden gemaakt en beheerd.
Van bijna alle onderdelen wordt gebruik gemaakt in deze demo. Stap voor stap zullen we de toepassing voor deze demo bekijken.
Introductie
Bij het aantreden van het kabinet Balkenende 4 is het initiatief Wietvrij.nl opgestart. Het is de bedoeling dat burgers daar adressen van coffeeshops kunnen doorgeven die binnen een straal van 500 meter van een school liggen. Hierbij zijn de initiatiefnemers afhankelijk van aanmeldingen door bezoekers van de website. Een proces dat met de Kapow Mashup Server geheel geautomatieseerd kan worden. Vandaar dat dit als onderwerp is gekozen voor de demo-applicatie.
De demo wordt een applicatie waarin uit de Gouden Gids adressen van coffeeshops en scholen opgehaald worden, op basis van een postcode. Deze adressen worden vervolgens in een webpagina gebruikt om een aanroep te doen naar Google Maps. Als eindresultaat is een kaart te zien met daarop coffeeshops en scholen met daaromheen een straal van 500 meter aangegeven. Op deze manier is in één oogopslag te zien of de twee objecten inderdaad te dicht bij elkaar liggen..
Het begin van een applicatie in Kapow is het ontwerp. Van te voren moet goed bedacht worden welke gegevens nodig zijn. Hierbij valt te denken gegevens die binnen de applicatie nodig zijn (input parameters) en gegevens die opgeslagen moeten worden in de database (output parameters). Om een dergelijk gegevensmodel te definiëren bevat de Kapow Mashup Server de zogenaamde ModelMaker.
ModelMaker
Een model bestaat uit een aantal objecten. Deze objecten kunnen invoer voor de robot zijn of uitvoer voor een database of een bestand. In de ModelMaker kunnen de objecten worden gedefinieerd en via een SQL-tool meteen op de database gezet worden.
Voor de demo maken we gebruik van een drietal objecten; 1 voor de invoer van een postcode en 2 voor de uitvoer van de gegevens over coffeeshops en scholen. De uitvoer willen we niet alleen gebruiken in de webapplicatie, maar ook opslaan in een OracleXE database.

Figuur 1: ModelMaker
De postcode wordt een simpel object van het type Short Text, aangezien we hier in elk geval de getallen van een postcode willen gebruiken, maar niet de mogelijkheid van letters willen uitsluiten.
De objecten voor school en coffeeshop zien er beide hetzelfde uit, aangezien we voor de webapplicatie van allebei dezelfde gegevens nodig hebben. Naam, adres, postcode en plaats maken we ook aan als Short Text. Verder is in figuur 1 te zien dat er een zestal licht grijze items zijn aangemaakt. Deze worden door de ModelMaker zelf toegevoegd aan het object en zijn bedoeld om gegevens in een databasetabel uniek te kunnen identificeren en ook om deze te kunnen koppelen aan een robot.
Nu kunnen we aan de hand van dit model de tabellen aanmaken. Dit gaat heel gemakkelijk met behulp van de ingebouwde SQL-tool.

Figuur 2: ModelMaker SQL generator
In het eerste scherm wordt de naam van de geregistreerde database geselecteerd en het type van deze database. Verder de naam van het object waarvoor de SQL code moet worden gegenereerd.
Hierna verschijnt de code om een tabel aan te maken. Deze code kan eventueel nog aangepast worden naar wens of opgeslagen worden als SQL-script om later bij de inproductiename van de applicatie te gebruiken. Met de knop Execute wordt het script meteen op de database uitgevoerd.
Voor deze robot zijn we nu klaar in de ModelMaker. We kunnen nu aan de daadwerkelijke robot zelf gaan bouwen.
RoboMaker
In het vorige Whitebook over Kapow is de RoboMaker al uitgebreid besproken. Die uitleg slaan we deze keer over; ik beperk me tot een aantal aandachtspunten die voor deze demo van belang zijn en ik zal iets vertellen over de RoboDebugger waarmee een robot getest kan worden.
De robot roept op de website van de Gouden Gids de secties voor scholen en coffeeshops aan. De postcode is invoer voor de robot. De resultaten die terugkomen worden uitgeplozen op naam, adres, postcode en woonplaats. Deze resultaten worden vervolgens opgeslagen in een Oracle database. De meeste gegevens kunnen direct worden overgenomen, alleen voor het verkrijgen van de plaatsnaam moet een aparte aktie worden uitgevoerd op de ingelezen tekst. Dit gebeurt met behulp van een Regular Expression die standaard ondersteund wordt door de RoboMaker.

Figuur 3: RoboMaker
Als alle stappen in de robot zijn doorlopen, worden met een Return Object step alle resultaten teruggegeven.
Om de robot te kunnen testen heeft Kapow een uitgebreide debugger ingebouwd. Met deze RoboDebugger wordt de hele cyclus van de robot doorlopen en worden de resultaten getoond.

Figuur 4: RoboDebugger resultaten
Het is in de RoboDebugger ook mogelijk om de resultaten meteen te verwerken tot een bestand, om de resultaten in de database op te slaan of zelfs om ze bijvoorbeeld te verzenden in een e-mail.
Als er een probleem met de robot geconstateert wordt, dan genereert de debugger een error report. Hierin is te zien welk probleem zich heeft voorgedaan en in welke step dit is gebeurd. Je kunt dan breakpoints toevoegen, zodat je voor een verdere analyse de status van een robot op elk gewenst moment kunt volgen.
Nu de ontwikkeling van de robot klaar is en we via de RoboDebugger hebben getest dat de robot de gewenste functionaliteit heeft, kunnen we gaan kijken naar de serveromgeving.
RoboServer
De RoboServer is een omgeving waarbinnen robots gedeployed kunnen worden. Applicaties kunnen dan via de server werken met de robot. Deze communicatie vindt plaats door middel van RQL, de Robot Query Language. Deze taal is net als SQL een uniforme interface voor communicatie met datasources. RQL zorgt ervoor dat robots data kunnen lezen en schrijven van en naar één of meerdere datasources.
RoboClient
Met de RoboClient kan gekeken worden of de robot goed werkt op de RoboServer. Hiertoe wordt een connectie gelegd met een bepaalde robot. Verder moeten de inputparameters gevuld worden. Na het runnen van de software worden RQL statements richting de RoboServer gestuurd. De response van de RoboServer wordt vervolgens getoond in het scherm.

Figuur 5: RoboClient RQL resultaat
Na het aanroepen van de demo robot zien we dat RoboServer 9 output objecten terug heeft gekregen. 6 voor WietvrijSchool en 3 voor WietvrijShop. Dit wil dus zeggen dat de robot volgens verwachting 9 resultaten heeft opgehaald van de Gouden Gids website.
Met de RoboManager kan in feite hetzelfde. Het verschil tussen de twee applicaties is dat de RoboManager groepen robots kan aanmaken en onderhouden. Dit is vooral van belang als er veel robots gebruikt worden.
ControlCenter
In het ControlCenter worden de RoboServers en hun robots beheerd. Het is mogelijk om automatisch te laten zoeken naar servers die al draaien of om handmatig een server te registreren. Vervolgens kunnen aan de RoboServers robots worden toegewezen. Vanuit het ControlCenter kunnen deze robots dan gestart en gestopt worden. Ook zijn diverse statistieken van de RoboServer beschikbaar, zoals het aantal draaiende robots, het aantal requests en geheugengebruik.
Webapplicatie
De laatste stap die nog nodig is om de robot toe te kunnen passen in een webapplicatie is het aanmaken van een JSP (Java Server Page). Deze pagina komt op een applicatieserver (in deze demo is Tomcat gebruikt), zodat hij bereikbaar is via het internet. In deze applicatieserver moet ook de library behorende bij de robot worden opgenomen. Op die manier kan de JSP pagina ‘praten’ met de RoboServer.
Een robotlibrary wordt aangemaakt in de RoboMaker door een druk op de knop. Hier vindt verder geen configuratie aan plaats. De libary bevat nu alle gegevens over de robot zelf, z’n parameters, het model, connecties naar databases en alle verdere relevante gegevens.
De robot kan nu gebruikt worden in de JSP pagina. Eerst moet in de pagina een aanroep worden gedaan naar de standaard bibliotheek (taglib) van Kapow. Daarna kunnen de parameters van de robot aangesproken worden als variabelen binnen de JSP code. Hiervan maken we gebruik om 2 tekstvelden te vullen met de resultaten van het uitvoeren van de robot.
Nu is de applicatie in feite klaar om getest te worden. Als de index.jsp pagina is gestart, verschijnt het scherm met de opgehaalde adressen voor scholen en coffeeshops in het postcodegebied 1811, Alkmaar.

Figuur 6: JSP index pagina
Met een druk op de knop wordt deze informatie verzonden naar Google Maps en getoond op een kaartje.

Figuur 7: Google Maps resultaat
En zo komen we erachter dat er in Alkmaar minstens 1 coffeeshop binnen een straal van 500 meter rond een school staat.
Oracle Webcenter
Onlangs heeft Oracle het pakket Webcenter uitgebracht. Deze portaltool maakt gebruik van portlets om informatie te tonen. Het andere Whitebook van deze maand is geheel aan Webcenter gewijd.
Het is zeer goed mogelijk om binnen Webcenter gebruik te maken van portlets die zijn gecreëerd in de Kapow Mashup Server. Webcenter vereist dat portlets voldoen aan de JSR-168 standaard en Kapow ondersteunt dit inderdaad. De benodigde code hiervoor kan gegeneerd worden vanuit het Tools menu in RoboMaker.
Meer informatie
Meer informatie is te vinden via:
- Website Kapow Technologies: www.kapowtech.com
- Whitebook Kapow Mashup Server: content integratie met een knal: december 2006
- Whitebook WebCenter Suite: Enterprise Mashup als werkomgeving: mei 2007
- Initiatief Wietvrij.nl: www.wietvrij.nl
- Website van Goudengids: www.goudengids.nl
- Website Google Maps: maps.google.com
Whitehorses en Kapow
De specialisten van Whitehorses hebben uitgebreid gekeken naar Kapow. De oplossingen van Kapow kunnen goed worden ingezet in de projecten voor onze klanten. Wij hebben daarom besloten een aantal consultants op te leiden en reseller te worden van de Kapow producten. Whitehorses bespreekt graag de mogelijkheden van Kapow.

Reacties
Nieuwe reactie inzenden