Method and apparatus for creating an adaptive application
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.
Latest Patents:
This application is a divisional application and claims the benefit of priority of copending U.S. patent application Ser. No. 10/173,145, filed Jun. 17, 2002, entitled “Method and Apparatus For Creating An Adaptive Application,” which is incorporated herein by reference. This application is also related to co-pending U.S. patent application Ser. No. ______ (attorney docket number 1013/1 D2), also entitled “Method and Apparatus For Creating An Adaptive Application,” which is filed on even date herewith and incorporated by reference herein.
FIELD OF THE INVENTIONThe 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 NOTICEA 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.
BACKGROUNDTo 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-à-vis the length of the business cycle, this almost always leads to software systems that are outdated the moment they are completed.
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.
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.
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.
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.
One attempted solution to the problem has been described in U.S. Pat. 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.
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.
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 INVENTIONThe 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.
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.
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.
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.
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.
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.
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.
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.
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.
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
FIGS. 8A-C depict the process outline for the Load event of the Detail Adaptive Unit according to another aspect of the present invention.
FIGS. 9A-C depict the process outline for the New event of the Detail Adaptive Unit according to another aspect of the present invention.
FIGS. 10A-B depict the process outline for the Continue event of the Detail Adaptive Unit according to another aspect of the present invention.
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.
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.
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.
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.
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.
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
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.
Turning to
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.
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.
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.
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.
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
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.
The Product Definition Application is then used to enter the information to describe each insurance product (106).
Now the process moves to
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).
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.
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.
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.
Next, all the Adaptive Units are assembled into the “Policy Writing” application (element 115).
Then, the Policy Writing Application is used to write policies (element 116).
Thus, this process 110 ends (element 117).
System Components
The embodiments of the present invention include several elements:
Adaptive Units, Definition parameters, and one or more Occurrence Databases.
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.
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
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.
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 21f, 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 21f, as well as to the Question Relation table 21g and the Answer Option table 21h.
J Thus, in
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 21d.
Definition Database
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.
The Entity Table specifies details of each entity defined in the logical model.
For example, PRODUCT, PRODUCT COVERAGE, POLICY, POLICY OVERAGE 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 POLICY & POLICY LOCATION in the insurance business.
The Question Table specifies each “Question” associated with an Entity.
The View Table normally corresponds to one Adaptive Unit. Sometimes ore 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.”
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 Questions.
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.
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 <, >, <=, >=, <>, =. The operations can be grouped by appropriate parentheses. For example a valid expression is ((Coverage=C1 or C2 or C3) AND (Vehicle Type=T1 or T2 or T3)).
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 C1, C2 and C3). Each value may be a constant or another Question (specified here as the Secondary Question).
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.
The Contract (BP2) Question by Product (BP2) Occurrence Table specifies the overriding values for presentation characteristics of a Question based on Product (BP1) Occurrence.
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.
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.
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).
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.
User Interface
Turning to
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
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 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
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
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
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
List Adaptive Unit
In the List Adaptive Unit, there are several possible events that can be initiated—Load (see
Turning to
Turning to
Turning to
Turning to
Detail Adaptive Unit
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, ProductId and SegmentNo.
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 ProductId 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 (
Turning to
Turning to
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 ProductId 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 (
Turning to
Turning to
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 103a-109a are performed, after which the process moves to step 110a (step 102a). In step 103a, the ProductId is evaluated and if the ProductId 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 ProductId 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 111a, 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.
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 OccurrenceId and Contract Ancestry to determine value of the answer 103b. For a “link” question relation, the set of possible selections is retrieved using the ProductId 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
Referring to
Dual List Adaptive Unit
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 ProductId.
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.
J Turning to
Turning to
Referring to
Referring to
Referring to
Updateable List Adaptive Unit
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 ProductId.
Referring to FIGS. 111-K, shown therein is the process 110i that is initiated upon clicking on the Load link of the Updateable List Adaptive Unit. In step 111i, the View Attributes are retrieved using the ListViewName. The attributes for each View Item for the ListView Name and ProductId are then retrieved 112i. Next, for each View Item, the attributes are retrieved for the DetailViewName and ProductId 113i. For each View Item from the DetailViewName, steps 115i-116i, and 111j-117j are performed, after which the process moves to step 118j. In step 115i, the question attributes are retrieved. In step 1116i, the process moves to
Turning to
Turning to
Referring to
Referring to
Referring to
Question Relations
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., PolicyWriter) 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.
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.
The following table lists the Question Relation types.
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).
The following QUESTION SOURCE values are of interest: Linked (L), Derived (D), and Defaulted (F).
Referring to
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)
Turning to
Turning to
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.
Turning to
Target Question is the Policy Limit (element 293). One Question Relation of type V is needed.
Turning to
Turning to
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.
Turning to
Turning to
Variable Properties
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.
Turning to
Summary
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
Claims
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.
Type: Application
Filed: Apr 30, 2004
Publication Date: Jan 27, 2005
Applicant:
Inventors: Tamer Uluakar (Plainsboro, NJ), John Pettit (Westfield, NJ), Lutfu Batakci (Middletown, PA), Bulent Kivanc (Bethlehem, PA), Govindaraj Kadambi (Belle Mead, NJ), Christopher Merkel (Bethlehem, PA)
Application Number: 10/837,394