-
HINTERGRUND
-
Online-Videostreaming ist unter Benutzern sehr weit verbreitet, da es ihnen ermöglicht, Videoinhalte in hoher Qualität auf dem Arbeitsplatz-Computer, einem Laptop/Tablet-Computer oder einer anderen mobilen Einheit (z. B. einem Mobiltelefon wie beispielsweise einem Smartphone) anzusehen. Häufig sind Versuche unternommen worden, den Zugriff eines Benutzers oder dessen Wunsch für den Zugriff auf ein oder mehrere Videos zu einem späteren Zeitpunkt vorherzusehen. Zum Beispiel kommt es vor, dass Benutzer oft über angezeigte (oder empfohlene) Links auf Video-Websites zugreifen, sofern ein Anbieter von Inhalten solche Links zusammen mit einem Video anbietet, die ein Benutzer bereits ausgewählt hat und möglicherweise im Blick behält.
-
Oft wird davon ausgegangen, dass ein Benutzer mit wesentlich höherer Wahrscheinlichkeit ein Video ansieht, das durch solche Links vorgeschlagen oder angeboten wurde, als wenn er durch einen anderen Mechanismus (z. B. durch Eingeben eines Suchbegriffs) darauf zugreifen müsste. Solche Videoobjekte, auf die durch die Empfehlungslinks verwiesen wird, werden jedoch für gewöhnlich durch ein nicht angepasstes Standardprotokoll vermittelt, sodass letztlich beträchtliche Ressourcen verschwendet werden können, wenn sich wirklich ein oder mehrere Benutzer dafür entscheiden, über solche Links verfügbare Videos nicht anzusehen.
-
KURZDARSTELLUNG
-
Kurz gesagt, gemäß einem Aspekt der Erfindung wird ein Verfahren bereitgestellt, das aufweist: Anzeigen eines Videos auf einer Oberfläche als Reaktion auf eine Benutzeranforderung, wobei online auf das Video zugegriffen werden kann; quantitatives Ermitteln einer relativen Wahrscheinlichkeit, dass der Benutzer auf das Video zugreift, in Bezug auf mindestens zwei andere Videos, auf die online zugegriffen werden kann; Erzeugen eines geordneten Satzes von Vorhersagen in Bezug auf die mindestens zwei anderen Videos; schrittweises Vorbereiten der mindestens zwei anderen Videos auf der Grundlage des Satzes von Vorhersagen, sodass der Benutzer in der Lage ist, auf die mindestens zwei Videos zuzugreifen und diese anzusehen; wobei das Vorbereiten ein Vorbereiten eines ersten der mindestens zwei anderen Videos während eines ersten Zeitraums und eines zweiten der mindestens zwei anderen Videos während eines zweiten Zeitraums aufweist, wobei mindestens ein Teil des ersten Zeitraums mit mindestens einem Teil des zweiten Zeitraums zusammenfällt; und Anzeigen eines Elements auf der Oberfläche, das eine Verbindung zu mindestens einem der mindestens zwei anderen Videos bereitstellt.
-
Gemäß einem anderen Aspekt der Erfindung wird eine Vorrichtung bereitgestellt, die aufweist: mindestens einen Prozessor; und ein computerlesbares Speichermedium mit einem darauf gespeicherten computerlesbaren Computerprogrammcode, der durch den mindestens einen Prozessor ausführbar ist, wobei der computerlesbare Computerprogrammcode aufweist: der computerlesbare Programmcode ist so konfiguriert, dass er als Reaktion auf eine Benutzeranforderung ein Video auf einer Oberfläche anzeigt, wobei online auf das Video zugegriffen werden kann; der computerlesbare Programmcode ist so konfiguriert, dass er eine relative Wahrscheinlichkeit, dass der Benutzer auf ein Video zugreift, in Bezug auf die mindestens zwei anderen Videos quantitativ ermittelt, auf die online zugegriffen werden kann; der computerlesbare Programmcode ist so konfiguriert, dass er einen geordneten Satz von Vorhersagen in Bezug auf die mindestens zwei anderen Videos erzeugt; der computerlesbare Programmcode ist so konfiguriert, dass er die mindestens zwei anderen Videos auf der Grundlage des Satzes von Vorhersagen schrittweise vorbereitet, sodass der Benutzer in der Lage ist, auf die mindestens zwei Videos zuzugreifen und diese anzusehen; der computerlesbare Programmcode ist so konfiguriert, dass er ein erstes der mindestens zwei anderen Videos während eines ersten Zeitraums und ein zweites der mindestens zwei anderen Videos während eines zweiten Zeitraums vorbereitet, wobei mindestens ein Teil des ersten Zeitraums mit mindestens einem Teil des zweiten Zeitraums zusammenfällt; und der computerlesbare Programmcode ist so konfiguriert, dass er ein Element auf der Oberfläche anzeigt, das eine Verbindung zu mindestens einem der mindestens zwei anderen Videos bereitstellt.
-
Gemäß einem weiteren Aspekt der Erfindung wird ein Computerprogrammprodukt bereitgestellt, das aufweist: ein computerlesbares Speichermedium mit einem darauf gespeicherten computerlesbaren Programmcode, wobei der computerlesbare Programmcode aufweist: der computerlesbare Programmcode ist so konfiguriert, dass er als Reaktion auf eine Benutzeranforderung ein Video auf einer Oberfläche anzeigt, wobei online auf das Video zugegriffen werden kann; der computerlesbare Programmcode ist so konfiguriert, dass er quantitativ eine Wahrscheinlichkeit, dass der Benutzer auf ein Video zugreift, in Bezug auf die mindestens zwei anderen Videos ermittelt, auf die online zugegriffen werden kann; der computerlesbare Programmcode ist so konfiguriert, dass er einen geordneten Satz von Vorhersagen in Bezug auf die mindestens zwei anderen Videos erzeugt; der computerlesbare Programmcode ist so konfiguriert, dass er die mindestens zwei anderen Videos auf der Grundlage des Satzes von Vorhersagen schrittweise vorbereitet, sodass der Benutzer in der Lage ist, auf die mindestens zwei Videos zuzugreifen und diese anzusehen; der computerlesbare Programmcode ist so konfiguriert, dass er ein erstes der mindestens zwei anderen Videos während eines ersten Zeitraums und ein zweites der mindestens zwei anderen Videos während eines zweiten Zeitraums vorbereitet, wobei mindestens ein Teil des ersten Zeitraums mit mindestens einem Teil des zweiten Zeitraums zusammenfällt; und der computerlesbare Programmcode ist so konfiguriert, dass er ein Element auf der Oberfläche anzeigt, das eine Verbindung zu mindestens einem der mindestens zwei anderen Videos bereitstellt.
-
Gemäß einem weiteren Aspekt der Erfindung wird ein Verfahren bereitgestellt, das aufweist: Anzeigen eines aktiven Videos als Reaktion auf eine Benutzeranforderung auf einer Oberfläche, wobei online auf das aktive Video zugegriffen werden kann; Lernen von Wahrscheinlichkeiten in Echtzeit, dass der Benutzer auf mindestens zwei andere Videos zugreift, auf die online zugegriffen werden kann; Erzeugen eines Satzes von Vorhersagen, die die mindestens zwei anderen Videos aufweisen; Erstellen von Funktionszeigern zwischen dem aktiven Video und den mindestens zwei anderen Videos in dem Satz von Vorhersagen; Anzeigen mindestens eines Elements auf der Oberfläche, das die Funktionszeiger auslöst; und schrittweises Vorbereiten der mindestens zwei anderen Videos als Funktion der gelernten Wahrscheinlichkeiten, sodass der Benutzer in der Lage ist, auf die mindestens zwei Videos zuzugreifen und diese anzusehen.
-
Zum besseren Verständnis beispielhafter Ausführungsformen der Erfindung in Verbindung mit anderen und weiteren Merkmalen und Vorteilen derselben wird auf die folgende Beschreibung in Verbindung mit den beiliegenden Zeichnungen verwiesen, wobei der Schutzumfang der beanspruchten Ausführungsformen der Erfindung in den beiliegenden Ansprüchen dargelegt wird.
-
KURZBESCHREIBUNG DER VERSCHIEDENEN ZEICHNUNGSANSICHTEN
-
1 veranschaulicht schematisch eine allgemeine Systemarchitektur.
-
2 veranschaulicht schematisch Einzelheiten einer Erfahrungsoptimierungseinheit.
-
3 veranschaulicht schematisch einen Prozess zur Echtzeitanalyse.
-
4 veranschaulicht schematisch einen Prozess zur Berechnung von Gewichtungen.
-
5 veranschaulicht grafisch den Verlauf eines Prozesses zum schrittweisen Abrufen eines Objekts.
-
6 legt allgemein einen Prozess zum Vorbereiten von Videos für die Lieferung dar.
-
6 legt allgemein einen Prozess zum Vorbereiten von Videos für die Lieferung dar.
-
7 veranschaulicht ein Computersystem
-
DETAILLIERTE BESCHREIBUNG
-
Es dürfte leicht verständlich sein, dass die hierin in den Figuren allgemein beschriebenen und veranschaulichten Komponenten der Erfindung zusätzlich zu den beschriebenen beispielhaften Ausführungsformen in einer breiten Vielfalt verschiedener Konfigurationen angeordnet und konstruiert sein können. Somit soll die folgende in den Figuren dargestellte detailliertere Beschreibung der Ausführungsformen der Erfindung nicht den Schutzumfang der beanspruchten Erfindung einschränken, sondern ist nur für beispielhafte Ausführungsformen der Erfindung repräsentativ.
-
Bezugnahmen im Rahmen dieser Beschreibung auf „die eine Ausführungsform” oder „eine Ausführungsform” (oder dergleichen) bedeuten, dass in mindestens einer Ausführungsform der Erfindung ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft enthalten ist. Somit beziehen sich nicht alle an verschiedenen Stellen dieser Beschreibung vorkommenden Formulierungen „gemäß der einen Ausführungsform” oder „gemäß einer Ausführungsform” oder dergleichen auf ein und dieselbe Ausführungsform.
-
Darüber hinaus können die beschriebenen Merkmale, Strukturen oder Eigenschaften in mindestens einer Ausführungsform in einer beliebigen geeigneten Weise kombiniert werden. In der folgenden Beschreibung werden zahlreiche spezielle Einzelheiten dargelegt, um ein gründliches Verständnis von Ausführungsformen der Erfindung zu ermöglichen. Ein Fachmann dürfte jedoch verstehen, dass Ausführungsformen der Erfindung ohne mindestens eine ihrer speziellen Einzelheiten oder zusammen mit anderen Verfahren, Komponenten, Materialien und so weiter in die Praxis umgesetzt werden können. In anderen Fällen werden allgemein bekannte Strukturen, Materialien oder Operationen nicht im Einzelnen gezeigt oder beschrieben, um Aspekte der Erfindung nicht zu verschleiern.
-
Die folgende Beschreibung nimmt Bezug auf die Figuren. Die veranschaulichten Ausführungsformen der Erfindung lassen sich am besten unter Bezugnahme auf die Figuren verstehen. Die folgende Beschreibung soll nur als Beispiel dienen und veranschaulicht einfach bestimmte ausgewählte beispielhafte Ausführungsform der hierin beanspruchten Erfindung.
-
Zu beachten ist, dass die Ablaufpläne und Blockschaubilder in den Figuren die Architektur, die Funktionalität und die Arbeitsweise möglicher Implementierungen von Systemen, Vorrichtungen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der Erfindung veranschaulichen. Demgemäß kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Codeabschnitt darstellen, der mindestens eine ausführbare Anweisung zum Umsetzen der angegebenen logischen Funktion(en) aufweist. Zu beachten ist ferner, dass die in dem Block angegebenen Funktionen bei bestimmten alternativen Implementierungen in einer von den Figuren abweichenden Reihenfolge vorkommen können. Zum Beispiel können zwei nacheinander gezeigte Blöcke je nach vorgesehener Funktionalität in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können mitunter in der umgekehrten Reihenfolge ausgeführt werden. Ferner wird darauf hingewiesen, dass jeder Block der Blockschaubilder und/oder Ablaufpläne oder Kombinationen von Blöcken in den Blockschaubildern und/oder Ablaufplänen durch spezielle Hardwaresysteme, die die angegebenen Funktionen oder Aktionen ausführen, oder durch Kombinationen von spezieller Hardware und Computeranweisungen umgesetzt werden können.
-
Im Folgenden wird insbesondere auf die 1 bis 5 Bezug genommen. Es sollte einsichtig sein, dass die hierin grob skizzierten Prozesse, Anordnungen und Produkte auf oder in Verbindung mit im Wesentlichen jedem geeigneten Computersystem oder einer Gruppe von Computersystemen ausgeführt werden können, die als anschauliches und nicht einschränkendes Beispiel ein System oder einen Server enthalten können, der in 7 mit 12' bezeichnet ist. Gemäß einer beispielhaften Ausführungsform können die meisten oder gar alle in Bezug auf die 1 bis 5 erörterten Prozessschritte, Komponenten und Ergebnisse auf einem Server-Computer, einem Client-Computer, einem Knoten-Computer in einem verteilten Netzwerk oder auf einer Kombination derselben durch eine oder mehrere Verarbeitungseinheiten und Systemspeicher ausgeführt oder verwendet werden, die in 7 mit 16' bzw. 28' bezeichnet sind.
-
Zur einfacheren Bezeichnungsweise wird eine Bezugsnummer beim Fortschreiten von 1 bis 5 um je 100 erhöht, um eine im Wesentlichen ähnliche oder analoge Komponente oder ein Element in Bezug auf mindestens eine Komponente oder ein Element zu bezeichnen, das in den 1 bis 5 zuvor vorkam.
-
In Verbindung mit mindestens einer Ausführungsform der Erfindung kann festgestellt werden, dass durch eine frühzeitige Vorbereitung von Videos die Erfahrung von Benutzern verbessert werden kann. Zur Vorbereitung kann vorhersagbares Abrufen von den Video-Servern, Umsetzen des Codes bereits abgerufener Inhalte und/oder vorhersagbares Abrufen und Umsetzen des Codes gehören. Durch eine frühzeitige Vorbereitung wird die Zugriffslatenzzeit verkürzt, und wenn dabei nur freie Ressourcen verwendet werden, wird die Verarbeitungs- und Netzwerk-Infrastruktur insgesamt weniger belastet. Es lässt sich jedoch nur schwierig mit 100%iger Genauigkeit vorhersagen, ob ein Objekt wirklich angefordert wird. Da eine frühzeitige Vorbereitung vergebens sein kann, ist es wünschenswert, eine solche Ressourcenverschwendung zu verringern oder zu vermeiden.
-
Gemäß einer Ausführungsform der Erfindung sollen demgemäß die Menge von Videos, die in einem Netzwerk aktuell angesehen werden, als aktive Videos bezeichnet werden. Hinzugerechnet werden können die beliebtesten Objekte, auf die während der letzten T Zeiteinheiten zugegriffen wurde, obwohl diese aktuell nicht aktiv sind, wobei diese Erweiterung hier nicht berücksichtigt wird. Die empfohlenen Videos sollen für jedes Video in dem aktiven Satz als Vorhersagesatz bezeichnet werden. Demgemäß können die hierin grob betrachteten Verfahren und Systeme: in Echtzeit ununterbrochen die relative Chance für den Zugriff auf Objekte auf der Grundlage des aktiven Satzes von Videos lernen und dynamisch Gewichtungen zuweisen; Videos aus dem Vorhersagesatz schrittweise in einer netzwerkweiten Reihenfolge von Prioritäten vorbereiten, die durch die Gewichtungen definiert ist (was im Folgenden klarer und verständlicher wird); die Vorbereitung von Videos abbrechen, die nicht mehr aktuell sind, da der Benutzer ein anderes Video anklickt oder genügend Zeit verstrichen ist; und Videos nur unter Verwendung von freien Netzwerk- und Verarbeitungsressourcen vorbereiten.
-
1 veranschaulicht schematisch eine allgemeine Systemarchitektur gemäß mindestens einer Ausführungsform der Erfindung. Gezeigt ist ein Funk-Zugriffsnetzwerk 101, in dem Client-Einheiten (CD) 103 Daten mit Basisstationen (BS) 105 austauschen können. Die Basisstationen sind mit einem Rücktransport- und RNC-(Radio Network Control, Funk-Netzwerksteuerung)Teil 107 verbunden, wobei jede Basisstation durch eine Verbindung (beispielsweise eine Mikrowellenverbindung und/oder einen Lichtwellenleiter) mit der RNC 109 verbunden ist. Die RNC 109 ist über eine GTP-(GPRS-Tunnelprotokoll)Verbindung mit einem SGSN (dienender GPRS-[Allgemeiner paketorientierter Funkdienst]Unterstützungsknoten) 113 eines Verbindungsnetzwerks 111 verbunden. Zu dem Verbindungsnetzwerk 111 gehören auch ein GGSN (Gateway-GPRS-Unterstützungsknoten) 115, der über eine GTP-Verbindung mit dem SGSN 113 sowie über eine IP-(Internetprotokoll)Verbindung mit einem OSN (Dienstanbieternetzwerk) 117 verbunden ist. Das OSN 117 selbst ist über eine externe Verbindung 119 mit dem Internet 121 verbunden, das wiederum Daten mit bestimmten Video-Servern 123 austauscht.
-
Gemäß mindestens einer Ausführungsform der Erfindung wird eine Erfahrungsoptimierungseinheit 125 bereitgestellt, um die Ablaufplanung der Videolieferung zu unterstützen. Während auf CDs 103 Videos angesehen werden, kann die Optimierungseinheit 125 somit das Verwalten der Videolieferung an CDs 103 unterstützen, insbesondere angesichts des Aufwands, der normalerweise mit dem Aufrechterhalten einer externen IP-Verbindung 119 mit dem Internet 121 verbunden ist. Die Optimierungseinheit 125 kann im GGSN 115, alternativ aber auch anderenorts wie beispielsweise in der RNC 109 oder einer BS 105 untergebracht sein.
-
2 veranschaulicht schematisch Einzelheiten einer Erfahrungsoptimierungseinheit 225 gemäß mindestens einer Ausführungsform der Erfindung. Durch ein Modul 229 wird auf eine Zugriffsanalyseablage 227 zugegriffen, die in Echtzeit eine Analyse (in Bezug auf Objekt-Zugriffsmuster oder Muster des Zugriffs von Benutzern auf Videos) durchführt. Die resultierende Analyse wird an einen Vorbereitungsagenten 231 gesendet, der aktive Videos 233 ermittelt und Zeiger auf einen Vorhersagesatz 235 erzeugt und dazu dient, auf eine im Folgenden ausführlich erörterte Weise in jedem Satz Videos hinzuzufügen oder der Aufmerksamkeit zu entziehen. Der Vorbereitungsagent 231 arbeitet auch mit einem Ressourcenmanager 237 zusammen, um die Videolieferung zeitlich zu planen. Der Ressourcenmanager 237 tauscht Daten mit einer Netzwerkressourcen-Planungseinheit wie beispielsweise einer Bandbreiten-Festlegungseinheit (im Fall des Vorabrufs von Daten) oder einer Prozessor-Planungseinheit aus (im Fall der Codeumsetzung des Videos), um sicherzustellen, dass den durch den Vorbereitungsagenten 231 vorgenommenen Vorbereitungsaktivitäten ausreichend Bandbreite und/oder Verarbeitungsressourcen zugeordnet werden.
-
Gemäß mindestens einer Ausführungsform der Erfindung beobachtet die Erfahrungsoptimierungseinheit 225 für jedes Objekt die Wahrscheinlichkeit, dass auf dieses zugegriffen wird, im Verhältnis zu seinem gerade angesehenen Referenzobjekt. 3 veranschaulicht schematisch einen Prozess zur Echtzeitanalyse, die durch das Modul 229 in 2 durchgeführt werden kann; weiterhin kann sowohl auf die 2 und 3 Bezug genommen werden. Demgemäß lernt das Modul 229, dass X-mal auf OBJ1 zugegriffen worden ist und, wenn auf OBJ1 zugegriffen wurde, Y-mal auf OBJ2 zugegriffen wurde, wobei Y/X = Prob(obj2/obj1) ist. Diese bedingten Wahrscheinlichkeitsdaten können auch durch den/die End-Server (in 1 mit 123 bezeichnet) verwaltet werden, von wo sie durch die Routineoptimierungseinheit 225 abgerufen werden können. Die bedingten Wahrscheinlichkeiten werden dann dazu verwendet, im Vorbereitungsagenten 231 Objekten Gewichtungen zuzuweisen. Die Wahrscheinlichkeit wird für jedes einzelne Objekt ohne Berücksichtigung anderer Objekte berechnet, wobei eine berechnete Prioritätsreihenfolge für alle Objekte gilt und die netzwerkweiten Gewichtungen sehr einfach berechnet werden können. Die relativen Gewichtungen von Objekten können auch auf der Grundlage vorhergehender Zugriffe, des Datums, der Benutzervorlieben, des Geschlechts und anderer Analyseergebnisse jedes einzelnen Benutzers ermittelt werden.
-
4 veranschaulicht schematisch einen Prozess zum Berechnen von Gewichtungen gemäß mindestens einer Ausführungsform der Erfindung; dabei kann wiederum auch auf 2 Bezug genommen werden. Nach jeder neuen Antwort eines aktiven Objekts an einen Client C 439 (entweder von dem Server oder von der Erfahrungsoptimierungseinheit 225 selbst) wird, wenn aus der Antwort eine Empfehlungsliste erkennbar ist (441), die geeignete „voraussichtliche” Videoliste {ui} für ein aktuell angesehenes Video v (aus den aktiven Videos 233) erzeugt (443) und dem Vorhersagesatz 235 hinzugefügt. Für jedes in dem Vorhersagesatz 235 erkannte alte Video p (445), das zu C gehört, wird dieses aus dem Vorhersagesatz 235 entfernt (449), wenn es sich bei C um die einzige Verweisadresse für das Video handelt. Wenn dies nicht der Fall ist, wird seine GEWICHTUNG durch die bedingte Wahrscheinlichkeit verringert (451), die von dem vorhergehenden aktiven Video q in C stammt, d. h. GEWICHTUNG (p) –= P(p/q).
-
Gemäß mindestens einer Ausführungsform der Erfindung wird für jedes neuerdings geeignete Video (das heißt, jedes in den voraussichtlichen Listen erkannte neue Objekt [453]), wenn es bereits in dem Vorhersagesatz 235 vorkommt (455), die entsprechende Gewichtung aktualisiert (457), das heißt GEWICHTUNG(ui) += P(ui/v). Wenn dies nicht der Fall ist, werden dem Vorhersagesatz 235 neue geeignete Videos hinzugefügt (459), und die Gewichtung wird so gewählt, dass GEWICHTUNG (ui) = P(ui/v) ist. Dann werden das aktive Video v und die Client-Kennung C der aktiven Liste 233 hinzugefügt, und den entsprechenden voraussichtlichen Videos {ui} in dem Vorhersagesatz 235 werden Zeiger von dem aktiven Video hinzugefügt. Dann wird der Vorhersagesatz in fallender Reihenfolge der Gewichtungen geordnet (461). Die Vorbereitung des Objekts endet damit, dass das Objekt aus dem Vorhersagesatz entfernt wird.
-
In Übereinstimmung mit einem anschaulichen und nicht einschränkenden Beispiel gemäß mindestens einer Ausführungsform der Erfindung kann das folgende Problem unter Verwendung einer schrittweisen Prozedur des Vorbereitungsagenten zum vorausschauenden Abrufen von Objekten gelöst werden. Bei einer gegebenen Kapazität C, die während eines Zeitraums I zum Abrufen empfohlener Videos verfügbar ist, während dessen keine neuen Objekte dem Vorhersagesatz hinzugefügt werden, soll ermittelt werden, wie viele Blöcke eines Objekts i (in dem Vorhersagesatz) abgerufen werden müssen, damit die mittlere Latenzzeit zum Erfüllen künftiger Anforderungen nach diesen Objekten und die zum Abrufen erforderliche Bandbreite aufeinander abgestimmt sind. In einem zugehörigen Optimierungssystem soll mit w
i die Gewichtung eines Objekts i in dem Vorhersagesatz bezeichnet werden. Ohne auf Allgemeingültigkeit zu verzichten, sei w
i ≥ w
i+1 für alle i. S
b(.) soll die Bandbreite/Netzwerkeinsparungsfunktion und
die Latenzzeiteinsparfunktion bezeichnen. Dann ergibt eine Lösung des folgenden Maximierungsproblems die Anzahl der für das Objekt i abzurufenden Blöcke c
i für alle i:
-
Demgemäß veranschaulicht 5 grafisch den Lösungsfortschritt dieses Prozesses beim schrittweisen Abrufen eines Objekts. Zu sehen ist, dass Videos mit einer höheren Gewichtung in mehr Schritten abgerufen werden als Videos mit einer niedrigeren Gewichtung.
-
Gemäß mindestens einer Ausführungsform der Erfindung sind zwei Implementierungen einer Objektabrufprozedur denkbar. Bei einer aggressiven Lösung werden Objekte in einem Umlaufverfahren (unter Verwendung deren Gewichtungen) abgerufen. Hierbei wird ein Kompromiss zwischen der Ressourcenauslastung und der Latenzzeit für den Objektzugriff angestrebt, der durch Verwenden einer empfängerseitigen Puffersteuerung oder durch Ausgeben mehrerer Bereichsanforderungen erreicht werden kann. Dynamische Änderungen am Vorhersagesatz können nahtlos eingezogen werden.
-
Bei einer anderen Objektabruflösung gemäß mindestens einer Ausführungsform der Erfindung wird eine Optimierungslösungseinheit verwendet. Hierbei hängt die Lösung eines Optimierungsproblems von der Bandbreite und Latenzzeiteinsparfunktionen ab, die von Fall zu Fall neu definiert werden können. Dieses Problem kann bei jeder Änderung des Vorhersagesatzes dynamisch gelöst werden. Derselbe Ansatz ist auch beim Codeumsetzen verwendbar.
-
Gemäß mindestens einer Ausführungsform der Erfindung wird ein Ressourcenmanager
237 verwendet. Demgemäß erfolgt das Abrufen empfohlener Videos nur unter Verwendung freier Ressourcen über eine aufwändige externe Verbindung (wie z. B. in
1 mit
119 bezeichnet) oder auf der Verarbeitungsinfrastruktur (für den Fall der Codeumsetzung). Bei freien Netzwerkressourcen kann dies auf unterschiedliche Weise erfolgen, darunter: Varianten von Hintergrund-Übersetzungsprotokollen wie beispielsweise dem in der
US-Patentschrift 7 418 494 mit dem Titel „Method and System for Background Replication of Data Objects”, in der
US-Patentschrift 7 516 238 mit dem Titel „Background Transport Service” und „TCP-LP: A Distributed Algorithm for Low Priority Data Transfer. Infocom 2003” offenbarten Protokoll. Durch Überwachen der Bandbreiteauslastung auf der externen Verbindung und Planen von gerade ausreichenden Vorablesezugriffsanforderungen sollen die Auswirkungen auf aktive Anforderungen auf ein Mindestmaß begrenzt werden (d. h., die Häufigkeit von Vorablesezugriffsanforderungen soll adaptiv begrenzt werden).
-
In 6 wird allgemein ein Prozess zum Vorbereiten der Lieferung von Videos gemäß mindestens einer Ausführungsform der Erfindung dargelegt. Es sollte einsichtig sein, dass ein Prozess wie der in 6 grob skizzierte im Wesentlichen auf jedem geeigneten Computersystem oder Satz von Computersystemen ausgeführt werden kann, der in Form eines anschaulichen und nicht einschränkenden Beispiels ein System wie das in 7 mit 12' bezeichnete beinhalten kann. Gemäß einer beispielhaften Ausführungsform können die meisten oder sogar alle unter Bezugnahme auf 6 erörterten Prozessschritte mittels einer oder mehrerer Verarbeitungseinheiten und Systemspeicher ausgeführt werden, die beispielsweise in 7 mit 16' beziehungsweise 28' bezeichnet sind.
-
Gemäß mindestens einer Ausführungsform der Erfindung wird in 6 gezeigt, dass ein Video als Reaktion auf eine Benutzeranforderung auf einer Oberfläche angezeigt wird, wobei das Video online abrufbar ist (602). Eine relative Wahrscheinlichkeit für den Zugriff des Benutzers auf Videos wird in Bezug auf mindestens zwei andere Videos, die online abrufbar sind, qualitativ ermittelt (604). Ein geordneter Vorhersagesatz wird in Bezug auf die mindestens zwei anderen Videos erzeugt (606). Die mindestens zwei anderen Videos werden auf der Grundlage des Vorhersagesatzes schrittweise vorbereitet, sodass der Benutzer in der Lage ist, auf die mindestens zwei Videos zuzugreifen und diese anzusehen (608). Das Vorbereiten beinhaltet ein Vorbereiten eines ersten der mindestens zwei anderen Videos während eines ersten Zeitraums und eines zweiten der mindestens zwei anderen Videos während eines zweiten Zeitraums, wobei mindestens ein Teil des ersten Zeitraums mit mindestens einem Teil des zweiten Zeitraums zusammenfällt (610). Auf der Oberfläche wird ein Element angezeigt, das eine Verbindung zu mindestens einem der mindestens zwei anderen Videos bereitstellt (612).
-
7 zeigt schematisch ein Beispiel eines Cloud-Computing-Knotens. Der Cloud-Computing-Knoten 10' stellt lediglich ein Beispiel eines geeigneten Cloud-Computing-Knotens dar und ist keinesfalls als Einschränkung des Schutzumfangs der Verwendung oder Funktionalität von hierin beschriebenen Ausführungsformen der Erfindung zu verstehen. Dessen ungeachtet kann der Cloud-Computing-Knoten 10' implementiert werden und/oder alle oben dargelegten Funktionalitäten ausführen. Gemäß Ausführungsformen der Erfindung braucht der Datenverarbeitungsknoten nicht unbedingt Teil eines Cloud-Netzwerks zu sein, sondern kann Teil eines anderen Typs eines verteilten oder anderen Netzwerks sein oder einen eigenständigen Knoten darstellen. Abgesehen davon wird der Knoten 10' hierin jedoch im Rahmen der Erörterung und zur Veranschaulichung als „Cloud-Computing-Knoten” bezeichnet.
-
In dem Cloud-Computing-Knoten 10' befindet sich ein Computersystem/ein Server 12', der mit zahlreichen anderen Universal- oder Spezialdatenverarbeitungsumgebungen oder -konfigurationen zusammenarbeitet. Zu Beispielen bestens bekannter Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die zur Verwendung mit dem Computersystem/Server 12' geeignet sein können, gehören, ohne darauf beschränkt zu sein, Personal Computer-Systeme, Server-Computer-Systeme, Thin Clients, Thick Clients, tragbare oder Laptop-Einheiten, Multiprozessorsysteme, auf Mikroprozessoren beruhende Systeme, Set-Top-Boxen, programmierbare Heimelektronik, Netzwerk-PCs, Minicomputersysteme, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen gehören, die eines der obigen Systeme oder Einheiten und dergleichen beinhalten.
-
Das Computersystem/der Server 12' kann im allgemeinen Zusammenhang mit durch Computersysteme ausführbaren Anweisungen wie beispielsweise Programmmodulen beschrieben werden, die durch ein Computersystem ausgeführt werden. Allgemein können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter beinhalten, die bestimmte Tasks ausführen oder bestimmte abstrakte Datentypen implementieren. Das Computersystem/der Server 12' kann in verteilten Cloud-Computing-Umgebungen wirksam werden, in denen Tasks durch ferne Verarbeitungseinheiten ausgeführt werden, die durch ein Datenübertragungsnetzwerk miteinander verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch fernen Speichermedien des Computersystems befinden, darunter in Arbeitsspeichereinheiten.
-
7 zeigt das Computersystem/den Server 12' in dem Cloud-Computing-Knoten 10 in Form einer Universaldatenverarbeitungseinheit. Die Komponenten des Computersystems/Servers 12' können, ohne darauf beschränkt zu sein, mindestens eine Prozessor- oder Verarbeitungseinheit 16', einen Systemspeicher 28' und einen Bus 18' beinhalten, der verschiedene Systemkomponenten miteinander verbindet, darunter den Systemspeicher 28' mit dem Prozessor 16'.
-
Der Bus 18' stellt mindestens einen von verschiedenen Typen von Busstrukturen dar, darunter ein Speicherbus oder eine Speichersteuerung, ein Peripheriebus, ein beschleunigter Grafikanschluss und ein lokaler oder Prozessorbus, die eine Vielzahl von Busarchitekturen verwenden. Zu solchen Architekturen gehören beispielsweise, ohne darauf beschränkt zu sein, der ISA-(Industrial Standard Architecture, Architektur nach Industriestandard)Bus, der MCA-(Micro Channel Architecture, Mikrokanalarchitektur)Bus, der EISA-(Enhanced ISA, weiterentwickelter ISA)Bus, der lokale VESA (Video Electronics Standards Association, Vereinigung für elektronische Videostandards) Bus und der PCI-(Peripheral Component Interconnects, Verbindungen für Erweiterungskomponenten)Bus.
-
Das Computersystem/der Server 12' beinhaltet üblicherweise eine Vielfalt von durch ein Computersystem lesbaren Medien. Bei solchen Medien kann es um jedes beliebige Medium handeln, auf das das Computersystem/der Server 12' zugreifen kann und wozu sowohl flüchtige als auch nichtflüchtige, austauschbare und nichtaustauschbare Medien gehören.
-
Der Systemspeicher 28' kann durch ein Computersystem lesbare Medien in Form eines flüchtigen Speichers wie beispielsweise eines Direktzugriffsspeichers (RAM) 30' und/oder eines Cachespeichers 32' beinhalten. Das Computersystem/der Server 12' kann ferner andere austauschbare/nichtaustauschbare, flüchtige/nichtflüchtige Speichermedien beinhalten. Beispielsweise kann das Speichersystem 34' zum Lesen von einem (nicht gezeichneten und üblicherweise als „Festplattenlaufwerk” bezeichneten) nichtaustauschbaren, nichtflüchtigen magnetischen Medium lesen und zum Schreiben auf dieses eingerichtet sein. Es kann aber auch ein nicht gezeigtes magnetische Plattenlaufwerk zum Lesen von einer austauschbaren, nichtflüchtigen Magnetplatte (z. B. einer „Diskette”) und zum Schreiben auf dieselbe, und ein optisches Plattenlaufwerk zum Lesen von einer austauschbaren, nichtflüchtigen optischen Platte wie beispielsweise einer CD-ROM, einer DVD-ROM oder einem anderen optischen Medium und zum Schreiben auf dieselbe bereitgestellt werden. In solchen Fällen kann jedes Medium durch mindestens eine Datenmedienschnittstelle mit dem Bus 18' verbunden sein. Im Folgenden wird weiterhin gezeigt und beschrieben, dass der Speicher 28' mindestens ein Programmprodukt mit einem Satz von Programmmodulen (z. B. mit mindestens einem) beinhalten kann, die zum Ausführen der Funktionen von Ausführungsformen der Erfindung konfiguriert sind.
-
In dem Speicher 28' können (beispielsweise, ohne darauf beschränkt zu sein) ein Programm/Dienstprogramm 40' mit einem Satz von Programmmodulen 42' (mindestens einem) sowie ein Betriebssystem, mindestens ein Anwendungsprogramm, andere Programmmodule und Programmdaten gespeichert sein. Jedes Betriebssystem, mindestens ein Anwendungsprogramm, andere Programmmodule und Programmdaten oder bestimmte Kombinationen derselben können eine Implementierung einer Netzwerkumgebung beinhalten. Die Programmmodule 42' führen im Allgemeinen die Funktionen und/oder Verfahrensabläufe von hierin beschriebenen Ausführungsformen der Erfindung aus.
-
Das Computersystem/der Server 12' kann auch mit mindestens einer externen Einheit 14' Daten austauschen, beispielsweise mit einer Tastatur, mit einer Zeigeeinheit, mit einem Bildschirm 24' usw.; mit mindestens einer Einheit, die einem Benutzer das Einwirken auf das Computersystem/den Server 12' ermöglicht; und/oder mit beliebigen Einheiten (z. B. Netzwerkkarte, Modem usw.), die dem Computersystem/Server 12' ein Austauschen von Daten mit mindestens einer anderen Datenverarbeitungseinheit ermöglichen. Ein solches Austauschen von Daten kann über E/A-Schnittstellen 22' erfolgen. Weiterhin kann das Computersystem/der Server 12' über einen Netzwerkadapter 20' Daten mit mindestens einem Netzwerk wie beispielsweise einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetzwerk (WAN) und/oder einem öffentlichen Netzwerk (z. B. dem Internet) austauschen. Zu sehen ist, dass der Netzwerkadapter 20' Daten über den Bus 18' mit den anderen Komponenten des Computersystems/Servers 12' austauscht. Es sollte klar sein, dass in Verbindung mit dem Computersystem/Server 12' andere nicht gezeigte Hardware- und Software-Komponenten verwendet werden können. Als Beispiele kommen infrage, ohne darauf beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Arrays von Plattenlaufwerken, RAID-Systeme, Bandlaufwerke, Speichersysteme zur Datenarchivierung usw.
-
Zu beachten ist, dass Aspekte der Erfindung als System, Verfahren oder Computerprogrammprodukt umgesetzt werden können. Demgemäß können Aspekte der Erfindung die Form einer kompletten Hardwareumgebung, einer kompletten Softwareumgebung (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardwareaspekte in sich vereint, und hierin im Allgemeinen als „Schaltung”, „Modul” oder „System” bezeichnet werden kann. Darüber hinaus können Aspekte der Erfindung die Form eines Computerprogrammprodukts annehmen, das in mindestens einem computerlesbaren Medium mit einem darauf gespeicherten computerlesbaren Programmcode verkörpert ist.
-
Es kann eine beliebige Komponente von einem oder mehreren computerlesbaren Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder um ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel, ohne darauf beschränkt zu sein, um ein elektronisches, magnetisches, optisches, elektromagnetisches oder Halbleitersystem, eine entsprechende Vorrichtung oder Einheit oder eine beliebige geeignete Komponente derselben handeln. Als einzelne Beispiele (eine nicht erschöpfende Aufzählung) des computerlesbaren Speichermedium kommen infrage: eine elektrische Verbindung mit mindestens einer Leitung, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination derselben. In Verbindung mit diesem Dokument kann es sich bei einem computerlesbaren Speichermedium um jedes materielle Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen enthalten oder speichern kann.
-
Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal mit einem darin verkörperten computerlesbaren Programmcode enthalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle,. Ein solches sich ausbreitendes Signal kann eine beliebige aus einer Vielfalt von Formen annehmen, darunter, ohne darauf beschränkt zu sein, elektromagnetisch, optisch oder eine beliebige geeignete Kombination derselben. Bei einem computerlesbaren Signalmedium kann es sich um jedes computerlesbare Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen übertragen, austauschen, weiterleiten oder transportieren kann.
-
Ein auf einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, darunter, ohne darauf beschränkt zu sein, drahtlos, leitungsgebunden, Lichtwellenleiter, HF usw. oder eine beliebige geeignete Kombination derselben.
-
Ein Computerprogrammcode zum Ausführen von Operationen für Aspekte der Erfindung kann in einer beliebigen Komponente von mit einer Programmiersprache geschrieben sein, darunter eine objektorientierte Programmiersprache wie beispielsweise Java®, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie beispielsweise die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann komplett auf dem Computer (der Einheit) eines Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder komplett auf dem fernen Computer oder Server ausgeführt werden. Im letzteren Szenario kann der ferne Computer mit dem Computer des Benutzers durch einen beliebigen Typ von Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann (zum Beispiel durch das Internet unter Verwendung eines Internet-Dienstanbieters) zu einem externen Computer hergestellt werden.
-
Aspekte der Erfindung werden hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten beschrieben. Es ist klar, dass jeder Block der Ablaufpläne und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaubildern durch Anweisungen eines Computerprogramms umgesetzt werden können. Diese Anweisungen des Computerprogramms können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zugeführt werden, sodass die durch den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zum Umsetzen der in dem Block oder den Blöcken der Ablaufpläne und/oder Blockschaubilder angegebenen Funktionen/Aktionen erzeugen.
-
Diese Anweisungen des Computerprogramms können auch in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten veranlassen kann, in einer bestimmten Weise derart zu funktionieren, dass die in dem computerlesbaren Medium gespeicherten Anweisungen ein Herstellungsprodukt erzeugen. Ein solches Herstellungsprodukt kann Anweisungen enthalten, die die in dem Block oder den Blöcken der Ablaufpläne und/oder Blockschaubilder angegebenen Funktionen/Aktionen umsetzen.
-
Die Anweisungen des Computerprogramms können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Folge auf dem Computer, einer anderen programmierbaren Vorrichtung oder anderen Einheiten auszuführender Arbeitsschritte zu veranlassen, um einen computergestützten Prozess derart zu erzeugen, dass die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse zum Umsetzen der in dem Block oder den Blöcken der Ablaufpläne und/oder Blockschaubilder angegebenen Funktionen/Aktionen bereitstellen.
-
Diese Offenbarung ist zum Veranschaulichen und Beschreiben vorgelegt worden, erhebt jedoch nicht den Anspruch auf Vollständigkeit oder Beschränkung. Dem Fachmann sind viele Modifikationen und Varianten offensichtlich. Die Ausführungsformen wurden gewählt und beschrieben, um die Grundgedanken und die praktische Anwendung zu erläutern und anderen Fachleuten das Verständnis der Offenbarung zu ermöglichen.
-
Zwar sind hierin anschauliche Ausführungsformen der Erfindung beschrieben worden, jedoch ist klar, dass die Ausführungsformen der Erfindung nicht genau auf diese Ausführungsformen beschränkt sind und dass der Fachmann daran verschiedene andere Änderungen und Modifikationen vornehmen kann, ohne vom Schutzumfang oder vom Wesensgehalt der Offenbarung abzuweichen.