基于B/S結構的卡務(wù)管理系統的設計
文章出處:http://psychicreadingswithdeb.com 作者:袁振坤 溫遇華 人氣: 發(fā)表時(shí)間:2011年10月10日
隨著(zhù)IC及其終端設備的技術(shù)的成熟,企業(yè)采用IC卡進(jìn)行輔助運營(yíng)管理的成本降低,因此,IC卡的使用逐步由這些規模較大的企業(yè)或機構,向一些規模較小、運營(yíng)比較分散的連鎖機構發(fā)散。由于連鎖經(jīng)營(yíng)機構經(jīng)營(yíng)方式和規模等方面的制約,其卡務(wù)管理系統,不適合用傳統的C/S 結構進(jìn)行開(kāi)發(fā)。
1.引言
傳統上,由于成本的原因,IC卡一般都是用于規模較大的企業(yè)或部門(mén),例如用于學(xué)校作為結算工具的“一卡通”,用于公司作為考勤的考勤卡,等等。因此,卡務(wù)管理系統——其功能包括卡片發(fā)行、充值、掛失等,其客戶(hù)機數目較少、相對固定、相對集中,一般采用的是C/S 結構進(jìn)行開(kāi)發(fā)。
但隨著(zhù)IC 及其終端設備的技術(shù)的成熟,企業(yè)采用IC卡進(jìn)行輔助運營(yíng)管理的成本降低,因此,IC卡的使用逐步由一些比較大的企業(yè)或機構,向一些規模較小、運營(yíng)比較分散的連鎖機構發(fā)散。由于連鎖經(jīng)營(yíng)機構分店數目較多、規模較小小、經(jīng)營(yíng)地域分散等特點(diǎn),采用傳統的C/S 結構的卡務(wù)管理系統,帶來(lái)大量的系統維護、擴充、使用上的成本,不利于IC卡與連鎖經(jīng)營(yíng)機構的有效融合。因此,本文提出,采用B/S 結構,進(jìn)行該卡務(wù)管理系統的開(kāi)發(fā)。B/S 結構的卡務(wù)管理系統的開(kāi)發(fā),與C/S 結構不同。由于B/S 結構的系統其客戶(hù)機只有通用的瀏覽器,因此本文提出采用OCX 嵌入網(wǎng)頁(yè)的方法,提供瀏覽器操作讀卡器等硬件設備的接口;由于B/S 結構的系統服務(wù)器負擔較重的問(wèn)題,本文提出采用數據庫分裂表設計、瀏覽器頁(yè)面請求均衡設計等方法,來(lái)盡可能的減輕服務(wù)器負擔、降低系統對服務(wù)器性能的要求;由于B/S 面對廣域網(wǎng),本文提出采用信息加密的方法,保證系統帳號等信息的安全性。
2. 連鎖經(jīng)營(yíng)機構的卡務(wù)管理系統
2.1 連鎖經(jīng)營(yíng)卡務(wù)管理系統的提出
所謂連鎖經(jīng)營(yíng),是指在流通領(lǐng)域中,若干同業(yè)商店以統一的店名、統一的標志、統一的經(jīng)營(yíng)方式、統一的管理手段連接起來(lái),共同進(jìn)貨、分散銷(xiāo)售,共享規模效益的一種現代組織形式和經(jīng)營(yíng)方式,已成為我國零售業(yè)、餐飲業(yè)和服務(wù)業(yè)普遍應用的經(jīng)營(yíng)方式和組織形式,并加快向汽車(chē)、醫藥、家居建材、加油站等多業(yè)種滲透,顯示出廠(chǎng)強大的生命力和發(fā)展潛力。目前來(lái)說(shuō),IC卡在連鎖經(jīng)營(yíng)中已經(jīng)得到了廣泛的應用,但是,它們更多的是作為一種“電子錢(qián)包”,消費者在刷卡消費過(guò)程中,產(chǎn)生的反應連鎖經(jīng)營(yíng)機構經(jīng)營(yíng)情況的信息,沒(méi)有得到利用。連鎖經(jīng)營(yíng)機構管理層對該機構經(jīng)營(yíng)活動(dòng)的管理和決策所需的信息,仍然是通過(guò)各分店傳統的紙質(zhì)報表方式獲得,信息反饋不及時(shí)、效率低。因此,為連鎖經(jīng)營(yíng)機構開(kāi)發(fā)一個(gè)卡務(wù)管理系統,收集由于消費者刷卡等行為產(chǎn)生的信息,并能進(jìn)行必要的統計分析,為決策層提供決策支持,取代傳統做法上人工、紙質(zhì)的方式,能提高機構的運行效率和決策的準確性。
連鎖經(jīng)營(yíng)機構的卡務(wù)管理系統,需要實(shí)現如下功能:[1]總公司管理層通過(guò)登陸進(jìn)入系統,通過(guò)選擇和輸入檢索條件,對會(huì )員信息、分店運營(yíng)信息、商品銷(xiāo)售信息等進(jìn)行檢索和統計等管理操作,為實(shí)行新的廣告策略、分店經(jīng)營(yíng)范圍優(yōu)化、制定商品進(jìn)銷(xiāo)計劃等提供決策支持;[2]分店通過(guò)通過(guò)登陸進(jìn)入系統,進(jìn)行新會(huì )員的開(kāi)通、會(huì )員的刷卡消費、會(huì )員卡的充值、會(huì )員卡的掛失、對本店運營(yíng)信息的檢索統計等操作。如圖1 所示。
2.2 B/S 機構的卡務(wù)管理系統的設計
由于連鎖經(jīng)營(yíng)機構對卡務(wù)管理系統的使用,分店與總公司使用頻率不同。分店很頻繁,而管理層對系統的使用頻率,遠遠要比分店小,所以為了盡可能的保證系統的健壯性,同時(shí)為了保證各分店對該卡務(wù)系統的使用,和總公司決策人員或管理人員對卡務(wù)系統的使用或管理相對獨立性,本文把整個(gè)卡務(wù)管理系統分為如下兩個(gè)分系統:僅對決策人員/管理人員開(kāi)放的管理中心系統,僅對分店開(kāi)放的分店系統。與傳統的卡務(wù)管理系統不同,由于連鎖經(jīng)營(yíng)機構具有分店規模小、經(jīng)營(yíng)地域分散、擴展較頻繁等特點(diǎn),所以,系統的開(kāi)發(fā)不能采用一般的C/S 軟件結構。用B/S 結構進(jìn)行該系統的開(kāi)發(fā),能很好的滿(mǎn)足連鎖經(jīng)營(yíng)機構擴展性的要求,而且由于其維護成本低、使用簡(jiǎn)單等特色,降低了系統的維護和使用費用,節約了成本。
在此類(lèi)連鎖經(jīng)營(yíng)中,分店是直接面對會(huì )員的窗口,直接與會(huì )員活動(dòng)打交道,還可以依據分店權限的不同,給會(huì )員提供不同的服務(wù),例如會(huì )員的刷卡消費、刷卡充值、以及新增會(huì )員等,這些信息就是該店的運營(yíng)情況信息。這些信息,通過(guò)分店對系統的使用,采集和匯總到系統的中心數據庫,為管理層的決策支持等行為,提供依據。分店對該系統的使用,至少應該提高兩個(gè)接口:一是提供對系統的手動(dòng)操作,例如:信息錄入、意外情況下對系統的處理的人機交互界面;二是提供讀卡設備等終端,連接到系統的接口。有些操作,例如會(huì )員卡充值,既需要讀卡器讀取卡號,有需要手動(dòng)輸入充值金額信息;
分店系統,通過(guò)如下方式,采集公司管理層所需的相關(guān)信息:一方面,在消費者直接刷卡消費活動(dòng)時(shí),系統自動(dòng)匯總到中心數據庫;另一方面,分店的手動(dòng)操作分店系統,實(shí)現信息的采集。
管理中心系統需要能對所有會(huì )員、分店的信息提供方便高效的管理,為公司決策層的決策、加強與會(huì )員的聯(lián)系互動(dòng),提供依據;因為分店對系統的使用,是通過(guò)中心系統授權的合法帳號進(jìn)行的,分店對會(huì )員提供的服務(wù),是由中心系統授權決定的,所以中心系統必須擁有嚴格的分店授權和管理機制;中心系統還必須能對系統采集到的信息提供必要的分析、匯總的決策支持手段,例如:按要求生成和打印各種報表、生成和打印特定的曲線(xiàn)或走勢圖等,取代傳統上手工做法,達到提高企業(yè)運行效率的目的。
2.3 B/S 結構卡務(wù)管理系統的幾個(gè)關(guān)鍵問(wèn)題
正如前文所述,要實(shí)現這種新的卡務(wù)管理系統,與傳統的C/S 架構不同之處,就是要解決/實(shí)現這樣三個(gè)問(wèn)題: 瀏覽器實(shí)現對讀卡器等終端設備的操作;盡可能的減輕服務(wù)器的負擔,增加系統的可靠性;如何保證系統的安全性。
在下文,作者采用了三種方法,以期能對B/S 架構系統可能面臨的,上文所述的三個(gè)方面的問(wèn)題,作出盡可能的解決/改善。
2.3.1 用OCX 提供瀏覽器與終端之間的接口
我們知道,B/S 架構的軟件,它沒(méi)有專(zhuān)門(mén)的“客戶(hù)端”軟件,只有一個(gè)通用的瀏覽器,例如:IE。瀏覽器只是一個(gè)瀏覽工具,本身并不能對讀卡器等終端設備進(jìn)行操作,因此,我們必須采取其他方式,來(lái)解決這一問(wèn)題,我們采用的是通過(guò)開(kāi)發(fā)相應的OCX 控件,嵌入網(wǎng)頁(yè),提供瀏覽器與終端設備之間的接口,這樣,在沒(méi)有專(zhuān)門(mén)客戶(hù)端軟件的情況下,僅僅通過(guò)使用瀏覽器,也能實(shí)現對終端設備的讀/寫(xiě)等操作。每個(gè)OCX 控件都有一個(gè)唯一的ID, 在網(wǎng)頁(yè)中,可以可以通過(guò)Javascript 腳本語(yǔ)言,把OCX 控件潛入網(wǎng)頁(yè)[1]。示例如下:
OBJ = document.getElementById("OcxID");
OBJ.Function(parameter);
2.3.2 海量數據表的分裂表設計
用戶(hù)對數據庫最頻繁的操作是數據查詢(xún)。為了提高數據檢索的能力,數據庫引入了索引機制。按照一種最頻繁的訪(fǎng)問(wèn)習慣在某列建立簇索引,能極大地提高數據庫的訪(fǎng)問(wèn)效率[2]。然而,索引雖然能提高數據庫表的查詢(xún)性能,但影響了數據庫表的更新,所以對那些更新頻繁的表,不適合建立索引。同時(shí),對一個(gè)海量數據表里數據的訪(fǎng)問(wèn),不是均等的,人們常常對某個(gè)范圍內的數據更感興趣一些?;谏衔膬牲c(diǎn)原因,有研究者提出,按照一定原則對海量數據表進(jìn)行分表設計,能有效地減少數據查詢(xún)的時(shí)間。
已有研究證明,一個(gè)分裂成n 個(gè)子表的分裂表設計,當查詢(xún)無(wú)分組統計(即group)時(shí),分裂表設計的查詢(xún)時(shí)間,最佳情況可以達到分裂表之前的1/n,最差情況約與分裂前相當;當查詢(xún)有分組統計時(shí),最佳查詢(xún)時(shí)間為分裂表之前的1/n2,最差時(shí)間與分裂表之前相當[3]。那么如何確定該分裂表的原則呢?參考建立簇索引時(shí),一條重要原則就是:簇索引要建在最常被用來(lái)作為查詢(xún)條件的列,因此本文提出這樣的“分列表”設計的原則:不考慮約束因素,假設大表能建簇索引。那么,“簇索引”列,就是進(jìn)行分裂表的“分表列”。以該列進(jìn)行分裂表的查詢(xún)效率提高,類(lèi)似于索引對查詢(xún)效率的提高,取決于對該表進(jìn)行查詢(xún)時(shí),該列作為查詢(xún)條件的頻率。頻率越高,效率提升越多。
2.3.3 客戶(hù)端數據請求的優(yōu)化
除了上文所說(shuō)的,由于單次查詢(xún)數據庫時(shí)間過(guò)長(cháng),增加服務(wù)器負擔外,還有一種情況,也增加了服務(wù)器負擔,那就是“客戶(hù)端”對服務(wù)器端的頻繁數據請求。這種情況可能經(jīng)常發(fā)生,例如:在百度輸入關(guān)鍵字進(jìn)行檢索,百度并不會(huì )一次把所有頁(yè)都返回給瀏覽器,而是返回搜索結果的第一頁(yè),當人們對后續的某頁(yè)感興趣時(shí),瀏覽器再次向服務(wù)器提交請求,由服務(wù)器返回該頁(yè)信息。每點(diǎn)擊一次后續頁(yè)的連接頁(yè)碼,就需要對服務(wù)器提交一次頁(yè)面請求,這樣,就造成了對服務(wù)器甚至數據庫的頻繁訪(fǎng)問(wèn)。
我們注意到,通常我們獲取到的檢索結果往往比較多,而人們并不會(huì )每個(gè)結果都去一一察看,人們總是看有限幾頁(yè)后,就失去了繼續看下去的興趣[4]。因此我們設計一個(gè)合適的P,瀏覽器每一次向服務(wù)器提交頁(yè)面請求時(shí),服務(wù)器不是返回一頁(yè),而是返回P 頁(yè)。在接下來(lái)的P-1 頁(yè)請求中,瀏覽器直接使用已儲存在緩存中的結果,而不需要再向服務(wù)器請求,如圖3。這樣,把訪(fǎng)問(wèn)服務(wù)器的頻率最好情況下,可以降低到原來(lái)的1/P。
作者通過(guò)調查發(fā)現,75%以上的用戶(hù),興趣范圍在3 頁(yè)以?xún)?,這說(shuō)明,盡管檢索獲得了大量的數據,大部分情況下,人們只對前3 頁(yè)感興趣??紤]到每個(gè)結果網(wǎng)頁(yè)超文本的大小,以及目前的網(wǎng)絡(luò )帶寬,一次訪(fǎng)問(wèn),取合適的冗余數據(例如3 頁(yè)),是可行的。
2.3.4 系統安全性設計
加密技術(shù)是網(wǎng)絡(luò )安全的核心[5]。由于本系統用B/S 開(kāi)發(fā),運行在廣域網(wǎng)上,因此必須對系統的安全性和關(guān)鍵信息的保密性進(jìn)行考慮。對于一個(gè)運行在廣域網(wǎng)上,但是僅對特定用戶(hù)開(kāi)發(fā)的系統來(lái)說(shuō),目前最主要的準入手段就是帳號,通過(guò)建立嚴密的帳號和權限管理機制,來(lái)實(shí)現系統對特定用戶(hù)的、分層次的開(kāi)放。
用戶(hù)口令的保密性,是保證系統安全性的基本。然而,通過(guò)網(wǎng)絡(luò )監聽(tīng)、種植木馬病毒等手段,使口令的安全性受到嚴重的威脅??诹钤跒g覽器端提交到服務(wù)器端進(jìn)行驗證的過(guò)程中,可能被竊取。因此,我們需要對密碼進(jìn)行加密,再進(jìn)行傳輸。目前來(lái)說(shuō),MD5 是一種較好的加密算法,對口令的加密足夠了。針對加密對口令的保護,出現了木馬病毒,它不需要監聽(tīng)數據報,從而獲取口令信息,而是通過(guò)感染目標客戶(hù)端,用戶(hù)進(jìn)入登陸界面,進(jìn)行登陸時(shí),記錄用戶(hù)的鍵盤(pán)動(dòng)作。所以,可以通過(guò)設計動(dòng)態(tài)軟鍵盤(pán)的方式,進(jìn)行有效的預防。
3.實(shí)現和應用
本文針對連鎖經(jīng)營(yíng)卡務(wù)管理系統所提出的結構和設計,已經(jīng)成功的應用于一個(gè)連鎖經(jīng)營(yíng)機構的卡務(wù)管理系統的開(kāi)發(fā)和實(shí)踐中,該連鎖經(jīng)營(yíng)機構下設分店數目為20 個(gè)。在該系統中,需要維護一個(gè)消費流水表,數目每天2 萬(wàn)左右,分列表的方式采用的是按月分列表,由于流水更新主要在當前月,往月更新極少,所以在往月建立索引,當前月不建任何索引;在系統中,數據訪(fǎng)問(wèn)均衡設計里的P 取了3;加密算法采用的MD5。系統運行穩定,用戶(hù)反應良好。
4.結論
IC卡在連鎖經(jīng)營(yíng)中得到越來(lái)越廣泛的應用,開(kāi)發(fā)一個(gè)適合于連鎖經(jīng)營(yíng)模式的卡務(wù)管理系統,很有意義。本文針對連鎖經(jīng)營(yíng)的特點(diǎn),提出采用B/S 結構,進(jìn)行該系統的開(kāi)發(fā),并針對系統中可能出現的幾個(gè)問(wèn)題,進(jìn)行了探討,提出了解決或改善的辦法。并通過(guò)實(shí)際的系統開(kāi)發(fā)和運行,得到了驗證。
參考文獻
[1] 孫銳,苗放。ActiveX 與服務(wù)器端對象級交互[J]。電腦編程技巧與維護,2008,第1 期
[2] 宗薇,董占球。聚簇索引在數據庫查詢(xún)中的重要作用[J].微機發(fā)展,2000,(5):70-73
[3] 尚展壘,陳慧,宋于偉。一種改進(jìn)的查詢(xún)優(yōu)化技術(shù)——分裂大表[J].鄭州輕工業(yè)學(xué)院學(xué)報(自然科學(xué)版),2002,(9):61-63
[4] 科學(xué)信息離散分布規律的研究——從文獻單元到內容單元的實(shí)證分析(Ⅵ):內容單元的齊夫分布[J].情報學(xué)報,1999,6
[5] 蔡勉,衛宏儒。信息系統安全理論與技術(shù)。北京工業(yè)大學(xué)出版社
作者簡(jiǎn)介:南開(kāi)大學(xué)信息技術(shù)科學(xué)學(xué)院 袁振坤
天津市南開(kāi)太陽(yáng)高技術(shù)有限公司 溫遇華