SOA的架構理念,不僅用松耦合的分層結構隔離了技術(shù),使得業(yè)務(wù)和技術(shù)的變化周期可以不互相影響;更重要的是,它還可以把不同知識域的人放在一個(gè)平臺上討論問(wèn)題,比如用一個(gè)Workspace平臺可以將業(yè)務(wù)人員、架構師、IT主管、程序員集成起來(lái),讓他們可以在一個(gè)桌子上交談,從業(yè)務(wù)流程的設計到實(shí)現,現在可以用一種貫通的方式進(jìn)行討論與及時(shí)修改。
以前,不同知識域的人群,由于專(zhuān)業(yè)分工,有各自的思考角度,互相難于理解?,F在,那些以前隔著(zhù)墻打電話(huà)的人,可以在SOA這樣一個(gè)平臺上共同的交換信息,完成任務(wù)。所有人都知道好的應用程序是不可能由不懂業(yè)務(wù)的程序員開(kāi)發(fā)出來(lái)的,但苦于無(wú)法在業(yè)務(wù)和技術(shù)人員之間建立一種共同語(yǔ)言,現在這種語(yǔ)言出現了,就是服務(wù)。
用契約的方式定義層次之間的關(guān)系
服務(wù)之間的調用契約來(lái)固定,其實(shí)不難理解,這就是市場(chǎng)經(jīng)濟的本質(zhì)。
最早理論基礎是盧梭寫(xiě)的《社會(huì )契約論》,西方經(jīng)濟體系就是基于契約架構起來(lái)的。具體到SOA的設計哲學(xué)里面,Design By Contract的目的完成了服務(wù)之間調用標準,也為未來(lái)遍及整個(gè)IT系統的服務(wù)網(wǎng)絡(luò )提供了基礎。
Google與其商業(yè)客戶(hù)之間的靠點(diǎn)擊量來(lái)計算收入的方式就是個(gè)參考的例子。以后的服務(wù)之間的調用,如同市場(chǎng)上的交易,可能是按次收費的,這樣才會(huì )把服務(wù)的生產(chǎn)方調動(dòng)起來(lái)。
這種模式,在汽車(chē)這樣的傳統行業(yè)早已通行百年,每種特定的零件都可以有很多的供應商,只要基于標準的契約來(lái)設計,安裝到整車(chē)上都可以保證整體的功能。
軟件行業(yè)的奇特之處在于,盡管軟件行業(yè)在普通人看來(lái)是個(gè)高科技,但這個(gè)行業(yè),在基于標準的生產(chǎn)方式上,遠遠不如離散制造業(yè)。這個(gè)行業(yè)充滿(mǎn)了孤膽英雄,綠林大俠,以自我為中心的散漫氣質(zhì),在中國還有一種詩(shī)意的浪漫情懷。在軟件行業(yè)內部的人,都覺(jué)得自己的江湖很有武俠境界的氣質(zhì)。
現在SOA要講契約,講標準,講交換。程序員出身的人也許會(huì )說(shuō),還不如自己開(kāi)發(fā)一個(gè)。這也許是Design By Contract面臨的最大文化難題。
用團隊演進(jìn)的方式平衡長(cháng)短期ROI
北美的SOA咨詢(xún)顧問(wèn)們,關(guān)于SOA實(shí)施的一個(gè)口頭禪是:“SOA是一個(gè)3-5年的旅程,唯一的辦法就是循序漸進(jìn)。”
我們可以把SOA理解為一種混搭的中庸架構,說(shuō)它混搭,是說(shuō)它是獨立于技術(shù)的,說(shuō)它中庸,是因為它必須與現有的各種系統相融合。SOA改變的不僅是開(kāi)發(fā)方式,而且是管理方式,甚至是業(yè)務(wù)組織的方式。它不是個(gè)IT戰略,還是一個(gè)公司戰略。
在這個(gè)緩慢進(jìn)行的改良主義過(guò)程中,如何在每個(gè)階段可以有一些階段性的回報,是管理者必須考慮的問(wèn)題。沒(méi)有管理者會(huì )批復一個(gè)五年后才能有回報,又需要投入巨大精力的提案。
針對每個(gè)企業(yè)設計一個(gè)有針對性的演進(jìn)路線(xiàn)圖,這不是個(gè)技術(shù)問(wèn)題,而是一個(gè)業(yè)務(wù)問(wèn)題,有一個(gè)瑞士保險公司的SOA案例是,客戶(hù)在一年半的時(shí)間里達到了實(shí)施SOA項目的正向投資回報,其中的案例分析精確得像財務(wù)報表。只有這樣的案例才會(huì )給管理者巨大的信心。
不是在所有的情況下都會(huì )找到這樣的項目,這種情況需要找“SOA友好”的項目,SOA的特點(diǎn)有很多,比如,它和業(yè)務(wù)敏捷正相關(guān),它和變化的強相關(guān),和集成項目的強相關(guān),和企業(yè)治理的強相關(guān)等等??蛻?hù)必須從業(yè)務(wù)和IT兩個(gè)角度來(lái)尋找切入點(diǎn)。只有步步以ROI為考量,才能將這個(gè)旅程走下去。
用集中管控的理念克服組織行為的障礙
只需要用一天把SOA的基本設計哲學(xué)講給一個(gè)管理學(xué)教授,他就會(huì )很快發(fā)現,SOA的管理與控制都是管理學(xué)命題。
去年在有關(guān)SOA的播客節目里面,我第一次用殺人游戲來(lái)比喻SOA面臨的多重囚徒困境,很快在最近得到一些客戶(hù)的印證:推進(jìn)SOA真正的難題在于組織障礙。
比如,每個(gè)部門(mén)都想享受別人的服務(wù),但自己卻不愿意開(kāi)放自己的服務(wù),現有的組織架構里面,IT部門(mén)的工作有時(shí)需要靠人脈來(lái)解決,但一旦真正開(kāi)始SOA的轉變,一些硬性的部門(mén)利益沖突,就不可能靠人脈來(lái)解決了。
信息的擁有權在現代如此重要,很多時(shí)候是部門(mén)不愿意公開(kāi)的秘密。SOA的共享理念,需要采取一種變通的方式,來(lái)獲得各部門(mén)的支持。
這很像一個(gè)建立城市公共設施的課題:如果SOA的目標是在企業(yè)級建立一套共享的IT資產(chǎn)管理體系和標準,那么這個(gè)工作就不可能僅由IT部門(mén)可以推動(dòng)。
在SOA項目的管理支持里面,需要一個(gè)SOA管控委員會(huì ),凌駕在所有部門(mén)之上,擁有絕對的生殺大權,這在很多企業(yè)里,好像要把分屬戰國諸侯的資產(chǎn),統一起來(lái),像秦始皇那樣統一度量衡。很多美國的評論家仍然認為,中國是所以成為現在的統一國家,秦始皇的貢獻最大,因為他統一了度量衡,語(yǔ)言,甚至包括車(chē)轍的標準。作為暴君的秦始皇給人的印象不好,但建立的標準人人在享用。
類(lèi)似的近期版本是蘋(píng)果公司,很多管理評論都認為,正是喬布斯的暴君風(fēng)格才保證了蘋(píng)果過(guò)去幾年的成功。政治學(xué)中有個(gè)詞描述這個(gè)概念叫“政治所必要的惡”,就是這個(gè)意思。整治豎井式的部門(mén)應用,看來(lái)沒(méi)有專(zhuān)制的狠手不行,這叫做制度保證。這些做法也許會(huì )引起某些草根程序員的反感,但是沒(méi)辦法,你看到哪個(gè)講民主的公司成功過(guò)?
聯(lián)系客服