Application Server und Architekturen

Werbung
Übersicht
Web (Site) Engineering (WebE)
Vorlesung 7: Application Server und Architekturen
Server-Architekturen
B. Schiemann, P. Reiß
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
Lehrstuhl für Informatik 8
Universität Erlangen-Nürnberg
01. 12. 2009
2 / 34
1 / 34
Server-Architekturen
Server-Architekturen
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
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)
3 / 34
4 / 34
Server-Architekturen
Server-Architekturen
3-Tier-Architektur
Multitier Architektur
1. Interaction Tier
Darstellung der Inhalte, Benutzerinteraktion
2. Application Tier
Geschäftslogik
3. Data Tier
Datenhaltung, z.B. RDBMS
Abbildung: Multitiered Enterprise Applications[Lie04]
6 / 34
5 / 34
Server-Architekturen
Server-Architekturen
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.
Multitier Architektur III
MySQL-Datenbank → Backend-Tier
PHPBB2-Funktionen → Business-Logic-Tier
PHPBB2-Templates → Web-Tier
Webbrowser → Client-Tier
Abbildung: Tier Separation[Lie04]
7 / 34
8 / 34
Server-Architekturen
Server-Architekturen
Peer-Architektur
I
Peer-Architektur II
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
10 / 34
9 / 34
Server-Architekturen
Application Server
BitTorrent
Fokus auf Application Server
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 / 34
I
Webserver sind ausreichend gut implementiert
→ Grundlage
I
Andere Server ebenfalls vorhanden (Mail, FTP, ...)
→ modulare Einbindung
I
Tier-Architektur: Application Server
→ Business Logic
I
Skalierbarkeit von Applikation trennen
→ Performanz on demand
I
Kapselung nach oben und nach unten
→ Schlanker Code
12 / 34
Application Server
J2EE Framework
Application Server
J2EE 1.4 Framework Übersicht u.a. [SJ09]
J2EE Framework
J EE 5 Framework Übersicht u.a. [Sun09]
13 / 34
Application Server
J2EE Framework
Application Server
J EE 5 Framework – Was ist drin? [Sun06]
I
Beispiele und Dokumentation
I
JSE 5/6 SDK
Kompatibel zu:
I
I
I
I
I
I
I
I
14 / 34
J2EE Framework
J2EE Application Model
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 !
15 / 34
16 / 34
Application Server
J2EE Framework
Application Server
Application Server Marktanteile 2004 [BZ 04]
Zope
Zope [Zop]
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 ⇑
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
Abbildung: Marktanteil im November 2004 (bei 75%/25% Java/.NET)
I
I
I
Hervorragende Dokumentation
Foren
Wikis
Tutorials (eingebaut)
...
17 / 34
Application Server
Zope
Application Server
Zope II
I
I
I
I
I
I
Intern
Externe relationale (z.B. MySQL)
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
Eingebaute Server:
I
Zope
Zope III
Alle für Web-Application nötigen Bestandteile integriert.
I Transaktionale Objekt-Datenbank
I
18 / 34
FTP
WebDAV
XML-RPC
HTTP
Aber auch: Apache oder andere Web-Server möglich
19 / 34
20 / 34
Application Server
Zope
Application Server
Zope IV
Zope
Zope V
Architektur
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 / 34
Application Server
22 / 34
Zope
Application Server
Zope VI
Zope
Zope VII
Objekte
I
Content:
Verzeichnisse, Dateien, Dokumente, Bilder, . . .
I
Präsentation:
Kontrolle des Aussehens durch Templates
How it works
I
Keine Quelldateien/-Verzeichnisse, sondern
I
Zope-Objekte in Datenbank
Generierung der Daten on the fly
I
I
I
I
I
aus Zope-Objekten
in HTML, XML, . . .
I
Logik:
Festlegung des „Verhaltens“ (Eventhandling, ändern, prüfen auf
Bedingungen, Loops, DB-Abfragen, . . . )
I
I
23 / 34
DTML (Document Template Markup Language)
ZPT (Zope Page Templates)
DTML
Python, (Perl)
24 / 34
Application Server
Zope
Application Server
Zope VIII
Zope
Zope IX
ZPT
I
Moderner Ansatz
(DTML Documents vs. DTML Methods)
I
Klare Trennung zwischen Präsentation und Logik
Klassischer Ansatz
I
XML-Format, TAL-Namespace („Template Attribute Language“)
I
Mix aus HTML und DTML-Erweiterung
I
Beispiel:
I
Keine klare Trennung zwischen Präsentation und Logik
I
Beispiel:
<h1><dtml-var Test-Variable></h1>
DTML
I
I
...
<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 >
26 / 34
25 / 34
Application Server
Zope
Application Server
Zope X
Zope XI
Zope ist geeignet für
Logik-Objekte
I Skript-Objekte
I
I
I
I
Zope
Python-Code
Berechnungen, Loops, . . .
ermöglichen Dynamik
I
Rapid Development
„Vorzeigbares“ in Minuten
I
Hochkustomisierte Content-/Document-Management-Lösungen
Aber auch größere Umfänge, z.B.:
I
SQL-Methoden
I
I
27 / 34
NATO
SGI
28 / 34
Application Server
JBOSS
Application Server
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
JBOSS
JBOSS Open Source Application Server II
Ärger wegen Markenrecht für Konkurrenten [jvi05]
I
Kooperation mit Microsoft
I
ABER Implementierung JBOSS-IDEs auf Eclipse und NetBeans
Basis
I
JBOSS IDE 1.5 & JBOSS 4.2
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, UltrasonicDB,
...
I
Einstellungen für den Produktiv-Betrieb notwendig
29 / 34
Application Server
30 / 34
JBOSS
Application Server
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)
Glassfish
Glassfish Open Source Application Server [Com09]
31 / 34
I
JavaTM EE 5 application server (V2)
I
Open Source, aber Sun und Oracle involviert
I
Sun JavaTM System AppServer 9.1 - Java EE 5 compatible gleiche
Codebasis wie GlassFish v2.
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
32 / 34
Application Server
Glassfish
Application Server
Zusammenfassung
Glassfish
Vielen Dank
Server-Architekturen
Application Server
J2EE Framework
Zope
JBOSS
Glassfish
I
Für Ihre Aufmerksamkeit!
I
Fragen?
33 / 34
Application Server
Glassfish
34 / 34
Application Server
Glassfish
Extending enterprise applications with valorized edge servers,
2004.
Inc BitTorrent.
BitToRent Protocol, 2005.
Sun Microsystems, Inc. and JCP.
JSR-000244 JavaTM Platform, Enterprise Edition 5 Specification.
http://developers.sun.com/products/pwreviews/pwr/
product-reviews/Java-Technologies/
Sun-Microsystems/p/7941147a__9def__4f6a__9df2_
_b56c7b443ca5-Java-Platform-Enterprise-Edition-5-Java-EE
html, 2009.
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, 2009.
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.
Erich Liebmann.
34 / 34
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.
Sun Microsystems, Inc.
Java Platform, Enterprise Edition (Java EE) Specification, v5.
34 / 34
Application Server
Glassfish
http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/
CDS-CDS_JCP-Site/en_US/-/USD/VerifyItem-Start/
javaee-5_0-pfd-spec.pdf?BundledLineItemUUID=
0H5IBe.mntUAAAElueBZ70oz&OrderID=wrVIBe.
mBDUAAAElq.BZ70oz&ProductID=
5vLACUFB7IQAAAEYcxM5AXuw&FileName=/javaee-5_
0-pfd-spec.pdf, 2009.
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.
34 / 34
Herunterladen