Aflevering 3: Content Database
Dit is de derde post uit de serie “Achter de schermen @nosnieuwemedia” waarin ik een beschrijving zal geven van de centrale content database zoals besproken in de eerdere posts.
De centrale content database vervult een centrale rol binnen de applicaties die door de afdeling Nieuwe Media van de NOS worden ontwikkeld. Dit centrale systeem heeft verschillende functies die ik deze blogpost nader zal toelichten. Elke functie is als een (onafhankelijke)module gebouwd waardoor het geheel modulair blijft en functionaliteit kan worden aan- of uitgeschakeld.

Algemene opbouw van de content database
Binnen de centrale content database wordt gewerkt met content elementen die allemaal een “standaard” set met metadata bevatten. Deze metadata is voor alle soorten content gelijk. Voorbeelden hiervan zijn bijvoorbeeld de titel, publicatie datum, hoofdcategorie en subcategorie. Door deze “standaard” set met metadata zijn componenten dus door het hele systeem op exact dezelfde wijze te benaderen. Door deze functionaliteit is bijvoorbeeld het leggen van relaties tussen deze componenten en het ontwikkelen van universele routines eenvoudig.
Importeren van content
Door middel van XML-bestanden wordt content aangeboden aan de content-database. Dit zijn content elementen van verschillende types zoals; artikelen, afbeeldingen, dossiers, video en audio. Naast deze redactionele content elementen bevat het systeem ook een aantal niet redactionele content elementen zoals bijvoorbeeld radio en televisie uitzendingen. Deze worden automatisch zonder tussenkomst van een redacteur in het systeem ingelezen.
Naast de bovenstaande content wordt de database ook voorzien van meta-informatie omtrent de daadwerkelijke bestanden die in het systeem gebruikt worden. Zo is een video bijvoorbeeld in meerdere bestandsformaten beschikbaar terwijl de metadata van de video maar één keer wordt ingevoerd.
Exporteren van content
Voor diverse doeleinden wordt de informatie uit de content database geëxporteerd. De RSS feeds die door de NOS worden aangeboden worden bijvoorbeeld vanuit de export module gegenereerd en statisch weggeschreven. Naast standaard RSS feeds worden ook XML feeds voor verschillende afnemers (zoals bijvoorbeeld narrowcasting partijen) gegenereerd en statisch opgeslagen.
Module Social
De module Social is als aparte module binnen de content database ontwikkeld. Deze module wordt bijvoorbeeld gebruikt voor het automatisch plaatsen van Twitter berichten voor verschillende NOS Twitteraccounts. Daarnaast kunnen anderen toekomstige koppelingen met sociale media eenvoudig worden gerealiseerd.
API
De content database beschikt over een eigen API waarmee informatie uit de content database kan worden opgehaald. Deze API wordt zowel voor zowel interne als externe toepassingen en koppelingen gebruikt. Een voorbeeld is de speciaal voor de Sony PS3 ontwikkelde NOS-applicatie, die de API gebruikt om informatie uit de content database op te vragen.
Over de Techiek
De complete content database is ontwikkeld in de programmeertaal PHP waarbij gebruikt wordt gemaakt van Zend Framework. Dit framework vormt een stabiele basis die naar eigen inzicht eenvoudig kan worden uitgebreid.
Alle informatie wordt opgeslagen in MySQL database(s) waarbij er gebruik wordt gemaakt van een master-slave(s) constructie. Deze constructie is zo opgezet dat er – indien gewenst – eenvoudig extra database servers kunnen worden toegevoegd.
In de volgende aflevering meer over de techniek achter en ontwikkeling van de uiteindelijke website.
