[ 
https://issues.apache.org/jira/browse/OODT-491?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13476553#comment-13476553
 ] 

Brian Foster commented on OODT-491:
-----------------------------------

1) For us, model ID is WorkflowId, we should set this probably when the 
workflow is initially created, and then later in fromWorkflowInstance, maybe?
- Still not sure how this is going to work... each workflow may have multiple 
WorkflowIds, so for an instance to update it will need: 
updateStatus(workflowInstanceId, workflowId, status) and 
updateMetadata(workflowInstanceId, workflowId, status) or combine them (which 
actually is a hugh speed boost): updateWorkflowInstance(workflowInstanceId, 
workflowId, status, metadata)... these methods then have to notify the 
WorkflowProcessor from which the WorkflowTaskInstance came from, which then 
notifies it's parent WorkflowProcessors to update their status and metadata as 
well.

2) There's a method here: updateWorkflowInstanceStatus that we can use for this.
- This isn't going to work for parallel workflows... multiple posts from 
different tasks in the same workflow are going to clobber each others writes 
(since they are unaware of each other's updates to the WorkflowInstance)... i 
think the server should be responsible for updating the WorkflowInstance itself 
(what this method appears to do is a blank update)... here is an example of 
what i mean: Task1 has WorkflowInstance object and Task2 has the same 
WorkflowInstance object, both which have Task1 and Task2 as running... now 
Task1 finishes and sends an update to WorkflowManager, then Task2 finishes and 
sends in an update to the WorkflowManager, the WorkflowManager will perform 
Task1 update request, then Task2 update request -- WorkflowManager will now 
think that Task1 is still running again, because that is the state of it in 
Task2 WorkflowInstance... or you will have to request a fresh copy of each 
WorkflowInstance before updating but this will be very time consuming and 
although will decrease the number of Tasks clobbering each other's writes it 
won't completely prevent it

3) Yeah maybe we can make a function to handle this. Thoughts? Or make it part 
of OODT-495 maybe.
- Determining status, whether moving forward or backwards is really the same 
thing, a WorkflowProcessor has a set of children WorkflowProcessor and based on 
their statuses, it has a status... so when update status is call on any 
WorkflowProcessor it should just analyze it's children WorkflowProcessor's 
status and if it needs to update it's status because one or more of them 
changed then it should notify it's parent WorkflowProcessor to do the same.  
This could be a task that is part of OODT-495 i believe.
                
> Finish line tasks for Wengine integration
> -----------------------------------------
>
>                 Key: OODT-491
>                 URL: https://issues.apache.org/jira/browse/OODT-491
>             Project: OODT
>          Issue Type: Umbrella
>          Components: workflow manager
>            Reporter: Chris A. Mattmann
>            Assignee: Chris A. Mattmann
>             Fix For: 0.5
>
>         Attachments: NewWorkflowModel.patch.txt
>
>
> The final tasks to wrap up wengine integration into trunk.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to