Distributed Systems Architecture: A Middleware Approach

Arno Puder, Kay Römer, Frank Pilhofer

  • 出版商: Morgan Kaufmann
  • 出版日期: 2005-10-01
  • 售價: $3,100
  • 貴賓價: 9.5$2,945
  • 語言: 英文
  • 頁數: 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服務。作者們創建了一個名為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++客戶端實現