《Globus Toolkit 4:Java格線服務編程》是一部關於編程技術方面的書籍。
基本介紹
圖書簡介,目錄,
圖書簡介
本書是一本格線服務編程的“初學者實踐指南”,介紹如何運用Globus Toolkit 4(簡稱GT4)進行Java服務編程。本書分為四部分,第一部分介紹格線計算理論基礎、WSRF、Web Service和GT4組件;第二部分介紹GT4 Java Web服務核心,並指導讀者如何利用這些組件進行格線服務編程;第三部分介紹GT4安全、GT4安全策略以及組件,並給出了眾多的實用實例;第四部分為套用實例FileBuy,介紹如何使用GT4組件來實現該格線系統。
目錄
第一部分格線概念
第1章格線計算3
1.1一個問題3
1.2解決方法:格線計算4
1.3書面定義5
1.4格線體系結構6
1.4.1構造層6
1.4.2連結層6
1.4.3資源層7
1.4.4匯集層7
1.4.5套用層8
1.5格線系統的例子8
1.6小結8
參考文獻8
第2章OGSA、WSRF和GT410
2.1OGSA和WSRF10
2.1.1開放格線服務體系(OGSA)10
2.1.2WebService資源框架(WSRF)11
2.2如何與GT4相關聯12
參考文獻13
第3章Web服務14
3.1一個典型的WebService調用15
3.2Web服務體系16
3.3WebService定址17
3.4實際工作過程18
3.5聚焦伺服器端19
參考文獻20
4.1WRSF:關於狀態的一切21
4.2有狀態的資源方法22
4.3WebService資源定址23
4.4資源屬性25
4.5WSRF說明書25
4.5.1WS-ResourceProperties26
4.5.2WS-ResourceLifetime26
4.5.3WS-ServiceGroup26
4.5.4WS-BaseFaults26
4.6相關的規格說明26
4.6.1WS-Notification26
4.6.2WS-Addressing27
參考文獻27
第5章GlobusToolkit428
5.1GT4組件概覽28
5.1.1安全28
5.1.2數據管理28
5.1.3執行管理29
5.1.4信息服務30
5.1.5公共運行時30
5.2GT4服務概覽31
參考文獻31
第二部分GT4JAVAWS代碼
第6章編寫第一個有狀態WebService35
6.1步驟一:用WSDL定義服務接口37
6.1.1WSDL代碼37
6.1.2WSDL的WSRF和Globus特性40
6.1.3命名空間映射41
6.2步驟二:用Java實現服務42
6.2.1QNames接口42
6.2.2實現服務42
6.3步驟三:用WSDD配置部署檔案(和JNDI)49
6.3.1WSDD部署描述符50
6.3.2JNDI部署檔案51
6.4步驟四:利用Ant創建GAR檔案52
6.4.1Ant53
6.4.2globus-build-service腳本和buildfile54
6.4.3為Mathservice創建GAR檔案54
6.5步驟五:向WebService容器部署服務55
6.6一個簡單的客戶端程式55
第7章單一資源60
7.1對實現進行分離60
7.1.1Resource、Home和Servce60
7.1.2WSDL檔案62
7.1.3Constants接口62
7.1.4Resource的實現62
7.1.5Service的實現64
7.1.6Resourcehome67
7.2對服務進行編譯、部署和測試68
第8章複合資源71
8.1WS-Resource的工廠模式71
8.2在GT4中實現WS-Resource工廠模式72
8.3factory服務76
8.4instance服務80
8.5Resource81
8.6resourcehome82
8.7編譯和部署84
8.7.1部署描述符84
8.7.2JNDI部署檔案85
8.7.3編譯和部署88
8.8一個簡單的客戶端程式88
8.9一個稍微複雜的客戶端程式91
8.9.1用於創建資源的客戶端程式91
8.9.2用於調用add操作的客戶端程式93
第9章日誌96
9.1JakartaCommonsLogging體系結構96
9.2給MathService添加日誌97
9.3查看輸出的日誌信息99
第10章資源屬性102
10.1資源屬性詳述102
10.2使用標準的WSRF連線埠類型104
10.3WS-ResourceProperties連線埠類型107
10.3.1GetResourceProperty108
10.3.2GetMultipleResourceProperties108
10.3.3SetResourceProperties108
10.3.4QueryResourceProperties108
10.4訪問資源屬性的正確方法108
10.4.1WSDL檔案109
10.4.2Java檔案110
10.4.3OperationProviders110
10.4.4部署檔案111
10.4.5編譯和部署111
10.4.6客戶端代碼112
10.5一個更加精心準備的案例116
10.5.1WSDL檔案116
10.5.2Resource的實現118
10.5.3部署檔案119
10.5.4編譯和部署120
10.5.5客戶端代碼120
10.6SimpleResourceProperty125
10.7命令行客戶端129
10.7.1wsrf-get-property129
10.7.2wsrf-get-properties130
10.7.3wsrf-update-property130
10.7.4wsrf-insert-property131
10.7.5wsrf-delete-property132
10.7.6wsrf-query132
參考文獻133
第11章生命周期管理134
11.1即時銷毀134
11.2調度銷毀139
11.2.1WSDL檔案139
11.2.2Resource的實現140
11.2.3部署141
11.2.4客戶端程式142
11.3資源被銷毀時執行回響操作144
11.4命令行客戶端程式144
11.4.1wsrf-destroy144
11.4.2wsrf-set-termination-time145
參考文獻146
第12章持久資源147
12.1駐內資源VS持久資源147
12.2PersistentResource接口148
12.2.1load方法148
12.2.2store方法149
12.2.3清理工作149
12.3為MathService添加持久資源149
12.3.1交叉調用initialize方法150
12.3.2使用FilePersistenceHelper151
12.3.3store方法153
12.3.4load方法154
12.3.5清理工作156
12.3.6測試156
12.4資源快取159
參考文獻160
第13章通知161
13.1什麼是通知161
13.2WS-通知162
13.2.1WS-Topics163
13.2.2WS-BaseNotification163
13.2.3WS-BrokeredNotification164
13.3GT4中的通知164
13.4實現資源屬性變化通知165
13.4.1WSDL文檔165
13.4.2實現資源167
13.4.3實現服務168
13.4.4部署描述器168
13.4.5編譯和發布169
13.4.6客戶端代碼170
13.5用ReflectionResourceProperty代替SimpleResourceProperty174
13.6定製通知訊息175
13.6.1WSDL文檔176
13.6.2實現資源177
13.6.3實現服務178
13.6.4編譯和發布178
13.6.5監聽通知179
13.7命令行客戶端程式180
13.7.1wsn-subscribe180
13.7.2wsn-get-current-message181
參考文獻182
第14章實現自定義的操作提供者183
14.1RemoteLogging提供者183
14.2操作提供者的WSDL文檔184
14.3操作提供者實現185
14.4把操作提供者插入MathService187
14.4.1WSDL文檔188
14.4.2實現資源189
14.4.3部署描述器190
14.5測試191
第三部分GT4安全
第15章安全基礎概念195
15.1什麼是安全通信195
15.1.1安全通信的三個基本要素195
15.1.2授權196
15.2密碼術概述197
15.2.1基於密鑰的算法197
15.2.2基於密鑰的對稱算法和非對稱算法199
15.3公鑰密碼術199
15.3.1使用公鑰密碼術的安全通信199
15.3.2公鑰體制的利弊200
15.3.3數字簽名:公鑰體制中的完整性201
15.3.4公鑰體制中的認證202
15.4認證和認證授權202
15.4.1關於信任202
15.4.2X.509證書格式203
15.4.3CA層次204
參考文獻205
第16章GSI:格線安全基礎設施206
16.1GSI簡介206
16.2傳輸層和信息層的安全策略206
16.3認證208
16.4授權209
16.4.1伺服器端授權209
16.4.2客戶端授權209
16.4.3定製授權210
16.5委託和單點登錄(代理證書)210
16.5.1問題210
16.5.2方案:代理證書211
16.5.3解決方案:委託和單點登錄211
16.5.4細節212
16.6容器、服務和資源安全214
參考文獻214
第17章撰寫一個安全的mathservice215
17.1一個安全服務215
17.1.1服務接口215
17.1.2服務實現215
17.2安全描述符216
17.3一個安全的客戶端217
17.4測試219
17.5真的開始工作了嗎221
第18章安全描述符226
18.1基本結構226
18.2公共選項226
18.3服務安全描述符227
18.4資源安全描述符228
18.5客戶端安全描述符228
18.6容器安全描述符229
18.6.1指定容器的信任狀229
18.6.2信息級安全選項230
18.6.3全局gridmap檔案231
第19章認證232
19.1服務認證選項232
19.1.1默認認證方法的設定232
19.1.2為每個方法設定認證方法233
19.1.3設定保護級別234
19.2客戶端認證選項235
19.2.1GSI安全會話235
19.2.2GSI安全訊息236
19.2.3GSI傳輸238
19.3舉例239
19.3.1案例一239
19.3.2案例二244
第20章授權247
20.1服務端授權247
20.1.1無授權247
20.1.2自主授權247
20.1.3身份授權248
20.1.4主機授權248
20.1.5SAMLCallout授權249
20.2Gridmap授權250
20.2.1Gridmap檔案250
20.2.2配置Gridmap授權251
20.2.3服務251
20.2.4測試gridmap252
20.3客戶端授權253
20.3.1無授權253
20.3.2自主授權254
20.3.3身份授權254
20.3.4主機授權255
20.4自定義授權機制255
第21章資源級安全258
21.1資源安全描述符258
21.2採用編程的方式配置資源級安全259
21.3案例260
21.3.1WSDL檔案260
21.3.2實現檔案261
21.3.3部署描述符262
21.3.4運行和配置263
21.3.5測試服務263
第22章Run-as模型和委託267
22.1run-as模型267
22.2和委託相關的第一個案例271
22.2.1在客戶端激活委託271
22.2.2在伺服器端激活委託272
22.2.3編譯和部署273
22.2.4編譯和運行客戶端273
22.3一個更加精細的和委託相關的案例275
22.3.1概述275
22.3.2PhysicsService276
22.3.3編譯和部署280
22.3.4無委託的客戶端281
22.3.5有委託的客戶端283
22.4為資源委託信任狀285
22.4.1安全描述符285
22.4.2WSDL檔案286
22.4.3實現檔案287
22.4.4編譯和部署289
22.4.5測試290
22.5委託服務292
參考文獻292
第四部分FileBuy套用系統
第23章設計295
23.1資源代理總覽295
23.2FileBuy系統概述298
23.3用例299
23.3.1用例1:發布檔案299
23.3.2用例2:查找檔案301
23.3.3用例3:購買檔案302
23.4部署體系架構304
23.5安全考慮305
23.5.1認證305
23.5.2隱私和完整性306
23.5.3授權306
23.6總論307
參考文獻308
第24章實現309
24.1設定310
24.1.1在一台機器上運行FileBuy311
24.2用例1:發布檔案312
24.2.1FilesForSale服務312
24.2.2AddFile客戶端318
24.2.3測試318
24.3用例2:查找檔案319
24.3.1檔案代理服務319
24.3.2FindFile客戶端322
24.4用例3:購買檔案324
24.4.1FileBuyer服務:Purchase操作324
24.4.2FileBroker服務:purchase操作325
24.4.3FilesForSale服務:fillOrder操作325
24.4.4檔案傳輸服務:transfer操作325
24.4.5FileBuyer服務:transfer操作326
24.4.6FileBroker服務:report操作327
24.4.7測試327
總結328
第五部分附錄
附錄AGlobusToolkit4工具包的安裝333
A.1安裝工具集前需要準備的一些軟體333
A.2工具集的安裝334
A.3對GT4進行CA安全配置338
A.4獲取HostCertificate341
A.5設定容器證書343
A.6設定用戶證書344
A.7Globus單機容器346
附錄BWSDL入門347
B.1WSDL文檔的基本結構347
B.2連線埠類型348
B.3訊息349
B.4在types標記中對請求和回響進行定義\350
B.5資源屬性的聲明351
B.6小結352
參考文獻354
附錄C命令行客戶端355
C.1常用參數355
C.2客戶端資源屬性355
C.3客戶端資源生命周期359
C.4客戶端通知360
C.5Globus管理362
C.6用法舉例363
附錄D示例365
D.1服務接口ServiceInterfaces365
D.2服務373
附錄Eglobus-build-service腳本參考376
E.1參數376
E.2速記符377
E.3GAR檔案377
E.4Build目錄378