Transactional COM+: Building Scalable Applications
暫譯: 可擴展應用程式的事務性 COM+ 建構

Tim Ewald

  • 出版商: Addison Wesley
  • 出版日期: 2001-03-16
  • 售價: $1,398
  • 貴賓價: 9.5$1,328
  • 語言: 英文
  • 頁數: 464
  • 裝訂: Paperback
  • ISBN: 0201615940
  • ISBN-13: 9780201615944
  • 相關分類: JVM 語言
  • 立即出貨(限量) (庫存=4)

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

相關主題

商品描述


Description

Transactional COM+ explains how COM+ works and shows students how to use the technology to its fullest potential as a framework for developing scalable applications. It examines the theory behind COM+, why traditional object-oriented models are inappropriate for scalable systems, and the importance of transactions. This book goes beyond the rationale behind the technology and the details of its implementation to present practical, concrete guidelines for using COM+ to build applications that scale.

Back to Top


Table Of Contents

1. Scalability.
Scalability Basics.
Identity.
Identity in COM.
Sharing Identities.
Implementing Named Objects.
The Problem with Sharing COM Objects.

Identity Revisited.
Implementing Named Objects with Key-Based Logical Identity.
Implementing Named Objects on Top of a Database.
What Has Been Gained?

The Object-per-Client Model.
Transactions.
Enter Transactions.
Clients and TMs and RMs, Oh My!
Local Transactions and Distributed Transactions.
The Transactions and Scalability Paradox.

Integrating Objects and Transactions.
Using Transactions Explicitly.
Using Transactions Implicitly.
Applying Transactions.
Thinking about Roundtrips.

A Complex Problem.
A Possible Solution.
A Much Better Solution.
Thinking about Roundtrips Again.
Processor Objects.

Summary.

2. Atoms.
The Linker Switch Story.
An Experiment.
The Windows Process Loader.
How COM+ Works.

From Consoles to Contexts.
Cross-Context Calls.

Contexts as Objects.
Object Context Interfaces.
Using Object Context.

Where Do Contexts Come From?
The Catalog.
Applications.
Libraries and Servers.
Why Library Applications?
Configured Classes.
Custom Attributes.
Changing the Contents of the Catalog.

Context Flow.
Causality.
How Causality Works.

Causalities as Objects.
Call Context Interfaces.
Using Call Context.

Summary.

3. Mechanics.
Context Relativity.
The Problem.
Marshaling Interface Pointers.
The Global Interface Table.
Context Relativity in Day-to-Day Life.

The Cost of Contexts.
A Context for Every Object.
The Cost of Contexts in Time.
The Cost of Contexts in Space.
Are Contexts Worth the Price?

Limiting Context.
Nonconfigured Classes.
Raw-Configured Classes.
Context-Aware Code Revisited.
A Different Way of Looking at the World.
Subtle Complexities.
Custom Marshaling.

Some Other Observations.
Summary.

4. Threads.
Apartments.
Apartment Types.
Where Do Apartments Come From?
Threading Models.
Default Contexts.
Remote Object Creation.

Cross-Apartment Calls.
STA Complexities.
Cross-Apartment Call Overhead.

Apartment Guidelines.
Raw-Configured Classes Revisited.

Activities.
Enter Activities.
Where Do Activities Come From?
Detecting the Presence of an Activity.

Allocating STA Objects to Apartments.
Serializing Calls.
Activity Reentrancy.
Activity Deadlock.

Activity Guidelines.
Summary.

5. Objects.
Object Pooling.
Enabling Object Pooling.
Reusing Objects.
Controlling the Size of a Class's Pool.

Implementing Pooled Classes.
Accessing Context.
Managing Resources.
The GIT Trick (and Why It Doesn't Work).
An Exception to the Rules.

Object Pooling Guidelines.
Just-in-Time Activation.
Enabling JITA.
How JITA Works.
Flipping the Done Bit.
The AutoComplete Attribute.
JITA Notifications.

JITA Guidelines.
Lies, Damn Lies, and Statistics.
Summary.

6. Transactions.
Local Transactions.
OLE DB.
Higher Level APIs.

Distributed Transactions.
Enter the Distributed Transaction Coordinator.
Starting a Distributed Transaction.
Enlisting a Connection.
The Two-Phase Commit Protocol.

Distributed Transaction Complexities.
Distributed Transaction Propagation.
Connection Management.
A Race Condition.

Declarative Transactions.
Transactional Objects.
Enter Transaction Streams.
Where Do Transaction Streams Come From?
Detecting the Presence of a Transaction Stream.
Creating and Propagating a Distributed Transaction.
Autoenlisting Connections.
Controlling a Declarative Transaction's Outcome.
Flipping the Happy Bit.
The Four Possible States of a Transactional Object.
Root Objects and HRESULTs.
Transaction Stream Caveats.

Transaction Guidelines.
Summary.

7. Isolation.
Correctness versus Performance.
Five Degrees of Isolation.
Implementing Isolation Using Locks.
Implementing Isolation Using Versions.
Choosing an Isolation Level.
Isolation-Level Guidelines.

Specifying Isolation Levels.
Isolation Levels and OLE DB.
Isolation Levels and the DTC.
Isolation Levels and COM+.
Bring Your Own Transaction.
ISOFLAGs.

Deadlocks.
Avoiding Deadlocks.
Detecting Deadlocks.
Timeouts and the DTC.
Timeouts and COM+.
Timeouts and OLE DB.

Application-Level Isolation.
Optimistic Application-Level Locking.
Pessimistic Application-Level Locking.

Summary.

8. Protocols.
HTTP.
HTTP Messages.
HTTP Connection Management.

Internet Information Server.
Mapping Requests to Files.
Mapping Requests to Processes.
Mapping Requests to Contexts and Apartments.
Processing Requests in Parallel.

Active Server Pages.
Processing ASP Requests.
Transactional Pages.
Transaction Outcome Notifications.
Server.Execute and Server.Transfer.
ASP Pages and Raw-Configured Classes.
ASP Pages and Object Context.

HTTP + XML = RPC.
SOAP Messages.
SOAP and HTTP.
Applying SOAP.

Message Queuing.
Transactional Messaging.
Applying Message Queuing.

Summary.

9. Design.
Machines, Processes, and Protocols.
Machine Architecture.
Process Architecture.
Protocols.

Processors and Helpers.
A Simple Logical Model.
A Simple Physical Model.
Accessing Processors via HTTP.

Transactions and Data Access.
Accessing Data Efficiently.

Middle-Tier State.
Some Final Advice.

Appendix A: Toward .NET.
Appendix B: Building a Better Connection Pool.
An Example.
IObjectConstruct.
IObjectControl.
IConn.
Using a Pooled Connection.
Source Code.


Appendix C: Debugging.
Appendix D: Catalog Attributes and Component Services Explorer Property Pages.
Application Property Pages.
Class Property Pages.
Interface Property Pages.
Method Property Pages.

Rules.
Summary.
Index. 0201615940T04062001


Back to Top

商品描述(中文翻譯)

描述
Transactional COM+》解釋了 COM+ 的運作方式,並展示了學生如何充分利用這項技術作為開發可擴展應用程式的框架。它探討了 COM+ 背後的理論,為什麼傳統的物件導向模型不適合可擴展系統,以及交易的重要性。本書超越了技術背後的理由和實現細節,提供了實用且具體的指導方針,以使用 COM+ 建立可擴展的應用程式。

目錄
1. 可擴展性
可擴展性基礎
身分
COM 中的身分
共享身分
實作命名物件
共享 COM 物件的問題
重新檢視身分
使用基於鍵的邏輯身分實作命名物件
在資料庫上實作命名物件
獲得了什麼?
每客戶端一個物件模型
交易
進入交易
客戶端、TM 和 RM,哦我的!
本地交易和分散式交易
交易與可擴展性的悖論
整合物件與交易
明確使用交易
隱式使用交易
應用交易
考慮往返
一個複雜的問題
可能的解決方案
更好的解決方案
再次考慮往返
處理器物件
總結

2. 原子
連結器開關故事
一個實驗
Windows 程序加載器
COM+ 的運作方式
從控制台到上下文
跨上下文呼叫
上下文作為物件
物件上下文介面
使用物件上下文
上下文的來源
目錄
應用程式
函式庫和伺服器
為什麼是函式庫應用程式?
配置類別
自訂屬性
更改目錄內容
上下文流
因果關係
因果關係的運作方式
因果關係作為物件
呼叫上下文介面
使用呼叫上下文
總結

3. 機制
上下文相對性
問題
介面指標的編組
全域介面表
日常生活中的上下文相對性
上下文的成本
每個物件一個上下文
上下文的時間成本
上下文的空間成本
上下文值得這個價格嗎?
限制上下文
非配置類別
原始配置類別
上下文感知代碼再探討
另一種看待世界的方式
微妙的複雜性
自訂編組
其他觀察
總結

4. 執行緒
公寓
公寓類型
公寓的來源
執行緒模型
預設上下文
遠端物件創建
跨公寓呼叫
STA 複雜性
跨公寓呼叫的開銷
公寓指導方針
原始配置類別再探討
活動
進入活動
活動的來源
偵測活動的存在
將 STA 物件分配到公寓
序列化呼叫
活動重入性
活動死鎖
活動指導方針
總結

5. 物件
物件池
啟用物件池
重用物件
控制類別池的大小
實作池化類別
存取上下文
管理資源
GIT 技巧(以及為什麼它不奏效)
規則的例外
物件池指導方針
即時啟用
啟用 JITA
JITA 的運作方式
翻轉完成位元
自動完成屬性
JITA 通知
JITA 指導方針
謊言、該死的謊言和統計數據
總結

6. 交易
本地交易
OLE DB
高階 API
分散式交易
進入分散式交易協調者
開始分散式交易
註冊連接
二階段提交協議
分散式交易的複雜性
分散式交易的傳播
連接管理
競爭條件
宣告式交易
交易物件
進入交易流
交易流的來源
偵測交易流的存在
創建和傳播分散式交易
自動註冊連接
控制宣告式交易的結果
翻轉快樂位元
交易物件的四種可能狀態
根物件和 HRESULT
交易流的注意事項
交易指導方針
總結

7. 隔離
正確性與性能
五種隔離程度
使用鎖實作隔離
使用版本實作隔離
選擇隔離級別
隔離級別指導方針
指定隔離級別
隔離級別與 OLE DB
隔離級別與 DTC
隔離級別與 COM+
自行攜帶交易
ISOFLAGs
死鎖
避免死鎖
偵測死鎖
超時與 DTC
超時與 COM+
超時與 OLE DB
應用程式級別的隔離
樂觀的應用程式級別鎖定
悲觀的應用程式級別鎖定
總結

8. 協議
HTTP
HTTP 訊息
HTTP 連接管理
網際網路資訊伺服器
將請求映射到檔案
將請求映射到進程
將請求映射到上下文和公寓
平行處理請求
活動伺服器頁面
處理 ASP 請求
交易頁面
交易結果通知
Server.Execute 和 Server.Transfer
ASP 頁面與原始配置類別
ASP 頁面與物件上下文
HTTP + XML = RPC
SOAP 訊息
SOAP 與 HTTP
應用 SOAP
訊息佇列
交易訊息
應用訊息佇列
總結

9. 設計
機器、進程和協議
機器架構
進程架構
協議
處理器和輔助程式
簡單的邏輯模型
簡單的物理模型
通過 HTTP 存取處理器
交易與資料存取
高效存取資料
中間層狀態
一些最終建議

附錄 A: 朝向 .NET
附錄 B: 建立更好的連接池
一個範例
IObjectConstruct
IObjectControl
IConn
使用池化連接
原始碼

附錄 C: 偵錯
附錄 D: 目錄屬性和元件服務瀏覽器屬性頁
應用程式屬性頁
類別屬性頁
介面屬性頁
方法屬性頁

規則
總結
索引