[Software Architecture]系統整合的種類
系統整合的問題一直都是SI(System Integration)廠最大的痛,即使被稱為SI的專家,面對系統整合的問題你也不得不小心,最近在工作上遭遇一些整合上的問題,後續有較完整的解決方案後再PO出來跟大家分享,今天要提的是系統整合的種類,系統整合的定義很廣,下面我舉幾個比較常見到的:
- 資料整合
這個很常見,就是兩系統間只做單純的資料交換,舉個例子來說,多數公司內部都會有許多不同的系統吧,以CRM跟ERP為例子來說,CRM系統可能會發起一些需求,然後存放一筆資料倒ERP的資料庫中,ERP的系統到時候會讀到這筆資料,如下圖,CRM系統可能透過直接存取或者是透過Web service等其他服務將資料寫入ERP DB中,ERP再做讀取,而是否要針對CRM丟過來的資料做其它差異化處理就看系統的用意了。
- 流程整合
流程整合的定義超廣泛,舉個例子:請假單、採購單等等會有流程要跑的系統,通常都會搭配Mail的方式來提醒使用者或者相關人員,電子流程系統透過Mail來通知使用者進行下個動作,這本身就是一種流程整合,又或者是兩系統間有絕對的先後次序關係,我們再舉上例,如果CRM系統拋資料給ERP系統後,需要再ERP系統這邊再將資料回拋給CRM系統,CRM發動的程序才能繼續向下進行,那我們可以稱兩者的流程上是有整合關聯的,看一下下圖,手上沒有UML工具,這個就先隨意看看吧。
- UI整合
UI的整合有幾個分類:將對方的資料放到我的畫面來顯示(EX:RSS)或者直接將對方系統的畫面放到我的系統中(EX:Web Part、Portal...),這一類的整合通常很單純,我可以在我的系統中看到別的系統的內容,這個整合通常會搭配單一登入(SSO)的機制來做權限認證...
- 服務整合
提到服務整合,我想大家首先想到的應該就是SOA了吧,服務整合的定義其實很模糊,我呼叫你的Web Service來進行資料交換,算不算服務整合呢?應該算吧,我透過SSO的機制將我們兩個系統串在一起,算不算服務整合呢?應該也算吧。
其實談到服務整合算是所有整合的最初目標,沒有服務,如何整合?
也算是最終目標了,有了很多完整服務,整合還難嗎?
不過在談SOA時,第一步往往是最難踏出去的:我們如何定義服務?哪些功能應該做成服務?顆粒度該有多大?是一整個完整function還是將這個function再切細?其實光要談這些就已經談不完了,我個人認同SOA的服務整合概念,那是一個努力方向,但不是為了SOA而將舊系統為了SOA而變動架構...
服務整合是個大議題,也是近幾年SI場最熱最火紅的議題,大家都在談它可以帶來些什麼改變,但往往忽略現況...
以上大概是幾個比較常見的整合方式,在談這些整合方式時,除了我們自己寫Service來處理外,實際上還有一些工具與系統可以在向下細談下去,例如資料面的MDM、ETL;服務、流程面的BizTalk;還有各大廠的SOA solution都很值得去看看。
游舒帆 (gipi) 探索原力Co-founder,曾任TutorABC協理與鼎新電腦總監,並曾獲選兩屆微軟最有價值專家 ( MVP ),離開職場後創辦探索原力,致力於協助青少年培養面對未來的能力。認為教育與組織育才其實息息相關,都是在為未來儲備能量,2018年起成立為期一年的專題課程《職涯躍升的關鍵24堂課》,為培養台灣未來的領袖而努力。 |