-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 1
Inhalt:
• Schichtenmodell
• Client-Server-Architektur
• Componentware
• Web-Architektur
– Java Servlets
– HTTP Charakteristika
– JSP
– ASP
– XML
– …
Christoph Riewerts, © Prof. Dr. Helmut Balzert V2.0
Entwurf der ArchitekturÜbersicht
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 2
Entwurf der Architektur
• Die SW-Architektur beschreibt die Struktur des Softwaresystems
durch Systemkomponenten und ihre Beziehungen untereinander
• Um eine Anwendung verteilen zu können, muß sie in logische
SW-Schichten strukturiert sein:
• Wir kennen das Standard-3-Schichten-Modell und das
6-Schichtenmodell nach Noak:
Präsentationslogik
Applikationslogik
Datenlogik
abhängig von
Benutzungsschnittstelle
Dialogsteuerung
Geschäftsprozeßsteuerung
Anwendungsbereichsobjekte
Logischer Datenzugriff
Physischer Datenzugriff
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 3
Entwurf der Architektur
• Logische Schichten können mit Hilfe von Verteilungsmustern auf
physische Schichten abgebildet werden
• Die Verteilungsmuster hängen davon ab, ob
– eine Client/Server-Architektur oder
– eine Web-Architektur zugrunde gelegt wird.
Applikation
Präsentation
Datenhaltung
Applikation
Präsentation
Datenhaltung
Applikation
Präsentation
Datenhaltung
Verteilte
Präsentation
Verteilte
Datenlogik
Verteilte
GeschäftslogikArbeitsplatz-
computer
oder Server
Agenda:
Logische
SW-Schicht
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 4
Client Web-ServerAnwendungs-Ser ver (Middlewar e)
Datenbank-Ser ver
Servlets
JSP
ASP
Web-Browser
CORBA
EJB
COM +Window s
Window s+ Of fice
RDBS
ODBS
XML
Dateien
Mehrschichtenarchitekturen
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 5
Entwurf der ArchitekturCharakteristika einer
Client-Server-Architektur
• Der auf dem Client befindliche Teil der Anwendung ist nach der
Anmeldung beim serverseitigen Teil der Anwendung in der Regel bis
zur Abmeldung permanent mit dem Server verbunden; damit ist es
leicht, eine Benutzersitzung zu verfolgen
• Die maximale Anzahl der nebenläufigen Benutzer liegt als
Anforderung fest und erleichtert damit den Systementwurf
• Aufwändige Verteilung der Client-Software, da sie auf jedem
Client installiert werden muss
• Die Client/Server-Umgebung ist in der Regel bekannt und kann
durch die Entwickler
beeinflusst werden, die sowohl für den Client- als auch für den
Server-Teil verantwortlich sind.
• Plattformänderungen führen u. U. zur Neuprogrammierung von
Anwendungsteilen
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 6
Entwurf der ArchitekturCharakteristika einer
Client-Server-Architektur
Anforderungen an eine transparente Verteilung
• Lokation: Aufruf des Objekt erfolgt unabhängig davon, wo sich
das aufgerufene Objekt befindet; bei unterschiedlichen Adressräumen
ist eine Interprozesskommunikation notwendig.
– Lösung: RPC (Remote Procedure Calls) über Client- und
Server-Stubs
• Nebenläufigkeit: Ein Objekt schickt eine Nachricht an ein
anderes Objekt, unabhängig davon, ob noch ein weiterer Client einen
Dienst von dem Objekt anfordert.
– Lösung: Synchronisation von Threads und Transaktionen
• Aktivierung/Passivierung: Es interessiert den Aufrufer eines
Objekts nicht, ob dieses erst "geweckt" werden muss.
– Lösung: implizite (De-)Allokation von Systemressourcen und
persistenteSpeicherung.
• Replikation: Dem Sender einer Nachricht ist es egal, ob das
aufgerufene Objekt ausGründen der Schnelligkeit und Zuverlässigkeit
verteilt/repliziert wurde.
– Lösung: Koordination der Kopien von Objekten
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 7
Entwurf der ArchitekturCharakteristika einer
Client-Server-Architektur
DCE (Distributed Computing Environment) ist eine Sammlung von
Programmen und Bibliotheken für verteilte Anwendungen
V e r te i l t e A n w e n d u n g
D ir e c to r yS e r v ic e
T im eS e r v ic e
S e c u r i t yS e r v ic e
F i leS e r v ic e
R e m o t e P r o c e d u r e C a l l
T h r e a d s
B e t r ie b s s y s te m u n d N e t z w e r k d ie n s t e
D C E
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 8
Entwurf der ArchitekturCharakteristika einer
Client-Server-Architektur
DCE-Komponenten
• Directory Service verwaltet zu einem Namen Adressen und
Zugriffslisten
• Time Service synchronisiert die Rechneruhren in einem
Netzwerk
• Security Service enthält die Authentifizierung (Wer ist
Client?, wer ist Server), dieAutorisierung (Berechtigungsvergabe),
die Geheimhaltung (Verschlüsselung der Nachrichten)und die
Integritätssicherung (Schutz vor Datenmanipulation durch
verschlüsseltePrüfsummen)
• File Service liefert ein verteiltes Dateisystem über mehrere
Rechner
• Threads sind Teile eines Prozesses, die zueinander
quasi-parallel ausgeführt werdenkönnen. Mit Threads können Server
mehrere Anforderungen gleichzeitig bearbeiten undClients Abfragen
stellen bei weiterhin bedienbarer Oberfläche.
• Mit einem RPC kann eine Anwendung eine Prozedur eines anderen
Prozesses (Server) aufrufen:
– Synchroner Ablauf: Server wird gestartet und wartet - Client
wird gestartet, ruft den Server (Stub erzeugt Datenpaket und
übergibt es dem Transportsystem) - Server bearbeitet die
Anforderung - Client empfängt die Ergebnisse
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 9
Entwurf der Architekturcomponentware
Komponentenbasierte Softwareentwicklung
• Erlaubt die einfache, schnelle und preiswerte Herstellung
individueller, integrierter Anwendungen durch Zusammenbau von
vorgefertigten Halbfabrikaten bzw. Komponenten
• componentware ist ein abgeschlossener, binärer
Software-Baustein, der eine anwendungsorientierte, semantisch
zusammengehörende Funktionalität besitzt, die nach außen über
Schnittstellen zur Verfügung gestellt wird
• Zwei Komponentenmodelle für Clients
– JavaBeans-Modell von Sun
– COM/ActiveX-Modell von Microsoft
• Drei Komponentenmodelle für Server
– COM+ von Microsoft
– Enterprise JavaBeans von Sun
– CORBA-Modell der OMG
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 10
Entwurf der Architekturcomponentware
JavaBeans sind separate, auf Source Code Level erstellte Module,
aus denen durch "Kombinieren" (Visual Assembly) größere
Applikationen erstellt werden; es gibt dafür visuelle Tools (z.B.
Sun JDK, Borland JBuilder)
JavaBean zeigt nach außen:
• Eigenschaften (Properties), z.B. Font oder Farbe
• Methoden (Methods), z.B. get- & set-Operationen
• Ereignisse (Events), z.B. benachrichtigen anderer
• "Introspektion" (Introspective) Informationen über das
Innenleben des Beans sind durch die BeanInfo Class verfügbar.
• Der Zustand (state) kann in einem JAR abgespeichert
werden.
• Während des Entwurfs kann das Verhalten angepasst werden
(Customization)
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 11
Entwurf der ArchitekturCharakteristika einer Web-Architektur
• Vier physische Schichten:
– Web-Client enthält einen Web-Browser für die Präsentation der
Benutzeroberfläche
– Web-Server verteilt HTML-Dokumente, Multimediaobjekte oder
Java-applets, die über das HTTP-Protokoll vom Web-Client angefragt
werden, und stellt die Kommunikation des Web-Client mit der
Anwendungslogik sicher.
– Anwendungs-Server ist zuständig für die Steuerung der
Geschäft-Objekte
– Daten-Server ist zuständig für die Verwaltung der persistenten
Daten
• Durch das HTTP-Protokoll wird bei jeder Benutzeranfrage einer
Web-Seite eine TCP-Verbindung mit dem Web-Server aufgebaut, eine
Anfrage gesendet, vom Serverbearbeitet und nach Rücksendung der
Antwort die TCP-Verbindung wieder beendet
• Es gibt also keine permanente Verbindung zwischen Web-Client
und Web-Server.
• Web-Anwendungen haben eine potenziell unbegrenzte Anzahl von
Benutzern
• Auf die Laufzeitumgebung des Web-Clients haben die Entwickler
– außer bei Intranet-und Extranet-Anwendungen – keinen Einfluss
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 12
Entwurf der ArchitekturCharakteristika einer Web-Architektur
• Die SW-Verteilung ist einfach, da keine anwendungsspezifische
Software auf dem Web-Clientinstalliert werden muss
• Es ist aufwändig, den Zustand während und zwischen Sitzungen
zu speichern und zu verfolgen
• Es müssen in der Regel mehrere unterschiedliche Web-Browser
unterstützt werden
2 Schichten
Web-Client
Web-Server
3 Schichten
Web-Client
4 Schichten
Web-Client
Daten-Server
Web-ServerWeb-Server
Anwendungs-Server
Daten-Server
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 13
Entwurf der ArchitekturCharakteristika einer Web-Architektur
Dokumentation der Web-Architektur am Beispiel eines
3Rechnersystems
• wichtig dabei ist die Angabe der Produkt-Versionen, z.B. MS
Explorer V3.02, NetscapeNavigator V3.0, MS Internet Information
Server V4.0, ASP=ActiveServerPages V1.5c, ODBCvon Oracle V200.0301,
SQL-Net V2.3 und Oracle V7.3
MS InternetExplorer
Client NT-Server
ASPODBC
MS II
Oracle
UNIX-Server
SQL-Nethttp
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 14
Serverseitiges Web-Konzept:
• Statt einer einfachen HTML-Seite ruft der Web-Browser
(ausgelöst z.B. durch das Anklicken eines Hyperlinks) ein Skript
auf dem Server auf und übergibt gleichzeitig Parameter an das
Skript
• Das Skript führt eine Reihe von Aktionen durch und produziert
eine Ausgabe (meist eine HTML-Seite), die zum Browser geschickt und
dem Benutzer angezeigt wird.
• Folgende „Sprachen“ kommen zum Einsatz: Perl, PHP, Servlets
(Java-Programme), JSP, ASP
• Viele Web-Server können durch Plugins um beliebige
Skript-Konzepte erweitert werden
Clientseitiges Web-Konzept:
• Kleine Programme (Skripte), die in eine HTML-Seite eingebettet
sind und vom Browserausgeführt werden, z.B. zur Prüfung der
Eingaben vor Verschickung an den Web-Server
• Mit einem clientseitigen Skript lässt sich oft eine bessere
Reaktionszeit erzielen und die Netzbelastung senken, indem
Fehlermeldungen nicht übertragen werden müssen.
• Folgende „Sprachen“ kommen zum Einsatz: JavaScript &
Visual Basic Script
Entwurf einer Web-Architektur
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 15
Entwurf einer Web-ArchitekturJava Servlets
Der Servlet Container (früher Servlet Engine genannt) übersetzt
Anfragen, die nach einem bestimmten Protokoll gebildet wurden, in
ein Objekt, das dem Servlet übergeben wird, und erzeugt eine
Antwort. Zusätzlich regelt die Servlet Engine den Lebenszyklus der
Servlets (Servlets are small, plattform independent Java classes
compiled to an architecture neutral
bytecode that can be loaded dynamically into and run by a web
Server [SUN])
BrowserHTTP Server
HTTP Request
HTTP Response
Servlet Container
Static Content
Servlet
Beispiel “Seminarorganisation”:
• Kunden sollen Anfragen und Anregungen über ein HTML-Formular
eingeben (s. Quellcode)• Web-Browser erzeugt aus dem HTML-Formular
eine Eingabemaske (s. Bild)• das Servlet verschickt eine Email (s.
Bild)• das Servlet erzeugt eine Antwort für den Web-Browser (s.
Bild)
Import javax.servlet.*;
import javax.servlet.http.*;
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 16
Entwurf einer Web-ArchitekturJava Servlets
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 17
Entwurf einer Web-ArchitekturJava Servlets
Ausgabe der Web-Browsers
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 18
Entwurf einer Web-ArchitekturJava Servlets
email, die vom Anfrage-
Servlet
verschickt
wird
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 19
Entwurf einer Web-ArchitekturJava Servlets
Die Bestätigung für den Kunden wird als HTML-Seite vom Servlet
erzeugt.
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 20
Entwurf einer Web-ArchitekturJava Servlets
Interne Abläufe, dargestellt
als Sequenz-
Diagramm
: ServletEngine
: Web-Server
drück tAbschicken-Knopf
:Web-Browser
schicktAnfrage schickt Anfrage
w eiter
schickt Antwor tzurück
:Serv let
ini tiali si ertSer vlet
ruft Serv ice-Operation auf
erzeugtAntwor t
schickt Antwor tzurück
erhält Antw ort
[Wenn noch nicht erzeugt ]erzeugt Ser vlet
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 21
Entwurf einer Web-ArchitekturJava Servlets
Grundstruktur von Servlets
• Interface Servlet als Schnittstelle
• GenericServlet als Basis-Klasse aller Servlets
– implementiert protokollunabhängige Funktionen
– Methoden init(), destroy(), service(), log(), ..
• HttpServlets als Klassen fürs HTTP-Protokoll:
– implementiert Funktionen für das HTTP-Protokoll
– Methoden doGet() und doPost(), doPut(), doDelete(), ..
– mindestens eine Methode muß implementiert werden
Minimales Servlet (Hello World-Beispiel):
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet (
HttpServletRequest request,
HttpServletResponse response )
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println(„Hello World !!!“);
}
}
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 22
Entwurf einer Web-ArchitekturJava Servlets
Servlet-API (Darstellung im Innovator)
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 23
Entwurf einer Web-ArchitekturJava Servlets
Servlet-API
• Mit der Operation init() werden alle notwendigen
Initialisierungen (z.B. Lesen von Konfigurationsinformationen oder
Laden von kostenintensiven Ressourcen) durchgeführt
• Trifft eine Anfrage ein, so weist ihr die Servlet Engine einen
eigenen Thread zu, der die Operation service() des Servlets aufruft
und damit die Anfrage an entsprechende Operationen der Klasse
HttpServlet weiterleitet
• service() bekommt Referenzen auf ein Anfrage-Objekt vom Typ
ServletRequestund ein Antwort-Objekt vom Typ ServletResponse
übergeben
• Wenn alle Service-Threads terminiert sind, ruft die Servlet
Engine die Operation destroy() auf, so daß die Servlet-Objekte
vernichtet werden
• Man kann ein Servlet schreiben, indem man eine Unterklasse von
GenericServletbildet und anschließend die Operation service() in
der Unterklasse implementiert
• Soll jedoch eine HTTP-spezifische Implementierung erfolgen, so
ist die Nutzung der Unterklasse HttpServlet von GenericServlet
sinnvoll (es muß lediglich die korrespondierende Operation der
Klasse HttpServlet überschrieben werden, z.B. behandelt die
doGet()-Operation eine HTTP-GET- und die doPost()-Operation eine
HTTP-POST-Anfrage. )
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 24
Entwurf einer Web-ArchitekturHTTP-Charakteristika
• Ein Client stellt eine Anfrage (Request) an einen Server, der
anschließend eine Antwort (Response) zurückschickt
• Vom Protokoll (zustandslos) wird nicht unterstützt, daß
mehrere Anfragen zu einem Kontext gehören, da nach jeder Anfrage
die Verbindung getrennt wird.
• HTTP kennt folgende Zugriffsoperationen: GET, HEAD, POST, PUT,
DELETE, ..
• Aufbau einer GET-Anfrage
– Server bekommt eine URL zugeschickt, ggf. mit Parametern
(hinter „?“)
– Antwort: Dokument, das die URL bezeichnet
– Wird durch die URL ein Programm bezeichnet, das dynamisch
Daten erzeugt, dann wird die Programmausgabe als Antwort
zurückgeschickt und nicht das Programm selbst
• GET http://www.software-technik.de HTTP/1.0. (Methode, URL und
HTTP-Version stehen in einer Request line))
•
http://de.altavista.com/cgi-bin/query?pg=q&sc=on&q=Software-
Technik&kl=de&what=de („&“ trennt die einzelnen
Parameter)
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 25
Entwurf einer Web-ArchitekturJava server pages (JSP)
Wenn ein Client auf eine JSP (Textdatei mit HTML-Anteilen und
JSP-Markierungen) zugreifen möchte, so wird die Seite, falls noch
nicht geschehen, von der so genannten JSP Engine zunächst in ein
Servlet übersetzt und anschl. ausgeführt, die Ausgabe dieses
Servlets wird dann an den Client zurückgeschickt
: JSP Engine: Web-Server
öffne JSP
:Web-Browser
schickeAnfrage
:ServletEngine
[JSP noch n ich t in Ser v lett ransform iert ]t ransform iere
in Servlet
schickeAnf rage
f ühre Ser vlet aus
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 26
Entwurf einer Web-ArchitekturJava server pages (JSP)
Elemente einer JSP (Syntax in ):
• Direktiven (z.B. include, page, taglib) dienen dazu, globale
Informationen für die ganze Seite zu setzen
• Deklarationen erlauben es, Variablen und Operationen zur
deklarieren, die eine seitenweite Gültigkeit besitzen
• Scriptlets enthalten den Java-Quellcode, der für die
Berechnung von Ausgaben notwendig ist
• Ausdrücke enthalten Variablen, deren Werte, in eine
Zeichenkette konvertiert, von der JavaServer Page ausgegeben
werden
• Kommentar (output comment) wird in die Ausgabe geschrieben
• Versteckter Kommentar (hidden comment) erscheint nur in der
JSP
• Anweisungen an die JSP Engine, z.B. um JavaBeans nutzbar zu
machen oder um die Client-Anfrage weiter zu leiten
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 27
Entwurf einer Web-ArchitekturJava server pages (JSP)
Beispiel:
JSP liefert als Ausgabe eine Web-Seite, die den Text »Hello
World« und das aktuelle Datum enthält:
Hello World Beispiel
Das aktuelle Datum ist:
.
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 28
Entwurf einer Web-ArchitekturJava server pages (JSP)
• JSPs sind eine sinnvolle Erweiterung von Servlets
• JSPs sind aber kein Servlet-Ersatz
• Nachteile
– Durch Vermischung von HTML & Skriptsprache werden JSPs
schnell unübersichtlich
– Das Aufspüren von Syntax- und Laufzeitfehlern der Scriptlets
kann schwierig sein– Bei einem komponentenorientierten Ansatz
hervorragend als »Klebstoff«
verwendbar, um die einzelnen Funktionseinheiten
zusammenzufügen
• Empfehlung
– Möglichst viel Skriptsprachen-Quellcode in andere Komponenten
(JavaBeans) auslagern
– Keine großen Scriptlets in JSPs einbetten.
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 29
Entwurf einer Web-ArchitekturActive server pages (ASP)
Beispiel
Begrüßungstext in einer HTML-Seite, je nach Tageszeit ein
anderer Text:
Ein Beispiel für ASP
5 and hour(time)
Guten Morgen!
=12 and hour(time)
Guten Tag!
=18 and hour(time)
Guten Abend!
Hallo Nachtschwärmer!
.
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 30
Entwurf einer Web-ArchitekturActive server pages (ASP)
• ASP ist ein serverseitiges Skript-Konzept von Microsoft und
setzt auf den Microsoft Internet Information Services (IIS) auf
• Eine Active Server Page (Dateiendung: .asp) ist eine
HTML-Datei, die neben den üblichen Elementen, wie HTML, Bildern
oder Java-Applets/ActiveX-Steuerelemente auch
Skript-Programme enthält, die vom Web-Server ausgeführt werden,
bevor die Seite an den Browser übertragen wird
• Aus einem Skript heraus kann auf serverseitige Komponenten
(z.B. Geschäftsobjekte) zugegriffen werden, damit ist es z.B.
möglich, über ADO-Objekte (ActiveX Data Objects ist eine
COM-basierte, objektorientierte Schale um eine meist relationale
Datenbank).eine Datenbank-Anfrage zu stellen und das Ergebnis
dieser Anfrage in Form von HTML-Code in die Seite zu
integrieren
• Meist benutzte Skript-Sprachen sind Visual Basic Script und
JScript
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 31
Entwurf einer Web-ArchitekturCommon Gateway Interface (CGI)
• Bei CGI schickt der Web-Browser seine HTTP-Anfrage als
Kommandozeile an den Server, die URL bezeichnet in diesem Fall aber
keine HTML-Seite, sondern ein ausführbares Programm, z.B.
www.server-name.de/cgi-bin/programm-name (Das Verzeichnis cgi-bin
ist als Programmverzeichnis nicht vorgeschrieben, wird jedoch von
vielen Servern verwendet)
• CGI-Standard stammt aus den Anfängen des Web:
herstellerunabhängiger, nicht-kommerziell, sprachenunabhängig.
• CGI spezifiziert die Kommunikation zwischen dem Web-Server und
einem externen CGI-Programm (CGI-Script); diese CGI-Skripte können
in beliebigen Sprachen geschrieben werden, am häufigsten wird Perl
verwendet.
• Es existieren eine Vielzahl von Web-Servern und Werkzeugen –
viele davon als freeware
• Der Web-Server startet für jede Ausführung eines CGI-Skriptes
einen neuen Prozeß auf dem Server: Dies ist speicher- und
zeitaufwendig
• Die schlechte Performance von CGI-Skripten wird dazu führen,
daß diese Technik mittelfristig von anderen Konzepten (servlets,
JSP, ASP) abgelöst wird
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 32
Entwurf einer Web-ArchitekturExtensible Markup Language
(XML)
• Mit XML werden logische Dokumenten-Strukturen beschrieben:
sehr geringer Sprachumfang, definiert keine einzige Markierung,
Autor überlegt sich selbst passende Markierungen
• Ein XML-Element ist der von einer öffnenden und schließenden
Markierung eingeschlossene Teil eines XML-Dokuments, es gibt auch
Elemente ohne Inhalt, die bestehen nur aus einer einzelnen
Markierung, z.B. zeigt an, daß der Brief als Einschreiben
verschickt werden soll (ohne Inhalt)
• Am Anfang eines Dokuments stehen Angaben zur verwendeten
XML-Version
• Jedes Element kann zusätzlich Attribute enthalten, die hinter
dem Element-Namen als Name-Wert-Paare geschrieben werden, z.B.
...
• XML unterscheidet zwischen Groß- und Kleinschreibung.
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 33
Entwurf einer Web-ArchitekturExtensible Markup Language
(XML)
Beispiel: Brief als XML-Dokument
Meier
Elisenstraße
80335
München
Ihre Anfrage vom 26.07.2000 bezüglich einer Schulung
Sehr geehrte Damen und Herren
der Text des Briefes, der sich jetzt strukturell eindeutig
von Betreff und Anrede abhebt.
.
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 34
Entwurf einer Web-ArchitekturExtensible Markup Language
(XML)
Beispiel: Brief als HTML-Dokument (zum Vergleich)
Ihre Anfrage vom 26.07.2000 bezüglich einer Schulung
Sehr geehrte Damen und Herren
Der Text des Briefes, der genau wie Betreff und Anrede als
Absatz
geschrieben wird und sich strukturell nicht von ihnen
unterscheidet.
.
• In HTML sind die Markierungen Teil der Sprache
• Ein Autor kann sich zwar überlegen, ob er in einem Brief den
Betreff und die Anrede z.B. in eigene Absätze verlegt, jedoch kann
er diese Absätze nicht direkt als Anrede bzw. Betreff kenntlich
machen. (im Gegensatz zu XML)
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 35
Entwurf einer Web-ArchitekturExtensible Markup Language
(XML)
Dokumenttyp-Definitionen (DTDs)
• beschreiben die Struktur von XML-Dokumenten
• und sind in das Dokument integriert oder das Dokument enthält
die URL, wo die DTD steht
.
• In Zukunft werden jedoch die XML-Schemata die DTD‘s
ablösen
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 36
Entwurf einer Web-ArchitekturExtensible Markup Language
(XML)
XML Schemata:
• XML-basierte Sprache, die mächtigere Konstrukte zur
Spezifikation von Struktur, Inhalt und Semantik von XML-Dokumenten
enthält als DTDs (z.B. selbst definierte Datentypen)
• XML-Schemata sind also wieder XML-Dokumente
• Beispiel:
• XML definiert selbst keine Markierungen, sondern der Autor muß
sich selbst Namen ausdenken, so daß es leicht zu Namenskonflikten
führen kann
• XML-Parser prüfen ein Dokument beim Einlesen auf
Korrektheit
– Ein Dokument ist wohlgeformt (well-formed), wenn es sich an
die syntaktischen Regeln von XML hält
– Ein Dokument ist gültig (valid), wenn seine Struktur den
Vorgaben eines Dokument-Typs oder eines XML-Schemas entspricht
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 37
Entwurf einer Web-ArchitekturExtensible Markup Language
(XML)
Prüfung der Korrektheit eines Dokuments durch einen
XML-Parser
Dokument ist... fehlerhaft wohlgeformt
(well -formed) gültig (valid)
XML-Dokument
DTD oderXML-Schema St ruktur
Inhal t
XML-Parser
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 38
Entwurf einer Web-ArchitekturExtensible Markup Language
(XML)
XML-Dokument
DTD oderXML-Schema
XSL-StylesheetTrans-formations-regeln
St ruktur
Inhalt
HTML-Dokument
Darstellung
XML-Parser
Transformation in ein HTML-Dokument
• XSL (XML Stylesheet Language)beschreibt die Transformation
eines XML-Dokuments in ein HTML-Dokument, das ein Web-Browserdann
anzeigen kann
• 2 Varianten der Konvertierung
– auf dem Server: es wird eine HTML-Datei an den Browser
geschickt
– auf dem Client: wobei das XML-Dokument und das Stylesheet an
den XML-fähigen Browser übertragen werden, der die Konvertierung
selbst vornimmt
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 39
Aufgabe:Identifizieren Sie die illegalen Beziehungen im
3-Schichten-Modell
Präsen-tations-logik
Applika-tions-logik
Daten-logik
Benutzungsbeziehungen
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 40
Entwurf einer Web-ArchitekturKomponentenmodell
Beispiel für ein J2EE Komponenten
-modell in UML
Data
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 41
Entwurf einer Web-ArchitekturScriptsprache PHP
• Eingebettet in HTML:
– SGML Processing:
– Script-Tag: echo „Hi!“;
– XML Processing:
• PHP-Interpreter filtert die Einbettungen heraus
• Syntax ähnlich wie C, Java oder Javascript
• Über SQL Zugriff auf Datenbanken (ODBC, Oracle, ..)
• Session-Management erlaubt die Definition von Variablen mit
einer Lebensdauer über eine Seite hinaus
• …..
In Arbeit
-
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1 Okt
2010
Seite 42
Aufgabe:Identifizieren Sie die illegalen Beziehungen im
3-Schichten-Modell
Präsen-tations-logik
Applika-tions-logik
Daten-logik
Benutzungsbeziehungen