Kein Folientitel

Download Report

Transcript Kein Folientitel

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1

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

Okt 2010 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

abhängig von

Applikationslogik Datenlogik Benutzungsschnittstelle Dialogsteuerung Geschäftsprozeßsteuerung Anwendungsbereichsobjekte Logischer Datenzugriff Physischer Datenzugriff

Christoph Riewerts,

© Prof. Dr. Helmut Balzert V2.0

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 Applikation Datenhaltung

Verteilte Präsentation

Präsentation Applikation Datenhaltung

Verteilte Geschäftslogik

Präsentation Applikation

Agenda: Arbeitsplatz computer oder Server Logische SW-Schicht

Datenhaltung

Seite 3

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1

Mehrschichtenarchitekturen

Anw endungs-

Ser ver (Middlewar e) Client

Web Br o wser Win d ow s Win d ow s + Of f ice

Web-Ser ver

Ser vlet s

JSP ASP CORBA EJB COM + Okt 2010

Datenbank-

Ser ver

RD BS ODBS XM L Dat eien 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

server

seitigen 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:

davon, ob noch ein weiterer Client einen Dienst von dem Objekt anfordert.

– Ein Objekt schickt eine Nachricht an ein anderes Objekt, unabhängig

Lösung

: Synchronisation von Threads und Transaktionen

Aktivierung/Passivierung:

"geweckt" werden muss.

Lösung

: implizite Speicherung.

Es interessiert den Aufrufer eines Objekts nicht, ob dieses erst (De-)Allokation von Systemressourcen und persistente

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 Time Service Security Service File Service DCE 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 Time Service

verwaltet zu einem Namen Adressen und Zugriffslisten synchronisiert die Rechneruhren in einem Netzwerk

Security Service

enthält die Authentifizierung (Wer ist Client?, wer ist Server), die Autorisierung (Berechtigungsvergabe), die Geheimhaltung und die Integritätssicherung Prüfsummen) (Schutz vor (Verschlüsselung der Nachrichten) Datenmanipulation durch verschlüsselte • •

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

Entwurf der Architektur componentware

Okt 2010 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 TCP Verbindung 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 Intranet und Extranet-Anwendungen – keinen Einfluss

Seite 11

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1

2 Schichten

Web-Client

Entwurf der Architektur Charakteristika einer Web-Architektur

3 Schichten

Web-Client

4 Schichten

Web-Client

Okt 2010

Web-Server Web-Server

Daten-

Server

• 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

Web Browser

unterstützt werden

Web-Server

Anwendungs-

Server

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 Navigator

V3.0,

MS Internet Information Server

V4.0, V3.02,

ASP=ActiveServerPages Netscape

V1.5c,

ODBC von Oracle

V200.0301,

SQL-Net

V2.3

und Oracle

V7.3

MS Internet Explorer Client ASP http MS II NT-Server ODBC SQL-Net 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 Anklicken eines

Hyperlinks) Web-Browser

ein Skript auf dem

Server

(ausgelöst z.B. durch das 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

client

seitigen 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

Servlet Container Servlet Browser HTTP Request HTTP Server HTTP Response Static Content

Import javax.servlet.*; 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

• das

Servlet

erzeugt aus dem HTML-Formular eine Eingabemaske (s. Bild) 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

Entwurf einer Web-Architektur Java Servlets

Okt 2010 Seite 16

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1

Entwurf einer Web-Architektur Java Servlets

Okt 2010 Ausgabe der Web-

Browsers

Seite 17

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1

Entwurf einer Web-Architektur Java Servlets

Okt 2010 email, die vom Anfrage-

Servlet

verschickt wird Seite 18

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1

Entwurf einer Web-Architektur Java Servlets

Die Bestätigung für den Kunden wird als HTML-Seite vom Servlet erzeugt.

Okt 2010 Seite 19

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1

Entwurf einer Web-Architektur Java Servlets

Okt 2010 Interne Abläufe, dargestellt als Sequenz Diagramm

d r ü ck t Ab sch ick en -Kn o p f : Web -Br o w ser sch ickt An f r ag e : Web -Serv er w eit e r : Ser vle t En g in e sch ickt An f ra ge [ Wenn noch nicht erz eugt ] erzeugt

Ser vlet

:Se rv let in i t iali si ert

Ser vlet

r u f t Serv ice Op er at io n au f sch ickt An t w o r t z u rü ck sch ickt An t w o r t z u rü ck er zeu g t An t w o r t erhä lt An t w o rt

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

Servlets als Basis-Klasse aller – implementiert protokollunabhängige Funktionen –

HttpServlets

als Klassen fürs HTTP Protokoll: – Methoden init(), destroy(), service(), log(), ..

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

Entwurf einer Web-Architektur Java Servlets

Okt 2010 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

Operation service() des

Servlets

einen eigenen

Thread

zu, der die 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

destroy() terminiert sind, ruft die

Servlet Engine

auf, so daß die

Servlet

-Objekte vernichtet werden die Operation • 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) (Response)

zurückschickt an einen

Server

, der anschließend eine Antwort • 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 • G ET 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)

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 Servlets

zunächst in ein

Servlet

wird dann an den übersetzt und anschl. ausgeführt, die Ausgabe dieses

Client

zurückgeschickt ö ffn e JSP :Web-Brow ser schicke Anfrage : Web-Server schi cke Anf rage : JSP Eng ine :Servl et En gin e [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)

wird in die Ausgabe geschrieben Versteckter Kommentar (hidden comment)

<%-- 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

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:

Hello World Beispiel <%@ page language="java" %> <%! String HelloWorld; %> <% HelloWorld = "Hello World"; %> <% Date zeitangabe=new Date() %> <%= HelloWorld %>

Das aktuelle Datum ist: <%=zeitangabe%>

.

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

Scriptlet

s 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

Entwurf einer Web-Architektur Active server pages (ASP)

Beispiel Begrüßungstext in einer HTML-Seite, je nach Tageszeit ein anderer Text:

Ein Beispiel für ASP <%@ 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 %> .

Okt 2010 Seite 29

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1

Okt 2010

Entwurf einer Web-Architektur Active server pages (ASP)

ASP ist ein server

seitiges 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 %>

werden, bevor die Seite an den

Browser

enthält, die vom übertragen wird

Web-Server

ausgeführt • Aus einem Skript heraus kann auf

server

seitige 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

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, nicht kommerziell, sprachen

un

abhä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

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 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.

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

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. .

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)

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)

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 .

• 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: • 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

Entwurf einer Web-Architektur Extensible Markup Language (XML)

Prüfung der Korrektheit eines Dokuments durch einen XML-Parser

XML-Dok um ent Inhal t

Okt 2010

DTD od er XML-Schem a St rukt ur XML-Parser 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

Entwurf einer Web-Architektur Extensible Markup Language (XML)

Transformation in ein HTML Dokument

• XSL

(XML Stylesheet Language)

beschreibt die Transformation eines XML-Dokuments in ein HTML Dokument, 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 XML fähigen

Browser

übertragen werden, der die Konvertierung selbst vornimmt XML-Dokum en t DTD o der XML-Schem a XSL-

St ylesheet

In halt St ruk tu r Trans form atio ns regeln XML-Parser

Okt 2010

HTML Dok um en t Darst ell ung

Seite 38

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1

Okt 2010

Übung: Identifizieren Sie die illegalen Beziehungen im 3-Schichten-Modell

<> <> <> <> <> Präsen tations logik <> <> <> <> <> <> <> <>

Benutzungsbeziehungen

<> <> Applika tions logik Daten logik

Seite 39

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1

Entwurf einer Web-Architektur Komponentenmodell

Okt 2010 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: Script-Tag: – 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

Seite 41

DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.1

Anhang Lösung zur Übung auf Seite 39

<> <> <> <> <> <> <> <> <> <> <> <> <>

Benutzungsbeziehungen

<> <>

Okt 2010

Präsen tations logik Applika tions logik Daten logik

Seite 42