DE112011105082T5 - Installieren einer Anwendung in eine visualisierte Umgebung - Google Patents

Installieren einer Anwendung in eine visualisierte Umgebung Download PDF

Info

Publication number
DE112011105082T5
DE112011105082T5 DE112011105082.8T DE112011105082T DE112011105082T5 DE 112011105082 T5 DE112011105082 T5 DE 112011105082T5 DE 112011105082 T DE112011105082 T DE 112011105082T DE 112011105082 T5 DE112011105082 T5 DE 112011105082T5
Authority
DE
Germany
Prior art keywords
application
electronic device
virtualized environments
virtualized
app store
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE112011105082.8T
Other languages
English (en)
Inventor
James M. Mann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE112011105082T5 publication Critical patent/DE112011105082T5/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Abstract

Ein elektronisches Gerät verfügt über eine Vielzahl virtualisierter Umgebungen. Die Auswahl einer Anwendung eines App Stores wird empfangen und eine virtualisierte Umgebung zur Installation der aus dem App Store ausgewählten Anwendung wird identifiziert.

Description

  • 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:
  • 1A1B 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.

Claims (15)

  1. Verfahren eines elektronischen Gerätes, umfassend: Darstellen einer Darstellung eines App Stores auf dem elektronischen Gerät, wobei das elektronische Gerät eine Vielzahl virtualisierter Umgebungen aufweist, wobei jede mit einer jeweiligen verschiedenen Betriebssystemart konfiguriert ist; Empfangen einer Auswahl einer Anwendung des App Stores; Identifizieren, welche der Vielzahl virtualisierter Umgebungen der Anwendung entspricht; und Installieren der Anwendung in die identifizierte virtualisierte Umgebung.
  2. Das Verfahren nach Anspruch 1, wobei das Identifizieren das Zugreifen auf mit der Anwendung verknüpfte Informationen umfasst, um zu bestimmen, mit welchem der Betriebssysteme die Anwendung verknüpft ist.
  3. Das Verfahren nach Anspruch 2, wobei das Zugreifen auf die Informationen das Zugreifen auf Metadaten in einem Wrapper oder Installationsprogramm der Anwendung umfasst.
  4. Das Verfahren nach Anspruch 2, wobei das Zugreifen auf die Informationen das Zugreifen auf Informationen bezogen auf eine Quelle der Anwendung umfasst.
  5. Das Verfahren nach Anspruch 4, wobei das Zugreifen auf die Informationen bezogen auf die Quelle das Zugreifen auf Informationen umfasst, die anzeigen, mit welchem der mehreren einzelnen App Stores die Anwendung verknüpft ist.
  6. Das Verfahren nach Anspruch 2, wobei das Zugreifen auf die Informationen das Zugreifen auf eine Erweiterung einer Anwendungsbezeichnung umfasst.
  7. Das Verfahren nach Anspruch 1, wobei das Empfangen, Identifizieren und Installieren durch Logik in einer Virtualisierungsinfrastruktur des elektronischen Gerätes durchgeführt wird.
  8. Das Verfahren nach Anspruch 7, wobei die Virtualisierungsinfrastruktur eine Steuerungsdomain oder eine virtuelle Maschine beinhaltet.
  9. Artikel, der mindestens ein maschinenlesbares Speichermedium umfasst, das Anweisungen speichert, die bei Ausführung bewirken, dass ein elektronisches Gerät mit einem Prozessor ein Verfahren gemäß Anspruch 1 durchführt.
  10. Ein elektronisches Gerät umfassend: mindestens einen Prozessor; eine Vielzahl virtualisierter Umgebungen mit jeweiligen Gastbetriebssystemen; und eine Installationsprogrammlogik zum: Empfangen einer Auswahl einer Anwedung, die durch einen App Store mit vielen Anwendungen dargestellt wird; Zugreifen auf mit der ausgewählten Anwendung verknüpften Informationen, um zu identifizieren, in welche der virtualisierten Umgebungen die ausgewählte Anwendung zu installieren ist; und Installieren der ausgewählten Anwendung in die identifizierte virtualisierte Umgebung.
  11. Das elektronische Gerät nach Anspruch 10, wobei die Installationsprogrammlogik Teil einer Virtualisierungsinfrastruktur des elektronischen Gerätes ist.
  12. Das elektronische Gerät nach Anspruch 10, wobei die Installationsprogrammlogik dazu dient, zu identifizieren, in welche der virtualisierten Umgebungen die ausgewählte Anwendung zu installieren ist, durch: Identifizieren von mehreren der Vielzahl virtualisierter Umgebungen als für die Installation der ausgewählten Anwendung geeignet; und Durchführen einer Aktion zur Auswahl aus den mehreren virtualisierten Umgebungen zur Installation der ausgewählten Anwendung.
  13. Das elektronische Gerät nach Anspruch 12, wobei die Aktion mindestens eines ausgewählt aus den Folgenden umfasst: Auffordern eines Benutzers zur Auswahl von einer der mehreren virtualisierten Umgebungen; Verwenden von mindestens einem Kriterium zur automatischen Auswahl aus den mehreren virtualisierten Umgebungen; und Verwenden von mindestens einem Kriterium zur Auswahl aus den mehreren virtualisierten Umgebungen, und Anzeigen der einen aus den mehreren virtualisierten Umgebungen ausgewählten Umgebung in einer Aufforderung an einen Benutzer als für die Installation der ausgewählten Anwendung vorgeschlagene virtualisierte Umgebung.
  14. Das elektronische Gerät nach Anspruch 10, wobei die Informationen, auf die zugegriffen wurde, mindestens eines ausgewählt aus den Folgenden umfasst: Metadaten in einem Wrapper oder Installationsprogramm der ausgewählten Anwendung; eine Quelle der ausgewählten Anwendung; und eine Erweiterung der Bezeichnung der ausgewählten Anwendung.
  15. Das elektronische Gerät nach Anspruch 10, wobei der App Store ein gemeinsam genutzter App Store mit den Anwendungen ist, die mit verschiedenen Betriebssystemarten verknüpft sind, wobei das elektronische Gerät ferner umfasst: individuelle App Stores, wobei jeder eine jeweilige Teilmenge der Anwendungen enthält, wobei jeder der einzelnen App Stores mit einer jeweiligen der verschiedenen Betriebssystemarten verknüpft ist.
DE112011105082.8T 2011-04-21 2011-04-21 Installieren einer Anwendung in eine visualisierte Umgebung Ceased DE112011105082T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/033367 WO2012145002A1 (en) 2011-04-21 2011-04-21 Installing an application into a virtualized environment

Publications (1)

Publication Number Publication Date
DE112011105082T5 true DE112011105082T5 (de) 2014-06-26

Family

ID=47041855

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011105082.8T Ceased DE112011105082T5 (de) 2011-04-21 2011-04-21 Installieren einer Anwendung in eine visualisierte Umgebung

Country Status (5)

Country Link
US (2) US9176721B2 (de)
CN (1) CN103493016B (de)
DE (1) DE112011105082T5 (de)
GB (1) GB2503399A (de)
WO (1) WO2012145002A1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924958B1 (en) * 2011-05-24 2014-12-30 BlueStack Systems, Inc. Application player
US10089093B1 (en) 2011-05-24 2018-10-02 BlueStack Systems, Inc. Apparatuses, systems and methods of switching operating systems
US9122551B2 (en) * 2011-06-17 2015-09-01 The Boeing Comapny Methods and systems for generating read-only operating systems
US9571332B2 (en) * 2012-04-17 2017-02-14 Adara Networks, Inc. Methods and apparatuses for remote application provisioning automation over virtualized IT infrastructure
US20140149906A1 (en) * 2012-11-26 2014-05-29 Bank Of America Corporation Electronic Bookshelf
US9645809B2 (en) 2013-05-29 2017-05-09 Microsoft Technology Licensing, Llc Updating software components through online stores
CN105094764B (zh) * 2014-05-04 2019-01-08 中国移动通信集团公司 电子设备应用的生成方法及装置
CN105446760B (zh) * 2014-08-29 2019-02-15 国际商业机器公司 用于应用安装的方法和装置
CN104572218B (zh) * 2015-01-28 2019-02-01 宇龙计算机通信科技(深圳)有限公司 应用程序的运行控制方法、运行控制系统和终端
US9763024B2 (en) * 2015-04-09 2017-09-12 Yahoo Holdings, Inc. Mobile ghosting
US10341412B1 (en) * 2015-06-19 2019-07-02 Amazon Technologies, Inc. Multiple application remoting
US10083054B2 (en) * 2015-12-28 2018-09-25 Amazon Technologies, Inc. Application-based computing resource management
CN107450937B (zh) * 2016-05-31 2021-02-19 中兴通讯股份有限公司 一种应用程序的运行方法和运行装置
US10326806B1 (en) 2016-07-19 2019-06-18 Google Llc Persisting state of a streaming application
US10216506B2 (en) 2017-04-07 2019-02-26 International Business Machines Corporation Location-based automatic software application installation
CN107844302B (zh) * 2017-10-18 2020-12-11 上海瀚之友信息技术服务有限公司 一种基于虚拟机的生产环境模拟系统

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001273122A (ja) 2000-03-23 2001-10-05 Hitachi Ltd 並列計算システムのプログラムインストール方法及び装置
US7577722B1 (en) * 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
JP4168338B2 (ja) 2003-09-18 2008-10-22 ブラザー工業株式会社 インストールプログラム、コンピュータ読取可能な記録媒体、及びインストール方法
KR20090035044A (ko) * 2003-09-26 2009-04-08 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘 피 네트워크에서의 생성자와 콘텐츠 서버 간의 업데이트 패키지 전송을 위한 업데이트 패키지 카탈로그
US7669177B2 (en) * 2003-10-24 2010-02-23 Microsoft Corporation System and method for preference application installation and execution
US7694280B2 (en) * 2004-03-29 2010-04-06 Hewlett-Packard Development Company, L.P. Systems and methods for controlling program installation on a computing device
US7681193B2 (en) 2005-03-02 2010-03-16 International Business Machines Corporation Method and apparatus for providing alternative installation structures for deployment of software applications
US20070143446A1 (en) 2005-12-21 2007-06-21 Morris Robert P Methods, systems, and computer program products for installing an application from one peer to another including application configuration settings and data
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
US7987432B1 (en) 2006-04-25 2011-07-26 Parallels Holdings, Ltd. Seamless integration and installation of non-native application into native operating system
US7827548B1 (en) 2006-06-08 2010-11-02 Sprint Communications Company L.P. Environment-neutral application build
US8037473B2 (en) 2006-10-20 2011-10-11 International Business Machines Corporation Method to share licensed applications between virtual machines
WO2009003189A1 (en) 2007-06-27 2008-12-31 Acresso Software, Inc. A method and system for software virtualization directly from an installation package
US8949585B2 (en) * 2007-10-09 2015-02-03 Vmware, Inc. In-place conversion of virtual machine state
CN101216777B (zh) * 2008-01-11 2010-11-03 华中科技大学 一种多虚拟机环境下的快速部署系统
EP2255284B1 (de) * 2008-03-20 2017-01-11 International Business Machines Corporation Verfahren und system zur erkennung von softwareinstallation und nutzung in einer anwendungsvirtualisierungsumgebung
KR101506683B1 (ko) * 2008-08-06 2015-03-30 삼성전자 주식회사 다수개의 운영 시스템을 지원하는 장치 및 방법
US8434093B2 (en) 2008-08-07 2013-04-30 Code Systems Corporation Method and system for virtualization of software applications
CN101655798B (zh) * 2008-08-18 2013-03-27 联想(北京)有限公司 一种虚拟机环境中应用程序部署和运行的装置及方法
US9021470B2 (en) * 2008-08-29 2015-04-28 Red Hat, Inc. Software provisioning in multiple network configuration environment
US8595714B1 (en) * 2009-03-04 2013-11-26 Amazon Technologies, Inc. User controlled environment updates in server cluster
US8826269B2 (en) * 2009-06-15 2014-09-02 Microsoft Corporation Annotating virtual application processes
US8789041B2 (en) * 2009-12-18 2014-07-22 Verizon Patent And Licensing Inc. Method and system for bulk automated virtual machine deployment
US8719776B2 (en) * 2009-12-30 2014-05-06 Foneclay, Inc. System for creation and distribution of software applications usable on multiple mobile device platforms
US8645977B2 (en) * 2010-02-04 2014-02-04 Microsoft Corporation Extensible application virtualization subsystems
CN101833462A (zh) 2010-04-01 2010-09-15 山东高效能服务器和存储研究院 一种跨操作系统平台的通用的安装程序制作方法
CN101937351B (zh) 2010-09-15 2013-07-31 任子行网络技术股份有限公司 一种自动安装应用软件的方法和系统
US9053339B2 (en) * 2010-10-27 2015-06-09 Hytrust, Inc. System and method for secure storage of virtual machines
US8713566B2 (en) * 2011-01-31 2014-04-29 International Business Machines Corporation Method and system for delivering and executing virtual container on logical partition of target computing device
US9021005B2 (en) * 2011-03-04 2015-04-28 Mformation Software Technologies Llc System and method to provide remote device management for mobile virtualized platforms
US9058196B2 (en) * 2011-04-12 2015-06-16 Red Hat Israel, Ltd. Host machine level template caching in virtualization environments
US8631131B2 (en) * 2011-09-07 2014-01-14 Red Hat Israel, Ltd. Virtual machine pool cache
US8904081B1 (en) * 2012-05-08 2014-12-02 Vmware, Inc. Composing a virtual disk using application delta disk images

Also Published As

Publication number Publication date
US20160041818A1 (en) 2016-02-11
US9176721B2 (en) 2015-11-03
GB201318026D0 (en) 2013-11-27
CN103493016B (zh) 2017-06-06
GB2503399A (en) 2013-12-25
CN103493016A (zh) 2014-01-01
US20140040878A1 (en) 2014-02-06
US9858062B2 (en) 2018-01-02
WO2012145002A1 (en) 2012-10-26

Similar Documents

Publication Publication Date Title
DE112011105082T5 (de) Installieren einer Anwendung in eine visualisierte Umgebung
DE102013207608B4 (de) Instrumentieren von Software-Anwendungen für die Konfiguration derselben
CN103620550B (zh) 虚拟机镜像分析
DE202013012495U1 (de) Metadatenbasierte virtual Maschine-Konfiguration
EP2642395B1 (de) Verfahren und Vorrichtung zum Ausführen von Workflow-Skripten
DE112012000693B4 (de) Ausführen einer Vielzahl von Instanzen einer Anwendung
DE102010001339A1 (de) Verwalten von Anforderungen von Betriebssystemen, die in virtuellen Maschinen ablaufen
DE202012013448U1 (de) Prozessormodussperre
DE112011101929T5 (de) Aktivieren der Steuerung eines Hypervisor in einer Cloud-Datenverarbeitungsumgebung
DE112013000656T5 (de) System und Verfahren zum Verringern der Speichernutzung durch optimales Platzieren von virtuellen Maschinen in einem virtualisierten Rechenzentrum
DE112011105098T5 (de) Virtuelles BIOS
DE112013000369T5 (de) Verwaltung von Threads innerhalb einer Datenverarbeitungsumgebung
US20130219280A1 (en) Systems and Methods for Software Evaluation in a Cloud Computing Environment
DE112018005898T5 (de) Dynamische bereitstellung von software-funktionen
DE202014010943U1 (de) Wechseln zu und aus nativen Webanwendungen
DE112012005146T5 (de) Verfahren und System zum Anwenden einer Programmkorrektur auf ein virtuelles Abbild
DE112020000912T5 (de) Verwalten von software-programmen
DE112016004297T5 (de) Technologien für mehrstufige virtualisierung
DE102015122511A1 (de) Upgradefähiges Firmware-System
DE102016007400A1 (de) Techniken zum Evaluieren von Anwendungen durch die Verwendung einer Hilfsanwendung
US20190025991A1 (en) Hierarchical inventory tree operation
DE202014010904U1 (de) Benachrichtigungsmodul
DE102013202060A1 (de) Beschleunigung von Speicherdurchlaufsequenzen während einer Simulation
GB2467844A (en) Shutting down unnecessary programs in a computer system
DE102021130957A1 (de) Empfehlungen zur stabilität von software-aktualisierungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final