Top Banner
Middleware: Nachrichtenorientierte Middleware & Nachrichtenorientierte Middleware & Anwendungsorientierte Middleware vsis inf min uni hh ws 11_12 VIS-1 Middlew-1
58

Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Jul 25, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Middleware:

Nachrichtenorientierte Middleware &Nachrichtenorientierte Middleware &Anwendungsorientierte Middleware

vsis inf min uni hh ws 11_12 VIS-1 Middlew-1

Page 2: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Gliederung

• Kommunikationsorientierte MiddlewareAlt ti RMI/RPC— Alternativen zu RMI/RPC

— Nachrichtenorientierte Middleware (MOM)

• Anwendungsorientierte Middlewareg— Motivation und Abgrenzung— Historische Vertreter— Aktuelle Vertreter— Beispiel

vsis inf min uni hh ws 11_12 VIS-1 Middlew-2

Page 3: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Eigenschaften von RMI/RPC

• The caller must wait until the response comes backp

— the caller makes a request, the receiver gets the request, processes the request, sends a response, the caller receives the responsecaller receives the response

• Synchronous interaction requires

• Synchronizing client and server has several disadvantages:• Synchronous interaction requires

both parties to be “on-line”— The receiver does not need to exist at

the time of the call (e g CORBA /

— connection overhead (sessions)

— higher probability of failures

diffi lt t id tif d t t f ilthe time of the call (e.g. CORBA / Java RMI can create an instance of the service/server/object when called if it does not exist already)

— difficult to identify and react to failures

— but the interaction requires both client and server to be “alive” at the same time

• One-to-one system— not practical for nested calls

vsis inf min uni hh ws 11_12 VIS-1 Middlew-3

— not practical for complex interactions

Page 4: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

RMI/RPC Nachteile (1): Overhead

• Synchronous invocations require to maintain a session between the caller

d th iand the receiver.— Maintaining sessions is expensive and

consumes CPU resources.There is also a limit on how many sessions— There is also a limit on how many sessions can be active at the same time (thus limi-ting the number of concurrent clients con-nected to a server)For this reason client/server systems often— For this reason, client/server systems often resort to connection pooling to optimize resource utilization and

• have a pool of open connections• associate a thread with each

connection• allocate connections as needed.

When the interaction is not one to one the— When the interaction is not one-to-one, the context (the information defining a session) needs to be passed around. The context is usually volatile.

vsis inf min uni hh ws 11_12 VIS-1 Middlew-4

Page 5: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

RMI/RPC Nachteile (1): Fehlerbehandlung

• Failures in synchronous calls— If the client or the server fail the context isIf the client or the server fail, the context is

lost and resynchronization might be difficult.

— If the failure occurred before 1, nothing has happenedhappened

— If the failure occurs after 1 but before 2 (receiver crashes), then the request is lost

— If the failure happens after 2 but before 3, id ff t i i t iside effects may cause inconsistencies

— If the failure occurs after 3 but before 4, the response is lost but the action has been performed (do it again?)

• Finding out when the failure took place may not be easy.

— Worse still if there is a chain of— Worse still, if there is a chain of invocations, the failure can occur anywhere.

vsis inf min uni hh ws 11_12 VIS-1 Middlew-5

Page 6: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Alternative zu RMI/RPC

• Asynchronous InteractionU i h i t ti th ll d th t t t d— Using asynchronous interaction, the caller sends a message that gets stored somewhere until the receiver reads it and sends a response.

— The response is sent in a similar manner

• Asynchronous interaction can take place in two forms:— Non-blocking invocation:

RPC but the call returns immediately without waiting for a response, similar toRPC but the call returns immediately without waiting for a response, similar to batch jobs

P i t t— Persistent queues:The call and the response are actually persistently stored until they are accessed by the client and the server

vsis inf min uni hh ws 11_12 VIS-1 Middlew-6

Page 7: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Messaging, Message Passing, Message Queuing

• Message Passing ist ein Kommunikationsmodell zum asynchronen Transport von Daten zwischen Prozessen.p

• Die Daten werden innerhalb von Nachrichten (Messages) übertragen.

• Message Passing arbeitet auf der Basis von Warteschlangen:— Nachrichten werden vom Sender in eine Warteschlange gelegt

und werden von dort aus an den Empfänger weitergeleitet— und werden von dort aus an den Empfänger weitergeleitet.

• Die Warteschlange arbeitet nach dem FIFO Prinzip.

Sender Empfänger

Nachricht Nachricht

Warteschlange

vsis inf min uni hh ws 11_12 VIS-1 Middlew-7

• Einfaches Interaktionsmodell: point-to-point-messages

Page 8: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Komplexere Interaktionen

• Complement to synchronous interactionsinteractions— Suitable to modular design: the

code for making a request can be in a different module (even a request()be in a different module (even a different machine!) than the code for dealing with the response

— It is easier to design sophistica-

q ()

receiveprocess

queue

It is easier to design sophisticated distribution modes (multicast, transfers, replication, coalescing messages) and it also helps to h dl i ti i

do with answer

return

queue

handle communication sessions in a more abstract way

— More natural way to implement l i t ticomplex interactions

vsis inf min uni hh ws 11_12 VIS-1 Middlew-8

Page 9: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Alternat. Interaktionsmodell: Publish-Subscribe

• Prozesse erhalten Rollen als Publisher bzw. Subscriber.

• Subscriber abonnieren Nachrichten zu einem Thema.

• Publisher veröffentlichen Nachrichten zu einem Thema.

• Broker übernehmen die Vermittlung.

• Eine mögliche Realisierung erfolgt durch themenspezifische Warteschlangen.

W a rte s c h la n g e z uT hT h e m a a

S u b s c r ib e r

T h b

T h e m a a

P u b lis h e r

W a rte s c h la n g e z uT h b

S u b s c r ib e r

N a c h r ic h t b

T h e m a b

vsis inf min uni hh ws 11_12 VIS-1 Middlew-9V e rm it t le r (B ro k e r)

T h e m a b N a c h r ic h t b

Page 10: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Persistente Warteschlangen

• Eine der wesentlichen „Quality of Service“-Eigenschaften ist die garantierte Auslieferung einer Nachricht.

• Was ist dabei das Hauptproblem:— Der Empfängerprozess kann ausfallen.— Das Netzwerk kann unterbrochen sein.

• Garantierte Auslieferung wird sichergestellt durch das persistente Zwischenspeichern von NachrichtenZwischenspeichern von Nachrichten. — z.B. Datenbank, Dateisystem, ...

• (Nur) wenn der Empfänger bereit ist zu empfangen, wird die Nach-( ) p g p g ,richt zugestellt.

• Garantierte Auslieferung stellt sicher, dass eine Nachricht an den Empfänger ausgeliefert wirdEmpfänger ausgeliefert wird.

• Garantierte Auslieferung sagt jedoch nichts über den Zeitpunkt der Auslieferung aus. Dies muss ggfs.über andere QoS-Eigenschaften i h t llt d

vsis inf min uni hh ws 11_12 VIS-1 Middlew-10

sicher gestellt werden.

Page 11: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Message Oriented Middleware (MOM)

• MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

• MOM bietet neben der rein asynchronen Kommunikation weitere Mecha-nismen und Dienste:

— Unterstützung der verschiedenen Messaging Modelle — Warteschlangenverwaltung— Verbindungsmanagement— Verbindungsmanagement— Quality-of-Service Zusicherungen (QoS)

Empfänger

Warteschlangen

Sender

Zugriffs

Warteschlangen

Zugriffs

Middleware Protokoll (proprietär)

Warteschlangen-verwalter

Zugriffs-schnittstelle

Zugriffs-schnittstelle

vsis inf min uni hh ws 11_12 VIS-1 Middlew-11

Protokollstack

Page 12: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Beispiel: Java Message Service (JMS)

• Einheitlichen Zugriffsschnittstelle (API) für Java-Anwendungen auf einen MOM-Servereinen MOM Server— Teil der Java-Plattform (Java EE oder stand-alone)

• D St d d t h id t i R ll• Der Standard unterscheidet zwei Rollen— JMS Provider: der jeweilige MOM-Server— JMS Client: die Java-Anwendung (Empfänger und Sender von Nachrichten)JMS Client: die Java-Anwendung (Empfänger und Sender von Nachrichten).

• JMS unterstützt verschiedene Interaktionsmodelle:— Einfaches Point-to-Point-Modell— Publish-Subscribe-Modell— Request-Reply-Modell— Request-Reply-Modell

• Nachteil: Keine Interoperabilität zwischen Produkten (aber Porta-bilität)

vsis inf min uni hh ws 11_12 VIS-1 Middlew-12

bilität)

Page 13: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Zusammenfassung:Kommunikationsorientierte Middleware (KM)Kommunikationsorientierte Middleware (KM)

• Ziele: Abstraktion von der Netzwerkprogrammierung

• Aufgaben— Kommunikation

— Datentransformation

— Verbergen der HeterogenitätKommunikationsorientierte

Anwendungskomponente

• Programmiermodelle:— Entfernte Prozeduraufrufe (RPC)

KommunikationsorientierteMiddlewareBetriebs-

system Verteiltes System— Entfernte Methodenaufrufe (RMI)

— Nachrichtenorientiertes Modell

• Beispiele: DCE-RPC, CORBA RMI, Java RMI, JMS

vsis inf min uni hh ws 11_12 VIS-1 Middlew-13

Page 14: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Anwendungsorientierte Middleware (AM)

• AM setzt auf kommunikationsorientierter Middleware (KM) auf.

• AM erweitert KM um Funktionalität zur Unterstützung verteilter Anwendun-gen.

• AM eignet sich auf Grund ihrer Eigenschaften insbesondere für Informa-tionssysteme

• Informationss steme eichnen sich d rch folgende Eigenschaften a s• Informationssysteme zeichnen sich durch folgende Eigenschaften aus:— Software-intensiv— datenzentriert

i t kti— interaktiv— nebenläufig

• Erweiterungen der AM gegenüber KM sind:• Erweiterungen der AM gegenüber KM sind:— Laufzeitumgebung— Dienste

K t d ll

vsis inf min uni hh ws 11_12 VIS-1 Middlew-14

— Komponentenmodell

Page 15: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

AM-Systemarchitektur „klassisch“

[Bernstein 93]FRAMEWORK

ToolsApplication •••UserInterface

Framework Local Services

API veneerInterface

Application

Application Programming Interface

Application

Pl tf I t f

“Middleware” : (Distributed) System Services

Platform_j• OS• Hardware

Platform Interface

•••Platform_i• OS• Hardware

vsis inf min uni hh ws 11_12 VIS-1 Middlew-15

• Hardware• Hardware

Page 16: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

KM + Laufzeitumgebung

• Laufzeitumgebung setzt auf dem Betriebssystem des jeweiligen Knoten im verteilten System auf.

• Laufzeitumgebung erweitert die Funktionalität des Betriebssystems um— Verbesserte Ressourcenverwaltung— Unterstützung der Nebenläufigkeit— Verbindungsverwaltung— Verbesserung der Verfügbarkeit— Verbesserte Sicherheitsmechanismen

Laufzeitumgebung

Kommunikationsinfrastruktur

Laufzeitumgebung

Betriebs-Verteiltes System

Betriebssystem

vsis inf min uni hh ws 11_12 VIS-1 Middlew-16

Page 17: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

KM + Laufzeitumgebung + Dienste

• Dienste stellen häufig benötigte Funktionalität wiederverwendbar bereit

• Welche und wie viele Dienste eine Middleware anbietet, kann stark variieren.

• Zu den grundlegenden Diensten einer Middleware zählen:g g— Namensdienst— Sitzungsverwaltung

T kti lt— Transaktionsverwaltung— Persistenz

Kommunikationsinfrastruktur

LaufzeitumgebungDienste Dienste

Kommunikationsinfrastruktur

Verteiltes SystemBetriebs-system

vsis inf min uni hh ws 11_12 VIS-1 Middlew-17

Page 18: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

KM + Laufzeitumgebung + Dienste + Komponentenmodell

• Ein Komponentenmodelle bieten eine konzeptionelle und technische Basis zur komponentenbasierten Entwicklung von Anwendungen.p g g

• Ein Komponentenmodell definiert:— einen Komponentenbegriffg— eine Komponentenlaufzeitumgebung— Verträge zwischen Komponenten und Komponentenlaufzeitumgebung

A n w e n d u n g s -k o m p o n e n te

A n w e n d u n g s -k o m p o n e n te

A n w e n d u n g s -k o m p o n e n te

K o m p o n e n te n m o d e ll

L a u fz e itu m g e b u n g

K o m p o n e n te n m o d e ll

D ie n s te D ie n s te

K o m m u n ik a t io n s in fra s tru k tu r

V e rte ilte s S y s te mB e tr ie b s -s y s te m

vsis inf min uni hh ws 11_12 VIS-1 Middlew-18

Page 19: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Komponentenbasiertes Paradigma (Wdh.)

Komponentenbegriff: Wiederverwendbarkeit von AnwendungsfunktionalitätKomponenten sind grob granularere Einheiten auf fachlicher Ebene mit klaren SchnittstellenKomponenten sind grob-granularere Einheiten auf fachlicher Ebene mit klaren Schnittstellen

– und diese...…sind in sich abgeschlossen (self-contained) bzw. definieren genau ihre Abhängigkeiten

d i f i W tli h di A d l ik ( l Ei t k t t )…und sie umfassen im Wesentlichen nur die Anwendungslogik (vgl. Einsatzkontext, s.u.)

Laufzeitumgebung: Dienste und SchnittstellenK t d i i ll C t i füh t (IOC P i i )— Komponenten werden in speziellen Containern ausgeführt (IOC-Prinzip)

— Einheitliches Deployment-Modell— Konfiguration der Komponenten beim Deployment je nach Einsatzkontext (Sicherheit,

Transaktionen, Persistenz, …)

Container 1Rechner 1

K1K2

K3

vsis inf min uni hh ws 11_12 VIS-1 Middlew-19

Container 1

Rechner 2

Page 20: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Middleware-Dienste für Komponenten

• Namensdienst (damit Komponenten sich gegenseitig finden können)

• Remote-Prozeduraufruf (RMI/RPC) (für entfernten Zugriff auf Komponenten)

• Nachrichtenkommunikation (für asynchrone Kommunikation mit bzw. zwi-schen Komponenten)schen Komponenten)

• Transaktionssicherheit (für Nebenläufigkeit und Fehlerbehandlung innerhalb und zwischen Komponenten)und zwischen Komponenten)

• Resource Pooling (Datenbankverbindungen, Komponenten)

• Security (Zugriffsrechte)

• Persistenz und Caching (persistente Speicherung von Objekten/Daten)

• …

vsis inf min uni hh ws 11_12 VIS-1 Middlew-20

Page 21: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Standardisierte Anwendungsmiddleware: OSF DCE und OMG CORBAOSF DCE und OMG CORBA

Standardisierungsziel: Herstellerübergreifendes Architekturmodell undg gSystemplattform zur Unterstützung offener verteilter Anwendungen, dazu:

Erweiterte (Betriebs-) Systemplattform - DCE:‘Open Software Foundation’ (OSF) / ‘Open Group’ (OG):

Erweiterte (Betriebs ) Systemplattform DCE:

Middleware-Standards ---> “Distributed Computing Environment” (DCE)Standards für verteilte Systeme:

Architektur- und Objektmodell CORBA:

‘Obj t M t G ’ (OMG)

Systeme:

‘Object Management Group’ (OMG):

---> “Common Object Request Broker” (CORBA)

vsis inf min uni hh ws 11_12 VIS-1 Middlew-21

Page 22: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

DCE: Einführung

• “Distributed Computing Environment” (ca. 1990)t i k lt d “O S ft F d ti ” (OSF)— entwickelt von der “Open Software Foundation” (OSF)

— Ziel: Vereinfachung der Entwicklung verteilter Systeme

• Realisiert als Middleware— Transparenzschicht über dem Betriebssystem

Di Bibli h k d W k— Dienste, Bibliotheken und Werkzeuge

• Client/Server Modell— Aktive Clients— Passive Server

vsis inf min uni hh ws 11_12 VIS-1 Middlew-22

Page 23: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Herstellerübereinkunft: OSF/OG „Distributed C ti E i t“ (DCE) A hit ktComputing Environment“ (DCE): Architektur

Verteilte AnwendungENCINA

Time Directory Security

• TRAN • TRPC

T C

Toolkit

DistribTimeService

DirectoryService

SecurityService

• Tran-C• Server Core

Distrib.File Sys. Sonst.

Thread Service

Remote Procedure Call (RPC)

Local Operating and Communication Services

vsis inf min uni hh ws 11_12 VIS-1 Middlew-23

Page 24: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

DCE: Architektur (2)

• Zellen (engl. “Cells”)äh li h D ä— ähnlich Domänen

— Strukturierungseinheit für Administration und Betrieb

• Aufbau— Autonomie der Zellen

V i h i Si h h i d Z i di j Z ll— Verzeichnis-, Sicherheits- und Zeitdienst je Zelle

• Verbindung von Zellen— manuelle Konfiguration (Trust-Relationship)— globaler Verzeichnisdienst (Zellennamen)

vsis inf min uni hh ws 11_12 VIS-1 Middlew-24

Page 25: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

DCE: RPC

• “Remote Procedure Call”Z iff t fü P d f f— Zugriffstransparenz für Prozeduraufrufe

— Schnittstellendefinition (IDF)

• IDF— “Interface Definition File”

Si d P d— Signaturen der Prozeduren— UUID für jedes Interface

• Ablauf— Generierung von Stub (Client) / Skeleton (Server)— Kommunikation über TCP / UDP— Maskieren von Implementationsdetails (z.B. Datenformate)

vsis inf min uni hh ws 11_12 VIS-1 Middlew-25

Page 26: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Praktische Relevanz von DCE

• unterschiedliche Herstellerunterschiedliche Hersteller

• unterschiedliche Betriebssysteme

• unterschiedliche Netzwerktechnologien

• Komponenten von unterschiedlichen Herstellern

• Standardkomponenten

• keine einheitliche Steuerungs- / Überwachungsumgebung

• keine globalen Entwicklungswerkzeuge

• einheitliche Implementierungen auf vielen HW-Plattformeneinheitliche Implementierungen auf vielen HW-Plattformen

• gute Integration von Security-Funktionen

vsis inf min uni hh ws 11_12 VIS-1 Middlew-26

Page 27: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Standardarchitektur für die Objektkoordination in offenen verteilten Systemen: OMG “CORBA”offenen verteilten Systemen: OMG CORBA

OMG: “Object Management Group”:OMG: Object Management Group :

non-profit Software-Konsortium (gegr. 1989)

über 800 Mitglieder (Firmen: HW, SW, User, IT etc.)

Ziel: Unterstützung für Anwendungs-Interoperabilität

Umgebung: heterogen, ‘multi-vendor’, verteilt, ...

bisher: ‘Object Management Architecture’ (Referenzmodell) +

‘Common Object Request Broker’ (CORBA) +

‘Object Services’ (z.B. Transaktionen, Trading, ...)

Beziehungen zu: ISO/IEC JTC1 WG7 (ODP)

CCITT/ITU und ISO X.500 (Directory) etc.

vsis inf min uni hh ws 11_12 VIS-1 Middlew-27

Unix bzw. X/Open

Page 28: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

CORBA: Einführung

• „Common Object Request Broker Architecture“ (CORBA)t i k lt d Obj t M t G ‘ (OMG) 1992/96— entwickelt von der ‚Object Management Group‘ (OMG), ca. 1992/96

— Ziel: Kommunikationsinfrastruktur für verteilte Objekte

• Teil der „Object Management Architecture“ (OMA)— CORBA Services: technische Dienste— CORBA Facilities: fachbezogene Dienste (domain vs. horizontal)

• Objektorientiertes Client/Server-Modell— Server-Objekte— Aufrufe auf Server-Objekten durch Clients

vsis inf min uni hh ws 11_12 VIS-1 Middlew-28

Page 29: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

De-facto Standard: OMG „Common Object R t B k A hit t “ (CORBA)Request Broker Architecture“ (CORBA)

Client Server ObjectInterface DefinitionLanguage (IDL)

StaticIDL Skeleton

Dynamicinterface

Staticstubs ORB interface Object adapter

Fi d bj i- Find object instance- Supervise transfer of control- Data transfer from caller to object instance

E t

Object Request Broker Kernel

Interface repository Implementation repository

- Error management

vsis inf min uni hh ws 11_12 VIS-1 Middlew-29

Page 30: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

CORBA: Architektur

• Object Request Broker (ORB)—transparente Vermittlungsschicht

• RMI—„Remote Method Invocation“p g

—Objektreferenzen zur Adressierung—Veröffentlichung von Referenzen über

Namensdienst• Interface Repository

—Verwaltung von ObjektschnittstellenBi d L f it ö li h—Bindung zur Laufzeit möglich

StatischerDynamisches

SkeletonStatischesSkeleton

Client Serverobjekt

ORBDynamischer

Serverobjekt

CORBA

StatischerStub

SkeletonPOA

SkeletonORB-Dienste

DynamischerStub

InterfaceRepository

ImplementationRepository

vsis inf min uni hh ws 11_12 VIS-1 Middlew-30

y Repository

Page 31: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

CORBA: RMI

• ZieleObj kt i ti l Ab t kti fü t ilt K ik ti— Objektorientierung als Abstraktion für verteilte Kommunikation

— Orts- und Zugriffstransparenz— SprachunabhängigkeitSprachunabhängigkeit— Interoperabilität

• IDL• IDL— „Interface Definition Language“— gemeinsamer Nenner für Programmiersprachen (C++ Java Smalltalk etc )— gemeinsamer Nenner für Programmiersprachen (C++, Java, Smalltalk etc.)— „Language Bindings“ legen Abbildung fest

• Abl f• Ablauf— Generierung von Stub (Client) / Skeleton (Server)

Marshalling / Unmarshalling

vsis inf min uni hh ws 11_12 VIS-1 Middlew-31

— Marshalling / Unmarshalling

Page 32: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

DCE vs. CORBA

• DienstlokalisationVerzeichnisdienst

• SicherheitSecurity Service— Verzeichnisdienst

• DienstgranularitätDCE: Prozedur

— Security Service

• Heterogenität verbergenIDF— DCE: Prozedur

— CORBA: Objekte

• Dienstaufruf

— IDF— IDL

• Komponentenmodell• Dienstaufruf— DCE: RPC— CORBA: RMI

• Komponentenmodell— DCE: n/a— CORBA:

• Stukturierung / Konfiguration— DCE: Zellen

• CBOF (Common Business Object Facility, nicht fertig gestellt)

— CORBA: Domänen • CCM (CORBA Component Model, verabschiedet 1999, kaum Verwendung in der Praxis)

vsis inf min uni hh ws 11_12 VIS-1 Middlew-32

Page 33: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Die Rolle der CORBA IDL

Cli t SidObject

I l t tiClient Side ImplementationSide

C COBOL

C++

I D L

I D LC

I D L

I D L

ORB

I D L

I D L

Ada

I D L

I D L

ORB

COBOL

Ada

I D L

I D L

Smalltalk

I D L

I D L

C++

JAVA

C++Smalltalk

JAVA

vsis inf min uni hh ws 11_12 VIS-1 Middlew-33

Page 34: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

CORBA Interface Definition Language (IDL)

- Definition der Typen der Argumente - Spezifikation der Prozedurköpfe

Z i Id tifik ti d P d

Bestandteile

- Zuweisung von Identifikationsnummern zu den Prozeduren- Definition des Programms und der Version

SchnittstellenspracheSchnittstellensprache

- wird benötigt, z.B: wenn Client und Server in unterschiedlichen Sprachen geschrieben sind (heterogene Umgebungen!)bietet skalare und strukturierte Datentypen- bietet skalare und strukturierte Datentypen

- kann von verschiedenen Sprachen aus benutzt werden

Datenabstraktion- entspricht von der Idee her z.B. Definitionsdatei in Modula-2- Server exportiert die Schnittstelle, Client importiert die Schnittstelle- Server und Client müssen dieselbe Schnittstelle benutzen

Datenabstraktion

Marshalling/Unmarshalling-Routinen (Stubs)Generierung für jeden im Schnittstellenmodul definierten Datentyp

vsis inf min uni hh ws 11_12 VIS-1 Middlew-34

- Generierung für jeden im Schnittstellenmodul definierten Datentyp (Stubs) automatisch möglich

Page 35: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

CORBA IDL-Beispiel: „RouteFinder.idl“module RouteFinder {typedef string Location;

struct Ratings {Speed s; Length l;Complexity c; Beauty b;typedef sequence<Location> LocationSeq;

typedef long Speed;

Complexity c; Beauty b;};

//typedef float Length;enum Complexity {LOW, MEDIUM, HIGH};typedef boolean Beauty;

// Exceptionsexception UnknownRoute {};exception UnknownLocationyp y

enum Policy { FAST, SHORT,SIMPLE, NICE };

{ Location where };exception Reject{ string reason; };SIMPLE, NICE };

union SingleRating switch (Policy) {Speed s; Length l;

{ g }

// Interfacesinterface Route;Speed s; Length l;

Complexity c; Beauty b;};

interface Route;interface RouteFactory;interface Update;interface Lookup;

vsis inf min uni hh ws 11_12 VIS-1 Middlew-35

interface Lookup;interface ExtendedLookup;

};

Page 36: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

IDL-Beispiel: 'RoomBooking' in CORBA IDL

aus: A Vogel K Duddy: "Java Programming with CORBA" John Wiley & Sons 1997

module RoomBooking {

aus: A. Vogel, K. Duddy: Java Programming with CORBA , John Wiley & Sons, 1997

interface Meeting {// A meeting has two read-only attributes which describe the// purpose and the participants of that meeting// purpose and the participants of that meeting.

readonly attribute string purpose;readonly attribute string participants;

}};interface MeetingFactory {

// A meeting factory creates meeting objects.g y g jMeeting CreateMeeting ( in string purpose, in string participants);

};

vsis inf min uni hh ws 11_12 VIS-1 Middlew-36

Page 37: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

IDL-Beispiel: 'RoomBooking' in CORBA IDL (cont.)interface Room {

// A Room can be booked for several (here: 8) time slots.Sl t { 9 10 11 12 1 2 3 4}enum Slot {am9, am10, am11, pm12, pm1, pm2, pm3, pm4};

// Since cardinality of slots cannot be determined in IDL MaxSlots defines it:const short MaxSlots = 8;

// "Meetings" associates meetings with time slotstypedef Meeting Meetings [MaxSlots];exception NoMeetingsInThisSlot {};exception SlotAlreadyTaken {};

// The attribute "name" names a room:readonly attribute string name;

// "View" returs the bookings for a room, "Book" and "Cancel" book resp. cancel// reservation for a room (here: only for a day):

Meetings View ();g ();void Book ( in Slot a_slot, in Meeting a_meeting ) raises (SlotAlreadyTaken);void Cancel ( in Slot a_slot ) raises (NoMeetingsInThisSlot)

};

vsis inf min uni hh ws 11_12 VIS-1 Middlew-37

};};

Page 38: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Vor- & Nachteile von CORBA

• ... HeterogenitätCORBA löst Probleme der...

• schneller Standardisierungsprozesse

Unter den Randbedingungen...

• ... Integration— legacy

• ... Verteilung

• ... schneller Standardisierungsprozesse— etwa 18 Monate bis zum Markt

• ... große Akzeptanz... Verteilung

• ... Ersetzbarkeit— Information hiding

— über 800 Mitglieder— viele Produkte— viele Sprachabbildungen (Mappings)

• ... Wiederverwendbarkeit— Vererbung

• Erweiterbarkeit

• ... große Verbreitung— Client bereits in jedem Browser ab

Netscape 4 Navigator vorhanden... Erweiterbarkeit

— Polymorphie

• IDL “kleinster gemeinsamer Nenner”Probleme: • IDL kleinster gemeinsamer Nenner• IDL definiert nur Interface, keine Implementierung• keine Semantikspezifikation in IDL-Beschreibung• z T mangelhafte Abbildbarkeit auf Sprachen

Probleme:

vsis inf min uni hh ws 11_12 VIS-1 Middlew-38

z.T. mangelhafte Abbildbarkeit auf Sprachen• schlechte Reversibilität

Page 39: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Erweiterungen des CORBA - Standards• Schwachstelle der erste CORBA-Version (1.0) : Interoperabilität

• CORBA 2 0 (ca 1995): Interoperabilitätsprotokoll integriert (TCP/IP oder DCE)CORBA 2.0 (ca. 1995): Interoperabilitätsprotokoll integriert (TCP/IP oder DCE)

— UNO-Vorschlag: Universal Network Objects

• Unterscheidung: Stand-Alone ORBs vs. Networked ORBs mit

– Inter-ORB-Bridge und Interoperability-Protokoll— Zusätzliche Architekturkomponente: Dynamic Skeleton Interface (DSI)

• lädt adäquate Objektimplementierung aus dem Implementation Repository• lädt adäquate Objektimplementierung aus dem Implementation Repository• setzt generische DII-basierte Requests in objektspezifische Methodenaufrufe um

• Interoperable Objektreferenzen realisiert via:

- General Inter-ORB-Protokoll (GIOP) - wie IIOP (Internet Inter-ORB Prot.)

- Environment Specific Inter-ORB-Protokoll (ESIOP) - wie z B DCE-CIOP- Environment Specific Inter-ORB-Protokoll (ESIOP) - wie z.B. DCE-CIOP(DCE-Common Inter-ORB-Protokoll)

• CORBA 3.0: u.a. Unterstützung für (SW-) Komponententechnologie, UML (Modellierung) etc.

vsis inf min uni hh ws 11_12 VIS-1 Middlew-39

letzte Version: CORBA 3.1 (2008)

Page 40: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Aktueller Vertreter: Java EE

• Voller Name: Java Platform Enterprise Edition 5Java Platform Enterprise Edition abgekürzt Java EE oder früher J2EE ist die Spe— Java Platform, Enterprise Edition, abgekürzt Java EE oder früher J2EE, ist die Spe-zifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Javaprogrammierten Anwendungen und insbesondere Web-Anwendungen.

— Java EE ist damit eine herstellerunabhängige Spezifikation eines Komponentenmodells• inkl dazugehöriger Middleware Services• inkl. dazugehöriger Middleware Services,• inkl. Schnittstellen zu anderen Komponenten

• Komponenten: „Enterprise Java Beans“ (EJB)p „ p ( )— Java-basiertes Modell (keine Programmiersprachenunabhängigkeit)— Konfiguration über XML-Deskriptoren bzw. Java-Annotations

• Laufzeitumgebung: „EJB Container“ (Application Server)— Container implementiert die Java EE SpezifikationContainer implementiert die Java EE Spezifikation— Komponenten (-entwickler) benutzen Java EE APIs— Einmal implementierte Komponenten können auf Produkten verschiedener

H t ll d l d“ d (th ti h )

vsis inf min uni hh ws 11_12 VIS-1 Middlew-40

Hersteller „deployed“ werden (theoretisch…)

Page 41: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Historische EntwicklungEase of De-velopment

Web Services

Java EE5Annotations,EJB 3.0,Persistence API,JSF

EnterpriseJava Plat

Robustness J2EE 1.4Web Services,Management,

Services JSF, Renewed WebServices

J2EE 1 2

Java Plat-form

J2EE 1.3EJB 2.0,ConnectorArchitecture

g ,Deployment, Async.ConnectorEnterprise

Java APIs J2EE 1.2Servlet,JSP, EJB, JMS, JTA,JNDI

JPE

Java APIs

JNDI, RMI/IIOPProject

vsis inf min uni hh ws 11_12 VIS-1 Middlew-41Dec 1999 Sept. 2001 Nov. 2003 May 2006May 1998

Page 42: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Nachfolger: Java EE 6

• NeuerungenP fil T il d Pl tf /API fü ifi h A d ( B— Profiles: Teilmengen der Platform/APIs für spezifische Anwendungen (z.B. Java EE Web Profile)

— SOA: Support für SCA (Service Component Architecture)— Existierende Spezifikationen aufnehmen:

• JSR-196: Java Authentication SPI for Containers JSR 236 Ti f A li i S ?• JSR-236: Timer for Application Servers ?

• JSR-237: Work Manager for Application Servers ?• JSR-299: Web Beans • JSR-311: JAX-RS: Java API for RESTful Web Services

— …

• Spezifikation: Fertigstellung (SDK): Dezember 2009

• In Konkurrenz zu: Microsoft’s “ NET”-Plattform

vsis inf min uni hh ws 11_12 VIS-1 Middlew-42

In Konkurrenz zu: Microsoft s .NET -Plattform

Page 43: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Java EE: Plattform-Architektur

vsis inf min uni hh ws 11_12 VIS-1 Middlew-43

Page 44: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Java Beans (Def.: Sun / Wikipedia)

• JavaBeans sind Software-Komponenten für die Programmiersprache Java. JavaBeans entwickelten sich aus der Notwendigkeit heraus, GUI-Klassen (AWT, Swing) einfach g , ( , g)instanziieren (Reflexion) und übertragen (RMI) zu können. JavaBeans werden auch als Container zur Datenübertragung verwendet. Daher zeichnen sich alle JavaBeans durch folgende Eigenschaften aus:

— Öffentlicher Standardkonstruktor (Default constructor)Öffentlicher Standardkonstruktor (Default constructor)— Serialisierbarkeit (Serializable)— Öffentliche Zugriffsmethoden (Public Getters/Setters)

• Auf Grund dieser Eigenschaften eignen sich JavaBeans auch als Datenobjekte für Persistenzframeworks (siehe Enterprise JavaBeans).

• Eine Komponente ist nur dann eine JavaBean wenn sie der JavaBeans API Specification• Eine Komponente ist nur dann eine JavaBean, wenn sie der JavaBeans API Specificationentspricht, welche die JavaBeans Component Architecture spezifiziert.

• Enterprise JavaBeans (EJB) sind standardisierte Komponenten innerhalb eines Java-EE-S (J E t i Editi ) Si i f h di E t i kl k l h hi hServers (Java Enterprise Edition). Sie vereinfachen die Entwicklung komplexer mehrschich-tiger verteilter Softwaresysteme mittels Java. Mit Enterprise JavaBeans können wichtige Konzepte für Unternehmensanwendungen, z. B. Transaktions-, Namens- oder Sicherheits-dienste, umgesetzt werden, die für die Geschäftslogik einer Anwendung nötig sind.

vsis inf min uni hh ws 11_12 VIS-1 Middlew-44

Page 45: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Java EE: Interoperabilität

vsis inf min uni hh ws 11_12 VIS-1 Middlew-45

Page 46: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Java EE Komponentenmodell(e)• Motivation: Anwendungsfunktionalität (business logic) in geeignete Kom-

ponenten kapseln

• Stateless Session Beans— Jeder Methodenaufruf ist (normalerweise) eine eigene Transaktion

Stateless Beans können zwischen zwei Methodenaufrufen keinen Zustand speichern— Stateless Beans können zwischen zwei Methodenaufrufen keinen Zustand speichern

• Stateful Session BeansTransaktion besteht (normalerweise) aus mehreren Methodenaufrufen (Geschäfts— Transaktion besteht (normalerweise) aus mehreren Methodenaufrufen (Geschäfts-prozess)

— Stateful Beans haben einen internen Zustand, der pro Client gespeichert wird

• Message-Driven Beans— für asynchrone Interaktionen (kein Ergebnis erwartet)— werden durch Nachrichten aus (z.B. JMS) Warteschlangen getriebenwerden durch Nachrichten aus (z.B. JMS) Warteschlangen getrieben

• Entity-Beans gibt es nicht mehr (bzw. nur noch aus Kompatibilitätsgründen) — Persistenz über einfache Java-Objekte (POJOs)

vsis inf min uni hh ws 11_12 VIS-1 Middlew-46

j ( )— konfigurierbare Abbildung auf (z.B.) Datenbanktabellen

Page 47: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Session Beans• Allgemein

— stellen bestimmte Dienste (Methoden) zur Verfügung, die von Clients genutzt werden können ( Business Interfaces)

— sind nicht-persistent, d.h. Zustand wird nicht dauerhaft gespeichert— Zugriff über Local oder Remote Interfaces

• Stateless Session Bean— Es können nie zwei Clients nebenläufig auf einer Bean-Instanz arbeiten— Nach jedem Methodenaufruf wird die Bean wieder „frei“Nach jedem Methodenaufruf wird die Bean wieder „frei

• kann bei Bedarf vom Container zerstört werden• oder wieder an einen anderen Client (bzw. den gleichen) vermittelt werden

— Pooling / Replikation einfach möglich— Beispiel: Abrechnung erstellen

• Stateful Session Beans— eine Instanz pro Client (speichert spezifischen Zustand einer Sitzung)— wird erst nach Beenden einer Sitzung frei— Passivierung/Aktivierung möglich um Speicher zu sparen

vsis inf min uni hh ws 11_12 VIS-1 Middlew-47

Passivierung/Aktivierung möglich, um Speicher zu sparen— Beispiel: Hinzufügen mehrerer Artikel zu einem Warenkorb

Page 48: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Message-Driven Bean

• interagiert nur über Nachrichten und Warteschlangen mit der Außen-weltwelt

• Für Clients ist es nicht möglich, eine solche Bean zu identifizieren oder eine Verbindung zu ihr aufzunehmenoder eine Verbindung zu ihr aufzunehmen

• Beispiel: Asynchroner Austausch von Daten zwischen Unternehmen

vsis inf min uni hh ws 11_12 VIS-1 Middlew-48

Page 49: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Schnittstellen zur Außenwelt

EJB TierJavaJava / SwingRich Client

Java Servlets

WebStartRich Client Applikation Stateless

Session BeansJava Servlets

JSP / JSFWeb Browser / Mobile Geräte

CORBA-IIOP

SOAP

C++ CORBAAnwendungen

Stateful Session Beans

SOAPWebservicesAndere Java

Enterprise-Server

Andere Enterprise-Applikationen

Messaging Protocol

Message-Driven EJBs

vsis inf min uni hh ws 11_12 VIS-1 Middlew-49

pp

Page 50: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Persistenz mit EJB3

• ProgrammiermodellD t d l i f h J Obj kt k lt— Daten werden als einfache Java-Objekte gekapselt

— Automatisches OR-Mapping auf SQL-Tabellen— Beschreibung der Datentypen über AnnotationenBeschreibung der Datentypen über Annotationen— „Objektorientierte“ Anfragesprache:

select o from Order o where o.customer.name=‚Hans‘

• Laufzeitmodell— „Persistence Manager“ zuständig

fü V lt i t t Obj ktfür Verwaltung persistenter Objekte— Meist gebunden an Session

( Transaktionalität)— Verwaltung kann über Entity-

Lebens-zyklus beeinflusst werden:

vsis inf min uni hh ws 11_12 VIS-1 Middlew-50

Page 51: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Deployment-Prozess

vsis inf min uni hh ws 11_12 VIS-1 Middlew-51

Page 52: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Packaging and Deployment

Enterprise Application Archive (EAR)

application.xml

EJB Archive (EJB JAR)

Web Application Archive(WAR)

pp

(EJB-JAR) (WAR)

ServletsSession Beans

jb j l

Message-DrivenBeans

b l

JSPs

ejb-jar.xml web.xml

vsis inf min uni hh ws 11_12 VIS-1 Middlew-52

Page 53: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Java EE 5-kompatible Server

• Open Source— Sun GlassFish

Zertifizierte Server(http://java.sun.com/javaee/overview/compatibility.jsp)Sun GlassFish

— JBoss Application Server (JBossAS)— Apache Geronimo—

( p j j p y j p)

— …

• weitere— (Sun Java System Application Server)— BEA WebLogic (jetzt Oracle)— IBM Websphere Application Server (WAS)— SAP NetWeaver Application Serverpp— Pramati Server (Pramati Technologies)— …— ObjectWeb JOnAS (Java Open Application j ( p pp

Server) by OW2 consortium— …

vsis inf min uni hh ws 11_12 VIS-1 Middlew-53

Page 54: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Java EE Beispiel: „Duke‘s Bank Applicaton“

vsis inf min uni hh ws 11_12 VIS-1 Middlew-54

http://java.sun.com/javaee/5/docs/tutorial/doc/

Page 55: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Java EE Beispiel: „Duke‘s Bank Applicaton“

withdraw(…)( )deposit(…)transferFunds(…)

getAccountsOfCustomer(…)getDetails(…)

createAccount(…)removeAccount(…)addCustomerToAccount(…)removeCustomerFromAccount( )removeCustomerFromAccount(…)

createCustomer( )

vsis inf min uni hh ws 11_12 VIS-1 Middlew-55

http://java.sun.com/javaee/5/docs/tutorial/doc/createCustomer(…)removeCustomer(…)

Page 56: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Java EE Beispiel: „Duke‘s Bank Applicaton“

withdraw(…)Authentifizierung( )deposit(…)transferFunds(…)

Authentifizierung& Autorisierung(bankCustomer)

getAccountsOfCustomer(…)getDetails(…)

( )

createAccount(…)removeAccount(…)addCustomerToAccount(…)removeCustomerFromAccount( )AuthentifizierungremoveCustomerFromAccount(…)

createCustomer( )

g& Autorisierung(bankAdmin)

vsis inf min uni hh ws 11_12 VIS-1 Middlew-56

http://java.sun.com/javaee/5/docs/tutorial/doc/createCustomer(…)removeCustomer(…)

Page 57: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Java EE Beispiel: „Duke‘s Bank Applicaton“

withdraw(…)( )deposit(…)transferFunds(…)

getAccountsOfCustomer(…)getDetails(…)

Transaktion

createAccount(…)removeAccount(…)addCustomerToAccount(…)removeCustomerFromAccount( )removeCustomerFromAccount(…)

createCustomer( )

vsis inf min uni hh ws 11_12 VIS-1 Middlew-57

http://java.sun.com/javaee/5/docs/tutorial/doc/createCustomer(…)removeCustomer(…)

Page 58: Nachrichtenorientierte Middleware &Nachrichtenorientierte ... · Message Oriented Middleware (MOM) • MOM ist die Middleware-Technologie zum Message-Passing-Kommunika-tionsmodell.

Zusammenfassung

• Kommunikationsorientierte Middle-ware

— Alternativen zu RMI/RPC— nachrichtenorientierte Middleware

(MOM)(MOM)

• Anwendungsorientierte Middleware— Motivation und Abgrenzung— historische Vertreter: DCE & CORBA— historische Vertreter: DCE & CORBA— aktuelle(r) Vertreter: Java EE— Beispiel: Duke’s Bank Application

vsis inf min uni hh ws 11_12 VIS-1 Middlew-58