Steffen Heinzl Markus Mathes. Middleware in Java



Ähnliche Dokumente
Kapitel 8: Nachrichtenbasierte Kommunikation mit JMS. Middleware in Java vieweg 2005 Steffen Heinzl, Markus Mathes

Verteilte Systeme - 1. Übung

Inhaltsverzeichnis XII

Grundkurs Betriebssysteme

^ Springer Vi eweg. Grundkurs Betriebssysteme. Synchronisation, Prozesskommunikation, Virtualisierung. Architekturen, Betriebsmittelverwaltung,

William Stallings. Betriebssysteme. Prinzipien und Umsetzung. 4., überarbeitete Auflage. Pearson Studium

Einführung... 1 Anwendungsszenarien multimedialer Client-Server Systeme... 1 Aufbau des Buches... 2 Die Entwicklung des multimedialen Internets...

8.4 Das Andrew File System Ausblicke Zusammenfassung 410 Übungen 411

Kommunikation in verteilten Anwendungen

Inhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN:

CORBA. Systemprogrammierung WS

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

Mobile und Verteilte Datenbanken

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

Monitore. Klicken bearbeiten

Übungen zu Softwaretechnik

Client/Server-Systeme

Nebenläufige Programmierung

Managementprozesse und Performance

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

-Testen verteilter Anwendungen

Komponentenbasierter Taschenrechner mit CORBA

Management von IT-Architekturen

Proseminar Technische Informatik A survey of virtualization technologies

Übung 8: Semaphore in Java (eigene Implementierung)

Java RMI Remote Method Invocation

Architekturen. DB-Anwendungen: Aufgaben. Aufteilung der Funktionen. ƒ Datenbankanwendungen

Aufgaben: (dazugehörige Kapitel / Seitenangaben in Kursiv: Kapitel Seite Seitennummern)

Multiuser Client/Server Systeme

Masterkurs Client/Server-Programmierung mit Java

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu

SAP NetWeaver Gateway. 2013

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Unix- Netzwerkprogrammierung mitthreads, Sockets und SSL

Java RMI, CORBA und Firewalls

Kapitel 4. Monitore und wechselseitiger Ausschluss

Fachlogik umsetzen. Business Rules zwischen Konzept und IT-System. Dirk Ziegemeyer

Mobile und Verteilte Datenbanken

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg

Grundlagen verteilter Systeme

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

3.2 Der CORBA-Standard Common Object Request Broker Architecture

Zwischenbericht. Diplomarbeit Thema: Evaluation des Projekts Quality Objects. Sven Harazim

NEBEN - LÄUFIGE PROG RAM -

Administering Microsoft SQL Server Databases

Standardsoftware II. Klassifikation Schnittstellen

Inhalt. 3.1 Der inkrementelle Entwurf im Überblick Flache Aufwandskurve Qualitätskriterien für den inkrementellen Entwurf...

TEIL I VxVM VERITAS VOLUME MANAGER

Customer Network Management für das G-WiN

CARL HANSER VERLAG. Erika Horn, Thomas Reinke. Softwarearchitektur und Softwarebauelemente Eine Einführung für Softwarearchitekten

Internetanbindung von Datenbanken

Seminar Business Process Management und Workflow-Technologie: Grundlagen, Produkte, Forschung

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

Übung: Verwendung von Java-Threads

Architektur von SOAP basierten Web Services

11.1 Indirektes Binden (3) 11.1 Indirektes Binden (4) Objektadapterkonfiguration. Unmittelbarer Vorteil des indirekten Bindens

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Softwareentwicklungspraktikum Sommersemester Grobentwurf

Herzlich Willkommen! eine praxisnahe Übersicht. Mit Java ins Web - mb@bebox.franken.de (c) Michael Behrendt -

Musterlösung Klausur SS 2004

OSEK-OS. Oliver Botschkowski. PG AutoLab Seminarwochenende Oktober AutoLab

XMPP: Extensible Messaging and Presence Protocol

Kapitel 4. Einführung in den Scannergenerator Flex. Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9

Abbildung 3-1: Clients und Server C+S

Einführung: Verteilte Systeme - Remote Method Invocation -

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Info B VL 16: Monitore und Semaphoren

Inhaltsverzeichnis. Vorwort 11. Kapitel 1 Systemaufbau und Technologie 17. Kapitel 2 Bundles, Pakete und das Dateisystem 29

A007 Web Content Management Systeme (CMS)

Vorbereitung zur Prüfung Echtzeitbetriebssysteme

Zustandsgebundene Webservices

Verteilte Systeme CS5001

Themen. Web Service - Clients. Kommunikation zw. Web Services

Jürgen Schwab, debis Systemhaus

Windows Server Die technische Referenz: Leistungsoptimierung

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Übungen zur Softwaretechnik

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Technologische Entwicklung von GIS und Internet der letzten Jahre

Automotive Software Engineering

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Prinzipien Objektorientierter Programmierung

Vor- und Nachteile speicheroptimierter Tabellen

Diplomarbeit: GOMMA: Eine Plattform zur flexiblen Verwaltung und Analyse von Ontologie Mappings in der Bio-/Medizininformatik

Besprechung Aufgabe 5 (crawl) POSIX-Threads. Problem: UNIX-Prozesskonzept ist für viele heutige Anwendungen unzureichend

Inhaltsverzeichnis. Fritz Jobst. Programmieren in Java ISBN: Weitere Informationen oder Bestellungen unter

3 Programmiermodelle für parallele und verteilte Systeme

SE2-10-Entwurfsmuster-2 15

Transkript:

Steffen Heinzl Markus Mathes Middleware in Java Leitfaden zum Entwurf verteilter Anwendungen - Implementierung von verteilten Systemen über JMS - Verteilte Objekte über RMI und CORBA Mit 50 Abbildungen vieweg

Inhaltsverzeichnis Kapitel 1: Architektur verteilter Systeme 1 1.1 Einführung und Begriffsbildung 1 1.2 Entstehung verteilter Systeme 3 1.3 Struktur verteilter Systeme ~ 6 1.4 Zerlegung verteilter Anwendungen 8 1.5 Transparenz in verteilten Systemen 9 1.6 Aufgaben zur Theorie verteilter Systeme 11 Kapitel 2: Nebenläufigkeit in Java 13 2.1 Definition 13 2.2 User-level Threads und kernel-level Threads 14 2.3 Threads auf Hardwareebene 15 2.4 Prozess- und Thread-Zustände 15 2.4.1 Prozesszustände 16 2.4.2 Thread-Zustände allgemein 17 2.4.3 Java Threads 18 2.5 Abbildung von Java Threads auf POSIX Threads 20 2.6 Scheduling von Threads unter Solaris 9 22 2.6.1 Thread-Bibliotheken 22 2.6.2 Erzeugung von Lightweight Processes 24 2.7 Verwendung von Java Threads 24 2.7.1 Threads starten 24 2.7.2 Threads beenden 29 2.7.3 Auf Threads warten 30 2.8 Abfrage von Thread-Informationen 31 2.8.1 Eigenschaften laufender Threads abfragen 31 2.8.2 Speicherbelegung 33 2.8.3 Systemarchitektur und Betriebssystem 34 2.9 Aufgaben zur Nebenläufigkeit in Java 34 Kapitel 3: Synchronisationsmechanismen 37 3.1 Korrektheit eines parallelen Programms 37 3.1.1 Sicherheit 37 3.1.2 Lebendigkeit (Liveness) 43

XVI Inhaltsverzeichnis 3.2 Mutual exclusion...46 3.2.1 Deaktivierung von Interrupts 46 3.2.2 test_and_set und test_and_clear, 48 3-3 Semaphore 51 3.3-1 Operationen PO und VO?... 51 3.3.2 Fairness 52 3.3.3 Semaphore und Fairness in Java 54 3-3-4 Wechselseitiger Ausschluss durch Semaphoren 56 3.4 Monitore 57 3-4.1 Signalisierungsmechanismen 58 3.4.2 Nested Monitor Calls 59 3.4.3 Monitore in Java 59 3-4.4 Geschachtelte Monitoraufrufe in Java 61 3-5 Mächtigkeit von Synchronisationsmitteln 63 3-5-1 Semaphoreimplementierung durch Monitore 63 3-5-2 Monitorimplementierung durch Semaphore 64 3-5-3 Mächtigkeitsübersicht 64 3-6 Locks in Java 65 3-6.1 Das Interface Lock 65 3-6.2 Bedingungsvariablen 66 3-6.3 Beispiel: Die Klasse ReentrantLock 67 3-7 Aufgaben zur Synchronisation 69 Kapitel 4: Design von Client/Server-Software 71 4.1 Das Client/Server-Modell 71 4.1.1 Entwurf von Clients 73 4.1.2 Entwurf von Servern 75 4.2 Implementierung des Client/Server-Modells über Sockets 79 4.2.1 Übersicht der Socket-Primitive 80 4.2.2 Die Socket-API unter Java 83 4.3 Fallbeispiele 87 4.3.1 DAYTIME 87 4.3.2 ECHO 92 4.3.3 FILE 98 4.4 Aufgaben zu Client/Server-Software 110 Kapitel 5: Serialisierung 113 5.1 Serialisierungsprozess 114 5.1.1 Serialisierbarkeitsbedingungen 114 5.1.2 Repräsentation der Elemente 118

Inhaltsverzeichnis XVII 5.1.3 Aufbau des Streams 119 5.1.4 Beispiel-Stream 130 5.2 Deserialisierungsprozess 132 5.3 Fallbeispiel: DAYTIME-Server 133 5.4 Nachrichtenkonzept 135 5.4.1 Message-ID 136 5.4.2 Reflection-API 142 5.5 Erweiterung der Standardserialisierung 143 5.6 Substitution von Objekten 148 5.7 Beschleunigung der Serialisierung 152 5.8 Versionsverwaltung 155 5-9 Aufgaben zu Serialisierung 158 Kapitel 6: Verteilte Objekte durch RMI l6l 6.1 Struktur einer RMI-Anwendung 162 6.2 Ablauf eines entfernten Methodenaufrufs 163 6.3 Parameterübergabe und das RMI Wire-Protocol 165 6.4 Werkzeuge 168 6.5 Fallbeispiel: Entwicklung eines Multiservice-Servers 170 6.5.1 Implementierung einer Dienstauskunft 170 6.5-2 Definition der Schnittstellen entfernter Objekte 172 6.5-3 Implementierung der Remote-Interfaces 174 6.5-4 Implementierung des Multiservice-Servers 179 6.5.5 Entwicklung der RMI-Clients 189 6.6 Aufgaben zum entfernten Methodenaufruf 194 Kapitel 7: Einführung in CORBA 197 7.1 Kommunikation in CORBA 198 7.2 Interface Definition Language (IDL) 200 7.3 ORB Services 202 7.3-1 Namensdienst 204 7.4 Vor- und Nachteile von CORBA 209 7.5 Aufgaben zu CORBA 210

XVIII Inhaltsverzeichnis Kapitel 8: Nachrichtenbasierte Kommunikation mit JMS 211 8.1 Aufbau und Struktur einer JMS-Anwendung 214 8.2 P2P- und Pub/Sub-Kommunikation 215 8.3 Das Paket javax.jms 216 8.3-1 Verbindungsfabriken 216 8.3-2 Verbindungen 217 8.3-3 Sitzungen 218 8.3-4 Produzenten und Konsumenten 218 8.3-5 Nachrichten 220 8.3-6 Nachrichtenziele 223 8.3-7 Ausnahmen 223 8.4 Fallbeispiele 225 8.4.1 Metadaten des JMS-Providers erfragen 225 8.4.2 Nachrichten in einer Warteschlange zählen 228 8.4.3 ECHO-Dienst mit P2P 231 8.4.4 DAYTIME-Dienst mit Pub/Sub 238 8.5 Aufgaben zu JMS 244 Anhang 247 Anhang A: Die Methode printstreamo 247 Anhang B: Das Reflection-Konzept von Java 248 Anhang C: Entwicklung von Java bis zur Version 5 258 Literaturverzeichnis 271 Sachwortverzeichnis 277