Home »
Proseminar Webtechnologien WS07
Proseminar Webtechnologien (19566) - 2-stündig, ECTS: 4
Dozent: Joos-Hendrik Böse, R170, Sprechstunde Do.
12:00 - 14:00, Tel. 838 75124
Daniel
Bößwetter, R166
Termin
für die Blockveranstaltung ist der 5.3. ab 10:00 im K40
Die Folien, sowie ein
Entwurf der Ausarbeitung muss bis zum 27.2.2008 bei Eurem jeweiligen
Betreuer vorgestellt werden.
Inhalt
Der Fokus dieses Proseminars liegt auf der praktischen
Untersuchung
und Anwendung von verschiedenen Webtechnologien. Es werden (i) die
grundlegenden Funktionsweisen von MVC Frameworks behandelt, sowie
Best-Practice Strategien für Authentifizierung,
Benutzerverwaltung,
Lokalisierung, Indexierung, Caching etc. präsentiert. (ii) Die
aktuelle Technologie hinter dem Web 2.0 Hype: AJAX und Rest Web
Services etc. beleuchtet und (iii) einige nützliche Technologien
betrachtet wie Load Balanceing etc., die beim Betrieb von
größeren Webanwendungen nötig sind.
Nicht im Detail behandelt werden Basistechnologien wie HTTP,
HTML, CSS und JavaScript.
Diese sollten den Teilnehmern zumindest ansatzweise bekannt sein.
Termine
Das Proseminar ist eine Blockveranstaltung, die Ende Februar vom
25.02.2008 bis 07.03.2008
stattfindet. Die Themen werden am
23.10.2007 16:00 im K40 präsentiert und an
Interessenten vergeben, dabei werden die Themen nur an Anwesende
vergeben. Eine Anmeldung im KVV alleine reicht nicht aus. Eine
Teilnahme ohne Anmeldung im KVV ist möglich. Die Barbeitung der
Themen erfolgt während des Semesters in Rücksprache mit dem
Dozenten.
Themenblöcke
1. Entwicklung von
Anwendungen mit Hilfe eines Webframeworks
2. Web 2.0 und die
Technologien dahinter
3. Betrieb von
großen Webanwendungen
1.
Entwicklung von Anwendungen mit Hilfe eines Webframeworks
Ziel im ersten Themenblock ist es, die grundsätzliche
Funktionsweise von Webframeworks zu vermitteln. Fast alle Frameworks
basieren auf dem MVC/MVC2 Pattern, wir wollen uns ansehen, wie dieses
in unterschiedlichen Frameworks umgesetzt wird und welche standard
Probleme wie z.B. Authtifizierung, Lokalisierung, OR-Mapping,
Indexierung, Caching etc. in den unterschiedlichen Frameworks
durch Plug-Ins und fertige
Komponenten abgedeckt werden.
- 1. MVC Einführung am
Beispiel von Struts. (1 Person)
Hier soll eine Einführung in das MVC/MVC2 Pattern gegeben und
präsentiert werden, wie diese im Struts Framework implementiert
sind.
Bei den folgenden Themen soll jeweils eine kleine Anwendung
(Carpooling) entwickelt und präsentiert werden. Neben der
Architektur des des Frameworks soll insbesondere auf die
Unterstützung von folgenden Standardproblemen präsentiert
werden:
- Authentifizeriung, Benutzerverwaltung
- Datenanbindung - OR Mapping etc.
- Lokalisierung:
Übersetzung, Währungen, Zeit/Datumsformate
- E-Mail-Versand
- PDF-Erstellung
- Suchfunktionen: Indizierung, Caching
- MVC-System
- Web-Technologien: URIs,
Web Services
(XML-RPC),
Google-Dienste
- 2. Taming EJB: Web Entwicklung
mit Seam (4 Personen)
Webentwicklung mit Java gilt als komplex und aufwendig, vor allem wenn
es um kleinere Projekte geht. Seam ist die erste Implementierung des JSR299 Requests um EJB
3.0 Beans als JSF Managed Beans in der Präsentationsschicht
verwenden zu können. Als Präsentation Framework greift Seam
auf Facelets und JSF
zurück.
Als Alternative zu Java existieren eine Reihe von Frameworks, die eine
schnelle und intuitive Webentwicklung versprechen, hier gilt meist die
Philisophie
"
Less software and convention
over configuration".
- 3. Web Entwicklung mit Groovy und Grails (2 Personen)
Vergeben an Marco Kuris und
Norman Hein, betreut von Daniel.
- 4. Ruby on Rails (2 Personen)
Vergeben an Sebnem Türker und Armin Feistenauer,
betreut von Joos.
- 5. Django Webentwicklung
mit Python (2 Personen)
Vergeben an Florien Kniffke und
Heiko Hußmann, betreut von Daniel.
- 6. Turbogears Der Turbo für Python (1 Personen)
Vergeben an Pierre Ahrendt, betreut von Joos
2. AJAX und
Web Services
Mit den bekannten Basistechnologien JavaScript und DOM läßt
sich das Architekturprinzip AJAX realisieren. Dabei werden asynchron
Daten im Hintergrund geladen und Teile der Webseite ersetzt und
aktualisiert, sodass keine kompletten Pageturns mehr nötig sind.
Datenlieferant sind oft WebServices die per RESR oder SOAP angeboten
werden.
- 7. AJAX - Frameworks und
Bibliotheken (1 Person)
In diesem Vortrag soll grundsätzlich die AJAX Architektur
erklärt werden und mit Hilfe einer der bekannten AJAX Bibliotheken
Prototype oder Scriptaculous eine kleine Anwendung
programmiert werden.
Vergeben an Eva Jockwer, betreut von Daniel.
- 8 Web Services, REST, SOAP (1
Person)
Neben einer kurzen Einführung in WebServices (REST und SOAP)
sollen einige Beispiel WebServices wie z.B. Amazon WS präsentiert
und in einem praktischen Beispiel verwendet werden.
- 9. Webtechnologien
außerhalb des Browsers: Widgets (1 Person)
Webtechnologien findet man nicht nur im Browser, sondern auch auf dem
Desktop oder Handy in Form von Widgets (OSX und iPhone) und Nokia
Widgets.
Vergeben an Matevsz Sabadach, betreut von Daniel.
3. Betrieb von
großen Webanwendungen
Eine Webanwendung mit tausenden PI pro Stunde läßt sich
nicht mehr auf einem einzelnen 9,99€ Server bei einem Massenhoster
betreiben. Load Balancing sowie horizont- und vertikale Skalierung von
Datenbanken und Webservern werden benötigt. In diesem Themenblock
sollen einige der Techniken beleuchtet werden.
- 10. Load Balancing mit Apache,
Virtualisierung (2 Personen)
Mit Hilfe von Virtualisierung z.B. mit Xen oder VMWare soll ein kleines
Setup mit 3 Apache Web Servern und einem Loadbalancer realisiert werden.
Vergeben an Holger Solinski und Jennifer Möwert, betreut von Joos.
- 11. High Availability gemietet.
Amazon S3 und EC2. (2 Personen)
Amazon bieter mit S3 einen Speicherservice an, der beliebig viele Daten
mit hoher Verfügbarkeit ablegt. Dies können z.B. Grafiken
oder Stylesheets einer Webanwendung sein, die auf einem Server in der
Elastic Computing Cloud EC2 von Amazon läuft. In diesem Vortrag
soll gezeigt werden, wie mit Hilfe der beiden Dienste eine hoch
verfügbare und skalierende Webanwendung realisiert werden kann.
Anforderungen
Von allen Teilnehmer / Teams wird erwartet:
- Entwicklung einer Beispiel-Anwendung
- Präsentation (ca. 45 Minuten) über die jeweilige
Technologie und die Realisierung der Anwendung damit (unter
Berücksichtigung der o.g. Punkte)
- Eine Ausarbeitung (ca. 10 Seiten) als Dokumentation, die 1 Woche
nach dem Vortrag abgeliefert werden kann.
Weiterhin müssen die Besprechungstermine mit den Betreuern
wahrgenommen
werden!