Dieser Kurs vermittelt den Teilnehmern (Fachleuten und Studenten) die grundlegenden Konzepte der verteilten Programmierung im Kontext von Java 8. Die verteilte Programmierung ermöglicht es Entwicklern, mehrere Knoten in einem Rechenzentrum zu nutzen, um den Durchsatz zu erhöhen und/oder die Latenzzeit ausgewählter Anwendungen zu verringern. Am Ende dieses Kurses werden Sie lernen, wie man gängige Frameworks für die verteilte Programmierung von Java-Programmen nutzt, darunter Hadoop, Spark, Sockets, Remote Method Invocation (RMI), Multicast Sockets, Kafka, Message Passing Interface (MPI) sowie verschiedene Ansätze, um die Verteilung mit Multithreading zu kombinieren. Warum dieser Kurs? - Alle Server in Rechenzentren sind als Sammlungen von verteilten Servern organisiert, und es ist wichtig, dass Sie auch lernen, wie man mehrere Server nutzt, um die Bandbreite zu erhöhen und die Latenz zu verringern.
Verteilte Programmierung in Java
Dieser Kurs ist Teil von Spezialisierung Parallele, gleichzeitige und verteilte Programmierung in Java
Dozent: Vivek Sarkar
25.240 bereits angemeldet
Bei enthalten
(494 Bewertungen)
Kompetenzen, die Sie erwerben
- Kategorie: Verteiltes Rechnen
- Kategorie: Schauspieler Modell
- Kategorie: Paralleles Rechnen
- Kategorie: Reaktive Programmierung
Wichtige Details
Zu Ihrem LinkedIn-Profil hinzufügen
4 Aufgaben
Erfahren Sie, wie Mitarbeiter führender Unternehmen gefragte Kompetenzen erwerben.
Erweitern Sie Ihre Fachkenntnisse
- Lernen Sie neue Konzepte von Branchenexperten
- Gewinnen Sie ein Grundverständnis bestimmter Themen oder Tools
- Erwerben Sie berufsrelevante Kompetenzen durch praktische Projekte
- Erwerben Sie ein Berufszertifikat zur Vorlage
Erwerben Sie ein Karrierezertifikat.
Fügen Sie diese Qualifikation zur Ihrem LinkedIn-Profil oder Ihrem Lebenslauf hinzu.
Teilen Sie es in den sozialen Medien und in Ihrer Leistungsbeurteilung.
In diesem Kurs gibt es 7 Module
Willkommen bei Verteilte Programmierung in Java! Dieser Kurs ist als dreiteilige Serie konzipiert und deckt ein Thema oder einen Wissensbereich durch verschiedene Videovorträge, Demonstrationen und Programmierprojekte ab.
Das ist alles enthalten
1 Video5 Lektüren1 Programmieraufgabe1 Diskussionsthema
In diesem Modul lernen wir das MapReduce-Paradigma kennen und erfahren, wie es zum Schreiben verteilter Programme verwendet werden kann, die Daten in Form von Schlüssel-Wert-Paaren analysieren. Ein MapReduce-Programm wird über benutzerdefinierte Map- und Reduce-Funktionen definiert. Wir lernen, wie man solche Programme in den Projekten Apache Hadoop und Spark schreibt. DasMapReduce-Paradigma kann verwendet werden, um eine Vielzahl von parallelen Algorithmen auszudrücken. Ein Beispiel, das wir untersuchen werden, ist die Berechnung der TermFrequency - Inverse Document Frequency (TF-IDF)-Statistik, die beim Document Mining verwendet wird; dieser Algorithmus verwendet eine feste (nichtiterative) Anzahl von Map- und Reduce-Operationen. Ein weiteres MapReduce-Beispiel, das wir untersuchen werden, ist die Parallelisierung des PageRank-Algorithmus. Dieser Algorithmus ist ein Beispiel für iterative MapReduce-Berechnungen und steht auch im Mittelpunkt des mit diesem Modul verbundenen Miniprojekts.
Das ist alles enthalten
6 Videos6 Lektüren1 Aufgabe1 Programmieraufgabe
In diesem Modul lernen wir die Client-Server-Programmierung kennen und erfahren, wie verteilte Java-Anwendungen über Sockets miteinander kommunizieren können. Da die Kommunikation über Sockets auf der Ebene von Bytes erfolgt, lernen wir, wie man Objekte im Senderprozess in Bytes serialisiert und im Empfängerprozess Bytes in Objekte deserialisiert. Sockets und Serialisierung liefern den notwendigen Hintergrund für das mit diesem Modul verbundene MiniprojektFile Server. Wir werden auch etwas über Remote Method Invocation (RMI) lernen, das den Begriff des Methodenaufrufs in einem sequenziellen Programm auf eine verteilte Programmierumgebung ausweitet. Außerdem lernen wir Multicast-Sockets kennen, die die Standard-Socket-Schnittstelle so verallgemeinern, dass ein Sender dieselbe Nachricht an eine bestimmte Anzahl von Empfängern senden kann. Diese Fähigkeit kann für eine Reihe von Anwendungen sehr nützlich sein, z.B. für Newsfeeds, Videokonferenzen und Multiplayer-Spiele. Schließlich lernen wir verteilte Publish-Subscribe-Anwendungen kennen und erfahren, wie diese mit dem Apache Kafka Framework implementiert werden können.
Das ist alles enthalten
6 Videos6 Lektüren1 Aufgabe1 Programmieraufgabe
Begleiten Sie Professor Vivek Sarkar zu einem Gespräch mit dem Geschäftsführer von Two Sigma, Jim Ward, und dem Senior Vice President, Dr. Eric Allen, in deren Büro in Houston, Texas, über die Bedeutung der verteilten Programmierung.
Das ist alles enthalten
2 Videos1 Lektüre
In diesem Modul lernen Sie, wie Sie verteilte Anwendungen im SPMD-Modell (Single Program Multiple Data) schreiben können, und zwar mit Hilfe der MPI-Bibliothek (Message Passing Interface). MPI-Prozesse können Nachrichten mit Hilfe von Primitiven für die Punkt-zu-Punkt-Kommunikation senden und empfangen, die sich in Struktur und Semantik vom Message-Passing mit Sockets unterscheiden. Wir werden auch etwas über die Nachrichtenreihenfolge und die Deadlock-Eigenschaften von MPI-Programmen lernen. Die nicht blockierende Kommunikation ist eine interessante Erweiterung der Punkt-zu-Punkt-Kommunikation, da sie zur Vermeidung von Verzögerungen aufgrund von Blockierungen und zur Vermeidung von Fehlern im Zusammenhang mit Deadlocks eingesetzt werden kann. Schließlich werden wir uns mit der kollektiven Kommunikation beschäftigen, die mehrere Prozesse auf eine Weise einbeziehen kann, die leistungsfähiger ist als Multicast- und Publish-Subscribe-Operationen. Die in diesem Modul erworbenen MPI-Kenntnisse werden in dem mit diesem Modul verbundenen Miniprojekt zur Implementierung eines verteilten Matrixmultiplikationsprogramms in MPI in die Praxis umgesetzt.
Das ist alles enthalten
6 Videos6 Lektüren1 Aufgabe1 Programmieraufgabe
In diesem Modul werden wir die Rolle von Prozessen und Threads als grundlegende Bausteine paralleler, gleichzeitiger und verteilter Java-Programme untersuchen. Mit diesem Hintergrundwissen lernen wir dann, wie man Multithreading-Server implementiert, um die Reaktionsfähigkeit in verteilten Anwendungen, die mit Sockets geschrieben wurden, zu verbessern, und wenden dieses Wissen in dem Miniprojekt zur Implementierung eines parallelen Dateiservers an, der sowohl Multithreading als auch Sockets verwendet. Ein analoger Ansatz kann auch verwendet werden, um MPI und Multithreading zu kombinieren und so die Leistung von verteilten MPI-Anwendungen zu verbessern. Verteilte Akteure sind ein weiteres Beispiel für die Kombination von Verteilung und Multithreading. Eine bemerkenswerte Eigenschaft des Akteursmodells ist, dass dieselben High-Level-Konstrukte für die Kommunikation zwischen Akteuren, die im selben Prozess laufen, und zwischen Akteuren in verschiedenen Prozessen verwendet werden können; der Unterschied zwischen den beiden Fällen hängt von der Anwendungskonfiguration und nicht vom Anwendungscode ab. Schließlich lernen wir das reaktive Programmiermodell und seine Eignung für die Implementierung verteilter dienstorientierter Architekturen unter Verwendung asynchroner Ereignisse kennen.
Das ist alles enthalten
6 Videos7 Lektüren1 Aufgabe1 Programmieraufgabe
Die nächsten beiden Videos zeigen, wie wichtig es ist, etwas über parallele Programmierung und gleichzeitige Programmierung in Java zu lernen. Professor Vivek Sarkar wird bei Two Sigma mit Fachleuten aus der Industrie darüber sprechen, wie die Themen unserer beiden anderen Kurse in der Praxis eingesetzt werden.
Das ist alles enthalten
2 Videos1 Lektüre
Dozent
Empfohlen, wenn Sie sich für Softwareentwicklung interessieren
École Polytechnique Fédérale de Lausanne
Board Infinity
Oracle
University of California San Diego
Warum entscheiden sich Menschen für Coursera für ihre Karriere?
Bewertungen von Lernenden
494 Bewertungen
- 5 stars
68,88 %
- 4 stars
22,62 %
- 3 stars
5,05 %
- 2 stars
1,01 %
- 1 star
2,42 %
Zeigt 3 von 494 an
Geprüft am 27. Apr. 2020
A very good course, I learnt a lot from it, thank you Coursera.
Geprüft am 2. Mai 2022
Learnt so much, I've going to do such good things at work. :)
Geprüft am 2. Apr. 2018
Very clear overview. Helpful for my understanding of distributed system.
Neue Karrieremöglichkeiten mit Coursera Plus
Unbegrenzter Zugang zu 10,000+ Weltklasse-Kursen, praktischen Projekten und berufsqualifizierenden Zertifikatsprogrammen - alles in Ihrem Abonnement enthalten
Bringen Sie Ihre Karriere mit einem Online-Abschluss voran.
Erwerben Sie einen Abschluss von erstklassigen Universitäten – 100 % online
Schließen Sie sich mehr als 3.400 Unternehmen in aller Welt an, die sich für Coursera for Business entschieden haben.
Schulen Sie Ihre Mitarbeiter*innen, um sich in der digitalen Wirtschaft zu behaupten.
Häufig gestellte Fragen
Nein. Die Vorlesungsvideos, Demonstrationen und Quizfragen reichen aus, um diesen Kurs zu absolvieren. Kursteilnehmer, die sich für den Kurs anmelden und an einem Zertifikat interessiert sind, haben außerdem Zugang zu einem zusätzlichen Kursbuch mit weiteren technischen Details.
Multicore-Programmierung in Java: Parallelität und Multicore-Programmierung in Java: Gleichzeitigkeit behandeln ergänzende Aspekte der Multicore-Programmierung und können in beliebiger Reihenfolge belegt werden. Der Kurs Parallelität behandelt die Grundlagen der Nutzung von Parallelität, um Anwendungen durch die gleichzeitige Nutzung mehrerer Prozessoren schneller laufen zu lassen. Der Kurs Gleichzeitigkeit behandelt die Grundlagen, wie parallele Tasks und Threads die gleichzeitige Nutzung gemeinsamer Ressourcen wie gemeinsam genutzte Objekte, Netzwerkressourcen und Dateisysteme korrekt vermitteln.
Der Zugang zu Vorlesungen und Aufgaben hängt von der Art Ihrer Einschreibung ab. Wenn Sie einen Kurs im Prüfungsmodus belegen, können Sie die meisten Kursmaterialien kostenlos einsehen. Um auf benotete Aufgaben zuzugreifen und ein Zertifikat zu erwerben, müssen Sie die Zertifikatserfahrung während oder nach Ihrer Prüfung erwerben. Wenn Sie die Prüfungsoption nicht sehen:
Der Kurs bietet möglicherweise keine Prüfungsoption. Sie können stattdessen eine kostenlose Testversion ausprobieren oder finanzielle Unterstützung beantragen.
Der Kurs bietet möglicherweise stattdessen die Option 'Vollständiger Kurs, kein Zertifikat'. Mit dieser Option können Sie alle Kursmaterialien einsehen, die erforderlichen Bewertungen abgeben und eine Abschlussnote erhalten. Dies bedeutet auch, dass Sie kein Zertifikat erwerben können.