1 / 14

Jini : principes

Jini : principes. Formation RICM2 / Polytech Fabienne Boyer – UFR IMA – 2006/2007. Fonction de JINI. Découverte dynamique de services (impression, envoi/réception de mails, etc) dans un environnement distribué local

rich
Download Presentation

Jini : principes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Jini : principes Formation RICM2 / Polytech Fabienne Boyer – UFR IMA – 2006/2007

  2. Fonction de JINI • Découverte dynamique de services (impression, envoi/réception de mails, etc) dans un environnement distribué local • Modèle de programmation pour élaborer des services et les enregistrer/désenregistrer dynamiquement (‘Plug and Play’) • Environnement d'exécution au dessus de TCP/IP + (RMI, IIOP, etc).

  3. Concepts de JINI • Service • Associé à un bail • Utilisable par une personne, un programme ou un autre service • Services de base • Discovery service  Lookup Service • Lookup service  Service ref • Service Protocol • Protocoles de communication entre services, défini par une API en Java • Discovery protocol • Join protocol • Lookup protocol • JINI n'intervient que pour la mise en correspondance des services

  4. response (unicast) announce (multicast) service ID request (multicast) request (unicast) Jini Interaction Diagram Lookup Service Jini Core response (unicast) register Jini Enabled Service Client Source: Jini tutorial session, as presented at the 2001 O'Reilly Enterprise Java Conference

  5. Le Client JINI • Discovery (bootstrap)  Lookup Services refs • Lookup (Service template)  Service refs • Accède aux Servicex via un proxy (stub RMI ou autre)

  6. Lookup Service • Fonctions • Etablir le contact entre un client et un service. • Composant principal de JINI (trader / bus à services). • Maintient les associations (spécifications, service) • La spécification d'un service peut comprendre ses propriétés • Lookup(ServiceTemplate), où le Template a la forme suivante: (indentifiant, specification, attributs). • Ex: (0, imprimante, couleur)

  7. ServiceRegistrar • Notion de ServiceRegistrars • Un ServiceRegistrar est un stub permettant d'interagir avec un service • Méthode register (utilisée par le serveur) • Enregistrement d'un service pour une durée • Méthode lookup (utilisée par un client) • Récupère un objet proxy pour interagir avec le service

  8. Discovery Service • Permet de découvrir des Lookup Services • multicast request (l'espace de multicast est déterminé par un nom de groupe UDP, qui identifie le type de services visés) • unicast request (le client connaît l'adresse de la machine auprès de laquelle il souhaite trouver le lookup service) • LookupDiscovery(group/@IP, ..) • l'application enregistre un DiscoveryListener • Discoverylistener • les méthodes discovered() et discarded() sont invoquées de manière asynchrone lors de l'apparition et de la disparition de LookupService • DiscoveryEvent • contient les registrars des services qui apparaissent et disparaissent

  9. Join Service • Fonctions • Enregistrer un service. • Notion de bail (temps, ANY, FOREVER) • Le bail se termine de façon silencieuse (le service n'est pas averti), et doit être renouvelé (renewing) • JoinManager(service, attributs, object, …)

  10. Interaction avec un service (exemples) • Communication client-service nulle • Une copie du service est transmise au client qui l'utilise localement (ex: bytecode Java). • Communication via RMI • Un stub est transmis au client • Communication via les sockets • Un protocole propriétaire est utilisé pour la communication.

  11. Client & Server JINI • Serveur: • LookupDiscovery • Create information about a service • Join for the service • Renew leasing periodically • Client • lookupDiscovery • Prepare a template for searching a service • Lookup (template) • Interact with the service

  12. CODE SAMPLE: Client Jini public class Client implements DiscoveryListener { public void discovered(DiscoveryEvent e) { //Récupération des lookup services trouvés par le lookupDiscovery Object[] lks = e.getRegistrars(); … } public void discarded(DiscoveryEvent e) { … } public Object getService(ServiceRegistrar regs[], ServiceTemplate tmpl) { . . . o = regs[i].lookup(tmpl); return o; } public void main(..) { … new LookupDiscovery((LookupDiscovery.ALL-GROUPS).addDiscoveryListener(this); while (attendre) {Thread.sleep(..);} service = getService(template); service.XXX(…); }

  13. CODE SAMPLE: Server Jini public class Server implements ServiceIDListener { public void serviceIDNotify(ServiceID sid) { // service enregistré auprès d'un LS ServiceRegistrar regs[] = jm.getJoinSet(); for (int i=0; i>regs.length; i++) System.out.println(regs[i].getLocator(); .. } public void main(..) { … service = new Service(…); lkd=new LookupDiscovery((LookupDiscovery.ALL-GROUPS).addDiscoveryListener(this); new JoinManager(service, entries, this, lkd, null); while (attendre) {Thread.sleep(..);} }

  14. Autres liens • Online • www.jini.org/ • www.litefaden.com/sv/jd/ • www.javacoffeebreak.com/books/extracts/jini/jini.html • www.artima.com/jini/ - Bill Venners • www.carbonfive.com/oreilly - This Presentation • Books • Core Jini, 2nd Edition • W. Keith Edwards • A Programmers Guide to Jini Technology • Jan Newmarch • The Jini Specifications, 2nd Edition • Jim Waldo • JavaSpaces Principles, Patterns, and Practice • Freeman, Hupfer, Arnold

More Related