Foliensatz 1: Einführung, Grundlegende Begriffe, Systemmodelle

Slides:



Advertisements
Ähnliche Präsentationen
Be.as WEB Technologie
Advertisements

E-Commerce Shop System
Das „Vorgehensmodell“
Systemverwaltung wie es Ihnen gefällt.
Mobile Lernende in verteilten Umgebungen (dSpace) Oliver Brand Learning Lab Lower Saxony (L3S) Hannover.
PC-Cluster.
Datenbankzugriff im WWW (Kommerzielle Systeme)
Anwendungsverteilung und räumliche Ausdehnung
Netzwerke im Dialogmarketing
Netzwerke im Dialogmarketing
Netzwerke im Dialogmarketing
Präsentation zum Thema Netzwerk Von Jan Metz.
On a Buzzword: Hierachical Structure David Parnas.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 5 V-Modell-AnwendungenFolie 1 V-Modell für große Projekte.
SciAgents - Eine agentenbasierte Umgebung für verteilte wissenschaftliche Berechnungen Alexander StarkeSeminar Software Agenten
Architektur von Netzwerken
Client-Server-Architekturen
Vorlesung: Betriebssysteme © 2002 Prof. Dr. G. Hellberg 1 Studiengang Informatik FHDW Vorlesung Betriebssysteme 3. Quartal 2002.
“Das ISO / OSI - Referenzmodell“
Anwendungen. © Prof. T. Kudraß, HTWK Leipzig Historie des WWW Grundlage Internet – Entwickelt Ende der 60er Jahre vom US-Militär (ARPA-Net) – Technische.
Vorlesung: 1 Betriebssysteme IV 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebssysteme IV 2. Quartal 2003.
XML in Client-Server und GRID Architektur
JAVA RMI.
Introducing the .NET Framework
Strukturänderungen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld.
Access 2000 Datenbanken.
Seminar: Verteilte Datenbanken
1. Einführung Lernziele: Auffrischen des Wissens aus Rechnernetze
Einführung in die Technik des Internets
M A P K I T Management eines J2EE basierten eCommerce Systems am Beispiel des ATG Dynamo Applikationsservers und BMC Patrol als Managementframework.
Diplomarbeit Thema: Untersuchungen zur Spezifikation und Realisierung von Interoperabilitätskonzepten (hauptsächlich) CORBA-basierter Multiagentensysteme.
Distributed Multimedia Control Steuerung und Überwachung von Präsentationen in Netzwerken.
Netzwerke Peer-to-Peer-Netz Client-Server Alleinstehende Server
... und alles was dazugehört
Verteilte Systeme Dozent: Clemens Düpmeier
Entwicklung verteilter eingebetteter Systeme - Einführung
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Duo- und Quad Prozessor-Architektur
Präsentation von: Tamara Nadine Elisa
Vorteile eines lokalen Netzwerks?
MDM Systeme im Test Udo Bredemeier
Warum brauche ich ein CMS – Content Management System?
Computer in einer vernetzten Welt
Präsentation von Sonja Pathe
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Grundlagen: Client-Server-Modell
Präsentation von Lukas Sulzer
Replikation und Synchronisation
Management- und Web Services- Architekturen
Arbeitsbereich „Rechnernetze und verteilte Systeme“
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
->Prinzip ->Systeme ->Peer – to – Peer
7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am.
Vortrag - Diplomarbeiten (HS I)
Datenbanken im Web 1.
Webserver, Apache und XAMPP
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
5.1.2 Sequentielle Konsistenz
Middleware in Java vieweg 2005 © Steffen Heinzl, Markus Mathes Kapitel 1: Architektur verteilter Systeme.
Hier wird Wissen Wirklichkeit Organic Computing – Teil 3c, Folie 1 - Prof. Dr. Uwe Brinkschulte Middleware:in verschiedenen Kontexten gebrauchter Begriff,
Interoperabilität in Digitalen
Ein kleiner Einblick für Anfänger
Betriebssysteme Was ist ein BS?
Der Taskmanager ist Bestandteil des Betriebssystems, der als Prozessmanager Prozessmanager unter anderem die aktuell laufenden Programme und Prozesse.
Kornelia Bakowsk a ‌ WG13 ‌‌‌ Köln, Protokollfamilie Welche Protokolle benötige ich um eine Seite im Internet zu öffnen?
Multiprocessing mit OpenMPI Marius Albath. Vorlesung Betriebssysteme, Was ist OpenMPI Was ist OpenMPI OpenMPI Standard Setup OpenMPI Standard.
1 Lutz Ullrich SOA – serviceorientierte Architektur SOA – Was ist das?
SE: Systementwurf, © Till Hänisch 2003 Systemarchitektur nach Sommerville, Software Engineering, Addison Wesley.
 Präsentation transkript:

Foliensatz 1: Einführung, Grundlegende Begriffe, Systemmodelle Verteilte Systeme Dozent: Clemens Düpmeier http://www.iai.kit.edu/~clemens.duepmeier/vs-vorlesung.html Foliensatz 1: Einführung, Grundlegende Begriffe, Systemmodelle Clemens Düpmeier, 08.04.2017

Grundlegende Definition(en) Fokussierung der Vorlesung Clemens Düpmeier, 08.04.2017

Netzwerke und Verteilte Systeme Netzwerke sind nicht im Fokus dieser Vorlesung! Da vorher Vorlesung über Kommunikationstechnologien ABER Man benötigt ein Computernetzwerk, um ein verteiltes System zu realisieren. Was also ist ein verteiltes System? Clemens Düpmeier, 08.04.2017

Was ist ein verteiltes System ? Eine praxisorientierte Beschreibung: Ein verteiltes System besteht aus einer Menge autonomer Computer die durch ein Computernetzwerk miteinander verbunden sind und mit einer Software zur Koordination ausgestattet sind. Verteiltes System (Sicht eines Benutzers) Clemens Düpmeier, 08.04.2017

Was ist ein verteiltes System ? Definition: Verteiltes System (nach Leslie Lamport) Ein verteiltes System ist ein System, mit dem ich nicht arbeiten kann, weil irgendein Rechner abgestürzt ist, von dem ich nicht einmal weiß, daß es ihn überhaupt gibt. oft die Realität wird aber besser (hoffentlich auch durch diese Vorlesung) Definition: Verteiltes System (nach Andrew S. Tanenbaum) Ein verteiltes System ist eine Kollektion unabhängiger Computer, die den Benutzern als ein Einzelcomputer erscheinen. impliziert, daß die Computer miteinander verbunden sind und die Ressourcen wie Hardware, Software und Daten gemeinsam benutzt werden. Es herrscht eine einheitliche Sicht auf das Gesamtsystem vor. Clemens Düpmeier, 08.04.2017

Was ist ein verteiltes System ? Eine allgemeinere Beschreibung: Ein verteiltes System ist ein System, in dem Hard-und Softwarekomponenten, die sich auf miteinander vernetzten Computern befinden, miteinander kommunizieren und ihre Aktionen koordinieren, indem sie Nachrichten austauschen. Eine verteilte Anwendung ist eine Anwendung, die ein verteiltes System zur Lösung eines Anwendungsproblems nutzt. Sie besteht aus verschiedenen Komponenten, die mit den Komponenten des VS sowie den Anwendern kommuniziert. Clemens Düpmeier, 08.04.2017

Warum sind Verteilte Systeme eigenes Thema Viele gleichzeitige („parallele“) Aktivitäten Exakte globale Zeit nicht erfahrbar/vorhanden Keine konsistente Sicht des Gesamtzustandes Kooperation durch Kommunikation Ursache und Wirkung zeitlich und räumlich getrennt Räumliche Separation, autonome Komponenten Heterogenität Dynamik, Offenheit Komplexität Sicherheit Probleme sequentieller Systeme Nebenläufigkeit Nichtdeterminismus Zustandsverteilung Synchronisation schwieriger Programmierung komplexer Testen aufwendiger Clemens Düpmeier, 08.04.2017

Fokus der Vorlesung Der Fokus der Vorlesung liegt auf "Verteilte Anwendungen" nicht auf Hardware Insbesondere auf Verteilten Business Anwendungen Software-Architekturen Notwendige Eigenschaften solcher Systeme Kommunikation zwischen Komponenten Verteilter Anwendungen Hilfsmittel, z.B. Middleware + Application Server Clemens Düpmeier, 08.04.2017

Beispiel für Verteilte Business-Anwendung Quelle: Prof. Thai Clemens Düpmeier, 08.04.2017

Jede Menge Daten + Datenaustausch Quelle: Prof. Thai Clemens Düpmeier, 08.04.2017

Jede Menge Anforderungen an Eigenschaften Quelle: Prof. Thai Clemens Düpmeier, 08.04.2017

Wichtige Eigenschaften Clemens Düpmeier, 08.04.2017

Wichtige Eigenschaften Nebenläufigkeit Kontrollierte, gemeinsame Ressourcennutzung Skalierbarkeit Sicherheit Fehlertoleranz Transparenz Offenheit Clemens Düpmeier, 08.04.2017

Nebenläufigkeit (Concurrency) Gesamtsystem besteht aus Softwarekomponenten, die auf verschiedenen Rechnersystemen laufen Dabei können Aktivitäten im Gesamtsystem sowohl auf einem Rechner, parallel als auch parallel auf verschiedenen Rechnern ablaufen Nebenläufigkeit kann es z.B. bei Clients (Anwendungsprogramme, z.B. Videokonferenz) und Servern (Zugriff auf Ressourcen, z.B. Datei) geben. Wichtiges Aspekte: Synchronisation der Aktivitäten, z.B. um Daten konsistent zu halten. Verbesserung des Durchsatzes und Performance durch Paralellisierung Clemens Düpmeier, 08.04.2017

Gemeinsame Ressourcennutzung Hardware: Drucker, Festplatten, Scanner, etc. Daten: Datenbankobjekte, Dateien, etc. Client-Server Model: Server verwaltet Ressourcen, die Clients nutzen Verteilte Objekte: Server bietet Dienste über Verteilte Objekte, die Clients gemeinsam nutzen Verteilte Services (komplexer Dienstleistungen, die über Netz aufrufbar sind) z.B. Bezahldienste, Flugbuchung, etc. Problematik: Regelung nebenläufiger Zugriffe Fragen der Konsistenz und der Fehlertoleranz. Fragen der Skalierbarkeit Clemens Düpmeier, 08.04.2017

Skalierbarkeit Ein Softwaresystem ist skalierbar, wenn durch Hinzufügen weiterer Hardware der Durchsatz des Systems oder die Anzahl paralleler Nutzeranforderungen erhöht werden kann Setzt voraus, dass das System so entworfen ist, dass Funktionalitäten parallel auf verschiedenen Rechnern (CPU's) ausgeführt werden können Clemens Düpmeier, 08.04.2017

Verteilung des DNS Namenraums Clemens Düpmeier, 08.04.2017

Sicherheit Vertraulichkeit: Daten können nur von dem gewünschten Empfänger gelesen werden. Integrität: Die Daten wurden während der Übertragung nicht verändert. Authentizität: Die Daten wurden tatsächlich von der Person gesendet, die behauptet, der Sender zu sein. Verfügbarkeit: Ein Dienst darf durch eine (Denial of Service) Attacke nicht ausser Kraft gesetzt werden. Sicherheit für mobilen Code: Mobiler Code darf die lokale Ressource nicht beschädigen und umgekehrt. Clemens Düpmeier, 08.04.2017

Fehlertoleranz Fehler erkennen: z.B. durch Prüfsummen. Nicht erkennbar ist z.B. ein Absturz eines entfernten Servers Fehler maskieren: Erkannte Fehler verbergen oder abschwächen, z.B. Wiederholung von Nachrichten Fehler tolerieren: z.B. durch Redundanz, Timeout Wiederherstellung nach Fehlern: z.B. Rückkehr in einen sicheren Zustand, wenn ein Fehler entdeckt wird (Software Recovery). Redundanz: Fehlertoleranz durch redundante Komponenten, z.B. Standby-Maschinen, doppelte Komponenten, doppelte Dienste. Clemens Düpmeier, 08.04.2017

Transparenz Transparenz wird definiert als das Verbergen der Separation der einzelnen Komponenten in einem verteilten System vor dem Benutzer und dem Applikationsprogrammierer, so dass das System als Ganzes wahrgenommen wird, und nicht als Sammlung voneinander unabhängiger Komponenten. ISO (International Standards Organization) und ANSA (Advanced Network Systems Architecture) identifizieren acht Formen der Transparenz: Zugriffstransparenz ermöglicht den Zugriff auf lokale und entfernte Ressourcen unter Verwendung identischer Operationen. Positionstransparenz (Ortstransparenz) erlaubt den Zugriff auf die Ressourcen, ohne dass man ihre Position/ihren Ort kennen muss. Nebenläufigkeitstransparenz erlaubt, dass mehrere Prozesse gleichzeitig mit denselben gemeinsam genutzten Ressourcen arbeiten, ohne sich gegenseitig zu stören. Clemens Düpmeier, 08.04.2017

Transparenz Replikationstransparenz erlaubt, dass mehrere Instanzen von Ressourcen verwendet werden, um die Zuverlässigkeit und die Leistung zu verbessern, ohne dass die Benutzer oder Applikationsprogrammierer wissen, dass Repliken verwendet werden. Fehlertransparenz erlaubt das Verbergen von Fehlern, so dass Benutzer und Applikationsprogrammierer ihre Aufgaben erledigen können, auch wenn Hardware- oder Softwarekomponenten ausgefallen sind. Mobilitätstransparenz erlaubt das Verschieben von Ressourcen und Clients innerhalb eines Systems, ohne dass die Arbeit von Benutzern oder Programmen dadurch beeinträchtigt wird. Leistungstransparenz erlaubt, dass das System neu konfiguriert wird, um die Leistung zu verbessern, wenn die Last variiert. Skalierungstransparenz erlaubt, dass sich System und Applikationen vergrößern, ohne dass die Systemstruktur oder die Applikationsalgorithmen geändert werden müssen. Clemens Düpmeier, 08.04.2017

Offenheit Offenheit bzgl. Nutzung durch andere Systeme Verwendung standardisierter Schnittstellen also bei Kommunikation, Datenformattechnologien, etc. Bzgl. Nutzung anderer Systeme, Sprachen, Betriebssystemen, ... Clemens Düpmeier, 08.04.2017

Architektur und Systemmodelle Clemens Düpmeier, 08.04.2017

Systemmodelle Beschreibung der allgemeinen Eigenschaften und des Designs eines Systems Das Modell sollte abdecken: Die wichtigsten Komponenten des Systems Die Art ihrer Interaktion Wie deren individuelles und kollektives Verhalten beeinflusst werden kann Ein Architekturmodell vereinfacht und abstrahiert zunächst die Funktionen der individuellen Komponenten eines verteilten Systems, um dann die Verteilung der Komponenten auf ein Netzwerk von Computern und die Beziehung der Komponenten (Rolle in der Kommunikation mit anderen, Kommunikationsmuster) untereinander zu beschreiben. Weitere Modelle: Interaktionsmodell, Fehlermodell, Sicherheitsmodell Clemens Düpmeier, 08.04.2017

Verschiedene Blickwinkel auf verteilter Systeme Rechnernetz mit Rechnerknoten Objekte / Komponenten Algorithmen u. Protokolle P1 Physisch verteilt P2 Logisch verteilt P3 Zeit Clemens Düpmeier, 08.04.2017

Softwarearchitektur ihre wesentlichen Eigenschaften definiert also Softwarekomponenten des Systems ihre wesentlichen Eigenschaften und die Beziehungen untereinander und damit die "logische" Verteilung des Systems Clemens Düpmeier, 08.04.2017

Komponenten und Abhängigkeiten Jede Komponente definiert funktionalen Teil des Systems; Pfeile definieren Abhängigkeiten Je mehr Komponenten, um so modularer das System Komponenten-basiertes Design und sauberere Trennung von Funktionalitäten führt zu besserer Wiederverwendbarkeit und mehr Möglichkeiten für Verteilung und Parallelität aber höherer Kommunikationsaufwand und evtl. sinkende Performance Hauptarchitekturziel: Ausgewogenheit zwischen Flexibiliät und Performance Quelle: Gustavo Alonso Clemens Düpmeier, 08.04.2017

Weitere Anforderungen (siehe Eigenschaften) Leistungsprobleme: durch beschränkte Verarbeitungs- und Kommunikationskapazitäten: Antwortzeiten: schnelle und konsistente Antwortzeiten werden benötigt Durchsatz: Verarbeitungs- und Datenübertragungsgeschwindigkeit Ausgleich von Rechenauslastung: Nebenläufige Ausführung ohne Konkurrenz um die Ressourcen Dienstgüte (Quality of Service): Zuverlässigkeit, Sicherheit, Leistung (inkl. Rechtzeitigkeitsgarantie), Anpassbarkeit Caching und Replikation: Cache-Konsistenz-Protokoll notwendig Zuverlässigkeitsprobleme: Fehlertoleranz: Korrekt arbeiten trotz Fehler! Sicherheit: Erzeugen von Vertrauen durch Schutz vor Angriffen! Korrektheit: aktuelle Forschung Clemens Düpmeier, 08.04.2017

Softwareschichten Die Komponenten einer Softwarearchitektur können in logische Schichten (Layer) angeordnet werden z.B. in 3-Schichten Schicht mit Komponenten zur Erzeugung der GUI und Kommunikation mit Nutzer Schicht mit Komponenten mit Businesslogik Schicht mit Komponenten zum Daten-/Ressourcemanagement und Zugriff Präsentation Businessebene Daten- management Clemens Düpmeier, 08.04.2017

Auch in vier oder fünf Schichten Terminals, Windows Geräteabhängige Darstellung Präsentation Geräteunabhängige Steuerung und Koordinierung des Dialogs mit dem Anwender Dialogsteuerung Anwendungsspezifische Steuerungs-und Verwaltungsfunktionen, Teile der Business Logik Anwendungslogik Dienste und Datenlogik Datenselektion und -manipulation E-Mail, Drucken, Mailing Datenzugriff Verbindung zum DBMS Clemens Düpmeier, 08.04.2017

Tiers (Verteilung von Schichten auf Rechner) Modell 1. Qrtl. 2. Qrtl. 3. Qrtl. Ost 20,4 27,4 90 West 30,6 38,6 34,6 Nord 45,9 46,9 45 Präsentation Kontrolle Funktion Wie sollen Funktionalitäten (z.B. als Schichten) auf verschiedene Rechner verteilt werden? Clemens Düpmeier, 08.04.2017

1-Schichtverteilung (1-Tier) Alle Softwarelayer befinden sich auf einem Rechner Management der Ressourcen erfolgt zentral Software selbst kann hoch-optimiert werden (Trennung zwischen Schichten hier nicht zwingend notwendig) Nutzer arbeiten mit einer monolithischen Anwendung Mehrere Rechner mit einer solchen über (grafische) Terminals Typisch bei Mainframeanwendungen Clemens Düpmeier, 08.04.2017

2-Schichtenverteilung (2-Tier) Typischer Weise Trennung von Präsentation und dem Rest (Business- und Datenlogik) Client enthält Präsentation mit GUI und behandelt Interaktion mit Nutzer Server kapselt Business- und Datenlogik Clients sind (weitgehend) unabhängig voneinander Es kann auch verschiedene Clients für verschiedene (Teil)funktionalitäten geben Ressourcenmanagement sieht nur eine Businesslogik als Client hier lässt sich der Zugriff daher gut optimieren Erlaubt die Nutzung komplexerer GUI's mit intensiverer CPU-Nutzung, da Clients verteilt sind Definierten Notwendigkeit zur Bereitstellung von universellen Kommunikationsschnittstellen zwischen Client und Server Clemens Düpmeier, 08.04.2017

Thin Client / Thick Client Clemens Düpmeier, 08.04.2017

Client/Server Modelle Auftrag Antwort Client Auftrag Antwort Server Client Reagierender Prozeß bearbeitet Anfragen erfüllt Aufträge Initiierender Prozeß stellt Anfragen erteilt Aufträge Prozeß: Legende: Computer: Clemens Düpmeier, 08.04.2017

Mehrfache Server Partitition oder Replikation von Diensten Client Partitition oder Replikation von Diensten Beispiel Partition: WWW Beispiel Partition und Replikation: DNS Clemens Düpmeier, 08.04.2017

Proxy-Server und Cache Client Proxy Web server Proxy-Server: Gemeinsamer Cache Zweck von Proxy-Servern: erhöhte Leistung und Verfügbarkeit Clemens Düpmeier, 08.04.2017

Gleichrangige Prozesse (P2P) Koordinierungs- Applikation code Koordinierungs- Applikation code Koordinierungs- Applikation code Oft bessere Leistung als Client-Server mit vielen ähnlichen Prozessen und vorwiegend lokaler Kommunikation. Beispiel: Whiteboard Clemens Düpmeier, 08.04.2017

Nachteile der 2-Schichtenverteilung Ein Server muss in der Regel alle Clients bedienen oder ich hab mehrere Server, die bzgl. dem Ressourcenzugriff nicht synchronisiert sind denn es gibt ja keine gemeinsam genutzte Business-Logik (wo diese stattfinden kann) Beim Zugriff auf Server mit verschiedenen Funktionalitäten ist der Client der Integrator => Fat Clients Der Client muss nun wissen, wo was ist, wie er darauf zugreifen kann, wie Konsistenz garantiert werden kann, etc. Das ist in nahezu allen Aspekten (Software Design, Portabilität, Code Rebenutzung, Performanz) ineffizient Lässt sich nur durch Erweiterung der Schichtverteilung lösen Clemens Düpmeier, 08.04.2017

3-Schichtenverteilung (und mehr) Bei der 3-Schichtenverteilung im klassischen Sinne sind Präsentations-, Business- und Datenlayer getrennt voll modularisiertes System Verschiedene Layer können über Netzwerktechnologien miteinander kommunizieren Die Layer werden dabei oft auch auf verschiedene Rechnersysteme verteilt Middleware wird als universelle Kommunikations-"Brücke" zwischen den einzelnen Schichten eingesetzt trennt Anwendungslogik zu einem gewissen Teil von der Kommunikationslogik erhöht die Interoperabilität von Softwaresystemen über Rechnergrenzen hinweg Kann verschiedene Hilfsdienste bereitstellen, um wichtige Eigenschaften des Verteilten Systems zu garantieren Clemens Düpmeier, 08.04.2017

Architektur mit 3-Schichtenverteilung Präsentationsschicht Applikationslogik Datenlogik Datenlogik Clemens Düpmeier, 08.04.2017

Middleware abstrahiert vom Betriebssystem Plattformunabhängig Middlewareabhängig Applikationen, Dienste Betriebssystem Middleware Computer- und Netzwerkhardware Middleware (Verteilungsplattform) : Transparenz der Heterogenität existierender Hardware und Betriebssysteme Verteilung Plattform: „unterste“ Hardware- und Softwareschichten (Low-Level) werden häufig als Plattform bezeichnet. Beispiele: Intel x86/{Windows|Linux}, PowerPC/MacOS, Solaris Clemens Düpmeier, 08.04.2017

Middleware als Zwischenschicht zur Kommunikation zwischen Layer Clemens Düpmeier, 08.04.2017

Middleware als Integrationshilfsmittel Clemens Düpmeier, 08.04.2017

N-Schichtenverteilung Entweder durch Hinzufügen weiterer Schichten z.B. bei Web-Business-Applikationen durch zusätzlichen Web-Tier Durch Verknüpfungen mehrer Mehrschicht-Anwendungen über zusätzliche Integrationslayer Clemens Düpmeier, 08.04.2017

4-Schichten-Architektur mit Web-Layer Für solche Architekturen setzt man häufig Komponenten-oriente Frameworks ein, die auf Application Server basieren Komplette Frameworks zum Schreiben von Mehrschicht-Anwendungen .NET Framework Java JEE Clemens Düpmeier, 08.04.2017

Gliederung der weiteren Vorlesung Kommunikation und Parallelität – Grundlegende Begriffe und Technologien Client-Server Kommunikation Nebenläufigkeit (Parallelität), Synchronisationsprobleme, Verteilte Transaktionen Verteilte Objektkommunikation und Namensdienste Middleware, Verteilte Softwarekomponenten und Application Server Verteilte Komponenten und ihre Kommunikation Kommunikation über Nachrichten (MOM – Message Oriented Middleware) Die Rolle des Web in Verteilten Business-Applikationen Web als Präsentationsschicht Web als Servicekommunikationsschicht SOA (Service Oriented Architecture) Clemens Düpmeier, 08.04.2017