-
BEGRIJP JIJ HET?
Bij software komen een hoop termen kijken. Als klant kun je deze nog nooit gehoord hebben, waardoor het lastig te begrijpen is als we bepaalde data opvragen aan een klant of als we vertellen over nieuwe features in het systeem. Denk bijvoorbeeld aan content op maat; als je iets van het systeem wat je gebruikt voor je bedrijf wilt laten zien op het scherm (cijfers, verjaardagen e.d.), dan is hiervoor een API nodig die we dan implementeren in een HTML5 widget… Sorry, wat? Daarom hieronder een begrippenlijst met uitleg om het allemaal wat makkelijker te maken.
1. SaaS
Je hoort het in de software wereld wel vaker: SaaS. Maar wat betekent het nou eigenlijk? SaaS staat voor Software as a Service. Dit betekent dat de software via internet toegankelijk is. Klanten nemen een abonnement voor de software en betalen dan ook naar gebruik in plaats van het eenmalig aankopen van software. De klant hoeft zelf niets te installeren en alle gegevens worden in de cloud, dus online, op servers opgeslagen. Het voordeel hiervan is dat de software en alle gegevens daardoor vanaf elke computer met een internetverbinding toegankelijk zijn. Daarnaast wordt onderhoud, service en support bij de dienst geleverd door de partij waarbij het wordt afgenomen. Dit in tegenstelling tot lokale software: hier betalen klanten eenmalig een bedrag voor de software die zij vervolgens zelf moeten installeren en onderhouden. Met lokale software zijn de gegevens alleen lokaal, dus op de betreffende computer, beschikbaar.
De klant maakt gebruik van de software door in te loggen op de betreffende website van het bedrijf. Dit is via een browser, zoals Google Chrome of Safari van Apple.
2. Sprints
Sprints zijn onderdeel van de zogenoemde Agile software ontwikkelmethode. Een sprint is een periode, meestal 2 tot 4 weken, waarin specifieke taakjes worden voltooid en ter beoordeling klaar worden gezet. Denk hierbij aan nieuwe features, verbeteringen en bugfixes die over verschillende sprints worden gepland. Elke sprint heeft een cijfer die steeds oploopt (sprint 1, sprint 2 etc.), zodat er bijgehouden kan worden over hoeveel sprints bepaalde taken worden opgepakt.
Elk sprint begint met een meeting waarbij een planning wordt gemaakt. Via verschillende afdelingen binnen een bedrijf komen verzoeken voor o.a. nieuwe features en meldingen van bugs binnen. Deze verzoekjes worden tweewekelijks door het development team besproken en vervolgens ingepland in verschillende sprints. Door de onderverdeling van taakjes in sprints is het meteen duidelijk wanneer welke features, verbeteringen en bugfixes beschikbaar worden gesteld. Na het voltooien van een taak, wordt dit uitgebreid getest door een tester. Zodra alle taakjes zijn getest en er geen problemen zijn gevonden, volgt er een regressietest. Bij een regressietest wordt gecontroleerd of de aangepaste onderdelen van een applicatie of software nog steeds juist werken. Nadat deze succesvol is voltooid, worden alle wijzigingen naar de live server gezet, ofwel gereleased.
Het traject van een sprint is dus als volgt: verzoek komt binnen, verzoek wordt geplaatst in een sprint, developer werkt aan het verzoek in de betreffende sprint, zodra het verzoek is voltooid wordt er getest en daarna, indien succesvol, wordt er gereleased.
3. Releases
Het narrowcasting portal continu in ontwikkeling. Er worden bugfixes, verbeteringen en nieuwe features doorgevoerd. Developers werken hieraan in sprints. Een release, ook wel stabiele versie genoemd, is een versie van de software op de testserver waar ontwikkelingen op zijn doorgevoerd en waarvan de programmeurs nog niet weten of het vrij is van bugs. Daarom wordt er op de testserver getest of alles in orde is. Wanneer een sprint is voltooid, inclusief testen, wordt deze release naar de live server/productieserver gezet, ofwel de server die toegankelijk is voor klanten. Vanaf het moment dat de release live is gezet, maken klanten dus gebruik van deze versie. Klanten hoeven hier zelf niets voor te doen. Het updaten van de versie wordt gedaan door het bedrijf. Na een release worden er release notes klaargezet in het CMS en ook per nieuwsbrief naar klanten gestuurd. Hierin staat welke wijzigingen er zijn doorgevoerd. Meestal bevat een release diverse bugfixes, verbeteringen en nieuwe features.
4. CMS
Een CMS (contentmanagementsysteem) is een softwaretoepassing, meestal een webapplicatie. Via het CMS van het narrowcasting portal beheert de klant zijn of haar content, programmering en mediaspelers. Een CMS maakt het klanten dus mogelijk om eenvoudig en zonder veel technische kennis, documenten en gegevens op internet te publiceren.
Het CMS is de brug tussen de gebruiker en de onderliggende technieken, zoals de backend. De klant voegt via het CMS zijn of haar content toe of programmeert een afspeellijst. Het CMS zorgt er voor dat dit op de achtergrond wordt opgeslagen in databases en wordt ‘vertaald’ zodat mediaspelers de content en afspeellijsten kunnen afspelen.
Via een webbrowser logt de klant in op het narrowcasting portal. Na het inloggen komt de klant in het CMS. Via het menu aan de linkerzijde van het CMS kan de klant alle functionaliteiten aanroepen.
5. Animatie (t.o.v. statisch)
Een animatie is een serie van snel opeenvolgende beelden die bewegend beeld vormen. Een animatie voegt dus beweging toe aan een fragment waardoor er meer dynamiek is en het aandacht trekt. Wij ontwikkelen zowel widgets als templates met animaties. Het team van creatie maakt aantrekkelijke animaties en het technische team zorgt ervoor dat deze animaties goed worden afgespeeld op de mediaspelers.
6. HTML5
HTML (HyperText Markup Language) is een opmaaktaal voor webpagina’s. HTML5 is de laatste versie van deze standaard. Widgets worden in deze taal geschreven. In het CMS worden vele HTML5-widgets aangeboden. Het development team maakt deze widgets en zorgt dat ze beschikbaar zijn in het CMS. Wanneer een klant een widget op maat aanvraagt, wordt deze widget door ons geschreven in HTML5.
De klant kiest via het CMS een widget en kan deze vervolgens programmeren. Wij kunnen widgets op maat maken voor klanten, denk hierbij aan een bestaande widget in een eigen vormgeving, of een compleet nieuwe widget met bijvoorbeeld een koppeling met een systeem van de klant.
De volgende programmeertalen worden gebruikt in de widget:
- HTML5 = Opmaak.
- CSS = Styling
- jQuery = JQuery is een vrij JavaScript-framework voor dynamische en interactieve websites, onder andere voor het bewerken van het DOM en CSS en interactie met de webserver. Daarbij maken we ook gebruik van jQuery plugins.
Hoe het in het systeem gaat bij het aanmaken en programmeren van een widget:
- De klant maakt de widget aan
- De widget leest de feed/input uit en wordt gevisualiseerd d.m.v. CSS en jQuery
- De klant programmeert de widget op de mediaspeler
- De mediaspeler speelt het pakketje van HTML5 af (een HTML5-widget is een pakketje van verschillende programmeertalen)
7. Koppelingen
Koppelingen worden door ons ontwikkeld en onderhouden, wat betekent dat de klant hier zelf geen omkijken naar heeft. Zij kiezen in het CMS eenvoudigweg de widget met de gewenste koppeling. Een voorbeeld van een koppeling is een RSS-feed, bijvoorbeeld van NU.nl. De widget koppelt met de RSS-feed van NU.nl waarin nieuwsberichten staan. Als een klant deze widget aan haar programma toevoegt, dan worden de nieuwsberichten automatisch door de widget opgehaald en op het scherm getoond. Zo toon je altijd de laatste berichtgeving op scherm. Door middel van een koppeling kan een grote diversiteit aan informatie op het scherm worden getoond. Wij bieden standaard diverse koppelingen aan, maar ook klantspecifieke koppelingen zijn mogelijk.
8. API
Een API (application programming interface) zorgt ervoor dat een applicatie kan communiceren met een andere applicatie.
Een API is een set aan definities waarmee softwareprogramma’s onderling kunnen communiceren. Het dient als een interface tussen verschillende software applicaties waardoor de gebruikte code automatisch elkaar toegang tot informatie en/of functionaliteit geeft, zonder dat ontwikkelaars hoeven te weten hoe het andere programma exact werkt. API’s bestaan voor (web)applicaties, software bibliotheken en besturingssystemen en kunnen voor allerlei doeleinden worden ingezet.
De informatie halen we met de programmeertaal JQuery op. Dit kan bijvoorbeeld JSON, RSS, XML zijn. Hierbij enkele voorbeelden:
RSS: https://www.nu.nl/rss/games
XML: https://widgets01.cms-ds.com/transcode/handler/getOpenweather?lang=nl&city=Leiden
9. Schermindeling
Een schermindeling is een scherm die is opgedeeld in meerdere zones. Onderaan vind je bijvoorbeeld een footer, die ook wel tickertape, wordt genoemd waar je bijv. nieuwsberichtjes kunt laten zien. Aan de zijkant, de sidebar, kun je extra informatie tonen. Denk aan een volgnummer systeem, wachttijden of filenieuws. Het grootste gedeelte van het scherm bevat de fragmenten uit de afspeellijst die de klant heeft samengesteld.
De sidebar en tickertape worden geprogrammeerd op speler niveau. Dit wordt dus ten alle tijden getoond. Op dit moment is het bij een schermindeling nodig dat er wat instellingen worden gedaan, zodat de content die je hebt geprogrammeerd in het juiste kader (geschaald) op het scherm scherm verschijnt en niet gedeeltelijk achter de zijkant of onderkant verdwijnt. We zijn bezig met een verbetering waarbij dit automatisch wordt ingesteld bij het activeren van de schermindeling.
10. (Adobe) After Effects fragment
Een After Effects fragment is een video die wordt gegenereerd door het narrowcasting portal nadat de klant gegevens heeft ingevoerd, zoals tekst en eventueel afbeeldingen. Naast widgets zijn er dus After Affects fragmenten en die vormen samen het content aanbod in het account.
Nadat de klant in het account de gegevens voor de template heeft ingevoerd, zoals tekst en afbeeldingen, wordt het fragment op de server gerenderd. Nadat het renderen voltooid is, kan de speler het fragment afspelen. After Effects fragmenten verschillen hierin sterk ten opzichte van widgets: wanneer een widget wordt afgespeeld, wordt deze door de speler gerenderd. De speler maakt dus de berekeningen waar welke pixel moet komen en hoe de animaties moeten worden uitgevoerd. Voor After Effects fragmenten is dit al op de server gedaan en deze fragmenten vragen daardoor minder rekenkracht van de speler en zullen ook op elk type speler precies hetzelfde afspelen. Daar tegenover staat wel dat de After Effects fragmenten moeten worden gerenderd door de server en deze daarmee belasten (hoe meer After Effects fragmenten tegelijk worden aangemaakt, hoe langer het duurt voordat ze gerenderd zijn omdat ze in een wachtrij komen).
11. SMIL
SMIL (Synchronized Multimedia Integration Language) is kort gezegd de afspeellijst van een speler.
In het CMS stelt een klant een programmering samen. Zodra zij hier tevreden mee zijn synchroniseren zij deze met de mediaspeler. Dit is waar de SMIL een rol speelt. Wanneer een speler wordt gesynchroniseerd, wordt er een SMIL gegenereerd. In een SMIL staat alles wat de speler moet doen, dus denk aan welke fragmenten er moeten afspelen en wanneer, hoe laat de speler aan en uit moet en hoe de schermindeling is gedefinieerd. Dus alles wat een klant in het CMS heeft ingesteld.
Nadat een klant een programmering heeft klaargezet, wordt de SMIL door het systeem klaargezet op de server. De speler downloadt vervolgens de SMIL en leest deze, waardoor hij precies weet wat er moet afspelen.
Een klant is bij het SMIL proces niet betrokken. In het CMS stelt de klant een programmering samen en in de ‘achtergrond’ door de SMIL gegenereerd en automatisch naar de speler gestuurd.
12. Synchronisatie
Met synchronisatie worden de programmering en instellingen die een klant heeft ingesteld in het CMS gekopieerd naar een speler. De speler speelt dan dus precies af wat er op het moment van synchronisatie is geprogrammeerd en ingesteld.
Tijdens de synchronisatie wordt door het narrowcasting portal een SMIL gegenereerd voor de betreffende speler(s). Na synchronisatie wordt de SMIL binnen 5 minuten automatisch gedownload door een speler, mits deze online is. De synchronisatie gebeurt één keer per dag automatisch, maar spelers kunnen makkelijk handmatig gesynchroniseerd worden vanuit het CMS met de synchronisatieknop.
Kortom: met synchronisatie worden de actuele programmering en instellingen uit het CMS overgenomen door de mediaspeler.
Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.