劉光強 霍 娜/編譯
有人認為,SOA是IT的救命稻草,應(yīng)用它能幫助企業(yè)大規(guī)模降低成本、提高靈活性;也有人講,經(jīng)濟衰退的趨勢之下,SOA將死。有應(yīng)用才有活力,企業(yè)落地實施SOA到底該從哪里開始?
我們對比海外和國內(nèi)各一則SOA實施路徑發(fā)現(xiàn),SOA落地,歐美重整合集成,而我國更應(yīng)從單應(yīng)用或是相關(guān)應(yīng)用群組入手。
海外案例
Synovus金融公司(以下簡稱Synovus)總部位于喬治亞州的哥倫布,提供包括銀行業(yè)務(wù)、財務(wù)管理、保險、抵押貸款和租借等在內(nèi)的綜合財務(wù)服務(wù),它在喬治亞州、阿拉巴馬州、佛羅里達州、南卡羅來納州和田納西州擁有35家銀行和440臺ATM機。Synovus長期以來良好的發(fā)展使其近30年來在當(dāng)?shù)貥I(yè)內(nèi)處于領(lǐng)先水平,由1972年只有一家銀行、資產(chǎn)為1.47億美元的公司,發(fā)展成為今天資產(chǎn)高達300億美元、擁有多種財經(jīng)業(yè)務(wù)的提供商。
在如此迅速的增長中,Synovus也面臨著各方面的挑戰(zhàn)。如何整合并管理多個關(guān)鍵任務(wù)的應(yīng)用程序?作為其面向服務(wù)架構(gòu)(SOA)實現(xiàn)的一部分,Synovus使用ActiveVOS——可視化編排系統(tǒng)來實現(xiàn)之。這樣做的好處是通過復(fù)用體系架構(gòu)與服務(wù)、可擴展平臺降低了整合成本,產(chǎn)品推向市場的速度更快了,客戶的滿意度更高了。
不斷成長 如何無縫整合
Synovus原有的網(wǎng)上銀行系統(tǒng)已經(jīng)很過時了,公司和客戶都希望無論他們以何種方式接入網(wǎng)上銀行系統(tǒng)都能有統(tǒng)一的客戶界面。過去幾年間,隨著公司業(yè)務(wù)一步步發(fā)展,Synovus已經(jīng)開發(fā)了很多套不同的系統(tǒng),但不同的系統(tǒng)需要逐步整合。這也導(dǎo)致業(yè)務(wù)流程的效率越來越低,要滿足新的業(yè)務(wù)需求變化也越來越困難。
重新評估形勢之后,Synovus引進了一家新的銀行系統(tǒng)廠商來合作,Synovus的創(chuàng)新解決方案團隊要建立新網(wǎng)上銀行系統(tǒng),來應(yīng)對網(wǎng)上銀行客戶門戶面臨的三方面挑戰(zhàn):一是要建立起SOA環(huán)境,并創(chuàng)建各種SOA所需要的服務(wù);二是讓廠商的支持切實可行,這需要他們在功能上做很多定制性的改造;三是要建立一套安全的客戶認證系統(tǒng)。
在新系統(tǒng)中,Synovus開始使用一個新平臺來加強實時展示的效果,這個需求對新網(wǎng)上銀行系統(tǒng)來說尤為重要。另外,Synovus開發(fā)的網(wǎng)上銀行還面臨著自己特有的挑戰(zhàn)——Synovus需要實現(xiàn)客戶認證證書,并且在正式發(fā)布之后的6個月內(nèi)開發(fā)一個欺詐檢測系統(tǒng),后者將在客戶登錄和添加額外認證信息的時候被用到。
另外,他們還需要讓正在開發(fā)的系統(tǒng)和正在使用的各種遺留系統(tǒng)之間保持同步。簡而言之,盡管Synovus對他們新的網(wǎng)上銀行平臺充滿了信心,但是要把這個系統(tǒng)整合到現(xiàn)有的應(yīng)用程序和安全系統(tǒng)之中,本身就是一件非常困難的事情。
Synovus最終采用的策略比他們最開始設(shè)想的結(jié)果要強大得多。他們不僅要實現(xiàn)SOA,更要真正理解和利用它。這個創(chuàng)新解決方案團隊需要一個示范項目來向管理層證實,SOA的確有用,并且能夠擴展公司的各種業(yè)務(wù)功能。
Synovus的創(chuàng)新解決方案團隊是一個功能性的團隊,跨越了公司的業(yè)務(wù)部門和IT部門。為了維持平衡,他們每個季度都會與業(yè)務(wù)部門和IT部門開會討論工作分工與需求。
創(chuàng)新解決方案團隊每個星期都會檢查他們調(diào)度的生產(chǎn)線人員,他們做的工作是否成功和有效。這是使用VOS的另一個好處,因為它直接提供這些信息。如果實際工作中的情況和預(yù)想的有變化,那么這些變化就會先經(jīng)過創(chuàng)新解決方案團隊的處理,確保不會給項目帶來嚴重后果之后才提交公司管理層發(fā)布實施。
最后的結(jié)果表明,他們是對的。網(wǎng)上銀行的成功只是SOA實現(xiàn)的開頭而已。現(xiàn)在,Synovus的SOA環(huán)境不僅整合了網(wǎng)上銀行,還整合了手機銀行、呼叫中心、分支機構(gòu)平臺、貸款跟蹤系統(tǒng)(LOS)和一個新的名為SVP的支付系統(tǒng)(能夠在不暴露個人財務(wù)數(shù)據(jù)的情況下進行安全便捷的支付)。整合SVP是一個復(fù)雜的工程,但最終達到了雙贏的目的:客戶的個人信息受到了欺詐檢測系統(tǒng)的保護,而商家在使用這個系統(tǒng)時也比客戶使用信用卡等手段支付的手續(xù)費更少。如果沒有SOA,這一切都是不可能完成的。Synovus還會整合更多的功能、更多的系統(tǒng)和產(chǎn)品。Synovus的SOA環(huán)境不僅僅是為網(wǎng)上銀行而建立的,它應(yīng)該被作為整個公司的戰(zhàn)略重點而實現(xiàn)。
盡可能地復(fù)用
Synovus是如何做到同時兼顧新系統(tǒng)的開發(fā)和整合原有應(yīng)用呢?關(guān)鍵在于其使用的一個可視化編排系統(tǒng)——ActiveVOS。
從SOA的角度來看,企業(yè)所有的服務(wù)都放在一個庫中,各個服務(wù)(網(wǎng)上銀行、貸款、簽賬卡平臺等)的客戶通過WSDL(網(wǎng)絡(luò)服務(wù)描述語言)來調(diào)用相應(yīng)服務(wù)。WSDL連接的庫中大約有Synovus提供的600個服務(wù)。例如,要整合SVP,Synovus需要17個服務(wù),其中11個直接來源于這個庫??蛻艨梢越?jīng)過Synovus的網(wǎng)關(guān),使用.NET或者JWS(Java網(wǎng)絡(luò)服務(wù))等技術(shù)直接訪問這些服務(wù)。Synovus的一些分支機構(gòu)的服務(wù)器也能提供服務(wù),還有的服務(wù)來自于第三方,通過Synovus的網(wǎng)關(guān)進行認證和轉(zhuǎn)發(fā)。在網(wǎng)上銀行項目中,Synovus在信用卡識別和認證系統(tǒng)中就用到了一些第三方服務(wù),這一般需要用戶有一個注冊的過程。
網(wǎng)上銀行項目開始于2006年8月27日,Synovus最初計劃用9個月時間來完成這個項目。但是,就在第二天,公司CEO要求IT部門將項目工期壓縮為7個月。很多公司實施第一個SOA項目都會很保守,不會將一個至關(guān)重要的項目拿來做SOA實現(xiàn)的試驗品。但對于Synovus而言,這第一個SOA項目則是不容有失。他們需要網(wǎng)上銀行來提升公司的競爭力,而且這是全公司應(yīng)用范圍最廣的一個項目。
Synovus沒有資金用來支持試驗項目,研發(fā)投入的項目要求必須要很快在業(yè)務(wù)中見到效果。這個網(wǎng)上銀行項目的資金70%來自于公司,另外30%則由IT部門自己負責(zé)。公司經(jīng)過評估認為,這個項目在第一年的支出會略微超出預(yù)算,但從第二年起,由于使用同樣的基礎(chǔ)設(shè)施,每年都能夠為公司節(jié)約一大筆錢。創(chuàng)新解決方案團隊在7個月時間內(nèi)完成了這個項目,并且?guī)缀跏邱R上就看到了效果,因為項目的整個體系結(jié)構(gòu)和創(chuàng)建的服務(wù)都充分體現(xiàn)了復(fù)用。
Synovus成功的秘訣就在于盡可能地復(fù)用。首先,它們的體系結(jié)構(gòu)建立在以兩個不同數(shù)據(jù)中心為基礎(chǔ)的SOA環(huán)境中。這個環(huán)境最終成為了他們的SOA服務(wù)局點。要實現(xiàn)一個新項目時,所有的基礎(chǔ)設(shè)施都能在這里找到并復(fù)用。他們不再需要重建基礎(chǔ)設(shè)施,需要的服務(wù)已經(jīng)就位,需要的計算能力已經(jīng)有了,防火墻、網(wǎng)關(guān)和可視化編排系統(tǒng)一應(yīng)俱全,一切都已經(jīng)準備好,可以在需要時啟動。共享數(shù)據(jù)中心,不僅在成本上劃算,而且也有利于更好地保護環(huán)境。
其次,實現(xiàn)了一個SOA項目之后,應(yīng)用服務(wù)就可以復(fù)用了。通過使用可視化編排系統(tǒng),Synovus已經(jīng)實現(xiàn)了SOA的最終目的:應(yīng)用程序復(fù)用。正是可視化編排系統(tǒng)的使用,使得Synovus比其他公司更快更容易地實現(xiàn)了這一點。
正是這兩種復(fù)用,使Synovus得到了理想而又持久的結(jié)果。從項目競爭力來看,Synovus現(xiàn)在能夠同時順利完成多個項目,而在實現(xiàn)SOA之前,他們只能說可以在某些項目上取得成功,同時進行多個項目并且都取得成功是不敢奢求的。在網(wǎng)上銀行項目之后,他們的每一個項目都復(fù)用了SOA環(huán)境和服務(wù)。
Synovus在可視化編排系統(tǒng)上的投資使得公司的資產(chǎn)回報率(ROA)得到了大幅提升:基于SOA的項目成本降低了65%左右。與不復(fù)用物理基礎(chǔ)設(shè)施相比,現(xiàn)在的成本節(jié)約了30%到40%。如果基礎(chǔ)設(shè)施和服務(wù)都使用了復(fù)用,那么成本就能節(jié)約60%到65%。盡管在第一個項目中,看到的成本節(jié)約相當(dāng)有限,但ROA在以后的項目中將相當(dāng)可觀,在后面的項目中,人力和質(zhì)量保證將成為成本的主要組成部分,而基礎(chǔ)設(shè)施和服務(wù)所占的比例會很小。而且,人力和質(zhì)量保證的成本絕對值也會比以前減少很多。
在手機銀行項目中,Synovus使用的服務(wù)全部都來自網(wǎng)上銀行項目。正是這第二個項目讓SOA的好處得到了充分體現(xiàn)。不到800個小時的開發(fā)、部署和測試就為Synovus提供了一種全新的業(yè)務(wù)通道。開發(fā)成本幾乎為零,部署和測試的時間也僅僅是為了確保項目萬無一失。
在手機銀行之后,Synovus又完成了兩個其他項目,這兩個項目都是2007年1月份開始做的,在兩個月之后完成。一個項目是關(guān)于采購的,他們更換了合作的簽賬卡公司。由于復(fù)用了體系結(jié)構(gòu)和服務(wù),這個項目沒有花費開發(fā)組太多時間。而另一個項目要復(fù)雜一些,需要創(chuàng)建16個新的服務(wù),但由于基礎(chǔ)設(shè)施可以復(fù)用也就不需要新的服務(wù)器了。由于環(huán)境是使用ActiveVOS構(gòu)建的,在基礎(chǔ)設(shè)施方面幾乎沒有成本,成本都集中在開發(fā)上。
面對SOA,海外和國內(nèi)企業(yè)的困惑是同樣存在的,不同的是各自信息技術(shù)和業(yè)務(wù)應(yīng)用成熟度所決定的不同切入點,不同的探索路徑。
國內(nèi)案例
即插即用的One應(yīng)用
老陳是某大型銀行的業(yè)務(wù)主管,他每天通過銀行的CRM系統(tǒng)、智能辦公系統(tǒng)、財務(wù)系統(tǒng)、信貸系統(tǒng)等多個IT系統(tǒng)處理各種數(shù)據(jù),做審批……老陳的煩惱是他每天都要到各個系統(tǒng)去查看、處理任務(wù),如果忘了去某個恰好有重要任務(wù)的系統(tǒng),那就是老陳失職了,但也有很多時候是他登錄到一個系統(tǒng)后發(fā)現(xiàn)這里根本沒有他的任務(wù)。
小雨是這家大型銀行幾千名信用卡中心工作人員之中的一個普通營業(yè)員,她在工作過程當(dāng)中,會使用到日常處理業(yè)務(wù)操作的多個系統(tǒng),她有時要在客戶系統(tǒng)中新建一個聯(lián)系單,有時要查詢知識庫,有時要查詢費用積分、賬務(wù)等。小雨要在不同界面之間不停切換,而這些系統(tǒng)因為是在不同的時期由不同開發(fā)團隊開發(fā)的,所以應(yīng)用起來操作風(fēng)格差異很大,操作層次太深,需要不斷地點擊鼠標。
小張是這家大型銀行的一個IT工程師,同時也是一名J2EE高手。小張在IT部門要做五套系統(tǒng)的維護工作,包括這些系統(tǒng)日常的日志處理、備份、系統(tǒng)的監(jiān)控以及一些應(yīng)用Bug的修訂,甚至是增補一些小的功能。這些系統(tǒng)里運行的都是小張所熟悉的應(yīng)用,盡管都是J2EE應(yīng)用,但幾乎每套系統(tǒng)都采用了不同的架構(gòu),技術(shù)規(guī)范差異也很大。小張整天忙于應(yīng)付這些工作,經(jīng)常加班,但他的領(lǐng)導(dǎo)對他的工作似乎并不滿意。
就像這家銀行的三位成員所感受到的那樣,這家銀行的應(yīng)用系統(tǒng)繁多,應(yīng)用系統(tǒng)之間的關(guān)系就像是蜘蛛網(wǎng);這些系統(tǒng)的技術(shù)架構(gòu)非常零散,維護起來復(fù)雜,而且這些應(yīng)用系統(tǒng)因為是在不同時期做出來的,技術(shù)規(guī)范難統(tǒng)一;系統(tǒng)之間,包括系統(tǒng)內(nèi)部的耦合性太強,很難分離相應(yīng)的業(yè)務(wù)模塊,不方便擴展和變更;在業(yè)務(wù)部門看來,這些系統(tǒng)在操作過程當(dāng)中不斷地頻繁切換,操作的風(fēng)格差異很大,培訓(xùn)的成本很高;很多的應(yīng)用采用了一些流程去實現(xiàn),流程會產(chǎn)生任務(wù),這些任務(wù)因為在不同的應(yīng)用里面,所以分散到不同系統(tǒng)里面,導(dǎo)致人們得像老陳那樣,需要登錄不同的系統(tǒng)使用系統(tǒng)提供的任務(wù)。而且,這種狀況還在不斷上演,新的應(yīng)用需求仍然在不斷被提出……
在這種背景下,這家大型銀行開始考慮,許多應(yīng)用還在建設(shè)中,怎樣才能不再“重復(fù)昨天的故事”呢?
基于SOA架構(gòu)及其運營平臺,這家大型銀行采用了普元軟件的One應(yīng)用解決方案,通過包括相應(yīng)的集中工作平臺、集中的任務(wù)中心和統(tǒng)一應(yīng)用平臺的企業(yè)應(yīng)用中心,一方面系統(tǒng)使用者可以得到單一的操作入口、統(tǒng)一的權(quán)限控制、一致的操作風(fēng)格和集中的任務(wù)處理等使用體驗;另一方面,對系統(tǒng)的建設(shè)者來講,跟以往IT建設(shè)的最大區(qū)別是,未來所有業(yè)務(wù)是通過構(gòu)件化或者說是模塊化的方式來實現(xiàn),并且是基于一種統(tǒng)一的技術(shù)架構(gòu),統(tǒng)一的平臺,統(tǒng)一的規(guī)范進行的。在這種IT建設(shè)過程中,業(yè)務(wù)功能是在以增量式的、即插即用的方式體現(xiàn)出來。在模塊化的流程、服務(wù)之間實現(xiàn)松散的耦合、配置和組裝,并實現(xiàn)系統(tǒng)的分布式部署和集約化管理。
具體是如何實現(xiàn)的呢?普元軟件產(chǎn)品研發(fā)總監(jiān)王克強介紹說,在從上至下,企業(yè)應(yīng)用中心、任務(wù)執(zhí)行、業(yè)務(wù)應(yīng)用群、基礎(chǔ)環(huán)境的體系結(jié)構(gòu)下,企業(yè)應(yīng)用中心實現(xiàn)權(quán)限和組織用戶的管理,具體業(yè)務(wù)的內(nèi)容部署在不一樣的基礎(chǔ)環(huán)境之上,每一個具體業(yè)務(wù)作為一個物理應(yīng)用注冊到企業(yè)應(yīng)用中心集中的工作平臺中。這樣在業(yè)務(wù)應(yīng)用群實現(xiàn)了一個個業(yè)務(wù)的松散的構(gòu)件模塊后,這些業(yè)務(wù)模塊能以可插拔的方式注冊到集中工作平臺,注冊之后經(jīng)過一個功能菜單,用戶就通過菜單方式執(zhí)行該業(yè)務(wù)功能。以這樣的模式執(zhí)行下來,業(yè)務(wù)模塊不斷實現(xiàn)的時候,業(yè)務(wù)流程通過企業(yè)的流程平臺推送到任務(wù)中心,而客戶端的任務(wù)同樣是通過企業(yè)應(yīng)用中心實現(xiàn)集中處理。
為了打造One應(yīng)用的體系架構(gòu),這家大型銀行做了什么工作呢?他們需要在創(chuàng)建新應(yīng)用的時候基于SOA的架構(gòu),即構(gòu)件作為業(yè)務(wù)的基本單元,基于構(gòu)件做開發(fā)、部署、管理和維護,同時構(gòu)件的標準是基于SOA的規(guī)范實現(xiàn)的,以統(tǒng)一的技術(shù)規(guī)范實現(xiàn)基礎(chǔ)構(gòu)件與一些平臺整合集成構(gòu)件的封裝。圍繞統(tǒng)一的技術(shù)架構(gòu),構(gòu)造SOA的應(yīng)用平臺,實現(xiàn)單一應(yīng)用的不同構(gòu)件的開發(fā),這個平臺提供相應(yīng)的一系列平臺化的特性,比如說一體化的開發(fā),構(gòu)件的容器,基礎(chǔ)的構(gòu)件庫,應(yīng)用框架,以及包括像流程、規(guī)則、報表業(yè)務(wù)化的套件以及構(gòu)建服務(wù)管理監(jiān)控的環(huán)境。
每一個業(yè)務(wù)應(yīng)用產(chǎn)生的流程都會通過流程引擎,實現(xiàn)之后將產(chǎn)生的任務(wù)自動推送到集中的任務(wù)中心。自動推送可以通過多種方式實現(xiàn),例如基于WebService,或者通過ESB(企業(yè)服務(wù)管理平臺)基于消息的方式實現(xiàn)。當(dāng)然這些任務(wù)消息也可以推送到像郵件系統(tǒng)、短信平臺、即時消息等渠道平臺。
在這種模式下,老陳每天通過集中用戶中心的任務(wù)列表來處理和瀏覽不同的任務(wù),這樣他就不會遺漏工作,也不會因為登錄耽誤時間。而小雨可以把所有能夠操作的業(yè)務(wù)內(nèi)容都整合在一起,這樣可以非常方便快捷地操作她所需要的信息,而且每一次的操作由原來的鼠標點擊5次以上,簡化為鼠標點擊1次。對于小張來說,因為基于統(tǒng)一的業(yè)務(wù)平臺業(yè)務(wù)模式的開發(fā),在開發(fā)、更改和維護的過程當(dāng)中,他的工作變得更加從容和省心。
鏈接
案例對比
網(wǎng)上銀行是Synovus第一次嘗試實現(xiàn)SOA,并且得到了很好的結(jié)果。創(chuàng)新解決方案團隊用一個不容失敗的項目取得了第一次實現(xiàn)SOA的圓滿成功,盡管有人認為這很冒險。然而,由于在技術(shù)上的謹慎選擇為實現(xiàn)帶來了便利,Synovus可以說收獲頗豐,CIO和CTO都清楚地認識到,盡管會有一個磨合期,但SOA使得整合多個系統(tǒng)更加方便,公司將持續(xù)受益。
Synovus公司有一個意料之外的發(fā)現(xiàn),他們需要更多的文檔管理員而不是開發(fā)人員。過去,他們在實現(xiàn)團隊中配備一兩名文檔管理員就足夠了,但現(xiàn)在開發(fā)的壓力減小了,反而需要更多的文檔管理員來調(diào)度和完善項目。Synovus很快認識到了這一點,于是他們開始使用ActiveVOS,這樣能夠進一步提高開發(fā)人員的效率。
Synovus真正理解和利用了SOA,并且得到了很好的回報。沒有網(wǎng)上銀行,他們每個月只能處理400萬筆交易,而現(xiàn)在他們每個月能夠處理2000萬筆。
最后,Synovus認識到了QA(質(zhì)量保證)的重要性。他們需要創(chuàng)建一整套QA體系,而不僅僅是每次都運行一系列雷同的測試案例。Synovus需要建立一套標準,對整個QA過程進行監(jiān)管,確保建立的服務(wù)能夠被很好地復(fù)用,而不是一次性產(chǎn)品。
而后面那家銀行的應(yīng)用其實只是我國企業(yè)探索應(yīng)用SOA的一個小的案例。對比國內(nèi)外企業(yè)應(yīng)用SOA的情況,普元軟件CEO沈惠中總結(jié)說,國外企業(yè)由于信息技術(shù)和應(yīng)用的成熟度已經(jīng)比較高,所以他們要做SOA,就是要做一個企業(yè)級的全面規(guī)劃,而后將好多標準現(xiàn)成的應(yīng)用快速地變成SOA的服務(wù),完成不同應(yīng)用系統(tǒng)的集成整合。但對中國的企業(yè)來說則不同,我們很難一步到位實現(xiàn)SOA,因為我們也已經(jīng)有好多的系統(tǒng)在運行,但是我們的應(yīng)用系統(tǒng)之間的接口并不是很清晰,邊界也不是很明確。一方面我們短時期內(nèi)做全面的IT規(guī)劃的能力還有待加強,另一方面非技術(shù)化、業(yè)務(wù)化問題的影響也讓我們不能一步到位地實現(xiàn)SOA,不能在飛機正在高速飛行的時候更換馬達,風(fēng)險太大。因此,首先我們在開始建設(shè)SOA的時候,不應(yīng)從整個企業(yè)的IT規(guī)劃開始,而是應(yīng)該從單個應(yīng)用或者一組相關(guān)的應(yīng)用開始進行,并且我們要建設(shè)一個SOA的時候,不應(yīng)該從零去建設(shè),而應(yīng)該在我們已經(jīng)總結(jié)好的幾十個、幾百個構(gòu)件與基礎(chǔ)服務(wù)上快速建設(shè)和應(yīng)用,這樣可以大大地降低實施風(fēng)險。