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