Patent ID: 7805327
Filing Date: 2010-09-28
Classification: G06F,G06Q

Abstract:
1. A method of building a combined workflow comprising: storing a first private workflow and a second private workflow in a non-transitory computer-readable storage medium coupled to one or more computer processors and having instructions tangibly stored thereon which, when executed by the one or more computer processors, cause the one or more computer processors to perform operations, the first private workflow being associated with only a first party and including a confidential first plurality of actual tasks, and the second private workflow being associated with only a second party and including a confidential second plurality of actual tasks; accessing the first and second private workflows from the computer-readable storage medium; accepting the first private workflow into a first tier of a multi-tiered workflow mode representing the first private workflow as a first matrix in which the first plurality of tasks are each represented as first vertices; accepting the second private workflow into the first tier of the multi-tiered workflow mode; representing the second private workflow as a second matrix in which each of the second plurality of tasks are represented as second vertices; abstracting by the one or more computer processors, the first private workflow and the second private workflow in a second tier of the multi-tiered model to provide respective first and second abstracted, non-confidential views of the first and second private workflows to the second party and the first party, respectively, the first abstracted view including a first plurality of groupings of the first plurality of tasks, and the second abstracted view including a second plurality of groupings of the second plurality of tasks; defining first state dependencies between the first plurality of actual tasks of the first private workflow and the first abstracted view, and second state dependencies between the second plurality of actual tasks of the second private workflow and the second abstracted view, the first and second state dependencies assuring that the respective first and second abstracted views accurately represent states of the corresponding first and second pluralities of actual tasks; defining control flow dependencies between the first abstracted view and the second abstracted view, the first and second control flow dependencies expressing interaction of the first and second private workflows; ordering the first plurality of groupings and the second plurality of groupings from the first and second, different private workflows into a single combined workflow in a third tier of the multi-tiered workflow model, the combined workflow being shared by the first party and the second party and having a task order that, when executed, provides a result of a business collaboration between the first party and the second party; adding ordering tasks to the combined workflow, the ordering tasks being operable to implement the order of the combined workflow and thereby achieve the result; and logging interactions between the first party and the second party during execution of the combined workflow, wherein abstracting the first private workflow and the second private workflow further comprises: receiving a first user input selecting one of the first plurality of actual tasks that the user intends to be maintained as confidential, when the selected actual task comprises a type SPLIT task, traversing the first workflow in two directions to find two type JOIN tasks, one task in each direction, when the selected actual task comprises a type ACTIVITY task, traversing the first workflow in two directions to find two adjacent tasks, one task in each direction, when the selected actual task comprises neither a type SPLIT task or a type ACTIVITY task, traversing the first workflow in a first to direction to find a type JOIN task, and traversing the first workflow from the type JOIN task in a second direction to find a type SPLIT task, identifying a respective path from the selected actual task to each of the type JOIN tasks, to each of the adjacent tasks, or to the type JOIN task and the type SPLIT task, providing one or more of the paths as possible user selections, receiving a second user input selecting one of the paths, the selected path including at least the selected one of the first plurality of actual tasks, and abstracting the selected path in the first workflow view.