US20030195949A1 - Methods and systems for obtaining computer software via a network - Google Patents
Methods and systems for obtaining computer software via a network Download PDFInfo
- Publication number
- US20030195949A1 US20030195949A1 US10/427,189 US42718903A US2003195949A1 US 20030195949 A1 US20030195949 A1 US 20030195949A1 US 42718903 A US42718903 A US 42718903A US 2003195949 A1 US2003195949 A1 US 2003195949A1
- Authority
- US
- United States
- Prior art keywords
- software
- computer
- user
- client computer
- executable file
- 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.)
- Abandoned
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
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Definitions
- the technical field relates to software distribution.
- a computer software developer will typically release an initial version of a software product. Thereafter, as new and improved computers and peripherals are developed, the software product will commonly be upgraded to take full advantage of the increased capabilities of the hardware. In addition, a software developer, to remain competitive, will often upgrade the software product to provide new features and functionality.
- Software can also be distributed over electronic bulletin board systems, the Internet, etc.
- a user connects to the bulletin board or the Internet and then selects and downloads desired software.
- Such systems allow for rapid updating of software by simply supplying a new updated version of the software to the bulletin board.
- Such systems also require a degree of user sophistication and technical expertise in the selection, downloading and installation of the new software.
- Such systems do not provide a user that has already obtained a software product with a simple, automatic way of learning of or obtaining upgrades or fixes for that product.
- the software provider may also have updated help files and other help utilities about which a user would have no way of knowing.
- a user with a user computer is allowed to access (e.g. with a modem, an Internet connection, etc.) an update service, a network service, etc. (e.g. the Internet) at a remote location on which is stored a variety of computer software.
- an update service computer conducts an automatic inventory of the computer software on the user computer.
- the data collected from the inventory of the user computer software is then used to make comparisons to database entries from a database on the update service computer.
- the database entries contain information about computer software available on the update service computer.
- the comparison is conducted to identify software available from the remote update service that might be appropriate for installation on the user computer (i.e. new computer software, new versions of existing computer software, patches or fixes for existing computer software, new help files, etc.).
- the update service computer makes the computer software stored at the remote update service computer available to the user.
- available computer software can be downloaded from the remote update service computer and installed immediately on the user computer.
- Another aspect of the technologies allows the update service computer to contact the user computer at a later, more convenient time, re-establish two-way communications, then download and install available computer software on the user computer. If a delayed download is requested, the user will provide access information (e.g. phone number, network address, a file of commands to execute to logon the user computer, etc.) to the update service computer which allows the remote update service computer to re-connect to the user computer.
- the transfer may use an encryption scheme to permit safe transfer of the software to the user computer.
- the system will allow a user to purchase the available computer software electronically.
- the user for example, provides credit card information, debit card information, an account number to bill, etc. to the update service computer. Secure transaction technology and/or digital signatures are used to safeguard the payment information. After verifying the payment information, the update service computer permits transfer of the computer software.
- the electronic updates have several advantages.
- a user is automatically provided with information about the available versions of computer software as result of the inventory conducted by the update center computer. If the version of the computer software on the user computer has defects that are known and have been corrected, the user is alerted to this fact and is offered an up-to-date version of the computer software. The user is also alerted to the availability of new computer software, or enhanced versions of existing computer software, and can purchase them electronically. In either case, the most up-to-date versions of computer software are available for downloading to users.
- the available versions of the computer software can also be automatically installed on the user computer. Since it is no longer necessary for the user to install the computer software, the incidence of user related installation problems is greatly reduced. It is also not necessary for the user to obtain or save any storage media since the computer software is downloaded directly to the user computer. If the computer software installed on the user computer ever gets corrupted, the user can call the update service (e.g. for some limited number of iterations) and download a new (and up-to-date) copy of the computer software.
- the update service e.g. for some limited number of iterations
- the present technologies can provide benefits to the developers of the software.
- the developers of the computer software save support, distribution, and advertising costs.
- a user who calls the update service or network service automatically obtains up-to-date versions of available computer software, and may never encounter defects which would have been encountered using an earlier, defective version of the computer software.
- a user will require less support from the developers of the software, be more satisfied, and be more willing to purchase future versions of computer software.
- the developers of the computer software may save distribution costs as fewer versions of the computer software have to be copied to storage media and distributed.
- the software developers may also save advertising costs.
- FIG. 1 is a block diagram of a computer system used to implement an illustrated embodiment.
- FIG. 2 is a block diagram illustrating the update service center and the remote user computers.
- FIG. 3 is a block diagram illustrating the access processes on the user and update service computers.
- FIGS. 4 A- 4 B are a flow chart illustrating an illustrative sequence which is followed when a user calls the update service.
- FIG. 5 is a flow chart illustrating an illustrative sequence which is followed when the update service re-connects to a user computer.
- FIG. 6 is a block diagram illustrating the technologies on a computer network.
- FIG. 7 is a flow diagram illustrating a method of obtaining software over a computer network for the technologies.
- FIG. 8 is a block diagram illustrating an executable file format.
- a possible operating environment for the described technologies is a computer system 10 with a computer 12 that comprises at least one high speed processing unit (CPU) 14 , in conjunction with a memory system 16 , an input device 18 , and an output device 20 . These elements are interconnected by a bus structure 22 .
- CPU high speed processing unit
- the illustrated CPU 14 is of familiar design and includes an ALU 24 for performing computations, a collection of registers 26 for temporary storage of data and instructions, and a control unit 28 for controlling operation of the system 10 .
- ALU 24 for performing computations
- a collection of registers 26 for temporary storage of data and instructions
- a control unit 28 for controlling operation of the system 10 .
- Any of a variety of processors, including those from Digital Equipment, Sun, MIPS, IBM, Motorola, NEC, Intel, Cyrix, AMD, Nexgen and others are equally preferred for CPU 14 .
- computer system 10 may alternatively include multiple processing units.
- the memory system 16 includes main memory 30 and secondary storage 32 .
- Illustrated main memory 30 is high speed random access memory (RAM) and read only memory (ROM).
- Main memory 30 can include any additional or alternative high speed memory device or memory circuitry.
- Secondary storage 32 takes the form of long term storage, such as ROM, optical or magnetic disks, organic memory or any other volatile or non-volatile mass storage system. Those skilled in the art will recognize that memory 16 can comprise a variety and/or combination of alternative components.
- the input and output devices 18 , 20 are also familiar.
- the input device 18 can comprise a keyboard, mouse, pointing device, sound device (e.g. a microphone, etc.), or any other device providing input to the computer system 10 .
- the output device 20 can comprise a display, a printer, a sound device (e.g. a speaker, etc.), or other device providing output to the computer system 10 .
- the input/output devices 18 , 20 can also include network connections, modems, or other devices used for communications with other computer systems or devices.
- the computer system 10 further includes an operating system and at least one application program.
- the operating system is a set of software which controls the computer system's operation and the allocation of resources.
- the application program is a set of software that performs a task desired by the user, making use of computer resources made available through the operating system. Both are resident in the illustrated memory system 16 .
- one illustrated embodiment of the technologies consists of one or more user computers 34 which are connected over communications links 36 to an update service center 38 .
- the update service center consists of one or more second remote computer(s) 40 , one or more communications links 36 , and one or more databases 42 .
- the update service center 38 consists of one or more computers 40 (e.g., the computer that was described in FIG. 1) which are capable of simultaneous access by a plurality of user computers. If a plurality of update service computers are used, then the update service computers may be connected by a local area network (LAN) 44 or any other similar connection technology. However, it is also possible for an update service center to have other configurations, one of which is shown in FIG. 6 and will be explained below. For example, an update service center could have a smaller number of larger computers (i.e. a few mainframe, mini, etc. computers) with a number of internal programs or processes running on the larger computers capable of establishing communications links to the user computers. The update service center may also be connected to a remote network (e.g.
- the remote network or remote site allows the update service center to provide a wider variety of computer software than could be stored at the update service center.
- One or more databases 42 connected to the update center computer(s) 40 are used to store database entries consisting of computer software available on the update service computer(s).
- the update service computer(s) also contain a plurality of communications links 36 such as telecommunications connections (e.g. modem connections, ISDN connections, ATM connections, frame relay connections, etc.), network connections (e.g. Internet, etc.), satellite connections (e.g. Digital Satellite Services, etc.), wireless connections, two-way paging connections, etc., to allow one or more user computers to simultaneously connect to the update service computer(s).
- the connections are managed by an update server 46 .
- a user computer After a user computer establishes two-way communications with the update service computer, an inventory of computer software on the user computer is completed without interaction from the user, sent to the update service computer, and compared to database entries on the update service computer.
- the database entries from the database connected to the update service computer contain information about computer software which is available to a user.
- the user computer is sent back a summary of available computer software which is displayed for the user.
- the summary contains information such as the availability of patches and fixes for existing computer software, new versions of existing computer software, and brand new computer software, new help files, etc.
- the user is then able to make one or more choices from the summary of available computer software, and have the computer software transferred from the update service computer to the user computer.
- the user may choose to update on the fly, or store update information for future update needs.
- the update service computer(s) 40 running on the update service computer(s) 40 is one or more service update applications (SUA) 48 that will communicate with a user update application (UUA) 50 on the user computer when the update service is contacted by the a user with a user computer.
- the user update application 50 is a computer software program that is capable of initiating, establishing and terminating two-way communications with an update service application on the update service computer.
- the service update application 48 is a computer software program which is also capable of initiating, establishing and terminating two-way communications with a user update application on a user computer.
- a user starts a user update application (UUA) 50 on the user computer 34 to begin the access process.
- the user update application 50 tries to establish a two-way communications link 36 with an update service computer 40 using a modem, a network connection (e.g. Internet), etc.
- this access can also be completed by a variety of other methods which provide two-way data transfer.
- the update service computer starts a service update application (SUA) 48 .
- the service update application on the update service computer then tries to establish a two-way communications link to the user update application on the user computer. This is shown by the dashed lines 52 in FIG. 3.
- This communications link can be established with a network protocol suite (e.g., TCP/IP) through sockets, or any other two-way communications technique known in the art.
- a network protocol suite e.g., TCP/IP
- the service update application conducts an automatic inventory (i.e., without input from the user) of the computer software on the user computer.
- the data collected during the inventory is sent from the user computer to the remote update service computer.
- the service update application on the update service computer compares the inventory data collected from the user computer to data stored in a database on the update service computer.
- the database contains information on available computer software available from the update service.
- the update service computer then creates a summary and sends the summary to the user computer.
- the summary 54 is then presented to the user by the user computer.
- the summary contains information about computer software available on the update service computer such as the availability of patches and fixes for existing computer software, new versions of existing computer software, and brand new computer software, etc.
- the availability of agent help files, wizards, inference engines, and other operating system components will be listed in the summary.
- the illustrated embodiment can be implemented in the Microsoft Windows 95 operating system by the Microsoft Corporation of Redmond, Wash. using a modem, or a Internet network connection, for access to the update service computer.
- the technologies can likewise be practiced with other operating systems and other access technologies that allow two-way data transfer.
- a user begins the access sequence 56 to an update service by launching a user update application included in the Windows 95 operating system.
- the user update application can also be any application that is capable of two-way communications, and run under other operating systems.
- the user update application allows the user computer to establish a two-way communications path for access to the update service computer.
- connection configuration is completed by allowing a user to choose the appropriate connection method 60 .
- the user may choose to establish the connection with a modem. If a modem is chosen, the phone number to dial, modem (e.g. speed, line type, etc.) and communications parameters (e.g. parity, stop bits, etc.) are then configured. If the user chooses to make a network connection (e.g. Internet, etc.) to access the update service, the network address of the update service and other network parameters are configured.
- a network connection e.g. Internet, etc.
- the update service computer launches a service update application 64 .
- a two-way communications path 66 is set up between the service update application on the update service computer and the user update application on the user computer.
- the service update application on the update service computer then requests that the user update application on the user computer conduct an automatic inventory of all computer software installed 68 on the user computer.
- this inventory is done automatically (i.e., without input from the user), and is completed by assigning the inventory task to a Window's 95 operating system process thread on the user computer.
- the operating system thread completes the task in the “background” while the user is performing other activities in the “foreground” (e.g., choosing options from the user update application).
- Background and foreground processes refer to a number of operation system processes and process threads which are run for some specified time interval by the operating system. Threads are well known in the art and are used in other operating systems such as Windows NT by Microsoft, and OS/2 by IBM. However, other operating system techniques could also be used to accomplish the inventory on the user computer.
- data is collected about all computer software installed on the user computer. Data such as the software title, date, version, file size, file checksum, directory location on the user computer, etc. are collected.
- the user update application sends 70 the inventory data from the user computer to the service update application on the update service computer.
- the service update application compares the user inventory data from the user computer to database entries in the computer software database to automatically analyze the computer software stored on the user computer 72 .
- the database connected to the update service computer has entries which contain information about available computer software.
- the database entries also identify and describe, for example, components of the computer software, including new computer software, patches, fixes, new help files, wizards, inference engines, other operating system components, updates as well as enhancements and new features of existing computer software.
- the database entries describing new computer software may also include entries describing brand new computer software (i.e. computer software that is newly created, and not previously existing).
- Any computer software installed on the user computer which is listed in the database on the update service computer (e.g. out-of-date and/or requires a maintenance update, etc.) is flagged as available 74 .
- the user computer may also contain computer software that is not known by the update service. If the user computer contains computer software which is unknown to the update service computer, this computer software is marked as unknown by the update service computer. After the service update application completes the analysis of user computer software, a summary report is sent back to the user computer from the update service computer 76 .
- the user can choose from several update service options.
- One option may be to check for maintenance updates for all computer software installed on the user computer that is known by the update service.
- a second option may be to check only specific computer software, or a specific group of computer software stored on the user computer for maintenance updates. For example, if the user wanted to check and see if there were any maintenance updates for a particular word processing program, option two would be selected.
- a third option may be to check whether there are any new or enhanced versions of computer software available from the update service.
- a fourth option may be to check only for new versions of specific computer software or groupings of computer software installed on the user computer.
- a fifth option may be to check the update service computer for information on new computer software (i.e.
- a sixth option may be to check only if there are new help files, or other new support data available. This list of options is not intended to be all inclusive, as other options can be added to provide additional update service functionality.
- the user update application creates an output report 78 (FIG. 4B) based on the option(s) chosen by the user and the summary report created by the service update application.
- the service update application can also create the output report directly, using default choices with no input at all from a user.
- a second optional report is created and displayed for the user providing a short description that summarizes the computer software available from the update service 82 .
- This second optional report is used by the user to determine what computer software on the user computer will be updated, if any. If the output report is empty, the computer software on the user computer is current and up-to-date 84 , so no further action by either the update service computer or the user computer is required.
- the user is asked to choose which available computer software shown in the output report, if any, will be downloaded and installed on the user computer 86 . No software is downloaded without the user's permission. If one or more computer software components (i.e. pieces or parts of the available computer software) are chosen by the user, the user update application is instructed to make backup copies of all of the computer software components on the user computer that will be affected, and create a log for the user documenting which computer software will be replaced 88 . The backup copies and the log can be used by the user to restore the original version of the computer software components on the user computer if a need arises to do so.
- one or more computer software components i.e. pieces or parts of the available computer software
- the user has the option of choosing none, one, or a number of computer software components to download and install. If the list of available computer software to be downloaded and installed is large, the user also has the option of delaying the update to a later time 90 . If the user chooses an immediate download, the user is asked if the service update center should also install the computer software chosen by the user 92 after downloading.
- the service update application on the update service computer downloads the available software to the user computer and installs the software in the proper place (e.g., in the proper directory or subdirectory) on the user computer 94 .
- a log is also created that records what computer software was downloaded to the user computer. If immediate installation is not chosen by the user, the user can save any update information, and continue with other tasks before deciding when to download any software chosen by the user.
- the user If the user chooses a delayed update, the user provides re-connect information 98 that allows the update service computer to re-connect to the user computer at a more convenient time (e.g. midnight, etc.) and complete the downloading and installation at that time.
- a more convenient time e.g. midnight, etc.
- the user may create a logon script using an automated macro language to provide the logon sequence to be used, and the directory to be used to download the software chosen by the user.
- the logon script and the time the user wishes to have the chosen software downloaded are then sent to the update service computer, and stored in an update service computer database.
- the update service will execute the logon script to re-connect to the user computer, and download the chosen software in the proper directory.
- An encryption scheme may also be used to permit safe transfer of the software to the user computer.
- the user also has the option of choosing a logon method different than the one they are currently connected to the update service center with. For example, if a user is connected to the update service center with a modem, the user may choose to have the chosen software downloaded at a later time using a network connection (e.g., Internet, etc.) However, the user's computer must be capable of accepting software with a different connection method.
- a network connection e.g., Internet, etc.
- the user would enter the phone number of the phone line attached to the user computer and send this information to the update service computer.
- the user would leave the user computer and modem on, and set the communications software in an answer mode to answer any incoming calls.
- the user would provide the update service computer the user network address and set the network software in a host mode to process any network connection attempts.
- the delayed downloading is illustrated in the flow chart in FIG. 5.
- the update service computer launches a service update application that tries to re-connect 100 to the user computer.
- the update service application will use the information provided at an earlier time by a user (e.g. modem logon information, network logon information, a logon script, etc.).
- a service update application on the update service computer asks the user computer to launch a user update application to re-establish a two-way communications path 102 .
- the re-connect to the user computer may be completed using a different access method than was used during the original user computer-update service computer connection.
- the update service computer may request a digital satellite system re-connect to the user computer instead of the update service computer.
- a different access method is typically chosen to provide the most efficient and greatest bandwidth data transfer between the update service computer and the user computer.
- the user update application After establishing a new two-way communications path, the user update application creates a new directory 104 on the user computer, where the computer software is transferred and stored 106 . A log is also created to document what available computer software was transferred to the user computer. Included with the downloaded computer software is an installation application that will be used later by the user to install the computer software. When the transfers are complete, the update service computer terminates the connection to the user computer 108 . An encryption scheme may also be used to permit safe automated transfer of the software to the user computer.
- Leaving the user an installation application to execute is an added safety and security measure for both the user and the update service.
- the user computer is not updated unless the user personally starts the installation process.
- the user can also choose to have the computer software automatically installed by the update service when it re-connects to the user computer (but, user permission is always obtained and recorded first).
- the installation application is not downloaded to the user computer.
- a log is created so a user can determine what available computer software was downloaded and installed.
- the third, fourth, and fifth options allow a user to check for new versions of existing computer software, or new computer software available from the update service. If a new version of existing computer software, or new computer software is available, the user is asked if they wish to purchase the computer software. If so, the appropriate fee is requested from the user. The user can pay the fee electronically by transmitting credit card information, debit card information, billing account information, etc. to the update service computer from the user computer. Digital signatures, secure transaction technology, or an encryption scheme may also be used to collect payment information from the user. Once the fee information is collected by the update service computer and is verified, the user can choose between immediate or delayed downloading of the new, or new version of the computer software following steps ( 88 - 98 ) (FIG. 4B) described above.
- the update service computer Since new versions of computer software are typically very large, the user will be informed that a delayed installation is probably most efficient for the user. If a delayed installation of a new product is chosen, the update service computer will then re-connect to the user computer at a later time and download the new version of the computer software as was shown in FIG. 5. In the illustrated embodiment, the update service uses a digital satellite service link, or some other higher bandwidth connection to transfer the computer software to the user computer whenever possible.
- the information may contain a summary of the features of the new computer software and the information may also contain a list of retail outlets close to the user where the user may then purchase a new version of computer software on storage media if desired.
- Some users may prefer to obtain the computer software on storage media and call the update service to obtain up-to-date versions of the computer software.
- software updates are determined for network-related software for computer networks like the Internet.
- the Internet is a world-wide network of cooperating computer networks. Connected to the Internet are thousands of individual computers each with a variety of application programs.
- network application programs e.g., Internet browsers
- the network application programs act as an interface between a user and the Internet.
- the application programs are typically “client” applications that accept commands from the user and obtain Internet information and services by sending requests to “server” applications on another computer at some other location on the Internet.
- FTP File Transfer Protocol
- SMTP Simple Mail Transfer Protocol
- HTTP Hyper Text Transfer Protocol
- Gopher etc.
- FTP is used to move files from one computer to another.
- FTP operates independently of where the computers are located, how they are connected, or even whether they are using the same operating system. Provided both computers can “talk” FTP and have access to a mutually common network, FTP can be used to transfer files.
- Gopher allows an application to browse Internet resources using menus.
- the Gopher menus allow browsing of Internet resources regardless of their type.
- a Gopher user need not specify formal Internet details (e.g., domain names, IP addresses, etc.) to find desired information.
- HTTP is a protocol used to access data on the World Wide Web.
- the World Wide Web is an information service on the Internet containing documents created in the Hyper Text Markup Language (HTML). HTML allows “links” to other documents, which may found on other Internet host computers.
- HTML document links may use HTTP, FTP, Gopher, or other Internet application protocols, to retrieve the remote data pointed to by the link.
- FIG. 6 is an integrated illustration of alternative conventional ways in which a client computer may communicate with a network
- a client networking application program e.g., an network browser
- Client networking application program 110 residing on a client computer 112 which is a stand alone computer or is a computer connected to a local area network (LAN) 114 .
- Client networking application program 110 communicates with (e.g., makes a data request of) a server application 116 on a remote server computer 118 connected to a remote computer network (e.g., the Internet) 120 .
- the communications can be a direct connection 122 , or the communications 124 can be achieved using a pair of modems 126 or some other telecommunications device (e.g., an ISDN device) (not shown in FIG. 6).
- the client networking application program 110 will be referred to as a “network browser”.
- network browsers are continually enhanced to provide new and additional features.
- a network browser service e.g., the Internet or a World Wide Web site operated by the network browser developer or a service provider operating on behalf of the developer
- a user's network browser can be checked, and the user alerted to the availability of a new or enhanced version of the network browser.
- the technologies are described with reference to features and utilities included in the Windows 95 operating system of Microsoft Corporation. It will be appreciated, however, that these features and the functions of the utilities could be performed by other operating systems or applications.
- information about a network browser is stored at a client computer in an operating system registry.
- the operating system registry is a hierarchical database of keys and values that stores information describing a computer system's hardware, user preferences, available application programs, and other configuration data.
- a preferred embodiment of the present technologies uses the Windows 95 operating system registry to store information about the available network browsers and other available software. However, other registering techniques and other operating systems can also be used.
- the Windows 95 operating system registry may contain the following entry:
- MSIE is the name of the network browser,(e.g., Microsoft Internet Explorer)
- TS is the time stamp signifying when this version of the network browser was installed on the client computer 112 , (e.g., Apr. 15, 1996 at 12:32:33 pm)
- VER is the VERsion of the network browser (e.g., 2.0).
- MSIE is the name of the network browser,(e.g., Microsoft Internet Explorer)
- TS is the time stamp signifying when this version of the network browser was installed on the client computer 112 , (e.g., Apr. 15, 1996 at 12:32:33 pm)
- VER is the VERsion of the network browser (e.g., 2.0).
- other operating system registry formats could also be used.
- the server application 116 determines the type of network browser being used, and then reads the operating system registry on the client computer 112 to determine the installation date and version of the network browser being used as was described above and illustrated in FIGS. 4 A- 4 B.
- a new or enhanced version of the network browser is available, the user is asked whether he wishes to download it from the server computer 118 to the client computer 112 . If the user answers in the affirmative, the new or enhanced version of the network browser is downloaded to the user client computer 112 by the remote server application 116 on the server computer 118 over the computer network 120 .
- the same method is used for other network-related software and for other non-networking software as was discussed above. The user can also choose a delayed request as was described above.
- an HTML document requested by the user can contain an HTML reference to request a specific version of a network browser or some other application software.
- the HTML reference preferably appears as a conventional HTML reference or link that is included; for example, in a description of the specific version of the network browser.
- a reference to a network browser in an HTML document may be:
- FETCH indicates an HTML software download command
- SRC “http://www.microsoft.com/ie/MSIE20.exe” is the Internet (or intranet or other network) location of the requested software.
- This type of HTML reference can also be used to receive software viewers, or other software applications that are used within HTML documents.
- the software is sent using a Secure Software Distribution (SSD) process.
- SSD Secure Software Distribution
- a non-secure software distribution process could also be used.
- the Secure Software Distribution process uses a collection of software applications that enable a server application 116 to distribute software to users in a high-quality, reliable, and secure manner.
- SSD is used to distribute a self-extracting archive of files to a client application 110 .
- the self-extracting archive of files will contain a new or enhanced version of a network browser software received by an HTML FETCH command or other software request.
- this archive When this archive is executed, it extracts all of the included files, and then executes one of those files (e.g., setup.exe) to complete the installation automatically (i.e. without further user input).
- the flowchart in FIG. 7 shows a method 128 of creating a secure, self-extracting archive of files using an SSD process.
- the server application 116 on the server computer 118 creates a file of directive commands 130 .
- the file of directive commands is typically stored in a Media Directive File (*.MDF) format.
- the file of directive commands or directive file is used to create a Cabinet file and to designate an installation program to run to install the requested software.
- a cabinet file (*.CAB) is a grouping of files that are commonly conceptualized as being stored in an “electronic filing cabinet.” Cabinet files are known to those in the art.
- the directive file may contain the following directives:
- the compression scheme used is a loseless data compression scheme called “LZ77,” which is a variety of the lossless Lempel and Ziv compression scheme known in the art.
- LZ77 loseless data compression scheme
- other compression schemes can also be used. Compressing files in the self-extracting archive makes the self-extracting archive smaller in size and thus, easier to transmit to a client application.
- the file “bin ⁇ MSIE20.exe” is an executable (*.EXE) version of the Microsoft Internet Explorer version 2.0 from the “bin ⁇ ” directory
- the file “MSIE20.hlp” is a help file for the Internet Explorer version 2.0
- the file “MSIE20.dll” is a Dynamic Link Library for the Internet Explorer version 2.0.
- Dynamic Link Library (DLL) files provide reentrant function libraries that applications link to and call as regular function calls. DLLs are known and understood by those skilled in the art. More or fewer directives files, and types of files, could also be used for the cabinet file.
- a set of directives in the directive file is also used to mark an installation program to install the software contained in the cabinet file.
- the directive file may include a switch that can be set to run the installation program automatically (i.e., without further user input).
- the following lines may be included in the directive file for an installation program:
- the “bin ⁇ setup.exe” file is the chosen installation program
- the “bin ⁇ setup.inf” is an information file (*.INF) for the installation program. Both setup files are from the “ ⁇ bin” directory. More or fewer directives and files could also be used for the installation program.
- the installation program could also be compressed and placed in a cabinet file.
- the cabinet file just described is created with a disk layout and compression application called Diamond by Microsoft. However, other tools could also be used to build the cabinet file.
- the server application 116 issues the following command:
- DDF format is similar to MDF format, but differs by providing the ability to create self-extracting, executable, secure distribution files containing software. However, other format designations could also be used.
- the Diamond Disk Compression and Layout application is summarized below.
- the cabinet file is combined with a self-extracting application program 134 called “WEXTRACT.EXE” to create a self-extracting executable archive file (e.g., dist.exe).
- WEXTRACT.EXE This combination is the self-extracting archive of software, and hereinafter will be referred to as a self-extracting executable distribution file.
- the combining of the cabinet file and WEXTRACT Program is performed by a Windows 95 utility application program called “COMBINE.EXE.”
- other self-extracting and combination application programs could also be used.
- the COMBINE application program combines the cabinet file with the WEXTRACT program to create a self-extracting, executable distribution file.
- the cabinet file is attached to the WEXTRACT program as a user defined resource called “CABINET.”
- User defined resources are known to those skilled in the art.
- the COMBINE application computes an installation table of how many disk clusters will be needed to extract and store the files included in the cabinet file for each cluster size that is designated by file directives in the *.DDF or *.MDF directive files.
- the installation table is placed in the executable distribution file (e.g., dist.exe) for use by the WEXTRACT program at extraction time.
- the server application may specify an additional amount of user space that is required during the installation process.
- the user space is specified by a user from the network browser when the desired software is selected. This user specified space is also stored in the installation table.
- the WEXTRACT program uses the information in the installation table to prevent extraction until enough free space is available on client computer 112 to complete the installation. If enough free space is not available, the user is asked to delete existing files to free up space before the installation takes place.
- COMBINE also allows other information such as graphical images and text to be added to the self-extracting executable distribution file. This information is typically shown while the self-extractor is running and allows customization of the installation application. The information may include a summary of features in the application program included in the distribution file, customization options selectable by the user, and reminders regarding registration and other protection for the program. Customization of the installation application increases visual appeal for the user.
- the cabinet file added to the self-extracting distribution file can be a cabinet file in a linked set of cabinet files. The WEXTRACT application will follow any cabinet links to subsequent cabinets. This allows distribution of large software packages in smaller pieces (e.g., by disk sizing) while still having a single executable distribution file that is relatively simple in format.
- the COMBINE application is summarized below.
- the WEXTRACT program is preferably a Windows 95 based application for extracting cabinet files.
- WEXTRACT will extract the cabinet file that is attached to the WEXTRACT executable by the COMBINE application.
- Any disk space information that was added to the installation table is included in the self-extracting executable distribution file by the COMBINE program will be used to prevent the extraction and installation from running until the client computer 112 disk space needs are met.
- Any text descriptions or graphics images that were added to make the installation interface more user friendly and informative will also be extracted by WEXTRACT.
- the WEXTRACT application is summarized below. wextract [cabinet_file] Parameters: cabinet_file An optional parameter for the cabinet file to extract. If no cabinet_file is specified, then the WEXTRACT application attempts to retrieve the cabinet from itself as a user-defined resources called “CABINET”. (see COMBINE above).
- the resulting self-extracting, executable distribution file (e.g., dist.exe) is digitally signed with a digital signature to create a signed, self-extracting executable distribution file 136 .
- the executable distribution file with the digital signature is now a SECure (*.SEC) executable distribution file.
- the digital signature is preferably added with a Windows 95 utility application program called “SIGNMS.EXE”. However, other digital signature application programs can also be used.
- the SIGNMS application appends a digital signature to the self-extracting executable distribution file (or a copy of the self-extracting executable distribution file if a destination argument is provided as will be explained below).
- Self-extracting executable destination files that are copied and digitally signed have the original self-extracting executable destination file name and a *.SEC suffix. Once the *.SEC file is verified against its digital signature, the self-extracting executable distribution file is renamed to its original name and the .SEC suffix is truncated.
- the digital signature is created with a Secure Hashing Algorithm (SHA) hash process.
- the SHA hash process returns a value that is encrypted using a private 1024-bit RSA encryption key.
- the SHA hash process is a one-way process (i.e., cannot be un-hashed) that is used to compute a secure hash value for the self-extracting, executable distribution file.
- SHA hashing and RSA private key encryption are known in the art.
- the RSA encryption is completed with a 1024-bit private key known only to the software distributor. This helps reduce the risk of accidental or intentional corruption or tampering since only the software distributor knows the value for the private key used.
- the distributed software is decrypted using a published public RSA decryption key.
- the digital signature 138 is added to the bottom of the self-extracting executable distribution file 140 after the last data block 142 of the executable (*.EXE) information (i.e., the extractor program and the cabinet file). Since most executable (*.EXE) files have a header 144 that indicates the number of data blocks of executable information, adding the digital signature 138 after the last data block of executable information 142 prevents complaints or problems with most existing tools (e.g., VIRUS checkers) and operating systems which process executable information.
- most existing tools e.g., VIRUS checkers
- SIGNMS will also detect a file that is already signed and prevent the user from adding a second digital signature.
- An “/F” switch overrides this detection and will allow SIGNMS to replace the digital signature with a new signature if the file is already signed. Replacing a signature is useful if the private encryption key becomes compromised at some time, and there is a need to introduce a new private key to re-sign all files previously signed.
- the SIGNMS application is summarized below.
- the secure, self-extracting executable distribution file (e.g., file.SEC) is transmitted 146 from the server computer 118 over a computer network (e.g., the Internet) to the client computer 112 and passed to the network browser 110 .
- a computer network e.g., the Internet
- the user can delay transmission of the requested software until a later more convenient time (see FIG. 5).
- the digital signature is verified 148 .
- the digital signature is verified with a digital signature verification function called “MSSFVerify( )”.
- MSSFVerify( ) function is stored in a Windows library called MSSFCHEK.LIB.
- a call to MSSFVerify( ) by the network browser 110 decrypts with a public RSA decryption key, the encrypted original SHA hash value received in the self-extracting distribution file.
- One or more public RSA decryption keys are typically published by the software distributor The private key is not published.
- the SHA hashing process is then used to compute a second SHA hash value. The second SHA hash value is compared with the original SHA value sent in the digital signature.
- the self-extracting executable distribution file is deemed secure and free from accidental or intentional corruption.
- the self-extracting executable distribution file is then executed to install the software requested by the user 152 . If the second SHA hash value and the original hash value are not identical, then the self-extracting executable distribution file is deemed to have been corrupted or altered and insecure, and thus is rejected and deleted 152 .
- the MSSFVerify( ) function operates in two modes; a normal mode and verify only mode.
- the normal mode removes the digital signature, verifies it, and renames the self-extracting executable distribution file if the file was signed by SIGNMS using the destination file argument.
- the verify only mode verifies the digital signature without removing the digital signature or renaming the file. If the file was signed in-situ, then both modes are the same.
- the MSSFVerify( ) function is summarized below.
- the extractor in the self-extracting executable distribution file e.g., WEXTRACT
- the extractor in the self-extracting executable distribution file extracts and decompresses (if compression was used) all the files in the cabinet file, and automatically starts the installation program (if any) that was specified (e.g., setup.exe /RUN) when the cabinet file was created.
- the user can also be prompted by the network browser to start the installation program, or start the installation program manually at a later time.
- the installation program installs the software in the appropriate directories on the client computer.
- the installation program is typically configured to clean-up, update, or delete any unnecessary or out-of-date files after installation.
- Software sent from a server application on a server computer or from an update service in a secure, self-extracting, executable distribution file gives the user confidence that the requested software will not damage or cause problems on the user's computer. Thus, the user is more likely to accept electronic copies of new or enhanced versions of computer software.
- the software distributor by signing the software with a digital signature encrypted with a private RSA encryption key, also has a high degree of confidence that any software sent over a public computer network (Internet or intranet) will arrive without being accidentally or intentionally corrupted.
Abstract
When creating a distribution file for distributing software over a network, instructions for automatically invoking instructions for installing software can be placed in the software distribution file. If an installation program, the software, and the instructions are placed in the software distribution file, a single user action can download and activate the software distribution file, leading to automatic installation of the software. The installation can be accomplished without further user input. The software distribution file can include an extractor for automatically extracting items in the distribution file.
Description
- This application is a divisional of co-pending U.S. patent application Ser. No. 09/898,702, entitled “METHODS AND SYSTEMS FOR OBTAINING COMPUTER SOFTWARE VIA A NETWORK,” filed Jul. 2, 2001, which is a continuation of U.S. patent application Ser. No. 09/169,618, entitled, “METHOD FOR IDENTIFYING AND OBTAINING COMPUTER SOFTWARE FROM A NETWORK COMPUTER USING A TAG,” filed Oct. 9, 1998, now issued as U.S. Pat. No. 6,256,668, which is a divisional of U.S. patent application Ser. No. 08/634,390, entitled, “METHOD AND SYSTEM FOR IDENTIFYING AND OBTAINING COMPUTER SOFTWARE FROM A NETWORK COMPUTER,” filed Apr. 18, 1996, now issued as U.S. Pat. No. 6,049,671, all of which are hereby incorporated herein by reference.
- The technical field relates to software distribution.
- The continual and rapid development of computers, computer software and related technology has revealed many problems with the typical update and distribution channels for computer software. For example, computer software, the coded instructions that control a computer's operation, is constantly and incrementally being upgraded and improved. The computer hardware and operating system environment on which the computer software is used is continually being changed, which requires additional changes in the computer software (e.g. new device drivers, new operating system calls, etc.).
- A computer software developer will typically release an initial version of a software product. Thereafter, as new and improved computers and peripherals are developed, the software product will commonly be upgraded to take full advantage of the increased capabilities of the hardware. In addition, a software developer, to remain competitive, will often upgrade the software product to provide new features and functionality.
- With the ever increasing pace of advancement in computer related technologies, software developers compete to be the first to offer a new feature or upgrade. As a result, sometimes software products are made available to the public with unknown errors or defects. Similarly, software products that work as intended on a particular computer with a particular configuration, may fail when installed on a different computer having a different configuration (e.g. different hardware, peripherals, operating systems, etc.). Software developers frequently provide fixes for their software products to correct defects that were undetected or unanticipated at the time the software product was released. Fixes are also provided to allow the software product to function correctly on a new computer or with a different operating system environment.
- However, it is often difficult for software developers to make upgrades and fixes available to users. This difficulty not only deprives the user of access to the most reliable and up-to-date software products, it can result in lost sales to the software developer and can damage the goodwill and the development of a long term relationship with a customer by releasing a flawed or deficient software product.
- Commonly, mass distribution of commercial software products is accomplished by copying the software product onto storage media (e.g. CD-ROMs, floppy disks, magnetic tapes, etc.). To take advantage of economies of scale, typically a large number of copies of the software product are made during the manufacture of a particular software product. Then, the storage media containing the software product is provided to distributors and retailers for sale to users.
- However, given the rapid pace of software development, this manner of distribution is frequently insufficient. For example, it is not uncommon that defects are detected and fixes created shortly after a software product is introduced to the public. However, the software products that remain in the distribution chain contain the defect without the fix. This situation is frustrating for users who subsequently purchase the software product that is already obsolete (i.e. because of the defects).
- Software can also be distributed over electronic bulletin board systems, the Internet, etc. In such systems, a user connects to the bulletin board or the Internet and then selects and downloads desired software. Such systems allow for rapid updating of software by simply supplying a new updated version of the software to the bulletin board. However, such systems also require a degree of user sophistication and technical expertise in the selection, downloading and installation of the new software. Moreover, such systems do not provide a user that has already obtained a software product with a simple, automatic way of learning of or obtaining upgrades or fixes for that product. The software provider may also have updated help files and other help utilities about which a user would have no way of knowing.
- The technologies described herein can overcome many of the problems associated with obtaining computer software. A user, with a user computer is allowed to access (e.g. with a modem, an Internet connection, etc.) an update service, a network service, etc. (e.g. the Internet) at a remote location on which is stored a variety of computer software. When a user accesses the remote update service or network service, an update service computer conducts an automatic inventory of the computer software on the user computer. The data collected from the inventory of the user computer software is then used to make comparisons to database entries from a database on the update service computer. The database entries contain information about computer software available on the update service computer. The comparison is conducted to identify software available from the remote update service that might be appropriate for installation on the user computer (i.e. new computer software, new versions of existing computer software, patches or fixes for existing computer software, new help files, etc.). After the comparison is completed, the update service computer makes the computer software stored at the remote update service computer available to the user.
- In one aspect of the technologies, available computer software can be downloaded from the remote update service computer and installed immediately on the user computer. Another aspect of the technologies allows the update service computer to contact the user computer at a later, more convenient time, re-establish two-way communications, then download and install available computer software on the user computer. If a delayed download is requested, the user will provide access information (e.g. phone number, network address, a file of commands to execute to logon the user computer, etc.) to the update service computer which allows the remote update service computer to re-connect to the user computer. The transfer may use an encryption scheme to permit safe transfer of the software to the user computer.
- In yet another aspect of the technologies, the system will allow a user to purchase the available computer software electronically. The user, for example, provides credit card information, debit card information, an account number to bill, etc. to the update service computer. Secure transaction technology and/or digital signatures are used to safeguard the payment information. After verifying the payment information, the update service computer permits transfer of the computer software.
- The electronic updates have several advantages. A user is automatically provided with information about the available versions of computer software as result of the inventory conducted by the update center computer. If the version of the computer software on the user computer has defects that are known and have been corrected, the user is alerted to this fact and is offered an up-to-date version of the computer software. The user is also alerted to the availability of new computer software, or enhanced versions of existing computer software, and can purchase them electronically. In either case, the most up-to-date versions of computer software are available for downloading to users.
- The available versions of the computer software can also be automatically installed on the user computer. Since it is no longer necessary for the user to install the computer software, the incidence of user related installation problems is greatly reduced. It is also not necessary for the user to obtain or save any storage media since the computer software is downloaded directly to the user computer. If the computer software installed on the user computer ever gets corrupted, the user can call the update service (e.g. for some limited number of iterations) and download a new (and up-to-date) copy of the computer software.
- In addition to providing benefits for the user, the present technologies can provide benefits to the developers of the software. The developers of the computer software save support, distribution, and advertising costs. A user who calls the update service or network service automatically obtains up-to-date versions of available computer software, and may never encounter defects which would have been encountered using an earlier, defective version of the computer software. As a result, a user will require less support from the developers of the software, be more satisfied, and be more willing to purchase future versions of computer software. Since the computer software is downloaded to the user computer, the developers of the computer software may save distribution costs as fewer versions of the computer software have to be copied to storage media and distributed. In addition, since the user is also alerted when new computer software, and/or new versions of existing computer software are available, the software developers may also save advertising costs.
- The foregoing and other features and advantages will be more readily apparent from the following detailed description, which proceeds with reference to the accompanying drawings.
- FIG. 1 is a block diagram of a computer system used to implement an illustrated embodiment.
- FIG. 2 is a block diagram illustrating the update service center and the remote user computers.
- FIG. 3 is a block diagram illustrating the access processes on the user and update service computers.
- FIGS.4A-4B are a flow chart illustrating an illustrative sequence which is followed when a user calls the update service.
- FIG. 5 is a flow chart illustrating an illustrative sequence which is followed when the update service re-connects to a user computer.
- FIG. 6 is a block diagram illustrating the technologies on a computer network.
- FIG. 7 is a flow diagram illustrating a method of obtaining software over a computer network for the technologies.
- FIG. 8 is a block diagram illustrating an executable file format.
- Referring to FIG. 1, a possible operating environment for the described technologies is a
computer system 10 with acomputer 12 that comprises at least one high speed processing unit (CPU) 14, in conjunction with amemory system 16, aninput device 18, and anoutput device 20. These elements are interconnected by a bus structure 22. - The illustrated
CPU 14 is of familiar design and includes anALU 24 for performing computations, a collection ofregisters 26 for temporary storage of data and instructions, and acontrol unit 28 for controlling operation of thesystem 10. Any of a variety of processors, including those from Digital Equipment, Sun, MIPS, IBM, Motorola, NEC, Intel, Cyrix, AMD, Nexgen and others are equally preferred forCPU 14. Although shown with oneCPU 14,computer system 10 may alternatively include multiple processing units. - The
memory system 16 includesmain memory 30 andsecondary storage 32. Illustratedmain memory 30 is high speed random access memory (RAM) and read only memory (ROM).Main memory 30 can include any additional or alternative high speed memory device or memory circuitry.Secondary storage 32 takes the form of long term storage, such as ROM, optical or magnetic disks, organic memory or any other volatile or non-volatile mass storage system. Those skilled in the art will recognize thatmemory 16 can comprise a variety and/or combination of alternative components. - The input and
output devices input device 18 can comprise a keyboard, mouse, pointing device, sound device (e.g. a microphone, etc.), or any other device providing input to thecomputer system 10. Theoutput device 20 can comprise a display, a printer, a sound device (e.g. a speaker, etc.), or other device providing output to thecomputer system 10. The input/output devices - As is familiar to those skilled in the art, the
computer system 10 further includes an operating system and at least one application program. The operating system is a set of software which controls the computer system's operation and the allocation of resources. The application program is a set of software that performs a task desired by the user, making use of computer resources made available through the operating system. Both are resident in the illustratedmemory system 16. - In accordance with the practices of persons skilled in the art of computer programming, the present technologies are described below with reference to symbolic representations of operations that are performed by
computer system 10, unless indicated otherwise. Such operations are sometimes referred to as being computer-executed. It will be appreciated that the operations which are symbolically represented include the manipulation byCPU 14 of electrical signals representing data bits and the maintenance of data bits at memory locations inmemory system 16, as well as other processing of signals. The memory locations where data bits are maintained are physical locations that have particular electrical, magnetic, optical, or organic properties corresponding to the data bits. - As is shown in FIG. 2, one illustrated embodiment of the technologies consists of one or
more user computers 34 which are connected overcommunications links 36 to anupdate service center 38. The update service center consists of one or more second remote computer(s) 40, one ormore communications links 36, and one ormore databases 42. - The
update service center 38 consists of one or more computers 40 (e.g., the computer that was described in FIG. 1) which are capable of simultaneous access by a plurality of user computers. If a plurality of update service computers are used, then the update service computers may be connected by a local area network (LAN) 44 or any other similar connection technology. However, it is also possible for an update service center to have other configurations, one of which is shown in FIG. 6 and will be explained below. For example, an update service center could have a smaller number of larger computers (i.e. a few mainframe, mini, etc. computers) with a number of internal programs or processes running on the larger computers capable of establishing communications links to the user computers. The update service center may also be connected to a remote network (e.g. the Internet shown in FIG. 6) or a remote site (e.g. a satellite) (which is not shown in FIG. 2). The remote network or remote site allows the update service center to provide a wider variety of computer software than could be stored at the update service center. One ormore databases 42 connected to the update center computer(s) 40 are used to store database entries consisting of computer software available on the update service computer(s). The update service computer(s) also contain a plurality ofcommunications links 36 such as telecommunications connections (e.g. modem connections, ISDN connections, ATM connections, frame relay connections, etc.), network connections (e.g. Internet, etc.), satellite connections (e.g. Digital Satellite Services, etc.), wireless connections, two-way paging connections, etc., to allow one or more user computers to simultaneously connect to the update service computer(s). The connections are managed by anupdate server 46. - After a user computer establishes two-way communications with the update service computer, an inventory of computer software on the user computer is completed without interaction from the user, sent to the update service computer, and compared to database entries on the update service computer. The database entries from the database connected to the update service computer contain information about computer software which is available to a user. After the comparison, the user computer is sent back a summary of available computer software which is displayed for the user. The summary contains information such as the availability of patches and fixes for existing computer software, new versions of existing computer software, and brand new computer software, new help files, etc. The user is then able to make one or more choices from the summary of available computer software, and have the computer software transferred from the update service computer to the user computer. The user may choose to update on the fly, or store update information for future update needs.
- As is shown in FIG. 3, running on the update service computer(s)40 is one or more service update applications (SUA) 48 that will communicate with a user update application (UUA) 50 on the user computer when the update service is contacted by the a user with a user computer. The
user update application 50 is a computer software program that is capable of initiating, establishing and terminating two-way communications with an update service application on the update service computer. Theservice update application 48 is a computer software program which is also capable of initiating, establishing and terminating two-way communications with a user update application on a user computer. - To access the
update service center 38, a user starts a user update application (UUA) 50 on theuser computer 34 to begin the access process. Theuser update application 50 tries to establish a two-way communications link 36 with anupdate service computer 40 using a modem, a network connection (e.g. Internet), etc. However, this access can also be completed by a variety of other methods which provide two-way data transfer. As theuser update application 48 on theuser computer 34 tries to establish a two-way communications link 36 to theupdate service computer 40, the update service computer starts a service update application (SUA) 48. The service update application on the update service computer then tries to establish a two-way communications link to the user update application on the user computer. This is shown by the dashedlines 52 in FIG. 3. This communications link can be established with a network protocol suite (e.g., TCP/IP) through sockets, or any other two-way communications technique known in the art. - After establishing a two-way communications link, the service update application conducts an automatic inventory (i.e., without input from the user) of the computer software on the user computer. The data collected during the inventory is sent from the user computer to the remote update service computer. The service update application on the update service computer compares the inventory data collected from the user computer to data stored in a database on the update service computer. The database contains information on available computer software available from the update service. The update service computer then creates a summary and sends the summary to the user computer. The
summary 54 is then presented to the user by the user computer. The summary contains information about computer software available on the update service computer such as the availability of patches and fixes for existing computer software, new versions of existing computer software, and brand new computer software, etc. In addition, the availability of agent help files, wizards, inference engines, and other operating system components will be listed in the summary. - The illustrated embodiment can be implemented in the Microsoft Windows 95 operating system by the Microsoft Corporation of Redmond, Wash. using a modem, or a Internet network connection, for access to the update service computer. The technologies can likewise be practiced with other operating systems and other access technologies that allow two-way data transfer.
- As is shown in the flowchart in FIG. 4A, a user begins the
access sequence 56 to an update service by launching a user update application included in the Windows 95 operating system. However, the user update application can also be any application that is capable of two-way communications, and run under other operating systems. The user update application allows the user computer to establish a two-way communications path for access to the update service computer. - When the user update application starts58, the user is shown optional help information which instructs the user on how to establish a connection between the user computer and the update service computer. The actual connection configuration is completed by allowing a user to choose the
appropriate connection method 60. For example, the user may choose to establish the connection with a modem. If a modem is chosen, the phone number to dial, modem (e.g. speed, line type, etc.) and communications parameters (e.g. parity, stop bits, etc.) are then configured. If the user chooses to make a network connection (e.g. Internet, etc.) to access the update service, the network address of the update service and other network parameters are configured. A similar sequence would be completed for other connection technologies. - When the user update application attempts to make the desired
connection 62, the update service computer launches aservice update application 64. A two-way communications path 66 is set up between the service update application on the update service computer and the user update application on the user computer. The service update application on the update service computer then requests that the user update application on the user computer conduct an automatic inventory of all computer software installed 68 on the user computer. - In the illustrated system, this inventory is done automatically (i.e., without input from the user), and is completed by assigning the inventory task to a Window's 95 operating system process thread on the user computer. The operating system thread completes the task in the “background” while the user is performing other activities in the “foreground” (e.g., choosing options from the user update application). Background and foreground processes refer to a number of operation system processes and process threads which are run for some specified time interval by the operating system. Threads are well known in the art and are used in other operating systems such as Windows NT by Microsoft, and OS/2 by IBM. However, other operating system techniques could also be used to accomplish the inventory on the user computer.
- During the inventory, data is collected about all computer software installed on the user computer. Data such as the software title, date, version, file size, file checksum, directory location on the user computer, etc. are collected. After the inventory is complete, the user update application sends70 the inventory data from the user computer to the service update application on the update service computer. The service update application compares the user inventory data from the user computer to database entries in the computer software database to automatically analyze the computer software stored on the
user computer 72. The database connected to the update service computer has entries which contain information about available computer software. The database entries also identify and describe, for example, components of the computer software, including new computer software, patches, fixes, new help files, wizards, inference engines, other operating system components, updates as well as enhancements and new features of existing computer software. The database entries describing new computer software may also include entries describing brand new computer software (i.e. computer software that is newly created, and not previously existing). - Any computer software installed on the user computer which is listed in the database on the update service computer (e.g. out-of-date and/or requires a maintenance update, etc.) is flagged as available74. The user computer may also contain computer software that is not known by the update service. If the user computer contains computer software which is unknown to the update service computer, this computer software is marked as unknown by the update service computer. After the service update application completes the analysis of user computer software, a summary report is sent back to the user computer from the
update service computer 76. - In the illustrated system, the user can choose from several update service options. One option may be to check for maintenance updates for all computer software installed on the user computer that is known by the update service. A second option may be to check only specific computer software, or a specific group of computer software stored on the user computer for maintenance updates. For example, if the user wanted to check and see if there were any maintenance updates for a particular word processing program, option two would be selected. A third option may be to check whether there are any new or enhanced versions of computer software available from the update service. A fourth option may be to check only for new versions of specific computer software or groupings of computer software installed on the user computer. A fifth option may be to check the update service computer for information on new computer software (i.e. brand new products, not new or enhanced versions of existing products). A sixth option may be to check only if there are new help files, or other new support data available. This list of options is not intended to be all inclusive, as other options can be added to provide additional update service functionality. Based on user input, the user update application creates an output report78 (FIG. 4B) based on the option(s) chosen by the user and the summary report created by the service update application. The service update application can also create the output report directly, using default choices with no input at all from a user.
- If the output report is not empty80, a second optional report is created and displayed for the user providing a short description that summarizes the computer software available from the
update service 82. This second optional report is used by the user to determine what computer software on the user computer will be updated, if any. If the output report is empty, the computer software on the user computer is current and up-to-date 84, so no further action by either the update service computer or the user computer is required. - If the output report is not empty, then the user is asked to choose which available computer software shown in the output report, if any, will be downloaded and installed on the
user computer 86. No software is downloaded without the user's permission. If one or more computer software components (i.e. pieces or parts of the available computer software) are chosen by the user, the user update application is instructed to make backup copies of all of the computer software components on the user computer that will be affected, and create a log for the user documenting which computer software will be replaced 88. The backup copies and the log can be used by the user to restore the original version of the computer software components on the user computer if a need arises to do so. - The user has the option of choosing none, one, or a number of computer software components to download and install. If the list of available computer software to be downloaded and installed is large, the user also has the option of delaying the update to a
later time 90. If the user chooses an immediate download, the user is asked if the service update center should also install the computer software chosen by theuser 92 after downloading. - If immediate installation is chosen, the service update application on the update service computer downloads the available software to the user computer and installs the software in the proper place (e.g., in the proper directory or subdirectory) on the
user computer 94. A log is also created that records what computer software was downloaded to the user computer. If immediate installation is not chosen by the user, the user can save any update information, and continue with other tasks before deciding when to download any software chosen by the user. - If the user chooses a delayed update, the user provides
re-connect information 98 that allows the update service computer to re-connect to the user computer at a more convenient time (e.g. midnight, etc.) and complete the downloading and installation at that time. - As part of the re-connect information, the user may create a logon script using an automated macro language to provide the logon sequence to be used, and the directory to be used to download the software chosen by the user. The logon script and the time the user wishes to have the chosen software downloaded are then sent to the update service computer, and stored in an update service computer database. At the appropriate time chosen by the user, the update service will execute the logon script to re-connect to the user computer, and download the chosen software in the proper directory. An encryption scheme may also be used to permit safe transfer of the software to the user computer.
- The user also has the option of choosing a logon method different than the one they are currently connected to the update service center with. For example, if a user is connected to the update service center with a modem, the user may choose to have the chosen software downloaded at a later time using a network connection (e.g., Internet, etc.) However, the user's computer must be capable of accepting software with a different connection method.
- To allow a re-connection using a modem, the user would enter the phone number of the phone line attached to the user computer and send this information to the update service computer. The user would leave the user computer and modem on, and set the communications software in an answer mode to answer any incoming calls. For a network re-connection, the user would provide the update service computer the user network address and set the network software in a host mode to process any network connection attempts.
- The delayed downloading is illustrated in the flow chart in FIG. 5. To complete the delayed downloading, the update service computer launches a service update application that tries to re-connect100 to the user computer. The update service application will use the information provided at an earlier time by a user (e.g. modem logon information, network logon information, a logon script, etc.). If the connection is successful, a service update application on the update service computer asks the user computer to launch a user update application to re-establish a two-
way communications path 102. The re-connect to the user computer may be completed using a different access method than was used during the original user computer-update service computer connection. For example, the update service computer may request a digital satellite system re-connect to the user computer instead of the update service computer. A different access method is typically chosen to provide the most efficient and greatest bandwidth data transfer between the update service computer and the user computer. - After establishing a new two-way communications path, the user update application creates a
new directory 104 on the user computer, where the computer software is transferred and stored 106. A log is also created to document what available computer software was transferred to the user computer. Included with the downloaded computer software is an installation application that will be used later by the user to install the computer software. When the transfers are complete, the update service computer terminates the connection to theuser computer 108. An encryption scheme may also be used to permit safe automated transfer of the software to the user computer. - When the user is ready to install the computer software (e.g. the next morning if the computer software was transferred and installed in the middle of the night), the user simply launches the installation application supplied by update service computer.
- Leaving the user an installation application to execute is an added safety and security measure for both the user and the update service. The user computer is not updated unless the user personally starts the installation process. However, the user can also choose to have the computer software automatically installed by the update service when it re-connects to the user computer (but, user permission is always obtained and recorded first). In this case, the installation application is not downloaded to the user computer. However a log is created so a user can determine what available computer software was downloaded and installed.
- As was described above, the third, fourth, and fifth options allow a user to check for new versions of existing computer software, or new computer software available from the update service. If a new version of existing computer software, or new computer software is available, the user is asked if they wish to purchase the computer software. If so, the appropriate fee is requested from the user. The user can pay the fee electronically by transmitting credit card information, debit card information, billing account information, etc. to the update service computer from the user computer. Digital signatures, secure transaction technology, or an encryption scheme may also be used to collect payment information from the user. Once the fee information is collected by the update service computer and is verified, the user can choose between immediate or delayed downloading of the new, or new version of the computer software following steps (88-98) (FIG. 4B) described above.
- Since new versions of computer software are typically very large, the user will be informed that a delayed installation is probably most efficient for the user. If a delayed installation of a new product is chosen, the update service computer will then re-connect to the user computer at a later time and download the new version of the computer software as was shown in FIG. 5. In the illustrated embodiment, the update service uses a digital satellite service link, or some other higher bandwidth connection to transfer the computer software to the user computer whenever possible.
- If the user chooses not to pay for a new version of computer software when the update service is called, additional data from which the user can obtain more information on the new computer software is displayed. For example, the information may contain a summary of the features of the new computer software and the information may also contain a list of retail outlets close to the user where the user may then purchase a new version of computer software on storage media if desired. Some users may prefer to obtain the computer software on storage media and call the update service to obtain up-to-date versions of the computer software.
- In another embodiment of the present technologies, software updates are determined for network-related software for computer networks like the Internet. The Internet is a world-wide network of cooperating computer networks. Connected to the Internet are thousands of individual computers each with a variety of application programs.
- From a user's point of view, access to the Internet and its services typically are accomplished by invoking network application programs (e.g., Internet browsers). The network application programs act as an interface between a user and the Internet. The application programs are typically “client” applications that accept commands from the user and obtain Internet information and services by sending requests to “server” applications on another computer at some other location on the Internet.
- There are many network browsers known in the art such as the Internet Explorer by Microsoft Corporation of Redmond, Wash., Netscape Navigator by Netscape Communications of Mountain View, Calif., and Mosaic by the National Center for Supercomputer Applications (NCSA) of Champaign-Urbana, Ill.
- These network browsers send network requests via the File Transfer Protocol (FTP), Simple Mail Transfer Protocol (SMTP), Hyper Text Transfer Protocol (HTTP), Gopher, etc. which are used to exchange data with a computer network like the Internet. FTP is used to move files from one computer to another. FTP operates independently of where the computers are located, how they are connected, or even whether they are using the same operating system. Provided both computers can “talk” FTP and have access to a mutually common network, FTP can be used to transfer files.
- Gopher allows an application to browse Internet resources using menus. The Gopher menus allow browsing of Internet resources regardless of their type. A Gopher user need not specify formal Internet details (e.g., domain names, IP addresses, etc.) to find desired information.
- HTTP is a protocol used to access data on the World Wide Web. The World Wide Web is an information service on the Internet containing documents created in the Hyper Text Markup Language (HTML). HTML allows “links” to other documents, which may found on other Internet host computers. The HTML document links may use HTTP, FTP, Gopher, or other Internet application protocols, to retrieve the remote data pointed to by the link.
- As is shown in FIG. 6, which is an integrated illustration of alternative conventional ways in which a client computer may communicate with a network, a client networking application program (e.g., an network browser)110 residing on a
client computer 112 which is a stand alone computer or is a computer connected to a local area network (LAN) 114. Clientnetworking application program 110 communicates with (e.g., makes a data request of) aserver application 116 on aremote server computer 118 connected to a remote computer network (e.g., the Internet) 120. The communications can be adirect connection 122, or thecommunications 124 can be achieved using a pair ofmodems 126 or some other telecommunications device (e.g., an ISDN device) (not shown in FIG. 6). Hereinafter the clientnetworking application program 110 will be referred to as a “network browser”. - In the rapidly changing Internet environment, network browsers are continually enhanced to provide new and additional features. As a result, when a user contacts a network browser service (e.g., the Internet or a World Wide Web site operated by the network browser developer or a service provider operating on behalf of the developer), a user's network browser can be checked, and the user alerted to the availability of a new or enhanced version of the network browser. The technologies are described with reference to features and utilities included in the Windows 95 operating system of Microsoft Corporation. It will be appreciated, however, that these features and the functions of the utilities could be performed by other operating systems or applications.
- In a preferred embodiment of the present technologies, information about a network browser is stored at a client computer in an operating system registry. The operating system registry, as is known in the art, is a hierarchical database of keys and values that stores information describing a computer system's hardware, user preferences, available application programs, and other configuration data. A preferred embodiment of the present technologies uses the Windows 95 operating system registry to store information about the available network browsers and other available software. However, other registering techniques and other operating systems can also be used.
- For example, the Windows 95 operating system registry may contain the following entry:
- SW/
- MSIE
- TS=04/15/96 12:32:33
- VER=2.0
- where “/SW” is a software entry in the registry, “MSIE” is the name of the network browser,(e.g., Microsoft Internet Explorer), “TS” is the time stamp signifying when this version of the network browser was installed on the
client computer 112, (e.g., Apr. 15, 1996 at 12:32:33 pm) and “VER” is the VERsion of the network browser (e.g., 2.0). However, other operating system registry formats could also be used. - When the user contacts a network service with a network browser, the server application116 (with functionality similar to the
service update application 48 of FIG. 3) determines the type of network browser being used, and then reads the operating system registry on theclient computer 112 to determine the installation date and version of the network browser being used as was described above and illustrated in FIGS. 4A-4B. - If a new or enhanced version of the network browser is available, the user is asked whether he wishes to download it from the
server computer 118 to theclient computer 112. If the user answers in the affirmative, the new or enhanced version of the network browser is downloaded to theuser client computer 112 by theremote server application 116 on theserver computer 118 over thecomputer network 120. The same method is used for other network-related software and for other non-networking software as was discussed above. The user can also choose a delayed request as was described above. - In addition, an HTML document requested by the user can contain an HTML reference to request a specific version of a network browser or some other application software. The HTML reference preferably appears as a conventional HTML reference or link that is included; for example, in a description of the specific version of the network browser. For example, a reference to a network browser in an HTML document may be:
- <FETCH TS=“04/15/96” DESC=“Microsoft Internet Explorer Ver. 2.0” SRC=“http://www.microsoft.com/ie/MSIE20.exe”>
- where FETCH indicates an HTML software download command, TS=“04/15/96” is the Time Stamp for the requested software, DESC=“Microsoft Internet Explorer Ver. 2.0” is a text DESCription of the requested software, and SRC=“http://www.microsoft.com/ie/MSIE20.exe” is the Internet (or intranet or other network) location of the requested software. This type of HTML reference can also be used to receive software viewers, or other software applications that are used within HTML documents.
- In a preferred embodiment of the present technologies, if the user desires to obtain a new or enhanced version of software (e.g., the network browser) or an HTML FETCH reference is made, the software is sent using a Secure Software Distribution (SSD) process. However, a non-secure software distribution process could also be used. The Secure Software Distribution process uses a collection of software applications that enable a
server application 116 to distribute software to users in a high-quality, reliable, and secure manner. - Distributing software over public channels like the Internet (or public intranet channels) exposes the software to accidental or intentional corruption or attack (e.g., viruses, trojan horses, etc.). By using a SSD process, new versions of software (e.g., a new network browser requested by an HTML Fetch request) can be verified as being secure by the
server application 116, sent across a public network channel (e.g., the Internet), and then verified again by theclient application 110. A SSD process is available as an option from a network browser (e.g., the Microsoft Internet Explorer) and is described below in greater detail. - In a preferred embodiment of the present technologies, SSD is used to distribute a self-extracting archive of files to a
client application 110. The self-extracting archive of files will contain a new or enhanced version of a network browser software received by an HTML FETCH command or other software request. When this archive is executed, it extracts all of the included files, and then executes one of those files (e.g., setup.exe) to complete the installation automatically (i.e. without further user input). The flowchart in FIG. 7 shows amethod 128 of creating a secure, self-extracting archive of files using an SSD process. - When a user makes a request, either explicitly or by a HTML Fetch reference, for software (e.g., a new or enhanced version of a network browser or other software), the
server application 116 on theserver computer 118 creates a file of directive commands 130. The file of directive commands is typically stored in a Media Directive File (*.MDF) format. However, other file formats could also be used. The file of directive commands or directive file is used to create a Cabinet file and to designate an installation program to run to install the requested software. A cabinet file (*.CAB) is a grouping of files that are commonly conceptualized as being stored in an “electronic filing cabinet.” Cabinet files are known to those in the art. For example, to create the cabinet file, the directive file may contain the following directives: - .Set Cabinet=on
- .Set Compression=on
- bin\msie20.exe
- bin\msie20.hlp
- bin\msie20.dll
- . . .
- where the directive “.Set Cabinet=on” is used to indicate creation of a cabinet file, and the directive “.Set Compression=on” is used to indicate the files in the cabinet file are to be compressed. In a preferred embodiment of the present technologies, the compression scheme used is a loseless data compression scheme called “LZ77,” which is a variety of the lossless Lempel and Ziv compression scheme known in the art. However, other compression schemes can also be used. Compressing files in the self-extracting archive makes the self-extracting archive smaller in size and thus, easier to transmit to a client application.
- As an example, the file “bin\MSIE20.exe” is an executable (*.EXE) version of the Microsoft Internet Explorer version 2.0 from the “bin\” directory, the file “MSIE20.hlp” is a help file for the Internet Explorer version 2.0, and the file “MSIE20.dll” is a Dynamic Link Library for the Internet Explorer version 2.0. Dynamic Link Library (DLL) files provide reentrant function libraries that applications link to and call as regular function calls. DLLs are known and understood by those skilled in the art. More or fewer directives files, and types of files, could also be used for the cabinet file.
- A set of directives in the directive file is also used to mark an installation program to install the software contained in the cabinet file. In a preferred embodiment of the present technologies, the directive file may include a switch that can be set to run the installation program automatically (i.e., without further user input). For example, the following lines may be included in the directive file for an installation program:
- .Set Cabinet=off
- .Set Compress=off
- .Set InfAtt=off
- bin\setup.exe
- bin\setup.inf
- . . .
- where the directive “.Set Cabinet=off” is used leave the installation program outside a cabinet file, the directive “.Set Compression=off” is used to suppress compression of the installation program, and the directive “.Set InfAtt=off” sets the read file attributes for the installation program. (e.g., turns off read-only mode, etc.). In this example, the “bin\setup.exe” file is the chosen installation program, and the “bin\setup.inf” is an information file (*.INF) for the installation program. Both setup files are from the “\bin” directory. More or fewer directives and files could also be used for the installation program. In an alternative embodiment of the present technologies, the installation program could also be compressed and placed in a cabinet file.
- Other directives (e.g., file directives) are also typically added to the directive file. For example, the following lines may be included in the directive file:
- .Set CabinetNameTemplate=IE20.*
- .Set DiskDirectoryTemplate=IE20*
- . . .
- where the directive “.Set CabinetNameTemplate=IE20.*” sets the cabinet name template (e.g., IE20.exe, IE20.dll), and the directive “.Set DiskDirectoryTemplate=IE20*” sets the disk directory template (e.g., \IE20). More or fewer directives could also be included. An exemplary layout of a directive file is shown below.
- ;Example cabinet file
- ;file directives
- .Set CabinetNameTemplate=IE20.*
- .Set DiskDirectoryTemplate=IE20*
- . . .
- ;Installation program
- .Set Cabinet=off
- .Set Compress=off
- .Set InfAtt=off
- bin\setup.exe
- bin\setup.inf
- . . .
- ;cabinet file
- .Set Cabinet=off
- .Set Compress=off
- .Set InfAtt=off
- bin\setup.exe
- bin\setup.inf
- . . .
- ;*** <end>
- where the lines beginning with semi-colons “;” represent comments in the directive file. File directives are typically placed at the top of the directive file, then the cabinet file information and related directives, and then the installation file information and related directives. However, other directive file layouts could also be used.
- The cabinet file just described is created with a disk layout and compression application called Diamond by Microsoft. However, other tools could also be used to build the cabinet file. To create a cabinet file from the exemplary directive file shown above, the
server application 116 issues the following command: - diamond /f file.ddf
- to build a cabinet file (*.CAB) from the
directive file 132. Directive files used with the Diamond disk layout and compression tool are typically designated as Diamond Disk Format (*.DDF) files instead of Media Directive File (*.MDF) as was described earlier. DDF format is similar to MDF format, but differs by providing the ability to create self-extracting, executable, secure distribution files containing software. However, other format designations could also be used. The Diamond Disk Compression and Layout application is summarized below. - diamond /f source13 file [destination_file] [/RUN] [/INF=YES|NO]
diamond/f source_file [destination_file] [/RUN] [/INF= YES | NO] Switches: \f source_file Is the name of the source directive file(e.g.,*.DDF) and may include a relative or absolute path specification. [/RUN] Is an optional switch to automatically run the installation program after extraction. [/INF= YES | NO] Is an optional switch to include an information file with the installation program and has the values of YES or NO. Parameters: [destination_file] Is an optional parameter to store a name in the cabinet file, if “.Set Cabinet=on,” or the name of the destination file if “.Set Cabinet=off.” - After it is created, the cabinet file is combined with a self-extracting
application program 134 called “WEXTRACT.EXE” to create a self-extracting executable archive file (e.g., dist.exe). This combination is the self-extracting archive of software, and hereinafter will be referred to as a self-extracting executable distribution file. The combining of the cabinet file and WEXTRACT Program is performed by a Windows 95 utility application program called “COMBINE.EXE.” However, other self-extracting and combination application programs could also be used. - The COMBINE application program combines the cabinet file with the WEXTRACT program to create a self-extracting, executable distribution file. The cabinet file is attached to the WEXTRACT program as a user defined resource called “CABINET.” User defined resources are known to those skilled in the art. The COMBINE application computes an installation table of how many disk clusters will be needed to extract and store the files included in the cabinet file for each cluster size that is designated by file directives in the *.DDF or *.MDF directive files. The installation table is placed in the executable distribution file (e.g., dist.exe) for use by the WEXTRACT program at extraction time. In addition, the server application may specify an additional amount of user space that is required during the installation process. The user space is specified by a user from the network browser when the desired software is selected. This user specified space is also stored in the installation table. The WEXTRACT program uses the information in the installation table to prevent extraction until enough free space is available on
client computer 112 to complete the installation. If enough free space is not available, the user is asked to delete existing files to free up space before the installation takes place. - COMBINE also allows other information such as graphical images and text to be added to the self-extracting executable distribution file. This information is typically shown while the self-extractor is running and allows customization of the installation application. The information may include a summary of features in the application program included in the distribution file, customization options selectable by the user, and reminders regarding registration and other protection for the program. Customization of the installation application increases visual appeal for the user. In addition, the cabinet file added to the self-extracting distribution file can be a cabinet file in a linked set of cabinet files. The WEXTRACT application will follow any cabinet links to subsequent cabinets. This allows distribution of large software packages in smaller pieces (e.g., by disk sizing) while still having a single executable distribution file that is relatively simple in format. The COMBINE application is summarized below.
- combine [/S extrasize] extractor cabinet_file destination
combine [/S extrasize] extractor cabinet_file destination Switches: [/S extrasize] Set the number of extra 32k clusters that this application will need for installation. If no/S parameter is provided it will default to zero. This parameter can be retrieved later by (MSSFVerify( )) and passed to the self-extractor (e.g., WEXTRACT) to prevent it from running until enough disk space is available. Parameters: extractor The name of the extractor with which the cabinet file will be attached (e.g., WEXTRACT). cabinet_file The name of cabinet file to be made self-extracting (e.g., file.CAB). destination The name of the resulting self-extracting executable distribution file (e.g., dist.exe). - The WEXTRACT program is preferably a Windows 95 based application for extracting cabinet files. WEXTRACT will extract the cabinet file that is attached to the WEXTRACT executable by the COMBINE application. However, other extraction programs could also be used. Any disk space information that was added to the installation table is included in the self-extracting executable distribution file by the COMBINE program will be used to prevent the extraction and installation from running until the
client computer 112 disk space needs are met. Any text descriptions or graphics images that were added to make the installation interface more user friendly and informative will also be extracted by WEXTRACT. The WEXTRACT application is summarized below.wextract [cabinet_file] Parameters: cabinet_file An optional parameter for the cabinet file to extract. If no cabinet_file is specified, then the WEXTRACT application attempts to retrieve the cabinet from itself as a user-defined resources called “CABINET”. (see COMBINE above). - After the cabinet file is combined with WEXTRACT, the resulting self-extracting, executable distribution file (e.g., dist.exe) is digitally signed with a digital signature to create a signed, self-extracting
executable distribution file 136. The executable distribution file with the digital signature is now a SECure (*.SEC) executable distribution file. The digital signature is preferably added with a Windows 95 utility application program called “SIGNMS.EXE”. However, other digital signature application programs can also be used. - The SIGNMS application appends a digital signature to the self-extracting executable distribution file (or a copy of the self-extracting executable distribution file if a destination argument is provided as will be explained below). Self-extracting executable destination files that are copied and digitally signed have the original self-extracting executable destination file name and a *.SEC suffix. Once the *.SEC file is verified against its digital signature, the self-extracting executable distribution file is renamed to its original name and the .SEC suffix is truncated.
- The digital signature is created with a Secure Hashing Algorithm (SHA) hash process. The SHA hash process returns a value that is encrypted using a private 1024-bit RSA encryption key. The SHA hash process is a one-way process (i.e., cannot be un-hashed) that is used to compute a secure hash value for the self-extracting, executable distribution file. SHA hashing and RSA private key encryption are known in the art.
- The RSA encryption is completed with a 1024-bit private key known only to the software distributor. This helps reduce the risk of accidental or intentional corruption or tampering since only the software distributor knows the value for the private key used. The distributed software is decrypted using a published public RSA decryption key.
- As is shown in FIG. 8, the
digital signature 138 is added to the bottom of the self-extractingexecutable distribution file 140 after the last data block 142 of the executable (*.EXE) information (i.e., the extractor program and the cabinet file). Since most executable (*.EXE) files have aheader 144 that indicates the number of data blocks of executable information, adding thedigital signature 138 after the last data block ofexecutable information 142 prevents complaints or problems with most existing tools (e.g., VIRUS checkers) and operating systems which process executable information. - SIGNMS will also detect a file that is already signed and prevent the user from adding a second digital signature. An “/F” switch overrides this detection and will allow SIGNMS to replace the digital signature with a new signature if the file is already signed. Replacing a signature is useful if the private encryption key becomes compromised at some time, and there is a need to introduce a new private key to re-sign all files previously signed. The SIGNMS application is summarized below.
- signms [/F] source [destination]
signms [/F] source [destination] Switches: [/F] An optional switch to replace the digital signature if the file is already signed with a digital signature. Parameters: source The name of the file to be signed. [destination] An optional name for the signed output file. If the destination is not provided then the signature will be added onto the source file. - Returning to FIG. 7, the secure, self-extracting executable distribution file (e.g., file.SEC) is transmitted146 from the
server computer 118 over a computer network (e.g., the Internet) to theclient computer 112 and passed to thenetwork browser 110. However, as was described above, the user can delay transmission of the requested software until a later more convenient time (see FIG. 5). - When the network browser receives the secure, self-extracting executable distribution file, the digital signature is verified148. The digital signature is verified with a digital signature verification function called “MSSFVerify( )”. The MSSFVerify( ) function is stored in a Windows library called MSSFCHEK.LIB.
- A call to MSSFVerify( ) by the
network browser 110 decrypts with a public RSA decryption key, the encrypted original SHA hash value received in the self-extracting distribution file. One or more public RSA decryption keys are typically published by the software distributor The private key is not published. The SHA hashing process is then used to compute a second SHA hash value. The second SHA hash value is compared with the original SHA value sent in the digital signature. - If the second (i.e., computed) SHA hash value and the original SHA hash value are identical150, the self-extracting executable distribution file is deemed secure and free from accidental or intentional corruption. The self-extracting executable distribution file is then executed to install the software requested by the
user 152. If the second SHA hash value and the original hash value are not identical, then the self-extracting executable distribution file is deemed to have been corrupted or altered and insecure, and thus is rejected and deleted 152. - The MSSFVerify( ) function operates in two modes; a normal mode and verify only mode. The normal mode removes the digital signature, verifies it, and renames the self-extracting executable distribution file if the file was signed by SIGNMS using the destination file argument. The verify only mode verifies the digital signature without removing the digital signature or renaming the file. If the file was signed in-situ, then both modes are the same. The MSSFVerify( ) function is summarized below.
MSSFVerify(PMSSFVY *pmssf); Parameters: *pmssf A pointer to a MSSFVY data structure containing the name of the file to be checked, a buffer for the resulting file name, flags, error codes, and a function to be called at intervals for status updates and to provide the ability to cancel the operation. Return Value: Returns zero on success. On failure, it returns a non-zero value indicating the reason for the failure. - If the digital signature is verified as correct, the extractor in the self-extracting executable distribution file (e.g., WEXTRACT) extracts and decompresses (if compression was used) all the files in the cabinet file, and automatically starts the installation program (if any) that was specified (e.g., setup.exe /RUN) when the cabinet file was created. Alternatively, the user can also be prompted by the network browser to start the installation program, or start the installation program manually at a later time.
- The installation program installs the software in the appropriate directories on the client computer. In addition, the installation program is typically configured to clean-up, update, or delete any unnecessary or out-of-date files after installation.
- Software sent from a server application on a server computer or from an update service in a secure, self-extracting, executable distribution file gives the user confidence that the requested software will not damage or cause problems on the user's computer. Thus, the user is more likely to accept electronic copies of new or enhanced versions of computer software. The software distributor, by signing the software with a digital signature encrypted with a private RSA encryption key, also has a high degree of confidence that any software sent over a public computer network (Internet or intranet) will arrive without being accidentally or intentionally corrupted.
- With automatic downloading and installation of computer software from the update or network service provider service, the user is relieved from the burden of obtaining computer software (e.g., on storage media, by downloading from a bulletin board or on-line service, etc.), and installing the computer software on the user or client network computer. Once a user purchases computer software, periodic accessing of the update service or a network service provider will keep the user current and up-to-date.
- It should be understood that the programs, processes, or methods described herein are not related or limited to any particular type of computer apparatus, unless indicated otherwise. Various types of general purpose or specialized computer apparatus may be used with or perform operations in accordance with the teachings described herein.
- In view of the wide variety of embodiments to which the principles of the invention can be applied, it should be understood that the illustrated embodiments are exemplary only, and should not be taken as limiting the scope of our invention. Rather, we claim as our invention all such embodiments as come within the scope and spirit of the following claims and equivalents thereto.
Claims (28)
1. In a client computer in communication with a server computer over a network, a method of installing software at the client computer from the server computer over the network, the method comprising:
responsive to a request generated at the client computer for installing the software, retrieving by the client computer an executable file from the server computer, the executable file comprising the software and an installation program for installing the software;
further responsive to the request, executing the executable file at the client computer; and
responsive to the execution of the executable file at the client computer, automatically starting the installation program to install the software on the client computer.
2. The method of claim 1 wherein the request at the client computer comprises an indication by a user at the client computer that the software is desired.
3. The method of claim 1 wherein the request at the client computer comprises an indication by a user at the client computer that the software is to be downloaded.
4. The method of claim 1 wherein the installation program comprises an installation utility.
5. The method of claim 4 wherein the installation program further comprises an installation information file.
6. The method of claim 1 wherein the executable file further comprises a self-extractor.
7. The method of claim 6 further comprising:
further responsive to the request, invoking the self-extractor to extract the software and the installation program from the file.
8. The method of claim 7 wherein the executable file further comprises a digital signature, the method further comprising:
further responsive to the request, verifying the digital signature before installing the software.
9. The method of claim 1 wherein the executable file further comprises a digital signature.
10. The method of claim 9 further comprising:
further responsive to the request, verifying the digital signature before installing the software.
11. The method of claim 1 wherein the event at the client computer comprises a selection by a user at the client computer via an Internet browser of software to be downloaded and installed.
12. The method of claim 1 wherein the starting is initiated without further user input.
13. A computer-readable medium having computer-executable instructions for performing the following in a client computer in communication with a server computer over a network to install software at the client computer from the server computer over the network:
responsive to a request generated at the client computer for installing the software, retrieving by the client computer an executable file from the server computer, the executable file comprising the software and an installation program for installing the software;
further responsive to the request, executing the executable file at the client computer; and
responsive to the execution of the executable file at the client computer, automatically starting the installation program to install the software on the client computer.
14. In a client computer in communication with a server computer over a network, a method of installing software at the client computer from the server computer over the network, the method comprising:
responsive to a request generated at the client computer for installing the software, retrieving by the client computer an executable file from the server computer, the executable file comprising the software and an installation program for installing the software;
further responsive to the request, executing the executable file at the client computer; and
responsive to the execution of the executable file at the client computer, starting the installation program to install the software on the client computer without further user input.
15. In a client computer in communication with a server computer via a network, a method of installing software at the client computer, the method comprising:
responsive to an event detected at the client computer, retrieving to the client computer an executable file from the server computer, wherein the executable file comprises the software and an installation program for installing the software;
further responsive to the event detected at the client computer, opening the executable file at the client computer; and
responsive to said opening the executable file, automatically starting the installation program to install the software on the client computer.
16. The method of claim 15 wherein the event at the client computer comprises an indication by a user at the client computer that the software is to be downloaded.
17. The method of claim 15 wherein the event at the client computer comprises a selection by a user at the client computer out of a list of software available for download.
18. The method of claim 15 wherein the event at the client computer comprises a selection by a user via a network browser.
19. The method of claim 15 further comprising:
responsive to said opening the executable file, automatically extracting the installation program before executing the installation program.
20. A method for automatically installing software at a computer, the method comprising:
responsive to a user request at the computer indicating the software is desired, retrieving an executable file to the computer, wherein the executable file comprises the desired software and an installation utility for installing the software; and
after retrieving the executable file to the computer, automatically starting the installation utility to install the desired software.
21. The method of claim 20 wherein the executable file further comprises an extraction utility operable to extract the desired software from the executable file, the method further comprising:
after retrieving the executable file to the computer, automatically invoking the extraction utility to extract the desired software from the executable file.
22. The method of claim 20 wherein the executable file further comprises an extraction utility operable to extract the installation utility from the executable file, the method further comprising:
after retrieving the executable file to the computer, automatically invoking the extraction utility to extract the installation utility from the executable file.
23. In a receiving computer in communication with a sending computer over a network, a method of installing software at the receiving computer from the sending computer over the network, the method comprising:
responsive to a request generated at the receiving computer for installing the software, retrieving by the receiving computer an executable file from the sending computer, the executable file comprising the software, an extractor, and an installer for installing the software;
further responsive to the request, automatically invoking the extractor to extract the installer and the software from the executable file at the receiving computer; and
further responsive to the request, automatically starting the extracted installer to install the extracted software on the receiving computer.
24. The method of claim 23 wherein the installer comprises an installation program.
25. The method of claim 23 wherein the extractor comprises an extracting program.
26. The method of claim 23 wherein the starting is performed without further user input.
27. In a computer, a method for installing software on the computer, the method comprising:
responsive to a request generated at the computer, retrieving to the computer a signed self-extracting distribution file, wherein the signed self-extracting distribution file comprises the software, a digital signature, an extractor, and an installer;
further responsive to the request generated at the computer, automatically verifying the digital signature;
further responsive to the request generated at the computer, automatically executing the extractor to extract the installer and the software form the self-extracting distribution file; and
further responsive to the request generated at the computer, automatically invoking the extracted installer to install the extracted software on the computer.
28. In a client computer in communication with a remote computer over a network, a software system for installing software on the client computer, the system comprising:
means for accepting an indication from a user that selected software is to be installed on the client computer;
responsive to the means for accepting, means for downloading a software distribution file to the client computer, wherein the software distribution file comprises the selected software and an installation program for installing the selected software, wherein the software distribution file further comprises means for initiating the installation program upon activation of the software distribution file; and
means for activating the distribution file to install the selected software.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/427,189 US20030195949A1 (en) | 1996-04-18 | 2003-04-30 | Methods and systems for obtaining computer software via a network |
US10/943,349 US20050044544A1 (en) | 1996-04-18 | 2004-09-17 | Methods and systems for obtaining computer software via a network |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/634,390 US6049671A (en) | 1996-04-18 | 1996-04-18 | Method for identifying and obtaining computer software from a network computer |
US09/169,618 US6256668B1 (en) | 1996-04-18 | 1998-10-09 | Method for identifying and obtaining computer software from a network computer using a tag |
US09/898,702 US7149789B2 (en) | 1996-04-18 | 2001-07-02 | Distributing software via distribution files |
US10/427,189 US20030195949A1 (en) | 1996-04-18 | 2003-04-30 | Methods and systems for obtaining computer software via a network |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/898,702 Division US7149789B2 (en) | 1996-04-18 | 2001-07-02 | Distributing software via distribution files |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/943,349 Continuation US20050044544A1 (en) | 1996-04-18 | 2004-09-17 | Methods and systems for obtaining computer software via a network |
Publications (1)
Publication Number | Publication Date |
---|---|
US20030195949A1 true US20030195949A1 (en) | 2003-10-16 |
Family
ID=24543580
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/634,390 Expired - Lifetime US6049671A (en) | 1996-04-18 | 1996-04-18 | Method for identifying and obtaining computer software from a network computer |
US09/169,618 Expired - Lifetime US6256668B1 (en) | 1996-04-18 | 1998-10-09 | Method for identifying and obtaining computer software from a network computer using a tag |
US09/898,702 Expired - Lifetime US7149789B2 (en) | 1996-04-18 | 2001-07-02 | Distributing software via distribution files |
US10/427,189 Abandoned US20030195949A1 (en) | 1996-04-18 | 2003-04-30 | Methods and systems for obtaining computer software via a network |
US10/943,349 Abandoned US20050044544A1 (en) | 1996-04-18 | 2004-09-17 | Methods and systems for obtaining computer software via a network |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/634,390 Expired - Lifetime US6049671A (en) | 1996-04-18 | 1996-04-18 | Method for identifying and obtaining computer software from a network computer |
US09/169,618 Expired - Lifetime US6256668B1 (en) | 1996-04-18 | 1998-10-09 | Method for identifying and obtaining computer software from a network computer using a tag |
US09/898,702 Expired - Lifetime US7149789B2 (en) | 1996-04-18 | 2001-07-02 | Distributing software via distribution files |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/943,349 Abandoned US20050044544A1 (en) | 1996-04-18 | 2004-09-17 | Methods and systems for obtaining computer software via a network |
Country Status (1)
Country | Link |
---|---|
US (5) | US6049671A (en) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020078222A1 (en) * | 2000-12-14 | 2002-06-20 | Compas Jeffrey C. | Updating information in network devices |
US20020112232A1 (en) * | 2001-02-15 | 2002-08-15 | Ream James A. | System and process for building host computers |
US20040031030A1 (en) * | 2000-05-20 | 2004-02-12 | Equipe Communications Corporation | Signatures for facilitating hot upgrades of modular software components |
US20040122923A1 (en) * | 2002-12-19 | 2004-06-24 | Kamenetsky Mark L. | Systems and methods for improved multisite management of converged communication systems and computer systems |
US20040192260A1 (en) * | 2003-03-31 | 2004-09-30 | Seiko Epson Corporation | Data backup system and data backup method, wearable computer, mail transmission system, image-information transmission system, and data backup program |
US20050027848A1 (en) * | 2002-12-19 | 2005-02-03 | Kamenetsky Mark L. | Systems and methods for improved multisite management and reporting of converged communication systems and computer systems |
US20050044544A1 (en) * | 1996-04-18 | 2005-02-24 | Microsoft Corporation | Methods and systems for obtaining computer software via a network |
US20060015864A1 (en) * | 2004-07-15 | 2006-01-19 | Lg Electronics Inc. | System and method for downloading ROM image to wireless terminal |
US20060026304A1 (en) * | 2004-05-04 | 2006-02-02 | Price Robert M | System and method for updating software in electronic devices |
US20070169109A1 (en) * | 2003-11-21 | 2007-07-19 | Peter Neswal | Method for the installation and configuration of software components |
US20070283346A1 (en) * | 2006-04-21 | 2007-12-06 | David Delgrosso | System and method for remote management and facilitating installation and registration of software |
US20080235680A1 (en) * | 2007-03-21 | 2008-09-25 | Yahoo! Inc. | In-Page Installer |
US20090106764A1 (en) * | 2007-10-22 | 2009-04-23 | Microsoft Corporation | Support for globalization in test automation |
US20090119660A1 (en) * | 2007-11-07 | 2009-05-07 | International Business Machines Corporation | Micro installation process for software packaging and distribution |
US20090119215A1 (en) * | 2007-11-07 | 2009-05-07 | Microsoft Corporation | Secure e-payments |
US20090183219A1 (en) * | 2003-09-05 | 2009-07-16 | Stephen L Maynard | Technique for updating a resident application and associated parameters in a user terminal through a communications network |
US20100275029A1 (en) * | 2003-02-21 | 2010-10-28 | Research In Motion Limited | System and method of installing software applications on electronic devices |
US20120204167A1 (en) * | 2011-02-03 | 2012-08-09 | Nec Corporation | Software management system |
US8346897B2 (en) | 2008-02-25 | 2013-01-01 | Jon Jaroker | System and method for deploying and maintaining software applications |
US8644303B2 (en) | 1998-04-03 | 2014-02-04 | Rpx Corporation | Systems and methods for multiple mode voice and data communications using intelligently bridged TDM and packet buses |
US8675671B2 (en) | 1998-04-03 | 2014-03-18 | Rpx Corporation | Systems and methods for multiple mode voice and data communications using intelligently bridged TDM and packet buses and methods for performing telephony and data functions using the same |
US20140109079A1 (en) * | 1996-06-07 | 2014-04-17 | William Cheng | Software uninstallation system, method and computer program product |
US20140189084A1 (en) * | 2002-12-19 | 2014-07-03 | Mark L Kamenetsky | Systems and methods for improved multisite management and reporting of converged communication systems and computer systems |
US11157583B2 (en) * | 2018-09-14 | 2021-10-26 | International Business Machines Corporation | Software detection based on user accounts |
Families Citing this family (608)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10361802B1 (en) | 1999-02-01 | 2019-07-23 | Blanding Hovenweep, Llc | Adaptive pattern recognition based control system and method |
US6769009B1 (en) | 1994-05-31 | 2004-07-27 | Richard R. Reisman | Method and system for selecting a personalized set of information channels |
US5694546A (en) | 1994-05-31 | 1997-12-02 | Reisman; Richard R. | System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list |
US20120166807A1 (en) | 1996-08-12 | 2012-06-28 | Intertrust Technologies Corp. | Systems and Methods Using Cryptography to Protect Secure Computing Environments |
US6373573B1 (en) | 2000-03-13 | 2002-04-16 | Lj Laboratories L.L.C. | Apparatus for measuring optical characteristics of a substrate and pigments applied thereto |
US6307629B1 (en) | 1997-08-12 | 2001-10-23 | Lj Laboratories, L.L.C. | Apparatus and method for measuring optical characteristics of an object |
US6254385B1 (en) | 1997-01-02 | 2001-07-03 | Lj Laboratories, Llc | Apparatus and method for measuring optical characteristics of teeth |
DE19617976A1 (en) * | 1996-05-06 | 1997-11-13 | Philips Patentverwaltung | Communication system with means for exchanging software processes |
US6259442B1 (en) * | 1996-06-03 | 2001-07-10 | Webtv Networks, Inc. | Downloading software from a server to a client |
US6473099B1 (en) * | 1996-06-03 | 2002-10-29 | Webtv Networks, Inc. | Automatically upgrading software over a satellite link |
GB2318665B (en) * | 1996-10-28 | 2000-06-28 | Altera Corp | Work group computing for electronic design automation |
US9219755B2 (en) | 1996-11-08 | 2015-12-22 | Finjan, Inc. | Malicious mobile code runtime monitoring system and methods |
US7058822B2 (en) * | 2000-03-30 | 2006-06-06 | Finjan Software, Ltd. | Malicious mobile code runtime monitoring system and methods |
US8079086B1 (en) | 1997-11-06 | 2011-12-13 | Finjan, Inc. | Malicious mobile code runtime monitoring system and methods |
US6473788B1 (en) * | 1996-11-15 | 2002-10-29 | Canon Kabushiki Kaisha | Remote maintenance and servicing of a network peripheral device over the world wide web |
US6802061B1 (en) * | 1996-12-12 | 2004-10-05 | Microsoft Corporation | Automatic software downloading from a computer network |
US6347398B1 (en) * | 1996-12-12 | 2002-02-12 | Microsoft Corporation | Automatic software downloading from a computer network |
US20060195595A1 (en) * | 2003-12-19 | 2006-08-31 | Mendez Daniel J | System and method for globally and securely accessing unified information in a computer network |
US6381741B1 (en) * | 1998-05-18 | 2002-04-30 | Liberate Technologies | Secure data downloading, recovery and upgrading |
US6247065B1 (en) * | 1996-12-26 | 2001-06-12 | At&T Corp. | Messaging platform process |
US6301004B1 (en) | 2000-05-31 | 2001-10-09 | Lj Laboratories, L.L.C. | Apparatus and method for measuring optical characteristics of an object |
US6317742B1 (en) * | 1997-01-09 | 2001-11-13 | Sun Microsystems, Inc. | Method and apparatus for controlling software access to system resources |
US20050021477A1 (en) * | 1997-01-29 | 2005-01-27 | Ganapathy Krishnan | Method and system for securely incorporating electronic information into an online purchasing application |
US6049892C1 (en) * | 1997-02-24 | 2002-06-04 | Ethos Software Corp | Process and apparatus for downloading data from a server computer to a client computer |
US7149705B1 (en) * | 1997-02-28 | 2006-12-12 | Fujitsu Limited | Computer-related product user management and service system |
US6161135A (en) * | 1997-03-07 | 2000-12-12 | Unisys Corporation | Method and apparatus for software features synchronization between software systems |
US6311215B1 (en) * | 1997-03-25 | 2001-10-30 | Intel Corporation | System for dynamic determination of client communications capabilities |
US6501542B2 (en) | 1998-06-30 | 2002-12-31 | Lj Laboratories, Llc | Apparatus and method for measuring optical characteristics of an object |
FR2765702B1 (en) * | 1997-07-02 | 2001-07-06 | Bull Sa | INFORMATION PROCESSING SYSTEM ARCHITECTURE |
US6073172A (en) * | 1997-07-14 | 2000-06-06 | Freegate Corporation | Initializing and reconfiguring a secure network interface |
JPH11161451A (en) * | 1997-09-26 | 1999-06-18 | Hitachi Koki Co Ltd | Print system |
US6151708A (en) * | 1997-12-19 | 2000-11-21 | Microsoft Corporation | Determining program update availability via set intersection over a sub-optical pathway |
US6519763B1 (en) * | 1998-03-30 | 2003-02-11 | Compuware Corporation | Time management and task completion and prediction software |
US6735625B1 (en) | 1998-05-29 | 2004-05-11 | Cisco Technology, Inc. | System and method for automatically determining whether a product is compatible with a physical device in a network |
US20040117628A1 (en) * | 1998-06-04 | 2004-06-17 | Z4 Technologies, Inc. | Computer readable storage medium for enhancing license compliance of software/digital content including self-activating/self-authenticating software/digital content |
US20040117644A1 (en) * | 1998-06-04 | 2004-06-17 | Z4 Technologies, Inc. | Method for reducing unauthorized use of software/digital content including self-activating/self-authenticating software/digital content |
US20040225894A1 (en) * | 1998-06-04 | 2004-11-11 | Z4 Technologies, Inc. | Hardware based method for digital rights management including self activating/self authentication software |
US20040117663A1 (en) * | 1998-06-04 | 2004-06-17 | Z4 Technologies, Inc. | Method for authentication of digital content used or accessed with secondary devices to reduce unauthorized use or distribution |
US6044471A (en) | 1998-06-04 | 2000-03-28 | Z4 Technologies, Inc. | Method and apparatus for securing software to reduce unauthorized use |
US6799277B2 (en) | 1998-06-04 | 2004-09-28 | Z4 Technologies, Inc. | System and method for monitoring software |
US6986063B2 (en) * | 1998-06-04 | 2006-01-10 | Z4 Technologies, Inc. | Method for monitoring software using encryption including digital signatures/certificates |
US20040117631A1 (en) * | 1998-06-04 | 2004-06-17 | Z4 Technologies, Inc. | Method for digital rights management including user/publisher connectivity interface |
US20040117664A1 (en) * | 1998-06-04 | 2004-06-17 | Z4 Technologies, Inc. | Apparatus for establishing a connectivity platform for digital rights management |
US6381742B2 (en) * | 1998-06-19 | 2002-04-30 | Microsoft Corporation | Software package management |
US6573984B2 (en) | 1998-06-30 | 2003-06-03 | Lj Laboratories Llc | Apparatus and method for measuring optical characteristics of teeth |
US6249348B1 (en) * | 1998-11-23 | 2001-06-19 | Lj Laboratories, L.L.C. | Integrated spectrometer assembly and methods |
JP3828290B2 (en) * | 1998-07-24 | 2006-10-04 | 富士通株式会社 | Document management device and computer-readable recording medium recording program for causing computer to function as document management device |
US6952823B2 (en) * | 1998-09-01 | 2005-10-04 | Pkware, Inc. | Software patch generator using compression techniques |
US7197534B2 (en) | 1998-09-01 | 2007-03-27 | Big Fix, Inc. | Method and apparatus for inspecting the properties of a computer |
US6263362B1 (en) * | 1998-09-01 | 2001-07-17 | Bigfix, Inc. | Inspector for computed relevance messaging |
US7246150B1 (en) | 1998-09-01 | 2007-07-17 | Bigfix, Inc. | Advice provided for offering highly targeted advice without compromising individual privacy |
US8914507B2 (en) | 1998-09-01 | 2014-12-16 | International Business Machines Corporation | Advice provided for offering highly targeted advice without compromising individual privacy |
US7574693B1 (en) * | 1998-09-17 | 2009-08-11 | Koninklijke Philips Electronics N.V. | Internet-based service for updating a programmable control device |
US6553507B1 (en) * | 1998-09-30 | 2003-04-22 | Intel Corporation | Just-in-time software updates |
US6805634B1 (en) * | 1998-10-14 | 2004-10-19 | Igt | Method for downloading data to gaming devices |
US7107548B2 (en) | 1998-10-28 | 2006-09-12 | Yahoo! Inc. | Method of controlling an internet browser interface and a controllable browser interface |
US6324691B1 (en) * | 1998-11-12 | 2001-11-27 | Hewlett-Packard Company | Manufacture of software distribution media packages from components resident on a remote server source |
US6862635B1 (en) | 1998-11-13 | 2005-03-01 | Cray Inc. | Synchronization techniques in a multithreaded environment |
US6314471B1 (en) * | 1998-11-13 | 2001-11-06 | Cray Inc. | Techniques for an interrupt free operating system |
US6952827B1 (en) * | 1998-11-13 | 2005-10-04 | Cray Inc. | User program and operating system interface in a multithreaded environment |
US6480818B1 (en) | 1998-11-13 | 2002-11-12 | Cray Inc. | Debugging techniques in a multithreaded environment |
US7120862B1 (en) * | 1998-12-01 | 2006-10-10 | Lucent Technologies Inc. | Method and apparatus for persistent access to Web resources using variable time-stamps |
US6499109B1 (en) * | 1998-12-08 | 2002-12-24 | Networks Associates Technology, Inc. | Method and apparatus for securing software distributed over a network |
US6954279B2 (en) * | 1998-12-08 | 2005-10-11 | Canon Kabushiki Kaisha | Automated output of user guide |
US6266774B1 (en) | 1998-12-08 | 2001-07-24 | Mcafee.Com Corporation | Method and system for securing, managing or optimizing a personal computer |
US6430676B1 (en) | 1998-12-23 | 2002-08-06 | Cray Inc. | Method and system for calculating instruction lookahead |
US6665688B1 (en) * | 1998-12-23 | 2003-12-16 | Cray Inc. | Method and system for automatically regenerating data on-demand |
US6415433B1 (en) | 1998-12-23 | 2002-07-02 | Cray Inc. | Method and system for identifying locations to move portions of the computer program |
US6230313B1 (en) * | 1998-12-23 | 2001-05-08 | Cray Inc. | Parallelism performance analysis based on execution trace information |
US6353829B1 (en) | 1998-12-23 | 2002-03-05 | Cray Inc. | Method and system for memory allocation in a multiprocessing environment |
JP2000194539A (en) * | 1998-12-24 | 2000-07-14 | Nec Corp | Software installation system and method therefor |
US6321262B1 (en) * | 1999-02-04 | 2001-11-20 | Dell Usa, L.P. | System and method for identification and streamlined access to online services |
JP4228252B2 (en) * | 1999-02-05 | 2009-02-25 | ソニー株式会社 | Data setting method, data transmission system, and receiving terminal device |
US6594690B2 (en) * | 1999-02-24 | 2003-07-15 | Hewlett-Packard Development Company, L.P. | Network peripheral device driver installer |
US6434744B1 (en) * | 1999-03-03 | 2002-08-13 | Microsoft Corporation | System and method for patching an installed application program |
US6931381B1 (en) * | 1999-03-11 | 2005-08-16 | American Express Travel Related Services Company, Inc. | Methods and apparatus for authenticating the download of information onto a smart card |
US6986134B1 (en) * | 1999-03-16 | 2006-01-10 | Sun Microsystems, Inc. | Lightweight global distribution mechanism |
WO2000057621A1 (en) | 1999-03-19 | 2000-09-28 | Estara, Inc. | Public web phone system |
US7607572B2 (en) * | 1999-03-19 | 2009-10-27 | Bigfix, Inc. | Formalizing, diffusing, and enforcing policy advisories and monitoring policy compliance in the management of networks |
US6707811B2 (en) | 1999-03-19 | 2004-03-16 | Estara, Inc. | Internet telephony for ecommerce |
US7277919B1 (en) | 1999-03-19 | 2007-10-02 | Bigfix, Inc. | Relevance clause for computed relevance messaging |
US8479251B2 (en) * | 1999-03-31 | 2013-07-02 | Microsoft Corporation | System and method for synchronizing streaming content with enhancing content using pre-announced triggers |
US6718549B1 (en) | 1999-05-05 | 2004-04-06 | Microsoft Corporation | Methods for managing the distribution of client bits to client computers |
US7594166B1 (en) * | 1999-05-20 | 2009-09-22 | Microsoft Corporation | Dynamic web page behaviors |
US7062765B1 (en) * | 1999-05-25 | 2006-06-13 | Realnetworks, Inc. | System and method for updating information via a network |
US8266657B2 (en) | 2001-03-15 | 2012-09-11 | Sling Media Inc. | Method for effectively implementing a multi-room television system |
US6263503B1 (en) * | 1999-05-26 | 2001-07-17 | Neal Margulis | Method for effectively implementing a wireless television system |
US20020023057A1 (en) * | 1999-06-01 | 2002-02-21 | Goodwin Johnathan David | Web-enabled value bearing item printing |
US7149726B1 (en) * | 1999-06-01 | 2006-12-12 | Stamps.Com | Online value bearing item printing |
AU3712300A (en) | 1999-06-11 | 2001-01-02 | Liberate Technologies | Hierarchical open security information delegation and acquisition |
US6675382B1 (en) * | 1999-06-14 | 2004-01-06 | Sun Microsystems, Inc. | Software packaging and distribution system |
US6460023B1 (en) * | 1999-06-16 | 2002-10-01 | Pulse Entertainment, Inc. | Software authorization system and method |
US6578142B1 (en) * | 1999-06-18 | 2003-06-10 | Phoenix Technologies, Ltd. | Method and apparatus for automatically installing and configuring software on a computer |
US6629150B1 (en) * | 1999-06-18 | 2003-09-30 | Intel Corporation | Platform and method for creating and using a digital container |
AU5910800A (en) * | 1999-06-30 | 2001-01-31 | Accenture Llp | A system, method and article of manufacture for tracking software sale transactions of an internet-based retailer for reporting to a software publisher |
US6775828B2 (en) * | 1999-07-19 | 2004-08-10 | Microsoft Corporation | Delayed uploading of user registration data |
JP3916806B2 (en) * | 1999-07-26 | 2007-05-23 | 富士通株式会社 | Remote loading execution method, remote loading execution system, information processing apparatus, management apparatus, and computer-readable recording medium |
US6493871B1 (en) * | 1999-09-16 | 2002-12-10 | Microsoft Corporation | Method and system for downloading updates for software installation |
KR100458430B1 (en) * | 1999-09-27 | 2004-12-03 | 주식회사 메디칼스탠다드 | Advertizing method using software products |
US7016944B1 (en) | 1999-09-30 | 2006-03-21 | Apple Computer, Inc. | System and method for passive detection and context sensitive notification of upgrade availability for computer information |
EP1093054B1 (en) * | 1999-10-15 | 2008-07-16 | Alcatel Lucent | Method for installing software components at a user-terminal, related devices and related software modules |
US7240037B1 (en) | 1999-10-18 | 2007-07-03 | Stamps.Com | Method and apparatus for digitally signing an advertisement area next to a value-bearing item |
US7236956B1 (en) | 1999-10-18 | 2007-06-26 | Stamps.Com | Role assignments in a cryptographic module for secure processing of value-bearing items |
US7216110B1 (en) | 1999-10-18 | 2007-05-08 | Stamps.Com | Cryptographic module for secure processing of value-bearing items |
US7752141B1 (en) | 1999-10-18 | 2010-07-06 | Stamps.Com | Cryptographic module for secure processing of value-bearing items |
AU1966801A (en) * | 1999-10-18 | 2001-04-30 | Stamps.Com | Secure and recoverable database for on-line value-bearing item system |
US7233929B1 (en) | 1999-10-18 | 2007-06-19 | Stamps.Com | Postal system intranet and commerce processing for on-line value bearing system |
US6318156B1 (en) * | 1999-10-28 | 2001-11-20 | Micro Motion, Inc. | Multiphase flow measurement system |
US7185333B1 (en) * | 1999-10-28 | 2007-02-27 | Yahoo! Inc. | Method and system for managing the resources of a toolbar application program |
US6754707B2 (en) * | 1999-10-28 | 2004-06-22 | Supportsoft, Inc. | Secure computer support system |
US20020186249A1 (en) | 1999-10-28 | 2002-12-12 | Qi Lu | Method and system of facilitating automatic login to a web site using an internet browser |
US20020186255A1 (en) * | 1999-10-28 | 2002-12-12 | Shafron Thomas Joshua | Method and system of facilitating on-line shopping using an internet browser |
US6453347B1 (en) * | 1999-10-29 | 2002-09-17 | Mcafee.Com, Inc. | Active marketing based on client computer configurations |
US6449719B1 (en) * | 1999-11-09 | 2002-09-10 | Widevine Technologies, Inc. | Process and streaming server for encrypting a data stream |
US8055894B2 (en) * | 1999-11-09 | 2011-11-08 | Google Inc. | Process and streaming server for encrypting a data stream with bandwidth based variation |
US6718373B1 (en) * | 1999-11-30 | 2004-04-06 | Dell Usa L.P. | Method and system for installing files in a computing system |
US6490723B1 (en) * | 1999-11-30 | 2002-12-03 | Dell Products L.P. | Method and system for installing files in a computing system |
US20060248139A1 (en) * | 1999-12-01 | 2006-11-02 | Intel Corporation | Networked computer management with a mobile software agent |
US7191208B1 (en) * | 1999-12-14 | 2007-03-13 | International Business Machines Corporation | Methods of selectively distributing data in a computer network and systems using the same |
US6668375B1 (en) * | 1999-12-15 | 2003-12-23 | Pitney Bowes Inc. | Method and system for providing build-to-order software applications |
US6363359B1 (en) * | 1999-12-21 | 2002-03-26 | Intel Corporation | Inventory determination for facilitating commercial transactions |
US6615405B1 (en) * | 2000-01-06 | 2003-09-02 | Power Quest Corporation | Method and system for distributing and maintaining software across a computer network |
US6912528B2 (en) * | 2000-01-18 | 2005-06-28 | Gregg S. Homer | Rechargeable media distribution and play system |
US7257542B2 (en) * | 2000-02-16 | 2007-08-14 | Stamps.Com | Secure on-line ticketing |
US7792745B2 (en) * | 2000-02-25 | 2010-09-07 | Ipass Inc. | Method and system to facilitate financial settlement of service access transactions between multiple parties |
US20010034693A1 (en) * | 2000-02-25 | 2001-10-25 | Jay Farhat | Method and system to broker a service access transaction |
KR100496056B1 (en) * | 2000-02-26 | 2005-06-17 | 주식회사 하우리 | Restoring service system and a method thereof for internet-based remote data and file |
US20060143249A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060155788A1 (en) * | 2000-03-09 | 2006-07-13 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060173847A1 (en) * | 2000-03-09 | 2006-08-03 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US8230482B2 (en) | 2000-03-09 | 2012-07-24 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060143237A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060143253A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060143180A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US6879988B2 (en) * | 2000-03-09 | 2005-04-12 | Pkware | System and method for manipulating and managing computer archive files |
US20060143199A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20050015608A1 (en) | 2003-07-16 | 2005-01-20 | Pkware, Inc. | Method for strongly encrypting .ZIP files |
US7844579B2 (en) * | 2000-03-09 | 2010-11-30 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US8959582B2 (en) | 2000-03-09 | 2015-02-17 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
GB0006055D0 (en) * | 2000-03-14 | 2000-05-03 | Ibm | Managing pervasive devices |
US7127526B1 (en) * | 2000-03-20 | 2006-10-24 | Nortel Networks Limited | Method and apparatus for dynamically loading and managing software services on a network device |
JP2004534973A (en) * | 2000-04-14 | 2004-11-18 | ゴー アヘッド ソフトウェア インコーポレイテッド | Network device upgrade system and method |
US7293268B2 (en) * | 2000-04-17 | 2007-11-06 | Fujitsu Limited | Installation method, activation method, execution apparatus and medium of application program |
JP2001306536A (en) * | 2000-04-26 | 2001-11-02 | Nifty Corp | Client/server system and computer-readable medium |
US7310801B2 (en) * | 2000-04-27 | 2007-12-18 | Microsoft Corporation | Servicing a component-based software product throughout the software product lifecycle |
US8145798B1 (en) * | 2000-05-01 | 2012-03-27 | Novell, Inc. | System and method for automatic provisioning of onsite networking services |
US7089562B1 (en) * | 2000-05-04 | 2006-08-08 | International Business Machines Corporation | Universal driver server |
US7296217B1 (en) * | 2000-05-05 | 2007-11-13 | Timberline Software Corporation | Electronic transaction document system |
US6646658B1 (en) * | 2000-05-17 | 2003-11-11 | Sharp Laboratories Of America, Inc. | Tagging data files with application information |
US8321356B2 (en) * | 2000-05-18 | 2012-11-27 | United Parcel Service Of America, Inc. | System and method for calculating real-time costing information |
US8725656B1 (en) | 2000-05-18 | 2014-05-13 | United Parcel Service Of America, Inc. | Freight rate manager |
US7240112B2 (en) * | 2000-05-26 | 2007-07-03 | Ipass Inc. | Service quality monitoring process |
US7519695B2 (en) * | 2000-05-26 | 2009-04-14 | Ipass Inc. | Service quality monitoring process |
US6985945B2 (en) * | 2000-12-07 | 2006-01-10 | Ipass, Inc. | Service quality monitoring process |
JP3852269B2 (en) * | 2000-05-29 | 2006-11-29 | セイコーエプソン株式会社 | A system that automatically collects content that exists on the network |
US6941353B1 (en) * | 2000-06-29 | 2005-09-06 | Auran Holdings Pty Ltd | E-commerce system and method relating to program objects |
KR20020005062A (en) * | 2000-06-30 | 2002-01-17 | 박창진 | Method of useing software lease service offer device and it for internet |
US6665867B1 (en) * | 2000-07-06 | 2003-12-16 | International Business Machines Corporation | Self-propagating software objects and applications |
US7219332B2 (en) * | 2000-07-07 | 2007-05-15 | Microsoft Corporation | Configuring software components(merge) with transformation component using configurable and non-configurable data elements |
US7231050B1 (en) | 2000-07-21 | 2007-06-12 | Harris Scott C | Protection against unintentional file changing |
US7117239B1 (en) | 2000-07-28 | 2006-10-03 | Axeda Corporation | Reporting the state of an apparatus to a remote computer |
US7062451B1 (en) * | 2000-07-31 | 2006-06-13 | Hewlett-Packard Development Company, L.P. | Method for facilitating the purchase of compatible products |
US7191239B2 (en) | 2000-08-02 | 2007-03-13 | Ipass Inc. | Method and system to customize and update a network connection application for distribution to multiple end-users |
US20020124245A1 (en) * | 2000-08-14 | 2002-09-05 | Alvin Maddux | Method and apparatus for advanced software deployment |
US7275038B1 (en) * | 2000-08-18 | 2007-09-25 | The Crawford Group, Inc. | Web enabled business to business operating system for rental car services |
US7899690B1 (en) | 2000-08-18 | 2011-03-01 | The Crawford Group, Inc. | Extended web enabled business to business computer system for rental vehicle services |
US8600783B2 (en) | 2000-08-18 | 2013-12-03 | The Crawford Group, Inc. | Business to business computer system for communicating and processing rental car reservations using web services |
US7165175B1 (en) | 2000-09-06 | 2007-01-16 | Widevine Technologies, Inc. | Apparatus, system and method for selectively encrypting different portions of data sent over a network |
US20040003266A1 (en) * | 2000-09-22 | 2004-01-01 | Patchlink Corporation | Non-invasive automatic offsite patch fingerprinting and updating system and method |
US7185014B1 (en) | 2000-09-22 | 2007-02-27 | Axeda Corporation | Retrieving data from a server |
US8108543B2 (en) | 2000-09-22 | 2012-01-31 | Axeda Corporation | Retrieving data from a server |
WO2002025438A1 (en) | 2000-09-22 | 2002-03-28 | Patchlink.Com Corporation | Non-invasive automatic offsite patch fingerprinting and updating system and method |
US6866587B1 (en) | 2000-09-25 | 2005-03-15 | Auran Holdings Pty Ltd. | Wide area real-time software environment |
CA2320665C (en) | 2000-09-26 | 2010-08-17 | Spielo Manufacturing Incorporated | System and method for downloading electronic information to a video lottery terminal |
US7268900B1 (en) * | 2000-09-29 | 2007-09-11 | Marvell International Technology Ltd. | Printer formatter in a cable |
US7162538B1 (en) * | 2000-10-04 | 2007-01-09 | Intel Corporation | Peer to peer software distribution system |
US20080201406A1 (en) * | 2000-10-16 | 2008-08-21 | Edward Balassanian | Feature manager system for facilitating communication and shared functionality among components |
US6950198B1 (en) * | 2000-10-18 | 2005-09-27 | Eastman Kodak Company | Effective transfer of images from a user to a service provider |
KR20020032195A (en) * | 2000-10-26 | 2002-05-03 | 민병국 | method of installing/upgrading and executing application programs on internet |
US8087014B1 (en) * | 2000-10-26 | 2011-12-27 | Qualcomm Incorporated | Method and apparatus for configuration management for a computing device |
US20080021936A1 (en) * | 2000-10-26 | 2008-01-24 | Reynolds Mark L | Tools and techniques for original digital files |
US7124289B1 (en) * | 2000-10-31 | 2006-10-17 | Opsware Inc. | Automated provisioning framework for internet site servers |
US20020082820A1 (en) | 2000-10-31 | 2002-06-27 | Glenn Ferguson | Data model for automated server configuration |
US8250570B2 (en) | 2000-10-31 | 2012-08-21 | Hewlett-Packard Development Company, L.P. | Automated provisioning framework for internet site servers |
US7181508B1 (en) * | 2000-11-09 | 2007-02-20 | Oki Data Americas, Inc. | System and method for communicating, monitoring and configuring a device operatively connected to a network |
US8479189B2 (en) | 2000-11-17 | 2013-07-02 | Hewlett-Packard Development Company, L.P. | Pattern detection preprocessor in an electronic device update generation system |
US7409685B2 (en) | 2002-04-12 | 2008-08-05 | Hewlett-Packard Development Company, L.P. | Initialization and update of software and/or firmware in electronic devices |
US20030182414A1 (en) * | 2003-05-13 | 2003-09-25 | O'neill Patrick J. | System and method for updating and distributing information |
US7043473B1 (en) | 2000-11-22 | 2006-05-09 | Widevine Technologies, Inc. | Media tracking system and method |
US7150045B2 (en) * | 2000-12-14 | 2006-12-12 | Widevine Technologies, Inc. | Method and apparatus for protection of electronic media |
US7574481B2 (en) * | 2000-12-20 | 2009-08-11 | Microsoft Corporation | Method and system for enabling offline detection of software updates |
CA2430099A1 (en) * | 2000-12-20 | 2002-06-27 | International Business Machines Corporation | Method and system for remote software distribution and installation |
DE10065674A1 (en) * | 2000-12-29 | 2002-07-04 | Bsh Bosch Siemens Hausgeraete | Method and device for controlling household appliances and control system |
US7707571B1 (en) * | 2001-01-05 | 2010-04-27 | New Boundary Technologies Inc. | Software distribution systems and methods using one or more channels |
US7236958B2 (en) * | 2001-01-05 | 2007-06-26 | Microsoft Corporation | Electronic software license with software product installer identifier |
US6961773B2 (en) | 2001-01-19 | 2005-11-01 | Esoft, Inc. | System and method for managing application service providers |
JP2002215254A (en) * | 2001-01-23 | 2002-07-31 | Canon Inc | Portable information storage medium, information processor, distribution system of software, information processing method and computer readable storage medium |
US7075921B2 (en) | 2001-01-30 | 2006-07-11 | Estara, Inc. | Remote media control for voice over internet telephony and related applications |
US6914899B2 (en) | 2001-01-30 | 2005-07-05 | Estara, Inc. | Caller identification and voice/data synchronization for internet telephony and related applications |
US20020116665A1 (en) * | 2001-02-16 | 2002-08-22 | Pickover Clifford A. | Method and apparatus for supporting software |
US7076496B1 (en) * | 2001-02-23 | 2006-07-11 | 3Com Corporation | Method and system for server based software product release version tracking |
JP4291467B2 (en) * | 2001-03-01 | 2009-07-08 | 株式会社ソニー・コンピュータエンタテインメント | Entertainment device, menu display method, and information recording medium |
JPWO2002078385A1 (en) * | 2001-03-23 | 2004-12-09 | 藤井 達也 | Device setting update system |
US20020138757A1 (en) * | 2001-03-23 | 2002-09-26 | Motorola, Inc. | Method for securely distributing software components on a computer network |
US7181017B1 (en) | 2001-03-23 | 2007-02-20 | David Felsher | System and method for secure three-party communications |
US20020143900A1 (en) * | 2001-03-29 | 2002-10-03 | Kenner Martin A. | Content recipient access to software notes posted at content provider site |
US20020143618A1 (en) * | 2001-03-29 | 2002-10-03 | Kenner Martin A. | Payment based content recipient access to software notes posted at content provider site |
US7343415B2 (en) * | 2001-03-29 | 2008-03-11 | 3M Innovative Properties Company | Display of software notes indicating that content from a content provider site is available for display |
US7469341B2 (en) * | 2001-04-18 | 2008-12-23 | Ipass Inc. | Method and system for associating a plurality of transaction data records generated in a service access system |
US7921290B2 (en) * | 2001-04-18 | 2011-04-05 | Ipass Inc. | Method and system for securely authenticating network access credentials for users |
US20030065919A1 (en) * | 2001-04-18 | 2003-04-03 | Albert Roy David | Method and system for identifying a replay attack by an access device to a computer system |
US20020157090A1 (en) * | 2001-04-20 | 2002-10-24 | Anton, Jr. Francis M. | Automated updating of access points in a distributed network |
US7743147B2 (en) * | 2001-04-20 | 2010-06-22 | Hewlett-Packard Development Company, L.P. | Automated provisioning of computing networks using a network database data model |
US7051327B1 (en) * | 2001-05-08 | 2006-05-23 | Gateway Inc. | System for providing data backup and restore with updated version by creating data package based upon configuration data application data and user response to suggestion |
US6947986B1 (en) * | 2001-05-08 | 2005-09-20 | Networks Associates Technology, Inc. | System and method for providing web-based remote security application client administration in a distributed computing environment |
US7134122B1 (en) * | 2001-05-31 | 2006-11-07 | Oracle International Corporation | One click deployment |
US20020193094A1 (en) * | 2001-06-15 | 2002-12-19 | Lawless John P. | Method and system for downloading software products directly to wireless phones |
US20060059479A1 (en) * | 2001-07-02 | 2006-03-16 | Pradeep Tumati | System and method for modifying software without halting its execution |
US20030005408A1 (en) * | 2001-07-02 | 2003-01-02 | Pradeep Tumati | System and method for creating software modifiable without halting its execution |
US7248381B2 (en) * | 2001-07-10 | 2007-07-24 | Avago Technologies Imaging Ip (Singapore) Pte. Ltd. | Point-of-sale demonstration of computer peripherals |
US7844813B2 (en) * | 2001-07-13 | 2010-11-30 | Durward D. Dupre | Method, system and process for data encryption and transmission |
US20030023770A1 (en) * | 2001-07-26 | 2003-01-30 | Barmettler James W. | Automated software driver installation |
JP4134536B2 (en) * | 2001-07-27 | 2008-08-20 | 株式会社日立製作所 | Transaction method of information equipment |
US20030028870A1 (en) * | 2001-08-01 | 2003-02-06 | Weisman Mitchell T. | Distribution of downloadable software over a network |
US20030188160A1 (en) * | 2001-08-02 | 2003-10-02 | Singam Sunder | Method and system to securely update files via a network |
US7761606B2 (en) * | 2001-08-02 | 2010-07-20 | Ipass Inc. | Method and system to secure a connection application for distribution to multiple end-users |
US7089259B1 (en) * | 2001-08-03 | 2006-08-08 | Mcafee, Inc. | System and method for providing a framework for network appliance management in a distributed computing environment |
JP4165796B2 (en) * | 2001-08-15 | 2008-10-15 | 株式会社スクウェア・エニックス | Client, data download method, program, and recording medium |
US20030041125A1 (en) * | 2001-08-16 | 2003-02-27 | Salomon Kirk C. | Internet-deployed wireless system |
US20030037325A1 (en) * | 2001-08-17 | 2003-02-20 | Hargrove David C. | System and methods for automatically installing a correct software version from media containing multiple software versions |
US7111055B2 (en) * | 2001-08-30 | 2006-09-19 | Sun Microsystems, Inc. | Method and apparatus to facilitate automated software installation on remote computers over a network |
US20030051235A1 (en) * | 2001-09-07 | 2003-03-13 | Simpson Mark D. | Method and apparatus for verifying and analyzing computer software installation |
EP1310889A1 (en) * | 2001-09-07 | 2003-05-14 | Siemens Aktiengesellschaft | Method for ordering of means of production |
JP4288893B2 (en) * | 2001-09-26 | 2009-07-01 | ソニー株式会社 | Information processing apparatus, program loading method, recording medium, program updating method, and circuit element |
US7430736B2 (en) * | 2001-10-03 | 2008-09-30 | Toshiba Tec Kabushiki Kaisha | Download and installation of software from a network printer |
WO2003029971A1 (en) * | 2001-10-04 | 2003-04-10 | Accretive Technology Group, Inc. | Incentive system for distributing software over a computer network |
US7093232B1 (en) * | 2001-10-17 | 2006-08-15 | Oracle International Corporation (Oic) | Component stager |
US9231827B2 (en) * | 2001-11-09 | 2016-01-05 | International Business Machines Corporation | Formalizing, diffusing and enforcing policy advisories and monitoring policy compliance in the management of networks |
JP2003173246A (en) * | 2001-12-05 | 2003-06-20 | Ricoh Co Ltd | Device information gathering method, program, server device and storage medium |
US7822860B2 (en) * | 2001-12-11 | 2010-10-26 | International Business Machines Corporation | Method and apparatus for dynamic reconfiguration of web services infrastructure |
US20030120827A1 (en) * | 2001-12-20 | 2003-06-26 | Dominic Fulginiti | Method and apparatus for automatically detecting machine states during an operating system installation through a network |
US7254601B2 (en) | 2001-12-20 | 2007-08-07 | Questra Corporation | Method and apparatus for managing intelligent assets in a distributed environment |
WO2003058457A1 (en) * | 2001-12-31 | 2003-07-17 | Citadel Security Software Inc. | Automated computer vulnerability resolution system |
JP2003202987A (en) * | 2002-01-07 | 2003-07-18 | Fujitsu Ltd | Installer for driver of network device |
JP4386732B2 (en) | 2002-01-08 | 2009-12-16 | セブン ネットワークス, インコーポレイテッド | Mobile network connection architecture |
US7243148B2 (en) * | 2002-01-15 | 2007-07-10 | Mcafee, Inc. | System and method for network vulnerability detection and reporting |
US7257630B2 (en) * | 2002-01-15 | 2007-08-14 | Mcafee, Inc. | System and method for network vulnerability detection and reporting |
US7543056B2 (en) | 2002-01-15 | 2009-06-02 | Mcafee, Inc. | System and method for network vulnerability detection and reporting |
US7328345B2 (en) * | 2002-01-29 | 2008-02-05 | Widevine Technologies, Inc. | Method and system for end to end securing of content for video on demand |
US6652169B2 (en) * | 2002-02-20 | 2003-11-25 | Hewlett-Packard Development Company, L.P. | Method and system for printer suggested upgrades to correct errors |
US20030174841A1 (en) * | 2002-03-15 | 2003-09-18 | Novell Inc. | Methods, systems, and data structures for secure data content presentation |
US7299292B2 (en) * | 2002-03-29 | 2007-11-20 | Widevine Technologies, Inc. | Process and streaming server for encrypting a data stream to a virtual smart card client system |
KR20030079029A (en) * | 2002-04-01 | 2003-10-10 | 주식회사 소프트닉스 | A downloading installation for game program |
US7185336B2 (en) * | 2002-04-03 | 2007-02-27 | Hewlett-Packard Development Company, L.P. | System and method for selecting and installing a device driver |
US7810091B2 (en) * | 2002-04-04 | 2010-10-05 | Mcafee, Inc. | Mechanism to check the malicious alteration of malware scanner |
US7961884B2 (en) * | 2002-08-13 | 2011-06-14 | Ipass Inc. | Method and system for changing security information in a computer network |
US7178149B2 (en) | 2002-04-17 | 2007-02-13 | Axeda Corporation | XML scripting of soap commands |
CN1685395A (en) * | 2002-04-19 | 2005-10-19 | 雷迪克斯私人有限公司 | System and method for use of multiple applications |
US20030233483A1 (en) * | 2002-04-23 | 2003-12-18 | Secure Resolutions, Inc. | Executing software in a network environment |
US20040153703A1 (en) * | 2002-04-23 | 2004-08-05 | Secure Resolutions, Inc. | Fault tolerant distributed computing applications |
US7401133B2 (en) | 2002-04-23 | 2008-07-15 | Secure Resolutions, Inc. | Software administration in an application service provider scenario via configuration directives |
US20040073903A1 (en) * | 2002-04-23 | 2004-04-15 | Secure Resolutions,Inc. | Providing access to software over a network via keys |
US20040006586A1 (en) * | 2002-04-23 | 2004-01-08 | Secure Resolutions, Inc. | Distributed server software distribution |
US20030200300A1 (en) * | 2002-04-23 | 2003-10-23 | Secure Resolutions, Inc. | Singularly hosted, enterprise managed, plural branded application services |
US20030200201A1 (en) * | 2002-04-23 | 2003-10-23 | Gateway, Inc. | Dynamic offer presentation and server validation during device setup process |
US7178144B2 (en) * | 2002-04-23 | 2007-02-13 | Secure Resolutions, Inc. | Software distribution via stages |
US20030204730A1 (en) * | 2002-04-29 | 2003-10-30 | Barmettler James W. | Secure transmission and installation of an application |
US20040040021A1 (en) * | 2002-05-06 | 2004-02-26 | Microsoft Corporation | Method and system for keeping an application up-to-date |
US7421490B2 (en) * | 2002-05-06 | 2008-09-02 | Microsoft Corporation | Uniquely identifying a crashed application and its environment |
US6965674B2 (en) * | 2002-05-21 | 2005-11-15 | Wavelink Corporation | System and method for providing WLAN security through synchronized update and rotation of WEP keys |
US7174332B2 (en) * | 2002-06-11 | 2007-02-06 | Ip. Com, Inc. | Method and apparatus for safeguarding files |
US9813514B2 (en) | 2002-06-12 | 2017-11-07 | Good Technology Holdings Limited | Information repository system including a wireless device and related method |
US8549114B2 (en) * | 2002-06-12 | 2013-10-01 | Bladelogic, Inc. | Method and system for model-based heterogeneous server configuration management |
US6938250B2 (en) * | 2002-06-12 | 2005-08-30 | Microsoft Corporation | Image-based software installation |
US7228526B2 (en) * | 2002-06-12 | 2007-06-05 | Microsoft Corporation | Application imaging infrastructure |
US20040003390A1 (en) * | 2002-06-27 | 2004-01-01 | Microsoft Corporation | System and method for installing a software application in a non-impactfull manner |
US8533702B2 (en) * | 2002-06-27 | 2013-09-10 | International Business Machines Corporation | Dynamically resolving fix groups for managing multiple releases of multiple products on multiple systems |
US20040002943A1 (en) * | 2002-06-28 | 2004-01-01 | Merrill John Wickens Lamb | Systems and methods for application delivery and configuration management of mobile devices |
US7965842B2 (en) * | 2002-06-28 | 2011-06-21 | Wavelink Corporation | System and method for detecting unauthorized wireless access points |
JP2004046587A (en) * | 2002-07-12 | 2004-02-12 | Fujitsu Ltd | Program for incorporating device driver, and device for incorporating device driver |
US8393001B1 (en) * | 2002-07-26 | 2013-03-05 | Mcafee, Inc. | Secure signature server system and associated method |
EP1398694B1 (en) * | 2002-07-26 | 2013-09-11 | Canon Kabushiki Kaisha | Information processing method |
US7606242B2 (en) * | 2002-08-02 | 2009-10-20 | Wavelink Corporation | Managed roaming for WLANS |
WO2004015576A1 (en) | 2002-08-09 | 2004-02-19 | Visto Corporation | System and method for preventing access to data on a compromised remote device |
US7522906B2 (en) * | 2002-08-09 | 2009-04-21 | Wavelink Corporation | Mobile unit configuration management for WLANs |
US7124401B2 (en) * | 2002-09-03 | 2006-10-17 | Sap Aktiengesellschaft | Testing versions of applications |
US7305659B2 (en) * | 2002-09-03 | 2007-12-04 | Sap Ag | Handling parameters in test scripts for computer program applications |
US7594271B2 (en) * | 2002-09-20 | 2009-09-22 | Widevine Technologies, Inc. | Method and system for real-time tamper evidence gathering for software |
US20040057072A1 (en) * | 2002-09-23 | 2004-03-25 | Borchers Gregory E. | Network printer driver pre-configuration for downloading and installation |
US7240200B2 (en) | 2002-09-26 | 2007-07-03 | International Business Machines Corporation | System and method for guaranteeing software integrity via combined hardware and software authentication |
US7162717B1 (en) * | 2002-09-26 | 2007-01-09 | Intuit Inc. | Compressed file patcher |
JP3821080B2 (en) * | 2002-09-30 | 2006-09-13 | ブラザー工業株式会社 | Printing device |
US20040064829A1 (en) * | 2002-09-30 | 2004-04-01 | Kim Pallister | Method for identifying processor affinity and improving software execution |
US20040083471A1 (en) * | 2002-10-21 | 2004-04-29 | Lg Electronics Inc. | Method of upgrading system software of a home appliance |
US7353264B2 (en) * | 2002-11-13 | 2008-04-01 | Hewlett-Packard Development Company, L.P. | Method and apparatus for optimizing client responsiveness and server performance |
US8271971B2 (en) * | 2002-11-26 | 2012-09-18 | Hewlett-Packard Development Company, L.P. | System and method for automated program updating in a remote appliance |
JP2004185096A (en) * | 2002-11-29 | 2004-07-02 | Toshiba Corp | Recording/reproducing device and recording/reproducing method |
JP2004178472A (en) * | 2002-11-29 | 2004-06-24 | Sanyo Electric Co Ltd | Program acquisition method and packet transfer device capable of using its method |
US20040111428A1 (en) * | 2002-12-06 | 2004-06-10 | Marathon Ashland Petroleum Llc | Toolset for applying object-oriented models to multi-tiered enterprise applications |
US20040117221A1 (en) * | 2002-12-12 | 2004-06-17 | International Business Machines Corporation | Global timezone conversion for disparate corporate data |
JP2004206269A (en) * | 2002-12-24 | 2004-07-22 | Sony Corp | Information processing device and its method |
US7853563B2 (en) | 2005-08-01 | 2010-12-14 | Seven Networks, Inc. | Universal data aggregation |
US7917468B2 (en) | 2005-08-01 | 2011-03-29 | Seven Networks, Inc. | Linking of personal information management data |
US8468126B2 (en) | 2005-08-01 | 2013-06-18 | Seven Networks, Inc. | Publishing data in an information community |
KR100468006B1 (en) * | 2003-01-21 | 2005-01-25 | 삼성전자주식회사 | An application service system and method for client device in intranet |
US7093248B2 (en) * | 2003-01-24 | 2006-08-15 | Dell Products L.P. | Method and system for targeting alerts to information handling systems |
DE10304411A1 (en) * | 2003-02-04 | 2004-08-19 | Sap Ag | Process for the use of instructions for reference to verification software in the generation and verification of electronic signatures or electronically signed documents |
US9818136B1 (en) | 2003-02-05 | 2017-11-14 | Steven M. Hoffberg | System and method for determining contingent relevance |
US7164435B2 (en) | 2003-02-10 | 2007-01-16 | D-Link Systems, Inc. | Videoconferencing system |
US8561175B2 (en) | 2003-02-14 | 2013-10-15 | Preventsys, Inc. | System and method for automated policy audit and remediation management |
US7627891B2 (en) * | 2003-02-14 | 2009-12-01 | Preventsys, Inc. | Network audit and policy assurance system |
US7966418B2 (en) | 2003-02-21 | 2011-06-21 | Axeda Corporation | Establishing a virtual tunnel between two computer programs |
US7356143B2 (en) * | 2003-03-18 | 2008-04-08 | Widevine Technologies, Inc | System, method, and apparatus for securely providing content viewable on a secure device |
US7275244B1 (en) * | 2003-03-18 | 2007-09-25 | Microsoft Corporation | System and method for incrementally saving web files to a web server using file hash values |
US7007170B2 (en) * | 2003-03-18 | 2006-02-28 | Widevine Technologies, Inc. | System, method, and apparatus for securely providing content viewable on a secure device |
US7398272B2 (en) * | 2003-03-24 | 2008-07-08 | Bigfix, Inc. | Enterprise console |
US20040199771A1 (en) * | 2003-04-04 | 2004-10-07 | Widevine Technologies, Inc. | Method for tracing a security breach in highly distributed content |
SG122784A1 (en) * | 2003-05-14 | 2006-06-29 | Oneempower Pte Ltd | Method and apparatus for controlling a computing or electronic device |
US20050055371A1 (en) * | 2003-06-05 | 2005-03-10 | Singam Sunder | Method and system to manage a network connection application |
US8606885B2 (en) * | 2003-06-05 | 2013-12-10 | Ipass Inc. | Method and system of providing access point data associated with a network access point |
US7702668B2 (en) * | 2003-06-16 | 2010-04-20 | Microsoft Corporation | Asset composition |
WO2005003968A1 (en) * | 2003-07-02 | 2005-01-13 | Bay Technologies Pty Ltd | Procedure implementation |
US7424609B2 (en) * | 2003-07-11 | 2008-09-09 | Computer Associates Think, Inc. | Method and system for protecting against computer viruses |
US7721228B2 (en) * | 2003-08-05 | 2010-05-18 | Yahoo! Inc. | Method and system of controlling a context menu |
US7793227B2 (en) | 2003-08-12 | 2010-09-07 | Yahoo! Inc. | Method and system of providing customizable buttons |
US20050050320A1 (en) * | 2003-09-02 | 2005-03-03 | Microsoft Corporation | Branding framework |
US20050060226A1 (en) * | 2003-09-11 | 2005-03-17 | International Business Machines Corporation | Recommending an offering based on inventory data |
US8555273B1 (en) | 2003-09-17 | 2013-10-08 | Palm. Inc. | Network for updating electronic devices |
US7366992B2 (en) * | 2003-09-19 | 2008-04-29 | Siemens Medical Solutions Usa, Inc. | Method and system for displaying and/or manipulating medical image data |
US7506241B2 (en) * | 2003-10-16 | 2009-03-17 | International Business Machines Corporation | Method and apparatus for a self healing agent |
US7318226B2 (en) * | 2003-10-16 | 2008-01-08 | International Business Machines Corporation | Distributed autonomic solutions repository |
US7406174B2 (en) * | 2003-10-21 | 2008-07-29 | Widevine Technologies, Inc. | System and method for n-dimensional encryption |
US20050091259A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation Redmond Wa. | Framework to build, deploy, service, and manage customizable and configurable re-usable applications |
JP2007510987A (en) * | 2003-10-27 | 2007-04-26 | アメリカン パワー コンバージョン コーポレイション | System and method for updating a software program |
US20050097548A1 (en) * | 2003-10-31 | 2005-05-05 | Dillenburg Brian J. | Systems and methods for developing and distributing software components |
US7506260B2 (en) * | 2003-10-31 | 2009-03-17 | Yahoo! Inc. | Method and system of providing browser functionality through a browser button |
US7519691B2 (en) * | 2003-12-04 | 2009-04-14 | International Business Machines Corporation | Selective update of console parameters from other consoles |
US20050125281A1 (en) * | 2003-12-09 | 2005-06-09 | Henrickson David L. | Scheme leveraging knowledge gained of a customer's computer system to suggest possible products and services of interest |
US7827590B2 (en) * | 2003-12-10 | 2010-11-02 | Aventail Llc | Controlling access to a set of resources in a network |
WO2005059684A2 (en) * | 2003-12-10 | 2005-06-30 | Aventail Corporation | End point control |
US8661158B2 (en) * | 2003-12-10 | 2014-02-25 | Aventail Llc | Smart tunneling to resources in a network |
US8590032B2 (en) | 2003-12-10 | 2013-11-19 | Aventail Llc | Rule-based routing to resources through a network |
US7398399B2 (en) * | 2003-12-12 | 2008-07-08 | International Business Machines Corporation | Apparatus, methods and computer programs for controlling performance of operations within a data processing system or network |
US7475427B2 (en) * | 2003-12-12 | 2009-01-06 | International Business Machines Corporation | Apparatus, methods and computer programs for identifying or managing vulnerabilities within a data processing network |
US7519726B2 (en) * | 2003-12-12 | 2009-04-14 | International Business Machines Corporation | Methods, apparatus and computer programs for enhanced access to resources within a network |
US7574706B2 (en) | 2003-12-15 | 2009-08-11 | Microsoft Corporation | System and method for managing and communicating software updates |
US7509636B2 (en) | 2003-12-15 | 2009-03-24 | Microsoft Corporation | System and method for updating files utilizing delta compression patching |
US7546594B2 (en) * | 2003-12-15 | 2009-06-09 | Microsoft Corporation | System and method for updating installation components using an installation component delta patch in a networked environment |
US7478381B2 (en) * | 2003-12-15 | 2009-01-13 | Microsoft Corporation | Managing software updates and a software distribution service |
US7890864B2 (en) * | 2004-01-09 | 2011-02-15 | International Business Machines Corporation | Dynamic composition of help information for an aggregation of applications |
US7761794B1 (en) * | 2004-01-22 | 2010-07-20 | Cisco Technology, Inc. | Integrated audit and configuration techniques |
US7493563B2 (en) * | 2004-03-05 | 2009-02-17 | International Business Machines Corporation | Using content aggregation to build administration consoles |
US7444633B2 (en) * | 2004-03-05 | 2008-10-28 | International Business Machines Corporation | Federating legacy/remote content into a central network console |
DE102004012315A1 (en) * | 2004-03-11 | 2005-10-06 | Dspace Gmbh | Automatic interfacing of platform independent computer software into program code for a platform dependent functions |
US7676448B2 (en) * | 2004-03-12 | 2010-03-09 | Microsoft Corporation | Controlling installation update behaviors on a client computer |
US7853609B2 (en) * | 2004-03-12 | 2010-12-14 | Microsoft Corporation | Update distribution system architecture and method for distributing software |
US20050223277A1 (en) * | 2004-03-23 | 2005-10-06 | Eacceleration Corporation | Online storage system |
US7478383B2 (en) * | 2004-03-23 | 2009-01-13 | Toshiba Corporation | System and method for remotely securing software updates of computer systems |
US8225304B2 (en) * | 2004-03-23 | 2012-07-17 | Kabushiki Kaisha Toshiba | System and method for remotely securing software updates of computer systems |
US8201257B1 (en) | 2004-03-31 | 2012-06-12 | Mcafee, Inc. | System and method of managing network security risks |
US8327290B2 (en) * | 2004-04-06 | 2012-12-04 | International Business Machines Corporation | User task interface in a web application |
US7519954B1 (en) | 2004-04-08 | 2009-04-14 | Mcafee, Inc. | System and method of operating system identification |
US7539862B2 (en) * | 2004-04-08 | 2009-05-26 | Ipass Inc. | Method and system for verifying and updating the configuration of an access device during authentication |
US7904895B1 (en) | 2004-04-21 | 2011-03-08 | Hewlett-Packard Develpment Company, L.P. | Firmware update in electronic devices employing update agent in a flash memory card |
US20050251590A1 (en) * | 2004-05-10 | 2005-11-10 | Dell Products L.P. | Peripheral device that receives an icon from an information handling system |
US9357031B2 (en) | 2004-06-03 | 2016-05-31 | Microsoft Technology Licensing, Llc | Applications as a service |
US8812613B2 (en) * | 2004-06-03 | 2014-08-19 | Maxsp Corporation | Virtual application manager |
US7908339B2 (en) | 2004-06-03 | 2011-03-15 | Maxsp Corporation | Transaction based virtual file system optimized for high-latency network connections |
US7917932B2 (en) | 2005-06-07 | 2011-03-29 | Sling Media, Inc. | Personal video recorder functionality for placeshifting systems |
US7975062B2 (en) * | 2004-06-07 | 2011-07-05 | Sling Media, Inc. | Capturing and sharing media content |
BRPI0511858B1 (en) * | 2004-06-07 | 2020-12-22 | Sling Media, Inc. | personal media transmitter and respective transmission system, methods of providing access to the audio / visual source at a remote location of the audio / visual source and media signal streaming to a remote subscriber location |
US8346605B2 (en) * | 2004-06-07 | 2013-01-01 | Sling Media, Inc. | Management of shared media content |
US8099755B2 (en) * | 2004-06-07 | 2012-01-17 | Sling Media Pvt. Ltd. | Systems and methods for controlling the encoding of a media stream |
US9998802B2 (en) * | 2004-06-07 | 2018-06-12 | Sling Media LLC | Systems and methods for creating variable length clips from a media stream |
US7769756B2 (en) * | 2004-06-07 | 2010-08-03 | Sling Media, Inc. | Selection and presentation of context-relevant supplemental content and advertising |
US7664834B2 (en) | 2004-07-09 | 2010-02-16 | Maxsp Corporation | Distributed operating system management |
US8526940B1 (en) | 2004-08-17 | 2013-09-03 | Palm, Inc. | Centralized rules repository for smart phone customer care |
US7895590B2 (en) * | 2004-09-03 | 2011-02-22 | Microsoft Corporation | Update at shutdown |
US8312431B1 (en) * | 2004-09-17 | 2012-11-13 | Oracle America, Inc. | System and computer readable medium for verifying access to signed ELF objects |
US9609279B2 (en) * | 2004-09-24 | 2017-03-28 | Google Inc. | Method and system for providing secure CODECS |
US20060080257A1 (en) * | 2004-10-08 | 2006-04-13 | Level 3 Communications, Inc. | Digital content distribution framework |
WO2006044820A2 (en) | 2004-10-14 | 2006-04-27 | Aventail Corporation | Rule-based routing to resources through a network |
US8010082B2 (en) | 2004-10-20 | 2011-08-30 | Seven Networks, Inc. | Flexible billing architecture |
WO2006045102A2 (en) | 2004-10-20 | 2006-04-27 | Seven Networks, Inc. | Method and apparatus for intercepting events in a communication system |
US8001082B1 (en) | 2004-10-28 | 2011-08-16 | Good Technology, Inc. | System and method of data security in synchronizing data with a wireless device |
US7412655B2 (en) | 2004-11-02 | 2008-08-12 | Yahoo! Inc. | Method and system of providing dynamic dialogs |
US20060112152A1 (en) * | 2004-11-22 | 2006-05-25 | Microsoft Corporation | Smart patching by targeting particular prior versions of a file |
US7706781B2 (en) | 2004-11-22 | 2010-04-27 | Seven Networks International Oy | Data security in a mobile e-mail service |
US7464376B2 (en) * | 2004-11-30 | 2008-12-09 | Sap Ag | Solution resources determination and provisioning |
FI117152B (en) | 2004-12-03 | 2006-06-30 | Seven Networks Internat Oy | E-mail service provisioning method for mobile terminal, involves using domain part and further parameters to generate new parameter set in list of setting parameter sets, if provisioning of e-mail service is successful |
US20060136526A1 (en) * | 2004-12-16 | 2006-06-22 | Childress Rhonda L | Rapid provisioning of a computer into a homogenized resource pool |
US7594225B2 (en) * | 2004-12-20 | 2009-09-22 | Microsoft Corporation | Integrated setup for generating customization XML |
KR20060070112A (en) * | 2004-12-20 | 2006-06-23 | 삼성전자주식회사 | Method of programming/updating by usb otg |
US20060136906A1 (en) * | 2004-12-20 | 2006-06-22 | Microsoft Corporation | Software product installation facilitation |
US7685591B2 (en) * | 2004-12-20 | 2010-03-23 | Microsoft Corporation | Customizing a software application through a patch file |
ES2381920T3 (en) * | 2004-12-23 | 2012-06-01 | Koninklijke Philips Electronics N.V. | Method and apparatus for configuring software resources to play network programs |
US20080015999A1 (en) * | 2005-02-04 | 2008-01-17 | Widevine Technologies, Inc. | Securely ingesting encrypted content into content servers |
AU2006200628B2 (en) * | 2005-02-17 | 2011-07-28 | Nortonlifelock Inc | Post-signing modifications of software |
US8356295B2 (en) * | 2005-02-17 | 2013-01-15 | Symantec Corporation | Post-signing modification of software |
WO2006092533A1 (en) * | 2005-03-01 | 2006-09-08 | France Telecom | System and method for migrating a platform, user data, and applications from at least one server to at least one computer |
US8589323B2 (en) | 2005-03-04 | 2013-11-19 | Maxsp Corporation | Computer hardware and software diagnostic and report system incorporating an expert system and agents |
US7624086B2 (en) * | 2005-03-04 | 2009-11-24 | Maxsp Corporation | Pre-install compliance system |
US8234238B2 (en) | 2005-03-04 | 2012-07-31 | Maxsp Corporation | Computer hardware and software diagnostic and report system |
US7512584B2 (en) * | 2005-03-04 | 2009-03-31 | Maxsp Corporation | Computer hardware and software diagnostic and report system |
US7877703B1 (en) | 2005-03-14 | 2011-01-25 | Seven Networks, Inc. | Intelligent rendering of information in a limited display environment |
US9270732B2 (en) * | 2005-03-14 | 2016-02-23 | Rhapsody International Inc. | System and method for automatically uploading updates |
JP2006260354A (en) * | 2005-03-18 | 2006-09-28 | Ricoh Co Ltd | Image formation system, image formation device, terminal device, and method of updating driver of terminal device |
US7739682B1 (en) | 2005-03-24 | 2010-06-15 | The Weather Channel, Inc. | Systems and methods for selectively blocking application installation |
US8438633B1 (en) | 2005-04-21 | 2013-05-07 | Seven Networks, Inc. | Flexible real-time inbox access |
US7796742B1 (en) | 2005-04-21 | 2010-09-14 | Seven Networks, Inc. | Systems and methods for simplified provisioning |
US8397072B2 (en) * | 2005-05-20 | 2013-03-12 | Rovi Solutions Corporation | Computer-implemented method and system for embedding ancillary information into the header of a digitally signed executable |
US8484476B2 (en) * | 2005-05-20 | 2013-07-09 | Rovi Technologies Corporation | Computer-implemented method and system for embedding and authenticating ancillary information in digitally signed content |
WO2009016427A1 (en) * | 2007-07-31 | 2009-02-05 | Macrovision Corporation | A computer-implemented method and system to enable out of band tracking for digital distribution |
WO2006136660A1 (en) | 2005-06-21 | 2006-12-28 | Seven Networks International Oy | Maintaining an ip connection in a mobile network |
WO2007005789A2 (en) * | 2005-06-30 | 2007-01-11 | Sling Media, Inc. | Screen management system for media player |
WO2007005790A2 (en) * | 2005-06-30 | 2007-01-11 | Sling Media, Inc. | Firmware update for consumer electronic device |
US8069166B2 (en) | 2005-08-01 | 2011-11-29 | Seven Networks, Inc. | Managing user-to-user contact with inferred presence information |
US8719825B2 (en) * | 2005-08-17 | 2014-05-06 | Sap Ag | Prompting for execution or delay of scheduled job |
US20070067643A1 (en) * | 2005-09-21 | 2007-03-22 | Widevine Technologies, Inc. | System and method for software tamper detection |
WO2007038245A2 (en) | 2005-09-23 | 2007-04-05 | Widevine Technologies, Inc. | Method for evolving detectors to detect malign behavior in an artificial immune system |
US7817608B2 (en) * | 2005-09-23 | 2010-10-19 | Widevine Technologies, Inc. | Transitioning to secure IP communications for encoding, encapsulating, and encrypting data |
US8065733B2 (en) * | 2005-09-23 | 2011-11-22 | Google, Inc. | Method for evolving detectors to detect malign behavior in an artificial immune system |
US8874477B2 (en) | 2005-10-04 | 2014-10-28 | Steven Mark Hoffberg | Multifactorial optimization system and method |
US9274774B2 (en) | 2005-10-28 | 2016-03-01 | Google Inc. | Common installer server |
US8261258B1 (en) | 2005-10-28 | 2012-09-04 | Google Inc. | Common installer client |
US8024406B1 (en) | 2005-11-18 | 2011-09-20 | Convergys Cmg Utah, Inc. | System and method for dispensing e-Care |
US8689016B2 (en) | 2005-12-02 | 2014-04-01 | Google Inc. | Tamper prevention and detection for video provided over a network to a client |
US8526612B2 (en) * | 2006-01-06 | 2013-09-03 | Google Inc. | Selective and persistent application level encryption for video provided to a client |
US20070162524A1 (en) * | 2006-01-11 | 2007-07-12 | Yahoo! Inc. | Network document management |
US7931191B2 (en) * | 2006-01-18 | 2011-04-26 | Dell Products L.P. | Post factory dynamic application selection |
US8261253B2 (en) * | 2006-01-25 | 2012-09-04 | The Boeing Company | Method for restoring software applications on desktop computers |
US20070180231A1 (en) * | 2006-01-31 | 2007-08-02 | Widevine Technologies, Inc. | Preventing entitlement management message (EMM) filter attacks |
US7769395B2 (en) | 2006-06-20 | 2010-08-03 | Seven Networks, Inc. | Location-based operations and messaging |
US7620392B1 (en) | 2006-02-27 | 2009-11-17 | Good Technology, Inc. | Method and system for distributing and updating software in wireless devices |
GB2436156A (en) * | 2006-03-07 | 2007-09-19 | Medicsight Plc | Digital medical image processing |
US7886285B2 (en) * | 2006-03-14 | 2011-02-08 | International Business Machines Corporation | Combining software executable libraries |
FI20065179A0 (en) * | 2006-03-20 | 2006-03-20 | Nixu Sofware Oy | To a whole assembled name server |
JP4898269B2 (en) * | 2006-04-14 | 2012-03-14 | キヤノン株式会社 | Communication device and installation method thereof |
US20070244649A1 (en) * | 2006-04-18 | 2007-10-18 | Medberry Scott L | Automated update of microarray data processing inputs |
US20070261027A1 (en) * | 2006-05-08 | 2007-11-08 | International Business Machines Corporation | Method and system for automatically discovering and populating a palette of reusable dialog components |
US8898319B2 (en) | 2006-05-24 | 2014-11-25 | Maxsp Corporation | Applications and services as a bundle |
US8811396B2 (en) | 2006-05-24 | 2014-08-19 | Maxsp Corporation | System for and method of securing a network utilizing credentials |
EP2025095A2 (en) | 2006-06-08 | 2009-02-18 | Hewlett-Packard Development Company, L.P. | Device management in a network |
US20070288389A1 (en) * | 2006-06-12 | 2007-12-13 | Vaughan Michael J | Version Compliance System |
US20070289028A1 (en) * | 2006-06-12 | 2007-12-13 | Software Spectrum, Inc. | Time Bound Entitlement for Digital Content Distribution Framework |
WO2008005581A2 (en) * | 2006-07-07 | 2008-01-10 | United Parcel Service Of America, Inc. | Compiled data for software applications |
WO2008014328A2 (en) * | 2006-07-25 | 2008-01-31 | Pivx Solutions, Inc. | Systems and methods for digitally-signed updates |
EP2047420A4 (en) | 2006-07-27 | 2009-11-18 | Hewlett Packard Development Co | User experience and dependency management in a mobile device |
US7840514B2 (en) * | 2006-09-22 | 2010-11-23 | Maxsp Corporation | Secure virtual private network utilizing a diagnostics policy and diagnostics engine to establish a secure network connection |
US9317506B2 (en) | 2006-09-22 | 2016-04-19 | Microsoft Technology Licensing, Llc | Accelerated data transfer using common prior data segments |
US8370479B2 (en) | 2006-10-03 | 2013-02-05 | Axeda Acquisition Corporation | System and method for dynamically grouping devices based on present device conditions |
US10366352B2 (en) * | 2006-10-06 | 2019-07-30 | The Crawford Group, Inc. | Method and system for communicating vehicle repair information to a business-to-business rental vehicle reservation management computer system |
US20100242034A1 (en) * | 2006-11-01 | 2010-09-23 | Microsoft Corporation | Distributing software products as an executable containing script logic with external resources |
US20080127175A1 (en) * | 2006-11-01 | 2008-05-29 | Microsoft Corporation | Packaging software products as single-file executables containing scripting logic |
US20080172612A1 (en) * | 2007-01-11 | 2008-07-17 | Melanie Allen | Dynamic help references for software documentation |
US8645948B2 (en) * | 2006-12-12 | 2014-02-04 | Qualcomm Incorporated | Apparatus and methods for client-driven server-side installation |
US7797746B2 (en) | 2006-12-12 | 2010-09-14 | Fortinet, Inc. | Detection of undesired computer files in archives |
US8160906B2 (en) * | 2006-12-12 | 2012-04-17 | The Crawford Group, Inc. | System and method for improved rental vehicle reservation management |
US9003296B2 (en) * | 2006-12-20 | 2015-04-07 | Yahoo! Inc. | Browser renderable toolbar |
US7844686B1 (en) | 2006-12-21 | 2010-11-30 | Maxsp Corporation | Warm standby appliance |
US8423821B1 (en) | 2006-12-21 | 2013-04-16 | Maxsp Corporation | Virtual recovery server |
US8065397B2 (en) | 2006-12-26 | 2011-11-22 | Axeda Acquisition Corporation | Managing configurations of distributed devices |
US9779556B1 (en) | 2006-12-27 | 2017-10-03 | Stamps.Com Inc. | System and method for identifying and preventing on-line fraud |
US20080184277A1 (en) * | 2007-01-26 | 2008-07-31 | Microsoft Corporation | Systems management policy validation, distribution and enactment |
US8196134B2 (en) * | 2007-02-08 | 2012-06-05 | Microsoft Corporation | Network service for a software change catalog |
US8819668B2 (en) * | 2007-02-08 | 2014-08-26 | Microsoft Corporation | Accessible limited distribution release software change catalog |
US8495157B2 (en) * | 2007-03-07 | 2013-07-23 | International Business Machines Corporation | Method and apparatus for distributed policy-based management and computed relevance messaging with remote attributes |
WO2008109848A2 (en) | 2007-03-07 | 2008-09-12 | Bigfix, Inc. | Pseudo-agent |
US20100332640A1 (en) * | 2007-03-07 | 2010-12-30 | Dennis Sidney Goodrow | Method and apparatus for unified view |
US8341616B2 (en) * | 2007-03-28 | 2012-12-25 | International Business Machines Corporation | Updating digitally signed active content elements without losing attributes associated with an original signing user |
US20080256485A1 (en) * | 2007-04-12 | 2008-10-16 | Jason Gary Krikorian | User Interface for Controlling Video Programs on Mobile Computing Devices |
US8612773B2 (en) * | 2007-05-03 | 2013-12-17 | International Business Machines Corporation | Method and system for software installation |
US8473492B1 (en) | 2007-05-17 | 2013-06-25 | Google Inc. | Advertising in desktop searches |
US8621093B2 (en) * | 2007-05-21 | 2013-12-31 | Google Inc. | Non-blocking of head end initiated revocation and delivery of entitlements non-addressable digital media network |
US8693494B2 (en) | 2007-06-01 | 2014-04-08 | Seven Networks, Inc. | Polling |
US8805425B2 (en) * | 2007-06-01 | 2014-08-12 | Seven Networks, Inc. | Integrated messaging |
US8243924B2 (en) * | 2007-06-29 | 2012-08-14 | Google Inc. | Progressive download or streaming of digital media securely through a localized container and communication protocol proxy |
US8478861B2 (en) | 2007-07-06 | 2013-07-02 | Axeda Acquisition Corp. | Managing distributed devices with limited connectivity |
US9264483B2 (en) | 2007-07-18 | 2016-02-16 | Hammond Development International, Inc. | Method and system for enabling a communication device to remotely execute an application |
US8160907B2 (en) * | 2007-07-25 | 2012-04-17 | The Crawford Group, Inc. | System and method for allocating replacement vehicle rental costs using a virtual bank of repair facility credits |
US7857222B2 (en) | 2007-08-16 | 2010-12-28 | Hand Held Products, Inc. | Data collection system having EIR terminal interface node |
CN101119387B (en) * | 2007-09-10 | 2012-11-14 | 北京网秦天下科技有限公司 | Method and system with convenience to customize, configure and transfer handset software service |
US8321538B2 (en) * | 2007-09-24 | 2012-11-27 | Hewlett-Packard Development Company, L.P. | Autonomous network device configuration method |
US8477793B2 (en) * | 2007-09-26 | 2013-07-02 | Sling Media, Inc. | Media streaming device with gateway functionality |
US8350971B2 (en) * | 2007-10-23 | 2013-01-08 | Sling Media, Inc. | Systems and methods for controlling media devices |
US8175418B1 (en) | 2007-10-26 | 2012-05-08 | Maxsp Corporation | Method of and system for enhanced data storage |
US8645515B2 (en) | 2007-10-26 | 2014-02-04 | Maxsp Corporation | Environment manager |
US8307239B1 (en) | 2007-10-26 | 2012-11-06 | Maxsp Corporation | Disaster recovery appliance |
US8364181B2 (en) | 2007-12-10 | 2013-01-29 | Seven Networks, Inc. | Electronic-mail filtering for mobile devices |
US8276136B2 (en) * | 2007-12-11 | 2012-09-25 | Red Hat, Inc. | Transparent configuration of a network appliance |
US9002828B2 (en) | 2007-12-13 | 2015-04-07 | Seven Networks, Inc. | Predictive content delivery |
US8793305B2 (en) | 2007-12-13 | 2014-07-29 | Seven Networks, Inc. | Content delivery to a mobile device from a content service |
US8060609B2 (en) * | 2008-01-04 | 2011-11-15 | Sling Media Inc. | Systems and methods for determining attributes of media items accessed via a personal media broadcaster |
US8107921B2 (en) | 2008-01-11 | 2012-01-31 | Seven Networks, Inc. | Mobile virtual network operator |
US8862657B2 (en) | 2008-01-25 | 2014-10-14 | Seven Networks, Inc. | Policy based content service |
US20090193338A1 (en) | 2008-01-28 | 2009-07-30 | Trevor Fiatal | Reducing network and battery consumption during content delivery and playback |
US8868464B2 (en) | 2008-02-07 | 2014-10-21 | Google Inc. | Preventing unauthorized modification or skipping of viewing of advertisements within content |
WO2009137365A1 (en) * | 2008-05-05 | 2009-11-12 | Sentilla Corporation, Inc. | Efficient broadcast of data in a communication network |
US8490077B2 (en) * | 2008-05-15 | 2013-07-16 | Microsoft Corporation | Runtime versioning and distribution of dynamic web-elements |
US8418164B2 (en) | 2008-05-29 | 2013-04-09 | Red Hat, Inc. | Image install of a network appliance |
US20090307682A1 (en) * | 2008-06-08 | 2009-12-10 | Sam Gharabally | Techniques for Acquiring Updates for Application Programs |
US20090313171A1 (en) * | 2008-06-17 | 2009-12-17 | Microsoft Corporation | Electronic transaction verification |
US8787947B2 (en) | 2008-06-18 | 2014-07-22 | Seven Networks, Inc. | Application discovery on mobile devices |
US8078158B2 (en) | 2008-06-26 | 2011-12-13 | Seven Networks, Inc. | Provisioning applications for a mobile device |
US8667279B2 (en) | 2008-07-01 | 2014-03-04 | Sling Media, Inc. | Systems and methods for securely place shifting media content |
US20100023352A1 (en) * | 2008-07-23 | 2010-01-28 | The Crawford Group, Inc. | System and Method for Improved Information Sharing by Repair Facilities for Managing Rental Vehicle Reservations |
US8381310B2 (en) | 2009-08-13 | 2013-02-19 | Sling Media Pvt. Ltd. | Systems, methods, and program applications for selectively restricting the placeshifting of copy protected digital media content |
US20100057703A1 (en) * | 2008-08-29 | 2010-03-04 | Brandt Matthew K | Systems and Methods for Automating Software Updates/Maintenance |
US20100070925A1 (en) * | 2008-09-08 | 2010-03-18 | Sling Media Inc. | Systems and methods for selecting media content obtained from multple sources |
US8667163B2 (en) * | 2008-09-08 | 2014-03-04 | Sling Media Inc. | Systems and methods for projecting images from a computer system |
US20100070965A1 (en) * | 2008-09-15 | 2010-03-18 | Justin Britten | Software Update Service with Compatibility Checking |
US8117346B2 (en) * | 2008-10-03 | 2012-02-14 | Microsoft Corporation | Configuration space virtualization |
US8909759B2 (en) | 2008-10-10 | 2014-12-09 | Seven Networks, Inc. | Bandwidth measurement |
US9191610B2 (en) * | 2008-11-26 | 2015-11-17 | Sling Media Pvt Ltd. | Systems and methods for creating logical media streams for media storage and playback |
US20100153884A1 (en) * | 2008-12-12 | 2010-06-17 | Yahoo! Inc. | Enhanced web toolbar |
US9519906B2 (en) * | 2008-12-19 | 2016-12-13 | Genesys Telecommunications Laboratories, Inc. | Method for monitoring and ranking web visitors and soliciting higher ranked visitors to engage in live assistance |
US8438602B2 (en) * | 2009-01-26 | 2013-05-07 | Sling Media Inc. | Systems and methods for linking media content |
US8171148B2 (en) * | 2009-04-17 | 2012-05-01 | Sling Media, Inc. | Systems and methods for establishing connections between devices communicating over a network |
US8959481B2 (en) * | 2009-04-30 | 2015-02-17 | International Business Machines Corporation | Determining system level dependencies |
WO2010140102A2 (en) * | 2009-06-02 | 2010-12-09 | Jungo Ltd. | Network communications using non-networking device drivers |
US8406431B2 (en) | 2009-07-23 | 2013-03-26 | Sling Media Pvt. Ltd. | Adaptive gain control for digital audio samples in a media stream |
CN101989208A (en) * | 2009-08-04 | 2011-03-23 | 鸿富锦精密工业(深圳)有限公司 | Software updating method |
US9479737B2 (en) * | 2009-08-06 | 2016-10-25 | Echostar Technologies L.L.C. | Systems and methods for event programming via a remote media player |
US20110032986A1 (en) * | 2009-08-07 | 2011-02-10 | Sling Media Pvt Ltd | Systems and methods for automatically controlling the resolution of streaming video content |
US9565479B2 (en) | 2009-08-10 | 2017-02-07 | Sling Media Pvt Ltd. | Methods and apparatus for seeking within a media stream using scene detection |
US8966101B2 (en) | 2009-08-10 | 2015-02-24 | Sling Media Pvt Ltd | Systems and methods for updating firmware over a network |
US20110035765A1 (en) * | 2009-08-10 | 2011-02-10 | Sling Media Pvt Ltd | Systems and methods for providing programming content |
US8532472B2 (en) * | 2009-08-10 | 2013-09-10 | Sling Media Pvt Ltd | Methods and apparatus for fast seeking within a media stream buffer |
US20110035466A1 (en) * | 2009-08-10 | 2011-02-10 | Sling Media Pvt Ltd | Home media aggregator system and method |
US8799408B2 (en) * | 2009-08-10 | 2014-08-05 | Sling Media Pvt Ltd | Localization systems and methods |
US9525838B2 (en) * | 2009-08-10 | 2016-12-20 | Sling Media Pvt. Ltd. | Systems and methods for virtual remote control of streamed media |
US9160974B2 (en) | 2009-08-26 | 2015-10-13 | Sling Media, Inc. | Systems and methods for transcoding and place shifting media content |
US8314893B2 (en) * | 2009-08-28 | 2012-11-20 | Sling Media Pvt. Ltd. | Remote control and method for automatically adjusting the volume output of an audio device |
US8966110B2 (en) * | 2009-09-14 | 2015-02-24 | International Business Machines Corporation | Dynamic bandwidth throttling |
US20110113354A1 (en) * | 2009-11-12 | 2011-05-12 | Sling Media Pvt Ltd | Always-on-top media player launched from a web browser |
US9015225B2 (en) * | 2009-11-16 | 2015-04-21 | Echostar Technologies L.L.C. | Systems and methods for delivering messages over a network |
US9497092B2 (en) | 2009-12-08 | 2016-11-15 | Hand Held Products, Inc. | Remote device management interface |
US8799485B2 (en) * | 2009-12-18 | 2014-08-05 | Sling Media, Inc. | Methods and apparatus for establishing network connections using an inter-mediating device |
US8626879B2 (en) * | 2009-12-22 | 2014-01-07 | Sling Media, Inc. | Systems and methods for establishing network connections using local mediation services |
US9178923B2 (en) * | 2009-12-23 | 2015-11-03 | Echostar Technologies L.L.C. | Systems and methods for remotely controlling a media server via a network |
US9275054B2 (en) | 2009-12-28 | 2016-03-01 | Sling Media, Inc. | Systems and methods for searching media content |
US20110191456A1 (en) * | 2010-02-03 | 2011-08-04 | Sling Media Pvt Ltd | Systems and methods for coordinating data communication between two devices |
US8856349B2 (en) * | 2010-02-05 | 2014-10-07 | Sling Media Inc. | Connection priority services for data communication between two devices |
US20110208506A1 (en) * | 2010-02-24 | 2011-08-25 | Sling Media Inc. | Systems and methods for emulating network-enabled media components |
US9043731B2 (en) | 2010-03-30 | 2015-05-26 | Seven Networks, Inc. | 3D mobile user interface with configurable workspace management |
FR2959633B1 (en) * | 2010-04-29 | 2012-08-31 | Airbus Operations Sas | METHOD FOR UPGRADING AN AIRCRAFT |
WO2012018556A2 (en) | 2010-07-26 | 2012-02-09 | Ari Backholm | Mobile application traffic optimization |
EP2599003B1 (en) | 2010-07-26 | 2018-07-11 | Seven Networks, LLC | Mobile network traffic coordination across multiple applications |
US8838783B2 (en) | 2010-07-26 | 2014-09-16 | Seven Networks, Inc. | Distributed caching for resource and mobile network traffic management |
US9077630B2 (en) | 2010-07-26 | 2015-07-07 | Seven Networks, Inc. | Distributed implementation of dynamic wireless traffic policy |
CN101984405A (en) * | 2010-10-11 | 2011-03-09 | 中兴通讯股份有限公司 | Method of software version upgrade and terminal and system |
GB2499534B (en) | 2010-11-01 | 2018-09-19 | Seven Networks Llc | Caching adapted for mobile application behavior and network conditions |
WO2012060995A2 (en) | 2010-11-01 | 2012-05-10 | Michael Luna | Distributed caching in a wireless network of content delivered for a mobile application over a long-held request |
US9060032B2 (en) | 2010-11-01 | 2015-06-16 | Seven Networks, Inc. | Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic |
US8204953B2 (en) | 2010-11-01 | 2012-06-19 | Seven Networks, Inc. | Distributed system for cache defeat detection and caching of content addressed by identifiers intended to defeat cache |
WO2012061430A2 (en) | 2010-11-01 | 2012-05-10 | Michael Luna | Distributed management of keep-alive message signaling for mobile network resource conservation and optimization |
US8484314B2 (en) | 2010-11-01 | 2013-07-09 | Seven Networks, Inc. | Distributed caching in a wireless network of content delivered for a mobile application over a long-held request |
US9330196B2 (en) | 2010-11-01 | 2016-05-03 | Seven Networks, Llc | Wireless traffic management system cache optimization using http headers |
US8166164B1 (en) | 2010-11-01 | 2012-04-24 | Seven Networks, Inc. | Application and network-based long poll request detection and cacheability assessment therefor |
US8843153B2 (en) | 2010-11-01 | 2014-09-23 | Seven Networks, Inc. | Mobile traffic categorization and policy for network use optimization while preserving user experience |
US9130801B1 (en) * | 2010-11-22 | 2015-09-08 | Google Inc. | Pushed-based package distribution |
CA2798523C (en) | 2010-11-22 | 2015-02-24 | Seven Networks, Inc. | Aligning data transfer to optimize connections established for transmission over a wireless network |
EP3422775A1 (en) | 2010-11-22 | 2019-01-02 | Seven Networks, LLC | Optimization of resource polling intervals to satisfy mobile device requests |
US9325662B2 (en) | 2011-01-07 | 2016-04-26 | Seven Networks, Llc | System and method for reduction of mobile network traffic used for domain name system (DNS) queries |
CN102063321B (en) * | 2011-01-12 | 2016-04-13 | 中兴通讯股份有限公司 | The installation method of terminal software, device and system |
GB2505103B (en) | 2011-04-19 | 2014-10-22 | Seven Networks Inc | Social caching for device resource sharing and management cross-reference to related applications |
US8832228B2 (en) | 2011-04-27 | 2014-09-09 | Seven Networks, Inc. | System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief |
US8621075B2 (en) | 2011-04-27 | 2013-12-31 | Seven Metworks, Inc. | Detecting and preserving state for satisfying application requests in a distributed proxy and cache system |
US9171314B2 (en) * | 2011-06-16 | 2015-10-27 | Microsoft Technology Licensing, Llc | Cloud based management of an in-store device experience |
US20130019235A1 (en) * | 2011-07-11 | 2013-01-17 | Salesforce.Com, Inc. | Mechanism for facilitating management of metadata and metada-based update of software |
EP2737742A4 (en) | 2011-07-27 | 2015-01-28 | Seven Networks Inc | Automatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network |
FR2978848B1 (en) | 2011-08-02 | 2013-08-30 | Viaccess Sa | METHOD FOR SMOOTHING THE WORKING LOAD OF A SERVER |
US8621123B2 (en) | 2011-10-06 | 2013-12-31 | Honeywell International Inc. | Device management using virtual interfaces |
US8539123B2 (en) | 2011-10-06 | 2013-09-17 | Honeywell International, Inc. | Device management using a dedicated management interface |
US8918503B2 (en) | 2011-12-06 | 2014-12-23 | Seven Networks, Inc. | Optimization of mobile traffic directed to private networks and operator configurability thereof |
US8977755B2 (en) | 2011-12-06 | 2015-03-10 | Seven Networks, Inc. | Mobile device and method to utilize the failover mechanism for fault tolerance provided for mobile traffic management and network/device resource conservation |
US9277443B2 (en) | 2011-12-07 | 2016-03-01 | Seven Networks, Llc | Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol |
US9009250B2 (en) | 2011-12-07 | 2015-04-14 | Seven Networks, Inc. | Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation |
US8751800B1 (en) | 2011-12-12 | 2014-06-10 | Google Inc. | DRM provider interoperability |
US9021021B2 (en) | 2011-12-14 | 2015-04-28 | Seven Networks, Inc. | Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system |
US8861354B2 (en) | 2011-12-14 | 2014-10-14 | Seven Networks, Inc. | Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization |
US9832095B2 (en) | 2011-12-14 | 2017-11-28 | Seven Networks, Llc | Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic |
CN103176805B (en) * | 2011-12-21 | 2017-09-19 | 富泰华工业(深圳)有限公司 | The method and system that executable program is installed |
WO2013103988A1 (en) | 2012-01-05 | 2013-07-11 | Seven Networks, Inc. | Detection and management of user interactions with foreground applications on a mobile device in distributed caching |
US9203864B2 (en) | 2012-02-02 | 2015-12-01 | Seven Networks, Llc | Dynamic categorization of applications for network access in a mobile network |
US9326189B2 (en) | 2012-02-03 | 2016-04-26 | Seven Networks, Llc | User as an end point for profiling and optimizing the delivery of content and data in a wireless network |
US8812695B2 (en) | 2012-04-09 | 2014-08-19 | Seven Networks, Inc. | Method and system for management of a virtual network connection without heartbeat messages |
WO2013155208A1 (en) | 2012-04-10 | 2013-10-17 | Seven Networks, Inc. | Intelligent customer service/call center services enhanced using real-time and historical mobile application and traffic-related statistics collected by a distributed caching system in a mobile network |
US9203624B2 (en) | 2012-06-04 | 2015-12-01 | Apple Inc. | Authentication and notification heuristics |
US8775631B2 (en) | 2012-07-13 | 2014-07-08 | Seven Networks, Inc. | Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications |
US8799662B2 (en) * | 2012-07-27 | 2014-08-05 | Adobe Systems Incorporated | Method and apparatus for validating the integrity of installer files prior to installation |
US9161258B2 (en) | 2012-10-24 | 2015-10-13 | Seven Networks, Llc | Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion |
US8938424B2 (en) | 2012-10-31 | 2015-01-20 | Ca, Inc. | System and method of assessing the state of a database product for installation consistency |
US8887151B2 (en) * | 2012-12-14 | 2014-11-11 | Google Inc. | Systems and methods for managing updates to applications installed on electronic devices |
US20140177497A1 (en) | 2012-12-20 | 2014-06-26 | Seven Networks, Inc. | Management of mobile device radio state promotion and demotion |
US9185161B2 (en) * | 2012-12-31 | 2015-11-10 | General Electric Company | Systems and methods for synchronizing non-destructive testing devices |
US9271238B2 (en) | 2013-01-23 | 2016-02-23 | Seven Networks, Llc | Application or context aware fast dormancy |
US8874761B2 (en) | 2013-01-25 | 2014-10-28 | Seven Networks, Inc. | Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols |
US9326185B2 (en) | 2013-03-11 | 2016-04-26 | Seven Networks, Llc | Mobile network congestion recognition for optimization of mobile traffic |
WO2014209078A1 (en) * | 2013-06-28 | 2014-12-31 | Samsung Electronics Co., Ltd. | Method and apparatus for updating application |
US9065765B2 (en) | 2013-07-22 | 2015-06-23 | Seven Networks, Inc. | Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network |
US10503495B2 (en) | 2017-08-02 | 2019-12-10 | Accenture Global Solutions Limited | Component management platform |
CN107526618A (en) * | 2017-09-04 | 2017-12-29 | 深圳互联先锋科技有限公司 | system installation method and device |
US10776094B2 (en) * | 2018-07-29 | 2020-09-15 | ColorTokens, Inc. | Computer implemented system and method for encoding configuration information in a filename |
US11005655B2 (en) * | 2018-10-31 | 2021-05-11 | Dell Products L.P. | System and method of providing information to a device |
US11138343B2 (en) * | 2019-01-18 | 2021-10-05 | International Business Machines Corporation | Multiple signatures in metadata for the same data record |
US11599837B2 (en) | 2020-12-30 | 2023-03-07 | Microsoft Technology Licensing, Llc | Method and system for selection of users in feature rollout |
US11829743B2 (en) | 2021-09-29 | 2023-11-28 | Microsoft Technology Licensing, Llc | Method and system for providing customized rollout of features |
Family Cites Families (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4558413A (en) | 1983-11-21 | 1985-12-10 | Xerox Corporation | Software version management system |
US4982430A (en) | 1985-04-24 | 1991-01-01 | General Instrument Corporation | Bootstrap channel security arrangement for communication network |
US5047928A (en) * | 1986-10-24 | 1991-09-10 | Wiedemer John D | Billing system for computer software |
US4796181A (en) * | 1986-10-24 | 1989-01-03 | Wiedemer John D | Billing system for computer software |
US5155680A (en) * | 1986-10-24 | 1992-10-13 | Signal Security Technologies | Billing system for computing software |
US5155847A (en) * | 1988-08-03 | 1992-10-13 | Minicom Data Corporation | Method and apparatus for updating software at remote locations |
US4953209A (en) | 1988-10-31 | 1990-08-28 | International Business Machines Corp. | Self-verifying receipt and acceptance system for electronically delivered data objects |
US5142680A (en) * | 1989-04-26 | 1992-08-25 | Sun Microsystems, Inc. | Method for loading an operating system through a network |
CA2053261A1 (en) * | 1989-04-28 | 1990-10-29 | Gary D. Hornbuckle | Method and apparatus for remotely controlling and monitoring the use of computer software |
US5003591A (en) | 1989-05-25 | 1991-03-26 | General Instrument Corporation | Functionally modifiable cable television converter system |
US5473772A (en) * | 1991-04-02 | 1995-12-05 | International Business Machines Corporation | Automatic update of static and dynamic files at a remote network node in response to calls issued by or for application programs |
US5267171A (en) * | 1990-03-29 | 1993-11-30 | Brother Kogyo Kabushiki Kaisha | Computer software vending machine |
EP0463251A1 (en) | 1990-06-28 | 1992-01-02 | International Business Machines Corporation | Software installation |
JPH0792744B2 (en) * | 1990-08-20 | 1995-10-09 | インターナショナル・ビジネス・マシーンズ・コーポレイション | A method of installing multi-level application software on a data processing device. |
EP0496494A3 (en) * | 1991-01-22 | 1993-05-12 | International Business Machines Corporation | Software maintenance system |
US5367621A (en) | 1991-09-06 | 1994-11-22 | International Business Machines Corporation | Data processing method to provide a generalized link from a reference point in an on-line book to an arbitrary multimedia object which can be dynamically updated |
US5155484A (en) * | 1991-09-13 | 1992-10-13 | Salient Software, Inc. | Fast data compressor with direct lookup table indexing into history buffer |
AU662805B2 (en) * | 1992-04-06 | 1995-09-14 | Addison M. Fischer | A method for processing information among computers which may exchange messages |
US5528490A (en) * | 1992-04-10 | 1996-06-18 | Charles E. Hill & Associates, Inc. | Electronic catalog system and method |
US5586322A (en) * | 1992-06-11 | 1996-12-17 | Beck; Robert E. | Workgroup organized network manager with workstation comparison system |
EP0592079A2 (en) * | 1992-09-20 | 1994-04-13 | Sun Microsystems, Inc. | Automated software installation and operating environment configuration on a computer system |
JP2543324B2 (en) * | 1993-03-23 | 1996-10-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Method and computer system for presenting the function of computer application software to a user |
AU683038B2 (en) * | 1993-08-10 | 1997-10-30 | Addison M. Fischer | A method for operating computers and for processing information among computers |
US5860012A (en) * | 1993-09-30 | 1999-01-12 | Intel Corporation | Installation of application software through a network from a source computer system on to a target computer system |
US5495411A (en) * | 1993-12-22 | 1996-02-27 | Ananda; Mohan | Secure software rental system using continuous asynchronous password verification |
US5421009A (en) * | 1993-12-22 | 1995-05-30 | Hewlett-Packard Company | Method of remotely installing software directly from a central computer |
US5845090A (en) * | 1994-02-14 | 1998-12-01 | Platinium Technology, Inc. | System for software distribution in a digital computer network |
US6732358B1 (en) | 1994-03-24 | 2004-05-04 | Ncr Corporation | Automatic updating of computer software |
US5694546A (en) * | 1994-05-31 | 1997-12-02 | Reisman; Richard R. | System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list |
US6769009B1 (en) * | 1994-05-31 | 2004-07-27 | Richard R. Reisman | Method and system for selecting a personalized set of information channels |
US5586304A (en) * | 1994-09-08 | 1996-12-17 | Compaq Computer Corporation | Automatic computer upgrading |
JPH0887460A (en) * | 1994-09-19 | 1996-04-02 | Seiko Epson Corp | Installation system |
US5838906A (en) * | 1994-10-17 | 1998-11-17 | The Regents Of The University Of California | Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document |
US5654746A (en) | 1994-12-01 | 1997-08-05 | Scientific-Atlanta, Inc. | Secure authorization and control method and apparatus for a game delivery service |
US5654901A (en) * | 1995-01-30 | 1997-08-05 | Telefonaktiebolaget Lm Ericsson | Loading software into field test equipment |
US5742829A (en) | 1995-03-10 | 1998-04-21 | Microsoft Corporation | Automatic software installation on heterogeneous networked client computer systems |
US5689711A (en) * | 1995-04-21 | 1997-11-18 | Bardasz; Theodore | Method and apparatus for representing data dependencies in software modeling systems |
US5764992A (en) | 1995-06-06 | 1998-06-09 | Apple Computer, Inc. | Method and apparatus for automatic software replacement |
US5710918A (en) | 1995-06-07 | 1998-01-20 | International Business Machines Corporation | Method for distributed task fulfillment of web browser requests |
US5701451A (en) | 1995-06-07 | 1997-12-23 | International Business Machines Corporation | Method for fulfilling requests of a web browser |
US6016520A (en) | 1995-07-14 | 2000-01-18 | Microsoft Corporation | Method of viewing at a client viewing station a multiple media title stored at a server and containing a plurality of topics utilizing anticipatory caching |
US5678002A (en) | 1995-07-18 | 1997-10-14 | Microsoft Corporation | System and method for providing automated customer support |
US5913040A (en) | 1995-08-22 | 1999-06-15 | Backweb Ltd. | Method and apparatus for transmitting and displaying information between a remote network and a local computer |
US5638446A (en) * | 1995-08-28 | 1997-06-10 | Bell Communications Research, Inc. | Method for the secure distribution of electronic files in a distributed environment |
US5862362A (en) * | 1995-10-05 | 1999-01-19 | Microsoft Corporation | Network failure simulator |
US5634056A (en) * | 1995-10-06 | 1997-05-27 | Runtime Design Automation | Run time dependency management facility for controlling change propagation utilizing relationship graph |
US5845077A (en) * | 1995-11-27 | 1998-12-01 | Microsoft Corporation | Method and system for identifying and obtaining computer software from a remote computer |
US5708709A (en) * | 1995-12-08 | 1998-01-13 | Sun Microsystems, Inc. | System and method for managing try-and-buy usage of application programs |
KR100286008B1 (en) | 1995-12-30 | 2001-04-16 | 윤종용 | Method for automatically updating software program |
US5732275A (en) | 1996-01-11 | 1998-03-24 | Apple Computer, Inc. | Method and apparatus for managing and automatically updating software programs |
WO1997035254A1 (en) * | 1996-03-19 | 1997-09-25 | Massachusetts Institute Of Technology | Computer system and computer implemented process for representing software system descriptions and for generating executable computer programs and computer system configurations from software system descriptions |
US5835777A (en) | 1996-03-20 | 1998-11-10 | Hewlett-Packard Company | Method of automatically generating a software installation package |
US5706502A (en) | 1996-03-25 | 1998-01-06 | Sun Microsystems, Inc. | Internet-enabled portfolio manager system and method |
US6049671A (en) * | 1996-04-18 | 2000-04-11 | Microsoft Corporation | Method for identifying and obtaining computer software from a network computer |
US5721824A (en) | 1996-04-19 | 1998-02-24 | Sun Microsystems, Inc. | Multiple-package installation with package dependencies |
US5781707A (en) * | 1996-06-24 | 1998-07-14 | Hewlett-Packard Company | Method and apparatus for preventing print overruns by controlling print engine speed |
US6332217B1 (en) * | 1997-05-09 | 2001-12-18 | Hearme | Software inventory control system |
US6529784B1 (en) * | 2000-02-29 | 2003-03-04 | Caldera Systems, Inc. | Method and apparatus for monitoring computer systems and alerting users of actual or potential system errors |
US6874084B1 (en) * | 2000-05-02 | 2005-03-29 | International Business Machines Corporation | Method and apparatus for establishing a secure communication connection between a java application and secure server |
US20020124172A1 (en) * | 2001-03-05 | 2002-09-05 | Brian Manahan | Method and apparatus for signing and validating web pages |
US7096362B2 (en) * | 2001-06-01 | 2006-08-22 | International Business Machines Corporation | Internet authentication with multiple independent certificate authorities |
US7231659B2 (en) * | 2001-07-31 | 2007-06-12 | Verisign, Inc. | Entity authentication in a shared hosting computer network environment |
US7562222B2 (en) * | 2002-05-10 | 2009-07-14 | Rsa Security Inc. | System and method for authenticating entities to users |
US7413085B2 (en) * | 2004-09-07 | 2008-08-19 | Iconix, Inc. | Techniques for displaying emails listed in an email inbox |
-
1996
- 1996-04-18 US US08/634,390 patent/US6049671A/en not_active Expired - Lifetime
-
1998
- 1998-10-09 US US09/169,618 patent/US6256668B1/en not_active Expired - Lifetime
-
2001
- 2001-07-02 US US09/898,702 patent/US7149789B2/en not_active Expired - Lifetime
-
2003
- 2003-04-30 US US10/427,189 patent/US20030195949A1/en not_active Abandoned
-
2004
- 2004-09-17 US US10/943,349 patent/US20050044544A1/en not_active Abandoned
Cited By (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050044544A1 (en) * | 1996-04-18 | 2005-02-24 | Microsoft Corporation | Methods and systems for obtaining computer software via a network |
US9292273B2 (en) * | 1996-06-07 | 2016-03-22 | Mcafee, Inc. | Software uninstallation system, method and computer program product |
US20140189675A1 (en) * | 1996-06-07 | 2014-07-03 | William Cheng | Software uninstallation system, method and computer program product |
US20140109079A1 (en) * | 1996-06-07 | 2014-04-17 | William Cheng | Software uninstallation system, method and computer program product |
US8644303B2 (en) | 1998-04-03 | 2014-02-04 | Rpx Corporation | Systems and methods for multiple mode voice and data communications using intelligently bridged TDM and packet buses |
US8675671B2 (en) | 1998-04-03 | 2014-03-18 | Rpx Corporation | Systems and methods for multiple mode voice and data communications using intelligently bridged TDM and packet buses and methods for performing telephony and data functions using the same |
US20040031030A1 (en) * | 2000-05-20 | 2004-02-12 | Equipe Communications Corporation | Signatures for facilitating hot upgrades of modular software components |
US6880086B2 (en) * | 2000-05-20 | 2005-04-12 | Ciena Corporation | Signatures for facilitating hot upgrades of modular software components |
US7930692B2 (en) | 2000-12-14 | 2011-04-19 | Intel Corporation | Updating information in network devices |
US20020078222A1 (en) * | 2000-12-14 | 2002-06-20 | Compas Jeffrey C. | Updating information in network devices |
US20020112232A1 (en) * | 2001-02-15 | 2002-08-15 | Ream James A. | System and process for building host computers |
US8209412B2 (en) * | 2002-12-19 | 2012-06-26 | Converged Data Solutions, Inc. | Methods for managing a plurality of devices using protectable communication protocol, including determination of marketing feedback to assess a response to an advertisement |
US20040122923A1 (en) * | 2002-12-19 | 2004-06-24 | Kamenetsky Mark L. | Systems and methods for improved multisite management of converged communication systems and computer systems |
US9270735B2 (en) * | 2002-12-19 | 2016-02-23 | Rpx Corporation | Systems and methods for improved multisite management and reporting of converged communication systems and computer systems |
US20140189084A1 (en) * | 2002-12-19 | 2014-07-03 | Mark L Kamenetsky | Systems and methods for improved multisite management and reporting of converged communication systems and computer systems |
US20050027848A1 (en) * | 2002-12-19 | 2005-02-03 | Kamenetsky Mark L. | Systems and methods for improved multisite management and reporting of converged communication systems and computer systems |
US8346905B2 (en) * | 2002-12-19 | 2013-01-01 | Converged Data Solutions Inc. | Systems and methods for improved multisite management and reporting of converged communication systems and computer systems |
US7739365B2 (en) * | 2002-12-19 | 2010-06-15 | Converged Data Solutions, Inc. | Methods for providing a report database for a plurality of localized devices using an abstraction layer and atomic error handling |
US20110078296A1 (en) * | 2002-12-19 | 2011-03-31 | Kamenetsky Mark L | Systems and methods for improved multisite management and reporting of converged communication systems and computer systems |
US7908352B2 (en) * | 2002-12-19 | 2011-03-15 | Converged Data Solutions, Inc. | Methods for managing a plurality of localized devices in geographically diverse locations |
US20100275029A1 (en) * | 2003-02-21 | 2010-10-28 | Research In Motion Limited | System and method of installing software applications on electronic devices |
US8429410B2 (en) * | 2003-02-21 | 2013-04-23 | Research In Motion Limited | System and method of installing software applications on electronic devices |
US20040192260A1 (en) * | 2003-03-31 | 2004-09-30 | Seiko Epson Corporation | Data backup system and data backup method, wearable computer, mail transmission system, image-information transmission system, and data backup program |
US8930934B2 (en) * | 2003-09-05 | 2015-01-06 | Time Warner Cable Enterprises Llc | Technique for updating a resident application and associated parameters in a user terminal through a communications network |
US20090183219A1 (en) * | 2003-09-05 | 2009-07-16 | Stephen L Maynard | Technique for updating a resident application and associated parameters in a user terminal through a communications network |
US20070169109A1 (en) * | 2003-11-21 | 2007-07-19 | Peter Neswal | Method for the installation and configuration of software components |
US20110125926A1 (en) * | 2004-05-04 | 2011-05-26 | Price Robert M | System and method for communicating with electronic devices |
US20060026304A1 (en) * | 2004-05-04 | 2006-02-02 | Price Robert M | System and method for updating software in electronic devices |
US7904608B2 (en) * | 2004-05-04 | 2011-03-08 | Price Robert M | System and method for updating software in electronic devices |
US20120192173A1 (en) * | 2004-05-04 | 2012-07-26 | Price Robert M | System and method for updating software in electronic devices |
US20060015864A1 (en) * | 2004-07-15 | 2006-01-19 | Lg Electronics Inc. | System and method for downloading ROM image to wireless terminal |
US20070283346A1 (en) * | 2006-04-21 | 2007-12-06 | David Delgrosso | System and method for remote management and facilitating installation and registration of software |
US8065675B2 (en) * | 2007-03-21 | 2011-11-22 | Yahoo! Inc. | In-page installer |
US20080235680A1 (en) * | 2007-03-21 | 2008-09-25 | Yahoo! Inc. | In-Page Installer |
TWI402751B (en) * | 2007-03-21 | 2013-07-21 | Yahoo Inc | In-page installer |
US20090106764A1 (en) * | 2007-10-22 | 2009-04-23 | Microsoft Corporation | Support for globalization in test automation |
US20090119660A1 (en) * | 2007-11-07 | 2009-05-07 | International Business Machines Corporation | Micro installation process for software packaging and distribution |
US20090119215A1 (en) * | 2007-11-07 | 2009-05-07 | Microsoft Corporation | Secure e-payments |
US8495622B2 (en) * | 2007-11-07 | 2013-07-23 | International Business Machines Corporation | Micro installation process for software packaging and distribution |
US8346897B2 (en) | 2008-02-25 | 2013-01-01 | Jon Jaroker | System and method for deploying and maintaining software applications |
US8938523B2 (en) | 2008-02-25 | 2015-01-20 | Jon Jaroker | System and method for deploying and maintaining software applications |
US9021460B2 (en) * | 2011-02-03 | 2015-04-28 | Nec Corporation | Software management system |
US20120204167A1 (en) * | 2011-02-03 | 2012-08-09 | Nec Corporation | Software management system |
US11157583B2 (en) * | 2018-09-14 | 2021-10-26 | International Business Machines Corporation | Software detection based on user accounts |
Also Published As
Publication number | Publication date |
---|---|
US6256668B1 (en) | 2001-07-03 |
US20050044544A1 (en) | 2005-02-24 |
US7149789B2 (en) | 2006-12-12 |
US6049671A (en) | 2000-04-11 |
US20010042112A1 (en) | 2001-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7149789B2 (en) | Distributing software via distribution files | |
US6073214A (en) | Method and system for identifying and obtaining computer software from a remote computer | |
US8527977B1 (en) | Software uninstallation system, method and computer program product | |
CA2257692C (en) | Use of polymorphic package files to update software components | |
US7171660B2 (en) | Intelligent patch checker | |
US5752042A (en) | Server computer for selecting program updates for a client computer based on results of recognizer program(s) furnished to the client computer | |
US6259442B1 (en) | Downloading software from a server to a client | |
US20030028869A1 (en) | Method and computer program product for integrating non-redistributable software applications in a customer driven installable package | |
MXPA05006621A (en) | System and method for updating installation components in a networked environment. | |
JPH1091454A (en) | Method for executing software remotely | |
JP2002007129A (en) | Method for updating software and system for the same | |
Cisco | Release Notes for Cisco IOS 11.2(9) Feature Packs Cisco 1600 | |
KR20040041138A (en) | Method for automatic mapping version and client module distribution according to distributed server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034766/0001 Effective date: 20141014 |