130 likes | 238 Vues
This chapter explores the mechanisms behind multicast and unicast communications within the Jini discovery framework. It delves into the interfaces and classes such as DiscoveryListener and DiscoveryEvent, explaining how they interact with service registrars. The LookupDiscovery class is introduced, which manages service discovery and listener registrations. Key concepts like groups and permissions are discussed in detail, facilitating a deeper understanding of networked service discovery in Java. This serves as an essential guide for developers working with Jini technology.
E N D
Chapter 6: In Depth Discovery. Chapter 7: טלי ערבה גיא גילעד
Multicast request Communication flow
Multicast announcement Communication flow
Unicast discovery Communication flow
package net.jini.discovery; import java.util.EventListener; public interface DiscoveryListener extends EventListener { public void discovered(DiscoveryEvent ev); public void discarded(DiscoveryEvent ev); }
package net.jini.discovery; import java.util.EventObject; public class DiscoveryEvent extends EventObject { // … some methods elided … public ServiceRegistrar[] getRegistrars(); }
package net.jini.discovery; public class LookupDiscovery { public static final String[] ALL_GROUPS = null; public static final String[] NO_GROUPS = new String[0]; public LookupDiscovery(String[] grps) throws IOException; public void addDiscoveryListener(DiscoveryListener l); public void removeDiscoveryListener(DiscoveryListener l);
public void discard(ServiceRegistrar reg); public String[] getGroups(); public void setGroups(String[] grps) throws IOException; public void addGroups(String[] grps) throws IOException; public void removeGroups(String[] grps); public void terminate(); }
package net.jini.discovery; public class LookupLocator implements Serializable { public LookupLocator(String host, int port); public LookupLocator(String url) throws MalformedURLException; public String getHost(); public int getPort(); public ServiceRegistrar getRegistrar() throws IOException, ClassNotFoundException; public ServiceRegistrar getRegistrar(int timeout) throws IOException, ClassNotFoundException; }
security permission net.jini.discovery.DiscoveryPermission “*” permission net.jini.discovery.DiscoveryPermission “unsafe” permission net.jini.discovery.DiscoveryPermission “”