摘要:校園一卡通管理系統(tǒng)是針對目前校園中使用的卡類多、管理復雜的情況而設計的,實現(xiàn)校園一卡通管理,會給廣大師生帶來極大的方便。本論文主要論述了校園一卡通的設計與實現(xiàn)
關鍵詞:一卡通 數(shù)據(jù)庫 系統(tǒng)安全
0 引言
目前,軟件系統(tǒng)的改進和升級越來越頻繁,B/S架構的產(chǎn)品明顯體現(xiàn)著更為方便的特性。對于中小企業(yè)而言,系統(tǒng)管理人員如果需要在幾百甚至上千部電腦之間來回奔跑,效率和工作量是可想而知的,但B/S架構的軟件只需要管理服務器就行了,所有的客戶端只是瀏覽器,根本不需要做任何的維護。無論用戶的規(guī)模有多大,有多少分支機構都不會增加任何維護升級的工作量,所有的操作只需要針對服務器進行;如果是異地,只需要把服務器連接專網(wǎng)即可,實現(xiàn)遠程維護、升級和共享。今后,軟件升級和維護會越來越容易,而使用起來會越來越簡單,這對用戶人力、物力、時間、費用的節(jié)省是顯而易見的。
1 分布式數(shù)據(jù)庫解決方案
根據(jù)一卡通管理系統(tǒng)的應用情況,本系統(tǒng)選擇了分布式數(shù)據(jù)庫,分布式數(shù)據(jù)庫就是分布式數(shù)據(jù)庫系統(tǒng)中各站點上數(shù)據(jù)庫的邏輯集合,它是由兩部分組成:一部分是物理數(shù)據(jù)庫,物理數(shù)據(jù)庫是關于應用所需要的數(shù)據(jù)的集合,是分布式數(shù)據(jù)庫的主體;另一部分是描述數(shù)據(jù)庫,描述數(shù)據(jù)庫是對數(shù)據(jù)結構的定義,以及對全局數(shù)據(jù)的分片、分布的描述。
可以把分布式數(shù)據(jù)庫中的數(shù)據(jù)分別定義為局部數(shù)據(jù)和全局數(shù)據(jù),局部數(shù)據(jù)是指只提供給本站點的應用所需要的數(shù)據(jù);全局數(shù)據(jù)雖然存放在各個站點中,但它也參與全局應用,是可被多個站點上應用訪問的數(shù)據(jù)。
在設計校園一卡通系統(tǒng)分布式數(shù)據(jù)庫數(shù)據(jù)分布的策略時,考慮到系統(tǒng)的應用現(xiàn)狀,本系統(tǒng)采用了混合式分布策略,即將全部數(shù)據(jù)按不同的應用子系統(tǒng)的需要分成若干子集,存儲在不同子系統(tǒng)所在的數(shù)據(jù)庫服務器上,不過把所有數(shù)據(jù)副本存放在一卡通中心數(shù)據(jù)庫服務器上用于對外共享,這樣就減少了不同子系統(tǒng)之間數(shù)據(jù)訪問的復雜性。
我們把每個子系統(tǒng)數(shù)據(jù)庫服務器作為一個局域網(wǎng)上的一個網(wǎng)絡結點,存放著該子系統(tǒng)的本地數(shù)據(jù),不同子系統(tǒng)之間的訪問是訪問放置于一卡通中心數(shù)據(jù)庫服務器上的副本,通過分布式事務或復制來保持數(shù)據(jù)的一致性,另外一卡通中心數(shù)據(jù)庫服務器在各子系統(tǒng)數(shù)據(jù)庫服務器上必須注冊,才能實現(xiàn)各子系統(tǒng)對一卡通中心數(shù)據(jù)庫服務器的訪問。
采用這種方案,一方面,減少網(wǎng)絡上本地數(shù)據(jù)庫服務器的負載,降低了不同子系統(tǒng)之間互訪的復雜性;另一方面,即使整個系統(tǒng)中有某個子系統(tǒng)出現(xiàn)故障,系統(tǒng)仍能運行,提高了系統(tǒng)的可靠性。
2 數(shù)據(jù)模型設計
在校園一卡通系統(tǒng)中,因業(yè)務較為復雜,要實現(xiàn)的功能很多。因而在數(shù)據(jù)庫中用于不同功能的表比較繁多。以下將設計的管理結算子系統(tǒng)中一些較為重要的表的結構和用途做一個簡要的說明。
①發(fā)卡信息表:存放的是學生、教師等人員發(fā)卡的基本信息,包括姓名、性別、年齡、職務、身份證號、發(fā)卡日期、卡有效期、院系名稱、班級名稱、專業(yè)名稱、操作員。②垃圾表:存放的是那些畢業(yè)、退學、輟學等離校人員卡以及過了有效期的卡的信息??ㄌ枴⑿彰?、院系名稱。③黑名單表:主要存放的是掛失卡的信息,主要包括卡號、姓名、掛失時間、操作員。④解掛表:記錄掛失卡的解掛信息,主要包括卡號、姓名解掛時間、操作員。⑤存款信息表:用于記錄用戶的存款信息,包括卡號、姓名、存款金額、存款時間、操作員。⑥消費記錄信息表:用于記錄用戶的消費情況,以便于查詢和統(tǒng)計,主要有卡號、學號、姓名、院系名稱、消費時間、消費金額、消費部門。⑦換卡記錄表:用于記錄換卡信息的表,卡號、姓名、換卡時間、轉賬金額、操作員。⑧退卡返款記錄表:用于存放那些畢業(yè)、退學、輟學等離校人員退卡及返款的信息,卡號、姓名、退卡時間、卡上金額、返款金額、操作員。⑨結賬記錄表:記錄的是與各消費點結賬的信息,部門名稱、結賬時間、結賬金額、操作員。
3 分布式數(shù)據(jù)庫安全管理
在分布式數(shù)據(jù)處理中,應用程序經(jīng)常需要同時操作多個數(shù)據(jù)庫服務器中的數(shù)據(jù),在這期間,必須保證各數(shù)據(jù)庫服務器中數(shù)據(jù)的一致性。為了支持分布式事務處理,SQL Server數(shù)據(jù)庫提供兩階段提交服務,通過它應用程序可以像對待單個事務一樣,對多個數(shù)據(jù)服務器進行分布式事務處理。
兩階段提交協(xié)議把事務的提交過程分為了兩個階段:第一階段:表決階段的目的是形成一個共同的決定。開始時,協(xié)調(diào)者在它的日志中寫入一條開始提交的記錄,給所有參與者發(fā)送準備提交的消息,當參與者收到準備消息后,它檢查是否能提交本地事務,如果能提交,參與者在日志中寫入一條就緒記錄,并給協(xié)調(diào)者回復消息,然后進入就緒狀態(tài)。否則,參與者寫入撤消記錄,并給協(xié)調(diào)者發(fā)送建議撤消消息。如果某個節(jié)點做出建議撤消提議,由于撤消決定具有否決權,該節(jié)點可以忽略這個事務。協(xié)調(diào)者收到所有參與者的回復后,它就做出是否提交事務的決定。只要有一個參與者建議撤消以后,協(xié)調(diào)者就必須從整體上撤消整個事務。因此它寫入一條撤消記錄,給所有參與者發(fā)送全局撤消消息,然后進入撤消狀態(tài);否則,它寫入提交記錄,給所有參與者發(fā)送全局提交消息,然后進入提交狀態(tài)。第二階段是提交階段,目的是實現(xiàn)這個決定。根據(jù)協(xié)調(diào)者的命令,參與者或者提交事務,或者撤消事務,并給協(xié)調(diào)者發(fā)送確認消息。此時,協(xié)調(diào)者在日志中寫入一條事務結束記錄。
4 銀行轉賬子系統(tǒng)
銀行轉賬子系統(tǒng)是校園一卡通管理系統(tǒng)中重要的子系統(tǒng),由于銀行轉賬子系統(tǒng)直接與銀行的交易網(wǎng)絡相連并涉及到銀行方面的資金安全,因此系統(tǒng)安全性在本子系統(tǒng)中顯得尤其重要。銀行轉賬子系統(tǒng)是用于實現(xiàn)銀行卡與校園卡之間的圈存、圈取、轉賬、資金結算、代發(fā)代扣等功能。下面介紹一下該子系統(tǒng)的實現(xiàn)與功能。
銀行轉賬子系統(tǒng)主要實現(xiàn)以下功能:①銀行轉賬:校園卡與銀行端進行圈存圈取,用戶持卡可以在存取機上進行轉賬;轉賬由用戶與銀行和校方簽訂協(xié)議,當IC卡上的余額低于一定的金額時,由銀行方自動進行轉賬業(yè)務,每次轉的金額是與用戶進行約定的金額相同。這種方式同銀行存取相互補充,這種方式不需要用戶本人去進行操作。②結算功能:所有涉及與銀行轉賬的校園業(yè)務全部通過銀行自動結算。③代發(fā)與代扣:代發(fā)代扣系統(tǒng)運行在校方的服務器上,銀行系統(tǒng)可進行學生學費、生活費的代扣。
由校方發(fā)起劃扣。代發(fā)獎學金、補助與教師工資。
5 系統(tǒng)的密鑰設計
系統(tǒng)以數(shù)字簽名技術實現(xiàn)用戶身份鑒別。給傳輸過程中的交易報文加入報文鑒別碼以保證數(shù)據(jù)的完整性。用戶的密碼或管理員密碼在傳輸過程中和存儲方式都進行加密處理,以保證密碼的安全性。系統(tǒng)身份鑒別技術是采用國際通用的高強度128位RSA非對稱算法,在傳輸和存儲過程中采用的是經(jīng)過國家密碼委認可的128位SDBI對稱算法實現(xiàn)報文加密和數(shù)據(jù)完整性校驗,可以有效地應對各種攻擊。
通過專業(yè)人員對成本投入和安全強度的折衷考慮,安全體系的密鑰存儲以及加密運算完全由軟件實現(xiàn),因接口靈活我們可以方便地改為硬件加密以及硬件密鑰存儲。通常通訊傳輸信息只對關鍵字段做MAC校驗而不做加密處理。
6 小結
現(xiàn)代化的學校離不開現(xiàn)代化的管理。校園卡一卡通系統(tǒng)將智能IC卡的強大功能與計算機網(wǎng)絡的數(shù)字化理念融入校園,將學校各個系統(tǒng)連為一體,動態(tài)掌握每一持卡人情況,極大提高學校的管理水平。