本書刻意把「整合」定義得很寬——它指的就是把電腦系統、公司或人連起來。這個寬鬆定義帶來的便利是,任何我們覺得有趣的東西都能塞進書裡;但仔細看看最常見的幾種整合情境仍然有幫助。

作者在協助客戶設計與實作整合方案的過程中,反覆遇到以下六類整合專案:

  • 資訊入口(Information Portal)
  • 資料複寫(Data Replication)
  • 共享商業功能(Shared Business Function)
  • 服務導向架構(Service-Oriented Architecture)
  • 分散式商業流程(Distributed Business Process)
  • 企業對企業整合(Business-to-Business Integration)

這份清單絕不是整合世界的完整分類法,但它足以說明整合架構師實際在建造什麼樣的東西。許多整合專案是多種類型的組合——例如為了把應用程式串進單一分散式商業流程,往往得先做參考資料的複寫。

資訊入口#

許多業務使用者為了回答一個問題或完成一項業務功能,得存取不只一套系統。例如要確認訂單狀態,客服人員可能得存取主機上的訂單管理系統,還要另外登入處理網路訂單的系統。

資訊入口把多個來源的資訊匯總到單一畫面,讓使用者不必四處奔波:

  • 簡單的入口把畫面切成多個區塊,各自顯示不同系統的資訊。
  • 進階的入口提供區塊之間有限的互動——例如在 A 區選了一筆項目,B 區就刷新顯示該項目的細節。
  • 更進階的入口提供更複雜的使用者互動,此時「入口」與「整合後的應用程式」界線已經模糊。

圖 1-1:資訊入口(Information Portal)

資料複寫#

許多業務系統需要存取同一份資料。以客戶地址為例:客服系統(客戶打來改地址時)、會計系統(計算銷售稅)、出貨系統(列印貨運標籤)與帳務系統(寄發票)都會用到,而且這些系統多半各有自己的資料儲存。客戶一改地址,所有系統都得更新自己那份副本——這就得靠以資料複寫為基礎的整合策略。

實作方式很多:有些資料庫廠商把複寫功能做進資料庫;也可以匯出成檔案再匯入另一套系統;或用訊息導向中介軟體,把資料紀錄裝進訊息裡搬運。

圖 1-2:資料複寫(Data Replication)

共享商業功能#

商業應用不只常有重複的資料,也常有重複的功能。多套系統可能都要檢查社會安全號碼是否有效、地址是否與郵遞區號相符、某項商品是否有庫存。把這些功能實作一次、以服務形式開放給其他系統使用,在商業上很合理。

共享商業功能與資料複寫可以解決部分相同的需求。例如可以實作一個「取得客戶地址」的商業功能,讓其他系統需要時再來要,而不是永遠存一份多餘的副本。兩者如何取捨,取決於幾項判準:

  • 對系統的控制程度——呼叫共享函式通常比把資料塞進資料庫更具侵入性。
  • 變動頻率——地址可能被頻繁讀取,卻很少改變。

圖 1-3:共享商業功能(Shared Business Function)

服務導向架構#

共享商業功能常被稱作服務(service):一個定義良好、普遍可用、回應「服務消費者」請求的功能。

當企業累積出一批有用的服務後,管理服務就成了重要工作:

  1. 應用程式需要某種服務目錄——一份集中的可用服務清單。
  2. 每個服務都要描述自己的介面,讓應用程式能與它「協商」出一份通訊契約。

SOA 讓「整合」與「分散式應用」的界線變模糊:新應用程式可以直接用其他應用程式提供的既有遠端服務來開發,因此呼叫一個服務可以視為兩套應用之間的整合;但另一方面,SOA 通常也提供工具,讓呼叫外部服務幾乎和呼叫本地方法一樣簡單(先撇開效能考量)。因為所有服務都以一致的方式提供,SOA 有時也被稱作「服務匯流排架構」。

圖 1-4:服務導向架構(Service-Oriented Architecture)

分散式商業流程#

推動整合最關鍵的原因之一是:一筆商業交易往往橫跨許多不同系統。前面提過,「下訂單」這樣一個簡單功能,就輕易碰到六、七套系統。

多數情況下,所有相關功能其實都已經在既有應用程式裡了,缺的是應用程式之間的協調。因此我們可以加入一個商業流程管理元件,來管理某項商業功能跨多套既有系統的執行。

SOA 與分散式商業流程之間的界線同樣可能模糊——例如你可以把所有相關商業功能都開放成服務,再把商業流程編碼在一個透過 SOA 存取這些服務的應用程式裡。

圖 1-5:分散式商業流程(Distributed Business Process)

企業對企業整合#

以上主要談企業內部應用程式與商業功能的互動。但很多時候,商業功能來自外部供應商或商業夥伴:貨運公司可能提供計算運費或追蹤貨件的服務;企業也可能用外部供應商計算銷售稅率。夥伴之間的整合也很常見——客戶向零售商詢問某項商品的價格與供應狀況,零售商轉而向供應商查詢那批缺貨商品的到貨狀態。

上述考量多半同樣適用於 B2B 整合,但跨網際網路或其他外部網路溝通時,通常會多出傳輸協定與安全性的新議題。

由於可能有許多商業夥伴共同參與一場電子「對話」,標準化的資料格式在這個情境中至關重要。

圖 1-6:企業對企業整合(Business-to-Business Integration)