本書幾位作者均是業(yè)界專家和領(lǐng)袖,首席作者ThomasErl更是SOA領(lǐng)域的領(lǐng)軍人物,撰寫過多本關(guān)于SOA的圖書,廣受歡迎。本書介紹了使用Java技術(shù)實(shí)現(xiàn)SOA的方法,對于想要學(xué)習(xí)SOA的Java程序員,以及想要使用Java實(shí)現(xiàn)設(shè)計的SOA從業(yè)者,均能提供幫助。首先,本書對全書內(nèi)容進(jìn)行概覽,并為全書使用的案例提供背景信息。然后,使用四部分講解內(nèi)容。**部分介紹了基礎(chǔ)知識,有助于理解后續(xù)的內(nèi)容。第二部分介紹了面向服務(wù)原則,以及如何使用Java技術(shù)實(shí)現(xiàn)這些原則。第三部分討論了如何設(shè)計和實(shí)現(xiàn)完整的基于Java的SOA解決方案。第四部分是附錄,對背景案例進(jìn)行了總結(jié),并列舉了一些對SOA從業(yè)人員很有幫助的信息。
序
作者及貢獻(xiàn)者簡介
第1章 概述 .
1.1 關(guān)于本書 .
1.1.1 本書目標(biāo)
1.1.2 本書面向的讀者 .
1.1.3 本書特征
1.2 必要閱讀 .
1.3 本書結(jié)構(gòu) .
1.4 本書使用原則和模式的方式
1.5 符號和圖形 .
第2章 案例分析示例
2.1 案例分析示例的使用
2.1.1 風(fēng)格特點(diǎn) .
2.1.2 案例與抽象內(nèi)容的關(guān)系 .
2.1.3 代碼示例
2.2 案例分析背景:NovoBank
2.2.1 技術(shù)基礎(chǔ)設(shè)施 .
2.2.2 自動化解決方案
2.2.3 業(yè)務(wù)阻礙和目標(biāo)
2.2.4 未來IT路線圖
2.3 案例分析背景:SmartCredit公司 .
2.3.1 技術(shù)基礎(chǔ)設(shè)施 .
2.3.2 自動化解決方案 .
2.3.3 業(yè)務(wù)目標(biāo)
2.3.4 未來的IT路線圖 .
**部分 基 礎(chǔ)
第3章 SOA基本概念 .
3.1 基本術(shù)語和概念 .
3.1.1 面向服務(wù)計算 .
3.1.2 面向服務(wù)
3.1.3 面向服務(wù)架構(gòu) .
3.1.4 SOA宣言
3.1.5 服務(wù) .
3.1.6 云計算
3.1.7 IT資源
3.1.8 服務(wù)模型
3.1.9 服務(wù)庫存
3.1.10 服務(wù)組合
3.1.11 服務(wù)候選.
3.1.12 服務(wù)契約
3.1.13 服務(wù)相關(guān)的粒度 .
3.1.14 服務(wù)概要
3.1.15 SOA設(shè)計模式
3.2 延伸閱讀 .
第4章 基本的Java分布式技術(shù) .
4.1 Java分布式計算的基礎(chǔ)知識 .
4.1.1 Java SE的架構(gòu) .
4.1.2 Java EE的架構(gòu) .
4.1.3 應(yīng)用程序的打包和部署 .
4.1.4 Java EE架構(gòu)的各層 .
4.2 Java分布式技術(shù)和API
4.2.1 Java SE API .
4.2.2 Java EE API
4.3 XML標(biāo)準(zhǔn)和Java API
4.3.1 XML .
4.3.2 XML模式定義 .
4.3.3 XSLT
4.3.4 JAXP
4.3.5 JAXB
4.4 使用Java組件構(gòu)建服務(wù)
4.4.1 組件作為服務(wù)
4.4.2 應(yīng)用程序協(xié)議
4.4.3 服務(wù)契約
4.4.4 組件作為服務(wù)和面向服務(wù) .
4.5 Java供應(yīng)商平臺
4.5.1 GlassFish企業(yè)服務(wù)器
4.5.2 IBM WebSphere Application Server
4.5.3 IBM WebSphere Application Server Community Edition
4.5.4 Oracle WebLogic Server .
第5章 基于Web的服務(wù)技術(shù)
5.1 基于SOAP的Web服務(wù) .
5.1.1 Web服務(wù)標(biāo)準(zhǔn)的擴(kuò)展(WS-*) .
5.1.2 常用Web服務(wù)中間件 .
5.2 REST服務(wù) .
5.2.1 HTTP響應(yīng)代碼
5.2.2 資源和地址 .
5.2.3 HTTP方法
5.2.4 資源表示
5.2.5 accept頭部
第6章 使用Java構(gòu)建基于Web的服務(wù) .
6.1 JAX-WS
6.1.1 SAAJ
6.1.2 處理程序
6.1.3 Web服務(wù)引擎和工具包 .
6.1.4 JAXR
6.2 WS-*標(biāo)準(zhǔn)的Java實(shí)現(xiàn)
6.2.1 高級Web服務(wù)標(biāo)準(zhǔn)和框架
6.2.2 服務(wù)組件架構(gòu)
6.2.3 Spring-WS
6.3 JAX-RS .
6.3.1 實(shí)現(xiàn)JAX-RS .
6.3.2 實(shí)現(xiàn)REST服務(wù)
6.3.3 可擴(kuò)展性
6.3.4 安全性
6.3.5 REST服務(wù)支持
第二部分 服 務(wù)
第7章 Java基于Web服務(wù)中的面向服務(wù)原則
7.1 服務(wù)可重用性 .
7.1.1 無關(guān)功能性上下文
7.1.2 高度泛型的服務(wù)邏輯
7.1.3 泛型可擴(kuò)展服務(wù)契約
7.1.4 并發(fā)訪問服務(wù)邏輯 .
7.2 標(biāo)準(zhǔn)服務(wù)契約 .
7.2.1 自頂向下和自底向上
7.2.2 在Java和WSDL之間映射 .
7.2.3 包裝文檔/字面值契約
7.2.4 隱式和顯式頭部 .
7.2.5 REST中的數(shù)據(jù)映射 .
7.2.6 使用行業(yè)標(biāo)準(zhǔn) .
7.3 服務(wù)松散耦合 .
7.3.1 分離契約和實(shí)現(xiàn) .
7.3.2 獨(dú)立功能性上下文 .
7.3.3 服務(wù)消費(fèi)者耦合 .
7.4 服務(wù)抽象 .
7.4.1 抽象技術(shù)細(xì)節(jié) .
7.4.2 隱藏服務(wù)細(xì)節(jié) .
7.4.3 文檔約束 .
7.5 服務(wù)可組合性 .
7.5.1 運(yùn)行時環(huán)境的效率 .
7.5.2 服務(wù)契約的靈活性 .
7.5.3 基于標(biāo)準(zhǔn)的運(yùn)行時 .
7.6 服務(wù)自治 .
7.6.1 定義明確的功能邊界 .
7.6.2 控制運(yùn)行時環(huán)境 .
7.6.3 高并發(fā)性 .
7.7 服務(wù)無狀態(tài)性 .
7.7.1 編制基礎(chǔ)設(shè)施
7.7.2 會話狀態(tài) .
7.7.3 存儲狀態(tài) .
7.8 服務(wù)可發(fā)現(xiàn)性 .
7.8.1 設(shè)計時的可發(fā)現(xiàn)性 .
7.8.2 運(yùn)行時的可發(fā)現(xiàn)性 .
7.8.3 服務(wù)注冊中心 .
第8章 使用Java構(gòu)建實(shí)用服務(wù) .
8.1 Java實(shí)用服務(wù)的原理
8.1.1 架構(gòu)考慮 .
8.1.2 實(shí)用服務(wù)分類 .
8.2 實(shí)用服務(wù)的設(shè)計和實(shí)現(xiàn)
8.2.1 實(shí)用服務(wù)的設(shè)計 .
8.2.2 實(shí)用服務(wù)和Java版本
8.2.3 實(shí)用服務(wù)和開源框架 .
8.2.4 將實(shí)用服務(wù)作為基于Web的服務(wù)
8.2.5 測試考慮
8.2.6 打包考慮
8.3 實(shí)用服務(wù)的類型
8.3.1 公共實(shí)用服務(wù) .
8.3.2 資源實(shí)體服務(wù) .
8.3.3 微實(shí)用服務(wù) .
8.3.4 包裝器實(shí)用服務(wù) .
第9章 使用Java構(gòu)建實(shí)體服務(wù) .
9.1 Java實(shí)體服務(wù)的內(nèi)部原理 .
9.1.1 架構(gòu)考慮 .
9.1.2 域?qū)嶓w與消息實(shí)體 .
9.1.3 數(shù)據(jù)聚合 .
9.1.4 數(shù)據(jù)訪問模式 .
9.1.5 修改通知 .
9.2 Java實(shí)體服務(wù)的設(shè)計和實(shí)現(xiàn) .
9.2.1 實(shí)體服務(wù)設(shè)計 .
9.2.2 實(shí)體服務(wù)實(shí)現(xiàn) .
9.2.3 將實(shí)體服務(wù)作為基于Web的服務(wù)
9.2.4 使用SOAP的實(shí)體Web服務(wù) .
9.2.5 REST實(shí)體服務(wù) .
9.2.6 測試考慮
9.2.7 Java打包考慮
第三部分 服務(wù)組合與基礎(chǔ)設(shè)施
第10章 使用Java構(gòu)建任務(wù)服務(wù) .
10.1 任務(wù)服務(wù)的內(nèi)部原理
10.2 構(gòu)建任務(wù)服務(wù) .
10.2.1 實(shí)現(xiàn)考慮 .
10.2.2 基于Web的任務(wù)服務(wù)
10.2.3 測試考慮 .
10.2.4 打包考慮 .
第11章 使用Java進(jìn)行服務(wù)組合 .
11.1 服務(wù)組合的內(nèi)部原理
11.1.1 服務(wù)組合角色 .
11.1.2 組合與MEP .
11.1.3 同步和異步調(diào)用 .
11.1.4 服務(wù)水平協(xié)議 .
11.2 Java服務(wù)組合的設(shè)計和實(shí)現(xiàn) .
11.2.1 組合邏輯:編碼和編制
11.2.2 REST服務(wù)組合考慮
11.2.3 組合成員端點(diǎn) .
11.2.4 錯誤處理.
11.2.5 模式類型重用 .
11.2.6 基于Web的服務(wù)與Java組件
11.2.7 打包、測試和部署被組合服務(wù) .
11.3 服務(wù)和服務(wù)組合性能指導(dǎo)原則 .
11.3.1 測量性能.
11.3.2 測試性能.
11.3.3 緩存 .
11.3.4 使用狀態(tài)擴(kuò)展服務(wù) .
11.3.5 處理失敗.
11.3.6 解析和編組 .
第12章 使用ESB作為SOA基礎(chǔ)設(shè)施
12.1 基本的傳統(tǒng)消息框架 .
12.2 基本的服務(wù)消息框架 .
12.2.1 不使用ESB時的基本服務(wù)消息處理 .
12.2.2 使用ESB時的基本服務(wù)消息處理
12.3 與SOA相關(guān)的常用ESB特性 .
12.3.1 服務(wù)查找和調(diào)用 .
12.3.2 服務(wù)處理 .
12.3.3 服務(wù)組合支持 .
12.3.4 REST API管理支持
第四部分 附 錄
附錄A 案例分析結(jié)論
附錄B 面向服務(wù)原則參考
附錄C SOA設(shè)計模式參考
附錄D 帶注釋的SOA宣言