• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2018-04-21 01:37:26張云華
      計算機系統(tǒng)應用 2018年3期
      關(guān)鍵詞:引擎流程數(shù)據(jù)庫

      張 健, 張云華

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

      1 引言

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

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

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

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

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

      2.1 業(yè)務背景和目標

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

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

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

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

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

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

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

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

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

      2) 如何解決實驗步驟的控制和動態(tài)修改;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      3.3 系統(tǒng)設計

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

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

      3.3.1 后臺業(yè)務設計

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

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

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

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

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

      3.3.2 Activiti工作流引擎接口的設計

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

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

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

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

      本系統(tǒng)的工作流引擎接口放在業(yè)務邏輯層來進行處理,這樣帶來的好處是,系統(tǒng)在工作流中出現(xiàn)的異常時,Spring中事務管理都可以方便的進行回滾,從而避免因為異常帶來的錯誤. 下面簡單介紹下任務流程開啟和領取并完成個人任務代碼:

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

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

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

      4 結(jié)果分析

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

      5 結(jié)束語

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

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

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

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

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

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

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

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

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

      猜你喜歡
      引擎流程數(shù)據(jù)庫
      吃水果有套“清洗流程”
      違反流程 致命誤判
      勞動保護(2018年5期)2018-06-05 02:12:10
      藍谷: “涉藍”新引擎
      商周刊(2017年22期)2017-11-09 05:08:31
      數(shù)據(jù)庫
      財經(jīng)(2017年2期)2017-03-10 14:35:35
      本刊審稿流程
      析OGSA-DAI工作流程
      數(shù)據(jù)庫
      財經(jīng)(2016年15期)2016-06-03 07:38:02
      數(shù)據(jù)庫
      財經(jīng)(2016年3期)2016-03-07 07:44:46
      數(shù)據(jù)庫
      財經(jīng)(2016年6期)2016-02-24 07:41:51
      無形的引擎
      河南電力(2015年5期)2015-06-08 06:01:46
      太仓市| 陇南市| 杭锦旗| 疏附县| 水城县| 浦江县| 保康县| 遵义市| 长寿区| 囊谦县| 青岛市| 临洮县| 收藏| 南漳县| 若羌县| 萍乡市| 林州市| 泾川县| 常熟市| 莆田市| 老河口市| 冀州市| 龙游县| 建阳市| 新竹市| 丹凤县| 大同市| 武夷山市| 巴林右旗| 霸州市| 美姑县| 罗江县| 麟游县| 和硕县| 富裕县| 长白| 黎川县| 嘉祥县| 临泽县| 兴海县| 桐庐县|