国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Activiti的化學(xué)分析檢測系統(tǒng)的關(guān)鍵技術(shù)研究

2015-09-09 05:59:17鄒志敏
電腦知識與技術(shù) 2015年16期
關(guān)鍵詞:業(yè)務(wù)流程引擎部署

鄒志敏

摘要:隨著化學(xué)分析檢測中心業(yè)務(wù)繁多和流程多變,工作越來越復(fù)雜繁瑣,使得工作效率極低。Activiti工作流技術(shù)在自動(dòng)化辦公中得到很好的應(yīng)用。根據(jù)分析測試系統(tǒng)的業(yè)務(wù)流程,利用Activiti工作流技術(shù),動(dòng)態(tài)部署業(yè)務(wù)流程,實(shí)現(xiàn)業(yè)務(wù)流程相關(guān)環(huán)節(jié)的問題,方便工作,提高工作效率。該文介紹了工作流技術(shù)、Activiti工作流引擎、SSH2框架及BPMN2.0規(guī)范,基于SSH2開源框架,選擇Activiti對系統(tǒng)業(yè)務(wù)流程進(jìn)行管理設(shè)計(jì),采用MVC模式設(shè)計(jì),使各個(gè)框架更加松耦合有效地結(jié)合在一起,適應(yīng)靈活多變的業(yè)務(wù)流程。

關(guān)鍵詞:Activiti工作流,SSH2框架,BPMN2.0規(guī)范,MVC模式

中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)03-0122-03

Research on Key Technologies of Chemical Analysis and Ddetection System Based on Activiti

ZOU Zhi-min

(School of Information and Electronic Engineering,East China Institute of Technology, Nanchang 330013, China)

Abstract: With the chemical analysis and testing center business and process variable, the work is more and more complex, which makes the work efficiency is very low. Activiti workflow technology has been used in the automation of office. Based on the analysis of the test system of business process, use the activiti workflow technology, dynamic deployment business process, realize the business process related aspects of the problem, to facilitate the work, to improve work efficiency. In this paper, we introduce workflow technology, workflow engine activiti, SSH2 framework and bpmn2.0 specification, SSH2 based on open source framework, activiti of system business process management design, uses the MVC design pattern, make each frame more coupling Garzon effectively combined together, suitable for flexible business processes.

Key words: Activiti workflow; SSH2 framework; BPMN2.0 specification; MVC model

越來越多的企業(yè)使用 OA(辦公自動(dòng)化)系統(tǒng)來提高工作效率,即通過 OA 系統(tǒng)來實(shí)現(xiàn)各個(gè)成員和部門之間的協(xié)同辦公、信息流轉(zhuǎn)以及資源共享等[1]。在分析測試系統(tǒng)中,主要業(yè)務(wù)流程有合同評審、財(cái)務(wù)審批、樣品受理、任務(wù)分配、檢測報(bào)告審批等,隨著化學(xué)檢測中心業(yè)務(wù)的不斷發(fā)展,業(yè)務(wù)需求靈活多變,傳統(tǒng)的工作流很難適應(yīng)變化,Activiti工作流的特點(diǎn)很好應(yīng)用到其中,以Activiti工作流引擎為核心,將業(yè)務(wù)流程實(shí)現(xiàn)。使用圖形可視化界面動(dòng)態(tài)部署流程文件,使得業(yè)務(wù)人員可以根據(jù)需求動(dòng)態(tài)設(shè)定和更改流程,適應(yīng)靈活變動(dòng)的業(yè)務(wù)需求,提高工作效率。

1 理論研究和關(guān)鍵技術(shù)

1.1 工作流技術(shù)

工作流(Workflow),是對工作流程及其各操作步驟之間業(yè)務(wù)規(guī)則的抽象、概括、描述。工作流建模,即將工作流程中的工作如何前后組織在一起的邏輯和規(guī)則在計(jì)算機(jī)中以恰當(dāng)?shù)哪P瓦M(jìn)行表示并對其實(shí)施計(jì)算[2]。工作流工作機(jī)制是對業(yè)務(wù)流程進(jìn)行分析,設(shè)定各個(gè)活動(dòng)執(zhí)行人,利用流程設(shè)計(jì)器繪制流程規(guī)則,把信息傳遞下一活動(dòng)執(zhí)行人。工作流管理系統(tǒng)對工作流進(jìn)行定義、部署到計(jì)算機(jī)上執(zhí)行流程和管理工作流,對工作流的各個(gè)活動(dòng)信息以及活動(dòng)參與者進(jìn)行協(xié)調(diào)工作。

1.2 Activiti引擎

Activiti引擎最大的優(yōu)勢是采用了PVM(流程虛擬機(jī)),支持除了BPMN2.0規(guī)范以外的流程格式,與外包服務(wù)有良好的集成能力,接口清晰[3]。能夠快速穩(wěn)定的對業(yè)務(wù)流程建模設(shè)計(jì)。容易注入到Sping容器中,方便集成。Activiti核心組件包括Activiti Engine 、Activiti Explorer、Activiti Modeler 和Activiti Designer 等。

Activiti Engine是用來執(zhí)行以流程建模語言定義的流程,在Activiti項(xiàng)目中,BPMN2.0規(guī)范的流程文件部署到系統(tǒng)中,通Activiti Engine來解析。另外,Activiti Engine也對統(tǒng)計(jì)數(shù)據(jù)收集和工作流實(shí)例控制,如分發(fā)任務(wù)、管理事務(wù)、生成報(bào)表等。

Activiti Explorer 是Activiti提供的一個(gè)以web形式訪問的應(yīng)用程序。它可以提供流程設(shè)計(jì)、部署流程、流程流轉(zhuǎn)、任務(wù)管理和數(shù)據(jù)監(jiān)控等。

Activiti Designer 是一個(gè)Eclipse中的流程設(shè)計(jì)器插件,根據(jù)BPMN2.0規(guī)范和其他擴(kuò)展元素來設(shè)計(jì)業(yè)務(wù)流程。通過圖形可視化設(shè)計(jì)流程圖生成流程文件,使流程設(shè)計(jì)人員能夠更全面的配置和規(guī)范流程。

Activiti Modeler 是不同于Activiti Designer的流程設(shè)計(jì)器,它通過瀏覽器來設(shè)計(jì)基于BPMN2.0規(guī)范的流程。

1.3 BPMN2.0 規(guī)范

BPMN2.0規(guī)范定義了業(yè)務(wù)流程的符號以及模型,并且為流程設(shè)定了轉(zhuǎn)換格式,目的是讓流程的定義實(shí)現(xiàn)可移植性[4]。基于BPMN2.0規(guī)范使得業(yè)務(wù)流程模型設(shè)計(jì)簡單且能夠執(zhí)行復(fù)雜的業(yè)務(wù)流程。BPMN2.0規(guī)范的五個(gè)元素流對象、數(shù)據(jù)、鏈接對象、泳道和制品讓業(yè)務(wù)流程的全部參與人員可以對流程進(jìn)行可視化管理,使得業(yè)務(wù)人員不依賴IT開發(fā)人員就可以對流程進(jìn)行設(shè)計(jì)管理。BPMN2.0規(guī)范是通過定義了XML規(guī)范,在語法上對流程描述文件進(jìn)行定義,這樣使得流程文件應(yīng)用更加廣泛,針對目前各個(gè)領(lǐng)域的業(yè)務(wù)需求,在業(yè)務(wù)功能上提供了能夠解決不同問題的工作流種類。

1.4 SSH2框架

SSH2框架是目前Java Web應(yīng)用程序開發(fā)首選的開源集成框架,是由Struts2、Spring、Hibernate集成的輕量級框架。采用MVC設(shè)計(jì)模式,分為三層,表示層、業(yè)務(wù)層和持久層,可降低各層之間耦合度,減少開發(fā)復(fù)雜度,縮短開發(fā)周期,節(jié)省開發(fā)成本,提升軟件質(zhì)量[5]。Struts2負(fù)責(zé)業(yè)務(wù)跳轉(zhuǎn),Hibernate負(fù)責(zé)數(shù)據(jù)持久化,Spring負(fù)責(zé)查找、定位、創(chuàng)建和管理對象與對象之間的依賴。在表示層中,通過Jsp頁面進(jìn)行交互,由Struts控制請求和響應(yīng);在業(yè)務(wù)層中,Spring容器負(fù)責(zé)完成業(yè)務(wù)邏輯處理,同時(shí)提供事務(wù)處理、緩沖池來保證數(shù)據(jù)的完整性和系統(tǒng)的性能;在持久層中,hibernate對象化映射和數(shù)據(jù)庫交互,處理請求和響應(yīng)數(shù)據(jù)。SSH2框架實(shí)現(xiàn)了視圖、控制器和模型的分離,同時(shí)把持久層和業(yè)務(wù)層也分離處理,使結(jié)構(gòu)清晰,方便開發(fā)和調(diào)試,更適應(yīng)于團(tuán)隊(duì)開發(fā),提高了開發(fā)效率。由于Struts2、hibernate和Spring框架是開源的,可供參考的代碼和良好的設(shè)計(jì)模式,有利于快速開發(fā)項(xiàng)目,提高系統(tǒng)可維護(hù)性、可擴(kuò)展性處理效率。SSH2結(jié)構(gòu)圖如圖1:

圖1 SSH2結(jié)構(gòu)圖

2 基于Activiti 的分析測試系統(tǒng)實(shí)現(xiàn)

2.1 分析測試系統(tǒng)的業(yè)務(wù)需求

流程引擎的主要應(yīng)用是對業(yè)務(wù)流程分析設(shè)計(jì)。分析測試系統(tǒng)的主要業(yè)務(wù)流程包括合同送審、樣品受理流轉(zhuǎn)、任務(wù)分配、原始記錄單和檢測報(bào)告審核等。客戶送來水樣檢測,首先在業(yè)務(wù)辦簽訂合同,合同評審?fù)ㄟ^后才進(jìn)行樣品受理,成功后業(yè)務(wù)部下達(dá)任務(wù)到各個(gè)檢測室進(jìn)行項(xiàng)目檢測,樣品檢測完后記錄原始數(shù)據(jù),檢測室把數(shù)據(jù)發(fā)給業(yè)務(wù)辦來做檢測報(bào)告,報(bào)告出來后進(jìn)行審核,審核通過后,再把檢測報(bào)告發(fā)給客戶。通過對業(yè)務(wù)流程的分析,利用流程設(shè)計(jì)器,根據(jù)BPMN2.0規(guī)范,設(shè)計(jì)流程各個(gè)活動(dòng)環(huán)節(jié)的信息和參與人員,使業(yè)務(wù)邏輯在計(jì)算機(jī)上執(zhí)行。分析測試系統(tǒng)業(yè)務(wù)流程圖如圖2:

圖2 分析測試系統(tǒng)的業(yè)務(wù)流程圖

2.2 系統(tǒng)的設(shè)計(jì)

系統(tǒng)結(jié)構(gòu)采用B/S模式設(shè)計(jì),基于MyEclipse10開發(fā)平臺,使用Struts2+Hibernate+Spring+EasyUI集成的Web輕量級架構(gòu),結(jié)合Ajax、jQuery等前端開發(fā)技術(shù),且把Activiti工作流引擎應(yīng)用到SSH2框架中。采用MVC三層架構(gòu)設(shè)計(jì)模式,實(shí)現(xiàn)圖形界面化部署定義流程,若業(yè)務(wù)需求改變時(shí),只要把新的流程部署到系統(tǒng)中,就可實(shí)現(xiàn)新的業(yè)務(wù),不需要再修改系統(tǒng)。

1)表現(xiàn)層是用戶通過瀏覽器訪問應(yīng)用程序。使用Struts2和Jsp作為表現(xiàn)層頁面,結(jié)合jQuery和Ajax技術(shù),用于人機(jī)交互。

2)在業(yè)務(wù)層中,Struts2攔截用戶的請求到Action業(yè)務(wù)控制器中,通過Spring容器中的listener監(jiān)聽器獲取到業(yè)務(wù)數(shù)據(jù),再把數(shù)據(jù)給Service層處理,利用Service層操作Dao層,Dao層與數(shù)據(jù)庫進(jìn)行增刪改查操作,最后把響應(yīng)數(shù)據(jù)交給表現(xiàn)層。其中Activiti的工作流引擎配置文件本質(zhì)也是一種Spring配置文件,Activiti引擎用于處理所有與流程相關(guān)的數(shù)據(jù)操作,將Activiti工作流引擎交給Spring容器管理,Spring能夠控制反轉(zhuǎn)(IoC)和面向切面(Aop),容易實(shí)現(xiàn)事務(wù)管理和Bean的注入等特性。Hibernate實(shí)現(xiàn)數(shù)據(jù)訪問,對底層訪問數(shù)據(jù)庫代碼進(jìn)行封裝,使開發(fā)更面向?qū)ο蠡?,移植性好,用于解決不同數(shù)據(jù)庫異構(gòu)問題。

3)數(shù)據(jù)層是基于SQLserver2008數(shù)據(jù)庫,把工作流從部署開始到結(jié)束流程所生成的全部數(shù)據(jù)進(jìn)行相對應(yīng)的保存。Activiti有自己的數(shù)據(jù)表,表的命名與服務(wù)接口命名方式基本相同,從功能上劃分為5大部分,包括身份數(shù)據(jù)表、運(yùn)行時(shí)數(shù)據(jù)表、流程存儲表、通用數(shù)據(jù)表和歷史數(shù)據(jù)表,表頭都是以ACT開始,中間是一到兩個(gè)字符來標(biāo)識用例,例如ACT_ID_*,ID代表identify,表示用戶、用戶組等信息。

2.3 檢測報(bào)告審核流程實(shí)例

業(yè)務(wù)辦根據(jù)原始數(shù)據(jù)做出檢測報(bào)告,然后送到檢測室負(fù)責(zé)人進(jìn)行審批,審批通過后流轉(zhuǎn)到技術(shù)負(fù)責(zé)人審批,再送到質(zhì)量負(fù)責(zé)人審批,最后流轉(zhuǎn)到主任審批。若未通過,進(jìn)行逐級駁回。

1)繪制流程圖。根據(jù)BPMN2.0規(guī)范,通過Activiti Designer插件繪制檢測報(bào)告流程圖。檢測報(bào)告審批流程圖如圖3:

圖3 檢測報(bào)告審批流程圖

2)部署流程定義文件,利用ActivitiDesigner把基于BPMN2.0規(guī)范的流程文件和流程圖文件一起打包,通過系統(tǒng)上傳進(jìn)行部署。利用流程引擎提供的repositoryService接口將打包好的流程定義文件部署到Activiti引擎中,關(guān)鍵代碼如下:

ZipInputStream zipInputStream =new ZipInputStream(new FileInputStream(upload));

processEngine.getRepositoryService().createDeployment().addResourcesFromZipInputStream(zipInputStream).deploy();

3)啟動(dòng)流程實(shí)例。部署好流程文件后,把processEngine注入到工作流引擎中,利用Activiti的API讀取流程定義文件開啟流程實(shí)例,啟動(dòng)檢測報(bào)告流程代碼如下:

Map variablesMap = new HashMap();

variablesMap.put("application", application);

String pdKey = application.getApplicationTemplate().getProcessDefinitionKey();

ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceByKey(pdKey, variablesMap);

4)審核流程。當(dāng)有任務(wù)處理時(shí)候,登錄系統(tǒng)后會(huì)有任務(wù)提醒,不同的審核人登錄后,可以得到待辦任務(wù)列表進(jìn)行審核,同時(shí)加入郵件和短信提醒,更加提高工作效率,關(guān)鍵代碼如下:

Task task =processEngine.getTaskService()//

.createTaskQuery().processInstanceId(pi.getId()).uniqueResult();

processEngine.getTaskService().completeTask(task.getId());

2.4 結(jié)果分析

通過上述框架的整合設(shè)計(jì),Activiti工作流引擎很好的應(yīng)用到分析檢測系統(tǒng)當(dāng)中,當(dāng)業(yè)務(wù)流程需求變動(dòng)時(shí),根據(jù)新的需求,利用流程設(shè)計(jì)器設(shè)計(jì)新的業(yè)務(wù)流程圖,只需要在系統(tǒng)中部署的新的流程文件,添加版本控制,新的流程模型就會(huì)替換舊的流程模型,不需要改變系統(tǒng)就可實(shí)現(xiàn)動(dòng)態(tài)改變業(yè)務(wù)流程。還可以查看流程狀態(tài),大大提高工作效率。流程文件部署效果如圖4:

圖4 流程部署效果圖

3 結(jié)束語

本文基于化學(xué)分析檢測系統(tǒng)的需求,針對目前存在的問題,以Activiti工作流引擎為核心,集成Struts2、Spring、Hibernate框架,將表現(xiàn)層、業(yè)務(wù)層和持久層進(jìn)行分離,降低流程業(yè)務(wù)系統(tǒng)的耦合度,使業(yè)務(wù)需求發(fā)生變化時(shí),只需要把新的流程動(dòng)態(tài)部署到流程系統(tǒng)中,提高了業(yè)務(wù)流程管理的方便性和靈活性。以分析測試系統(tǒng)中的檢測報(bào)告流程為例,給出了核心技術(shù),實(shí)現(xiàn)了基于Activiti標(biāo)準(zhǔn)的業(yè)務(wù)流程。與傳統(tǒng)流程系統(tǒng)開發(fā)相比較,Activiti工作流引擎解決了業(yè)務(wù)需求靈活變動(dòng)問題,同時(shí)流程設(shè)計(jì)器提供了簡單易懂的圖形設(shè)計(jì)和能夠解決復(fù)雜業(yè)務(wù)流程的功能,方便業(yè)務(wù)人員獨(dú)立進(jìn)行流程設(shè)計(jì),大大提高了工作效率。

參考文獻(xiàn):

[1] 施俊,李艷會(huì). Activiti工作流技術(shù)在OA系統(tǒng)中的研究與實(shí)現(xiàn)[J]. 軟件導(dǎo)刊,2014(12):52-54.

[2] 徐亦楠,葛志輝,潘海源. Activiti5工作流在OA系統(tǒng)中的應(yīng)用[J]. 大眾科技,2014(1):5-7,11.

[3] 任銘亮,楊之垚,高永祥. 基于Activiti的工作流引擎在中小企業(yè)中的應(yīng)用研究[J]. 中國高新技術(shù)企業(yè),2015(11):51-53.

[4] 楊恩雄. 瘋狂Workflow——基于Activiti的工作流應(yīng)用開發(fā)[M].北京:電子工業(yè)出版社,2014.

[5] 高亮,劉旸,宗傳玉. 基于SSH2與JBPM的OA系統(tǒng)應(yīng)用與研究[J].微處理機(jī),2011(8):38-40.

猜你喜歡
業(yè)務(wù)流程引擎部署
一種基于Kubernetes的Web應(yīng)用部署與配置系統(tǒng)
晉城:安排部署 統(tǒng)防統(tǒng)治
RPA機(jī)器人助業(yè)務(wù)流程智能化
部署
STK業(yè)務(wù)流程優(yōu)化的探究
電子測試(2018年23期)2018-12-29 11:11:28
企業(yè)財(cái)務(wù)管理、業(yè)務(wù)流程管理中整合ERP之探索
藍(lán)谷: “涉藍(lán)”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
基于財(cái)務(wù)業(yè)務(wù)流程再造的ERP信息系統(tǒng)構(gòu)建探析
中國商論(2016年34期)2017-01-15 14:24:22
部署“薩德”意欲何為?
太空探索(2016年9期)2016-07-12 10:00:02
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
德惠市| 鱼台县| 凌源市| 余江县| 昌乐县| 枣强县| 浪卡子县| 青海省| 新疆| 都兰县| 神池县| 申扎县| 蕲春县| 塔城市| 巨野县| 吉首市| 砚山县| 达尔| 库尔勒市| 五家渠市| 黄龙县| 新源县| 藁城市| 和硕县| 资中县| 连江县| 乐平市| 丰台区| 林芝县| 资源县| 嘉祥县| 沧源| 滨州市| 英吉沙县| 诏安县| 乐山市| 嘉义县| 锦州市| 武陟县| 东阿县| 沂源县|