連接器包括一個用來處理事件的通訊協定接聽器組織架構,以及一個用來處理要求的 通訊協定處理常式組織架構。 這種雙向功能可讓連接器組織架構從事下列活動:
如需 SOAP 資料處理常式的進一步資訊,請參閱SOAP 資料處理常式。
連接器事件處理程序 (或事件通知) 可用來處理 Web 服務用戶端的要求。 此事件處理功能含有通訊協定接聽器組織架構,包括下列元件,本章稍後將詳細討論這些元件:
連接器使用接聽器將協同作業作為 Web 服務來顯現,並且在傳輸器上接聽來自 Web 服務 用戶端的呼叫,再傳送到顯現的協同作業。
SOAP/HTTP 及 SOAP/HTTPS 通訊協定接聽器將協同作業當作 SOAP/HTTP Web 服務來顯現。 SOAP/JMS 通訊協定接聽器則將協同作業當作 SOAP/JMS Web 服務來顯現。
當 Web 服務用戶端的要求到達時,接聽器會將 SOAP 要求訊息轉換成商業物件,並呼叫協同作業。 若為同步要求,連接器會收到與「要求」商業物件相同類型的「回應」商業物件。 接聽器會將「回應」商業物件轉換成 SOAP 回應訊息,然後將 SOAP 回應訊息傳輸到 Web 服務用戶端。 請注意,對此連接器而言,事件排序並非必要事項;連接器可使用任何順序來傳遞事件。
Web 服務連接器會利用 SOAP 資料處理常式,將送入的 SOAP 要求訊息轉換成商業物件。 為了輔助資料處理常式來判斷要為送入的 SOAP 要求訊息解析哪個商業物件, 連接器會提供有關其支援之商業物件的 meta 資訊給資料處理常式。 連接器會先從其支援的商業物件來建立一個清單,其中包含可用於轉換作業之所有可能的商業物件。 此清單可能會同時包含 TLO 及非 TLO。受支援的 TLO 商業物件,就是物件層次為 ASI ws_eventtlo=true 的那些商業物件。
若使用 TLO,通訊協定接聽器就會讀取 TLO 的 ASI 物件層次,如下所示:
若使用非 TLO,則通訊協定接聽器會從「WSDL 配置精靈」所產生的 WSCollaborations 配置內容值, 來讀取協同作業及處理模式。
連接器將 SOAP 要求中的 BodyName 和 BodyNamespace 與可能的商業物件名稱做比較, 並嘗試比對。 若為 TLO,則會使用「SOAP 要求」商業物件的 SOAP Config MO 內容來尋找這個 BodyName/BodyNamespace 配對。 若為非 TLO,則會使用 WSCollaborations 連接器配置內容來尋找 BodyName/BodyNamespace 配對。 (請注意,連接器只會考慮那些在 WSCollaborations 內容中擁有輸入項目的非 TLO。) 資料處理常式會使用 BodyName/BodyNamespace 配對來決定商業物件, 以處理對商業物件轉換作業提出的 SOAP 要求。
連接器視察由 SOAP 資料處理常式傳回的「要求」商業物件。 若此商業物件有 ws_tloname ASI,連接器就會在此 TLO 中設定「要求」商業物件。 使用此 TLO 來呼叫協同作業。但是若未設定此 ASI,連接器就會使用 SOAP 資料處理常式 所傳回的「要求」商業物件來呼叫協同作業。
若是執行同步協同作業,連接器會利用 SOAP 資料處理常式來建立 SOAP 回應或 錯誤訊息,以傳回至用戶端。 於此情況下,連接器只是將 SOAP 商業物件 (TLO 的子項) 或非 TLO 傳遞至資料處理常式。 SOAP 資料處理常式會根據傳遞給它的商業物件,傳回 SOAP 訊息。
連接器可代表協同作業,透過 SOAP/HTTP(S) 及 SOAP/JMS 來呼叫 Web 服務。 WSDL Object Discovery Agent (ODA) 及通訊協定處理常式組織架構皆可支援此要求處理功能。 WSDL ODA 是設計期間所使用的工具,可用來產生包含目標 Web 服務相關資訊的 SOAP 商業物件。 如需進一步資訊,請參閱啟用要求處理的協同作業。通訊協定處理常式 組織架構是一種可配置的執行時期模組,其包括下列元件,本章稍後將詳細討論這些元件:
在接收協同作業「要求」商業物件時 (一律透過 WSDL ODA 設定於 TLO 中),
通訊協定處理常式組織架構會載入適當的通訊協定處理常式。
通訊協定處理常式負責管理傳輸層次的詳細資料,在呼叫 Web 服務及 (選擇性地)
保護回應時,
將會需要這些資料,以執行下列三項主要作業:將協同作業「要求」商業物件轉換成
SOAP 要求訊息, 以該要求訊息來呼叫端點 Web 服務,若為「要求/回應
(同步)」模式,則會將 SOAP 回應訊息 轉換商業物件,並將該物件傳回協同作業。
連接器會使用 SOAP/HTTP-HTTPS 通訊協定處理常式來呼叫 SOAP/HTTP(S) Web 服務,
並使用 SOAP/JMS 通訊協定處理常式來呼叫 SOAP/JMS Web 服務。
Web 服務連接器一律使用 TLO 從協同作業來呼叫的。 連接器會從 TLO 來判斷「SOAP 要求」商業物件,並以此商業物件來呼叫 SOAP 資料處理常式。 資料處理常式會將連接器所傳送的要求訊息傳回給 Web 服務。
若是執行同步 Web 服務,連接器會利用 SOAP 資料處理常式來將 SOAP 回應及 錯誤訊息轉換為「SOAP 回應」及「錯誤」商業物件。 為了輔助資料處理常式來判斷要為這些 SOAP 回應/錯誤解析哪個商業物件, 以進行商業物件轉換,連接器會提供特定的 meta 資訊給資料處理常式。 尤其是,連接器會建立一個清單,其中包含所有作為呼叫 TLO 之子項的「回應」及 「錯誤」商業物件。 其中應僅有一個回應商業物件,但可能會有許多「錯誤」商業物件。 此外,可能會有一個且僅有一個 defaultfault 商業物件。 連接器會嘗試比對,然後將 SOAP BodyName 和 BodyNamespace 對映至出現於所有 「回應」商業物件之清單中的商業物件名稱。 若為「SOAP 回應」商業物件,則會使用「SOAP 回應」商業物件的 SOAP Config MO 內容來尋找此配對。 若為「SOAP 錯誤」商業物件,則會使用詳細元素第一個子項的 elem_name 和 elem_ns 屬性層次 ASI 內容來尋找此配對。 若為 defaultfault 商業物件,連接器只會將 defaultfault 商業物件的名稱通知給資料處理常式。 若沒有為此轉換作業解析其他的錯誤商業物件,則資料處理常式應將 defaultfault 商業物件 作為最後的手段。