web (site) engineering (webse) - fileapplication server content management systeme wikis message...
TRANSCRIPT
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
Web (Site) Engineering (WebSE)Vorlesung 7: Serverseitige Content/Layout-Verarbeitung
P. Reiß, B. Schiemann
Lehrstuhl für Informatik 8Universität Erlangen-Nürnberg
06.12.2005
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
Übersicht
1 Application ServerJ2EE FrameworkZopeJBOSSGlassfish
2 Content Management SystemeLenyaPlone
3 Wikis
4 Message BoardsPHPBB
5 Blogs
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
Fokus auf Application Server
Webserver sind ausreichend gut implementiert→ Grundlage
Andere Server ebenfalls vorhanden (Mail, FTP, ...)→ modulare Einbindung
Tier-Architektur: Application Server→ Business Logik (zum Businessplan implementieren)
Skalierbarkeit von der Applikation trennen→ Performanz „on demand“
Kapselung nach „oben“ und nach „unten“→ „Schlanker“ Code !!!
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
J2EE Framework Übersicht [SM05a]
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
J2EE Framework – Was ist drin? [SM05b]
Beispiele und Dokumentation
J2SE SDKJava System Application Server Platform (Sun):
J2EE APIs (1.4): u.a. JAX-RPC, WSDL, SOAP, . . .Java System Application Server (mit command line tool)Java Server Faces 1.1JSP Standard Tag Library 1.1Java Web Services Developer Pack 1.6 (JWSDP)
In älteren Versionen vielfach eingesetzt!
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
Application Server Marktanteile 2004 [BZ 04]
JBoss 34, 8% ⇑IBM WebSphere 33, 9% ⇓Bea Web Logic 28, 7% ⇓Oracle 8i − 10g 22, 0% ⇓SUN Java System 13, 8% =Andere grosse ca. 10% ⇓Restliche ca. 25% Apache Tomcat basiert ⇑
Abbildung: Marktanteil im November 2004 (bei 75%/25% Java/.NET)
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
Zope [Zop]
Web application server
Open Source
Implementiert in Python
Linux, Windows, Mac OS X, Solaris, BSD, . . .
TTW (Through the Web) EntwicklungsmodellGroße Nutzer-Gemeinde
Hervorragende DokumentationForenWikisTutorials (eingebaut). . .
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
Zope II
Alle für Web-Application nötigen Bestandteile integriert.Transaktionale Objekt-Datenbank
InternExterne relationale (z.B. MySQL)
Eingebaute Server:FTPWebDAVXML-RPCHTTP
Aber auch: Apache oder andere Web-Server möglich
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
Zope III
Zope Management Interface (ZMI):Anlegen, Bearbeiten und Verwalten der Applikation (TTW)
Unterstützung für Autorenteams:History, Undo, Versionen
Granulare Sicherheitseinstellungen:Authentifizierung, Rechtevergabe
Erweiterbar (Python)Große Nutzergemeinde −→ Bibliotheken
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
Zope IV
Architektur
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
Zope V
Architektur
ZServer: Interner Server (HTTP, FTP, WebDAV, XML-RPC)Ersetzbar
Zope Core: Ansteuerung des Management Interfaces undder Objektdatenbank, Koordination
Object Database: Interne Datenbank, ersetzbar durch z.B.DB2, Oracle, PostgreSQL, Sybase, MySQL, MS SQLServerAuch: Ressourcen aus Dateisystem
ZClasses: Selbstdefinierte Zope-Objekte
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
Zope VI
How it works
Keine Quelldateien/-Verzeichnisse, sondern
Zope-Objekte in DatenbankGenerierung der Daten on the fly
aus Zope-Objektenin HTML, XML, . . .
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
Zope VII
Objekte
Content:Verzeichnisse, Dateien, Dokumente, Bilder, . . .
Präsentation:Kontrolle des Aussehens durch Templates
DTML (Document Template Markup Language)ZPT (Zope Page Templates)
Logik:Festlegung des „Verhaltens“ (Eventhandling, Ändern,Prüfen auf Bedingungen, Loops, DB-Abfragen, . . . )
DTMLPython, (Perl)
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
Zope VIII
DTML
(DTML Documents vs. DTML Methods)
Klassischer Ansatz
Mix aus HTML und DTML-Erweiterung
Keine klare Trennung zwischen Präsentation und Logik
Beispiel:<h1><dtml-var Test-Variable></h1>
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
Zope IX
ZPT
Moderner Ansatz
Klare Trennung zwischen Präsentation und Logik
XML-Format, TAL-Namespace („Template AttributeLanguage“)
Beispiel:
. . .<head>
< t i t l e t a l : c o n t e n t = " template / t i t l e "> T i t e l </ t i t l e ></head>. . .
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
Zope X
Logik-ObjekteSkript-Objekte
Python-CodeBerechnungen, Loops, . . .ermöglichen Dynamik
SQL-Methoden
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
Zope XI
Zope ist geeignet für
Rapid Development„Vorzeigbares“ in Minuten
HochkustomisierteContent-/Document-Management-LösungenAber auch größere Umfänge, z.B.:
NATOSGI
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
JBOSS Open Source Application Server
JBOSS ist eine Firma
„Typisches“ Open Source Geschäftsmodell:Produkt frei erhältlich, aber Service & Support wirdverkauft
Ärger wegen Markenrecht für Konkurrenten [jvi05]
Kooperation mit Microsoft
ABER Implementierung einer JBOSS-IDE auf EclipseBasis
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
JBOSS Open Source Application Server II
JBOSS IDE & JBOSS 3.2.5 (4.0)
Direktes debuggen auf dem Server
Mehrere Versionen des Servers
Probleme mit JDK 1.5.006
Einfach entpacken und starten
Default Konfiguration mit JMX Konsole, HSQLDB, . . .
Einstellungen für den Produktiv-Betrieb notwendig
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
JBOSS Vorteile nach [Wu03]
Vollständige J2EE Implementierung
„Hot Deploy“, deploy und undeploy im laufenden Server
Große Anzahl aktiver Entwickler
JMX1 Architektur mit kleinem Memory-Footprint
Konfigurierbarer Container (Tomcat inkl.)
Performance: Bis zu 1250 Benutzer bei 30 Anfragen/sek.(1.2 GHz P4, 256 MB RAM)
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
J2EE FrameworkZopeJBOSSGlassfish
Glassfish Open Source Application Server [Com05]
Java EE 5 application server
Open Source, aber Sun und Oracle involviert
Beinhaltet u.a.:JavaServer Pages(JSP) 2.1, JavaServer Faces(JSF) 1.2,Servlet 2.4, Enterprise JavaBeans 3.0, Java API for WebServices (JAX-WS) 2.0, Java Architecture for XML Binding(JAXB) 2.0, Web Services Metadata for the Java Platform1.0
→ neueste Java Technologien
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
LenyaPlone
CMS: Einleitung
Definition:„Ein CMS ist ein Werkzeug, das vielen verschiedenen(zentralen) technischen und (dezentralen) nitchttechnischenMitarbeitern ermöglicht, eine Vielzahl von Inhalten (z.B. Text,Grafik, Video usw.) zu erstellen, zu bearbeiten, zu verwaltenund schließlich zu veröffentlichen, und zwar unter zentralenRandbedingungen bzgl. Regeln, Prozessen und Workflow, dieein konsistentes und gültiges Aussehen im Web sicherstellen “(Plone-Buch, S. 23, aushttp://www.contentmanager.eu.com/history.htm)
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
LenyaPlone
CMS II
[uu05b]: „Die automatisierten Prozesse im Rahmen einesContent Managements werden durch Content ManagementSystems (CMS) unterstützt, die folgendes umfassen:
Möglichkeit, unterschiedliche Rollen undVerantwortlichkeiten an verschiedene Nutzer undContent-Kategorien/Typen zu vergeben
Identifizierung der wichtigsten Nutzer und ihrer Rollen
Definition der Verarbeitungsprozesse als Workflow oderMöglichkeit, Nachrichten (z.B. per E-Mail) anVerantwortliche zu senden, sobald sich am Contentbestimmter Unterlagen etwas ändert
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
LenyaPlone
CMS III
Nachhalten und Verwalten verschiedener Versionen einerUnterlage
Veröffentlichen des Contents in einer Ablage (z.B. einerDatenbank)“
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
LenyaPlone
CMS Matrix
Listet momentan 489 CMS
http://cmsmatrix.org/matrix/cms-matrix
Vergleiche von 142 Attributen in 10 Kategorien
Das passende für „jeden“ Geschmack
Für unsere Auswahl akutell
Kritik: Kriteriendefinition unklar
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
LenyaPlone
Lenya I – Cocoon [Coc05]
Apache Lenya Projekt basiert auf Apache Cocoon
Apaches (Pipelined) Publishing Framework
Managment zwischen Logik, Inhalt und Stil
Implementiert eXtensible Server Pages-Unterstützung
Basis Klassen für (Pipeline):Generierung, Transformation, Serialization, Komponenten
Benutzt wiederum Apache Tomcat
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
LenyaPlone
Lenya II – [The05]
Open Source Java/XML Content Management SystemEingebaut:
1 (Web) Site Management2 Revisions Kontrolle3 Scheduling4 Suchfunktionalitäten5 WYSIWYG Editoren z.B. Kubu, BXE6 Workflow (Definitionen, Kontrolle,...)
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
LenyaPlone
Beispiel Lenya-Pipeline I
<map:p ipe l ine ><map:match pa t t e rn =" t e s t . html ">
<map:generate type=" f i l e " s rc=" t e s t . xml " / ><map:transform type=" x s l t " s rc= " tes t2h tm l . x s l " / >< map :se r i a l i ze type=" html " / >
</map:match></ map:p ipel ine >
Beispiel vereinfacht
Anfrage auf test.html (dynamisch)
Grundlage test.xml → XSLT-P. mit test2html.xsl
Serialisiert durch eingebaute Ausgabefunktion
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
LenyaPlone
Lenya-Pipeline II
Matcher – „Parser u. Eventsystem“
Aggregator – Zusammenstellen der Einzelheiten
Transformer – XSLT-P. Ansteuerung mit Parametern
Selector – IF/ELSE
Serializer – ∗ → XML
Fin – Endzustand, Übergabe an Server/Client
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
LenyaPlone
Plone [Plo]
Open Source (GPL-Lizenz)
Auf Zope basierend
Bedienung und Administration TTW
Workflows
Rollen für Benutzer: „normaler“, Redakteur, AdministratorOut of the box verwendbar, aber auch
Anpassbar (Skin)Erweiterbar (Python)
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
LenyaPlone
Plone II
Content-Typen:
Dokument (Erstellung WYSIWYG-TTW)
Nachricht
Link (zu internem oder externem Element, z.B. Web-Seite)
Bild
Termin
Ordner (zur Strukturierung)
Thema (Gruppierung anderer Contents)
Datei
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
LenyaPlone
Plone III - Workflow-Zustände
Sichtbar: Für alle einsehbar (Suchfunktion oder direkteURL-Eingabe), Bearbeitbar durch Benutzer undSite-Manager
Offen: Zur Veröffentlichung eingereicht, Redakteure sollenveröffentlichen oder zurückweisen
Veröffentlicht: Für alle sichtbar. Erreichbar über Suche,URL-Eingabe und Navigationsbaum. Besitzer kann siezurückziehen
Privat: Sicht- und bearbeitbar nur von Besitzer undManager
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
Wikis
Hawaiianisch „Wikiwiki“: „schnell“
Ähnelt CMSWebsite, die
gelesenonline geändert werden kann
Jeder (auch ohne IT-Expertise) soll Redakteur sein−→ Einfache, schnell zu erlernende Syntax
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
Wikis II
Syntax
Je nach Software unterschiedlich, Beispiele aus Mediawiki
[[Link]]
’’kursiv’’
’’’fett’’’
’’’’’fett und kursiv’’’’’
== Ueberschrift ==
=== Unterueberschrift ===
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
Wikis III
Syntax: Listen
<ul> :
∗ eins∗ zwei∗∗ Unterpunkt e ins von zwei∗∗ Unterpunkt zwei von zwei
<ol> :
# e ins# zwei## Unterpunkt e ins von zwei## Unterpunkt zwei von zwei
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
Wikis IV
Architektur (Mediawiki)
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
Wikis V
Rechteverwaltung
History, Undo−→ Vandalismus (Wikipedia: nach durchschnittlich 3Minuten ist eine zerstörte Seite wieder hergestellt)
Wiki-Implementierungen:
Mediawiki
TikiWiki
pmwiki
moinmoin
. . .
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
PHPBB
Message Boards: Einleitung
Entstanden aus Email–Listen und Usenet bzw.Newsgroups
„Posten“: Schreiben eines Beitrags (Beiträge einzeln)
Registrierte Nutzer, können gemeinsam „posten“
Einträge (Postings) nach Überschriften sortiertRollen:
1 Nutzer=Redakteure2 Admin=Rollenüberwachung,Backup, Nutzer- u.
Moderatorregistrierung3 Moderator=Überwachung der Beiträge, Herausgeber
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
PHPBB
PHPBB2 [php05]
Ein typisches Forum (Message Board)
Geschrieben in PHP, Backend u.a. Mysql
Erlaubt in Postings: Tagging (BBCode)Große Bibliothek:
1 Templates2 Icons/Smiley3 Avatare4 Erweiterungen
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
PHPBB
PHPBB2 II
Entwicklerteams hauptsächlich aus USA/Europa
Leichte Einarbeitung zum Aufsetzen (ca. 3 Std.)
Gute Kollaborationsplattform
Basisserver: DB-, Web- inklusive PHP-EnginePHP Kommentar:
Zend Engine kann zu einem Bottleneck werden (je nachIntegration früher oder später)Es gibt momentan keine HW Beschleunigung zu kaufen ↔Java (IBM etc.)Es gibt aber momentan eine ganze Menge Tricks, umPHP-basierte Anwendungen zu beschleunigen →http://www.schlossnagle.org/~george/talks/
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
Blogs: Einleitung & Definition
Engl. Kontamination aus Web und Log → Weblog → Blog
„Weblogs, auch genannt Blogs, sind Online-Journale (einebesondere Form des Tage- oder des Notizbuchs), die sichdurch häufige Aktualisierung und viele Verlinkungenauszeichnen. Die meisten Blogs setzen bei einem neuenArtikel einen oder mehrere zentrale Server davon inKenntnis. Jedes Weblog ist ein für sich eigenes Journal. “[uu05a]
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
Wordpress [RB+05]
Open Source
Online Publishing
Anti-Kommentarspam
Templatebibliothek
Sicherheitsfeatures (Passwort,...)
Post mittels Email
Importfilter für andere Blogsysteme
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
Wordpress II
Extrem simpel aufzusetzen
Nötig: Apache, PHP, Mysql
Allerdings: DB Mechanismen selbst managen
JEDER Teilnehmer der Vorlesung sollte dies mal testen!!
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
Zusammenfassung
1 Application ServerJ2EE FrameworkZopeJBOSSGlassfish
2 Content Management SystemeLenyaPlone
3 Wikis
4 Message BoardsPHPBB
5 Blogs
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
Vielen Dank
Für Ihre Aufmerksamkeit!
Fragen?
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
BZ Media LLC.Fourth Annual Java Use and Awareness Study.http://www.jboss.com/pdf/bzresearch_study.pdf ,2004.
Cocoon Developers.The Apache Cocoon Project.http://cocoon.apache.org , 2005.
GlassFish Community.GlassFish Community.https://glassfish.dev.java.net , 2005.
jd von iX.Ärger um Jboss’ Geschäftsmethoden [Update].
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
http://www.heise.de/newsticker/meldung/64762 ,2005.
phpBB Teams.phpBB.com :: Creating Communities.http://www.phpbb.com , 2005.
Plone.Plone Website.http://www.plone.org .
Matthew Mullenweg Ryan Boren et al.WordPress.http://wordpress.org , 2005.
Inc. Sun Microsystems.http://java.sun.com/j2ee/1.4/download.html.
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
, 2005.
Inc. Sun Microsystems.Sun Java System Application Server Platform Edition 8.12005Q1 Release Notes.http://docs-pdf.sun.com/819-0072/819-0072.pdf ,2005.
The Apache Software Foundation.Apache Lenya - Open Source Content Management(Java/XML).http://lenya.apache.org/ , 2005.
http://de.wikipedia.org/wiki/Benutzer:JakobVoss u.a.Weblog.
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
http://de.wikipedia.org/wiki/Blog , 2005.
http://de.wikipedia.org/wiki/Benutzer:Sternu.a.Content-Management.http://de.wikipedia.org/wiki/Content-Management ,2005.
Zhenyu Wu.Experimentelle Leistungsanalyse und -verbesserung einesApplikations-Server-Caches (Studienarbeit).http://www.ipd.uni-karlsruhe.de/~pfeifer/other/studienarbeit_wu.doc , 2003.
Zope.Zope.
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)
Application ServerContent Management Systeme
WikisMessage Boards
Blogs
http://www.zope.org .
P. Reiß, B. Schiemann Web (Site) Engineering (WebSE)