A SYSTEM FOR INTEGRATING EXTERNAL
SOFTWARE APPLICATIONS USING AN END-USER
PROGRAMMABLE WORKFLOW MANAGER
Background of the Invention
1. Field of the Invention
This invention relates to computer utility programs. In particular, the invention relates to a system and method for integrating external software applications using a programmable workflow manager. This invention has particular utility in integrating various business processes, such as computer-assisted dictation and transcription. In one aspect this invention facilitates configuration of external applications by a novice end-user of a computer.
2. Background Art
Workflow management systems are known in the art. A workflow management system conducts the flow of information in a process. This workflow may consist of a series of activities, activities conducted in parallel, or some combination of the two. Where the workflow generates information in the form of one or more computer files, each activity in the process may involve one or more third-party (or external) software applications. Workflow often involves activities that execute on two or more separate computers, but may also occur on a single computer involving two or more related, but separate software applications.
End users may be interested in integrating a wide variety of software application types including: contact managers (to create, develop and/or maintain address/telephone lists), database programs (to create, develop and/or maintain databases), fax or email transmission programs (to distribute documents), media players (to listen to audio (such as from dictation)), optical scanning and file storage (to scan and store documents), sound recorders (to record audio (such as dictation)), speech recognition (to create text from audio (live or prerecorded)), spreadsheets (to prepare accounting information), word processing (to prepare and edit documents). Each type of software application may have numerous available solutions available from numerous vendors. Furthermore, these vendors may create different versions, updates and models of the applications.
Seamless integration of external software applications requires the workflow management system to control each external software application. Generally, however, current workflow management systems only allow an end-user to integrate external
software applications that the workflow management system has been pre-programmed to accept. Consequently, if an end-user wants to integrate a previously unknown external software application or even a new version of an application either of which is unknown to the workflow management system, the end user must purchase or create an application interface designed to integrates the external software application with the workflow management system. Even in instances where the workflow management system does have an application interface for a desired external software application, workflow management systems often constrain the end-user to established workflow patterns. Thus, there is a need for a workflow management system that can integrate external software applications that are unknown to the workflow management system. There is an associated need to provide a workflow management system that provides for flexible use of an external software application as part of a wide variety of workflow patterns. It would also be desirable to avoid the time and expense associated with the design and programming of application interfaces for each possible external software application, let alone customized code for specialized configurations of those software applications.
In the area of computer-assisted dictation and transcription, the foregoing limitations are seen in complex processes involving a network and multiple computers and work activities occurring on a single computer. As an example occurring on a single computer, use of handheld devices that record dictation in proprietary, compressed audio format is becoming more common. In all known examples, software for conversion of a particular format to standard ".wav" format is available from the manufacturer. It is also becoming more common for a transcriptionist to use a media player controlled by a transcriptionist footpedal (with play, rewind, and forward controls) connected via a standard computer port. Media players having a footpedal interface permit the playback of audio files using the .wav format are common. Since dictating users may have recorders with different proprietary formats, the transcriptionist with a media player accepting .wav audio must be able to convert multiple different formats into .wav for playback and transcription. No previously known software exists that can control the conversion of all different formats and queue the .wav files for transcription. Any solution that was hard coded would very likely be outdated quickly by the rapid emergence of new proprietary formats and conversion software. End-users are rarely sophisticated computer programmers. Consequently, it would be preferable to have a workflow management
system having a simple user interface to facilitate the configuration of workflow and interaction with external software applications by such novice users.
In prior dictation and transcription workflow systems, the use of a third-party application for conversion of proprietary audio formats may be one of many integration problems facing the user. Typically, the workflow manager permits the operator to utilize a third-party software application (such as sound recorder, handheld recorder, speech recognition, word processor) that has been previously programmed to work with the workflow manager. If the end-user wishes to use a different application or updated version that is not compatible, new software code must be produced. Hence, the generalized need for a system to integrate software applications without programming certainly is found in the field of dictation and transcription, as well.
End-users are rarely sophisticated computer programmers. Consequently, it would be preferable to have a workflow management system having a simple user interface to facilitate the configuration of workflow and interaction with current and future external software applications by such novice users. Accordingly, there is a need for a system that can integrate third-party software in a variety of workflow processes without the need for additional programming. This system may consist of a program separate from any application in the workflow process or a component of a process application. Summary of the Disclosure
In a preferred approach, the present invention includes a graphical user interface tool that permits an end-user to generate, without "programming," the keystrokes and mouse events that serve to integrate external software applications with a workflow management system for various business processes based upon the particular needs of that user's workplace. These needs may include dictation and transcription.
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.
Brief Description of the Drawings
The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principals of the invention. Moreover, in the figures, like reference numerals designate corresponding parts throughout the different views. Fig. 1 of the drawings is block diagram of a computer system within which the present invention may be implemented.
Fig. 2 of the drawings is a flow chart of the generalized method for creating a workflow.
Fig. 3 of the drawings is a depiction of an exemplary implementation of a user interface for configuring an external software application for use within the system.
Figs. 4a, 4b, 4c and 4d of the drawings are a depiction of an exemplary implementation of a user interface for configuring actions within a configured external software application.
Figs. 5a and 5b of the drawings is a depiction of an exemplary implementation of a user interface for configuring locations at which the configured external software application executes.
Figs. 6a, 6b and 6c of the drawings is a depiction of an exemplary implementation of a user interface for configuring an activity by associating that activity with one or more of the configured computer applications. Fig. 7 of the drawings is a depiction of an exemplary implementation of a user interface for designing the workflow by utilizing one or more of the configured activities.
Best Mode for Carrying Out The Invention
This invention provides a system for a novice end-user that simplifies the configuration of a workflow for a business process and the external software applications for each activity in the process.
Fig. 1 of the drawings is block diagram of a computer system within which this invention may be implemented. Computer 1 may be a general-purpose computer system such as an IBM compatible, Apple, Unix type workstation, or equivalent computer (using a processor that may selectively be an Intel, AMD, Cyrix, Motorola 68XXX or PowerPC series, Compaq Digital Alpha, Sun, HP, IBM, Silicon Graphics, or other type of equivalent processor). The general-purpose computer will be running under a commercial available operating system. In the figures used in this patent disclosure a WINDOWS 9x environment was used. However, use of this environment is not required as part of the invention. Other programming languages and user-interface approaches may also be used
to facilitate data entry and execute the various computer programs that make up the inventive system and method.
The general-purpose computer system may host various external software applications, such as External Software Applications 1, 2 through n. The general-purpose computer system may also include a sound card, microphone and audio speaker. The computer may operate as a standalone or may further include an external communications interface. This external communications interface may comprise applications and hardware for connection of the computer to either or both a computer network (LAN, WAN, SAN, etc.) or the internet (via POTS, DSL, TI, etc.). When the computer is connected to a computer network it may communicate with Computers 2, 3 through n, as known in the art using standard communications protocols.
Among the other software resident on Computer 1, is workflow management system 100. Workflow management system 100 includes means for configuring external computer applications for use within a business workflow process 110; means for configuring an activity by associating that activity with one or more of the configured external computer applications 120; and means for designing the workflow by utilizing one or more of the configured activities 150. These elements interact to provide a basic workflow management system that can be configured, maintained and operating by a novice end-user. Fig. 2 shows the method of creating a workflow for a process. In particular, the user configures a computer application for use within the process, then configures an activity by associating that activity with one or more of the configured computer applications and designing the workflow by utilizing one or more of the configured activities. An exemplary implementation of a user interface associated with the means for configuring external computer applications 110 is shown in Fig. 3 of the drawings. This user interface may be used to explain the various operations of this application configuring means. As shown in Fig. 3, new applications (see, e.g. "Add New" button) may be added dynamically. For example, Fig. 3 shows the addition of "Eudora," a well known e-mail package from Qualcomm of San Diego, California, to the list of known external software applications. As shown in Fig. 3, the end-user inputs the name of an external software application and (optionally) a brief description of that external software application into the free form text boxes using any of the user input interfaces found within the operating system in a manner well-known to end-users and the art. In a similar fashion, the end-user
also inputs Executable Name and Path for the external software application. As shown in Fig. 3, completion of these inputs may be assisted through the use of a browse function that allows the end user to traverse the directory tree structure. Similarly, a find function could additionally or alternatively be provided to facilitate the end-user locating the executable program (and its associated files) associated with the external application name. Command line arguments may also be input by the end-user merely as a convenience and, consequently, would be unnecessary.
In a WINDOWS environment, to ensure that the external software application will open correctly during process operation, the end-user must input the type of window within which the external application will execute, such that the system can determine whether the window is active. In one simple approach provided by the system, the end- user may manually launch the target application, drag and drop a target icon over the application window activated by operating system to run the target external software application. Used in this manner, the target icon automatically records the Window Title and Class from the WINDOWS 9.x environment into the free text form spaces in the configuration form. After the details concerning the external software application have been entered, the end-user saves the changes, thus, making the application available for use within activities as selected by the end-user.
In this manner, various external software applications are shown in Fig. 3 as already having been configured for use with the workflow system. As can be seen in this example, among other applications shown in this partial list are speech recognition software and its companion programs (IBM Via Voice), a media player (MS Media Player 2), a wave player (PlayBax), etc. Once the external software application, itself, has been configured, then it may be desirable to configure various actions that may be selected within that application. An exemplary user interface for the purpose of configuring application actions is shown in Figs. 4a and 4b. In the example shown in Fig. 4a an end- user has input a macro program of the keystrokes necessary to translate an audio file from the proprietary format created by the Olympus DSS 1000 hand-held digital recorder into a different audio file format. Although mouse events are difficult to capture because of the volume of irrelevant information generated by a simple mouse movement, in some instances a mouse movement is the sole means for activating an activity within the external software application. In such an instance, the desirable mousing strokes may be recorded by dragging and dropping an icon (such as the pointing figure icon) over a moused stroke
command in an external software application. This action records the x- and y- coordinates at the location of the mouse click. As can be seen in Figs. 4a and 4b, the name and description of the action may be input by an end-user; the Button Group may similarly designated along with the appropriate file extension for the files used with the applications). In addition, various programmable file I/O options may be configured (no file I/O; defaul file input; select file to input; file output (save); and Save signature).
In the example shown in Fig. 4b, the actions have been configured for WordPad (the text utility program that is generally shipped with WINDOWS 9.x). In particular Fig. 4b shows that the end-user created a macro for a basic startup activity within WordPad. As shown, this action was hidden from end-users. In fact, any configured command(s) may be hidden from use by the end-users by toggling the hidden command switch, as shown in Fig. 4b. As shown in Fig. 4c, the result of that hidden designation, there is no icon for "$startup$," while an icon associated with every other configured action appears for selection by the end-user using standard operating system interface techniques including mouse activation.
In addition, these configured actions can also be assigned to keys on a discrete user input device, such as a XKeys from P.I. Engineering, Inc. of Williamston, Michigan. The user interface shown in Fig. 4d, corresponds to a physical keypad device having four columns and five rows. As would be understood to those in the art, the discrete switches on a selected input device is a matter of available equipment and design choice. Each discrete switch may be assigned an action, if so desired. The configured action for assignment to switches are listed in the left-hand list of Fig. 4d. For instance, in the example of Fig. 4d, any of the actions, such as the six actions associated with "WordPad" may be assigned to any of the open keys. Once assigned, there is no need to reopen this window.
As shown in Fig. 6a, the system further includes the means for configuring activities 120. As shown in Fig. 6a, the end user can type the name of the activity in the "type ahead" buffer (such as "Approve"). The activity can be assigned to operate automatically, require password validation, mark the job as read only and/or require a file to be saved before closing the activity out. Preprogrammed external software apphcations may be assigned to an action. As shown in Fig. 6b, the end user may assign one or more pre-programmed external software apphcations. As shown in Fig. 6c, where only two external application have been associated with the selected activity information ("Approve"), only the two selected external application are available for selection.
Fig. 7 shows the means for designing of a workflow 150 by utilizing one or more of the configured activities. As shown in Fig. 7, by selected "Add New," a new workflow may be created. The workflow may be assigned a name (such as "JK Dictation Transcription Approval") and a description provided in the "Description" type ahead buffer. Then, each time a mouse click is executed within the open space within the
"Workflow Path" window, an "Item" window is created. Each "item" window indicates a configured activity (and optionally) the computer location at which that configured activity will be executed. By clicking a dragging the mouse' indicator between item windows the flow is directed therebetween. For instance, by clicking on the "Item 1" window and dragging the mouse selector over to "Item 2," a flow is created between those two actions. Each activity is executed on the workflow path according to the programmed aspects of the activity and can be passed along to another activity in the workflow.
In addition to such serial passing of files, the workflow may include parallel path. In other words, the file output by Item 1 could be simultaneously fed to two Item windows and executed in parallel. It would also be understood by those skilled in the art that the present invention can be used in association with conditional transfers. Each activity is executed on the workflow path according to the programmed aspects of the activity and can be passed along to another activity in the workflow. For sake of simplicity, Fig. 7 shows the flow between only three steps in serial process. This figure is not meant to constitute a limitation based on the present invention.
As shown in Fig. 1, the workflow manger may also include the means for configuring actions within configured software 130 and means for configuring locations for software execution 140. Figs. 5a and 5b depict an exemplary implementation of a user interface for configuring distant locations (such as via the Internet or a WAN) at which the configured external software application executes. By selecting "Add New," a new location can be created. As shown in Fig. 5a, the naming is via free form data entry box. Upon modifying the location, a user interface intended to configure the location is launched. Fig. 5b provides two main choices: transfer via email or transfer via FTP. By entering the requested information (FTP or network copying) and the underlying message, the file will be passed from one location to the next. A similar function occurs with respect to any files passed by e-mail.
In one approach, the system is implemented, in part, on a relational database. A listing of the relevant structures in that database implementation are included below. In this particular implementation, the software configurations input by the end user (see Fig.
3) are inserted into a "software" database upon which it is assigned a unique identification number ("SoftwareSeq"). As activities are configured (see Fig. 6a), that information is inserted into an "activity" table upon which it is assigned a unique identification number ("ActivitySeq"). When software is assigned to a particular activity, it is inserted into an "ActivitySoftware" table.
The workflow is finally defined in tables "Routes," "RoutePath," and "RouteSteps." For instance, the "Routes" table contains, among other variables, the "Route name" and "Description" entered by the end user in the user interface of Fig. 7. The "RoutePath" table contains the activities and location for each node (i.e. Iteml, Item 2 and Item 3), which node is assigned a unique node identification number. The
"RouteSteps" table actually defines the linkages between the activity nodes using the unique node identification number.
The "Files" table contains a file name (including path, revision number, etc.), the job that the file is currently associated with (" JobSeq"), the identification number for the current activity within the current job at which the file is currently being manipulated or otherwise used ("JobActivitySeq") and the software used to create the current file. The "FileActivity" table contains the history of operations performed on a file.