US20020107914A1 - Methods and systems for optimizing resource allocation based on data mined from plans created from a workflow - Google Patents
Methods and systems for optimizing resource allocation based on data mined from plans created from a workflow Download PDFInfo
- Publication number
- US20020107914A1 US20020107914A1 US09/944,847 US94484701A US2002107914A1 US 20020107914 A1 US20020107914 A1 US 20020107914A1 US 94484701 A US94484701 A US 94484701A US 2002107914 A1 US2002107914 A1 US 2002107914A1
- Authority
- US
- United States
- Prior art keywords
- resource
- plan
- task
- workflow
- client interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
- G06Q10/063116—Schedule adjustment for a person or group
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06312—Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
Definitions
- the present invention relates to a method and system for developing a workflow and creating project plans from the workflow. More particularly, the invention relates to methods and systems for optimizing resource allocation and resource profiles used in resource allocation based on data mined from plans created from a workflow.
- a workflow is a model of a process. More specifically, a workflow can be viewed as a structured set of activities designed to produce a specific output for a particular customer (internal or external to an enterprise) or market.
- conventional software tools define the steps performed by the workflow, conventional tools do not schedule the resources (e.g., the people, equipment, or software technologies) responsible for completing each activity. Conventional tools also do not prepare a timeline identifying the beginning or end of each activity. Thus, conventional tools do not prepare a schedule for completing the workflow.
- a plan represents an instance of the workflow. More specifically, a plan can be viewed as a working schedule for a project to produce a product or artifact, such as a computer, bicycle, or software build, for the respective enterprise.
- These other conventional software tools typically display the working schedule in the form of an interactive Gantt chart, i.e., a chart to which the user can make updates.
- Gantt chart is the linear, time-based representation of a project schedule, usually laid out on a horizontal plane where the times/dates increase to the right.
- Gantt charts show the temporal relationships between the different tasks in a project, where the tasks are arranged along the vertical axis. Gantt charts are typically used to lay out an initial plan/timeline for the project, and then to track the actual progress of a project from start to finish. The modem software-based Gantt chart also identifies the resource(s) responsible for completing each task of the plan, the dependencies between the tasks, and, once the project has begun, the status of each task.
- the integration tool of the present invention has a Client Interface that saves an enterprise or organization significant development costs and increases its operating efficiency by improving profiles of resources associated with a workflow based on data mined from plans created from the workflow. By improving the profiles of the resources, the integration tool is able to optimize the automatic assignment or allocation of the resources to tasks of a plan when the plan is created from the workflow.
- the data mined by the Client Interface includes a task found in each plan that has an auto-assigned resource and has a replacement resource.
- the auto-assigned resource is a resource that the Client Interface automatically assigned to handle a role of the task when the Client Interface created the task from an activity of the workflow.
- the replacement resource is another resource that was manually assigned by an enterprise affiliate using the Client Interface to replace the auto-assigned resource.
- the Client Interface improves a profile associated with the auto-assigned resource by removing a skill or decreasing a strength of the skill in the profile, where the skill is associated with the role of the mined task.
- the Client Interface improves a profile associated with the replacement resource by adding a skill or increasing a strength of the skill in the profile, where the skill is also associated with the role of the mined task.
- the Client Interface is able to more effectively allocate resources to plans that are subsequently created from the workflow by the enterprise affiliate, saving the enterprise affiliate time and effort needed to manually override any resources that were not optimally automatically assigned.
- a method is provided in a data processing system.
- the data processing system has a workflow that models a process.
- the method generates a plan to perform an instance of the process, the plan having tasks performed by resources.
- Each resource has capabilities that are considered when generating the plan to ensure that, for each task, a suitable one of the resources is selected to perform the task.
- the method also receives modification information indicating that the capabilities of one of the resources has changed, and assigns the resources to the tasks to generate a new plan by using the received modification information.
- a method is provided in a data processing system.
- the data processing system has a workflow that models a process and has a plurality of plans generated from the workflow that reflect instances of the process.
- the method receives a request to generate a new plan, examines the plurality of plans to determine a number of the plurality of the plans that have been modified per a modification since the modified plans were created, determines whether the number of plans exceeds a predetermined threshold, and when it is determined that the number of plans exceeds the predetermined threshold, generates the new plan such that the new plan incorporates the modification.
- a computer-readable medium contains instructions for controlling a data processing system to perform a method.
- the data processing system has a workflow that models a process.
- the method comprises the step of generating a plan to perform an instance of the process.
- the generated plan has tasks performed by resources.
- Each resource has capabilities that are considered when generating the plan to ensure that, for each task, a suitable one of the resources is selected to perform the task.
- the method also comprises the steps of receiving modification information indicating that the capabilities of one of the resources has changed, and assigning the resources to the tasks to generate a new plan by using the received modification information.
- a computer-readable medium contains instructions for controlling a data processing system to perform a method.
- the data processing system has a workflow that models a process and has multiple plans generated from the workflow that reflect instances of the process.
- the method comprises the steps of receiving a request to generate a new plan, examining the plurality of plans to determine a number of the plurality of the plans that have been modified per a modification since the modified plans were created, determining whether the number of plans exceeds a predetermined threshold, and when it is determined that the number of plans exceeds the predetermined threshold, generating the new plan such that the new plan incorporates the modification.
- FIG. 1 depicts a data processing system suitable for practicing methods and systems consistent with the present invention
- FIG. 2 depicts an architectural overview of the workflow modeling and project planning integration tool used to perform methods and systems consistent with the present invention
- FIG. 3 depicts a flow diagram illustrating the high-level process performed by the tool of FIG. 2 in accordance with methods and systems consistent with the present invention
- FIG. 4 depicts an exemplary document workflow modeled by an enterprise affiliate using the tool of FIG. 2;
- FIG. 5 depicts an exemplary task workflow modeled by an enterprise affiliate using the tool of FIG. 2;
- FIG. 6 depicts another exemplary workflow modeled by an enterprise affiliate using the tool of FIG. 2;
- FIG. 7 depicts a timeline of the task created from the workflow of FIG. 4;
- FIG. 8 depicts a timeline of the task created from the workflow of FIG. 5;
- FIG. 9 depicts a timeline of the task created from the workflow of FIG. 6;
- FIGS. 10 - 12 depict the execution of the plan depicted in FIG. 7;
- FIGS. 13 - 16 depict the execution of the plan depicted in FIG. 8;
- FIGS. 17 - 21 depict the execution of the plan depicted in FIG. 9 following the default path
- FIGS. 22 - 27 depict the execution of the plan depicted in FIG. 9 following the non-default path
- FIGS. 28 A-C depict a flow diagram illustrating the creation or retrieval of a workflow by the tool of FIG. 2;
- FIG. 29 depicts an exemplary user interface of the tool of FIG. 2 used to begin creating or retrieving a workflow
- FIG. 30 depicts an exemplary user interface of the tool of FIG. 2 used to enter the name of a new workflow group
- FIG. 31 depicts an exemplary user interface of the tool of FIG. 2 used to begin creating a new workflow
- FIG. 32 depicts an exemplary user interface of the tool of FIG. 2 used to enter the name of a new workflow
- FIG. 33A-C depict an exemplary workflow definition file produced by the tool of FIG. 2 for the workflow depicted in FIG. 6;
- FIG. 34 depicts an exemplary user interface of the tool of FIG. 2 used to manage a workflow
- FIG. 35 depicts an exemplary user interface of the tool of FIG. 2 used to add a new role to a workflow
- FIG. 36 depicts an exemplary user interface of the tool of FIG. 2 used to select an artifact type
- FIG. 37 depicts an exemplary user interface of the tool of FIG. 2 used to enter condition properties for a document-oriented artifact
- FIG. 38 depicts an exemplary user interface of the tool of FIG. 2 used to enter condition properties for a script-oriented artifact
- FIG. 39 depicts an exemplary user interface of a script editor for the tool of FIG. 2;
- FIG. 40 depicts an exemplary user interface of the tool of FIG. 2 used to modify the properties of a workflow activity
- FIGS. 41A and B depict a flow diagram illustrating the creation of a plan from a workflow
- FIG. 42 depicts an exemplary user interface of the tool of FIG. 2 used to create a new plan group
- FIG. 43 depicts an exemplary user interface of the tool of FIG. 2 displaying the available plan groups
- FIG. 44 depicts an exemplary user interface of the tool of FIG. 2 used to enter a plan name
- FIG. 45 depicts an exemplary user interface of the tool of FIG. 2 used to enter the working schedule
- FIG. 46 depicts an exemplary user interface of the tool of FIG. 2 used to enter the scheduled start and end times for the plan
- FIG. 47 depicts an exemplary workflow definition file produced by the tool of FIG. 2 for the workflow of FIG. 5 is created
- FIG. 48 depicts an exemplary plan definition file created from the workflow definition file of FIG. 47;
- FIG. 49 depicts an exemplary user interface of the tool of FIG. 2 used to assign users to a plan
- FIG. 50 depicts an exemplary user interface of the tool of FIG. 2 used to edit the properties of a plan
- FIG. 51 depicts a timeline of the task created from the workflow of FIG. 5;
- FIG. 52 depicts an exemplary timeline of the tool of FIG. 2 used to activate a plan
- FIG. 53 depicts a flow diagram illustrating the addition of a resource by the tool of FIG. 2;
- FIG. 54 depicts an exemplary user interface of the tool of FIG. 2 used to add a resource
- FIG. 55 depicts an exemplary user interface of the tool of FIG. 2 used to receive LDAP access information
- FIG. 56 depicts an exemplary resource file created by the tool of FIG. 2;
- FIG. 57 depicts a flow diagram illustrating the management of an activated plan
- FIG. 58 depicts a timeline of the task created from the workflow of FIG. 5;
- FIG. 59 depicts an exemplary plan definition file created from the workflow of FIG. 5;
- FIGS. 60, 62, 64 and 66 depict the actual timeline showing the execution of the plan depicted in FIG. 58;
- FIGS. 61, 63, and 65 depict the properties of the executing tasks of FIGS. 62, 64, and 66 ;
- FIGS. 67A through 67E depict a flowchart illustrating an exemplary process performed by the Client Interface to improve a profile of any resource that has been previously assigned to a role of a task in a plan created from a workflow;
- FIG. 68 depicts an excerpt of an exemplary workflow definition file created and stored by the Client Interface
- FIG. 69 depicts an exemplary graphical representation of the workflow definition file in FIG. 68 displayed by the Client Interface
- FIG. 70 depicts an exemplary workflow roles file created by the Client Interface to store profiles of roles assigned to activities in the workflow definition file in FIG. 68;
- FIG. 71 depicts an exemplary resource file created by the Client Interface to store resource profiles that have been defined by an enterprise affiliate using the Client Interface;
- FIG. 72 depicts an exemplary skills file created by the Client Interface to store skills that may be assigned to a role or a resource by the Client Interface;
- FIGS. 73 A-C depict an excerpt of an exemplary plan definition file created by the Client Interface in response to an enterprise affiliate manually assigning a resource to a role associated with a “Get Parts” task in the plan definition file;
- FIG. 74 depicts an excerpt of another exemplary plan definition file that is an earlier version of the plan definition file in FIGS. 73 A-C and that was created by the Client Interface from the workflow definition file in FIG. 68.
- Methods and systems consistent with the present invention provide an integrated workflow modeling and project planning integration tool that improves the efficiency and reduces the operating cost of an enterprise or business conglomerate. Contrary to conventional tools that do not allow a user to integrate a workflow and a project plan, the integration tool allows a user to model a business process or workflow, to create and activate a project plan based on the workflow, and to track the progress of the activated project plan. The tool also allows the workflow to be reused to create more than one project plan based on the workflow. The tool simultaneously manages the execution of the plans. Moreover, the integration tool may include a Web-based “Distributed Authoring and Versioning” (WebDAV) server that operates as a virtual file system for computers on a network. With the WebDAV server, more than one user on different computer systems may view the same workflow or project plan, monitor the progress of an activated project plan, or simultaneously create and activate different plans from the same workflow.
- WebDAV Web-based “Distributed Authoring and Versioning”
- FIG. 1 depicts a data processing system 100 suitable for practicing methods and systems consistent with the present invention.
- Data processing system 100 includes a group of computers 102 a, 104 , and 106 that are connected via a network 108 .
- Network 108 may be any known physical or wireless network capable of supporting a data transmission between two computer systems, such as a Local Area Network (LAN), a Wide Area Network (WAN), the Internet, or leased phone lines.
- LAN Local Area Network
- WAN Wide Area Network
- the Internet or leased phone lines.
- computer 102 a may actually be one of multiple computers (i.e., computers 102 a and 102 n ) used by affiliates of an enterprise or business conglomerate to communicate with one another via network 108 .
- the enterprise affiliates may be employees, managers, administrators, suppliers, customers, or other users within the enterprise who may need to create, view, or receive information regarding an activated project plan in accordance with methods and systems consistent with the present invention.
- Each computer 102 a, 104 , and 106 includes a memory ( 110 , 112 , and 114 , respectively), a secondary storage device ( 116 , 118 , and 120 , respectively), an I/O device ( 122 , 124 , and 126 , respectively), and a processor ( 128 , 130 , and 132 , respectively).
- Memory 110 in computer 102 a includes a Client Interface 134 to a Web-based “Distributed Authoring and Versioning” (WebDAV) server 140 in memory 112 .
- Client Interface 134 has Process and Plan modules 136 that collectively allow an enterprise affiliate to create a reusable workflow and to create and activate a project plan based on the reusable workflow.
- Memory 110 in computer 102 a also includes a target processor interpreter, such as a JavaTM Virtual Machine 138 .
- a target processor interpreter such as a JavaTM Virtual Machine 138 .
- the Client Interface 134 may be developed using the JavaTM Programming Language.
- Client Interface 134 may include JavaTM bytecodes.
- the JavaTM Virtual Machine 138 interprets the JavaTM bytecodes of the Client Interface 134 so that the Client Interface 134 may execute on computer 102 a.
- the WebDAV server 140 in memory 112 of computer 104 operates as a virtual file system for computers 102 a, 102 n, and 106 on the network 108 .
- WebDAV Server 140 communicates on the network 108 using the WebDAV protocol, and stores files on WebDAV storage 142 .
- WebDAV storage 142 may be a known database, such as Oracle, DB2, MS Structured Query Language (SQL) storage, or any Java Database Connectivity (JDBC)-compliant database.
- WebDAV Server 140 includes a database management system (DBMS) or a JDBC interface to control access to the WebDAV storage 142 .
- DBMS database management system
- JDBC Java Database Connectivity
- two separate enterprise affiliates using their respective Client Interfaces 134 on their respective computers 102 a and 102 n may independently request and view the same workflow or plan stored on WebDAV Storage 142 .
- the Client Interface 134 allows any enterprise affiliate to create, delete, move, and copy workflows, project plans, and associated roles/resource lists on WebDAV server 140 .
- properties of a process, a plan, or a task of a plan may be added, located, or changed on WebDAV Storage 142 by Client Interface 134 using known methods of the WebDAV protocol.
- the WebDAV protocol is a set of known extensions to the standard HyperText Transfer protocol (HTTP) that allows enterprise affiliates using client computers 102 a and 102 n to collaboratively store, edit, and manage files remotely on a Web Server, such as WebDAV Server 140 using network 108 .
- HTTP defines how messages sent to or from a Web server on the Internet are formatted and transmitted. HTTP also defines what actions a Web server or Web browser of a computer on the Internet should take in response to various commands submitted as part of an HTTP message.
- the WebDAV protocol defines a WebDAV resource to be a collection (e.g., a directory or folder on WebDAV Storage 142 ) or a collection member (e.g., a file or Web page on WebDAV Storage 142 ).
- Each WebDAV resource has a content file and properties associated with the content file. The properties include the creation date, the author, and the access rights for the WebDAV resource.
- the WebDAV protocol specifies the methods to create, delete, move, and copy a WebDAV resource. It also specifies the methods to add, find, or change a property of a WebDAV resource.
- WebDAV protocol and the HTTP extensions that comprise the WebDAV protocol are more clearly described in the following reference, which is incorporated herein by reference: HTTP Extensions For Distributed Authoring—WebDAV, RFC 2518, Standards Track, Proposed Standard, February 1999, available at http://andrew2.andrew.cmu.edu/rfc/rfc2518.html.
- Memory 114 in computer 106 includes a Tool Server 144 .
- the Tool Server 144 includes a WebDAV proxy 146 and Management Modules 148 .
- WebDAV proxy 146 mediates communication between the Client Interface 134 and the WebDAV server 140 .
- the messages or requests directed to the WebDAV server 140 from the Client Interface 134 are initially sent to the WebDAV proxy 146 , as discussed in detail below.
- the WebDAV proxy 146 passes these messages and requests to the Management Modules 148 .
- Each of the Management Modules 148 is configured to inform the WebDAV proxy 146 when a message or request has been serviced.
- the WebDAV proxy 146 sends the message or request to the WebDAV Server 140 via the network 108 . If, on the other hand, the Management Modules 148 are able to service the message or request, the message or request is not sent to the WebDAV Server 140 .
- the types of messages or requests serviced by the Management Modules 148 include activating a project plan, notifying various enterprise affiliates assigned to each task of the plan, and managing the execution of the plan to the enterprise affiliates.
- memory 114 in computer 106 includes a WebDAV servlet (not shown), which is an application designed to perform as a WebDAV Engine in lieu of WebDAV Server 140 .
- the WebDAV servlet may be started by and executed within the Tool Server 144 .
- WebDAV servlet is persistent. Thus, once WebDAV servlet is started, it stays in memory and can fulfill multiple requests.
- WebDAV servlet is configured to control access to WebDAV Storage 142 , which may be included in secondary storage 120 in computer 106 .
- Memory 114 in computer 106 also includes a target processor interpreter, such as a JavaTM Virtual Machine 150 .
- a target processor interpreter such as a JavaTM Virtual Machine 150 .
- the Tool Server 144 includes JavaTM bytecodes that the Java Virtual Machine 150 interprets so that the Tool Server 144 may execute on computer 106 .
- the data processing system 100 may operate in a local host configuration rather than across the network 108 .
- the memory 110 of computer 102 a may include the Tool Server 144 and the WebDAV Server 140 .
- the secondary storage device 116 may include the WebDAV Storage 142 .
- aspects of the present invention are described as being stored in memory, one skilled in the art will appreciate that these aspects can also be stored on or read from other types of computer-readable media, such as secondary storage devices, like hard disks, floppy disks, or CD-ROM; a carrier wave from a network, such as Internet; or other forms of RAM or ROM.
- secondary storage devices like hard disks, floppy disks, or CD-ROM
- carrier wave from a network, such as Internet
- Internet or other forms of RAM or ROM.
- FIG. 2 depicts a functional architectural overview of the workflow modeling and project planning integration tool 200 used to integrate workflow modeling and project planning.
- the tool 200 includes the Client Interface 134 as well as the Tool Server 144 .
- the Client Interface 134 and the Tool Server 144 may be located on different computer systems, as discussed above.
- the Client Interface 134 includes a Virtual File System (“VFS”) Interface 202 that is configured to allow the Client Interface 134 to connect to the secondary storage device 116 for local file access or to connect to the WebDAV Storage 142 via the WebDAV proxy 146 for virtual file access.
- VFS Virtual File System
- the VFS Interface 202 is configured to send the virtual file access requests from the Client Interface 134 to a Uniform Resource Locator (URL) or network address for the WebDAV proxy 146 .
- URL Uniform Resource Locator
- the URL for the WebDAV proxy 146 may be “http://www.ToolServer.com/WebDAVproxy.”
- a URL typically consists of an access protocol (e.g., http), a domain name (e.g., www.ToolServer.com), and, optionally, the path to a file or resource residing on that server (e.g., WebDAVproxy). If the Tool Server 144 , where the WebDAV proxy 146 is located, has an IP address of 192.168.5.1 and an assigned port address of 8088, then the URL for the WebDAV proxy translates to “http://192.168.5.1/:8088/WebDAVproxy.”
- the VFS Interface 202 initially sends the requests that the Client Interface 134 directs to the WebDAV Storage 142 to the WebDAV proxy 146 .
- the WebDAV proxy 146 sends these requests to the Management Modules 148 .
- the WebDAV proxy 146 sends the request to the WebDAV server 140 if the Management Modules 148 do not respond to the requests from the Client Interface 134 .
- the Tool Server 144 directs the request to a URL or network address for the WebDAV server 140 .
- the Client Interface 134 also includes a module loader 204 to load the Process and Plan modules 136 .
- Client Interface 134 may be developed so that the functionality provided by Process and Plan modules 136 is not loaded by a known module loader 204 , but integrally incorporated within the element corresponding to the Client Interface 134 .
- the Process and Plan modules 136 produce the requests to store or modify the various client files on the WebDAV storage 142 .
- the various types of client files include a condition model, a user profile, a resource profile, a workflow definition file, and a plan definition file. Each of these files has properties defined in accordance with the WebDAV protocol.
- the various types of client files follow a schema or document type definition that is known to the Tool Server 144 so that the Tool Server 144 can identify the type of client file sent by the Client Interface 134 and intercepted by the WebDAV Proxy 146 .
- each type of client file has a unique identifier, such as a URL network address, which the Tool Server 144 may use to locate the associated client file for processing.
- the various types of client files are discussed in context with the general description of the Process and Plan modules 136 and also further discussed with the implementation details of creating a workflow and a project plan from the workflow.
- XML files are used to represent the client files used with methods and systems consistent with the present invention, one skilled in the art will recognize that any file type can be used to represent the client files.
- the Process and Plan Modules 136 include a Resource Manager Module 206 , an Activity I/O Condition Designer Module 208 , a Process Designer Module 210 , a Project Plan Manager Module 212 , and a Task Tracker Module 214 .
- the Resource Manager Module 206 allows an enterprise affiliate with system administrative privileges or permissions, such as a project manager, to create, modify, and store a user profile for an enterprise affiliate.
- the user profile identifies the access control rights that are associated with the enterprise affiliate, such as whether the enterprise affiliate may create a project plan based on a workflow or whether the enterprise affiliate is limited to viewing an existing workflow or plan.
- the Client Interface 134 may specify that the user profile be stored with a unique identifier so that the Tool Server 144 may later locate the user profile for further processing. For example, the Client Interface 134 may request that the unique identifier be a location or URL where the user profile is to be stored on the WebDAV Storage 142 . If the unique identifier is stored as a property of the user profile on the WebDAV storage 142 , the Client Interface 134 sends a request to the WebDAV Server 140 to set the value of the property.
- the Resource Manager Module 206 also allows an enterprise affiliate to create, modify, and store the role profiles that may be assigned to an activity of a workflow that is modeled using the tool 200 .
- the role profile identifies a group of resources that may be assigned to complete a task created from the activity.
- the role profile is a type of client file that the Client Interface 134 may store on WebDAV storage 142 with a unique identifier (e.g., a URL for the role profile) to locate the role profile at a later time.
- a role profile may include a Rolename that represents a “capability” or “skill set” for the role.
- an enterprise affiliate may identify one of the following Rolenames to the Resource Manager Module 206 so that the associated role profiles are later available to assign when defining a software development process: Manager, Analyst, Software Architect, Software Developer, Tester, Hardware Architect, and Editor.
- the Resource Manager Module 206 further allows an enterprise affiliate to create, modify, and store the resource profiles (e.g., the person, equipment, or systems, such as a development facility) that may be assigned to a task of a plan created from a workflow.
- the resource profile includes a resource ID and a unique identifier for the role profile so that the Client Interface 134 may communicate to the Tool Server 144 that the identified resource has skills or capabilities corresponding to the role profile.
- the Tool Server 144 may recognize that the person can play a given role (e.g., Analyst) in a specific activity in a workflow (e.g., Software Development Process) based on the skills or capabilities required by the role assigned to the activity to be performed.
- the Activity I/O Condition Designer Module 208 allows an enterprise affiliate, such as a manager, to define a condition model, i.e., an input condition or an output condition, for an activity of a workflow.
- the Activity I/O Condition Designer Module 208 stores the condition model with a unique identifier so that the Tool Server 144 may later locate the condition model for processing, such as when a task of a plan is created from the activity of the workflow, as explained below.
- the Activity I/O Condition Designer Module 208 allows the enterprise affiliate to create a condition model based on one of these two condition types.
- the Activity I/O Condition Designer Module 208 also allows the enterprise affiliate to assign a document-type condition model or a logic-type condition model to an activity when creating the activity in a workflow.
- Each document-type and logic-type condition model has properties defined by the enterprise affiliate that created the respective condition model using the Activity I/O Condition Designer Module 208 .
- the properties of the document-type condition model include a location property (e.g., a URL) identifying the location of the document or artifact being monitored.
- a location property e.g., a URL
- the Client Interface 134 uses the location property to notify the resource responsible for the task where to find the document or artifact so that the resource may complete its task.
- Another property of the document-type condition model is a state property that indicates the allowable states of the document or artifact.
- the document may have the states “DRAFT” and “APPROVED.”
- the enterprise affiliate assigns one of these allowable states as a condition for entry into or exit from the activity (or the task created from the activity).
- the Workflow Engine 222 evaluates whether the state property of the document condition satisfies the input or output condition of the activated task before starting or closing the task.
- Activity I/O Condition Designer Module 208 allows the enterprise affiliate to define the properties shown in Table 1.
- Task The condition is checked when the task Change that is specified during plan creation changes its state (e.g., starts, finishes). Any The condition is checked when any HTTP Request request is detected. Script The script to run when the condition is met. The script must return “true” or “false” (a Boolean).
- the Client Interface 134 uses the logic-type condition model to generate a logic-type condition for entry/exit and the script (e.g., logic element) to be performed to determine if the condition is met.
- the enterprise affiliate may indicate to the Activity I/O Condition Designer Module 208 that the condition is to check if the task is complete and that the logic to be performed is to check the status property of the task. In this case, the user or resource assigned to this task must notify the Client Interface 134 that the task is complete.
- the enterprise affiliate may indicate to the Activity I/O Condition Designer Module 208 that the condition is to check if the task is complete and that the logic to be performed is to check for the existence of a file in a specific directory folder on WebDAV Storage 142 in order to determine if the task is complete.
- the user or resource assigned to this task must create or move a file into the specific directory folder to indicate that the task is complete.
- the Process Designer Module 210 allows an enterprise affiliate to create, modify, and store a workflow.
- Process Designer Module 210 produces a workflow definition file based on the modeled workflow object.
- Client Interface 134 then sends as the workflow definition file as a client file to WebDAV Server 140 to be stored on WebDAV Storage 142 .
- Each workflow definition file produced by Process Designer Module 210 includes a unique identifier (e.g., a URL for the workflow definition file) so that Tool Server 144 may later locate the workflow definition file corresponding to the modeled workflow for further processing.
- Project Plan Manager Module 212 allows an enterprise affiliate to create and activate a project plan from a workflow definition file. In general, upon request to create a project plan, Project Plan Manager Module 212 sends a query message to the WebDAV Server 140 for the workflow definition files contained in WebDAV Storage 142 . As further described below, Project Plan Manager Module 212 receives the workflow definition files, allows the enterprise affiliate to select one of the workflow definition files to create a project plan, and then produces a plan definition file based on the selected workflow definition file. When instructed to save the plan by the enterprise affiliate, Project Plan Manager Module 212 sends the plan definition file as a client file to WebDAV Server 140 to be stored on WebDAV Storage 142 . Each plan definition file produced by Process Designer Module 210 includes a unique identifier (e.g., a URL for the plan definition file) so that Tool Server 144 may later locate the workflow definition file corresponding to the modeled workflow for further processing.
- a unique identifier e.g., a URL for the plan definition file
- the Task Tracker Module 214 allows an enterprise affiliate to view the tasks of an activated project plan that are assigned to a specific role, to activate a task of the project plan (e.g., indicate actual start time to Client Interface 134 ), to open or check-out a document artifact needed to accomplish the task, to close or check-in the document artifact after accomplishing the task, and to indicate that the task is completed.
- the Tool Server 144 includes a module loader 216 to load the Management Modules 148 . Similar to the Client Interface 134 , the Tool Server 144 may be developed so that the functionality provided by Management Modules 148 is not loaded by a known module loader 216 , but integrally incorporated within the element corresponding to the Tool Server 144 .
- Management Modules 148 include a User Authorization Module 218 , a Resource/Role Management Module 220 , and a Workflow Engine 222 .
- the Workflow Engine 222 includes a Project Plan Management Module 224 and a Project Task Management Module 226 .
- the User Authorization Module 218 verifies that that the enterprise affiliate making the request has a user profile on the WebDAV Storage 142 with the proper authorization or permission to access the requested client file.
- the User Authorization Module 218 may be connected to a Light Directory Access Protocol (LDAP) Import Module 228 , which follows a known LDAP protocol to allow the User Authorization Module 218 to obtain existing user profiles from another computer on network 108 .
- LDAP Light Directory Access Protocol
- an LDAP protocol is based on “entries,” where an entry is a collection of attributes that have a “distinguished name” (DN).
- directory entries are arranged in a hierarchical tree-like structure that reflects political, geographic, and/or organizational boundaries. For example, entries representing countries may appear at the top of the tree. The entries below the countries may represent states or national organizations. Below the states or national organizations may be entries representing people (e.g., user profiles), organizational units, printers, documents, or any other accessible entity.
- Each level in the hierarchical tree-like structure for the directory entries may be identified by a known standardized keyword, such as “CN” for the common name of the entry (e.g., user profile), “L” for locality name, “ST” for state or province name, “O” for organization name, “OU” for organizational unit name, and “C” for country name.
- the LDAP Import Module 228 uses a DN to refer to the entry unambiguously via a concatenation of the hierarchical tree-like structure. After user profiles are retrieved by the User Authorization Module 218 via the LDAP import module 228 , the user profiles may then be stored on the WebDAV Storage 142 by a request from the Client Interface 134 .
- the Resource/Role Management Module 220 reviews requests from an enterprise affiliate to assign a resource to a plan (e.g., to assign a user to a task of the plan).
- the Resource/Role Management Module 220 checks the resource profile corresponding to the assigned resource on the WebDAV Storage 142 to verify that the resource is not overloaded. For example, the Resource/Role Management Module 220 determines whether a resource is already assigned to another task in another plan during the same time frame, thus preventing it from being able to complete one of the tasks to which it is assigned.
- the Resource/Role Management Module 220 may also be connected to the LDAP Import Module 228 to allow the Resource/Role Management Module 220 to obtain existing resource profiles from another computer on network 108 .
- the resource profiles may also be stored on WebDAV Storage 142 by a request from Client Interface 134 .
- the Workflow Engine 222 reviews requests to activate, deactivate, or update a plan. For example, a request to update a plan occurs if the enterprise affiliate who is an owner of a task indicates in its request that the task is complete. The Workflow Engine 222 also manages the execution of the activated plans.
- FIG. 3 depicts a flow diagram illustrating the high-level process performed by the workflow modeling and project planning integration tool in accordance with methods and systems consistent with the present invention.
- the tool creates or retrieves a workflow (step 302 ).
- the tool displays the workflow (step 304 ).
- the workflow comprises a set of activities that represents the steps to be performed as part of a plan executed from the workflow.
- Each activity has an activity description and at least one role responsible for the activity.
- the activity description indicates what step is to be performed by the role.
- FIG. 4 depicts an exemplary document workflow 400 .
- the workflow 400 includes a start element 402 , an end element 404 , and two activities, “Step 1 ” 406 and “Step 2 ” 408 .
- Step 1 ” 406 occurs directly before “Step 2 ” 408 , “Step 1 ” 406 is the predecessor activity to “Step 2 ” 408 . Similarly, “Step 2 ” 408 is the “successor activity” to “Step 1 ” 406 .
- the workflow 400 is used to monitor the state of Artifact 410 .
- the state of Artifact 410 is “State 1 ” 412
- the state of Artifact 410 is “State 2 ” 414
- the state of Artifact 410 is “Complete” 416 .
- FIG. 5 depicts an exemplary task workflow 500 .
- the task workflow 500 includes a start element 502 , an end element 504 , two serial activities 506 and 508 and two parallel activities 510 and 512 .
- the workflow also includes two synch bars 514 and 516 , which are used to connect the ends of parallel activities. Contrary to the document workflow, the task workflow allows for parallel activities.
- FIG. 6 Another exemplary workflow 600 is depicted in FIG. 6.
- the workflow 600 includes a start element 602 and an end element 604 .
- the first activity of the workflow 600 is “Get Parts” 606 , which is followed by a logic activity, “L or Rt Handed?” 608 .
- Logic activities have two successor activities: a “default activity” and a “non-default activity.” As the name implies, the workflow generally follows the path of the default activity unless a condition is met in the logic activity, as discussed in detail below.
- the default activity is “Right” 610 .
- the non-default activity is “Left” 612 , which is followed by another activity “Left Special” 614 .
- the default path is represented as a solid connector 616 while the non-default path is represented as a dotted connector 618 .
- any visible difference in the connectors e.g., a change in type, color, shading, etc., may be used to represent both the default path as well as the non-default path.
- Both the default activity 610 and the non-default activities 612 and 614 are followed by another activity, “Complete Assembly” 620 .
- the next step performed by the tool is to create a plan from the workflow (step 306 ).
- Each activity in the default path of the workflow corresponds to a task in the plan.
- the task identifies the scheduled start and stop times for the task.
- the tool displays the plan (step 308 ).
- the plan created from the workflow 400 depicted in FIG. 4 is shown in FIG. 7.
- the plan 700 includes two tasks 702 and 704 that correspond to the two activities 406 and 408 from the workflow 400 .
- the first task 702 is scheduled to begin at 9 a.m. 706 on Aug. 1, 2001 (not shown), and end at 6 p.m. 708 on the same day.
- the second task 704 is scheduled to begin at 9 a.m. 710 on Aug. 2, 2001 ( 712 ) and end at 5 p.m. 714 on the same day.
- the plan 800 created from the workflow 500 depicted in FIG. 5 is shown in FIG. 8.
- the plan 800 includes two serial tasks 802 and 804 that correspond to the two serial activities 506 and 508 from the workflow 500 .
- the plan 800 also includes two parallel tasks 806 and 808 that correspond to the two parallel activities 510 and 512 from the workflow 500 .
- “Serial 1 ” task 802 is scheduled to begin at 9 a.m. 810 on Aug. 1, 2001 ( 812 ) and end at 5:30 p.m. 814 on the same day.
- the parallel tasks 806 and 808 are scheduled to start at the completion of the “Serial 1 ” task 802 , and are scheduled to end at 6 p.m. 816 on Aug. 2, 2001 ( 818 ).
- the “Serial 2 ” task 804 is scheduled to begin upon completion of the parallel tasks 806 and 808 and is scheduled to end at 6 p.m. 820 on Aug. 3, 2001 ( 822 ).
- the plan 900 created from the workflow 600 depicted in FIG. 6 is shown in FIG. 9.
- the plan 900 includes a task 902 corresponding to the activity “Get Parts” 606 , followed by a task 904 corresponding to the activity “L or Rt Handed?” 608 .
- the following task 906 corresponds to the activity “Right” 610 .
- the final task 908 corresponds to the activity “Complete Assembly” 620 .
- the plan 900 depicts the default path, and does not include any of the tasks corresponding to the non-default path. Although the start and end times are not depicted in the plan 900 shown in FIG. 9, each task has a scheduled start and stop time.
- the tool then activates the plan (step 310 ).
- the tool manages the execution of the activated plan (step 312 ).
- the tool also modifies the display of the plan as each task is executed (step 314 ).
- the tool determines whether the execution of the plan is complete (step 316 ). If the execution of the plan is complete, processing ends. Otherwise, processing continues to step 312 .
- the first task 702 begins execution.
- the tool depicts the executing task 1002 by darkening the outer borders of the block representing the task 1002 , as depicted in the plan 1000 shown in FIG. 10.
- the tool depicts the executed task 1102 as a darkened block in the plan 1100 , as shown in FIG. 11.
- the second task 1104 begins execution, as indicated by the darkened outer borders of the task 1104 .
- both tasks 1202 and 1204 are depicted as darkened blocks in the plan 1200 , as shown in FIG. 12.
- the tool represents an executing task with darkened borders and represents an executed task as a darkened block.
- any visible change in the blocks representing the tasks e.g., a change in shape, color, shading, etc., may be used to represent the tasks in their various states.
- the representation of the tasks used in the methods, systems, and articles of manufacture consistent with the present invention are not limited to those used in the present embodiment.
- FIGS. 13 - 16 The activation and execution of the tasks of the plan 800 depicted in FIG. 8 are shown in FIGS. 13 - 16 .
- FIG. 13 depicts the state of the plan 1300 while the “Serial 1 ” task 1302 is executing.
- FIG. 14 depicts the state of the plan 1400 after execution of the “Serial 1 ” task 1402 , while the “Parallel 1 ” and the “Parallel 2 ” tasks 1404 and 1406 are executing.
- FIG. 15 depicts the state of the plan 1500 after execution of the “Serial 1 ” task 1502 and the “Parallel 1 ” and the “Parallel 2 ” tasks 1504 and 1506 , while the “Serial 2 ” task 1508 is executing.
- FIG. 16 depicts the state of the plan 1600 after execution of the tasks 1602 , 1604 , 1606 , and 1608 .
- FIG. 9 represents a plan 900 created from a workflow 600 having a logic block 608 .
- the activation and execution of the tasks of the plan 900 following the default path are shown in FIGS. 17 - 21
- the activation and execution of the tasks of the plan 900 following the non-default path are shown in FIGS. 22 - 27 .
- FIG. 17 depicts the state of the plan 1700 while the “Get Parts” task 1702 is executing.
- FIG. 18 depicts the state of the plan 1800 after the execution of the “Get Parts” task 1802 , while the “L Or Rt Handed?” logic task 1804 is executing.
- the plan 1900 shown in FIG. 19 depicts both the “Get Parts” task 1902 and the “L Or Rt Handed?” logic task 1904 in executed states, while the “Right” task 1906 is depicted in an executing state. After the execution of the “Right” task 1906 is complete, the state of the plan 2000 is depicted in FIG.
- the execution of the plan is initially the same as when the default path is chosen.
- the plan 2200 begins with the execution of the “Get Parts” task 2202 .
- the plan 2300 shown in FIG. 23 depicts the “Get Parts” task 2302 in an executed state while the “L Or Rt Handed?” task 2304 is shown in an executing state.
- the resource assigned to choose the default or the non-default path chooses the non-default path, thus completing the execution of the “L Or Rt Handed?” task 2404 , as indicated in FIG. 24.
- the tool 200 modifies the plan 2400 to correspond to the non-default path of the corresponding workflow.
- the plan 2400 depicts the tasks included in the non-default path.
- the plan 2400 includes the “Left” and “Left Special” tasks 2406 and 2408 rather than the “Right” task 2306 , which is depicted in FIG. 23 before the non-default path was chosen.
- the “Left” task 2406 is executing.
- FIG. 25 depicts the plan 2500 after the “Get Parts” task 2502 , the “L Or Rt Handed?” logic task 2504 , and the “Left” task 2506 have been executed, while the “Left Special” task 2508 is executing.
- the tool 200 receives the name of the workflow group from the enterprise affiliate (step 2808 ).
- the enterprise affiliate may request a new workflow group by clicking on “Process Designer” button 2908 of the user interface 2900 depicted in FIG. 29.
- the enterprise affiliate may, alternatively, use any known data input technique, such as an icon or keyboard input, to indicate the request to the tool 200 .
- the tool 200 displays an exemplary user interface 3000 depicted in FIG. 30 for receiving a new workflow group identification 3002 via keyboard input from an enterprise affiliate using computer 102 a or 102 n.
- the tool 200 After receiving the new workflow group identification, the tool 200 creates a new workflow group in storage (step 2810 ). For example, the tool 200 may create the workflow group on WebDAV Storage 142 .
- the Client Interface 134 sends the WebDAV Server 140 a request to create a new collection or folder on WebDAV Storage 142 with the same identification as the new workflow group identification 3002 .
- the Client Interface 134 receives a response from the WebDAV Server 140 confirming that the new workflow group folder was created on WebDAV Storage 142 .
- the WebDAV properties (e.g., “date of creation,” “property name” and “lockdiscovery” properties) are created and stored in association with the new directory by the WebDAV Server 140 .
- the Client Interface 134 when generating the new workflow group, the Client Interface 134 also sets the “property name” of the new workflow group to be “workflow group” so that the Client Interface may subsequently use known WebDAV methods, such as “PropFind,” to retrieve the identification of each workflow group on WebDAV Storage 142 .
- the tool 200 determines whether to use an existing workflow (step 2812 ).
- the tool 200 receives user input from an enterprise affiliate with system administrative privileges or permissions to determine whether to retrieve an existing workflow or to create a new workflow. If the tool 200 determines that it will use an existing workflow, the tool 200 receives an identification of the workflow from the enterprise affiliate (step 2814 ).
- the Client Interface 134 may retrieve the identifications for the workflows in the selected workflow group and display the available workflows to allow the enterprise affiliate to select one of the available workflows. Alternatively, the enterprise affiliate may enter the identification of the desired workflow to the tool 200 for retrieval. Using the identification, the tool 200 then retrieves the workflow (step 2816 ).
- FIGS. 33 A-C depict an exemplary workflow definition file 3300 that is produced by the tool 200 when the workflow 600 depicted in FIG. 6 is created.
- the name 3302 of the workflow, “Logic Branch Project,” is identified in the workflow definition file 3300 .
- the workflow 600 does not have a workflow group 3304 .
- the element 3306 in the workflow definition file 3300 represents the “Get Parts” activity 606 .
- the element 3308 (FIG.
- the element 33C represents the “L or Rt Handed?” logic activity 608
- the element 3310 represents the “Right” activity 610
- the element 3312 represents the “Left” activity 612
- the element 3314 represents the “Left Special” activity 614
- the element 3316 represents the “Complete Assembly” activity 620 .
- the start element 602 is represented by the element 3318
- the end element 604 is represented by the element 3320 .
- the next step performed by the tool 200 is to receive an indication of the type of activity to be created for the workflow (step 2822 in FIG. 28B).
- the activity may be a standard activity or a logic activity.
- the workflow 3402 depicted in the user interface 3400 of FIG. 34 includes five standard activities 3404 , 3406 , 3408 , 3410 , and 3412 .
- the workflow 3402 also includes one logic activity 3414 .
- the selection of the type of activity may be made by clicking on the icon for a standard activity 3416 or the icon for the logic activity 3418 .
- any known data input technique such as a pull-down menu or keyboard input, may be used to select the type of activity.
- the tool 200 After receiving an indication of the type of activity, the tool 200 receives the name of the activity (step 2824 ).
- the names of the activities depicted in the workflow 3402 are included with the activity.
- the name of activity 3404 is “Assignment”
- the name of activity 3406 is “Analysis,” etc.
- the name of the first activity 606 is “Get Parts,” which is identified by the element 3322 in the workflow definition file 3300 of FIG. 33.
- the name of the logic activity 608 is “L or Rt Handed?,” which is identified by the element 3324 .
- the name of the activity 610 is “Right,” as identified by the element 3326 .
- the name of the activity 612 is “Left,” as identified by the element 3328 .
- the name of the activity 614 is “Left Special,” as identified by the element 3330 .
- the name of the activity 620 is “Complete Activity,” as identified by the element 3332 .
- the tool 200 receives an indication of the role responsible for the activity (step 2826 ).
- the Client Interface via Resource Manager Module 206 ) allows an enterprise affiliate to identify a role or role profile that may be assigned to an activity of the workflow.
- a role profile includes a Rolename that represents a “capability” or “skill set,” which is needed to perform a task of a plan created from the workflow, where the task corresponds to the activity of the workflow.
- FIG. 35 depicts a user interface 3500 displayed by the Client Interface to receive a role profile. In the implementation shown in FIG.
- the Client Interface receives a Rolename 3502 (e.g., “Project Manager”) for the role profile via the enterprise affiliate clicking on an “Add” button 3504 and then entering Rolename 3502 in a dialog box 3506 that is displayed by the Client Interface.
- a Rolename 3502 e.g., “Project Manager”
- the Client Interface may also receive as additional entries (not shown) to dialog box 3506 a skill and an associated skill level for Rolename 3502 as part of this role profile.
- the enterprise affiliate may indicate to the Client Interface via the additional entries to dialog box 3506 that the Rolename 3502 of “Project Manager” be associated with a skill entitled “Object-oriented software programming” and with a skill strength of “7” on a scale of 10.
- the tool 200 stores the role profiles in association with the selected workflow activity on WebDAV Storage 142 .
- the tool 200 saves significant costs in developing multiple workflows by allowing the enterprise affiliate to store the role profiles in association with the selected workflow activity on WebDAV Storage 142 so that the role profiles may be available for the enterprise affiliate to assign to an activity of another workflow that is also related to the selected workflow activity.
- the Client Interface stores the role profiles in a single role definition file (not shown) on WebDAV Storage 142 .
- the Client Interface stores the role profiles in separate files (not shown) on WebDAV Storage 142 . Each separate file has a name that is the same as the received Rolename 3502 .
- the Client Interface defines an associated WebDAV property having a common name, such as “role profile,” so that the Client Interface may later retrieve the role profiles stored on WebDAV storage.
- the role profiles may also be stored with the workflow definition file. As shown in the workflow definition file 3300 depicted in FIG. 33, the role profile 3334 for the “Get Parts” activity 606 indicates that the role responsible for the activity is “Assembler” 3336 . Similarly, the role profile 3338 for the “L or Rt Handed?” activity 608 indicates that the role responsible for the activity is “Assembler” 3340 . The role profile 3342 for the “Right” activity 610 indicates that the role responsible for the activity is “Assembler” 3344 . The role profile 3346 for the “Left” activity 612 indicates that the role responsible for the activity is “Assembler” 3348 .
- the role profile 3350 for the “Left Special” activity 614 indicates that the role responsible for the activity is “Assembler” 3352 .
- the role profile 3354 for the “Complete Assembly” activity 620 indicates that the role responsible for the activity is “Assembler” 3356 .
- the next step performed by the tool 200 is to determine whether the activity has any predecessor activities (step 2828 ). If the activity does have a predecessor activity, the tool 200 receives an indication of the predecessor activities from the workflow definition file (step 2830 ). After checking for any predecessor activities and/or receiving the predecessor activities, the tool 200 determines whether the activity has any successor activities (step 2832 ). If the activity has a successor activity, the tool 200 receives an indication of the successor activities from the workflow definition file (step 2834 ). In the user interface 3400 of FIG. 34, the “Path” icon 3420 is used to connect the predecessor activity to the successor activity.
- a path 3422 was drawn from the “Assignment” activity 3404 to the “Analysis” activity 3406 .
- the “Assignment” activity 3404 is the predecessor activity to the “Analysis” activity 3406
- the “Analysis” activity 3406 is the successor activity to the “Assignment” activity 3404 .
- a “Vertical For/Join” icon 3424 or a “Horizontal Fork/Join” activity may be used to connect more than one predecessor activities to a successor activity, or to connect a predecessor activity to more than one successor activities.
- the activity ID 3358 of the “Get Parts” activity 606 is “10. ”
- the predecessor 3360 to the “Get Parts” activity 606 has an ID of “11” 3362 , which corresponds to the start element 602 .
- the successor 3364 to the “Get Parts” activity 606 has an ID of “ 1522 ” 3366 , which corresponds to the “L or Rt Handed?” logic activity 608 .
- the predecessor 3368 to the “L or Rt Handed?” logic activity 608 has an ID of “10” 3358 , which corresponds to the “Get Parts” activity 606 .
- the workflow definition file 3300 identifies two paths out of the “L or Rt Handed?” logic activity 608 , one path 3370 has an ID of “1525” 3372 , which corresponds to the “Right” activity 610 , and the other path 3374 has an ID of “1523” 3376 , which corresponds to the “Left” activity 612 .
- the element representing the “L or Rt Handed?” logic activity 608 also identifies that the default path 3378 has an ID of “1525” 3372 , which corresponds to the “Right” activity 610 .
- the predecessor 3380 to the “Right” activity 610 and the predecessor 3382 to the “Left” activity 612 have an ID of “1522” 3366 , which corresponds to the “L or Rt Handed?” logic activity 608 .
- the remaining predecessor and successors follow this convention.
- the tool 200 determines whether the activity has any on-entry scripts (step 2836 ).
- An on-entry script is a step to be performed by the tool 200 upon entry into the activity.
- the on-entry script may be to send an email notifying a user about the activity.
- Another example of an on-entry script is to retrieve the status of an artifact that may be necessary to complete the activity.
- the on-entry script may also be a request sent to an enterprise affiliate to obtain data. If the activity has an on-entry script, the tool 200 receives an indication of the on-entry scripts (step 2838 ).
- the tool 200 determines whether the activity has any on-exit scripts (step 2840 in FIG. 28C).
- An on-exit script is a step to be performed by the tool 200 before exiting the activity. For example, the on-exit script may be to send an email notifying a user about the end of an activity. If the activity has an on-exit script, the tool 200 receives an indication of the on-exit scripts (step 2842 ). For example, the “Complete Assembly” activity 620 depicted in FIG. 6 includes both an on-entry script 3384 as well as an on-exit script 3386 .
- the tool 200 Upon entering the task created from the “Complete Assembly” activity, the tool 200 sends an email to the owner indicating that the “Debugging period started” 3388 . Prior to exiting the task created from the “Complete Assembly” activity, the tool 200 sends an email to the owner indicating that the “Debugging finished” 3390 .
- the tool 200 (in particular, the Workflow Engine 222 ) monitors the state of an artifact for an activated “Get Parts” task created from the “Get Parts” activity 606 until the state of the artifact is the “INITIAL” state 3395 before the tool 200 continues with the next task in the plan.
- the output condition 3396 for the “Right” activity 610 has an ID of “1533” 3397 .
- the output condition 3396 for the “Right” activity 610 is also a document-type condition, as indicated by the “linkable 1 ” identity 3398 . This condition 3396 signals the tool 200 to monitor the state of an artifact until it is in the “RIGHT” state 3399 .
- FIG. 36 depicts an exemplary user interface 3600 displayed by the Client Interface 134 to include either a document-oriented 3602 or a script (or logic)-oriented 3604 condition.
- the Client Interface 134 may receive the request to add a condition to the activity via a pull-down menu selection 3606 .
- the enterprise affiliate may, however, use any known data input technique to request that a condition be added to an activity, such as an icon or keyboard input, to indicate the request to the Client Interface 134 . If the enterprise affiliate selects a document-oriented condition, the enterprise affiliate may be presented with the user interface 3700 depicted in FIG. 37 to identify the properties of the condition to the Client Interface 134 .
- the condition properties 3702 include condition-name property 3704 for the document-type condition model.
- the Client Interface 134 receives the condition-name property 3704 via a keyboard input by the enterprise affiliate.
- the Client Interface 134 uses the condition-name property 3704 to distinguish the condition model to be created from other condition models stored on WebDAV Storage 142 .
- the Client Interface 134 may store the document-type condition model file on WebDAV Storage 142 having the same name as the condition-name property 3704 .
- the Client Interface 134 may store the condition-name property 3704 as a WebDAV property stored in association with the document-type condition model file on WebDAV Storage 142 .
- the Client Interface 134 also receives a link-parameter property 3706 as one of Condition properties 3702 for the document-type condition model to be created by the Client Interface.
- the enterprise affiliate may identify link-parameter property 3706 to the Client Interface via keyboard input.
- Link-parameter property 3706 may be used by an enterprise affiliate in an activity-related script that is identified to the Client Interface during the creation of a workflow as described below.
- the Workflow Engine 222 in FIG. 2 is able to locate the corresponding document condition upon so that a corresponding input or output condition may be evaluated by the Workflow Engine 222 .
- the Client Interface 134 may also receive a description property 3708 as one of Condition properties 3702 for the document-type condition model to be created by the Client Interface.
- the Client Interface may display description property 3708 in association with condition-name property 3704 to allow an enterprise affiliate to effectively choose whether the document-type condition model should be assigned to an activity of the workflow.
- the Client Interface may also receive one or more triggering-event properties 3710 for the document-type condition model.
- the Client Interface may receive the triggering-event properties as one of the condition properties 3702 for the document-type condition model to be created by the Client Interface.
- Triggering-event properties 3710 indicate to the Workflow Engine 222 when to check the state property of a document condition as an entry or exit condition of an activated task.
- Triggering-event properties 3710 may include a “Write into document” event 3712 , a “Change property of document” event 3714 , a “Put document into repository” event 3716 , a “copy or move into document” event 3718 , and a “delete document” event 3720 .
- the Client Interface 134 receives document state properties 3722 as one of the Condition properties 3702 for the document-type condition model to be created by the Client Interface.
- Document state properties 3722 identify possible values for a state property of a document condition that is created using the document-type condition model.
- an enterprise affiliate who has been identified as the responsible owner of an activated task may change the state property of a document condition (e.g., from “DRAFT” to “APPROVED”) using the Client Interface, which sends a request to WebDAV Server 140 in FIG. 2 to set the state property of the document condition as indicated by the enterprise affiliate.
- Workflow Engine 222 in FIG. 2 may then check the state property of the document condition on WebDAV Storage 142 when triggering-events 3710 occur.
- the Client Interface also receives a location property 3724 as one of Condition properties 3702 identified by the enterprise affiliate for the document-type condition model.
- Location property 3724 is a unique identifier or URL for a document template that the Client Interface uses to create the document condition that is then stored by the Client Interface on WebDAV Storage 142 .
- Location property 3724 may be a location on secondary storage device 116 of computer 102 a or a location on WebDAV Storage 142 .
- the document condition is created by the Client Interface 134 when a plan is instantiated or created from a workflow having an activity with an entry or exit condition created using the document-type condition model.
- the Client Interface receives application property 3726 as one of Condition properties 3702 identified by the enterprise affiliate for the document-type condition model.
- Application property 3726 is a unique identifier or URL for an application, such as Microsoft Word, that the Client Interface may run to create an instant of the document template that may be found at the location specified by location property 3724 .
- the Client Interface uses the instant of the document template to create and store the document condition on WebDAV Storage 142 .
- FIG. 38 depicts an exemplary user interface 3800 displayed by the Client Interface 134 to receive the condition properties 3802 for a logic-type condition model that is to be created by the Client Interface 134 .
- the condition properties 3802 include a condition-name property 3804 for the document-type condition model.
- the Client Interface 134 receives the condition-name property 3804 via a keyboard input by the enterprise affiliate.
- the Client Interface 134 uses the condition-name property 3804 to distinguish the logic-type condition model to be created from other condition models stored on WebDAV Storage 142 .
- the Client Interface 134 stores a logic-type condition model file on WebDAV Storage 142 that has the same name as condition-name property 3804 .
- the Client Interface 134 may also store condition-name property 3804 as a WebDAV property stored in association with the logic-type condition model file on WebDAV Storage 142 .
- the Client Interface 134 may receive a description property 3806 as one of the Condition properties 3802 for the logic-type condition model to be created by the Client Interface 134 .
- the Client Interface 134 may display the description property 3806 in association with the condition-name property 3804 to allow an enterprise affiliate to effectively choose whether the logic-type condition model should be assigned to an activity of the workflow.
- the Client Interface 134 may also receive one or more triggering-event properties 3808 for the logic-type condition model as one of the condition properties 3802 for the logic-type condition model to be created by the Client Interface 134 .
- Triggering-event properties 3808 indicate to the Workflow Engine 222 when to check an entry or exit condition of an activated task.
- Triggering-event properties 3808 include: an “Absolute time” event 3810 , a “Period” event 3812 , a “URL change” event 3814 , a “Task change” event 3816 , and “any http request” event 3818 .
- “Absolute time” event 3810 identifies a trigger for a specific data and time from the start time of the activated task.
- “Period” event 3812 identifies a trigger for a specific unit of time, such as once every minute.
- URL change event 3814 identifies a trigger when the contents of the directory or folder located at the URL changes.
- Tisk change” event 3816 identifies a trigger for any time the activated task definition file or associated property changes.
- the Client Interface 134 when an enterprise affiliate that is responsible for the task uses the Client Interface 134 to identify that the task is complete, the Client Interface 134 in response sends a request to the WebDAV Server 140 to set the status property of the activated task to “FINISHED.” As part of the processing for managing an activated plan as described below, the Workflow Engine 222 will receive this request before the WebDAV Server 140 and interpret the request as an example of a “Task change” event 3816 . Similarly, “Any http request” event 3818 indicates to the Workflow Engine 222 to check the entry or exit condition of the activated task when any request is received from the Client Interface 134 that pertains to the activated task.
- the Client Interface 134 may send a request to the WebDAV Server 140 to retrieve the activated task file so that a status of the activated task can be viewed by an enterprise affiliate.
- Workflow Engine 222 will receive this request before the WebDAV Server 140 and interpret the request as an example of an “Any http request” event 3818 .
- the Client Interface 134 may also receive a script 3820 as one of the condition properties 3802 for the logic-type condition model to be created by the Client Interface 134 .
- Script 3820 is executed by the Workflow Engine 222 when a triggering-event occurs that corresponds to one of the triggering-event properties 3808 selected by the enterprise user using the Client Interface 134 .
- Script 3820 may include a script parameter 3822 , a script value 3824 for script parameter 3822 , and script content 3826 that may use the script parameter 3822 initialized to the script value 3824 .
- the enterprise affiliate may provide the script content 3826 to the Client Interface 134 via a Script Editor User Interface 3900 in FIG. 39.
- Script Editor User Interface 3900 is displayed by the Client Interface 134 when the enterprise affiliate actuates button 3828 on user interface 3800 shown in FIG. 38.
- Script content 3820 may contain any known application program interface (API) script method that would be recognizable by the target processor interpreter on computer 106 , such as JavaTM Virtual Machine 150 in FIG. 1.
- API application program interface
- the tool 200 determines whether there are any more activities to add to the workflow (step 2852 ). If there are more activities, the process continues at step 2822 for the next activity. If there are no more activities to add to the workflow, the tool 200 receives an indication of the starting point for the workflow (step 2854 ). Next, the tool 200 receives an indication of the ending point for the workflow (step 2856 ) before the process ends.
- FIG. 40 depicts an exemplary user interface 4000 displayed by the Client Interface 134 to receive the properties of an activity of a workflow.
- the name 4002 of the activity e.g., “Specs Development”
- the duration 4004 of the activity e.g., 1 unit
- the role 4006 responsible for the activity may be entered by the enterprise affiliate responsible for creating or modifying the workflow.
- the enterprise affiliate may enter an on-entry scrip 4008 as well as an on-exit script 4010 .
- the properties of the activity also include the location 4012 of the subprocess defining the activity if the activity consists of a workflow.
- FIGS. 41 A-B depict a flow diagram illustrating the process of creating a plan from a workflow, i.e., step 306 in FIG. 3.
- the enterprise affiliate has already selected the workflow that will be used to create the plan.
- the tool 200 receives an indication of the plan name (step 4102 ).
- the Client Interface 134 allows the enterprise affiliate to store the project plan within an identified project plan group so that any enterprise affiliate using the Client Interface 134 is able to easily identify related project plans.
- a process plan group is a collection of project plans (e.g., a directory or folder containing the collection of project plans) created by the Client Interface 134 on WebDAV Storage 142 .
- the software-related project plans may be stored within the same project plan group so that an enterprise affiliate is able to quickly locate a desired project plan in order to create a corresponding plan using the Client Interface 134 .
- Client Interface 134 may store a project plan on WebDAV Storage 142 without associating the project plan with a project plan group.
- FIG. 42 depicts an exemplary user interface 4200 used to receive a project plan group.
- the Client Interface 134 receives a dialog box 4202 to enter the name of a new project plan group 4204 (e.g., “Software Projects”) after clicking on a “Create Group” button 4206 .
- a new project plan group 4204 e.g., “Software Projects”
- the tool 200 provides the enterprise affiliate with a list 4300 of available project groups from which the enterprise affiliate may choose, as depicted in FIG. 43.
- the tool 200 then provides the enterprise affiliate with a dialog box 4400 to enter the name 4402 of the project, as shown in FIG. 44.
- FIG. 45 depicts an exemplary timetable 4500 which the enterprise affiliate may use to identify the timetable defining a workday. As shown, the enterprise affiliate may select a timetable template 4502 with predefined working hours.
- the Standard Timetable 4504 includes five Working Days 4506 (Monday through Friday) and Working Hours 4508 from 8 a.m. ( 4510 ) through 1 p.m. ( 4512 ) and from 2 p.m. ( 4514 ) until 5 p.m. ( 4516 ).
- the enterprise affiliate may select a 24 Hour Timetable 4518 or an Intensive Timetable 4520 , i.e., more than the Standard Timetable 4504 , but less than the 24 Hour Timetable 4518 .
- the tool 200 also receives an indication of the start date and time for the project plan (step 4106 ).
- An exemplary dialog box 4600 may be used to select the start date and time 4602 and end date and time 4604 .
- the tool 200 then retrieves an activity from the workflow (step 4108 ).
- the tool 200 sets the start time of the task equal to the start date and time of the project plan (step 4110 ).
- the tool 200 sets the end time of the task based on the start time of the task, the duration of the activity from which the task is based, and on the working hours (step 4112 in FIG. 41B).
- the tool 200 then receives an indication of the resource assigned to the task (step 4114 ).
- FIG. 47 depicts an exemplary workflow definition file 4700 that is produced by the tool 200 when the workflow 500 depicted in FIG. 5 is created.
- FIG. 48 depicts an exemplary project plan definition file 4800 created from the workflow definition file 4700 .
- the element 4702 in the workflow definition file 4700 represents the “Serial 1 ” activity 506 .
- the “Serial 1 ” activity 506 has a duration 4704 of 9 hours. If the working hours are determined based on the “24 Hour Timetable” 4818 and the start date and time for the project plan is 9 a.m. on Aug. 1, 2001, the start time 4804 for the “Serial 1 ” task 4802 is 9 a.m. on Aug. 1, 2001. The end time 4806 of the task 4802 occurs 9 hours later, i.e., at 6 p.m. on Aug. 1, 2001.
- FIG. 49 depicts an exemplary user interface 4900 displayed by the Client Interface 134 to assign users or resources to roles.
- the tool 200 displays a list of available users or resources 4902 and a list of the roles 4904 in a given workflow.
- the enterprise affiliate is allowed to selectively add or remove available resources to a role by highlighting the resource and selecting either the “Add” button 4906 or the “Remove” button 4908 , respectively.
- the enterprise affiliate may add or remove the resources to a role by selecting the “Add all” button 4910 or the “Remove all” 4912 button, respectively.
- the enterprise affiliate may identify to the tool 200 resources that are capable of performing the role when assigned to a task in the plan.
- the tool 200 may automatically assign a resource to a role of a task in the plan based on the identified, capable resources for the role.
- the properties of an activity may be modified using the exemplary user interface 5000 depicted in FIG. 50.
- the user interface 5000 displays the name 5002 of the activity, the duration 5004 assigned to the corresponding activity, the start date and time 5006 for the activity, the end date and time 5008 for the activity, the responsible role 5010 assigned to the corresponding activity, the responsible resource or user 5012 assigned to the task, the owners 5014 of the task, the priority 5016 of the task, the on-entry script 5018 of the task, and the on-exit script 5020 of the task.
- the responsible resource 5012 of the task is the resource with the authority to notify the tool 200 when the task is complete.
- the owner(s) 5014 of the task are notified when the task is started or completed, but do not have the authority to modify the tool 200 when the task is complete.
- the next step performed by the tool 200 is to determine whether there are any more activities in the workflow (step 4116 ). If there are no more activities, the process ends. If there are more activities, the tool 200 retrieves the next activity (step 4118 ). The tool 200 then sets the start time of the task equal to the end time of the predecessor task (step 4120 ). The process then continues at step 4112 .
- next activities that are retrieved by the tool 200 are “Parallel 1 ” 510 and “Parallel 2 ” 512 .
- Element 4706 and element 4708 in the workflow definition file 4700 represent these activities 510 and 512 .
- the durations 4710 and 4712 of both of these activities is 24 hours.
- the start time 4812 and 4814 of these tasks 4808 and 4810 is equal to the end time 4806 of the predecessor task, i.e., 6 p.m. on Aug. 1, 2001. Because the duration 4710 and 4712 of the activities 510 and 512 is 24 hours, the end times 4816 and 4818 of these tasks 4808 and 4810 occur 24 hours later, i.e., at 6 p.m. on Aug. 2, 2001.
- the next activity retrieved by the tool 200 is “Serial 2 ” 508 .
- the element 4714 in the workflow definition file 4700 represents this activity.
- the duration 4716 of the “Serial 2 ” activity 508 is 24 hours.
- the start time 4822 of the task 4820 created from the “Serial 2 ” activity 508 is the end time 4816 and 4818 of the predecessor task, i.e., 6 p.m. on Aug. 2, 2001. Because the duration 4716 of the “Serial 1 ” activity is 24 hours, the end time 4824 of the task 4820 is 6 p.m. on Aug. 3, 2001.
- the project plan is displayed in the Gantt chart 5100 depicted in FIG. 51.
- the “Serial 1 ” task 5102 is scheduled to execute from 9 a.m. 5104 on Aug. 1, 2001 ( 5106 ) through 6 p.m. 5108 on the same day.
- the “Parallel 1 ” task 5110 and the “Parallel 2 ” task 5112 are scheduled to execute from 6 p.m. 5108 on Aug. 1, 2001 ( 5106 ) through 6 p.m. 5114 on Aug. 2, 2001 ( 5116 ).
- the “Serial 1 ” task 5118 is scheduled to execute from 6 p.m. 5114 on Aug. 2, 2001 ( 5116 ) through 6 p.m. 5120 on Aug. 3, 2001 ( 5122 ).
- an enterprise affiliate using the Client Interface 134 on the computer 102 a may create a plan from the workflow 600 at the same time that a second enterprise affiliate using the Client Interface 134 on computer 102 n creates a second plan from the workflow 600 .
- the plan may be activated.
- the enterprise affiliate may activate the project by selecting the “Activate Project” option 5202 from the pull-down menu 5200 .
- the enterprise affiliate may, however, use any known data input technique, such as an icon or keyboard input, to indicate the request to Client Interface 134 .
- the Client Interface 134 then sends an activate request to the WebDAV server 140 to change the status of the plan definition file to “Active.”
- the Workflow Engine 222 may intercept this request and process the request in preparation for managing the execution of the activated plan.
- any enterprise affiliate with access privileges may activate the plan using the Client Interface 134 from any computer 102 a and 102 n.
- FIG. 53 depicts a flow diagram illustrating an exemplary process performed by the Client Interface 134 to add a new resource to the list of available resources.
- the Client Interface 134 may later assign the resource to a plan in accordance with methods and systems consistent with the present invention.
- the Client Interface 134 receives a request to add a new resource (step 5302 ).
- the Client Interface 134 may receive the request to add a new resource via a pull-down menu selection 5402 and 5404 that is chosen by an enterprise affiliate.
- the enterprise affiliate may, however, use any known data input technique, such as an icon or keyboard input, to indicate the request to the Client Interface 134 .
- the Client Interface 134 determines whether the request is to import the resource information (step 5304 ).
- an enterprise affiliate requests that the Client Interface 134 import a resource profile containing the resource information by choosing the pull-down menu selection 5404 .
- the enterprise affiliate may request that the Client Interface 134 create the resource profile from resource information that the enterprise affiliate provides to the Client Interface 134 .
- the Client Interface 134 receives the resource information from the enterprise affiliate (step 5306 ). As shown in FIG.
- the Client Interface 134 may receive resource information 5404 for an enterprise affiliate (e.g., a user or person) that may later be assigned to a plan by the Client Interface 134 in accordance with processes described in greater detail below.
- the Resource Information 5404 may include a login name 5408 , a resource name 5410 that the Client Interface 134 is to use when assigning the resource to a task of a plan, and an e-mail address 5412 that the Client Interface 134 or the Workflow Engine 222 may use to notify the resource of an assignment or another event.
- the Client Interface 134 may also receive other resource information (not shown) for other types of resources (e.g., equipment, facilities, computer systems, or other known entities) that may be assigned to any task of a plan.
- the other resource information may include: a resource name that the Client Interface 134 is to use when assigning the resource to a task of a plan; a resource owner name that identifies a manager or other enterprise affiliate who is responsible for the named resource; and an e-mail address for the named resource owner, which the Client Interface 134 or the Workflow Engine 222 may notify when the named resource is assigned to a task or for another associated event.
- Resource information 5404 may also include one or more skill identifiers that indicate one or more capabilities that a task of a plan may require for the task to be completed. Skill identifiers may include any foreseeable skill for the named resource, including a user, equipment, facilities, computer systems, or other known entities that may be assigned to any task of a plan. For example, when the named resource is an enterprise affiliate, the skill identifiers that may be identified for the enterprise affiliate may include: “Java programming,” “architecture,” or “carpentry.” When the named resource is equipment, the skill identifiers may include “punch-press” or “Windows NT Operating System.” Resource information 5404 may also include a skill strength (not shown) for each skill identifier. The skill strength may be used by the tool to differentiate one resource from another resource when matching a resource to a role of a task in a plan.
- Resource information 5404 may also include an availability timetable (not shown) that indicates to the Client Interface 134 the calendar days, the hours in a weekday, and the hours in a weekend day that the named resource is available to work. Resource information 5404 may also include an assignment timetable (not shown) that has assigned calendar days. The assigned calendar days indicate to the Client Interface 134 which calendar days the named resource has been assigned to one or more tasks. In addition, the assignment timetable may include unique identifiers or URLs for the one or more tasks to which the named resource has been assigned. Thus, the Client Interface 134 or the Workflow Engine 222 may access the one or more tasks that the named resource has been assigned when performing processing for resource leveling of a plan in accordance with methods and systems consistent with the present invention.
- the Client Interface 134 receives access information for a “Lightweight Directory Access Protocol (LDAP)” resource directory entry (e.g., a resource profile) on the network 108 of FIG. 1 (step 5308 ).
- FIG. 55 depicts an exemplary user interface 5500 showing access information 5502 received by the Client Interface 134 .
- Access information 5502 includes an LDAP Server 5504 (e.g., “Frodo”) on the network 108 , an LDAP Port 5506 for the Client Interface 134 to communicate with the LDAP Server 5504 , and a resource distinguished name (DN) 5508 identifying the location on LDAP Server 5504 where the resource profile may be found.
- LDAP Lightweight Directory Access Protocol
- the access information 5502 may be default access information that the Client Interface 134 retrieves from a configuration file (not shown) on the computer 102 a, or it may be access information entered by an enterprise affiliate.
- the access information 5502 may also include: a security distinguished name (DN) 5510 , a password 5512 , and a login alias 5514 .
- Security DN 5510 identifies to the Client Interface 134 where a security profile for the enterprise affiliate is located.
- the Client Interface 134 uses the password 5512 and the login alias 5514 to access the resource information on the LDAP Server 5504 in accordance with privileges identified in the security profile.
- the Client Interface 134 retrieves the resource information using the LDAP access information (step 5310 ).
- the resource information that the Client Interface 134 retrieves includes resource profiles for a user, equipment, facilities, computer systems, or other known entities that may be assigned to any task of a plan.
- the Client Interface 134 stores the resource information in resource profiles on the WebDAV Storage 142 (step 5312 ).
- FIG. 56 depicts an exemplary resource file 5600 that the Client Interface 134 may use to store resource profiles 5602 , 5604 , 5606 , and 5608 on WebDAV Storage 142 .
- the resource profile 5600 includes a unique identifier or URL 5612 where the resource profile 5600 is to be stored on the WebDAV Storage 142 .
- Each resource profile 5602 , 5604 , 5606 , and 5608 may be stored separately by the Client Interface 134 on WebDAV Storage 142 .
- the resource profile 5602 includes resource information 5610 that corresponds to an enterprise affiliate that may be assigned to a task of a plan.
- the resource information 5610 may be added as properties rather than as the content of the resource profile 5602 on WebDAV Storage 142 .
- This implementation may be advantageous as the Client Interface 134 or the Workflow Engine 222 may use a known WebDAV method to retrieve resource profiles from the WebDAV Storage 142 that have the same property.
- the WebDAV “PropFind” method may be used by the Client Interface 134 or the Workflow Engine 222 to retrieve the resource profiles having a skill identifier of “Java Programming” so that an available resource having this skill can be assigned to a task in accordance with processes described below.
- FIG. 57 depicts a flow diagram illustrating an exemplary process performed by the Workflow Engine 222 to manage the execution of an activated plan.
- the Workflow Engine 222 may execute the process in FIG. 57 for each activated plan stored on WebDAV Storage 142 .
- the tool manages the execution of multiple plans simultaneously.
- the tool 200 waits until the current time and date are later than the start time and date (step 5702 ).
- the Workflow Engine 222 may first retrieve the plan from WebDAV storage. At this point, the tool 200 selects a task from the activated project plan created from a workflow (step 5704 ). Next, the tool 200 determines whether there is an input condition (step 5706 ). If there is an input condition, the tool 200 waits until the input condition is met (step 5708 ). After the input condition is met or if there is no input condition, the tool 200 stores the actual start time (step 5710 ).
- the next step performed by the tool 200 is to determine whether there is an on-entry script to execute, such as a message to send to the resource (step 5712 in FIG. 57B). If there is an on-entry script, the tool 200 performs the on-entry script (step 5714 ). After performing the on-entry script or if there is no on-entry script, the tool 200 determines whether there is an output condition (step 5716 ). If there is an output condition, the tool 200 waits until the output condition is met (step 5718 ). After the output condition is met or if there is no output condition, the tool 200 determines whether there is an on-exit script (step 5720 ).
- the tool 200 performs the on-exit script (step 5722 ). After performing the on-exit script or if there is no on-exit script, the tool 200 stores the actual end time (step 5724 ). Then the tool 200 determines whether there are any more tasks in the project plan (step 5726 ). If there are no more tasks, the process ends. Otherwise, the process returns to step 5704 and selects the next task.
- FIG. 58 The plan 5800 created from the workflow 500 depicted in FIG. 5 is shown in FIG. 58.
- “Serial 1 ” task 5802 is scheduled to begin at 9 a.m. 5804 on Aug. 1, 2001 ( 5806 ) and end at 6 p.m. 5808 on the same day.
- the parallel tasks 5810 and 5812 are scheduled to start at the completion of the “Serial 1 ” task 5808 , and are scheduled to end at 6 p.m. 5814 on Aug. 2, 2001 ( 5816 ).
- the “Serial 2 ” task 5818 is scheduled to begin upon completion of the parallel tasks 5814 and is scheduled to end at 6 p.m. 5820 on Aug. 3, 2001 ( 5822 ).
- FIG. 59 depicts an exemplary project plan definition file 5900 corresponding to the plan 5800 of FIG. 58.
- the “Serial 1 ” task 6002 begins execution, as depicted by the task 6004 in the Gantt chart 6000 of FIG. 60. Contrary to the plan, however, the “Serial 1 ” task ends earlier than planned. As depicted in FIG. 61, the actual properties 6100 of the “Serial 1 ” task 6102 include the actual-start-date 6104 (i.e., year-2001 month-8 day-1hour-9) and actual-finish-date 6106 (i.e., year-2001 month-8 day-1 hour-14, i.e., 2 p.m.). The actual execution 6204 of the “Serial 1 ” task 6202 is shown in the Gantt chart 6200 of FIG. 62.
- both the “Parallel 1 ” task 6206 and the “Parallel 2 ” task 6208 begin execution at 2 p.m. 6210 rather than waiting until their scheduled start time of 6 p.m.
- the earlier execution 6212 and 6214 of these tasks 6206 and 6208 is also depicted in the Gantt chart 6200 . As depicted in FIG.
- the actual properties 6300 of the “Parallel 1 ” task 6302 and the “Parallel 2 ” task 6304 include the actual-start-date 6306 (i.e., year-2001 month-8 day-1 hour-14) and actual-finish-date 6308 (i.e., year-2001 month-8 day-2 hour-0).
- the actual execution 6406 and 6408 of the “Parallel 1 ” task 6402 and the “Parallel 2 ” task 6404 is shown in the Gantt chart 6400 of FIG. 64.
- the Gantt chart 6400 also visually indicates that the start time 6410 for the tasks 6402 and 6404 was 2 p.m. on Aug. 1, 2001, while the end time 6412 for the tasks 6402 and 6404 was 12 a.m. on Aug. 2, 2001.
- the execution of the “Serial 2 ” task 6414 begins at 12 a.m. on Aug. 2, 2001 ( 6412 ).
- the actual properties 6500 of the “Serial 2 ” task 6502 includes the actual-start-date 6504 (i.e., year-2001 month-8 day-2 hour-0) and actual-finish-date 6506 (i.e., year-2001 month-8 day-2 hour-12).
- the actual execution 6604 of the “Serial 1 ” task 6602 , the actual execution 6608 of the “Parallel 1 ” task 6606 , the actual execution 6612 of the “Parallel 2 ” task 6610 , and the actual execution 6616 of the “Serial 2 ” task 6614 , are shown in the Gantt chart 6600 of FIG. 66.
- the integrated process modeling and project planning tool Client Interface saves an enterprise significant development costs and increases its operating efficiency by improving profiles of resources associated with a workflow based on data mined from plans created from the workflow.
- the Client Interface is able to optimize the automatic assignment or allocation of the resources to tasks of a plan when the plan is created from the workflow.
- the data mined by the Client Interface includes a task found in each plan that has an auto-assigned resource and has a replacement resource.
- the auto-assigned resource is a resource that the Client Interface automatically assigned to handle a role of the task when the Client Interface created the task from an activity of the workflow.
- the replacement resource is another resource that was manually assigned by an enterprise affiliate to replace the auto-assigned resource in handling the role of the task.
- the Client Interface improves a profile associated with the auto-assigned resource by removing a skill or decreasing a strength of the skill in the profile, where the skill is associated with the role of the mined task.
- the Client Interface improves a profile associated with the replacement resource by adding a skill or increasing a strength of the skill in the profile, where the skill is also associated with the role of the mined task.
- the Client Interface is able to more effectively automatically allocate resources to plans that are subsequently created from the workflow by the enterprise affiliate, saving the enterprise affiliate time and effort needed to manually override any resources that were not optimally automatically assigned.
- FIGS. 67A through 67E depict a flowchart illustrating an exemplary process performed by the Client Interface to improve a profile of any resource that has been previously assigned to a role of a task in a plan created from a workflow.
- the Client Interface receives an indication to improve a profile of any resource associated with any role of a workflow (Step 6702 ).
- the Client Interface first receives an indication to improve a profile of any resource associated with any role of a workflow when prompted by an enterprise affiliate to optimize the allocation of resources to plans created from the workflow.
- the enterprise affiliate may prompt the Client Interface to optimize resource allocation via any known data input technique, such as clicking a mouse on a button of a user interface (not shown) displayed by the Client Interface.
- the Client Interface may respond by retrieving and displaying the identifications of all the workflow definition files stored on WebDAV Storage 142 of FIG. 2.
- the enterprise affiliate may then identify one of the displayed workflow definition files to the Client Interface by clicking the mouse on the displayed identification corresponding to the one workflow definition file.
- FIG. 68 depicts an excerpt of an exemplary workflow definition file 6800 for the identified “AssemblyWorkflow” 6802 as created and stored by the Client Interface in response to performing the process depicted in FIG. 3.
- FIG. 69 depicts an exemplary graphical representation of workflow definition file 6800 as displayed by the Client Interface when performing the process depicted in FIG. 3 to create the workflow or after retrieving the workflow from WebDAV Storage 142 in response to a request by enterprise affiliate to view the workflow.
- “AssemblyWorkflow” may have been designed by an enterprise affiliate using the Client Interface to define a workflow for developing a video game controller or a baseball mitt where both a left- or right-handed product may be assembled using a plan created from the workflow.
- the workflow includes a “Get Parts” activity ( 6804 in FIG. 68 and graphically depicted as 6904 in FIG. 69), a “Get Fasteners” activity ( 6806 and 6906 ), a “L Or Rt Handed?” logic activity ( 6808 and 6908 ), a “Left” activity ( 6910 and 6912 ), a “Left Special” activity ( 6812 and 6912 ), a “Right” activity ( 6814 and 6914 ), and a “Complete Assembly” activity ( 6816 and 6916 ).
- logic activity 6808 has an outgoing default-path 6838 (graphically depicted as a solid line 6918 in FIG. 69) that includes “Left” activity 6810 and “Left Special” activity 6812 .
- “L Or Rt Handed?” logic activity 6808 has an outgoing non-default-path (graphically depicted as a dashed line 6920 in FIG. 69) that includes “Right” activity 6814 .
- Each activity 6804 , 6806 , 6808 , 6810 , 6812 , 6814 , and 6816 has a corresponding responsible role 6818 , 6820 , 6822 , 6824 , 6826 , 6828 , and 6830 that identifies a role assigned by the Client Interface as specified by an enterprise affiliate in accordance with methods and systems consistent with the present invention.
- the Client Interface has assigned a role identified as “Gopher” 6832 to responsible roles 6818 and 6820 .
- the Client Interface has assigned a role identified as “Assembler” 6834 to responsible roles 6822 , 6824 , 6826 , and 6828 .
- the Client Interface has also assigned a role identified as “Master Assembler” 6836 to responsible role 6830 .
- the Client Interface creates tasks for the plan from activities 6804 , 6806 , 6808 , 6810 , 6812 , and 6816 that are included in the default-path for workflow definition file 6800 .
- the Client Interface also automatically assigns a resource to a role for each task based on a resource allocation process, such as matching a role having a skill and a corresponding skill strength to a resource having the same skill and the same or greater skill strength.
- a resource allocation process such as matching a role having a skill and a corresponding skill strength to a resource having the same skill and the same or greater skill strength.
- the Client Interface accesses a profile for the role to identify the skill and the corresponding skill strength for the role (i.e., capabilities that a task of a plan may require) and accesses a resource profile for the resource to identify if the resource has the same skill and the same or greater skill strength (i.e., same or greater capabilities than the task of the plan requires).
- the Client Interface after receiving an indication to improve a profile of any resource associated with any role of a workflow, the Client Interface identifies each resource associated with each role of the workflow (Step 6703 ).
- the Client Interface identifies each resource associated with each role of the workflow identified as “AssemblyWorkflow” by accessing a workflow roles file 7000 , shown in FIG. 70, that is stored on WebDAV Storage 142 .
- the Client Interface associates an identification 6802 for “AssemblyWorkflow” definition file 6800 to an identification 7002 of workflow roles file 7000 .
- workflow roles file 7000 has a link 7004 to “AssemblyWorkflow” definition file 6800 to allow the Client Interface to associate workflow roles file 7000 with “AssemblyWorkflow” definition file 6800 .
- Workflow roles file 7000 has role profiles 7006 , 7008 , and 7010 for “Gopher” role 7012 , “Assembler” role 7014 , and “Master Assembler” role 7016 .
- the Client Interface is able to identify that “Gopher” role 7012 , “Assembler” role 7014 , and “Master Assembler” role 7016 correspond to roles 6832 in FIG. 68, 6834, and 6836 associated with “AssemblyWorkflow” definition file 6800 .
- Each role profile 7006 , 7008 , and 7010 identifies a set 7018 , 7020 , and 7022 of skills (or capabilities) and corresponding skill strengths that have been previously defined by an enterprise affiliate using the Client Interface.
- Each role profile 7006 , 7008 , and 7010 also has a corresponding list 7024 , 7026 , and 7028 of capable resources.
- the capable resources in list 7024 , 7026 , and 7028 may have been previously identified by an enterprise affiliate using the Client Interface or may have been previously identified by the Client Interface based on the Client Interface matching a skill and skill strength set for the role to skills and corresponding skill strengths for the capable resource.
- the Client Interface uses the different skill or the different skill strength for “Gopher” role 6832 in lieu of skill set 7018 to perform methods consistent with the present invention.
- FIG. 71 depicts an exemplary resource file 7100 created by the Client Interface to store resource profiles 7102 , 7104 , and 7106 that have been defined by an enterprise affiliate using the Client Interface.
- Each resource profile 7102 , 7104 , and 7106 identifies a resource 7108 (“Mister Assembler”), 7110 (“Mister Gopher”), and 7112 (“Mister Build”) and a set 7114 , 7116 , and 7118 of skills (or capabilities) and corresponding skill strengths for the identified resource.
- Each resource profile 7102 , 7104 , and 7106 also has a unique identifier or link 7120 , 7122 , and 7124 that allows the Client Interface to distinguish each resource from all other resources.
- the Client Interface stores resource file 7100 on WebDAV Storage 142 .
- the Client Interface stores resource profiles 7102 , 7104 , and 7106 as separate files on WebDAV Storage 142 .
- FIG. 72 depicts an exemplary skills file 7200 created by the Client Interface to store skills 7202 , 7204 , 7206 , 7208 , 7210 , 7212 , and 7214 that may be assigned to a role or a resource by the Client Interface.
- Skills 7202 , 7204 , 7206 , 7208 , 7210 , 7212 , and 7214 have been defined by an enterprise affiliate using the Client Interface.
- Each skill set 7018 in FIG. 70, 7020, and 7022 identified in role profiles 7006 , 7008 , and 7010 and each skill set 7114 in FIG.
- 71, 7116, and 7118 identified in resource profiles 7102 , 7104 , and 7106 contain one or more of skills 7202 , 7204 , 7206 , 7208 , 7210 , 7212 , and 7214 .
- the Client Interface is able to identify that skill set 7018 for “Gopher” role profile 7006 has a skill 7028 that corresponds to “enterprise procurement logistics” skill 7202 and has a skill 7030 that corresponds to “Chicago plant receiving logistics” skill 7204 in skills file 7200 .
- the Client Interface is also able to identify that skill set 7020 for “Assembler” role profile 7008 has a skill 7032 that corresponds to “electrostatic discharge training” skill 7206 , a skill 7034 that corresponds to “electrical schematic reading” skill 7208 , and a skill 7036 that corresponds to “soldering” skill 7210 in skills file 7200 .
- the Client Interface is able to identify that skill set 7114 for “Mister Assembler” resource profile 7102 has skills 7126 , 7128 , 7130 , 7132 , and 7134 that correspond to “enterprise procurement logistics” skill 7202 , “Chicago plant receiving logistics” skill 7204 , “electrostatic discharge training” skill 7206 , “electrical schematic reading” skill 7029 , and “soldering” skill 7210 in skills file 7200 .
- the Client Interface is able to identify that skills 7126 and 7128 for “Mister Assembler” resource profile 7102 have corresponding skill strengths that match or exceed skill strengths corresponding to skills 7028 and 7030 for “Gopher” role profile.
- the Client Interface is also able to identify that skills 7130 , 7132 , and 7134 for “Mister Assembler” resource profile 7102 have corresponding skill strengths that match or exceed skill strengths corresponding to skills 7032 , 7034 , and 7036 for “Assembler” role profile.
- the Client Interface may select “Mister Assembler” resource 7108 to be associated with or handle both “Gopher” role 7012 and “Assembler” role 7014 in a plan created from “AssemblyWorkflow” definition file 6800 in FIG. 68.
- the Client Interface To identify each resource associated with each role of “AssemblyWorkflow,” the Client Interface first identifies that capable resource list 7024 in FIG. 70 associated with “Gopher” role 7012 has unique identifiers 7038 and 7040 that corresponds to “Mister Assembler” resource 7108 in FIG. 71 and to “Mister Gopher” resource 7110 , respectively. The Client Interface further identifies that capable resource list 7026 in FIG. 70 associated with “Assembler” role 7014 has unique identifiers 7038 and 7042 that correspond to “Mister Assembler” resource 7108 in FIG. 71 and to “Mister Build” resource 7112 , respectively. In addition, the Client Interface identifies that capable resource list 7028 in FIG. 70 for “Master Assembler” has a unique identifier 7042 that corresponds to “Mister Build” resource 7112 .
- the Client Interface After identifying each resource associated with each role of the workflow, the Client Interface receives a maximum percentage of manual assignments for each resource associated with each role of the workflow (Step 6704 ). Next, the Client Interface receives a maximum percentage of override assignments for each resource (Step 6706 ). Each maximum percentage of manual assignments reflects the number of times that the Client Interface should find the resource has been manually assigned to a role of a task within the number of plans that are mined by the Client Interface before the Client Interface notifies the enterprise affiliate of a suggestion to improve the resource.
- Each maximum percentage of override assignments reflects the number of times that the Client Interface should find the resource was automatically assigned by the Client Interface to a role of a task and then replaced by another manually assigned resource within the number of plans that are mined by the Client Interface before the Client Interface notifies the enterprise affiliate of a suggestion to improve the resource.
- each maximum percentage of manual assignments and each maximum percentage of override assignments for each resource represents a threshold before the Client Interface modifies the skill or the skill strength of the resource to improve automatic resource allocation by the Client Interface.
- the enterprise affiliate identifies to the Client Interface each maximum percentage of manual assignments and each maximum percentage of override assignments for each resource via the same user interface (not shown) that the enterprise affiliate used to initiate the request to optimize the resource allocation.
- the enterprise affiliate identifies to the Client Interface each maximum percentage of manual assignments and each maximum percentage of override assignments for each resource for each resource via a user interface (not shown) displayed by the Client Interface for receiving resource identification, resource skills, and corresponding skill strengths.
- the Client Interface stores each maximum percentage of manual assignments and each maximum percentage of override assignments in the resource profile for each resource. In the example shown in FIG.
- the Client Interface has received and stored a value of twenty percent (20%) for maximum percentage of manual assignments 7136 , 7140 , and 7144 associated with role profiles 7102 , 7104 , and 7106 , respectively.
- the Client Interface has received and stored a value of twenty percent (20%) for maximum percentage of override assignments 7138 , 7142 , and 7146 associated with role profiles 7102 , 7104 , and 7106 , respectively.
- the Client Interface After receiving a maximum percentage of override assignments and a maximum percentage of manual assignments for each resource, the Client Interface sets an auto-assignment override counter for each resource associated to zero (Step 6708 ). The Client Interface uses the auto-assignment override counter for each resource to track how many times the Client Interface identified that the resource had been replaced by another resource that was manually assigned by an enterprise affiliate. The Client Interface also sets a manual-assignment counter for each resource to zero (Step 6710 ). The Client Interface uses the manual-assignment counter for each resource to track how many times the Client Interface identified that the resource had been manually assigned by an enterprise affiliate.
- the Client Interface sets an auto-assignment override counter and a manual-assignment counter for “Mister Assembler” resource 7108 in FIG. 71, for “Mister Gopher” resource 7110 , and for “Mister Build” resource 7112 .
- the Client Interface sets a plan counter to zero (Step 6712 ).
- the Client Interface uses the plan counter to track the number of plans checked.
- the Client Interface retrieves a plan created from the workflow (Step 6714 ).
- the Client Interface uses known WebDAV protocol methods to parse each plan definition file stored on WebDAV Storage 142 in FIG. 2 to find a plan that has a link or URL to the workflow definition file to be optimized by the Client Interface.
- FIGS. 73 A-C depict an excerpt of an exemplary plan definition file 7300 that has a link 7302 in FIG. 73B to “AssemblyWorkflow” definition file 6800 shown in FIG. 68.
- the Client Interface may retrieve a plan created from the workflow by using known WebDAV protocol methods, such as “PROPFIND,” to retrieve all plans on WebDAV Storage 142 that have a common WebDAV property set to the link or URL for workflow definition file 6800 in FIG. 68.
- the Client Interface may retrieve all plans having a WebDAV property named “PROJECT” that is set to link 7302 or “http://localhost:8080/webdav/ProcessGroup2/AssemblyWorkflow.xml.”
- PROJECT WebDAV property named “PROJECT” that is set to link 7302 or “http://localhost:8080/webdav/ProcessGroup2/AssemblyWorkflow.xml.”
- the Client Interface also creates the WebDAV property named “PROJECT” for each plan definition file and then sets the “PROJECT” property to the URL of workflow definition file 6800 .
- the Client Interface may, however, create the WebDAV property of the plan for storing the URL to the workflow definition file with a name other than “PROJECT.”
- the Client Interface After retrieving the plan created from the workflow, the Client Interface increments the plan counter (Step 6716 in FIG. 67B). Next, the Client Interface retrieves a task of the plan (Step 6718 ). In the example shown in FIGS. 73 A-C, the Client Interface may retrieve a task of the plan by parsing plan definition file 7300 to identify a “Get Parts” task 7310 as shown in FIG. 73A.
- the Client Interface determines if a resource was manually assigned to a role of the task (Step 6720 ). In the example shown in FIG. 73A, to determine if a “MG” resource 7312 (i.e., “Mister Gopher” resource 7110 in FIG.
- the Client Interface retrieves a resource-assignment property 7316 from “Get Parts” task 7310 to identify if the resource-assignment property 7316 is set to “Manual” or “Auto.”
- the Client Interface recognizes that resource-assignment property 7316 is set to “Manual,” indicating that “Gopher” role 7314 for “Get Parts” task 7310 has been manually assigned by an enterprise affiliate and another earlier version of plan definition file 7300 is stored on WebDAV Storage 142 .
- FIG. 74 depicts an excerpt of another exemplary plan definition file 7400 created by the Client Interface from “AssemblyWorkflow” definition file 6800 in FIG. 68, where plan definition file 7400 is an earlier version of plan definition file 7300 .
- the Client Interface retrieves plan definition file 7400
- the Client Interface is able to confirm that plan definition file 7400 is an earlier version of plan definition file 7300 by identifying that “Get Parts” task 7410 has a resource-assignment property 7416 set to “Auto,” indicating that “MA” resource 7412 (i.e., “Mister Assembler” resource 7108 in FIG. 71) was automatically assigned to a “Gopher” role 7414 for “Get Parts” task 7410 when plan definition file 7400 was created from “AssemblyWorkflow” definition file 6800 in FIG. 68.
- “MA” resource 7412 i.e., “Mister Assembler” resource 7108 in FIG. 71
- the Client Interface may implement versioning by creating a WebDAV property named “Version” (not shown) for plan definition files 7300 and 7400 .
- the Client Interface may then set the “Version” property to “First” for plan definition file 7400 when file 7400 is created by the Client Interface and set the “Version” property to “Second” for plan definition file 7300 when file 7300 is created by the Client Interface.
- “Gopher” role 7314 of the “Get Parts” task 7310 has been manually reassigned to replacement resource 7312 by an enterprise affiliate using the Client Interface, the Client Interface is able to recognize that plan definition file 7300 is a later version of plan definition file 7400 .
- the Client Interface may record in a manual-assignment log (not shown) for plans created from “AssemblyWorkflow” definition file 7400 the following: a task role (e.g., “Gopher” role 7414 for “Get Parts” task 7410 ) that has been manually reassigned to another resource, the other resource that replaces an auto-assigned resource, and the auto-assigned resource.
- a task role e.g., “Gopher” role 7414 for “Get Parts” task 7410
- the Client Interface need not implement versioning of plan definition files as the Client Interface is able to quickly determine if a resource was manually assigned to a role of the task by referencing the manual-assignment log.
- the Client Interface determines whether the resource replaced an auto-assigned resource (Step 6722 ). In the example shown in FIG. 73 and FIG. 74, the Client Interface may confirm that “MG” resource 7312 replaced an auto-assigned resource 7412 by first retrieving plan definition file 7400 , which is an earlier version of plan definition file 7300 .
- the Client Interface may then identify if resource-assignment property 7416 of “Get Parts” task 7410 is set to “Auto,” indicating that “MA” resource 7412 was automatically assigned to “Gopher” role 7414 for “Get Parts” task 7410 when plan definition file 7400 was created from “AssemblyWorkflow” definition file 6800 in FIG. 68.
- the Client Interface is able to recognize that if resource-assignment property is not set to “Auto” or “Manual,” then the Client Interface did not assign a resource to “Gopher” role 7414 .
- the Client Interface may reference the manual-assignment log to identify if “Gopher” role 7314 for “Get Parts” task 7310 had an auto-assigned resource that was replaced by the manually assigned “MG” resource 7312 .
- the Client Interface increments the auto-assignment override counter for the auto-assigned resource (Step 6724 ). For the example shown in FIG. 74, the Client Interface increments the auto-assignment counter for “MA” resource 7412 .
- the Client Interface increments the manual-assignment counter for the resource (Step 6726 ). For the example shown in FIGS. 73 A-C, the Client Interface increments the manual-assignment counter for “MG” resource 7312 .
- the Client Interface logs or stores reassignment information, such as task role, skill and strength; auto-assigned resource profile; and replacement resource profile (Step 6728 ).
- the Client Interface may store the reassignment information so that the Client Interface is able to quickly reference the reassignment information based on the identification of the auto-assigned resource or the manually assigned resource.
- the reassignment information may be organized in a database table format (not shown) so that each resource associated with each role of the workflow has a corresponding database table.
- the Client Interface may then store the reassignment information as a record in the database table corresponding to the auto-assigned resource and as a record in the database table corresponding to the manually assigned resource.
- the Client Interface is able to determine the percentage of manual-assignments per plans checked for each resource and the percentage of override-assignments per plans checked for each resource.
- the Client Interface determines if all tasks of the plan have been checked (Step 6730 ).
- the Client Interface may determine that all tasks of the plan have been checked when the task does not have a successor task. For example, the Client Interface is able to recognize that “Get Parts” task 7310 in FIG. 73A has successor 7318 that identifies “Task_ 20 ” as the next task in the plan. Thus, the Client Interface recognizes that not all tasks of the plan have been checked.
- the Client Interface may also determine that all tasks of the plan have been checked when the Client Interface determines that there are no more tasks (i.e., 7310 , 7320 , 7330 , 7340 , 7350 , 7360 and 7370 in FIGS. 73 A-C) to be retrieved from plan definition file 7300 .
- the Client Interface retrieves the next task (Step 6732 ). After retrieving the next task, the Client Interface continues processing at Step 6720 .
- the Client Interface determines if all plans that have been created from the workflow have been checked (Step 6734 ). If all plans that have been created from the workflow have not been checked, the Client Interface retrieves the next plan from WebDAV Storage 142 (Step 6736 ). After retrieving the next plan, the Client Interface continues processing at Step 6716 .
- the Client Interface selects a resource associated with a role of the workflow (Step 6738 in FIG. 67C).
- the Client Interface may select any resource that has been previously determined by the Client Interface as being assigned to a role of an activity of the workflow.
- the Client Interface may select a resource that has been assigned to a role of the activity and has been stored as an auto-assigned resource or as manually assigned resource in the reassignment information log.
- the Client Interface determines if the maximum percentage of overrides for the resource has been exceeded (Step 6740 ). To determine if the maximum percentage of overrides for the resource has been exceeded, the Client Interface calculates an actual-percentage-of-overrides for the resource by dividing the number of times that the resource was replaced or overridden by a manually-assigned resource (i.e., value of the auto-assignment counter for the resource) by the number of plans checked (i.e., value of the plan counter) times one hundred (100).
- a manually-assigned resource i.e., value of the auto-assignment counter for the resource
- plans checked i.e., value of the plan counter
- the Client Interface compares the maximum percentage of overrides for the resource with the calculated actual-percentage-of-overrides to determine if the maximum percentage of overrides for the resource has been exceeded. For example, assuming the Client Interface has selected “MA” resource 7412 in FIG. 74, the Client Interface is able to identify that maximum percentage of overrides 7138 of twenty percent (20%) has been exceeded when the Client Interface identifies that “MA” resource 7412 of “Get Parts” task 7410 has been replaced by manually-assigned “MG” resource 7312 in twenty-one (21) out of one hundred plans checked by the Client Interface.
- the Client Interface identifies a skill of the resource that matches a skill of the task role that has been reassigned and identifies a skill of a replacement resource most-often-assigned (Step 6742 ).
- the Client Interface may identify that “MG” resource 7312 in FIG. 73A of “Get Parts” task 7310 is the resource that is most-often-assigned to replace auto-assigned “MA” resource 7412 in Fig. 74 of “Get Parts” task 7410 .
- the Client Interface retrieves role profile 7006 in FIG. 70 for “Gopher” role 7314 in FIG.
- the Client Interface also retrieves resource profile 7102 in FIG. 71 for auto-assigned “MA” resource 7412 in FIG. 74 and resource profile 7104 in FIG. 71 for replacement “MG” resource 7312 in FIG. 73A.
- the Client Interface is then able to identify that auto-assigned “MA” resource 7412 has skills 7126 in FIG. 71 and 7128 that match “enterprise procurement logistics” skill 7029 in FIG. 70 and “Chicago plant receiving logistics” skill 7030 in “Gopher” role profile 7006 .
- the Client Interface is also able to identify that auto-assigned “MA” resource 7412 has skill 7126 that matches an “enterprise procurement logistics” skill 7148 in FIG. 71 in “MG” resource profile 7104 .
- the Client Interface notifies an enterprise affiliate of alternative suggestions to improve the profile of the resource (Step 6744 ).
- the Client Interface may notify the enterprise affiliate that initiated the request to optimize resource allocation for the “AssemblyWorkflow.”
- the Client Interface may notify the enterprise affiliate via a dialog box (not shown) displayed by the Client Interface in association with the same user interface that the enterprise affiliate used to initiate the request to optimize the resource allocation.
- the Client Interface is able to notify the enterprise affiliate by sending an e-mail message to the enterprise affiliate via network 108 in FIG. 1.
- the Client Interface is able to identify an e-mail address for the enterprise affiliate by accessing a user profile for the enterprise affiliate that is stored on WebDAV Storage 142 as discussed above.
- the alternative suggestions to improve the profile of the resource may include removing a skill or decreasing a skill strength in the resource profile that corresponds to the skill of the task role that has been manually reassigned as further discussed below.
- the Client Interface determines if either of the alternative suggestions is to be implemented (Step 6746 ).
- the enterprise affiliate indicates to the Client Interface which, if any, of the alternative suggestions are to be implemented by actuating a button (not shown) next to the alternative suggestion that is displayed by the Client Interface in association with the same user interface that the enterprise affiliate used to initiate the request to optimize the resource allocation.
- the Client Interface is configured to receive an e-mail reply to the notification sent by the Client Interface and to recognize the alternative suggestion within the reply that the enterprise affiliate has selected to be implemented.
- the Client Interface determines if the alternative suggestion to implement corresponds to removing the matching skill from the profile of the resource (Step 6748 ).
- the Client Interface removes the skill from the profile of the resource that matches the skill of the task role (Step 6750 ). For example, the Client Interface may remove one or both of skills 7126 in FIG. 71 and 7128 in “MA” resource profile that the Client Interface found matched “enterprise procurement logistics” skill 7029 in FIG. 70 and “Chicago plant receiving logistics” skill 7030 in “Gopher” role profile 7006 .
- the Client Interface when creating a subsequent plan from “AssemblyWorkflow” definition file 6800 and performing resource allocation processing for the plan, the Client Interface recognizes that improved “MA” resource profile does not have skills that match “Gopher” activity role 6832 in FIG. 68. Therefore, the Client Interface does not automatically assign “MA” resource to the “Gopher” role of the new task created from “Get Parts” activity 6804 in FIG. 68.
- the Client Interface decreases a skill strength in the profile of the resource to below the strength of the matching skill of the replacement resource (Step 6752 ). For example, the Client Interface may decrease the strength of skill 7126 in FIG. 71 in “MA” resource profile to below the strength of matching skill 7148 in FIG. 71 of “MG” resource profile 7104 .
- the Client Interface Assuming the Client Interface improves “MG” resource profile 7104 to include all skills in skill set 7018 of “Gopher” role profile as described below, then the Client Interface is able to identify that skill set 7116 in “MG” resource profile 7104 has higher corresponding skill strengths than in skill set 7114 in “MA” resource profile 7102 . Thus, in this example, the Client Interface automatically assigns “MG” resource 7110 , instead of “MA” resource 7108 , to a new task created from “Get Parts” activity 6804 in FIG. 68 by the Client Interface.
- the Client Interface determines if the maximum percentage of manual assignments for the resource has been exceeded (Step 6754 in FIG. 67D).
- the Client Interface calculates an actual-percentage-of-manual-assignments for the resource by dividing the number of times that the resource was manually-assigned to a task role (i.e., value of the manual-assignment counter for the resource) by the number of plans checked (i.e., value of the plan counter) times hundred (100).
- the Client Interface compares the maximum percentage of manual assignments for the resource with the calculated actual-percentage-of-manual-assignments to determine if the maximum percentage of manual assignments for the resource has been exceeded. For example, assuming the Client Interface has selected “MG” resource 7312 in FIG.
- the Client Interface is able to identify that maximum percentage of manual-assignments 7140 of twenty percent (20%) has been exceeded when the Client Interface identifies that “MG” resource 7312 of “Get Parts” task 7310 has been manually-assigned to replace “MA” resource 7412 in twenty-one (21) out of one hundred plans checked by the Client Interface.
- the Client Interface identifies all skills associated with a role for each logged task where the resource was manually assigned (Step 6756 ).
- the Client Interface may identify that “Get Parts” task 7310 in FIG. 73A is representative of each task in the reassignment information log where “MG” resource was manually assigned.
- the Client Interface then identifies that “Gopher” role 7314 in FIG. 73A is assigned to each task in the reassignment information log that corresponds to “Get Parts” task 7310 .
- the Client Interface is then able to identify that “Gopher” role 7314 has skills corresponding to skill set 7018 in FIG. 70 for “Gopher” role profile 7006 .
- the Client Interface determines if the resource is missing a skill (Step 6758 ). To determine if the resource is missing a skill, the Client Interface retrieves the profile for the resource and compares the skill set in the resource profile to the skills or skill identified for the role. Continuing with the above example, the Client Interface retrieves “MG” resource profile 7104 . The Client Interface then compares skill set 7116 in resource profile 7104 with skill set 7018 in “Gopher” role profile 7006 . The Client Interface is able to recognize that “MG” skill set 7116 is missing “Chicago plant receiving logistics” skill 7030 in “Gopher” skill set 7018 .
- the Client Interface When it is determined that the resource is missing a skill, the Client Interface generates a suggestion to improve the resource profile by adding the missing skill to the resource profile (Step 6760 ). For example, the Client Interface generates a suggestion to improve “MG” profile 7104 by adding the missing “Chicago plant receiving logistics” skill 7030 to “MG” skill set 7116 .
- the Client Interface identifies a highest skill strength for the role from among each auto-assigned resource that was replaced by the resource (Step 6762 ). For example, the Client Interface may identify that “MA” resource 7412 in FIG. 74 is representative of each auto-assigned resource that was replaced by “MG” resource 7312 in FIG. 73A. The Client Interface is then able to identify that “MA” resource 7412 has skills 7126 and 7128 that match skills 7029 and 7030 in “Gopher” role profile 7006 . The Client Interface is able to further identify that “MA” skills 7126 and 7128 have corresponding skill strengths of “6” and “5,” respectively. Thus, the Client Interface identifies the highest skill strengths for “Gopher” skills 7029 and 7030 are “6” and “5,” respectively.
- the Client Interface After identifying a highest skill strength for the role from among each auto-assigned resource that was replaced by the resource, the Client Interface generates a suggestion to improve the resource profile by increasing a corresponding skill strength of the resource to above the identified highest skill strength (Step 6764 ).
- the Client Interface is able to identify that “MG” skill 7148 corresponds to “MA” skill 7126 and “Gopher” skill 7029 in FIG. 70.
- the Client Interface then generates a suggestion to improve “MG” resource profile 7104 in FIG. 71 by increasing the strength of “MG” skill 7148 above the identified highest corresponding skill strength of “6.”
- the Client Interface After generating a suggestion to add a missing skill to the resource profile or after generating a suggestion to increase a skill strength in the resource profile, the Client Interface notifies the enterprise affiliate of the suggestion to improve the resource profile (Step 6766 ).
- the Client Interface may notify the enterprise affiliate via a dialog box (not shown) displayed by the Client Interface in association with the same user interface that the enterprise affiliate used to initiate the request to optimize resource allocation.
- the Client Interface may also notify the enterprise affiliate by sending an e-mail message to the enterprise affiliate via network 108 in FIG. 1.
- the Client Interface determines if the suggested improvement is to be implemented (Step 6768 ).
- the enterprise affiliate indicates to the Client Interface if the suggested improvement is to be implemented by actuating a button (not shown) next to the suggestion that is displayed by the Client Interface in association with the same user interface that the enterprise affiliate used to initiate the request to optimize resource allocation.
- the Client Interface is configured to receive an e-mail reply to the notification sent by the Client Interface and to recognize a confirmation to implement the suggested improvement within the reply.
- the Client Interface modifies the profile of the resource to reflect the suggested improvement (Step 6770 ). For example, when the suggested improvement is to add the missing skill to the resource profile, the Client Interface adds the missing “Chicago plant receiving logistics” skill 7030 to skill set 7116 in “MG” resource profile 7104 . When the suggested improvement is to increase the skill strength of the resource profile, the Client Interface increases the strength of “MG” skill 7148 in “MG” profile 7104 above the identified highest corresponding skill strength of “6.” Note that the Client Interface identifies that the suggested improvement is to increase the skill strength of the resource profile when skill set 7116 in “MG” resource profile 7104 already has all the skills found in “Gopher” skill set 7018 .
- the Client Interface when creating a subsequent plan from “AssemblyWorkflow” definition file 6800 and performing resource allocation processing for the plan, the Client Interface recognizes that improved “MG” resource profile 7104 has an improved skill set that matches “Gopher” skill set 7018 and that has higher corresponding skill strengths than “MA” skill set 7114 . Therefore, the Client Interface automatically assigns “MG” resource in lieu of “MA” resource to the “Gopher” role of a new task created from “Get Parts” activity 6804 in FIG. 68.
- the Client Interface determines if there are more resources associated with a role of the overflow (Step 6772 in FIG. 67E). If there are more resources associated with a role of the workflow, the Client Interface selects the next resource associated with a role of the workflow (Step 6774 ). After selecting the next resource, the Client Interface continues processing at step 6740 in FIG. 67C. When it is determined that there are no more resources associated with a role of the workflow, the Client Interface completes processing.
Abstract
Methods and systems consistent with the present invention provide an integrated process modeling and project planning tool that allows an enterprise affiliate to improve resource allocation to a given plan created from a workflow that models a process. To improve resource allocation, the tool generates a plan to perform an instance of the process. The generated plan has tasks performed by resources. Each resource has capabilities that are considered when generating the plan to ensure that, for each task, a suitable one of the resources is selected to perform each task. After generating the plan, the tool receives modification information indicating that the capabilities of one of the resources has changed, and assigns the resources to the tasks to generate a new plan by using the received modification information.
Description
- This application claims the benefit of the filing date of U.S. Provisional Application No. 60/230,054, entitled “Development Tool for Modeling Workflow,” filed on Sep. 1, 2000, and U.S. Provisional Application No. 60/296,707, entitled “Improved Development Tool For Modeling Workflow,” filed on Jun. 7, 2001, both of which are incorporated herein by reference.
- The following identified U.S. patent applications are also relied upon and are incorporated by reference in this application:
- U.S. patent application Ser. No. ______, entitled “Methods and Systems for Integrating Process Modeling and Project Planning,” bearing attorney docket no. TS1000, and filed on the same date herewith;
- U.S. patent application Ser. No. ______, entitled “Methods and Systems for Improving a Workflow Based on Data Mined from Plans Created from the Workflow,” bearing attorney docket no. TS1001, and filed on the same date herewith; and
- U.S. patent application Ser. No. ______, entitled “Methods and Systems for Animating a Workflow and a Project Plan,” bearing attorney docket no. TS1005, and filed on the same date herewith.
- The present invention relates to a method and system for developing a workflow and creating project plans from the workflow. More particularly, the invention relates to methods and systems for optimizing resource allocation and resource profiles used in resource allocation based on data mined from plans created from a workflow.
- To become more efficient and competitive, businesses and industries have striven to capture and streamline the business processes or workflows they use to operate and manage their respective enterprises. In general, a workflow is a model of a process. More specifically, a workflow can be viewed as a structured set of activities designed to produce a specific output for a particular customer (internal or external to an enterprise) or market. Although conventional software tools define the steps performed by the workflow, conventional tools do not schedule the resources (e.g., the people, equipment, or software technologies) responsible for completing each activity. Conventional tools also do not prepare a timeline identifying the beginning or end of each activity. Thus, conventional tools do not prepare a schedule for completing the workflow.
- Businesses and industries also use other conventional software tools, such as Microsoft Project™, to build and manage a project plan for their respective enterprises. A plan represents an instance of the workflow. More specifically, a plan can be viewed as a working schedule for a project to produce a product or artifact, such as a computer, bicycle, or software build, for the respective enterprise. These other conventional software tools typically display the working schedule in the form of an interactive Gantt chart, i.e., a chart to which the user can make updates. A Gantt chart is the linear, time-based representation of a project schedule, usually laid out on a horizontal plane where the times/dates increase to the right. These Gantt charts show the temporal relationships between the different tasks in a project, where the tasks are arranged along the vertical axis. Gantt charts are typically used to lay out an initial plan/timeline for the project, and then to track the actual progress of a project from start to finish. The modem software-based Gantt chart also identifies the resource(s) responsible for completing each task of the plan, the dependencies between the tasks, and, once the project has begun, the status of each task.
- The conventional tools that support the building and managing of a project plan, however, do not provide direct links between projects and the workflows or business processes that the enterprise has defined and seeks to implement to gain business advantage and economies of efficiencies. Likewise, the conventional tools that enterprises use to define and manage workflows are not linked to project plans. Because both workflows and project plans do not exist on the same tool, workflows and project plans cannot be integrated or synchronized to keep the workflows and project plans “in step” with each other. Thus, there is a need in the art for a tool that avoids the limitations of these conventional software tools.
- Methods and systems consistent with the present invention provide a workflow modeling and project planning integration tool that overcomes the limitations of conventional tools. The integration tool of the present invention has a Client Interface that saves an enterprise or organization significant development costs and increases its operating efficiency by improving profiles of resources associated with a workflow based on data mined from plans created from the workflow. By improving the profiles of the resources, the integration tool is able to optimize the automatic assignment or allocation of the resources to tasks of a plan when the plan is created from the workflow. The data mined by the Client Interface includes a task found in each plan that has an auto-assigned resource and has a replacement resource. The auto-assigned resource is a resource that the Client Interface automatically assigned to handle a role of the task when the Client Interface created the task from an activity of the workflow. The replacement resource is another resource that was manually assigned by an enterprise affiliate using the Client Interface to replace the auto-assigned resource. The Client Interface improves a profile associated with the auto-assigned resource by removing a skill or decreasing a strength of the skill in the profile, where the skill is associated with the role of the mined task. The Client Interface improves a profile associated with the replacement resource by adding a skill or increasing a strength of the skill in the profile, where the skill is also associated with the role of the mined task. Thus, by improving the profiles for the auto-assigned resource and the replacement resource, the Client Interface is able to more effectively allocate resources to plans that are subsequently created from the workflow by the enterprise affiliate, saving the enterprise affiliate time and effort needed to manually override any resources that were not optimally automatically assigned.
- In accordance with methods consistent with the present invention, a method is provided in a data processing system. The data processing system has a workflow that models a process. The method generates a plan to perform an instance of the process, the plan having tasks performed by resources. Each resource has capabilities that are considered when generating the plan to ensure that, for each task, a suitable one of the resources is selected to perform the task. The method also receives modification information indicating that the capabilities of one of the resources has changed, and assigns the resources to the tasks to generate a new plan by using the received modification information.
- In accordance with methods consistent with the present invention, a method is provided in a data processing system. The data processing system has a workflow that models a process and has a plurality of plans generated from the workflow that reflect instances of the process. The method receives a request to generate a new plan, examines the plurality of plans to determine a number of the plurality of the plans that have been modified per a modification since the modified plans were created, determines whether the number of plans exceeds a predetermined threshold, and when it is determined that the number of plans exceeds the predetermined threshold, generates the new plan such that the new plan incorporates the modification.
- In accordance with articles of manufacture consistent with the present invention, a computer-readable medium is provided. The computer-readable medium contains instructions for controlling a data processing system to perform a method. The data processing system has a workflow that models a process. The method comprises the step of generating a plan to perform an instance of the process. The generated plan has tasks performed by resources. Each resource has capabilities that are considered when generating the plan to ensure that, for each task, a suitable one of the resources is selected to perform the task. The method also comprises the steps of receiving modification information indicating that the capabilities of one of the resources has changed, and assigning the resources to the tasks to generate a new plan by using the received modification information.
- In accordance with articles of manufacture consistent with the present invention, a computer-readable medium is provided. The computer-readable medium contains instructions for controlling a data processing system to perform a method. The data processing system has a workflow that models a process and has multiple plans generated from the workflow that reflect instances of the process. The method comprises the steps of receiving a request to generate a new plan, examining the plurality of plans to determine a number of the plurality of the plans that have been modified per a modification since the modified plans were created, determining whether the number of plans exceeds a predetermined threshold, and when it is determined that the number of plans exceeds the predetermined threshold, generating the new plan such that the new plan incorporates the modification.
- Other systems, methods, features and advantages of the invention will be or will become apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the accompanying claims.
- The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate an implementation of the present invention and, together with the description, serve to explain the advantages and principles of the invention. In the drawings:
- FIG. 1 depicts a data processing system suitable for practicing methods and systems consistent with the present invention;
- FIG. 2 depicts an architectural overview of the workflow modeling and project planning integration tool used to perform methods and systems consistent with the present invention;
- FIG. 3 depicts a flow diagram illustrating the high-level process performed by the tool of FIG. 2 in accordance with methods and systems consistent with the present invention;
- FIG. 4 depicts an exemplary document workflow modeled by an enterprise affiliate using the tool of FIG. 2;
- FIG. 5 depicts an exemplary task workflow modeled by an enterprise affiliate using the tool of FIG. 2;
- FIG. 6 depicts another exemplary workflow modeled by an enterprise affiliate using the tool of FIG. 2;
- FIG. 7 depicts a timeline of the task created from the workflow of FIG. 4;
- FIG. 8 depicts a timeline of the task created from the workflow of FIG. 5;
- FIG. 9 depicts a timeline of the task created from the workflow of FIG. 6;
- FIGS.10-12 depict the execution of the plan depicted in FIG. 7;
- FIGS.13-16 depict the execution of the plan depicted in FIG. 8;
- FIGS.17-21 depict the execution of the plan depicted in FIG. 9 following the default path;
- FIGS.22-27 depict the execution of the plan depicted in FIG. 9 following the non-default path;
- FIGS.28A-C depict a flow diagram illustrating the creation or retrieval of a workflow by the tool of FIG. 2;
- FIG. 29 depicts an exemplary user interface of the tool of FIG. 2 used to begin creating or retrieving a workflow;
- FIG. 30 depicts an exemplary user interface of the tool of FIG. 2 used to enter the name of a new workflow group;
- FIG. 31 depicts an exemplary user interface of the tool of FIG. 2 used to begin creating a new workflow;
- FIG. 32 depicts an exemplary user interface of the tool of FIG. 2 used to enter the name of a new workflow;
- FIG. 33A-C depict an exemplary workflow definition file produced by the tool of FIG. 2 for the workflow depicted in FIG. 6;
- FIG. 34 depicts an exemplary user interface of the tool of FIG. 2 used to manage a workflow;
- FIG. 35 depicts an exemplary user interface of the tool of FIG. 2 used to add a new role to a workflow;
- FIG. 36 depicts an exemplary user interface of the tool of FIG. 2 used to select an artifact type;
- FIG. 37 depicts an exemplary user interface of the tool of FIG. 2 used to enter condition properties for a document-oriented artifact;
- FIG. 38 depicts an exemplary user interface of the tool of FIG. 2 used to enter condition properties for a script-oriented artifact;
- FIG. 39 depicts an exemplary user interface of a script editor for the tool of FIG. 2;
- FIG. 40 depicts an exemplary user interface of the tool of FIG. 2 used to modify the properties of a workflow activity;
- FIGS. 41A and B depict a flow diagram illustrating the creation of a plan from a workflow;
- FIG. 42 depicts an exemplary user interface of the tool of FIG. 2 used to create a new plan group;
- FIG. 43 depicts an exemplary user interface of the tool of FIG. 2 displaying the available plan groups;
- FIG. 44 depicts an exemplary user interface of the tool of FIG. 2 used to enter a plan name;
- FIG. 45 depicts an exemplary user interface of the tool of FIG. 2 used to enter the working schedule;
- FIG. 46 depicts an exemplary user interface of the tool of FIG. 2 used to enter the scheduled start and end times for the plan;
- FIG. 47 depicts an exemplary workflow definition file produced by the tool of FIG. 2 for the workflow of FIG. 5 is created;
- FIG. 48 depicts an exemplary plan definition file created from the workflow definition file of FIG. 47;
- FIG. 49 depicts an exemplary user interface of the tool of FIG. 2 used to assign users to a plan;
- FIG. 50 depicts an exemplary user interface of the tool of FIG. 2 used to edit the properties of a plan;
- FIG. 51 depicts a timeline of the task created from the workflow of FIG. 5;
- FIG. 52 depicts an exemplary timeline of the tool of FIG. 2 used to activate a plan;
- FIG. 53 depicts a flow diagram illustrating the addition of a resource by the tool of FIG. 2;
- FIG. 54 depicts an exemplary user interface of the tool of FIG. 2 used to add a resource;
- FIG. 55 depicts an exemplary user interface of the tool of FIG. 2 used to receive LDAP access information;
- FIG. 56 depicts an exemplary resource file created by the tool of FIG. 2;
- FIG. 57 depicts a flow diagram illustrating the management of an activated plan;
- FIG. 58 depicts a timeline of the task created from the workflow of FIG. 5;
- FIG. 59 depicts an exemplary plan definition file created from the workflow of FIG. 5;
- FIGS. 60, 62,64 and 66 depict the actual timeline showing the execution of the plan depicted in FIG. 58;
- FIGS. 61, 63, and65 depict the properties of the executing tasks of FIGS. 62, 64, and 66;
- FIGS. 67A through 67E depict a flowchart illustrating an exemplary process performed by the Client Interface to improve a profile of any resource that has been previously assigned to a role of a task in a plan created from a workflow;
- FIG. 68 depicts an excerpt of an exemplary workflow definition file created and stored by the Client Interface;
- FIG. 69 depicts an exemplary graphical representation of the workflow definition file in FIG. 68 displayed by the Client Interface;
- FIG. 70 depicts an exemplary workflow roles file created by the Client Interface to store profiles of roles assigned to activities in the workflow definition file in FIG. 68;
- FIG. 71 depicts an exemplary resource file created by the Client Interface to store resource profiles that have been defined by an enterprise affiliate using the Client Interface;
- FIG. 72 depicts an exemplary skills file created by the Client Interface to store skills that may be assigned to a role or a resource by the Client Interface;
- FIGS.73A-C depict an excerpt of an exemplary plan definition file created by the Client Interface in response to an enterprise affiliate manually assigning a resource to a role associated with a “Get Parts” task in the plan definition file; and
- FIG. 74 depicts an excerpt of another exemplary plan definition file that is an earlier version of the plan definition file in FIGS.73A-C and that was created by the Client Interface from the workflow definition file in FIG. 68.
- Methods and systems consistent with the present invention provide an integrated workflow modeling and project planning integration tool that improves the efficiency and reduces the operating cost of an enterprise or business conglomerate. Contrary to conventional tools that do not allow a user to integrate a workflow and a project plan, the integration tool allows a user to model a business process or workflow, to create and activate a project plan based on the workflow, and to track the progress of the activated project plan. The tool also allows the workflow to be reused to create more than one project plan based on the workflow. The tool simultaneously manages the execution of the plans. Moreover, the integration tool may include a Web-based “Distributed Authoring and Versioning” (WebDAV) server that operates as a virtual file system for computers on a network. With the WebDAV server, more than one user on different computer systems may view the same workflow or project plan, monitor the progress of an activated project plan, or simultaneously create and activate different plans from the same workflow.
- While methods and systems consistent with the present invention may apply to any enterprise, they will be further described below with reference to the software industry to provide clarity. More particularly, methods and systems consistent with the present invention will be described with reference to a software development business process that is applicable to the software industry.
- FIG. 1 depicts a
data processing system 100 suitable for practicing methods and systems consistent with the present invention.Data processing system 100 includes a group ofcomputers network 108.Network 108 may be any known physical or wireless network capable of supporting a data transmission between two computer systems, such as a Local Area Network (LAN), a Wide Area Network (WAN), the Internet, or leased phone lines. - As further explained herein,
computer 102 a may actually be one of multiple computers (i.e.,computers network 108. The enterprise affiliates may be employees, managers, administrators, suppliers, customers, or other users within the enterprise who may need to create, view, or receive information regarding an activated project plan in accordance with methods and systems consistent with the present invention. - Each
computer Memory 110 incomputer 102 a includes aClient Interface 134 to a Web-based “Distributed Authoring and Versioning” (WebDAV)server 140 inmemory 112.Client Interface 134 has Process andPlan modules 136 that collectively allow an enterprise affiliate to create a reusable workflow and to create and activate a project plan based on the reusable workflow. -
Memory 110 incomputer 102 a also includes a target processor interpreter, such as a Java™Virtual Machine 138. To permit theClient Interface 134 to run on most any computer, theClient Interface 134 may be developed using the Java™ Programming Language. Thus,Client Interface 134 may include Java™ bytecodes. The Java™Virtual Machine 138 interprets the Java™ bytecodes of theClient Interface 134 so that theClient Interface 134 may execute oncomputer 102 a. - The
WebDAV server 140 inmemory 112 ofcomputer 104 operates as a virtual file system forcomputers network 108. To operate as a virtual file system,WebDAV Server 140 communicates on thenetwork 108 using the WebDAV protocol, and stores files onWebDAV storage 142. In one implementation,WebDAV storage 142 may be a known database, such as Oracle, DB2, MS Structured Query Language (SQL) storage, or any Java Database Connectivity (JDBC)-compliant database. In this implementation,WebDAV Server 140 includes a database management system (DBMS) or a JDBC interface to control access to theWebDAV storage 142. - In accordance with methods and systems consistent with the present invention, two separate enterprise affiliates using their respective Client Interfaces134 on their
respective computers WebDAV Storage 142. In addition, theClient Interface 134 allows any enterprise affiliate to create, delete, move, and copy workflows, project plans, and associated roles/resource lists onWebDAV server 140. Furthermore, properties of a process, a plan, or a task of a plan may be added, located, or changed onWebDAV Storage 142 byClient Interface 134 using known methods of the WebDAV protocol. - The WebDAV protocol is a set of known extensions to the standard HyperText Transfer protocol (HTTP) that allows enterprise affiliates using
client computers WebDAV Server 140 usingnetwork 108. As known to one skilled in the art, HTTP defines how messages sent to or from a Web server on the Internet are formatted and transmitted. HTTP also defines what actions a Web server or Web browser of a computer on the Internet should take in response to various commands submitted as part of an HTTP message. - The WebDAV protocol defines a WebDAV resource to be a collection (e.g., a directory or folder on WebDAV Storage142) or a collection member (e.g., a file or Web page on WebDAV Storage 142). Each WebDAV resource has a content file and properties associated with the content file. The properties include the creation date, the author, and the access rights for the WebDAV resource. The WebDAV protocol specifies the methods to create, delete, move, and copy a WebDAV resource. It also specifies the methods to add, find, or change a property of a WebDAV resource. The WebDAV protocol and the HTTP extensions that comprise the WebDAV protocol are more clearly described in the following reference, which is incorporated herein by reference: HTTP Extensions For Distributed Authoring—WebDAV, RFC 2518, Standards Track, Proposed Standard, February 1999, available at http://andrew2.andrew.cmu.edu/rfc/rfc2518.html.
-
Memory 114 incomputer 106 includes aTool Server 144. TheTool Server 144 includes aWebDAV proxy 146 andManagement Modules 148.WebDAV proxy 146 mediates communication between theClient Interface 134 and theWebDAV server 140. The messages or requests directed to theWebDAV server 140 from theClient Interface 134 are initially sent to theWebDAV proxy 146, as discussed in detail below. TheWebDAV proxy 146 passes these messages and requests to theManagement Modules 148. Each of theManagement Modules 148 is configured to inform theWebDAV proxy 146 when a message or request has been serviced. If none of theManagement Modules 148 services the message or request, then theWebDAV proxy 146 sends the message or request to theWebDAV Server 140 via thenetwork 108. If, on the other hand, theManagement Modules 148 are able to service the message or request, the message or request is not sent to theWebDAV Server 140. The types of messages or requests serviced by theManagement Modules 148 include activating a project plan, notifying various enterprise affiliates assigned to each task of the plan, and managing the execution of the plan to the enterprise affiliates. - In another implementation,
memory 114 incomputer 106 includes a WebDAV servlet (not shown), which is an application designed to perform as a WebDAV Engine in lieu ofWebDAV Server 140. The WebDAV servlet may be started by and executed within theTool Server 144. In this implementation, WebDAV servlet is persistent. Thus, once WebDAV servlet is started, it stays in memory and can fulfill multiple requests. WebDAV servlet is configured to control access toWebDAV Storage 142, which may be included insecondary storage 120 incomputer 106. -
Memory 114 incomputer 106 also includes a target processor interpreter, such as a Java™Virtual Machine 150. As with theClient Interface 134 oncomputer 102 a, theTool Server 144 includes Java™ bytecodes that the JavaVirtual Machine 150 interprets so that theTool Server 144 may execute oncomputer 106. - In another implementation, the
data processing system 100 may operate in a local host configuration rather than across thenetwork 108. In this implementation, thememory 110 ofcomputer 102 a may include theTool Server 144 and theWebDAV Server 140. In addition, thesecondary storage device 116 may include theWebDAV Storage 142. - Although aspects of the present invention are described as being stored in memory, one skilled in the art will appreciate that these aspects can also be stored on or read from other types of computer-readable media, such as secondary storage devices, like hard disks, floppy disks, or CD-ROM; a carrier wave from a network, such as Internet; or other forms of RAM or ROM.
- FIG. 2 depicts a functional architectural overview of the workflow modeling and project
planning integration tool 200 used to integrate workflow modeling and project planning. As shown in FIG. 2, thetool 200 includes theClient Interface 134 as well as theTool Server 144. Although part of thesame tool 200, theClient Interface 134 and theTool Server 144 may be located on different computer systems, as discussed above. - The
Client Interface 134 includes a Virtual File System (“VFS”)Interface 202 that is configured to allow theClient Interface 134 to connect to thesecondary storage device 116 for local file access or to connect to theWebDAV Storage 142 via theWebDAV proxy 146 for virtual file access. To allow theWebDAV proxy 146 to mediate communication between theClient Interface 134 and theWebDAV Storage 142, theVFS Interface 202 is configured to send the virtual file access requests from theClient Interface 134 to a Uniform Resource Locator (URL) or network address for theWebDAV proxy 146. For example, the URL for theWebDAV proxy 146 may be “http://www.ToolServer.com/WebDAVproxy.” A URL typically consists of an access protocol (e.g., http), a domain name (e.g., www.ToolServer.com), and, optionally, the path to a file or resource residing on that server (e.g., WebDAVproxy). If theTool Server 144, where theWebDAV proxy 146 is located, has an IP address of 192.168.5.1 and an assigned port address of 8088, then the URL for the WebDAV proxy translates to “http://192.168.5.1/:8088/WebDAVproxy.” - As discussed above, the
VFS Interface 202 initially sends the requests that theClient Interface 134 directs to theWebDAV Storage 142 to theWebDAV proxy 146. TheWebDAV proxy 146 sends these requests to theManagement Modules 148. After theManagement Modules 148 review these requests, theWebDAV proxy 146 sends the request to theWebDAV server 140 if theManagement Modules 148 do not respond to the requests from theClient Interface 134. If the request is to be sent to theWebDAV server 140, theTool Server 144 directs the request to a URL or network address for theWebDAV server 140. - The
Client Interface 134 also includes amodule loader 204 to load the Process andPlan modules 136. As one skilled in the art will appreciate,Client Interface 134 may be developed so that the functionality provided by Process andPlan modules 136 is not loaded by a knownmodule loader 204, but integrally incorporated within the element corresponding to theClient Interface 134. The Process andPlan modules 136 produce the requests to store or modify the various client files on theWebDAV storage 142. As further described below, the various types of client files include a condition model, a user profile, a resource profile, a workflow definition file, and a plan definition file. Each of these files has properties defined in accordance with the WebDAV protocol. The various types of client files follow a schema or document type definition that is known to theTool Server 144 so that theTool Server 144 can identify the type of client file sent by theClient Interface 134 and intercepted by theWebDAV Proxy 146. In addition, each type of client file has a unique identifier, such as a URL network address, which theTool Server 144 may use to locate the associated client file for processing. The various types of client files are discussed in context with the general description of the Process andPlan modules 136 and also further discussed with the implementation details of creating a workflow and a project plan from the workflow. Although XML files are used to represent the client files used with methods and systems consistent with the present invention, one skilled in the art will recognize that any file type can be used to represent the client files. - The Process and
Plan Modules 136 include aResource Manager Module 206, an Activity I/OCondition Designer Module 208, aProcess Designer Module 210, a ProjectPlan Manager Module 212, and aTask Tracker Module 214. TheResource Manager Module 206 allows an enterprise affiliate with system administrative privileges or permissions, such as a project manager, to create, modify, and store a user profile for an enterprise affiliate. The user profile identifies the access control rights that are associated with the enterprise affiliate, such as whether the enterprise affiliate may create a project plan based on a workflow or whether the enterprise affiliate is limited to viewing an existing workflow or plan. When theClient Interface 134 sends a request to theWebDAV Server 140 to store the user profile, theClient Interface 134 may specify that the user profile be stored with a unique identifier so that theTool Server 144 may later locate the user profile for further processing. For example, theClient Interface 134 may request that the unique identifier be a location or URL where the user profile is to be stored on theWebDAV Storage 142. If the unique identifier is stored as a property of the user profile on theWebDAV storage 142, theClient Interface 134 sends a request to theWebDAV Server 140 to set the value of the property. - The
Resource Manager Module 206 also allows an enterprise affiliate to create, modify, and store the role profiles that may be assigned to an activity of a workflow that is modeled using thetool 200. The role profile identifies a group of resources that may be assigned to complete a task created from the activity. The role profile is a type of client file that theClient Interface 134 may store onWebDAV storage 142 with a unique identifier (e.g., a URL for the role profile) to locate the role profile at a later time. A role profile may include a Rolename that represents a “capability” or “skill set” for the role. For example, using methods and systems consistent with the present invention, an enterprise affiliate may identify one of the following Rolenames to theResource Manager Module 206 so that the associated role profiles are later available to assign when defining a software development process: Manager, Analyst, Software Architect, Software Developer, Tester, Hardware Architect, and Editor. - In addition to the above, the
Resource Manager Module 206 further allows an enterprise affiliate to create, modify, and store the resource profiles (e.g., the person, equipment, or systems, such as a development facility) that may be assigned to a task of a plan created from a workflow. The resource profile includes a resource ID and a unique identifier for the role profile so that theClient Interface 134 may communicate to theTool Server 144 that the identified resource has skills or capabilities corresponding to the role profile. For example, when the resource is a person, theTool Server 144 may recognize that the person can play a given role (e.g., Analyst) in a specific activity in a workflow (e.g., Software Development Process) based on the skills or capabilities required by the role assigned to the activity to be performed. - The Activity I/O
Condition Designer Module 208 allows an enterprise affiliate, such as a manager, to define a condition model, i.e., an input condition or an output condition, for an activity of a workflow. The Activity I/OCondition Designer Module 208 stores the condition model with a unique identifier so that theTool Server 144 may later locate the condition model for processing, such as when a task of a plan is created from the activity of the workflow, as explained below. - As discussed above, there are two types of workflows: a document workflow and a task workflow. Similarly, there are two types of conditions: a document-type condition and a logic-type condition. The Activity I/O
Condition Designer Module 208 allows the enterprise affiliate to create a condition model based on one of these two condition types. The Activity I/OCondition Designer Module 208 also allows the enterprise affiliate to assign a document-type condition model or a logic-type condition model to an activity when creating the activity in a workflow. Each document-type and logic-type condition model has properties defined by the enterprise affiliate that created the respective condition model using the Activity I/OCondition Designer Module 208. - The properties of the document-type condition model include a location property (e.g., a URL) identifying the location of the document or artifact being monitored. Thus, when executing a task based on an activity, the
Client Interface 134 uses the location property to notify the resource responsible for the task where to find the document or artifact so that the resource may complete its task. - Another property of the document-type condition model is a state property that indicates the allowable states of the document or artifact. For example, the document may have the states “DRAFT” and “APPROVED.” When creating the workflow, the enterprise affiliate assigns one of these allowable states as a condition for entry into or exit from the activity (or the task created from the activity). When the task is activated, the
Workflow Engine 222 evaluates whether the state property of the document condition satisfies the input or output condition of the activated task before starting or closing the task. - When creating a logic-type condition model, Activity I/O
Condition Designer Module 208 allows the enterprise affiliate to define the properties shown in Table 1.TABLE 1 Property Description Name The name used to identify the condition. Description A description of the condition. When to This section identifies when and/or how Check often the condition should be checked. Abs. Time The condition is checked when this absolute time (calendar time) arrives. Period Integer expression in Javascript that defines the periodicity of condition check, where a “1” means once a minute. (If absolute time is also specified, then the condition should be checked when the absolute time arrives and periodically thereafter.) URL The condition is checked after URL Change undergoes a property or content change. Task The condition is checked when the task Change that is specified during plan creation changes its state (e.g., starts, finishes). Any The condition is checked when any HTTP Request request is detected. Script The script to run when the condition is met. The script must return “true” or “false” (a Boolean). - When a plan is created from a workflow, the
Client Interface 134 uses the logic-type condition model to generate a logic-type condition for entry/exit and the script (e.g., logic element) to be performed to determine if the condition is met. For example, the enterprise affiliate may indicate to the Activity I/OCondition Designer Module 208 that the condition is to check if the task is complete and that the logic to be performed is to check the status property of the task. In this case, the user or resource assigned to this task must notify theClient Interface 134 that the task is complete. In another example, the enterprise affiliate may indicate to the Activity I/OCondition Designer Module 208 that the condition is to check if the task is complete and that the logic to be performed is to check for the existence of a file in a specific directory folder onWebDAV Storage 142 in order to determine if the task is complete. In this case, the user or resource assigned to this task must create or move a file into the specific directory folder to indicate that the task is complete. - The
Process Designer Module 210 allows an enterprise affiliate to create, modify, and store a workflow. When the enterprise affiliate indicates toProcess Designer Module 210 that the modeled process is to be saved,Process Designer Module 210 produces a workflow definition file based on the modeled workflow object.Client Interface 134 then sends as the workflow definition file as a client file toWebDAV Server 140 to be stored onWebDAV Storage 142. Each workflow definition file produced byProcess Designer Module 210 includes a unique identifier (e.g., a URL for the workflow definition file) so thatTool Server 144 may later locate the workflow definition file corresponding to the modeled workflow for further processing. - Project
Plan Manager Module 212 allows an enterprise affiliate to create and activate a project plan from a workflow definition file. In general, upon request to create a project plan, ProjectPlan Manager Module 212 sends a query message to theWebDAV Server 140 for the workflow definition files contained inWebDAV Storage 142. As further described below, ProjectPlan Manager Module 212 receives the workflow definition files, allows the enterprise affiliate to select one of the workflow definition files to create a project plan, and then produces a plan definition file based on the selected workflow definition file. When instructed to save the plan by the enterprise affiliate, ProjectPlan Manager Module 212 sends the plan definition file as a client file toWebDAV Server 140 to be stored onWebDAV Storage 142. Each plan definition file produced byProcess Designer Module 210 includes a unique identifier (e.g., a URL for the plan definition file) so thatTool Server 144 may later locate the workflow definition file corresponding to the modeled workflow for further processing. - The
Task Tracker Module 214 allows an enterprise affiliate to view the tasks of an activated project plan that are assigned to a specific role, to activate a task of the project plan (e.g., indicate actual start time to Client Interface 134 ), to open or check-out a document artifact needed to accomplish the task, to close or check-in the document artifact after accomplishing the task, and to indicate that the task is completed. - The
Tool Server 144 includes amodule loader 216 to load theManagement Modules 148. Similar to theClient Interface 134, theTool Server 144 may be developed so that the functionality provided byManagement Modules 148 is not loaded by a knownmodule loader 216, but integrally incorporated within the element corresponding to theTool Server 144.Management Modules 148 include aUser Authorization Module 218, a Resource/Role Management Module 220, and aWorkflow Engine 222. TheWorkflow Engine 222 includes a ProjectPlan Management Module 224 and a ProjectTask Management Module 226. - When the
Client Interface 134 requests access to a client file on theWebDAV Storage 142, theUser Authorization Module 218 verifies that that the enterprise affiliate making the request has a user profile on theWebDAV Storage 142 with the proper authorization or permission to access the requested client file. TheUser Authorization Module 218 may be connected to a Light Directory Access Protocol (LDAP)Import Module 228, which follows a known LDAP protocol to allow theUser Authorization Module 218 to obtain existing user profiles from another computer onnetwork 108. As known to those skilled in the art, an LDAP protocol is based on “entries,” where an entry is a collection of attributes that have a “distinguished name” (DN). According to the LDAP protocol, directory entries are arranged in a hierarchical tree-like structure that reflects political, geographic, and/or organizational boundaries. For example, entries representing countries may appear at the top of the tree. The entries below the countries may represent states or national organizations. Below the states or national organizations may be entries representing people (e.g., user profiles), organizational units, printers, documents, or any other accessible entity. Each level in the hierarchical tree-like structure for the directory entries may be identified by a known standardized keyword, such as “CN” for the common name of the entry (e.g., user profile), “L” for locality name, “ST” for state or province name, “O” for organization name, “OU” for organizational unit name, and “C” for country name. TheLDAP Import Module 228 uses a DN to refer to the entry unambiguously via a concatenation of the hierarchical tree-like structure. After user profiles are retrieved by theUser Authorization Module 218 via theLDAP import module 228, the user profiles may then be stored on theWebDAV Storage 142 by a request from theClient Interface 134. - The Resource/
Role Management Module 220 reviews requests from an enterprise affiliate to assign a resource to a plan (e.g., to assign a user to a task of the plan). The Resource/Role Management Module 220 checks the resource profile corresponding to the assigned resource on theWebDAV Storage 142 to verify that the resource is not overloaded. For example, the Resource/Role Management Module 220 determines whether a resource is already assigned to another task in another plan during the same time frame, thus preventing it from being able to complete one of the tasks to which it is assigned. The Resource/Role Management Module 220 may also be connected to theLDAP Import Module 228 to allow the Resource/Role Management Module 220 to obtain existing resource profiles from another computer onnetwork 108. The resource profiles may also be stored onWebDAV Storage 142 by a request fromClient Interface 134. - The
Workflow Engine 222 reviews requests to activate, deactivate, or update a plan. For example, a request to update a plan occurs if the enterprise affiliate who is an owner of a task indicates in its request that the task is complete. TheWorkflow Engine 222 also manages the execution of the activated plans. - FIG. 3 depicts a flow diagram illustrating the high-level process performed by the workflow modeling and project planning integration tool in accordance with methods and systems consistent with the present invention. Initially, the tool creates or retrieves a workflow (step302). The tool then displays the workflow (step 304). The workflow comprises a set of activities that represents the steps to be performed as part of a plan executed from the workflow. Each activity has an activity description and at least one role responsible for the activity. The activity description indicates what step is to be performed by the role.
- There are two types of workflows: a document workflow and a task workflow. In a document workflow, the state of one document (or, more generally, any item or artifact) is monitored by the activities of the workflow. Thus, a document workflow cannot usually have parallel activities, which would require the parallel activities to monitor the states of more than one artifact or would require the parallel activities to monitor different states of the same artifact simultaneously. The document is in one state at a time. FIG. 4 depicts an
exemplary document workflow 400. As shown, theworkflow 400 includes astart element 402, anend element 404, and two activities, “Step 1” 406 and “Step 2” 408. Because “Step 1” 406 occurs directly before “Step 2” 408, “Step 1” 406 is the predecessor activity to “Step 2” 408. Similarly, “Step 2” 408 is the “successor activity” to “Step 1” 406. Theworkflow 400 is used to monitor the state ofArtifact 410. In particular, in “Step 1” 406, the state ofArtifact 410 is “State 1” 412, in “Step 2” 408, the state ofArtifact 410 is “State 2 ” 414, and at theend 404 of the workflow, the state ofArtifact 410 is “Complete” 416. - A task workflow, on the other hand, typically has no limitations regarding the number of artifacts that may be monitored or modified by each activity of the workflow to achieve or contribute to the business process goal, such as an auditing process that determines if multiple accounts are balanced properly. FIG. 5 depicts an
exemplary task workflow 500. Thetask workflow 500 includes astart element 502, anend element 504, twoserial activities parallel activities synch bars - Another
exemplary workflow 600 is depicted in FIG. 6. Theworkflow 600 includes astart element 602 and anend element 604. The first activity of theworkflow 600 is “Get Parts” 606, which is followed by a logic activity, “L or Rt Handed?” 608. Logic activities have two successor activities: a “default activity” and a “non-default activity.” As the name implies, the workflow generally follows the path of the default activity unless a condition is met in the logic activity, as discussed in detail below. In FIG. 6, the default activity is “Right” 610. The non-default activity is “Left” 612, which is followed by another activity “Left Special” 614. The default path is represented as asolid connector 616 while the non-default path is represented as adotted connector 618. One skilled in the art, however, will recognize that any visible difference in the connectors, e.g., a change in type, color, shading, etc., may be used to represent both the default path as well as the non-default path. Both thedefault activity 610 and thenon-default activities - Returning to FIG. 3, the next step performed by the tool is to create a plan from the workflow (step306). Each activity in the default path of the workflow corresponds to a task in the plan. The task identifies the scheduled start and stop times for the task. The tool then displays the plan (step 308). For example, the plan created from the
workflow 400 depicted in FIG. 4 is shown in FIG. 7. Theplan 700 includes twotasks activities workflow 400. Thefirst task 702 is scheduled to begin at 9 a.m. 706 on Aug. 1, 2001 (not shown), and end at 6 p.m. 708 on the same day. Thesecond task 704 is scheduled to begin at 9 a.m. 710 on Aug. 2, 2001 (712) and end at 5 p.m. 714 on the same day. - The
plan 800 created from theworkflow 500 depicted in FIG. 5 is shown in FIG. 8. Theplan 800 includes twoserial tasks serial activities workflow 500. Theplan 800 also includes twoparallel tasks parallel activities workflow 500. As shown in FIG. 8, “Serial 1”task 802 is scheduled to begin at 9 a.m. 810 on Aug. 1, 2001 (812) and end at 5:30 p.m. 814 on the same day. Theparallel tasks task 802, and are scheduled to end at 6 p.m. 816 on Aug. 2, 2001 (818). The “Serial 2”task 804 is scheduled to begin upon completion of theparallel tasks - The
plan 900 created from theworkflow 600 depicted in FIG. 6 is shown in FIG. 9. Theplan 900 includes atask 902 corresponding to the activity “Get Parts” 606, followed by atask 904 corresponding to the activity “L or Rt Handed?” 608. The followingtask 906 corresponds to the activity “Right” 610. Thefinal task 908 corresponds to the activity “Complete Assembly” 620. Theplan 900 depicts the default path, and does not include any of the tasks corresponding to the non-default path. Although the start and end times are not depicted in theplan 900 shown in FIG. 9, each task has a scheduled start and stop time. - Returning to the high-level process of FIG. 3, the tool then activates the plan (step310). Next, the tool manages the execution of the activated plan (step 312). The tool also modifies the display of the plan as each task is executed (step 314). The tool then determines whether the execution of the plan is complete (step 316). If the execution of the plan is complete, processing ends. Otherwise, processing continues to step 312.
- For the
exemplary plan 700 depicted in FIG. 7, upon activation, thefirst task 702 begins execution. The tool depicts the executingtask 1002 by darkening the outer borders of the block representing thetask 1002, as depicted in the plan 1000 shown in FIG. 10. After completion of the task, the tool depicts the executedtask 1102 as a darkened block in theplan 1100, as shown in FIG. 11. At this point, thesecond task 1104 begins execution, as indicated by the darkened outer borders of thetask 1104. Finally, after bothtasks plan 1100 have been executed, bothtasks plan 1200, as shown in FIG. 12. In this embodiment, the tool represents an executing task with darkened borders and represents an executed task as a darkened block. One skilled in the art, however, will recognize that any visible change in the blocks representing the tasks, e.g., a change in shape, color, shading, etc., may be used to represent the tasks in their various states. Thus, the representation of the tasks used in the methods, systems, and articles of manufacture consistent with the present invention are not limited to those used in the present embodiment. - The activation and execution of the tasks of the
plan 800 depicted in FIG. 8 are shown in FIGS. 13-16. FIG. 13 depicts the state of theplan 1300 while the “Serial 1”task 1302 is executing. FIG. 14 depicts the state of theplan 1400 after execution of the “Serial 1”task 1402, while the “Parallel 1” and the “Parallel 2”tasks plan 1500 after execution of the “Serial 1”task 1502 and the “Parallel 1” and the “Parallel 2”tasks task 1508 is executing. Finally, FIG. 16 depicts the state of theplan 1600 after execution of thetasks - As discussed above, FIG. 9 represents a
plan 900 created from aworkflow 600 having alogic block 608. The activation and execution of the tasks of theplan 900 following the default path are shown in FIGS. 17-21, while the activation and execution of the tasks of theplan 900 following the non-default path are shown in FIGS. 22-27. - FIG. 17 depicts the state of the
plan 1700 while the “Get Parts”task 1702 is executing. FIG. 18 depicts the state of the plan 1800 after the execution of the “Get Parts”task 1802, while the “L Or Rt Handed?”logic task 1804 is executing. Upon selection of the default path, theplan 1900 shown in FIG. 19 depicts both the “Get Parts”task 1902 and the “L Or Rt Handed?”logic task 1904 in executed states, while the “Right”task 1906 is depicted in an executing state. After the execution of the “Right”task 1906 is complete, the state of theplan 2000 is depicted in FIG. 20 with the “Get Parts”task 2002, the “L Or Rt Handed?”logic task 2004, and the “Right”task 2006 in executed states and with the “Complete Assembly”task 2008 in an executing state. Finally, upon completion of the “Complete Assembly”task 2008, the state of theplan 2100 after execution of thetasks - Alternatively, if the non-default path is to be chosen, the execution of the plan is initially the same as when the default path is chosen. Thus, as depicted in FIG. 22, the
plan 2200 begins with the execution of the “Get Parts”task 2202. After completion of the “Get Parts”task 2202, theplan 2300 shown in FIG. 23 depicts the “Get Parts”task 2302 in an executed state while the “L Or Rt Handed?”task 2304 is shown in an executing state. At this point, the resource assigned to choose the default or the non-default path chooses the non-default path, thus completing the execution of the “L Or Rt Handed?”task 2404, as indicated in FIG. 24. Upon selection of the non-default path, thetool 200 modifies theplan 2400 to correspond to the non-default path of the corresponding workflow. Theplan 2400 depicts the tasks included in the non-default path. Thus, theplan 2400 includes the “Left” and “Left Special”tasks task 2406 is executing. FIG. 25 depicts theplan 2500 after the “Get Parts”task 2502, the “L Or Rt Handed?”logic task 2504, and the “Left”task 2506 have been executed, while the “Left Special”task 2508 is executing. Continuing with the execution of the plan, FIG. 26 depicts the state of theplan 2600 after the “Get Parts”task 2602, the “L Or Rt Handed?”logic task 2604, the “Left”task 2606, and the “Left Special”task 2608 are done executing, while the “Complete Assembly”task 2610 is executing. Finally, FIG. 27 depicts the state of theplan 2700 after completion of thetasks - FIGS.28A-C depict a flow diagram illustrating an exemplary process for retrieving or creating a workflow, i.e.,
step 302 in FIG. 3. Initially, thetool 200 determines whether to use an existing process or workflow group (step 2802). A workflow group is a collection of workflows (e.g., a directory or folder containing the collection of workflows) created by theClient Interface 134 onWebDAV Storage 142. Each workflow group is created by theClient Interface 134 onWebDAV Storage 142 with the “workflow group” property as explained further below. When creating a workflow, theClient Interface 134 allows the enterprise affiliate to store the workflow within an identified workflow group so that any enterprise affiliate using theClient Interface 134 is able to easily identify related workflows. For example, software-related workflows may be stored within the same workflow group so that an enterprise affiliate is able to quickly locate a desired workflow in order to create a corresponding plan using theClient Interface 134. One skilled in the art will appreciate thatClient Interface 134 may store a workflow onWebDAV Storage 142 without associating the workflow with a workflow group. - The
tool 200 receives user input from an enterprise affiliate with system administrative privileges or permissions, such as a project manager, to determine whether to retrieve an existing workflow group or to create a new workflow group. If thetool 200 determines that it will use an existing workflow group, thetool 200 receives an identification of the workflow group from the enterprise affiliate (step 2804). In one implementation, theClient Interface 134 may retrieve the identifications for the workflow groups on theWebDAV Storage 142 by requesting that the folders or directories onWebDAV Storage 142 having a “workflow” property be returned by theWebDAV Server 140. The Client Interface may use any known method in accordance with WebDAV protocol to request that theWebDAV Server 140 return any directory or folder onWebDAV Storage 142 that corresponds to a workflow group. Thetool 200 may then display the available workflow groups to allow the enterprise affiliate to select one of the available workflow groups. For example, as shown on theuser interface 2900 depicted in FIG. 29, thetool 200 may display ahierarchical view 2902 of an identifiedworkflow group 2904 stored on theroot directory 2906 ofWebDAV Storage 142. Alternatively, the enterprise affiliate may enter the identification of the desired workflow group to thetool 200 for retrieval. Using the identification, thetool 200 then retrieves the workflow group (step 2806). - If the
tool 200 determines that a new workflow group will be created, thetool 200 receives the name of the workflow group from the enterprise affiliate (step 2808). For example, the enterprise affiliate may request a new workflow group by clicking on “Process Designer”button 2908 of theuser interface 2900 depicted in FIG. 29. The enterprise affiliate may, alternatively, use any known data input technique, such as an icon or keyboard input, to indicate the request to thetool 200. Upon selecting the “Process Designer”button 2908, thetool 200 displays anexemplary user interface 3000 depicted in FIG. 30 for receiving a newworkflow group identification 3002 via keyboard input from an enterpriseaffiliate using computer - After receiving the new workflow group identification, the
tool 200 creates a new workflow group in storage (step 2810). For example, thetool 200 may create the workflow group onWebDAV Storage 142. To generate a new workflow group onWebDAV Storage 142, theClient Interface 134 sends the WebDAV Server 140 a request to create a new collection or folder onWebDAV Storage 142 with the same identification as the newworkflow group identification 3002. In accordance with WebDAV protocol, theClient Interface 134 receives a response from theWebDAV Server 140 confirming that the new workflow group folder was created onWebDAV Storage 142. As previously discussed, when a new collection or folder is created using the WebDAV protocol, the WebDAV properties (e.g., “date of creation,” “property name” and “lockdiscovery” properties) are created and stored in association with the new directory by theWebDAV Server 140. Thus, when generating the new workflow group, theClient Interface 134 also sets the “property name” of the new workflow group to be “workflow group” so that the Client Interface may subsequently use known WebDAV methods, such as “PropFind,” to retrieve the identification of each workflow group onWebDAV Storage 142. - After retrieving an existing workflow group or creating a new workflow group, the
tool 200 determines whether to use an existing workflow (step 2812). Thetool 200 receives user input from an enterprise affiliate with system administrative privileges or permissions to determine whether to retrieve an existing workflow or to create a new workflow. If thetool 200 determines that it will use an existing workflow, thetool 200 receives an identification of the workflow from the enterprise affiliate (step 2814). In one implementation, theClient Interface 134 may retrieve the identifications for the workflows in the selected workflow group and display the available workflows to allow the enterprise affiliate to select one of the available workflows. Alternatively, the enterprise affiliate may enter the identification of the desired workflow to thetool 200 for retrieval. Using the identification, thetool 200 then retrieves the workflow (step 2816). - If the
tool 200 determines that a new workflow will be created, thetool 200 receives the name of the workflow from the enterprise affiliate (step 2818). For example, the enterprise affiliate may request a new workflow by clicking on the desiredworkflow group 3102 and selecting the “New Process”option 3104 from a pull-down menu 3106 on theuser interface 3100 depicted in FIG. 31. The enterprise affiliate may, alternatively, use any known data input technique, such as an icon or keyboard input, to indicate the request to thetool 200. Upon selecting the “New Process”option 3104, thetool 200 may display theexemplary dialog box 3200 depicted in FIG. 32 to the enterprise affiliate. The enterprise affiliate may then enter the name of anew workflow 3202. After receiving the name for the workflow, thetool 200 creates the workflow in storage (step 2820). - FIGS.33A-C depict an exemplary
workflow definition file 3300 that is produced by thetool 200 when theworkflow 600 depicted in FIG. 6 is created. Thename 3302 of the workflow, “Logic Branch Project,” is identified in theworkflow definition file 3300. Also, as shown in thedefinition file 3300, theworkflow 600 does not have aworkflow group 3304. Theelement 3306 in theworkflow definition file 3300 represents the “Get Parts”activity 606. Similarly, the element 3308 (FIG. 33C) represents the “L or Rt Handed?”logic activity 608, theelement 3310 represents the “Right”activity 610, theelement 3312 represents the “Left”activity 612, theelement 3314 represents the “Left Special”activity 614, and theelement 3316 represents the “Complete Assembly”activity 620. Thestart element 602 is represented by theelement 3318, and theend element 604 is represented by theelement 3320. - The next step performed by the
tool 200 is to receive an indication of the type of activity to be created for the workflow (step 2822 in FIG. 28B). As discussed above, the activity may be a standard activity or a logic activity. For example, theworkflow 3402 depicted in theuser interface 3400 of FIG. 34 includes fivestandard activities workflow 3402 also includes onelogic activity 3414. The selection of the type of activity may be made by clicking on the icon for a standard activity 3416 or the icon for thelogic activity 3418. Alternatively, any known data input technique, such as a pull-down menu or keyboard input, may be used to select the type of activity. - After receiving an indication of the type of activity, the
tool 200 receives the name of the activity (step 2824). The names of the activities depicted in theworkflow 3402 are included with the activity. Thus, the name ofactivity 3404 is “Assignment,” the name ofactivity 3406 is “Analysis,” etc. - Returning to the
example workflow 600 depicted in FIG. 6, the name of thefirst activity 606 is “Get Parts,” which is identified by theelement 3322 in theworkflow definition file 3300 of FIG. 33. Similarly, the name of thelogic activity 608 is “L or Rt Handed?,” which is identified by theelement 3324. The name of theactivity 610 is “Right,” as identified by theelement 3326. The name of theactivity 612 is “Left,” as identified by theelement 3328. The name of theactivity 614 is “Left Special,” as identified by theelement 3330. Finally, the name of theactivity 620 is “Complete Activity,” as identified by theelement 3332. - After receiving a name for the activity, the
tool 200 receives an indication of the role responsible for the activity (step 2826). As discussed above, the Client Interface (via Resource Manager Module 206) allows an enterprise affiliate to identify a role or role profile that may be assigned to an activity of the workflow. A role profile includes a Rolename that represents a “capability” or “skill set,” which is needed to perform a task of a plan created from the workflow, where the task corresponds to the activity of the workflow. For example, FIG. 35 depicts auser interface 3500 displayed by the Client Interface to receive a role profile. In the implementation shown in FIG. 35, the Client Interface receives a Rolename 3502 (e.g., “Project Manager”) for the role profile via the enterprise affiliate clicking on an “Add”button 3504 and then enteringRolename 3502 in adialog box 3506 that is displayed by the Client Interface. In another implementation, the Client Interface may also receive as additional entries (not shown) to dialog box 3506 a skill and an associated skill level forRolename 3502 as part of this role profile. For example, the enterprise affiliate may indicate to the Client Interface via the additional entries todialog box 3506 that theRolename 3502 of “Project Manager” be associated with a skill entitled “Object-oriented software programming” and with a skill strength of “7” on a scale of 10. Assuming an enterprise affiliate is developing a workflow for producing a software development tool, the enterprise affiliate may assign to activities in the workflow the “Project Manager” role profile with this skill and skill level. Thus, when a plan is created from this workflow, a resource having the appropriate skill and skill level will automatically be assigned by the Client Interface to tasks corresponding to the activities with the “Project Manager” role assignment. - The
tool 200 stores the role profiles in association with the selected workflow activity onWebDAV Storage 142. Thetool 200 saves significant costs in developing multiple workflows by allowing the enterprise affiliate to store the role profiles in association with the selected workflow activity onWebDAV Storage 142 so that the role profiles may be available for the enterprise affiliate to assign to an activity of another workflow that is also related to the selected workflow activity. In one implementation, the Client Interface stores the role profiles in a single role definition file (not shown) onWebDAV Storage 142. In another implementation, the Client Interface stores the role profiles in separate files (not shown) onWebDAV Storage 142. Each separate file has a name that is the same as the receivedRolename 3502. In this implementation, using known WebDAV protocol, the Client Interface defines an associated WebDAV property having a common name, such as “role profile,” so that the Client Interface may later retrieve the role profiles stored on WebDAV storage. - The role profiles may also be stored with the workflow definition file. As shown in the
workflow definition file 3300 depicted in FIG. 33, therole profile 3334 for the “Get Parts”activity 606 indicates that the role responsible for the activity is “Assembler” 3336. Similarly, therole profile 3338 for the “L or Rt Handed?”activity 608 indicates that the role responsible for the activity is “Assembler” 3340. Therole profile 3342 for the “Right”activity 610 indicates that the role responsible for the activity is “Assembler” 3344. Therole profile 3346 for the “Left”activity 612 indicates that the role responsible for the activity is “Assembler” 3348. Therole profile 3350 for the “Left Special”activity 614 indicates that the role responsible for the activity is “Assembler” 3352. Finally, therole profile 3354 for the “Complete Assembly”activity 620 indicates that the role responsible for the activity is “Assembler” 3356. - The next step performed by the
tool 200 is to determine whether the activity has any predecessor activities (step 2828). If the activity does have a predecessor activity, thetool 200 receives an indication of the predecessor activities from the workflow definition file (step 2830). After checking for any predecessor activities and/or receiving the predecessor activities, thetool 200 determines whether the activity has any successor activities (step 2832). If the activity has a successor activity, thetool 200 receives an indication of the successor activities from the workflow definition file (step 2834). In theuser interface 3400 of FIG. 34, the “Path”icon 3420 is used to connect the predecessor activity to the successor activity. For example, in theworkflow 3402, apath 3422 was drawn from the “Assignment”activity 3404 to the “Analysis”activity 3406. Thus, the “Assignment”activity 3404 is the predecessor activity to the “Analysis”activity 3406, and the “Analysis”activity 3406 is the successor activity to the “Assignment”activity 3404. Alternatively, a “Vertical For/Join”icon 3424 or a “Horizontal Fork/Join” activity may be used to connect more than one predecessor activities to a successor activity, or to connect a predecessor activity to more than one successor activities. - In the
workflow 600 depicted in FIG. 6, theactivity ID 3358 of the “Get Parts”activity 606 is “10. ” Thepredecessor 3360 to the “Get Parts”activity 606 has an ID of “11” 3362, which corresponds to thestart element 602. Thesuccessor 3364 to the “Get Parts”activity 606 has an ID of “1522” 3366, which corresponds to the “L or Rt Handed?”logic activity 608. Thepredecessor 3368 to the “L or Rt Handed?”logic activity 608 has an ID of “10” 3358, which corresponds to the “Get Parts”activity 606. Because the “L or Rt Handed?”activity 608 is a logic activity, it has both a default successor and a non-default successor. Thus, theworkflow definition file 3300 identifies two paths out of the “L or Rt Handed?”logic activity 608, onepath 3370 has an ID of “1525” 3372, which corresponds to the “Right”activity 610, and theother path 3374 has an ID of “1523” 3376, which corresponds to the “Left”activity 612. The element representing the “L or Rt Handed?”logic activity 608 also identifies that thedefault path 3378 has an ID of “1525” 3372, which corresponds to the “Right”activity 610. Thepredecessor 3380 to the “Right”activity 610 and thepredecessor 3382 to the “Left”activity 612 have an ID of “1522” 3366, which corresponds to the “L or Rt Handed?”logic activity 608. The remaining predecessor and successors follow this convention. - After checking for any successor activities and/or receiving the successor activities, the
tool 200 determines whether the activity has any on-entry scripts (step 2836). An on-entry script is a step to be performed by thetool 200 upon entry into the activity. For example, the on-entry script may be to send an email notifying a user about the activity. Another example of an on-entry script is to retrieve the status of an artifact that may be necessary to complete the activity. The on-entry script may also be a request sent to an enterprise affiliate to obtain data. If the activity has an on-entry script, thetool 200 receives an indication of the on-entry scripts (step 2838). After checking for any on-entry scripts and/or receiving the on-entry scripts, thetool 200 determines whether the activity has any on-exit scripts (step 2840 in FIG. 28C). An on-exit script is a step to be performed by thetool 200 before exiting the activity. For example, the on-exit script may be to send an email notifying a user about the end of an activity. If the activity has an on-exit script, thetool 200 receives an indication of the on-exit scripts (step 2842). For example, the “Complete Assembly”activity 620 depicted in FIG. 6 includes both an on-entry script 3384 as well as an on-exit script 3386. Upon entering the task created from the “Complete Assembly” activity, thetool 200 sends an email to the owner indicating that the “Debugging period started” 3388. Prior to exiting the task created from the “Complete Assembly” activity, thetool 200 sends an email to the owner indicating that the “Debugging finished” 3390. - After checking for any on-exit scripts and/or receiving the on-exit scripts, the
tool 200 determines whether the activity has any input conditions (step 2844). If the activity has an input condition, thetool 200 receives an indication of the input conditions (step 2846). After checking for any input conditions and/or receiving the input conditions, thetool 200 determines whether the activity has any output conditions (step 2848). If the activity has an output condition, thetool 200 receives an indication of the output conditions (step 2850). Theoutput condition 3391 for the “Get Parts”activity 606 has an ID of “1527” 3392 (FIG. 33B), and is a document-type condition, as indicated by the “linkable1”identity 3393 in theelement 3394 representing thecondition 3391. In general, based on thecondition 3391, the tool 200 (in particular, the Workflow Engine 222) monitors the state of an artifact for an activated “Get Parts” task created from the “Get Parts”activity 606 until the state of the artifact is the “INITIAL”state 3395 before thetool 200 continues with the next task in the plan. Similarly, theoutput condition 3396 for the “Right”activity 610 has an ID of “1533” 3397. Theoutput condition 3396 for the “Right”activity 610 is also a document-type condition, as indicated by the “linkable1”identity 3398. Thiscondition 3396 signals thetool 200 to monitor the state of an artifact until it is in the “RIGHT”state 3399. - FIG. 36 depicts an
exemplary user interface 3600 displayed by theClient Interface 134 to include either a document-oriented 3602 or a script (or logic)-oriented 3604 condition. As shown in FIG. 36, theClient Interface 134 may receive the request to add a condition to the activity via a pull-down menu selection 3606. The enterprise affiliate may, however, use any known data input technique to request that a condition be added to an activity, such as an icon or keyboard input, to indicate the request to theClient Interface 134. If the enterprise affiliate selects a document-oriented condition, the enterprise affiliate may be presented with theuser interface 3700 depicted in FIG. 37 to identify the properties of the condition to theClient Interface 134. Thecondition properties 3702 include condition-name property 3704 for the document-type condition model. In the example shown in FIG. 37, theClient Interface 134 receives the condition-name property 3704 via a keyboard input by the enterprise affiliate. TheClient Interface 134 uses the condition-name property 3704 to distinguish the condition model to be created from other condition models stored onWebDAV Storage 142. TheClient Interface 134 may store the document-type condition model file onWebDAV Storage 142 having the same name as the condition-name property 3704. In another implementation, theClient Interface 134 may store the condition-name property 3704 as a WebDAV property stored in association with the document-type condition model file onWebDAV Storage 142. - The
Client Interface 134 also receives a link-parameter property 3706 as one ofCondition properties 3702 for the document-type condition model to be created by the Client Interface. As shown in FIG. 37, the enterprise affiliate may identify link-parameter property 3706 to the Client Interface via keyboard input. Link-parameter property 3706 may be used by an enterprise affiliate in an activity-related script that is identified to the Client Interface during the creation of a workflow as described below. Thus, when executing the activity-related script in a task of a plan created from the workflow, theWorkflow Engine 222 in FIG. 2 is able to locate the corresponding document condition upon so that a corresponding input or output condition may be evaluated by theWorkflow Engine 222. - The
Client Interface 134 may also receive adescription property 3708 as one ofCondition properties 3702 for the document-type condition model to be created by the Client Interface. When creating a workflow as described below, the Client Interface may displaydescription property 3708 in association with condition-name property 3704 to allow an enterprise affiliate to effectively choose whether the document-type condition model should be assigned to an activity of the workflow. - The Client Interface may also receive one or more triggering-
event properties 3710 for the document-type condition model. In the example shown in FIG. 37, the Client Interface may receive the triggering-event properties as one of thecondition properties 3702 for the document-type condition model to be created by the Client Interface. Triggering-event properties 3710 indicate to theWorkflow Engine 222 when to check the state property of a document condition as an entry or exit condition of an activated task. Triggering-event properties 3710 may include a “Write into document”event 3712, a “Change property of document”event 3714, a “Put document into repository”event 3716, a “copy or move into document”event 3718, and a “delete document”event 3720. - Next, the
Client Interface 134 receivesdocument state properties 3722 as one of theCondition properties 3702 for the document-type condition model to be created by the Client Interface.Document state properties 3722 identify possible values for a state property of a document condition that is created using the document-type condition model. As further explained herein, an enterprise affiliate who has been identified as the responsible owner of an activated task may change the state property of a document condition (e.g., from “DRAFT” to “APPROVED”) using the Client Interface, which sends a request toWebDAV Server 140 in FIG. 2 to set the state property of the document condition as indicated by the enterprise affiliate.Workflow Engine 222 in FIG. 2 may then check the state property of the document condition onWebDAV Storage 142 when triggering-events 3710 occur. - The Client Interface also receives a
location property 3724 as one ofCondition properties 3702 identified by the enterprise affiliate for the document-type condition model.Location property 3724 is a unique identifier or URL for a document template that the Client Interface uses to create the document condition that is then stored by the Client Interface onWebDAV Storage 142.Location property 3724 may be a location onsecondary storage device 116 ofcomputer 102 a or a location onWebDAV Storage 142. As described in greater detail below, the document condition is created by theClient Interface 134 when a plan is instantiated or created from a workflow having an activity with an entry or exit condition created using the document-type condition model. Finally, the Client Interface receivesapplication property 3726 as one ofCondition properties 3702 identified by the enterprise affiliate for the document-type condition model.Application property 3726 is a unique identifier or URL for an application, such as Microsoft Word, that the Client Interface may run to create an instant of the document template that may be found at the location specified bylocation property 3724. The Client Interface uses the instant of the document template to create and store the document condition onWebDAV Storage 142. - FIG. 38 depicts an
exemplary user interface 3800 displayed by theClient Interface 134 to receive thecondition properties 3802 for a logic-type condition model that is to be created by theClient Interface 134. Thecondition properties 3802 include a condition-name property 3804 for the document-type condition model. In the example shown in FIG. 38, theClient Interface 134 receives the condition-name property 3804 via a keyboard input by the enterprise affiliate. TheClient Interface 134 uses the condition-name property 3804 to distinguish the logic-type condition model to be created from other condition models stored onWebDAV Storage 142. As described below, theClient Interface 134 stores a logic-type condition model file onWebDAV Storage 142 that has the same name as condition-name property 3804. In another implementation, theClient Interface 134 may also store condition-name property 3804 as a WebDAV property stored in association with the logic-type condition model file onWebDAV Storage 142. - In the example shown in FIG. 38, the
Client Interface 134 may receive adescription property 3806 as one of theCondition properties 3802 for the logic-type condition model to be created by theClient Interface 134. When creating a workflow as described below, theClient Interface 134 may display thedescription property 3806 in association with the condition-name property 3804 to allow an enterprise affiliate to effectively choose whether the logic-type condition model should be assigned to an activity of the workflow. - The
Client Interface 134 may also receive one or more triggering-event properties 3808 for the logic-type condition model as one of thecondition properties 3802 for the logic-type condition model to be created by theClient Interface 134. Triggering-event properties 3808 indicate to theWorkflow Engine 222 when to check an entry or exit condition of an activated task. Triggering-event properties 3808 include: an “Absolute time”event 3810, a “Period”event 3812, a “URL change”event 3814, a “Task change”event 3816, and “any http request”event 3818. “Absolute time”event 3810 identifies a trigger for a specific data and time from the start time of the activated task. “Period”event 3812 identifies a trigger for a specific unit of time, such as once every minute. “URL change”event 3814 identifies a trigger when the contents of the directory or folder located at the URL changes. “Task change”event 3816 identifies a trigger for any time the activated task definition file or associated property changes. For example, when an enterprise affiliate that is responsible for the task uses theClient Interface 134 to identify that the task is complete, theClient Interface 134 in response sends a request to theWebDAV Server 140 to set the status property of the activated task to “FINISHED.” As part of the processing for managing an activated plan as described below, theWorkflow Engine 222 will receive this request before theWebDAV Server 140 and interpret the request as an example of a “Task change”event 3816. Similarly, “Any http request”event 3818 indicates to theWorkflow Engine 222 to check the entry or exit condition of the activated task when any request is received from theClient Interface 134 that pertains to the activated task. For example, theClient Interface 134 may send a request to theWebDAV Server 140 to retrieve the activated task file so that a status of the activated task can be viewed by an enterprise affiliate.Workflow Engine 222 will receive this request before theWebDAV Server 140 and interpret the request as an example of an “Any http request”event 3818. - The
Client Interface 134 may also receive a script 3820 as one of thecondition properties 3802 for the logic-type condition model to be created by theClient Interface 134. Script 3820 is executed by theWorkflow Engine 222 when a triggering-event occurs that corresponds to one of the triggering-event properties 3808 selected by the enterprise user using theClient Interface 134. As shown in FIG. 38, Script 3820 may include ascript parameter 3822, ascript value 3824 forscript parameter 3822, andscript content 3826 that may use thescript parameter 3822 initialized to thescript value 3824. The enterprise affiliate may provide thescript content 3826 to theClient Interface 134 via a ScriptEditor User Interface 3900 in FIG. 39. ScriptEditor User Interface 3900 is displayed by theClient Interface 134 when the enterprise affiliate actuatesbutton 3828 onuser interface 3800 shown in FIG. 38. Script content 3820 may contain any known application program interface (API) script method that would be recognizable by the target processor interpreter oncomputer 106, such as Java™Virtual Machine 150 in FIG. 1. - After checking for any output conditions and/or receiving the output conditions, the
tool 200 determines whether there are any more activities to add to the workflow (step 2852). If there are more activities, the process continues atstep 2822 for the next activity. If there are no more activities to add to the workflow, thetool 200 receives an indication of the starting point for the workflow (step 2854). Next, thetool 200 receives an indication of the ending point for the workflow (step 2856) before the process ends. - FIG. 40 depicts an
exemplary user interface 4000 displayed by theClient Interface 134 to receive the properties of an activity of a workflow. As depicted, thename 4002 of the activity (e.g., “Specs Development”), theduration 4004 of the activity (e.g., 1 unit) and therole 4006 responsible for the activity may be entered by the enterprise affiliate responsible for creating or modifying the workflow. In addition, the enterprise affiliate may enter an on-entry scrip 4008 as well as an on-exit script 4010. The properties of the activity also include thelocation 4012 of the subprocess defining the activity if the activity consists of a workflow. - FIGS.41A-B depict a flow diagram illustrating the process of creating a plan from a workflow, i.e.,
step 306 in FIG. 3. At this point, the enterprise affiliate has already selected the workflow that will be used to create the plan. Initially, thetool 200 receives an indication of the plan name (step 4102). In selecting the plan name, theClient Interface 134 allows the enterprise affiliate to store the project plan within an identified project plan group so that any enterprise affiliate using theClient Interface 134 is able to easily identify related project plans. A process plan group is a collection of project plans (e.g., a directory or folder containing the collection of project plans) created by theClient Interface 134 onWebDAV Storage 142. For example, the software-related project plans may be stored within the same project plan group so that an enterprise affiliate is able to quickly locate a desired project plan in order to create a corresponding plan using theClient Interface 134. One skilled in the art will appreciate thatClient Interface 134 may store a project plan onWebDAV Storage 142 without associating the project plan with a project plan group. FIG. 42 depicts anexemplary user interface 4200 used to receive a project plan group. - In the implementation shown in FIG. 42, the
Client Interface 134 receives adialog box 4202 to enter the name of a new project plan group 4204 (e.g., “Software Projects”) after clicking on a “Create Group”button 4206. Alternatively, if the enterprise affiliate decides to select an existing project plan group, thetool 200 provides the enterprise affiliate with alist 4300 of available project groups from which the enterprise affiliate may choose, as depicted in FIG. 43. Thetool 200 then provides the enterprise affiliate with adialog box 4400 to enter thename 4402 of the project, as shown in FIG. 44. - The next step performed by the
tool 200 is to receive an indication of the working hours (step 4104). FIG. 45 depicts anexemplary timetable 4500 which the enterprise affiliate may use to identify the timetable defining a workday. As shown, the enterprise affiliate may select atimetable template 4502 with predefined working hours. TheStandard Timetable 4504 includes five Working Days 4506 (Monday through Friday) and WorkingHours 4508 from 8 a.m. (4510) through 1 p.m. (4512) and from 2 p.m. (4514) until 5 p.m. (4516). Alternatively, the enterprise affiliate may select a 24Hour Timetable 4518 or anIntensive Timetable 4520, i.e., more than theStandard Timetable 4504, but less than the 24Hour Timetable 4518. Thetool 200 also receives an indication of the start date and time for the project plan (step 4106). Anexemplary dialog box 4600 may be used to select the start date andtime 4602 and end date andtime 4604. - The
tool 200 then retrieves an activity from the workflow (step 4108). Thetool 200 sets the start time of the task equal to the start date and time of the project plan (step 4110). Next, thetool 200 sets the end time of the task based on the start time of the task, the duration of the activity from which the task is based, and on the working hours (step 4112 in FIG. 41B). Thetool 200 then receives an indication of the resource assigned to the task (step 4114). - For example, FIG. 47 depicts an exemplary
workflow definition file 4700 that is produced by thetool 200 when theworkflow 500 depicted in FIG. 5 is created. FIG. 48 depicts an exemplary projectplan definition file 4800 created from theworkflow definition file 4700. Theelement 4702 in theworkflow definition file 4700 represents the “Serial 1”activity 506. As shown, the “Serial 1”activity 506 has aduration 4704 of 9 hours. If the working hours are determined based on the “24 Hour Timetable” 4818 and the start date and time for the project plan is 9 a.m. on Aug. 1, 2001, thestart time 4804 for the “Serial 1”task 4802 is 9 a.m. on Aug. 1, 2001. Theend time 4806 of thetask 4802 occurs 9 hours later, i.e., at 6 p.m. on Aug. 1, 2001. - FIG. 49 depicts an
exemplary user interface 4900 displayed by theClient Interface 134 to assign users or resources to roles. Thetool 200 displays a list of available users orresources 4902 and a list of theroles 4904 in a given workflow. In this embodiment, the enterprise affiliate is allowed to selectively add or remove available resources to a role by highlighting the resource and selecting either the “Add”button 4906 or the “Remove”button 4908, respectively. Alternatively, the enterprise affiliate may add or remove the resources to a role by selecting the “Add all”button 4910 or the “Remove all” 4912 button, respectively. Thus, the enterprise affiliate may identify to thetool 200 resources that are capable of performing the role when assigned to a task in the plan. As discussed below, thetool 200 may automatically assign a resource to a role of a task in the plan based on the identified, capable resources for the role. - The properties of an activity may be modified using the
exemplary user interface 5000 depicted in FIG. 50. Theuser interface 5000 displays thename 5002 of the activity, theduration 5004 assigned to the corresponding activity, the start date andtime 5006 for the activity, the end date andtime 5008 for the activity, theresponsible role 5010 assigned to the corresponding activity, the responsible resource oruser 5012 assigned to the task, theowners 5014 of the task, thepriority 5016 of the task, the on-entry script 5018 of the task, and the on-exit script 5020 of the task. Theresponsible resource 5012 of the task is the resource with the authority to notify thetool 200 when the task is complete. The owner(s) 5014 of the task, on the other hand, are notified when the task is started or completed, but do not have the authority to modify thetool 200 when the task is complete. - The next step performed by the
tool 200 is to determine whether there are any more activities in the workflow (step 4116). If there are no more activities, the process ends. If there are more activities, thetool 200 retrieves the next activity (step 4118). Thetool 200 then sets the start time of the task equal to the end time of the predecessor task (step 4120). The process then continues atstep 4112. - The next activities that are retrieved by the
tool 200 are “Parallel 1” 510 and “Parallel 2” 512.Element 4706 andelement 4708 in theworkflow definition file 4700 represent theseactivities durations start time tasks end time 4806 of the predecessor task, i.e., 6 p.m. on Aug. 1, 2001. Because theduration activities end times tasks tool 200 is “Serial 2” 508. Theelement 4714 in theworkflow definition file 4700 represents this activity. Theduration 4716 of the “Serial 2”activity 508 is 24 hours. Thestart time 4822 of thetask 4820 created from the “Serial 2”activity 508 is theend time duration 4716 of the “Serial 1” activity is 24 hours, theend time 4824 of thetask 4820 is 6 p.m. on Aug. 3, 2001. The project plan is displayed in theGantt chart 5100 depicted in FIG. 51. As shown, the “Serial 1”task 5102 is scheduled to execute from 9 a.m. 5104 on Aug. 1, 2001 (5106) through 6 p.m. 5108 on the same day. The “Parallel 1”task 5110 and the “Parallel 2”task 5112 are scheduled to execute from 6 p.m. 5108 on Aug. 1, 2001 (5106) through 6 p.m. 5114 on Aug. 2, 2001 (5116). Finally, the “Serial 1”task 5118 is scheduled to execute from 6 p.m. 5114 on Aug. 2, 2001 (5116) through 6 p.m. 5120 on Aug. 3, 2001 (5122). Note that an enterprise affiliate using theClient Interface 134 on thecomputer 102 a may create a plan from theworkflow 600 at the same time that a second enterprise affiliate using theClient Interface 134 oncomputer 102 n creates a second plan from theworkflow 600. - After the project plan is created from the workflow, the plan may be activated. As depicted in FIG. 52, the enterprise affiliate may activate the project by selecting the “Activate Project”
option 5202 from the pull-down menu 5200. The enterprise affiliate may, however, use any known data input technique, such as an icon or keyboard input, to indicate the request toClient Interface 134. - In one implementation, the
Client Interface 134 then sends an activate request to theWebDAV server 140 to change the status of the plan definition file to “Active.” As discussed further below, theWorkflow Engine 222 may intercept this request and process the request in preparation for managing the execution of the activated plan. Once the plan is created and stored onWebDAV storage 142, any enterprise affiliate with access privileges may activate the plan using theClient Interface 134 from anycomputer - FIG. 53 depicts a flow diagram illustrating an exemplary process performed by the
Client Interface 134 to add a new resource to the list of available resources. TheClient Interface 134 may later assign the resource to a plan in accordance with methods and systems consistent with the present invention. Initially, theClient Interface 134 receives a request to add a new resource (step 5302). As shown in FIG. 54, theClient Interface 134 may receive the request to add a new resource via a pull-down menu selection Client Interface 134. - Next, the
Client Interface 134 determines whether the request is to import the resource information (step 5304). In the implementation shown in FIG. 54, an enterprise affiliate requests that theClient Interface 134 import a resource profile containing the resource information by choosing the pull-down menu selection 5404. Alternatively, the enterprise affiliate may request that theClient Interface 134 create the resource profile from resource information that the enterprise affiliate provides to theClient Interface 134. Thus, if the request is not to import the resource information, theClient Interface 134 receives the resource information from the enterprise affiliate (step 5306). As shown in FIG. 54, theClient Interface 134 may receiveresource information 5404 for an enterprise affiliate (e.g., a user or person) that may later be assigned to a plan by theClient Interface 134 in accordance with processes described in greater detail below. TheResource Information 5404 may include alogin name 5408, aresource name 5410 that theClient Interface 134 is to use when assigning the resource to a task of a plan, and ane-mail address 5412 that theClient Interface 134 or theWorkflow Engine 222 may use to notify the resource of an assignment or another event. - The
Client Interface 134 may also receive other resource information (not shown) for other types of resources (e.g., equipment, facilities, computer systems, or other known entities) that may be assigned to any task of a plan. The other resource information may include: a resource name that theClient Interface 134 is to use when assigning the resource to a task of a plan; a resource owner name that identifies a manager or other enterprise affiliate who is responsible for the named resource; and an e-mail address for the named resource owner, which theClient Interface 134 or theWorkflow Engine 222 may notify when the named resource is assigned to a task or for another associated event. -
Resource information 5404 may also include one or more skill identifiers that indicate one or more capabilities that a task of a plan may require for the task to be completed. Skill identifiers may include any foreseeable skill for the named resource, including a user, equipment, facilities, computer systems, or other known entities that may be assigned to any task of a plan. For example, when the named resource is an enterprise affiliate, the skill identifiers that may be identified for the enterprise affiliate may include: “Java programming,” “architecture,” or “carpentry.” When the named resource is equipment, the skill identifiers may include “punch-press” or “Windows NT Operating System.”Resource information 5404 may also include a skill strength (not shown) for each skill identifier. The skill strength may be used by the tool to differentiate one resource from another resource when matching a resource to a role of a task in a plan. -
Resource information 5404 may also include an availability timetable (not shown) that indicates to theClient Interface 134 the calendar days, the hours in a weekday, and the hours in a weekend day that the named resource is available to work.Resource information 5404 may also include an assignment timetable (not shown) that has assigned calendar days. The assigned calendar days indicate to theClient Interface 134 which calendar days the named resource has been assigned to one or more tasks. In addition, the assignment timetable may include unique identifiers or URLs for the one or more tasks to which the named resource has been assigned. Thus, theClient Interface 134 or theWorkflow Engine 222 may access the one or more tasks that the named resource has been assigned when performing processing for resource leveling of a plan in accordance with methods and systems consistent with the present invention. - If the request is to import the resource information, the
Client Interface 134 receives access information for a “Lightweight Directory Access Protocol (LDAP)” resource directory entry (e.g., a resource profile) on thenetwork 108 of FIG. 1 (step 5308). FIG. 55 depicts anexemplary user interface 5500showing access information 5502 received by theClient Interface 134.Access information 5502 includes an LDAP Server 5504 (e.g., “Frodo”) on thenetwork 108, anLDAP Port 5506 for theClient Interface 134 to communicate with theLDAP Server 5504, and a resource distinguished name (DN) 5508 identifying the location onLDAP Server 5504 where the resource profile may be found. Theaccess information 5502 may be default access information that theClient Interface 134 retrieves from a configuration file (not shown) on thecomputer 102 a, or it may be access information entered by an enterprise affiliate. In the implementation illustrated in FIG. 55, theaccess information 5502 may also include: a security distinguished name (DN) 5510, apassword 5512, and alogin alias 5514.Security DN 5510 identifies to theClient Interface 134 where a security profile for the enterprise affiliate is located. TheClient Interface 134 uses thepassword 5512 and thelogin alias 5514 to access the resource information on theLDAP Server 5504 in accordance with privileges identified in the security profile. - Having received the access information for the LDAP directory entry on
network 108, theClient Interface 134 retrieves the resource information using the LDAP access information (step 5310). The resource information that theClient Interface 134 retrieves includes resource profiles for a user, equipment, facilities, computer systems, or other known entities that may be assigned to any task of a plan. - After the resource information is received from the enterprise affiliate or is retrieved using LDAP access information, the
Client Interface 134 stores the resource information in resource profiles on the WebDAV Storage 142 (step 5312). - FIG. 56 depicts an
exemplary resource file 5600 that theClient Interface 134 may use to storeresource profiles WebDAV Storage 142. As shown in FIG. 56, theresource profile 5600 includes a unique identifier orURL 5612 where theresource profile 5600 is to be stored on theWebDAV Storage 142. Eachresource profile Client Interface 134 onWebDAV Storage 142. In the implementation shown in FIG. 56, theresource profile 5602 includesresource information 5610 that corresponds to an enterprise affiliate that may be assigned to a task of a plan. In another implementation, theresource information 5610 may be added as properties rather than as the content of theresource profile 5602 onWebDAV Storage 142. This implementation may be advantageous as theClient Interface 134 or theWorkflow Engine 222 may use a known WebDAV method to retrieve resource profiles from theWebDAV Storage 142 that have the same property. For example, the WebDAV “PropFind” method may be used by theClient Interface 134 or theWorkflow Engine 222 to retrieve the resource profiles having a skill identifier of “Java Programming” so that an available resource having this skill can be assigned to a task in accordance with processes described below. - FIG. 57 depicts a flow diagram illustrating an exemplary process performed by the
Workflow Engine 222 to manage the execution of an activated plan. TheWorkflow Engine 222 may execute the process in FIG. 57 for each activated plan stored onWebDAV Storage 142. Thus, the tool manages the execution of multiple plans simultaneously. - Initially, the
tool 200 waits until the current time and date are later than the start time and date (step 5702). Note that theWorkflow Engine 222 may first retrieve the plan from WebDAV storage. At this point, thetool 200 selects a task from the activated project plan created from a workflow (step 5704). Next, thetool 200 determines whether there is an input condition (step 5706). If there is an input condition, thetool 200 waits until the input condition is met (step 5708). After the input condition is met or if there is no input condition, thetool 200 stores the actual start time (step 5710). The next step performed by thetool 200 is to determine whether there is an on-entry script to execute, such as a message to send to the resource (step 5712 in FIG. 57B). If there is an on-entry script, thetool 200 performs the on-entry script (step 5714). After performing the on-entry script or if there is no on-entry script, thetool 200 determines whether there is an output condition (step 5716). If there is an output condition, thetool 200 waits until the output condition is met (step 5718). After the output condition is met or if there is no output condition, thetool 200 determines whether there is an on-exit script (step 5720). If there is an on-exit script, thetool 200 performs the on-exit script (step 5722). After performing the on-exit script or if there is no on-exit script, thetool 200 stores the actual end time (step 5724). Then thetool 200 determines whether there are any more tasks in the project plan (step 5726). If there are no more tasks, the process ends. Otherwise, the process returns to step 5704 and selects the next task. - The
plan 5800 created from theworkflow 500 depicted in FIG. 5 is shown in FIG. 58. As shown in FIG. 58, “Serial 1”task 5802 is scheduled to begin at 9 a.m. 5804 on Aug. 1, 2001 (5806) and end at 6 p.m. 5808 on the same day. Theparallel tasks task 5808, and are scheduled to end at 6 p.m. 5814 on Aug. 2, 2001 (5816). The “Serial 2”task 5818 is scheduled to begin upon completion of theparallel tasks 5814 and is scheduled to end at 6 p.m. 5820 on Aug. 3, 2001 (5822). FIG. 59 depicts an exemplary projectplan definition file 5900 corresponding to theplan 5800 of FIG. 58. - Upon activation, the “Serial1”
task 6002 begins execution, as depicted by thetask 6004 in theGantt chart 6000 of FIG. 60. Contrary to the plan, however, the “Serial 1” task ends earlier than planned. As depicted in FIG. 61, theactual properties 6100 of the “Serial 1”task 6102 include the actual-start-date 6104 (i.e., year-2001 month-8 day-1hour-9) and actual-finish-date 6106 (i.e., year-2001 month-8 day-1 hour-14, i.e., 2 p.m.). Theactual execution 6204 of the “Serial 1”task 6202 is shown in theGantt chart 6200 of FIG. 62. - Because the “Serial1”
task 6202 ended earlier than planned, both the “Parallel 1”task 6206 and the “Parallel 2”task 6208 begin execution at 2 p.m. 6210 rather than waiting until their scheduled start time of 6 p.m. Theearlier execution tasks Gantt chart 6200. As depicted in FIG. 63, theactual properties 6300 of the “Parallel 1”task 6302 and the “Parallel 2”task 6304 include the actual-start-date 6306 (i.e., year-2001 month-8 day-1 hour-14) and actual-finish-date 6308 (i.e., year-2001 month-8 day-2 hour-0). Theactual execution Parallel 1”task 6402 and the “Parallel 2”task 6404 is shown in theGantt chart 6400 of FIG. 64. TheGantt chart 6400 also visually indicates that the start time 6410 for thetasks end time 6412 for thetasks - Finally, the execution of the “Serial2”
task 6414 begins at 12 a.m. on Aug. 2, 2001 (6412). As depicted in FIG. 65, theactual properties 6500 of the “Serial 2”task 6502 includes the actual-start-date 6504 (i.e., year-2001 month-8 day-2 hour-0) and actual-finish-date 6506 (i.e., year-2001 month-8 day-2 hour-12). Theactual execution 6604 of the “Serial 1”task 6602, theactual execution 6608 of the “Parallel 1”task 6606, theactual execution 6612 of the “Parallel 2”task 6610, and theactual execution 6616 of the “Serial 2”task 6614, are shown in theGantt chart 6600 of FIG. 66. - In addition to the functionality described above, the integrated process modeling and project planning tool Client Interface saves an enterprise significant development costs and increases its operating efficiency by improving profiles of resources associated with a workflow based on data mined from plans created from the workflow. By improving the profiles of the resources, the Client Interface is able to optimize the automatic assignment or allocation of the resources to tasks of a plan when the plan is created from the workflow. The data mined by the Client Interface includes a task found in each plan that has an auto-assigned resource and has a replacement resource. The auto-assigned resource is a resource that the Client Interface automatically assigned to handle a role of the task when the Client Interface created the task from an activity of the workflow. The replacement resource is another resource that was manually assigned by an enterprise affiliate to replace the auto-assigned resource in handling the role of the task. The Client Interface improves a profile associated with the auto-assigned resource by removing a skill or decreasing a strength of the skill in the profile, where the skill is associated with the role of the mined task. The Client Interface improves a profile associated with the replacement resource by adding a skill or increasing a strength of the skill in the profile, where the skill is also associated with the role of the mined task. Thus, by improving the profiles for the auto-assigned resource and the replacement resource, the Client Interface is able to more effectively automatically allocate resources to plans that are subsequently created from the workflow by the enterprise affiliate, saving the enterprise affiliate time and effort needed to manually override any resources that were not optimally automatically assigned.
- FIGS. 67A through 67E depict a flowchart illustrating an exemplary process performed by the Client Interface to improve a profile of any resource that has been previously assigned to a role of a task in a plan created from a workflow. Initially, the Client Interface receives an indication to improve a profile of any resource associated with any role of a workflow (Step6702). In one implementation, the Client Interface first receives an indication to improve a profile of any resource associated with any role of a workflow when prompted by an enterprise affiliate to optimize the allocation of resources to plans created from the workflow. The enterprise affiliate may prompt the Client Interface to optimize resource allocation via any known data input technique, such as clicking a mouse on a button of a user interface (not shown) displayed by the Client Interface. In this implementation, the Client Interface may respond by retrieving and displaying the identifications of all the workflow definition files stored on
WebDAV Storage 142 of FIG. 2. The enterprise affiliate may then identify one of the displayed workflow definition files to the Client Interface by clicking the mouse on the displayed identification corresponding to the one workflow definition file. - For clarification in the discussion to follow, when performing
step 6702 of FIG. 67A, it is assumed that the enterprise affiliate has prompted the Client Interface to optimize resource allocation for plans created from the workflow identified as “AssemblyWorkflow.” FIG. 68 depicts an excerpt of an exemplaryworkflow definition file 6800 for the identified “AssemblyWorkflow” 6802 as created and stored by the Client Interface in response to performing the process depicted in FIG. 3. FIG. 69 depicts an exemplary graphical representation ofworkflow definition file 6800 as displayed by the Client Interface when performing the process depicted in FIG. 3 to create the workflow or after retrieving the workflow fromWebDAV Storage 142 in response to a request by enterprise affiliate to view the workflow. “AssemblyWorkflow” may have been designed by an enterprise affiliate using the Client Interface to define a workflow for developing a video game controller or a baseball mitt where both a left- or right-handed product may be assembled using a plan created from the workflow. - As shown in FIGS. 68 and 69, the workflow includes a “Get Parts” activity (6804 in FIG. 68 and graphically depicted as 6904 in FIG. 69), a “Get Fasteners” activity (6806 and 6906), a “L Or Rt Handed?” logic activity (6808 and 6908), a “Left” activity (6910 and 6912), a “Left Special” activity (6812 and 6912), a “Right” activity (6814 and 6914), and a “Complete Assembly” activity (6816 and 6916). “L Or Rt Handed?”
logic activity 6808 has an outgoing default-path 6838 (graphically depicted as asolid line 6918 in FIG. 69) that includes “Left”activity 6810 and “Left Special”activity 6812. “L Or Rt Handed?”logic activity 6808 has an outgoing non-default-path (graphically depicted as a dashedline 6920 in FIG. 69) that includes “Right”activity 6814. - Each
activity responsible role responsible roles responsible roles responsible role 6830. - When the Client Interface creates a plan from
workflow definition file 6800, the Client Interface creates tasks for the plan fromactivities workflow definition file 6800. The Client Interface also automatically assigns a resource to a role for each task based on a resource allocation process, such as matching a role having a skill and a corresponding skill strength to a resource having the same skill and the same or greater skill strength. Thus, when performing the resource allocation process, the Client Interface examines whether a resource has one or more skills that indicate one or more capabilities that a task of a plan may require for the task to be completed. As discussed in greater detail below, to perform the resource allocation process, the Client Interface accesses a profile for the role to identify the skill and the corresponding skill strength for the role (i.e., capabilities that a task of a plan may require) and accesses a resource profile for the resource to identify if the resource has the same skill and the same or greater skill strength (i.e., same or greater capabilities than the task of the plan requires). - Continuing with FIG. 67A, after receiving an indication to improve a profile of any resource associated with any role of a workflow, the Client Interface identifies each resource associated with each role of the workflow (Step6703). In one implementation, the Client Interface identifies each resource associated with each role of the workflow identified as “AssemblyWorkflow” by accessing a workflow roles file 7000, shown in FIG. 70, that is stored on
WebDAV Storage 142. To access workflow roles file 7000, the Client Interface associates anidentification 6802 for “AssemblyWorkflow”definition file 6800 to anidentification 7002 of workflow roles file 7000. In another implementation, workflow roles file 7000 has alink 7004 to “AssemblyWorkflow”definition file 6800 to allow the Client Interface to associate workflow roles file 7000 with “AssemblyWorkflow”definition file 6800. - Workflow roles file7000 has
role profiles role 7012, “Assembler”role 7014, and “Master Assembler”role 7016. The Client Interface is able to identify that “Gopher”role 7012, “Assembler”role 7014, and “Master Assembler”role 7016 correspond toroles 6832 in FIG. 68, 6834, and 6836 associated with “AssemblyWorkflow”definition file 6800. Eachrole profile set role profile corresponding list list role 6832 in “Get Parts”activity 6804 have a skill or a skill strength that is different from “Gopher”role profile 7006 in FIG. 70 or that is different from “Gopher”role 6832 of “Get Fasteners”activity 6806 as shown below:<activity id=“10” name=“Get Parts” responsiblerole=“Gopher” skillref=“1” strength=“8” skillref=“2” strength=“5” optimize=“yes” minplans=“5” max-percentage“10”> * * <activity id=“55” name=“Get Fasteners” responsiblerole=“Gopher” “skillref=“2” strength=“6” optimize=“yes” minplans=“5” max-percentage=“10”> - When the Client Interface identifies that the skill or the skill strength for “Gopher”
role 6832 in “Get Parts”activity 6804 is different fromskill set 7018 in “Gopher”role profile 7006 in FIG. 70, the Client Interface uses the different skill or the different skill strength for “Gopher”role 6832 in lieu ofskill set 7018 to perform methods consistent with the present invention. - For example, FIG. 71 depicts an
exemplary resource file 7100 created by the Client Interface to storeresource profiles resource profile set resource profile link stores resource file 7100 onWebDAV Storage 142. In another implementation, the Client Interface storesresource profiles WebDAV Storage 142. - FIG. 72 depicts an exemplary skills file7200 created by the Client Interface to
store skills Skills skill set 7018 in FIG. 70, 7020, and 7022 identified inrole profiles skill set 7114 in FIG. 71, 7116, and 7118 identified inresource profiles skills skill set 7018 for “Gopher”role profile 7006 has askill 7028 that corresponds to “enterprise procurement logistics”skill 7202 and has askill 7030 that corresponds to “Chicago plant receiving logistics”skill 7204 in skills file 7200. The Client Interface is also able to identify thatskill set 7020 for “Assembler”role profile 7008 has askill 7032 that corresponds to “electrostatic discharge training”skill 7206, askill 7034 that corresponds to “electrical schematic reading”skill 7208, and askill 7036 that corresponds to “soldering”skill 7210 in skills file 7200. In addition, the Client Interface is able to identify thatskill set 7114 for “Mister Assembler”resource profile 7102 has skills 7126, 7128, 7130, 7132, and 7134 that correspond to “enterprise procurement logistics”skill 7202, “Chicago plant receiving logistics”skill 7204, “electrostatic discharge training”skill 7206, “electrical schematic reading”skill 7029, and “soldering”skill 7210 in skills file 7200. Moreover, the Client Interface is able to identify that skills 7126 and 7128 for “Mister Assembler”resource profile 7102 have corresponding skill strengths that match or exceed skill strengths corresponding toskills resource profile 7102 have corresponding skill strengths that match or exceed skill strengths corresponding toskills resource 7108 to be associated with or handle both “Gopher”role 7012 and “Assembler”role 7014 in a plan created from “AssemblyWorkflow”definition file 6800 in FIG. 68. - To identify each resource associated with each role of “AssemblyWorkflow,” the Client Interface first identifies that
capable resource list 7024 in FIG. 70 associated with “Gopher”role 7012 has unique identifiers 7038 and 7040 that corresponds to “Mister Assembler”resource 7108 in FIG. 71 and to “Mister Gopher”resource 7110, respectively. The Client Interface further identifies thatcapable resource list 7026 in FIG. 70 associated with “Assembler”role 7014 has unique identifiers 7038 and 7042 that correspond to “Mister Assembler”resource 7108 in FIG. 71 and to “Mister Build”resource 7112, respectively. In addition, the Client Interface identifies thatcapable resource list 7028 in FIG. 70 for “Master Assembler” has a unique identifier 7042 that corresponds to “Mister Build”resource 7112. - After identifying each resource associated with each role of the workflow, the Client Interface receives a maximum percentage of manual assignments for each resource associated with each role of the workflow (Step6704). Next, the Client Interface receives a maximum percentage of override assignments for each resource (Step 6706). Each maximum percentage of manual assignments reflects the number of times that the Client Interface should find the resource has been manually assigned to a role of a task within the number of plans that are mined by the Client Interface before the Client Interface notifies the enterprise affiliate of a suggestion to improve the resource. Each maximum percentage of override assignments reflects the number of times that the Client Interface should find the resource was automatically assigned by the Client Interface to a role of a task and then replaced by another manually assigned resource within the number of plans that are mined by the Client Interface before the Client Interface notifies the enterprise affiliate of a suggestion to improve the resource. Thus, each maximum percentage of manual assignments and each maximum percentage of override assignments for each resource represents a threshold before the Client Interface modifies the skill or the skill strength of the resource to improve automatic resource allocation by the Client Interface.
- In one implementation, the enterprise affiliate identifies to the Client Interface each maximum percentage of manual assignments and each maximum percentage of override assignments for each resource via the same user interface (not shown) that the enterprise affiliate used to initiate the request to optimize the resource allocation. In another implementation, the enterprise affiliate identifies to the Client Interface each maximum percentage of manual assignments and each maximum percentage of override assignments for each resource for each resource via a user interface (not shown) displayed by the Client Interface for receiving resource identification, resource skills, and corresponding skill strengths. In this implementation, the Client Interface stores each maximum percentage of manual assignments and each maximum percentage of override assignments in the resource profile for each resource. In the example shown in FIG. 71, the Client Interface has received and stored a value of twenty percent (20%) for maximum percentage of
manual assignments role profiles role profiles - After receiving a maximum percentage of override assignments and a maximum percentage of manual assignments for each resource, the Client Interface sets an auto-assignment override counter for each resource associated to zero (Step6708). The Client Interface uses the auto-assignment override counter for each resource to track how many times the Client Interface identified that the resource had been replaced by another resource that was manually assigned by an enterprise affiliate. The Client Interface also sets a manual-assignment counter for each resource to zero (Step 6710). The Client Interface uses the manual-assignment counter for each resource to track how many times the Client Interface identified that the resource had been manually assigned by an enterprise affiliate. Continuing with the above example, the Client Interface sets an auto-assignment override counter and a manual-assignment counter for “Mister Assembler”
resource 7108 in FIG. 71, for “Mister Gopher”resource 7110, and for “Mister Build”resource 7112. - Next, the Client Interface sets a plan counter to zero (Step6712). The Client Interface uses the plan counter to track the number of plans checked.
- After setting a plan counter to zero, the Client Interface retrieves a plan created from the workflow (Step6714). To retrieve the plan created from the workflow, the Client Interface uses known WebDAV protocol methods to parse each plan definition file stored on
WebDAV Storage 142 in FIG. 2 to find a plan that has a link or URL to the workflow definition file to be optimized by the Client Interface. For example, FIGS. 73A-C depict an excerpt of an exemplaryplan definition file 7300 that has a link 7302 in FIG. 73B to “AssemblyWorkflow”definition file 6800 shown in FIG. 68. In this example, to find link 7302, the Client Interface may parseplan definition file 7300 for atask 7340 having a unique identifier set to “NONE” 7304 and having acaption 7306 that is set to the same value as aname 7308 for the plan. Thus, the Client Interface is able to find and recognize that link 7302 matches the location of the workflow that the enterprise affiliate has requested to be optimized and retrieves theplan definition file 7300 for further processing. - In another implementation, the Client Interface may retrieve a plan created from the workflow by using known WebDAV protocol methods, such as “PROPFIND,” to retrieve all plans on
WebDAV Storage 142 that have a common WebDAV property set to the link or URL forworkflow definition file 6800 in FIG. 68. For example, the Client Interface may retrieve all plans having a WebDAV property named “PROJECT” that is set to link 7302 or “http://localhost:8080/webdav/ProcessGroup2/AssemblyWorkflow.xml.” In this implementation, when the Client Interface performs the process in FIG. 3 to create each plan fromworkflow definition file 6800, the Client Interface also creates the WebDAV property named “PROJECT” for each plan definition file and then sets the “PROJECT” property to the URL ofworkflow definition file 6800. The Client Interface may, however, create the WebDAV property of the plan for storing the URL to the workflow definition file with a name other than “PROJECT.” - After retrieving the plan created from the workflow, the Client Interface increments the plan counter (
Step 6716 in FIG. 67B). Next, the Client Interface retrieves a task of the plan (Step 6718). In the example shown in FIGS. 73A-C, the Client Interface may retrieve a task of the plan by parsingplan definition file 7300 to identify a “Get Parts”task 7310 as shown in FIG. 73A. - After retrieving a task of the plan, the Client Interface determines if a resource was manually assigned to a role of the task (Step6720). In the example shown in FIG. 73A, to determine if a “MG” resource 7312 (i.e., “Mister Gopher”
resource 7110 in FIG. 71) was manually assigned to a “Gopher”role 7314 for “Get Parts”task 7310, the Client Interface retrieves a resource-assignment property 7316 from “Get Parts”task 7310 to identify if the resource-assignment property 7316 is set to “Manual” or “Auto.” The Client Interface recognizes that resource-assignment property 7316 is set to “Manual,” indicating that “Gopher”role 7314 for “Get Parts”task 7310 has been manually assigned by an enterprise affiliate and another earlier version ofplan definition file 7300 is stored onWebDAV Storage 142. - FIG. 74 depicts an excerpt of another exemplary
plan definition file 7400 created by the Client Interface from “AssemblyWorkflow”definition file 6800 in FIG. 68, whereplan definition file 7400 is an earlier version ofplan definition file 7300. When the Client Interface retrievesplan definition file 7400, the Client Interface is able to confirm thatplan definition file 7400 is an earlier version ofplan definition file 7300 by identifying that “Get Parts”task 7410 has a resource-assignment property 7416 set to “Auto,” indicating that “MA” resource 7412 (i.e., “Mister Assembler”resource 7108 in FIG. 71) was automatically assigned to a “Gopher”role 7414 for “Get Parts”task 7410 whenplan definition file 7400 was created from “AssemblyWorkflow”definition file 6800 in FIG. 68. - The Client Interface may implement versioning by creating a WebDAV property named “Version” (not shown) for
plan definition files plan definition file 7400 whenfile 7400 is created by the Client Interface and set the “Version” property to “Second” forplan definition file 7300 whenfile 7300 is created by the Client Interface. Thus, in the event that “Gopher”role 7314 of the “Get Parts”task 7310 has been manually reassigned toreplacement resource 7312 by an enterprise affiliate using the Client Interface, the Client Interface is able to recognize thatplan definition file 7300 is a later version ofplan definition file 7400. - In another implementation, while performing the process depicted in FIG. 3 above, the Client Interface may record in a manual-assignment log (not shown) for plans created from “AssemblyWorkflow”
definition file 7400 the following: a task role (e.g., “Gopher”role 7414 for “Get Parts” task 7410) that has been manually reassigned to another resource, the other resource that replaces an auto-assigned resource, and the auto-assigned resource. In this implementation, the Client Interface need not implement versioning of plan definition files as the Client Interface is able to quickly determine if a resource was manually assigned to a role of the task by referencing the manual-assignment log. - If it was determined that the resource was manually assigned to a role of the task, the Client Interface determines whether the resource replaced an auto-assigned resource (Step6722). In the example shown in FIG. 73 and FIG. 74, the Client Interface may confirm that “MG”
resource 7312 replaced an auto-assignedresource 7412 by first retrievingplan definition file 7400, which is an earlier version ofplan definition file 7300. The Client Interface may then identify if resource-assignment property 7416 of “Get Parts”task 7410 is set to “Auto,” indicating that “MA”resource 7412 was automatically assigned to “Gopher”role 7414 for “Get Parts”task 7410 whenplan definition file 7400 was created from “AssemblyWorkflow”definition file 6800 in FIG. 68. The Client Interface is able to recognize that if resource-assignment property is not set to “Auto” or “Manual,” then the Client Interface did not assign a resource to “Gopher”role 7414. - In another implementation where the Client Interface records each manual assignment as it occurs in the manual-assignment log (not shown) for plans created from “AssemblyWorkflow”
definition file 7400, the Client Interface may reference the manual-assignment log to identify if “Gopher”role 7314 for “Get Parts”task 7310 had an auto-assigned resource that was replaced by the manually assigned “MG”resource 7312. - If it is determined that the resource replaced an auto-assigned resource, the Client Interface increments the auto-assignment override counter for the auto-assigned resource (Step6724). For the example shown in FIG. 74, the Client Interface increments the auto-assignment counter for “MA”
resource 7412. - After incrementing the auto-assignment override counter for the auto-assigned resource or after it is determined that the resource did not replace an auto-assigned resource, the Client Interface increments the manual-assignment counter for the resource (Step6726). For the example shown in FIGS. 73A-C, the Client Interface increments the manual-assignment counter for “MG”
resource 7312. - After incrementing the manual-assignment counter for the resource, the Client Interface logs or stores reassignment information, such as task role, skill and strength; auto-assigned resource profile; and replacement resource profile (Step6728). The Client Interface may store the reassignment information so that the Client Interface is able to quickly reference the reassignment information based on the identification of the auto-assigned resource or the manually assigned resource. For example, the reassignment information may be organized in a database table format (not shown) so that each resource associated with each role of the workflow has a corresponding database table. The Client Interface may then store the reassignment information as a record in the database table corresponding to the auto-assigned resource and as a record in the database table corresponding to the manually assigned resource. Thus, the Client Interface is able to determine the percentage of manual-assignments per plans checked for each resource and the percentage of override-assignments per plans checked for each resource.
- After storing reassignment information, the Client Interface determines if all tasks of the plan have been checked (Step6730). The Client Interface may determine that all tasks of the plan have been checked when the task does not have a successor task. For example, the Client Interface is able to recognize that “Get Parts”
task 7310 in FIG. 73A hassuccessor 7318 that identifies “Task_20 ” as the next task in the plan. Thus, the Client Interface recognizes that not all tasks of the plan have been checked. The Client Interface, however, may also determine that all tasks of the plan have been checked when the Client Interface determines that there are no more tasks (i.e., 7310, 7320, 7330, 7340, 7350, 7360 and 7370 in FIGS. 73A-C) to be retrieved fromplan definition file 7300. - When it is determined that all tasks of the plan have not been checked, the Client Interface retrieves the next task (Step6732). After retrieving the next task, the Client Interface continues processing at
Step 6720. - When it is determined that all tasks of the plan have not been checked, the Client Interface determines if all plans that have been created from the workflow have been checked (Step6734). If all plans that have been created from the workflow have not been checked, the Client Interface retrieves the next plan from WebDAV Storage 142 (Step 6736). After retrieving the next plan, the Client Interface continues processing at
Step 6716. - When it is determined that all plans that have been created from the workflow have been checked, the Client Interface selects a resource associated with a role of the workflow (
Step 6738 in FIG. 67C). The Client Interface may select any resource that has been previously determined by the Client Interface as being assigned to a role of an activity of the workflow. In another implementation, the Client Interface may select a resource that has been assigned to a role of the activity and has been stored as an auto-assigned resource or as manually assigned resource in the reassignment information log. - After selecting the resource associated with a role of the workflow, the Client Interface determines if the maximum percentage of overrides for the resource has been exceeded (Step6740). To determine if the maximum percentage of overrides for the resource has been exceeded, the Client Interface calculates an actual-percentage-of-overrides for the resource by dividing the number of times that the resource was replaced or overridden by a manually-assigned resource (i.e., value of the auto-assignment counter for the resource) by the number of plans checked (i.e., value of the plan counter) times one hundred (100). The Client Interface then compares the maximum percentage of overrides for the resource with the calculated actual-percentage-of-overrides to determine if the maximum percentage of overrides for the resource has been exceeded. For example, assuming the Client Interface has selected “MA”
resource 7412 in FIG. 74, the Client Interface is able to identify that maximum percentage of overrides 7138 of twenty percent (20%) has been exceeded when the Client Interface identifies that “MA”resource 7412 of “Get Parts”task 7410 has been replaced by manually-assigned “MG”resource 7312 in twenty-one (21) out of one hundred plans checked by the Client Interface. - When it is determined that the maximum percentage of overrides for the resource has been exceeded, the Client Interface identifies a skill of the resource that matches a skill of the task role that has been reassigned and identifies a skill of a replacement resource most-often-assigned (Step6742). Continuing with the previous example, the Client Interface may identify that “MG”
resource 7312 in FIG. 73A of “Get Parts”task 7310 is the resource that is most-often-assigned to replace auto-assigned “MA”resource 7412 in Fig.74 of “Get Parts”task 7410. The Client Interface then retrievesrole profile 7006 in FIG. 70 for “Gopher”role 7314 in FIG. 73A that has been manually-reassigned to “MG”resource 7312 of “Get Parts”task 7310. The Client Interface also retrievesresource profile 7102 in FIG. 71 for auto-assigned “MA”resource 7412 in FIG. 74 andresource profile 7104 in FIG. 71 for replacement “MG”resource 7312 in FIG. 73A. The Client Interface is then able to identify that auto-assigned “MA”resource 7412 has skills 7126 in FIG. 71 and 7128 that match “enterprise procurement logistics”skill 7029 in FIG. 70 and “Chicago plant receiving logistics”skill 7030 in “Gopher”role profile 7006. The Client Interface is also able to identify that auto-assigned “MA”resource 7412 has skill 7126 that matches an “enterprise procurement logistics” skill 7148 in FIG. 71 in “MG”resource profile 7104. - Next, the Client Interface notifies an enterprise affiliate of alternative suggestions to improve the profile of the resource (Step6744). In one implementation, the Client Interface may notify the enterprise affiliate that initiated the request to optimize resource allocation for the “AssemblyWorkflow.” The Client Interface may notify the enterprise affiliate via a dialog box (not shown) displayed by the Client Interface in association with the same user interface that the enterprise affiliate used to initiate the request to optimize the resource allocation.
- In another implementation, the Client Interface is able to notify the enterprise affiliate by sending an e-mail message to the enterprise affiliate via
network 108 in FIG. 1. The Client Interface is able to identify an e-mail address for the enterprise affiliate by accessing a user profile for the enterprise affiliate that is stored onWebDAV Storage 142 as discussed above. The alternative suggestions to improve the profile of the resource may include removing a skill or decreasing a skill strength in the resource profile that corresponds to the skill of the task role that has been manually reassigned as further discussed below. - After notifying an enterprise affiliate of alternative suggestions to improve the profile of the resource, the Client Interface determines if either of the alternative suggestions is to be implemented (Step6746). In one implementation, the enterprise affiliate indicates to the Client Interface which, if any, of the alternative suggestions are to be implemented by actuating a button (not shown) next to the alternative suggestion that is displayed by the Client Interface in association with the same user interface that the enterprise affiliate used to initiate the request to optimize the resource allocation. In another implementation, the Client Interface is configured to receive an e-mail reply to the notification sent by the Client Interface and to recognize the alternative suggestion within the reply that the enterprise affiliate has selected to be implemented.
- When it is determined that one of the alternative suggestions is to be implemented, the Client Interface determines if the alternative suggestion to implement corresponds to removing the matching skill from the profile of the resource (Step6748). When it is determined that the alternative suggestion to implement corresponds to removing the matching skill from the profile of the resource, the Client Interface removes the skill from the profile of the resource that matches the skill of the task role (Step 6750). For example, the Client Interface may remove one or both of skills 7126 in FIG. 71 and 7128 in “MA” resource profile that the Client Interface found matched “enterprise procurement logistics”
skill 7029 in FIG. 70 and “Chicago plant receiving logistics”skill 7030 in “Gopher”role profile 7006. Thus, when creating a subsequent plan from “AssemblyWorkflow”definition file 6800 and performing resource allocation processing for the plan, the Client Interface recognizes that improved “MA” resource profile does not have skills that match “Gopher”activity role 6832 in FIG. 68. Therefore, the Client Interface does not automatically assign “MA” resource to the “Gopher” role of the new task created from “Get Parts”activity 6804 in FIG. 68. - When it is determined that the alternative suggestion to implement does not correspond to removing the matching skill from the profile of the resource, the Client Interface decreases a skill strength in the profile of the resource to below the strength of the matching skill of the replacement resource (Step6752). For example, the Client Interface may decrease the strength of skill 7126 in FIG. 71 in “MA” resource profile to below the strength of matching skill 7148 in FIG. 71 of “MG”
resource profile 7104. Assuming the Client Interface improves “MG”resource profile 7104 to include all skills inskill set 7018 of “Gopher” role profile as described below, then the Client Interface is able to identify thatskill set 7116 in “MG”resource profile 7104 has higher corresponding skill strengths than inskill set 7114 in “MA”resource profile 7102. Thus, in this example, the Client Interface automatically assigns “MG”resource 7110, instead of “MA”resource 7108, to a new task created from “Get Parts”activity 6804 in FIG. 68 by the Client Interface. - When it is determined that the maximum percentage of overrides for resource has not been exceeded, when it is determined that neither of the two alternative suggestions are to be implemented, or after decreasing a skill strength in the profile of the resource to below the strength of the matching skill of the replacement resource, the Client Interface determines if the maximum percentage of manual assignments for the resource has been exceeded (
Step 6754 in FIG. 67D). To determine if the maximum percentage of manual assignments for the resource has been exceeded, the Client Interface calculates an actual-percentage-of-manual-assignments for the resource by dividing the number of times that the resource was manually-assigned to a task role (i.e., value of the manual-assignment counter for the resource) by the number of plans checked (i.e., value of the plan counter) times hundred (100). The Client Interface then compares the maximum percentage of manual assignments for the resource with the calculated actual-percentage-of-manual-assignments to determine if the maximum percentage of manual assignments for the resource has been exceeded. For example, assuming the Client Interface has selected “MG”resource 7312 in FIG. 73A, the Client Interface is able to identify that maximum percentage of manual-assignments 7140 of twenty percent (20%) has been exceeded when the Client Interface identifies that “MG”resource 7312 of “Get Parts”task 7310 has been manually-assigned to replace “MA”resource 7412 in twenty-one (21) out of one hundred plans checked by the Client Interface. - When it is determined that the maximum percentage of manual assignments for the resource has been exceeded, the Client Interface identifies all skills associated with a role for each logged task where the resource was manually assigned (Step6756). When “MG” resource is selected by the Client Interface, the Client Interface may identify that “Get Parts”
task 7310 in FIG. 73A is representative of each task in the reassignment information log where “MG” resource was manually assigned. The Client Interface then identifies that “Gopher”role 7314 in FIG. 73A is assigned to each task in the reassignment information log that corresponds to “Get Parts”task 7310. The Client Interface is then able to identify that “Gopher”role 7314 has skills corresponding toskill set 7018 in FIG. 70 for “Gopher”role profile 7006. - After identifying all skills associated with a role for each logged task where the resource was manually assigned, the Client Interface determines if the resource is missing a skill (Step6758). To determine if the resource is missing a skill, the Client Interface retrieves the profile for the resource and compares the skill set in the resource profile to the skills or skill identified for the role. Continuing with the above example, the Client Interface retrieves “MG”
resource profile 7104. The Client Interface then comparesskill set 7116 inresource profile 7104 withskill set 7018 in “Gopher”role profile 7006. The Client Interface is able to recognize that “MG”skill set 7116 is missing “Chicago plant receiving logistics”skill 7030 in “Gopher”skill set 7018. - When it is determined that the resource is missing a skill, the Client Interface generates a suggestion to improve the resource profile by adding the missing skill to the resource profile (Step6760). For example, the Client Interface generates a suggestion to improve “MG”
profile 7104 by adding the missing “Chicago plant receiving logistics”skill 7030 to “MG”skill set 7116. - When it is determined that the resource is not missing a skill, the Client Interface identifies a highest skill strength for the role from among each auto-assigned resource that was replaced by the resource (Step6762). For example, the Client Interface may identify that “MA”
resource 7412 in FIG. 74 is representative of each auto-assigned resource that was replaced by “MG”resource 7312 in FIG. 73A. The Client Interface is then able to identify that “MA”resource 7412 has skills 7126 and 7128 that matchskills role profile 7006. The Client Interface is able to further identify that “MA” skills 7126 and 7128 have corresponding skill strengths of “6” and “5,” respectively. Thus, the Client Interface identifies the highest skill strengths for “Gopher”skills - After identifying a highest skill strength for the role from among each auto-assigned resource that was replaced by the resource, the Client Interface generates a suggestion to improve the resource profile by increasing a corresponding skill strength of the resource to above the identified highest skill strength (Step6764). Continuing with the above example, the Client Interface is able to identify that “MG” skill 7148 corresponds to “MA” skill 7126 and “Gopher”
skill 7029 in FIG. 70. The Client Interface then generates a suggestion to improve “MG”resource profile 7104 in FIG. 71 by increasing the strength of “MG” skill 7148 above the identified highest corresponding skill strength of “6.” - After generating a suggestion to add a missing skill to the resource profile or after generating a suggestion to increase a skill strength in the resource profile, the Client Interface notifies the enterprise affiliate of the suggestion to improve the resource profile (Step6766). The Client Interface may notify the enterprise affiliate via a dialog box (not shown) displayed by the Client Interface in association with the same user interface that the enterprise affiliate used to initiate the request to optimize resource allocation. The Client Interface may also notify the enterprise affiliate by sending an e-mail message to the enterprise affiliate via
network 108 in FIG. 1. - After notifying the enterprise affiliate of the suggestion to improve the profile of the resource, the Client Interface determines if the suggested improvement is to be implemented (Step6768). In one implementation, the enterprise affiliate indicates to the Client Interface if the suggested improvement is to be implemented by actuating a button (not shown) next to the suggestion that is displayed by the Client Interface in association with the same user interface that the enterprise affiliate used to initiate the request to optimize resource allocation. In another implementation, the Client Interface is configured to receive an e-mail reply to the notification sent by the Client Interface and to recognize a confirmation to implement the suggested improvement within the reply.
- When it is determined that the suggested improvement is to be implemented, the Client Interface modifies the profile of the resource to reflect the suggested improvement (Step6770). For example, when the suggested improvement is to add the missing skill to the resource profile, the Client Interface adds the missing “Chicago plant receiving logistics”
skill 7030 toskill set 7116 in “MG”resource profile 7104. When the suggested improvement is to increase the skill strength of the resource profile, the Client Interface increases the strength of “MG” skill 7148 in “MG”profile 7104 above the identified highest corresponding skill strength of “6.” Note that the Client Interface identifies that the suggested improvement is to increase the skill strength of the resource profile whenskill set 7116 in “MG”resource profile 7104 already has all the skills found in “Gopher”skill set 7018. Thus, when creating a subsequent plan from “AssemblyWorkflow”definition file 6800 and performing resource allocation processing for the plan, the Client Interface recognizes that improved “MG”resource profile 7104 has an improved skill set that matches “Gopher”skill set 7018 and that has higher corresponding skill strengths than “MA”skill set 7114. Therefore, the Client Interface automatically assigns “MG” resource in lieu of “MA” resource to the “Gopher” role of a new task created from “Get Parts”activity 6804 in FIG. 68. - When it is determined that the maximum percentage of manual assignments for the resource has not been exceeded, when it is determined that the suggested improvement is not to be implemented, or after modifying the profile of the resource to reflect the suggested improvement, the Client Interface determines if there are more resources associated with a role of the overflow (
Step 6772 in FIG. 67E). If there are more resources associated with a role of the workflow, the Client Interface selects the next resource associated with a role of the workflow (Step 6774). After selecting the next resource, the Client Interface continues processing atstep 6740 in FIG. 67C. When it is determined that there are no more resources associated with a role of the workflow, the Client Interface completes processing. - While various embodiments of the application have been described, it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible that are within the scope of this invention. Accordingly, the invention is not to be restricted except in light of the attached claims and their equivalents.
Claims (38)
1. A method in a data processing system having a workflow that models a process, the method comprising the steps of:
generating a plan to perform an instance of the process, the plan having tasks performed by resources, wherein each resource has capabilities that are considered when generating the plan to ensure that, for each task, a suitable one of the resources is selected to perform the task;
receiving modification information indicating that the capabilities of one of the resources has changed; and
assigning the resources to the tasks to generate a new plan by using the received modification information.
2. The method of claim 1 , further comprising the steps of:
generating another plan to perform another instance of the process; and
assigning the resources to the tasks of the other plan using the received modification information.
3. The method of claim 1 , wherein the step of receiving modification information includes the step of assigning a new capability to the one resource that indicates the one resource is capable of performing an additional one of the tasks.
4. The method of claim 1 , wherein the step of receiving modification information further includes the step of receiving replacement information that indicates that another resource should be replaced by the one resource.
5. The method of claim 4 , wherein the one resource and the other resource share a capability having a strength, wherein the step of receiving replacement information includes the step of increasing the strength of the one resource to exceed the strength of the other resource.
6. The method of claim 1 , wherein the step of receiving modification information further includes the step of receiving replacement information that indicates that the one resource should be replaced by another resource.
7. The method of claim 6 , wherein the step of receiving replacement information includes the step of removing one of the capabilities of the one resource to facilitate the replacement.
8. The method of claim 6 , wherein the one resource and the other resource share a capability having a strength, wherein the step of receiving replacement information includes the step of decreasing the strength of the one resource to below the strength of the other resource.
9. A method in a data processing system having a workflow that models a process and a plurality of plans generated from the workflow that reflect instances of the process, the method comprising the steps of:
receiving a request to generate a new plan;
examining the plurality of plans to determine a number of the plurality of the plans that have been modified per a modification since the modified plans were created;
determining whether the number of plans exceeds a predetermined threshold; and
when it is determined that the number of plans exceeds the predetermined threshold,
generating the new plan such that the new plan incorporates the modification.
10. The method of claim 9 , wherein each plan includes a task that has one of a plurality of resources assigned to perform the task, wherein each resource has capabilities that are considered when generating each plan to ensure that a suitable one of the resources is assigned to perform the task, wherein the modification is a substitution of the one resource with another resource, and wherein the step of generating the new plan includes the step of assigning the other resource to perform the task of the new plan.
11. The method of claim 10 , wherein the step of assigning the other resource includes the step of assigning a new capability to the other resource that indicates that the other resource is capable of performing the task in the new plan.
12. The method of claim 10 , wherein the step of assigning the other resource includes the step of increasing a strength of one of the capabilities of the other resource to a level that indicates the other resource is capable of performing the task in the new plan.
13. The method of claim 10 , wherein the one resource and the other resource share a capability having a strength, and wherein the step of assigning the other resource includes the step of increasing the strength of the other resource to exceed the strength of the one resource.
14. The method of claim 10 , wherein the step of assigning the other resource includes the step of removing one of the capabilities of the one resource so that the one resource is incapable of performing the task in the new plan.
15. The method of claim 10 , wherein the one resource and the other resource share a capability having a strength, wherein the step of assigning the other resource includes the step of decreasing the strength of the one resource to indicate that the one resource is not capable of performing the task in the new plan.
16. The method of claim 10 , wherein the one resource and the other resource share a capability having a strength, wherein the step of assigning the other resource includes the step of decreasing the strength of the one resource to below the strength of the other resource.
17. A computer-readable medium containing instructions for controlling a data processing system, the data processing system having a workflow that models a process, the method comprising the steps of:
generating a plan to perform an instance of the process, the plan having tasks performed by resources, wherein each resource has capabilities that are considered when generating the plan to ensure that, for each task, a suitable one of the resources is selected to perform the task;
receiving modification information indicating that the capabilities of one of the resources has changed; and
assigning the resources to the tasks to generate a new plan by using the received modification information.
18. The computer-readable medium of claim 17 , wherein the method further comprises the steps of:
generating another plan to perform another instance of the process; and
assigning the resources to the tasks of the other plan using the received modification information.
19. The computer-readable medium of claim 17 , wherein the step of receiving modification information includes the step of assigning a new capability to the one resource that indicates the one resource is capable of performing an additional one of the tasks.
20. The computer-readable medium of claim 17 , wherein the step of receiving modification information further includes the step of receiving replacement information that indicates that another resource should be replaced by the one resource.
21. The computer-readable medium of claim 20 , wherein the one resource and the other resource share a capability having a strength, wherein the step of receiving replacement information includes the step of increasing the strength of the one resource to exceed the strength of the other resource.
22. The computer-readable medium of claim 17 , wherein the step of receiving modification information further includes the step of receiving replacement information that indicates that the one resource should be replaced by another resource.
23. The computer-readable medium of claim 22 , wherein the step of receiving replacement information includes the step of removing one of the capabilities of the one resource to facilitate the replacement.
24. The computer-readable medium of claim 22 , wherein the one resource and the other resource share a capability having a strength, wherein the step of receiving replacement information includes the step of decreasing the strength of the one resource to below the strength of the other resource.
25. A computer-readable medium containing instructions for controlling a data processing system, the data processing system having a workflow that models a process and a plurality of plans generated from the workflow that reflect instances of the process, the method comprising the steps of:
receiving a request to generate a new plan;
examining the plurality of plans to determine a number of the plurality of the plans that have been modified per a modification since the modified plans were created;
determining whether the number of plans exceeds a predetermined threshold; and
when it is determined that the number of plans exceeds the predetermined threshold,
generating the new plan such that the new plan incorporates the modification.
26. The computer-readable medium of claim 25 , wherein each plan includes a task that has one of a plurality of resources assigned to perform the task, wherein each resource has capabilities that are considered when generating each plan to ensure that a suitable one of the resources is assigned to perform the task, wherein the modification is a substitution of the one resource with another resource, and wherein the step of generating the new plan includes the step of assigning the other resource to perform the task of the new plan.
27. The computer-readable medium of claim 26 , wherein the step of assigning the other resource includes the step of assigning a new capability to the other resource that indicates that the other resource is capable of performing the task in the new plan.
28. The computer-readable medium of claim 26 , wherein the step of assigning the other resource includes the step of increasing a strength of one of the capabilities of the other resource to a level that indicates the other resource is capable of performing the task in the new plan.
29. The computer-readable medium of claim 26 , wherein the one resource and the other resource share a capability having a strength, and wherein the step of assigning the other resource includes the step of increasing the strength of the other resource to exceed the strength of the one resource.
30. The computer-readable medium of claim 26 , wherein the step of assigning the other resource includes the step of removing one of the capabilities of the one resource so that the one resource is incapable of performing the task in the new plan.
31. The computer-readable medium of claim 26 , wherein the one resource and the other resource share a capability having a strength, wherein the step of assigning the other resource includes the step of decreasing the strength of the one resource to indicate that the one resource is not capable of performing the task in the new plan.
32. The computer-readable medium of claim 26 , wherein the one resource and the other resource share a capability having a strength, wherein the step of assigning the other resource includes the step of decreasing the strength of the one resource to below the strength of the other resource.
33. A data processing system comprising:
a secondary storage device further comprising a workflow that models a process;
a memory device further comprising a program that generates a plan to perform an instance of the process, the plan having tasks performed by resources, wherein each resource has capabilities that are considered when generating the plan to ensure that, for each task, a suitable one of the resources is allocated to perform each task, that allocates one of the resources to perform at least one of the tasks, that receives modification information indicating that the capabilities of the one resource has changed, that generates a new plan to perform another instance of the process, and that allocates the resources to the tasks of the new plan using the received modification information; and
a processor for running the program.
34. The data processing system of claim 33 , wherein the modification information indicates that the one resource has been replaced by another resource in at least one of the tasks in the plan.
35. The data processing system of claim 34 , wherein the modification information further indicates that one of the capabilities of the one resource should be removed.
36. The data processing system of claim 34 , wherein the one resource and the other resource share a capability having a strength, wherein the modification information further indicates that the strength of the other resource should be increased to exceed the strength of the one resource.
37. The data processing system of claim 34 , wherein the modification information further indicates that the other resource should be assigned a new capability that indicates the other resource is capable of performing the at least one of the tasks in the new plan.
38. A system having a workflow that models a process, the system comprising:
means for generating a plan to perform an instance of the process, the plan having tasks performed by resources, wherein each resource has capabilities that are considered when generating the plan to ensure that, for each task, a suitable one of the resources is selected to perform the task;
means for receiving modification information indicating that the capabilities of one of the resources has changed; and
means for assigning the resources to the tasks to generate a new plan by using the received modification information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/944,847 US20020107914A1 (en) | 2000-09-01 | 2001-08-31 | Methods and systems for optimizing resource allocation based on data mined from plans created from a workflow |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US23005400P | 2000-09-01 | 2000-09-01 | |
US29670701P | 2001-06-07 | 2001-06-07 | |
US09/944,847 US20020107914A1 (en) | 2000-09-01 | 2001-08-31 | Methods and systems for optimizing resource allocation based on data mined from plans created from a workflow |
Publications (1)
Publication Number | Publication Date |
---|---|
US20020107914A1 true US20020107914A1 (en) | 2002-08-08 |
Family
ID=26923866
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/944,847 Abandoned US20020107914A1 (en) | 2000-09-01 | 2001-08-31 | Methods and systems for optimizing resource allocation based on data mined from plans created from a workflow |
US09/944,697 Expired - Fee Related US6968343B2 (en) | 2000-09-01 | 2001-08-31 | Methods and systems for integrating process modeling and project planning |
US09/945,081 Expired - Fee Related US6938240B2 (en) | 2000-09-01 | 2001-08-31 | Methods and systems for improving a workflow based on data mined from plans created from the workflow |
US09/944,696 Abandoned US20020075293A1 (en) | 2000-09-01 | 2001-08-31 | Methods and systems for animating a workflow and a project plan |
US11/032,968 Expired - Fee Related US7493591B2 (en) | 2000-09-01 | 2005-01-11 | Methods and systems for animating a workflow and a project plan |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/944,697 Expired - Fee Related US6968343B2 (en) | 2000-09-01 | 2001-08-31 | Methods and systems for integrating process modeling and project planning |
US09/945,081 Expired - Fee Related US6938240B2 (en) | 2000-09-01 | 2001-08-31 | Methods and systems for improving a workflow based on data mined from plans created from the workflow |
US09/944,696 Abandoned US20020075293A1 (en) | 2000-09-01 | 2001-08-31 | Methods and systems for animating a workflow and a project plan |
US11/032,968 Expired - Fee Related US7493591B2 (en) | 2000-09-01 | 2005-01-11 | Methods and systems for animating a workflow and a project plan |
Country Status (3)
Country | Link |
---|---|
US (5) | US20020107914A1 (en) |
AU (4) | AU2001290597A1 (en) |
WO (4) | WO2002019272A1 (en) |
Cited By (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030066032A1 (en) * | 2001-09-28 | 2003-04-03 | Siebel Systems,Inc. | System and method for facilitating user interaction in a browser environment |
US20030110173A1 (en) * | 2001-12-11 | 2003-06-12 | Sun Microsystems, Inc. | Methods and apparatus for managing multiple user systems |
US6678671B1 (en) * | 2000-11-02 | 2004-01-13 | Klocwork Solutions Corporation | System for linking a resource management system with an event of a project in a project management system and a method therefor |
US20040015587A1 (en) * | 2002-06-21 | 2004-01-22 | Kogut-O'connell Judy J. | System for transferring tools to resources |
US20040083480A1 (en) * | 2002-10-21 | 2004-04-29 | The Boeing Company | System and method for creating a pert chart |
US20040085561A1 (en) * | 2002-10-30 | 2004-05-06 | Xerox Corporation | Planning and scheduling reconfigurable systems with regular and diagnostic jobs |
WO2004044807A1 (en) * | 2002-11-07 | 2004-05-27 | Singapore Institute Of Manufacturing Technology | Method for estimating a lead time of a process |
US20040119758A1 (en) * | 2002-12-19 | 2004-06-24 | Grossman Joel K. | Contact controls |
US20040119732A1 (en) * | 2002-12-19 | 2004-06-24 | Grossman Joel K. | Contact picker |
US20040122822A1 (en) * | 2002-12-19 | 2004-06-24 | Thompson J. Patrick | Contact schema |
US20050005132A1 (en) * | 2003-07-03 | 2005-01-06 | International Business Machines Corporation | Password management |
US20050091196A1 (en) * | 2003-10-22 | 2005-04-28 | International Business Machines Corporation | Optimization of queries using retrieval status of resources used thereby |
US20050182741A1 (en) * | 2004-02-17 | 2005-08-18 | Microsoft Corporation | Simplifying application access to schematized contact data |
WO2005098735A2 (en) * | 2004-03-31 | 2005-10-20 | Cisco Technology, Inc. | System using planning information to modify operation of a digital network |
US20060010234A1 (en) * | 2001-09-07 | 2006-01-12 | Sun Microsystems Inc. | Dynamic provisioning of service components in a distributed system |
US20060020767A1 (en) * | 2004-07-10 | 2006-01-26 | Volker Sauermann | Data processing system and method for assigning objects to processing units |
US20060139352A1 (en) * | 2004-12-28 | 2006-06-29 | Fujitsu Limited | Computer product, operation-analysis support device, and operation-analysis support method |
US20060184412A1 (en) * | 2005-02-17 | 2006-08-17 | International Business Machines Corporation | Resource optimization system, method and computer program for business transformation outsourcing with reoptimization on demand |
US20070038329A1 (en) * | 2004-12-14 | 2007-02-15 | Pravin Khurana | System, method, and article of manufacture for determining a process plan for forming features in a part |
US20070083588A1 (en) * | 2005-09-23 | 2007-04-12 | International Business Machines Corporation | Systems and methods for automated provisioning of managed computing resources |
US20070226222A1 (en) * | 2006-03-27 | 2007-09-27 | Fujitsu Limited | Computer-readable recording medium having recorded system development support program, system development support apparatus, and system development support method |
US20070240081A1 (en) * | 2002-12-19 | 2007-10-11 | Microsoft Corporation, Inc. | Contact page |
US20070260502A1 (en) * | 2006-05-04 | 2007-11-08 | Microsoft Corporation | Project resource plans |
US20080040417A1 (en) * | 2006-08-09 | 2008-02-14 | Gearworks, Inc. | System and method for allocating workflow operations to a computing device |
US20080086353A1 (en) * | 2006-10-04 | 2008-04-10 | Microsoft Corporation | Server level summary information of resource utilization |
US7360174B2 (en) | 2002-12-19 | 2008-04-15 | Microsoft Corporation | Contact user interface |
US20080120159A1 (en) * | 2006-11-17 | 2008-05-22 | United Technologies Corporation | Enterprise resource planning system enhancement for program management |
US20080140490A1 (en) * | 2006-12-06 | 2008-06-12 | Sap Ag | Method and system for managing an enterprise resource planning project |
US20080183538A1 (en) * | 2007-01-30 | 2008-07-31 | Microsoft Corporation | Allocating Resources to Tasks in Workflows |
US20080184250A1 (en) * | 2007-01-30 | 2008-07-31 | Microsoft Corporation | Synchronizing Workflows |
US20080183517A1 (en) * | 2007-01-30 | 2008-07-31 | Microsoft Corporation | Robustness of a Workflow |
US7418663B2 (en) | 2002-12-19 | 2008-08-26 | Microsoft Corporation | Contact picker interface |
US20080222645A1 (en) * | 2004-10-18 | 2008-09-11 | International Business Machines Corporation | Process Execution Management Based on Resource Requirements and Business Impacts |
US7430719B2 (en) | 2004-07-07 | 2008-09-30 | Microsoft Corporation | Contact text box |
US7549125B2 (en) | 2003-10-23 | 2009-06-16 | Microsoft Corporation | Information picker |
US20100125826A1 (en) * | 2008-11-18 | 2010-05-20 | Microsoft Corporation | Workflow engine for execution of web mashups |
US7796045B2 (en) | 2005-01-10 | 2010-09-14 | Hill-Rom Services, Inc. | System and method for managing workflow |
US8108232B1 (en) * | 2005-05-26 | 2012-01-31 | Sprint Communications Company L.P. | System and method for project contract management |
US20120179504A1 (en) * | 2009-10-07 | 2012-07-12 | Hirofumi Nakashima | P2p workflow system, information processing apparatus and storage medium |
US8271631B1 (en) * | 2001-12-21 | 2012-09-18 | Microsoft Corporation | Methods, tools, and interfaces for the dynamic assignment of people to groups to enable enhanced communication and collaboration |
US20120290528A1 (en) * | 2005-09-23 | 2012-11-15 | Samsung Electronics Co., Ltd | Document distribution system and method using webdav protocol |
US8407078B1 (en) | 2009-01-20 | 2013-03-26 | Perot Systems Corporation | Method of and system for managing projects, programs and portfolios throughout the project lifecycle |
US20130304531A1 (en) * | 2012-05-11 | 2013-11-14 | Paul Barber | System and method for performing detailed planning functions |
US20140082582A1 (en) * | 2012-09-14 | 2014-03-20 | Brian J. Houck | Resource Tracker |
WO2014144484A2 (en) * | 2013-03-15 | 2014-09-18 | Intelesystems | System and method for managing business partners and associated assets in favor of a plurality of enterprises |
US20150186824A1 (en) * | 2013-12-31 | 2015-07-02 | Oracle International Corporation | Facilitating day-wise planning of effort required from a resource for an individual task |
US9350561B1 (en) * | 2015-05-27 | 2016-05-24 | Apptio, Inc. | Visualizing the flow of resources in an allocation model |
US9384511B1 (en) | 2015-12-16 | 2016-07-05 | Apptio, Inc. | Version control for resource allocation modeling |
US9529863B1 (en) | 2015-12-21 | 2016-12-27 | Apptio, Inc. | Normalizing ingested data sets based on fuzzy comparisons to known data sets |
US9588685B1 (en) * | 2013-05-03 | 2017-03-07 | EMC IP Holding Company LLC | Distributed workflow manager |
US20170344916A1 (en) * | 2016-05-31 | 2017-11-30 | International Business Machines Corporation | Supporting analysis based on workflow |
US10069759B1 (en) * | 2017-01-27 | 2018-09-04 | Triangle Ip, Inc. | Machine learning resource allocator |
US10157356B2 (en) * | 2016-12-14 | 2018-12-18 | Apptio, Inc. | Activity based resource allocation modeling |
US10169730B2 (en) | 2014-06-30 | 2019-01-01 | Open Text Corporation | System and method to present a summarized task view in a case management system |
US10268979B2 (en) * | 2015-09-28 | 2019-04-23 | Apptio, Inc. | Intermediate resource allocation tracking in data models |
US10268980B1 (en) * | 2017-12-29 | 2019-04-23 | Apptio, Inc. | Report generation based on user responsibility |
US10324951B1 (en) | 2017-12-29 | 2019-06-18 | Apptio, Inc. | Tracking and viewing model changes based on time |
US10325232B2 (en) | 2013-09-20 | 2019-06-18 | Apptio, Inc. | Allocating heritage information in data models |
US10387815B2 (en) | 2015-09-29 | 2019-08-20 | Apptio, Inc. | Continuously variable resolution of resource allocation |
US10417591B2 (en) | 2013-07-03 | 2019-09-17 | Apptio, Inc. | Recursive processing of object allocation rules |
US10425353B1 (en) | 2017-01-27 | 2019-09-24 | Triangle Ip, Inc. | Machine learning temporal allocator |
US10474974B2 (en) | 2016-09-08 | 2019-11-12 | Apptio, Inc. | Reciprocal models for resource allocation |
US10482407B2 (en) | 2016-11-14 | 2019-11-19 | Apptio, Inc. | Identifying resource allocation discrepancies |
US10699223B1 (en) * | 2009-08-13 | 2020-06-30 | Amazon Technologies, Inc. | System and method for resource allocation across distinct processes of a materials handling facility |
US10726367B2 (en) | 2015-12-28 | 2020-07-28 | Apptio, Inc. | Resource allocation forecasting |
US10937036B2 (en) | 2012-11-13 | 2021-03-02 | Apptio, Inc. | Dynamic recommendations taken over time for reservations of information technology resources |
US10936978B2 (en) | 2016-09-20 | 2021-03-02 | Apptio, Inc. | Models for visualizing resource allocation |
US11151493B2 (en) | 2015-06-30 | 2021-10-19 | Apptio, Inc. | Infrastructure benchmarking based on dynamic cost modeling |
US11238388B2 (en) * | 2019-01-24 | 2022-02-01 | Zoho Corporation Private Limited | Virtualization of assets |
US11244364B2 (en) | 2014-02-13 | 2022-02-08 | Apptio, Inc. | Unified modeling of technology towers |
US11775552B2 (en) | 2017-12-29 | 2023-10-03 | Apptio, Inc. | Binding annotations to data objects |
Families Citing this family (350)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7546346B2 (en) * | 1997-07-28 | 2009-06-09 | Juniper Networks, Inc. | Workflow systems and methods for project management and information management |
US6324685B1 (en) | 1998-03-18 | 2001-11-27 | Becomm Corporation | Applet server that provides applets in various forms |
US6629127B1 (en) * | 1999-07-26 | 2003-09-30 | Microsoft Corporation | Methods and systems for processing HTTP requests |
US7130822B1 (en) | 2000-07-31 | 2006-10-31 | Cognos Incorporated | Budget planning |
US7246074B1 (en) * | 2000-10-13 | 2007-07-17 | International Business Machines Corporation | System and method for identifying skills and tools needed to support a process utilizing pre-defined templates |
US7904322B2 (en) * | 2000-10-24 | 2011-03-08 | Gauger Derek K | Network based, interactive project management apparatus and method |
US20020156671A1 (en) * | 2000-11-08 | 2002-10-24 | The Boeing Company | System and method for collaborative action |
FR2818848B1 (en) * | 2000-12-26 | 2004-05-14 | France Telecom | REAL-TIME INFORMATION MANAGEMENT SYSTEM FOR A NETWORK COMPRISING A HETEROGENEOUS SET OF TERMINALS, SERVER AND MAIN TERMINAL FOR SUCH A SYSTEM |
US7657590B2 (en) * | 2001-02-07 | 2010-02-02 | Ubs Ag | Load balancing system and method |
US7437429B2 (en) * | 2001-02-13 | 2008-10-14 | Microsoft Corporation | System and method for providing transparent access to distributed authoring and versioning files including encrypted files |
JP2002259642A (en) * | 2001-02-28 | 2002-09-13 | Toshiba Corp | Method and device for managing information and program to be applied thereto |
US20020170032A1 (en) * | 2001-03-14 | 2002-11-14 | International Business Machines Corporation | Method, system and computer program for deriving and applying quality of service specifications in a component-based development environment |
US20020138328A1 (en) * | 2001-03-23 | 2002-09-26 | International Business Machines Corporation | Staff assignment in a workflow management system |
US20020142273A1 (en) * | 2001-03-30 | 2002-10-03 | Dollins James T. | Interactive process learning aid |
US7412520B2 (en) * | 2001-06-07 | 2008-08-12 | Intel Corporation | Systems and methods for recoverable workflow |
US7406432B1 (en) * | 2001-06-13 | 2008-07-29 | Ricoh Company, Ltd. | Project management over a network with automated task schedule update |
US7316000B2 (en) * | 2001-08-27 | 2008-01-01 | International Business Machines Corporation | Interactive agent for a topological multi-tier business application composer |
US7650296B1 (en) * | 2001-08-31 | 2010-01-19 | Siebel Systems, Inc. | Configurator using structure and rules to provide a user interface |
US20030097273A1 (en) * | 2001-11-14 | 2003-05-22 | Carpenter Edward D. | System and method for conducting and managing an office move |
US20030126003A1 (en) * | 2001-11-20 | 2003-07-03 | Nxn Software Ag | Method for monitoring and controlling workflow of a project, applications program and computer product embodying same and related computer systems |
US7685527B2 (en) * | 2001-11-20 | 2010-03-23 | Siebel Systems, Inc. | Method and apparatus for controlling view navigation in workflow systems |
US7117480B2 (en) * | 2001-11-27 | 2006-10-03 | 3M Innovative Properties Company | Reusable software components for invoking computational models |
US7035809B2 (en) * | 2001-12-07 | 2006-04-25 | Accenture Global Services Gmbh | Accelerated process improvement framework |
US7937281B2 (en) * | 2001-12-07 | 2011-05-03 | Accenture Global Services Limited | Accelerated process improvement framework |
US20030126004A1 (en) * | 2001-12-27 | 2003-07-03 | International Business Machines Corporation | Method and system for a graphical view of selectable work items |
US20030135507A1 (en) * | 2002-01-17 | 2003-07-17 | International Business Machines Corporation | System and method for managing and securing meta data using central repository |
US20030233374A1 (en) * | 2002-03-14 | 2003-12-18 | Ulrich Spinola | Dynamic workflow process |
US20030182172A1 (en) * | 2002-03-25 | 2003-09-25 | Claggett Stuart Lee | System and method to build project management processes |
US7386797B1 (en) * | 2002-05-22 | 2008-06-10 | Oracle Corporation | Framework to model and execute business processes within a collaborative environment |
US20030236692A1 (en) * | 2002-05-29 | 2003-12-25 | Martin Hertel-Szabadi | Project workforce management |
US20030233341A1 (en) * | 2002-05-29 | 2003-12-18 | Taylor Amanda Kim | Systems and methods for work list prediction |
US7640548B1 (en) * | 2002-06-21 | 2009-12-29 | Siebel Systems, Inc. | Task based user interface |
US7177859B2 (en) * | 2002-06-26 | 2007-02-13 | Microsoft Corporation | Programming model for subscription services |
US7698276B2 (en) | 2002-06-26 | 2010-04-13 | Microsoft Corporation | Framework for providing a subscription based notification system |
US20040002958A1 (en) | 2002-06-26 | 2004-01-01 | Praveen Seshadri | System and method for providing notification(s) |
US20040002988A1 (en) * | 2002-06-26 | 2004-01-01 | Praveen Seshadri | System and method for modeling subscriptions and subscribers as data |
US20040017400A1 (en) * | 2002-07-26 | 2004-01-29 | Ly Eric Thichvi | Method for project planning |
DE10235517A1 (en) * | 2002-08-05 | 2004-03-04 | Siemens Ag | Tool and procedure for configuring, designing or programming a system |
US20040030992A1 (en) * | 2002-08-06 | 2004-02-12 | Trandafir Moisa | System and method for management of a virtual enterprise |
US7979297B1 (en) * | 2002-08-19 | 2011-07-12 | Sprint Communications Company L.P. | Order tracking and reporting tool |
US20040060038A1 (en) * | 2002-09-25 | 2004-03-25 | Duncan Johnston-Watt | Verifiable processes in a heterogeneous distributed computing environment |
US7257612B2 (en) | 2002-09-30 | 2007-08-14 | Cognos Incorporated | Inline compression of a network communication within an enterprise planning environment |
US6768995B2 (en) | 2002-09-30 | 2004-07-27 | Adaytum, Inc. | Real-time aggregation of data within an enterprise planning environment |
CA2497745A1 (en) * | 2002-09-30 | 2004-04-15 | Adaytum, Inc. | Node-level modification during execution of an enterprise planning model |
US20040064348A1 (en) * | 2002-09-30 | 2004-04-01 | Humenansky Brian S. | Selective deployment of software extensions within an enterprise modeling environment |
WO2004038556A2 (en) * | 2002-10-23 | 2004-05-06 | David Theiler | Method and apparatus for managing workflow |
JP3925857B2 (en) * | 2002-11-07 | 2007-06-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Schedule creation method, program, and task schedule creation device |
US20080027781A1 (en) * | 2002-11-20 | 2008-01-31 | Vom Scheidt Gregor A | Method for monitoring and controlling workflow of a project, applications program and computer product embodying same and related computer systems |
US20040122711A1 (en) * | 2002-12-20 | 2004-06-24 | Mediware Information Systems Inc. | System and method for the optimization of the delivery of hospital services |
US20040186742A1 (en) * | 2003-01-17 | 2004-09-23 | Chris Tuijn | Method for managing the manufacture of a printed product |
US7383586B2 (en) | 2003-01-17 | 2008-06-03 | Microsoft Corporation | File system operation and digital rights management (DRM) |
US20040163086A1 (en) * | 2003-02-14 | 2004-08-19 | Richard Friedman | WebDAV servlet |
US20040162918A1 (en) * | 2003-02-17 | 2004-08-19 | Richard Freidman | System and method for invoking WebDAV methods via non-WebDAV communication protocols |
US20040163037A1 (en) * | 2003-02-17 | 2004-08-19 | Richard Friedman | System and method for invoking WebDAV methods via non-WebDAV protocols |
US7155398B2 (en) | 2003-02-19 | 2006-12-26 | Cognos Incorporated | Cascaded planning of an enterprise planning model |
US7756901B2 (en) | 2003-02-19 | 2010-07-13 | International Business Machines Corporation | Horizontal enterprise planning in accordance with an enterprise planning model |
US20040167983A1 (en) * | 2003-02-21 | 2004-08-26 | Richard Friedman | WebDAV URL connection |
US20040168128A1 (en) * | 2003-02-21 | 2004-08-26 | Richard Friedman | Connecting to WebDAV servers via the Java™ connector architecture |
US20040193940A1 (en) * | 2003-02-21 | 2004-09-30 | Snyder Joseph J. | WebDAV unit test framework |
KR20060012572A (en) * | 2003-02-24 | 2006-02-08 | 콜랩넷, 인크. | System and methods for managing distributed design chains |
US8271369B2 (en) * | 2003-03-12 | 2012-09-18 | Norman Gilmore | Financial modeling and forecasting system |
US20040193917A1 (en) * | 2003-03-26 | 2004-09-30 | Drews Paul C | Application programming interface to securely manage different execution environments |
US7086028B1 (en) * | 2003-04-09 | 2006-08-01 | Autodesk, Inc. | Simplified generation of design change information on a drawing in a computer aided design (CAD) environment |
US20040215747A1 (en) * | 2003-04-11 | 2004-10-28 | Jonathan Maron | System and method for a configuration repository |
CN1826610A (en) * | 2003-05-07 | 2006-08-30 | Sap股份有限公司 | An end user oriented workflow approach including structured processing of ad hoc workflows with a collaborative process engine |
JP2004355326A (en) * | 2003-05-29 | 2004-12-16 | Incs Inc | Software development support program, recording medium with the program recorded thereon and software development support system |
US7505998B2 (en) * | 2003-07-10 | 2009-03-17 | Computer Associates Think, Inc. | Apparatuses and methods for dynamic creation of phase Gantt charts |
US8032593B2 (en) * | 2003-08-07 | 2011-10-04 | Teamon Systems, Inc. | Communications system providing reduced access latency and related methods |
US7308675B2 (en) * | 2003-08-28 | 2007-12-11 | Ricoh Company, Ltd. | Data structure used for directory structure navigation in a skeleton code creation tool |
US7237224B1 (en) * | 2003-08-28 | 2007-06-26 | Ricoh Company Ltd. | Data structure used for skeleton function of a class in a skeleton code creation tool |
CA2442799A1 (en) * | 2003-09-26 | 2005-03-26 | Ibm Canada Limited - Ibm Canada Limitee | Generalized credential and protocol management of infrastructure |
US8032831B2 (en) * | 2003-09-30 | 2011-10-04 | Hyland Software, Inc. | Computer-implemented workflow replayer system and method |
US7543268B2 (en) * | 2003-09-30 | 2009-06-02 | Sap Ag | Development environment for developing applications using a metamodel and a metadata API |
US8255888B2 (en) * | 2003-09-30 | 2012-08-28 | Sap Ag | API derivation and XML schema derivation for developing applications |
US7296256B2 (en) * | 2003-10-20 | 2007-11-13 | International Business Machines Corporation | Method and apparatus for automatic modeling building using inference for IT systems |
US10438142B2 (en) * | 2003-10-20 | 2019-10-08 | Bryant Consultants, Inc. | Multidiscipline site development and risk assessment process |
US7669177B2 (en) | 2003-10-24 | 2010-02-23 | Microsoft Corporation | System and method for preference application installation and execution |
TWI221240B (en) * | 2003-11-14 | 2004-09-21 | Via Tech Inc | Workflow defining system and workflow managing system |
US20050108081A1 (en) * | 2003-11-19 | 2005-05-19 | 3M Innovative Properties Company | Identification and evaluation of enterprise information for digitization |
US20050125738A1 (en) * | 2003-12-04 | 2005-06-09 | Biplav Srivastava | Composite network-accesible services |
FR2863384B1 (en) * | 2003-12-05 | 2006-06-23 | One 2 Team | METHOD AND HUMAN-MACHINE INTERFACE FOR CREATING AND MANAGING PROJECT INFORMATION |
US8423394B2 (en) * | 2003-12-12 | 2013-04-16 | International Business Machines Corporation | Method for tracking the status of a workflow using weblogs |
US8417682B2 (en) * | 2003-12-12 | 2013-04-09 | International Business Machines Corporation | Visualization of attributes of workflow weblogs |
US8140691B2 (en) * | 2003-12-12 | 2012-03-20 | International Business Machines Corporation | Role-based views access to a workflow weblog |
US7536677B2 (en) * | 2003-12-19 | 2009-05-19 | International Business Machines Corporation | Method, system, and product for determining defect detection efficiency |
JP2005189995A (en) * | 2003-12-24 | 2005-07-14 | Hitachi Ltd | File transfer process management method, file transfer process visualizing method, and file transfer process management apparatus in file transfer system and user terminal |
US8782616B2 (en) * | 2004-01-12 | 2014-07-15 | Hewlett-Packard Development Company, L.P. | Templates for configuring digital sending devices to achieve an automated business process |
US20050165822A1 (en) * | 2004-01-22 | 2005-07-28 | Logic Sight, Inc. | Systems and methods for business process automation, analysis, and optimization |
US20050165625A1 (en) * | 2004-01-23 | 2005-07-28 | Ladic Lance A. | Method and apparatus for providing a laboratory information management system for use in an e-commerce environment |
JP2005259113A (en) * | 2004-02-12 | 2005-09-22 | Ricoh Co Ltd | Process editing apparatus, process management apparatus, process editing program, process management program, recording medium, process editing method and process management method |
JP4625337B2 (en) * | 2004-02-23 | 2011-02-02 | 株式会社リコー | Process management apparatus, process management method, and process management program |
US7346888B1 (en) * | 2004-03-01 | 2008-03-18 | Sprint Communications Company L.P. | Use case integration |
JP2005285106A (en) * | 2004-03-01 | 2005-10-13 | Ricoh Co Ltd | Process management apparatus, user terminal device, process management program, user terminal program, recording medium, process management method, and search method |
US8060396B1 (en) | 2004-03-23 | 2011-11-15 | Sprint Communications Company L.P. | Business activity monitoring tool |
US7877327B2 (en) * | 2004-05-03 | 2011-01-25 | Trintuition Llc | Apparatus and method for creating and using documents in a distributed computing network |
US7610549B2 (en) * | 2004-05-20 | 2009-10-27 | Sap Ag | Method and system for Java Gantt/bar chart rendering |
US20050262112A1 (en) * | 2004-05-21 | 2005-11-24 | Moore Dennis B | Method and apparatus to convert project plans into workflow definitions |
US8650152B2 (en) * | 2004-05-28 | 2014-02-11 | International Business Machines Corporation | Method and system for managing execution of data driven workflows |
EP1607845A1 (en) * | 2004-06-18 | 2005-12-21 | Sony Ericsson Mobile Communications AB | Method and apparatus for transitions in a user interface |
US8082169B2 (en) * | 2004-06-18 | 2011-12-20 | Canon Kabushiki Kaisha | User interface for workflow builder |
US7716278B2 (en) * | 2004-07-19 | 2010-05-11 | Sap Ag | Context and action-based application design |
US8583514B2 (en) * | 2004-08-13 | 2013-11-12 | Jeffrey Brian Klem | System and method for tracking information in a business environment |
US20060064335A1 (en) * | 2004-08-17 | 2006-03-23 | International Business Machines Corporation | Method, system, and storage medium for performing business process modeling |
US20060047556A1 (en) * | 2004-08-31 | 2006-03-02 | Lang Torsten I | Method and system for staffing |
DE102004043419A1 (en) * | 2004-09-06 | 2006-03-30 | Siemens Ag | System for handling an industrial business process |
US20060053034A1 (en) * | 2004-09-08 | 2006-03-09 | Epic Systems Corporation | System and method for providing a real-time status for managing encounters in health care settings |
US8290805B2 (en) * | 2004-09-13 | 2012-10-16 | Hirokazu Usui | Project management system |
US20060069605A1 (en) * | 2004-09-29 | 2006-03-30 | Microsoft Corporation | Workflow association in a collaborative application |
US20060069596A1 (en) * | 2004-09-29 | 2006-03-30 | Microsoft Corporation | Workflow hosting computing system using a collaborative application |
US7730015B1 (en) * | 2004-10-15 | 2010-06-01 | Oracle America, Inc. | Stackable storage access mechanism for file systems |
US20060095906A1 (en) * | 2004-10-28 | 2006-05-04 | Microsoft Corporation | Methods and apparatus for project management |
US20060106661A1 (en) * | 2004-11-12 | 2006-05-18 | Microsoft Corporation | Methods and apparatus for project schedule estimation |
US20060111894A1 (en) * | 2004-11-19 | 2006-05-25 | Definitive Business Solutions, Llc | Method and system for communication prioritization |
US20060112122A1 (en) * | 2004-11-23 | 2006-05-25 | International Business Machines Corporation | Method, system, and storage medium for implementing business process modules |
US7831978B2 (en) * | 2004-12-16 | 2010-11-09 | Sap Ag | Review mechanism for controlling the delegation of tasks in a workflow system |
CA2490685A1 (en) * | 2004-12-16 | 2006-06-16 | Ibm Canada Limited - Ibm Canada Limitee | Method, system and program for enabling resonance in communications |
US8499300B2 (en) * | 2004-12-20 | 2013-07-30 | Bank Of America Corporation | System and method for task management of rule based tasks |
US8521570B2 (en) * | 2004-12-28 | 2013-08-27 | Sap Aktiengesellschaft | Integration of distributed business process models |
US7848942B2 (en) * | 2004-12-28 | 2010-12-07 | Sap Aktiengesellschaft | Distribution of integrated business process models |
US20060173908A1 (en) * | 2005-01-10 | 2006-08-03 | Browning Michelle M | System and method for automated customization of a workflow management system |
US10394543B2 (en) * | 2005-01-21 | 2019-08-27 | International Business Machines Corporation | Lifecycle objectification of non-activity objects in an activity thread |
US8631391B2 (en) * | 2005-01-24 | 2014-01-14 | Hewlett-Packard Development Company, L.P. | Method and a system for process discovery |
US20060179437A1 (en) * | 2005-02-04 | 2006-08-10 | Anh Hong | System and method for managing a predetermined hierarchical set of autonomous and dependent operations in a user interface |
US7853959B2 (en) * | 2005-02-08 | 2010-12-14 | Sap Ag | Business process extension for productivity suite application |
US7617017B2 (en) * | 2005-02-18 | 2009-11-10 | Gm Global Technology Operations, Inc. | System and method for resource reallocation based on ambient condition data |
US7496887B2 (en) * | 2005-03-01 | 2009-02-24 | International Business Machines Corporation | Integration of data management operations into a workflow system |
US7953720B1 (en) | 2005-03-31 | 2011-05-31 | Google Inc. | Selecting the best answer to a fact query from among a set of potential answers |
US7587387B2 (en) | 2005-03-31 | 2009-09-08 | Google Inc. | User interface for facts query engine with snippets from information sources that include query terms and answer terms |
US8239394B1 (en) | 2005-03-31 | 2012-08-07 | Google Inc. | Bloom filters for query simulation |
US8230042B2 (en) | 2005-04-19 | 2012-07-24 | International Business Machines Corporation | Policy based auditing of workflows |
US20060241997A1 (en) * | 2005-04-20 | 2006-10-26 | Microsoft Corporation | System and method for integrating workflow processes with a project management system |
US9111253B2 (en) * | 2005-04-22 | 2015-08-18 | Sap Se | Groupware time tracking |
US20060277079A1 (en) * | 2005-04-22 | 2006-12-07 | Gilligan Geffrey D | Groupware travel itinerary creation |
US7890962B2 (en) * | 2005-04-22 | 2011-02-15 | Sag Ag | Business process extensions to enable alerts and reports within the context of groupware |
US7890964B2 (en) * | 2005-04-22 | 2011-02-15 | Sap Ag | Methods and apparatus for contextual awareness in a groupware client |
US20060265387A1 (en) * | 2005-05-20 | 2006-11-23 | International Business Machines Corporation | Method and apparatus for loading artifacts |
US7703033B2 (en) * | 2005-06-01 | 2010-04-20 | Sap Ag | Access administration using activatable rules |
US8620713B2 (en) * | 2005-07-15 | 2013-12-31 | Sap Ag | Mechanism to control delegation and revocation of tasks in workflow system |
US20070027810A1 (en) * | 2005-08-01 | 2007-02-01 | Sbc Knowledge Ventures, L.P. | Portfolio and resource tracking system |
US20070033080A1 (en) * | 2005-08-04 | 2007-02-08 | Prolify Ltd. | Method and apparatus for process discovery related applications |
TW200709088A (en) * | 2005-08-26 | 2007-03-01 | wen-xian Chen | Intelligent management method and the system thereof |
US7499906B2 (en) * | 2005-09-05 | 2009-03-03 | International Business Machines Corporation | Method and apparatus for optimization in workflow management systems |
US20110145689A1 (en) * | 2005-09-09 | 2011-06-16 | Microsoft Corporation | Named object view over multiple files |
US20070061699A1 (en) * | 2005-09-09 | 2007-03-15 | Microsoft Corporation | Named object view of electronic data report |
US20100257106A1 (en) * | 2005-09-26 | 2010-10-07 | Iyer Balasubramanian K | System timeline execution model development methodology for large distributed real-time embedded systems |
US20070088589A1 (en) * | 2005-10-17 | 2007-04-19 | International Business Machines Corporation | Method and system for assessing automation package readiness and and effort for completion |
US8286183B2 (en) * | 2005-10-22 | 2012-10-09 | Cisco Technology, Inc. | Techniques for task management using presence |
JP2007128356A (en) * | 2005-11-04 | 2007-05-24 | Canon Inc | Information processor and information processing method and system |
US10157355B2 (en) | 2005-11-15 | 2018-12-18 | General Electric Company | Method to view schedule interdependencies and provide proactive clinical process decision support in day view form |
US7853465B2 (en) * | 2005-12-02 | 2010-12-14 | Oracle International Corp. | Methods and apparatus to present event information with respect to a timeline |
US7908549B2 (en) * | 2005-12-08 | 2011-03-15 | Microsoft Corporation | Spreadsheet calculation as part of workflow |
US9501463B2 (en) * | 2005-12-08 | 2016-11-22 | Microsoft Technology Licensing, Llc | Spreadsheet cell-based notifications |
US20070185832A1 (en) * | 2006-01-24 | 2007-08-09 | Microsoft Corporation | Managing tasks for multiple file types |
US20070179965A1 (en) * | 2006-01-27 | 2007-08-02 | Hogue Andrew W | Designating data objects for analysis |
US20070185870A1 (en) * | 2006-01-27 | 2007-08-09 | Hogue Andrew W | Data object visualization using graphs |
US7778952B2 (en) * | 2006-01-27 | 2010-08-17 | Google, Inc. | Displaying facts on a linear graph |
US8055674B2 (en) | 2006-02-17 | 2011-11-08 | Google Inc. | Annotation framework |
US8954426B2 (en) | 2006-02-17 | 2015-02-10 | Google Inc. | Query language |
US7925676B2 (en) * | 2006-01-27 | 2011-04-12 | Google Inc. | Data object visualization using maps |
CA2640739A1 (en) * | 2006-01-31 | 2007-09-08 | Captaris, Inc. | Workflow applications |
US8041648B2 (en) | 2006-02-15 | 2011-10-18 | Allstate Insurance Company | Retail location services |
CA2541763A1 (en) * | 2006-02-15 | 2007-08-15 | Sharon Rossmark | Retail deployment model |
US8219535B1 (en) | 2006-02-15 | 2012-07-10 | Allstate Insurance Company | Retail deployment model |
US8458661B2 (en) | 2006-03-31 | 2013-06-04 | Ebay Inc. | Distributed parallel build system |
US20080027782A1 (en) * | 2006-04-07 | 2008-01-31 | Juliana Freire | Managing provenance of the evolutionary development of workflows |
US7631014B2 (en) * | 2006-04-27 | 2009-12-08 | International Business Machines Corporation | Method and apparatus for fast deletion of physically clustered data |
US20070255677A1 (en) * | 2006-04-28 | 2007-11-01 | Sun Microsystems, Inc. | Method and apparatus for browsing search results via a virtual file system |
US8886553B2 (en) * | 2006-05-02 | 2014-11-11 | Microsoft Corporation | Visual workflow process notation and layout |
US20070265900A1 (en) * | 2006-05-09 | 2007-11-15 | Moore Dennis B | Business process evolution |
US20070265895A1 (en) * | 2006-05-09 | 2007-11-15 | Sap Ag | Ad-hoc workflow as a business process template |
US8799181B2 (en) * | 2006-05-09 | 2014-08-05 | Sag Ag | Business process federated repository |
WO2007134265A2 (en) * | 2006-05-12 | 2007-11-22 | Captaris, Inc. | Workflow data binding |
US8181150B2 (en) * | 2006-05-12 | 2012-05-15 | The Mathworks, Inc. | System and method for synchronized workflow management |
US7971179B2 (en) * | 2006-05-23 | 2011-06-28 | Microsoft Corporation | Providing artifact lifespan and relationship representation |
US8050953B2 (en) * | 2006-06-07 | 2011-11-01 | Ricoh Company, Ltd. | Use of a database in a network-based project schedule management system |
US8799043B2 (en) | 2006-06-07 | 2014-08-05 | Ricoh Company, Ltd. | Consolidation of member schedules with a project schedule in a network-based management system |
US20070288883A1 (en) * | 2006-06-09 | 2007-12-13 | International Business Machines Corporation | Method for consolidated launching of multiple tasks |
US7870536B2 (en) * | 2006-06-15 | 2011-01-11 | International Business Machines Corporation | Computer implemented method and system for sharing resources among hierarchical containers of resources |
US8302073B2 (en) * | 2006-06-15 | 2012-10-30 | International Business Machines Corporation | Moving and copying dependencies along with source code |
US20080004925A1 (en) * | 2006-06-29 | 2008-01-03 | Bangel Matthew J | Multi-site project management |
US8361094B2 (en) | 2006-06-30 | 2013-01-29 | Atheromed, Inc. | Atherectomy devices and methods |
KR20090037906A (en) | 2006-06-30 | 2009-04-16 | 아테로메드, 아이엔씨. | Atherectomy devices and methods |
US20080133293A1 (en) * | 2006-07-05 | 2008-06-05 | Gordon K Scott | Method for producing on-time, on-budget, on-spec outcomes for IT software projects |
US20080015918A1 (en) * | 2006-07-14 | 2008-01-17 | Pangrazio Donald M | Workflow selection process and system |
US8626557B2 (en) * | 2006-09-26 | 2014-01-07 | International Business Machines Corporation | System and method of providing snapshot to support approval of workflow changes |
US8954412B1 (en) | 2006-09-28 | 2015-02-10 | Google Inc. | Corroborating facts in electronic documents |
US20080082578A1 (en) | 2006-09-29 | 2008-04-03 | Andrew Hogue | Displaying search results on a one or two dimensional graph |
US7761559B2 (en) * | 2006-10-13 | 2010-07-20 | International Business Machines Corporation | System and method of remotely managing and loading artifacts |
US7720931B2 (en) | 2006-10-13 | 2010-05-18 | International Business Machines Corporation | System and method of remotely managing and loading artifacts |
GB0621300D0 (en) * | 2006-10-26 | 2006-12-06 | Ibm | Configuring a software product |
US20080109467A1 (en) * | 2006-11-03 | 2008-05-08 | Microsoft Corporation | Data entity centric approach for designing workflows |
US9691038B2 (en) * | 2006-11-03 | 2017-06-27 | International Business Machines Corporation | Method and apparatus for examining workflow processes |
US20080109291A1 (en) * | 2006-11-07 | 2008-05-08 | Montes De Oca Group, Inc. | Executing and Tracking Strategic Plans |
US20080115195A1 (en) * | 2006-11-13 | 2008-05-15 | Microsoft Corporation | Remote workflow schedule authoring |
US20080114627A1 (en) * | 2006-11-15 | 2008-05-15 | Sap Ag | System and Method for Capturing Process Instance Information in Complex or Distributed Systems |
US20080155495A1 (en) * | 2006-11-27 | 2008-06-26 | Sourcecode Technology Holding, Inc. | Methods and apparatus for modeling a workflow process in an offline environment |
US8250583B2 (en) | 2006-12-04 | 2012-08-21 | International Business Machines Corporation | Workflow processing system and method with federated database system support |
US8676618B2 (en) * | 2006-12-28 | 2014-03-18 | Sap Ag | Systems and methods for automatic detection and processing of instances of business rules |
US8510229B1 (en) * | 2007-01-31 | 2013-08-13 | Sprint Communications Company L.P. | Project efficiency analysis |
US20080201154A1 (en) * | 2007-02-15 | 2008-08-21 | Skipp Anne Haynes Williamson | System and method for continuous process improvement |
US8347202B1 (en) | 2007-03-14 | 2013-01-01 | Google Inc. | Determining geographic locations for place names in a fact repository |
JP4910804B2 (en) * | 2007-03-15 | 2012-04-04 | 富士通株式会社 | Business process estimation program, business process estimation method, and business process estimation apparatus |
EP2135156A4 (en) * | 2007-04-12 | 2011-02-02 | Thomson Licensing | Worklow engine for media production and distribution |
US8326669B2 (en) | 2007-04-19 | 2012-12-04 | International Business Machines Corporation | System and method for selecting and scheduling corrective actions for automated storage management |
US10032236B2 (en) * | 2007-04-26 | 2018-07-24 | General Electric Company | Electronic health record timeline and the human figure |
US8239751B1 (en) | 2007-05-16 | 2012-08-07 | Google Inc. | Data from web documents in a spreadsheet |
US20080288320A1 (en) * | 2007-05-17 | 2008-11-20 | Ockers Jay R | Actionable business plan creation and execution |
US8032404B2 (en) | 2007-06-13 | 2011-10-04 | International Business Machines Corporation | Method and system for estimating financial benefits of packaged application service projects |
US7971180B2 (en) * | 2007-06-13 | 2011-06-28 | International Business Machines Corporation | Method and system for evaluating multi-dimensional project plans for implementing packaged software applications |
US20080313008A1 (en) * | 2007-06-13 | 2008-12-18 | International Business Machines Corporation | Method and system for model-driven approaches to generic project estimation models for packaged software applications |
US8006223B2 (en) * | 2007-06-13 | 2011-08-23 | International Business Machines Corporation | Method and system for estimating project plans for packaged software applications |
US20080312980A1 (en) * | 2007-06-13 | 2008-12-18 | International Business Machines Corporation | Method and system for staffing and cost estimation models aligned with multi-dimensional project plans for packaged software applications |
US8055606B2 (en) * | 2007-06-13 | 2011-11-08 | International Business Machines Corporation | Method and system for self-calibrating project estimation models for packaged software applications |
US9612848B2 (en) * | 2007-06-25 | 2017-04-04 | OutSystems—Software em Rede S.A. | Systems and methods for gathering and processing user feedback |
US20090012834A1 (en) * | 2007-07-03 | 2009-01-08 | Brian Fahey | Compliance Management System |
US20090049108A1 (en) * | 2007-07-17 | 2009-02-19 | Gridiron Software Inc. | Method and apparatus for workflow versioning |
US8239239B1 (en) * | 2007-07-23 | 2012-08-07 | Adobe Systems Incorporated | Methods and systems for dynamic workflow access based on user action |
US20090030918A1 (en) * | 2007-07-26 | 2009-01-29 | Ryma Technology Solutions | Collaborative development method and system |
GB2452701A (en) * | 2007-08-31 | 2009-03-18 | Gasconex Ltd | Project Management Tool |
US20090063623A1 (en) * | 2007-08-31 | 2009-03-05 | International Business Machines Corporation | Determining connection information to use to access an artifact from an application on a remote server |
CA2849484A1 (en) * | 2007-09-20 | 2009-03-26 | David A. Peterson | Computer system with multiple terminals |
JP4508226B2 (en) * | 2007-09-28 | 2010-07-21 | 富士ゼロックス株式会社 | Workflow system and program |
US20090089115A1 (en) * | 2007-10-01 | 2009-04-02 | Oracle International Corporation | Computer-implemented methods and systems for deriving process flow diagrams |
US10121153B1 (en) | 2007-10-15 | 2018-11-06 | Elance, Inc. | Online escrow service |
US20090099896A1 (en) * | 2007-10-15 | 2009-04-16 | International Business Machines Corporation | System and method for workflow delinquency remediation |
US20090119114A1 (en) * | 2007-11-02 | 2009-05-07 | David Alaniz | Systems and Methods for Enabling Customer Service |
CN102007504A (en) * | 2007-11-10 | 2011-04-06 | 兰德马克绘图国际公司,哈里伯顿公司 | Systems and methods for workflow automation, adaptation and integration |
US20090125366A1 (en) * | 2007-11-13 | 2009-05-14 | Dipanjan Chakraborty | Method and system for dynamic adaptation of workflows |
JP4568320B2 (en) * | 2007-11-19 | 2010-10-27 | 株式会社日立製作所 | Processing procedure generation apparatus and processing procedure generation method |
US8151202B1 (en) * | 2007-12-05 | 2012-04-03 | Teradata Us, Inc. | Providing a workflow guide |
US8151208B2 (en) * | 2008-02-07 | 2012-04-03 | Microsoft Corporation | Workflow tracking information preview |
US9070095B2 (en) * | 2008-04-01 | 2015-06-30 | Siemens Aktiengesellschaft | Ensuring referential integrity of medical image data |
US8073799B2 (en) * | 2008-04-10 | 2011-12-06 | Facilitaire, Inc. | Method for generating design requirements information technology development projects |
US10204074B1 (en) | 2008-06-12 | 2019-02-12 | Elance, Inc. | Online professional services storefront |
US20090327921A1 (en) * | 2008-06-27 | 2009-12-31 | Microsoft Corporation | Animation to visualize changes and interrelationships |
US20090327020A1 (en) * | 2008-06-27 | 2009-12-31 | Microsoft Corporation | Intelligent task Deactivation In Project Scheduling Application |
US20100017246A1 (en) * | 2008-07-20 | 2010-01-21 | Farrell Glenn H | Software user interface for specification of project task dependencies and deadlines |
US20100042418A1 (en) * | 2008-08-12 | 2010-02-18 | Kjell Olsson | Technical tools for complex information |
US20100050153A1 (en) * | 2008-08-21 | 2010-02-25 | Clevest Solutions Inc. | Method and system of editing workflow logic and screens with a gui tool |
US20100049568A1 (en) * | 2008-08-21 | 2010-02-25 | Clevest Solutions Inc. | System and Method for an Extensible Workflow Management |
US9569738B2 (en) * | 2008-08-26 | 2017-02-14 | The Boeing Company | Methods and systems for deploying a navigation tool associated with a continuous improvement approach for an enterprise |
WO2010036803A2 (en) * | 2008-09-24 | 2010-04-01 | Savvion Inc. | Computer software |
US20100088139A1 (en) * | 2008-10-07 | 2010-04-08 | Rahi M Ahsan | Project management system adapted for planning and managing projects |
US9195525B2 (en) * | 2008-10-21 | 2015-11-24 | Synactive, Inc. | Method and apparatus for generating a web-based user interface |
US10523767B2 (en) | 2008-11-20 | 2019-12-31 | Synactive, Inc. | System and method for improved SAP communications |
US9043772B2 (en) * | 2008-11-21 | 2015-05-26 | Oracle International Corporation | Optimization hints for a business process flow |
US20100145749A1 (en) * | 2008-12-09 | 2010-06-10 | Sarel Aiber | Method and system for automatic continuous monitoring and on-demand optimization of business it infrastructure according to business objectives |
US8769482B2 (en) * | 2008-12-16 | 2014-07-01 | International Business Machines Corporation | Method and system for building an application |
WO2010083533A2 (en) * | 2009-01-16 | 2010-07-22 | Greengo Systems, Inc. | Project planning system |
US20100223557A1 (en) * | 2009-02-28 | 2010-09-02 | Adam Kenney | Method and system for workflow integration |
US8250520B2 (en) * | 2009-03-17 | 2012-08-21 | Microsoft Corporation | Implementing custom activities in a workflow |
US20100241477A1 (en) * | 2009-03-19 | 2010-09-23 | Scenario Design, Llc | Dimensioned modeling system |
US8171337B2 (en) | 2009-03-30 | 2012-05-01 | The Boeing Company | Computer architectures using shared storage |
US20100251100A1 (en) * | 2009-03-31 | 2010-09-30 | Yann Delacourt | Primitive-based presentation of dimensional information using layout script |
US10635412B1 (en) | 2009-05-28 | 2020-04-28 | ELANCE, Inc . | Online professional badge |
US10650332B1 (en) | 2009-06-01 | 2020-05-12 | Elance, Inc. | Buyer-provider matching algorithm |
US8726226B2 (en) * | 2009-06-05 | 2014-05-13 | Microsoft Corporation | Integrated work lists for engineering project change management |
US9129256B2 (en) * | 2009-07-24 | 2015-09-08 | Oracle International Corporation | Enabling collaboration on a project plan |
WO2011014442A1 (en) * | 2009-07-27 | 2011-02-03 | Nextgen Healthcare Information Systems, Inc. | Systematic rule-based workflow tasking and event scheduling |
US9135277B2 (en) | 2009-08-07 | 2015-09-15 | Google Inc. | Architecture for responding to a visual query |
US9087059B2 (en) | 2009-08-07 | 2015-07-21 | Google Inc. | User interface for presenting search results for multiple regions of a visual query |
US20110093293A1 (en) * | 2009-10-16 | 2011-04-21 | Infosys Technologies Limited | Method and system for performing clinical data mining |
US20110119680A1 (en) * | 2009-11-16 | 2011-05-19 | Yahoo! Inc. | Policy-driven schema and system for managing data system pipelines in multi-tenant model |
US20110154342A1 (en) * | 2009-12-22 | 2011-06-23 | Research In Motion Limited | Method and apparatus for providing reminders |
MX2012007880A (en) * | 2010-01-08 | 2012-08-03 | Fluor Tech Corp | Systems for estimating new industrial plant operational readiness costs. |
US9842312B1 (en) | 2010-02-19 | 2017-12-12 | Upwork Global Inc. | Digital workroom |
US8886713B2 (en) * | 2010-03-31 | 2014-11-11 | Prospx, Inc. | System for providing information to a plurality of users |
US8990427B2 (en) | 2010-04-13 | 2015-03-24 | Synactive, Inc. | Method and apparatus for accessing an enterprise resource planning system via a mobile device |
US20110270768A1 (en) * | 2010-04-30 | 2011-11-03 | Bank Of America Corporation | International Cross Border Data Movement |
US9098462B1 (en) | 2010-09-14 | 2015-08-04 | The Boeing Company | Communications via shared memory |
US9747270B2 (en) | 2011-01-07 | 2017-08-29 | Microsoft Technology Licensing, Llc | Natural input for spreadsheet actions |
US8910111B2 (en) * | 2010-10-15 | 2014-12-09 | Cisco Technology, Inc. | Software map to represent information regarding software development events |
US9852383B2 (en) * | 2010-10-29 | 2017-12-26 | Kaseya Limited | Method and apparatus of tracking time worked in a multi-tasking environment |
US8494995B2 (en) | 2010-11-17 | 2013-07-23 | International Business Machines Corporation | Systems and methods for dynamically reconfiguring predictive analytics within workflows using selective user feedback |
US9632763B2 (en) * | 2011-03-09 | 2017-04-25 | International Business Machines Corporation | Sharing of flows in a stream processing system |
US8661444B2 (en) * | 2011-05-17 | 2014-02-25 | International Business Machines Corporation | Creation of flexible workflows using artifacts |
US9317825B2 (en) | 2011-06-27 | 2016-04-19 | Deltek, Inc. | System and method for managing projects |
US8924490B2 (en) * | 2011-06-30 | 2014-12-30 | Microsoft Corporation | Service based event planning |
US8214904B1 (en) | 2011-12-21 | 2012-07-03 | Kaspersky Lab Zao | System and method for detecting computer security threats based on verdicts of computer users |
US20130110730A1 (en) * | 2011-10-28 | 2013-05-02 | International Business Machines Corporation | Integration of computerized project planning and project diagramming |
US8904397B2 (en) * | 2011-10-31 | 2014-12-02 | International Business Machines Corporation | Staggering execution of scheduled tasks based on behavioral information |
US9355009B2 (en) | 2011-10-31 | 2016-05-31 | International Business Machines Corporation | Performance of scheduled tasks via behavior analysis and dynamic optimization |
US9047396B2 (en) | 2011-10-31 | 2015-06-02 | International Business Machines Corporation | Method, system and computer product for rescheduling processing of set of work items based on historical trend of execution time |
US9053083B2 (en) | 2011-11-04 | 2015-06-09 | Microsoft Technology Licensing, Llc | Interaction between web gadgets and spreadsheets |
US20130152181A1 (en) * | 2011-12-07 | 2013-06-13 | International Business Machines Corporation | Portal based case status management |
US8214905B1 (en) * | 2011-12-21 | 2012-07-03 | Kaspersky Lab Zao | System and method for dynamically allocating computing resources for processing security information |
US8209758B1 (en) * | 2011-12-21 | 2012-06-26 | Kaspersky Lab Zao | System and method for classifying users of antivirus software based on their level of expertise in the field of computer security |
US9171099B2 (en) | 2012-01-26 | 2015-10-27 | Microsoft Technology Licensing, Llc | System and method for providing calculation web services for online documents |
US9477936B2 (en) | 2012-02-09 | 2016-10-25 | Rockwell Automation Technologies, Inc. | Cloud-based operator interface for industrial automation |
US9009675B2 (en) * | 2012-03-21 | 2015-04-14 | International Business Machines Corporation | Verification of complex workflows through internal assessment or community based assessment |
US20150051916A1 (en) * | 2012-03-29 | 2015-02-19 | Koninklijke Philips N.V. | Method and a system to determine and indicate the time feasibility of a clinical pathway, enabling workflow adjustments |
US20130304536A1 (en) | 2012-05-10 | 2013-11-14 | Ebay, Inc. | Harvest Customer Tracking Information |
US9189761B1 (en) * | 2012-05-17 | 2015-11-17 | Emc Corporation | Action flow client framework |
US9069627B2 (en) | 2012-06-06 | 2015-06-30 | Synactive, Inc. | Method and apparatus for providing a dynamic execution environment in network communication between a client and a server |
US9582777B2 (en) * | 2012-06-21 | 2017-02-28 | Centerpoint Properties Trust | Point-in-time requirement tracking methods and apparatus |
US9300745B2 (en) | 2012-07-27 | 2016-03-29 | Synactive, Inc. | Dynamic execution environment in network communications |
JP5978836B2 (en) * | 2012-07-30 | 2016-08-24 | 富士通株式会社 | Workflow extraction program, workflow extraction method, and workflow extraction apparatus |
US9239719B1 (en) * | 2013-01-23 | 2016-01-19 | Amazon Technologies, Inc. | Task management system |
FR3002666B1 (en) * | 2013-02-27 | 2016-07-15 | Jade-I | METHOD FOR CENTRALIZED PLANNING OF TASKS TO BE EXECUTED BY COMPUTERS THAT VERIFY CERTAIN QUALITATIVE CRITERIA WITHIN A SET DISTRIBUTED BY COMPUTERS |
US9235808B2 (en) | 2013-03-14 | 2016-01-12 | International Business Machines Corporation | Evaluation of predictions in the absence of a known ground truth |
US9342220B2 (en) * | 2013-03-14 | 2016-05-17 | Microsoft Technology Licensing, Llc | Process modeling and interface |
US20140279569A1 (en) * | 2013-03-15 | 2014-09-18 | International Business Machines Corporation | Managing workflow approval |
US9703902B2 (en) | 2013-05-09 | 2017-07-11 | Rockwell Automation Technologies, Inc. | Using cloud-based data for industrial simulation |
US9989958B2 (en) | 2013-05-09 | 2018-06-05 | Rockwell Automation Technologies, Inc. | Using cloud-based data for virtualization of an industrial automation environment |
US9786197B2 (en) * | 2013-05-09 | 2017-10-10 | Rockwell Automation Technologies, Inc. | Using cloud-based data to facilitate enhancing performance in connection with an industrial automation system |
US9438648B2 (en) | 2013-05-09 | 2016-09-06 | Rockwell Automation Technologies, Inc. | Industrial data analytics in a cloud platform |
JP6146132B2 (en) * | 2013-05-23 | 2017-06-14 | 株式会社リコー | Information processing apparatus, information processing method, and computer program |
US10664652B2 (en) | 2013-06-15 | 2020-05-26 | Microsoft Technology Licensing, Llc | Seamless grid and canvas integration in a spreadsheet application |
US8819617B1 (en) * | 2013-09-19 | 2014-08-26 | Fmr Llc | System and method for providing access to data in a plurality of software development systems |
US9092575B2 (en) | 2013-09-19 | 2015-07-28 | Fmr Llc | System and method for providing access to data in a plurality of software development systems |
US9984103B2 (en) * | 2013-10-14 | 2018-05-29 | Schneider Electric Software, Llc | Adaptive filtering in industrial control system |
US20150193227A1 (en) * | 2014-01-09 | 2015-07-09 | International Business Machines Corporation | Unified planning for application lifecycle management |
US10223653B1 (en) * | 2014-02-20 | 2019-03-05 | Elance, Inc. | Onboarding dashboard and methods and system thereof |
US10521601B2 (en) | 2014-04-30 | 2019-12-31 | Sailpoint Technologies, Israel Ltd. | System and method for data governance |
US20160055314A1 (en) * | 2014-08-19 | 2016-02-25 | Surescripts LLC | Method, system, and apparatus for electronic prior authorization accelerator |
US10936975B2 (en) * | 2014-11-21 | 2021-03-02 | Oracle International Corporation | System and method for changing resource calendars by editing calendar views |
US10572848B2 (en) | 2014-12-16 | 2020-02-25 | Oracle International Corporation | System and method for intelligent project schedule forecasting |
CN105808619B (en) * | 2014-12-31 | 2019-08-06 | 华为技术有限公司 | Method, impact analysis computing device and the key reset apparatus that task based on impact analysis is reformed |
US10055703B2 (en) * | 2015-01-13 | 2018-08-21 | Accenture Global Services Limited | Factory management system |
US9984653B1 (en) * | 2015-02-11 | 2018-05-29 | Synaptics Incorporated | Method and device for reducing video latency |
US11243505B2 (en) | 2015-03-16 | 2022-02-08 | Rockwell Automation Technologies, Inc. | Cloud-based analytics for industrial automation |
US11513477B2 (en) | 2015-03-16 | 2022-11-29 | Rockwell Automation Technologies, Inc. | Cloud-based industrial controller |
US10496061B2 (en) | 2015-03-16 | 2019-12-03 | Rockwell Automation Technologies, Inc. | Modeling of an industrial automation environment in the cloud |
US11042131B2 (en) | 2015-03-16 | 2021-06-22 | Rockwell Automation Technologies, Inc. | Backup of an industrial automation plant in the cloud |
US20160283293A1 (en) * | 2015-03-27 | 2016-09-29 | Accenture Global Services Limited | Automation system for implementing a standardized design methodology for a process automation service |
US9898471B1 (en) * | 2015-08-14 | 2018-02-20 | VCE IP Holding LLC | Computer implemented system and method, and computer program product, for generic source control for orchestration workflows |
CN105354083B (en) * | 2015-09-30 | 2018-12-04 | 北京京东尚科信息技术有限公司 | A kind of method and device checking scheduler task precondition |
US20170154296A1 (en) * | 2015-12-01 | 2017-06-01 | International Business Machines Corporation | Prioritizing contextual information system, method, and recording medium |
US10089294B2 (en) * | 2015-12-30 | 2018-10-02 | Sap Se | Systems and methods for tracking and modifying actions in an action history |
US10146665B2 (en) * | 2016-03-24 | 2018-12-04 | Oracle International Corporation | Systems and methods for providing dynamic and real time simulations of matching resources to requests |
US10692030B2 (en) * | 2016-06-21 | 2020-06-23 | Amazon Technologies, Inc. | Process visualization platform |
US10445702B1 (en) * | 2016-06-30 | 2019-10-15 | John E. Hunt | Personal adaptive scheduling system and associated methods |
WO2018144908A1 (en) * | 2017-02-03 | 2018-08-09 | Jasci LLC | Systems and methods for warehouse management |
AU2018201198A1 (en) | 2017-02-21 | 2018-09-06 | Sourcecode Technology Holdings, Inc | Collaborative design systems, apparatuses, and methods |
US11023601B2 (en) * | 2018-04-20 | 2021-06-01 | Rohde & Schwarz Gmbh & Co. Kg | System and method for secure data handling |
US11087259B2 (en) * | 2018-07-12 | 2021-08-10 | Nintex UK Ltd. | Business designer |
CN110533383B (en) * | 2019-07-24 | 2023-06-06 | 平安科技(深圳)有限公司 | Item supervision method, device, computer equipment and storage medium |
US11420327B2 (en) * | 2019-11-05 | 2022-08-23 | BioSero Inc. | Automated control of multi-process using robotic equipment for complex workflows |
US11461677B2 (en) | 2020-03-10 | 2022-10-04 | Sailpoint Technologies, Inc. | Systems and methods for data correlation and artifact matching in identity management artificial intelligence systems |
JP2021157267A (en) * | 2020-03-25 | 2021-10-07 | 富士通株式会社 | Display control method, information processing apparatus, and display control program |
WO2021217470A1 (en) * | 2020-04-29 | 2021-11-04 | Citrix Systems, Inc. | Computer resource allocation based on categorizing computing processes |
US11295260B2 (en) * | 2020-07-22 | 2022-04-05 | Servicenow, Inc. | Multi-process workflow designer |
WO2022020182A1 (en) * | 2020-07-22 | 2022-01-27 | Servicenow, Inc. | Multi-process workflow designer |
US11288611B2 (en) * | 2020-07-22 | 2022-03-29 | Servicenow, Inc. | Multi-process workflow designer user interface |
US11304723B1 (en) | 2020-12-17 | 2022-04-19 | Avantec Vascular Corporation | Atherectomy devices that are self-driving with controlled deflection |
US11436543B2 (en) * | 2020-12-31 | 2022-09-06 | Target Brands, Inc. | Plan creation interfaces for warehouse operations |
WO2022178547A1 (en) * | 2021-02-22 | 2022-08-25 | BioSero Inc. | Use of mobile robotics in self-assembling workcells of complex workflows |
US11308186B1 (en) | 2021-03-19 | 2022-04-19 | Sailpoint Technologies, Inc. | Systems and methods for data correlation and artifact matching in identity management artificial intelligence systems |
US11392421B1 (en) * | 2021-12-01 | 2022-07-19 | Atlassian Pty Ltd. | Apparatuses, computer-implemented methods, and systems for outputting a normalizing resource estimate aggregation interface component in association with a project management system |
US20230316190A1 (en) * | 2022-03-31 | 2023-10-05 | Docusign, Inc. | Document workflows in a document management system |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5255181A (en) * | 1990-06-01 | 1993-10-19 | Motorola, Inc. | Method of planning organizational activities |
US5408663A (en) * | 1993-11-05 | 1995-04-18 | Adrem Technologies, Inc. | Resource allocation methods |
US5471408A (en) * | 1992-08-03 | 1995-11-28 | Hitachi, Ltd. | Method for optimizing resource allocation and an apparatus using the method |
US5655118A (en) * | 1994-03-21 | 1997-08-05 | Bell Communications Research, Inc. | Methods and apparatus for managing information on activities of an enterprise |
US5826239A (en) * | 1996-12-17 | 1998-10-20 | Hewlett-Packard Company | Distributed workflow resource management system and method |
US5953707A (en) * | 1995-10-26 | 1999-09-14 | Philips Electronics North America Corporation | Decision support system for the management of an agile supply chain |
US5974392A (en) * | 1995-02-14 | 1999-10-26 | Kabushiki Kaisha Toshiba | Work flow system for task allocation and reallocation |
US6182133B1 (en) * | 1998-02-06 | 2001-01-30 | Microsoft Corporation | Method and apparatus for display of information prefetching and cache status having variable visual indication based on a period of time since prefetching |
US6578005B1 (en) * | 1996-11-22 | 2003-06-10 | British Telecommunications Public Limited Company | Method and apparatus for resource allocation when schedule changes are incorporated in real time |
US20040078373A1 (en) * | 1998-08-24 | 2004-04-22 | Adel Ghoneimy | Workflow system and method |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR930007749B1 (en) | 1988-05-25 | 1993-08-18 | 마쯔시다덴기산교 가부시기가이샤 | Apparatus for inferring planning types of manufacturing |
CA1337132C (en) * | 1988-07-15 | 1995-09-26 | Robert Filepp | Reception system for an interactive computer network and method of operation |
US5790116A (en) * | 1989-06-30 | 1998-08-04 | Massachusetts Institute Of Technology | Object-oriented computer user interface |
CA2054026A1 (en) * | 1990-10-31 | 1992-05-01 | William Monroe Turpin | Goal oriented electronic form system |
GB9303873D0 (en) * | 1993-02-25 | 1993-04-14 | Massachusetts Inst Technology | A computerized handbook of and tool for inventing organizational processes |
SE9300671D0 (en) * | 1993-03-01 | 1993-03-01 | Sven Nauckhoff | WORK FLOW MANAGEMENT |
US5490097A (en) * | 1993-03-22 | 1996-02-06 | Fujitsu Limited | System and method for modeling, analyzing and executing work process plans |
US5414809A (en) | 1993-04-30 | 1995-05-09 | Texas Instruments Incorporated | Graphical display of data |
US5563994A (en) | 1994-03-11 | 1996-10-08 | Harmon; Samuel T. | System for graphically generating the sequence and temporal relationship between tasks in a project |
US5974391A (en) | 1994-07-12 | 1999-10-26 | Fujitsu Limited | Device and method for project management |
US6160549A (en) * | 1994-07-29 | 2000-12-12 | Oracle Corporation | Method and apparatus for generating reports using declarative tools |
US5835683A (en) * | 1995-01-12 | 1998-11-10 | International Business Machines Corporation | System and method for authoring an expert system |
US5835758A (en) * | 1995-02-28 | 1998-11-10 | Vidya Technologies, Inc. | Method and system for respresenting and processing physical and conceptual entities |
US5893123A (en) * | 1995-06-22 | 1999-04-06 | Tuinenga; Paul W. | System and method of integrating a spreadsheet and external program having output data calculated automatically in response to input data from the spreadsheet |
DE19535084A1 (en) * | 1995-09-21 | 1997-03-27 | Ibm | Dynamic optimisation of business processes managed by computer system |
US6157934A (en) * | 1995-10-24 | 2000-12-05 | Ultimus, L.L.C. | Method and apparatus for using distributed spreadsheets in a client/server architecture for workflow automation |
US5848393A (en) * | 1995-12-15 | 1998-12-08 | Ncr Corporation | "What if . . . " function for simulating operations within a task workflow management system |
US5970482A (en) * | 1996-02-12 | 1999-10-19 | Datamind Corporation | System for data mining using neuroagents |
DE19705955A1 (en) * | 1996-03-29 | 1997-10-02 | Ibm | Workflow processing model implementation method |
WO1997038386A1 (en) * | 1996-04-10 | 1997-10-16 | Konnersman Paul M | Computer-based system for work processes that consist of interdependent decisions involving one or more participants |
US5926822A (en) * | 1996-09-06 | 1999-07-20 | Financial Engineering Associates, Inc. | Transformation of real time data into times series and filtered real time data within a spreadsheet application |
US5930512A (en) * | 1996-10-18 | 1999-07-27 | International Business Machines Corporation | Method and apparatus for building and running workflow process models using a hypertext markup language |
AU5200198A (en) * | 1996-11-07 | 1998-05-29 | Natrificial Llc | Method and apparatus for organizing and processing information using a digital computer |
JPH10207939A (en) * | 1997-01-17 | 1998-08-07 | Nec Corp | Work flow system |
US6044218A (en) * | 1997-01-31 | 2000-03-28 | Sun Microsystems, Inc. | System, method and article of manufacture for creating a live application or applet development environment |
US5845279A (en) * | 1997-06-27 | 1998-12-01 | Lucent Technologies Inc. | Scheduling resources for continuous media databases |
DE69811790T2 (en) * | 1997-08-01 | 2003-11-20 | Ibm | Deriving process models from audit processes for workflow management systems |
US5924096A (en) * | 1997-10-15 | 1999-07-13 | Novell, Inc. | Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand |
US6334146B1 (en) * | 1998-06-05 | 2001-12-25 | I2 Technologies Us, Inc. | System and method for remotely accessing data |
US6282531B1 (en) * | 1998-06-12 | 2001-08-28 | Cognimed, Llc | System for managing applied knowledge and workflow in multiple dimensions and contexts |
DE19948028A1 (en) | 1998-11-20 | 2000-05-31 | Ibm | Request dispatch optimization method for computerized workflow management system has overall optimization function effected by local work management system for reconfiguration of remote work management systems |
US7017142B1 (en) * | 1998-12-03 | 2006-03-21 | International Business Machines Corporation | Method and apparatus for applying business rules in an object model driven context |
US6321133B1 (en) * | 1998-12-04 | 2001-11-20 | Impresse Corporation | Method and apparatus for order promising |
US6895573B2 (en) * | 2001-10-26 | 2005-05-17 | Resultmaker A/S | Method for generating a workflow on a computer, and a computer system adapted for performing the method |
US7272818B2 (en) * | 2003-04-10 | 2007-09-18 | Microsoft Corporation | Creation of an object within an object hierarchy structure |
US7240327B2 (en) * | 2003-06-04 | 2007-07-03 | Sap Ag | Cross-platform development for devices with heterogeneous capabilities |
US7305652B2 (en) * | 2004-03-11 | 2007-12-04 | International Business Machines Corporation | Standard application development template |
-
2001
- 2001-08-31 WO PCT/US2001/027173 patent/WO2002019272A1/en active Application Filing
- 2001-08-31 WO PCT/US2001/027264 patent/WO2002019228A1/en active Application Filing
- 2001-08-31 US US09/944,847 patent/US20020107914A1/en not_active Abandoned
- 2001-08-31 US US09/944,697 patent/US6968343B2/en not_active Expired - Fee Related
- 2001-08-31 AU AU2001290597A patent/AU2001290597A1/en not_active Abandoned
- 2001-08-31 WO PCT/US2001/027201 patent/WO2002019226A1/en active Application Filing
- 2001-08-31 AU AU2001292567A patent/AU2001292567A1/en not_active Abandoned
- 2001-08-31 US US09/945,081 patent/US6938240B2/en not_active Expired - Fee Related
- 2001-08-31 AU AU2001288597A patent/AU2001288597A1/en not_active Abandoned
- 2001-08-31 WO PCT/US2001/027177 patent/WO2002019224A1/en active Search and Examination
- 2001-08-31 US US09/944,696 patent/US20020075293A1/en not_active Abandoned
- 2001-08-31 AU AU2001286982A patent/AU2001286982A1/en not_active Abandoned
-
2005
- 2005-01-11 US US11/032,968 patent/US7493591B2/en not_active Expired - Fee Related
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5255181A (en) * | 1990-06-01 | 1993-10-19 | Motorola, Inc. | Method of planning organizational activities |
US5471408A (en) * | 1992-08-03 | 1995-11-28 | Hitachi, Ltd. | Method for optimizing resource allocation and an apparatus using the method |
US5408663A (en) * | 1993-11-05 | 1995-04-18 | Adrem Technologies, Inc. | Resource allocation methods |
US5655118A (en) * | 1994-03-21 | 1997-08-05 | Bell Communications Research, Inc. | Methods and apparatus for managing information on activities of an enterprise |
US5974392A (en) * | 1995-02-14 | 1999-10-26 | Kabushiki Kaisha Toshiba | Work flow system for task allocation and reallocation |
US5953707A (en) * | 1995-10-26 | 1999-09-14 | Philips Electronics North America Corporation | Decision support system for the management of an agile supply chain |
US6151582A (en) * | 1995-10-26 | 2000-11-21 | Philips Electronics North America Corp. | Decision support system for the management of an agile supply chain |
US6578005B1 (en) * | 1996-11-22 | 2003-06-10 | British Telecommunications Public Limited Company | Method and apparatus for resource allocation when schedule changes are incorporated in real time |
US5826239A (en) * | 1996-12-17 | 1998-10-20 | Hewlett-Packard Company | Distributed workflow resource management system and method |
US6182133B1 (en) * | 1998-02-06 | 2001-01-30 | Microsoft Corporation | Method and apparatus for display of information prefetching and cache status having variable visual indication based on a period of time since prefetching |
US20040078373A1 (en) * | 1998-08-24 | 2004-04-22 | Adel Ghoneimy | Workflow system and method |
Cited By (116)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6678671B1 (en) * | 2000-11-02 | 2004-01-13 | Klocwork Solutions Corporation | System for linking a resource management system with an event of a project in a project management system and a method therefor |
US20060010234A1 (en) * | 2001-09-07 | 2006-01-12 | Sun Microsystems Inc. | Dynamic provisioning of service components in a distributed system |
US8103760B2 (en) * | 2001-09-07 | 2012-01-24 | Oracle America, Inc. | Dynamic provisioning of service components in a distributed system |
US20030066032A1 (en) * | 2001-09-28 | 2003-04-03 | Siebel Systems,Inc. | System and method for facilitating user interaction in a browser environment |
US6993712B2 (en) * | 2001-09-28 | 2006-01-31 | Siebel Systems, Inc. | System and method for facilitating user interaction in a browser environment |
US20030110173A1 (en) * | 2001-12-11 | 2003-06-12 | Sun Microsystems, Inc. | Methods and apparatus for managing multiple user systems |
US7158972B2 (en) * | 2001-12-11 | 2007-01-02 | Sun Microsystems, Inc. | Methods and apparatus for managing multiple user systems |
US8271631B1 (en) * | 2001-12-21 | 2012-09-18 | Microsoft Corporation | Methods, tools, and interfaces for the dynamic assignment of people to groups to enable enhanced communication and collaboration |
US20040015587A1 (en) * | 2002-06-21 | 2004-01-22 | Kogut-O'connell Judy J. | System for transferring tools to resources |
US20040083480A1 (en) * | 2002-10-21 | 2004-04-29 | The Boeing Company | System and method for creating a pert chart |
US7260772B2 (en) * | 2002-10-21 | 2007-08-21 | The Boeing Company | System and method for creating a pert chart |
EP1418518A2 (en) * | 2002-10-30 | 2004-05-12 | Xerox Corporation | Planning and scheduling reconfigurable systems with regular and diagnostic jobs |
US7233405B2 (en) | 2002-10-30 | 2007-06-19 | Palo Alto Research Center, Incorporated | Planning and scheduling reconfigurable systems with regular and diagnostic jobs |
EP1418518A3 (en) * | 2002-10-30 | 2004-05-19 | Xerox Corporation | Planning and scheduling reconfigurable systems with regular and diagnostic jobs |
US20040085561A1 (en) * | 2002-10-30 | 2004-05-06 | Xerox Corporation | Planning and scheduling reconfigurable systems with regular and diagnostic jobs |
WO2004044807A1 (en) * | 2002-11-07 | 2004-05-27 | Singapore Institute Of Manufacturing Technology | Method for estimating a lead time of a process |
US20070240081A1 (en) * | 2002-12-19 | 2007-10-11 | Microsoft Corporation, Inc. | Contact page |
US7360174B2 (en) | 2002-12-19 | 2008-04-15 | Microsoft Corporation | Contact user interface |
US20040119758A1 (en) * | 2002-12-19 | 2004-06-24 | Grossman Joel K. | Contact controls |
US20040122822A1 (en) * | 2002-12-19 | 2004-06-24 | Thompson J. Patrick | Contact schema |
US20110010391A1 (en) * | 2002-12-19 | 2011-01-13 | Microsoft Corporation | Contact picker interface |
US20040119732A1 (en) * | 2002-12-19 | 2004-06-24 | Grossman Joel K. | Contact picker |
US7814438B2 (en) | 2002-12-19 | 2010-10-12 | Microsoft Corporation | Contact page |
US7802191B2 (en) | 2002-12-19 | 2010-09-21 | Microsoft Corporation | Contact picker interface |
US7418663B2 (en) | 2002-12-19 | 2008-08-26 | Microsoft Corporation | Contact picker interface |
US20080307306A1 (en) * | 2002-12-19 | 2008-12-11 | Microsoft Corporation | Contact picker interface |
US7636719B2 (en) | 2002-12-19 | 2009-12-22 | Microsoft Corporation | Contact schema |
US7360172B2 (en) * | 2002-12-19 | 2008-04-15 | Microsoft Corporation | Contact controls |
US8407600B2 (en) | 2002-12-19 | 2013-03-26 | Microsoft Corporation | Contact picker interface |
US7313760B2 (en) | 2002-12-19 | 2007-12-25 | Microsoft Corporation | Contact picker |
US20050005132A1 (en) * | 2003-07-03 | 2005-01-06 | International Business Machines Corporation | Password management |
US7650632B2 (en) * | 2003-07-03 | 2010-01-19 | International Business Machines Corporation | Password management |
US7308437B2 (en) * | 2003-10-22 | 2007-12-11 | International Business Machines Corporation | Optimization of queries using retrieval status of resources used thereby |
US20050091196A1 (en) * | 2003-10-22 | 2005-04-28 | International Business Machines Corporation | Optimization of queries using retrieval status of resources used thereby |
US7549125B2 (en) | 2003-10-23 | 2009-06-16 | Microsoft Corporation | Information picker |
US20110179367A1 (en) * | 2004-02-17 | 2011-07-21 | Microsoft Corporation | Simplifying application access to schematized contact data |
US8195711B2 (en) | 2004-02-17 | 2012-06-05 | Microsoft Corporation | Simplifying application access to schematized contact data |
US7953759B2 (en) | 2004-02-17 | 2011-05-31 | Microsoft Corporation | Simplifying application access to schematized contact data |
US20050182741A1 (en) * | 2004-02-17 | 2005-08-18 | Microsoft Corporation | Simplifying application access to schematized contact data |
US20080059637A1 (en) * | 2004-03-31 | 2008-03-06 | Cisco Technology, Inc. | System using planning information to modify operation of a digital network |
WO2005098735A2 (en) * | 2004-03-31 | 2005-10-20 | Cisco Technology, Inc. | System using planning information to modify operation of a digital network |
WO2005098735A3 (en) * | 2004-03-31 | 2007-02-15 | Cisco Tech Inc | System using planning information to modify operation of a digital network |
US7430719B2 (en) | 2004-07-07 | 2008-09-30 | Microsoft Corporation | Contact text box |
US20060020767A1 (en) * | 2004-07-10 | 2006-01-26 | Volker Sauermann | Data processing system and method for assigning objects to processing units |
US8224938B2 (en) * | 2004-07-10 | 2012-07-17 | Sap Ag | Data processing system and method for iteratively re-distributing objects across all or a minimum number of processing units |
US20080222645A1 (en) * | 2004-10-18 | 2008-09-11 | International Business Machines Corporation | Process Execution Management Based on Resource Requirements and Business Impacts |
US8745628B2 (en) * | 2004-10-18 | 2014-06-03 | International Business Machines Corporation | Execution order management of multiple processes on a data processing system by assigning constrained resources to the processes based on resource requirements and business impacts |
US7424334B2 (en) * | 2004-12-14 | 2008-09-09 | Delphi Technologies, Inc. | System, method, and article of manufacture for determining a process plan for forming features in a part |
US20070038329A1 (en) * | 2004-12-14 | 2007-02-15 | Pravin Khurana | System, method, and article of manufacture for determining a process plan for forming features in a part |
US20060139352A1 (en) * | 2004-12-28 | 2006-06-29 | Fujitsu Limited | Computer product, operation-analysis support device, and operation-analysis support method |
US7796045B2 (en) | 2005-01-10 | 2010-09-14 | Hill-Rom Services, Inc. | System and method for managing workflow |
US20060184412A1 (en) * | 2005-02-17 | 2006-08-17 | International Business Machines Corporation | Resource optimization system, method and computer program for business transformation outsourcing with reoptimization on demand |
US7885848B2 (en) * | 2005-02-17 | 2011-02-08 | International Business Machines Corporation | Resource optimization system, method and computer program for business transformation outsourcing with reoptimization on demand |
US8108232B1 (en) * | 2005-05-26 | 2012-01-31 | Sprint Communications Company L.P. | System and method for project contract management |
US20070083588A1 (en) * | 2005-09-23 | 2007-04-12 | International Business Machines Corporation | Systems and methods for automated provisioning of managed computing resources |
US9432447B2 (en) * | 2005-09-23 | 2016-08-30 | Samsung Electronics Co., Ltd. | Document distribution system and method using WebDAV protocol |
US20120290528A1 (en) * | 2005-09-23 | 2012-11-15 | Samsung Electronics Co., Ltd | Document distribution system and method using webdav protocol |
US8863137B2 (en) * | 2005-09-23 | 2014-10-14 | International Business Machines Corporation | Systems and methods for automated provisioning of managed computing resources |
US9123026B2 (en) * | 2005-09-23 | 2015-09-01 | Samsung Electronics Co., Ltd. | Document distribution system and method using webdav protocol |
US20150341426A1 (en) * | 2005-09-23 | 2015-11-26 | Samsung Electronics Co., Ltd. | Document distribution system and method using webdav protocol |
US20070226222A1 (en) * | 2006-03-27 | 2007-09-27 | Fujitsu Limited | Computer-readable recording medium having recorded system development support program, system development support apparatus, and system development support method |
US20070260502A1 (en) * | 2006-05-04 | 2007-11-08 | Microsoft Corporation | Project resource plans |
US20080040417A1 (en) * | 2006-08-09 | 2008-02-14 | Gearworks, Inc. | System and method for allocating workflow operations to a computing device |
US20080086353A1 (en) * | 2006-10-04 | 2008-04-10 | Microsoft Corporation | Server level summary information of resource utilization |
US20080120159A1 (en) * | 2006-11-17 | 2008-05-22 | United Technologies Corporation | Enterprise resource planning system enhancement for program management |
US20080140490A1 (en) * | 2006-12-06 | 2008-06-12 | Sap Ag | Method and system for managing an enterprise resource planning project |
US8600793B2 (en) * | 2006-12-06 | 2013-12-03 | Sap Ag | Method and system for managing an enterprise resource planning project |
US20080183538A1 (en) * | 2007-01-30 | 2008-07-31 | Microsoft Corporation | Allocating Resources to Tasks in Workflows |
US8180658B2 (en) | 2007-01-30 | 2012-05-15 | Microsoft Corporation | Exploitation of workflow solution spaces to account for changes to resources |
US20080183517A1 (en) * | 2007-01-30 | 2008-07-31 | Microsoft Corporation | Robustness of a Workflow |
US20080184250A1 (en) * | 2007-01-30 | 2008-07-31 | Microsoft Corporation | Synchronizing Workflows |
US20100125826A1 (en) * | 2008-11-18 | 2010-05-20 | Microsoft Corporation | Workflow engine for execution of web mashups |
US8875098B2 (en) * | 2008-11-18 | 2014-10-28 | Microsoft Corporation | Workflow engine for execution of web mashups |
US8407078B1 (en) | 2009-01-20 | 2013-03-26 | Perot Systems Corporation | Method of and system for managing projects, programs and portfolios throughout the project lifecycle |
US10699223B1 (en) * | 2009-08-13 | 2020-06-30 | Amazon Technologies, Inc. | System and method for resource allocation across distinct processes of a materials handling facility |
US20120179504A1 (en) * | 2009-10-07 | 2012-07-12 | Hirofumi Nakashima | P2p workflow system, information processing apparatus and storage medium |
US11164114B2 (en) | 2012-05-11 | 2021-11-02 | Tcg Senior Funding L.L.C. | System and method for performing detailed planning functions |
US20130304531A1 (en) * | 2012-05-11 | 2013-11-14 | Paul Barber | System and method for performing detailed planning functions |
US20140082582A1 (en) * | 2012-09-14 | 2014-03-20 | Brian J. Houck | Resource Tracker |
US8984487B2 (en) * | 2012-09-14 | 2015-03-17 | Microsoft Technology Licensing, Llc | Resource tracker |
US10937036B2 (en) | 2012-11-13 | 2021-03-02 | Apptio, Inc. | Dynamic recommendations taken over time for reservations of information technology resources |
WO2014144484A3 (en) * | 2013-03-15 | 2014-11-06 | Intelesystems | System and method for managing business partners and associated assets in favor of a plurality of enterprises |
WO2014144484A2 (en) * | 2013-03-15 | 2014-09-18 | Intelesystems | System and method for managing business partners and associated assets in favor of a plurality of enterprises |
CN105144209A (en) * | 2013-03-15 | 2015-12-09 | 英特里系统公司 | System and method for managing business partners and associated assets in favor of a plurality of enterprises |
US9588685B1 (en) * | 2013-05-03 | 2017-03-07 | EMC IP Holding Company LLC | Distributed workflow manager |
US10417591B2 (en) | 2013-07-03 | 2019-09-17 | Apptio, Inc. | Recursive processing of object allocation rules |
US10325232B2 (en) | 2013-09-20 | 2019-06-18 | Apptio, Inc. | Allocating heritage information in data models |
US20150186824A1 (en) * | 2013-12-31 | 2015-07-02 | Oracle International Corporation | Facilitating day-wise planning of effort required from a resource for an individual task |
US11244364B2 (en) | 2014-02-13 | 2022-02-08 | Apptio, Inc. | Unified modeling of technology towers |
US10169730B2 (en) | 2014-06-30 | 2019-01-01 | Open Text Corporation | System and method to present a summarized task view in a case management system |
US9350561B1 (en) * | 2015-05-27 | 2016-05-24 | Apptio, Inc. | Visualizing the flow of resources in an allocation model |
US11151493B2 (en) | 2015-06-30 | 2021-10-19 | Apptio, Inc. | Infrastructure benchmarking based on dynamic cost modeling |
US10268979B2 (en) * | 2015-09-28 | 2019-04-23 | Apptio, Inc. | Intermediate resource allocation tracking in data models |
US10387815B2 (en) | 2015-09-29 | 2019-08-20 | Apptio, Inc. | Continuously variable resolution of resource allocation |
US9384511B1 (en) | 2015-12-16 | 2016-07-05 | Apptio, Inc. | Version control for resource allocation modeling |
US9529863B1 (en) | 2015-12-21 | 2016-12-27 | Apptio, Inc. | Normalizing ingested data sets based on fuzzy comparisons to known data sets |
US10726367B2 (en) | 2015-12-28 | 2020-07-28 | Apptio, Inc. | Resource allocation forecasting |
US20180046955A1 (en) * | 2016-05-31 | 2018-02-15 | International Business Machines Corporation | Supporting analysis based on workflow |
US20170344916A1 (en) * | 2016-05-31 | 2017-11-30 | International Business Machines Corporation | Supporting analysis based on workflow |
US10474974B2 (en) | 2016-09-08 | 2019-11-12 | Apptio, Inc. | Reciprocal models for resource allocation |
US10936978B2 (en) | 2016-09-20 | 2021-03-02 | Apptio, Inc. | Models for visualizing resource allocation |
US10482407B2 (en) | 2016-11-14 | 2019-11-19 | Apptio, Inc. | Identifying resource allocation discrepancies |
US10157356B2 (en) * | 2016-12-14 | 2018-12-18 | Apptio, Inc. | Activity based resource allocation modeling |
US10425353B1 (en) | 2017-01-27 | 2019-09-24 | Triangle Ip, Inc. | Machine learning temporal allocator |
US10812410B1 (en) * | 2017-01-27 | 2020-10-20 | Triangle Ip, Inc. | Machine learning based signal generation |
US10069759B1 (en) * | 2017-01-27 | 2018-09-04 | Triangle Ip, Inc. | Machine learning resource allocator |
US10257116B1 (en) * | 2017-01-27 | 2019-04-09 | Triangle Ip, Inc. | Machine learning resource allocator |
US11283727B2 (en) | 2017-01-27 | 2022-03-22 | Triangle Ip, Inc. | Thin data warning and remediation system |
US11323388B1 (en) * | 2017-01-27 | 2022-05-03 | Triangle Ip, Inc. | Machine learning based signal generation |
US11902182B2 (en) | 2017-01-27 | 2024-02-13 | Triangle IP | Thin data warning and remediation system |
US10324951B1 (en) | 2017-12-29 | 2019-06-18 | Apptio, Inc. | Tracking and viewing model changes based on time |
US10268980B1 (en) * | 2017-12-29 | 2019-04-23 | Apptio, Inc. | Report generation based on user responsibility |
US11775552B2 (en) | 2017-12-29 | 2023-10-03 | Apptio, Inc. | Binding annotations to data objects |
US11238388B2 (en) * | 2019-01-24 | 2022-02-01 | Zoho Corporation Private Limited | Virtualization of assets |
US20220114515A1 (en) * | 2019-01-24 | 2022-04-14 | Zoho Corporation Private Limited | Virtualization of assets |
US11836661B2 (en) * | 2019-01-24 | 2023-12-05 | Zoho Corporation Private Limited | Virtualization of workflow assets |
Also Published As
Publication number | Publication date |
---|---|
AU2001286982A1 (en) | 2002-03-13 |
WO2002019226A1 (en) | 2002-03-07 |
US6968343B2 (en) | 2005-11-22 |
US20020078432A1 (en) | 2002-06-20 |
AU2001290597A1 (en) | 2002-03-13 |
AU2001288597A1 (en) | 2002-03-13 |
AU2001292567A1 (en) | 2002-03-13 |
WO2002019224A1 (en) | 2002-03-07 |
WO2002019272A1 (en) | 2002-03-07 |
US20020077842A1 (en) | 2002-06-20 |
WO2002019228A1 (en) | 2002-03-07 |
US20050257136A1 (en) | 2005-11-17 |
US6938240B2 (en) | 2005-08-30 |
US20020075293A1 (en) | 2002-06-20 |
US7493591B2 (en) | 2009-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20020107914A1 (en) | Methods and systems for optimizing resource allocation based on data mined from plans created from a workflow | |
US7096222B2 (en) | Methods and systems for auto-instantiation of storage hierarchy for project plan | |
US20020188597A1 (en) | Methods and systems for linking tasks to workflow | |
US9632768B2 (en) | Exchanging project-related data in a client-server architecture | |
US6868370B1 (en) | Methods and apparatus for system and device design | |
US7174517B2 (en) | Multi-layered online calendaring and purchasing | |
US7065493B1 (en) | Workflow system and method | |
US7337950B2 (en) | Transaction workflow and data collection system | |
US7836103B2 (en) | Exchanging project-related data between software applications | |
US20130117060A1 (en) | System for Collaboration and Meeting Management | |
US20040215544A1 (en) | Method, system, and graphic user interface for automated asset management | |
US20040098594A1 (en) | System and method for creating role-based access profiles | |
US20040024629A1 (en) | Methods and apparatus for project management | |
CA2772824C (en) | Role mapping and training tool | |
US8805919B1 (en) | Multi-hierarchical reporting methodology | |
US20050033736A1 (en) | System and method for processing record related information | |
US20040107010A1 (en) | Planning support system and method | |
EP1134644A2 (en) | Method and system for verifying access to a network environment | |
WO2002099637A1 (en) | Methods and systems for auto-instantiation of storage hierarchy for project plan | |
US20050198325A1 (en) | Method of enabling access to data structure | |
US20040216148A1 (en) | Service and support mechanism for delivering electronic customer support services | |
JP2003132067A (en) | Information management support device, system and method therefor, program and recording medium for achieving these functions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: TOGETHERSOFT CORPORATION, NORTH CAROLINA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHARISIUS, DIETRICH;COAD, PETER;KERN, JONATHAN;AND OTHERS;REEL/FRAME:012477/0555;SIGNING DATES FROM 20010827 TO 20011019 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: BORLAND SOFTWARE CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:TOGETHERSOFT CORPORATION;REEL/FRAME:020317/0308 Effective date: 20071220 |