zur Gliederung

Konzepte des Grid Computings


[zurück] ... [Sicherheit] ... [Skalierbarkeit und Virtualisierung] ... [Grid Protokoll Architektur] ... [Standard: OGSA] ... [Hosting Umgebung] ... [weiter]

Sicherheit

Entscheidende Sicherheitsaspekte für Grid Computing sind die Möglichkeit den Zugriff auf Ressourcen für autorisierte Teilnehmer zu gewährleisten. Die Authentizität und die Berechtigung die bereitgestellten Ressourcen zu nutzen wird durch bereits bewährte Methoden und Technologien erreicht. Zertifikate stellen die Identität eines Teilnehmers sicher, Verschlüsselung der Datenpakete gewährleisten die Übertragungssicherheit und Policies liefern den rechtlichen Hintergrund zur Nutzung der angebotenen Ressourcen.
Durch den heterogenen Aufbau der Grids müssen die lokalen Sicherheitslösungen integriert werden können. Wird der Zugriff auf ein Grid durch ein Gridportal bereitgestellt, kann die Sicherheit duch einmaliges Anmelden (Single-Sign-On z.B. mit Kerberos) erhöht werden und lokale Verzeichnisdienste (z.B. LDAP) können durch ein Abbild der Organisation das Berechtigungskonzept liefern. 

Aus Sicht der Gridteilnehmer sind Funktionssicherheit (Safety), Autorisierung und Authentifizierung (Security) sowie die Vertraulichkeit (Confidentiality) der angebotenen Ressourcen entscheidend. Diesen Aspekten kann durch Schaffung von Standards und der Offenlegung der definierten Schnittstellen und Protokolle entspochen werden.

[top]

Skalierbarkeit und Virtualisierung

In einem Grid muß die Möglichkeit geschaffen werden die Ressourcen horizontal dynamisch an das Grid anzubinden. Ihre Verfügbarkeit für die Teilnehmer unterliegt dabei den Nutzungsbedingungen der einzelnen Ressourcen Provider. Für den Nutzer sind sämtliche Ressourcen eines Service Grids virtualisiert. Selbst wenn die einzelnen Ressourcenprovider gegenüber dem Nutzer bekanntgegeben werden, ist die konkret genutzte Ressource, die Aufgabenzuteilung sowie die Verwaltung der durch den Workflow des Services beschriebenen Abläufe für den Nutzer transparent.

[top]

Die Grid Protokollarchitektur

Die Grid Protokoll Architektur ist eine generelle Untergliederung der Protokolle in Funktionsschichten. Dabei werden die Komponenten einer Gridarchitektur den jeweiligen Funktionsschichten zugeordnet, sodass eine funktionale Trennung erfolgt. Die Komponenten einer Funktionsschicht sind im Bezug auf charakteristische Merkmale gleich und bauen auf die durch niedrigere Schichten bereitgestellten Funktionen auf.

Grid Protokolle vs. Internet Protokolle

Grid und Internet Protokoll Architektur im Vergleich


Der Fabric Layer:

Auf dem Fabric Layer befinden sich die konkreten Ressourcen, auf die über offene Protokolle der höheren Layer zugegriffen werden soll. Die Komponenten des Fabric Layers stellen dabei die angebotenen Ressourcen eines Gridteilnehmers (z.B. einer beteiligten Organisation) da und unterliegen seiner administrativen Kontrolle. Auf diesem Layer werden daher die lokalen ressourcenspezifischen Operationen der sowohl physisch als auch logisch vorhandenen Komponenten bereitgestellt. Herstellerspezifische Protokolle müssen zur Anpassung in die Protokollarchitektur in neutralen Protokollen vereinfacht werden, um den Zugriff außerhalb des eigenen Bereiches zu gewährleisten. Weiterhin müssen auf diesem Layer Abfragemechanismen bereitgestellt werden, um die Struktur, den Status und die Möglichkeiten der angebotenen Ressourcen an höhere Layer zu übermitteln. Auch die Reservierung einzelner Ressourcen für die Zuteilung von Aufgaben sollte ermöglicht werden, um eine dynamische Aggregation und die Qualität der auf höheren Layern angebotenen Services zu sichern. Sollten die einzelnen Komponenten nicht über diese Funktionalität verfügen, übernimmt eine geeignete Middleware wie z.B. das Globus Toolkit die Bereitstellung der notwendigen Mechanismen.

Typische Komponenten und wichtige Operationen wären auf diesem Layer beispielsweise

Der Connectivity Layer:

Auf dem Connectivity Layer werden die wesentlichen Kommunikations- und Authentifizierungsprotokolle definiert, um die Kommunikation zwischen den einzelnen Ressourcen des Fabric Layers zu ermöglichen und die Identität der Benutzer und der angebotenen Ressourcen sicherzustellen. Der Datentransport, das Routing und Naming wird über bewährte Kommunikationsprotokolle und -techniken der Internetarchitektur ermöglicht.

Die oben angesprochenen Sicherheitsaspekte werden ebenfalls mit den Standards des Internets umgesetzt, um dem Sicherheitskonzept der vituellen Organisation zu genügen. Autentizität und Authorisierung wird dabei durch

erreicht. Das Globus Toolkit unterstützt dabei diese Aspekte durch die Grid-Security-Infrastructure (GSI), die auf die Transport-Layer-Security (TLS) aufbaut und sie im Sinne der Gridarchitektur erweitert.

Der Ressource Layer:

Auf dem Ressourcen Layer findet das Management der unteren Layer und die Umsetzung des Teilens von Ressourcen statt. Eine sichere Vermittlung, Initiierung, Überwachung und Steuerung der verteilten Komponenten des Fabric Layers, sowie die Abrechnung der einzelnen Ressourcen bei deren Nutzung, wird von diesem Layer mit diversen Management- und Informationsprotokollen unterstützt. Diese Protokolle müssen so einfach wie möglich gehalten bleiben, um eine universelle Verwendbarkeit für das breite Spektrum der unterschiedlichen Ressourcentypen zu ermöglichen.
Die Informationsprotokolle liefern den Status der angebotenen Ressourcen, um Informationen über die Konfiguration, die Auslastung und die Nutzungsbedingungen zu erhalten. Die Managementprotokolle und die dafür vorgesehenen Softwareschnittstellen übernehmen dabei den Zugiff auf die einzelnen Ressourcen, um beispielsweise Prozesse zuzuteilen oder die Erreichbarkeit von Daten zu gewährleisten, jedoch immer unter dem Vorbehalt den Policies des Anbieters zu genügen und eine nachträgliche Verrechnung zu ermöglichen.

Auf diesem Layer werden also die Protokolle bereitgestellt, die das Zusammenspiel der Teilnehmer einer virtuellen Organisation untereinander regeln. Das Globus Toolkit unterstützt diese Layerfunktionalität mit den standardbasierten Protokollen des Grid Ressource Information Protokolls (GRIP) und des HTTP basierten Grid Ressource Allocation and Management Protokolls (GRAM).

Der Collective Layer:

Während auf dem Ressourcen Layer noch einzelne Ressourcen betrachtet wurden und auf die Einfachheit der verwendeten Protokolle großen Wert gelegt wurde, wird auf dem Collective Layer eine globale Sicht auf die angebotenen Services über Protokolle und Softwareschnittstellen erreicht. Die verschiedenen Ressourcen werden hier gebündelt und es wird eine Differenzierung zwischen den verschiedenen Angeboten vorgenommen, wobei auch speziellen Aufgaben durch Definition spezieller Services genügt werden kann. Die eigentliche Gridfunktionalität wird so durch die unterschiedliche Verwendung der verschiedenen Services erreicht, indem Workflows definiert werden.

Typische Services dieses Layers sind

Der Application Layer

Auf dem Application Layer steht die eigentliche Anwendung für die Benutzer einer virtuellen Organisation im Vordergrund. Aus der Anwendung heraus werden die Schnittstellen über die jeweiligen Protokolle der unteren Layer versorgt, so dass den speziellen Anforderungen der Anwendung durch die Verwendung der Services der unteren Layer entsprochen werden kann. Jede Benutzerinteraktion mit einer verteilten Ressource wird von diesem Layer angestoßen und an die Services der unteren Layer mit Hilfe der definierten Protokolle und Schnittstellen durchgereicht.

Das Globus Toolkit unterstützt die Funktionalität dieses Layers mit der Bereitstellung von Grid Service Frameworks und Bibliotheken für höhere Programmiersprachen wie C, Java und Python. 

[top]

Standard: Open Grid Service Architecture OGSA

Die Open Grid Service Architektur ist ist ein Modell des Global Grid Forums, um flexibel Komponenten in eine Problemlösungsumgebung mit Grid Computing zu integrieren. Dabei steht der Gedanke der Grid Services im Vordergrund. Die Grid Services basieren auf den bewährten Basistechologien der Web Services und erweitern deren Funktionalität, um dynamisches Binden der einzelen Services zur Schaffung dauerhafter Workflows.

Die OGSA beschreibt dabei das Verhalten von Grid Services und deren Instanzen in abstrakter Weise, so dass Themen wie die Semantik, das Erstellen, die Lebenszeit und die Kommunikation mit Insatnzen definiert werden, aber nicht die konkrete Arbeitsweise eines speziellen Services.

Web-Service Basistechnologien:

webservice
Die drei Basistechnologien für Web Services ermöglichen das Veröffentlichen eines Services, das Linken und Binden dieses Services an den Anfragenden und anschließend die Verarbeitung des Services.
Für die Verwendbarkeit in einem Grid wird das statische Binden des Services an den Anfragenden als nachteilig empfunden, da so ein unterbrechungsfreies Umschalten zwischen den Services und damit das Abbilden dauerhafter Workflows im Sinne des Grids nur schwer möglich ist. Durch die Erweiterung des Web Service Konzepts, um Handles und Referenzen, kann dem entsprochen werden.

Vom Web- zum Grid-Service:

Vorerst wird der Gedanke der nutzerorientierten Services auf alle Bestandteile eines Grids ausgedehnt, womit alle Ressourcen des Grids zu Grid Services werden. Jeder Grid Service erhält standardisierte Service Daten im XML-Format, die die Informationen für eine konkrete Grid Service Instanz vorhalten und über standardtisierte Operationen abgefragt werden können. So können spezielle Service Schnittstellen veröffentlicht und verfügbar gemacht werden. Weiterhin muss das dynamische Erstellen solcher Grid Service Instanzen und das Benachrichtigen der Instanzen untereinander zur Abbildung von Workflows ermöglicht werden.

Die serviceorientierte Sicht ermöglicht die Definition von Schnittstellen, ohne sich Gedanken über die Protokolle machen zu müssen, die diese Schnittstellen umsetzen sollen. Das OGSA Modell sieht hierfür Standardschnittstellen (in WSDL Porttypen) vor, die die oben genannte Grundfunktionalität für Grid Services verwirklichen.

Jeder Grid Service muss wenigstens die Grid Service Schnittstelle implementieren, um seine Servicedaten erreichen zu können und ein definiertes Lifetime Management zu gewährleisten. Service Daten beschreiben die Anforderungen der Schnittstelle an einen Grid Service, der diese Schnittstelle implementiert. Die Implementierung weiterer Standardschnittstellen erweitert diese Grundfunktionalität.

Hier eine Liste der von der OGSA vorgeschlagenen Standardschnittstellen:

Port Typ Operation Beschreibung
Grid Service Find Service Data Abfrage einer Vielzahl von Informationen zu einem Grid Service (Handle, Referenz, Handle Map)
Set Termination Time Setzen und Auslesen der Terminierungszeit für eine Grid Service Instanz
Destroy Terminieren einer Grid Service Instanz
Notification Source Subscribe to Notification Topic Hinzufügen von Benachrichtigungen von servicebezogenen Ereignissen
Notification Sink Deliver Notification Asynchrones Versenden von Benachrichtigungsmeldungen
Registry Register Service Registrierung von Grid Service Handles
Unregister Service Löschung einer Registrierung eines Grid Service Handles
Factory Create Service Erstellen einer neuen Grid Service Instanz

Ein Grid Service, der die Factory Schnittstelle implementiert ist in der Lage dynamisch neue Grid Service Instanzen zu erstellen. Diese neu erstellten Instanzen verfügen über einen Grid Service Handle, der die Instanz dauerhaft eindeutig identifiziert, und über eine Grid Service Referenz, die die aktuell verwendete Ressource ausweist. Das Mapping von Handle zur Referenz wird über die Handle Map vollzogen, wobei die einzelnen Handles über eine Registry bekannt gegeben werden.

Durch das Konzept von Handle und Referenz ist sichergestellt, dass eine Grid Service Instanz von ihrer konkreten Ressource losgelöst ist. Die Referenz ist nicht dauerhaft und dient zum dynamischen Binden der für die Service Instanz verantwortlichen Ressource an den Anfragenden (Client) des Services. Das Möglichkeit zwischen Service Referenzen zu wechseln garantiert dabei das unterbrechungsfreie Umschalten zwischen den Ressourcen während der Abarbeitung eines Jobs.

Ein Grid Service mit implementierter Registry Schnittstelle dient zur Registrierung der in der jeweiligen Hosting Umgebung angebotenen Services und ermöglicht die Instanzierung dieser durch Veröffentlichung der Factory Services. Weiterhin dient er zur Registrierung der in dieser Umgebung laufenden Service Instanzen.

Die Notification Schnittstellen ermöglichen die Kommunikation von Service Instanzen untereinander. Die Benachrichtigungsquelle kann sich über servicebezogene Ereignisse mit anderen Instanzen austauschen und eine Antwort aller angesprochenen Instanzen bekommen, die beispielsweise den Erhalt der Nachricht quittieren. Durch diese Schnittstellen lassen sich Workflows zur automatischen Verarbeitung definieren und weiterhin die Aktivität der Instanzen überprüfen. Ständige Kommunikation zwischen den Instanzen ist beispielsweise für das Aktualisieren der Lebenszeit einer Instanz sinnvoll, da bei deren Ablauf die Instanz beendet werden würde.

Konkrete Grid Services, wie z.B. Scheduler-, Broker- und Ko-Allokationsservices, implementieren wenigstens die Grid Service Schnittstelle und liefern so die im OGSA Modell geforderte Dynamik der Grid Service Instanzen, die über die Handles und Referenzen gewährleistet wird.

[top]

Beispiel einer Hosting Umgebung

Beispielhaft für die Verwendung von Grid Services in einer Hosting Umgebung soll hier das Gegenüberstellen von einer einfachen und einer virtuellen Hosting Umgebung sein (entnommen aus "The Physiology of the Grid" von Ian Foster, Carl Kesselman, Jeffrey M. Nick und Steven Tuecke):

simple Hosting Environment Die einfache Hosting Umgebung 

verfügt über eine administrative Domäne und es werden durch die bereitgestellten Services nur lokale Ressourcen angesprochen. Die farbigen Services können als Verwaltungsservices und die weißen als Nutzerservices verstanden werden.

Jeder Fabrik Service für einen Nutzerservice wird in der Registry notiert und veröffentlicht. Clients können diese Fabriken dadurch erreichen. Bei einer Benutzeranfrage nach einem Service richtet die Fabrik, die für diese Umgebung und für diesen angefragten Service spezifische Kapazitäten ein, um eine neue Service Instanz zu erstellen.
Ein Handle zu dieser Service Instanz wird eingerichtet und die Instanz in der Registry registriert. Der Handle wird in die Mappingtabelle aufgenommen und zeigt durch seine Referenz direkt auf die lokal zugeordneten Ressourcen und deren Operationen.

virtual Hosting Environment 

Die virtuelle Hosting Umgebung

Die virtuelle Organisation dieser Hosting Umgebung dehnt sich auf zwei heterogene, geografisch verteilte Hosting Umgebungen aus.
Die virtuelle Hosting Umgebung resultiert z.B. aus einer B2B Partnerschaft, wobei durch Delegierung der angebotenen Grid Services in eine übergeordnete, virtuelle Schicht die globale Zugreifbarkeit auf die Nutzer- und Verwaltungsservices erreicht wird. Alle Nutzerservices der virtuellen Organisation werden in der übergeordneten Registry vorgehalten.
Der Zugang zu den Ressourcen kann über exakt die gleichen Schnittstellen vollzogen werden wie im 1. Beispiel.

Die Fabriken der übergeordneten Schicht delegieren ihre Aufgaben dabei an die in der Registry der unteren Schicht veröffentlichten Fabrik Services.
In der übergeordneten Registry werden außerdem Services veröffentlicht, die den Aufbau der virtuellen Organisation betreffen, wie beispielsweise die Nutzerservices, die eine Validierung der Nutzungsbedingungen sicherstellen.

Auf diese Weise lassen sich alle angebotenen Services der globalen oder der lokalen Schicht zuordnen.


Je nach Anforderung lassen sich spezielle Services wie Broker und Scheduler, die die Jobs den konkreten Ressourcen geordnet zuteilen, einerseits lokal für die Hosting Umgebung und andererseits global für die gesamte virtuelle Organisation einrichten.

Soll beispielsweise das Rendering von besonders großen Videos in einer einfachen Hosting Umgebung erfolgen, müssen die dafür notwendigen Grid Services nur lokal in der Registry über ihre Fabrik Services instanzierbar sein.
Zusätzlich notwendige Services wären exemplarisch in diesem Zusammenhang Würde dieses Verfahren standardisiert werden und sich eine virtuelle Organisation finden, die die gleichen Ziele verfolgt, könnte duch die Schaffung einer virtuellen Hosting Umgebung der Ablauf zum Rendern eines Videos in mehreren einfachen Hosting Umgebungen ortsungebunden und organisationsübergreifend erfolgen. Zusätzliche Services für den Aufbau der virtuellen Organisation müssten eingerichtet werden und die bisher lokalen Broker, Scheduler und Management Services müssten auch in der übergeordneten Schicht verfügbar sein und ihre Aufgaben delegieren. Ein Benutzerauftrag würde dann die veröffentlichten Fabrik Services in der Registry der übergeordneten Schicht ansprechen, die durch definierte Workflows den Gesamtablauf durch Instanzieren der notwendigen Services steuern würden.


[top]