2015-04-29 200 views
0

我正在做一些關於工作流概念和具體BPMN標準的研究。我主要對這個主題上的可用軟件感興趣。BPM引擎與BPM引擎服務器

我已經學習了像Activiti和jBPM這樣的軟件,它們都是用Java實現的。儘管他們是,我正在尋找別的東西。儘管這樣的軟件自稱BPM Engine我寧願將它們命名爲BPM Engine Servers。它們是獨立的服務器(使用基於Web的GUI),這使得將它們嵌入到其他服務器中變得非常困難。

現在我的問題是:是否有一個概念作爲BPM Engine在它只執行給定數據的給定BPM的方式,只有一個步驟?沒有任何GUI或直接用戶交互(類似於庫)?我應該搜索什麼?它是什麼名字?我的期望是否有效?

[更新]

我花了最後幾個小時研究的Activiti的用戶指南。我仍然不確定我是否可以按照我想要的方式使用它!如果有人能夠確認,我將不勝感激。

我對一個類似控制檯的應用程序很感興趣,我可以隨時運行它,給它以前正在運行的進程(最有可能序列化爲一個字符串)。引擎應該根據給定的歷史構建過程。

一旦這個過程被重建,我想通過告訴它發生了什麼一步向前移動它。然後它會通知我下一個要執行和關閉的任務。

最後,我將在將它作爲一個字符串獲取後存儲更新的過程(引擎應該以某種方式將其序列化,以便稍後可以將其反序列化)。

我不希望引擎擁有自己的數據庫或內存存儲。一旦完成,我希望它完全關閉。這就是我的意思是Engine,沒有用戶交互,沒有存儲訪問。

任何BPM引擎能以這種方式執行嗎?

回答

1

也許我很想念你的觀點,但Activiti實際上只不過是一個可以嵌入任何其他Java應用程序的jar文件。當然,爲了以任何有意義的方式運行Activiti,您需要一個支持數據存儲(數據庫)和一個或多個流程定義,但正如您可以從作爲Activiti一部分的單元測試中看到的那樣,數據庫可以位於內存中並且流程定義可以被列入戰爭。有很多Activiti(可能是jBPM)的例子只是一個嵌入式狀態機,沒有暴露的UI或用戶交互。 我的公司已經爲不同的組織實施了許多這樣的解決方案。 如果我錯過了你的觀點,請隨時給我一個你的需求的例子,我確信我們曾經在這個或那個時候解決過它。

+0

說實話,我根本不是Java開發人員。所有我設法瞭解到的這兩個軟件都是他們第一眼看到的。如果你能指導我做一些關於如何將這兩者中的任何一個用作圖書館的教程或例子,那將是非常好的,那將會很棒。因此,我不是指如何在項目中引用他們的jar文件,而是如何爲他們提供數據以及他們如何通知我關於狀態更改或生成的消息。謝謝。 – Mehran

+0

Hey Mehran,爲了能夠將Activiti(或任何其他狀態機)嵌入到應用程序中,瞭解Java以及如何構建Java項目非常重要。 JBPM和Activiti都是旨在將BPM引擎引入Java開發人員領域的項目,而不是迫使開發人員學習新工具。也就是說,發行版中的activiti-webapp-rest2模塊可能是最好和最簡單的示例應用程序。 –

+0

Mehran,同樣適用於Eclipse Process Manager「Stardust」http://www.eclipse.org/stardust/。您可以嵌入引擎,例如在Spring應用程序中,配置內存數據庫併爲其提供進程模型以構建所需的配置。 – RobE

0

你可能感興趣Bonita BPM。 這個開源的BPM解決方案提供了一個可以獨立使用的執行引擎。 就像其競爭對手一樣,它還提供基於Web的應用程序形式的可選GUI:Bonita Portal。