第1部分 動(dòng)因——構(gòu)件與市場(chǎng)
第1章 引論
1.1 構(gòu)件是為組裝服務(wù)的
1.2 構(gòu)件——定制軟件與標(biāo)準(zhǔn)軟件
1.3 構(gòu)件技術(shù)的必然性
1.4 軟件的本質(zhì)與可部署實(shí)體
1.5 構(gòu)件是部署單元
1.6 經(jīng)驗(yàn)總結(jié)
第2章 市場(chǎng)和技術(shù)
2.1 創(chuàng)造市場(chǎng)
2.2 構(gòu)件技術(shù)的基本特征
2.3 市場(chǎng)發(fā)展
2.3.1 Strategic Focus(1995年1月)
2.3.2 Ovum(1995年)
2.3.3 IDC(1996年5月)
2.3.4 Forrester的研究(1996年10月)
2.3.5 IDC(1999年4月)
2.3.6 ComponentSource(2001年)
2.3.7 Flashline (2001年)
第3章 標(biāo)準(zhǔn)
3.1 (準(zhǔn))標(biāo)準(zhǔn)的重要性
3.2 配線標(biāo)準(zhǔn)是不夠的
3.3 太多競(jìng)爭標(biāo)準(zhǔn)是無用的
3.4 今天的軟件構(gòu)件技術(shù)在哪里
3.5 下一步該如何走
第2部分 基礎(chǔ)
第4章 構(gòu)件的定義
4.1 術(shù)語與概念
4.1.1 構(gòu)件
4.1.2 對(duì)象
4.1.3 構(gòu)件與對(duì)象
4.1.4 模塊
4.1.5 白盒抽象、黑盒抽象與重用
4.1.6 接口
4.1.7 顯式語境依賴
4.1.8 構(gòu)件的規(guī)模
4.2 標(biāo)準(zhǔn)化與規(guī)范化
4.2.1 通用市場(chǎng)與專業(yè)市場(chǎng)
4.2.2 標(biāo)準(zhǔn)的構(gòu)件體系與規(guī)范化
第5章 構(gòu)件、接口與重入
5.1 構(gòu)件與接口
5.1.1 直接接口與間接接口
5.1.2 版本
5.1.3 作為合約的接口
5.1.4 合約與非功能性需求
5.1.5 未成文的“特征”
5.2 合約內(nèi)容
5.2.1 安全與進(jìn)度
5.2.2 非功能性需求
5.2.3 指定時(shí)間與空間的需求
5.3 形式化與非形式化
5.4 回調(diào)與合約
5.5 回調(diào)與合約:示例
5.5.1 目錄服務(wù)
5.5.2 目錄服務(wù)的客戶
5.5.3 客戶新版本
5.5.4 違約
5.5.5 防患于未然
5.5.6 修正目錄服務(wù)
5.5.7 測(cè)試函數(shù)的應(yīng)用
5.6 從回調(diào)到對(duì)象
5.7 從對(duì)象間的一致性到對(duì)象重入
5.8 自干涉與對(duì)象重入:總結(jié)
5.9 進(jìn)程與多線程
5.10 歷史記錄
5.11 規(guī)約聲明
第6章 多態(tài)性
6.1 可替代性
6.2 類型、子類型和類型檢查
6.3 子類型
6.4 對(duì)象語言與類型
6.5 類型、接口與構(gòu)件
6.6 獨(dú)立可擴(kuò)展性范型
6.7 構(gòu)造安全性——構(gòu)件的生存力
6.7.1 模塊安全性
6.7.2 模塊安全性與元編程
6.7.3 多語言環(huán)境下的安全性
6.8 安全性、安全和信任
6.9 獨(dú)立可擴(kuò)展性的維度
6.9.1 瓶頸接口
6.9.2 單獨(dú)配置
6.9.3 并行擴(kuò)展、正交擴(kuò)展與遞歸擴(kuò)展
6.10 接口和合約的演化與不變性
6.10.1 合約的語法與語義變化
6.10.2 合約的有效期
6.10.3 最高法則
6.11 多態(tài)性的其他形式
第7章 對(duì)象與類組裝或怎樣避免繼承
7.1 繼承——今天的湯
7.2 在湯中加更多的香料
7.2.1 多繼承
7.2.2 Mixins
7.3 回到基本因素
7.4 脆弱基類問題
7.4.1 語法脆弱基類問題
7.4.2 語義脆弱基類問題
7.5 繼承——更深入的問題
7.6 受約束的繼承方法
7.6.1 特化接口
7.6.2 類型化特化接口
7.6.3 特化接口的行為規(guī)約
7.6.4 重用合約和合作合約
7.6.5 表示不變式和方法精化
7.6.6 避免脆弱基類問題的受約束繼承
7.6.7 創(chuàng)建正確的子類且不必關(guān)心超類代碼
7.7 從類到對(duì)象組裝
7.8 轉(zhuǎn)發(fā)與代理
7.9 對(duì)代理與繼承的簡單回顧
第8章 構(gòu)件的規(guī)模與粒度
8.1 抽象單元
8.2 計(jì)費(fèi)單元
8.3 分析單元
8.4 編譯單元
8.5 分發(fā)單元
8.6 部署單元
8.7 爭論單元
8.8 擴(kuò)展單元
8.9 錯(cuò)誤包容單元
8.10 實(shí)例單元
8.11 安裝單元
8.12 加載單元
8.13 局部化單元
8.14 維護(hù)單元
8.15 系統(tǒng)管理單元
8.16 小結(jié)
第9章 模式、框架和體系結(jié)構(gòu)
9.1 設(shè)計(jì)級(jí)重用的形式
9.1.1 共享一致性——編程語言
9.1.2 共享具體的解決片段——庫
9.1.3 共享單個(gè)的合約——接口
9.1.4 共享單個(gè)的交互片斷——消息和協(xié)議
9.1.5 共享單個(gè)的交互結(jié)構(gòu)——模式
9.1.6 共享體系結(jié)構(gòu)——框架
9.1.7 共享總體結(jié)構(gòu)——系統(tǒng)體系結(jié)構(gòu)
9.1.8 由子系統(tǒng)組成的系統(tǒng)——框架級(jí)別
9.2 互操作性,遺產(chǎn)和再工程
第10章 編程
10.1 適合不同開發(fā)者的不同編程方法
10.2 為一個(gè)系統(tǒng)進(jìn)行程序設(shè)計(jì)
10.3 面向連接的程序設(shè)計(jì)
10.4 面向連接的程序設(shè)計(jì)——更深一步的概念
10.5 事件和消息
10.5.1 消息語法和模式——XML
10.5.2 事件和調(diào)用
10.5.3 調(diào)用的語法和協(xié)議——SOAP
10.6 事件的順序——因果條件、競(jìng)爭條件和脈沖干擾
10.7 極度延遲綁定——分派接口和元編程
10.8 自由度——沙箱方法和靜態(tài)安全方法
10.9 錄制與腳本
第11章 其他的說法
11.1 Grady Booch (1987)
11.2 Oscar Nierstrasz和Dennis Tsichritzis(1992, 1995)
11.3 Gio Wiederhold, Peter Wegner和Stefano Ceri (1992)
11.4 Ivar Jacobson (1993)
11.5 Meta Group (1994)
11.6 Jed Harris(1995)
11.7 Ovum關(guān)于分布式對(duì)象的報(bào)告(1995)
11.8 Robert Orfali, Dan Harkey和Jeri Edwards (1995, 1996)
11.9 Johannes Sametinger(1997)
11.10 UML 1.3 Standard(1999)
11.11 Desmond D’Souza和Alan Wills (1999)
11.12 Krzysztof Czarnecki和Ulrich Eisenecker(2000)
11.13 Peter Herzum和Oliver Sims (2000)
11.14 CBSE手冊(cè)(2001)
第3部分 構(gòu)件模型與平臺(tái)
第12章 對(duì)象和構(gòu)件的“布線”標(biāo)準(zhǔn)
12.1 布線標(biāo)準(zhǔn)從何而來
12.2 從過程到對(duì)象
12.3 深層次問題
12.3.1 接口和對(duì)象引用規(guī)范
12.3.2 接口關(guān)系和多態(tài)性
12.3.3 命名和定位服務(wù)
12.3.4 復(fù)合文檔
12.4 XML
12.4.1 XML、XML名字空間、XML方案
12.4.2 XML支持標(biāo)準(zhǔn)
12.4.3 XML文檔對(duì)象和流模型
12.4.4 SOAP
12.4.5 XML Web服務(wù):WSDL,UDDI,WSFL,XLANG
12.4.6 Web服務(wù)和編程模型
12.5 走哪一條路
第13章 OMG方式:CORBA, CCM, OMA 和MDA
13.1 核心——對(duì)象請(qǐng)求代理
13.1.1 從CORBA到OMA
13.1.2 CORBA 版本一覽
13.1.3 系統(tǒng)對(duì)象模型(SOM)簡介
13.2 公共對(duì)象服務(wù)規(guī)范(CORBA服務(wù))
13.2.1 支持企業(yè)分布式計(jì)算的服務(wù)
13.2.2 支持細(xì)粒度對(duì)象互操作的服務(wù)
13.3 CORBA構(gòu)件模型
13.3.1 可移植對(duì)象適配器
13.3.2 CCM構(gòu)件
13.3.3 CCM容器
13.4 與CORBA兼容的實(shí)現(xiàn)
13.4.1 BEA的WebLogic
13.4.2 IBM的WebSphere
13.4.3 IONA公司的Orbix E2A應(yīng)用服務(wù)器平臺(tái)
13.4.4 Borland公司的企業(yè)服務(wù)器
13.4.5 非營利的實(shí)現(xiàn)
13.5 CORBA設(shè)施
13.6 應(yīng)用對(duì)象
13.7 CORBA,UML,XML和MDA
13.7.1 元對(duì)象設(shè)施
13.7.2 模型驅(qū)動(dòng)的體系結(jié)構(gòu)(MDA)
第14章 SUN公司的方式——Java, Javabean,EJB和Java 2
14.1 Java構(gòu)件技術(shù)的概述與歷史
14.1.1 Java與Java 2
14.1.2 運(yùn)行環(huán)境和參考實(shí)現(xiàn)
14.1.3 版本家族——微型版、標(biāo)準(zhǔn)版和企業(yè)版
14.2 Java語言
14.2.1 接口和類
14.2.2 異常和異常處理
14.2.3 線程和同步
14.2.4 垃圾回收
14.3 JavaBean
14.3.1 事件和連接
14.3.2 屬性
14.3.3 自省
14.3.4 JAR文件——Java構(gòu)件的打包文件
14.4 基本的Java服務(wù)
14.4.1 反射
14.4.2 對(duì)象序列化
14.4.3 Java本地接口
14.4.4 Java AWT和JFC/Swing
14.4.5 高級(jí)JavaBean規(guī)范
14.5 各種構(gòu)件——Applet,Servlet,Bean和Enterprise Bean
14.5.1 Java Server Page(JSP)和Servlet
14.5.2 語境相關(guān)組裝——EJB
14.5.3 數(shù)據(jù)驅(qū)動(dòng)組裝——EJB 2.0中的消息驅(qū)動(dòng)Bean
14.6 高級(jí)Java服務(wù)
14.6.1 分布式對(duì)象模型和RMI
14.6.2 Java和CORBA
14.6.3 企業(yè)級(jí)服務(wù)接口
14.6.4 Java和XML
14.7 重新比較Java中的接口和類
14.8 JXTA和Jini
14.8.1 Jini——Java服務(wù)和客戶的聯(lián)合體
14.8.2 JXTA——點(diǎn)對(duì)點(diǎn)計(jì)算
14.9 Java和Web服務(wù)——SunONE
第15章 微軟的方式:COM, OLE/Activex, COM+和.NET CLR
15.1 第一個(gè)基礎(chǔ)關(guān)聯(lián)模型——COM
15.2 COM對(duì)象重用
15.3 接口和多態(tài)
15.3.1 類別
15.3.2 接口和版本化
15.4 COM對(duì)象的創(chuàng)建和COM庫
15.5 初始化對(duì)象、持久化、結(jié)構(gòu)化存儲(chǔ)、綽號(hào)(moniker)
15.6 從COM到分布式COM(DCOM)
15.7 元信息和自動(dòng)化
15.8 其他COM服務(wù)
15.8.1 統(tǒng)一數(shù)據(jù)傳輸
15.8.2 分派接口和雙接口
15.8.3 外出接口和可連接對(duì)象
15.9 復(fù)合文檔和OLE
15.9.1 OLE容器和服務(wù)器
15.9.2 控件——從Visual Basic到OLE再到ActiveX
15.10 依賴語境的組裝和服務(wù)
15.10.1 COM套間——線程和同步
15.10.2 微軟事務(wù)服務(wù)器——語境和激活
15.10.3 COM+——通用化語境和數(shù)據(jù)驅(qū)動(dòng)的組裝
15.11 二者兼取——.NET框架
15.11.1 .NET大圖景
15.11.2 通用語言基礎(chǔ)設(shè)施
15.11.3 COM和平臺(tái)的互操作
15.11.4 示范型.NET語言——C#
15.11.5 Visual Studio .NET
15.12 配件——.NET軟件構(gòu)件
15.13 通用語言框架
15.13.1 應(yīng)用域、語境、反射及遠(yuǎn)程化
15.13.2 Windows Forms, data, management
15.13.3 Web Forms, Active Server Pages (ASP) .NET
15.13.4 XML和數(shù)據(jù)
15.13.5 Enterprise services
15.13.6 用 .NET的Web Services
第16章 進(jìn)一步的技術(shù)
16.1 計(jì)算機(jī)界優(yōu)異的程序設(shè)計(jì)語言擴(kuò)充
16.2 日立的應(yīng)用庫
16.3 Groove收發(fā)器
第17章 戰(zhàn)略上的比較
17.1 共性
17.2 不同點(diǎn)
17.3 為基礎(chǔ)設(shè)施廠商做出的推論
17.4 為構(gòu)件廠商所做的推斷
第18章 領(lǐng)域標(biāo)準(zhǔn)方面的努力
18.1 OMG領(lǐng)域技術(shù)委員會(huì)
18.1.1 OMG商業(yè)對(duì)象領(lǐng)域工作組
18.2 W3C
18.3 商業(yè)過程和文檔
18.3.1 OASIS和ebXML
18.3.2 RosettaNet和PIPs
18.3.3 BizTalk.org
18.4 DMTF的CIM和WBEM
18.5 Java范圍內(nèi)制定標(biāo)準(zhǔn)的工作
18.6 過程控制的OLE
18.7 工業(yè)協(xié)會(huì)
18.7.1 信息技術(shù)工業(yè)分組
18.7.2 商業(yè)協(xié)會(huì)
18.7.3 用戶協(xié)會(huì)
第19章 當(dāng)前值得關(guān)注的問題
19.1 領(lǐng)域標(biāo)準(zhǔn)
19.2 軟件工程基礎(chǔ)的再思考
19.3 那么它是面向?qū)ο蟮膯?br />19.4 對(duì)象的遷移性和可移動(dòng)代理
19.5 基礎(chǔ)——更好的合約,更好的構(gòu)件
第4部分 構(gòu)件結(jié)合體系結(jié)構(gòu)和進(jìn)程
第20章 構(gòu)件體系結(jié)構(gòu)
20.1 體系結(jié)構(gòu)的角色
20.2 概念化——超越對(duì)象
20.3 關(guān)鍵術(shù)語的定義
20.4 分層的構(gòu)件體系結(jié)構(gòu)
20.5 構(gòu)件和中間件
20.6 構(gòu)件與生成式編程
第21章 構(gòu)件框架
21.1 語境相關(guān)構(gòu)件框架的貢獻(xiàn)
21.1.1 基礎(chǔ)與根源
21.1.2 語境相關(guān)的構(gòu)件框架與連接子(Connector)
21.1.3 語境相關(guān)的構(gòu)件框架與元編程
21.1.4 語境相關(guān)的構(gòu)件框架與面向側(cè)面的編程
21.2 語境相關(guān)組合框架
21.2.1 COM+語境
21.2.2 EJB容器
21.2.3 CCM容器
21.2.4 CLR語境和通道
21.2.5 元組和對(duì)象空間
21.3 黑盒構(gòu)件框架
21.3.1 Carrier-rider-mapper設(shè)計(jì)模式
21.3.2 目錄對(duì)象
21.3.3 層次模型視圖分隔
21.3.4 容器狀態(tài)
21.3.5 串聯(lián)的消息多播服務(wù)
21.3.6 基于復(fù)合文檔的高級(jí)應(yīng)用
21.4 黑盒和OLE
21.5 Portos——一個(gè)硬實(shí)時(shí)構(gòu)件框架及其IDE
21.5.1 Portos的結(jié)構(gòu)
21.5.2 實(shí)時(shí)調(diào)度程序
21.5.3 交叉開發(fā)環(huán)境
第22章 構(gòu)件開發(fā)
22.1 面向構(gòu)件的編程方法學(xué)
22.1.1 異步問題
22.1.2 多線程
22.1.3 從電路設(shè)計(jì)中獲得的經(jīng)驗(yàn)
22.1.4 “生活”在沒有實(shí)現(xiàn)繼承的狀態(tài)下
22.1.5 堅(jiān)殼類
22.1.6 語言支持
22.1.7 轉(zhuǎn)發(fā)語義的動(dòng)態(tài)基對(duì)象
22.1.8 調(diào)用者封裝
22.2 環(huán)境——選擇目標(biāo)框架
22.3 工具——選擇編程語言
第23章 構(gòu)件的分發(fā)和獲取
23.1 構(gòu)建能出售的——應(yīng)用程序而不是構(gòu)件
23.2 產(chǎn)品目錄和描述
23.3 構(gòu)件定位和選擇
23.4 超級(jí)分發(fā)
23.5 中介
第24章 構(gòu)件組裝
24.1 構(gòu)件初始化及互連
24.2 構(gòu)件的可視化組裝
24.3 用復(fù)合文檔取代可視化組裝
24.4 非圖形用戶界面環(huán)境的構(gòu)件
24.5 可管理且“自引導(dǎo)的”構(gòu)件組裝
24.6 最終用戶組裝
24.7 構(gòu)件演化
第25章 技術(shù)發(fā)展趨向
25.1 高級(jí)的對(duì)象組裝
25.1.1 委托
25.1.2 分割對(duì)象
25.1.3 環(huán)境型獲取
25.1.4 動(dòng)態(tài)繼承
25.2 對(duì)象和構(gòu)件的抽象的新形式
25.2.1 面向主題的編程
25.2.2 面向側(cè)面的編程
25.2.3 XML構(gòu)件
第5部分 市場(chǎng)與構(gòu)件
第26章 市場(chǎng)全接觸
26.1 構(gòu)件
26.2 構(gòu)件平臺(tái)和基礎(chǔ)設(shè)施
26.3 工具
26.3.1 構(gòu)件設(shè)計(jì)與實(shí)現(xiàn)工具
26.3.2 構(gòu)件測(cè)試工具
26.3.3 構(gòu)件組裝工具
26.3.4 構(gòu)件系統(tǒng)的診斷和維護(hù)
26.4 專業(yè)性服務(wù)
26.4.1 構(gòu)件系統(tǒng)及框架的架構(gòu)師
26.4.2 構(gòu)件組裝顧問
26.4.3 構(gòu)件配置管理
26.4.4 構(gòu)件庫、市場(chǎng)與咨詢
26.4.5 構(gòu)件操作者、Web服務(wù)、應(yīng)用服務(wù)器提供商
第27章 新職業(yè)
27.1 構(gòu)件系統(tǒng)架構(gòu)師
27.2 構(gòu)件框架架構(gòu)師
27.3 構(gòu)件開發(fā)者
27.4 構(gòu)件組裝者
第28章 構(gòu)件市場(chǎng)悖論
28.1 品牌化
28.2 為每次使用付費(fèi)
28.3 和廣告聯(lián)合發(fā)布
28.4 對(duì)新興市場(chǎng)的利用
28.5 綜合力量的作用
附錄A Java、C#與component Pascal的對(duì)比
詞匯表
后記