Run-time customization in object-oriented design

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S152000, C717S152000, C717S152000

Reexamination Certificate

active

06345382

ABSTRACT:

TECHNICAL FIELD
This invention relates, generally, to object-oriented software design and, more particularly, to user customization of software products in object-oriented design.
BACKGROUND ART
Often, it is desirable to allow the functionality of a complex software system to be extended or customized without providing access to the primary compilation and linkage stream. In particular, it is frequently undesirable or impractical to allow user access to the physical build process.
For example, it may be impractical because development of software might be distributed across multiple environments, such as different organizations or physical locations. In another example, it may be impractical because a software product or application might be intended to be enhanced by a customer, without the customer being given the source code for rebuilding the software product.
Enhancement of software in procedural, non-object oriented implementations typically occurs through dynamic loading of an external, executable object file that implements a customized function. However, in object-oriented implementations, such a solution is unsatisfactory. Namely, the customized function would extend functionality of the application without being associated with any object class. Such a function is termed a global function, and is disfavored in object-oriented design. In particular, a global function is unsatisfactory because it sacrifices important advantages of object-oriented design, since it is not associated with an instance of a class.
In object-oriented design, certain features such as inheritance and polymorphism offer advantages. That is, inheritance capitalizes on code reuse for desirable saving of resources, and polymorphism maximizes overall behavioral consistency. Hence, instances of different classes, that are derived from a common base class, may be managed advantageously similarly.
However, in current implementations of object-oriented code, such as C++, inheritance and polymorphism are available only by compiling and linking a derived class with the definition and implementation of its base class. Unfortunately, this constraint prevents employment of derivation when the ancestral source code is unavailable.
Thus, a need exists for allowing dynamic loading of customized behavior for a derived class, when source code for its base class is unavailable, in object-oriented design implementations.
SUMMARY OF THE INVENTION
Pursuant to the present invention, shortcomings of the existing art are overcome and additional advantages are provided through the provision of a run-time customization capability by which functionality of a software application in a computer system is extended. An instance of a first class is instantiated. The first class has a same interface as a second class. The first and second classes enable respective first and second functionalities through respective first and second implementations of the same interface. The first implementation is dynamically loaded at run time.
In one embodiment, the dynamic loading involves locating the first implementation. Further, a transfer vector usable in accessing the first implementation is initialized. Moreover, the transfer vector is initialized, for instance, to have an indication of a location of the first implementation.
In another embodiment, a locator is used to locate a module comprising the first implementation. Programming code associated with the same interface is compiled prior to compilation of programming code associated with the first implementation.
The same interface and/or the first implementation can include object-oriented design. The same interface can include a declaration of a virtual function which is implemented in the first implementation. The first class can be a derived class.
Thus, the present invention advantageously provides object-oriented dynamic loading of, and access to, customized behavior for a derived class, notwithstanding unavailability of the source code for its base class.


REFERENCES:
patent: 5291585 (1994-03-01), Sato et al.
patent: 5339430 (1994-08-01), Lundin et al.
patent: 5404519 (1995-04-01), Denio
patent: 5410703 (1995-04-01), Nilsson et ql.
patent: 5504892 (1996-04-01), Atsatt et al.
patent: 5560014 (1996-09-01), Imamura
patent: 5642511 (1997-06-01), Chow et al.
patent: 5872973 (1999-02-01), Mitchell et al.
Mambo et al., “Proxy signatures for delegating operation”, Proceedings of the 3rd ACM conference on Computer and communications security, pp. 48-57, Mar. 1996.*
Aggarwal et al., “On disk caching of Web objects in proxy servers”, ACM transaction, Proceedings of the sixth international conference on Information knowledge management, pp. 238-245, Nov. 1997.*
Maltzahn et al., “Performance Issues of Enterprises Level Web Proxies”, ACM, pp. 13-23, 1997.*
Lieberherr et al., Int. J. Found. Comput. Sci., Singapore, vol. 5, No. 2, pp. 179-208, (Jun. 1997) (Abstract only).
Stadel, M., Sigplan, Not., vol. 26, No. 1, pp. 99-108 (Jan. 1991) (Abstract only).

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

Run-time customization in object-oriented design does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Run-time customization in object-oriented design, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Run-time customization in object-oriented design will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2947730

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