面向服務架構的問答

  1. SOA的定義是什麼
  2. 業務流程與BPEL的關係
  3. SOA的基本發展歷史
  4. SOA的參考架構有哪些內容
  5. SOA主要的技術和標準有哪些
  6. SOA的特性有哪些
  7. SOA的設計原則有哪些
  8. SOA設計模式的粗略介紹
  9. 構建SOA架構時應注意的問題有哪些
  10. SOA的實施過程是什麼

 

1.SOA的定義是什麼

答:面向服務的體系結構(SOA),從應用和原理的角度看,有兩種公認的標準定義。

從應用的角度定義,SOA是一種應用框架,着眼於日常的業務應用,並將它們劃分爲單獨的業務功能和流程,即所謂的服務。從軟件的基本原理定義,SOA是一個組件模型,將應用程序不同功能單元通過這些服務之間良好的接口和契約聯繫起來。

作爲軟件架構師,軟件基本原理上的定義對日常工作更具有指導性。

 

2.業務流程與BPEL的關係

答:業務流程是爲了實現某種業務目的行爲所進行的流程或一系列動作。在計算機領域,業務流程代表的是某一個問題在計算機系統內部得到解決的全部流程。BPEL是面向WEB服務的業務流程執行語言。BPEL提供一種相對簡單易懂的方法,可將多個WEB服務組合到一個新的複合服務中。

 

3.SOA的基本發展歷史

答:第一階段,以XML技術爲標誌,是萌芽階段,XML出現爲SOA的興起奠定了穩固的基礎。

第二階段,以SOAP、WSDL、UDDI三種WEB服務的標準和規範出現爲標誌,是標準化階段。

第三階段,以SCA/SDO/WS-Policy三個重量級規範爲標誌,是成熟應用階段。

 

4.SOA的參考架構有哪些內容

答:以IBM的Websphere爲例,它是典型的以服務爲主中心的企業集成架構,採用“關注點分離”的方法規劃企業集成中的各種架構元素,同時從服務視角規劃每種架構元素提供的服務,以及服務如何被組合在一起完成某種類型的集成。

從服務爲中心的視角看,企業集成架構劃分爲六大類:業務邏輯服務、控制服務、連接服務、業務創新和優化服務、開發服務、IT服務管理。

連接服務(企業服務總線ESB),從消息中間件發展到開放標準爲基礎支持應用之間在消息、事件、服務級別上動態互聯互通。ESB是一種架構模式,不能簡單地等同於特定的技術或者產品,但實現ESB確實需要各種產品在運行時和工具方面的支持。

業務邏輯服務體現在三個方面:整合已有應用,支持應用和信息訪問服務,主要有可接入服務、事件發現服務這兩類;整合新開發的應用,支持業務應用服務,主要有組件服務、核心服務、接口服務;整合客戶和業務夥伴,支持夥伴服務,主要有社區服務、文檔服務、協議服務。

控制服務體現在三個方面:支持數據整合的信息服務, 主要有聯邦服務、複製服務、轉換服務、搜索服務;支持流程整合的流程服務,主要有編排服務、事務服務、人工服務;支持用戶訪問整合的交互服務,主要有交付服務、體驗服務、資源服務。

開發支持需要提供和服務開發相關的技術:用於支持以服務爲中心的企業集成方法學和建模;用於服務爲中心的編程模型,主要有建模服務、設計服務、實現服務、測試服務。

業務創新和優化服務以業務性能管理技術爲核心,提供業務事件發佈、收集、關鍵業務指標監控能力,由公共事件框架服務、採集服務、監控服務組成。

管理支持,由IT服務管理來完成,主要包括安全和目錄服務、系統管理和虛擬化服務。

 

5.SOA主要的技術和標準有哪些

答:WEB服務是實現SOA中服務的最主要手段。WEB服務最基本的洗液包括UDDI、WSDL、SOAP。

UDDI是統一描述、發現和集成協議,主要處理服務註冊和查找問題;WSDL是描述WEB服務和說明如何與WEB服務通信的XML語言;SOAP是在分散或分佈式環境中交換信息的簡單協議,基於XML技術形成的。

WSDL可以描述WEB服務的三個基本屬性:服務做什麼的、如何訪問服務、服務位於何處。WSDL文檔以端口集合的形式來描述WEB服務,WSDL服務描述包括對一組操作和消息的一個抽象定義,綁定到這些操作和消息的一個具體協議和這個綁定的一個網絡端點規範。WSDL文檔分爲服務接口、服務實現兩種類型。

SOAP包括四個部分:SOAP封裝(Envelop),定義了一個描述消息中的內容是什麼,誰發送的,誰應當接收並處理它以及如何處理它們的框架;SOAP編碼規則,表示應用程序需要使用的數據類型實例;SOAP RPC,表示遠程過程調用和應答的協定;SOAP綁定,使用底層協議交換信息。SOAP的主要設計目標是簡單性和可擴展性,對複雜場景和對安全性可靠性有要求的場景需要增加額外的技術支持。

 

6.SOA的特性有哪些

答:文檔標準化(基於XML文檔的);SOA服務用消息進行通信,消息多用XML Schema來定義;SOA服務在一個區域內通過一個扮演目錄列表角色的登記處來維護;SOA中服務的可靠性需要額外使用WS-Reliablility和WS-ReliableMessaging是兩個用來解決此類問題的標準;SOA的服務安全通過認證交換、消息完整性和消息保密完成,藉助SAML實現;SOA標準化服務消費者和服務提供者之間的策略通信需要WS-Policy來解決;SOA中進程是使用一組離散服務創建的,BPEL4WS或者WSBPEL可以控制這些離散服務;SOA的服務管理可以通過WSDM的制定,使任何根據WSDM實現的服務都可以由一個WSDM適應管理方案實現。

 

7.SOA的設計原則有哪些

答:除了繼承來自對象和組件設計的各種原則,還有無狀態、單一實例、明確定義的接口、自包含和模塊化、粗粒度、服務之間的松耦合性、重用能力、互操作性、兼容和策略聲明等。

 

8.SOA設計模式的粗略介紹

答:服務註冊表模式:服務註冊表主要在SOA設計階段使用,當然也具有在運行階段的功能。註冊表支持驅動SOA治理的服務合同、策略、元數據的開發、發佈、管理。註冊表提供了一個主控點或者策略執行點,在這裏服務可以在SOA中註冊和被發現。目前服務器註冊表模式分爲兩大陣營,一個是提供服務、策略、元數據註冊表及信息庫的純SOA廠商;另一個是SOA平臺廠商,註冊表作爲集成產品套件的一個組件。註冊表提供服務註冊、服務位置、服務綁定功能。

企業服務總線模式:企業服務總線是由中間件技術實現的支持面向服務架構的基礎軟件平臺,支持異構環境中的服務以基於消息和事件驅動模式的交互,並具有適當的服務質量和可管理性。ESB的核心功能有:提供位置透明性的消息路由和尋址服務;提供服務註冊和命名的管理功能;支持多種消息傳遞範型;支持多種可以廣泛使用的傳輸協議;支持多種數據格式及其相互轉換;提供日誌和監控功能。目前ESB是理想的EAI、B2B應用系統集成支持平臺。

 

9.構建SOA架構時應注意的問題有哪些

答:需求方面:對原有系統架構中的集成需求進行細緻的分析和整理;對原有系統中集成需求分析時不應該之限定爲基於組件構建的已有應用程序的集成需求,還需要考慮應用程序集成、終端用戶界面集成、流程集成、已有系統信息集成等方面的需;針對某些行業的應用系統特點做針對性的調整。

服務粒度控制:對外的服務接口採用粗粒度設計,滿足一個特定服務的完整執行;對內的服務接口採用細粒度設計,滿足靈活性和細節要求。

SOA系統架構中的服務應該是無狀態的服務,不依賴於上下文和狀態。

 

10.SOA的實施過程是什麼

答:第一步,選擇SOA解決方案,可以從三個方面進行考慮:儘量選擇能進行全局規劃的方案;選擇時充分考慮企業自身需求;從平臺、實施等技術方面進行考察。

第二步,業務流程分析,首先建立服務模型,可以通過自頂向下分解法、業務目標分析法、自底向上分析法進行操作;其次是建立業務流程,可以依次通過建立業務對象、服務接口、業務流程來完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章