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)