System and method for on-line replacement of software
First Claim
1. A shared library system embodied in a computer to support dynamic on-line replacement of a shared software library in the computer while preserving application program compatibility, the system comprising:
- an implementation library including at least one routine, the implementation library being loadable, the implementation library providing a service;
an interface library including at least one proxy interface to each routine in the implementation library, the proxy interface being linkable to an application program for accessing the corresponding routine; and
a service registry including at least one entry for mapping the interface library to its corresponding implementation library, so that the implementation library can be modified while the system is executing the application program.
3 Assignments
0 Petitions
Accused Products
Abstract
A system for changing a software library during the execution of a software application using the software library. The software application interfaces to the software library only through the use of an interface library, to ensure that the software application does not directly bind with the software library. With no direct binding the software library can be updated during runtime without the software application re-resolving the location of the software library. The update is triggered by a change of the version number in a registry. The program correctness is maintained by library management services ensuring that the software library is no longer in use by the application before updating to the new library. Memory management services are used to ensure that the state of the library is maintained between the old and the updated versions of the software library.
280 Citations
21 Claims
-
1. A shared library system embodied in a computer to support dynamic on-line replacement of a shared software library in the computer while preserving application program compatibility, the system comprising:
-
an implementation library including at least one routine, the implementation library being loadable, the implementation library providing a service; an interface library including at least one proxy interface to each routine in the implementation library, the proxy interface being linkable to an application program for accessing the corresponding routine; and a service registry including at least one entry for mapping the interface library to its corresponding implementation library, so that the implementation library can be modified while the system is executing the application program. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of implementing on-the-fly replacement of an implementation library so as to allow updating the implementation library while maintaining correct operation of an application that uses a software routine within the implementation library, the replacement method comprising the steps of:
-
providing a first version of the implementation library; establishing an interface library corresponding to the implementation library, the interface library including a proxy routine for the software routine within the implementation library; linking the interface library to the application that uses the software routine within the implementation library; executing a call in the application to the software routine within the implementation library; responsive to the call to the software routine, transferring control to the corresponding proxy interface in the interface library; determining whether the implementation library is marked for updating, and if it is, replacing the first version of the implementation library with a second version of the implementation library;
transferring control to the corresponding software routine in the implementation library;executing the corresponding software routine in the implementation library; returning control to the application at a return point immediately following executed call; and continuing executing of the application beginning at the said return point. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. An on-the-fly replaceable implementation library for use in a replaceable software system embodied in a computer, the implementation library comprising:
-
one or more software routines for implementing a selected service; an interface for use by an external software component using the selected service, the interface allowing for a call from the external software component but not allowing for a binding to the external software component; one or more state variables, each state variable having a respective value, the values of the state variables together defining a library state; and a means for restoring the library state to match a library state of a previous version of the implementation library.
-
-
19. A proxy interface library for use in a replaceable software system embodied in a computer, the proxy interface library being associated with a corresponding implementation library and comprising:
-
a proxy interface corresponding to a routine within the corresponding implementation library;
the proxy interface being linkable to an application as a proxy for the corresponding routine in the implementation library;means for locating the corresponding routine in the implementation library; and means for transferring execution control to the corresponding routine in the implementation library in response to execution of a call in an application to the corresponding routine in the implementation library, whereby the proxy interface library is transparent to the application. - View Dependent Claims (20)
-
-
21. A pointer linkage table stored in a machine readable medium for directing an application running on a computer to either a proxy interface library or an implementation library, the pointer linkage table comprising at least one pointer entry, each pointer entry pointing to the proxy interface library so that the application, in accordance with the pointer linkage table, calls the implementation library unless the implementation library is being updated, in which case the application calls the proxy interface library if the implementation library is being modified, otherwise the pointer entry pointing to the implementation library.
Specification