System and method for a logical-model based application understanding and transformation
Abstract
Disclosed is a method of and a system for establishing a logical-model based understanding of a legacy application. The method comprises the steps of providing a physical data model of the legacy application, said physical data model having a plurality of physical elements; establishing a logical data model for the legacy application, said logical data model having a plurality of logical model elements; and establishing links between said logical model elements and said physical elements. One of said physical or logical elements is selected, and said links are used to identify all of the physical or logical elements that are linked to said selected one of said elements. The preferred system may include a component for browsing and navigating the physical data model, logical data model, or the links between them, a component to answer queries about the application expressed using the logical data model, and a component to create a relational data model to support the migration of data stored in legacy databases (including flat files) to relational databases.
Claims
exact text as granted — not AI-modified1 . A method for inferring a classification of the input data to a program or the data stored in a set of memory locations at a certain program point, where each class of data is described by a predicate and is known as a predicate class, by analyzing how the program uses the said input data.
2 . The method of claim 1 , farther comprising a step which, given the said program, an input-point I or a set of memory locations M at a program-point J, and a predicate class C infers one or more dataflow facts that indicate that certain parts of the input data obtained at the said input point I, or the data stored in the said set of memory locations M at the said program point J, may flow to certain other parts of the program when the said data belongs to the said predicate class C.
3 . The method of claim 1 , further comprising a step which, given the said program, infers a logical model comprised of one or more model elements, where each model element describes one or more features of either certain parts of the said input data obtained from said input point I in the program and belonging to a certain predicate class C, or certain parts of data stored in said set of memory locations M at said program point J in the program and belonging to a certain predicate class C, with the said features being inferred by an analysis of how the said parts of input data are actually used at the various program contexts that they flow to.
4 . The method of claim 3 , where the said features described by the model elements include a description of the structure of the said data that reveals what parts of the said data is handled as an indivisible unit of datum by the program.
5 . The method of claim 3 , where the said features in the model element include a set of primitive operations that may be applied to the said data.
6 . The method of claim 3 , further comprising a step that creates links between each model element and the declared program elements, such as program variables, that store the said parts of input data at said program contexts.
7 . The method of claim 6 , further comprising a step which transforms a query over the said logical model of the program into one or more queries over the program by replacing logical model elements that occur in the query by program elements that the said logical model elements are linked to.
8 . The method of claim 6 , further comprising a step which creates a logical data model of data that exists in a data store (such as a flat file, for example) by analyzing the code in programs that read data from or write data to this data store.
9 . The method of claim 6 , further comprising a step which creates a relational database schema for data that exists in a data store (such as a flat file, for example) by analyzing the code in programs that read data from or write data to this data store.
10 . An interactive system for creating/editing a logical model of a program comprising:
(a) means for the user to interactively create or change a link between one or more model elements and one or more program elements, and (b) means for automatically creating or changing links between model elements and program elements by analyzing how the program uses data.
11 . The system of claim 10 , further comprising means for transforming a query over the said logical model of the program into one or more queries over the program by replacing logical model elements that occur in the query by program elements that the said logical model elements are linked to.
12 . The system of claim 10 , further comprising means for creating a logical data model of data that exists in a data store (such as a flat file, for example) by analyzing the code in programs that read data from or write data to this data store.
13 . The system of claim 10 , further comprising means for creating a relational database schema for data that exists in a data store (such as a flat file, for example) by analyzing the code in programs that read data from or write data to this data store.
14 . A method which, given a logical model of a program where each model element describes one or more features of either certain parts of the input data obtained from a certain input point I in the program, or certain parts of data stored in a certain set of memory locations at a certain program point J, with links between one or more model elements and one or more program elements, comprises any of the following steps:
(a) presenting one or more of the model elements as candidate services in an service-oriented architecture (SOA) implementation; (b) generating for one or more model elements, a service interface declaration based on the characteristic features of the model element; and (c) generating for one or more model elements, an implementation of a service for the model element by partially evaluating the existing program with respect to a predicate that characterizes the corresponding model element.
15 . A method according to claim 1 , for establishing a logical-model based understanding of a legacy application, further comprising the steps of:
providing a physical data model of the legacy application, said physical data model having a plurality of physical elements; establishing a logical data model for the legacy application, said logical data model having a plurality of logical model elements; establishing links between said logical model elements and said physical elements; and selecting one of said physical or logical elements, and using said links to identify all of the physical or logical elements that are linked to said selected one of said elements.
16 . A method according to claim 15 , wherein:
the step of establishing the logical data model includes the steps of: searching through the legacy application; and identifying selected ones of the physical elements of the legacy application as logical elements for the logical data model; and the step of establishing links includes the steps of: a user adding one of the links between the physical elements and the logical elements; and when said user adds said one of the links, using a software tool to identify additional candidate links between the physical elements and the logical elements.
17 . A system according to claim 10 for establishing a logical-model based understanding of a legacy application, further comprising:
means for providing a physical data model of the legacy application, said physical data model having a plurality of physical elements; means for establishing a logical data model for the legacy application, said logical data model having a plurality of logical model elements; means for establishing a plurality of links between said logical model elements and said physical elements; and means for selecting one of said physical or logical elements, and using said links to identify all of the physical or logical elements that are linked to said selected one of said elements.
18 . A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps according to claim 1 , for establishing a logical-model based understanding of a legacy application.Join the waitlist — get patent alerts
Track US2008222069A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.