Title: Infrastrukturen f
1Infrastrukturen für Informationssysteme
2Überblick
- N-Tier-Architektur eines Informationssystems
- Begriff Middleware
- Arten von Infrastrukturen
- Verteilte Datenbanken und Gateways (SQL/MED)
- Objektorientierte Middleware (CORBA, RMI, Java
EE, Persistenz-Frameworks) - Nachrichtenbasierte Ansätze (EAI, Messaging)
3Wozu Infrastrukturen für Integration?
- Überwindung technischer Heterogenität
- bisher nur logische und semantische Probleme
betrachtet - Kommunikation zwischen Quelle und
Informationssystem - erfordert einheitliche Protokolle
- einfachste Infrastruktur HTTP-Protokoll zum
Abruf physisch entfernter Informationen - Aufgaben einer Integrationsinfrastruktur
- Quellen finden über eindeutige Bezeichner (URL,
IP-Adresse) oder Suche in Verzeichnissen - Anfragen an die Quellen senden, z.B.
parametrisierte Funktionsaufrufe oder auch
tatsächliche Anfragen in einer Query Language - Quellen müssen Anfragen empfangen, Antworten
generieren und zurückschicken können
4Informationssystem als Verteilte Anwendung (4
Tier Model)
Grundlage für die meisten Applikationen im
E-Bereich E-Business, E-Commerce, E-Government
5Architektur eines Informationssystems
6Middleware
- Problem Transparenz
- Verteilung der Komponenten muss für Benutzer
transparent sein (d.h. verteilt genauso wie auf
einem Rechner) - Orts-, Zugriffs- und Skalierungstransparenz
- Middleware Services (Middleware)
- in der Mitte zwischen Betriebssystemschicht und
der darauf basierenden Netzwerk-Software sowie
der spezifischen Anwendung - Ermöglicht den Zugriff auf lokale und nichtlokale
Services - Middleware Softwareschicht auf Basis
standardisierter Schnittstellen und Protokolle,
die Dienste (Services) für eine transparente
Kommunikation verteilter Anwendungen bereitstellt - Weiterentwickung zu Application Server-Produkten
- SAP Netweaver
- IBM Websphere
- Oracle / BEA Weblogic
7Middleware (Einordnung)
8Ansätze für Integrations-Infrastrukturen
- Infrastruktur-Produkte sind anwendungs-unabhängig
- Über 100 Anbieter mit weltweitem jährl. Umsatz
von zweistelligen Miliardenbeträgen - Arten von Integrations-Infrastrukturen
- verteilte Datenbanken und Gateways
- objektorientierte Middleware (Vorläufer von
Applikationsservern) - nachrichtenbasierte Ansätze (a.k.a. Enterprise
Application Integration, EAI) - dienstbasierte Ansätze (Web Services, Enterprise
Service Bus) ? Folgevorlesung
9Verteilte Datenbanken
- Grundaufgabe Zugriff auf externe Daten aus einer
Datenbank heraus - Homogen
- Basieren auf RDBMS eines einzigen Herstellers
- Verschiedene Instanzen physisch verteilt,
kommunizieren untereinander über oftmals
proprietäre Protokolle (vgl. Oracle) - Heterogen
- bestehen aus einem RDBMS
- Zugriff auf Datenbanken anderer Hersteller über
produktspezifische Gateways - Heterogen/generisch
- Bestehen aus einem RDBMS
- Zugriff auf andere Datenbanken über generische
Schnittstellen - Nicht relational
- RDBMS greift über Wrapper auf nicht relational
gespeicherte Daten zu - Verteilte Dateisysteme (Hadoop Distributed File
System)
10Homogene verteilte Datenbanken
- klassische verteilte Datenbanken
- Vorteile
- Ausfallsicherheit
- Erhöhte Performance (Alternative paralle DB und
Cluster Computing) - Zugriff auf verteilte Datenbankinstanzen
- spezielle externe Sichten (Database Links)
- Orts- aber keine Verteilungstransparenz
- Beispiel
CREATE DATABASE LINK server1 CONNECT TO
my_account IDENTIFIED BY my_pw USING server1
Verwendungin Anfrage
SELECT some_attribute FROM my_table_at_server1
11Heterogene verteilte Datenbanken
- Gateways zum Zugriff auf Datenbanken anderer
Hersteller - Produkte
- IBM DataJoiner, jetzt Teil des WebSphere
Information Integrator www.ibm.com/software/data/
integration - Oracle Transparent Gateways, siehewww.oracle.com
/technology/products/com - Aufgaben eines Gateways
- Syntaktische Übersetzungen von Anfrage(teilen)
zwischen verschiedenen SQL-Dialekten - Übersetzung von Datentypen
- Übersetzung von Zugriffen auf Kataloginformationen
(ermöglicht Optimierung verteilter Anfragen) - SQL-Standardisierung reduziert Heterogenität der
Datenbanken
12Generischer Zugriff auf verteilte Datenbanken
- Generische Schnittstellen für RDBMS
- ODBC Open Database Connectivity
- JDBC Java Database Connectivity
- OLE-DB Object Linking and Embedding
- Beispiel-SzenarioOracle Stored Procedure in
Java, die über JDBC auf entfernte MySQL-DB
zugreift - Nachteile
- Keine systemübergreifenden Anfragen (nicht
gleichzeitig auf lokalen und entfernten Tabellen) - Keine Optimierung der Anfragen
- höherer Entwicklungsaufwand im Vergleich zu
anderen Ansätzen
13Zugriff auf nicht-relationale Quellen SQL/MED
- SQL-Standard 2003 erweitert für
Informations-integration SQL/MED Management of
External Data - Konzepte von SQL/MED
- FOREIGN DATA WRAPPER Zugriff auf Datenquellen
mit einem gemeinsamen Interface, Funktionalität
zum Zugriff auf die jeweilige Quelle, Kommando
registriert Wrapper, Implementierung muss
gebunden sein - FOREIGN SERVER gehört logisch zu einem FOREIGN
DATA WRAPPER, beschreibt den Zugriff auf eine
bestimmte Datenquelle des zugehörigen Typs - FOREIGN TABLE beschreibt die Daten einer
Datenquelle in relationaler Form, kann z.B. zur
Definition von Tabellensichten auf externe
XML-Dateien genutzt werden, Zusammenfassung
verschiedener FOREIGN TABLES über ein FOREIGN
SCHEMA möglich
14SQL/MED (Forts.)
- Anfragebearbeitung
- Registrierung der notwendigen Wrapper, Server und
externen Tabellen ? Verwendung wie lokale
Tabellen - Anfrageteile an jeweilige Datenquelle gesandt,
FOREIGN Server helfen bei Anfrageplanung - Konfiguration der FOREIGN-Konzepte über
Attribut-Wert-Paare (z.B. Beschreibung einer
Textdatei) - Datentyp DATALINK
- zweite Erweiterung in SQL/MED
- explizite Verknüpfung zu einer Datei in einem
DBMS-externen Dateisystem - Dateizugriff über Optionen konfigurierbar
15Objektorientierte Middleware
- Grundidee vollständige Kapselung der physischen
Verteilung von Objekten - Kommunikation
- entfernte Objekte spezifizieren Interface zur
Publikation ihrer Methoden - Aufruf der Methoden wie bei lokalen Objekten
- Middleware-Services übernehmen Aufgaben aus der
Applikation - Lokalisation von Objekten
- komplexere Transaktionsprotokolle
- verteilte Ausführung (Parallelisierung,
Verfügbarkeit) - Anwendungsunabhängigkeit, im Idealfall auch
betriebssystem- und sprachunabhängig - Beispiele CORBA, JAVA RMI, Java EE, .NET
16Was leistet CORBA?
- Common
- Object
- Request
- Broker
- Architecture
- Standard der OMG 1992
- Beruht auf Objektmodell, Objektorientierte
Programmierung - Liefert abstrakte Beschreibung der Schnittstellen
mit Interface Definition Language (IDL) - Object Request Broker (ORB) ermöglicht
Kommunikation und Koordination zwischen
beliebígen CORBA-Objekten - CORBA Services
17CORBA Client-Server-Prinzip
- Client sendet Anforderung für einen Service an
eine Objektimplementierung (Server) - Server besitzt wohldefiniertes Interface, in
Interface Definition Language (IDL) spezifiziert - Übersetzungsroutinen für viele Programmiersprachen
(Language Bindings) - Ausführung des Services, Ergebnisse an Client
zurück
18CORBA Beispiel
19Wie arbeitet CORBA?
- Object Request Broker (ORB)
- Einbettung von ObjektImplementierungen (Server
Objekte) - Vergabe von Objektreferenzen
- Entgegennahme von Aufrufen vom Client
- Transport der Aufrufe zum Server
- Ggf. Aktivierung eines Server-Objektes
- Übergabe des Aufrufs zum Serverobjekt
- Entgegennahme von Ergebnissen und Transport /
Rückgabe zum Client - Unterstützung von Sicherheits- und
Abrechnungsfunktionen
20CORBA Services and Facilities
Facilities
Vertical
Common
Corba
Corba
Corba
Facilities
Health
Tel
Finance
Application
Objects
Workflow
Facility
Horizontal
User
Information
Systems
Task
Common
Agent
Interface
Management
Management
Management
Facilities
Facility
...
Object Request Broker
Naming
Persistence
Life Cycle
Properties
Concurrency
Collections
Security
Trader
Change
Externalization
Events
Transactions
Query
Relationships
Time
Licensing
Management
Common Object
Services
21Kritik an CORBA
- viele Service-Spezifikationen zu allgemein ohne
konkreten Nutzen, z.B. Life Cycle-Service (zur
Unterstützung des Objektlebenszyklus) oder
Relationship Service (zur Verwaltung von
Beziehungen zwischen Objekten) - hohe Komplexität bei Erstellung von
CORBA-basierten Anwendungen aufgrund
Plattformunabhängigkeit (z.B. IDL, spezielle
Datentypen) - enge Kopplung von Objekten über statische
Interface erschwert unabhängige Entwicklung - unterschiedliche ORB-Varianten ? erschwerte
Portabilität von Anwendungen
22Java RMI als Alternative
- RMI
- basiert auf Java
- plattformunabhängig, erfordert nur JVM
- nur entfernte Java-Objekte ansprechbar
- CORBA
- verbirgt alle Abhängigkeiten durch Object Request
Broker - Sprachunabhängige Interface Definition Language
(IDL)
23Java Remote Method Invocation
- Erstellung von verteilten Java-Anwendungen
(Java-to-Java ) - Methoden eines remote Java Objekts werden von
einer JVM aufgerufen, die auf einem anderen Host
läuft. - ein Java Programm kann ein remote Objekt aufrufen
sobald es eine Referenz des remote Objekts hat - über den Bootstrap Naming Service von RMI oder
- über ein (Aufruf-) Argument bzw. einen
Rückgabewert - ein Client kann ein remote Objekt in einem Server
aufrufen - Server kann wiederum ein Client eines
remote Objekts sein - Java Object Serialization zum Speichern und
Retrieval von Java Objekten - Zustand serialisiert über einen Stream
geschrieben und gelesen (wie in Datei) - Sockets als Basis-Kommunikationsmechanismen
24Java-RMI Ablauf
JNDI
Stub
Java VM
1 lookup
Java VM
2 get
Java Applikation
4 call Skeleton
3 call
8 result
Skeleton
5 call OBJ
6 return result
Java Object
Stub
7 result to Stub
25Remote Method Invocation (RMI)
- entferntes Objekt (remote Object)
- Aufruf von Methoden von Java-Objekten, die auf
anderer JVM erzeugt und verwaltet werden (auf
anderem Rechner) - rmic
- rein Java-basierte Lösung ? keine Sprache zur
Schnittstellendefinition - Compiler rmic generiert den Stub für Client und
Server direkt aus den Klassen - Java Skeleton Server Stub
- Registry
- Registrierung der remote objects beim Binder
- Ansprache über Binder oder handle-driven Broker
26RMI Programmierung
- Erstellung eines RMI-Programms in folgenden
Schritten - Definiere das entfernte Interface (Interface
Definition File), das die entfernten Methoden
beschreibt, welche der Client benutzt zur
Interaktion mit dem remote Server - Definiere die Server-Applikation, welche das
entfernte Interface implementiert (Interface
Implementation File) - Aus dem Interface Implementation File kann mit
Hilfe des rmic-Compilers das Stub Class File
generíert werden (Impl_stub.class) - Starte die Registry und den Server
- Definiere den Client, der die entfernten Methoden
des Servers aufruft und starte den Client
27Java EE
- Java Plattform für Business Anwendungen als
sprachspezifischer Ansatz zur Umsetzung einer
objektorientierten Middleware - Enterprise Edition Robuste Plattform für
unternehmensweite, geschäftskritische Anwendungen - Einbindung in Unternehmensinfrastruktur
- Transaktions-Unterstützung
- Datenbank Zugriff
- Komponentenmodell der Java EE basiert auf
klassischer 3-Schichten-Architektur für verteilte
Anwendungen - Zwei Typen von Anwendungsarchitekturen
- Web basiert
- Traditionelle Client/Server Architektur
28Architektur von Java EE 6
29Beispiel Persistenz
- Java Persistence API
- Persistenz-Lösung bridge the gap between
objects and relations - Bestandteile
- Java Persistence API
- Query Language
- Beschreibung der objektrelationalen Abbildung
(Metadaten) - Java Database Connectivity API (JDBC)
- Aufruf von SQL aus Java heraus
- Nutzung der API aus Enterprise Bean, Servlet,
JSP Seite
30Persistenz von Java-Objekten
- Java-Objekte sind normalerweise transient
- Speicherungsmöglichkeiten
- Objektserialisierung
- Serializable
- Manuelles Objekt-Relationales Mapping
- Handgeschriebener JDBC-Code
- OR-Mapping-Tools
- Container Managed Persistence (EJB 2.x)
- Tools und Frameworks Castor/JDO, Hibernate
- Standards Java Persistence API (JPA)
- Objektorientierte Datenbanksysteme (OODBMS)
- db4o (Versant)
31Persistenz von Java-Objekten (Forts.)
- Beispiel Hibernate
- Persistenz-Lösung bridge the gap between
objects and relations
- Bestandteile
- Hibernate Konfigurationsdatei (XML)
- Beschreibung der objektrelationalen Abbildung
(Metadaten) pro persistenter Klasse Hibernate
Mapping XML-Datei - Hibernate Query Language (HQL)
- Hibernate Java Library u.a. benötigte JAR-Dateien
(Low-level API JDBC) - Java-Klassen
- DB mit DB-Schema
32Enterprise Application Integration
- Zwei Sichtweisen auf EAI
- Produkte zur Integration von Softwaresystemen
- Produkte zur Integration von Prozessen
- Prozessintegration vs. Datenintegration
- Verknüpfung von Prozessen zur Laufzeit vs.
Integration eines bestehenden Datenbestandes - Prozessintegration schon wirksam bei Produktion
der Daten - Geschäftsprozesse betreffen viele Anwendungen,
vgl. Workflowmanagement zur Realisierung von
automatisierbaren Geschäftsprozessen - Kommunikation
- synchrone Remote Procedure Calls (RPC) vs.
Asynchroner Nachrichtenaustausch - Vorteile loser Kopplung höherer Durchsatz,
weniger fehleranfällig und flexibler
33Message Broker
SCM
SCM
CRM
ERP
CRM
ERP
Message- broker
E-Commerce
E-Procurement
E-Commerce
E-Procurement
- Prozessintegration durch Nachrichtenaustausch auf
Basis eines Messagebrokers - Aufgaben des Messagebrokers
- Transaktionale Sicherstellung der
Nachrichtenzustellung auch bei Fehlern oder
Systemausfällen - Transformation der Nachrichten aus Quellformat in
verschiedene Zielformate - Analyse von Nachrichten und deren Weiterleitung
gemäß Inhalt oder Typ (content-based routing) - zentrale Administration der Nachrichtenverteilung
- revisionssichere Archivierung aller Nachrichten
34Publish / Subscribe Messaging (Pub/Sub)
- 1m Kommunikation
- virtueller Kanal (Topic)
35Publish-Subscribe
- Aufgaben des Messagebrokers
- Nachrichtenvermittlung von den Publishern an die
Subscriber - Transformation von Nachrichten
- Workflowfunktionalität zur Behandlung von
abhängigen Ereignissen - Produkte
- Java Message Service (JMS)
- IBM MQSeries
- Software AG EntireX
- JBoss, ActiveMQ
- EAI-Systeme mit ERP-Adaptern vs. Message Queues
- Wenig Unterstützung bei Informationsintegration
- aber Transformation von Nachrichten (z.B. als
XML-Dokumente), Methoden des Schema Mapping
denkbar