# Patent

## Title
Method and system for migrating stored data to a build-to-order computing system

## Abstract

A method and system for migrating data to a build-to-order computing system is provided. The method comprises storing an image at a remote site. The image comprises data stored on a computing system. An order is received to provide a second computing system to a customer. Access to the image is provided to the second computing system such that the second computing system can store the image.

## Background
CROSS REFERENCE TO RELATED APPLICATION
This application is a continuation of U.S. patent application Ser. No. 10/745,175 now U.S. Pat. No. 6,912,552 entitled “Method and System for Migrating Stored Data to a Build-to-Order Computing System” filed Dec. 23, 2003, by Edward A. Hubbard, et al.; which is a continuation of U.S. patent application Ser. No 09/378,020 entitled “Method and System for Migrating Stored Data to a Build-to-Order Computing System” filed Aug. 19, 1999 by Edward A. Hubbard, et al., now U.S. Pat. No. 6,760,708.


TECHNICAL FIELD
The present disclosure relates in general to storage for computing systems and, more particularly, to a method and system for migrating data to a build-to-order computing system.
BACKGROUND
A user can have several reasons for replacing an existing computing system such as a personal computer (“PC”). For example, the computing system may experience a hardware fault that requires replacement. Alternately, the user may desire to upgrade to a computing system with better performance characteristics.
Replacing an existing computing system presents a problem, however, with respect to data stored on the existing system. The user often wishes to maintain the data, and migrate the data to the new computing system.
Therefore, it is desirable for the user to have a backup, or copy, of the data stored on the existing computing system. For example, such a copy, or “image”, can comprise data stored on the hard drive of an existing computing system. The user can then copy the image onto the new computing system. In such a way, a user moves his personal data to the new computing system.
However, several problems arise with this process. For example, a user cannot always predict the need to procure a new PC. A user cannot predict a failure, and it is possible such a failure will prohibit access to the user's data on the existing PC. Therefore, a user must institute a diligent backup process, such that in an event of a failure, the user can revert to the “last known good” data. Such diligence is time consuming and inconvenient.
Another problem is that storage of the backup may require large amounts of storage space, which can be cost prohibitive. Furthermore, storage of the backup on the user's premises does not protect the data from problems such as theft, fire, or corruption, that can occur at the user's premises.
Even if the customer overcomes these difficulties and maintains an image of the existing data, the copying of the image to the new computing system is labor intensive. There can be large amounts of data, requiring an inconvenient amount of time.
A related problem is the event of a software failure. It is possible that such a failure, for example an operating system (“OS”) failure, will prohibit access to the user's computing system. It is further possible that replacing the OS with the last known good version will fix the failure. However, even if the user has access to an image including the last-known-good version of the OS, the failure may prevent the user from copying the image onto the computing system.
There exists conventional solutions to some of the above problems. For example, there are conventional backup utilities that can store an image of the user's computing system on tapes, floppy disks, or other removable media. There also exists a conventional backup utility that can store an image at a remote site over the Internet.
However, none of the above conventional solutions address the inconvenience encountered by a user that desires to upgrade his computing system yet maintain his own data. Furthermore, the conventional solutions do not address the situation where a software failure prevents restoring the computing system to the last known good configuration.
SUMMARY
In accordance with the present embodiment, a method and system for migrating data to a build-to-order computing system are disclosed that provide significant advantages over prior developed systems. The embodiment allows a user to upgrade to a new computing system, or repair an existing computing system, without losing existing data.
According to one aspect of the present embodiment, a method comprises storing an image at a remote site. The image comprises data stored on a first computing system. An order is received to provide a second computing system to a customer. Access to the image is provided to the second computing system such that the second computing system can store the image.
More specifically, one embodiment of the method includes storing the image on a medium integrated into the second computing system.
Another embodiment of the method comprises installing a partition on the second computing system. The partition is operable to: boot the second computing system, have the second computing system establish a connection to the remote site, and have the second computing system download the image.
According to another aspect of one embodiment, a system comprises a remote site for storing an image. The image comprises data stored on a computing system. An order engine comprises executable instructions running on a computing platform. The order engine is operable to receive an order to provide a second computing system to a customer. A storage engine interfaces with the order engine. The storage engine comprises executable instructions running on a computing platform. The storage engine is operable to provide access to the image by the second computing system such that the second computing system can store the image.
It is a technical advantage that off-site storage of an image comprising data stored on the computing system is allowed. This protects the user's data in the event of hardware failure, fire, theft, or other corruption. The off-site storage also allows for a sharing of storage resources between many users, leading to a lower cost to the user.
Another technical advantage is that storage of an image of the use's computing system can be performed periodically. This makes it easier to return to a “last known good” software state if necessary.
It is another technical advantage that a boot-to-web partition can be installed on the user's computing system. In the event the computing system experiences a failure, the computing system can boot-to-web and recover an image of the data stored on the computing system before the failure occurred. This allows a return to the “last known good” software state of the computing system.
It is a further technical advantage time is saved associated with upgrading to a new computing system. The embodiment allows a user to upgrade, change, or even duplicate an existing system, without having to take the time to load the new computing system with data from the existing computing system.
Another advantage is that an improved a “build-to-order” computer manufacturing process is possible. A manufacturer can take an order from a customer for a new computing system, and load the new computing system with an image of data particular to that customer.
Other technical advantages should be apparent to one of ordinary skill in the art in view of the specification, claims, and drawings.



BRIEF DESCRIPTION OF THE DRAWINGS
A more complete may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and wherein:
FIG. 1 is a block diagram of one embodiment of a system for migrating data to a build-to-order computing system;
FIG. 2 is a block diagram of one embodiment of a system for migrating data to a build-to-order computing system including user site distribution;
FIG. 3 is a block diagram of one embodiment of a system for migrating data to a build-to-order computing system including a boot to web partition;
FIG. 4 is a flow diagram of one embodiment of a method for migrating data to a build-to-order computing system;
FIG. 5 is a flow diagram of another embodiment of a method for migrating data to a build-to-order computing system; and
FIG. 6 is a flow diagram of a further embodiment of a method for migrating data to a build-to-order computing system.



DETAILED DESCRIPTION
FIG. 1 is a block diagram of one embodiment of a system for migrating data to a build-to-order computing system. A system, indicated generally at 10, includes a remote site 22 and a factory site 30.
A user site 14 interfaces with remote site 22 and factory site 30. A first computing system 15 resides at user site 14. In the embodiment of FIG. 1, first computing system 15 comprises a PC, including a hard drive 16 integrated into first computer system 15.
Remote site 22 includes storage 26. Factory site 30 includes computing platform 34. Computing platform can be, for example, a high end workstation, a file server, or other computing device. Executable instructions running on computing platform 34 include an order engine 35 and a storage engine 36 interfaced with order engine 35. In the embodiment of FIG. 1, as explained below, factory site 30 can also house a second computing system 37 and/or compact disc 42. Second computing system 37 can be, for example, a PC with a hard drive 38 integrated within second computing system 37.
In operation, first computing system 15 communicates with remote site 22 through a network 18. Network 18 can comprise for example, the Internet, an intranet, dedicated line, or other communication system. Such communication can occur with the use of a modem coupled to first computing system 15 and interfacing with network 18. Through such communication, remote site 22 stores an image 27 comprising data stored on hard drive 16 onto storage 26. A mechanism to uniquely identify the source of image 27 is included onto storage 26. The present embodiment can also encrypt image 27 to secure the data contained within image 27.
One example of such a storage mechanism can be a periodic, automatic update system. Periodically, such as every night or other user-definable time period, first computing system 15 creates a connection to remote site 22 and storage 26. Storage 26 then stores an image 27 of data on first computing system 15. After remote site 22 stores the first such image 27, subsequent stores can be incremental, meaning only changed data on first computing system 15 is stored into image 27. This embodiment provides several advantages to the user. The fact that image 27 is stored remote from user site 14 protects the user's data from catastrophes such as fire and theft. Additionally, the automatic nature of the on-line storage reduces the diligence required of the user and the inconvenience placed upon the user.
Further in operation, the user makes an order 39 for a second computing system. For example, the user may desire to replace first computing system 15. In the embodiment of FIG. 1, order engine 35 receives order 39. The present embodiment contemplates various methods for receiving order 39. For example, the user may place order 39 over the Internet, at a web-site communicating with order engine 35 and designed to receive such orders. Alternately, the user may phone a receiving center to place order 39. An operator at such a receiving center could communicate with order engine 35 and place order 39. Order 39 includes a unique identifier associated with first computing system 15.
Storage engine 36 interfaces with order engine 35 and provides access to image 27 by second computing system 37. The present embodiment contemplates storage engine 36 providing such access through several mechanisms.
One such mechanism is to store image 27 onto a medium integrated with second computing system 37. For example, storage engine 36 could create a connection to remote site 22 through network 18. Storage engine 36 then identifies image 27 through the unique identifier associated with first computing system 15, and communicated through order 39. Storage engine 36 then downloads image 27 and stores image 27 onto a hard drive 38 integrated into second computing system 27. Second computing system 37 can then be shipped to the user. The user now has an upgraded computing system that includes image 27 of the data from first computing system 15.
Alternately, storage engine 36 could store image 27 onto a medium accessible by second computing system 37. For example, storage engine 36 could store image 27 onto a compact disc 42. Second computing system 37 and compact disc 42 is then shipped to the user.
Further indicated by FIG. 1 is an alternate embodiment whereby first computing system 15 communicates with factory site 30 through network 18. In such an embodiment, factory site 30 can store image 27, for example on computing platform 34.
As indicated by FIG. 1, FIGS. 2 and 3 discuss further alternate mechanisms for providing access to image 27 by second computing system 37.
FIG. 1 further shows the applicability of the present embodiment to a computer manufacturer using a build-to-order process. In such a process, a customer orders a build-to-order computer with a customized configuration. For example, the customized configuration may include specific hardware types as well as specific software applications. The manufacturer assembles the build-to-order computer to these customized configuration instructions, and loads the software applications desired by the customer. Furthermore, through the present embodiment, the manufacturer also loads onto the build-to-order computer an image of the customer's own data. Such a system reduces greatly the inconvenience experienced by a customer desiring to replace an existing computer.
FIG. 2 is a block diagram of one embodiment of a system for data migration including user site distribution. A system 11 includes remote site 22 in communication with a user site 50 over network 18. Customer site 50 includes a customer site storage 54 and a plurality of second computing systems 58. This embodiment may be representative, for example, of a large PC roll out into a corporate customer site 50.
In operation, image 27 is stored at remote site in storage 26, as in the embodiment of FIG. 1. However, system 11 waits until second computing systems 58 arrive at customer site 50 before loading image 27 onto second computing systems 58. System 11 first downloads image 27 to customer site storage 54, and then customer site storage 54 distributes image 27 to the appropriate second computing system 58. By such a system, a large number of images 27 can be stored at remote site 22, the images corresponding to a customer's different computers. The customer then orders a new group of second computing systems 58, and places them where desired. Customer site storage 54 then downloads and directs the appropriate image 27 for each second computing system 58.
FIG. 3 is a block diagram of one embodiment of a system for migrating data to a build-to-order computer including a partition. In the embodiment of FIG. 3, system 12 includes factory site 30 and remote site 22, as in the embodiment of FIG. 1. Factory site 30 includes computing platform 34, order engine 35, and storage engine 36.
In operation, as in the embodiment of FIG. 1, remote site 22 stores image 27 of a first computing system, and a unique identifier associated with image 27. A customer places order 39 and order engine 35 receives such an order. However, in the embodiment of FIG. 3, storage engine 36 installs a partition 64 onto a second computing system 60. The unique identifier of image 27 can also be integrated into partition 64 by storage engine 36.
Partition 64 can comprise, for example, a boot-to-web partition. One such partition could include the functionality as described in U.S. patent application Ser. No. 09/377,726, entitled “Method and System for Automated Technical Support for Computers”, filed by Thomas Vrhel, Jr., et al. on Aug. 19, 1999, now U.S. Pat. No. 6,560,726 which is incorporated herein by reference.
Further in operation, second computing system 60 is shipped to customer site 59. Once at customer site 59, a user applies power to second computing system 60. Partition 64 recognizes a condition that has been set at factory site 30. For example, the condition can include the unique identifier associated with image 27. Partition 64 boots second computing system 60 and establishes a connection to remote site 22. For example, partition 64 could include a skeleton operating system operable to operate a modem and connect second computing system 60 to remote site 22. Second computing system 60 can then download and store image 27.
In addition to the convenience offered to a user for upgrading a computing system, the embodiment of FIG. 3 offers other advantages. For example, partition 64 could operate to detect when a software failure occurs on second computing system 60. Partition 64 could then operate second computing system 60 to download image 27 that corresponds to a last-known-good version of the data on second computing system 60. After downloading image 27, partition 64 could reboot second computing system 60 and return it to its previous functionality. In such a way, the embodiment of FIG. 3 provides a more robust system to a user. Alternatively, partition 64 could first inquire if the user desires to download image 27.
FIG. 4 is a flow diagram of one embodiment for method of migrating data to a build-to-order computing system. The method of FIG. 4 begins at step 80. At step 84, an image is stored at a remote site. The image comprises data stored on a first computing system. As discussed above, the storing of such an image can occur automatically and periodically in order to reduce inconvenience to a user. Furthermore, such a storage can include encrypting the image for security.
At step 88, an order is received to provide a second computing system to the user. The order can include, for example, a request that the image be provided to the second computing system that has been ordered. The order also includes a unique identifier associated with the image.
Step 92 and 94 provide alternate methods for providing access to the image by the second computing system. In step 92, the image is stored on a medium integrated with the second computing system. For example, the medium can comprise a hard drive integrated into the second computing system. At step 94, the image is stored on a medium accessible by the second computing system but not integrated with the second computing system. For example, at step 94 a image can be stored on a compact disc.
At step 98 the second computing system is shipped to the customer. If progressing from step 94, the compact disc is shipped with the second computing system. Therefore, by the end of the method at step 99, the customer receives the second computing system which includes the data that from the user's previous system.
FIG. 5 is a flow diagram of another method for migrating data to a build-to-order computer. The method begins at step 100. Steps 84 and 88 are equivalent to those shown in FIG. 4, in which an image comprising data stored on a first computing system is stored and an order is received for a second computing system.
At step 106, a partition is installed on the second computing system. The partition is operable to boot the second computing system and have the second computing system establish a connection to the remote site. Further, as discussed with respect to partition 64 of FIG. 3, the partition can recognize a condition wherein the partition should boot the second computing system and establish a connection to the remote site. The partition is further operable to have the second computing system download the image.
At step 108 the second computing system which includes the partition is shipped to the customer. At step 110, the user provides power to the second computing system. At step 112 the partition boots the second computing system, establishes a connection to the remote site, and downloads the image such that the image is stored on the second computing system. The method ends step 114 wherein the user has in his possession a computing system that includes the image of data from the user's previous computing system.
FIG. 6 is a flow diagram of a further method for migrating data into a build-to-order computing system. The method begins at step 116. As in the other FIGURES, steps 84 and 88 include storing an image of a first computing system to a remote site and receiving an order for a second computing system. At step 122, the second computing system is shipped to the customer.
At step 124, a connection is made between a customer site storage and the remote site. For example, the customer site storage can comprise a server or other user site storage system. At step 128, the image is downloaded from the remote site to the customer site storage. At step 130, the image is downloaded from the customer site storage to the second computing system. The method ends at step 132.
The method of FIG. 6 may be appropriate, for example, when providing a plurality of computing systems to a single user.
The advantages of the present embodiment include providing a build-to-order computing system to a user, while maintaining the user's data from a previous computing system. Additionally, the present embodiment provides such a build-to-order computing system with a minimum of inconvenience to the user.
Although the present embodiment has been described in detail, it should be understood that various changes, substitutions and alterations can be made thereto without departing from the spirit and scope of the appended claims.

## Claims

1. A method for migrating data to a computing system associated with a user comprising:
storing an image at a remote site, the image comprising user data stored on a first computing system;
providing a second computing system associated with the user; and
providing the image to the second computing system such that the second computing system stores the image.

2. A method according to claim 1, wherein the downloading step comprises storing the image on a medium, the medium accessible by the second computing system.

3. A method according to claim 2, wherein the medium is integrated into the second computing system.

4. A method according to claim 3, wherein the medium is a hard drive.

5. A method according to claim 1, wherein the step of providing the image to the second system comprises installing a partition on the second computing system, the partition operable to:
boot the second computing system;
establish a connection to the remote site; and
download the image.

6. A method according to claim 1, further comprising:
establishing a connection between a user site storage and the remote site;
downloading the image to the user site computing system;
establishing a connection between the second computing system and the user site computing system; and
downloading the image to the second computing system.

7. A method according to claim 1 further comprising providing the second computing system to the user.

8. A method according to claim 1 wherein storing the image at the remote site comprises storing the image at a factory site.

9. A method according to claim 1 further comprising:
receiving an order from the user for the second computing system; and
manufacturing the second computing system according the order.

10. A system for migrating data to a computing system comprising:
an order engine comprising executable instructions running on a computing platform, the order engine for receiving an order to provide a second computing system to a user; and
a storage engine comprising executable instructions running on a computing platform, the storage engine operable to provide the second computing system access to an image stored at a remote site, the image comprising user data from a first computing system.

11. A system according to claim 10, further comprising:
the second computing system, the second computing system having a medium for storing data; and
wherein the storage engine is operable to provide the image for storage on the medium.

12. A system according to claim 11, wherein the medium is integrated into the second computing system.

13. A system according to claim 11, wherein the medium comprises a hard disk drive.

14. A system according to claim 11, further comprising:
a partition installed on the second computing system, the partition operable to:
boot the second computing system;
establish a connection to the remote site; and
download the image onto the medium.

15. A system according to claim 11, further comprising a customer site storage operable to interface with the remote site, the customer site storage further operable to:
download the image;
establish a connection to the second computing system; and
provide the image to the second computing system.

16. A method for migrating data to a build-to-order computing system comprising:
storing an image at a remote site, the image comprising user data from a first computing system, the first computing system associated with a user;
providing a second computing system to the user; and
establishing a connection between the second computing system and the remote site for accessing the image.

17. A method according to claim 16 further comprising
downloading the image to the second computing system.

18. A method according to claim 17 further comprising downloading the image to a medium integrated into the second computing system.

19. A method according to claim 18 wherein the medium comprises a hard drive.

20. A method according to claim 16 further comprising:
installing a partition on the second computing system, the partition operable:
to have the second computing system establish a connection to the remote site; and
to have the second computing system download and store the image.