他,40余載銀行IT路,風雨兼程,踏歌而行;
他,是中國銀行業(yè)IT發(fā)展史的親歷者和見證人;
他,是“宇宙行”開發(fā)體系的奠基人和建設者;
他,友朋遍四方,桃李滿天下;
他,就是中國工商銀行開發(fā)中心前總經(jīng)理,梁禮方。
蒙梁老準允,優(yōu)智匯獨家開辟《金語梁言》專欄,我們將以各種形式發(fā)表梁老對中國金融IT業(yè)的思考與見解,并接受廣大“梁(涼)粉”的提問,梁老將抽取其中具有代表性的問題,在專欄中答疑解惑。我們期待,《金語梁言》對于轉型中的中國金融IT業(yè)具有啟示和借鑒作用。
上期回顧
關于系統(tǒng)架構,在此前的文章里,已經(jīng)分別論述了:應用架構、程序架構、數(shù)據(jù)架構。本章將論述應用系統(tǒng)架構的又一個維度:技術架構。
本章所說的技術架構,指的是在一個可以獨立部署的應用系統(tǒng)里,應用、應用平臺、基礎設施之間的關系。技術架構探討的是應用系統(tǒng)的縱向架構,而此前論述的應用架構探討的是應用系統(tǒng)的橫向架構。
信息系統(tǒng)架構的其中一個維度,是系統(tǒng)的技術架構。本文所說的技術架構,指的是在一個可以獨立部署的應用系統(tǒng)里,應用、應用平臺、基礎設施之間的關系。也就是說,技術架構探討的是應用系統(tǒng)的縱向架構,而此前論述的應用架構探討的是系統(tǒng)的橫向架構。
不同的銀行,規(guī)模有大有小,其信息系統(tǒng)的規(guī)模也不盡相同。但它們的信息系統(tǒng)均由不同的子系統(tǒng)或各種各樣的應用組成。盡管在銀行業(yè)里,什么才能稱之為信息系統(tǒng)的“系統(tǒng)”、“應用”,沒有一個公認的標準,但各銀行在對信息系統(tǒng)進行分類管理時,這種被分類的“系統(tǒng)”或“應用”的數(shù)量,通常會有一、兩百個。這些不同的系統(tǒng)、不同的應用,建設與投產(chǎn)時間有先后,使用的技術、基礎設施、平臺、編程語言等都會不一樣。在大部分中小銀行,許多系統(tǒng)都是通過外購然后客戶化建設而成,這些外購的系統(tǒng),系統(tǒng)提供廠商也不完全一樣。面對這些五花八門的百多兩百個系統(tǒng),要充分了解并熟悉其技術架構,以便能承擔起對系統(tǒng)維護與完善的職能,對大多數(shù)銀行的科技部門而言,都是一個不堪重負的任務。
盡管一個銀行的信息系統(tǒng),有一、兩百個系統(tǒng)或應用,實際上,類似的系統(tǒng)、應用,如果其內(nèi)部運作模式相似,使用的技術相似,完全可以整合在相同的基礎設施、應用平臺、運行環(huán)境上運行。
一些銀行就進行過技術架構整合的探討與規(guī)劃。其結果是,所有的系統(tǒng),如果經(jīng)過適當?shù)母脑欤梢匀空系阶疃嗖怀^十種的不同技術架構中。也就是說,最多只需要建立十種不同的基礎設施、平臺的組合,就可以滿足一個銀行信息系統(tǒng)里所有的系統(tǒng)或應用建設的需要。如果真的能實現(xiàn)技術架構的整合,這是一個多麼令人興奮的前景?。?/span>
那么應該如何實現(xiàn)能夠整合的技術架構呢?
理想的技術架構框架是,把應用、平臺、基礎設施相對獨立地拆分為以下幾層:
一、系統(tǒng)層
系統(tǒng)層也叫基礎設施層。包括系統(tǒng)級的硬、軟件兩層。
底層硬件包括主機、各種服務器、PC、存儲設備、網(wǎng)絡設備等。第二層系統(tǒng)軟件包括各種操作系統(tǒng)、數(shù)據(jù)庫等。
系統(tǒng)層的主流硬、軟件產(chǎn)品,基本都是由世界上屈指可數(shù)的幾個廠家提供。
二、平臺層
平臺層通常也包括兩層。
下層是中間件或技術平臺。中間件通常指的是廠家在系統(tǒng)層的基礎上提供的平臺軟件。例如比較有名的交易平臺軟件有IBM的CICS;BEA的Tuxedo等。又例如IBM的電子商務軟件平臺WebSphere。也有一些中間件是由第三方軟件公司開發(fā)的。而技術平臺通常指的是用戶自己開發(fā)的平臺軟件。
第二層是基于中間件之上的開發(fā)框架與運行環(huán)境生成平臺。包括各種生成環(huán)境與工具:如建模工具、可視化開發(fā)工具、第四代開發(fā)語言等。
當然,也有一些平臺層會把中間件或技術平臺與開發(fā)運行環(huán)境捆綁在一塊,不分成兩層。
三、應用層
應用層包含所有的應用。處于整個技術架構框架的最上層。
整個技術架構框架如下圖:
四、分層技術架構的要求
構建上述技術架構時,要注意以下幾點:
1、應用與系統(tǒng)隔離
三層架構之間,控制與數(shù)據(jù)均不能跨層穿透流動。也就是說,應用層只能與平臺層打交道、系統(tǒng)層也只能與平臺層打交道。應用層不能與系統(tǒng)層直接打交道。
2、層間松耦合
在構建各層時,在設計上要注意層間松耦合。應用對平臺要松耦合;平臺對系統(tǒng)要松耦合。
3、技術架構與運行實體
信息系統(tǒng)最多不超過十種技術架構,并不表示信息系統(tǒng)最多不超過十個相對獨立的運行實體。從處理能力、存儲容量、安全性考慮,不同的系統(tǒng)盡管技術架構完全一樣,也不一定都要統(tǒng)一在一個相對獨立的運行實體里運行。也就是說,盡管技術架構只有幾種,但獨立運行的系統(tǒng)也許有幾十到上百個。
五、分層技術架構的優(yōu)點
采取了上述的技術架構,所有應用均植根于平臺之上,而平臺基本屏蔽了所有系統(tǒng)的基礎設施、環(huán)境、技術特征。所以,有以下優(yōu)點:
1、提高開發(fā)效率
平臺為應用的開發(fā)、維護運行提供較好的界面,應用開發(fā)人員可以完全僅專注于業(yè)務本身,無需在其他技術細節(jié)上有過多的投入,效率會大為提高。
2、提高質量
由更專業(yè)的技術人員去開發(fā)與維護平臺,平臺的技術質量會較高,從而整個系統(tǒng)的技術質量會更高。
3、軟件重用
類似的應用可以使用相同的平臺,不同的平臺與不同的基礎設施最多只需要幾種組合,使得整個信息系統(tǒng)的平臺種類數(shù)量大為減少。實現(xiàn)軟件行業(yè)孜孜以求的軟件重用的夢想。軟件維護的開銷大為減少,節(jié)省信息系統(tǒng)的開發(fā)與維護資源。
4、應用可持續(xù)發(fā)展
做到應用與平臺松耦合、平臺與系統(tǒng)松耦合。最終實現(xiàn)軟件與硬件的松耦合。應用可以低成本的在不同的基礎設施、技術環(huán)境上移植、重用。提高了軟件的適應能力與適用范圍,提高了軟件可持續(xù)發(fā)展的能力。
5、為基礎設施架構的發(fā)展提供廣闊空間
當前,基礎設施技術也在快速發(fā)展。包括UNIX服務器、PC服務器的性能大幅提升;包括新的操作系統(tǒng)、新的數(shù)據(jù)庫;包括新的云運行環(huán)境。所有這些,都給現(xiàn)在的基礎設施架構師們在規(guī)劃基礎設施架構時帶來新的要求與挑戰(zhàn):某應用系統(tǒng)應該用大機、還是UNIX服務器、還是PC服務器;數(shù)據(jù)庫應該用傳統(tǒng)的關系數(shù)據(jù)庫、專用數(shù)據(jù)庫,還是用分布式數(shù)據(jù)庫;系統(tǒng)上云還是不上云;等等。
無論如何,如果我們做到應用與基礎設施松耦合,那么,基礎設施架構師們在決策嘗試使用新基礎設施架構時,他們無需太糾結,負擔也不會太重,因為,轉換成本相對低,也相對容易。