-
Hintergrund
-
Die Offenbarung bezieht sich im Allgemeinen auf das Bereitstellen von Medieninhalten zur Darstellung auf Rechenvorrichtungen in Umgebungen mit begrenzter Netzleistung und genauer auf das automatische Herunterladen und Speichern von Medienelementen auf Rechenvorrichtungen, ohne die Anwenderaktivitäten zu unterbrechen, wenn die Netzeigenschaften es zulassen, und das Benachrichtigen der Anwender, wenn die Medienelemente zur Präsentation verfügbar sind.
-
Videostreaming-Webauftritte und andere Medien-Server ermöglichen Anwendern den Zugriff auf Millionen von Medieninhaltselementen (Medienelemente). Eine hohe Anwenderbindung ist ein wichtiges Ziel von Inhaltserzeugern, Werbetreibenden und anderen angeschlossenen Unternehmen eines Medien-Servers. Somit ist es erwünscht, dass die Anwender so viele Videos wie möglich ansehen.
-
Viele Anwender befinden sich in Gebieten mit begrenzter Netzleistung. Zum Beispiel besitzen Anwender möglicherweise lediglich zu bestimmten Zeiten oder an bestimmten Orten eine Netzverbindungstechnologie. Ferner weist das Netz möglicherweise keine ausreichende Bandbreite oder keinen ausreichenden Durchsatz auf, um einen Inhalt effektiv zu streamen (gleichzeitig Betrachten und Herunterladen). Folglich können Sitzungen zum Ansehen auf bestimmte Zeiten und Orte eingeschränkt sein, wenn die Verbindungstechnologie ausreichend ist, und einige Anwender können möglicherweise überhaupt keine Medienelemente konsumieren. Dies ergibt eine unterdurchschnittliche Anwendererfahrung und kann bewirken, dass Anwender von Sitzungen zum Ansehen absehen.
-
Figurenliste
-
- 1A veranschaulicht eine Rechenumgebung zum Bereitstellen von Medienelementen an Clients in Umgebungen mit begrenzter Netzleistung und zum Benachrichtigen der Anwender der Clients, dass auf dem Client Medienelemente zur Präsentation bereit sind, gemäß einer Ausführungsform.
- 1B veranschaulicht einen Medien-Server zum Bereitstellen von Medienelementen an Clients in Umgebungen mit begrenzter Netzleistung gemäß einer Ausführungsform.
- 1C veranschaulicht eine beispielhafte Client-Rechenvorrichtung zum Herunterladen und Speichern von Medienelementen und zum Ausgeben von Benachrichtigungen gemäß einer Ausführungsform.
- 2 ist ein Ablaufplan der Schritte für einen Beispielprozess, der durch einen Medien-Server durchgeführt wird, um einem Client in einer Umgebung mit begrenzter Netzleistung ein Medienelement bereitzustellen.
- 3 ist ein Ablaufplan der Schritte für einen Beispielprozess, der in einer Umgebung mit begrenzter Netzleistung durch einen Client durchgeführt wird, um ein Medienelement zur Präsentation zu empfangen und dementsprechend Benachrichtigungen an einen Anwender des Ciients auszugeben.
- 4 ist eine Blockdiagramm einer hohen Ebene, das die physikalischen Komponenten eines Computers veranschaulicht, der in einer Ausführungsform als ein Teil oder als die Gesamtheit einer oder mehrerer der Einheiten verwendet wird, die hier beschrieben sind.
-
Die Figuren (Fig.) und die folgende Beschreibung beziehen sich lediglich veranschaulichend auf beispielhafte Ausführungsformen. Es sei erwähnt, dass aus der folgenden Diskussion alternative Ausführungsformen der Strukturen und Verfahren, die hier offenbart sind, leicht als machbare Alternativen erkannt werden, die eingesetzt werden können, ohne von den Prinzipien dessen, was beansprucht ist, abzuweichen.
-
Genaue Beschreibung
-
Überblick über die Konfiguration
-
Ein Medien-Server stellt Clients über ein Netz Medienelemente bereit. In einigen Fällen bewirkt eine begrenzte Netzleistung des Netzes, dass das Streaming oder das Herunterladen auf Anforderung von Medienelementen undurchführbar ist. In diesen Fällen kann der Medien-Server den Clients automatisch Medienelemente bereitstellen, wenn die Netzleistung es zulässt. Medienelemente können den Clients bereitgestellt werden, ohne die Aktivitäten der Anwender der Clients zu unterbrechen und ohne aktives Überwachen oder Beobachten durch die Anwender. Clients können Benachrichtigungen an die Anwender ausgeben, wenn bereitgestellte Medienelemente zur Präsentation bereit sind, und die Clients können die Medienelemente präsentieren, damit die Anwender diese konsumieren.
-
Der Medien-Server kann eine oder mehrere Eigenschaften detektieren, die eine begrenzte Netzleistung des Netzes angeben. Ein Medienverteilungsmodul des Medien-Servers kann automatisch ein Medienelement auswählen, um es einem Client bereitzustellen, wenn die Netzleistung es zulässt. Ein Befehlsmodul des Medien-Servers kann einen Download-Befehl an einen Client ausgeben, ein Medienelement automatisch herunterzuladen und zu speichern. Das Befehlsmodul kann zusätzlich einen Benachrichtigungsbefehl an den Client ausgeben, eine Benachrichtigung auszugeben, wenn das Medienelement auf dem Client zur Präsentation bereit ist. Das Medienverteilungsmodul des Medien-Servers kann das Medienelement aus einem Mediendatenspeicher abrufen und das Medienelement dem Client bereitstellen, wenn die Netzleistung es zulässt.
-
Eine Medienabspieleinrichtungsanwendung des Clients empfängt einen oder mehrere Befehle vom Medien-Server, die den Client anweisen, ein Medienelement automatisch herunterzuladen und zu speichern und eine Benachrichtigung auszugeben, wenn das Medienelement auf dem Client zur Präsentation bereit ist. Der Client lädt die Medienelemente automatisch herunter und speichert sie in einem Mediendatenspeicher des Clients, wenn die Netzleistung es zulässt. Das Empfangen der Befehle und das Herunterladen und Speichern der Medienelemente findet automatisch als Hintergrundprozess statt, ohne die Anwenderaktivitäten zu unterbrechen oder eine Überwachung durch den Anwender zu erfordern. Ein Benachrichtigungsmodul des Clients gibt Benachrichtigungen aus, wenn auf dem Client Medienelemente zur Präsentation bereit sind. Die Medienabspieleinrichtungsanwendung präsentiert das Medienelement auf dem Client als Antwort auf das Empfangen einer Anforderung von einem Anwender des Clients, das Medienelement zu präsentieren.
-
II. Rechenumgebung
-
1A veranschaulicht eine Rechenumgebung zum Bereitstellen von Medienelementen an Clients 110 in Umgebungen mit begrenzter Netzleistung und zum Benachrichtigen der Anwender der Clients, dass auf dem Client Medienelemente zur Präsentation bereit sind, gemäß einer Ausführungsform. Die Umgebung enthält eine Client-Rechenvorrichtung 110, die durch ein Netz 150 mit einem Medien-Server-Computer 120 verbunden ist. 1 veranschaulicht einen Client 110 und einen Medien-Server 120, jedoch können mehrere Instanzen jeder dieser Einheiten vorhanden sein. Zum Beispiel können sich tausende oder Millionen von Clients 110 mit mehreren Medien-Servern 120 in Kommunikation befinden.
-
Das Netz 150 kann jede Kombination von Nahbereichsnetzen und/oder Fernbereichsnetzen, dem Internet oder eines oder mehreren Intranets, unter Verwendung sowohl drahtgebundener als auch drahtloser Kommunikationssysteme umfassen. In diversen Ausführungsformen kann die Netzleistung des Netzes 150 durch die Eigenschaften des Netzes oder des Clients 110 begrenzt sein. Eine begrenzte Netzleistung kann durch Bandbreitenbegrenzungen, Durchsatzbegrenzungen, eine Verzögerungszeit, Synchronisationsfehler und eine Fehlerrate charakterisiert sein. Eine begrenzte Netzleistung kann durch die Eigenschaften des Netzes 150 bewirkt werden, z. B. wenn das Netz ein leitungsgebundenes Netz mit geringer Bandbreite, ein Mobilfunknetz wie etwa 2G, 3G, EDGE, ein WIFI-Netz mit niedriger Qualität oder ein Drahtlosnetz, das durch einen Satelliten oder ein Flugzeug bereitgestellt wird, ist. Eine begrenzte Netzleistung kann ebenfalls durch die Eigenschaften des Clients 110 bewirkt werden, z. B. wenn der Client begrenzte Netzverbindungsfähigkeiten aufweist, in einem Gebiet mit schlechten Netzempfang angeordnet ist oder in einer erheblichen Entfernung von einem Netz-Hub, der den Netzzugriff bereitstellt, angeordnet ist.
-
Als ein Ergebnis einer begrenzten Netzleistung können dem Client Medienelemente zum Streaming oder zum Herunterladen auf Anforderung nicht schnell genug bereitgestellt werden. Zum Beispiel kann das Medienelement nicht schnell genug heruntergeladen werden, um die erforderliche Anzeigegeschwindigkeit (Rahmengeschwindigkeit) aufrechtzuerhalten, damit der Client das Medium derart bereitstellt, dass der Anwender es auf eine nicht unterbrochene Weise konsumieren kann (z. B. Ansehen, Anhören oder beides). Um Clients 110 in Umgebungen mit begrenzter Netzleistung Medienelemente bereitzustellen, kann der Medien-Server 120 dem Client automatisch ein Medienelement bereitstellen, wenn die Netzleistung es zulässt, und der Client 110 kann das Medienelement im Hintergrund herunterladen und speichern und wenn das Medienelement heruntergeladen ist, eine Benachrichtigung an den Anwender ausgeben, die angibt, dass das Medienelement zur Präsentation bereit ist.
-
II.A. Beispielhafter Medien-Server
-
1B veranschaulicht einen Medien-Server 120 zum Bereitstellen von Medienelementen an Clients 110 in Umgebungen mit begrenzter Netzleistung gemäß einer Ausführungsform. Der Medien-Server 120 enthält einen oder mehrere Computer-Server, die Clients 110 Medienelemente bereitstellen. Der Medien-Server 120 kann z. B. ein Video-Streaming-Webauftritt (z. B. YouTube®) sein. Medienelemente können verschiedene Arten (z. B. Videomedienelemente oder Audiomedienelemente, usw.), Formate (Seitenverhältnis 4:3, Seitenverhältnis 16:9, usw.) aufweisen und unter Verwendung verschiedener Techniken codiert/komprimiert sein (H.264, MPEG, usw.). Medienelemente können Werbeanzeigen enthalten. Medienelemente können in einem Mediendatenspeicher 128 des Medienservers 120 gespeichert sein. Abhängig von der Umgebung kann der Mediendatenspeicher 128 eine oder mehrere Arten von nicht flüchtigen, computerlesbaren, beständigen Speichermedien enthalten.
-
Der Medien-Server 120 erhält z. B. im Mediendatenspeicher 128 Informationen in Bezug auf Medienelemente aufrecht. Informationen bezüglich eines Medienelements können eine Medienelementkennung (Medienelement-ID), eine Medienelementadresse und Metadaten, die einem Medienelement zugeordnet sind, enthalten. Die Medienelement-ID identifiziert ein Medienelement eindeutig. Die Medienelementadresse ist eine Computernetzadresse, unter der das Medienelement physikalisch gespeichert ist und von der es heruntergeladen oder gestreamt werden kann. Der physikalische Speicherort des Medienelements kann eine bestimmte Instanz des Medien-Servers 120 sein, die in einer geographischen Region angeordnet ist, die in räumlicher Nähe zu einer Untergruppe der Clients 110 liegt, die dem Medien-Server 120 zugeordnet sind. Zum Beispiel kann es mehrere getrennte Instanzen des Medien-Servers 120 geben, eine in Japan angeordnet, eine weitere in China, eine weitere in Indien, usw. Die Metadaten beschreiben verschiedene Aspekte des Medienelements Die Metadaten können z. B. den Autor, das Veröffentlichungsdatum, Besprechungen, Genre-Informationen, den Herausgeber, Bewertungen und ein Medienelementkennzeichen enthalten. Für Werbeanzeigen können die Informationen bezüglich des Medienelements ferner Werbeinformationen, einschließlich Parametern zum Anbieten der Werbeanzeigen an bestimmte Anwender auf der Basis von gespeicherten Anwenderinformationen enthalten.
-
Ein Account-Modul 126 im Medien-Server 120 ermöglicht Anwendern, mit dem Medien-Server 120 Accounts zu verwalten. Das Account-Modul 126 empfängt und speichert ferner Anwenderinformationen, die den Aktivitäten eines Anwenders in Bezug auf den Medien-Server 120 entsprechen. Die Anwenderinformationen können Informationen über Client-Vorrichtungen 110, die einem Anwender zugeordnet sind (z. B. Art der Vorrichtung, Netzeigenschaften und -fähigkeiten, Ort der Vorrichtung, Speicherinformationen der Vorrichtung, usw.), Kennzeichen von Medienelementen, die einem oder mehreren Clients 110, die dem Anwender zugeordnet sind, bereitgestellt wurden, Vorlieben des Anwenders und Wiedergabedaten, die dem Anwender zugeordnet sind, die Ansichtszählungen und Bewertungen für bereitgestellte Medienelemente enthalten, enthalten. Die Anwenderinformationen können ferner Benachrichtigungsvorlieben umfassen, wie unten in Bezug auf 1C definiert und diskutiert ist. Die Anwenderinformationen und andere Account-Informationen können in einem Account-Datenspeicher 130 des Medien-Servers 120 gespeichert sein. Abhängig von der Umgebung kann der Account-Datenspeicher 130 eine oder mehrere Arten von nicht flüchtigen, computerlesbaren, beständigen Speichermedien enthalten.
-
Ein Medienverteilungsmodul 122 stellt den Clients 110 Medienelemente bereit. Das Medienverteilungsmodul 122 empfängt Medienelementanforderungen von den Clients 110 und ruft die Medienelemente aus dem Mediendatenspeicher 128 ab, um sie den Clients bereitzustellen. Das Medienverteilungsmodul 122 kann den Clients 110 Medienelemente zum Streaming und zur gleichzeitigen Präsentation oder zum Herunterladen und Speichern zur späteren Präsentation bereitstellen. In Situationen mit einer begrenzten Netzleistung stellt das Medienverteilungsmodul 122 den Clients 110 automatisch Medienelemente bereit. Das Medienverteilungsmodul 122 kann auf der Basis von Anwenderinformationen wie etwa vorher bereitgestellten Medienelementen und Anwendervorlieben Medienelemente automatisch auswählen. Die ausgewählten Medienelemente können als ein Hintergrundprozess, der ohne Anforderung durch einen Anwender stattfindet und ohne dass der Anwender den Prozess aktiv beobachtet oder überwacht, den Clients 110 automatisch bereitgestellt und durch diese gespeichert werden. Der Anwender kann benachrichtig werden, wenn das Medienelement zur Wiedergabe bereit ist, wie unten unter Bezugnahme auf 1C und 3 genauer diskutiert ist.
-
Um das Verfahren zum Bereitstellen der Medienelemente an den Client 110 zu bestimmen, kann das Medienverteilungsmodul 122 die Netzeigenschaften des Clients 110 und des Netzes 150 analysieren, um zu bestimmen, ob der Client 110 befähigt ist, das Medienelement zu streamen und gleichzeitig zu präsentieren. Dies kann auf einer laufenden Basis oder zu bestimmten Intervallen stattfinden. Das Medienverteilungsmodul 122 kann Medienelemente zum Senden an die Clients 110 vorbereiten. Das Vorbereiten eines Medienelements kann z. B. Codieren, Komprimieren, Ändern von Medienelementformaten und Ändern der Datenstruktur (z. B. Aufteilen in Pakete zum Streaming oder zum Herunterladen) enthalten. Die Vorbereitung kann abhängig vom Verfahren, das verwendet wird, um dem Client die Medienelemente bereitzustellen, variieren. Zum Beispiel kann in Situationen mit einer hohen Bandbreite eine Codierungs- und Komprimierungsschema mit einer höheren Qualität verwendet werden, während in Situationen mit begrenzter Bandbreite ein Codierungs- und Komprimierungsschema mit niedrigerer Qualität verwendet werden kann.
-
Wie oben diskutiert ist, kann das Medienverteilungsmodul 122 in Situationen mit begrenzter Netzieistung Medieneiemente automatisch auswählen, um sie den Clients 110 bereitzustellen. Das Medienverteilungsmodul 122 kann die Medienelemente auf der Basis von Anwenderinformationen des Anwenders des Clients 110 wie etwa vorher konsumierte Medienelemente, Medienelementbewertungen oder andere Vorlieben auswählen. Wenn ein Anwender z. B. vorher Medienelemente in einem bestimmten Genre angesehen und hoch bewertet hat, kann ein Medienelement aus dem Genre ausgewählt werden. Das Medienelement kann außerdem unter Verwendung anderer Informationen, die auf dem Medien-Server 120 gespeichert sind, wie etwa Anwenderinformationen von anderen Anwendern (z. B. in demselben geographischen Gebiet, ähnliche Anwender, usw.) oder Werbeinformationen ausgewählt werden. Das Medienelement kann außerdem auf der Basis von Anwendervorlieben, die in einem Account-Datenspeicher 130 gespeichert sind, ausgewählt werden, die z. B. bestimmte, bevorzugte Genres oder andere bevorzugte Eigenschaften für ausgewählte Medienelemente angeben.
-
Ein Befehlsmodul 124 des Medien-Servers 120 erzeugt und sendet Befehle an die Clients 110. Befehle sind Anweisungen, die durch den Medien-Server 120 an die Clients 110 gesendet werden, die z. B. die Clients 110 anweisen, automatisch ausgewählte Medienelemente herunterzuladen und zu speichern und Benachrichtigungen an die Anwender der Clients 110 auszugeben. Die Befehle sind nützlich zum Bereitstellen von Medienelementen an die Clients 110 in eingeschränkten Netzsituationen, derart, dass die Medienelemente auf den Clients 110 automatisch im Hintergrund heruntergeladen werden können, ohne die Anwender zu stören, bis die Download-Vorgänge abgeschlossen sind. Benachrichtigungen können z. B. einem Anwender angeben, dass ein Medienelement, das heruntergeladen worden ist, zur Präsentation bereit ist, und werden unten in Bezug auf 1C, 2 und 3 genauer diskutiert. Durch das Herunterladen vorab ohne die ausdrückliche Eingabe des Anwenders für bestimmte Medienelemente und das Benachrichtigen der Anwender lediglich dann, wenn diese bereits auf ihre Vorrichtung heruntergeladen sind, kann der Medien-Server 120 dem Anwender eine verbesserte Medienkonsumerfahrung bereitstellen, die nicht so durch eine begrenzte Netzverfügbarkeit behindert wird.
-
II.B Beispielhafte Client-Rechenvorrichtung
-
Die Clients 110 sind Rechenvorrichtungen, die Computerprogrammanweisungen ausführen - z. B. ein Web-Browser, eine E-Book-Leseeinrichtung, eine Medienabspieleinrichtung oder andere Client-Softwareanwendungen -, die einem Anwender ermöglichen, Audio- und/oder Videomedienelementdaten zu konsumieren. Ein Client 110 könnte z. B. ein Personal-Computer, ein Tablet-Computer, ein Smartphone, ein Laptop-Computer, eine geeignete E-Leseeinrichtung, die zumindest eine Audiowiedergabefunktionalität enthält, oder eine andere Art einer netzfähigen Vorrichtung wie etwa ein vemetztes Fernsehgerät oder ein Satellitenempfänger sein.
-
1C veranschaulicht eine beispielhafte Client-Rechenvorrichtung 110 zum Herunterladen und Speichern von Medienelementen und zum Ausgeben von Benachrichtigungen gemäß einer Ausführungsform. Eine Medienabspieleinrichtungsanwendung 114 präsentiert einem Anwender des Clients Medienelemente, die vom Medien-Server 120 empfangen werden. Die Medienabspieleinrichtungsanwendung 114 kann eine Softwareanwendung sein, die zum Präsentieren von Medienelementen für einen Anwender, der den Client 110 bedient, durch einen Prozessor des Clients 110 ausgeführt werden. Die Medienabspieleinrichtungsanwendung 114 kann in Verbindung mit einem Betriebssystem des Clients 110 ausführen. In einer Ausführungsform ist die Medienabspieleinrichtungsanwendung 114 eine zugeordnete Softwareanwendung, die ausgelegt ist, insbesondere mit dem Medien-Server 120 zu arbeiten. In einer weiteren Ausführungsform wird die Medienabspieleinrichtungsanwendung 114 über eine allgemeinere Anwendung zum Zugreifen auf viele Arten von Inhalten wie etwa einen Web-Browser bereitgestellt. Der Browser kann den Zugriff auf den Medien-Server 120 z. B. über eine Web-Schnittstelle bereitstellen.
-
Die Medienabspieleinrichtungsanwendung 114 sendet Anforderungsmeldungen an den Medien-Server 120, um Medienelemente zur Präsentation auf dem Client 110 anzufordern, und empfängt als Antwort Medienelemente vom Medien-Server. Eine Anforderungsmeldung kann z. B. als Antwort auf eine Anwendereingabe, die angibt, dass der Anwender ein spezifiziertes Medienelement konsumieren möchte, gesendet werden. In dieser Ausführungsform kann das Medienelement vom Medien-Server 120 gestreamt und gleichzeitig auf dem Client 110 angezeigt werden.
-
Wie oben in Bezug auf 1A diskutiert ist, ist in einigen Situationen das gleichzeitige Streaming und Anzeigen eines Medienelements aufgrund einer begrenzten Netzleistung undurchführbar. Um einem Anwender des Clients 110 zu ermöglichen, ein Medienelement zu konsumieren, wenn das gleichzeitige Streaming und Anzeigen undurchführbar ist, kann die Medienabspieleinrichtungsanwendung 114 ein ausgewähltes Medienelement automatisch herunterladen und speichern und den Anwender benachrichtigen, wenn das Medienelement zur Präsentation bereit ist. Wie oben in Bezug auf 1B diskutiert ist, findet das automatische Herunterladen als Hintergrundprozess auf dem Client 110 statt, ohne dass der Anwender das Herunterladen speziell anfordert oder den Download-Prozess aktiv beobachtet oder überwacht. Als ein Ergebnis werden die Aktivitäten eines Anwenders auf dem Client 110 durch das automatische Herunterladen nicht unterbrochen oder verändert.
-
In einer Ausführungsform beginnt das automatische Herunterladen auf dem Client 110, wenn die Medienabspieleinrichtungsanwendung 114 einen Download-Befehl, das Medienelement vom Medien-Server 120 herunterzuladen, empfängt. Die Medienabspieleinrichtungsanwendung 114 sendet automatisch, ohne eine Anwendereingabe, eine Anforderungsmeldung an den Medien-Server 120. Der Download-Befehl kann spezifizieren, wann oder unter welchen Umständen der Client das Medienelement herunterladen sollte. Der Download-Befehl kann den Client anweisen, das Medienelement zu einer bestimmten Zeit, unter bestimmten Netzbedingungen, nachdem andere Medienelemente heruntergeladen sind, nachdem Medienelemente konsumiert worden sind oder entsprechend Bedingungen, die durch den Anwender spezifiziert sind, automatisch herunterzuladen und zu speichern. Ein Anwender kann spezifizieren, dass der Client Medienelemente nur dann herunterlädt, wenn der Client 110 mit einem WIFI-Netz verbunden ist, und nicht, wenn der Client mit einem Mobilfunkdatennetz verbunden ist. Das Medienelement wird entsprechend dem Download-Befehl vom Medien-Server 120 heruntergeladen, wenn die Netzleistung es zulässt (z. B. wenn eine Netzverbindungstechnologie oder eine Bandbreite verfügbar sind), und lokal im Mediendatenspeicher 116 gespeichert. Wie oben angegeben ist, können das Herunterladen und das Speichern des Medienelements als ein Hintergrundprozess stattfinden, der für den Anwender des Clients 110 nicht sichtbar ist.
-
Ein Benachrichtigungsmodul 112 gibt Benachrichtigungen an den Anwender aus, wenn ein heruntergeladenes Medienelement auf dem Client 110 zur Präsentation bereit ist. Die Benachrichtigungen können Text, Bilder oder Softwarekonstrukte, um einen Anwender zu benachrichtigen, dass ein Medienelement zur Präsentation verfügbar ist, enthalten. Arten von Benachrichtigungen können Textnachrichten (z. B. SMS-Nachrichten), E-Mails, vorrichtungseigene Nachrichten (z. B. i-Nachrichten), Benachrichtigungen der Vorrichtung (z. B. Push-Benachrichtigungen, Kennzeichen, Töne, usw.) und Nachrichten in Softwareanwendungen des Clients 110 oder anderer Rechenvorrichtungen sein. Benachrichtigungen können außerdem Hyperlinks wie etwa Uniform-Resource-Locators (URL) enthalten, die dem Anwender des Clients 110 ermöglichen, in einem Betriebssystem des Clients zur Medienabspieleinrichtungsanwendung 114 zu navigieren.
-
Das Benachrichtigungsmodul 112 kann als Antwort auf das Empfangen eines Benachrichtigungsbefehls vom Medien-Server 120 oder entsprechend Benachrichtigungsbedingungen Benachrichtigungen ausgeben. Die Benachrichtigungsbedingungen spezifizieren, wann oder unter welchen Umständen das Benachrichtigungsmodul 112 eine Benachrichtigung ausgibt. Zum Beispiel können die Benachrichtigungsbedingungen spezifizieren, dass eine Benachrichtigung ausgegeben wird, wenn das Herunterladen des Medienelements abgeschlossen ist, wenn ein spezifizierter Prozentsatz des Medienelements heruntergeladen ist (z. B. 25 %, 50 %, 75 %, usw.) oder wenn sich der Client 110 in einem bestimmten geografischen Gebiet befindet. Die Benachrichtigungsbedingungen können auf einer oder auf mehreren Eigenschaften des Netzes 150 basieren, die die Art des Netzes und die Download-Geschwindigkeiten enthalten. Zum Beispiel können die Bedingungen spezifizieren, dass die Benachrichtigung ausgegeben werden kann, wenn die Medienabspieleinrichtungsanwendung 114 bestimmt, dass genug vom Medienelement heruntergeladen worden ist und dass das Medienelement mit einer ausreichenden Geschwindigkeit heruntergeladen wird, derart, dass das Medienelement ohne Unterbrechung präsentiert werden kann.
-
Das Benachrichtigungsmodul 112 kann die Benachrichtigungsbedingungen auf der Basis von ausdrücklich eingegebenen Benachrichtigungsvorlieben des Anwenders verändern. Die Benachrichtigungsvorlieben können die Art(en) der Benachrichtigungen, die der Anwender empfängt, die Zeiten, zu denen Benachrichtigungen ausgegeben werden können, Benachrichtigungsbedingungen, Benachrichtigungstöne und Benachrichtigungsanzeigeeigenschaften (z. B. ob sich der Bildschirm der Vorrichtung einschaltet, wie die Benachrichtigung auf der Vorrichtung angezeigt wird, usw.) spezifizieren. Die Benachrichtigungsvorlieben können durch einen Anwender z. B. durch eine Anwenderschnittstelle der Medienabspieleinrichtungsanwendung 114 oder durch eine andere Anwenderschnittstelle des Clients 110 wie etwa eine Anwendung für Einstellungen eines Betriebssystems ausgewählt werden. Es kann Standardbenachrichtigungsvorlieben geben, die gültig sind, wenn ein Anwender nicht eine oder mehrere Benachrichtigungsvorlieben ausgewählt hat. Die Benachrichtigungsvorlieben können für einen Client 110 spezifisch sein oder können für mehrere Clients 110 gültig sein, die einem Anwender zugeordnet sind, und können im Benachrichtigungsdatenspeicher 118 oder im Account-Datenspeicher 130 gespeichert sein.
-
Der Benachrichtigungsinhalt, die Benachrichtigungsbedingungen und die Benachrichtigungsvorlieben können durch das Benachrichtigungsmodul 112 vom Medien-Server 120 (z. B. als Teil eines Befehls) oder von der Medienabspieleinrichtungsanwendung 114 empfangen und im Benachrichtigungsdatenspeicher 118 gespeichert werden. Die Benachrichtigungsvorlieben können außerdem an den Medien-Server 120 gesendet und im Account-Datenspeicher 130 gespeichert werden, derart, dass sie an alle Clients 110, die einem Account eines Anwenders zugeordnet sind, verteilt werden können.
-
III. Aktivitäten des Medien-Servers
-
2 ist ein Ablaufplan der Schritte für einen Beispielprozess, der durch einen Medien-Server durchgeführt wird, um einem Client in einer Umgebung mit begrenzter Netzleistung ein Medienelement bereitzustellen. Der Medien-Server 120 analysiert die Netzbedingungen und bestimmt 205, dass das Streaming des Medienelements an den Client 110 undurchführbar ist. Der Medien-Server 120 wählt daraufhin ein Medienelement aus, um es dem Client 110 automatisch bereitzustellen. Der Medien-Server 120 sendet 215 einen Download-Befehl, der den Client 110 anweist, ein ausgewähltes Medienelement automatisch herunterzuladen und zu speichern, ohne die Aktivitäten des Anwenders auf dem Client zu unterbrechen. Der Medien-Server 120 empfängt 220 eine Anforderung vom Client 110, das ausgewählte Medienelement herunterzuladen. Der Medien-Server 120 sendet 225 daraufhin, wenn die Netzbedingungen es zulassen, das ausgewählte Medienelement über eine Zeitdauer an den Client 110. Der Medien-Server 120 sendet 230 einen zusätzlichen Benachrichtigungsbefehl, der den Client 110 anweist, eine Benachrichtigung an den Anwender des Clients auszugeben. Die Benachrichtigung benachrichtigt den Anwender, dass das Medienelement zur Wiedergabe bereit ist, und wird auf dem Client 110 entsprechend den Benachrichtigungsbedingungen ausgegeben, wenn bestimmt wird, dass das Medienelement zur Wiedergabe bereit ist. Dementsprechend werden die Aktivitäten des Anwenders auf dem Client 110 nicht unterbrochen oder verändert, bis das Medienelement zur Wiedergabe bereit ist, derart, dass die Anwendererfahrung z. B. nicht durch Warten auf Downloads beeinflusst oder unterbrochen wird.
-
In einer weiteren Ausführungsform enthält der Befehl aus Schritt 215 sowohl einen Download-Befehl als auch einen Benachrichtigungsbefehl und kann einen Benachrichtigungsinhalt, Benachrichtigungsbedingungen oder Benachrichtigungsvorlieben enthalten. Als ein Ergebnis kann der Befehl aus Schritt 230 unnötig sein, weil der Befehl aus Schritt 215 die Informationen enthält, um den Client 110 anzuweisen, eine Benachrichtigung auszugeben.
-
IV. Aktivitäten des Clients
-
3 ist ein Ablaufplan der Schritte für einen Beispielprozess, der durch einen Client durchgeführt wird, um in einer Umgebung mit begrenzter Netzleistung ein Medienelement zur Präsentation zu empfangen und eine Benachrichtigung an einen Anwender eines Clients auszugeben. Der Client 110 empfängt 305 einen Download-Befehl, ein ausgewähltes Medienelement automatisch von einem Medien-Server 120 herunterzuladen und zu speichern. Der Client 110 sendet 310 daraufhin automatisch eine Anforderung, das Medienelement herunterzuladen, an den Medien-Server 120. Der Client 110 empfängt 315 das Medienelement vom Medien-Server 120 und speichert das Medienelement auf dem Client, ohne die Aktivitäten auf dem Client zu unterbrechen. Der Client 110 lädt das Medienelement vom Medien-Server 120 herunter, wenn die Netzbedingungen es zulassen. Der Client 110 empfängt 320 einen zusätzlichen Befehl, der den Client anweist, eine Benachrichtigung an den Anwender des Clients auszugeben.
-
In einer weiteren Ausführungsform enthält der Befehl aus Schritt 305 sowohl einen Download-Befehl als auch einen Benachrichtigungsbefehl und kann einen Benachrichtigungsinhalt, Benachrichtigungsbedingungen oder Benachrichtigungsvorlieben enthalten. Als ein Ergebnis kann der Befehl aus Schritt 320 unnötig sein, weil der Befehl aus Schritt 305 die Informationen enthält, um den Client 110 anzuweisen, eine Benachrichtigung auszugeben.
-
Der Client 110 gibt eine Benachrichtigung aus 325, die dem Anwender angibt, dass das Medienelement zur Präsentation bereit ist. Der Anwender kann z. B. durch Interagieren mit der Benachrichtigung mit der Präsentation des Medienelements beginnen.
-
VI. Zusätzliche Überlegungen
-
4 ist ein Blockdiagramm einer hohen Ebene, das die physikalischen Komponenten eines Computers 400 veranschaulicht, der in einer Ausführungsform als ein Teil oder als die Gesamtheit einer oder mehrerer der Einheiten verwendet wird, die hier beschrieben sind. Zum Beispiel können Instanzen des veranschaulichten Computers 400 als der Client 110 oder als der Medien-Server 120 verwendet werden. Es ist mindestens ein Prozessor 402, der mit einem Chipsatz 404 gekoppelt ist, veranschaulicht. Außerdem sind mit dem Chipsatz 404 gekoppelt ein Datenspeicher 406, eine Speichervorrichtung 408, eine Tastatur 410, ein Grafikadapter 412, eine Zeigevorrichtung 414 und ein Netzadapter 416. Eine Anzeige 418 ist mit dem Grafikadapter 412 gekoppelt. In einer Ausführungsform wird die Funktionalität des Chipsatzes 404 durch einen Datenspeicher-Steuereinrichtungs-Hub 420 und einen Eingangs/Ausgangs-Steuereinrichtungs-Hub 422 bereitgestellt. In einer weiteren Ausführungsform ist der Datenspeicher 406 anstelle des Chipsatzes 404 direkt mit dem Prozessor 402 gekoppelt. In einer Ausführungsform sind eine oder mehrere Audioausgabevorrichtungen mit dem Chipsatz 404 gekoppelt.
-
Die Speichervorrichtung 408 ist ein beliebiges, nicht flüchtiges, computerlesbares Speichermedium wie etwa ein Festplattenlaufwerk, ein Compact-Disk-Festwertspeicher (CD-ROM), eine DVD oder eine Festkörperspeichervorrichtung. Der Datenspeicher 406 hält Anweisungen und Daten, die durch den Prozessor 402 verwendet werden. Die Zeigevorrichtung 414 kann eine Maus, eine Rollkugel oder eine andere Art von Zeigevorrichtung sein und wird in Kombination mit der Tastatur 410 verwendet, um Daten in den Computer 400 einzugeben. Der Grafikadapter 412 zeigt Bilder und andere Informationen auf der Anzeige 418 an. Der Netzadapter 416 koppelt das Computersystem 400 mit einem Nahbereichsnetz oder einem Fernbereichsnetz.
-
Wie im Gebiet bekannt ist, kann ein Computer 400 verschiedene und/oder andere Komponenten als jene, die in 4 gezeigt sind, aufweisen. Außerdem können dem Computer 400 bestimmte, veranschaulichte Komponenten fehlen. In einer Ausführungsform können dem Computer 400 eine Tastatur 410, eine Zeigevorrichtung 414, ein Grafikadapter 412 und/oder eine Anzeige 418 fehlen. Außerdem kann die Speichervorrichtung 408 lokal und/oder vom Computer 400 entfernt sein (wie es etwa in einem Speicherbereichsnetz (SAN) ausgeführt ist).
-
Wie im Gebiet bekannt ist, ist der Computer 400 ausgelegt, Computerprogrammmodule zum Bereitstellen der hier beschriebenen Funktionalität auszuführen. Wie hier verwendet, bezieht sich der Ausdruck „Modul“ auf eine Computerprogrammlogik, die genutzt wird, um die spezifizierte Funktionalität bereitzustellen. Somit kann ein Modul in Hardware, Firmware und/oder Software implementiert sein. In einer Ausführungsform sind die Programmmodule auf der Speichervorrichtung 408 gespeichert, werden in den Datenspeicher 406 geladen und durch den Prozessor 402 ausgeführt.
-
Einige Abschnitte dieser Beschreibung beschreiben die Ausführungsformen in Form von Algorithmen und symbolischen Darstellungen von Vorgängen auf Informationen. Diese algorithmischen Beschreibungen und Darstellungen werden durch den Fachmann auf dem Gebiet der Datenverarbeitung allgemein verwendet, um die Substanz seiner Arbeit wirksam anderen Fachmännern auf dem Gebiet zu vermitteln. Diese Vorgänge werden derart verstanden, dass sie durch Computerprogramme oder durch äquivalente elektrische Schaltungen, Mikrocode oder dergleichen implementiert sind, obwohl sie als funktional, rechenbetont oder logisch beschrieben sind.
-
Es versteht sich, dass die genannten Komponenten eine Ausführungsform darstellen und dass andere Ausführungsformen andere Komponenten enthalten können. Außerdem können bei anderen Ausführungsformen die hier beschriebenen Komponenten fehlen und/oder kann die beschriebene Funktionalität auf unterschiedliche Weise auf die Komponenten verteilt sein. Außerdem können Funktionalitäten, die mehr als einer Komponente zugeschrieben sind, in eine einzige Komponente eingearbeitet sein.
-
Schließlich wurde die Sprache, die in der Beschreibung verwendet wird, hauptsächlich zu Lesbarkeits- und Lehrzwecken ausgewählt und wurde möglicherweise nicht ausgewählt, um den Gegenstand der Erfindung darzustellen oder zu umschreiben. Es ist daher beabsichtigt, dass der Umfang der Erfindung nicht durch diese genaue Beschreibung eingeschränkt ist, sondern stattdessen durch alle Ansprüche, die sich aus einer hierauf basierenden Anwendung ergeben. Dementsprechend ist die Offenbarung der beschriebenen Ausführungsformen dafür gedacht, für den Umfang dessen, was absicherbar ist, was in den folgenden Ansprüchen dargelegt ist, veranschaulichend, jedoch nicht einschränkend zu sein.