Ce cours enseigne aux apprenants (professionnels de l'industrie et étudiants) les concepts fondamentaux de la programmation distribuée dans le contexte de Java 8. La programmation distribuée permet aux développeurs d'utiliser plusieurs nœuds dans un centre de données pour augmenter le débit et/ou réduire la latence des applications sélectionnées. À la fin de ce cours, vous apprendrez à utiliser les cadres de programmation distribuée les plus populaires pour les programmes Java, y compris Hadoop, Spark, Sockets, Remote Method Invocation (RMI), Multicast Sockets, Kafka, Message Passing Interface (MPI), ainsi que différentes approches pour combiner la distribution avec le multithreading. Pourquoi suivre ce cours ? - Tous les serveurs des centres de données sont organisés comme des collections de serveurs distribués, et il est important que vous appreniez également à utiliser plusieurs serveurs pour augmenter la bande passante et réduire le temps de latence.
Programmation distribuée en Java
Ce cours fait partie de Spécialisation Programmation parallèle, concurrente et distribuée en Java
Instructeur : Vivek Sarkar
25 240 déjà inscrits
Inclus avec
(494 avis)
Compétences que vous acquerrez
- Catégorie : Informatique distribuée
- Catégorie : Acteur Modèle
- Catégorie : Calcul parallèle
- Catégorie : Programmation réactive
Détails à connaître
Ajouter à votre profil LinkedIn
4 devoirs
Découvrez comment les employés des entreprises prestigieuses maîtrisent des compétences recherchées
Élaborez votre expertise du sujet
- Apprenez de nouveaux concepts auprès d'experts du secteur
- Acquérez une compréhension de base d'un sujet ou d'un outil
- Développez des compétences professionnelles avec des projets pratiques
- Obtenez un certificat professionnel partageable
Obtenez un certificat professionnel
Ajoutez cette qualification à votre profil LinkedIn ou à votre CV
Partagez-le sur les réseaux sociaux et dans votre évaluation de performance
Il y a 7 modules dans ce cours
Bienvenue à la programmation distribuée en Java ! Ce cours est conçu comme une série de trois parties et couvre un thème ou un ensemble de connaissances à travers des conférences vidéo, des démonstrations et des projets de codage.
Inclus
1 vidéo5 lectures1 devoir de programmation1 sujet de discussion
Dans ce module, nous allons découvrir le paradigme MapReduce et comment il peut être utilisé pour écrire des programmes distribués qui analysent des données représentées sous forme de paires clé-valeur. Un programme MapReduce est défini par des fonctions map et reduce spécifiées par l'utilisateur, et nous apprendrons à écrire de tels programmes dans les projets Apache Hadoop et Spark. Le paradigme MapReduce peut être utilisé pour exprimer une large gamme d'algorithmes parallèles. Un exemple que nous étudierons est le calcul de la statistique TermFrequency - Inverse Document Frequency (TF-IDF) utilisée dans l'exploration de documents ; cet algorithme utilise un nombre fixe (non itératif) d'opérations map et reduce. Un autre exemple de MapReduce que nous étudierons est la parallélisation de l'algorithme PageRank. Cet algorithme est un exemple de calculs MapReduce itératifs, et est également au centre du mini-projet associé à ce module.
Inclus
6 vidéos6 lectures1 devoir1 devoir de programmation
Dans ce module, nous allons découvrir la programmation client-serveur et la manière dont les applications Java distribuées peuvent communiquer entre elles à l'aide de sockets. Comme la communication via les sockets se fait au niveau des octets, nous apprendrons à sérialiser les objets en octets dans le processus émetteur et à désérialiser les octets en objets dans le processus récepteur. Les sockets et la sérialisation fournissent le contexte nécessaire au mini-projet de serveur de fichiers associé à ce module. Nous apprendrons également ce qu'est l'invocation de méthodes à distance (RMI), qui étend la notion d'invocation de méthodes dans un programme séquentiel à un environnement de programmation distribué. De même, nous découvrirons les sockets multicast, qui généralisent l'interface socket standard pour permettre à un expéditeur d'envoyer le même message à un ensemble spécifié de récepteurs ; cette capacité peut être très utile pour un certain nombre d'applications, y compris les flux d'informations, les vidéoconférences et les jeux multi-joueurs. Enfin, nous découvrirons les applications distribuées de type publication-abonnement et la manière dont elles peuvent être mises en œuvre à l'aide du cadre Apache Kafka.
Inclus
6 vidéos6 lectures1 devoir1 devoir de programmation
Rejoignez le professeur Vivek Sarkar qui s'entretient avec Jim Ward, directeur général de Two Sigma, et Eric Allen, vice-président senior, dans leurs bureaux de Houston, au Texas, sur l'importance de la programmation distribuée.
Inclus
2 vidéos1 lecture
Dans ce module, nous allons apprendre à écrire des applications distribuées dans le modèle SPMD (Single Program Multiple Data), en particulier en utilisant la bibliothèque MPI (Message Passing Interface). Les processus MPI peuvent envoyer et recevoir des messages en utilisant des primitives de communication point à point, dont la structure et la sémantique sont différentes de celles du passage de messages avec des sockets. Nous apprendrons également à connaître les propriétés d'ordonnancement des messages et de blocage des programmes MPI. Les communications non bloquantes sont une extension intéressante des communications point à point, puisqu'elles peuvent être utilisées pour éviter les retards dus au blocage et pour éviter les erreurs liées au blocage. Enfin, nous étudierons la communication collective, qui peut impliquer plusieurs processus d'une manière plus puissante que les opérations multicast et publish-subscribe. Les connaissances de MPI acquises dans ce module seront mises en pratique dans le mini-projet associé à ce module sur l'implémentation d'un programme de multiplication matricielle distribuée en MPI.
Inclus
6 vidéos6 lectures1 devoir1 devoir de programmation
Dans ce module, nous étudierons les rôles des processus et des threads en tant qu'éléments de base des programmes Java parallèles, concurrents et distribués. Sur cette base, nous apprendrons à mettre en œuvre des serveurs multithreads pour améliorer la réactivité des applications distribuées écrites à l'aide de sockets, et nous appliquerons ces connaissances dans le mini-projet sur la mise en œuvre d'un serveur de fichiers parallèle utilisant à la fois le multithreading et les sockets. Une approche analogue peut également être utilisée pour combiner MPI et le multithreading, afin d'améliorer les performances des applications MPI distribuées. Les acteurs distribués constituent un autre exemple de combinaison de la distribution et du multithreading. Une propriété notable du modèle d'acteur est que les mêmes constructions de haut niveau peuvent être utilisées pour communiquer entre des acteurs s'exécutant dans le même processus et entre des acteurs se trouvant dans des processus différents ; la différence entre les deux cas dépend de la configuration de l'application, plutôt que du code de l'application. Enfin, nous découvrirons le modèle de programmation réactive et son utilité pour la mise en œuvre d'architectures distribuées orientées services utilisant des événements asynchrones.
Inclus
6 vidéos7 lectures1 devoir1 devoir de programmation
Les deux prochaines vidéos montreront l'importance d'apprendre la programmation parallèle et la programmation concurrente en Java. Le professeur Vivek Sarkar s'entretiendra avec des professionnels de l'industrie à Two Sigma sur la manière dont les thèmes de nos deux autres cours sont utilisés sur le terrain.
Inclus
2 vidéos1 lecture
Instructeur
Offert par
Recommandé si vous êtes intéressé(e) par Développement de logiciels
École Polytechnique Fédérale de Lausanne
Board Infinity
Oracle
University of California San Diego
Pour quelles raisons les étudiants sur Coursera nous choisissent-ils pour leur carrière ?
Avis des étudiants
494 avis
- 5 stars
68,88 %
- 4 stars
22,62 %
- 3 stars
5,05 %
- 2 stars
1,01 %
- 1 star
2,42 %
Affichage de 3 sur 494
Révisé le 2 avr. 2018
Very clear overview. Helpful for my understanding of distributed system.
Révisé le 27 avr. 2020
A very good course, I learnt a lot from it, thank you Coursera.
Révisé le 1 mai 2020
The concepts taught were clear and precise which helped me with an ongoing project. It would have been really better if the mini-projects were a bit more complicated.
Ouvrez de nouvelles portes avec Coursera Plus
Accès illimité à 10,000+ cours de niveau international, projets pratiques et programmes de certification prêts à l'emploi - tous inclus dans votre abonnement.
Faites progresser votre carrière avec un diplôme en ligne
Obtenez un diplôme auprès d’universités de renommée mondiale - 100 % en ligne
Rejoignez plus de 3 400 entreprises mondiales qui ont choisi Coursera pour les affaires
Améliorez les compétences de vos employés pour exceller dans l’économie numérique
Foire Aux Questions
Non. Les vidéos de cours, les démonstrations et les quiz seront suffisants pour vous permettre de suivre ce cours. Les étudiants qui s'inscrivent au cours et qui souhaitent recevoir un certificat auront également accès à un manuel de cours complémentaire contenant des détails techniques supplémentaires.
Programmation Multicore en Java : Le parallélisme et la programmation multicore en Java : Concurrency couvrent des aspects complémentaires de la programmation multicore et peuvent être suivis dans n'importe quel ordre. Le cours sur le parallélisme couvre les principes fondamentaux de l'utilisation du parallélisme pour accélérer l'exécution des applications en utilisant plusieurs processeurs en même temps. Le cours sur la Concurrence couvre les principes fondamentaux de l'utilisation simultanée de ressources partagées telles que les objets partagés, les ressources réseau et les systèmes de fichiers par des tâches parallèles et des fils d'exécution (threads).
L'accès aux cours et aux devoirs dépend de votre type d'inscription. Si vous suivez un cours en mode audit, vous pourrez consulter gratuitement la plupart des supports de cours. Pour accéder aux devoirs notés et obtenir un certificat, vous devrez acheter l'expérience de certificat, pendant ou après votre audit. Si vous ne voyez pas l'option d'audit :
Il se peut que le cours ne propose pas d'option d'audit. Vous pouvez essayer un essai gratuit ou demander une aide financière.
Le cours peut proposer l'option "Cours complet, pas de certificat" à la place. Cette option vous permet de consulter tous les supports de cours, de soumettre les évaluations requises et d'obtenir une note finale. Cela signifie également que vous ne pourrez pas acheter un certificat d'expérience.