E Web-Application-Frameworks

Werbung
1 Begriff
■ Web-Application-Framework
◆ Web-basierte Anwendung oder Dienst
◆ Plattformen für die Entwicklung und den Betrieb solcher Dienste
■ Bereits erwähnte Technologien
◆ CGI-Skripte
E Web-Application-Frameworks
◆ Servlets, JSP
Browser
HTTP
HTTP
Web-Server
Container
Servlet
Servlet
Servlet
E.1
© 2002-2008, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [AvID-E-Web.fm, 2008-06-23 12.11] http://www-vs.informatik.uni-ulm.de/teach/ss08/avid/
E.2
© 2002-2008, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [AvID-E-Web.fm, 2008-06-23 12.11] http://www-vs.informatik.uni-ulm.de/teach/ss08/avid/
1.1 Anforderungen
2 EJB und Servlets
■ Web-basierte Dienste
■ J2EE-Architektur
◆ Bereitstellung von Web-Seiten
◆ integrierte Container für EJB und Servlets/JSP
• statisch und dynamisch
Client
• Vorlagen (Templates) für dynamische Seiten
HTTP
• Ajax-Unterstützung
Client Tier
Client
IIOP
Firewall
◆ Datenbankzugriff
• 3-Tier Architekturen mit Datenbank als „Hüterin“ der wichtigen
Geschäftsdaten
Servlet/JSP
• Transaktionsunterstützung
EJB-Container
◆ Sicherheitskonzepte
JDBC
• Authentisierung, Autorisierung
◆ Deployment
SQL
• einfache Installation
Middle Tier
EJ Beans
J2EE-Server
EIS Tier
• einfache Entwicklung
E.3
© 2002-2008, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [AvID-E-Web.fm, 2008-06-23 12.11] http://www-vs.informatik.uni-ulm.de/teach/ss08/avid/
E.4
© 2002-2008, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [AvID-E-Web.fm, 2008-06-23 12.11] http://www-vs.informatik.uni-ulm.de/teach/ss08/avid/
2 EJB und Servlets (2)
2 EJB und Servlets (3)
■ Webseiten
■ Datenbankanbindung
◆ statische Seiten: umgebender Webserver oder im Servlet-Container
◆ Datensätze repräsentiert durch Entity-Bean oder Entity
◆ dynamische Seiten: Servlet oder JSP
◆ objektbasierter Zugriff
◆ automatische Synchronisation mit Datenbank
• JSP als Vorlage für Webseite
◆ implizite Transaktionsunterstützung
■ MVC-Architektur
◆ automatische Tabellenerzeugung möglich
◆ Model realisiert durch EJB-Komponenten
• aus Deployment-Descriptoren oder Annotations
◆ vereinfachter Zugriff über spezielle Tag-Libraries
■ Sicherheitsunterstützung
◆ Übergabe von Daten über Data-Value-Objects
◆ implizite rollenbasierte Zugriffskontrolle möglich
• in EJB 3.0 stark vereinfacht
E.5
© 2002-2008, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [AvID-E-Web.fm, 2008-06-23 12.11] http://www-vs.informatik.uni-ulm.de/teach/ss08/avid/
E.6
© 2002-2008, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [AvID-E-Web.fm, 2008-06-23 12.11] http://www-vs.informatik.uni-ulm.de/teach/ss08/avid/
3 Ruby on Rails
3 Ruby on Rails (2)
■ Ruby
■ Philosophie ...
◆ objektorientierte Skriptsprache
✱ Don’t repeat yourself! (DRY)
• dynamische und reflexive Sprache
◆ möglichst keine doppelten Angaben
◆ entwickelt von Yukihiro Matsumoto Mitte der Neunziger Jahre
• z.B. automatische Ableitung von „Entity“-ähnlichem Code aus
Datenbankdefinition
◆ Open Source
■ Ruby on Rails
✱ Conventions over Configuration (CoC)
◆ Web-Application-Framework basierend auf Ruby
◆ Default-Ableitungen aus Namen von Klassen und Variablen
◆ entwickelt von David Heinemeier Hansson 2004
• z.B. Datenbankname aus Anwendungsbezeichnung
◆ Open Source
E.7
© 2002-2008, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [AvID-E-Web.fm, 2008-06-23 12.11] http://www-vs.informatik.uni-ulm.de/teach/ss08/avid/
E.8
© 2002-2008, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [AvID-E-Web.fm, 2008-06-23 12.11] http://www-vs.informatik.uni-ulm.de/teach/ss08/avid/
3 Ruby on Rails (3)
3 Ruby on Rails (4)
✱ Scaffolding (engl. Gerüst)
■ Agile Software Development
◆ Generierung von Gerüst-Code für Model, View und Controller einer Webbasierten Anwendung
◆ schnelles Entwickeln durch viele implizite Annahmen
◆ Ableitung von Controller-Operationen aus typischen Datenbankoperationen
• Create, Read, Update, Delete
◆ verschiedene Umgebungen für Entwicklung, Test und Betrieb
• Verwendung unterschiedlicher Datenbanken
◆ Unterstützung schneller Entwicklungszyklen
◆ Ableitung von View-Vorlagen aus Controller-Operationen
• kein aufwändiges Neu-Starten des Systems nach Änderungen
• Auslagern gemeinsamer Anteile in Partials (Sub-Vorlagen)
z.B. Formular für Neueingabe und Formular für das Editieren
z.B. Rahmen um alle Seiten
◆ Unterstützung für Schemaänderungen in der Datenbank
• Ruby-Code zur Änderung
– kein SQL-Code notwendig
E.9
© 2002-2008, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [AvID-E-Web.fm, 2008-06-23 12.11] http://www-vs.informatik.uni-ulm.de/teach/ss08/avid/
4 Literatur
■ Verwendete und weiterführende Referenzen
◆ siehe EJB, Servlets
◆ D. Thomas, D. Heinemeier Hansson: Agile Web development with Rails. Pragmatic
Bookshelf, 2006.
◆ Ruby on Rails. Official Web Site: <http://www.rubyonrails.com/>
E.11
© 2002-2008, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [AvID-E-Web.fm, 2008-06-23 12.11] http://www-vs.informatik.uni-ulm.de/teach/ss08/avid/
E.10
© 2002-2008, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [AvID-E-Web.fm, 2008-06-23 12.11] http://www-vs.informatik.uni-ulm.de/teach/ss08/avid/
Herunterladen