2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...
2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...
2 UML-based Web Engineering - UWE - Ludwig-Maximilians ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
des PVS zum Einsatz kam, sind ERb-Templates ('embedded Ruby'): ERb-Templates sind<br />
HTML-Vorlagen, in die zur Generierung dynamischer Inhalte Ruby-Code eingebettet werden<br />
kann. ActionController schließlich stellt die Steuerungsschicht einer Rails-Anwendung.<br />
Das Zusammenspiel dieser drei Komponenten wird schematisch durch folgende Abbildung<br />
illustriert 60 .<br />
Wenn ein Client einen HTTP-Request an den <strong>Web</strong>server richtet, auf dem die betreffende<br />
Rails-Anwendung läuft, so wird diese Anfrage zunächst an eine Routing-Komponente<br />
weitergeleitet. Diese bestimmt anhand der URL der Anfrage, welche Controller-Klasse und<br />
welche Action dieser Klasse für die Verarbeitung des Requests verantwortlich ist. Actions sind<br />
im Rails-Jargon öffentliche Methoden von Controller-Klassen, welche die eigentliche<br />
Steuerungslogik für die Request-Verarbeitung beinhalten. Typischerweise kommuniziert eine<br />
Action mit einer oder mehreren Modell-Klassen von ActiveRecord und weist diese z.B. an,<br />
Geschäftslogik auszuführen, in Abhängigkeit der HTTP-Parameter (wenn diese z.B.<br />
Formulardaten repräsentieren) neue Modell-Objekte zu erzeugen, diese zu validieren und in<br />
der Datenbank zu speichern, oder andere Datenbank-Operationen wie die Aktualisierung oder<br />
das Löschen bereits persistierter Modellobjekte durchzuführen. Ein typisches und häufig<br />
vorzufindendes Ende einer Controller-Action besteht darin, die View anzuweisen, ein<br />
bestimmtes ERb-Template zu rendern. Dazu wird der eingebettete Ruby-Code ausgeführt und<br />
in HTML übersetzt, die fertige HTML-Seite wird schließlich als Antwort auf seine Anfrage an<br />
den Client gesendet.<br />
7.1.2 Ruby<br />
Client<br />
5<br />
1<br />
View<br />
4<br />
Routing<br />
Controller<br />
Abbildung 47: Bearbeitung eines HTTP-Requests durch die MVC-Komponenten von<br />
Rails<br />
Ruby ist eine objektorientierte, dynamisch typisierte und interpretierte Programmiersprache.<br />
Sie wurde Mitte der 90-er Jahre von dem Japaner Yukihiro Matsumoto mit dem Ziel<br />
entwickelt, eine bessere Skriptsprache als die damals verfügbaren (Perl und Python) zu<br />
60 Die Illustration ist stark an die Abbildungen 2.1 und 2.2 aus [36], S.12f angelehnt.<br />
2<br />
77<br />
3<br />
ActiveRecord-<br />
Modelle<br />
Datenbank