Cloud Computing mit mathematischen Anwendungen Dr. habil. Marcel Kunze Engineering Mathematics and Computing Lab (EMCL) Institut für Angewandte und Numerische Mathematik IV Karlsruhe Institute of Technology (KIT) 9. Programming the Cloud KIT University of the State of Baden-Württemberg and National Laboratory of the Helmholtz Association www.kit.edu
Software Development Tools! IDE = Integrated Development Environment! Eclipse framework is very prominent: http://www.eclipse.org/ 2 Cloud Computing SS2011 M.Kunze
AWS Plugin for Eclipse! Development of Java programs: AWS SDK! Management of AWS resources: EC2, Simple DB, Elastic Beanstalk! Installation instructions at http://aws.amazon.com/eclipse/ 3 Cloud Computing SS2011 M.Kunze
Hausaufgabe 9: Google App Engine 1. Installieren Sie die Eclipse Entwicklungsumgebung 3.6 ( Helios ). Die Integration der Google App Engine ist beschrieben unter http://code.google.com/appengine/docs/java/tools/eclipse.html 2. Installieren Sie das App Engine Plugin für Eclipse entsprechend der Anleitung unter http://dl.google.com/eclipse/plugin/3.6 3. Probieren Sie die Guestbook-Applikation aus:! File -> New -> Web Application Project! Project Name: Guestbook! Run -> Run as -> Web Application Führt das Programm auf einem lokalen Webserver aus unter http://localhost:8080/guestbook.html! Laden Sie das Programm anschließend in den Google-Appspot, indem Sie den GAE-Button drücken. Achtung: Es muss bereits vor dem Hochladen eine Application-ID registriert sein!! Anwendungen können in der GAE-Konsole verwaltet werden. Bis zu 10 Application-IDs können angelegt werden. 4 Cloud Computing SS2011 M.Kunze
GAE Konsole! Verwaltung von GAE-Anwendungen im Appspot! Versionskontrolle und Monitoring 5 Cloud Computing SS2011 M.Kunze
Beispiel: Guestbook-Applikation 6 Cloud Computing SS2011 M.Kunze
Anwendungsbeispiel: Klimasimulation r 1 t 1 t 2 r 2 r 3 7 Cloud Computing SS2011 M.Kunze
Klimasimulation Negative Terme: Energieaufnahme Reflektion geht durch Rückstrahlung Boden Gewinn durch Konvektion Wird weder abgestrahlt noch reflektiert Boden und Weltall Was durchkommt, wird nicht reflektiert Verlust durch Konvektion Verlust in Atmosphäre Zustrom aus Atmosphäre 8 Cloud Computing SS2011 M.Kunze
Klimasimulation 9 Cloud Computing SS2011 M.Kunze
Klimasimulation Schreiben Sie ein Java-Programm zur Lösung der gekoppelten Gleichungen und testen Sie es mit den folgenden 3 Szenarien: 10 Cloud Computing SS2011 M.Kunze
public class Klima Simulation s; double temperatur = 0.; String name; Klima(String Name,double TB,double TA,double R1,double R2,double R3,double T1,double T2) name = Name; s = new Simulation(TB,TA,R1,R2,R3,T1,T2); public void berechne() double t; do t = temperatur; temperatur = s.iteration(); while (Math.abs(t - temperatur) > 0.001); double temperatur() return temperatur; String name() return name; String print() return (name+"\t- Temperatur: "+temperatur+" K"); 11 Cloud Computing SS2011 M.Kunze
Hauptprogramm public static void main(string[] argv) Klima gegenwart = new Klima("Gegenwart",280.,320.,0.30,0.11,0.31,0.53,0.06); gegenwart.berechne(); System.out.println(gegenwart.name()+":"+gegenwart.temperatur()); Klima komet = new Klima("Komet ",280.,320.,0.36,0.11,0.37,0.43,0.05); komet.berechne(); System.out.println(komet.name()+":"+komet.temperatur()); Klima treibhaus = new Klima("Treibhauseffekt",280.,320.,0.30,0.10,0.34,0.53,0.05); treibhaus.berechne(); System.out.println(treibhaus.name()+":"+treibhaus.temperatur()); 12 Cloud Computing SS2011 M.Kunze
Klasse Simulation class Simulation // Physikalische Konstanten final static double sigma = 5.6703e-8;// Stefan-Boltzmann-K. final static double S = 1360.;// Solarkonstante(W/m^2) final static double c = 2.6;// Konstante der Konvektion(W/m^2/K) // Simulationsparameter double Tb; // Anfangswert fuer Bodentemperatur double Ta; // Anfangswert fuer Atmosphaerentemperatur double r1; // Reflexionskoeff. Atmosphaere im kurzwell.bereich double r2; // Reflexionskoeff. Boden im kurzwell.bereich double r3; // Reflexionskoeff. Atmosphaere im langwell.bereich double t1; // Transmissionskoeff. Atmosphaere im kurzwell.bereich double t2; // Transmissionskoeff. Atmosphaere im langwell.bereich Simulation(double TB,double TA,double R1,double R2,double R3,double T1,double T2) Tb = TB; Ta = TA; r1 = R1; r2 = R2; r3 = R3; t1 = T1; t2 = T2; 13 Cloud Computing SS2011 M.Kunze
Energiebilanz // Energiebilanz der Atmosphaere double f(double Tb,double Ta,double r1,double r2,double r3,double t1,double t2) return -(1.-r1-t1+r2*t1)*S/4.-c*(Tb-Ta)-sigma*Math.pow(Tb,4.)*(1.-t2-r3)+2.*sigma*Math.pow(Ta,4.); // Energiebilanz des Bodens double g(double Tb,double Ta,double r2,double r3,double t1) return (-t1)*(1-r2)*s/4.+c*(tb-ta)+sigma*math.pow(tb,4.)*(1.-r3)-sigma*math.pow(ta,4.); 14 Cloud Computing SS2011 M.Kunze
Lösung der Differentialgleichungen // Newton-Raphson-Iteration double iteration() double det,delta1,delta2,ff,f1,f2,gg,g1,g2; ff = f(tb,ta,r1,r2,r3,t1,t2); gg = g(tb,ta,r2,r3,t1);// Funktionswerte f1 = df1(tb,r3,t2); f2 = df2(ta);// Part.Ableitungen nicht g1 = dg1(tb,r3); g2 = dg2(ta);// abhaengig von allen Variablen det = f1*g2-f2*g1;// Jacobi-Determinante der part.ableit. delta1 = gg*f2 -ff*g2;// Aenderung Tb delta2 = ff*g1 -gg*f1;// Aenderung Ta Tb += delta1/det;// Korrektur Tb Ta += delta2/det;// Korrektur Ta return Tb; 15 Cloud Computing SS2011 M.Kunze
Partielle Ableitungen // part.ableitung nach df/dtb double df1(double Tb,double r3,double t2) return -c-4.*sigma*math.pow(tb,3.)*(1.-t2-r3); // part.ableitung nach df/dta double df2(double Ta) return +c+8.*sigma*math.pow(ta,3.); // part.ableitung nach dg/dtb double dg1(double Tb,double r3) return +c+4.*sigma*math.pow(tb,3.)*(1.-r3); // part.ableitung nach dg/dta double dg2(double Ta) return -c-4.*sigma*math.pow(ta,3.); 16 Cloud Computing SS2011 M.Kunze
Implementierung in Google App Engine! Anlegen einer Web-Applikation mit dem Namen CloudVorlesung! Achtung: GWT-Button deselektieren und App-Engine selektieren!! Einfügen der Klimasimulation in ein Paket mit dem Namen klima! Erstellen von passenden Servlets: GegenwartServlet.java, KometServlet.java, TreibhausServlet.java! Erstellung einer Leitseite CloudVorlesung.html! Erstellung eines Web-Archivs (war) mit einem Steuerfile (lib/web.xml) 17 Cloud Computing SS2011 M.Kunze
Editieren von GegenwartServlet.java 18 Cloud Computing SS2011 M.Kunze
Editieren von KometServlet.java 19 Cloud Computing SS2011 M.Kunze
Editieren von TreibhausServlet.java 20 Cloud Computing SS2011 M.Kunze
Editieren von war/cloudvorlesung.html 21 Cloud Computing SS2011 M.Kunze
Editieren von war/lib/web.xml 22 Cloud Computing SS2011 M.Kunze
Erstellung und Ausführung! Erstellen des Service als Web Application! Ausführen im Browser unter http://localhost:8080/cloudvorlesung.html 23 Cloud Computing SS2011 M.Kunze
Ausführen auf der Google-Infrastruktur! App Engine Button drücken! Application-ID auswählen (Muss zuvor angelegt werden, z.b. cloudvorlesung)! Deploy drücken + Ausführen unter http://<application-id>.appspot.com 24 Cloud Computing SS2011 M.Kunze
Good to know! All course info is on http://studium.kit.edu! http://www.math.kit.edu/mitglieder/lehre/cloudcomp2011s/ 25 Cloud Computing SS2011 M.Kunze
26 Cloud Computing SS2011 M.Kunze