在今天,競爭激烈、變化越來越快的全球化商業(yè)環(huán)境中,傳統(tǒng)企業(yè)觀受到嚴重挑戰(zhàn),如何靈活快速適應變化、創(chuàng)新求變,成為企業(yè)生存和發(fā)展的頭等大事。在業(yè)務敏捷性的實踐中,SOA正成長為IT促進業(yè)務提高的轉移范式,從設計原則、架構范式以及技術、標準和產(chǎn)品中實踐著它面向服務架構的偉大使命。
業(yè)務敏捷性向業(yè)務與IT兩個世界發(fā)起挑戰(zhàn)
事實上,許多企業(yè)都無法實現(xiàn)“業(yè)務敏捷”。他們的工作人員各自行動,計算機系統(tǒng)又相互隔離,不能協(xié)同工作:一方面是由IT部門負責的信息系統(tǒng)是,另外一方面則是調整IT系統(tǒng)所需要必要時間和成本。受這二者的制約,企業(yè)變化要么時機已逝,要么得不償失。因此,業(yè)務方作為利潤中心,總是抱怨IT每年都要花很多錢,不僅不能獲得良好的投資回報,也不能幫助建立戰(zhàn)略性的競爭優(yōu)勢。而IT方作為成本中心,往往怨恨自己沒有得到應有的重視,資金不夠、加班加點。這種現(xiàn)象的出現(xiàn)也就不足為奇。
到底應如何看待IT與業(yè)務之間的關系?
首先,業(yè)務活動是由業(yè)務人員和信息系統(tǒng)共同完成的,業(yè)務人員執(zhí)行人工活動,比如拜訪客戶、輸入訂單和客戶資料、做出商務決策等等,而信息系統(tǒng)執(zhí)行各種自動化活動,包括商業(yè)邏輯、業(yè)務規(guī)則、管理業(yè)務數(shù)據(jù),提供界面連接人員和信息系統(tǒng)。所以IT是業(yè)務的一個重要組成部分。
其次,業(yè)務方?jīng)Q定人工活動和自動化活動的需求,管理人工活動,但是他們往往不具備必要的技術能力來建立、維護和運營那些支持自動化活動的信息系統(tǒng),這些工作被委托給自己的IT部門或者外包。所以IT要服務于企業(yè)戰(zhàn)略,為業(yè)務建立競爭優(yōu)勢,幫助業(yè)務快速應變和創(chuàng)新求變。
可見,業(yè)務敏捷性首先需要的是一個靈活的業(yè)務模式(Business Model),業(yè)務自身不靈活,想改變卻心有余而力不足,IT 再能干也是干著急。其次,需要IT的敏捷性,也就是說一個當業(yè)務改變的時候,那些自動化活動說變就變,隨業(yè)務的變化而變化,花的時間少,花的人力物力也少。這種IT的靈活性,對IT的所有方面都提出了挑戰(zhàn),從架構、方法論、技術、產(chǎn)品,到過程、成熟度和管控。最后,還需要IT與 業(yè)務這對“冤家”之間的有效溝通與親密合作。
這很不容易,業(yè)務與IT來自兩個不同的世界,看世界的方式不同,所使用的“語言”也不同。大多數(shù)時候,業(yè)務不愿意花足夠的時間在 IT 上,反過來,IT也不愿意花足夠的時間去理解業(yè)務。他們把更多的心思放在技術上,有時候甚至為技術而技術,忘了IT是為業(yè)務和戰(zhàn)略服務的。 因此,業(yè)務敏捷性同時向業(yè)務和IT兩個世界發(fā)起挑戰(zhàn),溝通和協(xié)調成為必然。
SOA暢行業(yè)務與IT兩個世界
業(yè)務架構描述業(yè)務世界:從業(yè)務領域、業(yè)務組件、業(yè)務對象,到業(yè)務服務、業(yè)務流程、業(yè)務規(guī)則……IT架構描述IT世界:從應用、數(shù)據(jù)、集成、安全、基礎設施(包括服務器、存儲、網(wǎng)絡),到IT運營,全面覆蓋……兩個“世界”共同服務于企業(yè),而如何實現(xiàn)兩個世界協(xié)作則成為企業(yè)戰(zhàn)略目標實現(xiàn)的關鍵!
SOA正是溝通兩個“世界”使命的承擔者,它提出了架構管控的概念,從角色、活動、職責,到協(xié)作、審批和監(jiān)管的框架,保證有一個游戲規(guī)則來讓這些東西真正地服務于企業(yè)的戰(zhàn)略和目標。
然而,大多數(shù)企業(yè)對自己的業(yè)務模型仍停留在自發(fā)狀態(tài),缺乏業(yè)務方面的嚴謹企業(yè)架構實踐,更談不上業(yè)務與IT的溝通,這直接帶來兩個問題:
一是業(yè)務優(yōu)化、應變和創(chuàng)新缺乏形式化和數(shù)字化的基礎,很容易靠感覺辦事。這種“拍腦袋”應變策略,往往帶來很多問題,有些時候,這些問題的原因被強加到IT的頭上,而使IT承擔了不應承擔的責任。
二是業(yè)務和IT之間缺乏“可追溯性”(Tracability)。在將業(yè)務的需求映射到IT的時候,使用模糊的自然語言,容易造成翻譯后的失真和變形。同時,細粒度的操作層次所定義的需求,受到變化的沖擊大而快。這最終導致業(yè)務和IT在進行需求映射,尤其是在需求發(fā)生變化時,很難保證好的可追溯性,從而導致業(yè)務的需求無法準確地映射到IT,業(yè)務需求的變化很難被快速地定位到IT。
傳統(tǒng)模式需要引入新的IT架構范式和抽象層次,從而為企業(yè)的業(yè)務活動和流程提供多系統(tǒng)相互協(xié)作的IT支持,SOA則恰好扮演了這個角色。
SOA為業(yè)務與IT兩個世界帶來什么?
SOA究竟在實現(xiàn)業(yè)務和IT兩個世界的溝通中體現(xiàn)了怎樣的價值?筆者認為:
① SOA在業(yè)務與IT之間增加了一個新的抽象層次,就是“業(yè)務層次上的契約”,用來描述不同的業(yè)務組件(或者業(yè)務對象)之間交互的接口。這就是SOA通常所說的“服務”。
其中包括功能接口、服務質量約定(Service Level Agreement)和業(yè)務策略等。它們是用于組件化地對業(yè)務建模,通常其粒度比技術層次上的對象或者組件接口要粗,而業(yè)務流程就是通過將這些服務編排在一起得到的。當業(yè)務流程發(fā)生變化時,有些變化通過改變服務的配置(如業(yè)務策略)來完成,有些變化通過重新組裝已有服務來完成,有些變化要用到現(xiàn)有服務之外的業(yè)務功能,則需要外購或者開發(fā)少量新服務,然后重新組裝。
業(yè)務組件化建模所得到的服務模型,解耦了業(yè)務架構和IT架構,提供了業(yè)務架構和IT架構之間良好的映射能力和變化的可追溯性,即在服務定義不變的情況下,業(yè)務和IT可以獨立地演變,帶來很好的靈活性。
?、?SOA建立了一個新的集成架構,負責將遺留系統(tǒng)和新建的系統(tǒng)連通起來,讓不同技術世界的服務組件可以相互以Web服務接口為中介來松散耦合地交互。
這牽涉到各種協(xié)議、API、消息格式的轉換、服務端點的發(fā)現(xiàn)和綁定、消息的路由、服務質量的保證、服務策略的實施等等。SOA繼承了過去EAI (Enterprise Application Integration)和MOM(Message Oriented Middleware)的最佳實踐,比如“企業(yè)服務總線”(Enterprise Service Bus,ESB)作為一種架構風格元素,用于在分布式環(huán)境下提供松散耦合的集成基礎,但是SOA使用了Web服務,建立在標準和開放技術的基礎上,而不是私有的技術、標準和方式。新的集成架構還引入Service Registry,ESB與之合作提供服務的動態(tài)發(fā)現(xiàn)和綁定。ESB的實現(xiàn)通常會利用已有的消息中間件。
?、?SOA通常會創(chuàng)建一個數(shù)據(jù)服務層,集成EII(Enterprise Information Integration)的技術和最佳實踐。
這個集成架構,要確保所有服務和應用在開發(fā)之時,能夠跟其他的應用和服務集成,不管它們今天是否存在,互聯(lián)互通、相互集成、“開發(fā)即集成”是SOA對技術層面的基本要求。
值得提醒的是,SOA一個很重要的設計原則ESB是基于“服務”的分布式集成,很多基于“細粒度”的接口和消息集成,并不符合SOA的設計原則,也將導致可能的性能問題。
④ 在應用架構方面,新的SOA技術和標準,比如SCA/SDO允許你采用平臺和語言相關的方式實現(xiàn),但是組件實現(xiàn)的服務接口則是標準化的。
復合應用(Composite Application)建立在其他應用的基礎上,通過將來自Portal應用的人工活動、B2B的合作伙伴應用、數(shù)據(jù)服務和本地業(yè)務服務來快速形成新應用?;贐PEL等標準的流程引擎,使用“聲明式”的方式來將服務編排在一起,在復合應用中起著重要的作用。這些都是在已有的應用平臺上增加而來,比如IBM的WebSphere Process Server支持SCA/SDO和BPEL,它是在IBM的J2EE服務器WebSphere Application Server的基礎上實現(xiàn)的。
我們前面所設計的服務,實現(xiàn)它們的IT組件就表現(xiàn)為一些SCA組件,或者EJB、POJO組件,而業(yè)務流程則在IT層次上實現(xiàn)為BPEL或者一些SCA組件。這些服務和流程都有自己基于標準的形式化描述,保存在服務注冊庫(Service Registry)中。
?、?SOA Governance被用來在整個服務的生命中期中,將來自業(yè)務和IT的人協(xié)調起來,讓他們各司其職,有章可循,相互協(xié)作。
在實現(xiàn)層面,這通常需要借助于Service Registry來管理服務的生命周期,同時,我們需要擴展現(xiàn)有的管理產(chǎn)品,從基礎設施、應用和組件的管理,延伸到服務、流程和業(yè)務活動和業(yè)務績效的管理。在這個基礎上,建立數(shù)字化的服務和流程優(yōu)化策略,從而使得IT可以主動地向業(yè)務提供業(yè)務優(yōu)化和調整的支持。
辨明SOA認識的四個誤區(qū)
簡單的說,SOA的產(chǎn)生遵循了這樣的邏輯主線:業(yè)務敏捷性需要一個靈活的業(yè)務模型,業(yè)務模型需要一個靈活的IT來支持。同時,良好的業(yè)務建模,IT與業(yè)務之間的對齊和互動變得很重要,所以基于企業(yè)架構的實踐,橫貫業(yè)務和技術的SOA管控被用來保證SOA轉型的成功。
一個靈活的IT需要遵循必要的設計原則,比如關注點分離、松散耦合,而這些設計原則結合具體技術形式體現(xiàn)在IT架構中,將會形成自己的架構風格,這當然也由一些架構元素支撐,比如ESB,服務注冊庫等。這些架構元素多多少少都能夠從過去的IT當中找到些影子,但是,它們使用新技術,建構在開放標準和技術的基礎上,融合和繼承了過去的實踐成果,也同時容易產(chǎn)生誤解:
誤解一:SOA = ESB
ESB只是SOA架構中的一個元素,負責轉換、路由和服務質量等??创齋OA,應該從業(yè)務、技術、管控等不同的角度來看待。
誤解二:SOA = Web Service
Web Service通常指基于SOAP/HTTP的Web服務,這些服務是實現(xiàn)SOA中所定義服務的一種技術形式。Web Service提供了分布式環(huán)境下卓越的互操作能力。
④ 在應用架構方面,新的SOA技術和標準,比如SCA/SDO允許你采用平臺和語言相關的方式實現(xiàn),但是組件實現(xiàn)的服務接口則是標準化的。
復合應用(Composite Application)建立在其他應用的基礎上,通過將來自Portal應用的人工活動、B2B的合作伙伴應用、數(shù)據(jù)服務和本地業(yè)務服務來快速形成新應用?;贐PEL等標準的流程引擎,使用“聲明式”的方式來將服務編排在一起,在復合應用中起著重要的作用。這些都是在已有的應用平臺上增加而來,比如IBM的WebSphere Process Server支持SCA/SDO和BPEL,它是在IBM的J2EE服務器WebSphere Application Server的基礎上實現(xiàn)的。
我們前面所設計的服務,實現(xiàn)它們的IT組件就表現(xiàn)為一些SCA組件,或者EJB、POJO組件,而業(yè)務流程則在IT層次上實現(xiàn)為BPEL或者一些SCA組件。這些服務和流程都有自己基于標準的形式化描述,保存在服務注冊庫(Service Registry)中。
?、?SOA Governance被用來在整個服務的生命中期中,將來自業(yè)務和IT的人協(xié)調起來,讓他們各司其職,有章可循,相互協(xié)作。
在實現(xiàn)層面,這通常需要借助于Service Registry來管理服務的生命周期,同時,我們需要擴展現(xiàn)有的管理產(chǎn)品,從基礎設施、應用和組件的管理,延伸到服務、流程和業(yè)務活動和業(yè)務績效的管理。在這個基礎上,建立數(shù)字化的服務和流程優(yōu)化策略,從而使得IT可以主動地向業(yè)務提供業(yè)務優(yōu)化和調整的支持。
辨明SOA認識的四個誤區(qū)
簡單的說,SOA的產(chǎn)生遵循了這樣的邏輯主線:業(yè)務敏捷性需要一個靈活的業(yè)務模型,業(yè)務模型需要一個靈活的IT來支持。同時,良好的業(yè)務建模,IT與業(yè)務之間的對齊和互動變得很重要,所以基于企業(yè)架構的實踐,橫貫業(yè)務和技術的SOA管控被用來保證SOA轉型的成功。
一個靈活的IT需要遵循必要的設計原則,比如關注點分離、松散耦合,而這些設計原則結合具體技術形式體現(xiàn)在IT架構中,將會形成自己的架構風格,這當然也由一些架構元素支撐,比如ESB,服務注冊庫等。這些架構元素多多少少都能夠從過去的IT當中找到些影子,但是,它們使用新技術,建構在開放標準和技術的基礎上,融合和繼承了過去的實踐成果,也同時容易產(chǎn)生誤解:
誤解一:SOA = ESB
ESB只是SOA架構中的一個元素,負責轉換、路由和服務質量等??创齋OA,應該從業(yè)務、技術、管控等不同的角度來看待。
誤解二:SOA = Web Service
Web Service通常指基于SOAP/HTTP的Web服務,這些服務是實現(xiàn)SOA中所定義服務的一種技術形式。Web Service提供了分布式環(huán)境下卓越的互操作能力。
文章來源:CIO時代網(wǎng)