Jini Specification / Edition 1

Paperback (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $1.99
Usually ships in 1-2 business days
(Save 95%)
Other sellers (Paperback)
  • All (26) from $1.99   
  • New (6) from $33.47   
  • Used (20) from $1.99   
Close
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any BN.com coupons and promotions
$33.47
Seller since 2014

Feedback rating:

(227)

Condition:

New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

New
Brand New Item.

Ships from: Chatham, NJ

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$36.62
Seller since 2014

Feedback rating:

(1)

Condition: New
0201616343 New Book. Please allow 4-14 business days to arrive. We will ship Internationally as well. Very Good Customer Service is Guaranteed!! Millions sold offline.

Ships from: Newport, United Kingdom

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
$36.62
Seller since 2014

Feedback rating:

(1)

Condition: New
0201616343 New Book. Please allow 4-14 business days to arrive. We will ship Internationally as well. Very Good Customer Service is Guaranteed!! Millions sold offline.

Ships from: Newport, United Kingdom

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
$44.78
Seller since 2009

Feedback rating:

(8)

Condition: New
1999 Paperback Brand new books, maps and cd's available immediately from a reputable and well rated UK bookseller; despatched promptly and reliably worldwide. *****PLEASE NOTE: ... This item is shipping from an authorized seller in Europe. In the event that a return is necessary, you will be able to return your item within the US. To learn more about our European sellers and policies see the BookQuest FAQ section***** Read more Show Less

Ships from: Welwyn Garden City, United Kingdom

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
$45.00
Seller since 2014

Feedback rating:

(114)

Condition: New
Brand new.

Ships from: acton, MA

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
$45.00
Seller since 2014

Feedback rating:

(114)

Condition: New
Brand new.

Ships from: acton, MA

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
Page 1 of 1
Showing All
Close
Sort by

Overview

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 Show Less

Editorial Reviews

Booknews
Arnold, one of the original architects of the Jini platform, and three expert co-authors present the formal specification for the Jini technology, an overview of the Jini architecture, and an introduction to the key concepts. Jini technology, built on top of a Java software infrastructure, enables all types of digital devices to work together without extensive planning or installation. Annotation c. Book News, Inc., Portland, OR
Read More Show Less

Product Details

  • ISBN-13: 9780201616347
  • Publisher: Addison-Wesley
  • Publication date: 6/3/1999
  • Series: Jini Technology Series
  • Edition description: Older Edition
  • Edition number: 1
  • Pages: 400
  • Product dimensions: 7.35 (w) x 9.18 (h) x 0.74 (d)

Read an Excerpt

Perfection is reached, not when there is no longer anything to add, but when there is no longer anything to take away.

— Antoine de Saint-Exupery


The Jini architecture is designed for deploying and using services in a network. Networks are by nature dynamic: new things are added, old things are removed, existing things are changed, and parts of the network fail and are repaired. There are therefore problems unlike any that will appear in a single process or even multiple processes in a single machine.

These differences require an approach that takes them into account, makes changes apparent, and allows older parts to work with newer parts that are added. A distributed system must adapt as the network changes since the network will change. The Jini architecture is designed to be adaptable.

This book contains three parts. The first part gives an overview of the Jini architecture, its design philosophy, and its application. This overview sets up the following sections, which contain examples of programming in a Jini system. The first section of the introduction is also usable as a high-level overview for technical managers.

The sections of the introduction that contain examples are designed to orient you within the Jini technology and architecture. They are not a full tutorial: Think of them as a tour through the process of design and implementation in a Jini system. As with any tour, you can get the flavor of how things work and where you can start your own investigation.

The second part of the book is the specification itself. Each chapter of the specification has a brief introduction describing its place in the overall architecture.

The third part of the book contains supplementary material: a glossary that defines terms used in the specifications and in talking about Jini architecture, design, and technology, and two appendices. Appendix A is a reprint of "A Note on Distributed Computing," which describes critical differences between local and remote programming. Appendix B contains the full source code for the examples in the introductory material.

History

The Jini architecture is the result of a rather extraordinary string of events. But then almost everything is. The capriciousness of life--and to the fortunate, its occasional serendipity--is always extraordinary. It is only in retrospect that we examine the causes and antecedents of something interesting and decide that, because they shaped that interesting result, we will call them "extraordinary." Other events, however remarkable, go unremarked because they are unexamined. Those of us who wrote the Jini architecture, along with the many who contributed to its growth, are lucky to have a reason to examine our particular history to notice its pleasures.

This is not the proper place for a long history of the project, but it seems appropriate to give a brief summary of the highlights. The project had its origins in Sun Microsystems Laboratories, where Jim Waldo ran the Large Scale Distribution research project. Jim Waldo and Ken Arnold had previously been involved with the Object Management Group's first CORBA specification while working for Hewlett-Packard. Jim brought that experience and a long-term background in distributed computing with him to Sun Labs.

Soon after joining the Labs, Jim made Ann Wollrath part of the team. Soon after, observations about many common approaches in the field of distributed computing led Jim, Ann, and the other authors to write "A Note on Distributed Computing," which outlined core distinctions between local and distributed design. Many people had been trying to hide those differences under the general rubric of "local/remote transparency." The "Note" argued that this was not possible. It has become the most cited Sun Laboratories technical report, and the lessons it distills are at the core of the design approach taken by the project.

At this time the project was using Modula 3 Network Objects for experiments in distributed computing. As Modula 3 ceased to be developed, the team looked around for a replacement language. At that time Oak, the language an internal Sun project, seemed a viable replacement with some interesting new properties. To a research project, the fact that Oak was commercially insignificant was irrelevant. It was at this time that Ken rejoined Jim on his new team.

Soon after, Oak was renamed "Java."

When it was still Oak, it once had a remote method invocation mechanism, but that was removed when the mechanism failed--it, too, had fallen into the local/remote transparency trap. When Bill Joy and James Gosling wanted to create a working distributed computing mechanism, they asked Jim to lead the effort, which switched our team from the laboratories into the JavaSoft product group. As the first result of this effort, Ann, as the Java RMI architect, steered the team on an exploration of what could be done with a language-centric approach to distributed computing (most distributed computing systems are built on language-neutral approaches).

After RMI became part of the Java platform, Bill Joy asked the team to expand its horizons to include a platform for easier distributed computing, coining the name "Jini."[1] He convinced Sun management to put the RMI and Jini project into a separate unit. This new unit started with Jim, Ann, Ken, and Peter Jones, and was soon joined by Bob Scheiffler who had extensive distributed computing experience from the X Windows project that he ran. This put together the original core architectural team: Jim, Ann, Ken, and Bob.

As the team grew, many people had a hand in the direction of various parts of the architecture, including Bryan O'Sullivan who took over the design of the lookup discovery protocol. Mike Clary took the project under his wing to give it time to grow. Mark Hodapp joined the team to manage its software development and run it in partnership with its technical leadership. Gary Holness, Zane Pan, Brian Murphy, John McClain, and Bob Resendes all reviewed the primary architecture documents and had responsibility for various parts of the tool design, implementation design, and the implementations themselves. Laird Dornin and Adrian Colley joined the RMI sub-team to continue and expand its development. Charlie Lamb joined the architectural team to oversee work with outside companies, starting with printing and storage service standards. Jen McGinn joined the team to document what we had done, later with the help of Susan Snyder on production support. Jimmy Torres started out as our release engineer and has changed to working on helping build our public developer community. Frank Barnaby took over the release engineering duties. Helen Leary joined early and kept our infrastructure humming along.

Our QA team was Mark Schuldenfrei and Anand Dhingra, managed by Brendan Daly. Alan Mortensen wrote the conformance tests and their infrastructure. Emily Suter and Theresa Lanowitz started out our marketing team, with Franc Romano, Donna Michael, Joan MacEachern, and Paula Kozak joining later. Jim Hurley started setting up our support organization, and Keith Thompson and Peter Marks joined to work on sales engineering. Samir Mitra led a marketing and business development team that included Jon Bostrom, Jaclyn Dahlby, Mike McNerny, Miko Matsamura, Darryl Mocek, Sharam Moradpour, and Vince Vasquez. Many others, too numerous to mention, did important work that made the Jini architecture possible and real.

Acknowledgments

As the specifications were written, almost every member of the team made important contributions. Their names are listed above; we note the fact here to express our gratitude. A good idea and a dollar will buy a bad cup of espresso--you need people who will make that idea live, sand off any rough edges, and help you rework any bad parts of the idea into good ones. We had those people--some of the best we've ever worked with. Without them the Jini architecture would be some rather nice ideas on paper. Because of their commitment to adopt the vision as their own, to make it better, and to make it real, there are people (like you, the reader) who care about these ideas and can do something with them. We thank the entire team for what they have done to improve the Jini architecture and to help us write and release the Jini technology.

Bill Joy created the environment in which the Jini architecture could be developed and nurtured, and fed the architecture with his own reviews and ideas. His vision and support inside and outside of Sun made the project possible. This book itself is also his idea.

Bob Sproull gave the Large Scale Distribution project scope and support that has continued to this day, through all its many twists and turns, even after we were no longer were part of his Sun Labs organization. Mike Clary's protection and guidance was critical to fostering the creative atmosphere around the Jini project.

Jen McGinn and Susan Snyder did a lot of work to make this book possible, including hours in front of a screen converting the specification documents from their original form into that of the book. Jen also worked hard to improve the content of the specifications and introductory material during their creation, making them clearer and their English more correct. Dick Gabriel contributed to the content and organization of the Jini Architecture Specification, making it clearer and easier to use.

Many people reviewed the introductory material, making comments that improved it tremendously: Liz Blair, Charlie Lamb, John McClain, Bob Resendes, and Bob Sproull. Lisa Friendly has applied her experience as series editor with the Java Series to help us create this sibling Jini Series. We would also like to thank the people at Addison-Wesley's Professional Computing group who worked with us on this book and the series: Mike Hendrickson, Julie DeBaggis, Sarah Weaver, Marina Lang, and Diane Freed. And without Susan Stambaugh's help, communicating with Bill (and sometimes Mike) is not merely difficult, but probably theoretically impossible.

To these and many others too numerous to mention we give our thanks and appreciation for what they did to make these ideas and this book possible.




1. Jini is not an acronym. To remember this, think of it as standing for "Jini Is Not Initials." It is pronounced the same as "genie."
Read More Show Less

Table of Contents

Foreword
Preface
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
Index
Read More Show Less

Preface

Perfection is reached, not when there is no longer anything to add, but when there is no longer anything to take away.

— Antoine de Saint-Exupery

The Jini architecture is designed for deploying and using services in a network. Networks are by nature dynamic: new things are added, old things are removed, existing things are changed, and parts of the network fail and are repaired. There are therefore problems unlike any that will appear in a single process or even multiple processes in a single machine.

These differences require an approach that takes them into account, makes changes apparent, and allows older parts to work with newer parts that are added. A distributed system must adapt as the network changes since the network will change. The Jini architecture is designed to be adaptable.

This book contains three parts. The first part gives an overview of the Jini architecture, its design philosophy, and its application. This overview sets up the following sections, which contain examples of programming in a Jini system. The first section of the introduction is also usable as a high-level overview for technical managers.

The sections of the introduction that contain examples are designed to orient you within the Jini technology and architecture. They are not a full tutorial: Think of them as a tour through the process of design and implementation in a Jini system. As with any tour, you can get the flavor of how things work and where you can start your own investigation.

The second part of the book is the specification itself. Each chapter of the specification has a briefintroduction describing its place in the overall architecture.

The third part of the book contains supplementary material: a glossary that defines terms used in the specifications and in talking about Jini architecture, design, and technology, and two appendices. Appendix A is a reprint of "A Note on Distributed Computing," which describes critical differences between local and remote programming. Appendix B contains the full source code for the examples in the introductory material.

History

The Jini architecture is the result of a rather extraordinary string of events. But then almost everything is. The capriciousness of life—and to the fortunate, its occasional serendipity—is always extraordinary. It is only in retrospect that we examine the causes and antecedents of something interesting and decide that, because they shaped that interesting result, we will call them "extraordinary." Other events, however remarkable, go unremarked because they are unexamined. Those of us who wrote the Jini architecture, along with the many who contributed to its growth, are lucky to have a reason to examine our particular history to notice its pleasures.

This is not the proper place for a long history of the project, but it seems appropriate to give a brief summary of the highlights. The project had its origins in Sun Microsystems Laboratories, where Jim Waldo ran the Large Scale Distribution research project. Jim Waldo and Ken Arnold had previously been involved with the Object Management Group's first CORBA specification while working for Hewlett-Packard. Jim brought that experience and a long-term background in distributed computing with him to Sun Labs.

Soon after joining the Labs, Jim made Ann Wollrath part of the team. Soon after, observations about many common approaches in the field of distributed computing led Jim, Ann, and the other authors to write "A Note on Distributed Computing," which outlined core distinctions between local and distributed design. Many people had been trying to hide those differences under the general rubric of "local/remote transparency." The "Note" argued that this was not possible. It has become the most cited Sun Laboratories technical report, and the lessons it distills are at the core of the design approach taken by the project.

At this time the project was using Modula 3 Network Objects for experiments in distributed computing. As Modula 3 ceased to be developed, the team looked around for a replacement language. At that time Oak, the language an internal Sun project, seemed a viable replacement with some interesting new properties. To a research project, the fact that Oak was commercially insignificant was irrelevant. It was at this time that Ken rejoined Jim on his new team.

Soon after, Oak was renamed "Java."

When it was still Oak, it once had a remote method invocation mechanism, but that was removed when the mechanism failed—it, too, had fallen into the local/remote transparency trap. When Bill Joy and James Gosling wanted to create a working distributed computing mechanism, they asked Jim to lead the effort, which switched our team from the laboratories into the JavaSoft product group. As the first result of this effort, Ann, as the Java RMI architect, steered the team on an exploration of what could be done with a language-centric approach to distributed computing (most distributed computing systems are built on language-neutral approaches).

After RMI became part of the Java platform, Bill Joy asked the team to expand its horizons to include a platform for easier distributed computing, coining the name "Jini."1 He convinced Sun management to put the RMI and Jini project into a separate unit. This new unit started with Jim, Ann, Ken, and Peter Jones, and was soon joined by Bob Scheiffler who had extensive distributed computing experience from the X Windows project that he ran. This put together the original core architectural team: Jim, Ann, Ken, and Bob.

As the team grew, many people had a hand in the direction of various parts of the architecture, including Bryan O'Sullivan who took over the design of the lookup discovery protocol. Mike Clary took the project under his wing to give it time to grow. Mark Hodapp joined the team to manage its software development and run it in partnership with its technical leadership. Gary Holness, Zane Pan, Brian Murphy, John McClain, and Bob Resendes all reviewed the primary architecture documents and had responsibility for various parts of the tool design, implementation design, and the implementations themselves. Laird Dornin and Adrian Colley joined the RMI sub-team to continue and expand its development. Charlie Lamb joined the architectural team to oversee work with outside companies, starting with printing and storage service standards. Jen McGinn joined the team to document what we had done, later with the help of Susan Snyder on production support. Jimmy Torres started out as our release engineer and has changed to working on helping build our public developer community. Frank Barnaby took over the release engineering duties. Helen Leary joined early and kept our infrastructure humming along.

Our QA team was Mark Schuldenfrei and Anand Dhingra, managed by Brendan Daly. Alan Mortensen wrote the conformance tests and their infrastructure. Emily Suter and Theresa Lanowitz started out our marketing team, with Franc Romano, Donna Michael, Joan MacEachern, and Paula Kozak joining later. Jim Hurley started setting up our support organization, and Keith Thompson and Peter Marks joined to work on sales engineering. Samir Mitra led a marketing and business development team that included Jon Bostrom, Jaclyn Dahlby, Mike McNerny, Miko Matsamura, Darryl Mocek, Sharam Moradpour, and Vince Vasquez. Many others, too numerous to mention, did important work that made the Jini architecture possible and real.

Acknowledgments

As the specifications were written, almost every member of the team made important contributions. Their names are listed above; we note the fact here to express our gratitude. A good idea and a dollar will buy a bad cup of espresso—you need people who will make that idea live, sand off any rough edges, and help you rework any bad parts of the idea into good ones. We had those people—some of the best we've ever worked with. Without them the Jini architecture would be some rather nice ideas on paper. Because of their commitment to adopt the vision as their own, to make it better, and to make it real, there are people (like you, the reader) who care about these ideas and can do something with them. We thank the entire team for what they have done to improve the Jini architecture and to help us write and release the Jini technology.

Bill Joy created the environment in which the Jini architecture could be developed and nurtured, and fed the architecture with his own reviews and ideas. His vision and support inside and outside of Sun made the project possible. This book itself is also his idea.

Bob Sproull gave the Large Scale Distribution project scope and support that has continued to this day, through all its many twists and turns, even after we were no longer were part of his Sun Labs organization. Mike Clary's protection and guidance was critical to fostering the creative atmosphere around the Jini project.

Jen McGinn and Susan Snyder did a lot of work to make this book possible, including hours in front of a screen converting the specification documents from their original form into that of the book. Jen also worked hard to improve the content of the specifications and introductory material during their creation, making them clearer and their English more correct. Dick Gabriel contributed to the content and organization of the Jini Architecture Specification, making it clearer and easier to use.

Many people reviewed the introductory material, making comments that improved it tremendously: Liz Blair, Charlie Lamb, John McClain, Bob Resendes, and Bob Sproull. Lisa Friendly has applied her experience as series editor with the Java Series to help us create this sibling Jini Series. We would also like to thank the people at Addison-Wesley's Professional Computing group who worked with us on this book and the series: Mike Hendrickson, Julie DeBaggis, Sarah Weaver, Marina Lang, and Diane Freed. And without Susan Stambaugh's help, communicating with Bill (and sometimes Mike) is not merely difficult, but probably theoretically impossible.

To these and many others too numerous to mention we give our thanks and appreciation for what they did to make these ideas and this book possible.

————————————————————————————————————

1. Jini is not an acronym. To remember this, think of it as standing for "Jini Is Not Initials." It is pronounced the same as "genie."



Read More Show Less

Foreword

The emergence of the Internet has led computing into a new era. It is no longer what your computer can do that matters. Instead, your computer can have access to the power of everything that is connected to the network: The Network is the Computer(TM). This network of devices and services is the computing environment of the future.

The Java(TM) programming language brought reliable object-oriented programs to the net. The power of the Java platform is its simplicity, which allows programmers to be fully fluent in the language. This simplicity allows debugged Java programs to be written in about a quarter the time it takes to write programs in C++. We believe that use of the Java platform is the key to the emergence of a "best practices" discipline in software construction to give us the reliability we need in our software systems as they become more and more widely used.

The Jini(TM architecture is designed to bring reliability and simplicity to the construction of networked devices and services. The philosophy behind Jini is language-based systems: a Jini system is a collection of interacting Java programs, and you can understand the behavior of this Jini system completely by understanding the semantics of the Java programming language and the nature of the network, namely that networks have limited bandwidth, inherent latency, and partial failure.

Because the Jini architecture focuses on a few simple principles, we can teach Java language programmers the full power of the Jini technology in a few days. To do this, we introduce remote objects (they just throw a RemoteException), leasing (commitments in a Jini system are of limited duration), distributed events (in the network events aren't as predictable on a single machine), and the need for two-phase commit (because the network is a world of partial failures). This small set of additional concepts allows distributed applications to be written, and we can illustrate this with the JavaSpaces(tm) service, which is also specified here.

For me, the Jini architecture represents the results of almost 20 years of yearning for a new substrate for distributed computing. Ever since I shipped the first widely used implementation of TCP/IP with the Berkeley UNIX system, I have wanted to raise the level of discourse on the network from the bits and bytes of TCP/IP to the level of objects. Objects have the enormous advantage of combining the data with the code, greatly improving the reliability and integrity of systems. For me, the Jini architecture represents the culmination of this dream.

I would like to thank the entire Jini team for their continuing hard work and commitment. I would especially like to thank my longtime collaborator Mike Clary for helping to get the Jini project started and for directing the project; the Jini architects Jim Waldo, Ken Arnold, Bob Scheiffler, and Ann Wollrath for designing and implementing such a simple and elegant system; Mark Hodapp for his excellent engineering management; and Samir Mitra for committing early to the Jini project, helping us understand how to explain it and what problems it would solve, and for driving the key business development that helped give Jini technology the momentum it has in the marketplace today. I would also like to thank Mark Tolliver, the head of the Consumer and Embedded Division, which the Jini project became part of, for his support.

Finally, I would like to thank Scott McNealy, with me a founder of Sun Microsystems(TM), Inc., and its longtime CEO. It is his continuing support for breakthrough technologies such as Java and Jini that makes them possible. As Machiavelli noted, it is hard to introduce new ideas, and support like Scott's is essential to our continuing success.

Bill Joy
Aspen, Colorado
April, 1999
Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)