
JavaSpaces in Practice
Addison Wesley (Publisher)
Published on 12. August 2002
Book
Paperback/Softback
256 pages
978-0-321-11231-6 (ISBN)
Description
This book shows developers how to use JavaSpaces to build practical, scalable, distributed systems.
The authors are pioneers in the use of JavaSpaces to build real systems that solve real problems.
It will increase the understanding of where JavaSpaces are applicable, and how to use them effectively within your system architecture.
Well written and clearly presented, practical implementation guide for JavaSpaces.
The book is endorsed by Jim Waldo: Distinguished Engineer at Sun Microsystems, lead architect for the Jini networking technology and JavaSpaces.
Follows on from Bishop and Warren's classic: Java in Practice.
Audience: Programmers with some experience in Java.
User level:
Intermediate.
Philip Bishop specializes in the design and implemenation of large scale systems for organizations ranging from utility companies to investment banks.
Nigel Warren is co-founder and Director of Technology at IntaMission Ltd, where he researches and designs agile and evolvable software infrastructures for next generation distributed systems.
The authors are pioneers in the use of JavaSpaces to build real systems that solve real problems.
It will increase the understanding of where JavaSpaces are applicable, and how to use them effectively within your system architecture.
Well written and clearly presented, practical implementation guide for JavaSpaces.
The book is endorsed by Jim Waldo: Distinguished Engineer at Sun Microsystems, lead architect for the Jini networking technology and JavaSpaces.
Follows on from Bishop and Warren's classic: Java in Practice.
Audience: Programmers with some experience in Java.
User level:
Intermediate.
Philip Bishop specializes in the design and implemenation of large scale systems for organizations ranging from utility companies to investment banks.
Nigel Warren is co-founder and Director of Technology at IntaMission Ltd, where he researches and designs agile and evolvable software infrastructures for next generation distributed systems.
Reviews / Votes
Phil Bishop and Nigel Warren have been pioneers in the use of JavaSpaces to build real systems that solve real problems. This book is an excellent distillation of their accumulated wisdom on this subject, and will save any programmer using the technology far more time than it will take to read. It is also well written and clearly presented, a rarity in technical books these days. I learned a lot reading it. Jim Waldo, Distinguished Engineer at Sun Microsystems, lead architect for the Jini networking technology and JavaSpaces.More details
Language
English
Place of publication
New Jersey
United States
Publishing group
Pearson Education (US)
Target group
Professional and scholarly
Dimensions
Height: 234 mm
Width: 186 mm
Thickness: 13 mm
Weight
471 gr
ISBN-13
978-0-321-11231-6 (9780321112316)
Copyright in bibliographic data and cover images is held by Nielsen Book Services Limited or by the publishers or by their respective licensors: all rights reserved.
Schweitzer Classification
Persons
Philip Bishop specializes in the design and implemenation of large scale systems for organizations ranging from utility companies to investment banks.
Nigel Warren is co-founder and Director of Technology at IntaMission Ltd, where he researches and designs agile and evolvable software infrastructures for next generation distributed systems.
Nigel Warren is co-founder and Director of Technology at IntaMission Ltd, where he researches and designs agile and evolvable software infrastructures for next generation distributed systems.
Content
NOTE: Each chapter concludes with a Summary.)
Acknowledgements.
Preface.
1. Introduction.
Foundations and Terms.
Distribution Using Spaces
The Javaspaces Interface
The Structure of Spaces
I. ENTRIES.
2. Designing Entries.
Background.
An Initial Entry.
Entry Wrapping.
Interfaces for Entries.
Factories for Entries.
Design Alternative.
Entries for Existing Frameworks.
The Payload Idiom.
3. Evolving Entries.
Maintaining Compatibility.
Standard Techniques and Data Loss.
Using Inheritance to Add Fields.
Removing Fields from Entries.
Evolving Nested Key Fields.
An Alternative to Nested Key Fields.
Problems with Entry Evolution.
4. Simple Distributed Data Structures.
Simple Data Structures.
Ordered Data Structures.
Iterating.
5. Hierarchical Distributed Data Structures.
Organizational Structures.
Complex Matching.
Generic Distributed Trees.
II. MECHANICS.
6. Codebases.
Basic Requirements.
The Codebase System Property.
7. Remote Event-based Idioms.
Introducing Remote Events.
The Handback Event Handler.
Object Interactions.
Adding Event Handlers at Runtime.
Leases.
Event Registration.
Sequence Numbers.
Transactions.
Leases And Transactions.
Using An Event Mailbox.
Reliability.
8. Code Mobility Behaviour-based Idioms.
Introducing Code Mobility.
What Goes on Behind the Scenes?
Introducing Behavior-based Idioms.
Building an Employee System.
Using Subclassing to Modify Behavior at Runtime.
Using Classloaders to Modify Behavior at Runtime.
Security and Mobile Code.
9. Using Transient and Persistent Spaces.
Transient Spaces.
Persistent Spaces.
Accessing Different Spaces.
Specifying Storage Models with Entries.
Mixing Snapshots.
Registering the Mixed Proxy.
III. APPLICATION.
10. Process Coordination.
Request-Response Model.
Implementing the Model.
Coordinating Multiple Services.
11. Location-based Services.
Location-Based Systems.
Packit Shifters - Case Study.
Finding Locatables in a Space.
12. Bidding and Agent Systems.
A Time Bidding System.
Typesafe Constants with Spaces.
Agents and Spaces.
The Customer Agent.
The Driver Agents.
Letter Counter Service.
13. Testing Space-based Systems.
A Space Logging System.
A Local Logging Proxy.
Reviewing the Design.
The JavaSpace Logging Service.
Alternative Designs 2.
14. Tuning Space-based Systems.
A Lightweight Counter.
Tuning Local Code.
Using Snapshot.
Imitating Snapshot.
General Entry Optimizations.
Date Matching.
Time and Spaces.
Server Tuning.
Conclusion.
Appendices.
A: Code Listings.
B: Tips and Rules in This Book.
References.
Index.
Acknowledgements.
Preface.
1. Introduction.
Foundations and Terms.
Distribution Using Spaces
The Javaspaces Interface
The Structure of Spaces
I. ENTRIES.
2. Designing Entries.
Background.
An Initial Entry.
Entry Wrapping.
Interfaces for Entries.
Factories for Entries.
Design Alternative.
Entries for Existing Frameworks.
The Payload Idiom.
3. Evolving Entries.
Maintaining Compatibility.
Standard Techniques and Data Loss.
Using Inheritance to Add Fields.
Removing Fields from Entries.
Evolving Nested Key Fields.
An Alternative to Nested Key Fields.
Problems with Entry Evolution.
4. Simple Distributed Data Structures.
Simple Data Structures.
Ordered Data Structures.
Iterating.
5. Hierarchical Distributed Data Structures.
Organizational Structures.
Complex Matching.
Generic Distributed Trees.
II. MECHANICS.
6. Codebases.
Basic Requirements.
The Codebase System Property.
7. Remote Event-based Idioms.
Introducing Remote Events.
The Handback Event Handler.
Object Interactions.
Adding Event Handlers at Runtime.
Leases.
Event Registration.
Sequence Numbers.
Transactions.
Leases And Transactions.
Using An Event Mailbox.
Reliability.
8. Code Mobility Behaviour-based Idioms.
Introducing Code Mobility.
What Goes on Behind the Scenes?
Introducing Behavior-based Idioms.
Building an Employee System.
Using Subclassing to Modify Behavior at Runtime.
Using Classloaders to Modify Behavior at Runtime.
Security and Mobile Code.
9. Using Transient and Persistent Spaces.
Transient Spaces.
Persistent Spaces.
Accessing Different Spaces.
Specifying Storage Models with Entries.
Mixing Snapshots.
Registering the Mixed Proxy.
III. APPLICATION.
10. Process Coordination.
Request-Response Model.
Implementing the Model.
Coordinating Multiple Services.
11. Location-based Services.
Location-Based Systems.
Packit Shifters - Case Study.
Finding Locatables in a Space.
12. Bidding and Agent Systems.
A Time Bidding System.
Typesafe Constants with Spaces.
Agents and Spaces.
The Customer Agent.
The Driver Agents.
Letter Counter Service.
13. Testing Space-based Systems.
A Space Logging System.
A Local Logging Proxy.
Reviewing the Design.
The JavaSpace Logging Service.
Alternative Designs 2.
14. Tuning Space-based Systems.
A Lightweight Counter.
Tuning Local Code.
Using Snapshot.
Imitating Snapshot.
General Entry Optimizations.
Date Matching.
Time and Spaces.
Server Tuning.
Conclusion.
Appendices.
A: Code Listings.
B: Tips and Rules in This Book.
References.
Index.