事件通知

其應用程式提供觸發事件的一種連接器,它必須瞭解事件後才能傳送相關資料給整合 分配管理系統。圖 14 說明與事件通知有關的連接器互動。

圖 14. 連接器中的事件通知。


應用程式特有元件偵測及擷取事件的方式因連接器而異。不過,應用程式特有元件 傳送事件至連接器組織架構的方式,以及連接器組織架構遞送事件至整合分配管理系統的 方式,所有連接器皆採標準方式。

下列小節說明關於大部份連接器作業的一般概念,包括:

這個討論並不是為了說明任何特定連接器的特定實作方式。

設定應用程式的事件通知機制

對連接器而言,應用程式事件就是任何會影響與 WebSphere Business Integration Adapters 商業物件定義相關聯的應用程式實體資料的任何作業。應用程式中有其他類型的事件;例如按一下滑鼠是屬於應用程式視窗系統或表格介面的事件。 不過,連接器僅對預先定義的資料層次事件 (指建立、更新、刪除或影響應用程式資料儲存 內容的事件) 子集感興趣。

部分應用程式明確地設陷及報告事件,提供使用者友善的事件管理及可配置的事件文字。 不具抽象可報告事件這種概念的其它應用程式,可能會在發生情況時暗中更新其資料庫。 WebSphere Business Integration Adapters 為兩種應用程式提供了適合的連接器。

大部分連接器需要有某些應用程式配置,才能設定連接器使用的 事件通知機制。事件通知機制可維護應用程式中執行的 作業編號清單。 它可能有應用程式事件佇列、電子郵件收件匣或資料庫表格的實體表單。

連接器使用哪一種事件通知機制? 以下幾節說明一些一般處理方式。

當應用程式具有事件支援

若應用程式以事件為基礎,它可能有一個供用戶端應用程式 (例如連接器) 使用的事件通知介面。 此應用程式可能也允許您配置事件報告的文字。對於這種應用程式而言,設定連接器的 事件通知機制是一項正常的應用程式設定作業。

例如, 假設應用程式讓您安裝一個 Script,而它會在發生特定事件類型時執行並於事件 收件匣中放置通知。 若要為該應用程式安裝連接器,您必須建立一個連接器的使用者帳戶、撰寫或取得處理您要 追蹤之事件的 Script、安裝 Script、指定觸發每一個 Script 的事件類型,然後建立收件匣。 完成之後,應用程式特有元件會定期擷取收件匣內容,檢查是否有新事件。

圖 15說明包含事件收件匣的應用程式配置。

圖 15. 範例:對事件通知使用事件收件匣。


另一個應用程式可能有內部工作流程系統, 此系統可於發生特定作業時產生電子郵件訊息或寫入事件佇列。圖 16 說明具有專用商業物件儲存庫 (商業物件和事件定義於其中) 的應用程式。 在圖例中,Customer 是商業物件,而 Create、Delete 和 Update 是與其相關聯的事件類型。

當商業物件事件 (例如 Customer.Update) 發生時,該事件會傳送到工作流程系統, 這會在應用程式資料庫的事件表格中放置一個項目。

圖 16. 範例:對事件通知使用應用程式工作流程。


當應用程式沒有事件支援

連接器與應用程式事件互動的偏好方法是透過應用程式的 API,它提供一個組織架構 來強化應用程式的資料模型和邏輯。不過,部分應用程式 API 不提供事件通知的原生支援。

連接器從這類應用程式接收事件通知的一個可行方法,是與應用程式資料庫互動。 例如,您可對「員工表格」設定一個觸發程序來偵測列的更新。一有更新發生, 該觸發程序便會將更新的相關資訊插入您在部署連接器時所建立的表格中。 事件表格中出現的每一新列皆代表一個事件通知。連接器可使用 SQL 查詢來從表格中擷取新事件。

圖 17說明這種方式。

圖 17. 範例:對事件通知使用資料庫。


圖 17中,應用程式資料庫有一個關於在「員工表格」 中建立記錄的觸發程序。 每次應用程式插入一個新記錄時,觸發程序就會在事件表格中建立一列。 該列包含新員工記錄的鍵值 (姓氏和員工 ID)、系統時間和事件類型 Create。

偵測事件

連接器的應用程式特有元件透過其事件通知機制來瞭解應用程式事件,最常見的就是輪詢事件庫中的新事件。 此輪詢方法是根據連接器所使用的事件通知機制而特別指定給應用程式。

輪詢是可配置的。 當您使用「連接器配置程式」來配置連接器時,您可以:

針對大部分連接器,您亦可指定每一個輪詢呼叫要處理的事件數目。

若其他應用程式對某應用程式的事件感興趣,應用程式特有元件僅需輪詢該應用程式。 若某特定應用程式並非事件來源,您可以使用「連接器配置程式」將應用程式特有元件的 輪詢頻率設定為「無」,以停止輪詢該元件。若要詳細瞭解「連接器配置程式」, 請參閱 Connector Development Guides 或您要部署之配接器的配接器使用手冊。

處理事件

偵測到事件之後,連接器的應用程式特有元件會執行下列動作:

建立應用程式事件與商業物件定義的關聯性

當應用程式特有元件擷取事件時,它必須決定代表事件的商業物件定義和動詞。

應用程式特有元件 使用事件文字來建立事件與商業物件定義和動詞的關聯性,如表 4 所示。

表 4. 事件文字和商業物件結構
應用程式事件中的資料類型 範例 使用
應用程式實體類型 Customer、Part、Item 決定相關聯的商業物件定義
發生的作業 Create、Update、Delete 決定商業物件的作用中動詞

例如,連接器可建立下列事件文字與 Employee.Create 商業物件的關聯性:

1997.10.19.12:50.22 employee created lname=』como』 id=』101961』
 

由左至右,此事件文字包含:

請注意:此範例為簡式範例;其他事件文字類型可能需要應用程式特有元件更多的處理。

建置應用程式特有商業物件

若已配置了連接器支援事件的商業物件定義,應用程式特有元件將建置商業物件、 使用鍵值來擷取應用程式資料,並將應用程式資料填入商業物件。 商業物件建構與解構說明商業物件建置程序。

將應用程式特有商業物件傳送至連接器組織架構

應用程式特有元件可將商業物件傳送至連接器組織架構,而不需要知道 接收商業物件所傳送資訊的應用程式身份。

保存事件

應用程式事件保存對於疑難排解和記錄保存很有幫助。 事件保存包含每個事件的狀態資訊,例如:

若應用程式提供了事件保存功能,連接器通常都會使用之。 不支援事件保存的應用程式連接器可能有自己的事件保存工具。 比方說,如果連接器的事件通知機制就像圖 17 中圖解的 資料庫機制,資料庫觸發程序可能會將已刪除的事件複製到您部署連接器時所建立的保存表格中。

保證事件遞送

保證事件遞送可確保重要事件 (例如金融交易) 於任何可能發生的服務中斷情況下依然正常處理。 此功能讓連接器組織架構保證能偵測到每一個事件,並且只會將該事件從來源連接器的事件庫傳送到目的地連接器的要求佇列一次。

若沒有保證事件遞送功能,則在連接器偵測到事件及完成所有必要處理的期間,會有一個列出可能失敗原因的小視窗。若此視窗中出現某個失敗,雖然事件已傳送出去, 但其事件記錄仍保留於事件庫中。當連接器重新啟動時,它會尋找仍在事件庫中的該事件記錄, 並將其視為一個新事件,這樣會導致事件被傳送兩次。

如需保證事件遞送的詳細資訊並瞭解如何針對您要部署的配接器來啟用它, 請參閱配接器的使用手冊。

Copyright IBM Corp. 1997, 2003