Distributed Systems Architecture: A Middleware Approach
暫譯: 分散式系統架構:中介軟體方法

Arno Puder, Kay Römer, Frank Pilhofer

  • 出版商: Morgan Kaufmann
  • 出版日期: 2005-10-01
  • 售價: $3,350
  • 貴賓價: 9.5$3,183
  • 語言: 英文
  • 頁數: 344
  • 裝訂: Hardcover
  • ISBN: 1558606483
  • ISBN-13: 9781558606487
  • 海外代購書籍(需單獨結帳)

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

相關主題

商品描述

Description

Middleware is the bridge that connects distributed applications across different physical locations, with different hardware platforms, network technologies, operating systems, and programming languages. This book describes middleware from two different perspectives: from the viewpoint of the systems programmer and from the viewpoint of the applications programmer. It focuses on the use of open source solutions for creating middleware and the tools for developing distributed applications. The design principles presented are universal and apply to all middleware platforms, including CORBA and Web Services. The authors have created an open-source implementation of CORBA, called MICO, which is freely available on the web. MICO is one of the most successful of all open source projects and is widely used by demanding companies and institutions, and has also been adopted by many in the Linux community.

 

 Table Of Contents

    About the Authors
    Preface

    1 Introduction
             1.1 Infrastructures For Distributed Applications
             1.2 Thematic Organization
             1.3 Target Group
             1.4 Chapter Overviews
             1.5 Ancillary Materials

    2 Basic Concepts
      2.1 Distributed Systems
        2.1.1 Characterization
        2.1.2 Transparency
        2.1.3 Communication Mechanisms
        2.1.4 Client/Server Model
        2.1.5 Failure Semantics
      2.2 Object Model
        2.2.1 Characterization
        2.2.2 Terminology
      2.3 Middleware
        2.3.1 Tasks Of A Middleware
        2.3.2 The Structure Of A Middleware Platform
        2.3.3 Standardization Of A Middleware
        2.3.4 Portability And Interoperability
      2.4 Sample Application
        2.4.1 The Account Example
        2.4.2 C++ Implementation
      2.4.3 Distribution Of Sample Application
      2.5 Summary

    3 Introduction To CORBA
      3.1 Object Management Architecture
      3.2 Overview Of CORBA
        3.2.1 CORBA Object Model
        3.2.2 Interface Definition Language
        3.2.3 IDL-Language Mappings
        3.2.4 Object Request Broker
        3.2.5 Invocation And Object Adapters
        3.2.6 Interoperability
      3.3 The Creation Process Of A CORBA-Application
      3.4 Application Development In C++
        3.4.1 IDL Specification
        3.4.2 IDL Language Mapping For C++
        3.4.3 C++ Server Implementation
        3.4.4 C++ Client Implementation
      3.5 Compiling And Executing The Application
        3.5.1 Compiling The Application
        3.5.2 Executing The Application
      3.6 Application Development In Java
        3.6.1 Java Server Implementation
        3.6.2 Java Client Implementation
        3.6.3 Compiling And Executing The Java Implementation
      3.7 The Bootstrapping Problem
        3.7.1 File-Based Bootstrapping
        3.7.2 Object Urls
        3.7.3 Command Line Arguments
      3.8 Naming Service
        3.8.1 Overview
        3.8.2 Name Server Daemon
        3.8.3 Example
      3.9 Summary

    4 ORB
      4.1 ORB Architecture
      4.2 Transport Layer
      4.3 Presentation Layer
        4.3.1 Value Ranges Of Types
        4.3.2 Representation Of Type Instances
        4.3.3 Modeling Of The Presentation Layer
      4.4 Interoperability Layer
        4.4.1 Protocol For Remote Operation Invocation
        4.4.2 Structure Of Protocol Data Units (Pdus)
        4.4.3 Modeling Of Protocol Data Units
      4.5 Proxies
      4.6 Object Services
        4.6.1 Life Cycle Of An Object
        4.6.2 Object References
        4.6.3 Services On The Server Side
      4.7 Summary

    5 ORB Design
      5.1 ORB Functionality
      5.2 ORB Architectures
      5.3 Design Of MICO's ORB
        5.3.1 Invocation Adapter Interface
        5.3.2 Object Adapter Interface
        5.3.3 Invocation Table
        5.3.4 Scheduler
        5.3.5 Object Generation
        5.3.6 Bootstrapping
        5.3.7 Dynamic Extensibility
      5.4 Summary, Evaluation, And Alternatives

    6 Interoperability
      6.1 Model
      6.2 Inter-ORB Protocols
        6.2.1 Interoperable Object References (IOR)
        6.2.2 General Inter-ORB Protocol (GIOP)
        6.2.3 Environment-Specific Inter-ORB Protocols
      6.3 Design Of MICO's Interoperability
        6.3.1 Framework
        6.3.2 GIOP
      6.4 Summary, Evaluation, And Alternatives

    7 Object Adapters
      7.1 Terminology
      7.2 Functionality
        7.2.1 Object Management
        7.2.2 Servant Management
        7.2.3 Generation Of Object References
        7.2.4 Mapping Objects To Servants
        7.2.5 Execution Of Method Invocations
      7.3 Examples Of Object Adapters
        7.3.1 Portable Object Adapter
        7.3.2 POA Manager
        7.3.3 Request Processing
        7.3.4 Persistence
      7.4 Design Of MICO's POA
        7.4.1 Object Key Generation
      7.5 Persistence
      7.6 POA Mediator
      7.7 Collocation

    8 Invocation Adapters
      8.1 Functionality
        8.1.1 Representation Of IDL Data Types
        8.1.2 Type Checking
      8.2 Dynamic Invocation Interface
      8.3 Static Invocation Interface
      8.4 Design Of MICO's DII
        8.4.1 Compound Data Types
      8.5 Design Of MICO's SII
      8.6 Summary

    9 IDL Compiler
      9.1 Invocation Adapters.
        9.1.1 Dynamic Vs. Static Invocation Adapters
        9.1.2 Support Of Static Invocation Adapters
        9.1.3 MICO's Static Invocation Adapter
      9.2 Compiler Fundamentals
        9.2.1 Formal Languages And Grammars
        9.2.2 Parse Trees
        9.2.3 Structure Of A Compiler
      9.3 Abstract Syntax Tree For IDL Specifications
      9.4 MICO's IDL Compiler
        9.4.1 Class Structure
        9.4.2 Front End
        9.4.3 Back End
      9.5 Summary, Evaluation, And Alternatives

    10 CORBA And Beyond
      10.1 CORBA Components
        10.1.1 Component-Based Development
        10.1.2 The CORBA Component Model
        10.1.3 An Example Component
        10.1.4 Implementation Overview
        10.1.5 Discussion
      10.2 Web Services
        10.2.1 Overview Of XML
        10.2.2 Service Descriptions Through WSDL
        10.2.3 Server Side Mapping
        10.2.4 Interoperability Through SOAP
        10.2.5 Service Lookup Through UDDI
        10.2.6 CORBA Or Web Services?
      10.3 Middleware For Ubiquitous Computing
        10.3.1 Ubiquitous Computing In A Nutshell
        10.3.2 Middleware Challenges
        10.3.3 Case Study: Sensor Networks
        10.3.4 Conclusions
      10.4 Summary

    Appendix A MICO Installation
      A.1 Installing MICO On Unix
      A.2 Installing MICO On Windows
      A.3 Road Map

    B MICO Implementation Overview
      B.1 ORB
      B.1.1 ORB Initialization
      B.2 Interface Repository (IR)
      B.3 POA
      B.3.1 MICO Daemon.
      B.3.2 Implementation Repository (IMR)
      B.4 IDL Compiler
      B.5 Compiler And Linker Wrappers
      B.5.1 Examples

    C MICO Implementation Details
      C.1 Path Of An Operation Invocation Through An ORB
        C.1.1 Client Side
        C.1.2 Server Side
      C.2 Integration Of A New Invocation Adapter
      C.3 Integration Of A New Object Adapter
      C.4 Integration Of A New Transport Mechanism
        C.4.1 Xaddress
        C.4.2 Xaddressparser
        C.4.3 Xprofile
        C.4.4 Xprofiledecoder
        C.4.5 Xtransport
        C.4.6 Xtransportserver
        C.4.7 Dispatcher
        C.4.8 Initialization
      C.5 The Structure Of Generated Program Code

    D Sample Application
      D.1 Standalone Application In C++
      D.2 IDL Specification
      D.3 Implementation Of The Server In C++
      D.4 Implementation Of The Client In C++
      D.5 Implementation Of The Server In Java
      D.6 Implementation Of The Client In Java.

    List Of Figures
    Glossary
    Bibliography
    Index

商品描述(中文翻譯)

描述

中介軟體是連接分散式應用程式的橋樑,這些應用程式位於不同的物理位置,使用不同的硬體平台、網路技術、作業系統和程式語言。本書從兩個不同的角度描述中介軟體:系統程式設計師的觀點和應用程式程式設計師的觀點。它專注於使用開源解決方案來創建中介軟體以及開發分散式應用程式的工具。所提出的設計原則是普遍適用的,適用於所有中介軟體平台,包括 CORBA 和 Web Services。作者創建了一個名為 MICO 的 CORBA 開源實作,該實作在網路上免費提供。MICO 是所有開源專案中最成功的之一,廣泛被要求高的公司和機構使用,並且也被許多 Linux 社群成員採用。

目錄

關於作者
前言

1 介紹
1.1 分散式應用程式的基礎設施
1.2 主題組織
1.3 目標群體
1.4 章節概述
1.5 附屬材料

2 基本概念
2.1 分散式系統
2.1.1 特徵
2.1.2 透明性
2.1.3 通訊機制
2.1.4 客戶端/伺服器模型
2.1.5 故障語義
2.2 物件模型
2.2.1 特徵
2.2.2 術語
2.3 中介軟體
2.3.1 中介軟體的任務
2.3.2 中介軟體平台的結構
2.3.3 中介軟體的標準化
2.3.4 可攜性和互操作性
2.4 範例應用程式
2.4.1 帳戶範例
2.4.2 C++ 實作
2.4.3 範例應用程式的分佈
2.5 總結

3 CORBA 介紹
3.1 物件管理架構
3.2 CORBA 概述
3.2.1 CORBA 物件模型
3.2.2 介面定義語言
3.2.3 IDL 語言映射
3.2.4 物件請求代理
3.2.5 調用和物件適配器
3.2.6 互操作性
3.3 CORBA 應用程式的創建過程
3.4 C++ 的應用程式開發
3.4.1 IDL 規範
3.4.2 C++ 的 IDL 語言映射
3.4.3 C++ 伺服器實作
3.4.4 C++ 客戶端實作
3.5 編譯和執行應用程式
3.5.1 編譯應用程式
3.5.2 執行應用程式
3.6 Java 的應用程式開發
3.6.1 Java 伺服器實作
3.6.2 Java 客戶端實作
3.6.3 編譯和執行 Java 實作
3.7 啟動問題
3.7.1 基於檔案的啟動
3.7.2 物件 URL
3.7.3 命令行參數
3.8 命名服務
3.8.1 概述
3.8.2 名稱伺服器守護進程
3.8.3 範例
3.9 總結

4 ORB
4.1 ORB 架構
4.2 傳輸層
4.3 表示層
4.3.1 類型的值範圍
4.3.2 類型實例的表示
4.3.3 表示層的建模
4.4 互操作性層
4.4.1 遠程操作調用的協議
4.4.2 協議數據單位 (PDU) 的結構
4.4.3 協議數據單位的建模
4.5 代理
4.6 物件服務
4.6.1 物件的生命週期
4.6.2 物件引用
4.6.3 伺服器端的服務
4.7 總結

5 ORB 設計
5.1 ORB 功能
5.2 ORB 架構
5.3 MICO 的 ORB 設計
5.3.1 調用適配器介面
5.3.2 物件適配器介面
5.3.3 調用表
5.3.4 調度器
5.3.5 物件生成
5.3.6 啟動
5.3.7 動態擴展性
5.4 總結、評估和替代方案

6 互操作性
6.1 模型
6.2 互 ORB 協議
6.2.1 可互操作的物件引用 (IOR)
6.2.2 一般互 ORB 協議 (GIOP)
6.2.3 環境特定的互 ORB 協議
6.3 MICO 的互操作性設計
6.3.1 框架
6.3.2 GIOP
6.4 總結、評估和替代方案

7 物件適配器
7.1 術語
7.2 功能
7.2.1 物件管理
7.2.2 服務管理
7.2.3 物件引用的生成
7.2.4 將物件映射到服務者
7.2.5 方法調用的執行
7.3 物件適配器的範例
7.3.1 可攜式物件適配器
7.3.2 POA 管理器
7.3.3 請求處理
7.3.4 持久性
7.4 MICO 的 POA 設計
7.4.1 物件鍵的生成
7.5 持久性
7.6 POA 中介
7.7 協同位置

8 調用適配器
8.1 功能
8.1.1 IDL 數據類型的表示
8.1.2 類型檢查
8.2 動態調用介面
8.3 靜態調用介面
8.4 MICO 的 DII 設計
8.4.1 複合數據類型
8.5 MICO 的 SII 設計
8.6 總結

9 IDL 編譯器
9.1 調用適配器
9.1.1 動態與靜態調用適配器
9.1.2 靜態調用適配器的支持
9.1.3 MICO 的靜態調用適配器
9.2 編譯器基礎
9.2.1 正式語言和文法
9.2.2 解析樹
9.2.3 編譯器的結構
9.3 IDL 規範的抽象語法樹
9.4 MICO 的 IDL 編譯器
9.4.1 類別結構
9.4.2 前端
9.4.3 後端
9.5 總結、評估和替代方案

10 CORBA 及其後續
10.1 CORBA 組件
10.1.1 基於組件的開發
10.1.2 CORBA 組件模型
10.1.3 一個範例組件
10.1.4 實作概述
10.1.5 討論
10.2 Web Services
10.2.1 XML 概述
10.2.2 通過 WSDL 的服務描述
10.2.3 伺服器端映射
10.2.4 通過 SOAP 的互操作性
10.2.5 通過 UDDI 的服務查找
10.2.6 CORBA 還是 Web Services?
10.3 無所不在計算的中介軟體
10.3.1 無所不在計算的概述
10.3.2 中介軟體挑戰
10.3.3 案例研究:感測器網路
10.3.4 結論
10.4 總結

附錄 A MICO 安裝
A.1 在 Unix 上安裝 MICO
A.2 在 Windows 上安裝 MICO
A.3 路線圖

附錄 B MICO 實作概述
B.1 ORB
B.1.1 ORB 初始化
B.2 介面庫 (IR)
B.3 POA
B.3.1 MICO 守護進程
B.3.2 實作庫 (IMR)
B.4 IDL 編譯器
B.5 編譯器和連結器包裝器
B.5.1 範例

附錄 C MICO 實作細節
C.1 通過 ORB 的操作調用路徑
C.1.1 客戶端
C.1.2 伺服器
C.2 整合新的調用適配器
C.3 整合新的物件適配器
C.4 整合新的傳輸機制
C.4.1 Xaddress
C.4.2 Xaddressparser
C.4.3 Xprofile
C.4.4 Xprofiledecoder
C.4.5 Xtransport
C.4.6 Xtransportserver
C.4.7 Dispatcher
C.4.8 初始化
C.5 生成的程式碼結構

附錄 D 範例應用程式