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