Kein Folientitel

Werbung
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf der Architektur
Übersicht
Inhalt:
• Schichtenmodell
• Client-Server-Architektur
• Componentware
• Web-Architektur
– Java Servlets
– HTTP Charakteristika
– JSP
– ASP
– XML
– …
Christoph Riewerts, © Prof. Dr. Helmut Balzert V2.0
Seite 1
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
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
Benutzungsschnittstelle
Dialogsteuerung
abhängig von
Applikationslogik
Geschäftsprozeßsteuerung
Anwendungsbereichsobjekte
Logischer Datenzugriff
Datenlogik
Christoph Riewerts, © Prof. Dr. Helmut Balzert V2.0
Physischer Datenzugriff
Seite 2
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
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.
Verteilte
Datenlogik
Präsentation
Verteilte
Präsentation
Verteilte
Geschäftslogik
Präsentation
Präsentation
Applikation
Applikation
Applikation
Datenhaltung
Agenda:
Arbeitsplatzcomputer
oder Server
Logische
SW-Schicht
Datenhaltung
Datenhaltung
Seite 3
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Mehrschichtenarchitekturen
Client
Web Br o wser
Web-Server
DatenbankSer ver
Ser vlets
RD BS
JSP
ODBS
ASP
Win d ow s
Anw endungsSer ver (Middlewar e)
CORBA
XML
EJB
Dateien
COM +
Win d ow s
+ Of fice
Seite 4
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf der Architektur
Charakteristika 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
Seite 5
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf der Architektur
Charakteristika 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 persistente
Speicherung.
• Replikation: Dem Sender einer Nachricht ist es egal, ob das aufgerufene Objekt aus
Gründen der Schnelligkeit und Zuverlässigkeit verteilt/repliziert wurde.
– Lösung: Koordination der Kopien von Objekten
Seite 6
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf der Architektur
Charakteristika einer Client-Server-Architektur
DCE (Distributed Computing Environment) ist eine Sammlung von Programmen und
Bibliotheken für verteilte Anwendungen
Verteilte Anwendung
Directory
Service
DCE
Time
Service
Security
Service
File
Service
Remote Procedure Call
Threads
Betriebssystem und Netzwerkdienste
Seite 7
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf der Architektur
Charakteristika 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), die
Autorisierung (Berechtigungsvergabe), die Geheimhaltung (Verschlüsselung der Nachrichten)
und die Integritätssicherung (Schutz vor Datenmanipulation durch verschlüsselte
Prüfsummen)
• File Service liefert ein verteiltes Dateisystem über mehrere Rechner
• Threads sind Teile eines Prozesses, die zueinander quasi-parallel ausgeführt werden
können. Mit Threads können Server mehrere Anforderungen gleichzeitig bearbeiten und
Clients 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
Seite 8
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf der Architektur
componentware
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
Seite 9
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf der Architektur
componentware
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)
Seite 10
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf der Architektur
Charakteristika 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 TCPVerbindung mit dem Web-Server aufgebaut, eine Anfrage gesendet, vom Server
bearbeitet 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 Intranetund Extranet-Anwendungen – keinen Einfluss
Seite 11
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf der Architektur
Charakteristika einer Web-Architektur
2 Schichten
•
•
•
3 Schichten
4 Schichten
Web-Client
Web-Client
Web-Client
Web-Server
Web-Server
Web-Server
Daten-Server
AnwendungsServer
Die SW-Verteilung ist einfach, da keine
anwendungsspezifische Software auf dem Web-Client
installiert 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 WebBrowser unterstützt werden
Daten-Server
Seite 12
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf der Architektur
Charakteristika 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, Netscape
Navigator V3.0, MS Internet Information Server V4.0, ASP=ActiveServerPages V1.5c, ODBC
von Oracle V200.0301, SQL-Net V2.3 und Oracle V7.3
MS Internet
Explorer
Client
ASP
http
MS II
ODBC
SQL-Net
NT-Server
Oracle
UNIX-Server
Seite 13
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
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 Browser
ausgefü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
Seite 14
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Java Servlets
HTTP Request
Browser
HTTP Response
Servlet
Container
HTTP
Server
Servlet
Import javax.servlet.*;
Static
Content
import javax.servlet.http.*;
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])
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)
Seite 15
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Java Servlets
Seite 16
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Java Servlets
Ausgabe
der WebBrowsers
Seite 17
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Java Servlets
email, die
vom
AnfrageServlet
verschickt
wird
Seite 18
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Java Servlets
Die Bestätigung für den Kunden wird als HTML-Seite vom
Servlet erzeugt.
Seite 19
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Java Servlets
:Web-Br ow ser
Interne
Abläufe,
dargestellt
als
SequenzDiagramm
: Web-Serv er
dr ück t
Abschick en-Knopf
: Ser vlet
Engine
schickt
Anfr age
schickt Anfrage
w eiter
[ Wenn noch nicht erz eugt ]
erzeugt Ser vlet
:Serv let
ini t iali si ert
Ser vlet
r uft Serv iceOper ation auf
erhält Antw ort
schickt Ant w or t
z urück
schickt Antw or t
z urück
er zeugt
Antw or t
Seite 20
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Java 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 HTTPProtokoll:
– 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 !!!“);
}
}
Seite 21
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Java Servlets
Servlet-API (Darstellung im Innovator)
Seite 22
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Java 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 ServletRequest
und 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 GenericServlet
bildet 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. )
Seite 23
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
HTTP-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=SoftwareTechnik&kl=de&what=de („&“ trennt die einzelnen Parameter)
Seite 24
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Java 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
:Web-Brow ser
: Web-Server
: JSP Eng ine
:Servl et
En gin e
ö ffn e JSP
schicke
Anfrage
schi cke
Anf rage
[JSP noc h n ich t in Ser v let
t ran sf orm iert ]
t ran sf orm iere in Serv let
f üh re Ser vlet au s
Seite 25
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Java server pages (JSP)
Elemente einer JSP (Syntax in <>):
• Direktiven (z.B. include, page, taglib) <%@ include file=“relativeURL“ %>
dienen dazu, globale Informationen für die ganze Seite zu setzen
• Deklarationen <%! declarations %> erlauben es, Variablen und Operationen zur
deklarieren, die eine seitenweite Gültigkeit besitzen
• Scriptlets <% code fragment %> enthalten den Java-Quellcode, der für die
Berechnung von Ausgaben notwendig ist
• Ausdrücke <%= expression %> enthalten Variablen, deren Werte, in eine
Zeichenkette konvertiert, von der JavaServer Page ausgegeben werden
• Kommentar (output comment) <!--comment [<%= expression %>] --> wird in
die Ausgabe geschrieben
• Versteckter Kommentar (hidden comment) <%-- comment --&> erscheint nur in
der JSP
• Anweisungen <jsp:........> an die JSP Engine, z.B. um JavaBeans nutzbar zu
machen oder um die Client-Anfrage weiter zu leiten
Seite 26
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Java server pages (JSP)
Beispiel:
JSP liefert als Ausgabe eine Web-Seite, die den Text »Hello World« und das aktuelle
Datum enthält:
<HTML>
<HEAD> <TITLE> Hello World Beispiel </TITLE> </HEAD>
<BODY>
<!-- globale Informationen der Seite setzen -->
<%@ page language="java" %>
<!-- Deklaration einer Zeichenkette HelloWorld -->
<%! String HelloWorld; %>
<!-- Nun ein Scriptlet mit Java programmieren -->
<% HelloWorld = "Hello World"; %>
<% Date zeitangabe=new Date() %>
<!-- Die Zeichenkette als Ausgabe in die HTML-Seite schreiben -->
<%= HelloWorld %>
<H3>Das aktuelle Datum ist: <%=zeitangabe%></H3>
</BODY> </HTML>.
Seite 27
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Java 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.
Seite 28
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Active server pages (ASP)
Beispiel
Begrüßungstext in einer HTML-Seite, je nach Tageszeit ein anderer Text:
<html> <head>
<title> Ein Beispiel für ASP</title> </head>
<body>
<%@ language=VBScript %>
<% if hour(time) > 5 and hour(time)<12 then %>
Guten Morgen!
<% elseif hour(time)>=12 and hour(time)<18 then %>
Guten Tag!
<% elseif hour(time)>=18 and hour(time)<=23 then %>
Guten Abend!
<% else %> Hallo Nachtschwärmer! <% end if %>
</body> </html>.
Seite 29
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Active 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 <% Skript-Programm %> 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 HTMLCode in die Seite zu integrieren
Meist benutzte Skript-Sprachen sind Visual Basic Script und JScript
Seite 30
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Common 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, nichtkommerziell, sprachenunabhängig.
CGI spezifiziert die Kommunikation zwischen dem Web-Server und einem externen CGIProgramm (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
Seite 31
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Extensible 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 <Einschreiben/> 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. <Brief Druckdatum="2000-075">...</Brief>
XML unterscheidet zwischen Groß- und Kleinschreibung.
Seite 32
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Extensible Markup Language (XML)
Beispiel:
Brief als XML-Dokument
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Brief>
<Adresse>
<Name>Meier</Name>
<Strasse>Elisenstraße</Strasse>
<PLZ>80335</PLZ>
<Ort>München</Ort>
</Adresse>
<Betreff>Ihre Anfrage vom 26.07.2000 bezüglich einer Schulung
</Betreff>
<Anrede>Sehr geehrte Damen und Herren</Anrede>
<Text>der Text des Briefes, der sich jetzt strukturell eindeutig
von Betreff und Anrede abhebt.</Text>
</Brief>.
Seite 33
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Extensible Markup Language (XML)
Beispiel: Brief als HTML-Dokument (zum Vergleich)
<html> <body>
<p>Ihre Anfrage vom 26.07.2000 bezüglich einer Schulung </p>
<p>Sehr geehrte Damen und Herren</p>
<p>Der Text des Briefes, der genau wie Betreff und Anrede als Absatz
geschrieben wird und sich strukturell nicht von ihnen
unterscheidet.</p>
</body> </html>.
•
•
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)
Seite 34
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Extensible 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
<!ELEMENT Brief(Adresse, Betreff, Anrede+, Text)>
<!ELEMENT Adresse(Firma?, Name, Strasse, PLZ, Ort)>
<!ELEMENT Name(#PCDATA)>
<!ELEMENT Strasse(#PCDATA)>
<!ELEMENT PLZ(#PCDATA)>
<!ELEMENT Ort(#PCDATA)>
<!ELEMENT Betreff(#PCDATA)>
<!ELEMENT Anrede(#PCDATA)>
<!ELEMENT Text(#PCDATA)>.
•
In Zukunft werden jedoch die XML-Schemata die DTD‘s ablösen
Seite 35
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Extensible 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:
<schema>
<datatype name="PLZT"> <basetype name="string"/> </datatype>
<elementType name="PLZ"> <datatypeRef name="PLZT"/> </elementType>
</schema>
•
•
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
Seite 36
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Extensible Markup Language (XML)
Prüfung der Korrektheit eines Dokuments durch einen XML-Parser
XML-Dok um ent Inhal t
XML-Parser
DTD od er
St rukt ur
XML-Schem a
Dokum ent ist...
fehlerh aft
wohlgef ormt
(well -f or m ed)
gülti g (valid)
Seite 37
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Extensible Markup Language (XML)
Transformation in ein HTMLDokument
XML-Dokumen t
In halt
• XSL (XML Stylesheet Language)
•
beschreibt die Transformation eines
XML-Dokuments in ein HTMLDokument, das ein Web-Browser
dann 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 XMLfähigen Browser übertragen
werden, der die
Konvertierung selbst
vornimmt
HTMLDokumen t
DTD o der
XML-Schema
St ruktu r
Darst ell ung
XML-Parser
XSL-St ylesheet
Transformatio nsregeln
Seite 38
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Übung:
Identifizieren Sie die illegalen Beziehungen im 3-Schichten-Modell
<<GUI>>
<<GUI>>
<<GUI>>
<<class>>
<<GUI>>
<<interface>>
<<interface>>
<<class>>
<<class>>
<<class>>
Präsentationslogik
<<interface>>
<<class>>
Applikationslogik
<<class>>
<<class>>
Benutzungsbeziehungen
Datenlogik
<<class>>
Seite 39
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Komponentenmodell
Beispiel für ein
J2EE
Komponenten
-modell in
UML
Data
Seite 40
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Entwurf einer Web-Architektur
Scriptsprache PHP
•
•
•
•
•
•
Eingebettet in HTML:
– SGML Processing:<? echo „Hi!“; ?>
– Script-Tag:
<script language=„php“> echo „Hi!“; </script>
– XML Processing: <?php echo „Hi!“; ?>
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
Seite 41
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1
Okt 2010
Anhang
Lösung zur Übung auf Seite 39
<<GUI>>
<<GUI>>
<<GUI>>
<<class>>
<<GUI>>
<<interface>>
<<interface>>
<<class>>
<<class>>
<<class>>
Präsentationslogik
<<interface>>
<<class>>
Applikationslogik
<<class>>
<<class>>
Benutzungsbeziehungen
Datenlogik
<<class>>
Seite 42
Herunterladen