代理服務是一種複雜的技術,具有很多可配置的移動組件。詳細資料如下:
資訊
資訊是指在服務代理應用程式中調用的基本資料單元。對於服務代理來說,資訊的接收總是按照其被發送的順序進行,並且保證僅發送和接收一次。同時保證資訊不丟失。有時發送的資訊不能立即被收到。如果遇到這種情況,服務代理儲存資訊,並嘗試以後再次發送。確認書將在資訊之前被發送,來確保被他們傳輸的資料是所需要的。資訊傳輸的最大值非常大,達2GB。
會話
當在服務代理應用程式中發送一個資訊時,它需要使用一個會話(或對話)。會話被建立成一個特殊任務,當任務完成時即被刪除,事實上,初級資訊交流構建在服務代理中,而不是資訊中。會話發生在兩個端點服務中:開始會話服務(發起者),以及接受會話請求服務(目標)。
隊列
在一個服務代理應用程式中,資訊被儲存在一個隊列中直到被處理。在內部,服務代理隊列是一種特殊類型的表格,能夠通過隊列的名稱在SELECT語句中查看。然而,你不能在一個隊列中發布INSERT, UPDATE, 或DELETE語句。你安置在一個隊列的資訊支援伺服器重啟,這保證資訊不丟失。
服務
服務程式是從一個隊列中讀取資訊然後處理它們。服務可以是一個ad hoc,一個儲存程式,或者一個串連到資料庫的不同程式。每個服務必須與一個隊列相關聯。如前所述,會話發生在服務之間。
會話群
會話群用於使資訊處理連續化並使它們相互關聯。每個會話是一個會話群的成員。主要觀點是一些資訊與其它相關,會話群使它們在一起保持一種整齊的方式。事實上,交易處理給予會話群中的所有資訊專屬的連續訪問,直到處理過程結束。
與服務代理應用程式相關有很多其它移動組件。上述這些組成是服務代理遊戲的主要玩家。你對它們越熟悉,你越能寫出好的服務代理程式。現在讓我們研究你如何能夠使用服務代理程式來執行商業交易處理。
商業處理
在商業程式中的任務很少以同步方式執行。這些事務的處理經常包含獨立的任務,它們可能在同步發生,可能互相交迭,也可能在處理過程中不依賴於其它步驟。這通常是適用於產品製造,特別是客戶預訂購買的產品,比如汽車。
當有人預訂了一款自訂汽車,建立汽車組件的步驟不必彼此依賴。例如,這些組件中很多可以同時建造。然而,在加工過程結束時,他們要裝配成汽車。你將遇到:
在過程中的步驟依賴前面的步驟
如果步驟遇到失敗,其對於總體項目的成功顯得更重要
步驟需要來自購買者的額外投入
除了這些情況,如果潛在買家撤銷了訂單,按照過程處理邏輯有必要償還。你可能熟悉具有這些特點的一種類型的商業過程。
當類似的過程在資料庫中執行時,通常執行一系列資料庫處理事務,並且每個處理過程執行一個獨立的原子水平任務。當一個資料庫處理過程前進或者返回時,這些一系列相關的商業事務通常不能用這樣的一種方式完成。它們必須有計劃的設計,以便如果失敗,邏輯用於使商業處理事務重新返回。整個商業過程很難執行,由於這些獨立的過程實際上彼此聯絡,包含一個整體的目標。這是一個隊列體繫結構的真正價值所在,比如服務代理。
在一個服務代理應用程式中,並行的處理過程是可能的,並且經常需要。你可以根據你的商業過程來使你的應用程式服從這種模式。在我們的客戶汽車例子中,你能夠用這樣的方式設計你的程式,以便遵照底盤建築模式,以及同時遵照發動機建築模式。最好的是,使用會話群使這些獨立的組件加工過程彼此聯絡。