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