摘要
- 文章編號:20051106
- 投稿日期:2005/10/25
- 作者:張騉翔
- 備註:
傳統上來說,子系統間之協作及整合是透過 “共享資料庫” 的方式達成,其中一種方法是設計一個大資料庫,包含各子系統所需之所有資料,子系統透過資料庫系統各取得所需之欄位,並更新相關負責之資料。另一種方法是,子系統開放資料庫,讓另一個子系統進入存取其相關資訊。
上述這二種方法都是屬於 “緊密整合” (Tight Coupling) 的模式,子系統之間共享一個資料空間,供彼此整合使用。因彼此依賴相同的資料空間,就會依賴資料結構的共通性。透過共同的資料庫結構,達成整合的目標。
另一種方式是 “鬆散整合” (Loose Coupling) 的模式,子系統提供一個獨立於作業平臺、開發工具之共通介面標準,如 SIF@Tp
所採用之 Web Services (HTTP+XML),系統間依賴彼此之服務介面 (Service Interface),制訂一資訊契約
(Contract),達成整合的目標。子系統間之互動只要符合制訂之資訊契約,就可以整合,不需要依賴共同之資料庫結構,作業平臺或開發工具。
SIF@Tp 採用 XML Schema 來訂定上述之資訊契約。
緊密整合的缺點是,系統整合時,大幅度降低資料之安全性及完整性,因為所有整合的子系統皆可以自由存取共享資料空間之資料,猶如寫多個副程式時,共同使用
相同全域變數 (Global Variable)
來溝通。另一個缺點是,系統在擴展或變更時,調整資料庫結構,容易影響另一個子系統之運作,甚至造成其無法運作。尤其是當子系統由不同開發者設計時,變更
某一資料會影響其它那些子系統往往不是那麼清楚。所以會發現增加某些功能後,其它功能不能執行或發生錯誤,或是更正某個問題,卻又產生另外問題的現象發
生。在這樣的情況下,隨著整合子系統數量的增加,資料庫也愈來愈無法確保其資料之完整性 (Data
Integrity),修改或增加新功能也就愈來愈困難。
緊密整合的優點是開發複雜度較低,子系統間不需定義資料交換介面,設定存取權限,也不需另外開發子系統間之介面程式。當子系統間資料共通性很大的時候,緊密整合的另外一個優點是效率會大幅高於鬆散整合的模式,因為在此種情況下,鬆散整合模式子系統間會經常交換資料。
鬆散整合模式的優點是,子系統可充份保障子系統內之資料安全及完整性,因為所有的資料存取皆需透過其所提供之服務介面,外部系統無法直接接觸資料庫。另一
個優點是,子系統在擴展或變更時,調整資料庫結構,只要修改相關之服務,對外介面保持一致,並不會影響到其它的子系統,將 ”系統改變” 區域化
(Localize),降低維護成本。再一個優點是,只要服務介面相同,子系統可彈性與不同之系統整合;例如,各校可以因各校之差異選用不同廠商開發之圖
書館系統,與學籍系統整合。只要圖書館系統提供共同之服務介面 (可由 貴局制訂),就可以進行整合,兼顧差異性及整合性。
鬆散整合的缺點是開發成本較高,系統需要訂立明確之服務介面,並建立介面之實作元件。另一個缺點是子系統間資料共通性太大時,效率會降低,因為需要經常作
資料交換。
建議系統間整合機制以鬆散整合模式為主,提昇系統未來之擴展性及降低未來之維護成本。在某些特殊之情況,例如學籍、成績子系統之間有大量之共通資料,會採用緊密整合之模式開發,但這二個子系統還是會共同提供一服務介面,與其它系統進行鬆散整合,保持系統設計上之彈性。
|
緊密整合(Tight Coupling) |
鬆散整合(Loose Coupling) |
優點 |
- 開發複雜度較低。
- 子系統間不需定義資料交換介面。
- 不需另外開發子系統間之介面程式。
|
- 子系統可充份保障子系統內之資料安全及完整性。
- 子系統對外介面保持一致,在擴展或變更時,並不會影響到其它的子系統。
- 只要服務介面相同,子系統可彈性與不同之系統整合。
- 維護成本較低。
|
缺點 |
- 資料安全性及完整性較低。
- 系統在擴展或變更時,容易影響另一個子系統之運作。
|
- 開發複雜度較高。
- 開發成本較高。
- 當子系統間資料共通性太大時,效率會降低。
|
整合方法 |
透過”共享資料庫”的方式達成。 |
提供一個獨立於作業平臺、開發工具之共通介面標準。 |
|