Middleware Dr. Alois Schütte

Werbung
Middleware
Dr. Alois Schütte
Offene und proprietäre Konzepte
[email protected]
Definition Middlerware
•
•
Kategorien von Middleware
Integrationsbeziehungen
•
•
Kommunikationskonzepte
Anwendungsbeispiel
•
•
•
Schlüsseltechnologien
Anwendungsintegration
Anwendungsbeispiel
Applikations-/ Kommunikationsdienste
Middleware im Web-Umfeld
Komponentenkonzepte
Ausblick
1
Definition Middleware
Middleware
Offene und proprietäre Konzepte
[email protected]
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 sind
‰Anwendungskopplung 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.
2
Middleware
Definition Middleware
Offene und proprietäre Konzepte
[email protected]
Kategorien von Middleware
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:
Präsentationdienste
Präsentation
Applikations- und
Kommunikationsdienste
Funktionalität
Daten- und
Dokumentenmanagementdienste
Daten
3
Middleware
Definition Middleware
Offene und proprietäre Konzepte
[email protected]
Integrationsbeziehungen
Folgende Integrationsbeziehungen lassen sich unterscheiden:
Anwendung 2
Anwendung 1
Präsentation
5
Präsentation
1
1
Funktionalität
2
Funktionalität
1: X-Windows, MS-Windows
5: „cut and paste“
2: Anwendungs-Anwendungskommunikation, z.B. eMail, SWIFT,
JMS, SAP ALE
3
3
Daten
4
Daten
3: Datenschnittstellen,
auch verteilter Datenbankzugriff
4: Replikation, z.B. mittels Oracle
Gateway zu DB2
Der Vortrag konzentriert sich auf Middleware im Bereich
Applikations- und Kommunikationsdienste !
4
Applikations-/ Kommunikationsdienste
Kommunikationskonzepte
Grundlagen
Middleware
Offene und proprietäre Konzepte
[email protected]
Produzent/Konsumenten Verhältnis
Eine Anwendung (Konsument) nimmt Daten vom Produzenten auf.
Produzent
Konsument
Auftraggeber/Auftragnehmer Verhältnis
Hier werden vom Auftragnehmer nach der Datenaufnahme Daten zurück zum
Auftraggeber geliefert.
1.
Auftraggeber
Auftragnehmer
2.
5
Applikations-/ Kommunikationsdienste
Kommunikationskonzepte
RPC
Middleware
Offene und proprietäre Konzepte
[email protected]
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.
6
Applikations-/ Kommunikationsdienste
Middleware
Kommunikationskonzepte
RPC
Offene und proprietäre Konzepte
[email protected]
Program
Program
6: Rückgabe
Parameter
1: Aufruf entfernte
Prozedur
3: Aufruf lokale
Prozedur
4: Rückgabe Ergebnisparameter
2: Nachricht mit
Aufruf
Stub
Stub
5: Nachricht mit Rückgabe
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.
7
Applikations-/ Kommunikationsdienste
Kommunikationskonzepte
Conversation
Middleware
Offene und proprietäre Konzepte
[email protected]
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.
Conversation
Eine weitere Form des synchronen Datenaustausches ist die Conversation. Dabei tauschen
Anwendungen Sequenzen von Send- und Receive-Befehlen aus.
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).
8
Applikations-/ Kommunikationsdienste
Kommunikationskonzepte
Message Queuing
Middleware
Offene und proprietäre Konzepte
[email protected]
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:
9
Applikations-/ Kommunikationsdienste
Middleware
Kommunikationskonzepte
ORB
Offene und proprietäre Konzepte
[email protected]
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.
Client
Interface
Reposotory
Dynamic
Invocation
Server
Client
Stubs
ORB
Interface
Sceleton
Object
Adapter
Object Request Broker Core
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.
10
Applikations-/ Kommunikationsdienste
Kommunikationskonzepte
ORB
Middleware
Offene und proprietäre Konzepte
[email protected]
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.
11
Applikations-/ Kommunikationsdienste
Anwendungsbeispiel
Middleware
Offene und proprietäre Konzepte
[email protected]
Händlerfrontsystem
INAP-PC
WAN
LuxNetDatenbank
LuxNetDatenbank
Gepard, Cresic, …
Buchungssystem
12
Middleware
Applikations-/ Kommunikationsdienste
Offene und proprietäre Konzepte
[email protected]
Anwendungsbeispiel
Internet
LuxNet
Browser
Deutschland
XMLHTML
Konverter
LuxNet
Loader
IIS
MTS
LuxNet
INAP
OPA CS
(Client)
OPA CS
(Client)
OPA CS
(Server)
Oracle
LuxNet
DB
LuxNet
Repl
MQAX
LuxNet
Service
OPA DS
Luxemburg
OPA DS
MQSeries
Client
LuxNet
SAP
GUI
LuxNet
SAP
LuxNet
API
LuxNet
M-Broker
MQSeries
OLY/K+
Interface
IMS
IMS
DB2
KREKIN
GeParD
IMS
DB2
Vorfalls
DB
MQSeries
DB2
LuxNet
DB
LuxNet
Repl
Host
DB2
Sybase
Olympic
Kondor+
13
Middleware
Middleware im Web-Umfeld
Offene und proprietäre Konzepte
[email protected]
Schlü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.
Grundprinzip:
HTML
Interpreter
<html>
<head>
<title>Index</title>
</head>
<frameset rows="51,*"
Dokumenten
Lieferung
HTTP
Client
HTTP
Server
Web Server
Files
http://www.ibsnet.lu/index.htm
Web Browser
Web Server
Client
Server
14
Middleware
Middleware im Web-Umfeld
Offene und proprietäre Konzepte
[email protected]
Schlüsseltechnologien
Eine weitere Schlüsseltechnologie im Internet ist Java.
Funktionsweise Java Programm - WWW
Web Browser
<html>
<head>
<title>Index</title>
</head>
<frameset rows="51,*"
HTML
Dokument
....
<applet code=„order.class“)
</applet>
....
Java Virtual
Machine
Byte Code
Compiler
Java Quell
Code
order.class
Client
Server
15
Middleware im Web-Umfeld
Middleware
Anwendungsintegration
CGI
Offene und proprietäre Konzepte
[email protected]
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.
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.
Vorteile:
Nachteil:
•wird von jedem Webserver unterstützt
•Pro Anfrage wird ein eigener Prozeß gestartet
•keine eigene Programmiersprache
erforderlich
16
Middleware im Web-Umfeld
Middleware
Anwendungsintegration
CGI mit Perl
Offene und proprietäre Konzepte
[email protected]
CGI mit Perl (Practical Extraction and Report Language)
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:
Nachteil:
•leistungsfähige PS mit vielen Funktionen
•für Einsteiger gewöhnungsbedürftige Syntax
•Zahlreiche Bibliotheken
•nicht sehr performant
•weit verbreitet
•Open Source
17
Middleware im Web-Umfeld
Anwendungsintegration
PHP
Middleware
Offene und proprietäre Konzepte
[email protected]
PHP (Hypertext Preprocessor)
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.
18
Middleware im Web-Umfeld
Anwendungsintegration
PHP
Middleware
Offene und proprietäre Konzepte
[email protected]
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.
?>
19
Middleware im Web-Umfeld
Middleware
Anwendungsintegration
PHP
Offene und proprietäre Konzepte
[email protected]
PHP Beispiel (Variablen):
<?php
$var
$vaR
$Var
$vAr
echo
= "Du";
= "und";
= "ich";
= "wir lernen PHP.";
"$var $vaR $Var, $vAr"; // gibt "Du und ich, wir lernen PHP." aus
?>
PHP Beispiel (Variablen: Referenzen):
<?php
$foo
$bar
$bar
echo
echo
= 'Bob';
= &$foo;
= "My name is $bar";
$foo;
$bar;
//
//
//
//
'Bob' der Variablen $foo zuweisen.
Zeiger auf $foo in $bar erzeugen.
$bar verändern...
$foo wurde dadurch ebenfalls verändert.
?>
Hier wird zwei mal „Mein Name ist Bob“ ausgegeben.
20
Middleware im Web-Umfeld
Middleware
Anwendungsintegration
PHP
Offene und proprietäre Konzepte
[email protected]
PHP Beispiel (Array):
<?php
$a[1] = $f;
$a["foo"] = $f;
$a[1][0] = $f;
$a["foo"][2] = $f;
$a[3]["bar"] = $f;
$a["foo"][4]["bar"][0] = $f;
# Ein-Dimensionales Beispiel
#
#
#
#
#
Zwei-Dimensional
man kann numerische und assoziative
Indizes so mischen)
(oder so)
Vier-Dimensional!
?>
PHP Beispiel (Objektinitialisierung):
<?php
class foo {
function do_foo (){
echo "Doing foo.";
}
};
$bar = new foo;
$bar->do_foo ();
?>
21
Middleware im Web-Umfeld
Anwendungsintegration
PHP
Middleware
Offene und proprietäre Konzepte
[email protected]
PHP Beispiel (Klassen):
<?php
class Einkaufswagen {
var $produkte; // Produkte in Ihrem Einkaufswagen
// Füge dem Einkaufswagen $anzahl Artikel der Sorte $artnr zu
function fuege_hinzu ($artnr, $anzahl) {
$this->produkte[$artnr] += $anzahl;
}
// Nimm $anzahl von Artikel wieder aus dem Einkaufswagen
function nimm_heraus ($artnr, $anzahl) {
if ($this->produkte[$artnr] > $anzahl) {
$this->produkte[$artnr] -= $anzahl;
return true;
} else {
return false;
}
}
}
?>
22
Middleware im Web-Umfeld
Anwendungsintegration
PHP
Middleware
Offene und proprietäre Konzepte
[email protected]
PHP Beispiel (Objektinitialisierung):
<?php
$einkaufswagen = new Einkaufswagen;
$einkaufswagen->fuege_hinzu("10", 1);
?>
PHP Beispiel (abgeleitete Klassen):
<?php
class Mein_Einkaufswagen extends Einkaufswagen {
var $besitzer;
function setze_besitzer ($name) {
$this->besitzer = $name;
}
}
?>
23
Middleware im Web-Umfeld
Anwendungsintegration
PHP
Middleware
Offene und proprietäre Konzepte
[email protected]
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);
...
?>
24
Middleware im Web-Umfeld
Middleware
Anwendungsintegration
PHP
Offene und proprietäre Konzepte
[email protected]
Folgendes Schaubild verdeutlicht das letzte Beispiel:
HTML Dokument mit Tabelle:
Datenbanktabelle „photos“
PHP
Prog.
Photo Albums
filename
album
20000201_1.gif
Urlaub2000
Urlaub2000
3
20000201_2.gif
Urlaub2000
Urlaub1999
1
20000201_3.gif
Urlaub2000
...
19990501_1.gif
Urlaub1999
...
25
Middleware im Web-Umfeld
Anwendungsintegration
PHP
Middleware
Offene und proprietäre Konzepte
[email protected]
Ein aktuelles HTML Dokument, das aus dem letzten Anwendungsbeispiel stammt, wurde
mittels PHP erzeugt:
26
Middleware im Web-Umfeld
Middleware
Anwendungsintegration
ASP
Offene und proprietäre Konzepte
[email protected]
ASP (Microsoft Active Server Pages)
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:
Nachteil:
•im MS Umfeld verbreitet
•probrietäre Lösung, da ausschließlich im IIS
Umfeld nutzbar
•in IIS integriert
•durch MS COM Komponenten leichte
Anbindung von MS-Produkten
27
Middleware im Web-Umfeld
Anwendungsintegration
´
Server Side Java
Middleware
Offene und proprietäre Konzepte
[email protected]
Server Side Java
Java war ursprünglich dazu gedacht, clientseitig eingesetzt zu werden (AppletProgrammierung). 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.
28
Middleware im Web-Umfeld
Anwendungsintegration
Servlets
Middleware
Offene und proprietäre Konzepte
[email protected]
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.
29
Middleware im Web-Umfeld
Anwendungsintegration
JSP
Middleware
Offene und proprietäre Konzepte
[email protected]
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();
%>
Oder XML like:
<jsp:declaration>
<![CDATA[
my_java_code_here();
]]>
</jsp:declaration>
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.
30
Middleware im Web-Umfeld
Middleware
Anwendungsintegration
Server Side Technicken im Vergleich
Offene und proprietäre Konzepte
[email protected]
Server Side Technicken im Vergleich
Die folgende Tabelle vergleicht die bisher betrachteten Ansätze:
Session Unterstützung
Datenbankzugriff
Textprocessing
Funktionen
Integration von Scripts
in HTML
Verbreitung
CGI mit Perl
PHP4
ASP
Servlets, JSP
--
++
+
++
Modul
integriert
ODBC
JDBC
++
+
-
-
-
+
+
-
++
++
+
+
31
Middleware
Middleware im Web-Umfeld
Offene und proprietäre Konzepte
[email protected]
Anwendungsbeispiel
Anbindung von Schweizer Banken an Handelsplatz Luxemburg über Internet
LuxNet
SAP
Oracle
LuxNet
DB
LuxNet
API
LuxNet
Repl
LuxNet
M-Broker
MQSeries
SUN
eFiduciary
Java
GUI
Middleware ?
LuxNet
SAP
GUI
Internet
OLY / K+
Interface
DB2
Sybase
Olympic
Kondor+
32
Middleware
Middleware im Web-Umfeld
Offene und proprietäre Konzepte
[email protected]
Anwendungsbeispiel
Systemumfeld zur Realisierung der Anwendungsarchitektur:
Client mit Präsentation
Server mit Logik/Funktionalität
Externer Firewall
Interner Firewall
Web Server
Internet
Server mit Daten
Application Server
Backend Systems
Access Router
Corporate
WAN
Public Net
DMZ
Vorgeschlagen wird eine Middleware auf Basis von EJB.
Corporate LAN
33
Middleware
EJB
Komponentenkonzepte
Offene und proprietäre Konzepte
[email protected]
COM+ - Component Object Model +
Microsofts Server-Komponenten-Konzept
vor Windows 2000 – DCOM
Einsatzgebiet: homogene Windows-Netze
CCM - CORBA Component Model
stark an EJB angelehntes Server-Komponenten-Model
Komponenten können in verschiedenen Sprachen erstellt werden
EJB's sind ein auf ihnen ablauffähiger Typ
34
EJB
Middleware
Ziele des EJB Komponentenentwurfs
Offene und proprietäre Konzepte
[email protected]
OMG (Object Management Group): Internet Inter ORB Protocol
Common Object Request Broker Architecture
35
Middleware
EJB
Übersicht
Offene und proprietäre Konzepte
[email protected]
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.
36
EJB
APIs/Services
Middleware
Offene und proprietäre Konzepte
[email protected]
37
EJB
APIs/Services
JavaRMI & JavaIDL
Middleware
Offene und proprietäre Konzepte
[email protected]
Über die CORBA-COM-Bridge kann auch ein Windows-Client auf EJB's zugreifen
38
EJB
APIs/Services
JNDI
Middleware
Offene und proprietäre Konzepte
[email protected]
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
39
EJB
APIs/Services
JDBC
Middleware
Offene und proprietäre Konzepte
[email protected]
JDBC - Java DataBase Connectivity
- Java Schnittstelle zu relationalen Datenbanken
40
EJB
APIs/Services
JMS
Middleware
Offene und proprietäre Konzepte
[email protected]
JMS - Java Messaging System
- eine Spezifikation von Sun,
- keine Implementierung.
41
Middleware
EJB
Offene und proprietäre Konzepte
[email protected]
Rollenkonzept
Idee: Jeder soll das tun, was er am besten kann.
42
Middleware
EJB
Offene und proprietäre Konzepte
[email protected]
Bewertung
•
•
•
•
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
43
Ausblick
Middleware
Offene und proprietäre Konzepte
[email protected]
Die folgenden Themen sind im Rahmen von Middleware weiter betrachtenswert:
•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)
44
Middleware
Offene und proprietäre Konzepte
[email protected]
Vielen Dank für Ihre Aufmerksamkeit
45
Herunterladen