蘇白莉,張洪華,蘇楠
(1.江西電力職業(yè)技術(shù)學(xué)院教務(wù)處,江西南昌330022; 2.長沙理工大學(xué)計算機與通信工程學(xué)院,湖南長沙410004;
3.長沙電業(yè)局,湖南長沙 410015)
隨著信息化產(chǎn)業(yè)的飛速發(fā)展,人們的生活逐漸實現(xiàn)了數(shù)字化,而園區(qū)一卡通正是數(shù)字化時代的一種體現(xiàn).技術(shù)的進一步發(fā)展,使園區(qū)一卡通系統(tǒng)的智能化程度大幅度提高,而人們對這種智能化系統(tǒng)的可靠性和便利性提出了更高要求.因此,使用低成本、高效率、更安全的園區(qū)一卡通管理系統(tǒng)是一種滿足時代發(fā)展的理念.本文結(jié)合實際,介紹了園區(qū)一卡通管理系統(tǒng)的研究概況,并設(shè)計了一種新的一卡通管理系統(tǒng).
1970年,法國工程師MORENO Roland發(fā)明了IC卡,其基本思想是使用集成電路代替?zhèn)鹘y(tǒng)方法(如在卡片上印刷字符、嵌入磁條等技術(shù))來記錄信息[1,2].目前,一卡通管理系統(tǒng)從最初的門禁系統(tǒng),已經(jīng)逐漸發(fā)展為廣泛應(yīng)用的一卡通系統(tǒng),幾乎涉及單位運作管理的各個層面,包括考勤、訪客、巡更、會議簽到、消費、物品流通、停車場出入、電梯控制等多個子系統(tǒng)模塊.
一卡通管理系統(tǒng)作為安防系統(tǒng)中的一個專業(yè)領(lǐng)域,在經(jīng)歷了構(gòu)想、研發(fā)、生產(chǎn)、銷售、使用、服務(wù)多個階段后[3],現(xiàn)已發(fā)展成多元化、網(wǎng)絡(luò)化、智能化的開放性系統(tǒng).國內(nèi)常見的一卡通系統(tǒng)如下.
(1)3C一卡通系統(tǒng)2005年由達實公司推出,其功能設(shè)計的基本理念是“一卡、一庫、一網(wǎng)”,包括消費、考勤、工資、門禁等多個功能子系統(tǒng),整個系統(tǒng)的開發(fā)相當(dāng)成功.
(2)CAS一卡通系統(tǒng)平臺軟件2006年5月由億源智能科技有限公司推出.這套系統(tǒng)集成了包括中心管理、消費、考勤、門禁、巡更、會議出勤、通道出入、領(lǐng)導(dǎo)查詢、多媒體查詢、Web查詢等多個功能子系統(tǒng).整體軟件采用了多項新技術(shù):全網(wǎng)絡(luò)化設(shè)計;獨立模塊結(jié)構(gòu),各個子系統(tǒng)可以被分別安裝在不同的電腦中;獨立統(tǒng)一的中心數(shù)據(jù)庫,可以將所有數(shù)據(jù)集中管理;獨立的人事發(fā)卡管理,不會出現(xiàn)多處發(fā)卡、相互沖突的問題;獨特的操作員權(quán)限管理,實現(xiàn)了操作員分模塊、分部門管理;獨特的數(shù)據(jù)查詢算法,讓操作員可以查詢?nèi)魏螖?shù)據(jù);自定義報表功能,讓技術(shù)人員和工程商可以隨機應(yīng)變等.此外,CAS一卡通系統(tǒng)還具有獨特的系統(tǒng)功能導(dǎo)航圖設(shè)計、全個性化軟件開發(fā)服務(wù)和分模塊安裝等優(yōu)點.
(3)東方電氣集團一卡通系統(tǒng)于2006年開始實施,其一卡通系統(tǒng)包括:全部的辦公區(qū)門禁、員工食堂及小賣部消費、停車場收費3個子系統(tǒng).其中,門禁系統(tǒng)已于2011年5月份全部實施完成,而食堂消費系統(tǒng)仍采用原消費管理系統(tǒng),主要原因是新的消費管理軟件的實用性較差.
國內(nèi)同類產(chǎn)品的模型都為“一卡、一庫、一網(wǎng)”:卡是指IC卡(如射頻卡、接觸式IC卡、磁條卡),根據(jù)成本和安全等級來定制相應(yīng)的讀卡器;庫是指數(shù)據(jù)庫;網(wǎng)指的是以太網(wǎng)或其他介質(zhì)的網(wǎng)絡(luò)等.本系統(tǒng)也采用了“一卡、一庫、一網(wǎng)”的理念,基于客戶/服務(wù)器(C/S)模式,采用了Philips Mifare 1 S50卡,SQL sever 2000數(shù)據(jù)庫,以太網(wǎng),服務(wù)器通信協(xié)議為TCP/IP.
在功能設(shè)計方面,本系統(tǒng)主要是針對居民小區(qū)小成本、高效率的特點來特別定制的,除了權(quán)限管理、貨幣數(shù)據(jù)高層管理外,還融合了門禁、車庫、用戶信息查詢、物業(yè)管理、出勤等具體的應(yīng)用管理,充分滿足了小區(qū)居民和管理人員對便利性和安全性的要求.
在技術(shù)創(chuàng)新方面,新系統(tǒng)的服務(wù)器端采用了基于delphi VCL[4]的組件,使用Indy10作為服務(wù)器與客戶端通信的控件,采用dbExpress連接數(shù)據(jù)庫,使得編寫程序更為安全高效,程序的各個功能模塊能夠各司其職、互不影響.終端可以是桌面型電腦或特定的嵌入式設(shè)備(如W indows CE或W indows XP等操作平臺,其中W indows CE環(huán)境下要求單獨編譯).數(shù)據(jù)傳輸方面(包括讀卡器與終端、終端與服務(wù)器),新系統(tǒng)定制了靈活的加密方式(用戶自定義加密),可以使用戶數(shù)據(jù)更加安全,并在TCP/IP協(xié)議基礎(chǔ)上,加入了應(yīng)用層協(xié)議,使數(shù)據(jù)傳輸更加穩(wěn)定可靠.同時,設(shè)置了不同的權(quán)限級別操作,分部門授權(quán),使得非法人員不能隨意破壞整個管理系統(tǒng).
本系統(tǒng)最大的特點是服務(wù)器采用了多線程編程結(jié)合合理的自定義應(yīng)用層協(xié)議,使服務(wù)器端與客戶端通信更加穩(wěn)健高效,這在delphi平臺下的C/S編程中是很少見的.
園區(qū)一卡通系統(tǒng)是用于現(xiàn)代化園區(qū)管理的系統(tǒng),其主要功能包括園區(qū)大樓門禁管理、園區(qū)地下車庫出入管理,以及園區(qū)消費帳戶開設(shè)、充值、消費刷卡、消費結(jié)算等.
為了滿足園區(qū)對安全、實用和人性化的要求,有必要進行詳細的需求分析.其中,設(shè)計初期應(yīng)優(yōu)先考慮系統(tǒng)的數(shù)據(jù)組成,在了解實際情況后,確定其業(yè)務(wù)流程,進而確定系統(tǒng)的各個處理對象,以及系統(tǒng)所需的功能.
系統(tǒng)需要處理的對象主要有:
(1)園區(qū)人員基本信息(Carduser);
(2)值班室基本信息(Management);
(3)小區(qū)日常事務(wù)管理基本信息(Daily-Manage);
(4)主控門信息(GateRec);
(5)車庫信息(GarageRec);
(6)消費信息(ConsumptionRec);
(7)“個人卡”基本信息(Card);
(8)園區(qū)管理員(Operator).
系統(tǒng)功能模塊如圖1所示.
圖1 系統(tǒng)功能模塊
根據(jù)系統(tǒng)的特點,將其分為3層:數(shù)據(jù)庫為最上層,服務(wù)端為中間層,客戶端為最底層,讀卡終端作為客戶端的必需硬件設(shè)施同為底層,如圖2所示.這種層次結(jié)構(gòu)有利于數(shù)據(jù)的集中管理和安全性控制,在設(shè)計時,由于其功能明確,使得設(shè)計簡化,有利于系統(tǒng)的設(shè)計與實現(xiàn).
在進行系統(tǒng)整體設(shè)計時,考慮到實時性,系統(tǒng)采用了C/S模式,而通信介質(zhì)則使用了以太網(wǎng),通信協(xié)議TCP協(xié)議可以進行少量數(shù)據(jù)的傳輸,以確保數(shù)據(jù)的安全.為了節(jié)省時間與成本,將開發(fā)環(huán)境確定為delphi 2007,這樣就可以利用delphi的VCL設(shè)計來減少界面開發(fā)所占用的時間.另外,系統(tǒng)的運行環(huán)境為W indows XP,使用的數(shù)據(jù)庫為SQL Server 2000.
圖2 系統(tǒng)層次模塊
數(shù)據(jù)庫設(shè)計階段主要是將需求分析階段得到的用戶需求抽象為信息結(jié)構(gòu)(概念模型)的過程,它是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵,包括概念模型設(shè)計和新系統(tǒng)流程兩個部分.其中,概念模型可用ER圖[5]描述,如圖3所示.
圖3 數(shù)據(jù)庫概念模型ER圖
根據(jù)需求分析可知,每一個對象都可以確立對應(yīng)的數(shù)據(jù)表,而表中各屬性即為對象所擁有的信息.系統(tǒng)使用的數(shù)據(jù)庫為SQL Server 2000,命名為CMSDB,按照需求分析將所得的對象轉(zhuǎn)換為表加入數(shù)據(jù)庫中.
服務(wù)端在整個系統(tǒng)中起著交通樞紐的作用,占有極為重要的地位.服務(wù)器既要管理和控制數(shù)據(jù)系統(tǒng),也要控制傳輸系統(tǒng),其編程相對比較復(fù)雜,也較難調(diào)試.要求其具有數(shù)據(jù)庫連接、終端數(shù)據(jù)傳輸、數(shù)據(jù)合理性分析和操作權(quán)限分析的功能.為了增加安全性與穩(wěn)定性,將帳戶控制與管理具體功能分布到終端程序設(shè)計,并為其留出相應(yīng)的編程接口.
服務(wù)器程序中采用Indy10作為與客戶端通信的控件,使用dbExpress連接數(shù)據(jù)庫.
dbExpress主要控件功能說明如下.
SQLConnection1為TSQLConnection連接數(shù)據(jù)庫;SQLStoredProc1為TSQLStoredProc存儲過程[6],在管理員登錄、注銷等時使用; sdsetUserOnline為TsimpleDataSet在線用戶列表; sdsetUserAcount為TsimpleDataSet用戶帳號管理; SQLQuery1為TSQLQuery,其他基本連接操作,如還原與備份.
在Indy 10中使用了IdTCPServer,作為服務(wù)端TCP的連接控件,該控件將Socket類連接操作封裝起來,使程序編寫方便而且運行更穩(wěn)定.由于其為阻塞式[7]控件,因此將連接后處理操作轉(zhuǎn)換為線程操作.服務(wù)端線程執(zhí)行的數(shù)據(jù)處理模型IdTCPServerExecute過程如下.
其中數(shù)據(jù)包為應(yīng)用層自定義協(xié)議,其完整結(jié)構(gòu)如圖4所示.
圖4 應(yīng)用層自定義協(xié)議
為了保證C/S連接后數(shù)據(jù)傳送的安全性,需要對數(shù)據(jù)段進行加密處理.同時為了加強數(shù)據(jù)傳輸?shù)姆€(wěn)定性,程序中加入了心跳包處理,以解決TCP長連接掉線問題.
由于程序啟動時要事先連接數(shù)據(jù)庫,因此在服務(wù)端程序啟動之前,首先要對服務(wù)端數(shù)據(jù)庫進行連接設(shè)置,在本設(shè)計中附加了一個配置程序(請參見Connection_SetupTool工程),連接成功后生成Config.ini配置文件.
配置文件格式如下:
由于車庫管理與大樓正門門禁系統(tǒng)相似,都有手工登入或讀卡器登入,也可以查詢?nèi)藛T(車輛)的通行記錄,因此將車庫管理系統(tǒng)歸于門禁系統(tǒng)進行探討.
在與服務(wù)器通信時,使用服務(wù)端定義好的通信協(xié)議,包括通信控件TIdTCPClient和TidAntiFreeze,還有讀卡器連接的串口通信控件Spcomm[8].其中,TIdTCPClient是與服務(wù)端TIdTCPServer對應(yīng)的Indy 10控件,其連接方式也為阻塞式,所以每次會話應(yīng)由客戶端發(fā)起.當(dāng)服務(wù)端處理完后,客戶端接收返回的數(shù)據(jù),在服務(wù)端處理且未返回數(shù)據(jù)時,客戶端只能等待,不進行其他操作,包括界面輸入響應(yīng).
查詢通行記錄后,返回記錄字串,包括用戶名、車牌號和通行時間等記錄信息,實現(xiàn)這一功能的函數(shù)QueryforRec()程序流程如圖5所示.
該流程作為客戶端連接服務(wù)端的一般通信模型,在消費刷卡、卡務(wù)管理等操作也同樣適用,只需在具體使用時改變包頭類型和數(shù)據(jù)包大小即可.消費刷卡客戶端的基本功能包括手工刷卡與定值刷卡、操作員登錄、客戶端運行日志、當(dāng)日消費統(tǒng)計和消費匯總等.
圖5 查詢通行記錄的函數(shù)程序流程
設(shè)計的難點是確定刷卡數(shù)據(jù)流程.在本系統(tǒng)的設(shè)計中,先發(fā)送串口信息并打開超時定時器(100 ms),在串口控件讀出卡號、序列號與金錢值后,將數(shù)據(jù)發(fā)送到服務(wù)器確認(rèn),若數(shù)據(jù)有效且完整,則通過串口寫卡,并在寫卡成功后返回數(shù)據(jù)庫保存消費信息與更新卡的錢款數(shù)額.其中,串口通信控件為Spcomm,其操作方式與門禁系統(tǒng)大同小異,詳細流程如圖6所示.
卡務(wù)管理端的基本功能包括發(fā)卡、充值、掛失、解除掛失、換卡與卡存款數(shù)額修復(fù)、退款、退卡、用戶注冊、用戶注銷等,這與服務(wù)端連接的核心代碼和門禁操作相似,都使用了服務(wù)端通信模型,所以代碼大致相同.
圖6 消費刷卡程序流程
本系統(tǒng)采用了自上而下設(shè)計的方法,在設(shè)計時,首先描繪出系統(tǒng)總體框架,再按功能將其劃分成多個子模塊,專門針對用戶數(shù)據(jù)安全性和穩(wěn)定性要求較高的特點,設(shè)計了較完善的數(shù)據(jù)庫、服務(wù)端和多個客戶端.采用了delphi VCL組件,使編寫程序更為安全高效.本系統(tǒng)實現(xiàn)了門禁、消費等功能,為今后大型一卡通系統(tǒng)的設(shè)計提供了借鑒.
[1]陳大才.射頻識別(RFID)技術(shù)[M].北京:電子工業(yè)出版社,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]薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論[M].第四版.北京:高教出版社,2008:23-25.
[6]桑德里克.SQL Server存儲過程與XML編程[M].陳浩爭,謝俊,石朝江,譯.第2版.北京:清華大學(xué)出版社,2003:70-72.
[7]O’Reilly.Delphi in a nutshell[M].北京:中國電力出版社,2001:103-108。
[8]趙蘭濤,蘇彥華.Delphi串口通信技術(shù)與工程實踐[M].北京:人民郵電出版社,2004:7-17.
(編輯白林雪)