Technologieverkenning Videocontent in the cloud door de koppeling van MediaMosa installaties
Versie 1.0 14 oktober 2010 Auteur: Herman van Dompseler SURFnet/Kennisnet Innovatieprogramma
Het SURFnet/ Kennisnet Innovatieprogramma wordt financieel mogelijk gemaakt door het Ministerie van Onderwijs, Cultuur en Wetenschap.
Voor deze publicatie geldt de Creative Commons Licentie “Attribution 3.0 Unported”. Meer informatie over deze licentie is te vinden op http://creativecommons.org/licenses/by/3.0/
2
Contents Samenvatting ................................................................................................................................. 4 Inleiding .......................................................................................................................................... 5 Leeswijzer................................................................................................................................... 5 Achtergrond van cloud computing ................................................................................................. 6 MediaMosa in the cloud ............................................................................................................. 6 Scope van een cluster ................................................................................................................ 7 Architectuur en Scope .................................................................................................................... 8 Open API .................................................................................................................................... 8 Scope ......................................................................................................................................... 9 MediaMosa installaties koppelen ................................................................................................. 10 Mashup cluster ......................................................................................................................... 10 Kenmerken ........................................................................................................................... 11 API cluster ................................................................................................................................ 11 Kenmerken ........................................................................................................................... 12 Randvoorwaarden van de koppelingen ....................................................................................... 13 Alternatieve koppelingen .............................................................................................................. 14 Conclusie ..................................................................................................................................... 15 Aanbevelingen .......................................................................................................................... 15
3
Samenvatting In deze technologie verkenning worden de mogelijkheden onderzocht om verschillende MediaMosa installaties aan elkaar te koppelen. MediaMosa faciliteert aan eindgebruikerdiensten (zoals SURFmedia) toegang tot en gebruik van video‟s en biedt onder andere opslag-, transcoding- en streamingdiensten. Met behulp van de Open API, zoals onderzocht in de technologie verkenning „Open Webservices‟, kan MediaMosa ook aan eindgebruikers het gebruik van video‟s faciliteren. Met een MediaMosa koppeling zou het mogelijk gemaakt kunnen worden om met één interface toegang te bieden tot video‟s uit meerdere MediaMosa installaties. In deze verkenning wordt een verzameling MediaMosa installaties gezien als een cloud applicatie. Dit wordt een MediaMosa cluster genoemd. Er zijn twee mogelijkheden om een MediaMosa cluster te realiseren. De eerste mogelijkheid is om een koppeling te maken met een nieuwe mashup applicatie die toegang biedt tot meerdere MediaMosa installaties. De tweede mogelijkheid is om op API niveau een koppeling te maken tussen meerdere MediaMosa installaties. Merk op dat bij beide koppelingen een werkende open API vereist is, zoals voorgesteld in het onderzoek naar „Open Webservices‟. De mashup applicatie maakt gebruik van de open API en voor de open API koppeling wordt de open API uitgebreid met cluster functionaliteit: 1. De mashup cluster is een aparte applicatie die gebruikt maakt van voor hem bekende MediaMosa installaties om in te gaan zoeken. Een zoekopdracht aan dit cluster wordt vertaald in een zoekopdracht aan de open API‟s van de MediaMosa installaties die opgegeven zijn in de lokale instellingen. Alle resultaten worden geaggregeerd tot één lijst. 2. De open API cluster is een uitbreiding op de open API met een cluster aanroep, waardoor de MediaMosa koppeling wordt gerealiseerd. Een zoekopdracht aan de open API cluster resulteert dan in een zoekopdracht aan alle open API‟s die bij dit cluster aangesloten zijn. Alle resultaten worden geïntegreerd tot één resultaatlijst. De tweede mogelijkheid, een cluster realiseren met de open API, is flexibeler en kan ook breder ingezet worden. Het voordeel van deze mogelijkheid is dat de open API toegankelijk is voor zowel eindgebruikers als eindgebruikers applicaties. Door het opzetten van een cluster beheer tool naast deze open API, waar MediaMosa installaties zich kunnen aan- en afmelden, kan een MediaMosa cluster heel dynamisch gemaakt worden. Het voordeel hiervan is dat instellingen met meer dan één MediaMosa installatie hun eigen cluster kunnen maken.
4
Inleiding MediaMosa is open source software van SURFnet waarmee een op webservices gebaseerd media management en distributie platform gemaakt kan worden, zie http://www.mediamosa.org. MediaMosa faciliteert aan eindgebruikerdiensten (zoals SURFmedia) toegang tot en gebruik van video‟s en biedt onder andere opslag-, transcoding- en streamingdiensten. MediaMosa wordt als bekend verondersteld. De onderzoeksvraag voor Videocontent in the cloud voor MediaMosa is: “Met het open source beschikbaar stellen van MediaMosa, kan iedereen gebruik maken van deze videomanagementsoftware. Hiermee wordt het potentiële aanbod van educatieve videocontent sterk vergroot. In 2010 worden de technische mogelijkheden verkend om de verschillende MediaMosa installaties aan elkaar te koppelen.” (bron: opdrachtomschrijving) Deze technologie verkenning is een uitbreiding op de technologie verkenning „Open Webservices‟. De open webservices zoals voorgesteld in die verkenning dienen als basis voor het realiseren van een koppeling van verschillende MediaMosa installaties.
Leeswijzer Allereerst wordt in het hoofdstuk „Achtergrond van cloud computing‟ de term „cloud computing‟ uitgewerkt in de context van deze verkenning. Vervolgens wordt aan de hand van de architectuur van MediaMosa de scope van het onderzoek vastgesteld in het hoofdstuk: „Architectuur en Scope‟. Daarna wordt dieper ingegaan op de mogelijkheden van het koppelen van MediaMosa installaties in: „MediaMosa installaties koppelen’. In het volgende hoofdstuk „Randvoorwaarden koppeling’ wordt beschreven wat er nodig is om de koppelingen te laten slagen. In ‘Alternatieve koppelingen’ wordt gekeken op welke andere manier data uit MediaMosa gekoppeld kan worden. Het rapport eindigt met een hoofdstuk: „Conclusie‟.
5
Achtergrond van cloud computing De titel van deze technologie verkenning bevat “Videocontent in the cloud”. Deze term heeft raakvlakken met de opkomst van de term “cloud computing”. In dit hoofdstuk wordt de achtergrond van cloud computing gegeven. Cloud computing is een software architectuur waarin informatie opgeslagen is in the cloud, dit zijn servers op het Internet. Deze informatie wordt door gebruikers vanaf hun eigen locatie benaderd met hun eigen PC, laptop of smartphone en gebruikt alsof de informatie op hun eigen client staat. Het begrip cloud computing is heel divers. Op verschillende lagen kunnen servers op het internet diensten aan apparaten aanbieden. De verschillende lagen die onderscheiden worden in cloud computing zijn: 1. Cloud clients: Een voorbeeld van een client is een browser op een computer of laptop. Een ander voorbeeld is een widget of applicatie op de desktop van een computer of op een smartphone. 2. Cloud applications: Een voorbeeld van een applicatie is gmail, wordpress of salesforce. Dit wordt ook wel „software as a service‟ (SAAS) genoemd. Cloud applicaties worden door eindgebruikers gebruikt. 3. Cloud platform: Een voorbeeld van een cloud platform is Google App Engine of force.com. Dit wordt ook wel „platform as a service‟ (PAAS) genoemd. Een cloud platform wordt door ontwikkelaars van software gebruikt om cloud applicaties te maken. 4. Cloud infrastructure: Een voorbeeld van een cloud infrastructuur aanbieder is Amazon met de amazon webservices Ec2 en S3, een andere aanbieder is Rightscale. Dit wordt ook wel „infrastructure as a service‟ (IAAS) genoemd. Met infrastructuur componenten kunnen ontwikkelaars onderdelen van hun platform en applicaties aan elkaar knopen om zo tot een applicatie te komen. 5. Cloud server: Dit is de hardware waar de services op aangeboden worden. De servers zijn computers die gekoppeld zijn aan internet. Lees meer over Cloud Computing: een definitie: http://en.wikipedia.org/wiki/Cloud_computing; over verschillende lagen: http://blog.rightscale.com/2008/05/26/define-cloud-computing/.
MediaMosa in the cloud MediaMosa is een voorbeeld van een cloud applicatie. MediaMosa faciliteert aan eindgebruikerdiensten (zoals SURFmedia) toegang tot en gebruik van video‟s en biedt onder andere opslag-, transcoding- en streamingdiensten. Met behulp van de Open API, zoals onderzocht in de technologie verkenning „Open Webservices‟, kan MediaMosa ook aan eindgebruikers het gebruik van video‟s faciliteren. In deze verkenning worden de mogelijkheden verkend om verschillende MediaMosa installaties aan elkaar te koppelen. Met deze koppeling moet het mogelijk gemaakt worden om toegang te bieden tot video‟s uit meerdere MediaMosa installaties middels één interface. In deze verkenning wordt dus een verzameling MediaMosa installaties gezien als de cloud applicatie. Dit wordt een MediaMosa cluster genoemd.
6
Scope van een cluster Het cluster dat in dit document wordt onderzocht is een MediaMosa cluster waarin data aangeboden wordt en doorzocht kan worden. Het betreft een cluster voor „lezen‟ van video data. „Schrijven‟ van video data is niet mogelijk. Het wordt niet mogelijk gemaakt een video te uploaden in een MediaMosa cluster. Andere mogelijkheden om MediaMosa uit te breiden met cloud services, zoals transcoding in the cloud of storage in the cloud, worden niet behandeld in deze verkenning.
7
Architectuur en Scope MediaMosa is opgebouwd volgens een Service Oriented Architecture. In deze architectuur zijn vijf lagen te onderscheiden.
Figuur: MediaMosa architectuur
De onderste drie lagen: data, componenten en services worden door MediaMosa aangeboden aan applicaties. De bovenste twee lagen: logica en presentatie worden door eindgebruikersapplicaties (EGA‟s) aangeboden aan een gebruiker. De EGA‟s hebben een trust relatie met MediaMosa voor gebruik van de webservices. MediaMosa biedt dus webservices aan bekende EGA‟s en is zonder EGA niet door eindgebruikers te raadplegen. In de technologie verkenning „Open Webservices‟ is deze architectuur uitgebreid met een Open API die wel voor eindgebruikers toegankelijk is. Deze Open API is ook de basis voor het realiseren van een koppeling tussen verschillende MediaMosa installaties.
Open API API is een afkorting voor Application Programming Interface. Een API is een verzameling definities op basis waarvan een computerprogramma kan communiceren met een ander programma. Er zijn API‟s op heel veel niveaus, meestal vormen ze een scheiding tussen verschillende lagen in een computer systeem. De open API wordt tussen de bestaande webservice laag van MediaMosa en de EGA‟s gepositioneerd. De open API maakt gebruikt van webservices en biedt ook zelf een webservice aan. EGA‟s kunnen blijven koppelen aan de bestaande webservices op basis van hun trust relatie en van de open API gebruik maken. Andere en onbekende applicaties/mashups kunnen alleen gebruik maken van de open API.
8
Figuur: Nieuwe MediaMosa architectuur
Merk op dat eindgebruikers ook direct kunnen koppelen aan de open API met een desktop applicatie. De open API is te vergelijken met een EGA met een aantal bijzondere kenmerken: De open API levert eenvoudige toegang tot content in MediaMosa. De open API levert alleen een webservice interface en geen eindgebruiker interface. De open API levert resultaten in een generiek formaat zodat het eenvoudig in gebruik is in een ELO of mashup platform. De open API is onderwerp van de technologische verkenning „Open Webservices‟, in dat rapport wordt de API uitvoerig beschreven.
Scope Het onderzoek naar koppelingen tussen MediaMosa installaties richt zich op koppelingen op de hoogste niveaus, dus middels applicaties en/of de open API. De MediaMosa backend wordt zo veel mogelijk buiten beschouwing gelaten en gezien als de blackbox die video‟s beheert.
9
MediaMosa installaties koppelen Er zijn twee architectuur mogelijkheden om een MediaMosa cluster te realiseren. De eerste mogelijkheid is om een nieuwe mashup applicatie te maken die toegang biedt tot meerdere MediaMosa installaties, dit noemen we een mashup cluster. De tweede mogelijkheid is om op API niveau een koppeling te maken tussen meerdere MediaMosa installaties, dit noemen we een open API cluster. Het mashup cluster biedt een centrale toegang tot de aangesloten MediaMosa installaties en maakt gebruik van de open API‟s van de afzonderlijke MediaMosa installaties om de data op te halen. Het open API cluster biedt decentrale toegang tot de aangesloten MediaMosa installaties. Iedere open API van de afzonderlijke MediaMosa installaties kan benaderd worden om data uit het hele cluster te halen. Bij de open API cluster wordt gebruik gemaakt van een extra centrale cluster beheer applicatie. De twee mogelijkheden worden in de volgende hoofdstukken uitgewerkt.
Mashup cluster Het mashup cluster is een aparte applicatie die gebruikt maakt van voor hem bekende MediaMosa installaties om in te gaan zoeken. Een zoekopdracht aan het cluster wordt vertaald in een zoekopdracht aan de open API‟s van de MediaMosa installaties die opgegeven zijn in de lokale instellingen. Zie het volgende figuur:
Figuur: Een cluster gemaakt met een mashup applicatie
10
Kenmerken De belangrijkste kenmerken van een mashup cluster zijn: De mashup is het unieke punt waar toegang verkregen kan worden. In de mashup wordt bijgehouden welke MediaMosa installaties meedoen in de koppeling. Er is geen cluster management. De mashup biedt toegang aan eindgebruikers. De mashup aggregeert de data uit de verschillende open API‟s. Het is voor iedereen mogelijk om deze cluster te maken. De open API van MediaMosa is openbaar toegankelijk. API cluster Met een request op de open API van een MediaMosa installatie wordt gezocht naar video‟s in de betreffende MediaMosa database. http://api.mijnmediamosa.org/search Een extra request op de open API kan zijn om in het cluster te zoeken. http://api.MIJNmediamosa.org/cluster/search of http://api.JOUWmediamosa.org/cluster/search De open API vraagt daarna aan (1) een centrale cluster beheer applicatie welke MediaMosa installaties deel uit maken van het cluster en ondervraagt daarna (2) rechtstreeks de andere open API‟s van de aangesloten MediaMosa installaties. Zie figuur:
Figuur: Een cluster gemaakt van open API’s
11
Kenmerken De belangrijkste kenmerken van een open API cluster zijn: Iedere open API van iedere MediaMosa installatie biedt toegang tot videos uit een cluster. Er is een centraal punt, bijvoorbeeld MediaMosa.org, waar bijgehouden wordt welke MediaMosa installaties meedoen in een cluster. Clustermanagement kan geïntegreerd worden in MediaMosa. o Bij installatie van MediaMosa wordt gevraagd of deze installatie deel uitmaakt van een cluster. Zo ja, dan wordt het centrale punt op de hoogte gebracht van een nieuwe installatie. Default is het centrale punt MediaMosa.org. o Door het centrale punt naar een andere server te verleggen is het ook mogelijk kleinere clusters van MediaMosa te maken. Bijvoorbeeld tussen verschillende vestigingen binnen een organisatie. De open API biedt toegang aan zowel eindgebruikers als eindgebruikerapplicaties om toegang te krijgen tot een cluster. De open API integreert data van andere open API‟s.
12
Randvoorwaarden van de koppelingen Ervan uitgaande dat de open API beschikbaar is, dan is aan het maken van een mashup cluster geen randvoorwaarden verbonden. De open API is juist ontworpen om initiatieven zoals deze te promoten. Iedereen kan een mashup cluster maken. Het bouwen van deze mashup kan als enige consequentie hebben dat de mashup enorm populair wordt en dat de open API‟s van de deelnemende MediaMosa servers overbelast raken. Daarvoor is een „rate limit‟ in te stellen op de API. Als er meer dan x-duizend request op de openAPI komen vanaf één en dezelfde mashup applicatie, dan wordt de applicatie tijdelijk geblokkeerd. Dit geldt voor alle mashups die op de open API van MediaMosa aansluiten. Aan het ontwikkelen van de open API cluster zijn wel een aantal randvoorwaarden verbonden. Zonder onderstaande aanpassingen voor cluster beheer kan de open API cluster niet functioneren: Cluster beheer in MediaMosa integreren. o Het MediaMosa installatie proces dient aangepast te worden zodat tijdens het installatie proces de beheerder kan kiezen om de MediaMosa installatie op te nemen in een cluster. o Daarnaast moet via de admin interface een MediaMosa installatie in of uit een cluster gehaald kunnen worden. Cluster software component ontwikkelen. o Dit is een software component voor het beheer van een cluster lijst. o Een MediaMosa installatie moet aan deze component verschillende verzoeken kunnen doen: Voeg deze installatie toe aan het cluster. Verwijder deze installatie van het cluster. Geef een overzicht van alle MediaMosa installaties in het cluster. o De cluster lijst moet een vaste structuur krijgen, bijvoorbeeld: XML formaat Gegevens per MediaMosa installatie: Naam Omschrijving Email contact persoon Ip nummer Hostname URL van cluster search Datum van aanmelding Datum van laatste wijziging Is actief (ja/nee)? o MediaMosa installaties in de cluster lijst moeten periodiek gechecked worden op hun „availabililty‟. Als een installatie geen antwoord geeft na een x aantal checks dan moet deze automatisch op inactief gezet kunnen worden. Als een inactieve installatie langer dan een x aantal maanden niet gewijzigd is, dan moet deze automatisch verwijderd worden. Op http://www.MediaMosa.org/cluster een master cluster software component installeren. De cluster software component downloadbaar maken voor derden om hun eigen cluster te realiseren.
13
Alternatieve koppelingen Voor het doorzoeken van meerdere MediaMosa installaties is een alternatief. Met de huidige OAI functionaliteit kan alle data uit MediaMosa opgehaald worden. OAI is niet geschikt om direct te zoeken in MediaMosa. OAI kan wel ingezet worden om de data op te halen (harvesten) en lokaal op te slaan. Met een favoriet lokaal zoekmechanisme kan de data doorzocht worden en kunnen de resultaten worden gepresenteerd. In theorie is met OAI dus ook een koppeling tussen meerdere MediaMosa installaties te maken. Deze koppeling is echter niet wenselijk omdat dan alle data uit de deelnemende installaties gekopieerd moet worden.
14
Conclusie In dit onderzoek zijn mogelijkheden verkend om MediaMosa installaties aan elkaar te koppelen. Uitgangspunt bij dit onderzoek is een werkende open API bij MediaMosa, zoals voorgesteld in het onderzoek naar „open webservices‟. Een verzameling MediaMosa installaties wordt een MediaMosa cluster genoemd. Een MediaMosa cluster is op twee manieren te realiseren. 1. Door het maken van een mashup die gebruik maakt van meerdere open API‟s. Een zoekopdracht die aan de mashup wordt gesteld, wordt aan meerdere open API‟s tegelijk doorgestuurd en de resultaten worden geaggregeerd tot één resultaatlijst. 2. Door de open API uit te breiden met een cluster aanroep. Een aanvraag op de open API, bijvoorbeeld: http://api.mijnMediaMosa.org/cluster/search resulteert dan in een zoekopdracht op alle open API‟s die bij het cluster aangesloten zijn. Alle resultaten worden geïntegreerd tot één resultaatlijst. Een MediaMosa cluster realiseren met een mashup kan zonder enig aanpassing gebeuren. Iedereen kan in principe een Mashup cluster maken voor eindgebruikers. Een cluster realiseren met de open API is flexibeler en kan ook breder ingezet worden. De open API is toegankelijk voor zowel eindgebruikers als eindgebruikers applicaties. Door het opzetten van een cluster beheer tool, waar MediaMosa installaties zich kunnen aan- en afmelden, kan een open API cluster heel dynamisch gemaakt worden. Het voordeel hiervan is dat instellingen met meer dan één MediaMosa installatie hun eigen cluster kunnen maken. In het hoofdstuk randvoorwaarden zijn een aantal richtlijnen gegeven om een cluster beheer tool te maken. Het belangrijkste is om goede afspraken te maken over de structuur van de cluster lijst van MediaMosa installatie. Er is een voorstel gedaan voor het opzetten van gegevens in deze lijst. Waarmee in ieder geval de lijst automatisch gewijzigd kan worden als een van de deelnemende installatie tijdelijk niet bereikbaar is.
Aanbevelingen
Het is aan te bevelen dat er vanuit MediaMosa een cluster op basis van de open API aangeboden wordt. Het open API cluster is flexibeler dan het mashup cluster en breder inzetbaar. Daarnaast biedt deze optie later nog de mogelijkheid tot caching als er performance issues optreden door veelvuldig gebruik. Een open API cluster ontwikkelen betekent: 1. Een cluster zoekcomponent toevoegen aan de open API. 2. Een cluster management tool ontwikkelen. 3. Aanpassingen aan het MediaMosa installatie proces en de admin interface voor aan- en afmelding bij de cluster management tool. Overwogen moet worden of iedereen zich zomaar bij een cluster kan aansluiten. Als bij installatie van MediaMosa de optie wordt aangeboden om tot het MediaMosa cluster te behoren op api.MediaMosa.org, dan kan dat betekenen dat deze cluster erg vervuild wordt met test installaties.
15