JavaSpaces in Practice

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.