梁金榮 (安徽工業大學計算機學院,安徽 馬鞍山243032;滁州職業技術學院基礎部,安徽 滁州239000)
方木云 (安徽工業大學計算機學院,安徽 馬鞍山243032)
王善勤,吳昌雨 (滁州職業技術學院信息工程系,安徽 滁州239000)
協同文檔管理系統對于工作的日常運行來說是很重要的,然而當前許多企業的文檔管理仍處在紙質的手工處理階段。先進的文檔管理信息系統在國外應用已相當廣泛[1],但是目前非常缺乏與國內企業需求相匹配的基于協同工作模式的文檔管理系統。近年來,國內外眾多學者對協同文檔管理產生了濃厚的研究興趣,在版本控制、數據一致性等方面展開了深入的研究工作[2]。協同文檔管理系統基于B/S的開發模式,使用Grails敏捷開發框架進行系統實現,極大的提高了企業的工作效率。但是國內使用Grails框架進行Web應用開發還不是很廣泛,目前北京交通大學穆利偉對基于Grails的Web應用進行研究[3],天津大學孫志剛對基于Grails框架的銀保通管理系統進行研究與構建[4]等。下面,筆者研究如何利用Grails框架開發“協同文件管理系統”,著重解決了協同文檔管理系統設計與實踐相結合的問題。
系統以某企業員工通過網絡上傳下載工作任務書及相應圖紙等,大大簡化了人和人、人與物的接觸,通過協同文檔管理系統來實現部門和部門協調工作,實時監控管理中的各個環節。數據文檔集中管理,對企業各級人員,根據不同權限設置最大程度的文檔共享,避免管理漏洞的產生。依據模塊化開發思想,該系統分成多個子系統,各個子系統可以獨立運行,也可以實現數據共享;采用該結構,方便升級部分模塊。系統將用戶根據不同的權限劃分為幾類用戶,每類用戶只能在其級別的管理集合中操作,不能越權使用。用戶登錄時對密碼進行加密操作,保障了系統數據庫的安全性和易用性。結合協同文檔管理系統特點,選擇Tomcat 6.0作為該系統的 WEB服務器,后臺數據庫使用MySQL Server 5.0。該系統可以在任何安裝IE、Mozilla Firefox等瀏覽器的設備上使用。
用戶與用戶間不存在彼此隸屬關系,它只能屬于某個角色,角色可以隸屬其他角色且可以為多重隸屬關系。系統以某企業需求為背景,設計系統的角色。
1)企業管理者,對項目文件進行監管、審核、查詢、了解統計數據等。
2)項目經理,負責具體項目立項、撰寫項目設計方案、實施項目驅動、項目協調等。
3)設計工程師,負責設計項目圖紙并編寫相應技術文檔等。
4)采購管理員,負責外購件采購,對采購數據文件進行管理等。
5)裝配工程師,根據圖紙負責將項目零件組裝為項目成品,并修改文件狀態等。
6)產品最終客戶,了解當前項目進度、查詢既往項目、提供項目建議等。
7)系統管理員,設置、管理系統,即執行添加用戶賬戶等基礎功能并進行定期備份等系統維護工作。
通過對某企業所涉及的文檔管理流程的分析、調研、跟班作業,又與企業各部門代表進行深入交流、討論,分析協同文檔管理系統的功能需求。
1)項目文檔管理包括立項文檔管理、審批文檔管理、結項文檔管理。立項文檔管理,通過選型基本明確項目框架及范圍,在選型基礎上由項目經理負責立項,并上傳與項目相關文件;審批文檔管理,審批通過則標志一個項目正式納入工作流程;結項文檔管理,通過內部驗收及客戶端驗收后,由項目經理撰寫結項報告并伴隨售后的進行,可以不斷的添加售后服務報告。
2)設計文檔管理包括設計方案管理、設計圖紙管理、裝配圖紙管理。設計方案管理是指由項目經理指定設計工程師設計項目立項方案,上傳立項方案,并可進行相應版本、完成狀態等修改操作;設計圖紙管理是指設計工程師接收到任務后應在指定時間內上傳項目設計圖紙及相關文檔,進行相應文檔操作;裝配圖紙管理是指設計工程師在指定時間內上傳項目裝配圖紙及相關文檔,進行相應文檔操作。
3)生產文檔管理包括任務書管理、檢驗報告管理、質量報告管理。任務書管理是指生產車間根據生產任務書,按照設計圖紙進行生產,根據完成情況修改任務書相應狀態等,對相應文檔進行操作;檢驗報告管理是指檢驗部門根據產品檢驗情況,編寫體驗報告,對其進行相應操作;質量報告管理是指根據產品檢驗情況,編寫產品質量報告,對其進行相應操作。
4)文檔類別管理包括文檔查詢、文檔類型設置。文檔查詢是指對系統中已有各類資源實現智能查詢,根據輸入的查詢關鍵字查找項目、設計圖、小結等各類相關資源,為使用者提供幫助;文檔類型設置是指對各類項目進行有效分類,添加文檔類別、修改等操作。
5)文檔庫對不同類型進行歸類管理,方便查詢操作,分類類別根據手動添加自動更新顯示。
6)管理員管理包括添加管理員、用戶管理、發文統計。添加管理員由系統管理員添加系統用戶,分配登錄賬戶及密碼,用戶選擇角色并繼承角色權限等;用戶管理是指超級管理員具有添加系統用戶功能,可以設置用戶的角色等操作;發文統計是指超級管理員具有對上傳文檔進行統計的權限,方便企業決策層對各部門工作進行監控、統計分析等操作。
7)系統設置包括更改密碼、修改系統參數。更改密碼,修改當前登錄系統用戶的密碼;修改系統參數,設置使用該系統進行文檔協同工作的企業相關信息等。

圖1 用例圖
參與者是協同文檔管理系統的具體用例的驅動者,經分析研究,確定該系統的參與者由普通用戶、普通管理員、超級管理員組成,參與者隸屬于相關角色。用例圖如圖1所示。
普通用戶主要涉及到相關查詢功能,主要是公司各部門一線工人需要上網查看相應圖紙文檔等,從而開展相應工作,利用網絡隨時隨地進行學習。普通管理員具備項目文檔、設計文檔、生產文檔、文檔查詢、文檔類別設置、密碼修改等操作。超級管理員除具備普通管理員功能權限外,還具備發文統計、添加管理員、用戶管理等操作。
根據前面所述功能需求的分析,協同文檔管理系統劃分具體模塊的功能結構圖如圖2所示。

圖2 系統功能模塊結構圖
協同文檔管理系統設計中數據庫設計有著重大意義,數據庫系統結構的設計直接影響系統的實現和運行效率[5]。由此,通過對協同文檔管理系統的分析、研究,設計出系統數據庫的實體-關系圖,如圖3所示。
經過對協同文檔管理系統的數據庫系統分析和邏輯設計后,數據庫的結構已經比較清晰。在數據庫管理工具中創建一個數據庫,將其命名為“collaboration”,再向該數據庫中添加6個表:converts, document, document_class,enclosure,sys_log,users,添加相應視圖、存儲過程等。

圖3 系統數據庫的E-R圖
1)域模型類層。在面向對象的Web應用程序開發中,經常會用到對象關系映射(ORM)來將對象映射到關系數據庫中。Hibernate對象關系映射框架在眾多的ORM產品中是比較成功且應用比較廣泛的。Grails使用了Hibernate作為底層,從而使Grails支持對象關系映射,在Grails中這一特性被稱之為GORM。Grails工程的域模型類都放在grails-app/domain目錄下。域模型類會遵照“約定”實現與數據庫中的表間的關聯。具體約定如下:將類名中的各個單詞的第一個字母變為小寫,并在單詞之間用下劃線“-”連接,就生成與之相匹配的表名;屬性與表中的列是一一對應的,屬性名和列名間的轉換與類名和表名間的轉換相同;域模型類會默認自動添加id屬性且會在表中生成出來;域模型類也會默認創建一個版本(version)屬性,在數據庫中會自動添加相匹配的字段。
系統中比較重要的域模型類有Converts、Document、DocumentClass、Enclosure、SysLog、Users。該類對應數據庫中的用戶表document,該類中共定義了8個屬性,分別對應表中的8個字段,并通過Grails的約束生成器(Constraints)對相應字段設定約束條件。
2)控制器類層??刂破髯鳛橐粋€主動者在Grails MVC中處于核心地位,負責接收來自客戶端請求并依據請求進行業務邏輯處理。Grails會為每個請求創建一個新的控制器實例。常用幾種處理請求的方式如下[6]:委托給一個匹配的視圖;操作域模型,將它在視圖上顯示;直接寫入Response的writer對象中;重定向到另一個操作(Action)或另一個控制器中的操作。Grails中的控制器類位于grails-app/controllers目錄中,類名都是以Controller結尾。
系統中比較關鍵的控制器有DocumentController、DocumentClassController、EnclosureController、LoginContoller、UploadController、UsersController。
3)視圖類層。Grails提供了一種新的視圖技術,即GSP,與JSP一樣有很多直接可以使用的對象。在GSP頁面中可以方便地編寫Groovy代碼。GSP頁面文件都是存放在Grails中的grails-app/view目錄中,每個控制器都在view目錄中對應一個與控制器名相同的文件夾,每個文件夾下會產生該控制器有關的gsp頁面。每個gsp頁面常常對應著控制器類中的一個方法。
系統的grails-app/view目錄中,默認情況下可以生成6個文件夾,每個文件夾對應一個控制器類,每個文件夾下的一個gsp文件對應控制器類中的一個方法??梢愿鶕陨硇枰M行靈活修改。Grails在view目錄下自動創建“layout”文件夾,該文件夾為系統默認布局器,其中會自動生成“main.gsp”文件作為默認布局文件,如果使用默認布局,只需在gsp文件head節點中加入:<meta name=“layout”content=“main”/>即可。開發人員也可根據需要自定義新的布局。定義“admin.gsp”文件作為布局文件,按以上修改相應代碼,使用自定義的布局文件。
用戶管理與文檔管理是整個系統的基礎,要實現生產流程管理,必須以文檔為載體。下面重點介紹系統的用戶管理、文檔管理、文檔查詢功能實現效果等。由于篇幅有限,其他功能在這里就不再贅述。
1)用戶管理分為用戶登錄、添加用戶、修改用戶、查詢用戶、發文統計等基本操作。當用戶登錄成功后進入系統主界面,效果如圖4所示。
2)文檔管理包括文檔類別設置、發布文檔、文檔查詢等主要功能。當所有的文檔上傳完畢后點擊“保存”按鈕完成文檔的發布,頁面跳轉的文檔查看頁,用于查看剛才發布完成的文檔,上傳的附件服務器也會自己將其轉換成swf文件,文檔查看頁面如圖5所示。

圖4 系統主界面效果圖
隨著理論研究和信息技術的不斷深入和發展,協同文檔管理系統將在社會的各個領域獲得廣泛的應用。筆者研究了協同文檔管理系統的關鍵技術,分析了企業協同文檔管理工作,建立了協同文檔管理系統的模型;在分析了Grails框架的基礎上,針對B/S結構模式的優越性,完成了系統的設計、實現、測試。實踐證明該系統能夠為企業提供網絡環境下的文檔管理協同工作環境,使各種文檔信息得以充分利用,有效地提高了工作效率。但今后仍需繼續關注先進開發技術并將其應用到協同文檔管理系統中,為企業提供更加智能、高效的協同文檔管理系統。同時也為運用Grails框架開發Web應用系統提供一定參考。

圖5 文檔查看頁面
[1] 趙劍穎 .一個CSCW系統應用的研究-報紙的實時協同編輯系統 [J].計算機工程與應用,2000(11):148-150.
[2] 汪黎祥 .基于ASP的分布式協同文檔管理系統的研究 [D].杭州:浙江大學,2005.
[3] 穆利偉 .基于Grails的Web應用進行研究 [D].北京:北京交通大學,2010.
[4] 孫志剛 .基于Grails框架的銀保通管理系統進行研究與構建 [D].天津:天津大學,2010.
[5] 王鋒,閻艷,趙博 .基于Struts的KBE系統設計與開發 [J].兵工學報,2008,29(6):735-737.
[6] (美)Thomas D,Hansson D H.Web開發敏捷之道一應用Rails進行敏捷開發 [M].第2版 .林芷薰譯 .北京:電子工業出版社,2007:223-241.