cloud42 dominik muhler seminar stupro cims 13.07.2009 cims
Post on 05-Apr-2015
108 Views
Preview:
TRANSCRIPT
Cloud42
Dominik MuhlerSeminar 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
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
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
Cloud4213.07.2009 5cims
Webapplikation (1)
Cloud4213.07.2009 6cims
Webapplikation (2)
Cloud4213.07.2009 7cims
Webservice
• Zustandslos → kein Session-Handling• Besteht aus 4 einzelnen Webservices
– Cloud42BaseService– Cloud42FileService– Cloud42RemotingService– Cloud42NoticationService
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
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
Cloud4213.07.2009 10cims
Notifications
Abb.: Bitzer, F. (2008): Management Framework for Amazon EC2
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
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
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>>
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
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
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>
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
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
Cloud4213.07.2009 19cims
Use-Cases 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
Cloud4213.07.2009 21cims
Realisierung
Zugriffsbeschränkung durch Kapselung (→Proxy)
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
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
Cloud4213.07.2009 24cims
Fragen?
??
top related