Web Application Engineering & Content Management 184.209 VU 2.0 Vortragsunterlagen zur Vorlesung an der Technischen Universität Wien Wintersemester 2016/2017 ZT Dipl.-Ing. Dr. Markus Univ.-Lektor Schranz Dipl.-Ing. Dr. Markus Schranz Staatlich befugter und beeideter Ingenieurkonsulent für Informatik staatlich befugter und beeideter Ingenieurkonsulent für Informatik Service Architect pressetext.austria, culturall
Organisation An folgenden Tagen werden Veranstaltungen zum Thema Web Application Engineering & Content Management angeboten: Vorlesung von bis Mittwoch 5.10.2016 VO 17:35 19:00 Mittwoch 12.10.2016 VO 17:35 19:00 Mittwoch 19.10.2016 VO 17:35 19:00 Mittwoch 9.11.2016 VO 17:35 19:00 Mittwoch 16.11.2016 VO 17:35 19:00 Mittwoch 23.11.2016 VO 17:35 19:00 Mittwoch 30.11.2016 VO 17:35 19:00 Mittwoch 7.12.2016 VO 17:35 19:00 2
Organisation An folgenden Tagen werden Veranstaltungen zum Thema Web Application Engineering & Content Management angeboten: Übungen von bis Dienstag 8.11.2016 LU 13:00 17:00 Freitag 13.01.2017 LU 13:00 18:00 Prüfung von bis Mittwoch 18.01.2017 Prfg 17:30 19:45 3
Web Application Engineering Nutzt Methoden des SW-Engineerings für Web Anwendungen Software Engineering, standardisierte Prozesse, LifeCycle Web Application Spezifika Client/Server Paradigma, DNS, Protokolle Konzeptuell: Inhalt und Navigation Technisch: Zusammenspiel von Plattformen, Sprachen, Konzepten Modellierung und Management Objekt-orientiert (UML), Präsentations-orientiert (Designs, Usability) und Prozess-orientiert (Storyboards) Wartung, Software-Pflege, nachträgliche und ständige Anpassungen 4
Themenschwerpunkte Internet Service Management mit Schwerpunkt WWW Software Engineering, Web Application Engineering Web Application Spezifika Security, Sicherheit im Internet Anbindung von Legacy Apps, Datenbanken, Web Interfacing Zuverlässigleit und Skalierbarkeit im Web, Frameworks Vertiefung Content Administration & Management Content Specifica, Web Assets, Business Intelligence Vertiefung Web Application Servers (WAS) 5
Ziel der Veranstaltung Vermittlung von aktuellen Praxiseinsätzen, Konzepten und methodischen Ansätzen zur Unterstützung des Life Cycles von komplexen Web Applikation Gängige Praxis kritisch bewerten softwareingenieurmäßige Methoden vorstellen Forschungs- und Anwendungsgebiet öffnen Praktische Einsatzfelder von Web Applications und Content Management diskutieren 6
Lehrinhalte Web Application Engineering & CM Motivation, Relevantes Umfeld (Internet, WWW) Web Service und Web Application Architekturen Software Design, Software Engineering, Web Application Engineering Integration von Legacy Applications (DBs), Business Intelligence, aktuelle Anwendungen Security im Web Business Content Management Methoden und Applikationen Web Application Server Praxistipps, Tricks & Pitfalls 7
Unterlagen zur LVA Powerpoint Vorlagen am Web http://weng.culturall.com/wae/wae-vo-2016-01.pdf http://weng.culturall.com/wae/wae-vo-2016-02.pdf (Primärquelle, prüfungsrelevant) Buchempfehlung: Web Engineering Gerti Kappel et.al. ISBN 3-89864-234-8 (2003) Web Engineering Mendes, Mosley ISBN 364-206-645-3 (2009) Web Engineering: The Discipline of Systematic Development of Web Applications. Gerti Kappel et.al. ISBN 0-4700-155-43 (2006) Erfolgreiche Softwareprojekte im Web Nils Langner, ISBN 978-3-86802-620-7 (2013) Web Application Architecture: Principles, Protocols and Practices, 2nd Ed.Leon Shklar, ISBN 978-0470518601 (2009) Buchempfehlung: Embedding Perl in HTML with Mason Dave Rolsky, Ken Williams ISBN 05-96-002-254(2010) www.contentmanager.de 8
Agenda Fallbeispiele Web Application Engineering in der Praxis Motivation Web Application Engineering Begriffsdefinition und Abgrenzung Kategorien von Web Applikationen Basistechnologien Internet, Web, Protokolle, Spezifika Realisierung von Web Applikationen Problematiken des Web Applikation Engineerings Aktuelle Konzepte und Methoden 9
Anwendung IT-Management und Web Application Engineering Kunde pressetext.austria online Nachrichtenagentur Technikabteilung Forschungsaktivitäten 10
Fallstudien 1/2 Technische Einblicke in die führende Internet-Nachrichtenagentur im deutschsprachigen-raum 11
Seit 1997 auf dem österreichischen Markt Seit 2000 in der Schweiz Seit 2001 in Deutschland größter Online Presseverteiler im deutschsprachigen Raum 2200 Unternehmer als Aussender ca. 100.000 Abonnenten in der D/A/CH-Region und CEE 1,8 Mio. Visits / Monat 7,2 Mio. Impressions / Monat, 36+ Mio hits / Monat 71.000 Single Users auf der Plattform täglich Zahlreiche Partner: ddp, DGAP, Yahoo, Wallstreet.online, uvm. 12
pressetext.at technical view Moderne RDBMS zur performanten Verwaltung von online Inhalten, ansehnliches Lastmanagement Verteilte Softwarearchitekturen für modernes Web Application Management Interne Forschung und Entwicklung schafft aktuelle Lösungen für online Content Management Internationale Kooperationen zu aktuellen Problematiken in der Content-Wirtschaft bringen Know-How und Vorsprung 13
Fallstudien 2/2 Details und E-Commerce bei Österreichs größtem Kulturevent-Manager 14
Kunde Kulturveranstaltungsmanagement 15
Kunde Kulturveranstaltungsmanagement 16
Kunde Kulturveranstaltungsmanagement 17
Kunde Kulturveranstaltungsmanagement 18
Kunde Kulturveranstaltungsmanagement www.staatsoperlive.com 19
Kunde Kulturveranstaltungsmanagement Moderne Apps basierend auf zentralem Datenmanagement 20
Kunde Kulturveranstaltungsmanagement Geschäftsvorgänge über Computernetzwerke Involvierung personenbezogener Daten (Sicherheit) Ubiquitärer Einsatz, stationäre und mobile Devices an unterschiedlichsten Service-Endpoints, koordiniertes Backend, BaaS Hohe Ansprüche an Zuverlässigkeit, Performance und Sicherheit, Concurrency, Transaktionsorientiertheit Content und Asset Management auf Basis moderner Datenbanken und Web Application Servers 21
Web Application Engineering & Content Management 184.209 VU 2.0 Motivation Web Application Engineering ZT Dipl.-Ing. Dr. Markus Schranz Staatlich befugter und beeideter Ingenieurkonsulent für Univ.-Lektor Informatik Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Service Architect pressetext.austria, culturall
Motivation Web Application Engineering ist technischer Teilbereich des Web Service Engineerings Behandelt Internet Services und Web Services Technologische Konzepte und Entwicklungen zur Erleichterung des Informationsaustausches und der internationalen Kommunikation über elektronische Medien Behandelt die systematische Entwicklung von Web-Anwendungen Methodische Vorgehensweise zum Entwurf, Design, zur Realisierung und zur Integration, zur Verwaltung, zum Management und zur Administration von spezifischen Anwendungen aus dem Bereich der Internet und Web Services 23
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-Aspekt d.h. statische Seiten alleine stellen keine Web-Anwendung dar Benutzerschnittstellen-Aspekt d.h. Web Services alleine stellen keine Web-Anwendung dar 24
Motivation Situation der Entwicklung von Web-Anwendungen Die heutige Situation der Entwicklung von Web- Anwendungen erinnert an Praktiken, die in den 60er und 70er Jahren bei der Softwareentwicklung Anwendung fanden: Wird oftmals als ein einmaliges Ereignis angesehen Erfolgt vielfach in einer spontanen Art und Weise Basiert zumeist auf dem Wissen, den Erfahrungen und den Entwicklungspraktiken individueller Entwickler Beschränkt sich auf Wiederverwendung im Sinne des "Copy&Paste-Paradigmas" Ist gekennzeichnet durch unzureichende Dokumentation von Entwurfsentscheidungen 25
Ursachen der Qualitätsmängel Dokumentenzentrierte Sichtweise Die Entwicklung von Web-Anwendungen wird als rein redaktionelle Aufgabe verstanden (Erstellung von Webseiten, Verlinkung und Einbinden von Grafiken) Vermeintliche Einfachheit der Web-Anwendungsentwicklung Durch die Verfügbarkeit von verschiedenen Werkzeugen wie HTML- Editoren, CMS und Formulargeneratoren Nicht-Nutzung von Know-how aus relevanten Disziplinen Entwicklung von Web-Anwendungen wird analog zur Entwicklung traditioneller Anwendungen behandelt Methoden des traditionellen Software Engineering werden wenn überhaupt unverändert eingesetzt Know-howaus Bereichen wie Hypermedia und Human Computer Interaction (HCI) nicht berücksichtigt 26
Motivation Hauptprobleme großer Web-Anwendungsprojekte Verfehlte geschäftliche Zielsetzungen (84% der Fälle) Projektverzögerungen (79%) Budgetüberschreitungen (63%) Mangel an Funktionalität (53%) Mangel an Qualität (52%) Quelle:Cutter Consortium, Poor Project Management Number-one Problem of Outsourced E-projects, Cutter Research Briefs, November, 2010, http://www.cutter.com/research/2010/crb101107.html 27
Motivation Definition Web Engineering Web Engineering ist die Anwendung systematischer und quantifizierbarer Ansätze(Konzepte, Methoden, Techniken, Werkzeuge), um Anforderungsbeschreibung, Entwurf, Implementierung, Test, Betrieb und Wartung qualitativ hochwertiger Web-Anwendungen kosteneffektiv durchführen zu können Web Engineering bedeutet auch die wissenschaftliche Disziplin, die sich mit der Erforschung dieser Ansätze beschäftigt 28
Motivation Grundprinzipien des Web (Application) Engineering Klar definierte Ziele und Anforderungen Systematische Entwicklung einer Web-Anwendung in klar definierten Phasen Sorgfältige Ausgestaltung dieser Phasen Kontinuierliche Überwachung des gesamten Entwicklungsprozesses 29
Web Application Engineering & Content Management 184.209 VU 2.0 Kategorien von Web Anwendungen ZT Dipl.-Ing. Dr. Markus Schranz Staatlich befugter und beeideter Ingenieurkonsulent für Univ.-Lektor Informatik Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Service Architect pressetext.austria, culturall
Komplexität Kategorien von Web-Applikationen Interaktiv Online Museum News-Seiten Fahrplanauskunft Dokumentzentriert Statische Homepage Firmenpräsentation Produkt/Projekt-Beschreibung Kollaborativ E-Education Virtuelle Arbeitsräume Chatrooms Portalorientiert Nachrichtenportale Online E-Commerce Malls Unternehmensportale Community-Portals/Auktionen Workflow-basiert E-Government Patienten-Workflow Kunden-Prozessorientierung Transaktional Online-Banking Shop-Lösungen Buchungs-/Reservierungssysteme Recommender Systeme Syndication Ubiquitäres Web Wissensmanagement Personalisierung Geo-Info-Dienste Multi-Plattform-Services Entwicklungshistorie Semantic Web 31
Kategorien von Web-Anwendungen Die Entwicklung einer Web-Anwendung kann in einer beliebigen Kategorie begonnen werden Jüngere Kategorien weisen in der Regel eine höhere Komplexität auf Aber: nicht notwendigerweise Ersetzung der älteren Generation durch eine jüngere Alle Kategorien haben ihre vorteilhaften Anwendungsgebiete Komplexe Web-Anwendungen können oftmals mehreren Kategorien zugeordnet werden Beispiel: Online Shopping Malls: Integrieren Anbieter verschiedenster Dienste, bieten verschiedenste Suchmöglichkeiten, ermöglichen Statusüberwachung von getätigten Bestellungen, unterstützen oftmals auch Onlineauktionen Viele traditionelle Anwendungsbereiche abgedeckt Beispiel:Online-Banking Schaffung neuer Anwendungsbereiche Beispiel: ortsabhängige Dienste, Medienübergreifende Dienste, cross-plattform, social web services 32
Kategorien von Web-Anwendungen Interaktive Web-Anwendungen Common Gateway Interface (CGI) und HTML-Formular-Technik bieten eine erste einfache Form der Interaktivität über Eingabebereiche Radio-Buttons Auswahllisten Webseiten, aber auch Verweise auf andere Webseiten können dadurch abhängig von Benutzereingaben dynamisch generiert werden Beispiele: Virtuelle Ausstellungen News-Sites Fahrplanauskunftssysteme 33
Kategorien von Web-Anwendungen Transaktionale Web-Anwendungen Hohe Interaktivität z.b. Modifikationen durch Benutzer möglich Datenbanksysteme erlauben eine effiziente und konsistente Datenverwaltung strukturierte Abfragen Beispiele: Onlinebanking E-Shopping Reservierungssysteme 34
Kategorien von Web-Anwendungen Workflow-basierte Web-Anwendungen Erlauben die Abwicklung von Geschäftsprozessen ( workflows ) innerhalb oder zwischen verschiedenen Unternehmen, Behörden und privaten Benutzern Web Services mit bekannten Schnittstellen gewährleisten Interoperabilität Voraussetzung: Strukturiertheit der zu automatisierenden Prozesse und Vorgänge Herausforderungen: Komplexität der einzubindenden Dienste Autonomie der beteiligten Unternehmen Notwendigkeit zur Robustheit und Flexibilität der Geschäftsprozesse Beispiele: Business-to-Business (B2B) Integrations-Frameworks wie ebxml im E- Commerce-Bereich E-Government-Anwendungen im öffentlichen Bereich Patienten-Workflows im Gesundheitsbereich 35
Web Application Engineering & Content Management 184.209 VU 2.0 Basistechnologien des Web Application Engineerings ZT Dipl.-Ing. Dr. Markus Schranz Staatlich befugter und beeideter Ingenieurkonsulent für Univ.-Lektor Informatik Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Service Architect pressetext.austria, culturall
Das Internet Das Internet ist ein loser Verbund kooperierender Computer-Netzwerke ohne zentrale Kontrolle Grundlegende Protokolle (IP) für die weltweite Datenkommunikation Medium/Plattform für eine Vielzahl von verfügbaren Diensten Zugriff auf entfernte Ressourcen Datentransfer E-Mail Usenet News ( Newsgroups ) World-Wide Web etc., etc. 37
Das World Wide Web Globales Informationssystem am Internet Was ist Hypertext? Hypertext Markup Language (HTML) HTML legt nur die Struktur fest Darstellung ist abhängig vom Browser Hypertext Transfer Protocol Uniform Resource Locator/Identifier (URL/URI) http://www.infosys.tuwien.ac.at/index.html Clients/Browser <-> Server 38
HTTP Das Hypertext Transfer Protokoll; Diskussion von Protokollspezifika für das Web Engineering Einfaches und schnelles Protokoll, geeignet für ein verteiltes Hypermedia-Informationssystem Client/Server Ansatz Zustandslos (stateless) Meta-Information 39
Personalisation Feature: Basic Authentication Benutzer versucht Dokument zu holen Server verweigert es mit dem Hinweis auf "realm" Client veranlasst Benutzer sich in diesem realm zu authentifizieren......und wiederholt dieselbe Abfrage nochmals Password wird in base64 übertragen mehr dazu im Block Web Security 40
Einsatz Basistechnologien im Web Application Engineering Moderne Softwaresysteme / Applikationen am WWW befolgen die Regeln der Basistechnologie implizit (z.b. Entwicklungssystem sieht es so vor, ASP, servlets, PHP, Mason, Ruby, Python, etc.) explizit (SW-Entwicklung muss Regelwerk explizit einhalten, z.b. CGI-Programmierung) Administration meist eine Ebene höher komponenten-orientierte Systeme Content Management Systems 41
Web Application Engineering & Content Management 184.209 VU 2.0 Realisierung von Web Applications ZT Dipl.-Ing. Dr. Markus Schranz Staatlich befugter und beeideter Ingenieurkonsulent für Univ.-Lektor Informatik Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Service Architect pressetext.austria, culturall
Web Service Engineering: Das Problem Umsetzung und Management von komplexen Web Sites spezielle Anforderungen, Management eines lokalen Hyperlink Modells, Integration von statischen und dynamischen Seiten,... Bestehende Systeme/Entwicklungsumgebungen für Implementierung, manche für Design, kaum welche für den gesamten Lebenszyklus Web Datenformate sind endformatiert (überwiegend) Keine Wiederverwendung von Gemeinsamkeiten, schlechte Verwaltbarkeit / Wartbarkeit Designer und Programmierer können kaum Überschneidungen der Aufgabenbereiche nutzen 43
Verschiedene Ansätze der Realisierung HTML Programmierung Seiten-basierende Editoren Script-basierende Seitenerzeugung Interpreter, Prozessoren, ASP, PHP Site-basierende Editoren Object-orientierte Site Engineering Werkzeuge W3Objects, JESSICA, Mason, Frameworks 44
Verschiedene Ansätze der Realisierung Jeder Ansatz führt zum selben Ergebnis: Der Benutzer sieht HTML-Dokumente mit Hilfe seines Browsers Wie findet man den richtigen Ansatz Anforderungen der Site überprüfen Systemabhängigkeiten überprüfen Infrastrukturelle Vorgaben beachten Ressourcen (Personal, Erfahrung, Finanzen, Zeit) beachten Bei Fremdentwicklung oft Paketlösungen Auswahl ohne technisches Verständis oft schwer, da die Ansätze nicht direkt vergleichbar sind Vorgehensweise etwa analog SW-Engineering Mit spezieller Beachtung von Web Application Spezifika 45
Web Service Engineering Requirements Analysis Daten Identification WWW-Service Spezifikation Funktionale Analyse Daten Organisation WWW Service Architektur Management der Relationen Design Implementation & Testing Datentransfer Service Implementierung Hyperlinks Web Modell vs. Verzeichnis Modell Web Server Management Deployment Maintenance Life Cycle einer WWW Site Informationsänderungen Änderungen im Web Modell Optimierungen 46
Agile Konzepte, zb Extreme Programming (XP) Kernkonzept moderner agiler Methoden: Viele kleinere Iterationen, mehrere Releases 47
Extreme Programming (XP) Vorschau moderne Methoden: Begriffe, Techniken und Werkzeuge 48
Weitere Herausforderungen komplexer Web-Applikationen Sicherheit und Zuverlässigkeit Eigener Block hierfür Leistungsfähigkeit und Performanz Architektur, Redundanz N-tier Architekturen, Proxying, Reverse Proxying, Server Farmen, Cluster Datenbankcluster, persistente Verbindungen und Caching Management und Wartung Wie pflegt man professionell komplexe Applikatonen,SW-Wartung,Planung,Kontrolle 49
Blockvorschau Web Application Engineering Kategorisierung, Spezifika, Vorgehensmodelle, XP Modelle des Web Application Engineerings Static vs. Dynamic Services Architektur und Performanz Web Application Management Technologien, WAS, Fallstudien Web Content Management CMS Theorie, Einsatzbereich, Nutzen, Spezifika Vertreter, open source, what-is-best? Web Commerce & konkrete Anwendungen Sicherheitserweiterungen, moderne Technologien Web 2.0ff / Social Web / AJAX 50