Da ich lernbedingt derzeit nicht dazu komme, mich hier im Blog zum Weltgeschehen zu äußern, will ich wenigstens das Destillat meiner Mühen zu Protokoll bringen. Hier also der erste Teil zum Bereich Medieninformatik.
1 – Begriffsdefinitionen
2 – Dynamische Inhalte im Web
3 – Digitales Rechtemanagement
4 – Metadaten
5 – Streaming
1 – Begriffsdefinitionen
Zum Verständnis der weiteren Ausführungen sind einige Definitionen notwendig. Zuerst natürlich, was man unter Multimedia im Netz versteht.
Multimedia ist die Kombination von verschiedenen zeitabhängigen und zeitunabhängigen Perzeptionsmedien, insbesondere Audio und Video. Ein wichtiges Merkmal ist die Interaktivität.
Netz bezieht sich nicht auf die verschiedenen Telekommunikationsnetze der Vergangenheit, sondern auf das Internet als Overlay-Netzwerk. Endziel dieser Konvergenz ist es, dem Nutzer einen scheinbar allgegenwärtigen (ubiquitous) Service zu bieten, wobei sich der Nutzer nicht mehr um die Zugriffstechnologie kümmern muss.
Es geht also um interaktive Dienste mit physisch verteilten Dienstkomponenten.
Zentral ist der Begriff des Content, der mit “Inhalt” nur unzureichend übersetzt wäre und sich deswegen auch im Deutschen durchgesetzt hat. Dabei handelt es sich um interessante Information, meistens digitalisierte audiovisuelle Information, die eventuell urheberrechtsgeschützt ist. Ein Content Provider ist die Organisation, die verantwortlich ist für die Bereitstellung von Content für einen Multimedia-Dienst.
Ein Multimedia-Dienst ist ein Telekommunikationsdienst, der mehrere Medientypen synchronisiert aus Nutzersicht beinhaltet, evtl. mehrere Parteien und mehrere Verbindungen. Er erlaubt das Hinzufügen und Löschen von Ressourcen und Nutzern innerhalb einer einzelnen Session.
Eine Partei ist dabei entweder eine Organisation oder ein Mensch, der/die in das Angebot oder Nutzung eines Dienstes involviert ist. Endsysteme lassen sich weiter unterteilen in Allzweck-Endsysteme wie PC und PDA, Spezial-Endsysteme wie Handy oder Spielkonsolen und Hybrid-Endsysteme wie die Smartphones.
Ein Endsystem ist ein physisches Gerät, das teilnimmt an Multimedia-Diensten durch Informationsaustausch mit anderen Endsystemen übers Netzwerk.
Ein Terminal ist ein Endsystem, das direkt von einem Menschen bedient wird. Traditionell wird es Customer Premises Equipment (CPE) genannt. Ein Server ist dagegen ein Endsystem, das vom Dienstanbieter im Rahmen des Dienstangebots bereitgestellt und bedient wird.
Content Delivery ist die bedarfsgerechte Auslieferung des Contents. Sie kann mit unterschiedlicher Dienstgüte (Quality of Service = QoS) ausgeführt werden, je nach Fähigkeiten der zugrundeliegenden Netzwerktechnologie. Entscheidend sind dabei Bandbreite, Verzögerung, Jitter (Schwanken der Verzögerung) und Puffergröße. Content Delivery ist hauptsächlich relevant bei Conversational, Retrieval und Distribution Services, die gleich noch erläutert werden. Es sind drei Unterarten zu unterscheiden:
- Live-Content Service: Verzögerung soll minimal sein.
- Buffered-Content Service: Verzögerung soll sich in akzeptablem Rahmen befinden.
- Stored-Content Service: Kompletter Download vorm Anschauen.
Multimedia-Dienste lassen sich in zwei Arten unterteilen: zum einen interaktive Dienste, zum anderen Distributionsdienste. Die interaktiven Dienste gliedern sich in Conversational Services, Messaging Services und Retrieval Services.
Conversational Services sind Dienste, bei denen ein synchroner Informationsaustausch zwischen den Terminals erfolgt (d.h. beide sind zeitgleich im Netz). Dabei kommunizieren Terminals miteinander. Eventuell sind auch Server zwischengeschaltet. Ein prominentes Beispiel für einen solchen Dienst ist Skype.
Messaging Services zeichnen sich hingegen durch einen asynchronen Informationsaustausch aus. Das Senden einer Nachricht fällt nicht notwendigerweise mit dem Empfang zusammen. Auch hier kommunizieren Terminals miteinander. Zwischengeschaltete Server speichern die Nachrichten zum späteren Abruf. Bekannte Beispiele sind SMS und MMS.
Bei Retrieval Services liegt die gewünschte Information auf Servern zum Download oder Streamen bereit. Die Quelle ist also extern (kein Terminal), meist ein Content Provider. Häufig kommt es zu einer Stern-Architektur, d.h. ein Server bedient viele Clients. In den letzten Jahren tauchen häufiger Communities auf, die Content teilen.
Distributionsdienste sind die zweite Art von Multimedia-Diensten. Es gibt sie ohne individuelle Präsentationskontrolle, im Sinne eines digitalen Ersatzes von Radio oder TV, mit einfachem Broadcast oder Multicast. Mittlerweile setzen sich auch Dienste mit einer solchen Kontrolle, also begrenzter Interaktivität, durch, z.B. Near Video on Demand, das zusammen mit zeitverschobenem Aufnehmen erlaubt, TV-Filme zu einer gewünschten (und nicht vorgegebenen) Zeit zu konsumieren.
2 – Dynamische Inhalte im Web
Dynamischer Web-Content sind Inhalte, die dem Nutzer im Browser gezeigt werden und abhängig sind von externen Variablen wie Zeit, Archivinformationen oder Nutzeraktionen. Große Anwendungsgebiete sind E-Commerce, Foren, Social Networks und Massenmedien.
Es klingt vielleicht komisch, aber in den ersten offiziellen Web-Standards waren weder dynamische noch audiovisuelle Inhalte vorgesehen. Die Entwicklungen in diese Richtung nahmen häufig bei Browser-Herstellern wie Netscape oder Microsoft ihren Anfang. So stammt der Object-Tag aus den Schmieden Microsofts (und ist mittlerweile im HTML-Standard enthalten), während der Embed-Tag (heutzutage verschmäht, aber von vielen Browsern noch unterstützt) aus den Werkstätten Netscapes kommt.
Einbindung
Die übliche Einbindung von audiovisuellem Inhalt sieht wegen der Inkompatibilitäten folgendermaßen aus:
<object data="url/dateiname" type="application/x-shockwave-flash" width="100" height="100"> <param name="movie" value="url/dateiname"></param> <param name="quality" value="high"></param> <embed src="url/dateiname" width="100" height="100"></embed> </object>
Man bemerkt sofort die Redundanzen, die man sich eigentlich sparen könnte, wenn sich alle Browser an den Standard halten würden. Zur Erläuterung des Codes: Bei data ist der Ort anzugeben, wo man die Mediendatei findet. Type spezifiziert den Dateityp im MIME-Format. Weitere Attribute sind codebase (Basispfad als URI für die Interpretation relativer Pfade) und codetype (MIME-Typ für Player-Code). Die angegebenen Parameter muss der vom MIME-Format bestimmte Player interpretieren können, sonst werden sie verworfen. Alles, was innerhalb des Object-Tags steht, wird als Alternative angezeigt, falls die Anzeige des eigentlichen Objekts scheitert. Deswegen findet sich hier auch der Embed-Tag.
Funktionalitäten
Im Web gibt es klar spezifizierte Funktionalitäten von Server und Client.
Der Client ordnet anhand des erkannten Dateityps mithilfe der MIME-Registry des Browsers eine lokale Rendering-Software (Abspielprogramm) zu, die entweder als Browser-Plugin oder als eigenständiges Programm ausgeführt wird. Außerdem bietet der Client Interaktivität durch lokale Interaktionen, z.B. dynamische Menüs.
Der Server ist zuständig für die Speicherung der Mediendateien und der Meta-Informationen. Er managt die Indexierung und die Abfrage der Mediendateien. Auch der Server bietet Interaktivität durch Interaktionen mit serverseitigem Effekt (z.B. Datenbank-Updates) oder Interaktionen mit globalem Effekt (z.B. neuer Kommentar, neues Video).
Beide sind beim Streaming gefragt. Dabei handelt es sich um das Abspielen von unvollständigen Inhalten auf dem Client in vom Server gesteuerter Reihenfolge. Entscheidend beim Streaming sind Synchronisation, Buffering und Rate-Control. Eine Flusskontrolle (also Stop, Start, Pause etc.) sollte auch eingebunden sein, genauso wie eine Anpassung an Bedingungen des zugrundeliegenden Netzwerks. Zum Thema Streaming später noch mehr.
Realisation
Realisiert wird das Ganze clientseitig durch eine Skript-Execution-Engine im Browser. Der Webserver braucht dabei keine Skripts auszuführen, sondern nur die Skripts als Teil der Serverantwort mitzuschicken. Beispiele hierfür sind JavaScript und Java-Applets. Vorteil clientseitiger Skripts ist die Schnelligkeit, die Möglichkeit auch ohne Netzverbindung Skripts auszuführen und die Server-Unabhängigkeit. Nachteil ist natürlich die beschränkte Sicht und die Sicherheitseinschränkungen.
Serverseitige Realisation dynamischer Web-Inhalte bedingt, dass der Server eine Script-Execution-Engine hat. Der Client bzw. sein Browser brauchen dagegen keine Skripts auszuführen. Er erhält die vom Server berechnete Antwort. Beispiele dafür sind PHP, Servlets oder JSP. Vorteile serverseitiger Realisation sind die Möglichkeiten zur persistenten Speicherung großer Datenmengen, deren Vernetzung, der Zugriff auf Ressourcen, Eingabeverarbeitung und Berechnungen basierend auf vorhandenen Informationen und die Unabhängigkeit von Browsern. Außerdem kann der Server die Ausgabe speziell an die einzelnen Browser anpassen und deren Features nutzen (Cookies, User Agent ID).
CGI und PHP
Ein erster Ansatz auf dem Gebiet der dynamischen Inhalte war CGI (Common Gateway Interface), das Programme in beliebigen Sprachen erlaubt und auf Befehl auf dem Webserver ausführt. CGI ist allerdings nicht zu unrecht in Verruf geraten, da es einerseits große Sicherheitsrisiken birgt (Injektion von schädlichem Code, unbemerkte Bugs in den Programmen) und andererseits nicht die beste Skalierbarkeit besitzt. Calls sind nämlich teuer, da jeder Call einen neuen Prozess erzeugt. In verschiedenen Varianten von CGI wurde das natürlich verbessert. Trotzdem befindet es sich auf dem absteigenden Ast.
Anhaltender Beliebtheit und ungeheurer Verbreitung erfreut sich PHP (Personal Home Page Toolkit Hypertext Preprocessor). Seine Syntax hat Anleihen aus Skriptsprachen und aus C. PHP ermöglicht den einfachen Einsatz von verschiedensten Webtechnologien wie z.B. Cookies. Die Anbindung an Datenbanken wie MySQL ist auch schnell zu bewältigen. Einem PHP-Programm kann man Parameter mit den HTTP-Methoden GET und POST übergeben. Bei GET werden die Variablen als Bestandteil der URL codiert und übergeben. Man kann sie also auch manuell durch Eintippen manipulieren. Etwas sicherer ist POST, bei dem der Server auf die Übertragung der Variablenwerte nach der übrigen Anfrage wartet und sie vom Standard-Eingabekanal einliest.
Wie schon erwähnt fällt die dauerhafte Speicherung von Information auf Server-Seite leichter. Es gibt Datenbanken mit großen Datenmengen, die man auch extern aktualisieren kann und eine Anbindung an komplexe Systeme. Auf Client-Seite kann man hingegen nur geringe Datenmengen speichern und unterliegt aus Sicherheitsgründen diversen Einschränkungen. Eine wichtige Möglichkeit der Datenspeicherung sind Cookies, die aus Name/Schlüssel, Wert, Verfallsdatum und optional Domäne, Pfadname und Sicherheitsinformationen bestehen. Sie werden über HTTP übertragen, wenn eine Anfrage nach einem zugehörigen Dokument (der entsprechenden URL) erfolgt. Zugreifen kann nur der Erzeuger des Cookies. Die Erzeugung selbst erfolgt clientseitig per JavaScript, serverseitig über PHP.
AJAX
Einen großen Hype hat AJAX in den letzten Jahren verursacht. Es steht für “Asynchronous JavaScript And XML” und bedeutet, dass die Daten vom Server unabhängig von der (Änderung der) Präsentation geladen werden können. Der entscheidende Vorteil ist, dass dadurch eine flüssigere Interaktion möglich ist und durch regelmäßigere Updates die Präsentation immer aktuell gehalten werden kann. Der Kontrollfluss einer AJAX-Anfrage sieht wie folgt aus:
- Aufruf des entsprechenden JavaScript-Codes durch den Browser
- Aufsetzen eines Anfrage-Objekts (XmlHttpRequest)
- Einrichten eines Callback-Handlers (vergleichbar mit einer Rückrufnummer)
- HTTP-Request an Server schicken
- Rückgabe der Kontrolle von JavaScript an den Browser
- Server schickt HTTP-Antwort an den Callback-Handler
- DOM der Webseite updaten
Nach Schritt 5 kann der Nutzer ganz normal weiterarbeiten, während im Hintergrund der Server seine Antwort berechnet und schickt. Durch Nutzung des DOM lässt sich die Antwort auch als lokale Änderung einflechten; ein Neu-Laden der Webseite bleibt einem somit erspart.
Dadurch entstehen aber auch eine Reihe von Problemen. Zum ersten funktioniert der Zurück-Knopf des Browsers nicht mehr, da der Browser dynamisch geänderte Seiten nicht speichert. Änderungen im Formular kann man also mit dem Knopf nicht rückgängig machen. Zum zweiten kommt es durch das Polling, also die regelmäßigen Anfragen, zu einer höheren Netzlast. Die Annahmen zum Traffic-Engineering ändern sich also. Außerdem sind Lesezeichen schwer möglich. Mithilfe von Anchors (#) lässt sich das Problem allerdings ganz gut umschiffen. Schwer wird es auch für Suchmaschinen – sie können dynamisch geänderte Webseiten nicht indexieren. Dynamische Änderungen sollten also nicht suchmaschinen-relevant sein. Da XML wegen der länglichen Dokumente zur Redundanz tendiert und bandbreitenhungrig ist, geht man neuerdings auch dazu über, das sparsamere JSON zu nutzen.
Applets, Servlets, JSP
Eine andere Möglichkeit dynamischen Webinhalt bereitzustellen sind Applets. Dabei handelt es sich um kleine Java-Programme, die man in HTML einbetten kann und von der Browser-Software direkt oder per Plugin ausgeführt werden. Auf Nutzereingaben wird per Eventhandler reagiert. Dadurch, dass Applets lokal ausgeführt werden, haben sie vollen Zugriff auf Eingabegeräte. Außerdem können sie alle Grafik- und Java-Bibliotheken nutzen (Java2D, Swing, …). Durch das Konzept der Sandbox-Security haben Applets weder Lese- noch Schreibrechte, können keine Anwendungen ausführen, keine Verbindungen öffnen und keine externen Bibliotheken laden. Es gibt auch Trusted Applets, die lokal installiert werden können und signiert und verifiziert sind.
Applets befinden sich dennoch auf dem absteigenden Ast, da ihre Vorteile (Interaktivität, Grafikprogrammierung, keine Netzlast, dezentrale Ausführung, Skalierbarkeit) von den Nachteilen überwogen werden. Sie sind immer abhängig vom Browsertyp, dessen Version und der Java-Version und (u.a. deswegen) als nicht sehr verlässlich berüchtigt. Außerdem ist das Debuggen problematisch.
Eine weitere Variante sind Servlets (Server Applets). Dabei wird der dynamische Inhalt von einem Java-Webserver produziert, der das gewünschte Servlet ausführt (Template Method). Sie sind Teil von JavaEE und benötigen einen entsprechend konfigurierten Server (z.B. mit Apache Tomcat).
Java Server Pages (JSP) bauen auf Servlets auf. Server Pages werden beim ersten Aufruf in Servlets übersetzt und benötigen deswegen eine ebensolche Infrastruktur zur Ausführung. JSP ist von der Nutzung her ähnlich wie PHP. Man schreibt Befehle entweder mitten in den HTML-Code oder generiert eigene Files mit den entsprechenden Kommandos. Manche empfinden die Mischung von Java und HTML als unordentlich und empfehlen deswegen JavaBeans, TagLibraries oder JSPX als bessere Wege. Alternativen zu JSP ist ASP und ASP.NET von Microsoft und Python Server Pages.
3 – Digitales Rechtemanagement
Zum Schutz des geistigen und materiellen Eigentums am produzierten Content wurde das Urheberrecht an die neuen Gegebenheiten angepasst. In den USA geschah dies schon 1976, als man drei Doktrinen zählte:
- “Fair Use”: Die private Nutzung eines Werks ist erlaubt, solange keine Schädigung dessen Marktwertes eintritt.
- “First Sale”: Der Käufer bekommt alle Erlaubnisse und Rechte abgesehen vom Urheberrecht auf den Inhalt.
- “Public Domain”: Nach 70 Jahren wird jedes Werk vom Urheberrechtsschutz befreit.
1998 folgte der Digital Millenium Copyright Act, kurz DMCA, der neben anderen Dingen festlegte, dass es verboten ist, einen vorhandenen Kopierschutz zu umgehen.
Das Gesetz nahm sich Deutschland zum Vorbild, das sein 1995 geschaffenes Urheberrecht 2003 im ersten Korb novellierte. Es betrifft nur natürliche Personen (in Amerika auch juristische). Unterschieden werden zwei Rechte: zum einen der Urheber-Persönlichkeitsschutz, der nicht veräußerlich ist, und (veräußerliche) Verwertungsrechte, die besagen, dass der Rechteinhaber über die Vervielfältigung entscheidet. Eine Privatkopie ist grundsätzlich erlaubt (§53), allerdings nicht dann, wenn ein Kopierschutz vorhanden ist (§93a). Es wurde eine Pauschalvergütung für Privatkopien geschaffen (Geräteabgabe), deren Höhe unter den Beteiligten auszuhandeln ist. Der Tausch von urheberrechtlich geschützten Inhalten ist verboten. Eine Bagatellklausel existiert nicht.
Definitionen und vorhandene Modelle
Im Rahmen des Digitalen Rechtemanagement (DRM) gibt es eine Reihe von Begriffen, die zu erläutern sind:
- Rightsholder: Partei mit geistigen Eigentumsrechten
- User: Partei, die beabsichtigt, Inhalte mit geistigen Eigentumsrechten zu nutzen. Dabei gibt es Licensees (Lizenznehmer), Buyers (Käufer) und Grantees (Lizenzaussteller).
- Content Owner: Rightsholder, der evtl. nur Teilrechte innehat
- Rights Transaction: Übertragung von Rechten
- Agent: Juristische Person, vom Rightsholder als Stellvertreter in der Übertragung autorisiert
- Royalties: Ausgleichsahlung an Rightsholder oder Agent für die Nutzung der geistigen Eigentumsrechte
- Rights Management: Geschäftsprozesse für juristische und kommerzielle Zwecke zum Verfolgen von Rechten, Inhabern, Lizenzen, Verkäufen, Abgaben und zugehörigen Vereinbarungen
- DRM: Rechtemanagement mit Nutzung digitaler Technologien
Traditionelles Rechtemanagement zeichnete sich durch Zusammenschlüsse und formale Übereinkünfte aus. So wurden sogenannte Copyright Clearance Center geschaffen, die gebündelte Pakete anbieten und Abgaben gemäß statistischen Umfragedaten erheben. Hierzulande ist v.a. die VG Wort bekannt; ein anderes Beispiel wäre die IFRRO. Das Konzept ist erfolgreich und verursacht wenig Overhead. Andere Modelle sind separate Vereinbarungen, z.B. Pay-per-Use, oder die freiwillige Lizensierung. Auch verpflichtende Lizenzierungen sind bekannt, v.a. bei politischen Regulierungen. Für Furore sorgen immer mal wieder die Abgaben sammelnden Organisationen wie die GEMA oder die ASCAP, die z.B. für öffentliche Aufführungen einen Obolus verlangen. All diese Modelle sind im Internet schwer bis unmöglich anzuwenden.
Ein neuerer Ansatz ist Creative Commons, dessen Lizenzen auf dem Motto “Some Rights Reserved” basieren. Dabei gibt es vier Grundrechte, die sich zu einem Lizenzmodell kombinieren lassen:
- BY – Attribution: Alles ist erlaubt, solange die Quelle angegeben ist.
- SA – Share Alike: Vervielfältigung und Derivate sind ok, wenn sie derselben Lizenz unterliegen.
- NC – Non-Commercial: Alles ist erlaubt, solange es nicht-kommerziell ist.
- ND – No Derivative Works: Nur wörtliche Kopien sind erlaubt.
Grundlegend kann man die Welt des DRM in drei fundamentale Rechtetypen unterteilen:
- Render-Rechte: Darunter fallen Drucken, Abspielen/Anzeigen und Exportieren.
- Transport-Rechte: Kopieren, Transfer/Übergabe und Leihen.
- Derivat-Rechte: Extrahieren, Editieren und Einbetten.
Mit den drei Rechtetypen und neun Grundrechten lässt sich jegliche Situation modellieren. Trotzdem wurden noch zur Präzisierung weitere Rechte geschaffen, so das Backup-Recht (Sicherheitskopie), Caching-Rechte (temporäre Kopie für bessere Performanz) und Datenintegritäts-Rechte (redundante Information gegen Dateifehler).
Um aus diesen Rechten Lizenzen zu konstruieren, benötigt man noch Attribute bzw. Dimensionen. Ein Attribut ist die Consideration, d.h. der finanzielle Ausgleich, z.B. in Form von Geld oder persönlichen Daten. Das zweite Attribut sind die Extents, sprich das Ausmaß der Nutzung, z.B. die zeitliche Länge, Anzahl der Wiederholungen oder Anzahl der einzelnen Kopien. Dazu kommen noch die Nutzertypen, z.B. Abokunden oder Besucher, Externe oder Studenten.
Ein Kinobesuch würde sich also folgendermaßen darstellen: Render-Recht = Abspielen, Consideration = Ticketpreis, Extents = einmalig, Nutzertyp = alle im erlaubten Alter.
Rechtetransaktionen können Rechte verändern. Eine Aufnahme macht beispielsweise den Extent ewig. Sie können auch Rechte hinzufügen, z.B. die Erlaubnis 30-Sekunden-Samples von Musikstücken im Radio abzuspielen (Extrahieren und Einbetten).
Herausforderungen
Die entscheidenden Fragen beim Rechtemanagement sind: Wie kann man die Einhaltung der Rechte absichern? Wie kann man den Ursprung (den Urheber) einer Datei herausfinden? Wie kann man den Inhalt nur bestimmten berechtigten Nutzern anzeigen?
Die Antworten darauf sind vielfältig und immer noch kontrovers diskutiert. So versucht man zum Beispiel mittels Superdistribution sicherzugehen, dass Lizenzen vorhanden sind. Superdistribution heißt, dass der Content innerhalb einer übergeordneten Komponente verpackt ist, die außerdem noch weitere Dinge beinhaltet, z.B. Bezahlmaßnahmen, Lizenzchecks oder dergleichen. Dafür ist allerdings sowohl beim Content Provider als auch beim Client Kompatibilität nötig: Der Provider muss das Paket so schnüren, dass ein Client, der die nötige Entpack-Software (meist in der Rendering-Software integriert) hat, die Superdistributionsroutinen ausführt und dann auf den Inhalt zugreifen kann.
Eine grundlegende Maßnahme ist die Standardisierung einer gemeinsamen Sprache. Bei DRM ist das die Extensible Rights Management Language (XrML). Mithilfe von XrML (oder ODRL) lassen sich die Rechte spezifizieren. Die Einhaltung der Rechte muss dann über geeignete Maßnahmen sichergestellt werden. XrML hat eine eigene Terminologie, die ich kurz erläutern will. Es gibt einen Grant, der alle Aspekte beschreibt:
- Principal: Partei, der die Rechte zuerkannt werden.
- Resource: Objekt, auf das sich der Grant bezieht (z.B. Datei).
- Right: Verb, das der Nutzer auf der Resource ausführen darf.
- Condition: Bedingungen, unter denen der Grant gilt.
Die Lizenz besteht dann aus einer Sammlung von Grants, dem Issuer (Herausgeber) und zusätzlicher Information wie Beschreibung oder Ablaufdatum. XrML erweitert außerdem die oben genannten Rechtetypen noch um Dateizugriffsrechte und Installationsrechte.
DRM mit Verschlüsselung
Um abzusichern, dass nur berechtigte Nutzer auf den Content zugreifen können, wird Verschlüsselung eingesetzt. Eine Lizenz beinhaltet dann also Schlüssel, die an die spezifizierten Rechte gebunden sind. Zur Durchsetzung der Rechte ist es nötig, dass die Nutzer und Geräte eine Identität besitzen. Die Nutzeridentifikation läuft dabei entweder über die Eingabe von Nutzername und Passwort ab (das ist kritisch, weil es weitergegeben werden kann) oder über biometrische Daten oder über ein Digitales Zertifikat, das von einer Dritten Partei ausgestellt wird. Die Geräteidentifikation geschieht über ein Auslesen der Seriennummern (Abspielgerät, Prozessor, etc.) durch Software, IP-Adresse (ungut wegen bspw. NAT) oder Kombination von Identifikationsinformationen wie Seriennummern, MAC-Adresse, Gerätekennung und anderen Daten. Dieser Eingriff in die Privatsphäre wird von vielen als Gegenargument zu DRM vorgebracht.
Das Abspielen von geschütztem DRM-Content läuft dann folgendermaßen ab:
- Der Nutzer erwirbt ein verschlüsseltes Inhaltspaket, z.B. per Download
- Der Nutzer verlangt seine Rechte auszuführen, z.B. das Abspielen der Audiodatei. Seine Rendering-Software (Abspielprogramm) aktiviert den DRM-Controller.
- Der DRM-Controller bestimmt die Identität des Nutzers und des Inhalts und kontaktiert den Lizenzserver (evtl. nach Ausfüllen der Registrierung)
- Der Lizenzserver authentifiziert den Nutzer mittels einer Identitäts-Datenbank.
- Der Lizenzserver schaut die Rechtespezifikationen für den angefragten Inhalt nach.
- Falls notwendig, wird eine Finanztransaktion gestartet.
- Der Lizenzgenerator kombiniert die Rechteinformationen, die Client-Identität und die Decrypt-Keys (Schlüssel) und verpackt und verschlüsselt sie
- Die Lizenz wird an den Client geschickt.
- Der DRM-Controller entpackt und entschlüsselt den Inhalt und reicht ihn an die Rendering-Software weiter
- Die Rendering-Software spielt den Inhalt ab.
Fast jeder Schritt kann zum Ziel von Angriffen werden. So kann aus dem Content Repository (so etwas wie die Lagerhalle) des Servers der unverschlüsselte Content geklaut werden. Eine andere Möglichkeit ist der Diebstahl des verschlüsselten Inhaltspakets. Außerdem könnte man die Decrypt-Keys klauen oder die Identitäten. Denkbar ist auch der Diebstahl des entschlüsselten Inhalts auf dem Client oder des gerenderten Inhalts. Aus diesem Grund ist es sehr wichtig, dass DRM-Controller und Abspielprogramm sehr eng gekoppelt bzw. ineinander integriert sind, sodass z.B. kein Zwischenspeichern nötig ist.
Trusted Computing
Eine weitere Möglichkeit des Schutzes ist Trusted Computing. Durch verschiedene Maßnahmen soll ein hardwarebasierter Schutz geistigen Eigentums ermöglicht werden:
- Endorsement-Key in der Hardware
- Memory Curtaining: Zugriffschutz auf bestimmte Speicherbereiche per Hardware. Dabei wird auch das Betriebssystem ausgeschlossen!
- Secure IO: Absicherung der Eingabe/Ausgabe-Kanäle
- Sealed Storage: Informationen wie Schlüssel werden generiert statt gespeichert. Verschlüsselung erfolgt samt Programm- und Hardware-ID.
- Remote Attestation: Unautorisierte Änderungen der Hardware können von außen festgestellt werden.
Diese Brachialmethodik trifft natürlich auf erheblichen Widerspruch in der Internet-Gemeinde. Man befürchtet nebst anderen Gründen den Missbrauch der gewonnenen Daten und der möglichen Methoden, Probleme beim Wechseln der Hardware und schwere Probleme im Fehlerfall. Trusted Computing konnte sich bisher nicht durchsetzen. Auch DRM hat es schwer und wird zunehmend wieder zurückgefahren, z.B. im Online-Musikvertrieb. In anderen Bereichen wie dem Vertrieb von Kinofilmen (Master-Tapes) hat es sich allerdings bewährt.
Watermarks
Eine jahrtausendealte Technik ist das Setzen von Wasserzeichen (Watermarks). Im digitalen Bereich beinhalten sie meist Metadaten des Dokuments und werden genutzt, um die Integrität und den Ursprung eines Dokuments zu sichern. Es gibt universelle (beim gleichen Dokument immer gleich) und individuelle Watermarks, die auch “Fingerprint” genannt werden. Wasserzeichen haben fünf Charakteristika:
- Undetectability: Watermark beeinflusst Inhalt nicht.
- Robustheit: Watermark überlebt Kopiervorgänge.
- Capacity: Soviel Inhalt wie möglich passt in das Wasserzeichen.
- Sicherheit: Watermark widersteht Löschen und Ändern.
- Effizienz: Der Overhead beim Einfügen und Extrahieren ist erträglich.
Wasserzeichen finden in vielen Bereichen Anwendung, darunter beim Urheberrechtsschutz, beim Verfolgen von individuellen Kopien (”Fingerprinting”), bei der “Copy Control” (Jedes Kopiergerät hat ein Wasserzeichen), beim “Broadcast Monitoring”, einem automatischen Tracking z.B. für Werbung, bei der Entdeckung unautorisierter Modifikationen, bei Annotation und Indexierung, in der Medizin zum Schutz von Patientendaten und bei der verdeckten Kommunikation.
Die Erstellung von Wasserzeichen kann man in zwei Bereiche klassifizieren. Der eine ist die Spatial Domain (räumliche Domäne). Zu den Techniken zählen LSB-Replacement (Ersetzen des niedrigwertigsten Bits), Patchwork (stochastische Prägung des Bildes) und Spatial Quantizer. Sie sind nicht so komplex, allerdings auch weniger sicher und robust als die Möglichkeiten der Frequency Domain. Ihre Techniken basieren auf der Transformation in den Frequenzraum (DCT, DFT, DWT). Ein Beispiel dafür ist Spread-Spectrum Encoding, d.h. das Signal wird über mehr Bandbreite als nötig gemäß dem Schlüssel verteilt und in den mittleren Frequenzen ein Wasserzeichen (z.B. mit Noise) versteckt.
Auch Wasserzeichen kann man angreifen. So gibt es die …
- Removal Attack: Rekonstruktion der Originalinformation, z.B. per Medianfilter (Watermark wird als Noise betrachtet). Eine Variante für fingerprinted content ist die sogenannte Collusion Attack.
- Oracle Attack: Durchführen minimaler Änderungen (z.B. an der Luminanz), bis der Detektor anspringt.
- Stirmark Attack: Kleine geometrische Änderungen stören die Synchronisation in der Wasserzeicheninformation, wodurch es verlorengeht.
Robuste Wasserzeichen sind also verdammt schwer zu erstellen.
4 – Metadaten
Der Überfluss an Medien macht es immer schwerer, im digitalen Wald den gewünschten Baum zu finden. Für solche Zwecke wurden Metadaten eingeführt, die bei der Organisation, Indexierung und der Suche helfen sollen. Metadaten lassen sich für alle Inhalte erstellen. Content beinhaltet ergo nicht nur die Essence (also Programm-Material wie Audio, Video, etc.), sondern auch Metadata, die die Essence beschreiben oder deren Nutzung erklären. Sie können separat oder gemeinsam mit der Essence (embedded metadata) gespeichert werden.
Probleme mit Metadaten basieren meist auf Faulheit und Vernachlässigung. So werden die beim Erstellen der Essenz anfallenden Metadaten (Creation Metadata) oft ignoriert, z.b. EXIF bei JPEG. Die Administration und Pflege manuell hinzugefügter Metadaten wird oft vernachlässigt. Außerdem sind verschiedene Formate auf dem Markt, die speziell auf die Medientypen, Programme und Hersteller zugeschnitten sind. Dadurch sind sie untereinander inkompatibel. Es gibt außerdem eine solche Bandbreite an Metadaten, dass die Beachtung aller Ebenen sehr zeitaufwendig und teuer wird. Es stellt sich also die Frage, welche Metadaten sinnvoll sind und erzeugt werden sollten, wieviele davon genutzt werden und wann man sie erzeugen sollte.
RDF und AAF
Ein Ansatz in diesem Bereich ist RDF, das im Semantic Web Anwendung findet. Allerdings hat es sich nicht wirklich im Bereich Metadaten durchgesetzt.
Um die verschiedenen Metadaten in der Filmindustrie unter einen Hut zu bekommen, entwickelten die Verbände EBU und SMPTE Ende der 90er einen Standard, der sich zum Multimedia-Dateiformat Advanced Authoring Format (AAF) weiterentwickelte, das heute als Industriestandard gilt und cross-platform einsetzbar ist. In AAF gibt es folgende Arten von Metadaten (MD):
- Identification & Location MD: dienen der Identifikation eines Items.
- Administration MD: beschreiben Rechte, Zugriff, Sicherheitsklassifikation, Verschlüsselung, Hörerliste und andere Geschäftsinformationen.
- Interpretive MD: zeigen Namen, Künstler, Organisation und Klassifikation.
- Parametric MD: beschreiben Signalcodeparameter, Geräteigenschaften, Sensorparameter, Speicherungs- und Streamingparameter.
- Process MD: Zusammensetzung der Essenz, z.B. Bearbeitung und Komposition.
- Relational MD: zeigen Zusammenhänge und Beziehungen auf.
- Spatio-Temporal MD: beschreiben Ort, Zeit, Aufnahmewinkel, Koordinaten, etc.
MPEG-7
Ein ambitionierter Standard auf dem Gebiet der Metadaten ist MPEG-7. Es unterteilt Metadaten in folgende Typen:
- technische MD: Form (Datenformat, Auflösung), Datum (Zeit), technische Parameter (Beleuchtungszeit, …)
- inhaltsbeschreibende MD: Hier wird noch in Low Level und High Level unterteilt. Low Level MD sind bei Video beispielsweise Objektformen, Positionen oder Pfade, bei Audio z.B. Tonart oder Tempo. High Level MD beschreiben höhere semantische Ebenen, bei Video z.B. die Szene, bei Audio Titel oder Komponist.
- zusätzliche Informationen: Digitale Rechte, Klassifikation, Kontext, Links, …
MPEG-7 definiert einige Begriffe, die zu erläutern sind:
- Feature: distinktives Charakteristikum mit bestimmter Bedeutung, kann durch mehrere Descriptoren repräsentiert werden.
- Descriptor: definiert Syntax und Semantik von Feature-Repräsentationen.
- Descriptorwert: Instanzierung eines Descriptors.
- Descriptor Scheme: Strukturierte Komposition von Descriptoren und Description Schemes.
- Description: Instanz eines DS mit passenden Descriptorwerten.
MPEG-7 klassifiziert Metadaten in die Teilgebiete Content Management (z.B. Medieninformation wie Dateiformat, Creation-Information wie Zeit oder Nutzungsinformationen wie Rechte), Content Structure (Segmente und deren Relationen) und Content Semantics (narrative Welt für einen Teil des Inhalts).
Auf die Strukturierung mit Segmenten soll noch etwas näher eingegangen werden. Segmente besitzen Attribute, die man in generische, medientypabhängige und spezielle Features unterteilen kann. Unter generische Features fallen die Medien-/Creation-/Nutzungsinformationen und Annotationen. Medientypabhängige Features sind visuelle oder akustische Features. Spezielle Features für Segmente sind Mask-Descriptor, die Wichtigkeit von Descriptoren (bestimmt durch MatchingHint und Point of View, z.B. Priorisierung der Heimmannschaft beim Sport) und Ink Segment Descriptoren, die der Handschrifterkennung dienen.
Segmente können in Subsegmente zerlegt werden, die sich in Raum und Zeit überlappen können und auch nicht das komplette Segment abdecken müssen. Außerdem lassen sich Segmente in Relation bringen, einerseits durch ihre inhaltliche Struktur (in Form von hierarchischer Dekomposition oder einem Segment-Relationship-Graphen) und andererseits durch vordefinierte Relationen (generisch, räumlich, zeitlich).
Um dem Nutzer unter die Arme zu greifen, gibt es verschiedene Techniken, die Features automatisch zu extrahieren. Bei Farben bewerkstelligt man dies mit einem Histogramm oder einem Farbcluster. Texturen kann man mittels Spektralverteilung extrahieren, Bewegungen mithilfe von Vektorhistogrammen und parametrischen Modellen. Konturen sind schwer herauszuziehen; hier behilft man sich mit “Moments” und Wavelet-Koeffizienten. Gesichtserkennung ist hingegen heutzutage kein Problem mehr; sie geschieht auf Vektorbasis und mittels Similarity-Matching (Ähnlichkeitserkennung). Bei komprimierten Datenformaten wie JPEG oder MPEG-2 kann man die Informationen der Frequenzraumtransformation bzw. der Bewegungsabschätzung wiederverwenden.
Auch für Regionen und Konturen gibt es Form-Descriptoren. Region Shapes definieren sich durch ihre Pixelverteilung und können komplexe Objekte mit mehreren unverbundenen Regionen beschreiben. Die Formanalyse basiert auf “Moments” und wird durch die Angular Radial Transformation berechnet, die invariant gegenüber Rotation und Verzerrung ist. Contour Shapes kann man mithilfe der Curvature Scale-Space-Repräsentation erkennen. Sie erlaubt die Extraktion charakteristischer Konturformen, ähnlich der menschlichen Wahrnehmung.
Im Falle von Musik werden individuelle Noten oder Akkorde extrahiert und daraus ggf. eine Tabulatur aufgebaut. Hilfreich dabei sind Sonogramme bzw. Spektrogramme. Auch eine Identifikation der beteiligten Instrumente ist möglich. Auch das Tempo und Phrasen/Abschnitte (Refrain usw.) können mithilfe einer Self-Similarity-Matrix erkannt werden. Gleiches gilt für das Genre.
5 – Streaming
Streaming bezeichnet die (Echtzeit-)Auslieferung von Bewegtbildern, Text und Ton übers Internet. Es gibt verschiedene Arten von Streaming:
- Download & Play: Zuerst wird die Datei komplett heruntergeladen.
- Progressive Download: Abspielen startet schon während dem Download, aber Abspielrate und Programm-Bitrate sind unabhängig voneinander.
- True Streaming: Medium wird in Echtzeit betrachtet. Die Raten sind etwa gleich. Die Verzögerung zwischen Senden und Empfangen des Datenpakets wird gering gehalten. True Streaming lässt sich noch weiter unterteilen in Static File Streaming (Auslieferung von vorher aufgenommenen Medien on-demand) und Live Streaming (direkte Einspeisung während der Aufnahme, z.B. bei Webradios).
Streaming Delivery Chain
Streaming hat eine charakteristische Kette von Transfervorgängen, die sogenannte Streaming Delivery Chain. Sie spielt sich folgendermaßen ab:
- Audio-/Video-Aufnahme
- Encoding: Formatkonversionen, Kompression, Indexierung und Metadaten-Erzeugung. Hierbei helfen Encoding Service Provider und Content Distribution Service Provider (CDSP) als Organisationen, als Hardware dienen Enconding Stations, Workstations und automatische Server.
- Serving: Speicherung von Live-Aufnahmen (Buffering und Archivierung) und Static Files (Archivmanagement und Retrieval), Streaming als Request-Response-Mechanismus wie bei Webservern und Interaktivität durch fernbedienungsähnliche Steuerung oder Hyperlinks. Fürs Speichern werden Media Archive Servers und organisatorisch CDSP und Hosting Service Provider (HSP) verwendet, beim Streaming kommen CDNs zum Einsatz und HSP, CDSP und ISP.
- Distribution: Beachten der QoS, Overprovisioning (Überversorgung), detaillierte Reservierung (mit RSVP), Traffic Classes, Resourcenmanagement und technologie-spezifische Lösungen (wie der Asynchronous Transfer Mode). Auch hier werden CDNs eingesetzt nebst CDSP und ISP.
- Anschauen bzw. Anhören des Streams.
Entscheidungen zur Infrastruktur sind abhängig von der erwarteten Geschäftsgröße und der benötigten Verlässlichkeit.
Streaming-Protokolle und Buffering
Fürs Streaming gibt es spezielle Protokolle, deren bekanntester Vertreter RTP (Real-Time Transport Protocol) ist. RTP basiert auf IP und UDP. Es benötigt also zusätzliche Netzwerktechnologien für QoS-Sicherung. Genutzt wird es von Apple Quicktime und RealSystems. In diesem Verbund gibt es auch noch das Real-Time Control Protocol (RTCP), das die Übertragung selbst kontrolliert. Es schickt periodisch Statusinformationen an die Teilnehmer der Streaming-Session. Sie enthalten Feedback zur Dienstgüte der Übertragung für die adaptiven Codecs, eine Identifikation des Senders, die Anzahl der Teilnehmer zur Anpassung der Senderate zwecks Verhinderung von Netzüberlast und weitere Infos wie die Namen der Teilnehmer o.ä.. Dritter im Bunde ist das Real-Time Streaming Protocol (RTSP). Es dient der Präsentationskontrolle im Sinne einer Fernbedienung, hilft beim Retrieval der Medien vom Server und kann einen Server zu einer Konferenz einladen.
Die Qualität beim Streaming ist abhängig vom Netzwerk und adaptiven Codecs auf Client- und Server-Seite. Außerdem ist Buffering entscheidend. Bei konstanter Verzögerung ist es nicht nötig, aber bei variierender Verzögerung (Jitter). Die benötigte Puffergröße wird mittels Testübertragungen und adaptiv während der Übertragung abgeschätzt. Dabei wird abgewägt zwischen einem möglichst kleinen Puffer für ein gutes Echtzeit-Gefühl und einem ausreichend großen Puffer, der vor Underrun bei richtig langen Verzögerungen schützt. Bei Paketverlust wird nicht auf eine Retransmission gewartet, sondern entweder das letzte bekannte Paket wiederholt oder zwischen den zwei umgebenden Paketen interpoliert. Zur Anpassung gibt es das Adaptive Transmission Rate Protocol, das eine Low- und eine High-Schranke im Puffer hat. Wenn die High-Schranke überschritten wird, wird die Übertragungsrate reduziert, bei Unterschreiten von Low wird sie erhöht.
Maßnahmen zur Skalierbarkeit
Kritisch beim Streaming ist immer die Skalierbarkeit. Deswegen musste man Wege ersinnen, Streaming-Dienste skalierbar zu halten. Eine Möglichkeit ist Splitting, d.h. die Verteilung der Medien auf vorgelagerte Server. Eine ähnliche Methode verfolgen Content Delivery Networks (CDN). Bei ihnen geht es darum, den Content möglichst nahe an möglichst vielen Nutzern zu haben, um die Kosten gering zu halten. Das wird mittels geschicktem Routing, Caching entlang der Kanten des Netzes, Proxy Caching und Splitting von Live-Sendungen bewerkstelligt. Da häufig der Stream schnell wieder vom Nutzer abgebrochen wird und Bandbreite begrenzt ist, sind effiziente Caching-Algorithmen wichtig. Folgende Möglichkeiten gibt es:
- Sliding Interval Caching: Sequentieller Zugriff, v.a. effektiv bei ähnlichen Anfragen in kurzen Zeiträumen
- Prefix Caching: Spart Zeit beim Laden der übrigen Teile
- Segment Caching: Generalisierung von Prefix Caching mit Fast-Forward-Funktionalität
- Rate-Split Caching: Niedrige Schicht vom Originalserver, höhere Schicht vom Proxyserver
- Cooperative Proxy Caching
Möglichkeiten zur Anpassung der Datenraten sind…
- Multiple Bitraten in einer Datei: Nur mit Streamingservern möglich, nicht mit Webservern
- Alternate Movies (Quicktime): Verwendung von Pointern zum Wechsel zwischen verschiedenen Mediendateien (mit unterschiedlicher Qualität)
- MPEG-4 Scalable Streams: ähnlich wie progressive JPEG, grundlegender Stream mit niedriger Auflösung wird übertragen, Rest bei Bedarf und Möglichkeit dazugeschalten
Die Bandbreite des gestreamten Videos wird von einigen Faktoren bestimmt:
- Auflösung bzw. Pixelanzahl, die auch vom Abspielgerät abhängig ist.
- Bildwiederholrate, normal 25 fps
- Color(sub)sampling: Unterabtastung des Farbraums, da Farbe weniger wahrnehmbar ist als Luminanz
- Audioqualität, z.B. Samplingrate, Auflösung, Mono/Stereo
- Kompressionsgrad (Artefakte)
Trotz der Vielzahl an Möglichkeiten bleibt die bange Frage, ob die Maßnahmen ausreichend sind, um den enormen Strom von Medien an die Zuschauer und Zuhörer annehmbar ausliefern zu können. Manche tendieren nun dazu, bestimmten Übertragungen Vorrang vor anderen Übertragungen zu geben und dafür einen Obolus zu verlangen. Das Thema ragt also durchaus in politische Bereiche wie die eben angesprochene Netzneutralität hinein. Es wird interessant, was sich auf diesem neuen Markt noch alles tun wird.

Neueste Kommentare