Application Server und Architekturen

Werbung
Web (Site) Engineering (WebSE)
Vorlesung 8: Application Server und Architekturen
B. Schiemann, P. Reiß
Lehrstuhl für Informatik 8
Universität Erlangen-Nürnberg
05. 12. 2006
1 / 33
Übersicht
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
2 / 33
Klassische 1:n-Architektur
I
Mehrere Male in der Vorlesung angesprochen
I
1 Server bedient n Clients
I
Z.B. Klassischer Webserver
I
Designattribute/Requirements aus letzter Vorlesung
I
Bei hoher Serverlast: Flaschenhals
I
Fazit: Dynamisierung hier nur auf Clientseite
3 / 33
Load Balancing
I
Erste Technik, um mit hoher Serverlast zurecht zu kommen
I
„1:n-Architektur“
I
Hinter dem einen Server verbergen sich viele
I
Meistens namensbasiert, da Eindeutigkeit der IP-Adressen
3 Möglichkeiten:
I
1. DNS (Round-Robin vs. Cached DNS)
2. Hardwarebasiertes 1-IP-Adresse:n-Server
3. Proxy-Lösungen (Hardware vs. Software)
4 / 33
3-Tier-Architektur
1. Interaction Tier
Darstellung der Inhalte, Benutzerinteraktion
2. Application Tier
Geschäftslogik
3. Data Tier
Datenhaltung, z.B. RDBMS
5 / 33
Multitier Architektur
Abbildung: Multitiered Enterprise Applications[Lie04]
6 / 33
Multitier Architektur II
I
Aktuell als 3-Tier-Architektur verbreitet
I
„Normale“ dynamische Webseiten, z.B. PHPBB2 haben 4
Schichten
Beispiel Tier-Zuordnung:
I
1.
2.
3.
4.
MySQL-Datenbank → Backend-Tier
PHPBB2-Funktionen → Business-Logic-Tier
PHPBB2-Templates → Web-Tier
Webbrowser → Client-Tier
7 / 33
Multitier Architektur III
Abbildung: Tier Separation[Lie04]
8 / 33
Peer-Architektur
I
Prinzip Peer:
1. Netz- und Peers finden/erkunden
2. Anfragen entgegennehmen/beantworten
3. Anfragen stellen u. Antworten verarbeiten
I
I
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
9 / 33
Peer-Architektur II
10 / 33
BitTorrent
I
Moderne Anwendung
I
BitTorrent = ¬ Architektur!!!
I
BitTorrent-Tracker halb Server halb Peer [Bit05]
I
Damit Repräsentant der Mischformen aus etablierten
Architekturen
I
Nutzt Vorteile der bestehenden Lösungen (mime-type,
peer, . . . )
11 / 33
Fokus auf Application Server
I
Webserver sind ausreichend gut implementiert
→ Grundlage
I
Andere Server ebenfalls vorhanden (Mail, FTP, ...)
→ modulare Einbindung
I
Tier-Architektur: Application Server
→ Business Logik
I
Skalierbarkeit von der Applikation trennen
→ Performanz „on demand“
I
Kapselung nach „oben“ und nach „unten“
→ „Schlanker“ Code !!!
12 / 33
J2EE Framework Übersicht u.a. [SJ06]
13 / 33
J2EE 5 Framework – Was ist drin? [Sun06]
I
Beispiele und Dokumentation
I
J2SE SDK 5.0
Java System Application Server Platform (Sun):
I
I
I
I
I
I
I
J2EE APIs (5.0): u.a. EJB 3.0 (Pers.API), JSF 1.2, JAX-WS
2.0 . . .
Java System Application Server (mit command line tool)
Java Architecture for XML Binding (JAXB) 2.0
JSP Standard Tag Library 1.2
Streaming API for XML (StAX) 1.0
Weitere: JavaServer Pages (JSP) 2.1, Servlet 2.5,
WebServices Metadata 2.0
14 / 33
J2EE Application Model
15 / 33
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)
16 / 33
Zope [Zop]
I
Web application server
I
Open Source
I
Implementiert in Python
I
Linux, Windows, Mac OS X, Solaris, BSD, . . .
I
TTW (Through the Web) Entwicklungsmodell
Große Nutzer-Gemeinde
I
I
I
I
I
I
Hervorragende Dokumentation
Foren
Wikis
Tutorials (eingebaut)
...
17 / 33
Zope II
Alle für Web-Application nötigen Bestandteile integriert.
I Transaktionale Objekt-Datenbank
I
I
I
Eingebaute Server:
I
I
I
I
I
Intern
Externe relationale (z.B. MySQL)
FTP
WebDAV
XML-RPC
HTTP
Aber auch: Apache oder andere Web-Server möglich
18 / 33
Zope III
I
Zope Management Interface (ZMI):
Anlegen, Bearbeiten und Verwalten der Applikation (TTW)
I
Unterstützung für Autorenteams:
History, Undo, Versionierung
I
Granulare Sicherheitseinstellungen:
Authentifizierung, Rechtevergabe
I
Erweiterbar (Python)
Große Nutzergemeinde −→ Bibliotheken
19 / 33
Zope IV
Architektur
20 / 33
Zope V
Architektur
I
ZServer: Interner Server (HTTP, FTP, WebDAV,
XML-RPC),
ersetzbar
I
Zope Core: Ansteuerung des Management Interfaces und
der Objektdatenbank, Koordination
I
Object Database: Interne Datenbank, ersetzbar durch z.B.
DB2, Oracle, PostgreSQL, Sybase, MySQL, MS SQL
Server
Auch: Ressourcen aus Dateisystem
I
ZClasses: Selbstdefinierte Zope-Objekte
21 / 33
Zope VI
How it works
I
Keine Quelldateien/-Verzeichnisse, sondern
I
Zope-Objekte in Datenbank
Generierung der Daten on the fly
I
I
I
aus Zope-Objekten
in HTML, XML, . . .
22 / 33
Zope VII
Objekte
I
Content:
Verzeichnisse, Dateien, Dokumente, Bilder, . . .
I
Präsentation:
Kontrolle des Aussehens durch Templates
I
I
I
DTML (Document Template Markup Language)
ZPT (Zope Page Templates)
Logik:
Festlegung des „Verhaltens“ (Eventhandling, ändern,
prüfen auf Bedingungen, Loops, DB-Abfragen, . . . )
I
I
DTML
Python, (Perl)
23 / 33
Zope VIII
DTML
I
(DTML Documents vs. DTML Methods)
I
Klassischer Ansatz
I
Mix aus HTML und DTML-Erweiterung
I
Keine klare Trennung zwischen Präsentation und Logik
I
Beispiel:
<h1><dtml-var Test-Variable></h1>
24 / 33
Zope IX
ZPT
I
Moderner Ansatz
I
Klare Trennung zwischen Präsentation und Logik
I
XML-Format, TAL-Namespace („Template Attribute
Language“)
I
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 >
25 / 33
Zope X
Logik-Objekte
I Skript-Objekte
I
I
I
I
Python-Code
Berechnungen, Loops, . . .
ermöglichen Dynamik
SQL-Methoden
26 / 33
Zope XI
Zope ist geeignet für
I
Rapid Development
„Vorzeigbares“ in Minuten
I
Hochkustomisierte
Content-/Document-Management-Lösungen
Aber auch größere Umfänge, z.B.:
I
I
I
NATO
SGI
27 / 33
JBOSS Open Source Application Server
I
JBOSS ist eine Firma (RedHat)
I
„Typisches“ Open Source Geschäftsmodell:
Produkt frei erhältlich, aber Service & Support wird
verkauft
I
Ärger wegen Markenrecht für Konkurrenten [jvi05]
I
Kooperation mit Microsoft
I
ABER Implementierung JBOSS-IDEs auf Eclipse und
NetBeans Basis
28 / 33
JBOSS Open Source Application Server II
I
JBOSS IDE 1.5 & JBOSS 4.0.5
I
J2EE 1.4
I
Direktes debuggen auf dem Server
I
Mehrere Versionen des Servers
I
Einfach entpacken und starten
I
Default Konfiguration mit JMX Konsole, HSQLDB, . . .
I
Einstellungen für den Produktiv-Betrieb notwendig
29 / 33
JBOSS Vorteile nach [Wu03]
I
Vollständige J2EE 1.4 Implementierung
I
„Hot Deploy“, deploy und undeploy im laufenden Server
I
Große Anzahl aktiver Entwickler
I
JMX Architektur mit kleinem Memory-Footprint
I
Konfigurierbarer Container (Tomcat inkl.)
I
Performance: Bis zu 1250 Benutzer bei 30 Anfragen/sek.
(1.2 GHz P4, 256 MB RAM, JBOSS AS 3)
30 / 33
Glassfish Open Source Application Server [Com05]
I
JavaTM EE 5 application server (V2 aktuell entwickelt)
I
Open Source, aber Sun und Oracle involviert
I
V1 wird innerhalb Sun JavaTM System Application Server
PE 9.0 ausgeliefert
I
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
I
→ neueste Java Technologien
31 / 33
Zusammenfassung
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
32 / 33
Vielen Dank
I
Für Ihre Aufmerksamkeit!
I
Fragen?
33 / 33
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].
http:
//www.heise.de/newsticker/meldung/64762,
2005.
33 / 33
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.
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.
Zhenyu Wu.
33 / 33
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.
33 / 33
Herunterladen