ERP系統(tǒng)架構(gòu)的完備性解析
作為一個(gè)ERP,簡單粗暴來說可以分為平臺(tái)和業(yè)務(wù)子系統(tǒng)兩部分。ERP平臺(tái)架構(gòu)的完備性如何評(píng)估,業(yè)務(wù)子系統(tǒng)架構(gòu)的完備性如何評(píng)估,業(yè)務(wù)子系統(tǒng)功能的完備性如何評(píng)估,這都是需要講與究的。
當(dāng)然,從現(xiàn)代軟件應(yīng)用架構(gòu)分層角度來看,有UI層(還細(xì)分為UI展示、UI控制、UI前置后置數(shù)據(jù)處理)、業(yè)務(wù)邏輯層(還細(xì)分為服務(wù)整合、領(lǐng)域?qū)嶓w、數(shù)據(jù)持久化)、數(shù)據(jù)存儲(chǔ)層(還細(xì)分為數(shù)據(jù)視圖、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)ETL)。在這三層之間,每兩層與層之間還有接口層,做調(diào)用對(duì)接和數(shù)據(jù)傳輸用,這些層都需要專門設(shè)計(jì)。我們一是需要這樣的設(shè)計(jì)方法,二是需要把這些設(shè)計(jì)方法在日常應(yīng)用子系統(tǒng)架構(gòu)設(shè)計(jì)層面落實(shí),這就需要專門的應(yīng)用架構(gòu)師,專門在業(yè)務(wù)子系統(tǒng)實(shí)現(xiàn)設(shè)計(jì)層面發(fā)力。他們既要精通實(shí)現(xiàn)設(shè)計(jì)方法,還需要對(duì)業(yè)務(wù)架構(gòu)有一定功底,才能讓做出來的實(shí)現(xiàn)設(shè)計(jì)符合業(yè)務(wù)粒度、業(yè)務(wù)演進(jìn)。能有這兩方面功底的都是寶貝人才。
ERP的架構(gòu),其本質(zhì)是為了在大層面大框架上保證ERP軟件在開發(fā)和維護(hù)演進(jìn)過程中一直能在機(jī)制上底層上框架上保證質(zhì)量和維護(hù)效率。沒有專門的應(yīng)用架構(gòu)和平臺(tái)架構(gòu)設(shè)計(jì),ERP軟件就成了功能實(shí)現(xiàn)代碼的堆砌,堆個(gè)五六年就藕斷絲連按下葫蘆起了瓢了,就跟打地鼠一樣,越到后來地鼠越多越神出鬼沒,最后幾雙手都按不住了,Game Over了。
當(dāng)然,ERP的應(yīng)用架構(gòu)的完備性評(píng)估,ISO早就有好的標(biāo)準(zhǔn)體系,這就是標(biāo)準(zhǔn)和標(biāo)桿的威力。你還在自己苦苦追尋、琢磨、看書、動(dòng)手,人家已經(jīng)有現(xiàn)成方法放那里了,所以不要亂摸索,尤其在計(jì)算機(jī)業(yè),我們國內(nèi)和外國差距少說20年,太陽底下無新鮮事,先學(xué)習(xí)人家的標(biāo)準(zhǔn),而不要自己埋頭瞎琢磨。
ISO/IEC9126是一個(gè)評(píng)估軟件質(zhì)量的通用模型,我個(gè)人也感覺是適用于ERP軟件。畢竟,ERP也只是一個(gè)軟件中的一種,它具有軟件的基本特征。
看看ISO9126怎么說:
ISO9216把軟件質(zhì)量分為六大特性27個(gè)子特性
1. 功能性
- 適合性suitability
- 準(zhǔn)確性accuracy
- 保密安全性security
- 互操作性interoperability
- 功能性的依從性functionality compliance
2. 可靠性
- 成熟性maturity
- 容錯(cuò)性fault tolerance
- 易恢復(fù)性recoverability
- 可靠性的依從性reliability compliance
3. 易用性
- 易理解性u(píng)nderstandability
- 易學(xué)性learn ability
- 易操作性operability
- 吸引性attractiveness
- 易用性的依從性u(píng)sability compliance
4. 效率
- 時(shí)間特性time behavīor
- 資源利用性resource utilization
- 效率的依從性efficiency compliance
5. 維護(hù)性
- 易分析性analyzability
- 易改變性changeability
- 穩(wěn)定性stability
- 易測試性testability
- 維護(hù)性的依從性maintainability compliance
6. 可移植性
- 適應(yīng)性adaptability
- 易安裝性install ability
- 共存性co-existence
- 易替換性replace ability
- 可移植的依從性portability compliance
當(dāng)然,這是全視角完備性來看。但我們可以裁減性的去重點(diǎn)關(guān)注,以及每個(gè)時(shí)期不斷演進(jìn)成熟不斷轉(zhuǎn)移關(guān)注重點(diǎn)。
一、在最基礎(chǔ)層面:安全、性能、數(shù)據(jù)正確、功能正確,怎么在應(yīng)用架構(gòu)專業(yè)方法和流程職責(zé)機(jī)制上保證。不少ERP軟件目前還重點(diǎn)關(guān)注在功能是否符合客戶需要,功能是否符合設(shè)計(jì)要求。還沒有橫切面研究安全架構(gòu),也沒有研究如何在架構(gòu)方法層面保證數(shù)據(jù)正確性。要想開展研究,就得按橫切維度,如安全,就按照ERP應(yīng)用架構(gòu)一層層去分析如何在每層的框架上保證安全。當(dāng)然,深入更現(xiàn)實(shí)的一個(gè)具體的功能模塊或引擎服務(wù),也需要這個(gè)維度去定制化思考與設(shè)計(jì)。
還有一個(gè)維度也是最基礎(chǔ)層面,但很多人容易忽略它。那就是可測試。業(yè)務(wù)邏輯層怎么測、UI層怎么測、數(shù)據(jù)層怎么測。
二、做到了基礎(chǔ)層面,就進(jìn)入了軟件的持續(xù)維護(hù)改進(jìn)階段。可持續(xù)改進(jìn)維護(hù)、可移植、可向下兼容、可對(duì)內(nèi)對(duì)外集成是關(guān)鍵切面了。這也是需要應(yīng)用架構(gòu)層面專項(xiàng)切面來研究的。研究方法一樣,仍然是按照軟件分層來層層有專門的架構(gòu)設(shè)計(jì)。
可持續(xù)改進(jìn)維護(hù),有兩個(gè)小分支,一個(gè)是產(chǎn)品功能和業(yè)務(wù)模型不斷演進(jìn),需要代碼可持續(xù)改進(jìn)維護(hù)。如何在架構(gòu)層面保證。一個(gè)是客戶定制代碼可持續(xù)改進(jìn)維護(hù)。尤其是客戶定制代碼和產(chǎn)品代碼之間的解耦離合關(guān)系,以及客戶定制代碼升級(jí)與產(chǎn)品代碼升級(jí)的相互影響關(guān)系,這兩個(gè)關(guān)系需要巧妙的應(yīng)用架構(gòu)設(shè)計(jì)和實(shí)現(xiàn)設(shè)計(jì)。
可移植,一說是跨平臺(tái)的移植,如跨UI技術(shù)、跨業(yè)務(wù)邏輯開發(fā)語言技術(shù)、跨數(shù)據(jù)庫技術(shù)、跨硬件設(shè)備。二說是一個(gè)功能模塊如何可移植到其他版本或特定客戶。這也需要應(yīng)用架構(gòu)研究。
可向下兼容,我們經(jīng)常會(huì)遇到業(yè)務(wù)模型本身就不兼容了,我們的代碼如何最大化的保證向下兼容,這樣代碼維護(hù)質(zhì)量和效率就高。在中國現(xiàn)狀,業(yè)務(wù)模型本身不兼容是一件比較常見的事,畢竟在快速受到各方面各路子方法或思想的沖擊,過去積累少,一下來的太多,選擇的方法和自己的現(xiàn)狀問題不匹配是很正常的。
集成,有對(duì)內(nèi)集成,如自己產(chǎn)品線的各個(gè)模塊;有對(duì)外的集成,要把其他系統(tǒng)的功能、引擎、流程、數(shù)據(jù)集成進(jìn)來或輸出接口API,這也需要考究的應(yīng)用架構(gòu)。
三、做完這些基礎(chǔ)層和高級(jí)層,我們就需要關(guān)注到整個(gè)協(xié)作鏈條上的關(guān)注點(diǎn)了。
那就是可升級(jí),可安裝、可實(shí)施、易用性、可運(yùn)維。
可升級(jí),有四個(gè)分支:整體升級(jí)、子系統(tǒng)模塊升級(jí)、定制開發(fā)專項(xiàng)升級(jí)、BUG補(bǔ)丁升級(jí)。
可安裝,也有五個(gè)分支:演示環(huán)境安裝、測試環(huán)境安裝、生產(chǎn)環(huán)境安裝、重新安裝、災(zāi)難恢復(fù)。
可實(shí)施。實(shí)施人員往往配置業(yè)務(wù)參數(shù)、初始化數(shù)據(jù)\導(dǎo)入數(shù)據(jù)、配置流程、配置報(bào)表和查詢。這些實(shí)施工具需要涵蓋考慮。
易用性是相對(duì)客戶而言的。很多人說ERP很復(fù)雜。但其實(shí)本質(zhì)上并不是。因?yàn)楹芏嗥髽I(yè)主對(duì)自己上ERP到底需要明確解決哪幾個(gè)問題,沒有顯性化的清單。對(duì)IT技術(shù)實(shí)現(xiàn)的軟件的擅長面和不擅長面更是不了解,要么把ERP當(dāng)做先進(jìn)管理制度的顯性產(chǎn)物來高捧看來,要么把ERP當(dāng)做EXCEL或強(qiáng)大計(jì)算器在用。而且很多企業(yè)沒有細(xì)致的顯性化的組織崗位職責(zé)、流程、表單、報(bào)表、考核,即使有,也是現(xiàn)實(shí)和制度兩張皮。這是企業(yè)方的問題,另外在ERP開發(fā)方,也沒有按照業(yè)務(wù)場景來設(shè)計(jì)ERP,而是把各種業(yè)務(wù)場景都分析完然后整合成幾個(gè)功能模塊給客戶,就如同一把刀做N種菜,當(dāng)然高不成低不就,不易用就產(chǎn)生了。對(duì)于易用性的橫切面研究,也需要一層層的按照架構(gòu)來研究,而不是只局限關(guān)注在每個(gè)具體功能的易用性。要靠架構(gòu)在框架上保證易用性,而不是在每個(gè)具體點(diǎn)保證易用性。這是關(guān)鍵出路。
可運(yùn)維。你的軟件安裝到了客戶處,你對(duì)你的軟件使用情況和軟件運(yùn)行情況了解不?這就是可運(yùn)維。需要在應(yīng)用架構(gòu)層面一層層考慮如何在各層增強(qiáng)可運(yùn)維,提供可運(yùn)維需要的功能和數(shù)據(jù)信息。
知道了這么多橫切面維度,我們就需要按維度和軟件分層做個(gè)二維表,看看每個(gè)維度每一層需要做些什么事,我們已經(jīng)做了哪些事,哪些事還是一片空白,哪些事還需要改進(jìn)。有這樣一個(gè)大完備性清單了,我們就可以根據(jù)優(yōu)先級(jí)來分步研究、落地了。