cloud42 dominik muhler seminar stupro cims 13.07.2009 cims

24
Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Upload: barthold-werder

Post on 05-Apr-2015

111 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud42

Dominik MuhlerSeminar StuPro cims

13.07.2009

cims

Page 2: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 2cims

Überblick• Einführung

– Motivation: Cloud42 für cims– Webapplikation– Web Service und weitere Funktionen

• Architektur und Implementierung– Übersicht– Technologien

• Anpassung– Erweiterte Benutzerverwaltung– Demo: Prototyp

Page 3: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 3cims

Überblick• Einführung

– Motivation: Cloud42 für cims– Webapplikation– Web Service und weitere Funktionen

• Architektur und Implementierung– Übersicht– Technologien

• Anpassung– Erweiterte Benutzerverwaltung– Demo: Prototyp

Page 4: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 4cims

Motivation

• Management Framework– Grundfunktionalitäten bereits vorhanden– Webapplikation und Webservice-Interface– Modulare Architektur– Technologien

• Erweiterte Funktionalitäten– Remote-Zugriff auf Instanzen– Notification Mechanismus

Page 5: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 5cims

Webapplikation (1)

Page 6: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 6cims

Webapplikation (2)

Page 7: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 7cims

Webservice

• Zustandslos → kein Session-Handling• Besteht aus 4 einzelnen Webservices

– Cloud42BaseService– Cloud42FileService– Cloud42RemotingService– Cloud42NoticationService

Page 8: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 8cims

AMIs binden

• Erstellen eines Image aus laufender Instanz (→ Snapshot)

• Bis August 2008 nicht direkt über EC2-Schnittstelle möglich

• Deshalb: EC2 AMI Tools• Image wird in S3 gespeichert und dann bei EC2

registriert

Page 9: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 9cims

Remote-Zugriff

• Instanzen steuern– SSH– Befehls- und Batchverarbeitung– Verschiedene Ausgabeinformationen

• Dateitransfer– Datei Hoch- und Herunterladen– Instanz veranlassen von URL zu laden

Anmerkung: Webapplikation erlaubt Speichern des privaten Schlüssel

Page 10: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 10cims

Notifications

Abb.: Bitzer, F. (2008): Management Framework for Amazon EC2

Page 11: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 11cims

Überblick• Einführung

– Motivation: Cloud42 für cims– Webapplikation– Web Service und weitere Funktionen

• Architektur und Implementierung– Übersicht– Technologien

• Anpassung– Erweiterte Benutzerverwaltung– Demo: Prototyp

Page 12: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 12cims

Architektur (1)

• Modularisierung– Webapp → für JSP/Servlet-Container

– Webservice → für JSP/Servlet-Container– Core

• Service: Kapselt EC2 Schnittstelle• Remoting, Eventing• Hibernate Datenbankanbindung auf HSQLDB

Page 13: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 13cims

Architektur (2)core

service<<component>>

remoting<<component>>

webservice<<component>>

webapp<<component>>

endpoint<<component>>

domain<<component>>

eventing<<component>>

HSQLDB

Typica<<library>>

Axis2<<library>>

Trilead ssh2<<library>>

JBoss RichFaces<<library>>

JBoss Seam<<library>>

Hibernate<<library>>

EC2

Instanz X

<<Query>>

<<HTTP POST>>

<<notify>>

Page 14: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 14cims

Typica

• Java API zum Zugriff auf AWS– SQS, EC2, SimpleDB, FPS, DevPay– S3 wird nicht unterstützt

• Schnittstelle zu EC2– Wrapper für EC2 WS-Interface– Sehr aktuell: WSDL Version: 2009-04-04– Query API: Parameter werden in URL kodiert

• Schnittstelle zu Eucalyptus– WSDL nicht aktuell → Modifikationen nötig

Page 15: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 15cims

Object-Relational Mapping (ORM)

Hibernate

import javax.persistence.*;

public class ExtendedUser {

@Id @GeneratedValue(strategy=GenerationType.AUTO)

private int id;

@Column(unique=true)private String name;

private String password;

@OneToOne(fetch=FetchType.EAGER)private CloudUserIdentity cloudUserRole;

//weitere Attribute{...}

//getter und setter{...}

}

Query q = session.createQuery("from ExtendedUser where name = :name and password = :password");

q.setParameter("name", nameVar);q.setParameter("password", passwordVar);

List users = q.list();

ExtendedUser user = users.get(0);

user.setName("Neuer Name");

session.beginTransaction();session.update(user);session.getTransaction().commit();

user ist persistent

session verwaltet Persistenz von Java-Objekten

Page 16: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 16cims

JBoss RichFaces & Seam

• JBoss RichFaces– Ajax Komponenten für Java

Server Faces

• JBossSeam– Java EE Framework für Rich

Internet Applications– Annotationen

<a4j:commandButton value="Save" action="#{databaseFunctions.updateGroup}" reRender="userGroupList">

<rich:componentControl disableDefault="true" for="progressPanel" operation="show" event="onclick"/>

<rich:componentControl disableDefault="true" for="userGroupConfigurator, progressPanel" operation="hide" event="oncomplete"/>

</a4j:commandButton>

Page 17: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 17cims

Überblick• Einführung

– Motivation: Cloud42 für cims– Webapplikation– Web Service und weitere Funktionen

• Architektur und Implementierung– Übersicht– Technologien

• Anpassung– Erweiterte Benutzerverwaltung– Demo: Prototyp

Page 18: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 18cims

Benutzerverwaltung

• Funktionen– Datenbankschema: Rollen, Gruppen, Rechte– 3 Sichten in Webapplikation– SuperAdmin stellt AWS Credentials bereit– Admin erzeugt Gruppen und vergibt Rechte an CloudUser

• Noch nicht berücksichtigt– Abstraktion von Clouds– Zeitliche Nutzungseinschränkungen

Page 19: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 19cims

Use-Cases cims

Page 20: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 20cims

ER-ModellCloudUserIdentity AdminIdentity SuperAdminIdentity

KeyPairMapping

CloudUserGroup

SecurityGroup

Image

AdminAuthorization

CloudUserAuthorization

besitzen

Zugriff haben

besitzen

enthalten

verwalten

verwalten

Zugriff haben

besitzenName

AMI_ID

Name

RSAPrivateKey

Name

ClassName

Param0 Param1 Param2

ClassName

Param0

Param1

Param2

besitzen

CloudUserIdentity

User

AdminIdentity SuperAdminIdentity

besitzen besitzen

Name Password

Page 21: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 21cims

Realisierung

Zugriffsbeschränkung durch Kapselung (→Proxy)

Page 22: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 22cims

Prototyp – Demo (1)

• Vorbedingungen:– SuperAdmin, Admin, CloudUser1, CloudUser2– SuperAdmin hat AWS Credentials eingepflegt

• Schritt 1:– Admin erzeugt 2 Gruppen– GruppeUnlimitiert: CloudUser1, CloudUser2– GruppeEingeschränkt: CloudUser2 (ami-22b6534b, m1.small)

• Schritt 2:– CloudUser1: GruppeUnlimitiert: ami-2547a34c, m1.large (64 bit) →

Authorisierung

Page 23: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 23cims

Prototyp – Demo (2)

• Schritt 3:– CloudUser2: GruppeEingeschränkt: ami-2547a34c,

m1.large (64 bit) → keine Authorisierung

• Schritt 4:– CloudUser2: GruppeEingeschränkt: ami-22b6534b,

m1.small → Authorisierung

Page 24: Cloud42 Dominik Muhler Seminar StuPro cims 13.07.2009 cims

Cloud4213.07.2009 24cims

Fragen?

??