【
趙斌
原創(chuàng),保留一切權(quán)利,轉(zhuǎn)載請保留引用:
m.tkk7.com/zhaobin
,謝謝!】
浪潮樓上平臺(tái)在國內(nèi)還是比較有名氣,在平臺(tái)軟件和工作流方面可以稱為一流軟件開發(fā)商,和上海普元EOS、起步軟件(原來叫思維加速)、炎黃盈動(dòng)、東方易維、華苓科技、東方通、山東中創(chuàng)等各有特色。
最近,《程序員》雜志主辦的“軟件中國2006年度風(fēng)云榜”,浪潮Loushang平臺(tái)V3.2榮獲“2006年度最佳創(chuàng)新技術(shù)獎(jiǎng)”。
在IBM的SOA培訓(xùn),碰到了浪潮的兄弟黃兄(名字就省略了),興致勃勃的介紹了一番Loushang平臺(tái),而后,有幸申請了浪潮樓上平臺(tái)的試用帳號(hào),試用了一番,感想頗多。雖然是試用,但只是試了試,并沒有實(shí)際用,所以,還是用參觀有感比較合適。
浪潮Loushang平臺(tái)最新的版本是V3.2,目前在網(wǎng)上可以試用的是V3.1版本,黃兄也說V3.2有了不少的改進(jìn)。我此次介紹的則是網(wǎng)上可以試用的V3.1版本。
1、 平臺(tái)概念突出,其整體架構(gòu)合理,簡介如下:
a) Loushang Web組件,提供了各種常用的界面組件,如:表格、樹、聯(lián)動(dòng)下拉框等。
b) Web應(yīng)用框架,豐富的構(gòu)件,采用N-Tie思想,核心基于服務(wù)的架構(gòu),有點(diǎn)類似Spring集成的框架,更多是技術(shù)框架。
c) 業(yè)務(wù)服務(wù)平臺(tái)(BSP),業(yè)務(wù)框架,包含各通用業(yè)務(wù)模塊
i. 組織機(jī)構(gòu),這部分還是做的不錯(cuò)的,詳細(xì)說明見后。
ii. 權(quán)限模型,基于RBAC(基于角色訪問控制)理論設(shè)計(jì)。
iii. 日歷管理與業(yè)務(wù)流水管理
d) BPM產(chǎn)品,構(gòu)建在BSP之上,提供表單和流程服務(wù),包括:
i. 表單設(shè)計(jì)工具(form designer),基于WEB,采用HTML解析。
ii. 流程設(shè)計(jì)工具(process designer),基于WEB,采用applet,流程定義文件以XML格式存儲(chǔ),符合XPDL標(biāo)準(zhǔn)。
iii. 工作流引擎(workflow engine)
iv. 流程監(jiān)控工具(monitor)
e) 模型驅(qū)動(dòng)架構(gòu):MDA(Model Driven Architecture)包括MDA建模、業(yè)務(wù)應(yīng)用模式的模型驅(qū)動(dòng)表達(dá)、利用MDA描述生成運(yùn)行系統(tǒng)、利用MDA進(jìn)行構(gòu)件之間的協(xié)作等。
2、
自主的
WEB
應(yīng)用框架
這點(diǎn)和很多大量采用開源產(chǎn)品的公司不同,我很難評價(jià)是完全自主的Web應(yīng)用框架更好,還是在開源框架的基礎(chǔ)上進(jìn)行適應(yīng)性開發(fā)更好,各有利弊吧。
對于浪潮Loushang平臺(tái)的開發(fā)團(tuán)隊(duì)這樣能夠保證資金和人力資源供應(yīng)的公司,自主開發(fā)不但更容易從底層入手,解決系統(tǒng)級的問題,而且也能有效的滿足業(yè)務(wù)的深層次應(yīng)用,但對于一般規(guī)模的公司,則在開源的基礎(chǔ)上進(jìn)行開發(fā)效率更高,至少更容易聘用到合適的技術(shù)人員。
當(dāng)然,我強(qiáng)烈反對將大量開源項(xiàng)目進(jìn)行堆砌,每引入一個(gè)開源項(xiàng)目,都意味著同時(shí)引入了相應(yīng)的技術(shù)風(fēng)險(xiǎn),必須在深入剖析開源項(xiàng)目之后,確實(shí)徹底掌握了,可以駕馭了,開源項(xiàng)目才能為你所用,否則,則是埋下了一個(gè)個(gè)未知的隱患。
(WEB應(yīng)用框架架構(gòu)圖)
其中的Command比較有意思,所有的命令都是以xxx.cmd來執(zhí)行的,有點(diǎn)類似Struts的xxx.do,而且,在后臺(tái)的性能監(jiān)控中,可以監(jiān)控到執(zhí)行的每一個(gè)cmd命令的運(yùn)行時(shí)間、運(yùn)行次數(shù),訪問數(shù)據(jù)庫的次數(shù)等,見下圖:
3、
業(yè)務(wù)服務(wù)平臺(tái)(
BSP
)
Web應(yīng)用框架是一個(gè)技術(shù)上的Framework,而業(yè)務(wù)服務(wù)平臺(tái)則將通用的、公共的部分提煉出來,形成業(yè)務(wù)系統(tǒng)的支撐,我們公司稱之為“公共資源管理配置平臺(tái)”。目前包括三部分,組織機(jī)構(gòu)、權(quán)限模型、日歷和流水號(hào)。總的感覺BSP只有這3部分內(nèi)容,顯得過于單薄了一些。
感覺其組織機(jī)構(gòu)的部分做得挺細(xì)致,考慮了很多實(shí)際的業(yè)務(wù)需求,我就不詳細(xì)描述了,下面這段文字直接從浪潮Loushang平臺(tái)的網(wǎng)站上抄過來的,【淺藍(lán)色的字是我的評論】
組織機(jī)構(gòu)是企業(yè)級應(yīng)用的基礎(chǔ),任何企業(yè)級應(yīng)用的業(yè)務(wù)核心數(shù)據(jù)來源。
技術(shù)特性:
完整的組織機(jī)構(gòu)模型。
科學(xué)合理的管理模型確保了組織結(jié)構(gòu)管理在操作級的靈活性和知識(shí)級的穩(wěn)定性。
支持直線制、職能制、直線-職能制、事業(yè)部制、模擬分權(quán)制、矩陣制等組織結(jié)構(gòu)模式。允許用戶根據(jù)自身戰(zhàn)略選擇適合自己業(yè)務(wù)需要的組織結(jié)構(gòu)模式。【沒有看到對各種模式是如何支持的,好像完全從應(yīng)用軟件層去支持各種模式,很難,不如在設(shè)計(jì)和API層支持更靈活】
支持組織結(jié)構(gòu)規(guī)則(如上下級規(guī)則、不相容崗位等)的靈活定義。
提供了完備的組織結(jié)構(gòu)版本管理功能,允許用戶在若干年后查閱歷史組織變更版本記錄。【好像只能用于查看而已,沒有什么實(shí)際用途】
系統(tǒng)內(nèi)嵌了人事事件記錄功能,對于部門的設(shè)立、撤銷,員工的入職、升職、加薪、改序等提供了完備的人事事件記錄,在此基礎(chǔ)上支持對職工進(jìn)行職業(yè)成長性分析。
支持直接下級排序(如下級部門間排序、下級員工間排序)和員工的全局排序(如根據(jù)領(lǐng)導(dǎo)崗位與非領(lǐng)導(dǎo)崗位進(jìn)行排序)。
支持從不同的維度對組織結(jié)構(gòu)進(jìn)行觀測,如從人力資源層面、計(jì)劃、考核、銷售管理、采購、庫存等視角進(jìn)行切分,并用圖形方式顯示。【這個(gè)功能倒是不錯(cuò),不過沒有看見】
支持組織結(jié)構(gòu)構(gòu)件的分布式部署和基于LDAP V3國際標(biāo)準(zhǔn)的組織核心級數(shù)據(jù)共享。【如果完全基于數(shù)據(jù)庫,恐怕支持LDAP就有點(diǎn)懸了】
組織機(jī)構(gòu),定義了靈活的結(jié)構(gòu)設(shè)計(jì),繪制了靈活的抽象結(jié)構(gòu)模型,提供豐富的接口,方便開發(fā)人員在此基礎(chǔ)上根據(jù)業(yè)務(wù)需要定制開發(fā),并能靈活擴(kuò)展,以適應(yīng)實(shí)際的業(yè)務(wù)需求。開發(fā)人員可以利用定義的上下級方式,方便的實(shí)現(xiàn)形成組織結(jié)構(gòu)的樹型結(jié)構(gòu),方便開發(fā)和維護(hù)。
權(quán)限模型則基于RBAC(基于角色訪問控制)理論設(shè)計(jì),目前產(chǎn)品大多如此,屬于大眾思路,RBAC規(guī)范中RBAC主要分為四個(gè)級別,分別為RBAC 0、RBAC 1、RBAC 2和RBAC 3。
RBAC 0又稱為Core RBAC,實(shí)現(xiàn)的為基本的權(quán)限模型,如用戶與角色、角色與資源權(quán)限、資源權(quán)限與資源、資源操作的關(guān)系的維護(hù),同時(shí)提供基于角色的資源操作權(quán)限的校驗(yàn),類似的偽代碼:role.doPrivilege(Principle,Resource,Operation),相對來講RBAC 0是比較容易實(shí)現(xiàn)的,在RBAC 0中進(jìn)行權(quán)限校驗(yàn)時(shí)的關(guān)鍵就是根據(jù)用戶的角色來檢驗(yàn)用戶是否有操作的權(quán)限。
RBAC 1中提出了角色權(quán)限繼承的實(shí)現(xiàn),雖然看起來只是增加了一個(gè)角色權(quán)限繼承,但在實(shí)現(xiàn)起來系統(tǒng)的復(fù)雜度則是大大的增加了。
RBAC 2則更為復(fù)雜,RBAC 2中提出了角色權(quán)限互斥的問題,其實(shí)在角色權(quán)限繼承的基礎(chǔ)上我們就會(huì)考慮到這個(gè)問題,既然角色權(quán)限繼承那么很容易出現(xiàn)權(quán)限互斥的問題,RBAC 2模型就是為了解決這個(gè)。
RBAC 3則沒什么說的,因?yàn)樗褪荝BAC 1和RBAC 2都實(shí)現(xiàn)。
按照浪潮Loushang平臺(tái)的《BSP技術(shù)白皮書》,其權(quán)限模型是實(shí)現(xiàn)了RBAC 3的,實(shí)際試用了一下,基本的功能還可以,比較高級的授權(quán)就不太方便了,而且RBAC 2角色權(quán)限互斥感覺不太好用。
把授權(quán)的對象分為功能資源管理和數(shù)據(jù)資源管理,功能資源管理對應(yīng)功能點(diǎn),通過功能點(diǎn)控制菜單項(xiàng)的顯示以及進(jìn)行權(quán)限校驗(yàn),數(shù)據(jù)資源管理是要實(shí)現(xiàn)數(shù)據(jù)集的權(quán)限,也就是行權(quán)限或者部分行集合的權(quán)限,這點(diǎn)感覺每一普元EOS實(shí)現(xiàn)得好。
另外,這些功能資源(功能點(diǎn))之間是有關(guān)系的,通常只有具有瀏覽權(quán)限后,才能具有刪除權(quán)限。而在浪潮Loushang平臺(tái)中,所有的功能點(diǎn)是平行關(guān)系,這點(diǎn)既不符合實(shí)際的業(yè)務(wù)需求,又增加了授權(quán)的工作量,而且容易產(chǎn)生人為的錯(cuò)誤。建議應(yīng)該在功能點(diǎn)之間建立相互依存關(guān)系,可能是個(gè)樹型,也可能是矩陣。
至于在BSP的安全部分談到支持XACML(eXtensible Access Control Markup Language)2.0 標(biāo)準(zhǔn),恐怕就值得商榷了。
4、 BPM平臺(tái)
現(xiàn)在平臺(tái)必有BPM,而BPM則必稱平臺(tái),好像成了相生相克的連理枝,這在我朋友銀狐999的《論工作流與平臺(tái)的發(fā)展怪圈》一文中已經(jīng)有所論述。而且,在很多宣傳資料中,BPM和Workflow是可以相互混用的,這里實(shí)際的含義應(yīng)該是Workflow。
對于Workflow最重要的當(dāng)然是流程和表單,雖然按照標(biāo)準(zhǔn)的工作流產(chǎn)品并不一定需要表單,但在國內(nèi),如果沒有表單,恐怕工作流就很難賣出去了。
下面是基于瀏覽器的表單設(shè)計(jì)工具,功能偏簡單了一些,勉強(qiáng)能用,遠(yuǎn)不如客戶端工具功能強(qiáng)大,比較有特色的功能是可以添加細(xì)表單,而且只需要定義就可以使用,不需要編碼。
浪潮Loushang平臺(tái)V3.1的Workflow是用Applet來實(shí)現(xiàn)的,也還是滿漂亮的,見下圖:
比較有特色的流程可以導(dǎo)出,而且是將流程和相應(yīng)的表單分別形成xml,然后壓成zip導(dǎo)出,流程信息放在Flow_XXXX.xpdl和Flow_XXXX.xml中,表單則生成FormsManageData.xml和FormHtmlCode.dat、FormTemplate.dat文件。看了一下生成的xpdl文件,是基于XPDL 1.0的。能夠?qū)⒈韱魏土鞒虒?dǎo)出,還是要下一番功夫的,這就需要相應(yīng)的Schema定義和語法解析。流程導(dǎo)入、導(dǎo)出功能不但便于流程能夠在各個(gè)項(xiàng)目中共享,也便于制作流程模版,也便于解決流程版本問題,總之,益處多多。
另外,其流程的歷程、一些統(tǒng)計(jì)圖表,是采用flash來顯示的,我只見到上海攜創(chuàng)采用類似的做法,顯示效果美觀,而且圖像文件小,速度快,還是值得借鑒的。
5、 MDA模型驅(qū)動(dòng)
MDA很火,那不是一般的火。
我一直都比較關(guān)注MDA的發(fā)展,2006年7月28參加IBM的2006年開發(fā)者大會(huì),其中有一個(gè)專題講座《MDA/MDD技術(shù)離您有多遠(yuǎn)?-羅學(xué)聰》【思維導(dǎo)圖】,從這個(gè)標(biāo)題就可以看出,MDA離我們還是有一定的距離,即使對IBM這樣高端的廠商來說,MDD/MDA也屬于比較前沿的技術(shù),其主講人也是專程從上海飛過來演講,國內(nèi)應(yīng)用MDA技術(shù)的也還沒有幾家。
浪潮Loushang平臺(tái)的MDA更多的處在Modeling & Code Generation這個(gè)層面。(參見《MDA/MDD技術(shù)離您有多遠(yuǎn)?》第7頁)
浪潮Loushang平臺(tái)能夠在MDA領(lǐng)域有所嘗試,還是很值得敬佩的,不要說整個(gè)浪潮Loushang平臺(tái)所取得的成就,單就這一點(diǎn)而言,我就很敬佩平臺(tái)事業(yè)部經(jīng)理周恒。
我對浪潮Loushang平臺(tái)沒有深入研究,感覺更像是基于數(shù)據(jù)庫表、業(yè)務(wù)對象、表單以及對應(yīng)功能:列表、增、刪、改、查的代碼生成器。而且浪潮的黃兄說V3.2版本又有比較大的改進(jìn)。
期待早日能在網(wǎng)上看到V3.2版本,期待增強(qiáng)型的MDA。
這次的參觀就介紹到這里,期待中國的軟件產(chǎn)業(yè)能日益發(fā)展、成熟、壯大。
【
趙斌
原創(chuàng),保留一切權(quán)利,轉(zhuǎn)載請保留引用:
m.tkk7.com/zhaobin
,謝謝!】
【
趙斌原創(chuàng),保留一切權(quán)利,轉(zhuǎn)載請保留引用:
m.tkk7.com/zhaobin,注明轉(zhuǎn)載除外,謝謝!】