面向服務的體系結構 SOA 之 關於BPM

2021-06-18 12:51:32 字數 1366 閱讀 3058

從字面上理解bpm所要做的就是對整個業務流程進行管理。這其中包括很多方面,比如分析業務、實現業務功能、檢測業務流程、建立相應的操作流程的工具等等。在真正開始動手之前通常要做的將業務分解成已有的底層服務可以處理的小模組。

流程分解後最底層的乙個個活動就是服務。服務是業務流程的組成部分。要想讓服務發揮作用就必須先考慮業務流程。從業務流程的觀點來看,這些個服務是基本服務還是組合服務無關緊要,重要的是服務之星了必要的業務功能。然而流程服務是不同的東西,因為流程服務的目的是體現整個業務流程(或某個部分)。

可以通過自頂向上的方法將乙個問題、系統或流程不斷分解為更小的內容,直到抵達服務的層次。或者採用自底向上的方式依靠底層的服務組合為更通用的塊來建立業務流程。當然方法不是唯一的,只是提供乙個參考而已。每種方法都有利弊。自底向上會產生不必要的服務或者產生滿足不了業務需求的服務。而自頂向下很可能遇到技術上的困難,或實現上覆雜的服務。

例如:如果要實現乙個新的業務流程。這個業務流程就是頂層我們需要實現的流程,而既存的系統或者說服務就是這個業務流程的底層,毋庸置疑底層是負責提供一些用服務方式體現的基本業務功能。下面的工作就是採用自頂向下的方式把整個流程分解成為小塊,把複雜的流程分解為下層服務可以處理的小模組。

一般具體到實現到流程上就是有關工作流的層面的事情了。再具體一點說的話就是需要使用bpel將整個流程描述出來。bpel是乙個抽象的概念,具體根據不同的流程引擎會有不同的表現形式。比如使用jbpm的時候那麼擔當描述部分的就是jbpm自身的所提供的jpdl,當使用普元的bps平台的時候擔當描述部分的將是普元自帶的描述流程的語言。不過實現的方式是類似的:將流程節點與現有的服務繫結,最終發布定義,啟動流程,執行流程等等。核心思想都是將現有的服務利用起來通過編排或配置產生新的符合需求的新服務。通過業務流程建模工具或引擎可以用來從現有的服務中組合(「配置」)出新的組合服務或流程服務。

jbpm僅僅是bpm的實現方式之一,所以之前如果對jbpm有所了解的話將有助於理解及使用bpm。和jbpm類似,bpm的要做的就是將複雜的業務劃分為乙個個簡單的服務,然後分清哪些是必須要人參與的那些是可以借助it自動完成的,隨後配置和編排。當流程定製完成那麼就可以開始執行整個的業務了。當然這其中需要乙個**控制者來協調所有活動。

通過組合現有的服務來設計更高層次的服務和流程這個方法叫做「配置」。在配置的過程中通常有乙個**控制者協調流程的所有活動。整個的組合本身可以當作服務使用。

另乙個方法是「編排」,沒有誰服從於誰的概念,每個部分負責乙個或多個流程中的步驟,處於流程之中的時候很難了解整個流程的全貌。「編排」由於沒有**控制器的約束所以更容易伸縮,但是沒有管理者的一大弊端就是出現問題不知道該如何去處理。

bpm和soa的關係中還有很多是需要考慮的細節,類似jbpm整合到單個系統中一樣。需要考慮角色與組織和bpm的關係,需要涉及到許可權相關的內容,或者說是系統前台和後台的問題。這些問題將在後面的文章中具體描述。

面向服務的體系結構 SOA

偶長期以來一直想寫一篇關於soa的文字,但是遲遲沒有動筆。偶今天感冒在家,終於可以有這個機會咯。面向服務的體系架構 service oriented architeture,即soa 在今天這個軟體業中,可謂是如雷貫耳,如日中天。其架勢直逼當年 物件導向 object oriented oo 出道之...

面向服務的體系結構 SOA 之 對於服務的理解

在接觸soa之前對 服務 這個詞沒有太多的感觸,無非就是為別人做事情麼。當然在soa中這個詞也脫離不了這層基本的涵義,但是具體到實際的架構中對這個詞的理解就更加深刻了。本文就以 服務 為中心說說筆者對這個詞的理解,尤其是它在soa這個環境下的理解。由淺入深咱們先從現實說起,通常我們日常所說的 服務 ...

Web服務與面向服務的體系結構

soa service oriented architecture 面向服務的體系結構 是由元件 服務 業務過程組成的可以滿足機構業務需求的體系結構,是一種非常好的建立複雜系統的體系架構的模型。soa有助於 重用 降低成本 風險,還可縮短產品進入市場的時間。從某種意義上說,soa更多是一些指導原則,...