Web (Site) Engineering (WebSE) - Vorlesung 8: Application Server

Werbung
Server-Architekturen
Application Server
Web (Site) Engineering (WebSE)
Vorlesung 8: Application Server und Architekturen
B. Schiemann, P. Reiß
Lehrstuhl für Informatik 8
Universität Erlangen-Nürnberg
04. 12. 2007
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
Übersicht
1
Server-Architekturen
2
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
Klassische 1:n-Architektur
Mehrere Male in der Vorlesung angesprochen
1 Server bedient n Clients
Z.B. Klassischer Webserver
Designattribute/Requirements aus letzter Vorlesung
Bei hoher Serverlast: Flaschenhals
Fazit: Dynamisierung hier nur auf Clientseite
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
Load Balancing
Erste Technik, um mit hoher Serverlast zurecht zu kommen
„1:n-Architektur“
Hinter dem einen Server verbergen sich viele
Meistens namensbasiert, da Eindeutigkeit der IP-Adressen
3 Möglichkeiten:
1
2
3
DNS (Round-Robin vs. Cached DNS)
Hardwarebasiertes 1-IP-Adresse:n-Server
Proxy-Lösungen (Hardware vs. Software)
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
3-Tier-Architektur
1
Interaction Tier
Darstellung der Inhalte, Benutzerinteraktion
2
Application Tier
Geschäftslogik
3
Data Tier
Datenhaltung, z.B. RDBMS
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
Multitier Architektur
Abbildung: Multitiered Enterprise Applications[Lie04]
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
Multitier Architektur II
Aktuell als 3-Tier-Architektur verbreitet
„Normale“ dynamische Webseiten, z.B. PHPBB2 haben 4
Schichten
Beispiel Tier-Zuordnung:
1
2
3
4
MySQL-Datenbank → Backend-Tier
PHPBB2-Funktionen → Business-Logic-Tier
PHPBB2-Templates → Web-Tier
Webbrowser → Client-Tier
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
Multitier Architektur III
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Abbildung:
Tier Separation[Lie04]
Server-Architekturen
Application Server
Peer-Architektur
Prinzip Peer:
1
2
3
Netz- und Peers finden/erkunden
Anfragen entgegennehmen/beantworten
Anfragen stellen u. Antworten verarbeiten
Bekannt von Kazaa, Skype, . . .
Unterarten nach [FK04]:
1
2
3
4
Zentral-koordiniert oder Semi-P2P
Hierarchische P2P-Systeme
Dezentralisierte oder reine P2P-Systeme
Mischformen
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
Peer-Architektur II
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
BitTorrent
Moderne Anwendung
BitTorrent = ¬ Architektur!!!
BitTorrent-Tracker halb Server halb Peer [Bit05]
Damit Repräsentant der Mischformen aus etablierten
Architekturen
Nutzt Vorteile der bestehenden Lösungen (mime-type,
peer, . . . )
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
Fokus auf Application Server
Webserver sind ausreichend gut implementiert
→ Grundlage
Andere Server ebenfalls vorhanden (Mail, FTP, ...)
→ modulare Einbindung
Tier-Architektur: Application Server
→ Business Logic
Skalierbarkeit von Applikation trennen
→ Performanz on demand
Kapselung nach oben und nach unten
→ Schlanker Code
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
J2EE 1.4 Framework Übersicht u.a. [SJ06]
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
J EE 5 Framework Übersicht u.a. [Sun06b]
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
J EE 5 Framework – Was ist drin? [Sun06a]
Beispiele und Dokumentation
JSE 5/6 SDK
Kompatibel zu:
J2EE APIs (5.0): u.a. EJB 3.0 (Pers.API), JSF 1.2, JAX-WS
2.0 . . .
Java Architecture for XML Binding (JAXB) 2.0, JAXP 1.2
JSP Standard Tag Library 1.2
Streaming API for XML (StAX) 1.0
Authen. and Author. Service (JAAS) 1.0
Weitere: JavaServer Pages (JSP) 2.1, Servlet 2.5,
WebServices Metadata 2.0
.NET V3.0 !
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
J2EE Application Model
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
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)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
Zope [Zop]
Web application server
Open Source
Implementiert in Python
Linux, Windows, Mac OS X, Solaris, BSD, . . .
TTW (Through the Web) Entwicklungsmodell
Große Nutzer-Gemeinde
Hervorragende Dokumentation
Foren
Wikis
Tutorials (eingebaut)
...
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
Zope II
Alle für Web-Application nötigen Bestandteile integriert.
Transaktionale Objekt-Datenbank
Intern
Externe relationale (z.B. MySQL)
Eingebaute Server:
FTP
WebDAV
XML-RPC
HTTP
Aber auch: Apache oder andere Web-Server möglich
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
Zope III
Zope Management Interface (ZMI):
Anlegen, Bearbeiten und Verwalten der Applikation (TTW)
Unterstützung für Autorenteams:
History, Undo, Versionierung
Granulare Sicherheitseinstellungen:
Authentifizierung, Rechtevergabe
Erweiterbar (Python)
Große Nutzergemeinde −→ Bibliotheken
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
Zope IV
Architektur
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
Zope V
Architektur
ZServer: Interner Server (HTTP, FTP, WebDAV,
XML-RPC),
ersetzbar
Zope Core: Ansteuerung des Management Interfaces und
der Objektdatenbank, Koordination
Object Database: Interne Datenbank, ersetzbar durch z.B.
DB2, Oracle, PostgreSQL, Sybase, MySQL, MS SQL
Server
Auch: Ressourcen aus Dateisystem
ZClasses: Selbstdefinierte Zope-Objekte
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
Zope VI
How it works
Keine Quelldateien/-Verzeichnisse, sondern
Zope-Objekte in Datenbank
Generierung der Daten on the fly
aus Zope-Objekten
in HTML, XML, . . .
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
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, . . . )
DTML
Python, (Perl)
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
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)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
Zope IX
ZPT
Moderner Ansatz
Klare Trennung zwischen Präsentation und Logik
XML-Format, TAL-Namespace („Template Attribute
Language“)
Beispiel:
...
<head>
<title
< / head>
...
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 >
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
Zope X
Logik-Objekte
Skript-Objekte
Python-Code
Berechnungen, Loops, . . .
ermöglichen Dynamik
SQL-Methoden
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
Zope XI
Zope ist geeignet für
Rapid Development
„Vorzeigbares“ in Minuten
Hochkustomisierte
Content-/Document-Management-Lösungen
Aber auch größere Umfänge, z.B.:
NATO
SGI
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
JBOSS Open Source Application Server
JBOSS ist eine Firma (RedHat)
„Typisches“ Open Source Geschäftsmodell:
Produkt frei erhältlich, aber Service & Support wird
verkauft
Ärger wegen Markenrecht für Konkurrenten [jvi05]
Kooperation mit Microsoft
ABER Implementierung JBOSS-IDEs auf Eclipse und
NetBeans Basis
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
JBOSS Open Source Application Server II
JBOSS IDE 1.5 & JBOSS 4.2
J2EE 1.4
Direktes debuggen auf dem Server
Mehrere Versionen des Servers
Einfach entpacken und starten
Default Konfiguration mit JMX Konsole, HSQLDB,
UltrasonicDB, . . .
Einstellungen für den Produktiv-Betrieb notwendig
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
JBOSS Vorteile nach [Wu03]
Vollständige J2EE 1.4 Implementierung
„Hot Deploy“, deploy und undeploy im laufenden Server
Große Anzahl aktiver Entwickler
JMX 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, JBOSS AS 3)
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
Glassfish Open Source Application Server [Com05]
JavaTM EE 5 application server (V2)
Open Source, aber Sun und Oracle involviert
Sun JavaTM System AppServer 9.1 - Java EE 5 compatible
gleiche Codebasis wie GlassFish v2.
V2 beinhaltet u.a.:
JavaTM Authentication Service Provider Interface for
Containers, JavaTM Business Integration (JBI) plus Reviews
von JSF 1.2, JSP, Servlet, JAX-WS 2.0, JSR 109
(EWebSevices) und EJB3
→ neueste Java Technologien
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
Zusammenfassung
1
Server-Architekturen
2
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
Vielen Dank
Für Ihre Aufmerksamkeit!
Fragen?
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
Inc BitTorrent.
BitToRent Protocol, 2005.
BZ Media LLC.
Fourth Annual Java Use and Awareness Study.
http:
//www.jboss.com/pdf/bzresearch_study.pdf,
2004.
GlassFish Community.
GlassFish Community.
https://glassfish.dev.java.net, 2005.
Stefan Schlott und Jrgen Nagler-Ihlein Frank Kargl.
P2P Seminar, 2004.
jd von iX.
Ärger um Jboss’ Geschäftsmethoden [Update].
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
http:
//www.heise.de/newsticker/meldung/64762,
2005.
Erich Liebmann.
Extending enterprise applications with valorized edge
servers, 2004.
Sun Microsystems, Inc. and JCP.
JSR-000244 JavaTM Platform, Enterprise Edition 5
Specification.
http://javashoplm.sun.com/ECom/docs/
Welcome.jsp?StoreId=22&PartDetailId=
javaee-5.0-fr-eval-oth-JSpec&SiteId=
JSC&TransactionId=noreg, 2006.
Sun Microsystems, Inc.
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
Java EE 5 SDK and Sun Java System Application Server
Platform Edition 9: A Feature Summary.
http://developers.sun.com/prodtech/
appserver/reference/techart/app_svr_9.html,
2006.
Sun Microsystems, Inc.
Java Platform, Enterprise Edition (Java EE) Specification,
v5.
http://sdlc-esd.sun.com/ESD24/JSCDL/java_
ee_sdk/5.0-fr/javaee-5_0-fr-spec.pdf?
AuthParam=1196747571_
28bab762f7f7c36fc6864740bfb77760&TUrl=
an1npDpbKod7kSYrROhENTonIec2W0D1Lc4nXz+
pGFFranixdCdgxDTPbW4=&TicketId=
dVN3OA5HMe08/w==&GroupName=SDLC&BHost=
sdlc5h.sun.com&FilePath=/ESD24/JSCDL/java_
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
ee_sdk/5.0-fr/javaee-5_0-fr-spec.pdf&File=
javaee-5_0-fr-spec.pdf, 2006.
Zhenyu Wu.
Experimentelle Leistungsanalyse und -verbesserung eines
Applikations-Server-Caches (Studienarbeit).
http://www.ipd.uni-karlsruhe.de/~pfeifer/
other/studienarbeit_wu.doc, 2003.
Zope.
Zope.
http://www.zope.org.
P. Reiß, B. Schiemann
Web (Site) Engineering (WebSE)
Herunterladen