Programme von Windows entkoppeln

Der nächste Trend heißt Anwendungs-Virtualisierung

04.08.2008 von Michael Pietroforte
Während die Virtualisierung von Servern immer mehr zur gängigen Praxis wird, kündigt sich mit der Applikationsvirtualisierung bereits eine weitere Entwicklung an. Die Entkopplung von Programmen und Betriebssystem kann einige alte Desktop-Probleme lösen.

Das wesentliche Ziel von Applikationsvirtualisierung besteht darin, Anwendungen von ihrer Umgebung so weit zu isolieren, dass Konflikte mit anderen Programmen oder dem Betriebssystem vermieden werden. Dadurch soll sich das Systemmanagement vereinfachen und die Sicherheit verbessern.

Der Unterschied zur Desktop- und Servervirtualisierung besteht darin, dass nicht die Hardware virtualisiert wird, sondern dass der Virtualisierer eine Abstraktionsschicht zwischen einzelnen Anwendungen und das Betriebssystem einzieht. Im Gegensatz zum klassischen Desktop entfällt die Installation von Programmen auf dem Zielrechner. Dabei handelt es sich in der Regel um Applikationen für Endanwender, weshalb diese hauptsächlich auf dem Desktop und, falls die jeweilige Lösung das unterstützt, auch in einer Terminalserver-Umgebung zum Einsatz kommen.

Unterschiedliche Verfahren

Xenocode Virtual Application Studio erlaubt das Editieren des virtuellen Dateisystems.

Die Konzepte der verschiedenen Produkte ähneln sich, aber es gibt auch einige signifikante Unterschiede. Bei allen Lösungen läuft die Anwendung in einer vom Betriebssystem abgeschotteten Umgebung. Sie regelt den Zugriff auf externe Objekte und gaukelt der Software Systemressourcen wie die Registrierdatenbank oder das Dateisystem vor. Versucht die Applikation etwa in ein gesperrtes Verzeichnis zu schreiben, wird der Zugriff entweder blockiert oder für die Anwendung transparent in die virtuelle Umgebung umgelenkt. Physisch befindet sich die virtuelle Anwendung in einem Verzeichnis, das sich meist in der Konfiguration einstellen lässt.

Graduelle Abschottung

Der Grad der Virtualisierung ist bei den verschiedenen Lösungen unterschiedlich. Bei einigen Produkten ist es möglich, das Ausmaß der Isolierung festzulegen. Beispielsweise lässt sich häufig festlegen, welche Verzeichnisse von der Virtualisierung ausgenommen sind. So kann man etwa das Benutzerverzeichnis für den Schreibzugriff freizugeben, damit der Anwender Dateien auf seinem PC speichern kann.

Unterschiede gibt es auch bei der Abschottung aus der Sicht des Betriebssystems. Manchmal sieht man mit Systemwerkzeugen wie dem Task-Manager nur das Virtualisierungsprogramm, erhält aber keine Informationen über die darin virtualisierte Anwendung. Deren Prozesse, Dateien und Registry-Einträge sind dann für das Host-Betriebssystem unsichtbar. Es gibt jedoch auch Lösungen, wo zur Laufzeit alles genau wie bei einer gewöhnlichen Anwendung erscheint. In Fall von Symantecs Altiris SVS werden die virtuellen Applikationen genau wie ihre traditionell installierten Pendants in das Betriebssystem integriert. Der Administrator kann dann unter Umständen mit Betriebssystemtools die virtuelle Umgebung, etwa in deren Programmverzeichnis, modifizieren. Wird die Virtualisierungsschicht deaktiviert, verschwindet die darin ablaufende Anwendung und alle von ihr vermeintlich am System vorgenommen Änderungen.

Einfache Softwareverteilung

Der Grad und die Art der Virtualisierung entscheiden über die möglichen Einsatzszenarien. Ein Anliegen aller Lösungen ist es, auf die fehleranfällige und aufwändige Installation von Anwendungen auf dem Desktop-PC zu verzichten. Da die virtuelle Umgebung schon alles mitbringt, was zur Ausführung der Anwendung notwendig ist, ist ihr Aufruf von einem Netzwerklaufwerk oder auch über das Web möglich. In Zusammenspiel mit einer Client-Management-Lösung vereinfacht sich der Software-Verteilungsprozess erheblich, weil die Applikation lediglich auf den Arbeitsplatz-Rechner kopiert, aber eben nicht installiert werden muss.

Die Streaming-Komponente von Symantec Altiris SVS Professional lässt sich zentral administrieren.

Ein Großteil der Produkte unterstützt darüber hinaus das Streaming von Anwendungen. Dazu gehören unter anderem Citrix XenApp Application Streaming, Endeavors Technologies Application Jukebox, Microsoft App-V und Symantec Altiris SVS Professional. Dabei wird zunächst nur der Anteil der Applikation auf den Desktop geladen, der zum Start notwendig ist. Ruft der Anwender Funktionen auf, deren Programmteile sich noch nicht auf dem Desktop befinden, werden die entsprechenden Programmblöcke nachgeladen und in der Regel im Cache abgelegt. Das beschleunigt den Start der Anwendung beim erneuten Aufruf. Um den Offline-Betrieb zu ermöglichen, ist bei einigen Lösungen auch das Herunterladen der gesamten Anwendung vorgesehen. Unterschiede gibt es bei den unterstützten Protokollen, üblich sind HTTP, HTTPS, SMB und RTSP.

In vielen Fällen erleichtert die Applikationsvirtualisierung auch die Aktualisierung von Anwendungen, denn Updates oder neue Versionen können zentral auf dem Server eingespielt werden. Und soll eine Anwendung komplett aus dem Verkehr gezogen werden, ist es mitunter ausreichend, die virtualisierte Applikation im Backend zu deaktivieren. Teilweise ist dann aber der Cache auf dem Arbeitsplatzrechner zu beseitigen. Nicht jede Lösung bringt die hierfür notwendigen Werkzeuge schon mit.

Vorteile durch Entkopplung

In jedem Fall ist die Entfernung einer virtualisierten Anwendung viel einfacher als bei herkömmlichen Applikationen, da keine Verflechtungen mit dem Betriebssystem existieren oder diese nur virtuell bestehen. Daraus resultiert noch eine Reihe weiterer Vorteile. So ist es zum Beispiel möglich, Anwendungspakete unabhängig von der Windows-Version bereitzustellen. Ältere Programme, die sich unter Windows Vista nicht installieren lassen, können so häufig doch zum Laufen gebracht werden. So erlauben Software-Virtualisierungslösungen unter Umständen überhaupt erst den Umstieg auf Vista.

Auch der Einsatz des 64-Bit-Windows wird erleichtert, denn so lassen sich auch Anwendungen ausführen, die normalerweise von dieser Variante nicht mehr unterstützt werden. Einige Produkte ermöglichen auch die Verwendung komplexerer Windows-Applikationen in einer Wine-Umgebung unter Linux oder auf Apple OS X mit Hilfe von Crossover.

Produkte wie beispielsweise VMwares ThinApp, die Anwendungen komplett voneinander abschotten können, haben darüber hinaus den Vorteil, dass verschiedene Versionen einer Anwendung problemlos auf demselben Desktop koexistieren können. Denkbar wäre etwa, Anwendern Microsoft Office 2003 und 2007 parallel zur Verfügung stellen. Verschiedene Versionen einer bestimmten Office-Anwendung lassen sich so sogar gleichzeitig starten.

Sichere Lehmschicht

Applikations-Virtualisierung verbessert auch die Sicherheit. So tut sich Malware erheblich schwerer, die Virtualisierungsschicht zu durchdringen und das Betriebssystem zu infizieren. Wie bereits angedeutet, unterscheiden sich die verschiedenen Lösungen beträchtlich bezüglich der Stringenz und der Art der Isolierung. Grundsätzlich gilt hier, dass der Grad Trennung zwischen Anwendung und Betriebssystem mit dem Maß an Sicherheitsgewinn einhergeht.

Bei VMware ThinApp lässt sich konfigurieren, welche Benutzer berechtigt sind, auf die virtualisierte Anwendung zuzugreifen.

Bei so manchem Produkt lässt sich die Isolierung so weit treiben, dass eine Anwendung, die normalerweise nur mit Administratorrechten läuft, sogar auf einen Kiosksystem, also auf einem System, das nur minimale Benutzerrechte gewährt, gestartet werden kann. Die Anwendung hinterlässt dabei keinerlei Spuren auf dem System. Man spricht dann vom so genannten "Zero Footprint".

Dieses Feature bieten nur die Produkte, die ohne die Installation eines Agenten auf dem Ziel-PC auskommen. Sie erlauben es, die gesamte virtualisierte Umgebung in eine einzige ausführbare Datei zu packen. Diese enthält dann neben der Virtualisierungs-Software alle Dateien der virtualisierten Anwendung inklusive der Registry-Einträge. Der Ziel-PC muss in diesem Fall nicht vorbereitet werden und ist es dann auch möglich, die ausführbare Datei von einem USB-Stick oder einer CD zu starten.

Ende der DLL-Hölle

Nicht zuletzt erhöht diese strikte Entkopplung von Betriebssystem und Anwendungen die Systemstabilität. Die Registry wird durch neue Programme nicht aufgebläht und man entgeht der berühmt-berüchtigten DLL-Hölle. Fehlerhaft programmierte Software kann das System kaum lahmlegen und vom Anwender kaputtkonfigurierte Umgebungen lassen sich ohne großen Aufwand wieder in den Originalzustand zurücksetzen. Und sollte doch einmal das Betriebssystem, zum Beispiel wegen eines Hardware-Defekts, neu aufgespielt werden müssen, stehen die Anwendungen sofort wieder bereit, da sich diese ja ohne vorherige Installation sofort über das Netz starten lassen.

Der Knackpunkt ist hierbei, dass vom Anwender vorgenommene Konfigurationen dann wieder verfügbar sind. Nach Möglichkeit sollten diese Einstellungen auch auf mehreren Arbeitsplatzrechnern zugänglich sein. Hier verfolgen die einzelnen Lösungen unterschiedliche Ansätze. Eine Möglichkeit besteht darin, Konfigurationsänderungen im Benutzerprofil abzulegen. Die entsprechenden Daten und Registry-Einträge werden dabei vom Rest des Profils mit der jeweiligen Virtualisierungstechnik isoliert. Diese Lösung kommt aber nur in Frage, wenn mit Server-basierten Benutzerprofilen gearbeitet wird.

Wohin mit den Benutzereinstellungen?

Einen Schritt weiter gehen Ansätze, die Benutzerdaten zusammen mit der virtualisierten Anwendung auf dem Server speichern können. Änderungen an der virtuellen Umgebung werden in diesem Fall mit einer Serverkomponente synchronisiert. Bei diesem Verfahren ist es dann auch möglich, dass Benutzer selbst Add-ins installieren oder die Applikation aktualisieren, ohne dass Administratorrechte erforderlich wären.

Einige Tools erlauben es dem Systemverwalter, solche Erweiterungen in einem eigenen virtuellen Paket abzulegen. Bei ausgefeilteren Lösungen wie der von InstallFree kann man dann zentral festlegen, welche Anwender ein bestimmtes Plug-in angeboten kommen. Zum Beispiel lässt sich so auf Knopfdruck bei diesen Benutzern der aktuelle Adobe Reader oder die Google Toolbar in den Web-Browser integrieren. Diese Technik eignet sich auch dazu, ein für die Anwendung notwendiges Framework bereitzustellen. Das ermöglicht dann beispielsweise die Verknüpfung einer Java-Applikationen mit der passenden Laufzeitumgebung.

Virtualisiertes Software-Management

Die Erstellung einer virtualisierten Anwendung ist bei allen Produkten mit der Anfertigung von herkömmlichen Installationspaketen vergleichbar. Die Anwendung wird auf einem Master-PC installiert, während der Packager im Hintergrund mitläuft. Dabei gibt es zwei unterschiedliche Methoden. Entweder es wird vor und nach der Installation jeweils ein Snapshot des Gesamtsystems erzeugt und die Differenz für das Paket verwendet, oder der Packager schiebt sich zwischen die Installationsroutine und das Betriebssystem und protokolliert alle Zugriffe mit.

Die letztere Methode gilt als zuverlässiger, da so Unterschiede zwischen Quell- und Zielsystem, etwa wenn es sich um verschiedene Windows-Versionen handelt, eher in den Griff zu bekommen sind. Im Problemfall kann man bei den meisten Produkten aber auch noch nachträglich von Hand Dateien und Registry-Einträge ergänzen.

Einfache Tools verzichten auf Agenten

Bei der Verteilung der Anwendungen verfolgen die Anbieter ebenfalls unterschiedliche Strategien. Produkte wie VMware ThinApp oder Xenocode Virtual Application Studio, die ohne Agent auskommen, bringen häufig auch keine Backend-Komponenten mit. Der Administrator stellt hier Anwendungen über ein Netzwerklaufwerk oder über die Software-Verteilungslösung eines Drittanbieters auf den PC-Arbeitsplätzen bereit.

Die Integration in die Shell erfolgt in der Regel mit Hilfe von Microsoft-Installer-Dateien (MSI). Ein Doppelklick auf eine DOC-Datei startet dann beispielsweise ein virtualisiertes Word genauso, wie es der Anwender gewohnt ist. Die MSI-Dateien müssen dann aber auf herkömmliche Art und Weise verteilt werden, was eigentlich dem Grundgedanken der Software-Virtualisierung widerspricht, da man ja möglichst ohne Installation auskommen möchte.

Vorteile von Agenten

Produkte, die auch die Verteilung virtualisierter Applikationen erlauben, bieten Features die traditionellen Client-Management-Produkten fehlen. Beispielsweise lässt sich bei InstallFree die Shell-Integration dann ebenfalls virtualisieren. Noch bevor der Benutzer die Anwendung zum ersten Mal startet, werden Verknüpfungen in das Startmenü des Anwenders eingeblendet. Entzieht der Administrator dem Benutzer oder der Gruppe die Berechtigung für den Zugriff auf die Anwendung, verschwinden auch automatisch die Verknüpfungen.

Microsoft App-V bietet eine komplette Infrastruktur für das Management virtualisierter Anwendungen.

Die Tatsache, dass virtualisierte Anwendungen nicht installiert werden müssen, eröffnet neue Möglichkeiten, die man nur voll ausschöpfen kann, wenn sie auch von den Tools im Backend unterstützt werden. Zum Beispiel kann man bei Symantecs Altiris SVS Anwendungen über ein Web-Portal für Außendienstmitarbeiter oder Partnerunternehmen bereitstellen

Verändertes Lizenz-Management

Auch das Lizenz-Management ist unter Umständen anzupassen. Schließlich fallen nur Lizenzkosten an, wenn ein Programm tatsächlich vom Anwender auf den Arbeitsplatz geladen worden ist. Interessante Features sind in diesem Zusammenhang, dass auch konkurrierende Lizenzen unterstützt werden und dass sich die Einhaltung von Lizenzbedingungen erzwingen lässt. Stehen für eine bestimmte Anwendung keine Lizenzen mehr zur Verfügung, wird dem Nutzer der Zugriff verweigert. Die Virtualisierungs-Lösung sollte dem Rechnung tragen und über ein entsprechendes Software-Metering im Backend verfügen.

Der Betreuungsaufwand dieser komplexen Lösungen ist sicher höher. Der Agent muss verteilt und gewartet werden. Im ungünstigsten Fall erfordert eine neue Version der Ablaufumgebung die Neuerstellung der Pakete für die virtualisierten Anwendungen. Die Administratoren müssen zudem erst das zugehörige Backend-System beherrschen sowie die nötige Infrastruktur einrichten und warten.

In vielen Bereichen muss die die Systemverwaltung umdenken. Beispielsweise lässt sich auch das Patch-Management nicht mehr auf die herkömmliche Art und Weise regeln. Häufig lohnt sich der zusätzliche Aufwand nur, wenn das gesamte Software-Deployment auf die Virtualisierungs-Lösung umgestellt werden kann.

Nachteile der Software-Virtualisierung

Wie bei jeder Virtualisierungs-Technologie zieht auch die Anwendungsvirtualisierung eine weitere Komplexitätsebene ein. Zwar bewerben alle Anbieter ihre Produkte damit, dass sich durch das geringere Konfliktpotential zwischen den Anwendungen der Aufwand für Regressiontests vermindert. Allerdings muss man dafür schon im Vorfeld mehr Zeit für die Erstellung der Pakete einplanen.

Schließlich muss sichergestellt werden, dass eine Anwendung auch wirklich ordnungsgemäß in einer Umgebung funktioniert, für die sie eigentlich nicht entwickelt wurde. Es gibt in der Praxis einige Applikationen, die sich nicht ohne weiteres virtualisieren lassen. Dazu gehören vor allem Programme, die eigene Gerätetreiber mitbringen.

Auch hier unterscheiden sich die verschiedenen Produkte in Bezug auf ihre Flexibilität. Im Problemfall steht man jedoch meist vor der Frage, ob das Virtualisierungs-Tool oder die Anwendung für einen Fehler verantwortlich ist. Das könnte zu Schwierigkeiten führen, wenn man den Hersteller-Support bemühen muss. Mit der zunehmenden Verbreitung von Virtualisierungslösungen werden Softwarehäuser ohnehin stärker auf Kompatibilität mit solchen Umgebungen achten und ihren Support darauf einstellen müssen.

Technik mit Potenzial

Bei Virtualisierung denken die meisten an die Konsolidierung und bessere Auslastung von Servern. Die Virtualisierung von Anwendungen ist dagegen noch weithin unbekannt und fristet noch ein Nischendasein. Laut einer Studie von IDC und Credit Suisse wird jedoch die jährliche Wachstumsrate von derartigen Lösungen in den USA bis 2012 auf 36 Prozent geschätzt, Server-Virtualisierung soll dagegen im Durchschnitt nur mit 22,6 Prozent wachsen. Die Desktop-Virtualisierung soll der Untersuchung zufolge sogar noch schneller zulegen soll (58,7 Prozent).

Dieses starke Wachstum für Anwendungsvirtualisierung beginnt allerdings auf einem niedrigen Niveau. Das dürfte daran liegen, dass bis vor nicht allzu langer Zeit kleinere Hersteller dieses Segment dominierten. Eine Reihe von Übernahmen durch Branchenschwergewichte dürfte diese Produkte für viele Unternehmen erst jetzt hoffähig machen. Dazu zählen "VMware ThinApp" (vormals "Thinstall"), Microsofts "Application Virtualization" ("Softgrid") und Symantecs "Altiris Software Virtualization".

Hersteller und Produkte

Ceedo: Ceedo Enterprise

Citrix: XenApp Application Streaming

Endeavors Technologies: Application Jukebox Enterprise Edition

InstallFree: InstallFree

LanDesk: Application Virtualization (OEM-Version von ThinApp)

Microsoft: Application Virtualization (App-V, ehemals Softgrid)

RingCube: MojoPac Enterprise Suite

Symantec: Altiris Software Virtualization Solution Professional

Trigence: Trigence AE

VMware: ThinApp

Xenocode: Virtual Application Studio