Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
INSTALLING AN OPERATING SYSTEM
Document Type and Number:
WIPO Patent Application WO/2018/211236
Kind Code:
A1
Abstract:
A method of an installing a new operating system on a consumer transaction machine having a previously installed operating system stored in permanent storage on the consumer transaction machine is described. The method comprises receiving installation media at the consumer transaction machine, the installation media comprising files associated with the new operating system; processing instructions of the installation media on a processor of the consumer transaction machine and in response installing the new operating system on the consumer transaction machine in a plurality of phases, the processor rebooting the consumer transaction machine between each of said plurality of phases. The method further comprises, in each of said plurality of phases: the processor establishing a network connection to a network; the processor initiating a remote control service on the consumer transaction machine, the remote control service connecting to a remote computing device coupled to the network using said network connection; after said connecting, the processor performing install steps associated with said phase using said installation media in response to remote input instructions received from the remote computing device.

Inventors:
CLARK ANDY (GB)
LYNN TOM (GB)
Application Number:
PCT/GB2018/051042
Publication Date:
November 22, 2018
Filing Date:
April 20, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
REALVNC LTD (GB)
International Classes:
G07F19/00; G06F8/60; G06F9/4401; G06F9/451
Foreign References:
EP1096445A22001-05-02
US6963981B12005-11-08
EP1096444A22001-05-02
US8631103B12014-01-14
US20040117414A12004-06-17
US20120131179A12012-05-24
US9081747B12015-07-14
Attorney, Agent or Firm:
MARKS & CLERK LLP (GB)
Download PDF:
Claims:
CLAIMS

1. A method of an installing a new operating system on a consumer transaction machine having a previously installed operating system stored in permanent storage on the consumer transaction machine, the method comprising:

receiving installation media at the consumer transaction machine, the installation media comprising files associated with the new operating system;

processing instructions of the installation media on a processor of the consumer transaction machine and in response installing the new operating system on the consumer transaction machine in a plurality of phases, the processor rebooting the consumer transaction machine between each of said plurality of phases, the method further comprising, in each of said plurality of phases:

the processor establishing a network connection to a network;

the processor initiating a remote control service on the consumer transaction machine, the remote control service connecting to a remote computing device coupled to the network using said network connection;

after said connecting, the processor performing install steps associated with said phase using said installation media in response to remote input instructions received from the remote computing device.

2. A method according to claim 1 , wherein the installation media comprises at least one setup application, the method further comprising, in each of said plurality of phases, the processor running the least one setup application to perform the install steps.

3. A method according to claim 2, the method further comprising, in each of said plurality of phases, the processor executing a sequence of commands to initiate said remote control service prior to performing the install steps associated with said at least one phase.

4. A method according to claim 2, the method further comprising, in each of said plurality of phases, the processor executing a sequence of commands to initiate said remote control service during the running of the setup application, wherein the sequence of commands initiate said remote control service before input instructions are required for the install steps associated with a said phase of said plurality of phases.

5. A method according to claim 3 or 4, wherein the installation media comprises a remote control service initiation program comprising said sequence of commands. 6. A method according to claim 5, wherein the remote control service initiation program is in the form of a script.

7. A method according to any of claims 3 to 6, wherein the installation media is preconfigured with the sequence of commands.

8. A method according to claim 6, the method further comprising, in at least one of said plurality of phases, the processor executing a further sequence of commands of said script once the install steps of said phase are complete to modify the installation media to cause said remote control service to be initiated on the automated banking machine after rebooting into a next phase of said plurality of phases.

9. A method according to any of claims 2 to 8, the method comprising in a first phase of said plurality of phases, a setup application of the at least one setup application associated with the first phase running on the processor determining that the consumer transaction machine meets install requirements associated with the new operating system; and ensuring the setup application will have access to said files associated with the new operating system after the rebooting performed in said first phase. 10. A method according to claim 9, wherein said ensuring comprises copying said files associated with the new operating system to the permanent storage on the consumer transaction machine.

1 1. A method according to claim 9, wherein said ensuring comprises determining that the installation media will be available to the setup application after the rebooting between said first phase and said subsequent phase.

12. A method according to any of claims 9 to 1 1 , wherein the installation media comprises files associated with a transient operating system, the method comprising: the processor in said first phase copying said files associated with said transient operating system to the permanent storage on the consumer transaction machine; the processor rebooting into said transient operating system once the processor has performed the install steps associated with said first phase;

after said connecting, the processor performing install steps associated with a pre-installation phase using said installation media in response to remote input instructions received from the remote computing device; and

copying said files associated with the new operating system to the permanent storage on the consumer transaction machine.

13. A method according to claim 12, the method further comprising:

the processor in said first phase partitioning the permanent storage on the consumer transaction machine into a plurality of partitions, and copying said files associated with said transient operating system to a partition of the plurality of partitions;

the processor rebooting into said partition and thus said transient operating system once the processor has performed the install steps associated with said first phase;

after said connecting, the processor performing install steps associated with a pre-installation phase using said installation media in response to remote input instructions received from the remote computing device; and

copying said files associated with the new operating system to the permanent storage on the consumer transaction machine. 14. A method according to any of claims 9 to 13, the method further comprising, in a second phase after said first phase or said pre-installation phase, the processor rebooting into the new operating system and after said connecting, the processor performing install steps associated with the second phase to tailor the new operating system to hardware of the consumer transaction machine in response to remote input instructions received from the remote computing device.

15. A method according to claim 14, the method further comprising, in a third phase after said second phase, the processor rebooting into the new operating system and after said connecting, the processor performing install steps associated with the third phase to configure user settings in response to remote input instructions received from the remote computing device.

16. A method according to any preceding claim, wherein the remote computing device is associated with a preconfigured Internet Protocol address, the method comprising the remote control service performing said connecting using the preconfigured Internet Protocol address.

17. A method according to any of claims 1 to 15, the remote control service connecting to the remote computing device by attempting to establish a connection to the remote computing device using an Internet Protocol address of a plurality of Internet Protocol addresses and in the event of failure to establish a connection, re- attempting to establish a connection to the remote computing device using at least one other Internet Protocol address of the plurality of Internet Protocol addresses.

18. A method according to any of claims 1 to 15, the remote control service connecting to a remote control system in the network using an Internet Protocol address of the remote control system, and connecting to the remote computing device in response to the remote computing device also connecting to the remote control system.

19. A method according to any of claims 1 to 15, wherein the consumer transaction machine is configured with an Internet Protocol address, the method comprising the remote control service listening on said Internet Protocol address and connecting to the remote computing device upon the remote computing device establishing a connection to the remote control service using said Internet Protocol address.

20. A method according to any of claims 1 to 15, the remote control service connecting to a cloud-based connection service using an address, and connecting to the remote computing device in response to the remote computing device also connecting to the cloud-based connection service.

21. A method according to any preceding claim, the method comprising receiving the installation media at an interface of the consumer transaction machine, said interface for interfacing with a removable data carrier, wherein the installation media is provided on said removable data carrier.

22. A method according to any preceding claim, the method comprising:

the processor using the remote control service to establish a connection to the remote computing device; and

receiving the installation media from the remote computing device via said connection. 23. A method according to any preceding claim, wherein the new operating system is an upgraded version of the previously installed operating system and replaces the previously installed operating system once installed

24. A method according to any of claims 1 to 22, wherein the new operating system is installed on the consumer transaction machine in addition to the previously installed operating system.

25. A method according to any preceding claim, wherein the consumer transaction machine is an automated banking machine

26. A consumer transaction machine having a previously installed operating system stored in permanent storage on the consumer transaction machine, the consumer transaction machine comprising:

an input for receiving installation media at the consumer transaction machine, the installation media comprising files associated with the new operating system; and a processor configured to:

process instructions of the installation media and in response install the new operating system on the consumer transaction machine in a plurality of phases, the processor rebooting the consumer transaction machine between each of said plurality of phases, the processor configured in each of said plurality of phases to:

establish a network connection to a network;

initiate a remote control service on the consumer transaction machine, the remote control service connecting to a remote computing device coupled to the network using said network connection; after said connecting, perform install steps associated with said phase using said installation media in response to remote instructions received from the remote computing device.

Description:
INSTALLING AN OPERATING SYSTEM

FIELD OF THE INVENTION The present invention relates to installing an operating system on a consumer transaction machine, in particular installing a new operating system on an automated banking machine having a previously installed operating system.

BACKGROUND

An automated banking machine (otherwise commonly referred to as an automated teller machine (ATM), cash point, cash machine etc.) operates to allow an authorized system user to carry out at least one transaction which may include the dispensing of cash, the making of deposits, the transfer of funds between accounts and account balance inquiries.

An automated banking machine runs an operating system (e.g. the Windows® operating system). An automated banking machine can be considered as equivalent to a desktop machine with two monitors, one displaying the screen that faces the user, and the other displaying an engineer's dashboard or sometimes the desktop of the operating system. For regulatory and security reasons, the version of the operating system installed on the automated banking machine needs to be upgraded from time to time. Upgrading an automated banking machine is typically a manual process. An engineer visits the machine, plugs in a DVD / USB drive with the Windows® upgrade media, and clicks through the various installation screens and provides input at the appropriate stage. SUMMARY OF THE INVENTION

The inventors have identified that if automated banking machine operators could perform this upgrade process remotely (including seeing the screen and providing input), they would be able to upgrade many automated banking machines from a single location, saving time and money. Remote control software such as VNC® by RealVNC® is a well-known tool for being able to see a remote computer's screen and send it input from another, more local, machine. Such software typically requires an operating system to be running to provide device management, networking, display capture and input injection services. However, when installing or upgrading an operating system, there is no operating system running in the traditional sense, as it is in the process of being replaced. This poses difficulties in how to run remote control software such as VNC® in such an environment.

Additionally, the remote control software needs to be running early enough in the upgrade process so that it can allow remote control of all screens that may come up that require user intervention. This presents difficulties as the networking configuration may not yet be established at these stages.

The present invention relates to the configuration of a computing device (e.g. such as an automated banking machine) to establish network connectivity, start a remote control service and cause it to connect back to a waiting technician, and allow remote control of all phases of an operating system upgrade.

The present invention therefore provides a method of an installing a new operating system on a consumer transaction machine having a previously installed operating system stored in permanent storage on the consumer transaction machine, the method comprising: receiving installation media at the consumer transaction machine, the installation media comprising files associated with the new operating system; processing instructions of the installation media on a processor of the consumer transaction machine and in response installing the new operating system on the consumer transaction machine in a plurality of phases, the processor rebooting the consumer transaction machine between each of said plurality of phases, the method further comprising, in each of said plurality of phases: the processor establishing a network connection to a network; the processor initiating a remote control service on the consumer transaction machine, the remote control service connecting to a remote computing device coupled to the network using said network connection; after said connecting, the processor performing install steps associated with said phase using said installation media in response to remote input instructions received from the remote computing device.

In this method, the installation media may comprise at least one setup application, the method further comprising, in each of said plurality of phases, the processor running the least one setup application to perform the install steps.

The method may further comprise, in each of said plurality of phases, the processor executing a sequence of commands to initiate said remote control service prior to performing the install steps associated with said at least one phase.

Alternatively, the method may further comprise, in each of said plurality of phases, the processor executing a sequence of commands to initiate said remote control service during the running of the setup application, wherein the sequence of commands initiate said remote control service before input instructions are required for the install steps associated with a said phase of said plurality of phases.

In either of the above cases, the installation media may comprise a remote control service initiation program comprising said sequence of commands. The remote control service initiation program may be in the form of a script.

The installation media may be preconfigured with the sequence of commands.

When the remote control service initiation program is in the form of a script, the method may further comprise, in at least one of said plurality of phases, the processor executing a further sequence of commands of said script once the install steps of said phase are complete to modify the installation media to cause said remote control service to be initiated on the automated banking machine after rebooting into a next phase of said plurality of phases.

In any of the above, the method may comprise in a first phase of said plurality of phases, a setup application of the at least one setup application associated with the first phase running on the processor determining that the consumer transaction machine meets install requirements associated with the new operating system; and ensuring the setup application will have access to said files associated with the new operating system after the rebooting performed in said first phase.

The step of ensuring the setup application will have access to said files associated with the new operating system after the rebooting performed in said first phase may comprise copying said files associated with the new operating system to the permanent storage on the consumer transaction machine.

Alternatively, the step of ensuring the setup application will have access to said files associated with the new operating system after the rebooting performed in said first phase may comprise determining that the installation media will be available to the setup application after the rebooting between said first phase and said subsequent phase. When the method comprises in a first phase of said plurality of phases, a setup application of the at least one setup application associated with the first phase running on the processor determining that the consumer transaction machine meets install requirements associated with the new operating system; and ensuring the setup application will have access to said files associated with the new operating system after the rebooting performed in said first phase, the installation media may comprise files associated with a transient operating system, and the method may comprise: the processor in said first phase copying said files associated with said transient operating system to the permanent storage on the consumer transaction machine; the processor rebooting into said transient operating system once the processor has performed the install steps associated with said first phase; after said connecting, the processor performing install steps associated with a pre-installation phase using said installation media in response to remote input instructions received from the remote computing device; and copying said files associated with the new operating system to the permanent storage on the consumer transaction machine.

The above method may further comprise: the processor in said first phase partitioning the permanent storage on the consumer transaction machine into a plurality of partitions, and copying said files associated with said transient operating system to a partition of the plurality of partitions; the processor rebooting into said partition and thus said transient operating system once the processor has performed the install steps associated with said first phase; after said connecting, the processor performing install steps associated with a pre-installation phase using said installation media in response to remote input instructions received from the remote computing device; and copying said files associated with the new operating system to the permanent storage on the consumer transaction machine.

In any of these, the method may further comprise, in a second phase after said first phase or said pre-installation phase, the processor rebooting into the new operating system and after said connecting, the processor performing install steps associated with the second phase to tailor the new operating system to hardware of the consumer transaction machine in response to remote input instructions received from the remote computing device.

In this case, the method may further comprise, in a third phase after said second phase, the processor rebooting into the new operating system and after said connecting, the processor performing install steps associated with the third phase to configure user settings in response to remote input instructions received from the remote computing device. In any of the above described methods, the remote computing device may be associated with a preconfigured Internet Protocol address, and the method comprises the remote control service performing said connecting using the preconfigured Internet Protocol address. Alternatively, the remote control service connects to the remote computing device by attempting to establish a connection to the remote computing device using an Internet Protocol address of a plurality of Internet Protocol addresses and in the event of failure to establish a connection, re-attempting to establish a connection to the remote computing device using at least one other Internet Protocol address of the plurality of Internet Protocol addresses.

Further alternatively, the remote control service connects to a remote control system in the network using an Internet Protocol address of the remote control system, and connects to the remote computing device in response to the remote computing device also connecting to the remote control system. Alternatively, when the consumer transaction machine is configured with an Internet Protocol address, the method may comprise the remote control service listening on said Internet Protocol address and connecting to the remote computing device upon the remote computing device establishing a connection to the remote control service using said Internet Protocol address.

Yet further alternatively, the remote control service connects to a cloud-based connection service using an address, and connects to the remote computing device in response to the remote computing device also connecting to the cloud-based connection service.

In any of the above described methods, the method comprises receiving the installation media at an interface of the consumer transaction machine, said interface for interfacing with a removable data carrier, wherein the installation media is provided on said removable data carrier.

The method may comprise: the processor using the remote control service to establish a connection to the remote computing device; and receiving the installation media from the remote computing device via said connection.

In the above methods, the new operating system may be an upgraded version of the previously installed operating system and replaces the previously installed operating system once installed. Alternatively, the new operating system may be installed on the consumer transaction machine in addition to the previously installed operating system.

In any of the above, the consumer transaction machine may be an automated banking machine The present invention also provides a consumer transaction machine having a previously installed operating system stored in permanent storage on the consumer transaction machine, the consumer transaction machine comprising: an input for receiving installation media at the consumer transaction machine, the installation media comprising files associated with the new operating system; and a processor configured to: process instructions of the installation media and in response install the new operating system on the consumer transaction machine in a plurality of phases, the processor rebooting the consumer transaction machine between each of said plurality of phases, the processor configured in each of said plurality of phases to: establish a network connection to a network; initiate a remote control service on the consumer transaction machine, the remote control service connecting to a remote computing device coupled to the network using said network connection; after said connecting, perform install steps associated with said phase using said installation media in response to remote instructions received from the remote computing device. These and other aspects will be apparent from the embodiments described in the following. The scope of the present disclosure is not intended to be limited by this summary nor to implementations that necessarily solve any or all of the disadvantages noted. BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the present disclosure and to show how embodiments may be put into effect, reference is made to the accompanying drawings in which: Figure 1 illustrates a schematic block diagram of a remote control system comprising a remote computing device and an automated banking machine;

Fig. 2 is a flowchart illustrating a method performed by a technician of the remote computing device;

Figure 3 is a schematic block diagram of example installation media which may be received at the automated banking machine; and

Figure 4 a flowchart illustrating a method performed by the automated banking machine in each of a plurality of phases of an operating system installation process.

DETAILED DESCRIPTION

Embodiments will now be described by way of example only.

Virtual Network Computing (VNC) allows a remote user using a computing device to view and control another computing device. This is achieved using a VNC viewer application running on one computing device (VNC Viewer) and a VNC server application running on the other computing device (VNC Server). The two devices are typically remote from one another, i.e. physically separated, and thus one computing device may be termed a local device and a second computing device may be termed a remote device. In the embodiments referred to below, the VNC viewer application and VNC server application are each referred to below as a remote control service.

Figure 1 shows various components of a remote control system comprising a remote computing device 10 which is connected via a network connection 38 to a local device 12 (physical machine). In embodiments, the local device 12 is a consumer transaction machine such as an automated banking machine which operates to allow an authorized system user to carry out at least one transaction which may include the dispensing of cash, the making of deposits, the transfer of funds between accounts and account balance inquiries (and other types of transactions well known to persons skilled in the art). In embodiments, the remote computing device 10 is operated by a technician.

The automated banking machine 12 comprises a processor 32 (e.g. a microprocessor), at least one display 26 and a networking subsystem 36 connected to the network connection 38. The remote device 10 comprises a processor 20 (e.g. a microprocessor), a display 14, an operating system 18 and a networking subsystem 24 that is connected to the network connection 38.

A VNC viewer application 22 is running on the remote device 12 to receive an image of the local device display via the networking subsystem 24 and output it on the remote device display subsystem 14. An input subsystem 16 running on the remote device 10 is configured to receive inputs made by the technician (e.g. movements of a cursor by moving a mouse and/or presses of keys on a keyboard by the technician) and communicate them to the local device 12 for processing.

A corresponding VNC server application 28 is running on the automated banking machine 12. The automated banking machine 12 further comprises an input injection subsystem 34 to input instructions from the technician, e.g. cursor (pointer) movements or other inputs. The VNC server application 28 together with the input injection subsystem 34 is configured to process inputs made by the technician (received from the pointer input subsystem 16), and to inject them into the operating system 40 running on the automated banking machine. The VNC server application 28 does this by making the appropriate API call that causes the operating system to move the mouse pointer, and then querying the operating system for the current position of the cursor.

Whilst Figure 1 shows a direct network connection between the remote computing device 10 and the automated banking machine 12, this is merely an example and other arrangements are envisaged as will be described in more detail below. The operating system 40 running on the automated banking machine 12 may be for example a Windows® operating system, macOS® operating system or a Linux® operating system, whilst these are currently common "families" of operating system, persons skilled in the art will be familiar with other operating systems that may run on the automated banking machine 12.

Embodiments of the present disclosure relate to the installation of a "new" operating system on the automated banking machine 12. The new operating system may be an upgraded version of an operating system in the same family previously installed on the automated banking machine 12 and replaces the previously installed operating system once installed, for example Microsoft® Windows® 10 may be installed to replace a previously installed Microsoft® Wndows® 7 operating system. Alternatively, the new operating system may be of a different "family", for example a Linux® operating system may be installed in addition to or to replace, a previously installed Microsoft® Windows® XP operating system. Persons skilled in the art will appreciate that it is possible to have multiple different operating systems installed on a computing device such as the automated banking machine 12, with one of the multiple different operating systems being chosen to run on start-up.

The installation of the new operating system on the automated banking machine 12 is implemented in several phases. In each of these phases, a remote control service needs to be configured, and configured to run before any setup questions (pertaining to the installation of the new operating system) are asked. The mechanism for configuring the remote control service can vary depending on the phase. The exact number, frequency and order of the phases may differ depending on the precise installation / upgrade scenario, and the nature of the new operating system being installed. Reference is now made to Figure 2 which is a flow chart for a process 200 performed by a technician of the remote computing device 10. At step S202, the technician prepares installation media (the files needed to install the new operating system) for the installation process. In particular, the installation media is customised to enable remote control of the automated banking machine 12 by the technician at each phase of the installation process, as described in more detail below. Example contents of the installation media are shown in Figure 3 which shows example installation media 300 for installing a new Microsoft® Windows® 7 operating system. It will be appreciated that Figure 3 is merely an example representation of contents of the installation media 300, in particular boot.wim and install.wim are specific system images relating to Windows® operating system and embodiments of the present invention are not limited to any particular family of operating system.

As shown in Figure 3, the installation media 300 may comprise boot-related files 302, an operating system (OS) setup application 303, a first windows image file 304 called boot.wim and a second windows image file 354 called install.wim.

The windows image file boot.wim 304 is an archive of a runnable pre-installation environment. The pre-installation environment is a typically a cut-down version of the operating system that is being installed, with enough driver and system support to copy files and perform setup operations. It does not rely on either the operating system that is being replaced, or its upgraded replacement. It may run completely from temporary volatile memory of the automated banking machine 12, or it may use some hidden storage on the disk of the machine being updated, or run in a separate partition. For Windows upgrades and installation, the pre-installation environment is known as Windows PE. Because the pre-installation environment operating system acts as an intermediary operating system used in the process of installing a new operating system on an automated banking machine 12 having a previously installed operating system the -installation environment operating system can be considered as a transient operating system. For other operating systems, this may be a live CD or other version of the operating system that runs completely in temporary volatile memory and does not run from permanent storage. The image file 304 can be customized and any customized version replaces the existing version on the installation media. To configure the pre-installation environment, it is necessary to modify the boot.wim file, either by modifying files already in the image, adding files within the image, or modifying registry files contained within the image. For other operating systems, there exist similar ways of modifying the startup actions and software that is run on the preinstallation environment.

As shown in Figure 3, the windows image file boot.wim 304 comprises a pre-installation system image 306 which comprises registry files 308, a remote control service 314, network drivers 316 and other files and components 318 needed to setup and run the pre-installation environment including a setup program (or otherwise termed herein as a setup application), e.g. X:\setup.exe. The setup application comprises a sequence of instructions that configure a processor to install the generalized version of the new operating system that is being installed. This may be implemented as one, or more than one, discrete executable applications, depending on the operating system in question. The pre-installation system image 306 may further comprise one or more scripts 312, which may be a wrapper script(s). As is known to persons skilled in the art, a wrapper script is named as such because it wraps (surrounds, book-ends) a program (the OS setup application 318 in the present invention) so that sequence of commands is run before and after the program.

As shown in Figure 3, the windows image file install.wim 354 comprises a system image 356 which contains a generalized version of the new operating system that is to be installed on the automated banking machine 12, with no machine-specific settings. The generalized operating system image 356 comprises registry files 358, a remote control service 364, network drivers 366 and other files and components 368 needed to be installed including an OS setup program (or otherwise termed herein as a setup application), e.g. windeploy.exe. The OS setup application 368 comprises a sequence of instructions that configure a processor to write configuration files to permanent storage on the automated banking machine and otherwise modify the installed and running operating system to turn it from a generalised operating system to one that knows how to work with all of the specific hardware on this specific machine (i.e. specialize it). The system image 356 may further comprise one or more scripts 362, which may be wrapper script(s). The boot-related files 302 are supporting files used to boot into the pre-installation system image 306 or the generalized operating system system image 356, the function of which will be apparent to persons skilled in the art, and are therefore not discussed further herein.

The existing operating system 40 running on the automated banking machine 12 has been set up with a remote control service (VNC server application 28 is installed) by normal mechanisms to allow remote control of the automated banking machine 12 by the upgrading technician using the remote computing device 10 (having VNC viewer application 22 installed).

Referring back to Figure 2, at step S204 the technician operates the remote computing device 10 to connect via remote control to the previously installed operating system 40 to establish a remote control session with the automated banking machine 12.

At step S206, the installation media is received at the automated banking machine 12. The installation media may be copied, via an existing network connection, to the automated banking machine 12. This speeds up the installation process, as files don't have to be fetched during installation, and the network connection can be fully utilised for remote control. A file transfer during a remote control session between the remote computing device 10 and the automated banking machine 12 could be used to transfer the installation media to the automated banking machine 12 (using network connection 38). Alternatively the installation media could be transferred to the automated banking machine 12 from a device outside of a remote control session (on a network connection other than network connection 38) using a number of other techniques well known to persons skilled in the art. In alternative scenarios the installation media is received at an interface of the automated banking machine, said interface for interfacing with a removable data carrier (e.g. CD, DVD, USB drive etc.), whereby the installation media is provided on the removable data carrier. Other mechanisms for deploying installation media to the automated banking machine 12 will occur to those who are skilled in the art.

At step S208 during the remote control session the technician of the remote computing device 10 controls the automated banking machine 12 to run an upgrade installer program previously installed on the automated banking machine 12 in the following way:

The technician mounts the installation media, and runs the OS setup application 303.

At step S210, the technician may respond to initial questions responsive to running the OS setup application 303 e.g. accepting terms of an End User License Agreement (EULA) associated with the new operating system. The technician of the remote computing device 10 provides such responses during the remote control session.

The OS setup application 303 ensures that the automated banking machine 12 meets install requirements associated with the new operating system, and then makes sure it will be able to access the files it is installing (e.g. the install.wim image file 354), either by making a local copy to permanent storage on the automated banking machine 12, or by determining that the installation media will be available to the OS setup application 318 after a reboot. If the OS setup application 318 determines that a pre-installation step is needed, it also ensures it will have access to a copy of the files it will need for the next stage of the process, the pre-installation environment (e.g. the boot.wim image file 354), by making a local copy to permanent storage on the automated banking machine 12.

Alternatively, the OS setup application 303 may cause the automated banking machine 12 to be configured such that the permanent storage on the automated banking machine 12 is partitioned and the pre-execution environment copied to a new partition. The automated banking machine 12 is then configured to boot into the new partition and thus the pre-execution environment on reboot, and a reboot is triggered. This maintains the previously installed operating system in case a rollback is needed, and is particularly relevant if the new operating system to be installed is not of the same family as the previously installed operating system, e.g. installing Linux® to replace Windows®.

At step S212, once this first phase is complete the OS setup application 303 causes the automated banking machine 12 to reboot. At step S212, the OS setup application 303 may configure the automated banking machine 12 to reboot into the copy of the pre-installation environment it has prepared, and then cause said reboot. Alternatively, due to the nature of the installation of the new operating system the OS setup application 303 may determine that a pre- installation step is not needed and boot into the generalized operating system system image 356. In more advanced deployments, the automated banking machine 12 can be configured to boot into a custom preinstallation environment. This can be done by the technician, or by a 3 rd party piece of software taking the place of the OS setup application 303 at this stage.

The process 200 then proceeds through further phases whereby a system image setup application causes the automated banking machine 12 to reboot between each of the further phases (e.g. OS setup application 318 if the machine has booted into the preinstallation environment, or OS setup application 368 if the machine booted into the generalized OS system image 356), wherein in each phase a remote control connection between the remote computing device 10 and the automated banking machine 12 is established at step S214 and the technician provides input instructions to the automated banking machine 12 at step S218 (e.g. provides responses to any questions and/or problems experienced by the OS setup application 318).

Reference is now made to Figure 4 which is a flow chart for an installation process 400 performed on the automated banking machine 12 during each of the further phases referred to above. In particular, Figure 4 provides more detail on the steps implemented on the automated banking machine 12 during the loop in Figure 2 of steps S212, S214, S216 and S218.

The installation process 400 is first described with reference to a pre-installation phase but it should be noted that the same techniques are used in other phases of the installation of the new operating system. Furthermore as already highlighted above, in some implementations, the OS setup application 303 may determine that a preinstallation step is not needed and boot into the generalized operating system system image 356. At step S402, the automated banking machine 12 boots into the copy of the pre- installation environment that the OS setup application 303 prepared (from the previously installed operating system) The pre-installation system image 306 is customized so that when it is booted, a remote control service starts and (typically) connects to a technician. This customization involves including the files needed to run the remote control service, as well as applying one of several configuration techniques (described in more detail below) to ensure the remote control service is started and sufficient networking services are available for a successful remote control connection to be made.

At step S404, a remote control service initiation program comprising a sequence of commands is executed to initialize the pre-installation environment to install device drivers 316 for networking hardware, enable networking, and obtain an Internet Protocol (IP) address for communication on the network. The IP address is typically dynamically allocated, although it can be set statically, along with any other networking settings. In the pre-installation phase for Windows® install or upgrade, drivers 316 can be added to boot.wim ahead of time. At step S406, the remote control service initiation program starts the remote control service 314. The network should be up before the remote control service 314 is started. However, the remote control service 314 can be configured to wait for the network to become available as part of its startup process. There are various techniques which may be employed for ensuring a remote control service is started before user interaction is required for the installation steps associated with the phase.

When rebooted, a computing device is configured by the BIOS (or equivalent) to look for the next program to run in a particular location. There then follows a long chain of programs which are run in the normal sequence of 'booting' an operating system (be that a pre-installation operating system, a generalized operating system, or a full operating system). During this sequence, the boot-up sequence looks in a configuration file (which may be the registry 308) to determine which program to run next. A first technique includes adjusting the start-up commands 310 by modifying the registry 308 in boot.wim 304 so that the sequence of commands of the remote control service initiation program is run to initiate the remote control service 314 instead of the OS setup application 318 on boot. This sequence of commands may run before and after the OS setup application 318, and thus may take the form of a wrapper script (e.g. wrapper script 312 in the pre-installation phase). Examples of commands that would be included in a wrapper script 312 to be run in the preinstallation environment include the wpeinit command to enable networking, and the drvload command to load the driver 316. The inventors have identified that it may not be possible to modify registry 308. In these scenarios a second technique may be used which includes including a remote control service initiation program in the installation media having a sequence of commands which when run initiates the remote control service 314 before handing control back to the original setup program 318, which has been saved as a copy (e.g. original- setup.exe) to permanent storage on the automated banking machine 12. This can be achieved by the technician, at step S202, by renaming the setup program 318 (e.g. from setup.exe to original-setup.exe) and giving the original name (e.g. setup.exe) of the setup program 318 to the remote control service initiation program. Thus when the boot-up sequence tries to run 'setup.exe' it will get the remote control service initiation program, rather than the setup program 318. The sequence of commands may run before and after the OS setup application 318, and thus may take the form of a wrapper script (e.g. wrapper script 312 in the pre-installation phase).

A third technique includes configuring the OS setup application 318 to make calls to other programs (e.g. the remote control service initiation program referred to above) or scripts during the setup process to start the remote control service 314 by supplying a configuration file in the pre-installation system image 306 for execution at runtime. This is possible provided that the OS setup application 318 has 'setup hooks' early enough in the sequence such that they can start the remote control service 314 before user interaction is required. When this technique is used, the OS setup application 318 performs the driver, networking and IP address steps of step S404.

In each case, an additional sequence of commands may be configured to run after the OS setup application 318 has ended, e.g. to modify the start-up environment of the next phase. Details of how a system might be configured to do this in each phase are provided below.

At step S408, the remote control service 314 running on the automated banking machine 12 establishes a connection to the remote computing device 10.

The remote computing device 10 may have a preconfigured IP address, in which case the remote control service 314 is configured to connect out to that IP address where the remote computing device 10 is listening (i.e. actively listening for network communication on one or more ports of the remote computing device 10). The remote computing device 10 may not be listening, or there may be a transient network error, in which case the remote control service 314 is configured to repeatedly attempt to connect out to the remote computing device 10. Alternatively, to spread the load around multiple technicians (operating respective remote computing devices), the remote control service 314 may be configured to try one of several IP addresses, either in a fall-back order or in a round-robin scheme. Other schemes may occur to those skilled in the art. Alternatively, the remote control service 314 may be configured to connect to a central queue / holding system (otherwise referred to herein as a remote control system) in the network, where remote control sessions are held pending until the next available technician is free to accept the remote control request. That is, the remote control service 314 may be configured to connect to the remote control system in the network using an IP address of the remote control system, and connecting to the remote computing device 10 in response to the remote computing device 10 also connecting to the remote control system.

Alternatively, the automated banking machine 12 may be configured with an IP address which the remote control service 314 is configured to listen on. The technician can then establish a connection from their remote computing device 10 to the listening remote control service 314 on the automated banking machine 12.

Instead of using IP addresses, other address for connectivity between the remote computing device 10 and the automated banking machine 12 may be used. For example, the remote computing device 10 and the automated banking machine 12 may both be assigned a respective cloud address for connecting to a cloud-based connection service in the network. The cloud address is a unique identifier that is either issued to or constructed by the automated banking machine 12. It is used to identify the machine as a source (or destination) for routing communications traffic. It can take any form, so long as it uniquely identifies the machine in question. It may be a long sequence of characters & digits, or a universally unique identifier (UUID) as described by RFC 4122, etc. Once the cloud-based connection service knows where the two endpoints are, it can broker a connection between the two endpoints (by establishing a direct connection between them or acting as a data relay passing the data between the two endpoints throughout the duration of the connection).

At step S408, the remote control service 314 may be configured to pause at this stage until a technician is connected. There may be a timeout after which the remote computing device 10 may be configured to reboot into the previously installed operation system and report an installation failure, so the automated banking machine 12 isn't out of action for too long. Other error reporting strategies may occur to those skilled in the art. Although the above description has been referring to a technician (a human) operating the remote computing device 10, the remote computing device 10 could be configured as an automated or semi-automated system that can recognize different parts of the upgrade process and provide appropriate automated responses. Thus in some embodiments, it is not necessary for a technician to provide all of the input instructions that are to be sent to the automated banking machine 12.

In the event of a disconnection, the remote control service 314 is configured to reconnect to the remote computing device 10 (or remote control system or cloud-based connection service). Again, if there is no reconnection within a certain time, the upgrade installation can be configured to fail, and an error reported as described above.

After a remote control connection has been established, control can be handed back to the OS setup application 318 that runs to perform installation steps at step S410, with the technician being able to provide appropriate input instructions when required during these installation steps using the established remote connection.

During the pre-installation phase, the generalized operating system system image 356 is deployed to the automated banking machine's permanent storage by the OS setup application 318 in step S410. For Windows® upgrades, this system image is typically contained within install.wim in the installation media (as shown in Figure 3). During the pre-installation phase, additionally makes any custom izations may be made to the system image 356 by the OS setup application 318 after the image has been deployed These are changes that can be made to the system image 356 deployed to the permanent storage, without needing data specific to the running operating system. In other operating system installations, and where the newly installed operating system can be configured without it being running, the user may be prompted for configuration details which are then written to permanent storage.

The customizations to the system image 356 referred to above are steps performed by the OS setup application 318 in this phase using technology provided by the OS vendor. They are configured if the technician makes certain choices within the OS setup application 318 at an earlier stage (e.g. for Linux® installations, the user is prompted to select the keyboard layout and time zone at this stage. These choices are independent of the hardware on the computing device, and so can be applied to the recently deployed system image 356).

The technician may make additional customisations to boot.wim and install.wim on the installation media at step S202 to specify e.g. additional Windows® components to install, or ones to omit.

At step S412, steps are taken to ensure that the remote control service 364 is started in the next phase.

Modifications may be made to the generalized operating system system image 356 ahead of time by the technician (e.g. at step S202) such that an additional sequence of commands are run after the installation steps performed by the OS setup application 318 at step S410 have been completed.. In order to provide remote monitoring and control in the next phase any of the above techniques (described above with reference to the pre-installation phase) may be used. In particular, the start-up commands 360 may be adjusted by modifying the registry 358 in install. wim 354 so that a script comprising a sequence of commands of a remote control service initiation program is run to initiate the remote control service 364 instead of the OS setup application 368 on boot, or the system image 356 may comprise a remote control service initiation program having a sequence of commands which when run initiates the remote control service 364 before handing control back to the original setup program 368, which has been saved as a copy to permanent storage on the automated banking machine 12.

In the scenario whereby the OS setup application 318 was started as part of a wrapper script at step S410, after the OS setup application 318 has completed performing the installation steps associated with the pre-installation phase, control is passed back to the wrapper script 312, and step S412 may comprise the modification of the files that have been previously copied to the permanent storage on the automated banking machine 12 before reboot (e.g. the start-up commands 360). In particular, an additional sequence of commands is run to ensure the remote control service 364 starts when the next phase boots, especially if the commands 360 cannot be fully predicted before upgrade (if they could, install.wim could just be modified ahead of time). Both the first and second techniques described above can be used in this pre-boot step at the end of the phase. For example using the first technique, the additional sequence of commands adjust the start-up commands 360 by modifying the registry 368 in install.wim 354 so that the remote control service initiation program is run to initiate the remote control service 364 instead of the OS setup application 368 on boot. Using the second technique, the additional sequence of commands rename the setup program 368 (e.g. from windeploy.exe to original-windeploy.exe) and give the original name (e.g. windeploy.exe) of the setup program 368 to the remote control service initiation program. Thus when the boot-up sequence tries to run 'windeploy.exe' it will get the remote control service initiation program, rather than the setup program 318.

Alternatively, the starting of the remote control service 364 in multiple future phases could be configured at this point, if the relevant commands are not context-dependant.

At step S414, the automated banking machine 12 reboots into the next phase. In some install and upgrade scenarios, the process continues to second pre-installation phase with a boot into a second pre-installation environment for further installation steps (rather than straight into the generalized operating system system image 356). The same techniques can be used to configure remote control in this phase.

Whilst the installation process 400 has described with reference to a pre-installation phase it should be noted that the same techniques are used in other phases of the installation of the new operating system.

During a specialization phase (also referred to herein as a second phase) the automated banking machine 12 has been configured to boot into the generalized operating system system image 356 that has been installed onto the automated banking machine's permanent storage. The automated banking machine 12 may boot into the specialization phase from the first phase, pre-installation phase or second pre- installation phase. In the specialization phase, the operating system installation is specialized so that it is tailored to the hardware it is running on and the environment it is running in.

In order to provide remote monitoring & control of this phase, the same set of techniques as were described with respect to the pre-installation phase can be used. In particular, preconfiguring the start-up command 360 for the image 356 can be done ahead of time by modifying the install. wim image, or it can be done as a pre-reboot step at the end of the pre-installation phase. After the remote control service 364 has started, control can pass to the setup program 368 to continue the upgrade or setup process. This setup program 368 is responsible for writing configuration files to permanent storage on the automated banking machine and otherwise modifying the installed and running operating system to turn it from a generalised operating system to one that knows how to work with all of the specific hardware on this specific machine (i.e. specialize it).

As drivers 366 are being initialized in this phase, the remote control service 364 may be configured to continue to retry if it does not yet have a network connection. Alternatively, it may be necessary to script the early set-up of the networking stack 36 and the obtaining of an IP address before the specialization phase setup program 368 runs. To get a remote control service running in this phase, similar techniques can be used as described above. In particular, modifying the startup command 360 to start networking and then the remote control service 364 is preferable. It is important to start this before the specialization phase proper, but note that network drivers etc. may not be configured until the specialization phase is taking place. Thus it is important to have the startup script constantly retry connections until networking is ready, etc.

Alternatively, the setup program 368 may be configured to install, configure and run the remote control service 364 as an installed component in the new operating system as part of the setup process. Care must be taken to ensure this component is installed early enough in the sequence to be useful, but that networking is already up by this point. At the end of this process, the setup process will adjust the startup command 360 in the operating system to start a final phase (also referred to herein as a third phase) on reboot. As the setup process ends, control can pass back to a wrapper script 362, and gives us the opportunity to read and modify this startup command with the wrapper script 362 again (for example in the same manner as described above with reference to the end of the pre-installation phase using either of the first or second techniques), ensuring that we wrap the correct new command for the final phase.

The final-phase start-up command is modified to boot remote control at the end of the specialization phase, as there is no opportunity to pre-modify it in an image on the installation media.

During the final phase the OS boots back into the same operating system (system image 356) that's now a specialized version and a final phase setup program (which may be the same as setup program 368 or a different setup program not shown in Figure 3) is run to present a series of screens designed to set up initial user settings, e.g. account details, preferred homepage, etc. and any other first-run activities that need user input and cannot / are not pre-configured earlier. The final phase setup program modifies installed files on permanent storage as a result responses it receives from the technician. Persons skilled in the art will be aware of common Out of box experience' steps that may be performed in this phase Remote control services for this phase can be set up using similar techniques to those described earlier. Alternatively, the system can be configured to allow an installed remote control service to run at this stage (e.g. a remote control service installed during the specialization stage or included in a modified install.wim on the installation media, in a generalized form). Care must be taken to ensure that networking information has been preconfigured so that a network connection for remote control is available.

In the event of an error at this stage, the automated banking machine 12 may be configured to run a custom script reporting failure back to the upgrading technician.

Referring back to Figure 2, once installation of the new operating system on the automated banking machine 12 is complete, remote access to the automated banking machine 12 is maintained through the use of remote control software. For an operating system upgrade scenario, the remote control software on the automated banking machine 12 could be the same as the one used on the previously installed operating system, having come through the upgrade still installed. For a new operating system install scenario, the remote control software on the automated banking machine 12 could be installed as part of the new operating system system image.

The technician then disconnects the remote control session with the remote computing device 10 at step S220.

For some installations and upgrades, the remote control service 314, 364 must run with administrative privileges in order to get an image of the at least one display 36 and inject input into every screen. In these embodiments, the wrapper scripts (or similar) are configured to start the remote control service 314, 364 with appropriate permissions. Similarly, the setup program 318, 368 may need to be configured to explicitly allow remote control software to run, e.g. through registry configuration.

The number of phases and their nature may vary depending on the operating system being upgraded / installed, the condition of the machine being upgraded, and any user- specified settings for the setup process. The techniques described here can be applied to each phase as required by those skilled in the art.

This sequence of phases referred to above is presented as an example, and no doubt other equivalent arrangements will occur to those skilled in the art.

While embodiments have been described above with reference to an automated banking machine, embodiments extend to other types of consumer transaction machines such as EPoS machines (including self-operated supermarket checkout terminals, hotel kiosks, restaurant PoS machines etc.)

While this invention has been particularly shown and described with reference to preferred embodiments, it will be understood to those skilled in the art that various changes in form and detail may be made without departing from the scope of the invention as defined by the appendant claims.