45
Middleware Offene und proprietäre Konzepte [email protected] 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-/ Kommunikationsdienste Kommunikationskonzepte Anwendungsbeispiel Middleware im Web-Umfeld Schlüsseltechnologien Anwendungsintegration Anwendungsbeispiel Komponentenkonzepte Ausblick

Middleware Offene und proprietäre Konzepte [email protected] 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

Embed Size (px)

Citation preview

Page 1: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

1

Dr. Alois Schütte

Definition Middlerware• Kategorien von Middleware• Integrationsbeziehungen

Applikations-/ Kommunikationsdienste• Kommunikationskonzepte• Anwendungsbeispiel

Middleware im Web-Umfeld• Schlüsseltechnologien• Anwendungsintegration• Anwendungsbeispiel

KomponentenkonzepteAusblick

Page 2: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

2

Definition Middleware

Middleware ist eine Softwareschicht, die auf Basis standartisierter Schnittstellen und Protokolle Dienste für eine transparente Kommunikation verteilter Anwendungen bereitstellt.

Middlewaredienste bilden eine Infrastruktur für die Integration von Anwendungen und Daten in einem heterogenen und verteilten Umfeld.

Motivatoren für die Integration von Anwendungen und Daten sindAnwendungskopplung wg. Fusionen (Mergers & Acquisitions)Bedarf an unternehmensweiter Kommunikation (Supply Chain Management, Collabotative Commerce)Verbesserung der Kundenbeziehung (Customer Releationship Management)Business Intelligence Projekte (Data Warehousing)Aufgaben des Content Managements

Immer, wenn mehrere Datenquellen und Anwendungen zusammengeführt werden müssen ist Middleware erforderlich.

Page 3: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

3

Definition Middleware Kategorien von Middleware

Präsentation

Funktionalität

Daten

Präsentationdienste

Applikations- undKommunikationsdienste

Daten- undDokumentenmanagementdienste

Man kann Middleware kategorisieren nach der Art der Dienste, die sie zur Integration bereitstellt. Ausgangspunkt zur Kategorisierung ist die am Client/Server Modell orientierte Unterscheidung in die Ebenen Präsentation, Funktionalität und Daten.

Daraus ergeben sich die unterschiedlichen Dienste:

Page 4: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

4

Definition Middleware Integrationsbeziehungen

1: X-Windows, MS-Windows5: „cut and paste“

2: Anwendungs-Anwendungskom- munikation, z.B. eMail, SWIFT, JMS, SAP ALE

3: Datenschnittstellen, auch verteilter Datenbankzugriff4: Replikation, z.B. mittels Oracle Gateway zu DB2

Präsentation

Funktionalität

Daten

Präsentation

Funktionalität

Daten

Anwendung 1 Anwendung 2

1 1

4

2

5

33

Der Vortrag konzentriert sich auf Middleware im Bereich Applikations- und Kommunikationsdienste !

Folgende Integrationsbeziehungen lassen sich unterscheiden:

Page 5: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

5

Applikations-/ KommunikationsdiensteKommunikationskonzepte

Grundlagen

Produzent/Konsumenten VerhältnisEine Anwendung (Konsument) nimmt Daten vom Produzenten auf.

Produzent Konsument

Auftraggeber Auftragnehmer

1.

2.

Auftraggeber/Auftragnehmer VerhältnisHier werden vom Auftragnehmer nach der Datenaufnahme Daten zurück zum Auftraggeber geliefert.

Page 6: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

6

Applikations-/ KommunikationsdiensteKommunikationskonzepte

RPC

Ein Anwendungsentwickler soll bei der Implementierung einer Kommunikation zwischen Anwendungen durch die Middleware ein API erhalten, so daß er sich auf die Anwendungslogik konzentrieren kann ohne sich um Details der Kommunikationstechnik kümmern zu müssen.

Betrachtet werden nun synchrone und asynchrone Konzepte.

Remote Procedure Call (RPC)

Bei einem RPC wird aus einem Programm heraus eine Prozedur eines anderen Programms aufgerufen wobei das die Prozedur zur Verfügung stellende Programm meist auf einem „Remote-Rechner“ abläuft.

Vom Prinzip her handelt es sich um einen Auftraggeber/Auftragnehmer Nachrichtenaustausch, bei dem der Auftraggeber eine Nachricht (Name aufzurufende Prozedur, aktuelle Parameter) an einen Auftragnehmer sendet, der dann die Nachricht (Rückgabewerte mit Ergebnissen des lokalen Prozeduraufrufes) zurück sendet.

Die Umsetzung von Prozeduraufruf in eine Nachricht wird von „Stubs“ geregelt.

Page 7: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

7

Applikations-/ KommunikationsdiensteKommunikationskonzepte

RPC

Da ein Stub die Schnittstelle (Name, Parametertypen) der betroffenen Prozedur kennen muß, sind vor einem RPC die Schnittstellen zu deklarieren und die Stubs zu generieren.

RPC Implementierungen stellen dazu Schnittstellendefinitionssprachen und Stubgeneratoren zur Verfügung.

RPC gehören im Prinzip zur Gruppe der synchronen Verfahren, da (wie bei lokalem Prozeduraufruf auch) der Auftraggeber (Aufrufer) so lange blockiert ist, bis der Auftragnehmer (aufgerufene Prozedur) den Auftrag erfüllt hat.

Es existieren aber auch asynchrone RPC (Betriebssystembau, Threads); sie werden nicht weiter betrachtet.

Program Program

Stub Stub

1: Aufruf entfernte Prozedur

2: Nachricht mit Aufruf

3: Aufruf lokale Prozedur 4: Rückgabe Ergebnisparameter

5: Nachricht mit Rückgabe

6: Rückgabe Parameter

Page 8: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

8

Applikations-/ KommunikationsdiensteKommunikationskonzepte

Conversation

Problematisch ist die Parameterübergabe gemäß des „call by reference“ Verfahrens und die Übertragung großer Datenmengen und die Verlagerung des Standortes des entfernten Programms.

Der Hauptkritikpunkt bei der Einsatzentscheidung ist das Fehlen von Standards für RPC Protokolle.

RPC Verfahren bilden die Grundlage für die von OSF propagierten DCE und stellen die Basis für moderne Object Request Broker Systeme dar.

Prog 1 Prog 2

Diese Form wird nicht näher betrachtet. Sie ist aber Bestandteil von SAP RFC; Die bekannteste Implementierung ist SAA von IBM (System Application Architecture).

Conversation

Eine weitere Form des synchronen Datenaustausches ist die Conversation. Dabei tauschen Anwendungen Sequenzen von Send- und Receive-Befehlen aus.

Page 9: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

9

Applikations-/ KommunikationsdiensteKommunikationskonzepte

Message Queuing

Message Queuing

Message Queuing ist eine Variante des asynchronen Nachrichtenaustauschs, bei dem Queue Manager persistente Warteschlangen verwalten.

Die in Industrie und Banken am weitesten verbreitete Implementierung bildet MQSeries von IBM. Hier ist Nachrichtenaustausch über alle gängigen Netzprotokolle (wie SNA, TCP/IP) und Betriebssystemplattformen (wie MVS, OS/400, Unix, NT) möglich.

Warteschlangenkonzepte sind jüngst von Sun als Spezifikation im Java-Umfeld veröffentlicht (JMS) und bereits von unterschiedlichen Herstellern realisiert, u.a. von IBM mit MQSeries V5.2).

Beispiel:

Page 10: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

10

Applikations-/ KommunikationsdiensteKommunikationskonzepte

ORB

Object Request Broker (ORB)

Ein ORB ist ein Kommunikationsmechanismus für die synchrone Interaktion zwischen verteilten, in verschiedenen Programmiersprachen implementierten Objekten über verschiedene Netzwerke und Betriebssystemplattformen hinweg.

Die Bestandteile werden am CORBA ORB verdeutlicht:

Aufgabe des ORB ist es, eine Kommunikation zwischen Client und Server aufzubauer, wobei der Client eine Methode eines Serverobjektes aufruft.

In CORBA werden die Stubs (=Sceleton) mittels eines IDL-Programms ( IDL=Inferface Definition Language, ähnlch wie C++) generiert. Die Serverobjekte werden im Object Adapter verwaltet. Über die Stubs kommunizieren die Objekte statisch. Zur dynamischen Bindung (Objekte werden erst zur Laufzeit bestimmt) werden vom ORB Schnittstellenspezifikationen in einem Interface Repository verwaltet. Das ORB Interface dient zum Zugriff von Objekten auf ORB lokale Dienste.

DynamicInvocation

Client Stubs

ORBInterface

Sceleton ObjectAdapter

InterfaceReposotory

Client Server

Object Request Broker Core

Page 11: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

11

Applikations-/ KommunikationsdiensteKommunikationskonzepte

ORB

Ein ORB kann auf Basis von RPC implementiert werden. Im Vergleich mit einem RPC System müssen dabei zusätzlich die Bestandteile objektorientierter Konzepte wie Vererbung, Polymorphismus realisiert werden.

Wie der RPC baut der ORB eine synchrone Punkt-zuPunkt Verbindung zwischen Client und Server auf. Zur Entkopplung gibt es in CORBA einen Event Service, der im Sinne einer Publish Subscribe Gruppenbeziehung zwischen Objekten vermittelt.

Eine Message Queuing Funktionalität ist in ORB nicht vorgesehen.

Page 12: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

12

Applikations-/ KommunikationsdiensteAnwendungsbeispiel

INAP-PC

Händlerfront-system

LuxNet-Datenbank

Buchungs-system

WAN

LuxNet-Datenbank

Gepard, Cresic, …

Page 13: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

13

Applikations-/ KommunikationsdiensteAnwendungsbeispiel

LuxNetINAP

OPA CS (Server)

IIS

MTS

LuxNetBrowser

Internet

LuxNet Loader

OPA DS

OPA CS(Client)

OPA CS(Client) MQAX

MQSeriesClient

XML-HTML

Konverter

LuxNet Service

OPA DS

Deutschland

HostGeParD

DB2

KREKIN

IMSLuxNet

DB

DB2

VorfallsDB

DB2

IMS

LuxNet Repl

MQSeriesIMS

LuxNet

M-Broker

LuxNet DB

Oracle

MQSeries

LuxNet

API

LuxNet

SAP

LuxNet Repl

LuxNetSAP GUI

Olympic

DB2

Kondor+

Sybase

OLY/K+ Interface

Luxemburg

Page 14: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

14

Middleware im Web-UmfeldSchlüsseltechnologien

Die wohl wichtigste Anwendung im Internet ist das WWW. Dabei handelt es sich um eine verteilte Client/Server Anwendung, über die auf weltweit gespeicherte Hypertext-Dokumente zugegriffen werden kann.

Web Browser Web Server

HTMLInterpreter

HTTPClient

DokumentenLieferung

HTTPServer

http://www.ibsnet.lu/index.htm

<html><head><title>Index</title></head><frameset rows="51,*"

Web ServerFiles

Client Server

Grundprinzip:

Page 15: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

15

Middleware im Web-UmfeldSchlüsseltechnologien

Eine weitere Schlüsseltechnologie im Internet ist Java.

Web Browser

Java VirtualMachine

HTMLDokument

Byte Code

order.class

<html><head><title>Index</title></head><frameset rows="51,*"

Client Server

Java Quell CodeCompiler

....<applet code=„order.class“)</applet>....

Funktionsweise Java Programm - WWW

Page 16: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

16

Middleware im Web-UmfeldAnwendungsintegration

CGI

Die Integration der im Unternehmen vorhandenen Daten kann über dynamisch erzeugte Web Seiten erfolgen.

Im folgenden werden Methoden der Erzeugung dynamischer Web Seiten vorgestellt und bewertet.

Vorteile:

•wird von jedem Webserver unterstützt

•keine eigene Programmiersprache erforderlich

Nachteil:

•Pro Anfrage wird ein eigener Prozeß gestartet

CGI

Die älteste Technik bildet das Common Gateway Interface. Es ist eine standartisierte Schnittstelle, wie Webserver und externe Programme, die dynamische Inhalte erzeugen, kommunizieren.

Funktionsweise:

Im URL-String, der vom Browser zum Webserver gesendet wird, sind der Name des aufzurufenden CGI Skripts und die Parameter enthalten.

Der Webserver startet das CGI Skript als eigenständigen Prozeß.

Der Datenaustausch zwischen Webserver und Skript erfolgt über Umgebungsvariablen und Standartein und –ausgabe.

Die neu gebildete Seite wird dann zum Browser gesendet.

Page 17: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

17

Middleware im Web-UmfeldAnwendungsintegration

CGI mit Perl

Perl ist eine objektorientierte Programmiersprache (Syntax erinnert an C und sh). Sie vereint die Funktionalität der Unix Tools sed, awk und grep und hat somit sehr leistungsfähige Textmanipulationsfunktionen.

Für Web-Anwendungen existieren zusätzliche Module, z.B. Für Datenbankzugriffe, Mail oder zur dynamischen Grafikgenerierung.

Im Bereich freier Web-Server (Apache) gibt es mehrere Projekte, die zum Ziel haben, Perlkode in HTML Quelltexte einzubetten. (Apache::ePerl, Apache::embperl)

Vorteile:

•leistungsfähige PS mit vielen Funktionen

•Zahlreiche Bibliotheken

•weit verbreitet

•Open Source

Nachteil:

•für Einsteiger gewöhnungsbedürftige Syntax

•nicht sehr performant

CGI mit Perl (Practical Extraction and Report Language)

Page 18: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

18

Middleware im Web-UmfeldAnwendungsintegration

PHP

PHP ist eine speziell auf Web-Anwendungen ausgerichtete Script-Sprache (syntaktisch ähnlich C, Perl). PHP ist Open Source und läßt sich als „Modul“ in Apache integrieren (-> performant).

PHP Programme sind in den statischen HTML-Code eingebettet und mittels Tags aktivierbar:

<?php ... ?>

oder (analog zur Client Side Script Sprache JavaScript)

<script type=„text/php“>

echo (“PHP Code“);

</script>

Neben den von C bekannten Kontrollstrukturen sind die von Perl übernommenen mehrdimensionalen Arrays, assoziativen Arrays und Hash Tabellen in die Sprache integriert.

Die Stärke von PHP liegt in der Verfügbarkeit von spezifischen Funktionen zur dynamischen Generierung von Objekten für HTML Dokumente, wie z.B. GIF Grafiken, PDF Dokumente sowie der Anbindung an alle bekannten Datenbanken.

In der neuesten Version PHP4 sind nun objektorientierte Erweiterungen verfügbar und die Sessionunterstützung ist verbessert.

PHP (Hypertext Preprocessor)

Page 19: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

19

Middleware im Web-UmfeldAnwendungsintegration

PHP

PHP Beispiel (Ausgabe in HTML Dokument):

<html> <head> <title>Beispiel</title> </head> <body>

<?php echo "Hallo, ich bin ein PHP-Skript!"; ?>

</body> </html>

PHP Beispiel (Kommentar):

<?php echo "Dies ist ein Test"; // einzeiliger Kommentar im c++-Stil. /* Dies ist ein mehrzeiliger Kommentar und noch eine Kommentar-Zeile */ echo "Dies ist noch ein Test"; echo "... und ein abschliessender Test"; # Shell-artiger Kommentar.

?>

Page 20: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

20

Middleware im Web-UmfeldAnwendungsintegration

PHP

PHP Beispiel (Variablen):

<?php $var = "Du"; $vaR = "und"; $Var = "ich"; $vAr = "wir lernen PHP."; echo "$var $vaR $Var, $vAr"; // gibt "Du und ich, wir lernen PHP." aus

?>

PHP Beispiel (Variablen: Referenzen):

<?php $foo = 'Bob'; // 'Bob' der Variablen $foo zuweisen. $bar = &$foo; // Zeiger auf $foo in $bar erzeugen. $bar = "My name is $bar"; // $bar verändern... echo $foo; // $foo wurde dadurch ebenfalls verändert. echo $bar;

?>

Hier wird zwei mal „Mein Name ist Bob“ ausgegeben.

Page 21: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

21

Middleware im Web-UmfeldAnwendungsintegration

PHP

PHP Beispiel (Array):

<?php

$a[1] = $f; # Ein-Dimensionales Beispiel $a["foo"] = $f; $a[1][0] = $f; # Zwei-Dimensional $a["foo"][2] = $f; # man kann numerische und assoziative

# Indizes so mischen) $a[3]["bar"] = $f; # (oder so) $a["foo"][4]["bar"][0] = $f; # Vier-Dimensional!

?>

PHP Beispiel (Objektinitialisierung):

<?phpclass foo {

function do_foo (){ echo "Doing foo.";

} };

$bar = new foo; $bar->do_foo ();

?>

Page 22: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

22

Middleware im Web-Umfeld Anwendungsintegration

PHP

PHP Beispiel (Klassen):

<?php class Einkaufswagen {

var $produkte; // Produkte in Ihrem Einkaufswagen // Füge dem Einkaufswagen $anzahl Artikel der Sorte $artnr zufunction fuege_hinzu ($artnr, $anzahl) {

$this->produkte[$artnr] += $anzahl; } // Nimm $anzahl von Artikel wieder aus dem Einkaufswagenfunction nimm_heraus ($artnr, $anzahl) {

if ($this->produkte[$artnr] > $anzahl) { $this->produkte[$artnr] -= $anzahl; return true;

} else { return false;

} }

} ?>

Page 23: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

23

Middleware im Web-UmfeldAnwendungsintegration

PHP

PHP Beispiel (Objektinitialisierung):

<?php$einkaufswagen = new Einkaufswagen; $einkaufswagen->fuege_hinzu("10", 1);

?>

PHP Beispiel (abgeleitete Klassen):

<?phpclass Mein_Einkaufswagen extends Einkaufswagen {

var $besitzer; function setze_besitzer ($name) {

$this->besitzer = $name; }

}

?>

Page 24: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

24

Middleware im Web-UmfeldAnwendungsintegration

PHP

PHP Beispiel (Erzeugung von HTML Tabelle mit Datenbankinhalt):

<?php ... $title = "Photo Albums"; $page = "albums"; include "include/header.inc"; /* Get a list of the available albums */ $albums = mysql_query("select filename,album,count(*) as num_albums

from photos group by album"); echo "<table align=center>\n"; /* Loop through each album */ while($row=mysql_fetch_row($albums)) { $row[1] = stripslashes($row[1]); $thumb = thumbnail($row[0]); if(strlen($thumb)) { echo "<tr><td><a href=\"$PHP_SELF?album=".urlencode($row[1]); $size = getimagesize($thumb); echo "\"><img src=\"$thumb\" border=0 $size[3]></a></td>"; echo " <td><font size=+1><b>".$row[1]."</b></font><br>"; echo "$row[2] photos<br></td></tr>\n"; } } echo "</table>\n"; mysql_free_result($albums);...?>

Page 25: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

25

Middleware im Web-UmfeldAnwendungsintegration

PHP

filename album

20000201_1.gif Urlaub2000

20000201_2.gif Urlaub2000

20000201_3.gif Urlaub2000

19990501_1.gif Urlaub1999

...

Datenbanktabelle „photos“ PHPProg.

Urlaub2000 3

Urlaub1999 1

...

HTML Dokument mit Tabelle:

Photo Albums

Folgendes Schaubild verdeutlicht das letzte Beispiel:

Page 26: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

26

Middleware im Web-UmfeldAnwendungsintegration

PHP

Ein aktuelles HTML Dokument, das aus dem letzten Anwendungsbeispiel stammt, wurde mittels PHP erzeugt:

Page 27: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

27

Middleware im Web-UmfeldAnwendungsintegration

ASP

Microsofts Lösung zum Server Side Scripting ist ASP. Die Unterstützung von ASP ist in IIS (Internet Informations Service) integriert.

Als Programmiersprache für ASP dienen wahlweise Jscript und VBScript (Visual Basic Script) oder jede andere Skriptsprache. Die Verwendung von Jscript vereinfacht dem Entwickler die Einarbeitung, da Jscript auch Clientseitig verwendet wird. Der Funktionsumfang von Jscript ist eher spärlich (verglichen mit PHP).

Die Stärtken von ASP beruhen auf dem Objektmodell, das die Verwendung von COM Komponenten ermöglicht.

ASP bietet sich an, wenn eine Anwendung in einer reinen Microsoft Umgebung zu realisieren ist und die Integration von MS-Officeprodukten angestrebt wird.

Vorteile:

•im MS Umfeld verbreitet

•in IIS integriert

•durch MS COM Komponenten leichte Anbindung von MS-Produkten

Nachteil:

•probrietäre Lösung, da ausschließlich im IIS Umfeld nutzbar

ASP (Microsoft Active Server Pages)

Page 28: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

28

Middleware im Web-UmfeldAnwendungsintegration´ Server Side Java

Java war ursprünglich dazu gedacht, clientseitig eingesetzt zu werden (Applet-Programmierung). Dazu sind im Laufe der Zeit eine Vielzahl von Klassenbibliotheken entstanden, die auch serverseitig nutzbar sind.

Besondere Vorzüge bieten Netzwerkfähigkeit und Unterstützung von verteilten Anwendungen durch Java RMI (Remote Method Invocation) oder CORBA sowie die komfortable Anbindung an Datenbanken durch JDBC (Java Database Connectivity).

Wird Java über CGI Skripten angesprochen, so sind alle Nachteile der CGI Technik in Kauf zu nehmen (pro Request wird ein Prozeß, der die JVM darstellt erzeugt).

Daher liegt es nahe, die JVM in den Web-Server zu verlagern. Dies ist der Weg, der bei Servlets und JSP (Java Server Pages) eingeschlagen wird.

Server Side Java

Page 29: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

29

Middleware im Web-UmfeldAnwendungsintegration

Servlets

Servlets sind durch Suns Java Servlet-API standartisiert und (analog zu Applets) nichts anderes als Klassen, die ein spezifisches Interface (javax.servlet.Servlet) implementieren.

Das Servlet wird compiliert und beim ersten Aufruf auf dem Server gestartet. Ab diesem Zeitpunkt wartet das Programm auf das Eintreffen eines Requests, behandelt ihn, generiert die entsprechende Ausgabe und wartet auf einen neuen Request. Dadurch wird nur ein Prozeß für alle gleichartigen Requests erzeugt (gute Performance).

Das Servlet API bietet eine Vielzahl von Funktionen zur Realisierung Web-Anwendungen inklusive Sessionverwaltung durch Cookies.

Java Servlets generieren jeweils eine gesamte HTML Seite als Antwort. Das Einfügen der Ausgabe des Servlets in eine ansonsten statische HTML Seite ist (außer über probrieräre Erweiterungen von Serverherstellern) nicht machbar.

Servlets

Page 30: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

30

Middleware im Web-UmfeldAnwendungsintegration

JSP

JSP (Java Server Pages)

Zur Einbettung von Java Programmen in HTML Seiten hat Sun JSP spezifiziert. Die Einbettung erfolgt (analog zu ASP oder PHP) über spezielle Tags:

<%!my_java_code_here();

%>

<jsp:declaration><![CDATA[

my_java_code_here();]]>

</jsp:declaration>

Oder XML like:

Innerhalb der Applikation kann der Benutzer ebenfalls auf API Funktionen zugreifen.

Zur Ausführung von Servlets oder JSP wird immer ein Webserver benötigt, der diese Unterstützung integriert hat.

Zur Realisierung größerer Anwendungen werden heute EJB (Enterprise Java Beans) eingesetzt. Das sind modulare, komponentenorientierte Softwarewerkzeuge.

Page 31: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

31

Middleware im Web-UmfeldAnwendungsintegration

Server Side Technicken im Vergleich

Server Side Technicken im Vergleich

Die folgende Tabelle vergleicht die bisher betrachteten Ansätze:

CGI mit Perl PHP4 ASP Servlets, JSP

Session Unterstützung -- ++ + ++

Datenbankzugriff Modul integriert ODBC JDBC

Textprocessing Funktionen

++ + - -

Integration von Scripts in HTML

- + + -

Verbreitung ++ ++ + +

Page 32: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

32

Middleware im Web-UmfeldAnwendungsbeispiel

LuxNet

M-Broker

LuxNet DB

Oracle

MQSeries

LuxNet

API

LuxNet

SAP

Olympic

DB2

Kondor+

Sybase

OLY / K+ InterfaceSUN

LuxNetSAP

GUI

Internet

Mid

dle

war

e ?

eFiduciaryJava

GUI

LuxNet Repl

Anbindung von Schweizer Banken an Handelsplatz Luxemburg über Internet

Page 33: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

33

Middleware im Web-UmfeldAnwendungsbeispiel

Systemumfeld zur Realisierung der Anwendungsarchitektur:

Client mit Präsentation Server mit Logik/Funktionalität Server mit Daten

Externer Firewall Interner Firewall

Access Router

Web Server Application Server Backend Systems

Public Net DMZ Corporate LAN

Internet

Corporate WAN

Vorgeschlagen wird eine Middleware auf Basis von EJB.

Page 34: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

34

EJBKomponentenkonzepte

COM+ - Component Object Model + Microsofts Server-Komponenten-Konzeptvor Windows 2000 – DCOMEinsatzgebiet: homogene Windows-Netze

CCM - CORBA Component Modelstark an EJB angelehntes Server-Komponenten-ModelKomponenten können in verschiedenen Sprachen erstellt werdenEJB's sind ein auf ihnen ablauffähiger Typ

Page 35: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

35

EJBZiele des EJB Komponentenentwurfs

OMG (Object Management Group): Internet Inter ORB ProtocolCommon Object Request Broker Architecture

Page 36: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

36

EJBÜbersicht

EJB-Server- bilden die Infrastruktur für EJB-Container,- Verwalten Threads und- dienen der Verwaltung von Datenbank-Verbindungen.

EJB-Container- bilden die Infrastuktur für Enterprise Beans,- stellen den Transaktionsdienst zur Verfügung und- verwalten den Zugriffsschutz (Security).

Enterprise Beans- realisieren die Anwendungslogik.

Page 37: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

37

EJBAPIs/Services

Page 38: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

38

EJBAPIs/Services

JavaRMI & JavaIDL

Über die CORBA-COM-Bridge kann auch ein Windows-Client auf EJB's zugreifen

Page 39: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

39

EJBAPIs/Services

JNDI

JNDI - Java Naming and Directory Interface- Clients ermitteln über den Namensdienst das Home-Objekt von EJB's- kein neuer Dienst, greift auf bestehende Dienste zu

Page 40: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

40

EJBAPIs/Services

JDBC

JDBC - Java DataBase Connectivity- Java Schnittstelle zu relationalen Datenbanken

Page 41: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

41

EJBAPIs/Services

JMS

JMS - Java Messaging System- eine Spezifikation von Sun, - keine Implementierung.

Page 42: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

42

EJBRollenkonzept

Idee: Jeder soll das tun, was er am besten kann.

Page 43: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

43

EJBBewertung

• Neues Server-Komponenten-Modell• Gehört zur Komponenten-orientierten Middleware• Einbindung praktisch aller Technologien von Bedeutung• Man kann EJB's als eine Erweiterung von CORBA sehen

Page 44: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

44

Ausblick

•Integrationsarchitekturen•Application Server•Integrations Server•Internet Frontend Systeme

•EAI Werkzeuge•Toptier•X-Gen•Mercator

•Middleware im SAP Umfeld•RFC (Remote Function Call)•ALE (Application Link Enabling)

Die folgenden Themen sind im Rahmen von Middleware weiter betrachtenswert:

Page 45: Middleware Offene und proprietäre Konzepte as@ibsnet.lu 1 Dr. Alois Schütte Definition Middlerware Kategorien von Middleware Integrationsbeziehungen Applikations-

MiddlewareOffene und proprietäre Konzepte

[email protected]

45

Vielen Dank für Ihre Aufmerksamkeit