黃美璇
(黎明職業大學信息與電子工程學院,福建泉州362000)
微信是騰訊推出的一款跨平臺的免費即時通訊應用(APP)。[1]微信公眾平臺是基于微信的功能模塊。個人或者企業都可申請一個公眾賬號群發推送、自動回復以及一對一實現和特定群體的信息交流。[2]微信銀行是銀行基于微信公眾平臺向微信用戶提供各類銀行服務。目前,多數銀行一般采用瀑布模型開發微信銀行應用系統,這種方法導致每當微信發布新的接口API時,系統就需要進行大量的改造或者重構。針對此問題,本文提出一種模塊化的分層設計方法,運用UML建模技術構建一個系統穩定、擴展性能好的微信銀行應用系統,該系統能在微信公眾平臺接口發生變化時,不調整或者簡單調整即可使用。
瀑布模型將系統開發過程嚴格規定為固定次序聯接的若干階段工作。該模型是一種理想化的線性模型,適用于需求明確且很少變化的系統開發。[3]采用瀑布模型開發微信銀行應用系統,當微信公眾平臺接口發生變化時,微信銀行應用系統就需要進行大量改造或者重構,造成開發周期過長和開發資源浪費。顯然采用瀑布模型開發微信銀行應用系統無法克服接口變化引發的問題。
通過分析銀行的業務特點及銀行客戶的需求,確定微信銀行應用系統的業務功能包括查詢類業務、金融類業務和營銷類業務三大功能。其中查詢類業務功能包括產品和網點信息查詢、優惠活動查詢等常見問題的查詢功能;金融類業務功能包括賬戶綁定、匯款繳費、銀行卡掛失、信用卡還款、服務預約、微客服等功能;營銷類業務功能包括營銷廣告推送、活動推廣等功能。系統用例設計如圖1所示。

圖1 微信銀行應用系統用例圖
設計該系統的基本思想是:將微信銀行應用系統進行分層設計,并將功能進行合理劃分、封裝成不同模塊。各模塊、各層之間采用XML定義接口,利用接口的自描述特征保證其松耦合,使得微信銀行應用系統穩定和易于擴展。系統總體架構如圖2所示。

圖2 微信銀行應用系統架構圖
2.2.1 內部接口設計
鑒于XML語言具有很強的可擴展性、可重用性、自解釋性以及在HTML頁面中嵌入可大大擴展HTML在網上的應用范圍等優勢。[4]微信銀行應用系統各模塊、各層之間均使用XML+HTTP的方式進行數據交互。為了保證內部接口的穩定性和可擴展性,內部接口設計采用XML自描述語言。利用這類語言定義接口可使接口獨立于應用系統,降低系統內各個程序之間的耦合,從而實現系統的穩定和可擴展性。
2.2.2 外部接口設計
根據騰訊公司已公布的接口進行設計,接口主要包括:基礎接口、發送消息接口、自定義菜單接口、賬號管理接口、數據統計接口、微信智能接口、多客服接口。[5]
2.2.3 可擴展性設計
鑒于微信銀行未來交易的快速增長,除了內部接口采用自描述語言XML設計,實現系統的擴展外,還可采用集群技術來擴展系統性能。即通過增加服務器或者虛擬服務器,同時在服務器之間接入負載均衡器或者安裝負載均衡軟件達到負載分流實現擴展功能,并通過會話復制技術實現各服務器節點會話數據同步。[6]
接入模塊主要對來自微信服務器的HTTP請求進行簽名驗證,驗證url是否有效,并把處理結果返回給微信服務器。程序片段如下:




一般微信用戶通過輸入關鍵字進行查詢,微信服務器會立即呈現相應回答,但是無論建立多大的詞庫,有時還是不能滿足微信用戶的查詢,這時候系統就應該自動切換到人工服務。微信5.0以后開放了多客服的接口,使得系統轉人工變成可能。[7]實現多客服功能的程序片段如下:

客服管理模塊實現了:通過獲取微信用戶發過來的文本消息,如果滿足if里面的條件,會自動做出回答;如果不滿足,就會向微信服務器返回一條消息,微信服務器自動把該消息轉到多客服,這時候銀行客服人員只需要在電腦端安裝一個多客服客戶端,或者微信客戶端,即可接收消息,對用戶進行一對一的溝通。
本文針對傳統的瀑布模型開發微信銀行存在的問題,提出了一種模塊化的分層設計方法。將微信銀行應用系統進行分層設計,并將功能進行合理劃分、封裝成不同模塊。各模塊、各層之間采用XML定義接口,利用接口的自描述特征保證其松耦合,構建一個系統穩定、擴展性能好的微信銀行應用系統。具體方案實施及將關鍵技術整合實現一個微信銀行應用系統是該研究工作的下一步重點。
[1]林澤斐.基于微信公眾平臺API的移動OPAC設計與實現[J].農業圖書情報學刊,2015,27(2):44-46.
[2]甘宇健,毛靈芝,向龍蓮.銀行智能微信公眾平臺設計與實現[J].軟件導,.2014,13(2):6-8.
[3]閆帥,許鵬翔.基于瀑布模型與敏捷開發相結合的項目管理方法探討[J].電子技術與軟件工程,2013(18):67.
[4]徐進強.XML語言在Web開發中的應用研究[J].軟件導刊,2013,12(12):33-35.
[5]騰訊.微信公眾平臺開發者文檔{EB/OL].{2014-3-26}.http://mp.weixin.qq.com/wiki/home/index.html.
[6]甘榮石.基于微信平臺的移動銀行應用架構研究[D].廣州:華南理工大學,2013.
[7]微信開發.微時代微信咨詢網[EB/OL].{2014-6-11}.http://www.wechatstyle.com/weixinkaifa/,