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