Anwendungsvirtualisierung

Anwendungsvirtualisierung ist eine Softwaretechnologie, die zusammenfasst Computerprogramme aus dem zugrunde liegenden Betriebssystem auf die sie ausgeführt werden. A voll virtualisiert Die Anwendung ist nicht im traditionellen Sinne installiert,[1] Obwohl es immer noch ausgeführt wird, als ob es wäre. Die Anwendung verhält sich zur Laufzeit, als ob sie sich direkt mit dem ursprünglichen Betriebssystem und allen von ihm verwalteten Ressourcen verbindet, kann aber isoliert werden oder werden Sandbox in unterschiedlichen Graden.

In diesem Zusammenhang bezieht sich der Begriff "Virtualisierung" auf das gekapselte Artefakt (Anwendung), was sich stark von seiner Bedeutung in unterscheidet Hardware -Virtualisierung, wo es sich auf das abstrahierte Artefakt bezieht (physische Hardware).

Beschreibung

Diagram of application virtualization
Illustration einer Anwendung, die in einer nativen Umgebung ausgeführt wird und in einer Anwendungsvirtualisierungsumgebung ausgeführt wird

Die vollständige Anwendungsvirtualisierung erfordert eine Virtualisierungsschicht.[2] Anwendungsvirtualisierungsebenen ersetzen einen Teil der Laufzeitumgebung Normalerweise vom Betriebssystem bereitgestellt. Die Ebene fängt alle Festplattenoperationen virtualisierter Anwendungen ab und leitet sie transparent zu einem virtualisierten Ort, häufig einer einzelnen Datei.[3] Die Anwendung ist sich nicht bewusst, dass sie auf eine virtuelle Ressource anstelle eines physischen Zugriffs zugreift. Da die Anwendung jetzt mit einer Datei anstelle vieler Dateien arbeitet, die sich im gesamten System verteilt, kann die Anwendung auf einem anderen Computer einfach ausgeführt werden und bisher inkompatible Anwendungen können nebeneinander ausgeführt werden. Beispiele für diese Technologie für die Windows -Plattform umfassen:

Vorteile

Die Anwendungsvirtualisierung ermöglicht es Anwendungen, in Umgebungen auszuführen, die nicht zur nativen Anwendung passen. Zum Beispiel, Wein erlaubt manchen Microsoft Windows Anwendungen zum Ausführen Linux.

Die Anwendungsvirtualisierung reduziert die Systemintegrations- und Verwaltungskosten, indem eine gemeinsame Software -Baseline über mehrere verschiedene Computer in einer Organisation aufrechterhalten wird. Eine geringere Integration schützt das Betriebssystem und andere Anwendungen vor schlecht geschriebenen oder fehlerhaften Code. In einigen Fällen bietet es Speicherschutz, IDE-Stil Debuggen Funktionen und können sogar Anwendungen ausführen, die nicht korrekt geschrieben werden, z. (Dieses Merkmal hilft bei der Implementierung der Prinzip der geringsten Privilegien Durch die Entfernung der Anforderung, dass Endbenutzer über administrative Berechtigungen verfügen, um schlecht geschriebene Anwendungen auszuführen.) Inkompatiblen Anwendungen können gleichzeitig nebeneinander laufen[4] und mit minimalen Regressionstests gegeneinander.[5] Das Isolieren von Anwendungen aus dem Betriebssystem bietet auch Sicherheitsvorteile, da die Exposition der virtualisierten Anwendung nicht automatisch die Exposition des gesamten Betriebssystems enthält.[4]

Anwendungsvirtualisierung ermöglicht auch vereinfacht Betriebssystem Migrationen.[4] Anwendungen können auf übertragen werden auf Abnehmbare Medien oder zwischen Computern, ohne sie zu installieren, zu werden Tragbare Software.[6]

Anwendungsvirtualisierung verwendet weniger Ressourcen als eine separate virtuelle Maschine.

Einschränkungen

Nicht alle Computerprogramme können virtualisiert werden. Einige Beispiele umfassen Anwendungen, die a erfordern Gerätetreiber (eine Form der Integration mit dem Betriebssystem) und 16-Bit Anwendungen, die im gemeinsamen Speicherplatz ausgeführt werden müssen.[7] Antivirenprogramme und Anwendungen, die eine starke Betriebssystemintegration erfordern, z. Fensterrollos oder Stylexp sind schwer zu virtualisieren.

Darüber hinaus trägt die Anwendungsvirtualisierung bei der Softwarelizenzierung hervorragende Fallstricke, hauptsächlich, weil sowohl die Anwendungsvirtualisierungssoftware als auch die virtualisierten Anwendungen korrekt lizenziert werden müssen.[8]

Während die Anwendungsvirtualisierung Datei und die Datei adressieren kann und Registrierung-Level -Kompatibilitätsprobleme zwischen älteren Anwendungen und neueren Betriebssystemen, Anwendungen, die die nicht verwalten Haufen Richtig wird nicht unter Windows Vista ausgeführt, da sie den Speicher immer noch auf die gleiche Weise bereitstellen, unabhängig davon, ob sie virtualisiert sind.[9] Aus diesem Grund sind möglicherweise noch erforderlich, dass die Kompatibilitätskompatibilitätsfixes (Spezialanträge) erforderlich sind, auch wenn die Anwendung virtualisiert ist.[10]

Funktionelle Diskrepanzen innerhalb des Multikompatibilitätsmodells sind eine zusätzliche Einschränkung, bei der nützliche Zugangspunkte innerhalb eines öffentlichen Netzwerks gemeinsam genutzt werden. Diese Einschränkungen werden durch die Feststellung eines Systemebene -Aktienpunkt -Treibers überwunden.[11]

Verwandte Technologien

Zu den technologischen Kategorien, die unter Anwendungsvirtualisierung fallen, gehören:

  • Anwendungsstreaming. Teile des Code, Daten und Einstellungen der Anwendung werden bei Bedarf geliefert, anstatt dass die gesamte Anwendung vor dem Start geliefert wird. Durch das Ausführen der verpackten Anwendung kann die Installation einer leichten Clientanwendung erforderlich sind. Pakete werden normalerweise über ein Protokoll wie HTTP geliefert. CIFs oder RTSP.[4]
  • Remote -Desktop -Dienste (Früher als Terminal Services genannt) ist eine serverbasierte Computer-/Präsentationsvirtualisierungskomponente von Microsoft Windows, mit der ein Benutzer auf Anwendungen und Daten zugreifen kann, die auf einem Remote-Computer über ein Netzwerk gehostet werden. Remote Desktop Services-Sitzungen in einem einzigen Betriebssystem mit Shared-Server (z. Windows Server 2008 R2 und später) und werden mit dem zugegriffen Remote -Desktop -Protokoll.
  • Desktop -Virtualisierung Softwaretechnologien verbessern die Portabilität, Verwaltbarkeit und Kompatibilität der Desktop -Umgebung eines Personalcomputers, indem Teil des Teils oder der gesamten Desktop -Umgebung und zugehörigen Anwendungen vom physischen Client -Gerät getrennt werden, das zum Zugriff verwendet wird. Eine häufige Implementierung dieses Ansatzes besteht darin, mehrere Desktop -Betriebssysteminstanzen auf einer Server -Hardware -Plattform zu hosten, die einen Hypervisor ausführt. Dies wird im Allgemeinen als "virtuelle Desktopinfrastruktur" (VDI) bezeichnet.

Siehe auch

Verweise

  1. ^ "Microsoft Application Virtualisierung Technischer Überblick". microsoft.com. Microsoft. Abgerufen 1. Juli 2017.
  2. ^ Husain, Amir. "So erstellen Sie ein Anwendungsvirtualisierungs -Framework". vdiWorks.com. VDIWorks. Abgerufen 1. Juli 2008.
  3. ^ Gurr, Coby (28. Juli 2008). "Erleichterung von Microsoft Windows Vista -Migration durch Anwendungsvirtualisierung" (PDF). Dell.com. Dell.
  4. ^ a b c d Winslow, Philip; Semple, Robert; Maynard, Jason; Simson, Dennis; McGrath, Bryan (26. November 2007). "Die Desktop -Virtualisierung wird erwachsen" (PDF). Credit Suisse. Archiviert von das Original (PDF) am 20. Februar 2009. Abgerufen 3. März 2008.
  5. ^ "Übersichtserie: Windows Vista -Anwendungskompatibilität". TECHNET. Microsoft. Abgerufen 1. Juli 2017.
  6. ^ Pernar, Domagoj (31. Oktober 2009). "Anwendungsvirtualisierung Download Repository und So machen Sie Anwendungen tragbar". TechyCentral.com. Archiviert von das Original am 24. Februar 2011.
  7. ^ Varhol, Peter (1. September 2007). "Anwendungsvirtualisierung trifft seinen Schritt". Redmond Magazine. 1105 Medien. Archiviert Aus dem Original am 10. Juni 2008.
  8. ^ Sommer, Tim (Juni 2012). "Top 200 SAM -Begriffe - ein Glossar der Management -Managementbegriffe von Software". omtco.eu. OMTCO. Abgerufen 20. Mai 2013.
  9. ^ Marinescu, Adrian (3. August 2006). "Windows Vista Heap Management Verbesserungen" (PDF). Blackhat.com. Microsoft.
  10. ^ Jackson, Chris (30. April 2008). "Können Sie Anwendungen in SoftGrid virtualisiert?". Microsoft.
  11. ^ Enzler, R (2003). "Virtualisierung von Hardware mit rekonfigurierbaren multi-kontext-Arrays". Internationale Konferenz zu Feldprogrammierlogik und Anwendungen.