GB2333865A - Synchronised updating of interoperating software - Google Patents
Synchronised updating of interoperating software Download PDFInfo
- Publication number
- GB2333865A GB2333865A GB9808657A GB9808657A GB2333865A GB 2333865 A GB2333865 A GB 2333865A GB 9808657 A GB9808657 A GB 9808657A GB 9808657 A GB9808657 A GB 9808657A GB 2333865 A GB2333865 A GB 2333865A
- Authority
- GB
- United Kingdom
- Prior art keywords
- computer programs
- updater
- computer
- update
- requisite
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
Provided is a method and mechanism for automatic updating of computer programs and synchronising updates of computer programs and their pre-requisite programs to maintain interoperability. Conventionally, computer programs have been distributed on a recording medium for users to install on their computer systems. Each time fixes, additions and new versions for the programs were developed, a new CD or diskette was required to be delivered to users to enable them to install the update. More recently some software has been downloadable across a network, but the effort for users obtaining and installing updates and the effort for software vendors to distribute updates remains undesirable. The invention provides an updater agent which is associated with a computer program and which accesses relevant network locations and automatically downloads and installs any available updates to its associated program if those updates satisfy predefined update criteria of the updater agent. The updater agents are able to communicate with each other and the update process include the updater agent of a first computer program determining whether pre-requisite programs require updating to maintain interoperability and then requesting updates to the first program's pre-requisites programs when required.
Description
A METHOD AND A MECHANISM FOR SYNCHRONISED UPDATING
OF INTEROPHRATING SOFTWARE
Field of Invention
The present invention relates to synchronised updating of interoperating computer programs to maintain interoperability when the programs are updated.
Background
Software has conventionally been distributed in the form of programs recorded on a recording medium such as a diskette or compact disk. Customers buy the recording medium and a licence to use the software recorded on the medium, and then install the software onto their computers from the recording medium. The manufacture and distribution of the pre-recorded recording media are expensive, and this cost will be passed on to the customer. Also, the effort for customers of ordering or shopping for the software is undesirable.
The distribution cost is particularly problematic because most software products are frequently updated, both to correct bugs and to add new features, after the software has been delivered to the user. Some types of software products are updated many times each year. The cost of sending a new diskette or CD to all registered customers every time the software is upgraded or corrected is prohibitive and, although many customers want their software to be the most up-to-date, highest performance version and to be error free, not all customers want to receive every update. For example, the vendor may charge more for updates than the customer wants to spend, or new versions may require upgrading of other pre-requisite software products which the customer does not want to buy, or migrating to new versions may require migration of data which would disable the customer's system for a period of time.
Thus, software vendors tend to publicise the availability of new versions of their software and leave it for the customer to decide whether to purchase the latest upgraded version. For some software products, however, it is appropriate for the software vendor to proactively send out upgraded versions, or at least error correction and enhancement code (known as "patches") for their software products.
Whatever a particular company's policy, significant costs and effort are involved in releasing these various types of software updates.
Increasingly, software distributors are using the Internet as a mechanism for publicising the availability of updates to their software, and even for distributing some software. The Internet is a network of computer networks having no single owner or controller and including large and small, public and private networks, and in which any connected computer running internet Protocol software is, subject to security controls, capable of exchanging information with any other computer which is also connected to the Internet. This composite collection of networks which have agreed to connect to one another relies on no single transmission medium (for example, bidirectional communication can occur via satellite links, fiber-optic trunk lines, telephone lines, cable television wires and local radio links).
The World Wide Web Internet service (hereafter 'the Web) is a wide area information retrieval facility which provides access to an enormous quantity of network-accessible information and which can provide low cost communications between Internet-connected computers. It is known for software vendors' customers who have Internet access to access the vendors' Web sites to manually check lists of the latest available versions of products and then to order the products on-line. This reduces the amount of paperwork involved in ordering software (and is equally applicable to other products) . Some companies have also enabled their software to be downloaded directly from a Web site on a server computer to the customer's own computer (although this download capability is often restricted to bug fixing patches, low cost programs, and demonstration or evaluation copies of programs, for security reasons and because applying patches tends not to require any change to pre-requisite software or any data migration).
Information about the World Wide Web can be found in "Spinning the Web by Andrew Ford (International Thomson Publishing, London 1995) and "The World Wide Web Unleashed" by John December and Neil Randall (SAMS
Publishing, Indianapolis 1994). Use of the www is growing at an explosive rate because of its combination of flexibility, portability and ease-of-use, coupled with interactive multimedia presentation capabilities. The www allows any computer connected to the Internet and having the appropriate software and hardware configuration to retrieve any document that has been made available anywhere on the Internet.
This increasing usage of the Internet for ordering and distribution of software has saved costs for software vendors, but for many software products the vendor cannot just rely on all customers to access his Web pages at appropriate times and so additional update mechanisms are desirable.
As well as the problem of manufacture and distribution cost associated with distributing media, there is the problem that customers typically need to make considerable proactive effort to find out whether they have the best and the latest version and release of a software product and to obtain and apply updates. Although this effort is reduced when Internet connections are available, even a requirement for proactive checking of Web sites is undesirable to many users since it involves setting up reminders to carry out checks, finding and accessing a software provider's Web site, navigating to the Web page on which latest software versions and patches are listed, and comparing version and release numbers within this list with the installed software to determine whether a relevant product update is available and to decide whether it should be ordered. There may be an annoying delay between ordering an update and it being available for use, and even if the update can be downloaded immediately the task of migrating to an upgraded version of a software product can be difficult. If these steps have to be repeated for every application, control panel, extension, utility, and system software program installed on the system then updating becomes very tedious and time consuming. Therefore, manual updating tends not to be performed thoroughly or regularly.
There is the related problem that software vendors do not know what version of their software is being used by each customer. Even if the latest version of their software has been diligently distributed to every registered customer (by sending out CDs or by server-controlled on-line distribution), there is still no guarantee that the customer has taken the trouble to correctly install the update. This takes away some of the freedom of software developers since they generally have to maintain backward compatibility with previous versions of their software or to make other concessions for users who do not upgrade.
It is known in a client-server computing environment for a systemadministrator at the server end to impose new versions of software products on end users at client systems at the administrator's discretion. However, this has only been possible where the administrator has access control for updating the clients system. This takes no account of users who do not want upgrades to be imposed on them.
Yet a further related problem is that software products often require other software products to enable them to work. For example, application programs are typically written to interoperate with a specific operating system. Since specific versions of one product often require specific versions of other products, upgrading a first product without upgrading others can result in the first product not working.
"Insider Updates 2.0" is a commercially available software updater utility from Insider Software Corporation which, when triggered by the user, creates an inventory of installed software on a user's Apple
Macintosh computer and compares this with a database of available software update patches (but not upgraded product versions) and downloads relevant updates. "Insider Updates" shifts the responsibility for finding relevant updates from the user to the database maintainer, but the access to update patches is limited to a connection to an individual database and the tasks of scanning the Internet and on-line services to find updates and of maintaining the database of available updates require significant proactive effort. "Insider Updates" does not install the updates or modify the user's software in any way. "Insider Updates" does not address the problem of unsynchronised pre-requisite software products.
A similar product which scans selected volumes of a computer system to determine the installed software and which connects to a database of software titles for the Apple Macintosh, but does not download updates, is Symmetry Software Corporation's "Version Master 1.5".
An alternative update approach is provided by "Shaman Update Server 1.1.6" from Shaman Corporation, which consists of: a CD-ROM (updated and distributed monthly) that users install on a PowerMac file server; client software for each Macintosh computer to be inventoried and updated; and means for accessing an FTP site storing a library of current updates.
"Shaman Update Server" creates an inventory of networked computers and downloads and distributes latest versions of software to each computer.
Network administrators centrally control this inventory and updating process. The distribution of CD-ROMS has the expense problems described earlier.
Marimba Inc's software product "Castanet UpdateNow"'M' implements a combination of transmission of updates to client systems and support for the development of client applications following the instructions of administrator defined update command files to achieve either centralised or user controlled update management. Castanet UpdateNow does not provide for synchronized updating of collaborative software products.
Novadigm Incus "Enterprise Desktop Manager"M (EDM) provides for desktop software packages to be updated by means of an 'actual state' model and a 'desired state' model, which are administrator-created definitions of existing and desired desktop configurations. These object models are placed on a server computer and the server, at some predefined time, communicates with client computer systems and compares their actual state model and desired state model. The differences are translated into a list of required resources (software components, configuration files, etc) which are then downloaded and installed on the client system. EDM provides a centralised resource management which relies on server control and manual effort by an administrator to set and test configuration models and to install update resources at the server.
Summarv of Invention
According to a first aspect of the invention there is provided an updater component and a method, implemented by an updater component installed on a computer system connected within a computer network, for synchronising updates to computer programs installed on the computer system, the method comprising:
in response to initiation of an update of a first one of said installed computer programs, the updater component accessing a list of said first computer program's pre-requisite computer programs, comparing the listed pre-requisite computer programs with computer programs installed on the computer system, and determining positively or negatively whether performing the requested update of the first computer program requires updating of pre-requisite computer programs; and
if the determination is positive, the updater component initiating an update of said pre-requisite computer programs.
Controlling synchronisation of updates of computer programs and their pre-requisite programs by means of an updater component installed on the local system represents an improvement over prior art methods which implement server-controlled distribution of updates since a greater degree of automation and client control is achievable. With known servercontrolled distribution, synchronisation of updates is only possible with manual setting of configuration models which define desired desktop configurations (as well as installation and testing of update software at a distribution server), followed by server-controlled distribution. The predefinition and maintenance of desired state desktop configurations represents a significant overhead.
with the present invention, updating of computer programs and their pre-requisite programs can be initiated and controlled by a locallyinstalled updater component which accesses a list of the pre-requisite products for each enhanced version of the programs. Initiation of an update may be in response to a timer expiry for periodic update attempts, or may be part of the computer system's boot-up procedure, or may be at other times as defined by an update policy for the system.
According to a second aspect of the invention, there is provided a method of updating computer programs and an updater component for use in updating computer programs installed on a computer system connected within a computer network, the updater component including:
means for initiating access to a first set of identifiable network locations at which are provided identifications of software resources required for applying updates to at least a first computer program and identifications of any computer programs which are pre-requisites for the operation of said first computer program when updated;
means for comparing the identified software resources and identified pre-requisite computer programs with computer programs installed on said computer system, to identify computer programs to be updated;
means for initiating access to a second set of identifiable locations within the network (which may be the same locations as the first set, and either 'set' may be a single location) at which are provided said identified software resources, to retrieve said identified software resources for applying updates;
means for triggering updating of said pre-requisite computer programs; and
means for applying updates to said installed computer programs using the retrieved software resources.
The triggering of updating of pre-requisite computer programs is preferably implemented by the updater component of a first computer program communicating an update requirement to an updater component of the identified pre-requisite computer program. According to a preferred embodiment of the invention, updater components register themselves with a repository within the computer system when the updater components are installed, and installation of updater components is preferably an integral part of installation of the updater component's associated computer program. Since the updater components for all installed computer programs register with the repository, each updater component is identifiable and contactable by other updater components by reference to registration information in the repository.
A distinct advantage of the present invention over servercontrolled update mechanisms which rely on administrator defined system configurations is that the present invention has the flexibility to automatically deal with any depth of inter-dependency in the relationship between pre-requisite products. That is, updating a first program may require updating of a second, which may require updating of a third, and this can be implemented by updater components communicating their update requirements to each other and consequent triggering of updates without any input from the administrator or user.
Furthermore, the invention according to the preferred embodiment deals with cyclic dependencies (such as where a first product A at version 2.1 requires product B at version 2.1, and B at 2.1 also requires
A at 2.1). Indeed, the method of the present invention according to the preferred embodiment imposes no constraint over the topology of the update sequence of mutually dependent interoperating products.
An updater component according to a preferred embodiment of the invention thus controls upgrading of, and fixing of bugs within, an associated software product or products automatically without requiring any interaction by the user after an initial agreement of update criteria. The update criteria can be associated with the products' licensing terms and conditions. This ensures that users who adopt a suitable update policy can always have the most up-to-date software available, with errors being corrected automatically from the viewpoint of the user. The user does not need to know where software updates come from, how to obtain them or how to install them since the update component takes care of this. The software vendor avoids having to ship special CDs or diskettes to correct errors or provide additional features; the vendor can easily release code on an incremental basis such that customers receive new product features sooner and with no effort.
An updater component according to a preferred embodiment of the invention performs a comparison between available software updates and installed software on the local computer system to identify which are relevant to the installed software, compares the available relevant updates with update criteria held on the local computer system (these update criteria are predefined for the current system or system user), and then automatically downloads and applies software updates which satisfy the predefined criteria.
This automatic applying of software updates preferably involves installing available software patches and/or upgraded versions in accordance with both the predefined update criteria and instructions for installation which are downloaded together with the program code required for the update. This feature of executing dynamically downloaded instructions provides flexibility in relation to the types of updates that can be handled by an updater component. It can also be used to enable a single generic updater component to be used with many different software products. Alternatively, the installation instructions for certain software updates may be pre-coded within the updater component.
The "software resources are typically a combination of program code, machine readable installation instructions and any required data changes such as address information.
A system according to the invention preferably retrieves update resources for implementing an update of an installed computer program by sending an update request to one or more computer systems at network locations at which the required software resources are provided (together with a list of update resources and pre-requisites). The information used to identify the network locations may be explicit network location information held by the updater component, or it may be a software vendor name or any other information which can be used as a search parameter for identifying the location. In the preferred embodiment, the information is a product identifier which is provided by the updater component to a network search engine to initiate a search to identify the relevant network location at which are stored software resources for implementing an update to that product. This search may be performed by a conventional
Internet (or other network) search engine which is called by the updater component. When the search engine returns an identification of the network location, the updater component retrieves from this location a list of available relevant updates, checks the list against the locally held software product version and against predefined update criteria, and retrieves the update resources onto the local computer system if those criteria are satisfied.
According to a preferred embodiment of the invention, a standardised naming convention is used for software resources from which to build software updates, and the updater component can search for these resources on a Network Operating System filesystem. This allows software resources to be stored at multiple locations to mitigate against network availability problems and makes it easier for developers and distributors to provide their error-fixing patches and upgraded versions of software products. For example, a developer can make new software updates available via a public network disk drive on their LAN using a known filename or via a published Uniform Resource Locator (URL) which can be searched for using known key words.
Updater components are preferably an integral part of the products they will serve to update. Hence, the updater component is distributed to software users together with an initial version of a software product, the updater component then automatically obtaining and applying software updates in accordance with preset criteria (such as a time period between successive searches for updates, and whether the particular user has selected to receive all updates or only certain updates - such as to receive updating patches but not replacement product versions for example).
The updater component's update capability preferably includes updating itself. Indeed, the update criteria may be set such that the updater component always accesses appropriate network locations to obtain updates to itself before it searches for software resources for updating its associated software products.
An updater component according to the invention preferably includes means for checking whether pre-requisite products are available, and are synchronised to the required version, as part of the process of selecting an update path for the current product. In a preferred embodiment, as well as checking their availability, the updater component is capable of instructing the updater components associated with pre-requisite software products to initiate updates to their software where this is the agreed update policy. If each software product's updater component is capable of triggering updates to pre-requisite products, then updates can ripple through the set of installed software products without the user having to be involved in or aware of the updates. This capability is a significant advantage over prior art updater agents which do not deal with the problem of unsynchronised software versions when one updates, and supports the increasing desire within the software industry for collaboration between distributed objects to perform tasks for the end user.
The updater component preferably also includes a mechanism for verifying the authenticity of downloaded software, using cryptographic algorithms. This avoids the need for dedicated, password-protected or otherwise protected software resource repository sites. The software resources can be anywhere on the network as long as they are correctly named and or posted to the network search engines.
Thus, the present invention provides an agent and a method for synchronising software updates which significantly reduces the cost and effort for software distributors of distributing and tracking software updates and significantly reduces the effort for system administrators and end users of applying updates to installed software.
Brief Descristion of Drawings
The present invention will now be described in more detail, by way of example only, with reference to the accompanying drawings in which:
Figure 1 is a schematic representation of a computer network including a local computer system having an installed updater component, server computers storing lists of available updates and storing software resources for applying updates, and a search engine for locating the servers;
Figure 2 is an example of a software vendor's list of their software versions and the resources and prerequisites for building from one version to another;
Figure 3 represents the sequence of operations of an updater component according to an embodiment of the invention; and
Figure 4 is a further representation of the sequence of operations of an updater component.
Detailed Description of Preferred Embodiments
As shown in Figure 1, an updater component 20 is installed in system memory of a conventional network-connected computer system 10, together with an associated computer program 30. The updater component may have been delivered to the user of the local computer system on a storage medium (diskette or CD) for him to install, or it may have been explicitly downloaded from another computer system. In preferred embodiments of the invention, updater components are integrated within the computer program they are intended to maintain (or are otherwise delivered via the same mechanism and at the same time as their associated program). The updater component is then installed as part of the installation procedure of its associated program, such that the user is not required to take any special action to obtain or activate it. The installation of each updater component includes the updater component registering itself with the operating system or another repository 40 on the local computer system. Thus, at least the updater components on the local system are identifiable and contactable by address information, and/or their product identifier, within the register entry. In alternative embodiments of the invention, the repository 40 may be a central or distributed repository for the network, as will be discussed below.
It is a feature of the preferred embodiment of the invention that each updater component can locate, can be located by, and can communicate with other updater components which manage other software products. This capability is used when one updater component requires another one to update to a specific level before the former can execute its own update, as will be discussed below. This is enabled by the updater components registering within the operating system or other repository 40.
In the preferred embodiment, each registration entry contains two items: the updater path and the updater network address. The path is the location of the updater component binary file so that the updater component can be launched by the operating system during the boot up process. This ensures that the updater component is always active and ready to perform work or handle requests issued to it from other updater components. The network address is the address used by components on other computer systems in the network to locate it on the network and to communicate with it.
An example of such registration using a UNIX (TM) operating system and the TCP/IP protocol suite uses the following naming convention for updater components: SoftwareVendorNamet~product~name+~updater.
Path registrations can be entered in the UNIX/etc/inittab file to store the path entry. When, for example, the updater component for IBM
Corporation's DB2 (TM) database product is installed it will add an entry to the /etc/inittab file of the form: ibm~db2pe~updater:2:respawn:/usr/abin/db2~updater~binary Every time the computer system reboots it will read this file and launch the DB2 updater component. The "respawn" keyword in the updater entry ensures that, should the updater component process fail for some reason during general system operation, it will be restarted by the operating system automatically. This approach will ensure that all updater components for all installed applications are always active.
Network Location registrations can be entered in the
UNIX/etc/services file. For example when the DB2 updater component is installed it will add an entry to the /etc/services file of the form: ibm~db2pe~updater 5000/tcp #net location of DB2 updater component
When another updater component wishes to communicate with the DB2 updater component it will find it by searching this /etc/services file for the DB2 updater component name ibm~db2pe~updater (actually done indirectly by the UNIX call getservbyname() - the name is built by the caller according to the standard naming convention) . When it is found it knows that the DB2 updater is listening for connections on port number 5000 and will use the TCP protocol. This allows the updater component in question to establish a link to the DB2 updater component and start a conversation (described later).
For an updater component to find and talk to another updater component on another remote machine the above information would have to be augmented by having a repository 40' which is accessible from both machines (preferably a central or distributed database accessible from anywhere in the network, such as a Web Page or pan-network file) and is available to all updater components that require it. Entries would be of the form updater~name machineipgddress (OR DNS entry), port number, protocol.
For example, the manufacturing department of an organisation may have three computer systems on which distributed software products collaborate with each other, the systems being called a, b and c. Typical entries in the Web page or file manufacturing~collaborators.html might be:
ibm~catia~updater a.mznufacturing.com 5000 tcp ibm~db2pe~updater <RTI ID=13
Updater components include data fields for an identifier and version number for their associated software products. The updater components may be delivered to customers with these fields set to null values, and then the installation procedure includes an initial step of the updater component interrogating its software product to obtain an identifier and current program version and release number. Alternatively, the software vendor may pre-code the relevant product ID and version number into the updater component.
The system 10 of Figure 1 is shown connected within a network 100 of computers including a number of remote server systems (50,50') from which software resources are available for applying updates to programs installed on the local system 10. Each server system includes within storage a list 60 of the latest versions of, and patches for, software products which are available from that server. Each vendor is assumed here to make available via their Web sites such a list 60 of software updates (an example of which is shown in Figure 2) comprising their product release history, in a format which is readable by updater components, and to make available the software resources 70 required to build the releases from a given level to a new level (this transition from a software product release to a new level will be referred to hereafter as a 'growth' path). The entries in the software updates list 60 include for each software product version 110 an identification 120 of the software resources required for applying the update and an identification 130 of its prerequisite software products and their version numbers. In some cases, the required resources are complete replacement versions of software and associated installation instructions, and deletion instructions for the software being replaced.
In other cases, the resources comprise patch code for modifying an existing program (e.g. for error correction) and the patch's installation instructions.
For the current example, we will assume that the network 100 is the
Internet, although the invention may be implemented within an Intranet or any computer network. Also shown within the network 100 is a server system 80 on which a search engine 90 is installed for use in finding update source locations on the network. This is shown located remotely from the local system 10, although it need not be. In the Figure, each updater component 20 is shown associated with a single program 30, and it is a feature of this embodiment of the invention that all installed software products have associated updater components which manage them, but neither of these features is essential to the invention as will be explained later.
The operation of an updater component will now be described, with reference to Figures 3 and 4. When an installed updater component executes, in response to completion of a cycle period or in response to a request from another software product's updater component, its first action is to initiate 200 a search for available updates to the particular software product. It provides to one or more search engines 90 search arguments comprising the product identifier and product version release number obtained by the updater component at install time.
Software vendors wishing to benefit from the services of the updater component provide via their Web sites a list 60 of available product updates referenced by product identifier and release number 110 (or some other consistent naming convention is used). The search identifies the relevant Web site 140 on which the update information is available. A URL identifying the relevant Web site 140 for update information is returned 210 to the updater component as a result of the search. If the initial attempt to start a search engine is unsuccessful, then the updater component will attempt to start a different search engine (which may be in a different geographical location to the first), but in alternative embodiments could wait for a preset time period and then retry.
The updater component uses the URL to access 220 the list 60 and downloads 230 a file 160 comprising the portion of the list 60 of available updates which relates to the particular product. The updater component then performs steps 240-280 as shown in Figure 4. Each file 160 contains message digests (e.g. MD5) which are digitally signed. The retrieved file 160 is then analyzed 240 using a digital signature checking algorithm (such as the algorithm described in US patent 5231668). This verifies that the file 160 represents the correct software updates list for the particular software product, and that the file has not been tampered with since signing. Also, checking for the digital signature is a useful way of filtering the results of the search since these may include a plurality of Web page URLs other than the correct one (the search may find other pages which have a reference to the named product version, including pages not published by the software vendor).
If an attempt to download and verify a file is not successful, then the updater component moves on to the next URL found in the search.
The updater component then performs on the local computer system a comparison 250 between the current installed software product's identifier and release number and the listed available updates in the retrieved file 160. This comparison determines possible growth paths from the current to updated versions, but these possible growth paths are then compared 260 with predefined update criteria, and any possible paths which do not satisfy the update criteria are discarded. Thus, the updater component determines whether it is possible to migrate from a current software product to the available new versions and whether it is possible to apply patches to the current version under the currently agreed licence terms and conditions.
For example, the software product licence may enable migration to any future version of the product and application of any available patches, or only migration up to a specified version, or it may only permit applying of available patches which modify or correct errors in the current version. Possible update paths which are unavailable due to current license limitations are notified 270 as a system generated message sent to the software asset manager (who may be an end user or IT procurement manager) of the currently installed version, to enable them to make decisions about whether the current licence is adequate.
As well as licence restrictions as to the updates that are possible, an updater component's update criteria or growth policy includes a cycle period (for example weekly or monthly) and criteria for determining which of a plurality of possible growth paths to select (such as always select latest version permitted by licence, or always select latest patch and only notify availability of new versions, or only select new versions if prerequisite software is already available on local system). The growth criteria may also include control information such as when to upgrade to new versions that are downloaded by the updater component - if data migration is required when migrating to a new software product version it may be essential for this to be done outside of office hours or only at a single scheduled time each month or each year and this can be controlled by the updater component.
The growth policy definition may also include a parameter determining that updating of pre-requisite software products should be requested when required to maintain synchronisation with the current product. This will be described in more detail below. Persons skilled in the art will appreciate that there is great flexibility in the criteria that can be set and applied by the updater component.
The updater component then decides 280 on a particular growth path (i.e. which available version to upgrade to) from the set of possible growth paths using the update criteria. For example, the updater component may select the highest possible version or release number of the available updates which is permitted by the update criteria, if that is the update policy.
The updater component performs 290 (see Figures 3 and 4) a scan of the operating system file system to check whether the required software resources are already available on the local computer system. The required resources are the software update artifacts required to bring the current application software to the new level, and the software updates required for updating pre-requisite software to required levels.
Each updater component associated with pre-requisite installed products is contacted 300 to ensure (a) that it is installed on the local system, and (b) that it is at or greater than the version level required for interoperability. If all required resources are available locally (or on another machine in the case of software relying on some pre-requisite software operating on a remote machine), and have been verified, then the updater component progresses to the step 310 (see Figure 4) of building the updated software version. If not, the update component must obtain the required resources.
As shown in Figures 3 and 4, if required software resources for building the updated version are not found on the local system, the updater component submits 320 a further request to one or more search engines to find the required resources. The search engine returns 330 one or more URLs and the updater component uses these to retrieve 340,350 the software resources into storage of the local computer system. At this stage, the updater component or the user need not have any knowledge of what corrections or enhancements may be included in the new version - the update criteria determine what type of updates are required such that the user is spared the effort of studying the content of every update. In practice, it is desirable for users to be able to determine the effects of updates and so the software resources for the update include a description of these effects which a user or administrator can read.
As examples, the software product to be updated may be a word processor application program. If the word processor as sold missed certain fonts or did not include a thesaurus, patches may subsequently be made available for adding these features. The updater component has the capability to add these to the word processor, subject to the update criteria.
In alternative embodiments of the invention, the search for required software resources is unnecessary following the initial search for the updates list (or is only necessary where there are pre-requisite software products as well as patches or new versions for the current product - see below). This is because the update software resources required directly by the current product are stored in association with the list of required resources. That is, the list includes a pointer to the network location of the required resources such that a selection of a growth path from the list involves a selection of a pointer to the network location of the required updates (and possibly also pointers to the locations of pre-requisite software products).
A second verification by digital signature checking is performed 360 (see Figure 4), this time on the downloaded resources. After verifying 360 the legitimacy of the downloaded resources, the updater component automatically builds 310 the installation in the target environment in accordance with the update policy. In practice, this may require information from the user such as an administration password, or a database usage parameter value, but in the preferred embodiment of the invention installing of the downloaded code is automatic in the sense that it does not require the user to know or obtain from elsewhere any installation information and in that it generally enables the user to be freed from making any decisions at run time if the predefined update criteria enable the updater component to automatically apply updates.
It is well known to include machine readable installation instructions encoded in a shell (for example as Script, or an interpretive language such as PERL, or an executable such as setup.exe in the case of applications on Microsoft's Windows (TM) operating system).
Updater components according to the invention will download 350 the machine readable instructions together with the relevant software resources and will automatically execute them 310. The updater component thus automatically processes installation instructions, avoiding the input from a person which is conventionally required. The Scripts can be adapted to reuse information gleaned from the first human installer who installed the first version of the updater component (for example, information such as user name and password of application administrator, installation directory, etc).
The method of updating according to the preferred embodiment of the invention requires software vendors to organise the software resources required to build from one product level to another. For example, a move from version 1.1.1 to 1.1.4 would typically include a series of patches to be applied, and the required order of installation if any would advantageously be encoded in machine processable installation instructions. The user is then spared the effort and the risk of human error which are inherent in methods which require the user to control the order of application of fixes and enhancements. The problem of how to migrate from one product level to another is thus dealt with by the software vendor instead of the customer, and updater components can only move to levels supported by the vendor (i.e. those growth paths published by the software vendor for a specific existing product level).
The updater generates 380 a report and writes 390 to log records, and then quits execution 400 (in the preferred embodiment the updater goes into a sleep or idle state) until activated again 410 upon expiry of a predetermined update cycle period (the repeat period parameter is configured when the updater component is installed).
Structure of updater component
The structure of an updater component comprises data, methods for operating on that data, and a public application programming interface (API) which allows other updater components to contact and communicate with it. This structure will now be described in detail.
UPDATER COMPONENT DATA:
The updater component includes the following persistent data:
Product~ID : an identifier of the software product which is
managed by this updater component
Current~Installed~Version :
a version identifier for the installed software
(e.g. version 3.1.0)
Current~License : a version identifier corresponding to the
software product version up to which the current
software license allows the user to upgrade (e.g.
version 4.0.z). Alternatively, this may be a
licence identifier (e.g. LIC1) for use when
accessing machine readable licence terms.
Installation~Environment:
a list of attribute name/attribute value pairs.
This is used by the updater component to store
values entered by the user when the updater was
used for the first time. For example, the updater
installation userid and password, possibly the
root password, the installation directory, the
web-proxy server address, search engine URLs, log
file name, software asset manager e-mail address
etc. This data will be re-used when subsequent
automatic updates are required.
Growth policy parameters: a. Growth~Cycle: data determining whether the updater
component should attempt to update its
software product every day, week or month,
etc. b. Growth~Type: data determining whether the updating is
limited to bug fixing and enhancements
(i.e. patches) only or requires upgrading
to the latest release in each growth cycle. c. Force~Growth: (YES/NO) a parameter determining whether to
force other software resources to upgrade
if that is a pre-requisite for this
software to upgrade. (Some implementations
will provide more flexible controls over
forcing other software to update than this
simple YES/NO)
Last~Growth~Time: Date and time when updater component last
executed
The updater component also includes the following non-persistent data:
Possible~Growth~Paths:
transient data representing the available
upgrade paths (e.g. version numbers 3.l.d,
3.2.e, 4.0.a) Update~Thread: string containing the update thread
information. It has the following
structure:
< Product~Id #1,version *1 > < Product~Id #2, version*2 > < Productid *n- l,version#n-1 > < Product~id #n,version#n >
The thread information lists the products (i.e.
Product~Ad #x) which are participating in the
synchronisation transaction on this component and
the versions they are attempting to grow to (i.e.
version#y). It represents a thread of forced
updates originating from component 1 (or root
component) which is attempting to update
unilaterally through component 2 which is being
forced to update by component 1 and component 3
which is being forced to update by component 2
and so on to the nth component being forced by the
n-lth component. It is the nt component in this
Update thread which is forcing this component to
update to a specific level. This string is empty
if this is the first component attempting to
update unilaterally (i.e. it is not being forced
to update). This information is assembled to
guard against cyclic dependencies in between
products. See the "example of update
synchronisation" section to find out how it is
used to accomplish this.
PRIVATE UPDATER FUNCTIONS:
The updater component logic includes the following methods:
Discover~Possible~Growth~Paths()
Search for Growth Path information for this software
product on the Internet (or Intranet or other network).
This search method initiates a search via a standard
search engine server. The information returned is a
list of newer versions and associated pre-requisite
product information
The Growth~Path information is then reduced in
accordance with the Growth policy parameters. For all
members in the Growth~Paths list, a check is performed
of whether appropriate versions of pre-requisite
products are available on the local and/or remote
computer. The updater components managing these pre
requisite products are accessed and forced to grow if
this is the policy.
If all pre-requisite products exist locally at the
correct level, or are available remotely on the network
and there is with a "force growth" policy, then i
identifiers for newer versions of the software product
are added to the Possible~Growth~Paths list.
Avoiding cyclic update deDendencies
If one of the pre-requisite software components is
found in the UpdateThreads string with a version which
complies with the required version level then it is
deleted from the pre-requisite list to ensure that a
force update is not attempted on it.
If the prerequisite software is in the Update~thread
list but with an insufficient version number then this
is not a valid growth path. The final chosen growth
path will have all pre-requisite software components
elements which are either already available locally or
already specified in the current Update~Thread or can
be forced to update to the required version via an in
place force update policy.
Decide Growth Path() Interpret the growth policy and select a single growth
path. Some implementations of the invention will
involve user interaction to select the path, for
example if there are considerations such as whether to
force updates to other programs.
Get Resources(Parameter: Chosen~Growth~Path)
Given Chosen~Growth~Path (e.g.3.2.0), search for
required resources (Parameters ProductID, Current~Installed~Version, Chosen~Growth Path), download all resources to local computer. This will
include software required for the new version plus
machine processable installation instructions.
Install Resources()
Process installation instructions including installing
required files in correct locations, possibly
compilation of the files and modifying the
configuration of the existing system to accommodate the
software, logging all actions to a file (and enabling
an "uninstall" method to undo all actions).
Grow () Initiates methods: Discover~Possible~Growth~Paths() //uses Update~Thread information to avoid update
//dependency cycles
if no possible growth paths exist then
updater component becomes idle
else
Decide~Growth~Path()
Get~Resources(Parameter: Chosen~Growth~Path)
Install~Resources().
Then Grow() writes all completed actions to log and
finishes execution of the updater component. The
updater component becomes idle either until time to
check again for new update requirements or until
prompted by another updater component to do so.
PUBLIC UPDATER COMPONENT API:
The updater component includes the following public API. These functions would be callable using existing network communications software, such as remote procedure calls, message oriented middleware,
ORB (Object request broker), etc.
Get~Release()
This function is called by other updater components and
returns the release level of the product managed by this
updater component.
Update(update thread,new~level) Other updater components call this function to move the
product managed by this updater component to a new level
indicated by the new~level parameter value. The update~thread
parameter is a string containing the update thread
information. It is of the form < product~Id,version > < productId,version > ... . The thread
information lists the products (i.e. Product Id #x) which are
participating in the synchronisation transaction and the
versions they are attempting to grow to (i.e. version#y).
When a software component calls this function on another
software component it must append its own Product~Id and
version to its copy of the string before passing it as a
parameter (This string will only contain one Product~id and
version if the calling component is the root component or
first component in the update task). This will call the
private function Grow().
Receive Event(event details)
When an updater component receives a request to update, it
must inform the calling updater component when it has
completed the update or otherwise e.g. if it failed for some
reason. The updater component performing the update on behalf
of another updater component will call this function of the
requesting updater component to communicate success of the
update or otherwise. Event details can be a string like "product id, new release level, ok" or "product id, new
release level, failure".
The automatic handling of the potential problem of unsynchronised pre-requisite products by enabling forcing of updates (or, if forcing of updates is not part of the update policy, sending of notifications to the software asset manager) is a significant advance over prior art update schemes.
Since the updates list file 160 returned to the updater component in response to an initial search includes an identification 130 of prerequisite software, that information enables the aforementioned examination 290 of the updater component registration database 40,40' to check whether pre-requisite software is available locally or remotely. If it finds all the updater components located locally or remotely, it can be sure that the software pre-requisites are available and it next needs to contact each updater component for each software product to be sure all pre-requisites are at the correct level. If an updater component 20' having a required product identifier for pre-requisite software 30' but not having the required version number is found locally or remotely, and if forcing of updates is the update policy, then the updater component 20 of the first computer program contacts 300 this pre-requisite updater component 20' and requests that it attempt to update its associated prerequisite software product 30'. This updater component 20 can, if necessary, request other updater components of its pre-requisite software to update their versions, and so on.
If at some stage no relevant updater component is found locally or remotely, then a message is sent to the asset manager to inform him/her of the requirement for a new product in order to grow the associated product further. If at some stage during the chain of updater requests to grow to a new level one updater component fails to move to the required level then this failure is reported back to its calling updater component, prompting failure of that component's update operation, and so on back to the updater component which initiated the whole transaction.
Thus, as well as their autonomous behaviour defined by their update criteria, updater components can react to external stimuli such as requests from other updater components.
ExamDle of update synchronisation
An example of the implementation of update synchronisation between two products will now be described. This example shows how one updater component can communicate with another to synchronise pre-requisite software so that all products are present and at compatible release levels.
A CORBA (Common Object Request Broker Architecture) ORB (Object
Request Broker) is used for location of and communication between two updater components. Using the above public API it is a simple matter for those familiar with the art of CORBA programming to develop communication code so that one updater component can talk to another updater component anywhere on a network. In this example the component updater registration database 40 is a directory or folder available over the network (e.g. via
NFS) which contains for each installed updater component a file called taupdater~component~name.iop" (iop stands for interoperable object reference).
This file contains a sequence of bytes which can be converted into a reference to the updater component by any updater component which reads the file using for example the CORBA function: CORBA::Object::~string~to~object() in C++
Furthermore this reference can be to an updater component anywhere on the network as it represents a unique address for the corresponding updater component. When updater component A has manufactured a reference to updater component B then updater component A can call a public API function simply by using, for example, a C++ mapping A- > Get~Release() which will then return the value of the release level of the software managed by the A updater component.
In this example we will consider two products - IBM Corporation's
DB2 database product and a Query Tool called "Query Builder", on different machines M and N respectively. (Machines M and N could be the same machine; the present example merely shows that they may also be separate). Both products have updater components which use a CORBA ORB architecture as briefly outlined above. An ORB communication daemon is active on participating systems M and N.
Step 1) Registration phase:
The DB2 Updater Component starts when the operating system starts on system M and immediately creates a file called ibm~db2updater.iop (according to some naming standard used to aid subsequent searches for the file) in the network file system folder or directory. This directory could be hosted on any machine and not necessarily M or N. The file contains a series of bytes which can be used to manufacture a reference to the updater component.
[pseudocode] Filehandle = open("/network/filesystem/directory", "ibm~db2~updater.iop");
ReferenceBytes = CORBA::Object::~object~to~string(); vrite(FileHandle, ReferenceBytes); close(Filehandie); QueryBuilder Updater component starts and writes its registration to the same directory or folder, again in this case calling the file ibm~querybuilder~updater.iop.
At this stage both updater components are active and have registered their presence and location in the network directory.
SteD 2).
QueryBuilder attempts to grow from version 1 to version 2 but a prerequisite is DB2 version 2.1 or higher. The following sequence of actions will occur. QueryBuilder is denoted QB and DB2 as DB2.
QB : searches for file ibm~db2~updater.iop (file name manufactured according to standard) in network directory. It finds the file, reads it and
Give up on trying to grow to new version.
endif. steP 3).
At this stage we know that DB2 exists somewhere in our set of networked computers. Now we need to know if it is at the right level. We simply do this by executing its public API function Get~Release() defined above, from within the QB updater, the QB updater is therefore a client requesting the DB2 updater to do something for it, i.e. tell it what release it is.
[pseudocode] db2~release = dbref- > Get~Release (); Let us say this returns the value "2.0".
Stes 4)
Client Side:
The QB Updater Component knows that this is not sufficient , it requires version 2.1. It examines its Force~Growth parameter which is, for example, "YES" meaning it should force pre-requisite software to grow to the level required before it can perform its own update procedure.
Therefore the QB updater tells the DB2 updater to grow to the new release, and then waits until the pre-requisite has grown to the new release or failed in doing so.
Epseudocode] dbref- > Update("QB,2. 0", "2.1", QBref);
//the first parameter is the update thread parameter, so far only
//one product is participating in the update chain, i.e. Query
//Builder which is attempting to grow to version 2.1. The DB2
//updater component will use this information in this parameter to
//avoid the problem of update cycles. See server side for how this
//information is processed. QBref is a ready made reference to the
//QB Updater. It is passed to the DB2 updater so that it can
//Quickly send the results, success or failure, when the DB2 //Updater has finished trying to update itself.
EVENT= null;
While (EVENT equals null) i do nothing; ) if (EVENT equals "SUCCESS")
then attempt to grow software managed by this updater component
i.e. Query Builder. else
Write failure to log;
do not attempt to grow;
go to sleep and try later; endif.
Server Side:
The DB2 Updater component receives the request to grow. Which it attempts to do.
It reports the result to the calling client (it knows how to contact the calling client as it is receives a reference to the caller in the function call.) [pseudocode] DB2 updater component Update~Thread is set to equal update~thread passed to it via the update call. i.e. Update~Thread = "QB,2.0 //see private grow function for details on how this Update~Thread
//information is processed.
DB2 attempts to grow. if Growth Successful then QBRef- > ReceiveEvent("SUCCESS); // Note the implementation of the
// function Receive~Event simply sets the variable
// called EVENT in the QB Updater component to the
// value of the parameter passed in the API call , i.e.
// "SUCCESS" if in this section of the IF statement. else
QBREF- > Receive~Event ("FAILURE") end if
As noted previously, predefined update criteria may determine which of an available set of updates should be applied and which should be disregarded. The update criteria may include an instruction to the updater component to send a notification to the end user or system administrator when a software update is identified as being available but applying this update is not within the update policy or is impossible.
One of the examples given previously is that the update policy may be not to install full replacement versions of software products since that may require upgrading of pre-requisite software products or migration of data (for example if the software product is a database product), whereas it may be intended policy to install any error-correction patches.
Notification rather than automatic installation of updates may also be implemented where to upgrade one product to a new version would require upgrading of other pre-requisite complementary products.
The update policy can also determine the degree of automation of the updating process, by defining the circumstances in which the updater requests input from the user or administrator.
The execution of a particular example updater component will now be described in more detail by way of example. This updater component's function is to keep an installed product called "Test" totally up-to-date with all released patches, but not to install replacement versions of
Test. Firstly, the updater component is configured with the following data instantiations: Product~ ID: Test
Current~Installed~Version: 1.0.a
Current~License: LIC1 Installation~Environment:"USERID:TestOwner, USERPASSWORD:easy"
"INSTALLPATH: /usr/bin/testapp/" Growth~Cycle: weekly Growth~Type: patches, latest, automatically
Force~Growth: no Last~GrowthTime: Monday 08/10/97.
The updater then executes weekly, for example each Monday night at
3am (it is the system administrator who decides the timing).
The following represents a possible execution trace for this example updater component.
Example execution trace
Step 1) The growth cycle starts:
> > > > START : Discoverqossible~Growth~Paths() * Execute search on remote search engine (e.g. Internet Search
Engine) using Phrase ("IBM Test 1.0.a Growth Paths")
Search returns URL published by software vendor outlining
current growth paths for product;
* Download URL:
File contents are "l.0.b,none; 2.0, other~required productgroduct~id 1.0.c;" * Authenticate URL file using hashing algorithm and digital
signature.
If not authentic, return to search for another URL matching
criteria
* Build growthqath~list : growthqath list = "l.0.b,none; 2.0,other requiredproduct~id 1.0.c;" * Remove all but patch level increases (according to Growth~Policy)
from Growthgath list (i.e. only those with the first version and
second release number matching 1.0).
* growth~path list = "1.O.b,none;" * For all members in list, ensure prerequisites exist. In this
example, all members of list meet this criteria trivially.
(Note : If this was a forced update then the Update~Thread
would be examined to see if any pre-requisite component for
any path existed already in the Update~Thread, if it does and
at a level greater than or equal to the level required by the
growth path then that prerequisite is assumed to exist (as
will be in place once the update transaction is complete).)
* Place candidate growthoaths into Possible~Growth~Paths list =
1.0.b each END : Discover-possible-Growth-paths() Step 2) Next the updater component decides on the Growth Path to pursue: > 2 > > START Decide~Growth~Path()
* The growth policy dictates that we should grow to latest patched
revision. (In this example, determining the latest revision is
trivial i.e. it is 1.0.b) * chosen~growthath = 1.0.b
(NOTE : For all pre-requisites which are not already in place
at the required revision level, an update is forced on their
associated updater agents to make them migrate to the
required level. Note that, because items in the Update~Thread
are considered to already exist, no software component which
is already on the Update~Thread is forced to update - thus
preventing cyclic dependencies between products.)
< < < < END : Decide Growth~Path() Step 3) The updater component then obtains the required resources to revise the current software level to the new one.
> > > > Get~Resources()
* Execute search on remote search engine (e.g. Internet Search
Engine) using Phrase ("IBM Test REVISION 1.0.a to 1.0.b
RESOURCES").
* Search returns URL say ftp://ftp.vendor-site/pub/test/resources/1.0.a-bfw * Updater downloads file pointed to by URL and places in secure
holding area where it verifies authenticity.
* Updater verifies authenticity (using, for example, digital
signatures based on RSA algorithm, or any method)
If files not authentic, then return to search (see Note 1 below)
* Updater unpacks resources into a temporary directory (see Note 2
below). These resources include machine processible installation
instructions (for example, instructions written in a script
language such as a UNIX shell script or MVS REXX) and files
(either binary or requiring compilation) which actually contain
the software fix.
< < < < END : Get~Resources()
Notes on above tasks
Note 1 - To save time the updater looks for a standard file
before downloading the URL ,called "signature", which
contains the URL ftp://ftp.vendor-site/pub/test/resources/1.0.a-b and a
listing of its contents. This is hashed and signed.
Using this signature, the Updater component can quickly
establish authenticity of the URL (to some extent)
before downloading it and use the information i.e. file
listings to corroborate the final downloaded resources
after they have been unpacked into the temporary
directory. When the final URL is downloaded it is also
checked again for authenticity (to guard against
someone placing a bogus artefact in an authentic URL
location).
Note 2 - Part of the unpacking is that the updater component
will examine the installation scripts and modify them
based on the contents of its installation environment
data where required. For example if the installation
instructions were coded in a shell script it will
replace all instances of INSTALLPATH with the token ^#/usr/bin/testapp/". Again Naming conventions of
attributes are standardised as it the method of token
substitution in installation instructions. This makes
totally automatic installation possible.
Step 4) The updater component then implements the actual software upgrade:
> > > > START Install Resources()
* execute the installation instructions.
* update the values of Current Installed Version = 1.0.b
Last~Growth~Time = Date+Time.
* send an e-mail to software asset manager informing of
installation and whether or not a reboot of the Operating System
or restart of the application is required before the upgrade
takes affect.
< < < < END Install~Resources()
This is the end of this current growth cycle. The seed updates the Last Growth Time value the current time and then exits. The time taken for this cycle could be anything from a few seconds where the updater component found no upgrade paths for the currently installed version to several hours if a totally new release from the current one is to be downloaded and installed together with new pre-requisite software.
An alternative to the embodiment described above in detail does not require an independent updater component for every different software product, but uses a single generic updater component installed on a system together with product-specific plug-in objects and instructions which are downloaded with each product. These objects interoperate with the generic code to provide the same functions of the product-specific updater components described above. It will be clear to persons skilled in the art that the present invention could be implemented within systems in which some but not all application programs and other software products installed on the system have associated updater components, and that other changes to the above-described embodiments are possible within the scope of the present invention.
Claims (18)
- CLAIMS 1. A method, implemented by an updater component installed on a computer system connected within a computer network, for synchronising updates to computer programs installed on the computer system, the method comprising: in response to initiation of an update for a first one of said installed computer programs, the updater component initiating access to a list of said first computer program's pre-requisite computer programs, comparing the listed pre-requisite computer programs with computer programs installed on the computer system, and determining positively or negatively whether performing the requested update of the first computer program requires updating of pre-requisite computer programs; and if the determination is positive, the updater component initiating an update of said pre-requisite computer programs.
- 2. A method according to claim 1, wherein the updater component initiates the update for the first installed computer program in accordance with predefined update criteria.
- 3. A method according to claim 2, wherein the updater component initiates update attempts periodically according to a set cycle period for the computer programs.
- 4. A method according to any one of claims 1 to 3, wherein the step of initiating access to a list of pre-requisites includes the step of the updater component providing to a network search engine a search parameter for identifying one or more network locations at which are provided a list of software resources required for applying updates and a list of pre-requisite computer programs.
- 5. A method according to claim 4, including the step of the updater component initiating access to one or more network locations at which are provided the software resources required for applying an update, and the steps of downloading the software resources from said one or more locations onto the computer system and building the first computer program to a new version using the retrieved software resources.
- 6. A method according to any one of the preceding claims, wherein the step of determining whether updating of pre-requisite computer programs is required includes comparing said listed pre-requisite computer programs with predefined update criteria stored on said computer system.
- 7. A method according to any one of the preceding claims, including registering updater components with a repository, wherein the step of initiating an update of pre-requisite computer programs comprises the updater component of the first computer program communicating an update request to registered updater components of the pre-requisite computer programs.
- 8. A method according to claim 7, including the following steps implemented by an updater component in response to an update request from another updater component: initiating access to a list of the updater component's respective computer program's pre-requisite computer programs, comparing the listed pre-requisite computer programs with computer programs installed on the computer system, determining positively or negatively whether performing the requested update of the updater component's respective computer program requires updating of pre-requisite computer programs; and if the determination is positive, initiating an update of said prerequisite computer programs.
- 9. An updater component for installation on a computer system connected within a computer network, for synchronising updates to computer programs installed on the computer system, the updater component including: means responsive to initiation of an update for a first one of said installed computer programs for initiating access to a list of said first computer program's pre-requisite computer programs; means for comparing the listed pre-requisite computer programs with computer programs installed on the computer system and determining positively or negatively whether performing the requested update of the first computer program requires updating of pre-requisite computer programs; and means for initiating an update of said pre-requisite computer programs if the determination is positive.
- 10. A computer system including an updater component for synchronising updates to computer programs installed on the computer system, the updater component including: means responsive to initiation of an update for a first one of said installed computer programs for initiating access to a list of said first computer program's pre-requisite computer programs; means for comparing the listed pre-requisite computer programs with computer programs installed on the computer system and determining positively or negatively whether performing the requested update of the first computer program requires updating of pre-requisite computer programs; and means for initiating an update of said pre-requisite computer programs if the determination is positive.
- 11. An updater component for use in updating computer programs installed on a computer system connected within a computer network, the updater component including: means for initiating access to a first set of identifiable network locations at which are provided identifications of software resources required for applying updates to at least a first computer program and identifications of any computer programs which are pre-requisites for the operation of said updated first computer program; means for comparing the identified software resources and identified pre-requisite computer programs with computer programs installed on said computer system, to identify computer programs to be updated; means for initiating access to a second set of identifiable locations within the network at which are provided said identified software resources, to retrieve said identified software resources for applying updates; means for triggering updating of said pre-requisite computer programs; and means for applying updates to said installed computer programs using the retrieved software resources.
- 12. An updater component according to claim 11 wherein said means for triggering updating of pre-requisite computer programs comprises means for communicating an update requirement to an updater component associated with the identified pre-requisite computer program.
- 13. An updater component according to claim 12, adapted to register itself with a repository within the computer system with which the updater components for other installed computer programs are also registrable, thereby enabling updater components to be identifiable and contactable by other updater components by reference to registration information in the repository.
- 14. An updater component according to any one of claims 11 to 13, wherein said means for comparing identified software resources with installed computer programs for identifying computer programs to be updated is adapted to compare said provided software resources with said installed computer programs and with predefined update criteria stored on said computer system.
- 15. An updater component according to any one of claims 11 to 14, wherein said identifiable locations are identifiable from product identification information within said installed computer programs or within said updater component, the updater component being adapted to provide said product identifier information to a search engine and the product identifier information serving as a search parameter for use by said search engine to identify network locations.
- 16. An updater component according to any one of claims 11 to 14, wherein said identifiable locations are identifiable from network location information within said installed computer programs or within said updater component.
- 17. A computer system connected within a computer network and including an updater component for use in updating computer programs installed on the computer system, the system including: means for initiating access to a first set of identifiable locations within the network at which are provided identifications of software resources required for applying updates to at least a first computer program and identifications of any computer programs which are pre-requisites for the operation of said updated first computer program; means for comparing the identified software resources and identified pre-requisite computer programs with computer programs installed on said computer system, to identify computer programs to be updated; means for initiating access to a second set of identifiable locations within the network at which are provided said identified software resources, to retrieve said identified software resources for applying updates; means for triggering updating of said pre-requisite computer programs; and means for applying updates to said one or more installed computer programs using the retrieved software resources.
- 18. A method for updating computer programs installed on a computer system connected within a computer network, the method including: initiating access to a first set of identifiable network locations at which are provided identifications of software resources required for applying updates to at least a first computer program and identifications of any computer programs which are pre-requisites for the operation of said updated first computer program; comparing the identified software resources and identified prerequisite computer programs with computer programs installed on said computer system, to identify computer programs to be updated; initiating access to a second set of identifiable locations within the network at which are provided said identified software resources, retrieving said identified software resources for applying updates; triggering updating of said pre-requisite computer programs; and applying updates to said first installed computer program using the retrieved software resources.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/136,225 US6202207B1 (en) | 1998-01-28 | 1998-08-19 | Method and a mechanism for synchronized updating of interoperating software |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9801661A GB2333864B (en) | 1998-01-28 | 1998-01-28 | Distribution of software updates via a computer network |
Publications (3)
Publication Number | Publication Date |
---|---|
GB9808657D0 GB9808657D0 (en) | 1998-06-24 |
GB2333865A true GB2333865A (en) | 1999-08-04 |
GB2333865B GB2333865B (en) | 2003-05-14 |
Family
ID=10825935
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB9801661A Expired - Lifetime GB2333864B (en) | 1998-01-28 | 1998-01-28 | Distribution of software updates via a computer network |
GB9808657A Expired - Lifetime GB2333865B (en) | 1998-01-28 | 1998-04-24 | A method and a mechanism for synchronised updating of interoperating software |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB9801661A Expired - Lifetime GB2333864B (en) | 1998-01-28 | 1998-01-28 | Distribution of software updates via a computer network |
Country Status (3)
Country | Link |
---|---|
US (1) | US6199204B1 (en) |
JP (1) | JP3385590B2 (en) |
GB (2) | GB2333864B (en) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1093054A1 (en) * | 1999-10-15 | 2001-04-18 | Alcatel | Method for installing software components at a user-terminal, related devices and related software modules |
EP1357470A2 (en) * | 2002-04-23 | 2003-10-29 | Secure Resolutions, Inc. | Distributed server software distribution |
EP1376440A1 (en) * | 2002-06-26 | 2004-01-02 | Oticon A/S | System and method for handling forms for information |
WO2004095167A2 (en) | 2003-04-17 | 2004-11-04 | Networks Associates Technology, Inc. | Update system and method for updating a scanning subsystem in a mobile communication framework |
EP1079301A3 (en) * | 1999-08-26 | 2005-04-13 | Hitachi, Ltd. | Method and system for software distribution |
EP1596290A1 (en) * | 2004-05-11 | 2005-11-16 | Microsoft Corporation | Efficient software patching |
EP1596289A1 (en) * | 2004-05-11 | 2005-11-16 | Microsoft Corporation | Efficient software patching |
EP1763744A1 (en) * | 2004-04-30 | 2007-03-21 | Research In Motion Limited | System and method of owner application control of electronic devices |
EP1869554A2 (en) * | 2005-03-09 | 2007-12-26 | Ipass Inc. | System and method for managing software patches |
US7401133B2 (en) | 2002-04-23 | 2008-07-15 | Secure Resolutions, Inc. | Software administration in an application service provider scenario via configuration directives |
US7853609B2 (en) | 2004-03-12 | 2010-12-14 | Microsoft Corporation | Update distribution system architecture and method for distributing software |
US8045958B2 (en) | 2005-11-21 | 2011-10-25 | Research In Motion Limited | System and method for application program operation on a wireless device |
US8332906B2 (en) | 2006-02-27 | 2012-12-11 | Research In Motion Limited | Method of customizing a standardized IT policy |
EP2245533A4 (en) * | 2008-02-10 | 2015-08-26 | Safenet Data Security Israel Ltd | Computer data product license installation / update confirmation |
EP1598740B1 (en) * | 2004-05-11 | 2018-09-05 | Microsoft Technology Licensing, LLC | Efficient software patching |
Families Citing this family (417)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6473099B1 (en) * | 1996-06-03 | 2002-10-29 | Webtv Networks, Inc. | Automatically upgrading software over a satellite link |
US6957260B1 (en) | 1996-06-03 | 2005-10-18 | Microsoft Corporation | Method of improving access to services provided by a plurality of remote service providers |
US6381741B1 (en) | 1998-05-18 | 2002-04-30 | Liberate Technologies | Secure data downloading, recovery and upgrading |
US6718547B2 (en) * | 1998-02-17 | 2004-04-06 | Fuji Photo Film Co., Ltd. | Medical network system |
US6279155B1 (en) * | 1998-04-08 | 2001-08-21 | Dell Usa, L.P. | Method of installing software on and/or testing a computer system |
US6626953B2 (en) * | 1998-04-10 | 2003-09-30 | Cisco Technology, Inc. | System and method for retrieving software release information |
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 |
US6859924B1 (en) * | 1998-06-04 | 2005-02-22 | Gateway, Inc. | System restore apparatus and method employing virtual restore disk |
US6418554B1 (en) * | 1998-09-21 | 2002-07-09 | Microsoft Corporation | Software implementation installer mechanism |
US6836794B1 (en) | 1998-09-21 | 2004-12-28 | Microsoft Corporation | Method and system for assigning and publishing applications |
US7073172B2 (en) * | 1998-09-21 | 2006-07-04 | Microsoft Corporation | On demand patching of applications via software implementation installer mechanism |
US6523166B1 (en) | 1998-09-21 | 2003-02-18 | Microsoft Corporation | Method and system for on-demand installation of software implementations |
US6397381B1 (en) * | 1998-09-21 | 2002-05-28 | Microsoft Corporation | System and method for repairing a damaged application program |
US6574239B1 (en) * | 1998-10-07 | 2003-06-03 | Eric Morgan Dowling | Virtual connection of a remote unit to a server |
US6805634B1 (en) * | 1998-10-14 | 2004-10-19 | Igt | Method for downloading data to gaming devices |
US7673323B1 (en) * | 1998-10-28 | 2010-03-02 | Bea Systems, Inc. | System and method for maintaining security in a distributed computer network |
US6453348B1 (en) | 1998-11-06 | 2002-09-17 | Ameritech Corporation | Extranet architecture |
US6536039B2 (en) * | 1998-12-24 | 2003-03-18 | Avaya Technology Corp. | Software for seamless interconnectivity between active program modules on integrated arrangement of CD drive, data server, and PC hard disk drive |
JP2000207219A (en) * | 1999-01-18 | 2000-07-28 | Fujitsu Ten Ltd | Communication system for between on-vehicle terminal and center, and the on-vehicle terminal used for communication system |
US7010566B1 (en) * | 1999-01-19 | 2006-03-07 | International Business Machines Corporation | System for controlling transmission of information on the internet |
US6438749B1 (en) * | 1999-03-03 | 2002-08-20 | Microsoft Corporation | Method and system for restoring a computer to its original state after an unsuccessful patch installation attempt |
US6427236B1 (en) * | 1999-03-03 | 2002-07-30 | Microsoft Corporation | Method for installing a patch based on patch criticality and software execution format |
US6434744B1 (en) * | 1999-03-03 | 2002-08-13 | Microsoft Corporation | System and method for patching an installed application program |
US6847949B1 (en) * | 1999-05-10 | 2005-01-25 | Koninklijke Philips Electronics N.V. | Indicator system for screening protected material |
US6614804B1 (en) * | 1999-03-22 | 2003-09-02 | Webtv Networks, Inc. | Method and apparatus for remote update of clients by a server via broadcast satellite |
US6401239B1 (en) * | 1999-03-22 | 2002-06-04 | B.I.S. Advanced Software Systems Ltd. | System and method for quick downloading of electronic files |
US6425125B1 (en) * | 1999-03-30 | 2002-07-23 | Microsoft Corporation | System and method for upgrading client software |
US6633899B1 (en) * | 1999-05-06 | 2003-10-14 | Sun Microsystems, Inc. | Dynamic installation and configuration broker |
US7062765B1 (en) * | 1999-05-25 | 2006-06-13 | Realnetworks, Inc. | System and method for updating information via a network |
US20040030768A1 (en) * | 1999-05-25 | 2004-02-12 | Suban Krishnamoorthy | Unified system and method for downloading code to heterogeneous devices in distributed storage area networks |
WO2000077974A1 (en) | 1999-06-11 | 2000-12-21 | Liberate Technologies | Hierarchical open security information delegation and acquisition |
US7149773B2 (en) * | 1999-07-07 | 2006-12-12 | Medtronic, Inc. | System and method of automated invoicing for communications between an implantable medical device and a remote computer system or health care provider |
WO2001013224A2 (en) * | 1999-08-18 | 2001-02-22 | Siemens Aktiengesellschaft | Agent system for mobile agents, computer network and method for downloading an agent system from a host computer to a client computer of a computer network |
US6760708B1 (en) * | 1999-08-19 | 2004-07-06 | Dell Products L.P. | Method and system for migrating stored data to a build-to-order computing system |
US6606716B1 (en) | 1999-10-06 | 2003-08-12 | Dell Usa, L.P. | Method and system for automated technical support for computers |
US6560726B1 (en) | 1999-08-19 | 2003-05-06 | Dell Usa, L.P. | Method and system for automated technical support for computers |
JP2001067232A (en) * | 1999-08-31 | 2001-03-16 | Hitachi Ltd | Distribution system and receiving terminal device for software |
US6389370B1 (en) * | 1999-09-14 | 2002-05-14 | Hewlett-Packard Company | System and method for determining which objects in a set of objects should be processed |
US6493871B1 (en) * | 1999-09-16 | 2002-12-10 | Microsoft Corporation | Method and system for downloading updates for software installation |
US7171616B1 (en) | 1999-09-27 | 2007-01-30 | International Business Machines Corporation | Method, system and computer program product for keeping files current |
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 |
US6556431B1 (en) | 1999-10-06 | 2003-04-29 | Dell Usa, L.P. | System and method for converting alternating current into direct current |
US6598223B1 (en) * | 1999-10-06 | 2003-07-22 | Dell Usa, L.P. | Method and system for installing and testing build-to-order components in a defined configuration computer system |
US6563698B1 (en) | 1999-10-06 | 2003-05-13 | Dell Usa, L.P. | System and method for providing a computer system with a detachable component |
US6539499B1 (en) | 1999-10-06 | 2003-03-25 | Dell Usa, L.P. | Graphical interface, method, and system for the provision of diagnostic and support services in a computer system |
US6564220B1 (en) | 1999-10-06 | 2003-05-13 | Dell Usa, L.P. | System and method for monitoring support activity |
US6574615B1 (en) | 1999-10-06 | 2003-06-03 | Dell Usa, L.P. | System and method for monitoring support activity |
US7089300B1 (en) * | 1999-10-18 | 2006-08-08 | Apple Computer, Inc. | Method and apparatus for administering the operating system of a net-booted environment |
US6751658B1 (en) | 1999-10-18 | 2004-06-15 | Apple Computer, Inc. | Providing a reliable operating system for clients of a net-booted environment |
US7185333B1 (en) * | 1999-10-28 | 2007-02-27 | Yahoo! Inc. | Method and system for managing the resources of a toolbar application program |
US6876991B1 (en) | 1999-11-08 | 2005-04-05 | Collaborative Decision Platforms, Llc. | System, method and computer program product for a collaborative decision platform |
US6578199B1 (en) * | 1999-11-12 | 2003-06-10 | Fujitsu Limited | Automatic tracking system and method for distributable software |
US7716077B1 (en) | 1999-11-22 | 2010-05-11 | Accenture Global Services Gmbh | Scheduling and planning maintenance and service in a network-based supply chain environment |
US8032409B1 (en) | 1999-11-22 | 2011-10-04 | Accenture Global Services Limited | Enhanced visibility during installation management in a network-based supply chain environment |
US7130807B1 (en) | 1999-11-22 | 2006-10-31 | Accenture Llp | Technology sharing during demand and supply planning in a network-based supply chain environment |
US6606744B1 (en) * | 1999-11-22 | 2003-08-12 | Accenture, Llp | Providing collaborative installation management in a network-based supply chain environment |
US7124101B1 (en) | 1999-11-22 | 2006-10-17 | Accenture Llp | Asset tracking in a network-based supply chain environment |
US6671818B1 (en) | 1999-11-22 | 2003-12-30 | Accenture Llp | Problem isolation through translating and filtering events into a standard object format in a network based supply chain |
US8271336B2 (en) * | 1999-11-22 | 2012-09-18 | Accenture Global Services Gmbh | Increased visibility during order management in a network-based supply chain environment |
JP3655152B2 (en) * | 1999-11-29 | 2005-06-02 | 富士通株式会社 | Software editing apparatus and storage medium |
US7139728B2 (en) * | 1999-12-30 | 2006-11-21 | Rod Rigole | Systems and methods for online selection of service providers and management of service accounts |
FR2803929B1 (en) * | 1999-12-30 | 2004-09-17 | Ferid Allani | METHOD AND DEVICE FOR ACCESSING SOURCES OF INFORMATION AND SERVICES ON THE WEB |
US6782527B1 (en) * | 2000-01-28 | 2004-08-24 | Networks Associates, Inc. | System and method for efficient distribution of application services to a plurality of computing appliances organized as subnets |
US20010029530A1 (en) * | 2000-03-03 | 2001-10-11 | Yoshiko Naito | System and method of managing resource in network system |
US6892297B1 (en) * | 2000-03-16 | 2005-05-10 | International Business Machines Corporation | Method and system for searching an updated version of boot code for updating current running boot code prior to loading an operating system |
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 |
US6532481B1 (en) * | 2000-03-31 | 2003-03-11 | George C. Fassett, Jr. | Product identifier, catalog and locator system and method |
EP1292892A4 (en) * | 2000-04-14 | 2006-11-15 | Goahead Software Inc | A system and method for upgrading networked devices |
US7293268B2 (en) * | 2000-04-17 | 2007-11-06 | Fujitsu Limited | Installation method, activation method, execution apparatus and medium of application program |
US7310801B2 (en) * | 2000-04-27 | 2007-12-18 | Microsoft Corporation | Servicing a component-based software product throughout the software product lifecycle |
US6785848B1 (en) * | 2000-05-15 | 2004-08-31 | Microsoft Corporation | Method and system for categorizing failures of a program module |
WO2001093141A1 (en) * | 2000-06-01 | 2001-12-06 | Fujitsu Limited | System for managing right of using and recorded medium |
US7000230B1 (en) | 2000-06-21 | 2006-02-14 | Microsoft Corporation | Network-based software extensions |
US6883168B1 (en) * | 2000-06-21 | 2005-04-19 | Microsoft Corporation | Methods, systems, architectures and data structures for delivering software via a network |
US7155667B1 (en) * | 2000-06-21 | 2006-12-26 | Microsoft Corporation | User interface for integrated spreadsheets and word processing tables |
US6874143B1 (en) * | 2000-06-21 | 2005-03-29 | Microsoft Corporation | Architectures for and methods of providing network-based software extensions |
US7624356B1 (en) * | 2000-06-21 | 2009-11-24 | Microsoft Corporation | Task-sensitive methods and systems for displaying command sets |
US7191394B1 (en) * | 2000-06-21 | 2007-03-13 | Microsoft Corporation | Authoring arbitrary XML documents using DHTML and XSLT |
US7117435B1 (en) | 2000-06-21 | 2006-10-03 | Microsoft Corporation | Spreadsheet fields in text |
US7346848B1 (en) | 2000-06-21 | 2008-03-18 | Microsoft Corporation | Single window navigation methods and systems |
AU2001264895A1 (en) * | 2000-06-21 | 2002-01-02 | Microsoft Corporation | System and method for integrating spreadsheets and word processing tables |
US6948135B1 (en) | 2000-06-21 | 2005-09-20 | Microsoft Corporation | Method and systems of providing information to computer users |
US7526762B1 (en) * | 2000-06-30 | 2009-04-28 | Nokia Corporation | Network with mobile terminals as browsers having wireless access to the internet and method for using same |
US7251775B1 (en) * | 2000-06-30 | 2007-07-31 | Nokia Corporation | System and method for visual history presentation and management |
US20030115167A1 (en) * | 2000-07-11 | 2003-06-19 | Imran Sharif | Web browser implemented in an Internet appliance |
US20020078445A1 (en) * | 2000-07-11 | 2002-06-20 | Imran Sharif | Internet appliance for interactive audio/video display using a remote control unit for user input |
GB2348721A (en) * | 2000-07-15 | 2000-10-11 | Ideagen Software Limited | Automated software or data updating in distributed computing system |
JP4047527B2 (en) * | 2000-08-09 | 2008-02-13 | Necインフロンティア株式会社 | Information distribution system and information distribution method |
JP4987180B2 (en) * | 2000-08-14 | 2012-07-25 | 株式会社東芝 | Server computer, software update method, storage medium |
EP1327191B1 (en) * | 2000-09-22 | 2013-10-23 | Lumension Security, Inc. | Non-invasive automatic offsite patch fingerprinting and updating system and method |
US20040003266A1 (en) * | 2000-09-22 | 2004-01-01 | Patchlink Corporation | Non-invasive automatic offsite patch fingerprinting and updating system and method |
US7392540B1 (en) * | 2000-10-03 | 2008-06-24 | Hewlett-Packard Development Company, L.P. | Methods and systems for customer premises remote collaboration facility |
EP1356377A2 (en) * | 2000-10-04 | 2003-10-29 | Siemens Energy & Automation, Inc. | Manufacturing system software version management |
US6826683B1 (en) * | 2000-10-23 | 2004-11-30 | Hewlett-Packard Development Company, L.P. | Predicting the health of a computer system by determining a set of modifications involved in a proposed intervention to an existing 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 |
US8479189B2 (en) | 2000-11-17 | 2013-07-02 | Hewlett-Packard Development Company, L.P. | Pattern detection preprocessor in an electronic device update generation system |
US7222184B2 (en) * | 2000-11-29 | 2007-05-22 | Ncr Corporation | Method of downloading web content to a network kiosk in advance |
JP2002236590A (en) * | 2000-12-08 | 2002-08-23 | Seiko Epson Corp | Installing method for software |
US7574481B2 (en) * | 2000-12-20 | 2009-08-11 | Microsoft Corporation | Method and system for enabling offline detection of software updates |
US6970565B1 (en) | 2000-12-22 | 2005-11-29 | Xm Satellite Radio Inc. | Apparatus for and method of securely downloading and installing a program patch in a processing device |
US7013461B2 (en) | 2001-01-05 | 2006-03-14 | International Business Machines Corporation | Systems and methods for service and role-based software distribution |
US20020116633A1 (en) * | 2001-01-19 | 2002-08-22 | Takuya Kobayashi | Data processor |
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 |
US7293115B2 (en) * | 2001-02-28 | 2007-11-06 | Sony Corporation | Internet-aware agent for automatically updating applications without executing the application |
US20020138757A1 (en) * | 2001-03-23 | 2002-09-26 | Motorola, Inc. | Method for securely distributing software components on a computer network |
US20020143907A1 (en) * | 2001-03-30 | 2002-10-03 | Matsushita Electric Industrial Co., Ltd. | Data acquiring apparatus, downloading server and trigger server |
JP2006351035A (en) * | 2001-03-30 | 2006-12-28 | Seiko Epson Corp | Driver automatic installation apparatus and program used for the same and driver automatic installation method |
US7458074B2 (en) * | 2001-03-30 | 2008-11-25 | International Business Machiens Corporation | Method and apparatus for installing and upgrading an application in a computer system |
US7464092B2 (en) * | 2001-04-04 | 2008-12-09 | Alorica, Inc | Method, system and program for customer service and support management |
JP2002318692A (en) * | 2001-04-19 | 2002-10-31 | Sony Corp | Installation support system, installation support device, installation support method, program for supporting installation and recording medium in which the same program is recorded |
US20020157090A1 (en) * | 2001-04-20 | 2002-10-24 | Anton, Jr. Francis M. | Automated updating of access points in a distributed network |
US20040205709A1 (en) * | 2001-05-09 | 2004-10-14 | Sun Microsystems, Inc. | Method,system, and program for providing patch expressions used in determining whether to install a patch |
US7099663B2 (en) | 2001-05-31 | 2006-08-29 | Qualcomm Inc. | Safe application distribution and execution in a wireless environment |
JP2002366469A (en) * | 2001-06-06 | 2002-12-20 | Hitachi Ltd | Network equipment, network system, and method for updating software of network device |
US6931637B2 (en) * | 2001-06-07 | 2005-08-16 | Taiwan Semiconductor Manufacturing Co., Ltd | Computer system upgrade method employing upgrade management utility which provides uninterrupted idle state |
US20030005408A1 (en) * | 2001-07-02 | 2003-01-02 | Pradeep Tumati | System and method for creating software modifiable without halting its execution |
US20060059479A1 (en) * | 2001-07-02 | 2006-03-16 | Pradeep Tumati | System and method for modifying software without halting its execution |
US7194513B2 (en) * | 2001-07-08 | 2007-03-20 | Imran Sharif | System and method for using an internet appliance to send/receive digital content files as E-mail attachments |
US20030023770A1 (en) * | 2001-07-26 | 2003-01-30 | Barmettler James W. | Automated software driver installation |
GB2379039B (en) | 2001-08-22 | 2005-03-23 | Ibm | Transaction processing in a distributed data processing system |
SE0102918D0 (en) * | 2001-08-30 | 2001-08-30 | St Jude Medical | Method of providing software to an implantable medical device system |
US7107588B2 (en) * | 2001-08-31 | 2006-09-12 | Hewlett-Packard Development Company, L.P. | System and method for installing window installer service without rebooting |
US20030051235A1 (en) * | 2001-09-07 | 2003-03-13 | Simpson Mark D. | Method and apparatus for verifying and analyzing computer software installation |
US7430736B2 (en) * | 2001-10-03 | 2008-09-30 | Toshiba Tec Kabushiki Kaisha | Download and installation of software from a network printer |
US7711775B2 (en) * | 2001-10-24 | 2010-05-04 | Groove Networks, Inc. | Method and apparatus for managing software component downloads and updates |
US7350146B2 (en) * | 2001-10-25 | 2008-03-25 | Aol Llc, A Delaware Limited Liability Company | Help center and condition-based applications |
US7290247B2 (en) | 2001-10-25 | 2007-10-30 | Aol, Llc, A Delaware Limited Liability Company | Help center and filtering applications |
US7742999B2 (en) * | 2001-10-25 | 2010-06-22 | Aol Inc. | Help center and print center applications |
US20030084095A1 (en) * | 2001-10-26 | 2003-05-01 | Hayden Douglas Todd | Method to preserve web page links using registration and notification |
US7251812B1 (en) * | 2001-10-31 | 2007-07-31 | Microsoft Corporation | Dynamic software update |
US6915513B2 (en) * | 2001-11-29 | 2005-07-05 | Hewlett-Packard Development Company, L.P. | System and method for dynamically replacing code |
US6993760B2 (en) * | 2001-12-05 | 2006-01-31 | Microsoft Corporation | Installing software on a mobile computing device using the rollback and security features of a configuration manager |
EP1369778A3 (en) * | 2002-01-09 | 2004-01-02 | Matsushita Electric Industrial Co., Ltd. | Program distribution system |
US20030149970A1 (en) * | 2002-01-23 | 2003-08-07 | Vedvyas Shanbhogue | Portable software for rolling upgrades |
JP2003223387A (en) * | 2002-01-29 | 2003-08-08 | Nec Corp | Program download system, broadcasting communication fusion terminal and program download method |
US9134989B2 (en) * | 2002-01-31 | 2015-09-15 | Qualcomm Incorporated | System and method for updating dataset versions resident on a wireless device |
US20040133629A1 (en) * | 2002-02-01 | 2004-07-08 | Brian Reynolds | Methods, systems and devices for automated web publishing and distribution |
US6986108B2 (en) * | 2002-03-21 | 2006-01-10 | Toshiba Tec Kabushiki Kaisha | System for accessing digital imaging devices |
JP4224250B2 (en) * | 2002-04-17 | 2009-02-12 | パイオニア株式会社 | Speech recognition apparatus, speech recognition method, and speech recognition program |
US7430590B1 (en) * | 2002-04-17 | 2008-09-30 | Everdream Corporation | Method and system to manage services for multiple managed computer systems |
US20030200353A1 (en) * | 2002-04-19 | 2003-10-23 | Vikas Dogra | Browser-implemented upload/download of a driver |
US7178144B2 (en) * | 2002-04-23 | 2007-02-13 | Secure Resolutions, Inc. | Software distribution via stages |
US20030200300A1 (en) * | 2002-04-23 | 2003-10-23 | Secure Resolutions, Inc. | Singularly hosted, enterprise managed, plural branded application services |
US20040073903A1 (en) * | 2002-04-23 | 2004-04-15 | Secure Resolutions,Inc. | Providing access to software over a network via keys |
US20030233483A1 (en) * | 2002-04-23 | 2003-12-18 | Secure Resolutions, Inc. | Executing software in a network environment |
US20040040021A1 (en) * | 2002-05-06 | 2004-02-26 | Microsoft Corporation | Method and system for keeping an application up-to-date |
US20030220983A1 (en) * | 2002-05-24 | 2003-11-27 | Waikwan Hui | Method, system, and program for requesting objects to download over a network |
JP2005530239A (en) * | 2002-06-18 | 2005-10-06 | コンピュータ アソシエイツ シンク,インコーポレイテッド | Method and system for managing enterprise assets |
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 |
US20040003134A1 (en) * | 2002-06-27 | 2004-01-01 | Lin Eugene S. | Software sharing model |
US7428585B1 (en) * | 2002-07-31 | 2008-09-23 | Aol Llc, A Delaware Limited Liability Company | Local device access controls |
EP1387279B1 (en) * | 2002-07-31 | 2008-05-14 | Texas Instruments Inc. | Cache coherency in a multi-processor system |
US20040021682A1 (en) * | 2002-07-31 | 2004-02-05 | Pryor Jason A. | Intelligent product selector |
US20040031029A1 (en) * | 2002-08-06 | 2004-02-12 | Kyu-Woong Lee | Methods and systems for automatically updating software components in a network |
US20040034577A1 (en) * | 2002-08-15 | 2004-02-19 | Van Hoose Jeffrey N. | Methods and apparatus for analyzing an inventory for consolidation |
US20040040023A1 (en) * | 2002-08-22 | 2004-02-26 | Ellis David G. | Remote identification loader |
US7370092B2 (en) * | 2002-09-12 | 2008-05-06 | Computer Sciences Corporation | System and method for enhanced software updating and revision |
DE10242918A1 (en) | 2002-09-16 | 2004-03-25 | Siemens Ag | Process data update system for updating data displayed on a client in a process-data-driven environment compares a first update stamp with a second stamp during the addition of new information |
US7216343B2 (en) * | 2002-09-20 | 2007-05-08 | International Business Machines Corporation | Method and apparatus for automatic updating and testing of software |
US7194445B2 (en) * | 2002-09-20 | 2007-03-20 | Lenovo (Singapore) Pte. Ltd. | Adaptive problem determination and recovery in a computer system |
US20040059704A1 (en) * | 2002-09-20 | 2004-03-25 | International Business Machines Corporation | Self-managing computing system |
US7043419B2 (en) * | 2002-09-20 | 2006-05-09 | International Business Machines Corporation | Method and apparatus for publishing and monitoring entities providing services in a distributed data processing system |
US20040060054A1 (en) * | 2002-09-20 | 2004-03-25 | International Business Machines Corporation | Composition service for autonomic computing |
US7222131B1 (en) * | 2002-09-24 | 2007-05-22 | Rockwell Automation Technologies, Inc. | System and methodology facilitating data warehousing of controller images in a distributed industrial controller environment |
US7730155B1 (en) * | 2002-10-01 | 2010-06-01 | Apple Inc. | Method and apparatus for dynamically locating resources |
TW589572B (en) * | 2002-11-12 | 2004-06-01 | Tatung Co | Method for updating operating system |
US20040098419A1 (en) * | 2002-11-18 | 2004-05-20 | International Business Machines Corporation | Method and apparatus for a migration assistant |
US20050251546A1 (en) * | 2002-12-11 | 2005-11-10 | International Business Machines Corporation | Method and system for configuring processing entities according to their roles in a data processing system with a distributed architecture |
US9092286B2 (en) | 2002-12-20 | 2015-07-28 | Qualcomm Incorporated | System to automatically process components on a device |
US7240077B1 (en) | 2002-12-30 | 2007-07-03 | Amazon.Com, Inc. | Web site content change management |
US7703091B1 (en) * | 2002-12-31 | 2010-04-20 | Emc Corporation | Methods and apparatus for installing agents in a managed network |
US7089548B2 (en) * | 2003-01-13 | 2006-08-08 | Taiwan Semiconductor Manufacturing Company, Ltd. | Method and system for nondisruptive deployment during upgrading of enterprise systems |
WO2004072773A2 (en) * | 2003-02-11 | 2004-08-26 | Bitfone Corporation | Electronic device supporting multiple update agents |
US20040167906A1 (en) * | 2003-02-25 | 2004-08-26 | Smith Randolph C. | System consolidation tool and method for patching multiple servers |
US20040230965A1 (en) * | 2003-02-28 | 2004-11-18 | Harri Okkonen | Mobile handset network that facilitates interaction between a generic intelligent responsive agent and a service broker server |
CA2422255C (en) * | 2003-03-14 | 2010-08-17 | Ibm Canada Limited - Ibm Canada Limitee | Computer program product, data processing system, and method for installing or configuring computer software |
US7275216B2 (en) | 2003-03-24 | 2007-09-25 | Microsoft Corporation | System and method for designing electronic forms and hierarchical schemas |
US7415672B1 (en) | 2003-03-24 | 2008-08-19 | Microsoft Corporation | System and method for designing electronic forms |
US7370066B1 (en) | 2003-03-24 | 2008-05-06 | Microsoft Corporation | System and method for offline editing of data files |
US20040192280A1 (en) * | 2003-03-26 | 2004-09-30 | Lockheed Martin Corporation | System for updating application software of data acquisition devices |
US7296017B2 (en) * | 2003-03-28 | 2007-11-13 | Microsoft Corporation | Validation of XML data files |
US7913159B2 (en) | 2003-03-28 | 2011-03-22 | Microsoft Corporation | System and method for real-time validation of structured data files |
US7516145B2 (en) * | 2003-03-31 | 2009-04-07 | Microsoft Corporation | System and method for incrementally transforming and rendering hierarchical data files |
WO2004091207A1 (en) * | 2003-04-02 | 2004-10-21 | Matsushita Electric Industrial Co., Ltd. | Data reproduction device, video display device and software update system and software update method which use them |
WO2004097566A2 (en) | 2003-04-24 | 2004-11-11 | Secureinfo Corporation | Automated electronic software distribution and management method and system |
US7373594B1 (en) * | 2003-04-30 | 2008-05-13 | Amazon.Com, Inc. | Managing the release of electronic content using a template without version logic |
GB2402297B (en) * | 2003-05-15 | 2005-08-17 | Sun Microsystems Inc | Update dependency control for multi-master replication |
US20050015762A1 (en) * | 2003-06-09 | 2005-01-20 | Steckler Steven James | Methods and systems for deploying computer source code |
US7702668B2 (en) * | 2003-06-16 | 2010-04-20 | Microsoft Corporation | Asset composition |
US7228539B2 (en) * | 2003-06-16 | 2007-06-05 | Lucent Technologies Inc. | Method and apparatus for updating inter-server communication software |
US20040268229A1 (en) * | 2003-06-27 | 2004-12-30 | Microsoft Corporation | Markup language editing with an electronic form |
US7451392B1 (en) | 2003-06-30 | 2008-11-11 | Microsoft Corporation | Rendering an HTML electronic form by applying XSLT to XML using a solution |
US7343443B1 (en) | 2003-07-08 | 2008-03-11 | Hewlett-Packard Development Company, L.P. | Updated package generation based on analysis of bank dependency |
US7424706B2 (en) * | 2003-07-16 | 2008-09-09 | Microsoft Corporation | Automatic detection and patching of vulnerable files |
US7594219B2 (en) * | 2003-07-24 | 2009-09-22 | International Business Machines Corporation | Method and apparatus for monitoring compatibility of software combinations |
JP4707978B2 (en) | 2003-07-28 | 2011-06-22 | シャープ株式会社 | Content distribution server, communication terminal, content distribution system, content distribution method, content distribution program, terminal control program, and recording medium recording the program |
US7886093B1 (en) | 2003-07-31 | 2011-02-08 | Hewlett-Packard Development Company, L.P. | Electronic device network supporting compression and decompression in electronic devices |
US20050027657A1 (en) * | 2003-08-01 | 2005-02-03 | Yuri Leontiev | Distinguishing legitimate hardware upgrades from unauthorized installations of software on additional computers |
US7406660B1 (en) | 2003-08-01 | 2008-07-29 | Microsoft Corporation | Mapping between structured data and a visual surface |
US20050034116A1 (en) * | 2003-08-05 | 2005-02-10 | Xerox Corporation | Control of programming electronic devices |
US7334187B1 (en) | 2003-08-06 | 2008-02-19 | Microsoft Corporation | Electronic form aggregation |
US7562346B2 (en) * | 2003-09-02 | 2009-07-14 | Microsoft Corporation | Software componentization for building a software product |
US8555273B1 (en) | 2003-09-17 | 2013-10-08 | Palm. Inc. | Network for updating electronic devices |
US20050066324A1 (en) * | 2003-09-22 | 2005-03-24 | Microsoft Corporation | Method and system for distributing and installing software |
US7937691B2 (en) * | 2003-09-30 | 2011-05-03 | International Business Machines Corporation | Method and apparatus for counting execution of specific instructions and accesses to specific data locations |
JP2005107803A (en) * | 2003-09-30 | 2005-04-21 | Hitachi Ltd | System updating method and computer system for executing the same |
US7373637B2 (en) | 2003-09-30 | 2008-05-13 | International Business Machines Corporation | Method and apparatus for counting instruction and memory location ranges |
US20050071516A1 (en) * | 2003-09-30 | 2005-03-31 | International Business Machines Corporation | Method and apparatus to autonomically profile applications |
US20050071609A1 (en) * | 2003-09-30 | 2005-03-31 | International Business Machines Corporation | Method and apparatus to autonomically take an exception on specified instructions |
US7395527B2 (en) | 2003-09-30 | 2008-07-01 | International Business Machines Corporation | Method and apparatus for counting instruction execution and data accesses |
US7421681B2 (en) * | 2003-10-09 | 2008-09-02 | International Business Machines Corporation | Method and system for autonomic monitoring of semaphore operation in an application |
US8381037B2 (en) * | 2003-10-09 | 2013-02-19 | International Business Machines Corporation | Method and system for autonomic execution path selection in an application |
US20050177829A1 (en) * | 2003-10-10 | 2005-08-11 | Vipul Vishwanath | Method of applying constraints against discovered attributes in provisioning computers |
US20050198629A1 (en) * | 2003-10-10 | 2005-09-08 | Vipul Vishwanath | Method and system for provisioning servers based on a policy and rule hierarchy |
US7472254B2 (en) * | 2003-10-10 | 2008-12-30 | Iora, Ltd. | Systems and methods for modifying a set of data objects |
US20050257245A1 (en) * | 2003-10-10 | 2005-11-17 | Bea Systems, Inc. | Distributed security system with dynamic roles |
US7603547B2 (en) | 2003-10-10 | 2009-10-13 | Bea Systems, Inc. | Security control module |
US7774774B1 (en) * | 2003-10-22 | 2010-08-10 | Apple Inc. | Software setup system |
EP1678609A1 (en) * | 2003-10-27 | 2006-07-12 | American Power Conversion Corporation | System and method for updating a software program |
US8626146B2 (en) | 2003-10-29 | 2014-01-07 | Qualcomm Incorporated | Method, software and apparatus for performing actions on a wireless device using action lists and versioning |
US20050097346A1 (en) * | 2003-10-31 | 2005-05-05 | Brent Pipal | Program code version enforcement |
US7804609B2 (en) * | 2003-11-07 | 2010-09-28 | Desktop Standard Corporation | Methods and systems to connect network printers |
US20050108704A1 (en) * | 2003-11-14 | 2005-05-19 | International Business Machines Corporation | Software distribution application supporting verification of external installation programs |
US20050125525A1 (en) * | 2003-12-09 | 2005-06-09 | International Business Machines | Method, system, and storage medium for providing intelligent distribution of software and files |
US7509636B2 (en) * | 2003-12-15 | 2009-03-24 | Microsoft Corporation | System and method for updating files utilizing delta compression patching |
US7478381B2 (en) * | 2003-12-15 | 2009-01-13 | Microsoft Corporation | Managing software updates and a software distribution service |
US7574706B2 (en) * | 2003-12-15 | 2009-08-11 | Microsoft Corporation | System and method for managing and communicating software updates |
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 |
US7707573B1 (en) * | 2003-12-31 | 2010-04-27 | Google Inc. | Systems and methods for providing and installing software |
US8321858B1 (en) | 2003-12-31 | 2012-11-27 | Google Inc. | Systems and methods for providing software updates |
US8271651B1 (en) | 2003-12-31 | 2012-09-18 | Google Inc. | Methods and systems for regulating resource usage |
US7526757B2 (en) * | 2004-01-14 | 2009-04-28 | International Business Machines Corporation | Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program |
US7415705B2 (en) | 2004-01-14 | 2008-08-19 | International Business Machines Corporation | Autonomic method and apparatus for hardware assist for patching code |
US7895382B2 (en) * | 2004-01-14 | 2011-02-22 | International Business Machines Corporation | Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs |
US7496908B2 (en) | 2004-01-14 | 2009-02-24 | International Business Machines Corporation | Method and apparatus for optimizing code execution using annotated trace information having performance indicator and counter information |
US7392370B2 (en) | 2004-01-14 | 2008-06-24 | International Business Machines Corporation | Method and apparatus for autonomically initiating measurement of secondary metrics based on hardware counter values for primary metrics |
US8024783B2 (en) * | 2004-01-22 | 2011-09-20 | Ryan Riley | Modular agent architecture |
US8429253B1 (en) | 2004-01-27 | 2013-04-23 | Symantec Corporation | Method and system for detecting changes in computer files and settings and automating the migration of settings and files to computers |
US8819072B1 (en) | 2004-02-02 | 2014-08-26 | Microsoft Corporation | Promoting data from structured data files |
US7500108B2 (en) * | 2004-03-01 | 2009-03-03 | Microsoft Corporation | Metered execution of code |
US7774775B2 (en) * | 2004-03-10 | 2010-08-10 | Siebel Systems, Inc. | Method and system for revising installation software |
US7676448B2 (en) * | 2004-03-12 | 2010-03-09 | Microsoft Corporation | Controlling installation update behaviors on a client computer |
US7539686B2 (en) | 2004-03-12 | 2009-05-26 | Microsoft Corporation | Tag-based schema for distributing update metadata in an update distribution system |
US7987453B2 (en) * | 2004-03-18 | 2011-07-26 | International Business Machines Corporation | Method and apparatus for determining computer program flows autonomically using hardware assisted thread stack tracking and cataloged symbolic data |
US7421684B2 (en) | 2004-03-22 | 2008-09-02 | International Business Machines Corporation | Method and apparatus for autonomic test case feedback using hardware assistance for data coverage |
US8117595B2 (en) * | 2004-03-23 | 2012-02-14 | Microsoft Corporation | Method for updating data in accordance with rights management policy |
US7478383B2 (en) * | 2004-03-23 | 2009-01-13 | Toshiba Corporation | System and method for remotely securing software updates of computer systems |
US7430754B2 (en) * | 2004-03-23 | 2008-09-30 | Microsoft Corporation | Method for dynamic application of rights management policy |
US8225304B2 (en) * | 2004-03-23 | 2012-07-17 | Kabushiki Kaisha Toshiba | System and method for remotely securing software updates of computer systems |
KR20060130674A (en) * | 2004-03-25 | 2006-12-19 | 소니 가부시끼 가이샤 | Information signal processing device, function block control method, and function block |
US20050234827A1 (en) * | 2004-04-14 | 2005-10-20 | Rudowsky Michael J | System for processing executable applications to be suitable for distribution |
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 |
US7925635B1 (en) * | 2004-04-23 | 2011-04-12 | Bmc Software, Inc. | System and method for collecting statistics related to software usage |
US7386690B2 (en) * | 2004-04-29 | 2008-06-10 | International Business Machines Corporation | Method and apparatus for hardware awareness of data types |
US7496837B1 (en) | 2004-04-29 | 2009-02-24 | Microsoft Corporation | Structural editing with schema awareness |
US7328374B2 (en) * | 2004-04-29 | 2008-02-05 | International Business Machines Corporation | Method and apparatus for implementing assertions in hardware |
US20050251706A1 (en) * | 2004-04-29 | 2005-11-10 | International Business Machines Corporation | Method and apparatus for data-aware hardware operations |
US7269718B2 (en) * | 2004-04-29 | 2007-09-11 | International Business Machines Corporation | Method and apparatus for verifying data types to be used for instructions and casting data types if needed |
EP1770511A4 (en) * | 2004-05-19 | 2009-01-14 | Qwanty Corp | Information processor, software updating system, software updating method, and its program |
US7496910B2 (en) * | 2004-05-21 | 2009-02-24 | Desktopstandard Corporation | System for policy-based management of software updates |
US7281018B1 (en) | 2004-05-26 | 2007-10-09 | Microsoft Corporation | Form template data source change |
US7774620B1 (en) | 2004-05-27 | 2010-08-10 | Microsoft Corporation | Executing applications at appropriate trust levels |
US20060004668A1 (en) * | 2004-07-01 | 2006-01-05 | Hamnen Jan H | Method of distributing electronic license keys |
JP4700301B2 (en) * | 2004-07-15 | 2011-06-15 | オークマ株式会社 | Software object verification method for real-time systems |
US8526940B1 (en) | 2004-08-17 | 2013-09-03 | Palm, Inc. | Centralized rules repository for smart phone customer care |
US7549169B1 (en) | 2004-08-26 | 2009-06-16 | Symantec Corporation | Alternated update system and method |
US7600006B2 (en) | 2004-08-31 | 2009-10-06 | Inter-Tel, Inc | Peer-to-peer distribution of firmware |
US7692636B2 (en) | 2004-09-30 | 2010-04-06 | Microsoft Corporation | Systems and methods for handwriting to a screen |
US20060074933A1 (en) * | 2004-09-30 | 2006-04-06 | Microsoft Corporation | Workflow interaction |
US7890952B2 (en) * | 2004-10-07 | 2011-02-15 | International Business Machines Corporation | Autonomic peer-to-peer computer software installation |
US7546595B1 (en) | 2004-10-14 | 2009-06-09 | Microsoft Corporation | System and method of installing software updates in a computer networking environment |
US7814473B2 (en) * | 2004-10-27 | 2010-10-12 | Oracle International Corporation | Feature usage based target patching |
US8487879B2 (en) | 2004-10-29 | 2013-07-16 | Microsoft Corporation | Systems and methods for interacting with a computer through handwriting to a screen |
US7516150B1 (en) * | 2004-10-29 | 2009-04-07 | Symantec Corporation | Update protection system and method |
JP4688472B2 (en) * | 2004-11-01 | 2011-05-25 | 株式会社エヌ・ティ・ティ・ドコモ | Terminal control apparatus and terminal control method |
US7712022B2 (en) | 2004-11-15 | 2010-05-04 | Microsoft Corporation | Mutually exclusive options in electronic forms |
US7584417B2 (en) * | 2004-11-15 | 2009-09-01 | Microsoft Corporation | Role-dependent action for an electronic form |
US7509353B2 (en) * | 2004-11-16 | 2009-03-24 | Microsoft Corporation | Methods and systems for exchanging and rendering forms |
US7721190B2 (en) * | 2004-11-16 | 2010-05-18 | Microsoft Corporation | Methods and systems for server side form processing |
TWI273453B (en) * | 2004-12-10 | 2007-02-11 | Hon Hai Prec Ind Co Ltd | An system and method for automatically updating software |
US8019725B1 (en) | 2004-12-15 | 2011-09-13 | Apple Inc. | Software update management |
US7904801B2 (en) * | 2004-12-15 | 2011-03-08 | Microsoft Corporation | Recursive sections in electronic forms |
US7437376B2 (en) * | 2004-12-20 | 2008-10-14 | Microsoft Corporation | Scalable object model |
US7426571B2 (en) * | 2005-01-06 | 2008-09-16 | Dell Products L.P. | Providing files to an information handling system using a remote access controller |
US7937651B2 (en) | 2005-01-14 | 2011-05-03 | Microsoft Corporation | Structural editing operations for network forms |
US8365293B2 (en) * | 2005-01-25 | 2013-01-29 | Redphone Security, Inc. | Securing computer network interactions between entities with authorization assurances |
US20060168576A1 (en) * | 2005-01-27 | 2006-07-27 | Dell Products L.P. | Method of updating a computer system to a qualified state prior to installation of an operating system |
US7523147B2 (en) * | 2005-02-24 | 2009-04-21 | International Business Machines Corporation | Method and system for managing inventory for a migration using history data |
US7725834B2 (en) | 2005-03-04 | 2010-05-25 | Microsoft Corporation | Designer-created aspect for an electronic form template |
US9270732B2 (en) * | 2005-03-14 | 2016-02-23 | Rhapsody International Inc. | System and method for automatically uploading updates |
US7987459B2 (en) | 2005-03-16 | 2011-07-26 | Microsoft Corporation | Application programming interface for identifying, downloading and installing applicable software updates |
US8029365B2 (en) | 2005-03-24 | 2011-10-04 | Wms Gaming Inc. | Hierarchical multi-tiered system for gaming related communications |
US8359645B2 (en) * | 2005-03-25 | 2013-01-22 | Microsoft Corporation | Dynamic protection of unpatched machines |
US7673228B2 (en) * | 2005-03-30 | 2010-03-02 | Microsoft Corporation | Data-driven actions for network forms |
US8516583B2 (en) | 2005-03-31 | 2013-08-20 | Microsoft Corporation | Aggregating the knowledge base of computer systems to proactively protect a computer from malware |
JP4764056B2 (en) * | 2005-04-14 | 2011-08-31 | キヤノン株式会社 | Image processing apparatus, control program update method, and program |
US8010515B2 (en) * | 2005-04-15 | 2011-08-30 | Microsoft Corporation | Query to an electronic form |
US20060259967A1 (en) * | 2005-05-13 | 2006-11-16 | Microsoft Corporation | Proactively protecting computers in a networking environment from malware |
US7543228B2 (en) * | 2005-06-27 | 2009-06-02 | Microsoft Corporation | Template for rendering an electronic form |
US8200975B2 (en) | 2005-06-29 | 2012-06-12 | Microsoft Corporation | Digital signatures for network forms |
US20070036433A1 (en) * | 2005-08-15 | 2007-02-15 | Microsoft Corporation | Recognizing data conforming to a rule |
US8271973B2 (en) * | 2005-09-09 | 2012-09-18 | Emulex Design & Manufacturing Corporation | Automated notification of software installation failures |
US20070061140A1 (en) * | 2005-09-15 | 2007-03-15 | Li Li | Collation regression testing |
US20070073623A1 (en) * | 2005-09-28 | 2007-03-29 | Nicholas Phelps | Method of manufacturing application software |
US7484173B2 (en) * | 2005-10-18 | 2009-01-27 | International Business Machines Corporation | Alternative key pad layout for enhanced security |
US20070094400A1 (en) * | 2005-10-20 | 2007-04-26 | Childress Rhonda L | Software installation within a federation |
CN100442901C (en) * | 2005-10-25 | 2008-12-10 | 华为技术有限公司 | Method and apparatus for monitoring and updating software in apparatus management |
US8271970B2 (en) * | 2005-10-27 | 2012-09-18 | Siemens Aktiengesellschaft | Method for software distribution |
US8001459B2 (en) | 2005-12-05 | 2011-08-16 | Microsoft Corporation | Enabling electronic documents for limited-capability computing devices |
US8046755B2 (en) * | 2005-12-30 | 2011-10-25 | Sap Ag | Deploying software based on a calculated deployment risk level |
WO2007081163A1 (en) * | 2006-01-11 | 2007-07-19 | Samsung Electronics Co., Ltd. | Security management method and apparatus in multimedia middleware, and storage medium therefor |
KR101168437B1 (en) | 2006-01-11 | 2012-07-25 | 한국과학기술원 | Method and apparatus of security management in a multimedia middleware, storing medium and security data structure therefor |
US7779343B2 (en) | 2006-01-30 | 2010-08-17 | Microsoft Corporation | Opening network-enabled electronic documents |
KR20070100598A (en) * | 2006-04-07 | 2007-10-11 | 삼성전자주식회사 | Information recording medium, reproducing method and reproducing apparatus |
US8533700B1 (en) * | 2006-04-11 | 2013-09-10 | Open Invention Networks, Llc | Workstation uptime, maintenance, and reboot service |
US20070244897A1 (en) * | 2006-04-18 | 2007-10-18 | David Voskuil | Methods and systems for change management for a group policy environment |
US10838714B2 (en) | 2006-04-24 | 2020-11-17 | Servicenow, Inc. | Applying packages to configure software stacks |
US7971187B2 (en) * | 2006-04-24 | 2011-06-28 | Microsoft Corporation | Configurable software stack |
US7873940B2 (en) * | 2006-04-24 | 2011-01-18 | Microsoft Corporation | Providing packages for configuring software stacks |
US20080005732A1 (en) * | 2006-05-11 | 2008-01-03 | Coon Robert F | Method and System for Integrating Software Update Services with Software Applications |
US8209676B2 (en) | 2006-06-08 | 2012-06-26 | Hewlett-Packard Development Company, L.P. | Device management in a network |
US8775572B2 (en) | 2006-06-23 | 2014-07-08 | Microsoft Corporation | Public network distribution of software updates |
JP4539613B2 (en) * | 2006-06-28 | 2010-09-08 | 富士ゼロックス株式会社 | Image forming apparatus, image generation method, and program |
EP2047420A4 (en) | 2006-07-27 | 2009-11-18 | Hewlett Packard Development Co | User experience and dependency management in a mobile device |
US7873957B2 (en) * | 2006-07-27 | 2011-01-18 | Microsoft Corporation | Minimizing user disruption during modification operations |
US9568206B2 (en) | 2006-08-15 | 2017-02-14 | Schneider Electric It Corporation | Method and apparatus for cooling |
US8327656B2 (en) | 2006-08-15 | 2012-12-11 | American Power Conversion Corporation | Method and apparatus for cooling |
US8322155B2 (en) | 2006-08-15 | 2012-12-04 | American Power Conversion Corporation | Method and apparatus for cooling |
US7876902B2 (en) * | 2006-08-31 | 2011-01-25 | Microsoft Corporation | Distribution of encrypted software update to reduce attack window |
US7840941B2 (en) * | 2006-09-01 | 2010-11-23 | Microsoft Corporation | Conflict resolution of software customizations based on product dependencies |
US8584115B2 (en) * | 2006-10-05 | 2013-11-12 | International Business Machines Corporation | Automated operating system device driver updating system |
GB0622738D0 (en) * | 2006-11-15 | 2006-12-27 | Ibm | Methods and apparatus for assisted migration in a data processing environment |
US20080120598A1 (en) * | 2006-11-20 | 2008-05-22 | Viewtier Systems, Inc. | Method and apparatus of a build management system |
US7681404B2 (en) | 2006-12-18 | 2010-03-23 | American Power Conversion Corporation | Modular ice storage for uninterruptible chilled water |
US8425287B2 (en) | 2007-01-23 | 2013-04-23 | Schneider Electric It Corporation | In-row air containment and cooling system and method |
US8701101B2 (en) * | 2007-03-30 | 2014-04-15 | Blackberry Limited | System and method for managing upgrades for a portable electronic device |
US20090138313A1 (en) | 2007-05-15 | 2009-05-28 | American Power Conversion Corporation | Methods and systems for managing facility power and cooling |
US20080301659A1 (en) * | 2007-05-31 | 2008-12-04 | Microsoft Corporation | Updating Software after Release |
US8762984B2 (en) * | 2007-05-31 | 2014-06-24 | Microsoft Corporation | Content distribution infrastructure |
US8230417B1 (en) | 2007-06-08 | 2012-07-24 | Adobe Systems Incorporated | Combined application and execution environment install |
WO2008157735A2 (en) | 2007-06-19 | 2008-12-24 | Qualcomm Incorporated | Methods and apparatus for dataset synchronization in a wireless environment |
US8561058B2 (en) * | 2007-06-20 | 2013-10-15 | Red Hat, Inc. | Methods and systems for dynamically generating installation configuration files for software |
US8464247B2 (en) * | 2007-06-21 | 2013-06-11 | Red Hat, Inc. | Methods and systems for dynamically generating installation configuration files for software |
US8375381B1 (en) * | 2007-07-30 | 2013-02-12 | Adobe Systems Incorporated | Management user interface for application execution environment |
US7930273B1 (en) | 2007-07-30 | 2011-04-19 | Adobe Systems Incorporated | Version management for application execution environment |
US8448161B2 (en) * | 2007-07-30 | 2013-05-21 | Adobe Systems Incorporated | Application tracking for application execution environment |
CN101425922B (en) * | 2007-10-31 | 2011-09-28 | 国际商业机器公司 | Method and device for tracking and positioning change in web service updating process |
SG10201702351UA (en) * | 2007-11-27 | 2017-05-30 | Boeing Co | Method and apparatus for loadable software airplane parts (lsap) distribution |
JP5132292B2 (en) * | 2007-12-07 | 2013-01-30 | キヤノン株式会社 | Information processing apparatus and information processing method |
JP4695153B2 (en) * | 2008-02-08 | 2011-06-08 | 富士通エフ・アイ・ピー株式会社 | Toolbar providing server, toolbar providing program, toolbar providing method, toolbar providing system |
US9690913B2 (en) * | 2008-02-25 | 2017-06-27 | International Business Machines Corporation | License management in a networked software application solution |
US8340131B2 (en) * | 2008-05-05 | 2012-12-25 | Sentilla Corporation, Inc. | Efficient broadcast of data in a communication network |
JP2010027024A (en) * | 2008-06-19 | 2010-02-04 | Canon Inc | Apparatus processing user generated data, method of controlling the same, program, and storage medium |
US8204969B2 (en) * | 2008-08-05 | 2012-06-19 | Canon Kabushiki Kaisha | Method for retrieving updates via the internet |
US20100058317A1 (en) * | 2008-09-02 | 2010-03-04 | Vasco Data Security, Inc. | Method for provisioning trusted software to an electronic device |
US20100083246A1 (en) * | 2008-09-29 | 2010-04-01 | Synopsys, Inc. | System and method for verifying delivered software |
US9740441B2 (en) * | 2008-12-12 | 2017-08-22 | At&T Intellectual Property, L.P. | System and method for distributing software updates |
US9778718B2 (en) * | 2009-02-13 | 2017-10-03 | Schneider Electric It Corporation | Power supply and data center control |
US8560677B2 (en) * | 2009-02-13 | 2013-10-15 | Schneider Electric It Corporation | Data center control |
US9519517B2 (en) | 2009-02-13 | 2016-12-13 | Schneider Electtic It Corporation | Data center control |
JP4692652B2 (en) * | 2009-02-18 | 2011-06-01 | コニカミノルタビジネステクノロジーズ株式会社 | License management system, license management computer, license management method, and license management program |
US20100242037A1 (en) * | 2009-03-17 | 2010-09-23 | Microsoft Corporation | Software Deployment over a Network |
US8417926B2 (en) * | 2009-03-31 | 2013-04-09 | Red Hat, Inc. | Systems and methods for providing configuration management services from a provisioning server |
JP5428721B2 (en) * | 2009-10-02 | 2014-02-26 | 富士通株式会社 | Management system, management device, management method, and management program |
US20110113416A1 (en) * | 2009-11-09 | 2011-05-12 | Bank Of America Corporation | Network-Enhanced Control Of Software Updates Received Via Removable Computer-Readable Medium |
US8972974B2 (en) * | 2009-11-09 | 2015-03-03 | Bank Of America Corporation | Multiple invocation points in software build task sequence |
US20110113226A1 (en) * | 2009-11-09 | 2011-05-12 | Bank Of America Corporation | Distribution Of Software Updates |
US9128799B2 (en) * | 2009-11-09 | 2015-09-08 | Bank Of America Corporation | Programmatic creation of task sequences from manifests |
US9122558B2 (en) * | 2009-11-09 | 2015-09-01 | Bank Of America Corporation | Software updates using delta patching |
US9176898B2 (en) * | 2009-11-09 | 2015-11-03 | Bank Of America Corporation | Software stack building using logically protected region of computer-readable medium |
JP5483561B2 (en) * | 2010-02-25 | 2014-05-07 | 楽天株式会社 | Storage device, server device, storage system, database device, data providing method, and program |
US20110238572A1 (en) * | 2010-03-25 | 2011-09-29 | Bank Of America Corporation | Remote Control Of Self-Service Terminal |
TW201135594A (en) * | 2010-04-08 | 2011-10-16 | Inventec Corp | System for updating software using separated modules and method thereof |
TWI515656B (en) * | 2010-05-20 | 2016-01-01 | 緯創資通股份有限公司 | Method and device for program installation |
US9021392B2 (en) * | 2010-07-26 | 2015-04-28 | Sap Se | Managing extension projects with repository based tagging |
US9052976B2 (en) * | 2010-11-08 | 2015-06-09 | Mckesson Financial Holdings | Methods, apparatuses and computer program products for facilitating efficient deployment of software |
US8713559B2 (en) | 2010-11-15 | 2014-04-29 | Schneider Electric It Corporation | System and method for updating firmware |
US20120137278A1 (en) | 2010-11-30 | 2012-05-31 | International Business Machines Corporation | Generating a customized set of tasks for migration of a deployed software solution |
US9002993B2 (en) * | 2011-03-28 | 2015-04-07 | Greenwave Systems Pte. Ltd. | Dynamic configuration of a client-server relationship |
US8893968B2 (en) | 2011-06-07 | 2014-11-25 | Greenwave Systems Pte. Ltd. | Network inclusion of a networked light bulb |
US8769519B2 (en) | 2011-12-08 | 2014-07-01 | Microsoft Corporation | Personal and pooled virtual machine update |
US9830410B2 (en) | 2011-12-22 | 2017-11-28 | Schneider Electric It Corporation | System and method for prediction of temperature values in an electronics system |
CN104137105B (en) | 2011-12-22 | 2017-07-11 | 施耐德电气It公司 | Impact analysis on temporal event to the temperature in data center |
US9043784B2 (en) | 2012-01-12 | 2015-05-26 | Red Hat, Inc. | Management of inter-dependent configurations of virtual machines in a cloud |
US9658841B2 (en) * | 2012-08-30 | 2017-05-23 | Avaya Inc. | System and method for efficient software replication |
US8972972B2 (en) * | 2012-09-13 | 2015-03-03 | Elemental Technologies, Inc. | Handshaking methodology and redundant data channel between servers during software upgrade |
US9317269B2 (en) | 2012-09-28 | 2016-04-19 | Wal-Mart Stores, Inc. | Systems and methods for installing, managing, and provisioning applications |
US9128792B2 (en) | 2012-09-28 | 2015-09-08 | Wal-Mart Stores, Inc. | Systems and methods for installing, managing, and provisioning applications |
US9235491B2 (en) | 2012-09-28 | 2016-01-12 | Wal-Mart Stores, Inc. | Systems and methods for installing, managing, and provisioning applications |
US8949824B2 (en) | 2012-09-28 | 2015-02-03 | Wal-Mart Stores, Inc. | Systems and methods for installing, managing, and provisioning applications |
US9325575B2 (en) | 2012-10-31 | 2016-04-26 | Aruba Networks, Inc. | Zero touch provisioning |
US9015694B2 (en) * | 2012-10-31 | 2015-04-21 | Aruba Networks, Inc | Cloud-based firmware distribution service |
US8938424B2 (en) | 2012-10-31 | 2015-01-20 | Ca, Inc. | System and method of assessing the state of a database product for installation consistency |
US9542172B2 (en) | 2013-02-05 | 2017-01-10 | Apple Inc. | Automatic updating of applications |
JP5939180B2 (en) | 2013-03-15 | 2016-06-22 | ブラザー工業株式会社 | Information processing apparatus, relay server, information relay method, information relay program, and communication system |
US20140282478A1 (en) * | 2013-03-15 | 2014-09-18 | Silicon Graphics International Corp. | Tcp server bootloader |
US9268550B2 (en) * | 2013-03-28 | 2016-02-23 | Alcatel Lucent | Method or image management in distributed cloud |
KR101782457B1 (en) | 2013-08-13 | 2017-09-28 | 후아웨이 테크놀러지 컴퍼니 리미티드 | Application upgrade method and apparatus |
US9767424B2 (en) * | 2013-10-16 | 2017-09-19 | Sap Se | Zero downtime maintenance with maximum business functionality |
GB2519790B (en) * | 2013-10-30 | 2017-07-12 | 1E Ltd | Configuration of network devices |
US9996339B2 (en) * | 2014-06-04 | 2018-06-12 | Microsoft Technology Licensing, Llc | Enhanced updating for digital content |
US9740473B2 (en) | 2015-08-26 | 2017-08-22 | Bank Of America Corporation | Software and associated hardware regression and compatibility testing system |
US9672028B1 (en) * | 2015-11-19 | 2017-06-06 | Ricoh Company, Ltd. | Device management system, apparatus and method for notification and scheduling of firmware update |
US10045203B2 (en) * | 2016-08-27 | 2018-08-07 | Verizon Patent And Licensing Inc. | Enterprise software/firmware management and distribution |
JP6667430B2 (en) * | 2016-12-27 | 2020-03-18 | クラリオン株式会社 | Software update device, software update system |
US11106450B2 (en) * | 2018-09-28 | 2021-08-31 | Getac Technology Corporation | Information extraction apparatus, and automatic firmware update system and method for embedded system |
US10671373B1 (en) | 2018-12-30 | 2020-06-02 | Microsoft Technology Licensing, Llc | Mechanism for automatically incorporating software code changes into proper channels |
US11490256B2 (en) | 2019-03-11 | 2022-11-01 | Hewlett Packard Enterprise Development Lp | Secure zero-touch provisioning of network devices in an offline deployment |
US11394789B2 (en) | 2019-05-08 | 2022-07-19 | Hewlett Packard Enterprise Development Lp | Seamless migration of a network management system deployment to cloud-based deployment |
CN110780910A (en) * | 2019-10-29 | 2020-02-11 | 苏州长光华医生物医学工程有限公司 | Method and system for updating software of lower computer and computer readable storage medium |
US11099979B2 (en) * | 2019-10-31 | 2021-08-24 | International Business Machines Corporation | Testing and modifying calendar and event sensitive timer series data analytics |
US11442848B1 (en) | 2020-06-18 | 2022-09-13 | Appceler8, LLC | System and method for automated patch compatibility of applications |
US10970064B1 (en) | 2020-07-28 | 2021-04-06 | Bank Of America Corporation | Dynamically updating a software program to resolve errors |
CN112256295A (en) * | 2020-09-21 | 2021-01-22 | 北京达佳互联信息技术有限公司 | Application program updating method, device, equipment and storage medium |
US11392365B2 (en) | 2020-12-14 | 2022-07-19 | International Business Machines Corporation | Optimizing device update scheduling |
US11782701B2 (en) * | 2021-06-01 | 2023-10-10 | Stephen Davidson | Software updater |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5155847A (en) * | 1988-08-03 | 1992-10-13 | Minicom Data Corporation | Method and apparatus for updating software at remote locations |
WO1992022870A1 (en) * | 1991-06-12 | 1992-12-23 | Icl Systems Aktiebolag | Method and system for revising data in a distributed data communication system |
WO1994025923A1 (en) * | 1993-04-30 | 1994-11-10 | Novadigm, Inc. | Method and apparatus for enterprise desktop management |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4558413A (en) | 1983-11-21 | 1985-12-10 | Xerox Corporation | Software version management 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 |
US5845090A (en) * | 1994-02-14 | 1998-12-01 | Platinium Technology, Inc. | System for software distribution in a digital computer network |
US5897640A (en) | 1994-08-08 | 1999-04-27 | Microsoft Corporation | Method and system of associating, synchronizing and reconciling computer files in an operating system |
JP3946275B2 (en) * | 1995-01-10 | 2007-07-18 | 富士通株式会社 | Remote installation system and method |
JPH0934763A (en) | 1995-07-19 | 1997-02-07 | Fuji Xerox Co Ltd | Device and method for managing file |
WO1997004389A1 (en) | 1995-07-20 | 1997-02-06 | Novell, Inc. | Transaction synchronization in a disconnectable computer and network |
US5778231A (en) | 1995-12-20 | 1998-07-07 | Sun Microsystems, Inc. | Compiler system and method for resolving symbolic references to externally located program files |
US5881236A (en) * | 1996-04-26 | 1999-03-09 | Hewlett-Packard Company | System for installation of software on a remote computer system over a network using checksums and password protection |
US5752042A (en) * | 1996-06-07 | 1998-05-12 | International Business Machines Corporation | Server computer for selecting program updates for a client computer based on results of recognizer program(s) furnished to the client computer |
US5870610A (en) * | 1996-06-28 | 1999-02-09 | Siemens Business Communication Systems, Inc. | Autoconfigurable method and system having automated downloading |
US6067582A (en) * | 1996-08-13 | 2000-05-23 | Angel Secure Networks, Inc. | System for installing information related to a software application to a remote computer over a network |
US6006034A (en) | 1996-09-05 | 1999-12-21 | Open Software Associates, Ltd. | Systems and methods for automatic application version upgrading and maintenance |
US5809251A (en) * | 1996-10-09 | 1998-09-15 | Hewlett-Packard Company | Remote installation of software by a management information system into a remote computer |
US6134705A (en) * | 1996-10-28 | 2000-10-17 | Altera Corporation | Generation of sub-netlists for use in incremental compilation |
US5797016A (en) | 1996-10-29 | 1998-08-18 | Cheyenne Software Inc. | Regeneration agent for back-up software |
US5867714A (en) * | 1996-10-31 | 1999-02-02 | Ncr Corporation | System and method for distributing configuration-dependent software revisions to a computer system |
GB9623298D0 (en) * | 1996-11-08 | 1997-01-08 | Int Computers Ltd | Updating mechanism for software |
US5933647A (en) | 1997-01-24 | 1999-08-03 | Cognet Corporation | System and method for software distribution and desktop management in a computer network environment |
US5999947A (en) | 1997-05-27 | 1999-12-07 | Arkona, Llc | Distributing database differences corresponding to database change events made to a database table located on a server computer |
-
1998
- 1998-01-28 GB GB9801661A patent/GB2333864B/en not_active Expired - Lifetime
- 1998-04-24 GB GB9808657A patent/GB2333865B/en not_active Expired - Lifetime
- 1998-09-22 US US09/158,704 patent/US6199204B1/en not_active Expired - Lifetime
-
1999
- 1999-01-13 JP JP00620399A patent/JP3385590B2/en not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5155847A (en) * | 1988-08-03 | 1992-10-13 | Minicom Data Corporation | Method and apparatus for updating software at remote locations |
WO1992022870A1 (en) * | 1991-06-12 | 1992-12-23 | Icl Systems Aktiebolag | Method and system for revising data in a distributed data communication system |
WO1994025923A1 (en) * | 1993-04-30 | 1994-11-10 | Novadigm, Inc. | Method and apparatus for enterprise desktop management |
Non-Patent Citations (1)
Title |
---|
Tool pushes app distribution limits, Review of Marimba Castanet v3.0, LAN Times, 31 August 1998 * |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1079301A3 (en) * | 1999-08-26 | 2005-04-13 | Hitachi, Ltd. | Method and system for software distribution |
US6715143B1 (en) | 1999-10-15 | 2004-03-30 | Alcatel | Method for installing software components at a user-terminal, related devices and related software module |
EP1093054A1 (en) * | 1999-10-15 | 2001-04-18 | Alcatel | Method for installing software components at a user-terminal, related devices and related software modules |
EP1357470A3 (en) * | 2002-04-23 | 2007-04-18 | Secure Resolutions, Inc. | Distributed server software distribution |
EP1357470A2 (en) * | 2002-04-23 | 2003-10-29 | Secure Resolutions, Inc. | Distributed server software distribution |
US7401133B2 (en) | 2002-04-23 | 2008-07-15 | Secure Resolutions, Inc. | Software administration in an application service provider scenario via configuration directives |
EP1376440A1 (en) * | 2002-06-26 | 2004-01-02 | Oticon A/S | System and method for handling forms for information |
EP1629360A2 (en) * | 2003-04-17 | 2006-03-01 | Networks Associates Technology, Inc. | Update system and method for updating a scanning subsystem in a mobile communication framework |
WO2004095167A2 (en) | 2003-04-17 | 2004-11-04 | Networks Associates Technology, Inc. | Update system and method for updating a scanning subsystem in a mobile communication framework |
EP1629360A4 (en) * | 2003-04-17 | 2009-09-09 | Mcafee Inc | Update system and method for updating a scanning subsystem in a mobile communication framework |
US7853609B2 (en) | 2004-03-12 | 2010-12-14 | Microsoft Corporation | Update distribution system architecture and method for distributing software |
EP1763744A1 (en) * | 2004-04-30 | 2007-03-21 | Research In Motion Limited | System and method of owner application control of electronic devices |
EP1763744A4 (en) * | 2004-04-30 | 2007-10-24 | Research In Motion Ltd | System and method of owner application control of electronic devices |
US7546956B2 (en) | 2004-04-30 | 2009-06-16 | Research In Motion Limited | System and method of operation control on an electronic device |
US7815100B2 (en) | 2004-04-30 | 2010-10-19 | Research In Motion Limited | System and method of owner application control of electronic devices |
EP2275929A1 (en) * | 2004-05-11 | 2011-01-19 | Microsoft Corporation | Efficient software patching |
EP1596289A1 (en) * | 2004-05-11 | 2005-11-16 | Microsoft Corporation | Efficient software patching |
EP1598740B1 (en) * | 2004-05-11 | 2018-09-05 | Microsoft Technology Licensing, LLC | Efficient software patching |
EP1596290A1 (en) * | 2004-05-11 | 2005-11-16 | Microsoft Corporation | Efficient software patching |
EP1869554A4 (en) * | 2005-03-09 | 2009-01-07 | Ipass Inc | System and method for managing software patches |
EP1869554A2 (en) * | 2005-03-09 | 2007-12-26 | Ipass Inc. | System and method for managing software patches |
US8045958B2 (en) | 2005-11-21 | 2011-10-25 | Research In Motion Limited | System and method for application program operation on a wireless device |
US8254884B2 (en) | 2005-11-21 | 2012-08-28 | Research In Motion Limited | System and method for application program operation on a wireless device |
US8699999B2 (en) | 2005-11-21 | 2014-04-15 | Blackberry Limited | System and method for application program operation on a wireless device |
US8332906B2 (en) | 2006-02-27 | 2012-12-11 | Research In Motion Limited | Method of customizing a standardized IT policy |
US8544057B2 (en) | 2006-02-27 | 2013-09-24 | Blackberry Limited | Method of customizing a standardized IT policy |
US9621587B2 (en) | 2006-02-27 | 2017-04-11 | Blackberry Limited | Method of customizing a standardized IT policy |
EP2245533A4 (en) * | 2008-02-10 | 2015-08-26 | Safenet Data Security Israel Ltd | Computer data product license installation / update confirmation |
Also Published As
Publication number | Publication date |
---|---|
JPH11272454A (en) | 1999-10-08 |
GB2333864A (en) | 1999-08-04 |
GB9808657D0 (en) | 1998-06-24 |
US6199204B1 (en) | 2001-03-06 |
GB2333865B (en) | 2003-05-14 |
JP3385590B2 (en) | 2003-03-10 |
GB2333864B (en) | 2003-05-07 |
GB9801661D0 (en) | 1998-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6202207B1 (en) | Method and a mechanism for synchronized updating of interoperating software | |
US6199204B1 (en) | Distribution of software updates via a computer network | |
US7448034B2 (en) | Build time determination and installation of drivers on cloned systems | |
US6986133B2 (en) | System and method for securely upgrading networked devices | |
US7143406B2 (en) | Asynchronous software update | |
US6006034A (en) | Systems and methods for automatic application version upgrading and maintenance | |
US5752042A (en) | Server computer for selecting program updates for a client computer based on results of recognizer program(s) furnished to the client computer | |
US7373643B2 (en) | Apparatus, methods and articles of manufacture for data transmission | |
US7024471B2 (en) | Mechanism to dynamically update a windows system with user specific application enablement support from a heterogeneous server environment | |
US7934210B1 (en) | System and method for updating one or more programs and their environment | |
US8234639B2 (en) | Autonomic auto-configuration using prior installation configuration relationships | |
US6301710B1 (en) | System and method for creating a substitute registry when automatically installing an update program | |
US7310801B2 (en) | Servicing a component-based software product throughout the software product lifecycle | |
US20030233483A1 (en) | Executing software in a network environment | |
US20060020937A1 (en) | System and method for extraction and creation of application meta-information within a software application repository | |
US20040059703A1 (en) | Cascading behavior of package generation/installation based on variable parameters | |
WO2000068836A2 (en) | Methods for managing the distribution of client bits to client computers | |
KR20040002739A (en) | System and method for installing a software application in a non-impactfull manner | |
US7707571B1 (en) | Software distribution systems and methods using one or more channels | |
US10558450B2 (en) | Mechanism for customizing multiple computing devices | |
US7296255B2 (en) | Systems for incremental application deployment | |
CN115344273B (en) | Method and system for running application software based on shelf system | |
Cisco | Cisco NSM 4.2 Installation and Licensing Guide | |
Guide | Novell® | |
Dayley | Novell ZENworks for Desktops 4 Administrator's Handbook |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
746 | Register noted 'licences of right' (sect. 46/1977) |
Effective date: 20090317 |
|
PE20 | Patent expired after termination of 20 years |
Expiry date: 20180423 |
|
732E | Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977) |
Free format text: REGISTERED BETWEEN 20180607 AND 20180613 |