WCF LOB 配接器 SDK 的架構概觀
WCF LOB 配接器 SDK 建置在 WCF 通道模型之上,並提供設計階段和執行時間延伸模組,讓配接器開發人員建立具有大型和動態中繼資料的企業營運系統配接器。 使用 WCF LOB 配接器 SDK 建立的配接器會以自訂 WCF 系結的形式呈現給取用者。 下圖顯示 WCF LOB 配接器 SDK 的內部架構和主要元件。
處理常式
處理常式 會定義配接器支援的訊息交換模式。
下表摘要說明可用的處理常式類型、其函式,以及 WCF 通道 (對應) 。
處理常式類型 | 函式 | 對應至 WCF 通道 |
---|---|---|
Microsoft.ServiceModel.Channels.Common.IOutboundHandler |
支援單向傳送或要求/回應模式。 | IOutputChannel, IRequestChannel |
Microsoft.ServiceModel.Channels.Common.IAsyncOutboundHandler |
支援非同步單向傳送或要求/回應模式。 | IOutputChannel, IRequestChannel |
Microsoft.ServiceModel.Channels.Common.IInboundHandler |
支援單向接收或回復模式。 | IInputChannel, IReplyChannel |
Microsoft.ServiceModel.Channels.Common.IAsyncInboundHandler |
支援單向接收或回復模式方法的非同步變體。 | IInputChannel IReplyChannel |
Microsoft.ServiceModel.Channels.Common.IMetadataBrowseHandler |
支援流覽目標系統上的中繼資料。 | IRequestChannel |
Microsoft.ServiceModel.Channels.Common.IMetadataSearchHandler |
支援搜尋目標系統上的中繼資料。 | IRequestChannel |
Microsoft.ServiceModel.Channels.Common.IMetadataResolverHandler |
支援從目標系統擷取中繼資料。 | IRequestChannel |
通道實作
使用 WCF LOB 配接器 SDK 建置的配接器基本上是 system.ServiceModel.Channels.IServiceListner) (傳輸通道。 使用 WCF LOB 配接器 SDK 建置的配接器會以 WCF 系結的形式呈現給取用者,其中系結會用來建立通道堆疊。 此系結可視為與其他預先定義 WCF 系結的對等,例如 BasicHttpBinding、WsHttpBinding 和 NetTcpBinding,而且可以在呼叫服務時透過 app.config 或在程式碼中由用戶端應用程式設定。 這個系結包含一組已排序的繫結項目,配接器是衍生自 T:System.ServiceModel.Channels.TransportBindingElement 類別的索引鍵繫結項目。 在輸出案例中,WCF LOB 配接器 SDK 執行時間會使用通道處理站來建立配接器 (,也就是傳輸通道) 。 在輸入案例中,WCF LOB 配接器 SDK 執行時間會針對服務應用程式中的連入通道使用通道接聽程式。 執行時間和設計階段訊息都會通過此元件。
連線處理站、連線和連線 URI 產生器
ConnectionFactory 提供根據 URI 和使用者認證建立連線的處理站模式。 如需詳細資訊,請參閱Microsoft.ServiceModel.Channels.Common.IConnectionFactory
。
連線 會定義與目標系統的低階通訊合約,並封裝原生通訊 API 和連線控制碼。 如需詳細資訊,請參閱Microsoft.ServiceModel.Channels.Common.IConnection
。
連線 URI 產生器可讓配接器取用者以程式設計方式建置連線 URI,而不需要特定語法知識。 如需詳細資訊,請參閱Microsoft.ServiceModel.Channels.Common.ConnectionUri
。
連線管理
連接管理 負責管理配接器的連線存留期管理。 它會在內部保留可供使用的連線集區。 此連線集區是以認證和 URI 為基礎。 認證包含定義連線執行之安全性內容的使用者名稱和密碼。
使用相同的認證和 URI 時,如果在相同連線處理站下開啟的任何通道,只要已有可用的通道,就會從集區取得連線。
不論認證和通道處理站的界限為何,連接集區管理員都會記錄該 URI 有多少個開啟的連線。 例如,在一個系統中,您可以有兩個具有不同認證的使用者,這表示有兩個通道處理站連線到系統。
注意
介面卡可能會受限於可支援的連線數目,通常受限於系統資源。
為了協助配接器開發人員設定連線集區設定,WCF LOB 配接器 SDK 提供兩個類別和 Microsoft.ServiceModel.Channels.Common.ConnectionPoolSettings
Microsoft.ServiceModel.Channels.Common.ConnectionManagerSettings
。
中繼資料管理
中繼資料管理 負責針對目標系統快取中繼資料的物件導向標記法。 中繼資料可以保留在可跨所有認證存取的通用快取中,也可以根據每個認證進行快取。
中繼資料生命週期從其設計階段定義開始,並在執行時間期間繼續使用。 在設計階段,配接器開發人員必須識別一組作業,而且必須產生必要的 WSDL 和用戶端 Proxy。 在執行時間,Adapter Framework 型配接器會使用預先定義的中繼資料來解譯從目標系統呼叫傳回的訊息。
為了協助配接器寫入器設定中繼資料設定,配接器架構提供三個類別: Microsoft.ServiceModel.Channels.Common.CacheSettings
和 Microsoft.ServiceModel.Channels.Common.MetadataSettings
Microsoft.ServiceModel.Channels.Common.CommonCacheSettings
。
WSDL 產生器
WSDL Builder 會從 WCF LOB 配接器 SDK 的內部中繼資料物件模型提供自動產生 WSDL, (可以覆寫它,適用于需要自訂 WSDL 產生) 的案例。
如需相關資訊,請參閱 Microsoft.ServiceModel.Channels.Common.IWsdlRetrieval
。
中繼資料流覽/搜尋
中繼資料流覽/搜尋 可讓您流覽和搜尋所有 LOB 中繼資料。
如需詳細資訊,請參閱Microsoft.ServiceModel.Channels.IMetadataRetrievalContract
。
產生中繼資料
中繼資料產生 可讓您根據配接器取用者所選取的作業,針對輸出案例) 產生用戶端 (的程式碼,以及針對輸入) 案例的服務 (產生程式碼。 即使我們建議介面卡取用者使用工具新增配接器服務參考外掛程式 (在 BizTalk 應用程式) 使用配接器服務增益集,WCF LOB 配接器 SDK 仍提供公用介面 Microsoft.ServiceModel.Channels.MetadataRetrievalClient.GetMetadata%2A
來擷取 System.Web.Services.Description.ServiceDescription,其代表 Web 服務描述語言 (WSDL) 包含所選作業和類型的相關資訊。 配接器寫入器會使用 WCF LOB 配接器 SDK 的中繼資料物件模型,其中包含衍生自 Microsoft.ServiceModel.Channels.Common.OperationMetadata
的類別,以及 Microsoft.ServiceModel.Channels.Common.TypeMetadata
描述每個作業和類型的詳細資料。