US 9,811,331 B2
Collaborative maintenance of software programs
Fabio Barillari, Rome (IT); Ilaria Gorga, Rome (IT); and Sandro Piccinini, Rome (IT)
Assigned to International Business Machines Corporation, Armonk, NY (US)
Filed by INTERNATIONAL BUSINESS MACHINES CORPORATION, Armonk, NY (US)
Filed on Oct. 20, 2015, as Appl. No. 14/887,818.
Claims priority of application No. 1418706.6 (GB), filed on Oct. 21, 2014.
Prior Publication US 2016/0110182 A1, Apr. 21, 2016
Int. Cl. G06F 9/44 (2006.01); G06F 9/445 (2006.01); G06F 11/14 (2006.01)
CPC G06F 8/65 (2013.01) [G06F 11/1433 (2013.01)] 11 Claims
OG exemplary drawing
 
1. A computer-implemented method of maintaining software instances of a software program in a computing environment, the computer-implemented method comprising:
receiving an updating request for an updating process of a plurality of software instances from an old level to a new level;
attempting to update each software instance of the plurality of software instances to the new level according to at least one updating policy; and
based on a failure of the updating of a failed instance of the plurality of software instances:
searching for an exchanging instance among other software instances according to at least one searching policy, the exchanging instance being adapted to be exchanged with the failed instance for continuing the updating process according to at least one optimization criterion of the computing environment;
exchanging the failed instance and the exchanging instance based on a positive result of the searching; and
resuming the updating process corresponding to the failed instance;
wherein the searching for the exchanging instance comprises:
broadcasting an exchanging request to each one of the other software instances;
receiving a positive response to the exchanging request from one or more software instances of the other software instances being adapted to be exchanged with the failed instance, the exchanging instance being selected among the one or more software instances for which the positive response has been received, and for each software instance of the one or more software instances, the method further comprises:
receiving the exchanging request for the failed instance;
verifying whether the software instance is adapted to be exchanged with the corresponding failed instance based on the exchanging request; and
returning the positive response to the exchanging request when the software instance is adapted to be exchanged with the corresponding failed instance.