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