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/