Run-time addition of interfaces

Data processing: software development – installation – and managem – Software program development tool – Linking

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S107000, C717S108000, C717S116000, C717S120000, C709S241000, C709S241000

Reexamination Certificate

active

06397384

ABSTRACT:

BACKGROUND
The invention relates to extending functionality at run-time to computer program objects.
Conventional software applications make use of independent modular software components, sometimes referred to as “plug-ins”. These plug-ins provide extensibility to the functionality of the software application. Typically, when an application initially begins execution, a plug-in capable software application checks for available plug-ins and determines available functionality. In some application programs, checking for plug-ins may be performed dynamically, while the program is running. An example of a conventional software application which makes use of plug-ins is Adobe® Acrobat®.
A disadvantage of plug-ins is that plug-ins typically are independent of one another and do not make use of the program code contained within other plug-ins. Interaction between plug-ins is typically managed at a higher level by the application program. As a result, while a plug-in may make use of functions contained in another plug-in, the plug-in does not include actual program code stored in another plug-in. Similarly, plug-ins are not able to modify or add to the content of one another.
An example of a component programing model is the Microsoft® Component Object Model (“COM”). COM makes use of software components similar to the plug-ins described above. The software components include definitions written in an object-oriented programming (“OOP”) language, such as C++. A software component for COM defines one or more COM classes. Instances of COM classes are COM objects. These COM objects are used to build application programs. Typically, an application program loads one or more software components containing particular implementations of operations used within the application program. Each of the software components is compiled separately before the application program executes. At run-time the available software components are integrated. Software components in COM follow conventions allowing components to be implemented in different languages, such as C++, Pascal, or LISP. The software components add to the functionality of the application program by defining classes and methods which can in turn be used by the application program. However, like conventional plug-ins, the COM classes defined in the software components cannot modify one another. While one COM class can inherit from another COM class, COM classes are not able to alter other COM classes. As a result, the functionality provided by different COM objects is limited to whatever functionality is provided by the compiled form of the corresponding COM classes. To extend the functionality of a COM object, the software component defining that particular COM object's COM class is typically rewritten and then recompiled. COM is described in many sources, including in Box, Don, “Essential COM”, Addison-Wesley Pub. Co., 1998.
SUMMARY
The invention provides methods and apparatus implementing a technique for adding an interface to a boss object at run-time through an object manager. A boss object includes one or more interfaces and each interface has a corresponding implementation class. In general, in one aspect, the technique includes: reading a first boss class having a first interface, defined in a first software component; reading a second interface, defined in a separate second software component; and binding the second interface to the first boss class, so that instantiating the first boss class creates a first boss object including the first interface and the second interface.
In another aspect, the technique includes: providing an add-in class indicating a boss class in a separate software component, where the add-in class includes a supplemental interface which can be bound to the boss class; and indicating that a boss object includes the supplemental interface, when the boss object is queried, where the boss object is created by instantiating the boss class.
Advantages of the invention include one or more of the following. The invention provides extension of boss classes at run-time or dynamically. The invention can be used to add a new boss class, to add interfaces to a boss class, to add interfaces to a set of classes by adding the interfaces to a base class from which that set inherits, to reuse code for implementation classes provided in separate software components, to instantiate a boss class, and to query for an interface using an interface identifier.


REFERENCES:
patent: 5339430 (1994-08-01), Lundin et al.
patent: 5493680 (1996-02-01), Danforth
patent: 5794038 (1998-08-01), Stutz et al.
patent: 5872973 (1999-02-01), Mitchell et al.
patent: 5983016 (1999-11-01), Brodsky et al.
patent: 5987242 (1999-11-01), Bentley et al.
patent: 6016392 (2000-01-01), Jordan
patent: 6262729 (2001-07-01), Marcos et al.
patent: 6263379 (2001-07-01), Atkinson et al.
patent: 0 603 880 (1994-06-01), None
IBM Techical Disclosure Bulletin, ‘Inter-Program Binding’, vol. 37, No. 12, pp. 415-420, Dec. 1994.*
Mezini M: “Maintaining the Consistency of Class Libraries During Their Evolution,” ACM Sigplan Notices, US, Association for Computer Machinery, New York, vol. 32, NR. 10, pp. 1-21 XP000723417, ISSN: 0362-1340.
Don Box, “Essential COM,” Addison-Wesley Object Technology Series.
Dale Rogerson, “Inside COM, Microsoft's Component Object Model,” Microsoft Press 1997.
“Microsoft Component Object Model (COM): A Technical Overview of COM”, found in http://wwww.microsoft.com/com/wpaper/Com_modl.asp, download date Dec. 8, 1998.
“Microsoft COM-Based Technologies W. . . nt Services, A Technology Overview”, found in http://www.microsoft.com/com/wpaper/compsvcs.asp, download date Dec. 8, 1998.
“Microsoft COMponents White Paper—Creating COM Plug-In Components”, found in http://www.microsoft.com/com/components/default.asp, dowload date Dec. 8, 1998.

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 addition of interfaces 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 addition of interfaces, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Run-time addition of interfaces will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2835985

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