Architecture for building scalable object oriented web database applications
First Claim
1. A method for effectively modeling a scalable web database application for online transaction processing that uses an object oriented programming language and a relational or object-relational database system, such that:
- a. neither functionality nor performance is compromised. b. all persistence related entities are isolated into a well defined layer that encapsulates database designs and operations on database tables. c. persistent objects are functionally complete objects complete with behavior, inheritance, polymorphism and containment over and above basic object oriented features such as state and identity. d. There is a partitioning of skill sets between database developers and object oriented application developers. by utilizing both object modeling and data modeling techniques and applying a set of rules for arriving at a layered object model where the objects in the layers interact according to well defined rules set forth in this patent application.
0 Assignments
0 Petitions
Accused Products
Abstract
A method for modeling and rapidly building high performance object oriented database applications for web environments is disclosed. The modeling encompasses behavioral object modeling as well as structural data modeling according to a set of rules that yields a layered object model with no compromises on the database design, the application'"'"'s functionality or code reusability and extensibility. A high level mechanism based on the Extensible Markup Language (XML) is used to declare the structure and behavior of modeled persistent objects that exhibit functionally complete object orientation and whose implementations are realized through packages of database stored procedures and associated structures. Code generators produce the necessary application and database code from the XML specification, enabling rapid development. The packages of stored procedures encapsulate all aspects of the database design and database programming, yielding performance, flexibility and future-proofing of the applications from changing requirements, database versions and database performance tuning. The generated code, in conjunction with a lightweight run time infrastructure, provides performance and development productivity features that are specifically geared for the stateless web environment in order to support scrolling of very large result sets from the database, to automatically detect conflicting changes from multiple concurrent users, and to automatically render the state of persistent objects in XML for personalization and data interchange. Additional performance features include high-concurrency caching of persistent objects with transactional semantics for ensuring transaction isolation among multiple threads of execution.
100 Citations
9 Claims
-
1. A method for effectively modeling a scalable web database application for online transaction processing that uses an object oriented programming language and a relational or object-relational database system, such that:
-
a. neither functionality nor performance is compromised. b. all persistence related entities are isolated into a well defined layer that encapsulates database designs and operations on database tables. c. persistent objects are functionally complete objects complete with behavior, inheritance, polymorphism and containment over and above basic object oriented features such as state and identity. d. There is a partitioning of skill sets between database developers and object oriented application developers. by utilizing both object modeling and data modeling techniques and applying a set of rules for arriving at a layered object model where the objects in the layers interact according to well defined rules set forth in this patent application.
-
-
2. A run time architecture for effectively managing database operations from an object oriented application that is based on a proxy design pattern as defined in the book Design Patterns:
- Elements Of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides published by Addison Wesley, 1995, ISBN 0-201-63361-2. In particular, the proxy objects have methods, virtual functions, abstract classes and polymorphism, and provide optimizations for minimizing database communication. They are also cached in memory with transactional semantics. The key difference from prior applications of the proxy design pattern is in the application of the proxy to database resident objects.
-
3. A technique for using the Extensible Markup Language (XML) to define high level programming languages for building complex systems, by defining a corresponding XML vocabulary using an XML Schema or a Document Type Definition and using XSL Transformation software to produce code that implements the systems.
-
4. An XML vocabulary for defining database-persistent components and their classes, attributes, methods, relationships and various physical parameters such as database storage placement and control parameters, as well as parameters that control their behavior in the middle tier, such as caching and synchronization.
-
5. A technique for using XSL Transformation software to realize an XML based high level programming language by generating the code in existing lower level programming languages to implement the necessary functionality.
-
6. Techniques for using XSL Transformation software to generate, from the XML high level programming language, database table definitions and related database structures such as indexes, unique number generators and constraints.
-
7. Techniques for using XSL Transformation software to generate, from the XML high level programming language, database stored procedure and associated definitions such as records and packages to implement objects having state, behavior and relationships such as inheritance and containment.
-
8. Techniques for using XSL Transformation software to generate, from the XML high level programming language, middle tier object oriented code.
-
9. Techniques for using XSL Transformation software to generate, from the XML high level programming language, XML Schemas and Document Type Definitions that represent the structure of the XML that is rendered at run time from the actual state of the objects that are defined in the high level XML language.
Specification