System and software for creation and modification of software

Information

  • Patent Grant
  • 9678719
  • Patent Number
    9,678,719
  • Date Filed
    Monday, May 20, 2013
    11 years ago
  • Date Issued
    Tuesday, June 13, 2017
    7 years ago
Abstract
Described herein is a system comprising an App Generator (application generator) comprising executable program instructions that define one or more constraints. The one or more constraints embody one or more rules for converting an information structure into one or more components of a software application. The system also includes a digital data processor executing said executable program instructions to: i. provide a user interface; ii. accept input data that defines the information structure; and iii. apply the one or more constraints to said input data to generate the one or more components of the software application.
Description
TECHNICAL FIELD

The invention relates to digital data processing and, more particularly, to software development systems and methods. The invention has application, by way of non-limiting example, to accelerating the creation and modification of software applications that comprise one or more workflows.


BACKGROUND

The traditional way for creating a software application has required many skilled workers such as a database administrator, UI designer, programmers as well as the process architects and business users that understand the workflow. Months of work are usually required to develop, test, and deploy even the simplest of workflow automation applications.


Recently, model-driven development (MDD) tools have incrementally improved this process, allowing users to describe each step of a workflow explicitly in a diagramming tool such as Microsoft Visio or equivalent software program, and much of the coding and user interface development is automated. The MDD tools have sped development up incrementally, in some cases up to 70 percent faster than the aforementioned traditional method. Yet much of the development of a software application is redundant because an application's structure is constrained by the data the workflow is designed to capture and display.


In view of the foregoing, an object of the invention is to provide improved methods and system for digital data processing.


A related object is to provide such methods and apparatus as can be used to build new software applications as well as modify existing software applications.


A further related object of the invention is to provide such methods and apparatus as can be used by both skilled and unskilled users to rapidly build and modify software applications without even seeing a line of code.


Yet a still further object of the invention is to provide such methods and apparatus as can be implemented and operated at reduced expense on existing and new platforms.


SUMMARY OF THE INVENTION

The foregoing are among the objects attained by the invention which provides, in some aspects, a system comprising an App Generator (application generator). The App Generator further comprises executable program instructions that define one or more constraints, wherein said one or more constraints embody one or more rules for converting an information structure into one or more components of a software application. The system includes a digital data processor executing said executable program instructions to: i. provide a user interface; ii. accept input data that defines the information structure; iii. apply the one or more constraints to said input data to generate the one or more components of the software application. The one or more components for the software application may include any of one or more workflows, one or more user interfaces and one or more database tables and columns. The information structure may be a hierarchical data structure.


Such a system can include one or more elements of the systems described above.


In other aspects, the invention provides methods that parallel operation of the systems described above and can be used to create and/or modify software applications.


These and other aspects of the invention are evident in the drawings and in the description that follows.





BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the invention may be attained by reference to the drawings, in which:



FIG. 1 depicts a digital data processing system of the type in which the invention is practiced;



FIG. 2 is a flow chart depicting a method of operation of the software development system of FIG. 1;



FIG. 3 is a block diagram depicting further details of steps 140, 150 in FIG. 2;



FIG. 4 is block diagram depicting further details of the database components that may be generated using systems and methods described herein;



FIG. 5 is an example of a user interface for the App. Generator of FIG. 1;



FIG. 6 is an example of a step in a workflow of a software application that is automatically generated using the systems and methods described herein.





DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENT

An insight of this invention is that by analyzing the structure of the information the application is intended to capture and process, a functional workflow can be effectively generated to capture that information, including all necessary user interface and database components.


Furthermore, the interface for capturing the information structure from the unskilled user who wants to build a software application also requires its own development process. Workflow automation and MDD companies go through the traditional software method described previously to update and maintain their software development environment.


The invention described herein allows for the rapid evolution of the information structure design workflow because it is itself generated from an information structure, which will be called the “meta-information structure” heretofore.


Automating the continued development of the data structure workflow can provide a significant advantage to a software company that employs the techniques described herein to its platform, allowing for the quick addition of new features.



FIG. 1 depicts a digital data processing environment in which embodiments of a software development system 10 utilizing the techniques described herein may be implemented. This includes a SD server digital data processor 16 that is coupled to client digital data processors 12a, 12b via the Internet, a wide area network (WAN), metropolitan area network (MAN), local area network (LAN), telephone networks and/or a combination of these and other networks (wired, wireless, public, private or otherwise)—all indicated here by the element 14


The illustrated digital data processors 12a, 12b and 16 comprise personal computers, blade PCs, work stations, mainframes, personal digital assistants (PDAs), mobile phones, embedded processors and/or other digital data apparatus of the type known in the art, one or more of which can be adapted for operation in accord with the teachings hereof. Here, those digital data processors are of the type and configuration used in a thin client computing environment, i.e., with an application server (e.g., 16) providing a majority of the processing and other functionality to one or more client devices (e.g., 12a,12b) via network(s) 14; however, the invention may be practiced in any variety of other computing environments, networked or otherwise. By way of non-limiting example, the software development system 10 may be based on thick client principles where all of the functionality and resources utilizing the techniques described herein are provided and/or utilized by a single digital data processor (e.g., SD server 16) that is networked or otherwise. Examples of other well known computing environments include, but are not limited to, rich client environments where a networked digital data processor (e.g., 12a, 12b and 16) has some components and software installed locally but also uses resources and/or functionality distributed over a network. Still further examples of computing environments in which the invention may be practiced include cloud computing and other distributed and virtual computing environments.


The techniques set forth herein may be described in the general context of computer-executable instructions, such as a computer program product or program modules (collectively, “computer programs”), accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a digital data processor (e.g., 12a, 12b, 16) or any instruction execution mechanism. Generally, computer programs include routines, objects, components, data structures, and the like, that are designed to perform particular tasks. Typically the functionality of the computer programs may be combined or distributed as desired in various embodiments. For the purposes of this description, a computer-usable or computer readable medium may include any apparatus that can store, communicate, propagate, or transport the computer program for use by or in connection with a digital data processor or instruction execution system.


The medium may be, but is not limited to, electronic, magnetic, optical, or electromagnetic. Examples of computer-readable mediums include, but are not limited to, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), EEPROM, flash memory, a rigid magnetic disk and an optical disk. Current examples of optical disks include CD-ROM, CD-R/W and DVD.


As illustrated in FIG. 1, the digital data processor 12a may include one or more processing units 20, memory 22, storage 30, and a system bus 32 used to facilitate communications between the components of the computer 12a, as well as other components not illustrated in FIG. 1. The computer 12b and SD server 16 may also include components similar to those as illustrated and included in the computer 12a. Each of the processing systems 12a, 12b and 16 are capable of storing and/or executing computer programs. The memory 22 may be volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two. It may include local memory employed during actual execution of the computer program as well as cache memories which may provide temporary storage of at least some of the computer program instructions or related data in order to reduce the number of times that the code or data has to be retrieved from bulk storage 30 (e.g., USB devices, magnetic or optical disks, tape, etc.). By way of example, and not limitation, memory 22 and storage 30 are both examples of computer-readable media as described above.


The digital data processors 12a, 12b and 16 may be coupled to each other or external storage devices (e.g., system database 18) through intervening networks (e.g., 14) through the use of network adapters (not shown in FIG. 1). Modems, cable modems and Ethernet cards are examples of currently available network adapters. Furthermore, Input/Output devices (e.g., keyboards, displays, pointing devices, etc,), also not shown in FIG. 1, can be coupled to the digital data processors 12a, 12b and 16 either directly or through intervening I/O controllers.


Described in more detail in following paragraphs and figures is processing that may be performed by computer programs executed by the computers 12a, 12b and SD server 16 in connection with using the techniques described herein. In the illustrated embodiment, digital data processors 12a, 12b are client computers which communicate with the SD server 16 over the network 14. The computers 12a, 12b may include a web browser or other software for use in connection with rendering a user interface (UI) that may be used in connection with viewing and performing other operations on data requested, and received from, the SD server 16. The web browser and UI may also be used to transmit data to SD server 16 for processing by the SD server 16. Each of the clients 12a, 12b may operate independently of each other in connection with performing different operations on data obtained from the server 16. The SD server 16 and client computers 12a, 12b may utilize the techniques described herein to create and/or modify software applications that comprise one or more workflows. In addition to the internal memory and storage of digital data processors 12a, 12b and 16, the software development system 10 may also utilize an external database system 18 to store and access data that is generated and/or processed by the digital data processors. Examples of external database systems that may be used include, but are not limited to, Microsoft Access, Microsoft SQL server, IBM DB2, Informix, Oracle and Sybase.



FIG. 2 is a flow diagram depicting a method of operation of the software development system 10. During the bootstrapping phase of step 100, a skilled user (e.g., a system administrator or a developer) defines a ‘meta-information structure’ using any programming language. This meta-information structure is stored as a data file in a location accessible from the SD server 16 (e.g., system database 18 or the internal storage of SD server 16). Generally speaking, during operation of software development system 10 in the illustrated embodiment, a user may continue to update and refine the meta-information structure in an iterative fashion by repeating steps 100 and 130. In order to update the meta-information structure in step 130, a user may access the meta-information structure data file from its storage location (e.g., on SD server 16 or system database 18) by signaling a request (e.g., by way of HTTP/HTTPS requests) using a thin client (e.g. web browser) user interface of any of client devices 12a, 12b. Upon receiving the request, the SD server 16 will transmit the data file back to the requesting client (e.g., 12a). User of the requesting client device can then update the meta-information structure and transmit the update file back to the SD server 16 for storage using the same thin client interface. It will be appreciated that the thin client browser-based interface is illustrative only and that the software development system 10 may use a variety of different user interfaces (e.g, thick client user interface executing non SD server 16) to access and update the meta-information structure.


Once the meta-information structure is finalized, a user may signal (e.g., using the thin client interface of client 12a) SD server 16 to process the meta-information structure in step 120 to create an application generator (hereinafter, “App. Generator”) component (shown as element 40 in FIG. 1). Processing may include compilation, just-in-time (JIT) compilation or interpretation of the meta-information data file, depending upon the programming language used to create the file. Furthermore, the processing may be performed using a SD server-based compiler, interpreter or a virtual machine depending upon the specific processing mechanism (e.g., compilation, interpretation or JIT compilation) and the computing environment of the software development system 10.


Regardless of the specific technology employed by SD server 16 to process the meta-information structure in response to signaling by client 12a, the end result of such processing in step 120 is an executable computer program, the App Generator (shown as element 40 in FIG. 1), that can be used in steps 140, 150 to create and/or modify software applications (comprising workflows, database and user interface components) by using information structure definitions for such software applications as input to the App Generator 40. In creating/modifying software applications, the App. Generator 40 applies one or more constraints that embody one or more rules related to the conversion of the information structure into one or more components of a software application. Such components may include process definitions, user interface layout and configuration, database components, security settings (e.g., privileges for viewing, creating, updating and deleting data elements) and the types of integration that may be supported by the software application (e.g., SOAP, database queries etc.). Furthermore, the meta-information structure may dictate the types of processing that can be done at various stages of the process definitions (e.g., process step transitions, creating instances of objects, cloning objects, updating objects, deleting objects, logging on/off of an application etc.). All or some of such default settings and configurations specified by the constraints in the meta-information structure may be overridden in the information structure definitions for each individual software application that is generated using the App. Generator.


The App Generator may be implemented in a single computer program or a combination of multiple software modules. Though, in the illustrated embodiment in FIG. 1, App. Generator 40 executes on SD server 16, in other embodiments, the App. Generator 40 may execute on or over multiple digital data processors.



FIG. 3 is a block diagram depicting further details of steps 140, 150 in FIG. 2. In step 140 of the illustrated embodiment, a user defines an information structure 200 for a software application. This information structure 200 comprises a hierarchical data structure that defines the data entities (e.g., 201-205) that will be captured and/or processed by the software application during its execution. The information structure 200 also defines the relationship between such data entities as well as formulas and/or expressions for calculating the values of such data entities, if applicable. Finally the information structure may define certain high-level configuration information related to the administrative functionality and overall user interface layout of the software application (e.g., administrative login information, setting to display a navigation bar on the user interface for the application etc.). This high-level configuration information specified in the information structure of each application may override configuration specifications in the meta-information structure that are applied to all software applications that are created and/or modified using the App. Generator 40, as mentioned previously.


In the illustrated embodiment, the information structure 200 is created and stored as an XML file at a location that is accessible from the SD server 16 (e.g., system database 18 or locally on SD server 16). In order to begin creating the XML file using the App Generator 40, a user may signal the SD server 16 (e.g., by way of HTTP/HTTPS requests) using a thin client interface (e.g., web browser) to execute the App Generator 40. Upon receiving the execution signal from client 12a, the SD server 16 executes the computer executable instructions of the computer program that implements the App. Generator 40. As a result of this execution, a user interface (e.g., see element 500 in FIG. 5) is displayed in the web browser of client 12a that allows a user to create and edit XML documents using an easy-to-use graphical interface rather than manually writing XML code. It will be appreciated that this technique of graphically manipulating the XML document is not a limitation, but only helps accelerate the software development process. A programmer or a skilled user may prefer to manually create and/or edit the information structure by writing XML code and provide the XML file to the SD server 16 using a file upload feature.


Once the information structure for the software application is defined and provided to the App. Generator 40 in step 140, the App. Generator parses the XML file to automatically generate the corresponding software application by constructing a model of a process in step 150. In the illustrated embodiment, the App. Generator 40 stores the process model as a Java object consisting of an array of steps (e.g., 211-215). A series of one or more steps may comprise a single workflow and the software application may include one or more workflows. Each step of a workflow comprises one or more data fields and process actions. A data field may be an attribute that is either input by the software application's end user through a user interface (e.g., input field on a web page) or its value may be set by a function/expression. A process action may be specification of a trigger event for process state transitions (e.g., moving from one state to another). Such events may include modifications to the values of data fields captured at each step (e.g., creating, reviewing, updating and deleting values of data instances), user actions with respect to the user interface displaying a particular step in a workflow (e.g., making a selection, clicking a button, tabbing in/out of fields etc.). Such process actions may be used by the App. Generator 40 to configure certain elements of the user interface for workflow steps (e.g., buttons 604 and 605 of screen 600 as shown in FIG. 6).


As an example of how the App. Generator may parse the information structure to generate a process model of a software application, consider the following pseudo-code (A), in which tags with a type attribute set to “complex” generate workflow steps and each tag with a type attribute set to “simple” generates a data field to be captured as part of the parent step. Further, “simple” tags are always embedded within “complex” tags.















PSEUDO CODE EXAMPLE A



















<ExpenseReport type=”complex”>




   <Name type=”simple”/>




   <CreatedDate type=”simple”/>




   <CreatedBy type=”simple”/>




   <Expense>




      <Amount type=”simple”/>




      <Description type=”simple”/>




      <Party>




         <Name type=”simple”/>




         <Surname type=”simple”/>




      </Party>




   </Expense>




</ExpenseReport>









Such rules about the hierarchical layout of the “simple” and “complex” tags in an information structure for an application, and how such tags are converted into steps and data fields for the software application, are embodied in constraints that are specified in the meta-information structure. The App Generator 40 applies such rules when parsing information structures to generate software applications.


By way of non-limiting example, for pseudo-code (A) above, the process used by the App. Generator 40 to parse the XML begins at the highest level 0 (e.g., element 201) of the information structure, i.e., the ExpenseReport tag. Because the ExpenseReport tag is at the highest level and of type “complex”, the App. Generator 40 creates a process object (i.e. workflow), the first step of which captures the data fields related to the ExpenseReport step. The App. Generator 40 then traverses the children of ExpenseReport with a type attribute set to “simple,” Name, CreatedDate and CreatedBy. The App. Generator 40 converts these tags into data fields of the ExpenseReport step. Next, the App. Generator 40 traverses to the next complex data structure Expense at the next level (e.g., 202, 203) and generates the second step of the process. Applying the same constraints as those mentioned above, the App. Generator 40 traverses the “simple” tags embedded within the parent Expense tag i.e., Amount and Description. Again, applying the rules embodied in the constraints that are applied during this XML parsing, the App. Generator 40 converts these “simple” tags into data fields of the Expense step in the workflow. Additionally, the App. Generator 40 processes the Party tag, which is a child of the Expense tag at the same Level as elements 204, 205 in FIG. 3. As the Party tag's type attribute is “complex”, the App. Generator 40 creates a third step in the process to capture the Party information. Finally, the App. Generator 40 moves to the children tags of Party i.e., Name and Surname. Because type attribute for tags Name and Surname are set to “simple”, the algorithm converts the tags to data fields on the Party step.


In addition to creating the process model of the software application, in step 150 (and sub-step 220 as shown in FIG. 3) the App Generator 40 also creates the database components that are necessary to support data processing during execution of the generated software application. Such components comprise, for example, database tables for each complex object (or tag) and columns for each simple object (or tag) as specified in the information structure for the software application. The database components may be generated in the system database 18 (as shown in FIG. 1) or any other database that is in communication coupling with the App. Generator 40 at the time when the software application is first executed. In the illustrated embodiment, the database components are not generated prior to the first execution of the software application in order to avoid repeated creation and deletion of database components while the information structure for the application is being finalized. However, it will be appreciated that, in other embodiments, database components may be generated at various different times during the software application development process.



FIG. 4 provides further details of the database components that may be generated using the methods and apparatus described herein. Generally speaking, using the exemplary pseudo-code (A) mentioned above, the App. Generator 40 may create the database components for the ExpenseReport3 workflow as follows. First, upon execution o the ExpenseReprt3 workflow for the first time, the App Generator 40 creates a Level 0 Table (e.g., 301) for the ExpenseReport object with columns Name, CreatedDate and CreatedBy. Next the App Generator 40 creates a Level 1 Table (e.g., 303, 305) for the Expense object with columns Amount and Description. Finally, the App Generator 40 creates a Level n Table (e.g., 309) for the Party object with columns Name and Surname. In addition to creating the database structure in the illustrated embodiment, the App Generator 40 may add an additional column to each table. This additional column may store values captured for each instance of the objects during execution of the software application. In one embodiment, the structure of this additional column may also follow the same hierarchy as that defined in the information structure for the application, such that the additional column in Level 0 tables will store the values of the instances of all sub-level Tables 1-n. This is illustrated in FIG. 4 by elements 311, 321 and 331 for Table 0.


Again using the database structure for the ExpenseReport3 workflow as an example and assuming that a single instance of the ExpenseReport object has been created with a single instance of Expense and Party objects created within the ExpenseReport object. The additional column in database table for ExpenseReport instance will store the values for all 3 instances i.e. ExpenseReport, Expense and Party. The additional column in database table for Expense instance will store the values for the Expense and Party instance, whereas the table for the Party object will only store values for instances of the Party object. It will be appreciated that the overall database structure is illustrative only and by no means limits the methods and apparatus described herein with regard to the automatic generation of database components.


Referring now to FIG. 5, an exemplary user interface 500 is shown for the App. Generator 40 as shown in FIG. 1. As mentioned above, in the illustrated embodiment, a software development system 10 is provided and is operable to be displayed in a thin client user interface on client computer 12a. During operation of software development system 10, a user may signal a request through client device 12a (e.g., by way of HTTP/HTTPS requests) for the user interface 500 to be transmitted to the client device 12a for display/execution by its web browser. That web browser is of the conventional type known in the art operative on the client device 12a for, by way of example, retrieving screen definitions, presenting those screens (visually, aurally, or otherwise), executing scripts, controls and other code on those screens, accepting user input with respect to those screens (e.g., for purposes of completing input fields), issuing HTTP/HTTPS requests with respect to those screens or otherwise (e.g., for submitting to a server information from the completed input fields), and so forth. The screens (e.g., web pages) can be defined using code scripts in HTML or other conventional forms, including embedded XML, Javascripts, controls, and so forth—again, per convention in the art.


In response to the user request from client 12a, the SD server 16 retrieves the one or more code scripts that define user interface 500. These scripts are part of the computer program that implements the App Generator 40, and are either stored directly on the SD server 16 or at another location (e.g., system database 18) that is accessible to the SD server 16. The SD server 16 processes those code scripts to generate the markup language stream that is rendered in the browser of client 12a to display the user interface 500. It will be appreciated that the user interface 500 is illustrative only and the App. Generator 40 may utilize a variety of different user interfaces to allow users to interact with itself and/or the SD server 16.


Systems and methods according to the invention facilitate rapid development and/or modification of software applications without writing a single line of code.


This is depicted, by way of non-limiting example, in FIG. 5, in which section 501 of the user interface 500 is shown to graphically display the information structure for an application ExpenseReport3 that uses the workflow mentioned above. Users can use this graphic display mechanism to review the information structure definition for existing applications that are stored on (or accessible to) SD server 16. A user simply selects a pre-existing application (e.g., ExpenseReport3) from drop-down 501 and the corresponding information structure is displayed in section 501 of the user interface 500. From the information structure display, the user is able to graphically manipulate the information structure, and consequently modify the corresponding software application without writing any code or manipulating any data files. For example, a user can add a new data layer at the appropriate level in the information structure by simply drawing a box in section 501 of the user interface 500. Once the box has been positioned at the appropriate level within the information structure, the user is prompted to enter descriptive information related to the new data layer (e.g., name and parent information). Once the descriptive information has been entered, the client device 12a will transmit the information to the SD server 16, which will in turn, automatically update the corresponding software application based upon the constraints applied by the App Generator 40.


By way of non-limiting example, if the user wants to modify the ExpenseReport3 workflow to add a new step to capture the full name and department of an Approving Manager as part of the workflow, the user will simply draw a box at the appropriate level (e.g., same level as Name, CreatedDate, CreatedBy) in section 501. The name and parent information for this new data layer will be Approving Manager and ExpenseReport, respectively. Within this new box for the Approving Manager data layer, the user will also draw two smaller boxes where the parent information for each box will be Approving Manager and the name of each box will be Full Name and Department. In other words, Approving Manager is added as a new ‘complex’ object type with two ‘simple’ embedded object types for Full Name and Department in the XML definition of the information structure for the ExpenseReport3 workflow. Once this information is captured and transmitted to SD server 16, the ExpenseReport3 workflow is automatically updated to create a new step for the Approving Manager object with data fields for Full Name and Department. Further details about individual workflow steps and related objects and data fields are provided below as part of the discussion for FIG. 6.


Users can also interact with the App. Generator 40 through user interface 500 to rapidly build new applications. In the illustrated embodiment, a user can signal the App. Generator 40 executing on SD server 16 to build a new application by making the ‘New’ selection from drop-down 501. Upon making the selection, the user is presented with a pop-up menu to specify the name of the new application. Once the name is entered, screen 500 automatically displays a new box in the graphical display section 501 where the user can start creating the information structure graphically for the new application as described above.


In the illustrated embodiment, the graphical display section 501 is implemented using the <canvas> HTML element in the code scripts for user interface 500. This element allows users to do graphical manipulations (e.g., draw boxes) using scripting (e.g., JavaScript) that may also be embedded in the code scripts for the user interface. Furthermore, this scripting may contain the logic for converting data captured using the graphical user interface into the XML definition of the underlying information structure. It will be appreciated that the use of this HTML element and scripting is illustrative only and does not in any way limit the scope of the invention with regard to the input and manipulation of an information structure for an application using the methods and apparatus described herein. By way of non-limiting example, section 501 may be implemented using different technology (e.g., SVG, Flash etc.) in other embodiments of the invention. Furthermore, a graphical user interface such as section 501 may not be used at all to create and/or modify information structures for software applications. In certain computing environments for the software development system 10 described herein, a user may manually define and/or modify the information structure for an application in an XML or .txt file, which is in turn supplied to the SD server 16 through a file upload facility.


Referring now to FIG. 6, an exemplary screen 600 is shown displaying a step in the ExpenseReport3 workflow. The overall layout and functionality of this screen is automatically generated by the App. Generator based upon the information structure definition for the ExpenseReport3 workflow as well as the constraints that are applied by the App Generator 40 while converting the information structure definition into the software application. The screen 600 may be displayed in the user interface executing on any of client digital data processors 12a, 12b as described above. The screen 600 further demonstrates a functional implementation of the above mentioned features of an embodiment of the system and methods described herein.


In this embodiment of the screen 600, a user of the ExpenseReport3 application can start creating specific instances of the ExpenseReport object that was defined using the App. Generator 40 user interface as shown in FIG. 5. In the top section of the screen 600, the user can see numbered sections 601, 602, 603 corresponding to each of the steps in the ExpenseReport3 workflow i.e., ExpenseReport, Expense and Party. As shown in FIG. 6, section 601 is highlighted since the user is currently viewing the ExpenseReport step of the workflow. The user can enter information for simple data elements Name, CreatedBy and CreatedDate through input fields 608, 609 and 610, respectively. Each field is by default a text field unless a ‘DataType’ attribute is specified in the information structure. Once the information is entered, the user can either add another instance of the ExpenseReport object by selecting the ‘Add’ button 605, or the user can proceed to the next step in the ExpenseReport3 workflow by selecting the ‘Done—Next Step’ button 604. Selection may be accomplished by single-clicking on the desired button. Both of these buttons represent process actions of the ExpenseReport step, as mentioned previously. Upon proceeding to the next step by selecting button 604, section 602 will be highlighted on top of screen 600 and the user will be prompted to enter information for data fields Amount and Description associated with the Expense step of the ExpenseReport3 workflow. If the user enters multiple instances of the ExpenseReport object prior to proceeding to the next step, the user will be prompted to enter multiple instances of the Expense and Party objects for each entered ExpenseReport object at the corresponding steps in the ExpenseReport 3 workflow.


The content displayed in the main panel 620 keeps changing as the user proceeds through the ExpenseReport3 workflow because the data fields for each step are displayed in the main panel 620. Furthermore, as the user creates instances of the ExpenseReport, Expense and Party objects at each step of the workflow, such instances can be listed in section 607 of the screen 600. Also, users have the option to sort the list of instances based upon the various data fields that are associated with each step in the flow. As shown in section 607 of FIG. 6, the user can view and sort the list of all previously created instances of the ExpenseReport object based upon the Name, CreatedBy and CreatedDate data fields associated with the ExpenseReport step of the flow. Similarly, when the user proceeds to the Expense step of the work flow, section 607 will display a list of the previously entered Expense objects where that list can be sorted based upon the Amount and Description data fields associated with the Expense step. Users may review any of the instances in the main panel 620 by selecting (e.g., through a single-click selection or otherwise) the specific instance in the list in section 607.


Users may also review a particular instance of an object by using the ‘Find’ section 606 of the screen 600. In the illustrated embodiment, a user can submit a query through the input field 611 by entering a value for any of the data fields and selecting (e.g., through a single-click selection or otherwise) the ‘Find’ button 612. Queries may be constructed using any unique identifier for any instance of the objects. Finally, user may end the use of the ExpenseReport3 application and log-off the system 10 by selecting (e.g., through a single-click selection or otherwise) the link 640.


In addition to supporting default user interface (UI) generation based on the information structure definition and the constraints specified in the meta-information structure, the methods and techniques described herein may also be used to override default (UI) generation by the App. Generator 40. By way of nonlimiting example, consider the following pseudo-code (B) where the definition of Name data field for the Expense step in the information structure definition for the ExpenseReport3 workflow has been changed to a drop-down list with a pre-defined list of values.















PSEUDO CODE EXAMPLE B



















<ExpenseReport type=”complex”>




   <Name type=”simple” order=””/>




      <ui>




         <select1 name=”Name”>




         <option>John Smith</option>




         <option>John Kerry</option>




         <option>Edward North</option>




         <option>Ben Frenkel</option>




         </select1>




      </ui>




   </Name>




   <CreatedDate type=”simple”/>




   <CreatedBy type=”simple”/>




   <Expense>




      <Amount type=”simple”/>




      <Description type=”simple”/>




      <Party>




         <Name type=”simple”/>




         <Surname type=”simple”/>




      </Party>




   </Expense>




</ExpenseReport>









Based upon the updated definition for the Name field in the information structure and the constraint specified in the meta-information structure that select1 tag equates to a drop-down where only one value can be selected, the App Generator 40 would automatically generate screen 600 to show the Name data field as a drop-down as opposed to an input text field as shown in FIG. 6.


It will be appreciated that the overall layout, configuration and functionality of screen 600 is exemplary and does not in any way limit the software development methods/techniques and apparatus described herein.


Described herein are methods and systems meeting the objects set forth above, among others. It will be appreciated that the illustrated embodiments and those otherwise discussed herein are merely examples of the invention and that other embodiments, incorporating changes thereto, fall within the scope of the invention, of which we claim.

Claims
  • 1. A method for displaying a user interface associated with a particular step in a workflow associated with an application, the method comprising: executing, on a digital data processor, the workflow associated with the application, wherein execution of the workflow creates at least one instance of a data object; anddisplaying a plurality of user interface elements including a visual indication that the particular step is currently selected for execution by the digital data processor as part of the workflow, wherein execution of the particular step will create a first instance of the data object using the workflow; anddisplaying a first element among the plurality of user interface elements, wherein responsive to selecting the first element, the digital data processor executes the particular step to create the first instance of the data object and the user interface prompts to create a second instance of the data object using the workflow while visually indicating that the particular step is still currently selected for execution as part of the workflow, the user interface further comprising a section for listing object instances that have already been created, and wherein responsive to selecting the first element, the section is updated to list the created first instance of the data object.
  • 2. The method of claim 1, wherein the first instance of the data object includes information that was provided through the user interface that displayed the particular step in the workflow.
  • 3. The method of claim 1, wherein the plurality of user interface elements further include a second element that is selectable to proceed to execution of a next step that follows the particular step in the workflow.
  • 4. The method of claim 3, further comprising, responsive to selecting the second element, executing the particular step to create the first instance of the data object and the user interface visually indicates that the next step is currently selected for execution after the particular step.
  • 5. The method of claim 1, wherein the first element is a button that represents a process action associated with the particular step.
  • 6. The method of claim 1, wherein the digital data processor can be any of a client processor and a server processor, andwherein the client processor and the server processor operate in any of a thin client, thick client, rich client, and cloud computing environment.
  • 7. The method of claim 1, wherein the workflow includes one or more process actions.
  • 8. A system for displaying a user interface associated with a particular step in a workflow associated with an application, the system comprising: a memory; anda digital data processor configured to execute program instructions stored in the memory to: execute the workflow associated with the application, wherein execution of the workflow creates at least one instance of a data object;display a plurality of user interface elements including a visual indication that the particular step is currently selected for execution by the digital data processor as part of the workflow, wherein execution of the particular step will create a first instance of the data object using the workflow; anddisplay a first element among the plurality of user interface elements, wherein responsive to selecting the first element, the digital data processor executes the particular step to create the first instance of the data object and the user interface prompts to create a second instance of the data object using the workflow while visually indicating that the particular step is still currently selected for execution as part of the workflow, the user interface further comprising a section for listing object instances that have already been created, and wherein responsive to selecting the first element, the section is updated to list the created first instance of the data object.
  • 9. The system of claim 8, wherein the first instance of the data object includes information that was provided through the user interface that displayed the particular step in the workflow.
  • 10. The system of claim 8, wherein the plurality of user interface elements further include a second element that is selectable to proceed to execution of a next step that follows the particular step in the workflow.
  • 11. The system of claim 10, wherein responsive to selecting the second element, the particular step is executed to create the first instance of the data object and the user interface visually indicates that the next step is currently selected for execution after the particular step.
  • 12. The system of claim 8, wherein the first element is a button that represents a process action associated with the particular step.
  • 13. The system of claim 8, wherein the digital data processor can be any of a client processor and a server processor, andwherein the client processor and the server processor operate in any of a thin client, thick client, rich client, and cloud computing environment.
  • 14. The system of claim 8, wherein the workflow includes one or more process actions.
  • 15. A non-transitory computer-readable medium providing program code for use by a digital data processor, operable for displaying a user interface associated with a particular step in a workflow associated with an application, and when executed operable to: execute, using the digital data processor, the workflow associated with the application, wherein execution of the workflow creates at least one instance of a data object;display a plurality of user interface elements including a visual indication that the particular step is currently selected for execution by the digital data processor as part of the workflow, wherein execution of the particular step will create a first instance of the data object using the workflow; anddisplay a first element among the plurality of user interface elements, wherein responsive to selecting the first element, the digital data processor executes the particular step to create the first instance of the data object and the user interface prompts to create a second instance of the data object using the workflow while visually indicating that the particular step is still currently selected for execution as part of the workflow, the user interface further comprising a section for listing object instances that have already been created, and wherein responsive to selecting the first element, the section is updated to list the created first instance of the data object.
  • 16. The computer-readable medium of claim 15, wherein the first instance of the data object includes information that was provided through the user interface that displayed the particular step in the workflow.
  • 17. The computer-readable medium of claim 15, wherein the plurality of user interface elements further include a second element that is selectable to proceed to execution of a next step that follows the particular step in the workflow.
  • 18. The computer-readable medium of claim 17, wherein responsive to selecting the second element, the program code is operable to execute the particular step to create the first instance of the data object and the user interface visually indicates that the next step is currently selected for execution after the particular step.
  • 19. The computer-readable medium of claim 15, wherein the first element is a button that represents a process action associated with the particular step.
  • 20. The computer-readable medium of claim 15, wherein the digital data processor can be any of a client processor and a server processor, andwherein the client processor and the server processor operate in any of a thin client, thick client, rich client, and cloud computing environment.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 12/798,161 (pending), filed on Mar. 10, 2010, entitled SYSTEM AND SOFTWARE FOR CREATION AND MODIFICATION OF SOFTWARE, which claims the benefit of priority of U.S. Provisional patent application Ser. No. 61/164,738, filed Mar. 30, 2009, entitled “A software system for creating a computer managed workflow,” all of which are incorporated herein by reference.

US Referenced Citations (597)
Number Name Date Kind
4047059 Rosenthal Sep 1977 A
4344142 Diehr, II et al. Aug 1982 A
4602168 Single Jul 1986 A
4607232 Gill, Jr. Aug 1986 A
4659944 Miller, Sr. et al. Apr 1987 A
4701130 Whitney et al. Oct 1987 A
4866634 Reboh et al. Sep 1989 A
4884217 Skeirik et al. Nov 1989 A
4895518 Arnold et al. Jan 1990 A
4930071 Tou et al. May 1990 A
4953106 Gansner et al. Aug 1990 A
5062060 Kolnick Oct 1991 A
5077491 Heck et al. Dec 1991 A
5093794 Howie et al. Mar 1992 A
5119465 Jack et al. Jun 1992 A
5129043 Yue Jul 1992 A
5136184 Deevy Aug 1992 A
5136523 Landers Aug 1992 A
5140671 Hayes et al. Aug 1992 A
5193056 Boes Mar 1993 A
5199068 Cox Mar 1993 A
5204939 Yamazaki et al. Apr 1993 A
5228116 Harris et al. Jul 1993 A
5259766 Sack et al. Nov 1993 A
5262941 Saladin et al. Nov 1993 A
5267175 Hooper Nov 1993 A
5267865 Lee et al. Dec 1993 A
5270920 Pearse et al. Dec 1993 A
5276359 Chiang Jan 1994 A
5276885 Milnes et al. Jan 1994 A
5291394 Chapman Mar 1994 A
5291583 Bapat Mar 1994 A
5295256 Bapat Mar 1994 A
5297279 Bannon et al. Mar 1994 A
5301270 Steinberg et al. Apr 1994 A
5310349 Daniels et al. May 1994 A
5311422 Loftin et al. May 1994 A
5326270 Ostby et al. Jul 1994 A
5333254 Robertson Jul 1994 A
5339390 Robertson et al. Aug 1994 A
5374932 Wyschogrod et al. Dec 1994 A
5379366 Noyes Jan 1995 A
5379387 Carlstedt et al. Jan 1995 A
5381332 Wood Jan 1995 A
5386559 Eisenberg et al. Jan 1995 A
5395243 Lubin et al. Mar 1995 A
5412756 Bauman et al. May 1995 A
5421011 Camillone et al. May 1995 A
5421730 Lasker, III et al. Jun 1995 A
5446397 Yotsuyanagi Aug 1995 A
5446885 Moore et al. Aug 1995 A
5450480 Man et al. Sep 1995 A
5463682 Fisher et al. Oct 1995 A
5473732 Chang Dec 1995 A
5477170 Yotsuyanagi Dec 1995 A
5481647 Brody et al. Jan 1996 A
5499293 Behram et al. Mar 1996 A
5504879 Eisenberg et al. Apr 1996 A
5512849 Wong Apr 1996 A
5519618 Kastner et al. May 1996 A
5537590 Amado Jul 1996 A
5542024 Balint et al. Jul 1996 A
5542078 Martel et al. Jul 1996 A
5548506 Srinivasan Aug 1996 A
5561740 Barrett et al. Oct 1996 A
5579223 Raman Nov 1996 A
5579486 Oprescu et al. Nov 1996 A
5586311 Davies et al. Dec 1996 A
5596752 Knudsen et al. Jan 1997 A
5597312 Bloom et al. Jan 1997 A
5608789 Fisher et al. Mar 1997 A
5611076 Durflinger et al. Mar 1997 A
5627979 Chang et al. May 1997 A
5630127 Moore et al. May 1997 A
5649192 Stucky Jul 1997 A
5655118 Heindel et al. Aug 1997 A
5664206 Murow et al. Sep 1997 A
5675753 Hansen et al. Oct 1997 A
5678039 Hinks et al. Oct 1997 A
5689663 Williams Nov 1997 A
5715450 Ambrose et al. Feb 1998 A
5732192 Malin et al. Mar 1998 A
5754740 Fukuoka et al. May 1998 A
5761063 Jannette et al. Jun 1998 A
5761673 Bookman et al. Jun 1998 A
5765140 Knudson et al. Jun 1998 A
5768480 Crawford, Jr. et al. Jun 1998 A
5788504 Rice et al. Aug 1998 A
5795155 Morrel-Samuels Aug 1998 A
5809212 Shasha Sep 1998 A
5815415 Bentley et al. Sep 1998 A
5819257 Monge et al. Oct 1998 A
5822780 Schutzman Oct 1998 A
5825260 Ludwig et al. Oct 1998 A
5826077 Blakeley et al. Oct 1998 A
5826239 Du et al. Oct 1998 A
5826250 Trefler Oct 1998 A
5826252 Wolters, Jr. et al. Oct 1998 A
5829983 Koyama et al. Nov 1998 A
5831607 Brooks Nov 1998 A
5832483 Barker Nov 1998 A
5841435 Dauerer et al. Nov 1998 A
5841673 Kobayashi et al. Nov 1998 A
5864865 Lakis Jan 1999 A
5873096 Lim et al. Feb 1999 A
5875334 Chow et al. Feb 1999 A
5875441 Nakatsuyama Feb 1999 A
5880614 Zinke et al. Mar 1999 A
5880742 Rao et al. Mar 1999 A
5886546 Hwang Mar 1999 A
5890146 Wavish et al. Mar 1999 A
5890166 Eisenberg et al. Mar 1999 A
5892512 Donnelly et al. Apr 1999 A
5907490 Oliver May 1999 A
5907837 Ferrel et al. May 1999 A
5910748 Reffay et al. Jun 1999 A
5911138 Li et al. Jun 1999 A
5918222 Fukui et al. Jun 1999 A
5920717 Noda Jul 1999 A
5930795 Chen et al. Jul 1999 A
5945852 Kosiec Aug 1999 A
5974441 Rogers et al. Oct 1999 A
5974443 Jeske Oct 1999 A
5978566 Plank et al. Nov 1999 A
5983267 Shklar et al. Nov 1999 A
5987415 Breese et al. Nov 1999 A
5990742 Suzuki Nov 1999 A
5995948 Whitford et al. Nov 1999 A
5995958 Xu Nov 1999 A
6008673 Glass et al. Dec 1999 A
6008808 Almeida et al. Dec 1999 A
6012098 Bayeh et al. Jan 2000 A
6020768 Lim Feb 2000 A
6023704 Gerard et al. Feb 2000 A
6023714 Hill et al. Feb 2000 A
6023717 Argyroudis Feb 2000 A
6028457 Tihanyi Feb 2000 A
6037890 Glass et al. Mar 2000 A
6044373 Gladney et al. Mar 2000 A
6044466 Anand et al. Mar 2000 A
6078982 Du et al. Jun 2000 A
6085188 Bachmann et al. Jul 2000 A
6085198 Skinner et al. Jul 2000 A
6091226 Amano Jul 2000 A
6092036 Hamann Jul 2000 A
6092083 Brodersen et al. Jul 2000 A
6094652 Faisal Jul 2000 A
6098172 Coss et al. Aug 2000 A
6105035 Monge et al. Aug 2000 A
6108004 Medl Aug 2000 A
6122632 Botts et al. Sep 2000 A
6125363 Buzzeo et al. Sep 2000 A
6130679 Chen et al. Oct 2000 A
6137797 Bass et al. Oct 2000 A
6144997 Lamming et al. Nov 2000 A
6151595 Pirolli et al. Nov 2000 A
6151624 Teare et al. Nov 2000 A
6154738 Call Nov 2000 A
6167441 Himmel Dec 2000 A
6177932 Galdes et al. Jan 2001 B1
6185516 Hardin et al. Feb 2001 B1
6185534 Breese et al. Feb 2001 B1
6192371 Schultz Feb 2001 B1
6194919 Park Feb 2001 B1
6212502 Ball et al. Apr 2001 B1
6216135 Brodersen et al. Apr 2001 B1
6233332 Anderson et al. May 2001 B1
6233617 Rothwein et al. May 2001 B1
6240417 Eastwick et al. May 2001 B1
6243713 Nelson et al. Jun 2001 B1
6246320 Monroe Jun 2001 B1
6275073 Tokuhiro Aug 2001 B1
6275790 Yamamoto et al. Aug 2001 B1
6281896 Alimpich et al. Aug 2001 B1
6282547 Hirsch Aug 2001 B1
6300947 Kanevsky Oct 2001 B1
6304259 DeStefano Oct 2001 B1
6308163 Du et al. Oct 2001 B1
6313834 Lau et al. Nov 2001 B1
6314415 Mukherjee Nov 2001 B1
6324693 Brodersen et al. Nov 2001 B1
6330554 Altschuler et al. Dec 2001 B1
6338074 Poindexter et al. Jan 2002 B1
6341277 Coden et al. Jan 2002 B1
6341293 Hennessey Jan 2002 B1
6344862 Williams et al. Feb 2002 B1
6349238 Gabbita et al. Feb 2002 B1
6351734 Lautzenheiser et al. Feb 2002 B1
6356286 Lawrence Mar 2002 B1
6359633 Balasubramaniam et al. Mar 2002 B1
6366299 Lanning et al. Apr 2002 B1
6369819 Pitkow et al. Apr 2002 B1
6370537 Gilbert et al. Apr 2002 B1
6380910 Moustakas et al. Apr 2002 B1
6380947 Stead Apr 2002 B1
6381738 Choi et al. Apr 2002 B1
6389460 Stewart et al. May 2002 B1
6389510 Chen et al. May 2002 B1
6393605 Loomans May 2002 B1
6396885 Ding et al. May 2002 B1
6405211 Sokol et al. Jun 2002 B1
6405251 Bullard et al. Jun 2002 B1
6415259 Wolfinger et al. Jul 2002 B1
6415283 Conklin Jul 2002 B1
6418448 Sarkar Jul 2002 B1
6421571 Spriggs et al. Jul 2002 B1
6426723 Smith et al. Jul 2002 B1
6429870 Chen et al. Aug 2002 B1
6430571 Doan et al. Aug 2002 B1
6430574 Stead Aug 2002 B1
6437799 Shinomi et al. Aug 2002 B1
6446065 Nishioka et al. Sep 2002 B1
6446089 Brodersen et al. Sep 2002 B1
6446200 Ball et al. Sep 2002 B1
6446256 Hyman et al. Sep 2002 B1
6448964 Isaacs et al. Sep 2002 B1
6453038 McFarlane et al. Sep 2002 B1
6463346 Flockhart et al. Oct 2002 B1
6463440 Hind et al. Oct 2002 B1
6469715 Carter et al. Oct 2002 B1
6469716 Carter et al. Oct 2002 B1
6473467 Wallace et al. Oct 2002 B1
6473748 Archer Oct 2002 B1
6493331 Walton et al. Dec 2002 B1
6493399 Xia et al. Dec 2002 B1
6493731 Jones et al. Dec 2002 B1
6493754 Rosborough et al. Dec 2002 B1
6496812 Campaigne et al. Dec 2002 B1
6496833 Goldberg et al. Dec 2002 B1
6502239 Zgarba et al. Dec 2002 B2
6509898 Chi et al. Jan 2003 B2
6513018 Culhane Jan 2003 B1
6526440 Bharat Feb 2003 B1
6526457 Birze Feb 2003 B1
6529217 Maguire, III et al. Mar 2003 B1
6529899 Kraft et al. Mar 2003 B1
6529900 Patterson et al. Mar 2003 B1
6530079 Choi et al. Mar 2003 B1
6532474 Iwamoto et al. Mar 2003 B2
6539374 Jung Mar 2003 B2
6542912 Meltzer et al. Apr 2003 B2
6546381 Subramanian et al. Apr 2003 B1
6546406 DeRose et al. Apr 2003 B1
6549904 Ortega et al. Apr 2003 B1
6556226 Gould et al. Apr 2003 B2
6556983 Altschuler et al. Apr 2003 B1
6556985 Karch Apr 2003 B1
6559864 Olin May 2003 B1
6560592 Reid et al. May 2003 B1
6560649 Mullen et al. May 2003 B1
6567419 Yarlagadda May 2003 B1
6571222 Matsumoto et al. May 2003 B1
6577769 Kenyon et al. Jun 2003 B1
6583800 Ridgley et al. Jun 2003 B1
6584464 Warthen Jun 2003 B1
6584569 Reshef et al. Jun 2003 B2
6594662 Sieffert et al. Jul 2003 B1
6597381 Eskridge et al. Jul 2003 B1
6597775 Lawyer et al. Jul 2003 B2
6598043 Baclawski Jul 2003 B1
6606613 Altschuler et al. Aug 2003 B1
6625657 Bullard Sep 2003 B1
6629138 Lambert et al. Sep 2003 B1
6636850 Lepien Oct 2003 B2
6636901 Sudhakaran et al. Oct 2003 B2
6643638 Xu Nov 2003 B1
6643652 Helgeson et al. Nov 2003 B2
6661889 Flockhart et al. Dec 2003 B1
6661908 Suchard et al. Dec 2003 B1
6678679 Bradford Jan 2004 B1
6678773 Marietta et al. Jan 2004 B2
6678882 Hurley et al. Jan 2004 B1
6684261 Orton et al. Jan 2004 B1
6690788 Bauer et al. Feb 2004 B1
6691067 Ding et al. Feb 2004 B1
6691230 Bardon Feb 2004 B1
6701314 Conover et al. Mar 2004 B1
6711565 Subramaniam et al. Mar 2004 B1
6721747 Lipkin Apr 2004 B2
6728702 Subramaniam et al. Apr 2004 B1
6728852 Stoutamire Apr 2004 B1
6732095 Warshavsky et al. May 2004 B1
6732111 Brodersen et al. May 2004 B2
6748422 Morin et al. Jun 2004 B2
6750858 Rosenstein Jun 2004 B1
6751663 Farrell et al. Jun 2004 B1
6754475 Harrison et al. Jun 2004 B1
6756994 Tlaskal Jun 2004 B1
6763351 Subramaniam et al. Jul 2004 B1
6771706 Ling et al. Aug 2004 B2
6772148 Baclawski Aug 2004 B2
6772350 Belani et al. Aug 2004 B1
6778971 Altschuler et al. Aug 2004 B1
6782091 Dunning, III Aug 2004 B1
6785341 Walton et al. Aug 2004 B2
6788114 Krenzke et al. Sep 2004 B1
6792420 Stephen Chen et al. Sep 2004 B2
RE38633 Srinivasan Oct 2004 E
6804330 Jones et al. Oct 2004 B1
6807632 Carpentier et al. Oct 2004 B1
6810429 Walsh et al. Oct 2004 B1
6820082 Cook et al. Nov 2004 B1
6829655 Huang et al. Dec 2004 B1
6831668 Cras et al. Dec 2004 B2
6839682 Blume et al. Jan 2005 B1
6847982 Parker et al. Jan 2005 B2
6851089 Erickson et al. Feb 2005 B1
6856575 Jones Feb 2005 B2
6856992 Britton et al. Feb 2005 B2
6859787 Fisher et al. Feb 2005 B2
6865546 Song Mar 2005 B1
6865566 Serrano-Morales et al. Mar 2005 B2
6865575 Smith et al. Mar 2005 B1
6867789 Allen et al. Mar 2005 B1
6918222 Lat et al. Jul 2005 B2
6920615 Campbell et al. Jul 2005 B1
6925457 Britton et al. Aug 2005 B2
6925609 Lucke Aug 2005 B1
6927728 Vook et al. Aug 2005 B2
6934702 Faybishenko et al. Aug 2005 B2
6940917 Menon et al. Sep 2005 B2
6944644 Gideon Sep 2005 B2
6954737 Kalantar et al. Oct 2005 B2
6956845 Baker et al. Oct 2005 B2
6959432 Crocker Oct 2005 B2
6961725 Yuan et al. Nov 2005 B2
6965889 Serrano-Morales et al. Nov 2005 B2
6966033 Gasser et al. Nov 2005 B1
6976144 Trefler et al. Dec 2005 B1
6985912 Mullins et al. Jan 2006 B2
7020869 Abrari et al. Mar 2006 B2
7028225 Maso et al. Apr 2006 B2
7031901 Abu El Ata Apr 2006 B2
7035808 Ford Apr 2006 B1
7058367 Luo et al. Jun 2006 B1
7058637 Britton et al. Jun 2006 B2
7064766 Beda et al. Jun 2006 B2
7073177 Foote et al. Jul 2006 B2
7076558 Dunn Jul 2006 B1
7089193 Newbold Aug 2006 B2
7103173 Rodenbusch et al. Sep 2006 B2
7124145 Surasinghe Oct 2006 B2
7139999 Bowman-Amuah Nov 2006 B2
7143116 Okitsu et al. Nov 2006 B2
7171145 Takeuchi et al. Jan 2007 B2
7171415 Kan et al. Jan 2007 B2
7174514 Subramaniam et al. Feb 2007 B2
7178109 Hewson et al. Feb 2007 B2
7194380 Barrow et al. Mar 2007 B2
7289793 Norwood et al. Oct 2007 B2
RE39918 Slemmer Nov 2007 E
7302417 Iyer Nov 2007 B2
7318020 Kim Jan 2008 B1
7318066 Kaufman et al. Jan 2008 B2
7334039 Majkut et al. Feb 2008 B1
7343295 Pomerance Mar 2008 B2
7353229 Vilcauskas, Jr. et al. Apr 2008 B2
7398391 Carpentier et al. Jul 2008 B2
7406475 Dorne et al. Jul 2008 B2
7412388 Dalal et al. Aug 2008 B2
7415731 Carpentier et al. Aug 2008 B2
7505827 Boddy et al. Mar 2009 B1
7526481 Cusson et al. Apr 2009 B1
7536294 Stanz et al. May 2009 B1
7555645 Vissapragada Jun 2009 B2
7574494 Mayernick et al. Aug 2009 B1
7596504 Hughes et al. Sep 2009 B2
7640222 Trefler Dec 2009 B2
7647417 Taneja Jan 2010 B1
7665063 Hofmann et al. Feb 2010 B1
7685013 Gendler Mar 2010 B2
7689447 Aboujaoude et al. Mar 2010 B1
7711919 Trefler et al. May 2010 B2
7779395 Chotin et al. Aug 2010 B1
7787609 Flockhart et al. Aug 2010 B1
7818506 Shepstone et al. Oct 2010 B1
7844594 Holt et al. Nov 2010 B1
7870244 Chong et al. Jan 2011 B2
7937690 Casey May 2011 B2
7971180 Kreamer et al. Jun 2011 B2
7983895 McEntee et al. Jul 2011 B2
8001519 Conallen Aug 2011 B2
8037329 Leech et al. Oct 2011 B2
8073802 Trefler Dec 2011 B2
8250525 Khatutsky Aug 2012 B2
8335704 Trefler et al. Dec 2012 B2
8386960 Eismann et al. Feb 2013 B1
8468492 Frenkel Jun 2013 B1
8479157 Trefler et al. Jul 2013 B2
8516193 Clinton et al. Aug 2013 B1
8843435 Trefler et al. Sep 2014 B1
8880487 Clinton et al. Nov 2014 B1
8924335 Trefler et al. Dec 2014 B1
8959480 Trefler et al. Feb 2015 B2
9026733 Clinton et al. May 2015 B1
9189361 Khatutsky Nov 2015 B2
9195936 Chase Nov 2015 B1
9270743 Frenkel Feb 2016 B2
20010013799 Wang Aug 2001 A1
20010035777 Wang et al. Nov 2001 A1
20010047355 Anwar Nov 2001 A1
20010049682 Vincent et al. Dec 2001 A1
20010052108 Bowman-Amuah Dec 2001 A1
20010054064 Kannan Dec 2001 A1
20020010855 Reshef et al. Jan 2002 A1
20020013804 Gideon Jan 2002 A1
20020029161 Brodersen et al. Mar 2002 A1
20020042831 Capone et al. Apr 2002 A1
20020049603 Mehra et al. Apr 2002 A1
20020049715 Serrano-Morales et al. Apr 2002 A1
20020049788 Lipkin et al. Apr 2002 A1
20020054152 Palaniappan et al. May 2002 A1
20020059566 Delcambre et al. May 2002 A1
20020070972 Windl et al. Jun 2002 A1
20020073337 Ioele et al. Jun 2002 A1
20020091677 Sridhar Jul 2002 A1
20020091678 Miller et al. Jul 2002 A1
20020091710 Dunham et al. Jul 2002 A1
20020091835 Lentini et al. Jul 2002 A1
20020093537 Bocioned et al. Jul 2002 A1
20020107684 Gao Aug 2002 A1
20020118688 Jagannathan Aug 2002 A1
20020120598 Shadmon et al. Aug 2002 A1
20020120627 Mankoff Aug 2002 A1
20020120762 Cheng et al. Aug 2002 A1
20020133502 Rosenthal et al. Sep 2002 A1
20020177232 Melker et al. Nov 2002 A1
20020178232 Ferguson Nov 2002 A1
20020181692 Flockhart et al. Dec 2002 A1
20020184610 Chong et al. Dec 2002 A1
20030001894 Boykin et al. Jan 2003 A1
20030004934 Qian Jan 2003 A1
20030004951 Chokshi Jan 2003 A1
20030009239 Lombardo et al. Jan 2003 A1
20030014399 Hansen et al. Jan 2003 A1
20030037145 Fagan Feb 2003 A1
20030050834 Caplan Mar 2003 A1
20030050927 Hussam Mar 2003 A1
20030050929 Bookman et al. Mar 2003 A1
20030061209 Raboczi et al. Mar 2003 A1
20030065544 Elzinga et al. Apr 2003 A1
20030066031 Laane Apr 2003 A1
20030074352 Raboczi et al. Apr 2003 A1
20030074369 Scheutze et al. Apr 2003 A1
20030084401 Abel et al. May 2003 A1
20030109951 Hsiung et al. Jun 2003 A1
20030115281 McHenry et al. Jun 2003 A1
20030135358 Lissauer et al. Jul 2003 A1
20030152212 Burok et al. Aug 2003 A1
20030154380 Richmond et al. Aug 2003 A1
20030191626 Al-Onaizan et al. Oct 2003 A1
20030198337 Lenard Oct 2003 A1
20030200254 Wei Oct 2003 A1
20030200371 Abujbara Oct 2003 A1
20030202617 Casper Oct 2003 A1
20030222680 Jaussi Dec 2003 A1
20030229529 Mui et al. Dec 2003 A1
20030229544 Veres et al. Dec 2003 A1
20040024603 Mahoney et al. Feb 2004 A1
20040034651 Gupta et al. Feb 2004 A1
20040049479 Dorne et al. Mar 2004 A1
20040049509 Keller et al. Mar 2004 A1
20040054610 Amstutz et al. Mar 2004 A1
20040064552 Chong et al. Apr 2004 A1
20040068517 Scott Apr 2004 A1
20040088199 Childress et al. May 2004 A1
20040103014 Teegan et al. May 2004 A1
20040117759 Rippert et al. Jun 2004 A1
20040122652 Andrews et al. Jun 2004 A1
20040133416 Fukuoka et al. Jul 2004 A1
20040133876 Sproule Jul 2004 A1
20040139021 Reed et al. Jul 2004 A1
20040145607 Alderson Jul 2004 A1
20040147138 Vaartstra Jul 2004 A1
20040148586 Gilboa Jul 2004 A1
20040162812 Lane et al. Aug 2004 A1
20040162822 Papanyan et al. Aug 2004 A1
20040167765 Abu Et Ata Aug 2004 A1
20040205672 Bates et al. Oct 2004 A1
20040220792 Gallanis et al. Nov 2004 A1
20040236566 Simske Nov 2004 A1
20040243587 Nuyens et al. Dec 2004 A1
20040268221 Wang Dec 2004 A1
20040268299 Lei et al. Dec 2004 A1
20050027563 Fackler et al. Feb 2005 A1
20050039191 Hewson et al. Feb 2005 A1
20050044198 Okitsu et al. Feb 2005 A1
20050050000 Kwok et al. Mar 2005 A1
20050055330 Britton et al. Mar 2005 A1
20050059566 Brown et al. Mar 2005 A1
20050060372 DeBettencourt et al. Mar 2005 A1
20050071211 Flockhart et al. Mar 2005 A1
20050104628 Tanzawa et al. May 2005 A1
20050125683 Matsuyama et al. Jun 2005 A1
20050132048 Kogan et al. Jun 2005 A1
20050138162 Byrnes Jun 2005 A1
20050144023 Aboujaoude et al. Jun 2005 A1
20050165823 Ondrusek et al. Jul 2005 A1
20050198021 Wilcox et al. Sep 2005 A1
20050216235 Butt et al. Sep 2005 A1
20050228875 Monitzer et al. Oct 2005 A1
20050234882 Bennett et al. Oct 2005 A1
20050267770 Banavar et al. Dec 2005 A1
20050288920 Green et al. Dec 2005 A1
20060004845 Kristiansen et al. Jan 2006 A1
20060015388 Flockhart et al. Jan 2006 A1
20060020783 Fisher Jan 2006 A1
20060041861 Trefler et al. Feb 2006 A1
20060053125 Scott Mar 2006 A1
20060063138 Loff et al. Mar 2006 A1
20060064486 Baron et al. Mar 2006 A1
20060064667 Freitas Mar 2006 A1
20060075360 Bixler Apr 2006 A1
20060080082 Ravindra et al. Apr 2006 A1
20060080401 Gill et al. Apr 2006 A1
20060092467 Dumitrescu et al. May 2006 A1
20060100847 McEntee et al. May 2006 A1
20060101386 Gerken et al. May 2006 A1
20060101393 Gerken et al. May 2006 A1
20060106846 Schulz et al. May 2006 A1
20060139312 Sinclair et al. Jun 2006 A1
20060149751 Jade et al. Jul 2006 A1
20060167655 Barrow et al. Jul 2006 A1
20060173724 Trefler et al. Aug 2006 A1
20060173871 Taniguchi et al. Aug 2006 A1
20060206303 Kohlmeier et al. Sep 2006 A1
20060206305 Kimura et al. Sep 2006 A1
20060218166 Myers et al. Sep 2006 A1
20060271559 Stavrakos et al. Nov 2006 A1
20060271920 Abouelsaadat Nov 2006 A1
20060288348 Kawamoto et al. Dec 2006 A1
20070005623 Self et al. Jan 2007 A1
20070010991 Lei et al. Jan 2007 A1
20070028225 Whittaker et al. Feb 2007 A1
20070038765 Dunn Feb 2007 A1
20070055938 Herring et al. Mar 2007 A1
20070061789 Kaneko et al. Mar 2007 A1
20070094199 Deshpande et al. Apr 2007 A1
20070118497 Katoh May 2007 A1
20070130130 Chan et al. Jun 2007 A1
20070136068 Horvitz Jun 2007 A1
20070143163 Weiss et al. Jun 2007 A1
20070143851 Nicodemus et al. Jun 2007 A1
20070203756 Sears et al. Aug 2007 A1
20070208553 Hastings et al. Sep 2007 A1
20070226031 Manson et al. Sep 2007 A1
20070233902 Trefler et al. Oct 2007 A1
20070239646 Trefler Oct 2007 A1
20070245300 Chan Oct 2007 A1
20070260584 Marti et al. Nov 2007 A1
20070294644 Yost Dec 2007 A1
20080002823 Fama et al. Jan 2008 A1
20080046462 Kaufman et al. Feb 2008 A1
20080077384 Agapi et al. Mar 2008 A1
20080085502 Allen et al. Apr 2008 A1
20080109467 Brookins et al. May 2008 A1
20080120593 Keren May 2008 A1
20080163253 Massmann et al. Jul 2008 A1
20080184230 Leech et al. Jul 2008 A1
20080189679 Rodriguez et al. Aug 2008 A1
20080195377 Kato et al. Aug 2008 A1
20080196003 Gerken et al. Aug 2008 A1
20080208785 Trefler et al. Aug 2008 A1
20080216055 Khatutsky Sep 2008 A1
20080216060 Vargas Sep 2008 A1
20080263510 Nerome et al. Oct 2008 A1
20090007084 Conallen Jan 2009 A1
20090018998 Patten, Jr. et al. Jan 2009 A1
20090075634 Sinclair et al. Mar 2009 A1
20090083697 Zhang Mar 2009 A1
20090132232 Trefler May 2009 A1
20090132996 Eldridge May 2009 A1
20090138844 Halberstadt et al. May 2009 A1
20090150541 Georgis Jun 2009 A1
20090158407 Nicodemus et al. Jun 2009 A1
20090164494 Dodin Jun 2009 A1
20090171938 Levin et al. Jul 2009 A1
20090276206 Fitzpatrick et al. Nov 2009 A1
20090282384 Keppler Nov 2009 A1
20100011338 Lewis Jan 2010 A1
20100088266 Trefler Apr 2010 A1
20100107137 Trefler et al. Apr 2010 A1
20100217737 Shama Aug 2010 A1
20110066486 Bassin et al. Mar 2011 A1
20120041921 Canaday et al. Feb 2012 A1
20130007267 Khatutsky Jan 2013 A1
20130047165 Goetz et al. Feb 2013 A1
20130231970 Trefler et al. Sep 2013 A1
20130254833 Nicodemus et al. Sep 2013 A1
20130290249 Merriman et al. Oct 2013 A1
20140019400 Trefler et al. Jan 2014 A1
20140277164 Ramsay et al. Sep 2014 A1
20150089406 Trefler et al. Mar 2015 A1
20150127736 Clinton et al. May 2015 A1
20160070560 Chase Mar 2016 A1
20160098298 Trefler et al. Apr 2016 A1
20160105370 Mellor et al. Apr 2016 A1
Foreign Referenced Citations (106)
Number Date Country
19911098 Dec 1999 DE
0 549 208 Jun 1993 EP
0 669 717 Aug 1995 EP
0 996 916 May 2000 EP
1 015 997 Jul 2000 EP
1 019 807 Jul 2000 EP
1 073 955 Feb 2001 EP
1 073 992 Feb 2001 EP
1 135 723 Sep 2001 EP
1 163 604 Dec 2001 EP
1 183 636 Mar 2002 EP
1 196 882 Apr 2002 EP
1 203 310 May 2002 EP
1 208 482 May 2002 EP
1 212 668 Jun 2002 EP
1 240 592 Sep 2002 EP
1 277 102 Jan 2003 EP
1 277 119 Jan 2003 EP
1 277 120 Jan 2003 EP
1 277 153 Jan 2003 EP
1 277 155 Jan 2003 EP
1 277 329 Jan 2003 EP
1 374 083 Jan 2004 EP
1 382 030 Jan 2004 EP
1 386 241 Feb 2004 EP
1 393 172 Mar 2004 EP
1 393 188 Mar 2004 EP
1 402 336 Mar 2004 EP
1 407 384 Apr 2004 EP
1 430 396 Jun 2004 EP
1 438 649 Jul 2004 EP
1 438 654 Jul 2004 EP
1 438 672 Jul 2004 EP
1 483 685 Dec 2004 EP
1 490 747 Dec 2004 EP
1 490 809 Dec 2004 EP
1 492 232 Dec 2004 EP
1 782 183 May 2007 EP
1 830 312 Sep 2007 EP
1 840 803 Oct 2007 EP
2 115 581 Nov 2009 EP
9838564 Sep 1998 WO
9840807 Sep 1998 WO
9905632 Feb 1999 WO
9945465 Sep 1999 WO
9950784 Oct 1999 WO
0033187 Jun 2000 WO
0033217 Jun 2000 WO
0033226 Jun 2000 WO
0033235 Jun 2000 WO
0033238 Jun 2000 WO
0052553 Sep 2000 WO
0052603 Sep 2000 WO
0067194 Nov 2000 WO
0140958 Jun 2001 WO
0175610 Oct 2001 WO
0175614 Oct 2001 WO
0175747 Oct 2001 WO
0175748 Oct 2001 WO
0176206 Oct 2001 WO
0177787 Oct 2001 WO
0179994 Oct 2001 WO
0221254 Mar 2002 WO
0244947 Jun 2002 WO
02056249 Jul 2002 WO
02080006 Oct 2002 WO
02080015 Oct 2002 WO
02082300 Oct 2002 WO
02084925 Oct 2002 WO
02088869 Nov 2002 WO
02091346 Nov 2002 WO
02101517 Dec 2002 WO
02103576 Dec 2002 WO
03021393 Mar 2003 WO
03029923 Apr 2003 WO
03029955 Apr 2003 WO
03030005 Apr 2003 WO
03030013 Apr 2003 WO
03030014 Apr 2003 WO
03058504 Jul 2003 WO
03069500 Aug 2003 WO
03071380 Aug 2003 WO
03071388 Aug 2003 WO
03073319 Sep 2003 WO
03077139 Sep 2003 WO
03085503 Oct 2003 WO
03085580 Oct 2003 WO
2004001613 Dec 2003 WO
2004003684 Jan 2004 WO
2004003766 Jan 2004 WO
2004003885 Jan 2004 WO
2004046882 Jun 2004 WO
2004061815 Jul 2004 WO
2004086197 Oct 2004 WO
2004086198 Oct 2004 WO
2004095207 Nov 2004 WO
2004095208 Nov 2004 WO
2004114147 Dec 2004 WO
2005001627 Jan 2005 WO
2005003888 Jan 2005 WO
2005010645 Feb 2005 WO
2005117549 Dec 2005 WO
2006081536 Aug 2006 WO
2007033922 Mar 2007 WO
2008109441 Sep 2008 WO
2009097384 Aug 2009 WO
Non-Patent Literature Citations (99)
Entry
Alan Simpson et al.; Access 97 for Windows 95/NT; 1997 SYBEX; 16 pages; USPTO STIC—EIC 2100/2400.
Dragos, A. Manolescu et al.; Dynamic Object Model and Adaptive Workflow; 1999 University of Illinois; 19 pages; <http://micro-workflow.com/PDF/domaw.pdf>.
Wolfgang Schulze; Fitting the Workflow Management Facility into the Object Management Architecture; 1998 Springer; 9 pages; <http://link.springer.com/chapter/10.1007/978-1-4471-1286-0—12>.
Stefan0 Ceri et al.; WIDE—A Distributed Architecture for Workflow Management; 1997 IEEE; pp. 76-79; <http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=583705>.
B. Surjanto et al.; XML Content Management based on Object-Relational Database Technology; 2000 IEEE; pp. 70-79; <http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=882377>.
Ewa Deelman et al.; Workflows and e-Science An overview of workflow system features and capabilities; 2009 Elsevier; pp. 528-540; <http://www.sciencedirect.com/science/article/pii/S0167739X08000861>.
G. Kappel; Active Object-Oriented Workflow Management; 1995 IEEE; pp. 727-736; <http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=375484>.
International Search Report & Written Opinion for PCT/US06/03160, mailed Jul. 21, 2008 (16 pages).
International Preliminary Report on Patentability for PCT/US06/03160, dated Apr. 9, 2009 (14 pages).
International Search Report for PCT/US08/55503, mailed Jul. 28, 2008 (1 page).
International Preliminary Report on Patentability for PCT/US2008/055503, mailed Sep. 17, 2009 (4 pages).
International Search Report & Written Opinion for PCT/US09/32341, mailed Mar. 11, 2009 (14 pages).
International Preliminary Report on Patentability for PCT/US2009/032341, mailed Aug. 12, 2010 (8 pages).
Johnson et al., Sharing and resuing rules-a feature comparison of five expert system shells. IEEE Expert, IEEE Services Center, New York, NY, vol. 9, No. 3, Jun. 1, 1994, pp. 3-17.
Jones et al., A user-centered approach to functions in excel. International Conference on Functional Programming, Uppsala, Jun. 30, 2003, pp. 1-12.
Kim, W., Object-Oriented Databases: Definition and Research Directions, IEEE Trans. on Knowledge and Data Engineering, vol. 2(3) pp. 327-341, Sep. 1990.
Kuhn, H.W., The Hungarian Method for the Assignment Problem, Naval Research Logistics Quarterly, 2 (1955), pp. 83-97.
Kuno, H.A., and E.A. Rundensteiner, Augmented Inherited Multi-Index Structure for Maintenance of Materialized Path Query Views, Proc. Sixth Int'l. Workshop on Research Issues in Data Engineering, pp. 128-137, Feb. 1996.
LaRue, J., Leveraging Integration and Workflow. Integrated Solutions, Accounting Today, SourceMedia, Aug. 2006, pp. 18-19.
Lippert Eric, Adventures in Coding: Metaprogramming, Toast and the Future of Development Tools, Microsoft.com Blog, MSDN Home, published Mar. 4, 2004, 6 pgs.
Mandal, et al., Integrating existing scientific workflow systems: The kepler/pegasus example. USC Information Sciences Institute, 2007, 8 pages.
Manghi, Paolo, et. al., Hybrid Applications Over XML: Integrating the Procedural and Declarative Approaches, 2002 ACM, pp. 1-6. Retrieved Mar. 22, 2007.
Markiewicz, M.E., et al., Object oriented framework development. ACM, 2001, 13 pages, <http://dl.acm.org/citation.cfm?id=372771>.
Markowitz, V.M., and A. Shoshani, Object Queries over Relational Databases: Language, Implementation, and Applications, IEEE Xplore, pp. 71-80, Apr. 1993.
Marmel, Elaine, Microsoft Office Project 2007 Bible, ISBN 0470009926, Wiley Publishing, Inc., 2007, 961 pages.
Maryanski, F., et al., The Data Model Compiler: A Tool for Generating Object-Oriented Database Systems, 1986 Int'l. Workshop on Object-Oriented Database Systems, IEEE, 73-84 (1986).
McConnell, Steven C., Brooks' Law Repealed, IEEE Software, pp. 6-9, Nov./Dec. 1999.
Mecca, G., et al., Cut and Paste, ACM, pp. 1-25 and Appendix I-IV (Jun. 1999). Retrieved Mar. 22, 2007.
Mitchell, T.M., Machine Learning, Chapter 3, 1997, McGraw-Hill, pp. 52-80.
Mitchell, T.M., Machine Learning, Chapter 6, 1997, McGraw-Hill, pp. 154-200.
Morizet-Mahoudeaux, P., A Hierarchy of Network-Based Knowledge Systems, IEEE Trans. on Systems, Man, and Cybernetics, vol. 21(5), pp. 1184-1191, Sep./Oct. 1991.
Pientka, B., et al., Programming with proofs and explicit contexts. International Symposium on Principles and Practice of Declarative Programming, ACM, 2008, pp. 163-173, <http://delivery.acm.org/10.1145/1390000/1389469/p163-pientka.pdf?>.
Reinersten, Don, Is it Always a Bad Idea to Add Resources to a Late Project?, Oct. 30, 2000. Electronic Design. vol. 48, Issue 22, p. 70.
Riccuiti, M., Oracle 8.0 on the way with objects: upgrade will also build in multidimensional engine. InfoWorld. Sep. 25, 1995;17(39):16.
Richner, T., et al., Recovering high-level views of object-oriented applications from static and dynamic information. IEEE, 1999, 10 pages, <http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=792487>.
Salvini, S., and M.H. Williams, Knowledge Management for Expert Systems, IEEE Colloquium on ‘Knowledge Engineering’, 3 pages, May 1990.
Schiefelbein, Mark, A Backbase Ajax Front-end for J2EE Applications, Internet Article, dev2dev <http://dev2dev.bea.com/1pt/a/433>, Aug. 29, 2005, 16 pages.
Sellis, T., et al., Coupling Production Systems and Database Systems: A Homogeneous Approach, IEEE Trans. on Knowledge and Data Engineering, vol. 5(2), pp. 240-256, Apr. 1993.
Shyy Y.M., and S.Y.W. Su, Refinement Preservation for Rule Selection in Active Object-Oriented Database Systems, Proc. Fourth Int'l. Workshop on Research Issues in Data Engineering, pp. 115-123, Feb. 1994.
Singh, G., et al., Workflow task clustering for best effort systems with pegasus, Pegasus, 2008, 8 pages.
Smedley, T.J. et al., “Expanding the Utility of Spreadsheets Through the Integration of Visual Programming and User Interface Objects,” School of Computer Science, Technical University of Nova Scotia, ACM, 1996; pp. 148-155.
Srinivasan, V., et al., Object persistence in object-oriented applications. IBM Systems Journal, 1997, vol. 36, issue 1, pp. 66-87, <http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber-5387186>.
Stonebraker, M., The Integration of Rule Systems and Database Systems, IEEE Trans. on Knowledge and Data Engineering, vol. 4(5), pp. 415-423, Oct. 1992.
Sun, et al., “Supporting Inheritance in Relational Database Systems,” IEEE, pp. 511-518, Jun. 1992.
Thuraisingham, “From Rules to Frames and Frames to Rules,” Al Expert, pp. 31-39, Oct. 1989.
Vranes, S., et al., Integrating Multiple Paradigms within the Blackboard Framework, IEEE Transactions on Software Engineering, vol. 21, No. 3, Mar. 1995, pp. 244-262.
Yang, Bibo; Geunes, Joseph; O'Brien, William J.; Resource-Constrained Project Scheduling: Past Work and New Directions, Apr. 2001, 28 pages, Research Report Jun. 2001, Department of Industrial and Systems Engineering, University of Florida.
[No Author Listed] About the Integrated Work Manager (IWM). Pegasystems, Inc., Apr. 30, 2009, 3 pages, <http://pdn-dev/DevNet/PRPCv5/KB/TMP9ad01zurnf.asp> .
[No Author Listed] FreeBSD Project. “EDQUOTA(8)” in Free BSD System Manager's Manual. FreeBSD 8.2 Jun. 6, 1993. pp. 1-2. Retrieved from freebsd.org on Oct. 27, 2011.
[No Author Listed] How SmartForms for Fair Blaze Advisor works, Fair Issac White Paper, http://www.FAIRISAAC.com/, Oct. 31, 2005, 8 pages (website no longer active).
[No Author Listed] How to Configure and Customize the Universal Worklist. SAP Netweaver '04 and SAP Enterprise Portal 6.0. SAP AG. Version 1, May 2004, 65 pages. <http://www.erpgenie.com/sap/netweaver/ep/Configuring%20the%20UWL.pdf>.
[No Author Listed] How to configure the IWM/IAC gateway. Pegasystems, Inc., Apr. 30, 2009, 4 pages, <http://pdn-dev/DevNet/PRPCv5/KB/TMP9cf8fzurq4.asp>.
[No Author Listed] How to install the Integrated Work Manager (IWM). Pegasystems, Inc., Apr. 30, 2009, 6 pages, <http://pdn-dev/DevNet/PRPCv5/KB/TMP9br1ezurp8.asp>.
[No Author Listed] HP Integrated Lights-Out 2, User Guide, Part No. 394326-004, HP, Aug. 2006, 189 pages.
[No Author Listed] IP Prior Art Database, Options when returning work items in workflow management systems. IBM, IPCOM000027980D, 2004, 3 pages.
[No Author Listed] IP Prior Art Database, Staff Queries and Assignments in Workflow Systems. IBM, IPCOM000142382D, 2006, 4 pages.
[No Author Listed] IP Prior Art Database, Using work items to manage user interactions with adaptive business services. IBM TDB, IPCOM000015953D, 2003, 4 pages.
[No Author Listed] Integrating with External Systems, PegaRULES Process Commander 5.2. Process Commander 5.2 reference. Pegasystems Inc, Cambridge, MA, 2006, 103 pages <http://pdn.pega.com/ProductSupport/Products/PegaRULESProcessCommander/documents/PRPC/V5/502/iwes/PRPC52—Integrating—with—External—Systems.pdf>.
[No Author Listed] Localizing an Application, PegaRULES Process Commander. Process Commander 4.2 reference. Pegasystems Inc., Cambdrige, MA, 2006, 92 pages <http://pdn.pega.com/DevNet/PRPCv4/TechnologyPapers/documents/Localization0402.pdf>.
[No Author Listed] Oracle Universal Work Queue: Implementation Guide. Release 11i for Windows NT. Oracle Corporation. Jul. 2001, 136 pages. <http://docs.oracle.com/cd/A85964—01/acrobat/ieu115ug.pdf>.
[No Author Listed] Solaris 9 resource manager software. A technical white paper. Sun Microsystems, Inc., Palo Alto CA, 2002, 37 pages. XP-002291080. Retrieved Aug. 3, 2004 from <http://wwws.sun.com/software/whitepapers/solaris9/srm.pdf>.
Bertino, E., and P. Foscoli, Index Organizations for Object-Oriented Database Systems, IEEE Trans. on Knowledge and Data Engineering, 7(2):193-209 (Apr. 1995).
Bierbaum, A., et al., VR juggler: A virtual platform for virtual reality application development. Proceedings of the Virtual Reality 2001 Conference, IEEE, 2001, 8 pages, <http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber-913774>.
Breiman, L., Bagging predictors, Machine Learning, vol. 24, No. 2, Aug. 31, 1996, pp. 123-140, Kluwer Academic Publishers, Netherlands.
Brusilovsky, P., and De Bra, P., Editors, “Second Workshop on Adaptive Hypertext and Hypermedia Proceedings,” Jun. 20-24, 1998. Ninth ACM Conference on Hypertext and Hypermedia, Hypertext'98. pp. 1-2.
Burleson, D., Adding behaviors to relational databases, DBMS, 8(10): 68(5) (Sep. 1995).
Busse, Ralph et al., Declarative and Procedural Object Oriented Views, IEEE, 1998, pp. 570-578, retrieved Mar. 22, 2007.
Buyya et al., Economic Models for Resource Management and Scheduling in Grid Computing, Concurrency and Computation: Practice and Experience, 2002, vol. 14, pp. 1507-1542.
Chan, T.W., and W. Hwang, Towards Integrating Logic, Object, Frame, and Production, Proc. Fourth Int'l. Conf. on Software Engineering and Knowledge Engineering, IEEE, pp. 463-469, Jun. 1992.
Cheng, Cheng-Chung; Smith, Stephen F.; A Constraint Satisfaction Approach to Makespan Scheduling, AIPS 1996 Proceedings, pp. 45-52 (1996).
Cheng, C.C. and Smith, Applying Constraint Satisfaction Techniques to Job Shop Scheduling, Annals of Operations Research, 70: 327-357 (1997).
Cochrane, Roberta et al., Integrating Triggers and Declarative Constraints in SQL Database Systems, pp. 567-578, Proceedings of the 22nd VLDB Conference Mumbai (Bombay), India, 1996, retrieved Mar. 22, 2007.
Damerau, F.J., Problems and some solutions in customization of natural language database front ends. ACM Transactions on Information Systems, vol. 3, No. 2, Apr. 1, 1985, pp. 165-184.
Danforth, S., Integrating Object and Relational Technologies, Proc. Sixteenth Annual Int'l. Computer Software and Applications Conf., IEEE Comput. Soc. Press, pp. 225-226, Sep. 1992 (Abstract).
Deelman, E., et al., Pegasus: A framework for mapping complex scientific workflows onto distributed systems, submitted to Scientific Programming, Jan. 2005. Pre-journal publication, 22 pages.
Deelman, E., et al., Pegasus: A framework for mapping complex scientific workflows onto distributed systems. Scientific Programming, 13, pp. 219-237, 2005.
DeMichiel, L.G., et al., Polyglot: Extensions to Relational Databases for Sharable Types and Functions in a Multi-Language Environment, Proc. Ninth Int'l Conf. on Data Engineering, IEEE, pp. 651-660, Apr. 1993.
Devarakonda et al., Predictability of process resource usage: A measurement-based study on UNIX. IEEE Transactions on Software Engineering. 1989;15(12):1579-1586.
Communication for European Patent Application No. 05755530.2, dated Sep. 6, 2007 (2 pages).
European Search Report for Application No. 05755530.2, dated Mar. 26, 2012 (3 Pages).
European Office Action issued Aug. 31, 2012 for Application No. 05755530.2 (4 Pages).
Communication for European Patent Application No. 07250844.3 enclosing European Search Report, dated Jul. 11, 2007 (6 pages).
Communication for European Patent Application No. 07250844.3, dated Mar. 28, 2008 (1 page).
European Office Action issued Jul. 9, 2012 for Application No. 07250844.3 (8 Pages).
Communication for European Patent Application No. 07250848.4, dated Aug. 13, 2007 (EESR enclosed) (6 pages).
Communication for European Patent Application No. 07250848.4, dated May 29, 2008 (1 page).
Communication for European Patent Application No. 08731127.0, dated Oct. 13, 2009 (2 pages).
Extended European Search Report issued Oct. 29, 2012 for Application No. 08731127.0 (8 pages).
Fayad, M.E, et al., Object-oriented application frameworks. Communications of the ACM, Oct. 1997, vol. 40, issue 10, pp. 32-38, <http://dl.acm.org/citation.cfm?id=262798>.
Francisco, S., et al. Rule-Based Web Page Generation, Proceedings of the 2nd Workshop on Adaptive Hypertext and Hypermedia, Hypertext'98, Jun. 20-24, 1998, 9 pages.
Gajos et al. SUPPLE: Automatically Generating User Interfaces. IUI 2004, 8 pages.
Hague, Darren, Universal Worklist with SAP Netweaver Portal. Galileo Press, 2008, pp. 11-31. <http://www.sap-hefte.de/download/dateien/1461/146—leseprobe.pdf>.
International Search Report and Written Opinion for Application No. PCT/GB2004/000677, mailed Aug. 2, 2004 (15 pages).
International Search Report for Application No. PCT/US2004/020783, mailed Nov. 8, 2005 (2 pages).
International Preliminary Report on Patentability for Application No. PCT/US2004/020783, issued Feb. 13, 2006 (6 pages).
International Search Report for PCT/US05/018599, dated May 15, 2007 (1 page).
International Preliminary Report on Patentability for PCT/US2005/018599, dated Jun. 5, 2007 (10 pages).
Extended European Search Report for Application No. 15189385.6, issued Dec. 17, 2015 (9 pages).
Eisenstein, et al., Adaptation in Automated User-Interface Design. IUI, 2000, pp. 74-81.
Provisional Applications (1)
Number Date Country
61164738 Mar 2009 US
Continuations (1)
Number Date Country
Parent 12798161 Mar 2010 US
Child 13897763 US