利用SunFlow和Dorado開(kāi)發(fā)流程管理系統(tǒng)的最佳實(shí)踐_第1頁(yè)
利用SunFlow和Dorado開(kāi)發(fā)流程管理系統(tǒng)的最佳實(shí)踐_第2頁(yè)
利用SunFlow和Dorado開(kāi)發(fā)流程管理系統(tǒng)的最佳實(shí)踐_第3頁(yè)
利用SunFlow和Dorado開(kāi)發(fā)流程管理系統(tǒng)的最佳實(shí)踐_第4頁(yè)
利用SunFlow和Dorado開(kāi)發(fā)流程管理系統(tǒng)的最佳實(shí)踐_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

利用SunFlow和Dorado開(kāi)發(fā)流程管理系統(tǒng)的最佳實(shí)踐項(xiàng)目背景 本項(xiàng)目是為了解決綿陽(yáng)銳鋒公司的內(nèi)部事務(wù)管理而開(kāi)發(fā)的一套內(nèi)部事務(wù)管理系統(tǒng)。內(nèi)容涉及到公文的收發(fā),日常事務(wù)的管理,中心資源管理,個(gè)人辦公操作,信息共享與傳輸?shù)?。軟件的使用覆蓋到計(jì)算中心研究所的網(wǎng)絡(luò)中心,軟件開(kāi)發(fā)部等各技術(shù)部門以及各行政部門。系統(tǒng)具有業(yè)務(wù)涉及面廣、用戶眾多、流程復(fù)雜、界面繁瑣等特點(diǎn)。關(guān)鍵字:SunFlow,Dorado,工作流,富瀏覽器展現(xiàn)中間件,開(kāi)發(fā)模式,最佳實(shí)踐中國(guó)工程物理研究院系統(tǒng)開(kāi)發(fā)模式分析傳統(tǒng)開(kāi)發(fā)模式的弊端眾所周知,傳統(tǒng)的“前臺(tái)功能頁(yè)面(JSP頁(yè)面)+后臺(tái)業(yè)務(wù)處理邏輯”的系統(tǒng)開(kāi)發(fā)模式已經(jīng)越來(lái)越不能適應(yīng)企業(yè)發(fā)展的需要。該模式主要存在以下弊端:需求變更風(fēng)險(xiǎn)在項(xiàng)目實(shí)施及維護(hù)過(guò)程中,由于企業(yè)流程優(yōu)化及管理升級(jí),新增及衍生需求不斷產(chǎn)生,引起需求變更。代碼修改風(fēng)險(xiǎn)這種開(kāi)發(fā)方式下,業(yè)務(wù)流轉(zhuǎn)步驟往往是簡(jiǎn)單的通過(guò)“配置表”或硬編碼耦合在后臺(tái)業(yè)務(wù)處理程序中,沒(méi)有抽象出獨(dú)立業(yè)務(wù)流程管理模塊,造成企業(yè)業(yè)務(wù)流程一旦變更,就需要對(duì)原有程序做大量修改,系統(tǒng)靈活性太低。開(kāi)發(fā)效率低的風(fēng)險(xiǎn)無(wú)論采用何種的Web框架,B/S架構(gòu)的功能開(kāi)發(fā)效率與傳統(tǒng)的C/S架構(gòu)相比依舊低下,而且頁(yè)面表現(xiàn)能力及交互能力都無(wú)法與C/S系統(tǒng)媲美,既增加了開(kāi)發(fā)工作量也降低了用戶體驗(yàn)。系統(tǒng)開(kāi)發(fā)的主要內(nèi)容經(jīng)過(guò)對(duì)傳統(tǒng)系統(tǒng)開(kāi)發(fā)過(guò)程的考察與分析,可以將B/S系統(tǒng)的開(kāi)發(fā)工作歸納為一下四大類內(nèi)容:數(shù)據(jù)持久開(kāi)發(fā)業(yè)務(wù)流程開(kāi)發(fā)頁(yè)面邏輯開(kāi)發(fā)頁(yè)面展現(xiàn)開(kāi)發(fā)業(yè)務(wù)流程邏輯開(kāi)發(fā)可以使用工作流軟件來(lái)進(jìn)行流程設(shè)計(jì)與運(yùn)行管理。頁(yè)面展現(xiàn)層開(kāi)發(fā)可以借助專業(yè)的展現(xiàn)層開(kāi)發(fā)組件來(lái)加快頁(yè)面的開(kāi)發(fā)效率。頁(yè)面邏輯開(kāi)發(fā)可以借助成熟的Web開(kāi)發(fā)框架(比如Struts)來(lái)完成。數(shù)據(jù)持久層的開(kāi)發(fā)可以借助Hibernate等成熟持久層框架來(lái)完成。余下部分,開(kāi)發(fā)者僅需要針對(duì)具體的業(yè)務(wù)需求進(jìn)行數(shù)據(jù)持久及頁(yè)面邏輯的開(kāi)發(fā)即可??梢?jiàn),如果在系統(tǒng)開(kāi)發(fā)過(guò)程中采用成熟的工作流產(chǎn)品及快速的展現(xiàn)層開(kāi)發(fā)中間件,輔以流行的Web開(kāi)發(fā)框架及數(shù)據(jù)持久技術(shù),可以大大降低開(kāi)發(fā)工作量,有效的規(guī)避項(xiàng)目風(fēng)險(xiǎn)、縮短項(xiàng)目周期。同時(shí)也可以讓開(kāi)發(fā)者從繁重的開(kāi)發(fā)工作中解脫出來(lái),使他們能夠更加專注于需求的把握、系統(tǒng)的分析與設(shè)計(jì),提高產(chǎn)出系統(tǒng)的質(zhì)量。經(jīng)過(guò)多方考察及測(cè)試,綿陽(yáng)銳鋒公司最終采用SunFlow工作流產(chǎn)品和Dorado富瀏覽器展現(xiàn)中間件相整合的開(kāi)發(fā)模式,僅用幾周時(shí)間,即開(kāi)發(fā)出了符合內(nèi)部管理需要的管理系統(tǒng),而原來(lái)類似管理系統(tǒng)的開(kāi)發(fā),需要為期數(shù)月,且無(wú)法做到后續(xù)業(yè)務(wù)流程靈活性的調(diào)整。這種開(kāi)發(fā)模式使得開(kāi)發(fā)效率成倍提升,后期維護(hù)量也大大減少,總結(jié)提煉這種實(shí)踐,對(duì)此類問(wèn)題的解決,具有一定的參考價(jià)值?;赟unFlow&Dorado整合開(kāi)發(fā)模式介紹產(chǎn)品介紹SunFlowSunFlow是杭州信雅達(dá)系統(tǒng)工程股份有限公司開(kāi)發(fā)的優(yōu)秀國(guó)產(chǎn)工作流產(chǎn)品,基于開(kāi)放性的J2EE平臺(tái),以WFMC為標(biāo)準(zhǔn)的分布式工作流管理系統(tǒng),提供了強(qiáng)大的流程展現(xiàn)能力和方便的二次開(kāi)發(fā)框架。DoradoDORADO是銳道信息技術(shù)有限公司的富瀏覽器展現(xiàn)中間件,通過(guò)“富瀏覽器”機(jī)制提高Web用戶界面的信息承載量、表現(xiàn)力與操作性,在瀏覽器中實(shí)現(xiàn)了類似C/S應(yīng)用的界面風(fēng)格和操作習(xí)慣,通過(guò)“展現(xiàn)中間件”機(jī)制在展現(xiàn)層中形成數(shù)據(jù)模塊-視圖模型-控制器的MVC構(gòu)架,基于這個(gè)統(tǒng)一平臺(tái)提供12大類包含標(biāo)準(zhǔn)化事件框架與屬性的展現(xiàn)層構(gòu)件,從而將實(shí)現(xiàn)B/S應(yīng)用開(kāi)發(fā)前端部分由手工作業(yè)晉升為半自動(dòng)化作業(yè)方式。方案結(jié)合點(diǎn)SunFlow與Dorado均為開(kāi)放性的成熟產(chǎn)品,自身提供了很多可供擴(kuò)展的掛接點(diǎn),在本案例中,通過(guò)對(duì)兩個(gè)產(chǎn)品的擴(kuò)展,順利實(shí)現(xiàn)了這兩個(gè)產(chǎn)品的無(wú)縫對(duì)接,使開(kāi)發(fā)者可以非常方便的利用這兩個(gè)產(chǎn)品各自的優(yōu)勢(shì)。為了更加方便開(kāi)發(fā)者的使用,杭州信雅達(dá)系統(tǒng)工程股份公司與上海銳道信息技術(shù)有限公司共同投入力量,完成了SunFlow產(chǎn)品與Dorado產(chǎn)品深度的整合,整合后的產(chǎn)品進(jìn)一步提高了使用SunFlow與Dorado產(chǎn)品開(kāi)發(fā)業(yè)務(wù)系統(tǒng)的開(kāi)發(fā)效率。方案主要特征業(yè)務(wù)數(shù)據(jù)與流程數(shù)據(jù)獨(dú)立存儲(chǔ)。業(yè)務(wù)自身數(shù)據(jù)存儲(chǔ)于業(yè)務(wù)數(shù)據(jù)庫(kù)中,流程實(shí)例數(shù)據(jù)存儲(chǔ)于工作流數(shù)據(jù)庫(kù)中,實(shí)現(xiàn)業(yè)務(wù)元數(shù)據(jù)的分類管理。這兩類數(shù)據(jù)既相互獨(dú)立,又共同為業(yè)務(wù)系統(tǒng)提供數(shù)據(jù)來(lái)源。提供了從設(shè)計(jì)期到運(yùn)行期的一整套輔助開(kāi)發(fā)工具。在設(shè)計(jì)期,開(kāi)發(fā)者可以使用流程設(shè)計(jì)工具進(jìn)行業(yè)務(wù)流程建模,使用流程發(fā)布將設(shè)計(jì)好的流程發(fā)布到指定的工作流引擎中,表單設(shè)計(jì)與頁(yè)面開(kāi)發(fā)可以使用DoradoStudio完成;在運(yùn)行期,開(kāi)發(fā)者可以使用工作流引擎來(lái)負(fù)責(zé)流程邏輯的管理,使用Dorado引擎來(lái)負(fù)責(zé)展現(xiàn)中間件的管理。提供了整合組件SunflowViewModule。擴(kuò)展了Dorado的View層,將應(yīng)用中對(duì)工作流引擎的大部分調(diào)用過(guò)程都預(yù)先封裝到了該組件中,通常情況下,開(kāi)發(fā)者并不需要直接調(diào)用工作流接口,直接引用及配置該組件即可,降低了應(yīng)用開(kāi)發(fā)難度,提高了開(kāi)發(fā)效率。整合后的產(chǎn)品還提供了統(tǒng)一的客戶端展現(xiàn)實(shí)例及開(kāi)發(fā)案例,展現(xiàn)整合后產(chǎn)品在流程管理及Web開(kāi)發(fā)方面的主要特征及使用案例,包括整合后產(chǎn)品在不同Web框架下Web開(kāi)發(fā)最佳實(shí)踐,比如Struts/Webwork/JSF等?;赟unFlow&Dorado開(kāi)發(fā)過(guò)程介紹下面我們以該項(xiàng)目中的一個(gè)功能點(diǎn)(會(huì)議申請(qǐng)管理)為例,簡(jiǎn)要描述一下使用SunFlow&Dorado開(kāi)發(fā)的具體過(guò)程。需求分析會(huì)議的召開(kāi)在公司部門比較常見(jiàn),尤其在研究所等事業(yè)單位更為常見(jiàn)而且特殊,一個(gè)部門會(huì)議召開(kāi)的申請(qǐng),需要提出會(huì)議名稱、會(huì)議場(chǎng)所、以及會(huì)議秘密等級(jí)等內(nèi)容,然后經(jīng)由會(huì)議場(chǎng)所審批部門根據(jù)會(huì)議的秘密等級(jí)和會(huì)議場(chǎng)所的地點(diǎn),決定該申請(qǐng)是否符合規(guī)定,符合規(guī)定則制定防范措施,提交下個(gè)部門審批,不符合的則返回不予批準(zhǔn)。該會(huì)議申請(qǐng)?zhí)岢鼋?jīng)由各審批部門審核,如果會(huì)議密級(jí)達(dá)到指定級(jí)別,則需要最高級(jí)別審批部門審批,通過(guò)則可確定會(huì)議的召開(kāi),否則仍然返回不予批準(zhǔn)。數(shù)據(jù)建模通過(guò)對(duì)需求的分析,我們可以方便的得出“會(huì)議申請(qǐng)單”的數(shù)據(jù)結(jié)構(gòu),存放于業(yè)務(wù)數(shù)據(jù)持久層中:其中meetingRequest表用于記錄會(huì)議申請(qǐng)所需要的各種相關(guān)數(shù)據(jù)信息,該數(shù)據(jù)信息不僅用于流程流轉(zhuǎn),而且還會(huì)在數(shù)據(jù)庫(kù)中保存,用于其他業(yè)務(wù)需求操作;approveHistory表用于記錄流程中各種操作的歷史日志信息。這些數(shù)據(jù)對(duì)于整個(gè)流程來(lái)說(shuō),起到了關(guān)鍵性的支撐作用。另外,由于該單據(jù)具有流轉(zhuǎn)需求,按照業(yè)務(wù)元數(shù)據(jù)與流程數(shù)據(jù)相互獨(dú)立的原則,我們又設(shè)計(jì)了如下路由敏感數(shù)據(jù),存放于流程數(shù)據(jù)持久層中:其中,requestId用戶建立工作流相關(guān)數(shù)據(jù)與業(yè)務(wù)元數(shù)據(jù)間的關(guān)聯(lián),sign用戶標(biāo)記不同審批人的審批意見(jiàn),securityLevel用于引擎根據(jù)秘密等級(jí)判斷流程的走向。業(yè)務(wù)流程開(kāi)發(fā)使用SunFlow進(jìn)行業(yè)務(wù)流程建模的主要步驟包括:設(shè)計(jì)流程流經(jīng)的節(jié)點(diǎn);設(shè)置需要在各節(jié)點(diǎn)間傳遞的相關(guān)數(shù)據(jù);為節(jié)點(diǎn)指定參與者;設(shè)置節(jié)點(diǎn)間的路由規(guī)則;工作流相關(guān)數(shù)據(jù)及節(jié)點(diǎn)參與者都是流程不可缺少的部分,因?yàn)楣ぷ髁鞯闹懈鞴ぷ黜?xiàng)的流轉(zhuǎn),就是將各個(gè)相關(guān)數(shù)據(jù)傳輸?shù)讲煌墓?jié)點(diǎn),供該節(jié)點(diǎn)的參與者進(jìn)行處理。工作流引擎通過(guò)模板定義的路由規(guī)則,動(dòng)態(tài)分配及管理工作任務(wù),為指定參與者生成任務(wù)列表。基于上述對(duì)會(huì)議申請(qǐng)審批流程的理論提煉,我們使用SunFlow的流程設(shè)計(jì)器,設(shè)計(jì)了符合業(yè)務(wù)需求的流程定義模板:該流程包括提出申請(qǐng)、會(huì)場(chǎng)審批、各級(jí)主管部門審批、絕密判斷等多個(gè)步驟。目前的審批規(guī)則是:采用逐級(jí)審批的方式,低級(jí)部門審批通過(guò),進(jìn)入高級(jí)部門審批,否則回退會(huì)議申請(qǐng)人,重新填寫“會(huì)議申請(qǐng)單”,這是個(gè)典型的審批流程,在大多數(shù)管理系統(tǒng)中都是常見(jiàn)的。面對(duì)這樣的流程,以往我們都是通過(guò)增加一張審批人配置表的方式來(lái)管理流程流轉(zhuǎn),如果在項(xiàng)目實(shí)施及維護(hù)過(guò)程中,由于需求變更引起流程變更,那么就需要調(diào)整程序代碼,現(xiàn)在采用SunFlow工作流系統(tǒng)后,僅需要簡(jiǎn)單的調(diào)整及配置上述流程模板即可滿足新的需求。頁(yè)面邏輯開(kāi)發(fā)在頁(yè)面邏輯開(kāi)發(fā)過(guò)程中,充分利用Dorado內(nèi)部的靈活擴(kuò)展機(jī)制,制定出了一套專門用于和SunFlow交互的業(yè)務(wù)邏輯套件——SunflowViewModule,其組成主要是擴(kuò)展了一個(gè)View的Dataset的抽象類,按照業(yè)務(wù)需求專門定制,不僅使其內(nèi)部構(gòu)造符合業(yè)務(wù)需要,而且預(yù)留的接口也十分豐富,在本著快速開(kāi)發(fā)的宗旨下,提供了對(duì)于各種屬性的可配置方式,使開(kāi)發(fā)人員直接可以定制配置好需要的業(yè)務(wù)邏輯,這種配置方式可以快速地滿足一般的業(yè)務(wù)需求。而對(duì)于比較復(fù)雜的業(yè)務(wù)實(shí)現(xiàn),同樣提供給開(kāi)發(fā)人員以自己擴(kuò)展已有功能的接口,定制出更加復(fù)雜強(qiáng)大的邏輯實(shí)現(xiàn)。SunflowViewModule相當(dāng)于SunFlow中流程數(shù)據(jù)和Dorado中Dataset結(jié)構(gòu)數(shù)據(jù)的翻譯中介,該中介將SunFlow中的數(shù)據(jù)對(duì)象翻譯成Dorado可以處理的Dataset結(jié)構(gòu)的數(shù)據(jù)對(duì)象,然后利用Dorado實(shí)現(xiàn)表單數(shù)據(jù)的優(yōu)雅呈現(xiàn)。在用戶進(jìn)行了各種業(yè)務(wù)流程數(shù)據(jù)修改提交后,由SunflowViewModule攔截處理,將其翻譯成符合SunFlow內(nèi)部結(jié)構(gòu)的可處理的相關(guān)數(shù)據(jù)對(duì)象。完成一個(gè)流程中部門結(jié)點(diǎn)的審批操作。頁(yè)面展現(xiàn)開(kāi)發(fā)在頁(yè)面展現(xiàn)方面,一反傳統(tǒng)的書(shū)寫標(biāo)記代碼的費(fèi)力方式,充分利用富瀏覽器展現(xiàn)中間件Dorado的內(nèi)置可配置的web頁(yè)面組件的展現(xiàn)方式,將各種不同的展現(xiàn)組件與不同數(shù)據(jù)對(duì)象的dataset進(jìn)行綁定的方式,包括與SunFlowViewModule的綁定,完成各種業(yè)務(wù)流程數(shù)據(jù)的優(yōu)雅、完整再現(xiàn),并利用Dorado提供的AJAX技術(shù)實(shí)現(xiàn)了頁(yè)面不刷新的數(shù)據(jù)更新機(jī)制,使用戶在進(jìn)行頁(yè)面操作時(shí)獲得極大的體驗(yàn)滿足。值得關(guān)注的是,我們可以只用一個(gè)JSP頁(yè)面表單滿足各個(gè)不同部門結(jié)點(diǎn)的數(shù)據(jù)展現(xiàn)需求,而這個(gè)實(shí)現(xiàn)正式基于Dorado的Profile實(shí)現(xiàn)的,并不需要每個(gè)部門結(jié)點(diǎn)設(shè)計(jì)一個(gè)表單頁(yè)面,大大節(jié)省了開(kāi)發(fā)人員在頁(yè)面開(kāi)發(fā)上所需的時(shí)間和精力??偨Y(jié) 利用SunFlow產(chǎn)品,負(fù)責(zé)業(yè)務(wù)流程開(kāi)發(fā)的小組可以預(yù)先根據(jù)需求,提取出流程模型,并在工作流系統(tǒng)中進(jìn)行開(kāi)發(fā)與測(cè)試,而不必等業(yè)務(wù)界面開(kāi)發(fā)完畢后再進(jìn)行流程測(cè)試。利用Dorado富瀏覽器展現(xiàn)中間件,頁(yè)面開(kāi)發(fā)小組可以快速構(gòu)建業(yè)務(wù)界面原型,并迅速地進(jìn)行需求驗(yàn)證。使用SunFlow與Dorado進(jìn)行業(yè)務(wù)開(kāi)發(fā),甚至可以在需求調(diào)研階段就可以快速地構(gòu)建出業(yè)務(wù)原型,有利于項(xiàng)目成員對(duì)需求的把握及合理的評(píng)估項(xiàng)目周期,可以提早進(jìn)行集成測(cè)試,提早發(fā)現(xiàn)問(wèn)題,規(guī)避項(xiàng)目風(fēng)險(xiǎn)。同樣,在項(xiàng)目后期維護(hù)階段,由于業(yè)務(wù)流程邏輯管理的相對(duì)獨(dú)立,降低了由于系統(tǒng)需求變更而產(chǎn)生的代碼修改風(fēng)險(xiǎn)。由于在該項(xiàng)目中使用了SunFlow與Dorado的整合產(chǎn)品,項(xiàng)目開(kāi)發(fā)內(nèi)容更加明確,組織分工更加清晰,項(xiàng)目開(kāi)發(fā)過(guò)程更加敏捷高效,項(xiàng)目計(jì)劃準(zhǔn)確合理,項(xiàng)目風(fēng)險(xiǎn)得到了有效規(guī)避,可以說(shuō),我們找到了一條快速構(gòu)建業(yè)務(wù)系統(tǒng)的低風(fēng)險(xiǎn)、低成本、高效率的通用開(kāi)發(fā)解決方案。對(duì)于系統(tǒng)開(kāi)發(fā)者來(lái)說(shuō),一個(gè)具有嚴(yán)謹(jǐn)邏輯的工作流引擎的使用,可以使系統(tǒng)在流程處理方面更加具有優(yōu)勢(shì),使系統(tǒng)在面對(duì)流程變更時(shí)“底氣十足”。同樣,一個(gè)具有優(yōu)雅快捷的界面展現(xiàn)開(kāi)發(fā)工具的使用,可以使系統(tǒng)在頁(yè)面展現(xiàn)方面更加具有優(yōu)勢(shì),使系統(tǒng)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論