-
HINTERGRUND
-
Die vorliegende Erfindung bezieht sich allgemein auf das Gebiet von Virtual-Reality-(VR-)Systemen und insbesondere auf Auswählen von Inhalten, die auf einer VR-Interaktionseinheit angezeigt werden sollen.
-
VR-Systeme können Benutzern interaktive Erlebnisse bereitstellen, die vielfältige Aktivitäten oder Kontexte simulieren, darunter Einkaufen (z.B. in virtuellen Geschäften mit mehreren Kontexten), soziale Interaktion (z.B. virtueller Austausch von Erfahrungen mit anderen), immersives Spielen usw. VR-Systeme benötigen große Datenmengen, und für den Erfolg der VR-Interaktion ist eine ausreichende verfügbare Bandbreite erforderlich, um die hohen Anforderungen an die Datenübertragung wirksam zu unterstützen.
-
VR-Systeme benötigen im Allgemeinen zwar große Datenmengen, jedoch haben nicht alle Inhalte und Kontexte die gleichen Anforderungen an die verfügbare Bandbreite (d.h., einige Inhalte und Kontexte sind datenintensiver als andere). Kontexte mit grafikintensivem Inhalt und besonders hoher Auflösung benötigen besonders viel verfügbare Bandbreite, während statischer und grafisch einfacher Inhalt vergleichsweise weniger verfügbare Bandbreite benötigt.
-
Aus vielfältigen Gründen kann die verfügbare Bandbreite von Ort zu Ort und an einigen Orten sogar von einer Tageszeit zur anderen variieren. Diese Schwankungen können besonders für Benutzer problematisch sein, die versuchen, Kontexte zu erleben, für die mehr Bandbreite erforderlich ist, als an einem bestimmten Ort oder zu einer bestimmten Zeit verfügbar ist. Dies kann zu Schwierigkeiten für Benutzer führen, die versuchen, eine Reihe von Kontexten während einer VR-Sitzung effizient und zufriedenstellend zu erleben, die eine Vielfalt verfügbarer Bandbreite während der Sitzung bereitstellt. Diese Probleme können beispielsweise auftreten, wenn sich ein Benutzer von Orten oder Zeiträumen mit großer verfügbarer Bandbreite zu Orten oder Zeiträumen mit relativ geringer verfügbarer Bandbreite bewegt. Diese Schwierigkeiten können besonders problematisch sein, wenn versucht wird, eine Reihe von Kontexten vor dem Hintergrund unterschiedlicher Anforderungen an Kontextdaten und wechselnder Verfügbarkeit der Bandbreite zu erleben, da einige Inhalte und bestimmte Kontexte nur an bestimmten Orten oder zu bestimmten Zeiten erfolgreich erlebt werden können.
-
KURZDARSTELLUNG
-
In Ausführungsformen gemäß der vorliegenden Erfindung umfasst ein durch einen Computer implementiertes Verfahren zum proaktiven Auswählen von Virtual-Reality-(VR-)Inhalten Empfangen von Positionsmetadaten von einer VR-Interaktionseinheit durch den Computer, wobei die Positionsmetadaten einen Referenzort enthalten. Der Computer empfängt Bandbreiten-Metadaten für den Referenzort, die Werte der verfügbaren Bandbreite enthalten, die auf einer Zeitskala indexiert sind, und empfängt Informationen über die Anforderungen an die VR-Inhalte, die Schwellenwerte der verfügbaren Bandbreite enthalten, um für eine Gruppe von VR-Inhaltskontexten eine annehmbare Leistung zu erzielen. Der Computer empfängt ferner zu einem Referenzzeitpunkt eine Anforderung zum Bereitstellen von VR-Inhalten zu einem zweiten Zeitpunkt, der nach dem Referenzzeitpunkt liegt. Der Computer wählt ferner vor dem Eintreten des zweiten Zeitpunkts einen VR-Inhaltskontext aus, der einen Schwellenwert der für eine annehmbare Leistung verfügbaren Bandbreite aufweist, der unter dem Wert der verfügbaren Bandbreite liegt, der dem zweiten Zeitpunkt entspricht. Gemäß anderen Aspekten erfolgt das Auswählen zumindest teilweise in Übereinstimmung mit einem Präferenzwert, der den VR-Inhaltskontexten zugehörig ist, wobei diese aus einer Liste ausgewählt werden, die aus einer spezifischen Benutzeranforderung, einem wirtschaftlichen Wert, der Popularität und der Aktualität eines letzten Besuchs durch die VR-Interaktionseinheit besteht. Gemäß anderen Aspekten zeigen die Positionsmetadaten an, dass sich die VR-Interaktionseinheit zum zweiten Zeitpunkt an einem zweiten Ort befinden wird, wobei der Computer Bandbreiten-Metadaten für den zweiten Ort empfängt, die mindestens einen Wert der verfügbaren Bandbreite enthalten, und der VR-Inhaltskontext zumindest teilweise in Übereinstimmung mit der verfügbaren Bandbreite des zweiten Orts erstellt wird. Gemäß anderen Aspekten enthalten die Positionsmetadaten Informationen, die aus einer Liste ausgewählt werden, die aus Bewegungsgeschwindigkeit, Bewegungsrichtung und Bewegungsschnelligkeit besteht. Gemäß anderen Aspekten zeigen die Positionsmetadaten an, dass sich die VR-Interaktionseinheit zu einem dritten Zeitpunkt an einem dritten Ort befinden wird, wobei der Computer Bandbreiten-Metadaten für den dritten Ort empfängt, die Werte der verfügbaren Bandbreite enthalten, die auf der Zeitskala indexiert sind, wobei der Computer vor dem Eintreten des dritten Zeitpunkts eine Abweichungsbedingung feststellt, insofern als der ausgewählte VR-Inhaltskontext einen Schwellenwert der für eine annehmbare Leistung verfügbaren Bandbreite aufweist, der über dem Wert der verfügbaren Bandbreite an dem dritten Ort zu dem dritten Zeitpunkt liegt, und wobei der Computer als Reaktion auf das Feststellen der Abweichungsbedingung vor dem Eintreten des dritten Zeitpunkts eine Korrekturmaßnahme durchführt. Gemäß anderen Aspekten besteht die Korrekturmaßnahme darin, einen zweiten VR-Inhaltskontext auszuwählen, der einen Schwellenwert der für eine annehmbare Leistung verfügbaren Bandbreite aufweist, der unter dem Wert der verfügbaren Bandbreite an dem dritten Ort zu dem dritten Zeitpunkt liegt. Gemäß anderen Aspekten besteht die Korrekturmaßnahme darin, dass der Computer einem Benutzer der VR-Interaktionseinheit vorschlägt, an dem dritten Ort zu einem vierten Zeitpunkt anzukommen, der zumindest teilweise so ausgewählt wird, dass der Schwellenwert der für eine annehmbare Leistung verfügbaren Bandbreite für den ausgewählten VR-Inhaltskontext unter der verfügbaren Bandbreite an dem dritten Ort zu dem vierten Zeitpunkt liegt. Gemäß anderen Aspekten besteht die Korrekturmaßnahme darin, dass der Computer einen autonomen Positionierungsmechanismus für die VR-Interaktionseinheit anweist, an dem dritten Ort zu einem vierten Zeitpunkt anzukommen, der zumindest teilweise so ausgewählt wird, dass der Schwellenwert der für eine annehmbare Leistung verfügbaren Bandbreite für den ausgewählten VR-Inhaltskontext unter der verfügbaren Bandbreite an dem dritten Ort zu dem vierten Zeitpunkt liegt. Gemäß anderen Aspekten zeigen die Positionsmetadaten an, dass sich die VR-Interaktionseinheit zum zweiten Zeitpunkt an einem zweiten Ort und zu einem dritten Zeitpunkt an einem dritten Ort befinden wird, wobei der Computer Bandbreiten-Metadaten für den zweiten Ort empfängt, die Werte der verfügbaren Bandbreite enthalten, die zeitlich indexiert sind, und wobei das Auswählen des VR-Inhaltskontexts durch den Computer zumindest teilweise in Übereinstimmung mit dem Wert der verfügbaren Bandbreite für den zweiten Ort zu dem zweiten Zeitpunkt erfolgt, wobei der Computer Bandbreiten-Metadaten für den dritten Ort empfängt, die Werte der verfügbaren Bandbreite enthalten, die auf der Zeitskala indexiert sind, wobei der Computer vor dem Eintreten des dritten Zeitpunkts einen zweiten VR-Inhaltskontext auswählt, der einen Schwellenwert der für eine annehmbare Leistung verfügbaren Bandbreite aufweist, der unter dem Wert der verfügbaren Bandbreite an dem dritten Ort liegt, wobei das Auswählen des zweiten VR-Inhaltskontexts durch den Computer zumindest teilweise in Übereinstimmung mit dem Wert der verfügbaren Bandbreite für den dritten Ort zu dem dritten Zeitpunkt erfolgt. Gemäß anderen Aspekten wird der zweite VR-Inhaltskontext durch den Computer zumindest teilweise unter Berücksichtigung eines Präferenzwerts ausgewählt, der den VR-Inhaltskontexten zugehörig ist, wobei diese aus einer Liste ausgewählt werden, die aus einer spezifischen Benutzeranforderung, einem wirtschaftlichen Wert, der Popularität und der Aktualität eines letzten Besuchs durch die VR-Interaktionseinheit besteht. Gemäß anderen Aspekten zeigen die Positionierungsmetadaten an, dass sich die VR-Interaktionseinheit zu einem dritten Zeitpunkt und einem vierten Zeitpunkt an dem Referenzort befinden wird, wobei der Computer vor dem Eintreten des dritten Zeitpunkts eine Abweichungsbedingung feststellt, insofern als der ausgewählte VR-Inhaltskontext einen Schwellenwert der für eine annehmbare Leistung verfügbaren Bandbreite aufweist, der über dem Wert der verfügbaren Bandbreite an dem Referenzort zu dem dritten Zeitpunkt liegt, wobei der Computer vor dem Eintreten des dritten Zeitpunkts eine Wiederübereinstimmungsbedingung feststellt, insofern als der ausgewählte VR-Inhaltskontext einen Schwellenwert der für eine annehmbare Leistung verfügbaren Bandbreite aufweist, der unter dem Wert der verfügbaren Bandbreite an dem Referenzort zu dem vierten Zeitpunkt liegt, wobei der Computer als Reaktion auf das Feststellen der Abweichungsbedingung und der Wiederübereinstimmungsbedingung zwischen dem Eintreten des dritten Zeitpunkts bis zum Eintreten des vierten Zeitpunkts zu einem VR-Ersatzinhaltskontext wechselt, der einen Schwellenwert der für eine annehmbare Leistung verfügbaren Bandbreite aufweist, der unter dem Wert der verfügbaren Bandbreite an dem Referenzort zu dem dritten Zeitpunkt liegt.
-
Gemäß einer anderen Ausführungsform umfasst ein System zum proaktiven Auswählen von Virtual-Reality-(VR-)Inhalten ein Computersystem, das ein durch einen Computer lesbares Speichermedium mit darin enthaltenen Programmanweisungen aufweist, wobei die Programmanweisungen von einem Computer ausgeführt werden können, um den Computer zu veranlassen: Positionsmetadaten von einer VR-Interaktionseinheit zu empfangen, wobei die Positionsmetadaten einen Referenzort enthalten; Bandbreiten-Metadaten für den Referenzort zu empfangen, die Werte der verfügbaren Bandbreite enthalten, die auf einer Zeitskala indexiert sind; Informationen über die Anforderungen an die VR-Inhalte zu empfangen, die Schwellenwerte der verfügbaren Bandbreite enthalten, um für eine Mehrzahl von VR-Inhaltskontexten eine annehmbare Leistung zu erzielen; zu einem Referenzzeitpunkt eine Anforderung zum Bereitstellen von VR-Inhalten zu einem zweiten Zeitpunkt zu empfangen, wobei der zweite Zeitpunkt chronologisch nach dem Referenzzeitpunkt liegt; und vor dem Eintreten des zweiten Zeitpunkts einen VR-Inhaltskontext auszuwählen, der einen Schwellenwert der für eine annehmbare Leistung verfügbaren Bandbreite aufweist, der unter dem Wert der verfügbaren Bandbreite liegt, der dem zweiten Zeitpunkt auf der Zeitskala entspricht.
-
Gemäß einer anderen Ausführungsform umfasst ein Computerprogrammprodukt zum proaktiven Auswählen von Virtual-Reality-(VR-)Inhalten ein durch einen Computer lesbares Speichermedium mit darin enthaltenen Programmanweisungen, wobei die Programmanweisungen von einem Computer ausgeführt werden können, um den Computer zu veranlassen: unter Verwendung des Computers Positionsmetadaten von einer VR-Interaktionseinheit zu empfangen, wobei die Positionsmetadaten einen Referenzort enthalten; unter Verwendung des Computers Bandbreiten-Metadaten für den Referenzort zu empfangen, die Werte der verfügbaren Bandbreite enthalten, die auf einer Zeitskala indexiert sind; unter Verwendung des Computers Informationen über die Anforderungen an die VR-Inhalte zu empfangen, die Schwellenwerte der verfügbaren Bandbreite enthalten, um für eine Mehrzahl von VR-Inhaltskontexten eine annehmbare Leistung zu erzielen; zu einem Referenzzeitpunkt eine Anforderung zum Bereitstellen von VR-Inhalten zu einem zweiten Zeitpunkt zu empfangen, wobei der zweite Zeitpunkt chronologisch nach dem Referenzzeitpunkt liegt; und unter Verwendung des Computers vor dem Eintreten des zweiten Zeitpunkts einen VR-Inhaltskontext auszuwählen, der einen Schwellenwert der für eine annehmbare Leistung verfügbaren Bandbreite aufweist, der unter dem Wert der verfügbaren Bandbreite liegt, der dem zweiten Zeitpunkt auf der Zeitskala entspricht.
-
Im Hinblick auf die erkannten Mängel und Probleme versucht die vorliegende Offenbarung, das Auswählen von VR-Kontext proaktiv zu koordinieren, um die dynamische, historisch jedoch bekannte Bandbreiten-Verfügbarkeit während einer bestimmten VR-Sitzung Rechnung anzupassen.
-
Figurenliste
-
Diese und andere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung ergeben sich anhand der folgenden ausführlichen Beschreibung veranschaulichender Ausführungsformen, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist. Die verschiedenen Merkmale der Zeichnungen sind nicht maßstabsgetreu, da die Abbildungen der Klarheit dienen, um dem Fachmann das Verständnis der Erfindung in Verbindung mit der ausführlichen Beschreibung zu erleichtern. Die Zeichnung sind nachstehend aufgeführt:
- 1 ist ein schematisches Blockschaubild, das einen Überblick über ein System für ein durch einen Computer implementiertes Verfahren zum vorausschauenden Auswählen von Virtual-Reality-Inhalten veranschaulicht, das Bedingungen für eine demnächst verfügbare Bandbreite gemäß Ausführungsformen der vorliegenden Erfindung proaktiv anpasst.
- 2 ist ein Ablaufplan, der ein Verfahren veranschaulicht, das unter Verwendung des in 1 gezeigten Systems zum vorausschauenden Auswählen von Virtual-Reality-Inhalten implementiert wird, das Bedingungen für eine demnächst verfügbare Bandbreite gemäß einigen Aspekten der Erfindung proaktiv anpasst.
- 3 ist ein Ablaufplan, der ein Verfahren veranschaulicht, das unter Verwendung des in 1 gezeigten Systems zum vorausschauenden Auswählen von Virtual-Reality-Inhalten implementiert wird, das Bedingungen für eine demnächst verfügbare Bandbreite gemäß einigen Aspekten der Erfindung proaktiv anpasst.
- 4 ist ein Ablaufplan, der ein Verfahren veranschaulicht, das unter Verwendung des in 1 gezeigten Systems zum vorausschauenden Auswählen von Virtual-Reality-Inhalten implementiert wird, das Bedingungen für eine demnächst verfügbare Bandbreite gemäß einigen Aspekten der Erfindung proaktiv anpasst.
- 5 ist ein Ablaufplan, der ein Verfahren veranschaulicht, das unter Verwendung des in 1 gezeigten Systems zum vorausschauenden Auswählen von Virtual-Reality-Inhalten implementiert wird, das Bedingungen für eine demnächst verfügbare Bandbreite gemäß einigen Aspekten der Erfindung proaktiv anpasst.
- 6 ist ein Ablaufplan, der ein Verfahren veranschaulicht, das unter Verwendung des in 1 gezeigten Systems zum vorausschauenden Auswählen von Virtual-Reality-Inhalten implementiert wird, das Bedingungen für eine demnächst verfügbare Bandbreite gemäß einigen Aspekten der Erfindung proaktiv anpasst.
- 7 ist eine Tabelle, die wie durch einige Aspekte der Erfindung implementiert beispielhafte Bandbreiten-Metadaten für mehrere Orte zeigt, die auf einer Zeitskala indexiert sind.
- 8 ist eine Tabelle, die wie durch einige Aspekte der Erfindung implementiert beispielhafte Schwellenwerte der für eine annehmbare Metadaten-Leistung verfügbaren Bandbreite für mehrere VR-Inhaltskontexte zusammen mit zugehörigen typischen Kontext-Sitzungszeitpunkten zeigt.
- 9 ist eine schematische Darstellung einer Karte, die einen Referenzort, einen zweiten Ort und einen dritten Ort zeigt, die gemäß einigen Aspekten der Erfindung implementiert werden.
- 10 ist ein schematisches Blockschaubild, das ein Computersystem gemäß einer Ausführungsform der Offenbarung zeigt, das ganz oder teilweise in eine(n) oder mehrere der in 1 gezeigten Computer oder Einheiten integriert werden kann und mit den in 1 gezeigten Systemen und Verfahren zusammenarbeitet.
- 11 zeigt eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung.
- 12 zeigt Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die folgende Beschreibung mit Bezugnahme auf die beigefügten Zeichnungen wird bereitgestellt, um ein umfassendes Verständnis der beispielhaften Ausführungsformen der Erfindung wie in den Ansprüchen und ihren Entsprechungen definiert zu ermöglichen. Die Beschreibung enthält zum besseren Verständnis spezifische Einzelheiten, die jedoch nur als beispielhaft zu verstehen sind. Fachleute erkennen daher, dass verschiedene Änderungen und Modifizierungen der hier beschriebenen Ausführungsformen vorgenommen werden können, ohne vom Anwendungsbereich und Grundgedanken der Erfindung abzuweichen. Aus Gründen der Klarheit und Kürze können die Beschreibungen von bekannten Funktionen und Konstruktionen darüber hinaus weggelassen werden.
-
Die in der folgenden Beschreibung und den Ansprüchen verwendeten Begriffe und Wörter sind nicht auf die bibliografischen Bedeutungen beschränkt, sondern werden lediglich verwendet, um ein klares und eindeutiges Verständnis der Erfindung zu ermöglichen. Für Fachleute ist daher offensichtlich, dass die folgende Beschreibung von beispielhaften Ausführungsformen der vorliegenden Erfindung nur zur Veranschaulichung und nicht zur Einschränkung der Erfindung bereitgestellt wird, wie sie in den beigefügten Ansprüchen und ihren Entsprechungen definiert ist.
-
Es versteht sich, dass die Singularformen „ein/eine/einer/eines“ und „der/die/das“ die Pluralformen umfassen, es sei denn, der Zusammenhang zeigt eindeutig etwas anderes auf. Die Bezugnahme auf „einen Teilnehmer“ schließt beispielsweise die Bezugnahme auf einen oder mehrere solcher Teilnehmer ein, es sei denn, der Zusammenhang zeigt eindeutig etwas anderes auf.
-
Mit gemeinsamer Bezugnahme auf die Figuren im Allgemeinen und besonderer Bezugnahme auf 1 wird nun ein Überblick über ein Verfahren zum vorausschauenden Auswählen von Virtual-Reality-Inhalten gezeigt, der in einem System 100 verwendet werden kann, wie es von einem Servercomputer 102 mit einem optional gemeinsam genutzten Speicher 104 und Aspekten, die proaktiv Bedingungen für eine verfügbare Bandbreite anpassen, gemäß einer Ausführungsform der vorliegenden Offenbarung ausgeführt wird. Der Servercomputer 102 tauscht Daten mit einer Systemuhr 106 aus, die Referenzzeitwerte und ein konsistentes, chronologisches Indexieren für Aspekte der vorliegenden Erfindung bereitstellt. Ein VR-Kontextdatensatz (VRCD) 108 stellt Kontextinhalte und die zugehörigen Daten zu den Bandbreitenanforderungen bereit. Der Servercomputer 102 tauscht ferner Daten mit einer Quelle von Metadaten über die verfügbare Bandbreite (ABM) 110 aus. In einigen Aspekten der Erfindung stellt eine VR-Interaktionseinheit 112 (VRID) VRID-Positionsmetadaten 114 bereit, die Informationen über die VRID bereitstellen, darunter Ort, Geschwindigkeit, Fahrtrichtung und möglicherweise Schnelligkeit, die alle auf Referenzzeiten indexiert werden können, die zum Koordinieren der Informationen verwendet werden, die von der Systemuhr 106 bereitgestellt werden. Ein VR-Inhaltsauswahlmodul (VRCSM) 116 wählt wie nachstehend genauer beschrieben proaktiv einen VR-Kontext aus VR-Kontexten aus, die Bandbreitenanforderungen aufweisen, die für die Bandbreite geeignet sind, die an den Orten und zu den Zeiten verfügbar ist, an denen sich die VRID 114 befindet. Das VR-Inhaltserzeugungsmodul (VRCGM) 118 bereitet Inhalte für ausgewählte Kontexte vor und sendet diese an die VRID 114, damit dieser von einem Benutzer (nicht dargestellt) erlebt werden kann.
-
Mit weiterer Bezugnahme auf 2 werden nun Aspekte eines Verfahrens im Einzelnen beschrieben, das in dem vorstehend beschriebenen System 100 zum vorausschauenden Auswählen von Virtual-Reality-Inhalten verwendet werden kann, das proaktiv Bedingungen für eine demnächst verfügbare Bandbreite gemäß einigen Aspekten der Erfindung anpasst. Gemäß Aspekten dieser Ausführungsform befindet sich ein Benutzer, der eine VRID 112 steuert, an einem Ort (z.B. Haus, Geschäftsgebäude, Flughafen usw.) und möchte eine virtuelle Einkaufstour durchführen. Bei Block 202 empfängt der Servercomputer 102 die VRID-Positionsmetadaten 114, darunter ein Referenzort 902 (am besten auf der Karte 900 in 11 zu sehen), für die VRID 112. Bei Block 204 empfängt der Servercomputer 102 die Bandbreiten-Metadaten 110 (in Tabelle 700 in 7 dargestellt) für mehrere Orte 702, die die Werte 704 der für jeden Ort verfügbaren Bandbreite enthalten, die auf einer Zeitskala indexiert sind (z.B. die repräsentativen Referenzzeitpositionen 706, 708, 710, 712), die der von der Systemuhr 106 verwendeten Zeitskala entsprechen.
-
Bei Block 206 empfängt der Servercomputer 102 Informationen über die Anforderung an den VR-Kontextinhalt, die Schwellenwerte der verfügbaren Bandbreite enthalten, um für eine Gruppe von VR-Inhaltskontexten eine annehmbare Leistung zu erzielen. Wie hier verwendet, bedeutet der Begriff „Kontext“ eine virtuelle Umgebung, die derjenigen ähnelt, die man bei der Ausübung einer Aktivität wie Einkaufen in einem konventionellen (z.B. nicht virtuellen) Geschäft erleben kann. Ein konventionelles Geschäft kann mehrere Abteilungen oder Arten von zusammengefassten Waren (z.B. Kleidung, Kosmetika, Blumen, Obst, Reinigungsmittel, Bürobedarf und sonstiges, wie von Fachleuten ausgewählt) haben, die während eines bestimmten Einkaufs erlebt werden können. Die Kontexte (von denen mehrere bei 802 in Tabelle 800 von 8 dargestellt sind) können jeweils einen bestimmten Satz von Merkmalen (z.B. Ebenen des zu verarbeitenden Verpackungsinhalts, Details des Aussehens, Aspekte, die bei einer Kaufentscheidung zu berücksichtigen sind, Zeit, die in der Regel mit der Produktgruppe während eines bestimmten Einkaufs verbracht wird, usw.) aufweisen. Für das Darstellen verschiedener Kontexte in einem virtuellen Geschäft sind daher verschiedene Datenmengen erforderlich. Virtuelles Einkaufen im Kontext 802 von Blumen kann beispielsweise eine Bandbreite erfordern, die bei einer Rate über einem Schwellenwert 804 für eine annehmbare Leistung von 200 MB/s verfügbar ist, während für das Einkaufen im Kontext von Reinigungsmitteln für eine annehmbare Leistung nur 25 MB/s notwendig sind. Der Grund dafür ist, dass für das richtige Darstellen von geometrisch einfachen rechteckigen Verpackungen, wie sie häufig im Kontext 802 von Reinigungsmitteln zu finden sind, viel weniger Daten benötigt werden als für das Darstellen von bunten und oft hoch detaillierten Blumen. Mit anderen Worten, der Reinigungsmittelkontext 802 weist einen Schwellenwert der für eine annehmbare Leistung verfügbaren Bandbreite auf, der niedriger als derjenige des Blumenkontexts ist. Gemäß
8 weist der Reinigungsmittelkontext 802 einen Schwellenwert 804 der verfügbaren Bandbreite von 25 MB/s auf, während der Blumenkontext einen Schwellenwert der verfügbaren Bandbreite von 200 MB/s aufweist. Es sei darauf hingewiesen, dass die Kontexte 802 variieren können und nach dem Ermessen eines Fachmanns ausgewählt werden können. Es sei ferner darauf hingewiesen, dass die Kontexte 802 nicht auf die Art der Waren beschränkt sein müssen, sondern auch die Gamifizierung einer Situation, die Zusammenarbeit und andere Aspekte, die Daten benötigen, umfassen können, die wie von einem Fachmann auf diesem Gebiet ausgewählt die Erfahrung eines Kontexts verbessern können.
-
Der Versuch, die Kontexte 802 darzustellen, wenn die verfügbare Bandbreite 704 unter den jeweiligen Kontextschwellenwerten 804 liegt, führt zu einer unannehmbaren Erfahrung des Benutzers. Für eine erfolgreiche VR-Sitzung ist es daher wünschenswert, nur die Kontexte 802 mit Schwellenwerten 804 der verfügbaren Bandbreite auszuwählen, die unter der verfügbaren Bandbreite 704 liegen. Wie vorstehend erwähnt und in 7 dargestellt, kann die verfügbare Bandbreite 704 zwischen den Orten 702 und sogar zu verschiedenen Zeitpunkten 706, 708, 710, 712 für einige Orte (z.B. den Ort Nr. 3) variieren.
-
Weiterhin unter Bezugnahme auf 2 empfängt der Servercomputer 102 bei Block 208 zu einem Referenzzeitpunkt 706 (z.B. 13 Uhr), der von der Systemuhr 106 erzeugt wird, eine Anforderung zum Bereitstellen eines VR-Inhalts zu einem zweiten, späteren Zeitpunkt 708 (z.B. 15 Uhr). Um ein erfolgreiches Darstellen des Kontexts 802 zum zweiten Zeitpunkt 708 zu gewährleisten, verwendet der Servercomputer 102 das VRCSM 116, um sicherzustellen, dass ein Kontext mit einem Schwellenwert 804 der für eine annehmbare Leistung verfügbaren Bandbreite ausgewählt wird, der unter der Bandbreite 704 liegt, die zum zweiten Zeitpunkt 708 am Referenzort 902 (in 11 als Ort Nr. 1 dargestellt) verfügbar ist. Der Servercomputer 102 wählt daher bei Block 210 vor dem Eintreten des zweiten Zeitpunkts 708 einen VR-Inhaltskontext aus, der einen Schwellenwert der für eine annehmbare Leistung verfügbaren Bandbreite aufweist, der unter dem Wert der verfügbaren Bandbreite am Referenzort 902 zum zweiten Zeitpunkt liegt.
-
Es sei darauf hingewiesen, dass der Servercomputer 102 beim Auswählen von darzustellenden Kontexten neben der verfügbaren Bandbreite und zugehörigen Leistungsschwellenwerten noch andere Faktoren berücksichtigen kann. Der Servercomputer kann in verschiedenen Ausführungsformen beispielsweise auch einen Präferenzwert für einen VR-Inhaltskontext in Betracht ziehen. Gemäß Aspekten verschiedener Ausführungsformen dieser Erfindung kann der Präferenzwert eine spezifische Benutzeranforderung, einen wirtschaftlichen Wert, die Popularität und die Aktualität eines letzten Besuchs eines Kontexts durch eine bestimmte VR-Interaktionseinheit und andere, von einem Fachmann auf diesem Gebiet ausgewählte Faktoren umfassen. Auf diese Weise kann der Servercomputer 102 sicherstellen, dass die Kontexte 802 auf Wunsch in Übereinstimmung mit mehreren Faktoren ausgewählt werden. Dadurch können die Benutzerje nach Systemprofil zum Beispiel ein Auswählen des Kontexts steuern, die Anbieter von Inhalten können ein Auswählen von Kontexten fördern, die kommerziell besonders wichtig sind, und die Vielfalt der Kontexte von einer Sitzung zur nächsten fördern. Somit können strategische Präferenzen beim Auswählen eines Kontexts unter verschiedenen Kontexten für das Darstellen berücksichtigt werden, für die demnächst ausreichend Bandbreite zur Verfügung stehen. Werden mehrere Präferenzwerte angegeben, können diese in eine Reihenfolge gebracht werden, sodass bestimmte Präferenzwerte mehr Gewicht erhalten als andere.
-
Es sei darauf hingewiesen, dass gemäß verschiedener Aspekte von Ausführungsformen dieser Erfindung die verfügbare Bandbreite 704 in einigen Ausführungsformen durch Attribute eines Benutzerkontos geändert werden kann. Zu diesen Kontoattributen können Standard- oder VIP-Status, kostenloses oder kostenpflichtiges Konto oder andere ausgewählte Aspekte gehören, die von einem Fachmann ausgewählt werden, um die für einen bestimmten Benutzer verfügbare Bandbreite zu erhöhen oder zu verringern.
-
Sobald ein geeigneter Kontext 802 (z.B. ein Kontext, für den demnächst ausreichend Bandbreite zur Verfügung steht, um Schwellenwerte für eine annehmbare Leistung zu erfüllen, und der die Erwägungen zum angegebenen Präferenzwert erfüllt) ausgewählt ist, bereitet der Servercomputer bei Block 212 über das VRCGM 118 den Inhalt für den ausgewählten Kontext vor und sendet den Inhalt für das interaktive Darstellen an die VRID 112.
-
Mit weiterer Bezugnahme auf 3 werden Aspekte eines Verfahrens im Einzelnen beschrieben, das in dem vorstehend beschriebenen System 100 zum vorausschauenden Auswählen von Virtual-Reality-Inhalten verwendet werden kann, das Bedingungen für eine demnächst verfügbare Bandbreite gemäß Aspekten der Erfindung proaktiv anpasst. Gemäß Aspekten dieser Ausführungsform befindet sich ein Benutzer, der eine VRID 112 steuert, an einem Referenzort 902 (z.B. Haus, Geschäftsgebäude, Flughafen usw.) und möchte eine virtuelle Einkaufstour durchführen, während er an einen zweiten Ort reist. Bei Block 302 empfängt der Servercomputer 102 die VRID-Positionsmetadaten 114 zu einem Referenzzeitpunkt 706 (der von der Systemuhr erzeugt wird) für die VR-Interaktionseinheit (VRID), die angeben, dass sich die VRID derzeit an einem Referenzort 902 befindet und zu einem zweiten, chronologisch späteren Zeitpunkt 708 an einem zweiten Ort 904 befinden wird. Bei Block 304 empfängt der Servercomputer 102 die Bandbreiten-Metadaten 110 (in Tabelle 700 von 7 dargestellt) für den zweiten Ort 904, die die Werte 704 der verfügbaren Bandbreite für den zweiten Ort enthalten (bei dem es sich gemäß Aspekten dieser Ausführungsform um Ort Nr. 2 handelt), die auf einer Zeitskala indexiert sind (z.B. die repräsentativen Referenzzeitpositionen 706, 708, 710, 712), die der von der Systemuhr 106 verwendeten Zeitskala entspricht. Bei Block 306 empfängt der Servercomputer Informationen über die Anforderungen an die VR-Kontextinhalte, die Schwellenwerte der verfügbaren Bandbreite enthalten, um eine annehmbare Leistung für eine Gruppe von VR-Inhaltskontexten zu erzielen. Bei Block 308 empfängt der Servercomputer 102 zu einem von der Systemuhr erzeugten Referenzzeitpunkt 706 eine Anforderung zum Bereitstellen von VR-Inhalten zu einem zweiten Zeitpunkt. Bei Block 310 wählt der Servercomputer 102 unter Verwendung des VRCSM 116 vor dem zweiten Zeitpunkt und unter Berücksichtigung der vorstehend beschriebenen Präferenzwerte des VR-Inhaltskontexts einen VR-Inhaltskontext 802 aus, der einen Schwellenwert der für eine annehmbare Leistung 804 verfügbaren Bandbreite aufweist, der unter dem Wert der verfügbaren Bandbreite an dem zweiten Ort 904 zu dem zweiten Zeitpunkt 708 liegt. Bei Block 312 bereitet der Servercomputer 102 über das VRCGM 118 Inhalte für den ausgewählten Kontext 804 vor und sendet diese für das interaktive Darstellen an die VRID 112.
-
Mit weiterer Bezugnahme auf 4 werden Aspekte eines Verfahrens im Einzelnen beschrieben, das in dem vorstehend beschriebenen System 100 zum vorausschauenden Auswählen von Virtual-Reality-Inhalten verwendet werden kann, das Bedingungen für eine demnächst verfügbare Bandbreite gemäß Aspekten der Erfindung proaktiv anpasst. Gemäß Aspekten dieser Ausführungsform befindet sich ein reisender Benutzer, der eine VRID 112 steuert, zu einem Referenzzeitpunkt 706 an einem Referenzort 902 (z.B. Haus, Geschäftsgebäude, Flughafen usw.), zu einem zweiten Zeitpunkt 708 an einem zweiten Ort 904 und zu einem dritten Zeitpunkt 710 an einem dritten Ort 906. Gemäß anderen Aspekten dieser Ausführungsform erkennt und korrigiert der Servercomputer eine wie nachstehend genauer beschriebene Abweichungsbedingung der Bandbreite. Bei Block 402 empfängt der Servercomputer 102 zu einem Referenzzeitpunkt 702 Positionsmetadaten für die VRID 112, die angeben, dass sich die VRID derzeit an einem Referenzort 902 befindet und sich zu einem zweiten Zeitpunkt 708 an einem zweiten Ort 904 und zu einem dritten Zeitpunkt 710 an einem dritten Ort 906 befinden wird. Bei Block 404 empfängt der Servercomputer 102 Bandbreiten-Metadaten für den zweiten und dritten Ort 904, 906, die Werte 704 der verfügbaren Bandbreite enthalten, die auf der von der Systemuhr 106 verwendeten Zeitskala indexiert sind. Bei Block 406 empfängt der Servercomputer 102 Informationen über die Anforderungen an die VR-Kontextinhalte, die Schwellenwerte 804 der verfügbaren Bandbreite enthalten, um für eine Mehrzahl von VR-Inhaltskontexten 802 eine annehmbare Leistung zu erzielen. Der Servercomputer 102 empfängt zu einem von der Systemuhr 106 erzeugten Referenzzeitpunkt 706 eine Anforderung zum Bereitstellen von VR-Inhalten zu einem zweiten Zeitpunkt 708. Gemäß Aspekten dieser Ausführungsform liegt der zweite Zeitpunkt 708 chronologisch nach dem Referenzzeitpunkt 706, und der dritte Zeitpunkt 710 liegt chronologisch nach dem zweiten Zeitpunkt. Der Servercomputer 102 wählt über das VRCSM 116 proaktiv geeignete Kontexte für den nächsten Standort 904, 906 zu den zugehörigen nächsten Zeitpunkten 708, 710 aus. Bei Block 410 wählt der Servercomputer 102 vor dem zweiten Zeitpunkt 708 und unter Berücksichtigung des maßgeblichen Präferenzwerts des VR-Inhaltskontexts (wie vorstehend beschrieben) einen VR-Inhaltskontext 802 aus, der einen Schwellenwert 804 der für eine annehmbare Leistung verfügbaren Bandbreite aufweist, der unter dem Wert 704 der verfügbaren Bandbreite an dem zweiten Ort 904 zu dem zweiten Zeitpunkt liegt. Bei Block 412 stellt der Servercomputer 102 vor dem Eintreten des dritten Zeitpunkts 710 auf der Grundlage des Werts 704 der verfügbaren Bandbreite an dem dritten Ort 906 zu dem dritten Zeitpunkt 710 proaktiv eine Abweichungsbedingung fest. Wie hier verwendet, bezeichnet der Begriff „Abweichungsbedingung“ eine Situation, in der der Bandbreiten-Schwellenwert 804 für eine annehmbare Leistung über der verfügbaren Bandbreite 704 liegt, damit der ausgewählte Kontext an einem Ort zufriedenstellend dargestellt werden kann, an dem sich die VRID 12 zu einem nächsten Zeitpunkt befindet wird. Um eine zufriedenstellende VR-Sitzung zu gewährleisten, führt der Servercomputer 102 bei Block 414 vor dem Eintreten des dritten Zeitpunkts 710 eine Korrekturmaßnahme durch. Gemäß einem Aspekt der Erfindung kann die Korrekturmaßnahme Auswählen eines zweiten VR-Inhaltskontexts umfassen, der einen Schwellenwert der für eine annehmbare Leistung verfügbaren Bandbreite aufweist, der unter dem Wert der verfügbaren Bandbreite an dem dritten Ort 906 zu dem dritten Zeitpunkt 710 liegt. Gemäß einem anderen Aspekt der Erfindung kann die Korrekturmaßnahme Vorschlagen umfassen, dass der Benutzer der VR-Interaktionseinheit an dem dritten Ort 906 zu einem vierten Zeitpunkt 712 ankommt, der zumindest teilweise so ausgewählt wird, dass der Schwellenwert 804 der für eine annehmbare Leistung verfügbaren Bandbreite für den ausgewählten VR-Inhaltskontext 802 unter der verfügbaren
Bandbreite 704 an dem dritten Ort 906 zu dem vierten Zeitpunkt 712 liegt (z.B. zu einem späteren Zeitpunkt als der dritte Zeitpunkt 710). Gemäß einem anderen Aspekt der Erfindung kann die Korrekturmaßnahme Anweisen eines autonomen Positionsmechanismus (nicht dargestellt) für die VRID 12 umfassen, an dem dritten Ort 906 zu einem vierten Zeitpunkt 712 anzukommen, der zumindest teilweise so ausgewählt wird, dass der Schwellenwert 804 der für eine annehmbare Leistung verfügbaren Bandbreite für den ausgewählten VR-Inhaltskontext 802 unter der verfügbaren Bandbreite 704 an dem dritten Ort 906 zu dem vierten Zeitpunkt 712 liegt. Ein Fachmann kann andere Korrekturmaßnahmen auswählen. Sobald der Servercomputer 102 die festgestellte Abweichungsbedingung proaktiv beseitigt hat, bereitet der Servercomputer 102 bei
Block 416 über das VRCGM 118 Inhalte für die ausgewählten Kontexte 802 vor und sendet diese zu den zugehörigen festgelegten Zeitpunkten 708, 710, 712 für das interaktive Darstellen an die VRID 112. Es sei darauf hingewiesen, dass Abweichungsbedingungen aus verschiedenen Gründen auftreten können, z.B. wenn ein Benutzer mehr Zeit als erwartet 806 für einen bestimmten Kontext 802 benötigt oder die Wiederholung des Darstellens eines zuvor dargestellten Kontexts anfordert.
-
Mit weiterer Bezugnahme auf 5 werden Aspekte eines Verfahrens im Einzelnen beschrieben, das in dem vorstehend beschriebenen System 100 zum vorausschauenden Auswählen von Virtual-Reality-Inhalten verwendet werden kann, das Bedingungen für eine demnächst verfügbare Bandbreite gemäß Aspekten der Erfindung proaktiv anpasst. Gemäß Aspekten dieser Ausführungsform befindet sich ein reisender Benutzer, der eine VRID 112 steuert, zu einem Referenzzeitpunkt 706 an einem Ort (z.B. Haus, Geschäftsgebäude, Flughafen usw.), zu einem zweiten Zeitpunkt 708 an einem zweiten Ort 904, zu einem dritten Zeitpunkt 708 an einem dritten Ort 906 und zu einem dritten Zeitpunkt 710 an einem dritten Ort 906. Dies kann der Fall sein, wenn ein Benutzer nach einem festgelegten Fahrplan auf einer festgelegten Strecke unterwegs ist (z.B. mit einem fahrplanmäßigen öffentlichen Verkehrsmittel, fahrplanmäßigem Zug, bei einer Reise auf einer bekannten Strecke wie einer Straße oder einem schiffbaren Wasserweg mit einer festgelegten Geschwindigkeit). Gemäß Aspekten dieser Ausführungsform vermeidet der Servercomputer 102 proaktiv Abweichungsbedingungen, wenn sich die VRID 112 zu den bekannten Zeitpunkten 706, 708, 710 an verschiedenen Orten 902, 904, 906 bewegt. Bei Block 502 empfängt der Servercomputer 102 Positionsmetadaten für die VRID 112, die angeben, dass sich die VRID zu einem zweiten Zeitpunkt 708 an einem zweiten Ort 904 und zu einem dritten Zeitpunkt 710 an einem dritten Ort 906 befinden wird. Bei Block 504 empfängt der Servercomputer 102 Bandbreiten-Metadaten für einen Referenzort 902, den zweiten Ort 904 und den dritten Ort 906, die die Werte der verfügbaren Bandbreite für jeden Ort enthalten, der auf der von der Systemuhr 106 verwendeten Zeitskala indexiert ist. Bei Block 506 empfängt der Servercomputer 102 Informationen über die Anforderungen an die VR-Kontextinhalte, die die Schwellenwerte 804 der verfügbaren Bandbreite enthalten, um für mehrere VR-Inhaltskontexte 802 eine annehmbare Leistung zu erreichen. Bei Block 508 empfängt der Servercomputer 102 zu einem von der Systemuhr erzeugten Referenzzeitpunkt 706 eine Anforderung zum Bereitstellen von VR-Inhalten zu einem zweiten Zeitpunkt 708. Gemäß Aspekten liegt der zweite Zeitpunkt 708 chronologisch nach dem Referenzzeitpunkt 706. Um ein zufriedenstellendes Darstellen von Inhalten während einer VR-Nutzungssitzung (z.B. während einer Reise) zu gewährleisten, wählt der Servercomputer 102 über das VRCSM 116 proaktiv Inhalte aus, die mit der verfügbaren Bandbreite für die bekannten Orte 902, 904, 906 zu den bekannten bevorstehenden Zeitpunkten 706, 708, 710 übereinstimmen. Es sei festgestellt, dass der Servercomputer 102 wie vorstehend beschrieben beim Auswählen von darzustellendem Inhalt auch Präferenzwerte des Kontexts berücksichtigen kann. Bei Block 510 wählt der Servercomputer 102 vor dem zweiten Zeitpunkt 708 und unter Berücksichtigung maßgeblicher Präferenzwerte des VR-Inhaltskontexts einen VR-Inhaltskontext 802 aus, der einen Schwellenwert 804 der für eine annehmbare Leistung verfügbaren Bandbreite aufweist, der unter dem Wert der verfügbaren Bandbreite an dem zweiten Ort 904 zu dem zweiten Zeitpunkt liegt. Bei Block 512 wählt der Servercomputer 102 vor dem dritten Zeitpunkt 710 und unter Berücksichtigung maßgeblicher Präferenzwerte des VR-Inhaltskontexts einen VR-Inhaltskontext 802 aus, der einen Schwellenwert 804 der für eine annehmbare Leistung verfügbaren Bandbreite aufweist, der unter dem Wert 704 der verfügbaren Bandbreite an dem dritten Ort 906 zu dem dritten Zeitpunkt 710 liegt. Sobald der Servercomputer 102 proaktiv geeignete Kontexte 802 ausgewählt hat, bereitet der Servercomputer 102 bei Block 514 über das VRCGM 118 Inhalte für die ausgewählten Kontexte 802 vor und sendet diese zu den zugehörigen festgelegten Zeitpunkten 708, 710 für das interaktive Darstellen an die VRID 112.
-
Mit weiterer Bezugnahme auf 6 werden Aspekte eines Verfahrens im Einzelnen beschrieben, das in dem vorstehend beschriebenen System 100 zum vorausschauenden Auswählen von Virtual-Reality-Inhalten verwendet werden kann, das Bedingungen für eine demnächst verfügbare Bandbreite gemäß Aspekten der Erfindung proaktiv anpasst. Gemäß Aspekten dieser Ausführungsform befindet sich ein Benutzer, der eine VRID 112 steuert, zu einem Referenzzeitpunkt 706, während eines zweiten Zeitpunkts 708, während eines dritten Zeitpunkts 710 und zumindest bis zu einem vierten Zeitpunkt an einem Referenzort 902 (z.B. Haus, Geschäftsgebäude, Flughafen usw.). Gemäß anderen Aspekten dieser Ausführungsform erkennt und korrigiert der Servercomputer eine wie nachstehend genauer beschriebene Abweichungsbedingung der Bandbreite zwischen dem dritten und vierten Zeitpunkt. Bei Block 602 empfängt der Servercomputer 102 Positionsmetadaten für die VRID 112, die angeben, dass sich die VRID zu einem dritten Zeitpunkt 710 und einem vierten Zeitpunkt 712 an dem Referenzort 902 befinden wird (zusätzlich zu einem Referenzzeitpunkt 706 und einem zweiten Zeitpunkt 708). Bei Block 606 empfängt der Servercomputer 102 Informationen über die Anforderungen an die VR-Kontextinhalte, die Schwellenwerte 804 der verfügbaren Bandbreite enthalten, um für eine Gruppe von VR-Inhaltskontexten 802 eine annehmbare Leistung zu erzielen. Bei Block 608 empfängt der Servercomputer 102 zu einem von der Systemuhr 106 erzeugten Referenzzeitpunkt 706 eine Anforderung zum Bereitstellen von VR-Inhalten zu einem zweiten Zeitpunkt 708. Gemäß Aspekten dieser Ausführungsform liegt der zweite Zeitpunkt 708 chronologisch nach dem Referenzzeitpunkt 706, der dritte Zeitpunkt 710 liegt chronologisch nach dem zweiten Zeitpunkt, und der vierte Zeitpunkt 712 liegt chronologisch nach dem dritten Zeitpunkt. Um ein zufriedenstellendes Darstellen von Inhalten während einer VR-Nutzungssitzung (z.B. während eines längeren Aufenthalts an einem Referenzort) zu gewährleisten, wählt der Servercomputer 102 über das VRCSM 116 proaktiv Inhalte aus, die mit der verfügbaren Bandbreite für den Referenzort 902 zu den bekannten nächsten Zeitpunkten 706, 708, 710, 712 übereinstimmen. Es sei festgestellt, dass der Servercomputer 102 wie vorstehend beschrieben beim Auswählen von darzustellenden Inhalten auch Präferenzwerte des Kontexts berücksichtigen kann. Bei Block 608 wählt der Servercomputer 102 unter Berücksichtigung maßgeblicher Präferenzwerte des VR-Inhaltskontexts einen VR-Inhaltskontext aus, der einen Schwellenwert 804 der für eine annehmbare Leistung verfügbaren Bandbreite aufweist, der unter dem Wert 704 der verfügbaren Bandbreite zu dem zweiten Zeitpunkt 708 liegt. Bei Block 610 stellt der Servercomputer 102 vor dem Eintreten des dritten Zeitpunkts 710 auf der Grundlage des Werts 704 der verfügbaren Bandbreite am Referenzort 902 zum dritten Zeitpunkt 710 eine Abweichungsbedingung (wie vorstehend beschrieben) fest. Bei Block 612 stellt der Servercomputer 102 vor dem Eintreten des vierten Zeitpunkts 712 auf der Grundlage des Werts 704 der verfügbaren Bandbreite am Referenzort 902 zum vierten Zeitpunkt eine Wiederübereinstimmungsbedingung fest. Wie hier verwendet, bezeichnet der Begriff „Abweichungsbedingung“ eine Situation, in der die verfügbare Bandbreite 704 zunimmt und der Bandbreiten-Schwellenwert 804 für eine annehmbare Leistung wie zuvor unter der verfügbaren Bandbreite 704 liegt. Auf diese Weise kann der ausgewählte Kontext 802 an einem Ort, an dem sich die VRID 112 zu einem späteren Zeitpunkt befinden wird, zufriedenstellend dargestellt werden. Bei Block 614 wechselt der Servercomputer 102 vom Darstellen des ursprünglich ausgewählten 802 zwischen dem dritten Zeitpunkt 710 bis zum Eintreten des vierten Zeitpunkts 712 zu einem VR-Ersatzinhaltskontext (z.B. einer gesponserten Nachricht), der einen Schwellenwert der für eine annehmbare Leistung verfügbaren Bandbreite aufweist, der unter dem Wert der verfügbaren Bandbreite an dem Referenzort 902 zu dem dritten Zeitpunkt 710 liegt. Bei Eintreten des vierten Zeitpunkts 712 wählt der Servercomputer 102 einen anderen Kontext für das Darstellen aus (möglicherweise kehrt er zurück zu dem ursprünglich ausgewählten Kontext). Sobald der Servercomputer 102 bei der festgestellten Abweichungsbedingung zum dritten Zeitpunkt 710 und der Wiederübereinstimmungsbedingung zum vierten Zeitpunkt 712 proaktiv Inhalte ausgewählt hat, bereitet der Servercomputer 102 über das VRCGM 118 bei Block 616 Inhalte für die ausgewählten Kontexte 802 vor und sendet diese zu den zugehörigen festgelegten Zeitpunkten 708, 710, 712 für das interaktive Darstellen an die VRID 112.
-
Tabelle 800 zeigt ferner, dass beim Einkaufen in verschiedenen Kontexten in der Regel unterschiedliche relative Zeiträume 806 verwendet werden können. Es hat sich gezeigt, dass beispielsweise der Kauf von Obst, bei dem der Reifegrad beurteilt werden muss, 5 Zeiteinheiten pro Sitzung erfordert, während der Kauf von eher austauschbaren Produkten (z.B. Büromaterial) nur 3 Zeiteinheiten pro Sitzung erfordert. Dies wird vom Servercomputer 102 genutzt, um bei Fahrten durch mehrere Orte oder über mehrere Zeiträume hinweg voraussichtlich geeignete Fahrpläne zu ermitteln, sodass für Kontexte, für die in der Regel viel Zeit benötigt wird, die notwendige Bandbreite zur Verfügung steht. Diese Zeit, die voraussichtlich für einen bestimmten Kontext aufgewendet wird, kann als einer der Präferenzwerte betrachtet werden, die in der vorstehend beschriebenen Weise beim Auswählen von infrage kommenden Kontexten verwendet werden.
-
Mit Blick auf die Ablaufpläne und die Blockschaubilder veranschaulichen der Ablaufplan und die Blockschaubilder in den Figuren die Architektur, die Funktionalität und den Betrieb möglicher Implementationen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Mit Bezug auf 12 enthält ein System oder eine Computerumgebung 1000 eine Computerdarstellung 1010, die in Form einer allgemeinen Datenverarbeitungseinheit dargestellt ist. Das Verfahren 100 kann beispielsweise in einem Programm 1060, einschließlich Programmanweisungen, ausgeführt sein, in einer durch einen Computer lesbaren Speichereinheit oder einem durch einen Computer lesbaren Speichermedium ausgeführt sein, die/das allgemein zum Beispiel als Speicher 1030 und insbesondere als durch ein Computer lesbares Speichermedium 1050 bezeichnet wird. Dieser Speicher und/oder dieses durch einen Computer lesbare Speichermedium enthält einen nichtflüchtigen Arbeitsspeicher oder einen nichtflüchtigen Speicher. Der Speicher 1030 kann zum Beispiel ein Speichermedium 1034 wie einen RAM (Direktzugriffsspeicher) oder einen ROM (Nur-Lese-Speicher) sowie einen Cache-Speicher 1038 umfassen. Das Programm 1060 kann von dem Prozessor 1020 auf dem Computersystem 1010 ausgeführt werden (um Programmschritte, Code oder Programmcode auszuführen). Zusätzlicher Datenspeicher kann auch in Form einer Datenbank 1110 ausgeführt sein, die die Daten 1114 enthält. Bei dem Computersystem 1010 und dem Programm 1060 handelt es sich um allgemeine Darstellungen eines Computers und eines Programms, die lokal bei einem Benutzer vorhanden sein oder als ein entfernt angeordneter Dienst (zum Beispiel als ein auf einer Cloud beruhender Dienst) bereitgestellt werden können, und die in weiteren Beispielen unter Verwendung einer Website bereitgestellt werden können, auf die unter Verwendung des Datenübertragungsnetzwerks 1200 zugegriffen werden kann (z.B. die mit einem Netzwerk, dem Internet oder Cloud-Diensten interagiert). Es versteht sich, dass das Computersystem 1010 hier auch allgemein eine Computereinheit oder einen in einer Einheit enthaltenen Computer wie einen Laptop- oder Desktop-Computer usw. oder einen oder mehrere Server, allein oder als Teil eines Rechenzentrums, darstellt. Das Computersystem kann einen Netzwerkadapter/eine Schnittstelle 1026 und Eingabe/Ausgabe-Schnittstelle(n) (E/A-Schnittstellen) 1022 enthalten. Die E/A-Schnittstelle 1022 ermöglicht die Ein- und Ausgabe von Daten mit einer externen Einheit 1074, die mit dem Computersystem verbunden sein kann. Der Netzwerkadapter/die Schnittstelle 1026 kann die Datenübertragungen zwischen dem Computersystem und einem Netzwerk bereitstellen, das allgemein als das Datenübertragungsnetzwerk 1200 dargestellt ist.
-
Der Computer 1010 kann im allgemeinen Kontext von durch ein Computersystem ausführbaren Anweisungen beschrieben werden, z.B. als Programmmodule, die von einem Computersystem ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. enthalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen implementieren. Die Verfahrensschnitte und Systemkomponenten sowie Techniken können in Modulen des Programms 1060 ausgeführt sein, um die Aufgaben der einzelnen Schritte des Verfahrens und des Systems durchzuführen. Die Module sind in der Figur allgemein als Programmmodule 1064 dargestellt. Das Programm 1060 und die Programmmodule 1064 können bestimmte Schritte, Routinen, Unterroutinen, Anweisungen oder Code des Programms ausführen.
-
Das Verfahren der vorliegenden Offenbarung kann lokal auf einer Einheit wie einer mobilen Einheit ausgeführt werden, oder es kann in einem Dienst ausgeführt werden, z.B. auf dem Server 1100, der entfernt angeordnet sein kann und auf den unter Verwendung des Datenübertragungsnetzwerks 1200 zugegriffen werden kann. Das Programm oder die ausführbaren Anweisungen können auch von einem Anbieter als Dienst angeboten werden. Der Computer 1010 kann in einer verteilten Cloud-Computing-Umgebung eingesetzt werden, wo die Aufgaben von entfernt angeordneten Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk 1200 verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl auf lokalen als auch auf entfernt angeordneten Computersystem-Speichermedien befinden, darunter Speichereinheiten mit Arbeitsspeichern.
-
Der Computer 1010 kann eine Vielfalt von durch einen Computer lesbaren Medien enthalten. Bei diesen Medien kann es sich um beliebige verfügbare Medien handeln, auf die der Computer 1010 (z.B. Computersystem oder Server) zugreifen kann und die sowohl flüchtige als auch nichtflüchtige Medien sowie wechselbare und nichtwechselbare Medien umfassen können. Der Computerspeicher 1030 kann zusätzliche vom Computer lesbare Medien in Form von flüchtigen Speichern, z.B. den Direktzugriffsspeicher (RAM) 1034 und/oder den Cache-Speicher 1038, enthalten. Der Computer 1010 kann weiterhin andere wechselbare/nichtwechselbare, flüchtige/nichtflüchtige Computerspeichermedien enthalten, in einem Beispiel das tragbare durch einen Computer lesbare Speichermedium 1072. In einer Ausführungsform kann das durch einen Computer lesbare Speichermedium 1050 zum Lesen und Beschreiben eines nichtwechselbaren, nichtflüchtigen magnetischen Mediums bereitgestellt werden. Das durch einen Computer lesbare Speichermedium 1050 kann zum Beispiel als Festplatte ausgeführt sein. Zusätzlicher Speicher und Datenspeicher können zum Beispiel als Speichersystem 1110 (z.B. eine Datenbank) zum Speichern von Daten 1114 und zum Austauschen von Daten mit der Verarbeitungseinheit 1020 bereitgestellt werden. Die Datenbank kann auf einem
Server 1100 gespeichert oder Teil dieses Servers sein. Obwohl nicht dargestellt, können ein Laufwerk für magnetische Speicherplatten zum Auslesen und Beschreiben einer wechselbaren, nichtflüchtigen magnetischen Speicherplatte (z.B. „Diskette“) und ein Laufwerk für optische Speicherplatten zum Auslesen oder Beschreiben einer wechselbaren, nichtflüchtigen optischen Speicherplatte wie einer CD-ROM, DVD-ROM und andere optische Medien bereitgestellt werden. In solchen Fällen kann jedes über eine oder mehrere Datenmedien-Schnittstellen mit dem Bus 1014 verbunden sein. Wie unten weiter dargestellt und beschrieben, kann der Speicher 1030 mindestens ein Programmprodukt enthalten, das eines oder mehrere Programmmodule enthalten kann, die so konfiguriert sind, dass sie die Funktionen der Ausführungsformen der Erfindung ausführen.
-
Das/die in der vorliegenden Offenbarung beschriebene(n) Verfahren kann/können zum Beispiel in einem oder mehreren Computerprogrammen ausgeführt sein, die allgemein als Programm 1060 bezeichnet werden und im Speicher 1030 des durch einen Computer lesbaren Speichermediums 1050 gespeichert werden können. Das Programm 1060 kann die Programmmodule 1064 enthalten. Die Programmmodule 1064 können im Allgemeinen wie hier beschrieben die Funktionen und/oder Methodiken von Ausführungsformen der Erfindung ausführen. Das eine oder die mehreren Programme 1060 sind im Speicher 1030 gespeichert und können von der Verarbeitungseinheit 1020 ausgeführt werden. Der Speicher 1030 kann zum Beispiel ein Betriebssystem 1052, ein oder mehrere Anwendungsprogramme 1054, andere Programmmodule und Programmdaten auf dem durch einen Computer lesbaren Speichermedium 1050 speichern. Es versteht sich, dass das Programm 1060, das Betriebssystem 1052 und das/die Anwendungsprogramm(e) 1054, die auf dem durch einen Computer lesbaren Speichermedium 1050 gespeichert sind, in ähnlicher Weise von der Verarbeitungseinheit 1020 ausgeführt werden können. Es versteht sich des Weiteren, dass die Anwendung 1054 und das/die Programm(e) 1060 allgemein dargestellt sind und eine oder mehrere Anwendungen und ein oder mehrere Programme, die in der vorliegenden Erfindung beschrieben werden, ganz umfassen oder Teil davon sein können, oder umgekehrt, das heißt, dass die Anwendung 1054 und das Programm 1060 eine oder mehrere Anwendungen oder ein oder mehrere Programme, die in der vorliegenden Offenbarung beschrieben werden, ganz umfassen oder Teil davon sein können. Es versteht sich weiterhin, dass das Steuersystem 70 (in 10 dargestellt) das gesamte Computersystem 1010 und seine Komponenten oder einen Teil davon enthalten kann und/oder dass das Steuersystem mit dem gesamten Computersystem 1010 und seinen Komponenten oder einem Teil davon als entfernt angeordnetes Computersystem Daten austauschen kann, um die in der vorliegenden Offenbarung beschriebenen Funktionen umzusetzen. Es versteht sich weiterhin, dass die in 1 dargestellte(n) eine oder mehreren Datenübertragungseinheiten 110 in ähnlicher Weise das gesamte Computersystem 1010 und seine Komponenten oder einen Teil davon umfassen kann/können, und/oder dass die Datenübertragungseinheiten mit dem gesamten Computersystem 1010 und seinen Komponenten oder einem Teil als entfernt angeordnetes Computersystem Daten austauschen können, um die in der vorliegenden Offenbarung beschriebenen Funktionen umzusetzen.
-
Ein oder mehrere Programme können in einem oder mehreren durch einen Computer lesbaren Speichermedien gespeichert werden, sodass ein Programm in einem durch einen Computer lesbaren Speichermedium ausgeführt und/oder codiert ist. In einem Beispiel kann das gespeicherte Programm Programmanweisungen zum Ausführen durch einen Prozessor oder ein Computersystem mit einem Prozessor enthalten, um ein Verfahren durchzuführen oder das Computersystem zu veranlassen, eine oder mehrere Funktionen durchzuführen.
-
Der Computer 1010 kann auch mit einer oder mehreren externen Einheiten 1074 wie einer Tastatur, einer Zeigeeinheit, einer Anzeige 1080 usw.; mit einer oder mehreren Einheiten, die einen Benutzer in die Lage versetzen, mit dem Computer 1010 zu interagieren; und/oder beliebigen Einheiten (z.B. Netzwerkkarte, Modem usw.) Daten austauschen, die den Computer 1010 in die Lage versetzen, mit einer oder mehreren Datenverarbeitungseinheiten Daten auszutauschen. Eine solche Datenübertragung kann über die Eingabe/Ausgabe-Schnittstellen (E/A-Schnittstellen) 1022 erfolgen. Überdies kann der Computer 1010 mit einem oder mehreren Netzwerken 1200 wie beispielsweise einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetzwerk (WAN) und/oder einem öffentlichen Netzwerk (z.B. das Internet) über den Netzwerkadapter 1026 Daten austauschen. Wie dargestellt, tauscht der Netzwerkadapter 1026 über den Bus 1014 mit den anderen Komponenten des Computers 1010 Daten aus. Es versteht sich, dass sonstige Hardware- und/oder Software-Komponenten in Verbindung mit dem Computer 1010 verwendet werden können, auch wenn sie nicht dargestellt sind. Zu Beispielen zählen, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber 1024, redundante Verarbeitungseinheiten, Anordnungen externer Festplattenlaufwerke, RAID-Systeme, Bandlaufwerke und Speichersysteme für die Datenarchivierung usw.
-
Es versteht sich, dass ein Computer oder ein Programm, das auf dem Computer 1010 ausgeführt wird, über ein oder mehrere Datenübertragungsnetzwerke, die als Datenübertragungsnetzwerk 1200 ausgeführt sind, mit einem Server, der als Server 1100 ausgeführt ist, Daten austauschen kann. Das Datenübertragungsnetzwerk 1200 kann Übertragungsmedien und Netzwerkverbindungen enthalten, die zum Beispiel drahtlose und drahtgebundene Verbindungen oder Lichtwellenleiter sowie Router, Firewalls, Switches und Gateway-Computer umfassen können. Das Datenübertragungsnetzwerk kann Verbindungen wie beispielsweise drahtgebundene, drahtlose Datenübertragungsverbindungen oder Lichtwellenleiter enthalten. Ein Datenverarbeitungsnetzwerk kann eine weltweite Sammlung von Netzwerken und Gateways wie das Internet darstellen, die verschiedene Protokolle zum Austauschen von Daten untereinander verwenden, z.B. Lightweight Directory Access Protocol (LDAP), Transport Control Protocol/Internet Protocol (TCP/IP), Hypertext Transport Protocol (HTTP), Wireless Application Protocol (WAP) usw. Ein Netzwerk kann auch eine Reihe verschiedener Arten von Netzwerken umfassen, z.B. ein Intranet, ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN).
-
In einem Beispiel kann ein Computer ein Netzwerk verwenden, das unter Verwendung des Internets auf eine Website im Web (World Wide Web) zugreifen kann. In einer Ausführungsform kann ein Computer 1010, einschließlich einer mobilen Einheit, ein Datenübertragungssystem oder -netzwerk 1200 enthalten, das z.B. das Internet oder ein öffentliches Telefonnetz (PSTN) oder ein Mobilfunknetzwerk umfassen kann. Das PSTN kann Telefonleitungen, Lichtwellenleiter, Übertragungsverbindungen, Mobilfunknetzwerke und Datenübertragungssatelliten umfassen. Das Internet kann zahlreiche Such- und Textnachrichtentechniken ermöglichen, z.B. das Verwenden eines Mobiltelefons oder Laptop-Computers, um Anfragen an Suchmaschinen über Textnachrichten (SMS), Multimedia Messaging Service (MMS) (verwandt mit SMS), eMail oder einen Webbrowser zu senden. Die Suchmaschine kann Suchergebnisse abrufen, das heißt, Links zu Websites, Dokumenten oder anderen herunterladbaren Daten, die der Abfrage entsprechen, und dem Benutzer die Suchergebnisse auf ähnliche Weise über die Einheit, beispielsweise als Webseite mit Suchergebnissen, bereitstellen.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jedem möglichen technischen Detaillierungsgrad der Integration handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. einen Lichtwellenleiter durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs/Verarbeitungs-Einheit weiter.
-
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o. ä. sowie prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, einen Herstellungsartikel aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
-
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit als ein Schritt ausgeführt, gleichzeitig ausgeführt, im Wesentlich gleichzeitig ausgeführt, ganz oder teilweise zeitlich überlappend ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Die vorliegende Offenbarung enthält zwar eine ausführliche Beschreibung von Cloud-Computing, es versteht sich jedoch, dass die Umsetzung der hierin dargelegten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit beliebigen Arten von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
-
Cloud-Computing ist ein Modell zum Liefern eines Dienstes, der einen problemlosen, bedarfsorientierten Netzwerkzugriff auf einen gemeinsamen Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Speicher, Anwendungen, virtuelle Maschinen und Dienste) ermöglicht, die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle enthalten.
-
Bei den Eigenschaften handelt es sich um die Folgenden:
-
On-Demand Self-Service (bedarfsorientierte Selbstbedienung): Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher bereitstellen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
-
Broad Network Access (breiter Netzzugriff): Über ein Netzwerk sind Funktionen verfügbar, auf die durch Standardmechanismen zugegriffen wird, die die Verwendung durch heterogene schlanke oder leistungsintensive Client-Plattformen unterstützen (z.B. Mobiltelefone, Laptops und PDAs).
-
Ressource Pooling (Ressourcen-Bündelung): Die Datenverarbeitungsressourcen des Anbieters werden gebündelt, um mehreren Nutzern unter Verwendung eines Mehrmietermodells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
-
Rapid Elasticity (schnelle Anpassungsfähigkeit): Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
-
Measured Service (messbarer Dienst): Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Inanspruchnahme von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz bereitgestellt wird.
-
Es gibt folgende Dienstmodelle:
-
Software as a Service (Saas) (Software als Dienst): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine schlanke Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende eMail) von verschiedenen Client-Einheiten aus zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Einstellungen der Anwendungskonfiguration.
-
Platform as a Service (Paas) (Plattform als Dienst): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Werkzeugen erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen der Hosting-Umgebung der Anwendung.
-
Infrastructure as a Service (laas) (Infrastruktur als Dienst): Die dem Nutzer bereitgestellte Funktion besteht darin, Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
-
Es gibt folgende Einsatzmodelle:
-
Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
-
Community Cloud (Benutzergemeinschafts-Cloud): Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Anliegen hat (z.B. Aufgabe, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder fremden Räumen befinden.
-
Public Cloud (öffentliche Cloud): Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Branchengruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.
-
Hybrid Cloud (hybride Cloud): Die Cloud-Infrastruktur besteht aus zwei oder mehr Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Entitäten bleiben, aber durch eine standardisierte oder herstellereigene Technologie miteinander verbunden sind, die eine Übertragbarkeit von Daten und Anwendungen ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
-
Eine Cloud-Computing-Umgebung ist dienstorientiert und schwerpunktmäßig auf Statusunabhängigkeit, geringe Kopplung, Modularität und semantische Interoperabilität ausgerichtet. Der Kern der Cloud-Computing ist eine Infrastruktur, die ein Netzwerk aus miteinander verbundenen Knoten enthält.
-
Mit Bezug nunmehr auf 11 ist eine veranschaulichende Cloud-Computing-Umgebung 2050 dargestellt. Wie gezeigt, enthält die Cloud-Computing-Umgebung 2050 einen oder mehrere Cloud-Computing-Knoten 2010, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der persönliche digitale Assistent (PDA) oder das Mobiltelefon 2054A, der Desktop-Computer 2054B, der Laptop-Computer 2054C und/oder das Kraftfahrzeug-Computersystem 2054N Daten austauschen können. Die Knoten 2010 können miteinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken wie private, benutzergemeinschaftliche, öffentliche oder hybride Clouds wie oben beschrieben oder in einer Kombination davon in Gruppen angeordnet sein (nicht dargestellt). Dies ermöglicht es der Cloud-Computing-Umgebung 2050, Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es versteht sich, dass die in 11 gezeigten Arten von Datenverarbeitungseinheiten 2054A bis N nur veranschaulichend sein sollen und die Datenverarbeitungsknoten 2010 und die Cloud-Computing-Umgebung 2050 mit jeder Art von computergestützter Einheit über jede Art von Netzwerk und/oder netzwerkadressierbarer Verbindung Daten austauschen kann (z.B. über einen Web-Browser).
-
Mit Bezug nunmehr auf 12 wird ein Satz funktionaler Abstraktionsschichten gezeigt, die von der Cloud-Computing-Umgebung 2050 (11) bereitgestellt wird. Es versteht sich im Voraus, dass die in 12 dargestellten Komponenten, Schichten und Funktionen nur veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
-
Die Hardware- und Software-Schicht 2060 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: die Großrechner 2061; die Server 2062 auf Grundlage der RISC-Architektur (RISC = Reduced Instruction Set Computer, Computer mit reduziertem Befehlssatz), die Server 2063; die Blade-Server 2064; die Speichereinheiten 2065; sowie die Netzwerke und Netzwerkkomponenten 2066. In einigen Ausführungsformen enthalten die Software-Komponenten die Netzwerk-Anwendungsserver-Software 2067 und die Datenbank-Software 2068.
-
Die Virtualisierungsschicht 2070 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Entitäten bereitgestellt werden können: virtuelle Server 2071; virtuelle Speicher 2072; virtuelle Netzwerke 2073; darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 2074; und virtuelle Clients 2075.
-
In einem Beispiel kann die Verwaltungsschicht 2080 die nachfolgend beschriebenen Funktionen bereitstellen. Die Ressourcenbereitstellung 2081 ermöglicht eine dynamische Bereitstellung von Datenverarbeitungsressourcen und anderen Ressourcen, die verwendet werden, um Aufgaben in der Cloud-Computing-Umgebung durchzuführen. Messen und Preisfindung 2082 stellen Kostenverfolgung beim Verwenden von Ressourcen in der Cloud-Computing-Umgebung sowie Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware umfassen. Die Sicherheitsfunktion stellt eine Identitätsprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 2083 stellt Nutzern und Systemadministratoren den Zugang zur Cloud-Computing-Umgebung bereit. Die Verwaltung der Dienstgüte 2084 stellt Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, sodass die erforderliche Dienstgüte erreicht wird. Die Planung und Erfüllung der Dienstgütevereinbarung (Service Level Agreement, SLA) 2085 stellt eine Vorabeinteilung und eine Beschaffung von Cloud-Computing-Ressourcen bereit, deren künftiger Bedarf auf der Grundlage einer Dienstgütevereinbarung vorausgesehen wird.
-
Die Arbeitslastschicht 2090 stellt Beispiele für Funktionalitäten bereit, für die die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 2091; Software-Entwicklung und Lebenszyklusverwaltung 2092; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 2093; Datenanalyseverarbeitung 2094; Transaktionsverarbeitung 2095; sowie das vorausschauende Auswählen von Virtual-Reality-Inhalten, bei dem Bedingungen der demnächst verfügbaren Bandbreite proaktiv angepasst werden 2096.
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zwecke der Veranschaulichung vorgestellt, sollen jedoch nicht erschöpfend oder auf die Ausführungsformen beschränkt sein. Ebenso sind Beispiele von Merkmalen oder Funktionen der hier beschriebenen Ausführungsformen der Offenbarung, unabhängig davon, ob sie in der Beschreibung einer bestimmten Ausführungsform verwendet oder als Beispiele aufgeführt werden, nicht dazu gedacht, die hier beschriebenen Ausführungsformen der Offenbarung einzuschränken oder die Offenbarung auf die hier beschriebenen Beispiele zu beschränken. Für Fachleute ist offensichtlich, dass viele Änderungen und Abwandlungen möglich sind, ohne vom Anwendungsbereich und Erfindungsgedanken der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber Technologien auf dem Markt bestmöglich zu erläutern oder es Fachleuten zu ermöglichen, die hierin beschriebenen Ausführungsformen zu verstehen.