吳天琪 徐法強
摘要:文章主要介紹了利用UNIX下的多進(jìn)程軟件設(shè)計、中間件和數(shù)字簽名技術(shù)來實現(xiàn)第三方代收電費平臺的設(shè)計與應(yīng)用。利用第三方代收平臺進(jìn)行電費收取,在充分利用社會資源的同時,又要確保通信數(shù)據(jù)的安全性和可靠性,以及電費資金的安全和優(yōu)質(zhì)服務(wù)管理。
關(guān)鍵詞:多進(jìn)程;中間件;數(shù)字簽名;資金安全
中圖分類號:TM769文獻(xiàn)標(biāo)識碼:A 文章編號:1674-1145(2009)17-0197-03
一、引言
近年來,成都城市發(fā)展的步伐不斷加快,居民戶表客戶數(shù)量劇增,電力系統(tǒng)面對的收費壓力極大。成都由于地處內(nèi)地,消費觀念還跟不上沿海發(fā)達(dá)地區(qū),客戶還習(xí)慣用現(xiàn)金消費,居民繳費的客戶群年齡普遍偏大,以中老年為主,接受電話銀行、網(wǎng)上銀行、委托代扣等新生事物慢,但時間較為充裕,活動范圍不大,主要局限在居住的社區(qū)附近,對就近繳納電費有強烈的需求。為了切實解決“繳費難”的問題,我們先后采取了多項措施:完善銀行代收電費系統(tǒng);改造供電營業(yè)廳,以擴大收費容量;利用外租網(wǎng)點、社區(qū)服務(wù)站、城郊接合部等新增了自主收費網(wǎng)點;大力推廣以委托代扣為主的電費直通車業(yè)務(wù),加強與銀行的溝通、協(xié)調(diào)。雖然采取了大量措施,“繳費難”的矛盾得到了一定程度的緩解,但問題仍然普遍存在。
二、電子超市簡介
電子超市是一種建立在居民社區(qū)有人值守的數(shù)字化社區(qū)電力服務(wù)平臺,以方便居民客戶繳納電費為主,并逐步拓展到水、氣、電話、手機等多種費用的收取業(yè)務(wù),使客戶可在該處像超市一樣一次性繳清多項費用。該種收費方式具備以下特點:專業(yè)收費、貼近社區(qū)市民、現(xiàn)金收費、營業(yè)時間長、一站式服務(wù)等。
由于成都市大多數(shù)老百姓習(xí)慣于現(xiàn)金繳費方式,銀行抵觸的也主要是現(xiàn)金繳費,電子超市均以現(xiàn)金方式代收電費,解決“繳費難”問題恰好切中要點。該平臺除代收電費外,還代收其他相關(guān)能源和通信費用,能滿足老百姓一站交清相關(guān)費用的需求。(如圖1)
三、交易中間件技術(shù)簡介
中間件(middleware)是基礎(chǔ)軟件的一大類,屬于可復(fù)用軟件的范疇。中間件處于操作系統(tǒng)軟件與用戶的應(yīng)用軟件的中間。中間件在操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫之上,應(yīng)用軟件的下層,總的作用是為處于自己上層的應(yīng)用軟件提供運行與開發(fā)的環(huán)境,幫助用戶靈活、高效地開發(fā)和集成復(fù)雜的應(yīng)用軟件。中間件是一種獨立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源,中間件位于客戶機服務(wù)器的操作系統(tǒng)之上,管理計算資源和網(wǎng)絡(luò)通信。
企業(yè)級的交易中間平臺是在分布、異構(gòu)環(huán)境下提供保證交易完整性和數(shù)據(jù)完整性的一種環(huán)境平臺。在分布式事務(wù)處理系統(tǒng)中要處理大量事務(wù),常常在系統(tǒng)中要同時做上萬筆事務(wù)。在聯(lián)機事務(wù)處理系統(tǒng)(OLTP)中,每筆事務(wù)常常要多臺服務(wù)器上的程序順序地協(xié)調(diào)完成,一旦中間發(fā)生某種故障時,不但要完成恢復(fù)工作,而且要自動切換系統(tǒng),達(dá)到系統(tǒng)永不停機,實現(xiàn)高可靠性運行;同時要使大量事務(wù)在多臺應(yīng)用服務(wù)器能實時并發(fā)運行,并進(jìn)行負(fù)載平衡地調(diào)度,實現(xiàn)昂貴的可靠性機和大型計算機系統(tǒng)同等的功能,為了實現(xiàn)這個目標(biāo),要求系統(tǒng)具有監(jiān)視和調(diào)度整個系統(tǒng)的功能。根據(jù)X/OPEN的DTP(Distributed Transaction Processing)模型規(guī)定,一個分布式交易處理系統(tǒng)應(yīng)由事務(wù)處理、通信處理以及資源管理三部分組成。
四、電子超市代收電費平臺的方案設(shè)計
本平臺嚴(yán)格遵循J2EE框架規(guī)范,同時使用了其SERVLET/JNDI等規(guī)范,我們將各種規(guī)范應(yīng)用于實際開發(fā),同時采用一些比較成熟的開源框架,如STRUTS等技術(shù),快速建立滿足產(chǎn)品需求的應(yīng)用系統(tǒng)。J2EE使用多平臺的分布式應(yīng)用模型,應(yīng)用邏輯按照功能劃分為組件,各個應(yīng)用組件根據(jù)他們所在的層次分布在不同的應(yīng)用服務(wù)器上。J2EE的多層企業(yè)級應(yīng)用模型將兩層化模型中的不同層面切分成許多層,一個多層化應(yīng)用能夠為不同的每種服務(wù)提供一個獨立的層次,以下是J2EE典型的層次結(jié)構(gòu):(1)運行在客戶端上的客戶端組件(一般是用瀏覽器作為載體);(2)運行在J2EE服務(wù)器上的WEB容器;(3)運行在J2EE服務(wù)器上的EJB容器。
電費代收平臺的整體邏輯設(shè)計。(如圖2)
電費代收平臺分為功能子系統(tǒng)、數(shù)據(jù)庫子系統(tǒng)和基礎(chǔ)子系統(tǒng)三部分,代收機構(gòu)前置機通過交易中間件與收費接口軟件通信,利用不同的技術(shù)手段實現(xiàn)收費接口軟件不同的功能要求。這種結(jié)構(gòu)的設(shè)計充分體現(xiàn)了模塊化、松耦合的設(shè)計原則。通過基礎(chǔ)支撐服務(wù)子系統(tǒng),保證了每個子系統(tǒng)之間的最大的獨立性。在系統(tǒng)內(nèi)部,通過交易中間件平臺進(jìn)行系統(tǒng)消息的交互,實現(xiàn)了子系統(tǒng)之間松耦合的聯(lián)系。
基礎(chǔ)支撐子系統(tǒng)處理收費接口軟件與業(yè)務(wù)無關(guān)的邏輯?;A(chǔ)支撐軟件接受到交易處理的請求后,將提取相關(guān)信息進(jìn)行安全論證以及日志記錄,并分析請求頭信息,根據(jù)請求信息,動態(tài)的裝載協(xié)議并將該交易交給業(yè)務(wù)協(xié)議包去處理,將處理結(jié)果返回給代收機構(gòu)前置機。
功能子系統(tǒng)負(fù)責(zé)數(shù)據(jù)通信,安全論證,一般交易日志的紀(jì)錄,交費消息,沖正消息等收費日志的記錄等,交易協(xié)議的裝載以及路由、收費、查費、打印發(fā)票等業(yè)務(wù)相關(guān)交易等系統(tǒng)基本功能。
數(shù)據(jù)庫子系統(tǒng)實現(xiàn)了對交易日志、收費日志、代收客戶端訪問權(quán)限等基礎(chǔ)數(shù)據(jù)的定義、存儲和管理、提供了對大規(guī)模并行數(shù)據(jù)的可靠寫入和快速查詢、收費交易協(xié)議具體實現(xiàn)訪問、實現(xiàn)收費業(yè)務(wù)功能。(系統(tǒng)功能架構(gòu)如圖3)
五、電子超市代收電費平臺方案實現(xiàn)
電子超市收費平臺采用SCO UNIX下的C開發(fā),采用交易中間件技術(shù),應(yīng)用多進(jìn)程SOCKET服務(wù)技術(shù)處理并發(fā)用戶的請求,交易接口采用基于TCP/IP協(xié)議短連接方式的SOCKET通信架構(gòu)。
(一)企業(yè)級的交易中間件平臺的應(yīng)用
針對收費平臺系統(tǒng)的特點,我們采用東方通中間件進(jìn)行系統(tǒng)開發(fā)。該交易中間件提供了高效的并發(fā)處理能力,即保證日均處理業(yè)務(wù)量、峰值處理業(yè)務(wù)量能達(dá)到業(yè)務(wù)系統(tǒng)的要求。交易中間件采用高效的通信處理技術(shù),如鏈路復(fù)用、滑動窗口、數(shù)據(jù)包壓縮、傳輸優(yōu)先級等來充分利用網(wǎng)絡(luò)帶寬,保證傳輸效率;同時交易中間件利用服務(wù)器并發(fā)訪問控制技術(shù),并行處理和管理多個服務(wù)請求,有效地保障了業(yè)務(wù)系統(tǒng)的處理效率。
交易中間件通過監(jiān)控和管理系統(tǒng)中的每筆交易,根據(jù)一定的交易管理方法,解決因硬件故障、網(wǎng)絡(luò)故障、人為故障等原因帶來的交易完整性問題,從而將業(yè)務(wù)系統(tǒng)的錯誤率降到最低限度。
交易中間件可以監(jiān)控當(dāng)前系統(tǒng)運行狀態(tài),包括客戶數(shù)、系統(tǒng)提供的服務(wù)數(shù)、每一服務(wù)被調(diào)用次數(shù)等。管理員可以啟動或停止其中的任一服務(wù)而不影響其他服務(wù),系統(tǒng)本身也會根據(jù)運行情況進(jìn)行動態(tài)平衡。多機群集運行時,若某一主機出現(xiàn)故障,交易中間件能自動將交易請求送到備機上運行。通過交易中間件技術(shù),簡化了系統(tǒng)的層次結(jié)構(gòu)和處理過程,提供了對系統(tǒng)運行情況的實時監(jiān)控,從而使系統(tǒng)運行故障率大大降低,提高了系統(tǒng)的可管理性,減少了系統(tǒng)的總體投入。
實現(xiàn)方式如下:
/******************************************************************
** 電子超市收費
** 收費查詢
******************************************************************/
INT32 BankElec_GetOweFee(void *source,UINT32 sourcesize,void *result,UINT32 *resultsize)
{
CS_DATAFMT target_format,t_format;
┊
return SYSTEMSUCCEED;}
/******************************************************************
** 電子超市收費
** 收費確認(rèn)
******************************************************************/
INT32 BankElec_DoCharge(void *source,UINT32 sourcesize,void *result,UINT32 *resultsize)
{ CS_DATAFMT target_format,t_format;
┊
return SYSTEMSUCCEED;}
(二)收費安全體系建設(shè)
針對電子超市收費數(shù)據(jù)安全要求,我們提出新的安全通信規(guī)約和數(shù)字簽名等安全措施。在電業(yè)局內(nèi)部建設(shè)一個企業(yè)內(nèi)部數(shù)字證書認(rèn)證中心(CA中心),作為權(quán)威認(rèn)證機構(gòu),由此CA發(fā)放證書給各收費終端、電業(yè)局代收系統(tǒng)服務(wù)器以及代收平臺服務(wù)器,以保證各個交易實體之間身份的真實性,可靠性和交易信息的完整性和不可抵賴性。數(shù)字簽名技術(shù)使用RSA算法實現(xiàn)數(shù)字簽名功能,在RSA算法中,私鑰有兩部分組成,一個是公鑰,一個是私鑰,用戶使用私鑰對要交易的數(shù)據(jù)進(jìn)行加密,也就是進(jìn)行簽名,交易對方可以使用公鑰解密交易數(shù)據(jù),但是對方無法修改交易數(shù)據(jù),這樣保證了交易數(shù)據(jù)的完整、不可更改、不可抵賴。在圖4中,由根CA直接簽發(fā)終端實體證書,發(fā)放給各個客戶端和服務(wù)器使用,對各個繳費客戶端采用強身份認(rèn)證機制,解決傳統(tǒng)靜態(tài)口令的安全隱患,確保進(jìn)入系統(tǒng)的客戶端身份的唯一性和真實性,以防他人非法獲取繳費點賬號和密碼信息而進(jìn)入代收平臺進(jìn)行非法操作。
采用證書簽到時,需要經(jīng)過兩次驗證,分為兩個交易。
一次驗證時由客戶端生成隨機挑戰(zhàn)數(shù)據(jù)傳給服務(wù)器,服務(wù)器根據(jù)該挑戰(zhàn)數(shù)據(jù)生成驗證信息回傳給客戶端,客戶端驗證服務(wù)器的有效性。
二次驗證時,由客戶端驗證服務(wù)器通過后,從其驗證信息中取得隨機挑戰(zhàn)數(shù)據(jù),生成客戶端的驗證信息,并傳給服務(wù)器,由服務(wù)器驗證客戶端的有效性。
收費平臺采用鏈路級的加密,實現(xiàn)服務(wù)器和客戶端之間的通信安全保證。采用了對稱密鑰技術(shù)對服務(wù)端和客戶端之間傳輸?shù)臄?shù)據(jù)信息進(jìn)行加密處理,在客戶端和服務(wù)端使用同一密鑰進(jìn)行信息的加解密處理。
客戶端發(fā)送簽到交易消息請求,收費平臺提取其中的論證信息(用戶名、密碼等),到收費平臺安全解決機制中進(jìn)行相關(guān)驗證,驗證通過后收費平臺產(chǎn)生一個臨時的令牌,并建立相應(yīng)的契約,發(fā)送給客戶端??蛻舳嗣看谓灰讜r需要攜帶該令牌,收費平臺消息監(jiān)控器將監(jiān)控每個交易中的相應(yīng)令牌信息,進(jìn)行驗證,驗證通過后既進(jìn)行相應(yīng)的交易處理,保證每筆交易的安全性。
(三)交易接口和數(shù)據(jù)包
交易接口為TCP短連接方式,使用TCP/IP協(xié)議,數(shù)據(jù)包格式采用TCP數(shù)據(jù)包頭+應(yīng)用數(shù)據(jù)包體。
TCP/IP數(shù)據(jù)包頭
struct CtlMsg {
unsigned char XX;
/*是否還有更多的包? */
unsigned char XX;
/*包類型*/
…….
/*一類的結(jié)束*/
unsigned char XX; /*保留位*/
XX XX;
/*包序號 */
unsigned short XX;
/*包實際傳的長度*/
…….
/*發(fā)起請求的進(jìn)程號,每個請求是唯一的,網(wǎng)絡(luò)字節(jié)序*/
};/*包控制信息*/
Struct XX {
char XX /*交易類型*/
char XX /*交易目的地*/
……. /*交易發(fā)起地*/
};/*包頭部信息*/
struct XX {
struct CtlMsg XX;
struct Header XX;
……. /*包傳輸內(nèi)容*/
};/*包結(jié)構(gòu)*/
(四)資金安全管理
針對電子超市代收平臺,我們根據(jù)不同電價類別通過實時累計其電費收費總金額并與代收機構(gòu)銀行賬戶資金進(jìn)行比對,當(dāng)其賬戶資金量低于系統(tǒng)保證值時自動報警,并提示代收機構(gòu)存入足夠金額的電費保證金至電業(yè)局資
金賬戶,以保證電費資金的安全性。
六、結(jié)語
本平臺的建設(shè)應(yīng)用,極大地緩解了電費收費的壓力,廣大用電客戶對此給予了廣泛的好評和認(rèn)可,使廣大居民客戶可以就近繳費,可以在下班后繳費,可以一次性繳納多種費用,尤其適應(yīng)普通百姓繳納現(xiàn)金的消費習(xí)慣,受到在廣大老百姓的普遍歡迎,使百姓體驗到黨和政府建設(shè)和諧社會的成果,目前電子超市已經(jīng)成為老百姓現(xiàn)金繳費的主要渠道之一。通過開發(fā)和應(yīng)用該系統(tǒng)能有效提高營銷系統(tǒng)的成熟度,推動系統(tǒng)的實用化解決各銀行代收居民電費有時間限制的問題。緩解供電營業(yè)廳的收費壓力,節(jié)省客戶寶貴時間,免去了排隊的煩惱;極大地提升了企業(yè)的服務(wù)水平。
參考文獻(xiàn)
[1]李華飚.Java中間件技術(shù)及其應(yīng)用開發(fā),2007.
[2]徐春金.Tuxedo中間件開發(fā)與配置,2003.
[3]李志成.商業(yè)銀行中間業(yè)務(wù).2008.
[4]Dale Rogerson 著,楊秀章譯.COM技術(shù)內(nèi)幕.
[5]全國電力二次系統(tǒng)安全防護(hù)專家組.證書格式及存儲介質(zhì)要求[R].國家電力調(diào)度通信中心,2004.
[6]國家電網(wǎng)信息中心.國家電網(wǎng)公司應(yīng)用軟件通用安全要求.2006.
[7]潘愛民著.COM原理應(yīng)用與發(fā)展.
[8]Stanley B.lippman著,候捷譯.深度探索COM對象模型.
作者簡介:吳天琪(1974- ),女(回族),四川成都人,成都電業(yè)局專責(zé),助理工程師,研究方向:電價與電費管理;徐法強(1977- ),男,山東聊城人,成都電業(yè)局專責(zé),工程師,研究方向:計算機應(yīng)用。