# Patent

## Title
Integrated system, tools, and methods for designing automated business process applications

## Abstract

According to aspects illustrated herein, a system, a method, and a machine-readable medium for designing business process applications is provided. The system includes: an application design interface and an object query language module. The application design interface provides an integrated development environment framework. The object query language module is operatively connected to the application design interface and a data source such that data flows between the application design interface and the data source.

## Background
RELATED APPLICATION
This application claims priority to U.S. Provisional Application 60/658,272, which was filed on Mar. 3, 2005 and which is incorporated herein by reference.


COPYRIGHT NOTICE AND PERMISSION
One or more portions of this patent document contain material subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyrights whatsoever. The following notice applies to this document: Copyright© 2004-2005, Thomson Elite.
TECHNICAL FIELD
Various embodiments disclosed herein concern software design environments methods, interfaces, and tools, particularly those that facilitate design of business process applications for professional service firms or organizations.
BACKGROUND
The vast majority of conventional business process applications, that is, software that facilitates business operations and administrative functions, have been developed for general industries, such as manufacturing, transportation, etc. And comparatively little has been done to facilitate the operations and administration of professional service industries, such as law, finance, medical, academic) which require more flexibility within administration environments.
Accordingly, the present inventors have recognized a need to develop applications as well as design infrastructures that support development and/or implementation such applications.
SUMMARY
To address one or more of these and/or other needs, the present inventors have devised, among other things, an application design interface and related tools that facilitates development of business process applications.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of an exemplary system 100 corresponding to one or more embodiments of the invention.
FIGS. 2-6 are facsimiles of graphical user interfaces corresponding to one or more embodiments of the invention.
FIG. 7 is a flow chart of an exemplary method corresponding to one or more embodiments of the invention.



DESCRIPTION OF EXEMPLARY EMBODIMENT(S)
The following description, which incorporates the figures and the appended claims, describes and/or illustrates one or more exemplary embodiments of the invention. These embodiments, offered not to limit but only to exemplify and teach the invention, are shown and described in sufficient detail to enable those skilled in the art to make and use the invention. Thus, where appropriate to avoid obscuring the one or more inventions, the description may omit certain information known to those of skill in the relevant art.
FIG. 1 shows an exemplary design and implementation system or framework 100 for business process applications. Major components of the system include an object query language (OQL) module 110, an application design interface 120, a services module 130, application module 140, and a data store 150.
Object Query Language Module
OQL module 110, which is central to operation of the system, includes an expression language and an application program interface (API) to help users query a set of objects, navigate through an object graph, and get or set values on those objects. The OQL module is written abstractly at a “table” level. In this OQL (unlike standard programming languages), queries are defined with objects and object constructors, rather than strings. Generally, an object is a self-contained entity that consists of both data and procedures to manipulate the data, whereas a string is a series of characters manipulated as a group. Some objects are pre-constructed, while others can be constructed by invoking methods (functions) of other objects. In the exemplary embodiment, this object-based architecture eliminates the need for a new set of query instructions to be rewritten each time the query-to-database requirements change.
At application design time, the OQL module or layer effectively “floats” between the application design interface and the data store. And at application run time, the OQL layer provides the logic to process query requests from the application to the data source. The application is built using the designer components within the application design interface and is augmented by the services module, which allow the application end-users to work in a more integrated business environment, as further described herein.
Application Design Interface
Application design interface 120 provides an integrated development environment (IDE) “designer” framework, which may be available in a machine-readable medium, that allows users to choose the available query parameters and customize their application interface using a “pop-up menu” development interface. The exemplary embodiment provides specific IDEs for the design of application data objects, form interfaces, and business process automation. IDEs are traditionally integrated into a software application to provide elements such as a graphical user interface (GUI) builder, a text or code editor, a compiler, and/or interpreter and a debugger.
In some embodiments, the IDEs generate XML documents that conform to the particular XML schemas for an application framework. (Other embodiments use other forms of mark up languages.) The same IDE's are used both by developers and by the customer's information technology (IT) personnel. Each designer conforms to its specific base XML schema. These schemas are self-documenting representations of all rules and functionality that apply to each IDE. In the exemplary embodiment, they are core to the framework and are referenced directly by framework logic. Each IDE outputs a design XML document that conforms to the schema of that designer. The design XML documents fully describe the respective business process, form, or application logic component respectively.
Designers may produce a more granular XML document that describes the state of the process, form, or object, as displayed in the IDE. This document includes the display information from the IDE at the time that the item was saved. The framework translates and compiles the design XML documents and data objects into dynamic link libraries (DLLs) using operating system platform. (DLLs are a library of executable functions or data that can be used by an application. Typically, a DLL provides one or more particular functions and a program accesses the functions by creating either a static or dynamic link to the DLL. The operating system platform incorporates applications, a suite of tools and services, and a change in the infrastructure of the customer's web strategy.) Each XML document is saved in the database and file system. The database persistence allows the system to recover if the XML documents have been corrupted or are missing.
The exemplary application design interface includes the following designers: an archetype designer 121, a data-object designer 122, a form designer 123, a page designer 124, a business-process designer 125, a business object designer 126, and a message designer 127.
The archetype designer enables the user to define data-table and storage attributes. A user creates an archetype by defining the archetype's attributes, “look-up” capabilities, query properties, indexes, and “quick-find” definitions. The archetype designer allows the user to designate the amount of data in a query list, determine which archetype attributes must be indexed, and choose the default attributes that are displayed in a “query result grid” as a result of the archetype's query definition. The exemplary framework allows the user to add custom columns to defined tables or to define completely new custom tables. A utility is provided to import external tables into a database schema. The framework is aware of which tables are previously defined and which are customer-owned. The customer may not modify or delete a previously defined column. The object-relational mapping information for OQL is encapsulated in the “archetype” designer, which is described in more detail in other portions of this document. FIGS. 3 and 4 display the user-interface pages for the archetype designer.
This data-object designer IDE is used to define the data objects used by Exemplary as well as the underlying tables and columns. Data objects are application level data abstractions that contain metadata for table relationships, validation, and event-driven logic. Objects are mapped to existing database columns or to new columns created during object design.
The business-object designer allows the user to develop code that may be reused by other objects in the system and defines a business object that may be used throughout an application suite built using the exemplary system.
The form designer allows the user to design custom application interfaces using data elements designed in the object designer. Available user-interface (UI) controls are specified in the IDE's XML schema but the user always designs using data objects. The interfaces then may be used as a step of a business-process definition. Each form may contain only one data object reference. This means that complex interfaces are comprised of a parent form and a series of sub-forms. The framework allows sub forms to inherit the properties and arguments of their parents. This also allows users to add customization without comprising the upgrade path.
The page designer enables the user to define pages by associated existing objects with a page definition and then selecting the form(s) that must be displayed for each object included on the page. In the page design the user may include any number of forms that must be displayed for a given object on the page; therefore although page definitions may consist of the same objects, the interface created by each page definition may differ. By electing different forms (views) for each object the user has the ability to create different interfaces.
The process designer allows the user to design complete business processes (custom workflows) consisting of multiple “steps”. A process requires a reference to at least one data object. The data object governs which forms and code modules are available to the process steps. A process step contains three components: a form or code module, an output, and a business rule. The output represents the process choices available to a participant at the subject step (e.g., approve/reject). The business rule contains data test and routing information for the next participant.
FIG. 2 displays an exemplary design-interface start page, with the individual designers listed on the right side of the page.
Services Module
As represented by services module 130 in FIG. 1, applications, such as application 140 may access one or more services for collaboration, notification, exceptions, security, work lists, workflow, and reporting. These services reside within the application and allow end users to integrate more fully with one another. For example, the workflow service is based on process “steps” that contains rules and associations with owners. When a step is complete, the next step appears on the next owner's Action List. A “watch list” allows users to observe processes they are interested in. More generally, the exemplary embodiment defines services as sets of functionality provided and available to all applications built using the design interface. These services have a designated display area—below the action menus and above the application display area—within every application page. The services include the following: Collaboration, WorkList, Workflow, Folder Maintenance and Inheritance.
The collaboration service allows users to solicit and submit suggestions or comments on work products, leveraging the end-users' expertise and creating a synergistic work environment. An organizer initiates a collaboration session on a selected item from the application's worksheet and provides a subject/message for the collaboration session. The system sends the collaboration invitations to notify the invitees while the organizer continues to work. Invitees submit suggestions to the organizer, and these suggestions are reviewed. FIGS. 5 and 6 display application user-interface pages from the collaboration-service process.
Inheritance service is a service of the exemplary framework that allows the user to configure heavily used items to contain defaulted information. This feature is especially useful to users that perform a great deal of data entry. It allows many levels of inheritance for any inheritance item, which is essentially a “super template” and is stored in the draft database, therefore not displaying as a system entity in the true entity.
In addition to application-specific services, Exemplary provides a centralized routing service that provides Web-services access to all application processes. The routing service passes the request off the subject business process, thereby eliminating the need for a Web service for each application process.
Until transactions are finally committed to the database, all data is stored in “draft tables” (one table per data object). Draft tables are “aware” of what data was modified, when the data was modified, and by whom or what (e.g., another program). One use for draft tables is to monitor productivity, and this mechanism facilitates collaboration with other users.
Exemplary Methods of Operation
FIG. 7 shows a flow chart 700 of one or more exemplary methods of operating a system, such as system 100 to design a business process application, such as application 140. Flow chart 700 includes blocks 710-750, which are arranged and described in a serial execution sequence in the exemplary embodiment. However, other embodiments execute two or more blocks in parallel using multiple processors or processor-like devices or a single processor organized as two or more virtual machines or sub processors. Other embodiments also alter the process sequence or provide different functional partitions to achieve analogous results. For example, some embodiments may alter the client-server allocation of functions, such that functions shown and described on the server side are implemented in whole or in part on the client side, and vice versa. Moreover, still other embodiments implement the blocks as two or more interconnected hardware modules with related control and data signals communicated between and through the modules. Thus, the exemplary process flow applies to software, hardware, and firmware implementations.
At block 710, the exemplary method begins with creation of a design project. In the exemplary embodiment, the project is to design an application that creates a timekeeper information window in which the timekeeper's name, description, type and timekeeper number can be maintained. In the exemplary embodiment, creating the project provides a way of grouping objects related to the project, and entail selecting the new button on the IDE start page, as shown in exemplary form in FIG. 2, and then entering a name in the Add New Project window, such as SampleProject and choosing OK. As a result, this name will be displayed in the project tree of the start page. Execution then continues at block 720.
Block 720 entails creating the archetypes using the archetype designer. In the exemplary embodiment, this entails creating one or more archetypes, such as a Folder Type archetype, Timekeeper archetype, and a folder archetype. Appendix A provides an example of the creation of a Folder Type Archetype.
Block 730 entails adding objects to one or more archetypes, such as those created in block 720, using the object designer. In the exemplary embodiment, based on the sample project, this entails adding objects to the Folder Type, Timekeeper and Folder archetypes. Appendix A shows the details for adding objects in the exemplary embodiment.
Block 740 entails design forms for each of the objects. In the exemplary embodiment, this entails designing a grid, form and worklist for each using the Form Designer. Appendix A shows an example of how the Form Designer may be used with the exemplary embodiment.
Block 750 entails defining different “views” using the page designer for each object defined for the page's base object. In the exemplary embodiment, this entails defining a Folder Page, a Folder Type Page, and a Timekeeper Page. After you define Folder and Folder Type pages, you will configure and deploy a business work flow process in the Process Designer. An example of how to define different views for the exemplary embodiment is found in Appendix A.
The embodiments described herein are intended only to illustrate and teach one or more ways of practicing or implementing the present invention, not to restrict its breadth or scope. The actual scope of the invention, which embraces all ways of practicing or implementing the teachings of the invention, is defined only by the following claims and their equivalents.

## Claims

1. A system to implement business process applications, the system comprising:
a database to store business data; and
a processing device including one or more processors to execute:
a design interface configured to design a business process application, the business process application including at least one object associated with the business data and an individual workflow for each of the at least one object, wherein the design interface includes:
an archetype designer configured to define one or more archetypes, wherein each of the archetypes include at least one data-table having columns and storage attributes with object-relational mapping information for the at least one object,
a data-object designer configured to define the at least one object according to the one or more archetypes, and
a process designer configured to design one or more processes of the individual workflow for each of the at least one object, wherein the individual workflow includes at least one step, the at least one step including a business rule and a designated output; and

an object query language interface configured to process each of the at least one object of the business process application to execute the business rule of the individual workflow for each of the at least one object against the business data of the database to generate the designated output according to the executed business rule.

2. The system of claim 1, wherein the design interface further includes one or more of:
a form designer configured to design one or more object forms using the at least one object defined by the data-object designer;
a page designer configured to define pages by associating the plurality of objects with a page definition and the one or more object forms;
a business object designer configured to develop code for an object of the at least one object capable of being reused by at least one other object of the at least one object; and
a message designer.

3. The system of claim 2, wherein the at least one object include metadata for table relationships, validation, and event driven logic.

4. The system of claim 2, wherein the at least one object are configured to be mapped to associated at least one data table and columns.

5. The system of claim 1, wherein the object query language interface includes an object layer.

6. The system of claim 1, wherein the object query language interface is configured to execute one or more queries against the database using one or more of the at least one object.

7. A method of implementing a business process application, the method comprising:
designing via a design interface of a processing device a business process application, the business process application including at least one object associated with business data of a database and an individual workflow for each of the at least one object, wherein designing the business process application includes:
defining one or more archetypes, wherein each of the archetypes include at least one data-table having columns and storage attributes with object-relational mapping information for the at least one object,
defining the at least one object according to the one or more archetypes, and
designing one or more processes of the individual workflow for each of the at least one object, wherein the individual workflow includes at least one step, the at least one step including a business rule and a designated output; and

processing via an object query language interface of the processing device each of the at least one object of the business process application that executes the business rule of the individual workflow for each of the at least one object against the business data of the database and generates the designated output according to the executed business rule.

8. The method of claim 7, further comprising:
adding an object to the business process application based on an archetype; and
designing an individual workflow for the added object that includes at least one step, the at least one step including a rule and an output.

9. The method of claim 7, further comprising creating the archetype.

10. The method of claim 7, wherein the method further comprises executing one or more queries against the database using one or more of the at least one object.

11. A non-transitory machine-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to:
design via a design interface a business process application, the business process application including at least one object associated with business data of a database and an individual workflow for each of the at least one object, wherein the instructions to design the business process application cause the processing device to:
define one or more archetypes, wherein each of the archetypes include at least one data-table having columns and storage attributes with object-relational mapping information for the at least one object,
define the at least one object according to the one or more archetypes, and
design one or more processes of the individual workflow for each of the at least one object, wherein the individual workflow includes at least one step, the at least one step including a business rule and a designated output; and

process via an object query language interface each of the at least one object of the business process application that executes the business rule of the individual workflow for each of the at least one object against the business data of the database and generates the designated output according to the executed business rule.

12. The non-transitory machine-readable storage medium of claim 11, further comprising instructions that, when executed by the processing device, cause the processing device to:
add an object to the business process application based on an archetype; and
design an individual workflow for the added object that includes at least one step, the at least one step including a rule and an output.

13. The non-transitory machine-readable storage medium of claim 11, further comprising instructions that, when executed by the processing device, cause the processing device to execute one or more queries against the database using one or more of the at least one object.