De techniek achter de Open Stack

Eerder schreef ik een artikel over de technieken achter Data Portability, in dit artikel wil ik verder in gaan op de Open Stack. De Open Stack is een verzameling Open Source protocollen die het samen makkelijker maken voor developers, website eigenaren en gebruikers om toegang tot gebruikersdata te beheren over verschillende websites heen. In die zin is de Open Stack een concrete implementatie van Data Portability. Je kunt inloggen op een nieuwe website en letterlijk met twee klikken je identiteit, profiel en vrienden beschikbaar hebben.

Grote partijen als MySpace, Yahoo!, Google en Plaxo zijn actief bezig de Open Stack te implementeren en verder uit te werken. Op dit ogenblik ziet hij er zo uit:

Open Stack vs. Facebook Platform

Zoals je in bovenstaande weergave kunt zien, doen niet alle partijen per definitie mee aan de Open Stack. Facebook houdt zich -mede dankzij zijn first-movers positie- een beetje afzijdig van de Open Stack. Facebook blijft vooral in volle vaart doorstomen en dat is niet eens een negatieve ontwikkeling. Door de snelle opkomst van het Facebook Platform werd in rap tempo OpenSocial ontwikkeld door Google. De aankondiging van Facebook Connect zorgde voor de versnelde implementatie van MySpaceID en Google’s FriendConnect. Dat betekent niet dat Facebook niet mee doet aan de discussie. Ze zijn al enige tijd lid van het bestuur van de OpenID Foundation en zelfs al enige tijd OpenID Relying Party. Ik verwacht ook dat Facebook uiteindelijk Open Stack compatible zal worden, maar pas als de Open Source protocollen die gebruikt worden voldoen aan de eisen die Facebook stelt aan veiligheid en vooral User Experience.

OpenID

Helemaal bovenaan de Open Stack vinden we OpenID. OpenID geeft gebruikers de mogelijkheid om hun identiteit te beheren over meerdere websites heen. Simpel gezegd is het mogelijk om met een account bij een OpenID Provider in te loggen op de website van een OpenID Relying Party (acceptant). OpenID beantwoord de vraag; “Is de persoon die zich hier wilt aanmelden de persoon die hij zegt dat hij is”. De OpenID Provider kan op verzoek tevens enkele basis persoonsgegevens teruggeven, als de naam en het emailadres. Bekende OpenID Providers zijn Hyves, MySpace, Google en Yahoo!. OpenID wordt onder andere geaccepteerd door Facebook, Plaxo en Basecamp van 37Signals.

XRDS-Simple

Na OpenID komt XRDS-Simple, een discovery mechanisme. Dit zorgt ervoor dat sites kunnen zien welke andere diensten er door jou worden aangeboden. Als je inlogt met OpenID weet de Relying Party jouw OpenID URL en kan via XRDS-Simple opvragen waar bijvoorbeeld jouw adresboek is te vinden. Dit hoeft dus niet per definitie bij je OpenID Provider zijn. Je zou Verisign kunnen gebruiken als OpenID Provider, maar het beheren van je adresboek aan Google’s Gmail kunnen overlaten. Via XRDS-Simple komen we meteen aan bij OAuth, de volgende stap in de Open Stack.

OAuth

Nadat er via XRDS-Simple is uitgevonden waar welke diensten zich bevinden, is het belangrijk dat de toegang tot deze diensten is te beheren. Je wilt niet iedereen zomaar toegang geven tot je hele adresboek bijvoorbeeld. Tot voorheen werd je vaak je username en password af te geven voor toegang, maar dankzij OAuth behoort dat nu tot het verleden. Als ik bijvoorbeeld toegang wil geven aan Mysteryland tot mijn Hyves account, word ik door Mysteryland doorgestuurd naar Hyves. Op Hyves word ik gevraagd of ik Mysteryland toegang wil geven tot mijn vriendenlijst of persoonlijk profiel. Na akkoord te hebben gegeven stuurt Hyves mij terug naar Mysteryland en kan ik daar gebruik maken van deze gegevens. Dat alles in twee klikken, zonder het vrijgeven van mijn inlogcodes van Hyves aan Mysteryland. OAuth is dus een authenticatie protocol voor API’s en daar komt ook meteen het volgende probleem om de hoek kijken. API’s worden door elke website anders vormgegeven. PortableContacts en Open Social verhelpen dat.

PortableContacts

Nu je identiteit kan worden vastgesteld door OpenID, we via XRDS-Simple weten welke diensten er door jou worden aangeboden en we via OAuth de access control hebben verzekerd is het belangrijk dat de gegevens die nu kunnen worden aangeboden zijn gestandaardiseerd. PortableContacts zorgt voor deze uniformiteit voor je adresboek. Hierdoor kun je zonder problemen overstappen op een andere beheerder van je adresboek en nog steeds via externe sites toegang hebben. Portable Contacts en de Open Social Friends API zijn compatible zodat het hopelijk in de toekomst echt mogelijk wordt al je vrienden en contacten op één plek te beheren voor zowel GMail als bijvoorbeeld Facebook, afhankelijk van welke classificering jij geeft aan je contacten.

OpenSocial

De laatste laag is niet alleen de meest bekende, maar ook de meest verkeerd begrepen. OpenSocial is namelijk geen Data Portability, maar een framework voor het beschrijven van Social Activities. Een standaard die het mogelijk maakt om Social features van de ene site te gebruiken op andere websites of in applicaties/widgets, op een uniforme manier. Dit wordt mooi vormgegeven in de deze afbeelding:

open-social-illustration

OpenSocial zorgt ervoor dat je de Telegraaf  Tour-poule met je vrienden kunt spelen op Hyves, maar dit in principe -met dezelfde widget- ook zou kunnen op Gmail.

OpenSocial geeft momenteel toegang tot Profiel Informatie, contacten (de Social Graph, dmv PortableContacts) en Acitivteiten (‘Timan is nu vrienden met…’, ‘Timan heeft de volgende foto’s geplaatst’) en is gebaseerd op Javascript en HTML. Open Social geeft bedrijven de mogelijkheid om hun website uit te breiden naar Social Networks of juist functionaliteiten van die Social Networks naar hun eigen website te halen. Jeremiah Owyang schreef een goed artikel over OpenSocial en mogelijkheden/bedreigingen ervan.

Samenvatting

Met OpenSocial als laatste stap hebben we de hele Open Stack nu doorlopen. We begonnen bij OpenID om je identiteit te kunnen bewijzen en mee heen te nemen, XRDS-Simple dat je helpt om de verschillende API’s -als PortableContacts- openbaar te kunnen maken, OAuth om access control toe te passen op deze API’s, PortableContacts om toegang tot je contacten te kunnen hebben op het hele world wide web en tenslotte OpenSocial om al je sociale data te kunnen gebruiken in widgets en om developers een uniforme toegang te bieden tot deze social data. Houd dit weblog in de gaten voor meer artikelen over de Open Stack en de verschillende onderdelen of abonneer je op de RSS feed. Vraag ook gerust om meer info in de reacties!

Leave a comment