Java RMI
暫譯: Java RMI 远程方法调用

William Grosso

  • 出版商: O'Reilly
  • 出版日期: 2001-11-27
  • 售價: $2,050
  • 貴賓價: 9.5$1,948
  • 語言: 英文
  • 頁數: 576
  • 裝訂: Paperback
  • ISBN: 1565924525
  • ISBN-13: 9781565924529
  • 相關分類: Java 程式語言
  • 已過版

買這商品的人也買了...

商品描述

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

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

商品描述(中文翻譯)

《Java RMI》包含了設計和實現 Java 遠端方法調用的豐富經驗。如果您是初學者,您將迅速了解為什麼 RMI 是一個強大且易於使用的分散式編程工具,而專家則可以獲得構建自己企業和分散式系統的寶貴經驗。

在《Java RMI》中,您將學習使您的 RMI 代碼出色的技巧和竅門。這本書還提供了有關序列化、執行緒、RMI 註冊表、套接字和套接字工廠、激活、動態類加載、HTTP 隧道、分散式垃圾回收、JNDI 和 CORBA 的工作策略。簡而言之,這是一本包含大量有價值的 RMI 知識的寶藏書籍。

目錄

前言

第一部分:設計與構建:RMI 應用的基本知識

1. 流
核心類
查看文件
層疊流
讀取器和寫入器

2. 套接字
網際網路定義
套接字
伺服器套接字
自定義套接字行為
特殊用途套接字
使用 SSL

3. 基於套接字的印表機伺服器
基於網路的印表機
基本物件
協議
應用本身
演進應用

4. 使用 RMI 寫的相同伺服器
RMI 的基本結構
重新檢視架構圖
實現基本物件
伺服器的其餘部分
客戶端應用
總結

5. 介紹銀行範例
銀行範例
草擬粗略架構
基本用例
額外設計決策
銀行範例的分散式架構
分散式應用中出現的問題

6. 決定遠端伺服器
一點偏見
思考伺服器時的重要問題
我們應該實現銀行還是帳戶?

7. 設計遠端介面
設計遠端介面時的重要問題
建立數據物件
考慮部分失敗

8. 實現銀行伺服器
伺服器的結構
實現伺服器
生成存根和骨架

9. 應用的其餘部分
啟動代碼的需求
我們的實際啟動代碼
構建測試應用
構建客戶端應用
部署應用

第二部分:深入探討:可擴展性

10. 序列化
序列化的需求
使用序列化
如何使類可序列化
序列化算法
類的版本控制
性能問題
Externalizable 介面

11. 執行緒
多於一個客戶端
基本術語
執行緒概念
Java 中的執行緒支持
死鎖
執行緒與 RMI

12. 實現執行緒
基本任務
執行緒的指導方針
池:擴展範例
關於執行緒的一些最後話語

13. 測試分散式應用
測試銀行應用

14. RMI 註冊表
為什麼使用命名服務?
RMI 註冊表
RMI 註冊表是一個 RMI 伺服器
檢查註冊表
RMI 註冊表的限制
安全問題

15. 命名服務
基本設計、術語和需求
我們的命名服務需求
聯合和執行緒
上下文介面
值物件
ContextImpl
在命名服務之間切換
Java 命名和目錄介面 (JNDI)

16. RMI 執行時
回顧遠端方法調用的機制
分散式垃圾回收
RMI 的日誌功能
其他 JVM 參數

17. 工廠與激活框架
資源管理
工廠
實現通用工廠
更好的工廠
持久性與伺服器生命週期
激活
關於工廠的最後話語

第三部分:進階主題

18. 使用自定義套接字
自定義套接字工廠
將自定義套接字納入應用

19. 動態類加載
部署可能很困難
類加載器
動態類加載的工作原理
類伺服器
在應用中使用動態類加載

20. 安全政策
一種不同類型的安全問題
權限
安全管理器
設置安全政策

21. 多執行緒客戶端
不同類型的遠端方法
處理印表機類型的方法
處理報告類型的方法
從這些範例中概括

22. HTTP 隧道
防火牆
CGI 和動態內容
HTTP 隧道
HTTP 隧道的 Servlet 實現
修改隧道機制
通過 HTTP 隧道的銀行
HTTP 隧道的缺點
禁用 HTTP 隧道

23. RMI、CORBA 和 RMI/IIOP
CORBA 的工作原理
CORBA 中的銀行範例
CORBA 和 RMI 的快速比較
RMI 在 CORBA 之上
將銀行範例轉換為 RMI/IIOP

索引