Cloud Computing mit mathematischen Anwendungen Vorlesung SoSe 2009 Dr. Marcel Kunze Karlsruhe Institute of Technology (KIT) Steinbuch Centre for Computing (SCC) KIT the cooperation of Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) www.kit.edu 04.08
Agenda Cloud Computing 1. Einleitung Was ist Cloud Computing? 2. Grundlagen Virtualisierung, Web Services, Java, 3. Cloud Architekturen Infrastruktur, Plattform, Anwendung 4. Cloud Services Amazon Web Services, Google App Engine 5. Aufbau einer Cloud OpenCirrus Projekt, Eucalyptus 6. Cloud Algorithmen MapReduce, Optimierungsverfahren, Praktische Übungen und Anwendungen Vorlesung im Web: http://www.mathematik.uni-karlsruhe.de/mitglieder/lehre/cloud2009s/ 2
Web-basierte Software-Produkte Web System Hypermedia-Infrastruktur, die das Ausführen von Web-Applikationen erlaubt Web-Applikation Verteilte Anwendung auf WWW-Techniken basierend, aufgebaut aus Web-Ressourcen Web-Ressourcen Durch einen Web-Server geliefertes Objekt, mit standardisierten Protokollen, auf Request eines Web-Klienten 3
Request/Response Model 4
Client-Server Model 5
Hypertext Markup Language (HTML) 6
HTML 7
extensible Markup Language (XML) Extension of HTML for structured data A way to represent machine readable information XML documents are composed of elements and attributes 8
Footnote 9
Data Information and Media 10
Providing and Comsuming 11
Service Oriented Architecture (SOA) 12
Web Service Architecture 13
Scalability 14
Some Examples for SOA KIT Integrated Information Management (KIM) Integration of Business Processes at KIT Extension with OpenID B2B in the Cloud Integration of Business Workflows Programming = Software Design and Architecture 15
KIT Integrated Information Management (KIM) service portal integrationlayer I information provider administration research and development teaching, study and further education application services integrationlayer II core services integrationlayer III i2map technical infrastructure integrationlayer IV Integration of Business Processes at KIT 16
KIM-iSOA (Integrated SOA) Studierendenportal... WebParts WebControls ASP.NET Provider Mitarbeiterportal ADO.NET, LINQ, BDC,... Integrationsschicht I BPEL WF Integrationsschicht II Landkarte (i2map) Sicherheit, IDM Infrastrukturdienste.NET, Java Legacy- System WS- System...... Datenbanken, Host-Systeme Hardware, Netze, Infrastruktur Legacy- System Integrationsschicht III Integrationsschicht IV 17
KIM-IDM: Service-Oriented Identity Management 18
BMWi Project: B2B in the Cloud Move Business Processes of SMEs into the Cloud Construction of a Cloud Enterprise Service Bus 19
Klassische Architektur Das Konzept, der Plan und das Ergebnis stimmen (meist) überein 20
Software-Architektur Das Konzept, der Plan und das Ergebnis sind verschieden Notwendigkeit zur Abstraktion: Software-Entwicklung ist daher eine schwierige Disziplin 21
Objekt-Orientierte Programmierung (OOP) OOP erlaubt es dem Programmierer, in Kategorien der Problemstellung zu denken! Durch Abstraktion reduziert sich die Komplexität Drei fundamentale Ideen Klasse/Objekt, Kapselung Klassenhierarchien, Vererbung Abstraktion, Polymorphismus 22
OOP Basics Ein Objekt kapselt Daten zusammen mit den Operationen/Funktionen Die Daten sind nur über die Methoden (Operationen/Funktionen) anzusprechen Der Bauplan für ein Objekt heißt Klasse Klassen sind Abstrakte Datentypen Data Abstrakte Datentypen Vector a, b, c; c = a + b; float x = c.x(); 23
Java Erfunden von SUN Erste Version 1995 (Heute Version 6) Programmiersprache für Web- und Standalone Programme Java ist objekt-orientiert Java ist plattformunabhängig (garantierte Genauigkeit!) Java ist portabel (Keine Betriebssystemabhängigkeit) Java ist einfach (Keine Pointer) Java ist sicher (Sandboxing) 24
Java Virtual Machine (JVM) Implementierung einer virtuellen Ausführungsumgebung (Anwendungsvirtualisierung) 25
Java ist portabel: Beispiel StarOffice Cross-Plattform Office Suite: Mac, Windows, Linux, 26
Java ist einfach und sicher Automatisches Memory-Management Referenzen statt Zeiger (keine Dangling Pointer ) Garbage Collection (keine Memory Leaks ) Keine Makefiles Keine Header Files C++ Syntax 27
Java ist Objekt-Orientiert Alle Funktionen sind stets mit Objekten asoziiert Nur Member-Funktionen Nahezu alle Datentypen sind Objekte Files, Arrays, Strings, Sockets, etc. Primitive Datentypen für Effizienz byte, short, long, int, float, double, char, boolean Super-Klasse Object wird an alle Objekte vererbt 28
Zusammenfassung Web Services Client/Server Modell Protokolle: HTML, XML Service-Orientierte Architektur (SOA) Vorlesung: Web Engineering (Dr. Nussbaumer) Java Objekt-Orientierte Programmiersprache für Web-basierte Anwendungen Java Virtual Machine (JVM) Plattformunabhängig, portabel, einfach, sicher Vorlesung: Einstieg in die Informatik mit Java (Dr. Bohlender) 29
Karlsruhe Institute of Technology Steinbuch Centre for Computing (SCC) Thank you for your attention. 30