銀行代理業務平台淺析

  銀行代理業務經過近10年的發展,正日益成為各家銀行增加利潤、留住客戶的主打形象產品。在此主要從技術上討論代理業務平台,是如何適應銀行代理業務產品發展的需要,從無到有、從簡單到完備的發展歷程。
首先明白一個概念,什麼是代理業務?簡單的說,就是銀行系統利用自身的網點優勢和客戶資源,為第三方單位如電信、移動等代理收費、扣款等業務。此業務是在90年代中期隨著銀行系統數據集中、網點互聯的發展而發展起來的,既方便了客戶、又減少了第三方單位的經營成本,同時提升了銀行的形象,也為銀行帶來了新的利潤增長點。
本人有幸經歷了銀行業的代理業務產品開發各個階段,從手工作坊似的低級階段,到快速圖形界面定製的高級階段。並對多種代理業務平台有實際的使用經歷和感受。
對銀行系統的軟體開發人員來說,代理業務帶來了新的技術要求和實施難度。最早出現的代理業務一般是話費代收,要求的功能很簡單:話費查詢、繳費、對帳等。從安全性和速度方面考慮,銀行需要和委託單位建立專用的通訊信道,當時一般是申請電信的64kddn專線。然後由銀行方和委託方商量、確定雙方的通訊協定以及報文接口,實際情況是,一個委託單位一般不會只和某一家銀行簽訂這種代理協定,所以如果委託單位已經和其他銀行開發了類似的代理系統,那么該委託單位從自身系統的維護和管理方便出發,是不會和其他銀行另外開發一套新的通訊協定和報文接口的,後期參與進來的銀行就只能使自己的系統適用他們已有的系統的需要了。在當時,對每一家委託單位,銀行都要增加新的前置機、路由器等等硬體設備。
經過緊張的開發、調試、試運行,到最後成功上線,一個新的代理業務產品的成功推出總會激起新的委託單位的興趣,從而導致越來越多的代理業務需求。考察那幾年的銀行信息部門的人員配置,我們會很容易發現一個有趣的現象,那就是所有銀行都在那幾年中逐步增加了代理業務開發部門的力量,代理業務開發人員得到越來越多的重用。慢慢的,這些軟體開發人員積累了越來越多的有關代理業務的開發經驗和教訓,大家發現代理業務系統做了這么多,其實不同委託單位的系統是存在很多共同點的,開發人員開始感覺自己做了很多重複性勞動,既辛苦,又延長了系統的開發時間,於是大家開始尋找一種軟體產品,能夠支持任務繁重的代理業務開發的工具軟體,結果發現還真有一些很有市場頭腦的軟體公司在做這個產品。
最開始出現的產品還不叫代理業務平台,只相當於一個兼容性較好的通用代理業務系統,是在對所有的代理業務子系統進行了共性分析後,把各子代理業務系統整合成一個大的綜合系統,再把該系統分成通訊、業務邏輯控制、主控等幾個功能模組,通過參數配置的辦法體現出不同代理業務的特色來。相比以前的開發方法,現在能夠明顯的提高開發進度並保證產品質量。
下面我們就分析一下代理業務平台到底要實現哪些功能。事實上,代理業務平台要完成的功能主要就是通訊、業務邏輯控制、流程控制這三大塊,雖然不同時期、不同軟體公司的平台產品看起來形形色色,其主要功能卻沒有超過以上三項功能的範圍。
其中通訊模組要解決的問題就是所有中間業務都會遇到的與渠道、後台、以及委託方交換信息的問題,一般來說,在某一個銀行內部,代理業務平台與渠道、後台通訊,其通訊協定和報文接口協定是比較穩定、統一的,所以通訊模組中針對渠道和後台的子模組一般都是比較清楚、穩定的,所有代理業務都共用這幾個相同的通訊模組,同銀行系統的核心繫統一樣,幾年之內都不會改變。但與第三方委託單位的通訊協定和報文接口就不一樣了,基本上每一種代理業務都對應一種不同的通信協定和接口數據報文。
代理業務平台正是要在這不同的通訊協定和接口報文的情況下,為開發人員提供一個比較統一的對外通訊接口,使套用完全與通訊細節隔離,在平台的總控模組中體現出一致的調用接口,從而使業務邏輯控制模組可以完全關注業務方面的細節,使整個系統層次分明、結構穩定,不至於因為通訊方面的協定和報文接口的更改影響業務處理和流程控制。所以現在的代理業務平台一般都內置了常用的通訊協定模組,能夠很方便的處理tcp/ip協定、cics協定等各種流行通訊協定,並提供對8583報文協定、字元流報文協定等報文接口協定的支持,當然,針對某些單位自定義的通訊協定和報文接口協定,軟體公司也能在代理業務平台上很方便的構造出新的通訊子模組。
業務邏輯控制的概念也是在對代理業務平台的功能進行整理分析後提出來的,為了平台的軟體結構層次清晰、功能穩定,把所有與業務控制有關的部分從系統中剝離出來,單獨形成業務邏輯控制模組。不同的代理業務在平台上要調用不同的業務相關處理函式,要走不同的業務處理流程,訪問不同的業務參數控制表,這些都要在業務邏輯控制模組中以參數的形式對不同的業務加以控制。例如查詢話費交易,只要走委託方通訊,不要求訪問後台,而繳費交易則不但要訪問第三方,還要訪問後台,特別是有的交易要求先訪問第三方,另外的交易有可能要先訪問後台再訪問第三方,等等與交易有關的控制都放在業務邏輯控制模組中。
流程控制模組又可以理解為主控模組,主要完成對一個完整交易的流程控制,它根據業務邏輯控制確定的具體交易的流程,調用相應的通訊函式和業務處理函式,一步一步的完成整個業務流程,在流程某一步出現錯誤的情況下決定下一步該怎么走,是直接返回錯誤給前台,還是繼續執行?要不要發起沖正?要對哪幾個地方發起沖正?等等,它還要負責總個平台的初始化、啟動以及停止。流程控制模組在一個平台中也是比較穩定的模組,不會隨業務的增加或更改而有什麼變化,不同公司、不同時期的平台,在流程控制模組上會有一定的變更,從而形成不同公司的平台特色。
從以上平台主要功能模組的分析我們可以看到,所有代理業務平台要實現的功能都是基本相同的,其中通訊模組和業務邏輯控制模組是根據不同的委託方和不同的代理業務而有所變化的,在實現上一般採用參數控制的辦法,開發人員使用平台作為開發工具時,將主要針對不同的公司配置不同的通訊模組,然後根據不同的代理業務種類定製不同的業務邏輯控制,從而能夠比較快速的實現新代理業務產品的開發和上線。至於流程控制模組,則體現了公司的平台產品的特色,儘管要實現的功能是一樣的,但不同公司的平台產品往往體現了不同設計思想,當然也就形成了各公司不同的流程控制方式。
既然所有的平台產品都只是為了以上的三個功能,那么各個時期的代理業務平台到底有什麼不同的特點呢?我們知道,最先出來的平台產品,主要任務是減少開發人員的重複工作量,加快開發進度,所以當時的平台產品可以說完全是為這個目的而設計的,既沒有考慮平台本身的易用性,也沒有考慮一個平台產品兼容多種作業系統的問題。這種平台產品的代表有上海南天公司的“中間業務平台”,當時甚至都沒有為此產品取一個名字,就叫“中間業務平台”。這一代產品使用幾年之後,出現了新的產品,雖然要實現的功能沒有多大變化,但是針對平台本身進行了最佳化,例如提高了報文接口定製的簡便性,很多以前需要手工計算的數據現在儘量交給計算機自己處理,開發人員只要提供不同報文之間的最本質的區別的參數就可以了,另外還考慮了平台的兼容性,不但能夠直接在銀行常用的unix作業系統上使用,而且提供了windows作業系統上的版本。這也是由於各銀行單位代理業務快速發展的需要,導致各種各樣的平台產品爭相出現,代理業務產品開發更加高效高質。這時期的代表產品有神碼公司的smartagent,以及宇信鴻泰公司的fisp產品等。
這期間,很多平台產品更增加了對代理業務的數據統計、報表列印功能以及參數管理等功能,相當於增加了平台的一個新功能模組:管理模組。那么最新的平台產品又有什麼新的特色呢?在維持原有功能和多系統兼容的情況下,有的平台提供了更為簡便的開發環境,把總個平台的功能實現、參數定製都移植到了圖形界面的windows環境下,開發人員可以在全圖形界面下實現原來在unix機器上能實現的功能,這確實是一個很大的進步,雖然平台的本質功能沒有什麼改變,但這是軟體公司對平台的功能有了更本質上的理解之後才實現的產品,對開發人員來說,可以擺脫全手工操作的unix平台,在圖形界面上輕鬆自如的完成新代理業務的增加、修改,把生成的參數自動發布到unix運行機上,真是一種前所未有的感受。這種新平台的實例有北京先進數通公司的eswitch產品。另外,為了適應代理業務平台大批量、大並發交易的需要,在最新的平台設計上廣泛使用了訊息佇列機制,實現了代理業務平台在較低系統配置情況下處理大量並發交易的處理能力。
以上介紹了代理業務平台從無到有,從簡單到完善的發展歷程,那么代理業務平台以後會朝什麼方向發展呢?我個人認為,銀行的代理業務套用正處於方興未艾的時期,各軟體公司為了爭奪市場,一定會繼續在代理業務平台的可用、易用、美觀等各方面不斷加以改進,以後在windows的圖形界面下進行交易定製、流程定製、報文接口定製,甚至通訊底層函式的編碼等等都是可以預見的,現在在windows環境下定製生成的結果檔案基本還要手工干預才能在unix的生產機上運行,以後肯定會要實現完全由windows環境定製、生成、發布所有交易的功能。這實際上相當於給unix開發平台擴展了一個圖形界面的外殼,使程式設計師充分利用了windows作業系統帶來的大眾化的友好、實用的人機互動界面。這種平台設計思想已經為其他unix下的軟體開發工具的發展、完善提供了可以借鑑的一種新的思路。