2011-08-10 95 views
0

在SOA實踐中,什麼樣的策略能夠更好地(或者完全可以)更新長時間運行的流程(特別是對於Oracle BPEL)?例如,過程可能涉及幾個人類步驟,其本質上是耗時的。 SOA套件支持在新版本的流程上啓動新實例並繼續運行流程執行。但是,如果編排邏輯需要更新並應用於已運行的實例,該怎麼辦?假設我們不希望採購訂單通過管理層批准,並且希望將此更改應用於所有訂單,即使是那些執行操作的訂單。更新SOA中長時間運行流程的策略

回答

0

您無法更改任何正在運行的業務流程。更改只能應用於新進程。這不是技術限制,只是常識。除此之外,它會混淆審計線索或法規遵從。

如果你已經這樣災難性的錯誤而設計的過程 - 「我們忘了,包括訂單管理審批!」 「facepalm * - 所有你能做的就是關閉服務器並清理任何半完成的進程,但這將是一個非常激烈的一步。

所以唯一的策略是去工作是審查和接受測試。

+0

謝謝你,這絕對意義 – Alex

+0

但是當業務流程不斷更新(例如,根據與客戶的協議,我們執行某些類型的驗證,計算,comission等)的情況下,真正的情況......我我認爲這是「業務流程敏捷性」,但不知道現代工具是否支持它 – Alex