29.Januar 2007 – 1Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Architektur von Publikationssystemen — Cocoon — Anne Brüggemann-Klein.

Slides:



Advertisements
Ähnliche Präsentationen
Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
Advertisements

Software Engineering Praktikum SS 2003
Software Engineering Praktikum WS 2002/03
Internet-Datenbanken
Bastian Cramer, Universität Paderborn Entwurfsmuster für Webanwendungen Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen.
Tomcat Web-Server installieren
Java 2 Enterprise Edition (J2EE)
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
HTML - Einführung Richard Göbel.
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
Information und Technik Nordrhein-Westfalen Das personalisierte Portal Düsseldorf, Das personalisierte Portal.
eFormsDirect XML-basiertes eGovernment-Framework
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Hassan Bidani Jallal Alami Rahmouni FH Wiesbaden
Tomcat (I) Ende 1999 Jakarta-Projekt von Apache, IBM und Sun gegründet
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
Christian Kästner Modellgetriebene Softwareentwicklung Eclipse Modelling Framework.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
EXtensible Server Pages von Belrhiti El mostafa. Inhalt Was ist XSP ? Wichtige XSP Tags Erstellungsmöglichkeiten Die Basis der XSP.
Projekt Web Engineering
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Web-Anwendungsentwicklung à la MVC. Übersicht Über Georg Heeg Ein industrielles Beispiel Web-Anwendungen aus Smalltalker-Sicht MVC für das Web Programmierdemo.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Systementwicklungsprojekt:
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
SEP Halgurt Mustafa Ali Can Önder Marius Morawski Matthias Seidl Themen: Integration von RDQL und OWQL innerhalb des Apache Cocoon Frameworks Semantische.
Coccon das Web-XML-Publishing System Thomas Haller.
Einführung Servlets/JSPs
Martin Köllner XMLCompany Cocoon XMLCompany Apache Cocoon Web Publishing Framework.
Wir bauen uns eine Webapplikation!
Seminar Internet - Technologie
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 4 Folie 2 REST Web Services (1)
XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.
Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell
XML IV: Cocoon 2.
Turbine Konzepte und Dienste
NDK Enterprise Technologien Informationen Infrastruktur und Fallstudie Daniel Nydegger Studienleiter Enterprise System Entwicklung.
Java Server Pages Sergej Keterling
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
Demolsky Markus Hiebler Thomas Pindhofer Walter
XML (Extensible Markup Language)
Datenanbindung in Webapplikationen
Webseiten mit PHP, SQL, XML und Webservices Anhand praktischer Beispiele.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Drucken mit XSL-FO DaimlerChrysler  Drucken von Webseiten
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
W W W - World Wide Web. Das World Wide Web kommt aus dem Englischen und bedeutet ‚Weltweites Netz‘ ist ein über das Internet abrufbares Hypertext-System.
Generative Softwareentwicklung in der Praxis Olaf Kaus, „Java User Group“, Hannover 6.Oktober 2003.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Datenbanken im Web 1.
Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2.
Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.
1 Einführung TOMCAT Entwicklung Technischer Informationssysteme SS 2003 Florian Müller.
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Stefan Metzlaff1 Cocoon Stefan Metzlaff
Frameworks
Java 2 Enterprise Edition (J2EE) Sascha Baumeister Software Architect Specification Lead JSR086 IBM Deutschland Entwicklung GmbH
1 Servlets Stephan Baldes. 2 Was ist ein Servlet? S E R V L E T = Eine auf Java-Technologie basierte Web-Komponente, die von einem Container.
1 JavaServer Pages Stephan Baldes JavaServer Pages Einführung
22.Januar 2007 ― 1Vorlesung Elektronisches Publizieren: Client-Server-Kommunikation mit XForms/HTTP Formular-Schnittstellen in XML — XForms — Anne Brüggemann-Klein.
5.Februar 2007 – 1Vorlesung Elektronisches Publizieren: Formatierung von XML-Dokumenten mit XSL Formatierung von XML-Dokumenten — XSL — Anne Brüggemann-Klein.
Oracle ADF FacesSeite 1 Oracle ADF Faces OPITZ CONSULTING Oracles Implementierung der JavaServer Faces Spezifikation.
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
© 2008 TravelTainment The Amadeus Leisure Group Webanwendungen mit Java - HttpServlets 17.Dezember 2010 Sebastian Olscher Erstprüfer: Hon.-Prof. Dr. H.
Jakarta Struts Quasi-Standard für JSP-basierte Entwicklung: Jakarta Struts Key Features von Struts: Implementierung des Action-Command-Pattern („Model.
 Präsentation transkript:

29.Januar 2007 – 1Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Architektur von Publikationssystemen — Cocoon — Anne Brüggemann-Klein TU München

29.Januar 2007 – 2Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Integration o Bisher kennengelernt: Einzelne Technologien rund um XML, um Publikationsanwendungen zu erstellen o Im letzten Teil der Vorlesung: Serverseitige Unterstützung für Integration einzelner Komponenten zu einer Publikationsanwendung durch ein Publikationssystem bzw. Publishing Framework (Cocoon)

29.Januar 2007 – 3Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Anforderungen an Publishing Framework o Verwaltung aller Ressourcen einer Publikationsanwendung o Dynamisches Generieren angeforderter Ressourcen o Datenquellen integrieren und kombinieren o dynamische Bestandteile ausfüllen, z.B. aus Datenbank o in Präsentationsformate überführen und ausliefern Steuerbarkeit, Komponierbarkeit o Unterstützung der Authentifizierung und Modellierung von NutzerInnen (Personalisierung), Sitzungsverwaltung o Einsatz von Standard-Technologien zum Web-Publishing: XML, Parser mit Standard-APIs, XSLT, XSL-FO o Plattformunabhängigkeit, Flexibilität (online/offline)

29.Januar 2007 – 4Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Web-Grundlagen … o HTTP = Hypertext Transfer Protocol o Das Protokoll zwischen Clients und Servern im Web o Request-Response-Zyklus o zustandslos (clientseitige Persistenz durch Cookies) o parametrisierbar (z.B. durch Formulardaten) o Request als Anforderung einer Ressource über URI [ Methode (http + Get, Post, Put), Server, lokaler Pfad] GET /intro.html HTTP/1.0 User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 95) Accept: image/gif, image/jpeg, text/*, */* «Weitere Daten» o Response als Auslieferung der Ressource [mit Dokumentendaten und Metainformation]

29.Januar 2007 – 5Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Web-Grundlagen … Weiterentwicklung des Ping-Pong-Szenarios zu „Back-Web-Szenario“ (Serverseitige Dynamik) o Request als Anstoß einer serverseitigen Berechnung [parametrisiert durch Metadaten] o Response als Rückgabe der Ergebnisse der Berechnung  Three-Tier Architecture o Verschiedene Ansätze zur Realisierung: CGI, Servlets [vom Web-Server zum Application Server] o Erweiterung zu Multi-Tier Architecture o Typische Komponenten für „Back-Web“: Datenbanken, Content Management, Templates, Web Services  Framework für „Back-Web“: Cocoon

29.Januar 2007 – 6Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Web-Grundlagen Zwei Ansätze für serverseitige Dynamik o Von innen nach außen: Programm, das (mit print) Ausgabedokument erzeugt (CGI-Programm, Servlet) o gut für Request-Analyse, Berechnungsplan o umständlich für Dokumentgenerierung o Von außen nach innen: HTML-Seite mit eingebettetem Code (JSP, ASP, PHP) o umständlich für Request-Analyse, Berechnungsplan o gut für Dokumentgenerierung  Trennung  Architektur Model View Controler (MVC)

29.Januar 2007 – 7Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Web-Grundlagen: Servlets … Servlet-basierter Web-Server Hauptprozess Request Servleta Request Servletb Request Servleta Servleta Servletb JVM Thread

29.Januar 2007 – 8Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Web-Grundlagen: Servlets … o Ausführung von Servlets als Threads im Prozessraum des Web-Servers (im Gegensatz zu CGI) o Reine Programmlösung (wie CGI) o Logik, um dynamische Teile zu erzeugen o statischer Inhalt der Antwortseite Generiert Markup aus dem Programm heraus o Java Servlet Development Kit (JSDK) von SUN mit Klassen javax.servlet und javax.servlet.http als Ergänzung des Java Development Kit (JDK) o Speichern des Servlets in bestimmtem Serververzeichnis Anforderung über URL mit Klassennamen

29.Januar 2007 – 9Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Web-Grundlagen: Servlets … Introductions What is your name?

29.Januar 2007 – 10Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Web-Grundlagen: Servlets import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException { String nm = req.getParameter( " userName " ); res.setContentType( " text/html " ); PrintWriter out = res.getWriter(); out.println( " " ); out.println( " Hello " + nm + " " ); out.println( " " ); out.println( " Hello World! " ); out.println( " " ); } }

29.Januar 2007 – 11Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Klassisches MVC-Muster … o Aufgaben Model o Vorhalten der Anwendungsdaten o Bereitstellen der Anwendungsfunktionalität o Aufgaben View (Model-View-Verhältnis 1:n) o Präsentation von Sicht auf Daten o Anbieten von Interaktionsmöglichkeiten o Aufgaben Controller o Analyse der Interaktionsdaten o Koordination der Anwendungsfunktionalität o Aufruf des nächsten View

29.Januar 2007 – 12Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Klassisches MVC-Muster o Interaktion zwischen den Komponenten o Controller als Strategie der View-Komponente o Modell mit Observer dekoriert o Modell entkoppelt von View und Controller o „aktives“ Modell möglich o Motivation durch langlebige Anwendungskomponente und kurzlebige oder vielfältige GUIs

29.Januar 2007 – 13Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Adaption von MVC für das Web: Model 2 o Controller realisiert durch Servlet o View realisiert durch JSP-Seite o Model (passiv) realisiert durch Datenbank o Controller selektiert View und instantiiert Java Bean mit Datenausschnitt aus Datenbank als Input o Frameworks für Model 2 existieren: z.B. Struts o XML-basierte Lösung für Publikationssysteme: Cocoon o Weitere Systeme: Zope, Enhydra, ColdFusion

29.Januar 2007 – 14Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Cocoon … Was ist Cocoon? o Ein Publishing Framework auf Basis von XML-Technologie o Ein Produkt von Apache XML (Stefano Mazzocchi), inzwischen in Version 2.1 o Betreibbar als Java-Servlet o ansprechbar über "Einstiegsverzeichnis" in URL Three-Tier Architecture o Betreibbar als selbständige Applikation zur Bearbeitung von XML-Dokumenten o Mit MVC-Architektur verträglich

29.Januar 2007 – 15Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Cocoon … o Charakteristik o Webanwendungen durch Konfigurieren mit bekannten Komponenten statt durch Programmieren o auf Basis von XML und XSLT o Ziele: Trennung von o Management o Inhalt o Präsentation o Dynamik Separation of Concerns

29.Januar 2007 – 16Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Cocoon o Aufgabe: Data Mapping o Technologien o XML, XML Namespaces, SAX-Parser o XSLT-Transformationen o XSLT-Transformation nach HTML, WML, XML-FO (mit anschließender Formatierung nach PDF) o XSP (Extensible Server Pages): eingebettete Logik o Logicsheets für Anbindung von Datenquellen

29.Januar 2007 – 17Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Architektur von Cocoon … Virtualisierung von URIs: Bearbeitung eines HTTP-Request in Pipe, bestehend aus vorgefertigten und konfigurierbaren Komponenten: Durchreichen von XML-Daten und Parametersetzungen o Generator (erzeugt XML-Struktur, z.B. aus Datei) o Transformern o gesteuert z.B. durch XSLT-Stylesheets o Dynamik durch Berücksichtigung von HTTP- Parametern und durch XSP o Aktionen (z.B. für Datenbankzugriff) o Serialisierer (HTTP-Response HTML, PDF, XML, WML)

29.Januar 2007 – 18Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Architektur von Cocoon …

29.Januar 2007 – 19Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Architektur von Cocoon (Karlheinz Toni) … 1.) receive user request 2.) select right source document 3.) transform source document 4.) serialize transformed document user request 1.) XML-documents XML … 2.) XSLT-documents XSLT XML 3.) html, wap, pdf, svg,… 4.)

29.Januar 2007 – 20Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Architektur von Cocoon … o Komponenten in Pipe o Generatoren: HTMLGenerator, FileGenerator, RequestGenerator, StatusGenerator, DirectoryGenerator, ServerPagesGenerator o Transformatoren: TraxTransformer, CInclude o Readers: ResourceReader o Actions: RequestParamAction, RequestParameterExistsAction, ResourceExistsAction, ServerPagesAction o Serialisierer: HTMLSerializer, XMLSerializer, FOPSerializer, SVGSerializer

29.Januar 2007 – 21Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Architektur von Cocoon o Konfigurationsdatei (Sitemap) mit verzweigtem System von Pipes (sitemap.xmap)sitemap.xmap o Auswahl von Pipe im Pipesystem für Request über Matcher, Selektoren und Aktionen in Konfigurationsdatei (Sitemap) o SAX-Events zur Repräsentation von XML-Strukturen o Effizienzsteigerung durch Caching o Steuerkomponenten in Pipeline o Matcher: Wildcard/RegExpURIMatcher, Wildcard/RegExpRequestParameterMatcher, Wildcard/RegExpParameterMatcher, CookieMatcher o Selektoren: BrowserSelector, ParameterSelector, RequestParameterSelector

29.Januar 2007 – 22Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Sitemap … o Aufbau der Sitemap o Deklaration von Komponenten (mit globaler Konfiguration) o Definition von Views o Definition von Pipelines o Komponenten (mit lokaler Konfiguration) Verwendung deklarierter Komponenten über Namen o Markierungen von „Abgreifstellen“ für Views o Aggregationselemente o Pipeline für Error Handling

29.Januar 2007 – 23Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Sitemap … o Funktion der Sitemap o Mapping eines HTTP-Request mit URI, Query-String, Header-Daten, Cookies auf eine Pipe o Abarbeiten der Pipe bis zum Erzeugen eines HTTP-Response o Mapping … o Ausgangsdaten: HTTP-Request o während des Aufbaus der Pipe Definition von Sitemap- Parametern durch Aktionen (z.B. Verfügbarmachen von Request-Daten als Sitemap-Parameter durch Aktion RequestParamAction)

29.Januar 2007 – 24Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Sitemap o … Mapping o Auswertung von Matchern (if) und Selektoren (switch): Test von HTTP-Request und Sitemap-Parametern o Ausführung von Aktionen mit Belegung von Sitemap- Parametern (if) o Berücksichtigung des Query-String-Parameters cocoon-view=name Ohne Seiteneffekte auf XML-Strom! Ergebnis: Pipe der Form Generator Transformer* Serialisierer | Reader Spezialfall: Mehrere Eingänge bei Aggregatoren

29.Januar 2007 – 25Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Folien von Karlheinz Toni: Sitemap (1/2) o in XML-file format: sitemap.xmap o control center of Cocoon o defines criteria for determining o which XML-documents o are how transformed o and how they are serialized o actual logic of matching certain conditions and reading, transforming or serializing files is defined in components user request Cocoon Sitemap page pipeline1pipeline2pipeline1 select transform serialize select transform serialize select transform serialize request response

29.Januar 2007 – 26Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Sitemap (2/2) o Request Matching and Selection: o identify incoming request o SAX Generation: o generate SAX stream from XML-Source o Transformation: o transform input-SAX stream to another SAX stream via XSLT o Serialization: o serialize SAX stream into response as HTML, PDF, SVG, text, WML, XML,….

29.Januar 2007 – 27Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Debugging o Definition eines Segments zum Error Handling pro Pipeline: o Logging-Transformator o Gabeln von SAX-Events o Views

29.Januar 2007 – 28Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Komponenten von Interaktivität und Dynamik o Anforderung einer zu berechnenden Ressource: Virtualisierung von URIs o Parametrisierung des HTTP-Request, z.B. mit Daten aus HTML-Formular oder XForms o Sitemap-Parameter (zusätzlich zu XML-Daten in Pipe) o Wertezuweisung statisch, aus Request-Parametern und durch Aktionen o Verwendung zur Konfigurierung der Pipe und zur Parametrisierung von Komponenten (z.B. XSLT) o Ausführung von eingebettetem Kode (XSP, Logicsheets)

29.Januar 2007 – 29Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon XML Server Pages (XSP) Einbettung von Java-Code in XML-Daten o Interpretiert von ServerPages-Prozessor und kompiliert in Generator oder Action o XSP-Elemente: xsp:page, xsp:structure, xsp:include, xsp:logic, xsp:content, xsp:expr, xsp:element name=…, xsp:attribute name=…, xsp:pi target=…, xsp:comment=…, o Trennung von Content und Logic durch Logicsheets (XSLT-Programme), deren Auflösung von ServerPages- Prozessor gesteuert wird o Registrierung von Logicsheets in cocoon.xconf o Identifizierung von Logicsheets über URI / Präfix

29.Januar 2007 – 30Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Multi-Tier-Architektur mit Cocoon Web-Brower Cocoon mit XSLT-Transformationen Server Pages Generator RequestResponse Template o Generierung XML-Daten o dynamisch o aus Datenquellen Separation of Concerns o Multi-Channel-, Cross- Media-Publishing mit XSLT aus XML-Daten Logic sheet SOAP-Service

29.Januar 2007 – 31Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Tier 3 in Cocoon-Anwendungen Von Cocoon aus zugreifbar (über spezialisierte Logicsheets, compiliert nach XSP) o Relationale Datenbanken mit JDBC-Schnittstelle o Genuine XML-Datenbank (Xindice) o Web Services auf Basis von SOAP

29.Januar 2007 – 32Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon SOAP-Services mit Cocoon … o SOAP: Simple Object Access Protocol (W3C-Empfehlung) o für XML-kodierten Nachrichtenaustausch o insbesondere für entfernten Prozeduraufruf (RPC) o insbesondere über HTTP o kodiert Kontextinformation, Adressat, aufzurufende Methode mit Signatur und Argumenten bzw. Rückgabewerte in Element o unterstützt verschiedene Aufrufformate, dokumentiert in API-Kits der Serviceanbieter o Cocoon Logicsheet für SOAP mit Element o Zugreifbar derzeit Google, Amazon

29.Januar 2007 – 33Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … SOAP-Services mit Cocoon <soap:call url=" xmlns:xsi=" xmlns:xsd=" Key

29.Januar 2007 – 34Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Sitemap konzeptionell … o Sitemap konfiguriert Publishing-Anwendung mit Cocoon aus (programmierbaren) Komponenten, z.B. o XSLT-Transformatoren o XSP-Seiten (XML mit eingebettetem Java-Code) o Formatierern und Serialisierern o Sitemap besteht aus o Sektionen zur Deklaration (Konfiguration, Benennung) o von Komponenten, o Views und o Ressourcen o Sektionen zur Definition von Pipelines

29.Januar 2007 – 35Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Sitemap konzeptionell … o Pipelines legen fest, wie Request an die Publishing- Anwendung bearbeitet werden sollen o Pipeline besteht aus o Sequenz von Pipeline-Segmenten o einem optionalen Error-Handling-Segment o Pipeline-Segment besteht aus Sequenz von o XML-Verarbeitungskomponenten o Readern o Aggregatoren o Kontrollblöcken (mit weiteren Pipeline-Segmenten) o Resource call, Redirect

29.Januar 2007 – 36Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Sitemap konzeptionell … o Cocoon stellt aufgrund eines Requests und lokaler Information (z.B. aus Datenbank, lokaler Session- Information) aus den Pipelines eine Pipe zusammen, die dann abgearbeitet wird o Eine Pipe besteht aus einer Sequenz von XML- Verarbeitungskomponenten, nämlich o einem Generator o einer (eventuell leeren) Sequenz von Transformatoren o einem Serialisierer oder einem einzelnen Reader oder mehreren Anfangsstücken (G T*), gefolgt von einem Aggregator, gefolgt von einem Endstück (T* S )

29.Januar 2007 – 37Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Sitemap konzeptionell … o Bei der Ausführung der Pipe fließen zwischen den Komponenten XML-Daten in Form von SAX-Events o Generatoren erzeugen einen Strom von SAX-Events o Transformatoren lesen eine Strom von SAX-Events und schreiben einen transformierten Strom wieder aus o Serialisierer lesen einen Strom von SAX-Events und geben den Body eines HTTP-Response aus o Die Auswahl der Pipe aus der Pipeline erfolgt unter Auswertung von Kontrollkomponenten, Resource calls und Redirects aufgrund von Steuerdaten; Steuerdaten sind Eingabedaten für XML-Verarbeitungskomponenten, aber Ausführungsdaten (SAX-Events) beeinflussen St.d. nicht

29.Januar 2007 – 38Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Sitemap konzeptionell … o Steuerdaten sind o Request-Daten o URI o Request-Parameter (z.B. aus HTML-Formularen) o Header-Information o Protokoll, Client-, Server-, Servlet-Info o Session-ID o Cookies o Attribute (read-write-add-remove) o Sitemap-Attribute o Session-Info (aus Servlet-Container)

29.Januar 2007 – 39Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Sitemap konzeptionell … o Parametrisierung von Komponenten mit statisch (Deklaration) oder dynamisch (in Pipeline) o Kontrollkomponenten Matcher und Aktionen geben Parameter-Map zurück, wenn sie erfolgreich ausgeführt werden (Scope ist assoziiertes Pipeline-Segment). Parameter-Maps haben Ebenen, die der Schachtelungsebene der Kontrollkomponenten entsprechen. Referenzierung in Sitemap über {../name} o Jede Komponentenklasse hat (informelles) Interface von Konfigurationsparametern (Input), Return-Parametern (Output) und Request-Attributen (Input/Output)

29.Januar 2007 – 40Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Sitemap konzeptionell o Kontrollblöcke o Matcher-Komponente plus Pipeline-Segment für erfolgreichen Match (entspricht if) o Selektor-Komponente plus Pipeline-Segmente für verschiedene Werte eines Switch-Parameters plus optionales Catch-all-Pipeline-Segment (entspricht switch) o Action-Komponente plus Pipeline-Segment für erfolgreiche Ausführung der Action

29.Januar 2007 – 41Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Umsetzung der MVC-Architektur mit Cocoon o Model o XML-Dokumente o Transformation von XML-Dokumenten in Pipes o Aktionen o Generierung von XML-Daten aus Datenquellen mit Logicsheets o View o Generierung von HTML-Seiten mit XForms-Kontrollelementen o Controller o Steuerkomponenten in der Sitemap o Möglichkeiten der Separierung: Modularisierung der SMap o Pipelines in der Rolle von Prozeduren o untergeordnete Sitemaps

29.Januar 2007 – 42Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon View Patterns (nach Fowler) o Template View: ASP, JSP, PHP, XSP, XSLT Pull o Translate View: XSLT Push, XSLT Rekursiv o Orthogonal dazu: Two Step View o im ersten Schritt für jeden physischen Bildschirm Generierung eines logischen Bildschirms o im zweiten Schritt mit gemeinsamer Komponente Generierung des physischen Bildschirms  Cross-Media-Fähigkeit durch medienspezifischen zweiten Schritt

29.Januar 2007 – 43Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Controller Patterns (nach Fowler) o Page Controller: ein Controller pro Seite/Aktion o Einsatz von Helfer-Objekt o Front Controller: ein einziger Controller o zentrales HTTP-Handling o Änderungen in der Struktur der Aktionen erfordert keine Neu-Konfiguration des Web-Servers

29.Januar 2007 – 44Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Modellierung der Sitemap o Modellierung der HTTP-Requests o URI-Schemata o Query-Strings o Header-Information o Auflisten der verwendeten Komponenten mit Parameterisierung o Modellierung des Pipesystems als UML-Zustandsdiagramm o Zustände für Komponenten o mit Parametrisierungen o mit Ausgängen bei Matchern, Selektoren, Aktionen

29.Januar 2007 – 45Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Literatur … o Eric Freeman, Elisabeth Freeman: Head First Design Patterns. O‘Reilly o M. Fowler: Patterns of Enterprise Application Architecture. Addison-Wesley o A. Kemper, A. Eickler: Datenbanksysteme. Oldenbourg o St. Niedermeier: Cocoon 2 und Tomcat. Galileo Computing o Kapitel zu Cocoon in o MVC:

29.Januar 2007 – 46Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Literatur o M. Langham und C. Ziegeler: Cocoon: Building XML Applications. New Riders o L. Moczar, J. Aston: Cocoon Developer‘s Handbook. Sams Publishing o Online-Dokumentation zu Cocoon ( o o Cocoon Tutorial, Stefan Niedermeier o H. Wimmer: Unterstützung relationaler Datenbanken in Apache Cocoon. SEP TUM 2003.

29.Januar 2007 – 47Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Leistungsbereich Cocoon Gestaltung des Request-Response-Zyklus o Abbildung eines Request auf Pipe von Komponenten Generator · Transformator* · Serialisierer (Virtualisierung des Request) o Abarbeitung der Pipe resultiert in Response, spezifisch für Kanal und Medium Konfigurierung in Sitemap o Generatoren erzeugen XML-Quelle, z.B. aus Datei, Request o Transformatoren bearbeiten XML-Strom, z.B. mit XSLT  Systemunterstützung für Multi-Channel, Cross-Media Publishing

29.Januar 2007 – 48Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Einordnung zu Elektronischem Publizieren … o 1993: Das Web als Ping-Pong-Spiel gedächtnisloser Request-Response-Zyklus für Document Delivery (Cross-Media Publishing) o Bisher eingeführte Techniken unterstützen das Ping-Pong-Szenario: XML mit Namespaces, Zeichenkodierung, Schemasprachen, Transformation in Ausgabeformate, Verknüpfungen o Heute: Dynamische Generierung von Dokumenten o Parametrisierung von Requests über Formulare mit User-Interface (u.a. XForms) o Serverseitige Unterstützung der Dynamik über Publikationssystem (u.a. Cocoon)

29.Januar 2007 – 49Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon … Einordnung zu Elektronischem Publizieren o Morgen: Tiefergehende semantische Unterstützung für neue intelligente Anwendungen mit Semantic-Web-Technologie (auf XML-Basis): einfache Metadaten, RDF, OWL, Ontologien, Reasoning, Agenten, …

29.Januar 2007 – 50Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Installation o Voraussetzung: Java SDK, aktuelle Version o Umgebungsvariable JAVA_HOME setzen o Download von Cocoon [ o Build von Cocoon (Batch-Datei) o Start von Servlet-Container Jetty mit Cocoon als Servlet: cocoon servlet (Batch-Datei) o Aufruf mit URI o Eigene Anwendungen in eigenem Verzeichnis in \build\webapps mit eigener Sitemap o Aufruf mit URI o Alternative: eigenen Servlet-Container, z.B. Tomcat