為部署而設計
規劃 COM+ 應用程式的範圍是您應該儘早考慮的重要設計工作。 打算使用 COM+ 執行的分散式系統應該設計成使用最少的個別組態進行部署,且最有效率地使用每個程式。 您也可以使用一些技術,讓您在部署 COM+ 應用程式時達到最佳效能。 (如需詳細資訊,請參閱 部署以提升通訊速度。)
使用元件服務系統管理工具檢視時,每個 COM+ 應用程式會顯示為一個資料夾,其中的元件集會以邏輯方式分組。 雖然您可以在 COM+ 應用程式之間行動個別元件 元件 資料夾(換句話說,從一個應用程式到另一個應用程式),但在 COM+ 應用層級設定的數個服務可能會有所不同,例如安全性。 這些服務設定可能會影響可移植性。
COM+ 伺服器應用程式定義進程界限
當您建立新的 COM+ 伺服器應用程式時,您實際上會定義新的進程界限。 (請注意連結庫應用程式的例外狀況,如下所述。此程式會成為 COM+ 應用程式中所含元件的控制應用程式實例。 每當程式第一次呼叫 COM+ 應用程式時,這些元件都會在 COM+ 可執行程式的新實例中執行進程。 這表示指定 COM+ 應用程式 元件 資料夾中的所有元件都會在做為 DCOM 伺服器的單一進程空間中執行。 在 COM+ 應用程式中,COM+ 會管理記憶體、與分散式交易協調器 (DTC)、Just-In-Time 元件實例啟用、損毀偵測和復原,以及角色型安全性的協調。
在 COM+ 應用程式邊界之間進行呼叫
由於每個 COM+ 應用程式通常會實作為個別的可執行檔,因此當某個 COM+ 應用程式中的元件呼叫另一個 COM+ 應用程式中的元件時,將分散式應用程式分割成多個 COM+ 應用程式會導致跨進程的 COM 呼叫。 這會導致效能降低,因為在跨進程中傳遞 COM 參數需要額外的負擔。
注意
因承受此效能損失並無本質上的問題;您只需要知道它會發生。 根據必要的回應時間、同時要求業務服務的用戶數以及每個元件對每個 COM+ 應用程式增加的啟動負擔,您可能會發現因跨應用程式呼叫導致的效能影響是可以接受的。
排除跨 COM+ 應用程式邊界呼叫效能懲罰的一個可能方案是將指定的 COM+ 應用程式標示為程式庫應用程式。 COM+ 程式庫應用程式會在建立它的用戶端程序中執行。 當然,任何效能提升都不是沒有代價的。 在此情況下,取捨涉及 COM+ 庫應用程式的限制。 雖然連結庫應用程式可以使用角色型安全性,但它不支援佇列元件或遠端訪問。
相關主題