Abstract:
The present provides a method and system for intelligent installation/upgrading of software. Said method first detects, at a client, softwares that have been installed on the client, generates a list of softwares to be installed/upgraded, and provides a corresponding installation/upgrading prompt for each software to be installed/upgraded; then, upon detecting, by the client, that a user selects an installation/upgrading operation of a software according to said installation/upgrading prompt, it downloads a corresponding target software installation/upgrading package from a server according to a name and version number of said software to be installed/upgraded; next, it runs an installation/upgrading file in said target software installation/upgrading package at the client to finish installation/upgrading of said software. The present invention makes the user no longer need to worry about the irrelevant and harmful contents bound to the software to be installed, so it can realize convenient installation, meanwhile, it can enable the user to learn about new versions of softwares installed in the client in time and can upgrade several softwares at one time.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention relates to the technical field of software, in particular to a method and system for intelligent installation/upgrading of software. 
       BACKGROUND OF THE INVENTION 
       [0002]    With the development of the computer and Internet technology, various application softwares emerge in an endless stream. The only single purpose of early software installation is to install functional modules relating to the software, but with the development of competition, nowadays some irrelevant and even harmful contents will be bound to the software during installation of the software, which are installed by the user unintentionally during installation of the software. 
         [0003]    This kind of problem is now becoming more and more serious, because not only a lot of officially released softwares include a great deal of bound contents, some people who specially provide software download will also integrate bound contents into the normal software installation process of others, thus a lot of trouble are caused to users. 
         [0004]    Some inexperienced users will usually install many un-needed bound contents unintentionally during installation, and these bound contents might very possibly be harmful; as for users with some experience, they need to be very careful during the installation, and when they noticed some of the irrelevant bound contents, they may choose to remove them, but this delays the process of installation and wastes a lot of energy of users, besides, with respect to some hidden or forcibly bound contents, there is nothing the users could do. 
         [0005]    On the other hand, software upgrading is similar to software installation, because there is a process of installation after upgrading. The difference is that when a new version of a software is released, it is usually published on a web page of its own official web site or on web pages of cooperating web sites, or it is advertised to computer users. After learning information of the new version, users may choose whether to download it or not and where to download it according to the needs. This way of application software upgrading is passive upgrading, and for users, they cannot learn the release of new versions in time. 
         [0006]    There are some softwares that have an update informing function, but this function is only effective to said softwares themselves, while as for other softwares, this function cannot have the effect of prompting, so users still cannot learn in time whether the commonly used softwares installed are the latest versions; moreover, when upgraded versions have been released for several softwares, it is impossible to upgrade all the new versions at one time. 
         [0007]    Therefore, it is a problem demanding prompt solution as to how to provide a method and system for intelligent installation/upgrading of software, which enable users to confidently install various softwares without paying much attention to the installation process or which even enables an intervention-free installation or upgrading. 
       SUMMARY OF THE INVENTION 
       [0008]    The technical problem to be solved by the present invention is to provide a method and system for intelligent installation/upgrading of software, which enables users not to worry about the irrelevant or harmful contents bound to the software to be installed so as to realize convenient and fast installation, and which can enable users to learn about new versions of the installed softwares in time and to upgrade several softwares at one time. 
         [0009]    To solve the above technical problem, the present invention provides a method for intelligent installation/upgrading of software, which comprises the following steps: 
         [0010]    detecting, at a client, softwares that have been installed on the client, generating a list of softwares to be installed/upgraded, and providing a corresponding installation/upgrading prompt for each software to be installed/upgraded; 
         [0011]    upon detecting, by the client, that a user selects an installation/upgrading operation of a software according to said installation./upgrading prompt, downloading a corresponding target software installation/upgrading package from a server according to a name and version number of said software to be installed/upgraded; 
         [0012]    running an installation/upgrading file in said target software installation/upgrading package at the client to finish installation/upgrading of said software. 
         [0013]    The present invention also provides a system for intelligent installation/upgrading of software, which comprises: 
         [0014]    a detecting module adapted to detecting, at a client, softwares that have been installed on the client, generating a list of softwares to be installed/upgraded, and providing a corresponding installation/upgrading prompt for each software to be installed/upgraded; 
         [0015]    a downloading module adapted to, upon detecting by the client that a user selects an installation/upgrading operation of a software according to said installation/upgrading prompt, downloading a corresponding target software installation/upgrading package from a server according to a name and version number of said software to be installed/upgraded; 
         [0016]    an installing module adapted to running an installation/upgrading file in said target software installation/upgrading package at the client to finish installation/upgrading of said software. 
         [0017]    The present invention not only provides a function of “one-click installation/upgrading” to users, but also makes the installation/upgrading process free of bound contents, so there is no more worry for unintentional installation of harmful contents during the installation and software installation/upgrading becomes easy, simple and green. In addition, the present invention can detect software installation information intelligently, efficiently and accurately, determine the software versions precisely, and push software upgrading information to a user&#39;s desktop according to software upgrading frequency of the user. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0018]      FIG. 1  is a flow chart of a method for intelligent installation/upgrading of software according to an embodiment of the present invention. 
           [0019]      FIG. 2  is a schematic drawing of a flow of steps of detecting by a client according to an embodiment of the present invention. 
           [0020]      FIG. 3  is a schematic drawing of a flow of steps of detecting by a client according to another embodiment of the present invention. 
           [0021]      FIG. 4  is a schematic drawing of a system for intelligent installation/upgrading of software according to an embodiment of the present invention. 
           [0022]      FIG. 5  is a schematic drawing of a detecting module according to an embodiment of the present invention. 
           [0023]      FIG. 6  is a schematic drawing of a detecting module according to another embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0024]    Embodiments of the present invention are described in detail below with reference to the drawings. 
         [0025]      FIG. 1  is a flow chart of a method for intelligent installation/upgrading of software according to an embodiment of the present invention. First, detecting, at a client, softwares that have been installed on the client, generating a list of softwares to be installed/upgraded, and providing a corresponding installation/upgrading prompt for each software to be installed/upgraded (step  101 ); then, upon detecting, by the client, that a user selects an installation/upgrading operation of a software according to said installation/upgrading prompt, downloading a corresponding target software installation/upgrading package from a server according to a name and version number of said software to be installed/upgraded (step  102 ); next, running an installation/upgrading file in said target software installation/upgrading package at the client to finish installation/upgrading of said software. 
         [0026]    Wherein, the step of detecting, at a client, softwares that have been installed on the client may be performing corresponding detections according to a pre-set software list; said pre-set software list includes software names, and when the client detects that a software is not installed on the client, it prompts the user to download and install said software. 
         [0027]    Wherein, said pre-set software list may further include software version numbers, when the client detects that a version number of a corresponding software installed on the client is lower than that in said list, it prompts the user to download the upgraded version. 
         [0028]    Wherein, said pre-set software list may be stored in the client or it may be stored in the server and updated periodically to be issued to the client. 
         [0029]    Wherein, in addition to running an installation upgrading package or installation upgrading file originally configured in the software, said target software installation/upgrading package may also be a self-made installation/upgrading package having the bound contents included in the original installation/upgrading package of said software shielded. 
         [0030]    Wherein, the installation/upgrading file of said target software installation/upgrading package may include an installation boot script which shields bound contents. 
         [0031]    Wherein, said installation boot script may shield bound contents by selecting and setting installation parameters. 
         [0032]    Wherein, the installation/upgrading file of said target software installation/upgrading package may include an installation boot script which includes a step of deleting specific bound files and/or recovering environment setting modified by said bound files after finishing the installation/upgrading. 
         [0033]    Wherein, the installation/upgrading file of said target software installation/upgrading package may include an installation boot script which includes a step of replacing or adding upgrading files and/or setting the registration environment. 
         [0034]    Wherein, the installation/upgrading file of said target software installation/upgrading package may include an installation boot script which includes quiesce installation parameters to perform installation/upgrading in a quiesce mode. 
         [0035]    Wherein, the installation/upgrading file of said target software installation/upgrading package may include an installation boot script which includes creating a virtual desktop and performing the step of installation/upgrading on the virtual desktop. 
         [0036]    The bound contents that might exist in the software installation/upgrading package may be obtained through analysis of the software installation process, while as for measures for shielding said bound contents, they may be taken by cooperating with provider of said software. 
         [0037]    For example, by simulating the actual installation, it may be observed whether the whole installation process requires the user to click to select, whether bound contents are carried secretly, and whether said bound contents are information that are clicked and selected by the user, then a corresponding installation boot script may be written and provided in advance according to these information, so that in the process of executing the script, some steps of selection for installation may be skipped, i.e. it is selected not to install the bound contents; as for bound contents that are forcibly installed without being selected by the user, they may be un-installed after finishing the installation, or the installation process of said bound contents may be terminated, or the bound contents in the installation file are directly deleted, or even the installation package may be re-made. 
         [0038]    In the above-mentioned script, skipping the installation selection may be realized by quiesce installation parameters or virtual clicking. For example, with respect to the software “Storm Codec”, it may be realized by the following quiesce parameters: StormCodec.exe/S/quickasso/skipcheck/skipyisou/2052 
         [0039]    wherein, /S means quiesce installation (the user interface is not displayed, and if there is no other parameter, default components are installed according to a default setting and in a default language of the system); 
         [0040]    /quickasso means directly associating files according to recommendation/current format after finishing the installation without any dialog box for selection popping out; 
         [0041]    /skipcheck means skipping examination of the operating environment during installation; 
         [0042]    /skipyisou means skipping installation of the Internet tool bar of Yisou of Yahoo; 
         [0043]    /2052 means not inquiring the language to be installed and directly installing a simplified Chinese version. 
         [0044]    In addition, a virtual desktop installation may be created, and installation on a virtual desktop can more thoroughly prevent the user from being disturbed, and any operation of the user on the present desktop will not be interrupted. Said virtual desktop may be realized mainly through API functions including CreatDesktop, OpenDesktop and SwitchDesktop. If it is desirable to run a program on the opened desktop, a CreatProcess function is also necessary. 
         [0045]    In the Linux system, the virtual desktop is a method that extend the working area of the user beyond the boundary of the computer display screen, and this desktop can roll up, down, left and right, like a larger desktop being placed behind the glass screen, and it can move around to display icons, windows and some other objects existing in the background or out of sight. At present, Windows XP and Windows 2003 can also realize the virtual desktop just like Linux, and it is only required to download a msvdm.dll file but no program needs to be installed. Windows can provide four desktops altogether, each desktop can have a different background and a corresponding shortcut key applied, but the shortcut icons on these four desktops are always the same, and they cannot represent different programs on different desktops. Thus there is no worry about the generation of the shortcuts when installing software on the virtual desktop. 
         [0046]    According to one embodiment of the present invention, an installation script database may be constructed at the server, which stores the names, version numbers of commonly used software and the corresponding installation boot scripts. 
         [0047]    Correspondingly, referring to  FIG. 2 , which is a schematic drawing of a flow of steps of detecting by a client according to an embodiment of the present invention. First of all, issuing a list of software names and version numbers stored in the database to the client by the server (step  201 ); then detecting by the client whether the client has the corresponding software to be installed according to information of said list (step  202 ); generating a list of softwares to be installed according to the result of detection (step  203 ). 
         [0048]    Detection by the client is not limited to the above-mentioned way, but it may be initiated directly by the client instead of being upon issuing of the list by the server. 
         [0049]      FIG. 3  is a schematic drawing of a flow of steps of detecting by a client according to another embodiment of the present invention. First, detecting, by the client, names and version numbers of all softwares to be installed/upgraded in the client and transmitting them to the server (step  301 ); then, comparing, by the server, the names and version numbers of softwares to be installed/upgraded transmitted from the client with the software names and version numbers stored in the database to determine manageable software names and version numbers (step  302 ); generating, by the client, a list of softwares to be installed/upgraded according to said manageable software names and version numbers (step  303 ). 
         [0050]    Referring to  FIG. 4 , the present invention also provides a system for intelligent installation/upgrading of software, which comprises a detecting module  401 , a downloading module  402  and an installing module  403 . 
         [0051]    Wherein, the detecting module  401  is adapted to detecting, at a client, softwares that have been installed on the client, generating a list of softwares to be installed/upgraded, and providing a corresponding installation/upgrading prompt for each software to be installed/upgraded; 
         [0052]    the downloading module  402  is adapted to, upon detecting by the client that a user selects an installation/upgrading operation of a software according to said installation/upgrading prompt, downloading a corresponding target software installation/upgrading package from a server according to a name and version number of said software to be installed/upgraded; 
         [0053]    the installing module  403  is adapted to running an installation/upgrading file in said target software installation/upgrading package at the client to finish installation/upgrading of said software. 
         [0054]    As mentioned above, the detecting module  401  may perform corresponding detection according to a pre-set software list; said pre-set software list includes software names, when the detecting module detects that said software is not installed on said client, it prompts the user to download and install. 
         [0055]    Likewise, said pre-set software list may further include software version numbers, when the detecting module detects that a version number of a corresponding software installed on the client is lower than that in said list, it prompts the user to download the upgraded version. 
         [0056]    Correspondingly,  FIG. 5  shows a schematic drawing of a detecting module according to an embodiment of the present invention, which comprises an issuing unit  501 , a detecting unit  502  and a generating unit  5033 , wherein, 
         [0057]    the issuing unit  501  is adapted to issuing a list of software names and version numbers stored in the database to the client from the server; 
         [0058]    the detecting unit  502  is adapted to detecting at the client whether said client has the corresponding software to be installed/upgraded according to information of said list; 
         [0059]    the generating unit  503  is adapted to generating a list of softwares to be installed/upgraded according to the result of detection of the detecting unit. 
         [0060]      FIG. 6  is a schematic drawing of a detecting module according to another embodiment of the present invention, which comprises a detecting unit  601 , a comparing unit  602  and a generating unit  603 , wherein, 
         [0061]    the detecting unit  601  is adapted to detecting, at the client, the names and version numbers of all softwares to be installed/upgraded in said client and transmitting them to the server; 
         [0062]    the comparing unit  602  is adapted to comparing, at the server, the names and version numbers of software to be installed/upgraded transmitted from the client with the software names and version numbers stored in the database to determine manageable software names and version numbers; 
         [0063]    the generating unit  603  is adapted to generating, at the client, a list of softwares to be installed/upgraded according to said manageable software names and version numbers. 
         [0064]    Likewise, the installing module in the embodiment of the present invention can perform the installation in a quiesce manner, or it can perform the installation on a virtual desktop by creating a virtual desktop. 
         [0065]    Installation on a virtual desktop is one of the special features of the present invention, in cooperation with the above-mentioned installation boot script, it enables the user not to participate in the whole software installation process any more after clicking installation, in the meantime, there is no need to worry about installing any bound contents unintentionally, also, any operation of the user on the present desktop will not be interrupted, and resource of the present desktop will not be occupied, either, thus realizing complete intervention-free green installation. 
       INDUSTRIAL PRACTICAL APPLICABILITY 
       [0066]    The present invention provides a more convenient way of software installation/upgrading, and it effectively avoids installing harmful contents during the installation/upgrading process, besides, it can intelligently, efficiently and accurately detect software installation information, precisely determine the software versions, and push software upgrading information to a user&#39;s desktop according to software upgrading frequency of the user.