Applications Concurrentes : Conception et Outils (Accov)
Formation
À Clichy
Avez-vous besoin d'un coach de formation?
Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.
Description
-
Typologie
Formation
-
Lieu
Clichy
Objectifs: Avec l'extension du Web, de Java et de Ada95, des outils de programmation réseau, avec la programmation par événements associée à des 'threads' et à des actions réparties, avec l'approche client-serveur, il va être de plus en plus facile de faire de la programmation concurrente ou parallèle. C'est facile à programmer, mais cet#8217… Destinataires: Avoir le niveau du cycle probatoire en informatique plus particulièrement dans la dominante conception et développement informatiques ou avoir une licence ou maîtrise d'informatique. Avoir le niveau du cycle probatoire en informatique plus particulièrement dans la dominante conception et développement informatiques ou avoir une licence ou ma…
Les sites et dates disponibles
Lieu
Date de début
Date de début
Les Avis
Le programme
PUBLIC :
Avoir le niveau du cycle probatoire en informatique plus particulièrement dans la dominante conception et développement informatiques ou avoir une licence ou maîtrise d'informatique.
Avoir le niveau du cycle probatoire en informatique plus particulièrement dans la dominante conception et développement informatiques ou avoir une licence ou maîtrise d'informatique.
Objectifs :
Avec l'extension du Web, de Java et de Ada95, des outils de programmation réseau, avec la programmation par événements associée à des "threads" et à des actions réparties, avec l'approche client-serveur, il va être de plus en plus facile de faire de la programmation concurrente ou parallèle. C'est facile à programmer, mais c'est difficile à faire correctement : beaucoup de programmes concurrents seront faux. Il faut sensibiliser les auditeurs aux bons paradigmes, aux bons "patterns" de concurrence ou de parallélisme, bons parce que bien connus et bien éprouvés par ceux qui développent des programmes concurrents depuis longtemps, mais aussi parce qu'ils sont prouvables et validables avec des outils de validation. Or ces outils sont disponibles sur le web et utilisés déjà pour des programmes et des problèmes réels. Il est donc d'actualité d'enseigner ces "patterns" et leur évaluation, pour qu'ils soient utilisés lors du développement ou de l'évaluation des progiciels.
Capacité et compétences acquises :
conception, programmation et validation de programmes concurrents fiables
Description des heures d'enseignements
Cours - Travaux pratiques : 60 heures
Modalités de validation : dossier de projet examen final
Nature et structuration des applications comportant des processus concurrents.
Contrôle de concurrence dans les moniteurs transactionnels, dans les systèmes d'information, dans les applications temps réel, dans le multimédia. Contrôle de concurrence dans les plates-formes systèmes standard (Posix, Unix, Linux, WindowsNT, MacOs8, Chorus, Mach, ... ), les plates-formes objets (Corba, Cool), les plates-formes temps réel (VxWorks, pSoS, Vrtx, Rtc, LynxOs, T-Smart), PVM, MPI, les mobiles, le "groupware", le "peer to peer".
Regroupement et hiérarchie de processus, modèle client-serveur, modèle transactionnel. Gestion mémoire des processus et des modules partagés. Allocation dynamique de la mémoire. Partitionnement pour la répartition et la distribution.
Les paradigmes de la concurrence et les archétypes de programmation ('design patterns').
Exclusion mutuelle, élection, producteur consommateur, lecteurs rédacteurs, client-serveur, "peer to peer", problèmes liés aux pannes, diffusion atomique ordonnée, interblocage, famine, terminaison.
Mécanismes de bases (processus, sémaphores, moniteurs, la classe "thread" et les méthodes "synchronized" dans Java, tâches et objets protégés dans ADA95, communication synchrone et asynchrone, messages, boîtes aux lettres, tableau noir, invocation à distance, rendez-vous, RPC et proxys, transaction). Programmation des paradigmes. Modularité et objets concurrents.
La spécification des problèmes et les outils de vérification et de validation des solutions
Aperçu des méthodes de spécification : automates, états-assertions, méthode B, logique temporelle, réseaux de Pétri.
Techniques d'analyse des réseaux de Petri (analyse structurelle), "Model-cheking" (logique temporelle), automates synchronisés. Utilisation des outils de simulation et de validation : Quasar, GreatSPN, CPN-AMI, DesignCPN (sur le web).
Ouvertures
Evaluation quantitative : temps de réponse, échéance, gigue. Contraintes de précédence. Qualité de service.
Traite-interruptions, transfert asynchrone (signaux, AST), modes de fonctionnement, sécurité, distribution et placement.
Méthode d'enseignement (cours + ED + TP intégrés)
Présentation et discussion d'exemples de schémas de concurrence exprimés en Ada, Java... et fournis sous forme de programmes exécutables.
Validation des exemples en utilisant des outils spécifiques.
Projet en utilisant des logiciels libres : réalisation, validation et évaluation quantitative, programmation et comparaison des solutions en Ada, Java, Posix. Non interblocage, equite. On pourra considerer la repartition de l application.
Projets vus en 2004-2005 et présentés
1. système de surveillance par webcam : Un site Web utilise 8 appareils webcam de surveillance et récupère des images avec un lot de serveurs connectés à des clients. Voir [ACCOV62SurveillanceWebcams. pdf]
2. Synoptique pour suivre plusieurs usines : voir [ACCOV63SynoptiqueUsine. pdf]
3. Coopération pair à pair avec le paradigme des caménéons : étude de la synchronisation dans une relation "Peer to Peer"
voir [ACCOV64Chameneos. pdf]
A cause du projet et du tutorat qu'il implique, le nombre d'auditeurs inscrits est limité à 30.
Avez-vous besoin d'un coach de formation?
Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.
Applications Concurrentes : Conception et Outils (Accov)