Live upgrade process for object-oriented programs
First Claim
Patent Images
1. A method for upgrading a set of objects of an object-oriented computer program, comprising:
- (a) applying a first sequence of modifications to said objects to provide said objects with a mechanism for upgrade, said first sequence of modifications having no effect on the behavior of said objects;
(b) applying a sequence of atomic actions to said objects, said atomic actions effecting a change to the behavior of said objects; and
(c) applying a second sequence of modifications to said objects to remove from said objects the mechanism for upgrading, said second sequence of modifications having no effect on the behavior of said objects;
(d) wherein said objects are upgraded while said program is executing.
4 Assignments
0 Petitions
Accused Products
Abstract
A process that assists a computer programmer to perform an upgrade to a computer program while that program continues to operate and provide service. The upgrade process includes three phases: (1) the preparation by a computer programmer of a new computer program P″ that is to replace an existing computer program P, (2) an offline preparation of the upgrade from P to P″ with the assistance of the computer programmer, and (3) an online, fully automatic, live upgrade from P to P″.
-
Citations
17 Claims
-
1. A method for upgrading a set of objects of an object-oriented computer program, comprising:
-
(a) applying a first sequence of modifications to said objects to provide said objects with a mechanism for upgrade, said first sequence of modifications having no effect on the behavior of said objects;
(b) applying a sequence of atomic actions to said objects, said atomic actions effecting a change to the behavior of said objects; and
(c) applying a second sequence of modifications to said objects to remove from said objects the mechanism for upgrading, said second sequence of modifications having no effect on the behavior of said objects;
(d) wherein said objects are upgraded while said program is executing.
-
- 2. A method for upgrading a plurality of classes of objects of an object-oriented computer program, the method comprising the step of upgrading said classes wherein a coordinated upgrade set is determined such that the signatures of methods of objects of classes in the set that are invoked by objects of other classes in the set may be changed, but the signatures of methods of objects of classes in the set that are invoked by objects of classes not in the set remain unchanged.
-
7. A method for upgrading one or more objects of an object-oriented computer program, comprising:
-
upgrading each said object while said program is executing;
wherein there exist two or more replicas of each said object;
each replica being capable of providing service required from said object, so that, while each replica is being upgraded, the other replicas of said object can provide uninterrupted service;
wherein, as each said replica is being upgraded, state is transferred to said newly upgraded replica from another replica that continues to provide service while said replica is being upgraded, in order to bring the upgraded replica to a state that is consistent with the state of the other replicas that have continued to provide service during the upgrade; and
wherein all replicas of said object agree, collectively as a consensus decision, on whether a method invocation or response should precede or follow the state transfer.
-
-
8. A method for upgrading one or more objects of an object-oriented computer program, comprising:
-
upgrading each said object while said program is executing;
wherein there exist two or more replicas of each said object;
each replica being capable of providing service required from said object, so that, while each replica is being upgraded, the other replicas of said object can provide uninterrupted service; and
wherein all replicas of said object that is being upgraded, whether each said replica has or has not been upgraded, receive the same set of messages, containing method invocation or response operations, in the same order. - View Dependent Claims (9)
-
-
10. A method for upgrading one or more objects of an object-oriented computer program, comprising:
-
upgrading each said object while said program is executing;
wherein there exist two or more replicas of each said object;
each replica being capable of providing service required from said object, so that, while each replica is being upgraded, the other replicas of said object can provide uninterrupted service;
wherein, as each said replica is being upgraded, state is transferred to said newly upgraded replica from another replica that continues to provide service while said replica is being upgraded, in order to bring the upgraded replica to a state that is consistent with the state of the other replicas that have continued to provide service during the upgrade; and
wherein all replicas of said object that is being upgraded, whether each said replica has or has not been upgraded, receive the same set of messages, containing method invocation or response or state transfer operations, in the same order. - View Dependent Claims (11)
-
-
12. A method for upgrading one or more objects of an object-oriented computer program, comprising:
-
upgrading each said object while said program is executing;
wherein there exist two or more replicas of each said object;
each replica being capable of providing service required from said object, so that, while each replica is being upgraded, the other replicas of said object can provide uninterrupted service;
wherein, as each said replica is upgraded, state is being transferred to said newly upgraded replica from another replica that continues to provide service while said replica is being upgraded, in order to bring the upgraded replica to a state that is consistent with the state of the other replicas that have continued to provide service during the upgrade;
wherein all replicas of an object agree, collectively as a consensus decision, on whether a method invocation or response should precede or follow a state transfer; and
wherein all replicas of said object that is being upgraded, whether each said replica has or has not been upgraded, receive the same set of messages, containing method invocation or response or state transfer operations, in the same order. - View Dependent Claims (13)
-
-
14. A method for upgrading one or more objects of an object-oriented computer program, comprising:
-
upgrading each said object while said program is executing;
wherein there exist two or more replicas of each said object;
each replica being capable of providing service required from said object, so that, while each replica is being upgraded, the other replicas of said object can provide uninterrupted service; and
wherein all replicas of an object agree, collectively as a consensus decision, on whether an invocation or response operation should precede or follow the atomic switchover that upgrades an object. - View Dependent Claims (15)
-
-
16. A method for upgrading one or more objects of an object-oriented computer program, comprising;
-
upgrading each said object while said program is executing;
wherein there exist two or more replicas of each said object;
each replica being capable of providing service required from said object, so that, while each replica is being upgraded, the other replicas of said object can provide uninterrupted service;
wherein, as each said replica is being upgraded, state is transferred to said newly upgraded replica from another replica that continues to provide service while said replica is being upgraded, in order to bring the upgraded replica to a state that is consistent with the state of the other replicas that have continued to provide service during the upgrade; and
wherein all replicas of an object agree, collectively as a consensus decision, on whether an invocation, response or state transfer operation should precede or follow the atomic switchover that upgrades an object. - View Dependent Claims (17)
-
Specification