文/秦曉燕
隨著企業信息化建設的不斷進步及互聯網技術的飛速發展,越來越多的日常事務更多的依賴多種多樣的IT 信息化系統,在滿足企業高速發展的同時,建立了一系列的信息化系統。信息化系統的建設提高了企業的信息化發展,提高了企業的辦公效率,也對企業的高速發展提供了強有力的支撐。但由于這些系統大都是在不同時期由不同開發商以不同的技術框架實現的,導致了系統間信息的孤立、資源無法共享,增加了企業系統的運維成本,加大了系統之間操作的復雜度,引發了各類問題。具體體現在以下幾點:
由于各系統均需要獨立維護各自的用戶體系、權限管理,這樣既浪費了企業的資源,也無法保證用戶體系的完整性和一致性。例如,對于需要登錄多個系統的用戶,在進入每個系統的時候,都需要輸入用戶名和密碼,且由于各系統的賬號、密碼管理的不統一,所以需要業務人員記錄多個賬號和密碼,增加了業務人員的操作復雜度,帶來了極大的不便利。同樣,對于系統管理員的工作也帶來了一定的難度,比如有員工離職,系統管理員需要到不同的系統中刪除離職人員的賬號信息,不僅增加了工作量,還容易產生刪除遺漏的情況,給企業造成一定的安全隱患。
由于各系統在建設初期,不同開發商只考慮了當下系統的需求,采用的開發技術和框架也存在很大的差異,缺乏統一規劃,數據標準不統一,不同系統間數據流轉無法通過系統直接實現,導致了數據中斷,降低了企業業務流轉的時效性,增加了人工處理的復雜度,一定程度上增加了出錯概率,降低了工作效率。
伴隨著信息化系統的增多,不同的信息化系統的部署方式各不相同,有些系統需要部署在Windows 操作系統,使用Sql Server 數據庫,有些系統需要部署在Linux 操作系統,使用Mysql 數據庫,對企業運維團隊的要求也越來越高,增加了系統運維工作量,同時服務器資源也很難有效利用,一定程度造成硬件資源浪費,增加了企業運維成本。
在企業業務快速擴張的情況下,信息化系統的服務擴展相對困難。
針對企業信息化系統建設過程中遇到的各種各樣的問題,使用了ETL 和ESB 框架構建了企業服務總線ESB 平臺。該平臺主要包含了企業數據中心、企業服務總線、信息化系統以及企業運維四大模塊,如圖1所示。
當前正處在大數據時代,大數據給企業帶來了新的機遇和挑戰,通過對企業的大數據分析,可以合理有效的整合企業資源,幫助企業提高管理水平,優化企業管理模式,突破傳統經營邁入創新經營之路,由此可見,數據將在企業的發展過程中發揮越來越重要的作用。
通過對企業多種不同架構的信息化系統的調研、分析,結合企業實際業務需求,最終將多系統中共用的數據進行了梳理、合并、分析后,建立了企業數據中心,同時創建了企業的專有數據池--“基礎池”。所謂“基礎池”,是指多個系統中共用的且都需要各系統單獨進行維護的數據,但該數據在企業的多個信息化系統中應是相同的或一致的(例如:機構管理、部門管理、用戶管理以及其他可共用的諸如商品等業務基礎數據等)。在建立“基礎池”后,對所有“基礎池”相關的數據進行新增/編輯時,都需要設定統一的入口進行操作,這樣就能夠保證該部分數據在所有信息化系統中是完全一致的,既能保證數據的完整性、準確性,也能實現數據的實時性,同時也能夠簡化企業員工對信息化系統的操作,最終將系統操作變得更加便捷、高效,提升了用戶體驗度,減少了出錯率。
由于企業有多個不同的信息化系統,使用了不同的數據庫(SQL Server,Oracle,Mysql等),且也是安裝放置在不同的物理服務器上,這時如果我們要用代碼的方式來實現,其復雜程度較高且工作量也會比較大。如果使用SQL語句或者存儲過程的方式,首先需要連接不同的數據庫服務器,單獨進行處理,最后再將不同系統對應的SQL 執行結果進行比較、合并,這種方法更顯笨重、易出錯且兼顧到數據的實時變化等狀況,最終使用ETL 技術來解決諸如此類的問題,實現企業數據中心的建設。ETL,是英文Extract-Transform-Load 的縮寫,用來描述將數據從來源端經過抽?。╡xtract)、轉換(transform)、加載(load)至目的端的過程。數據抽取前期需要做大量的調研分析工作,搞清楚各信息化系統中有哪些數據,確定哪些數據是需要提取到“基礎池”中的,不同信息化系統使用的是哪種數據庫服務,存在的數據是否有差異等,只有充分的分析清楚后才可以進行數據抽取的設計工作。關于抽取頻率的考慮:對于實時性要求高的數據,可以考慮每小時抽取一次;對于實時性要求不高的數據,可以一天抽取一次。關于抽取策略的考慮:對于新增、更新的數據,可根據創建時間或者更新時間,進行數據的增量抽取策略;對于刪除的數據(尤其是物理刪除的數據),可采用全量拉取比對的策略。數據轉換是對系統中重復的數據、不完整的數據或者有錯誤的數據進行修正的過程。由于不同時期建立的信息化系統,在使用過程中有些信息化系統經歷了多次的開賬處理,中途會產生大量的不整合數據,數據轉換階段最重要的工作就是將這些不整合的數據進行清洗過濾或者根據一定的規則進行轉換。最后數據加載,顧名思義就是將轉換后的數據給相關人員展示。
在“基礎池”的建設初期,考慮到企業信息化系統的現狀,最終選擇了使用Kettle 工具來完成ETL 的大部分工作。Kettle 是一款國外開源的ETL 工具,純java 編寫,可以在Windows、Linux、Unix 上運行,它提供圖形化的界面,操作起來簡單便捷,支持多線程的處理方式,對應海量數據的處理,時間短、效率高。Kettle 可以管理不同的數據庫,在使用的過程中,可以通過系統化界面創建對應的transformation,完成針對數據的基礎轉換工作,然后創建job 設定執行頻率即可,操作簡單方便,極大的減少了開發的工作量,同時也能夠滿足企業對數據完整性和實時性的要求。
ESB 全稱為Enterprise Service Bus。它是傳統中間件技術與XML、Web 服務等技術結合的產物。ESB 是實現企業系統間的集成和數據流轉的重要技術架構,它支持各種協議的接口,對于企業不同時期開發的系統有很好的兼容性,可以簡化打通企業系統間數據流轉的工作量,讓系統間集成變得更簡單。同時ESB還集成了服務安全模塊、接口調用安全模塊、數據安全模塊以及日志監控模塊。可以將ESB理解為一個中間件平臺,包含了服務注冊、服務授權、服務監控、服務治理等服務。通過使用ESB 企業服務總線,可以簡化企業應用系統業務邏輯,變得更加簡單、更有針對性,同時也減少了企業信息化系統間的耦合度。
搭建企業服務總線時使用了Spring-Boot微服務框架,其設計的目的是可以用來簡化新Spring 應用的初始搭建以及開發過程。在使用Spring-Boot 搭建ESB 服務總線時,分別配置了開發環境、測試環境、生產環境對應的配置文件,以便在不同階段針對不同環境可以快速的進行打包、服務部署等相關工作。在ESB企業服務總線中定義了企業部門新增/修改接口、企業用戶/修改接口、企業商品新增/修改接口、企業客戶新增/修改接口等。在不同企業信息化系統中,在用到和基礎池相關數據時,均通過ESB 中提供的相關接口進行處理,減少了系統和系統間直接交互的復雜度,降低了系統服務的耦合度,同時也減少系統運維工作量。

圖1:企業服務總線ESB 平臺
企業的IT 運維人員可以對OA、CRM、ERP 等信息化系統,進行統一的用戶分配、權限設定,不再需要登錄不同的信息化系統單獨進行設定。不同業務部門的人員仍然在原有的信息化系統中處理日常工作,企業數據中心和企業數據總線的建立,對于各信息化系統的業務處理邏輯沒有任何影響。
通過ESB 提供的服務監控,能夠及時的發現問題并解決問題,提升了系統的穩定性和健壯性。伴隨著企業規模的不斷壯大,也能夠更有針對性的進行服務擴展,更加充分的利用公司服務器資源,降低企業運營成本。在建立數據中心的同時,進行了所有信息化系統的統一數據備份,在數據丟失或遭到破壞的時候,能夠及時快速的進行數據恢復工作。
隨著 ESB 的發展及企業信息化建設的推進,ESB 提供了一個強大的、可伸縮的集成平臺。本文通過ETL 和ESB 技術建設的企業數據中心和企業服務總線研究,解決了系統間信息孤立、資源無法共享的問題,降低了出錯率,提高了工作效率,簡化了信息化系統之間數據共享,提升了系統穩定性和健壯性,降低了企業運維成本,最大程度上提高了業務回收效益。實踐證明,ETL 和ESB 技術是企業實現應用系統信息化集成的一種有效實施方案。