蘇白莉,張洪華,蘇楠
(1.江西電力職業技術學院教務處,江西南昌330022; 2.長沙理工大學計算機與通信工程學院,湖南長沙410004;
3.長沙電業局,湖南長沙 410015)
隨著信息化產業的飛速發展,人們的生活逐漸實現了數字化,而園區一卡通正是數字化時代的一種體現.技術的進一步發展,使園區一卡通系統的智能化程度大幅度提高,而人們對這種智能化系統的可靠性和便利性提出了更高要求.因此,使用低成本、高效率、更安全的園區一卡通管理系統是一種滿足時代發展的理念.本文結合實際,介紹了園區一卡通管理系統的研究概況,并設計了一種新的一卡通管理系統.
1970年,法國工程師MORENO Roland發明了IC卡,其基本思想是使用集成電路代替傳統方法(如在卡片上印刷字符、嵌入磁條等技術)來記錄信息[1,2].目前,一卡通管理系統從最初的門禁系統,已經逐漸發展為廣泛應用的一卡通系統,幾乎涉及單位運作管理的各個層面,包括考勤、訪客、巡更、會議簽到、消費、物品流通、停車場出入、電梯控制等多個子系統模塊.
一卡通管理系統作為安防系統中的一個專業領域,在經歷了構想、研發、生產、銷售、使用、服務多個階段后[3],現已發展成多元化、網絡化、智能化的開放性系統.國內常見的一卡通系統如下.
(1)3C一卡通系統2005年由達實公司推出,其功能設計的基本理念是“一卡、一庫、一網”,包括消費、考勤、工資、門禁等多個功能子系統,整個系統的開發相當成功.
(2)CAS一卡通系統平臺軟件2006年5月由億源智能科技有限公司推出.這套系統集成了包括中心管理、消費、考勤、門禁、巡更、會議出勤、通道出入、領導查詢、多媒體查詢、Web查詢等多個功能子系統.整體軟件采用了多項新技術:全網絡化設計;獨立模塊結構,各個子系統可以被分別安裝在不同的電腦中;獨立統一的中心數據庫,可以將所有數據集中管理;獨立的人事發卡管理,不會出現多處發卡、相互沖突的問題;獨特的操作員權限管理,實現了操作員分模塊、分部門管理;獨特的數據查詢算法,讓操作員可以查詢任何數據;自定義報表功能,讓技術人員和工程商可以隨機應變等.此外,CAS一卡通系統還具有獨特的系統功能導航圖設計、全個性化軟件開發服務和分模塊安裝等優點.
(3)東方電氣集團一卡通系統于2006年開始實施,其一卡通系統包括:全部的辦公區門禁、員工食堂及小賣部消費、停車場收費3個子系統.其中,門禁系統已于2011年5月份全部實施完成,而食堂消費系統仍采用原消費管理系統,主要原因是新的消費管理軟件的實用性較差.
國內同類產品的模型都為“一卡、一庫、一網”:卡是指IC卡(如射頻卡、接觸式IC卡、磁條卡),根據成本和安全等級來定制相應的讀卡器;庫是指數據庫;網指的是以太網或其他介質的網絡等.本系統也采用了“一卡、一庫、一網”的理念,基于客戶/服務器(C/S)模式,采用了Philips Mifare 1 S50卡,SQL sever 2000數據庫,以太網,服務器通信協議為TCP/IP.
在功能設計方面,本系統主要是針對居民小區小成本、高效率的特點來特別定制的,除了權限管理、貨幣數據高層管理外,還融合了門禁、車庫、用戶信息查詢、物業管理、出勤等具體的應用管理,充分滿足了小區居民和管理人員對便利性和安全性的要求.
在技術創新方面,新系統的服務器端采用了基于delphi VCL[4]的組件,使用Indy10作為服務器與客戶端通信的控件,采用dbExpress連接數據庫,使得編寫程序更為安全高效,程序的各個功能模塊能夠各司其職、互不影響.終端可以是桌面型電腦或特定的嵌入式設備(如W indows CE或W indows XP等操作平臺,其中W indows CE環境下要求單獨編譯).數據傳輸方面(包括讀卡器與終端、終端與服務器),新系統定制了靈活的加密方式(用戶自定義加密),可以使用戶數據更加安全,并在TCP/IP協議基礎上,加入了應用層協議,使數據傳輸更加穩定可靠.同時,設置了不同的權限級別操作,分部門授權,使得非法人員不能隨意破壞整個管理系統.
本系統最大的特點是服務器采用了多線程編程結合合理的自定義應用層協議,使服務器端與客戶端通信更加穩健高效,這在delphi平臺下的C/S編程中是很少見的.
園區一卡通系統是用于現代化園區管理的系統,其主要功能包括園區大樓門禁管理、園區地下車庫出入管理,以及園區消費帳戶開設、充值、消費刷卡、消費結算等.
為了滿足園區對安全、實用和人性化的要求,有必要進行詳細的需求分析.其中,設計初期應優先考慮系統的數據組成,在了解實際情況后,確定其業務流程,進而確定系統的各個處理對象,以及系統所需的功能.
系統需要處理的對象主要有:
(1)園區人員基本信息(Carduser);
(2)值班室基本信息(Management);
(3)小區日常事務管理基本信息(Daily-Manage);
(4)主控門信息(GateRec);
(5)車庫信息(GarageRec);
(6)消費信息(ConsumptionRec);
(7)“個人卡”基本信息(Card);
(8)園區管理員(Operator).
系統功能模塊如圖1所示.

圖1 系統功能模塊
根據系統的特點,將其分為3層:數據庫為最上層,服務端為中間層,客戶端為最底層,讀卡終端作為客戶端的必需硬件設施同為底層,如圖2所示.這種層次結構有利于數據的集中管理和安全性控制,在設計時,由于其功能明確,使得設計簡化,有利于系統的設計與實現.
在進行系統整體設計時,考慮到實時性,系統采用了C/S模式,而通信介質則使用了以太網,通信協議TCP協議可以進行少量數據的傳輸,以確保數據的安全.為了節省時間與成本,將開發環境確定為delphi 2007,這樣就可以利用delphi的VCL設計來減少界面開發所占用的時間.另外,系統的運行環境為W indows XP,使用的數據庫為SQL Server 2000.

圖2 系統層次模塊
數據庫設計階段主要是將需求分析階段得到的用戶需求抽象為信息結構(概念模型)的過程,它是整個數據庫設計的關鍵,包括概念模型設計和新系統流程兩個部分.其中,概念模型可用ER圖[5]描述,如圖3所示.

圖3 數據庫概念模型ER圖
根據需求分析可知,每一個對象都可以確立對應的數據表,而表中各屬性即為對象所擁有的信息.系統使用的數據庫為SQL Server 2000,命名為CMSDB,按照需求分析將所得的對象轉換為表加入數據庫中.
服務端在整個系統中起著交通樞紐的作用,占有極為重要的地位.服務器既要管理和控制數據系統,也要控制傳輸系統,其編程相對比較復雜,也較難調試.要求其具有數據庫連接、終端數據傳輸、數據合理性分析和操作權限分析的功能.為了增加安全性與穩定性,將帳戶控制與管理具體功能分布到終端程序設計,并為其留出相應的編程接口.
服務器程序中采用Indy10作為與客戶端通信的控件,使用dbExpress連接數據庫.
dbExpress主要控件功能說明如下.
SQLConnection1為TSQLConnection連接數據庫;SQLStoredProc1為TSQLStoredProc存儲過程[6],在管理員登錄、注銷等時使用; sdsetUserOnline為TsimpleDataSet在線用戶列表; sdsetUserAcount為TsimpleDataSet用戶帳號管理; SQLQuery1為TSQLQuery,其他基本連接操作,如還原與備份.
在Indy 10中使用了IdTCPServer,作為服務端TCP的連接控件,該控件將Socket類連接操作封裝起來,使程序編寫方便而且運行更穩定.由于其為阻塞式[7]控件,因此將連接后處理操作轉換為線程操作.服務端線程執行的數據處理模型IdTCPServerExecute過程如下.


其中數據包為應用層自定義協議,其完整結構如圖4所示.

圖4 應用層自定義協議
為了保證C/S連接后數據傳送的安全性,需要對數據段進行加密處理.同時為了加強數據傳輸的穩定性,程序中加入了心跳包處理,以解決TCP長連接掉線問題.
由于程序啟動時要事先連接數據庫,因此在服務端程序啟動之前,首先要對服務端數據庫進行連接設置,在本設計中附加了一個配置程序(請參見Connection_SetupTool工程),連接成功后生成Config.ini配置文件.
配置文件格式如下:

由于車庫管理與大樓正門門禁系統相似,都有手工登入或讀卡器登入,也可以查詢人員(車輛)的通行記錄,因此將車庫管理系統歸于門禁系統進行探討.
在與服務器通信時,使用服務端定義好的通信協議,包括通信控件TIdTCPClient和TidAntiFreeze,還有讀卡器連接的串口通信控件Spcomm[8].其中,TIdTCPClient是與服務端TIdTCPServer對應的Indy 10控件,其連接方式也為阻塞式,所以每次會話應由客戶端發起.當服務端處理完后,客戶端接收返回的數據,在服務端處理且未返回數據時,客戶端只能等待,不進行其他操作,包括界面輸入響應.
查詢通行記錄后,返回記錄字串,包括用戶名、車牌號和通行時間等記錄信息,實現這一功能的函數QueryforRec()程序流程如圖5所示.
該流程作為客戶端連接服務端的一般通信模型,在消費刷卡、卡務管理等操作也同樣適用,只需在具體使用時改變包頭類型和數據包大小即可.消費刷卡客戶端的基本功能包括手工刷卡與定值刷卡、操作員登錄、客戶端運行日志、當日消費統計和消費匯總等.

圖5 查詢通行記錄的函數程序流程
設計的難點是確定刷卡數據流程.在本系統的設計中,先發送串口信息并打開超時定時器(100 ms),在串口控件讀出卡號、序列號與金錢值后,將數據發送到服務器確認,若數據有效且完整,則通過串口寫卡,并在寫卡成功后返回數據庫保存消費信息與更新卡的錢款數額.其中,串口通信控件為Spcomm,其操作方式與門禁系統大同小異,詳細流程如圖6所示.
卡務管理端的基本功能包括發卡、充值、掛失、解除掛失、換卡與卡存款數額修復、退款、退卡、用戶注冊、用戶注銷等,這與服務端連接的核心代碼和門禁操作相似,都使用了服務端通信模型,所以代碼大致相同.

圖6 消費刷卡程序流程
本系統采用了自上而下設計的方法,在設計時,首先描繪出系統總體框架,再按功能將其劃分成多個子模塊,專門針對用戶數據安全性和穩定性要求較高的特點,設計了較完善的數據庫、服務端和多個客戶端.采用了delphi VCL組件,使編寫程序更為安全高效.本系統實現了門禁、消費等功能,為今后大型一卡通系統的設計提供了借鑒.
[1]陳大才.射頻識別(RFID)技術[M].北京:電子工業出版社,2001:7-11.
[2]WONG JK,LIH,WANG SW.Intelligentbuilding research: a review[J].Automation in Construction,2005,14(1):143-159.
[3]ZAHEERUDDIN A,MANDVIWALLA M.Integrating the supply chain with RFID:a technical and business analysis[J].Communications of the AIS,2005,15(3):393-426.
[4]MARCO Cantù.Delphi 2009 Handbook[M].Italy:W intech Italia Srl.,2009:329-359.
[5]薩師煊,王珊.數據庫系統概論[M].第四版.北京:高教出版社,2008:23-25.
[6]桑德里克.SQL Server存儲過程與XML編程[M].陳浩爭,謝俊,石朝江,譯.第2版.北京:清華大學出版社,2003:70-72.
[7]O’Reilly.Delphi in a nutshell[M].北京:中國電力出版社,2001:103-108。
[8]趙蘭濤,蘇彥華.Delphi串口通信技術與工程實踐[M].北京:人民郵電出版社,2004:7-17.
(編輯白林雪)