Leistungsanalyse_WebLogic Name der Autoren: Patrick Heike (190291), Stephan Kilian (191414) Titel der Arbeit: Leistungsanalyse WebLogic Hochschule und Studienort: FOM Düsseldorf Inhaltsverzeichnis • 1 Abkürzungsverzeichnis • 2 Abbildungsverzeichnis • 3 Tabellenverzeichnis • 4 Einleitung • 5 Grundlagen ♦ 5.1 Begriffsabgrenzung Applikationsserver ♦ 5.2 Java Virtual Machine (JVM) ♦ 5.3 Oracle Weblogic • 6 Leistungsanalyse vom Weblogic ♦ 6.1 Funktionsumfang ◊ 6.1.1 Java EE Plattform ◊ 6.1.2 Unterstützte Systeme ◊ 6.1.3 Entwicklung ◊ 6.1.4 Virtualisierung ♦ 6.2 Administration ◊ 6.2.1 Verwaltungsfreundlichkeit ◊ 6.2.2 Migration ◊ 6.2.3 Monitoring und Diagnosetools ◊ 6.2.4 Backup & Recovery ♦ 6.3 Hochverfügbarkeit & Skalierbarkeit ◊ 6.3.1 Antwortzeiten ◊ 6.3.2 Ausfallsicherheit ♦ 6.4 Sicherheit ◊ 6.4.1 Unterstützte Protokolle & Zertifikate ◊ 6.4.2 Authentifizierung, Authorisierung, Auditierung ♦ 6.5 Wirtschaftlichkeit • 7 Schlussbetrachtung • 8 Fußnoten • 9 Quellenverzeichnis 1 Abkürzungsverzeichnis Abkürzung Inhaltsverzeichnis Bedeutung 1 Leistungsanalyse_WebLogic ADF API CPU EJB HTML HTTP HTTPS IIS JAAS JACC JCA JDBC JMS JRA JSP JVM J2EE LDAP OEPE RAD RMI SLA SOA SSL SSPI TCP TLS UML WLS VE WSRP Application Development Framework Application Programming Interface Central Processing Unit Enterprise Java Beans Hypertext Markup Language Hypertext Transfer Protokoll HTTP über SSL Internet Information Server Java Authentication and Authorization Server Java Authorization Contract for Container Java Connector Architecture Java Database Connectivity Java Message Service JRockit Runtime Analyzer Java Server Pages Java Virtual Machine Java 2 Enterprise Edition Lightweight Directory Access Protokoll Oracle Enterprise Pack for Eclipse Rapid Application Development Remote Method Invocation Service Level Agreements Software Oriented Architecture Secure Sockets Layer Security Service Provider Interfaces Transmission Control Protocol Transport Layer Security Unified Modeling Language Weblogic Server Virtual Edition Web Services for Remote Portals 2 Abbildungsverzeichnis Abb.-Nr. 1 2 3 4 5 6 7 Abbildung Logische arbeitsweise Server-Architektur JVM Überblick Überblick Weblogic Virtual Edition Application Loadbalancing Automatic Fail-over HTTP Session Replication Weblogic Security Framework 1 Abkürzungsverzeichnis 2 Leistungsanalyse_WebLogic 8 Authentifizierung mit JAAS Klassen und dem Weblogic Security Framework 3 Tabellenverzeichnis Tab.-Nr. Tabelle 1 Überblick und Beschreibung der Java EE Module 2 Weblogic Kompatibilitätsmatrix 4 Einleitung In der vorliegenden Fallstudie wird eine Leistungsanalyse des Oracle WebLogic Applikationsserver vorgenommen. Sie entsteht im Fach Fallstudie I bei Herrn Prof. Dr. Kern an der Fachhochschule für Ökonomie und Management am Studienstandort Düsseldorf. Bis Ende der 90er Jahre stellten Applikationsserver nur einzelne, unabhängige Anwendungen zur Verfügung. In den vergangenen Jahren haben sich ihre Funktionen erheblich erweitert und verändert. Heute sind sie aus Geschäftsprozessen von Unternehmen nicht mehr wegzudenken. Ihre Integration ist so verstrickt, dass ein Ausfall eine Firma in den Bankrott stürzen könnte.[1] Applikationsserver bilden mittlerweile die Basis von betriebswirtschaftlichen Informationssystemen sog. Enterprise Applikationen. Sie stellen ihren Benutzern Dienste und Anwendungen aller Art bereit und erlauben die Integration verschiedenster Plattformen durch offene Standards. Durch ihre Schnittstellen können verschiedene Informationen von unterschiedlichen Anwendungen und Systemen genutzt werden. Die Wichtigkeit, die Applikationsserver in der heutigen Zeit haben, machen die Anforderungen an sie teilweise extrem hoch. Die bereitgestellten Dienste dürfen nicht ausfallen und müssen vor unberechtigtem Zugang geschützt werden. Zusätzlich muss das System flexibl, erweiterbar und administrierbar sein. Die Systemverantwortlichen in den Unternehmen müssen aus einer Vielzahl von unterschiedlichsten Applikationsserver wählen. Faktoren wie Funktionsumfang, Leistungen und Kosten sind dabei wichtige messbare Kriterien. Die vorliegende Leistungsanalyse liefert eine unabhängige Bewertung des Applikationsservers Oracle Weblogic. Eine technische und wirtschaftliche Analyse stellen die Details dieser Bewertung dar. Sie wird durch eine theoretische Betrachtung der von Oracle angegebenen Funktionen durchgeführt. Ein Praxistest ist nicht vorgesehen. Die verschiedenen Funktionalitäten werden aus den Sichten des Entwicklers, des Systemadministrators und des Unternehmens bewertet. Zur Darstellung der Analyse ist die Fallstudie in unterschiedliche Schwerpunkte gegliedert: Zu Beginn werden Grundlagen geklärt, womit verschiedene Begrifflichkeiten dieser Arbeit definiert und abgegrenzt werden. Nach den Grundlagen wird der Funktionsumfang sowie die Administration erläutert. Darauf aufbauend wird Hochverfügbarkeit und Sicherheit im Detail erklärt und anhand von mehreren Grafiken dargestellt. Nachdem alle Informationen erklärt sind wird die Wirtschaftlichkeitsanalyse für Weblogic basieren auf theoretischen Sachverhalten erstellt und kritisch betrachtet. 5 Grundlagen 2 Abbildungsverzeichnis 3 Leistungsanalyse_WebLogic 5.1 Begriffsabgrenzung Applikationsserver Abbildung 1: Logische Arbeitsweise Server-Architektur[2] Ein Applikationsserver ist eine Middleware Komponente eines Servers, der für die Lauffähigkeit und Administration von Anwendungen konzipiert ist. Diese Komponente bildet die Schnittstelle zwischen Anwendung und Infrastruktur, sowie dem Betriebssystem. Die Abbildung 1 zeigt wie der Applikationsserver in eine Client Server Architektur eingebunden ist. Die nachfolgenden Schritte beschreiben die Arbeitsweise des Applikationsservers innerhalb der Client-/ Server Architektur. (A) 1. Schritt Der Benutzer fordert via Webbrowser eine dynamische Webseite an. 5.1 Begriffsabgrenzung Applikationsserver 4 Leistungsanalyse_WebLogic (B) 2. Schritt Auf dem Webserver wird entschieden, dass es sich um eine Anfrage an eine dynamische Seite handelt, so dass diese direkt an den Applikationsserver übergeben wird. (C) 3. Schritt Der Applikationsserver analysiert und verarbeitet die Anfrage. (D) 4. Schritt Der Applikationsserver sendet eine Abfrage an den Datenbanktreiber. Es gilt zu beachten, dass es sich bei der Abbildung um eine logische Darstellung handelt. Der Datenbanktreiber wird in den Applikationsserver konfiguriert und befindet sich i.d.R. auf dem gleichen Server. (E) 5. Schritt Über den Datenbanktreiber wird die Abfrage an die Datenbank gestellt. (F) 6. Schritt Auf dem Datenbankserver wird die Anfrage des Applikationsservers (Datenbanktreibers) verarbeitet und der Ergebnisdatensatz an den Datenbanktreiber zurückgegeben. (G) 7. Schritt Dieser Datenbanktreiber gibt die Antwort an den Applikationsserver weiter. (H) 8. Schritt Mit den gelieferten Daten aus der Datenbank stellt der Applikationsserver die Webseite dynamische zusammen und gibt diese zurück an den Webserver. (I) 9. Schritt Der Webserver fügt ggf. noch statische Dateien in die Antwort ein und sendet diese zurück an den Webbrowser. 5.2 Java Virtual Machine (JVM) Abbildung 2: JVM Überblick[3] Die Java Virtual Machine ist die Laufzeitumgebung für die Ausführung von Java Anwendungen. Sie dient als Schnittstelle zwischen Java Programm und Maschine/ Betriebssystem. Bekannte JVMs sind die von SUN Microsystems (z.B. Java Enterprise Edition) sowie die speziell für den Einsatz unter Weblogic 5.2 Java Virtual Machine (JVM) 5 Leistungsanalyse_WebLogic optimierte JRockit JVM von Oracle.[4] Durch den Einsatz der JVM sind Anwendungen, die in Java programmiert sind Plattform unabhängig, da diese Programme eine JVM als Laufzeitumgebung benötigen und diese unter den verschiedenen Betriebssystemen mit Ausnahme von Kleinigkeiten, gleich sind.[5] JRockit[6] ist eine hoch performante Laufzeitumgebung, die darauf ausgelegt ist, die folgenden Merkmale für Java Anwendungen bereit zu stellen: ◊ Ausfallsicherheit ◊ Skalierbarkeit ◊ Managebarkeit ◊ Flexibilität Alle Java Virtual Machines müssen sich an die von SUN Microsystems vorgegebenen JVM Spezifikationen richten, die unter folgendem Link zu finden sind: http://java.sun.com/docs/books/vmspec/2nd-edition/html/Introduction.doc.html#3057 5.3 Oracle Weblogic Der Oracle WebLogic Server ist einer der am meist zum Einsatz kommenden Applikationsserver in der Middleware[7]. Entwickelt wurde der Applikations Server unter der US-amerikanischen Softwarefirma BEA Systems, die im Januar 2008 von der Oracle Corporation aufgekauft wurde.[8] Der WebLogic Server basiert auf der Java 2 Enterprise Edition Plattform (J2EE). Als Applikationsserver ist er bekannt für ein hohes Maß an Skalierbarkeit für den Einsatz von verteilten Anwendungen, die zur modernen Erstellung von sog. Service-orientierte Architekturen (SOA) dienen. SOA ist ein Design-Ansatz der es ermöglicht Teilkomponenten von Anwendungen anderen Anwendungen bereitzustellen und wiederzuverwenden.[9] Durch die vollständige Umsetzung der J2EE-Spezifikationen bietet der WebLogic Server ein großes Standart-Set von Java-Anwendungsmodulen (APIs). Dadurch können die Entwicklungszeiten von Java-Anwendungen drastisch reduziert werden. Des Weiteren stellt der Weblogic Server alle wichtigen Komponenten eines Applikationsservers bereit, dies wären u.a. eine Laufzeitumgebung für Java Applikationen, Anwendungen für die Systemadministration und Überwachung, Entwicklungswerkzeuge, sowie Tools für die Skalierbarkeit und Hoch Verfügbarkeit von Middleware Anwendungen.[10] Der Weblogic Server wird in drei Produktkategorien angeboten[11]: ◊ Oracle WebLogic Server Standard Edition Die Standart Edition ist die Einstiegsversion. Sie beinhaltet den WebLogic Server und einige Tools zur Anwendungsentwicklung, wie z.B. das Oracle Application Development Framework (ADF) und das Oracle Enterprise Pack für Eclipse.[12] ◊ Oracle WebLogic Server Enterprise Edition Die Enterprise Edition bietet zusätzlich zur Standart Edition Tools für die Hochverfügbarkeit und Skalierbarkeit (Oracle WebLogic Clustering) an. Und verfügt zusätzlich über ein eigenes Diagnose Tool für den WebLogic Server (Oracle Enterprise Manager Diagnostics Pack for Oracle Middleware)[13] ◊ Oracle WebLogic Suite 5.3 Oracle Weblogic 6 Leistungsanalyse_WebLogic Die WebLogic Suite beinhaltet den größten Funktionsumfang der Weblogic Produktreihe. Zusätzlich zur Enterprise Editionen gehören folgende Tools: Oracle Coherence Enterprise Edition(Grid-Computing), Oracle Enterprise Manager Management Pack for Coherence, Oracle WebLogic Real Time (JRockit), Oracle Internet Application Server und Oracle WebLogic Operations Control.[14] Der im November 2009 neuveröffentlichte Oracle WebLogic Server 10.3.2 ist Teil der Oracle Fusion Middleware 11g Strategie, die eine komplette Produktfamilie im Middleware-Bereich anbietet. Durch den weiteren Zukauf der Firma Sun Microsystems im April 2009 wird Oracle seine Middleware-Produktfamilie weiter ausbauen können. Sun Microsystem entwickelt die Programmiersprache Java und den Open-Source-Applikationsserver "SUN GlassFish". Einen Überblick der Oracle Fusion Middleware Produktfamilie ist unter folgendem Link zu finden: http://www.oracle.com/appserver/appserver_family.html 6 Leistungsanalyse vom Weblogic 6.1 Funktionsumfang Der Leistungsumfang eines Applikationsservers ist mit den verbunden Kosten für Lizenzen und Wartung ein entscheidendes Kaufkriterium. Der WebLogic Server bietet laut führenden IT-Marktforschungsunternehmen mit den größten Umfang an Funktionen und Einsatzbereichen. Große Potenziale werden vor allen Dingen bei Cloud Computing und Virtualisierung gesehen[15]. 6.1.1 Java EE Plattform Durch die integrierte Java Plattform 2 Enterprise Edition-Spezifikation (J2EE oder auch Java EE) stellt der WebLogic Server die Infrastruktur der Laufzeitumgebung bereit. Dadurch werden in Java programmierte Anwendungen läuffähig. J2EE Anwendungen sind modular aufgebaut. Somit können Teilkomponenten an anderen Stellen wiederverwendet werden. Der WebLogic Server stellt eine Vielzahl von J2EE-Modulen von Haus aus bereit. Dadurch stehen viele Anwendungseigenschaften automatisch ohne großen Programmieraufwand bereit, dadurch können Entwicklungszeiten drastisch reduziert werden.[16] In der nachstehenden Tabelle sind die wichtigsten Java-EE-Module im Bezug auf den WebLogic Server aufgelistet: Modul Enterprise Java Beans (EJB) 6 Leistungsanalyse vom Weblogic Beschreibung Die Enterprise Java Beans sind eine standartisierte Java-Komponenten-Bibliothek. Die Spezifikation beinhaltet einen großen Umfang an Standartfunktionen die in Anwendungen zum Einsatz kommen (u.a. Datentypen, Lebenszyklen der Komponenten, Rollenverteilung). Die EJB werden in drei Gruppen unterteilt: • Modules-entity-Beans (Verarbeitung von modularen persistenten Datenobjekten) 7 Leistungsanalyse_WebLogic Java Server Pages (JSP) J2EE Connector Architecture (JCA) Java Message Service (JMS) Java Database Connectivity (JDBC) • Session-Beans (Verarbeitung von zustandsbehaftet oder zustandslosen Objekten) • Message-driven-Beans (Verarbeitung von JMS-Nachrichten) Der WebLogic Server stellt für die Laufzeit von EJB-Objekten einen EJB-Container bereit, dieser verwaltet das Objekt während des gesamten Objektlebenszyklus. Er speichert die verschiedenen Zustände und ist die Schnittstelle zwischen dem Client und dem Server. Der Container stellt die eigentliche Middleware-Komponente dar.[17] JSPs sind für die Erstellung von dynamischen Webseiten geeignet. Der WebLogic Server stellt wie bei den EJB-Objekten einen Container für die Laufzeit von Servlets bereit. Die JSP-Dateien werden vom sogennanten Web-Container automatisch in Java-Servlets umgewandelt.[18] Eine weitere wichtige Schnittstelle sind die Java Connector Module, bzw. die J2EE Connector Architecture. Sie bieten eine API zur Integration von heterogenen Anwendungen an, d.h. zu Fremdsystemen wie z.B. ein SAP-System. Für die JCA stellt der WebLogic Server einen eigenen JCA-Container bereit, beidem andere Restriktionen gelten als bei dem EJB-Container.[19] Der Java Message Service ist eine Programmierschnittstelle für die Verarbeitung von Objektnachrichten. Der WebLogic Server stellt hierfür den JMS-Provider bereit, der für die Verwaltung der Nachrichten in der Warteschlange verantwortlich ist.[20] Die Java Database Connectivity ist eine universelle Schnittstelle für den Verbindungsaufbau und Datentransfer zu Datenbanken. Derzeit werden über 200 Datenbankmanagementsysteme unterstützt. Der WebLogic Server verwaltet die Datenbankverbindungen in dem JDBC-Container.[21] Tabelle 1: Überblick und Beschreibung der Java EE Module Die Tabelle stellt nur einen Teilbereich der Java-EE Module vor, die Komplette Java-EE Spezifikation kann unter folgendem Link nachgelesen werden: http://java.sun.com/javaee/ 6.1.2 Unterstützte Systeme Der WebLogic Server unterstützt in der aktuellen Version 11g (10.3.2) eine vielzahl an Betriebs-, Datenbanken- und Webserver-Systemen. Die folgende Tabelle verschafft einen Überblick:[22] Art Betriebssysteme System HP-UX Linux Solaris Windows Oracle DB Server und Oracle Real Application Cluster 6.1.1 Java EE Plattform Datenbanksysteme 8 Leistungsanalyse_WebLogic IBM DB2 Microsoft SQL Server MySQL Server Sybase u.a. JDBC-kompatible DBMS. Webserver Apache Microsoft Internet Information Services (IIS) Oracle HTTP Server Sun Java System Web Server Tabelle 2: Weblogic Kompatibilitätsmatrix 6.1.3 Entwicklung Wie im Kapitel 5.1.1 beschrieben integriert der WebLogic Server die Java EE Spezifikation. Java-EE ist die Standart-Plattform für die Entwicklung von Multi-Tier-Enterprise-Anwendungen in der Programmiersprache Java. Der Oracle stellt zu dem WebLogic Server den kostenlosen JDeveloper als integrierte Java-Entwicklungsumgebung bereit[23]. Dieser beinhaltet auch das Oracle Application Development Framework (ADF), das ein komplettes Java-Framework für die kommerzielle Entwicklung von Enterprise Applications bereit hält. Durch das ADF können Funktionen schnell erzeugt werden, die sonst zu einem hohen Entwicklungsaufwand führen würden. Es unterstützt somit das Rapid Application Development (RAD). Des Weiteren beinhaltet der JDeveloper folgende Werkzeuge: • Quellcodeeditor mit Quelltextformatierungsfunktion • Compiler bzw. Interpreter • Linker • Debugger • Tools für den Entwurf und das Design von objektorientierten Anwendungen (basierend auf UML) • Tools für die Programmcodeoptimerung • Werkzeuge für die Inbetriebnahme (Deployment) Somit stellt der JDeveloper eine vollständige Entwicklungsumgebung zur Verfügung. Wem der JDeveloper nicht genügt kann zu der ausgereiften Open-Source-Entwicklungsumgebung Eclipse greifen. Auch hierfür bietet der WebLogic Server ein kostenloses Plug-In-Set mit dem Namen "Oracle Enterprise Pack for Eclipse (OEPE)" an. Das Set besteht aus zertifizierten Werkzeugen und Funktionen spezialisiert für die Entwicklung für Java-Anwendungen, die später auf einem WebLogic Server laufen sollen. Für die reine Entwicklung stellt Oracle eine kostenlose Entwicklungsversion von dem WebLogic Server bereit, optional können der JDeveloper und die Oracle Enterprise Komponenten für Eclipse installiert werden. Die WebLogic Entwicklungsversion kann unter folgendem Link heruntergeladen werden: http://www.oracle.com/technology/software/products/middleware/index.html 6.1.2 Unterstützte Systeme 9 Leistungsanalyse_WebLogic 6.1.4 Virtualisierung Applikationsserver sind das Hauptziel der Virtualisierung. In einer Forrester Umfrage haben sich 197 Verantwortliche des Enterprise-Bereichs aus Nordamerika und Europa dafür ausgesprochen, in den nächsten 12 Monaten auf Virtualisierung bei x86 Servern umzusteigen. In der Umfrage machte das 71% aus.[24] WebLogic unterstützt Virtualisierung mit einer eigenen WebLogic Server Virtual Edition (WLS VE). Die WLS VE benötigt kein Betriebssystem sondern nur einen Hypervisor (VMware ESX). Durch LiquidVM (LVM) hat die WLS VE direkt die benötigten Tools. Eine eigene JVM ist nicht nötigt, sie ist Teil der LVM. Abbildung 3: Überblick WebLogic Virtual Edition 6.2 Administration Die System-Administration eines Applikationsservers umfasst Aufgaben wie das Erstellen und Verwalten von Server-Umgebungen (Domains), die Bereitstellung von Anwendungen, Migration von Anwendung, Überwachung und Konfiguration der Server-Umgebungen, und die Diagnose und Behebung von Problemen. Der WebLogic Server bietet viele Werkzeuge für Systemadministratoren, die dabei helfen diese Aufgaben zu bewältigen. Im Folgenden wird auf einige Tools näher eingegangen. 6.2.1 Verwaltungsfreundlichkeit Häufig verwalten Administratoren mehr als nur ein System. Gerade für komplexe Systeme ist die Verwaltungsfreundlichkeit wichtig, um Konfigurationen, Updates und Applikationsverwaltung erfolgreich durchführen zu können. Dafür bietet der WebLogic Server eine webbasierte grafische Administrationskonsole an (WebLogic Administration Console). Mit der WebLogic 6.1.4 Virtualisierung 10 Leistungsanalyse_WebLogic Administration Console lassen sich mehrere WebLogic Umgebungen (WebLogic-Domains) zentral verwalten. Eine WebLogic-Domain ist eine logische Gruppe für die Verwaltung von ein oder mehrere Weblogic-Server-Instanzen, die auch als Cluster für eine Hoch Verfügbarkeit ausgelegt werden können. Bei mehreren Weblogic Instanzen bzw. Umgebungen wird die Administration Console meistens auf einem eigenen Administrations-Server installiert, der als zentraler Verwaltungs-Server konfiguriert wird. Die Weblogic-Instanzen die unter der Ophut des Verwaltungsserver stehen werden als Managed-Server bezeichnet. Sie besitzen keine eigene Administrations-Konsole. Durch das Aufsetzen eines zentralen Verwaltungsservers sind keine weiteren Aktivitäten auf den einzelnen WebLogic-Instanzen mehr nötig. Aktivitäten wie das Einspielen von neuen Softwarepaketen (Deployments) können parallel auf allen Systemen durchgeführt werden. Dies spart eine Menge an Zeit und Verwaltungskosten.[25] Die Administrations-Konsole stellt u.a. folgende Dienste bereit: • Konfigurieren, starten und stoppen von WebLogic-Server-Instanzen • Konfigurieren der WebLogic Server-Dienste, wie z.B. Java Database Connectivity (JDBC) und Java Messaging Service (JMS) • Konfigurieren der Sicherheit, einschließlich der Verwaltung von Benutzern, Gruppen, Rechten und Rollen • Konfigurieren und Bereitstellen der Middleware-Anwendungen • Planung und Überwachung der Server-Ressourcen. • Überwachen der Applikationen und der Bereitstellung (Performence) • Anzeige der Server- und Domain-Log-Dateien (Diagnosetools) • Planen und durchführen von Deployments 6.2.2 Migration Der Begriff Migration kann man bei einem WebLogic Server in zwei verschiedene Bereiche aufteilen, zum einen kann man von der Migration von Anwendungen sprechen, die von einem bestehenden Fremdsystem auf eine WebLogic Instanz migriert werden soll. Oder man spricht von der Migration von Services die auf Weblogic-Instanzen laufen und in einem Fehlerfall auf einer neuen WebLogic Instanz mit all ihren Funktionen migriert werden. Die Applikationsmigration kann durch die große Anzahl an unterstützten Betriebssystemen (vgl. Unterstützte Systeme) und Datenbankmanagementsystemen, sowie dem Einsatz der betriebsunabhängigen Programmiersprache Java ohne weites auf einen WebLogic Server passieren. Für Applikationen die in anderen Programmiersprachen als Java entwickelt sind, gibt es professionelle Tools von Drittanbietern, die es den Programmierern erlauben den Code von einer Programmiersprache in die Andere umzuwandeln. Allerdings bleibt es häuftig nicht erspart den gesamten Anwendungsumfang danach genauestens zu testen. In einigen Fällen ist die Neuentwicklung von Teilfunktionen erforderlich. Für die Migration von Services die auf laufenden Weblogic Instanzen laufen, und auf andere WebLogic Instanzen migriert werden sollen, bietet der WebLogic Server eine automatische Service Migration an. Um das Verständnis dieser Funktion zu verstehen muss man zwischen Singelton-Services und Clustered-Services unterscheiden. Singleton-Services sind Funktionen oder Anwendungen, die nur auf einem Knoten in einem Cluster zur Verfügung stehen. Währenddessen Clustered-Services auf allen Cluster-Knoten ihre Arbeit verrichten. Manche Servcies können aus "Quality of Service" (QoS) Gründen nicht auf mehreren Knoten gleichzeitig laufen, da dies zum Beispiel zu Dateninkonsistenz oder Peformencebeeinträchrtigungen führt.[26] 6.2.1 Verwaltungsfreundlichkeit 11 Leistungsanalyse_WebLogic Ein Beispiel für einen Singleton-Service ist der Java Messaging Service (JMS), der für das Senden und Emfangen von Nachrichten von und zum Client verantwortlich ist. Es ist öffensichtlich das zum Beispiel Änderungen in einem Datenbankeintrag oder im Dateisystem nur von einem Prozess aus durchgeführt werden können. Jedoch beeinträchtigt ein Singleton-Service im Fehlerfall die Verfügbarkeit des gesamten Services. Die WebLogic Instanz mit dem Singleton-Service stellt also einen "Single-Point-of-Failure" dar. D.h. sobald die Instanz wegfällt hat das Auswirkungen auf den gesamten Service.[27] Um dieses Problem zu beheben, bietet der WebLogic Server eine Lösung namens "Automatic Service Migration"[28]. Die Automatische Service Migration im Weblogic ist ein Prozess der bei einem Ausfall einer Weblogic Instanz bestimmte Services ("Service Migration") oder die gesamte Instanz ("Whole Server Migration") auf eine andere physikalische WebLogic-Instanz automatisch überträgt[29]. 6.2.3 Monitoring und Diagnosetools Die Überwachung eines Systems im produktiven Betrieb ist wichtig für das Garantieren von Erreichbarkeit und Leistung. Fehler oder Resourcenengpässe können durch geeignete Tools automatisch im Vorfeld oder beim Eintreten einer Störung erkannt werden. Moderne Monitoringtools überwachen ein System permanent und geben automatisch durch ein gekoppeltes Ticketsystem dem Administrator Auskunft durch eine erste Fehleranalyse. Es können verschiedene Kategorien wie Performence und Verfügbarkeit, sowie verschiedene Prioritäten festgelegt werden. Wenn z.B. eine von 10 Transaktionen fehlschlägt sollte dies eine andere Priorität haben, als wenn 9 von 10 fehlschlagen. Die Priorisierung gibt dem Administrator Auskunft über die Dringlichkeit der Störungsbehebung. Meist sind diese durch sogenannte Service Level Agreements (SLA) vertraglich geregelt. Des Weiteren kann unterscheiden werden ob ein Netzwerk-, Hardware-, Betriebssystem- oder Anwendungsspezifisches Problem vorliegt. Denn für die genannten Kategorien sind auch oftmals verschiedene Administratoren zuständig. Die Überwachung von Systemen wird in den meisten Fällen hierarchisch eingerichtet: 1. Überwachung der IT-Infrastruktur (Zutrittsüberwachung zum Rechenzentrum/Serverräumen, Firewalls, Netzwerküberüberwachung, Klima- & Stromüberwachung) 2. Überwachung der Hardware (CPU-Temperatur, Festplatten, Arbeitsspeicher etc.) 3. Überwachung des Betriebssystems (Allgemeine Überwachung, Antiviren-Software) 4. Überwachung der Anwendungen und Services (z.B. WebLogic Server) Für die letzte Ebene stellt der WebLogic Server von Haus aus Monitoring und Diagnosetools bereit, die hier kurz vorgestellt werden: • Benutzung der WebLogic Administration Console Die Administrationskonsole bietet ein einfaches Tool um die Verfügbarkeit und Leistung des WebLogic zu kontrollieren. Hierbei können alle WebLogic Server von einer WebLogic Domain beobachtet werden. Es werden alle wichtigen Leistungsparameter wie u.a. CPU- und Memoryauslastung, sowie Anwortzeiten des WebLogic-Servers dargestellt. • Benutzung des Oracle Enterprise Manager 6.2.2 Migration 12 Leistungsanalyse_WebLogic Der Oracle Enterprise Manger[30] ist ein ausgereiftes Tool, das es erlaubt alle Produkte die unter der Oracle Fusion Middleware Produktgruppe zu finden sind zentral zu administrieren und organisieren. Er beinhaltet alle Funktionen der Weblogic Administration Console, und macht Sie für die Administratoren überflüssig. Durch das Erweiterungspaket "Oracle Enterprise Manager Diagnostics Pack for Oracle Middleware", das ab der Oracle WebLogic Enterprise Edition im Produktumfang enthalten ist, wird der Enterprise Manager durch umfangreiche und professionelle Diagnose und Monitoring Tools spezifisch für den WebLogic erweitert.[31] • Benutzung der WebLogic Logging Services Eine weitere Art für die Diagnose von Problemen ist das Auswerten von Log- und Protokoll-Dateien. Der WebLogic Logging Service erlaubt das Einrichten von verschiedenen Logging-Arten auf den unterschiedlichen WebLogic-Ebenen. Es kann eingestellt werden welches Modull protokolliert werden soll und in welchem Detailgrad (Loglevel) die Protokollierung stattfinden soll. Ein hohes Logging-Level erzeugt eine hohe I/O-und-CPU-Last, die zu schlechteren Antwortzeiten der Applikation führen kann. Ein hohes Loglevel sollte deshalb nur im Fehlerfall aktiviert werden. Die Protokollierung von Zugriffen sollte aus Sicherheitsgründen generell aktiviert sein, dies kann auch von gesetzlichen Bestimmungen abhängen. Deshalb gilt: So wenig wie möglich, so viel wie nötig. [32] 6.2.4 Backup & Recovery Für jeden professionellen betriebenen Service sollte es eine Backup und Recovery Strategie geben. Die besagt das in regelmäßigen Abständen Sicherungen von den Systemen gefahren werden. Für den WebLogic Server gibt es keine allgemeingültige Backup- und Recovery Strategie. Die Sicherung kann sowohl offline als auch online erstellt werden. Bei einer Offline-Sicherung müssen die Dienste gestopt werden, damit die Dateien wärend der Sicherung nicht verändert werden können. Desweiteren kann die Sicherung im Full- oder Incrementell-Backup-Mode stattfinden. Bei einem Full-Backup eine komplette Sicherung erstellt. In der Regel wird nach einer Erstinstallation eines Systems ein Full-Backup gefahren und danach auf den Incrementell-Backup-Mode umgestellt. Durch die Umstellung verringert sich die Sicherungszeit erheblich, da eine inkrementelle Sicherung nur den Datenbestand sichert, der sich seit dem Zeitpunkt der letzten Sicherung verändert hat. Der Nachteil an diesem Verfahren ist, dass die volle Sicherung und alle inkrementellen Sicherungen für eine Systemwiederherstellung (Recovery) vorhanden sein müssen. Aus Kosten- und Zeitgründen bei der Wiederherstellung sollten deshalb in regelmäßigen Abständen volle Sicherungen durchgeführt werden. Generell sollte man vor dem Einspielen einer neuen Version oder Softwarekomponente ein Full-Backup durchführen. Bei dem WebLogic Server reicht ein Backup auf Betriebssystem- und Dateisystemebene. Im Folgenden werden einige Backup Senarios vorgestellt[33]: • Backup nach der Installation und Konfiguration einer Weblogic Server Domain Beschreibung: Sicherung von allen statischen Dateien die im Weblogic Home-Verzeichnis liegen. Art: Offline Sicherung im Full-Backup-Mode • Regelmäßiges Backup Beschreibung: Sicherung von allen laufzeitbezogenen Verzeichnissen. Art: Online Sicherung im Incrementell-Backup-Mode • Vor und nach Änderungen einer Konfiguration oder eines Deployments Beschreibung: Sicherung von allen statischen und laufzeitbezogenen Dateien. 6.2.3 Monitoring und Diagnosetools 13 Leistungsanalyse_WebLogic Art: Online Sicherung im Full-Backup-Mode • Vor und nach Patch- & Servicepack Installationen Beschreibung: Sicherung des gesamten Servers. Art: Offline Sicherung im Full-Backup-Mode Weitere Backup und Recovery Senarien für den WebLogic Server sind unter folgendem Link zu finden: http://www.oracle.com/technology/deploy/availability/pdf/maa_wp_wls_br_scenarios.pdf 6.3 Hochverfügbarkeit & Skalierbarkeit Eine der grundlegenden Voraussetzungen um ein System zuverlässig betreiben zu können ist Verfügbarkeit. Hochverfügbarkeit steht für Sicherstellung der Geschäftsabläufe durch ein weitestgehend reibungsloses Funktionieren der IT-Infrastruktur. Je besser ein Unternehmen auf einen gravierenden Systemausfall vorbereitet ist, desto geringer ist die Gefahr auf schwerwiegende Folgen. Der unterbrechungsfreie Geschäftsablauf ist für Unternehmen heute ein entscheidender Wettbewerbsfaktor. Dabei gibt es weit mehr Ursachen für einen Ausfall als die häufig genannten Viren und Würmer. Eine Rolle spielen auch Hardware-Fehler, unausgereifte Software und menschliches Versagen. Stromausfälle und Brände, Diebstahl, Sabotage, Stürme und Hochwasser stellen ebenfalls ein Risiko für Rechnersysteme und Daten dar. Verfügbarkeit und Hochverfügbarkeit, Fehlertoleranz und SPOFs (Single Point of Failure) sind Begriffe, die im Umfeld hochverfügbarer Systeme eine grundlegende Rolle spielen. Stehen die für den Geschäftsprozess notwendigen Daten und Funktionen nicht mehr zur Verfügung funktioniert die gesamte Prozessabwicklung nicht mehr. Je höher der Grad an Technisierung eines Prozesses ist, desto wichtiger ist daher die Systemverfügbarkeit. Hochverfügbarkeit ist die Fähigkeit eines Systems, trotz Ausfall seiner Komponenten mit einer hohen Wahrscheinlichkeit einen ununterbrochenen Betrieb zu gewährleisten. Neben der Hochverfügbarkeit spielt die Skalierbarkeit eine entscheidene Rolle. Systeme die hochverfügbar laufen sollen müssen auch skalierbar sein. Durch Skalierbarkeit von Systemen wird deren Performance verbessert, da die Last über mehrere physikalische Komponenten verteilt wird. Erst bei schlechter Performance nimmt der Benutzer diese wahr. Je höher die Verfügbarkeit eines Systems sind, desto höher sind auch die Kosten, da u.a. Hardware Komponenten doppelt angeschafft werden müssen. Ziel muss es daher sein, ein System mit gegebenen Anforderungen und gegebenem Budget so Hochverfügbar und Skalierbar wie möglich zu machen. Weblogic unterstützt den Systemverantwortlichen mit unterschiedlichen Features diese Ziele zu erreichen. 6.3.1 Antwortzeiten Die Antwortzeiten von Webanwendungen werden vom Benutzer erst wahrgenommen, sobald diese nicht mehr akzeptabel sind. Es gibt keine Regel für akzeptable Antwortzeiten, sobald diese jedoch die 5 Sekunden übersteigt, wird es vom Benutzer i.d.R. als langsam erachtet. Diese Wahrnehmung ist allerdings sehr subjektiv, da der eine Benutzer nach 2 Sekunden, ein andere Benutzer erst nach 5 Sekunden und ein noch anderer erst nach 10 Sekunden sagt, dass eine Webanwendung langsam ist. Natürlich kann Weblogic nur an seinen eigenen Schnittstellen, zum Webserver, zur Datenbank sowie innerhalb von sich selbst Antwortzeit-optimierende Funktionen bereitstellen. An der Schnittstelle zum Webserver, der sogenannten Benutzerschnittstelle werden 6.2.4 Backup & Recovery 14 Leistungsanalyse_WebLogic unterschiedliche Caching Methoden angeboten. Caching ist eine Zwischenspeicherung von statischen Dateien wie z.B. Grafiken, Stylesheets oder JavaScripte. Hierdurch wird die Performance von lesenden Anfragen erheblich verbessert, da Weblogic diese Dateien nicht aus der Datenbank anfragen muss sondern diese im direkten Zugriff hat. Je nach Konfiguration läd er die Daten aus dem Arbeitsspeicher oder von der Festplatte. Dieser Cache kann vom Systemadministrator konfiguriert werden. Weblogic bietet speziell für Entwickler weitere Cache an, die weder Systemadministrator noch Benutzer verändern können jedoch die gesamte Antwortzeit verbessern. Folgende weitere Caches werden eingesetzt: • Weblogic Portal Framework Caches • WSRP Caches • Content and Ad Caches • User Management Caches • Campaign and Discount Caches An der Schnittstelle zur Datenbank, der sogenannten Datenschnittstelle, wird Connection Pooling eingesetzt. Connection Pooling ist die Weiterverwendung von TCP Sessions zwischen Applikations- und Datenbankserver. Der Verbindungsaufbau zur Datenbank ist für den Weblogic sehr resourcenintensiv, daher sollte die aufgebaute Verbindung nach einer fertigen Abfrage nicht sofort geschlossen sondern für die nachfolgenden Abfragen wiederverwendet werden.[34] Zusätzlich zum Connection Pooling gibt es Multi Pooling, wodurch mehrer Connection Pools zu einem Multipool zusammengefasst werden. Hierdurch wird die Möglichkeit gegeben, einen Oracle Real Application Cluster mit größtmöglicher Performance anzusprechen. Zusätzlich zu den Optimierungsfeatures an den Schnittstellen bietet der Weblogic Möglichkeiten, die Antwortzeit auch innerhalb des Weblogic für die Entwickler zu verbessern. Thread Pooling wird angeboten, damit leichtgewichtige Prozesse in Pools abgelegt werden und somit gesteuert und kontrolliert ausgeführt werden können. Speziell für die Verarbeiten der Java Applikationen wird Remote Method Invocation (kurz RMI) angeboten.[35] Es ist die Standardmethode in Java um Anwendungen durch verteilte, objekt-orientierte Programmierung ermöglichen auf Ressourcen von mehreren Java Virtual Machines zuzugreifen und zu verwenden. Dadurch werden Anwendungen wesentlich performanter integriert.[36] Die Basis zwischen Anwendungsserver und Betriebssystem ist die Java Virtual Machine. JRockit, Standard JVM unter Weblogic, liefert weitere Features (JRockit Mission Control genannt) zur Performance-optimierung. JRA (JRockit Runtime Analyzer) bietet dem Systemadministrator Zeitmessungen in der JVM selbst und zeigt diese in der Management Konsole. Dadurch hat der Systemadministrator einen regelmäßigen Überblick über die Performance seines Systems und kann so direkt Konfigurationsänderungen vornehmen.[37] Zur Verbesserung der Antwortzeiten zählen auch die Funktionalitäten Application Load Balancing und HTTP Session Replication die im nächsten Kapitel näher erläutert werden. Durch die Verteilte Last auf mehrere Managed Server und somit ggf. auch auf unterschiedliche phyisikalische Server kann Performance im Anwendungsserverbereich signifikant verbessert werden. 6.3.2 Ausfallsicherheit Hohe Verfügbarkeit von Webanwendungen kommt durch die Ausfallsicherheit. Es wird eine durchgängige redundante und zuverlässige Architektur aufgebaut um sich vor einem Service-Ausfall zu schützen. Eine Webanwendung selbst muss eine solche Architektur 6.3.1 Antwortzeiten 15 Leistungsanalyse_WebLogic unterstützen. Dazu bietet der Weblogic Applikationsserver verschiedene Standardfunktionen an eine Webanwendung redundant zu betreiben. Der Grad der Verfügbarkeit, die Performance der Anwendung sowie das vorhandene Budget spielen eine große Rolle bei der Entscheidung welche der folgenden Funktionalität eingesetzt wird: • Application Loadbalancing Der Weblogic besteht aus verschiedenen Managed Servern die auf unterschiedlichen oder gleichen Servern betrieben werden. Jeder Managed Server stellt einen eigenen Weblogic Applikationsserver dar. Application Loadbalancing ist eine einfache Lastverteilung zwischen diesen Managed Servern. Durch Loadbalancing stellt man eine höhere Verfügbarkeit sicher als bei einer nicht-redundanten Umgebung da der Loadbalancer in der Lage ist, zu überwachen ob ein Managed Server läuft oder nicht. Falls dieser nicht läuft, wird der LoadBalancer nur den anderen Managed Server ansprechen. Die Performance wird durch dieses Setup erheblich verbessert, da nicht ein Managed Server alle Anfragen verarbeiten muss sondern diese auf mehrere verteilt werden. Der Weblogic stellt sicher, dass Datenbankanfragen der Managed Server kontrolliert abgesetzt werden. Dadurch werden keine doppelten doppelten Schreibzugriffe abgesetzt und die Applikation brauch dieses nicht selbst überwachen. Um eine höchstmögliche Verfügbarkeit herzustellen eigenet sich diese Funktionalität alleine nicht, da bei einem Ausfall von einem Managed Server die bestehenden Sessions verloren gehen. Für diese Lösung sind Weblogic Standard Lizenzen notwendig.[38] • Automatic Fail-over Wie beim Application Load Balancing besteht der Weblogic aus verschiedenen Managed Servern. Hierbei macht es sowohl aus technischer als auch aus logischer Sicht keinen Sinn mehrere Managed Server auf einen physikalischen Server zu betreiben. Automatic Fail-over bedeutet, dass sobald ein Managed Server ausfällt, ein zweiter die Aufgaben des ersten übernimmt. In diesem Fall gibt es eine sehr hohe Ausfallsicherheit, da bestehende Sessions nicht verloren gehen. Die Performance bei dieser Lösung ist genauso wie bei einem einfachen setup. Für diese Lösung sind Weblogic Cluster Lizenzen notwending.[39] • HTTP Session Replication HTTP Session Replication ist eine Kombination aus den Vorteilen vom Application Loadbalacing und Automatic Fail-over. Die zusammengefassten Vorteile sind gleichzeitig die Funktionen der HTTP Session Replication. Eine Lastverteilung wird durch load balancing sichergestellt. Beim Ausfall eines Managed Servers gehen die bestehenden Sessions nicht verloren sondern bleiben wie beim Automatic Fail-over bestehen, da durch die HTTP Session Replication sichergestellt ist, dass HTTP Sessions auf jedem Managed Server vorhanden sind aber nicht abgearbeitet werden. Für diese Lösung sind Weblogic Cluster Lizenzen notwendig.[40] Application Loadbalancing 6.3.2 Ausfallsicherheit Automatic Fail-over HTTP Session Replication 16 Leistungsanalyse_WebLogic Abbildung 4: Application Load Balancing Abbildung 5: Automatic Failover Abbildung 6: HTTP Session Replication Alle oben genannten Funktionen bieten Ausfallsicherheit und hohe Verfügbarkeit. Jede hat ihre eigenen Vor- und Nachteile so dass es nicht die beste Funktion gibt. Es müssen das vorhandene Budget mit den Anforderungen an die Webanwendung gegeneinander abgewogen werden um zu entscheiden, welches die beste Lösung ist. 6.4 Sicherheit Daten sind ein wesentlicher Wert für Unternehmen und müssen daher angemessen geschützt werden. Die meisten Daten werden heutzutage über das Internet transportiert, daher ist eine zuverlässig funktionierende Datenverarbeitung ebenso wie die zugehörige Technik für die Aufrechterhaltung des Betriebes unerlässlich. Unzureichend geschützte Daten stellen ein häufig unterschätztes Risiko dar, das für manche Unternehmen existenz-bedrohend sein kann. Abbildung 7: Weblogic Security Framework[41] 6.4 Sicherheit 17 Leistungsanalyse_WebLogic Mängel in der Datensicherheit können zu erheblichen Problemen führen. Die potenziellen Schäden lassen sich in folgende Kategorien einordnen: ◊ Verlust der Integrität: Verfälschte Daten können beispielsweise zu falschen Buchungen, Lieferungen oder fehlerhaften Produkten führen. ◊ Verlust der Vertraulichkeit: Wenn Unternehmen vertrauliche Daten, beispielsweise aus Forschungsbüros, an die Öffentlichkeit oder die Konkurrenz verlieren bedeutet dies nicht nur einen erheblichen Image schaden sondern in den meisten Fällen auch einen finanziellen Verlust. ◊ Verlust der Verfügbarkeit: Der Verlust der Verfügbarkeit von Daten fällt meistens dadurch auf, dass Aufgaben nicht fortgeführt und dadurch beispielsweise Produktionsprozesse nicht abgeschlossen werden können.[42] Weblogic bietet ein zentrales Security Framework an, das dem Systementwickler hilft die oben genannten Aspekte der Sicherheit in seiner Anwendung zu berücksichtigen. 6.4.1 Unterstützte Protokolle & Zertifikate Verschlüsselte Übertragungsprotokolle für die Kommunikation zwischen Benutzer und Anwendungsserver schützt vor Integritätsverlust sowie Vertraulichkeitsverlust. Weblogic unterstützt die Protokolle HTTPS, SSL v3 sowie den Zertifikate-Standard X.509 v3.[43] HTTP über SSL verwendet in der Regel SSL v3 und TLS v1, Weblogic unterstützt beides. HTTPS sorgt für die Verschlüsselung des Übertragungswegs der zur Kommunikation zwischen Benutzer und Anwendungsserver dient. Durch Verwendung von SSL prüft der Client des Benutzers anhand eines Serverzertifikates (welches dem X.509 v3 Standard unterliegt) ob der Server der ist, für den er sich ausgibt. Weblogic unterstützt auch die Verwendung von Client Zertifikaten, die im X.509 Standard sind. Es funktioniert ähnlich wie bei Serverzertifikaten, nur dass in diesem Fall der Anwendungsserver überprüft, ob der Client derjenige ist, für den er sich ausgibt. Durch obiges Protokoll und Zertifikat unterstützt Weblogic den Systemverantwortlichen dabei seinen Dienst vor Integritäts- und Vertraulichkeitsverlust zu schützen. 6.4.2 Authentifizierung, Authorisierung, Auditierung Authentifizierung ist ein Mechanismus bei dem sich Benutzer an einem System anmelden mit z.B. Benutzername und Passwort und somit die Frage beantworten, wer sie sind.[44] Nach erfolgreicher Anmeldung bekommt dieser Benutzer einen Prinzipal zugewiesen, als der er jetzt auf dem System agiert. Authorisierung ist ein Mechanismus bei dem Interactionen zwischen dem Prinzipal und den Weblogic Ressourcen kontrolliert und nur entsprechend der Berechtigungen vom Benutzer erlaubt werden. Hierbei wird die Frage beantwortet, "Was darfst du machen?". [45] Auditierung ist ein Mechanismus bei dem Informationen über Betriebssystemanfragen und deren Antworten gesammelt, gespeichert und für die Nachweisbarkeit verteilt werden. Somit ist sichergestellt, dass alle notwendigen Aufgaben die der Weblogic durchführt protokoliert sind.[46] 6.4.1 Unterstützte Protokolle & Zertifikate 18 Leistungsanalyse_WebLogic Authentifizierung sowie auch Authorisierung dienen dem Schuz vor Integritäts- und Vertraulichkeitsverlust. Auditierung selbst dient nicht direkt dem Schutz, jedoch liefert sie die nachvollziehbaren Logging-Informationen um bei gegebenenfalls auftretenden Schäden eine Nachverfolgung zu gewährleisten. Weblogic besitzt ein auf Modulen aufbauendes Sicherheitskonzept, welches in verschiedener Art und Weise Authentifizierung, Authorisierung und Auditierung unterstützt. Abbildung 8: Authentifizierung mit JAAS Klassen und dem Weblogic Security Framework[47] Das Authentifizierungskonzept besteht aus Benutzern, Gruppen, Prinzipalen, Login Modulen und JAAS. Weblogic Benutzer sind ähnlich zum Betriebssystemusern. Weblogic Gruppen sind Sammlungen von mehreren Benutzern, die z.B. nach Abteilung Klassifiziert werden. Weblogic Prinzipale werden Benutzern oder Gruppen nach erfolgreicher Authentifizierung gegeben. Per default gibt es verschiedene Security Rollen, die dann je nach Anforderungen den Prinzipalen zugewiesen werden. Loginmodule sind im Grunde die Basis für das Benutzer und Gruppen Konzept, da die ganze Authentifizierung auf Loginmodulen basiert. Details zu diesen Loginmodulen sind nicht Teil dieser Fallstudie, da die Beschreibung zu sehr ins Detail geht. Weblogic unterstützt den Java eigenen Java Authentication and Authorization Server (JAAS) in version 1.0 Full. JAAS ist eine API die Authentifizierungs und Authorizierungs Dienste für Java-Programme (unabhängig ob Anwendung, Applet, Bean oder Servlet) bereitstellt. Die Anmeldung innerhalb der Programme wird durch JAAS von neuen oder aktualisierten 6.4.2 Authentifizierung, Authorisierung, Auditierung 19 Leistungsanalyse_WebLogic Authentifizierungstechnologien getrennt, so dass diese unabhängig vom Programm erneuert werden können. Authentifizierung dient zur verlässlichen und sicheren Bestimmung welcher Benutzer aktuell Quellcode auszuführen. Authorizierung dient zur Sicherstellung, dass Benutzer die richtigen Berechtigung zur Ausführung bestimmter Aktionen.[48] Abbildung 8 zeigt eine Authentifizierung mit JAAS Klassen und dem Weblogic Security Framework. Die einzelnen Schritte zur Anmeldung laufen wie folgt ab: • 1. Die Anwendung erhält Authentifizierungsinformationen (z.B. username, password) vom Benutzer oder Systemprozess • 2. Die Anwendung erstellt einen CallbackHandler (Rückruf-Handler), der die Authentifizierungsinformationen beinhaltet ◊ 2a. Die Anwendung gibt den CallbackHandler an das LoginModul durch die Nutzung der Login Context Klasse ◊ 2b. Das LoginModul gibt den CallbackHandler mit allen informationen an den Weblogic Server RMI Container • 3. Der Weblogic Server RMI container ruft das Weblogic Security Framework auf und gibt den client-seitigen CallbackHandler weiter • 4. Für jeden konfigurierten Authentifizierungsprovider erstellt das Weblogic Security Framework einen eigenen CallbackHandler. Dieser CallbackHandler ist server-seitig und hat nichts mit dem client-seitigen CallbackHandler zu tun. • 5. Das Weblogic Security Framework ruft das jeweils zugehörige LoginModul der Authentifizierungsprovider auf und versucht die Anmeldung mit den gelieferten Informationen vorzunehmen. • 6. Ist die Authentifizierung erfolgreich passiert folgendes: ◊ 6a. Prinzipale (Benutzer und Gruppen) werden vom Principal Validation Provider zugewiesen ◊ 6b. Das zum jeweiligen Prinzipal gehörende LoginModule gibt diesem ein Subject (Betreff) um die richtigen Benutzer und Gruppen zuzuweisen ◊ 6c. Das Weblogic Security Framework gibt den Authentifizierungsstatus an die Client-Anwendung und diese fragt das entsprechend authentifizierte Subject vom Weblogic Security Framework ab. Weblogics Konzept der Authorizierung besteht aus Zugriffsentscheidungen, JACC und Weblogic Ressourcen. Zugriffsentscheidungen, beim Weblogic Access Decisions genannt, sind die Basis für das Beantworten der Frage, Welchen Zugriff hat Benutzer X. Details dazu sind nicht Teil dieser Fallstudie. Neben JAAS, was sowohl ein Authentifizierung als auch ein Authorizierungsprovider ist, gibt es Java Authorization Contract for Container (JACC) als Teil der Java Enterprise Edition. JACC weitet das Berechtigungsbasierte Security Model auf EJBs und Servlets aus.[49]. Weblogic verwendet sein eigenes Security Framework nur dann für EJBs und Servlets wenn JACC nicht konfiguriert ist. Weblogic Ressourcen sind strukturierte Objekte die abgegrenzte Weblogic Einheiten darstellen. Dadurch dass sie nur "virtuell" zu betrachten sind und weder direkt auf dem System liegen noch direkt dem Prinzipal zugewiesen sind, können sie die abgegrenzten Einheiten vor unberechtigtem Zugriff schützen. Auditing im Weblogic ist das Logging von detailierten Prozessabläufen. Jeden nur erdenklichen Prozessablauf zu dokumentieren würde einem Debugmodus gleich kommen, was unnötig viele Logging Informationen beinhalten würden. Aus diesem Grund hat Weblogic sog. Auditkanäle entwickelt, die bestimmen in welchen Kanal die Logging Informationen gehören. Entweder sie werden für das entsprechend Konfigurierte Loglevel benötigt oder nicht. Relevante Sicherheitsinformationen werden bei jedem Loglevel, mit Ausnahme von "none" mitgeschrieben. 6.4.2 Authentifizierung, Authorisierung, Auditierung 20 Leistungsanalyse_WebLogic Zur Benutzer-, Gruppen- und Rollenverwaltung unterstützt Weblogic LDAP basierte Identitäten. LDAP Systeme können sowohl auf dem gleichen Server erstellt werden oder auch auf externen Servern liegen. Wenn kein LDAP konfiguriert ist, werden die Daten in Konfigurationsdateien abgelegt. Dadurch ist dem Systemverantwortlichen die Wahl gelassen, wie er sein Benutzer und Rollenkonzept aufbaut, entweder Leistungsstark für große Datenmengen im LDAP oder für geringe Datenmengen in Konfigurationsdateien. Weblogic unterstützt mit den hier aufgelisteten Funktionen den Schutz vor Integritäts- und Vertraulichkeitsverlust. Zusätzlich dazu werden entsprechende Ereignisse in Logfiles dokumentiert. Sicherheit wird bei Weblogic groß geschrieben. 6.5 Wirtschaftlichkeit Die grundlegende Formel zur Berechnung der Wirtschaftlichkeit ist Ertrag / Aufwand. Sobald das Ergebnis größer 1 ist, sagt man, die ausgewählte Lösung ist Wirtschaftlich da der Ertrag größer ist als der Aufwand. Wenn das Ergebnis gleich 1 ist, so ist die Lösung Kostendeckend. Ist das Ergebnis kleiner 1 so ist die Lösung aus wirtschaftlicher Sicht nicht sinnvoll. Unternehmen stecken viel Geld in Marketing und Forschung was aus einfacher Sicht nur Kosten verursacht. Die dadurch erzielten Ergebnisse können jedoch sehr wirtschaftlich sein, so dass sich eine Investition trotzdem lohn. Ist eine Lösung nur kostendeckend und ohne erwarteten Gewinn so wird diese i.d.R. nicht eingesetzt. Trotzdem investieren Unternehmen aus strategischer Sicht in solche Lösungen. Eine Berechnung der Wirtschaftlichkeit von Weblogic kann wie folgt vorgegangen werden: ◊ Definition der Anforderungen an eine Lösung ◊ Budgetüberprüfung ◊ Weblogic Knowledge bei den Systemverantwortlichen und bei den Deployment- und Betriebsteams ◊ Was kostet eine mögliche Migration von Software auf den Weblogic? ◊ Wird nur Weblogic unterstützt oder auch andere Applikationsserver? ◊ Risikoanalyse ⋅ Was passiert bei Ausfall der Lösung? ⋅ Was passiert wenn die Lösung gar nicht implementiert wird? ⋅ Systemausfälle sollten in der Berechnung mit Faktoren und/oder Kosten belegt werden Das Ergebnis kann je nach Beantwortung der obigen Punkte sehr unterschiedlich sein. Aus diesem Grund zwei einfache Beispiele, die diese Unterschiede darstellen: Beispiel 1: ◊ Systemverfügbarkeitsanforderung 95% ◊ Risiko bei Ausfall ist gering ◊ Budget gerade vorhanden - wird mit dem Ertrag nach 3 Jahren gedeckt (Betriebskosten ausgenommen) ◊ Weblogic Knowledge vorhanden ◊ Software wird u.a. von Weblogic unterstützt Die Wirtschaftlichkeit für dieses Beispiel ist relativ einfach zu berechnen. Nach 3 Jahren ist der Ertrag 6.5 Wirtschaftlichkeit 21 Leistungsanalyse_WebLogic gleich den ursprünglichen Projektkosten, laufende Betriebskosten sind bisher noch nicht gedeckt. Da diese Kosten unbekannt sind ist die Annahme, Kostendeckung nach frühestens 5 Jahren. In diese Zahlen ist noch kein Geldwertverlust eingerechnet. Eine Standard-Wirtschaftlichkeitsanalyse wird für 5 Jahre gemacht.(Referenz Suchen!!!!) Dieses Beispiel ist wie beschrieben unwirtschaftlich. Beispiel 2: ◊ Systemverfügbarkeitsanforderung 99,9% ◊ Risiko bei Ausfall ist hoch ◊ Budget gerade vorhanden - wird mit dem Ertrag nach 2 Jahren gedeckt, Betriebskosten werden nach 2,5 Jahren komplett gedeckt, nach 3 Jahren gibt es Gewinn - Tendenz steigend ◊ Weblogic Knowledge vorhanden ◊ Software unterstützt Weblogic Bei diesem Beispiel sind Hochverfügbarkeitsanforderungen sowie hohes Risiko bei Ausfall. Weblogic ist speziell für solche Lösungen geschaffen. Trotz der benötigten Cluster-Lizenzen und der damit resultierenden hohen Kosten (ca. 5x höher als Standard Lizenz) scheint diese Lösung wirtschaftlich zu sein. Nach 3 Jahren gibt es Gewinn und das mit steigender Tendenz. Neben den Anforderungen ist eine Risikoanalyse wichtig, d.h. man definiert verschiedene Risiken mit einem Faktor bzw. mit Kosten. Diese Risiken kann man ebenfalls mit den gegebenen Funktionen vom Weblogic vergleichen und entsprechend daraus errechnen ob der Weblogic wirtschaftlich ist. Die obigen Beispiele sollen darlegen, dass es keine grundsätzliche Antwort auf die Wirtschaftlichkeit vom Weblogic gibt. Es ist komplett abhängig von der Gesamtsituation. Jedes Unternehmen bzw. jeder Systemverantwortliche muss seine eigenen Vor- und Nachteile zusammentragen und basierend darauf die Wirtschaftlichkeitsanalyse machen. 7 Schlussbetrachtung Oracle WebLogic ist ein Applikationsserver der überwiegend im Enterprise Bereich zu finden ist. Durch die Übernahme von BEA konnte Oracle seinen Vorsprung als Marktführer im Middlewarebereich ausgebaut. Durch die zusätzliche Übernahme von Sun Microsystems im April 2009 wird Oracle in Zukunft seine Produktpalette "Oracle Fusion Middleware" weiter ausbauen und Vorreiter im Bereich Enterprise Application Services werden. Oracle hat mit dem Kauf von Sun Microsystems einen weiteren Applikationsserver mit dem Namen "Sun GlassFish" erworben. Dieser stellt aber bei Weitem nicht den Funktionsumfang und die Qualität des WebLogic Servers bereit. Experten sehen den Sun GlassFish zukünftig als günstiges Einstiegsprodukt der Oracle Fusion Middleware Produktfamilie. In diesen Märkten konnte Oracle mit dem WebLogic Server noch nicht dringen.[50] In der Öffentlichkeit bietet Oracle eine geringe Kostentransparenz für den WebLogic. Das ist im Enterprise-Bereich keine Seltenheit, aber benachteiligt dadurch den Weblogic im Vergleich mit der Konkurrenz. Eine weitere Schwäche für kleinere Anwendungen ist der große Funktionsumfang, den man unweigerlich mitkauft, jedoch für einen einfachen Applikationsbetrieb zu komplex ist. Detaillierte Informationen zu den Kosten der Lizenzen erfährt man von dem Oracle Account Management bei Anfrage mit konkreten Projektinformationen. Um die Kosten nicht zu veröffentlichen wurde die Wirtschaftlichkeitsanalyse nur theoretisch vorgenommen. Die analysierten Stärken des WebLogics liegen im professionellen Enterprise Application Services-Betrieb. Ein großer Funktionsumfang für administrative Betriebs- und Entwicklungsarbeiten bilden die Basis für Systemadministratoren und Entwickler. Systemverantworliche können aus verschiedenen Optionen zur 7 Schlussbetrachtung 22 Leistungsanalyse_WebLogic Umsetzung der Hochverfügbarkeit wählen. Dadurch kann die Bearbeitungszeit verkürzt werden, da durch Hochverfügbarkeit unweigerlich auch erhöhte Performance zu erwarten ist. Um die Anwendung möglichst vor Angriffen zu sichern bietet der Weblogic eine große Vielfalt an Sicherheitsfeatures, die auf den Industriestandards basieren. In dieser Fallstudie wurden einige Schwächen und viele Stärken vom Weblogic betrachtet. Systemverantwortliche müssen in Unternehmen für jede Anwendung sowohl technische als auch wirtschaftliche Anforderungen definieren. Auf Basis dieser muss eine Entscheidung für die Lösung entwickelt und getroffen werden. Technische Anforderungen können mit Hilfe dieser Fallstudie für den Weblogic bewertet werden. Bei den wirtschaftlichen Anforderungen liefert sie die theoretische Basis für die Bewertung. Die Zukunft des Oracle Weblogic wird in der Oracle Produktpalette "Oracle Fusion Middleware" liegen. Ob der Applikationsserver dann noch als "Weblogic" verkauft wird ist ungewiss. Durch die Produktpalette wird Oracle seine Position als Marktführer weiter ausbauen. 8 Fußnoten 1. ? vgl. ChannelPartner, passim http://www.channelpartner.de/sonstiges/620123/index.html 2. ? vgl. Adobe, Kaptitel: Auf Datenbanken zugreifen 3. ? vgl. OnJava (2005), Grafik 1 4. ? vgl. SUNJAVA3, Kapitel: The Java Platform 5. ? vgl. SUNJAVA3, Kapitel: The Java Programming Language 6. ? vgl. Oracle 17, "What is the JRockit JVM?" 7. ? vgl. Gartner2, Market Overview 8. ? vgl. Heise (2008), passim 9. ? vgl. SUNJAVA2, passim 10. ? vgl. Gartner2, Abschnitt: Oracle 11. ? vgl. Oracle13, passim 12. ? vgl. Oracle14, passim 13. ? vgl. Oracle15, passim 14. ? vgl. Oracle16, passim 15. ? vgl. Gartner1 (2009), passim 16. ? vgl. SUNJAVA4, Kapitel 1 (Chapter 1 Overview JavaEE) 17. ? vgl. Horn, Torsten (2008), Direktlink (09.11.2009): http://www.torsten-horn.de/techdocs/jee-ejb.htm Kapitel: Einleitung 18. ? vgl. Horn, Torsten (2008), Direktlink (09.11.2009): http://www.torsten-horn.de/techdocs/jsp-grundlagen.htm - Kapitel: Einführung zu dynamischen Webseiten mit JSP (Java Server Pages) 19. ? vgl. Javabeat.net, passim 20. ? vgl. Horn, Torsten (2008), Direktlink (09.11.2009): http://www.torsten-horn.de/techdocs/jee-jms.htm Kapitel: Einleitung 21. ? vgl. SUNJAVA4, Direktlink (14.01.2010): http://java.sun.com/javaee/5/docs/tutorial/doc/bnacj.html 22. ? vgl. Oracle18, Seite 8 23. ? vgl. Oracle19, passim 24. ? vgl. Forrester (2007), passim 25. ? vgl. Oracle 12, passim 26. ? vgl. Oracle 8, Seite 5f. 27. ? vlg. Oracle 8, Seite 7ff. 28. ? vgl. Oracle 8, Seite 3-4 8 Fußnoten 23 Leistungsanalyse_WebLogic 29. ? vlg. Oracle 8, Seite 13 30. ? vgl. Oracle 11, Seite 1-2 31. ? vgl. Oracle 10, Seite 1ff. 32. ? vgl. Oracle 9, passim 33. ? vgl. Oracle7, Seite 9ff. 34. ? vgl. DPUNKT (2002), Kapitel 18.10.3 35. ? vgl. BEA (2007), Seiten 2-5 und 2-6 36. ? vgl. BEA (2002), Seite 136 37. ? vgl. Oracle4, Seite 8 38. ? vgl. Oracle3, Seiten 5.1 und 5.2 39. ? vgl. Oracle3, Seite 6.1ff 40. ? vgl. Oracle5, Kapitel 3.8.1 41. ? vgl. Oracle6, Kapitel 5, Grafik 5-1 42. ? vgl. BSI (2008), Kapitel 1.1 43. ? vgl. http://tools.ietf.org/html/rfc5280 44. ? vgl. Oracle2, Seite 4.1 45. ? vgl. Oracle2, Seite 7.1 46. ? vgl. Oracle2, Seite 10.1 47. ? vgl. Oracle2, Seite 4.9 48. ? vgl. SUNJAVA1, Kapitel: Intoduction 49. ? vgl. http://www.jcp.org/en/jsr/detail?id=115 50. ? vgl. Gartner2, Oracle 9 Quellenverzeichnis Adobe LiveDocs - Dreamweaver Hilfe - Auf Datenbanken zugreifen, veröffentlicht von adobe.com (Link vom http://livedocs.adobe.com/de_DE/Dreamweaver/9.0/help.html?content=WS92895C5A-088A-4988-944C-042 BEA (2002) Joe Zuffoletto: The BEA Weblogic Server Bible, Veröffentlicht von Hungry Minds Inc,U.S., Februar 2002, I BEA (2007) BEA Weblogic Server: Programming Weblogic RMU, veröffentlicht von BEA, März 2007 IT Grundschutz - Basis für Informationssicherheit, https://www.bsi.bund.de/cln_165/ContentBSI/grundschut BSI (2008) (Link vom 09.11.2009) DPUNKT Stefan Middendorp: Programmierhandbuch und Referenz für die Java2 Plattform, Veröffentlicht im DPunkt V (2002) Forrester Enterprise and Enterprise And SMB Hardware Survey, North America And Europe, veröffentlicht von Forres (2007) Gartner1 Gartner: Application Server wachsen in die Wolken, http://www.databasepro.de/Aktuell/News/Gartner-Appl (2009) vom 15.12.2009) Gartner2 Gartner: Magic Quadrant for Enterprise Application Servers, http://www.gartner.com/technology/media-prod (2009) (Link vom 15.12.2009) Heise Oracle kauft BEA Systems im zweiten Anlauf, (2008) http://www.heise.de/newsticker/meldung/Oracle-kauft-BEA-Systems-im-zweiten-Anlauf-Update-179168.htm Horn, Technische Kurzdokumentationen Torsten Horn, veröffentlicht vom Ingenieurbüro Torsten Horn, http://www Torsten vom 09.11.2009) (2008) J2EE Connector Architecture(JCA), An Introduction, veröffentlicht von javabeat.net, Javabeat.net http://www.javabeat.net/articles/22-j2ee-connector-architecturejca-an-introduction-1.html (Link vom 09.11.2 Adobe 9 Quellenverzeichnis 24 Leistungsanalyse_WebLogic OnJava (2005) Oracle1 Oracle2 Oracle3 Oracle4 Oracle5 Oracle6 Oracle7 Oracle8 Oracle9 J2EE Bottlenecks, http://onjava.com/onjava/2005/01/19/j2ee-bottlenecks.html (Link vom 09.11.2009) Weblogic Applikationserver Server-Produkte, http://www.oracle.com/lang/de/appserver/index.html (Link vo Oracle Weblogic Server - Developing Security Providers for Weblogic Server, veröffentlicht von Oracle, Juli Oracle Weblogic Server - Using Clusters, veröffentlicht von Oracle, Juli 2008 Oracle JRockit Mission Control - Overview, veröffentlicht von Oracle, Juni 2008 Oracle Fusion Middleware - High Availability Guide, veröffentlicht von Oracle, Juni 2009 (Link vom 8.1.20 http://download.oracle.com/docs/cd/E12839_01/core.1111/e10106/aa.htm) Understanding Weblogic Security: http://download.oracle.com/docs/cd/E12840_01/wls/docs103/secintro/arc 09.11.2009) Oracle Best Practices For High Availability - Backup and Recovery Scenarios for Oracle WebLogic Server: 1 (Link vom 11.1.2010: http://www.oracle.com/technology/deploy/availability/pdf/maa_wp_wls_br_scenarios. Oracle White Paper - Automatic Service Migration in WebLogic Server, veröffentlicht von Oracle, Juli 2008 http://www.oracle.com/technology/products/weblogic/pdf/weblogic-automatic-service-migration-whitepaper Oracle WebLogic Documentation - Application Logging and WebLogic Logging Services, veröffentlicht von http://download.oracle.com/docs/cd/E13222_01/wls/docs92/i18n/app_logging.html#wp1004524) Oracle Data Sheet - Oracle Enterprise Manager 10g: Diagnostics Pack For Oracle10 Oracle11 Oracle12 Oracle13 Oracle14 Oracle15 Oracle16 Oracle17 Oracle18 Oracle19 SUNJAVA1 SUNJAVA2 SUNJAVA3 SUNJAVA4 Oracle Middleware, veröffentlicht von Oracle.com (Link vom 20.12.2009: http://www.oracle.com/technolog Oracle White Paper?Managing - Oracle WebLogic Server with Oracle Enterprise Manager, veröffentlicht von http://www.oracle.com/technology/products/oem/pdf/twp_wls_mgmt.pdf) Oracle WebLogic Documentation - Overview of WebLogic Server System Administration, veröffentlicht von http://download.oracle.com/docs/cd/E13222_01/wls/docs92/intro/overview.html) Oracle Products - Oracle WebLogic Products, veröffentlicht von Oracle.com (Link vom 23.12.2009: http://www.oracle.com/us/products/middleware/application-server/index.htm) Oracle WebLogic Products - Oracle WebLogic Server 11g Standard Edition, veröffentlicht von Oracle.com ( http://www.oracle.com/appserver/weblogic/standard-edition.html?origref=http://www.oracle.com/us/product Oracle WebLogic Products - Oracle WebLogic Server 11g Enterprise Edition, veröffentlicht von Oracle.com http://www.oracle.com/appserver/weblogic/enterprise-edition.html?origref=http://www.oracle.com/us/produc Oracle WebLogic Products - Oracle WebLogic Suite 11g, veröffentlicht von Oracle.com (Link vom 23.12.20 http://www.oracle.com/appserver/weblogic/weblogic-suite.html?origref=http://www.oracle.com/us/products/ Oracle Diagnostics Guide - About the Oracle JRockit JDK, veröffentlicht von Oracle.com (Link vom 20.12.2 http://download.oracle.com/docs/cd/E13150_01/jrockit_jvm/jrockit/geninfo/diagnos/aboutjrockit.html#wp10 Oracle Weblogic Feature Matrix (Oracle Datasheet), veröffentlicht von Oracle.com (Link vom 14.01.2010: http://www.oracle.com/appserver/docs/wls-featurematrix-datasheet.pdf) Oracle JDeveloper - Introduction to the JDeveloper IDE, veröffentlicht von Oracle.com (Link vom 12.01.201 http://www.oracle.com/technology/obe/obe1013jdev/10131/introide/introjdevide.htm) SUN Java Technology - JavaTM Authentication and Authorization Service (JAAS), veröffentlicht von Sun.c http://java.sun.com/javase/6/docs/technotes/guides/security/jaas/JAASRefGuide.html#Introduction) SUN Java Technology Documentation - Service-Oriented Architecture (SOA) and Web Services, Qusay H. M Sun.com (Link vom 3.12.2009: http://java.sun.com/developer/technicalArticles/WebServices/soa/) SUN Java Technology Documentation - About the Java Technology, veröffentlicht von Sun.com (Link vom http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html) SUN Java Technology Documentation - The Java EE 5 Tutorial, veröffentlicht von Sun.com, Oktober 2008 ( http://java.sun.com/javaee/5/docs/tutorial/doc/) 9 Quellenverzeichnis 25