[摘 要] 本文介紹了Web Service技術(shù)平臺(tái)的相關(guān)技術(shù)和在B /S模式下的組件開發(fā)方法,在此基礎(chǔ)上設(shè)計(jì)和實(shí)現(xiàn)了高校財(cái)務(wù)綜合信息查詢系統(tǒng),實(shí)現(xiàn)了財(cái)務(wù)信息的發(fā)布與反饋。
[關(guān)鍵詞] Web Service技術(shù);B /S模式;高校財(cái)務(wù);信息查詢;SQL Server
[中圖分類號(hào)]F232[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1673-0194(2008)20-0036-04
0 引 言
《教育部、財(cái)政部關(guān)于“十一五”期間進(jìn)一步加強(qiáng)高等學(xué)校財(cái)務(wù)管理工作的若干意見》要求:高等學(xué)校應(yīng)全面推進(jìn)財(cái)務(wù)管理的信息化和網(wǎng)絡(luò)化,充分利用現(xiàn)代信息技術(shù),實(shí)現(xiàn)統(tǒng)一核算和實(shí)時(shí)監(jiān)控,提高財(cái)務(wù)管理水平和會(huì)計(jì)信息質(zhì)量。在高校的財(cái)務(wù)管理中,財(cái)務(wù)信息的搜集、發(fā)布與反饋是財(cái)務(wù)管理中的重要內(nèi)容,也是為教學(xué)、科研、學(xué)生服務(wù)的重要手段。
隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展和高校對財(cái)務(wù)管理的要求不斷提高,傳統(tǒng)財(cái)務(wù)管理的方法、手段和效率已經(jīng)不能適應(yīng)新的發(fā)展需要。高校實(shí)行會(huì)計(jì)信息化已經(jīng)有很長時(shí)間了,已積累了相當(dāng)豐富的信息資源,但這些信息的利用率很低,也沒有與財(cái)務(wù)管理形成良性的互動(dòng),有必要利用Internet技術(shù),設(shè)計(jì)開發(fā)基于B /S模式的網(wǎng)上財(cái)務(wù)綜合信息查詢系統(tǒng),在校園網(wǎng)上實(shí)現(xiàn)財(cái)務(wù)信息的發(fā)布與反饋。
1 系統(tǒng)設(shè)計(jì)
高校財(cái)務(wù)綜合信息查詢系統(tǒng)是高校財(cái)務(wù)管理系統(tǒng)的重要組成部分,在高校的財(cái)務(wù)管理中,已經(jīng)存在著賬務(wù)系統(tǒng)、工資管理系統(tǒng)、住房公積金管理系統(tǒng)和學(xué)費(fèi)管理系統(tǒng)等,這些系統(tǒng)都各自獨(dú)立。為方便管理和查詢,需要把一些重要信息從各個(gè)系統(tǒng)中提取出來導(dǎo)入到財(cái)務(wù)綜合信息數(shù)據(jù)庫中,因此在系統(tǒng)設(shè)計(jì)中不但要考慮信息的查詢,還要考慮信息的抽取、轉(zhuǎn)換和導(dǎo)入等功能。此外,一些財(cái)務(wù)信息只有授權(quán)用戶才能看到,比如項(xiàng)目支出明細(xì)賬,只有項(xiàng)目負(fù)責(zé)人才能查詢到,這就要求系統(tǒng)的安全性要高,在設(shè)計(jì)時(shí)必需考慮對用戶進(jìn)行授權(quán)和管理。
1. 1系統(tǒng)的體系結(jié)構(gòu)設(shè)計(jì)
在該系統(tǒng)設(shè)計(jì)中,綜合考慮到用戶的需求,提出該系統(tǒng)采用B /S的模式,并在3層結(jié)構(gòu)的基礎(chǔ)上再一次細(xì)分,使每層的功能更加單一化,層與層之間的接口更加清晰。在系統(tǒng)的核心部分采用.NET的組件技術(shù),遵循MVC (Model / View / Controller)設(shè)計(jì)模式的特點(diǎn),將MVC三部分映射到.NET體系結(jié)構(gòu)中相應(yīng)的組件。系統(tǒng)的總體結(jié)構(gòu)如圖1所示。
1. 2系統(tǒng)功能設(shè)計(jì)
依據(jù)財(cái)務(wù)管理的要求,該系統(tǒng)按功能設(shè)計(jì)可劃分為以下7個(gè)主要方面:
(1)財(cái)務(wù)信息采集。本系統(tǒng)的信息是從會(huì)計(jì)賬務(wù)系統(tǒng)、學(xué)費(fèi)管理系統(tǒng)和工資管理系統(tǒng)等多個(gè)數(shù)據(jù)源抽取轉(zhuǎn)換而來的,要求系統(tǒng)管理員根據(jù)時(shí)間段來導(dǎo)入數(shù)據(jù)。該系統(tǒng)使用SQL Server 2000系統(tǒng)的DTS功能來轉(zhuǎn)換數(shù)據(jù),其轉(zhuǎn)換數(shù)據(jù)的過程如圖2所示。
(2)用戶設(shè)置和權(quán)限分配。系統(tǒng)中存在一個(gè)高級(jí)別的管理員權(quán)限(系統(tǒng)管理員),他可以進(jìn)行任何操作,為校領(lǐng)導(dǎo)和各分院、各部門的領(lǐng)導(dǎo)設(shè)置登錄的用戶名和口令(可在Web上由用戶修改),并設(shè)置不同的權(quán)限,用戶可以根據(jù)權(quán)限在Web上進(jìn)行不同任務(wù)的查詢操作。用戶的權(quán)限不同,在Web上所表現(xiàn)的功能和查詢的內(nèi)容也不相同。
(3)領(lǐng)導(dǎo)查詢。校領(lǐng)導(dǎo)、各學(xué)院和各職能部門的領(lǐng)導(dǎo)根據(jù)系統(tǒng)分配的用戶名和口令在Web頁面上登錄,系統(tǒng)將根據(jù)用戶的權(quán)限完成相應(yīng)的查詢功能,可以查詢財(cái)務(wù)明細(xì)賬、項(xiàng)目明細(xì)賬、項(xiàng)目統(tǒng)計(jì)表、財(cái)務(wù)報(bào)表和預(yù)算執(zhí)行情況表,也可以查詢學(xué)生交費(fèi)明細(xì)、欠費(fèi)明細(xì)和學(xué)費(fèi)收繳情況的統(tǒng)計(jì)報(bào)表。
(4)教工查詢。教職工可以根據(jù)自己的工資號(hào)自主地在Web頁面上注冊,注冊成功后,職工便可以查詢自己的工資發(fā)放情況、公積金繳納支取情況、所得稅交納情況,還可以查詢自己的往來賬款情況,甚至還可以查詢自己負(fù)責(zé)的項(xiàng)目收支情況等,查詢非常靈活。
(5)學(xué)生查詢。學(xué)生可以用自己的學(xué)號(hào)在Web頁面上注冊,注冊成功后,學(xué)生便可以查詢本人的學(xué)費(fèi)交納情況、欠費(fèi)情況和獎(jiǎng)貸金等的發(fā)放情況。
(6)項(xiàng)目查詢。對橫向課題、縱向課題和有其他項(xiàng)目的老師來說,該功能提供項(xiàng)目的收支明細(xì)和統(tǒng)計(jì)報(bào)表的查詢,查詢的前提是要首先在Web頁面上用項(xiàng)目代碼注冊,注冊成功后再登錄該系統(tǒng),便可以使用系統(tǒng)所提供的功能了。
(7)文件和通知發(fā)布。該功能實(shí)現(xiàn)錄入發(fā)布的財(cái)務(wù)管理文件、通知的標(biāo)題、內(nèi)容、時(shí)間、附件等信息到財(cái)務(wù)信息查詢數(shù)據(jù)庫中,實(shí)現(xiàn)動(dòng)態(tài)的管理和維護(hù)。
1. 3系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)
該系統(tǒng)采用MS SQL Server 2000數(shù)據(jù)庫,所涉及的數(shù)據(jù)表主要包括:
(1)身份驗(yàn)證類數(shù)據(jù)表。從財(cái)務(wù)信息綜合查詢的功能上可以看出,不同的用戶使用權(quán)限是有區(qū)分的,因此,在設(shè)計(jì)身份驗(yàn)證時(shí)采用分級(jí)和分功能的方式,即為不同的用戶設(shè)置不同的級(jí)別和不同的功能。例如,系統(tǒng)管理人員是一個(gè)級(jí)別,主管財(cái)務(wù)的校領(lǐng)導(dǎo)、其他各二級(jí)學(xué)院、各職能部門的領(lǐng)導(dǎo)又是一個(gè)級(jí)別,他們所分配到查詢權(quán)限和功能各不相同。在用戶使用領(lǐng)導(dǎo)查詢功能時(shí)即提供身份驗(yàn)證。身份驗(yàn)證的數(shù)據(jù)表由5個(gè)表組成:用戶表、功能權(quán)限分配表、會(huì)計(jì)科目分配權(quán)限表、部門分配權(quán)限表和項(xiàng)目分配權(quán)限表等。
(2)公用數(shù)據(jù)表包括系統(tǒng)的一些基礎(chǔ)數(shù)據(jù),主要有部門代碼表、項(xiàng)目代碼表、職工代碼表、學(xué)生代碼表和科目代碼表等。
(3)與領(lǐng)導(dǎo)查詢相關(guān)的數(shù)據(jù)表主要有:項(xiàng)目明細(xì)賬、項(xiàng)目總賬、會(huì)計(jì)明細(xì)賬、會(huì)計(jì)報(bào)表和學(xué)生收費(fèi)總賬表等。
(4)與職工查詢相關(guān)的數(shù)據(jù)表主要有:教職工注冊表、教職工借款明細(xì)表、工資表和項(xiàng)目明細(xì)賬等。
(5)與學(xué)生查詢相關(guān)的數(shù)據(jù)表主要有:學(xué)生注冊表、學(xué)費(fèi)明細(xì)表、減免學(xué)費(fèi)明細(xì)表、獎(jiǎng)學(xué)金發(fā)放表和勤工助學(xué)金等發(fā)放表。
1. 4系統(tǒng)的組件模型設(shè)計(jì)
通過對以上系統(tǒng)的功能需求分析可知,該系統(tǒng)主要的功能集中在數(shù)據(jù)查詢上,只有信息的導(dǎo)入、用戶設(shè)置和權(quán)限分配、用戶注冊和修改密碼才更新數(shù)據(jù),所以在設(shè)計(jì)組件時(shí),可以設(shè)計(jì)信息查詢組件和其他功能組件。系統(tǒng)組件的設(shè)計(jì)主要關(guān)心組件的對外接口和數(shù)據(jù)的對外表現(xiàn)形式,而不是各應(yīng)用內(nèi)部數(shù)據(jù)的組織和表示,著重點(diǎn)并不在于某一應(yīng)用的描述,而在于各應(yīng)用之間可能發(fā)生的交互。本系統(tǒng)設(shè)計(jì)的主要組件有數(shù)據(jù)傳輸組件、用戶設(shè)置和權(quán)限分配組件、用戶注冊組件、會(huì)計(jì)明細(xì)賬查詢組件、項(xiàng)目收支明細(xì)賬查詢組件、工資查詢組件和學(xué)費(fèi)查詢組件等20多個(gè)組件模型。下面對其中3個(gè)組件的3個(gè)基本元素(即屬性、方法、事件)中的主要屬性和方法給予具體的描述:
(1)用戶設(shè)置和權(quán)限分配組件。屬性有User_ ID(用戶代碼) 、User_name (用戶名稱) 、User_password(用戶口令) 、UserSecurityTable (用戶代碼表) 、UserfuctionTable (功能權(quán)限分配表) 、UsersubjectTable(科目權(quán)限分配表) 、UserdepartTable (部門權(quán)限分配表) 、UseritemTable (項(xiàng)目權(quán)限分配表)等。該組件可新增用戶和為用戶分配權(quán)限,也可以修改用戶權(quán)限等。在該組件中顯示用戶組代碼、功能代碼、科目代碼、部門代碼和項(xiàng)目代碼,在列表框中可以選擇相應(yīng)的代碼來為用戶分配權(quán)限。
(2)教職工注冊組件。屬性有User_ ID (教職工的工資號(hào)) 、User_Name (姓名) 、User_Password (密碼) 、Uer_Question (找回口令的問題) 、User_Answer (找回口令的答案) 、TeacherRegTable (教職工注冊表) 、Teacher ListTable (教師代碼表) 。方法有Register (注冊) ,用于教工注冊。
(3)項(xiàng)目收支明細(xì)賬查詢組件:屬性有Depart_ ID(部門代碼) 、Item_ ID (項(xiàng)目代碼) 、FromDate (期初日期) 、ToDate (期末日期) 、UserdepartTable (部門權(quán)限分配表) 、UseritemTable (項(xiàng)目權(quán)限分配表) 、ItemAccountTable (項(xiàng)目收支明細(xì)表) 。方法有ItemRetr (查詢項(xiàng)目明細(xì)賬) 。該組件首先根據(jù)用戶代碼來判斷其所擁有的部門和項(xiàng)目權(quán)限,根據(jù)權(quán)限,在部門列表框中會(huì)顯示部門,在項(xiàng)目列表框中會(huì)顯示相應(yīng)的項(xiàng)目,用戶可以選擇要查詢的部門和項(xiàng)目代碼。
2 系統(tǒng)實(shí)現(xiàn)
2. 1系統(tǒng)的運(yùn)行環(huán)境
該系統(tǒng)基于B /S模式結(jié)構(gòu)進(jìn)行設(shè)計(jì),其服務(wù)器為
Window 2000 Server / IIS 5. 0,數(shù)據(jù)庫管理系統(tǒng)為MSSQL Server 2000,系統(tǒng)客戶端要求使用IE 5. 0或以上的版本。系統(tǒng)的開發(fā)工具為Visual Studio.NET。
2. 2組件的開發(fā)
組件的接口和功能確定后,在Visual Studio.NET集成環(huán)境中完成系統(tǒng)組件開發(fā)比較容易,這些開發(fā)過程在一些
.NET開發(fā)類的書籍中,如參考文獻(xiàn)[1],有詳細(xì)的敘述,本文不再贅述。.NET組件開發(fā)后可以直接生成DLL文件,在使用.NET組件時(shí)不再需要在操作系統(tǒng)注冊表中進(jìn)行注冊和設(shè)置,由.NET平臺(tái)與應(yīng)用系統(tǒng)共同管理。
2. 3系統(tǒng)的安全設(shè)計(jì)
Web應(yīng)用程序的安全是建立在3種基礎(chǔ)性概念的基礎(chǔ)上,即驗(yàn)證(迫使用戶證明其正確的身份) 、授權(quán)(檢查用戶是否具有許可訪問他們請求的資源)和模擬(允許程序在不同的用戶環(huán)境下運(yùn)行) 。在本系統(tǒng)中,按照管理職能和人員的身份不同對所有用戶進(jìn)行分類,并依據(jù)類別的不同分別賦予不同的操作和訪問權(quán)限。針對用戶密碼信息還設(shè)計(jì)了基于RSA算法的加密組件及用戶身份驗(yàn)證組件,用于密碼信息的加密和用戶登錄時(shí)的身份驗(yàn)證,并充分利用
.NET與SQL Server 2000提供的安全策略和措施來保證系統(tǒng)的安全。
3 關(guān)鍵技術(shù)分析
3. 1Web Service 技術(shù)
Web Service 技術(shù)的基礎(chǔ)是XML,它使Web Service 能夠無歧義且快速有效地傳送數(shù)據(jù),是一種公用可移植的標(biāo)準(zhǔn)方法。XML 技術(shù)有兩個(gè)很顯著的特點(diǎn):數(shù)據(jù)和現(xiàn)實(shí)的分離、數(shù)據(jù)的自描述性。因此,XML 技術(shù)作為標(biāo)準(zhǔn)的數(shù)據(jù)交換技術(shù)是本系統(tǒng)中應(yīng)用到的SOAP 協(xié)議( Simple Object Access Protocol ,SOAP) 、WSDL 語言(Web Service De-scription Language ,WSDL) 和UDDI (Universal Description Discovery and Integration ,UDDI) 的基礎(chǔ)。在XML基礎(chǔ)上,WebService 技術(shù)所涉及的協(xié)議構(gòu)成了一個(gè)類似“?!钡捏w系結(jié)構(gòu)[2]。
3. 2組件功能劃分
合理的組件劃分將從很大程度上簡化系統(tǒng)功能的開發(fā),組件的劃分至少要滿足以下3個(gè)條件[3]:①能明確劃分為相互獨(dú)立、功能上自足的組成部分,可以視為一個(gè)黑盒子;②黑盒子的接口定義清晰,使用組件時(shí)只需了解接口規(guī)范,不必清楚組件內(nèi)部的設(shè)計(jì)原理與工作方式,即組件的內(nèi)部設(shè)計(jì)自由完成;③劃分時(shí)必須區(qū)分項(xiàng)目業(yè)務(wù)和通用方法。所謂的業(yè)務(wù),就是面向客戶而言的,針對用戶具體的業(yè)務(wù)邏輯;而通用方法獨(dú)立于業(yè)務(wù)邏輯,是在需求分析過程中單獨(dú)提取出來的那一部分。
3. 3應(yīng)用SQL Server 2000的存儲(chǔ)過程
存儲(chǔ)過程類似于VB.NET function函數(shù),只是存儲(chǔ)過程用T2SQL 編寫,并在數(shù)據(jù)庫服務(wù)器上執(zhí)行。使用存儲(chǔ)過程的主要好處是性能好,存儲(chǔ)過程在服務(wù)器上執(zhí)行,離數(shù)據(jù)庫最近,比VB .NET中偶發(fā)的SQL語句操縱數(shù)據(jù)時(shí)要快得多。業(yè)務(wù)邏輯可以用存儲(chǔ)過程來實(shí)現(xiàn),對數(shù)據(jù)庫要進(jìn)行的操作用存儲(chǔ)過程實(shí)現(xiàn),將業(yè)務(wù)邏輯嵌入到代碼中,在ASP .NET和VB .NET中調(diào)用存儲(chǔ)過程,可以使用DBMS帶有的自然安全權(quán)限,為系統(tǒng)提供更好的安全性。另外,使用存儲(chǔ)過程對應(yīng)用程序維護(hù)很方便,在存儲(chǔ)過程中包裝業(yè)務(wù)邏輯,對應(yīng)用層隱藏?cái)?shù)據(jù)庫結(jié)構(gòu)的改變;如果改變基礎(chǔ)表格結(jié)構(gòu),則可以修改存儲(chǔ)過程,而不影響使用這個(gè)存儲(chǔ)過程的應(yīng)用程序。在系統(tǒng)中,對一些復(fù)雜的查詢使用了存儲(chǔ)過程,以下是學(xué)費(fèi)查詢中部分程序代碼:
Dim cmdTuition As New SqlCommand ( )
Dim drTuition As SqlDataReader
SqlConnection1. Open ( )
cmdTuition = SqlConnection1. CreateCommand
cmdTuition. CommandType =ComandType. StordProcedure
cmdTuition. CommandText = " GetStudentTuition" ’調(diào)用在SQL Server 2000中定義的存儲(chǔ)過程
cmdTuition. Parameters. Add (New SqlParameter( " @Student_ID" ,TextBox1. text) ) ’輸入?yún)?shù)學(xué)生學(xué)號(hào)
…
’輸入其他參數(shù)
…
drTuition = cmdTuition. ExecuteReader (CommandBehavior.
closeconnection) ’執(zhí)行存儲(chǔ)過程
…
’顯示查詢結(jié)果
…
drTuition. close ( )
SqlConnection1. close ( )
3. 3系統(tǒng)性能優(yōu)化
采用以下措施來提高系統(tǒng)的運(yùn)行速度與整體性能:
(1)高速緩沖對于創(chuàng)建一個(gè)高可用性和可伸縮性的Web應(yīng)用程序來說,是一項(xiàng)很重要的技術(shù),應(yīng)用高速緩沖可以明顯提高Web服務(wù)的性能。.NET平臺(tái)完全支持高速緩沖技術(shù),并針對不同的情況支持頁輸出緩沖、頁分段緩沖和頁數(shù)據(jù)緩沖等3種緩沖技術(shù)[4]。
(2)對數(shù)據(jù)庫中一些表采取反規(guī)范化設(shè)計(jì),可以提高Web系統(tǒng)的查詢性能[5]。
(3)建立索引。對表中記錄建立索引可以提高系統(tǒng)檢索速度。
(4)利用存儲(chǔ)過程優(yōu)化系統(tǒng)性能。使用存儲(chǔ)過程完成數(shù)據(jù)庫訪問可以提高系統(tǒng)運(yùn)行效率、優(yōu)化網(wǎng)絡(luò)性能和提高系統(tǒng)安全性。
4 結(jié)束語
高校財(cái)務(wù)信息綜合查詢系統(tǒng)是高校教育信息化的重要組成部分,它的成功實(shí)現(xiàn)與運(yùn)用方便了廣大教師和學(xué)生,進(jìn)一步提高了財(cái)務(wù)管理水平,提升了學(xué)校的信息化水平。
主要參考文獻(xiàn)
[1]Evangelos Petroutsos,Asli Bilgin. Visual Basic .NET數(shù)據(jù)庫編程:從入門到精通[M]. 邱仲潘 等譯. 北京:電子工業(yè)出版社,2002.
[2] 李化江. 基于Web Service的綜合教務(wù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 中國教育信息化,2007(12):29-31.
[3] 劉軍,陽小華,楊星. 教學(xué)信息發(fā)布與管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與應(yīng)用,2006(2):99-102.
[4] Richard Anderson,Brian Francis. ASP.NET高級(jí)編程[M]. 王毅 等譯. 北京:清華大學(xué)出版社,2002:922-925.
[5] 馬惟哲,呂紅兵. Web數(shù)據(jù)庫系統(tǒng)物理模型的優(yōu)化策略[J]. 計(jì)算機(jī)應(yīng)用與軟件,2005(1):35-37.