Friday, June 12, 2009

Using Process Governance in support of Process Versioning

Seeing the recent blog by Van Alst reminded me how low tech process versioning is. As he points out, it requires careful implementation of the processes, to avoid having long running process instances that may cause difficulties when trying to upgrade either the business process, or the infrastructure on which that process is running.

His suggested approach is to implement those BPEL processes, that would normally be long running, as event/message driven processes that can optionally utilise short running BPEL processes. However the disadvantage is the complexity that may be introduced to accommodate the potentially large number of business process versions that need to be supported. Each new version of the business process needs to accommodate existing running process instances that may be at various stages in the event driven implementation. However suitable tooling could be provided to help manage this.

The typical process versioning techniques currently used are:

1) Active processes should continue to use the same process definition (e.g. BPEL) version, while new process instances would use the most recent version.

2) Terminate all currently active processes – this seems a bit extreme, and can only really work if all systems involved have a way to undo or back out the work already done, and then replay the transaction on the new business process.

3) Migrating the process – although some simple changes can be handled using this approach, it can be very difficult to achieve without introducing errors. This is because the control structure of a process may change, or new variables may be added that cannot be initialised 'after the fact'.

So options (2) and (3) may be suitable in rare cases, but they are not a general solution.

The problem with option (1) is that a business process may be changed while a business process instance (or transaction) has not 'touched' all of the BPEL process definitions involved. For simplicity, if we assume a business process is comprised of two BPEL process definitions, A and B – if a business process instance X starts with process A, and waits for some duration (i.e. may be awaiting user input), and in the meantime the business process is updated in such a way that the interface between process definitions A and B are changed. When process instance X restarts in process definition A, and attempts to interact with process definition B, it would fail. This is because process definition B has not previously been involved in business transaction X, and therefore the BPEL engine managing process definition B would not be aware that it needs to actually direct the interaction to an older version of process definition B.

Could process governance provide another solution to this problem?

Understanding what behaviour a service provides, and what behaviour a service requires from other services, may provide the basis for ensuring the appropriate versions of each service work together correctly to deliver a particular version of the overall business process. This means that when one service wants to interact with another service, it should invoke the process definition version that meets its behavioural requirements, and not necessarily the one that is the most recent version.

The other way in which behaviour could be of use is to help determine whether a new version of a particular process definition (i.e. BPEL) is backward compatible with an active process instance associated with an older version of the process definition. If this is the case, then it may be easy to migrate the process instance to a newer process definition, and thus enable the business process instance as a whole to evolve – however this would be subject to the backward compatibility constraint.


So in summary:

First approach is to make each component of the process as simple and short lived as possible, to avoid having to worry about issues related to versioning those components. The system runs using the most up-to-date version of each component, and the complexity in dealing with changes in a business process are managed by the glue between the tasks – the rules that govern how the results of one task are used to trigger one or more other tasks.

The second approach doesn't place restrictions on the long running nature of the individual services, but instead provides a way in which multiple versions of a business process can run simultaneously, and evolve within certain constraints to newer versions of the service components.

The main point is that a business process and the resulting service designs should not be defined with versioning in mind. As far as possible, this needs to be handled as part of a SOI. In the case of the second approach, this can be handled as part of the governance capabilities, by controlling the specific versions of services that are used based on the required behaviour.

8 comments:

rnbresearch said...

I came to your blog just when I was surfing on this topic. I am happy that I found your blog and information I wanted.

markinson said...

The concept of "Using Process Governance in support of Process Versioning" explained in this post is very well illustrated and easy to understand.The best part of this post is information about the 3 typical process versioning techniques currently used and their drawbacks.
BPM

天真 said...

無碼影片,情人視訊,正妹牆,聊天室,ut聊天室,視訊聊天室,情色,微風成人,豆豆聊天室,視訊美女,85cc成人片,85cc成人片觀看,交友戀愛進行室,嘟嘟成人網,成人,色情,美女,色情小說,情色貼圖,情色小說,交友覓戀會館,情色文學,交友104速配網,視訊交友,成人韭南籽,18成人,ut男同志聊天室,成人圖片區,交友104相親網,0951成人頻道下載,男同志聊天室,成人貼圖,成人影片,tt1069同志交友網,成人視訊,aio交友愛情館,情色視訊,情色視訊,色情遊戲,交友戀愛小站,

天氣晴 said...

No pains, no gains..........................

said...

^^~~輕輕鬆鬆的逛部落格,多謝有您的分享哦~~~........................................

yahoo said...

只用微笑說話的人,才能擔當重任。........................................

與發 said...

I love readding, and thanks for your artical. ........................................

o0625TaylorJ_Duraz said...

383美女寫真 超敢完美女 辣妹美女遊戲 超美美女人視訊 一夜情美女 facebooks視訊美女 漂亮美女貼影區 美女交友go 0401視訊美女 美女成人聊天室 美女色情交友 sex美女視訊 美女性交學 波霸美女小站 美女全裸入鏡 日本女優美女寫真 104視訊美女 丁字褲美女影片 免費制服美女影片 美女露三點視訊交友網站 高挑美腿美女寫真集 美女蒐集地 正妹牆-激點美女 美女貼圖 萬張美女圖片 美女寫真美女圖 玩美女人視訊聊天室 代言美女代言 免費視訊美女ing 三樓蘭美女 美女KK 超美女公安全 好玩美女遊戲 美女工廠 小遊戲天堂美女 即時msn視訊美女 痞客美女寫真館 視訊美女戀愛交友 比基尼美女換裝 金髮美女可愛美女 本土辣妹34c影片直播 寫真集34c辣妹南台灣視訊 免費 a 長片線上看,黑澀會美眉無名,辣妹no3 sex story,辣妹影片直播 辣妹一夜情 辣妹有約辣妹no31314視訊 辣妹影音聊天室 辣妹a片 視訊辣妹,網路援交 av無碼月光論壇辣妹視訊 34c免費線上視訊直播 辣妹喔 34c辣妹影片直播 34c視訊辣妹美女sex888免費電影 34c環球辣妹聊天室 90691 104免費視訊辣妹脫衣秀 ut視訊辣妹