US9058230B1 - Online expert system guided application installation - Google Patents
Online expert system guided application installation Download PDFInfo
- Publication number
- US9058230B1 US9058230B1 US12/127,373 US12737308A US9058230B1 US 9058230 B1 US9058230 B1 US 9058230B1 US 12737308 A US12737308 A US 12737308A US 9058230 B1 US9058230 B1 US 9058230B1
- Authority
- US
- United States
- Prior art keywords
- installation
- instructions
- remote node
- solution
- information
- 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.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0748—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a remote unit communicating with a single-box computer node experiencing an error/fault
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
Definitions
- the present invention relates to the field of computer software installation, and particularly to a system and method for performing software installations from a centralized online expert system that provides product installation instructions, fixes for any errors that occur during software installation or subsequent testing.
- any negative experience can be detrimental to the quality associated with that product by the customer. For example, if a customer is evaluating software and cannot get the product installed, it is likely that the customer will not purchase the software later.
- Such installation problems may often go undetected by those responsible for creating installation methods for software (e.g., software engineers) because there has been no reliable method for providing information as to such failures. In the past, often sales or technical support has had to rely upon customer experiential information rather than hard data related to an installation failure.
- Another issue presented to customers experiencing software installation failure has been an inability for the customer to automatically receive help, either in the form of a fix for the problem or links to advice for solving the problem or even communication from a technical support agent. It is therefore desirable to have a mechanism by which data related to a software installation failure is provided to members of the entity distributing the software, as well as a mechanism for automatically providing a solution or at least information related to the problem automatically to the customer.
- Embodiments of the present invention provide an online expert system that can communicate software installation instructions to a remote node through the use of a generic installer executing on the remote node.
- Embodiments of the online expert system can identify a set of installation instructions configured to install a software product on the remote node, execute the set of installation instructions, record results of the execution of the installation instructions, and, if an error is detected in the results, submit the results for analysis to determine whether a solution to the error is available and execute the solution, if any.
- aspects of the online expert system provide for the executing of the installation instructions to include communicating installation-related information to the remote node over a network. Further aspects of the online expert system provide for executing a solution to an error to include communicating solution-related information to the remote node over the network.
- Another aspect of the above embodiments of the online expert system includes receiving from the remote node an identification of the software product to install and, in response to receiving this identification, requesting configuration information about the configuration of the remote node.
- a further aspect of the above embodiments of the online expert system includes identifying the set of installation instructions using the identification of the software product and the remote node's configuration information.
- An additional aspect of the above embodiments of the online expert system is that the communicating is performed via an application programming interface installed on the remote node.
- FIG. 1 is a simplified block diagram illustrating network-connected nodes that are configured to implement embodiments of the present invention.
- FIG. 2 is a simplified block diagram of a generic installer 120 usable for implementing embodiments of the present invention.
- FIG. 3 is a simplified block diagram of a central online expert system 140 , in accord with embodiments of the present invention.
- FIG. 4 is simplified flow diagram illustrating steps carried out by a central online expert system, in accord with embodiments of the present invention.
- FIG. 5 depicts a block diagram of a computer system suitable for implementing embodiments of the present invention.
- FIG. 6 is a block diagram depicting a network architecture suitable for implementing embodiments of the present invention.
- Embodiments of the present invention provide an online expert system that can communicate software installation instructions to a remote node through the use of a generic installer executing on the remote node. Once the remote node requests to install a specified product, the expert system can instruct the generic installer to gather configuration information about the remote node and provide that information to the expert system. Based upon the product identification and the configuration information of the remote node, the expert system can then select an appropriate set of instructions for installing the specified product on the remote node and then communicate the necessary instructions and files to the remote node for installing the software. Further embodiments of the present invention can respond to errors occurring in the installation of the software on the remote node by automatically searching a database of reported errors and their solutions and providing a found solution to the encountered error.
- embodiments of the present invention can contact a technical support agent who can provide instructions to the remote node to overcome the installation-related errors.
- Embodiments of the present invention can further maintain logs and other files related to all software installations performed by the expert system in order to provide detailed feedback to technical support agents who can use this information to improve installation processing. Further embodiments of the invention can also track software user licenses and report on installations performed by the expert system.
- Embodiments of the present invention can be used to overcome a variety of installation-related issues associated with current methods of software installation. For example, in current software application installations, all possible situations should be accounted for in the installer logic. Once the installer is shipped to a customer, discovered bugs that can cause installation failures are difficult to impossible to remedy. In many such cases, the customer must manually get new install media containing fixes for the problem or download a new version of the installer. In addition, when many current installers encounter an error that prevents installation, they will just provide the user an error message or a means to contact technical support, which effectively leaves the customer to fend for themselves. Current installers do not centrally track information about installations (e.g., log files) so it is difficult to collect data on the quality of installers being shipped to customers. Embodiments of the present invention address all of these shortcomings of current installers.
- FIG. 1 is a simplified block diagram illustrating network-connected nodes that are configured to implement embodiments of the present invention.
- FIG. 1 provides a remote node 110 coupled to an installation server 130 via a network 150 .
- Remote node 110 is a computing node (e.g., a desktop computer, a laptop computer, a workstation, a server, and the like) on which one or more software products are to be installed.
- embodiments of the present invention provide a generic installer 120 to execute on remote node 110 .
- generic installer 120 provides a mechanism by which remote node 110 can receive installation-related instructions from installation server 130 .
- installation server 130 provides a central online expert system 140 that can respond to installation-related requests and perform the tasks related to providing installation-related information and instructions to remote node 110 via generic installer 120 .
- central online expert system 140 will be discussed in more detail below.
- Remote node 110 is coupled to installation server 130 via a network 150 .
- Embodiments of the present invention are agnostic to the nature of network 150 and only require that network 150 provide a means of communication between remote node 110 and installation server 130 .
- Network 150 can, for example, be a local area network, a metro area network, a wide area network, or any combination thereof.
- FIG. 2 is a simplified block diagram of a generic installer 120 usable for implementing embodiments of the present invention.
- embodiments of the present invention are configured to use a simple installer on the remote node, while providing the bulk of the decision-making processing on the installation server using the central online expert system.
- One configuration of generic installer 120 usable by embodiments of the present invention is an installation language interpreter configured to parse and execute installation-related commands provided by central online expert system 140 on remote node 110 . Subsequently, the generic installer can transmit results of executing the installation-related commands to the central online expert system.
- generic installer 120 is used to primarily provide a mechanism by which the central online expert system 140 can provide installation-related instructions to remote node 110 and receive information regarding the progress of an installation from remote node 110 .
- embodiments of generic installer 120 provide an application programming interface 210 (API), coupled to a network interface 250 , that allows the central online expert system to provide instructions to remote node 110 .
- API application programming interface
- the central online expert system can always use a common set of instructions for any node that is performing an install, regardless of the nature of that node (e.g., processor, operating system type and operating system version).
- Generic installer 120 can further provide an installation processing module 220 that is coupled to API 210 .
- Installation processing module 220 can implement the received installation-related instructions from the central online expert system.
- installation processing module 220 can execute instructions to decompress files received from installation server 130 or execute executable files received from installation server 130 .
- Further embodiments of generic installer 120 can also include a status reporting module 230 that is configured to report to central online expert system 140 information related to the status of an install being performed by generic installer 120 . Such status information can include log files and error-related information.
- Application programming interface 210 is configured to receive and relay installation-related commands and information from and to central online expert system 140 .
- the central online expert system can require information about the configuration of remote node 110 .
- Application programming interface 210 can be configured to receive and convey those requests and instructions to installation processing module 220 or directly interface with the processor of remote node 110 . Examples of commands that can be provided to API 210 include:
- the generic installer is configured as a proxy for the central online expert system at the remote node and is therefore configured to flexibly implement changes made to the central online expert system.
- the generic installer can return result information from the remote node to the central online expert system. Such information can inform the central online expert system of a successful completion of the command, failure of the command, or information responsive to queries or other analysis requested by the command.
- FIG. 3 is a simplified block diagram of a central online expert system 140 , in accord with embodiments of the present invention.
- the central online expert system performs tasks enabling installation of software on one or more remote nodes 110 using a generic installer 120 installed on the remote node as a proxy.
- embodiments of central online expert system 140 include a communications module 310 that receives information from remote nodes and provides information to remote nodes.
- Communication module 310 can be coupled to a network interface 320 that provides the physical connection to network 150 .
- Communication module 310 provides received information to a parser 330 . Parser 330 scans the received information in order to determine the nature of the received information (e.g., a request or status information) and provide that information to install processor 340 .
- parser 330 can determine a product name and version of the associated product as supplied by a remote node 110 and flag such information as a request-type communication before passing that information on to install processor 340 .
- the functionality of parser 330 can be incorporated in install processor 340 and communication module 310 would communicate directly with install processor 340 .
- install processor 340 performs the bulk of installation-related processing for remote nodes communicating with installation server 130 . For example, upon receiving a request to install an identified software product, install processor 340 can query a product database 360 to determine the types of configuration information about the requesting remote node to request. Such configuration information is used to decide, for example, which version of the specified software product should be installed on the remote node or if the specified product can be installed on the remote node.
- Product database 360 can contain, for example, entries for each available software item. Each entry can reference one or more templates describing information needed from a remote node in order to perform decision making as to the specified software product. Installation processor 340 can then use the information provided by the template to assemble one or more requests to query remote node 110 for the described information. Those requests can then be communicated to the remote node via communication module 310 to API 210 executing on the remote node. The requests, and the responses to those requests, can include identifying information related to the remote node performing the installation so that central online expert system 140 can properly track information related to a specific installation.
- install processor 340 can then select an appropriate product installer for the selected product from a product installer database 365 .
- Product installer database 365 can take the form of a storage volume containing product installers configured for each available product in light of, for example, operating system environment on which the product will be installed, or any other system-related variable queried by the central online expert system.
- Install processor 340 can then execute the retrieved product installer, performing tasks specified by the product installer. Such tasks can include, for example, providing compressed files or executable files to remote node 110 , which can then be executed by generic installer 120 .
- install processor 340 can record the progress of the product install in an installation database 370 .
- Information can be recorded in the form of, for example, log files or database entries. Status information recorded in this manner will include an identifier of the remote node on which the installation is performed and an identifier of the product being installed in order to provide a means to track the installations.
- install processor 340 can access one or more tests for the installed software from a test database 375 .
- Install processor 340 can supervise testing of the software through generic installer 120 and receive those results and record them in installation database 370 .
- install processor 340 can monitor the status of the installation in order to determine if an error has occurred in either the installation or subsequent testing. In the event of an error, install processor 340 can inform an error processor 350 of the error (e.g., via information received in response to API commands executed by the generic installer). Error processor 350 can then perform a review of the stored status information in installation database 370 . From any error code and other information in the installation database, error processor 350 can attempt to determine the nature of the error and then determine if a solution to the error is available. Error processor 350 can determine if a solution is available by, for example, searching a solutions database 380 for any solutions related to the recorded failure-related information.
- Error processor 350 can collect sufficient information from installation database 370 to enable an efficient search of solutions database 380 . Such information can include, for example, product name, product version, error code, and information from log files relative to the reported error code. If error processor 350 finds a solution to the reported problem, the error processor can provide that solution to install processor 340 , which can then implement the solution through communication with generic installer 120 installed on remote node 110 .
- the error processor can communicate with a technical support agent through an agent interface 390 .
- the technical support agent can examine the nature of an installation-related error and take control of the installation session.
- the technical support agent has available the same commands to issue to the remote node that the central online expert system can. Using such commands, the technical support agent can transmit queries to the remote node or provide a solution to the remote node through the same communication path utilized by install processor 340 . In this manner, involvement of a technical support agent can be a seamless transition from a point of view of a user on remote node 110 .
- a log can be maintained of the commands performed by the technical support agent, which can then be edited and added to solutions database 380 associated with the identified error.
- error processor 350 can provide to a user on remote node 110 information on how to contact a technical support person or provide a source for additional information (e.g., a website URL).
- Embodiments of the present invention can include a database identifying a level of support paid for by a customer associated with the remote node. For example, a technical support agent can be contacted if the customer has paid for that level of support. If the customer has not, then they can just be provided with the URL for additional information or an option to purchase the services of a technical support agent for the current problem.
- FIG. 4 is simplified flow diagram illustrating steps carried out by a central online expert system, in accord with embodiments of the present invention.
- An initial contact is received from a remote node 110 ( 410 ) that includes an identification of a selected software product for installation. Such an identification can include, for example, a name of the software product and a desired version of the software product.
- This initial contact from the remote node is initiated by a generic installer 120 .
- the generic installer can be introduced to the remote node in a variety of ways. For example, a customer can initiate an online purchase of the software product and upon the completion of the transaction for the purchase, the generic installer can be installed on the user's computer in order to perform the installation of the software product. Alternatively, a customer can purchase software on a computer-readable storage medium and the computer-readable storage medium can include the generic installer. In the scenario in which a user purchases computer-readable storage media, that computer-readable storage media can also include executable and compressed files related to the installation. How those files are utilized will be discussed further below.
- the software identification can be used to determine what additional system information regarding the remote node should be requested ( 420 ).
- one mechanism for making such a determination is to perform a search of a product database using the name and version of the selected software product as a key to identify an associated template file.
- the associated template file can include identification of the various pieces of system information required in order to make a determination as to whether the selected software product can be installed on the system and, if so, which product installer should be used to perform the installation.
- system information is requested using API commands to the generic installer.
- the generic installer provides the required information, which is received by the central online expert system. If the received system information contraindicates installation of the selected software product ( 430 ), then the central online expert system can notify the remote node of the reasons for the contraindication ( 435 ).
- the system information is used to identify the installation instructions for the system environment of the remote node ( 440 ).
- Embodiments of the present invention can, for example, maintain sets of flow charts of instructions for the central online expert system to follow for various system environment scenarios.
- Such instructions can include downloading files to the remote node, copying files, providing cabinet-type compressed files to the remote node, uncompressing files from a cabinet file, reading and writing registry values, and launching executables on the remote node.
- Installation instructions are executed by the central online expert system and implemented on the remote node through the use of an application programming interface that is part of the generic installer 120 ( 450 ).
- the flow chart of instructions is followed based upon results received from the back-and-forth communication between generic installer 120 and central online expert system 140 and continues until the installation is completed or an error occurs that terminates the installation. During this period of executing the installation instructions, the central online expert system maintains log files and other data related to the installation. If an error occurs during the course of the product installation ( 460 ), then a knowledge base can be searched for a solution to the problem ( 465 ). If a solution is found ( 466 ), then instructions related to the solution can be executed and implemented on the remote node ( 450 ). If no solution is found to the installation error, then a technical support agent can be contacted to provide guidance ( 468 ).
- test instructions can be communicated to the generic installer 120 .
- test instructions can be provided by a search of a test database and executed and implemented on the remote node. If no error occurs during the testing of the software installation ( 480 ), then the remote node can be notified of a successful installation ( 490 ). If an error occurs during the testing phase, then the knowledge base can be searched for a solution to the test error ( 485 ). If a solution is found to the test error ( 486 ), then the solution can be executed by the central online expert system and implemented on the remote node ( 450 ). Such a solution can include a reinstallation of all or part of the product.
- step 468 can make a determination if a customer associated with the remote node has paid for a level of support providing a technical support agent. If so, then the agent can be contacted. If not, then a reference to a support site can be provided to the remote node or an option to purchase technical support for this problem can be provided.
- the central online expert system can determine whether the images on the computer-readable storage media are the most recent images available for the software installation. If the images on the computer-readable storage media are the most recent, then the central online expert system can instruct the generic installer to utilize those images during the course of the software installation. Alternatively, if the images on the computer-readable storage media are not the most recent, then the central online expert system can provide images from the product installer database, as discussed above.
- the present invention can be implemented using a variety of computer systems and networks.
- An example of one such computing and network environment is described below with reference to FIGS. 5 and 6 .
- FIG. 5 depicts a block diagram of a computer system 510 suitable for implementing the present invention.
- Computer system 510 includes a bus 512 which interconnects major subsystems of computer system 510 , such as a central processor 514 , a system memory 517 (typically RAM, but which may also include ROM, flash RAM, or the like), an input/output controller 518 , an external audio device, such as a speaker system 520 via an audio output interface 522 , an external device, such as a display screen 524 via display adapter 526 , serial ports 528 and 530 , a keyboard 532 (interfaced with a keyboard controller 533 ), a storage interface 534 , a floppy disk drive 537 operative to receive a floppy disk 538 , a host bus adapter (HBA) interface card 535 A operative to connect with a Fibre Channel network 590 , a host bus adapter (HBA) interface card 535 B operative to connect to a SCSI bus 539
- mouse 546 or other point-and-click device, coupled to bus 512 via serial port 528
- modem 547 coupled to bus 512 via serial port 530
- network interface 548 coupled directly to bus 512 .
- Bus 512 allows data communication between central processor 514 and system memory 517 , which may include read-only memory (ROM) or flash memory (neither shown), and random access memory (RAM) (not shown), as previously noted.
- the RAM is generally the main memory into which the operating system and application programs are loaded.
- the ROM or flash memory can contain, among other code, the Basic Input-Output system (BIOS) which controls basic hardware operation such as the interaction with peripheral components.
- BIOS Basic Input-Output system
- Applications resident with computer system 510 are generally stored on and accessed via a computer-readable medium, such as a hard disk drive (e.g., fixed disk 544 ), an optical drive (e.g., optical drive 540 ), a floppy disk unit 537 , or other storage medium. Additionally, applications can be in the form of electronic signals modulated in accordance with the application and data communication technology when accessed via network modem 547 or interface 548 .
- Storage interface 534 can connect to a standard computer-readable medium for storage and/or retrieval of information, such as a fixed disk drive 544 .
- Fixed disk drive 544 may be a part of computer system 510 or may be separate and accessed through other interface systems.
- Modem 547 may provide a direct connection to a remote server via a telephone link or to the Internet via an internet service provider (ISP).
- ISP internet service provider
- Network interface 548 may provide a direct connection to a remote server via a direct network link to the Internet via a POP (point of presence).
- Network interface 548 may provide such connection using wireless techniques, including digital cellular telephone connection, Cellular Digital Packet Data (CDPD) connection, digital satellite data connection or the like.
- CDPD Cellular Digital Packet Data
- FIG. 5 Many other devices or subsystems (not shown) may be connected in a similar manner (e.g., document scanners, digital cameras and so on). Conversely, all of the devices shown in FIG. 5 need not be present to practice the present invention.
- the devices and subsystems can be interconnected in different ways from that shown in FIG. 5 .
- the operation of a computer system such as that shown in FIG. 5 is readily known in the art and is not discussed in detail in this application.
- Code to implement the present invention can be stored in computer-readable storage media such as one or more of system memory 517 , fixed disk 544 , optical disk 542 , or floppy disk 538 .
- the operating system provided on computer system 510 may be MS-DOS®, MS-WINDOWS®, OS/2®, UNIX®, Linux®, or another known operating system.
- a signal can be directly transmitted from a first block to a second block, or a signal can be modified (e.g., amplified, attenuated, delayed, latched, buffered, inverted, filtered, or otherwise modified) between the blocks.
- a signal can be directly transmitted from a first block to a second block, or a signal can be modified (e.g., amplified, attenuated, delayed, latched, buffered, inverted, filtered, or otherwise modified) between the blocks.
- modified signals e.g., amplified, attenuated, delayed, latched, buffered, inverted, filtered, or otherwise modified
- a signal input at a second block can be conceptualized as a second signal derived from a first signal output from a first block due to physical limitations of the circuitry involved (e.g., there will inevitably be some attenuation and delay). Therefore, as used herein, a second signal derived from a first signal includes the first signal or any modifications to the first signal, whether due to circuit limitations or due to passage through other circuit elements which do not change the informational and/or final functional aspect of the first signal.
- FIG. 6 is a block diagram depicting a network architecture 600 in which client systems 610 , 620 and 630 , as well as storage servers 640 A and 640 B (any of which can be implemented using computer system 510 ), are coupled to a network 650 .
- Storage server 640 A is further depicted as having storage devices 660 A( 1 )-(N) directly attached, and storage server 640 B is depicted with storage devices 660 B( 1 )-(N) directly attached.
- Storage servers 640 A and 640 B are also connected to a SAN fabric 670 , although connection to a storage area network is not required for operation of the invention.
- SAN fabric 670 supports access to storage devices 680 ( 1 )-(N) by storage servers 640 A and 640 B, and so by client systems 610 , 620 and 630 via network 650 .
- Intelligent storage array 690 is also shown as an example of a specific storage device accessible via SAN fabric 670 .
- modem 547 , network interface 548 or some other method can be used to provide connectivity from each of client computer systems 610 , 620 and 630 to network 650 .
- Client systems 610 , 620 and 630 are able to access information on storage server 640 A or 640 B using, for example, a web browser or other client software (not shown).
- client software not shown
- Such a client allows client systems 610 , 620 and 630 to access data hosted by storage server 640 A or 640 B or one of storage devices 660 A( 1 )-(N), 660 B( 1 )-(N), 680 ( 1 )-(N) or intelligent storage array 690 .
- FIG. 6 depicts the use of a network such as the Internet for exchanging data, but the present invention is not limited to the Internet or any particular network-based environment.
- any two components herein combined to achieve a particular functionality can be seen as “associated with” each other such that the desired functionality is achieved, irrespective of architectures or intermediate components.
- any two components so associated can also be viewed as being “operably connected,” or “operably coupled,” to each other to achieve the desired functionality.
- signal bearing media include computer-readable storage media, transmission type media such as digital and analog communications links, as well as media storage and distribution systems developed in the future.
- the above-discussed embodiments can be implemented by software modules that perform certain tasks.
- the software modules discussed herein may include script, batch, or other executable files.
- the software modules may be stored on a machine-readable or computer-readable storage media such as magnetic floppy disks, hard disks, semiconductor memory (e.g., RAM, ROM, and flash-type media), optical discs (e.g., CD-ROMs, CD-Rs, and DVDs), or other types of memory modules.
- a storage device used for storing firmware or hardware modules in accordance with an embodiment of the invention can also include a semiconductor-based memory, which may be permanently, removably or remotely coupled to a microprocessor/memory system.
- the modules can be stored within a computer system memory to configure the computer system to perform the functions of the module.
- Other new and various types of computer-readable storage media may be used to store the modules discussed herein.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
-
- GET_REGISTRY_VALUE (KEY): requesting that the remote node provide a current value for a registry entry that is identified by the key;
- PUT_REGISTRY_VALUE (KEY, VALUE): providing a value for a registry entry identified by key;
- CREATE_REGISTRY_VALUE (KEY, VALUE): creating an entry in the remote node's registry as identified by the key and having a value provided by “value;”
- DOWNLOAD (URL, TEMPFILE): instructing the remote node to download a file located at the specified URL;
- EXECUTE (FILE): instructing the remote node to execute the identified file;
- CHECKSUM (FILE): instructing the remote node to generate a checksum value for the identified file in order to determine that the file was properly transferred to the remote node;
- EXTRACT (CABFILE, FILE, TEMPFILE): instructing the remote node to extract one or more files from a cabinet file (CABFILE) as a file or temporary file.
Claims (24)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/127,373 US9058230B1 (en) | 2008-05-27 | 2008-05-27 | Online expert system guided application installation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/127,373 US9058230B1 (en) | 2008-05-27 | 2008-05-27 | Online expert system guided application installation |
Publications (1)
Publication Number | Publication Date |
---|---|
US9058230B1 true US9058230B1 (en) | 2015-06-16 |
Family
ID=53279877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/127,373 Active 2032-04-09 US9058230B1 (en) | 2008-05-27 | 2008-05-27 | Online expert system guided application installation |
Country Status (1)
Country | Link |
---|---|
US (1) | US9058230B1 (en) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150067018A1 (en) * | 2013-09-05 | 2015-03-05 | General Electric Company | Expert collaboration system and method |
US20150088930A1 (en) * | 2013-09-24 | 2015-03-26 | Lg Cns Co., Ltd. | Management system and method for a big data processing device |
US20170078444A1 (en) * | 2015-09-11 | 2017-03-16 | Facebook, Inc. | Retrieving information about an online system user for use by an application during retrieval and installation of the application |
US10078549B2 (en) | 2015-05-19 | 2018-09-18 | Vmware, Inc. | Maintaining hole boundary information for restoring snapshots from parity |
US10089661B1 (en) * | 2016-12-15 | 2018-10-02 | Amazon Technologies, Inc. | Identifying software products to test |
US10102057B2 (en) * | 2015-05-19 | 2018-10-16 | Vmware, Inc. | Providing end-to-end checksum within a distributed virtual storage area network module |
US20180321951A1 (en) * | 2017-05-08 | 2018-11-08 | Google Inc. | Smart device configuration guidance via automated assistant interface of separate client device |
US10223138B2 (en) * | 2017-03-31 | 2019-03-05 | International Business Machines Corporation | Software installation assistance method and system |
US10567356B2 (en) | 2017-06-20 | 2020-02-18 | Microsoft Technology Licensing, Llc | Monitoring cloud computing environments with data control policies |
US10762218B2 (en) | 2017-06-20 | 2020-09-01 | Microsoft Technology Licensing, Llc | Network buildout for cloud computing environments with data control policies |
US10892956B2 (en) * | 2019-02-27 | 2021-01-12 | Canon Kabushiki Kaisha | Device management server, control method for the same, and medium |
CN113282307A (en) * | 2021-06-11 | 2021-08-20 | 云宏信息科技股份有限公司 | Method, server and system for batch installation of ansable server to software |
US11645071B1 (en) | 2022-04-19 | 2023-05-09 | International Business Machines, Corporation | Intelligent installation for client systems |
Citations (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6021437A (en) * | 1996-07-17 | 2000-02-01 | Bull S.A. | Process and system for real-time monitoring of a data processing system for its administration and maintenance support in the operating phase |
US6324690B1 (en) * | 1993-09-30 | 2001-11-27 | Intel Corporation | Installation of application software through a network from a source computer system on to a target computer system |
US6367035B1 (en) * | 1996-06-06 | 2002-04-02 | Adrian Richard White | Methods and apparatus for diagnosing and correcting faults in computers by a support agent at a remote location |
US20030037327A1 (en) * | 2001-08-15 | 2003-02-20 | International Business Machines Corporation | Run-time rule-based topological installation suite |
US20030051235A1 (en) * | 2001-09-07 | 2003-03-13 | Simpson Mark D. | Method and apparatus for verifying and analyzing computer software installation |
US20030149889A1 (en) * | 2002-02-04 | 2003-08-07 | Wookey Michael J. | Automatic communication and security reconfiguration for remote services |
US6629267B1 (en) * | 2000-05-15 | 2003-09-30 | Microsoft Corporation | Method and system for reporting a program failure |
US20030208685A1 (en) * | 2002-05-01 | 2003-11-06 | Abdel-Rahman Hassan E. | Multi-platform application installation |
US20040024849A1 (en) * | 2002-04-19 | 2004-02-05 | Adel El-Beik | Method and system for distributing data |
US20040031032A1 (en) * | 2002-08-08 | 2004-02-12 | James Clough | User installation of imaging device control system |
US20040128583A1 (en) * | 2002-12-31 | 2004-07-01 | International Business Machines Corporation | Method and system for monitoring, diagnosing, and correcting system problems |
US20040237068A1 (en) * | 2001-07-16 | 2004-11-25 | Yuqing Ren | Embedded software update system |
US20050160420A1 (en) * | 2004-01-20 | 2005-07-21 | Kruta Andrew W. | Method and apparatus for distribution and installation of computer programs across an enterprise |
US6934956B1 (en) * | 1997-09-09 | 2005-08-23 | Micron Technology, Inc. | Method and apparatus for installing an operating system |
US20050216300A1 (en) * | 2004-03-15 | 2005-09-29 | Barry Appelman | Sharing social network information |
US20050257214A1 (en) * | 2000-09-22 | 2005-11-17 | Patchlink Corporation | Non-invasive automatic offsite patch fingerprinting and updating system and method |
US20050262495A1 (en) * | 2004-05-18 | 2005-11-24 | Bea Systems, Inc. | Administration mode for server applications |
US20060048136A1 (en) * | 2004-08-25 | 2006-03-02 | Vries Jeff D | Interception-based resource detection system |
US7072807B2 (en) * | 2003-03-06 | 2006-07-04 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
US20080005735A1 (en) * | 2002-06-28 | 2008-01-03 | International Business Machines Corporation | Apparatus and method for monitoring and routing status messages |
US20080201707A1 (en) * | 2007-02-15 | 2008-08-21 | Microsoft Corporation | Dynamic deployment of custom code |
US20080222199A1 (en) * | 2007-03-06 | 2008-09-11 | Tiu William K | Multimedia Aggregation in an Online Social Network |
US7721158B2 (en) * | 2007-06-04 | 2010-05-18 | Microsoft Corporation | Customization conflict detection and resolution |
US7913249B1 (en) * | 2006-03-07 | 2011-03-22 | Jpmorgan Chase Bank, N.A. | Software installation checker |
-
2008
- 2008-05-27 US US12/127,373 patent/US9058230B1/en active Active
Patent Citations (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030226138A1 (en) * | 1993-09-30 | 2003-12-04 | Linda Luu | Installation of application software through a network from a source computer system on to a target computer system |
US6324690B1 (en) * | 1993-09-30 | 2001-11-27 | Intel Corporation | Installation of application software through a network from a source computer system on to a target computer system |
US6367035B1 (en) * | 1996-06-06 | 2002-04-02 | Adrian Richard White | Methods and apparatus for diagnosing and correcting faults in computers by a support agent at a remote location |
US6021437A (en) * | 1996-07-17 | 2000-02-01 | Bull S.A. | Process and system for real-time monitoring of a data processing system for its administration and maintenance support in the operating phase |
US6934956B1 (en) * | 1997-09-09 | 2005-08-23 | Micron Technology, Inc. | Method and apparatus for installing an operating system |
US6629267B1 (en) * | 2000-05-15 | 2003-09-30 | Microsoft Corporation | Method and system for reporting a program failure |
US20050257214A1 (en) * | 2000-09-22 | 2005-11-17 | Patchlink Corporation | Non-invasive automatic offsite patch fingerprinting and updating system and method |
US20040237068A1 (en) * | 2001-07-16 | 2004-11-25 | Yuqing Ren | Embedded software update system |
US20030037327A1 (en) * | 2001-08-15 | 2003-02-20 | International Business Machines Corporation | Run-time rule-based topological installation suite |
US20030051235A1 (en) * | 2001-09-07 | 2003-03-13 | Simpson Mark D. | Method and apparatus for verifying and analyzing computer software installation |
US20030149889A1 (en) * | 2002-02-04 | 2003-08-07 | Wookey Michael J. | Automatic communication and security reconfiguration for remote services |
US20040024849A1 (en) * | 2002-04-19 | 2004-02-05 | Adel El-Beik | Method and system for distributing data |
US20030208685A1 (en) * | 2002-05-01 | 2003-11-06 | Abdel-Rahman Hassan E. | Multi-platform application installation |
US20080005735A1 (en) * | 2002-06-28 | 2008-01-03 | International Business Machines Corporation | Apparatus and method for monitoring and routing status messages |
US20040031032A1 (en) * | 2002-08-08 | 2004-02-12 | James Clough | User installation of imaging device control system |
US20040128583A1 (en) * | 2002-12-31 | 2004-07-01 | International Business Machines Corporation | Method and system for monitoring, diagnosing, and correcting system problems |
US20060271341A1 (en) * | 2003-03-06 | 2006-11-30 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
US7072807B2 (en) * | 2003-03-06 | 2006-07-04 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
US20050160420A1 (en) * | 2004-01-20 | 2005-07-21 | Kruta Andrew W. | Method and apparatus for distribution and installation of computer programs across an enterprise |
US20050216300A1 (en) * | 2004-03-15 | 2005-09-29 | Barry Appelman | Sharing social network information |
US20050262495A1 (en) * | 2004-05-18 | 2005-11-24 | Bea Systems, Inc. | Administration mode for server applications |
US20060048136A1 (en) * | 2004-08-25 | 2006-03-02 | Vries Jeff D | Interception-based resource detection system |
US7913249B1 (en) * | 2006-03-07 | 2011-03-22 | Jpmorgan Chase Bank, N.A. | Software installation checker |
US20080201707A1 (en) * | 2007-02-15 | 2008-08-21 | Microsoft Corporation | Dynamic deployment of custom code |
US20080222199A1 (en) * | 2007-03-06 | 2008-09-11 | Tiu William K | Multimedia Aggregation in an Online Social Network |
US7721158B2 (en) * | 2007-06-04 | 2010-05-18 | Microsoft Corporation | Customization conflict detection and resolution |
Non-Patent Citations (1)
Title |
---|
Definition and Validation of the Key process of Release, Delivery and Deployment for Product Software Vendors: turning the ugly duckling into a swan-Slinger Jansen, Sjaak Brinkkemper-Information and Computing Sciences Institute Utrecht University, Utrecht, The Netherlands-22nd IEEE International Conference on Software Maintenance-2006. * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9684903B2 (en) * | 2013-09-05 | 2017-06-20 | General Electric Company | Expert collaboration system and method |
US20150067018A1 (en) * | 2013-09-05 | 2015-03-05 | General Electric Company | Expert collaboration system and method |
US10205767B2 (en) * | 2013-09-24 | 2019-02-12 | Lg Cns Co., Ltd. | Management system and method for a big data processing device |
US20150088930A1 (en) * | 2013-09-24 | 2015-03-26 | Lg Cns Co., Ltd. | Management system and method for a big data processing device |
US10078549B2 (en) | 2015-05-19 | 2018-09-18 | Vmware, Inc. | Maintaining hole boundary information for restoring snapshots from parity |
US10102057B2 (en) * | 2015-05-19 | 2018-10-16 | Vmware, Inc. | Providing end-to-end checksum within a distributed virtual storage area network module |
US20170078444A1 (en) * | 2015-09-11 | 2017-03-16 | Facebook, Inc. | Retrieving information about an online system user for use by an application during retrieval and installation of the application |
US10476987B2 (en) * | 2015-09-11 | 2019-11-12 | Facebook, Inc. | Retrieving information about an online system user for use by an application during retrieval and installation of the application |
US10089661B1 (en) * | 2016-12-15 | 2018-10-02 | Amazon Technologies, Inc. | Identifying software products to test |
US10223138B2 (en) * | 2017-03-31 | 2019-03-05 | International Business Machines Corporation | Software installation assistance method and system |
US20180321951A1 (en) * | 2017-05-08 | 2018-11-08 | Google Inc. | Smart device configuration guidance via automated assistant interface of separate client device |
CN110612521A (en) * | 2017-05-08 | 2019-12-24 | 谷歌有限责任公司 | Smart device configuration guidance via automated assistant interface of individual client devices |
US10754673B2 (en) * | 2017-05-08 | 2020-08-25 | Google Llc | Smart device configuration guidance via automated assistant interface of separate client device |
CN110612521B (en) * | 2017-05-08 | 2024-03-01 | 谷歌有限责任公司 | Intelligent device configuration guidance via automated assistant interface of individual client devices |
US11972279B2 (en) | 2017-05-08 | 2024-04-30 | Google Llc | Smart device configuration guidance via automated assistant interface of separate client device |
US10567356B2 (en) | 2017-06-20 | 2020-02-18 | Microsoft Technology Licensing, Llc | Monitoring cloud computing environments with data control policies |
US10762218B2 (en) | 2017-06-20 | 2020-09-01 | Microsoft Technology Licensing, Llc | Network buildout for cloud computing environments with data control policies |
US10892956B2 (en) * | 2019-02-27 | 2021-01-12 | Canon Kabushiki Kaisha | Device management server, control method for the same, and medium |
CN113282307A (en) * | 2021-06-11 | 2021-08-20 | 云宏信息科技股份有限公司 | Method, server and system for batch installation of ansable server to software |
US11645071B1 (en) | 2022-04-19 | 2023-05-09 | International Business Machines, Corporation | Intelligent installation for client systems |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9058230B1 (en) | Online expert system guided application installation | |
US8978012B1 (en) | Method and system for error reporting and correction in transaction-based applications | |
US10642599B1 (en) | Preemptive deployment in software deployment pipelines | |
US10162650B2 (en) | Maintaining deployment pipelines for a production computing service using live pipeline templates | |
US8397039B2 (en) | Storage systems and methods | |
US10255058B2 (en) | Analyzing deployment pipelines used to update production computing services using a live pipeline template process | |
US8910172B2 (en) | Application resource switchover systems and methods | |
US7340649B2 (en) | System and method for determining fault isolation in an enterprise computing system | |
US7594219B2 (en) | Method and apparatus for monitoring compatibility of software combinations | |
US10193961B2 (en) | Building deployment pipelines for a production computing service using live pipeline templates | |
CN107710683B (en) | Elastic as a service | |
US11762763B2 (en) | Orchestration for automated performance testing | |
US8291382B2 (en) | Maintenance assessment management | |
KR102158754B1 (en) | Method and apparatus for operating on smart network interface card | |
US20170180266A1 (en) | Matching and enforcing deployment pipeline configurations with live pipeline templates | |
US7840846B2 (en) | Point of sale system boot failure detection | |
US20070168957A1 (en) | Certifying a software application based on identifying interface usage | |
US20080229300A1 (en) | Method and Apparatus for Inserting Code Fixes Into Applications at Runtime | |
US8266426B2 (en) | Hardware certification based on certifying development processes | |
KR100496056B1 (en) | Restoring service system and a method thereof for internet-based remote data and file | |
JP2004103014A (en) | Method and apparatus for dependency-based impact simulation and vulnerability analysis | |
CN113760704A (en) | Web UI (user interface) testing method, device, equipment and storage medium | |
JP2004362000A (en) | Web application development support device, component call monitoring device, data processing method and program | |
US20170373957A1 (en) | Minimized installation of point of presence software agents by use of pre-installed browser | |
CN102833118B (en) | Remote maintenance system and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SYMANTEC OPERATING CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VAN RIETSCHOTE, HANS FREDERIK;POOLE, JAMES CABELL;SIGNING DATES FROM 20080521 TO 20080522;REEL/FRAME:021002/0121 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: SYMANTEC CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SYMANTEC OPERATING CORPORATION;REEL/FRAME:036205/0117 Effective date: 20150727 |
|
CC | Certificate of correction | ||
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
AS | Assignment |
Owner name: JPMORGAN, N.A., NEW YORK Free format text: SECURITY AGREEMENT;ASSIGNORS:SYMANTEC CORPORATION;BLUE COAT LLC;LIFELOCK, INC,;AND OTHERS;REEL/FRAME:050926/0560 Effective date: 20191104 |
|
AS | Assignment |
Owner name: NORTONLIFELOCK INC., CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:SYMANTEC CORPORATION;REEL/FRAME:053306/0878 Effective date: 20191104 |
|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA Free format text: SECURITY AGREEMENT;ASSIGNOR:NORTONLIFELOCK INC.;REEL/FRAME:062220/0001 Effective date: 20220912 Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA Free format text: NOTICE OF SUCCESSION OF AGENCY (REEL 050926 / FRAME 0560);ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:061422/0371 Effective date: 20220912 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |