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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論