
摘 要:JDP MARMOT快速開(kāi)發(fā)框架是在國(guó)網(wǎng)華東分部技改大修項(xiàng)目管理系統(tǒng)的建設(shè)過(guò)程中逐漸形成的一體化快速開(kāi)發(fā)框架,基于該技術(shù)框架建設(shè)企業(yè)信息系統(tǒng)可極大地縮短系統(tǒng)建設(shè)周期,降低系統(tǒng)建設(shè)成本,提高系統(tǒng)的可維護(hù)性和擴(kuò)展性。文章介紹了JDP MARMOT快速開(kāi)發(fā)框架基本情況。
關(guān)鍵詞:快速開(kāi)發(fā)框架;工作流引擎;中間件
引言
國(guó)家電網(wǎng)公司華東分部自2011年開(kāi)始建設(shè)技改大修項(xiàng)目管理系統(tǒng),在研發(fā)過(guò)程中對(duì)AJAX技術(shù)的敏銳把握和創(chuàng)造性的使用之后,逐步形成自己專(zhuān)屬的J2EE技術(shù)框架——JDP MARMOT快速開(kāi)發(fā)框架。通過(guò)將展現(xiàn)中間件、工作流引擎和統(tǒng)一權(quán)限管理融合于同一技術(shù)框架,開(kāi)發(fā)適用于工作流程復(fù)雜,分支節(jié)點(diǎn)繁多,控制要求靈活的業(yè)務(wù)環(huán)境,尤其適用于企業(yè)MIS開(kāi)發(fā)的需要。
1 JDP MARMOT框架概述
從框架形態(tài)上JDP MARMOT核心由三部分組成,第一部分是一個(gè)具有AJAX特征的Web應(yīng)用表現(xiàn)層中間件控件,第二個(gè)部分是自定義工作流引擎,第三個(gè)部分是作為前兩部分基礎(chǔ)支撐的統(tǒng)一身份與權(quán)限管理。三大核心部分統(tǒng)一在技術(shù)框架內(nèi),使JDP MARMOT框架具有以下優(yōu)點(diǎn):
1.1 降低開(kāi)發(fā)成本,提高開(kāi)發(fā)效率
Web應(yīng)用表現(xiàn)層中間件控件包括了非常豐富的頁(yè)面控件,如常用表格、樹(shù)、表單、多頁(yè)標(biāo)簽等一整套界面組件,不需要頁(yè)面級(jí)開(kāi)發(fā)工程師,后臺(tái)開(kāi)發(fā)工程師可以獨(dú)立完成復(fù)雜頁(yè)面的開(kāi)發(fā)。使得原本一個(gè)初級(jí)程序員需要兩天才能開(kāi)發(fā)完成的復(fù)雜頁(yè)面現(xiàn)在只需要半天就能開(kāi)發(fā)完成。因此,開(kāi)發(fā)者可以把更多的時(shí)間放到后臺(tái)邏輯層的實(shí)現(xiàn)上,而不是放在前端展現(xiàn)。
1.2 統(tǒng)一開(kāi)發(fā)規(guī)范,無(wú)需任何第三方控件
目前開(kāi)發(fā)J2EE前端展示,有很多種第三方控件。目前主流的團(tuán)隊(duì)開(kāi)發(fā),每個(gè)程序員如果都用自己一套熟悉的控件進(jìn)行開(kāi)發(fā),會(huì)使得代碼過(guò)于凌亂,每個(gè)功能后臺(tái)代碼都不一樣。因此,用了JDP MARMOT后,統(tǒng)一并且規(guī)范了開(kāi)發(fā)過(guò)程中的代碼,使得開(kāi)發(fā)團(tuán)隊(duì)更規(guī)范,代碼更便于管理,減少軟件BUG。
1.3 規(guī)范客戶(hù)體驗(yàn)
由于全部采用統(tǒng)一JDP MARMOT框架的控件。因此,對(duì)于客戶(hù)來(lái)說(shuō)頁(yè)面風(fēng)格、功能操作、系統(tǒng)管理方式以及所有的數(shù)據(jù)列表,編輯等等頁(yè)面都大致相同,使得客戶(hù)體驗(yàn)得到了統(tǒng)一,有助于信息系統(tǒng)在成品交付后快速推廣,降低實(shí)用化成本。
1.4 跨平臺(tái),運(yùn)行速度快,部署方便
支持各種主流的應(yīng)用服務(wù)器如:weblogic,webshphere等,不會(huì)產(chǎn)生系統(tǒng)沖突,無(wú)法部署等問(wèn)題,只需要安裝了JDk4.0及其以上版本便可以運(yùn)行。在Linux和unix下運(yùn)行能更好的發(fā)揮其性能的優(yōu)越性。
2 JDP MARMOT展現(xiàn)中間件
Web表現(xiàn)層方面的產(chǎn)品主要技術(shù)流派有離散控件構(gòu)架、后臺(tái)衍伸構(gòu)架、展現(xiàn)中間件構(gòu)架等數(shù)種。JDP MARMOT采用的展現(xiàn)中間件構(gòu)架,基于Webget Lib(表現(xiàn)層控件庫(kù))并由展現(xiàn)層引擎統(tǒng)一驅(qū)動(dòng)與管理。控件使用的個(gè)數(shù)越多種類(lèi)越多,越有效用??蓪?duì)接的業(yè)務(wù)邏輯層也不限于某種框架,可以廣泛地通過(guò)整合接口與各種第三方后臺(tái)邏輯框架相整合。還可以通過(guò)展現(xiàn)層引擎整合基于離散控件架構(gòu)的Web表現(xiàn)層產(chǎn)品,進(jìn)一步增強(qiáng)Web的展現(xiàn)力、操作性與承載量,同時(shí)提高開(kāi)發(fā)效率。
目前,JDP MARMOT展現(xiàn)中間件包括記錄集下拉框、命令按鈕、樹(shù)形控件和布局控件四大類(lèi),十六小類(lèi)展現(xiàn)控件,具有易于掌握,上手簡(jiǎn)單、復(fù)用效率高、成本低、質(zhì)量可靠等特點(diǎn),大大加快了華東技改大修項(xiàng)目的研發(fā)速度,降低系統(tǒng)出錯(cuò)率,并且提高了系統(tǒng)可用性。
3 JDP MARMOT工作流引擎
早期的工單流轉(zhuǎn)系統(tǒng)都是通過(guò)“硬編碼”的方式將業(yè)務(wù)流程定義程序?qū)懺谙到y(tǒng)中,這就需要對(duì)原系統(tǒng)進(jìn)行重新設(shè)計(jì)來(lái)適應(yīng)流程的變更,不僅會(huì)給企業(yè)帶來(lái)難以承受的工作量,同時(shí)使得系統(tǒng)的適應(yīng)性和擴(kuò)展性較差。JDP MARMOT工作流引擎可以完成業(yè)務(wù)流程的全方位管控。
工作流是一項(xiàng)分離業(yè)務(wù)操作和系統(tǒng)流程的技術(shù)。工作流由實(shí)體(Entity)、參與者(Participant)、流程定義(Flow Definition)、工作流引擎(Engine) 四部分組成。前三個(gè)要素是靜態(tài)的,而第四個(gè)要素是動(dòng)態(tài)的,它將前三者結(jié)合起來(lái),是工作流的核心組成元素。
JDP MARMOT工作流引擎首先從眾多的業(yè)務(wù)需求中抽取出工作流模型所包含的對(duì)象,再分析各個(gè)對(duì)象之間的邏輯關(guān)系,然后提出一個(gè)系統(tǒng)結(jié)構(gòu),再進(jìn)行模塊劃分,數(shù)據(jù)庫(kù)設(shè)計(jì),最終完成類(lèi)的設(shè)計(jì)。主要功能包括:流程配置定義、流程監(jiān)控、工單上報(bào)、回退、指定回退、流程掛起、工單分發(fā)、工單委辦等一系列的接口功能,系統(tǒng)架構(gòu)圖如下圖所示:
JDP MARMOT工作流引擎對(duì)流程的控制非常豐富,包括5種基本控制模式和5種高級(jí)分支與同步模式,能夠滿(mǎn)足大型企業(yè)特有的復(fù)雜業(yè)務(wù)流程管控的需要。其中基本控制模式包括:順序模式、并行分支模式、同步模式、單選模式、簡(jiǎn)單合并模式。高級(jí)分支與同步模式包括:多選模式、同步合并模式、多合并模式、鑒別器模式(合并多條路徑而不進(jìn)行同步,只執(zhí)行一次后續(xù)活動(dòng))、M中的N模式(合并多條路徑,進(jìn)行部分同步,只執(zhí)行一次后續(xù)活動(dòng))
JDP MARMOT工作流引擎還支持子流程的支持,進(jìn)一步提高了對(duì)流程的管控能力。
4 統(tǒng)一系統(tǒng)管理模塊
JDP MARMOT框架中集成了統(tǒng)一身份和權(quán)限認(rèn)證,包括:人員組織機(jī)構(gòu)管理,權(quán)限角色分配,工作流角色權(quán)限綁定,系統(tǒng)登錄安全性配置,系統(tǒng)基礎(chǔ)數(shù)據(jù)配置等功能。
角色模塊是系統(tǒng)管理平臺(tái)和工作流的接口平臺(tái),工作流需要用到管理平臺(tái)的角色授權(quán)才能實(shí)現(xiàn)流程的分配和跳轉(zhuǎn)。角色模塊的核心是基于角色配置文件,角色配置文件是一個(gè)與視圖模型同名的xml描述文件,一個(gè)視圖模型最多只有一個(gè)角色配置文件。如視圖模型文件名為Employee.view.xml,則角色配置文件名就必須為Employee.role.xml。角色配置文件用來(lái)描述各個(gè)角色的頁(yè)面具體特征,例如dataset的只讀屬性,組件的可視化屬性等。
5 結(jié)束語(yǔ)
JDP MARMOT框架中除了展現(xiàn)中間件、工作流引擎、統(tǒng)一身份與權(quán)限管理,還集成了諸如日歷管理、風(fēng)格管理、報(bào)表工具等小的輔助模塊。從設(shè)計(jì)初期,JDP MARMOT框架就被設(shè)計(jì)為一個(gè)可不斷擴(kuò)展的開(kāi)放式框架。從整體上看,它把前臺(tái)展現(xiàn)、權(quán)限控制、業(yè)務(wù)邏輯無(wú)縫地整合在一起,是一套一體化的快速開(kāi)發(fā)框架。該平臺(tái)具有良好的穩(wěn)定性和開(kāi)放性,在此平臺(tái)上構(gòu)建的華東技改大修項(xiàng)目管理系統(tǒng)具有良好的可擴(kuò)展性和易維護(hù)性。
參考文獻(xiàn)
[1]鄭志強(qiáng).框架設(shè)計(jì)通用化方法研究[D].西南農(nóng)業(yè)大學(xué),2005.
[2]王然.輿情分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京郵電大學(xué),2013.