胡天明 羅曉林 李晶
(1.中機國際工程設計研究院有限責任公司 湖南省長沙市 410021 2.湖南女子學院 湖南省長沙市 410021)
我院是大型的國有綜合業務設計院,隨之國家大力傳統基建轉向向新基建,公司業務有了迫切轉型的需求;為此我院提出了加快從傳統設計院向以發展EPC 總承包業務的科技型工程公司轉型的戰略,對外積極拓展國內和國際市場,擴大在全國市場的占有率和提升知名度,跟隨國機集團的全球化腳步,協同開拓國際市場;對內大力提倡科技創新,完善技能傳承,持續發力經營管理;為達成戰略目標,助力公司穩健發展,強大的信息系統支撐能力倍加重要,全面信息化建設勢在必行。為此公司在2020年同時啟動五大系統平臺的建設:辦公平臺(OA 平臺)、電子采購系統平臺、知識管理系統平臺、項目管理系統平臺與人力資源系統平臺,結合母公司的財務系統,以期實現業財一體化,為業務轉型提供強有力的支撐;實現全流程線上化、移動化。
根據我院實際情況和近幾年信息系統建設的經驗,設計企業在全面信息化建設時需要重點考慮以下幾個問題:系統軟件技術架構、系統集成、數據治理,選擇適合的信息系統。
信息技術飛速發展,硬件、軟件及理念日益月異,在不同的技術發展階段演變出了不同技術架構??傮w來講,技術架構經歷了三個階段:單體應用架構、SOA 架構和微服務架構。
一個歸檔包(例如war 格式或者Jar 格式)包含了所有功能的應用程序,我們通常稱之為單體應用,這是一種比較傳統的架構風格。
這種架構的優點是在開發團隊規模比較小時,開發效率高,訪問流量很小時,部署方便。
它的缺點是顯而易見的,單體應用架構,其特點是緊耦合,模塊的邊界模糊,依賴關系不清晰,系統復雜、錯綜交互,牽一發而動全身,是完全封閉的架構,擴展能力受限,無法按需伸縮。
SOA 是Service-OrientedArchitecture 的英文縮寫,就是面向服務的架構。一個企業應用一般包含多個不同功能單元,比如我院的電子采購平臺,它有組織架構、有臺賬、有流程、有權限等單元模塊;SOA 架構是將單個應用按一定功能類別來拆分成不同單元(稱為服務),這些被拆分的不同單元通過的接口和協議聯系起來,它是一種粗粒度、泛耦合服務架構。與單一架構相比SOA 架構優勢明顯。
1.2.1 易維護性
服務和服務之間是松散耦合關系,基于SOA 架構構造的信息系統,當需求發生變化的時候,只需修改該需求對應服務模塊的流程或代碼,不需要其它與之耦合的服務做流程或代碼級別的修改,整個應用系統維護起來更輕松,更容易,出錯概率低。
1.2.2 高可用性
SOA 架構各服務之間是松散耦合關系,相互之間無需了解對方的具體實現細節,做到各司其職,專心關注自己分內之事,可用性更高。
1.2.3 好伸縮性
正如前所述,SOA 架構是將應用按一定功能類別來拆分成不同單元,不同的單元組合來滿足不同的應用需求,當這些需求變化了只需將單元組合再拆分、調整、編輯、組合接口,這種模塊化的方式非常方便業務的伸縮。
SOA 架構的缺點:
(1)系統的性能有待提高。
(2)在事務傳送及事務撤回等方面的標準還不夠成熟。
(3)跨系統集成難度大。
(4)開發不夠敏捷。
微服務架構更像是在SOA 架構上更近一步的拆分;SOA 架構是基于重型總線ESB、集中管控的架構,而微服務架構的顆粒度小,只關注一件事情,每個微服務有單獨的進程,微服務之間輕量級通信機制,松耦合,可獨立編譯,獨立部署,獨立運行,可以說是將應用骨灰級的拆分;
微服務架構具有如下優勢:
(1)微服務架構顆粒度小,服務功能明確單一化,可組件化,業務功能可通過組件搭建,實施業務的快速部署。
(2)業務與技術最佳匹配,支持JAVA、PHP、Nodejs、.NET等多種開發語言,跨平臺。
(3)微服務的解耦性支持小團隊,快周期,多并行的開發。
(4)版本發布周期短,實現系統的在線升級,擴容,業務不中斷。
微服務帶來的好處顯而易見,一是業務上線快,組件化、零代碼的特點使得運維變得簡單敏捷,通過拖拉配置方式可搭建業務;二是支持三獨(獨立編譯、獨立部署、獨立運行),無二進制接口依賴、無部署順序依賴、無啟動順序依賴;三是開放包容,支持技術多樣性,跨平臺,多語言,樣樣拿來,樣樣行。
微服務架構亦存在一些不足之處:
(1)微服務架構可能帶來過多的操作。
(2)問題跟蹤難度增加,數據的一致性問題對開發者提出更大的挑戰。
總體來說目前很少有單體應用,主要推行的SOA 架構和微服務架構,大家可以根據業務場景的不同來選擇;如需要經??焖傩陆ɑ蛐薷牡牧鞒填愊到y,就選擇微服務架構,如我院的辦公平臺再招標時就明確要求是微服務架構;而對于項目管理或采購系統更注重集中管理和大塊業務邏輯的就可選自SOA 架構。
系統盡可能是國內外先進、成熟的軟件開發平臺開發,并考慮業務未來的發展的需要,功能模塊間耦合度小,支持各種主流的通信標準和接口標準,使系統能夠最大限度的適應技術發展的需求,以確保系統的先進性,延長系統的生命周期,提高投資效益。
企業信息系統需求是多方面,包括普通辦公、人資管理、財務管理、項目管理等,所以企業會不可避免的引入多種的信息系統,為了避免形成信息孤島,多個系統之間存在信息傳遞和數據交換,軟件系統之間的集成和整合就勢在必行;同時各個系統的數據和信息都有重疊,也要求各系統通過集成來調用解決個系統數據的一致性,實時性。
集成從方式上來說一般可以分為以下三種:
(1)淺度集成:整合現有業務系統入口,實現單點登錄,多系統認證。
(2)深度集成:支持企業拓展與業務場景緊密結合的H5 輕量化App 開發。
(3)整體集成:基于消息,場景化解決既有業務系統關鍵決策環節的BYOD。
這三種方式,淺度集成實現起來最容易,整體集成最難,深度次之;大多數的設計企業信息部門人力資源有限,軟件開發人員偏少,沒有足夠的資源和能力來對各系統進行深度集成;比較好的全系統淺度集成,少量業務深度集成。我院的各系統中,OA 系統使用得是微服務架構,組件化、接口化做得比較好,自然被用來作為系統集成平臺,其它信息系統通過接口與其對接通信,實現集成任務待辦、統一入口、統一門戶,用戶在一個界面處理各類流程或任務;將各個分離子系統連接成為一個完整、可靠、經濟和有效的整體,并使之能彼此協調工作,發揮整體效益,達到整體優化的目的。
此外為滿足業務流程的全面線上化,信息系統必須移動化,而移動智能終端千萬種,主要的操作系統有IOS 和Android;如果每個系統都開發APP,就需要有IOS 和Android 版本,而后續隨之它們的版本升級,可能也面臨要升級來適配不同的操作系統版本,顯然不是很好的途徑。我院的做法是利用公有云的企業微信產品來做各系統的連接器,在企業微信工作臺中集成信息系統,各系統通過H5 輕量化頁面即可實現移動端的登錄。
軟件系統之間的接口是實現一個系統跟另外系統進行信息交互的橋梁, 接口的通常分為兩類:webservice 接口和http api 接口;對接常用的接口協議:OPC 協議,ODBC,WebService 協議,Http Restful 協議等;在信息系統選擇時,要統一考慮各系統支持的接口及協議情況,為最終的集成提供方便。
現代企業,數據已成為企業的核心資產,做好數據的積累和分析;既能幫助企業進行經營管理,又能幫助企業進行基因和技能的傳承。
企業數據標準主要包括元數據標準和主數據標準。
元數據是關于數據的數據,有的也稱非結構化數據,來自于多個業務、管理過程中產生的例如合同等文本信息,描述文件特征的系統數據,諸如文件擁有者、訪問權限以及文件數據塊的分布信息等等,它描述一條數據包含哪些屬性信息,不同的業務會有不同的元數據。
主數據也稱結構化數據,是企業核心業務實體的數據,比如員工工號、職務、公司組織架構、供應商、客戶、合作伙伴、合同、物料單、賬戶等;它是具有高業務價值的、可以在企業內跨越各個業務部門被重復使用和分析的數據,也可以在系統中被調用,并且可以當做企業核心資產用來指導企業經營。
簡單來說,主數據就是用戶在系統使用過程中輸入的數據,建議只能由某一系統定義或修改,其它系統調用使用。一般來說企業的人力資源系統的數據是作為企業的主數據系統。
(1)對企業業務域進行定義,并對每個業務域中的業務活動進行梳理,同時需要收集各類業務單據、用戶視圖,梳理每個單據和用戶視圖的數據對象。
(2)針對數據對象的進行分析,明確每個數據實體所包含的數據項,同時,梳理并確定出該業務域中所涉及的數據指標和指標項。分析并定義每個數據實體或指標的數據項標準,包括:數據項的名稱、編碼、類型、長度、業務含義、數據來源、質量規則、安全級別、域值范圍、管理部門等。
(3)梳理和明確所有數據實體、數據指標的關聯關系,并對數據之間的關系進行標準化定義。數據關系也是數據標準管理的內容。
(4)通過以上梳理、分析和定義,確定出主數據標準管理的范圍。
各業務部門需要的數據是不同,信息化建設,需要前面考慮各系統數據的關系,并根據上述梳理標準,來進行數據治理,建立企業數據標準數據庫,通過不斷的實踐最終能建立企業數據中臺,這個需要激勵全員參與,集思廣益,對數據不斷更新完善,發揮數據在企業經營中的價值。同時也是一項復雜的、長期的、需要企業高層推動的工作。我司原綜合信息管理系統已正式運行了近5年,產生了海量的數據,舊系統可以淘汰,但是舊系統中的數據是企業的核心資產,我們通過一系列數據治理使之與新的信息系統整合利用起來。
隨著這些的年信息化建設逐步深入,我們從開始關注應用到關注系統后臺的架構以及集成、擴展等方面:
提供快速的訪問體驗。系統采用前后端分離;“前端性能”:前端采用單頁化設計,在一個頁面上集成多種功能,甚至整個系統就只有一個頁面,所有的業務功能都是它的子模塊,通過特定的方式掛接到主界面上,接口輕量化,頁面性能大量提高;“后端性能”:頁面請求只運行一次,減少大量靜態資源請求,提高服務器并發能力。
方便地通過新增/移除方式,增加/減少新的功能/模塊;軟件模塊化、組件化、接口化,快速敏捷的二次開發;同時版本方便迭代和升級,適應業務發展的需求。
軟件使用跨平臺的編程語言,兼容開源的數據庫和中間件,靈活適配不同的操作系統和X86、ARM 各類架構的硬件。
采用成熟穩定軟件技術,保證系統長期可靠運行,具備容錯機制和冗余機制,提供安全訪問和數據加密、安全存儲等策略。
全面信息化建設是一個復雜且長期的工作,建設之初要做好頂層設計,統一規劃,協調推進。
建設中一方面系統開發者要深入分析用戶需求,使開發的產品盡量符合要求,另一方面用戶也要以開放的心態,摒棄落后的思維方式和習慣,積極適應IT 技術的發展。