1. Field of the Invention
The present invention relates to the field of business process modeling (BPM) and more particularly to workflow composition for business process modeling.
2. Description of the Related Art
Process modeling relates to the modeling of dynamic or static systems, which can include, but are not limited to, enterprise management systems, customer relationship management (CRM) systems, engineering systems, networked information technology systems, utility systems, utility computing systems, autonomic computing systems, on-demand systems, electric power grids, biological systems, medical systems, weather systems, financial market systems, and business process systems. Such systems can be modeled and simulated for a variety of purposes including monitoring, analysis, control, design, simulation, and management.
A process model is an abstract description of a process such as a business process or any other process related to the lifecycle of a system. The abstract description of the process model can include sufficient detail required by a simulation engine for exercising the process model with one or more scenarios to determine a likely outcome. Process models generally specify one or more steps or activities of a process and the relationship between the different steps or activities. As part of the model, one or more events or conditions leading to the transition from one step or activity to the next can be specified so as to define a workflow. Models defining a workflow generally are expressed according to a specific format. Exemplary formats include Activity Decision Flow (ADF) Unified Modeling Language (UML) activity diagrams, and the Business Process Execution Language (BPEL), to name only a few.
Workflows created in a BPM environment can be deployed for execution and execution lifecycle management in a Web services architecture. As it is well-known in the art, generally, a workflow process execution engine accepts as input a workflow such as that specified in BPEL, and produces one or more executable instances of components requisite to the workflow. Thereafter, the executable instances can be deployed in a network accessible architecture such that end users can access the workflow remotely from over a computer communications network.
Workflows have proven particularly effective in CRM applications. Generally, a workflow for a CRM application can specify a series of steps or activities to be performed either automatically (computer steps) or by a person (human steps) and can include by way of example, a step for retrieving a customer record, a step scripting a dialog with a customer, or a step for sending a responsive message to a customer inquiry. Transitions between steps can be governed by rules and workflows can be triggered by events. Notwithstanding, defining the workflows including triggering events, steps and transitions can be tedious for the uninitiated. Consequently, several workflow design tools provide for the graphical expression of workflows in order to ease the process of designing workflows.
By way of example, conventional workflow design tools for CRM provide a graphical user interface through which a business analyst can specify a flow steps to be performed by an end user in providing CRM services. Sophisticated workflow design tools provide a further capability of a drag and drop interface for defining a workflow by dragging and dropping steps from a listing of available steps onto a palette. The drag and drop nature of the conventional workflow design tool acts to minimize the necessity of software development expertise in composing a workflow for CRM. Even still, conventional workflow design tools for CRM lack a close coupling to the nature of CRM workflow and leave much omitted requiring technical intervention by a software developer. Examples include generating different screens for different steps in a workflow, determining the exchange of contextual data between steps in a workflow and determining and policing service level objectives for different steps in a workflow. Indeed, the user interface of the conventional workflow design tool leaves much to be desired in terms of convenience and simplicity.
Embodiments of the present invention address deficiencies of the art in respect to workflow design tools and provide a novel and non-obvious method, system and computer program product for user interface workflow composition. A method for user interface workflow composition can include defining a form of different fields. At least one of the fields in the form can referenced a business object providing access to data in an external data source that is different than at least one other data source for a correspondingly different one of the fields. The method also can include loading into a composition module a set of references to both human steps of a workflow and also automated steps of a workflow. Each of the human steps of the workflow can reference a corresponding user interface and each of the human steps and automated steps of the workflow individually can include contextual data.
The method also can include generating a human step for the defined form and loading the generated human step for the defined form into the composition module. Thereafter, individual graphical elements can be visually placed into a canvas rendered by the composition module. Each individual graphical element can be representative of a selected one of the human steps and automated steps. Further, an individual graphical element representative of the defined form can be visually placed into the canvas. Transitions can be defined between different ones of the human steps and automated steps represented by corresponding ones of the graphical elements in the canvas by creating visual connections between the different ones of the graphical elements in the canvas. In this regard, the human steps and automated steps can be represented by the graphical elements in the canvas, and the transitions defined therebetween can set forth a user interface workflow. Finally, the method can include generating computer readable instructions for the user interface workflow.
Once created, the computer readable instructions can be provided to a workflow engine to generate programmatic objects implementing the user interface workflow including display of an instance of the form, and to execute the programmatic objects for use by end users over a computer communications network. Thereafter, each field of the instance of the defined form can be searched for a matching string without searching a data source for each field in the instance of the defined form. Further, content accessible through each field of the instance of the defined form can be indexed by reference to a corresponding data source external to the instance of the defined form for use in searching the fields of the instance of the defined form without searching each data source for each field in the instance of the defined form.
In an aspect of the embodiment, different fields of the instance of the defined form can be completed by the end user by providing either new or modified data in the different fields. In response, the data provided by the end user can be persisted in correspondingly different external data sources through respective business objects. In this regard, for each field in which data is provided, an update (or create as the case may be) for the data can be directed in an external data source corresponding to the field by way of an intermediate business object referenced by the field. Further, a retrieve can be performed to retrieve for different fields data from corresponding ones of the external data sources. The data retrieved into the fields of the form can be persisted in an index separate from the external data sources. In this way, queries can be processed against the data of the fields in the index and not in the different data sources. As a result, the necessity of joining the different external data sources to conduct a query implicating data in the different external data sources can be obviated by querying only the index.
Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.
The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein:
Embodiments of the present invention provide a method, system and computer program product for forms processing in the visual composition of a flow of end user interactions with different steps of a workflow, hereinafter referred to as a user interface workflow. In accordance with an embodiment of the present invention, a user interface workflow composition tool can be provided to facilitate the composition and deployment of a workflow into a computer communications network. The composition tool can provide a unified graphical user interface including a palette in which a listing of references to available steps for inclusion in a user interface workflow can be rendered. Importantly, the steps can include both human steps and automated steps, for example those that pertain to CRM though the invention is in no way limited to the field of CRM.
The unified graphical user interface also can include a portion in which a canvas can be rendered. The canvas can accept the placement of graphical elements corresponding to selected ones of the references to the available steps. The different graphical elements in the canvas can be visually linked to others of the graphical elements so as to represent an ordering of flow from one step to another, the collection of graphical elements in the palette defining a user interface workflow representative of a sequence of user interface screens experienced by an end user when interacting with the workflow. In this regard, the execution of a step in the user interface workflow can result from a transition from one or more other steps and one or more steps can be executed subsequent to the completion of a step. Optionally, any of the graphical elements disposed in the palette can be incorporated within another, different user interface workflow.
A different view can be defined for each one of the human steps. The views can include a display of different user interface controls. Optionally, a view can include a form that includes multiple fields. While a view, for example a form, can be pre-specified for each human step, each view can be modified through the unified graphical user interface. In this regard, additional display controls can be added to a selected view for a human step. An association further can be stored in connection between each view and a corresponding step. Finally, when composing a user interface workflow, a user interface screen for each human step in the canvas can be defined. The screen can include an arrangement of one or more different views for corresponding different human steps.
Of note, at least one of the fields of at least one of the forms can reference a data source that is different from a data source for at least one other of the fields in the form. In this way, the back end data source for each of the fields can be hidden from an end user viewing an instance of the form and the form can behave as an aggregator of data from multiple, different data sources. In an aspect of the foregoing embodiment, content from data sources external to each field in an instance of the form can be indexed. Consequently, searches can be conducted against the fields of the instance of the form without searching content in each of the data sources external to each field. Rather, the index can be consulted during a search of an instance of the form in lieu of searching content in each of the data sources external to each field.
The user interface workflow defined within the canvas of the composition tool can be persisted as artifacts in a database, and subsequently converted into an archive or archives of computer readable instructions suitable for use by a workflow engine. In one aspect of the invention, the user interface workflow can be compiled to BPEL for use as a source document in a workflow engine converting the source document into a series of executable components accessible to end users from over a computer communications network. For example, the components can be placed in container defined within an application server and accessible by way of a services oriented architecture (SOA) provided in a Web services framework.
In further illustration,
Different ones of the steps 110, 120 can be selected for inclusion in the user interface workflow 150. By way of example, as illustrated, human steps 160 and automated steps 170 can be placed in the user interface workflow 150. For each of the human steps 160, one or more views 140 each previously associated with a corresponding one of the steps 160 can be placed in an associated screen. Additionally, a context 130 for each of the steps 160, 170 can be specified including a mapping of a source and/or target for data present in the steps 160, 170. Of note, data mapping can be specified manually by the end user, or data mappings can be determined algorithmically by seeking common data types between steps 110, 120 in the user interface workflow 150. Finally, one or more transitions can be defined for each of the human steps 160 and automated steps 170 indicating upon which condition or conditions a currently focused one of the steps 160, 170 is to end and a next one of the steps 160, 170 is to begin in the user interface workflow 150, and also which next one of the steps 160, 170 is to be invoked upon the ending of a contemporary one of the steps 160, 170.
Of note, the user interface workflow 150 is re-usable once defined such that other user interface workflows 180 can reference the user interface workflow 150 in the same way steps 110, 120 are referenced in the other user interface workflows 180. In this way, robust and unique user interface workflows can be defined over time using existing user interface workflows known to be effective thus obviating the need to invest substantial time and technical resources in developing new user interface workflows. Further, minor modifications requisite to adapting an existing user interface workflow to a new environment need not provoke the completely new specification of a new user interface workflow.
The process described in connection with
In this regard, the composition module 220 can include computer program instructions that when loaded into the memory of the computer system 200 and executed by the processor of the computer system 200 can be enabled to load from data store 230 a set of references to different steps 230A for display in a palette of the composition tool user interface 290. The computer program instructions further can be enabled to permit the selection and placement of different ones of the steps 230A onto a canvas of the composition tool user interface 290 each in the form of a graphical representation of a corresponding one of the steps 230A. Yet further, the computer program instructions can be enabled to permit the configuration of a context 230B of contextual data for each of the steps 230A represented by a corresponding graphical element in the canvas, including a type, source and mapping for the contextual data in the context 230B.
Even yet further, the computer program instructions can be enabled to identify different pre-associated views 230C with different ones of the steps 230A represented by a corresponding graphical element in the palette, and also to permit editing of a layout of the different views 230C. Consequently, different ones of the views 230C can be combined into a single screen for presentation in association with a particular one of the steps 230A. Finally, the computer program instructions can be enabled to permit the establishment of one or more transitions 230D between one or more of the steps 230A represented by a corresponding graphical element in the canvas so as to specify under what condition or conditions a contemporary one of the steps 230A has completed and a next one of the steps 230A is to begin.
The aggregation of the steps 230A represented by corresponding graphical elements in the palette of the composition user interface 290, along with the specified contexts 230B, views 230C in different screens, and transitions 230D, can be persisted as a user interface workflow 230—literally, artifacts in the data store 220. Publisher module 210 can compile and publish the artifacts of the workflow 230 into computer readable instructions 240 such as an enterprise archive (EAR) for deployment by a workflow engine 250 executing by an application server 280 in memory by a processor of the remote server 260 for use by different end users over the computer communications network 270.
In particular, a user interface workflow manager 215 can be coupled to the workflow engine 250 in the remote server 260. The user interface workflow manager 215 can process the user interface workflow 230 such that for each selected human step amongst the steps 230C, a corresponding screen can be retrieved and provided a corresponding context 230B. A form service 225 can identify any forms specified for the corresponding screen and retrieve the same for rendering. The fields of each form in the corresponding screen can be generated and linked as set forth in the form to corresponding data sources 255, 265 including both an internal data store 255 and one or more external data sources 265 through representative business objects providing the requisite create, read, update and delete operations. As data is provided in each field of each form, a corresponding index 245 can be updated for all of the data of all of the fields of the form irrespective of a corresponding data source of each field. Subsequently, search operations performed through the search service 235 can be conducted against the index 245.
It is to be recognized, then, that integral to the composition of the user interface workflow 240 is the convenience of composition provided by the composition tool user interface 290. As such, in yet further illustration of the composition tool user interface,
As will be apparent from
Returning now to
Upon creation of a form in the form designer 355, a human step can be created in association with the form for placement in the palette 310 of
In yet further illustration of the structure of a form for disposal in a screen for a corresponding step of a user interface workflow, illustration,
In further illustration,
Finally, with reference to
In decision block 545, when all transitions and SLOs have been established as desired for the steps in the palette, in block 550 artifacts can be written to a database representative of the user interface workflow of the steps in the canvas, the defined transitions, the user interfaces for the human steps already defined for the human steps and the mappings of contextual data in the steps. Thereafter, in block 555, the artifacts of the database for the user interface workflow can be compiled into computer readable instructions and packaged for publication can be passed to a workflow engine for loading and execution in block 560. Consequently, end-to-end, a user interface workflow—a variable sequence of steps both human and automated and corresponding user interfaces for the human steps workflow for CRM—can be defined and deployed without requiring intervention by an end user or end users possessing software development expertise.
Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, and the like. Furthermore, the invention can take the form of a computer program product accessible from a computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system.
For the purposes of this description, a computer readable medium can be any apparatus that can contain, store, communicate, transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, electromagnetic, or semiconductor system (or apparatus or device). Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
This patent application claims the benefit under 35 U.S.C. §120 as a continuation-in-part of presently pending U.S. patent application Ser. No. 12/603,524, entitled USER INTERFACE WORKFLOW COMPOSITION METHOD, SYSTEM AND COMPUTER PROGRAM PRODUCT, filed on Oct. 21, 2009, the entire teachings of which are incorporated herein by reference
Number | Date | Country | |
---|---|---|---|
Parent | 12603524 | Oct 2009 | US |
Child | 13080632 | US |