SlideShare ist ein Scribd-Unternehmen logo
1 von 76
KIT – Universität des Landes Baden-Württemberg und
nationales Forschungszentrum in der Helmholtz-Gemeinschaft
INFORMATIONSINTEGRATION UND WEBPORTALE
www.kit.edu
KIT – Universität des Landes Baden-Württemberg und
nationales Forschungszentrum in der Helmholtz-Gemeinschaft
INFORMATIONSINTEGRATION UND WEBPORTALE
www.kit.edu
Hoschschule Pforzheim
ADVANCED SOFTWARE ENGINEERING
Klick-And-Bau
Informationsintegration und Webportale
Advanced Software Engineering
Vorlesung 01.04.2016 : Web-Technologien im Überblick Dr. Andreas Walter
mail@awalter.info
Advanced Software Engineering
Sommersemester 2016
2 Webtechnologien im Überblick
Webanwendungen: Statische Webseiten
Statische Webseiten: z.B. für eine Ferienwohnung
01.04.2016
Advanced Software Engineering
Sommersemester 2016
3
Webanwendungen: Dynamische Webseiten
Dynamische Webseiten: z.B. Portale zur Flugbuchung
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
4
Webanwendungen: Anwendungen
Webseiten im Stil von Desktop-Anwendungen
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
5
Inhalt
Einordnung
Webtechnologien - Informatiosinstegration und Webportale
Grundlagen Webtechnologien
Desktop vs. Webanwendungen
Webtechnologien für kleinere Webanwendungen
Anforderungen bei der Erstellung umfangreicher
Webanwendungen
Beispiel einer umfangreichen Webanwendung
Clinerion – Patient Recruitment System
Konzepte von Webrahmenwerken
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
6
Einordnung
Webtechnologien
Informationsintegration und Webportale
- Webportale
• Früher mehr eine Linksammlung zu interessanten Seiten eines Themas,
z.b. Yahoo! Webkatalog
• Heutzutage: umfangreiche Webanwendungen, die unter einheitlichem
Look & Feel z.b. Waren zu einem Bereich verschiedener Lieferanten
anbieten.
• Informationsintegration
• Integration / Speicherung nötiger Daten für eine Webanwendung
• Aufbereitung / Verständnis für Daten
• Verarbeitung von Events
Vorlesung heute: Webtechnologien
• Konzepte zum Aufbau umfangreicher Webanwendungen
• Ziel ist Auslieferung von Inhalten auf unterschiedliche Devices
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
7
GRUNDLAGEN
BASISTECHNOLOGIEN IM WEB
Worauf basieren Webanwendungen?
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
8
http: Transportprotokoll im WWW
http: HyperText Transfer Protocol (aktuell Version 1.1)
Von W3C standardisiertes Protokoll zum Abruf und Senden von Daten
von/an einen Web-Server (RFC 2616)
Ursprünglich: Webseiten, Grafiken
Mittlerweile: auch für WebServices, Skype (Telefonie) etc.
Grund: Firewalls müssen Port 80 freigeben, um Abruf von Webseiten zu
ermöglichen
Protokoll auf TCP/IP basierend mit 3 wichtigen Eigenschaften:
Verbindungslos: nach Anfrage trennt Client die Verbindung u. wartet auf
Server-Antwort; Server muss Verbindung wieder aufbauen (http 1.1
ermöglicht „keep alive“ – nur für z.B. Chats sinnvoll)
Medienunabhängig: jede Art von Datentypen kann versendet werden,
solange Client u. Server damit was anzufangen wissen
Zustandslos: Jeder Abruf von Daten erfordert neue Verbindung; Client
kann keine Informationen zw. Anfragen/über Webseiten hinweg behalten
Bereich MESSAGE HEADER: Für Metainformationen (z.B. Anfragemethode,
Statuscodes, Dokumenttyp, Länge des Dokuments), Authentifizierung
Bereich MESSAGE BODY: folgt dem HEADER, enthält eigentlichen Inhalt
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
9
Adressierung mit http-Protokoll
URI: Uniform Ressource Identifier
Identifizierung und Adressierung von Ressourcen
<Schema>://[<Benutzer>[:<Passwort>]@]
<Server>[:<Port>][/<Pfad>][?<Anfrage>][#<Fragment>]
Davon abgeleitet: Uniform Ressource Locator (URL) für http
z.B. http://www.fzi.de (bedeutet http://www.fzi.de:80/)
httpRequest GET: senden von Parametern, z.B. über Adressfeld des Browsers:
http://www.fzi.de/search.php?autor=Braun&ordering=newest
– Einsatz: für Seiten, die über ein Skript generiert werden und gebookmarkt werden
sollen
– Daten als Teil der URL bleiben erhalten
httpRequest POST: senden von umfangreichen Datenmengen,
Authentifizierung aus Formular heraus.
Datenübertragung im BODY Bereich von http
Keine Speicherung der übertragenen Daten möglich
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
10
Beispiel Messages
HTTP GET Request:
HTTP POST Request:
GET /search.php?autor=Braun&ordering=newest HTTP/1.1
Host: www.fzi.de
POST /search.php HTTP/1.1
Host: www.fzi.de
Content-type: application/x-www-form-urlencoded
Content-length: 27
autor=Braun&ordering=newest
Zum Anschauen von http-Anfrage/Antworten:
http://web-sniffer.net/
HEADER
BODY
Webtechnologien im Überblick01.04.2016
Anmerkung: https (secured protocoll) – zusätzlich Austausch von SSL Zertifikaten
Advanced Software Engineering
Sommersemester 2016
11
Beispiel Messages
HTTP Response Statuscodes: 5 Klassen
1xx – informatorisch
118 Connection timed out
2xx – erfolgreich
200 OK
3xx – Umleitung
301 Moved Permanently
4xx – Client-Fehler
403 Forbidden
5xx – Server-Fehler
503 Service Unavailable
HTTP/1.1 404 Not Found
Date: Sun, 23 Oct 2011 10:23:03 GMT
Server: Apache/2.2.3 (CentOS)
Connection: close
Content-Type: text/html; charset=iso-8859-1
HTTP/1.1 200 OK
Date: Sun, 23 Oct 2011 10:23:03 GMT
Server: Apache/2.2.3 (CentOS)
Connection: close
Content-Type: text/html; charset=utf-8
<html xml:lang="de" … </html>
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
12
HTTP Request
GET/POST
Web Server
Setzt http-Protokoll um, erreichbar über Port (z.B. 80 default)
Bearbeitung von Client Anfragen, bearbeitet diese und gibt wenn möglich
einen Inhalt zurück, sonst http-Fehlercode
Schematischer Aufbau
HTTP Response
Error oder Content
Client
Darstellung
Web Server
Anfrageverarbeitung
Statische Ressourcen
Gateway
Anwendungen
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
13
Browser
Programm zum Abruf und zur Darstellung von Inhalten aus dem
Internet
z.B. Abruf von Webseiten über das Protokoll http, zumeist auch andere
Protokolle wie z.B. ftp (file transfer) integriert.
W3C Konsortium definiert Standards, welche alle Webbrowser können
soll(t)en
HTML, CSS, JavaScript, XSLT
Cache: dient zur Speicherung von häufig verwendeten Inhalten, reduziert
Datentransfer mit Server
Cookies: Über http können z.B. sessionrelevante Inhalte im Browser
abgelegt werden, z.B. sessionID, Username, bevorzugte Sprache
Plugins: Browser sind über Plugins erweiterbar, z.B. Flash
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
14
Cache & Cookies
HTTP Response
HTTP/1.1 200 OK
Date: Sun, 23 Oct 2011 10:23:03 GMT
Server: Apache/2.2.3 (CentOS)
Set-Cookie: d7ae737f0e17da5a64121bfb8fbe92c0=j4hcsnpjhg2fbfpucb6242a9t0; path=/
Set-Cookie: lang=deleted; expires=Sat, 23-Oct-2010 10:28:48 GMT; path=/
Expires: Mon, 1 Jan 2001 00:00:00 GMT
Last-Modified: Sun, 23 Oct 2011 10:28:50 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Content-Type: text/html; charset=utf-8
<html xml:lang="de" … </html>
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
15
Formatierungsanweisung: (X)HTML (1)
Hyper Text Markup Language
Textbasierte Formatierungssprache zur Bestimmung der Darstellung
von Inhalten wie Texten, Bildern und Hyperlinks zu anderen
Dokumenten in einem Browser
<HTML>
<HEAD>
<TITLE>Forschungszentrum Informatik</TITLE>
<HEAD>
<BODY>
<IMG SRC=„logo.jpg“>
…
<A HREF=„kontakt.html“>Kontakt</A><BR/>
…
</BODY>
</HTML>
Kopf:
Metadaten
Body:
SeiteninhaltBild
Link
Vgl. XML:
XHTML wohlgeformt
(HTML nicht)
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
16
XHTML(2)
Browser parst (X)HTML und zeigt dieses im Browser an
Weitere wichtige Elemente: Tabellen, Ebenen, Formulare
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
17
Kommunikation zwischen Browser und
Webserver
Browser
Server
Anfrage, z.B.
www.fzi.de/
Anfrageverarbeitung
Laden von index.html
Parsen von index.html
Darstellung
Anfrage
logo.jpg
Anfrageverarbeitung
Laden von logo.jpg
…
User klickt auf
Link, z.B.Kontakt
Anfrage, z.B.
www.fzi.de/
kontakt.html
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
18
Cascading Style Sheets
Legt fest, wie ein besonders ausgezeichneter Inhalt oder Bereich einer
Webseite dargestellt werden soll.
Trennung von Inhalt (HTML, XML) und Darstellung
CSS als eigene Ressource ladbar (z.B. stylesmobile.css)
Ermöglicht unterschiedliche Ausgabe der gleichen Seite für verschiedene
Medien (Browser, Tablet, Mobiltelefon, …)
Beispiel:
HTML: <span class=„demostyle“>text mit css</span>
CSS: .demostyle {color:black;background:red;font-weight: bold;}
Ausgabe: text mit css
Widerverwendung von Darstellung: CSS
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
19
Skripte in einer Webseite: Java Script
JavaScript (!= JAVA!!!) ist objektbasierte Skriptsprache, direkt in
HTML integrierbar oder als Ressource integrierbar
Ermöglicht die Client-seitige Ausführung von Skripten, durch Browser
interpretiert und umgesetzt, z.B.
Eventhandling, z.B. Validierung von Formulareingaben
Interaktive Menüs, Drag & Drop Funktionen
Aktualisierung von Seitenteilen
In Verbindung mit XML und httpRequest  AJAX (später)
Problem: JavaScript ist schwer wartbar
Ist objektbasiert, aber nicht typisiert oder wirklich objektorientiert
Schwer zu organisieren, debuggen und testen
Verhalten von JavaScript in Browsern nicht immer einheitlich
Wiederverwendung von Bibliotheken statt Selbsterstellung von Scripten
wann immer möglich!
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
20
Java Script Beispiel
Javascript in HTML Text eingebettet
<script type="text/javascript">
function checkFormValues()
{
if (pw1 != pw2)
{
alert(„reenter password and pw are not equal“)>
return false;
}
}
<form name=„loginForm“ onSubmit=„checkFormValues()“>
PW: <Input type=„password“ name=„pw1“/>
Reenter: <input type=„password“ name=„pw2“/>
<input type=„submit“ value=„login“/>
</form>
Skript bewirkt: Überprüfung von eingegebenen Passwörtern
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
21
Zusammenfassung Grundlagen
http: Protokoll im Internet, Adressierung mit URLs
WebServer: Serverseite, erweiterbar (z.B. Gateways)
Browser: Clientseite, dient zur Darstellung von Inhalten
(X)HTML: dient zur Formatierung von Webseiten
Kommunikation: zustandslos, Request – Response Prinzip
CSS: dient zur Trennung von Inhalt und Formatierung
JavaScript: ermöglicht Ausführung von Skripten im Browser
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
22
DESKTOP VS.
WEBANWENDUNGEN
... Die Unterschiede verschwinden
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
23
Desktop vs. Webanwendungen (I)
Desktop-Anwendungen (ohne Netzwerkkommunikation)
„Fat-Client / Rich-Client“: Anwendungslogik, Darstellung (und ggf.
Datenhaltung) in einer Software
+ Zustandshaltung, z.B. geöffnetes Worddokument
+ Umfangreiche Menüfunktionen
+ Schnelle Reaktion auf Eingaben durch Aktualisierung von einzelnen Teilen
einer Seite.
+ Darstellung: Programmierer können Standardbibliotheken verwenden
(Swing (JAVA) /… )
- Meist sehr umfangreiche Installation erforderlich (in Firmen hierfür Kontakt
mit SysAdmin nötig)
- Updates nur manuell
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
24
Desktop vs. Webanwendungen (II)
Desktop-Anwendungen (mit Netzwerkkommunikation)
Datenhaltung und (Teile der) Anwendungslogik ausgelagert, Software auf
Client dient zur Darstellung
+ Weiterhin clientseitige Zustandshaltung (z.B. einmaliges Laden von
Terminen  Darstellung als Kalender)
Kommunikation mit Server nur zur Synchronisation
+ Client weniger umfangreich, Aktualisierung der Software bei jedem Start
möglich (z.B. JAVA Web Start)
- Weiterhin lokale Installationen notwendig
- Entweder Interpreter (z.B. kompatible JAVA-Version)
- oder Plugins (z.B. Flash Player)
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
25
Desktop vs. Webanwendungen (III)
Browserbasierte Webanwendungen:
Webbrowser auf Clientseite wird zur Darstellung der Anwendung
verwendet, Server für die Datenhaltung und Anwendungslogik
+ Keine Installation von Software auf Clientseite nötig
(Sämtliche Betriebssysteme für PCs beinhalten Browser)
„Web 1.0“ Stil:
Eine Webseite wird komplett aktualisiert für jede Anfrage (statisch)
- Ermöglicht keine Anwendungen mit „Desktop-feeling“
„Web 2.0“ Stil
Aktualisierung von Seitenteilen möglich („Desktop-feeling“)
+ Ermöglicht die Erstellung von umfangreichen Webanwendungen im Stile
einer Desktopanwendung
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
26
Entwicklung: Desktopanwendungen im Web
Webanwendungen werden Desktopanwendungen immer ähnlicher,
profitieren aber von den Vorteilen schlanker Clients
Verwendung des Browsers zur Darstellung, keine Installation von Plugins
oder eigenständiger Software
Client immer auf neuestem Stand
Hauptgründe und Techniken hierfür:
JavaScript und CSS
AJAX (Details später)
Breitbandzugänge (schnelles Laden von Seitenteilen möglich)
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
27
WEB-TECHNOLOGIEN FÜR
KLEINERE WEBSEITENPROJEKTE
… hier ist „skripten“ noch sinnvoll
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
28
Merkmale kleiner Webseitenprojekte
Hoher Anteil an statischen (gleich bleibenden) Webseiten
Merkmale der dynamischen Webseiten
Anwendungslogik ändert sich kaum bis selten,
Wartbarkeit ist somit keine Anforderung
Gleichzeitige Teilnehmerzahl für Nutzung von dynamischen Seiten gering
– Skalierbarkeit also keine Anforderung
Vorgehen generell
Design der Webseite und statische Seiten erstellen (Grafiker)
Programmierer wählt eine geeignete Skriptsprache aus und erstellt
Anwendung
Webspace bei Internetprovider anmelden, das Sprache unterstützt
Aufladen der Dateien (Daten) und Skripte: Fertig!
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
29
Vorgehen zur Erstellung dynamischer Seiten
Anwendung:
Für eine geplante Feier sollen sich Freunde und Verwandte online
anmelden, um Catering planen zu können
1. HTML Formular erstellen, das Datenfelder beinhaltet
z.B. Name, Kontakt, Anzahl Personen, Auswahl Menüs, Vegetarisches
Essen gewünscht, …
2. Skript erstellen, das diese Werte einliest
3. Anwendungslogik:
überprüfe, ob Teilnehmer bereits registriert ist
wenn nein, speichere Daten ab
4. Dynamisches Generieren einer Antwortseite
z.B. „Danke für Deine Registrierung“ oder
„Du bist bereits registriert, möchtest du Deine Daten ändern?“
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
30
Serverseitige Anwendungslogik und
Datenhaltung
Serverseitige
HTML-Generierung
Aufruf von
HTML-
generierender
Anwendung
Einbettung
HTML-
generierender
Skriptteile
CGI
API-basiert
interpretiert kompiliert
SSI
ASP
PHP
JSP
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
31
3) Aufbau der DB-
Verbindung bei
jedem Aufruf
Verbindungsaufbau
CGI Common Gateway Interface
client HTTP-
Server
Datenbank
CGI
Skript /
Programm
2) Aufruf des Skriptes
mit Parametern
Initialisierung bei
jedem Aufruf
6) Skript übermittelt
HTML und beendet
sich
Anfrage
1) Betätigung Submit-Button
<FORM METHOD="POST"
ACTION="http://www.fzi.de/
cgi-bin/my-form">
5) Skript generiert
HTML
Antwort
7) HTTP Server
Antwortet
SQL Anfrage
4) Skript stellt Anfrage
an DB
Ergebnis
CGI
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
32
Die Old-School Variante: CGI
Gateway an Web-Server als Erweiterung zur Integration von
Skriptsprachen oder Programmen, z.B. Python, Perl
+ Einzelne Aufrufe konkurrieren sich nicht, da jeder Aufruf in eigenem
Prozess
- Ein Prozess pro Anfrage (Ressourcenintensiv)
- Keine Speicherung des Zustands (CPU intensiv)
- Für jede DB-Anfrage Verbindung aufbauen und trennen
(zeitintensiv)
- Keine Trennung von Präsentation und Anwendungslogik
(Wartbarkeit für größere Projekte kaum möglich)
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
33
Optimierung durch API-basierte Ansätze
client HTTP-
Server Datenbank
HTML-Generierung
Programm
Aufruf des Programms,
Parameterübergabe
Initialisierung bei ersten
Aufruf (einmalig)
Verbindungsaufbau
Verbindungsaufbau zur
DB beim ersten Aufruf
(einmalig)
Beliebig viele
SQL Anfragen
SQL Anfragen
Ergebnisse
Zustand
Anfrage
Betätigung Submit-Button
<FORM METHOD="POST"
ACTION="http://www.fzi.de/
cgi-bin/my-form">
Antwort
HTML-Rückgabe
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
34
Beispiel: Java Servlet
Programm wird in den Adressraum des Servers geladen
+ Programm startet einmalig, nur eine Datenbankverbindungen
erforderlich
+ Zustandshaltung möglich, z.B. durch Session-IDs
+ Anfragen werden in Threads statt Prozessen ausgeführt
(deutlich Ressourcenschonender)
- Installation von speziellem Web-Server zur Ausführung von Java-
Servlets nötig, z.B. Apache Tomcat (für kleine Projekte ungeeignet)
- Keine Trennung von Präsentation und Anwendungslogik
 Für kleine Anwendungen zu aufwendig, für große ungeeignet
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
35
Server-Side Scripting
In HTML-Seiten werden zusätzliche HTML-generierende Quellen
integriert
Datenbank
Scripting
HTML
Scripting
HTML
Anwendungs-
Logik
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
36
Interpretation zur Laufzeit
Interpretierte Skriptsprachen: z.B. PHP
• Skript wird direkt in eine HTML-Seite
geschrieben
• Bei Anfrage einer Seite wird Skript durch
Interpreter interpretiert und HTML-Text
geschrieben
• Generiertes Dokument wird an Server
zurückgegeben
+ einfache Art, Skripte einzubinden
+ Interpreter ist nur ein einzelner Prozess
- CPU-Last bei jedem Seitenabruf durch
Neuinterpretation
- Keine Trennung von Präsentation und Logik
 Für kleinere Webanwendungen sehr
gut geeignet
<html>
<?php ...>
</html>
Anwendung
erstellen
Interpreter
HTML-
Dokument
Laufzeit
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
37
PHP-Beispiel
<html>
<head><title>Login</title></head>
<body>
<h3>Your login data </h3>
<br/>
<table>
<tr><td>Name:</td><td><?=$_GET[„username“]?></td></tr>
<tr><td>Password:</td><td><?=$_GET[„pwd“]?></td></tr>
</table>
</body>
</html>
Client HTTP-
Server Datenbank
PHP-Modul SQL Anfragen
Ergebnisse
PHP-SkriptAntwort
Anfrage
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
38
PHP für große Projekte: Wikipedia
Praxisbeispiel
Wikipedia.org verwendet PHP für ein sehr umfangreiches Projekt.
Prinzip: Statisches Schreiben von Webseiten
Verhältnis von Seitenabruf zu Seitenänderung sehr gering
Anwendungslogik vergleichsweise gering: Seitenänderungen annehmen
und protokollieren
 Statisches Schreiben von Webseiten reduziert CPU-/ Ressourcenlast:
HTML-Seite muss nur geladen werden
! Wenn möglich, sollten aus dynamischen Seiten statische Seiten
generiert werden, um die Skalierbarkeit zu erhöhen
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
39
Kompilierte Skriptsprachen
Kompilierte Skriptsprachen z.B. JSP
Erfordert Installation von JAVA-fähigem
Web-Server
Kompilierung erzeugt Servlets zur
Ausführung der JSP-Seiten
+ JSP 1.1 ermöglicht durch „Tags“ klarere
Trennung von Darstellung und
Anwendung; noch besser mit
Expression Language ab JSP 2.0
- JSP-Programmierung entspricht nicht
den meisten Programmierern bekannte
GUI-Programmierung (z.B. event-
Verarbeitung
Tutorial: http://www.jsptutorial.org/
<html>
<jsp:...>
</html>
Anwendung
erstellen
Compiler
Übersetzungs-
zeit
(einmalig)
Servletgenerierung
HTML-
Dokument
Laufzeit
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
40
Clientseitige Anwendungslogik
Motivation
Die Funktionen im Browser reichen für geplante Anwendung nicht aus,
z.B.
gleichzeitiges Aufladen von Bildern aus einem lokalen Ordner für ein
Fotoalbum (Sicherheitsbeschränkungen von http erlauben immer nur eine
Datei auszuwählen  Umständlich für Benutzer)
Abspielen von Multimedia (z.B. Videos)
Die Anwendung soll sehr dynamisch sein, z.B.
Produktwerbung (viele bewegte Bildsequenzen)
Die Anwendung soll wie eine Desktop-Anwendungen wirken
Vor ein paar Jahren gab es noch kein AJAX ;-)
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
41
Browser Plugins
Erweiterung des Browsers um neue Softwarekomponente
am Beispiel von Adobe Flash
Einsatz: sehr dynamische Anwendungen, Multimedia, Desktop
Integrierte Skriptsprache: Action Script
Teile oder komplette Anwendungslogik wird integriert
Kommunikation mit Server über http oder soap
Starten einer Plugin-Anwendung
1. Benutzer muss jeweils kompatible Version des Plugins haben
2. Eigener HTML-Tag (<object><embed>) zum Starten des Plugins in
einer Webseite
3. Komplettes Programm wird zum Client übertragen
4. Plugin lädt Programm und stellt es dar
+ Verhalten der Software exakt vorhersagbar (mit HTML problematisch)
- Plugin, speziell aktuellste Version nicht auf allen Client PCs
(z.B. beschränkte Installationsrechte auf Firmen-PSs)
- Erfordert Spezialisten im Umgang mit der jeweiligen
Programmiersprache
- Meist Wartung schwierig
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
42
JAVA Applets
Motivation
Über ein Browser soll eine Desktopanwendung geladen werden
Anwendungslogik komplett integrierbar
Theoretisch auch Datenhaltung direkt ansprechbar (praktisch nicht: aus
Sicherheitsgründen – erfordert dies Öffnung eines Ports direkt zur
Datenbank !)
+ Entwicklung der Anwendung komplett in JAVA möglich
+ Saubere Trennung von Darstellung und Anwendungslogik möglich
+ Wiederverwendbarkeit von Komponenten
- vgl. Plugins: Installationen notwendig
<object classid="java:example.class" codetype="application/java-vm" width=„400" height="400"></object>
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
43
Schichtenarchitektur mit Skripten und Plugins
Daten
Anwendung
Präsentation
Direkte Kommunikation
mit Datenbank
(SQL über
DB-spezifisches Protokoll)
Kommunikation über
Middleware-Protokoll
(RMI, IIOP, SOAP)
1.
Plug-in-
Anwendung
mit direkter
Datenbank-
kommuni-
kation
2.
Plugin-
Anwendung
mit Zugriff
über
Middleware HTTP-basiertes
Protokoll
3.
HTML-
Client
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
44
Zusammenfassung: kleine Webanwendungen
Für kleine Anwendungen
Skalierbarkeit, Wartbarkeit und Wiederverwendbarkeit stellen keine
Anforderung dar
Plugins ermöglichen Spezialanwendungen
Alle gezeigten Skriptansätze ermöglichen die Generierung von
dynamischen HTML-Seiten.
Erstellung von Anwendungen mit Desktop-Charakter hier nicht nötig
Generierung von statischen Seiten ermöglicht auch umfangreiche
Anwendungen bei geringen Ressourcen
Umsetzung der Anwendung also entscheidend von Vorkenntnissen der
Programmierer und den installierten Interpretern / Gateways auf einem
Web-Space
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
45
WEB-RAHMENWERKE FÜR
UMFANGREICHE
WEBSEITENPROJEKTE
.. „Mal schnell ein Skript schreiben“ reicht da nicht mehr!
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
46
Umfangreiche Webanwendungen
Eigenschaften
Hoher Anteil an dynamischen Seiten
Komplexer Seitenaufbau
Umfangreiche Anwendungslogik, häufige Änderungen und Erweiterungen
Verschiedene Ausgabesprachen, Ausgabemedien
Zuverlässiger Betrieb auf unterschiedlichsten Browsern
Erstellung mit Web-Rahmenwerk
Rahmenwerk, das Erstellung einer umfangreichen Anwendung ermöglicht
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
47
Rahmenwerke über
Tapestry Echo JSF Cocoon Millstone Click
OXF Struts Cassandra WebWork SOFIA AppFuse
WebOnSwing Xoplon Groovy Flex
Genie Wicket Chiba Jaffa JBanana GWT
Smile MyFaces JWarp Facelets Melati
Eclipse RAP Japple Helma Dinamica ZK
Liste unvollständig.
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
48
Welches Rahmenwerk verwenden?
Hauptfrage bei einem neuen Projekt
Welches Framework verwendet man?
Generelle Faktoren
Programmiersprache: abhängig vom Team
Lizenz: abhängig von Budget, Infrastruktur
(z.B. Alles in Microsoft .NET -> Lizenzen für Server, Software etc nötig)
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
49
Hauptparameter bei umfangreichen Projekten
Trennung von Anwendungslogik und Darstellung
Gründe
Code gemischt mit HTML schwer lesbar und wartbar (in Skriptsprachen
und JSP der Fall)
Änderung der Darstellung können unabhängig von der Anwendungslogik
gemacht werden.
Gängige Umsetzungen
Id-Marken in HTML-Text, die später durch HTML-Text ersetzt werden –
z.B. <span app:id=„codehere“/>
Web-Rahmenwerk bietet Standardkomponenten an, die verwendet
werden können (Tables, Pulldowns, etc.)
Formatierung durch CSS
Wünschenswert: eigene Komponenten erstellbar
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
50
Model View Controller
Dreischichtenarchitektur trennt
Präsentation
Anwendung
Datenhaltung
Model View Controller trennt ähnlich
View: Darstellung
Controller:
Request / Response Verwaltung
Model: Daten
 Saubere Trennung von Darstellung und Anwendung
 Wiederverwendbarkeit der Anwendungslogik
 Im Einsatz bei SWING und den meisten Web-Frameworks
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
51
Web-Rahmenwerke
Prinzip
meist: Model - View - Controller
Es gibt Fülle von Rahmenwerken …
Welches nimmt man?
Ziele
Zusammenstellung von Anforderungen an ein Rahmenwerk
Zusätzliche Anforderungen durch „AJAX-Trend“
GWT also Rahmenwerk für umfangreiche Anwendungen
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
52
Anforderungen an umfangreiche Webanwendungen
und Web-Rahmenwerke (1)
Regelmäßige Umstrukturierung, z.B. Umbau /
Erweiterung der Seite:
Erfordert strikte Trennung von Anwendungslogik und Darstellung
Unterstützung von einheitlichem Look & Feel
Templates, auch für verschiedene Ausgabearten (PC, Tablet, Mobile, …)
Betrieb der Webseite in mehreren Sprachen
Automatisches Füllen von Textstellen in Webseiten mit Ländersprache
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
53
Mehrsprachigkeit
Webseiten umfangreicher Projekte müssen meist in mehreren
Sprachen erstellt werden
Manuelle Erstellung von sprachspezifischen Seitenteilen ist zeit- und
pflegeaufwendig, macht schwer wartbare Quelltexte
Anforderung
Framework sollte sprachspezifische Textbausteine automatisch in
Webseiten einfügen können
Gängige Umsetzung: i18n Standard
Verwendung von Properties-Dateien für länderspezifische
Sprachbausteine, z.B. (response_en.properties)
Dynamisches Laden der jeweiligen Properties-Datei durch das Web-
Framework für die Spracheinstellungen eines Nutzers
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
54
Anforderungen an umfangreiche Webanwendungen
und Web-Rahmenwerke (2)
Hoher Anteil an dynamischen Seiten, z.B. für
Suchergebnisse, Shop-Systeme, Warenkörbe, …
Erstellung von umfangreicher Anwendungslogik
Umfangreiche Datenintegration / umfangreiche
Dateneingaben
Erfordert Einbindung von Frameworks zur Datenintegration
Integrierte Prüfung der Konsistenz von Benutzereingaben mit Datenmodell
und Anwendungslogik
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
55
Datenintegration und Eingaben
Umfangreiche Datenintegration
Erweiterung mit speziellen Frameworks mit Objektmapping
Hybernate, Spring
Umfangreiche Dateneingaben
wenn nötig Transaktionen, Speicherung, …
Durch Web-Rahmenwerk selbst oder in Verbindung mit Erweiterungen:
Prüfung der Konsistenz von Benutzereingaben,
z.B. PLZ hat fünf Ziffern
Emailadresse muss „@“ beinhalten
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
56
Anforderungen an umfangreiche Webanwendungen
und Web-Rahmenwerke (3)
Zugangsbeschränkungen für geschützte Bereiche
User-Sessions und Weiterleitung auf Login-Seite
Schnelle Reaktionszeiten auf Benutzeranfragen
Zustandshaltung von aktuell benötigten Daten / Kontext eines Nutzers
Anwendungen mit Desktopstil
Einfache Intergrierbarkeit von AJAX-Techniken
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
57
Zugangsbeschränkungen für geschützte
Bereiche
Gängige Verfahren (da http zustandslos)
Rahmenwerk generiert nach einem erfolgreichen Login ein „Session-ID
String“.
z.B. jsessionid=0EEC1A1BE9980145F81DF6B99418B027
Rahmenwerk hält ein Session-Objekt pro Benutzer zur Bindung von
Objekten eines Benutzers
Nutzeridentifikation:
Session-id als cookie (falls von Browser akzeptiert), sonst als GET Parameter
in allen URLs der Webseite
Bei jedem Seitenaufruf:
Rahmenwerk sucht nach vorhandenem Session-Objekt
Falls nicht vorhanden: Weiterleitung auf Login-Seite (falls die aufgerufene
Seite eine geschützte Seite ist)
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
58
Anwendungen mit Desktopstil – AJAX
AJAX (asynchronous JavaScript and XML)
Ermöglicht die Aktualisierung von Seitenteilen
Somit muss nicht immer die ganze Seite neu
geladen werden und die Anwendung bekommt
desktop-feeling
Bestandteile:
Über JavaScript wird ein „XMLHttpRequest“ an
Server geschickt
Server verarbeitet Request und gibt XML oder
HTML zurück
JavaScript nimmt Request entgegen und
verarbeitet diesen, meist durch Aktualisierung
eines Seitenbereichs (z.B. Layers)
 Keine wirklich neue Technologie, sondern
eine Kombination von bestehenden
Techniken
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
59
AJAX in der Praxis
Beispiele
Auto-Complete für Suchanfragen
Pop-Up Fenster (in Seite integriert)
Drag & Drop
Direkte Fehlermeldungen auf Falscheingaben in Formularen
Best Practices
AJAX-Funktionen manuell zu erstellen ist zeitaufwendig und fehleranfällig
(Nur für JavaScript Experten)
 Verwendung eines geeigneten Rahmenwerks
Bei Aktualisierung von Seitenteilen: Aktion dem Benutzer anzeigen (z.B.
durch Ladebalken)
AJAX nicht wahllos einsetzen!
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
60
AJAX integriert in Web-Frameworks
AJAX stellt umfangreiche Anforderungen an ein Web-Framework
Ohne AJAX: es wird eine ganze Seite generiert und Komponenten,
Zustände der Seite komplett geändert
Mit AJAX: Webtechnologie sollte möglichst schnell und unkompliziert die
Aktualisierung von Seitenteilen unterstützen
Komplexität der JavaScript Aufrufe verbergen
Methoden für AJAX-Calls anbieten
Aktualisierung von Seitenteilen / Komponenten ermöglichen
AJAX Unterstützung möglichst direkt in einem Framework (und nicht über viel
„Hackerei“ eingebunden)
 Für zeitgemäße Webanwendungen:
AJAX Support in Framework zwingend erforderlich
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
61
Anforderungen an umfangreiche Webanwendungen
und Web-Rahmenwerke (4)
Weitere Anforderungen
• Objektorientierte Programmierung der Anwendung mit
für Entwickler vertrauten Prinzipien (vgl. Swing:
Datenbindung, Events, etc)
• Schnelle Erlernbarkeit der Webtechnologie, Abstraktion
von zugrundeliegenden Techniken (z.B. Details von http)
• Durchführung von automatischen Funktionstests (vgl.
JUnit Tests)
Grund: manuelle Tests zeitaufwendig!
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
62
Auswahl des geeigneten Rahmenwerks
Zusammenfassung Hauptkriterien
Erfüllung der genannten Anforderungen, Fokus auf
AJAX-Support
Erweiterbarkeit
Trennung von Anwendung und Darstellung
Lizenzierung: Proprietär vs. open-source
Programmiersprache (im Folgenden: Focus auf JAVA)
Zeitaufwand zur Erstellung von Web-Anwendungen
Support: Qualität der Mailinglisten-Antwortzeit
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
63
KONZEPTE VON WEB-
RAHMENWERKEN
 Beispiel Google Web Toolkit (GWT)
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
64
Google Web Toolkit (1)
Programmiersprache: JAVA
Widget Library: Verhalten von GUI Komponenten wie in Swing
programmierbar (Events, Container-Zuordnung, …)
Verhalten der Komponenten wie in Applets (mittels AJAX), d.h.
möglichst alles im Client
Proprietärer Compiler generiert daraus sämtlichen XHTML und
JavaScript Code für AJAX, welcher zum Client gesendet wird
Saubere Trennung von Darstellung und Anwendungslogik
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
65
Google Web Toolkit (2)
Entwickler benötigen (fast) keine HTML-Kenntnisse
(nur wenige Host-HTML Seiten werden benötigt)
Design der Komponenten über CSS anpassbar
(Aufruf von CSS über Host-HTML Seite)
Spring, Hybernate für Datenhaltung integrierbar
Für Anwendungen in der Cloud mit Google App Engine
GWT auch nur zur GUI-Erstellung (Webseiten-Frontend) nutzbar
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
66
Google Web Toolkit Bewertung
+ Trennung von Anwendung und Darstellung
+ Einfach erlernbar und schnell anwendbar
+ Stetig wachsende Community – guter Support
- Getrennte Betrachtung von Client und Serverseite (Bereitstellung von
Daten durch SOAP basierte RPC Calls)
- Proprietärer Compiler
- Generiertes JavaScript ist kryptisch (proprietär),
Debugging nur in Java
 Tutorial: https://developers.google.com/web-toolkit/gettingstarted
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
67
BEISPIEL EINER UMFANGREICHEN
WEBANWENDUNG
Clinerion Ltd, Basel
Dr. Andreas Walter, Head of Development
http://www.clinerion.com
Clinerion - Patient Recruitment System
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
68
Clinerion Patient Recruitment System
Domäne Pharma, Medikamentensicherheit
• Pharma entwickelt neue Medikamente, erhält Patent
Muss dann beweisen, dass Wirkung vorhanden, u.a. keine tödlichen
Nebenwirkungenen => klinische Studien, Studienprotokolle
• Klinische Studien werden in u.a. Krankenhäusern durchgeführt,
erfordert Auswahl geeigneter Patienten, z.b. mit Pneumonie : manueller
Prozess
Clinerion Patient Recruitment System
• Automatisierte Suche geeigneter Patienten (Patent pending)
Fokus nun (Ausschnitt): Online Recruitment
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
69
Online Recruitment Anwendungen
Prozessschritte Online Recruitment
1. PRS Serverinstallation in Krankenhaus (Datenintegration, Big data)
2. PRS Registry: Verwaltung von klinischen Studien / Benutzern,
Krankenhäusern
3. PRS Coding: Patientendaten sind kodiert mit Terminologien
(Ontologien) => semantische Integration.
Coding: Erstellung eines semantischen Studienprotokoll
4. PRS Search: Aktivierung von Studienprotokoll in Registry
PRS startet regelmässige Suche von Patienten in Patientendaten
(Anmerkung: hier auch sehr viel Datenanonymisieurng integriert!)
5. PRS Validation: Passende Kandidaten werden gesammelt und in
PRS Validation GUI angezeigt.
Treffer werden validiert, wenn passend, Patienten angefragt, ob sie an
Studie teilnehmen wollen
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
70
PRS Registry
Verwaltung klinischer Studien / Benutzern, Krankenhäusern
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
71
PRS Coding (Excel)
Technisch: es werden hierarchische Protokolle erstellt, Verknüpfung
mit boolschen Operatoren. Umsetzung zur Suche auf Index
(erfordert natürlich zuerst Aufbau von Indexen. Verteilt, semantisch,
skalierbar, ...)
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
72
PRS Validation (1)
Passende Kandidaten werden gesammelt und GUI angezeigt
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
73
PRS Validation (2)
Detailansicht Patientenakte
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
74
Blick auf PRS Webanwendung
Verschiedene Web-Frontends nötig, einheitlicher Login (Single Sign
On), einheitliche Darstellung der Seiten (Look And Feel)
Mehrsprachigkeit: aktuell u.a. Installationen in Türkei, Schweiz,
Deutschland – Erweiterung in andere Sprachen
Permanente Notwendigkeit neuer Funktionen
Waterfal Model hier unmöglich.
In Praxis: Scrum, Sprint basiert auf Featuer Driven Development
Umfangreiche Erstellung von Tests nötig – Quality Management
Nicht alles muss ein Web-GUI sein
Fachpersonal zur Erstellung von Protokollen ist Excel gewohnt
=> Excel als Frontend, Transformatoren zur Erstellung von
Suchanfragen
Verwendetes Webrahmenwerk: Google Web Toolkit
Gründe u.a. : schnelle GUIs, einfache Erlernbarkeit für Entwickler
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
75
Zusammenfassung
Umfangreiche Webanwendungen erfordern Web-Rahmenwerke
Ermöglichen langfristige Wartung einer Anwendung
Trennung von Darstellung und Anwendung wichtig
Verdecken Komplexität der zugrunde liegenden Webtechnologien
Umfangreiche Anforderungen an ein Web-Rahmenwerk
Integration von AJAX in ein Rahmenwerk ermöglicht die Erstellung von
Anwendungen mit Desktop-Charakter
Auswahl des „richtigen“ Rahmenwerks
Bei neuen Projekten: Prüfen, ob aktuelle Rahmenwerke die
Anforderungen besser/direkter/schneller erfüllen können
Webtechnologien im Überblick01.04.2016
Advanced Software Engineering
Sommersemester 2016
76
Literatur
(eine Auswahl hier, Vielzahl an Tutorien im Web verfügbar)
Buch: Web-Technologien
von Heiko Wöhr von Dpunkt Verlag (Taschenbuch - Mai 2004)
Buch: Web-Technologien: Grundlagen, Web-Programmierung,
Suchmaschinen, Semantic Web
Christoph Meinel, Harald Sack von x.media.press (2013)
JSP
http://www.jsptutorial.org/
AJAX
http://www.w3schools.com/ajax/default.asp
Google Web Toolkit
http://code.google.com/webtoolkit/
Eclipse RAP
http://www.eclipse.org/rap/
Webtechnologien im Überblick01.04.2016

Weitere ähnliche Inhalte

Andere mochten auch

G*ワークショップ+忘年LT大会
G*ワークショップ+忘年LT大会G*ワークショップ+忘年LT大会
G*ワークショップ+忘年LT大会ikikko
 
сервис для клиентов сталекс миф или реальность
сервис для клиентов сталекс миф или реальностьсервис для клиентов сталекс миф или реальность
сервис для клиентов сталекс миф или реальностьИнтернет магазин Staleks.SU
 
Understanding how collaboration improves productivity workshop
Understanding how collaboration improves productivity workshopUnderstanding how collaboration improves productivity workshop
Understanding how collaboration improves productivity workshopPaul Boos
 
Presentasjon employer branding - knuste myter og mer effektive arbeidsmetoder
Presentasjon employer branding - knuste myter og mer effektive arbeidsmetoderPresentasjon employer branding - knuste myter og mer effektive arbeidsmetoder
Presentasjon employer branding - knuste myter og mer effektive arbeidsmetoderArve Kvalsvik
 
Reinforcement unit 7
Reinforcement unit 7Reinforcement unit 7
Reinforcement unit 7Sonia
 
Мягкое управление командой проекта
Мягкое управление командой проектаМягкое управление командой проекта
Мягкое управление командой проектаAnton Kuchumov
 
Edad sexo nutricion y recuperacion cd4 coinfeccion VIH/TBC
Edad sexo nutricion y recuperacion cd4 coinfeccion VIH/TBCEdad sexo nutricion y recuperacion cd4 coinfeccion VIH/TBC
Edad sexo nutricion y recuperacion cd4 coinfeccion VIH/TBCAlex Castañeda-Sabogal
 
Ke hoach Online Marketing
Ke hoach Online MarketingKe hoach Online Marketing
Ke hoach Online MarketingHoàng Nguyễn
 
Geotourism Developments in Ulladulla by Phil Smart
Geotourism Developments in Ulladulla by Phil SmartGeotourism Developments in Ulladulla by Phil Smart
Geotourism Developments in Ulladulla by Phil SmartLeisure Solutions®
 
Stockholmscenterns Motioner 2010
Stockholmscenterns Motioner 2010Stockholmscenterns Motioner 2010
Stockholmscenterns Motioner 2010Stockholmscentern
 
¿Tratamiento antirretroviral como prevencion?
¿Tratamiento antirretroviral como prevencion?¿Tratamiento antirretroviral como prevencion?
¿Tratamiento antirretroviral como prevencion?Alex Castañeda-Sabogal
 
Understanding how collaboration improves productivity
Understanding how collaboration improves productivityUnderstanding how collaboration improves productivity
Understanding how collaboration improves productivityPaul Boos
 
Kutadgu profile nov2012
Kutadgu profile nov2012Kutadgu profile nov2012
Kutadgu profile nov2012Ahter Kutadgu
 

Andere mochten auch (20)

G*ワークショップ+忘年LT大会
G*ワークショップ+忘年LT大会G*ワークショップ+忘年LT大会
G*ワークショップ+忘年LT大会
 
Grammar tenses
Grammar tensesGrammar tenses
Grammar tenses
 
сервис для клиентов сталекс миф или реальность
сервис для клиентов сталекс миф или реальностьсервис для клиентов сталекс миф или реальность
сервис для клиентов сталекс миф или реальность
 
Eventi online - gestione e promozione
Eventi online - gestione e promozioneEventi online - gestione e promozione
Eventi online - gestione e promozione
 
Understanding how collaboration improves productivity workshop
Understanding how collaboration improves productivity workshopUnderstanding how collaboration improves productivity workshop
Understanding how collaboration improves productivity workshop
 
Vg2012jl
Vg2012jlVg2012jl
Vg2012jl
 
Presentasjon employer branding - knuste myter og mer effektive arbeidsmetoder
Presentasjon employer branding - knuste myter og mer effektive arbeidsmetoderPresentasjon employer branding - knuste myter og mer effektive arbeidsmetoder
Presentasjon employer branding - knuste myter og mer effektive arbeidsmetoder
 
Reinforcement unit 7
Reinforcement unit 7Reinforcement unit 7
Reinforcement unit 7
 
Мягкое управление командой проекта
Мягкое управление командой проектаМягкое управление командой проекта
Мягкое управление командой проекта
 
FLL Central Texas
FLL Central TexasFLL Central Texas
FLL Central Texas
 
Edad sexo nutricion y recuperacion cd4 coinfeccion VIH/TBC
Edad sexo nutricion y recuperacion cd4 coinfeccion VIH/TBCEdad sexo nutricion y recuperacion cd4 coinfeccion VIH/TBC
Edad sexo nutricion y recuperacion cd4 coinfeccion VIH/TBC
 
Ke hoach Online Marketing
Ke hoach Online MarketingKe hoach Online Marketing
Ke hoach Online Marketing
 
Vg2012jl
Vg2012jlVg2012jl
Vg2012jl
 
Photoshop: fashion retouching
Photoshop: fashion retouchingPhotoshop: fashion retouching
Photoshop: fashion retouching
 
Geotourism Developments in Ulladulla by Phil Smart
Geotourism Developments in Ulladulla by Phil SmartGeotourism Developments in Ulladulla by Phil Smart
Geotourism Developments in Ulladulla by Phil Smart
 
Stockholmscenterns Motioner 2010
Stockholmscenterns Motioner 2010Stockholmscenterns Motioner 2010
Stockholmscenterns Motioner 2010
 
Blogger-ohje
Blogger-ohjeBlogger-ohje
Blogger-ohje
 
¿Tratamiento antirretroviral como prevencion?
¿Tratamiento antirretroviral como prevencion?¿Tratamiento antirretroviral como prevencion?
¿Tratamiento antirretroviral como prevencion?
 
Understanding how collaboration improves productivity
Understanding how collaboration improves productivityUnderstanding how collaboration improves productivity
Understanding how collaboration improves productivity
 
Kutadgu profile nov2012
Kutadgu profile nov2012Kutadgu profile nov2012
Kutadgu profile nov2012
 

Ähnlich wie Webtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerke

Php Tutorium
Php TutoriumPhp Tutorium
Php TutoriumAVGP
 
02 Webtechnologien - Informatiosinstegration und Webportale
02 Webtechnologien - Informatiosinstegration und Webportale02 Webtechnologien - Informatiosinstegration und Webportale
02 Webtechnologien - Informatiosinstegration und Webportaleklickandbau
 
Webtechnologien - ein kurzer Überblick
Webtechnologien - ein kurzer ÜberblickWebtechnologien - ein kurzer Überblick
Webtechnologien - ein kurzer ÜberblickClaus Brell
 
Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11Noël Bossart
 
PR_293_6901_Grundlagen.pptx
PR_293_6901_Grundlagen.pptxPR_293_6901_Grundlagen.pptx
PR_293_6901_Grundlagen.pptxAghaheHshsh
 
Internet-Geschichte und Webtechnologie (Historisches Dokument)
Internet-Geschichte und Webtechnologie (Historisches Dokument)Internet-Geschichte und Webtechnologie (Historisches Dokument)
Internet-Geschichte und Webtechnologie (Historisches Dokument)Eric Eggert
 
Webanwendungen - Installation, Konfiguration und Administration
Webanwendungen - Installation, Konfiguration und AdministrationWebanwendungen - Installation, Konfiguration und Administration
Webanwendungen - Installation, Konfiguration und AdministrationThomas Siegers
 
Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)
Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)
Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)kaftanenko
 
Hypermedia mit der ASP.NET Web API
Hypermedia mit der ASP.NET Web APIHypermedia mit der ASP.NET Web API
Hypermedia mit der ASP.NET Web APIAlexander Zeitler
 
Internet und Webdesign (Historisches Dokument)
Internet und Webdesign (Historisches Dokument)Internet und Webdesign (Historisches Dokument)
Internet und Webdesign (Historisches Dokument)Eric Eggert
 
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...Christian Wenz
 
HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009Felix Sasaki
 
XML Director - the technical foundation of onkopedia.com
XML Director - the technical foundation of onkopedia.comXML Director - the technical foundation of onkopedia.com
XML Director - the technical foundation of onkopedia.comAndreas Jung
 
Schnittstellen und Webservices
Schnittstellen und WebservicesSchnittstellen und Webservices
Schnittstellen und WebservicesJakob .
 
HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...
HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...
HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...Karionis
 
Grundlagen des World Wide Web
Grundlagen des World Wide WebGrundlagen des World Wide Web
Grundlagen des World Wide WebJakob .
 

Ähnlich wie Webtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerke (20)

Interaktives Web
Interaktives WebInteraktives Web
Interaktives Web
 
Php Tutorium
Php TutoriumPhp Tutorium
Php Tutorium
 
02 Webtechnologien - Informatiosinstegration und Webportale
02 Webtechnologien - Informatiosinstegration und Webportale02 Webtechnologien - Informatiosinstegration und Webportale
02 Webtechnologien - Informatiosinstegration und Webportale
 
Webtechnologien - ein kurzer Überblick
Webtechnologien - ein kurzer ÜberblickWebtechnologien - ein kurzer Überblick
Webtechnologien - ein kurzer Überblick
 
Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11
 
PR_293_6901_Grundlagen.pptx
PR_293_6901_Grundlagen.pptxPR_293_6901_Grundlagen.pptx
PR_293_6901_Grundlagen.pptx
 
Ajax, Comet & Co.
Ajax, Comet & Co.Ajax, Comet & Co.
Ajax, Comet & Co.
 
Internet-Geschichte und Webtechnologie (Historisches Dokument)
Internet-Geschichte und Webtechnologie (Historisches Dokument)Internet-Geschichte und Webtechnologie (Historisches Dokument)
Internet-Geschichte und Webtechnologie (Historisches Dokument)
 
Webanwendungen - Installation, Konfiguration und Administration
Webanwendungen - Installation, Konfiguration und AdministrationWebanwendungen - Installation, Konfiguration und Administration
Webanwendungen - Installation, Konfiguration und Administration
 
Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)
Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)
Einführung in die Java-Webentwicklung - Part I - Einführung, HTTP (in german)
 
Hypermedia mit der ASP.NET Web API
Hypermedia mit der ASP.NET Web APIHypermedia mit der ASP.NET Web API
Hypermedia mit der ASP.NET Web API
 
Internet und Webdesign (Historisches Dokument)
Internet und Webdesign (Historisches Dokument)Internet und Webdesign (Historisches Dokument)
Internet und Webdesign (Historisches Dokument)
 
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
 
HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009
 
XML Director - the technical foundation of onkopedia.com
XML Director - the technical foundation of onkopedia.comXML Director - the technical foundation of onkopedia.com
XML Director - the technical foundation of onkopedia.com
 
Schnittstellen und Webservices
Schnittstellen und WebservicesSchnittstellen und Webservices
Schnittstellen und Webservices
 
Ec2009 Templates
Ec2009 TemplatesEc2009 Templates
Ec2009 Templates
 
HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...
HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...
HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...
 
Rest
RestRest
Rest
 
Grundlagen des World Wide Web
Grundlagen des World Wide WebGrundlagen des World Wide Web
Grundlagen des World Wide Web
 

Webtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerke

  • 1. KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft INFORMATIONSINTEGRATION UND WEBPORTALE www.kit.edu KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft INFORMATIONSINTEGRATION UND WEBPORTALE www.kit.edu Hoschschule Pforzheim ADVANCED SOFTWARE ENGINEERING Klick-And-Bau Informationsintegration und Webportale Advanced Software Engineering Vorlesung 01.04.2016 : Web-Technologien im Überblick Dr. Andreas Walter mail@awalter.info
  • 2. Advanced Software Engineering Sommersemester 2016 2 Webtechnologien im Überblick Webanwendungen: Statische Webseiten Statische Webseiten: z.B. für eine Ferienwohnung 01.04.2016
  • 3. Advanced Software Engineering Sommersemester 2016 3 Webanwendungen: Dynamische Webseiten Dynamische Webseiten: z.B. Portale zur Flugbuchung Webtechnologien im Überblick01.04.2016
  • 4. Advanced Software Engineering Sommersemester 2016 4 Webanwendungen: Anwendungen Webseiten im Stil von Desktop-Anwendungen Webtechnologien im Überblick01.04.2016
  • 5. Advanced Software Engineering Sommersemester 2016 5 Inhalt Einordnung Webtechnologien - Informatiosinstegration und Webportale Grundlagen Webtechnologien Desktop vs. Webanwendungen Webtechnologien für kleinere Webanwendungen Anforderungen bei der Erstellung umfangreicher Webanwendungen Beispiel einer umfangreichen Webanwendung Clinerion – Patient Recruitment System Konzepte von Webrahmenwerken Webtechnologien im Überblick01.04.2016
  • 6. Advanced Software Engineering Sommersemester 2016 6 Einordnung Webtechnologien Informationsintegration und Webportale - Webportale • Früher mehr eine Linksammlung zu interessanten Seiten eines Themas, z.b. Yahoo! Webkatalog • Heutzutage: umfangreiche Webanwendungen, die unter einheitlichem Look & Feel z.b. Waren zu einem Bereich verschiedener Lieferanten anbieten. • Informationsintegration • Integration / Speicherung nötiger Daten für eine Webanwendung • Aufbereitung / Verständnis für Daten • Verarbeitung von Events Vorlesung heute: Webtechnologien • Konzepte zum Aufbau umfangreicher Webanwendungen • Ziel ist Auslieferung von Inhalten auf unterschiedliche Devices Webtechnologien im Überblick01.04.2016
  • 7. Advanced Software Engineering Sommersemester 2016 7 GRUNDLAGEN BASISTECHNOLOGIEN IM WEB Worauf basieren Webanwendungen? Webtechnologien im Überblick01.04.2016
  • 8. Advanced Software Engineering Sommersemester 2016 8 http: Transportprotokoll im WWW http: HyperText Transfer Protocol (aktuell Version 1.1) Von W3C standardisiertes Protokoll zum Abruf und Senden von Daten von/an einen Web-Server (RFC 2616) Ursprünglich: Webseiten, Grafiken Mittlerweile: auch für WebServices, Skype (Telefonie) etc. Grund: Firewalls müssen Port 80 freigeben, um Abruf von Webseiten zu ermöglichen Protokoll auf TCP/IP basierend mit 3 wichtigen Eigenschaften: Verbindungslos: nach Anfrage trennt Client die Verbindung u. wartet auf Server-Antwort; Server muss Verbindung wieder aufbauen (http 1.1 ermöglicht „keep alive“ – nur für z.B. Chats sinnvoll) Medienunabhängig: jede Art von Datentypen kann versendet werden, solange Client u. Server damit was anzufangen wissen Zustandslos: Jeder Abruf von Daten erfordert neue Verbindung; Client kann keine Informationen zw. Anfragen/über Webseiten hinweg behalten Bereich MESSAGE HEADER: Für Metainformationen (z.B. Anfragemethode, Statuscodes, Dokumenttyp, Länge des Dokuments), Authentifizierung Bereich MESSAGE BODY: folgt dem HEADER, enthält eigentlichen Inhalt Webtechnologien im Überblick01.04.2016
  • 9. Advanced Software Engineering Sommersemester 2016 9 Adressierung mit http-Protokoll URI: Uniform Ressource Identifier Identifizierung und Adressierung von Ressourcen <Schema>://[<Benutzer>[:<Passwort>]@] <Server>[:<Port>][/<Pfad>][?<Anfrage>][#<Fragment>] Davon abgeleitet: Uniform Ressource Locator (URL) für http z.B. http://www.fzi.de (bedeutet http://www.fzi.de:80/) httpRequest GET: senden von Parametern, z.B. über Adressfeld des Browsers: http://www.fzi.de/search.php?autor=Braun&ordering=newest – Einsatz: für Seiten, die über ein Skript generiert werden und gebookmarkt werden sollen – Daten als Teil der URL bleiben erhalten httpRequest POST: senden von umfangreichen Datenmengen, Authentifizierung aus Formular heraus. Datenübertragung im BODY Bereich von http Keine Speicherung der übertragenen Daten möglich Webtechnologien im Überblick01.04.2016
  • 10. Advanced Software Engineering Sommersemester 2016 10 Beispiel Messages HTTP GET Request: HTTP POST Request: GET /search.php?autor=Braun&ordering=newest HTTP/1.1 Host: www.fzi.de POST /search.php HTTP/1.1 Host: www.fzi.de Content-type: application/x-www-form-urlencoded Content-length: 27 autor=Braun&ordering=newest Zum Anschauen von http-Anfrage/Antworten: http://web-sniffer.net/ HEADER BODY Webtechnologien im Überblick01.04.2016 Anmerkung: https (secured protocoll) – zusätzlich Austausch von SSL Zertifikaten
  • 11. Advanced Software Engineering Sommersemester 2016 11 Beispiel Messages HTTP Response Statuscodes: 5 Klassen 1xx – informatorisch 118 Connection timed out 2xx – erfolgreich 200 OK 3xx – Umleitung 301 Moved Permanently 4xx – Client-Fehler 403 Forbidden 5xx – Server-Fehler 503 Service Unavailable HTTP/1.1 404 Not Found Date: Sun, 23 Oct 2011 10:23:03 GMT Server: Apache/2.2.3 (CentOS) Connection: close Content-Type: text/html; charset=iso-8859-1 HTTP/1.1 200 OK Date: Sun, 23 Oct 2011 10:23:03 GMT Server: Apache/2.2.3 (CentOS) Connection: close Content-Type: text/html; charset=utf-8 <html xml:lang="de" … </html> Webtechnologien im Überblick01.04.2016
  • 12. Advanced Software Engineering Sommersemester 2016 12 HTTP Request GET/POST Web Server Setzt http-Protokoll um, erreichbar über Port (z.B. 80 default) Bearbeitung von Client Anfragen, bearbeitet diese und gibt wenn möglich einen Inhalt zurück, sonst http-Fehlercode Schematischer Aufbau HTTP Response Error oder Content Client Darstellung Web Server Anfrageverarbeitung Statische Ressourcen Gateway Anwendungen Webtechnologien im Überblick01.04.2016
  • 13. Advanced Software Engineering Sommersemester 2016 13 Browser Programm zum Abruf und zur Darstellung von Inhalten aus dem Internet z.B. Abruf von Webseiten über das Protokoll http, zumeist auch andere Protokolle wie z.B. ftp (file transfer) integriert. W3C Konsortium definiert Standards, welche alle Webbrowser können soll(t)en HTML, CSS, JavaScript, XSLT Cache: dient zur Speicherung von häufig verwendeten Inhalten, reduziert Datentransfer mit Server Cookies: Über http können z.B. sessionrelevante Inhalte im Browser abgelegt werden, z.B. sessionID, Username, bevorzugte Sprache Plugins: Browser sind über Plugins erweiterbar, z.B. Flash Webtechnologien im Überblick01.04.2016
  • 14. Advanced Software Engineering Sommersemester 2016 14 Cache & Cookies HTTP Response HTTP/1.1 200 OK Date: Sun, 23 Oct 2011 10:23:03 GMT Server: Apache/2.2.3 (CentOS) Set-Cookie: d7ae737f0e17da5a64121bfb8fbe92c0=j4hcsnpjhg2fbfpucb6242a9t0; path=/ Set-Cookie: lang=deleted; expires=Sat, 23-Oct-2010 10:28:48 GMT; path=/ Expires: Mon, 1 Jan 2001 00:00:00 GMT Last-Modified: Sun, 23 Oct 2011 10:28:50 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Connection: close Content-Type: text/html; charset=utf-8 <html xml:lang="de" … </html> Webtechnologien im Überblick01.04.2016
  • 15. Advanced Software Engineering Sommersemester 2016 15 Formatierungsanweisung: (X)HTML (1) Hyper Text Markup Language Textbasierte Formatierungssprache zur Bestimmung der Darstellung von Inhalten wie Texten, Bildern und Hyperlinks zu anderen Dokumenten in einem Browser <HTML> <HEAD> <TITLE>Forschungszentrum Informatik</TITLE> <HEAD> <BODY> <IMG SRC=„logo.jpg“> … <A HREF=„kontakt.html“>Kontakt</A><BR/> … </BODY> </HTML> Kopf: Metadaten Body: SeiteninhaltBild Link Vgl. XML: XHTML wohlgeformt (HTML nicht) Webtechnologien im Überblick01.04.2016
  • 16. Advanced Software Engineering Sommersemester 2016 16 XHTML(2) Browser parst (X)HTML und zeigt dieses im Browser an Weitere wichtige Elemente: Tabellen, Ebenen, Formulare Webtechnologien im Überblick01.04.2016
  • 17. Advanced Software Engineering Sommersemester 2016 17 Kommunikation zwischen Browser und Webserver Browser Server Anfrage, z.B. www.fzi.de/ Anfrageverarbeitung Laden von index.html Parsen von index.html Darstellung Anfrage logo.jpg Anfrageverarbeitung Laden von logo.jpg … User klickt auf Link, z.B.Kontakt Anfrage, z.B. www.fzi.de/ kontakt.html Webtechnologien im Überblick01.04.2016
  • 18. Advanced Software Engineering Sommersemester 2016 18 Cascading Style Sheets Legt fest, wie ein besonders ausgezeichneter Inhalt oder Bereich einer Webseite dargestellt werden soll. Trennung von Inhalt (HTML, XML) und Darstellung CSS als eigene Ressource ladbar (z.B. stylesmobile.css) Ermöglicht unterschiedliche Ausgabe der gleichen Seite für verschiedene Medien (Browser, Tablet, Mobiltelefon, …) Beispiel: HTML: <span class=„demostyle“>text mit css</span> CSS: .demostyle {color:black;background:red;font-weight: bold;} Ausgabe: text mit css Widerverwendung von Darstellung: CSS Webtechnologien im Überblick01.04.2016
  • 19. Advanced Software Engineering Sommersemester 2016 19 Skripte in einer Webseite: Java Script JavaScript (!= JAVA!!!) ist objektbasierte Skriptsprache, direkt in HTML integrierbar oder als Ressource integrierbar Ermöglicht die Client-seitige Ausführung von Skripten, durch Browser interpretiert und umgesetzt, z.B. Eventhandling, z.B. Validierung von Formulareingaben Interaktive Menüs, Drag & Drop Funktionen Aktualisierung von Seitenteilen In Verbindung mit XML und httpRequest  AJAX (später) Problem: JavaScript ist schwer wartbar Ist objektbasiert, aber nicht typisiert oder wirklich objektorientiert Schwer zu organisieren, debuggen und testen Verhalten von JavaScript in Browsern nicht immer einheitlich Wiederverwendung von Bibliotheken statt Selbsterstellung von Scripten wann immer möglich! Webtechnologien im Überblick01.04.2016
  • 20. Advanced Software Engineering Sommersemester 2016 20 Java Script Beispiel Javascript in HTML Text eingebettet <script type="text/javascript"> function checkFormValues() { if (pw1 != pw2) { alert(„reenter password and pw are not equal“)> return false; } } <form name=„loginForm“ onSubmit=„checkFormValues()“> PW: <Input type=„password“ name=„pw1“/> Reenter: <input type=„password“ name=„pw2“/> <input type=„submit“ value=„login“/> </form> Skript bewirkt: Überprüfung von eingegebenen Passwörtern Webtechnologien im Überblick01.04.2016
  • 21. Advanced Software Engineering Sommersemester 2016 21 Zusammenfassung Grundlagen http: Protokoll im Internet, Adressierung mit URLs WebServer: Serverseite, erweiterbar (z.B. Gateways) Browser: Clientseite, dient zur Darstellung von Inhalten (X)HTML: dient zur Formatierung von Webseiten Kommunikation: zustandslos, Request – Response Prinzip CSS: dient zur Trennung von Inhalt und Formatierung JavaScript: ermöglicht Ausführung von Skripten im Browser Webtechnologien im Überblick01.04.2016
  • 22. Advanced Software Engineering Sommersemester 2016 22 DESKTOP VS. WEBANWENDUNGEN ... Die Unterschiede verschwinden Webtechnologien im Überblick01.04.2016
  • 23. Advanced Software Engineering Sommersemester 2016 23 Desktop vs. Webanwendungen (I) Desktop-Anwendungen (ohne Netzwerkkommunikation) „Fat-Client / Rich-Client“: Anwendungslogik, Darstellung (und ggf. Datenhaltung) in einer Software + Zustandshaltung, z.B. geöffnetes Worddokument + Umfangreiche Menüfunktionen + Schnelle Reaktion auf Eingaben durch Aktualisierung von einzelnen Teilen einer Seite. + Darstellung: Programmierer können Standardbibliotheken verwenden (Swing (JAVA) /… ) - Meist sehr umfangreiche Installation erforderlich (in Firmen hierfür Kontakt mit SysAdmin nötig) - Updates nur manuell Webtechnologien im Überblick01.04.2016
  • 24. Advanced Software Engineering Sommersemester 2016 24 Desktop vs. Webanwendungen (II) Desktop-Anwendungen (mit Netzwerkkommunikation) Datenhaltung und (Teile der) Anwendungslogik ausgelagert, Software auf Client dient zur Darstellung + Weiterhin clientseitige Zustandshaltung (z.B. einmaliges Laden von Terminen  Darstellung als Kalender) Kommunikation mit Server nur zur Synchronisation + Client weniger umfangreich, Aktualisierung der Software bei jedem Start möglich (z.B. JAVA Web Start) - Weiterhin lokale Installationen notwendig - Entweder Interpreter (z.B. kompatible JAVA-Version) - oder Plugins (z.B. Flash Player) Webtechnologien im Überblick01.04.2016
  • 25. Advanced Software Engineering Sommersemester 2016 25 Desktop vs. Webanwendungen (III) Browserbasierte Webanwendungen: Webbrowser auf Clientseite wird zur Darstellung der Anwendung verwendet, Server für die Datenhaltung und Anwendungslogik + Keine Installation von Software auf Clientseite nötig (Sämtliche Betriebssysteme für PCs beinhalten Browser) „Web 1.0“ Stil: Eine Webseite wird komplett aktualisiert für jede Anfrage (statisch) - Ermöglicht keine Anwendungen mit „Desktop-feeling“ „Web 2.0“ Stil Aktualisierung von Seitenteilen möglich („Desktop-feeling“) + Ermöglicht die Erstellung von umfangreichen Webanwendungen im Stile einer Desktopanwendung Webtechnologien im Überblick01.04.2016
  • 26. Advanced Software Engineering Sommersemester 2016 26 Entwicklung: Desktopanwendungen im Web Webanwendungen werden Desktopanwendungen immer ähnlicher, profitieren aber von den Vorteilen schlanker Clients Verwendung des Browsers zur Darstellung, keine Installation von Plugins oder eigenständiger Software Client immer auf neuestem Stand Hauptgründe und Techniken hierfür: JavaScript und CSS AJAX (Details später) Breitbandzugänge (schnelles Laden von Seitenteilen möglich) Webtechnologien im Überblick01.04.2016
  • 27. Advanced Software Engineering Sommersemester 2016 27 WEB-TECHNOLOGIEN FÜR KLEINERE WEBSEITENPROJEKTE … hier ist „skripten“ noch sinnvoll Webtechnologien im Überblick01.04.2016
  • 28. Advanced Software Engineering Sommersemester 2016 28 Merkmale kleiner Webseitenprojekte Hoher Anteil an statischen (gleich bleibenden) Webseiten Merkmale der dynamischen Webseiten Anwendungslogik ändert sich kaum bis selten, Wartbarkeit ist somit keine Anforderung Gleichzeitige Teilnehmerzahl für Nutzung von dynamischen Seiten gering – Skalierbarkeit also keine Anforderung Vorgehen generell Design der Webseite und statische Seiten erstellen (Grafiker) Programmierer wählt eine geeignete Skriptsprache aus und erstellt Anwendung Webspace bei Internetprovider anmelden, das Sprache unterstützt Aufladen der Dateien (Daten) und Skripte: Fertig! Webtechnologien im Überblick01.04.2016
  • 29. Advanced Software Engineering Sommersemester 2016 29 Vorgehen zur Erstellung dynamischer Seiten Anwendung: Für eine geplante Feier sollen sich Freunde und Verwandte online anmelden, um Catering planen zu können 1. HTML Formular erstellen, das Datenfelder beinhaltet z.B. Name, Kontakt, Anzahl Personen, Auswahl Menüs, Vegetarisches Essen gewünscht, … 2. Skript erstellen, das diese Werte einliest 3. Anwendungslogik: überprüfe, ob Teilnehmer bereits registriert ist wenn nein, speichere Daten ab 4. Dynamisches Generieren einer Antwortseite z.B. „Danke für Deine Registrierung“ oder „Du bist bereits registriert, möchtest du Deine Daten ändern?“ Webtechnologien im Überblick01.04.2016
  • 30. Advanced Software Engineering Sommersemester 2016 30 Serverseitige Anwendungslogik und Datenhaltung Serverseitige HTML-Generierung Aufruf von HTML- generierender Anwendung Einbettung HTML- generierender Skriptteile CGI API-basiert interpretiert kompiliert SSI ASP PHP JSP Webtechnologien im Überblick01.04.2016
  • 31. Advanced Software Engineering Sommersemester 2016 31 3) Aufbau der DB- Verbindung bei jedem Aufruf Verbindungsaufbau CGI Common Gateway Interface client HTTP- Server Datenbank CGI Skript / Programm 2) Aufruf des Skriptes mit Parametern Initialisierung bei jedem Aufruf 6) Skript übermittelt HTML und beendet sich Anfrage 1) Betätigung Submit-Button <FORM METHOD="POST" ACTION="http://www.fzi.de/ cgi-bin/my-form"> 5) Skript generiert HTML Antwort 7) HTTP Server Antwortet SQL Anfrage 4) Skript stellt Anfrage an DB Ergebnis CGI Webtechnologien im Überblick01.04.2016
  • 32. Advanced Software Engineering Sommersemester 2016 32 Die Old-School Variante: CGI Gateway an Web-Server als Erweiterung zur Integration von Skriptsprachen oder Programmen, z.B. Python, Perl + Einzelne Aufrufe konkurrieren sich nicht, da jeder Aufruf in eigenem Prozess - Ein Prozess pro Anfrage (Ressourcenintensiv) - Keine Speicherung des Zustands (CPU intensiv) - Für jede DB-Anfrage Verbindung aufbauen und trennen (zeitintensiv) - Keine Trennung von Präsentation und Anwendungslogik (Wartbarkeit für größere Projekte kaum möglich) Webtechnologien im Überblick01.04.2016
  • 33. Advanced Software Engineering Sommersemester 2016 33 Optimierung durch API-basierte Ansätze client HTTP- Server Datenbank HTML-Generierung Programm Aufruf des Programms, Parameterübergabe Initialisierung bei ersten Aufruf (einmalig) Verbindungsaufbau Verbindungsaufbau zur DB beim ersten Aufruf (einmalig) Beliebig viele SQL Anfragen SQL Anfragen Ergebnisse Zustand Anfrage Betätigung Submit-Button <FORM METHOD="POST" ACTION="http://www.fzi.de/ cgi-bin/my-form"> Antwort HTML-Rückgabe Webtechnologien im Überblick01.04.2016
  • 34. Advanced Software Engineering Sommersemester 2016 34 Beispiel: Java Servlet Programm wird in den Adressraum des Servers geladen + Programm startet einmalig, nur eine Datenbankverbindungen erforderlich + Zustandshaltung möglich, z.B. durch Session-IDs + Anfragen werden in Threads statt Prozessen ausgeführt (deutlich Ressourcenschonender) - Installation von speziellem Web-Server zur Ausführung von Java- Servlets nötig, z.B. Apache Tomcat (für kleine Projekte ungeeignet) - Keine Trennung von Präsentation und Anwendungslogik  Für kleine Anwendungen zu aufwendig, für große ungeeignet Webtechnologien im Überblick01.04.2016
  • 35. Advanced Software Engineering Sommersemester 2016 35 Server-Side Scripting In HTML-Seiten werden zusätzliche HTML-generierende Quellen integriert Datenbank Scripting HTML Scripting HTML Anwendungs- Logik Webtechnologien im Überblick01.04.2016
  • 36. Advanced Software Engineering Sommersemester 2016 36 Interpretation zur Laufzeit Interpretierte Skriptsprachen: z.B. PHP • Skript wird direkt in eine HTML-Seite geschrieben • Bei Anfrage einer Seite wird Skript durch Interpreter interpretiert und HTML-Text geschrieben • Generiertes Dokument wird an Server zurückgegeben + einfache Art, Skripte einzubinden + Interpreter ist nur ein einzelner Prozess - CPU-Last bei jedem Seitenabruf durch Neuinterpretation - Keine Trennung von Präsentation und Logik  Für kleinere Webanwendungen sehr gut geeignet <html> <?php ...> </html> Anwendung erstellen Interpreter HTML- Dokument Laufzeit Webtechnologien im Überblick01.04.2016
  • 37. Advanced Software Engineering Sommersemester 2016 37 PHP-Beispiel <html> <head><title>Login</title></head> <body> <h3>Your login data </h3> <br/> <table> <tr><td>Name:</td><td><?=$_GET[„username“]?></td></tr> <tr><td>Password:</td><td><?=$_GET[„pwd“]?></td></tr> </table> </body> </html> Client HTTP- Server Datenbank PHP-Modul SQL Anfragen Ergebnisse PHP-SkriptAntwort Anfrage Webtechnologien im Überblick01.04.2016
  • 38. Advanced Software Engineering Sommersemester 2016 38 PHP für große Projekte: Wikipedia Praxisbeispiel Wikipedia.org verwendet PHP für ein sehr umfangreiches Projekt. Prinzip: Statisches Schreiben von Webseiten Verhältnis von Seitenabruf zu Seitenänderung sehr gering Anwendungslogik vergleichsweise gering: Seitenänderungen annehmen und protokollieren  Statisches Schreiben von Webseiten reduziert CPU-/ Ressourcenlast: HTML-Seite muss nur geladen werden ! Wenn möglich, sollten aus dynamischen Seiten statische Seiten generiert werden, um die Skalierbarkeit zu erhöhen Webtechnologien im Überblick01.04.2016
  • 39. Advanced Software Engineering Sommersemester 2016 39 Kompilierte Skriptsprachen Kompilierte Skriptsprachen z.B. JSP Erfordert Installation von JAVA-fähigem Web-Server Kompilierung erzeugt Servlets zur Ausführung der JSP-Seiten + JSP 1.1 ermöglicht durch „Tags“ klarere Trennung von Darstellung und Anwendung; noch besser mit Expression Language ab JSP 2.0 - JSP-Programmierung entspricht nicht den meisten Programmierern bekannte GUI-Programmierung (z.B. event- Verarbeitung Tutorial: http://www.jsptutorial.org/ <html> <jsp:...> </html> Anwendung erstellen Compiler Übersetzungs- zeit (einmalig) Servletgenerierung HTML- Dokument Laufzeit Webtechnologien im Überblick01.04.2016
  • 40. Advanced Software Engineering Sommersemester 2016 40 Clientseitige Anwendungslogik Motivation Die Funktionen im Browser reichen für geplante Anwendung nicht aus, z.B. gleichzeitiges Aufladen von Bildern aus einem lokalen Ordner für ein Fotoalbum (Sicherheitsbeschränkungen von http erlauben immer nur eine Datei auszuwählen  Umständlich für Benutzer) Abspielen von Multimedia (z.B. Videos) Die Anwendung soll sehr dynamisch sein, z.B. Produktwerbung (viele bewegte Bildsequenzen) Die Anwendung soll wie eine Desktop-Anwendungen wirken Vor ein paar Jahren gab es noch kein AJAX ;-) Webtechnologien im Überblick01.04.2016
  • 41. Advanced Software Engineering Sommersemester 2016 41 Browser Plugins Erweiterung des Browsers um neue Softwarekomponente am Beispiel von Adobe Flash Einsatz: sehr dynamische Anwendungen, Multimedia, Desktop Integrierte Skriptsprache: Action Script Teile oder komplette Anwendungslogik wird integriert Kommunikation mit Server über http oder soap Starten einer Plugin-Anwendung 1. Benutzer muss jeweils kompatible Version des Plugins haben 2. Eigener HTML-Tag (<object><embed>) zum Starten des Plugins in einer Webseite 3. Komplettes Programm wird zum Client übertragen 4. Plugin lädt Programm und stellt es dar + Verhalten der Software exakt vorhersagbar (mit HTML problematisch) - Plugin, speziell aktuellste Version nicht auf allen Client PCs (z.B. beschränkte Installationsrechte auf Firmen-PSs) - Erfordert Spezialisten im Umgang mit der jeweiligen Programmiersprache - Meist Wartung schwierig Webtechnologien im Überblick01.04.2016
  • 42. Advanced Software Engineering Sommersemester 2016 42 JAVA Applets Motivation Über ein Browser soll eine Desktopanwendung geladen werden Anwendungslogik komplett integrierbar Theoretisch auch Datenhaltung direkt ansprechbar (praktisch nicht: aus Sicherheitsgründen – erfordert dies Öffnung eines Ports direkt zur Datenbank !) + Entwicklung der Anwendung komplett in JAVA möglich + Saubere Trennung von Darstellung und Anwendungslogik möglich + Wiederverwendbarkeit von Komponenten - vgl. Plugins: Installationen notwendig <object classid="java:example.class" codetype="application/java-vm" width=„400" height="400"></object> Webtechnologien im Überblick01.04.2016
  • 43. Advanced Software Engineering Sommersemester 2016 43 Schichtenarchitektur mit Skripten und Plugins Daten Anwendung Präsentation Direkte Kommunikation mit Datenbank (SQL über DB-spezifisches Protokoll) Kommunikation über Middleware-Protokoll (RMI, IIOP, SOAP) 1. Plug-in- Anwendung mit direkter Datenbank- kommuni- kation 2. Plugin- Anwendung mit Zugriff über Middleware HTTP-basiertes Protokoll 3. HTML- Client Webtechnologien im Überblick01.04.2016
  • 44. Advanced Software Engineering Sommersemester 2016 44 Zusammenfassung: kleine Webanwendungen Für kleine Anwendungen Skalierbarkeit, Wartbarkeit und Wiederverwendbarkeit stellen keine Anforderung dar Plugins ermöglichen Spezialanwendungen Alle gezeigten Skriptansätze ermöglichen die Generierung von dynamischen HTML-Seiten. Erstellung von Anwendungen mit Desktop-Charakter hier nicht nötig Generierung von statischen Seiten ermöglicht auch umfangreiche Anwendungen bei geringen Ressourcen Umsetzung der Anwendung also entscheidend von Vorkenntnissen der Programmierer und den installierten Interpretern / Gateways auf einem Web-Space Webtechnologien im Überblick01.04.2016
  • 45. Advanced Software Engineering Sommersemester 2016 45 WEB-RAHMENWERKE FÜR UMFANGREICHE WEBSEITENPROJEKTE .. „Mal schnell ein Skript schreiben“ reicht da nicht mehr! Webtechnologien im Überblick01.04.2016
  • 46. Advanced Software Engineering Sommersemester 2016 46 Umfangreiche Webanwendungen Eigenschaften Hoher Anteil an dynamischen Seiten Komplexer Seitenaufbau Umfangreiche Anwendungslogik, häufige Änderungen und Erweiterungen Verschiedene Ausgabesprachen, Ausgabemedien Zuverlässiger Betrieb auf unterschiedlichsten Browsern Erstellung mit Web-Rahmenwerk Rahmenwerk, das Erstellung einer umfangreichen Anwendung ermöglicht Webtechnologien im Überblick01.04.2016
  • 47. Advanced Software Engineering Sommersemester 2016 47 Rahmenwerke über Tapestry Echo JSF Cocoon Millstone Click OXF Struts Cassandra WebWork SOFIA AppFuse WebOnSwing Xoplon Groovy Flex Genie Wicket Chiba Jaffa JBanana GWT Smile MyFaces JWarp Facelets Melati Eclipse RAP Japple Helma Dinamica ZK Liste unvollständig. Webtechnologien im Überblick01.04.2016
  • 48. Advanced Software Engineering Sommersemester 2016 48 Welches Rahmenwerk verwenden? Hauptfrage bei einem neuen Projekt Welches Framework verwendet man? Generelle Faktoren Programmiersprache: abhängig vom Team Lizenz: abhängig von Budget, Infrastruktur (z.B. Alles in Microsoft .NET -> Lizenzen für Server, Software etc nötig) Webtechnologien im Überblick01.04.2016
  • 49. Advanced Software Engineering Sommersemester 2016 49 Hauptparameter bei umfangreichen Projekten Trennung von Anwendungslogik und Darstellung Gründe Code gemischt mit HTML schwer lesbar und wartbar (in Skriptsprachen und JSP der Fall) Änderung der Darstellung können unabhängig von der Anwendungslogik gemacht werden. Gängige Umsetzungen Id-Marken in HTML-Text, die später durch HTML-Text ersetzt werden – z.B. <span app:id=„codehere“/> Web-Rahmenwerk bietet Standardkomponenten an, die verwendet werden können (Tables, Pulldowns, etc.) Formatierung durch CSS Wünschenswert: eigene Komponenten erstellbar Webtechnologien im Überblick01.04.2016
  • 50. Advanced Software Engineering Sommersemester 2016 50 Model View Controller Dreischichtenarchitektur trennt Präsentation Anwendung Datenhaltung Model View Controller trennt ähnlich View: Darstellung Controller: Request / Response Verwaltung Model: Daten  Saubere Trennung von Darstellung und Anwendung  Wiederverwendbarkeit der Anwendungslogik  Im Einsatz bei SWING und den meisten Web-Frameworks Webtechnologien im Überblick01.04.2016
  • 51. Advanced Software Engineering Sommersemester 2016 51 Web-Rahmenwerke Prinzip meist: Model - View - Controller Es gibt Fülle von Rahmenwerken … Welches nimmt man? Ziele Zusammenstellung von Anforderungen an ein Rahmenwerk Zusätzliche Anforderungen durch „AJAX-Trend“ GWT also Rahmenwerk für umfangreiche Anwendungen Webtechnologien im Überblick01.04.2016
  • 52. Advanced Software Engineering Sommersemester 2016 52 Anforderungen an umfangreiche Webanwendungen und Web-Rahmenwerke (1) Regelmäßige Umstrukturierung, z.B. Umbau / Erweiterung der Seite: Erfordert strikte Trennung von Anwendungslogik und Darstellung Unterstützung von einheitlichem Look & Feel Templates, auch für verschiedene Ausgabearten (PC, Tablet, Mobile, …) Betrieb der Webseite in mehreren Sprachen Automatisches Füllen von Textstellen in Webseiten mit Ländersprache Webtechnologien im Überblick01.04.2016
  • 53. Advanced Software Engineering Sommersemester 2016 53 Mehrsprachigkeit Webseiten umfangreicher Projekte müssen meist in mehreren Sprachen erstellt werden Manuelle Erstellung von sprachspezifischen Seitenteilen ist zeit- und pflegeaufwendig, macht schwer wartbare Quelltexte Anforderung Framework sollte sprachspezifische Textbausteine automatisch in Webseiten einfügen können Gängige Umsetzung: i18n Standard Verwendung von Properties-Dateien für länderspezifische Sprachbausteine, z.B. (response_en.properties) Dynamisches Laden der jeweiligen Properties-Datei durch das Web- Framework für die Spracheinstellungen eines Nutzers Webtechnologien im Überblick01.04.2016
  • 54. Advanced Software Engineering Sommersemester 2016 54 Anforderungen an umfangreiche Webanwendungen und Web-Rahmenwerke (2) Hoher Anteil an dynamischen Seiten, z.B. für Suchergebnisse, Shop-Systeme, Warenkörbe, … Erstellung von umfangreicher Anwendungslogik Umfangreiche Datenintegration / umfangreiche Dateneingaben Erfordert Einbindung von Frameworks zur Datenintegration Integrierte Prüfung der Konsistenz von Benutzereingaben mit Datenmodell und Anwendungslogik Webtechnologien im Überblick01.04.2016
  • 55. Advanced Software Engineering Sommersemester 2016 55 Datenintegration und Eingaben Umfangreiche Datenintegration Erweiterung mit speziellen Frameworks mit Objektmapping Hybernate, Spring Umfangreiche Dateneingaben wenn nötig Transaktionen, Speicherung, … Durch Web-Rahmenwerk selbst oder in Verbindung mit Erweiterungen: Prüfung der Konsistenz von Benutzereingaben, z.B. PLZ hat fünf Ziffern Emailadresse muss „@“ beinhalten Webtechnologien im Überblick01.04.2016
  • 56. Advanced Software Engineering Sommersemester 2016 56 Anforderungen an umfangreiche Webanwendungen und Web-Rahmenwerke (3) Zugangsbeschränkungen für geschützte Bereiche User-Sessions und Weiterleitung auf Login-Seite Schnelle Reaktionszeiten auf Benutzeranfragen Zustandshaltung von aktuell benötigten Daten / Kontext eines Nutzers Anwendungen mit Desktopstil Einfache Intergrierbarkeit von AJAX-Techniken Webtechnologien im Überblick01.04.2016
  • 57. Advanced Software Engineering Sommersemester 2016 57 Zugangsbeschränkungen für geschützte Bereiche Gängige Verfahren (da http zustandslos) Rahmenwerk generiert nach einem erfolgreichen Login ein „Session-ID String“. z.B. jsessionid=0EEC1A1BE9980145F81DF6B99418B027 Rahmenwerk hält ein Session-Objekt pro Benutzer zur Bindung von Objekten eines Benutzers Nutzeridentifikation: Session-id als cookie (falls von Browser akzeptiert), sonst als GET Parameter in allen URLs der Webseite Bei jedem Seitenaufruf: Rahmenwerk sucht nach vorhandenem Session-Objekt Falls nicht vorhanden: Weiterleitung auf Login-Seite (falls die aufgerufene Seite eine geschützte Seite ist) Webtechnologien im Überblick01.04.2016
  • 58. Advanced Software Engineering Sommersemester 2016 58 Anwendungen mit Desktopstil – AJAX AJAX (asynchronous JavaScript and XML) Ermöglicht die Aktualisierung von Seitenteilen Somit muss nicht immer die ganze Seite neu geladen werden und die Anwendung bekommt desktop-feeling Bestandteile: Über JavaScript wird ein „XMLHttpRequest“ an Server geschickt Server verarbeitet Request und gibt XML oder HTML zurück JavaScript nimmt Request entgegen und verarbeitet diesen, meist durch Aktualisierung eines Seitenbereichs (z.B. Layers)  Keine wirklich neue Technologie, sondern eine Kombination von bestehenden Techniken Webtechnologien im Überblick01.04.2016
  • 59. Advanced Software Engineering Sommersemester 2016 59 AJAX in der Praxis Beispiele Auto-Complete für Suchanfragen Pop-Up Fenster (in Seite integriert) Drag & Drop Direkte Fehlermeldungen auf Falscheingaben in Formularen Best Practices AJAX-Funktionen manuell zu erstellen ist zeitaufwendig und fehleranfällig (Nur für JavaScript Experten)  Verwendung eines geeigneten Rahmenwerks Bei Aktualisierung von Seitenteilen: Aktion dem Benutzer anzeigen (z.B. durch Ladebalken) AJAX nicht wahllos einsetzen! Webtechnologien im Überblick01.04.2016
  • 60. Advanced Software Engineering Sommersemester 2016 60 AJAX integriert in Web-Frameworks AJAX stellt umfangreiche Anforderungen an ein Web-Framework Ohne AJAX: es wird eine ganze Seite generiert und Komponenten, Zustände der Seite komplett geändert Mit AJAX: Webtechnologie sollte möglichst schnell und unkompliziert die Aktualisierung von Seitenteilen unterstützen Komplexität der JavaScript Aufrufe verbergen Methoden für AJAX-Calls anbieten Aktualisierung von Seitenteilen / Komponenten ermöglichen AJAX Unterstützung möglichst direkt in einem Framework (und nicht über viel „Hackerei“ eingebunden)  Für zeitgemäße Webanwendungen: AJAX Support in Framework zwingend erforderlich Webtechnologien im Überblick01.04.2016
  • 61. Advanced Software Engineering Sommersemester 2016 61 Anforderungen an umfangreiche Webanwendungen und Web-Rahmenwerke (4) Weitere Anforderungen • Objektorientierte Programmierung der Anwendung mit für Entwickler vertrauten Prinzipien (vgl. Swing: Datenbindung, Events, etc) • Schnelle Erlernbarkeit der Webtechnologie, Abstraktion von zugrundeliegenden Techniken (z.B. Details von http) • Durchführung von automatischen Funktionstests (vgl. JUnit Tests) Grund: manuelle Tests zeitaufwendig! Webtechnologien im Überblick01.04.2016
  • 62. Advanced Software Engineering Sommersemester 2016 62 Auswahl des geeigneten Rahmenwerks Zusammenfassung Hauptkriterien Erfüllung der genannten Anforderungen, Fokus auf AJAX-Support Erweiterbarkeit Trennung von Anwendung und Darstellung Lizenzierung: Proprietär vs. open-source Programmiersprache (im Folgenden: Focus auf JAVA) Zeitaufwand zur Erstellung von Web-Anwendungen Support: Qualität der Mailinglisten-Antwortzeit Webtechnologien im Überblick01.04.2016
  • 63. Advanced Software Engineering Sommersemester 2016 63 KONZEPTE VON WEB- RAHMENWERKEN  Beispiel Google Web Toolkit (GWT) Webtechnologien im Überblick01.04.2016
  • 64. Advanced Software Engineering Sommersemester 2016 64 Google Web Toolkit (1) Programmiersprache: JAVA Widget Library: Verhalten von GUI Komponenten wie in Swing programmierbar (Events, Container-Zuordnung, …) Verhalten der Komponenten wie in Applets (mittels AJAX), d.h. möglichst alles im Client Proprietärer Compiler generiert daraus sämtlichen XHTML und JavaScript Code für AJAX, welcher zum Client gesendet wird Saubere Trennung von Darstellung und Anwendungslogik Webtechnologien im Überblick01.04.2016
  • 65. Advanced Software Engineering Sommersemester 2016 65 Google Web Toolkit (2) Entwickler benötigen (fast) keine HTML-Kenntnisse (nur wenige Host-HTML Seiten werden benötigt) Design der Komponenten über CSS anpassbar (Aufruf von CSS über Host-HTML Seite) Spring, Hybernate für Datenhaltung integrierbar Für Anwendungen in der Cloud mit Google App Engine GWT auch nur zur GUI-Erstellung (Webseiten-Frontend) nutzbar Webtechnologien im Überblick01.04.2016
  • 66. Advanced Software Engineering Sommersemester 2016 66 Google Web Toolkit Bewertung + Trennung von Anwendung und Darstellung + Einfach erlernbar und schnell anwendbar + Stetig wachsende Community – guter Support - Getrennte Betrachtung von Client und Serverseite (Bereitstellung von Daten durch SOAP basierte RPC Calls) - Proprietärer Compiler - Generiertes JavaScript ist kryptisch (proprietär), Debugging nur in Java  Tutorial: https://developers.google.com/web-toolkit/gettingstarted Webtechnologien im Überblick01.04.2016
  • 67. Advanced Software Engineering Sommersemester 2016 67 BEISPIEL EINER UMFANGREICHEN WEBANWENDUNG Clinerion Ltd, Basel Dr. Andreas Walter, Head of Development http://www.clinerion.com Clinerion - Patient Recruitment System Webtechnologien im Überblick01.04.2016
  • 68. Advanced Software Engineering Sommersemester 2016 68 Clinerion Patient Recruitment System Domäne Pharma, Medikamentensicherheit • Pharma entwickelt neue Medikamente, erhält Patent Muss dann beweisen, dass Wirkung vorhanden, u.a. keine tödlichen Nebenwirkungenen => klinische Studien, Studienprotokolle • Klinische Studien werden in u.a. Krankenhäusern durchgeführt, erfordert Auswahl geeigneter Patienten, z.b. mit Pneumonie : manueller Prozess Clinerion Patient Recruitment System • Automatisierte Suche geeigneter Patienten (Patent pending) Fokus nun (Ausschnitt): Online Recruitment Webtechnologien im Überblick01.04.2016
  • 69. Advanced Software Engineering Sommersemester 2016 69 Online Recruitment Anwendungen Prozessschritte Online Recruitment 1. PRS Serverinstallation in Krankenhaus (Datenintegration, Big data) 2. PRS Registry: Verwaltung von klinischen Studien / Benutzern, Krankenhäusern 3. PRS Coding: Patientendaten sind kodiert mit Terminologien (Ontologien) => semantische Integration. Coding: Erstellung eines semantischen Studienprotokoll 4. PRS Search: Aktivierung von Studienprotokoll in Registry PRS startet regelmässige Suche von Patienten in Patientendaten (Anmerkung: hier auch sehr viel Datenanonymisieurng integriert!) 5. PRS Validation: Passende Kandidaten werden gesammelt und in PRS Validation GUI angezeigt. Treffer werden validiert, wenn passend, Patienten angefragt, ob sie an Studie teilnehmen wollen Webtechnologien im Überblick01.04.2016
  • 70. Advanced Software Engineering Sommersemester 2016 70 PRS Registry Verwaltung klinischer Studien / Benutzern, Krankenhäusern Webtechnologien im Überblick01.04.2016
  • 71. Advanced Software Engineering Sommersemester 2016 71 PRS Coding (Excel) Technisch: es werden hierarchische Protokolle erstellt, Verknüpfung mit boolschen Operatoren. Umsetzung zur Suche auf Index (erfordert natürlich zuerst Aufbau von Indexen. Verteilt, semantisch, skalierbar, ...) Webtechnologien im Überblick01.04.2016
  • 72. Advanced Software Engineering Sommersemester 2016 72 PRS Validation (1) Passende Kandidaten werden gesammelt und GUI angezeigt Webtechnologien im Überblick01.04.2016
  • 73. Advanced Software Engineering Sommersemester 2016 73 PRS Validation (2) Detailansicht Patientenakte Webtechnologien im Überblick01.04.2016
  • 74. Advanced Software Engineering Sommersemester 2016 74 Blick auf PRS Webanwendung Verschiedene Web-Frontends nötig, einheitlicher Login (Single Sign On), einheitliche Darstellung der Seiten (Look And Feel) Mehrsprachigkeit: aktuell u.a. Installationen in Türkei, Schweiz, Deutschland – Erweiterung in andere Sprachen Permanente Notwendigkeit neuer Funktionen Waterfal Model hier unmöglich. In Praxis: Scrum, Sprint basiert auf Featuer Driven Development Umfangreiche Erstellung von Tests nötig – Quality Management Nicht alles muss ein Web-GUI sein Fachpersonal zur Erstellung von Protokollen ist Excel gewohnt => Excel als Frontend, Transformatoren zur Erstellung von Suchanfragen Verwendetes Webrahmenwerk: Google Web Toolkit Gründe u.a. : schnelle GUIs, einfache Erlernbarkeit für Entwickler Webtechnologien im Überblick01.04.2016
  • 75. Advanced Software Engineering Sommersemester 2016 75 Zusammenfassung Umfangreiche Webanwendungen erfordern Web-Rahmenwerke Ermöglichen langfristige Wartung einer Anwendung Trennung von Darstellung und Anwendung wichtig Verdecken Komplexität der zugrunde liegenden Webtechnologien Umfangreiche Anforderungen an ein Web-Rahmenwerk Integration von AJAX in ein Rahmenwerk ermöglicht die Erstellung von Anwendungen mit Desktop-Charakter Auswahl des „richtigen“ Rahmenwerks Bei neuen Projekten: Prüfen, ob aktuelle Rahmenwerke die Anforderungen besser/direkter/schneller erfüllen können Webtechnologien im Überblick01.04.2016
  • 76. Advanced Software Engineering Sommersemester 2016 76 Literatur (eine Auswahl hier, Vielzahl an Tutorien im Web verfügbar) Buch: Web-Technologien von Heiko Wöhr von Dpunkt Verlag (Taschenbuch - Mai 2004) Buch: Web-Technologien: Grundlagen, Web-Programmierung, Suchmaschinen, Semantic Web Christoph Meinel, Harald Sack von x.media.press (2013) JSP http://www.jsptutorial.org/ AJAX http://www.w3schools.com/ajax/default.asp Google Web Toolkit http://code.google.com/webtoolkit/ Eclipse RAP http://www.eclipse.org/rap/ Webtechnologien im Überblick01.04.2016

Hinweis der Redaktion

  1. 5
  2. 7
  3. 1989 entwickelt von Roy Fielding, Tim Berners-Lee u.a. am CERN W3C ist Gremium zur Standardisierung von WWW Technologien Working Drafts, Candidate Recommendations, Recommendations „keep alive“ spezifische Pakete, die regelmäßig geschickt werden; wenn keine Antwort innerhalb bestimmter Zeit, wird von Unterbrechung ausgegangen
  4. -URL: Identifizierung über Zugriffsmechanismus  geben den Ort an - URN: Identifizierung über Namen, z.B. ISBN-Nummer
  5. XHTML = Extensible Hypertext Markup Language Neuformulierung von HTML 4.01 in XML: Element-/Attributnamen immer klein Entweder leeres Element-Tag oder mit End-Tag Wenn Start-Tag, dann auch End-Tag Attibutname als Attributwert angeben
  6. 17
  7. - Andere: VBScript für Internet Explorer,
  8. 22
  9. 27
  10. 31
  11. 33
  12. 35
  13. 43
  14. 45
  15. -XMLHttpRequest ist API für Script-Clients für den Transfer beliebiger Daten über HTTP zw. Client und Server -
  16. 63
  17. 67
  18. 76