關於應用整合:同步與非同步通訊模式之間的比較

APEMESH發表於2019-04-19

什麼是應用整合?

應用整合(或企業應用整合)是指在企業IT環境中,對來自不同應用程式之間的流程和資料共享的能力。對於各種規模的企業,應用整合已成為連線各類不同的應用程式,實現他們之間的相互協作,從而幫助企業內部提高整體業務效率,增強可擴充套件性,降低IT成本的關鍵能力。

但是,在構建應用整合解決方案之前,瞭解不同的整合層次,尤其是在應用整合環境中如何交換訊息(即資料)是至關重要的。本文概述了從高到低四個不同的整合層次:展示層,業務層,資料層和通訊層,然後通過對同步和非同步通訊的方式的比較,更詳細地討論在底層通訊層上不同的整合方法。

關於應用整合:同步與非同步通訊模式之間的比較

不同層次上的應用整合

有四種不同層次上的應用整合方法。在展示層級別上,可以通過將多個不同的應用程式展示為具備公共使用者介面(UI)的單一應用程式呈現來實現整合。 這種舊的整合手段也稱為“螢幕抓取”,它使用中介軟體技術來收集使用者在網頁或其他使用者介面上輸入的資訊。

在過去,人們使用展示層級別的整合方法來整合那些無法連線的應用程式。但在今天,應用整合技術已經發展並變得更加複雜,使得這種方法不那麼普遍。

通過業務流程整合,企業將開展業務所需的邏輯流程對映到其IT資產上,這些資產通常位於企業內部IT環境的不同部分,並且隨著雲端計算的興起,越來越多位於雲上。 通過識別業務流程中的各項操作,並將其IT資產作為定位成一個元系統(關於系統的系統),企業可以使用應用整合的方法來定義在各個應用程式之間應當如何互動,以實現關鍵業務流程的自動化,從而加快為客戶提供商品和服務的交付速度,減少人為錯誤的機會,降低運營成本。

除了業務流程整合,資料整合能力對於應用整合也是必需的。如果一個應用程式無法交換和準確理解來自其他應用程式的資料,則可能會出現不一致並使得業務流程的效率降低。 資料整合能力可以通過以下兩種方法之一來實現:1)編寫程式碼來使得每個應用程式都能夠理解來自企業中其他應用程式的資料,2)採用傳送方和接收方應用程式都能夠解析的統一資料交換格式。

後一種方法優於前者,因為隨著企業系統規模和複雜性的增長,它的擴充套件性更好。在上述的這兩種方法下,對資料的訪問、解析和轉換是能夠成功實現資料整合的重要能力。在傳統的SOA技術體系中,通常使用XML資料格式作為以上描述的統一資料交換和處理格式。而在靈長科技新一代API管理和應用整合平臺上,我們採用更輕量高效、易於解析處理和轉換的JSON資料格式,並可利用JavaScript豐富的生態中各種高效的資料處理工具,直接對資料進行操作,幫助在不同的應用程式之間高效完成資料整合。

在業務流程和資料整合層之下是通訊層整合。這指的是在企業內部不同的應用程式之間,如何通過檔案傳輸,請求/返回方法,或訊息傳遞等方法來相互通訊。在許多情況下,應用程式並不是為了相互通訊而設計的,所以在通訊層上,需要採用可以幫助實現應用間相互通訊的技術。這些技術包括應用程式設計介面(API),來指定對應用程式的呼叫方式,以及充當應用程式之間聯結器的媒介。在通訊層,考慮應用程式之間互動的體系結構也很重要。可以採用點對點、中心輻射模型或使用企業服務匯流排(ESB)等技術來實現通訊層面上的應用程式互動體系結構。

獲取訊息:同步與非同步通訊

如果沒有有效的溝通,就無法正確地整合業務流程和資料。根據企業的特定需求,應用之間的通訊可以是同步的,非同步的,也可以是兩者的某種組合。

在同步通訊中,傳送方應用程式向接收方應用程式傳送API呼叫請求,並且必須等待應答才能繼續進行處理。 此模式通常用於需要以順序方式協調資料請求的場景。 在非同步通訊中,傳送方應用程式向接收方應用程式傳送一條訊息,並在接收響應之前繼續本地的處理。換句話說,傳送方應用程式並不依賴於接收方應用程式來完成其處理。 如果以這種方式整合多個應用程式,即使其他的API呼叫請求尚未完成處理,傳送方應用程式也可以完成某個API呼叫。

在設計應用程式整合解決方案時,非同步通訊與同步通訊相比具有許多優勢,特別是在涉及到SOA和微服務架構中各個服務之間的相互呼叫時。在同步通訊模式中,當應用程式必須同時等待來自其他幾個應用程式的響應時,超時的情況將會更為常見。 這意味著在非同步通訊模式下,由於無需等待API呼叫完成而造成頻繁的系統阻塞,服務的可用性將會增加。

而在非同步通訊模式下,子流程也可以按照開發好的任意預定順序執行。JavaScript語言是這種非同步通訊模式的典型代表:在JavaScript中,應用開發者可以很容易地以回撥、promise等內建的方法,以非同步的模式和其他應用程式通訊。在靈長科技的CEAMS應用整合平臺上,系統通過中間層和大量的開源第三方開發包,把來自底層資料來源的各種資料格式封裝為統一的JSON資料格式,並通過JavaScript內建的非同步通訊模式,幫助高效完成在各個服務之間的通訊。

此外,非同步通訊允許應用程式之間的鬆散耦合,從而消除了對連線管理的需要。 這使得應用程式整合解決方案更加靈活,敏捷且容易擴充套件:這些都是如今企業資訊系統應當具備的基本屬性。

您想了解更多? 請探索 CEAMS系統,一個統一,高效的混合微服務應用開發和整合平臺。

相關文章