Titel: Java RMI
Autor/en: William Grosso
November 2001 - kartoniert - 572 Seiten
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.
Preface 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 Sockets ServerSockets 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 Summary 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 Deadlock 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 ContextImpl 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 Factories Implementing a Generic Factory A Better Factory Persistence and the Server Lifecycle Activation 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 Classloaders How Dynamic Classloading Works The Class Server Using Dynamic Classloading in an Application 20. Security Policies A Different Kind of Security Problem Permissions 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 Firewalls 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 23. RMI, CORBA, and RMI/IIOP 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 Index
William Grosso is the former Chief Architect / Director of Quality Assurance and current Vice President of Technical Services for Hipbone Incorporated. He is the author of Java RMI (available from O'Reilly and Associates) and a co-author of Java Enterprise Best Practices (also available from O'Reilly and Associates). He is one of the founders of Seruku, is on the program committee of the International Semantic Web Conference, and frequently volunteers at SDForum (where he serves on the Board of Directors and helps to run the Emerging Technology SIG). A former mathematician, he got into programming because it seemed like easy money. He got into distributed computing because he noticed that client-server gurus got the big bucks. And then he started programming in Java because he figured that's where the REAL money was. Having learned the error of his ways, he decided to become management and write books instead. When not working, programming, or writing, he spends most of his time hiking and going to the theatre. You can find out more about him at wgrosso.com.