Method of providing persistency for transient objects in...

Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06195709

ABSTRACT:

FIELD OF THE INVENTION
The invention relates to a method of providing persistency for transient software objects, in an object oriented application.
DESCRIPTION OF THE PRIOR ART
Object Oriented Technology or simply Object Technology, often abbreviated “OOT” or simply “OT”, describes a method for the development of software for a computer system. In contrary to the traditional, non object oriented ways of developing software, Object Oriented Technology comprises and uses preengineered “classes” for the development of software, comparable to tools and parts for the development of an automobile. A class groups together data and the procedures to operate on those data. In Object Oriented Technology the procedures are referred to as methods. The data is only accessible through the methods provided by the class.
Data means information or space in a computer program where information can be stored, e.g. a name or an inventory part number. Procedures are parts of a program that cause the computer to actually do something, e.g. the parts of a program which perform calculations or the part of a program that store something on a computer disk.
Similar to the development of an automobile, wherein not each required screw is developed individually, but standardized screws are used which can be individually adapted by shortening to the required length, within the development of software, Object Oriented Technology provides a “class” as a kind of software template from which individual “objects” can be instantiated. These objects are also referred to as instances of a class. Invoking a method on an object is referred to as “sending a message” to that object. The data of an object make up the so called “state” of an object.
Classes may be stored in a software library or a so called “class library”. A class library is simply a collection of several classes stored together in a special filing format called a library.
The concept of an object being a self-contained piece of software having data and procedures inside itself is a new way of developing software. In non object oriented software, data and procedures for processing these data are very independent of each other. Hence, when changing the structure of a data element, the programmer must be aware of the impact on the related procedures, i.e. procedures operating on the data element, in order to prevent the application from malfunction.
This conventional method worked okay for smaller programs, but as soon as a piece of software started to grow and become somewhat complex, it became increasingly difficult to figure out which procedures were using which data. This made it quite difficult and expensive to maintain and change traditional software programs.
In Object Oriented Technology it is generally easier to debug, maintain, and enhance object oriented software. The most popular object oriented programming languages are probably “C++”, “Smalltalk”, and “Java”. The concept that data are only accessible through the corresponding methods is called “encapsulation”. Part of the concept of encapsulation is that an object has a predictable way of communicating with other objects, a so called predictable “interface”.
Provided that the class interface will not be changed, the implementation of methods can be changed without disrupting other objects' ability to interact with objects of that class. For example, a TAX CALCULATION object would have a predictable interface for use by PAYCHECK objects. Provided that interface will not be changed, the detailed program code inside the TAX CALCULATION object could be changed whenever the tax laws changed, and no other objects in the payroll system would have to know anything about such changes.
In Object Oriented Technology the term “inheritance” is used to communicate the concept that one class can inherit part of its behavior and data from another class, e.g. since an employee is a specific type of person, an EMPLOYEE class might inherit the characteristics of a PERSON class, such as having name, birth date, and address data, as well as an EMPLOYEE class might inherit methods for updating and displaying these data.
Even if a class inherits some of its characteristics from other objects, that class can, and usually would, also have its own non-inherited characteristics, e.g. whereas a PERSON class would have a method to display a person's address, a PERSON class would probably not have a method for displaying paycheque history, since not all persons get paychecks. Because getting a paycheque is a common characteristic of all employees, an EMPLOYEE class would have to define its own method for displaying paycheque history.
Persistent objects are those objects whose lifetime is not bound to the lifetime of the process they were created by. The lifetime of these objects is arbitrary, determined by some application, and their state is kept in a nonvolatile data store. From that persistent store the objects can be “revived” (restored) when needed. The counterparts of persistent objects are transient objects: the lifetime of these objects is clearly limited by the lifetime of the creating process. Almost any business application requires some objects to be persistent and thus an elaborate persistency concept is of great value.
A typical way to provide persistency in object oriented applications is to introduce classes that implement the persistency mechanism, e.g. a persistent object base class. Classes that are to have persistent instances must inherit from at least one of the introduced classes. Often it is also necessary to adapt method implementations or to provide a certain interface.
A similar concept yet having less impact on the application code is again to add some classes responsible for persistency. These classes rely on a certain set of interfaces being implemented by those classes that need persistency. Inheritance is not required.
A third concept is to simply use the persistency services offered by additional classes or libraries. These libraries may be class libraries but could be also function libraries. Neither inheritance nor implementation of special interfaces is required.
Conventional persistency concepts show the drawback that reengineering of existing applications is a must, i.e. new functionality has to be added to all classes that are to have persistent instances (by adding classes, by introducing a common base class or by extending existing classes). Any of the above mentioned concepts will force an application programmer to redesign his application and to rewrite parts of the code. Furthermore, code must be changed, e.g. in order to store or restore objects from the persistent data store.
OBJECT OF THE INVENTION
It is therefore an object of the present invention to provide a persistency mechanism that does not require any changes to existing classes.
It is another object of the present invention to provide a persistency mechanism that allows transient objects to become persistent objects at any point in time without effort.
SUMMARY OF THE INVENTION
The present invention solves the above mentioned problems with a method of providing persistency for an object to be a persistent object as layed down in enclosed independent claims.
For the solution as disclosed in the present invention, the following terms are used:
An “object” is a transient object. If a persistent object has to be designated, the term “persistent object” is used. The term “persistent data” or “persistent object representation” is used for data in a persistent store that describe a persistent object. The term “persistent object” is used for an object that resides in the main memory and has a representation in a persistent store. The term “persistent store” or “persistent storage” is used for a permanent storage medium like a hard disk or a tape.
The term “proxy” or “proxy object” is used for an object that replaces a persistent object in the face of the client. The term “transient object” is used for an object that resides in the main memory but has no representation in a persistent store. The lifetime

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method of providing persistency for transient objects in... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method of providing persistency for transient objects in..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method of providing persistency for transient objects in... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2573305

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.