Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUS20060074737 A1
Publication typeApplication
Application numberUS 11/155,454
Publication dateApr 6, 2006
Filing dateJun 17, 2005
Priority dateOct 1, 2004
Also published asCN1755721A, US7451432, US20060074732
Publication number11155454, 155454, US 2006/0074737 A1, US 2006/074737 A1, US 20060074737 A1, US 20060074737A1, US 2006074737 A1, US 2006074737A1, US-A1-20060074737, US-A1-2006074737, US2006/0074737A1, US2006/074737A1, US20060074737 A1, US20060074737A1, US2006074737 A1, US2006074737A1
InventorsDharma Shukla, Mayank Mehta, Aditya Bhandarkar, John Whytock, Dennis Pilarinos, Shiqiu Guo, Eli Hisdai, Kumarswamy Valegerepura
Original AssigneeMicrosoft Corporation
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Interactive composition of workflow activities
US 20060074737 A1
Abstract
Visual composition of an activity for re-use in a composite activity or in a workflow. A user declaratively and/or programmatically generates reusable composite activities from existing activities interactively using a visual designer. The activity has one or more configuration properties associated therewith that define the behavior of an aspect of the activity. Depending on the value of the configuration properties, the activity may be, for example, partially configured, fully configured, or minimally configured. A user or developer completes the configuration of the activity during re-use of the activity in a composite activity or in a workflow.
Images(12)
Previous page
Next page
Claims(20)
1. A computerized system for interactive composition of a workflow activity for use in a workflow, said computerized system comprising:
means for presenting a plurality of workflow activities to a user at design time, each of the plurality of activities having one or more properties associated therewith, each of said properties defining a behavior of the associated activity;
means for receiving a selection from the user of at least one of the plurality of activities to define a composite activity;
means for presenting to the user a plurality of properties associated with the received selection of activities;
means for receiving from the user a property value for at least one of the properties, said received property value defining a behavior of the activity in the composite activity in a workflow; and
means for configuring, as a function of the received property value, the received selection of activities as the composite activity for use in the workflow.
2. The computerized system of claim 1, further comprising means for enabling the user to create the workflow with the composite activity.
3. The computerized system of claim 1, further comprising a display area having:
an activity portion for displaying the plurality of workflow activities;
a property portion for displaying a list of the properties and values associated therewith; and
a designer portion for displaying the composite activity.
4. The computerized system of claim 1, wherein the property value comprises a value defining visibility of the properties in the composite activity in the workflow.
5. The computerized system of claim 1, wherein the property value comprises a value specifying whether a particular property of the composite activity is editable in the workflow.
6. The computerized system of claim 1, wherein each of the properties defines one or more of the following associated with the received selection of activities: a design time behavior, a runtime behavior, a semantic behavior, and a visualization behavior.
7. The computerized system of claim 1, further comprising a compiler for enforcing the defined behavior of the activity during workflow creation,
8. The computerized system of claim 1, wherein the properties define whether the activities are one or more of the following: visible, editable, and lockable.
9. The computerized system of claim 1, further comprising means for authoring the composite activity declaratively or programmatically.
10. In a computing system having a display and a user interface selection device, a method of enabling a user to create a composite workflow activity for use in a workflow, said method comprising:
displaying predefined workflow activities to a user on the display at design time;
receiving, via the user interface selection device, a selection of at least one of the displayed activities to define a composite activity;
displaying, on the display, the selected activity;
receiving, via the user interface selection device, a value for a configuration property associated with the selected activity, said value configuring other properties associated with the selected activity;
configuring, based on the received value for the configuration property, the selected activity as the composite activity;
providing the composite activity to the user for use in the workflow.
11. The method of claim 10, further comprising generating software code implementing the composite activity.
12. The method of claim 10, further comprising:
receiving, via the user interface selection device, a selection of at least two of the displayed activities and flow information defining a relationship between the selected activities; and
displaying, on the display, the selected activities arranged via the flow information.
13. The method of claim 10, wherein the received value for the configuration property corresponds to one or more of the following: a fully-configured activity, a partially-configured activity, and a minimally-configured activity.
14. The method of claim 10, further comprising enabling the user to extend the functionality of the composite activity in the workflow as a function of the configuration property.
15. The method of claim 10, wherein the configuration property is associated with a particular property of the selected activity.
16. The method of claim 10, wherein one or more computer-readable media have computer-executable instructions for implementing the method of claim 10.
17. One or more computer-readable media having computer-executable components for interactive visual composition of activities, said components comprising:
a designer component for providing a set of predefined workflow activities to a user and receiving a selection of one or more of the predefined workflow activities;
a display component for displaying the selected activities to the user as a composite activity;
a property component for receiving a value for a configuration property associated with one of the selected activities displayed by the display component; and
a preview component for displaying the selected activities as the composite activity in a workflow as a function of the value received by the property component for the configuration property.
18. The computer-readable media of claim 17, wherein one or more of the predefined activities inherits a property value from another one of the predefined activities.
19. The computer-readable media of claim 17, wherein the value for the configuration property specifies access in the workflow to one of the selected activities.
20. The computer-readable media of claim 17, wherein the value for the configuration property specifies that one or more of the selected activities or properties associated therewith be partially hidden within the composite activity in the workflow.
Description
    CROSS-REFERENCE TO RELATED APPLICATION
  • [0001]
    This application claims the benefit of U.S. provisional patent application No. 60/615,543 filed Oct. 1, 2004.
  • BACKGROUND
  • [0002]
    A workflow models a business process. Typical workflows include execution units referred to as activities. Some current systems lack a mechanism to enable users to visually create activities for use in the workflow. Further, some of the current systems enumerate activities at the workflow level (e.g., during execution of the workflow), but lack a design time mechanism for creating activities based on predefined activities.
  • SUMMARY
  • [0003]
    Embodiments of the invention include a user interface for visually creating an activity from predefined activities. In one embodiment, a composite activity is created at the activity level during design time. The user interface enables users to modify properties of the composite activity to specify, for example, design time, compile time, runtime and other behaviors associated with the composite activity. Properties associated with each activity within the composite activity may also be defined. For example, the composite activity may be considered completely configured, partially configured, or minimally configured based on one or more configuration properties associated with the composite activity.
  • [0004]
    Other features will be in part apparent and in part pointed out hereinafter. This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • [0005]
    FIG. 1 is an exemplary workflow containing tasks and control flow composite activities.
  • [0006]
    FIG. 2 is an exemplary block diagram illustrating a component model associated with an activity.
  • [0007]
    FIG. 3 is an exemplary flow chart illustrating activity composition.
  • [0008]
    FIG. 4 is an exemplary block diagram illustrating an exemplary activity designer.
  • [0009]
    FIG. 5 is an exemplary user interface displaying properties and associated property values of an activity.
  • [0010]
    FIG. 6 is a block diagram illustrating an exemplary computer-readable medium on which aspects of the invention may be stored.
  • [0011]
    FIG. 7 is an exemplary user interface illustrating an activity designer.
  • [0012]
    FIG. 8 is an exemplary user interface illustrating the activity designer of FIG. 7 with a composite activity under development by a user.
  • [0013]
    FIG. 9 is an exemplary user interface illustrating the composite activity of FIG. 8 in a workflow.
  • [0014]
    FIG. 10 is an exemplary user interface illustrating the composite activity of FIG. 8 with particular activities locked.
  • [0015]
    FIG. 11 is an exemplary user interface illustrating the composite activity of FIG. 10 in a workflow.
  • [0016]
    Appendix A includes a set of properties that describe characteristics of an activity.
  • [0017]
    Appendix B includes another set of properties that define the behavior of an activity.
  • [0018]
    Corresponding reference characters indicate corresponding parts throughout the drawings.
  • DETAILED DESCRIPTION
  • [0019]
    FIG. 1 illustrates an exemplary workflow. Embodiments of the invention are operable with a workflow representing a process, such as a business process. Business processes are dependent on ordered tasks, activities, or the like that result in predictable and repeatable outcomes. Including the operating procedures, institutional working knowledge, and information resources of an organization, business processes are designed to satisfy defined business objectives in an efficient and timely manner. In an efficient environment, the functional components of a process can be readily identified, adapted, and deployed to address ever-changing corporate requirements. The workflow is an end user's experience interacting with the tasks in a business process. Tasks are modeled as activities, components, or the like, each representing a unit of work that is performed by a person or machine.
  • [0020]
    The relationship between workflows and activities is generally analogous to the relationship between a computer program and its statements. Activities are reusable components which encapsulate metadata for a step in a workflow process and can be used in either modeling workflows or in composition of activities. For example, activities may be used to compose complex activities. In one embodiment, a plurality of activities is presented to a user via a workflow designer application program. The user selects and organizes the activities to create the workflow representative of a business process. The created workflow is executed to model the business process. An example of a workflow is shown in FIG. 1. FIG. 1 is an exemplary workflow containing tasks and control flow composite activities.
  • [0021]
    Exemplary activities include the following: Send, SendRequest, SendResponse, Receive, ReceiveRequest, ReceiveResponse, Code, Delay, Fault, Suspend, Terminate, InvokeSchedule, InvokeSchedules, InvokeWebService, EventSource, EventSink, Sequence, Parallel, While, ConditionalBranch, Conditional, Constrained, ConstrainedActivityGroup, EventDriven, Listen, EventHandlers, ExceptionHandler, ExceptionHandlers, Compensate, CompensationHandler, Scope, and Schedule.
  • [0022]
    According to embodiments of the invention, the activity is the basic unit of execution in the workflow model and has associated properties, handlers, constraints and events. Each activity may be configured by user code in any programming language. For example, the user code may represent business or application logic or rules written in common language runtime (CLR) languages. Each activity supports pre-interception hooks and post-interception hooks into execution in the user code. Each activity has associated runtime execution semantics and behavior (e.g., state management, transactions, event handling and exception handling). Activities may share state with other activities. Activities may also be primitive activities or grouped into a composite activity. A primitive or basic activity has no substructure (e.g., child activities), and thus is a leaf node in a tree structure. On the other hand, a composite activity contains substructure (e.g., it is the parent of one or more child activities or contains one or more child activities).
  • [0023]
    Referring next to FIG. 2, each activity in the illustrated embodiment has an associated set of components that forms a component model for the activity. The components have properties that define the behavior of the components. The associated set of components includes an activity executor, an activity designer, an activity serializer, an activity validator (e.g., semantic checker), and an activity code generator, among other components or properties of the activity. The activity executor is a stateless component that implements the execution semantics for the activity. The activity executor works with the metadata of an activity to implement the activity. A core scheduler acts as a service provider for the activity executor to provide services to the activity executor.
  • [0024]
    The activity designer visually displays the design time visual representation of the activity. FIG. 4, described below, illustrates an activity designer user interface for an activity designer. The activity designer is a node in a designer hierarchy and may be themed or skinned. The activity designer is hosted in a design environment (e.g., an application program) and interacts with the host design environment via services. The activity validator enforces the activity semantics at compile time as well as runtime. The activity validator operates on the context of the workflow model and uses the services provided by the environment (e.g., compiler, designer, or runtime). Validation occurs at various points in the lifecycle of a workflow. Structural compliance checks are made when creating serialized representations of the workflow, when compiling, and in response to the user's request. The semantic checks may be stronger at runtime than those performed at compile-time to ensure the safety of a runtime operation such as the addition or replacement of an activity in the activity tree of a running instance. Aspects of the invention evaluate semantics associated with each of the activities for conformance or compliance with, for example, predefined interface requirements.
  • [0025]
    The activity serializer of FIG. 2 is a component that serializes the metadata of an activity. The activity serializer is called from the various model/format serializers. The entire workflow model is serialized based on an extensible schema into a declarative markup language which may be further translated into other workflow languages as desired.
  • [0026]
    In one embodiment of the invention, users may reuse complex business process logic by composing custom activities as illustrated in FIG. 3. Embodiments of the invention enable an activity writer to declaratively (e.g., using a markup language) and/or programmatically (e.g., via code) generate reusable composite activities from existing activities interactively using a visual designer. Activity composition includes declaring activity metadata, associating business logic with an activity via an activity component, defining design time behavior and visualization of activity via an activity designer, validation of activity semantics via a semantic validation component, defining runtime behavior of the activity via an activity executor, serialization of an activity via an activity serializer, code generation of an activity via an activity code generator, etc. To facilitate the process of activity creation, aspects of the invention include a visually interactive composition designer (e.g., a user interface) to allow developers to create activities by visually defining a hierarchy of the activity, declaring activity metadata, associating business logic and building other required components and associating them with the activity. The user interface reduces the time for activity development. Primitive activities (e.g., activities with no child activities) and/or composite activities may be defined by the user in embodiments of the invention.
  • [0027]
    Activity writers define the aspects of an activity including, but not limited to, a metadata class definition, an executor that provides runtime execution logic, a validator that provides design-time and runtime validation logic, a designer that describes appearance and behavior in the authoring environment, a serializer that provides custom serialization behavior if required, and a code generator that allows a developer to participate in compile-time code generation. The custom activity designer helps configure these options and introduces further features which are valuable when creating composite activities.
  • [0028]
    Referring again to FIG. 3, a method of one aspect of the invention enables a user to create a composite workflow activity for use in a workflow. The method operates in a computing system having a display and a user interface selection device. The method includes displaying at least one predefined workflow activity to a user on the display at design time (e.g., not during execution of the workflow) at 302. The method also includes receiving, from the user via the user interface selection device, a selection of at least one of the displayed activities to define a composite activity at 304. In one example, the user selects at least two activities and arranges the selected activities via flow information (e.g., the activities may be arranged in sequence or in parallel). The flow information defines a relationship between the selected activities. According to the exemplary method, the user interface displays, on the display, the selected activities arranged via the flow information at 306. For example, the user may drag and drop activities (as children) to the composite activity that is currently being designed.
  • [0029]
    The computing system receives, via the user interface selection device, a value for a configuration property or the like associated with the one or more selected activities at 308. The configuration property value defines access in the workflow by a user to one or more properties or the structure associated with the selected activity. For example, the value may define whether any of the properties or structure of the selected activity are visible, editable, and/or locked in the user interface or programmatically. Visibility of an activity identifies whether the activity may be “seen” by the programmer during the authoring (e.g., available in the parent's collection during enumeration). The ability to “edit” an activity determines if the metadata of the activity may be programmed by the programmer during the authoring (e.g., activity properties are available for programming). Locking an activity prevents child activities of a parent activity from being moved or removed from the parent activity's collection.
  • [0030]
    The received value for the configuration property may define the activity as fully configured, partially configured, or minimally configured. The configuration property may be associated with a particular activity and/or with a particular property of the activity. The method configures, based on the received value for the configuration property, the selected activity as the composite activity at 310. The method generates software code implementing the composite activity at 312 and provides the composite activity to the developer or other user for use in the workflow at 314. In one embodiment, a compiler packages the activities into binary form for their reuse in the workflow or in the composition of other activities.
  • [0031]
    Aspects of the invention enable the user to include the composite activity in the workflow and extend the functionality of the composite activity in the workflow as a function of the configuration property. When creating the workflow, the user may view and/or configure the properties of the composite activity as determined by the configuration property. In an alternative embodiment, the user views and/or configures the properties of the composite activity as determined by a plurality of configuration properties, with each of the configuration properties defining access by the user to a particular activity or property of the composite activity. A compiler in one aspect of the invention enforces the ways in which the activities can be reused as a function of the configuration property.
  • [0032]
    A first activity writer may specify via the configuration property that only a subset of the properties of an activity be shown in the activity designer of a second activity writer. This occurs when the first activity writer is creating an activity for user by the second activity writer to create a composite activity. For example, an attribute such as [ActivityDesignerBrowsable] may be associated with one of the properties of the activity and may define whether the associated property is displayed in the activity designer of the second activity writer.
  • [0033]
    In one embodiment, one or more computer-readable media have computer-executable instructions for implementing the method illustrated in FIG. 3.
  • [0034]
    Referring next to FIG. 4, an exemplary block diagram illustrates an exemplary activity designer user interface 402 for implementing the method illustrated in FIG. 3. The activity designer user interface 402 includes one or more display areas or portions. For example, the display area includes an activity list portion 404 displaying a list of predefined activities, a designer portion 406 displaying activities selected by the user (e.g., dragged and dropped from the activity list portion 404), and a property portion 408 displaying a list of properties and corresponding property values for the selected activities. The activity writer uses a property browser, for example, in the property portion 408 and configures a set of properties for an activity selected in the designer portion 406. A set of properties that describe the basic characteristics of an activity are listed in Appendix A. A user also may add other properties and handlers for the activity being designed. The user may specify properties such as those listed in Appendix B for each property that the user adds.
  • [0035]
    Referring next to FIG. 5, an exemplary user interface displays properties and associated property values of an activity. Depending on the value associated with the configuration property of an activity, the workflow author who re-uses the activity may define the values of activity properties or otherwise configure the activity during workflow creation and deployment.
  • [0036]
    In one embodiment of the invention, the activity designer enables users to create activities which can be reused in a workflow according to various levels or models specified by the properties associated with the activities (e.g., the configuration property). Exemplary levels or models of re-use include black box, grey box and white box.
  • [0037]
    In the case of black box re-use, the activities which the user is able to create using the designer are structurally complete and completely configured using a set of preexisting activities or inheriting from a set of preexisting activities. The activity metadata is specified at the time of designing the activities. The user embeds and associates business logic with these activities. The user selectively hides the parts of an activity which the user does not want exposed at the time of reuse in a workflow but executed implicitly in the workflow. These type of activities are preconfigured and non modifiable on reuse in the workflow.
  • [0038]
    In the case of grey box reuse, the designer enables the user to create structurally modifiable and partially configured activities which the user is able to fully configure at the time of its use in a workflow. These activities typically contain a set of partially configured preexisting activities which are then completely configured by the user at the time of their reuse in the workflow. In this case, the user embeds a set of activities useful in accomplishing a certain task even though the activities are not structurally complete. The metadata of such activities may also be partly configured when designing the activities.
  • [0039]
    White box activities are non-configured and the user modifies their structure and metadata at the time of their reuse in the workflow.
  • [0040]
    In one embodiment, the configuration of an activity in a composite activity being designed is determined by the configuration properties of “Visibility” and “ContainerLocked”. These configuration properties are merely exemplary, and other properties or attributes that define whether an activity or any aspect thereof may be visible, editable, removable, or otherwise configurable during workflow or composite activity creation are within the scope of embodiments of the invention. The Visibility property (e.g., a Boolean property such as IsVisible) and the ContainerLocked property (e.g., a Boolean property such as IsLocked) enable users or developers to hide or otherwise not expose the inner workings of a composite activity to workflow authors. The Visibility property on a child activity in particular composite activity may be set (e.g., true or false) such that the user or developer is unable to view the child activity when creating a workflow or other composite activity using the particular composite activity. This means that the child activity does not visually appear to the user in the composite activity but the functionality of the child activity is within the composite activity. The ContainerLocked property on a composite activity may be set (e.g., true or false) such that the user or developer who re-uses the composite activity is unable add new activities to the composite activity and, in an alternative embodiment, remove any activities from the composite activity. If the composite activity is unlocked, the developer may add child activities at the end of the composite activity.
  • [0041]
    In an alternative embodiment, another configuration property specifies whether the metadata of an activity may be edited. In this example, each activity exposes a Boolean read-only property, such as IsEditable.
  • [0042]
    Referring next to FIG. 6, a block diagram illustrates an exemplary computer-readable medium 602 on which aspects of the invention may be stored. Aspects of the invention include one or more computer-readable media, such as computer-readable medium 602, having computer-executable components for interactive visual composition of activities. Exemplary components include a designer component 604, a display component 606, a property component 608, and a preview component 610. The designer component 604 provides a set of predefined workflow activities to the user and receives a selection of one or more of the predefined workflow activities. The display component 606 displays the selected activities to the user as a composite activity. The property component 608 receives a value for a configuration property associated with one of the selected activities displayed by the display component 606. For example, the value for the configuration property may specify that one or more of the selected activities or properties associated therewith will be partially hidden within the composite activity in the workflow. In one embodiment, one or more of the predefined activities inherits a property value from another one of the predefined activities. The preview component 610 displays the selected activities as the composite activity in a workflow as a function of the value received by the property component 608 for the configuration property.
  • [0000]
    Exemplary Operating Environment
  • [0043]
    The exemplary operating environment includes a general purpose computing device such as a computer executing computer-executable instructions. The computing device typically has at least some form of computer readable media. Computer readable media, which include both volatile and nonvolatile media, removable and non-removable media, may be any available medium that may be accessed by the general purpose computing device. By way of example and not limitation, computer readable media comprise computer storage media and communication media. Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. Those skilled in the art are familiar with the modulated data signal, which has one or more of its characteristics set or changed in such a manner as to encode information in the signal. Wired media, such as a wired network or direct-wired connection, and wireless media, such as acoustic, RF, infrared, and other wireless media, are examples of communication media. Combinations of any of the above are also included within the scope of computer readable media. The computing device includes or has access to computer storage media in the form of removable and/or non-removable, volatile and/or nonvolatile memory. A user may enter commands and information into the computing device through input devices or user interface selection devices such as a keyboard and a pointing device (e.g., a mouse, trackball, pen, or touch pad). Other input devices (not shown) may be connected to the computing device. The computing device may operate in a networked environment using logical connections to one or more remote computers.
  • [0044]
    Although described in connection with an exemplary computing system environment, aspects of the invention are operational with numerous other general purpose or special purpose computing system environments or configurations. The computing system environment is not intended to suggest any limitation as to the scope of use or functionality of aspects of the invention. Moreover, the computing system environment should not be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment. Examples of well known computing systems, environments, and/or configurations that may be suitable for use in embodiments of the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, mobile telephones, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
  • [0045]
    Embodiments of the invention may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. Generally, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. Aspects of the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
  • [0046]
    An interface in the context of a software architecture includes a software module, component, code portion, or other sequence of computer-executable instructions. The interface includes, for example, a first module accessing a second module to perform computing tasks on behalf of the first module. The first and second modules include, in one example, application programming interfaces (APIs) such as provided by operating systems, component object model (COM) interfaces (e.g., for peer-to-peer application communication), and extensible markup language metadata interchange format (XMI) interfaces (e.g., for communication between web services).
  • [0047]
    The interface may be a tightly coupled, synchronous implementation such as in Java 2 Platform Enterprise Edition (J2EE), COM, or distributed COM (DCOM) examples. Alternatively or in addition, the interface may be a loosely coupled, asynchronous implementation such as in a web service (e.g., using the simple object access protocol). In general, the interface includes any combination of the following characteristics: tightly coupled, loosely coupled, synchronous, and asynchronous. Further, the interface may conform to a standard protocol, a proprietary protocol, or any combination of standard and proprietary protocols. The interfaces described herein may all be part of a single interface or may be implemented as separate interfaces or any combination therein. The interfaces may execute locally or remotely to provide functionality. Further, the interfaces may include additional or less functionality than illustrated or described herein.
  • [0048]
    In operation, the computing device executes computer-executable instructions such as those illustrated in the figures to implement embodiments of the invention.
  • [0049]
    The following examples further illustrate aspects of the invention. FIG. 7 through FIG. 11 include exemplary user interfaces implementing embodiments of the invention. Aspects of the invention are also operable with other user interfaces not explicitly contained herein, but functionally similar (e.g., the layout or design of the user interface may differ, but still be within the scope of an embodiment of the invention).
  • [0050]
    FIG. 7 illustrates an exemplary user interface for an activity designer. FIG. 8 is an exemplary user interface illustrating the activity designer of FIG. 7 with a composite activity under development by a user. Referring next to FIG. 9, an exemplary user interface illustrates the composite activity of FIG. 8 in a workflow. In this example, none of the activities in the composite activity are locked, and as such, all the activities are visible within the workflow. Referring next to FIG. 10, an exemplary user interface illustrates the composite activity of FIG. 8 with particular activities specified as locked in the activity designer. In this example, the sequence1 activity and the code1 activity within the sequence2 activity are marked as locked or invisible. FIG. 11 is an exemplary user interface illustrating the composite activity of FIG. 10 in a workflow. In this example, the sequence1 activity and the code1 activity are not visible in the workflow.
  • [0051]
    In general, aspects of the invention include a computerized system for interactive composition of a workflow activity for use in a workflow. Hardware, software, firmware, computer-executable components, computer-executable instructions, and/or FIGS. 7-11 constitute the following means. The system includes means for presenting a plurality of workflow activities to a user at design time. Each of the plurality of activities has one or more properties associated therewith. Each of the properties defines a behavior of the associated activity. The system also includes means for receiving a selection from the user of at least one of the plurality of activities to define a composite activity, means for presenting to the user a plurality of properties associated with the received selection of activities, and means for receiving from the user a property value for at least one of the properties. The received property value defines a behavior of the activity in the composite activity in a workflow. The system further includes means for configuring, as a function of the received property value, the received selection of activities as the composite activity for use in the workflow. For example, each of the properties defines one or more of the following associated with the received selection of activities: a design time behavior, a runtime behavior, a semantic behavior, and a visualization behavior. Additionally, the system includes means for enabling the user to create the workflow with the composite activity.
  • [0052]
    The order of execution or performance of the operations illustrated and described herein is not essential, unless otherwise specified. That is, the operations may be performed in any order, unless otherwise specified, and the operations may include more or less elements than those disclosed herein. For example, it is contemplated that executing or performing a particular operation or element before, contemporaneously with, or after another operation or element is within the scope of an embodiment of the invention.
  • [0053]
    When introducing elements of embodiments of the invention, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements.
  • [0054]
    Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described herein. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
  • Appendix A
  • [0055]
    An exemplary set of properties that describe characteristics of an activity is shown below.
    TABLE A1
    Activity Properties.
    Property
    Name Category Comment Editor
    (Name) Activity This is a string that will be
    used to iterate upon as
    this custom activity is
    used within the workflow.
    For example, if a
    developer specifies
    “MyCustomActivityName”
    then the first use of this
    custom activity will be
    MyCustomActivityName1
    and the second
    MyCustomActivityName2.
    Base Class Activity This is the base class that
    the activity derives from.
    The default base class is
    Sequence.
    Description Activity This is a standard
    description of the
    property.
    Activity Properties Activity Properties This allows a developer to The property browser
    define the properties on ellipsis launches the
    their custom activities. collection editor. The
    When a property has been properties within here
    fully defined, it is added to are defined below.
    the metadata class
    definition with
    corresponding types,
    getters and setters.
    Designer Companion Classes This is the name of the The property browser
    designer class specific launches the Type picker.
    to this activity. The type picker shows all
    activities whose designer
    derives from the selected
    base type.
    Executor Companion Classes This is the name of the The property browser
    executor class specific launches the Type picker.
    to this activity. The type picker shows all
    activities whose executor
    derives from the selected
    basetype.
    Validator Companion Classes This is the name of the The property browser
    validator class specific launches the Type picker.
    to this activity. The type picker shows all
    activities whose validator
    derives from the selected
    base type.
    RootActivity DataContext This is a Boolean
    indicating if this activity
    supports the IRootActivity
    interface.
    Since IRootActivity
    inherits from
    IDataContext, setting this
    property to true it will
    set the “Supports
    DataContext” property
    to true and make it
    read only.
    Setting this property to
    false, will set “Supports
    DataContext” property to
    false.
    Supports DataContext When the custom activity
    DataContext supports a data context,
    upon usage within a
    workflow, a new class is
    generated in the
    datacontext of calling
    workflow.
    This is a True/False
    Boolean field.
    The required
    ISupportDataContext code
    is put into the hidden
    Designer.cs file, not the
    custom activity code.
    If the selected base type
    supports a data context,
    this property is set to true
    and becomes read only.
    Companion DataContext This is the name of the
    Class Name class which the activity's
    datacontext will derive
    from. A developer could
    define this class within the
    activity and introduce
    properties which could be
    referenced by other
    activities in the containing
    workflow.
    This property is hidden
    until the developer sets
    “Supports
    DataContext” to
    True and then is nested in
    the property browser
    when this occurs.
  • Appendix B
  • [0056]
    An exemplary set of properties that define the behavior of an activity is set forth below.
    TABLE B1
    Activity Properties.
    Name Category Comments
    Name Property This is the name of the property.
    Type Property This is the Type of the property.
    The Type Picker will be launched from here.
    Browsable Attributes This defines whether a property or event should be
    displayed in a Properties window
    Category Attributes This specifies the name of the category in which to
    group the property or event when displayed in the
    PropertyGrid control set to Categorized mode.
    Description Attributes This specifies a description for a property or event.
    This description is displayed in the PropertyGrid
    control when the activity being used in a workflow
    and is selected.
    Validation Attributes The developer can select from
    Optional - the property can accept null values.
    Required - values must be specified for property and
    we automatically check to see that this is the case.
    Hidden - no automatic validation.
    If ‘Required’ is selected, upon re-use, the custom
    activity will require that the property be configured
    via smart tags. This essentially provides a short cut
    to writing this validation in the Validator class.
    DesignerSerializationVisiblity Advanced This determines how/if properties will be serialized.
    Attributes Setting to visible (the default) will cause the property
    to be serialized normally.
    Setting to hidden will prevent property serialization
    (disables undo/redo and does property does not show
    up in XOML, etc)
    Setting to content is used for collection properties.
    The collection object itself are not serialized,
    however the contents of the collection are.
    If a developer chooses a collection type, this property
    will be set to ‘content‘.
    If a developer chooses a non serializable type, this
    property will be set to ‘hidden‘.
    UITypeEditor Advanced This is a read only field. This is a discoverability
    Attributes mechanism for the UI type editor.
    If the property type (like Boolean, Bind, Condition,
    ParameterBindingCollection) has a UIEditor
    associated with it, this field will display it.
    Supports Databinding Databinding This is a ‘True/False’ combo box. Default is false.
    If set to true, a field of the Type defined above and a
    getter/setter which supports bind is generated.
    For example, if System.String is the type for a
    property called “MyProperty” then the following
    code would be generated:
    private BindBase myProp;
    [BaseType(typeof(String))]
    public BindBase MyProperty
    {
    get
    {
    return this.myProp;
    }
    set
    {
    if (this.IsRuntimeMode)
    throw new ReadOnlyException( );
    }
    }
Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US5301320 *Jun 28, 1991Apr 5, 1994Digital Equipment CorporationWorkflow management and control system
US5634127 *Nov 30, 1994May 27, 1997International Business Machines CorporationMethods and apparatus for implementing a message driven processor in a client-server environment
US5734837 *Jan 14, 1994Mar 31, 1998Action Technologies, Inc.Method and apparatus for building business process applications in terms of its workflows
US5774661 *Apr 18, 1995Jun 30, 1998Network Imaging CorporationRule engine interface for a visual workflow builder
US5930512 *Oct 18, 1996Jul 27, 1999International Business Machines CorporationMethod and apparatus for building and running workflow process models using a hypertext markup language
US5999911 *Jun 2, 1995Dec 7, 1999Mentor Graphics CorporationMethod and system for managing workflow
US6016394 *Sep 17, 1997Jan 18, 2000Tenfold CorporationMethod and system for database application software creation requiring minimal programming
US6028997 *May 30, 1997Feb 22, 2000International Business Machines CorporationMethod of generating an implementation of reusable parts from containers of a workflow process-model
US6065009 *Jan 20, 1998May 16, 2000International Business Machines CorporationEvents as activities in process models of workflow management systems
US6073109 *Dec 12, 1996Jun 6, 2000Action Technologies, Inc.Computerized method and system for managing business processes using linked workflows
US6115646 *Dec 18, 1997Sep 5, 2000Nortel Networks LimitedDynamic and generic process automation system
US6225998 *Dec 2, 1997May 1, 2001Aspect CommunicationsVisual design of workflows for transaction processing
US6253369 *Jan 16, 1997Jun 26, 2001International Business Machines Corp.Workflow object compiler with user interrogated information incorporated into skeleton of source code for generating executable workflow objects
US6397192 *Sep 18, 1998May 28, 2002I2 Technologies Us, Inc.Synchronizing one or more workflows using one or more synchronization-join activities that include synchronization logic
US6405364 *Aug 31, 1999Jun 11, 2002Accenture LlpBuilding techniques in a development architecture framework
US6421700 *Dec 23, 1996Jul 16, 2002Xerox CorporationMethod and system for work process support using independent system and user states
US6567783 *Sep 18, 1998May 20, 2003I2 Technologies Us, Inc.Communication across one or more enterprise boundaries regarding the occurrence of a workflow event
US6604104 *Nov 14, 2000Aug 5, 2003Sbi Scient Inc.System and process for managing data within an operational data store
US6621505 *Sep 30, 1998Sep 16, 2003Journee Software Corp.Dynamic process-based enterprise computing system and method
US6678882 *Jun 30, 1999Jan 13, 2004Qwest Communications International Inc.Collaborative model for software systems with synchronization submodel with merge feature, automatic conflict resolution and isolation of potential changes for reuse
US6768986 *Apr 3, 2001Jul 27, 2004Business Objects, S.A.Mapping of an RDBMS schema onto a multidimensional data model
US6807583 *Nov 8, 2001Oct 19, 2004Carleton UniversityMethod of determining causal connections between events recorded during process execution
US6845507 *May 18, 2001Jan 18, 2005Ss & C Technologies, Inc.Method and system for straight through processing
US6898604 *Jun 29, 2001May 24, 2005Microsoft CorporationXML serialization and deserialization
US6954747 *Nov 14, 2000Oct 11, 2005Microsoft CorporationMethods for comparing versions of a program
US6964034 *Apr 20, 2000Nov 8, 2005International Business Machines CorporationApplication development server and a mechanism for providing different views into the same constructs within a strongly encapsulated environment
US6985939 *Sep 19, 2001Jan 10, 2006International Business Machines CorporationBuilding distributed software services as aggregations of other services
US7069536 *Jun 28, 2001Jun 27, 2006International Business Machines CorporationMethod, system, and program for executing a workflow
US7093207 *Nov 17, 2003Aug 15, 2006Kla-Tencor Technologies CorporationData analysis flow engine
US7096454 *Mar 27, 2001Aug 22, 2006Tyrsted Management ApsMethod for gesture based modeling
US7133833 *Oct 27, 1998Nov 7, 2006Netscape Communications CorporationLightweight directory access protocol workflow management system
US7181440 *Jul 26, 2004Feb 20, 2007Business Objects, S.A.Mapping of an RDBMS schema onto a multidimensional data model
US7222334 *Jul 24, 2001May 22, 2007Hewlett-Packard Development Comapny, L.P.Modeling tool for electronic services and associated methods and businesses
US7240324 *Feb 28, 2001Jul 3, 2007Hewlett-Packard Development Company, L.P.Event-based scheduling method and system for workflow activities
US7272816 *Jul 29, 2003Sep 18, 2007Sap AktiengesellschaftTransformations between private and shared workflows
US7349864 *Jun 10, 2002Mar 25, 2008International Business Machines CorporationWorkflow system, information processor, and method and program for workflow management
US7451432 *Jan 31, 2005Nov 11, 2008Microsoft CorporationTransformation of componentized and extensible workflow to a declarative format
US7464366 *Feb 23, 2005Dec 9, 2008Microsoft CorporationProgramming interface for a componentized and extensible workflow model
US20010044738 *Mar 20, 2001Nov 22, 2001Alex ElkinMethod and system for top-down business process definition and execution
US20020032692 *Aug 9, 2001Mar 14, 2002Atsuhito SuzukiWorkflow management method and workflow management system of controlling workflow process
US20020035606 *May 18, 2001Mar 21, 2002Kenton Stephen J.Method and system for straight through processing
US20020040312 *Oct 2, 2001Apr 4, 2002Dhar Kuldeep K.Object based workflow system and method
US20020065701 *Nov 30, 2000May 30, 2002Kim Kyu DongSystem and method for automating a process of business decision and workflow
US20020147606 *Jan 3, 2002Oct 10, 2002Norbert HoffmannApplication development method
US20020161859 *Sep 4, 2001Oct 31, 2002Willcox William J.Workflow engine and system
US20020170035 *Feb 28, 2001Nov 14, 2002Fabio CasatiEvent-based scheduling method and system for workflow activities
US20020184610 *Jan 18, 2002Dec 5, 2002Kelvin ChongSystem and method for building multi-modal and multi-channel applications
US20020188597 *Jun 7, 2002Dec 12, 2002Jonathan KernMethods and systems for linking tasks to workflow
US20020188644 *Jun 8, 2001Dec 12, 2002VeranoWorkflow automated task component manager
US20030004767 *Jun 10, 2002Jan 2, 2003International Business Machines CorporationWorkflow system, information processor, and method and program for workflow management
US20030004771 *Jun 28, 2001Jan 2, 2003International Business Machines CorporationMethod, system, and program for executing a workflow
US20030023604 *Apr 18, 2001Jan 30, 2003International Business Machines CorporationProcess for data driven application integration for B2B
US20030023622 *Nov 13, 2001Jan 30, 2003Liaison Technology, Inc.Manual activity persistence in content management workflow systems
US20030055668 *Aug 8, 2002Mar 20, 2003Amitabh SaranWorkflow engine for automating business processes in scalable multiprocessor computer platforms
US20030084016 *Oct 26, 2001May 1, 2003Resultmaker A/SMethod for generating a workflow on a computer, and a computer system adapted for performing the method
US20030135659 *Jan 16, 2002Jul 17, 2003Xerox CorporationMessage-based system having embedded information management capabilities
US20030150908 *Nov 27, 2002Aug 14, 2003Kimberly-Clark Worldwide, Inc.User interface for reporting event-based production information in product manufacturing
US20030177046 *Dec 3, 2002Sep 18, 2003John Socha-LeialohaMethod and system for reusing components
US20030195762 *Oct 15, 2002Oct 16, 2003David GleasonAutomated workflow
US20030217053 *Apr 15, 2003Nov 20, 2003Bachman George E.Context control mechanism for data executed in workflows of process, factory-floor, environmental, computer aided manufacturing-based or other control system
US20030220707 *Apr 15, 2003Nov 27, 2003Budinger Bruce D.Workflow control configurator for use with process, factory-floor, environmental, computer aided manufacturing-based or other control system
US20030225769 *May 31, 2002Dec 4, 2003Microsoft CorporationSupport for real-time queries concerning current state, data and history of a process
US20040078105 *Sep 2, 2003Apr 22, 2004Charles MoonSystem and method for workflow process management
US20040078373 *May 14, 2003Apr 22, 2004Adel GhoneimyWorkflow system and method
US20040078778 *Oct 8, 2003Apr 22, 2004International Business Machines CorporationResource scheduling in workflow management systems
US20040133457 *Sep 29, 2003Jul 8, 2004Shazia SadiqFlexible workflow management
US20040139426 *Jul 31, 2003Jul 15, 2004Yuh-Cherng WuEnterprise multi-agent software system
US20040148213 *Dec 19, 2003Jul 29, 2004Microsoft CorporationAutomated workflow constraints
US20040148214 *Dec 19, 2003Jul 29, 2004Microsoft CorporationWorkflow services architecture
US20040148299 *Dec 19, 2003Jul 29, 2004Microsoft CorporationAutomated workflow composable action model
US20040153350 *Jan 31, 2003Aug 5, 2004Handysoft CorporationSystem and method of executing and controlling workflow processes
US20040162741 *Feb 7, 2003Aug 19, 2004David FlaxerMethod and apparatus for product lifecycle management in a distributed environment enabled by dynamic business process composition and execution by rule inference
US20040168155 *Aug 28, 2003Aug 26, 2004International Business Machines CorporationsFlow debugging software and method
US20040221261 *Apr 1, 2003Nov 4, 2004Mike BlevinsCollaborative business plug-in framework
US20050034098 *Aug 5, 2003Feb 10, 2005Accenture Global Services GmbhMethodology framework and delivery vehicle
US20050050311 *Aug 28, 2003Mar 3, 2005International Business Machines CorporationPluggable state meta-data processors based on meta information modeling in a service oriented architecture
US20050066002 *Jul 30, 2004Mar 24, 2005Arnold TeresWorkflow compatible healthcare information message communication system
US20050066287 *Sep 10, 2004Mar 24, 2005Tattrie Scott I.User-friendly data binding, such as drag-and-drop data binding in a workflow application
US20050071209 *Apr 8, 2004Mar 31, 2005International Business Machines CorporationBinding a workflow engine to a data model
US20050149908 *Oct 1, 2003Jul 7, 2005Extrapoles Pty LimitedGraphical development of fully executable transactional workflow applications with adaptive high-performance capacity
US20050177820 *Dec 19, 2003Aug 11, 2005International Business Machines CorporationMethod and system for debugging business process flow
US20050192963 *Apr 12, 2003Sep 1, 2005Tschiegg Mark A.Risk management information interface system and associated methods
US20050193286 *Mar 30, 2005Sep 1, 2005Microsoft CorporationCompensation framework for long running transactions
US20050204333 *May 9, 2005Sep 15, 2005Denby Philip M.Integrated system-of-systems modeling environment and related methods
US20050267889 *Feb 8, 2005Dec 1, 2005Coremetrics, Inc.System and method of managing software product-line customizations
US20060004845 *Jun 3, 2004Jan 5, 2006Microsoft CorporationMethod and apparatus for generating user interfaces based upon automation with full flexibility
US20060064335 *Aug 17, 2004Mar 23, 2006International Business Machines CorporationMethod, system, and storage medium for performing business process modeling
US20060074734 *Jan 31, 2005Apr 6, 2006Microsoft CorporationDeclarative representation for an extensible workflow model
US20060074736 *Feb 23, 2005Apr 6, 2006Microsoft CorporationProgramming interface for a componentized and extensible workflow model
US20060106663 *Mar 3, 2004May 18, 2006Mitsubishi Denki Kabushiki KaishaWorkflow management device
US20060112122 *Nov 23, 2004May 25, 2006International Business Machines CorporationMethod, system, and storage medium for implementing business process modules
US20060129443 *Dec 15, 2004Jun 15, 2006International Business Machines CorporationContent aware workflow builder and workflow engine
US20060143193 *Dec 29, 2004Jun 29, 2006Microsoft CorporationMethod and apparatus for metadata driven business logic processing
US20060206863 *Mar 14, 2005Sep 14, 2006Michael ShenfieldSystem and method for designing component based applications
US20060225032 *Oct 29, 2005Oct 5, 2006Klerk Adrian DBusiness application development and execution environment
US20060236304 *Oct 17, 2005Oct 19, 2006Research In Motion LimitedSystem and method for enabling assisted visual development of workflow for application tasks
US20060241954 *Apr 22, 2005Oct 26, 2006International Business Machines CorporationMethod and system for adaptive action management for business solutions
US20060271927 *May 27, 2005Nov 30, 2006Morales Javier AMethod and system for workflow process node synchronization
US20080320486 *Jun 10, 2004Dec 25, 2008Reuters AmericaBusiness Process Automation
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US8181155 *Feb 29, 2008May 15, 2012Microsoft CorporationUnified expression and location framework
US8191042Apr 1, 2008May 29, 2012Microsoft CorporationContinuation based declarative definition and composition
US8219431 *Dec 29, 2006Jul 10, 2012Ricoh Company, Ltd.Workflow management system, method and device for managing a workflow including plural hierarchically-classified tasks
US8332811Apr 30, 2009Dec 11, 2012United Parcel Service Of America, Inc.Systems and methods for generating source code for workflow platform
US8533290 *Oct 19, 2005Sep 10, 2013Konica Minolta Business Technologies, Inc.Installation support method and workflow generation support method
US8751284Apr 30, 2009Jun 10, 2014United Parcel Service Of America, Inc.Systems and methods for a real-time workflow platform using Petri net model mappings
US8839252 *Sep 1, 2010Sep 16, 2014Misys Ireland LimitedParallel execution of batch data based on modeled batch processing workflow and contention context information
US8898580 *Sep 14, 2012Nov 25, 2014Microsoft CorporationDefinition for service interface
US9262131Sep 15, 2014Feb 16, 2016Misys Ireland LimitedSystems, methods and machine readable mediums for batch process straight through modeling
US9588685 *May 3, 2013Mar 7, 2017EMC IP Holding Company LLCDistributed workflow manager
US20070016902 *Oct 19, 2005Jan 18, 2007Konica Minolta Business Technologies, Inc.Installation support method and workflow generation support method
US20070174342 *Dec 29, 2006Jul 26, 2007Kaoru MaedaWorkflow management system
US20080109467 *Nov 3, 2006May 8, 2008Microsoft CorporationData entity centric approach for designing workflows
US20090112932 *Apr 17, 2008Apr 30, 2009Microsoft CorporationVisualizing key performance indicators for model-based applications
US20090222794 *Feb 29, 2008Sep 3, 2009Microsoft CorporationUnified expression and location framework
US20090222827 *Apr 1, 2008Sep 3, 2009Microsoft CorporationContinuation based declarative definition and composition
US20100205238 *Feb 6, 2009Aug 12, 2010International Business Machines CorporationMethods and apparatus for intelligent exploratory visualization and analysis
US20100251155 *Mar 25, 2009Sep 30, 2010Microsoft CorporationPlaceholder activities and in-lining of code editors in workflow designer
US20100280865 *Apr 30, 2009Nov 4, 2010United Parcel Service Of America, Inc.Systems and Methods for a Real-Time Workflow Platform
US20100281462 *Apr 30, 2009Nov 4, 2010United Parcel Service Of America, Inc.Systems and methods for generating source code for workflow platform
US20120030612 *Jul 30, 2010Feb 2, 2012Sap AgDynamic property attributes
US20130014038 *Sep 14, 2012Jan 10, 2013Microsoft CorporationDefinition for Service Interface
US20130282424 *Sep 19, 2012Oct 24, 2013Tata Consultancy Services LimitedConfigurable process management system
CN102486730A *Dec 6, 2010Jun 6, 2012上海协讯软件有限公司Workflow realization method and workflow system capable of customizing flow in user-defined manner
CN102520968A *Dec 28, 2011Jun 27, 2012用友软件股份有限公司Design and demonstration device for process capable of being customized and method
Classifications
U.S. Classification705/7.27
International ClassificationG06Q10/06, G05B19/418
Cooperative ClassificationG06Q10/067, G06Q10/0633, G06Q10/10, G06Q10/06, G06F8/36
European ClassificationG06Q10/10, G06F8/36, G06Q10/06, G06Q10/0633
Legal Events
DateCodeEventDescription
Jul 14, 2005ASAssignment
Owner name: MICROSOFT CORPORATION, WASHINGTON
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SHUKLA, DHARMA K.;MEHTA, MAYANK;BHANDARKAR, ADITYA G.;AND OTHERS;REEL/FRAME:016266/0237
Effective date: 20050617
Jan 15, 2015ASAssignment
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034766/0001
Effective date: 20141014