Ü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