Current Page: | Greybox » Authoring » Course ID: medieninformatik » Modules » Module ID: m06 » Learning Units » Unit ID: 2_1_20 |
---|---|
Last Modified: | Tuesday, 2015-05-05 - 08:09:02 |
Tools: | Validate — Preview XML Preview HTML Preview PDF |
Alternative: | Printable HTML |
Title: | Multimedia-Dateisysteme und Vergleich von MoD Servern | ||
---|---|---|---|
Abstract: | Diese LU beschäftigt sich mit den verschiedenen Strategien zur Speicherung und zum Auslesen der Mediendateien auf und von der Festplatte. Zusätzlich werden vier existierenden Media on Demand Server (Berkley VoD System, Tiger VoD System, Darwin Streaming Server, Helix Universal Server) anhand ihrer Leistungen verglichen. | ||
Status: |
Review II: done. |
Version: | 8.0 |
History: |
Link auf LU23 done. Acronyme, Absätze und Wordanführungszeichen done. Grafiken verkleinern done. Source done. Review von Prof. Kosch eingearbeitet. Graphik Helix überarbeitet. Unbekannte Character ausgebessert. |
Author 1: | Harald Kosch | E-Mail: | harald.kosch@itec.uni-klu.ac.at |
---|---|---|---|
Author 2: | (empty) | E-Mail: | (empty) |
Author 3: | (empty) | E-Mail: | (empty) |
Author 4: | (empty) | E-Mail: | (empty) |
Author 5: | (empty) | E-Mail: | (empty) |
Organization: | Universität Klagenfurt - Institut für Informatik-Systeme |
Multimedia Dateisystem Paradigmen1Auto
Auto PCAuto PDA_PhoneAuto
Auto PCAuto PDA_PhoneDateiplatzierung auf einer Platte
Auto PCAuto PDA_PhonePlattenblockgröße
Auto PCAuto PDA_PhoneAuto
Auto PCAuto PDA_PhoneBuffering
Auto PCAuto PDA_PhoneAuto
Platzierung mehrerer Dateien auf einer PlatteAuto PCAuto PDA_PhoneAuto
Dateiplatzierung auf einer "Disk Farm"Auto PCAuto PDA_PhoneAuto
Striping nach Frames vs. Blöcke
Datei Caching
Statisches und dynamisches Platten-Scheduling
2AutoDie Anforderung an ein Multimedia-Dateisystem hängt grundsätzlich davon ab ob der Video Server als Push- oder Pull-Server eingesetzt wird: Auto PCAuto PDA_PhoneAuto PCAuto PDA_PhoneAutoBeim Design von Medien-Servern unterscheidet man anwendungsspezifisch zwischen einem Datenzugriff, der ausschließlich durch einen Daten anfordernden und sendenden Benutzer kontrolliert wird (Abbildung a), und einem solchen, bei dem der Server den Sendeprozess kontrolliert, auch wenn jener durch den Benutzer initiiert wurde (Abbildung b). Ein Medien-Server, der im ersten Modus betrieben wird, wird als Pull-Server bezeichnet, analog ein im zweiten Modus arbeitender als Push-Server.
Dateiplatzierung auf einer PlatteFür die Dateiplatzierung auf der Platte gibt es grundsätzlich 2 Alternativen. Man kann die Dateien in aufeinanderfolgenden Blocks oder verteilt auf der Festplatte speichern. Die aufeinanderfolgende Speicherung ist leicht zu implementieren und bietet den Vorteil, dass nur der Beginn einer zu lesenden Datei gesucht werden muss. Allerdings ergibt sich das Problem der Fragmentierung (Zerstückelung) der Festplatte durch Einfüge-, Lösch- und Änderungsoperationen. Die verteilte Speicherung der Dateien vermeidet dieses Problem von Anfang an, allerdings sind beim Lesen einer Datei mehrere Suchoperationen notwendig, da die Datei nicht in aufeinanderfolgenden Blöcken gespeichert ist. Aufgrund der Tatsache, dass sich der Inhalt eines Videoservers nur sehr langsam ändert und dadurch das Problem der Fragmentierung nur geringfügig auftritt, ist hier die Speicherung in aufeinanderfolgenden Blöcken zu bevorzugen. Darüber hinaus muss untersucht werden, wie unterschiedliche Tracks
(im einfachsten Fall der Audio und Videotrack) auf der Platte platziert
werden können. Dazu verwendet man häufig Interleaving.
Auto PCAuto PDA_PhoneAutoMithilfe von Interleaving ist es möglich, die Suche aller zu einem Frame zugehörigen Dateien (Video, Audio, Text) zu vermeiden. Nachteilig ist allerdings, dass bei Auslesen der Datei auch nicht benötigte Audio- und Textdateien gelesen werden müssen. PlattenblockgrößeDie Plattenblockgröße spielt eine große Rolle in der Multimedia-Datenorganisation. Man unterscheidet Strategien mit kleinen und solche mit großen Plattenblöcken. Auto PCAuto PDA_PhoneAutoAbbildung a zeigt die Dateiorganisation mit kleinen Datenblöcken. Die Blöcke sind um einiges kleiner als die durchschnittliche Framegröße (z.B. für MPEG31-2 ist die durchschnittliche Framegröße 16 KB). In dieser Organisation wird ein Frameindex für jeden Film benötigt. Dieser beinhaltet je einen Eintrag pro Frame, der sich aus einem Pointer auf das betreffende Frame und einem Blockzähler zusammensetzt. Das Frame besteht aus allen zugehörigen Video-, Audio- und Textdateien, die in aufeinanderfolgenden Blocks gespeichert sind. So ist es möglich mit einem Plattenzugriff das ganze Frame zu lesen. Auto PCAuto PDA_PhoneAutoIn Abbildung b wird eine Dateiorganisation mit großen Datenblöcken
(z.B. 256 KB), welche jeweils mehrere Frames enthalten, dargestellt.
BufferingBei Multimedia Ein-/ Ausgabeoperationen ist die Verwendung eines Buffers notwendig. Auto PCBuffering PDA_PhoneAutoEine weit verbreitete Technik ist das sogenannte Double Buffering. Wie man aus der obigen Abbildung ersehen kann, dient ein Buffer dem Produzenten eines Streams, der andere Buffer ist für den Konsumenten des Streams gedacht. Nach jedem Durchlauf werden die Buffer getauscht. So kann beispielsweise bei der Übertragung eines Videos der Inhalt des einen Buffers vom Benutzer gelesen werden, während der zweite mit den neu ankommenden Frames gefüllt wird. Hat der Benutzer nun den Inhalt des ersten Buffers ausgelesen, so kann er direkt mit dem Lesen des zweiten fortfahren, während der erste Buffer wieder neu gefüllt wird. Es gibt auch die Möglichkeit mit drei Buffern (Triple Buffering), einem Datenbeschaffungsbuffer, einem Zwischenbuffer und einem Zustellungsbuffer, zu arbeiten. Der erste hat die Aufgabe die Daten, die von einem I/O Gerät z.B. von der Platte zum Hauptspeicher geladen werden, zu buffern. Der zweite speichert Daten, die innerhalb des Hauptspeichers übertragen werden, zwischen. Aufgabe des dritten ist die Zwischenspeicherung von Daten die an I/O Geräte geliefert werden, z.B. vom Hauptspeicher ans Netzwerk. Zusätzlich ist es möglich, bei jedem dieser Buffer das Konzept des doppelten Bufferings anzuwenden. Platzierung mehrerer Dateien auf einer PlatteAuto PCAuto PDA_PhoneAutoUm mehrere Mediendateien optimal auf einer Platte zu speichern kann die Zipf-Verteilung, welche bereits in der vorherigen LU ausführlich erklärt wurde, angewendet werden. Es werden die Filme der Priorität nach von der Mitte der Platte nach außen gespeichert, wodurch eine sogenannte Orgelpfeifenverteilung, wie in der Abbildung ersichtlich, entsteht. Der Kopf der Platte steht in der Mitte, also über den populärsten Filmen. Dateiplatzierung auf einer "Disk Farm"Hat man nun mehrere Platten (Disk Farm) zur Speicherung der Dateien zur Verfügung, so gibt es verschiedene Strategien die Dateien darauf zu speichern. Eine solche Disk Farm wird abstrakt als eine einzige dargestellt. Ziel dieser Abstraktion ist die Steigerung der Performance und der Verlässlichkeit. Auto PCAuto PDA_PhoneAutoAbbildung a zeigt die Speicherung von Dateien ohne Striping, hierbei wird eine Platte nach der anderen gefüllt. Diese Variante ist leicht zu implementieren, allerdings weist sie eine schlechte Balanzierung auf, da einige Dateien öfter angefragt werden als andere und somit auf gewisse Platten öfter zugegriffen wird. Das kann auch zu schlechten Zugriffszeiten führen, da der Zugriff auf die Festplatte einen Engpass darstellt. In Abbildung b wird für alle gespeicherten Dateien das gleiche Stripingmuster verwendet. Die einzelnen Stripeeinheiten werden nach dem gleichen Muster auf die einzelnen Platten verteilt. Problematisch ist hierbei, dass bei vielen gleichzeitigen Anfragen nach Videos zu Beginn immer auf die gleichen Platten zugegriffen wird. Abbildung c stellt gestaffeltes Striping dar. Hier wird jeweils die erste Stripeeinheit jeder Datei auf einer anderen Platte gespeichert. In Abbildung d sieht man die Verteilung der Dateien mittels zufälligen Stripings. Durch zufälliges Striping werden die Dateien gleichmäßig auf die einzelnen Platten verteilt. Dadurch wird die Zugriffszeit verringert und die Balanzierung erhöht. Striping nach Frames vs. BlöckeBeim Striping werden die einzelnen Dateien in Stripeeinheiten unterteilt. Man kann entweder Frames (constant time length) oder Blöcke (constant data length) als Stripeeinheiten definieren. Diese Einheiten werden nach verschiedenen Verfahren über alle Platten verteilt. Wird ein Frame als Stripeeinheit definiert, so wird oft das erste Frame auf der ersten Platte, das zweite auf der zweiten Platte usw. gespeichert. Die Größe der Frames ist unterschiedlich, sie geben aber die gleiche Anzahl an Millisekunden Spielzeit wieder. Bei diesem Striping werden die Frames einzeln ausgelesen. Das führt zwar zu keiner Beschleunigung beim Auslesen einzelner Filme, allerdings ist die Gesamtauslastung ausgeglichener. Wird ein Block als Stripeeinheit herangezogen, so führt das zu einer Beschleunigung beim Auslesen eines Videos, da das System leicht mehrere Blöcke lesen kann. Allerdings können die Anforderungen an den Buffer sehr hoch sein, da eine große Menge an Daten gleichzeitig gelesen wird. Im Vergleich zu dynamischer Dateiplatzierung wird Plattenstriping nicht komplexer wenn die Anzahl der Platten ansteigt. Durch Striping wird die Auslastung ausgeglichener, woraus sich kürzere Antwortzeiten und ein größerer Durchsatz ergeben. Es ist möglich eine Datei entweder über alle Platten (breites Striping) oder nur auf eine Teilmenge der Platten (begrenztes Striping) zu verteilen. Beim breiten Striping sind nur geringe Informationen über die Auslastung nötig um Entscheidungen über die Platzierung der Dateien zu treffen, wohingegen begrenztes Striping viel Information über die Auslastung benötigt um die Dateien optimal auf den Platten zu platzieren. Datei CachingDa Filme im Allgemeinen großen Speicherplatz benötigen, ist es hilfreich,
sich über die Art der verwendeten Speichermedien Gedanken zu machen.
Es ist möglich den Großteil der Filme auf DVD311
oder Band zu speichern. Das birgt den Vorteil, dass diese Medien billiger
sind als die Speicherung auf Festplatten. Allerdings ergibt sich eine
große Start-up Verzögerung, da die Filme, wenn sie angefragt werden,
erst auf die Platte kopiert werden müssen, bevor sie übertragen werden. Statisches und dynamisches Platten-SchedulingPlatten-Scheduling hat die Aufgabe die Reihenfolge festzulegen, in der die anstehenden Plattenanforderungen befriedigt werden. Die angestrebten Ziele entsprechen denen aller Scheduler, das sind kurze Antwortzeiten, hoher Durchsatz und Fairness, wobei kurze Antwortzeiten und hoher Durchsatz konfliktäre Ziele darstellen. Beim statischen Platten-Scheduling wird in jeder Runde nach einem Frame pro Film angefragt. Eine Runde entspricht z.B. 33,3 msec für NTSC164 und 40 msec für PAL167. Die angefragten Blöcke werden, nachdem ein Optimierungsalgorithmus auf die Anfragen angewendet wurde, an die Benutzer ausgeliefert. Ein möglicher Optimierungsalgorithmus ist SCAN. Hierbei bewegt sich der Plattenkopf zunächst nur in eine Richtung, bis es dort keine anstehenden Anforderungen mehr gibt, dann in die andere Richtung (bidirektional) um die Suchzeit zu minimieren. Dieser Algorithmus bietet einen guten Kompromiss zwischen den Anforderungen an Durchsatz und Antwortzeiten, allerdings ist er ziemlich unfair (Anforderungen können "verhungern"). Beim dynamischen Platten-Scheduling können auch Anfragen bedient werden, die während eines Scheduling-Zyklus eintreffen. Einen dynamischen Scheduling Algorithmus stellt Scan-EDF439 dar. SCAN-EDF439 (SCAN-Earliest-Deadline-First) ist eine Kombination aus SCAN und EDF439. Die Optimierung der Suche wird mit den Echtzeitgarantien von EDF folgendermaßen kombiniert: Die Anforderung mit der frühesten Zeitschranke wird wie in EDF439 immer zuerst bedient. Unter Anforderungen mit derselben bzw. einer ähnlichen Zeitschranke wird zunächst die ausgewählt, die in der Bewegungsrichtung des Plattenkopfes liegt. Unter den verbleibenden wird dieses Prinzip wiederholt, bis keine Anforderung mit dieser Zeitschranke mehr übrig ist. Später eintreffende Anfragen werden aufgrund ihrer Zeitschranken und der Position der angefragten Datei auf der Platte in die Reihenfolge der Abarbeitung eingegliedert. Da diese Optimierung nur in Kraft tritt, wenn Anforderungen mit derselben Zeitschranke vorliegen, hängt die Effizienz des Algorithmus davon ab, wie oft er angewendet werden kann (d. h. wie viele Anforderungen dieselbe oder ähnliche Zeitschranken haben). Vergleich von MoD Servern1AutoKriterien:
Das Berkeley Video-on-Demand System
Das Berkeley Video-on-Demand System
Auto PCAuto PDA_PhoneDas Tiger VoD System
Das Tiger VoD System
Auto PCAuto PDA_PhoneDer Darwin Streaming Server
Der Darwin Streaming Server
Auto PCAuto PDA_PhoneDer Helix Universal Server
Der Helix Universal Server
Auto PCAuto PDA_Phone
2AutoUm verschiedene Systeme miteinander vergleichen zu können müssen bestimmte Kriterien zur Beurteilung herangezogen werden.
Das Berkeley VoD SystemDas Berkeley VoD System
Auto PCAuto PDA_PhoneAutoDas Berkeley Distributed VoD System
ist ein hierarchisch aufgebautes Speichersystem mit der Aufgabe, transparenten
Zugang zu einer großen Menge an Videomaterial zu bieten. Das System
setzt sich aus einer Datenbank, einer oder mehr Videodatei-Servern
(VFS444) und
einem oder mehr Archivservern (AS) zusammen. Die Datenbank beinhaltet
Metadaten und Indexe über die gespeicherten Videos. Die VFS444
speichern Videos auf Platten für die Echtzeitabspielung. Die AS haben
die Aufgabe, die tertiären Speichergeräte (z.B. optische Platten oder
Bandplattenstationen) zu verwalten. Im Endeffekt stellen die VFS einen
Online-Cache für die Videos, welche auf den tertiären Speichergeräten
abgelegt sind, dar. Das Tiger VoD SystemDas Tiger VoD System
Auto PCAuto PDA_PhoneAutoDas Tiger VoD432
System wurde von Microsoft entwickelt und stellt eine verteilte
Pull-Architektur dar. Das System arbeitet größtenteils parallel und
wurde entwickelt um die Speicherung und Übertragung von interaktiver
Multimedia, hauptsächlich in groß angelegten Systemen, wie interaktives
Fernsehen (ITV) zu unterstützen. Der Darwin Streaming ServerDer Darwin Streaming Server
Auto PCAuto PDA_PhoneAutoDer Darwin Streaming Server ist die
Open Source Version des Quick Time Streaming Servers von Apple. Er
unterstützt MPEG31-1,2,4
und verwendet für die Übertragung der Multimedia-Daten die Standards
RTP106 und
RTSP146. Der
Server hat die Möglichkeit die Streams sowohl über Multicast als auch
das traditionellere Unicast zu übertragen. Die Übertragungsmöglichkeiten
für Echtzeit-Streaming-Medien lassen sich in zwei Kategorien teilen:
Live-Broadcast und On-Demand. Die Live-Broadcast Übertragungen werden
von einer Push-Server Architektur getätigt, die sowohl horizontal
als auch vertikal stark skalierbar ist. On-Demand Dienste werden von
einem Server, der auf der Pull-Architektur aufbaut, angeboten, wobei
diese Architektur zentriert ist und nur bedingte Möglichkeiten der
vertikalen Skalierung bietet. Der Helix Universal ServerDer Helix Universal Server
Auto PCAuto PDA_PhoneAutoDer Helix Universal Server ist eine Entwicklung von Real Networks, der in der Lage ist 55 verschiedene Formate zu unterstützen, wie z.B. MPEG31-2,4, Apple QuickTime, und Windows Media. Zusätzlich bietet er Unterstützung für alle gängigen Real-Time Protokolle. Die Helix DNA Plattform setzt sich zusammen aus einem Helix DNA Benutzer, einem Helix DNA Server und einem Helix DNA Produzent (siehe obige Abbildung).
Insgesamt bietet die Helix DNA Plattform eine Ende-zu-Ende Technologie für die Erstellung, Übertragung und das Abspielen von Multimedia über das Internet. Die Ausstrahlung von Broadcast Übertragungen erfolgt über eine Push-Architektur,
MoD-Dienste werden durch eine Pull-Architektur angeboten. Vom Server
wird eine dynamische Anpassung an die jeweils zur Verfügung stehende
Bandbreite sichergestellt. Dabei bedient er jeden Benutzer mit der
für ihn besten Bandbreite. So kann sichergestellt werden, dass selbst
Betrachter mit niedriger Bandbreite die Datenströme unterbrechungsfrei,
aber mit entsprechend geringer Qualität empfangen können, während
Betrachter mit hohen Bandbreiten in den Genuss der optimalen Videoqualität
kommen. 3Das Berkley VoD SystemWeitere Informationen unter: LOD3
Das Tiger VoD SystemWeitere Informationen unter:LOD3
Der Darwin Streaming ServerWeitere Informationen unter:LOD3 Der Helix Universal ServerWeitere Informationen unter:LOD3 Bbiliographie2AutoSte00 JCB97 WBS98 BFD97 |
(empty) |