作者簡介:
史周軍,長期致力于大、中型企業(yè)管理軟件研發(fā)工作,積累了豐富的架構(gòu)設(shè)計和平臺規(guī)劃經(jīng)驗。在企業(yè)架構(gòu)(EA)、模型驅(qū)動開發(fā)、應(yīng)用集成、ERPforIT、軟件平臺技術(shù)等領(lǐng)域有較深入研究。歷任用友公司NC首席設(shè)計師、NC產(chǎn)品線總設(shè)計師、UAP平臺產(chǎn)品總監(jiān)等。用友軟件股份有限公司史周軍
背景
跨行業(yè)大型企業(yè)面臨如何實現(xiàn)集中管控、如何管理龐雜的各種數(shù)據(jù)、如何實時掌握企業(yè)的經(jīng)營情況、如何實現(xiàn)精準(zhǔn)決策并快速響應(yīng)、以及企業(yè)如何根據(jù)自身的發(fā)展需要實現(xiàn)快速轉(zhuǎn)型升級等問題。這些問題使得企業(yè)必然對其信息化技術(shù)與管理提出越來越高的要求,只有借助信息化技術(shù),大型企業(yè)才能實現(xiàn)打造實時企業(yè)、滿足企業(yè)全球化競爭的需要。
軟件實現(xiàn)大型企業(yè)上述需求具有技術(shù)挑戰(zhàn)性,主要體現(xiàn)在以下幾方面:首先,企業(yè)數(shù)據(jù)量大、種類繁雜。人、財、物、產(chǎn)、供、銷業(yè)務(wù)活動產(chǎn)生各種企業(yè)經(jīng)營數(shù)據(jù),包括結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)以及歷史數(shù)據(jù),數(shù)據(jù)量巨大。如何使這些數(shù)據(jù)協(xié)作起來成為可用的支持業(yè)務(wù)決策的信息,并融入到日常經(jīng)營活動中,都具有很大的技術(shù)挑戰(zhàn);其次,行業(yè)管理差異大。企業(yè)各子集團(tuán)通常屬于不同的行業(yè),各行業(yè)的管理與經(jīng)營具有自己的特點,經(jīng)營模型、管理模式、業(yè)務(wù)流程等差別很大,使用一套軟件實現(xiàn)跨行業(yè)信息化集中管理對軟件架構(gòu)具有很大的挑戰(zhàn);再次,企業(yè)集團(tuán)需要對人力、財務(wù)、資金、資產(chǎn)等領(lǐng)域?qū)崿F(xiàn)多級集團(tuán)管理與實時監(jiān)控,軟件需要支持不同的管控模式,以滿足企業(yè)戰(zhàn)略管理的需要;最后,隨需應(yīng)變,實時管理。軟件按需要具備動態(tài)適應(yīng)企業(yè)管理變化的能力,并且支持用戶可以隨時隨地對企業(yè)的經(jīng)營狀況進(jìn)行查詢、分析、決策等各項管理。
盡管存在各種挑戰(zhàn),隨著近年信息化技術(shù)的迅猛發(fā)展,特別是在硬件技術(shù)、云計算、大數(shù)據(jù)、內(nèi)存計算、BI技術(shù)、移動技術(shù)、互聯(lián)網(wǎng)技術(shù)、企業(yè)架構(gòu)等領(lǐng)域的發(fā)展,在構(gòu)建實時企業(yè)及跨行業(yè)復(fù)雜軟件系統(tǒng)等方面提供了很多技術(shù)支撐。在這些技術(shù)基礎(chǔ)上,本文結(jié)合軟件架構(gòu)設(shè)計對構(gòu)建大型企業(yè)跨行業(yè)集中管理軟件方案的一些主要問題進(jìn)行分析和探討。
實現(xiàn)大型企業(yè)跨行業(yè)集中管理軟件方案需要考慮的因素較多,本文從軟件平臺、分層體系、軟件設(shè)計、數(shù)據(jù)模型、應(yīng)用模型、部署模型等幾個方面進(jìn)行分析,如圖-1所示。
圖-1:軟件方案關(guān)鍵組成部分
該方案主要由以下幾部分組成:
1)軟件需以平臺為支撐。即軟件系統(tǒng)必須建立在一個強(qiáng)大的平臺之上。該平臺需要融合當(dāng)前的硬件技術(shù)、軟件技術(shù),包括云計算、內(nèi)存技術(shù)、并行技術(shù)等。通過平臺工具來實現(xiàn)軟件的開發(fā)、運(yùn)行、集成、實施、運(yùn)營、服務(wù)支持等軟件的全生命周期管理;
2)需要有一個合理的分層架構(gòu)。包括核心產(chǎn)品層、行業(yè)層、本地化層、伙伴層、客戶層。通過分層使軟件具備靈活性和擴(kuò)展能力以及應(yīng)用的融合能力;
3)軟件設(shè)計策略。領(lǐng)域應(yīng)用、行業(yè)應(yīng)用等均可根據(jù)需要進(jìn)行組裝,這就要求軟件設(shè)計需要實現(xiàn)松耦合、服務(wù)化的設(shè)計,實現(xiàn)動態(tài)建模、應(yīng)用組裝、動態(tài)構(gòu)造、動態(tài)部署等;
4)建立跨行業(yè)數(shù)據(jù)模型。實現(xiàn)跨行業(yè)集中管理,必須解決多行業(yè)數(shù)據(jù)模型問題、系統(tǒng)數(shù)據(jù)及基礎(chǔ)數(shù)據(jù)的跨行業(yè)管理問題;
5)應(yīng)用模型構(gòu)建。解決不同行業(yè)的經(jīng)營模型、管理模式、業(yè)務(wù)流程、業(yè)務(wù)規(guī)則等問題,以及行業(yè)數(shù)據(jù)的使用問題;
6)軟件系統(tǒng)部署。幫助企業(yè)設(shè)計、選擇如何部署跨行業(yè)集中管理的軟件系統(tǒng)。
軟件平臺:
平臺需要提供:
1)基礎(chǔ)技術(shù)設(shè)施。平臺需要提供云計算、內(nèi)存計算、并行計算、大數(shù)據(jù)、BI、移動、物聯(lián)網(wǎng)等基礎(chǔ)技術(shù)設(shè)施,提供各種開發(fā)服務(wù)及運(yùn)行服務(wù);
2)可視化開發(fā)環(huán)境。支持核心產(chǎn)品開發(fā)、行業(yè)產(chǎn)品開發(fā)、本地化產(chǎn)品開發(fā)、伙伴開發(fā)及客戶開發(fā)等,提供覆蓋軟件生態(tài)系統(tǒng)開發(fā)支撐。提供模型驅(qū)動的設(shè)計、開發(fā)、測試、構(gòu)造、組裝、發(fā)布等研發(fā)全過程的可視化集成開發(fā)環(huán)境;
3)應(yīng)用集成平臺。支持企業(yè)應(yīng)用集成,在企業(yè)服務(wù)總線(ESB)、消息中間件等基礎(chǔ)上,支持如Portal集成、數(shù)據(jù)集成、消息集成、流程集成等集成類型,提供應(yīng)用集成設(shè)計工具、應(yīng)用適配器、應(yīng)用集成監(jiān)控工具等,支持軟件系統(tǒng)與客戶的自有系統(tǒng)、第三方產(chǎn)品的應(yīng)用整合;
4)云資源管理與企業(yè)應(yīng)用管理。提供對企業(yè)中的物理機(jī)、虛機(jī)、網(wǎng)絡(luò)、服務(wù)器、存儲設(shè)備等基于云計算技術(shù)的資源管理,以及軟件應(yīng)用的全生命周期管理,包括軟件系統(tǒng)的客戶化定制、軟件部署、自動測試、個性化配置、運(yùn)行監(jiān)控、應(yīng)用資產(chǎn)管理、補(bǔ)丁管理等各種系統(tǒng)應(yīng)用管理工具。為系統(tǒng)的安全、穩(wěn)定運(yùn)行,為軟件適應(yīng)企業(yè)管理快速變化提供重要基礎(chǔ)服務(wù)。
一個典型的平臺主要包括以下內(nèi)容,如圖-2所示:
圖-2:軟件平臺
分層模型:
本文設(shè)計了一個分層模型,如圖-3所示。通過分層解決核心領(lǐng)域應(yīng)用、行業(yè)應(yīng)用、本地化應(yīng)用、伙伴擴(kuò)展以及客戶化應(yīng)用的擴(kuò)展能力和靈活配置能力,并實現(xiàn)重用以及多層次應(yīng)用組裝。軟件系統(tǒng)往往需要在各個層次進(jìn)行擴(kuò)展或定制開發(fā),用于增強(qiáng)或修改業(yè)務(wù)邏輯。分層結(jié)構(gòu)隔離了系統(tǒng)中各層開發(fā)所作的修改,各個層次修改的對象均被標(biāo)識并被放在各自的系統(tǒng)目錄結(jié)構(gòu)中,將相互之間的影響降到最低。因此,分層模型使得軟件在系統(tǒng)修復(fù)BUG、軟件升級后,伙伴、客戶等開發(fā)的功能仍可以使用,從而能夠有效減少客戶的總擁有成本(TCO)。
圖-3:分層結(jié)構(gòu)
基于分層模型,可以擴(kuò)展到整個軟件生態(tài)系統(tǒng)。支持行業(yè)解決方案開發(fā)、本地化應(yīng)用開發(fā)、客戶化開發(fā),以及應(yīng)用咨詢、實施、支持等服務(wù)。通過軟件生態(tài)系統(tǒng)可以為企業(yè)提供更全面、更及時的服務(wù)。支持分層開發(fā)與應(yīng)用融合的服務(wù)通常由軟件平臺來提供。
軟件設(shè)計:
大型企業(yè)跨行業(yè)集中管理的軟件系統(tǒng)比較復(fù)雜,業(yè)務(wù)模型、管理模式、組織、流程、業(yè)務(wù)規(guī)則、主數(shù)據(jù)等在各個行業(yè)之間可能有較大差別,樂購網(wǎng)了解(www.xglongwei.com)且每個行業(yè)的業(yè)務(wù)也會根據(jù)經(jīng)營的需求進(jìn)行變化,因此軟件快速適應(yīng)變化的能力尤為關(guān)鍵。在考慮軟件的模塊設(shè)計、組件設(shè)計、服務(wù)設(shè)計,以及軟件部署時應(yīng)充分考慮系統(tǒng)的松耦合及擴(kuò)展能力,隔離彼此之間的影響�?梢钥紤]使用OSGi、SOA架構(gòu)、業(yè)務(wù)模型組件化(CBM)、動態(tài)企業(yè)建模(DEM)等技術(shù)來實現(xiàn)業(yè)務(wù)組件化、組件服務(wù)化、應(yīng)用組裝化、按特性發(fā)布及動態(tài)部署,以滿足企業(yè)管理隨需應(yīng)變的需要。
圖-4軟件設(shè)計
軟件設(shè)計直接影響軟件自身的質(zhì)量與能力,因此軟件設(shè)計策略的選擇對于大型復(fù)雜軟件系統(tǒng)來說至關(guān)重要。
數(shù)據(jù)模型:
大型企業(yè)跨行業(yè)集中管理中的數(shù)據(jù)模型需要同時支持多個行業(yè)的應(yīng)用。本文設(shè)計的數(shù)據(jù)模型基于元數(shù)據(jù)技術(shù)對軟件系統(tǒng)的業(yè)務(wù)實體進(jìn)行建摸,并在實體模型和數(shù)據(jù)模型中需加入行業(yè)維與分層信息。如下圖-5所示:
圖-5:數(shù)據(jù)模型
分層信息和所屬行業(yè)信息共同形成一個標(biāo)簽(Tag),用于標(biāo)識各層研發(fā)組織所開發(fā)的成果。標(biāo)簽用于標(biāo)識業(yè)務(wù)模型的實體、屬性、服務(wù)接口和實現(xiàn)類代碼中的名稱等,通過ORMapping技術(shù)這些Tag可以標(biāo)識數(shù)據(jù)庫中的表和字段,以及標(biāo)識各層開發(fā)者編寫的代碼名稱空間。為使用基于Tag的數(shù)據(jù)模型,軟件平臺需要提供一個業(yè)務(wù)實體框架來對數(shù)據(jù)模型的存儲、訪問、擴(kuò)展等提供支持服務(wù)。
通過Tag機(jī)制還可以將軟件系統(tǒng)數(shù)據(jù)和基礎(chǔ)數(shù)據(jù)根據(jù)分層模型進(jìn)行管理�?梢园凑辗謱有畔⒑托袠I(yè)信息來區(qū)分存在軟件系統(tǒng)的系統(tǒng)數(shù)據(jù),如UI模板、查詢模板、報表定義、流程定義等。不同行業(yè)有自己的基礎(chǔ)數(shù)據(jù)和主數(shù)據(jù),可以基于分配模式或管控模式使用和管理這些數(shù)據(jù)。以管控模式為例,可以根據(jù)管控要求將數(shù)據(jù)分為全局級數(shù)據(jù)、集團(tuán)級數(shù)據(jù)和組織級數(shù)據(jù),并根據(jù)管理的范圍區(qū)分可管理范圍與可使用范圍。在集團(tuán)的信息模型中需要定義行業(yè)屬性,這樣通過運(yùn)行時上下文中的集團(tuán)所屬行業(yè)信息就可以實現(xiàn)具體應(yīng)用中行業(yè)數(shù)據(jù)的管理和使用。
應(yīng)用模型:
IT技術(shù)網(wǎng)分析(www.17bianji.com)從應(yīng)用模型方面來看,支持跨行業(yè)應(yīng)用集中管理的軟件系統(tǒng)的設(shè)計可以采用不同的方法。例如,可以使用SwitchFramework方法來開發(fā)應(yīng)用模型,基于該方法,每個應(yīng)用均需要按行業(yè)分支開發(fā)各自的流程、功能、業(yè)務(wù)規(guī)則等。在運(yùn)行時,服務(wù)器需要根據(jù)客戶端會話的上下文信息(包含行業(yè)信息),動態(tài)地將請求通過行業(yè)分支找到對應(yīng)的行業(yè)流程、功能、規(guī)則及數(shù)據(jù)并執(zhí)行。這種方案的優(yōu)點是應(yīng)用模型比較靈活、易于提取跨行業(yè)的公共服務(wù);缺點是將多個行業(yè)的應(yīng)用模型耦合在一起,導(dǎo)致了行業(yè)應(yīng)用在開發(fā)、擴(kuò)展時復(fù)雜度較高,由于運(yùn)行時耦合了很多判斷邏輯也會對性能產(chǎn)生一定的影響。
應(yīng)用模型開發(fā)還可以采用按行業(yè)進(jìn)行服務(wù)器分組的方法。通過與部署模型相結(jié)合進(jìn)行設(shè)計(參見圖:部署模型),將行業(yè)的應(yīng)用服務(wù)器按行業(yè)進(jìn)行分組,一個服務(wù)器組中只部署一種行業(yè)的應(yīng)用。由于一個服務(wù)器只支持一個行業(yè)的應(yīng)用,這樣就可以直接訪問服務(wù)器的程序而不需進(jìn)行復(fù)雜的行業(yè)插件或規(guī)則的分支判斷,行業(yè)應(yīng)用模型可以只考慮本領(lǐng)域的業(yè)務(wù)模型而不需要考慮其他行業(yè)的影響,因此,跨行業(yè)開發(fā)的復(fù)雜度及難度都較低。該方法的缺點是由于按行業(yè)對服務(wù)器進(jìn)行了分組,導(dǎo)致軟件系統(tǒng)的集群管理及運(yùn)維工作比較復(fù)雜,另外由于各行業(yè)的應(yīng)用分別設(shè)計和開發(fā),不利于跨行業(yè)通用功能與規(guī)則的抽取和共享。
部署模型:
采用SwitchFramework方法的軟件系統(tǒng)部署比較常見,本文不再討論。采用按行業(yè)進(jìn)行服務(wù)器分組的部署方案可以如圖-6所示,每個行業(yè)可以根據(jù)本行業(yè)的負(fù)載及并發(fā)訪問需求對本組服務(wù)器進(jìn)行彈性部署。另外,MasterServer需要根據(jù)客戶請求的上下文信息透明地將請求分發(fā)至對應(yīng)的行業(yè)服務(wù)器組中。
圖-6:部署模型
數(shù)據(jù)庫服務(wù)可以通過使用類似Oracle的RAC技術(shù)實現(xiàn)數(shù)據(jù)庫集群,從而在數(shù)據(jù)庫層能夠?qū)崿F(xiàn)橫向伸縮,實現(xiàn)對企業(yè)數(shù)據(jù)的存儲與訪問支持。
結(jié)論:
支持大型企業(yè)跨行業(yè)集中管理的軟件方案相對比較復(fù)雜,本文在幾個方面進(jìn)行了探討:采用適合的軟件設(shè)計方法與策略,對軟件建立一個分層體系,通過平臺提供的基礎(chǔ)技術(shù)服務(wù),結(jié)合數(shù)據(jù)模型、部署模型的設(shè)計,選擇適合的應(yīng)用模型設(shè)計方法,為實現(xiàn)一個能夠支持大型企業(yè)跨行業(yè)集中管理的軟件方案提供服務(wù)。
本文針對大型企業(yè)跨行業(yè)集中管理軟件方案的一些關(guān)鍵部分進(jìn)行了分析和探討,其它一些技術(shù)問題暫未涉及,例如跨行業(yè)集中管理的數(shù)據(jù)隔離與一致性問題、業(yè)務(wù)對象鎖機(jī)制問題、跨行業(yè)的動態(tài)企業(yè)建模問題等。這些技術(shù)在軟件設(shè)計時需要考慮,但基本服務(wù)可以由軟件平臺來提供。分享/nuli.org)
推薦閱讀
11月21日,主營語言聊天軟件的網(wǎng)絡(luò)技術(shù)公司YY成功在美國上市。由于今年行情低迷,YY的成功上市被業(yè)界稱為破冰之旅。在上周六的創(chuàng)業(yè)邦年會上,記者專訪了YY創(chuàng)始人、CEO李學(xué)凌。他向記者強(qiáng)調(diào),YY不是破冰者,是敢死隊。>>>詳細(xì)閱讀
本文標(biāo)題:大型企業(yè)跨行業(yè)集中管理的軟件方案分析與探討
地址:http://www.xglongwei.com/a/43/20121204/88357.html