← Back to Patent Explorer
US6345382B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Run-time customization in object-oriented design

Assignee: International Business Machines Corp
•
Filing: 1998-02-12
•
Granted: 2002-02-05
•
Expires: 2018-02-12
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A run-time customization capability extends functionality of a software application in a computer system. Through object-oriented design, an instance of a first class is instantiated. The first class (e.g., a derived 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. The dynamic loading can involve locating the first implementation, such as by using a locator to locate a module comprising the first implementation. A transfer vector usable in accessing the first implementation can be initialized to have an indication of a location of the first implementation. Programming code associated with the same interface can be compiled prior to compilation of programming code associated with the first implementation.

Inventors

  • 👤 Stephen C. Hughes

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 02:38
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/20; G06F8/24

Claims Analysis

Total Claims: 32
Claim 1
Independent Claim 149 words
A method of extending functionality of an application, said method comprising: instantiating an instance of a class, said class having an interface declaring a first function and a second function, wherein an implementation of the first function is defined with the class and included within the interface; and dynamically loading at run-time an implementation for the second function, wherein the dynamically loading comprises: locating said implementation for the second function, wherein said locating comprises initializing a transfer vector usable in accessing said implementation for the second function, wherein said initializing comprises indicating in said transfer vector an indication of a location of said implementation for the second function; and incorporating the implementation for the second function into the interface of the instantiated instance of the class to extend functionality of the instantiated instance of the class, wherein an implementation for the first function is not dynamically loaded at run-time.
Claim 2
Independent Claim 149 words
A method of extending functionality of an application, said method comprising: instantiating an instance of a class, said class having an interface declaring a first function and a second function, wherein an implementation of the first function is defined with the class and included within the interface; and dynamically loading at run-time an implementation for the second function, wherein the dynamically loading comprises: locating said implementation for the second function, wherein said locating comprises initializing a transfer vector usable in accessing said implementation for the second function, wherein said initializing comprises indicating in said transfer vector an indication of a location of said implementation for the second function; and incorporating the implementation for the second function into the interface of the instantiated instance of the class to extend functionality of the instantiated instance of the class, wherein an implementation for the first function is not dynamically loaded at run-time.
Claim 3
Dependent Claim 24 words
The method of claim 1 , wherein said locating comprises using a locator to locate a module comprising said implementation for the second function.
Claim 4
Dependent Claim 29 words
The method of claim 1 , wherein programming code associated with said interface is compiled prior to compilation of programming code associated with said implementation for the second function.
Claim 5
Dependent Claim 23 words
The method of claim 1 , wherein at least one of said interface and said implementation for the second function includes object-oriented design.
Claim 6
Dependent Claim 16 words
The method of claim 1 , wherein said interface includes a declaration of a virtual function.
Claim 7
Dependent Claim 20 words
The method of claim 5 , wherein said implementation for the second function includes an implementation of said virtual function.
Claim 8
Dependent Claim 13 words
The method of claim 1 , wherein said class is a derived class.
Claim 9
Dependent Claim 23 words
The method of claim 1 , wherein functionality of said instantiated instance of the class is customized by a user of the application.
Claim 10
Dependent Claim 20 words
The method of claim 1 , further comprising identifying, by a user, said implementation for the second function at run-time.
Claim 11
Dependent Claim 20 words
The method of claim 1 , wherein said interface of said instantiated instance of the class is compiled before run-time.
Claim 12
Dependent Claim 33 words
The method of claim 1 , further comprising compiling said interface of said instantiated instance of the class, and compiling said implementation for the second function separately from said compilation of said interface.
Claim 13
Dependent Claim 31 words
The method of claim 1 , wherein said dynamically loading comprises selecting said implementation for the second function from one or more implementations based upon data being processed by said application.
Claim 14
Dependent Claim 25 words
The method of claim 1 , further comprising instantiating another instance of the class, and dynamically loading at run-time another implementation for the second function.
Claim 15
Dependent Claim 173 words
At least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform a method of extending functionality of an application, said method comprising: instantiating an instance of a class, said class having an interface declaring a first function and a second function, wherein an implementation of the first function is defined with the class and included within the interface; and dynamically loading at run-time an implementation for the second function, wherein the dynamically loading comprises: locating said implementation for the second function, wherein said locating comprises initializing a transfer vector usable in accessing said implementation for the second function, wherein said initializing comprises indicating in said transfer vector an indication of a location of said implementation for the second function; and incorporating the implementation for the second function into the interface of the instantiated instance of the class to extend functionality of the instantiated instance of the class, wherein an implementation for the first function is not dynamically loaded at run-time.
Claim 16
Dependent Claim 173 words
At least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform a method of extending functionality of an application, said method comprising: instantiating an instance of a class, said class having an interface declaring a first function and a second function, wherein an implementation of the first function is defined with the class and included within the interface; and dynamically loading at run-time an implementation for the second function, wherein the dynamically loading comprises: locating said implementation for the second function, wherein said locating comprises initializing a transfer vector usable in accessing said implementation for the second function, wherein said initializing comprises indicating in said transfer vector an indication of a location of said implementation for the second function; and incorporating the implementation for the second function into the interface of the instantiated instance of the class to extend functionality of the instantiated instance of the class, wherein an implementation for the first function is not dynamically loaded at run-time.
Claim 17
Dependent Claim 24 words
The at least one program storage device of claim 11 , wherein said locating comprises using a locator to locate a module comprising said.
Claim 18
Dependent Claim 34 words
The at least one program storage device of claim 14 , wherein programming code associated with said interface is compiled prior to compilation of programming code associated with said implementation for the second function.
Claim 19
Dependent Claim 28 words
The at least one program storage device of claim 14 , wherein at least one of said interface and said implementation for the second function includes object-oriented design.
Claim 20
Dependent Claim 21 words
The at least one program storage device of claim 14 , wherein said interface includes a declaration of a virtual function.
Claim 21
Dependent Claim 25 words
The at least one program storage device of claim 18 , wherein said implementation for the second function includes an implementation of said virtual function.
Claim 22
Dependent Claim 18 words
The at least one program storage device of claim 14 , wherein said class is a derived class.
Claim 23
Dependent Claim 36 words
The at least one program storage device of claim 14 , wherein said dynamically loading comprises selecting said implementation for the second function from one or more implementations based upon data being processed by said application.
Claim 24
Dependent Claim 33 words
The at least one program storage device of claim 14 , wherein said method further comprises instantiating another instance of the class, and dynamically loading at run-time another implementation for the second function.
Claim 25
Independent Claim 165 words
A system of extending functionality of an application, said system comprising: means for instantiating an instance of a class, said class having an interface declaring a first function and a second function, wherein an implementation of the first function is defined with the class and included within the interface; and means for dynamically loading at run-time an implementation for the second function, wherein the dynamically loading comprises: means for locating said implementation for the second function, wherein said means for locating comprises means for initializing a transfer vector usable in accessing said implementation for the second function, wherein said means for initializing comprises means for indicating in said transfer vector an indication of a location of said implementation for the second function; and means for incorporating the implementation for the second function into the interface of the instantiated instance of the class to extend functionality of the instantiated instance of the class, wherein an implementation for the first function is not dynamically loaded at run-time.
Claim 26
Independent Claim 165 words
A system of extending functionality of an application, said system comprising: means for instantiating an instance of a class, said class having an interface declaring a first function and a second function, wherein an implementation of the first function is defined with the class and included within the interface; and means for dynamically loading at run-time an implementation for the second function, wherein the dynamically loading comprises: means for locating said implementation for the second function, wherein said means for locating comprises means for initializing a transfer vector usable in accessing said implementation for the second function, wherein said means for initializing comprises means for indicating in said transfer vector an indication of a location of said implementation for the second function; and means for incorporating the implementation for the second function into the interface of the instantiated instance of the class to extend functionality of the instantiated instance of the class, wherein an implementation for the first function is not dynamically loaded at run-time.
Claim 27
Dependent Claim 36 words
The system of claim 23 , wherein said means for dynamically loading further comprises means for selecting said implementation for the second function from one or more implementations based upon data being processed by said application.
Claim 28
Dependent Claim 29 words
The system of claim 23 , further comprising means for instantiating another instance of the class, and means for dynamically loading at run-time another implementation for the second function.
Claim 29
Dependent Claim 248 words
An article of manufacture, comprising: at least one computer usable medium having computer readable program code means embodied therein for causing an extension of functionality of an application, the computer readable program code means in said article of manufacture comprising: computer readable program code means for causing a computer to instantiate an instance of a class, said class having an interface declaring a first function and a second function, wherein an implementation of the first function is defined with the class and included within the interface; and computer readable program code means for causing a computer to dynamically load at run-time an implementation for the second function, wherein the computer readable program code means for causing a computer to dynamically load comprises: computer readable program code means for locating said implementation for the second function, wherein said computer readable program code means for locating comprises computer readable program code means for initializing a transfer vector usable in accessing said implementation for the second function, wherein said computer readable program code means for initializing comprises computer readable program code means for indicating in said transfer vector an indication of a location of said implementation for the second function; and computer readable program code means for causing a computer to incorporate the implementation for the second function into the interface of the instantiated instance of the class to extend functionality of the instantiated instance of the class, wherein an implementation for the first function is not dynamically loaded at run-time.
Claim 30
Dependent Claim 248 words
An article of manufacture, comprising: at least one computer usable medium having computer readable program code means embodied therein for causing an extension of functionality of an application, the computer readable program code means in said article of manufacture comprising: computer readable program code means for causing a computer to instantiate an instance of a class, said class having an interface declaring a first function and a second function, wherein an implementation of the first function is defined with the class and included within the interface; and computer readable program code means for causing a computer to dynamically load at run-time an implementation for the second function, wherein the computer readable program code means for causing a computer to dynamically load comprises: computer readable program code means for locating said implementation for the second function, wherein said computer readable program code means for locating comprises computer readable program code means for initializing a transfer vector usable in accessing said implementation for the second function, wherein said computer readable program code means for initializing comprises computer readable program code means for indicating in said transfer vector an indication of a location of said implementation for the second function; and computer readable program code means for causing a computer to incorporate the implementation for the second function into the interface of the instantiated instance of the class to extend functionality of the instantiated instance of the class, wherein an implementation for the first function is not dynamically loaded at run-time.
Claim 31
Independent Claim 118 words
A method of extending functionality of an application, said method comprising: instantiating an instance of a first class, said first class having a same interface as a second class, said first and second classes enabling respective first and second functionalities through respective first and second implementations of said same interface; and dynamically loading at run-time said first implementation, said dynamically loading comprising: locating said first implementation, wherein said locating comprises initialize a transfer vector usable in accessing said first implementation, wherein said initializing comprises indicating in said transfer vector an indication of a location of said first implementation; and incorporating said first implementation into said interface of said first class, wherein functionality of said first class is extended.
Claim 32
Independent Claim 118 words
A method of extending functionality of an application, said method comprising: instantiating an instance of a first class, said first class having a same interface as a second class, said first and second classes enabling respective first and second functionalities through respective first and second implementations of said same interface; and dynamically loading at run-time said first implementation, said dynamically loading comprising: locating said first implementation, wherein said locating comprises initialize a transfer vector usable in accessing said first implementation, wherein said initializing comprises indicating in said transfer vector an indication of a location of said first implementation; and incorporating said first implementation into said interface of said first class, wherein functionality of said first class is extended.

References Cited (Backward Citations)

US5404519A Cited
US5291585A Cited
US5339430A Cited
US5410703A Cited
US5560014A Cited
US5504892A Cited
US5642511A Cited
US5872973A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-02-04 2005-08-06 2006-02-05 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-02-04 2009-08-06 2010-02-05 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-02-04 2013-08-06 2014-02-05 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag