Parallele und verteilte Anwendungen in Java

Parallele und verteilte Anwendungen in Java

Autor: Rainer Oechsle

Klappentext:

„Für Nutzer ist es selbstverständlich, dass sie mehrere Programme gleichzeitig verwenden können oder dass Programme so komplex sind, dass sie auf mehrere Rechner zugreifen müssen. Aber wie werden solche Anwendungen programmiert?

Das vorliegende Standardwerk zu Parallelität und Verteilung behandelt als Lehrbuch zwei eng miteinander verknüpfte Basisthemen der Informatik: die Programmierung paralleler (nebenläufiger) und verteilter Anwendungen.

Das Lehrbuch wendet sich an Studierende der Informatik, ingenieurwissenschaftliche Studiengänge mit Grundkenntnissen in Java (Objektorientierung) sowie Softwareentwickler.

Es werden zunächst anhand zahlreicher Beispiele grundlegende Synchronisationskonzepte für die Programmierung paralleler Abläufe präsentiert.

Neben den „klassischen“ Synchronisationsmechanismen von Java werden auch die Konzepte aus der Java-Concurrency-Klassenbibliothek vorgestellt.

Weiteres Basiswissen etwa über grafische Benutzeroberflächen, das MVC-Entwurfsmuster oder Rechnernetze, wird im Buch anschaulich und praxisnah vermittelt.

Aus dem Inhalt:

  • Grundlegende Synchronisationskonzepte
  • Fortgeschrittene Synchronisationskonzepte
  • Parallelität und grafische Benutzeroberflächen
  • Anwendungen mit Sockets
  • Anwendungen mit RMI
  • Webbasierte Anwendungen mit Servlets und JSP

Extra: E-Book inside
Systemvoraussetzungen für E-Book inside: Internet-Verbindung und Adobe-Reader oder E-Book-Reader bzw. Adobe Digital Editions.“

Presseinformation des Verlags:

„5., neu bearbeitete Auflage. Für Nutzer ist es selbstverständlich, dass sie mehrere Programme gleichzeitig verwenden können oder dass Programme so komplex sind, dass sie auf mehrere Rechner zugreifen müssen. Aber wie werden solche Anwendungen programmiert?“

Eine Leseprobe:

Vorwort zur 5. Auflage

„Dieses Buch handelt von der Entwicklung paralleler und verteilter Anwendungen in Java. Nach einem einleitenden Kapitel, in dem wichtige Begriffe wie Programme, Prozesse und Threads auch anhand einer Metapher aus dem täglichen Leben erläutert werden, lassen sich die folgenden sechs Kapitel in drei Teile gruppieren:

  • Entwicklung paralleler Anwendungen in Java (Kapitel 2 und 3): Das Buch beginnt mit einer relativ ausführlichen Einführung in das Gebiet der parallelen Programmierung. Die Sachverhalte sind für Neulinge oft anspruchsvoll, denn Programmcode, der bei rein sequenzieller Ausführung korrekt ist, kann im Fall einer parallelen Nutzung fehlerbehaftet sein. Der Einstieg in das Thema Parallelität wird im Zusammenhang mit Objektorientierung für viele noch problematischer. Denn zum einen muss man verstehen, dass es Thread-Objekte gibt, dass diese aber nicht identisch mit den parallelen Aktivitäten, den Threads selbst, sind. Zum anderen muss man begreifen lernen, dass es mehrere Objekte einer Klasse geben kann, dass aber ein einziges Objekt (quasi) gleichzeitig von mehreren Threads verwendet werden kann, d. h., dass dieselbe und unterschiedliche Methoden auf einem Objekt mehrfach parallel ausgeführt werden können. In diesem Buch wird in die Gedankenwelt der Parallelität mit zahlreichen Programmbeispielen behutsam eingeführt (Kapitel 2). Es werden dann aber auch die grundlegenden Ideen weiterer anspruchsvoller Konzepte aus der Java-Concurrent-Bibliothek wie das Fork-Join-Framework, sequenzielles und paralleles Data-Streaming sowie CompletableFutures behandelt, ohne auf alle Details dieser Konzepte einzugehen (Kapitel 3).
  • Entwicklung von Anwendungen mit grafischer Benutzeroberfläche in Java (Kapitel 4): Grafische Benutzeroberflächen scheinen auf den ersten Blick nichts mit parallelen und verteilten Anwendungen zu tun zu haben. Bei näherem Hinsehen erkennt man aber durchaus Zusammenhänge. So wird zum Beispiel in diesem Buch ausführlich erläutert, welche negativen Effekte es bei naiver Programmierung für Anwendungen mit grafischer Benutzeroberfläche gibt, wenn eine länger dauernde Aktivität aufgrund einer Interaktion mit der grafischen Benutzeroberfläche gestartet wird. Insbesondere bei verteilten Anwendungen können länger dauernde Aktivitäten immer bei einer Kommunikation zwischen einem Client und einem Server über das Internet vorkommen. Die Probleme lassen sich mit Hilfe von Parallelität lösen. Da Client-Programme oft und Server-Programme manchmal eine grafische Benutzeroberfläche haben, spielt also das Thema Parallelität bei verteilten Anwendungen mit grafischer Benutzeroberfläche eine Rolle. Aber auch wichtige Strukturierungsprinzipien für lokale Programme mit grafischer Benutzeroberfläche wie das MVP-Architekturmuster (MVP: Model – View – Presenter) lassen sich auf verteilte Anwendungen übertragen.
  • Entwicklung verteilter Anwendungen in Java (Kapitel 5, 6 und 7): Verteilte Anwendungen folgen häufig dem Client-Server-Prinzip. Auch hier besteht wieder ein enger Zusammenhang zur Parallelität, denn auf Server-Seite ist fast immer Parallelität notwendig, um mehrere Clients (quasi) gleichzeitig zu bedienen und somit die Bedienung eines Clients nicht beliebig lange durch die Bearbeitung eines länger dauernden Auftrags eines anderen Clients zu verzögern. Um die parallele Bearbeitung von Client-Aufträgen zu erreichen, müssen die Threads bei der Programmierung eines Servers auf Socket-Basis (Kapitel 5) selbst explizit erzeugt werden. Wenn RMI (Kapitel 6) oder Servlets und Java Server Faces (Kapitel 7) benutzt werden, dann werden Threads implizit (d. h. nicht im Programmcode der Anwendung) erzeugt. Dies muss man wissen und den Umgang damit beherrschen, wenn man korrekte Server-Programme schreiben will.

In vielen Lehrbüchern werden Parallelitätsaspekte bei Programmen mit grafischer Benutzeroberfläche oder bei Server-Programmen nicht genügend oder überhaupt nicht berücksichtigt. So habe ich einige Beispiele in Lehrbüchern gefunden, die bezüglich der Synchronisation falsch sind, was beim Ausprobieren in der Regel (zum Glück oder leider?) nicht auffällt. In diesem Buch wird dagegen durchgängig für alle Anwendungen ein besonderes Augenmerk auf Parallelitätsaspekte gelegt. …“

Pressestimmen:

  • www.media-spider.com, 05/2018: „…“

Eigene Meinung / Beurteilung des Buches:

Fazit:


„Fluchen ist die einzige Sprache, die alle Programmierer wirklich beherrschen.“

Unbekannter Autor.

Buchcover:

Parallele und verteilte Anwendungen in Java - von Prof. Dr. Rainer Oechsle ist erschienen in der Carl Hanser Verlag GmbH & Co. KG

Parallele und verteilte Anwendungen in Java – von Prof. Dr. Rainer Oechsle ist erschienen in der Carl Hanser Verlag GmbH & Co. KG


Verlag: Carl Hanser Verlag GmbH & CO. KG, neu bearbeitete 5. Auflage (12. März 2018).
Seitenanzahl: 472 Seiten.
Bindung: Gebundene Ausgabe.
ISBN-10: 3-446-45118-8.
ISBN-13: 978-3446-45118-6.
Preis: EUR 44,00.

Dieser Beitrag wurde unter Entwicklung abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Die Kommentarfunktion ist geschlossen.

Weitere interessante Fachartikel

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Noch keine Bewertungen)
Loading...