Jini Specification / Edition 1

Jini Specification / Edition 1

by Ken Arnold, Robert Scheifler, Jim Waldo, Bryan O'Sullivan

ISBN-10: 0201616343

ISBN-13: 9780201616347

Pub. Date: 06/03/1999

Publisher: Addison-Wesley

This book contains the formal specification for the Jini technology. It offers a review of distributed computing fundamentals, an overview of the Jini architecture, and an introduction to the key concepts that are the source of the technology's simplicity and power—remote objects, leasing, distributed events, and a two-phase commit protocol. The formal

…  See more details below


This book contains the formal specification for the Jini technology. It offers a review of distributed computing fundamentals, an overview of the Jini architecture, and an introduction to the key concepts that are the source of the technology's simplicity and power—remote objects, leasing, distributed events, and a two-phase commit protocol. The formal specification provides the definitive description of every element of the Jini architecture, including detailed information on such topics as:

  • Jini Discovery and Join protocols
  • Jini Entry usage and the AbstractEntry class
  • Jini Distributed Leasing concepts
  • Jini Distributed Event programming model
  • Jini Transaction model and semantics
  • Jini Lookup service and lookup attribute schema
  • Jini device architecture

As networks continue to pervade our personal and professional lives, there is an urgent call for the flexible and robust network infrastructure that Jini represents.

Read More

Product Details

Publication date:
Jini Technology Series
Edition description:
Older Edition
Product dimensions:
7.35(w) x 9.18(h) x 0.74(d)

Table of Contents

PART 1 Overview and Examples
The Jini Architecture: An Introduction
1 Overview
1.1 Goals
1.2 Architecture
1.3 What the Jini Architecture Depends Upon
1.4 The Value of a Proxy
1.5 The Lookup Service
1.5.1 Attributes
1.5.2 Membership Management
1.5.3 Lookup Groups
1.5.4 Lookup Service Compared to Naming/Directory Services
1.6 Conclusion
1.7 Notes on the Example Code
1.7.1 Package Structure
2 Writing a Client
2.1 The ... MessageStream Interface
2.2 The Client
2.3 In Conclusion
3 Writing a Service
3.1 Good Lookup Citizenship
3.1.1 The ... JoinManager Utility
3.2 The ... FortuneStream Service
3.2.1 The Implementation Design
3.2.2 Creating the Service
3.2.3 The Running Service
3.3 The ... ChatStream Service
3.3.1 "Service" versus "Server"
3.3.2 Creating the Service
3.3.3 The Chat Server
3.3.4 Implementing ... nextInLine
3.3.5 Notes on Improving ... ChatServerImpl
3.3.6 The Clients
4 The Rest of This Book
PART 2 The Jini Specification
AR The Jini Architecture Specification
AR.1 Introduction
AR.1.1 Goals of the System
AR.1.2 Environmental Assumptions
AR.2 System Overview
AR.2.1 Key Concepts
AR.2.1.1 Services
AR.2.1.2 Lookup Service
AR.2.1.3 Java Remote Method Invocation ( ... RMI )
AR.2.1.4 Security
AR.2.1.5 Leasing
AR.2.1.6 Transactions
AR.2.1.7 Events
AR.2.2 Component Overview
AR.2.2.1 Infrastructure
AR.2.2.2 Programming Model
AR.2.2.3 Services
AR.2.3 Service Architecture
AR.2.3.1 Discovery and Lookup Protocols
AR.2.3.2 Service Implementation
AR.3 An Example
AR.3.1 Registering the Printer Service
AR.3.1.1 Discovering the Lookup Service
AR.3.1.2 Joining the Lookup Service
AR.3.1.3 Optional Configuration
AR.3.1.4 Staying Alive
AR.3.2 Printing
AR.3.2.1 Locate the Lookup Service
AR.3.2.2 Search for Printing Services
AR.3.2.3 Configuring the Printer
AR.3.2.4 Requesting That the Image Be Printed
AR.3.2.5 Registering for Notification
AR.3.2.6 Receiving Notification
AR.4 For More Information
DJ The Jini Discovery and Join Specification
DJ.1 Introduction
DJ.1.1 Terminology
DJ.1.2 Host Requirements
DJ.1.2.1 Protocol Stack Requirements for IP Networks
DJ.1.3 Protocol Overview
DJ.1.4 Discovery in Brief
DJ.1.4.1 Groups
DJ.1.4.2 The Multicast Request Protocol
DJ.1.4.3 The Multicast Announcement Protocol
DJ.1.4.4 The Unicast Discovery Protocol
DJ.1.5 Dependencies
DJ.2 The Discovery Protocols
DJ.2.1 Protocol Roles
DJ.2.2 The Multicast Request Protocol
DJ.2.2.1 Protocol Participants
DJ.2.2.2 The Multicast Request Service
DJ.2.2.3 Request Packet Format
DJ.2.2.4 The Multicast Response Service
DJ.2.3 Discovery Using the Multicast Request Protocol
DJ.2.3.1 Steps Taken by the Discovering Entity
DJ.2.3.2 Steps Taken by the Multicast Request Server
DJ.2.3.3 Handling Responses from Multiple Djinns
DJ.2.4 The Multicast Announcement Protocol
DJ.2.4.1 The Multicast Announcement Service
DJ.2.4.2 The Protocol
DJ.2.5 Unicast Discovery
DJ.2.5.1 The Protocol
DJ.2.5.2 Request Format DJ.2.5.3 Response Format
DJ.3 The Join Protocol
DJ.3.1 Persistent State
DJ.3.2 The Join Protocol
DJ.3.2.1 Initial Discovery and Registration
DJ.3.2.2 Lease Renewal and Handling of Communication Problems
DJ.3.2.3 Making Changes and Performing Updates
DJ.3.2.4 Joining or Leaving a Group
DJ.4 Network Issues
DJ.4.1 Properties of the Underlying Transport
DJ.4.1.1 Limitations on Packet Sizes
DJ.4.2 Bridging Calls to the Discovery Request Service
DJ.4.3 Limiting the Scope of Multicasts
DJ.4.4 Using Multicast IP as the Underlying Transport
DJ.4.5 Address and Port Mappings for ... TCP and Multicast UDP
DJ.5 ... LookupLocator Class
DJ.5.1 Jini Technology URL Syntax
DJ.5.2 Serialized Form
DU The Jini Discovery Utilities Specification
DU.1 Introduction
DU.1.1 Dependencies
DU.2 Multicast Discovery Utility
DU.2.1 The ... LookupDiscovery Class
DU.2.2 Useful Constants
DU.2.3 Changing the Set of Groups to Discover
DU.2.4 The ... DiscoveryEvent Class
DU.2.5 The ... DiscoveryListener Interface
DU.2.6 Security and Multicast Discovery
DU.2.7 Serialized Forms
DU.3 Protocol Utilities
DU.3.1 Marshalling Multicast Requests
DU.3.2 Unmarshalling Multicast Requests
DU.3.3 Marshalling Multicast Announcements
DU.3.4 Unmarshalling Multicast Announcements
DU.3.5 Easy Access to Constants
DU.3.6 Marshalling Unicast Discovery Requests
DU.3.7 Unmarshalling Unicast Discovery Requests
DU.3.8 Marshalling Unicast Discovery Responses
DU.3.9 Unmarshalling Unicast Discovery Responses
EN The Jini Entry Specification
EN.1 Entries and Templates
EN.1.1 Operations
EN.1.2 ... Entry
EN.1.3 Serializing ... Entry Objects
EN.1.4 ... UnusableEntryException
EN.1.5 Templates and Matching
EN.1.6 Serialized Form
EU The Jini Entry Utilities Specification
EU.1 Entry Utilities
EU.1.1 ... AbstractEntry
EU.1.2 Serialized Form
LE The Jini Distributed Leasing Specification
LE.1 Introduction
LE.1.1 Leasing and Distributed Systems
LE.1.2 Goals and Requirements
LE.1.3 Dependencies
LE.2 Basic Leasing Interfaces
LE.2.1 Characteristics of a Lease
LE.2.2 Basic Operations
LE.2.3 Leasing and Time
LE.2.4 Serialized Forms
LE.3 Example Supporting Classes
LE.3.1 A Renewal Class
LE.3.2 A Renewal Service
EV The Jini Distributed Event Specification
EV.1 Introduction
EV.1.1 Distributed Events and Notifications
EV.1.2 Goals and Requirements
EV.1.3 Dependencies
EV.2 The Basic Interfaces
EV.2.1 Entities Involved
EV.2.2 Overview of the Interfaces and Classes
EV.2.3 Details of the Interfaces and Classes
EV.2.3.1 The ... RemoteEventListener Interface
EV.2.3.2 The ... RemoteEvent Class
EV.2.3.3 The ... UnknownEventException
EV.2.3.4 An Example ... EventGenerator Interface
EV.2.3.5 The ... EventRegistration Class
EV.2.4 Sequence Numbers, Leasing and Transactions
EV.2.5 Serialized Forms
EV.3 Third-Party Objects
EV.3.1 Store-and-Forward Agents
EV.3.2 Notification Filters
EV.3.2.1 Notification Multiplexing
EV.3.2.2 Notification Demultiplexing
EV.3.3 Notification Mailboxes
EV.3.4 Compositionality
EV.4 Integration with JavaBeans Components
EV.4.1 Differences with the JavaBeans Component Event Model
EV.4.2 Converting Distributed Events to JavaBeans Events
TX The Jini Transaction Specification
TX.1 Introduction
TX.1.1 Model and Terms
TX.1.2 Distributed Transactions and ACID Properties
TX.1.3 Requirements
TX.1.4 Dependencies
TX.2 The Two-Phase Commit Protocol
TX.2.1 Starting a Transaction
TX.2.2 Starting a Nested Transaction
TX.2.3 Joining a Transaction
TX.2.4 Transaction States
TX.2.5 Completing a Transaction: The Client's View
TX.2.6 Completing a Transaction: A Participant's View
TX.2.7 Completing a Transaction: The Manager's View
TX.2.8 Crash Recovery
TX.2.8.1 The Roll Decision
TX.2.9 Durability
TX.3 Default Transaction Semantics
TX.3.1 ... Transaction and NestableTransaction Interfaces
TX.3.2 ... TransactionFactory Class
TX.3.3 ... ServerTransaction and NestableServerTransaction Classes
TX.3.4 ... CannotNestException Class
TX.3.5 Semantics
TX.3.6 Serialized Forms
LU The Jini Lookup Service Specification
LU.1 Introduction
LU.1.1 The Lookup Service Model
LU.1.2 Attributes
LU.1.3 Dependencies
LU.2 The ... ServiceRegistrar
LU.2.1 ... ServiceID
LU.2.2 ... ServiceItem
LU.2.3 ... ServiceTemplate and Item Matching
LU.2.4 Other Supporting Types
LU.2.5 ... ServiceRegistrar
LU.2.6 ... ServiceRegistration
LU.2.7 Serialized Forms
LS The Jini Lookup Attribute Schema Specification
LS.1 Introduction
LS.1.1 Terminology
LS.1.2 Design Issues
LS.1.3 Dependencies
LS.2 Human Access to Attributes
LS.2.1 Providing a Single View of an Attribute's Value
LS.3 JavaBeans Components and Design Patterns
LS.3.1 Allowing Display and Modification of Attributes
LS.3.1.1 Using JavaBeans Components with Entry Classes
LS.3.2 Associating JavaBeans Components with Entry Classes
LS.3.3 Supporting Interfaces and Classes
LS.4 Generic Attribute Classes
LS.4.1 Indicating User Modifiability
LS.4.2 Basic Service Information
LS.4.3 More Specific Information
LS.4.4 Naming a Service
LS.4.5 Adding a Comment to a Service
LS.4.6 Physical Location
LS.4.7 Status Information
LS.4.8 Serialized Forms
JS The JavaSpaces Specification
JS.1 Introduction
JS.1.1 The JavaSpaces Application Model and Terms
JS.1.1.1 Distributed Persistence
JS.1.1.2 Distributed Algorithms as Flows of Objects
JS.1.2 Benefits
JS.1.3 JavaSpaces Technology and Databases
JS.1.4 JavaSpaces System Design and Linda Systems
JS.1.5 Goals and Requirements
JS.1.6 Dependencies
JS.2 Operations
JS.2.1 Entries
JS.2.2 ... net.jini.space.JavaSpace

JS.2.2.1 ... InternalSpaceException

JS.2.3 ... write

JS.2.4 ... readIfExists and read

JS.2.5 ... takeIfExists and take

JS.2.6 ... snapshot

JS.2.7 ... notify

JS.2.8 Operation Ordering
JS.2.9 Serialized Form
JS.3 Transactions
JS.3.1 Operations under Transactions
JS.3.2 Transactions and ACID Properties
JS.4 Further Reading
JS.4.1 Linda Systems
JS.4.2 The Java Platform
JS.4.3 Distributed Computing
DA The Jini Device Architecture Specification
DA.1 Introduction
DA.1.1 Requirements from the Jini Lookup Service
DA.2 Basic Device Architecture Examples
DA.2.1 Devices with Resident Java Virtual Machines
DA.2.2 Devices Using Specialized Virtual Machines
DA.2.3 Clustering Devices with a Shared Virtual Machine (Physical Option)
DA.2.4 Clustering Devices with a Shared Virtual Machine (Network Option)
DA.2.5 Jini Software Services over the Internet Inter-Operability Protocol

PART 3 Supplemental Material

The Jini Technology Glossary
Appendix A: A Note on Distributed Computing
A.1 Introduction
A.1.1 Terminology
A.2 The Vision of Unified Objects
A.3 Déjà Vu All Over Again
A.4 Local and Distributed Computing
A.4.1 Latency
A.4.2 Memory Access
A.5 Partial Failure and Concurrency
A.6 The Myth of "Quality of Service"
A.7 Lessons From NFS
A.8 Taking the Difference Seriously
A.9 A Middle Ground
A.10 References
A.11 Observations for this Reprinting
Appendix B: The Example Code

Read More

Customer Reviews

Average Review:

Write a Review

and post it to your social network


Most Helpful Customer Reviews

See all customer reviews >