Java RMI

William Grosso

  • 出版商: O'Reilly
  • 出版日期: 2001-11-27
  • 售價: $1,960
  • 貴賓價: 9.5$1,862
  • 語言: 英文
  • 頁數: 576
  • 裝訂: Paperback
  • ISBN: 1565924525
  • ISBN-13: 9781565924529
  • 相關分類: Java 程式語言
  • 已過版
    無現貨庫存(No stock available)




Java RMI contains a wealth of experience in designing and implementing Java's Remote Method Invocation. If you're a novice reader, you will quickly be brought up to speed on why RMI is such a powerful yet easy to use tool for distributed programming, while experts can gain valuable experience for constructing their own enterprise and distributed systems.

With Java RMI, you'll learn tips and tricks for making your RMI code excel. The book also provides strategies for working with serialization, threading, the RMI registry, sockets and socket factories, activation, dynamic class downloading, HTTP tunneling, distributed garbage collection, JNDI, and CORBA. In short, a treasure trove of valuable RMI knowledge packed into one book.

Table of Contents


Part I. Designing and Building: The Basics of RMI Applications

1. Streams
     The Core Classes
     Viewing a File
     Layering Streams
     Readers and Writers

2. Sockets
     Internet Definitions
     Customizing Socket Behavior
     Special-Purpose Sockets
     Using SSL

3. A Socket-Based Printer Server
     A Network-Based Printer
     The Basic Objects
     The Protocol
     The Application Itself
     Evolving the Application

4. The Same Server, Written Using RMI
     The Basic Structure of RMI
     The Architecture Diagram Revisited
     Implementing the Basic Objects
     The Rest of the Server
     The Client Application

5. Introducing the Bank Example
     The Bank Example
     Sketching a Rough Architecture
     The Basic Use Case
     Additional Design Decisions
     A Distributed Architecture for the Bank Example
     Problems That Arise in Distributed Applications

6. Deciding on the Remote Server
     A Little Bit of Bias
     Important Questions When Thinking About Servers
     Should We Implement Bank or Account?

7. Designing the Remote Interface
     Important Questions When Designing Remote Interfaces
     Building the Data Objects
     Accounting for Partial Failure

8. Implementing the Bank Server
     The Structure of a Server
     Implementing the Server
     Generating Stubs and Skeletons

9. The Rest of the Application
     The Need for Launch Code
     Our Actual Launch Code
     Build Test Applications
     Build the Client Application
     Deploying the Application

Part II. Drilling Down: Scalability

10. Serialization
     The Need for Serialization
     Using Serialization
     How to Make a Class Serializable
     The Serialization Algorithm
     Versioning Classes
     Performance Issues
     The Externalizable Interface

11. Threads
     More Than One Client
     Basic Terminology
     Threading Concepts
     Support for Threads in Java
     Threading and RMI

12. Implementing Threading
     The Basic Task
     Guidelines for Threading
     Pools: An Extended Example
     Some Final Words on Threading

13. Testing a Distributed Application
     Testing the Bank Application

14. The RMI Registry
     Why Use a Naming Service?
     The RMI Registry
     The RMI Registry Is an RMI Server
     Examining the Registry
     Limitations of the RMI Registry
     Security Issues

15. Naming Services
     Basic Design, Terminology, and Requirements
     Requirements for Our Naming Service
     Federation and Threading
     The Context Interface
     The Value Objects
     Switching Between Naming Services
     The Java Naming and Directory Interface (JNDI)

16. The RMI Runtime
     Reviewing the Mechanics of a Remote Method Call
     Distributed Garbage Collection
     RMI's Logging Facilities
     Other JVM Parameters

17. Factories and the Activation Framework
     Resource Management
     Implementing a Generic Factory
     A Better Factory
     Persistence and the Server Lifecycle
     A Final Word About Factories

Part III. Advanced Topics

18. Using Custom Sockets
     Custom Socket Factories
     Incorporating a Custom Socket into an Application

19. Dynamic Classloading
     Deploying Can Be Difficult
     How Dynamic Classloading Works
     The Class Server
     Using Dynamic Classloading in an Application

20. Security Policies
     A Different Kind of Security Problem
     Security Managers
     Setting Up a Security Policy

21. Multithreaded Clients
     Different Types of Remote Methods
     Handling Printer-Type Methods
     Handling Report-Type Methods
     Generalizing from These Examples

22. HTTP Tunneling
     CGI and Dynamic Content
     HTTP Tunneling
     A Servlet Implementation of HTTP Tunneling
     Modifying the Tunneling Mechanism
     The Bank via HTTP Tunneling
     Drawbacks of HTTP Tunneling
     Disabling HTTP Tunneling

     How CORBA Works
     The Bank Example in CORBA
     A Quick Comparison of CORBA and RMI
     RMI on Top of CORBA
     Converting the Bank Example to RMI/IIOP