Implementierung und Managment unternehmenskritischer Anwendungen insbesondere Performance und Skalierbarkeit EJB basierter Anwendungen WebLogic, das Herz.

Slides:



Advertisements
Ähnliche Präsentationen
Objektrelationales Mapping mit JPA
Advertisements

E-Commerce Shop System
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Projekte mit SQL Remote Einführung Objekt-DB Radeberger Ein aktuelles Projekt : mediakey
:33 Internet Applikationen – Hard und Softwareplattform Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner.
Systemverwaltung wie es Ihnen gefällt.
Was ist J2EE Die Vorteile von J2EE J2EE Modell Die Komponente von J2EE
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
WS06/07Prof. Dr. Andreas Schmietendorf1 Programmierung von Client/Server- Anwendungen Übersicht zur Vorlesung.
Datenbankzugriff im WWW (Kommerzielle Systeme)
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
Universität Paderborn
Erweiterung B2B Usermanagement / LDAP-Anbindung
Objektrelationales Mapping mit JPA
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Information und Technik Nordrhein-Westfalen Single Sign On mit CAS Düsseldorf, Single Sign On für Webanwendungen am Beispiel von CAS.
Anwendungen. © Prof. T. Kudraß, HTWK Leipzig Historie des WWW Grundlage Internet – Entwickelt Ende der 60er Jahre vom US-Militär (ARPA-Net) – Technische.
Replikation in Datenbanksystemen.
Business Logik als EJB-Applikation Gruppe pea19 Raed IssaChristian KubanekHonoré Tiako.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Java2 Enterprise Edition René Noack Mai 2003
JAVA RMI.
Überlegungen zur Architektur eines Fachinformations-Netzwerkes am Beispiel des CeGIM Mehrwert ist es nicht nur, Daten von ihren Quellen zu den Nutzern.
Informationssysteme SS Informationssysteme Grundvorlesung Informatik Sommersemester 2004 Universität des Saarlandes, Saarbrücken Dr. Ralf Schenkel.
Ausführungsmodell Zustandsübergang einer Transaktion aus Nutzersicht:
J2EE Conformance von JDBC Middleware und EJB Applikation Server Detlef KünzelSystemberater +49 (0)
Einführung und Überblick
Die Bank von morgen - eine neue Welt für IT und Kunden? 23. Oktober 2001.
M A P K I T Management eines J2EE basierten eCommerce Systems am Beispiel des ATG Dynamo Applikationsservers und BMC Patrol als Managementframework.
JDBC: JAVA Database Connectivity
Diplomarbeit Thema: Untersuchungen zur Spezifikation und Realisierung von Interoperabilitätskonzepten (hauptsächlich) CORBA-basierter Multiagentensysteme.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
YouTube5 .0 Projektpräsentation
Entwicklung verteilter eingebetteter Systeme - Einführung
DB-Zugriffstechnologien im Internet Ein Referat von Marc Reinecke.
„Buy and Make“ anstelle von „Make or Buy“
EJB-Applikationsserver
Systemaufbau / Komponenten
Mit 3 Schichte zum Erfolg
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Tools und Verfahren Steffen Krause Technologieberater Microsoft Deutschland GmbH
Servlets Servlets und relevantes API Servlets & SQL via JDBC Implementierungs - Spezifika Architektur Überblick Vertikaler Prototyp / Spezifikation.
Welchen Problemen ist man bei heterogener, verteilter Programmierung ausgesetzt? Hardware: nicht einheitliche, inkompatible Systeme, verschiedene Leistungsfähigkeit.
Beschreiben Sie das Szenario wenn ein ORB einen Server aktiviert und eine Objektimplementation aufruft. Activate Server impl_is_ready Activate Object (GetID.
Die Architektur von Jini Präsentation von Thomas Heinis & Michea Wankerl Seminar Information & Kommunikation WS 2000/01.
ESRI EUROPEAN USER CONFERENCE
NDK Enterprise Technologien Informationen Infrastruktur und Fallstudie Daniel Nydegger Studienleiter Enterprise System Entwicklung.
Präsentation von Lukas Sulzer
Performance-Testing als Basis für Performanceoptimierungen
XML und Datenbanken © 2006 Markus Röder
Hacking InfoPoint Jörg Wüthrich Infopoint - Hacking - Jörg Wüthrich 2/26 Inhalte Rund um das Thema Hacking Angriffs-Techniken Session.
Projekt Pokémon (CSL) Evaluation Technologien / Entwicklungsumgebungen Schlusspräsentation, Philip Iezzi, BDLI 2.
SBC LAB Josef Kandlhofer, Thomas Meindl,
Cloud Computing Klausur an der Hochschule Karlsruhe - Technik und Wirtschaft Sommersemester 2014, Dienstag, , 14:00 Uhr Name: ___________________.
7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am.
Was spricht für EMC für SQL?
Analyse und Umsetzung einer Filter-basierten Paketverarbeitungsmaschine für IP-Netzwerke Lehrstuhl für Systemarchitektur und Betriebssysteme Forschungs-
XML in der Praxis: Electronic Bill Presentment (EBP) Institut für Wirtschaftsinformatik J. W. Goethe-University J. W. Goethe University Institute of Information.
J2EE-Motivation(I) Anforderungen an heutige Software u.a.:
EJB Architektur für große Web - Applikationen Gerald Weber
Distributed Database Systems Parallele Datenbanksysteme von Stefan Schneider.
© 2010 | magellan netzwerke GmbH Application Delivery und Virtualisierung Referent Dipl.-Ing. Sven Müller.
Dr. Klaus Ruhlig Technology & Product Consulting Sun Microsystems, München Skalierbare Rechnerarchitekturen für ein DWH: Eine vergleichende Analyse.
© 2012 TravelTainment Einführung in Enterprise JavaBeans Seminarvortrag von Ralf Penners Folie 1 von 34.
SOFTWARE POWERS THE INTERNET SM. Oracle9i Application Server Mathias Kaldenhoff Geschäftsstelle HH Leiter Systemberatung Oracle Deutschland GmbH
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Einflußreiche Systeme Dr. Wolfgang Wörndl.
Schnittstellen für Verteilte System mit J2EE Frank Schwichtenberg SourceTalk 2008 Göttingen,
Verteilte Anwendungen: J2EE
Google App Engine - Technische Stärken und Schwächen
Systeme II 6. Die Anwendungsschicht
 Präsentation transkript:

Implementierung und Managment unternehmenskritischer Anwendungen insbesondere Performance und Skalierbarkeit EJB basierter Anwendungen WebLogic, das Herz von Java Thomas Walter Manager Enterprise Java Group BEA Central & Eastern Europe mailto:

2 Inhalt Einführung BEA WebLogic Skalierbarkeit & Performance

3 Einführung BEA WebLogic Gegründet als WebLogic Inc., seit Sept. 98 BEAs WebXpress Division 100% Java, EJB seit Sept. 97 Clustered EJB seit Nov. 98 > 1400 Kunden, davon nutzen ca. 600 EJB Mittlerweile zahlreiche Erfahrungen aus Projekten

4 Inhalt Einführung BEA WebLogic Skalierbarkeit & Performance

5 Skalierbarkeit und Performance Systeme wachsen in vieler Hinsicht Benutzer, Daten, Transaktionskomplexität Ein System skalieren heißt Hardware addieren und Konfigurationsparameter ändern um Durchsatz zu erhalten oder zu erhöhen Keinen Applikations-Code oder Datenbankschemas zu ändern Sicherstellen, daß zusätzliche Hardware ausgelastet wird

6 Was reduziert Skalierbarkeit? Die gleichen alten Ursachen Konkurrenz um Daten Konkurrenz um Prozeßeinheiten CPUs, Threads Konkurrenz um Resourcen Database Connections Memory, Disk, I/O channels

7...plus einiger neuen Tücken Geschwindigkeit des Deployments Verringertes Time to Market Rapide Skalierung nach Veröffentlichen der URL Verteilte Objekte und Komponenten Einfachheit der Benutzung und verführerische Transparenz Technologische Heterogenität Web Server, Middleware, Datenbanken Performance-Belange werden vergessen bis es zu spät ist

8 Verantwortlichkeiten Jeder hat Verantwortung zur Schaffung von Skalierbarkeit EJB-Designer benötigen umfassende Sicht, nicht middleware- oder datenbankzentrisch Müssen wissen welche Verbesserungen gemacht werden können nachdem System deployed ist Server-Hersteller Autoren der EJB Spezifikation bei Sun Wie bei ACID Transaktionseigenschaften Atomar, Consistent, Isoliert, Dauerhaft: C kommt durch Applikation.

9 Flaschenhälse veranschaulicht Jeder Knoten und jede Verbindung ist ein potentieller Flaschenhals

10 Flaschenhälse an Knoten Appserver Threads blockiert durch DB oder Monitore Unnötig hohe Anzahl an request-handling Threads Garbage Collection Datenbankserver Shared Data Unnötig strenge Isolationlevels Profiler helfen, aber erfassen keine größeren Muster

11 Flaschenhälse an Verbindungen Client zu Appserver Business-Methoden, remote Garbage Collection, keep-alive Traffic Zwischen Appservern Concurrency und Caching-Protokolle, verteilte Transaktionen, Objekt-Lokation Appserver zu Datenbank Zwischen Datenbank-Servern Verteilte Transaktionen und Lockmanagment DB Server zu Disk

12 Generelle Empfehlungen Zielgerichtetes Design: Zuerst UI Höchste Aufmerksamkeit gilt Anwender: Benutzbarkeit und Performance müssen primäres Ziel sein Applikations-Designer kommt zuerst, danach der Bean-Designer Performance-Analyse planen Zur Design-Zeit wissen, wo Hooks gesetzt werden und wie die Daten analysiert werden Kennen Sie Ihre Anwendung, kennen Sie die HotSpots

13 Kennen Sie Ihre Anwendung E-Commerce Applikationen Viele Clients, hohes Lese / Update Verhältnis, wenig Konkurrenz, großes Datenset Netzwerk Managment Systeme Wenige Operatoren, einige HotSpot Netzwerkknoten Banken und Bankomaten Viele Clients, wenig Gleichzeitigkeit, hoher Isolation- Level, kein Datenset Ermitteln Sie Datenset, Gleichzeitigkeit und Update-Erfordernisse aus Use-Cases

14 Mythos: Stateless == Skalierbar Stateless == Skalierbar ist bedeutungslos Es gibt immer Zustand: Frage ist wo lebt er? Stateless Middleware garantiert daß Middleware kein Flaschenhals ist Was machen Sie wenn Datenbank zum Flaschenhals wird? Zustand ist nützlich Datenbanken besitzen Caches, HTTP besitzt Cookies In E-Commerce Applikationen wird zu 90% gebrowsed Je geringer Anforderung an Cache-Kohärenz, desto näher kann Cache an Client liegen

15 State verwalten Parameterisierte Caches Dauer, Menge, Concurrency und Replikation Wenn möglich getrennte Caches für Lesen und Schreiben Redesign wenn hoher Anteil geshared wird Frontends auf Queue Requests umstellen Shared Updates ans Transaktionsende verlagern Entity Beans nur für shared Data Non-shared Data wird komplexes Attribut

16 Verkehr zwischen Appserver und Client reduzieren UI spricht mit nur einer Bean (typisch: Session) Verwenden Sie grobkörnige Interfaces Daten bulk übertragen IDL Attribute vermeiden Nur Daten sollten dieses Interface passieren, keine Referenzen Vermeiden Sie Client-Transaktionen Verwenden Sie Servlets statt Applets

17 Optimierung am Appserver Verkehr zwischen Appserver-Prozessen Vermeiden verteilter Transaktionen Anfragen partitionieren und an entsprechenden Appserver verteilen Langlaufende Transaktionen vermeiden Lesende von Schreibenden möglichst trennen Benutzen Sie Java Message Service (JMS) um Requests zu serialisieren

18 Reduktion von Verkehr zw. App- und DB-Servern Reduktion der übertragenen Datenmenge Umsichtiger Gebrauch von AppServer Caches Denormalisierung Reduktion der Request-Anzahl Bulk-Zugriff Stored Procedures

19 Datenbankoptimierung Daten Partitionierung DB-Log auf solid-state Disks legen Modifizieren von SQL Statements um Optimizer-Hints Nicht in Queries benötigte Attribute sind BLOBs Erweiterte DBMS Features verwenden

20 Was können Appserver beitragen? State Managment Konfigurierbare Policies anbieten Activation und Deactivation-Policies Deaktiviere nach Timeout, nach Methode, nach Transaktion, niemals Aktiviere auf Anforderung Concurrency (optimistisch, pessimistisch) Caching (mit verschiedenen Isolation-Levels)

21 Flexible Caching Strategien Hängt ab von Lese- / Schreibmuster und Toleranz gegenüber Cache-Inkohärenz Strategien Nur ein Ort für primary Key Viele Instanzen (für einen primary Key) die zu jeweils anderen Servern sprechen Viele Instanzen, die nur über DB kommunizieren

22 Was können Appserver beitragen... Daten-Partitionierung Factory based Routing Data-dependent Routing Connection Managment Keine TCP Connections von n Clients zu m Servern Objekt- und Resource-Pooling Transparentes Failover und Failback Monitoring Hooks für Requests, Datenbank- Treiber, Caches

23 Was die EJB Spezifikation benötigt Massen CRUDs Relationships und effiziente Traversierung von Relationships Explizite Aktivierungs- / Deaktivierungs- Policies Verbindung zwischen EJB Container und JMS