17.11.2013 Aufrufe

Systemarchitekturen für verteilte Anwendungen Überblick ...

Systemarchitekturen für verteilte Anwendungen Überblick ...

Systemarchitekturen für verteilte Anwendungen Überblick ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Institut <strong>für</strong> Telematik | Universität zu Lübeck<br />

1-2 <strong>Überblick</strong><br />

<strong>Systemarchitekturen</strong> <strong>für</strong><br />

<strong>verteilte</strong> <strong>Anwendungen</strong><br />

Kapitel 1: Einführung<br />

Sommersemester 2007<br />

Prof. Dr. Christian Werner<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Entwicklung der Rechnerkommunikation<br />

Begriff des <strong>verteilte</strong>n Systems bzw. der <strong>verteilte</strong>n<br />

Anwendung<br />

Warum <strong>verteilte</strong> Systeme?<br />

Verteilte <strong>Anwendungen</strong> heute<br />

<strong>Systemarchitekturen</strong><br />

Generelle Programmierverfahren<br />

Weiterführende Literatur<br />

1-3 Computernetzwerke: 1960s-1970s<br />

1-4 Computernetzwerke: 1980s<br />

<br />

<br />

Terminal-Host-<br />

Kommunikation über<br />

serielle Leitungen<br />

Host-zu-Host-<br />

Kommunikation<br />

Basierend auf proprietären<br />

Netzwerken wie IBM SNA,<br />

DECnet<br />

schon bald basierend auf<br />

Paketvermittlung und damit<br />

TCP/IP-Netzen<br />

<br />

<br />

<br />

Hochleistungs-LANs zu<br />

niedrigen Kosten<br />

PC-Netze<br />

Verteilte Client-Server-<br />

Systeme als neues Paradigma<br />

Öffentliche und private WANs<br />

Ausgereifte Technik der<br />

Paketvermittlung<br />

Wichtige neue <strong>Anwendungen</strong><br />

(Email, File Transfer, Telnet,<br />

etc.)<br />

Offene Standards setzen sich<br />

eindeutig durch (OSI, TCP/IP)


1-5 Computernetzwerke: Internet seit 1990 1-6 Computernetzwerke: 2000s<br />

"IP on everything" (Vint Cerf, Internet-Patriarch)<br />

In Richtung eines globalen Netzwerkes mit vielen Diensten<br />

und IP(v6) als dem gemeinsamen Kern.<br />

Enterprise networks<br />

Communication infrastructure<br />

of the IT system. E-business ...<br />

Home networks<br />

Info, entertainment. Home<br />

office. Internet appliances.<br />

IP(v6)<br />

Web news, info,<br />

publishing, ...<br />

E-commerce,<br />

e-banking, ...<br />

Tele-education.<br />

Tele-medicine ...<br />

Mobile communications<br />

Internet-enabled multiservice<br />

mobile devices.<br />

Ziel: Gemeinsame Infrastruktur <strong>für</strong><br />

Computerkommunikation (Multimedia) und<br />

persönliche Kommunikations-dienste<br />

(message, voice/video-telephony).<br />

1-7 Netzwerke und <strong>verteilte</strong> Systeme<br />

1-8 Was ist ein <strong>verteilte</strong>s System?<br />

<br />

<br />

<br />

<br />

Wir haben die Entwicklung der<br />

Computernetzwerke betrachtet.<br />

Netzwerke sind nicht im Fokus dieser Vorlesung,<br />

wir werden uns auf eine kurze Einführung<br />

beschränken<br />

ABER:<br />

Man benötigt ein Computernetzwerk, um ein <strong>verteilte</strong>s<br />

System zu realisieren.<br />

Was also ist ein <strong>verteilte</strong>s System?<br />

Eine praxisorientierte Definition:<br />

Ein <strong>verteilte</strong>s System<br />

<br />

<br />

<br />

besteht aus einer Menge autonomer Computer<br />

die durch ein Computernetzwerk miteinander<br />

verbunden sind und<br />

mit einer Software zur Koordination ausgestattet<br />

sind.<br />

Distributed System (User View)


1-9 Was ist ein <strong>verteilte</strong>s System?<br />

1-10<br />

Beispiel: Das Internet<br />

<br />

<br />

Eine allgemeinere Definition:<br />

Ein <strong>verteilte</strong>s System ist ein System, in dem<br />

Hard- und Softwarekomponenten,<br />

die sich auf miteinander vernetzten Computern befinden,<br />

miteinander kommunizieren und ihre Aktionen koordinieren,<br />

indem sie Nachrichten austauschen.<br />

☎<br />

☎<br />

ISP<br />

intranet<br />

☎<br />

☎<br />

backbone<br />

<br />

Eine <strong>verteilte</strong> Anwendung ist eine Anwendung, die ein<br />

<strong>verteilte</strong>s System zur Lösung eines Anwendungsproblems<br />

nutzt. Sie besteht aus verschiedenen Komponenten, die<br />

mit den Komponenten des VS sowie den Anwendern<br />

kommuniziert.<br />

desktop computer:<br />

server:<br />

network link:<br />

satellite link<br />

1-11 Warum <strong>verteilte</strong> Systeme?<br />

1-12 Rechnerverbünde (I)<br />

<br />

<br />

<br />

<br />

Durch die Verteilung von Systemkomponenten wird das<br />

Gesamtsystem normalerweise deutlich komplexer.<br />

Das heißt, der Aufwand zur Erstellung eines VS ist deutlich<br />

größer als der eines zentralisierten Systems.<br />

Warum also VS??<br />

Lösung: Vorteile eines Rechnerverbunds<br />

<br />

<br />

<br />

<br />

Kommunikationsverbund<br />

Übertragung von Daten, insbesondere Nachrichten, an<br />

verschiedene, räumlich getrennte Stellen<br />

Beispiel: Email<br />

Informationsverbund<br />

Verbreiten von Information an interessierte Personen<br />

Beispiel: WWW<br />

Datenverbund<br />

Speicherung von Daten an verschiedenen Stellen<br />

Bessere Speicherauslastung, erhöhte Verfügbarkeit, erhöhte<br />

Sicherheit<br />

Lastverbund<br />

Aufteilung stoßweise anfallender Lasten auf verschiedene Rechner<br />

Gleichmäßige Auslastung verschiedener Ressourcen


1-13 Rechnerverbünde (II)<br />

1-14 Verteilte <strong>Anwendungen</strong> heute<br />

<br />

<br />

<br />

Leistungsverbund<br />

Aufteilung einer Aufgabe in Teilaufgaben<br />

Verringerte Antwortzeiten<br />

Wartungsverbund<br />

Zentrale Störungserkennung und –behebung<br />

Schnellere und billigere Wartung verschiedener<br />

Rechner<br />

Funktionsverbund<br />

Verteilung spezieller Aufgaben auf spezielle Rechner<br />

(Feldrechner, Superrechner, Transputer)<br />

Bereitstellung versch. Funktionen an versch. Orten<br />

1-15 Ein paar Schlagworte …<br />

1-16 B2B<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

B2C (Business-to-Consumer, kennt jeder)<br />

B2B<br />

EAI<br />

SOA<br />

P2P<br />

Grid Computing<br />

Middleware<br />

Enterprise Application<br />

<br />

<br />

<br />

<br />

Business To Business (B2B) rationalisiert Handel<br />

zwischen Unternehmen<br />

Ziel: schnellere Abwicklung von<br />

Geschäftsprozessen zwischen Unternehmen<br />

Gibt es eigentlich schon seit 20 Jahren (EDI), aber<br />

damals noch ohne Internet heute neuer<br />

Schwung<br />

Zum Teil recht erfolgreich<br />

<br />

….


1-17 B2B-Architektur<br />

1-18 Enterprise Application Integration (EAI)<br />

Unternehmen A<br />

<br />

Ziel:<br />

Zusammenbringen all derjenigen <strong>Anwendungen</strong>,<br />

die jeweils Teilaufgaben von Geschäftsprozessen<br />

abdecken,<br />

Unternehmen B<br />

B2B elektronischer Handel<br />

<br />

<br />

so, dass alle Geschäftsaufgaben erfüllt werden können<br />

und vor allem<br />

dass sie sich so verhalten, als wären sie von Anfang an<br />

einheitlich entworfen worden<br />

B2B<br />

Marktplatz<br />

Unternehmen C<br />

<br />

Also: Integration heterogener <strong>Anwendungen</strong> zu<br />

einer nach außen hin einzigen Anwendung<br />

Unternehmen D<br />

Aus: Keller, EAI, dpunkt, 2002.<br />

1-19 Architektur von EAI<br />

1-20 Bedarf <strong>für</strong> EAI<br />

Anwendung C<br />

Umwelt<br />

<br />

Internet, B2x (x={B, C, E}), neue<br />

Geschäftsprozesse: Verfügbarmachen großer<br />

Datenbestände nach außen<br />

Anwendung A<br />

EAI Integrations-Server<br />

<br />

Trend zu ERP-Lösungen; Anbindung an<br />

spezialisierte Lösungen und Zugriff über das Web<br />

(Stichworte MySAP, Netweaver, s. später)<br />

Anwendung B<br />

Anwendung E<br />

<br />

Firmenfusionen und damit die Notwendigkeit der<br />

Integration unterschiedlicher IT-Systeme<br />

Anwendung D<br />

Nach: Keller, EAI, dpunkt, 2002.


1-21 Anwendungsfälle <strong>für</strong> EAI<br />

1-22 N:1-Multichannel<br />

<br />

<br />

<br />

Multichannel-Architekturen<br />

Historisch entstanden durch die Entwicklung<br />

mehrerer Vertriebskanäle, direkte Kundenkontakte<br />

etc.<br />

A2A-Kommunikation<br />

Geschäftsprozessintegration<br />

<br />

Beispiel <strong>für</strong> den Zugriff auf homogene<br />

Kernanwendungen<br />

Web Dialog<br />

Gateway-<br />

Gateway-<br />

Server<br />

Server<br />

Makler<br />

Makler<br />

Makler<br />

Makler<br />

Laptops<br />

Unternehmensgrenze<br />

Call-Center<br />

Middleware<br />

Back-Office (Kernanwendungen)<br />

Aus: Keller, EAI, dpunkt, 2002.<br />

1-23 M:N-Multichannel<br />

1-24 A2A-Kommunikation<br />

<br />

Getrennte und vollkommen heterogene<br />

Backoffice-<strong>Anwendungen</strong><br />

<br />

Problem: viele Insellösungen auf vielen Rechnern<br />

Legacy<br />

Purchased Packages<br />

Applications<br />

E-Marketplaces<br />

HTTP/XML<br />

Web Interface<br />

Call Center Interface<br />

Außendienst-<br />

Interface<br />

weitere ...<br />

Dialogführung, Integration,<br />

Middleware<br />

Girokonto-<br />

Maschine<br />

Online Trading<br />

Maschine<br />

Sachversicherungs-<br />

Maschine<br />

weitere ...<br />

Autonomous Divisions<br />

Message Download<br />

queue<br />

file<br />

FTP<br />

Screen<br />

Screen<br />

Download<br />

CICS gateway Trans-<br />

scrape<br />

scrape<br />

Transaction<br />

file<br />

action<br />

file<br />

file<br />

Sockets<br />

Gateway<br />

RPC<br />

ORB<br />

E-mail<br />

Applications in Trading<br />

Message<br />

SMTP<br />

Partners<br />

Transactioaction<br />

queue<br />

Trans-<br />

file<br />

file Message<br />

queue<br />

CICS gateway<br />

XML/<br />

Browser<br />

HTTP<br />

Download<br />

End-User Development<br />

Message<br />

file<br />

Outsourced and ASP Applications<br />

APPC<br />

Applications From Mergers and Acquisitions<br />

Aus: Keller, EAI, dpunkt, 2002.<br />

Aus: Keller, EAI, dpunkt, 2002.


1-25 A2A-Kommunikation: Lösung<br />

1-26 Geschäftsprozessintegration<br />

<br />

<br />

Meist gelöst durch einen Softwarebus, an den alle<br />

<strong>Anwendungen</strong> angedockt sind.<br />

Bekannteste Lösung: CORBA<br />

<br />

<br />

<br />

Eigentlicher Namensgeber von EAI<br />

Heute oft zu großen (aber nicht allen) Teilen durch ERP<br />

abgedeckt<br />

Andere Lösung: Workflow-Management-System<br />

Geschäftsprozess<br />

System 1<br />

System 2<br />

System n<br />

System 3<br />

Aus: Keller, EAI, dpunkt, 2002.<br />

Softwarebus<br />

app 1 app 2 app 3 app 4<br />

Aus: Keller, EAI, dpunkt, 2002.<br />

1-27 B2B, EAI und andere<br />

1-28 Realisierung von EAI und B2B<br />

<br />

<br />

B2B und EAI setzen sehr ähnliche Technologien<br />

ein, weswegen dieser Kurs sich auch mit beidem<br />

beschäftigt<br />

Aber auch B2C (Business To Consumer) oder<br />

B2E (Business To Employee) <strong>Anwendungen</strong><br />

verwenden ähnliche Architekturen.<br />

<br />

<br />

<br />

Wichtigstes Kriterium: Verwendung offener<br />

Standards<br />

Nur so lässt sich eine Einbindung existierender<br />

Komponenten sowie von Partnern gewährleisten<br />

Beispiele:<br />

Internet-Protokolle (TCP/IP)<br />

Allg. bekannte Benutzerschnittstellen (Web-Browser)<br />

Offene APIs (z.B. Java, .NET)


1-29 Service-Oriented Architectures<br />

1-30 Grundlegende <strong>Systemarchitekturen</strong><br />

<br />

<br />

<br />

<br />

Service – eine<br />

Softwarekomponente mit einer<br />

formal beschriebenen Schnittstelle<br />

Gibt Zugang zu Anwendungslogik<br />

bzw. -komponenten<br />

Kommuniziert durch Anfragen und<br />

Antworten (synchron und<br />

asynchron)<br />

Typischerweise realisiert auf<br />

<strong>verteilte</strong>n Plattformen wie COM,<br />

CORBA, J2EE oder MQSeries<br />

J2EE<br />

Service<br />

OS390<br />

COM<br />

Service<br />

HTML<br />

Service<br />

Java<br />

Service<br />

Service/Messaging Backbone<br />

Service<br />

Service<br />

Service<br />

OS390<br />

Service<br />

Service<br />

SAP<br />

Security<br />

Trans<br />

Monitor<br />

Service<br />

CORBA<br />

Service<br />

OS/390<br />

Registry<br />

<br />

Verteilte Systeme/<strong>Anwendungen</strong> verwenden zur<br />

Organisation der Kommunikation eine oder<br />

mehrere von wenigen Basisarchitekturen<br />

Client-Server<br />

Publish-Subscribe<br />

P2P<br />

Varianten (Multiple Servers, Thin Client, Spontaneous<br />

Computing, …)<br />

<br />

Web Services sind eine wichtige<br />

Grundlage von SOAs<br />

1-31 Client-Server<br />

1-32 Variante: Mehrfache Server<br />

Service<br />

Client<br />

Client<br />

invocation<br />

result<br />

Server<br />

invocation<br />

result<br />

Server<br />

Key:<br />

Process: Computer:<br />

Client<br />

Client<br />

Server<br />

Server<br />

Server<br />

Partitition oder<br />

Replikation von<br />

Diensten<br />

Beispiel<br />

Partition: WWW<br />

Beispiel <strong>für</strong><br />

Replikation und<br />

Partition: DNS


1-33 Variante: Proxies<br />

1-34 Peer-Prozesse<br />

Application<br />

Application<br />

Client<br />

Proxy<br />

server<br />

Web<br />

server<br />

Coordination<br />

code<br />

Beispiel: Shared<br />

Whiteboard<br />

Coordination<br />

code<br />

Client<br />

Web<br />

server<br />

Zweck von Proxies: erhöhe Performance und Verfügbarkeit, erlaube sicheren Zugriff<br />

Oft bessere Performance als<br />

Client-Server mit vielen ähnlichen<br />

Prozessen und vorwiegend<br />

lokaler Kommunikation<br />

Application<br />

Coordination<br />

code<br />

1-35 Publish - Subscribe<br />

1-36 Implementierungsmöglichkeiten<br />

<br />

<br />

<br />

Entkopplung der<br />

Prozesse<br />

Unterteilung in<br />

Informationsproduzenten<br />

Informationskonsumenten<br />

Ähnlich Rundfunk oder<br />

Zeitungsabonnements:<br />

wer etwas zu sagen hat,<br />

sagt es<br />

Wer zuhören will, der tut es<br />

Produzent<br />

Informationsraum<br />

Informationsraum<br />

Produzent<br />

Middleware<br />

Anwendung<br />

Standard-<br />

Dienste<br />

(FTP, Email,<br />

vor allem WWW)<br />

Konsument<br />

Konsument<br />

TCP/UDP über IP


1-37 Literatur <strong>für</strong> dieses Kapitel<br />

A. Hartman, J. Sifonis and J. Kador: Net Ready -<br />

Strategies for Success in the E-conomy, McGraw-<br />

Hill, 2000. (sehr interessant, aber nicht sehr<br />

technisch)<br />

<br />

<br />

Wolfgang Keller: Enterprise Application<br />

Integration, dpunkt-Verlag, 2002.<br />

Günter Müller et al.: Telematik und<br />

Kommunikationssysteme in der vernetzten<br />

Wirtschaft, Oldenbourg, 2003.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!