1 Application Server Application Server: Motivation Application

Werbung
Application Server
ƒ Begriff und Einordnung
ƒ Basistechniken
ƒ Enterprise JavaBeans (EJB)
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-1
Application Server: Motivation
ƒ Geschäftsanwendungen im Internet
 mehrstufige Architekturen (Geschäftslogik)
 Integration von Legacy-Systemen
ƒ komplexe Entwicklung
 Sicherheitsanforderungen
 Transaktionsunterstützung
 heterogene Umgebung (DBMS,
Verteilungsplattformen, Benutzerschnittstellen)
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-2
Application Server: Begriff
ƒ Vereinigung von Middleware-Technologien
 Web-Server
 Transaktionsmonitore
 Object Request Broker
 Sicherheitslösungen
 Datenbankzugriffslösungen
ƒ Entwicklungsumgebung
ƒ Managementlösung
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-3
1
Application Server: Aufbau
M anagem entkonsole
IIO P
Application Server
W ebBrow ser
HTTP
IIO P
HTM L
Applet
Kom ponentenContainer
Transaktionskomponente
IIO P
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-4
Application Server: Basistechniken
ƒ Unterstützung verschiedener Clients
 HTML, Java-Applets, Standalone-Applikationen
 Trennung von Anwendungslogik und
Benutzerschnittstelle
 HTML-Generierung
ƒ Entwicklungsunterstützung
 Application Server als Entwicklungsumgebung
 Entwicklung von Web-Benutzerschnittstellen
 Installation von Geschäftskomponenten
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-5
Basistechniken
ƒ Gewährleistung von Skalierbarkeit und
Verfügbarkeit
 Verbindungsmanagement
 Lastausgleich
 Fehlermanagement
ƒ Sicherheitstechniken
 Bereitstellung von Verschlüsselungstechniken für
y Signierung (digitale Unterschriften)
y sichere Kanäle (Secure Socket Layer)
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-6
2
Basistechniken
ƒ Transaktionsmanagement in verteilten
Umgebungen
 Sicherstellung von Transaktionen über verteilte
Objekte
y 2-Phasen-Commit-Protokolle
y Transaktionsmonitore
 Sessionmanagement für Web-Clients
ƒ Datenbankzugriff
 Einbindung von Datenbanken zur persistenten
Speicherung von Geschäftsobjekten
 Zugriff auf Legacy-Daten
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-7
Basistechniken
ƒ Performance-Monitoring
 Überwachung des Laufzeitverhaltens der
Applikationen
 Aufspüren von Engpässen
ƒ Applikationsmanagement und -konfiguration
 zentrale Verwaltung und Fehlerüberwachung
 Installation und Pflege von Applikationen
 Lastausgleich
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-8
Technologien
ƒ Verteilung:
 CORBA, DCOM
ƒ Transaktionsmanagement:
 CORBA Transaction Service (OTS)
ƒ Sicherheit:
 X509-Zertifikate, Secure Socket Layer
ƒ DBMS:
 RDBMS, Object-Relational-Mapping
ƒ Komponenten:
 JavaBeans, ActiveX-Controls
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-9
3
Systeme
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
WebLogic (BEA Systems)
NetDynamics (Sun)
Web Application Server (Inprise)
Web Application Server (Oracle)
Domino (Lotus)
WebSphere (IBM)
PowerTier (Persistence)
Zope (Digital Creations)
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-10
Enterprise JavaBeans (EJB)
ƒ Serverseitige Komponenten für
Geschäftsanwendungen
ƒ Trennung von Geschäftslogik und
Standardfunktionen
ƒ Anwendungsgebiet: Applikationsserver
 Unterstützung verschiedener Protokolle (HTTP,
RMI, IIOP)
 Standarddienste
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-11
JavaBeans-Komponentenmodell
ƒ Bean:
 wiederverwendbare Softwarekomponente, die in
einem visuellen Softwarekompositionswerkzeug
(Builder) verwendet und manipuliert werden kann
 besitzt Eigenschaften: z.B. Kontostand
 meldet Ereignisse: Zustandsänderungen
 stellt Methoden bereit: z.B. Überweisung
ƒ Implementierung:
 einzelne Klasse
 Menge von Klassen + Ressourcen (Archiv)
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-12
4
JavaBeans
ƒ Manipulation bzgl.
 Eigenschaften: Lesen, Ändern
 Ereignissen: Festlegen des Empfängers,
Definieren des Handler-Codes
 Methoden: Verbinden mit Ereignissen
ƒ Builder:
 ermittelt und manipuliert Bean-Eigenschaften
(Introspection bzw. spezielle
Eigenschafteneditoren)
 generiert notwendigen Adapter-Code zur
Verbindung von Ereignissen mit Methoden
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-13
EJB: Charakteristika
ƒ EJB: Komponente, die Geschäftslogik auf
ƒ
ƒ
ƒ
ƒ
Geschäftsdaten implementiert (Kunde, Konto,
Bestellung)
EJB-Instanzen werden durch Container erzeugt
und verwaltet
Anpassung (Customizing) durch Manipulation
der Eigenschaften
separate Bereitstellung der Standarddienste
Vermittlung des Zugriffs über Container
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-14
EJB: Potentiale
ƒ Portabilität bei Konformität zur EJB-Spezifikation
ƒ Anpassung ohne Änderung von bzw. Zugriff auf
Quellcode
ƒ Konzentration auf Geschäftslogik
ƒ Komponentenorientierte Entwicklung
(Wiederverwendbarkeit)
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-15
5
EJB: Standarddienste
ƒ Lebenszyklus
 Verwaltung des Lebenszklus von Beans (Erzeugung,
Aktivierung, ...)
ƒ Zustandsmanagement
 Repräsentation von Zuständen und Sitzungen
ƒ Sicherheit
 Vergabe und Verwaltung von Zugriffsberechtigungen
ƒ Transaktionen
 Unterstützung von Transaktionen über mehrere
Methodenaufrufe hinweg
ƒ Persistenz
 Speichern und Wiederherstellen der Daten von Beans in
bzw. aus Datenbanken
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-16
EJB: Aufteilung
ƒ Server:
 Serverprozeß für ein oder mehrere Container
 Bereitstellung der Standarddienste
ƒ Container:
 Ablaufumgebung
 Abbildung der Bean-Attribute auf Datenspeicher
ƒ Client:
 Inanspruchnahme von Diensten (durch Beans
bereitgestellt)
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-17
EJB: Aufteilung
ƒ Beans: Geschäftsobjekte
 SessionBeans
y leichtgewichtige, nicht-persistente Komponenten
y repräsentieren nicht direkt Datenobjekte
y werden vom Client erzeugt
 EntityBeans
y persistentes Geschäftsobjekt
y repräsentiert Eintrag in der Datenbank
y können durch mehrere Clients genutzt werden
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-18
6
EJB: Architektur
EJB Server
EJB Container
EJB Object
Enterprise Bean
Client
EJB Hom e
Kai-Uwe Sattler
Uni Magdeburg
D ep lo ym en t
D escrip to r
E nv iro n m e n t
Vorlesung Internet-Datenbanken
8-19
EJB: Architektur
ƒ EJB: als JAR-Archiv geliefert
 Sammlung von Interfaces, Klassen und
Ressourcen
y Home Interface: Lifecycle-Schnittstelle zum
Auffinden, Erzeugen und Löschen
y Remote Interface: Vereinbarung der
eigenentlichen „Geschäfts“-Methoden
y Deployment Descriptor: Verhalten bzgl. der
Standarddienste (Persistenz, Transaktionen)
y Bean-Klasse + generierte Klassen
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-20
EJB: Home Interface
import java.rmi.RemoteException;
import javax.ejb.*;
public interface AccountHome extends EJBHome {
public abstract
Account create (String s, double d)
throws CreateException, RemoteException;
public abstract
Account findByPrimaryKey (AccountPK pk)
throws FinderError, RemoteException;
}
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-21
7
EJB: Remote Interface
import java.rmi.RemoteException;
import javax.ejb.*;
public interface Account extends EJBObject {
public abstract double deposit (double d)
throws RemoteException;
public abstract double withdraw (double d)
throws RemoteException;
public abstract double balance ()
throws RemoteException;
}
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-22
EJB: Ablauf
ƒ Installation
 Installation eines EJB im Container
 Registieren des Home Interface in einem Namensdienst
ƒ Nutzung
 Suchen des Home Interface über Namensdienst
 evtl. Erzeugen einer Instanz
 Aufruf der Methoden des Remote Interface über Container
y Weiterleitung und Realisierung der Dienste (Persistenz,
Sicherheit, Transaktionen)
y Schnittstellen zwischen Bean und Container: automatisch
generierte Verbindungsklassen
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-23
EJB: Persistenz
ƒ EntityBeans repräsentieren persistente Daten
 Ausführung persistenzspezifische Funktionen beim
Erzeugen, Aktivieren, Deaktivieren und Löschen
 Art der Persistenzimplementierung in Deployment
Descriptor
ƒ Bean-verwaltete Persistenz:
 Datenspeicherung und -wiederherstellung wird vom BeanEntwickler implementiert (z.B. über JDBC)
ƒ Container-verwaltete Persistenz:
 Bereitstellung und Aufruf der Persistenzfunktionen durch
Container
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-24
8
EJB: Entwicklung
Server/C ontainer
Provider
EJB Server
liefert
entw ickelt
EJB Container
Enterprise B ean
Provider
spezifiziert
EJB O bject
Enterprise Bean
Client
konfiguriert &
verw altet
Deploym ent
Descriptor
EJB Hom e
verw endet
Adm inistrator
installiert
Kai-Uwe Sattler
Uni Magdeburg
D eployer
Assem bler
Vorlesung Internet-Datenbanken
8-25
EJB: Technologien
ƒ Namens- und Verzeichnisdienst:
 JNDI (DNS, NDS, NIS+, LDAP, COS Naming)
ƒ Kommunikation:
 RMI, IIOP (CORBA), Java Messaging
ƒ Transaktionen:
 Java Transaction API, Java Transaction Service
API
ƒ Datenbankzugriff:
 JDBC
Kai-Uwe Sattler
Uni Magdeburg
Vorlesung Internet-Datenbanken
8-26
9
Herunterladen