天天看點

SOA筆記

1,

SOA應用是面向服務的業務應用,是采用SOA的思想、子產品化、可複用的業務應用。通過将SOA應用作為業務的載體,利用服務化的接口,實作在系統間、部門間甚至企業間的複用。

和以往應用相比,SOA應用具有子產品化、服務化、資料标準化、易內建、使用者體驗良好、靈活業務定制6個顯著特點。

(1)子產品化

SOA應用采用子產品化劃分、構件化方法開發,一個SOA應用由多個子產品組成,每個子產品完成單獨功能,并可獨立部署。子產品化的方式使SOA應用中每個子產品具有動态更新、可插拔、分布式部署等特性,提高了SOA應用的靈活性和可擴充性,使應用更加穩定、高效。

(2)服務化

和以往的子產品和構件概念相比,SOA由于采用了服務化的思想,統一了原來各種不同的構件标準,實作了完美的構件服務化組裝和服務化編制。

(3)資料标準化

SOA應用提供了一種端到端的統一的資料模型,為企業應用間的資料互動提供了統一的資料模型,為包括關系資料庫、非關系資料源在内的異構資料源提供統一的标準化資料通路接口。

(4)易內建

SOA應用具有很多天然的內建優勢,通過SCA、SDO、BPEL等技術可以比較完美地解決應用間的順利互動即內建問題,包括服務內建、資料內建、流程內建和展現內建4種方式。

(5)使用者體驗良好

SOA應用克服了傳統B/S應用的缺陷,通過綜合Web 2.0、RIA等技術,帶來了統一、高效的使用者體驗,提高了企業使用者的工作效率,減少了學習成本。

(6)靈活業務定制

以業務為導向,将流程、服務、規則做業務化的抽象,通過二次開發工具快速響應業務需求,縮短傳遞時間。

2,

子產品化SOA應用的特點

SOA的一個顯著特點就是子產品化。子產品化具有以下特點。

(1)子產品可插拔的應用

采用子產品化設計是一種合理有效的應用設計方法,将應用劃分為功能子產品,具有"高内聚、低耦合"的特征,進而為SOA應用中的功能子產品采用類似OSGi的格式進行動态部署和可插拔提供了基礎。每一個子產品都是一個可傳遞的軟體單元,可以在應用運作狀态下動态增加、停止、更新,這種熱插拔的能力提高了應用的可管理性和可維護性。

(2)高效穩定的應用

子產品化使得應用可以基于一個微核心的子產品容器運作,這種微核心的機制保證了應用的穩定性,隻要微核心正确運作,應用就不會崩潰。這種微核心的機制也為應用的可擴充性提供了基礎。

(3)大規模應用和粗粒度複用

子產品化有利于團隊的大規模并行開發。以往的産品、項目開發中,每個子產品的架構、設計以及開發模式往往依賴于架構師的經驗、喜好,各項目之間并不統一,造成了子產品之間的比對度不高,隻能實作基于代碼的複用。基于這種清晰接口和基于構件組裝等标準化手段開發的子產品很容易實作複用,為企業積累已有子產品提供了基礎。

3,

應用子產品的劃分原則

設計一個良好的SOA應用,需要對應用進行子產品切分,以下是一些子產品切分的基本原則。

(1)子產品進行切分時要大小适中,具有清晰的子產品結構。一般情況下要求切分的子產品功能相對獨立和完整,适合1~2人獨立完成。一個子產品是一組相對獨立的構件集合。在這裡引入組合構件這個概念,将組合構件作為構件的容器對構件進行包裝群組織,并作為可釋出的單元進行部署。一個子產品下定義合适數量的組合構件。

(2)建立子產品間合理的依賴關系。特别是大型應用項目設計,需要避免多個子產品之間建立複雜的網狀依賴關系,需要規避循環依賴。在項目初期就需要設計合理的子產品依賴關系。

(3)作為獨立子產品的情況。一個子產品一般是具有相對獨立的一組功能的應用子集。會被多個子產品調用的基礎業務資料和功能,如資料實體、通用服務等最好作為獨立的子產品存在。Web應用元素建議放在一個單獨的子產品中進行存放,這樣可以對所有Web元素進行版本管理。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

a,企業體系架構與企業的内部組織、流程和業務模型密切相關,是以必須長期保持企業架構的可維護性和可更改性。為提高IT靈活性和效率,企業體系架構必須具備簡單性、靈活性和可維護性以及可重用性等特性。

b,企業架構從企業的戰略目标和願景出發,用統一、條理化的架構描述企業的所有關鍵元素和它們之間的聯系,從業務、資料、應用系統、技術标準和基礎設施等方面進行細化,以期給出完整的企業業務藍圖和IT解決方案。

c,SOA的企業架構要求在架構設計中更多展現SOA的思想,通過松耦合的理念和企業業務子產品的複用,針對靈活的業務從架構适應性、投資回報率、業務流程等方面要求IT的快速響應。SOA獨立于标準,提供了架構藍圖。架構藍圖解耦、分塊群組合企業應用程式層,并在組織内建構應用程式構件,将這些構件建立和表示為SOA中的"服務"。雖然服務技術上獨立于業務功能,卻與業務功能直接相關,最終實作在企業架構下全局範圍内內建這些構件。

資訊架構:

資訊架構是一個廣義的概念,在國外資訊架構常等同于資料架構。SOA企業架構的資訊(資料)架構使用服務中繼資料進行資訊組合管理、資訊分類、Schema開發、記錄和内容。SOA企業架構的資訊(資料)架構包括資料戰略、資料定義、資料分布和資料管理4部分

技術架構:

企業IT技術架構的演進大緻經曆3個主要階段,即主機架構、客戶機/伺服器架構和企業服務架構

1)在主機架構下,資料和邏輯是一體的,采用面向過程的設計方法,每個應用是一個孤立的系統,維護相對容易,但是難于互相內建。

(2)客戶機/伺服器架構将邏輯與資料進行了分離(不論C/S還是B/S 模式,本質都是客戶機/伺服器架構),采用面向對象的設計方法,每個應用是一個孤立的系統,提供了一定背景內建的能力,典型的客戶機/伺服器架構就是MVC架構。

(3)企業服務架構把流程從邏輯中抽象出來,邏輯成為系統對外的服務,通過統一的使用者界面、流程打破豎井式結構,采用面向服務的設計方法,企業多個應用之間将成為一個有機的整體。

目前企業應用IT架構正在從關注單系統、單應用的MVC架構向關注多系統、多應用的企業服務架構發展。IT架構的演變,其實都是在追尋一個目标,試圖通過實作子產品的松散耦合來提高應用的靈活性和業務流程的變化能力。伴随着這種系統架建構設模式的發展,新的支撐技術和産品已經出現。

SOA企業架構的技術架構通過引入服務層,降低了企業架構各層次間的耦合程度,SOA技術架構分為協同層、流程層、服務層、邏輯層、資源層等五層,以及相關的基礎設施。SOA企業架構的基礎設施包括企業應用內建機制和管理功能,如服務品質、安全、SOA服務管理、組合管理、監視等。

作為企業服務架構的一種展現形式,SOA技術參考架構自頂向下        分為協同層、流程層、服務層、邏輯層和資源層等5個層次,如圖4-6所示。

(1)資源層。包含現有的自定義建構的應用程式(遺留系統),現有的CRM和ERP打包應用程式,以及原有的面向對象的系統實作、業務智能應用程式。SOA利用現有系統并且用基于服務的內建技術來內建它們。資源層解決如何整合資料的問題,需要通過一個統一的資料程式設計模式統一對不同資料源的通路。

(2)邏輯層。邏輯層實作了具體的業務邏輯,包括UI邏輯和背景邏輯。邏輯層由多個構件組成,這些構件将以可插拔的方式部署,使用AOP、依賴注入的方式程式設計,提供邏輯的編排能力。

(3)服務層。服務層将應用系統提供的邏輯以标準化的方式暴露出來,使開發者不需要關心邏輯的對外協定、邏輯的實作方式、邏輯的部署位置,并提供事件的方式降低邏輯間的耦合度,為非侵入式的操作提供基礎。

(4)流程層。流程層維護跨系統之間的業務狀态,企業應用的核心是業務流程,流程包括端到端流程和人工參與的流程,流程會産生任務,推送到工作平台。流程把企業中多個應用連接配接起來。

(5)協同層。協同層為使用者提供了一個統一的互動門戶和工作平台,通過RIA(Rich Internet Application)的方式在應用程式人機接口或者表現層來利用 Web 服務,以服務的形式進行界面的組裝和重用,提升使用者體驗,使用者通過協同層更容易與其他人進行協作,例如即時通信、檢視任務清單、檢視釋出資訊,也能夠把已有資料、服務或界面快速組合到新應用中。通過協同層,使用者不再與多個孤立的系統進行互動,而是面對一個有機的整體

  基礎設施包括企業服務平台、流程平台、業務工作台

使用流程對服務進行編制,組合成業務流程,以任務的形式展現工作活動,并允許配置參與者、規則和過程來進行執行和監控,進而提升生産組織水準和工作效率

流程層。流程層維護跨系統之間的業務狀态,企業應用的核心是業務流程,流程包括端到端流程和人工參與的流程,流程會産生任務,推送到工作平台。流程把企業中多個應用連接配接起來。

協同層為使用者提供了一個統一的互動門戶和工作平台,通過RIA(Rich Internet Application)的方式在應用程式人機接口或者表現層來利用 Web 服務,以服務的形式進行界面的組裝和重用,提升使用者體驗,使用者通過協同層更容易與其他人進行協作,例如即時通信、檢視任務清單、檢視釋出資訊,也能夠把已有資料、服務或界面快速組合到新應用中。通過協同層,使用者不再與多個孤立的系統進行互動,而是面對一個有機的整體。

一套好的業務流程管理系統可以随着流程的執行流轉,以簡單直覺的圖形報表報告哪些流程制定得好,哪些流程需要改善,以便提供科學合理的決策依據給決策者,進而達到不斷優化的目的,呈螺旋式上升的趨勢。

流程的運作環境要完成如下工作。

(1)以正确的順序調用或者執行任務;

(2)把任務配置設定和路由給授權使用者;

(3)跟蹤流程的目前狀态,包括哪些任務已經完成、哪些任務可被執行、流程及相關任務的最後期限等;

(4)通過通路各IT系統,擷取流程需要的資訊,更新流程産生的資訊,執行流程定義的事務;

(5)對違反了業務規則的流程自動報警。

參考:http://book.51cto.com/art/200912/173757.htm

繼續閱讀