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