| Methods and apparatus for constructing declarative componentized applications -> Monitor Keywords |
|
Methods and apparatus for constructing declarative componentized applicationsRelated Patent Categories: Data Processing: Database And File Management Or Data Structures, Database Schema Or Data Structure, Manipulating Data Structure (e.g., Compression, Compaction, Compilation)Methods and apparatus for constructing declarative componentized applications description/claimsThe Patent Description & Claims data below is from USPTO Patent Application 20070174318, Methods and apparatus for constructing declarative componentized applications. Brief Patent Description - Full Patent Description - Patent Application Claims FIELD OF THE INVENTION [0001] The present invention relates generally to approaches for constructing a user interactive software application and, more particularly, to techniques for constructing an interactive software application based on a relational model and relational algebra. BACKGROUND OF THE INVENTION [0002] Numerous attempts have been made to construct software applications out of "components," or reusable pieces of software. These desired construction techniques are analogous to an often used manner of building hardware systems out of prepackaged pieces, more specifically chips, by creating custom interconnections. By using a construction approach utilizing components, it is believed that the software construction cost will be reduced or, alternatively, that the software construction productivity will increase, when compared to techniques that start anew for each new software application. [0003] Software components declare a set of inputs and outputs, which are used to communicate with other components in the system. Such inputs and outputs may be considered analogous to pins on a chip in hardware system construction. Ideally the components are completely encapsulated, in that they only communicate via the declared input and output ports. The encapsulation of components provides numerous benefits. For example, encapsulated components may be replaced by other implementations, as long as the inputs, outputs, and semantics are identical. Additionally, applications built from encapsulated components are easier to analyze, optimize, and transform, because there is no need for the system to analyze internal implementations of the components. [0004] An example of an encapsulated component system is the NIL programming language. See, for example, "A New Programming Methodology for Long-Lived Software Systems," IBM J. Res. Develop., Vol. 28, No. 1, January 1984. [0005] Another useful approach to reducing software complexity and improving software productivity is declarative programming. Declarative programming attempts to describe the desired behavior or goals of the system, the "what," but leaves the specific implementation of the system, the "how," undefined. In declarative programming it is reasoned that only the behavior is important, and a description of the implementation is an unnecessary loss of productivity. Examples of declarative programming languages include Haskell and Prolog. In contrast, most applications today are implemented in imperative programming languages, such as Java and C++. Imperative languages are used to describe the application using a step-by-step approach, for example, first, read input field 1; second, display a message in text-box 2. [0006] Imperative languages typically have the concept of a "program counter" which indicates exactly where the flow of execution is at all times, and the ability to set "breakpoints", which suspend the program when the flow of execution reaches a certain location in the program, utilized, for example, for debugging. In contrast, declarative programs do not have a concept analogous to a program counter. Note that declarative systems may be implemented using imperative languages. [0007] Virtually all applications require access to data, which is typically stored in a database. A relational model, which provides access to data using relational algebra has been the most successful approach yet devised for storing and accessing data (see "A Relational Model of Data for Large Shared Data Banks", Communications of the ACM, Vol 13 No. 6, June 1970). In its pure form, the relational model and algebra provide a declarative approach to accessing data. More specifically, they describe what data is desired, but not how to retrieve it. While componentization, the relational model, relational algebra, and declarative programming techniques and their respective benefits are well known, they have not been applied together in an existing system. [0008] As a counter-example, the Microsoft Windows Presentation Foundation (formerly named "Avalon") explicitly mixes declarative descriptions of visual layouts with imperative (non-declarative) procedural code (see "Code Name Avalon: Create Real Apps Using New Code and Markup Model", MSDN Magazine, January 2004). Microsoft states that [imperative] programming languages are "clunky for the job of laying out text, images, and controls", and declarative ("markup") approaches are "hopelessly inept when it comes time to interact with the user". Thus both approaches must be used together in Avalon. The declarative part of the application ("XAML") must be supplemented by "real [imperative] programming code", which is embedded directly in XAML or placed in a separate file. [0009] Thus there is a need for techniques for designing and assembling applications using data-access components based on a relational model and relational algebra. SUMMARY OF THE INVENTION [0010] The present invention provides a system and method for constructing componentized applications based on declarative programming including relational databases and relational algebra. [0011] For example, in one aspect of the present invention, a method of constructing a software application is provided. A data model of the application is represented as a relational model. Control logic of the application is defined as a mapping from a current state of the application data model and one or more current application inputs to a new state of the application data model and one or more application outputs, described by relational algebra. [0012] In this embodiment of the present invention a user-interface of the application may be represented as a declarative view component model. The user-interface may enable user interaction to facilitate application flow. Application flow evaluates one or more inputs to the data model, updates the state of the data model in accordance with the one or more inputs, and updates the user-interface in accordance with the state of the data model. Additionally, the mapping of relational algebra components may comprise an interconnection of encapsulated components. [0013] In additional embodiments of the present invention, an apparatus and an article of manufacture for constructing a user interactive software application are provided. [0014] The embodiments of the present invention allow a model, view, and controller to all be specified in a declarative fashion, avoiding the need to adapt between declarative and procedural/imperative styles within the application description. [0015] These and other objects, features and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS [0016] FIG. 1 is screen capture of a sample software application, CRUD++, according to an embodiment of the present invention; [0017] FIG. 2 is a diagram illustrating an architectural description of a create operation for the sample software application, according to an embodiment of the present invention; [0018] FIG. 3 is a diagram illustrating an architectural description of an update operation for the sample software application, according to an embodiment of the present invention; [0019] FIG. 4 is a diagram illustrating an architectural description of a delete operation for the sample software application, according to an embodiment of the present invention; [0020] FIG. 5 is a diagram illustrating an architectural description of an increment operation for the sample software application, according to an embodiment of the present invention; Continue reading about Methods and apparatus for constructing declarative componentized applications... Full patent description for Methods and apparatus for constructing declarative componentized applications Brief Patent Description - Full Patent Description - Patent Application Claims Click on the above for other options relating to this Methods and apparatus for constructing declarative componentized applications patent application. ### 1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored. 3. Each week you receive an email with patent applications related to your keywords. Start now! - Receive info on patent apps like Methods and apparatus for constructing declarative componentized applications or other areas of interest. ### Previous Patent Application: Method, system and computer program product for shrinking a file system Next Patent Application: Scheduling of index merges Industry Class: Data processing: database and file management or data structures ### FreshPatents.com Support Thank you for viewing the Methods and apparatus for constructing declarative componentized applications patent info. IP-related news and info Results in 0.14384 seconds Other interesting Feshpatents.com categories: Qualcomm , Schering-Plough , Schlumberger , Seagate , Siemens , Texas Instruments , 174 |
* Protect your Inventions * US Patent Office filing
PATENT INFO |
|