王繼水,余宏
目前,巖土工程勘察企業(yè)的計算機應(yīng)用技術(shù)已經(jīng)日益成熟和普及,企業(yè)的工作效率得到了大幅度的提高。巖土工程勘察企業(yè)信息管理系統(tǒng)針對行業(yè)計算機應(yīng)用發(fā)展需求,以工程項目為主線,集成計劃經(jīng)營管理、設(shè)計流程管理、圖文檔管理、質(zhì)量管理以及統(tǒng)計年報等信息管理功能,采用 J2EE架構(gòu),是一個多層體系B/S和C/S相結(jié)合的應(yīng)用系統(tǒng),為企業(yè)信息化建設(shè)提供了良好的工作平臺。
系統(tǒng)能夠幫助企業(yè)實現(xiàn)對企業(yè)內(nèi)部人員基本情況進行全面的跟蹤與管理;對企業(yè)承接的項目、生產(chǎn)計劃、客戶資源和人力資源進行整體的控制和管理;對設(shè)計過程中各個階段的執(zhí)行人員、時間和資源進行合理配置,并為各個階段、專業(yè)圖文檔設(shè)定嚴謹?shù)膶徍顺绦?;實時生成滿足上級主管部門進行行業(yè)管理所需數(shù)據(jù),真實反映企業(yè)的客觀狀況;能對日常的各種圖文資料進行全面管理,實現(xiàn)信息的管理與共享;能夠提供多種科學(xué)、方便的及時查詢和管理手段。
系統(tǒng)采用模塊化設(shè)計方式,集成計劃經(jīng)營管理、設(shè)計流程管理、圖文檔管理、質(zhì)量管理以及統(tǒng)計年報、企業(yè)年檢、資質(zhì)上報管理等功能。
(1)企業(yè)基本信息模塊:該模塊包括基本情況、機構(gòu)設(shè)置、人員管理、技術(shù)裝備、證書情況、獲獎情況、技術(shù)成果等,主要反映企業(yè)的綜合狀況。
(2)計劃經(jīng)營模塊:將合同建立與執(zhí)行情況相聯(lián)系,結(jié)合企業(yè)內(nèi)部人員的當前工作分配和人員特點,按不同的專業(yè)和類別進行合同項目的初步分解。
(3)設(shè)計流程模塊:幫助企業(yè)實現(xiàn)對承接的項目進行整體的控制和管理,并為各個階段、專業(yè)、圖文檔設(shè)定嚴謹?shù)膶徍顺绦?,對施工過程中的設(shè)計變更、重大隱蔽工程以及竣工資料進行嚴格的審核和管理。
(4)資料與成果模塊:對企業(yè)內(nèi)部的資料、技術(shù)、法規(guī)、成果等文件進行電子化文檔管理。企業(yè)可以根據(jù)實際工作情況,實現(xiàn)文件的分類存檔,并可以根據(jù)用戶需要設(shè)置不同權(quán)限操作。
(5)查詢與統(tǒng)計模塊:實現(xiàn)企業(yè)內(nèi)部信息的即時查找和審閱,方便對人員、合同、項目等信息進行查看,以便隨時了解企業(yè)相關(guān)信息,此模塊具有人員查詢、項目查詢、合同查詢和統(tǒng)計等功能。
(6)收發(fā)文模塊:主要面向用戶數(shù)據(jù)的接收和發(fā)送管理,通過數(shù)據(jù)中心的配置,用戶可以通過遠程 FTP或磁盤介質(zhì)進行數(shù)據(jù)的接收和發(fā)送,并可運用遠程信箱和本地信箱來管理接收和發(fā)送的數(shù)據(jù)文件,最終實現(xiàn)數(shù)據(jù)文件的傳輸。
(7)系統(tǒng)維護模塊:該模塊主要包括系統(tǒng)數(shù)據(jù)維護、系統(tǒng)權(quán)限管理、工作崗位及審批方式、圖文檔服務(wù)配置、數(shù)據(jù)備份與恢復(fù)、系統(tǒng)日志查閱等子模塊。
另外,系統(tǒng)還提供強大的外掛平臺功能,可以直接調(diào)用財務(wù)管理、人事管理等信息系統(tǒng),可以有效減少數(shù)據(jù)孤島和數(shù)據(jù)冗余。
構(gòu)建勘察企業(yè)的客/用戶數(shù)據(jù)庫,通過收集日常工程實踐的資料,進行數(shù)據(jù)庫結(jié)構(gòu)設(shè)計,組織成符合于數(shù)據(jù)庫管理系統(tǒng)模式所要求的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)庫系統(tǒng)代碼制定的原則是:有國標碼的采用國標碼;有部級代碼的采用部級;沒有統(tǒng)一代碼的,用戶可以自行設(shè)定。
如圖1所示,數(shù)據(jù)庫采用3層結(jié)構(gòu)。客戶端瀏覽器不直接訪問位于服務(wù)器上的后臺數(shù)據(jù)庫,而是通過位于中間層的Web服務(wù)器和支持Web的應(yīng)用服務(wù)器訪問數(shù)據(jù)庫。中間層程序使用Servlet、JSP、JavaBean來實現(xiàn),中間層通過JDBC訪問數(shù)據(jù)庫。在B/S3層體系結(jié)構(gòu)下,表示層、功能層、數(shù)據(jù)層被分成3個相對獨立的單元,使客戶機無法直接對數(shù)據(jù)庫進行操縱,提高了系統(tǒng)的安全性。
圖1 數(shù)據(jù)庫應(yīng)用的三層結(jié)構(gòu)
系統(tǒng)選擇應(yīng)用廣泛、維護簡單、開發(fā)容易的 AutoCAD和SQL Server分別處理圖形和數(shù)據(jù),由Java Servlet將兩者集為一體,使系統(tǒng)的界面及操作完整、流暢和統(tǒng)一。系統(tǒng)設(shè)計主要分為數(shù)據(jù)層、業(yè)務(wù)層和表示層3個部分,基于J2EE技術(shù),WEB層采用Struts2實現(xiàn),完全符合MVC模式;顯示層采用Freemarker模板實現(xiàn),利用Spring的IOC容器來完成對象的依賴注入,達到的顯示與邏輯完全分開的效果;數(shù)據(jù)層采用HIBERNATE作為ORM平臺,使業(yè)務(wù)層以面向?qū)ο蟮姆椒▉砗蛿?shù)據(jù)庫進行交互。各軟件平臺之間的關(guān)系如圖2所示[1]:
圖2 軟件平臺
為更好地進行登錄控制,本系統(tǒng)采用 Struts2的攔截器機制,攔截所有用戶的請求,檢查用戶的 Session,據(jù)此判斷用戶的 id和用戶的身份,并判別用戶可以使用的權(quán)限。攔截器的代碼片段如下:
當用戶沒有登錄的時候,攔截器將返回login字符串,自動會返回到登錄頁面,也就是login.jsp。
攔截器要能夠起作用,必須要部署在 Struts2的配置文件中。由于登錄驗證Action也是一個Action,在配置的時候需要注意對于登錄驗證Action,攔截器不需要攔截,否則會導(dǎo)致永遠不能登錄。另外,還可以將攔截器放入默認攔截器棧,使其對所有除loginAction外所有的Action起作用??梢钥闯?,使用攔截器簡化了登錄控制的編碼,并提供了很好的代碼復(fù)用。
主要是用于處理CAD以及office文檔,將各類文檔分類,和數(shù)據(jù)庫結(jié)合起來,把CAD的圖形和office的圖形的文件名、文檔描述,文檔類型等字段放入數(shù)據(jù)庫中,只有有權(quán)限的用戶可以查詢、下載、上傳覆蓋相應(yīng)的文檔。因為Web處理本地二進制文件的功能教差,這里是采用了下載后用專門軟件(如AutoCAD,office等)進行處理,再上傳覆蓋的形式。
其部分實現(xiàn)代碼如下:
將圖片文件存入數(shù)據(jù)庫的函數(shù)insert Image () 的實現(xiàn)方法:
查詢是根據(jù)數(shù)據(jù)庫表中各字段,有用戶給出查詢條件生成結(jié)果,統(tǒng)計是將數(shù)據(jù)庫中所有數(shù)據(jù)進行按一定的邏輯進行計算生成結(jié)果,設(shè)計中根據(jù)用戶選擇,自動生成 SQL,由JDBC查詢統(tǒng)計得出結(jié)果,可以HTML或PDF形成輸出。如圖3所示:
圖3 查詢界面
設(shè)立專門數(shù)據(jù)表,其中字段為發(fā)信用戶,發(fā)信息時間,確認時間,收信用戶。在界面上設(shè)置一個Frame,5分鐘刷新一次,通過HTML的pull技術(shù)及時得到新消息表中數(shù)據(jù)不刪除,以作將來追溯使用。界面如圖4所示:
圖4 數(shù)據(jù)通信界面
在用戶表中,設(shè)立專門權(quán)限字段,只有管理員可以變值,而用戶訪問時,是根據(jù)表中權(quán)限來決定是否有訪問功能。對于數(shù)據(jù)維護以及備份,通過調(diào)用db和os本身的功能進行。
J2EE是一種利用 Java2平臺來簡化與多級企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu),提供了一個企業(yè)級的計算模型和運行環(huán)境用于開發(fā)和部署多層體系結(jié)構(gòu)的應(yīng)用[3]。它通過提供企業(yè)計算環(huán)境所必需的各種服務(wù),使得部署在J2EE平臺上的多層應(yīng)用可以實現(xiàn)高可用性、安全性、可擴展性和可靠性。
本系統(tǒng)對用戶劃分系統(tǒng)管理員、高級用戶、普通用戶3個等級,系統(tǒng)管理員擁有最高權(quán)限,能進行系統(tǒng)重構(gòu)、建表等操作,高級用戶擁有除了系統(tǒng)設(shè)置外的所有權(quán)限,普通用戶只擁有數(shù)據(jù)的讀取權(quán)。另外,本系統(tǒng)進行了3個層次的安全性設(shè)計,分別為:登陸服務(wù)器、登陸數(shù)據(jù)庫系統(tǒng)和系統(tǒng)身份驗證。系統(tǒng)管理員只有通過了這3個層次后,才能進入系統(tǒng)的主菜單進行操作,其它用戶進入系統(tǒng)時進行用戶權(quán)限的判別。
本系統(tǒng)是針對工程勘察設(shè)計企業(yè)信息化管理的一整套解決方案,實施中既可以一步到位,也可以采取整體規(guī)劃、分步實施的方式進行,系統(tǒng)各模塊功能均可獨立運行,實現(xiàn)其主要功能。系統(tǒng)具有統(tǒng)一的數(shù)據(jù)模型、標準的代碼體系、規(guī)范的信息處理方式和優(yōu)化的功能軟件,對于基層勘查和研究單位,它是功能齊全的工作站和信息齊備的網(wǎng)絡(luò)節(jié)點。
[1] 孫國慶,鄭先昌等.城市工程勘察信息系統(tǒng)建設(shè)的思路和方法.第二屆全國巖土工程計算機應(yīng)用研討會,2000.
[2] (美) Philip Heller等著,印仲潘等譯.Java 2高級開發(fā)指南[M] .北京:電子工業(yè)出版社,1999.