WO2000036503A2 - Automatic and selective transfer of software and configuration information from a source computer to a target computer and automatic upgrade of software - Google Patents

Automatic and selective transfer of software and configuration information from a source computer to a target computer and automatic upgrade of software Download PDF

Info

Publication number
WO2000036503A2
WO2000036503A2 PCT/US1999/030236 US9930236W WO0036503A2 WO 2000036503 A2 WO2000036503 A2 WO 2000036503A2 US 9930236 W US9930236 W US 9930236W WO 0036503 A2 WO0036503 A2 WO 0036503A2
Authority
WO
WIPO (PCT)
Prior art keywords
computer
software
user
source
target
Prior art date
Application number
PCT/US1999/030236
Other languages
French (fr)
Other versions
WO2000036503A3 (en
Inventor
Avi Urban
Jason Loveman
Original Assignee
Pcfirst.Com, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Pcfirst.Com, Inc. filed Critical Pcfirst.Com, Inc.
Priority to AU24816/00A priority Critical patent/AU2481600A/en
Publication of WO2000036503A2 publication Critical patent/WO2000036503A2/en
Publication of WO2000036503A3 publication Critical patent/WO2000036503A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Definitions

  • the present invention relates to the field of software programs. More particularly, the invention relates to the field of software programs that transfer software, data, and configuration information from a source computer to a target computer and that upgrade and update software.
  • a target computer hard drive For software programs that transfer software, typically the contents of an entire source computer hard drive are transferred to a target computer hard drive.
  • One typical means of transferring software is the use of an image file.
  • An image file is created from the contents of the source hard drive and stored onto either the source hard drive or an external drive, such as a Zip, JAZ, or network drive.
  • the image file is transferred from either the source hard drive or the external drive to a target hard drive, and the contents of the image file are unloaded onto the target hard drive.
  • this type of transfer is inadequate if the source and target computers have different hardware or operating systems.
  • a source computer software program might be incompatible on a target computer if the source and target computers have different hardware or operating systems.
  • Another typical means of transferring software is to copy the contents of a source computer hard drive, file by file, directly to a target computer hard drive.
  • This type of transfer is similarly inadequate if the source and target computers have different hardware or operating systems.
  • Another prior art reference presents filtering and sorting options to the user while transferring data from a source hard drive to a target hard drive.
  • An example of a filtering transfer is a transfer of files created or modified within the last two years. Although this type of transfer may select a certain number of files to be transferred, the transfer does not selectively transfer source computer software and configuration information to the target computer.
  • Some of the prior art automatically configure network related, machine specific information on a target computer, such as computer names, IP addresses, and network settings.
  • this type of automatic configuration does not automatically configure software, which is necessary for source and target computers having different hardware or operating systems.
  • Some of the prior art check a data server, such as the Internet, to determine whether upgrades and updates exist for the installed software on the remote computer of a user.
  • no prior art automatically checks a data server for software not yet installed on the remote computer of a user that would be useful on the remote computer of a user.
  • One prior art maintains a list of software that a computer should have in order to determine whether software upgrades, updates, or software not yet installed on the remote computer of a user should be installed on the remote computer of a user.
  • the list of software a computer should have is compared to a list of software the computer already has to identify differences between the two lists. Both lists are stored as a multi-level hierarchy of information units.
  • the list of software a computer should have, however, is limited to a predetermined group of software programs, and the list must be stored and maintained.
  • a selective and automatic transfer of software would be especially useful for anyone replacing their computers or setting up an additional computer, such as a laptop.
  • a software program is needed that both automatically and selectively transfers source computer software, data, and configuration information to a target computer and automatically configures the software on the target computer.
  • the software program would be able to handle source and target computer differences in hardware or operating systems.
  • a software program is needed that automatically upgrades and updates software on either a local or remote computer of a user.
  • a software program is needed that automatically maintains a database of software and configuration information detected on the remote computers of users.
  • a software program is needed that searches a data server, such as the Internet or other preprogrammed dial-up site, for software not yet installed on the remote computer of a user, as well as for upgrades and updates for the remote computer of a user.
  • a software program is needed that automatically installs software not yet installed on the remote computer of a user, as well as upgrades and updates, on the remote computer of a user.
  • the software program of the present invention automatically and selectively transfers source computer software, data, and configuration information to a target computer and automatically configures the software on the target computer.
  • the transfer is accomplished selectively because software is transferred based on the compatibility of the source computer software on the target computer. If the software is incompatible on the target computer, the software may be transferred if the program can configure the software to work on the target computer. Thus, the transfer is accomplished regardless of the differences in source and target computer hardware or operating systems. Further, the software applications transferred are not limited to a specific list of software applications supported by the program.
  • the program automatically scans the source and target computers to detect software, data, and configuration information. Profiles of both the source and target computers are created from the scanned information. The profiles of both the source and target computers are passed to a remotely located server computer of the present invention for analysis. Examples of a server computer are a web server of the present invention or a remote server computer of the present invention on the same network as the source and target computers.
  • the server computer of the present invention analyzes the profile information from both the source and target computers based on expert knowledge residing on the server computer of present invention.
  • the program ascertains compatibility of source computer software to determine whether software is to be transferred from the source computer to the target computer.
  • the program automatically transfers the selected software, data, and configuration information from the source computer to a target computer.
  • the program also simultaneously checks a data server, such as the Internet or another preprogrammed dial-up site, for upgrades and updates of the software already transferred to the target computer.
  • the software program of the present invention is also capable of automatic software upgrades and updates on a computer of a user, which is remote to the site of the present invention.
  • the program automatically scans the remote computer to detect software, data, and configuration information.
  • the program creates a profile of the remote computer and stores the profile information in a database.
  • the program uses the database profile information to determine whether upgrades and updates exist for the installed software on the remote computer whenever the data server is checked.
  • the database profile information could also be used to aid in technical support. From the server computer of the present invention, a technical support representative would be able to quickly access information about the remote computer of a user by accessing the database profile information. The technical support representative could then more quickly and easily diagnose problems the remote computer may be having.
  • the use of the database profile information further simplifies software upgrades and updates because only one detection of this information on the remote computer is needed.
  • the program finds upgrades and updates on a data server, such as the Internet or other preprogrammed dial-up site. The program not only finds relevant software upgrades and updates for the remote computer of the user but is able to find relevant software not yet installed on the remote computer of the user as well.
  • one or more software upgrades, updates or software programs not yet installed on the remote computer of the user can be installed automatically with prior consent from the user. If the user does not consent to automatic installation of software upgrades, updates and software not yet installed on the remote computer of the user, the user is instead electronically notified, such as by electronic mail. If the user electronically responds with a request for one or more software upgrades, updates or software not yet installed on the remote computer of the user, the program automatically installs the requested software upgrades, updates and software not yet installed on the remote computer of the user.
  • Figure 1 illustrates two general purpose computers, including a source computer connected to a target computer, at least one of which has access to host computers of the present invention and to a data server.
  • Figure 2A illustrates a flow diagram of a process that provides an introduction to the user.
  • Figure 2B illustrates a flow diagram of a process that establishes source and target computer connections to the server computer of the present invention.
  • Figure 2C illustrates a flow diagram of a process that provides a demonstration of the program to the user and performs setup functions.
  • Figure 2D illustrates a flow diagram of a process that automatically scans the source computer and automatically detects installed software, data, and configuration information.
  • Figure 2E illustrates a flow diagram of a process that automatically checks a data server for upgrades and updates for the source computer.
  • Figure 2F illustrates a flow diagram of a process that automatically determines the target configuration of the target computer.
  • Figure 2G illustrates a flow diagram of a process that automatically and selectively transfers software, data, and configuration information from a source computer to a target computer and automatically upgrades and updates software.
  • Figure 2H illustrates a flow diagram of a process that automatically stores in a database on the server computer of the present invention the final installed software, data, and configuration information of the target computer.
  • Figure 3A illustrates a flow diagram of a process that automatically stores in a database on the server computer of the present invention the installed software, data, and configuration information of a remote computer of a user.
  • Figure 3B illustrates a flow diagram of a process that automatically and periodically checks a data server for software upgrades and updates for a remote computer of a user.
  • Figure 3C illustrates a flow diagram of a process that automatically installs and configures upgrades and updates on a remote computer of a user.
  • Figure 1 illustrates a source computer 10, a target computer 50, a connection 90 between the source and target computers, and alternative connections from the source or target computers to any host computers of the present invention 82 or data servers 80.
  • the source computer system 10 is exemplary only and includes a central processor unit
  • the CPU can be any known type
  • the video graphics adapter can include types other than VGA, such as SVGA and so forth.
  • the mass storage device 22 may include both fixed and removable media using any one or more of magnetic, optical or magneto-optical storage technology or any other available mass storage technology.
  • the system bus 26 contains an address bus for addressing any portion of the memory 20.
  • the system bus 26 also includes a data bus for transferring data between and among the CPU 12, the VGA card 14, the interface port 16, the main memory 20, the mass storage device 22, and the drive for removable media 24.
  • the data servers 80 can be located inside the firewall on a local area network (LAN). Alternatively, the data servers 80 can be located remotely and accessable via the internet or modem.
  • LAN local area network
  • the data servers 80 can be located remotely and accessable via the internet or modem.
  • the source computer 10 is also coupled to a number of peripheral input and output devices including a keyboard 30, a mouse 32, and the associated display 28.
  • the keyboard 30 is coupled to the CPU 12 for allowing a user to input data and control commands into the source computer 10.
  • a conventional mouse 32 is coupled to the keyboard 30 for manipulating images on the display 28 as a cursor control device.
  • VGA card 14 interfaces between the components within the source computer 10 and the display 28.
  • the VGA card 14 converts data received from the components within the source computer 10 into signals which are used by the display 28 to generate images for display.
  • the target computer system 50 is exemplary only and includes a central processor unit (CPU) 52, a video graphics adapter (VGA) card 54, an interface port 56, a main memory 60, a mass storage device 62, and a drive for removable media 64, all coupled together by a conventional bidirectional system bus 66.
  • the mass storage device 62 may include both fixed and removable media using any one or more of magnetic, optical or magneto-optical storage technology or any other available mass storage technology.
  • the system bus 66 contains an address bus for addressing any portion of the memory 60.
  • the system bus 66 also includes a data bus for transferring data between and among the CPU 52, the VGA card 54, the interface port 56, the main memory 60, the mass storage device 62, and the drive for removable media 64. Because this system is exemplary, one of ordinary skill in the art will recognize that each element can be exchanged for another commercially available substitute.
  • the CPU can be any known type
  • the video graphics adapter can include types other than VGA, such as SVGA and so forth.
  • the target computer 50 is also coupled to a number of peripheral input and output devices including a keyboard 70, a mouse 72, and the associated display 68.
  • the keyboard 70 is coupled to the CPU 52 for allowing a user to input data and control commands into the source computer 50.
  • a conventional mouse 72 is coupled to the keyboard 70 for manipulating images on the display 68 as a cursor control device.
  • the VGA card 54 interfaces between the components within the target computer 50 and the display 68.
  • the VGA card 54 converts data received from the components within the target computer 50 into signals which are used by the display 68 to generate images for display.
  • the source computer is physically connected to the target computer via a network or a single cable 90, such as a null Ethernet cable or a parallel cable.
  • the connection 90 between the source computer and the target computer can utilize any convenient method.
  • the connection between the source computer and the target computer can be peer-to-peer using such conventional techniques as an Ethernet null cable, a parallel null cable, IrDA (infrared) or USB (Universal Serial Bus) smart cable.
  • the connection between the source computer and the target computer could be over a local area network (LAN) or via the internet.
  • the connection between the source computer and the target computer can be established by loading the appropriate code onto one or the other or both of the source computer and the target computer either from a network connection, internet connection or via removable media such as a floppy, CDROM, FRAM, Zip or Jazz or other media forms.
  • Either the source computer 10 should have a modem 18 or the target computer 50 should have a modem 58 in order to access both the host computers of the present invention 82 and a data server 80.
  • a data server 80 such as the Internet.
  • the source computer 10 has a modem 18, the source computer 10 can access a host computer of the present invention 82 by connection 94, and the source computer 10 can access a data server 80 by connection 92.
  • the target computer 50 has a modem 58, the target computer 50 can access a host computer of the present invention 82 by connection 98, and the target computer 50 can access a data server 80 by connection 96.
  • the host computers of the present invention 82 include a server computer of the present invention 84 and a computer profile registry server of the present invention 88.
  • the target computer 50 also has indirect access to the host computers of the present invention 82 and to a data server 80.
  • the target computer 50 has indirect access via a connection 90 from the target computer interface port 56 to the source computer interface port 16, in conjunction with use of the source computer modem 18.
  • the target computer 50 has modem access 58 to the host computers of the present invention 82 and to the data server 80
  • the source computer 10 also has indirect access to the host computers of the present invention 82 and to the data server 80.
  • the source computer has indirect access via a connection 90 from the source computer interface port 16 to the target computer interface port 56, in conjunction with the use of the target computer modem 58.
  • Figures 2A, 2B, 2C, 2D, 2E, 2F, 2G, and 2H each illustrate a flow diagram for one process of a software program that runs on the general purpose computer system of Figure
  • the software program automatically and selectively transfers software, data, and configuration information from a source computer to a target computer and performs automatic software upgrades, updates and installations of software not yet installed on the source computer.
  • the source computer is physically connected to the target computer via a network or a single cable, such as a null Ethernet cable or a parallel cable. Either the source computer or the target computer must have remote access to the remotely located server computer of the present invention.
  • Examples of a server computer are a web server of the present invention or a remote server computer of the present invention on the same network such as a local area network (LAN) as the source and target computers.
  • LAN local area network
  • removable media of the present invention such as a floppy disk, CDROM, FRAM, Zip or jazz, enables the source computer to access the server computer of the present invention via the target computer.
  • removable media of the present invention such as a floppy disk, enables the target computer to access the server computer of the present invention via the source computer.
  • Transfer software resides on the source computer, and agent software resides on the source or target computer or both.
  • a proprietary software program of this inventor resides on the server computer of the present invention.
  • Server computer software resides on the server computer of the present invention, and removable media software resides on removable media of the present invention, such as a floppy disk.
  • a computer profile registry resides on a computer profile registry server of the present invention, which is on the same network as the server computer of the present invention.
  • the transfer agent, server, and removable media software work in conjunction to perform the transfer and any software upgrades, updates or installations of software not yet installed on the remote computer of a user.
  • the program flow moves from a start state 200 to an end state 299.
  • Figure 2A illustrates a flow diagram of a process that provides an introduction to the user.
  • the user is given an explanation of steps that the user will go through while using the software program at the step 201. Copyright and licensing information is also shown to the user at the step 202. The user is notified that information regarding installed software and configuration will be taken from the computer of the user at the step 203. The user is also given an explanation of what will be done with this information at the server computer of the present invention at the step 204. The user is given an explanation of the privacy rights of the user regarding this information at the step 205. Naturally, the program can be configured to run automatically without providing the user such interface explanations.
  • Figure 2B illustrates a flow diagram of a process that establishes source and target computer connections to the server computer of the present invention. If the server computer of the present invention is not a web server at the step 207, then the program ends at the step 299. However, if the server computer of the present invention is a web server at the step 207, then a connection must be established from the source and target computers to the server computer of the present invention. Either the source computer or the target computer must have direct access to the server computer.
  • the agent software determines whether the target computer has access to the server computer of the present invention at the step 209. If the target computer does not have access to the server computer of the present invention at the step 209, then the program ends at the step 299. If the target computer has access to the server computer of the present invention at the step 209, then the user inserts the removable media of the present invention into the target computer at the step 210.
  • the removable media software which includes components and web pages, connects the target computer to the server computer of the present invention at the step 211. The removable media software then downloads instructions and components from the server computer of the present invention to the removable media of the present invention at the step 212.
  • the removable media software automatically establishes communication between the source and target computers via a connection, using the instructions and components downloaded to the removable media of the present invention.
  • the connection is a point to point connection, instead of the traditional open ended loop.
  • the transfer software connects to the server computer of the present invention via the target computer, and the transfer software starts the server computer software residing on the server computer of the present invention at the step 218.
  • the connection allows both the source and target computers to be connected to the server computer of the present invention.
  • the user inserts the removable media of the present invention into the source computer at the step 220.
  • the removable media software which includes components and web pages, connects the source computer to the server computer of the present invention at the step 222.
  • the removable media software then downloads instructions and components from the server computer of the present invention to the removable media of the present invention at the step 224. These instructions and components will enable the target computer to connect to the server computer of the present invention via the source computer.
  • the user then removes the removable media of the present invention from the source computer and inserts the removable media of the present invention into the target computer at the step 226.
  • the removable media software automatically establishes communication between the source and target computers via a connection, using the instructions and components downloaded to the removable media of the present invention.
  • the connection is a point to point connection, instead of the traditional open ended loop.
  • the transfer software connects to the server computer of the present invention, and the transfer software starts the server computer software residing on the server computer of the present invention at the step 230.
  • the connection allows both the source and target computers to be connected to the server computer of the present invention.
  • Figure 2C illustrates a flow diagram of a further processing of the program.
  • the user enters information such as the electronic mail address, street address, and telephone number of the user at the step 236.
  • the transfer software which resides on the source computer, is started at the step 238.
  • the source computer transfer software establishes a connection to the target computer at the step 240. However, this connection is separate from the connection previously established between source and target computer.
  • the connection is used to establish a connection from both source and target computers to the server computer of the present invention.
  • Figure 2D illustrates a flow diagram of a process that automatically scans the source computer and automatically detects installed software, data, and configuration information.
  • the scanning and detecting is performed by the source computer and the target computer using the proprietary software that has been loaded thereon.
  • the proprietary software automatically scans the source computer and automatically detects installed software, data, and configuration information on the source computer at the step 244.
  • the source computer is scanned by traversing registry tree and file tree data on the source computer.
  • the proprietary software creates a source computer profile of the information detected at the step 245.
  • the source computer profile comprises lists of source computer components regarding, but not limited to, the operating system, software applications, upgrades, updates, utilities, application and utility settings and configuration, documents, internal and external drivers, hardware, drives, compatibility, desktop look and feel, the structure of the directories and files, and custom system configuration.
  • the source computer profile information is not a list of what the target computer should have but is instead information regarding what is available on the source computer.
  • the source computer profile information is initially stored in a tree structure but is ultimately flattened into a flat file format.
  • the proprietary software stores the source computer profile information in the format of single-level lists into several tables in a database on the server computer of the present invention at the step 247.
  • the proprietary software checks the configuration of the source computer at the step
  • the proprietary software also checks the source computer disk for computer viruses and other disk problems at the step 249.
  • the proprietary software reports the results of the configuration, virus, and disk problem checks to the user at the step 250.
  • the results include information such as the system configuration information, application configuration information, and the number of megabytes that will be transferred to the target computer.
  • Figure 2E illustrates a flow diagram of a process that automatically checks a data server for upgrades and updates for the source computer.
  • the server computer software automatically checks a data server, such as the Internet or other preprogrammed dial-up site, for upgrades and updates at the step 251.
  • the server computer software finds upgrades and updates in accordance with the database entry for the source computer.
  • the upgrades and updates include application and driver upgrades and updates, as well as software not yet installed on the source computer. If one or more upgrades and updates are not found at the step 283, the program proceeds to the step 257. If one or more upgrades and updates are found at the step 283, the user selects one or more upgrades and updates to be installed at the step 252.
  • the server computer software repackages the one or more upgrades and updates to enable automatic installation on the target computer at the step 253.
  • the server computer software downloads the one or more upgrades and updates to the source computer at the step 256. If the bandwidth for the download is not large enough to handle the download at the step
  • a CD containing the one or more upgrades and updates is instead mailed to the user at the step 255.
  • Figure 2F illustrates a flow diagram of a process that automatically determines the target configuration of the target computer.
  • the transfer software remotely starts the agent software, which resides on the target computer at the step 257.
  • the agent software first determines the target configuration information of the target computer at the step 258 by automatically scanning the target computer and automatically detecting the configuration information of the target computer.
  • the configuration target computer is scanned by traversing registry tree and file tree data on the target computer.
  • the configuration information of the target computer profile comprises information regarding, but not limited to, the operating system, utilities, utility settings and configuration, internal and external drivers, hardware, drives, compatibility, and custom system configuration.
  • the agent software poses questions to the user to obtain specific user preference information at the step 259.
  • An example of a question posed to the user regarding user preference information is whether the user wants to move only documents modified within the last two years.
  • the agent software then creates a target computer profile from the configuration information and the responses of the user to the user preference questions.
  • the target computer profile is initially stored in a tree structure but is ultimately flattened into a flat file format.
  • the agent software passes the target computer profile to the server computer of the present invention at the step 261.
  • Figure 2G illustrates a flow diagram of a process that automatically and selectively transfers software, data, and configuration information from a source computer to a target computer and automatically performs software upgrades and updates.
  • the server computer software processes each source computer software package at the step 262. If a software package exists on the source computer that needs to be analyzed for transferability to the target computer at the step 262, the server computer software analyzes the profile information from both the source computer and the target computer based on expert knowledge at the step 263.
  • the source and target computer profiles, as well as the expert knowledge reside on the server computer of the present invention at the step 263.
  • the expert knowledge comprises multiple databases, including exception, locator, user profile, inventory, and news databases.
  • the expert knowledge also comprises a knowledge base, which comprises source computer information available to the target computer, as opposed to information the target computer should have.
  • the knowledge base comprises lists of inventories, which comprise files and settings that make up each component of the source computer profile.
  • the knowledge base encapsulates a top level rule with lower level exceptions to the rule in a tree structure, such that each level of descent through the tree flips the sense of the exception.
  • rule sets derived from the source and target computer profile information, are incrementally applied to a global rule space, such that the rule space can be traversed to a point where a particular rule set has been isolated. These rule sets are transfer, upgrade, and conversion rule sets.
  • the analysis of source and target computer profiles is performed only to determine the compatibility between the source and target computers.
  • the analysis is not performed to determine the differences between what the target computer already has and what the target computer should have. Any comparison of the source and target computer profiles during the analysis is minimal.
  • a comparison of the source and target computers is done for moving lower level files and registry settings, but the comparison is not based on the profiles but instead on the results of the configuration check at the step 248.
  • a full traverse of the expert knowledge tree structure is performed to the lowest level of the tree structure. No technique, such as dynamic linkage substitution, a checksum technique, or date comparison, is used to stop the traverse of the expert knowledge tree structure at any point.
  • the expert knowledge tree structure is instead used to determine what has been found on the source computer by going through the source computer profile.
  • the server computer software ascertains the compatibility of the source computer software package on the target computer to determine if software package is to be transferred to the target computer at the step 264. If the software is incompatible on the target computer, the software may be transferred if the program can configure the software to work on the target computer.
  • the program checks if another software package on the source computer needs to be analyzed for transferability to the target computer at the step 262. If the software package should be transferred from the source computer to the target computer at the step 265, the source computer transfer software automatically and selectively transfers the software package from the source computer to the target computer at the step 266. The transfer software automatically configures the software package on the target computer at the step 267 and documents the target computer software installation in a master log at the step 268.
  • the master log tracks target computer software modifications.
  • the master log is preferably stored on each of the source computer, target computer and server computer. However, it is possible to store the master log on any one or any combination of those computers. If an upgrade or update was not found for the current software package at the step
  • the program then processes the next software package if one exists at the step 262. If an upgrade or update was found for the current software package at the step 269 and if the user previously chose not to install the upgrade or update at the step 270, the program processes the next software package at the step 262 if one exists. If an upgrade or update is found for the current software package at the step 269 and, at the step 270, if the user previously chose to install the upgrade or update, the transfer software passes the upgrade or update from the source computer to the target computer at the step 271. The user either chooses automatic defaults for the update installation or answers questions up front regarding the update installation at the step 272. The transfer software automatically installs the upgrade or update on the target computer at the step 273.
  • the transfer software documents the upgrade or update in the master log, which resides on the server computer of the present invention and tracks target computer software modifications.
  • the program processes the next software package if one exists. If no software packages exist on the source computer or if all of the software packages on the source computer have been analyzed for transferability to the target computer at the step 262, the program checks if any software packages exist that were not previously installed on the source computer but that the user may want installed on the target computer at the step 275.
  • the program processes the next software package not previously installed on the source computer, if one exists.
  • the transfer software passes the software package not previously installed on the source computer from the source computer to the target computer at the step 277. The user either chooses automatic defaults or answers questions up front regarding the software package installation at the step 278. The transfer software automatically installs the software package on the target computer at the step 279.
  • the transfer software documents the software package installation in the master log, which resides on the server computer of the present invention and tracks target computer software modifications.
  • the program processes the next software package not previously installed on the source computer, if one exists. If no software packages exist that were not previously installed on the source computer or if all software packages not previously installed on the source computer have been installed at the request of the user at the step 275, the program proceeds to step 282.
  • Figure 2H illustrates a flow diagram of a process that automatically stores in a database on the server computer of the present invention the final installed software, data, and configuration information of the target computer.
  • the proprietary software on the server computer of the present invention automatically scans the target computer and automatically detects installed software, data, and configuration information on the target computer at the step 282.
  • the target computer is scanned by traversing registry tree and file tree data on the target computer.
  • the proprietary software creates a target computer profile of the information detected at the step 284.
  • the target computer profile comprises lists of target computer components regarding, but not limited to, the operating system, software applications, upgrades, updates, utilities, application and utility settings and configuration, documents, internal and external drivers, hardware, drives, compatibility, desktop look and feel, the structure of the directories and files, and custom configuration information.
  • the target computer profile will later be used at the server computer of the present invention to notify the user of any software upgrades, updates or software not yet installed on the target computer.
  • the target computer profile information is initially stored in a tree structure but is ultimately flattened into a flat file format.
  • the proprietary software stores the target computer profile information in the format of single-level lists into several tables in a database on the server computer of the present invention at the step 286.
  • the user chooses either to have all future upgrades and updates installed when found by the server computer of the present invention or to able to select future upgrades and updates to be installed when found by the server computer of the present invention at the step 290. If the user chooses to have all future upgrades and updates installed when found by the server computer of the present invention, the user will be notified electronically, such as by electronic mail, of the upgrades and updates installed on the computer of the user when the upgrades and updates are installed. If the user chooses to be able to select future upgrades and updates to be installed when found by the server computer of the present invention, the user will be notified electronically, such as by electronic mail, of upgrades and updates when found. The user will also be to select the upgrades and updates to be installed after the notification of upgrades and updates found.
  • the server computer software registers the user on a computer profile registry server of the present invention, which allows the user to selectively release the computer software profile of a user to be accessed by other service providers at the step 292.
  • the computer profile registry server of the present invention is on the same network as the server computer.
  • the service providers such as software publishers and help desks, can then help the user assess the status of their computer for the purpose of assistance or targeted communication.
  • the transfer software notifies the user of the number of software settings and personal settings that were transferred to the target computer at the step 294.
  • the user restarts the target computer at the step 296.
  • the program ends at the step 299.
  • the software information transferred by the transfer software at the step 266 comprises applications and associated component information, such as executables, DLLs, setups, configurations, preferences, shortcuts, and registry entries.
  • Software produced documents are also included in the transfer of software applications.
  • the software information transferred by the transfer software at the step 266 also comprises system configuration and setup, such as date/time, network drives, and printer settings.
  • Other system configuration and setup comprises look and feel settings, such as start menu, screen save, mouse, sounds, shortcuts, and desktop.
  • other system configuration and setup comprises Internet connections such as dial-up data, but not modem configuration.
  • Another type of software information transferred by the transfer software at the step 266 includes user folder hierarchies and documents, such as c:/IWC/BreEZE/marketingbusinessplan.doc, MS Office documents, templates, personal dictionaries, e-mails and filters, PIM data, Web-bookmarks, favorites, and Web-cookies.
  • the transfer software ignores hardware specific files, such as internal modem drivers.
  • Figures 3A, 3B, and 3C illustrate three flow diagrams for three separate processes of a software program that performs automatic software upgrades and updates.
  • the upgrades and updates include application and driver upgrades and updates, as well as software not yet installed on the source computer.
  • Figure 3 A illustrates a flow diagram of a process that automatically stores in a database on the server computer of the present invention the installed software, data, and configuration information of a remote computer of a user. The process flow moves from a start state 300 to an end state 325.
  • the proprietary software, a proprietary software program of this inventor is started on the server computer of present invention 302.
  • An example of a server computer of the present invention is a web server of the present invention.
  • the proprietary software automatically scans the remote computer of the user and automatically detects installed software, data, and configuration information on the remote computer of the user at the step 305.
  • the remote computer of the user is scanned by traversing registry tree and file tree data on the remote computer of the user.
  • the proprietary software creates a profile of the information detected at the step
  • the profile comprises lists of components regarding, but not limited to, the operating system, software applications, upgrades, updates, utilities, application and utility settings and configuration, documents, internal and external drivers, hardware, drives, compatibility, desktop look and feel, the structure of the directories and files, and custom system configuration.
  • the profile information is initially stored in a tree structure but is ultimately flattened into a flat file format.
  • the proprietary software stores the profile information in the format of single-level lists into several tables in a database on the server computer of the present invention at the step 31 1.
  • the proprietary software checks the configuration of the remote computer of the user at the step 312.
  • the proprietary software also checks the remote computer disk of the user for computer viruses and other disk problems at the step 313.
  • the proprietary software reports the results of the configuration, virus, and disk problem checks to the user at the step 315.
  • the results include information such as the system configuration and application configuration information.
  • the process also registers the user on a computer profile registry server of the present invention, if the user was not previously registered.
  • the computer profile registry allows the user to selectively release the computer software profile of the user to be accessed by other service providers.
  • the computer profile registry server of the present invention is on the same network as the server computer of the present invention.
  • the service providers such as software publishers and help desks, can then help the user assess the status of their computer for the purpose of assistance or targeted communication.
  • the process then ends at the step 325.
  • This process needs to be run only once in order to create a database entry for the installed software, data, and configuration information on the remote computer of a user.
  • the database entry can later be updated after any software upgrades, updates, or installations of software not previously installed on the remote computer of a user.
  • Figure 3B illustrates a flow diagram of a process that automatically and periodically checks a data server for software upgrades and updates for a remote computer of a user.
  • This process is run periodically for as long as the user wishes to have software upgrades and updates installed on the remote computer installed on the remote computer of the user.
  • the process is run from the server computer of the present invention.
  • the process flow moves from a start state 330 to an end state 335.
  • the process automatically checks a data server, such as the Internet or other preprogrammed dial-up site, to determine whether one or more software upgrades and updates exist for the remote computer of a user at the step 331.
  • the process finds software upgrades and updates in accordance with the database entry for the remote computer of a user. Information found on the data server is not a list of what the remote computer of the user should have but is instead information regarding what is available on the data server.
  • Upgrades and updates comprise application and driver upgrades and updates, as well as software not yet installed on the remote computer of the user.
  • the user if the user previously chose to have upgrades and updates installed on the remote computer of the user when found, then the user is electronically notified, such as by electronic mail, of one or more upgrades and updates found that will be installed on the remote computer of the user at the step 334.
  • the server computer is also notified to start the installation of upgrades and updates at the step 335.
  • the user if the user did not previously choose to have upgrades and updates installed on the remote computer of the user when found, the user is electronically notified, such as by electronic mail, about any upgrades and updates that are found at the step 333. If the user wishes to have any of the upgrades or updates installed on the remote computer of the user, the user must then electronically notify the server computer, such as by electronic mail, which upgrades and updates the user wishes to have installed. The process ends at the step 336.
  • Figure 3C illustrates a flow diagram of a process that automatically installs and configures upgrades and updates on the remote computer of a user.
  • the process is run from the server computer of the present invention.
  • the process flow moves from a start state 340 to an end state 395.
  • the process either waits for notification by the server computer of the present invention to start installation of one or more upgrades and updates on a remote computer of a user or waits for an electronic request from a remote user.
  • Upgrades and updates comprise application and driver upgrades and updates, as well as software not yet installed on the remote computer of the user.
  • the process does not receive an electronic request from a remote user at the step 342, and instead receives notification to start installation of one or more upgrades and updates on a remote computer of a user at the step 343, the process repackages the one or more upgrades and updates to enable automatic installation on the remote computer of the user at the step 370. If at the step 343 the process does not receive notification to start installation of one or more upgrades and updates on the remote computer of a user, the process again either waits for notification to start installation of one or more upgrades and updates on a remote computer of a user or waits for an electronic request from a remote user at the step 341.
  • the process receives an electronic request from the user, the electronic request can be either a request for one or more upgrades and updates at the step 350, a request to have all future upgrades and updates installed on the remote computer of the user when found at the step 355, or a request, at the step 360, to be notified of all future upgrades and updates when found, such that the user may select upgrades and updates to be installed.
  • the program ends at the step 395.
  • the process disregards the electronic request and waits either for notification to start installation of one or more upgrades and updates on the remote computer of the user or for an electronic request from the remote user at the step 341. If at the step 360, the user electronically requests to be notified of all future upgrades and updates when found so as to be able to select upgrades and updates to be installed, the process then waits either for notification to start installation of one or more upgrades and updates on the remote computer of the user or for an electronic request from the remote user at the step 341.
  • the process then waits either for notification to start installation of one or more upgrades and updates on the remote computer of the user or for an electronic request from the remote user at the step 341. If at the step 350, the user electronically responds with a request for one or more upgrades and updates, the process repackage the upgrades and updates to enable automatic installation on the remote computer of the user at the step 370.
  • the upgrades and updates are repackaged to enable automatic installation on the remote computer of the user at the step 370, if the bandwidth of the connection between the server computer of the present invention and the remote computer of the user is not large enough to handle the download of the one or more upgrades and updates to the remote computer of the user at the step 371, a CD containing the one or more upgrades and updates is instead mailed to the user at the step 372.
  • the process then waits either for notification by the server computer of the present invention to start installation of upgrades and updates on a remote computer of a user or for an electronic request from a remote user at the step 341.
  • the server computer software downloads the one or more upgrades and updates to the remote computer of the user at the step 375. If a software upgrade or update exists that needs to be installed on the remote computer of the user at the step 376, the remote user either chooses automatic defaults for the update installation or answers questions up front regarding the upgrade or update installation at the step 380. The server computer software automatically installs the upgrade or update on the remote computer of the user at the step 381.
  • the server computer software documents the upgrade or update in a master log, which resides on the server computer of the present invention and tracks software modifications for the remote computer of the user at the step 382.
  • the process determines if another upgrade or update exists that needs to be installed on the remote computer of the user at the step 376.
  • the proptietary software automatically scans the remote computer of the user and automatically detects installed software, data, and configuration information at the step 383.
  • the remote computer of the user is scanned by traversing registry tree and file tree data on the remote computer of the user.
  • the proprietary software creates a profile of the information detected at the step 384.
  • the profile comprises lists of components regarding, but not limited to, the operating system, software applications, upgrades, updates, utilities, application and utility settings and configuration, documents, internal and external drivers, hardware, drives, compatibility, desktop look and feel, the structure of directories and files, and custom configuration information.
  • the process updates the database entry at the server computer of the present invention with the profile information for the remote computer of the user at the step 385. The process then waits either for notification to start installation of upgrades and updates on the remote computer of a user or for an electronic request from the user at the step 341.

Abstract

The sofware program automatically and selectively transfers source computer software and configuration information to a target computer. The program automatically scans the source and target computers to detect software and configuration information. Profiles of both computers are created from the scanned information and stored in a database. The program analyzes the source and target computer profiles based on expert knowledge. Source computer software is automatically transferred to the target computer if the software is compatible or can be configured to work on the target computer. The program checks a data server, such as the Internet or another preprogrammed dial-up site, for upgrades and updates of the source computer software. If upgrades or updates are found, the program automatically installs them on the target computer. The software program of the present invention automatically upgrades and updates software on a remote computer of a user. The program automatically scans the remote computer to detect software and configuration information, creates a profile of the remote computer, and stores the profile in a database. The program checks a data server, such as the Internet or another preprogrammed dial-up site, for upgrades and updates of the software on the remote computer of the user. The user is electronically notified, such as by electronic mail, of upgrades and updates found. If the user electronically responds with a resquest for software upgrades or updates, the program automatically installs them on the remote computer.

Description

AUTOMATIC AND SELECTIVE TRANSFER OF SOFTWARE AND
CONFIGURATION INFORMATION FROM A SOURCE COMPUTER TO A
TARGET COMPUTER AND AUTOMATIC UPGRADE OF SOFTWARE
FIELD OF THE INVENTION
The present invention relates to the field of software programs. More particularly, the invention relates to the field of software programs that transfer software, data, and configuration information from a source computer to a target computer and that upgrade and update software.
BACKGROUND OF THE INVENTION
For software programs that transfer software, typically the contents of an entire source computer hard drive are transferred to a target computer hard drive. One typical means of transferring software is the use of an image file. An image file is created from the contents of the source hard drive and stored onto either the source hard drive or an external drive, such as a Zip, JAZ, or network drive. The image file is transferred from either the source hard drive or the external drive to a target hard drive, and the contents of the image file are unloaded onto the target hard drive. However, this type of transfer is inadequate if the source and target computers have different hardware or operating systems. A source computer software program might be incompatible on a target computer if the source and target computers have different hardware or operating systems.
Similarly, another typical means of transferring software is to copy the contents of a source computer hard drive, file by file, directly to a target computer hard drive. This type of transfer is similarly inadequate if the source and target computers have different hardware or operating systems. Another prior art reference presents filtering and sorting options to the user while transferring data from a source hard drive to a target hard drive. An example of a filtering transfer is a transfer of files created or modified within the last two years. Although this type of transfer may select a certain number of files to be transferred, the transfer does not selectively transfer source computer software and configuration information to the target computer.
Some of the prior art automatically configure network related, machine specific information on a target computer, such as computer names, IP addresses, and network settings. However, this type of automatic configuration does not automatically configure software, which is necessary for source and target computers having different hardware or operating systems.
Some of the prior art appear to maintain a remote database of available computer software and hardware versions. Another prior art appears to maintain a remote database of users' computer configurations. However, no prior art maintains a database of both software and configuration information for remote computers of users.
Some of the prior art check a data server, such as the Internet, to determine whether upgrades and updates exist for the installed software on the remote computer of a user. However, no prior art automatically checks a data server for software not yet installed on the remote computer of a user that would be useful on the remote computer of a user. One prior art maintains a list of software that a computer should have in order to determine whether software upgrades, updates, or software not yet installed on the remote computer of a user should be installed on the remote computer of a user. The list of software a computer should have is compared to a list of software the computer already has to identify differences between the two lists. Both lists are stored as a multi-level hierarchy of information units. The list of software a computer should have, however, is limited to a predetermined group of software programs, and the list must be stored and maintained.
Similarly, some of the prior art automatically install upgrades and updates on a remote computer. However, no prior art performs automatic installation of software products not yet installed on a remote computer of a user.
A selective and automatic transfer of software would be especially useful for anyone replacing their computers or setting up an additional computer, such as a laptop.
Automatic software upgrades and updates would also be especially useful for companies that have a large number of software upgrades and updates to perform. Thus, transfer, upgrade and update software is needed that both does not require system administrators to perform time consuming manual software installations and does not require users to reset their preferences.
Therefore, a software program is needed that both automatically and selectively transfers source computer software, data, and configuration information to a target computer and automatically configures the software on the target computer. Thus, the software program would be able to handle source and target computer differences in hardware or operating systems. Further, a software program is needed that automatically upgrades and updates software on either a local or remote computer of a user. In addition, a software program is needed that automatically maintains a database of software and configuration information detected on the remote computers of users. Also, a software program is needed that searches a data server, such as the Internet or other preprogrammed dial-up site, for software not yet installed on the remote computer of a user, as well as for upgrades and updates for the remote computer of a user. Similarly, a software program is needed that automatically installs software not yet installed on the remote computer of a user, as well as upgrades and updates, on the remote computer of a user.
SUMMARY OF THE INVENTION
The software program of the present invention automatically and selectively transfers source computer software, data, and configuration information to a target computer and automatically configures the software on the target computer. The transfer is accomplished selectively because software is transferred based on the compatibility of the source computer software on the target computer. If the software is incompatible on the target computer, the software may be transferred if the program can configure the software to work on the target computer. Thus, the transfer is accomplished regardless of the differences in source and target computer hardware or operating systems. Further, the software applications transferred are not limited to a specific list of software applications supported by the program.
To avoid time consuming manual collection of software, data, and configuration information, the program automatically scans the source and target computers to detect software, data, and configuration information. Profiles of both the source and target computers are created from the scanned information. The profiles of both the source and target computers are passed to a remotely located server computer of the present invention for analysis. Examples of a server computer are a web server of the present invention or a remote server computer of the present invention on the same network as the source and target computers. The server computer of the present invention analyzes the profile information from both the source and target computers based on expert knowledge residing on the server computer of present invention. The program ascertains compatibility of source computer software to determine whether software is to be transferred from the source computer to the target computer. The program automatically transfers the selected software, data, and configuration information from the source computer to a target computer. The program also simultaneously checks a data server, such as the Internet or another preprogrammed dial-up site, for upgrades and updates of the software already transferred to the target computer. The software program of the present invention is also capable of automatic software upgrades and updates on a computer of a user, which is remote to the site of the present invention. To avoid time consuming manual collection and maintenance of software, data, and configuration information, the program automatically scans the remote computer to detect software, data, and configuration information. The program creates a profile of the remote computer and stores the profile information in a database. The program uses the database profile information to determine whether upgrades and updates exist for the installed software on the remote computer whenever the data server is checked. If a remote computer of a user is having problems, the database profile information could also be used to aid in technical support. From the server computer of the present invention, a technical support representative would be able to quickly access information about the remote computer of a user by accessing the database profile information. The technical support representative could then more quickly and easily diagnose problems the remote computer may be having. The use of the database profile information further simplifies software upgrades and updates because only one detection of this information on the remote computer is needed. The program finds upgrades and updates on a data server, such as the Internet or other preprogrammed dial-up site. The program not only finds relevant software upgrades and updates for the remote computer of the user but is able to find relevant software not yet installed on the remote computer of the user as well. If one or more software upgrades, updates or software programs not yet installed on the remote computer of the user are found, they can be installed automatically with prior consent from the user. If the user does not consent to automatic installation of software upgrades, updates and software not yet installed on the remote computer of the user, the user is instead electronically notified, such as by electronic mail. If the user electronically responds with a request for one or more software upgrades, updates or software not yet installed on the remote computer of the user, the program automatically installs the requested software upgrades, updates and software not yet installed on the remote computer of the user.
BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 illustrates two general purpose computers, including a source computer connected to a target computer, at least one of which has access to host computers of the present invention and to a data server.
Figure 2A illustrates a flow diagram of a process that provides an introduction to the user. Figure 2B illustrates a flow diagram of a process that establishes source and target computer connections to the server computer of the present invention.
Figure 2C illustrates a flow diagram of a process that provides a demonstration of the program to the user and performs setup functions.
Figure 2D illustrates a flow diagram of a process that automatically scans the source computer and automatically detects installed software, data, and configuration information.
Figure 2E illustrates a flow diagram of a process that automatically checks a data server for upgrades and updates for the source computer.
Figure 2F illustrates a flow diagram of a process that automatically determines the target configuration of the target computer. Figure 2G illustrates a flow diagram of a process that automatically and selectively transfers software, data, and configuration information from a source computer to a target computer and automatically upgrades and updates software.
Figure 2H illustrates a flow diagram of a process that automatically stores in a database on the server computer of the present invention the final installed software, data, and configuration information of the target computer.
Figure 3A illustrates a flow diagram of a process that automatically stores in a database on the server computer of the present invention the installed software, data, and configuration information of a remote computer of a user. Figure 3B illustrates a flow diagram of a process that automatically and periodically checks a data server for software upgrades and updates for a remote computer of a user.
Figure 3C illustrates a flow diagram of a process that automatically installs and configures upgrades and updates on a remote computer of a user.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
Figure 1 illustrates a source computer 10, a target computer 50, a connection 90 between the source and target computers, and alternative connections from the source or target computers to any host computers of the present invention 82 or data servers 80. The source computer system 10 is exemplary only and includes a central processor unit
(CPU) 12, a video graphics adapter (VGA) card 14, an interface port 16, a main memory 20, a mass storage device 22, and a drive for removable media 24, all coupled together by a conventional bidirectional system bus 26. Because this system is exemplary, one of ordinary skill in the art will recognize that each element can be exchanged for another commercially available substitute. For example, the CPU can be any known type, the video graphics adapter can include types other than VGA, such as SVGA and so forth. The mass storage device 22 may include both fixed and removable media using any one or more of magnetic, optical or magneto-optical storage technology or any other available mass storage technology. The system bus 26 contains an address bus for addressing any portion of the memory 20. The system bus 26 also includes a data bus for transferring data between and among the CPU 12, the VGA card 14, the interface port 16, the main memory 20, the mass storage device 22, and the drive for removable media 24.
The data servers 80 can be located inside the firewall on a local area network (LAN). Alternatively, the data servers 80 can be located remotely and accessable via the internet or modem.
The source computer 10 is also coupled to a number of peripheral input and output devices including a keyboard 30, a mouse 32, and the associated display 28. The keyboard 30 is coupled to the CPU 12 for allowing a user to input data and control commands into the source computer 10. A conventional mouse 32 is coupled to the keyboard 30 for manipulating images on the display 28 as a cursor control device. The
VGA card 14 interfaces between the components within the source computer 10 and the display 28. The VGA card 14 converts data received from the components within the source computer 10 into signals which are used by the display 28 to generate images for display. The target computer system 50 is exemplary only and includes a central processor unit (CPU) 52, a video graphics adapter (VGA) card 54, an interface port 56, a main memory 60, a mass storage device 62, and a drive for removable media 64, all coupled together by a conventional bidirectional system bus 66. The mass storage device 62 may include both fixed and removable media using any one or more of magnetic, optical or magneto-optical storage technology or any other available mass storage technology. The system bus 66 contains an address bus for addressing any portion of the memory 60. The system bus 66 also includes a data bus for transferring data between and among the CPU 52, the VGA card 54, the interface port 56, the main memory 60, the mass storage device 62, and the drive for removable media 64. Because this system is exemplary, one of ordinary skill in the art will recognize that each element can be exchanged for another commercially available substitute. For example, the CPU can be any known type, the video graphics adapter can include types other than VGA, such as SVGA and so forth.
The target computer 50 is also coupled to a number of peripheral input and output devices including a keyboard 70, a mouse 72, and the associated display 68. The keyboard 70 is coupled to the CPU 52 for allowing a user to input data and control commands into the source computer 50. A conventional mouse 72 is coupled to the keyboard 70 for manipulating images on the display 68 as a cursor control device. The VGA card 54 interfaces between the components within the target computer 50 and the display 68. The VGA card 54 converts data received from the components within the target computer 50 into signals which are used by the display 68 to generate images for display. The source computer is physically connected to the target computer via a network or a single cable 90, such as a null Ethernet cable or a parallel cable. The connection 90 between the source computer and the target computer can utilize any convenient method. For example, the connection between the source computer and the target computer can be peer-to-peer using such conventional techniques as an Ethernet null cable, a parallel null cable, IrDA (infrared) or USB (Universal Serial Bus) smart cable. Additionally, the connection between the source computer and the target computer could be over a local area network (LAN) or via the internet. The connection between the source computer and the target computer can be established by loading the appropriate code onto one or the other or both of the source computer and the target computer either from a network connection, internet connection or via removable media such as a floppy, CDROM, FRAM, Zip or Jazz or other media forms.
Either the source computer 10 should have a modem 18 or the target computer 50 should have a modem 58 in order to access both the host computers of the present invention 82 and a data server 80. such as the Internet. If the source computer 10 has a modem 18, the source computer 10 can access a host computer of the present invention 82 by connection 94, and the source computer 10 can access a data server 80 by connection 92. If the target computer 50 has a modem 58, the target computer 50 can access a host computer of the present invention 82 by connection 98, and the target computer 50 can access a data server 80 by connection 96. The host computers of the present invention 82 include a server computer of the present invention 84 and a computer profile registry server of the present invention 88.
If the source computer 10 has modem access 18 to the host computers of the present invention 82 and to the data server 80, the target computer 50 also has indirect access to the host computers of the present invention 82 and to a data server 80. The target computer 50 has indirect access via a connection 90 from the target computer interface port 56 to the source computer interface port 16, in conjunction with use of the source computer modem 18. Similarly, if the target computer 50 has modem access 58 to the host computers of the present invention 82 and to the data server 80, the source computer 10 also has indirect access to the host computers of the present invention 82 and to the data server 80. The source computer has indirect access via a connection 90 from the source computer interface port 16 to the target computer interface port 56, in conjunction with the use of the target computer modem 58.
Figures 2A, 2B, 2C, 2D, 2E, 2F, 2G, and 2H each illustrate a flow diagram for one process of a software program that runs on the general purpose computer system of Figure
1. The software program automatically and selectively transfers software, data, and configuration information from a source computer to a target computer and performs automatic software upgrades, updates and installations of software not yet installed on the source computer. The source computer is physically connected to the target computer via a network or a single cable, such as a null Ethernet cable or a parallel cable. Either the source computer or the target computer must have remote access to the remotely located server computer of the present invention. Examples of a server computer are a web server of the present invention or a remote server computer of the present invention on the same network such as a local area network (LAN) as the source and target computers. If the target computer has remote access to the server computer of the present invention, removable media of the present invention, such as a floppy disk, CDROM, FRAM, Zip or Jazz, enables the source computer to access the server computer of the present invention via the target computer. Similarly, if the source computer has remote access to the server computer of the present invention, removable media of the present invention, such as a floppy disk, enables the target computer to access the server computer of the present invention via the source computer.
Transfer software resides on the source computer, and agent software resides on the source or target computer or both. A proprietary software program of this inventor, resides on the server computer of the present invention. Server computer software resides on the server computer of the present invention, and removable media software resides on removable media of the present invention, such as a floppy disk. A computer profile registry resides on a computer profile registry server of the present invention, which is on the same network as the server computer of the present invention. The transfer agent, server, and removable media software work in conjunction to perform the transfer and any software upgrades, updates or installations of software not yet installed on the remote computer of a user. The program flow moves from a start state 200 to an end state 299. Figure 2A illustrates a flow diagram of a process that provides an introduction to the user. The user is given an explanation of steps that the user will go through while using the software program at the step 201. Copyright and licensing information is also shown to the user at the step 202. The user is notified that information regarding installed software and configuration will be taken from the computer of the user at the step 203. The user is also given an explanation of what will be done with this information at the server computer of the present invention at the step 204. The user is given an explanation of the privacy rights of the user regarding this information at the step 205. Naturally, the program can be configured to run automatically without providing the user such interface explanations.
Figure 2B illustrates a flow diagram of a process that establishes source and target computer connections to the server computer of the present invention. If the server computer of the present invention is not a web server at the step 207, then the program ends at the step 299. However, if the server computer of the present invention is a web server at the step 207, then a connection must be established from the source and target computers to the server computer of the present invention. Either the source computer or the target computer must have direct access to the server computer.
If the source computer does not have access to the server computer of the present invention at the step 208, the agent software determines whether the target computer has access to the server computer of the present invention at the step 209. If the target computer does not have access to the server computer of the present invention at the step 209, then the program ends at the step 299. If the target computer has access to the server computer of the present invention at the step 209, then the user inserts the removable media of the present invention into the target computer at the step 210. The removable media software, which includes components and web pages, connects the target computer to the server computer of the present invention at the step 211. The removable media software then downloads instructions and components from the server computer of the present invention to the removable media of the present invention at the step 212. These instructions and components will enable the source computer to connect to the server computer of the present invention via the target computer. The user then removes the removable media of the present invention from the target computer and inserts the removable media of the present invention into the source computer at the step 214. At the step 216, the removable media software automatically establishes communication between the source and target computers via a connection, using the instructions and components downloaded to the removable media of the present invention. The connection is a point to point connection, instead of the traditional open ended loop. The transfer software connects to the server computer of the present invention via the target computer, and the transfer software starts the server computer software residing on the server computer of the present invention at the step 218. Thus, the connection allows both the source and target computers to be connected to the server computer of the present invention.
Similarly, if the source computer has access to the server computer of the present invention at the step 208, the user inserts the removable media of the present invention into the source computer at the step 220. The removable media software, which includes components and web pages, connects the source computer to the server computer of the present invention at the step 222. The removable media software then downloads instructions and components from the server computer of the present invention to the removable media of the present invention at the step 224. These instructions and components will enable the target computer to connect to the server computer of the present invention via the source computer. The user then removes the removable media of the present invention from the source computer and inserts the removable media of the present invention into the target computer at the step 226. At the step 228, the removable media software automatically establishes communication between the source and target computers via a connection, using the instructions and components downloaded to the removable media of the present invention. The connection is a point to point connection, instead of the traditional open ended loop. The transfer software connects to the server computer of the present invention, and the transfer software starts the server computer software residing on the server computer of the present invention at the step 230. Thus, the connection allows both the source and target computers to be connected to the server computer of the present invention.
Figure 2C illustrates a flow diagram of a further processing of the program. The user enters information such as the electronic mail address, street address, and telephone number of the user at the step 236. The transfer software, which resides on the source computer, is started at the step 238. The source computer transfer software establishes a connection to the target computer at the step 240. However, this connection is separate from the connection previously established between source and target computer. The connection is used to establish a connection from both source and target computers to the server computer of the present invention.
Figure 2D illustrates a flow diagram of a process that automatically scans the source computer and automatically detects installed software, data, and configuration information. The scanning and detecting is performed by the source computer and the target computer using the proprietary software that has been loaded thereon. The proprietary software automatically scans the source computer and automatically detects installed software, data, and configuration information on the source computer at the step 244. The source computer is scanned by traversing registry tree and file tree data on the source computer. The proprietary software creates a source computer profile of the information detected at the step 245. The source computer profile comprises lists of source computer components regarding, but not limited to, the operating system, software applications, upgrades, updates, utilities, application and utility settings and configuration, documents, internal and external drivers, hardware, drives, compatibility, desktop look and feel, the structure of the directories and files, and custom system configuration. The source computer profile information is not a list of what the target computer should have but is instead information regarding what is available on the source computer. On the source computer, the source computer profile information is initially stored in a tree structure but is ultimately flattened into a flat file format. The proprietary software stores the source computer profile information in the format of single-level lists into several tables in a database on the server computer of the present invention at the step 247. The proprietary software checks the configuration of the source computer at the step
248. The proprietary software also checks the source computer disk for computer viruses and other disk problems at the step 249. The proprietary software reports the results of the configuration, virus, and disk problem checks to the user at the step 250. The results include information such as the system configuration information, application configuration information, and the number of megabytes that will be transferred to the target computer.
Figure 2E illustrates a flow diagram of a process that automatically checks a data server for upgrades and updates for the source computer. The server computer software automatically checks a data server, such as the Internet or other preprogrammed dial-up site, for upgrades and updates at the step 251. The server computer software finds upgrades and updates in accordance with the database entry for the source computer. The upgrades and updates include application and driver upgrades and updates, as well as software not yet installed on the source computer. If one or more upgrades and updates are not found at the step 283, the program proceeds to the step 257. If one or more upgrades and updates are found at the step 283, the user selects one or more upgrades and updates to be installed at the step 252. The server computer software repackages the one or more upgrades and updates to enable automatic installation on the target computer at the step 253. If the bandwidth for the download of the one or more upgrades and updates is large enough to handle the download at the step 254, the server computer software downloads the one or more upgrades and updates to the source computer at the step 256. If the bandwidth for the download is not large enough to handle the download at the step
254, a CD containing the one or more upgrades and updates is instead mailed to the user at the step 255.
Figure 2F illustrates a flow diagram of a process that automatically determines the target configuration of the target computer. From the source computer, the transfer software remotely starts the agent software, which resides on the target computer at the step 257. The agent software first determines the target configuration information of the target computer at the step 258 by automatically scanning the target computer and automatically detecting the configuration information of the target computer. The configuration target computer is scanned by traversing registry tree and file tree data on the target computer. The configuration information of the target computer profile comprises information regarding, but not limited to, the operating system, utilities, utility settings and configuration, internal and external drivers, hardware, drives, compatibility, and custom system configuration. The agent software poses questions to the user to obtain specific user preference information at the step 259. An example of a question posed to the user regarding user preference information is whether the user wants to move only documents modified within the last two years. At step 260, the agent software then creates a target computer profile from the configuration information and the responses of the user to the user preference questions. On the target computer, the target computer profile is initially stored in a tree structure but is ultimately flattened into a flat file format. The agent software passes the target computer profile to the server computer of the present invention at the step 261.
Figure 2G illustrates a flow diagram of a process that automatically and selectively transfers software, data, and configuration information from a source computer to a target computer and automatically performs software upgrades and updates. From the server computer of the present invention, the server computer software processes each source computer software package at the step 262. If a software package exists on the source computer that needs to be analyzed for transferability to the target computer at the step 262, the server computer software analyzes the profile information from both the source computer and the target computer based on expert knowledge at the step 263. The source and target computer profiles, as well as the expert knowledge reside on the server computer of the present invention at the step 263. The expert knowledge comprises multiple databases, including exception, locator, user profile, inventory, and news databases.
The expert knowledge also comprises a knowledge base, which comprises source computer information available to the target computer, as opposed to information the target computer should have. The knowledge base comprises lists of inventories, which comprise files and settings that make up each component of the source computer profile. The knowledge base encapsulates a top level rule with lower level exceptions to the rule in a tree structure, such that each level of descent through the tree flips the sense of the exception. To build the knowledge base, rule sets, derived from the source and target computer profile information, are incrementally applied to a global rule space, such that the rule space can be traversed to a point where a particular rule set has been isolated. These rule sets are transfer, upgrade, and conversion rule sets.
At the step 263, the analysis of source and target computer profiles, based on the expert knowledge, is performed only to determine the compatibility between the source and target computers. The analysis is not performed to determine the differences between what the target computer already has and what the target computer should have. Any comparison of the source and target computer profiles during the analysis is minimal. A comparison of the source and target computers is done for moving lower level files and registry settings, but the comparison is not based on the profiles but instead on the results of the configuration check at the step 248. During the analysis at the step 263, a full traverse of the expert knowledge tree structure is performed to the lowest level of the tree structure. No technique, such as dynamic linkage substitution, a checksum technique, or date comparison, is used to stop the traverse of the expert knowledge tree structure at any point. The expert knowledge tree structure is instead used to determine what has been found on the source computer by going through the source computer profile.
Using this expert knowledge, the server computer software ascertains the compatibility of the source computer software package on the target computer to determine if software package is to be transferred to the target computer at the step 264. If the software is incompatible on the target computer, the software may be transferred if the program can configure the software to work on the target computer.
If the server computer software determined the software package should not be transferred from the source computer to the target computer at the step 265, the program checks if another software package on the source computer needs to be analyzed for transferability to the target computer at the step 262. If the software package should be transferred from the source computer to the target computer at the step 265, the source computer transfer software automatically and selectively transfers the software package from the source computer to the target computer at the step 266. The transfer software automatically configures the software package on the target computer at the step 267 and documents the target computer software installation in a master log at the step 268. The master log tracks target computer software modifications. The master log is preferably stored on each of the source computer, target computer and server computer. However, it is possible to store the master log on any one or any combination of those computers. If an upgrade or update was not found for the current software package at the step
269, the program then processes the next software package if one exists at the step 262. If an upgrade or update was found for the current software package at the step 269 and if the user previously chose not to install the upgrade or update at the step 270, the program processes the next software package at the step 262 if one exists. If an upgrade or update is found for the current software package at the step 269 and, at the step 270, if the user previously chose to install the upgrade or update, the transfer software passes the upgrade or update from the source computer to the target computer at the step 271. The user either chooses automatic defaults for the update installation or answers questions up front regarding the update installation at the step 272. The transfer software automatically installs the upgrade or update on the target computer at the step 273. At the step 274, the transfer software documents the upgrade or update in the master log, which resides on the server computer of the present invention and tracks target computer software modifications. At the step 262, the program processes the next software package if one exists. If no software packages exist on the source computer or if all of the software packages on the source computer have been analyzed for transferability to the target computer at the step 262, the program checks if any software packages exist that were not previously installed on the source computer but that the user may want installed on the target computer at the step 275. At the step 275, if a software package exists that was not previously installed on the source computer and if, at the step 276, the user chose not to install the software package not previously installed on the source computer, at the step 275, the program processes the next software package not previously installed on the source computer, if one exists. At the step 275, if a software package exists that was not previously installed on the source computer and if, at the step 276, the user chose to install the software package not previously installed on the source computer, the transfer software passes the software package not previously installed on the source computer from the source computer to the target computer at the step 277. The user either chooses automatic defaults or answers questions up front regarding the software package installation at the step 278. The transfer software automatically installs the software package on the target computer at the step 279. At the step 280, the transfer software documents the software package installation in the master log, which resides on the server computer of the present invention and tracks target computer software modifications. At the step 275, the program processes the next software package not previously installed on the source computer, if one exists. If no software packages exist that were not previously installed on the source computer or if all software packages not previously installed on the source computer have been installed at the request of the user at the step 275, the program proceeds to step 282.
Figure 2H illustrates a flow diagram of a process that automatically stores in a database on the server computer of the present invention the final installed software, data, and configuration information of the target computer. The proprietary software on the server computer of the present invention automatically scans the target computer and automatically detects installed software, data, and configuration information on the target computer at the step 282. The target computer is scanned by traversing registry tree and file tree data on the target computer. The proprietary software creates a target computer profile of the information detected at the step 284. The target computer profile comprises lists of target computer components regarding, but not limited to, the operating system, software applications, upgrades, updates, utilities, application and utility settings and configuration, documents, internal and external drivers, hardware, drives, compatibility, desktop look and feel, the structure of the directories and files, and custom configuration information. The target computer profile will later be used at the server computer of the present invention to notify the user of any software upgrades, updates or software not yet installed on the target computer. On the target computer, the target computer profile information is initially stored in a tree structure but is ultimately flattened into a flat file format. The proprietary software stores the target computer profile information in the format of single-level lists into several tables in a database on the server computer of the present invention at the step 286.
The user chooses either to have all future upgrades and updates installed when found by the server computer of the present invention or to able to select future upgrades and updates to be installed when found by the server computer of the present invention at the step 290. If the user chooses to have all future upgrades and updates installed when found by the server computer of the present invention, the user will be notified electronically, such as by electronic mail, of the upgrades and updates installed on the computer of the user when the upgrades and updates are installed. If the user chooses to be able to select future upgrades and updates to be installed when found by the server computer of the present invention, the user will be notified electronically, such as by electronic mail, of upgrades and updates when found. The user will also be to select the upgrades and updates to be installed after the notification of upgrades and updates found.
The server computer software registers the user on a computer profile registry server of the present invention, which allows the user to selectively release the computer software profile of a user to be accessed by other service providers at the step 292. The computer profile registry server of the present invention is on the same network as the server computer. The service providers, such as software publishers and help desks, can then help the user assess the status of their computer for the purpose of assistance or targeted communication. The transfer software notifies the user of the number of software settings and personal settings that were transferred to the target computer at the step 294.
The user restarts the target computer at the step 296. The program ends at the step 299.
The software information transferred by the transfer software at the step 266 comprises applications and associated component information, such as executables, DLLs, setups, configurations, preferences, shortcuts, and registry entries. Software produced documents are also included in the transfer of software applications. The software information transferred by the transfer software at the step 266 also comprises system configuration and setup, such as date/time, network drives, and printer settings. Other system configuration and setup comprises look and feel settings, such as start menu, screen save, mouse, sounds, shortcuts, and desktop. Further, other system configuration and setup comprises Internet connections such as dial-up data, but not modem configuration. Another type of software information transferred by the transfer software at the step 266 includes user folder hierarchies and documents, such as c:/IWC/BreEZE/marketingbusinessplan.doc, MS Office documents, templates, personal dictionaries, e-mails and filters, PIM data, Web-bookmarks, favorites, and Web-cookies. The transfer software ignores hardware specific files, such as internal modem drivers.
Figures 3A, 3B, and 3C illustrate three flow diagrams for three separate processes of a software program that performs automatic software upgrades and updates. The upgrades and updates include application and driver upgrades and updates, as well as software not yet installed on the source computer. Figure 3 A illustrates a flow diagram of a process that automatically stores in a database on the server computer of the present invention the installed software, data, and configuration information of a remote computer of a user. The process flow moves from a start state 300 to an end state 325. The proprietary software, a proprietary software program of this inventor, is started on the server computer of present invention 302. An example of a server computer of the present invention is a web server of the present invention. The proprietary software automatically scans the remote computer of the user and automatically detects installed software, data, and configuration information on the remote computer of the user at the step 305. The remote computer of the user is scanned by traversing registry tree and file tree data on the remote computer of the user. The proprietary software creates a profile of the information detected at the step
310. The profile comprises lists of components regarding, but not limited to, the operating system, software applications, upgrades, updates, utilities, application and utility settings and configuration, documents, internal and external drivers, hardware, drives, compatibility, desktop look and feel, the structure of the directories and files, and custom system configuration. On the remote computer of the user, the profile information is initially stored in a tree structure but is ultimately flattened into a flat file format. The proprietary software stores the profile information in the format of single-level lists into several tables in a database on the server computer of the present invention at the step 31 1. The proprietary software checks the configuration of the remote computer of the user at the step 312. The proprietary software also checks the remote computer disk of the user for computer viruses and other disk problems at the step 313. The proprietary software reports the results of the configuration, virus, and disk problem checks to the user at the step 315. The results include information such as the system configuration and application configuration information. At the step 320, the process also registers the user on a computer profile registry server of the present invention, if the user was not previously registered. The computer profile registry allows the user to selectively release the computer software profile of the user to be accessed by other service providers. The computer profile registry server of the present invention is on the same network as the server computer of the present invention. The service providers, such as software publishers and help desks, can then help the user assess the status of their computer for the purpose of assistance or targeted communication. The process then ends at the step 325. This process needs to be run only once in order to create a database entry for the installed software, data, and configuration information on the remote computer of a user. The database entry can later be updated after any software upgrades, updates, or installations of software not previously installed on the remote computer of a user.
Figure 3B illustrates a flow diagram of a process that automatically and periodically checks a data server for software upgrades and updates for a remote computer of a user. This process is run periodically for as long as the user wishes to have software upgrades and updates installed on the remote computer installed on the remote computer of the user. The process is run from the server computer of the present invention. The process flow moves from a start state 330 to an end state 335. The process automatically checks a data server, such as the Internet or other preprogrammed dial-up site, to determine whether one or more software upgrades and updates exist for the remote computer of a user at the step 331. The process finds software upgrades and updates in accordance with the database entry for the remote computer of a user. Information found on the data server is not a list of what the remote computer of the user should have but is instead information regarding what is available on the data server. Upgrades and updates comprise application and driver upgrades and updates, as well as software not yet installed on the remote computer of the user.
At the step 332, if the user previously chose to have upgrades and updates installed on the remote computer of the user when found, then the user is electronically notified, such as by electronic mail, of one or more upgrades and updates found that will be installed on the remote computer of the user at the step 334. The server computer is also notified to start the installation of upgrades and updates at the step 335. At the step 332, if the user did not previously choose to have upgrades and updates installed on the remote computer of the user when found, the user is electronically notified, such as by electronic mail, about any upgrades and updates that are found at the step 333. If the user wishes to have any of the upgrades or updates installed on the remote computer of the user, the user must then electronically notify the server computer, such as by electronic mail, which upgrades and updates the user wishes to have installed. The process ends at the step 336.
Figure 3C illustrates a flow diagram of a process that automatically installs and configures upgrades and updates on the remote computer of a user. The process is run from the server computer of the present invention. The process flow moves from a start state 340 to an end state 395. At the step 341, the process either waits for notification by the server computer of the present invention to start installation of one or more upgrades and updates on a remote computer of a user or waits for an electronic request from a remote user. Upgrades and updates comprise application and driver upgrades and updates, as well as software not yet installed on the remote computer of the user. If the process does not receive an electronic request from a remote user at the step 342, and instead receives notification to start installation of one or more upgrades and updates on a remote computer of a user at the step 343, the process repackages the one or more upgrades and updates to enable automatic installation on the remote computer of the user at the step 370. If at the step 343 the process does not receive notification to start installation of one or more upgrades and updates on the remote computer of a user, the process again either waits for notification to start installation of one or more upgrades and updates on a remote computer of a user or waits for an electronic request from a remote user at the step 341.
If at the step 342, the process receives an electronic request from the user, the electronic request can be either a request for one or more upgrades and updates at the step 350, a request to have all future upgrades and updates installed on the remote computer of the user when found at the step 355, or a request, at the step 360, to be notified of all future upgrades and updates when found, such that the user may select upgrades and updates to be installed. If the user electronically responds with neither a request for one or more upgrades and updates at the step 350, nor to have all future upgrades and updates installed on the remote computer of the user when found at the step 355, nor to be notified of all future upgrades and updates when found at the step 360, and the user instead electronically responds with a request to have software upgrading and updating disabled completely at the step 365, the program ends at the step 395.
At the step 365, if the user did not electronically request to have software upgrading and updating disabled completely, then the process disregards the electronic request and waits either for notification to start installation of one or more upgrades and updates on the remote computer of the user or for an electronic request from the remote user at the step 341. If at the step 360, the user electronically requests to be notified of all future upgrades and updates when found so as to be able to select upgrades and updates to be installed, the process then waits either for notification to start installation of one or more upgrades and updates on the remote computer of the user or for an electronic request from the remote user at the step 341. Similarly, if at the step 355, the user electronically requests to have all future upgrades and updates installed on the remote computer of a user when found, the process then waits either for notification to start installation of one or more upgrades and updates on the remote computer of the user or for an electronic request from the remote user at the step 341. If at the step 350, the user electronically responds with a request for one or more upgrades and updates, the process repackage the upgrades and updates to enable automatic installation on the remote computer of the user at the step 370. After the upgrades and updates are repackaged to enable automatic installation on the remote computer of the user at the step 370, if the bandwidth of the connection between the server computer of the present invention and the remote computer of the user is not large enough to handle the download of the one or more upgrades and updates to the remote computer of the user at the step 371, a CD containing the one or more upgrades and updates is instead mailed to the user at the step 372. The process then waits either for notification by the server computer of the present invention to start installation of upgrades and updates on a remote computer of a user or for an electronic request from a remote user at the step 341.
If the bandwidth of the connection between the server computer of the present invention and the remote computer of the user is large enough to handle the download of one or more upgrades and updates to the remote computer of the user at the step 371 , the server computer software downloads the one or more upgrades and updates to the remote computer of the user at the step 375. If a software upgrade or update exists that needs to be installed on the remote computer of the user at the step 376, the remote user either chooses automatic defaults for the update installation or answers questions up front regarding the upgrade or update installation at the step 380. The server computer software automatically installs the upgrade or update on the remote computer of the user at the step 381. The server computer software documents the upgrade or update in a master log, which resides on the server computer of the present invention and tracks software modifications for the remote computer of the user at the step 382. The process determines if another upgrade or update exists that needs to be installed on the remote computer of the user at the step 376.
If no more upgrades or updates need to be installed at the step 370, the proptietary software automatically scans the remote computer of the user and automatically detects installed software, data, and configuration information at the step 383. The remote computer of the user is scanned by traversing registry tree and file tree data on the remote computer of the user. The proprietary software creates a profile of the information detected at the step 384. The profile comprises lists of components regarding, but not limited to, the operating system, software applications, upgrades, updates, utilities, application and utility settings and configuration, documents, internal and external drivers, hardware, drives, compatibility, desktop look and feel, the structure of directories and files, and custom configuration information. The process updates the database entry at the server computer of the present invention with the profile information for the remote computer of the user at the step 385. The process then waits either for notification to start installation of upgrades and updates on the remote computer of a user or for an electronic request from the user at the step 341.

Claims

C L A I M SWhat is claimed is:
1. A method of operating a software application that automatically transfers software, data, and configuration information from a source computer to a target computer and automatically upgrades and updates software, the method comprising the steps of: a. automatically scanning the source computer and automatically detecting installed software and configuration information; b. automatically determining target configuration information of the target computer; and c. automatically and selectively transferring and configuring predetermined software from the source computer to the target computer in accordance with the source computer configuration information and the target computer configuration information.
2. The method according to claim 1, wherein the step of scanning the source computer further comprises requesting input from a user.
3. The method according to claim 2, wherein the step of requesting input further comprises notifying the user of installed software, data, and configuration information taken from the source computer.
4. The method according to claim 2, wherein the step of scanning the source computer further comprises performing the scanning of the source computer from a server computer.
5. The method according to claim 4, wherein the server computer comprises a web server.
6. The method according to claim 4, wherein the server computer comprises a remote server computer on a same network as the source and target computers.
7. The method according to claim 4, wherein the step of scanning the source computer comprises a connection from both the source computer and the target computer to the server computer.
8. The method according to claim 7, wherein the connection comprises directly connecting one of the source computer or the target computer to the server computer, if the server computer is a web server.
9. The method according to claim 8, wherein the connection further comprises removable media, which is inserted into a drive for removable media of one of the source computer or the target computer, whichever computer is to be directly connected to the server computer.
10. The method according to claim 9, wherein the connection further comprises removable media software, which connects one of the source computer or the target computer to the server computer, whichever computer into which the removable media was inserted.
1 1. The method according to claim 10, wherein the connection further comprises a null connection between the source and target computers.
12. The method according to claim 11, wherein the null connection comprises downloaded instructions and components from the server computer to the removable media while the removable media is inserted into a drive for removable media of one of the source computer or the target computer, whichever computer is connected to the server computer.
13. The method according to claim 12, wherein the null connection further comprises removable media software which performs the connection between the source and target computers, using the downloaded instructions and components, from a drive for removable media of one of the source computer or the target computer, whichever computer is not connected to the server computer.
14. The method according to claim 10, wherein the removable media software comprises components and web pages.
15. The method according to claim 7, wherein the step of scanning the source computer further comprises traversing registry tree and file tree data on the source computer.
16. The method according to claim 15, wherein the step of scanning the source computer further comprises creating a source computer profile collected from the information scanned.
17. The method according to claim 16, wherein the source computer profile comprises lists of components regarding, but not limited to, the operating system, software applications, upgrades, updates, utilities, application and utility settings and configuration, documents, internal and external drivers, hardware, drives, compatibility, desktop look and feel, the structure of directories and files, and custom configuration information.
18. The method according to claim 16, wherein the step of scanning the source computer further comprises storing the source computer profile information in a format of single-level lists into several tables in a database at the server computer.
19. The method according to claim 18, wherein the step of scanning the source computer further comprises determining a configuration of the source computer.
20. The method according to claim 19, wherein the step of scanning the source computer further comprises checking the source computer for computer viruses and other disk problems.
21. The method according to claim 20, wherein the step of scanning the source computer further comprises checking a data server from the server computer whether upgrades and updates exist for the installed software in accordance with the source computer configuration information.
22. The method according to claim ?, wherein the step of scanning the source computer further comprises repackaging the upgrades and updates in order to automatically install the upgrades and updates on the target computer.
23. The method according to claim 1, wherein the step of determining the target computer configuration information further comprises scanning the target computer and detecting configuration information.
24. The method according to claim 23, wherein the scanning of the target computer comprises traversing registry tree and file tree data on the target computer.
25. The method according to claim 23, wherein the step of determining the target computer configuration information further comprises creating a profile of the target computer collected from information scanned.
26. The method according to claim 25, wherein the profile of the target computer comprises information regarding, but not limited to, the operating system, utilities, utility settings and configuration, internal and external drivers, hardware, drives, compatibility, and custom system configuration.
27. The method according to claim 26, wherein the profile of the target computer further comprises responses from the user to questions regarding specific user preference information.
28. The method according to claim 25, wherein the step of determining the target computer configuration information further comprises passing the target computer profile information to a server computer.
29. The method according to claim 1, wherein the step of transferring and configuring software further comprises analyzing the profile information from both the source and target computers based on expert knowledge residing on a server computer.
30. The method according to claim 29, wherein analyzing the profile information comprises determining the compatibility between the source and target computers.
31. The method according to claim 29, wherein the expert knowledge comprises a knowledge base, which encapsulates a top level rule with lower level exceptions to the rule in a tree structure, such that each level of descent through the tree flips the sense of the exception.
32. The method according to claim 31, wherein the knowledge base comprises incrementally applying rule sets, derived from the source and target computer profile information, to a global rule space, such that the rule space can be traversed to a point where a particular rule set has been isolated.
33. The method according to claim 32, wherein the step of transferring and configuring software further comprises storing the target computer profile information in the format of single-level lists into several tables in a database on the server computer.
34. The method according to claim 33, wherein the step of transferring and configuring software further comprises choosing by the user to be either notified of upgrades and updates, so the user may select which upgrades and updates are to be installed, or to have upgrades and updates installed when found.
35. The method according to claim 34, wherein the step of transferring and configuring software further comprises registering the user on the computer profile registry server, which allows the user to selectively release the computer software profile of the user to be accessed by other service providers.
36. A method of automatically upgrading software on a remote computer of a user comprising the steps of: a. automatically scanning the remote computer of the user and automatically detecting installed software, data, and configuration information; b. storing in a database the information obtained from the step of scanning and detecting; c. automatically and periodically checking a data server to determine whether upgrades and updates exist for the installed software in accordance with the configuration information stored in the database for the remote computer of the user; d. automatically installing and configuring one or more upgrades and updates in accordance with the configuration information for the remote computer of the user; and e. updating the database entry for the remote computer of the user with newly installed software information.
37. The method according to claim 36, wherein the step of scanning the remote computer of the user further comprises performing the scan of the remote computer of the user from the server computer.
38. The method according to claim 37, wherein the server computer comprises a web server.
39. The method according to claim 37, wherein the step of scanning the remote computer of the user further comprises traversing registry tree and file tree data on the remote computer of the user.
40. The method according to claim 39, wherein the step of scanning the remote computer of the user further comprises creating a remote computer profile collected from information scanned.
41. The method according to claim 36, wherein the step of storing in a database further comprises a database location of a server computer.
42. The method according to claim 41, wherein the step of storing in a database further comprises storing in the format of single-level lists into several tables.
43. The method according to claim 36, wherein the data server comprises Internet and other preprogrammed dial-up sites.
44. The method according to claim 36, wherein the step of automatically installing and configuring one or more upgrades and updates further comprises electronically notifying the user of the choice of upgrades and updates found or of the upgrades and updates to be installed.
45. An apparatus for automatically and selectively transferring software from a source computer to a target computer and automatically upgrading and updating software comprising: a. a source computer having agent software, means for introducing the program to the user, and means for requesting user input; b. a target computer having transfer software, a cable connecting to the source computer, and means for a null connection to the source computer; c. a server computer having means for connecting to the source and target computers, means for accessing a data server, means for accessing a computer profile registry server, a database, and a master log; d. means for automatically scanning the source and target computers and means for automatically detecting source and target computer profile information from the server computer; e. means for storing the source and target computer profile information in the database of the server computer; f. means for checking the source computer configuration and means for checking the source computer for computer viruses and other disk problems; g. means for reporting to the user the results of the configuration, virus, and disk problem checks; h. means for checking the data server from the server computer whether upgrades and updates exist for the installed software on the source computer installed in accordance with the source computer profile information; i. means for downloading upgrades and updates from the server computer to the source computer; j. means for automatically and selectively transferring and configuring predetermined software from the source computer to the target computer in accordance with the source and target computer profile information; k. means for automatically installing and configuring upgrades and updates of the transferred software on the target computer; 1. means for storing information about the transferred software and the installed upgrades and updates in the database on the server computer; m. means for documenting information about the transferred software and the installed upgrades and updates in the master log; n. means for registering the user on the computer profile registry server; and o. means for notifying the user of software settings and personal settings transferred to target computer.
1 46. An apparatus for automatically upgrading software on a remote computer of
2 a user co: sing:
3 a. a server computer having means for connecting to a remote computer of the
4 user, means for accessing a data server, means for accessing a computer
5 profile registry server, a database, and a master log;
6 b. means for automatically scanning the remote computer of the user and
7 automatically detecting profile information from the server computer;
8 c. means for storing the profile information in the database of the server
9 computer;
10 d. means for checking the configuration of the remote computer of the user
11 and means for checking for computer viruses and other disk problems on
12 the remote computer of the user;
13 e. means for reporting to the user the results of the configuration, computer
14 virus and disk problem checks;
15 f. means for registering the user on the computer profile registry server;
16 g- means for automatically and periodically checking the data server from the
17 server computer whether upgrades and updates exist for the installed
18 software on the remote computer of a user in accordance with the profile
19 information;
20 h. means for downloading upgrades and updates from the server computer to 7.11 the remote computer of the user;
22 i. means for electronically notifying the user about each upgrade found;
23 j- means for transferring the upgrade to the remote computer of a user in
24 response to a user request;
25 k. means for automatically installing and configuring one or more upgrades
26 and updates in accordance with the remote computer profile information;
27 1. means for updating the database entry for the remote computer of a user
28 with the newly installed software information; and
29 m means for documenting information about the installed upgrades and updates
30 in the master log.
47. The apparatus according to claim 46, wherein the server computer comprises a web server.
48. The apparatus according to claim 46, wherein the scan comprises traversing registry tree and file tree data on the remote computer of the user.
49. The apparatus according to claim 46, wherein the profile comprises software, data, and configuration information on the remote computer.
50. The apparatus according to claim 46, wherein the results comprise system configuration and application configuration information.
51. The apparatus according to claim 46, wherein the computer profile registry comprises the option of the user to selectively release the computer software profile of the user to be accessed by other service providers.
52. The apparatus according to claim 46, wherein the storage in the database comprises a format of single-level lists into several tables.
53. The apparatus according to claim 46, wherein the data server comprises the Internet or other preprogrammed dial-up sites.
54. The apparatus according to claim 46, wherein the installation of one or more upgrades and updates comprise electronic notification of the user of the choice of upgrades and updates found or of the upgrades and updates to be installed.
55. The apparatus according to claim 46, wherein the database update for the remote computer of the user comprises an automatic scan of the remote computer of the user and an automatic detection of installed software, data, and configuration information.
56. The apparatus according to claim 55, wherein the database update for the remote computer of the user further comprises creating a profile of the information detected.
57. The apparatus according to claim 55, wherein the scan of the remote computer of the user further comprises traversing registry tree and file tree data on the remote computer of the user.
PCT/US1999/030236 1998-12-17 1999-12-17 Automatic and selective transfer of software and configuration information from a source computer to a target computer and automatic upgrade of software WO2000036503A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU24816/00A AU2481600A (en) 1998-12-17 1999-12-17 Automatic and selective transfer of software and configuration information from a source computer to a target computer and automatic upgrade of software

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11415298P 1998-12-17 1998-12-17
US60/114,152 1998-12-17
US46627099A 1999-12-17 1999-12-17
US09/466,270 1999-12-17

Publications (2)

Publication Number Publication Date
WO2000036503A2 true WO2000036503A2 (en) 2000-06-22
WO2000036503A3 WO2000036503A3 (en) 2000-10-26

Family

ID=26811868

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1999/030236 WO2000036503A2 (en) 1998-12-17 1999-12-17 Automatic and selective transfer of software and configuration information from a source computer to a target computer and automatic upgrade of software

Country Status (2)

Country Link
AU (1) AU2481600A (en)
WO (1) WO2000036503A2 (en)

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1170660A2 (en) * 2000-07-06 2002-01-09 Marconi Commerce Systems Inc. A method and apparatus for upgrading software at a remote fuelling site
WO2002025436A2 (en) * 2000-09-21 2002-03-28 Work4Sure.Com Ltd. Remote computer configuration scanning
DE10101996A1 (en) * 2001-01-18 2002-08-08 Tenovis Gmbh & Co Kg Method and device for analyzing the correctness of installations and deinstallations of Windows · T ·· M · programs on a PC
WO2002073408A1 (en) * 2001-03-14 2002-09-19 Metso Automation Networks Oy Adoption of workstation in information system of process contro l environment
EP1284550A1 (en) * 2001-08-13 2003-02-19 Red-M (Communications) Limited Automatic information transfer
WO2002050673A3 (en) * 2000-12-21 2003-03-13 Nokia Corp Improvements in and relating to communication terminals
US6546493B1 (en) 2001-11-30 2003-04-08 Networks Associates Technology, Inc. System, method and computer program product for risk assessment scanning based on detected anomalous events
GB2386503A (en) * 2002-03-12 2003-09-17 Toshiba Res Europ Ltd Generating and downloading platform specific code
GB2399660A (en) * 2003-03-20 2004-09-22 Oxford Semiconductor Ltd Upgrading networked devices
US6904592B1 (en) 2000-04-28 2005-06-07 Gilbarco Inc. Software download system for automatic retrieval of warranty and commission data
WO2005052816A2 (en) 2003-07-25 2005-06-09 Honeywell International Inc. Multiple system compatible database system and method
WO2005062174A2 (en) * 2003-11-28 2005-07-07 Abb Patent Gmbh System and method for the automatic installation, verification and configuration of functionality in the system components of a distributed network
WO2006018030A1 (en) 2004-08-14 2006-02-23 Telefonaktiebolaget Lm Ericsson (Publ) Method for sofware program synchronization
EP1469385A3 (en) * 2003-04-16 2006-03-29 Novadigm, Inc. Method and system for patch management
US7188195B2 (en) 2003-11-14 2007-03-06 Hewlett-Packard Development Company, L.P. DMA slot allocation
EP1818824A1 (en) 2000-12-21 2007-08-15 Nokia Corporation Improvements in and relating to communication terminals
US7426510B1 (en) 2004-12-13 2008-09-16 Ntt Docomo, Inc. Binary data categorization engine and database
DE10352811B4 (en) * 2002-11-12 2010-04-29 Dell Products L.P., Round Rock Method and system for manufacturing an information processing system according to a customer configuration
EP2216717A1 (en) * 2009-01-26 2010-08-11 NTT DoCoMo, Inc. Installation notification method, installation notification system, and installation notification server
US7840673B1 (en) 2002-06-17 2010-11-23 International Business Machines Corporation Method and apparatus for management of hosted applications
GB2470811A (en) * 2009-06-03 2010-12-08 Apple Inc Sharing software applications between devices
US7984503B2 (en) 2004-09-27 2011-07-19 Mcafee, Inc. System, method and computer program product for accelerating malware/spyware scanning
WO2011128501A1 (en) * 2010-04-15 2011-10-20 Nokia Corporation Method and apparatus for widget compatibility and transfer
US8214826B2 (en) 2007-10-09 2012-07-03 International Business Machines Corporation Optimized targeting in a large scale system
US20130054527A1 (en) * 2011-08-29 2013-02-28 Pantech Co., Ltd. Terminal, server, and method for synchronizing application
US8392994B2 (en) 2005-01-14 2013-03-05 Mcafee, Inc. System, method and computer program product for context-driven behavioral heuristics
US9471300B2 (en) 2012-07-26 2016-10-18 Utc Fire And Security America Corporation, Inc. Wireless firmware upgrades to an alarm security panel
US20210141629A1 (en) * 2019-11-08 2021-05-13 Toyota Jidosha Kabushiki Kaisha Program update system and vehicle management server
US11301232B2 (en) 2019-05-29 2022-04-12 Microsoft Technology Licensing, Llc Update management service for enterprise computing environments
US20230093701A1 (en) * 2020-05-30 2023-03-23 Huawei Technologies Co., Ltd. Method and apparatus for controlling installation of application program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2292485A (en) * 1994-08-02 1996-02-21 Michael William Mcdonell Interface adaptor for communications
US5511184A (en) * 1991-04-22 1996-04-23 Acer Incorporated Method and apparatus for protecting a computer system from computer viruses
WO1998047057A2 (en) * 1997-04-14 1998-10-22 R2K, Llc Registry management system
WO1998049631A2 (en) * 1997-04-25 1998-11-05 Koninklijke Philips Electronics N.V. System for composing multimedia letters

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511184A (en) * 1991-04-22 1996-04-23 Acer Incorporated Method and apparatus for protecting a computer system from computer viruses
GB2292485A (en) * 1994-08-02 1996-02-21 Michael William Mcdonell Interface adaptor for communications
WO1998047057A2 (en) * 1997-04-14 1998-10-22 R2K, Llc Registry management system
WO1998049631A2 (en) * 1997-04-25 1998-11-05 Koninklijke Philips Electronics N.V. System for composing multimedia letters

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MICHIO ITO ET AL: "Software System Integration Support Expert System Based on the Object-Oriented Method" PROCEEDINGS OF THE IEEE/ACM INTERNATIONAL CONFERENCE ON DEVELOPING AND MANAGING EXPERT SYSTEM PROGRAMS, WASHINGTON, DC, US, vol. -, 30 September 1991 (1991-09-30) - 2 October 1991 (1991-10-02), pages 106-111, XP000335573 IEEE. COMP. SOC. PRESS, LOS ALAMITOS, CA, US *
SALAMONE S: "Electronic Software Distribution: Diamond in the Rough" DATA COMMUNICATIONS INTERNATIONAL, vol. 22, no. 4, March 1993 (1993-03), pages 109-110, 112, 114, 116, XP000345797 US, MCGRAW HILL. NEW YORK ISSN: 0363-6399 *

Cited By (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904592B1 (en) 2000-04-28 2005-06-07 Gilbarco Inc. Software download system for automatic retrieval of warranty and commission data
EP1170660A2 (en) * 2000-07-06 2002-01-09 Marconi Commerce Systems Inc. A method and apparatus for upgrading software at a remote fuelling site
EP1170660A3 (en) * 2000-07-06 2002-07-03 Marconi Commerce Systems Inc. A method and apparatus for upgrading software at a remote fuelling site
WO2002025436A2 (en) * 2000-09-21 2002-03-28 Work4Sure.Com Ltd. Remote computer configuration scanning
WO2002025436A3 (en) * 2000-09-21 2002-08-08 Work4Sure Com Ltd Remote computer configuration scanning
EP1818824A1 (en) 2000-12-21 2007-08-15 Nokia Corporation Improvements in and relating to communication terminals
WO2002050673A3 (en) * 2000-12-21 2003-03-13 Nokia Corp Improvements in and relating to communication terminals
DE10101996A1 (en) * 2001-01-18 2002-08-08 Tenovis Gmbh & Co Kg Method and device for analyzing the correctness of installations and deinstallations of Windows · T ·· M · programs on a PC
WO2002073408A1 (en) * 2001-03-14 2002-09-19 Metso Automation Networks Oy Adoption of workstation in information system of process contro l environment
WO2003026202A2 (en) * 2001-08-12 2003-03-27 Red-M (Communications) Limited Automatic information transfer
WO2003026202A3 (en) * 2001-08-13 2003-10-16 Red M Communications Ltd Automatic information transfer
EP1284550A1 (en) * 2001-08-13 2003-02-19 Red-M (Communications) Limited Automatic information transfer
US6546493B1 (en) 2001-11-30 2003-04-08 Networks Associates Technology, Inc. System, method and computer program product for risk assessment scanning based on detected anomalous events
GB2386503B (en) * 2002-03-12 2004-04-21 Toshiba Res Europ Ltd Code modification systems
GB2386503A (en) * 2002-03-12 2003-09-17 Toshiba Res Europ Ltd Generating and downloading platform specific code
US7840673B1 (en) 2002-06-17 2010-11-23 International Business Machines Corporation Method and apparatus for management of hosted applications
DE10352811B4 (en) * 2002-11-12 2010-04-29 Dell Products L.P., Round Rock Method and system for manufacturing an information processing system according to a customer configuration
GB2399660A (en) * 2003-03-20 2004-09-22 Oxford Semiconductor Ltd Upgrading networked devices
EP1469385A3 (en) * 2003-04-16 2006-03-29 Novadigm, Inc. Method and system for patch management
WO2005052816A2 (en) 2003-07-25 2005-06-09 Honeywell International Inc. Multiple system compatible database system and method
WO2005052816A3 (en) * 2003-07-25 2005-09-29 Honeywell Int Inc Multiple system compatible database system and method
US8782097B2 (en) 2003-07-25 2014-07-15 Honeywell International Inc. Multiple system compatible database system and method
US7188195B2 (en) 2003-11-14 2007-03-06 Hewlett-Packard Development Company, L.P. DMA slot allocation
WO2005062174A3 (en) * 2003-11-28 2006-06-29 Abb Patent Gmbh System and method for the automatic installation, verification and configuration of functionality in the system components of a distributed network
WO2005062174A2 (en) * 2003-11-28 2005-07-07 Abb Patent Gmbh System and method for the automatic installation, verification and configuration of functionality in the system components of a distributed network
WO2006018030A1 (en) 2004-08-14 2006-02-23 Telefonaktiebolaget Lm Ericsson (Publ) Method for sofware program synchronization
JP2008510207A (en) * 2004-08-14 2008-04-03 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Software program synchronization method
US8949469B2 (en) 2004-08-14 2015-02-03 Telefonaktiebolaget L M Ericsson (Publ) Method for software program synchronization
JP4921363B2 (en) * 2004-08-14 2012-04-25 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Software program synchronization method
US7984503B2 (en) 2004-09-27 2011-07-19 Mcafee, Inc. System, method and computer program product for accelerating malware/spyware scanning
US7426510B1 (en) 2004-12-13 2008-09-16 Ntt Docomo, Inc. Binary data categorization engine and database
US8392994B2 (en) 2005-01-14 2013-03-05 Mcafee, Inc. System, method and computer program product for context-driven behavioral heuristics
US8214826B2 (en) 2007-10-09 2012-07-03 International Business Machines Corporation Optimized targeting in a large scale system
EP2216717A1 (en) * 2009-01-26 2010-08-11 NTT DoCoMo, Inc. Installation notification method, installation notification system, and installation notification server
US8320899B2 (en) 2009-01-26 2012-11-27 Ntt Docomo, Inc. Installation notification method, installation notification system, and installation notification server
US8732238B2 (en) 2009-06-03 2014-05-20 Apple Inc. Installing applications based on a seed application from a separate device
US8346847B2 (en) 2009-06-03 2013-01-01 Apple Inc. Installing applications based on a seed application from a separate device
GB2470811B (en) * 2009-06-03 2011-09-14 Apple Inc Installing applications based on a seed application from a separate device
GB2470811A (en) * 2009-06-03 2010-12-08 Apple Inc Sharing software applications between devices
WO2011128501A1 (en) * 2010-04-15 2011-10-20 Nokia Corporation Method and apparatus for widget compatibility and transfer
US20130054527A1 (en) * 2011-08-29 2013-02-28 Pantech Co., Ltd. Terminal, server, and method for synchronizing application
US9471300B2 (en) 2012-07-26 2016-10-18 Utc Fire And Security America Corporation, Inc. Wireless firmware upgrades to an alarm security panel
US11301232B2 (en) 2019-05-29 2022-04-12 Microsoft Technology Licensing, Llc Update management service for enterprise computing environments
US20210141629A1 (en) * 2019-11-08 2021-05-13 Toyota Jidosha Kabushiki Kaisha Program update system and vehicle management server
US11704106B2 (en) * 2019-11-08 2023-07-18 Toyota Jidosha Kabushiki Kaisha Program update system and vehicle management server
US20230305835A1 (en) * 2019-11-08 2023-09-28 Toyota Jidosha Kabushiki Kaisha Program update system and vehicle management server
US20230093701A1 (en) * 2020-05-30 2023-03-23 Huawei Technologies Co., Ltd. Method and apparatus for controlling installation of application program

Also Published As

Publication number Publication date
WO2000036503A3 (en) 2000-10-26
AU2481600A (en) 2000-07-03

Similar Documents

Publication Publication Date Title
WO2000036503A2 (en) Automatic and selective transfer of software and configuration information from a source computer to a target computer and automatic upgrade of software
JP3946275B2 (en) Remote installation system and method
JP3184802B2 (en) Method and system for providing customized internet content to requesting client devices
US7146609B2 (en) Method, system and article of manufacture for a firmware image
US6301710B1 (en) System and method for creating a substitute registry when automatically installing an update program
CN101124559B (en) Installation method and information processing apparatus
US7987459B2 (en) Application programming interface for identifying, downloading and installing applicable software updates
US5790796A (en) Polymorphic package files to update software components
US6144960A (en) Software registering/managing system and method thereof
KR101075388B1 (en) Peripheral device driver maintenance scheme for networked peripheral device clients
US6353926B1 (en) Software update notification
US6321258B1 (en) Administration of networked peripherals using particular file system
US6560516B1 (en) Method for conducting vehicle diagnostic analyses using distributed structure
US8037198B2 (en) Firmware upgrade for thin clients using one or more servers
US8225312B2 (en) Method and apparatus for downloading software updates
US6408434B1 (en) System and method for using a substitute directory to automatically install an update program
US20030195951A1 (en) Method and system to dynamically detect, download and install drivers from an online service
US20040059703A1 (en) Cascading behavior of package generation/installation based on variable parameters
US7917600B2 (en) Method, computer program product, and system for selecting and migrating information and device drivers to a computer system
US20030217358A1 (en) Method, system, and article of manufacture for firmware downloads
US7519651B2 (en) Information processing system, information processing method, and storage medium therefor
US20030221094A1 (en) Method and system for configuring a computer
JP2001508575A (en) Software Update Manager
JP2008535082A (en) User data profile in the namespace
US20070240150A1 (en) Simplifying installation of a suite of software products

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase