Applications Réparties - Partie II: Interactions par objets distribués ou par Messages

Cours Polytech'Nice, SI4, 2010-2011-2012-2013, 2014, 2015, 2016

Objectif/Contenu :

  • Principes des Applications Client Serveur Objet, par interaction sous forme d'appels de méthodes distantes
  • Introduction aux approches d'interaction entre objets répartis par messages asynchrones et événements
  • Cet enseignement SI4 fait partie du module Applications Réparties. La partie I était dédiée aux technologies de programmation répartie par services telle les Services Web. Cette seconde partie présente des approches telle JavaRMI, plus intégrées où les services et les clients utilisant ces services doivent avoir été compilés pour une même plateforme d'exécution (ils ont besoin d'avoir une copie de certaines parties du code compilé). Comme pour les approches WebServices, des protocoles réseau (haut niveauà sophistiqués régissent la manière dont les différentes entités interagissent, offrant ainsi certaines garanties de nature non-fonctionnelle.

    Lien vers l'enseignement de ce module il y a de cela quelques années


    Quelques liens vers des enseignements sur ces sujets :


    Cours 0: (optionnel, et qu'on peut même regarder en fin de module, pour simplement s'assurer qu'on a compris le positionnement) Introduction de cette partie II concernant les objets répartis

    Cours 1: Programmation répartie en JavaRMI

    Cours (à lire seul) sur la sémantique des modèles de programmation à objets distribués

    Non traité depuis 2013: Protection par Programmation des applications Java : JAAS (Cours EPU 2009-2010).

    Des ressources en ligne sur RMI:
    Lien vers le tutorial RMI "officiel", Notes Techniques et OnLine Training (pas tout récent) et la spécification RMI
    Un article assez intéressant sur le comportement interne de RMI

    Seance 1 de TP: Une appli RMI simple: l'exemple le plus simple possible

    Seance 2 de TP : Tout sur le passage de paramétres, et la migration de code

    Seance 3 de TP (plus ou moins optionnelle) : Des precisions sur la sécurité, les smart proxy, et activatable objects

    Seance 4 de TP (depuis 2013-2014) : L'utilisation de JNDI en RMI
    Un ensemble de transparents utilisables en TP sur JNDI, un ancien cours (transparents 26- en particulier)

    Seance 4 de TP (non traitée depuis 2013-2014) : L'utilisation de JAAS et des Sockets SSL pour sécuriser les applications RMI

    Un excellent livre sur la sécurité: J2EE Security (For Servlets, EJBs, and Web Services):Applying Theory and Standards to Practice, Pankaj Kumar, Prentice Hall, 2004

    Cours 3 Nouveau, depuis 2013-2014: Message Oriented Middleware essentiellement basé sur un cours Polytech Grenoble, Didier Donsez

    Cours 4 Nouveau depuis 2013-2014: Etude de JMS essentiellement basé sur un cours Polytech Grenoble, Didier Donsez

    Seance 5 de TP (nouveau depuis 2013-2014) : L'utilisation de JMS pour des queues de messages

    Seance 6 de TP (nouveau depuis 2013-2014) : L'utilisation de JMS pour du pub/sub

    Comparaison des spécifications AMQP et JMS : ici
    Livre très complet sur les MOMs : en téléchargement gratuit.


    Cours 3: Introduction à CORBA (Cours EPU 2009-2010). Version imprimable en gris/blanc. (version plus complète pour ceux qui veulent encore plus de détails)

    Cours 4: Architecture interne de CORBA et services CORBA, JNDI et RMI-IIOP

    Seance 5 de TP: Une application CORBA simple, illustrant l'IDL. Utilisation du bus Corba de Java

    Seance 6 de TP: Utilisation du service de nommage CORBA et de RMI-IIOP

    Un autre site de cours sur CORBA

    Bientôt: Le sujet du mini projet, à rendre le 25 mai 2016 à 24h dernier délai

    L'examen 2014 où les documents n'étaient pas autorisés

    L'examen 2013 où les documents étaient autorisés, et des éléments de correction.

    L'examen 2012 et sa correction

    L'examen 2011 et sa correction. ATTENTION la copie fournie en correction est fausse concernant l'exercice 4. Le serveur n'affiche que 3 messages, et le dernier message du client affiche SERVEUR et non "unknown". Voir ici pour les détails et le programme codé si vous voulez vous en convaincre par vous même.


    Pour aller plus loin : A propos des approches à Objets pour la programmation d'applications réparties
    Un excellent livre facile d'abord et qui ne veillit pas : Architectures réparties en Java, Annick Fron, Dunod, 2007
    Java RMI And CORBA A comparison of two competing technologies
    Le devenir de Corba

    Pour aller plus loin: en vue du cours SOA de 5ème année
    Des brokers d'objets (ORB) aux bus à services Using Open Source Software for SOA ou aussi Voir la première partie du talk
    Un article sur les points ouverts (recherche) concernant le SOA
    Un article decrivant l'usage d'un bus a services, ici, le bus PETALS

    Pour aller plus loin: en vue du cours Algorithmique pour les systèmes répartis de 5ème année
    Distributed Systems, Concepts and Design, 4th edition, G. Coulouris,  and al. Addison Wesley

    Pour aller plus loin: programmation efficace (notamment parallèle) par objets ou composants logiciels
    ProActive