張春奎,張明芳,張溢娟
(西安市勘察測繪院,陜西西安 710054)
隨著計算機技術、通信技術、Web技術等信息化技術手段的不斷發展與創新以及信息化對傳統測繪生產管理的嚴峻挑戰,城市的測繪生產管理也開始由傳統手工的方式向計算機管理方向轉變,信息化和網絡化的管理模式應運而生。信息化和網絡化的生產管理模式能夠從根本上解決由手工方式而產生的重復性勞動,增強生產信息的流通速度、降低管理成本,提高管理效率。
售圖是我院一項重要的測繪生產任務,之所以稱之為生產任務是因為出售的不是簡單的已經出版或打印好的地圖,而是在接到用戶需求后,需要經過售圖的登記、任務的下達、藍圖的曬制、電子數據的處理以及電子數據光盤的刻錄等工作才能完成的業務,同一般的測繪生產(如工程測量)有著類似的流程。但我院在售圖業務中一直以來采用的都是手工的信息流轉方式:所有的信息通過手寫完成,同樣的信息重復手寫幾遍,信息的傳遞需要工作人員親自去傳達。同時,這種手工的方式給信息的查詢和售圖的統計帶來很大的不便,特別是對院領導來說,不能及時了解和掌握售圖業務的進展情況。
在信息化和網絡化管理模式的推動下,當前的手工管理方式已經不能適應售圖生產業務管理的需要。售圖業務流程管理系統通過計算機網絡實現了售圖業務在全院范圍內的自動流轉,擯棄了手工管理模式的弊端,使該業務的生產效率大大提高。
C/S(客戶/服務器)結構,它是基于企業內部網絡的應用系統,其最大好處在于不依賴企業外網環境,同時響應速度快、有較強的事務處理能力。但客戶端需要安裝專用的客戶端軟件。首先涉及安裝的工作量,其次任何一臺電腦出問題,如病毒、硬件損壞,都需要進行安裝或維護。另外,系統軟件升級時,每一臺客戶機需要重新安裝,其維護和升級成本非常高。
B/S(瀏覽器/服務器)結構。它是隨著Internet技術的興起,對 C/S結構的一種變化或者改進的結構。在這種結構下,用戶工作界面是通過WWW瀏覽器來實現,極少部分事務邏輯在前端(Browser)實現,主要事務邏輯在服務器端(Server)實現,形成所謂3層3-tier結構。這樣就大大降低了客戶端電腦載荷,減輕了系統維護與升級工作量,降低了用戶的總體成本。它能有效地保護數據平臺和管理訪問權限,服務器數據庫也很安全。特別是在Java這樣的跨平臺語言出現之后,B/S架構管理軟件更是方便、速度快、效果優。
Tomcat是Apache軟件基金會(Apache Software Foundation)的Jakarta項目中的一個核心項目,因其技術先進、性能穩定,而且免費,因而深受Java愛好者的喜愛并得到了部分軟件開發商的認可,成為目前比較流行的Web應用服務器。作為一個小型的輕量級應用服務器,在中小型系統和并發訪問用戶不是很多的場合下被普遍使用,是開發和調試 JSP程序的首選。
為了降低以后系統的維護成本,增強系統的安全性和可擴展性,特別是順應技術發展的潮流,避免因技術進步而頻繁升級系統的弊端,采用B/S結構搭建本系統的框架??蛻舳擞捎脩粲嬎銠C上的WWW瀏覽器組成,服務器由Tomcat服務器、功能程序和數據庫服務器組成。其中,WWW瀏覽器實現系統操作界面的顯示,用戶通過該界面實現功能和售圖數據的操作;Tomcat服務器提供系統功能程序的運行環境,負責客戶端與功能程序之間的通訊;功能程序是利用Java、JSP、XML、Spring、SQLMap等開發語言和Java框架開發而成,用于實現售圖業務流程的各個功能,負責Tomcat與數據庫之間的通訊;數據庫服務器用于存儲售圖業務數據,實現對售圖業務數據的管理。其系統框架如圖 1所示。

圖1 系統框架
我院售圖業務范圍主要包括地形圖、管線圖和專題圖。其中,專題圖是指我院指令性任務生產的地圖(市區掛圖、旅游圖等),其業務流程描述如下:
(1)客戶到售圖接待室提出購圖要求,接待人員根據購圖要求進行地圖量算,填寫購圖結算單和售圖任務單。
(2)客戶根據購圖結算單,到財務處繳納購圖費用。
(3)接待員根據客戶的要求及繳費情況將任務下達給地圖曬制員和地圖數據采集處理員。
(4)檔案中心根據下發的任務單進行藍圖曬制。
(5)由接待員將曬好的藍圖拿到院辦蓋章。
(6)如果客戶需要數據刻盤,數據中心根據下發的數據采集任務單,從數據庫中提取并處理數據,并將處理的數據傳到檔案中心刻盤。
(7)將蓋過章的藍圖和數據光盤交于售圖接待員,由售接待員將其交給客戶,并填寫發出圖存根。
其流程圖,如圖 2所示。

圖2 售圖業務現狀流程圖
根據業務的流程現狀,將售圖業務系統的流程設置為以下幾個節點:售圖任務登記、購圖任務繳費、購圖任務的下達、藍圖的曬制、藍圖蓋章、電子數據處理采集、電子數據刻盤和資料領取 8個步驟。其中,任務下達后分兩個子流程:紙質地圖和電子數據處理,紙質地圖處理包括藍圖曬制和藍圖蓋章,電子數據處理包括電子數據采集處理和電子數據刻盤,兩子流程在資料領取節點匯合。資料領取工作完成表示售圖任務的終結,最后返回到用戶。
每個節點都有節點狀態,節點的初始狀態由上一節點的“辦結”操作由系統自動設定,其他狀態由該節點的其他操作而定。在某一節點上,當工作完成進行辦結操作后,任務信息自動流轉到下一節點。其流程如圖 3所示。

圖3 售圖業務系統流程圖
本系統從功能上分為業務管理、用戶管理和字典管理三個部分。業務管理主要實現對任務信息的采集、任務的流轉、任務的進度控制以及查詢統計功能,任務的流轉通過辦結操作決定流轉的判斷條件;用戶管理主要實現用戶的注冊和權限分配功能;字典管理主要包括對系統中字典信息的添加、修改等功能,其主要目的是最大限度地實現系統字典信息的自定義,盡量避免由于某一子典類型修改而改變程序代碼的可能。
業務管理主要包括以下功能:
(1)售圖登記:由售圖接待員根據購圖客戶的要求登記任務信息。這些信息包括客戶信息、客戶的要求信息和具體圖幅信息。同時在這里提供《購圖結算單》自動生成和打印功能。
(2)售圖繳費:工作人員根據客戶的繳費情況,登記繳費信息,并提供辦結操作。
(3)任務下達:接待員通過“下達辦結”操作將繳納過費用的售圖任務自動流轉到下一節點。這里能夠根據售圖登記時的客戶要求自動判斷下達到哪一節點。
(4)藍圖曬制:記錄藍圖曬制工作人員信息,提供售圖任務自動流轉到下一節點的“辦結”操作,同時自動改變藍圖曬制的狀態。
(5)藍圖蓋章:記錄藍圖蓋章工作人員信息,提供售圖任務自動流轉到下一節點的“辦結”操作,同時自動改變藍圖蓋章的狀態。
(6)數據采集:記錄數據采集工作人員信息,提供售圖任務自動流轉到下一節點的“辦結”操作,同時自動改變數據采集的狀態。
(7)數據刻盤:記錄數據刻盤工作人員信息,提供售圖任務自動流轉到下一節點的“辦結”操作,同時自動改變數據刻盤的狀態。
(8)資料領取:驗證領取資料的客戶信息,如果不一致則提供修改功能。通過“辦結”操作改變資料領取狀態。根據前面登記的任務信息提供《回執單》打印功能。
(9)流程跟蹤:顯示售圖任務在各個流程節點上的工作狀態。利用查詢功能,可查看某一任務的流轉情況。
(10)售圖統計:包括售圖產值統計和售圖圖幅統計。前者可根據統計條件統計出符合條件的售圖任務的產值情況;后者可統計和查詢在某種統計條件下的圖幅數量和圖幅的產值。
用戶管理主要包括用戶注冊和權限分配兩個功能。
(1)用戶注冊:注冊新的用戶,登記用戶的基本信息。
(2)權限分配:將每一個功能設置為一個權限單元。每一個權限單元劃分為三級:院級、部門級和用戶級,不同的權限級別訪問和操作該功能下的任務內容不同。院級權限的用戶可以訪問和操作該功能下的所有內容;部門級權限的用戶可以訪問和操作本部門的任務內容;用戶級的用戶只能訪問和操作本人能操作的任務內容。在本系統中,以用戶為權限分配的對象,一個用戶可以有一個或多個權限單元;用戶登錄時,系統根據分配給登錄用戶的權限單元進行顯示。
字典管理主要包括比例尺字典、地圖類型字典、部門字典、用戶角色字典、地圖價格字典等的自定義功能。
本系統主要涉及五類數據:售圖任務數據、售圖圖幅數據、字典數據、流程狀態數據和用戶數據。其中售圖任務數據是指任務的基本數據包括任務編號、客戶信息、客戶要求及其他和任務相關的基本信息;售圖圖幅數據是指售圖任務中客戶所購買的地圖的元數據信息,包括圖幅號、格號、價格、單幅圖的費用等;字典數據指的是相對不變的類型信息,如比例尺字典數據、地圖類型字典數據、部門字典數據、用戶角色字典數據、地圖價格字典數據、系統模塊字典數據、系統功能字典數據等;流程狀態數據指的是售圖任務在各個節點的狀態參數;用戶數據指的是登錄用戶的信息。
根據以上類型數據的特點及在流程管理中各類數據扮演的角色將其抽象為以下幾類數據模型:
(1)任務數據模型:描述任務的基本信息,是任務流程管理的基本單元。
(2)圖幅數據模型:它隸屬于任務數據模型,用于描述圖幅信息,是售圖圖幅統計的基本單元。
(3)字典數據模型:所有數據字典的一個統稱,它是為任務數據模型和圖幅數據模型提供服務的一類數據模型,每一類字典數據是任務數據或圖幅數據中的一項信息。其中系統模塊字典和系統功能字典是用于自動生成樹狀型功能列表而設計的。
(4)流程狀態數據模型:隸屬于任務數據模型,描述任務在各個節點的狀態。
(5)用戶數據模型:用于描述用戶信息,除了基本信息外還包括用戶權限信息。
根據需要本系統共建立了 12個數據表,如表 1所示。

表1
Spring是由Open Source開發的一個優秀的多層J2EE系統框架,其核心是IOC和AOP。IOC是一種設計模式,即IOC模式。IOC模式進一步降低了類之間的耦合度,并且改變了傳統的對象的創建方法,實現了一種配置式的對象管理方式,Spring框架中由IOC容器負責配置性的對象的管理。IOC模式極大提高了系統開發與維護的靈活性。
AOP是一種編程模式,它從系統的橫切面關注問題,為解決系統級服務問題提供了一種很好的方法。AOP將系統服務分解成方面看待,并為類提供一種聲明式系統服務方式。Java類不需要知道日志服務的存在也不需要考慮相關的代碼。所以,用AOP編寫的應用程序是松耦合的,提高了代碼的復用性。
SQLMap是基于J2EE規則、實現數據持久層的一個框架。相對于如Hibernate和Apache OJB“一站式”ORM解決方案對數據庫結構提供的較為完整的封裝而言,它提供了“半自動化”的封裝。這里的“半自動化”,是相對Hibernate等提供了全面的數據庫封裝機制的“全自動化”ORM實現而言,“全自動”ORM實現了POJO和數據庫表之間的映射。而ibatis的著力點,則在于POJO與SQL之間的映射關系。也就是說,iBatis并不會為程序員在運行期自動生成SQL執行。具體的 SQL需要程序員編寫,然后通過映射配置文件,將SQL所需的參數,以及返回的結果字段映射到指定POJO。這種技術雖然會花費一些時間用于SQL語句的編寫,但它卻為程序員提供了更大的靈活性和自由空間,并且簡單易學,程序員很容易上手。
JSTL是JSP標準標記庫(JSP Standard Tag Library)縮寫,是一個實現 Web應用程序中常見的通用功能的定制標記庫集,這些功能包括迭代和條件判斷、數據管理格式化、XML操作以及數據庫訪問。在JSP頁面中利用JSTL提供的標簽可簡化數據處理、進行復雜的條件判斷,使得視圖中界面的編輯和生成更加簡單。
數據庫視圖是從一個或多個表或視圖中導出的表,其結構和數據是建立在對表的查詢基礎上的。和表一樣,視圖也是包括幾個被定義的數據列和多個數據行,但就本質而言這些數據列和數據行來源于其所引用的表。但視圖不是真實存在的基礎表而是一張虛表,視圖所對應的數據并不實際地以視圖結構存儲在數據庫中,而是存儲在視圖所引用的表中。其優點表現在:
(1)能分割數據,簡化觀點??梢酝ㄟ^select和where來定義視圖,從而可以分割數據基表中某些對于用戶不關心的數據,使用戶把注意力集中到所關心的數據列.進一步簡化瀏覽數據工作 。
(2)為數據提供一定的邏輯獨立性。如果為某一個基表定義一個視圖,即使以后基本表的內容的發生改變了也不會影響“視圖定義”所得到的數據 。
(3)提供自動的安全保護功能。視圖能像基本表一樣授予或撤銷訪問許可權 。
(4)視圖可以間接對表進行更新,因此視圖的更新就是表的更新。
圖4,圖 5是售圖業務流程管理系統的框架和任務登記的界面。圖 4為功能列表部分,圖 5為內容顯示及操作部分。

圖4 售圖登記任務列表頁面

圖5 售圖任務信息登記頁面
基于J2EE開發框架,采用當前流行的網絡MIS系統開發技術,開發了基于B/S架構的我院售圖業務流程管理系統。經過半年多的運行和使用,系統運行穩定,操作響應速度快,滿足了我院對售圖業務的管理,實現了售圖業務管理的信息化、網絡化和自動化,提高了管理效率。同時為售圖業務管理提供了良好的決策支持。
[1] 張春奎,張明芳,張益娟.西安市勘察測繪院測繪生產流程與檔案管理信息系統平臺開發需求分析手冊.2007
[2] 李澎林,朱國清,吳斌.基于iBatis SQLMap的數據持久層實現應用研究[J].浙江工業大學學報.2008,36(1)
[3] Spring中文論壇.Spring Framework開發手冊.http:// sp ring.jactiongroup.net
[4] Clinton Begin.iBatis SQLMaps開發指南.http://www.ibatis.com.2004
[5] 袁福慶.Oracle數據庫管理與維護手冊[M].北京:人民郵電出版社,2006
[6] http://baike.baidu.com/view/8039.htm
[7] http://baike.baidu.com/view/10166.htm
[8] http://oracle.chinaitlab.com/backup/350473.html
[9] http://www.cnblogs.com/pony/archive/2008/07/15/ 1243210.html
[10] http://wenwen.soso.com/z/q35872659.htm