《分布式計算》以分布式計算范型的發(fā)展演變?yōu)榫索,由簡入繁、由淺入深地介紹Socket通信程序、分布式對象技術、組件開發(fā)技術、面向服務體系結構等內容;以Socket應用層程序、Sun公司的RMI(Remote Method Invocation)、OMG組織的CORBA(Common Object Request Broker Architecture)、Sun公司的EJB(Enterprise JavaBeans)規(guī)范、Web 服務(Web Services)和SOA(Service?Oriented Architecture)具體開發(fā)技術為例,向讀者全面介紹分布式計算技術的基本概念、發(fā)展演變、開發(fā)過程、規(guī)范標準、部署應用等內容。
《分布式計算》可作為計算機科學與技術專業(yè)高年級本科生和研究生學習分布式計算技術的教材,也可作為分布式計算領域的研究與開發(fā)人員的參考書。
出版說明
前言
本書知識點結構
第一部分 基 本 概 念
第1章 緒論
1.1 引言
1.1.1 分布式計算的產生背景
1.1.2 分布式計算的發(fā)展歷程
1.1.3 分布式計算技術的特點
1.1.4 中間件技術
1.2 軟件設計的基本思想
1.2.1 隱式地與顯式地
1.2.2 邏輯的與物理的
1.2.3 面向對象技術與UML
1.2.4 軟件體系結構與MDA
1.3 分布式計算基本范型
1.3.1 分布式計算范型的概念
1.3.2 消息傳遞范型
1.3.3 遠程過程調用范型
1.3.4 分布式對象范型
1.3.5 分布式組件模型
1.3.6 面向服務的體系結構
1.4 進程間通信
1.4.1 進程間通信的基本原理
1.4.2 接口與接口定義語言
1.4.3 數(shù)據(jù)表示與編碼
1.4.4 事件同步機制
思考與練習
進一步閱讀
第2章 基于Socket的通信
2.1 基本原理
2.1.1 Socket API的基本概念
2.1.2 Java對網(wǎng)絡通信的支持
2.1.3 TCP、UDP與端口
2.2 數(shù)據(jù)報Socket
2.2.1 基本編程原理
2.2.2 面向無連接數(shù)據(jù)報UDP
2.2.3 面向連接數(shù)據(jù)報UDP
2.3 流式Socket
2.3.1 基本編程原理
2.3.2 單線程服務程序與客戶程序
2.3.3 多線程服務程序
2.4 應用層協(xié)議開發(fā)
2.4.1 理解應用層協(xié)議
2.4.2 Daytime協(xié)議開發(fā)
2.4.3 FTP協(xié)議開發(fā)
2.4.4 HTTP協(xié)議開發(fā)
思考與練習
進一步閱讀
第二部分 分布式對象技術
第3章 RMI基本原理與開發(fā)過程
3.1 分布式對象技術
3.1.1 分布式對象基本技術架構
3.1.2 分布式對象技術特點
3.1.3 分布式對象技術分 類
3.2 RMI基本原理
3.2.1 RMI技術結構
3.2.2 RMI API介紹
3.2.3 RMI與RPC的區(qū)別
3.3 簡單RMI例子開發(fā)過程
3.4 復雜RMI例子開發(fā)過程
3.4.1 數(shù)據(jù)庫設計
3.4.2 對象接口定義
3.4.3 服務端程序
3.4.4 客戶端程序
3.4.5 部署并運行應用程序
3.5 分布式應用程序設計決策
3.5.1 網(wǎng)絡傳輸
3.5.2 通信方式
3.5.3 運行平臺
3.5.4 資源優(yōu)化
3.5.5 其他決策問題
思考與練習
進一步閱讀
第4章 CORBA基本原理與開發(fā)過程
4.1 對象管理體系結構
4.1.1 對象請求代理
4.1.2 對象服務
4.1.3 公共設施
4.1.4 領域接口
4.1.5 應用接口
4.2 CORBA體系結構
4.2.1 OMG的對象模型
4.2.2 對象請求代理的體系結構
4.2.3 對象接口定義
4.2.4 客戶端機制
4.2.5 服務端機制
4.3 CORBA應用程序開發(fā)過程
4.3.1 編寫對象接口
4.3.2 編譯IDL文件
4.3.3 編寫對象實現(xiàn)和服務程序
4.3.4 編寫客戶程序
4.3.5 創(chuàng)建并部署應用程序
4.3.6 運行應用程序
4.4 一個銀行賬戶管理程序
4.4.1 對象接口定義
4.4.2 生成的接口和類
4.4.3 編寫對象實現(xiàn)和服務程序
4.4.4 編寫客戶程序
4.4.5 創(chuàng)建應用程序
4.4.6 運行應用程序
4.5 深入IDL樁和框架
4.5.1 IDL樁和框架的類層次
4.5.2 IDL樁與客戶端對象引用
4.5.3 IDL框架的代碼
4.5.4 用于紐帶機制的IDL框架
4.6 分布式對象的可互操作性
4.6.1 可互操作性
4.6.2 ORB域和橋接
4.6.3 GIOP、IIOP與ESIOP
4.6.4 更高的可互操作性
4.7 CORBA規(guī)范與CORBA產品
4.7.1 CORBA規(guī)范
4.7.2 CORBA產品概述
4.7.3 商品化ORB產品
4.7.4 免費與開源ORB產品
4.7.5 產品與規(guī)范的一致性
4.8 內容小結
4.8.1 CORBA帶來了什么
4.8.2 未解決的問題
思考與練習
進一步閱讀
第5章 編寫對象接口
5.1 對象接口與對象實現(xiàn)
5.1.1 接口與實現(xiàn)分 離
5.1.2 接口定義語言
5.2 OMG IDL的語法與語義
5.2.1 詞法規(guī)則
5.2.2 模塊的聲明
5.2.3 類型的聲明
5.2.4 常量的聲明
5.2.5 異常的聲明
5.2.6 接口的聲明
5.2.7 值類型的聲明
5.3 使用值類型
5.3.1 IDL定義
5.3.2 編譯IDL文件
5.3.3 實現(xiàn)IDL接口
5.3.4 實現(xiàn)值類型
5.3.5 服務程序與客戶程序
5.4 使用接口庫
5.4.1 接口庫的定義
5.4.2 接口庫的結構
5.4.3 接口庫管理工具
5.4.4 編寫接口庫客戶程序
5.5 設計對象接口的準則
5.5.1 編寫對象接口
5.5.2 典型的對象接口
思考與練習
進一步閱讀
第6章 服務端程序設計
6.1 可移植對象適配器
6.1.1 CORBA對象與伺服對象
6.1.2 CORBA對象的基本語義
6.1.3 對象適配器
6.1.4 可移植對象適配器
6.1.5 POA及其組件的IDL定義
6.2 設計POA策略
6.2.1 POA策略
6.2.2 選擇POA策略
6.2.3 組合使用POA策略
6.2.4 請求的處理過程
6.3 使用POA
6.3.1 獲取根POA的對象引用
6.3.2 創(chuàng)建自定義策略的POA
6.3.3 使用POA管理器
6.3.4 激活與凍結對象
6.3.5 使用默認伺服對象
6.4 伺服對象管理器
6.4.1 伺服對象激活器
6.4.2 伺服對象定位器
6.5 適配器激活器
6.5.1 按需激活POA
6.5.2 使用適配器激活器的例程
6.6 紐帶機制
6.6.1 紐帶機制的工作原理
6.6.2 使用紐帶機制的例程
6.7 POA vs BOA
6.7.1 基本對象適配器
6.7.2 POA對BOA的改進
思考與練習
進一步閱讀
第7章 客戶端程序設計
7.1 請求的基本概念
7.1.1 請求是一個對象
7.1.2 ORB偽對象
7.1.3 創(chuàng)建請求對象
7.1.4 Any類型
7.1.5 實際參數(shù)與返回結果
7.1.6 服務端的請求對象
7.2 選擇調用類型
7.2.1 靜態(tài)調用接口
7.2.2 動態(tài)調用接口
7.2.3 選擇合適的調用類型
7.3 選擇通信方式
7.3.1 同步通信
7.3.2 延遲同步通信
7.3.3 單向通信
7.3.4 使用不同的通信方式
7.4 使用動態(tài)調用接口
7.4.1 基于DII的IDL樁
7.4.2 使用DII的開發(fā)步驟
7.4.3 完整的例程
7.5 使用動態(tài)框架接口
7.5.1 動態(tài)框架接口
7.5.2 基于DSI的IDL框架
7.5.3 使用DSI編寫對象實現(xiàn)
7.6 請求的上下文
7.6.1 上下文對象的概念
7.6.2 Context偽對象
7.6.3 使用附帶上下文的請求
7.7 消息傳遞的服務質量
7.7.1 消息傳遞的QoS策略
7.7.2 為消息傳遞指定QoS策略
7.7.3 一個完整的例程
思考與練習
進一步閱讀
第8章 部署CORBA應用程序
8.1 部署階段的總體決策
8.1.1 選擇運行平臺
8.1.2 決定包裝形式
8.1.3 考慮系統(tǒng)容錯性
8.1.4 開放系統(tǒng) vs 封閉系統(tǒng)
8.1.5 安裝過程啟示
8.2 部署服務端程序
8.2.1 創(chuàng)建和發(fā)布對象引用
8.2.2 部署對象實現(xiàn)
8.2.3 部署持久服務程序
8.3 部署客戶端程序
8.3.1 獲取對象引用
8.3.2 部署接口定義
8.3.3 部署IDL客戶樁
8.4 部署VisiBroker應用程序
8.4.1 安裝運行環(huán)境
8.4.2 安裝支持服務
8.4.3 定制運行環(huán)境
8.4.4 啟動應用程序
8.4.5 使 用管理工具
8.5 設置VisiBroker屬性
8.5.1 VisiBroker屬性
8.5.2 設置VisiBroker屬性
8.6 配置智能代理
8.6.1 部署智能代理
8.6.2 使用ORB域
8.6.3 提高對象容錯性
8.7 使用實現(xiàn)庫
8.7.1 實現(xiàn)庫服務
8.7.2 實現(xiàn)庫管理工具
8.7.3 編寫實現(xiàn)庫客戶程序
8.7.4 按需激活對象
思考與練習
進一步閱讀
第三部分 分 布式對象高級課題
第9章 對象查找與對象通信
9.1 對象查找
9.1.1 查找對象的基本機制
9.1.2 CORBA命名服務
9.1.3 命名服務的類結構
9.1.4 CORBA交易對象服務
9.1.5 選擇合適的對象查找機制
9.2 對象通信
9.2.1 分 布式對象的通信
9.2.2 CORBA事件服務
9.2.3 CORBA通知服務
9.2.4 CORBA消息服務
思考與練習
進一步閱讀
第10章 事務處理及其他對象服務
10.1 對象事務處理
10.1.1 事務
10.1.2 基于DBMS的事務處理
10.1.3 分 布式事務處理
10.1.4 CORBA對象事務服務
10.1.5 OTS應用編程模型
10.1.6 OTS與TP監(jiān)控程序
10.2 并發(fā)控制
10.2.1 CORBA并發(fā)控制服務
10.2.2 不同的鎖模式
10.2.3 并發(fā)控制服務提供的接口
10.3 對象安全性
10.3.1 信息系統(tǒng)的安全性
10.3.2 CORBA安全服務
10.3.3 安全策略及其實施
10.3.4 安全服務的體系結構
10.4 對象持久性
10.4.1 CORBA持久對象服務
10.4.2 CORBA持久狀態(tài)服務
10.4.3 CORBA外表化服務
10.5 對象集管理
10.5.1 CORBA關系服務
10.5.2 CORBA生存期服務
10.5.3 CORBA對象類集服務
10.5.4 CORBA查詢服務
10.6 其他服務
10.6.1 CORBA屬性服務
10.6.2 CORBA時間服務
10.6.3 CORBA特許服務
思考與練習
進一步閱讀
第11章 分 布式應用程序性能與可伸縮性
11.1 基本概念
11.1.1 分 布式應用程序的性能和可伸縮性
11.1.2 POA與可伸縮性
11.2 優(yōu)化IDL接口的設計模式
11.2.1 優(yōu)化分 布式應用程序性能的設計原則
11.2.2 一個忽略性能的IDL接口設計例子
11.2.3 值對象設計模式
11.2.4 迭代器設計模式
11.3 資源池
11.3.1 資源池的概念
11.3.2 資源池的體系結構
11.3.3 資源池的QoS策略
11.4 多線程
11.4.1 多線程體系結構
11.4.2 服務程序的多線程模型
11.4.3 VisiBroker的線程管理
11.5 連接管理
11.5.1 連接與可伸縮性
11.5.2 可伸縮的連接管理
11.5.3 VisiBroker的連接管理
11.6 內存管理
11.6.1 杜絕內存泄漏
11.6.2 伺服對象實例池
11.7 負載均衡
11.7.1 實現(xiàn)負載均衡的體系結構
11.7.2 基于網(wǎng)絡的負載均衡
11.7.3 基于操作系統(tǒng)的負載均衡
11.7.4 基于中間件的負載均衡
11.7.5 基于應用程序的負載均衡
思考與練習
進一步閱讀
第四部分 分 布式組件模型與Web應用開發(fā)
第12章 EJB組件模型
12.1 EJB的基本概念
12.1.1 EJB組件的分 類
12.1.2 EJB組件與EJB容器
12.1.3 EJB 3.0 改進之處
12.2 EJB容器提供的設施與服務
12.2.1 通信基礎設施
12.2.2 生存期管理
12.2.3 命名服務
12.2.4 并發(fā)控制服務
12.2.5 持久性服務
12.2.6 事務服務
12.2.7 安全服務
12.3 應用WebLogic開發(fā)與部署EJB 2.3組件
12.3.1 開發(fā)與部署EJB 2.3實體組件
12.3.2 開發(fā)與部署會話組件
12.3.3 開發(fā)與部署消息驅動組件
思考與練習
進一步閱讀
ⅩⅦ第13章 J2EE規(guī)范、Web應用框架與CCM
13.1 J2EE規(guī)范
13.1.1 J2EE概述
13.1.2 JavaEE 5與JavaEE 6
13.1.3 J2EE平臺的執(zhí)行模型
13.1.4 MVC設計模式
13.1.5 基于角色的開發(fā)過程
13.1.6 J2EE應用服務器
13.2 J2EE Web層組件
13.2.1 客戶端組件Applet
13.2.2 服務端組件Servlet
13.2.3 服務端組件JSP
13.3 Web應用框架
13.3.1 Web應用分 層架構
13.3.2 Web應用開發(fā)框架
13.3.3 主流Web應用框架比較
13.4 基于JBoss開發(fā)與部署EJB 3.0組件
13.4.1 EJB 3.0實體組件
13.4.2 EJB 3.0無狀態(tài)會話組件
13.4.3 EJB 3.0有狀態(tài)會話組件
13.4.4 JSP頁面調用EJB組件及部署
13.5 CORBA組件模型CCM
13.5.1 CCM組件特性
13.5.2 CCM組件設計與開發(fā)過程
思考與練習
進一步閱讀
第五部分 面向服務的體系結構及展望
ⅩⅧ第14章 Web服務與SOA基礎
14.1 Web服務的基本概念
14.1.1 Web的發(fā)展過程
14.1.2 Web服務架構與定義
14.1.3 Web服務的技術特點
14.2 Web服務的實現(xiàn)原理
14.2.1 XML
14.2.2 簡單對象訪問協(xié)議
14.2.3 Web服務描述語言
14.2.4 UDDI
14.3 Web服務開發(fā)實例
14.3.1 Web服務與客戶程序設計
14.3.2 Web服務部署與測試
14.4 SOA的基本概念
14.4.1 SOA的定義與功能描述
14.4.2 SOA分 層體系結構
14.4.3 SOA與面向對象、Web服務技術
14.4.4 SOA的主要支持廠商與產品
思考與練習
進一步閱讀
第15章 SOA實現(xiàn)與SOA治理基礎
15.1 SOA編程基本范型
15.1.1 SOA編程范型
15.1.2 業(yè)務流程執(zhí)行語言
15.1.3 服務組件架構
15.1.4 服務數(shù)據(jù)對象
15.2 SOA的基本架構與實施方法
15.2.1 服務調用方式與企業(yè)服務總線
15.2.2 面向服務的分 析與設計
15.2.3 SOA生命周期
15.2.4 SOA實施切入點與步驟
15.3 SOA實現(xiàn):以JBoss產品為例
15.3.1 JBoss產品線介紹
15.3.2 SOA配置與開發(fā)示例
15.4 SOA治理基礎
15.4.1 提出SOA治理的背景
15.4.2 SOA治理生命周期與SOA生命周期
15.4.3 SOA治理參考模型
思考與練習
進一步閱讀
第16章 分 布式計算展望
16.1 網(wǎng)格計算與網(wǎng)絡服務
16.1.1 網(wǎng)格計算
16.1.2 高性能網(wǎng)格計算
16.1.3 網(wǎng)格服務
16.1.4 與網(wǎng)格計算相關的研究計劃
16.2 其他發(fā)展方向
16.2.1 對等計算
16.2.2 移動代理
16.2.3 云計算
思考與練習
進一步閱讀
ⅩⅧ附錄
附錄A OMG IDL語法規(guī)則
附錄B OMG主要規(guī)范一覽
附錄C 中英文術語對照表
參考文獻