共用方式為


優化 COM+ 商業規則層與表示層之間的互動

一般而言,分散式應用程式各層之間的延遲差異很大。 表示層與商業規則層之間的呼叫通常比商務層和數據層之間的呼叫慢一個大小。 因此,呼叫商業規則層時,保留狀態的成本會更高。

下列主題討論如何在簡報和商業規則層之間傳遞數據:

傳遞參數

若要在表示層與商業規則層之間傳遞一組指定的資訊,您可能會有單一數據列、多個數據列或單一數據列的組合(例如標頭)和多個詳細數據列的組合。 在層之間傳遞這項資訊最有效率的方式,是透過單一方法呼叫。 這個單一呼叫會管理要傳遞的整個資訊集。 除非您選擇從表示層控制交易,否則這是必要專案(並在函式中讓表示層中的所有交易處理都相同)。 Microsoft 不建議從表示層執行交易,因為此層與商業規則層之間的呼叫通常是多層式應用程式中任何呼叫速度最慢的一次。

建立這類方法的其中一種方法是將單一資訊列當做參數傳遞,並以 ADO 記錄集的形式傳遞多個數據列。 記錄集是 Microsoft ADO 資料存取方法的核心,而使用 ADO 記錄集可讓您在一個步驟中傳遞與單一交易相關的所有資訊。

數據傳遞選項

傳遞數據時還有其他選項需要考慮。 其中包括使用參數清單和 ADO 記錄集(如上所述)、ADO 記錄集、XML 編碼字串或結構的陣列。 本節將討論上述每個選項。

下表顯示使用四種不同自變數傳遞可能性時,需要特別小心的區域。 “X” 代表需要了解取捨並權衡每個專案需求的區域。 請嘗試不要根據每個元件做出自變數傳遞決策。 在整個專案中,一致的程序設計模型的優點遠遠大於在所有極端情況下,以每個方法或每個元件為基礎優化的任何優點。 數據行會在數據表後面的清單中描述。

  並行 WAN 部署 簡化
Entry
記錄集
X
X
X
XML
X
X
X
陣列
X
X
X

四個數據行會定義使用該選項傳遞參數時要注意的區域。

  • 並行數據行 代表程序代碼的需求,或提供管理更新作業鎖定條件的機制。 由於執行儲存的方法可以代表更新,因此可能會發生並行問題。 兩種類型的鎖定是普遍樂觀和悲觀。 悲觀鎖定可防止使用者取得更新的數據,而其他使用者有可能執行更新。 開放式鎖定支援更多使用者,方法是交易任何兩位用戶同時更新同一份檔的可能性。 開放式鎖定會呼叫檢查,以查看儲存的數據與存取數據複本以進行修改時的數據相符。 ADO 記錄集提供開放式鎖定的自動支援。 涉及單一數據列參數清單的更新案例無法提供足夠的並行檢查支援。 XML 發生這個相同的問題,因為 XML 資料中沒有鎖定感知。
  • WAN 資料行 代表廣域網 (WAN) 可能會發生傳輸爭用的情況。 當 WAN 沒有足夠的容量來管理任何一次行動的所有資料時,應用程式使用者會遇到回應時間延遲。 為了支持開放式並行存取,中斷連線的 ADO 記錄集會將兩份數據複本從伺服器傳遞至用戶端。 用戶端會使用第二個復本來判斷在認可變更時要傳回的最小更新數據列集。 雖然這會減少從表示層到數據的流量,但第二個復本的額外負載可能會相當重要。 使用記錄集作為傳遞所有資訊的唯一方法,因此會導致所需的層之間傳遞兩倍的數據,除非更新數據列集是從表示層傳回數據層時。
  • [部署] 數據行 代表當網路呼叫端和元件端需要特殊技術時,與數據傳遞相關的問題。 例如,使用 ADO 記錄集需要在用戶端和伺服器上同時存在 ADO 元件。 XML 剖析器也必須同時存在於兩端,以避免必須將剖析器程式代碼撰寫到您的應用程式中。
  • [複雜度] 數據行 會針對這四個選項指出,而且是您開發組織中可能已建立的喜好設定或先前的程序設計模型體驗。 有些人發現傳遞的參數很麻煩,覺得它會增加太多複雜度給程序設計問題。 追蹤您要處理的參數,並在一個編輯視窗中顯示它們,可能會建立一些開發人員難以管理的後勤複雜度。

參數傳遞方法也可以有取捨,例如:

  • 參數可以涉及管理多個自變數和自變數類型,以及必須決定何時適合將記錄集設為參數。
  • ADO 記錄集可以將方法參數中的階層式關聯性縮減為一或兩個自變數。 這可大幅簡化程序設計模型,並支援稍後新增數據行,但也會隱藏資訊階層。 將資訊填入 ADO 記錄集,稍後擷取它牽涉到知道每個數據行的名稱或知道數據行順序。 這種情況可能會為專案上的其他元件或應用程式開發人員增加複雜性。
  • XML 是上述隱藏階層複雜度的不同微調。 程序設計人員必須瞭解使用 XML 剖析器來取得資訊的存取權,而且通常必須知道數據集中每個項目的名稱,才能找到數據集。
  • 結構的數位引進了對呼叫端和元件部分所傳遞資訊的一般瞭解需求。 這需要兩個系統元素之間共用的對應,可能會導致處理不同版本的元件時發生困難。 雖然方法簽章可能不會變更,但預期信息的變更可能會使呼叫程式不相容。

由於與所有四個參數傳遞方法相關聯的複雜度問題非常類似,因此可以討論是否有與任何一個選取專案相關聯的大幅簡化機會。

使用處理站模式傳遞數據

其中一個重要的設計點是易於使用。 您決定使用 ADO 記錄集將結構化詳細數據集傳回表示層的那一刻,您就引進了複雜度問題。 表示層程式設計人員必須瞭解這些記錄集的結構。 當您需要多個詳細數據才能在記錄集中傳遞一組數據時,可能會發生更大的複雜性問題。 為了簡化事項,每當您想要要求將數據傳入結構化 ADO 記錄集時,您應該考慮建立記錄集處理站方法。

記錄集處理站應該會將空白但可寫入的中斷連線記錄集傳回給呼叫端。 此記錄集應該已設定適當的字段(名稱和數據類型),如此呼叫用戶端就不需要知道如何製造記錄集。 這種方法通常稱為 處理站模式 ,而且是一種常見的解決方案模式,可解決建立特定複雜度物件的需求,而不需要知道建立對象的細微差別。

簡單的設計選擇,例如,在傳遞該資訊的每個方法中,為相同的數據片段選擇相同的參數名稱,可讓您輕鬆地查看方法,並了解預期的內容。 確定傳遞類似自變數的順序在整個方法系列中一致,可提供強制 consis 帳篷模式 l 的舒適點。

優化 COM+ 商業規則層與數據層之間的互動