亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        工作流在企業(yè)環(huán)境微生物檢測中的應(yīng)用①

        2018-04-21 01:37:26張?jiān)迫A
        關(guān)鍵詞:引擎流程數(shù)據(jù)庫

        張 健, 張?jiān)迫A

        (浙江理工大學(xué) 信息學(xué)院,杭州 310018)

        1 引言

        工作流技術(shù)起源于上個(gè)世紀(jì) 70 年代中期辦公自動(dòng)化領(lǐng)域的研究工作,通過將工作分解定義良好的任務(wù)角色,按一定的規(guī)則和過程來執(zhí)行這些任務(wù)并對它們進(jìn)行監(jiān)控來提高辦事效率降低生產(chǎn)成本,提高企業(yè)生產(chǎn)經(jīng)營管理水平和企業(yè)競爭力[1]. Activiti是一個(gè)業(yè)務(wù)流程管理(BPM)和工作流系統(tǒng),適用于開發(fā)人員和系統(tǒng)管理員. 其核心是超快速,穩(wěn)定的BPMN2流程引擎. 它易于與Spring框架集成使用.

        JAVA語言Spring框架是一個(gè)輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架. 低侵入式設(shè)計(jì),代碼污染極低,同時(shí)獨(dú)立于各種應(yīng)用服務(wù)器Spring的DI機(jī)制降低了業(yè)務(wù)對象替換的復(fù)雜性,提高了組件之間的解耦; Spring[2]的AOP支持允許將一些通用任務(wù)如安全、事務(wù)、日志等進(jìn)行集中式管理,從而提供了更好的復(fù)用; Spring的ORM和DAO提供了與第三方持久層框架的良好整合,并簡化了底層的數(shù)據(jù)庫訪問;Spring并不強(qiáng)制應(yīng)用完全依賴于Spring,開發(fā)者可自由選用Spring框架的部分或全部.

        JAVA語言[3]Struts框架具有組件的模塊化,靈活性和重用性的優(yōu)點(diǎn),同時(shí)簡化了基于MVC的web應(yīng)用程序的開發(fā). Struts可以清晰地區(qū)分控制,事務(wù)邏輯和外觀,從而簡化了開發(fā)應(yīng)用程序的過程. Struts[4]提供的類使得開發(fā)工作更加簡單,這些類包括: 實(shí)現(xiàn)和執(zhí)行程序事務(wù)邏輯的類自定義的標(biāo)記庫使得創(chuàng)建和驗(yàn)證HTML表單更加容易.

        針對當(dāng)前企業(yè)環(huán)境微生物檢測中的問題,設(shè)計(jì)了一套基于工作流的企業(yè)環(huán)境微生物檢測平臺(tái)系統(tǒng).

        2 企業(yè)環(huán)境微生物檢測平臺(tái)

        2.1 業(yè)務(wù)背景和目標(biāo)

        在當(dāng)前企業(yè)環(huán)境微生物檢測平臺(tái)中,操作人員手工處理數(shù)據(jù)很繁瑣,工作量繁重,尤其在檢測過程中,數(shù)據(jù)流轉(zhuǎn)不合理,不規(guī)范的問題,致使客戶和操作人員都無法及時(shí)準(zhǔn)確地獲取檢測項(xiàng)目的進(jìn)度和結(jié)果,甚至可能會(huì)帶來嚴(yán)重的經(jīng)濟(jì)損失. 由此,設(shè)計(jì)開發(fā)一套邏輯嚴(yán)密,結(jié)構(gòu)穩(wěn)定的微生物監(jiān)測系統(tǒng),進(jìn)而可以提高工作效率和準(zhǔn)確率,帶來經(jīng)濟(jì)效益,減少不必要的經(jīng)濟(jì)損失.

        2.2 系統(tǒng)的業(yè)務(wù)流程

        系統(tǒng)整體業(yè)務(wù)流程如圖1所示.

        圖1 系統(tǒng)業(yè)務(wù)流程圖

        ① 從客戶提交訂單后開始,同時(shí)產(chǎn)生一個(gè)唯一的流程編號,由工作流引擎將表單傳給銷售部門. ② 銷售部接受到訂單任務(wù)后,檢查訂單,發(fā)現(xiàn)有誤可以進(jìn)行修改,無法修改時(shí)可以打回給客戶,通知其重新修改訂單提交. 確認(rèn)無誤后,將訂單傳遞到綜合管理部門. ③ 綜合管理部門接收檢查訂單信息以后,發(fā)現(xiàn)問題同樣可以進(jìn)行打回,直至無誤后,將訂單樣品進(jìn)行接收,任務(wù)進(jìn)程進(jìn)入到實(shí)驗(yàn)部. ④ 實(shí)驗(yàn)部獲取到樣品,可以進(jìn)行對應(yīng)實(shí)驗(yàn)并填寫實(shí)驗(yàn)數(shù)據(jù). 實(shí)驗(yàn)完成后,任務(wù)流程到達(dá)信息部. ⑤ 信息部上傳實(shí)驗(yàn)匯總數(shù)據(jù),外部程序獲取到上傳實(shí)驗(yàn)數(shù)據(jù)后,進(jìn)行驗(yàn)證分析,得出結(jié)果. ⑥ 將結(jié)果返回到服務(wù)器數(shù)據(jù)中,系統(tǒng)程序自動(dòng)檢測到結(jié)果數(shù)據(jù)后,根據(jù)結(jié)果生成實(shí)驗(yàn)報(bào)告,信息部將所得實(shí)驗(yàn)結(jié)果發(fā)送到綜合運(yùn)營部門. ⑦ 綜合運(yùn)營部門對實(shí)驗(yàn)報(bào)告進(jìn)行審核,審核不通過,可以打回到信息部門,審核通過,可以將報(bào)告送到實(shí)驗(yàn)室主任. ⑧ 實(shí)驗(yàn)室主任對報(bào)告進(jìn)行最后確認(rèn),決定是否進(jìn)行簽發(fā)操作. ⑨ 簽發(fā)后,數(shù)據(jù)報(bào)告到銷售部門,銷售部將報(bào)告發(fā)放給客戶. ⑩ 最后客戶接收到報(bào)告后流程結(jié)束.

        在系統(tǒng)整個(gè)流程中,任何部門都可以隨時(shí)查詢到訂單的進(jìn)度情況,信息能夠?qū)崿F(xiàn)共享同時(shí)每一個(gè)訂單都能在部門之間準(zhǔn)確的流轉(zhuǎn).

        2.3 系統(tǒng)建設(shè)方案

        基于當(dāng)前紙質(zhì)化的微生物檢測流程,建立一個(gè)環(huán)境微生物檢測平臺(tái)勢必存在一些挑戰(zhàn)和困難,主要包括以下幾個(gè)方面.

        1) 如何將項(xiàng)目流程進(jìn)度與部門聯(lián)系起來,并實(shí)時(shí)查看項(xiàng)目所處部門,獲取項(xiàng)目進(jìn)度;

        2) 如何解決實(shí)驗(yàn)步驟的控制和動(dòng)態(tài)修改;

        3) 報(bào)告審核過程中,每一個(gè)樣本都要生成報(bào)告,然后并上傳到服務(wù)器,由于每個(gè)樣本都存在大量數(shù)據(jù),生成報(bào)告和上傳需要都消耗大量時(shí)間. 如何優(yōu)化報(bào)告審核功能.

        4) 如何控制不同用戶在不同地點(diǎn)登錄權(quán)限問題.

        針對上述問題,主要的解決辦法如下.

        1) 首先將所有的項(xiàng)目狀態(tài)規(guī)范定義并與相關(guān)部門進(jìn)行關(guān)聯(lián). 然后統(tǒng)計(jì)不同類型項(xiàng)目步驟總數(shù),項(xiàng)目每完成一步或者打回時(shí),項(xiàng)目狀態(tài)立即發(fā)生改變,并計(jì)算當(dāng)前狀態(tài)處于項(xiàng)目哪一步驟,確定進(jìn)度值.

        2) 首先需要設(shè)計(jì)好所有類型項(xiàng)目的實(shí)驗(yàn)步驟頁面并對其進(jìn)行編碼,針對不同的項(xiàng)目的實(shí)驗(yàn)步驟,可以進(jìn)行排序以及調(diào)整. 項(xiàng)目實(shí)驗(yàn)進(jìn)行過程中,通過當(dāng)前項(xiàng)目類型和項(xiàng)目當(dāng)前實(shí)驗(yàn)步驟,從而可以得到下一步實(shí)驗(yàn)步驟編碼和對應(yīng)URL地址,通過URL地址就可定位到對應(yīng)實(shí)驗(yàn)步驟頁面.

        3) 報(bào)告審核時(shí)需要服務(wù)器中其他程序進(jìn)行審核判斷的,所以需要將一個(gè)項(xiàng)目中的所有樣本數(shù)據(jù)生成對應(yīng)的樣本報(bào)告并上傳到FTP服務(wù)器. 這需要消耗大量的時(shí)間,用戶在此過程中無法進(jìn)行其他操作,用戶的體驗(yàn)很差. 本系統(tǒng)在原有的基礎(chǔ)上,設(shè)置一個(gè)循環(huán)定時(shí)器,定時(shí)的去獲取上傳進(jìn)度,直至完成后,銷毀定時(shí)器. 之前的流程在后臺(tái)自動(dòng)進(jìn)行,從而給用戶很好操作體驗(yàn).

        4) 由于數(shù)據(jù)安全性的問題,除了銷售部門成員和客戶. 其他部門人員只能在公司內(nèi)部進(jìn)行登錄. 而銷售部門人員由于業(yè)務(wù)的需求,不能經(jīng)常在公司內(nèi)部,此時(shí)需要設(shè)置權(quán)限認(rèn)證用戶進(jìn)行登錄. 公司內(nèi)網(wǎng)采用是用VPN (Virtual Private Network),即“虛擬專用網(wǎng)絡(luò)”,是虛擬出來的企業(yè)內(nèi)部專線.

        為外網(wǎng)登錄用戶分配登錄權(quán)限. 當(dāng)用戶進(jìn)行登錄,首先判斷當(dāng)前網(wǎng)絡(luò)是公司內(nèi)網(wǎng)還是外部網(wǎng)絡(luò). 若為內(nèi)網(wǎng),賬號密碼無誤后,直接登錄. 而處于外網(wǎng),賬號密碼無誤后,判斷是否有登錄權(quán)限,若有權(quán)限,登錄成功. 若無權(quán)限,登錄失敗.

        3 企業(yè)環(huán)境微生物檢測平臺(tái)實(shí)現(xiàn)

        3.1 開發(fā)環(huán)境

        Eclipse是著名的跨平臺(tái)的自由集成開發(fā)環(huán)境(IDE),是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái). 就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境. 因此環(huán)境微生物監(jiān)測平臺(tái)的設(shè)計(jì)采用Eclipse開發(fā)環(huán)境.

        3.2 數(shù)據(jù)庫設(shè)計(jì)

        MySQL數(shù)據(jù)庫簡稱MySQL,是一款由瑞典MySQL AB公司開發(fā)并且廣泛應(yīng)用在于小型企業(yè)或者組織中的小型數(shù)據(jù)管理系統(tǒng),MySQL數(shù)據(jù)庫因其體積小、速度快、總體擁有成本低等優(yōu)點(diǎn).

        MySQL數(shù)據(jù)庫是基于Linux操作系統(tǒng)開發(fā)出來的數(shù)據(jù)庫,眾所周知Linux是開放源碼的操作系統(tǒng),所以MySQL數(shù)據(jù)庫也是開放源碼的免費(fèi)數(shù)據(jù)庫,這也是MySQL數(shù)據(jù)庫的優(yōu)點(diǎn). 基于以上的優(yōu)點(diǎn),本系統(tǒng)使用就是Mysql數(shù)據(jù)庫.

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

        系統(tǒng)的設(shè)計(jì)采用的是MVC模式[5]. MVC是一種開發(fā)模式,是很強(qiáng)大,應(yīng)用很廣泛的. 是面向?qū)ο蟮幕A(chǔ)的常見開發(fā)模式.

        MVC 定義: 即 Model-View-Controller,把一個(gè)應(yīng)用的輸入、處理、輸出流程按照Model、View、Controller的方式進(jìn)行分離,這樣一個(gè)應(yīng)用被分成3層,即模型層、視圖層、控制層.

        3.3.1 后臺(tái)業(yè)務(wù)設(shè)計(jì)

        系統(tǒng)中后臺(tái)設(shè)計(jì)采用分層結(jié)構(gòu)來實(shí)現(xiàn),主要分為3層: 行為(Action)層,業(yè)務(wù)邏輯層,數(shù)據(jù)交換層.

        其中Action層使用的是Struts技術(shù). ActionServlet是Struts中核心的控制器,所有的用戶請求都必須通過ActionServlet的處理,ActionServlet通過配置文件把用戶的請求發(fā)送到對應(yīng)的Action控制器中. 所以,所有從前端向后臺(tái)發(fā)送的請求方法,都是在Action控制器中進(jìn)行編寫,而Action全部交由Spring去管理. 數(shù)據(jù)庫中獲取的數(shù)據(jù)要先回到Action層,通過HttpServletResponse將數(shù)據(jù)返回到前端. 由于篇幅原因,Struts配置文件部分代碼如下:

        業(yè)務(wù)邏輯層和數(shù)據(jù)交換層使用的是Spring技術(shù),Action層的獲取的到前臺(tái)Ajax請求后,會(huì)先到業(yè)務(wù)邏輯層進(jìn)行對應(yīng)處理,同時(shí)事務(wù)管理是通過Spring中的AOP模塊來控制,它是將一個(gè)或多個(gè)操作放在同一個(gè)事務(wù)下,最終統(tǒng)一進(jìn)行提交或者回滾. 而數(shù)據(jù)交換層,即與數(shù)據(jù)庫的交互,是通過Spring DAO中的JdbcTemplate模塊來實(shí)現(xiàn). Spring的IOC特性可以很好的管理Action層,業(yè)務(wù)邏輯(Service)層,數(shù)據(jù)交互(Dao)層. 部分管理代碼如下:

        整個(gè)系統(tǒng)基礎(chǔ)數(shù)據(jù)的傳輸交互流程如圖2所示.由于本系統(tǒng)的分層設(shè)計(jì),使得各層內(nèi)部的能獨(dú)立變化,而整體不受影響.

        圖2 數(shù)據(jù)傳輸流程圖

        3.3.2 Activiti工作流引擎接口的設(shè)計(jì)

        Activiti流程[6,7]引擎重點(diǎn)關(guān)注在系統(tǒng)開發(fā)的易用性和輕量性上. 每一項(xiàng)BPM[8]業(yè)務(wù)功能Activiti流程引擎都以服務(wù)的形式提供給開發(fā)人員. 通過使用這些服務(wù),開發(fā)人員能夠構(gòu)建出功能豐富、輕便且高效的BPM應(yīng)用程序. 圖3是Activiti引擎的系統(tǒng)服務(wù)結(jié)構(gòu)圖,該圖顯示了引擎提供的所有功能組件.

        本系統(tǒng)要實(shí)現(xiàn)流程的控制,主要是使用了RuntimeService和TaskService. 每當(dāng)一個(gè)流程定義被啟動(dòng)一次之后,都會(huì)生成一個(gè)相應(yīng)的流程對象實(shí)例.RuntimeService提供了啟動(dòng)流程、查詢流程實(shí)例、設(shè)置獲取流程實(shí)例變量等功能. 此外它還提供了對流程部署,流程定義和流程實(shí)例的存取服務(wù).

        在Activiti中業(yè)務(wù)流程定義中的每一個(gè)執(zhí)行節(jié)點(diǎn)被稱為一個(gè)Task,對流程中的數(shù)據(jù)存取,狀態(tài)變更等操作均需要在Task中完成. TaskService提供了對用戶Task相關(guān)的操作. 它提供了運(yùn)行時(shí)任務(wù)查詢、領(lǐng)取、完成、刪除以及變量設(shè)置等功能.

        圖3 Activiti引擎的系統(tǒng)服務(wù)結(jié)構(gòu)圖

        本系統(tǒng)的工作流引擎接口放在業(yè)務(wù)邏輯層來進(jìn)行處理,這樣帶來的好處是,系統(tǒng)在工作流中出現(xiàn)的異常時(shí),Spring中事務(wù)管理都可以方便的進(jìn)行回滾,從而避免因?yàn)楫惓淼腻e(cuò)誤. 下面簡單介紹下任務(wù)流程開啟和領(lǐng)取并完成個(gè)人任務(wù)代碼:

        客戶通過頁面點(diǎn)擊提交訂單按鈕,調(diào)用流程開啟代碼,啟動(dòng)一次任務(wù)流程,企業(yè)操作人員通過依次領(lǐng)取個(gè)人任務(wù),完成任務(wù),直至任務(wù)流程最終完成,客戶獲得檢測報(bào)告.

        圖4是根據(jù)系統(tǒng)業(yè)務(wù)流程設(shè)計(jì)的工作流流程圖.

        圖4 企業(yè)微生物檢測系統(tǒng)工作流流程圖

        4 結(jié)果分析

        未引入本系統(tǒng)時(shí),由于整個(gè)流程是通過紙質(zhì)方式來傳輸?shù)?人工完成一個(gè)微生物檢測項(xiàng)目流程所需時(shí)間平均為10-15天,而當(dāng)通過引入本系統(tǒng)后,作者測試了50個(gè)項(xiàng)目,每個(gè)項(xiàng)目100個(gè)樣本,完成一個(gè)項(xiàng)目流程時(shí)間縮短為1-2天.

        5 結(jié)束語

        本文設(shè)計(jì)的一種基于工作流的企業(yè)環(huán)境微生物檢測系統(tǒng),將Spring和Struts框架與工作流很好的整合為一個(gè)整體,運(yùn)用在了企業(yè)環(huán)境微生物檢測中,使得信息能夠共享,極大方便了企業(yè)客戶項(xiàng)目進(jìn)度的查詢和獲取,同時(shí)也大大的提高了企業(yè)工作效率,減少了手工帶來的誤差和不便,方便了管理,提高了經(jīng)濟(jì)效益.

        1范玉順. 工作流管理技術(shù)基礎(chǔ). 北京: 清華大學(xué)出版社,2001.

        2王幸福. 基于Spring和Struts的輕量級J2EE通用框架的研究與應(yīng)用[碩士學(xué)位論文]. 武漢: 武漢理工大學(xué),2007.

        3Eckel B. Thinking in Java. Upper Saddle River,NJ,USA:Prentice Hall,2006.

        4林琴,譚駿珊. 基于Struts框架的Web報(bào)表展示的設(shè)計(jì)與實(shí)現(xiàn). 計(jì)算機(jī)系統(tǒng)應(yīng)用,2006,15(11): 25-28. [doi: 10.3969/j.issn.1003-3254.2006.11.007]

        5易可可,陳志剛. 基于MVC模式的Web OA系統(tǒng)設(shè)計(jì)與研究. 計(jì)算機(jī)工程與應(yīng)用,2005,41(4): 112-115.

        6唐華云,郭芬,桑英碩. 工作流管理平臺(tái)的設(shè)計(jì)及其在自助服務(wù)中的應(yīng)用. 計(jì)算機(jī)系統(tǒng)應(yīng)用,2016,25(7): 89-95. [doi: 10.15888/j.cnki.csa.005316]

        7湯幸江,姚明海. 工作流系統(tǒng)在離散制造業(yè)的應(yīng)用. 計(jì)算機(jī)系統(tǒng)應(yīng)用,2010,19(8): 146-151.

        8王鵬. 一種輕量級BPM引擎功能擴(kuò)展模型的研究[碩士學(xué)位論文]. 哈爾濱: 哈爾濱工程大學(xué),2015.

        猜你喜歡
        引擎流程數(shù)據(jù)庫
        吃水果有套“清洗流程”
        違反流程 致命誤判
        藍(lán)谷: “涉藍(lán)”新引擎
        商周刊(2017年22期)2017-11-09 05:08:31
        數(shù)據(jù)庫
        本刊審稿流程
        析OGSA-DAI工作流程
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        無形的引擎
        河南電力(2015年5期)2015-06-08 06:01:46
        真人抽搐一进一出视频| 欧洲乱码伦视频免费| 蜜臀av一区二区三区精品| 亚洲一区二区三区地址| 熟女少妇精品一区二区| 欧美情侣性视频| 国产强伦姧在线观看| 国产在线视频网友自拍| 日日日日做夜夜夜夜做无码| 国产人妻久久精品二区三区| 亚洲免费一区二区三区视频| 在线观看视频国产一区二区三区| 熟女一区二区三区在线观看| 双腿张开被9个男人调教| 亚洲AV秘 无码一区二p区三区| 自拍偷拍一区二区三区四区| 国产91传媒一区二区三区| 亚洲精品无码久久久久牙蜜区 | 国产不卡视频一区二区三区 | 中文字幕久区久久中文字幕| 亚洲字幕中文综合久久| 日韩毛片免费无码无毒视频观看| 国产三级精品三级国产| 青青草最新在线视频观看| 精品欧美一区二区三区久久久| 国产精一品亚洲二区在线播放| 国产系列丝袜熟女精品视频| 亚洲国产精品av麻豆一区| 无码人妻丰满熟妇啪啪网不卡 | 在线丝袜欧美日韩制服| 一区二区三区日韩蜜桃| 久久不见久久见免费影院| 免费一级特黄欧美大片久久网 | 日本在线中文字幕一区| av剧情演绎福利对白| 亚洲午夜精品久久久久久人妖| 一区二区三区内射视频在线观看 | 日本一区二区三区高清在线视频| 精品国产午夜理论片不卡| 亚洲 无码 制服 丝袜 自拍| 日本一区二区三区综合视频|