January 26, 1999--Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Jini™ Lookup Service Bob Scheifler Senior Staff Engineer Sun.

Slides:



Advertisements
Similar presentations
- 1 - Jini in the Enterprise O'Reilly Conference on Java Scott Oaks Sun Microsystems
Advertisements

The Jini Technology Lookup Service. How Does It Work Services and clients find a lookup service using the discovery protocol Services advertise themselves.
Consistency and Replication Chapter 7 Part II Replica Management & Consistency Protocols.
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 6 Managing and Administering DNS in Windows Server 2008.
JINI Shashwat Shriparv InfinitySoft.
© 2007 Cisco Systems, Inc. All rights reserved. 1 Network Addressing Networking for Home and Small Businesses – Chapter 5.
Remote Method Invocation
Naming Computer Engineering Department Distributed Systems Course Asst. Prof. Dr. Ahmet Sayar Kocaeli University - Fall 2014.
Introduction to Jini & JavaSpaces
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
1 Frameworks. 2 Framework Set of cooperating classes/interfaces –Structure essential mechanisms of a problem domain –Programmer can extend framework classes,
MOBILITY SUPPORT IN IPv6
CS 603 Jini April 10, What is Jini? Java Middleware Tools to construct federation –Multiple devices, each with Java Virtual Machine –Multiple services.
CS603 Directory Services January 30, Name Resolution: What would you like? Historical? –Mail –Telephone DNS? X.500 / LDAP? DCE? ActiveDirectory?
October 2003 Iosif Legrand Iosif Legrand California Institute of Technology.
Hands-On Microsoft Windows Server 2003 Networking Chapter 7 Windows Internet Naming Service.
Hands-On Microsoft Windows Server 2003 Administration Chapter 9 Administering DNS.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 8: Implementing and Managing Printers.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 7: Planning a DNS Strategy.
490dp Prelude I: Group Membership Prelude II: Team Presentations Tuples Robert Grimm.
Jini Connection Technology Kaushik Lahoti. Jini: A Vision n Areas to focus on –Simplicity –Reliability –Scalability.
© 2008 Cisco Systems, Inc. All rights reserved. Cisco Unity Connection 7.0 Directory Integration TOI Manoj Agrawal
Hands-On Microsoft Windows Server 2008 Chapter 8 Managing Windows Server 2008 Network Services.
Understanding Active Directory
11.1 © 2004 Pearson Education, Inc. Exam Managing and Maintaining a Microsoft® Windows® Server 2003 Environment Lesson 11: Introducing WINS, DNS,
Christopher M. Pascucci Basic Structural Concepts of.NET Browser – Server Interaction.
Chapter 2 Architectural Models. Keywords Middleware Interface vs. implementation Client-server models OOP.
TupleSpaces Revisited: Linda to TSpaces Ben Y. Zhao 13 July, 1998 UC Berkeley Computer Science Division.
Jini Technology Part 1: Jini Technology Introduction Part 2: JavaSpace & GigaSpace.
Name Resolution Domain Name System.
Presented by Mark Miyashita
Introduction - What is Jini Technology?
70-291: MCSE Guide to Managing a Microsoft Windows Server 2003 Network Chapter 7: Domain Name System.
Nov 6, 2000CS851 Ubiquitous Computing1 The Jini Architecture Speaker: Weisheng Si Dept. of Computer Science University of Virginia.
5.1 Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED.
70-294: MCSE Guide to Microsoft Windows Server 2003 Active Directory, Enhanced Chapter 4: Active Directory Architecture.
January 26, Jim Waldo Copyright 1999 Sun Microsystems, Inc., all rights reserved.
SUSE Linux Enterprise Desktop Administration Chapter 12 Administer Printing.
© 2007 Cisco Systems, Inc. All rights reserved. 1 Network Addressing Networking for Home and Small Businesses – Chapter 5 Darren Shaver – Modified Fall.
11/13/00 1 Design of a Home Network Rajesh Rajamani
Module 7: Resolving NetBIOS Names by Using Windows Internet Name Service (WINS)
Spring/2002 Distributed Software Engineering C:\unocourses\4350\slides\DefiningThreads 1 RMI.
Client Call Back Client Call Back is useful for multiple clients to keep up to date about changes on the server Example: One auction server and several.
RMI remote method invocation. Traditional network programming The client program sends data to the server in some intermediary format and the server has.
The Replica Location Service The Globus Project™ And The DataGrid Project Copyright (c) 2002 University of Chicago and The University of Southern California.
1 Lecture 16 Jini Technology Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology
Jini Architecture Alessandro Brawerman. Contents Jini definition Advantages Architecture How it works Websites to check.
1 JSK 1.1 A practical Approach Contents –Working with JSK 1.1 –Jini environments –Writing Jini software revisited –Important software packages in the JSK.
Service Discovery Protocols Mobile Computing - CNT Dr. Sumi Helal Professor Computer & Information Science & Engineering Department University.
Jini Architecture Introduction System Overview An Example.
Configuring and Troubleshooting Identity and Access Solutions with Windows Server® 2008 Active Directory®
Allocating IP Addressing by Using Dynamic Host Configuration Protocol.
PPDG February 2002 Iosif Legrand Monitoring systems requirements, Prototype tools and integration with other services Iosif Legrand California Institute.
Improving SLP Efficiency and Extendability by Using Global Attributes and Preference Filters Weibin Zhao Henning Schulzrinne
Active Directory. Computers in organizations Computers are linked together for communication and sharing of resources There is always a need to administer.
Enterprise Computing with Jini Technology Mark Stang and Stephen Whinston Jan / Feb 2001, IT Pro presented by Alex Kotchnev.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 6: Planning, Configuring, And Troubleshooting WINS.
January 26, Ken Arnold Copyright 1999 Sun Microsystems, Inc., all rights reserved.
Chapter 4: server services. The Complete Guide to Linux System Administration2 Objectives Configure network interfaces using command- line and graphical.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Distributed Coordination-Based Systems
11. Jini What is Jini? A "network technology that provides a simple (?) infrastructure for delivering services in a network and for creating interactions.
IMPLEMENTING NAME RESOLUTION USING DNS
Remote Method Invocation
Knowledge Byte In this section, you will learn about:
Bina Ramamurthy Chapter 9
Bina Ramamurthy Chapter 9
Bina Ramamurthy Chapter 9
JINI ICS 243F- Distributed Systems Middleware, Spring 2001
Overview Multimedia: The Role of WINS in the Network Infrastructure
Presentation transcript:

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Jini™ Lookup Service Bob Scheifler Senior Staff Engineer Sun Microsystems, Inc

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Jini lookup service network service –for finding other network services –“workgroup”-scale, not the entire Internet not a naming or directory service –X.500, LDAP, DNS, NDS, RMI registry focus is on types, not names –yellow pages, not white pages both programmatic and end-user access

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Lookup service is closer to: IETF Service Location Protocol OMG Trading Object Service

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Feature Comparison

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Jini service structure service is defined by one or more Java interfaces service has a front-end proxy object –RMI stub or custom-coded class proxy implements Java interfaces clients only know about Java interfaces

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Jini service structure proxy class can be specialized –to particular implementation of service –network protocol between proxy and service can be private and varied proxy class is downloaded to clients –classes are annotated with codebase URL –clients oblivious to implementation details

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Example: Transaction Manager service interface –net.jini.core.transaction.server.TransactionManager RMI-based service implementation –com.sun.jini.mahalo.TxnManagerImpl proxy class (RMI stub) –com.sun.jini.mahalo.TxnManagerImpl_Stub client only knows about TransactionManager interface

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Example: JavaSpace service interface –net.jini.space.JavaSpace RMI-based service implementation –com.sun.jini.outrigger.FrontEndSpace proxy class (custom-coded) –com.sun.jini.outrigger.SpaceProxy client only knows about JavaSpace interface

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Lookup service 101 each service registers its proxy object client does lookup by Java type –instanceof semantics –API uses java.lang.Class instances, not strings –client gets proxy object back –needed classes are automatically downloaded

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Service type matching can match on any Java type –including superinterface or superclass –can get subinterface or subclass back example: NestableTransactionManager extends TransactionManager java.lang.Object matches everything

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Service type matching can match using multiple Java types –AND semantics “I want a combination TV/VCR” –org.ce.TV AND org.ce.VCR yellow pages –automatic placement in all categories -all superinterfaces and superclasses

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Attributes each service also registers with attributes attributes allow further discrimination between services of the same type –by end-user or program can do lookup using service types and/or attributes

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Example generic attributes name location manufacturer model

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Example printer attributes monochrome or color resolution speed paper size

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Attribute characteristics some defined by service itself some defined by administrator values aren’t always strings multiple values for some attributes attributes can have co-dependent values

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Example printer attributes monochrome, 600 dpi, 10 ppm monochrome, 300 dpi, 15 ppm color, 300 dpi, 5 ppm letter, legal, envelope

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Attribute representation each attribute is a public field of a class –attribute name = field name –attribute type = field type each class defines an attribute set –co-dependent attributes in the same class –separate classes for orthogonal attributes each service has set of attribute sets –instances of multiple classes –multiple instances of same class

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Example attribute classes public class PrintAttrs implements net.jini.core.entry.Entry {... } public class PrintEngine extends PrintAttrs { public Integer ppm; public Integer dpi; public Boolean color;... }

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Example attribute classes public class PaperSize extends PrintAttrs { public PaperType size;... } public class PaperType implements java.io.Serializable { public static final PaperType Letter =...; public static final PaperType Legal =...; public static final PaperType A4 =...; public static final PaperType Envelope =...;... }

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Example attribute classes public class Location implements net.jini.core.entry.Entry { public String floor; public String room; public String building;... } public class Name implements net.jini.core.entry.Entry { public String name;... }

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Example printer attributes PrintEngine{color: false, dpi: 600, ppm: 10} PrintEngine{color: false, dpi: 300, ppm: 15} PrintEngine{color: true, dpi: 300, ppm: 5} PaperSize{size: PaperType.Letter} PaperSize{size: PaperType.Legal} PaperSize{size: PaperType.Envelope} Location{floor: “1”, room: “1220”, building: “UCHL03”} Name{name: “narf”}

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Attribute set matching match on attribute set class –including superclass match on attribute values –exact value match only template is just an attribute set instance –null field is wildcard = match any taken from Linda via JavaSpaces

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Matching examples

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Service template matching service template contains: –zero or more service types –zero or more attribute set templates matches if: –proxy is instanceof each service type, and –for each attribute set template: -there is a matching attribute set

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Example queries any service named “narf” any Printer named “narf” in UCHL03 all services on floor 2 any JavaSpace made by Sun

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Complex queries “between 300 and 600 dpi” “on floor 1, 3, or 7” first do template-based match –using wildcards as necessary then do finer-grained match locally

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Attribute modification can only be done by service itself –allows service to control policy –service is responsible for persistent storage add, modify, delete, replace all attributes should change infrequently –primary search keys –query service directly for very dynamic state

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Basic summary service perspective –register with desired attributes –keep renewing lease –add, modify, delete attributes as desired client perspective –lookup any 1 of, get just proxy object –lookup up to N of, get proxies and attributes

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Leasing ensures results of client lookup are reasonably up to date lookup service imposes maximum lease duration tradeoff between bandwidth (and load on lookup service) and how up to date maximum lease will vary with context

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Asynchronous events uses same service template matching –interest registration is also leased no match  match –new service added or attributes now match match  no match –service deleted or attributes no longer match match  match –attributes changed but still match

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Example uses of events admin notified of new services admin notified when service crashes user notified when service is back on line admin notified when printer jams

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. User perspective support for incremental browsing –by service type –by attribute set class –by attribute value access to service-specific GUIs –applet URL as an attribute

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Discovery and selection how does a client or service find lookup services how does a service know which ones to register with how does a client know which ones to do lookups in

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Lookup groups each lookup service is configured to be a member of one or more groups –group is just an arbitrary string name –one standard “public” group, as default each service is configured to register with one or more groups each client is configured to use lookup services from one or more groups

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Initial discovery performed by both clients and services send multicast request packet –groups you are looking for –host and TCP port to use to contact you wait for lookup services to connect back –only those in  1 requested groups respond download lookup service’s proxy object –register with or do lookup in

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Latecomer discovery don’t send multicast requests forever –stop after a short while listen for multicast announcements –sent periodically by each lookup service –groups lookup service is a member of –host and TCP port to contact lookup service connect to if member of desired group –download lookup service proxy

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Administrative perspective service dies –lease expires, registration is dropped network partition –services automatically reregister at merge availability: replicate lookup service –services automatically register with replicas failover: start a new lookup service –services automatically register with it

January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Hierarchy: one option DNS-style hierarchical group names each lookup service is also a Jini service one set of groups to be a member of another set of groups to register with –up and/or down links in hierarchy