梁金榮 (安徽工業(yè)大學計算機學院,安徽 馬鞍山243032;滁州職業(yè)技術學院基礎部,安徽 滁州239000)
方木云 (安徽工業(yè)大學計算機學院,安徽 馬鞍山243032)
王善勤,吳昌雨 (滁州職業(yè)技術學院信息工程系,安徽 滁州239000)
協(xié)同文檔管理系統(tǒng)對于工作的日常運行來說是很重要的,然而當前許多企業(yè)的文檔管理仍處在紙質的手工處理階段。先進的文檔管理信息系統(tǒng)在國外應用已相當廣泛[1],但是目前非常缺乏與國內企業(yè)需求相匹配的基于協(xié)同工作模式的文檔管理系統(tǒng)。近年來,國內外眾多學者對協(xié)同文檔管理產生了濃厚的研究興趣,在版本控制、數(shù)據(jù)一致性等方面展開了深入的研究工作[2]。協(xié)同文檔管理系統(tǒng)基于B/S的開發(fā)模式,使用Grails敏捷開發(fā)框架進行系統(tǒng)實現(xiàn),極大的提高了企業(yè)的工作效率。但是國內使用Grails框架進行Web應用開發(fā)還不是很廣泛,目前北京交通大學穆利偉對基于Grails的Web應用進行研究[3],天津大學孫志剛對基于Grails框架的銀保通管理系統(tǒng)進行研究與構建[4]等。下面,筆者研究如何利用Grails框架開發(fā)“協(xié)同文件管理系統(tǒng)”,著重解決了協(xié)同文檔管理系統(tǒng)設計與實踐相結合的問題。
系統(tǒng)以某企業(yè)員工通過網(wǎng)絡上傳下載工作任務書及相應圖紙等,大大簡化了人和人、人與物的接觸,通過協(xié)同文檔管理系統(tǒng)來實現(xiàn)部門和部門協(xié)調工作,實時監(jiān)控管理中的各個環(huán)節(jié)。數(shù)據(jù)文檔集中管理,對企業(yè)各級人員,根據(jù)不同權限設置最大程度的文檔共享,避免管理漏洞的產生。依據(jù)模塊化開發(fā)思想,該系統(tǒng)分成多個子系統(tǒng),各個子系統(tǒng)可以獨立運行,也可以實現(xiàn)數(shù)據(jù)共享;采用該結構,方便升級部分模塊。系統(tǒng)將用戶根據(jù)不同的權限劃分為幾類用戶,每類用戶只能在其級別的管理集合中操作,不能越權使用。用戶登錄時對密碼進行加密操作,保障了系統(tǒng)數(shù)據(jù)庫的安全性和易用性。結合協(xié)同文檔管理系統(tǒng)特點,選擇Tomcat 6.0作為該系統(tǒng)的 WEB服務器,后臺數(shù)據(jù)庫使用MySQL Server 5.0。該系統(tǒng)可以在任何安裝IE、Mozilla Firefox等瀏覽器的設備上使用。
用戶與用戶間不存在彼此隸屬關系,它只能屬于某個角色,角色可以隸屬其他角色且可以為多重隸屬關系。系統(tǒng)以某企業(yè)需求為背景,設計系統(tǒng)的角色。
1)企業(yè)管理者,對項目文件進行監(jiān)管、審核、查詢、了解統(tǒng)計數(shù)據(jù)等。
2)項目經(jīng)理,負責具體項目立項、撰寫項目設計方案、實施項目驅動、項目協(xié)調等。
3)設計工程師,負責設計項目圖紙并編寫相應技術文檔等。
4)采購管理員,負責外購件采購,對采購數(shù)據(jù)文件進行管理等。
5)裝配工程師,根據(jù)圖紙負責將項目零件組裝為項目成品,并修改文件狀態(tài)等。
6)產品最終客戶,了解當前項目進度、查詢既往項目、提供項目建議等。
7)系統(tǒng)管理員,設置、管理系統(tǒng),即執(zhí)行添加用戶賬戶等基礎功能并進行定期備份等系統(tǒng)維護工作。
通過對某企業(yè)所涉及的文檔管理流程的分析、調研、跟班作業(yè),又與企業(yè)各部門代表進行深入交流、討論,分析協(xié)同文檔管理系統(tǒng)的功能需求。
1)項目文檔管理包括立項文檔管理、審批文檔管理、結項文檔管理。立項文檔管理,通過選型基本明確項目框架及范圍,在選型基礎上由項目經(jīng)理負責立項,并上傳與項目相關文件;審批文檔管理,審批通過則標志一個項目正式納入工作流程;結項文檔管理,通過內部驗收及客戶端驗收后,由項目經(jīng)理撰寫結項報告并伴隨售后的進行,可以不斷的添加售后服務報告。
2)設計文檔管理包括設計方案管理、設計圖紙管理、裝配圖紙管理。設計方案管理是指由項目經(jīng)理指定設計工程師設計項目立項方案,上傳立項方案,并可進行相應版本、完成狀態(tài)等修改操作;設計圖紙管理是指設計工程師接收到任務后應在指定時間內上傳項目設計圖紙及相關文檔,進行相應文檔操作;裝配圖紙管理是指設計工程師在指定時間內上傳項目裝配圖紙及相關文檔,進行相應文檔操作。
3)生產文檔管理包括任務書管理、檢驗報告管理、質量報告管理。任務書管理是指生產車間根據(jù)生產任務書,按照設計圖紙進行生產,根據(jù)完成情況修改任務書相應狀態(tài)等,對相應文檔進行操作;檢驗報告管理是指檢驗部門根據(jù)產品檢驗情況,編寫體驗報告,對其進行相應操作;質量報告管理是指根據(jù)產品檢驗情況,編寫產品質量報告,對其進行相應操作。
4)文檔類別管理包括文檔查詢、文檔類型設置。文檔查詢是指對系統(tǒng)中已有各類資源實現(xiàn)智能查詢,根據(jù)輸入的查詢關鍵字查找項目、設計圖、小結等各類相關資源,為使用者提供幫助;文檔類型設置是指對各類項目進行有效分類,添加文檔類別、修改等操作。
5)文檔庫對不同類型進行歸類管理,方便查詢操作,分類類別根據(jù)手動添加自動更新顯示。
6)管理員管理包括添加管理員、用戶管理、發(fā)文統(tǒng)計。添加管理員由系統(tǒng)管理員添加系統(tǒng)用戶,分配登錄賬戶及密碼,用戶選擇角色并繼承角色權限等;用戶管理是指超級管理員具有添加系統(tǒng)用戶功能,可以設置用戶的角色等操作;發(fā)文統(tǒng)計是指超級管理員具有對上傳文檔進行統(tǒng)計的權限,方便企業(yè)決策層對各部門工作進行監(jiān)控、統(tǒng)計分析等操作。
7)系統(tǒng)設置包括更改密碼、修改系統(tǒng)參數(shù)。更改密碼,修改當前登錄系統(tǒng)用戶的密碼;修改系統(tǒng)參數(shù),設置使用該系統(tǒng)進行文檔協(xié)同工作的企業(yè)相關信息等。
圖1 用例圖
參與者是協(xié)同文檔管理系統(tǒng)的具體用例的驅動者,經(jīng)分析研究,確定該系統(tǒng)的參與者由普通用戶、普通管理員、超級管理員組成,參與者隸屬于相關角色。用例圖如圖1所示。
普通用戶主要涉及到相關查詢功能,主要是公司各部門一線工人需要上網(wǎng)查看相應圖紙文檔等,從而開展相應工作,利用網(wǎng)絡隨時隨地進行學習。普通管理員具備項目文檔、設計文檔、生產文檔、文檔查詢、文檔類別設置、密碼修改等操作。超級管理員除具備普通管理員功能權限外,還具備發(fā)文統(tǒng)計、添加管理員、用戶管理等操作。
根據(jù)前面所述功能需求的分析,協(xié)同文檔管理系統(tǒng)劃分具體模塊的功能結構圖如圖2所示。
圖2 系統(tǒng)功能模塊結構圖
協(xié)同文檔管理系統(tǒng)設計中數(shù)據(jù)庫設計有著重大意義,數(shù)據(jù)庫系統(tǒng)結構的設計直接影響系統(tǒng)的實現(xiàn)和運行效率[5]。由此,通過對協(xié)同文檔管理系統(tǒng)的分析、研究,設計出系統(tǒng)數(shù)據(jù)庫的實體-關系圖,如圖3所示。
經(jīng)過對協(xié)同文檔管理系統(tǒng)的數(shù)據(jù)庫系統(tǒng)分析和邏輯設計后,數(shù)據(jù)庫的結構已經(jīng)比較清晰。在數(shù)據(jù)庫管理工具中創(chuàng)建一個數(shù)據(jù)庫,將其命名為“collaboration”,再向該數(shù)據(jù)庫中添加6個表:converts, document, document_class,enclosure,sys_log,users,添加相應視圖、存儲過程等。
圖3 系統(tǒng)數(shù)據(jù)庫的E-R圖
1)域模型類層。在面向對象的Web應用程序開發(fā)中,經(jīng)常會用到對象關系映射(ORM)來將對象映射到關系數(shù)據(jù)庫中。Hibernate對象關系映射框架在眾多的ORM產品中是比較成功且應用比較廣泛的。Grails使用了Hibernate作為底層,從而使Grails支持對象關系映射,在Grails中這一特性被稱之為GORM。Grails工程的域模型類都放在grails-app/domain目錄下。域模型類會遵照“約定”實現(xiàn)與數(shù)據(jù)庫中的表間的關聯(lián)。具體約定如下:將類名中的各個單詞的第一個字母變?yōu)樾懀⒃趩卧~之間用下劃線“-”連接,就生成與之相匹配的表名;屬性與表中的列是一一對應的,屬性名和列名間的轉換與類名和表名間的轉換相同;域模型類會默認自動添加id屬性且會在表中生成出來;域模型類也會默認創(chuàng)建一個版本(version)屬性,在數(shù)據(jù)庫中會自動添加相匹配的字段。
系統(tǒng)中比較重要的域模型類有Converts、Document、DocumentClass、Enclosure、SysLog、Users。該類對應數(shù)據(jù)庫中的用戶表document,該類中共定義了8個屬性,分別對應表中的8個字段,并通過Grails的約束生成器(Constraints)對相應字段設定約束條件。
2)控制器類層??刂破髯鳛橐粋€主動者在Grails MVC中處于核心地位,負責接收來自客戶端請求并依據(jù)請求進行業(yè)務邏輯處理。Grails會為每個請求創(chuàng)建一個新的控制器實例。常用幾種處理請求的方式如下[6]:委托給一個匹配的視圖;操作域模型,將它在視圖上顯示;直接寫入Response的writer對象中;重定向到另一個操作(Action)或另一個控制器中的操作。Grails中的控制器類位于grails-app/controllers目錄中,類名都是以Controller結尾。
系統(tǒng)中比較關鍵的控制器有DocumentController、DocumentClassController、EnclosureController、LoginContoller、UploadController、UsersController。
3)視圖類層。Grails提供了一種新的視圖技術,即GSP,與JSP一樣有很多直接可以使用的對象。在GSP頁面中可以方便地編寫Groovy代碼。GSP頁面文件都是存放在Grails中的grails-app/view目錄中,每個控制器都在view目錄中對應一個與控制器名相同的文件夾,每個文件夾下會產生該控制器有關的gsp頁面。每個gsp頁面常常對應著控制器類中的一個方法。
系統(tǒng)的grails-app/view目錄中,默認情況下可以生成6個文件夾,每個文件夾對應一個控制器類,每個文件夾下的一個gsp文件對應控制器類中的一個方法??梢愿鶕?jù)自身需要進行靈活修改。Grails在view目錄下自動創(chuàng)建“l(fā)ayout”文件夾,該文件夾為系統(tǒng)默認布局器,其中會自動生成“main.gsp”文件作為默認布局文件,如果使用默認布局,只需在gsp文件head節(jié)點中加入:<meta name=“l(fā)ayout”content=“main”/>即可。開發(fā)人員也可根據(jù)需要自定義新的布局。定義“admin.gsp”文件作為布局文件,按以上修改相應代碼,使用自定義的布局文件。
用戶管理與文檔管理是整個系統(tǒng)的基礎,要實現(xiàn)生產流程管理,必須以文檔為載體。下面重點介紹系統(tǒng)的用戶管理、文檔管理、文檔查詢功能實現(xiàn)效果等。由于篇幅有限,其他功能在這里就不再贅述。
1)用戶管理分為用戶登錄、添加用戶、修改用戶、查詢用戶、發(fā)文統(tǒng)計等基本操作。當用戶登錄成功后進入系統(tǒng)主界面,效果如圖4所示。
2)文檔管理包括文檔類別設置、發(fā)布文檔、文檔查詢等主要功能。當所有的文檔上傳完畢后點擊“保存”按鈕完成文檔的發(fā)布,頁面跳轉的文檔查看頁,用于查看剛才發(fā)布完成的文檔,上傳的附件服務器也會自己將其轉換成swf文件,文檔查看頁面如圖5所示。
圖4 系統(tǒng)主界面效果圖
隨著理論研究和信息技術的不斷深入和發(fā)展,協(xié)同文檔管理系統(tǒng)將在社會的各個領域獲得廣泛的應用。筆者研究了協(xié)同文檔管理系統(tǒng)的關鍵技術,分析了企業(yè)協(xié)同文檔管理工作,建立了協(xié)同文檔管理系統(tǒng)的模型;在分析了Grails框架的基礎上,針對B/S結構模式的優(yōu)越性,完成了系統(tǒng)的設計、實現(xiàn)、測試。實踐證明該系統(tǒng)能夠為企業(yè)提供網(wǎng)絡環(huán)境下的文檔管理協(xié)同工作環(huán)境,使各種文檔信息得以充分利用,有效地提高了工作效率。但今后仍需繼續(xù)關注先進開發(fā)技術并將其應用到協(xié)同文檔管理系統(tǒng)中,為企業(yè)提供更加智能、高效的協(xié)同文檔管理系統(tǒng)。同時也為運用Grails框架開發(fā)Web應用系統(tǒng)提供一定參考。
圖5 文檔查看頁面
[1] 趙劍穎 .一個CSCW系統(tǒng)應用的研究-報紙的實時協(xié)同編輯系統(tǒng) [J].計算機工程與應用,2000(11):148-150.
[2] 汪黎祥 .基于ASP的分布式協(xié)同文檔管理系統(tǒng)的研究 [D].杭州:浙江大學,2005.
[3] 穆利偉 .基于Grails的Web應用進行研究 [D].北京:北京交通大學,2010.
[4] 孫志剛 .基于Grails框架的銀保通管理系統(tǒng)進行研究與構建 [D].天津:天津大學,2010.
[5] 王鋒,閻艷,趙博 .基于Struts的KBE系統(tǒng)設計與開發(fā) [J].兵工學報,2008,29(6):735-737.
[6] (美)Thomas D,Hansson D H.Web開發(fā)敏捷之道一應用Rails進行敏捷開發(fā) [M].第2版 .林芷薰譯 .北京:電子工業(yè)出版社,2007:223-241.