Jini Specification / Edition 1 by Ken Arnold, Robert Scheifler, Jim Waldo, Bryan O'Sullivan | | 9780201616347 | Paperback | Barnes & Noble
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

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.



Product Details

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

Table of Contents

Foreword xvii(2)
Preface xix
PART 1 Overview and Examples 3(58)
The Jini Architecture: An Introduction 3(1)
1 Overview
3(16)
1.1 Goals
4(1)
1.2 Architecture
5(2)
1.3 What the Jini Architecture Depends Upon
7(1)
1.4 The Value of a Proxy
7(2)
1.5 The Lookup Service
9(5)
1.5.1 Attributes
10(1)
1.5.2 Membership Management
11(1)
1.5.3 Lookup Groups
12(1)
1.5.4 Lookup Service Compared to Naming/Directory Services
13(1)
1.6 Conclusion
14(2)
1.7 Notes on the Example Code
16(3)
1.7.1 Package Structure
16(3)
2 Writing a Client
19(10)
2.1 The MessageStream Interface
19(1)
2.2 The Client
20(7)
2.3 In Conclusion
27(2)
3 Writing a Service
29(32)
3.1 Good Lookup Citizenship
29(1)
3.1.1 The JoinManager Utility
30(1)
3.2 The FortuneStream Service
30(7)
3.2.1 The Implementation Design
32(1)
3.2.2 Creating the Service
32(2)
3.2.3 The Running Service
34(3)
3.3 The ChatStream Service
37(20)
3.3.1 "Service" versus "Server"
41(1)
3.3.2 Creating the Service
41(2)
3.3.3 The Chat Server
43(7)
3.3.4 Implementing nextInLine
50(1)
3.3.5 Notes on Improving ChatServerImpl
51(1)
3.3.6 The Clients
52(5)
4 The Rest of This Book
57(4)
PART 2 The Jini Specification 61(232)
AR The Jini Architecture Specification 61(22)
AR.1 Introduction
61(4)
AR.1.1 Goals of the System
61(2)
AR.1.2 Environmental Assumptions
63(2)
AR.2 System Overview
65(12)
AR.2.1 Key Concepts
65(3)
AR.2.1.1 Services
65(1)
AR.2.1.2 Lookup Service
66(1)
AR.2.1.3 Java Remote Method Invocation (RMI)
66(1)
AR.2.1.4 Security
67(1)
AR.2.1.5 Leasing
67(1)
AR.2.1.6 Transactions
67(1)
AR.2.1.7 Events
67(1)
AR.2.2 Component Overview
68(4)
AR.2.2.1 Infrastructure
69(1)
AR.2.2.2 Programming Model
69(2)
AR.2.2.3 Services
71(1)
AR.2.3 Service Architecture
72(5)
AR.2.3.1 Discovery and Lookup Protocols
72(3)
AR.2.3.2 Service Implementation
75(2)
AR.3 An Example
77(4)
AR.3.1 Registering the Printer Service
77(1)
AR.3.1.1 Discovering the Lookup Service
77(1)
AR.3.1.2 Joining the Lookup Service
77(1)
AR.3.1.3 Optional Configuration
78(1)
AR.3.1.4 Staying Alive
78(1)
AR.3.2 Printing
78(3)
AR.3.2.1 Locate the Lookup Service
78(1)
AR.3.2.2 Search for Printing Services
79(1)
AR.3.2.3 Configuring the Printer
79(1)
AR.3.2.4 Requesting That the Image Be Printed
79(1)
AR.3.2.5 Registering for Notification
80(1)
AR.3.2.6 Receiving Notification
80(1)
AR.4 For More Information
81(2)
DJ The Jini Discovery and Join Specification 83(28)
DJ.1 Introduction
83(6)
DJ.1.1 Terminology
83(1)
DJ.1.2 Host Requirements
84(1)
DJ.1.2.1 Protocol Stack Requirements for IP Networks
84(1)
DJ.1.3 Protocol Overview
85(1)
DJ.1.4 Discovery in Brief
85(3)
DJ.1.4.1 Groups
85(1)
DJ.1.4.2 The Multicast Request Protocol
86(1)
DJ.1.4.3 The Multicast Announcement Protocol
87(1)
DJ.1.4.4 The Unicast Discovery Protocol
88(1)
DJ.1.5 Dependencies
88(1)
DJ.2 The Discovery Protocols
89(12)
DJ.2.1 Protocol Roles
89(1)
DJ.2.2 The Multicast Request Protocol
89(4)
DJ.2.2.1 Protocol Participants
89(1)
DJ.2.2.2 The Multicast Request Service
90(1)
DJ.2.2.3 Request Packet Format
91(2)
DJ.2.2.4 The Multicast Response Service
93(1)
DJ.2.3 Discovery Using the Multicast Request Protocol
93(2)
DJ.2.3.1 Steps Taken by the Discovering Entity
93(1)
DJ.2.3.2 Steps Taken by the Multicast Request Server
94(1)
DJ.2.3.3 Handling Responses from Multiple Djinns
95(1)
DJ.2.4 The Multicast Announcement Protocol
95(2)
DJ.2.4.1 The Multicast Announcement Service
95(2)
DJ.2.4.2 The Protocol
97(1)
DJ.2.5 Unicast Discovery
97(4)
DJ.2.5.1 The Protocol
98(1)
DJ.2.5.2 Request Format
99(1)
DJ.2.5.3 Response Format
100(1)
DJ.3 The Join Protocol
101(4)
DJ.3.1 Persistent State
101(1)
DJ.3.2 The Join Protocol
101(4)
DJ.3.2.1 Initial Discovery and Registration
102(1)
DJ.3.2.2 Lease Renewal and Handling of Communication Problems
102(1)
DJ.3.2.3 Making Changes and Performing Updates
103(1)
DJ.3.2.4 Joining or Leaving a Group
103(2)
DJ.4 Network Issues
105(2)
DJ.4.1 Properties of the Underlying Transport
105(1)
DJ.4.1.1 Limitations on Packet Sizes
105(1)
DJ.4.2 Bridging Calls to the Discovery Request Service
105(1)
DJ.4.3 Limiting the Scope of Multicasts
106(1)
DJ.4.4 Using Multicast IP as the Underlying Transport
106(1)
DJ.4.5 Address and Port Mappings for TCP and Multicast UDP
106(1)
DJ.5 LookupLocator Class
107(4)
DJ.5.1 Jini Technology URL Syntax
108(1)
DJ.5.2 Serialized Form
109(2)
DU The Jini Discovery Utilities Specification 111(16)
DU.1 Introduction
111(2)
DU.1.1 Dependencies
111(2)
DU.2 Multicast Discovery Utility
113(6)
DU.2.1 The LookupDiscovery Class
114(1)
DU.2.2 Useful Constants
115(1)
DU.2.3 Changing the Set of Groups to Discover
115(1)
DU.2.4 The DiscoveryEvent Class
116(1)
DU.2.5 The DiscoveryListener Interface
116(1)
DU.2.6 Security and Multicast Discovery
117(1)
DU.2.7 Serialized Forms
118(1)
DU.3 Protocol Utilities
119(8)
DU.3.1 Marshalling Multicast Requests
119(1)
DU.3.2 Unmarshalling Multicast Requests
120(1)
DU.3.3 Marshalling Multicast Announcements
121(1)
DU.3.4 Unmarshalling Multicast Announcements
122(1)
DU.3.5 Easy Access to Constants
122(1)
DU.3.6 Marshalling Unicast Discovery Requests
123(1)
DU.3.7 Unmarshalling Unicast Discovery Requests
123(1)
DU.3.8 Marshalling Unicast Discovery Responses
124(1)
DU.3.9 Unmarshalling Unicast Discovery Responses
124(3)
EN The Jini Entry Specification 127(6)
EN.1 Entries and Templates
127(6)
EN.1.1 Operations
127(1)
EN.1.2 Entry
128(1)
EN.1.3 Serializing Entry Objects
128(1)
EN.1.4 UnusableEntryException
129(2)
EN.1.5 Templates and Matching
131(1)
EN.1.6 Serialized Form
131(2)
EU The Jini Entry Utilities Specification 133(4)
EU.1 Entry Utilities
133(4)
EU.1.1 AbstractEntry
133(1)
EU.1.2 Serialized Form
134(3)
LE The Jini Distributed Leasing Specification 137(18)
LE.1 Introduction
137(4)
LE.1.1 Leasing and Distributed Systems
137(3)
LE.1.2 Goals and Requirements
140(1)
LE.1.3 Dependencies
140(1)
LE.2 Basic Leasing Interfaces
141(8)
LE.2.1 Characteristics of a Lease
141(1)
LE.2.2 Basic Operations
142(5)
LE.2.3 Leasing and Time
147(1)
LE.2.4 Serialized Forms
148(1)
LE.3 Example Supporting Classes
149(6)
LE.3.1 A Renewal Class
149(2)
LE.3.2 A Renewal Service
151(4)
EV The Jini Distributed Event Specification 155(30)
EV.1 Introduction
155(4)
EV.1.1 Distributed Events and Notifications
155(1)
EV.1.2 Goals and Requirements
156(1)
EV.1.3 Dependencies
157(2)
EV.2 The Basic Interfaces
159(12)
EV.2.1 Entities Involved
159(2)
EV.2.2 Overview of the Interfaces and Classes
161(2)
EV.2.3 Details of the Interfaces and Classes
163(6)
EV.2.3.1 The RemoteEventListener Interface
163(1)
EV.2.3.2 The RemoteEvent Class
164(1)
EV.2.3.3 The UnknownEventException
165(1)
EV.2.3.4 An Example EventGenerator Interface
166(2)
EV.2.3.5 The EventRegistration Class
168(1)
EV.2.4 Sequence Numbers, Leasing and Transactions
169(1)
EV.2.5 Serialized Forms
170(1)
EV.3 Third-Party Objects
171(8)
EV.3.1 Store-and-Forward Agents
171(2)
EV.3.2 Notification Filters
173(2)
EV.3.2.1 Notification Multiplexing
174(1)
EV.3.2.2 Notification Demultiplexing
174(1)
EV.3.3 Notification Mailboxes
175(1)
EV.3.4 Compositionality
176(3)
EV.4 Integration with JavaBeans Components
179(6)
EV.4.1 Differences with the JavaBeans Component Event Model
180(2)
EV.4.2 Converting Distributed Events to JavaBeans Events
182(3)
TX The Jini Transaction Specification 185(32)
TX.1 Introduction
185(6)
TX.1.1 Model and Terms
186(2)
TX.1.2 Distributed Transactions and ACID Properties
188(1)
TX.1.3 Requirements
189(1)
TX.1.4 Dependencies
190(1)
TX.2 The Two-Phase Commit Protocol
191(16)
TX.2.1 Starting a Transaction
192(1)
TX.2.2 Starting a Nested Transaction
193(2)
TX.2.3 Joining a Transaction
195(1)
TX.2.4 Transaction States
196(1)
TX.2.5 Completing a Transaction: The Client's View
197(2)
TX.2.6 Completing a Transaction: A Participant's View
199(3)
TX.2.7 Completing a Transaction: The Manager's View
202(2)
TX.2.8 Crash Recovery
204(1)
TX.2.8.1 The Roll Decision
205(1)
TX.2.9 Durability
205(2)
TX.3 Default Transaction Semantics
207(10)
TX.3.1 Transaction and NestableTransaction Interfaces
207(2)
TX.3.2 TransactionFactory Class
209(1)
TX.3.3 ServerTransaction and NestableServerTransaction Classes
210(2)
TX.3.4 CannotNestException Class
212(1)
TX.3.5 Semantics
212(2)
TX.3.6 Serialized Forms
214(3)
LU The Jini Lookup Service Specification 217(16)
LU.1 Introduction
217(4)
LU.1.1 The Lookup Service Model
217(1)
LU.1.2 Attributes
218(1)
LU.1.3 Dependencies
219(2)
LU.2 The ServiceRegistrar
221(12)
LU.2.1 ServiceID
221(1)
LU.2.2 ServiceItem
222(1)
LU.2.3 ServiceTemplate and Item Matching
223(1)
LU.2.4 Other Supporting Types
224(1)
LU.2.5 ServiceRegistrar
225(4)
LU.2.6 ServiceRegistration
229(1)
LU.2.7 Serialized Forms
230(3)
LS The Jini Lookup Attribute Schema Specification 233(20)
LS.1 Introduction
233(4)
LS.1.1 Terminology
234(1)
LS.1.2 Design Issues
234(1)
LS.1.3 Dependencies
235(2)
LS.2 Human Access to Attributes
237(2)
LS.2.1 Providing a Single View of an Attribute's Value
237(2)
LS.3 JavaBeans Components and Design Patterns
239(4)
LS.3.1 Allowing Display and Modification of Attributes
239(1)
LS.3.1.1 Using JavaBeans Components with Entry Classes
239(1)
LS.3.2 Associating JavaBeans Components with Entry Classes
240(1)
LS.3.3 Supporting Interfaces and Classes
241(2)
LS.4 Generic Attribute Classes
243(10)
LS.4.1 Indicating User Modifiability
243(1)
LS.4.2 Basic Service Information
243(2)
LS.4.3 More Specific Information
245(1)
LS.4.4 Naming a Service
246(1)
LS.4.5 Adding a Comment to a Service
246(1)
LS.4.6 Physical Location
247(1)
LS.4.7 Status Information
248(1)
LS.4.8 Serialized Forms
249(4)
JS The JavaSpaces Specification 253(24)
JS.1 Introduction
253(8)
JS.1.1 The JavaSpaces Application Model and Terms
253(3)
JS.1.1.1 Distributed Persistence
254(1)
JS.1.1.2 Distributed Algorithms as Flows of Objects
254(2)
JS.1.2 Benefits
256(1)
JS.1.3 JavaSpaces Technology and Databases
257(1)
JS.1.4 JavaSpaces System Design and Linda Systems
258(1)
JS.1.5 Goals and Requirements
259(1)
JS.1.6 Dependencies
260(1)
JS.2 Operations
261(8)
JS.2.1 Entries
261(1)
JS.2.2 net.jini.space.JavaSpace
262(2)
JS.2.2.1 InternalSpaceException
263(1)
JS.2.3 write
264(1)
JS.2.4 readIfExists and read
264(1)
JS.2.5 takeIfExists and take
265(1)
JS.2.6 snapshot
265(1)
JS.2.7 notify
266(2)
JS.2.8 Operation Ordering
268(1)
JS.2.9 Serialized Form
268(1)
JS.3 Transactions
269(4)
JS.3.1 Operations under Transactions
269(1)
JS.3.2 Transactions and ACID Properties
270(3)
JS.4 Further Reading
273(4)
JS.4.1 Linda Systems
273(1)
JS.4.2 The Java Platform
273(1)
JS.4.3 Distributed Computing
274(3)
DA The Jini Device Architecture Specification 277(16)
DA.1 Introduction
277(4)
DA.1.1 Requirements from the Jini Lookup Service
278(3)
DA.2 Basic Device Architecture Examples
281(12)
DA.2.1 Devices with Resident Java Virtual Machines
281(2)
DA.2.2 Devices Using Specialized Virtual Machines
283(1)
DA.2.3 Clustering Devices with a Shared Virtual Machine (Physical Option)
284(2)
DA.2.4 Clustering Devices with a Shared Virtual Machine (Network Option)
286(2)
DA.2.5 Jini Software Services over the Internet Inter-Operability Protocol
288(5)
PART 3 Supplemental Material 293(78)
The Jini Technology Glossary
293(14)
Appendix A: A Note on Distributed Computing
307(20)
A.1 Introduction
307(1)
A.1.1 Terminology
308(1)
A.2 The Vision of Unified Objects
308(3)
A.3 Deja Vu All Over Again
311(1)
A.4 Local and Distributed Computing
312(4)
A.4.1 Latency
312(2)
A.4.2 Memory Access
314(2)
A.5 Partial Failure and Concurrency
316(2)
A.6 The Myth of "Quality of Service"
318(2)
A.7 Lessons From NFS
320(2)
A.8 Taking the Difference Seriously
322(2)
A.9 A Middle Ground
324(1)
A.10 References
325(1)
A.11 Observations for this Reprinting
326(1)
Appendix B: The Example Code
327(44)
Index 371(14)
Colophon 385

Customer Reviews

Average Review:

Write a Review

and post it to your social network

     

Most Helpful Customer Reviews

See all customer reviews >