Follow Us on Twitter

Kapow Mashup Server: content integratie met een knal

December 2006 – Integratie is mogelijk op verschillende lagen. Er wordt gesproken over integratie op het niveau van data, bedrijfsproces en presentatie. Bij data-integratie denk je dan aan warehousing of Enterprise Application Integration (EAI). Als je praat over het procesniveau komt BPM/BPEL in beeld. Als het gaat over integratie op presentatie niveau gaat het vaak over portals.

Maar hoe werkt dat dan? Hoe kun je snel en goed verschillende content integreren, zonder uitgebreid programmeren? Hoe ontwikkel je een web toepassing op basis van diverse bestaande systemen?

Kapow Technologies biedt hiervoor een oplossing met de Kapow Mashup Server. De term “mashup” betekent volgens Wikipedia:

  • a musical genre of songs that consist entirely of parts of other songs;
  • a website or web application that combines content from more than one source;
  • a video that is edited from more than one source to appear as one.

Mashup staat dus voor het maken van iets nieuws op basis van bestaande componenten. Binnen de muziekzender MTV wordt het bijvoorbeeld gebruikt voor nieuwe nummers die zijn gemaakt van twee bekende en bestaande nummers.

In deze analogie kan je dus zeggen dat mashup websites of web applicaties de inhoud integreren van verschillende bestaande bronnen. Het Deens/Amerikaanse bedrijf Kapow heeft daartoe de Mashup Server Robosuite ontwikkeld. Kapow biedt met dit product een mogelijkheid om delen van bestaande webapplicaties te hergebruiken in een nieuwe webapplicatie.

Dit biedt veel mogelijkheden voor zowel internet als intranet applicaties. Zonder programmeren kan bestaande content worden toegepast in een nieuwe applicatie.

Whitehorses heeft de kans gehad om uitgebreid kennis te maken met de Kapow Mashup Server. Wij verwachten dat de oplossingen van Kapow goed kunnen worden ingezet in de projecten bij onze klanten. Whitehorses heeft daarom besloten om reseller te worden van de Kapow producten en een aantal consultants op te leiden in de Kapow technologie.

In dit Whitebook bespreken we enkele van de mogelijkheden van het product en laten we aan de hand van een simpel voorbeeld de gebruiksvriendelijkheid van het product zien.

Mashup Server

De Kapow Mashup Server is een complete suite van tools om het integreren van zowel applicaties als informatie mogelijk te maken. Kapow plaatst deze technologie binnen het Web 2.0 concept. Dit concept gaat uit van een aantal principes:

  • het web is een platform;
  • het gaat om het samenbrengen van collectieve intelligentie;
  • de user is in control;
  • database management is core business;
  • software is een service en niet langer een product;
  • rich user experiences zetten de toon.

Bekende voorbeelden van Web 2.0 sites zijn Wikipedia, Google, YouTube en Flickr. Ook termen als blogging (weblogs) en web services behoren in dit concept.

Het Mashup Server platform wordt globaal gezien ingezet voor 3 soorten toepassingen:

  • (real-time) integreren van (web) content ten behoeve van mashup Internet toepassingen of Portals;
  • verzamelen van grote hoeveelheden (web) content voor opslag in een database of CMS;
  • migreren van (meerdere) websites of CMS’en naar een nieuw CMS.

Kapow werkt samen met de belangrijkste Portal en CMS leveranciers, zoals IBM, BEA en Oracle. Kapow is door Oracle genoemd als Featured Partner in een Developer Services Newsletter van begin 2006.

Niet alleen voor toepassingen op het internet is de Mashup Server geschikt. Het is ook even goed in te zetten in een intranetomgeving. Zolang er maar een web interface beschikbaar is.
De Mashup Server bestaat grofweg uit 3 modules met elk een specifieke toepassing: Clipping, Transactions en Data Collections. Dit is in figuur 1 schematisch weergegeven.

Figuur 1: Mashup Server modules
Figuur 1: Mashup Server modules

De verschillende onderdelen van de Mashup Server worden hierna verder beschreven.  

Clipping module

De Clipping module is bedoeld om op de presentatielaag integratie uit te voeren zoals te zien is in onderstaand figuur.

Figuur 2 Clipping module
Figuur 2 Clipping module

De Clipping module is een visuele tool waarmee eenvoudige delen van bestaande functionaliteit kan worden geselecteerd voor hergebruik. Hiermee is het bijvoorbeeld mogelijk de laatste nieuwsberichten van de website van het NRC Handelsblad op te halen of de actuele beursberichten van de site van Euronext. Het resultaat van een web clip kan daarna worden gebruikt in een eigen website of bijvoorbeeld als Portlet worden geïntegreerd in een Oracle Portal applicatie.

Een deel van de functionaliteit van de Clipping module kan ook worden gerealiseerd met de standaard Omniportlet van Oracle zelf. Kapow is echter erg gebruiksvriendelijk en biedt veel meer functionaliteit met name voor meer complexe configuraties.

Transaction module

De Transactions module richt zich op de logica van webapplicaties. Hiermee is het mogelijk om data en business logica van webservices te integreren. De Mashup Server doet dit door middel van een aantal API’s zoals REST (REpresentational State Transfer), Java, JSP tag libraries, RSS, ATOM, en .NET.

Figuur 3: Transaction module
Figuur 3: Transaction module

Door het combineren van doorzoekbare business logica met REST en SOAP services in nieuwe componenten, kunnen snelle resultaten geboekt worden. Een voorbeeldtoepassing is een Google map service gecombineerd met een prijsvergelijkingsservice. Daarmee kan een applicatie gemaakt worden om de locatie van het goedkoopste hotel in een bepaalde regio.

De Transaction module kan ook goed samenwerken met de Oracle SOA Suite. Bijvoorbeeld om een legacy applicatie die is ontsloten met behulp van Kapow in zijn geheel in te bedden in een SOA/ESB applicatie.

Data collections module

De derde module is de datamodule. Zoals de naam al aangeeft, kan met deze module een groot aantal verschillende databronnen worden samengevoegd tot een nieuwe databron. Dit gebeurt dan meestal periodiek op de achtergrond. In Figuur 4 is een aantal voorbeelden te zien. Diverse informatiebronnen, zoals HTML-pagina’s, databases en spreadsheets kunnen zo worden gebruikt om een nieuw informatiesysteem te voeden.

Figuur 4: Data module
Figuur 4: Data module

Een aantal toepassingen van de functionaliteit:

  • Content migratie, bijvoorbeeld voor het samenvoegen van meerdere oude intranet applicaties (denk hierbij aan bijvoorbeeld adressenbestanden of CMS systemen) tot 1 nieuw systeem;
  • Nieuws verzamelen, bijv. ten behoeve een webapplicatie met daarin nieuwsberichten en andere informatie van meerdere websites;
  • Marktplaatsen. Het ophalen van productinformatie van een aantal websites om zo een prijsvergelijking te kunnen maken.

Voor deze integratie geldt dat het mogelijk is om een eenmalige actie uit te voeren maar ook om een continu beschikbaar integratie platform te maken.

Toepassingen

De toepassingen voor de Mashup Server zijn legio. Doordat bestaande functionaliteit en data opnieuw kan worden gebruikt in nieuwe applicaties, is het mogelijk om snel iets werkends te presenteren. Zo is het bijvoorbeeld mogelijk om tijdens een meeting over een nieuwe applicatie al een prototype in elkaar te zetten.

Maar ook in de praktijk helpt die snelheid en het voordeel van herbruikbaarheid enorm. Een applicatie die verschillende data presenteert kan in een paar klikken worden gebruikt als basis voor een nieuwe applicatie die geschikt is voor bijvoorbeeld een mobiel apparaat.

Omdat Kapow niet beperkt is tot één bepaalde technologie, zijn er onnoemelijk veel combinaties mogelijk. Zo kan de informatie van duizenden webpagina’s worden samengevoegd tot 1 nieuw stuk informatie in de vorm van bijvoorbeeld een webpagina, een spreadsheet, een database of een XML-bestand.

In de praktijk

Er zijn in het buitenland al vele grote bedrijven geweest die gebruik hebben gemaakt van de mogelijkheden van de Kapow Mashup Server. Enkele voorbeelden zijn AT&T, Lycos, Bank of America, NAVO en het Amerikaanse leger. Ook Nederland heeft al een aantal grote implementaties gezien.

Een goed praktijkvoorbeeld voor de kracht van Kapow is de case bij Amadeus. Amadeus is een boekingssysteem voor diverse grote luchtvaartmaatschappijen. Dit systeem bestaat inmiddels al 20 jaar en maakte tot voor kort alleen gebruik van de gebruikelijke distributiekanalen. Goedkope vliegtuigmaatschappijen, zoals bijvoorbeeld RyanAir en EasyJet, hebben hun eigen websites en zijn daardoor niet via het Amadeus systeem te boeken. Het Amadeus systeem is door haar leeftijd moeilijk aan te passen om ook deze “lowcost” maatschappijen toe te voegen.

Om dit toch voor elkaar te krijgen, heeft Amadeus met behulp van de Mashup Server een oplossing gebouwd die gebruik maakt van de bestaande websites van goedkope operators. Deze websites zijn geïntegreerd in een schil om de applicatie van Amadeus. Hierdoor kunnen realtime boekingsgegevens van de lowcost airlines worden gecombineerd met de gegevens van de grote maatschappijen, alsof ze in hetzelfde systeem zitten. Bovendien kunnen de boekingen ook op dezelfde manier geplaatst worden. De Amadeus applicatie hoefde hiervoor niet te worden aangepast.

Een voorbeeld: Googlebot

Om een voorbeeld te geven van de kracht en snelheid van Kapow’s Mashup Server, bouw ik een REST-service (zie Whitebook over REST uit maart 2005) op basis van de Google website. Deze service is daarna in te bouwen in bijvoorbeeld een Portal of een eigen website. Deze Googlebot voert een ingegeven zoekopdracht uit en geeft alleen het eerste door Google gevonden resultaat terug in de vorm van een titel en een hyperlink naar de website.
De tool die hiervoor gebruikt gaat worden is RoboMaker. In deze software kunnen mashups worden gemaakt die door Kapow Robots genoemd worden.

Om te beginnen kiezen we in RoboMaker voor het maken van een New Robot. Hierna opent automatisch een wizard waarin voor een drietal opties gekozen kan worden. Voor het voorbeeld kiezen we een REST web service.

In het eerste scherm vullen we het URL in van de website die we gaan gebruiken.

Figuur 5: Kiezen van de URL
Figuur 5: Kiezen van de URL

Hierna kunnen in de volgende wizardschermen de input- en output-variabelen worden gedefiniëerd.

Om onze Robot aan te kunnen sturen vullen we een input-variabele searchText in. Om het resultaat van de zoekopdracht ergens in weer te kunnen geven, hebben we ook output-variabelen nodig. In dit voorbeeld geven we die de naam title en url.

Automatisch opent nu de RoboMaker met de gekozen pagina uit de eerste stap ingeladen om verder verwerkt te worden.

Figuur 6: RoboMaker hoofdscherm
Figuur 6: RoboMaker hoofdscherm

In dit scherm kunnen we de gehele Googlebot nu verder afmaken.

Wat opvalt in het scherm zijn de 4 onderdelen waaruit het scherm is opgebouwd. Bovenin zien we de Steps waaruit de Robot is opgebouwd. Op dit moment alleen nog de stappen Load Page en Return Response. Maar daar komen er later nog een aantal tussen.

Links onder dit scherm zien we het resultaat van de Step voor de geselecteerde Step. Dus in dit geval zien we het resultaat van Load Page als de stap Return Response is geselecteerd.
Rechts zien we boven elkaar het scherm waarin de verschillende akties op het resultaat zijn aan te passen. Daaronder het scherm met de input- en outputobjecten die we eerder hebben gedefinieerd.

Het gaat voor de Whitebook te ver om de functies van RoboMaker tot in detail te beschrijven, dus ik zal me beperken tot de functies die we tegenkomen in ons voorbeeld.
De volgende stap is om nu de waarde van onze inputvariabele searchText toe te wijzen aan het invoerveld van Google. Dit gaat heel gemakkelijk door rechts te klikken op het invoerveld en via het menu te kiezen voor de juiste waarde.

Figuur 7: Toevoegen searchText aan invoerveld
Figuur 7: Toewijzen searchText aan invoerveld

Om de zoekvraag automatisch uit te laten voeren, kunnen we de RoboMaker een click op de zoekbutton laten simuleren. Ook dit gaat via het menu onder de rechtermuisknop.
Het hoofdscherm zal nu automatisch doorschakelen naar de uitkomst van de druk op de knop; een lijst met zoekresultaten. Aangezien we slechts het eerste resultaat willen gaan tonen in de Googlebot, kunnen we nu de Output-variabelen gaan vullen.

Wederom gebeurt dit met het menu onder de rechtermuisknop. Als eerste vullen we de title variabele met de titel van het eerste zoekresultaat.

Figuur 8: Vullen van title
Figuur 8: Vullen van title

Zoals te zien is gekozen voor de optie Extract Text. Maar omdat deze titel behalve tekst ook een hyperlink is, kunnen we ook kiezen voor Extract URL. Deze mogelijkheid benutten we om de variabele url te vullen.

In feite zijn we nu klaar met onze Googlebot. Robomaker laat nu ook in het subvenster rechtsonder zien dat de Output-variabelen gevuld zijn met de gewenste waarden.

Figuur 9: Het resultaat
Figuur 9: Het resultaat

De Googlebot is nu klaar om gebruikt te worden op de plaats die de gebruiker wenst. Bijvoorbeeld als Portlet in een Portal omgeving.

Community

Om de ontwikkeling van Robots in een stroomversnelling te brengen, heeft Kapow besloten om de nieuwste versie van RoboMaker gratis aan te bieden via de community OpenKapow. Op deze website kunnen ontwikkelaars hun Robots publiceren en ook die van anderen bekijken en gebruiken. Zo geeft Kapow zelf ook een voorbeeld van Web 2.0.

Op deze manier verwacht Kapow ontwikkelaars te interesseren in de Mashup Server en daarmee veel nieuwe ideeën te leren kennen.

Zoals gezegd kunnen ontwikkelaars hun zelfgemaakte Robots publiceren via OpenKapow. Zo ook onze net gebouwde REST-service. Via een druk op de Publish knop in RoboMaker staat de Googlebot online en kan deze worden getest. Dit ziet er dan als volgt uit:

Figuur 10: Googlebot online
Figuur 10: Googlebot online

Via een klik op de knop Invoke Service kan de zoekvraag worden uitgevoerd. Het resultaat kan naar eigen wens worden weergegeven als csv, jSON, XML of HTML. Het resultaat in HTML ziet er zo uit:

Figuur 11: Resultaat Googlebot
Figuur 11: Resultaat Googlebot

De layout om het zoekvenster heen is door OpenKapow toegevoegd. Op die manier wordt het mogelijk gemaakt om een Robot online te zetten en meteen te testen. Bovendien is er een tabblad toegevoegd waarin de vorm van het zoekresultaat kan worden gekozen. Via mijn site op OpenKapow kan deze Robot door iedereen worden bekeken.

Het gebruiken van OpenKapow is niet noodzakelijk voor het implementeren van een Robot. Uiteraard is het ook mogelijk om de Robot in een eigen webapplicatie in te bouwen. Het voorbeeld van de Googlebot kan gebruikt worden om een zoekfunctie in te bouwen in een inter- of intranet site. De functionaliteit zou dan ook uitgebreid kunnen worden met het weergeven van meerdere resultaten, of als mashup met een fotosite om meteen een beeld te koppelen aan het zoekresultaat.

Conclusie

Met de Mashup Server heeft Kapow een innovatieve vorm van integratie ontwikkeld. Met de mashups staat Kapow midden in de Web 2.0 ontwikkeling. Het maakt uitstekend gebruik van de huidige trends in het Web om interactieve Portals te bouwen, gevuld met informatie die per gebruiker verschillend is.

De Kapow Mashup Server is een erg krachtig gereedschap om complexe maar ook minder complexe integratie-oplossingen te bouwen. Het werkt snel en intuïtief. Ontwikkelaars kunnen inspelen op de wensen van de business en met minimale inspanning een werkende applicatie presenteren.

Al met al is de Mashup Server een belangrijke toevoeging aan het integratie-spectrum. Kapow heeft ingespeeld op een nog onontgonnen gebied binnen de integratie en daar een erg goed product in geplaatst.

Referenties

 

Waardering:
 

Reacties

Nieuwe reactie inzenden

De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.

Meer informatie over formaatmogelijkheden

CAPTCHA
Deze vraag is om te testen of u een persoon bent en om spam te voorkomen
Image CAPTCHA
Enter the characters shown in the image.