DE112009002168T5 - Auslieferung und Management von virtuellen Containern - Google Patents
Auslieferung und Management von virtuellen Containern Download PDFInfo
- 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
Links
- 238000012384 transportation and delivery Methods 0.000 title claims abstract description 16
- 238000007726 management method Methods 0.000 title description 5
- 238000004590 computer program Methods 0.000 claims abstract description 37
- 230000000694 effects Effects 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 18
- 238000003860 storage Methods 0.000 claims description 12
- 238000005516 engineering process Methods 0.000 claims description 5
- 239000012528 membrane Substances 0.000 description 25
- 239000003795 chemical substances by application Substances 0.000 description 21
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000006399 behavior Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000009434 installation Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 102100035353 Cyclin-dependent kinase 2-associated protein 1 Human genes 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000356 contaminant Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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 Endpunkten106 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 Umgebung100 veranschaulicht, einschließlich einer informationstechnologischen (IT) Automatisierungseinrichtung102 (die „Einrichtung”), um die Container108 an gemanagte Endpunkte106 auszuliefern und zu managen. Die gemanagten Endpunkte106 , die auch als Endpunkte bezeichnet werden, sind Rechnergeräte, wie etwa Nutzer-Workstations oder Router. Die Einrichtung102 kann konfiguriert sein, um verschiedene Arten Container108 durch einen Operator auszuliefern und zu managen, wie etwa ein Mitglied eines IT Stabes. Die1 zeigt eine Umgebung100 mit einer Einrichtung102 und gemanagten Endpunkten106 . Die Umgebung100 kann jedoch tausende von gemanagten Endpunkten106 enthalten, die mit der Einrichtung102 kommunizieren. Ferner kann die Umgebung100 mehrere Einrichtungen102 beinhalten, möglicherweise mit einigen Einrichtungen, die für Backup- oder Lastausgleichszwecke verwendet werden. Die Einrichtung102 und die gemanagten Endpunkte106 kommunizieren durch ein Netzwerk104 , wie etwa das Internet oder ein Firmen-Intranet. - Die gemanagten Endpunkte
106 umfassen Container108 , die auch als virtuelle Container bezeichnet werden, die von der Einrichtung102 bereitgestellt werden. Ein Container108 kann eine Applikation enthalten, wie etwa einen Wortprozessor (word processor) oder ein Systemdienstprogramm (system utility), die auf dem gemanagten Endpunkt106 laufen. Der Container108 stellt eine Virtualisierung durch Hinzufügen einer Schicht zwischen der Applikation und dem Betriebssystem des gemanagten Endpunkts106 bereit. Der Container108 kann das Verhalten der Applikation modifizieren, so dass die Applikation und ihre Daten vom Rest des gemanagten Endpunkts106 isoliert sind. Dies kann die Portabilität der Applikation erhöhen und hindert die Applikation daran, den Rest des gemanagten Endpunkts106 negativ zu beeinflussen (z. B. über Schadsoftware (malware), die in der Applikation enthalten ist). Der Container108 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 Container108 können von der Applikation102 erzeugt werden und durch die Einrichtung102 an die gemanagten Endpunkte106 ausgeliefert werden. Ein einziger Container kann an viele Endpunkte106 ausgeliefert werden und ein einziger Endpunkt kann mehrere Container aufweisen (z. B. für mehrere Applikationen). - Die
2 ist ein Übersichtsdiagramm eines Computers200 , der in einer Ausführungsform als eine Einrichtung102 und/oder als ein gemanagter Endpunkt106 agiert. Veranschaulicht ist zumindest ein Prozessor202 , der mit einem Chipsatz204 verbunden ist. Ferner sind mit dem Chipsatz204 ein Speicher206 , ein Speichergerät208 , eine Tastatur210 , ein Grafikadapter212 , ein Zeigegerät214 und ein Netzwerkadapter216 verbunden. Ein Display218 ist mit dem Grafikadapter212 verbunden. In einer Ausführungsform wird die Funktionalität des Chipsatzes204 durch einen Speicher-Controller-Hub220 und einen Ein-/Ausgabe-Controller-Hub222 bereitgestellt. In einer anderen Ausführungsform ist der Speicher206 direkt mit dem Prozessor202 anstatt mit dem Chipsatz204 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 Speicher206 enthält Anweisungen und Daten, die von dem Prozessor202 benutzt werden. Das Zeigegerät214 kann eine Maus, eine Steuerkugel oder ein anderer Typ Zeigegerät sein und wird in Kombination mit der Tastatur210 zum Eingeben von Daten in das Computersystem200 benutzt. Der Grafikadapter212 zeigt Bilder oder andere Informationen auf dem Display218 an. Der Netzwerkadapter216 koppelt das Computersystem200 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 der2 gezeigten, aufweisen. Darüber hinaus können dem Computersystem200 bestimmte veranschaulichte Komponenten fehlen. In einer Ausführungsform fehlen einem Computer200 , der als eine Einrichtung102 wirkt, eine Tastatur210 , ein Zeigegerät214 , ein Grafikadapter212 und/oder ein Display218 . Darüber hinaus kann das Speichergerät208 lokal und/oder entfernt (remote) von dem Computer200 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ät208 gespeichert, in den Speicher206 geladen und von dem Prozessor202 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 Endpunkts106 veranschaulicht. Wie oben erwähnt, kann der gemanagte Endpunkt106 eine Nutzer-Workstation sein. Der gemanagte Endpunkt106 führt ein Betriebssystem302 aus, wie etwa Microsoft Windows, Vista, Mac OS X oder Linux. Das Betriebssystem202 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 Betriebssystem302 umfasst ein Dateisystem304 das verschiedene Systemdateien, Applikationen und Nutzerdaten speichern kann. In einer Ausführungsform ist das Dateisystem304 auf einem Speichergerät208 auf dem gemanagten Endpunkt306 gespeichert. - Wie bereits oben erwähnt, können die Container
108 durch die Einrichtung102 an einen gemanagten Endpunkt106 ausgeliefert werden. Ein Container108 ist in der Lage eine Applikation324 auf dem gemanagten Endpunkt auszuführen, während er mittels Virtualisierung der Applikation eine darin enthaltene Umgebung bereitstellt. Ein gemanagter Endpunkt106 kann mehrere Container108A und108B aufweisen. Ein Container108 kann mehrere Applikationen324 ausführen, obwohl die nachfolgende Diskussion eine einzige Applikation aus Klarheitsgründen verwendet. - Die Applikation
324 eines Containers108 umfasst Applikationsdateien314 und Applikationseinstellungen320 . Diese Applikationsdateien314 umfassen verschiedene ausführbare Dateien, Applikationsdatendateien und Bibliotheken, die von der Applikation324 zum Ausführen benötigt werden. Die Applikationseinstellungen320 umfassen Einstellungen und Optionen für die Applikation324 , wie etwa Registry-Werte (registry values). Die Applikationseinstellungen320 können ferner in Dateien gespeichert sein. Verschiedene Hintergrundprogramme, wie etwa Dämons (Hintergrundprogramme) oder Windows Services (Dienstprogramme) können ferner durch die Applikationsdateien314 und/oder die Applikationseinstellungen320 spezifiziert werden. - Ein Satz von Applikationsdateien
314 und Applikationseinstellungen320 sind ursprünglich in einem Container108 enthalten, aber die Applikationsdateien und die Applikationseinstellungen können über die Zeit durch die ausführende Applikation324 modifiziert werden. In einer Ausführungsform schließen die Applikationsdateien314 und die Applikationseinstellungen320 all die Dateien und Einstellungen ein, die von der Applikation324 des Containers108 benötigt werden. Dies wird als ein „vollständig containerisierter” Container („fully containerized” container) bezeichnet. In einem Container108 , der nicht vollständig containerisiert ist, können einige der Dateien und Einstellungen, die von der Applikation324 benutzt werden, außerhalb des Containers angeordnet sein (z. B. in einem Teil des Dateisystems304 , das auch von dem Betriebssystem302 benutzt wird). Dies kann sinnvoll sein, um die Größe des Containers108 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 Applikationseinstellungen320 in einer Schattenkopie316 innerhalb des Containers108 gespeichert. Diese Schattenkopie316 umfasst eine Verzeichnisstruktur, die von der Applikation324 erwartet wird. In einer Ausführungsform ist die Schattenkopie316 in einem Verzeichnis des Dateisystems304 gespeichert, das für den Container108 reserviert ist. Beispielsweise können in einem Windows-Betriebssystem die Dateien eines bestimmten Containers108 alle in dem Verzeichnis „c:\containers\contain1” angeordnet sein. Eine bestimmte Bibliothek, die von dem Container108 benötigt wird, kann gespeichert sein als „c:\containers\contain1\windows\system32\libxx.dll”, wenn die darin enthaltene Applikation324 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 Containers108 und wird von der Applikation324 in einem vollständig containerisierten Container nicht benutzt. - Da nur bestimmte Dateien von der Applikation
324 benötigt werden, können einige Verzeichnisse der Schattenkopie316 , 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 Applikation324 erzeugt werden sollen. Leere Verzeichnisse stellen eine erwartete Verzeichnisstruktur für die Applikation324 bereit. In einem Container108 , der nicht vollständig containerisiert ist, wird, wenn eine benötigte Datei nicht in der Schattenkopie316 gefunden wird, danach in dem Rest des Dateisystems304 gesucht. - Ein Container
108 umfasst eine initiale Nutzerschnittstelle322 wie etwa einen Link, der verwendet werden kann, um die Applikation324 zu starten. Ein Link zu einer geeigneten ausführbaren Datei innerhalb der Applikationsdateien314 verhindert, dass der Nutzer zu einem Ort in der Schattenkopie316 navigieren muss, um die Applikation324 zu starten und erscheint aus der Perspektive des Nutzers als ob die Applikation direkt durch das Betriebssystem302 ausgeführt wird. Die initiale Nutzerschnittstelle322 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 Virtualisierungsmodul312 implementieren die Virtualisierungsfunktionalität des Containers108 in Zusammenarbeit mit dem Containerinitialisierungsmodul318 . Die Virtualisierungsfunktionalität kann die Applikationsfunktionalität modifizieren (wie sie von den Applikationsdateien314 und den Applikationseinstellungen320 bereit gestellt wird), um beispielsweise Daten-Isolation, Container-Management oder eine Modifikation der Applikationsnutzerschnittstelle zu implementieren. - Das Containerinitialisierungsmodul
318 initialisiert die Virtualisierungsfunktionen des Containers108 . In einer Ausführungsform wird das Containerinitialisierungsmodul318 aufgerufen, wenn eine Applikation aus geführt wird. Das Containerinitialisierungsmodul318 bestimmt, ob die neu ausgeführte Applikation eine Applikation innerhalb eines Containers108 ist oder ob es eine Applikation ist, die direkt in dem Betriebssystem302 installiert ist (d. h. nicht in einem Container). Wenn festgestellt wird, dass es eine Applikation ist, die nicht in einem. Container108 ist, dann ermöglicht das Containerinitialisierungsmodul318 der Applikation normal ohne weitere Intervenierung abzulaufen. Falls festgestellt wird, dass die Applikation eine Applikation324 innerhalb eines Containers108 ist, dann identifiziert das Containerinitialisierungsmodul318 den Container108 und führt das Virtualisierungsmodul312 (wird weiter unten beschrieben) dieses Container aus oder aktiviert das Virtualisierungsmodul312 dieses Containers. Das Containerinitialisierungsmodul318 kann dann die Ausführung der Applikation324 ermöglichen und ablaufen. - Das Containerinitialisierungsmodul
318 ist in dem Betriebssystem302 des gemanagten Endpunkts106 installiert und kann von mehreren Containern108 in dem gemanagten Endpunkt verwendet werden. In einer Ausführungsform wird das Containerinitialisierungsmodul318 von dem Betriebssystem302 benachrichtigt, jedes Mal wenn eine neue Applikation gestartet wird. Das Containerinitialisierungsmodul318 kann sich in das Betriebssystem302 einhaken, um diese Benachrichtigungen zu erhalten. In einer Ausführungsform überwacht das Containerinitialisierungsmodul318 die Aktivität des Betriebssystems302 , um festzustellen, wenn eine neue Applikation gestartet wird. Das Containerinitialisierungsmodul318 kann auf der Grundlage der Stelle der Applikation in dem Dateisystem304 feststellen, ob eine Applikation Teil eines Containers108 ist. In einer Ausführungsform kann das Containerinitialisierungsmodul318 eine Liste von Signaturen von containerisierten Applikationen324 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 Container108 bereit. Das Virtualisierungsmodul312 kann als eine Art Hypervisor (hypervisor) wirken, der die Applikation324 managt. Das Virtualisierungsmodul312 fügt eine Schicht zwischen die ausführende Applikation324 und das Betriebssystem302 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 Virtualisierungsmodul312 in verschiedene Betriebssystem-API-Aufrufe ein, um Aufrufe abzufangen und die gewünschten Operationen durchzuführen. In einer Ausführungsform läuft das Virtualisierungsmodul312 in dem Hintergrund ab und überwacht die Applikation, um Betriebssystem-API-Aufrufe abzufangen. Das Virtualisierungsmodul312 kann konfiguriert sein, um ausschließlich Betriebssystem-API-Aufrufe von der Applikation324 abzufangen, die dem gleichen Container108 zugeordnet sind, um irgendeine zusätzliche Last des Prozessors202 zu minimieren oder in anderer Weise die Systemleistungsfähigkeit herabzusetzen. - In einer Ausführungsform fängt das Virtualisierungsmodul
312 die Betriebssystem-API-Aufrufe der Applikation324 des Containers108 ab. Falls beispielsweise die Applikation324 einen Betriebssystem-API-Aufruf erzeugt, um eine Datei auf das Dateisystem304 zu schreiben, wird dieser Betriebssystem-API-Aufruf von dem Virtualisierungsmodul312 abgefangen. Der Code des Virtualisierungsmoduls312 kann dann bewirken, dass das Schreiben an einer verschiedenen Stelle geschieht. Dies kann gemacht werden, damit die Dateien dem Container108 innerhalb der Schattenkopie316 zugeordnet bleiben und isoliert von dem Rest des Dateisystems304 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 Virtualisierungsmodul312 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 Virtualisierungsmodul312 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 Display218 des gemanagten Endpunkts zu zeichnen. Zum Beispiel kann die Titelzeile des Applikationsfensters modifiziert werden, um zu anzuzeigen, dass die Applikation324 in einem Container108 läuft. Das Virtualisierungsmodul312 kann ferner die Nutzung der Applikation324 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 Containerinitialisierungsmodul318 kann eine Initialisierungsfunktion in dem Virtualisierungsmodul312 aufrufen, wenn die Applikation324 ausgeführt wird. Die Initialisierungsfunktion kann eine Nutzerumgebung für einen bestimmten Nutzer aufstellen, wenn die Applikation324 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 Containers108 spezifizieren. Die Informationen in der Membran310 können von dem Virtualisierungsmodul312 gelesen werden, um zu bestimmen, welche Aktionen das Virtualisierungsmodul312 ergreifen sollte, wenn es API Aufrufe abfängt oder die Nutzerumgebung initialisiert. Die Membran310 kann verschiedene Nutzerpräferenzen für die Applikation324 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 Virtualisierungsmodul312 den Aufruf abfangen und eine Liste von Websites in der Membran310 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 Virtualisierungsmodul312 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 Membran310 kann ferner Nutzungsinformationen speichern, die von dem Virtualisierungsmodul312 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 Membran310 speichern. - Der Agent
306 kommuniziert mit der Einrichtung102 über das Netzwerk104 und führt verschiedene Managementfunktionen in dem gemanagten Endpunkt106 aus, wie durch die Einrichtung102 angewiesen. Der Agent306 stellt ferner Informationen von dem gemanagten Endpunkt106 für die Einrichtung102 bereit. Der Agent306 kann auf dem gemanagten Endpunkt106 als Teil eines initialen Einrichtungsprozesses auf dem Endpunkt installiert werden. Der Agent306 kann das Containerinitialisierungsmodul318 in dem gemanagten Endpunkt306 installieren (zum Beispiel durch Herunterladen des Moduls von der Einrichtung102 ). Der Agent306 kann ferner die Container108 auf dem gemanagten Endpunkt106 installieren, die von der Einrichtung102 empfangen werden. Die Schattenkopie316 von dem Container108 kann, wie oben erwähnt, an einer fest vorgesehenen Stelle für Speicherkopien von Containern gespeichert werden. Die Membran310 und das Virtualisierungsmodul312 des Containers108 können an einer bestimmten Stelle in dem Dateisystem304 gespeichert werden, die nicht von einem Nutzer beschreibbar ist. - Wie durch die Einrichtung
102 angewiesen, kann der Agent306 ferner den Container aktualisieren. Beispielsweise kann die Einrichtung102 einen Befehl an den Agenten306 schicken, um, wie oben beschrieben, bestimmte Websites zu der schwarzen Liste der Web-Browser-Applikation hinzuzufügen. Reagierend auf den Befehl kann der Agent306 die Daten in der Membran310 modifizieren, um die Websites als schwarz gelistete Websites hinzuzufügen. Darüber hinaus kann der Agent306 Schalter in der Membran310 setzen, um die Applikation324 zum Ausführen freizugeben oder zu sperren, auf der Grundlage von Befehlen der Einrichtung102 . Dies ermöglicht es einem Administrator die Ausführung einer Applikation324 in einem Endpunkt106 in einfacher Weise freizugeben oder zu sperren (einschließlich dem sofortigen Abschalten einer Applikation während sie ausgeführt wird). Der Agent306 kann ferner einen Container108 von dem Endpunkt106 entfernen. Wenn die Dateien, die dem Container108 zugeordnet sind, auf die Schattenkopie316 begrenzt sind, kann das Entfernen ein einfaches Löschen der Schattenkopie umfassen (zusammen mit dem Entfernen der Membran316 und des Virtualisierungsmoduls312 ), ohne das Betriebssystem302 oder andere Applikationen zu beeinflussen. - Aktualisierungen der Virtualisierungsmodule
312 können mitunter für die Verteilung an die Einrichtung102 erzeugt und gespeichert werden. Der Agent306 kann gelegentlich die Applikation102 nach aktualisierten Versionen des Virtualisierungsmoduls312 in den Containern108 an dem Endpunkt106 überprüfen. Diese Überprüfung kann beispielsweise durch Vergleichen von Versionsnummern oder Dateisignaturen durchgeführt werden. Wenn der Agent306 feststellt, dass ein aktualisiertes Virtualisierungsmodul312 verfügbar ist, kann der Agent das Vutualisierungsmodul herunterladen und es anstelle des gegenwärtigen Virtualisierungsmoduls installieren. In ähnlicher Weise kann der Agent306 die Membran310 , die Applikationsdateien314 und die Applikationseinstellungen316 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 Applikation324 überwachen und begrenzen. Die Container108 können ferner alle Auswirkungen der Applikation324 (einschließlich der Auswirkungen von Schadstoffware (Malware)) innerhalb der Schattenkopie316 halten und den Rest des gemanagten Endpunkts106 und die Umgebung100 schützen. Die Container108 können ferner die Portabilität von Applikationen324 durch Bereitstellen notwendiger Dateien für die Applikationen innerhalb der Schattenkopie316 bei der Auslieferung vergrößern. In einer Ausführungsform kann ein Container108 auf einem gemanagten Endpunkt306 von einem portablen Speichergerät installiert werden. - In einer Ausführungsform ist die
4 ein Blockdiagramm, das eine IT Automatisierungseinrichtung102 veranschaulicht. Wie oben erwähnt, kann die Einrichtung104 verwendet werden, um Container108 für die gemanagten Endpunkten106 zu erzeugen, auszuliefern und zu managen. - In einer Ausführungsform wird das Containererzeugungsmodul
402 verwendet, um Container108 , die an gemanagte Endpunkte106 ausgeliefert werden sollen, zu erzeugen. Ein Systemadministrator kann ein Installationsprogramm für eine bestimmte Applikation324 bereitstellen (zum Beispiel eine Textverarbeitungs-Applikation (word processing application)) an das Containererzeugungsmodul402 . 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 Containererzeugungsmodul402 bereitstellen, um es in die Lage zu versetzten das Installationsprogramm auszuführen und einen Container108 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 Container108 zu erzeugen. In einer Ausführungsform kann die Staging-Maschine die Einrichtung104 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 Einfangmodul414 erfasst verschiedene Dateien, die durch die Installation (zum Beispiel Applikationsprogramme oder Bibliotheken) und ihre Orte innerhalb des Dateisystems erzeugt werden. Das Einfangmodul414 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 Einfangmodul414 einige oder alle der Eingabe- oder Ausgabeoperationen des Installationsprogramms. Das Einfangmodul414 kann die Laufzeitlogik des Installationsprogramms beobachten und kann feststellen, welche Dateien, Bibliotheken oder Einstellungen von der Applikation benötigt werden. Zum Beispiel kann das Einfangmodul414 das Installationsprogramm beobachten, um die Anwesenheit von bestimmten Bibliotheken zu überprüfen, selbst wenn diese Bibliotheken nicht von dem Installationsprogramm erzeugt worden sind. Das Einfangmodul414 kann ferner Services oder andere Einheiten, die während der Installation erzeugt wurden, beobachten und einfangen (capture). In einer Ausführungsform hakt sich das Einfangmodul414 in verschiedene Systemaufrufe ein, um seine Überwachungs- und Einfangfunktionen durchzuführen. - Das Containererzeugungsmodul
402 erzeugt eine Schattenkopie316 auf der Grundlage von Informationen des Einfangmoduls414 . Die Schattenkopie316 umfasst verschiedene Dateien, Einstellungen, Services und andere Einheiten, die von dem Installationsprogramm, wie von dem Einfangmodul414 bestimmt, erzeugt werden. Die Schattenkopie316 kann ferner andere Dateien oder Einstellungen umfassen, die von der Applikation benötigt werden. Wenn der Container108 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 Schattenkopie316 weggelassen werden. - In einer Ausführungsform kann das Containerzeugungsmodul
402 ferner ein Virtualisierungsmodul312 und eine Membran316 empfangen. Das Virtualisierungsmodul312 , 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 Membran310 kann durch Speichern verschiedener Containereinstellungen, die von einem Systemadministrator in einem bestimmten Format gespeichert werden, das von dem Virtualisierungsmodul312 verstanden wird, gespeichert werden. In einer Ausführungsform packt das Containererzeugungsmodul302 die Schattenkopie316 , das Virtualisierungsmodul312 und die Membran310 zusammen, um einen Container108 zu bilden. Das Containererzeugungsmodul402 kann den erzeugten Container108 in der Containerdatenbank410 für eine spätere Auslieferung speichern. - Die Containerdatenbank
410 umfasst die Container108 , die von dem Containererzeugungsmodul402 erzeugt werden. Dies kann eine Schattenkopie316 (einschließlich von Dateien und Einstellungen), ein Virtualisierungsmodul312 und eine Membran310 umfassen. Sie kann ferner verschiedene Attribute (attribute) für jeden Container108 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 Containerdatenbank410 zugreifen und kann basierend auf Attributen suchen, wann ein Container108 zum Ausliefern an den Endpunkt106 ausgewählt wird. - Das Auslieferungsmodul
406 liefert die Container108 , die in der Containerdatenbank410 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 Container108 kann an tausende gemanagte Endpunkte106 ausgeliefert werden. Das Auslieferungsmodul406 installiert einen Container108 in einem gemanagten Endpunkt106 und konfiguriert ihn, so dass die Applikation324 innerhalb des Containers in einfacher Weise von einem Benutzer des gemanagten Endpunktes106 ausgeführt werden kann. Die Auslieferung kann auch durch einen Nutzer eines gemanagten Endpunkts106 initiiert werden. In diesem Fall kann der Nutzer die Einrichtung102 kontaktieren und eine Auslieferung anfordern. Der Nutzer kann eine sich selbst ausführende Datei herunterladen, die den Container108 einschließlich der Schattenkopie316 der Membran310 und des Virtualisierungsmoduls312 auf dem gemanagten Endpunkt306 installiert. - Das Auslieferungsmodul
406 kann mit dem Agenten306 in dem gemanagten Endpunkt106 kooperieren, um den Container108 auszuliefern. Zum Beispiel kann das Auslieferungsmodul406 einen Container über das Netzwerk104 an den Agenten306 schicken. Der Agent306 platziert die Schattenkopie316 an einen bestimmten Ort, der, wie oben beschrieben, für den Container in dem Dateisystem312 bestimmt ist Der Agent306 platziert ferner die Membran310 und das Virtualisierungsmodul312 an geeigneten Stellen. Der Agent306 erzeugt ferner die initiale Nutzerschnittstelle320 durch Hinzufügen einer Verknüpfung (shortcut) auf die Arbeitsoberfläche des Nutzers. - Der Containermanager
408 managt die Container108 , die an die gemanagten Endpunkte106 ausgeliefert worden sind. Der Containermanager408 kann die Container durch die Agenten306 in dem gemanagten Endpunkt106 managen. Der Containermanager408 kann Befehle zum Freigeben oder Sperren eines Containers108 senden, um Nutzungseinschränkungen von Applikationen zu erzwingen. Dies bewirkt, dass Daten in der Membran310 , wie oben beschrieben, modifiziert werden. Der Containermanager408 kann Nutzerdaten von der Membran310 abfragen. Der Containermanager408 kann aktualisierte Versionen von Membranen310 , von Virtualisierungsmodulen312 oder von Schattenkopien316 bereitstellen. Diese Aktualisierungen können das Verhalten der Applikation324 oder der Virtualisierungsfunktionen des Containers108 , wie oben beschrieben, modifizieren. Der Containermanager408 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 Containererzeugungsmodul402 , das Auslieferungsmodul406 oder den Containermanager408 durch einen Systemadministrator zu kontrollieren. Durch das Nutzerschnittstellenmodul412 kann in der Umgebung100 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 Endpunkts106 führt eine containerisierte Applikation324 aus (das heißt, eine Applikation, die einen Container108 aufweist). Das Containeridentifizierungsmodul318 identifiziert bei502 die Ausführung der containerisierten Applikation324 in einer Ausführungsform. Bei504 initialisiert das Containerinitialisierungsmodul318 die Virtualisierung der Applikation324 durch Ausführen des Virtualisierungsmoduls312 des Containers108 . Das Virtualisierungsmodul312 kann einige Einstellungsfunktionen durchführen, wie etwa ein Starten von benötigten Services oder das Vorbereiten der Nutzerumgebung. Das Virtualisierungsmodul312 fingt bei506 die API Aufrufe von der ausführenden Applikation324 beispielsweise durch einhaken der Aufrufe oder Überwachung der Aufrufe ab. Für einen abgefangenen API Aufruf bestimmt das Virtualisierungsmodul312 bei508 eine Handlung, die bezüglich des API Aufrufs durchzuführen ist. Zum Beispiel kann das Virtualisierungsmodul312 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 Virtualisierungsmodul312 kann Informationen in der Membran310 verwenden, um die Handlung, die durchzuführen ist, festzulegen. Das Virtualisierungsmodul312 kann dann die bestimmte Aktion bei510 durchführen. - Die
6 ist ein Flussdiagramm, das in einer Ausführungsform ein Verfahren zum Managen der Container108 in einer Unternehmungsumgebung100 veranschaulicht. Das Containererzeugungsmodul402 wird verwendet, um bei602 einen Container für eine Applikation zu erzeugen, wobei der Container108 eine Schattenkopie316 mit Applikationsdateien und einem Virtualisierungsmodul312 beinhaltet, um die Funktionalität bereitzustellen die Applikation zu virtualisieren. Die Schattenkopie312 kann durch Ausführen eines Applikationsinstallationsprogramms auf einer Staging-Maschine erzeugt werden. Der Container108 wird bei604 an einen gemanagten Endpunkt106 unter Verwendung des Auslieferungsmoduls406 ausgeliefert. Das Ausliefern kann durch einen Nutzer des gemanagten Endpunkts106 initiiert werden. Bei606 werden die Container108 auf den gemanagten Endpunkten106 durch den Containermanager408 gemanagt. Das Management kann zum Beispiel umfassen, das Freigeben eines Containers108 , das Sperren eines Containers, das Abfragen von Nutzungsinformationen von dem Container oder das Aktualisieren des Containers (einschließlich der Applikation324 , des Virtualisierungsmoduls312 und der Membran310 ). - 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)
- 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.
- 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.
- Das computerimplementierte Verfahren nach Anspruch 1, wobei der ausgeführte Teil der Computerprogrammanweisungen die Applikation daran hindert, auf Schadsoftware zuzugreifen.
- Das computerimplementierte Verfahren nach Anspruch 1, ferner aufweisend: Neubeschreiben (re-flashing) des virtualisierten Containers, um den virtualisierten Container in seinen initialen Zustand zurückzusetzen.
- 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.
- 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.
- 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.
- 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.
- 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
- Das System nach Anspruch 8, wobei der ausgeführte Teil der Computerprogrammanweisungen verhindert, dass die Applikation auf Schadsoftware zugreift.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Das Computerprogrammprodukt nach Anspruch 15, wobei der ausgeführte Teil der Computerprogrammanweisungen die Applikation daran hindert, auf Schadsoftware zuzugreifen.
- 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.
- 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.
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)
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)
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 |
-
2009
- 2009-09-09 DE DE112009002168T patent/DE112009002168A5/de not_active Withdrawn
- 2009-09-09 WO PCT/US2009/056406 patent/WO2010030703A1/en active Application Filing
- 2009-09-09 US US12/556,525 patent/US8381231B2/en active Active
- 2009-09-09 GB GB1104065.6A patent/GB2475011B/en not_active Expired - Fee Related
- 2009-09-09 CN CN200980135139.4A patent/CN102150105B/zh not_active Expired - Fee Related
-
2013
- 2013-01-16 US US13/743,191 patent/US9672078B2/en active Active
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 |