Hi Frank,
Agreed for the both suggestions.

As Nandika mentioned "Not accepting a change in the substitute" is the
option we also decided, whenever we have the ability to do so. But there
are situations that we cannot do this when the cyclic situation arisen due
to a time event. Theoratically, we don't have anyone to assign this task at
this point, so it has to go back to Business Administrator as you suggested.

However, in Activiti the corresponding role is "Task Owner". We will have
to assign to task owner in this situation. One issue is the task owner is
optional. Only in such a situation(no owner), we will have to make the task
Claimable/Unreserved.

Regards,
Vinod

On Mon, Jun 20, 2016 at 10:48 AM, Nandika Jayawardana <nand...@wso2.com>
wrote:

> Hi Frank,
>
> Not accepting a change in the substitute when there is a cyclic situation
> is the options we decided as well.
>
> Regards
> Nandika
>
> On Fri, Jun 17, 2016 at 11:26 PM, Frank Leymann <fr...@wso2.com> wrote:
>
>> Hi Vinod,
>>
>> Whenever a user changes his/her substitute, we check for a circular
>> dependency.  This check happens independent of the fact whether substitutes
>> are defined when the user are created ("modeling time") or when the
>> substitute of a user is changed during "runtime". Is that your
>> understanding too?
>>
>> If a circular dependency is detected, the request for the new substitute
>> is not accepted.  And, yes, that's problematic because it may become quite
>> cumbersome or even impossible to find a possible substitute (i.e. one that
>> our cycle checker will accept).  For example, in case of n users U1,
>> U2,...,Un user Ui has substitute Si and Si = U(i+1) with U(n+1)=U1 - we
>> have a problem. During modeling time their may be time to fix the problem,
>> but during runtime that may be critical.  Setting the Reserved or
>> inProgress tasks of the user just defining his new substitute in state
>> Ready doesn't help because there may be no potential owners who may get
>> aware about the task.
>>
>> For this purpose, the key principle of Human Task is that the engine must
>> do everything to push tasks to (at least) Reserve status. This is done by
>> corresponding deadline processing, or by nomination: i.e. the engine
>> informs the Business Administrator of the task who then assigns the task to
>> an owner. But this may result in a burden of the Business Administrator in
>> case he will get many tasks to nominate.
>>
>> So, let's discuss. My current preference is to *not accept* a change in
>> the substitute definition in case a cyclic structure would result.  WDYT?
>>
>>
>>
>> Best regards,
>> Frank
>>
>> 2016-06-16 3:31 GMT+02:00 Vinod Kavinda <vi...@wso2.com>:
>>
>>> Hi Frank,
>>> Yes, it's when changing the substitute user. We have to use the second
>>> suggestion also.
>>>
>>> In a scenario where substitution starts in a future time(not just after
>>> changing the substitute user), we do not have the option of rejecting the
>>> substitution request. In such a scenario, we will have to make his tasks
>>> unclaimed!
>>>
>>> Regards,
>>> Vinod
>>> On Jun 16, 2016 2:28 AM, "Frank Leymann" <fr...@wso2.com> wrote:
>>>
>>> Hi Vinod,
>>>
>>> yes, that's a well-known issue :-)   I suggest to adopt your first
>>> suggestion, namely checking circular dependencies when a new substitute has
>>> been specified (I guess that's what you meant - not when adding a new user,
>>> right?).
>>>
>>>
>>>
>>> Best regards,
>>> Frank
>>>
>>> 2016-06-15 13:25 GMT+02:00 Vinod Kavinda <vi...@wso2.com>:
>>>
>>>> Hi all,
>>>> I ran into an issue while implementing this.
>>>>
>>>> What if we ran into a *circular dependency between user substitutes*?
>>>> We can't calculate a transitive substitute in this scenario. No one will be
>>>> available to take up the tasks of the unavailable user.
>>>>
>>>> Here is my suggestion for this:
>>>>
>>>> *Circular dependency detected while adding a new user*
>>>> We abort this user addition and reply back to the user asking for a new
>>>> substitute.
>>>>
>>>> *Circular dependency detected while resolving transitive subs in a
>>>> scheduled event (Due to a user's substitution starting at this point )*
>>>>
>>>> Mark the transitive sub is "UNDEFINED". Future tasks that are assigning
>>>> to this user will be reverted back as unclaimed tasks (remove the 
>>>> assignee).
>>>>
>>>> Any suggestions?
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Jun 9, 2016 at 8:31 AM, Vinod Kavinda <vi...@wso2.com> wrote:
>>>>
>>>>> Hi Frank,
>>>>> Agreed.
>>>>> I have created Jira [1] to track this improvement after the Human Task
>>>>> integration with BPMN engine.
>>>>>
>>>>> [1] - https://wso2.org/jira/browse/BPS-1043
>>>>>
>>>>> Regards,
>>>>> Vinod
>>>>>
>>>>> On Wed, Jun 8, 2016 at 10:03 PM, Nandika Jayawardana <nand...@wso2.com
>>>>> > wrote:
>>>>>
>>>>>> Yes, Once the task engine refactoring is complete, we can integrate
>>>>>> our own task implementation with activiti . Then we can overcome the
>>>>>> current limitations of user tasks.
>>>>>>
>>>>>> Regards
>>>>>> Nandika
>>>>>>
>>>>>> On Wed, Jun 8, 2016 at 7:18 PM, Milinda Perera <milin...@wso2.com>
>>>>>> wrote:
>>>>>>
>>>>>>>
>>>>>>> On Wed, Jun 8, 2016 at 6:49 PM, Frank Leymann <fr...@wso2.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Dear Vinod,
>>>>>>>>
>>>>>>>> understood.  My recommendation is that we should argue as long as
>>>>>>>> possible independent from a certain implementation: if we may decide to
>>>>>>>> move from Activiti to Camunda, we should have the architecture/design 
>>>>>>>> right
>>>>>>>> to port our implementation with minimal effort. That's why I argue in 
>>>>>>>> terms
>>>>>>>> of the BPMN recommended state model, and when we agree on the 
>>>>>>>> principles we
>>>>>>>> can map it to the underlying engine. Does this sound acceptable?
>>>>>>>>
>>>>>>>> Which brings up the following question:  When we support User Tasks
>>>>>>>> in Activiti, don't we use our HumanTask implementation as User Task as 
>>>>>>>> BPMN
>>>>>>>> 2.0 assumes? But we use the simplified implementation that Activiti 
>>>>>>>> ships?
>>>>>>>> If we do the latter, what is our strategy of our HumanTask 
>>>>>>>> implementation?
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  +1, Soon or Later I think replacing Activiti User Task or
>>>>>>> introducing as a new type of user task, with our WS-HumanTask it the 
>>>>>>> best
>>>>>>> option.
>>>>>>> AFAIR similar idea is in our future roadmap @Hasitha @Nandika :
>>>>>>> isn't it?
>>>>>>>
>>>>>>> --
>>>>>>> Milinda Perera
>>>>>>> Software Engineer;
>>>>>>> WSO2 Inc. http://wso2.com ,
>>>>>>> Mobile: (+94) 714 115 032
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Nandika Jayawardana
>>>>>> WSO2 Inc ; http://wso2.com
>>>>>> lean.enterprise.middleware
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Vinod Kavinda
>>>>> Software Engineer
>>>>> *WSO2 Inc. - lean . enterprise . middleware <http://www.wso2.com>.*
>>>>> Mobile : +94 (0) 712 415544
>>>>> Blog : http://soatechflicks.blogspot.com/
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Vinod Kavinda
>>>> Software Engineer
>>>> *WSO2 Inc. - lean . enterprise . middleware <http://www.wso2.com>.*
>>>> Mobile : +94 (0) 712 415544
>>>> Blog : http://soatechflicks.blogspot.com/
>>>>
>>>>
>>>
>>
>
>
> --
> Nandika Jayawardana
> WSO2 Inc ; http://wso2.com
> lean.enterprise.middleware
>



-- 
Vinod Kavinda
Software Engineer
*WSO2 Inc. - lean . enterprise . middleware <http://www.wso2.com>.*
Mobile : +94 (0) 712 415544
Blog : http://soatechflicks.blogspot.com/
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to