當今,無論你走到哪里,都會看到一些關于SOA的東西,以及關于用“適當”的方式執行它的爭辯。筆者認為這一點也不奇怪,因為伴隨著每一個IT行業相關的新趨勢的出現,都會有爭辯,并且賣主會盡力說服顧客相信,他們的技術才是適當的技術、產品。
當賣主為了迎合消費者對于信息技術一個新趨勢的興趣,試圖重新配制他們現有的產品組件時,搶奪開始了。但是很不幸,這種行為通常會引起許多混亂局面,因為賣主的諾言一般是不會實現。當然,面向服務架構適當的技術方案,也可能并不像他們說的那樣好。
為了對此建立正確的觀點,重要的是應該注意到,像定義所說,SOA是分布式的。一項服務的目的就是,通過遠程線路跟另一項服務相通,以共享數據為特色。而其整體的目的是,改變信息技術的途徑,由原來的制定輻射中心的小部分應用軟件,到制定另一系列的應用軟件,它可以通過集合共享的并且可以再度利用的功能性,即各種服務,開發和匯集越來越多的應用資產。
緊耦合VS松耦合
現在宣傳SOA的廠家非常之多,但是真正提出分布式SOA架構的并不多。因為很多大型軟件廠商習慣了以緊耦合的方式提供SOA架構的主要功能,SOA緊緊地和他們的數據庫、操作系統、服務器和存儲綁定,這種緊耦合方式缺乏與其他系統的互操作性,初期需要大量的資金投入,往往會導致用戶對某個廠商的依賴。緊耦合式SOA架構導致用戶對采用SOA處于猶豫狀態,因為還未看到成功的希望時就需要大量的投資。
面向服務的體系結構最重要的一個思想就是實現軟件間的松耦合。松耦合的軟件結構可以降低軟件的復雜性,提高重用性,使軟件能夠更好地適應需求的變換。
其實,用戶更需要低成本的SOA解決方案,令他們可以從小規模SOA做起,并隨著業務的增長逐步擴大規模,同時根據自身的需求增加服務質量和其他功能等。
與此同時,用戶可以使用點到點的通信方式,避免新增加昂貴的服務器。簡而言之,SOA用戶需要的SOA架構必須真正具備SOA架構的固有特性也就是分布式的特性,如圖1所示。
SOA的本質是通過松耦合的方式實現服務的重用。分布式SOA則是把松耦合的優勢發揮得淋漓盡致。它可以幫助用戶擺脫緊耦合的束縛,以較少的投資開始SOA建設,用戶只配置需要的功能,并根據需要以漸近的方式擴大整合的規模。分布式SOA可以在運行環境中動態配置,也就是說用戶的業務無需中斷。分布式SOA基礎架構,具備今天SOA所涉及的全部元素。
一個分布式SOA的基礎結構,代表著配制和吸收可共享和再度利用的服務最簡易的方法,促進對服務的應用,提高部署的靈活性、適應性和持久性。
不幸的是,到達SOA基礎結構的途徑被集中化,并不斷被開發和提議。
對于賣主來說,說服購買技術的群眾相信提供給他們的技術已經是跟SOA相適應的,以前是,以后也是,設計這項技術的初衷就是加快顧客走向SOA的步伐,將是一個更艱難的過程。賣主也不管它最初是以J2EE應用服務器還是EAI系統的形式設計出來的。
換言之,對分布式SOA持對立態度的賣主通常這樣做,因為途徑集中化是他們已經擁有的軟件基礎構架的特征。一個更新了的企業應用集成或一個基于JEE的堆棧,或其他任何在通過中控點時需要發送請求的方案,都不能被看成是真正的分布式,因為它們所有通向服務路徑的前提都是必須首先進行集中處理。將通往SOA途徑集中增加了成本,限制了再利用,降低了靈活性,且暗中引入了一個昂貴的瓶頸。最壞的情形是,它將在第一時間否定到達SOA的理由。如果SOA的基礎構架的靈活性沒有滿足他們的要求,人們一定會感到很失望。
只要上網查,就可以了解分布式應用軟件滿足其用戶需求的成功案例。網絡是目前最大的分布式應用程序,由特征決定其分布模式,SOA是同樣的道理。
當你在瀏覽器上點擊一個鏈接到某一個具體網址時,你的需求并不需要經由某個配制在一個服務器或者網絡中心的中控系統,而是直接從你的瀏覽器傳達到網絡服務器,這種模式在企業的SOA運作得也非常好。
網絡終端能夠以個體為單位進行升級,而不會打斷客戶機程序的運轉,影響其他站點,或者導致中央集線路或服務器也需要更新,那是因為需求不需要首先通過一個中央集線路或者服務器。一個好的SOA的基礎構架同樣支持這些性能。
幸運的是,一個基礎構架方案包含了SOA分布式的特征。到達SOA基礎構架分布式的途徑使用很精巧的終端,有可提供服務的應用軟件,并使得這些軟件能夠直接跟其他服務相通。企業性質的服務,比如具有高度的實用性或者安全性的服務,也可以由終端系統提供,以確,F有的承擔著重大使命的應用軟件有所依靠。
分布式SOA的基礎構架是關于創造信息技術環境的,這個信息環境是一個交流平臺,標準高,靈活性強,所以它可以對不斷更新的技術和商業前景做出更有效的反應。因此,一個分布式的SOA工作環境能夠更好地支持一個以SOA為基礎的應用軟件的技術和經濟需求。最后,到達SOA基礎構架的分布式途徑允許你以自己的速度進行,每次配制一個或兩個服務,可以根據需要隨時增加服務,注冊/存儲庫,管理等功能,而不是事先就必須完全添加好的。
分布式SOA的好處與航空行業有相似之處,后者用成本低廉的操作系統挑戰著已建造的航空器。已制定操作系統的方法是以一個成本很高的樞紐和輻射模式為基礎,通過少數幾個專業的旅游中心匯集乘客。操作大型飛機需要更多成本,從分支機場飛往樞紐機場,乘客在那里準備繼續他們的旅程到達最終目的地。用這種模式,飛機需要更多成本,機場設備的費用也因此增加。當低成本航線—一個分布更廣的,點對點的運作模式(較小的飛機直接飛往較小的機場)—被制定出來之后,被傳統的樞紐模式所束縛的航線便在資金方面處于劣勢。
SOA的消費者不需要再花錢買老式的昂貴的軟件堆棧了。SOA設計需要一個好的方式來創造和配制可再利用性服務,無論何時何地只要有需要就能夠很簡易并且直接地拿出來用的方式。消費者需要成本低的選項,可以讓他們從小規模開始,隨需要逐漸增加對它的采用,運用點對點通訊方案可以避免使用昂貴的新服務器和集成線路,根據需求增加服務的質量和其他性能?偠灾,他們需要SOA的基礎構架,它能夠真正符合一個SOA固有的分布式特征。
SOA治理同等重要
隨著服務數量的增加,管理服務成為SOA過程中的一項重要工作,與IT治理同等重要。
同樣需要指出的是,IT系統在建立之日起就需要考慮IT治理的理念和方法一樣,SOA也存在著類似的問題。隨著大量服務的構建,系統也日益復雜,尤其是隨著服務的可重用性日益提高,調用同一個服務的請求的個人和部門也越來越多。而Web服務的數量越來越多且被不同的部門調用和管理的時候,SOA治理問題就被提上了日程,對IT系統有靈活、可擴展和快速響應需求的企業尤其如此。所以說,SOA的構建和與治理幾乎是同步的,這關系著一個企業能否從SOA上獲得高收益,甚至也決定著SOA的成功與否。
SOA治理并不設計服務,而是指導將如何設計服務。這可以幫助回答和解決很多關于SOA的問題,包括:我們提供了那些服務?誰可以使用這些服務?它們的可靠性、安全性如何?……
因此,治理更多的是策略問題,而不是技術或業務問題。
延伸閱讀
文章來源于領測軟件測試網 http://www.k11sc111.com/