黃美璇
(黎明職業(yè)大學(xué)信息與電子工程學(xué)院,福建泉州362000)
微信是騰訊推出的一款跨平臺(tái)的免費(fèi)即時(shí)通訊應(yīng)用(APP)。[1]微信公眾平臺(tái)是基于微信的功能模塊。個(gè)人或者企業(yè)都可申請(qǐng)一個(gè)公眾賬號(hào)群發(fā)推送、自動(dòng)回復(fù)以及一對(duì)一實(shí)現(xiàn)和特定群體的信息交流。[2]微信銀行是銀行基于微信公眾平臺(tái)向微信用戶提供各類(lèi)銀行服務(wù)。目前,多數(shù)銀行一般采用瀑布模型開(kāi)發(fā)微信銀行應(yīng)用系統(tǒng),這種方法導(dǎo)致每當(dāng)微信發(fā)布新的接口API時(shí),系統(tǒng)就需要進(jìn)行大量的改造或者重構(gòu)。針對(duì)此問(wèn)題,本文提出一種模塊化的分層設(shè)計(jì)方法,運(yùn)用UML建模技術(shù)構(gòu)建一個(gè)系統(tǒng)穩(wěn)定、擴(kuò)展性能好的微信銀行應(yīng)用系統(tǒng),該系統(tǒng)能在微信公眾平臺(tái)接口發(fā)生變化時(shí),不調(diào)整或者簡(jiǎn)單調(diào)整即可使用。
瀑布模型將系統(tǒng)開(kāi)發(fā)過(guò)程嚴(yán)格規(guī)定為固定次序聯(lián)接的若干階段工作。該模型是一種理想化的線性模型,適用于需求明確且很少變化的系統(tǒng)開(kāi)發(fā)。[3]采用瀑布模型開(kāi)發(fā)微信銀行應(yīng)用系統(tǒng),當(dāng)微信公眾平臺(tái)接口發(fā)生變化時(shí),微信銀行應(yīng)用系統(tǒng)就需要進(jìn)行大量改造或者重構(gòu),造成開(kāi)發(fā)周期過(guò)長(zhǎng)和開(kāi)發(fā)資源浪費(fèi)。顯然采用瀑布模型開(kāi)發(fā)微信銀行應(yīng)用系統(tǒng)無(wú)法克服接口變化引發(fā)的問(wèn)題。
通過(guò)分析銀行的業(yè)務(wù)特點(diǎn)及銀行客戶的需求,確定微信銀行應(yīng)用系統(tǒng)的業(yè)務(wù)功能包括查詢(xún)類(lèi)業(yè)務(wù)、金融類(lèi)業(yè)務(wù)和營(yíng)銷(xiāo)類(lèi)業(yè)務(wù)三大功能。其中查詢(xún)類(lèi)業(yè)務(wù)功能包括產(chǎn)品和網(wǎng)點(diǎn)信息查詢(xún)、優(yōu)惠活動(dòng)查詢(xún)等常見(jiàn)問(wèn)題的查詢(xún)功能;金融類(lèi)業(yè)務(wù)功能包括賬戶綁定、匯款繳費(fèi)、銀行卡掛失、信用卡還款、服務(wù)預(yù)約、微客服等功能;營(yíng)銷(xiāo)類(lèi)業(yè)務(wù)功能包括營(yíng)銷(xiāo)廣告推送、活動(dòng)推廣等功能。系統(tǒng)用例設(shè)計(jì)如圖1所示。
圖1 微信銀行應(yīng)用系統(tǒng)用例圖
設(shè)計(jì)該系統(tǒng)的基本思想是:將微信銀行應(yīng)用系統(tǒng)進(jìn)行分層設(shè)計(jì),并將功能進(jìn)行合理劃分、封裝成不同模塊。各模塊、各層之間采用XML定義接口,利用接口的自描述特征保證其松耦合,使得微信銀行應(yīng)用系統(tǒng)穩(wěn)定和易于擴(kuò)展。系統(tǒng)總體架構(gòu)如圖2所示。
圖2 微信銀行應(yīng)用系統(tǒng)架構(gòu)圖
2.2.1 內(nèi)部接口設(shè)計(jì)
鑒于XML語(yǔ)言具有很強(qiáng)的可擴(kuò)展性、可重用性、自解釋性以及在HTML頁(yè)面中嵌入可大大擴(kuò)展HTML在網(wǎng)上的應(yīng)用范圍等優(yōu)勢(shì)。[4]微信銀行應(yīng)用系統(tǒng)各模塊、各層之間均使用XML+HTTP的方式進(jìn)行數(shù)據(jù)交互。為了保證內(nèi)部接口的穩(wěn)定性和可擴(kuò)展性,內(nèi)部接口設(shè)計(jì)采用XML自描述語(yǔ)言。利用這類(lèi)語(yǔ)言定義接口可使接口獨(dú)立于應(yīng)用系統(tǒng),降低系統(tǒng)內(nèi)各個(gè)程序之間的耦合,從而實(shí)現(xiàn)系統(tǒng)的穩(wěn)定和可擴(kuò)展性。
2.2.2 外部接口設(shè)計(jì)
根據(jù)騰訊公司已公布的接口進(jìn)行設(shè)計(jì),接口主要包括:基礎(chǔ)接口、發(fā)送消息接口、自定義菜單接口、賬號(hào)管理接口、數(shù)據(jù)統(tǒng)計(jì)接口、微信智能接口、多客服接口。[5]
2.2.3 可擴(kuò)展性設(shè)計(jì)
鑒于微信銀行未來(lái)交易的快速增長(zhǎng),除了內(nèi)部接口采用自描述語(yǔ)言XML設(shè)計(jì),實(shí)現(xiàn)系統(tǒng)的擴(kuò)展外,還可采用集群技術(shù)來(lái)擴(kuò)展系統(tǒng)性能。即通過(guò)增加服務(wù)器或者虛擬服務(wù)器,同時(shí)在服務(wù)器之間接入負(fù)載均衡器或者安裝負(fù)載均衡軟件達(dá)到負(fù)載分流實(shí)現(xiàn)擴(kuò)展功能,并通過(guò)會(huì)話復(fù)制技術(shù)實(shí)現(xiàn)各服務(wù)器節(jié)點(diǎn)會(huì)話數(shù)據(jù)同步。[6]
接入模塊主要對(duì)來(lái)自微信服務(wù)器的HTTP請(qǐng)求進(jìn)行簽名驗(yàn)證,驗(yàn)證url是否有效,并把處理結(jié)果返回給微信服務(wù)器。程序片段如下:
一般微信用戶通過(guò)輸入關(guān)鍵字進(jìn)行查詢(xún),微信服務(wù)器會(huì)立即呈現(xiàn)相應(yīng)回答,但是無(wú)論建立多大的詞庫(kù),有時(shí)還是不能滿足微信用戶的查詢(xún),這時(shí)候系統(tǒng)就應(yīng)該自動(dòng)切換到人工服務(wù)。微信5.0以后開(kāi)放了多客服的接口,使得系統(tǒng)轉(zhuǎn)人工變成可能。[7]實(shí)現(xiàn)多客服功能的程序片段如下:
客服管理模塊實(shí)現(xiàn)了:通過(guò)獲取微信用戶發(fā)過(guò)來(lái)的文本消息,如果滿足if里面的條件,會(huì)自動(dòng)做出回答;如果不滿足,就會(huì)向微信服務(wù)器返回一條消息,微信服務(wù)器自動(dòng)把該消息轉(zhuǎn)到多客服,這時(shí)候銀行客服人員只需要在電腦端安裝一個(gè)多客服客戶端,或者微信客戶端,即可接收消息,對(duì)用戶進(jìn)行一對(duì)一的溝通。
本文針對(duì)傳統(tǒng)的瀑布模型開(kāi)發(fā)微信銀行存在的問(wèn)題,提出了一種模塊化的分層設(shè)計(jì)方法。將微信銀行應(yīng)用系統(tǒng)進(jìn)行分層設(shè)計(jì),并將功能進(jìn)行合理劃分、封裝成不同模塊。各模塊、各層之間采用XML定義接口,利用接口的自描述特征保證其松耦合,構(gòu)建一個(gè)系統(tǒng)穩(wěn)定、擴(kuò)展性能好的微信銀行應(yīng)用系統(tǒng)。具體方案實(shí)施及將關(guān)鍵技術(shù)整合實(shí)現(xiàn)一個(gè)微信銀行應(yīng)用系統(tǒng)是該研究工作的下一步重點(diǎn)。
[1]林澤斐.基于微信公眾平臺(tái)API的移動(dòng)OPAC設(shè)計(jì)與實(shí)現(xiàn)[J].農(nóng)業(yè)圖書(shū)情報(bào)學(xué)刊,2015,27(2):44-46.
[2]甘宇健,毛靈芝,向龍蓮.銀行智能微信公眾平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo),.2014,13(2):6-8.
[3]閆帥,許鵬翔.基于瀑布模型與敏捷開(kāi)發(fā)相結(jié)合的項(xiàng)目管理方法探討[J].電子技術(shù)與軟件工程,2013(18):67.
[4]徐進(jìn)強(qiáng).XML語(yǔ)言在Web開(kāi)發(fā)中的應(yīng)用研究[J].軟件導(dǎo)刊,2013,12(12):33-35.
[5]騰訊.微信公眾平臺(tái)開(kāi)發(fā)者文檔{EB/OL].{2014-3-26}.http://mp.weixin.qq.com/wiki/home/index.html.
[6]甘榮石.基于微信平臺(tái)的移動(dòng)銀行應(yīng)用架構(gòu)研究[D].廣州:華南理工大學(xué),2013.
[7]微信開(kāi)發(fā).微時(shí)代微信咨詢(xún)網(wǎng)[EB/OL].{2014-6-11}.http://www.wechatstyle.com/weixinkaifa/,