熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

下一代軟件架構--SOA(面向服務架構)

2022-06-13   來源: Java核心技術 

  Web服務作為炙手可熱的技術如何應用到企業的IT系統和商業流程之中並給企業帶來直接的經濟效益一直備受國內外企業管理者的高度關注和推崇而在近兩年出現了一種技術架構被譽為下一代Web服務的基礎架構它就是SOA(Serviceoriented architecture面向服務架構)Gartner最早提出SOAGartner提出SOA是現代應用開發領域最重要的課題還預計到SOA將成為占有絕對優勢的軟件工程實踐方法主流企業現在就應該在理解和應用SOA開發技能方面進行投資
  
  更好支持商業流程
  SOA並不是一個新事物IT組織已經成功建立並實施SOA應用軟件很多年了BEAIBM等廠商看到了它的價值紛紛跟進SOA的目標在於讓IT變得更有彈性以更快地響應業務單位的需求實現實時企業(RealTime Enterprise這是Gartner為SOA描述的願景目標)而BEA的CIO Rhonda早在月就提出要將BEA的IT基礎架構轉變為SOA並且從對整個企業架構的控制能力提升開發效率加快開發速度降低在客戶化和人員技能的投入等方面取得了不錯的成績
  
  SOA是在計算環境下設計開發應用管理分散的邏輯(服務)單元的一種規范這個定義決定了SOA的廣泛性SOA要求開發者從服務集成的角度來設計應用軟件即使這麼做的利益不會馬上顯現SOA要求開發者超越應用軟件來思考並考慮復用現有的服務或者檢查如何讓服務被重復利用SOA鼓勵使用可替代的技術和方法(例如消息機制)通過把服務聯系在一起而非編寫新代碼來構架應用經過適當構架後這種消息機制的應用允許公司僅通過調整原有服務模式而非被迫進行大規模新的應用代碼的開發使得在商業環境許可的時間內對變化的市場條件做出快速的響應
  
  SOA也不僅僅是一種開發的方法論它還包含管理例如應用SOA後管理者可以方便的管理這些搭建在服務平台上的企業應用而不是管理單一的應用模塊其原理是通過分析服務之間的相互調用SOA使得公司管理人員方便的拿到什麼時候什麼原因哪些商業邏輯被執行的數據信息這樣就幫助了企業管理人員或應用架構師迭代地優化他們的企業業務流程應用系統
  
  SOA的一個中心思想就是使得企業應用擺脫面向技術的解決方案的束縛輕松應對企業商業服務變化發展的需要企業環境中單個應用程序是無法包容業務用戶的(各種)需求的即使是一個大型的ERP解決方案仍然不能滿足這個需求在不斷膨脹變化的缺口對市場快速做出反應商業用戶只能通過不斷開發新應用擴展現有應用程序來艱難的支撐其現有的業務需求通過將注意力放在服務上應用程序能夠集中起來提供更加豐富目的性更強的商業流程其結果就是基於SOA的企業應用系統通常會更加真實地反映出與業務模型的結合服務是從業務流程的角度來看待技術的這是從上向下看的這種角度同一般的從可用技術所驅動的商業視角是相反的服務的優勢很清楚它們會同業務流程結合在一起因此能夠更加精確地表示業務模型更好地支持業務流程相反我們可以看到以應用程序為中心的企業應用模型迫使業務用戶將其能力局限為應用程序的能力
  
  企業流程(enterprise process)是流經企業框架的空氣它賦予業務模型裡的組件以生命並更加清晰地定義了它們之間的關系流程定義了同業務模型進行交互操作的專門方法例如會計可能是企業服務系統的一個組件但是將發票寄給客戶卻是一個業務流程服務被定義用來支持業務流程因而貫穿整個流程始終的是各種服務組件在流程和邏輯實現過程中的裝配操作理解業務流程是定制服務的關鍵所在
  
  有利於企業業務的集成
  傳統的應用集成方法(點對點集成企業消息總線或中間件的集成(EAI)基於業務流程的集成)都很復雜昂貴並且不靈活這些集成方法難於快速適應基於企業現代業務變化不斷產生的需求基於面向服務架構 (SOA) 的應用開發和集成可以很好的解決其中的許多問題
  
  SOA 描述了一套完善的開發模式來幫助客戶端應用連接到服務上這些模式定制了系列機制用於描述服務通知及發現服務與服務進行通信
  
  不同於傳統的應用集成方法在 SOA 中圍繞服務的所有模式都是以基於標准的技術實現的大部分的通信中間件系統如 RPCCORBADCOMEJB 和 RMI也同樣如此可是它們的實現都不是很完美的在權衡交互性以及標准定制的可接受性方面總是存在問題SOA 試圖排除這些缺陷因為幾乎所有的通信中間件系統都有固定的處理模式如RPC 的功能CORBA 的對象等等然而服務既可以定義為功能又可同時對外定義為對象應用等等這使得 SOA 可適應於任何現有系統並使得系統在集成時不必刻意遵循任何特殊定制
  
  SOA 幫助企業信息系統遷移到leaveandlayer架構之上這意味著在不用對現有的企業系統做修改的前提下系統可對外提供 Web 服務接口這是因為它們已經被可以提供 Web 服務接口的應用層做了一層封裝所以在不用修改現有系統架構的情況下SOA 可以將系統和應用迅速轉換為服務SOA 不僅覆蓋來自於打包應用定制應用和遺留系統中的信息而且還覆蓋來自於如安全內容管理搜索等 IT 架構中的功能和數據因為基於 SOA 的應用能很容易地從這些基礎服務架構中添加功能所以基於SOA的應用能更快地應對市場變化為使企業業務部門設計開發出新的功能應用
  
  下圖提供了使用基於服務集成的企業應用的高級視圖與傳統的企業應用集成架構的主要區別在於該系統使用基於標准的服務並包括過程/數據服務編排和組合基於標准的服務成了應用間的集成點服務的編排和組合增加了服務的靈活性重用性和集成性
  
 

  
圖示使用基於服務集成的企業應用

  
  SOA服務粒度
  可以按基於服務的功能及發送和接收的數據數量來定義服務如細粒度服務粗粒度服務或組合服務
  
  在 SOA 中服務粒度有兩種相關的意思服務是如何實現的服務使用和返回了多少數據或多少消息細粒度服務執行了最小的功能發送和接收少量的數據粗粒度服務執行了較大的業務功能並交換了更多的數據
  
  細粒度服務是供粗粒度服務或組合服務使用的而不是由終端應用直接使用的如果應用是使用細粒度服務建立的則應用將不得不調用網絡上多個服務並且發生在每個服務上的數據量較少因而會對對系統整體性帶來影響所以粗粒度服務的用戶不能直接調用他所使用的細粒度服務然而由於粗粒度服務可能使用多個細粒度服務因此它們不能提供粒度級的安全和訪問控制
  
  組合服務可以使用粗粒度服務和細粒度服務進行組裝數據數量數量不是粗粒度服務和組合服務之間的區別粗粒度服務例子如創建新客戶在這一過程的操作是需要通過一些外部服務驗證對客戶進行驗證並在 CRM 應用系統中創建客戶記錄組合服務例子可以是提供一個新的DSL線這需要一個服務調用來驗證定單創建或驗證客戶確認產品庫存及為數據線分配資源
  下圖描述了服務粒度的不同級別及它們之間的關系
  

  
圖示服務粒度

  
  通過一組有效設計和組合的粗粒度服務業務專家就能夠有效地組合出新的業務流程和應用程序了
  
  SOA與Web服務
  SOA不是一定需要 Web 服務來實現並且一個基於Web 服務開發出來的應用也不代表就是一個基於 SOA 構架應用Web 服務只是服務實現的一個典型是實現企業 SOA的一個組件(非必需組件)SOA 為基於服務的分布式系統提供了概念上的設計模式Web 服務則是基於標准的可經濟實惠地實現 SOA的一項技術
  
  SOA將IT資源透過服務這樣一個在業務上有重要涵義的概念來提供共享把IT與業務的距離更加拉近了一步服務在涉及的層次上要比組件函數流程等更高而且往往在業務上可以找到與之直接對應的概念或實體例如報價訂單服務打破了IT系統間的藩籬就像一家公司的各個部門平常各自扮演特定對內或對外服務的角色但彼此間如果能有效地通過共通的語言及文字進行良好的溝通便能協力達成更大更高的目標
  
  隨著SOA和Web服務的潮流帶來了組合式應用(composite application)的開發方式和觀念開始逐漸被大量應用在Portal(門戶)和Integration(集成)上組合式Portal的做法就是通過Portal界面所提供的應用往往不是真的在Portal服務器上執行而是將Web服務即時抓過來再加以呈現同時匯總給Portal的使用者在整合方面也是采用組合式的方式通過高級工具來設定使系統得以靈活地配合任務的調整對各項以Web服務方式提供的服務進行不同形式的串聯和協作同時快速地加以部署BEA發布了一個企業門戶合理化(enterprise portal rationalizationEPR)戰略這個戰略用來平衡BEA WebLogic Platform的SOA能力憑借最好的行業實踐和行業專家幫助客戶解決多年來形成的散亂的portal和Web應用程序開發
  
  如果說Web服務等技術是SOA的血肉那麼正確的服務設計理念及系統運行平台則是SOA的靈魂SOA試圖讓IT能更快和業務同步在規劃上以提供彈性的業務服務為目標從CIO到負責規劃的系統分析人員需要和業務單位策略伙伴間有充分的溝通CIO必須認識到SOA的建立將是一個為期數年的承諾基礎建設需要按部就班地進行資助的模式也必須在IT和各個業務部門間建立來陸續支援基礎建設及各項業務服務的開發
  
  在中間件領域SOA架構日益成為中間件軟件供應商爭
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26963.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.