-
Hintergrund
-
Eine physikalische Maschine, z. B. ein Computer oder eine andere Art eines elektronischen Gerätes, kann so konfiguriert werden, dass sie mehrere virtualisierte Umgebungen beinhaltet, die entsprechende unterschiedliche Gastbetriebssysteme ausführen können. Solche virtualisierten Umgebungen werden mitunter auch als virtuelle Maschinen bezeichnet. Das Vorhandensein mehrerer virtualisierter Umgebungen in einer physikalischen Maschine ermöglicht es, Anwendungen, die für verschiedene Betriebssysteme geschrieben wurden, in den unterschiedlichen virtualisierten Umgebungen auf derselben physikalischen Maschine auszuführen.
-
Kurzbeschreibung der Zeichnungen
-
Einige Ausführungsformen sind mit Bezug auf die folgenden Figuren beschrieben:
-
1A–1B sind Blockdiagramme von Beispielsystemen gemäß verschiedener Ausführungen;
-
2 ist ein Flussdiagramm eines Prozesses zum Laden einer Anwendung aus einem App Store gemäß einiger Ausführungen; und
-
3 ist ein Blockdiagramm der Komponenten eines Systems gemäß weiterer Ausführungen.
-
Ausführliche Beschreibung
-
In elektronischen Geräten können grafische Darstellungen von App Stores dargestellt sein, die Objekte enthalten, die entsprechende unterschiedliche Anwendungen darstellen. Ein Benutzer kann eins oder mehrere der Objekte im App Store auswählen und damit veranlassen, dass die entsprechende(n) Anwendung(en) auf dem elektronischen Gerät installiert wird bzw. werden. Beispiele für elektronische Geräte sind Computer (PCs, Notebooks, Tablets usw.), PDAs, Mobiltelefone, Elektrogeräte oder andere Arten elektronischer Geräte.
-
Die auf ein elektronisches Gerät installierbaren Anwendungen aus dem App Store können sich an verschiedenen fernen Stellen, z. B. Webseiten oder Anwendungsservern von Anbietern, befinden, welche die Anwendungen zum Verkauf oder zum kostenlosen Download anbieten. Wenn ein Benutzer im App Store ein Objekt auswählt, das einer gegebenen Anwendung entspricht, dann kommuniziert das elektronische Gerät über ein Netzwerk, um den mit der gegebenen Anwendung verknüpften Code zur Installation auf dem elektronischen Gerät herunterzuladen. Der mit der gegebenen Anwendung verknüpfte „Code” bezieht sich auf maschinenlesbare Anwendungen, die auf dem elektronischen Gerät ausführbar sind, sobald die maschinenlesbaren Anweisungen auf dem elektronischen Gerät installiert sind. Die maschinenlesbaren Anweisungen können in Form von kompiliertem Code, einem Skript oder einer anderen Code-Form vorliegen. Das „installieren” einer Anwendung auf ein elektronisches Gerät bezieht sich auf das Erhalten des Anwendungscodes von einer Quelle (z. B. einer fernen Stelle) und das Ablegen des Codes auf dem elektronischen Gerät in einem Zustand, der es ermöglicht, dass der Code bei Aktivierung, z. B. durch einen Benutzer oder eine Anwendung, ausgeführt wird. Der Code wird an geeigneten Stellen des elektronischen Gerätes abgelegt, um bei Aktivierung ein Ausführen zu ermöglichen. Vor dem Installieren des Codes existierte der Code nicht in diesem Zustand auf dem elektronischen Gerät, der es ermöglicht, den Code in Reaktion auf Aktivierung des Codes auszuführen.
-
In einigen Ausführungen kann ein elektronisches Gerät mit mehreren virtualisierten Umgebungen (auch als „virtuelle Maschinen” bezeichnet) konfiguriert werden. Eine „virtualisierte Umgebung” oder „virtuelle Maschine” bezieht sich auf eine Anordnung von Komponenten zum Virtualisieren oder Nachbilden einer realen Maschine. In der folgenden Darstellung werden die Begriffe „virtualisierte Umgebung” und „virtuelle Maschine” synonym verwendet. Wie weiter unten erläutert, stellt das Vorhandensein mehrerer virtualisierter Umgebungen in dem elektronischen Gerät eine Herausforderung für einen Benutzer dar, wenn der Benutzer eine Anwendung auf dem elektronischen Gerät installieren möchte. Zum Beispiel kann die Anwendung für ein bestimmtes Betriebssystem geschrieben worden sein, sodass die Anwendung in eine virtualisierte Umgebung installiert werden muss, die das bestimmte Betriebssystem enthält. Das kann für den Benutzer zur Herausforderung werden, wenn er manuell festlegen muss, welche der mehreren virtualisierten Umgebungen die zur Installation der Anwendung geeignete ist.
-
Die Komponenten einer jeden virtualisierten Umgebung können ein Gastbetriebssystem und eine oder mehrere Anwendungen beinhalten, die auf dem Gastbetriebssystem laufen. Die verschiedenen virtualisierten Umgebungen in dem elektronischen Gerät können unterschiedliche Arten von Gastbetriebssystemen enthalten (z. B. Unix, Linux, Windows®, WebOS oder andere Betriebssystemarten). Das Vorhandensein mehrerer virtualisierter Umgebungen in einem elektronischen Gerät erlaubt die gleichzeitige Ausführung von für unterschiedliche Betriebssysteme entwickelten Anwendungen in dem elektronischen Gerät.
-
Bei elektronischen Geräten mit mehreren virtualisierten Umgebungen ist es möglich, dass ein durch ein solches elektronisches Gerät dargestellter App Store Anwendungen für unterschiedliche Betriebssysteme enthält. Das Darstellen von Anwendungen für unterschiedliche Betriebssystemarten in einem gemeinsamen App Store fördert das Benutzererlebnis im Vergleich zu einer Anordnung, bei der für die verschiedenen Arten von Betriebssystemen verschiedene individuelle App Stores bereitgestellt sind. Ein Benutzer kann einfach den gemeinsamen App Store nach Anwendungen durchstöbern, die für ihn von Interesse sind.
-
Gemäß einigen Ausführungen sind Verfahren oder Mechanismen bereitgestellt, die die automatische Installation einer ausgewählten Anwendung (von einem Benutzer in einem App Store mit Anwendungen für verschiedene Betriebssystemarten ausgewählt) in eine entsprechende virtualisierte Umgebung ermöglichen, die das Gastbetriebssystem enthält, das mit der ausgewählten Anwendung kompatibel ist. Durch die Anwendung der Verfahren oder Mechanismen gemäß einiger Ausführungen braucht der Benutzer keine manuelle Analyse durchführen, um zu bestimmen, welche der mehreren virtualisierten Umgebungen die zur Installation der ausgewählten Anwendung geeignete ist, was für den Benutzer ohne angemessene Schulung oder Anleitung eine Herausforderung darstellen kann.
-
1A ist ein Blockdiagramm eines beispielhaften elektronischen Gerätes 100 mit mehreren virtualisierten Umgebungen (oder virtuellen Maschinen) 102A, 102B. Auch wenn nur zwei virtualisierte Umgebungen in 1A dargestellt sind, ist zu beachten, dass in alternativen Ausführungen zusätzliche virtualisierte Umgebungen in dem elektronischen Gerät 100 bereitgestellt werden können. Wie in 1A dargestellt, beinhaltet die virtualisierte Umgebung 102A ein Gastbetriebssystem 104A und eine Anwendung 106A, die für das Gastbetriebssystem 104A entwickelt wurde. Gleichermaßen beinhaltet die virtualisierte Umgebung 102B ein Gastbetriebssystem 104B und eine Anwendung 106B, die für das Gastbetriebssystem 104B entwickelt wurde. Das Gastbetriebssystem 104B ist ein anderes Betriebssystem als das Gastbetriebssystem 104A.
-
In einigen Beispielen beinhalten die Hardware-Ressourcen 108 des elektronischen Gerätes 100 einen Prozessor 112, einen Speicher 114, ein dauerhaftes Speichermedium 116 und eine Eingabe-/Ausgabeeinrichtung (I/O) 118. Es ist zu beachten, dass auch wenn auf den Prozessor 112, den Speicher 114, das dauerhafte Speichermedium 116 und die Eingabe-/Ausgabeeinrichtung (I/O) 118 in singulärer Form Bezug genommen wird, die Hardware-Ressourcen 108 auch mehrere Prozessoren, Speicher, dauerhafte Speichermedien und/oder I/O-Einrichtungen beinhalten können.
-
Die Virtualisierung der Hardware-Ressourcen 109 des elektronischen Gerätes erfolgt durch einen virtuellen Maschinenmonitor (VMM) 110. Ein VMM wird auch als Hypervisor bezeichnet. Der VMM 110 verwaltet die gemeinsame Nutzung der Hardware-Ressourcen 108 (durch die virtualisierten Umgebungen 102A, 102B). Der VMM 110 virtualisiert die Hardware-Ressourcen 108 und fängt die Anfragen für derartige Hardware-Ressourcen der Gastbetriebssysteme 104A, 104B ab.
-
Der VMM 110 stellt gewissermaßen eine Schnittstelle zwischen dem Gastbetriebssystem einer jeden virtualisierten Umgebung und den grundlegenden Hardware-Ressourcen 108 bereit. In einigen Beispielen ist die vom VMM 110 bereitgestellte Schnittstelle zu einem Gastbetriebssystem dazu ausgebildet, die von den realen Hardware-Ressourcen 108 bereitgestellte Schnittstelle nachzubilden.
-
In einigen Ausführungen ist der VMM 110 ein Typ 1-VMM oder Hypervisor (nativ, blankes Metall), der dazu konfiguriert ist, direkt auf den Hardware-Ressourcen 108 zu laufen, um die Hardware-Ressourcen 108 zu steuern und mit den Gastbetriebssystemen zu interagieren. In anderen Ausführungen kann der VMM 110 ein Typ 2-VMM oder Hypervisor (hosted) sein, der auf einem Host-Betriebssystem läuft. Zum Beispiel ist ein Host-Betriebssystem 120 in 1A mit gestricheltem Umriss dargestellt. Wäre der VMM 110 ein Host-VMM, dann wäre das Host-Betriebssystem 120 zum Hosten des VMM 110 vorhanden. Wäre andererseits der VMM 110 ein Typ 1-VMM, würde das Host-Betriebssystem 120 fehlen.
-
Das elektronische Gerät 100 beinhaltet auch eine Anzeigeeinrichtung 122. Die Anzeigeeinrichtung 122 interagiert mit einer Grafiksteuerung (die eine der I/O-Einrichtungen 118 sein kann) der Hardware-Ressourcen 108. Die Anzeigeeinrichtung 122 kann so gesteuert werden, dass sie eine grafische Darstellung eines App Stores 124 anzeigt. Der App Store 124 beinhaltet Objekte 126 (z. B. Symbole), die entsprechende Anwendungen darstellen, die von einem Benutzer ausgewählt werden können, um die Installation der entsprechenden ausgewählten Anwendungen zu veranlassen.
-
Es ist zu beachten, dass die I/O-Einrichtungen 118 auch eine Netzwerkschnittstellensteuerung beinhalten können, um dem elektronischen Gerät 100 zu ermöglichen, über ein Netzwerk 128 mit den entsprechenden fernen Stellen 130 (z. B. Webseiten, Anwendungsservern usw.) zu kommunizieren. Jede ferne Stelle 130 kann Code speichern, der einer oder mehreren der in dem App Store 124 dargestellten Anwendungen entspricht. In Reaktion auf die Auswahl einer Anwendung im App Store 124 kommuniziert das elektronische Gerät 100 über das Netzwerk 128 mit einer entsprechenden fernen Stelle 130, um zu veranlassen, dass der der ausgewählten Anwendung entsprechende Code zur Installation auf dem elektronischen Gerät 100 auf das elektronische Gerät 100 heruntergeladen wird.
-
Die Installation einer ausgewählten Anwendung aus dem App Store 124 kann von einer Installationslogik 132 gesteuert werden, die im elektronischen Gerät 100 ausgeführt wird. Die Installationslogik 132 kann als App Store-Proxy (Proxy für den App Store 124) betrachtet werden. In einigen Ausführungen fungiert die Virtualisierungsinfrastruktur des elektronischen Gerätes 100 als Proxy für die App Store-Verbindung. Die Funktion als Proxy für die App Store-Verbindung bezieht sich auf einen Vorgang, bei dem eine mit dem App Store verknüpfte Installationsaufgabe (z. B. eine Installationsaufgabe in Reaktion auf die Benutzerauswahl einer Anwendung im App Store 124) an die Installationslogik 132 weitergeleitet wird, die Teil der Virtualisierungsinfrastruktur des elektronischen Gerätes 100 ist.
-
Zum Beispiel kann die Installationslogik 132 Teil einer Steuerungsdomain 134 sein, die sich in der Virtualisierungsinfrastruktur befindet. Die Steuerungsdomain kann die Domain 0 sein, bei der es sich um die erste Domain handelt, die beim ersten Inbetriebnehmen des elektronischen Gerätes 100 gestartet wird. Es ist zu beachten, dass das Konzept der Domain 0 bei einigen Arten von VMMs 110 anwendbar ist. Die Domain 0 beinhaltet spezielle Verwaltungsprivilegien und kann direkten Zugriff auf die Hardware-Ressourcen 108 haben. Die Domain 0 kann als administrative virtuelle Maschine betrachtet werden.
-
In anderen Beispielen kann die Installationslogik 132 Teil einer virtuellen Dienstmaschine 136 sein (die dazu konfiguriert ist, verschiedene administrative Aufgaben im elektronischen Gerät 100 durchzuführen). Als weitere Alternative kann die Installationslogik 132 Teil einer der virtualisierten Umgebungen 102A, 102B sein.
-
1B zeigt ein vereinfachtes elektronisches Gerät 100A gemäß alternativen Ausführungen. Die Elemente im elektronischen Gerät 100A, die im elektronischen Gerät 100 von 1A vorhanden sind, sind mit den gleichen Bezugsziffern versehen. Wie in 1B dargestellt, beinhaltet das elektronische Gerät 100A die virtualisierten Umgebungen 102A und 102B und die Anzeigeeinrichtung 122, die eine Darstellung des App Stores 124 anzeigen kann.
-
Die Hardware-Ressourcen 108A des elektronischen Gerätes 100A beinhalten ein maschinenlesbares Speichermedium 150 und den Prozessor 112. Wie dargestellt, wird die Installationslogik 132 in einigen Ausführungen zunächst im maschinenlesbaren Speichermedium 150 gespeichert und zur Ausführung auf den Prozessor 112 geladen.
-
2 ist ein vom elektronischen Gerät 100 durchgeführter Prozess gemäß einigen Ausführungen. Eine grafische Darstellung des App Store 124 (1A oder 1B) wird (in 202) zur Anzeige dargestellt. In einigen Beispielen kann der App Store 124 durch eine App Store-Anwendung (nicht dargestellt) in dem elektronischen Gerät dargestellt werden. Die App Store-Anwendung kann Teil einer der virtualisierten Umgebungen 102A, 102B, Teil des virtuellen Dienstmoduls 136 oder Teil eines anderen Moduls im elektronischen Gerät 100 sein.
-
Die Installationslogik 132 empfängt (in 204) die Auswahl einer Anwendung im App Store 124. In Reaktion auf die Auswahl identifiziert die Installationslogik 132 (in 206), welche der mehreren virtualisierten Umgebungen 102A, 102B der ausgewählten Anwendung entspricht. Die ausgewählte Anwendung wird dann (in 208) in die identifizierte virtualisierte Umgebung installiert.
-
Es ist zu beachten, dass in einigen Fällen das in 206 durchgeführte Identifizieren das Identifizieren mehrerer virtualisierter Umgebungen beinhalten kann, die sich zur Installation der ausgewählten Anwendung eignen (mit anderen Worten, die ausgewählte Anwendung ist mit jedem der Gastbetriebssysteme in den identifizierten mehreren virtualisierten Umgebungen kompatibel). In solchen Fällen kann die Installationslogik 132 den Benutzer auffordern, auszuwählen, in welche der identifizierten mehreren virtualisierten Umgebungen die ausgewählte Anwendung installiert werden soll. Alternativ kann die Installationslogik 132 eine oder mehrere vordefinierte Kriterien zur automatischen Auswahl einer Umgebung aus den identifizierten mehreren virtualisierten Umgebungen anwenden. Zum Beispiel kann die Installationslogik 132 auswählen: (1) die unter den identifizierten mehreren virtualisierten Umgebungen zuletzt am häufigsten verwendete oder (2) diejenige der identifizierten mehreren virtualisierten Umgebungen, die gegenwärtig im Vordergrund steht bzw. aktiv ist. Da es mehrere virtualisierte Umgebungen gibt, führen einige der virtualisierten Umgebungen eventuell aktiv Aufgaben in dem elektronischen Gerät aus (die Anwendungen und/oder Betriebssysteme in diesen virtualisierten Umgebungen werden aktiv ausgeführt und nutzen somit die Hardware-Ressourcen des elektronischen Gerätes). Solche virtualisierten Umgebungen werden als im Vordergrund stehend bzw. aktiv betrachtet. Im Gegensatz dazu können andere der virtualisierten Umgebungen inaktiv sein (die Anwendungen und/oder Betriebssysteme befinden sich im Wartezustand und nutzen keine Hardware-Ressourcen des elektronischen Gerätes). Andere Kriterien zur Auswahl aus den identifizierten mehreren virtualisierten Umgebungen können in anderen Beispielen verwendet werden.
-
Sobald die Installationslogik 132 das vordefinierte Kriterium (oder die Kriterien) angewendet hat, um aus den identifizierten mehreren virtualisierten Umgebungen auszuwählen, kann die Installationslogik 132 die ausgewählte Anwendung automatisch in die ausgewählte virtualisierte Umgebung installieren, ohne weitere Eingabe vom Benutzer. Alternativ kann die Installationslogik 132 dem Benutzer zunächst die ausgewählte virtualisierte Umgebung zusammen mit den identifizierten mehreren virtualisierten Umgebungen als Empfehlung oder Vorschlag anzeigen. Der Benutzer kann die Empfehlung bzw. den Vorschlag annehmen oder ablehnen.
-
Die Identifikation (206 in 2) der virtualisierten Umgebung(en), in die eine ausgewählte Anwendung zu installieren ist, kann auf einem von mehreren unterschiedlichen Mechanismen basieren. Zum Beispiel können Metadaten mit einer Anwendung im App Store verknüpft sein. Die Metadaten können in einem Wrapper oder Installationsprogramm der Anwendung enthalten sein. Ein Wrapper bezieht sich auf eine mit der Anwendung verknüpfte Logik, die dazu konfiguriert ist, bei Ausführung des Wrappers die Anwendung zu aktivieren. Ein Installationsprogramm der Anwendung bezieht sich auf eine mit der Anwendung verknüpfte Logik, die dazu konfiguriert ist, bei Ausführung des Installationsprogramms die Anwendung in ein System zu installieren. Die Metadaten können identifizieren, dass die bestimmte Anwendung mit einem gegebenen Betriebssystem verknüpft ist, sodass die Installationslogik 132 basierend auf den Metadaten entscheiden kann, welche virtualisierte Umgebung 102A, 102B die geeignete virtualisierte Umgebung zur Installation der ausgewählten Anwendung ist (durch Abgleichen des von den Metadaten angezeigten Betriebssystems mit dem Gastbetriebssystem in jeder virtualisierten Umgebung).
-
Ein anderer Mechanismus, die Verknüpfung der Anwendungen mit den entsprechenden virtualisierten Umgebungen 102A, 102B zu ermöglichen, besteht darin, die entsprechenden verschiedenen Anwendungen (die für verschiedene Arten von Betriebssystemen entwickelt wurden) in entsprechende einzelne, individuelle App Stores, z. B. individuelle App Stores 302, 304 und 306 in 3, einzubinden. Auch wenn drei individuelle App Stores 302, 304 und 306 in 3 dargestellt sind, ist zu beachten, dass in anderen Beispielen eine andere Anzahl App Stores verwendet werden kann.
-
Der individuelle App Store 302 enthält Anwendungen für eine erste Betriebssystemart, der individuelle App Store 304 enthält Anwendungen für eine zweite Betriebssystemart und der individuelle App Store 306 enthält Anwendungen für eine dritte Betriebssystemart. Der Inhalt der individuellen App Stores 302, 304 und 306 kann zur Darstellung im angezeigten App Store 124 kombiniert werden. In Ausführungen gemäß 3 kann der angezeigte App Store 124 als virtueller oder abstrakter App Store betrachtet werden, der den Inhalt der individuellen App Stores 302, 304 und 306 zusammenfasst.
-
Wenn eine Anwendung im angezeigten App Store 124 ausgewählt wird, ist die Installationslogik 132 in der Lage, einen der individuellen App Stores 302, 304 und 306 als Quelle der ausgewählten Anwendung zu identifizieren. Basierend auf der Identifikation des jeweiligen individuellen App Stores als Quelle kann die Installationslogik 132 bestimmen, welche virtualisierte Umgebung bzw. welche virtualisierten Umgebungen die richtige virtualisierte Umgebung bzw. die richtigen virtualisierten Umgebungen für die Installation der ausgewählten Anwendung ist bzw. sind.
-
Als noch andere Alternative können die Erweiterungen der Anwendungsnamen im App Store 124 zum Identifizieren der entsprechenden virtualisierten Umgebung(en) zur Installation einer ausgewählten Anwendung verwendet werden. Zum Beispiel zeigt eine Anwendungsbezeichnung mit einer .exe-Erweiterung an, dass dies eine Anwendung für das Betriebssystem Windows® ist und somit in eine virtualisierte Umgebung mit dem Betriebssystem Windows® installiert werden sollte. Als weiteres Beispiel kann eine Anwendungsbezeichnung mit einer .rpm oder .yum-Erweiterung anzeigen, das die Anwendung mit dem Betriebssystem Linux verknüpft ist und somit in eine virtuelle Umgebung mit dem Betriebssystem Linux installiert werden sollte.
-
Auch wenn viele Erweiterungen eindeutig und unmissverständlich sind (bezogen darauf, für welches Betriebssystem die Anwendung entwickelt wurde) gibt es andere Erweiterungen, die potenziell zweideutig sein können. Beispiele für solche zweideutigen Erweiterungen sind .xml oder .html. Anwendungen mit diesen Erweiterungen können Plug-Ins sein, die potenziell in eine von mehreren verschiedenen virtualisierten Umgebungen mit unterschiedlichen Betriebssystemen installiert werden können. Zur Lösung dieser Zweideutigkeit kann eins der vorangegangenen Verfahren verwendet werden, z. B. das Verfahren, bei dem mit der Anwendung verknüpfte Metadaten eingesetzt werden, oder das Verfahren, bei dem Anwendungen für verschiedene Betriebssysteme in verschiedenen individuellen App Stores gespeichert sind.
-
Alternativ kann in Fällen, in denen eine Erweiterung zweideutig ist, dem Benutzer eine Aufforderung angezeigt werden, um ihm zu ermöglichen, auszuwählen, welche virtualisierte Umgebung zur Installation der ausgewählten Anwendung geeignet ist.
-
Durch Anwendung der Verfahren oder Mechanismen gemäß einiger Ausführungen können Anwendungen, die für verschiedene Betriebssystemarten entwickelt wurden, in einem gemeinsamen bzw. gemeinsam genutzten App Store dargestellt werden, während es weiterhin möglich ist, eine ausgewählte Anwendung auf einem elektronischen Gerät mit mehreren virtualisierten Umgebungen in die geeignete virtualisierte Umgebung zu installieren.
-
Maschinenlesbare Anweisungen der vorstehend beschriebenen Module (einschließlich der in 1A oder 1B dargestellten Module) werden auf einem Prozessor oder auf Prozessoren ausgeführt (z. B. 112 in 1A oder 1B). Ein Prozessor kann einen Mikroprozessor, Mikrocontroller, ein Prozessormodul oder -subsystem, eine programmierbare integrierte Schaltung, ein programmierbares Gate-Array oder eine andere Steuer- oder Verarbeitungseinrichtung beinhalten.
-
Daten und Anweisungen werden in entsprechenden Speichereinrichtungen gespeichert, die als ein oder mehrere computerlesbare oder maschinenlesbare Speichermedien implementiert sind. Die Speichermedien beinhalten verschiedene Speicherformen, einschließlich Halbleiterspeichereinrichtungen, wie dynamische oder statische Direktzugriffsspeicher (DRAM oder SRAM), löschbare programmierbare Nur-Lese-Speicher (EPROM), elektrisch löschbare programmierbare Nur-Lese-Speicher (EEPROM) und Flash-Speicher, Magnetplatten wie Festplatten, Disketten und Wechselplatten; andere magnetische Medien einschließlich Bändern; optische Medien wie Compact Disks (CDs) oder Digitale Video Disks (DVDs); oder andere Speichereinrichtungsarten. Es ist zu beachten, dass die oben erläuterten Anweisungen auf einem computerlesbaren oder maschinenlesbaren Speichermedium bereitgestellt werden können, oder alternativ auf mehreren computerlesbaren oder maschinenlesbaren Speichermedien bereitgestellt werden können, die in einem großen System mit eventuell mehreren Knoten verteilt sind. Solche computerlesbaren oder maschinenlesbaren Speichermedien werden als Bestandteil eines Artikels (oder Produktes) betrachtet. Ein Artikel oder Produkt kann sich auf jede hergestellte Einzelkomponente oder auf mehrere Komponenten beziehen. Das Speichermedium oder die Speichermedien können sich entweder in der Maschine befinden, die die maschinenlesbaren Anweisungen ausführt, oder befinden sich an einer fernen Stelle, von der die maschinenlesbaren Anweisungen über ein Ausführungsnetzwerk heruntergeladen werden können.
-
In der vorangegangenen Beschreibung werden zahlreiche Einzelheiten dargestellt, um das Verständnis des hierin offenbarten Gegenstandes zu gewährleisten. Jedoch können die Ausführungen ohne einige oder alle diese Einzelheiten praktiziert werden. Andere Ausführungen können Modifikationen und Variationen der oben behandelten Einzelheiten beinhalten. Es ist vorgesehen, dass die angefügten Patentansprüche derartige Modifikationen und Variationen abdecken.