Technisch vooronderzoek SocialMediaCaster Connector
Auteur: Keimpe de Heer en Edwin van Ouwerkerk Moria Datum: 22 januari 2012
Inleiding Dit technisch vooronderzoek vormt de basis waarop de ontwikkelactiviteiten in het project SocialMediaCaster Connector gestalte krijgen. Er is onderzoek gedaan naar de catalogussystemen van de schoolmediatheek (Aura) en de bibliotheek Leeuwarden (Bicat/Wise). Daarnaast is een verkennend onderzoek gestart naar de benodigde technische functionaliteiten van de software om het systeem zoals in het in het projectvoorstel beschreven, te realiseren. In dit document wordt verslag gedaan van het technisch vooronderzoek en vormt daarmee een van de project deliverables zoals vastgesteld in de projectaanvraag Mediawijzer.net. Context De beoogde applicatie bouwt voort op reeds ontwikkelde software. De huidige software bestaat uit drie componenten. Het gaat daarbij om 1.) de koppeling tussen Barcode tags en het uitlezen van het lokale bibliotheek catalogussysteem, 2.) het zoeken naar relevante media en user generated content via webservices en 3.) het visualiseren van de resultaten op een touch sensitive interface. De uitbreiding op basis van de reeds ontwikkelde software maakt het mogelijk om na de eerste drie stappen zoals hierboven beschreven, de zoekresultaten te controleren op beschikbaarheid in catalogussystemen van bibliotheken op afstand. In onderstaande paragrafen worden de te ontwikkelen software componenten nader beschreven. Catalogusconnector De catalogusconnector maakt het mogelijk om op afstand verbinding te maken met het catalogussysteem van de bibliotheek (Bicat/Bicat Wise). Op basis van deze connectie is het mogelijk om de gevonden resultaten uit de eerste zoekopdracht te vergelijken met beschikbare bronnen in de collectie van een bibliotheek op afstand. Op deze manier wordt het mogelijk om vanuit een SMC installatie in een mediatheek op school verbinding te maken met het catalogussysteem van een bibliotheek in de buurt. Voor deze software component is het essentieel dat de gebruikte communicatieprotocollen en standaarden van catalogussystemen op een uniforme wijze worden aangesproken en voldoende informatie ontsluiten voor de SocialMediaCaster software. Cataloguschecker De cataloguschecker is de software component die 1.) gerelateerde bronnen op basis van de gescande bron zoekt in de catalogi van schoolmediatheek en bibliotheek en 2.)
Technisch vooronderzoek SMC Connector
januari 2012
pagina 1 van 8
controleert of de gevonden gerelateerde bronnen beschikbaar zijn in de collectie van de bibliotheek. Het zoek en vindproces van SocialMediacaster vindt daarmee plaats in de volgende stappen: 1. Een collectie bron wordt ingescand via een SocialMediaCaster installatie; 2. Socialmediacaster zoekt gerelateerde bronnen in het catalogussystemen van de schoolmediatheek (Aura) en de catalogus van de bibliotheek (BicatWise); 3. Parallel aan het zoekproces in stap 2 zoekt SMC op sociale mediaplatforms naar gerelateerde informatie (user reviews en beschikbaar achtergrondmateriaal); 4. De beschikbaarheid van de gerelateerde bronnen uit stap 2 wordt gecontroleerd in de catalogussystemen; 5. Alle gevonden informatie kan worden gedeeld op sociale mediakanalen via de interface van SMC. Risico's en technische haalbaarheid De koppeling tussen bibliotheekobjecten en informatie op internet is technisch goed haalbaar gebleken. Echter, op dit moment is voor het merendeel van de collectie nog geen directe koppeling tussen BARCODE ObjectIdentifiers en entries in de catalogus De gebruikte barcode vanuit de BARCODE tag is wel eenvoudig op te vragen. Daarmee kan alsnog de catalogus bevraagd worden. Het technisch onderzoek is gericht op de wijze waarop informatie (op afstand) uit het catalogussysteem opgevraagd kan worden. Hiertoe zullen alternatieve communicatieprotocollen worden onderzocht en daarnaast het gebruikte catalogussysteem zelf. De conclusie is dat er aanpassingen op het catalogussysteem zelf moeten plaatsvinden om: 1. Meer informatie over collectie-items op te kunnen vragen; 2. Een geautomatiseerde opdracht op afstand te geven waarmee de beschikbaarheid van bronnen in de collectie van de bibliotheek wordt gecontroleerd. We hebben vastgesteld dat de risico's met name ontstaan door afhankelijkheid van het catalogussysteem van de schoolmediatheek en de toegankelijkheid van het catalogussysteem van Stichting Bibliotheken Midden Friesland (SBMF). De beoogde plannen in het vervolgtraject zijn technisch haalbaar echter is de manier waarop gerelateerde bronnen gevonden worden wel een punt van aandacht. De volgende aanpak is vastgesteld: 1) Gerelateerde bronnen worden gevonden in de bibliotheek catalogus op basis van resultaten uit zoekopdrachten in Aura (catalogussysteem schoolmediatheek). De zoekresultaten uit Aura worden gebruikt voor geautomatiseerde zoekopdrachten in de bibliotheek catalogus via beschikbare webservices van Bicat Wise. Gerelateerde bronnen vormen daarmee een nieuwe categorie zoekresultaten die als zodanig worden toegevoegd aan de huidige manier waarop zoekresultaten worden gevisualiseerd in de interface 2) Sociale media worden gebruikt om: a) gerelateerde informatie te vinden en te visualiseren (zoals in de huidige versie) b) gevonden informatie te delen (via de hoekknoppen)
Technisch vooronderzoek SMC Connector
januari 2012
pagina 2 van 8
3) De manier waarop het bibliotheek catalogussysteem wordt aangesproken moet fundamenteel worden aangepast: a) Andere communicatieprotocollen of via webservices b) Als prototype toepassing van BicatWise c) koppeling naar klanteninformatie via webservices of bijvoorbeeld mijnbibliotheek Overige aanpassing huidige versie SMC 1) De Facebook knop wordt gekoppeld aan de SMC Facebook fanpage. Gevonden informatie op de SMC kan op deze manier worden gedeeld op de Facebookpagina en daar worden teruggevonden door gebruikers en worden hergebruikt in eigen sociale netwerken; 2) De Twitterknop wordt een soortgelijke functie als de Facebook knop. Gevonden informatie op de SMC zuil kan eenvoudig worden teruggevonden via het Twitterkanaal van SMC; 3) De Bookmarkknop wordt omgebouwd tot een informatieknop. Wanneer een gebruiker op deze knop drukt zal algemene informatie over SMC worden getoond; 4) Screensaver aanzetten (zodat het niet lijkt of zuil is uitgeschakeld na tijd inactief te zijn); 5) Tijd voor scannen en zoeken visualiseren (voortgang expliciteren naar gebruiker).
Catalogussysteem schoolmediatheek – Aura Op basis van voorbeeld XML formulieren die Aura ons heeft toegestuurd, is het goed moeglijk om de catalogus op afstand te bevragen en de gewenste informatie op te vargen. Uit technisch onderzoek bleek dat het catalogussysteem (Aura) van de school een update nodig heeft zodat er gebruik gemaakt kan worden van de functionaliteit waarmee we op afstand het systeem via XML kunnen bevragen. Na de update van het Aura systeem verwachten we geen verdere problemen. Catalogussysteem Bibliotheek – Bicat (Wise) Het huidige communicatieprotocol voor het bevragen van het catalogussysteem van de bibliotheek is het 3M Standard Interchange Protocol (SIP), Revision 2.00. Dit protocol wordt met name gebruikt om het uitleensysteem te automatiseren en voldoet niet aan de vraag naar meer informatie over de gevonden objetcen (boeken, dvd’s) omdat er maar twee velden worden gebruikt, namelijk: titel en auteur. Voor dit project is daarom gekeken of het SIP protocol uitgebreid kan worden. De uitbreiding naar meer velden betreft de velden 43 en 44. 43
- 44< Item identifier>
- <Title identifier><Media type><Writer information>< Collection><Shelf position><SISO code>
- Uitleg verschillende velden : Writer information : Schrijver b.v. Wolkers, Jan Collection : Huidige collectie van het item b.v. JGD Shelf position: Plaats van het item in de bibliotheek ( getal )
Technisch vooronderzoek SMC Connector
januari 2012
pagina 3 van 8
SISO code: Standaard SISO code max 6 cijfers b.v. 635.798 De conclusie van het onderzoek naar uitbreiding van het SIP protocol is dat er nog steeds onvoldoende informatie wordt ontsloten voor SMC om betekenisvolle relaties te kunnen leggen tussen collectieitems. Het advies is daarom om in plaats van SIP over te stappen naar het gebruik van webservices in Bicat Wise.
Gebruik webservices via Wise omgeving: In Wise moeten Webservice-clients (zoals websites/Joomla) bekend zijn op basis van IPnummer en/of poort-nummer. Er kan een sessie tot stand worden gebracht waarin deze WS-client geauthenticeerd en geautoriseerd wordt, het session- id wordt bij elk volgend request doorgegeven als Cookie (ULS_SID) of als CGI parameter (sid). Ook is het mogelijk om bij IEDER request opnieuw te authenticeren en autoriseren door de betreffende gegevens mee te sturen (ulsprt). Webservices voor websites in bicatWise Het meegeven van een sid of cookie werkt goed bij een sessie waarvan de WS-client zelf de Eigenaar is. Bij SSO echter ontstaan er sessies waarvan de WS-client niet de eigenaar is, bijvoorbeeld door aanmelding in de portal (bx.pl). Omdat maar 1 sid parameter gebruikt kan worden moet in zo'n geval de WS-client nog geauthenticeerd worden bij een reeds bestaande sessie waar hij geen Eigenaar van is. Dat kan alleen door de eerste keer met deze sid expliciet de ulsprt parameter door te geven. Als de autorisatie goed verloopt kan voor volgende requests met dit sid de ulsprt parameter achterwege blijven. Noot In eerdere versies was het gebruikelijk om de WS-client zich te laten aanmelden met de prt parameter. Dat ontneemt echter de mogelijkheid om in de sessie voor de gebruiker een andere poort te gebruiken met eigendefinities(zoalscatalogusdefinitieetc).Daaromisparameterulsprtingevoerd.Voorterug waartse compatibiliteit is het nog mogelijk de WS-client requests op uls.pl met de prt parameter te doen, maar dan wordt deze intern automagisch omgezet naar ulsprt en wordt voor prt de default poort waarde INTERNET gebruikt. Overzicht services Webservice
Samenvatting
Via
Parameters
xmlsess/getsi d
Starten van een Portal sessie vanuit de Website/CMS
uls.pl, event=xmls ess of event=gets id
ulsprt poortvandeWS-client event licenties xmlwipe MIJNWS,SSO
xmlauth
Aanmelden van een klant vanuit de Website/CMS Hierbij is de WS-client reeds bekend (aangemeld) en kan een sid meesturen als cookie (ULS_SID) of parameter (sid) Geeft geen aanleiding tot een callback omdat in dit geval de website/CMS de
uls.pl, event=xmla uth
ssokey referentie-naam voor Website/CMS (welke server) ssoid Website/CMS session id newlener pasnummer/gebruikersnaam pinkode pin/wachtwoord pub Optioneel pub=1 om aan te geven dat sprake is van een publiekscatalogus in plaats van toegang via Internet ulsprt poort van de
Technisch vooronderzoek SMC Connector
januari 2012
pagina 4 van 8
WS-client
initiator is van het inloggen (en er dus al van weet).
xmlinfo
Opvragen autorisatie en sessie info vanuit de Website/CMS Referentiepunt bij deze request is de sid van sessie waar de klant in bekend is. De WS-client zou hier geen Eigenaar van hoeven zijn (zie boven). Daarom stuurt WS-client bij dit request ALtijd ulsprt mee zodat hij ook in deze sessie geauthenticeerd kan worden. Uitloggen van de klant vanuit de Website/CMS Geeft geen aanleiding tot een callback omdat in dit geval de website/CMS de initiator is van het inloggen (en er dus al van weet). Opvragen van favorieten van de klant
uls.pl, event=xmli nfo
favdel
xmlwipe
Zoals uit de voorbeelden van antwoorden blijkt, geeft de service soms meer informatie vrij dan wenselijk is om aan de eindgebruiker door te geven. Zo moet de Website/CMS niet het onderscheid tussen een onbekende gebruikersnaam of foutief wachtwoord aan de eindgebruikers prijsgeven in verband met het risico van hacken. ssokey referentie-naam voor Website/CMS (welke server) ssoid Website/CMS session id sid session id van de Portal ulsprt poortvandeWS-client
uls.pl, event=xml wipe
sid sessionidvandePortal
uls.pl, event=favli st
sid session id van de Portal ulsprt poortvandeWS-client
Verwijderen van een favoriet van de klant
uls.pl, event=favd el
sid session id van de Portal titcode Titelnummervanteverwijderenfavoriet ulsprt poort van de WS-client
invent
Wat heb ik thuis/verlengen
uls.pl, event=inve nt
sid session id van de Portal ulsprt poortvandeWS-client
prolacta
Verlengen van 1 of meerdere exemplaren
uls.pl, event=prol acta
leenhist
Eerder geleende titels
uls.pl, event=leen hist
prolexm prolexm:1ofmeerdoor|gescheidenexemplaarn ummers;dezezijntevindeninveldvaluevaneven t invent sid session id van de Portal ulsprt poort van de WS-client aantal gevraagdeaantaltitels,default50 sid session id van de Portal ulsprt poortvandeWS-client
returned
Terugbrengkar, oftwel: zojuist ingeleverd Geeft een lijst van titels die de laatste 72 uur zijn ingeleverd bij het gevraagde filiaal
uls.pl, event=retur ned
aantal gevraagdeaantaltitels,default50 vestnr Vestigingwaarvandeexemplarenbekekenmoe tenworden sid session id van de Portal ulsprt poortvandeWS-client
tsa
Availability, beschikbaarheid van titels. Kan gebruikt worden als er een externe zoekbron is die titelnummers van dit lokale Wise systeem oplevert
uls.pl, event=tsa
aantal gevraagdeaantaltitels,default50 item 1 of meer door komma gescheiden titelnummers vestnr Vestigingwaarvandeexemplarenbekekenmoe tenworden sid session id van de Portal ulsprt
favlist
Technisch vooronderzoek SMC Connector
januari 2012
pagina 5 van 8
poortvandeWS-client apw
Aanwinsten per wereld In bicatcgi.conf wordt vastgelegd hoe de werelden zijn opgebouwd uit 1 of meer interesseprofielen (aanwinstprofielen), bijvoorbeeld: 'PORTAL' => { 'AANW_PER_WERELD' => { 'beleving' => [{'031' => 2},{'033'=>2},{'013'=>2},{'024'=>2},], 'kids' => [{'047' => 5},{'041'=>5},{'040'=>5}], }, },
reserveringsv erzoek
Hierin verwijzen de drie-cijferige codes naar aanwinstprofielen (APSSTDXXX met XXX de drie-cijferige code) en wordt per profiel aangegeven hoeveel titels er in de set dienen voor te komen (random trekking). Bevragen van de mogelijkheden voor reserveren van een titel voor deze actor
reservering
Reserveren van een titel voor deze actor
uls.pl, event=tsa
uls.pl, event=resv actn
aantal gevraagdeaantaltitels,default50 world identifier van de Wereld, zoals vastgelegd in bicatcgi.conf vestnr Vestigingwaarvandeexemplarenbekekenmoe tenworden sid session id van de Portal ulsprt poortvandeWS-client
titcode titelnummer vestnr Vestiging waar we staan ophvest Vestiging waar opgehaald zou worden sid session id van de Portal ulsprt poort van de WS-client titcode titelnummer vestnr Vestiging waar we staan ophvest Vestiging waar opgehaald moet worden sid session id van de Portal ulsprt poort van de WS-client
Technische ontwerp SocialMediaCaster Er bevinden zich een aantal elementen in de SocialMediaCaster: de barcode reader (inclusief daarvoor benodigde cliënt software); de serverapplicatie, die verantwoordelijk is voor van de data uit de bibliotheek-catalogus en databronnen op internet; en de cliëntapplicatie die de interface aan de eindgebruiker vertegenwoordigt.
Technisch vooronderzoek SMC Connector
januari 2012
pagina 6 van 8
In bovenstaande afbeelding de pijlen die de belangrijkste datastromen tussen de verschillende componenten verbeelden: de barcode reader stuurt de uitgelezen ObjectIdentifier en barcode naar de server applicatie (1). De serverapplicatie voert met deze informatie een query uit op de bibliotheek-catalogus (2) en verzamelt daaruit zoveel mogelijk meta-informatie als beschikbaar (3). Met deze meta-data start de serverapplicatie zoekopdrachten bij de verschillende databronnen op internet (4) en verwerkt de resultaten van die zoekopdrachten (5) om ze vervolgens aan de cliëntapplicatie aan te bieden (6), die de resultaten vervolgens aan de eindgebruiker presenteert. De serverapplicatie is ontwikkeld als een Java EE (Enterprise Edition) applicatie, die gehost wordt binnen Apache Tomcat 7.0. De serverapplicatie bestaat uit een aantal functioneel te onderscheiden componenten: 1. SocialMediaCaster core Deze component is verreweg het grootste van de serverapplicatie-componenten. Hierin wordt namelijk de coördinatie tussen de overige componenten geregeld en wordt de data, die door de databron-connector aangeleverd wordt, doorgestuurd naar de web cliënt support component. 2. Web cliënt support Binnen deze component wordt alle functionaliteit geïmplementeerd die nodig is om de webclient van informatie te voorzien: statusupdates, resultaten van zoekopdrachten en reacties op acties van de eindgebruikers. Deze component is in staat binnenkomende HTTP-requests te verwerken en de benodigde vertaalslagen tussen de Core component en de web-client te maken.
Technisch vooronderzoek SMC Connector
januari 2012
pagina 7 van 8
Naast de Core en de web cliënt support componenten zijn er nog een drietal ‘connector’ componenten: deze vertegenwoordigen de communicatie met de buitenwereld anders dan de interactie met de eindgebruiker: de barcode connector, de catalogus connector en de databron connector. De BARCODE connector luistert naar binnenkomende activiteit van de BARCODE reader en daarbij behorende cliëntsoftware en speelt de verkregen informatie door aan de Core component. De databron connector is verantwoordelijk voor het verzamelen van informatie uit bronnen op internet en bestaat daartoe zelf uit een serie sub-componenten: de databronadapters. Alle onderlinge verschillen tussen protocollen, communicatiestijlen en API implementaties van de verschillende te gebruiken databronnen zijn geïsoleerd binnen de individuele databron-adapters. Deze opzet maakt het mogelijk om eenvoudig nieuwe databronnen toe te voegen en om bestaande uit te breiden of aan te passen. Zo is er een Google Image Search adapter, een YouTube adapter, een Amazon Product Search adapter, enzovoorts. 3. BARCODE reader met clientapplicatie In de SMC wordt een BARCODE reader gebruikt die voldoet aan de ISO 15693 standaard. De clientsoftware wordt geactiveerd op het moment van detectie van een BARCODE tag. Deze (BARCODE) client sofware kan vervolgens andere applicaties opstarten of triggeren om de uitgelezen barcodetaggegevens door te geven. Omdat de interne SocialMediaCaster server is opgezet als een webapplicatie kan volstaan worden met het openen van een URL. Deze request wordt vervolgens opgevangen en verwerkt door de ‘barcode connector’ component van de serverapplicatie. Hiermee heeft de serverapplicatie voldoende informatie om de rest van het proces te kunnen starten. 4. Clientapplicatie Dit is het enige deel van de applicatie dat voor de eindgebruiker zichtbaar is middels een Javascript- en HTML gebaseerde browserapplicatie, gehost in Google Chrome. De browser draait in kiosk-mode, waardoor de standaard browse-functies uitgeschakeld zijn en alleen de SocialMediaCaster cliënt applicatie beschikbaar is voor de eindgebruiker. Er is gekozen voor Google Chrome vanwege haar moderne, snelle Javascript omgeving die goed te beveiligen is. Ook sluit Chrome nauw aan bij de geldende en ontwikkelende HTML standaarden en biedt ingebouwde support voor veel gebruikte media-formaten en heeft bovendien een nauw geïntegreerde versie van Flash aan boord. Dit is met name belangrijk omdat veel video’s op internet (nog steeds) aangeboden worden via Flashplayers of in Flash-formaten. De cliëntapplicatie is ontwikkeld op basis van jQuery. Delen van de gevonden media en overige zoekresultaten vindt plaats in de cliënt zelf - in de eerste versie van de SocialMediaCaster worden nog geen persoonlijke profielen bijgehouden binnen de installatie zelf. Delen op sociale media gebeurt in de browser, via de API’s die de verschillende sociale netwerken (Facebook, Twitter) daarvoor beschikbaar stellen. 5. Beheeromgeving De beheeromgeving is niet echt een aparte component, maar een beschikbare faciliteit. Het stelt de ontwikkelaars in staat om op afstand toegang te krijgen tot een SocialMediaCaster installatie.
Technisch vooronderzoek SMC Connector
januari 2012
pagina 8 van 8