Search

US-12625760-B2 - System and method for machine-to-machine re-imaging

US12625760B2US 12625760 B2US12625760 B2US 12625760B2US-12625760-B2

Abstract

An error message is received from a first computing node indicating a malfunction associated with the first computing node. Based on a first error code received in the error message, a first software program is determined that is to be installed at the first computing node to resolve the malfunction. A geographically nearest second computing node to the first computing node is determined that includes the first software program. The second computing node is instructed to transmit the first software program to the first computing node. The second computing node transmits the first software program to the first computing node. The first computing node receives and installs the first software program at the first computing node.

Inventors

  • Saurabh Garg
  • Maneesh Kumar Sethia
  • Shailendra Singh

Assignees

  • BANK OF AMERICA CORPORATION

Dates

Publication Date
20260512
Application Date
20231002

Claims (17)

  1. 1 . A system comprising: a plurality of computing nodes connected to a network; and a processor communicatively coupled to the plurality of computing nodes and configured to: receive an error message from a first computing node of the plurality of computing nodes, wherein the error message indicates a malfunction associated with the first computing node and comprises a first machine identity (ID) associated with the first computing node, a node address associated with the first computing node, a geolocation associated with the first computing node, and a first error code generated by the first computing node relating to the malfunction; train a machine learning model based on a library of known error codes to determine one or more software programs based on a candidate error code; input the first error code to the trained machine learning model to determine a first software program that is to be installed at the first computing node to resolve the malfunction associated with the first computing node; determine, based at least on the determined first software program that is to be installed at the first computing node and the geolocation associated with the first computing node, at least one geographically nearest second computing node to the first computing node that comprises the first software program to be installed at the first computing node; and transmit a first command to the second computing node to transfer one or more first program files associated with the first software program from the second computing node to the first computing node, wherein the first command at least comprises the first machine ID associated with the first computing node, a first program ID associated with the first software program, and the node address associated with the first computing node; wherein: the second computing node transmits the one or more first program files to the first computing node at the node address associated with the first computing node; and the first computing node receives the one or more first program files from the second computing node and installs the first software program using the one or more first program files.
  2. 2 . The system of claim 1 , wherein the processor is further configured to determine the first software program that is to be installed at the first computing node by: searching a library of known error codes based on the first error code received in the error message, wherein: the library of known error codes comprises a plurality of known error codes; each known error code from the library is mapped to a software program that is known to cause a malfunction associated with the known error code and that is to be re-installed or updated at a respective computing node to resolve the malfunction; determining, based on the searching, a known error code from the library that matches with the first error code received in the error message; and determining that the first software program is mapped to the error code.
  3. 3 . The system of claim 1 , wherein: the error message further comprises a second error code generated by the first computing node relating to the malfunction associated with the first computing node; the processor is further configured to: determine, based on the second error code, a second software program that is to be installed at the first computing node to resolve the malfunction associated with the first computing node; determine, based at least on the determined second software program that is to be installed at the first computing node and the geolocation associated with the first computing node received in the error message, at least one geographically nearest third computing node to the first computing node that comprises the second software program to be installed at the first computing node; and transmit a second command to the third computing node for transferring one or more second program files to the first computing node over a peer-to-peer connection between the third computing node and the first computing node, wherein the second command at least comprises the first machine ID associated with the first computing node, a second program ID associated with the second software program, and the node address associated with the first computing node; wherein: the third computing node transmits the one or more second program files to the first computing node at the node address associated with the first computing node over the peer-to-peer connection; and the first computing node receives the one or more second program files from the third computing node over the peer-to-peer connection and installs the second software program using the one or more second program files along with installing the first software program.
  4. 4 . The system of claim 1 , wherein the processor is configured to determine the geographically nearest second computing node to the first computing node by: searching, based on the determined first software program that is to be installed at the first computing node and the geolocation associated with the first computing node, a list of the plurality of computing nodes, wherein each computing node in the list is at least associated with a geolocation of the computing node and one or more software programs installed at the computing node; and determining, based on the searching, a geographically nearest computing node to the first computing node that has the first software program installed, wherein the determined geographically nearest computing node is the second computing node.
  5. 5 . The system of claim 4 , wherein: the error message received from the first computing node further comprises a first geographical region where the first computing node is located; each computing node from the list is further associated with a geographical region where the computing node is located; the processor is further configured to search the list of computing nodes by: searching from only those computing nodes in the list that are located in the first geographical region where the first computing node is located.
  6. 6 . The system of claim 4 , wherein: each computing node from the list is tagged as active or inactive, wherein an active tag indicates that the computing node is operating normally and an inactive tag indicates that the computing node is not operational; the processor is further configured to search the list of computing nodes by: searching from only those computing nodes in the list that are tagged as active.
  7. 7 . The system of claim 1 , wherein: the processor is further configured to transmit the first command to the second computing node over a peer-to-peer connection between the second computing node and the first computing node; the second computing node transmits the one or more first program files to the first computing node at the node address associated with the first computing node over the first peer-to-peer connection; and the first computing node receives the one or more first program files from the second computing node over the first peer-to-peer connection.
  8. 8 . The system of claim 1 , wherein the plurality of computing nodes comprises Automated Teller Machines (ATMs).
  9. 9 . A method for resolving a malfunction associated with a computing node, the method comprising: receive an error message from a first computing node of a plurality of computing nodes connected to a, wherein the error message indicates a malfunction associated with the first computing node and comprises a first machine identity (ID) associated with the first computing node, a node address associated with the first computing node, a geolocation associated with the first computing node, and a first error code generated by the first computing node relating to the malfunction; training a machine learning model based on the library of known error codes to determine one or more software programs based on a candidate error code; inputting the first error code to the trained machine learning model to determine a first software program that is to be installed at the first computing node to resolve the malfunction associated with the first computing node; determine, based at least on the determined first software program that is to be installed at the first computing node and the geolocation associated with the first computing node, at least one geographically nearest second computing node to the first computing node that comprises the first software program to be installed at the first computing node; and transmit a first command to the second computing node to transfer one or more first program files associated with the first software program from the second computing node to the first computing node, wherein the first command at least comprises the first machine ID associated with the first computing node, a first program ID associated with the first software program, and the node address associated with the first computing node; wherein: the second computing node transmits the one or more first program files to the first computing node at the node address associated with the first computing node; and the first computing node receives the one or more first program files from the second computing node and installs the first software program using the one or more first program files.
  10. 10 . The method of claim 9 , wherein determining the first software program that is to be installed at the first computing node comprises: searching a library of known error codes based on the first error code received in the error message, wherein: the library of known error codes comprises a plurality of known error codes; each known error code from the library is mapped to a software program that is known to cause a malfunction associated with the known error code and that is to be re-installed or updated at a respective computing node to resolve the malfunction; determining, based on the searching, a known error code from the library that matches with the first error code received in the error message; and determining that the first software program is mapped to the error code.
  11. 11 . The method of claim 9 , wherein: the error message further comprises a second error code generated by the first computing node relating to the malfunction associated with the first computing node; further comprising: determining, based on the second error code, a second software program that is to be installed at the first computing node to resolve the malfunction associated with the first computing node; determining, based at least on the determined second software program that is to be installed at the first computing node and the geolocation associated with the first computing node received in the error message, at least one geographically nearest third computing node to the first computing node that comprises the second software program to be installed at the first computing node; and transmitting a second command to the third computing node for transferring one or more second program files to the first computing node over a peer-to-peer connection between the third computing node and the first computing node, wherein the second command at least comprises the first machine ID associated with the first computing node, a second program ID associated with the second software program, and the node address associated with the first computing node; wherein: the third computing node transmits the one or more second program files to the first computing node at the node address associated with the first computing node over the peer-to-peer connection; and the first computing node receives the one or more second program files from the third computing node over the peer-to-peer connection and installs the second software program using the one or more second program files along with installing the first software program.
  12. 12 . The method of claim 9 , wherein determining the geographically nearest second computing node to the first computing node comprises: searching, based on the determined first software program that is to be installed at the first computing node and the geolocation associated with the first computing node, a list of the plurality of computing nodes, wherein each computing node in the list is at least associated with a geolocation of the computing node and one or more software programs installed at the computing node; and determining, based on the searching, a geographically nearest computing node to the first computing node that has the first software program installed, wherein the determined geographically nearest computing node is the second computing node.
  13. 13 . The method of claim 12 , wherein: the error message received from the first computing node further comprises a first geographical region where the first computing node is located; each computing node from the list is further associated with a geographical region where the computing node is located; searching the list of computing nodes comprises: searching from only those computing nodes in the list that are located in the first geographical region where the first computing node is located.
  14. 14 . A non-transitory computer-readable medium storing instructions that when executed by a processor causes the processor to: receive an error message from a first computing node of a plurality of computing nodes connected to a, wherein the error message indicates a malfunction associated with the first computing node and comprises a first machine identity (ID) associated with the first computing node, a node address associated with the first computing node, a geolocation associated with the first computing node, and a first error code generated by the first computing node relating to the malfunction; train a machine learning model based on the library of known error codes to determine one or more software programs based on a candidate error code; input the first error code to the trained machine learning model to determine a first software program that is to be installed at the first computing node to resolve the malfunction associated with the first computing node; determine, based at least on the determined first software program that is to be installed at the first computing node and the geolocation associated with the first computing node, at least one geographically nearest second computing node to the first computing node that comprises the first software program to be installed at the first computing node; and transmit a first command to the second computing node to transfer one or more first program files associated with the first software program from the second computing node to the first computing node, wherein the first command at least comprises the first machine ID associated with the first computing node, a first program ID associated with the first software program, and the node address associated with the first computing node; wherein: the second computing node transmits the one or more first program files to the first computing node at the node address associated with the first computing node; and the first computing node receives the one or more first program files from the second computing node and installs the first software program using the one or more first program files.
  15. 15 . The non-transitory computer-readable medium of claim 14 , wherein determining the first software program that is to be installed at the first computing node comprises: searching a library of known error codes based on the first error code received in the error message, wherein: the library of known error codes comprises a plurality of known error codes; each known error code from the library is mapped to a software program that is known to cause a malfunction associated with the known error code and that is to be re-installed or updated at a respective computing node to resolve the malfunction; determining, based on the searching, a known error code from the library that matches with the first error code received in the error message; and determining that the first software program is mapped to the error code.
  16. 16 . The non-transitory computer-readable medium of claim 14 , wherein: the error message further comprises a second error code generated by the first computing node relating to the malfunction associated with the first computing node; the instructions further cause the processor to: determine, based on the second error code, a second software program that is to be installed at the first computing node to resolve the malfunction associated with the first computing node; determine, based at least on the determined second software program that is to be installed at the first computing node and the geolocation associated with the first computing node received in the error message, at least one geographically nearest third computing node to the first computing node that comprises the second software program to be installed at the first computing node; and transmit a second command to the third computing node for transferring one or more second program files to the first computing node over a peer-to-peer connection between the third computing node and the first computing node, wherein the second command at least comprises the first machine ID associated with the first computing node, a second program ID associated with the second software program, and the node address associated with the first computing node; wherein: the third computing node transmits the one or more second program files to the first computing node at the node address associated with the first computing node over the peer-to-peer connection; and the first computing node receives the one or more second program files from the third computing node over the peer-to-peer connection and installs the second software program using the one or more second program files along with installing the first software program.
  17. 17 . The non-transitory computer-readable medium of claim 14 , wherein determining the geographically nearest second computing node to the first computing node comprises: searching, based on the determined first software program that is to be installed at the first computing node and the geolocation associated with the first computing node, a list of the plurality of computing nodes, wherein each computing node in the list is at least associated with a geolocation of the computing node and one or more software programs installed at the computing node; and determining, based on the searching, a geographically nearest computing node to the first computing node that has the first software program installed, wherein the determined geographically nearest computing node is the second computing node.

Description

TECHNICAL FIELD The present disclosure relates generally to network communication, and more specifically to a system and method for machine-to-machine re-imaging. BACKGROUND In some cases, an error may occur in the functioning of a computing node causing the computing node to malfunction or fail. Often a malfunction associated with a computing node is caused by one or more software programs installed and running at the computing node. In one example, a corrupted file associated with a software program may cause the malfunction. In another example, an older version of a software program that has not been updated at the computing node may cause the malfunction. SUMMARY The system and method implemented by the system as disclosed in the present disclosure provide technical solutions to the technical problems discussed above by intelligently detecting a malfunction associated with a computing node, identifying a software program that caused the malfunction, and re-installing or updating the software program to resolve the malfunction. For example, the disclosed system and methods provide the practical application of detecting a malfunction associated with a computing node, determining a software program that needs to be installed or re-installed at the computing node to resolve the malfunction, identifying a nearest computing node that has the software program, and initiating transfer of program files associated with the software program from the nearest computing node to the malfunctioning computing node for installing or re-installing the software program at the malfunctioning computing node. As described in embodiments of the disclosure, the described system and method identify a computing node that has a lowest latency communication path to the malfunctioning computing node and command the computing node to transmit program files related to the software program over a peer-to-peer connection with the malfunctioning computing node. This reduces latency associated with resolving the malfunction and, in turn, reduces any downtime relating to the computing node caused by the malfunction. Further, reducing downtime relating to the computing node caused by the malfunction improves the performance of the computing node. In addition, having a nearest computing node transmit program files to the malfunctioning node saves network resources (e.g., network bandwidth) which would otherwise be used to transmit program files to the malfunctioning computing node from a faraway computing node. BRIEF DESCRIPTION OF THE DRAWINGS For a more complete understanding of this disclosure, reference is now made to the following brief description, taken in connection with the accompanying drawings and detailed description, wherein like reference numerals represent like parts. FIG. 1 is a schematic diagram of a system, in accordance with an embodiment of the present disclosure; and FIG. 2 illustrates a flowchart of an example method for resolving a malfunction at a computing node, in accordance with an embodiment of the present disclosure. DETAILED DESCRIPTION FIG. 1 is a schematic diagram of a system 100, in accordance with certain aspects of the present disclosure. As shown, system 100 includes a computing infrastructure 102 including a plurality of computing nodes 104 connected to a network 180. Computing infrastructure 102 may include a plurality of hardware and software components. The hardware components may include, but are not limited to, computing nodes 104 such as desktop computers, smartphones, tablet computers, laptop computers, servers and data centers, virtual reality (VR) headsets, augmented reality (AR) glasses and other hardware devices such as printers, routers, hubs, switches, input devices, output devices, and memory devices all connected to the network 180. In one example, embodiment, as shown in FIG. 1, the computing nodes 104 are automated teller machines (ATMs). The example system of FIG. 1 illustrates computing nodes 104a-104d (shown as ATMs) connected to the network 180. Software components may include software programs 110 that are run by one or more of the computing nodes 104 including, but not limited to, operating systems, user interface applications, web applications, third party software, database management software, service management software, metaverse software and other customized software programs implementing particular functionalities. For example, software code relating to one or more software programs 110 may be stored in a memory device and one or more processors may process the software code to implement respective functionalities. For example, an ATM may run several software programs 110 including an operating system, firmware associated with chipsets controlling various hardware devices and components of the ATM such as a card reader, a cash dispenser, a PIN pad, a receipt printer, sensors etc., and a customized software package including customized software tools and applications that impl