Data processing: database and file management or data structures – Database design – Data structure types
Reexamination Certificate
2001-04-20
2004-03-23
Amsbury, Wayne (Department: 2171)
Data processing: database and file management or data structures
Database design
Data structure types
C717S174000
Reexamination Certificate
active
06711579
ABSTRACT:
COPYRIGHT NOTICE AND AUTHORIZATION
Portions of the documentation in this patent document contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office file or records, but otherwise reserves all copyright rights whatsoever.
BACKGROUND OF THE INVENTION
The present invention relates generally to a system and method for retrieving data. More particularly, the present invention relates to a system and method for retrieving data from any computer system, the data having either known or unknown data storage schemas, using a semantic programming interface that allows programs to be written on abstract, shared objects, the programs representing the semantic specifications for the intended operations, and a semantic bridge to translate the intended operations to executable programs that preserve the original semantics.
The computer systems of the past decade were designed to provide the necessary information for the efficient working of a single organization. As the connectivity between organizations improved, however, the advantages of efficient information exchange between organizations became obvious. The lack of an efficient means of information exchange between the massively interconnected computer systems prevents these advantages from being realized and is a major impediment to growth, even today.
Each organization has a conflicting set of goals—allow external agencies (EA's), namely, any user or system located outside of the organization, to get from its system any kind of information the EA's are permitted to see while preventing the EA's from getting any information they are not permitted to see. Furthermore, unknown users cannot be given open access to the system to insert, modify or delete the data. If the organization publishes its data storage schema so that EA's can write their own programs and execute them, it makes it possible for users to get whatever information is available. But it leads to data security problems for the organization and a different kind of problem for the EA's. The EA's usually need to gather information of the same kind from a lot of different sources. The EA's cannot efficiently develop a different set of custom programs for each organization with which they work. Indeed, such a task would be massive and a maintenance nightmare.
Moreover, the present attempts to overcome these problems have not been very successful. For example, the Common Object Request Broker Architecture (CORBA) provides one method of accessing data from remote systems. With CORBA, an Object Model defines common object semantics for specifying the externally visible characteristics of objects in a standard and implementation-independent way. In this model clients request services from objects through a well defined interface specified in an Interface Definition Language (IDL). A client accesses an object by issuing a request to the object. The request is an event, and it carries information including an operation, the object reference of the service provider, and actual parameters (if any). The object reference is an object name that defines an object reliably.
CORBA is disadvantageous for several primary reasons, however. First, users of CORBA objects are limited to the specific operations that have been defined by the creators of the objects—e.g., they are limited to the specific procedures or methods that have been associated with the CORBA objects. There is no way for a user to add additional procedures to the system. Thus, users are limited in the ways that they can access data due to the fixed functionality of CORBA code. Indeed, the coarse-grained nature and fixed functionality of CORBA code makes it rigid and inflexible.
Second, CORBA objects are accessed using a typical client/server model. The client (e.g., user) code to perform the data access executes locally on the client machine. A CORBA object is accessed by the client code by issuing a request to the object through a remote procedure call (RPC) mechanism. The request is handled by the remote server, which returns results to the client machine. This access mechanism is slow and inefficient due to the number of RPC's needed whenever data has to be accessed.
Third, CORBA is hard to standardize across an entire application domain. The difficulty stems from the fact that the developers of the CORBA objects and the users of the CORBA objects may be unconnected. To avoid misuse of these objects, there has to be a unanimous agreement on the nature and scope of the methods in the interface. To provide the functionality required of all possible users in all possible deployments of the ‘standard’ CORBA objects is hugely inefficient (all implementations should provide the same solution in different ways for all possible methods), and provides no real incentives to the developer of the CORBA object. Hence, the advantages to be gained from standardization (such as real write once and run anywhere, abstract programming solutions etc.) will be practically impossible for anything but small self-contained domains.
Enterprise Java Beans (EJB) provides another method of accessing data from remote systems. EJB conceptually divides the interface the EJB server provides for storing state information into two parts—the data side and the client side. The “entity bean” has a one-to-one relationship with data in tables. The “session bean” has a one to one relationship with the client and allows the client to store state information. Accessing data is through the process of “finding” the appropriate entity beans. The “finder methods,” invoked by the client, on the “home” object, are passed to the entity beans, by the EJB “container.” The finder methods are special purpose methods used to identify the data with which the client wants to work. This is no different from a typical program where the programmer assumes the responsibility for ensuring that the proper relationships for meaningful computations are maintained between participating entities. The relationships are only implicit. The EJB model does not specify the need for more powerful denotations. As a result, a deployed entity bean is static. It cannot service the need for accessing information with differing structural relationships. Thus, the EJB model is only of limited utility.
Similarly, Multi-Tier Distributed Application Services (MIDAS) provides another method of accessing data from remote systems. MIDAS is designed for quickly and easily developing and deploying multi-tier thin-client database applications. MIDAS can access remote data through HyperText Transfer Protocol (HTTP), and other transport methods, however both sides of the application (i.e., client and server) must be pre-programmed and run against known data structures. Thus, like the EJB model, MIDAS is only of limited utility as it cannot be run to access data from databases having unknown storage schemas. Moreover, both the client and server sides of a MIDAS application would have to be rewritten every time the storage schema of the known data structure changed.
Accordingly, there is an unmet need for a general-purpose method for retrieving data from any computer system, the data having either known or unknown data storage schemas, using a semantic programming interface that allows programs to be written on abstract, shared objects. There is also a need for a semantic programming interface that denotes the names and meaningful relationships among data and declares them as methods associated with the objects, thereby allowing users to access the data in any way they want. There is also a need for a method that allows user code to be dynamically built and executed on a server computer. The present invention fulfills these needs.
BRIEF SUMMARY OF THE INVENTION
Briefly stated, the present invention provides a method of accessing data stored on one or more computers, the data on each computer having a data s
Akin Gump Strauss Hauer & Feld & LLP
Amsbury Wayne
Sree Ayyanar Spinning and Weaving Mills Limited
LandOfFree
Data storage schema independent programming for data... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Data storage schema independent programming for data..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Data storage schema independent programming for data... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3249773