US20070088799A1 - System and method for installing software - Google Patents

System and method for installing software Download PDF

Info

Publication number
US20070088799A1
US20070088799A1 US11/353,395 US35339506A US2007088799A1 US 20070088799 A1 US20070088799 A1 US 20070088799A1 US 35339506 A US35339506 A US 35339506A US 2007088799 A1 US2007088799 A1 US 2007088799A1
Authority
US
United States
Prior art keywords
server
software module
clients
configuration information
client
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
US11/353,395
Other versions
US8024430B2 (en
Inventor
David Luft
Sarad Thapa
Venkatesh Gandham
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CA Inc
Original Assignee
Computer Associates Think 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 Computer Associates Think Inc filed Critical Computer Associates Think Inc
Priority to US11/353,395 priority Critical patent/US8024430B2/en
Assigned to COMPUTER ASSOCIATES THINK, INC. reassignment COMPUTER ASSOCIATES THINK, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LUFT, DAVID A., THAPA, SARAD, GANDHAM, VANKATESH
Priority to PCT/US2006/040300 priority patent/WO2007044946A1/en
Publication of US20070088799A1 publication Critical patent/US20070088799A1/en
Application granted granted Critical
Publication of US8024430B2 publication Critical patent/US8024430B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Definitions

  • This invention relates in general to computer software and, more particularly, to a system and method for installing computer software.
  • a method for installing software includes receiving configuration information at a server and installing a server software module on the server. The method further includes transmitting a client software module associated with the server software module to a plurality of clients and initiating, from the server, installation of the client software module on the plurality of clients. Additionally, the method includes configuring the client based, at least in part, on the configuration information received by the server.
  • a system for installing software includes a network, a server, and a plurality of clients.
  • the network couples the server and the plurality of clients.
  • the plurality of clients are each capable of executing instructions associated with one or more client software modules.
  • the server is capable of receiving configuration information and installing a server software module on the server.
  • the server is also capable of transmitting a client software module to the plurality of clients and initiating installation of the client software module on the plurality of clients.
  • the server is capable of configuring the plurality of clients based, at least in part, on the received configuration information.
  • Technical advantages of certain embodiments of the present invention include the ability to automate and streamline, at least in part, the installation of software applications on a distributed computing system. Additional technical advantages include the reuse of common configuration information between components, time-savings in the installation process, reductions in user error during data-entry, and the ability to limit client-side access to configuration settings. Other technical advantages of the present invention will be readily apparent to one skilled in the art from the following figures, descriptions, and claims. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some, or none of the enumerated advantages.
  • FIG. 1 illustrates a computer system that supports one or more software applications
  • FIGS. 2A and 2B illustrate, respectively, a server and a client that may be included in the computer system of FIG. 1 ;
  • FIG. 3 is a flowchart illustrating operation of a particular embodiment of the server shown in FIG. 2A .
  • FIG. 1 illustrates a system 10 according to a particular embodiment of the present invention.
  • system 10 includes a server 20 and a plurality of clients 30 coupled through a network 40 .
  • System 10 provides computing, processing, and/or data-management services to users of system 10 through the operation of server 20 and clients 30 .
  • server 20 and clients 30 operate in conjunction with one another to provide one or more of the services offered by system 10 .
  • system 10 may support one or more software applications that rely on the operation of software modules executing on server 20 as well as software modules executing on clients 30 . By streamlining and automating installation of related software modules on server 20 and clients 30 , particular embodiments of system 10 may improve ease-of-use and limit user error during installation.
  • Server 20 provides functionality associated with the various software applications supported by system 10 . As part of providing this functionality, server 20 may execute instructions included in and/or associated with one or more server software modules 50 of the relevant software applications. In particular embodiments, server 20 is configured to receive requests, instructions, and/or queries from clients 30 and to perform requested tasks or operations in response to these requests, instructions, and queries. Server 20 may include any appropriate combination of hardware and/or software suitable to provide the described functionality. The contents and operation of a particular embodiment of server 20 are described in greater detail below with respect to FIG. 2A .
  • User interface 22 facilitates interaction between a user of system 10 and server 20 .
  • User interface 22 may include components such as a keyboard, mouse, monitor, printer, display screen, and/or any other components appropriate to allow the user to input information into server 20 or receive information from server 20 .
  • Clients 30 also provide functionality associated with the various software applications supported by system 10 . As part of providing this functionality, clients 30 may execute instructions included in and/or associated with one or more client software modules 60 of the relevant software application. In particular embodiments, clients 30 are configured to transmit requests, instructions, and/or queries to server 20 to initiate certain tasks or operations associated with the software applications supported by system 10 . Clients 30 may include any appropriate combination of hardware and/or software suitable to provide the described functionality. The contents and operation of a particular embodiment of client 30 are described in greater detail below with respect to FIG. 2B . Although not shown in FIG. 1 , any of clients 30 may also include appropriate forms of user interfaces to facilitate the exchange of information between clients 30 and their respective users.
  • Network 40 provides connectivity between server 20 , clients 30 , and/or other components of system 10 .
  • Network 40 may represent any suitable form of network supporting communication using any appropriate communication protocols or standards. Additionally, network 40 may represent one or more separate networks.
  • Network 40 may include routers, hubs, switches, gateways, call controllers, and/or any other suitable component in any suitable form or arrangement.
  • network 40 may comprise any combination of public or private communication equipment such as elements of the Publicly-Switched Telephone Network (PSTN), a global computer network such as the internet, a local area network (LAN), a wide-area network (WAN), or other appropriate communication equipment.
  • PSTN Publicly-Switched Telephone Network
  • LAN local area network
  • WAN wide-area network
  • Server software modules 50 and client software modules 60 may represent any appropriate computer-readable instructions in any appropriate form. Based on the configuration of server 20 , clients 30 , and system 10 generally, software modules 50 and 60 may represent compiled, executable code; uncompiled, source code; and/or instructions in any other suitable form. Moreover, although referred to consistently throughout this description with the generic name “software modules,” any of server software modules 50 and client software modules 60 may be modified in any appropriate manner during installation or at other times during operation of system 10 . For example, in particular embodiments, software modules 50 and 60 may initially represent compressed code and this compressed code may be decompressed at an appropriate point during the installation process.
  • FIG. 1 illustrates an example in which a network security server software module 50 a , a virus protection server software module 50 b, a data recovery server software module 50 c, and a data migration server software module 50 d are installed, along with corresponding client server software modules 60 a - d.
  • Network security software modules 50 a and 60 a manage access to server 20 , clients 30 , network 40 , and/or other components of system 10 to reduce or eliminate unauthorized use of the relevant components.
  • Virus protection software modules 50 b and 60 b monitor operation of server 20 , clients 30 , or other components of system 10 to detect, prevent, and/or remedy the presence, operation, or effects of unauthorized code.
  • Data recovery software modules 50 c and 60 c manage the archival and/or retrieval of data stored on server 20 and clients 30 .
  • Data migration software modules 50 d and 60 d provide functionality associated with transferring information from one component of system 10 to another. For example, data migration software modules 50 d and 60 d may provide functionality that allows a user at one client 30 to utilize desktop settings set by the user at another client 30 .
  • server 20 may also support the use of licenses to allow a software provider to manage use of software modules 50 and 60 provided by that software provider. Such embodiments may utilize any appropriate techniques to facilitate the issuance, use, and termination of the relevant licenses.
  • server 20 maintains, for each installed software application, license information 80 that specifies a number of licenses available to users of system 10 , the number of licenses currently checked-out by users, and the identity of the clients 30 on which the users are using the checked-out licenses.
  • server 20 is responsible for checking out licenses to users of various clients 30 in response to license requests and updating license information 80 to reflect current license usage on system 10 .
  • Configuration information 70 specifies an initial configuration for server 20 and/or clients 30 with respect to particular software applications to be installed on server 20 , indicates a set of clients 30 on which particular client software modules 60 should be installed, and/or provides any other appropriate parameters for installation and/or configuration of software on system 10 .
  • configuration information 70 may include any appropriate information that is provided to server 20 or clients 30 prior to or during installation of software modules 50 and 60 .
  • server 20 may use configuration information 70 received by server 20 to generate one or more sets of server configuration information 72 and client configuration information 74 . Each set of server configuration information 72 and client configuration information 74 may include some or all of configuration information 70 and may additionally include other information generated or retrieved by server 20 .
  • configuration information 70 may include, but are not limited to, information identifying authorized users of system 10 and their corresponding passwords, port mappings for communication between server 20 and clients 30 , software update schedules, data backup schedules, virus definitions, port mappings, user preferences, firewall or other security settings, addresses or other identifying information for components supporting particular services (such as mail servers and proxy servers), information specifying protocols supported by system 10 , and license information associated with one or more of the applications supported by system 10 .
  • the installation techniques below may be used with any appropriate type of configuration information 70 , server configuration information 72 , and/or client configuration information 74 .
  • a user may install software applications on system 10 using a common install process that streamlines the installation of multiple applications over multiple components of system 10 .
  • server 20 receives configuration information 70 from a user and/or another component of system 10 to be utilized by server 20 or clients 30 during installation of associated software applications.
  • server 20 receives configuration information 70 from a user through user interface 22 .
  • Server 20 may additionally or alternatively receive configuration information 70 from another component of system 10 , such as one of clients 30 or a memory device located within or coupled to server 20 .
  • server 20 may receive configuration information 70 from any appropriate source based on the configuration and capabilities of server 20 .
  • server 20 may generate one or more sets of server configuration information 72 and one or more sets of client configuration information 74 based on the received configuration information 70 .
  • each set of server configuration information 72 is associated with a particular software application to be installed and includes all or a portion of configuration information 70 received by server 20 .
  • each set of client configuration information 74 is associated with a particular software application to be installed and includes all or a portion of configuration information 70 received by server 20 .
  • server 20 may generate or retrieve additional configuration information to supplement any set of server configuration information 72 or client configuration information 74 .
  • multiple sets of server configuration information 72 and/or client configuration information 74 may share certain portions of configuration information 70 . As a result, the common installation process may reduce the number of times a user must enter the shared portions of configuration information 70 . This may reduce the amount of time expended by the user in installing software applications and limit possibility of errors by the user in configuring server 20 and clients 30 .
  • server 20 may store the collected and/or generated sets of server configuration information 72 and client configuration information 74 for later use, allowing the user to quickly repeat the installation and configuration of the same software applications with little effort. For example, in the illustrated embodiment, server 20 generates configuration profile 76 associated with each software application and stores a set of server configuration information 72 and a set of client configuration information 74 associated with a particular software application in the configuration profile 76 that corresponds to that software application. In particular embodiments, the user may then access the configuration profiles 76 to later repeat installation of the same software applications without re-entering the relevant configuration information 70 .
  • server 20 In addition to configuration information 70 , server 20 also receives one or more server software modules 50 and one or more client software modules 60 .
  • server software modules 50 include computer-readable instructions associated with the operation of server 20 with respect to a particular software application to be installed on system 10
  • client software modules 60 include computer-readable instructions associated with the operation of a client 30 with respect to a particular software application.
  • server 20 may receive software modules 50 and 60 by receiving software modules 50 and 60 from another component of system 10 , by accessing a memory coupled to or within server 20 , and/or by receiving software modules 50 and 60 in any other appropriate manner.
  • Server 20 then initiates installation of software associated with each application to be installed. As part of this process, server 20 installs one or more server software modules 50 . Each server software module 50 is associated with a particular set of server configuration information 72 . While installing a particular server software module 50 , server 20 accesses the server configuration information 72 associated with that server software module 50 . Server 20 then configures server 20 and/or the relevant server software module 50 based on the accessed server configuration information 72 .
  • server 20 After completing installation of a particular server software module 50 , server 20 initiates installation of a client software module 60 associated with the same software application.
  • system 10 may support multiple software applications but may be configured so that only a subset of clients 30 support one or more of these applications.
  • system 10 may be configured so that a network management application is installed on only a select set of clients 30 that are associated with system administrators.
  • server 20 may identify, for a particular application to be installed, one or more clients 30 on which that application will be installed.
  • configuration information 70 may include information identifying clients 30 on which server 20 should install the relevant client software module 60 , and server 20 may identify the appropriate clients 30 based on this information.
  • server 20 After any appropriate identification of clients 30 , server 20 initiates installation of the associated client software module on appropriate clients 30 . As part of this process, server 20 may transmit a copy of the associated client software module 60 to each of the relevant clients 30 . Additionally, in particular embodiments, server 20 may transmit to each of these clients 30 a copy of the client configuration information 74 associated with the transmitted client software module 60 .
  • client software module 60 may include an executable program that clients 30 automatically execute upon receipt of the received client software module 60 .
  • server 20 may transmit an installation instruction to the relevant clients 30 after these clients receive client software module 60 , and the relevant clients 30 may then initiate installation of the received client software module 60 in response to the installation instruction.
  • Configuration of the installed client software modules 60 and/or the appropriate clients 30 is then completed based on the set of client configuration information 74 associated with the installed client software module 60 .
  • server 20 may configure client software module 60 or the client 30 on which this module is installed based on the corresponding client configuration information 74 .
  • server 20 may set the ports of client 30 that are to be used for communication with between server 20 and clients 30 during operation of the software application associated with the installed client software module 60 .
  • server 20 may transmit client configuration information 74 to client 30 , and client 30 may configure itself or the received client software module 60 based on the corresponding client configuration information 74 .
  • server 20 may transmit an executable file to the relevant clients 30 and those clients 30 may, as part of executing this file, configure itself or the received client software module 60 to use the port mapping identified by the received client configuration information 74 for any communication with server 20 originating from or destined to the software application.
  • the relevant clients 30 may activate the installed client software module 60 .
  • the relevant clients 30 may request a license for the associated software application from server 20 or another appropriate component of system 10 .
  • server 20 may update license information 80 to reflect the fact that the requesting client 30 has checked out a license for the associated application.
  • Server 20 may also transmit an acknowledgement message or another suitable form of message to the requesting client 30 indicating that client 30 has successfully checked out a license for the application. If the number of licenses currently checked out by clients 30 in system 10 is already equal to the maximum number of licenses that system 10 is authorized to use, server 20 may instead transmit a license failure message or other appropriate form of message to the requesting client 30 .
  • Server 20 may then repeat this process for any remaining software applications to be installed, installing the associated server software module 50 and initiating installation of the associated client software module 60 on appropriate clients 30 .
  • server 20 may instead install all server software modules 50 and then install the associated client software modules 60 after server software modules 50 have been installed.
  • server 20 may install server software modules 20 and client software modules 30 in any appropriate order.
  • server 20 may streamline and simplify installation of the various applications. Additionally, by utilizing a common set of configuration information 70 to generate multiple sets of server configuration information 72 and/or client configuration information 74 , server 20 may reduce the time a user spends repeatedly entering configuration information 70 to be utilized by multiple software applications and may also reduce the possibility of user error. As a result, particular embodiments of server 20 may provide multiple operational benefits. Nonetheless, particular embodiments of server 20 may provide all, some, or none of these benefits.
  • FIGS. 2A and 2B illustrate, respectively, the contents of particular embodiments of a server 20 and a client 30 .
  • server 20 includes a processor 110 a , a memory 120 a , and a network interface 130 a
  • client 30 includes a processor 110 b, a memory 120 b, and a network interface 130 b.
  • server 20 couples to user interface 22 as described above with respect to FIG. 1 .
  • Alternative embodiments may include any appropriate components suitable to provide the described functionality.
  • Processors 110 a and 110 b are operable to execute instructions associated with the services provided by server 20 and clients 30 .
  • Processors 110 may represent any suitable devices capable of processing and/or communicating electronic information. Examples of processors 110 include, but are not limited to, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs) and any other suitable specific- or general-purpose processors.
  • ASICs application-specific integrated circuits
  • FPGAs field-programmable gate arrays
  • DSPs digital signal processors
  • Memories 120 a and 120 b store processor instructions and/or any other appropriate information used by server 20 and clients 30 in operation.
  • server 20 maintains received configuration information 70 , server configuration information 72 , server software modules 50 , license information 80 , in memory 120 a
  • client 30 maintains client configuration information 74 and client software modules 60 in memory 120 b .
  • Memories 120 may represent any collection and arrangement of volatile or non-volatile, local or remote devices suitable for storing data such as, for example, random access memory (RAM) devices, read only memory (ROM) devices, magnetic storage devices, optical storage devices, or any other suitable data storage devices.
  • memories 120 may comprise removable media, such as compact discs, magnetic tapes, or diskettes.
  • Network interfaces 130 a and 130 b each comprise an interface operable to facilitate communication between server 20 or client 30 and network 40 .
  • Network interfaces 130 may include any appropriate combination of hardware and/or software suitable to facilitate interaction between server 20 or client 30 and other components of system 10 .
  • each network interface 130 may comprise a Network Interface Card (NIC), and any appropriate controlling logic, that is suitable to support communication between server 20 and client 30 over network 40 using the Ethernet or Token Ring protocol.
  • NIC Network Interface Card
  • user interface 22 facilitates interaction between a user of system 10 and server 20 .
  • user interface 22 may include components such as a keyboard, mouse, monitor, printer, display screen, and/or any other components appropriate to allow the user to input information into server 20 or receive information from server 20 .
  • client 30 in particular embodiments, may also include or be coupled to an appropriate form of user interface.
  • FIG. 3 is a flowchart illustrating in greater detail an example operation of a particular embodiment of serve 20 . Any of the steps illustrated in FIG. 3 may be combined, modified, or deleted where appropriate, and additional steps may also be added to the described operation. Additionally, steps may be performed in any suitable order without departing from the scope of the invention.
  • server 20 receives one or more server software modules 50 and one or more client software modules 60 .
  • server 20 may receive configuration information 70 and software modules 50 and 60 in any appropriate manner including, but not limited to, by receiving this information from a user through an appropriate user interface, retrieving this information from memory, and/or receiving this information automatically from another component of system 10 .
  • server 20 generates one or more sets of server configuration information 72 and one or more sets of client configuration information 74 based on configuration information 70 received by server 20 .
  • server 20 may generate server configuration information 72 and client configuration information 74 by processing configuration information 70 in any appropriate manner.
  • each set of server configuration information 72 and each set of client configuration information 74 represents a portion of configuration information 70 .
  • server 20 may generate client configuration information 74 by identifying appropriate portions of configuration information 70 relevant to the installation or use of each software application to be installed and generating a set of server configuration information 72 and client configuration information 74 for each software application that includes the portions identified as relevant for that software application.
  • server 20 may store a set of server configuration information 72 and a set of client configuration information 74 for each software application to be installed in a configuration profile 76 associated with that software application.
  • server 20 installs a server software module 50 on server 20 .
  • Server 20 then configures itself with respect to operation of the server software module 50 based on server configuration. information 72 associated with that server software module 50 at step 340 .
  • server 20 may configure itself to use certain ports when communicating with clients 30 as part of the operation of the software application associated with the installed server software module 50 .
  • Server 20 may, at step 350 , identify one or more clients 30 associated with the server software module 50 installed during step 330 .
  • server 20 may identify the appropriate clients 30 based on an appropriate portion of the received configuration information 70 , additional instructions provided by the user, and/or any other appropriate information available to server 20 .
  • Server 20 may then transmit a client software module 60 to identified clients at step 360 .
  • server 20 also transmits a set of client configuration information 74 corresponding to the transmitted client software module 60 to the identified clients at step 370 .
  • Server 20 then initiates installation of the client software module 60 on the identified clients 30 at step 380 .
  • Clients 30 then install client software module 60 .
  • server 20 may also initiate configuration of the clients 30 based on the client configuration information 74 by either directly configuring the client 30 or by instructing the identified clients 30 to configure themselves based on the client configuration information 74 .
  • server 20 may initiate installation and configuration of identified clients 30 by communicating an executable file to the identified clients 30 and instructing clients 30 to execute the file.
  • the executable file may, when executed, both install client software module 60 and configure client 30 .
  • server 20 determines, at step 400 , whether additional software applications remain to be installed. If so, operation of server 20 may return to step 330 . If not, operation may end, as shown in FIG. 3 .

Abstract

A method for installing software includes receiving configuration information at a server and installing a server software module on the server. The method further includes transmitting a client software module associated with the server software module to a plurality of clients and initiating, from the server, installation of the client software module on the plurality of clients. Additionally, the method includes configuring the client based, at least in part, on the configuration information received by the server.

Description

    RELATED APPLICATIONS
  • This application claims the priority benefit of U.S. Provisional Application Ser. No. 60/727,163 filed Oct. 14, 2005.
  • TECHNICAL FIELD OF THE INVENTION
  • This invention relates in general to computer software and, more particularly, to a system and method for installing computer software.
  • BACKGROUND OF THE INVENTION
  • Many modern computer systems are designed to provide a wide variety of functionalities to a distributed collection of users. In many cases, computer systems are designed to support a flexible set of services that can be expanded by installing additional software applications. Because many computing systems are tasked with providing a wide variety of complex services to users, installation and configuration of the necessary applications can be a time-consuming process. Additionally, manual installation and configuration of the applications can often lead to user-induced errors. Moreover, for distributed systems in which functionality is provided jointly by clients and servers, coordinating the installation and configuration of software applications can be even more difficult and time-consuming.
  • SUMMARY OF THE INVENTION
  • In accordance with the present invention, certain disadvantages and problems associated with installing computer software have been substantially reduced or eliminated. In particular, techniques for expediting and simplifying the installation of computer software are provided.
  • In accordance with one embodiment of the present invention, a method for installing software includes receiving configuration information at a server and installing a server software module on the server. The method further includes transmitting a client software module associated with the server software module to a plurality of clients and initiating, from the server, installation of the client software module on the plurality of clients. Additionally, the method includes configuring the client based, at least in part, on the configuration information received by the server.
  • In accordance with another embodiment of the present invention, a system for installing software includes a network, a server, and a plurality of clients. The network couples the server and the plurality of clients. The plurality of clients are each capable of executing instructions associated with one or more client software modules. Additionally, the server is capable of receiving configuration information and installing a server software module on the server. The server is also capable of transmitting a client software module to the plurality of clients and initiating installation of the client software module on the plurality of clients. Additionally, the server is capable of configuring the plurality of clients based, at least in part, on the received configuration information.
  • Technical advantages of certain embodiments of the present invention include the ability to automate and streamline, at least in part, the installation of software applications on a distributed computing system. Additional technical advantages include the reuse of common configuration information between components, time-savings in the installation process, reductions in user error during data-entry, and the ability to limit client-side access to configuration settings. Other technical advantages of the present invention will be readily apparent to one skilled in the art from the following figures, descriptions, and claims. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some, or none of the enumerated advantages.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • For a more complete understanding of the present invention and its advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
  • FIG. 1 illustrates a computer system that supports one or more software applications;
  • FIGS. 2A and 2B illustrate, respectively, a server and a client that may be included in the computer system of FIG. 1; and
  • FIG. 3 is a flowchart illustrating operation of a particular embodiment of the server shown in FIG. 2A.
  • DETAILED DESCRIPTION OF THE INVENTION
  • FIG. 1 illustrates a system 10 according to a particular embodiment of the present invention. As shown, system 10 includes a server 20 and a plurality of clients 30 coupled through a network 40. System 10 provides computing, processing, and/or data-management services to users of system 10 through the operation of server 20 and clients 30. In particular embodiments, server 20 and clients 30 operate in conjunction with one another to provide one or more of the services offered by system 10. More specifically, system 10 may support one or more software applications that rely on the operation of software modules executing on server 20 as well as software modules executing on clients 30. By streamlining and automating installation of related software modules on server 20 and clients 30, particular embodiments of system 10 may improve ease-of-use and limit user error during installation.
  • Server 20 provides functionality associated with the various software applications supported by system 10. As part of providing this functionality, server 20 may execute instructions included in and/or associated with one or more server software modules 50 of the relevant software applications. In particular embodiments, server 20 is configured to receive requests, instructions, and/or queries from clients 30 and to perform requested tasks or operations in response to these requests, instructions, and queries. Server 20 may include any appropriate combination of hardware and/or software suitable to provide the described functionality. The contents and operation of a particular embodiment of server 20 are described in greater detail below with respect to FIG. 2A.
  • User interface 22 facilitates interaction between a user of system 10 and server 20. User interface 22 may include components such as a keyboard, mouse, monitor, printer, display screen, and/or any other components appropriate to allow the user to input information into server 20 or receive information from server 20.
  • Clients 30 also provide functionality associated with the various software applications supported by system 10. As part of providing this functionality, clients 30 may execute instructions included in and/or associated with one or more client software modules 60 of the relevant software application. In particular embodiments, clients 30 are configured to transmit requests, instructions, and/or queries to server 20 to initiate certain tasks or operations associated with the software applications supported by system 10. Clients 30 may include any appropriate combination of hardware and/or software suitable to provide the described functionality. The contents and operation of a particular embodiment of client 30 are described in greater detail below with respect to FIG. 2B. Although not shown in FIG. 1, any of clients 30 may also include appropriate forms of user interfaces to facilitate the exchange of information between clients 30 and their respective users.
  • Network 40 provides connectivity between server 20, clients 30, and/or other components of system 10. Network 40 may represent any suitable form of network supporting communication using any appropriate communication protocols or standards. Additionally, network 40 may represent one or more separate networks. Network 40 may include routers, hubs, switches, gateways, call controllers, and/or any other suitable component in any suitable form or arrangement. In general, network 40 may comprise any combination of public or private communication equipment such as elements of the Publicly-Switched Telephone Network (PSTN), a global computer network such as the internet, a local area network (LAN), a wide-area network (WAN), or other appropriate communication equipment.
  • Server software modules 50 and client software modules 60 may represent any appropriate computer-readable instructions in any appropriate form. Based on the configuration of server 20, clients 30, and system 10 generally, software modules 50 and 60 may represent compiled, executable code; uncompiled, source code; and/or instructions in any other suitable form. Moreover, although referred to consistently throughout this description with the generic name “software modules,” any of server software modules 50 and client software modules 60 may be modified in any appropriate manner during installation or at other times during operation of system 10. For example, in particular embodiments, software modules 50 and 60 may initially represent compressed code and this compressed code may be decompressed at an appropriate point during the installation process.
  • Any suitable types of software applications may be installed on system 10 and thus server software modules 50 and client software modules 60 may be associated with any appropriate functionality. FIG. 1 illustrates an example in which a network security server software module 50 a, a virus protection server software module 50 b, a data recovery server software module 50 c, and a data migration server software module 50 d are installed, along with corresponding client server software modules 60 a-d. Network security software modules 50 a and 60 a manage access to server 20, clients 30, network 40, and/or other components of system 10 to reduce or eliminate unauthorized use of the relevant components. Virus protection software modules 50 b and 60 b monitor operation of server 20, clients 30, or other components of system 10 to detect, prevent, and/or remedy the presence, operation, or effects of unauthorized code. Data recovery software modules 50 c and 60 c manage the archival and/or retrieval of data stored on server 20 and clients 30. Data migration software modules 50 d and 60 d provide functionality associated with transferring information from one component of system 10 to another. For example, data migration software modules 50 d and 60 d may provide functionality that allows a user at one client 30 to utilize desktop settings set by the user at another client 30.
  • Particular embodiments of system 10 may also support the use of licenses to allow a software provider to manage use of software modules 50 and 60 provided by that software provider. Such embodiments may utilize any appropriate techniques to facilitate the issuance, use, and termination of the relevant licenses. For example, in the illustrated embodiment, server 20 maintains, for each installed software application, license information 80 that specifies a number of licenses available to users of system 10, the number of licenses currently checked-out by users, and the identity of the clients 30 on which the users are using the checked-out licenses. In the illustrated example, server 20 is responsible for checking out licenses to users of various clients 30 in response to license requests and updating license information 80 to reflect current license usage on system 10.
  • Configuration information 70 specifies an initial configuration for server 20 and/or clients 30 with respect to particular software applications to be installed on server 20, indicates a set of clients 30 on which particular client software modules 60 should be installed, and/or provides any other appropriate parameters for installation and/or configuration of software on system 10. In general, configuration information 70 may include any appropriate information that is provided to server 20 or clients 30 prior to or during installation of software modules 50 and 60. In particular embodiments, server 20 may use configuration information 70 received by server 20 to generate one or more sets of server configuration information 72 and client configuration information 74. Each set of server configuration information 72 and client configuration information 74 may include some or all of configuration information 70 and may additionally include other information generated or retrieved by server 20. Examples of configuration information 70, server configuration information 72, and client configuration information 74 may include, but are not limited to, information identifying authorized users of system 10 and their corresponding passwords, port mappings for communication between server 20 and clients 30, software update schedules, data backup schedules, virus definitions, port mappings, user preferences, firewall or other security settings, addresses or other identifying information for components supporting particular services (such as mail servers and proxy servers), information specifying protocols supported by system 10, and license information associated with one or more of the applications supported by system 10. In general, however, the installation techniques below may be used with any appropriate type of configuration information 70, server configuration information 72, and/or client configuration information 74.
  • In operation, a user may install software applications on system 10 using a common install process that streamlines the installation of multiple applications over multiple components of system 10. As part of this common installation process, in particular embodiments, server 20 receives configuration information 70 from a user and/or another component of system 10 to be utilized by server 20 or clients 30 during installation of associated software applications. For example, in the illustrated embodiment of system 10, server 20 receives configuration information 70 from a user through user interface 22. Server 20 may additionally or alternatively receive configuration information 70 from another component of system 10, such as one of clients 30 or a memory device located within or coupled to server 20. In general, server 20 may receive configuration information 70 from any appropriate source based on the configuration and capabilities of server 20.
  • Upon receiving configuration information 70, server 20 may generate one or more sets of server configuration information 72 and one or more sets of client configuration information 74 based on the received configuration information 70. In particular embodiments, each set of server configuration information 72 is associated with a particular software application to be installed and includes all or a portion of configuration information 70 received by server 20. Similarly, in particular embodiments, each set of client configuration information 74 is associated with a particular software application to be installed and includes all or a portion of configuration information 70 received by server 20. Additionally, in particular embodiments, server 20 may generate or retrieve additional configuration information to supplement any set of server configuration information 72 or client configuration information 74. Furthermore, multiple sets of server configuration information 72 and/or client configuration information 74 may share certain portions of configuration information 70. As a result, the common installation process may reduce the number of times a user must enter the shared portions of configuration information 70. This may reduce the amount of time expended by the user in installing software applications and limit possibility of errors by the user in configuring server 20 and clients 30.
  • Furthermore, in particular embodiments, server 20 may store the collected and/or generated sets of server configuration information 72 and client configuration information 74 for later use, allowing the user to quickly repeat the installation and configuration of the same software applications with little effort. For example, in the illustrated embodiment, server 20 generates configuration profile 76 associated with each software application and stores a set of server configuration information 72 and a set of client configuration information 74 associated with a particular software application in the configuration profile 76 that corresponds to that software application. In particular embodiments, the user may then access the configuration profiles 76 to later repeat installation of the same software applications without re-entering the relevant configuration information 70.
  • In addition to configuration information 70, server 20 also receives one or more server software modules 50 and one or more client software modules 60. Each of server software modules 50 include computer-readable instructions associated with the operation of server 20 with respect to a particular software application to be installed on system 10, while each of client software modules 60 include computer-readable instructions associated with the operation of a client 30 with respect to a particular software application. For purposes of this description and the claims that follow, server 20 may receive software modules 50 and 60 by receiving software modules 50 and 60 from another component of system 10, by accessing a memory coupled to or within server 20, and/or by receiving software modules 50 and 60 in any other appropriate manner.
  • Server 20 then initiates installation of software associated with each application to be installed. As part of this process, server 20 installs one or more server software modules 50. Each server software module 50 is associated with a particular set of server configuration information 72. While installing a particular server software module 50, server 20 accesses the server configuration information 72 associated with that server software module 50. Server 20 then configures server 20 and/or the relevant server software module 50 based on the accessed server configuration information 72.
  • After completing installation of a particular server software module 50, server 20 initiates installation of a client software module 60 associated with the same software application. In particular embodiments, system 10 may support multiple software applications but may be configured so that only a subset of clients 30 support one or more of these applications. For example, system 10 may be configured so that a network management application is installed on only a select set of clients 30 that are associated with system administrators. Thus, in particular embodiments, server 20 may identify, for a particular application to be installed, one or more clients 30 on which that application will be installed. In such embodiments, configuration information 70 may include information identifying clients 30 on which server 20 should install the relevant client software module 60, and server 20 may identify the appropriate clients 30 based on this information.
  • After any appropriate identification of clients 30, server 20 initiates installation of the associated client software module on appropriate clients 30. As part of this process, server 20 may transmit a copy of the associated client software module 60 to each of the relevant clients 30. Additionally, in particular embodiments, server 20 may transmit to each of these clients 30 a copy of the client configuration information 74 associated with the transmitted client software module 60.
  • After the relevant clients 30 receive the client software module 60, these clients 30 install the received client software module 60. In particular embodiments, client software module 60 may include an executable program that clients 30 automatically execute upon receipt of the received client software module 60. In alternative embodiments, server 20 may transmit an installation instruction to the relevant clients 30 after these clients receive client software module 60, and the relevant clients 30 may then initiate installation of the received client software module 60 in response to the installation instruction.
  • Configuration of the installed client software modules 60 and/or the appropriate clients 30 is then completed based on the set of client configuration information 74 associated with the installed client software module 60. For example, if server 20 directly controls installation of client software modules 60 on clients 30, server 20 may configure client software module 60 or the client 30 on which this module is installed based on the corresponding client configuration information 74. As one example, server 20 may set the ports of client 30 that are to be used for communication with between server 20 and clients 30 during operation of the software application associated with the installed client software module 60. Alternatively, if server 20 initiates installation by transmitting an executable file to client 30 that performs the installation of client software module 60, server 20 may transmit client configuration information 74 to client 30, and client 30 may configure itself or the received client software module 60 based on the corresponding client configuration information 74. Thus, returning to the previous example, server 20, in such an embodiment, may transmit an executable file to the relevant clients 30 and those clients 30 may, as part of executing this file, configure itself or the received client software module 60 to use the port mapping identified by the received client configuration information 74 for any communication with server 20 originating from or destined to the software application.
  • After installation of the received client software module 60, the relevant clients 30 may activate the installed client software module 60. As part of activating the newly-installed client software module 60 in embodiments of system 10 that support license management, the relevant clients 30 may request a license for the associated software application from server 20 or another appropriate component of system 10. In response to the license request, server 20 may update license information 80 to reflect the fact that the requesting client 30 has checked out a license for the associated application. Server 20 may also transmit an acknowledgement message or another suitable form of message to the requesting client 30 indicating that client 30 has successfully checked out a license for the application. If the number of licenses currently checked out by clients 30 in system 10 is already equal to the maximum number of licenses that system 10 is authorized to use, server 20 may instead transmit a license failure message or other appropriate form of message to the requesting client 30.
  • Server 20 may then repeat this process for any remaining software applications to be installed, installing the associated server software module 50 and initiating installation of the associated client software module 60 on appropriate clients 30. Although this description focuses on an embodiment of system 10 in which server 20 installs a particular server software module 50 and then installs the associated client software module 60, in alternative embodiments of system 10, server 20 may instead install all server software modules 50 and then install the associated client software modules 60 after server software modules 50 have been installed. In general, server 20 may install server software modules 20 and client software modules 30 in any appropriate order.
  • Thus, by collecting configuration information 70 for both server 20 and clients 30 for a particular software application and/or by collecting configuration information 70 for multiple software applications prior to beginning installation, server 20 may streamline and simplify installation of the various applications. Additionally, by utilizing a common set of configuration information 70 to generate multiple sets of server configuration information 72 and/or client configuration information 74, server 20 may reduce the time a user spends repeatedly entering configuration information 70 to be utilized by multiple software applications and may also reduce the possibility of user error. As a result, particular embodiments of server 20 may provide multiple operational benefits. Nonetheless, particular embodiments of server 20 may provide all, some, or none of these benefits.
  • FIGS. 2A and 2B illustrate, respectively, the contents of particular embodiments of a server 20 and a client 30. In the illustrated embodiments, server 20 includes a processor 110 a, a memory 120 a, and a network interface 130 a, while client 30 includes a processor 110 b, a memory 120 b, and a network interface 130 b. Additionally, in the illustrated embodiment, server 20 couples to user interface 22 as described above with respect to FIG. 1. Alternative embodiments may include any appropriate components suitable to provide the described functionality.
  • Processors 110 a and 110 b (referred to generically as “processors 110” collectively or a “processor 110” singularly) are operable to execute instructions associated with the services provided by server 20 and clients 30. Processors 110 may represent any suitable devices capable of processing and/or communicating electronic information. Examples of processors 110 include, but are not limited to, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs) and any other suitable specific- or general-purpose processors.
  • Memories 120 a and 120 b (referred to generically as “memories 120” collectively or a “memory 120” singularly) store processor instructions and/or any other appropriate information used by server 20 and clients 30 in operation. In particular embodiments, server 20 maintains received configuration information 70, server configuration information 72, server software modules 50, license information 80, in memory 120 a, while client 30 maintains client configuration information 74 and client software modules 60 in memory 120 b. Memories 120 may represent any collection and arrangement of volatile or non-volatile, local or remote devices suitable for storing data such as, for example, random access memory (RAM) devices, read only memory (ROM) devices, magnetic storage devices, optical storage devices, or any other suitable data storage devices. In particular embodiments, memories 120 may comprise removable media, such as compact discs, magnetic tapes, or diskettes.
  • Network interfaces 130 a and 130 b (referred to generically as “network interfaces 130” collectively or a “network interface 130” singularly) each comprise an interface operable to facilitate communication between server 20 or client 30 and network 40. Network interfaces 130 may include any appropriate combination of hardware and/or software suitable to facilitate interaction between server 20 or client 30 and other components of system 10. In particular embodiments, each network interface 130 may comprise a Network Interface Card (NIC), and any appropriate controlling logic, that is suitable to support communication between server 20 and client 30 over network 40 using the Ethernet or Token Ring protocol.
  • As noted above with respect to FIG. 1, user interface 22 facilitates interaction between a user of system 10 and server 20. As indicated above, user interface 22 may include components such as a keyboard, mouse, monitor, printer, display screen, and/or any other components appropriate to allow the user to input information into server 20 or receive information from server 20. As also noted above, client 30, in particular embodiments, may also include or be coupled to an appropriate form of user interface.
  • FIG. 3 is a flowchart illustrating in greater detail an example operation of a particular embodiment of serve 20. Any of the steps illustrated in FIG. 3 may be combined, modified, or deleted where appropriate, and additional steps may also be added to the described operation. Additionally, steps may be performed in any suitable order without departing from the scope of the invention.
  • Operation of server 20 begins at step 300 with server 20 receiving configuration information 70. At step 310, server 20 receives one or more server software modules 50 and one or more client software modules 60. In general, server 20 may receive configuration information 70 and software modules 50 and 60 in any appropriate manner including, but not limited to, by receiving this information from a user through an appropriate user interface, retrieving this information from memory, and/or receiving this information automatically from another component of system 10.
  • At step 320, server 20 generates one or more sets of server configuration information 72 and one or more sets of client configuration information 74 based on configuration information 70 received by server 20. As noted above, server 20 may generate server configuration information 72 and client configuration information 74 by processing configuration information 70 in any appropriate manner. In particular embodiments, each set of server configuration information 72 and each set of client configuration information 74 represents a portion of configuration information 70. In such embodiments, server 20 may generate client configuration information 74 by identifying appropriate portions of configuration information 70 relevant to the installation or use of each software application to be installed and generating a set of server configuration information 72 and client configuration information 74 for each software application that includes the portions identified as relevant for that software application. Additionally, in particular embodiments, server 20 may store a set of server configuration information 72 and a set of client configuration information 74 for each software application to be installed in a configuration profile 76 associated with that software application.
  • At step 330, server 20 installs a server software module 50 on server 20. Server 20 then configures itself with respect to operation of the server software module 50 based on server configuration. information 72 associated with that server software module 50 at step 340. As one example, in particular embodiments, server 20 may configure itself to use certain ports when communicating with clients 30 as part of the operation of the software application associated with the installed server software module 50.
  • Server 20 may, at step 350, identify one or more clients 30 associated with the server software module 50 installed during step 330. In particular embodiments, server 20 may identify the appropriate clients 30 based on an appropriate portion of the received configuration information 70, additional instructions provided by the user, and/or any other appropriate information available to server 20. Server 20 may then transmit a client software module 60 to identified clients at step 360. In particular embodiments, server 20 also transmits a set of client configuration information 74 corresponding to the transmitted client software module 60 to the identified clients at step 370.
  • Server 20 then initiates installation of the client software module 60 on the identified clients 30 at step 380. Clients 30 then install client software module 60. At step 390, server 20 may also initiate configuration of the clients 30 based on the client configuration information 74 by either directly configuring the client 30 or by instructing the identified clients 30 to configure themselves based on the client configuration information 74. For example, in particular embodiments, server 20 may initiate installation and configuration of identified clients 30 by communicating an executable file to the identified clients 30 and instructing clients 30 to execute the file. In such embodiments, the executable file may, when executed, both install client software module 60 and configure client 30.
  • After initiating installation and any appropriate configuration of client software modules 60, server 20 determines, at step 400, whether additional software applications remain to be installed. If so, operation of server 20 may return to step 330. If not, operation may end, as shown in FIG. 3.
  • Although the present invention has been described with several embodiments, a myriad of changes, variations, alterations, transformations, and modifications may be suggested to one skilled in the art, and it is intended that the present invention encompass such changes, variations, alterations, transformations, and modifications as fall within the scope of the appended claims.

Claims (19)

1. A system for installing software, comprising:
a network operable to couple a server and a plurality of clients;
the plurality of clients, each client operable to execute instructions associated with one or more client software modules; and
the server, operable to:
receive configuration information;
install a server software module on the server;
transmit a client software module to the plurality of clients;
initiate installation of the client software module on the plurality of clients; and
configure the plurality of clients based, at least in part, on the received configuration information.
2. The system of claim 1, wherein each of the plurality of clients is further operable to:
receive the client software module; and
install the client software module on that particular client.
3. The system of claim 1, wherein the plurality of clients comprises a subset of a second plurality of clients, and wherein the server is further operable to identify the subset from among the second plurality of clients based on the configuration information and wherein the server is operable to:
transmit the client software module by transmitting the client software module to the identified subset of clients;
initiate installation of the client software by initiating installation of the client software module on the identified subset of clients; and
configure the plurality of clients by configuring the identified subset of clients based on the configuration information.
4. The system of claim 1, wherein the server is further operable, after installing the server software module on the server, to:
install a second server software module on the server without receiving any additional configuration information;
initiate, from the server, installation of a second client software module on at least one of the plurality of clients, wherein the second client software module is associated with the second server software module; and
configure the at least one of the plurality of clients based on the configuration information.
5. The system of claim 1, wherein the first server software module and the second server module comprise different software modules selected from a group comprising a security software module, a data-migration software module, a virus-protection software module, and a data-recovery software module.
6. The system of claim 1, wherein the server is operable to receive configuration information by:
receiving a plurality of sets of configuration information; and
storing each set of configuration information in a configuration profile, wherein each configuration profile is associated with a server software module and a client software module; and
wherein the server is operable to configure the client by configuring the client based on a set of configuration information stored in a configuration profile associated with the client software module transmitted to the client.
7. A method for installing software, comprising:
receiving configuration information at a server;
installing a server software module on the server;
transmitting a client software module to a plurality of clients;
initiating, from the server, installation of the client software module on the plurality of clients; and
configuring the plurality of clients based, at least in part, on the configuration information received by the server.
8. The method of claim 7, further comprising installing, at the plurality of clients, the client software module.
9. The method of claim 7, further comprising identifying a first plurality of clients from among a second plurality of clients based on the configuration information, wherein the first plurality comprises a subset of the second plurality, and wherein:
transmitting the client software module comprises transmitting the client software module to the identified clients;
initiating installation of the client software comprises initiating, from the server, installation of the client software module on the identified clients; and
configuring the plurality of clients comprises configuring the identified clients based on the configuration information.
10. The method of claim 7, further comprising:
after installing the server software module on the server, installing a second server software module on the server without receiving any additional configuration information;
initiating, from the server, installation of a second client software module on a second plurality of clients, wherein the second client software module is associated with the second server software module; and
configuring the second plurality of clients based on the configuration information.
11. The method of claim 7, wherein the first server software module and the second server module comprise different software modules selected from a group comprising a security software module, a data-migration software module, a virus-protection software module, and a data-recovery software module.
12. The method of claim 7, wherein receiving configuration information comprises:
receiving a plurality of sets of configuration information; and
storing each set of configuration information in a configuration profile, wherein each set of configuration information is associated with a server software module and a client software module; and wherein installing the server software module comprises:
reading at least a portion of a first set of configuration information from a first configuration profile; and
installing a first server software module associated with the first configuration profile based on the portion of the first set of configuration information; and
wherein initiating installation of the client software module comprises initiating, from the server, installation of a client software module on the plurality of clients, wherein the client software module is associated with the first set of configuration information.
13. A computer program stored on a computer-readable medium, the computer program operable when executed to:
receive configuration information;
install a server software module on a server;
transmit a client software module to a plurality of clients;
initiate, from the server, installation of the client software module on the plurality of clients; and
configure the plurality of clients based, at least in part, on the configuration information received by the server.
14. The computer program of claim 13, wherein the computer program is further operable to install, at the plurality of clients, the client software module.
15. The computer program of claim 13, wherein the computer program is further operable to identify a first plurality of clients from among a second plurality of clients based on the configuration information, wherein the first plurality comprises a subset of the second plurality, and wherein the computer program is operable to:
transmit the client software module by transmitting the client software module to the identified clients;
initiate installation of the client software by initiating, from the server, installation of the client software module on the identified clients; and
configuring the plurality of clients by configuring the identified clients based on the configuration information.
16. The computer program of claim 13, wherein the computer program is further operable to:
after installing the server software module on the server, install a second server software module on the server without receiving any additional configuration information;
initiate, from the server, installation of a second client software module on a second plurality of clients, wherein the second client software module is associated with the second server software module; and
configure the second plurality of clients based on the configuration information.
17. The computer program of claim 13, wherein the first server software module and the second server module comprise different software modules selected from a group comprising a security software module, a data-migration software module, a virus-protection software module, and a data-recovery software module.
18. The computer program of claim 13, wherein the computer program is operable to receive configuration information by:
receiving a plurality of sets of configuration information; and
storing each set of configuration information in a configuration profile, wherein each set of configuration information is associated with a server software module and a client software module; and wherein installing the server software module comprises:
reading at least a portion of a first set of configuration information from a first configuration profile; and
installing a first server software module associated with the first configuration profile based on the portion of the first set of configuration information; and
wherein initiating installation of the client software module comprises initiating, from the server, installation of a client software module on the plurality of clients, wherein the client software module is associated with the first set of configuration information.
19. A system for installing software, comprising:
means for receiving configuration information at a server;
means for installing a server software module on the server;
means for transmitting a client software module to a plurality of clients;
means for initiating, from the server, installation of the client software module on the plurality of clients; and
means for configuring the plurality of clients based, at least in part, on the configuration information received by the server.
US11/353,395 2005-10-14 2006-02-14 System and method for installing software Expired - Fee Related US8024430B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11/353,395 US8024430B2 (en) 2005-10-14 2006-02-14 System and method for installing software
PCT/US2006/040300 WO2007044946A1 (en) 2005-10-14 2006-10-12 System and method for installing software

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US72716305P 2005-10-14 2005-10-14
US11/353,395 US8024430B2 (en) 2005-10-14 2006-02-14 System and method for installing software

Publications (2)

Publication Number Publication Date
US20070088799A1 true US20070088799A1 (en) 2007-04-19
US8024430B2 US8024430B2 (en) 2011-09-20

Family

ID=37562231

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/353,395 Expired - Fee Related US8024430B2 (en) 2005-10-14 2006-02-14 System and method for installing software

Country Status (2)

Country Link
US (1) US8024430B2 (en)
WO (1) WO2007044946A1 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080071793A1 (en) * 2006-09-19 2008-03-20 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Using network access port linkages for data structure update decisions
US20090216548A1 (en) * 2008-02-25 2009-08-27 Suresh Balu License Management in a Networked Software Application Solution
US20100191545A1 (en) * 2009-01-29 2010-07-29 General Electric Company Methods and processes to transfer preconfigured systems to remote environments
US20130185714A1 (en) * 2007-09-24 2013-07-18 International Business Machines Corporation Installing software onto a client through a network, and corresponding client
WO2013156877A1 (en) * 2012-04-18 2013-10-24 International Business Machines Corporation Application installation
US9667651B2 (en) * 2013-07-02 2017-05-30 Imperva, Inc. Compromised insider honey pots using reverse honey tokens
US9680699B2 (en) 2006-09-19 2017-06-13 Invention Science Fund I, Llc Evaluation systems and methods for coordinating software agents
US20170280267A1 (en) * 2016-03-25 2017-09-28 Silicon Laboratories, Inc. Over-The-Air Broadcast Bootloader Protocol
CN110633087A (en) * 2019-08-13 2019-12-31 上海联影医疗科技有限公司 Client installation method, device and storage medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101850817B1 (en) * 2011-11-17 2018-04-23 삼성전자주식회사 The method and apparatus for auto installing applications into different terminal

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742829A (en) * 1995-03-10 1998-04-21 Microsoft Corporation Automatic software installation on heterogeneous networked client computer systems
US5931909A (en) * 1996-04-19 1999-08-03 Sun Microsystems, Inc. System for multiple-client software installation and upgrade
US6151643A (en) * 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US6202206B1 (en) * 1998-05-14 2001-03-13 International Business Machines Corporation Simultaneous installation and configuration of programs and components into a network of server and client computers
US20020078203A1 (en) * 2000-03-17 2002-06-20 Greschler David M. Method for serving third party software applications from servers to client computers
US6865737B1 (en) * 2000-08-23 2005-03-08 Microsoft Corporation Remote software installation and maintenance
US6920502B2 (en) * 2000-04-13 2005-07-19 Netilla Networks, Inc. Apparatus and accompanying methods for providing, through a centralized server site, an integrated virtual office environment, remotely accessible via a network-connected web browser, with remote network monitoring and management capabilities
US20060031407A1 (en) * 2002-12-13 2006-02-09 Steve Dispensa System and method for remote network access

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3173361B2 (en) * 1996-02-09 2001-06-04 日本電気株式会社 Computer system
CA2349083A1 (en) 2001-05-30 2002-11-30 Ibm Canada Limited-Ibm Canada Limitee Server configuration tool
US20040088700A1 (en) 2002-10-31 2004-05-06 Chung-I Lee System and method for automatically installing software on client computers via a network

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742829A (en) * 1995-03-10 1998-04-21 Microsoft Corporation Automatic software installation on heterogeneous networked client computer systems
US5931909A (en) * 1996-04-19 1999-08-03 Sun Microsystems, Inc. System for multiple-client software installation and upgrade
US6151643A (en) * 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US6202206B1 (en) * 1998-05-14 2001-03-13 International Business Machines Corporation Simultaneous installation and configuration of programs and components into a network of server and client computers
US20020078203A1 (en) * 2000-03-17 2002-06-20 Greschler David M. Method for serving third party software applications from servers to client computers
US6920502B2 (en) * 2000-04-13 2005-07-19 Netilla Networks, Inc. Apparatus and accompanying methods for providing, through a centralized server site, an integrated virtual office environment, remotely accessible via a network-connected web browser, with remote network monitoring and management capabilities
US6865737B1 (en) * 2000-08-23 2005-03-08 Microsoft Corporation Remote software installation and maintenance
US20060031407A1 (en) * 2002-12-13 2006-02-09 Steve Dispensa System and method for remote network access

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080071793A1 (en) * 2006-09-19 2008-03-20 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Using network access port linkages for data structure update decisions
US9680699B2 (en) 2006-09-19 2017-06-13 Invention Science Fund I, Llc Evaluation systems and methods for coordinating software agents
US9940117B2 (en) * 2007-09-24 2018-04-10 International Business Machines Corporation Installing software onto a client through a network, and corresponding client
US20130185714A1 (en) * 2007-09-24 2013-07-18 International Business Machines Corporation Installing software onto a client through a network, and corresponding client
US11556325B2 (en) 2007-09-24 2023-01-17 International Business Machines Corporation Software installation onto a client using existing resources
US11237811B2 (en) 2007-09-24 2022-02-01 International Business Machines Corporation Software installation onto a client using existing resources
US10324698B2 (en) 2007-09-24 2019-06-18 International Business Machines Corporation Software installation onto a client using existing resources
US20090216548A1 (en) * 2008-02-25 2009-08-27 Suresh Balu License Management in a Networked Software Application Solution
US9690913B2 (en) * 2008-02-25 2017-06-27 International Business Machines Corporation License management in a networked software application solution
US20100191545A1 (en) * 2009-01-29 2010-07-29 General Electric Company Methods and processes to transfer preconfigured systems to remote environments
WO2013156877A1 (en) * 2012-04-18 2013-10-24 International Business Machines Corporation Application installation
US9038059B2 (en) 2012-04-18 2015-05-19 International Business Machines Corporation Automatically targeting application modules to individual machines and application framework runtimes instances
US9667651B2 (en) * 2013-07-02 2017-05-30 Imperva, Inc. Compromised insider honey pots using reverse honey tokens
US20170280267A1 (en) * 2016-03-25 2017-09-28 Silicon Laboratories, Inc. Over-The-Air Broadcast Bootloader Protocol
US10362464B2 (en) * 2016-03-25 2019-07-23 Silicon Laboratories, Inc. Over-the-air broadcast bootloader protocol
CN110633087A (en) * 2019-08-13 2019-12-31 上海联影医疗科技有限公司 Client installation method, device and storage medium

Also Published As

Publication number Publication date
US8024430B2 (en) 2011-09-20
WO2007044946A1 (en) 2007-04-19

Similar Documents

Publication Publication Date Title
US8024430B2 (en) System and method for installing software
US10419289B2 (en) System and method for configuration management service
US9928041B2 (en) Managing a software appliance
US8234639B2 (en) Autonomic auto-configuration using prior installation configuration relationships
US9164749B2 (en) Differential software provisioning on virtual machines having different configurations
US8943496B2 (en) Providing a hosted appliance and migrating the appliance to an on-premise environment
US6301710B1 (en) System and method for creating a substitute registry when automatically installing an update program
US7584349B2 (en) Method and system for receiving a software image from a customer for installation into a computer system
US8924920B2 (en) Providing a software appliance based on a role
US20090222806A1 (en) Methods and systems for incrementally updating a software appliance
US6971090B1 (en) Common Information Model (CIM) translation to and from Windows Management Interface (WMI) in client server environment
EP1978672B1 (en) Method for implementing management software, hardware with pre-configured software and implementing method thereof
US20070143446A1 (en) Methods, systems, and computer program products for installing an application from one peer to another including application configuration settings and data
US20100058327A1 (en) Methods and systems for providing customized actions related to software provisioning
US20100049838A1 (en) Methods and systems for automatically registering new machines in a software provisioning environment
US20030097422A1 (en) System and method for provisioning software
US20030195951A1 (en) Method and system to dynamically detect, download and install drivers from an online service
US20100058330A1 (en) Methods and systems for importing software distributions in a software provisioning environment
US20100138526A1 (en) Methods and systems for providing hardware updates in a software provisioning environment
US20030037177A1 (en) Multiple device management method and system
US20040025155A1 (en) Method, computer program product, and system for configuring a software image for installation into a computer system
US9032367B2 (en) Providing a demo appliance and migrating the demo appliance to a production appliance
US20040111505A1 (en) Method, system, and article of manufacture for network management
JP2003533812A (en) Method and apparatus for automatically deploying data and simultaneously executing computer program scripts in a computer network
US20040010795A1 (en) Device driver installing program and device driver installing apparatus

Legal Events

Date Code Title Description
AS Assignment

Owner name: COMPUTER ASSOCIATES THINK, INC., NEW YORK

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LUFT, DAVID A.;THAPA, SARAD;GANDHAM, VANKATESH;SIGNING DATES FROM 20060424 TO 20060502;REEL/FRAME:017562/0300

Owner name: COMPUTER ASSOCIATES THINK, INC., NEW YORK

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LUFT, DAVID A.;THAPA, SARAD;GANDHAM, VANKATESH;REEL/FRAME:017562/0300;SIGNING DATES FROM 20060424 TO 20060502

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20190920