DE112009002168T5 - Auslieferung und Management von virtuellen Containern - Google Patents

Auslieferung und Management von virtuellen Containern Download PDF

Info

Publication number
DE112009002168T5
DE112009002168T5 DE112009002168T DE112009002168T DE112009002168T5 DE 112009002168 T5 DE112009002168 T5 DE 112009002168T5 DE 112009002168 T DE112009002168 T DE 112009002168T DE 112009002168 T DE112009002168 T DE 112009002168T DE 112009002168 T5 DE112009002168 T5 DE 112009002168T5
Authority
DE
Germany
Prior art keywords
application
module
computer program
container
program instructions
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.)
Withdrawn
Application number
DE112009002168T
Other languages
English (en)
Other versions
DE112009002168A5 (de
Inventor
Martin Kacin
R. Gray Michael
Mark Wright
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.)
Dell Products LP
Original Assignee
Kace Networks Inc
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 Kace Networks Inc filed Critical Kace Networks Inc
Publication of DE112009002168T5 publication Critical patent/DE112009002168T5/de
Publication of DE112009002168A5 publication Critical patent/DE112009002168A5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • 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/45537Provision of facilities of other operating environments, e.g. WINE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

Ein System virtualsiert Applikationen auf einem gemanagten Endpunkt unter Verwendung von Containern. Ein gemanagter Endpunkt empfängt einen virtualisierten Container von einer IT-Automatisierungseinrichtung. Der virtualisierte Container umfasst eine Applikation und ein Virtualisierungsmodul. Das Virtualisierungsmodul umfasst Computerprogrammanweisungen zum Virtualisieren der Applikation. Ein Betriebssystem-API-Aufruf, der von der Applikation während der Ausführung erzeugt wird, wird abgefangen und ein Teil der Computerprogrammanweisungen wird auf der Grundlage des Betriebssystems-API-Aufrufs ausgeführt. Die Computerprogrammanweisungen modifizieren das Verhalten der Applikation, um die Datei- und Datenvirtualisierung der Applikation zu bewirken. Der virtualisierte Container kann eine durch IT-Automatisierungseinrichtung zusammen mit einem Agenten ausgeliefert und aktualisiert werden, um die Auslieferung und das Aktualisieren des virtualisierten Containers zu unterstützen.

Description

  • QUERVERWEIS AUF ZUGEHÖRIGE ANMELDUNGEN
  • Diese Anmeldung beansprucht den Nutzen der US Provisional Anmeldung mit der Nr. 61/095 538, die am 9. September 2008 eingereicht wurde und die hiermit in Ihrer Gesamtheit durch Bezug aufgenommen wird.
  • GEBIET DER ERFINDUNG
  • Diese Erfindung bezieht sich im Allgemeinen auf informationstechnologische (IT) Systeme und spezieller auf Systeme und Verfahren zum Ausliefern und Managen von Applikationen in einer Unternehmensumgebung.
  • HINTERGRUND DER ERFINDUNG
  • Eine Unternehmensumgebung beinhaltet mehrere gemanagte Endpunkte (managed endpoints), wie etwa Nutzer-Workstations, Schalter (switches) und Router (routers). Diese Unternehmensumgebung wird durch Managementcomputer gemanagt, die verschiedene informationstechnologische (IT) Aufgaben auf den gemanagten Endpunkten ausführen. Diese Aufgaben können das Ausliefern oder Managen von Softwareapplikationen auf den Endpunkten umfassen oder können das Aufrechterhalten der Sicherheit der Endpunkte umfassen.
  • Es wird oft gewünscht eine Applikation mit einer spezifischen Konfiguration sicher an einen gemanagten Endpunkt auszuliefern. Es ist ferner wünschenswert, die Applikation auf dem gemanagten Endpunkt in einer sicheren und kontrollierbaren Art und Weise auszuführen, um beispielsweise Lizenzbeschränkungen zu erfüllen oder um einen Nutzer daran zu hindern unwissentlich die Konfiguration des Endpunkts zu ändern. Es kann ferner für die Applikation vorteilhaft sein, dass sie in einer portablen (portable) Weise ausgeliefert wird, so dass das korrekte Funktionieren der Applikation nicht von der speziellen Konfiguration des Endpunkts abhängig ist.
  • Was benötigt wird, sind Systeme und Verfahren um Software in einer sicheren, kontrollierbaren und portablen Art und Weise auf gemanagten Endpunkten zu installieren und zu warten.
  • ZUSAMMENFASSUNG
  • Das oben beschriebene Bedürfnis wird durch ein System, ein Verfahren und ein Computerprogrammprodukt zum Virtualisieren von Applikationen auf gemanagten Endpunkten unter Verwendung von Containern erfüllt. Ein gemanagter Endpunkt empfängt einen virtualisierten Container von einer IT-Automatisierungseinrichtung. Der virtualisierte Container beinhaltet eine Applikation und ein Virtualisierungsmodul. Das Virtualisierungsmodul umfasst Computerprogrammanweisungen zum Virtualisieren der Applikation. Ein Betriebssystem-API-Aufruf, der von der Applikation während der Ausführung erzeugt wird, wird abgefangen und ein Teil der Computerprogrammanweisungen wird auf der Grundlage des Betriebssystem-API-Aufrufs ausgeführt. Die Computerprogrammanweisungen modifizieren das Verhalten der Applikation, um die Datei- und die Datenvirtualisierung der Applikation zu bewirken. Ein virtualisierter Container (container) kann von einer IT-Automatisierungseinrichtung zusammen mit einem Agenten ausgeliefert und aktualisiert werden, um die Auflieferung und das Aktualisieren des virtualisierten Containers zu unterstützen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die 1 ist ein Übersichtsdiagramm, das in einer Ausführungsform eine Umgebung veranschaulicht, die eine informationstechnologische (IT) Automatisierungseinrichtung zum Ausliefern und Managen von Containern auf gemanagten Endpunkten 106 beinhaltet.
  • Die 2 ist ein Übersichtsdiagramm eines Computers, der in einer Ausführungsform als eine Einrichtung und/oder als ein gemanagter Endpunkt wirkt.
  • Die 3 ist ein Blockdiagramm, das in einer Ausführungsform einen gemanagten Endpunkt veranschaulicht.
  • Die 4 ist ein Blockdiagramm, das in einer Ausführungsform eine IT-Automatisierungseinrichtung veranschaulicht.
  • Die 5 ist ein Flussdiagramm, das in einer Ausführungsform ein Verfahren zum Virtualisieren einer Applikation unter Verwendung eines Containers veranschaulicht.
  • Die 6 ist ein Flussdiagramm, das in einer Ausführungsform ein Verfahren zum Managen von Containern in einer Unternehmensumgebung veranschaulicht.
  • Die Figuren zeigen Ausführungsformen der Erfindung ausschließlich für Zwecke der Veranschaulichung. Ein Fachmann wird aus der nachfolgenden Beschreibung leicht erkennen, dass alternative Ausführungsformen von den Strukturen und Verfahren, wie sie hierin veranschaulicht sind, verwendet werden können, ohne von den Prinzipien der hierin beschriebenen Erfindung abzuweichen.
  • DETAILLIERTE BESCHREIBUNG
  • Die 1 ist ein Übersichtsdiagramm, das in einer Ausführungsform eine Umgebung 100 veranschaulicht, einschließlich einer informationstechnologischen (IT) Automatisierungseinrichtung 102 (die „Einrichtung”), um die Container 108 an gemanagte Endpunkte 106 auszuliefern und zu managen. Die gemanagten Endpunkte 106, die auch als Endpunkte bezeichnet werden, sind Rechnergeräte, wie etwa Nutzer-Workstations oder Router. Die Einrichtung 102 kann konfiguriert sein, um verschiedene Arten Container 108 durch einen Operator auszuliefern und zu managen, wie etwa ein Mitglied eines IT Stabes. Die 1 zeigt eine Umgebung 100 mit einer Einrichtung 102 und gemanagten Endpunkten 106. Die Umgebung 100 kann jedoch tausende von gemanagten Endpunkten 106 enthalten, die mit der Einrichtung 102 kommunizieren. Ferner kann die Umgebung 100 mehrere Einrichtungen 102 beinhalten, möglicherweise mit einigen Einrichtungen, die für Backup- oder Lastausgleichszwecke verwendet werden. Die Einrichtung 102 und die gemanagten Endpunkte 106 kommunizieren durch ein Netzwerk 104, wie etwa das Internet oder ein Firmen-Intranet.
  • Die gemanagten Endpunkte 106 umfassen Container 108, die auch als virtuelle Container bezeichnet werden, die von der Einrichtung 102 bereitgestellt werden. Ein Container 108 kann eine Applikation enthalten, wie etwa einen Wortprozessor (word processor) oder ein Systemdienstprogramm (system utility), die auf dem gemanagten Endpunkt 106 laufen. Der Container 108 stellt eine Virtualisierung durch Hinzufügen einer Schicht zwischen der Applikation und dem Betriebssystem des gemanagten Endpunkts 106 bereit. Der Container 108 kann das Verhalten der Applikation modifizieren, so dass die Applikation und ihre Daten vom Rest des gemanagten Endpunkts 106 isoliert sind. Dies kann die Portabilität der Applikation erhöhen und hindert die Applikation daran, den Rest des gemanagten Endpunkts 106 negativ zu beeinflussen (z. B. über Schadsoftware (malware), die in der Applikation enthalten ist). Der Container 108 kann ferner die Nutzung der Applikation einschränken, um Lizenzbeschränkungen zu erfüllen oder aus Sicherheitsgründen oder aus anderen Compliance-Gründen. In einer Ausführungsform wird das Verhalten der Applikation modifiziert durch Abfangen von Aufrufen an eine API, die von der Applikation erzeugt werden, wobei die API von dem Betriebssystem bereitgestellt wird. Die Container 108 können von der Applikation 102 erzeugt werden und durch die Einrichtung 102 an die gemanagten Endpunkte 106 ausgeliefert werden. Ein einziger Container kann an viele Endpunkte 106 ausgeliefert werden und ein einziger Endpunkt kann mehrere Container aufweisen (z. B. für mehrere Applikationen).
  • Die 2 ist ein Übersichtsdiagramm eines Computers 200, der in einer Ausführungsform als eine Einrichtung 102 und/oder als ein gemanagter Endpunkt 106 agiert. Veranschaulicht ist zumindest ein Prozessor 202, der mit einem Chipsatz 204 verbunden ist. Ferner sind mit dem Chipsatz 204 ein Speicher 206, ein Speichergerät 208, eine Tastatur 210, ein Grafikadapter 212, ein Zeigegerät 214 und ein Netzwerkadapter 216 verbunden. Ein Display 218 ist mit dem Grafikadapter 212 verbunden. In einer Ausführungsform wird die Funktionalität des Chipsatzes 204 durch einen Speicher-Controller-Hub 220 und einen Ein-/Ausgabe-Controller-Hub 222 bereitgestellt. In einer anderen Ausführungsform ist der Speicher 206 direkt mit dem Prozessor 202 anstatt mit dem Chipsatz 204 verbunden.
  • Das Speichergerät 208 ist irgendein computerlesbares Speichermedium, wie etwa eine Festplatte, eine Compact-Disc-Read-Only-Memory (CD-ROM), eine DVD oder ein Festkörper-Speichergerät. Der Speicher 206 enthält Anweisungen und Daten, die von dem Prozessor 202 benutzt werden. Das Zeigegerät 214 kann eine Maus, eine Steuerkugel oder ein anderer Typ Zeigegerät sein und wird in Kombination mit der Tastatur 210 zum Eingeben von Daten in das Computersystem 200 benutzt. Der Grafikadapter 212 zeigt Bilder oder andere Informationen auf dem Display 218 an. Der Netzwerkadapter 216 koppelt das Computersystem 200 an ein lokales oder an ein Weitverkehrsnetzwerk.
  • Wie aus dem Stand der Technik bekannt ist, kann ein Computer 200 verschiedene und/oder weitere Komponenten, als die in der 2 gezeigten, aufweisen. Darüber hinaus können dem Computersystem 200 bestimmte veranschaulichte Komponenten fehlen. In einer Ausführungsform fehlen einem Computer 200, der als eine Einrichtung 102 wirkt, eine Tastatur 210, ein Zeigegerät 214, ein Grafikadapter 212 und/oder ein Display 218. Darüber hinaus kann das Speichergerät 208 lokal und/oder entfernt (remote) von dem Computer 200 sein (wie etwa in einem Speichernetzwerk (SAN, storage area network) verwirklicht sein).
  • Wie aus dem Stand der Technik bekannt ist, ist der Computer 200 ausgebildet, um Computerprogrammmodule auszuführen, um die hierin beschriebene Funktionalität bereit zu stellen. Wie hierin verwendet, bezieht sich der Ausdruck „Modul” auf Computerprogrammlogik, die verwendet wird, um die spezifische Funktionalität bereit zu stellen. Daher kann ein Modul in Hardware, Firmware und/oder Software implementiert werden. In einer Ausführungsform werden Programmmodule auf dem Speichergerät 208 gespeichert, in den Speicher 206 geladen und von dem Prozessor 202 ausgeführt.
  • Ausführungsformen von hierin beschriebenen Einheiten können andere und/oder verschiedene Module beinhalten als diejenigen, die hier beschrieben sind. Darüber hinaus kann die Funktionalität, die den Modulen zugeschrieben wird, durch andere oder verschiedene Module oder andere Ausführungsformen ausgeführt werden. Darüber hinaus lässt diese Beschreibung gelegentlich den Ausdruck „Modul” aus Gründen der Klarheit und Bequemlichkeit weg.
  • Die 3 ist ein Blockdiagramm, das eine Ausführungsform eines gemanagten Endpunkts 106 veranschaulicht. Wie oben erwähnt, kann der gemanagte Endpunkt 106 eine Nutzer-Workstation sein. Der gemanagte Endpunkt 106 führt ein Betriebssystem 302 aus, wie etwa Microsoft Windows, Vista, Mac OS X oder Linux. Das Betriebssystem 202 ist in der Lage verschiedene Applikationen ablaufen zu lassen und stellt verschiedene Applikationsprogrammschnittstellen (API, application program interface) Aufrufe bereit, um die Applikationen zu unterstützen. Beispiele von API Aufrufen, die von dem Betriebssystem (OS, operating system) bereitgestellt werden, umfassen Aufrufe zum Starten (launch) von Applikationen, zum Zugreifen auf Dateien und zum Erzeugen von Fenstern auf dem Display. Das Betriebssystem 302 umfasst ein Dateisystem 304 das verschiedene Systemdateien, Applikationen und Nutzerdaten speichern kann. In einer Ausführungsform ist das Dateisystem 304 auf einem Speichergerät 208 auf dem gemanagten Endpunkt 306 gespeichert.
  • Wie bereits oben erwähnt, können die Container 108 durch die Einrichtung 102 an einen gemanagten Endpunkt 106 ausgeliefert werden. Ein Container 108 ist in der Lage eine Applikation 324 auf dem gemanagten Endpunkt auszuführen, während er mittels Virtualisierung der Applikation eine darin enthaltene Umgebung bereitstellt. Ein gemanagter Endpunkt 106 kann mehrere Container 108A und 108B aufweisen. Ein Container 108 kann mehrere Applikationen 324 ausführen, obwohl die nachfolgende Diskussion eine einzige Applikation aus Klarheitsgründen verwendet.
  • Die Applikation 324 eines Containers 108 umfasst Applikationsdateien 314 und Applikationseinstellungen 320. Diese Applikationsdateien 314 umfassen verschiedene ausführbare Dateien, Applikationsdatendateien und Bibliotheken, die von der Applikation 324 zum Ausführen benötigt werden. Die Applikationseinstellungen 320 umfassen Einstellungen und Optionen für die Applikation 324, wie etwa Registry-Werte (registry values). Die Applikationseinstellungen 320 können ferner in Dateien gespeichert sein. Verschiedene Hintergrundprogramme, wie etwa Dämons (Hintergrundprogramme) oder Windows Services (Dienstprogramme) können ferner durch die Applikationsdateien 314 und/oder die Applikationseinstellungen 320 spezifiziert werden.
  • Ein Satz von Applikationsdateien 314 und Applikationseinstellungen 320 sind ursprünglich in einem Container 108 enthalten, aber die Applikationsdateien und die Applikationseinstellungen können über die Zeit durch die ausführende Applikation 324 modifiziert werden. In einer Ausführungsform schließen die Applikationsdateien 314 und die Applikationseinstellungen 320 all die Dateien und Einstellungen ein, die von der Applikation 324 des Containers 108 benötigt werden. Dies wird als ein „vollständig containerisierter” Container („fully containerized” container) bezeichnet. In einem Container 108, der nicht vollständig containerisiert ist, können einige der Dateien und Einstellungen, die von der Applikation 324 benutzt werden, außerhalb des Containers angeordnet sein (z. B. in einem Teil des Dateisystems 304, das auch von dem Betriebssystem 302 benutzt wird). Dies kann sinnvoll sein, um die Größe des Containers 108 zu reduzieren, kann aber zu geringerer Unabhängigkeit, Portabilität und Sicherheit des Containers führen.
  • In einer Ausführungsform sind die Applikationsdateien 314 und die Applikationseinstellungen 320 in einer Schattenkopie 316 innerhalb des Containers 108 gespeichert. Diese Schattenkopie 316 umfasst eine Verzeichnisstruktur, die von der Applikation 324 erwartet wird. In einer Ausführungsform ist die Schattenkopie 316 in einem Verzeichnis des Dateisystems 304 gespeichert, das für den Container 108 reserviert ist. Beispielsweise können in einem Windows-Betriebssystem die Dateien eines bestimmten Containers 108 alle in dem Verzeichnis „c:\containers\contain1” angeordnet sein. Eine bestimmte Bibliothek, die von dem Container 108 benötigt wird, kann gespeichert sein als „c:\containers\contain1\windows\system32\libxx.dll”, wenn die darin enthaltene Applikation 324 erwartet, dass die Bibliothek in „c:\wndows\system32\libxx.dll” zu finden ist. Eine Datei kann tatsächlich unter „c:\wndows\system32\libxx.dll” existieren, diese Datei ist jedoch nicht Teil des Containers 108 und wird von der Applikation 324 in einem vollständig containerisierten Container nicht benutzt.
  • Da nur bestimmte Dateien von der Applikation 324 benötigt werden, können einige Verzeichnisse der Schattenkopie 316, die normalerweise viele Dateien umfasst (zum Beispiel Systemdateiverzeichnisse), nur einige wenige. Dateien beinhalten. Zusätzlich können einige Verzeichnisse leer sein und für eine Verwendung verfügbar sein, wenn irgendwelche Dateien von der Applikation 324 erzeugt werden sollen. Leere Verzeichnisse stellen eine erwartete Verzeichnisstruktur für die Applikation 324 bereit. In einem Container 108, der nicht vollständig containerisiert ist, wird, wenn eine benötigte Datei nicht in der Schattenkopie 316 gefunden wird, danach in dem Rest des Dateisystems 304 gesucht.
  • Ein Container 108 umfasst eine initiale Nutzerschnittstelle 322 wie etwa einen Link, der verwendet werden kann, um die Applikation 324 zu starten. Ein Link zu einer geeigneten ausführbaren Datei innerhalb der Applikationsdateien 314 verhindert, dass der Nutzer zu einem Ort in der Schattenkopie 316 navigieren muss, um die Applikation 324 zu starten und erscheint aus der Perspektive des Nutzers als ob die Applikation direkt durch das Betriebssystem 302 ausgeführt wird. Die initiale Nutzerschnittstelle 322 kann ein Link, ein Shortcut (eine Verknüpfung), eine URL oder ein anderes Nutzerschnittstellenelement sein, das an einer geeigneten Stelle, wie etwa auf der Arbeitsoberfläche des Nutzers, platziert ist.
  • Die Membran 310 und das Virtualisierungsmodul 312 implementieren die Virtualisierungsfunktionalität des Containers 108 in Zusammenarbeit mit dem Containerinitialisierungsmodul 318. Die Virtualisierungsfunktionalität kann die Applikationsfunktionalität modifizieren (wie sie von den Applikationsdateien 314 und den Applikationseinstellungen 320 bereit gestellt wird), um beispielsweise Daten-Isolation, Container-Management oder eine Modifikation der Applikationsnutzerschnittstelle zu implementieren.
  • Das Containerinitialisierungsmodul 318 initialisiert die Virtualisierungsfunktionen des Containers 108. In einer Ausführungsform wird das Containerinitialisierungsmodul 318 aufgerufen, wenn eine Applikation aus geführt wird. Das Containerinitialisierungsmodul 318 bestimmt, ob die neu ausgeführte Applikation eine Applikation innerhalb eines Containers 108 ist oder ob es eine Applikation ist, die direkt in dem Betriebssystem 302 installiert ist (d. h. nicht in einem Container). Wenn festgestellt wird, dass es eine Applikation ist, die nicht in einem. Container 108 ist, dann ermöglicht das Containerinitialisierungsmodul 318 der Applikation normal ohne weitere Intervenierung abzulaufen. Falls festgestellt wird, dass die Applikation eine Applikation 324 innerhalb eines Containers 108 ist, dann identifiziert das Containerinitialisierungsmodul 318 den Container 108 und führt das Virtualisierungsmodul 312 (wird weiter unten beschrieben) dieses Container aus oder aktiviert das Virtualisierungsmodul 312 dieses Containers. Das Containerinitialisierungsmodul 318 kann dann die Ausführung der Applikation 324 ermöglichen und ablaufen.
  • Das Containerinitialisierungsmodul 318 ist in dem Betriebssystem 302 des gemanagten Endpunkts 106 installiert und kann von mehreren Containern 108 in dem gemanagten Endpunkt verwendet werden. In einer Ausführungsform wird das Containerinitialisierungsmodul 318 von dem Betriebssystem 302 benachrichtigt, jedes Mal wenn eine neue Applikation gestartet wird. Das Containerinitialisierungsmodul 318 kann sich in das Betriebssystem 302 einhaken, um diese Benachrichtigungen zu erhalten. In einer Ausführungsform überwacht das Containerinitialisierungsmodul 318 die Aktivität des Betriebssystems 302, um festzustellen, wenn eine neue Applikation gestartet wird. Das Containerinitialisierungsmodul 318 kann auf der Grundlage der Stelle der Applikation in dem Dateisystem 304 feststellen, ob eine Applikation Teil eines Containers 108 ist. In einer Ausführungsform kann das Containerinitialisierungsmodul 318 eine Liste von Signaturen von containerisierten Applikationen 324 aufrecht erhalten, die auf dem Endpunkt installiert sind und diese Liste zum Bestimmen, ob eine neu ausgeführte Applikation containerisiert ist, verwenden.
  • Das Virtualisierungsmodul 312 stellt die Virtualisierungsfunktionen für einen bestimmten Container 108 bereit. Das Virtualisierungsmodul 312 kann als eine Art Hypervisor (hypervisor) wirken, der die Applikation 324 managt. Das Virtualisierungsmodul 312 fügt eine Schicht zwischen die ausführende Applikation 324 und das Betriebssystem 302 ein, die das Kontrollieren und die Einkapselung der Applikation gemäß einer administrativen Strategie, wie sie oben beschrieben wurde, ermöglicht (zum Beispiel beschränken der Nutzung aus Sicherheitsgründen oder aus Lizenzierungsgründen, ändern der Erscheinungsform der Applikation, usw.). In einer Ausführungsform hakt sich das Virtualisierungsmodul 312 in verschiedene Betriebssystem-API-Aufrufe ein, um Aufrufe abzufangen und die gewünschten Operationen durchzuführen. In einer Ausführungsform läuft das Virtualisierungsmodul 312 in dem Hintergrund ab und überwacht die Applikation, um Betriebssystem-API-Aufrufe abzufangen. Das Virtualisierungsmodul 312 kann konfiguriert sein, um ausschließlich Betriebssystem-API-Aufrufe von der Applikation 324 abzufangen, die dem gleichen Container 108 zugeordnet sind, um irgendeine zusätzliche Last des Prozessors 202 zu minimieren oder in anderer Weise die Systemleistungsfähigkeit herabzusetzen.
  • In einer Ausführungsform fängt das Virtualisierungsmodul 312 die Betriebssystem-API-Aufrufe der Applikation 324 des Containers 108 ab. Falls beispielsweise die Applikation 324 einen Betriebssystem-API-Aufruf erzeugt, um eine Datei auf das Dateisystem 304 zu schreiben, wird dieser Betriebssystem-API-Aufruf von dem Virtualisierungsmodul 312 abgefangen. Der Code des Virtualisierungsmoduls 312 kann dann bewirken, dass das Schreiben an einer verschiedenen Stelle geschieht. Dies kann gemacht werden, damit die Dateien dem Container 108 innerhalb der Schattenkopie 316 zugeordnet bleiben und isoliert von dem Rest des Dateisystems 304 bleiben und auch um für den Nutzer den Anschein aufrecht zu erhalten, dass die Datei an die Stelle geschrieben wird an die sie normalerweise geschrieben würde, wenn die Applikation nicht in einem Container wäre. Falls beispielsweise der Nutzer eine Datei auf „c:\program_files\wordprocessor\userfiles\doc1.txt” speichert und die Applikation deshalb einen Betriebssystem-API-Aufruf erzeugt, um eine Datei auf „c:\program_files\wordprocessor\userfiles\doc1.txt” schreibt, kann das Virtualisierungsmodul 312 den Aufruf abfangen und den Dateinamenparameter des Aufrufs modifizieren, so dass die Datei tatsächlich auf „c:\containers\contain1\program_files\wordprocessor\userfiles\doc1.txt” beschreiben wird. Das Virtualisierungsmodul 312 kann ähnliche Umleitungen für andere Dateioperationen durchführen, wie etwa das Datei-Lesen. Diese Umleitungen können verschieden durchgeführt werden, auf der Grundlage ob der Container vollständig enthalten oder teilweise enthalten ist, wie oben erwähnt.
  • Das Virtualisierungsmodul 312 kann ferner weitere Arten von Betriebssystem-API-Aufrufen abfangen und modifizieren. Eine Art von Betriebssystem-API-Aufruf, der modifiziert werden kann, ist ein Aufruf, um auf dem Display 218 des gemanagten Endpunkts zu zeichnen. Zum Beispiel kann die Titelzeile des Applikationsfensters modifiziert werden, um zu anzuzeigen, dass die Applikation 324 in einem Container 108 läuft. Das Virtualisierungsmodul 312 kann ferner die Nutzung der Applikation 324 aus Sicherheitsgründen oder Lizenzierungsgründen einschränken. Falls zum Beispiel ein Nutzer versucht eine möglicherweise gefährliche, ausführbare Datei mit einer das Netz durchsuchenden Applikation (web browsing application herunter zu laden, kann die Betriebssystem-API-Funktion, die von dem Browser aufgerufen wird, um die Datei von der entfernten Stelle abzufragen, abgefangen werden und die Operation kann blockiert werden oder zusätzliche Überprüfungen können auf der Datei durchgeführt werden, bevor bestimmt wird, ob dem Betriebssystem-API-Aufruf erlaubt wird fortzufahren. Das Containerinitialisierungsmodul 318 kann eine Initialisierungsfunktion in dem Virtualisierungsmodul 312 aufrufen, wenn die Applikation 324 ausgeführt wird. Die Initialisierungsfunktion kann eine Nutzerumgebung für einen bestimmten Nutzer aufstellen, wenn die Applikation 324 ausgeführt wird und kann die Umgebung bereinigen, wenn die Applikation beendet ist. Die Initialisierungsfunktion kann erforderliche Services (Dienstprogramme) und Dämone (Hintergrundprogramme) starten.
  • Die Membran 310 kann Informationen beinhalten, die das Verhalten des Containers 108 spezifizieren. Die Informationen in der Membran 310 können von dem Virtualisierungsmodul 312 gelesen werden, um zu bestimmen, welche Aktionen das Virtualisierungsmodul 312 ergreifen sollte, wenn es API Aufrufe abfängt oder die Nutzerumgebung initialisiert. Die Membran 310 kann verschiedene Nutzerpräferenzen für die Applikation 324 spezifizieren und kann verschiedene Modifikationen, die an dem Erscheinungsbild der Applikation gemacht werden sollen, spezifizieren. Für eine Web-Browser-Applikation (web browser application) kann die Membran eine Liste von weiß und/oder schwarz gelisteten Websites (Internetseiten) umfassen. Wenn ein API Aufruf von der Web-Browser-Applikation erzeugt wird, um. Daten von einer Website abzufragen, die von dem Nutzer spezifiziert ist, kann das Virtualisierungsmodul 312 den Aufruf abfangen und eine Liste von Websites in der Membran 310 zu überprüfen, um zu bestimmen, ob die Website schwarz gelistet ist, bevor es dem API Aufruf erlaubt wird vorzufahren.
  • Die Membran 310 kann Nutzungsrestriktionen auf der Basis von Softwarelizenzen oder einer Firmenstrategie umfassen. Das Virtualisierungsmodul 312 kann diese Restriktionen abfragen, um zu bestimmen, ob ein bestimmter API Aufruf erlaubt wird oder ob der Applikation erlaubt wird, überhaupt ausgeführt zu werden. Die Membran 310 kann ferner Nutzungsinformationen speichern, die von dem Virtualisierungsmodul 312 gesammelt werden. Zum Beispiel kann in die Web-Browser-Applikation jedes Mal, wenn der Nutzer eine Website besucht, das Virtualisierungsmodul, den Namen der Website in der Membran 310 speichern.
  • Der Agent 306 kommuniziert mit der Einrichtung 102 über das Netzwerk 104 und führt verschiedene Managementfunktionen in dem gemanagten Endpunkt 106 aus, wie durch die Einrichtung 102 angewiesen. Der Agent 306 stellt ferner Informationen von dem gemanagten Endpunkt 106 für die Einrichtung 102 bereit. Der Agent 306 kann auf dem gemanagten Endpunkt 106 als Teil eines initialen Einrichtungsprozesses auf dem Endpunkt installiert werden. Der Agent 306 kann das Containerinitialisierungsmodul 318 in dem gemanagten Endpunkt 306 installieren (zum Beispiel durch Herunterladen des Moduls von der Einrichtung 102). Der Agent 306 kann ferner die Container 108 auf dem gemanagten Endpunkt 106 installieren, die von der Einrichtung 102 empfangen werden. Die Schattenkopie 316 von dem Container 108 kann, wie oben erwähnt, an einer fest vorgesehenen Stelle für Speicherkopien von Containern gespeichert werden. Die Membran 310 und das Virtualisierungsmodul 312 des Containers 108 können an einer bestimmten Stelle in dem Dateisystem 304 gespeichert werden, die nicht von einem Nutzer beschreibbar ist.
  • Wie durch die Einrichtung 102 angewiesen, kann der Agent 306 ferner den Container aktualisieren. Beispielsweise kann die Einrichtung 102 einen Befehl an den Agenten 306 schicken, um, wie oben beschrieben, bestimmte Websites zu der schwarzen Liste der Web-Browser-Applikation hinzuzufügen. Reagierend auf den Befehl kann der Agent 306 die Daten in der Membran 310 modifizieren, um die Websites als schwarz gelistete Websites hinzuzufügen. Darüber hinaus kann der Agent 306 Schalter in der Membran 310 setzen, um die Applikation 324 zum Ausführen freizugeben oder zu sperren, auf der Grundlage von Befehlen der Einrichtung 102. Dies ermöglicht es einem Administrator die Ausführung einer Applikation 324 in einem Endpunkt 106 in einfacher Weise freizugeben oder zu sperren (einschließlich dem sofortigen Abschalten einer Applikation während sie ausgeführt wird). Der Agent 306 kann ferner einen Container 108 von dem Endpunkt 106 entfernen. Wenn die Dateien, die dem Container 108 zugeordnet sind, auf die Schattenkopie 316 begrenzt sind, kann das Entfernen ein einfaches Löschen der Schattenkopie umfassen (zusammen mit dem Entfernen der Membran 316 und des Virtualisierungsmoduls 312), ohne das Betriebssystem 302 oder andere Applikationen zu beeinflussen.
  • Aktualisierungen der Virtualisierungsmodule 312 können mitunter für die Verteilung an die Einrichtung 102 erzeugt und gespeichert werden. Der Agent 306 kann gelegentlich die Applikation 102 nach aktualisierten Versionen des Virtualisierungsmoduls 312 in den Containern 108 an dem Endpunkt 106 überprüfen. Diese Überprüfung kann beispielsweise durch Vergleichen von Versionsnummern oder Dateisignaturen durchgeführt werden. Wenn der Agent 306 feststellt, dass ein aktualisiertes Virtualisierungsmodul 312 verfügbar ist, kann der Agent das Vutualisierungsmodul herunterladen und es anstelle des gegenwärtigen Virtualisierungsmoduls installieren. In ähnlicher Weise kann der Agent 306 die Membran 310, die Applikationsdateien 314 und die Applikationseinstellungen 316 aktualisieren.
  • Wie oben beschrieben, kann der Gebrauch des Containers 108 für die Virtualisierungsapplikationen den Nutzer daran hindern gefährliche oder verbotene Aktivitäten durchzuführen und kann die Nutzung der Applikation 324 überwachen und begrenzen. Die Container 108 können ferner alle Auswirkungen der Applikation 324 (einschließlich der Auswirkungen von Schadstoffware (Malware)) innerhalb der Schattenkopie 316 halten und den Rest des gemanagten Endpunkts 106 und die Umgebung 100 schützen. Die Container 108 können ferner die Portabilität von Applikationen 324 durch Bereitstellen notwendiger Dateien für die Applikationen innerhalb der Schattenkopie 316 bei der Auslieferung vergrößern. In einer Ausführungsform kann ein Container 108 auf einem gemanagten Endpunkt 306 von einem portablen Speichergerät installiert werden.
  • In einer Ausführungsform ist die 4 ein Blockdiagramm, das eine IT Automatisierungseinrichtung 102 veranschaulicht. Wie oben erwähnt, kann die Einrichtung 104 verwendet werden, um Container 108 für die gemanagten Endpunkten 106 zu erzeugen, auszuliefern und zu managen.
  • In einer Ausführungsform wird das Containererzeugungsmodul 402 verwendet, um Container 108, die an gemanagte Endpunkte 106 ausgeliefert werden sollen, zu erzeugen. Ein Systemadministrator kann ein Installationsprogramm für eine bestimmte Applikation 324 bereitstellen (zum Beispiel eine Textverarbeitungs-Applikation (word processing application)) an das Containererzeugungsmodul 402. Dieses Installationsprogramm kann Pakete einschließen, die Applikationsdateien zusammen mit einem Installationsskript oder einem ausführbaren Programm beinhalten. Ein Beispiel ist eine „MSI”-Datei, die von dem Windows Installer benutzt wird, der von der Microsoft Corporation hergestellt wurde. Ein Systemadministrator kann ferner zusätzliche Informationen für das Containererzeugungsmodul 402 bereitstellen, um es in die Lage zu versetzten das Installationsprogramm auszuführen und einen Container 108 zu erzeugen. Die zusätzlichen Informationen können das Betriebssystem spezifizieren, unter dem die Installation läuft (zum Beispiel Microsoft Windows) und verschiedene Optionen oder Parameter, die dem Installationsprogramm bereitgestellt werden sollen. Die zusätzlichen Informationen können ferner eine Staging-Maschine (staging machine) spezifizieren (zum Beispiel unter Verwendung einer IP Adresse), wo das Installationsprogramm laufen können soll, um den Container 108 zu erzeugen. In einer Ausführungsform kann die Staging-Maschine die Einrichtung 104 selber sein.
  • Das Containererzeugungsmodul 402 kann ein Einfangmodul (capture module) 414 umfassen, das verschiedene Ereignisse während der Ausführung des Installationsprogramms auf der Staging-Maschine erfassen kann. Das Einfangmodul 414 erfasst verschiedene Dateien, die durch die Installation (zum Beispiel Applikationsprogramme oder Bibliotheken) und ihre Orte innerhalb des Dateisystems erzeugt werden. Das Einfangmodul 414 erfasst ferner Modifikationen, die an Einstellungen in der Umgebung gemacht wurden, wie etwa Einstellungen, die in einem Registry gespeichert sind. In einer Ausführungsform erfasst das Einfangmodul 414 einige oder alle der Eingabe- oder Ausgabeoperationen des Installationsprogramms. Das Einfangmodul 414 kann die Laufzeitlogik des Installationsprogramms beobachten und kann feststellen, welche Dateien, Bibliotheken oder Einstellungen von der Applikation benötigt werden. Zum Beispiel kann das Einfangmodul 414 das Installationsprogramm beobachten, um die Anwesenheit von bestimmten Bibliotheken zu überprüfen, selbst wenn diese Bibliotheken nicht von dem Installationsprogramm erzeugt worden sind. Das Einfangmodul 414 kann ferner Services oder andere Einheiten, die während der Installation erzeugt wurden, beobachten und einfangen (capture). In einer Ausführungsform hakt sich das Einfangmodul 414 in verschiedene Systemaufrufe ein, um seine Überwachungs- und Einfangfunktionen durchzuführen.
  • Das Containererzeugungsmodul 402 erzeugt eine Schattenkopie 316 auf der Grundlage von Informationen des Einfangmoduls 414. Die Schattenkopie 316 umfasst verschiedene Dateien, Einstellungen, Services und andere Einheiten, die von dem Installationsprogramm, wie von dem Einfangmodul 414 bestimmt, erzeugt werden. Die Schattenkopie 316 kann ferner andere Dateien oder Einstellungen umfassen, die von der Applikation benötigt werden. Wenn der Container 108 konfiguriert ist, dass er, wie oben beschrieben, ein „vollständig enthaltener” Container („fully contained” container) ist, dann können all diese Dateien darin enthalten sein, wenn er nicht „vollständig enthalten” („fully contained”) ist, dann können Dateien, die wahrscheinlich bereits in dem gemanagten Endpunkt existieren (zum Beispiel in den Betriebssystemverzeichnissen) von der Schattenkopie 316 weggelassen werden.
  • In einer Ausführungsform kann das Containerzeugungsmodul 402 ferner ein Virtualisierungsmodul 312 und eine Membran 316 empfangen. Das Virtualisierungsmodul 312, das Code zum Modifizieren verschiedener API Aufrufe und zum Durchführen anderer Funktionen enthält, kann unter Verwendung von Standard- oder kundenspezifischen Entwicklungswerkzeugen erzeugt und kompiliert werden. Die Membran 310 kann durch Speichern verschiedener Containereinstellungen, die von einem Systemadministrator in einem bestimmten Format gespeichert werden, das von dem Virtualisierungsmodul 312 verstanden wird, gespeichert werden. In einer Ausführungsform packt das Containererzeugungsmodul 302 die Schattenkopie 316, das Virtualisierungsmodul 312 und die Membran 310 zusammen, um einen Container 108 zu bilden. Das Containererzeugungsmodul 402 kann den erzeugten Container 108 in der Containerdatenbank 410 für eine spätere Auslieferung speichern.
  • Die Containerdatenbank 410 umfasst die Container 108, die von dem Containererzeugungsmodul 402 erzeugt werden. Dies kann eine Schattenkopie 316 (einschließlich von Dateien und Einstellungen), ein Virtualisierungsmodul 312 und eine Membran 310 umfassen. Sie kann ferner verschiedene Attribute (attribute) für jeden Container 108 umfassen, wie etwa den Namen der Applikation innerhalb des Containers und die mögliche Plattform und die Betriebssysteme, auf welchen der Container laufen kann. Ein Systemadministrator kann auf die Containerdatenbank 410 zugreifen und kann basierend auf Attributen suchen, wann ein Container 108 zum Ausliefern an den Endpunkt 106 ausgewählt wird.
  • Das Auslieferungsmodul 406 liefert die Container 108, die in der Containerdatenbank 410 gespeichert sind, an verschiedene gemanagte Endpunkte aus. Die Auslieferungen können individuell von dem Systemadministrator spezifiziert werden oder können auf der Grundlage eines Skripts oder anderer Kriterien automatisiert werden. Ein einziger Container 108 kann an tausende gemanagte Endpunkte 106 ausgeliefert werden. Das Auslieferungsmodul 406 installiert einen Container 108 in einem gemanagten Endpunkt 106 und konfiguriert ihn, so dass die Applikation 324 innerhalb des Containers in einfacher Weise von einem Benutzer des gemanagten Endpunktes 106 ausgeführt werden kann. Die Auslieferung kann auch durch einen Nutzer eines gemanagten Endpunkts 106 initiiert werden. In diesem Fall kann der Nutzer die Einrichtung 102 kontaktieren und eine Auslieferung anfordern. Der Nutzer kann eine sich selbst ausführende Datei herunterladen, die den Container 108 einschließlich der Schattenkopie 316 der Membran 310 und des Virtualisierungsmoduls 312 auf dem gemanagten Endpunkt 306 installiert.
  • Das Auslieferungsmodul 406 kann mit dem Agenten 306 in dem gemanagten Endpunkt 106 kooperieren, um den Container 108 auszuliefern. Zum Beispiel kann das Auslieferungsmodul 406 einen Container über das Netzwerk 104 an den Agenten 306 schicken. Der Agent 306 platziert die Schattenkopie 316 an einen bestimmten Ort, der, wie oben beschrieben, für den Container in dem Dateisystem 312 bestimmt ist Der Agent 306 platziert ferner die Membran 310 und das Virtualisierungsmodul 312 an geeigneten Stellen. Der Agent 306 erzeugt ferner die initiale Nutzerschnittstelle 320 durch Hinzufügen einer Verknüpfung (shortcut) auf die Arbeitsoberfläche des Nutzers.
  • Der Containermanager 408 managt die Container 108, die an die gemanagten Endpunkte 106 ausgeliefert worden sind. Der Containermanager 408 kann die Container durch die Agenten 306 in dem gemanagten Endpunkt 106 managen. Der Containermanager 408 kann Befehle zum Freigeben oder Sperren eines Containers 108 senden, um Nutzungseinschränkungen von Applikationen zu erzwingen. Dies bewirkt, dass Daten in der Membran 310, wie oben beschrieben, modifiziert werden. Der Containermanager 408 kann Nutzerdaten von der Membran 310 abfragen. Der Containermanager 408 kann aktualisierte Versionen von Membranen 310, von Virtualisierungsmodulen 312 oder von Schattenkopien 316 bereitstellen. Diese Aktualisierungen können das Verhalten der Applikation 324 oder der Virtualisierungsfunktionen des Containers 108, wie oben beschrieben, modifizieren. Der Containermanager 408 kann ferner den Container auf dem gemanagten Endpunkt neu beschreiben (re-flash), um den Container in seinen initialen Zustand, in dem er ausgeliefert wurde, zurück zu setzen. Dies kann sinnvoll sein, für Applikationen, die beginnen schlecht zu funktionieren und die nicht einfach repariert werden können. Das neue Beschreiben (re-flashing) kann durch ein Neuausliefern des Containers an den gemanagten Endpunkt implementiert werden.
  • Das Nutzerschnittstellenmodul 412 kann verwendet werden, um das Containererzeugungsmodul 402, das Auslieferungsmodul 406 oder den Containermanager 408 durch einen Systemadministrator zu kontrollieren. Durch das Nutzerschnittstellenmodul 412 kann in der Umgebung 100 ein Systemadministrator die Container für gemanagte Endpunkte erzeugen, ausliefern und managen.
  • Die 5 ist ein Flussdiagramm, das in einer Ausführungsform ein Verfahren zum Virtualisieren einer Applikation unter Verwenden eines Containers veranschaulicht. Ein Nutzer eines gemanagten Endpunkts 106 führt eine containerisierte Applikation 324 aus (das heißt, eine Applikation, die einen Container 108 aufweist). Das Containeridentifizierungsmodul 318 identifiziert bei 502 die Ausführung der containerisierten Applikation 324 in einer Ausführungsform. Bei 504 initialisiert das Containerinitialisierungsmodul 318 die Virtualisierung der Applikation 324 durch Ausführen des Virtualisierungsmoduls 312 des Containers 108. Das Virtualisierungsmodul 312 kann einige Einstellungsfunktionen durchführen, wie etwa ein Starten von benötigten Services oder das Vorbereiten der Nutzerumgebung. Das Virtualisierungsmodul 312 fingt bei 506 die API Aufrufe von der ausführenden Applikation 324 beispielsweise durch einhaken der Aufrufe oder Überwachung der Aufrufe ab. Für einen abgefangenen API Aufruf bestimmt das Virtualisierungsmodul 312 bei 508 eine Handlung, die bezüglich des API Aufrufs durchzuführen ist. Zum Beispiel kann das Virtualisierungsmodul 312 bestimmen, einem Aufruf zu ermöglichen, ungehindert fort zu schreiten, den Aufruf zu blockieren, die Parameter des Aufrufs zu modifizieren oder andere API Aufrufe zu erzeugen. Das Virtualisierungsmodul 312 kann Informationen in der Membran 310 verwenden, um die Handlung, die durchzuführen ist, festzulegen. Das Virtualisierungsmodul 312 kann dann die bestimmte Aktion bei 510 durchführen.
  • Die 6 ist ein Flussdiagramm, das in einer Ausführungsform ein Verfahren zum Managen der Container 108 in einer Unternehmungsumgebung 100 veranschaulicht. Das Containererzeugungsmodul 402 wird verwendet, um bei 602 einen Container für eine Applikation zu erzeugen, wobei der Container 108 eine Schattenkopie 316 mit Applikationsdateien und einem Virtualisierungsmodul 312 beinhaltet, um die Funktionalität bereitzustellen die Applikation zu virtualisieren. Die Schattenkopie 312 kann durch Ausführen eines Applikationsinstallationsprogramms auf einer Staging-Maschine erzeugt werden. Der Container 108 wird bei 604 an einen gemanagten Endpunkt 106 unter Verwendung des Auslieferungsmoduls 406 ausgeliefert. Das Ausliefern kann durch einen Nutzer des gemanagten Endpunkts 106 initiiert werden. Bei 606 werden die Container 108 auf den gemanagten Endpunkten 106 durch den Containermanager 408 gemanagt. Das Management kann zum Beispiel umfassen, das Freigeben eines Containers 108, das Sperren eines Containers, das Abfragen von Nutzungsinformationen von dem Container oder das Aktualisieren des Containers (einschließlich der Applikation 324, des Virtualisierungsmoduls 312 und der Membran 310).
  • Die obige Beschreibung ist aufgenommen, um die Operation bevorzugter Ausführungsformen zu veranschaulichen und ist nicht beabsichtigt, den Geltungsbereich der Erfindung zu beschränken. Der Geltungsbereich der Erfindung ist nur durch die nachfolgenden Ansprüche begrenzt. Aus der obigen Diskussion sind für den Fachmann des relevanten Gebiets viele Variationen offensichtlich, die jedoch von dem Geist und dem Gültigkeitsbereich der Erfindung umfasst sind.

Claims (19)

  1. Ein computerimplementiertes Verfahren zum Virtualisieren von Applikationen auf einem Computer unter Verwendung von Containern, das Verfahren aufweisend: Empfangen eines virtualisierten Containers von einem entfernten Computer, wobei der virtualisierte Container eine Applikation und ein Virtualisierungsmodul umfasst, wobei das Virtualisierungsmodul ferner Computerprogrammanweisungen zum Virtualisieren der Applikation umfasst; Abfangen eines Betriebssystem Applikationsprogrammschnittstellen-(API)Aufrufs, der von der Applikation während der Ausführung der Applikation erzeugt wurde; und Ausführen eines Teils der Computerprogrammanweisungen des Virtualisierungsmoduls auf der Grundlage des Betriebssystem-API-Aufrufs, wobei die Computerprogrammanweisungen ein Verhalten der Applikation modifizieren, um eine Virtualisierung der Applikation zu bewirken.
  2. Das computerimplementierte Verfahren nach Anspruch 1, ferner aufweisend: Bestimmen, dass die Applikation das Ausführen begonnen hat; und Reagierend auf das Bestimmen, dass die Applikation das Ausführen begonnen hat Durchführen einer Initialisierungsfunktion, die das Einstellen einer Umgebung für einen Nutzer der Applikation, die in dem virtualisierten Container enthalten ist, umfasst.
  3. Das computerimplementierte Verfahren nach Anspruch 1, wobei der ausgeführte Teil der Computerprogrammanweisungen die Applikation daran hindert, auf Schadsoftware zuzugreifen.
  4. Das computerimplementierte Verfahren nach Anspruch 1, ferner aufweisend: Neubeschreiben (re-flashing) des virtualisierten Containers, um den virtualisierten Container in seinen initialen Zustand zurückzusetzen.
  5. Das computerimplementierte Verfahren nach Anspruch 1, ferner aufweisend: Bestimmen, dass das Ausführen einer neuen Applikation auf dem Computer gestartet hat; Bestimmen, dass die neue Applikation Teil eines virtualisierten Containers ist; und reagierend auf das Bestimmen, dass die neue Applikation Teil des virtualisierten Containers ist, Einhaken der Computerprogrammanweisungen in geeignete Betriebssystem-API-Aufrufe zum Virtualisieren der Applikation.
  6. Ein computerimplementiertes Verfahren zum Bereitstellen virtualisierter Applikationen an gemanagte Endpunkte in einer Rechnerumgebung, das Verfahren aufweisend: Ausliefern eines Agenten an einen gemanagten Endpunkt, wobei der Agent ausgebildet ist, um auf dem gemanagten Endpunkt ausgeführt zu werden, um das Ausliefern virtualisierter Container an den Endpunkt zu unterstützen; und Reagierend auf den Agenten, Ausliefern eines virtualisierten Containers, der eine Applikation enthält, an den gemanagten Endpunkten, wobei der virtualisierte Container Computerprogramm anweisungen beinhaltet, die, wenn sie auf dem gemanagten Endpunkt ausgeführt werden, die Applikation virtualisieren, wobei das Virtualisieren umfasst: Abfangen eines Betriebssystem-Applikationsprogrammschnittstellen-(API)Aufrufs, der von der Applikation während der Ausführung der Applikation erzeugt wird; und Modifizieren eines Verhaltens der Applikation, um eine Virtualisierung der Applikation bewirken.
  7. Das computerimplementierte Verfahren nach Anspruch 6, weiter aufweisend: Aktualisieren des an den gemanagten Endpunkt ausgelieferten virtualisierten Containers, wobei das Aktualisieren das Bereitstellen aktualisierter Computerprogrammanweisungen an den gemanagten Endpunkts zum Virtualisieren der Applikation umfasst, wobei die aktualisierten Computerprogrammanweisungen eine aktualisierte administrative Strategie der Applikation implementieren.
  8. Ein System zum Virtualisieren von Applikationen auf einem Computer unter Verwendung von Containern, das System umfassend: Ein computerlesbares Speichermedium, das ausführbare Computerprogrammmodule speichert, aufweisend: Ein Modul zum Empfangen eines virtualisierten Containers von einem entfernten Computer, wobei der virtualisierte Container eine Applikation und ein Virtualisierungsmodul umfasst, wobei das Virtualisierungsmodul Computerprogrammanweisungen zum Virtualisieren der Applikation umfasst; ein Modul zum Abfangen eines Betriebssystem: Applikationsprogrammschnittstellen-(API)Aufrufs, der während der Ausführung der Applikation von der Applikation erzeugt wird; und ein Modul zum Ausführen eines Teils der Computerprogrammanweisungen des Virtualisierungsmoduls auf der Grundlage des Betriebssystem-API-Aufrufs, wobei die Computerprogrammanweisungen ein Verhalten der Applikation modifizieren, um eine Virtualisierung der Applikation zu bewirken.
  9. Das System nach Anspruch 8, ferner aufweisend: Ein Modul zum Bestimmen, dass das Ausführen der Applikation gestartet hat; und ein Modul, um, reagierend auf das Bestimmen, dass das Ausführen der Applikation gestartet hat, eine Initialisierungsfunktion durchführen, die das Einstellen einer Umgebung für einen Nutzer der Applikation, die in dem virtualisierten Container enthalten ist, umfasst
  10. Das System nach Anspruch 8, wobei der ausgeführte Teil der Computerprogrammanweisungen verhindert, dass die Applikation auf Schadsoftware zugreift.
  11. Das System nach Anspruch 8, ferner aufweisend: Ein Modul zum Neubeschreiben (re-flashing) des virtualisierten Containers, um den virtualisierten Container in seinen initialen Zustand zurückzusetzen.
  12. Das System nach Anspruch 8, ferner aufweisend: Ein Modul zum Bestimmen, dass das Ausführen einer neuen Applikation auf dem Computer gestartet hat; ein Modul zum Bestimmen, dass die neue Applikation ein Teil eines virtualisierten Containers ist; und ein Modul, um, reagierend auf das Bestimmen, dass die neue Applikation Teil des virtualisierten Containers ist, die Computerprogrammanweisungen zum Virtualisieren der Applikation in geeignete Betriebssystem-API-Aufrufe einzuhaken.
  13. Ein System zum Bereitstellen virtualisierter Applikationen an gemanagte Endpunkte in einer Rechnerumgebung, wobei das System eine informationstechnologischer (TI) Einrichtung aufweist, zum: Ausliefern eines Agenten an einen gemanagten Endpunkt, wobei der Agent zum Ausführen auf dem gemanagten Endpunkt ausgebildet ist, um das Ausliefern virtualisierter Container an die Endpunkte zu unterstützen; und reagierend auf den Agenten, Ausliefern eines virtualisierten Containers, der eine Applikation für den gemanagten Endpunkt enthält, wobei der virtualisierte Container Computerprogrammanweisungen umfasst, die, wenn sie von dem gemanagten Endpunkt ausgeführt werden, die Applikation virtualisieren, wobei die Virtualisierung umfasst: Abfangen eines Betriebssystem-Applikationsprogrammschnittstellen-(API)Aufrufs, der von der Applikation während dem Ausführen der Applikation erzeugt wird; und Modifizieren eines Verhaltens der Applikation, um eine Virtualisierung der Applikation zu bewirken.
  14. Das System nach Anspruch 13, wobei die IT-Einrichtung ferner konfiguriert ist zum: Aktualisieren des an den gemanagten Endpunkt ausgelieferten virtualisierten Containers, wobei das Aktualisieren das Bereitstellen aktualisierter Computerprogrammanweisungen an gemanagten Endpunkt zum Virtualisieren der Applikation umfasst, wobei die aktualisierten Computerprogrammanweisungen eine aktualisierte administrative Strategie der Applikation implementieren.
  15. Ein Computerprogrammprodukt, das ein computerlesbares Speichermedium aufweist, das ausführbare Computerprogrammanweisungen aufweist, die zum Virtualisieren von Applikationen auf eifern Computer unter Verwendung von Containern gespeichert sind, aufweisend: Ein Modul zum Empfangen eines virtualisierten Containers von einem entfernten Computer, wobei der virtualisierte Container eine Applikation und ein Virtualisierungsmodul umfasst, wobei ferner das Virtualisierungsmodul Computerprogrammanweisungen zum Virtualisieren der Applikation umfasst; ein Modul zum Abfangen eines Betriebssystem-Applikationsprogrammschnittstellen-(API)Aufrufs, der von der Applikation während der Ausführung der Applikation erzeugt wird; und ein Modul zum Ausführen eines Teils der Computerprogrammanweisungen des Virtualisierungsmoduls auf der Grundlage des Betriebssystem-API-Aufrufs, wobei die Computerprogrammanweisungen ein Verhalten der Applikation modifizieren, um eine Virtualisierung der Applikation zu bewirken.
  16. Das Computerprogrammprodukt nach Anspruch 15, ferner aufweisend: Ein Modul zum Bestimmen, dass das Ausführen der Applikation gestartet hat; und ein Modul, um, reagierend auf das Bestimmen, dass das Ausführen der Applikation gestartet hat, eine Initialisierungsfunktion durchführt, die das Einstellen einer Umgebung für einen Nutzer der Applikation, die in dem virtualisierten Container enthalten ist, umfasst.
  17. Das Computerprogrammprodukt nach Anspruch 15, wobei der ausgeführte Teil der Computerprogrammanweisungen die Applikation daran hindert, auf Schadsoftware zuzugreifen.
  18. Das Computerprogrammprodukt nach Anspruch 15, weiterhin aufweisend: Ein Modul zum Neubeschreiben (re-flashing) des virtualisierten Containers, um den virtualisierten Container in seinen initialen Zustand zurückzusetzen.
  19. Das Computerprogrammprodukt nach Anspruch 15, weiterhin aufweisend: Ein Modul zum Bestimmen, dass das Ausführen einer neuen Applikation auf dem Computer gestartet hat; ein Modul zum Bestimmen, dass die neue Applikation Teil eines virtualisierten Containers ist; und ein Modul, um, reagierend auf das Bestimmen, dass die neue Applikation Teil eines virtualisierten Containers ist, Computerprogrammanweisungen zum Virtualisieren der Applikation in geeignete Betriebssystem-API-Aufrufe einhakt.
DE112009002168T 2008-09-09 2009-09-09 Auslieferung und Management von virtuellen Containern Withdrawn DE112009002168A5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US9553808P 2008-09-09 2008-09-09
US61/095,538 2008-09-09
PCT/US2009/056406 WO2010030703A1 (en) 2008-09-09 2009-09-09 Deployment and management of virtual containers

Publications (2)

Publication Number Publication Date
DE112009002168T5 true DE112009002168T5 (de) 2012-01-12
DE112009002168A5 DE112009002168A5 (de) 2012-03-15

Family

ID=41800268

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112009002168T Withdrawn DE112009002168A5 (de) 2008-09-09 2009-09-09 Auslieferung und Management von virtuellen Containern

Country Status (5)

Country Link
US (2) US8381231B2 (de)
CN (1) CN102150105B (de)
DE (1) DE112009002168A5 (de)
GB (1) GB2475011B (de)
WO (1) WO2010030703A1 (de)

Families Citing this family (153)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112009002168A5 (de) * 2008-09-09 2012-03-15 Kace Networks, Inc. Auslieferung und Management von virtuellen Containern
FR2953611A1 (fr) * 2009-12-07 2011-06-10 Spawnapps Procede de mise a disposition d'une application-cible
US8893120B2 (en) * 2010-01-29 2014-11-18 Howard Pinsky Controlled use medical applicaton
CN101873318B (zh) * 2010-06-08 2013-07-17 国网电力科学研究院 针对应用基础支撑平台上应用系统的应用与数据保全方法
US8789138B2 (en) * 2010-12-27 2014-07-22 Microsoft Corporation Application execution in a restricted application execution environment
US8825748B2 (en) * 2011-07-06 2014-09-02 Sharp Laboratories Of America, Inc. Sandboxed daemon process invocation through HTTP
US9396311B2 (en) 2011-07-13 2016-07-19 Dell Products L.P. Mini appliance ensuring software license compliance
US9430622B2 (en) 2011-07-13 2016-08-30 Dell Products L.P. Mini appliance
US8973136B2 (en) * 2011-08-02 2015-03-03 Quick Heal Technologies Private Limited System and method for protecting computer systems from malware attacks
US8589481B2 (en) 2011-09-14 2013-11-19 Microsoft Corporation Multi tenant access to applications
US9015224B2 (en) 2011-10-09 2015-04-21 LabTech, LLC Interactive response of a remote monitoring and management system
US9519781B2 (en) 2011-11-03 2016-12-13 Cyphort Inc. Systems and methods for virtualization and emulation assisted malware detection
US9792430B2 (en) 2011-11-03 2017-10-17 Cyphort Inc. Systems and methods for virtualized malware detection
US9686293B2 (en) 2011-11-03 2017-06-20 Cyphort Inc. Systems and methods for malware detection and mitigation
US9055091B2 (en) 2011-11-16 2015-06-09 LabTech, LLC Adaptive timing of distributed device response to maximize channel capacity utilization
US9240971B2 (en) 2011-11-16 2016-01-19 LabTech, LLC Automated management of generalized central name services by distributed remote devices
ES2439804B1 (es) * 2012-04-19 2014-10-29 Universitat Politècnica De Catalunya Procedimiento, sistema y pieza de código ejecutable para virtualizar un recurso de hardware asociado a un sistema informático
US8972969B2 (en) * 2012-06-08 2015-03-03 Adobe Systems Incorporated Out of band services updates
US9733953B2 (en) 2012-06-22 2017-08-15 Microsoft Technology Licensing, Llc API redirection for limited capability operating systems
US9405556B2 (en) 2012-06-28 2016-08-02 Microsoft Technology Licensing, Llc Dynamic addition and removal of operating system components
US9047463B2 (en) * 2012-06-29 2015-06-02 Sri International Method and system for protecting data flow at a mobile device
US9245249B2 (en) 2013-03-12 2016-01-26 Labtech Llc General, flexible, resilent ticketing interface between a device management system and ticketing systems
WO2014150523A1 (en) * 2013-03-15 2014-09-25 Wal-Mart Stores, Inc. Apparatus and method enablement of customer information control systems on a mainframe computer
US10545775B2 (en) 2013-06-28 2020-01-28 Micro Focus Llc Hook framework
US10116697B2 (en) * 2013-09-20 2018-10-30 Open Text Sa Ulc System and method for geofencing
US10824756B2 (en) 2013-09-20 2020-11-03 Open Text Sa Ulc Hosted application gateway architecture with multi-level security policy and rule promulgations
EP2851833B1 (de) 2013-09-20 2017-07-12 Open Text S.A. Anwendungs-Gateway-Architektur mit mehrstufigen Sicherheitspolitik- und Regelverkündigungen
CN104598257B (zh) * 2013-10-30 2019-01-18 华为技术有限公司 远程应用程序运行的方法和装置
US10095866B2 (en) 2014-02-24 2018-10-09 Cyphort Inc. System and method for threat risk scoring of security threats
US10326778B2 (en) 2014-02-24 2019-06-18 Cyphort Inc. System and method for detecting lateral movement and data exfiltration
US10225280B2 (en) 2014-02-24 2019-03-05 Cyphort Inc. System and method for verifying and detecting malware
US11405410B2 (en) 2014-02-24 2022-08-02 Cyphort Inc. System and method for detecting lateral movement and data exfiltration
JP6272088B2 (ja) * 2014-03-06 2018-01-31 三菱電機株式会社 計算機装置及びプロセス解析方法及びプログラム
CN104023086B (zh) * 2014-06-25 2017-08-25 北京奇艺世纪科技有限公司 一种web集群代码更新方法、装置及系统
US9824136B2 (en) * 2014-09-19 2017-11-21 Microsoft Technology Licensing, Llc Dynamic application containers
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9766919B2 (en) * 2015-03-05 2017-09-19 Vmware, Inc. Methods and apparatus to select virtualization environments during deployment
US10447720B1 (en) * 2015-03-12 2019-10-15 Symantec Corporation Systems and methods for performing application container introspection
US9916233B1 (en) 2015-03-27 2018-03-13 Amazon Technologies, Inc. Using containers for update deployment
US9785476B2 (en) * 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
WO2016197069A1 (en) 2015-06-05 2016-12-08 Nutanix, Inc. Architecture for managing i/o and storage for a virtualization environment using executable containers and virtual machines
CN106469275A (zh) * 2015-08-18 2017-03-01 中兴通讯股份有限公司 虚拟机杀毒方法及装置
US10042660B2 (en) 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity
US10389598B2 (en) * 2015-10-29 2019-08-20 Cisco Technology, Inc. Container management and application ingestion engine
US11593075B2 (en) 2015-11-03 2023-02-28 Open Text Sa Ulc Streamlined fast and efficient application building and customization systems and methods
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US10002026B1 (en) * 2015-12-21 2018-06-19 Amazon Technologies, Inc. Acquisition and maintenance of dedicated, reserved, and variable compute capacity
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US11042643B2 (en) 2015-12-24 2021-06-22 Intel Corporation Trusted deployment of application containers in cloud data centers
US9396251B1 (en) * 2016-01-07 2016-07-19 International Business Machines Corporation Detecting and tracking virtual containers
US11388037B2 (en) 2016-02-25 2022-07-12 Open Text Sa Ulc Systems and methods for providing managed services
US10127030B1 (en) 2016-03-04 2018-11-13 Quest Software Inc. Systems and methods for controlled container execution
US10140159B1 (en) 2016-03-04 2018-11-27 Quest Software Inc. Systems and methods for dynamic creation of container manifests
US10270841B1 (en) 2016-03-04 2019-04-23 Quest Software Inc. Systems and methods of real-time container deployment
CN105808320B (zh) * 2016-03-11 2018-12-04 四川安嵌科技有限公司 基于Linux容器的设备虚拟化系统及方法
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US10289457B1 (en) 2016-03-30 2019-05-14 Quest Software Inc. Systems and methods for dynamic discovery of container-based microservices
US10089209B1 (en) * 2016-05-17 2018-10-02 United Services Automobile Association (Usaa) Systems and methods for locally streaming applications in a computing system
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10432450B2 (en) * 2016-06-30 2019-10-01 Microsoft Technology Licensing, Llc. Data plane API in a distributed computing network
US10169056B2 (en) 2016-08-31 2019-01-01 International Business Machines Corporation Effective management of virtual containers in a desktop environment
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US10649679B2 (en) 2016-11-23 2020-05-12 Nutanix, Inc. Containerized application extensions in distributed storage systems
US10169023B2 (en) * 2017-02-06 2019-01-01 International Business Machines Corporation Virtual container deployment
US10761911B2 (en) 2017-02-13 2020-09-01 Nutanix, Inc. Asynchronous application interactions in distributed systems
US10936331B2 (en) * 2017-02-23 2021-03-02 International Business Machines Corporation Running a kernel-dependent application in a container
KR101807806B1 (ko) * 2017-05-02 2017-12-11 나무기술 주식회사 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법
US10885189B2 (en) * 2017-05-22 2021-01-05 Microsoft Technology Licensing, Llc Isolated container event monitoring
US10650139B2 (en) 2017-06-12 2020-05-12 Daniel Maurice Lerner Securing temporal digital communications via authentication and validation for wireless user and access devices with securitized containers
US10789104B2 (en) 2017-06-30 2020-09-29 Vmware, Inc. Methods and apparatus for deploying a distributed system using operating system virtualization
CN107608757B (zh) * 2017-08-29 2021-01-08 华为技术有限公司 一种基于容器的隔离处理方法及相关设备
US10733227B2 (en) 2017-09-25 2020-08-04 Red Hat, Inc. Container image size reduction via runtime analysis
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10740362B2 (en) * 2017-12-22 2020-08-11 International Business Machines Corporation Container structure
WO2019133326A1 (en) * 2017-12-27 2019-07-04 Daniel Maurice Lerner Securing temporal digital communications
US10740132B2 (en) * 2018-01-30 2020-08-11 Veritas Technologies Llc Systems and methods for updating containers
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10931675B2 (en) * 2018-04-10 2021-02-23 Microsoft Technology Licensing, Llc Local API access authorization
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
CN109241730B (zh) * 2018-09-03 2020-09-29 杭州安恒信息技术股份有限公司 一种容器风险的防御方法、装置、设备及可读存储介质
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US10901700B2 (en) * 2019-02-27 2021-01-26 International Business Machines Corporation Automatic generation of container image in a runtime environment
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US10942762B2 (en) * 2019-03-29 2021-03-09 Hewlett Packard Enterprise Development Lp Launch web browser applications in microservice-based containers
US11163552B2 (en) 2019-04-15 2021-11-02 International Business Machines Corporation Federated framework for container management
CN111913426B (zh) * 2019-05-08 2023-05-05 创升益世(东莞)智能自控有限公司 一种应用于工业自动化控制系统的软件容器方法
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11463478B2 (en) 2019-10-29 2022-10-04 International Business Machines Corporation Remediation strategy optimization for development, security and operations (DevSecOps)
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
CN111381833B (zh) * 2020-03-05 2023-05-12 山东汇贸电子口岸有限公司 一种容器化的openstack数据初始化方法
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
US11200041B1 (en) 2020-05-22 2021-12-14 International Business Machines Corporation Remote installation, customization and deployment of mainframe components
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution
US20230367892A1 (en) * 2022-05-13 2023-11-16 Intuit Inc. Secure embedded web browser
CN116126737B (zh) * 2023-04-11 2023-09-26 阿里云计算有限公司 容器测试方法以及装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7095854B1 (en) * 1995-02-13 2006-08-22 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5974549A (en) * 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
US6643690B2 (en) * 1998-12-29 2003-11-04 Citrix Systems, Inc. Apparatus and method for determining a program neighborhood for a client node in a client-server network
IL132916A (en) * 1999-11-14 2004-02-08 Mcafee Inc Method and system for intercepting an application program interface
US7159224B2 (en) * 2002-04-09 2007-01-02 Sun Microsystems, Inc. Method, system, and articles of manufacture for providing a servlet container based web service endpoint
US7107385B2 (en) * 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US8205072B1 (en) * 2003-07-22 2012-06-19 Cisco Technology, Inc. Method and apparatus for electronically configuring a secured user desktop
US7757291B2 (en) * 2003-09-15 2010-07-13 Trigence Corp. Malware containment by application encapsulation
US8363232B2 (en) * 2004-05-03 2013-01-29 Microsoft Corporation Strategies for simultaneous peripheral operations on-line using hierarchically structured job information
WO2006101549A2 (en) * 2004-12-03 2006-09-28 Whitecell Software, Inc. Secure system for allowing the execution of authorized computer program code
US7681226B2 (en) * 2005-01-28 2010-03-16 Cisco Technology, Inc. Methods and apparatus providing security for multiple operational states of a computerized device
US8505006B1 (en) * 2006-02-10 2013-08-06 Ringcube Technologies, Inc. Resource management in virtual machines using dynamic table for performing resource queries
US7904886B2 (en) * 2006-03-13 2011-03-08 International Business Machines Corporation Method for executing an application in a virtual container forming a virtualized environment session
US20070240212A1 (en) * 2006-03-30 2007-10-11 Check Point Software Technologies, Inc. System and Methodology Protecting Against Key Logger Spyware
US20080016339A1 (en) * 2006-06-29 2008-01-17 Jayant Shukla Application Sandbox to Detect, Remove, and Prevent Malware
US9015703B2 (en) * 2006-10-17 2015-04-21 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
DE112009002168A5 (de) * 2008-09-09 2012-03-15 Kace Networks, Inc. Auslieferung und Management von virtuellen Containern

Also Published As

Publication number Publication date
GB201104065D0 (en) 2011-04-20
GB2475011B (en) 2013-06-26
US20100064299A1 (en) 2010-03-11
GB2475011A8 (en) 2012-03-07
CN102150105A (zh) 2011-08-10
GB2475011A (en) 2011-05-04
CN102150105B (zh) 2015-06-17
US9672078B2 (en) 2017-06-06
WO2010030703A1 (en) 2010-03-18
US8381231B2 (en) 2013-02-19
DE112009002168A5 (de) 2012-03-15
US20130198764A1 (en) 2013-08-01

Similar Documents

Publication Publication Date Title
DE112009002168T5 (de) Auslieferung und Management von virtuellen Containern
TW588255B (en) Operating system abstraction and protection layer
US7774762B2 (en) System including run-time software to enable a software application to execute on an incompatible computer platform
US20180173743A1 (en) Dynamic code loading
US6823460B1 (en) Method and system for intercepting an application program interface
US7451482B2 (en) Protected execution environments within a computer system
US8650578B1 (en) System and method for intercepting process creation events
RU2432605C1 (ru) Способ расширения, основанный на сервере архитектуры десктопной виртуальной машины на клиентские машины, и машиночитаемая среда
US20080222160A1 (en) Method and system for providing a program for execution without requiring installation
DE202014011092U1 (de) Sicherheitsarchitektur für virtuelle Maschinen
DE112011103880T5 (de) Direktes Migrieren von Software-Abbildern mit Streaming-Technik
JP2010129080A (ja) ソフトウェア実行システムおよびソフトウェアの実行方法
US20120151464A1 (en) Running Injected Code Prior to Execution of an Application
Vokorokos et al. Application security through sandbox virtualization
DE60304005T2 (de) Änderung von Ladeadressen von ausführbaren Programmodulen
US20140082275A1 (en) Server, host and method for reading base image through storage area network
AU768758B2 (en) Method and system for intercepting an application program interface
US7725882B1 (en) System and method for profiling processes in a computing system
US20170357544A1 (en) Full state session reviving, forking, and snapshoting based on an application data dump
CN117251247A (zh) 运维审计平台部署方法、装置、电子设备及存储介质
CN100424652C (zh) 一种基于嵌入式操作系统的硬盘自恢复保护方法
DE102014110579B4 (de) Geräteloser und systemunabhängiger Treiber für vereinheitlichte erweiterbare Firmwareschnittstelle (UEFI)
Troelsen et al. Processes, AppDomains, and Object Contexts
Allen et al. Internet Information Services

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R006 Appeal filed
R008 Case pending at federal patent court
R081 Change of applicant/patentee

Owner name: DELL PRODUCTS L.P., ROUND ROCK, US

Free format text: FORMER OWNER: KACE NETWORKS, INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BARDEHLE PAGENBERG PARTNERSCHAFT MBB PATENTANW, DE

R009 Remittal by federal patent court to dpma for new decision or registration
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0003000000

Ipc: G06F0021530000

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee