Web Application Engineering & Content Management 184.209 VU 2.0 Vortragsunterlagen zur Vorlesung an der Technischen Universität Wien Wintersemester 2013/2014 Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Service Architect pressetext.austria, culturall
VU-Übersicht Web Application Engineering Kategorisierung, Spezifika, Vorgehensmodelle, XP Web Application Management Technologien, WAS Modelle des Web Application Engineerings Architektur und Performance Web Content Management CMS Theorie, Einsatzbereich, Nutzen, Spezifika Web Commerce Sicherheitserweiterungen, moderne Technologien Web 2.0/AJAX 2
Agenda Web Application Engineering Realisierung von Web Applikationen Problematiken des Web Application Engineerings Dynamische Contents und adequate Technologien Modelle der Web-Umsetzung Framework-Lösungen, Web Application Server Praktisches Laborbeispiel, Mason Architekturen und Vorgehensmodelle Web Architekturen, Service Architekturen Spezielle Anwendungen, Content Management 3
Reminder: Motivation Def.: Eine Web-Anwendung ist ein Softwaresystem, das auf Spezifikationen des World Wide Web Consortium (W3C) beruht und Web-spezifische Ressourcen wie Inhalte und Dienste bereitstellt, die über eine Benutzerschnittstelle, den Web-Browser, verwendet werden. Software-Aspektd.h. statische Seiten alleine stellen keine Web-Anwendung dar Benutzerschnittstellen-Aspekt d.h. Web Services alleine stellen keine Web-Anwendung dar 4
Web Application Engineering & Content Management 184.209 VU 2.0 Rückblick Web Application Engineering Theorie & Web-Applikationsspezifika in der Umsetzung Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Service Architect pressetext.austria, culturall
Web Application Engineering Theorie Kategorisierung von Web Applikationen Gliederung nach Historie und Komplexität Basiskonzepte und -technologien Internet, WWW Protokollspezifika Authentication, Moderne Ansätze CGI Web Application Server der Realisierung Wasserfallmodell Konzeptideen Konkrete vs. Agile Web-Entwicklung aus XP Herausforderungen bei der Realisierung 6
Umsetzung statischer vs. dynamischer Inhalte Umsetzung von relativ statischer Information am World Wide Web Private Homepages Kleine Informationssites (~5 pages) => Einfach Page Editoren bis simple CMS Umsetzung von dynamischen Informationsangeboten CGI-Programmierung Serverseitige Interpretation => Moderne Web Application Server 7
Integration und Umsetzung dynamischer Inhalte Dynamische Inhalte aus Legacy Applications Eine Applikation, die relevante Informationen liefert, welche als solche in das WWW eingebunden werden soll (Lagerbestandssystem, Katalog, Bibliothekssystem, Telefonbuch, ) Moderne Datenbanken Die Organisation besitzt bereits eine Datenbank und will deren Inhalte über das Web anbinden Managementsysteme Teure Systeme, die die Steuerung eines ganzen Großbetriebes übernehmen sollen direkt über WWW erreichbar sein (SAP) Anbindung über vorhandene oder zu programmierende Schnittstellen 8
Integration und Umsetzung dynamischer Inhalte Lösungen haben eine 3+-tier Architecture Browser Server 9 Legacy Application
Web Application Engineering Modelle der Web Service Umsetzung Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Service Architect pressetext.austria, culturall
Realisierung Gibt es Werkzeuge, die sowohl die Umsetzung von Design, statischen Informationsseiten und die Einbindung dynamischer Inhalte unterstützen? Wie können Designvorgaben, technische Background-Anbindungen und moderne softwaretechnische Konzepte (OO) unter einen Hut gebracht werden? Konzept Jessica 11
JESSICA Fallbeispiel: Forschungsprojekt JESSICA Design, Implementierung und Wartung von komplexen Web Applikationen Management von Layout und Inhalten Corporate Identities Integration von statischer und dynamischer Information Integration of external data sources, DBs Isolation und Reuse der Daten Verfügbarkeit der Daten auf unterschiedlichen Medien 12
Objecte in JESSICA JESSICA beschreibt Information als abstrakte und konkrete Objekte Documente werden durch die beschriebene Kombination der Objekte erzeugt Templating Schema wird eingesetzt 14
Document Composition Templates werden als Vorlagen für Dokumente verwendet: 15
A simple code example <J:PACKAGE NAME= events > <J:OBJECT NAME= event-layout > <HTML> <HEAD><TITLE>Vienna Festival - <J:VAR NAME= eventtitle /></TITLE></HEAD> <BODY><IMG SRC= headerimage.gif > <J:VAR NAME= description > <J:OBJECT NAME= eventpage-trailer SRC= this.page-trailer /> </BODY> </HTML> </J:OBJECT> <J:OBJECT NAME= beuys SRC= this.event-layout > <J:PACKAGE> <J:OBJECT DST= this.beuys.title >Beuys</J:OBJECT> <J:OBJECT DST= this.beuys.description > </J:OBJECT> </J:PACKAGE> </J:OBJECT> </J:PACKAGE> 16
Der Jessica Compiler JAVA-basierter Prozessor Auflösung der Jessica Objecte Abarbeitung Iterativer Prozess Abschluss des geparsten Objektbaumes auf Basis einer Fixpunkt-Strategie Methoden des Übersetzerbaus JLex (scanner) und JavaCup (parser) im Einsatz 17
Processor Architecture Jessica Documents Pragma1 Jessica Processor 18 Pragma2 Hypermedia Service or XML Documents or...
Visualizing the object approach UML-basierter -Editor Templates sind Muster für viele Objekte (Generalisierung) Objekte enthalten andere (Aggregation) Dokument-Objecte stehen über Hyperlinks in Beziehung (Association) Objekte können mit Kommentaren versehen sein (Annotation) 19
Beuys in Jazz 20
Web Application Engineering Umsetzung komplexer Web Applikationen - WAS Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Service Architect pressetext.austria, culturall
Web Application Engineering Umsetzung komplexer Web-Applikationen Inhaltliches und technisches Management von Web-Applikationen Funktionale Anforderungen ähnlich der allgemeinen Softwareentwicklung Charakteristika aus Web-Charakteristiken und Web-Architekturen bekannt Programmentwicklung wie SW-Projekt Konzentration of Web-Applikations-Management Einsatz moderner Konzepte und Methoden (Agile Methoden, XP, Scrum) 22
Web Applikationsmanagement Web Service Management Web Application Services Inhaltliche Wartung Performance und Zuverlässigkeit sind kritisch Web Content Management Redaktionssysteme, Content Content Management Systeme Syndication Applications 23
Web Applikationsmanagement Web Application Server Application Server [Forrester Research:] An application server is a software server product that supports thin clients with an integrated suite of distributed computing capabilities. Application servers manage client sessions, host business logic, and connect to back-end computing resources, including data, transaction, and content Web Application Server: Wenn die Server-Komponente (ausschließlich) per Web-Server aufgerufen wird. Java Application Servers, z.b.: Servlet Engines Perl Application Servers, z.b.: Mason 24
Web Applikationsmanagement Mason: ein PERL-basierter Web Application Server Mason Web Application Server moderne Konzepte zum technischen Web Service Management Lösungen für typische Site Development und Management Probleme Wartbarkeit, Performance, Zuverlässigkeit caching, debugging, templating, staging,... über CGI, stand-alone, aber am besten mit Apache::mod_perl 25
Web Applikationsmanagement Mason: ein PERL-basierter Web Application Server Basic Features Simple embedded perl syntax modulare Seiten mit Komponenten Parameter handling über normale Variable Templates (autohandler hierarchy) Objekt-orientierte Techniken eigene Methoden und Attribute per Komponente, verfügbar in den Templates und anderen Komponenten Persistente Verbindungen (DB, Cache) 26
Mason Perl-basierter Web Application Server 27
Mason Perl-basierter Web Application Server 28
Mason Perl-basierter Web Application Server 29
Web Applikationsmanagement Web Application Server Integrierte Services der WAS Datenbankanbindung Java bietet DB-Objekte und deren Schnittstellen an, PHP etwa nutzt persistente DB-Zugänge und Apache::DBI verwendet persistente DB-handles, die per abstrakten DB-Klassen in mod_perl-applications verwendet werden können (z.b. Mason) Session-Management Hier geht es darum, dass Kommunikationszustände persistent aus der Software genutzt werden können. PHP bietet $_SESSION, Mason bietet %session User Tracking und Error Handling Manche WAS bieten eine integrierte Form der Aufzeichnung aller Benutzeraktivitäten für Statistiken und Fehlerkorrekturen Etc. (logging, restart mechanism, db validity checks, file rotation, sw distribution) 30
Web Applikationsmanagement Mason: ein PERL-basierter Web Application Server Server Side Caching Einzeldaten, komplexe Datenstrukturen und ganze Komponenten können gecached werden Entsprechende Steurungsparameter entscheiden, ob der Inhalt über den Webserver oder aus dem Mason Cache erzeugt generiert werden soll (individuelle Timeouts, keys, concurrency) sinnvoller Einsatz bei ressourcenintensiven Services (z.b.: Datenbank-Queries) 31
Web Applikationsmanagement Mason: ein PERL-basierter Web Application Server Mason Templating Mason folgt in der Ablauforganisation dem hierarchischen Aufbau der Verzeichnisse des apache Servers entsprechend der Einstellungen im config-file wird ausgehend vom document root Verzeichnis der template Baum abgearbeitet ( autohandler ) templates haben Zugriff auf Attribute und Methoden von Mason Komponenten 32
Web Applikationsmanagement Mason: ein PERL-basierter Web Application Server Mason Staging Bei hochverfügbaren Services ist oft eine Trennung zwischen Entwicklungs- und Produktionsebene gefragt Der Mason Application Server verbindet beide Leistungen innerhalb eines Webservers, trennt die Bereich logisch sauber voneinander Komponenten können einzeln in die StagingUmgebung kopiert werden, dort bearbeitet und nach gefallen wieder zurückkopiert werden verbundene Dokumente werden von Mason automatisch im richtigen Bereich gefunden 33
Web Applikationsmanagement Mason: ein PERL-basierter Web Application Server Mason Debugging und Error Handling Fehler im mason code werden detailliert berichtet und als Fehlerbericht angezeigt Alternativ kann ein default-file geschalten werden (sinnvoll für die Produktionsebene) Fehlerprotokolle werden für die Mason Objekte erstellt, nicht für die Code-Files im Webserver Verzeichnisbaum 34
Erarbeitung einer Mason-Anwendung Übungsbeispiel Content Management Concepts umfasst wesentliche Komponenten des Content Managements verwendet Features des WAS Mason persistente Session Datenbankverbindung handling Integration (partieller von Design & Applikationslogik Einsatz von) MVC 35
Organisation Übung gestartet am Dienstag, 12.11.2013 im DSLab http://wae.culturall.com/wae/2013/anmeldung.pl Zur Zeit 15 Gruppen mit 38 Teilnehmern angemeldet Vorbesprechung zeigte Übungsangabe Einführung in Mason Konfig und Handhabung Einführende Beispiele und Hinweise zu Mason in der Übungseinführung 36
Web Application Engineering Architectural Reasoning Komponenten komplexer WA Server Strukturen und Performanz Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Service Architect pressetext.austria, culturall
Software-Layers/Ebenen 38
Das Client-Server Modell 39
Das Multi-Server Modell 40
Performance Benutzeranforderungen an die Leistungsfähigkeit eines Systems: Antwortverhalten: Benutzer verlangen schnelle und konsistente Antworten. Dazu benötigt man Wenige Komponenten Lokale Kommunikation, wo möglich Austausch kleinstmöglicher Dateneinheiten Durchsatz: Rate, mit der die Berechnungen durchgeführt werden. Die schwächste Komponente bestimmt den Durchsatz. Lastbalancierung: Verschiebung von Arbeitsteilen auf weniger belastete Komponenten. Replikation kann notwendig werden. 41
Caching und Replikation Wenn Caching oder Replikation eingesetzt werden, muss für viele Anwendungen sichergestellt werden, dass die Benutzer immer die aktuellste Kopie bekommen. Konsistenzproblematik Master/Slave Thematik Replikationsmanagement von Server-Software bzw. Datenbanksoftware 42
Verlässlichkeit Verlässlichkeit ( dependability ) umfasst Korrektheit: Das System sollte das erwartete Verhalten zeigen, was z.b. in der Spezifikation festgelegt ist. Sicherheit: Welches ist z.b. der sicherste Ablageplatz für Daten? Fehlertoleranz: beschreibt, inwieweit ein Dienst, ein System immer noch arbeitet, selbst wenn Fehler auftreten 43
Modernes SW-Engineering Web Engineering: Konkrete SW-Architekturen im Web Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Service Architect pressetext.austria, culturall
Architekturen Architekturebenen im Web Application Engineering Hardware-Architekturen (Clustering/Fail-Over) Web Server Architekturen Web Application Service Architekturen Applikationsarchitekturen 45 (SW-Architektur)
Web Application Architectures Verschiedene Prozessabläufe im WWW Basis: Client/Server Architektur 46
Web Application Architectures Verbindungscharakteristiken One-time connections Persistente Verbindungen 47
Serverseitige Architektur Serverseitige Architektur Der Webserver ist aufgrund der antizipierten Lastverteilung als simpler, aber leistungsfähiger Dienstleister ausgelegt Ansätze Monolithisch Parallele Prozesse mit dispatcher Light-weight/heavy-weight servers Load balancing servers Monitored servers 48
Serverseitige Architektur Modell des Apache Webservers Folgt dem Cluster-Modell (sowohl auf einem einzelnen als auch auf mehreren Rechner) Hat intern einen modularen Aufbau 49
Serverseitige Architektur Ein Server-Cluster Mehrere gleichwertige Server werden von einem Frontend aus angesprochen 50
Serverseitige Architektur Server Clustering Das Einbinden von mehreren Hardware-Servern in ein logisches Gesamtsystem Mehrere Ein Server können einen bestimmten Request beantworten dispatcher entscheidet, welcher Server den request erhalten soll Zufälliges Aufteilen Gesteuertes Aufteilen Load balancing Membership management Round-Robin 51
Serverseitige Architektur - Anwendung Web Proxy Servers, Web cache servers, CDNs 52
WAS Architektur Beispiele von WAS Architekturelementen in Mason Caches (Server Side Caching) Datenstrukturen, zeitgesteuert, ganze Komponenten oder Seitenergebnisse konkurrenzgesichert, schlüsselbasiert Stages Mehrere Services können parallel identisch aufgesetzt werden Korrekturen in der Wartungsumgebung können partiell vorgenommen werden Templates Hierarchisch werden templates abgearbeitet und auf Elemente der Hierarchiekette kann objektorientiert zugegriffen werden. 53
Modernes Web-Engineering Web Content Management Eine Anwendungsdomäne des Web Application Engineerings Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Service Architect pressetext.austria, culturall
Web Applikationsmanagement Web Service Management Web Application Services Softwaretechnische Wartung Performance und Zuverlässigkeit sind kritisch Web Content Management Redaktionssysteme, Content Management Systeme Content Syndication Applications 55
Web Site Wartung Wichtigster Teil des Web Service Engineering Technische Wartung Web Server Management Statistiken Page and Script Management (Web Appl. Server) Inhaltliche Wartung (CM / CMS / WCMS) Datenänderung Navigationsstrukturänderung Site-Migration Optimierung, Face-Lifting 56
Content Management Systeme (CMS) Begriffe und Eigenschaften Content Content Management Trennung von Struktur, Inhalt und Darstellung Erstellen und Verwalten von Inhalten Aktualität Konsistenz Content Management System Software für Content Management Schwerpunkt auf Web Content Management Systeme Typische Einsatzbereiche: Pressemitteilungen, Stellenangebote und Veranstaltungen 57
Professionelle CMS Online Redaktionssysteme Wie bringt man aktuell recherchierten Inhalt schnell und benutzerfreundlich ans Web Content Management Systeme Verschiedenartigste Inhalte, verschiedenste Formate sollen in eine Site gebracht und verwaltet werden 58
Online-Redaktionssystem Anwendung ist zeitkritisch Soft Real Time System Content Management Systems Inhalte eines Web Services werden online erstellt, korrigiert und bearbeitet Gültigkeitsdauer der Information Die Inhalte in online Systemen haben oft eine bestimmte Gültigkeitsdauer. Neue Nachrichten überschreiben alte oder verändern ihre Wertigkeit Integrität von Content, Navigation und Layout System soll die Komponenten streng trennen 59
Demo Open Source CMS Typo3 zeigt diskutierte Charakteristika Nähere Details unter www.typo3.org bzw. www.typo3.com Demo typo3 backend http://wae.culturall.com/qs/typo3/ 60
Web Application Engineering Nächste Lehrveranstaltung am 27.11. Konkrete Erklärungen zu CMS Konzepte des CM Erfahrungen mit Typo3 und CMS Online Demos Security im Web Encryption im Web SSL/TLS Zertifikate E-Commerce im Web 61