吳天琪 徐法強
摘要:文章主要介紹了利用UNIX下的多進程軟件設計、中間件和數字簽名技術來實現第三方代收電費平臺的設計與應用。利用第三方代收平臺進行電費收取,在充分利用社會資源的同時,又要確保通信數據的安全性和可靠性,以及電費資金的安全和優質服務管理。
關鍵詞:多進程;中間件;數字簽名;資金安全
中圖分類號:TM769文獻標識碼:A 文章編號:1674-1145(2009)17-0197-03
一、引言
近年來,成都城市發展的步伐不斷加快,居民戶表客戶數量劇增,電力系統面對的收費壓力極大。成都由于地處內地,消費觀念還跟不上沿海發達地區,客戶還習慣用現金消費,居民繳費的客戶群年齡普遍偏大,以中老年為主,接受電話銀行、網上銀行、委托代扣等新生事物慢,但時間較為充裕,活動范圍不大,主要局限在居住的社區附近,對就近繳納電費有強烈的需求。為了切實解決“繳費難”的問題,我們先后采取了多項措施:完善銀行代收電費系統;改造供電營業廳,以擴大收費容量;利用外租網點、社區服務站、城郊接合部等新增了自主收費網點;大力推廣以委托代扣為主的電費直通車業務,加強與銀行的溝通、協調。雖然采取了大量措施,“繳費難”的矛盾得到了一定程度的緩解,但問題仍然普遍存在。
二、電子超市簡介
電子超市是一種建立在居民社區有人值守的數字化社區電力服務平臺,以方便居民客戶繳納電費為主,并逐步拓展到水、氣、電話、手機等多種費用的收取業務,使客戶可在該處像超市一樣一次性繳清多項費用。該種收費方式具備以下特點:專業收費、貼近社區市民、現金收費、營業時間長、一站式服務等。
由于成都市大多數老百姓習慣于現金繳費方式,銀行抵觸的也主要是現金繳費,電子超市均以現金方式代收電費,解決“繳費難”問題恰好切中要點。該平臺除代收電費外,還代收其他相關能源和通信費用,能滿足老百姓一站交清相關費用的需求。(如圖1)

三、交易中間件技術簡介
中間件(middleware)是基礎軟件的一大類,屬于可復用軟件的范疇。中間件處于操作系統軟件與用戶的應用軟件的中間。中間件在操作系統、網絡和數據庫之上,應用軟件的下層,總的作用是為處于自己上層的應用軟件提供運行與開發的環境,幫助用戶靈活、高效地開發和集成復雜的應用軟件。中間件是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源,中間件位于客戶機服務器的操作系統之上,管理計算資源和網絡通信。
企業級的交易中間平臺是在分布、異構環境下提供保證交易完整性和數據完整性的一種環境平臺。在分布式事務處理系統中要處理大量事務,常常在系統中要同時做上萬筆事務。在聯機事務處理系統(OLTP)中,每筆事務常常要多臺服務器上的程序順序地協調完成,一旦中間發生某種故障時,不但要完成恢復工作,而且要自動切換系統,達到系統永不停機,實現高可靠性運行;同時要使大量事務在多臺應用服務器能實時并發運行,并進行負載平衡地調度,實現昂貴的可靠性機和大型計算機系統同等的功能,為了實現這個目標,要求系統具有監視和調度整個系統的功能。根據X/OPEN的DTP(Distributed Transaction Processing)模型規定,一個分布式交易處理系統應由事務處理、通信處理以及資源管理三部分組成。
四、電子超市代收電費平臺的方案設計
本平臺嚴格遵循J2EE框架規范,同時使用了其SERVLET/JNDI等規范,我們將各種規范應用于實際開發,同時采用一些比較成熟的開源框架,如STRUTS等技術,快速建立滿足產品需求的應用系統。J2EE使用多平臺的分布式應用模型,應用邏輯按照功能劃分為組件,各個應用組件根據他們所在的層次分布在不同的應用服務器上。J2EE的多層企業級應用模型將兩層化模型中的不同層面切分成許多層,一個多層化應用能夠為不同的每種服務提供一個獨立的層次,以下是J2EE典型的層次結構:(1)運行在客戶端上的客戶端組件(一般是用瀏覽器作為載體);(2)運行在J2EE服務器上的WEB容器;(3)運行在J2EE服務器上的EJB容器。
電費代收平臺的整體邏輯設計。(如圖2)

電費代收平臺分為功能子系統、數據庫子系統和基礎子系統三部分,代收機構前置機通過交易中間件與收費接口軟件通信,利用不同的技術手段實現收費接口軟件不同的功能要求。這種結構的設計充分體現了模塊化、松耦合的設計原則。通過基礎支撐服務子系統,保證了每個子系統之間的最大的獨立性。在系統內部,通過交易中間件平臺進行系統消息的交互,實現了子系統之間松耦合的聯系。
基礎支撐子系統處理收費接口軟件與業務無關的邏輯。基礎支撐軟件接受到交易處理的請求后,將提取相關信息進行安全論證以及日志記錄,并分析請求頭信息,根據請求信息,動態的裝載協議并將該交易交給業務協議包去處理,將處理結果返回給代收機構前置機。
功能子系統負責數據通信,安全論證,一般交易日志的紀錄,交費消息,沖正消息等收費日志的記錄等,交易協議的裝載以及路由、收費、查費、打印發票等業務相關交易等系統基本功能。
數據庫子系統實現了對交易日志、收費日志、代收客戶端訪問權限等基礎數據的定義、存儲和管理、提供了對大規模并行數據的可靠寫入和快速查詢、收費交易協議具體實現訪問、實現收費業務功能。(系統功能架構如圖3)

五、電子超市代收電費平臺方案實現
電子超市收費平臺采用SCO UNIX下的C開發,采用交易中間件技術,應用多進程SOCKET服務技術處理并發用戶的請求,交易接口采用基于TCP/IP協議短連接方式的SOCKET通信架構。
(一)企業級的交易中間件平臺的應用
針對收費平臺系統的特點,我們采用東方通中間件進行系統開發。該交易中間件提供了高效的并發處理能力,即保證日均處理業務量、峰值處理業務量能達到業務系統的要求。交易中間件采用高效的通信處理技術,如鏈路復用、滑動窗口、數據包壓縮、傳輸優先級等來充分利用網絡帶寬,保證傳輸效率;同時交易中間件利用服務器并發訪問控制技術,并行處理和管理多個服務請求,有效地保障了業務系統的處理效率。
交易中間件通過監控和管理系統中的每筆交易,根據一定的交易管理方法,解決因硬件故障、網絡故障、人為故障等原因帶來的交易完整性問題,從而將業務系統的錯誤率降到最低限度。
交易中間件可以監控當前系統運行狀態,包括客戶數、系統提供的服務數、每一服務被調用次數等。管理員可以啟動或停止其中的任一服務而不影響其他服務,系統本身也會根據運行情況進行動態平衡。多機群集運行時,若某一主機出現故障,交易中間件能自動將交易請求送到備機上運行。通過交易中間件技術,簡化了系統的層次結構和處理過程,提供了對系統運行情況的實時監控,從而使系統運行故障率大大降低,提高了系統的可管理性,減少了系統的總體投入。
實現方式如下:
/******************************************************************
** 電子超市收費
** 收費查詢
******************************************************************/
INT32 BankElec_GetOweFee(void *source,UINT32 sourcesize,void *result,UINT32 *resultsize)
{
CS_DATAFMT target_format,t_format;
┊
return SYSTEMSUCCEED;}
/******************************************************************
** 電子超市收費
** 收費確認
******************************************************************/
INT32 BankElec_DoCharge(void *source,UINT32 sourcesize,void *result,UINT32 *resultsize)
{ CS_DATAFMT target_format,t_format;
┊
return SYSTEMSUCCEED;}
(二)收費安全體系建設
針對電子超市收費數據安全要求,我們提出新的安全通信規約和數字簽名等安全措施。在電業局內部建設一個企業內部數字證書認證中心(CA中心),作為權威認證機構,由此CA發放證書給各收費終端、電業局代收系統服務器以及代收平臺服務器,以保證各個交易實體之間身份的真實性,可靠性和交易信息的完整性和不可抵賴性。數字簽名技術使用RSA算法實現數字簽名功能,在RSA算法中,私鑰有兩部分組成,一個是公鑰,一個是私鑰,用戶使用私鑰對要交易的數據進行加密,也就是進行簽名,交易對方可以使用公鑰解密交易數據,但是對方無法修改交易數據,這樣保證了交易數據的完整、不可更改、不可抵賴。在圖4中,由根CA直接簽發終端實體證書,發放給各個客戶端和服務器使用,對各個繳費客戶端采用強身份認證機制,解決傳統靜態口令的安全隱患,確保進入系統的客戶端身份的唯一性和真實性,以防他人非法獲取繳費點賬號和密碼信息而進入代收平臺進行非法操作。

采用證書簽到時,需要經過兩次驗證,分為兩個交易。
一次驗證時由客戶端生成隨機挑戰數據傳給服務器,服務器根據該挑戰數據生成驗證信息回傳給客戶端,客戶端驗證服務器的有效性。
二次驗證時,由客戶端驗證服務器通過后,從其驗證信息中取得隨機挑戰數據,生成客戶端的驗證信息,并傳給服務器,由服務器驗證客戶端的有效性。

收費平臺采用鏈路級的加密,實現服務器和客戶端之間的通信安全保證。采用了對稱密鑰技術對服務端和客戶端之間傳輸的數據信息進行加密處理,在客戶端和服務端使用同一密鑰進行信息的加解密處理。
客戶端發送簽到交易消息請求,收費平臺提取其中的論證信息(用戶名、密碼等),到收費平臺安全解決機制中進行相關驗證,驗證通過后收費平臺產生一個臨時的令牌,并建立相應的契約,發送給客戶端。客戶端每次交易時需要攜帶該令牌,收費平臺消息監控器將監控每個交易中的相應令牌信息,進行驗證,驗證通過后既進行相應的交易處理,保證每筆交易的安全性。

(三)交易接口和數據包
交易接口為TCP短連接方式,使用TCP/IP協議,數據包格式采用TCP數據包頭+應用數據包體。
TCP/IP數據包頭
struct CtlMsg {
unsigned char XX;
/*是否還有更多的包? */
unsigned char XX;
/*包類型*/
…….
/*一類的結束*/
unsigned char XX; /*保留位*/
XX XX;
/*包序號 */
unsigned short XX;
/*包實際傳的長度*/
…….
/*發起請求的進程號,每個請求是唯一的,網絡字節序*/
};/*包控制信息*/
Struct XX {
char XX /*交易類型*/
char XX /*交易目的地*/
……. /*交易發起地*/
};/*包頭部信息*/
struct XX {
struct CtlMsg XX;
struct Header XX;
……. /*包傳輸內容*/
};/*包結構*/
(四)資金安全管理
針對電子超市代收平臺,我們根據不同電價類別通過實時累計其電費收費總金額并與代收機構銀行賬戶資金進行比對,當其賬戶資金量低于系統保證值時自動報警,并提示代收機構存入足夠金額的電費保證金至電業局資
金賬戶,以保證電費資金的安全性。
六、結語
本平臺的建設應用,極大地緩解了電費收費的壓力,廣大用電客戶對此給予了廣泛的好評和認可,使廣大居民客戶可以就近繳費,可以在下班后繳費,可以一次性繳納多種費用,尤其適應普通百姓繳納現金的消費習慣,受到在廣大老百姓的普遍歡迎,使百姓體驗到黨和政府建設和諧社會的成果,目前電子超市已經成為老百姓現金繳費的主要渠道之一。通過開發和應用該系統能有效提高營銷系統的成熟度,推動系統的實用化解決各銀行代收居民電費有時間限制的問題。緩解供電營業廳的收費壓力,節省客戶寶貴時間,免去了排隊的煩惱;極大地提升了企業的服務水平。
參考文獻
[1]李華飚.Java中間件技術及其應用開發,2007.
[2]徐春金.Tuxedo中間件開發與配置,2003.
[3]李志成.商業銀行中間業務.2008.
[4]Dale Rogerson 著,楊秀章譯.COM技術內幕.
[5]全國電力二次系統安全防護專家組.證書格式及存儲介質要求[R].國家電力調度通信中心,2004.
[6]國家電網信息中心.國家電網公司應用軟件通用安全要求.2006.
[7]潘愛民著.COM原理應用與發展.
[8]Stanley B.lippman著,候捷譯.深度探索COM對象模型.
作者簡介:吳天琪(1974- ),女(回族),四川成都人,成都電業局專責,助理工程師,研究方向:電價與電費管理;徐法強(1977- ),男,山東聊城人,成都電業局專責,工程師,研究方向:計算機應用。