摘 要:本文首先分析了ERP、SRM等企業(yè)應(yīng)用軟件通常的開(kāi)發(fā)模式,提出了基于模型驅(qū)動(dòng)的應(yīng)用軟件建模平臺(tái)的背景和意義,并詳細(xì)介紹了建模平臺(tái)的設(shè)計(jì)思路和實(shí)現(xiàn)方案,說(shuō)明了平臺(tái)的技術(shù)特點(diǎn)和應(yīng)用特性,闡述了在平臺(tái)使用過(guò)程中可以針對(duì)企業(yè)的不同業(yè)務(wù)需求隨需而變,動(dòng)態(tài)調(diào)整流程、動(dòng)態(tài)配置業(yè)務(wù),最后從實(shí)施角度分析了平臺(tái)應(yīng)用的關(guān)鍵點(diǎn).總之,建模平臺(tái)是應(yīng)用軟件平臺(tái)化的一種探索,目標(biāo)是通過(guò)實(shí)現(xiàn)“模型驅(qū)動(dòng)、隨需而變”,達(dá)到“快速實(shí)施、保障質(zhì)量”。
關(guān)鍵詞:模型;建模;平臺(tái);業(yè)務(wù)流程;動(dòng)態(tài)配置;工作流
中圖分類號(hào):TP311.52
計(jì)算機(jī)技術(shù)誕生以來(lái),IT技術(shù)和應(yīng)用迅猛發(fā)展,計(jì)算機(jī)硬件、軟件都得到了空前發(fā)展和應(yīng)用。各種應(yīng)用軟件開(kāi)發(fā)公司應(yīng)運(yùn)而生,應(yīng)用軟件遍布于各行各業(yè),大到集團(tuán)公司、民營(yíng)企業(yè),行業(yè)覆蓋制造業(yè)、醫(yī)藥、食品、快速消費(fèi)品、能源、化工、材料等,開(kāi)發(fā)的系統(tǒng)包括ERP、CRM客戶關(guān)系管理系統(tǒng)、SRM供應(yīng)鏈管理系統(tǒng)、分銷管理系統(tǒng)、酒店管理系統(tǒng)、醫(yī)藥管理系統(tǒng)、各種定制開(kāi)發(fā)的應(yīng)用系統(tǒng)等,這些應(yīng)用系統(tǒng)的軟件提供商也就是軟件企業(yè),主要有三類,一類是個(gè)性化開(kāi)發(fā),一類是提供具有標(biāo)準(zhǔn)功能模塊的產(chǎn)品,第三類是提供軟件平臺(tái)。在軟件行業(yè),人們常說(shuō):一流的企業(yè)做平臺(tái),二流的企業(yè)做產(chǎn)品,三流的企業(yè)做開(kāi)發(fā)。因此可以看出,產(chǎn)品“平臺(tái)化”發(fā)展是必然趨勢(shì)。這方面國(guó)外廠商走在前面,國(guó)內(nèi)軟件產(chǎn)品,特別是管理軟件,完全平臺(tái)化的產(chǎn)品很少,而基于業(yè)務(wù)驅(qū)動(dòng)的建模式平臺(tái),可以說(shuō)幾乎沒(méi)有。
那么平臺(tái)化、產(chǎn)品化有什么優(yōu)勢(shì)呢?為什么說(shuō)一流企業(yè)要做平臺(tái)化呢?
1 建模平臺(tái)產(chǎn)生的背景和意義
軟件一般如何開(kāi)發(fā)?通常的模式都是需求調(diào)研、需求分析、系統(tǒng)設(shè)計(jì)、編碼、測(cè)試到實(shí)施、維護(hù)這樣一個(gè)全生命周期的過(guò)程。有些公司更是采用軟件作坊的形式,拿到一個(gè)項(xiàng)目,只要三五個(gè)人十來(lái)?xiàng)l槍,就可以完成項(xiàng)目。而實(shí)際項(xiàng)目實(shí)施過(guò)程中,是不斷反復(fù)的一個(gè)過(guò)程。特別是項(xiàng)目需求變化時(shí),不管是簡(jiǎn)單的界面布局、界面信息量增減的需求,還是復(fù)雜的業(yè)務(wù)處理規(guī)則的改變、業(yè)務(wù)流程的變化,都需要重復(fù)從需求分析、設(shè)計(jì)、編碼、測(cè)試這樣一個(gè)過(guò)程??梢?jiàn),傳統(tǒng)的“以企業(yè)需求來(lái)驅(qū)動(dòng),由軟件公司來(lái)開(kāi)發(fā)的企業(yè)信息系統(tǒng)”建設(shè)模式,存在著沒(méi)有總體規(guī)劃、需求變化頻繁,迭代周期長(zhǎng),軟件公司被動(dòng)采用人海戰(zhàn)術(shù),質(zhì)量難以保證,無(wú)法將項(xiàng)目產(chǎn)品化,擴(kuò)大其價(jià)值范圍。因此,企業(yè)希望信息系統(tǒng)有序發(fā)展、有效集成,以減少重復(fù)投入開(kāi)發(fā)、交叉開(kāi)發(fā)、信息不能共享的狀況。
筆者做過(guò)多年的ERP、MES應(yīng)用軟件產(chǎn)品開(kāi)發(fā)和項(xiàng)目實(shí)施,也做過(guò)SRM、CRM、分銷等管理軟件的開(kāi)發(fā)實(shí)施,通過(guò)總結(jié)應(yīng)用軟件產(chǎn)品的開(kāi)發(fā)和實(shí)施特點(diǎn),分析應(yīng)用系統(tǒng)功能界面展示形式,提煉業(yè)務(wù)處理類型和業(yè)務(wù)處理方式,研究實(shí)施過(guò)程中客戶需求變化的類型和規(guī)律,設(shè)計(jì)形成了一套基于模型驅(qū)動(dòng)的智能開(kāi)發(fā)平臺(tái),簡(jiǎn)稱建模平臺(tái)。建模平臺(tái)可以針對(duì)企業(yè)的不同業(yè)務(wù)需求隨需而變,實(shí)現(xiàn)“模型驅(qū)動(dòng)、隨需而變”,目標(biāo)是“快速實(shí)施、保障質(zhì)量”。
2 建模平臺(tái)的設(shè)計(jì)思路和實(shí)現(xiàn)方案
首先,從應(yīng)用系統(tǒng)本身來(lái)看,應(yīng)用系統(tǒng)不管有多少模塊、有多少功能,都有一個(gè)共同點(diǎn),在前臺(tái)界面展示結(jié)構(gòu)化數(shù)據(jù)并與用戶交互,把交互命令傳到后臺(tái),由后臺(tái)處理前臺(tái)命令,并進(jìn)行結(jié)構(gòu)化數(shù)據(jù)處理。建模平臺(tái)設(shè)計(jì)正是以此為基礎(chǔ),改變了傳統(tǒng)應(yīng)用軟件的設(shè)計(jì)方法和運(yùn)行方式,平臺(tái)把軟件的開(kāi)發(fā)周期劃分為兩個(gè)層面:設(shè)計(jì)層和運(yùn)行層。
設(shè)計(jì)層首先分析企業(yè)業(yè)務(wù)需求形成業(yè)務(wù)設(shè)計(jì)模型,并將業(yè)務(wù)設(shè)計(jì)模型抽象為系統(tǒng)要求的分層技術(shù)模型,即數(shù)據(jù)模型、業(yè)務(wù)模型、展現(xiàn)模型。這里所說(shuō)的分層技術(shù)模型的三個(gè)模型與目前常說(shuō)的B/S架構(gòu)下的三層架構(gòu)不同。三層架構(gòu)是站在技術(shù)角度,將技術(shù)架構(gòu)劃分為三層,即數(shù)據(jù)層、邏輯層、展示層。另外,目前很多定制類開(kāi)發(fā)項(xiàng)目,也稱是在做平臺(tái),這個(gè)平臺(tái)其實(shí)是開(kāi)發(fā)框架或稱為技術(shù)框架,是封裝了一些通用的底層技術(shù)和類,同時(shí)提供了有關(guān)系統(tǒng)管理方面如用戶、角色、權(quán)限等基本的非業(yè)務(wù)的功能,本質(zhì)上不是本文所講的平臺(tái);而建模平臺(tái)是站在業(yè)務(wù)角度,將業(yè)務(wù)實(shí)現(xiàn)過(guò)程拆分為三種模型,通過(guò)模型間的聯(lián)動(dòng)和統(tǒng)一,完成數(shù)據(jù)存儲(chǔ)及邏輯處理,實(shí)現(xiàn)業(yè)務(wù)功能,并可動(dòng)態(tài)調(diào)整和配置。
設(shè)計(jì)層通過(guò)建模過(guò)程完成,建模就是采用模型化、構(gòu)件化設(shè)計(jì),可以實(shí)現(xiàn)在軟件使用過(guò)程中動(dòng)態(tài)調(diào)整業(yè)務(wù)流程,動(dòng)態(tài)配置業(yè)務(wù)功能,實(shí)現(xiàn)了軟件的配置與信息管理的一體化應(yīng)用。
動(dòng)態(tài)調(diào)整業(yè)務(wù)流程源于業(yè)務(wù)處理的過(guò)程,企業(yè)錯(cuò)綜復(fù)雜的業(yè)務(wù)流程就像很多條線,縱橫交錯(cuò)。每一個(gè)業(yè)務(wù)流程就像一條線,把業(yè)務(wù)過(guò)程點(diǎn)一個(gè)個(gè)串起來(lái),從而完成一條端到端的業(yè)務(wù)。是一條條線之間,應(yīng)用系統(tǒng)中的業(yè)務(wù)流程主要體現(xiàn)在兩個(gè)方面:一個(gè)是業(yè)務(wù)流轉(zhuǎn)流程,一個(gè)是審批工作流。
對(duì)于業(yè)務(wù)流轉(zhuǎn)流程,一般應(yīng)用系統(tǒng)通過(guò)一個(gè)功能與其他功能間的勾稽關(guān)系實(shí)現(xiàn),表現(xiàn)形式有拉式和推式。功能間的勾稽關(guān)系也體現(xiàn)在分層技術(shù)模型的三個(gè)層面:數(shù)據(jù)層面、業(yè)務(wù)邏輯關(guān)系、界面展示,這三者本身不可分割,展示層提供勾稽關(guān)系處理的形式,后臺(tái)邏輯處理和數(shù)據(jù)層面完成真正的關(guān)聯(lián)關(guān)系。不論是展示層還是業(yè)務(wù)處理,都是基于數(shù)據(jù)層面即結(jié)構(gòu)化數(shù)據(jù)的支撐,通過(guò)對(duì)結(jié)構(gòu)化數(shù)據(jù)表之間業(yè)務(wù)關(guān)聯(lián)關(guān)系的分析,可以從中發(fā)現(xiàn)關(guān)聯(lián)關(guān)系的共性特點(diǎn),從而抽象形成關(guān)于業(yè)務(wù)流轉(zhuǎn)流程的數(shù)據(jù)模型、業(yè)務(wù)模型、展現(xiàn)模型,完成了業(yè)務(wù)流轉(zhuǎn)的建模過(guò)程。
對(duì)于審批工作流,可以實(shí)現(xiàn)表單和數(shù)據(jù)的發(fā)送、處理、審批,支持自動(dòng)流轉(zhuǎn),并以圖形化方式進(jìn)行業(yè)務(wù)流程的設(shè)計(jì)、運(yùn)行、監(jiān)控和管理,讓用戶根據(jù)需要配置、修改流程。
動(dòng)態(tài)配置業(yè)務(wù)功能源于業(yè)務(wù)處理過(guò)程中的每一個(gè)功能點(diǎn),主要體現(xiàn)在實(shí)現(xiàn)功能的數(shù)據(jù)層、界面和后臺(tái)三個(gè)方面。首先,系統(tǒng)內(nèi)置了多個(gè)展現(xiàn)模型,不僅滿足一般系統(tǒng)需要的多種輸入、顯示模式,甚至滿足復(fù)雜的多頁(yè)面展示需要;其次,當(dāng)實(shí)際業(yè)務(wù)功能發(fā)生變化,甚至是新增業(yè)務(wù)功能時(shí),在界面展示層,系統(tǒng)可以新增或修改界面信息,界面元素可以根據(jù)需要裁減或增加,新增數(shù)據(jù)庫(kù)表或新增字段信息可以輸入字段名稱、類型等屬性,系統(tǒng)自動(dòng)在數(shù)據(jù)庫(kù)表和模型層面建立,保持二者的統(tǒng)一;第三,在后臺(tái)業(yè)務(wù)實(shí)現(xiàn)方面,系統(tǒng)提供了標(biāo)準(zhǔn)參數(shù)和類庫(kù),可以在此基礎(chǔ)上根據(jù)業(yè)務(wù)實(shí)際需要進(jìn)行開(kāi)發(fā),開(kāi)發(fā)出的程序可以嵌入到平臺(tái)中運(yùn)行。這里,系統(tǒng)通過(guò)內(nèi)置的標(biāo)準(zhǔn)展現(xiàn)模型、標(biāo)準(zhǔn)參數(shù)和類庫(kù),展現(xiàn)模型的修改模式,實(shí)現(xiàn)了動(dòng)態(tài)配置業(yè)務(wù)功能的建模過(guò)程。
綜上,可以看出無(wú)論是業(yè)務(wù)功能本身,還是業(yè)務(wù)流轉(zhuǎn),都體現(xiàn)了分層技術(shù)模型的三個(gè)模型,通過(guò)對(duì)三個(gè)模型的分解、分析,在技術(shù)上實(shí)現(xiàn)了建模過(guò)程的模型化、系統(tǒng)化,最終形成一個(gè)建模平臺(tái)。
那么這些建模過(guò)程怎么運(yùn)轉(zhuǎn)運(yùn)行,轉(zhuǎn)化成一個(gè)個(gè)具體業(yè)務(wù),展示給用戶使用呢?這任務(wù)交給運(yùn)行層完成。
運(yùn)行層把分層技術(shù)模型通過(guò)模型引擎解析成業(yè)務(wù)運(yùn)行模型,拆分/組裝后發(fā)布到應(yīng)用支撐環(huán)境運(yùn)行。模型引擎具有高度的通用性、靈活性和可擴(kuò)展性,實(shí)現(xiàn)跨技術(shù)(net、Java等)、跨業(yè)務(wù)(生產(chǎn)管理、經(jīng)營(yíng)管理、辦公自動(dòng)化等)的應(yīng)用,動(dòng)態(tài)適應(yīng)行業(yè)需求。
3 建模平臺(tái)的技術(shù)特點(diǎn)和應(yīng)用特性
建模平臺(tái)的技術(shù)特征、技術(shù)參數(shù)或指標(biāo),主要體現(xiàn)如下:
(1)基于模型驅(qū)動(dòng);(2)改變了傳統(tǒng)軟件的設(shè)計(jì)方法和運(yùn)行方式;(3)“模型驅(qū)動(dòng)、隨需而變”;(4)業(yè)務(wù)設(shè)計(jì)模型抽象為分層技術(shù)模型;(5)分層技術(shù)模型通過(guò)模型引擎解析成業(yè)務(wù)運(yùn)行模型;(6)業(yè)務(wù)運(yùn)行模型可拆分/組裝發(fā)布;(7)軟件使用過(guò)程中動(dòng)態(tài)調(diào)整流程,動(dòng)態(tài)配置業(yè)務(wù)。
但是,建模平臺(tái)的應(yīng)用注定不是一帆風(fēng)順。首先,平臺(tái)設(shè)計(jì)難度大,開(kāi)發(fā)周期長(zhǎng)。完成一個(gè)功能,一個(gè)頁(yè)面容易,但要把無(wú)數(shù)個(gè)功能頁(yè)面的特征和共性抽象分析出來(lái),把功能間流程關(guān)系歸類歸納起來(lái),并形成模型,再通過(guò)技術(shù)手段實(shí)現(xiàn),對(duì)需求分析、設(shè)計(jì)人員的能力和經(jīng)驗(yàn)要求都很高;同時(shí)應(yīng)用中遇到的問(wèn)題通常都具有共性,在一個(gè)點(diǎn)上發(fā)現(xiàn),但要在所有點(diǎn)上解決,解決的難度加大。其次,對(duì)開(kāi)發(fā)人員挑戰(zhàn)大。平臺(tái)化軟件的底層技術(shù)、框架、驅(qū)動(dòng)方式等相對(duì)復(fù)雜,對(duì)開(kāi)發(fā)人員的技術(shù)要求高。第三,對(duì)平臺(tái)應(yīng)用者要求高。對(duì)初用者來(lái)說(shuō)是黑匣子,而且要求實(shí)施者具備模型設(shè)計(jì)能力,要按照系統(tǒng)內(nèi)在的模型方式來(lái)完成,相關(guān)的規(guī)則、限制、要求多而復(fù)雜。
4 建模平臺(tái)的快速實(shí)施之路
國(guó)外有些軟件實(shí)現(xiàn)了第三方實(shí)施,主要是提供成熟的產(chǎn)品和開(kāi)發(fā)框架。這些軟件產(chǎn)品構(gòu)建了深厚的架構(gòu)基礎(chǔ),經(jīng)歷了多年的積累和完善,但投入很大,除了產(chǎn)品本身昂貴外,實(shí)施過(guò)程復(fù)雜、周期長(zhǎng),而且實(shí)施費(fèi)用更是驚人。如何超越這種模式,規(guī)避其中的高費(fèi)用、高復(fù)雜度等風(fēng)險(xiǎn),是一個(gè)挑戰(zhàn)。
完整的建模平臺(tái)分為三個(gè)上下關(guān)聯(lián)的層級(jí):平臺(tái)層,產(chǎn)品層和應(yīng)用層。其應(yīng)用需要分兩步走:一是產(chǎn)品化,即在平臺(tái)上搭建應(yīng)用軟件產(chǎn)品;二是在產(chǎn)品上實(shí)現(xiàn)第三方快速實(shí)施。
在平臺(tái)基礎(chǔ)上,對(duì)專業(yè)業(yè)務(wù)分析后,可以搭建形成產(chǎn)品,關(guān)鍵在于對(duì)業(yè)務(wù)需求的深入理解和分析,并把業(yè)務(wù)需求轉(zhuǎn)化為產(chǎn)品化、標(biāo)準(zhǔn)化的業(yè)務(wù)模型。
當(dāng)產(chǎn)品應(yīng)用到項(xiàng)目中時(shí),以標(biāo)準(zhǔn)的產(chǎn)品模型為基準(zhǔn),根據(jù)企業(yè)業(yè)務(wù)實(shí)際變化需求,對(duì)模型進(jìn)行修改后,快速建立起適用的企業(yè)模型,直接滿足項(xiàng)目需求。通過(guò)項(xiàng)目實(shí)施形成平臺(tái)的應(yīng)用層或應(yīng)用包,同時(shí)也是對(duì)產(chǎn)品本身和平臺(tái)的完善過(guò)程。因此,平臺(tái)、產(chǎn)品、實(shí)施這三個(gè)環(huán)節(jié)環(huán)環(huán)緊扣,缺一不可。
總之,建模平臺(tái)是應(yīng)用軟件平臺(tái)化的一種探索,可以使用不同的技術(shù)開(kāi)發(fā)工具實(shí)現(xiàn),但關(guān)鍵在于實(shí)施建模平臺(tái)的深入應(yīng)用和發(fā)展,雖然已經(jīng)完成多個(gè)項(xiàng)目的實(shí)施,但還需要進(jìn)一步的創(chuàng)新,不僅是技術(shù)和產(chǎn)品創(chuàng)新,更是實(shí)施模式的創(chuàng)新,是第三方快速實(shí)施模式的推廣和規(guī)?;膽?yīng)用。國(guó)產(chǎn)平臺(tái)化應(yīng)用軟件產(chǎn)品的路還很長(zhǎng),需要不斷探索,勇于實(shí)踐,通過(guò)項(xiàng)目實(shí)施的實(shí)踐檢驗(yàn),逐步開(kāi)發(fā)出真正適合市場(chǎng)需要的、可持續(xù)發(fā)展的好平臺(tái)、好產(chǎn)品,推動(dòng)國(guó)產(chǎn)軟件不斷發(fā)展。
參考文獻(xiàn):
[1]蔣哲遠(yuǎn),蔣建國(guó).面向服務(wù)領(lǐng)域軟件系統(tǒng)的模型驅(qū)動(dòng)建模方法[J].計(jì)算機(jī)科學(xué),2008(05).
[2]吳步丹,金芝,趙彬.面向服務(wù)的建模:一種全過(guò)程復(fù)用的方法[J].計(jì)算機(jī)學(xué)報(bào).2008(08).
作者簡(jiǎn)介:任煥萍(1967-),女,山西萬(wàn)榮人,學(xué)士學(xué)位,部門副總經(jīng)理,工程師,研究方向:ERP等管理信息系統(tǒng)及平臺(tái)的開(kāi)發(fā)與實(shí)施。
作者單位:神華和利時(shí)信息技術(shù)有限公司,北京 100011