周湘超 陳毅勇 段姍姍 陳義明
摘要:針對(duì)傳統(tǒng)高校教師調(diào)課必須實(shí)地面對(duì)面辦理,浪費(fèi)時(shí)間和精力;調(diào)課采用紙質(zhì)文檔,不低碳環(huán)保和不便存檔管理的弊端,使用Java EE技術(shù)設(shè)計(jì)和實(shí)現(xiàn)了基于JBPM工作流框架的高校教師調(diào)課平臺(tái)。以JBPM流程設(shè)計(jì)工具開發(fā)通用的調(diào)課流程,通過調(diào)用工作流引擎API,實(shí)現(xiàn)了調(diào)課過程的自動(dòng)流轉(zhuǎn)。系統(tǒng)包括普通web操作界面和android客戶端應(yīng)用兩部分,待辦任務(wù)提醒使調(diào)課能夠隨時(shí)隨地及時(shí)進(jìn)行。結(jié)果表明:系統(tǒng)的運(yùn)行能極大提高高校教師工作效率,實(shí)現(xiàn)自動(dòng)化辦公,加強(qiáng)學(xué)校對(duì)教學(xué)過程的規(guī)范和管理。
關(guān)鍵詞:工作流;JBPM;調(diào)課;android
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)35-8511-03
The Design of Changing Course For University Teachers Based on JBPM
ZHOU Xiang-chao, CHEN Yi-yong, DUAN Shan-shan, CHEN Yi-ming
(The School of Information Science and Technology, Hunan Agricultural University, Changsha 410128, China)
Abstract: Armed to disadvantages of traditional changing course for university teachers, such as wasting much time with each step being handled face to face, no low carbon environmental protection and no conveniently archiving with using paper, this paper designs and implements the changing platform for university teachers based on JBPM by using Java EE technology. After developing common changing course flow using JBPM flow design tool, the system makes changing course automotive by invoking workflow engine API. The platform includes web interface and android client and to-do list makes changing course handled anywhere. The system can improves efficiency for teacher and strengthens the management of teaching process for university.
Key words: workflow; JBPM; Changing course; android
高校教師因參與社會(huì)服務(wù)或?qū)W術(shù)研討,經(jīng)常需要臨時(shí)調(diào)課。典型的調(diào)課流程為:教師填寫調(diào)課申請(qǐng)表→教學(xué)副院長(zhǎng)審批確認(rèn)→學(xué)院辦公室蓋章→學(xué)校教務(wù)處安排教室→教學(xué)樓管理員根據(jù)教室安排開門。傳統(tǒng)調(diào)課的各個(gè)環(huán)節(jié)需要調(diào)課教師實(shí)地面對(duì)面地辦理,即教師需要找到副院長(zhǎng)辦公室簽字,然后到學(xué)院辦公室蓋章,教務(wù)處辦理教室安排,最后還必須將教室安排表送到教學(xué)樓管理員。這種方式浪費(fèi)教師大量的寶貴時(shí)間和精力,一旦某個(gè)環(huán)節(jié)的負(fù)責(zé)人不在,調(diào)課過程還必須暫時(shí)擱置,影響工作的開展。同時(shí),傳統(tǒng)調(diào)課采用紙質(zhì)文件,不符合低碳環(huán)保理念,也不方便存儲(chǔ)調(diào)課記錄,以便教學(xué)管理。
本文基于JBPM(Java Business Process Management)[1]工作流技術(shù)設(shè)計(jì)和實(shí)現(xiàn)了高校教師調(diào)課平臺(tái),系統(tǒng)的web和android應(yīng)用界面使調(diào)課過程能夠隨時(shí)隨地及時(shí)進(jìn)行。
1 工作流技術(shù)概述
1.1 工作流簡(jiǎn)介
工作流管理聯(lián)盟(WfMC Workflow Management Coalition)對(duì)工作流的官方定義為:工作流是指在多種參與角色間,通過事先約定的規(guī)則,讓工作流實(shí)例在計(jì)算機(jī)環(huán)境下自動(dòng)流轉(zhuǎn)和傳遞包括文檔、信息或者任務(wù)等,從而實(shí)現(xiàn)流程流轉(zhuǎn)完全或者部分自動(dòng)化[2]。
圖1為1994年1月WfMC發(fā)布的工作流管理系統(tǒng)參考模型[3]。工作流引擎是整個(gè)系統(tǒng)的核心,它以API調(diào)用的方式提供各種工作流服務(wù)。其中,“工作流執(zhí)行服務(wù)”是系統(tǒng)模型中最重要的部分,功能包括創(chuàng)建、管理流程定義,創(chuàng)建、管理和執(zhí)行流程實(shí)例。它能管理一個(gè)或多個(gè)工作流引擎,通過提供工作流定義、客戶端應(yīng)用、調(diào)用應(yīng)用、系統(tǒng)數(shù)據(jù)交換和系統(tǒng)監(jiān)控與管理等接口實(shí)現(xiàn)與各種應(yīng)用程序的交互。JBPM開源工作流框架
JBPM是JBoss組織創(chuàng)建的、具有很好擴(kuò)展性的工作流管理系統(tǒng)框架。在業(yè)務(wù)流程定義方面,它沒有使用通用XPDL、BPML、ebXML等規(guī)范,而是設(shè)計(jì)了自己的流程定義語言JPDL(JBoss Process Definition Language)。JBPM基于UML(Unified Model Language)活動(dòng)圖模型,結(jié)合狀態(tài)機(jī)以及Petri Net等技術(shù),不但提供Event-Action機(jī)制來滿足活動(dòng)處理的需要,還提供可擴(kuò)展的任務(wù)分配機(jī)制,滿足復(fù)雜活動(dòng)的處理[1]。JBPM已被廣泛應(yīng)用于各行業(yè)辦公自動(dòng)化系統(tǒng)的開發(fā)[4-8]。
JBPM采用了輕量級(jí)的數(shù)據(jù)持久層框架——Hibernate,實(shí)現(xiàn)自動(dòng)的對(duì)象-關(guān)系映射及對(duì)象管理,使業(yè)務(wù)邏輯和數(shù)據(jù)管理很好分離。程序員能專注于業(yè)務(wù)邏輯的處理,提高開發(fā)效率。JPDL流程引擎是JBPM的執(zhí)行模塊,流程定義在JBPM中被封裝成流程檔案(process archives)之后,自動(dòng)傳送到JPDL中執(zhí)行。JPDL流程引擎的主要功能有:
1)遍歷流程圖;
2)執(zhí)行定義動(dòng)作;
3)維持流程狀態(tài);
4)記錄流程事件。
JBPM工作流組件結(jié)構(gòu)如圖2所示。
基于JBPM開發(fā)工作流系統(tǒng)的一般步驟如下:
1)選定所用數(shù)據(jù)庫:JBPM工作流系統(tǒng)需要有流程數(shù)據(jù)庫來存儲(chǔ)所定義的流程以及應(yīng)用數(shù)據(jù)庫存儲(chǔ)應(yīng)用程序數(shù)據(jù);
2)定義工作流:使用JPDL流程設(shè)計(jì)器設(shè)計(jì)流程,自動(dòng)生成配置文件(processdeflnition.xml);
3)生成流程歸檔文件:pde包的工作目錄在使用Ant create.pde生成后,復(fù)制其需要的文件到該目錄下如processdinination.xm1,再使用ant build.precess.archives打包,格式為jar;
4)修改數(shù)據(jù)庫連接設(shè)置:src/config/jbpm.properties為數(shù)據(jù)庫連接信息配置文件,在此文件中配置正確的數(shù)據(jù)庫信息,并在pde工作目錄的lib目錄中添加數(shù)據(jù)庫JDBC驅(qū)動(dòng);
5)部署到數(shù)據(jù)庫:執(zhí)行命令A(yù)nt deploy.process.archives將上一步生成的pde部署到數(shù)據(jù)庫;
6)利用JBPM API函數(shù)開發(fā)相應(yīng)的工作流程。
2 師調(diào)課系統(tǒng)的總體規(guī)劃
教師調(diào)課系統(tǒng)為所有高校教師提供調(diào)課平臺(tái),包含系統(tǒng)管理員、學(xué)校管理員和流程用戶三種類型用戶。我們?cè)O(shè)計(jì)系統(tǒng)的總體框架圖如圖3所示。
系統(tǒng)管理員模塊:
系統(tǒng)常規(guī)管理:系統(tǒng)管理員查看、管理用戶等提交的意見和建議,方便對(duì)系統(tǒng)的維護(hù)和管理;
學(xué)校信息管理:系統(tǒng)管理員可以增刪改查學(xué)校信息;學(xué)校信息刪除后,該系統(tǒng)中該學(xué)校所有的用戶信息、調(diào)課信息,流程信息等都將不可用;
流程部署:若調(diào)課流程發(fā)生變化,系統(tǒng)管理員可以重新部署流程,流程部署后,所有流程將按照新流程流轉(zhuǎn).
學(xué)校管理員模塊:
學(xué)院信息管理:增刪改查本學(xué)校的所有學(xué)院信息;
樓棟信息管理:增刪改查本學(xué)校的所有樓棟信息;
用戶信息管理:增刪改查本學(xué)校的所有用戶信息。
流程用戶模塊:
啟動(dòng)流程:本系統(tǒng)的重要操作,本操作只針對(duì)教師用戶(流程用戶),若教師存在調(diào)課需求,觸發(fā)此事件,填寫調(diào)課相關(guān)信息,申請(qǐng)調(diào)課;
待辦事項(xiàng):本系統(tǒng)的另一個(gè)重要操作,只要教師填寫調(diào)課申請(qǐng)后,流程便已經(jīng)啟動(dòng),啟動(dòng)后流程會(huì)自動(dòng)流向下一個(gè)節(jié)點(diǎn),成為下一個(gè)節(jié)點(diǎn)人員的待辦任務(wù)。涉及的人員有:教學(xué)院長(zhǎng)、院辦公室主任、學(xué)校教務(wù)處、相關(guān)的樓棟管理員、申請(qǐng)教師;
歷史任務(wù):對(duì)于每個(gè)完成的調(diào)課流程,都會(huì)歸檔于歷史任務(wù),供所有涉及處理流程的相關(guān)人員查詢;
調(diào)課進(jìn)展:對(duì)于每個(gè)教師正在處理的調(diào)課流程,均可以在調(diào)課進(jìn)展中查詢,此功能可以使教師查看自己調(diào)課流程的具體進(jìn)展情況。實(shí)時(shí)動(dòng)態(tài)的監(jiān)測(cè)自己的調(diào)課流程;
調(diào)課統(tǒng)計(jì):教務(wù)處用戶可以對(duì)本學(xué)校所有學(xué)院調(diào)課信息進(jìn)行統(tǒng)計(jì),還可以對(duì)各個(gè)學(xué)院教師調(diào)課信息進(jìn)行統(tǒng)計(jì);院長(zhǎng)可以對(duì)本學(xué)院教師調(diào)課信息進(jìn)行統(tǒng)計(jì)。
其他功能模塊:
意見與建議:所有用戶、游客均可以對(duì)系統(tǒng)管理、系統(tǒng)設(shè)計(jì)、系統(tǒng)功能提出自己意見與建議,便于完善系統(tǒng)管理;
用戶中心:所有用戶均可查看該用戶的個(gè)人信息,也可以修改部分用戶信息,如:用戶聯(lián)系方式,用戶郵箱等。
3 基于JBPM的關(guān)鍵實(shí)現(xiàn)
3.1 調(diào)課流程的實(shí)現(xiàn)框架
我們使用JBPM的流程設(shè)計(jì)工具開發(fā)了高校教師調(diào)課工作流程圖,如圖4所示。整個(gè)工作流包含教師、教學(xué)副院長(zhǎng)、院辦主任、教務(wù)處和樓棟管理員五種角色。教師如果存在調(diào)課需求,直接登錄系統(tǒng),填寫申請(qǐng)表,并提交調(diào)課申請(qǐng),這時(shí)系統(tǒng)自動(dòng)啟動(dòng)流程。在教師提交申請(qǐng)表后,流程自動(dòng)流轉(zhuǎn)至教師所在學(xué)院的教學(xué)副院長(zhǎng)處,成為教學(xué)副院長(zhǎng)的待辦任務(wù)。教學(xué)副院長(zhǎng)接收到待辦任務(wù)后,審批和處理該調(diào)課事項(xiàng);若同意該調(diào)課事項(xiàng),在線電子簽章,簽名之后,流程自動(dòng)流轉(zhuǎn)至本學(xué)院辦公室主任處,成為主任的待辦任務(wù);若副院長(zhǎng)不同意,填寫駁回理由,提交后,流程自動(dòng)流轉(zhuǎn)至申請(qǐng)教師處,成為該教師的待辦任務(wù);若該教師還需要繼續(xù)調(diào)課,則需要重新填寫調(diào)課信息,并再次提交;若教師放棄調(diào)課,可以直接點(diǎn)擊放棄調(diào)課,流程信息全部刪除。院辦公室主任在接收到待辦任務(wù)后,在線直接簽章,流程自動(dòng)流轉(zhuǎn)至該學(xué)校教務(wù)處,成為教務(wù)處的待辦任務(wù)。教務(wù)處在接收到待辦任務(wù)后,審批和處理該調(diào)課事項(xiàng);若同意調(diào)課,分配上課教室,并在線直接簽名、簽章,之后流程自動(dòng)流轉(zhuǎn)至所涉及的相關(guān)樓棟管理員處,成為樓棟管理員的待辦任務(wù);若不同意調(diào)課,填寫駁回理由,之后流程自動(dòng)流轉(zhuǎn)至申請(qǐng)教師處,成為該教師的待辦任務(wù),若該教師還需要繼續(xù)調(diào)課,則重新填寫調(diào)課信息,并提交。樓棟管理員在接收到待辦任務(wù)后,直接查看教室管理信息,形成開門通知單,并確認(rèn)收到通知,則該流程會(huì)自動(dòng)流轉(zhuǎn)至申請(qǐng)教師處,成為該教師的待辦任務(wù),教師確認(rèn)之后,流程結(jié)束。
在流程自動(dòng)流轉(zhuǎn)過程中,系統(tǒng)自動(dòng)查詢下一節(jié)點(diǎn)的用戶組所有成員,并以郵件的形式發(fā)送待辦任務(wù)提醒,方便用戶及時(shí)收到待辦任務(wù)信息。
流程執(zhí)行過程中,所有處理流程的相關(guān)人員均可查看流程的實(shí)時(shí)動(dòng)態(tài)信息;若流程結(jié)束后,所有涉及流程相關(guān)人員均可查看流程處理的詳細(xì)信息,并打印調(diào)課申請(qǐng)表等。
4 系統(tǒng)軟件架構(gòu)
系統(tǒng)采用典型的B/ S 架構(gòu),基于MVC(model view controller)模式,即分為業(yè)務(wù)邏輯層、用戶界面層,業(yè)務(wù)控制層,總體架構(gòu)如圖8 所示。用戶界面層使用JSP(Java Server Page)和Struts標(biāo)簽庫方便數(shù)據(jù)的輸入和展示,支持各種基于超文本傳輸協(xié)議(HTTP)的客戶端訪問。業(yè)務(wù)控制層運(yùn)行于Tomcat容器,采用經(jīng)典的Struts2 框架,讓業(yè)務(wù)邏輯控制器完全脫離Servlet API,結(jié)合Struts2攔截器機(jī)制,用于處理用戶請(qǐng)求。業(yè)務(wù)邏輯層采用輕量級(jí)Spring框架,使用控制反轉(zhuǎn)(IOC)和依賴注入技術(shù)動(dòng)態(tài)創(chuàng)建和管理各種bean對(duì)象,基于面向切面編程(AOP)的技術(shù)很方便地插入或卸載功能模塊,如事務(wù)管理等。業(yè)務(wù)邏輯層以服務(wù)的形式向控制層提供接口,與數(shù)據(jù)庫的交互則由DAO 層實(shí)現(xiàn)。數(shù)據(jù)訪問部分由Hibernate框架實(shí)現(xiàn),完成MySQL關(guān)系型數(shù)據(jù)模型和業(yè)務(wù)層對(duì)象模型之間的映射。對(duì)于與流程相關(guān)的數(shù)據(jù)操作,全部采用JBPM工作流引擎處理。這種分層、松耦合的軟件架構(gòu)使系統(tǒng)具有極好的可擴(kuò)展性和維護(hù)性。
5 結(jié)束語
工作流技術(shù)能建模組織內(nèi)部各種工作流程,實(shí)現(xiàn)自動(dòng)或半自動(dòng)的流轉(zhuǎn),記錄任務(wù)操作,提高組織工作效率和質(zhì)量。該文針對(duì)傳統(tǒng)高校教師調(diào)課的種種弊端,設(shè)計(jì)了一個(gè)比較通用的調(diào)課流程,并基于JBPM工作流框架實(shí)現(xiàn)了調(diào)課平臺(tái)。系統(tǒng)的web和android兩種操作界面能使各種角色隨時(shí)隨地處理流程結(jié)點(diǎn),從而極大地提高工作效率。系統(tǒng)的統(tǒng)計(jì)功能有利于學(xué)校對(duì)日常教學(xué)的有效管理。
參考文獻(xiàn):
[1] 胡奇.JBPM4 工作流應(yīng)用開發(fā)指南[M].北京:電子工業(yè)出版社,2011.
[2] 范玉順,羅海濱.工作流管理技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社,2001.
[3] Hollingsworth D.The workflow reference model[J]. [R].Technical Report TC00-1003 issue 1.1, workflow management coalition, UK,1995.段雪麗,妊妤,曹靜.基于JBPM的高校辦公自動(dòng)化系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].邢臺(tái)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2012,29(3):96-100.
[4] 魯宛生,劉婷婷,王林生.JBPM工作流在企業(yè)請(qǐng)假流程中的應(yīng)用[J].電子商務(wù),2013(4):70-71.
[5] 潘強(qiáng).基于JBPM的公文審批系統(tǒng)的設(shè)計(jì)與開發(fā)[J].電腦知識(shí)與技術(shù),2011,7(32):7913-7914.
[6] 汪會(huì)財(cái).基于JBPM的電力調(diào)度培訓(xùn)考試可視化流程管理系統(tǒng)[J].電力自動(dòng)化設(shè)備,2012,32(6):107-110.
[7] 吳蕾.基于JBPM工作流技術(shù)的醫(yī)院內(nèi)部報(bào)銷審批系統(tǒng)[J].醫(yī)學(xué)信息學(xué)雜志,2012,33(6):28-32.