CS 696 Emerging Technologies: Java Distributed Computing
Spring Semester, 1999
Lecture Notes Index
© 1999, All Rights Reserved, SDSU & Roger Whitney
San Diego State University -- This page last updated 11-Mar-99
Contents of Doc 15, Jini Intro
Architecture Specification 1.0 January 25, 1999
Device Architecture Specification 1.0 January 25, 1999
Distributed Leasing Specification 1.0 January 25, 1999
documents are available at:
Webster’s Dictionary, 1981
of a class of spirits lower than the angels, capable of appearing in human and
animal forms, and exercising influence over mankind for good and evil
Webster’s Dictionary, 1981
Jini system (djinn)
is a distributed system based on the idea of federating groups of users and the
resources required by those users.
Jini system consists of the following parts:
an infrastructure for federating services in a distributed system
and encourages the production of reliable distributed services
functionality to any other member of the federation
end goals Jini include the following:
users to share services and resources over a network
users easy access to resources anywhere on the network while allowing the
network location of the user to change
the task of building, maintaining, and altering a network of devices, software,
requirements vary among devices
language that produces Java byte codes can be used
memory and processing power to run Java or
to a device (proxy) that contains the memory and processing power
service is an entity that can be used by a person, program or another service
service can be:
channel to another user
used to find services in a djinn ( a Jini system)
lease provides access to a service for a fixed time period
a lease is not renewed at the end of the lease period, then the user and
provider of the service can free all resources connected the lease
protocol for a two-phase commit process for managing state changes between
objects in a Jini system
version of listeners or Observer-Observable
provider looks for a lookup service to register itself
provider is registered in the lookup service
remote reference to itself
attributes about the service
requests a service by Java type and/or by attributes
receives remote reference to the service
1.0 Service Application Names
Device Architecture Examples
(Note: Images are taken from Jini Distributed Leasing Specification.)
with Resident Java Virtual Machines
Using Specialized Virtual Machines
Jini device does not need to support the entire JVM. One should be able to
configure Personal Java or Embedded Java to support Jini. Sun’s
documentation is not clear on this point.
Devices (physical option)
Devices (network option)
Software Services over the Internet Inter-Operability Protocol
(Internet Inter-Operability Protocol) is a Corba standard for communication
between Corba orbs
has RMI-IIOP which implements a subset of RMI over IIOP
Sun documentation states:
that the Jini Lookup service interfaces are in conformance with the ®RMI
over IIOP subset
more information about RMI-IIOP see:
more information about the issues of doing RMI over IIOP see:
Language to IDL Mapping at
and Object by Value at
more information about Corba see
systems must deal with:
of part of the system
of outdated and unwanted information
a simple way of indicating time-based resource allocation or reservation
a uniform way of renewing and canceling leases
time period during which the grantor of the lease insures (to the best of the
grantor’s abilities) that the holder of the lease will have access to
be solely determined by lease grantor
between grantor and holder of the lease
a renewal of the lease
a lease is cancelled the grantor of the lease can clean up any resources
allocated to support the lease and "obliges the grantor of the lease to not
take any action involving the leaseholder that was part of the agreement that
was the subject of the lease”.
lease can expire
the grantor and the holder are obliged to act as though the leased agreement is
no longer in force."
time is not measured in absolute time, but in duration. Clients should use the
time they requested the lease as the beginning of the lease duration.
Lease OperationsInterface net.jini.core.lease.Lease
//Length of lease
static long FOREVER = Long.MAX_VALUE;
static long ANY = -1;
//Formating of serialized Lease object
static int DURATION = 1;
static int ABSOLUTE = 2;
the expiration time (in milliseconds from the beginning of the epoch)
cancel() throws UnknownLeaseException, RemoteException;
renew(long duration) throws LeaseDeniedException,
is the new duration requested of the lease, it is not added to the remaining
time of the lease
how to store the lease time when serialized. Options are either duration (how
long the lease will last from the time it was serialized) or absolute (in the
current clock time). Use duration when sending a lease to a remote machine.
Duration is the default.
in handling leases in batches.
exception generated when a lease request or renewal is denied.
superclass for specific lease exceptions.
exception generated when a LeaseMap renewAll or cancelAll call generates
exceptions on one or more leases in the map.
exception used to indicate that a lease is not known to the grantor of the lease
Copyright ©, All rights reserved.
1999 SDSU & Roger Whitney, 5500 Campanile Drive, San Diego, CA 92182-7700 USA.
OpenContent license defines the copyright on this document.
visitors since 11-Mar-99