WO2003107578A2 - Method and apparatus for creating an adaptive application - Google Patents

Method and apparatus for creating an adaptive application Download PDF

Info

Publication number
WO2003107578A2
WO2003107578A2 PCT/US2003/019167 US0319167W WO03107578A2 WO 2003107578 A2 WO2003107578 A2 WO 2003107578A2 US 0319167 W US0319167 W US 0319167W WO 03107578 A2 WO03107578 A2 WO 03107578A2
Authority
WO
WIPO (PCT)
Prior art keywords
computer readable
readable media
question
occurrence
database
Prior art date
Application number
PCT/US2003/019167
Other languages
French (fr)
Other versions
WO2003107578A3 (en
WO2003107578A9 (en
Inventor
Tamer Uluakar
John Bartholomew Pettit, Iii
Lutfu Batakci
Bulent Kivanc
Govindaraj Kadambi
Christopher Fredrick Merkel
Original Assignee
Adaptik Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Adaptik Corporation filed Critical Adaptik Corporation
Priority to AU2003248715A priority Critical patent/AU2003248715A1/en
Publication of WO2003107578A2 publication Critical patent/WO2003107578A2/en
Publication of WO2003107578A9 publication Critical patent/WO2003107578A9/en
Publication of WO2003107578A3 publication Critical patent/WO2003107578A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/912Applications of a database
    • Y10S707/944Business related
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Definitions

  • the present invention relates generally to methods and apparatuses for developing software, and more particularly to a method and apparatus for developing software for business solutions in a rapid manner.
  • the planned cost for such a project ranges from $10,000,000 to $50,000,000 just for software, consulting, and personnel expenses.
  • the planned time to complete the entire system is 2 to 4 years without any tangible result for about 18 months.
  • the project requires input from a number of knowledgeable business staff that will typically need to be dedicated to the project for months or years.
  • the project has a very high risk of failure.
  • Most projects far exceed the planned cost and time.
  • Some projects are terminated with no result.
  • Those that are implemented often lack the functionality and flexibility initially envisioned, resulting in yet another "legacy" system.
  • the present invention is therefore directed to the problem of developing a method and apparatus for building software based systems for business solutions, which method and apparatus enable these software-based systems to be developed and fielded rapidly while providing the ability to accept modifications and new requirements in short order, yet reduce the associated costs of development and maintenance while avoiding the use of a code synthesizer.
  • the present invention solves these and other problems by providing an adaptive software application that consists of several types of modules, called Adaptive
  • an Adaptive Unit includes an interface component that can present information to and accept information from the outside world (such as a web page or a system interface), a processing logic component that can manipulate and evaluate information based on parameters received (such as comparisons and decisions as in the case of data dependency decisions), and a data persistence logic component that retrieves, adds, updates, and deletes data targeting one or more Occurrence Databases.
  • an interface component that can present information to and accept information from the outside world (such as a web page or a system interface)
  • a processing logic component that can manipulate and evaluate information based on parameters received (such as comparisons and decisions as in the case of data dependency decisions)
  • a data persistence logic component that retrieves, adds, updates, and deletes data targeting one or more Occurrence Databases.
  • all three components of an Adaptive Unit are parameter driven. These parameters are not specific to any particular business.
  • One embodiment for providing parameters to these components includes a Definition Database, which is detailed below.
  • unit there may be one or more Occurrence Databases depending on the number of business processes supported by the business application for which the Adaptive Application is being adapted. Typically, there is one Occurrence Database per business process.
  • Database includes generic (also referred to as meta model driven) tables that are not specific to any particular business.
  • the Adaptive Application disclosed herein accelerates business software implementation, reduces the cost of system development and system evolution, improves overall system quality and usability, enables a business to take advantage of previously unapproachable niche product opportunities, and mitigates project risks associated with large systems initiatives.
  • Adaptive Application invention can be employed for many types of business applications
  • an exemplary embodiment of an apparatus can be used for creating, managing and administering insurance policies, which is referred to as PolicyWriter.
  • This embodiment can be programmed in Java and HTML code.
  • the system is highly portable and can utilize any JDBC compliant data base management system (e.g., DB2,
  • the embodiment includes an XML oriented database architecture making it readily able to provide enterprise application integration with other systems and communicate externally with other business partners.
  • embodiments herein utilize software templates that make it possible to reuse all of the business logic without limiting the ability to customize these templates as needed. This represents a major leap to what is currently available in the marketplace.
  • the embodiment is a comprehensive policy administration system that offers unprecedented speed, flexibility, and functionality at an attractive price. It enables a significant reduction in planned costs, time, and resources.
  • FIG 1 depicts a block diagram of an exemplary embodiment of an Adaptive
  • FIG 2 depicts a data structure of an exemplary embodiment of a flexible database used in various embodiments for single business processes according to one aspect of the present invention.
  • FIG 3 depicts a data structure of an exemplary embodiment of a flexible database used in various embodiments for multiple business processes according to one aspect of the present invention.
  • FIG 4 depicts a data structure of another exemplary embodiment of a flexible database used in various embodiments for multiple business processes with relative customization according to one aspect of the present invention.
  • FIG 5 depicts a table of the properties by Adaptive Unit according to another aspect of the present invention.
  • FIG 6A depicts the process outline for the Add event of the List Adaptive
  • FIG 6B depicts the process outline for the Delete event of the List Adaptive
  • FIG 7 depicts the process outline for the View/Edit event of the List Adaptive
  • FIGs 8A-C depict the process outline for the Load event of the Detail
  • FIGs 9A-C depict the process outline for the New event of the Detail
  • FIG 9D depicts the process outline for the Load event of the List Adaptive
  • FIGs 10A-B depict the process outline for the Continue event of the Detail
  • FIGs 11A-B depict an exemplary embodiment of a process for rapidly converting an existing application into a company specific insurance policy management application according to still another aspect of the present invention.
  • FIG 11C depicts the process outline for the Submit event of the Detail
  • FIGs 11D-E depict the process outline for the Load event of the Dual List
  • FIG 1 IF depicts the process outline for the View/Edit event of the Dual List
  • FIG 1 IG depicts the process outline for the Add» event of the Dual List
  • FIG 1 IH depicts the process outline for the «Remove event of the Dual List
  • FIGs 11I-K depict the process outline for the Load event of the Updateable
  • FIG 1 IL depicts the process outline for the Add Row event of the Updateable
  • FIG 1 IM depicts the process outline for the Delete Row event of the
  • FIG 1 IN depicts the process outline for the Submit event of the Updateable
  • FIG 12 depicts an exemplary embodiment of a header area of a web page employed as a user interface.
  • FIG 13 depicts an exemplary embodiment of a context area of a web page employed as a user interface.
  • FIG 14 depicts an exemplary embodiment of a navigation bar of a web page employed as a user interface.
  • FIG 15 depicts an exemplary embodiment of a signature area of a web page employed as a user interface.
  • FIG 16 depicts an exemplary embodiment of a function bar of a web page employed as a user interface.
  • FIG 17 depicts an exemplary embodiment of an error display area of a web page employed as a user interface.
  • FIG 18 depicts an exemplary embodiment of a main body of a web page employed as a user interface.
  • FIG 19 depicts an exemplary embodiment of a List Adaptive Unit according to another aspect of the present invention.
  • FIG 20 depicts an exemplary embodiment of a Detail Adaptive Unit according to another aspect of the present invention.
  • FIG 21 depicts an exemplary embodiment of an Updateable List Adaptive
  • FIG 22 depicts an exemplary embodiment of a Dual List Adaptive Unit according to another aspect of the present invention.
  • FIG 23 depicts an exemplary embodiment of a List-Detail combination
  • Adaptive Unit which is a combination of a List Adaptive Unit and a Detail Adaptive
  • FIG 24 depicts an exemplary embodiment of a Dual List-Detail combination
  • Adaptive Unit which is a combination of a Dual List Adaptive Unit and a Detail
  • FIG 25 depicts an exemplary embodiment of a Detail-List combination
  • Adaptive Unit which is a combination of a Detail Adaptive Unit and a List Adaptive
  • FIGs 26-27 depict exemplary embodiments of a Linked Question Source according to another aspect of the present invention.
  • FIGs 28-30 depict exemplary embodiments of a Derived Question Source according to another aspect of the present invention.
  • FIGs 31-33 depict exemplary embodiments of a Defaulted Question Source according to another aspect of the present invention.
  • FIG 34 depicts an exemplary embodiment of a Question Relation of Type A according to another aspect of the present invention.
  • any reference herein to "one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention.
  • the appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
  • the inventions herein are applicable to many types of business applications, including but not limited to insurance policy management, financial services and product design, management and implementation, legal services, industrial processes, architectural design, etc. to name only a few. Other applications will become apparent based on the description herein.
  • the present invention includes inter alia an adaptive application that can be adapted to a wide variety of business applications, including insurance and financial services, to name only a few.
  • the adaptive application includes the core modules needed to perform the main functionality of any business application.
  • FIGs 11-12 a process for adapting the software application to manage policies for an insurance company is shown therein.
  • the resulting application must create, manage and administer a variety of insurance products, some of which may be developed after the creation of this software application.
  • the first step 101 of adapting the adaptive application for an insurance company to manage its policies consists of identifying the screens needed for entering and modifying the information to describe the insurance products (e.g., what coverages, limits, deductibles are offered) to be managed by the application.
  • this step is part of an interview process with the various employees and managers of the insurance company. In conventional software developments, this step is often employed later in the process, but the inventors have determined that by identifying these screens first, the application can be built more rapidly than heretofore possible.
  • the web pages can be created.
  • the inventors have identified that any web page needed in these business applications can be created from various combinations of Adaptive Units, which will be described in more detail below.
  • any web page or screen can be created in a fraction of the time heretofore possible. This significantly speeds up the process of developing these types of large software applications.
  • Adaptive Units are described herein with respect to web pages, Adaptive Units can be configured to interact with other interfaces.
  • the Adaptive Units set forth herein provide three levels of functionality - interfacing with a user, performing data manipulation and performing data persistence functions with the Occurrence Database. These functions will be described more completely later. There are several different types of Adaptive Units, which are discussed below. By combining each type of Adaptive Unit with other types, as necessary, any interface screen or device can be created, thereby removing the requirement for developing these separately.
  • Step 1 For each screen identified in Step 1 (element 101), next the Adaptive Units are created (element 102), which are copies of Adaptive Unit Templates that apply to that screen. In this case, the user identifies the necessary functionality and uses the various Adaptive Unit types to create the necessary functionality of the interface.
  • a View Name is assigned to each Adaptive Unit by inserting it into the copied software (element 103). Each Adaptive Unit uses this View Name to obtain all of its parameters. Some Adaptive Units may require two View Names. The View Name links externally supplied parameters to the particular Adaptive Unit, thereby enabling the
  • Adaptive Unit to be adapted to a specific function desired by the user.
  • This information includes
  • ITEM DEPENDENCY VALUES see FIG 2. All of these information elements are not specific to any given business process, and therefore can be filled with information necessary to any given business process.
  • the Adaptive Units can receive parameters that are unique to each business process to which the application is being adapted through these information fields from, for example the Definition Database. This information could be provided by another method, such as via an application programming interface to name only one possibility.
  • FIG 11 depicts the process for adapting the Adaptive Application into an application for creating insurance policies
  • Adaptive Units are created (element 112), which Adaptive units are copies of the
  • a View Name is then assigned to each newly created Adaptive Unit, by inserting it into the copied software (element 113).
  • the Adaptive Unit will use this View Name to obtain all of its parameters.
  • some Adaptive Units may require two View Names.
  • the necessary information associated with each View Name that has been assigned is created (element 114).
  • This information consists of two types.
  • the cross-product information includes VIEW, ENTITY, ENTITY ANCESTRY, QUESTIONS, QUESTION RELATIONS, ANSWER OPTIONS, VIEW ITEMS, VIEW ITEM DEPENDENCY LINES, and VIEW ITEM DEPENDENCY VALUES. All of these information elements are not specific to any given business process, and therefore can be filled with information necessary to a given business process.
  • the Adaptive Units for this business process can receive parameters that are unique to each business process to which the application is being adapted through these information fields from, for example the Definition Database.
  • the product specific information includes CONTRACT QUESTION BY PRODUCT, CONTRACT QUESTION BY PRODUCT OCCURRENCE, and CONTRACT ANSWER OPTION BY PRODUCT OCCURRENCE.
  • the embodiments of the present invention include several elements: Adaptive Units, Definition parameters, and one or more Occurrence Databases.
  • the business is reduced to a linear flow of business processes.
  • An occurrence database is assigned to each process of the flow. Links between subsequent processes in the linear flow of the business are established to provide details in subsequent processes that are determined by earlier processes of the overall business.
  • a process for creating the insurance products is identified and an occurrence database is defined and associated with this process.
  • a second process is identified as the insurance policy writing process that can only occur based on insurance products defined in the earlier process of product definition. This business process identification can then continue through the entire operation of the business.
  • FIG 2 shows an exemplary embodiment of a data structure 20 for the database used in the various embodiments herein.
  • the database is composed of at least two parts - a definition database 21 and one or more occurrence databases 22.
  • a data dictionary is included herein as Appendix A. The terms used below are defined more completely therein. The relationship and interlinks between these databases are shown in FIG 1.
  • the Occurrence Database 22 consists of generic (also referred to as meta model driven) tables that are not specific to any business process.
  • the notation linking the various blocks is in standard form, which indicates the relationship between various blocks.
  • each entity may have zero (indicated by the zero in the line linking the two blocks), one (indicated by the one written across the line linking the two blocks) or more contract occurrences (indicated by the "crows feet" symbol at the end of the link between the two blocks).
  • each contract occurrence has one and must have one entity.
  • This notation depicts the relationship between the two blocks.
  • Each block represents a table in the database.
  • Each table may have one or more entries.
  • the links between boxes are links between the tables in the database.
  • the Definition Database 21 includes an Entity table 21a, to which there may be linked tables for Entity Ancestry 21b, View 21c, and Question 21d.
  • the View table 21c may be linked to multiple tables of View Items 2 If, which may be linked to one or more tables of View Item Dependency Lines 21e and which in turn may be linked to one or more tables of View Item Dependency Values 21i.
  • the Occurrence Database 22 has a Master Business Process (BP) Occurrence Table 22a, to which may be linked multiple tables of Business Process Occurrences 22b, which in turn may have multiple tables of Business Process Answers 22c and Business Process Ancestry 22d.
  • BP Master Business Process
  • One or more Business Process Occurrence tables 22b may be linked to the Entity table 21a.
  • the Business Process Answer tables 22c may be linked to the Question table 2 Id.
  • FIG 3 depicts the data structure 30 for the database in a situation in which there is more than one business process.
  • This data structure 30 includes a Definition Database 31 and two Occurrence Databases 32-1, 32-2, one for Business Process 1 and another for Business Process 2.
  • FIG 4 depicts the Adaptive Application Data Structure 40 with Multiple Business Processes and Relative Customization.
  • the data structure 40 in this version has been modified to customize the Definition Database 41 so that an upstream business process can affect answers to downstream business processes.
  • the Definition Database 41 there are three additional tables provided in the Definition Database 41, which include Business Process 2 Question by Business Process 1 42a, Business Process 2 Question by Business Process 1 Occurrence 42c, and Business Process 2 Answer Option by Business Process 1 Occurrence 42b.
  • the Business Process 1 Occurrence Database is for an upstream Business Process, which is upstream in the business relative to Business Process 2.
  • the Business Process 1 to which a particular Business Process 2 is applicable can alter questions (i.e., fields) and answers in the Definition Database 41. Additional links 43a-h are necessary to supply the required functionality.
  • the Entity Table specifies details of each entity defined in the logical model.
  • PRODUCT PRODUCT COVERAGE
  • POLICY POLICY COVERAGE
  • POLICY COVERAGE are defined therein for a business process of PRUDUCT in the insurance business.
  • the Entity Ancestry Table specifies the parent-child relationship between two entities in the conceptual model. For example, there is a parent-child relationship between
  • the Question Table specifies each "Question" associated with an Entity.
  • the View Table normally corresponds to one Adaptive Unit. Sometimes more than one
  • An Interface (a web page or an external interface) consists of one or more Views. Each View consists of a selection of elements from one
  • This Contract (BP2) Question of a Product (BP1) Table specifies the properties for a Contract (BP2) Question of a Product (BP1).
  • the Question Relation Table specifies the relationship between two
  • the View Item Table defines each item in a View.
  • the View Item can be an
  • the View Item specifies the presentation characteristics for each displayed element.
  • the View Item Dependency Line Table defines the dependencies or the condition under which the View Item (e.g., display element) is presented. This provides a way by which a display element can be presented only under certain conditions.
  • Dependency Line along with Dependency Value enables specification of any complex expression.
  • the Dependency Expression is a complex Boolean expression with the left side operand is a Question and the right side operand can be a literal or a Question.
  • This Dependency Value Table defines the set of values that need to be satisfied with Dependency Line Primary Q. Each instance specifies one value of the OR expression (in the example CI, C2 and C3). Each value may be a constant or another
  • the Master Product (BP1) Occurrence Table contains one record for every instance of a Product (BP1).
  • the Product (BP1) Occurrence Table contains one record for each occurrence of each entity in the Product (BP1) hierarchy.
  • the Product (BP1) Ancestry Table identifies the parent-child relationships between Product (BP1) Occurrences.
  • the Product (BP1) Answer Table contains the values for the individual attributes of a Product (BP1) Occurrence.
  • the Long Product (BP1) Answer Table contains the Product (BP1) Answer value if the Product (BP1) Answer's size exceeds 20 characters.
  • Product (BP1) Occurrence Question Answer Option Category is 1 (specific list), each possible value is specified in this table, one record per value. If it is 2 (ranges of values), then each range must be specified in one record using From, To and Increment.
  • the Answer Option Table specifies the possible values for all Questions including variations by Product. If the Question Answer Option Category is 1 (specific list), each possible value is specified in this table, one record per value. If it is 2 (ranges of values), then each range must be specified in one record using From, To and
  • the Master Contract (BP2) Occurrence Table contains one record for every instance of a Contract (BP2). This record ties together all the details for the Contract
  • the Contract (BP2) Occurrence Table contains one record for each occurrence of each entity in the Contract (BP2) hierarchy.
  • the Contract (BP2) Ancestry Table identifies the parent-child relationships between Contract (BP2) Occurrences.
  • the Contract (BP2) Answer Table contains the values for the individual attributes of a Contract (BP2) Occurrence.
  • the Long Contract (BP2) Answer Table contains the Contract (BP2) Answer value if the Contract (BP2) Answer's size exceeds 20 characters.
  • every user interface that is manifest as a web page 120 typically includes the following elements - a header area 121 (see FIG 12), a context area
  • a navigation bar 141 (see FIG 14), a signature area 151 (see FIG 15), a function bar 161 (see FIG 16), an error display area 171 (see FIG 17), and a main body
  • the focus herein relates to the main body 181.
  • the main body 181 of a web page 120 employed as a user interface can be composed of several reusable elements in various combinations. We term these "Adaptive Units.” An exemplary embodiment 16 of an Adaptive Unit is shown in FIG IA. These Adaptive Units include three components
  • the interface component 12 presents information to and accepts information from the outside world (such as a web page or a system interface).
  • the processing logic component 13 can manipulate and evaluate information based on received parameters. This component can perform complex manipulations such as comparisons and decisions as in the case of data dependency decisions.
  • the data persistence logic component 14 retrieves, adds, updates, and deletes data targeting one or more Occurrence Databases 15a-15n. This component manages the data in the one or more Occurrence Databases.
  • All three components of an Adaptive Unit are parameter driven. In other words, each of these components receives parameters from somewhere else that drive the activities of the component. These parameters are embedded throughout these components so that the components can be adapted to any application. As a result, these components are highly flexible forming the core of the Adaptive Application.
  • One embodiment for providing parameters to these components includes a
  • the Definition Database can be populated with data specific to the given application for which the Adaptive Application is being adapted to completely control the three components of each Adaptive Unit. By using these Adaptive Units as building blocks the Adaptive Application can be developed in short order.
  • Adaptive Units There are multiple types of Adaptive Units (AU's) that can be combined in various manners to create any combination of web page necessary for interacting with a user. Some embodiments of these Adaptive Units include — a List AU (an example of which is shown in FIG 19), a Detail AU (an example of which is shown in FIG 20), an Updateable List AU (see FIG 21 for an example) and a Dual List AU (see FIG 22 for an example), which only becomes necessary when there are multiple occurrence databases. [0121] Referring to FIG 19, shown therein is a List Adaptive Unit 190, which includes a list 195 and several events (Add, Delete, Detail, Reset) that can be initiated by clicking on the buttons 191-194, respectively.
  • a List Adaptive Unit 190 which includes a list 195 and several events (Add, Delete, Detail, Reset) that can be initiated by clicking on the buttons 191-194, respectively.
  • a Detail Adaptive Unit that includes a detail area 201 and a function button 202 (submit).
  • FIG 21 shown therein is an Updateable List Adaptive Unit that includes a list 214 and several function buttons (Add Row, Delete Row, Submit) 211-213, respectively.
  • FIG 22 shown therein is a Dual List Adaptive Unit that includes a left side list 221 and a right side list 222.
  • FIG 23 shown therein is a List Detail Unit that includes a list
  • Dual-List Detail Adaptive Unit that includes a left side list 241 and a right side list 243 and a detail area 242 for the selected item.
  • FIG 25 shown therein is a Detail - List Adaptive Unit that includes a detail area 251 and a list 252 for the selected item on the detail area 251.
  • the main body of the web page is composed of a combination of two or more Adaptive Units.
  • the following are some examples of frequently encountered combinations ⁇ List-Detail AU (see FIG 23 for an example), Dual-List Detail AU (see
  • FIG 24 for an example
  • Detail-List AU see FIG 25 for an example
  • Other combinations are also possible depending upon the precise requirements of a given application. Essentially, any desired web page can be created from a combination of these four Adaptive Units, which makes it rather simple to create any desired web page rapidly.
  • the List Adaptive Unit there are several possible events that can be initiated - Load (see FIG 9D), View/Edit (see FIG 7), Add (see FIG 6A) and Delete (see FIG 6B). Each event is activated when a user clicks on the link associated with the given event.
  • the List Adaptive unit has the following properties - ViewName, DetailTarget, Productld and Occurrence ID. These properties are the information elements via which the List Adaptive Unit receives and transfers parameters.
  • FIG 6A shown therein is the process 60a that is initiated upon clicking on the Add link in the List Adaptive Unit.
  • This process 60a in turn activates the "New" event of the Detail Adaptive Unit (see FIGs 9A-C) using DetailTarget, Productld, and Occurrenceld of the parent occurrence for the list (step 61a). The remaining steps are explained in the New event of the Detail Adaptive Unit below.
  • FIG 6B shown therein is the process 60b that is initiated upon clicking on the Delete link in the List Adaptive Unit. First, the Contract Occurrence with the Occurrenceld is deleted (step 61b). Then, the deleted occurrence is removed from the display (step 62b).
  • FIG 7 shown therein is the process 70 that is initiated upon clicking on the View/Edit link in the List Adaptive Unit.
  • This process 70 in turn activates the "Load" event of the Detail Adaptive Unit (see FIGs 8A-C) using DetailTarget, Productld, and Occurrenceld of a selected item (step 71).
  • the remaining steps are explained in the Load event of the Detail Adaptive Unit below.
  • the process 90d initiated by clicking on the Load link in the List Adaptive Unit is shown therein.
  • the process 90d retrieves the View attributes using the ViewName (step 9 Id).
  • the attributes of each View Item are retrieved for the ViewName and Productld (step 92d).
  • the Question attributes are retrieved (step 93d).
  • the Contract Occurrences are retrieved from the Contract Ancestry (step 94d).
  • the Contract Answers are retrieved for the Questions related to the View Items from each occurrence (step 95d).
  • the answers are displayed for each Contract Occurrence in a separate line (step 96d) and the process ends.
  • the Detail Adaptive Unit has the following properties - ViewName, Occurrence ID, Productld and SegmentNo.
  • FIGs 8A-C shown therein is the process 80 that is initiated upon clicking on the Load link of the Detail Adaptive Unit.
  • the SegmentNo is initialized to one (1) 81a.
  • the View Attributes are retrieved using the ViewName 82a.
  • the attributes for each View Item for the View Name and Productld are then retrieved 83a.
  • the View Item Dependency Lines and the View Item Dependency Values are retrieved 84a.
  • steps 86a-89a and 81b-88b are performed, after which the process moves to step 89b.
  • the question attributes are retrieved.
  • step 87a the SegmentNo is compared to the Segment of the View Item, and if equal, the process moves to step 88a (FIG 8B). If the SegmentNo is not equal to the Segment of the View Item the process moves to step 88b of FIG 8B (step 89a).
  • step 81b the process continues in step 81b from FIG 8A.
  • the Productld is evaluated and if the Productld is not zero, the process moves to step 83b, in which the Question attributes are overridden using the Contract Question by Product and the process moves to step 86b. If the Productld is zero, the process moves to step 84b, in which the determination is made as to whether the question has answer options, and if so, the process moves to step 85b, in which the attributes of each answer option are retrieved, and then the process moves to step 86b. If the Question does not have answer options, the process moves to step 86b directly, thereby skipping step 85b. Next, the determination is made as to whether the question has question relations 86b.
  • step 87b which takes us to FIG 8C, step 81c. If the question does not have question relations, then the process moves to step 89b, in which after eliminating those View Items that are inapplicable because of question dependency conditions, the remaining View Items are displayed with Segment equal to SegmentNo along with answers that are not hyperlinked, and the process ends.
  • step 89b this subprocess is initiated by an affirmative response to the determination of step 86b.
  • the attributes of each Question Relation are retrieved 82c.
  • the Contract Answer is retrieved from higher- level contract entities using Occurrenceld and Contract Ancestry to determine value of the answer 83c.
  • the set of possible selections is retrieved using the Productld 84c.
  • attributes from "Contract Question By Product Occurrence” and from “Contract Answer Option by Product Occurrence” are retrieved 85c, and the process returns to FIG 8B, step 87b (step 86c).
  • FIGs 9A-C shown therein is the process 90 that is initiated upon clicking on the New link of the Detail Adaptive Unit.
  • the SegmentNo is initialized to one (1) 91a.
  • the View Attributes are retrieved using the ViewName 92a.
  • the attributes for each View Item for the View Name and Productld are then retrieved 93a.
  • step 96a the View Item Dependency Lines and the View Item Dependency Values are retrieved 94a.
  • steps 96a-99a and 91b-98b are performed, after which the process moves to step 99b.
  • step 96a the question attributes are retrieved.
  • step 97a the SegmentNo is compared to the Segment of the View Item, and if equal, the process moves to step 98a (FIG 9B). If the SegmentNo is not equal to the Segment of the View Item the process moves to step 98b of FIG 9B (step 99a). [0139] Turning to FIG 9B, the process continues in step 91b from FIG 9A.
  • step 93 b the Productld is evaluated and if the Productld is not zero, the process moves to step 93 b, in which the Question attributes are overridden using the Contract Question by Product and the process moves to step 96b. If the Productld is zero, the process moves to step 94b, in which the determination is made as to whether the question has answer options, and if so, the process moves to step 95b, in which the attributes of each answer option are retrieved, and then the process moves to step 96b. If the Question does not have answer options, the process moves to step 96b directly, thereby skipping step 95b. Next, the determination is made as to whether the question has question relations 96b.
  • step 97b which takes us to FIG 9C, step 91c. If the question does not have question relations, then the process moves to step 99b, in which after eliminating those View Items that are inapplicable because of question dependency conditions, the remaining View Items are displayed with Segment equal to SegmentNo along with answers that are not hyperlinked, and the process ends.
  • step 99b this subprocess is initiated by an affirmative response to the determination of step 96b.
  • the attributes of each Question Relation are retrieved 92c.
  • the Contract Answer is retrieved from higher- level contract entities using Occurrenceld and Contract Ancestry to determine value of the answer 93c.
  • steps 103 a- 109a are performed, after which the process moves to step 110a (step 102a).
  • step 103a the Productld is evaluated and if the Productld is not zero, the process moves to step 104a, in which the Question attributes are overridden using the Contract Question by Product and the process moves to step 107a. If the Productld is zero, the process moves to step 105a, in which the determination is made as to whether the question has answer options, and if so, the process moves to step 106a, in which the attributes of each answer option are retrieved, and then the process moves to step 107a.
  • step 107a the process moves to step 107a directly, thereby skipping step 106a.
  • step 108a the determination is made as to whether the question has question relations. If the question has question relations, then the process moves to step 109a, which takes us to FIG 10B, step 101b. If the question does not have question relations, then the process moves to step 110a, in which the View Items with Segment less than SegmentNo are displayed along with hyperlinked answers. In step I l ia, after eliminating those View Items that are inapplicable because of question dependency conditions, the remaining View Items are displayed with Segment equal to SegmentNo along with answers that are not hyperlinked, and the process ends.
  • step 108a this subprocess is initiated by an affirmative response to the determination of step 108a.
  • the attributes of each Question Relation are retrieved 102b.
  • the Contract Answer is retrieved from higher-level contract entities using Occurrenceld and Contract Ancestry to determine value of the answer 103b.
  • the set of possible selections is retrieved using the Productld 104b.
  • attributes from "Contract Question By Product Occurrence” and from "Contract Answer Option by Product Occurrence” are retrieved 105b, and the process returns to FIG 10A, step 109a (step 106b).
  • step 112c shown therein is the process 112c that is initiated upon clicking on the Submit link of the Detail Adaptive Unit.
  • step 113c if a new Contract Occurrence has been introduced, the new Contract Occurrence is added to the database.
  • step 114c each new Contract Answer is added to the database.
  • Each Contract Answer that has been modified in the database is then updated (step 115c).
  • questions that have been deleted or made inapplicable (by dependency conditions) from the database are deleted in step 1 16c.
  • This Adaptive Unit there are four possible events that can be initiated - Load, View/Edit, Add » and «Remove.
  • This Adaptive Unit has the following properties - LeftViewName, RightViewName, DetailTarget, LinkedEntity, LinkedQuestion, Occurrence ID and Productld.
  • FIGs 11D-E shown therein is the process that is initiated upon clicking on the Load link of the Dual List Adaptive Unit.
  • FIG 1 ID shows the portion 112d of the process that is applicable to the list on the right side of the selected items
  • FIG 1 IE shows the portion 112e of the process that is applicable to the list on the left side of the selected items.
  • step 113d the View attributes are retrieved using the RightViewName.
  • step 114d the attributes of each View Item are retrieved for the RightViewName and Productld.
  • step 115d for each View Item, the Question attributes are retrieved.
  • step 116d using Occurrenceld as a "parent-id", the "children" Contract Occurrences are retrieved from the Contract Ancestry.
  • step 117d Contract Answers are obtained for the Questions related to the View Items from each occurrence.
  • step 118d the answers for each Contract Occurrence are displayed in a separate line.
  • step 113e the View attributes are retrieved using the LeftViewName.
  • step 114e the attributes of each View Item are retrieved for the LeftViewName and Productld.
  • step 115e for each View Item, the Question attributes are retrieved.
  • step 116e all Product Occurrences are found that contain a Product Answer for the question identified by TargetEntity and TargetQuestion.
  • step 117e Contract Answers are obtained for the Questions related to the View Items from each occurrence.
  • step 118e the answers for each Product Occurrence are displayed in a separate line excluding the occurrences that are already selected and therefore in the "selected items list" (i.e., matching values for the LinkedQuestion and TargetQuestion).
  • the process that is initiated upon clicking on the View/Edit link of the Dual List Adaptive Unit. Clicking the View/Edit link initiates process 1 lOf, which in step 11 If activates the "Load" event of the Detail Adaptive Unit using DetailTarget, Productld, and Occurrenceld (of selected item).
  • FIG 1 IG shown therein is the process that is initiated upon clicking on the "Add»" link of the Dual List Adaptive Unit. Clicking the "Add»” link initiates process 1 lOg, which in step 11 lg activates the "New" event of the Detail Adaptive Unit using DetailTarget, Productld, and Occurrenceld (of the parent occurrence for the list).
  • step 11 lh deletes the Contract Occurrence with Occurrenceld.
  • step 112h the deleted occurrence is removed from display on the right list.
  • step 113h the corresponding occurrence is displayed on the left list.
  • This Adaptive Unit there are several possible events that can be initiated - Load, Add Row, Delete Row and Submit.
  • This Adaptive Unit has the following properties - ListViewName, DetailViewName, Occurrence ID and Productld.
  • FIGs 11I-K shown therein is the process 1 lOi that is initiated upon clicking on the Load link of the Updateable List Adaptive Unit.
  • the View Attributes are retrieved using the ListViewName.
  • the attributes for each View Item for the ListView Name and Productld are then retrieved 112i.
  • the attributes are retrieved for the DetailViewName and Productld 113i.
  • steps 115i-l 16i, and 11 lj-117 j are performed, after which the process moves to step 118j.
  • step 115i the question attributes are retrieved.
  • step 116i the process moves to FIG 11 J, element 11 lj.
  • step 11 J the process continues in step 11 lj from FIG 111, step 116i.
  • the Productld is evaluated and if the Productld is not zero, the process moves to step 113j, in which the Question attributes are overridden using the Contract Question by Product and the process moves to step 116j. If the Productld is zero, the process moves to step 114j, in which the determination is made as to whether the question has answer options, and if so, the process moves to step 115j, in which the attributes of each answer option are retrieved, and then the process moves to step 116j. If the Question does not have answer options, the process moves to step 116j directly, thereby skipping step 115j.
  • step 116j the determination is made as to whether the question has question relations 116j. If the question has question relations, then the process moves to step 117j, which takes us to FIG 1 IK, step 111k. If the question does not have question relations, then the process moves directly to step 118j, in which the "children" Contract Occurrences from the Contract Ancestry are retrieved using Occurrenceld as a "parent- id.” In step 119j, the Contract Answers for the Questions related to the DetailViewName View Items from each occurrence are obtained. Finally in step 120j, the answers for each Contract Occurrence are displayed in a separate line, and the process ends.
  • step 116j this subprocess is initiated by an affirmative response to the determination of step 116j.
  • the attributes of each Question Relation are retrieved 112k.
  • the Contract Answer is retrieved from higher-level contract entities using Occurrenceld and Contract Ancestry to determine value of the answer 113k.
  • the set of possible selections is retrieved using the Productld 114k.
  • attributes from "Contract Question By Product Occurrence” and from "Contract Answer Option by Product Occurrence” are retrieved 115k, and the process returns to FIG 11 J, step 117j (step 116k).
  • FIG 1 IL shown therein is the process that is initiated upon clicking on the Add Row link of the Updateable List Adaptive Unit. Clicking the Add row link initiates process 1101, which in step 1111 adds a blank new row to the updateable list filling in default values, if any (no database change), and the process ends.
  • FIG 1 IM shown therein is the process that is initiated upon clicking on the Delete Row link of the Updateable List Adaptive Unit. Clicking the Delete row link initiates process 110m, which in step 1 11m deletes the indicated row from the updateable list (no database change), and the process ends.
  • step 11 adds each new Contract Occurrence, if any, to the database.
  • step 112n each new Contract Answer, if any, is added to the database.
  • step 113n each Contract Answer that has been modified in the database is updated.
  • step 114n questions that have been deleted or made inapplicable (by dependency conditions) are deleted from the database, and the process ends.
  • One or more of the embodiments of the present invention employ a technique known as Question Relations to provide an efficient, declarative, and non-redundant way for the Adaptive Application (e.g., Policy Writer) to associate the answer of a Question with that (i.e., an answer) of another Question.
  • the related question can be from the same entity or a different entity.
  • a Question Relation may point to one or more Questions that are associated with a given question: Target-Q or Ref-Q.
  • Target-Q Target-Q
  • Ref-Q Ref-Q
  • a LINKED Question 262 duplicates a Question 261 of an "upstream" Entity, thus creating an association between two Entities.
  • the answer of a Linked Question is always stored.
  • Question relations that may be needed to facilitate a linked question are:
  • L - points to a question in the other database to link to S - points to a question in the current database that provides the value of the particular parent occurrence under which the answer to the Question to link to is to be found in the other database
  • the Linked Question is the Coverage Code 275.
  • the Product Coverage Code is the question being linked to (element 272); Product Code 271 is used to determine the applicable Product Coverages. Two question relations are needed for this example.
  • a DERIVED Question acquires its answer by applying a formula to the answer of an Ancestor's or Extended Ancestor's Question which is called the Target Question.
  • the answer of a Derived Question may be stored depending on the "Storage Code" property.
  • the Target Question is element 282, or 283. If the Target Question belongs to an Extended Ancestor, it must be specified via a Reference Question which is itself a link (element 284).
  • the derived question is element 281, or 285. Only one Question Relation of type V needed in either case.
  • the Derived Question is Location Limit (element 294).
  • Target Question is the Policy Limit (element 293).
  • One Question Relation of type V is needed.
  • the Derived Question is Coverage Premium Ind (element 305).
  • the Target question is Product Coverage Premium Ind (element 301).
  • the Coverage Code is the link that is used to make the connection (Coverage Ccode in element 305).
  • a DEFAULTED Question acquires its initial answer by applying a formula to the answer of an Ancestor's or Extended Ancestor's Question which is called the Target Question.
  • the answer of a Defaulted Question may be stored depending on the "Storage Code" property.
  • the Target Question is element 311 or 313. If the Target Question belongs to an Extended Ancestor, it must be specified via a Reference Question which is itself a link
  • the Target Question is the Policy Deductible (element 323).
  • the Defaulted Question is the Coverage Inclusion Ind
  • the Target Question is the Product Coverage Inclusion Ind (element 332).
  • the Coverage Code is the link that is used to make the connection (Coverage Code in element 335).
  • Answer options and several other properties of Contract Questions are referred to as Variable Properties. Answer options of a Contract Question are set at the level of a designated Product Entity. For example, the answer options for the "Coverage limit" question may differ by the "Product Coverage Type". The remaining Variable Properties are set elsewhere but may be overridden at the level of the designated Product Entity. If a Contract Question requires Variable Properties, it must have a Question Relation of type A, which specifies another Contract Question (Target-Q) that provides the link to a particular occurrence of the Product Entity where the Variable Properties reside.
  • Target-Q another Contract Question
  • the Limit (element 345) is the Contract Question whose variable property level is being designated.
  • the Question Relation has Coverage Code (Coverage code in element 345) as the Target-Q.
  • Product Coverage (element 342) is the Product Entity that the Target-Q is linked to. Summary
  • This table contains the Contract Answer value if the Contract Answer's size exceeds 20 characters

Abstract

An Adaptive Software Application consists of several types of modules, called Adaptive Units, which are highly parameterized such that they can adapt to varying business requirements by virtue of externally provided parameters. An Adaptive Application is assembled through repeated use of various combinations of different types of Adaptive Units. Large and complex business systems can be rapidly implemented through this approach. An Adaptive Unit includes an interface component that can present information to and accept information from the outside world (such as a web page or a system interface), a processing logic component that can manipulate and evaluate information based on received parameters received (such as comparisons and decisions as in the case of data dependency decisions), and a data persistence logic component that retrieves, adds, updates, and deletes data targeting one or more Occurrence Databases. All three components of an Adaptive Unit are parameter driven. These parameters are not specific to any particular business. One embodiment for providing parameters to these components includes a Definition Database. There may be one or more Occurrence Databases depending on the number of business processes supported by the business application for which the Adaptive Application is being adapted. The Occurrence Database includes generic (also referred to as meta model driven) tables that are not specific to any particular business.

Description

METHOD AND APPARATUS FOR CREATING AN ADAPTIVE APPLICATION
FIELD OF THE INVENTION
[0001] The present invention relates generally to methods and apparatuses for developing software, and more particularly to a method and apparatus for developing software for business solutions in a rapid manner.
COPYRIGHT NOTICE
[0002] A portion of the disclosure of this patent document contains material that may be subject to copyright protection. The copyright owner has no objection to the facsimile reproduction of the patent document or the patent disclosure, as it appears in the U.S. Patent & Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
BACKGROUND
[0003] To date, software applications for businesses have required significant development time and once built cannot be easily modified to adapt to changes in business needs. Given the length of the development cycle vis-a-vis the length of the business cycle, this almost always leads to software systems that are outdated the moment they are completed.
[0004] For example, in the insurance industry computer systems exist to administer insurance policies for large insurers. These large software systems took years to implement and are not flexible enough to evolve with the business. As a result, most insurance companies today have out-of-date and inflexible systems and are confronted with excessive costs and delays in introducing new technologies and maintaining legacy systems. For example, the cost of handling year 2000 issues in the insurance industry was exorbitant. Consequently, many insurance companies seek to free themselves of their legacy system overhead and replace them with web-based solutions that are easy to use, support multiple insurance products, and keep up with changes in the business. [0005] An insurance executive who decides to address these issues and surveys similar projects recently undertaken by other insurance companies will find an inadequate value proposition. The planned cost for such a project ranges from $10,000,000 to $50,000,000 just for software, consulting, and personnel expenses. The planned time to complete the entire system is 2 to 4 years without any tangible result for about 18 months. The project requires input from a number of knowledgeable business staff that will typically need to be dedicated to the project for months or years. In addition, the project has a very high risk of failure. Most projects far exceed the planned cost and time. Some projects are terminated with no result. Those that are implemented often lack the functionality and flexibility initially envisioned, resulting in yet another "legacy" system. [0006] In an attempt to deal with their past inability to address the issues of speed, cost, and flexibility, software vendors have recently been emphasizing the "componentized" nature of their software. In theory, component-based software architectures enable customers to develop systems quickly by reusing components, ultimately reducing system maintenance costs.
[0007] While the advantages of this component rationale have been highly touted, the expected benefits have yet to manifest themselves. Current projects utilizing even the newest software products marketed in this manner are still facing implementation schedules of two to four years or more. In reality, considerable programming effort is required to implement component-based systems to coordinate the functionality of all the components. Components may be reused but the custom logic that binds them into an operational system must still be specified and coded requiring additional consulting and personnel expenses. Therefore, by itself componentized software is not a solution to the above problem.
[0008] One attempted solution to the problem has been described in U.S. Patent No. 6,016,394, which discloses a method and system for database application software creation with minimal programming. This type of system consists of a surrogate environment, which is used to capture the requirements for the target application; a code generator, which synthesizes the code and creates the database for the target application based on the information from the surrogate environment, and the target application itself. [0009] However, the use of this approach introduces a large overhead and imposes certain restrictions that are idiosyncratic to each code synthesizer. Most insurance companies prefer a system that does not use a code synthesizer. [0010] The present invention is therefore directed to the problem of developing a method and apparatus for building software based systems for business solutions, which method and apparatus enable these software-based systems to be developed and fielded rapidly while providing the ability to accept modifications and new requirements in short order, yet reduce the associated costs of development and maintenance while avoiding the use of a code synthesizer.
SUMMARY OF THE INVENTION
[0011] The present invention solves these and other problems by providing an adaptive software application that consists of several types of modules, called Adaptive
Units, which are highly parameterized such that they can adapt to varying business requirements by virtue of externally provided parameters. An Adaptive Application is assembled through repeated use of various combinations of different types of Adaptive
Units. Large and complex business systems can be rapidly implemented through this approach.
[0012] According to one aspect of the present invention, an Adaptive Unit includes an interface component that can present information to and accept information from the outside world (such as a web page or a system interface), a processing logic component that can manipulate and evaluate information based on parameters received (such as comparisons and decisions as in the case of data dependency decisions), and a data persistence logic component that retrieves, adds, updates, and deletes data targeting one or more Occurrence Databases.
[0013] According to another aspect of the present invention, all three components of an Adaptive Unit are parameter driven. These parameters are not specific to any particular business. One embodiment for providing parameters to these components includes a Definition Database, which is detailed below.
[0014] According to still another aspect of the present invention unit there may be one or more Occurrence Databases depending on the number of business processes supported by the business application for which the Adaptive Application is being adapted. Typically, there is one Occurrence Database per business process.
[0015] According to yet another aspect of the present invention, the Occurrence
Database includes generic (also referred to as meta model driven) tables that are not specific to any particular business.
[0016] The Adaptive Application disclosed herein accelerates business software implementation, reduces the cost of system development and system evolution, improves overall system quality and usability, enables a business to take advantage of previously unapproachable niche product opportunities, and mitigates project risks associated with large systems initiatives.
[0017] While the Adaptive Application invention can be employed for many types of business applications, an exemplary embodiment of an apparatus can be used for creating, managing and administering insurance policies, which is referred to as PolicyWriter.
This embodiment can be programmed in Java and HTML code. The system is highly portable and can utilize any JDBC compliant data base management system (e.g., DB2,
Oracle, Sybase, MS SQL Server). The embodiment includes an XML oriented database architecture making it readily able to provide enterprise application integration with other systems and communicate externally with other business partners.
[0018] According to one aspect of the present invention, embodiments herein utilize software templates that make it possible to reuse all of the business logic without limiting the ability to customize these templates as needed. This represents a major leap to what is currently available in the marketplace.
[0019] The embodiment is a comprehensive policy administration system that offers unprecedented speed, flexibility, and functionality at an attractive price. It enables a significant reduction in planned costs, time, and resources.
[0020] Other aspects of the present invention will become apparent based upon a reading of the following detailed description in light of the attached drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] FIG 1 depicts a block diagram of an exemplary embodiment of an Adaptive
Unit according to one aspect of the present invention.
[0022] FIG 2 depicts a data structure of an exemplary embodiment of a flexible database used in various embodiments for single business processes according to one aspect of the present invention.
[0023] FIG 3 depicts a data structure of an exemplary embodiment of a flexible database used in various embodiments for multiple business processes according to one aspect of the present invention.
[0024] FIG 4 depicts a data structure of another exemplary embodiment of a flexible database used in various embodiments for multiple business processes with relative customization according to one aspect of the present invention.
[0025] FIG 5 depicts a table of the properties by Adaptive Unit according to another aspect of the present invention.
[0026] FIG 6A depicts the process outline for the Add event of the List Adaptive
Unit according to another aspect of the present invention.
[0027] FIG 6B depicts the process outline for the Delete event of the List Adaptive
Unit according to another aspect of the present invention.
[0028] FIG 7 depicts the process outline for the View/Edit event of the List Adaptive
Unit according to another aspect of the present invention.
[0029] FIGs 8A-C depict the process outline for the Load event of the Detail
Adaptive Unit according to another aspect of the present invention.
[0030] FIGs 9A-C depict the process outline for the New event of the Detail
Adaptive Unit according to another aspect of the present invention.
[0031] FIG 9D depicts the process outline for the Load event of the List Adaptive
Unit according to another aspect of the present invention.
[0032] FIGs 10A-B depict the process outline for the Continue event of the Detail
Adaptive Unit according to another aspect of the present invention.
[0033] FIGs 11A-B depict an exemplary embodiment of a process for rapidly converting an existing application into a company specific insurance policy management application according to still another aspect of the present invention. [0034] FIG 11C depicts the process outline for the Submit event of the Detail
Adaptive Unit according to another aspect of the present invention.
[0035] FIGs 11D-E depict the process outline for the Load event of the Dual List
Adaptive Unit according to another aspect of the present invention.
[0036] FIG 1 IF depicts the process outline for the View/Edit event of the Dual List
Adaptive Unit
[0037] FIG 1 IG depicts the process outline for the Add» event of the Dual List
Adaptive Unit according to another aspect of the present invention.
[0038] FIG 1 IH depicts the process outline for the «Remove event of the Dual List
Adaptive Unit according to another aspect of the present invention.
[0039] FIGs 11I-K depict the process outline for the Load event of the Updateable
List Adaptive Unit according to another aspect of the present invention.
[0040] FIG 1 IL depicts the process outline for the Add Row event of the Updateable
List Adaptive Unit according to another aspect of the present invention.
[0041] FIG 1 IM depicts the process outline for the Delete Row event of the
Updateable List Adaptive Unit according to another aspect of the present invention.
[0042] FIG 1 IN depicts the process outline for the Submit event of the Updateable
List Adaptive Unit according to another aspect of the present invention.
[0043] FIG 12 depicts an exemplary embodiment of a header area of a web page employed as a user interface.
[0044] FIG 13 depicts an exemplary embodiment of a context area of a web page employed as a user interface.
[0045] FIG 14 depicts an exemplary embodiment of a navigation bar of a web page employed as a user interface.
[0046] FIG 15 depicts an exemplary embodiment of a signature area of a web page employed as a user interface.
[0047] FIG 16 depicts an exemplary embodiment of a function bar of a web page employed as a user interface.
[0048] FIG 17 depicts an exemplary embodiment of an error display area of a web page employed as a user interface.
[0049] FIG 18 depicts an exemplary embodiment of a main body of a web page employed as a user interface.
[0050] FIG 19 depicts an exemplary embodiment of a List Adaptive Unit according to another aspect of the present invention.
[0051] FIG 20 depicts an exemplary embodiment of a Detail Adaptive Unit according to another aspect of the present invention.
[0052] FIG 21 depicts an exemplary embodiment of an Updateable List Adaptive
Unit according to another aspect of the present invention.
[0053] FIG 22 depicts an exemplary embodiment of a Dual List Adaptive Unit according to another aspect of the present invention.
[0054] FIG 23 depicts an exemplary embodiment of a List-Detail combination
Adaptive Unit, which is a combination of a List Adaptive Unit and a Detail Adaptive
Unit, according to another aspect of the present invention.
[0055] FIG 24 depicts an exemplary embodiment of a Dual List-Detail combination
Adaptive Unit, which is a combination of a Dual List Adaptive Unit and a Detail
Adaptive Unit, according to another aspect of the present invention.
[0056] FIG 25 depicts an exemplary embodiment of a Detail-List combination
Adaptive Unit, which is a combination of a Detail Adaptive Unit and a List Adaptive
Unit, according to another aspect of the present invention.
[0057] FIGs 26-27 depict exemplary embodiments of a Linked Question Source according to another aspect of the present invention.
[0058] FIGs 28-30 depict exemplary embodiments of a Derived Question Source according to another aspect of the present invention.
[0059] FIGs 31-33 depict exemplary embodiments of a Defaulted Question Source according to another aspect of the present invention.
[0060] FIG 34 depicts an exemplary embodiment of a Question Relation of Type A according to another aspect of the present invention. DETAILED DESCRIPTION
[0061] It is worthy to note that any reference herein to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase "in one embodiment" in various places in the specification are not necessarily all referring to the same embodiment.
[0062] As stated above, the inventions herein are applicable to many types of business applications, including but not limited to insurance policy management, financial services and product design, management and implementation, legal services, industrial processes, architectural design, etc. to name only a few. Other applications will become apparent based on the description herein.
[0063] To facilitate an understanding of the various inventions herein, an embodiment relating to management of insurance policies will now be described. Many of the steps in creating the necessary application require interaction with the customer to determine the requirements of the particular application. These requirements are embodied in the navigational design of the web pages and the layout of the various web pages. Once the navigational design and layouts are complete, the inventions herein enable rapid development of the necessary web screens. This will become apparent in the following exemplary embodiment.
Overall Process for Creating Insurance Policy Management Application
[0064] The present invention includes inter alia an adaptive application that can be adapted to a wide variety of business applications, including insurance and financial services, to name only a few. The adaptive application includes the core modules needed to perform the main functionality of any business application.
[0065] Turning to FIGs 11-12, a process for adapting the software application to manage policies for an insurance company is shown therein. In this exemplary embodiment, the resulting application must create, manage and administer a variety of insurance products, some of which may be developed after the creation of this software application.
[0066] The first step 101 of adapting the adaptive application for an insurance company to manage its policies consists of identifying the screens needed for entering and modifying the information to describe the insurance products (e.g., what coverages, limits, deductibles are offered) to be managed by the application. Typically, this step is part of an interview process with the various employees and managers of the insurance company. In conventional software developments, this step is often employed later in the process, but the inventors have determined that by identifying these screens first, the application can be built more rapidly than heretofore possible.
[0067] Once the screens are identified, the web pages can be created. According to one aspect of the present invention, the inventors have identified that any web page needed in these business applications can be created from various combinations of Adaptive Units, which will be described in more detail below. By reusing the Adaptive Units in necessary and/or desired combinations, any web page or screen can be created in a fraction of the time heretofore possible. This significantly speeds up the process of developing these types of large software applications. Moreover, while the Adaptive Units are described herein with respect to web pages, Adaptive Units can be configured to interact with other interfaces.
[0068] The Adaptive Units set forth herein provide three levels of functionality - interfacing with a user, performing data manipulation and performing data persistence functions with the Occurrence Database. These functions will be described more completely later. There are several different types of Adaptive Units, which are discussed below. By combining each type of Adaptive Unit with other types, as necessary, any interface screen or device can be created, thereby removing the requirement for developing these separately.
[0069] For each screen identified in Step 1 (element 101), next the Adaptive Units are created (element 102), which are copies of Adaptive Unit Templates that apply to that screen. In this case, the user identifies the necessary functionality and uses the various Adaptive Unit types to create the necessary functionality of the interface. [0070] A View Name is assigned to each Adaptive Unit by inserting it into the copied software (element 103). Each Adaptive Unit uses this View Name to obtain all of its parameters. Some Adaptive Units may require two View Names. The View Name links externally supplied parameters to the particular Adaptive Unit, thereby enabling the
Adaptive Unit to be adapted to a specific function desired by the user.
[0071] In the Definition Database, the necessary information associated with each
View Name that has been assigned is created (element 104). This information includes
VIEW, ENTITY, ENTITY ANCESTRY, QUESTIONS, QUESTION RELATIONS,
ANSWER OPTIONS, VIEW ITEMS, VIEW ITEM DEPENDENCY LINES, and VIEW
ITEM DEPENDENCY VALUES (see FIG 2). All of these information elements are not specific to any given business process, and therefore can be filled with information necessary to any given business process. Thus, the Adaptive Units can receive parameters that are unique to each business process to which the application is being adapted through these information fields from, for example the Definition Database. This information could be provided by another method, such as via an application programming interface to name only one possibility.
[0072] Next, all the Adaptive Units are assembled into a "Product Definition" application (element 105). In other words, this Product Definition application is the first application for which the Adaptive Application was adapted. This Product Definition application creates the web pages or screens and functionality that were identified in step
101.
[0073] The Product Definition Application is then used to enter the information to describe each insurance product (106).
[0074] Now the process moves to FIG 11 (element 107), which depicts the process for adapting the Adaptive Application into an application for creating insurance policies
110.
[0075] At this point it becomes necessary to identify the screens needed for entering and modifying the information to describe policies (e.g., insured's name, address, selected coverages, limits and deductibles) (element 111).
[0076] For each screen identified in the immediately preceding paragraph, the
Adaptive Units are created (element 112), which Adaptive units are copies of the
Adaptive Unit Templates that apply to that screen.
[0077] A View Name is then assigned to each newly created Adaptive Unit, by inserting it into the copied software (element 113). The Adaptive Unit will use this View Name to obtain all of its parameters. As before, some Adaptive Units may require two View Names.
[0078] In the Definition Database, the necessary information associated with each View Name that has been assigned is created (element 114). This information consists of two types. The cross-product information includes VIEW, ENTITY, ENTITY ANCESTRY, QUESTIONS, QUESTION RELATIONS, ANSWER OPTIONS, VIEW ITEMS, VIEW ITEM DEPENDENCY LINES, and VIEW ITEM DEPENDENCY VALUES. All of these information elements are not specific to any given business process, and therefore can be filled with information necessary to a given business process. Thus, the Adaptive Units for this business process can receive parameters that are unique to each business process to which the application is being adapted through these information fields from, for example the Definition Database. This information could be provided by another method, such as via an application programming interface to name only one possibility. The product specific information includes CONTRACT QUESTION BY PRODUCT, CONTRACT QUESTION BY PRODUCT OCCURRENCE, and CONTRACT ANSWER OPTION BY PRODUCT OCCURRENCE. These information elements make it possible to vary the definition parameters for one business process (in this case, Contract Sales) with respect to the elements of another business process (in this case, Product Development). As a result, in this embodiment, the parameters that govern the behavior of the Adaptive Application for selling contracts can be varied by product or a subcomponent of a product such as Coverage Type.
[0079] Next, all the Adaptive Units are assembled into the "Policy Writing" application (element 115).
[0080] Then, the Policy Writing Application is used to write policies (element 116). Thus, this process 110 ends (element 117).
System Components
[0081] The embodiments of the present invention include several elements: Adaptive Units, Definition parameters, and one or more Occurrence Databases. [0082] According to one aspect of the present invention, the business is reduced to a linear flow of business processes. An occurrence database is assigned to each process of the flow. Links between subsequent processes in the linear flow of the business are established to provide details in subsequent processes that are determined by earlier processes of the overall business.
[0083] For example, in the insurance policy management business, a process for creating the insurance products is identified and an occurrence database is defined and associated with this process. A second process is identified as the insurance policy writing process that can only occur based on insurance products defined in the earlier process of product definition. This business process identification can then continue through the entire operation of the business.
Database
[0084] FIG 2 shows an exemplary embodiment of a data structure 20 for the database used in the various embodiments herein. The database is composed of at least two parts - a definition database 21 and one or more occurrence databases 22. A data dictionary is included herein as Appendix A. The terms used below are defined more completely therein. The relationship and interlinks between these databases are shown in FIG 1. The Occurrence Database 22 consists of generic (also referred to as meta model driven) tables that are not specific to any business process.
[0085] The notation linking the various blocks is in standard form, which indicates the relationship between various blocks. For example, each entity may have zero (indicated by the zero in the line linking the two blocks), one (indicated by the one written across the line linking the two blocks) or more contract occurrences (indicated by the "crows feet" symbol at the end of the link between the two blocks). Moreover, each contract occurrence has one and must have one entity. Thus, this notation depicts the relationship between the two blocks. Each block represents a table in the database. Each table may have one or more entries. The links between boxes are links between the tables in the database. [0086] The Definition Database 21 includes an Entity table 21a, to which there may be linked tables for Entity Ancestry 21b, View 21c, and Question 21d. In turn, the View table 21c may be linked to multiple tables of View Items 2 If, which may be linked to one or more tables of View Item Dependency Lines 21e and which in turn may be linked to one or more tables of View Item Dependency Values 21i. There may be links between the table of Questions 21d and the View Item table 2 If, as well as to the Question Relation table 21g and the Answer Option table 21h.
[0087] Thus, in FIG 2, the Occurrence Database 22 has a Master Business Process (BP) Occurrence Table 22a, to which may be linked multiple tables of Business Process Occurrences 22b, which in turn may have multiple tables of Business Process Answers 22c and Business Process Ancestry 22d.
[0088] One or more Business Process Occurrence tables 22b may be linked to the Entity table 21a. The Business Process Answer tables 22c may be linked to the Question table 2 Id.
[0089] FIG 3 depicts the data structure 30 for the database in a situation in which there is more than one business process. In this case, there is at least one Occurrence Database for each business process. This data structure 30 includes a Definition Database 31 and two Occurrence Databases 32-1, 32-2, one for Business Process 1 and another for Business Process 2. The only difference between this data structure 30 and that shown in FIG 2, other than the second Occurrence Database 32-2, is additional links 33, 34 between the Definition Database and the two Occurrence Databases 32-1, 32-2. [0090] FIG 4 depicts the Adaptive Application Data Structure 40 with Multiple Business Processes and Relative Customization. The data structure 40 in this version has been modified to customize the Definition Database 41 so that an upstream business process can affect answers to downstream business processes. Thus, there are three additional tables provided in the Definition Database 41, which include Business Process 2 Question by Business Process 1 42a, Business Process 2 Question by Business Process 1 Occurrence 42c, and Business Process 2 Answer Option by Business Process 1 Occurrence 42b. In this case, the Business Process 1 Occurrence Database is for an upstream Business Process, which is upstream in the business relative to Business Process 2. Thus, the Business Process 1 to which a particular Business Process 2 is applicable can alter questions (i.e., fields) and answers in the Definition Database 41. Additional links 43a-h are necessary to supply the required functionality.
Definition Database
[0091] Throughout the description there will be reference made to Product, which is a first business process (BP1) in the insurance business, and Contract, which is a second business process (BP2) in the insurance business relative to Product. The names are used in certain instances to provide more meaning to the reader than the generic names, however, these tables are not specific to any business and can be employed to adapt the
Adaptive Application to any desired business.
[0092] The Entity Table specifies details of each entity defined in the logical model.
For example, PRODUCT, PRODUCT COVERAGE, POLICY, POLICY COVERAGE are defined therein for a business process of PRUDUCT in the insurance business.
[0093] The Entity Ancestry Table specifies the parent-child relationship between two entities in the conceptual model. For example, there is a parent-child relationship between
POLICY & POLICY LOCATION in the insurance business.
[0094] The Question Table specifies each "Question" associated with an Entity.
The View Table normally corresponds to one Adaptive Unit. Sometimes more than one
Adaptive Unit utilizes the same view. An Interface (a web page or an external interface) consists of one or more Views. Each View consists of a selection of elements from one
"Entity."
[0095] This Contract (BP2) Question of a Product (BP1) Table specifies the properties for a Contract (BP2) Question of a Product (BP1).
[0096] The Question Relation Table specifies the relationship between two
Questions.
[0097] The View Item Table defines each item in a View. The View Item can be an
Image, a Literal (i.e., text) or a Question with a number of properties that specify its label and control the capture and display of its answer. The View Item specifies the presentation characteristics for each displayed element.
[0098] The View Item Dependency Line Table defines the dependencies or the condition under which the View Item (e.g., display element) is presented. This provides a way by which a display element can be presented only under certain conditions.
Dependency Line along with Dependency Value enables specification of any complex expression. The Dependency Expression is a complex Boolean expression with the left side operand is a Question and the right side operand can be a literal or a Question. The comparison operator can be one of <, >, <=, >=, o, =. The operations can be grouped by appropriate parentheses. For example a valid expression is ((Coverage=Cl or C2 or C3)
AND (Vehicle Type = Tl or T2 or T3)).
[0099] This Dependency Value Table defines the set of values that need to be satisfied with Dependency Line Primary Q. Each instance specifies one value of the OR expression (in the example CI, C2 and C3). Each value may be a constant or another
Question (specified here as the Secondary Question) .
[0100] The Master Product (BP1) Occurrence Table contains one record for every instance of a Product (BP1).
[0101] The Product (BP1) Occurrence Table contains one record for each occurrence of each entity in the Product (BP1) hierarchy.
[0102] The Product (BP1) Ancestry Table identifies the parent-child relationships between Product (BP1) Occurrences.
[0103] The Product (BP1) Answer Table contains the values for the individual attributes of a Product (BP1) Occurrence.
[0104] The Long Product (BP1) Answer Table contains the Product (BP1) Answer value if the Product (BP1) Answer's size exceeds 20 characters.
[0105] The Contract (BP2) Question by Product (BP2) Occurrence Table specifies the overriding values for presentation characteristics of a Question based on Product
(BP1) Occurrence.
[0106] The Product (BP1) Answer Option Table specifies the possible values for the
Answer of a Question relative to a particular Product (BP1) Occurrence Question. If the
Product (BP1) Occurrence Question Answer Option Category is 1 (specific list), each possible value is specified in this table, one record per value. If it is 2 (ranges of values), then each range must be specified in one record using From, To and Increment.
[0107] The Answer Option Table specifies the possible values for all Questions including variations by Product. If the Question Answer Option Category is 1 (specific list), each possible value is specified in this table, one record per value. If it is 2 (ranges of values), then each range must be specified in one record using From, To and
Increment.
[0108] The Master Contract (BP2) Occurrence Table contains one record for every instance of a Contract (BP2). This record ties together all the details for the Contract
(BP2).
[0109] The Contract (BP2) Occurrence Table contains one record for each occurrence of each entity in the Contract (BP2) hierarchy.
[0110] The Contract (BP2) Ancestry Table identifies the parent-child relationships between Contract (BP2) Occurrences.
[0111] The Contract (BP2) Answer Table contains the values for the individual attributes of a Contract (BP2) Occurrence.
[0112] The Long Contract (BP2) Answer Table contains the Contract (BP2) Answer value if the Contract (BP2) Answer's size exceeds 20 characters.
User Interface
[0113] Turning to FIG 12, every user interface that is manifest as a web page 120 typically includes the following elements - a header area 121 (see FIG 12), a context area
131 (see FIG 13), a navigation bar 141 (see FIG 14), a signature area 151 (see FIG 15), a function bar 161 (see FIG 16), an error display area 171 (see FIG 17), and a main body
181 (see FIG 18). The focus herein relates to the main body 181.
[0114] According to one aspect of the present invention, the main body 181 of a web page 120 employed as a user interface can be composed of several reusable elements in various combinations. We term these "Adaptive Units." An exemplary embodiment 16 of an Adaptive Unit is shown in FIG IA. These Adaptive Units include three components
- an interface component 12, a data persistence component 13 and a data processing component 14.
[0115] The interface component 12 presents information to and accepts information from the outside world (such as a web page or a system interface).
[0116] The processing logic component 13 can manipulate and evaluate information based on received parameters. This component can perform complex manipulations such as comparisons and decisions as in the case of data dependency decisions.
[0117] The data persistence logic component 14 retrieves, adds, updates, and deletes data targeting one or more Occurrence Databases 15a-15n. This component manages the data in the one or more Occurrence Databases.
[0118] All three components of an Adaptive Unit are parameter driven. In other words, each of these components receives parameters from somewhere else that drive the activities of the component. These parameters are embedded throughout these components so that the components can be adapted to any application. As a result, these components are highly flexible forming the core of the Adaptive Application.
[0119] One embodiment for providing parameters to these components includes a
Definition Database 11. The Definition Database can be populated with data specific to the given application for which the Adaptive Application is being adapted to completely control the three components of each Adaptive Unit. By using these Adaptive Units as building blocks the Adaptive Application can be developed in short order.
Adaptive Units
[0120] There are multiple types of Adaptive Units (AU's) that can be combined in various manners to create any combination of web page necessary for interacting with a user. Some embodiments of these Adaptive Units include — a List AU (an example of which is shown in FIG 19), a Detail AU (an example of which is shown in FIG 20), an Updateable List AU (see FIG 21 for an example) and a Dual List AU (see FIG 22 for an example), which only becomes necessary when there are multiple occurrence databases. [0121] Referring to FIG 19, shown therein is a List Adaptive Unit 190, which includes a list 195 and several events (Add, Delete, Detail, Reset) that can be initiated by clicking on the buttons 191-194, respectively.
[0122] Referring to FIG 20, shown therein is a Detail Adaptive Unit that includes a detail area 201 and a function button 202 (submit).
[0123] Referring to FIG 21, shown therein is an Updateable List Adaptive Unit that includes a list 214 and several function buttons (Add Row, Delete Row, Submit) 211-213, respectively. [0124] Referring to FIG 22, shown therein is a Dual List Adaptive Unit that includes a left side list 221 and a right side list 222.
[0125] Referring to FIG 23, shown therein is a List Detail Unit that includes a list
232 and a detail area 231 for the selected item on the list.
[0126] Referring to FIG 24, shown therein is a Dual-List Detail Adaptive Unit that includes a left side list 241 and a right side list 243 and a detail area 242 for the selected item.
[0127] Referring to FIG 25, shown therein is a Detail - List Adaptive Unit that includes a detail area 251 and a list 252 for the selected item on the detail area 251.
[0128] Sometimes the main body of the web page is composed of a combination of two or more Adaptive Units. The following are some examples of frequently encountered combinations ~ List-Detail AU (see FIG 23 for an example), Dual-List Detail AU (see
FIG 24 for an example), Detail-List AU (see FIG 25 for an example). Other combinations are also possible depending upon the precise requirements of a given application. Essentially, any desired web page can be created from a combination of these four Adaptive Units, which makes it rather simple to create any desired web page rapidly.
List Adaptive Unit
[0129] In the List Adaptive Unit, there are several possible events that can be initiated - Load (see FIG 9D), View/Edit (see FIG 7), Add (see FIG 6A) and Delete (see FIG 6B). Each event is activated when a user clicks on the link associated with the given event. The List Adaptive unit has the following properties - ViewName, DetailTarget, Productld and Occurrence ID. These properties are the information elements via which the List Adaptive Unit receives and transfers parameters.
[0130] Turning to FIG 6A, shown therein is the process 60a that is initiated upon clicking on the Add link in the List Adaptive Unit. This process 60a in turn activates the "New" event of the Detail Adaptive Unit (see FIGs 9A-C) using DetailTarget, Productld, and Occurrenceld of the parent occurrence for the list (step 61a). The remaining steps are explained in the New event of the Detail Adaptive Unit below. [0131] Turning to FIG 6B, shown therein is the process 60b that is initiated upon clicking on the Delete link in the List Adaptive Unit. First, the Contract Occurrence with the Occurrenceld is deleted (step 61b). Then, the deleted occurrence is removed from the display (step 62b).
[0132] Turning to FIG 7, shown therein is the process 70 that is initiated upon clicking on the View/Edit link in the List Adaptive Unit. This process 70 in turn activates the "Load" event of the Detail Adaptive Unit (see FIGs 8A-C) using DetailTarget, Productld, and Occurrenceld of a selected item (step 71). The remaining steps are explained in the Load event of the Detail Adaptive Unit below.
[0133] Turning to FIG 9D, the process 90d initiated by clicking on the Load link in the List Adaptive Unit is shown therein. Once initiated, the process 90d retrieves the View attributes using the ViewName (step 9 Id). Next, the attributes of each View Item are retrieved for the ViewName and Productld (step 92d). For each View Item, the Question attributes are retrieved (step 93d). Using the Occurrenceld as a "parent-id", the "children" Contract Occurrences are retrieved from the Contract Ancestry (step 94d). Next, the Contract Answers are retrieved for the Questions related to the View Items from each occurrence (step 95d). Finally, the answers are displayed for each Contract Occurrence in a separate line (step 96d) and the process ends.
Detail Adaptive Unit
[0134] In this Adaptive Unit, there are several possible events that can be initiated - Load, New, Continue and Submit. The Detail Adaptive Unit has the following properties - ViewName, Occurrence ID, Productld and SegmentNo.
[0135] Referring to FIGs 8A-C, shown therein is the process 80 that is initiated upon clicking on the Load link of the Detail Adaptive Unit. The SegmentNo is initialized to one (1) 81a. The View Attributes are retrieved using the ViewName 82a. The attributes for each View Item for the View Name and Productld are then retrieved 83a. Next, for each View Item, the View Item Dependency Lines and the View Item Dependency Values are retrieved 84a. For each View Item related to a Question, steps 86a-89a and 81b-88b are performed, after which the process moves to step 89b. In step 86a, the question attributes are retrieved. In step 87a, the SegmentNo is compared to the Segment of the View Item, and if equal, the process moves to step 88a (FIG 8B). If the SegmentNo is not equal to the Segment of the View Item the process moves to step 88b of FIG 8B (step 89a).
[0136] Turning to FIG 8B, the process continues in step 81b from FIG 8A. Next, the Productld is evaluated and if the Productld is not zero, the process moves to step 83b, in which the Question attributes are overridden using the Contract Question by Product and the process moves to step 86b. If the Productld is zero, the process moves to step 84b, in which the determination is made as to whether the question has answer options, and if so, the process moves to step 85b, in which the attributes of each answer option are retrieved, and then the process moves to step 86b. If the Question does not have answer options, the process moves to step 86b directly, thereby skipping step 85b. Next, the determination is made as to whether the question has question relations 86b. If the question has question relations, then the process moves to step 87b, which takes us to FIG 8C, step 81c. If the question does not have question relations, then the process moves to step 89b, in which after eliminating those View Items that are inapplicable because of question dependency conditions, the remaining View Items are displayed with Segment equal to SegmentNo along with answers that are not hyperlinked, and the process ends. [0137] Turning to FIG 8C, this subprocess is initiated by an affirmative response to the determination of step 86b. First, the attributes of each Question Relation are retrieved 82c. For "default" and "derive" relations, the Contract Answer is retrieved from higher- level contract entities using Occurrenceld and Contract Ancestry to determine value of the answer 83c. For a "link" question relation, the set of possible selections is retrieved using the Productld 84c. For a "dynamic" question relation, attributes from "Contract Question By Product Occurrence" and from "Contract Answer Option by Product Occurrence" are retrieved 85c, and the process returns to FIG 8B, step 87b (step 86c). [0138] Referring to FIGs 9A-C, shown therein is the process 90 that is initiated upon clicking on the New link of the Detail Adaptive Unit. The SegmentNo is initialized to one (1) 91a. The View Attributes are retrieved using the ViewName 92a. The attributes for each View Item for the View Name and Productld are then retrieved 93a. Next, for each View Item, the View Item Dependency Lines and the View Item Dependency Values are retrieved 94a. For each View Item related to a Question, steps 96a-99a and 91b-98b are performed, after which the process moves to step 99b. In step 96a, the question attributes are retrieved. In step 97a, the SegmentNo is compared to the Segment of the View Item, and if equal, the process moves to step 98a (FIG 9B). If the SegmentNo is not equal to the Segment of the View Item the process moves to step 98b of FIG 9B (step 99a). [0139] Turning to FIG 9B, the process continues in step 91b from FIG 9A. Next, the Productld is evaluated and if the Productld is not zero, the process moves to step 93 b, in which the Question attributes are overridden using the Contract Question by Product and the process moves to step 96b. If the Productld is zero, the process moves to step 94b, in which the determination is made as to whether the question has answer options, and if so, the process moves to step 95b, in which the attributes of each answer option are retrieved, and then the process moves to step 96b. If the Question does not have answer options, the process moves to step 96b directly, thereby skipping step 95b. Next, the determination is made as to whether the question has question relations 96b. If the question has question relations, then the process moves to step 97b, which takes us to FIG 9C, step 91c. If the question does not have question relations, then the process moves to step 99b, in which after eliminating those View Items that are inapplicable because of question dependency conditions, the remaining View Items are displayed with Segment equal to SegmentNo along with answers that are not hyperlinked, and the process ends. [0140] Turning to FIG 9C, this subprocess is initiated by an affirmative response to the determination of step 96b. First, the attributes of each Question Relation are retrieved 92c. For "default" and "derive" relations, the Contract Answer is retrieved from higher- level contract entities using Occurrenceld and Contract Ancestry to determine value of the answer 93c. For a "link" question relation, the set of possible selections is retrieved using the Productld 94c. For a "dynamic" question relation, attributes from "Contract Question By Product Occurrence" and from "Contract Answer Option by Product Occurrence" are retrieved 95c, and the process returns to FIG 9B, step 97b (step 96c). [0141] Referring to FIGs 10A-B, shown therein is the process 100a that is initiated upon clicking on the Continue link of the Detail Adaptive Unit. First, the SegmentNo is increased by one (1) 101a. Next, for each View Item with Segment=SegmentNo that is related to a Question, steps 103 a- 109a are performed, after which the process moves to step 110a (step 102a). In step 103a, the Productld is evaluated and if the Productld is not zero, the process moves to step 104a, in which the Question attributes are overridden using the Contract Question by Product and the process moves to step 107a. If the Productld is zero, the process moves to step 105a, in which the determination is made as to whether the question has answer options, and if so, the process moves to step 106a, in which the attributes of each answer option are retrieved, and then the process moves to step 107a. If the Question does not have answer options, the process moves to step 107a directly, thereby skipping step 106a. Next in step 108a, the determination is made as to whether the question has question relations. If the question has question relations, then the process moves to step 109a, which takes us to FIG 10B, step 101b. If the question does not have question relations, then the process moves to step 110a, in which the View Items with Segment less than SegmentNo are displayed along with hyperlinked answers. In step I l ia, after eliminating those View Items that are inapplicable because of question dependency conditions, the remaining View Items are displayed with Segment equal to SegmentNo along with answers that are not hyperlinked, and the process ends. [0142] Turning to FIG 10B, this subprocess is initiated by an affirmative response to the determination of step 108a. First, the attributes of each Question Relation are retrieved 102b. For "default" and "derive" relations, the Contract Answer is retrieved from higher-level contract entities using Occurrenceld and Contract Ancestry to determine value of the answer 103b. For a "link" question relation, the set of possible selections is retrieved using the Productld 104b. For a "dynamic" question relation, attributes from "Contract Question By Product Occurrence" and from "Contract Answer Option by Product Occurrence" are retrieved 105b, and the process returns to FIG 10A, step 109a (step 106b).
[0143] Referring to FIG 1 IC, shown therein is the process 112c that is initiated upon clicking on the Submit link of the Detail Adaptive Unit. First, in step 113c, if a new Contract Occurrence has been introduced, the new Contract Occurrence is added to the database. Then in step 114c, each new Contract Answer is added to the database. Each Contract Answer that has been modified in the database is then updated (step 115c). Next, questions that have been deleted or made inapplicable (by dependency conditions) from the database are deleted in step 1 16c. Dual List Adaptive Unit
[0144] In this Adaptive Unit, there are four possible events that can be initiated - Load, View/Edit, Add » and «Remove. This Adaptive Unit has the following properties - LeftViewName, RightViewName, DetailTarget, LinkedEntity, LinkedQuestion, Occurrence ID and Productld.
[0145] Referring to FIGs 11D-E, shown therein is the process that is initiated upon clicking on the Load link of the Dual List Adaptive Unit. FIG 1 ID shows the portion 112d of the process that is applicable to the list on the right side of the selected items, whereas FIG 1 IE shows the portion 112e of the process that is applicable to the list on the left side of the selected items.
[0146] Turning to FIG 1 ID, in step 113d, the View attributes are retrieved using the RightViewName. Next in step 114d, the attributes of each View Item are retrieved for the RightViewName and Productld. Next in step 115d, for each View Item, the Question attributes are retrieved. In step 116d, using Occurrenceld as a "parent-id", the "children" Contract Occurrences are retrieved from the Contract Ancestry. Next in step 117d, Contract Answers are obtained for the Questions related to the View Items from each occurrence. Finally in step 118d, the answers for each Contract Occurrence are displayed in a separate line.
[0147] Turning to FIG 1 IE (for the list on the left side of the selectable items), in step 113e, the View attributes are retrieved using the LeftViewName. Next in step 114e, the attributes of each View Item are retrieved for the LeftViewName and Productld. Next in step 115e, for each View Item, the Question attributes are retrieved. In step 116e, all Product Occurrences are found that contain a Product Answer for the question identified by TargetEntity and TargetQuestion. Next in step 117e, Contract Answers are obtained for the Questions related to the View Items from each occurrence. Finally in step 118e, the answers for each Product Occurrence are displayed in a separate line excluding the occurrences that are already selected and therefore in the "selected items list" (i.e., matching values for the LinkedQuestion and TargetQuestion). [0148] Referring to FIG 1 IF, shown therein is the process that is initiated upon clicking on the View/Edit link of the Dual List Adaptive Unit. Clicking the View/Edit link initiates process 1 lOf, which in step 11 If activates the "Load" event of the Detail Adaptive Unit using DetailTarget, Productld, and Occurrenceld (of selected item). [0149] Referring to FIG 1 IG, shown therein is the process that is initiated upon clicking on the "Add»" link of the Dual List Adaptive Unit. Clicking the "Add»" link initiates process 1 lOg, which in step 11 lg activates the "New" event of the Detail Adaptive Unit using DetailTarget, Productld, and Occurrenceld (of the parent occurrence for the list).
[0150] Referring to FIG 1 IH, shown therein is the process that is initiated upon clicking on the "Remove»" link of the Dual List Adaptive Unit. Clicking the "Remove»" link initiates process 1 lOh, which in step 11 lh deletes the Contract Occurrence with Occurrenceld. Next in step 112h, the deleted occurrence is removed from display on the right list. Finally, in step 113h, the corresponding occurrence is displayed on the left list.
Updateable List Adaptive Unit
[0151] In this Adaptive Unit, there are several possible events that can be initiated - Load, Add Row, Delete Row and Submit. This Adaptive Unit has the following properties - ListViewName, DetailViewName, Occurrence ID and Productld. [0152] Referring to FIGs 11I-K, shown therein is the process 1 lOi that is initiated upon clicking on the Load link of the Updateable List Adaptive Unit. In step 11 li, the View Attributes are retrieved using the ListViewName. The attributes for each View Item for the ListView Name and Productld are then retrieved 112i. Next, for each View Item, the attributes are retrieved for the DetailViewName and Productld 113i. For each View Item from the DetailViewName, steps 115i-l 16i, and 11 lj-117 j are performed, after which the process moves to step 118j. In step 115i, the question attributes are retrieved. In step 116i, the process moves to FIG 11 J, element 11 lj.
[0153] Turning to FIG 11 J, the process continues in step 11 lj from FIG 111, step 116i. Next, the Productld is evaluated and if the Productld is not zero, the process moves to step 113j, in which the Question attributes are overridden using the Contract Question by Product and the process moves to step 116j. If the Productld is zero, the process moves to step 114j, in which the determination is made as to whether the question has answer options, and if so, the process moves to step 115j, in which the attributes of each answer option are retrieved, and then the process moves to step 116j. If the Question does not have answer options, the process moves to step 116j directly, thereby skipping step 115j. Next, the determination is made as to whether the question has question relations 116j. If the question has question relations, then the process moves to step 117j, which takes us to FIG 1 IK, step 111k. If the question does not have question relations, then the process moves directly to step 118j, in which the "children" Contract Occurrences from the Contract Ancestry are retrieved using Occurrenceld as a "parent- id." In step 119j, the Contract Answers for the Questions related to the DetailViewName View Items from each occurrence are obtained. Finally in step 120j, the answers for each Contract Occurrence are displayed in a separate line, and the process ends. [0154] Turning to FIG 1 IK, this subprocess is initiated by an affirmative response to the determination of step 116j. First, the attributes of each Question Relation are retrieved 112k. For "default" and "derive" relations, the Contract Answer is retrieved from higher-level contract entities using Occurrenceld and Contract Ancestry to determine value of the answer 113k. For a "link" question relation, the set of possible selections is retrieved using the Productld 114k. For a "dynamic" question relation, attributes from "Contract Question By Product Occurrence" and from "Contract Answer Option by Product Occurrence" are retrieved 115k, and the process returns to FIG 11 J, step 117j (step 116k).
[0155] Referring to FIG 1 IL, shown therein is the process that is initiated upon clicking on the Add Row link of the Updateable List Adaptive Unit. Clicking the Add row link initiates process 1101, which in step 1111 adds a blank new row to the updateable list filling in default values, if any (no database change), and the process ends. [0156] Referring to FIG 1 IM, shown therein is the process that is initiated upon clicking on the Delete Row link of the Updateable List Adaptive Unit. Clicking the Delete row link initiates process 110m, which in step 1 11m deletes the indicated row from the updateable list (no database change), and the process ends. [0157] Referring to FIG 1 IN, shown therein is the process that is initiated upon clicking on the Submit link of the Updateable List Adaptive Unit. Clicking the Submit link initiates process 1 lOn, which in step 11 In adds each new Contract Occurrence, if any, to the database. Next in step 112n, each new Contract Answer, if any, is added to the database. Then in step 113n, each Contract Answer that has been modified in the database is updated. Finally in step 114n, questions that have been deleted or made inapplicable (by dependency conditions) are deleted from the database, and the process ends.
QUESTION RELATIONS
[0158] One or more of the embodiments of the present invention employ a technique known as Question Relations to provide an efficient, declarative, and non-redundant way for the Adaptive Application (e.g., Policy Writer) to associate the answer of a Question with that (i.e., an answer) of another Question. The related question can be from the same entity or a different entity.
[0159] Depending on its type, a Question Relation may point to one or more Questions that are associated with a given question: Target-Q or Ref-Q. [0160] The following table lists the Question Relation types.
Figure imgf000028_0001
The usage of all these Question Relations types, except for type A, (see variable properties below) is governed by QUESTION SOURCE, a Question property, which enables the answer of a Question to be associated with the answers to other Questions
(from the same or different Entities).
[0161] The following QUESTION SOURCE values are of interest: Linked (L),
Derived (D), and Defaulted (F).
[0162] Referring to FIG 26, A LINKED Question 262 duplicates a Question 261 of an "upstream" Entity, thus creating an association between two Entities. The answer of a Linked Question is always stored. Question relations that may be needed to facilitate a linked question are:
L - points to a question in the other database to link to S - points to a question in the current database that provides the value of the particular parent occurrence under which the answer to the Question to link to is to be found in the other database
V - points to a default answer for the linked question (in the current database) [0163] Turning to FIG 27, the Linked Question is the Coverage Code 275. The Product Coverage Code is the question being linked to (element 272); Product Code 271 is used to determine the applicable Product Coverages. Two question relations are needed for this example. One of type L to point to the Product Coverage Code 275, and one of type S to use the Policy Product Code 273 as the parent ID for retrieving Product Coverages 272.
[0164] Turning to FIG 28, A DERIVED Question acquires its answer by applying a formula to the answer of an Ancestor's or Extended Ancestor's Question which is called the Target Question. The answer of a Derived Question may be stored depending on the "Storage Code" property.
[0165] The Target Question is element 282, or 283. If the Target Question belongs to an Extended Ancestor, it must be specified via a Reference Question which is itself a link (element 284). The derived question is element 281, or 285. Only one Question Relation of type V needed in either case.
[0166] Turning to FIG 29, the Derived Question is Location Limit (element 294). Target Question is the Policy Limit (element 293). One Question Relation of type V is needed.
[0167] Turning to FIG 30, the Derived Question is Coverage Premium Ind (element 305). The Target question is Product Coverage Premium Ind (element 301). The Coverage Code is the link that is used to make the connection (Coverage Ccode in element 305). One Question relation row of type V is needed (Target-Q = Product Coverage.Premium Ind; Ref-Q = Coverage.Coverage Code). [0168] Turning to FIG 31, A DEFAULTED Question acquires its initial answer by applying a formula to the answer of an Ancestor's or Extended Ancestor's Question which is called the Target Question. The answer of a Defaulted Question may be stored depending on the "Storage Code" property.
[0169] The Target Question is element 311 or 313. If the Target Question belongs to an Extended Ancestor, it must be specified via a Reference Question which is itself a link
(element 314). The defaulted question is element 312 or 315. Only one Question
Relation of type V is needed in either case.
[0170] Turning to FIG 32, the Defaulted Question is the Coverage Deductible
(element 325). The Target Question is the Policy Deductible (element 323). One
Question Relation row of type V is needed (Target-Q = Policy .Deductible).
[0171] Turning to FIG 33, the Defaulted Question is the Coverage Inclusion Ind
(element 335). The Target Question is the Product Coverage Inclusion Ind (element 332).
The Coverage Code is the link that is used to make the connection (Coverage Code in element 335). One Question Relation of type V is needed (where Target-Q = Product
Coverage.Inclusion Ind and Ref-Q = Coverage.Coverage Code).
Variable Properties
[0172] Answer options and several other properties of Contract Questions are referred to as Variable Properties. Answer options of a Contract Question are set at the level of a designated Product Entity. For example, the answer options for the "Coverage limit" question may differ by the "Product Coverage Type". The remaining Variable Properties are set elsewhere but may be overridden at the level of the designated Product Entity. If a Contract Question requires Variable Properties, it must have a Question Relation of type A, which specifies another Contract Question (Target-Q) that provides the link to a particular occurrence of the Product Entity where the Variable Properties reside.
[0173] Turning to FIG 34, the Limit (element 345) is the Contract Question whose variable property level is being designated. In this case, the Question Relation has Coverage Code (Coverage code in element 345) as the Target-Q. Product Coverage (element 342) is the Product Entity that the Target-Q is linked to. Summary
[0174] Although various embodiments are specifically illustrated and described herein, it will be appreciated that modifications and variations of the invention are covered by the above teachings and are within the purview of the appended claims without departing from the spirit and intended scope of the invention. For example, specific software languages and database types are mentioned, however, the scope of the present invention is not limited to these examples. Furthermore, these examples should not be interpreted to limit the modifications and variations of the invention covered by the claims but are merely illustrative of possible variations.
Appendix A
Figure imgf000032_0001
Figure imgf000032_0002
Figure imgf000033_0001
NOT FURNISHED UPON FILING
Figure imgf000035_0001
Figure imgf000036_0001
Figure imgf000037_0001
Figure imgf000039_0001
Figure imgf000040_0001
Figure imgf000041_0001
Master Product Occurrence
Figure imgf000041_0002
Product Occurrence
Figure imgf000041_0003
Figure imgf000042_0001
Product Answer
Figure imgf000042_0002
Figure imgf000042_0003
Figure imgf000043_0001
Figure imgf000044_0001
Figure imgf000045_0001
Figure imgf000045_0002
Contract Occurrence (C)
Figure imgf000045_0003
Figure imgf000046_0001
Contract Answer (CA)
Figure imgf000046_0002
Long Contract Answer
This table contains the Contract Answer value if the Contract Answer's size exceeds 20 characters
Field Name Attribute Description Possible Values Definition
CA-ld N 15 Foreign key to Product Answer
Value T1000 Value of the Answer

Claims

WHAT IS CLAIMED IS:
1. A computer readable media having a plurality of programming instructions encoded thereon an adaptive software application including a plurality of several different types of programming modules, each of said programming modules being highly parameterized and to receive a plurality of parameters from an external source that governs a behavior of said each programming module to capture information, display information and store said captured information in one or more occurrence databases, whereby each of said plurality of modules is adaptable to varying business requirements through said plurality of externally provided parameters, and said adaptive software application is assemblable through repeated copying of various combinations of said plurality of several different types of programming modules.
2. The computer readable media according to claim 1, wherein each of the plurality of several different types of programming modules includes: an interface component to present information to and accept information from one or more outside sources; a processing logic component to manipulate and evaluate information based on received parameters; and a data persistence logic component to retrieve, add, update and delete data targeting one or more occurrence databases.
3. The computer readable media according to claim 2, wherein said processing logic component performs comparisons, computations, data association and data dependency decisions.
4. The computer readable media according to claim 2, wherein said one or more outside sources includes a user interface.
5. The computer readable media according to claim 2, wherein said one or more outside sources includes a World Wide Web page.
6. The computer readable media according to claim 2, wherein said one or more outside sources includes an application programming interface.
7. The computer readable media according to claim 2, wherein said interface component is parameter driven.
8. The computer readable media according to claim 2, wherein said processing logic component is parameter driven.
9. The computer readable media according to claim 2, wherein said data persistence component is parameter driven.
10. The computer readable media according to claim 2, wherein said interface component receives one or more parameters from a definitional database storing information to control behavior of the interface component to display information and capture information.
11. The computer readable media according to claim 2, wherein said processing logic component receives one or more parameters from a definitional database storing information controlling behavior of the processing logic component to manipulate data.
12. The computer readable media according to claim 2, wherein said data persistence component receives one or more parameters from a definitional database storing information controlling behavior of the data persistence component to store and edit information in a meta-model based database.
13. The computer readable media according to claim 2, wherein said interface component receives one or more parameters from a definitional database storing information to control behavior of the interface component to display information and capture information, and said data processing component receives one or more parameters from the definitional database to control behavior of the processing logic component to manipulate data.
14. The computer readable media according to claim 2, wherein said processing logic component receives one or more parameters from a definitional database to control behavior of the processing logic component to manipulate data, and said data persistence component receives one or more parameters from the definitional database storing information controlling behavior of the data persistence component to store and edit information in a meta-model based database.
15. The computer readable media according to claim 2, wherein said data persistence component receives one or more parameters from a definitional database storing information controlling behavior of the data persistence component to store and edit information in a meta-model based database, and said interface component receives one or more parameters from the definitional database storing information to control behavior of the interface component to display information and capture information.
16. The computer readable media according to claim 2, wherein said data persistence component receives one or more parameters from a definitional database storing information controlling behavior of the data persistence component to store and edit information in a meta-model based database, said interface component receives one or more parameters from the definitional database storing information to control behavior of the interface component to display information and capture information, and said processing logic component receives one or more parameters from the definitional database to control behavior of the processing logic component to manipulate data.
17. The computer readable media according to claim 2, wherein said instructions further comprise one or more occurrence databases storing information captured by one or more of the plurality of several different types of programming modules.
18. The computer readable media according to claim 17, wherein each of the one or more occurrence databases storing occurrence information is assigned to one business process supported by a business application for which the adaptive software application is being adapted.
19. The computer readable media according to claim 2, wherein each of said one or more occurrence databases storing occurrence information includes one or more generic tables.
20. The computer readable media according to claim 19, wherein the one or more generic tables are not specific to any business process.
21. The computer readable media according to claim 2, wherein each of the one or more occurrence databases storing occurrence information includes one or more meta- model driven tables.
22. The computer readable media according to claim 2, wherein the one or more meta-model driven tables are not specific to any business process.
23. An apparatus that can be adapted to a wide variety of business applications comprising: a first database storing a plurality of definitional parameters; one or more second databases, each of said one or more second databases including a plurality of generic tables; a processor coupled to said first database and said one or more second databases; and a computer readable media having encoded thereon an adaptive application including a plurality of different types of programming modules, each of said programming modules being highly parameterized and to receive a plurality of parameters from a first database that govern a behavior of said each programming module to capture information, display information and store said captured information in said one or more second databases, whereby each of said plurality of modules is adaptable to varying business requirements through said plurality of parameters stored in the first database, and said adaptive software application is assemblable through repeated copying of various combinations of said plurality of several different types of programming modules.
24. The apparatus according to claim 23, wherein each of the plurality of several different types of programming modules includes: an interface component to present information to and accept information from one or more outside sources; a processing logic component to manipulate and evaluate information based on parameters received from the first database; and a data persistence logic component to retrieve, add, update, and delete data targeting said one or more second databases.
25. The apparatus according to claim 24, wherein said processing logic component performs comparisons and data dependency decisions.
26. The apparatus according to claim 24, wherein said one or more outside sources includes a user.
27. The apparatus according to claim 24, wherein said one or more outside sources includes a user interacting with the interface component via a World Wide Web page.
28. The apparatus according to claim 24, wherein said one or more outside sources includes an application programming interface.
29. The apparatus according to claim 24, wherein said interface component is parameter driven.
30. The apparatus according to claim 24, wherein said processing logic component is parameter driven.
31. The apparatus according to claim 24, wherein said data persistence component is parameter driven.
32. The apparatus according to claim 24, wherein said interface component receives one or more parameters from the first database.
33. The apparatus according to claim 24, wherein said processing logic component receives one or more parameters from the first database.
34. The apparatus according to claim 24, wherein said data persistence component receives one or more parameters from the first database.
35. The apparatus according to claim 24, wherein said interface component and said processing logic component receive one or more parameters from the first database.
36. The apparatus according to claim 24, wherein said processing logic component and said data persistence component receive one or more parameters from the first database.
37. The apparatus according to claim 24, wherein said data persistence component and said interface component receive one or more parameters from the first database.
38. The apparatus according to claim 24, wherein said data persistence component, said processing logic component and said interface component receive one or more parameters from the first database.
39. The apparatus according to claim 24, wherein each of the one or more second databases is assigned to one business process supported by a business application for which the adaptive application is being adapted.
40. The apparatus according to claim 24, wherein each of said one or more second databases includes one or more generic tables.
41. The apparatus according to claim 40, wherein the one or more generic tables are not specific to any business process.
42. The apparatus according to claim 24, wherein each of the one or more the second databases includes one or more meta-model driven tables.
43. The apparatus according to claim 24, wherein the one or more meta-model driven tables are not specific to any business process.
44. A computer readable media have encoded thereon a software application that can be adapted to varying business requirements, said software application comprising a plurality of adaptive units adapted to interact with a user and further being programmed to: utilize data from a definition database as parameters that govern operations for capturing, manipulating and storing of information; store and retrieve information in an occurrence database including metal-model based tables; and accommodate storing new data fields in the occurrence database without requiring restructuring said occurrence database.
45. A method for adapting a software application to varying business requirements comprising: providing a plurality of adaptive units adapted to interact with a user, perform data manipulation functions, and data persistence functions, said adaptive units: utilizing data from an external source as parameters that govern operations for capturing, manipulating and storing information; storing and retrieving information in an occurrence database including meta- model based tables; and accommodating storage of new data fields in the occurrence database without requiring restructuring said occurrence database.
46. A method for creating a software application comprising: creating one or more web pages for each of a plurality of previously identified user interface screens for the software application by copying a plurality of preexisting web page element templates in various combinations; assigning one or more view names to each web page element template copied; inserting the one or more view names into each copied web page element template; and using the one or more assigned view names to obtain a plurality of parameters for the web page element template from a definition database.
47. The method according to claim 46, further comprising storing in a definition database all necessary information associated with each assigned view name.
48. The method according to claim 47, wherein all necessary information includes one or more of the following: a view, an entity, an entity ancestry, a plurality of questions, a plurality of question relations, a plurality of answer options, a plurality of view items, a plurality of view item dependency lines, and a plurality of view item dependency values.
49. A method for creating software for a business application comprising: providing a database including at least a definition portion and an occurrence portion; providing a plurality of adaptive units that when arranged in various combinations create a user interface; and providing a plurality of preexisting code components, which are reusable and modular in form.
50. A method for creating software for a business comprising: storing in a definition database information about the business that is common to one or more processes in a linear flow of the business; storing in one or more meta-model based tables in each of one or more occurrence databases information related to a particular business process of the one or more processes; and controlling a behavior of one or more adaptive program units to display information, capture information and store captured information in the one or more occurrence databases using one or more parameters from information in the definition database.
51. The method according to claim 50, further comprising linking data in the one or more occurrence databases of one or more subsequent processes of the one or more processes of the business to one or more prior processes in the one or more processes to provide details in the one or more subsequent processes that are determinable by the one or more prior processes.
52. A computer readable media having encoded thereon an adaptive software application comprising: a plurality of reusable elements, each of said reusable elements being highly parameterized and to receive a plurality of parameters from an external source that governs a behavior of said each reusable element to capture information, display information and store said captured information in one or more occurrence databases, whereby each of said plurality of reusable elements is adaptable to varying business requirements through said plurality of externally provided parameters, and said adaptive software application is assemblable through repeated copying of various combinations of said plurality of reusable elements, each of the plurality of reusable elements including: an interface component to present information to and accept information from one or more outside sources; a processing logic component to manipulate and evaluate information based on received parameters; and a data persistence logic component to retrieve, add, update and delete data targeting one or more occurrence databases.
53. The computer readable media according to claim 52, wherein the plurality of reusable elements includes a list adaptive unit.
54. The computer readable media according to claim 52, wherein the plurality of reusable elements includes a detail adaptive unit.
55. The computer readable media according to claim 52, wherein the plurality of reusable elements includes an updateable list adaptive unit.
56. The computer readable media according to claim 52, wherein the plurality of reusable elements includes a dual list adaptive unit.
57. The computer readable media according to claim 52, wherein the plurality of reusable elements includes a list adaptive unit and a detail adaptive unit.
58. The computer readable media according to claim 53, wherein the list adaptive unit includes one or more of the links associated with one or more of the events that can be initiated by clicking on the link associated with said one or more events, wherein said one or more events includes one or more of the following: a load event, a view/edit event, an add event and a delete event.
59. The computer readable media according to claim 58, wherein the list adaptive unit includes one or more of the following properties: a ViewName property, a DetailTarget property, a Productld property and an Occurrence ID property.
60. The computer readable media according to claim 54, wherein the detail adaptive unit includes one or more of the links associated with one or more of the events that can be initiated by clicking on the link associated with said one or more events, wherein said one or more events includes one or more of the following: a load event, a new event, a continue event and a submit event.
61. The computer readable media according to claim 60, wherein the detail adaptive unit includes one or more of the following properties: a ViewName property, an Occurrence ID property, a Productld property and a SegmentNo property.
62. The computer readable media according to claim 56, wherein the dual-list adaptive unit includes one or more of the links associated with one or more of the events that can be initiated by clicking on the link associated with said one or more events, wherein said one or more events includes one or more of the following: a load event, a view/edit event, an "add »" event, and a "«Remove" event.
63. The computer readable media according to claim 62, wherein the dual-list adaptive unit includes one or more of the following properties: a LeftViewName property, RightViewName property, a DetailTarget property, a LinkedEntity property, a LinkedQuestion property, an Occurrence ID property and a Productld property.
64. The computer readable media according to claim 55, wherein the updateable- list adaptive unit includes one or more of the links associated with one or more of the events that can be initiated by clicking on the link associated with said one or more events, wherein said one or more events includes one or more of the following: a load event, an add row event, a delete row event, and a submit event.
65. The computer readable media according to claim 64, wherein the updateable- list adaptive unit includes one or more of the following properties: a ListViewName property, a DetailViewName property, an Occurrence ID property, and a Productld property.
66. The computer readable media according to claim 57, wherein the list adaptive unit includes one or more of the links associated with one or more of the events that can be initiated by clicking on the link associated with said one or more events, wherein said one or more events includes one or more of the following: a load event, a view/edit event, an add event and a delete event, the list adaptive unit includes one or more of the following properties: a ViewName property, a DetailTarget property, a Productld property and an Occurrence ID property, and initiating the add event in the list adaptive unit activates a new event of a detail adaptive unit using the DetailTarget property, the Productld property, and the Occurrenceld property of a parent occurrence for a list.
67. The computer readable media according to claim 59, wherein initiating the delete event of the list adaptive unit deletes the contract occurrence with the occurrencelD property and the deleted occurrence is removed from a display.
68. The computer readable media according to claim 57, wherein the list adaptive unit includes one or more of the links associated with one or more of the events that can be initiated by clicking on the link associated with said one or more events, wherein said one or more events includes one or more of the following: a load event, a view/edit event, an add event and a delete event, the list adaptive unit includes one or more of the following properties: a ViewName property, a DetailTarget property, a Productld property and an Occurrence ID property, and initiating the view/edit event in the list adaptive unit activates the load event of the detail adaptive unit using the DetailTarget property, the Productld property, and the Occurrenceld property of a selected item.
69. The computer readable media according to claim 59, wherein initiating the load event in the list adaptive unit comprises the following actions: a plurality of View attributes are retrieved using the ViewName property; a plurality of attributes of each View Item are retrieved for the ViewName property and the Productld property; for each View Item, a plurality of Question attributes are retrieved; using an Occurrenceld property as a "parent-id", a plurality of "children" Contract Occurrences are retrieved from a Contract Ancestry; a plurality of Contract Answers are retrieved for a plurality of Questions related to the View Items from each occurrence; and a plurality of answers are displayed for each Contract Occurrence in a separate line.
70. The computer readable media according to claim 61, wherein initiating the load event in the detail adaptive unit comprises the following actions: a) initializing the SegmentNo to one;
b) retrieving a plurality of View Attributes using the ViewName; c) retrieving a plurality of attributes for each View Item for the ViewName and the Productld; d) retrieving for each View Item, a plurality of View Item Dependency Lines and a plurality of View Item Dependency Values; e) performing, for each View Item related to a Question, the following:
(i) retrieving a plurality of question attributes; and (ii) performing, if the SegmentNo is equal to the a Segment of the View Item, the following:
(1) if the Productld is not zero, overriding a plurality of Question attributes using a Contract Question by Product;
(2) retrieving, if the question has a plurality of answer options and ProductID is zero, a plurality of attributes of each answer option;
(3) using the OccurrencelD retrieving the contract answer, if any, for a question; and
(4) performing, if the question has a plurality of question relations, the following:
(A) retrieving a plurality of attributes of each question relation;
(B) retrieving, for a default relation and a derive relation, a Contract Answer from a plurality of higher level contract entities using the Occurrenceld and a Contract Ancestry to determine a value of an answer;
(C) retrieving, for a link question relation, a set of possible selections using the Productld; and
(D) retrieving, for a dynamic question relation, a plurality of attributes from a Contract Question By Product Occurrence and from a Contract Answer Option by Product Occurrence; and f) displaying, after eliminating a plurality of View Items that are inapplicable because of a plurality of question dependency conditions, a remaining plurality of View Items with a Segment equal to the SegmentNo along with a plurality of answers that are not hyperlinked.
71. The computer readable media according to claim 61, wherein initiating the new event in the detail adaptive unit comprises the following actions: a) initializing the SegmentNo to one; b) retrieving a plurality of View Attributes using the ViewName; c) retrieving a plurality of attributes for each View Item for the ViewName and the Productld; d) retrieving, for each View Item, a plurality of View Item Dependency Lines and a plurality of View Item Dependency Values; e) performing, for each View Item related to a Question, the following:
(i) retrieving a plurality of question attributes; and (ii) performing, if the SegmentNo is equal to a Segment of the View Item, the following:
(1) if the Productld is not zero, overriding a plurality of Question attributes using a Contract Question by Product;
(2) retrieving, if the question has a plurality of answer options and ProductID is zero, a plurality of attributes of each answer option;
(3) performing, if the question has a plurality of question relations, the following:
(A) retrieving a plurality of attributes of each question relation;
(B) retrieving, for a default relation and a derive relation, a Contract Answer from a plurality of higher level contract entities using the Occurrenceld and a Contract Ancestry to determine a value of an answer;
(C) retrieving, for a link question relation, a set of possible selections using the Productld; and (D) retrieving, for a dynamic question relation, a plurality of attributes from a Contract Question By Product Occurrence and from a Contract Answer Option by Product Occurrence; and f) displaying, after eliminating a plurality of View Items that are inapplicable because of a plurality of question dependency conditions, a remaining plurality of View Items with a Segment equal to the SegmentNo along with a plurality of answers that are not hyperlinked.
72. The computer readable media according to claim 61, wherein initiating the continue event in the detail adaptive unit comprises the following actions: a) increasing the SegmentNo by one; b) performing, for each View Item with a Segment equal to the SegmentNo that is related to a Question, the following:
(i) if the Productld is not zero, overriding a plurality of Question attributes using a Contract Question by Product;
(ii) retrieving, if the question has a plurality of answer options and ProductID is zero, a plurality of attributes of each answer option;
(iii) retrieving, using the occurencelD, a contract answer, if any, for a question;
(iv) performing, if the question has a plurality of question relations, the following:
(1) retrieving a plurality of attributes of each question relation;
(2) retrieving, for a default relation and a derive relation, a Contract Answer from a plurality of higher level contract entities using the Occurrenceld and a Contract Ancestry to determine a value of an answer;
(3) retrieving, for a link question relation, a set of possible selections using the Productld; and
(D) retrieving, for a dynamic question relation, a plurality of attributes from a Contract Question By Product Occurrence and from a Contract Answer Option by Product Occurrence; f) displaying the plurality of the View Items with a Segment less than SegmentNo along with a plurality of hyperlinked answers; and g) displaying, after eliminating a plurality of View Items that are inapplicable because of a plurality of question dependency conditions, a remaining plurality of View Items with a Segment equal to the SegmentNo along with a plurality of answers that are not hyperlinked.
73. The computer readable media according to claim 61, wherein initiating the submit event in the detail adaptive unit comprises the following actions: adding, if a new Contract Occurrence has been introduced, the new Contract Occurrence to a database; adding each new Contract Answer to the database; updating each Contract Answer that has been modified in the database; and deleting one or more questions that have been deleted or made inapplicable by one or more dependency conditions from the database.
74. The computer readable media according to claim 63, wherein initiating the load event in the dual-list adaptive unit comprises the following actions: a) performing, for a list on a right side and for selected items, the following:
(i) retrieving a plurality of View attributes using a RightViewName;
(ii) retrieving a plurality of attributes of each View Item for the RightViewName and the Productld;
(iii) retrieving, for each View Item, a plurality of Question attributes;
(iv) using the Occurrenceld as a parent-id, a plurality of children Contract Occurrences are retrieved from a Contract Ancestry;
(v) obtaining a plurality of Contract Answers for the plurality of Questions related to the plurality of View Items from each occurrence; and
(vi) displaying the plurality of answers for each Contract Occurrence in a separate line; and b) performing, for a list on a left side and for selected items, the following:
(i) retrieving a plurality of View attributes using a LeftViewName; (ii) retrieving a plurality of attributes of each View Item for the LeftViewName;
(iii) retrieving, for each View Item, a plurality of Question attributes; (iv) finding all Product Occurrences that contain a Product Answer for the question identified by Targe -Entity and TargetQuestion;
(v) obtaining a plurality of Contract Answers for the plurality of Questions related to the plurality of View Items from each occurrence;
(vi) displaying a plurality of answers for each Product Occurrence in a separate line excluding a plurality of occurrences that are already selected.
75. The computer readable media according to claim 52, wherein the plurality of reusable elements includes a dual-list adaptive unit and a detail adaptive unit.
76. The computer readable media according to claim 75, wherein the dual-list adaptive unit includes one or more of the links associated with one or more of the events that can be initiated by clicking on the link associated with said one or more events, wherein said one or more events includes one or more of the following: a load event, a view/edit event, an "add »" event, and a "«Remove" event.
77. The computer readable media according to claim 76, wherein the dual-list adaptive unit includes one or more of the following properties: a LeftViewName property, RightViewName property, a DetailTarget property, a LinkedEntity property, a LinkedQuestion property, an Occurrence ID property and a Productld property.
78. The computer readable media according to claim 76, wherein the detail adaptive unit includes one or more of the links associated with one or more of the events that can be initiated by clicking on the link associated with said one or more events, wherein said one or more events includes one or more of the following: a load event, a new event, a continue event and a submit event.
79. The computer readable media according to claim 78, wherein the detail adaptive unit includes one or more of the following properties: a ViewName property, an Occurrence ID property, a Productld property and a SegmentNo property.
80. The computer readable media according to claim 79, wherein initiating the view/edit event in the dual-list adaptive unit activates the load event of the detail Adaptive Unit using the DetailTarget property, the Productld property, and the Occurrenceld property of a selected item.
81. The computer readable media according to claim 79, wherein initiating the "add»" event in the dual-list adaptive unit activates the new event of the detail Adaptive Unit using the DetailTarget property, the Productld property, and the Occurrenceld property of a parent occurrence for a list.
82. The computer readable media according to claim 63, wherein initiating the "«remove" event of the dual-list adaptive unit deletes the contract occurrence with the occurrencelD property, the deleted occurrence is removed from a display on the right list and a corresponding occurrence on a left list is displayed.
83. The computer readable media according to claim 65, wherein initiating the load event in the updateable adaptive unit comprises the following actions: a) retrieving a plurality of View Attributes using a ListViewName; b) retrieving a plurality of attributes for each View Item for the ListViewName and a Productld; c) retrieving a plurality of attributes for each View Item for a DetailViewName and the productID; d) performing, for each View Item for the DetailViewName and the Productld, the following:
(i) retrieving a plurality of question attributes;
(ii) overriding, the productld is not zero, the plurality of question attributes using a contract by question by product; (iii) retrieving, if the question has a plurality of answer options and ProductID is zero, a plurality of attributes of each answer option;
(iv) performing, if the question has a plurality of question relations, the following:
(1) retrieving a plurality of attributes of each question relation;
(2) retrieving, for a default relation and a derive relation, a Contract Answer from a plurality of higher level contract entities using the Occurrenceld and a Contract Ancestry to determine a value of an answer;
(3) retrieving, for a link question relation, a set of possible selections using the Productld; and
(4) retrieving, for a dynamic question relation, a plurality of attributes from a Contract Question By Product Occurrence and from a Contract Answer Option by Product Occurrence; f) using an Occurrenceld as a parent-id, retrieving a plurality of children Contract Occurrences from a Contract Ancestry; g) obtaining a plurality of Contract Answers for a plurality of Questions related to the DetailViewName View Items from each occurrence; and h) displaying a plurality of answers for each contract occurrence in a separate line.
84. The computer readable media according to claim 65, wherein initiating the add row event of the updateable list adaptive unit adds a blank new row to an updateable list filling in a plurality of default values, if any with no database changes.
85. The computer readable media according to claim 65, wherein initiating the delete row event of the updateable list adaptive unit deletes the indicated row from an updateable list with no database changes.
86. The computer readable media according to claim 65, wherein initiating the submit event in the updateable list adaptive unit comprises the following actions: adding each new Contract Occurrence, if any, to a database; adding each new Contract Answer, if any, to the database; updating each Contract Answer that has been modified in the database; and deleting one or more questions that have been deleted or made inapplicable by one or more dependency conditions from the database.
87. A computer readable media having encoded thereon an adaptive programming module that is highly parameterized receives a plurality of parameters from an external source that governs a behavior of said programming module to capture information, display information and store said captured information in an occurrence database, whereby said module is adaptable to varying business requirements through said plurality of externally provided parameters, wherein said adaptive programming module includes: an interface component to present information to and accept information from an outside source; a processing logic component to manipulate and evaluate information based on received parameters; and a data persistence logic component to retrieve, add, update and delete data targeting the occurrence database.
88. The computer readable media according to claim 87, wherein said processing logic component performs comparisons and data dependency decisions.
89. The computer readable media according to claim 87, wherein said outside source includes a user interface.
90. The computer readable media according to claim 87, wherein said outside source includes a World Wide Web page.
91. The computer readable media according to claim 87, wherein said outside source includes an application programming interface.
92. The computer readable media according to claim 87, wherein said interface component receives one or more parameters from a definitional database storing information to control behavior of the interface component to display information and capture information.
93. The computer readable media according to claim 87, wherein said processing logic component receives one or more parameters from a definitional database storing information controlling behavior of the processing logic component to manipulate data.
94. The computer readable media according to claim 87, wherein said data persistence component receives one or more parameters from a definitional database storing information controlling behavior of the data persistence component to store and edit information in a meta-model based database.
95. The computer readable media according to claim 87, wherein said interface component receives one or more parameters from a definitional database storing information to control behavior of the interface component to display information and capture information, and said data processing component receives one or more parameters from the definitional database to control behavior of the processing logic component to manipulate data.
96. The computer readable media according to claim 87, wherein said processing logic component receives one or more parameters from a definitional database to control behavior of the processing logic component to manipulate data, and said data persistence component receives one or more parameters from the definitional database storing information controlling behavior of the data persistence component to store and edit information in a meta-model based database.
97. The computer readable media according to claim 87, wherein said data persistence component receives one or more parameters from a definitional database storing information controlling behavior of the data persistence component to store and edit information in a meta-model based database, and said interface component receives one or more parameters from the definitional database storing information to control behavior of the interface component to display information and capture information.
98. The computer readable media according to claim 87, wherein said data persistence component receives one or more parameters from a definitional database storing information controlling behavior of the data persistence component to store and edit information in a meta-model based database, said interface component receives one or more parameters from the definitional database storing information to control behavior of the interface component to display information and capture information, and said processing logic component receives one or more parameters from the definitional database to control behavior of the processing logic component to manipulate data.
99. The computer readable media according to claim 87, wherein the adaptive programming module comprises a list adaptive unit.
100. The computer readable media according to claim 87, wherein the adaptive programming module comprises a detail adaptive unit.
101. The computer readable media according to claim 87, wherein the adaptive programming module comprises an updateable list adaptive unit.
102. The computer readable media according to claim 87, wherein the adaptive programming module comprises a dual list adaptive unit.
PCT/US2003/019167 2002-06-17 2003-06-17 Method and apparatus for creating an adaptive application WO2003107578A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2003248715A AU2003248715A1 (en) 2002-06-17 2003-06-17 Method and apparatus for creating an adaptive application

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/173,145 US6895409B2 (en) 2002-06-17 2002-06-17 Method and apparatus for creating an adaptive application
US10/173,145 2002-06-17

Publications (3)

Publication Number Publication Date
WO2003107578A2 true WO2003107578A2 (en) 2003-12-24
WO2003107578A9 WO2003107578A9 (en) 2004-05-06
WO2003107578A3 WO2003107578A3 (en) 2004-06-24

Family

ID=29733258

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2003/019167 WO2003107578A2 (en) 2002-06-17 2003-06-17 Method and apparatus for creating an adaptive application

Country Status (3)

Country Link
US (3) US6895409B2 (en)
AU (1) AU2003248715A1 (en)
WO (1) WO2003107578A2 (en)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0825506B1 (en) 1996-08-20 2013-03-06 Invensys Systems, Inc. Methods and apparatus for remote process control
US7089530B1 (en) 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
WO2000070531A2 (en) 1999-05-17 2000-11-23 The Foxboro Company Methods and apparatus for control configuration
US7096465B1 (en) * 1999-05-17 2006-08-22 Invensys Systems, Inc. Process control configuration system with parameterized objects
US6788980B1 (en) 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US20040176968A1 (en) * 2003-03-07 2004-09-09 Microsoft Corporation Systems and methods for dynamically configuring business processes
US20040230600A1 (en) * 2003-05-01 2004-11-18 Lockheed Martin Corporation Method and apparatus for rapidly prototyping status display
US7114146B2 (en) * 2003-05-02 2006-09-26 International Business Machines Corporation System and method of dynamic service composition for business process outsourcing
JP4049037B2 (en) * 2003-06-30 2008-02-20 ソニー株式会社 Display device and driving method thereof
US20080086716A1 (en) * 2003-09-04 2008-04-10 Lockheed Martin Corporation Method and apparatus for information display with intermediate datasource access
US7890309B2 (en) 2003-10-10 2011-02-15 International Business Machines Corporation System and method for analyzing a business process integration and management (BPIM) solution
US20050080640A1 (en) * 2003-10-10 2005-04-14 International Business Machines Corporation System and method for generating a business process integration and management (BPIM) solution
US7634002B2 (en) * 2003-11-26 2009-12-15 Hewlett-Packard Development Company, L.P. Method and apparatus for updating sequences in a bitstream
US8689185B1 (en) * 2004-01-27 2014-04-01 United Services Automobile Association (Usaa) System and method for processing electronic data
US20050234827A1 (en) * 2004-04-14 2005-10-20 Rudowsky Michael J System for processing executable applications to be suitable for distribution
US20050268280A1 (en) * 2004-05-26 2005-12-01 Ulf Fildebrandt Encapsulating changes to a software application
CA2490645A1 (en) * 2004-12-16 2006-06-16 Ibm Canada Limited - Ibm Canada Limitee Data-centric distributed computing
US7526751B2 (en) * 2005-01-28 2009-04-28 Alcatel-Lucent Usa Inc. Macroscopic model for large scale software system and its behavior
US7761848B1 (en) 2005-03-15 2010-07-20 Open Invention Network, Llc Code generator tool for building software applications with reusable components
US20070094306A1 (en) * 2005-10-26 2007-04-26 Kyriazakos Nikolaos G Method and model for enterprise system development and execution
US8396731B2 (en) * 2005-12-30 2013-03-12 Sap Ag Architectural design for service procurement application software
US8380553B2 (en) * 2005-12-30 2013-02-19 Sap Ag Architectural design for plan-driven procurement application software
US8316344B2 (en) * 2005-12-30 2012-11-20 Sap Ag Software model deployment units
US8522194B2 (en) 2005-12-30 2013-08-27 Sap Ag Software modeling
US8402426B2 (en) 2005-12-30 2013-03-19 Sap Ag Architectural design for make to stock application software
US8448137B2 (en) * 2005-12-30 2013-05-21 Sap Ag Software model integration scenarios
US7885831B2 (en) 2006-01-05 2011-02-08 Guidewire Software, Inc. Insurance product model-based apparatus and method
DE202006000135U1 (en) * 2006-01-05 2006-04-20 Framework Systems Gmbh Device for generating program code of a user program
US8726267B2 (en) * 2006-03-24 2014-05-13 Red Hat, Inc. Sharing software certification and process metadata
US8442850B2 (en) * 2006-03-30 2013-05-14 Sap Ag Providing accounting software application as enterprise services
US20070244910A1 (en) * 2006-04-12 2007-10-18 Microsoft Corporation Business process meta-model
US8312416B2 (en) * 2006-04-13 2012-11-13 Sap Ag Software model business process variant types
CN101102207A (en) * 2006-07-05 2008-01-09 李树德 Development platform based on intelligent agent
US20080256495A1 (en) * 2007-04-10 2008-10-16 Microsoft Corporation Personalized user interface
WO2008134627A2 (en) 2007-04-27 2008-11-06 Boomi, Inc. System and method for automated on-demand creation of a customized software application
US8429645B2 (en) * 2007-08-14 2013-04-23 International Business Machines Corporation Method for optimizing migration of software applications to address needs
US9785326B2 (en) * 2007-08-22 2017-10-10 Proscape Technologies, Inc. Defining and tracking an interactive user interface
CA2607537A1 (en) * 2007-10-22 2009-04-22 Ibm Canada Limited - Ibm Canada Limitee Software engineering system and method for self-adaptive dynamic software components
US8447657B2 (en) * 2007-12-31 2013-05-21 Sap Ag Architectural design for service procurement application software
US8381171B2 (en) * 2008-01-23 2013-02-19 International Business Machines Corporation Customized networked-based commerce system packages
US20090217146A1 (en) * 2008-02-22 2009-08-27 Eugene Goldfarb Page navigation generation system for a customizable application
US20090217185A1 (en) * 2008-02-22 2009-08-27 Eugene Goldfarb Container generation system for a customizable application
US8515786B2 (en) * 2008-02-22 2013-08-20 Accenture Global Services Gmbh Rule generation system adapted for an insurance claim processing system
US8478769B2 (en) 2008-02-22 2013-07-02 Accenture Global Services Limited Conversational question generation system adapted for an insurance claim processing system
JP5123690B2 (en) * 2008-02-27 2013-01-23 キヤノン株式会社 Screen data processing apparatus, screen data processing method, and computer program
US20090248453A1 (en) * 2008-03-28 2009-10-01 Guidewire Software, Inc. Method and apparatus to facilitate determining insurance policy element availability
EP2304536A4 (en) 2008-06-20 2012-08-15 Invensys Sys Inc Systems and methods for immersive interaction with actual and/or simulated facilities for process, environmental and industrial control
DE112009001585T5 (en) * 2008-07-01 2012-02-23 Basf Plant Science Gmbh Promoters of Brassica napus for seed-specific gene expression
US8401928B2 (en) * 2008-09-18 2013-03-19 Sap Ag Providing supplier relationship management software application as enterprise services
US8595103B1 (en) 2008-09-30 2013-11-26 Accenture Global Services Limited Deployment and release component system
US8788295B1 (en) * 2008-09-30 2014-07-22 Accenture Global Services Limited Reusable product system
US8719119B1 (en) 2008-09-30 2014-05-06 Accenture Global Services Limited Post deployment query system
US8401908B2 (en) * 2008-12-03 2013-03-19 Sap Ag Architectural design for make-to-specification application software
US8195692B2 (en) * 2008-12-11 2012-06-05 International Business Machines Corporation System and method for managing semantic and syntactic metadata
US8671035B2 (en) 2008-12-11 2014-03-11 Sap Ag Providing payroll software application as enterprise services
US20100153239A1 (en) * 2008-12-11 2010-06-17 Sap Ag Providing accounting software application as enterprise services
US8769507B2 (en) 2009-05-14 2014-07-01 International Business Machines Corporation Dynamic optimization of mobile services
US8463964B2 (en) 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
US8127060B2 (en) 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
US20120137278A1 (en) 2010-11-30 2012-05-31 International Business Machines Corporation Generating a customized set of tasks for migration of a deployed software solution
US9710282B2 (en) 2011-12-21 2017-07-18 Dell Products, Lp System to automate development of system integration application programs and method therefor
US8943076B2 (en) 2012-02-06 2015-01-27 Dell Products, Lp System to automate mapping of variables between business process applications and method therefor
US8805716B2 (en) 2012-03-19 2014-08-12 Dell Products, Lp Dashboard system and method for identifying and monitoring process errors and throughput of integration software
US10789219B1 (en) 2012-03-28 2020-09-29 Guidewire Software, Inc. Insurance policy processing using questions sets
US8782103B2 (en) 2012-04-13 2014-07-15 Dell Products, Lp Monitoring system for optimizing integrated business processes to work flow
US9606995B2 (en) 2012-04-30 2017-03-28 Dell Products, Lp Cloud based master data management system with remote data store and method therefor
US9015106B2 (en) 2012-04-30 2015-04-21 Dell Products, Lp Cloud based master data management system and method therefor
US9158782B2 (en) 2012-04-30 2015-10-13 Dell Products, Lp Cloud based master data management system with configuration advisor and method therefore
US8589207B1 (en) 2012-05-15 2013-11-19 Dell Products, Lp System and method for determining and visually predicting at-risk integrated processes based on age and activity
US9069898B2 (en) 2012-05-31 2015-06-30 Dell Products, Lp System for providing regression testing of an integrated process development system and method therefor
US9092244B2 (en) 2012-06-07 2015-07-28 Dell Products, Lp System for developing custom data transformations for system integration application programs
US9183074B2 (en) 2013-06-21 2015-11-10 Dell Products, Lp Integration process management console with error resolution interface
US9548894B2 (en) * 2014-06-06 2017-01-17 Yokogawa Electric Corporation Proximity based cross-screen experience App framework for use between an industrial automation console server and smart mobile devices
US10042680B2 (en) * 2014-07-17 2018-08-07 Blackberry Limited Cross-domain data sharing with permission control
CN104461878A (en) * 2014-11-28 2015-03-25 中国航空无线电电子研究所 Software quality evaluation method based on user-defined models
WO2016154598A1 (en) * 2015-03-25 2016-09-29 Carnegie Mellon University System and method for adaptive, rapidly deployable, human-intelligent sensor feeds
US10416842B1 (en) * 2015-09-22 2019-09-17 The Mathworks, Inc. Clarity in model-based design
US10498858B2 (en) 2016-12-14 2019-12-03 Dell Products, Lp System and method for automated on-demand creation of and execution of a customized data integration software application
US10445080B2 (en) * 2017-01-06 2019-10-15 Wipro Limited Methods for adaptive placement of applications and devices thereof
US10788972B2 (en) 2017-10-02 2020-09-29 Fisher-Rosemount Systems, Inc. Systems and methods for automatically populating a display area with historized process parameters
US10248385B1 (en) 2017-11-30 2019-04-02 International Business Machines Corporation Extracting mobile application workflow from design files
US11386342B2 (en) * 2018-04-20 2022-07-12 H2O.Ai Inc. Model interpretation
US11567787B2 (en) * 2018-09-29 2023-01-31 Or-Ment Llc User interface collaboration advisor
US10884713B2 (en) 2019-02-25 2021-01-05 International Business Machines Corporation Transformations of a user-interface modality of an application
TWI714480B (en) * 2020-03-19 2020-12-21 索爾智慧機械有限公司 Data display method of pull cap installation tool test instrument

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812849A (en) * 1996-12-18 1998-09-22 Chrysler Corporation Software redevelopment system
US5960200A (en) * 1996-05-03 1999-09-28 I-Cube System to transition an enterprise to a distributed infrastructure
US6061394A (en) * 1996-11-28 2000-05-09 Anritsu Corporation Digital communication system modulated signal generation apparatus incorporating fading simulator
US6314555B1 (en) * 1997-07-25 2001-11-06 British Telecommunications Public Limited Company Software system generation
US6513152B1 (en) * 1997-07-23 2003-01-28 International Business Machines Corporation Object oriented framework mechanism for customization of object oriented frameworks

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5097533A (en) * 1988-11-29 1992-03-17 International Business Machines Corporation System and method for interfacing computer application programs written in different languages to a software system
US5734883A (en) * 1995-04-27 1998-03-31 Michael Umen & Co., Inc. Drug document production system
CA2268571C (en) * 1997-02-07 2010-04-06 General Internet, Inc. Collaborative internet data mining system
US6684369B1 (en) * 1997-06-19 2004-01-27 International Business Machines, Corporation Web site creator using templates
US6016394A (en) 1997-09-17 2000-01-18 Tenfold Corporation Method and system for database application software creation requiring minimal programming
US6167564A (en) * 1998-09-17 2000-12-26 Unisys Corp. Software system development framework
US6029174A (en) * 1998-10-31 2000-02-22 M/A/R/C Inc. Apparatus and system for an adaptive data management architecture
US6542899B1 (en) * 1999-02-19 2003-04-01 Sun Microsystems, Inc. Method and system for expressing information from an object-oriented database in a grammatical form
US7353494B2 (en) * 2000-10-26 2008-04-01 Microsoft Corporation System and method supporting configurable object definitions
US20020111840A1 (en) * 2001-02-15 2002-08-15 Bagdonas Edward P. Method and apparatus creation and performance of service engagement modeling
US7099885B2 (en) * 2001-05-25 2006-08-29 Unicorn Solutions Method and system for collaborative ontology modeling
US20060064666A1 (en) * 2001-05-25 2006-03-23 Amaru Ruth M Business rules for configurable metamodels and enterprise impact analysis
US20030187743A1 (en) * 2002-02-07 2003-10-02 International Business Machines Corp. Method and system for process brokering and content integration for collaborative business process management

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5960200A (en) * 1996-05-03 1999-09-28 I-Cube System to transition an enterprise to a distributed infrastructure
US6061394A (en) * 1996-11-28 2000-05-09 Anritsu Corporation Digital communication system modulated signal generation apparatus incorporating fading simulator
US5812849A (en) * 1996-12-18 1998-09-22 Chrysler Corporation Software redevelopment system
US6513152B1 (en) * 1997-07-23 2003-01-28 International Business Machines Corporation Object oriented framework mechanism for customization of object oriented frameworks
US6314555B1 (en) * 1997-07-25 2001-11-06 British Telecommunications Public Limited Company Software system generation

Also Published As

Publication number Publication date
WO2003107578A3 (en) 2004-06-24
WO2003107578A9 (en) 2004-05-06
US20030233367A1 (en) 2003-12-18
US20040210557A1 (en) 2004-10-21
US7191188B2 (en) 2007-03-13
US20050022160A1 (en) 2005-01-27
AU2003248715A1 (en) 2003-12-31
US6895409B2 (en) 2005-05-17
AU2003248715A8 (en) 2003-12-31

Similar Documents

Publication Publication Date Title
WO2003107578A2 (en) Method and apparatus for creating an adaptive application
US7277875B2 (en) User selectable approach for generating modifiable rules
US7613671B2 (en) Approach for re-using business rules
US8645420B2 (en) Methodology framework and delivery vehicle
US20070094306A1 (en) Method and model for enterprise system development and execution
US8706532B2 (en) Insurance claim processing using containerized processing logic
JPH1173321A (en) Method for developing framework and software system
US10192260B2 (en) Tool for generating containerized processing logic for use in insurance claim processing
Gruhn Business process modeling and workflow management
Gould Systems analysis and design
Finkelstein Information engineering methodology
Primich et al. The integrated library system: from innovation to relegation to innovation again
AU2013200094B2 (en) Methodology framework and delivery vehicle
Patterson et al. Modernizing and Improving the Maintainability of RPG Applications Using X-Analysis Version 5.6
EP1130543A2 (en) Knowledge-based comparative information dissemination system
AU2014271283B2 (en) Methodology framework and delivery vehicle
CA2654731C (en) Insurance claim processing using containerized processing logic
Kristiansen et al. Use of tailored process models to support ERP end-users
Damij Library of Congress Cataloging-in-Publieation Data Damij, Talib. Tabular applieation development for information systems: an objeet-oriented methodology
Noguchi The development of an integrated information system for the design/construction industry
Morton et al. An Assessment of the Potential Implementation of Object-Oriented Technology in the Department of Defense.
Kirtland FORMAL INFORMATION ACTIVITIES AUTOMATED SYSTEMS ARMS ANALYSIS RECORDS SYSTEM RECORDS USER
Boudewijns et al. Design of an event handling
Bui et al. Data Management: Implementation and Lessons Learned from the Department of the Army Data Management Program
Phillips A procedure for evaluation and selection of computer-aided software engineering (CASE) tools for analysis and design

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
COP Corrected version of pamphlet

Free format text: PAGE 32, DESCRIPTION, ADDED

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP