900 likes | 1.03k Views
Grid Computing. Konzepte, Techniken und Anwendungen. Peter Brezany Institut für Softwarewissenschaft Universität Wien Tel. : 01/4277 38825 E-mail : brezany@par.univie.ac.at Sprechstunde: Dienstag 13.00-14.00. Motivation für Grids Grundbegriffe Bestehende Architekturen
E N D
Grid Computing Konzepte, Techniken und Anwendungen Peter Brezany Institut für Softwarewissenschaft Universität Wien Tel. : 01/4277 38825 E-mail : brezany@par.univie.ac.at Sprechstunde: Dienstag 13.00-14.00
Motivation für Grids Grundbegriffe Bestehende Architekturen Neue Entwicklungen Web Services Integration von Web Services und Grid Services OGSA (Open Grid Service Architecture) Lernziele
Grid Computing – ein relativ neues Forschungsgebiet Früher nur in wissenschaftlichen Kreisen bekannt und „big-science“ Anwendungen. Jetzt näher zum „every-day life“ (e-Business, medicine, usw.) Große Firmen (IBM, Sun, Microsoft) machen jetzt auch mit. Bei Grid Computing geht es um das gemeinsame Verwenden von verschiedenen Arten von Resourcen, eine moderne Sharing-Community Einführung
Beispiel Wasserversorgung – Früher: „Hausquelle“ / Brunnen – Heute: Wassersammelstelle Leitungen Wasserhahn Beispiel Energieversorgung Früher: Generator Heute: „Großer Generator“Stromleitungen Steckdose Power Grid Computational Grid / Grid Computing (z.B.: NASA: „Information Power Grid“ (www.ipg.nasa.gov)) Logische Konsequenz: Grid Computing Rechenleistung (und vieles mehr) aus der „Steckdose“ Viele Rechner zu einem Großen Netz verbunden; Vorteile: Komplett neue Möglichkeiten der Zusammenarbeit für Unternehmen Hardwareersparnis („mieten“) (vgl. Generator / Quelle) Teuere Software „mieten“ statt kaufen Selbst z.B. Rechenleistung anbieten Einleitende Visionen
"The Internet is about getting computers to talk together; Grid computing is about getting computers to work together." Tom Hawk, IBM's general manager of Grid computing Grid Computing Vision
Tim Berners-Lee replies to the question „What did you have in mind when you first developed the Web?“ by saying "The dream behind the Web is of a common information space in which we communicate by sharing information.“ If applied to the Grid computing this sentence can be rephrased to “The dream behind the Grid computing is a common resource space in which we can work together using shared recources.“ Grid Computing Vision (2)
Classical Web Classical Grid More computation Web im Vergleich zum Grid
Semantic Web Richer semantics Classical Web Web im Vergleich zum Grid (2)
Semantic Grid Semantic Web Richer semantics Classical Web Classical Grid More computation Web im Vergleich zum Grid (3) Source: Norman Paton
Definition nach www.globus.org1: „The Grid“ ist eine Infrastruktur, die eine integrierte, gemeinschaftliche Verwendung von Ressourcen erlaubt. Als Ressourcen kommen nicht Rechenleistungund Speicherplatz in Frage, sondern ganze (und beliebige) Geräte können im Gridgemeinschaftlichverwendet werden, also zum Beispiel Hochleistungscomputer, Netzwerke,Datenbanken, Teleskope, Mikroskope bis zu Elektronenbeschleunigern. Ziel des Grid istes, dass man auf Geräte zugreifen kann, als ob man sie besitzen würde, ohne sie kaufenzu müssen. Charakteristika von Grid-Anwendungen: - Große Datenmengen - Großer Rechenaufwand Sicheres Resourcen-Sharing zwischen unabhängigenOrganisationen ----------------------------------------------------------- 1Praktisch alle wichtigsten Grid Projekte bauen auf middleware Globus (1998 -Globus 1, 2001 - Globus 2, 2003 - Globus 3, 2005 – Globus 4) Grid Computing - Definition
Abstrakte GridArchitektur gni – Grid node (Knoten) Grid node: Computing Element (CE), Storage Element (SE), telescope, microscope, etc. ni – compute node ioi– I/O node n1 n2 io1 gn1 gn6 IN gn2 WN n4 n3 io2 gn5 gn3 gn4 Example: gn2 – combined CE and SE (research of Prof. Schikuta, Univ. Vienna)
Das Grid-Problem: – Koordinierte gemeinsame Resourcennutzung (-sharing) und gemeinsamesLösen von Problemen in dynamischen, multiinstitutionalen „Organisationen“. – Sharing bedeutet hier: Direkter Zugang zu Computern, Software, Daten, Geräten, etc. – Sharing Regeln zwischen Anbietern und Benutzern definieren wem was wie wann zur Verfügung steht. Anzahl von Individuen und/oder Institutionen Sharing Regeln Grid Problem VO (Virtual Org.)
Gemeinsame Verwendung von geographisch getrennten Resourcen: – Keine gemeinsame Zentrale – Keine zentrale Kontrolle – Niemand ist allwissend – Keine Vertrauensbeziehungen untereinander Komplexe Anforderungen: – Programm X auf den Rechnern von Y ausführen (Vertrag P)wobei die Daten von Z stammen (Vertrag Q).Y und Z müssen keine Beziehung haben. (Delegation) Grid Voraussetzungen
• Zweck, Ziel, Größe, Dauer, Struktur, etc. variieren Anforderungen von VOs: – Hochflexible Sharing-Beziehungen (C/S bis P2P) – Ausgereifte und präzise Kontrolle – Feine und grobe Zugangskontrolle – Abrechnung – Zeitplanung Virtuelle Organisation (VO)
• Autohersteller beauftragt: – Application service provider (ASP) Finanzielle Vorhersage – Storage service provider (SSP) (Historische) Daten – Cycle providers Rechenleistung für die Analyse Szenarienanalysen für neue Fabrik (bzw. Standort) durchzuführen. VO Beispiel
VO Beispiel (2) Figure:An actual organization can participate in one or more VOs by sharing some or all of its resources. We show three actual organizations (the ovals), and two VOs: P, which links participants in an aerospace design consortium, and Q, which links colleagues who have agreed to share spare computing cycles, for example to run ray tracing computations. The organization on the left participates in P, the one to the right participates in Q, and the third is a member of both P and Q. The policies governing access to resources (summarized in “quotes”) vary according to the actual organizations, resources, and VOs involved.
• Protokoll: – Menge von Regeln für Endpunkte von Telekommunikationssystemen zumInformationsaustausch – Standardprotokoll gewährleistet Interoperabilität • Dienst (Service): – Netzwerkfähige Instanz mit einer bestimmten Fähigkeit Definiert durch Protokoll und Reaktion auf eine Protokoll-Nachricht (service = protocol + behavior) • Application Program Interface (API): – Standardinterface für Zugriff auf Funktionalität (ein Protokoll kann mehrere APIs haben) – Ermöglicht Portabilität • Software Develpment Kit (SDK): – Implementiert ein API (zB. Globus Toolkit) Definitionen: Protokoll, Dienst, API, SDK
Application Internet Protocol Architecture “Coordinating multiple resources”: ubiquitous infrastructure services, app-specific distributed services Collective “Sharing single resources”: negotiating access, controlling use Resource “Talking to things”: communication (Internet protocols) & security Connectivity Transport Internet “Controlling things locally”: Access to, & control of, resources Fabric Link Grid Protokoll Architektur vs. IP Architektur Application
• Fabric: – (Computer / Dateisysteme / Archive / Netzwerke / Sensoren / ...) (open, read, write, close, ...) – Kaum Beschränkungen am low-level solang Schnittstellen erfüllt • Connectivity: (neck) – Kommunikation (IP, DNS, Routing, ...) – Sicherheit (Grid Security Infrastructure, GSI) - Einheitliche Authentifikation - Single sign-on - Delegation - Public Key Technologie Grid Architektur (1)
• Resource Layer: (neck) – Grid Resource Allocation Management (GRAM) Zuweisung, Reservierung, Monitoring, Steuerung von Rechenresourcen – GridFTP Protokoll (FTP Erweiterungen) Hochgeschwindigkeitsdatenzugriff und –Transport – Grid Resource Information Service (GRIS) Zugang zu Struktur- und Statusinformationen – Netzwerkreservierung, Beobachtung und Steuerung – Baut auf Connectivity Layer (GSI & IP) auf. Grid Architektur (2)
Collective Layer: – Globale Protokolle und Dienste – Baut auf dem „neck“ auf – ist komplett „unabhängig“ von denResourcen – Verzeichnisdienste – Monitoring- und Diagnosedienste – Datenreplikationsdienste – etc. • Applications: – Verwenden Dienste beliebiger Layer Grid Architektur (3)
Data Grid • Ursprüngliche Motivation: Wissenschaftliche Anwendungen • sind sehr daten intensiv und enorm große Menge von • Forschern aus der ganzen Welt will einen schnellen • Zugriff auf diese Daten haben. • Perspektive Anwendungen von Data Grids: Medical Grids, • E-Business und E-Commerce Grids.
Modell Architecture für Data Grids Attribute Specification Replica Catalog Metadata Catalog Application Multiple Locations Logical Collection and Logical File Name MDS Selected Replica Replica Selection Performance Information & Predictions GridFTP commands NWS Disk Cache TapeLibrary Disk Array Disk Cache Replica Location 1 Replica Location 2 Replica Location 3
2 different kinds of files: Master files (owned by their creators) Replica files. There may be many replicas of a master file. Replicas are owned by, managed by, and may be deleted by, the Grid. The notion of replicas is new, and critical in a Grid environment. Example: Before a DataGrid job can run at site A, data at site B may need to be copied to site A. This data may then be used by subsequent jobs at site A, or may be needed by jobs at site C, which has a better network connection to site A than site B. For this reason, the data should be kept at site A as long as possible. The ReplicaManager keeps track of all replica data so that the replica selection service can select the optimal replica to use for a given job, or to request the creation of a new replica. Storage Model
Data Replication Across Grid Nodes By providing a copy (replica) of a data item close to a client application, access times can be reduced. Replication can also help in load balancing and can improve reliability. X/data/file1.DB file1.DB Y/data/file1.DB (logical name) Z/data/file1.DB X, Y, Z – Grid sites Replica Catalog (physical names)
SQLDatabaseService This servis allows to efficiently store, retrieve and query very large amounts of meta data held in any type of local or remote RDBMS. The database can be used for the implementation of catalogs. Spitfire project : A set of grid enabled database middleware services – access to relational databases.
Die bisher diskutierten Konzepte implementiert von mehreren SDK, z.B. Globus (U.S.), Unicorn (EU Projekt), European Data Grid (EU Projekt), usw. Nur in wissenschaftlichen Kreisen gut bekannt und Fokus auf „big-science“ Anwendungen. Fast keine Anbindung von Datenbanktechnologien, Anwendung von „flat files“. Notwendigkeit näher zum „every-day life“ (e-Business, medicine, usw.) zu sein. Ignorierung von Web Entwicklung – Web Service Technologien Große Firmen (IBM, Sun, Microsoft, usw.) beginen jetzt auch mitzumachen. Richtung: Web Services State of the Art in 2002
Integration von Grid- und Webtechnologien - zuerst nur eine Initiative vom Globus-Projekt und IBM; jetzt eine Aufgabe des Global Grid Forums. Erweiterung von Web Service Standards wie SOAPund WDSL um die offenen Spezifikationen von Globus. OGSA- ein Set von Spezifikationen und Standards, das die Vorteile von Grid-Computing mit denen von Webservices kombinieren soll. Damit will man eine Plattform schaffen, die eine gemeinsame Nutzung von Anwendungen- und Computer-Ressourcen über das Internet auch für den kommerziellen Bereich interessant macht. Das neue Set an OGSA-Spezifikationen erweitert Standards wie XML, WSDL und SOAP mit Grid-Computing-Standards, die vom Globus-Projekt-Team entwickelt wurden. Integration von Grid und Web Services:Open Grid Service Architecture - OGSA
Software Dienst (service) akzeptiert einen digitalen Antrag (Abfrage, usw.) und liefert eine digitale Antwort. „Web service“ – Abkürzung für „Web of Services“ Web Services – der Baukasten für verteilte Systeme
Die Evolution von Software Services Programme in Assembler, C, usw.; Komponentfunktionen kommunizieren in einzelnen Speicherbereich. Entfernete Programme können kollaborieren.
Die Evolution von Software Services (2) 2 LANS, 1 benutzt CORBA und 1 benutzt DCOM 2 verbundene LANS; sie benutzen eine CORBA/DCOM Brücke
Die Evolution von Software Services (4) SOAP ist ein universalles Protokoll, das alles verbindet.
SOAP – Simple Object Access Protocol Der neue Standard für Netzwerk-Kommunikation zwischen software services. SOAP messages sind über HTTP gesendete XML Dokumente.
SOAP – Simple Object Access Protocol (2) SOAP Prozessor konvertiert XML Nachrichten in native Aufrufe.
SOAP – Simple Object Access Protocol (3) Der Client braucht WSDL, bevor er den Service aufruft.
Publizierung eines Dienstes Beispiel: Aktienkauf – Anwendung des Packages GLUE package example.soap; // An interface for buying stock public interface ITrader { /* * Purchase the specific stock * @param quantity The number of shares to purchase. * @param symbol The ticker symbol of the company. * @throws TradeException, if the symbol is not recognized. * @return The cost of the purchase. */ float buy (int quantity, String symbol ) throws TradeException; } Itrader.java
Publizierung eines Dienstes (2) Trader.java package example.soap; public class Trader implements Itrader { public float buy (int quantity, String symbol ) throws TradeException { if (symbol.equals( “IBM“ ) ) return 117.4 * quantity; else if (symbol.equals( “MSFT“ ) ) return 117.4 * quantity; else throw new TradeException( “symbol “ + symbol + “not recognized“); } }
Publizierung eines Dienstes (3) TraderServer.java package example.soap; import -----.registry.Registry; import -----.server.http.HTTP; public class TradeServer { public static void main ( String[] args ) throws Exception { // start a web server on port 8003, accept messages via /soap HTTP.startup (“http://localhost:8003/soap“ ); // publish an instance of Trader Registry.publish( “trader“, new Trader() ); } }
Bindung zu einem Web-Service Wenn ein Objekt schon als Web-Service publiziert ist, kann sich der SOAP-Client zu ihm binden und ihn aufrufen. package example.soap; import -----.registry.Registry; public class TraderClient { public static void main ( String[] args ) throws Exception { // the URL of the web service WSDL file String url = ( “http://localhost:8003/soap/trader.wsdl“ ); // read the WSDL file and bind to its associated web service ITrader trader = (ITrader) Registry.bind( url, ITrader.class ); // invoke the web service as if it was a local object float ibmCost = trader.buy (54, “IBM“ ); System.out.println( “IBM cost is “ + ibmCost ); } } TraderClient.java
Der Client Proxy Der binding Prozeß antwortet mit einem proxy, der eine Java Schnittstelle implementiert, deren Metode die Methoden der entferneten Stelle wiederspiegeln.
WSDL – Web Service Description Language WSDL beschreibt, was ein Web Service machen kann, wo er sich befindet, und wie er aufgerufen werden kann. Eine Anwendung kann sich theoretisch einen optimalen Service aus mehreren Services wählen. WSDL
UDDI – Universal Description, Discovery , and Integration UDDI ermöglicht Publikation und Abfragen von Informationen über Services. Beispiel: “ACME”- Kreditkontrollen UDDI
UDDI (2) UDDI wirkt als „Heirats“-Vermittler zwischen Service- Anbietern und Konsumenten.
UDDI (3) • Veröffentlichen Finden • Binden Service Registrierung Service Provider Service Verbraucher
UDDI (4) Öffentliche UDDI-Operatoren synchronisieren regelmäßig ihre Inhalte.
Einordnung radikales Refactoring von Grid ‚alt‘ (Globus 2) Integration von Technologien der Grid- und WebService-Community Ziele ermöglichen verteilter, heterogener und dynamischer VOs effizientes Ressource-Sharing Plattform- und Programmiersprachenunabhängigkeit basierend auf offenen Standards Virtualisierung e-business und e-science Anwendungen, auch kommerzielle Nutzung auf Basis moderner Technologien (Web Services, Grid Technologien) Players … wer steht dahinter? Global Grid Forum (ursprünglich initiiert von Globus, IBM), zusätzlichANL, NASA, US DOE, US NSF, HP-Compaq, Intel, Microsoft, Sun,… Open Grid Service Architecture - OGSA
Ein Service ist eine netzwerkfähige Entität, die ihre Funktionalität durch Nachrichtenaustausch anbietet. Ein Grid Service ist ein Web Service, dass die in der WSDL beschriebenen OGSA-Interfaces implementiert und damit in Verbindung stehende Konventionen befolgt. Ein Grid ist eine erweiterbare, dynamische Menge von einzelnen Grid Services, die auf unterschiedliche Art und Weise miteinander kombiniert werden können, um den individuellen Anforderungen von VOs entsprechen zu können. Service - Grid Service - Grid