CA1310131C - Method and apparatus for updating software at remote locations - Google Patents
Method and apparatus for updating software at remote locationsInfo
- Publication number
- CA1310131C CA1310131C CA000577832A CA577832A CA1310131C CA 1310131 C CA1310131 C CA 1310131C CA 000577832 A CA000577832 A CA 000577832A CA 577832 A CA577832 A CA 577832A CA 1310131 C CA1310131 C CA 1310131C
- Authority
- CA
- Canada
- Prior art keywords
- computer system
- remote computer
- patch
- executable code
- patches
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0748—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a remote unit communicating with a single-box computer node experiencing an error/fault
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2289—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2294—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by remote test
Abstract
ABSTRACT OF THE DISCLOSURE
A method and system are provided for updating the software used in remote computer systems from a central computer system. The method includes storing in the central computer system, copies of the software used in each remote computer system. When the copies of the software in the central computer system are upgraded, for example, to correct the software, to add new facilities, to change user interfaces, to make cosmetic changes, to improve performance, etc., each change made to the software is monitored and stored. The remote computer systems are permitted access to the central computer system via communication links and the software in the remote computer systems and the corresponding software in the central computer system are compared.
All of the changes that have been made to the software at the central computer system which have not been made to the corresponding software at the remote computer system accessing the central computer are detected. The detected changes are then transmitted to the remote computer system and applied to the software therein in order to upgrade the software in the remote computer system. The upgraded software in the remote computer system is examined to ensure that the software has been changed correctly. The method allows the software at the remote computer systems to be upgraded even while the software at the remote site is being used. The system and method also allow the software used in the remote computer systems to be upgraded when the remote computer systems use different versions of the software and allow the software to be upgraded in a variety of hardware environments and operating systems.
A method and system are provided for updating the software used in remote computer systems from a central computer system. The method includes storing in the central computer system, copies of the software used in each remote computer system. When the copies of the software in the central computer system are upgraded, for example, to correct the software, to add new facilities, to change user interfaces, to make cosmetic changes, to improve performance, etc., each change made to the software is monitored and stored. The remote computer systems are permitted access to the central computer system via communication links and the software in the remote computer systems and the corresponding software in the central computer system are compared.
All of the changes that have been made to the software at the central computer system which have not been made to the corresponding software at the remote computer system accessing the central computer are detected. The detected changes are then transmitted to the remote computer system and applied to the software therein in order to upgrade the software in the remote computer system. The upgraded software in the remote computer system is examined to ensure that the software has been changed correctly. The method allows the software at the remote computer systems to be upgraded even while the software at the remote site is being used. The system and method also allow the software used in the remote computer systems to be upgraded when the remote computer systems use different versions of the software and allow the software to be upgraded in a variety of hardware environments and operating systems.
Description
~310131 The present invention relates to software support and in particular to a method and systam for upgrading software used in remote computer systems from a central computer system.
Presently, a plurality of methods are used by software suppliers to upgrade the existing software that is used by their customers. These methods include floppy disk distribution, tape distribution and modem support. For example, Lotus D~evelopment Corporation typically uses floppy disk distribution to supply its users with Lotus 1-2-3 (trademark) software. This method requires Lotus Development Corp. to write the u~graded versions of their software on floppy disks and distribute the disks via an appropriate service to all o~ its customers.
However, a number of problems exist in this type of software support method in that an upgraded floppy disk version of the software is typically released once a year. Thus, a user must use the existing software even after faults have be~n recognized, until the new disk version of the software is received, since there is no immediate software support for individual users.
Furthermore, since the upgrading process often results in the addition of new program errors, the user must cope with the program faults o~ the nsw version until yet another version of the sof-tware is released.
Moreover, further time delays exist in obtaining upgraded versions of the software, since the floppy disks are typically distributed via the postal service.
A similar manner of software suppoxt has been àttempted using tape distribution to supply new versions of software to consumers. Although this method reduces the occurrence of damage to the physical medium - 1,-, . . .
containing the software, the process is still time consuming, since the tapes must be forwarded to each of the software users.
Modem support has also been attempted as a method of upgrading existing software. In this method, an operator at the software supplier links with the consumer's remote computer system and manually upgrades the software. However, this method of upgrading software is time consuming, expensive and prone to error, since the method invol~Jes manual processes.
Accordingly, there is a need for an improved method of upgrading software.
It is therefore an ob~ect of the present invention to obviate or mitigate the above disadvantages.
According to the present invention there is provlded a method of upgrading software used in remote computer systems from a central computer system comprising the steps of:
storing in said central computer system, software corresponding to the software used in each of said remote computer systems;
upgrading the corresponding software at said central computer system;
recording the changes made to said corresponding softwar~;
allowing access of said remote computer systems to said central computer system via communication lin~s;
identifying said remote computer systems accessing said central computer system and the software used therein;
comparing the software in said remote computer system with the corresponding software in said central computer system;
.. . . . .
l 3 1 identifying changes that have been made to the corresponding software that have not been made to the software in said remote computer systems;
transmitting the identified changes to said remote computer system and applying the changes to the software therein; and, verifying transmission of the changes and examining the upgraded software in said remote computer systems to ensure that the software has been properly upgraded.
In another aspect of the present invention there is provided a software SUppOl't system for upgrading so:ftware used in remote computer systems from a central computer system comprising:
a central computer system including data storage for storing so~tware corresponding to the software used in said remote computer systems;
input terminals at the central computer system through which the corresponding software may be upgraded, with the changes made for the 2o upgrade being recorded by the central computer system;
communication links allowing the remote computer systems to access the central computer system;
a comparator for comparing the softwale at a remote computer system with the corresponding software at the central computer system and identifying 2 5 the changes made to the corresponding software which have not been made to the software at the remote computer system, a data transmission device to transmit the identified changes to the remote computer system and to apply the changes to the software therein to upgrade the software, the central computer system and the remote computer 3 o system ~7erifying the correct transmission of the changes and proper upgrading oiF the software in ehe remote computer system.
.
.
.
~3~3~
Preferably~ at least one convent;onal computer terminal is provided for allowing a user to apply changes to the corresponding software stored in the central computer system. It is also preferred that the data transmission device implement "handshking" between the central computer system and each remote computer system accessing the central computer system.
Pre~erably, the central and remote computer systems implement checksums to verify the correct transmission of the software changes sent to the0 remote computer systems and to ensure that the software at the remote computer systems has been properly upgraded.--Preferably, the central computer system is capable of upgrading the software used in the remote computer systems at any time and has multi-tasking capabilities to allow a plurallty o~ remote comput~r systems to gain access to the central computer system at the same time.
Furthermore, it is preferred that the system provides software support for all remote computer systems when the remote computer systems are using different versions of the software.
The present system and method provlde the advantages of allowing the software used in the remote computer systems to be upgraded from a central sys~em at any time regardless of the magnitude of the upgrade.
Furthermore, the system can operate on various software and hardware environments thereby allowing substantially all types of software to be upgraded.
As used hçrein, executable code comprises data which represents the program of a computer system and the associated data fior such a program.
Presently, a plurality of methods are used by software suppliers to upgrade the existing software that is used by their customers. These methods include floppy disk distribution, tape distribution and modem support. For example, Lotus D~evelopment Corporation typically uses floppy disk distribution to supply its users with Lotus 1-2-3 (trademark) software. This method requires Lotus Development Corp. to write the u~graded versions of their software on floppy disks and distribute the disks via an appropriate service to all o~ its customers.
However, a number of problems exist in this type of software support method in that an upgraded floppy disk version of the software is typically released once a year. Thus, a user must use the existing software even after faults have be~n recognized, until the new disk version of the software is received, since there is no immediate software support for individual users.
Furthermore, since the upgrading process often results in the addition of new program errors, the user must cope with the program faults o~ the nsw version until yet another version of the sof-tware is released.
Moreover, further time delays exist in obtaining upgraded versions of the software, since the floppy disks are typically distributed via the postal service.
A similar manner of software suppoxt has been àttempted using tape distribution to supply new versions of software to consumers. Although this method reduces the occurrence of damage to the physical medium - 1,-, . . .
containing the software, the process is still time consuming, since the tapes must be forwarded to each of the software users.
Modem support has also been attempted as a method of upgrading existing software. In this method, an operator at the software supplier links with the consumer's remote computer system and manually upgrades the software. However, this method of upgrading software is time consuming, expensive and prone to error, since the method invol~Jes manual processes.
Accordingly, there is a need for an improved method of upgrading software.
It is therefore an ob~ect of the present invention to obviate or mitigate the above disadvantages.
According to the present invention there is provlded a method of upgrading software used in remote computer systems from a central computer system comprising the steps of:
storing in said central computer system, software corresponding to the software used in each of said remote computer systems;
upgrading the corresponding software at said central computer system;
recording the changes made to said corresponding softwar~;
allowing access of said remote computer systems to said central computer system via communication lin~s;
identifying said remote computer systems accessing said central computer system and the software used therein;
comparing the software in said remote computer system with the corresponding software in said central computer system;
.. . . . .
l 3 1 identifying changes that have been made to the corresponding software that have not been made to the software in said remote computer systems;
transmitting the identified changes to said remote computer system and applying the changes to the software therein; and, verifying transmission of the changes and examining the upgraded software in said remote computer systems to ensure that the software has been properly upgraded.
In another aspect of the present invention there is provided a software SUppOl't system for upgrading so:ftware used in remote computer systems from a central computer system comprising:
a central computer system including data storage for storing so~tware corresponding to the software used in said remote computer systems;
input terminals at the central computer system through which the corresponding software may be upgraded, with the changes made for the 2o upgrade being recorded by the central computer system;
communication links allowing the remote computer systems to access the central computer system;
a comparator for comparing the softwale at a remote computer system with the corresponding software at the central computer system and identifying 2 5 the changes made to the corresponding software which have not been made to the software at the remote computer system, a data transmission device to transmit the identified changes to the remote computer system and to apply the changes to the software therein to upgrade the software, the central computer system and the remote computer 3 o system ~7erifying the correct transmission of the changes and proper upgrading oiF the software in ehe remote computer system.
.
.
.
~3~3~
Preferably~ at least one convent;onal computer terminal is provided for allowing a user to apply changes to the corresponding software stored in the central computer system. It is also preferred that the data transmission device implement "handshking" between the central computer system and each remote computer system accessing the central computer system.
Pre~erably, the central and remote computer systems implement checksums to verify the correct transmission of the software changes sent to the0 remote computer systems and to ensure that the software at the remote computer systems has been properly upgraded.--Preferably, the central computer system is capable of upgrading the software used in the remote computer systems at any time and has multi-tasking capabilities to allow a plurallty o~ remote comput~r systems to gain access to the central computer system at the same time.
Furthermore, it is preferred that the system provides software support for all remote computer systems when the remote computer systems are using different versions of the software.
The present system and method provlde the advantages of allowing the software used in the remote computer systems to be upgraded from a central sys~em at any time regardless of the magnitude of the upgrade.
Furthermore, the system can operate on various software and hardware environments thereby allowing substantially all types of software to be upgraded.
As used hçrein, executable code comprises data which represents the program of a computer system and the associated data fior such a program.
~C
' ' 131~
An embodimen-t of the present invention will now be described, by way of example only, with reference to the accompanying drawings in which:
Figure 1 is a schematic diagram of a software support system;
Figure 2a is a schematic diagram of a port1on of the system illustrated in Figure l;
Figure 2b is a schematic diagram of another portion of the system illustrated in Figure 1:
Figures 3a and 3b are flow charts illustrating the operation of the portion shown in Figure 2a, and, Figures 4a and 4b are flow charts illustrating the operation of the portion shown in Figure 2b.
Referring to Figure 1, a software support system 10 is shown for upgrading so~tware used in remote computer systems 12 from a central computer system 14.
The central computer system 14 stores software corresponding to the software used in each of the remote systems 12 and permits the corresponding software to be upgraded. The central computer sys~em 14 is connected to the remote computer systems 12 via communication links 16, the links typically being a packet switching network to allow the changes that have been made to the corresponding software to be transmitted from the central computer system 14 to the remote computer systems 12.
The remote computer systems 12 are divided into groups as schematically represented by concentric circles 20. Each group of remote computer systems 12 is .
~3~31 assi~ned a group threshold which determines the relativs time that the remote systems of one group must wait to rèceive the changes that have been made to the software used at remote systems of a different group. For example, the remote computer systems 12 of one group, those positioned between the pair of concentric clrcles 20a and 20b are assigned a di~ferent group distribution number than the other group of remote computer systems positioned between concentric circles 20b and 20c and thus, may receive upgrades to the software used therein prior to the remote computer systems in the other group.
This feature permits staged release of the software upgrades and allows the operation of the upgraded software to be monitored on a select group of remote computer systems 12 prior to global release of the software upgrades to all of the remote computer systems 12.
Referring now to Figures 2a and 2b, the central computer system 14 which is typically located at the headquarters of the software suppliar is shown. The central computer system 14 includes a large data store 28 for storing copies of the software corresponding to the software used in each of the remote computer systems 12. The software supplier provides to the remote computer systems, mandatory programs MPX ~"x" denoting the version number of tho program) which ~re used in all of the remote computer systems. The supplier also makes available to the remote computer systems 12, optional programs Pxy ("x" denoting the version number of the program and '`y" denoting the number of the optional program since a variety of optional programs are availabls) which are used in some of the rsmote computer systems 12 to per~orm additional functions particular to the business of the user.
~31~13~
Initially, the software supplier distributes via tape distribution, the first version of the mandatory programs MP1 to all of its purchasers who use the software in their remote computer systems 12 for daily business operations. Some of the customers are also supplied with the first version of one or more optional programs P1y. Whenever a remote computer syst~am 12 is receiving the mandatory pro~rams MPX and optional programs Pxy~ the mandatory programs and the optional programs are distributed in a package and are the same version "x" of software.
After the remote computer systems 12 have been supplied with the first version of available software, the software supplier often desires to upgrade the software to add user facilities, to make eosmetic changes, to change usar interfaces, to correct errors, to improve performance, etc. Since a copy of the first version of the mandatory programs MPl and all of the available optional programs P1y are maintained in the data store 28, changes or patchas P can easily be made to the software via the central computer system 14. As patches P are made to either the mandatory programs MP
or to any of the optional programs P1y, the central computer system 14 monitors and records the changes made to the software and of course, changes the software in the rem~te computer systems 12, ~f the changes are applicable, the details of which will be described herein.
~owever, after a plurality o changes have been made to a version of the software stored in the data store 28, it is uneconomical to supply a new purchaser of the software with an unaltersd version of the mandatory programs MPX and optional programs Pxy and afterwards transmit -to the purchaser, all of the changes 13~131 that have been made to the programs. Accordingly, after a number of chan~es have been made to the original mandatory and optional programs, another version of the mandatory and optional programs is released to new ~urchasers of the softwara via tape distributlon, the second version of the programs including some or all of the changes and any additions that have been made to the first version of the programs, so that the new purchasers are initially ~uppLied with an up-to-date 1~ version of the available programs. When the second version of the so tware is re:leased, a copy of the mandatory programs MP2 and optional proyrams OP2y are stored ln the data store 28 so that upgrades can be made to the second verslon of software. This process is performed for each new version of the mandatory and optional programs that is released by the supplier for use by its customers. This allows the system 14 to upgrade the software used in all of the remote computer systems 12, even if the computer systems 12 operate using different v~rsions of the software.
;
The central computer system 14 includes at least one computer terminal 30 comprising a conventi~nal keyboard and video display terminal for allowing a user to access the various versions of the mandatory and optional programs MP~ and Pxy held in the data store 28. Each time a user accesses the data store 28 to upgrade o~e or more o~ the mandatory or optional - programs stored therein, all of the changes made to a program during that sesslon are categorized as a patch PN (V=i to z), wherein "N" is the number of the patch and "V" is equal to the numbers of the all ~f the versions of the same program to which that patch is applicable an~ to which it is to be applied. The patch number "N"
i~ determined by the value of a counter 29, the counter incrementing upon the creation of each patch made to any program. Thus, the first 13~3~
patch P made to any program regardless of its ~ersion will be assigned patch number 1 (N=1), the second patch made to any program will be assigned patch number 2 (N=2), etc.
The control software used in the central computer system 14 for allowing the programs in the data store 28 and in the remote computer systems to be upgraded is partitioned mainly into two major sections, namely a program history section 32 and a system patcher section 34.
The program history section 32 functions to monitor and record all of the upgrades or patches P that have been made to the various versions of any of the programs held in the data store 28. The system patcher section 34 functions to ensure that the appropriate changes made to the software in central computer system 14 are transmitted to the correct remote computer systems 12 and applied to tha corresponding softwar~
thexain. The system patcher section 34 also ensures that the software in the remote computer systems 12 is the same as the upgraded version stored in the central ; computer system 14, once the changes have been applied to the software.
The program history section 32 includes a copy function 38 which is associated with the data stora 28.
The function 38 copies the versio~ of the program stored in the data store 28 that the user of the terminal 30 wishes to upgrade. A processor function 40 receiv2s the copied program and allows the user to make the desired changss thereto. When the user has completed making all of the changes, an upgrade detect function 42 monitors 3~ and records all of the changes made to the program during that session by comparing the upgraded program _ g 1 3 ~ 3 1 with the program copied by the function 38. The changes detected by the function 42 are then grouped as a patch P. A patch and version assign function 44 communicates with the processor function 40, the upgrade detect function 42 and the counter 29 and assigns the patch P, its patch number "N" and the version numbers "V" of the same program to which the patch P applies.
For example, if a patch P is made to the ~irst version of one of the mandatory programs MP1 and thare are six dlfferent versions of the mandatory programs MP~
to MP6 that have been released by the vendor that are used in the remote computer systems 12, the value of the counter 29 is examined and its value is assigned to the patch P as its patch number N. As mentioned previouæly, the value of the counter 29 indicates the total number of patches that ha~s been made to the programs in the data store 2~. Thus, if a total of six patches have been previously made, the above-mentioned patch P made to the first verslon of the : 20 one mandatory program will be assigned patch number 7 (N=7).
Thereafter, the other versi~ns of the man~atory programs MP2 to MP6 are examined to detect if the patch P7 made to the program MP1 is applicable to those ~ersions of tho same program. The version numbers of all of the programs to which the patch is applicable are displayed on the terminal 30 and the user is requested to confirm whether the patch P7 should be applied to the other applicable programs as well. ~f the patch P7 iS to be appli d to the other detect~d versions of the same program, the patch number "N" is maintained and the patch is automatically applied and stored in the data store 28 under all of the versions of the man latory program to which iLt applies.
~L3~0~3~
A checksum assign function 46 also communicates with the processor function 40 and with the upgrade detect function 42 and assigns every patch made to a program a pair of checksums CkN and CkN ~1 . The checksums CkN and CkN~l represent an image of the program to which the patch is being applied before the patch is applied to the program and an image of the program after the patch has been applied to the program.
A related patch detect function 50 is also provided for detecting when the user making the changes to the software, codes a patch as being related to a previous patch made to the same program or codes the patch as being related to a patch made to another program in the same version of programs. When the related patch detect function 50 detects related patches, the related patches are coded. After the patch has been assigned a patch number, sxam~ned to determine the other versions of the sama program to which it applies, assigned the checksums, and has been axamined for any relationship with other patches, the patch, tha assigned patch number, the checksums and any assigned codes are stored in the data store 28 for the various versions of the program that were upgraded.
As should be realized, the same processes apply whether changes are made to a mandatory program or to an optional program. For example, if a patch PN is made to the optionaI program Pl1 and there are six released versions of the software, the patch PN will be assigned the next available patch number "N" as determined by the value of the counter 29. Similarly, the other versions OP2l to OP61 of the optional program Pll will be axamined to determina if tha patch PN is applicable tharato. The process of detecting related patches is also performed for patches made to the optional programs.
The program history section 32 also includes a patch threshold value memory 48 for storin~ a pre-determined patch threshold value which is equal to the highest patch number with no untested patches below it.
The patch threshold value determines the patches that can be transmitted to the remote computer systems 12 and is used to determine the value of the group thresholds.
The patch threshold value is datermined by,a quality .
assurance process used by the software vendor for monitoring the operation of each patch to attempt to ensure that the patches operate with the programs without error or without introducing errors. For example, if the threshold value is set at lO, only patches P1 to Plo can be transmitted to the remote computer systems 12, since those patches will have been tested by the quality assurance process and will have been determined to operate satisfactorily, Other patches that have been created yet have not passed through the guality assurance process which have a patch number greater than the threshold value may be transmitted to specific remote systems 12, if special provisions have been made for the systems, the detalls of which are desoribed but typically will be maintained in the data store 28 until the patch threshold value has been raise~.
Referring to Flgure 3, the operation of the program history section 32 will now be described.
Initially as mentioned previously, when the different versions of the mandatory programs MP1 to MPN and associated optional programs Ply to OPNy are supplied to the remote computers systems 12, coples of the programs are stored in the data store 28 of the central computer system 14. As this is done, the checksum assign function 46 assigns each program a checksum Cko C
. . .
~3~ ~3~
representing an image of the original program which is also stored in the data store 28.
If, for example, it is desired to upgrade one o~ the mandatory programs MP1, the user accesses the central computer system 14 via tha terminal 30. As should be realized, the user must meet certain access requirements such as typing in appropriate passwords to prevent the occurrence of unauthorized access to the programs. After accass has been accomplished, the user chooses the program that is to be changed in this case, one of the mandatory programs MP1. The eopy function 38 in turn creates a copy of the one program MP1 ha~ing all of the previous patches P that have been made to the program applied thereto as indicated at block 202. The checksum assign function 46 examines the copied program and recalculates a checksum CkN for the copied program - whieh represents an image of the program. The checksum CKN is compared with the seeond eheeksum assigned to the last pateh made to the same program to ensure that the copied program has in fact been copied correctly.
The correctly copied program is then conveyed ; to the processor function 40 and the user is able to edit the pro~ram in any manner that is desired in order to upgrads the software as indicated at block 204.
After the desired changes have been made to the program, the update detect function 42 compares the changed copy of the program with the copisd program MPl as indicated at block 206 to detect any differences. All of the differences detected between the programs are grouped as a patch P. The coda assign function 44 examines the counter 29 and in turn assigns the patch P, a patch number N, this number being one greater than the number of the counter 29 and the counter 29 is incremented as indicated at block 20~. When the pateh P has been - ~3 -~3~13~l assigned its patch number N, the checksum assign function 46 assigns the patch, a second checksum CkN ~1 as indicated at block 210, the second checksum representing an image of the program with the patch applied to it.
When the user wishes to make further changes to the same program or to another program, access can be gained to the central computer system 14 in the same manner described above. For example, after another patch PN~ 1 has been made to the same program in the above-me~tioned manner, the checksum assign function 46 will recalculate the first checksum CKN~1 for the next patch P~ t 1 and will assign the patch PN ~1, a second checksum Ck~ 2 . As should be noted, each successive patch P made to a program is asslgned a checksum that is also assigned to the previous patch. ~he above described process is performed regardless of which version of the mandatory programs or optional programs is being updated.
., After the checksums have been assigned to the patch, the patch P is stored in the data store 28 along with the assigned patch number and the assigned checksums ~s also indicated at block 210. The patch P
is also forwarded to the quality assurance process as shown by block 201 wherein it is given a number and is placed on a list including other patches made to any of the programs that have not been test~d by the quality assurance process~ The list of patches may be placed in the order of patch number or may be in any order depending on how ~uickly the patch needs to be processed and released to specific remote systems 12, the process of which will be described. When a patch reaches the top of the list, the quality assurance process tests the program with the patch applied to it to ensure that the 3 :~
patched program operates satisfactorily. After the patch has been tested by the quality assurance process and determined to operate satisfactorily, if the tested patch has a patch numbsr one greater than the patch threshold value, the threshold value is incremented by one so that the processed patch will be available to the remote computer systems.
If the processed patch has a patch number two or more greater than thc patch threshold value, then the threshold value is not lncremented and the tested patch is not released to the remot~e computer sy~tems 12 until all of the patches having patch numbers between the patch threshold value and the patch numbar of the tested patch have also been tested, unless speclal provisions are made, the details of which will be described herein.
Once a patch P has been made to a program and has been recorded in the data store 28, the patch is examined to determine if it is applicable to di~ferant versions of the same program as indicated at blocks 212 and 214. When the patch P is detected as being applicable to other versions of the same program, the user creating the patch P is prompted to ccnfirm whether the patch P should be applied to the applicable versions of the same program. I~ it is desired to apply the patch to the other versions of the program, the first checksum of the patch P is examined and compared with the second checksum of the last patch made to the applicable versions to determine if the checksums are identical as indicated at block 216. If the first checksum of the patch P is the same as the second checksum assigned to the last patch made to the applicable versions, the patch P is automatically applied to the applicable versions of the same program along with the patch number N and the appropriate .. :
., .
~ 3 ~ 3 1 However, if the first checksum assigned to the patch P applied to the first version and the second checksum of the last patch applied to an applicable version of the same pr~ram are not identical, the patch is applied to a copy of the applicable version of the program and the di~erences between the patched copy of the applicable version and the pa~ched version are determined. In addition, the differences between the unpatched first version and the unpatched applicable version are determined. The two sets of differences are compared and if equivalent, the patch is applied to th~ applicable version.
0 If the resulting di~erences are not equivalent, then manual lnterventlon must be used lf the patch P ls to be applle~ to the program as lndlcate~ at block 226. The patch may be entered to the applicable verslon under t;le same patch number or as a new patch havlng a new patch number.
Once the patch has been made to all of the applicable version of the same program, the user is prompted to indicate whether the patch PN is related to any of the previous patches PN- 1 made to the same program or if the patch PN is related to another program in the sama version of programs. If the patch PN is related to another patch PN- 1, the patches PN made to ~.
3 ~
each version of the program are coded if the version of the program includes the patch PN- 1 or the other program respectively as indicated at blocks 228 and 230.
Thus, in an overview, the data store 28 and program history section 32 in effect maintain a copy of each version of the mandatory and optional program released and used in the remote computer systems 12 along with a list of all of the changes made to any of the programs.
The system patcher section 34 controls the access of the remote systems 12 to the central system 14. The system patcher 34 includes an access request detect function 60 for detecting if any of the remote computer systems 12 are requesting access to the central computer system 1~. A connection and set-up function 62 communicates with the access detect function 60 and performs the necessary identification checks and initiates the proper "handshaking" requirements with the : remote computer system 12 when a valid remote computer system 12 has requested access to the central computer : system 14. The connection and set-up function 62 includes multi-tasking so~tware to allow a plurality of remote computer systems to access the central computer system 14 at the same time. A detection and examination function 64 detects the version number of the programs used by the remote computer system and all of the optional programs used by the requesting remote computer system 12 along with the patch number of the last patch that the remote computer system 12 has received.
; The detection and examination function 64 also communiaates with a remote computer system validation function 65 and the program history section 32 so that the proper patches are transmitted to the requesting , ~, .
~310~31 remote co~puter system 12. The validatlon function 65 includes a cllent data base holding information on each remote computer system registered in the central computer system 10. The function 64 stores the type of software (ie. optional programs) that each remote computer system 12 uses, the version number o~ the software used at each remote system 12, the patch number of the last patch successfu:lly transmitted and applied to the software in the remo-te computer systems 12, the group that the remote compu-ter systems 12 belong, any priority patches assigned to a specific remote computer system 12 or to a group of :remote computer systems, any access priority assigned to a remote computer system 12 and the date and time of the last communication llnk established between a remote computer system and the central computer system. The date and time are stored to allow delinquency reports to be generated ~f a remote computer system does not request update information for extended periods of time. Lastly, a verlfication function 66 is provided to ensure that all transmitted ; patches sent to the remote computer sy~tems 12 are properly received and to ensure that once the patches have b~en applied to the programs used in the remote computer systems 12, the resulting programs are equivalent to the corresponding upgraded version o~ the ; program stored in the data store 28.
Typ~cally, when lt is desired to apply changes to a remote system 12, the number of patches applled to the remote system is determined by the patch threshold value. However, as mentioned previously, special provisions exist which enable a remote system to receive patches which exceed the threshold value assigned to the group that the remote system belongs.
.
To facilitate this, a group of remote systems or a specific remote system in a group may be assigned priority patches. The priority patches allow a remote system or a group of remote systems to receive a patch, any related patches that are related to the priority patch and any patch made to the same program having a patch number below the threshold value that the remote system 12 has not yet received.
Referring to Figure 4, the operation of the system patcher 34 will now be described. When a rsmote computer system 12 attempts to access the central computer system 14, the remote computer system must first establish a communication path over the packet switching network 16. When access has been requested and detected by detection function 60 as indicated at block 302, the requesting remote system 12 is usually permitted access to the central system. ~ince the central computer system 14 includes multi-tasking software, the system 14 is capable o~ establishing a communication link with more than one remote system at a time via a number of inputs, in thi~ case 16 although the number of inputs can be increased or decreased depending on the number of re~ote s~stems 12 in the system 10. Typically, thirteen of the sixteen input lines are used to establish communication links with remote systems 12 and the other three input lines are reserved to establish communication links between the central system 14 and remote systems 12 assigned access priority when the thirteen input lines are all occupied.
It should be realized that the total number of input lines and the number of reserved input lines be increased or decreased depending on the needs of the ; 35 system 10.
~ 19 -.
131~:L31 Since the remote systems are able to gain access to the central system at any tlme, the available input lines are not usually all occupied when a remote computer system 12 is attempting to gain access to the central system. If a remote system 12 attempts to gain access to the central system and the input llnes to the system are all occupied, the remote system will receive a message ind$cating that the central system 14 cannot establish a communication link at that t~me and that tha remote system should attempt to gain access to the central system at a later time if it has not been assigned access priority. However, if the remote system 12 has been assigned access priority, the function 50 will detect this and allow the remote system 12 to establish a communication link via one of the three input lines.
The set-up section 62 request~ the remote computer system to supply the appropriate identification codes. When the proper identification codss have been received, the remote computer system 12 is permitted to access the central computer system 14 as indicated at block 304. Following this, the detection function 64 requests the remote system 12 to supply the type o software including all optional programs and the version number of the programs that it uses, along with the patch number of the last patch that was successfully received for comparison with the patch number stored i~
the client data base associated with the remote computer system gaining access to the central system 14.
When this information has been received by the detection and examination function 64, it is compared with the information stored in the client data base of the validation function 65 to ensure that the transmitted lnformation is the same as the information -- ~0 --~31~
stored in the client data base. If the patch number and other information transmitted by the remote computer system 12 does not confer with the data stored in the validation function 65, the remote computer system 12 is informed that its software has been corrupted and the session is terminated. When this occurs the central computer system 14 is notified so that the remote computer system 12 can be forwarded uncorrupted software via tape distribution.
If the transmitted information corresponds with that stored in the client data base, tha transmitted data is conveyed to the processor functlon 40 in the program history section 32. The processor function 40 in turn examines the version number, the programs used by the remote computer system 12 and the patch number received from the remote computer system 12 to ~etect whether any further patches have been made to the corresponding programs stored in the data store 28 that are used by the remote computer system 12 as indicated at block 306.
If ~he patch number transmitted by tha remote computer system 12 is equal to or greater than the patch threshold value assigned to the corresponding group, the central systam examines the client data base to determine firstly whether the remote system 12 has been assigned any priority patche~ and secondly whether the group that the remote system 12 is located has been assigned any priortty patchss as indicated at block 307.
If the remote system 12 and the group to which $t belongs have not been assiyned any priority patches, the remotQ computer sy~tem 12 is informed that it has the most up-to date changes made to all of the programs stored therein. After this, the session is terminated and the communication link is disconnected as indicated at block 308.
~ ~ -L 3 ~
However, if the remote system 12 has been assigned a priority patch having a patch number greater than the threshold value, the priority patch is transmitted to the remote system along with any related patches and any other patches made to the same program having patch numbers less than -the priority patch that the remote system has not yet received in a manner to be described. It should be reali2ed that all nested related patches will be individually transmitted to the remote system regardless of the patch number of the related patches.
Once this has been performad or if the remote system has not been assigned any priorit~ patches, the client data base is examined to detect whether the group to which the remote system belongs has been assigned any priority patches. If the group has not been assigned any priority patches or if the number of the priority patch assigned to the group is less than the number of the priority patch assigned to the remote system, the session is terminated since the remote system has the most up-to-date changes that it can receive as indicated at block 308.
If, however, the remote system 12 has not been assigned any priority patches but the group to which the remota system belongs has been assigned a priority patch or if the group has been assigned a priority patch : having a patch number greater than the patch number of the priority patch assigned to the remota system 12, a : similar process as previously described with respect topriority patches assigned to a specific remote system 12 is performed.
If the patch number received from the remote computer system 12 is less than the threshold v~lue assigned to the group to which the remote system 12 belongs, the patch numbers in the data store 28 are examined to detect the patches that have been made to the same corresponding programs used by the remote computer systems 12 that the remote computer system has not yet received.
Before individual transmission of each of the detected patches occurs, the patches are examined individually to detect whether each patch is related to another patch or if a patch is related to an optional program that is not used by the remote computer system 12 as indicated at block 314. If any patch is detected as being related to another patch as indicated at block 316, the patch number or numbers of the related patch or patches to be transmitted are compared with the group threshold value stored in the client data base to detect whether the patch number or numbers of the related patches are above the patch threshold value as indicated at block 318.
If the patch numbers of the related patches exceed the patch threshold value, then the patch is not sent to the remote sy~tem 12. The clisnt data base is then examined to detect whether the remote system 12 has been assigned any priority patches in the same manner as previously described. If the remote system has not been assigned any priority patches or if the priority patch number is less than the patch threshold value, the session between the remote computer system 12 and the ; central computer system 14 is terminated as indicated at block 308, since the remote computer system 12 has the most up-to-date changes of the programs that it is capable of receiving at that time.
.
, -' ' '.
-~31~i~3~
If the remote system 12 or the group to which the remote system 12 b~longs have been assigned priority patches then, the appropriate patches are transmitted individually to the remote system 12 as will be described.
If the patch to be transmitted has a related patch or patches wlth patch numbers which do not exceed the patch threshold value, then the patch number of the patch is examined to determine whether it is balow the threshold value as indicated at block 320. If the patch number of the patch is less than or equal to the threshold valua, then the patches and the related patches are individually tra~smitted to the remote system as will be described.
If, however, the patch number of a patch is greater then the threshold value, the patch is not transmitted. The client data base is then examin0d to detect whether any priorlty patches have been assigned to the remote system and the appropriate processes are performe~ as previously describe~.
The processes indicated by biocks 310 to 320 are repeated until the patch to be transmitted has a patch number greater than the threshold value or until a related patch is detected having a patch number greater than the threshold value.
In elther of the above mentioned cases concerning related patches, if a patch to be transmitted is related to anothPr proyram that the remote system 12 does not use, the relationship is ignored and the process continues. This ensures that all upgrades made to a program used by the remote system are raceived.
Furthermore, this allows remote systems receiving the . .
':
~ 31~J~
related optional programs at a later time to operate using their current programs without requiring upgrading of the current programs.
Similarly, if no related patches are detected, the patches having patch numbers less than the threshold value and any priority patches assigned to the remote system or its group are also transmitted to the remote system.
Once a patch to be transmitted to the remote system is determined, the central computer system examines the checksums of the last patch received by the remote system stored in the client data base and compares these checksums with the checksums in the data store 28 to ensure that the values are consistent as indicated at block 322. If the checksums are not consistent, the session between the remote computer system and the central computer system 14 is terminated as indicated at block 308.
However, if the checksums are consistent, the patches are transmitted to the remote computer system 12 one at a time as indicated at block 324. When a patch is received by the remote computer system 12, a copy of the program is made in the remote computer system and the patch is applisd to the copied program. Checksums are calculated for the copied pro~ram and compared with the checksums assigned to the patch ln the central system via the verification function to detect whether they are the same thereby verifying correct transmission of the patch as indicated at block 326. If the checksums do not match, the patch is retransm~tted until it is properly received or until a predetermined number of tries have been exceeded in which case the session is terminatad as indicated at blocks 328 and 330. If the .
, - . :- ., ,, :
,. ` ' I
~ 3~3~
checksums match, the copied program wi-th the patch applied thereto is used to replace the original program in the remote computer system 12 as indicated at block 332. This process is performed for each patch stored in the data store 28 that is to be transmitted until the remote computer system has received the most up to-date changes of that so~tware that is available.
The group distribution numbers assigned to the groups is used as mentioned previously to permit staged release of the software upgrades. The distribution number simply puts a time delay on the increment of the patch threshold value for the various group of remote systems thereby adding flexibility by making the upgrades available to the various groups of systems 12 at different times.
Althou~h the present system has been described as using packet switching networks as communication links, it should be realized that various other types of communication links can be used.
The present system provides ~ number e~
advantages in that each incremental change made to a version of a program is available to the remote users.
In this manner, a client who purchases one version of the software can get support and upgrades for that version without having to purchase the next version which would otherwise include some or all of the upgrades. The system allows all users of the software to receive upgrades with a minimum of delay since all that is required is a simple telephone call to link the remote computers to the central computer. Furthermore, since the mult~-tasking capabilities are used, access is facilitated since the central computer can accommodate a large number of remote computers which attempt to access . , -~3~ 3~
the central computer at relatively the same time.
- . . . . . . :
;
: .
.
.:
.
.- ' , ~ .
' ' 131~
An embodimen-t of the present invention will now be described, by way of example only, with reference to the accompanying drawings in which:
Figure 1 is a schematic diagram of a software support system;
Figure 2a is a schematic diagram of a port1on of the system illustrated in Figure l;
Figure 2b is a schematic diagram of another portion of the system illustrated in Figure 1:
Figures 3a and 3b are flow charts illustrating the operation of the portion shown in Figure 2a, and, Figures 4a and 4b are flow charts illustrating the operation of the portion shown in Figure 2b.
Referring to Figure 1, a software support system 10 is shown for upgrading so~tware used in remote computer systems 12 from a central computer system 14.
The central computer system 14 stores software corresponding to the software used in each of the remote systems 12 and permits the corresponding software to be upgraded. The central computer sys~em 14 is connected to the remote computer systems 12 via communication links 16, the links typically being a packet switching network to allow the changes that have been made to the corresponding software to be transmitted from the central computer system 14 to the remote computer systems 12.
The remote computer systems 12 are divided into groups as schematically represented by concentric circles 20. Each group of remote computer systems 12 is .
~3~31 assi~ned a group threshold which determines the relativs time that the remote systems of one group must wait to rèceive the changes that have been made to the software used at remote systems of a different group. For example, the remote computer systems 12 of one group, those positioned between the pair of concentric clrcles 20a and 20b are assigned a di~ferent group distribution number than the other group of remote computer systems positioned between concentric circles 20b and 20c and thus, may receive upgrades to the software used therein prior to the remote computer systems in the other group.
This feature permits staged release of the software upgrades and allows the operation of the upgraded software to be monitored on a select group of remote computer systems 12 prior to global release of the software upgrades to all of the remote computer systems 12.
Referring now to Figures 2a and 2b, the central computer system 14 which is typically located at the headquarters of the software suppliar is shown. The central computer system 14 includes a large data store 28 for storing copies of the software corresponding to the software used in each of the remote computer systems 12. The software supplier provides to the remote computer systems, mandatory programs MPX ~"x" denoting the version number of tho program) which ~re used in all of the remote computer systems. The supplier also makes available to the remote computer systems 12, optional programs Pxy ("x" denoting the version number of the program and '`y" denoting the number of the optional program since a variety of optional programs are availabls) which are used in some of the rsmote computer systems 12 to per~orm additional functions particular to the business of the user.
~31~13~
Initially, the software supplier distributes via tape distribution, the first version of the mandatory programs MP1 to all of its purchasers who use the software in their remote computer systems 12 for daily business operations. Some of the customers are also supplied with the first version of one or more optional programs P1y. Whenever a remote computer syst~am 12 is receiving the mandatory pro~rams MPX and optional programs Pxy~ the mandatory programs and the optional programs are distributed in a package and are the same version "x" of software.
After the remote computer systems 12 have been supplied with the first version of available software, the software supplier often desires to upgrade the software to add user facilities, to make eosmetic changes, to change usar interfaces, to correct errors, to improve performance, etc. Since a copy of the first version of the mandatory programs MPl and all of the available optional programs P1y are maintained in the data store 28, changes or patchas P can easily be made to the software via the central computer system 14. As patches P are made to either the mandatory programs MP
or to any of the optional programs P1y, the central computer system 14 monitors and records the changes made to the software and of course, changes the software in the rem~te computer systems 12, ~f the changes are applicable, the details of which will be described herein.
~owever, after a plurality o changes have been made to a version of the software stored in the data store 28, it is uneconomical to supply a new purchaser of the software with an unaltersd version of the mandatory programs MPX and optional programs Pxy and afterwards transmit -to the purchaser, all of the changes 13~131 that have been made to the programs. Accordingly, after a number of chan~es have been made to the original mandatory and optional programs, another version of the mandatory and optional programs is released to new ~urchasers of the softwara via tape distributlon, the second version of the programs including some or all of the changes and any additions that have been made to the first version of the programs, so that the new purchasers are initially ~uppLied with an up-to-date 1~ version of the available programs. When the second version of the so tware is re:leased, a copy of the mandatory programs MP2 and optional proyrams OP2y are stored ln the data store 28 so that upgrades can be made to the second verslon of software. This process is performed for each new version of the mandatory and optional programs that is released by the supplier for use by its customers. This allows the system 14 to upgrade the software used in all of the remote computer systems 12, even if the computer systems 12 operate using different v~rsions of the software.
;
The central computer system 14 includes at least one computer terminal 30 comprising a conventi~nal keyboard and video display terminal for allowing a user to access the various versions of the mandatory and optional programs MP~ and Pxy held in the data store 28. Each time a user accesses the data store 28 to upgrade o~e or more o~ the mandatory or optional - programs stored therein, all of the changes made to a program during that sesslon are categorized as a patch PN (V=i to z), wherein "N" is the number of the patch and "V" is equal to the numbers of the all ~f the versions of the same program to which that patch is applicable an~ to which it is to be applied. The patch number "N"
i~ determined by the value of a counter 29, the counter incrementing upon the creation of each patch made to any program. Thus, the first 13~3~
patch P made to any program regardless of its ~ersion will be assigned patch number 1 (N=1), the second patch made to any program will be assigned patch number 2 (N=2), etc.
The control software used in the central computer system 14 for allowing the programs in the data store 28 and in the remote computer systems to be upgraded is partitioned mainly into two major sections, namely a program history section 32 and a system patcher section 34.
The program history section 32 functions to monitor and record all of the upgrades or patches P that have been made to the various versions of any of the programs held in the data store 28. The system patcher section 34 functions to ensure that the appropriate changes made to the software in central computer system 14 are transmitted to the correct remote computer systems 12 and applied to tha corresponding softwar~
thexain. The system patcher section 34 also ensures that the software in the remote computer systems 12 is the same as the upgraded version stored in the central ; computer system 14, once the changes have been applied to the software.
The program history section 32 includes a copy function 38 which is associated with the data stora 28.
The function 38 copies the versio~ of the program stored in the data store 28 that the user of the terminal 30 wishes to upgrade. A processor function 40 receiv2s the copied program and allows the user to make the desired changss thereto. When the user has completed making all of the changes, an upgrade detect function 42 monitors 3~ and records all of the changes made to the program during that session by comparing the upgraded program _ g 1 3 ~ 3 1 with the program copied by the function 38. The changes detected by the function 42 are then grouped as a patch P. A patch and version assign function 44 communicates with the processor function 40, the upgrade detect function 42 and the counter 29 and assigns the patch P, its patch number "N" and the version numbers "V" of the same program to which the patch P applies.
For example, if a patch P is made to the ~irst version of one of the mandatory programs MP1 and thare are six dlfferent versions of the mandatory programs MP~
to MP6 that have been released by the vendor that are used in the remote computer systems 12, the value of the counter 29 is examined and its value is assigned to the patch P as its patch number N. As mentioned previouæly, the value of the counter 29 indicates the total number of patches that ha~s been made to the programs in the data store 2~. Thus, if a total of six patches have been previously made, the above-mentioned patch P made to the first verslon of the : 20 one mandatory program will be assigned patch number 7 (N=7).
Thereafter, the other versi~ns of the man~atory programs MP2 to MP6 are examined to detect if the patch P7 made to the program MP1 is applicable to those ~ersions of tho same program. The version numbers of all of the programs to which the patch is applicable are displayed on the terminal 30 and the user is requested to confirm whether the patch P7 should be applied to the other applicable programs as well. ~f the patch P7 iS to be appli d to the other detect~d versions of the same program, the patch number "N" is maintained and the patch is automatically applied and stored in the data store 28 under all of the versions of the man latory program to which iLt applies.
~L3~0~3~
A checksum assign function 46 also communicates with the processor function 40 and with the upgrade detect function 42 and assigns every patch made to a program a pair of checksums CkN and CkN ~1 . The checksums CkN and CkN~l represent an image of the program to which the patch is being applied before the patch is applied to the program and an image of the program after the patch has been applied to the program.
A related patch detect function 50 is also provided for detecting when the user making the changes to the software, codes a patch as being related to a previous patch made to the same program or codes the patch as being related to a patch made to another program in the same version of programs. When the related patch detect function 50 detects related patches, the related patches are coded. After the patch has been assigned a patch number, sxam~ned to determine the other versions of the sama program to which it applies, assigned the checksums, and has been axamined for any relationship with other patches, the patch, tha assigned patch number, the checksums and any assigned codes are stored in the data store 28 for the various versions of the program that were upgraded.
As should be realized, the same processes apply whether changes are made to a mandatory program or to an optional program. For example, if a patch PN is made to the optionaI program Pl1 and there are six released versions of the software, the patch PN will be assigned the next available patch number "N" as determined by the value of the counter 29. Similarly, the other versions OP2l to OP61 of the optional program Pll will be axamined to determina if tha patch PN is applicable tharato. The process of detecting related patches is also performed for patches made to the optional programs.
The program history section 32 also includes a patch threshold value memory 48 for storin~ a pre-determined patch threshold value which is equal to the highest patch number with no untested patches below it.
The patch threshold value determines the patches that can be transmitted to the remote computer systems 12 and is used to determine the value of the group thresholds.
The patch threshold value is datermined by,a quality .
assurance process used by the software vendor for monitoring the operation of each patch to attempt to ensure that the patches operate with the programs without error or without introducing errors. For example, if the threshold value is set at lO, only patches P1 to Plo can be transmitted to the remote computer systems 12, since those patches will have been tested by the quality assurance process and will have been determined to operate satisfactorily, Other patches that have been created yet have not passed through the guality assurance process which have a patch number greater than the threshold value may be transmitted to specific remote systems 12, if special provisions have been made for the systems, the detalls of which are desoribed but typically will be maintained in the data store 28 until the patch threshold value has been raise~.
Referring to Flgure 3, the operation of the program history section 32 will now be described.
Initially as mentioned previously, when the different versions of the mandatory programs MP1 to MPN and associated optional programs Ply to OPNy are supplied to the remote computers systems 12, coples of the programs are stored in the data store 28 of the central computer system 14. As this is done, the checksum assign function 46 assigns each program a checksum Cko C
. . .
~3~ ~3~
representing an image of the original program which is also stored in the data store 28.
If, for example, it is desired to upgrade one o~ the mandatory programs MP1, the user accesses the central computer system 14 via tha terminal 30. As should be realized, the user must meet certain access requirements such as typing in appropriate passwords to prevent the occurrence of unauthorized access to the programs. After accass has been accomplished, the user chooses the program that is to be changed in this case, one of the mandatory programs MP1. The eopy function 38 in turn creates a copy of the one program MP1 ha~ing all of the previous patches P that have been made to the program applied thereto as indicated at block 202. The checksum assign function 46 examines the copied program and recalculates a checksum CkN for the copied program - whieh represents an image of the program. The checksum CKN is compared with the seeond eheeksum assigned to the last pateh made to the same program to ensure that the copied program has in fact been copied correctly.
The correctly copied program is then conveyed ; to the processor function 40 and the user is able to edit the pro~ram in any manner that is desired in order to upgrads the software as indicated at block 204.
After the desired changes have been made to the program, the update detect function 42 compares the changed copy of the program with the copisd program MPl as indicated at block 206 to detect any differences. All of the differences detected between the programs are grouped as a patch P. The coda assign function 44 examines the counter 29 and in turn assigns the patch P, a patch number N, this number being one greater than the number of the counter 29 and the counter 29 is incremented as indicated at block 20~. When the pateh P has been - ~3 -~3~13~l assigned its patch number N, the checksum assign function 46 assigns the patch, a second checksum CkN ~1 as indicated at block 210, the second checksum representing an image of the program with the patch applied to it.
When the user wishes to make further changes to the same program or to another program, access can be gained to the central computer system 14 in the same manner described above. For example, after another patch PN~ 1 has been made to the same program in the above-me~tioned manner, the checksum assign function 46 will recalculate the first checksum CKN~1 for the next patch P~ t 1 and will assign the patch PN ~1, a second checksum Ck~ 2 . As should be noted, each successive patch P made to a program is asslgned a checksum that is also assigned to the previous patch. ~he above described process is performed regardless of which version of the mandatory programs or optional programs is being updated.
., After the checksums have been assigned to the patch, the patch P is stored in the data store 28 along with the assigned patch number and the assigned checksums ~s also indicated at block 210. The patch P
is also forwarded to the quality assurance process as shown by block 201 wherein it is given a number and is placed on a list including other patches made to any of the programs that have not been test~d by the quality assurance process~ The list of patches may be placed in the order of patch number or may be in any order depending on how ~uickly the patch needs to be processed and released to specific remote systems 12, the process of which will be described. When a patch reaches the top of the list, the quality assurance process tests the program with the patch applied to it to ensure that the 3 :~
patched program operates satisfactorily. After the patch has been tested by the quality assurance process and determined to operate satisfactorily, if the tested patch has a patch numbsr one greater than the patch threshold value, the threshold value is incremented by one so that the processed patch will be available to the remote computer systems.
If the processed patch has a patch number two or more greater than thc patch threshold value, then the threshold value is not lncremented and the tested patch is not released to the remot~e computer sy~tems 12 until all of the patches having patch numbers between the patch threshold value and the patch numbar of the tested patch have also been tested, unless speclal provisions are made, the details of which will be described herein.
Once a patch P has been made to a program and has been recorded in the data store 28, the patch is examined to determine if it is applicable to di~ferant versions of the same program as indicated at blocks 212 and 214. When the patch P is detected as being applicable to other versions of the same program, the user creating the patch P is prompted to ccnfirm whether the patch P should be applied to the applicable versions of the same program. I~ it is desired to apply the patch to the other versions of the program, the first checksum of the patch P is examined and compared with the second checksum of the last patch made to the applicable versions to determine if the checksums are identical as indicated at block 216. If the first checksum of the patch P is the same as the second checksum assigned to the last patch made to the applicable versions, the patch P is automatically applied to the applicable versions of the same program along with the patch number N and the appropriate .. :
., .
~ 3 ~ 3 1 However, if the first checksum assigned to the patch P applied to the first version and the second checksum of the last patch applied to an applicable version of the same pr~ram are not identical, the patch is applied to a copy of the applicable version of the program and the di~erences between the patched copy of the applicable version and the pa~ched version are determined. In addition, the differences between the unpatched first version and the unpatched applicable version are determined. The two sets of differences are compared and if equivalent, the patch is applied to th~ applicable version.
0 If the resulting di~erences are not equivalent, then manual lnterventlon must be used lf the patch P ls to be applle~ to the program as lndlcate~ at block 226. The patch may be entered to the applicable verslon under t;le same patch number or as a new patch havlng a new patch number.
Once the patch has been made to all of the applicable version of the same program, the user is prompted to indicate whether the patch PN is related to any of the previous patches PN- 1 made to the same program or if the patch PN is related to another program in the sama version of programs. If the patch PN is related to another patch PN- 1, the patches PN made to ~.
3 ~
each version of the program are coded if the version of the program includes the patch PN- 1 or the other program respectively as indicated at blocks 228 and 230.
Thus, in an overview, the data store 28 and program history section 32 in effect maintain a copy of each version of the mandatory and optional program released and used in the remote computer systems 12 along with a list of all of the changes made to any of the programs.
The system patcher section 34 controls the access of the remote systems 12 to the central system 14. The system patcher 34 includes an access request detect function 60 for detecting if any of the remote computer systems 12 are requesting access to the central computer system 1~. A connection and set-up function 62 communicates with the access detect function 60 and performs the necessary identification checks and initiates the proper "handshaking" requirements with the : remote computer system 12 when a valid remote computer system 12 has requested access to the central computer : system 14. The connection and set-up function 62 includes multi-tasking so~tware to allow a plurality of remote computer systems to access the central computer system 14 at the same time. A detection and examination function 64 detects the version number of the programs used by the remote computer system and all of the optional programs used by the requesting remote computer system 12 along with the patch number of the last patch that the remote computer system 12 has received.
; The detection and examination function 64 also communiaates with a remote computer system validation function 65 and the program history section 32 so that the proper patches are transmitted to the requesting , ~, .
~310~31 remote co~puter system 12. The validatlon function 65 includes a cllent data base holding information on each remote computer system registered in the central computer system 10. The function 64 stores the type of software (ie. optional programs) that each remote computer system 12 uses, the version number o~ the software used at each remote system 12, the patch number of the last patch successfu:lly transmitted and applied to the software in the remo-te computer systems 12, the group that the remote compu-ter systems 12 belong, any priority patches assigned to a specific remote computer system 12 or to a group of :remote computer systems, any access priority assigned to a remote computer system 12 and the date and time of the last communication llnk established between a remote computer system and the central computer system. The date and time are stored to allow delinquency reports to be generated ~f a remote computer system does not request update information for extended periods of time. Lastly, a verlfication function 66 is provided to ensure that all transmitted ; patches sent to the remote computer sy~tems 12 are properly received and to ensure that once the patches have b~en applied to the programs used in the remote computer systems 12, the resulting programs are equivalent to the corresponding upgraded version o~ the ; program stored in the data store 28.
Typ~cally, when lt is desired to apply changes to a remote system 12, the number of patches applled to the remote system is determined by the patch threshold value. However, as mentioned previously, special provisions exist which enable a remote system to receive patches which exceed the threshold value assigned to the group that the remote system belongs.
.
To facilitate this, a group of remote systems or a specific remote system in a group may be assigned priority patches. The priority patches allow a remote system or a group of remote systems to receive a patch, any related patches that are related to the priority patch and any patch made to the same program having a patch number below the threshold value that the remote system 12 has not yet received.
Referring to Figure 4, the operation of the system patcher 34 will now be described. When a rsmote computer system 12 attempts to access the central computer system 14, the remote computer system must first establish a communication path over the packet switching network 16. When access has been requested and detected by detection function 60 as indicated at block 302, the requesting remote system 12 is usually permitted access to the central system. ~ince the central computer system 14 includes multi-tasking software, the system 14 is capable o~ establishing a communication link with more than one remote system at a time via a number of inputs, in thi~ case 16 although the number of inputs can be increased or decreased depending on the number of re~ote s~stems 12 in the system 10. Typically, thirteen of the sixteen input lines are used to establish communication links with remote systems 12 and the other three input lines are reserved to establish communication links between the central system 14 and remote systems 12 assigned access priority when the thirteen input lines are all occupied.
It should be realized that the total number of input lines and the number of reserved input lines be increased or decreased depending on the needs of the ; 35 system 10.
~ 19 -.
131~:L31 Since the remote systems are able to gain access to the central system at any tlme, the available input lines are not usually all occupied when a remote computer system 12 is attempting to gain access to the central system. If a remote system 12 attempts to gain access to the central system and the input llnes to the system are all occupied, the remote system will receive a message ind$cating that the central system 14 cannot establish a communication link at that t~me and that tha remote system should attempt to gain access to the central system at a later time if it has not been assigned access priority. However, if the remote system 12 has been assigned access priority, the function 50 will detect this and allow the remote system 12 to establish a communication link via one of the three input lines.
The set-up section 62 request~ the remote computer system to supply the appropriate identification codes. When the proper identification codss have been received, the remote computer system 12 is permitted to access the central computer system 14 as indicated at block 304. Following this, the detection function 64 requests the remote system 12 to supply the type o software including all optional programs and the version number of the programs that it uses, along with the patch number of the last patch that was successfully received for comparison with the patch number stored i~
the client data base associated with the remote computer system gaining access to the central system 14.
When this information has been received by the detection and examination function 64, it is compared with the information stored in the client data base of the validation function 65 to ensure that the transmitted lnformation is the same as the information -- ~0 --~31~
stored in the client data base. If the patch number and other information transmitted by the remote computer system 12 does not confer with the data stored in the validation function 65, the remote computer system 12 is informed that its software has been corrupted and the session is terminated. When this occurs the central computer system 14 is notified so that the remote computer system 12 can be forwarded uncorrupted software via tape distribution.
If the transmitted information corresponds with that stored in the client data base, tha transmitted data is conveyed to the processor functlon 40 in the program history section 32. The processor function 40 in turn examines the version number, the programs used by the remote computer system 12 and the patch number received from the remote computer system 12 to ~etect whether any further patches have been made to the corresponding programs stored in the data store 28 that are used by the remote computer system 12 as indicated at block 306.
If ~he patch number transmitted by tha remote computer system 12 is equal to or greater than the patch threshold value assigned to the corresponding group, the central systam examines the client data base to determine firstly whether the remote system 12 has been assigned any priority patche~ and secondly whether the group that the remote system 12 is located has been assigned any priortty patchss as indicated at block 307.
If the remote system 12 and the group to which $t belongs have not been assiyned any priority patches, the remotQ computer sy~tem 12 is informed that it has the most up-to date changes made to all of the programs stored therein. After this, the session is terminated and the communication link is disconnected as indicated at block 308.
~ ~ -L 3 ~
However, if the remote system 12 has been assigned a priority patch having a patch number greater than the threshold value, the priority patch is transmitted to the remote system along with any related patches and any other patches made to the same program having patch numbers less than -the priority patch that the remote system has not yet received in a manner to be described. It should be reali2ed that all nested related patches will be individually transmitted to the remote system regardless of the patch number of the related patches.
Once this has been performad or if the remote system has not been assigned any priorit~ patches, the client data base is examined to detect whether the group to which the remote system belongs has been assigned any priority patches. If the group has not been assigned any priority patches or if the number of the priority patch assigned to the group is less than the number of the priority patch assigned to the remote system, the session is terminated since the remote system has the most up-to-date changes that it can receive as indicated at block 308.
If, however, the remote system 12 has not been assigned any priority patches but the group to which the remota system belongs has been assigned a priority patch or if the group has been assigned a priority patch : having a patch number greater than the patch number of the priority patch assigned to the remota system 12, a : similar process as previously described with respect topriority patches assigned to a specific remote system 12 is performed.
If the patch number received from the remote computer system 12 is less than the threshold v~lue assigned to the group to which the remote system 12 belongs, the patch numbers in the data store 28 are examined to detect the patches that have been made to the same corresponding programs used by the remote computer systems 12 that the remote computer system has not yet received.
Before individual transmission of each of the detected patches occurs, the patches are examined individually to detect whether each patch is related to another patch or if a patch is related to an optional program that is not used by the remote computer system 12 as indicated at block 314. If any patch is detected as being related to another patch as indicated at block 316, the patch number or numbers of the related patch or patches to be transmitted are compared with the group threshold value stored in the client data base to detect whether the patch number or numbers of the related patches are above the patch threshold value as indicated at block 318.
If the patch numbers of the related patches exceed the patch threshold value, then the patch is not sent to the remote sy~tem 12. The clisnt data base is then examined to detect whether the remote system 12 has been assigned any priority patches in the same manner as previously described. If the remote system has not been assigned any priority patches or if the priority patch number is less than the patch threshold value, the session between the remote computer system 12 and the ; central computer system 14 is terminated as indicated at block 308, since the remote computer system 12 has the most up-to-date changes of the programs that it is capable of receiving at that time.
.
, -' ' '.
-~31~i~3~
If the remote system 12 or the group to which the remote system 12 b~longs have been assigned priority patches then, the appropriate patches are transmitted individually to the remote system 12 as will be described.
If the patch to be transmitted has a related patch or patches wlth patch numbers which do not exceed the patch threshold value, then the patch number of the patch is examined to determine whether it is balow the threshold value as indicated at block 320. If the patch number of the patch is less than or equal to the threshold valua, then the patches and the related patches are individually tra~smitted to the remote system as will be described.
If, however, the patch number of a patch is greater then the threshold value, the patch is not transmitted. The client data base is then examin0d to detect whether any priorlty patches have been assigned to the remote system and the appropriate processes are performe~ as previously describe~.
The processes indicated by biocks 310 to 320 are repeated until the patch to be transmitted has a patch number greater than the threshold value or until a related patch is detected having a patch number greater than the threshold value.
In elther of the above mentioned cases concerning related patches, if a patch to be transmitted is related to anothPr proyram that the remote system 12 does not use, the relationship is ignored and the process continues. This ensures that all upgrades made to a program used by the remote system are raceived.
Furthermore, this allows remote systems receiving the . .
':
~ 31~J~
related optional programs at a later time to operate using their current programs without requiring upgrading of the current programs.
Similarly, if no related patches are detected, the patches having patch numbers less than the threshold value and any priority patches assigned to the remote system or its group are also transmitted to the remote system.
Once a patch to be transmitted to the remote system is determined, the central computer system examines the checksums of the last patch received by the remote system stored in the client data base and compares these checksums with the checksums in the data store 28 to ensure that the values are consistent as indicated at block 322. If the checksums are not consistent, the session between the remote computer system and the central computer system 14 is terminated as indicated at block 308.
However, if the checksums are consistent, the patches are transmitted to the remote computer system 12 one at a time as indicated at block 324. When a patch is received by the remote computer system 12, a copy of the program is made in the remote computer system and the patch is applisd to the copied program. Checksums are calculated for the copied pro~ram and compared with the checksums assigned to the patch ln the central system via the verification function to detect whether they are the same thereby verifying correct transmission of the patch as indicated at block 326. If the checksums do not match, the patch is retransm~tted until it is properly received or until a predetermined number of tries have been exceeded in which case the session is terminatad as indicated at blocks 328 and 330. If the .
, - . :- ., ,, :
,. ` ' I
~ 3~3~
checksums match, the copied program wi-th the patch applied thereto is used to replace the original program in the remote computer system 12 as indicated at block 332. This process is performed for each patch stored in the data store 28 that is to be transmitted until the remote computer system has received the most up to-date changes of that so~tware that is available.
The group distribution numbers assigned to the groups is used as mentioned previously to permit staged release of the software upgrades. The distribution number simply puts a time delay on the increment of the patch threshold value for the various group of remote systems thereby adding flexibility by making the upgrades available to the various groups of systems 12 at different times.
Althou~h the present system has been described as using packet switching networks as communication links, it should be realized that various other types of communication links can be used.
The present system provides ~ number e~
advantages in that each incremental change made to a version of a program is available to the remote users.
In this manner, a client who purchases one version of the software can get support and upgrades for that version without having to purchase the next version which would otherwise include some or all of the upgrades. The system allows all users of the software to receive upgrades with a minimum of delay since all that is required is a simple telephone call to link the remote computers to the central computer. Furthermore, since the mult~-tasking capabilities are used, access is facilitated since the central computer can accommodate a large number of remote computers which attempt to access . , -~3~ 3~
the central computer at relatively the same time.
- . . . . . . :
;
: .
.
.:
.
.- ' , ~ .
Claims (37)
1. A method of upgrading, from a central computer system, the executable code used in at least one remote computer system, comprising the steps of:
storing in said central computer system, executable code corresponding to executable code used in said at least one remote computer system;
upgrading the corresponding executable code and recording the changes made to said corresponding executable code at said central computer system;
establishing a communications link between said at least one remote computer system and said central computer system, said central computer system identifying said at least one remote computer system and the executable code therein;
identifying changes that have been made to said corresponding executable code that have not been made to the executable code used at said at least one remote computer system;
transmitting the changes identified to said at least one remote computer system to upgrade the executable code therein; and verifying transmission of the changes and examining the upgraded executable code used at said at least one remote computer system to ensure that the executable code used therein has been properly upgraded.
storing in said central computer system, executable code corresponding to executable code used in said at least one remote computer system;
upgrading the corresponding executable code and recording the changes made to said corresponding executable code at said central computer system;
establishing a communications link between said at least one remote computer system and said central computer system, said central computer system identifying said at least one remote computer system and the executable code therein;
identifying changes that have been made to said corresponding executable code that have not been made to the executable code used at said at least one remote computer system;
transmitting the changes identified to said at least one remote computer system to upgrade the executable code therein; and verifying transmission of the changes and examining the upgraded executable code used at said at least one remote computer system to ensure that the executable code used therein has been properly upgraded.
2. A method as defined in claim 1 wherein said changes made to the corresponding executable code stored at said central computer system are in the form of patches, each patch including at least one change to said corresponding executable code, said central computer system transmitting said patches to said at least one remote computer system to upgrade the executable code therein.
3. A method as defined in claim 2 further comprising the step of releasing said patches to different remote computer systems at different times.
4. A method as defined in claim 3 wherein the times at which said patches are released to said at least one remote computer system are based on a predetermined logical grouping of said remote computer systems.
5. A method as defined in claim 2 further comprising the step of assigning apatch number to each of said patches, said patch number indicating the total number of patches made to the corresponding executable code stored at said central computer system.
6. A method as defined in claim 2 further comprising the steps of examining each patch made to the corresponding executable code stored at the central computer system to determine if a patch is related to a previous patch made to said corresponding executable code and coding the related patches to ensure that said at least one remote computer system being upgraded receives all related patches when the executable code therein is being upgraded.
7. A method as defined in claim 6 wherein the patches made to the corresponding executable code are manually coded as being related to previous patches.
8. A method as defined in claim 2 wherein there are at least two remote computer systems, each of said remote computer systems have a mandatory set of executable code, each of said remote computer systems being capable of having a different version of said mandatory set of executable code and wherein at least one of said remote computer systems is supplied with at least one additional set of executable code which co-operates with said mandatory set of executable code, said additional set of executable code and said mandatory set of executable code being of the same version in said at least one remote computer system, said mandatory and additional sets of executable code constituting said corresponding executable code and being upgraded at said central computer system.
9. A method as defined in claim 8 further comprising the steps of:
determining at said central computer system the mandatory and additional sets of executable code used at said at least one remote computer system and theversion thereof once a communication link has been established and said at least one remote computer system has been identified and prior to transmitting said patches; and transmitting automatically said patches from said central computer system to said remote computer system relating to said mandatory and additional sets ofexecutable code used at said one remote computer system.
determining at said central computer system the mandatory and additional sets of executable code used at said at least one remote computer system and theversion thereof once a communication link has been established and said at least one remote computer system has been identified and prior to transmitting said patches; and transmitting automatically said patches from said central computer system to said remote computer system relating to said mandatory and additional sets ofexecutable code used at said one remote computer system.
10. A method as defined in claim 2 further comprising the steps of:
examining each patch made to the corresponding executable code stored at said central computer system to detect whether said patch is applicable to otherversions of the same executable code; and applying the patch to the other versions of the same executable code stored at said central computer when said patch is detected as being applicable thereto.
examining each patch made to the corresponding executable code stored at said central computer system to detect whether said patch is applicable to otherversions of the same executable code; and applying the patch to the other versions of the same executable code stored at said central computer when said patch is detected as being applicable thereto.
11. A method as defined in claim 10 wherein said other versions of the same executable code are detected automatically by said central computer system, saidmethod further comprising the step of said central computer system applying saidpatches to the other versions of the same executable code stored at said centralcomputer automatically upon an input confirmation.
12. A method as defined in claim 2 further comprising the step of assigning, automatically at said central computer system, first and second checksums to each patch made to said corresponding executable code, said first checksum representing an image of the corresponding executable code before the patch is applied thereto and said second checksum representing an image of the corresponding executable code after the patch has been applied thereto.
13. A method as defined in claim 12 further comprising the steps of:
comparing automatically at said central computer system the first checksum assigned to a patch to be applied to said corresponding executable code with thesecond checksum assigned to the previous patch made to the corresponding executable code to ensure that the checksums are identical; and recording the patches at said central computer system when said checksums are identical.
comparing automatically at said central computer system the first checksum assigned to a patch to be applied to said corresponding executable code with thesecond checksum assigned to the previous patch made to the corresponding executable code to ensure that the checksums are identical; and recording the patches at said central computer system when said checksums are identical.
14. A method as defined in claim 5 including a plurality of remote computer systems wherein each remote computer system is assigned a threshold value, said threshold value capable of being different for each remote computer system, the threshold value being used to allow remote computer systems to receive patches having patch numbers less than or equal to said threshold value.
15. A method as defined in claim 14 further comprising the steps of testing saidpatches at said central computer system prior to making said patches available for release to said plurality of remote computer systems, said patches being tested in numerical order as determined by said patch number, said threshold values assigned to said plurality of remote computer systems being determined by the numbers assigned to said patches.
16. A method as defined in claim 15 wherein said patches can be tested out of numerical order, said threshold values being equal to a number less than or equal to the highest patch number assigned to a patch that has been tested and wherein all patches having a patch number less than the highest patch number have also been tested.
17. A method as defined in claim 16 further comprising the step of allowing saidcentral computer system to transmit priority patches to said remote computer systems having patch numbers exceeding said threshold value, said central computer system transmitting said priority patches, any patches related to the priority patches and any patches made to the corresponding executable code at said central computer system having patch numbers of a value between the threshold value and the priority patch number.
18. A method as defined in claim 12 wherein the step of verifying transmission of said patches further comprises the step of transmitting said first and secondchecksums to said remote computer system, said remote computer system examining the checksums assigned to said patches to determine if the transmission of the patches is correct.
19. A method as defined in claim 18 wherein the step of verifying transmission of said patches further comprises the steps of making a copy at said at least one remote computer system of the executable code used at said at least one remote computer system and applying the transmitted patch thereto;
said remote computer assigning a checksum to the copy of the executable code with the patch applied thereto and comparing said checksum to said transmitted second checksum; and replacing the executable code with the copy of the executable code having the patch applied thereto when said assigned and said transmitted second checksums are equivalent.
said remote computer assigning a checksum to the copy of the executable code with the patch applied thereto and comparing said checksum to said transmitted second checksum; and replacing the executable code with the copy of the executable code having the patch applied thereto when said assigned and said transmitted second checksums are equivalent.
20. A method as defined in claim 1 wherein there are a plurality of said remote computer systems and further comprising the step of allowing two or more of saidplurality of remote computer systems to gain access to said central computer system at the same time.
21. A method as defined in claim 20 further comprising the steps of assigning at least one of said plurality of remote computer systems access priority;
providing said central computer system with a predetermined number of reserved communication inputs;
inhibiting remote computer systems without priority access from establishing a communication link via said reserved inputs; and allowing said at least one of said plurality of remote computer systems assigned access priority to establish a communication link with said central computer system via one of said reserved inputs when the other inputs to said central computer system are occupied.
providing said central computer system with a predetermined number of reserved communication inputs;
inhibiting remote computer systems without priority access from establishing a communication link via said reserved inputs; and allowing said at least one of said plurality of remote computer systems assigned access priority to establish a communication link with said central computer system via one of said reserved inputs when the other inputs to said central computer system are occupied.
22. A software support system for upgrading, from a central computer system, the executable code used in at least one remote computer system comprising:
storage means located in said central computer system for storing executable code corresponding to the executable code used in said at least one remote computer system;
input means located at said central computer system for allowing the corresponding executable code stored therein to be upgraded;
upgrade detection means located in said central computer system for detecting and recording each change made to the corresponding executable code stored therein;
communication means for establishing a communication link between said remote computer system and the central computer system;
comparing means at one of said central and at least one remote computer system for comparing the executable code in said at least one remote computer system with said corresponding executable code stored in said central computer system;
identifying means for identifying changes automatically that have been made to the corresponding executable code stored in said central computer system which have not been made to the executable code in said at least one remote computer system;
transmission means for transmitting the identified changes from said central computer system to said at least one remote computer system; and verification means at one of said central computer system and said at least one remote computer system for verifying the correct transmission of the changes and for examining the upgraded executable code in said at least one remote computer system to ensure that the executable code has been properly upgraded.
storage means located in said central computer system for storing executable code corresponding to the executable code used in said at least one remote computer system;
input means located at said central computer system for allowing the corresponding executable code stored therein to be upgraded;
upgrade detection means located in said central computer system for detecting and recording each change made to the corresponding executable code stored therein;
communication means for establishing a communication link between said remote computer system and the central computer system;
comparing means at one of said central and at least one remote computer system for comparing the executable code in said at least one remote computer system with said corresponding executable code stored in said central computer system;
identifying means for identifying changes automatically that have been made to the corresponding executable code stored in said central computer system which have not been made to the executable code in said at least one remote computer system;
transmission means for transmitting the identified changes from said central computer system to said at least one remote computer system; and verification means at one of said central computer system and said at least one remote computer system for verifying the correct transmission of the changes and for examining the upgraded executable code in said at least one remote computer system to ensure that the executable code has been properly upgraded.
23. A system as defined in claim 22 wherein the input means includes at least one computer terminal.
24. A system as defined in claim 22 wherein changes made to the corresponding executable code stored at said central computer system are in the form of patches with each patch including at least one change to said corresponding executable code, said central computer system transmitting said patches to said at least one remote computer system to upgrade the executable code therein.
25. A system as defined in claim 24 wherein said communication link is in the form of a packet switching network, said transmission means transmitting said patches from the central computer system to said at least one remote computer system over said packet switching network.
26. A system as defined in claim 24 wherein there are a plurality of remote computer systems and said central computer system includes multi-tasking capabilities and a plurality of inputs to allow at least two of said plurality of remote computer systems to gain access to the central computer system at the same time.
27. A system as defined in claim 26 wherein at least one remote computer system is given access priority to said central computer system, said central computer system further including at least one predetermined input reserved to allow said at least one remote computer system assigned access priority to establish a communication link via said at least one predetermined input when the other inputs to said central computer system are occupied.
28. A system as defined in claim 24 wherein said central computer system assigns a patch number to each patch made to said corresponding executable code, said patch number increasing consecutively with each patch made.
29. A system as defined in claim 22 wherein said comparing means and said verification means are located in said central computer system.
30. A system as defined in claim 29 wherein said central computer system and said at least one remote computer system each further comprise a checksum assignor for assigning each patch a pair of checksums, said checksums representing an image of the corresponding executable code with and without the patch applied thereto, said verification means comparing the checksums assigned to said patch by said central computer system with those assigned by said at least one remote computer system thereby to ensure that each patch is received at said at least one remote computer system correctly.
31. A system as defined in claim 28 further comprising a related patch detector in said central computer system for detecting and coding patches which are related to previous patches made to the corresponding executable code to ensure that said at least one remote computer system receives all related patches when the executable codeused therein is being upgraded.
32. A system as defined in claim 31 further comprising a plurality of remote computer systems and threshold assigning means at said central computer system for assigning a threshold value to each of said plurality of remote computer systems, said threshold value capable of being different for each of said plurality of remote computer systems, said threshold value being used to allow each of said plurality of remote computer systems to receive patches having patch numbers and related patch numbers less than or equal to said threshold value.
33. A system as defined in claim 32 wherein said central computer system tests said patches before making them available for release to said remote computer systems, said threshold values being equal to a number less than or equal to thehighest number assigned to a patch tested by said central computer system and wherein all patches having a number below said highest number have also been tested.
34. A system as defined in claim 33 further comprising means for allowing patches having a number greater than said threshold value to be transmitted to predetermined ones of said remote computer systems.
35. A system as defined in claim 24 wherein said central computer system releases patches to different remote computer systems at different times.
36. A system as defined in claim 35 wherein the times at which said patches are released to said at least one remote computer system are based on a predetermined logical grouping of said remote computer systems.
37. A method as defined in claim 13 wherein said central computer system stores a first version of executable code and at least one different version of the same executable code, said at least one different version being used in said remote computer systems, and wherein a patch made to said first version can be applied to said at least one different version, further comprising the steps of:
comparing automatically at said central computer system the first checksum assigned to said patch with the second checksum of the last patch applied to said at least one different version;
applying said patch to said at least one different version when said first and second checksums correspond;
making a copy of said at least one different version and applying said patch to said copy, when said checksums do not correspond;
determining a first set of differences between said copy and a patched first version;
determining a second set of differences between the unpatched first version and said at least one different version; and applying the patch to said at least one different version when said first and second sets of differences are equivalent.
comparing automatically at said central computer system the first checksum assigned to said patch with the second checksum of the last patch applied to said at least one different version;
applying said patch to said at least one different version when said first and second checksums correspond;
making a copy of said at least one different version and applying said patch to said copy, when said checksums do not correspond;
determining a first set of differences between said copy and a patched first version;
determining a second set of differences between the unpatched first version and said at least one different version; and applying the patch to said at least one different version when said first and second sets of differences are equivalent.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/277,799 | 1988-08-03 | ||
US07/227,799 US5155847A (en) | 1988-08-03 | 1988-08-03 | Method and apparatus for updating software at remote locations |
Publications (1)
Publication Number | Publication Date |
---|---|
CA1310131C true CA1310131C (en) | 1992-11-10 |
Family
ID=22854512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA000577832A Expired - Lifetime CA1310131C (en) | 1988-08-03 | 1988-09-19 | Method and apparatus for updating software at remote locations |
Country Status (2)
Country | Link |
---|---|
US (1) | US5155847A (en) |
CA (1) | CA1310131C (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107832067A (en) * | 2017-10-27 | 2018-03-23 | 维沃移动通信有限公司 | One kind applies update method, mobile terminal and computer-readable recording medium |
Families Citing this family (615)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5485370A (en) | 1988-05-05 | 1996-01-16 | Transaction Technology, Inc. | Home services delivery system with intelligent terminal emulator |
US5572572A (en) | 1988-05-05 | 1996-11-05 | Transaction Technology, Inc. | Computer and telephone apparatus with user friendly interface and enhanced integrity features |
CA1341310C (en) | 1988-07-15 | 2001-10-23 | Robert Filepp | Interactive computer network and method of operation |
US6044205A (en) * | 1996-02-29 | 2000-03-28 | Intermind Corporation | Communications system for transferring information between memories according to processes transferred with the information |
US5321816A (en) * | 1989-10-10 | 1994-06-14 | Unisys Corporation | Local-remote apparatus with specialized image storage modules |
US5319544A (en) * | 1989-11-20 | 1994-06-07 | Itt Corporation | Computerized inventory monitoring and verification system and method |
US5495610A (en) * | 1989-11-30 | 1996-02-27 | Seer Technologies, Inc. | Software distribution system to build and distribute a software release |
US6212557B1 (en) * | 1990-01-29 | 2001-04-03 | Compaq Computer Corporation | Method and apparatus for synchronizing upgrades in distributed network data processing systems |
EP0449530A3 (en) * | 1990-03-23 | 1993-09-01 | Canon Kabushiki Kaisha | A memory medium having a control program memorized therein and an information processing method and an information processing apparatus using the same medium |
US5410691A (en) * | 1990-05-07 | 1995-04-25 | Next Computer, Inc. | Method and apparatus for providing a network configuration database |
EP0463251A1 (en) * | 1990-06-28 | 1992-01-02 | International Business Machines Corporation | Software installation |
US5734981A (en) * | 1991-01-17 | 1998-03-31 | Highwaymaster Communications, Inc. | Method and apparatus for call delivery to a mobile unit |
JP3310990B2 (en) * | 1991-04-15 | 2002-08-05 | キヤノン株式会社 | Electronics |
US5450582A (en) * | 1991-05-15 | 1995-09-12 | Matsushita Graphic Communication Systems, Inc. | Network system with a plurality of nodes for administrating communications terminals |
JP3329841B2 (en) * | 1991-10-18 | 2002-09-30 | 株式会社日立製作所 | Network system and its software management method |
US5619716A (en) * | 1991-11-05 | 1997-04-08 | Hitachi, Ltd. | Information processing system having a configuration management system for managing the software of the information processing system |
US5778348A (en) * | 1991-12-24 | 1998-07-07 | Pitney Bowes Inc. | Remote activation of rating capabilities in a computerized parcel manifest system |
US5956505A (en) * | 1991-12-24 | 1999-09-21 | Pitney Bowes Inc. | Remote activation of software features in a data processing device |
US5454027A (en) * | 1992-01-27 | 1995-09-26 | Hm Holding Corporation | Phantom mobile identification number method and apparatus |
US5539810A (en) | 1992-01-27 | 1996-07-23 | Highwaymaster Communications, Inc. | Data messaging in a communications network |
US6295449B1 (en) | 1992-01-27 | 2001-09-25 | @Track Communications, Inc. | Data messaging in a communications network using a feature request |
US6009330A (en) * | 1992-01-27 | 1999-12-28 | Highwaymaster Communications, Inc. | Method and apparatus for call delivery to a mobile unit |
GB2263797B (en) * | 1992-01-31 | 1996-04-03 | Plessey Telecomm | Object orientated system |
WO1993019420A1 (en) * | 1992-03-17 | 1993-09-30 | Nomadic Systems, Inc. | Remote file access system |
US7370008B1 (en) | 1992-04-10 | 2008-05-06 | Charles E. Hill & Associates, Inc. | Electronic catalog system and method |
US5528490A (en) | 1992-04-10 | 1996-06-18 | Charles E. Hill & Associates, Inc. | Electronic catalog system and method |
US5845078A (en) * | 1992-04-16 | 1998-12-01 | Hitachi, Ltd. | Network integrated construction system, method of installing network connection machines, and method of setting network parameters |
US5687315A (en) * | 1992-04-16 | 1997-11-11 | Hitachi, Ltd. | Support system for constructing an integrated network |
GB2269032B (en) * | 1992-07-21 | 1996-03-20 | Orbitel Mobile Communications | Reprogramming methods and apparatus |
US5805897A (en) * | 1992-07-31 | 1998-09-08 | International Business Machines Corporation | System and method for remote software configuration and distribution |
US5647056A (en) * | 1992-11-18 | 1997-07-08 | Canon Information Systems, Inc. | Method and apparatus for managing access to a networked peripheral |
US5696899A (en) * | 1992-11-18 | 1997-12-09 | Canon Kabushiki Kaisha | Method and apparatus for adaptively determining the format of data packets carried on a local area network |
US5815722A (en) * | 1992-11-18 | 1998-09-29 | Canon Information Systems, Inc. | In an interactive network board, a method and apparatus for remotely downloading and executing files in a memory |
US5623604A (en) * | 1992-11-18 | 1997-04-22 | Canon Information Systems, Inc. | Method and apparatus for remotely altering programmable firmware stored in an interactive network board coupled to a network peripheral |
US5841991A (en) * | 1992-11-18 | 1998-11-24 | Canon Information Systems, Inc. | In an Interactive network board, a method and apparatus for storing a media access control address in a remotely alterable memory |
JP2710195B2 (en) * | 1992-12-15 | 1998-02-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Storage controller |
FR2699708B1 (en) * | 1992-12-22 | 1995-02-24 | Bull Sa | File management method, recording medium and computer system incorporating it. |
WO1994025913A2 (en) * | 1993-04-30 | 1994-11-10 | Novadigm, Inc. | Method and apparatus for enterprise desktop management |
JPH076026A (en) * | 1993-05-28 | 1995-01-10 | Xerox Corp | Method for guarantee of interchangeablity of configuration management and component and method for exclusion of non- interchangeability of resident software and migration software |
US6031867A (en) * | 1993-07-02 | 2000-02-29 | Multi-Tech Systems, Inc. | Modem with firmware upgrade feature |
KR950004717A (en) * | 1993-07-15 | 1995-02-18 | 가나이 쯔또무 | Brushless Motor Drive Circuit |
US7080051B1 (en) * | 1993-11-04 | 2006-07-18 | Crawford Christopher M | Internet download systems and methods providing software to internet computer users for local execution |
JP3187624B2 (en) * | 1993-11-19 | 2001-07-11 | 京セラミタ株式会社 | Updating the built-in program of a device with a communication function |
US5774644A (en) * | 1993-12-17 | 1998-06-30 | International Business Machines Corporation | Method and apparatus for generating a pair of interoperating communications programs |
US5421009A (en) * | 1993-12-22 | 1995-05-30 | Hewlett-Packard Company | Method of remotely installing software directly from a central computer |
US6076084A (en) * | 1994-01-03 | 2000-06-13 | Norton-Lambert Corp. | File transfer method and apparatus utilizing delimiters |
US5446888A (en) * | 1994-01-14 | 1995-08-29 | Pyne; Charles F. | Remote file transfer method and apparatus |
US5504801A (en) * | 1994-02-09 | 1996-04-02 | Harris Corporation | User-controlled electronic modification of operating system firmware resident in remote measurement unit for testing and conditioning of subscriber line circuits |
US5845090A (en) * | 1994-02-14 | 1998-12-01 | Platinium Technology, Inc. | System for software distribution in a digital computer network |
US5628030A (en) * | 1994-03-24 | 1997-05-06 | Multi-Tech Systems, Inc. | Virtual modem driver apparatus and method |
US6732358B1 (en) * | 1994-03-24 | 2004-05-04 | Ncr Corporation | Automatic updating of computer software |
US6473860B1 (en) | 1994-04-07 | 2002-10-29 | Hark C. Chan | Information distribution and processing system |
US7991347B1 (en) | 1994-04-07 | 2011-08-02 | Data Innovation Llc | System and method for accessing set of digital data at a remote site |
US5796999A (en) * | 1994-04-15 | 1998-08-18 | International Business Machines Corporation | Method and system for selectable consistency level maintenance in a resilent database system |
US5689560A (en) * | 1994-04-25 | 1997-11-18 | International Business Machines Corporation | Method and apparatus for enabling trial period use of software products: method and apparatus for allowing a try-and-buy user interaction |
US5598470A (en) * | 1994-04-25 | 1997-01-28 | International Business Machines Corporation | Method and apparatus for enabling trial period use of software products: Method and apparatus for utilizing a decryption block |
US5757907A (en) * | 1994-04-25 | 1998-05-26 | International Business Machines Corporation | Method and apparatus for enabling trial period use of software products: method and apparatus for generating a machine-dependent identification |
CA2143874C (en) * | 1994-04-25 | 2000-06-20 | Thomas Edward Cooper | Method and apparatus for enabling trial period use of software products: method and apparatus for utilizing a decryption stub |
US6282572B1 (en) | 1994-05-04 | 2001-08-28 | Telefonaktieboalget Lm Ericsson (Publ) | Providing a master device with slave device capability information |
JP3177117B2 (en) * | 1994-05-11 | 2001-06-18 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | Method and apparatus for updating control codes in multiple nodes |
US6769009B1 (en) | 1994-05-31 | 2004-07-27 | Richard R. Reisman | Method and system for selecting a personalized set of information channels |
US5694546A (en) | 1994-05-31 | 1997-12-02 | Reisman; Richard R. | System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list |
US6356961B1 (en) * | 1994-06-03 | 2002-03-12 | Motorola, Inc. | Method and apparatus for minimizing an amount of data communicated between devices and necessary to modify stored electronic documents |
US6587872B2 (en) | 1994-06-20 | 2003-07-01 | Faith Inc. | Network system and network management method |
JP3526474B2 (en) * | 1994-07-06 | 2004-05-17 | 富士通株式会社 | Distribution information management system in network |
US7181758B1 (en) | 1994-07-25 | 2007-02-20 | Data Innovation, L.L.C. | Information distribution and processing system |
US5684952A (en) * | 1994-07-25 | 1997-11-04 | Apple Computer, Inc. | Supervisory control system for networked multimedia workstations that provides reconfiguration of workstations by remotely updating the operating system |
US5586304A (en) * | 1994-09-08 | 1996-12-17 | Compaq Computer Corporation | Automatic computer upgrading |
JP3427363B2 (en) * | 1994-10-07 | 2003-07-14 | 富士通株式会社 | Multiprocessor system |
ATE188793T1 (en) * | 1994-10-12 | 2000-01-15 | Touchtunes Music Corp | INTELLIGENT SYSTEM FOR NUMERICAL AUDIOVISUAL REPRODUCTION |
US7188352B2 (en) | 1995-07-11 | 2007-03-06 | Touchtunes Music Corporation | Intelligent digital audiovisual playback system |
US7424731B1 (en) | 1994-10-12 | 2008-09-09 | Touchtunes Music Corporation | Home digital audiovisual information recording and playback system |
US8661477B2 (en) | 1994-10-12 | 2014-02-25 | Touchtunes Music Corporation | System for distributing and selecting audio and video information and method implemented by said system |
US5734904A (en) * | 1994-11-14 | 1998-03-31 | Microsoft Corporation | Method and system for calling one of a set of routines designed for direct invocation by programs of a second type when invoked by a program of the first type |
US6438621B1 (en) | 1994-11-14 | 2002-08-20 | Microsoft Corporation | In-memory modification of computer programs |
SE504943C2 (en) * | 1994-12-09 | 1997-06-02 | Ericsson Telefon Ab L M | Synchronization procedure that permits state transfer |
AU4466896A (en) * | 1994-12-13 | 1996-07-03 | Novell, Inc. | Method and apparatus to update or change a network directory |
US5740359A (en) * | 1994-12-27 | 1998-04-14 | Kabushiki Kaisha Toshiba | Program execution system having a plurality of program versions |
US6110228A (en) * | 1994-12-28 | 2000-08-29 | International Business Machines Corporation | Method and apparatus for software maintenance at remote nodes |
JP3946275B2 (en) * | 1995-01-10 | 2007-07-18 | 富士通株式会社 | Remote installation system and method |
US5654901A (en) * | 1995-01-30 | 1997-08-05 | Telefonaktiebolaget Lm Ericsson | Loading software into field test equipment |
US5604906A (en) * | 1995-02-06 | 1997-02-18 | Apple Computer, Inc. | Method and apparatus for installing software block-by block via an image of the target storage device |
US5842024A (en) * | 1995-02-27 | 1998-11-24 | Ast Research, Inc. | Method of software installation |
US5742829A (en) * | 1995-03-10 | 1998-04-21 | Microsoft Corporation | Automatic software installation on heterogeneous networked client computer systems |
US6088516A (en) * | 1995-03-30 | 2000-07-11 | Kreisel; Glenn M. | Method for cloning a source application with assignment of unique identifier to clone application |
JP3590688B2 (en) * | 1995-04-05 | 2004-11-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Method and system for constructing an installation plan object for installing an application |
US5867713A (en) * | 1995-04-05 | 1999-02-02 | International Business Machines Corporation | Committing an install plan object for the network installation of application programs |
US5699275A (en) * | 1995-04-12 | 1997-12-16 | Highwaymaster Communications, Inc. | System and method for remote patching of operating code located in a mobile unit |
US5987505A (en) * | 1995-04-28 | 1999-11-16 | Fry; Shawn C. | Method for emulation of terminal-resident GUI application by transmitting macros having information and command instructing the terminal how to process the information |
US5727154A (en) * | 1995-04-28 | 1998-03-10 | Fry; Shawn C. | Program synchronization on first and second computers by determining whether information transmitted by first computer is an acceptable or unacceptable input to second computer program |
US5790856A (en) * | 1995-05-08 | 1998-08-04 | Apple Computer, Inc. | Methods, apparatus, and data structures for data driven computer patches and static analysis of same |
US6026232A (en) * | 1995-07-13 | 2000-02-15 | Kabushiki Kaisha Toshiba | Method and system to replace sections of an encoded video bitstream |
US5694322A (en) * | 1995-05-09 | 1997-12-02 | Highwaymaster Communications, Inc. | Method and apparatus for determining tax of a vehicle |
US6240451B1 (en) * | 1995-05-25 | 2001-05-29 | Punch Networks Corporation | Method and apparatus for automatically disseminating information over a network |
US5694596A (en) | 1995-05-25 | 1997-12-02 | Kangaroo, Inc. | On-line database updating network system and method |
JP3390566B2 (en) * | 1995-06-05 | 2003-03-24 | 富士通株式会社 | Program loading method |
US5764992A (en) * | 1995-06-06 | 1998-06-09 | Apple Computer, Inc. | Method and apparatus for automatic software replacement |
US5727205A (en) * | 1995-06-28 | 1998-03-10 | Canon Information Systems, Inc. | File installation system for displaying bitmaps during file installation |
AU6500596A (en) | 1995-07-20 | 1997-02-18 | Novell, Inc. | Transaction log management in a disconnectable computer and network |
EP0839353B1 (en) * | 1995-07-20 | 2001-09-26 | Novell, Inc. | Transaction synchronization in a disconnectable computer and network |
US5758150A (en) * | 1995-10-06 | 1998-05-26 | Tele-Communications, Inc. | System and method for database synchronization |
US6401241B1 (en) * | 1995-10-06 | 2002-06-04 | Sun Microsystems, Inc. | Class archive software packages |
US6684259B1 (en) | 1995-10-11 | 2004-01-27 | Citrix Systems, Inc. | Method for providing user global object name space in a multi-user operating system |
US5805889A (en) * | 1995-10-20 | 1998-09-08 | Sun Microsystems, Inc. | System and method for integrating editing and versioning in data repositories |
US6088515A (en) | 1995-11-13 | 2000-07-11 | Citrix Systems Inc | Method and apparatus for making a hypermedium interactive |
US6437803B1 (en) | 1998-05-29 | 2002-08-20 | Citrix Systems, Inc. | System and method for combining local and remote windows into a single desktop environment |
US5796832A (en) | 1995-11-13 | 1998-08-18 | Transaction Technology, Inc. | Wireless transaction and information system |
US7555529B2 (en) * | 1995-11-13 | 2009-06-30 | Citrix Systems, Inc. | Interacting with software applications displayed in a web page |
US6950991B2 (en) | 1995-11-13 | 2005-09-27 | Citrix Systems, Inc. | Interacting with software applications displayed in a web page |
US6502240B1 (en) * | 1995-11-21 | 2002-12-31 | Pitney Bowes Inc. | Digital postage meter system having a replaceable printing unit with system software upgrade |
US5845077A (en) * | 1995-11-27 | 1998-12-01 | Microsoft Corporation | Method and system for identifying and obtaining computer software from a remote computer |
US5754782A (en) * | 1995-12-04 | 1998-05-19 | International Business Machines Corporation | System and method for backing up and restoring groupware documents |
US5793982A (en) * | 1995-12-07 | 1998-08-11 | International Business Machine Corporation | Validating an installation plan containing multiple transports and redirectors by adding data structure of the modules to the plan if the indicated transport and redirector modules are unavailable |
JPH09168009A (en) * | 1995-12-15 | 1997-06-24 | Hitachi Ltd | Network operation information setting system |
US5966715A (en) * | 1995-12-29 | 1999-10-12 | Csg Systems, Inc. | Application and database security and integrity system and method |
KR100286008B1 (en) * | 1995-12-30 | 2001-04-16 | 윤종용 | Method for automatically updating software program |
US6625617B2 (en) | 1996-01-02 | 2003-09-23 | Timeline, Inc. | Modularized data retrieval method and apparatus with multiple source capability |
US5732275A (en) * | 1996-01-11 | 1998-03-24 | Apple Computer, Inc. | Method and apparatus for managing and automatically updating software programs |
US5951639A (en) * | 1996-02-14 | 1999-09-14 | Powertv, Inc. | Multicast downloading of software and data modules and their compatibility requirements |
US6377971B1 (en) * | 1996-02-23 | 2002-04-23 | Citrix Systems, Inc. | Method and apparatus for installing and executing a single user task in a multi-user environment |
US5603323A (en) * | 1996-02-27 | 1997-02-18 | Advanced Technology Laboratories, Inc. | Medical ultrasonic diagnostic system with upgradeable transducer probes and other features |
US6157946A (en) * | 1996-02-28 | 2000-12-05 | Netzero Inc. | Communication system capable of providing user with picture meeting characteristics of user and terminal equipment and information providing device used for the same |
US5761518A (en) * | 1996-02-29 | 1998-06-02 | The Foxboro Company | System for replacing control processor by operating processor in partially disabled mode for tracking control outputs and in write enabled mode for transferring control loops |
US5862325A (en) * | 1996-02-29 | 1999-01-19 | Intermind Corporation | Computer-based communication system and method using metadata defining a control structure |
US5742754A (en) * | 1996-03-05 | 1998-04-21 | Sun Microsystems, Inc. | Software testing apparatus and method |
US5799284A (en) * | 1996-03-13 | 1998-08-25 | Roy E. Bourquin | Software and hardware for publishing and viewing products and services for sale |
US5970471A (en) | 1996-03-22 | 1999-10-19 | Charles E. Hill & Associates, Inc. | Virtual catalog and product presentation method and apparatus |
US6049671A (en) * | 1996-04-18 | 2000-04-11 | Microsoft Corporation | Method for identifying and obtaining computer software from a network computer |
US5931909A (en) * | 1996-04-19 | 1999-08-03 | Sun Microsystems, Inc. | System for multiple-client software installation and upgrade |
US6292941B1 (en) * | 1996-04-30 | 2001-09-18 | Sun Microsystems, Inc. | Operating system installation |
DE19617976A1 (en) * | 1996-05-06 | 1997-11-13 | Philips Patentverwaltung | Communication system with means for exchanging software processes |
US5978805A (en) * | 1996-05-15 | 1999-11-02 | Microcom Systems, Inc. | Method and apparatus for synchronizing files |
EP0809201A3 (en) * | 1996-05-22 | 2000-05-03 | Fujitsu Limited | Information processing system and recording media |
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 |
US6151643A (en) | 1996-06-07 | 2000-11-21 | Networks Associates, Inc. | Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer |
US6074434A (en) | 1996-06-07 | 2000-06-13 | International Business Machines Corporation | Selection of code updates, data updates or new data for client |
US5790796A (en) * | 1996-06-14 | 1998-08-04 | Symantec Corporation | Polymorphic package files to update software components |
US6412017B1 (en) * | 1996-07-01 | 2002-06-25 | Microsoft Corporation | Urgent replication facility |
US5878434A (en) * | 1996-07-18 | 1999-03-02 | Novell, Inc | Transaction clash management in a disconnectable computer and network |
US5919247A (en) * | 1996-07-24 | 1999-07-06 | Marimba, Inc. | Method for the distribution of code and data updates |
US5987464A (en) * | 1996-07-26 | 1999-11-16 | Schneider; Eric | Method and system for periodically updating data records having an expiry time |
US6643506B1 (en) * | 1996-08-07 | 2003-11-04 | Telxon Corporation | Wireless software upgrades with version control |
US5848064A (en) * | 1996-08-07 | 1998-12-08 | Telxon Corporation | Wireless software upgrades with version control |
US6308061B1 (en) | 1996-08-07 | 2001-10-23 | Telxon Corporation | Wireless software upgrades with version control |
US6532543B1 (en) | 1996-08-13 | 2003-03-11 | Angel Secure Networks, Inc. | System and method for installing an auditable secure network |
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 |
US6918038B1 (en) | 1996-08-13 | 2005-07-12 | Angel Secure Networks, Inc. | System and method for installing an auditable secure network |
US6006034A (en) * | 1996-09-05 | 1999-12-21 | Open Software Associates, Ltd. | Systems and methods for automatic application version upgrading and maintenance |
US6470495B1 (en) * | 1996-09-06 | 2002-10-22 | Ncr Corporation | Satellite control of electronic memory devices |
US6052780A (en) * | 1996-09-12 | 2000-04-18 | Open Security Solutions, Llc | Computer system and process for accessing an encrypted and self-decrypting digital information product while restricting access to decrypted digital information |
FR2753868A1 (en) | 1996-09-25 | 1998-03-27 | Technical Maintenance Corp | METHOD FOR SELECTING A RECORDING ON AN AUDIOVISUAL DIGITAL REPRODUCTION SYSTEM AND SYSTEM FOR IMPLEMENTING THE METHOD |
US5915119A (en) * | 1996-10-01 | 1999-06-22 | Ncr Corporation | Proxy terminal for network controlling of power managed user terminals in suspend mode |
US5950209A (en) * | 1996-10-02 | 1999-09-07 | Alcatel Usa Sourcing, L.P. | Software release control system and method |
US5809251A (en) * | 1996-10-09 | 1998-09-15 | Hewlett-Packard Company | Remote installation of software by a management information system into a remote computer |
US5960204A (en) * | 1996-10-28 | 1999-09-28 | J.D. Edwards World Source Company | System and method for installing applications on a computer on an as needed basis |
US6049809A (en) * | 1996-10-30 | 2000-04-11 | Microsoft Corporation | Replication optimization system and method |
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 |
JP3605242B2 (en) * | 1996-11-12 | 2004-12-22 | 富士通株式会社 | Data transmission device, data reception device, and data file storage medium |
US6347398B1 (en) | 1996-12-12 | 2002-02-12 | Microsoft Corporation | Automatic software downloading from a computer network |
US6802061B1 (en) | 1996-12-12 | 2004-10-05 | Microsoft Corporation | Automatic software downloading from a computer network |
US20060195595A1 (en) | 2003-12-19 | 2006-08-31 | Mendez Daniel J | System and method for globally and securely accessing unified information in a computer network |
US5960196A (en) * | 1996-12-18 | 1999-09-28 | Alcatel Usa Sourcing, L.P. | Software release metric reporting system and method |
DE19652628A1 (en) * | 1996-12-18 | 1998-06-25 | Philips Patentverwaltung | Communication system |
US5903897A (en) * | 1996-12-18 | 1999-05-11 | Alcatel Usa Sourcing, L.P. | Software documentation release control system |
US6604242B1 (en) * | 1998-05-18 | 2003-08-05 | Liberate Technologies | Combining television broadcast and personalized/interactive information |
US5991799A (en) | 1996-12-20 | 1999-11-23 | Liberate Technologies | Information retrieval system using an internet multiplexer to focus user selection |
US6381741B1 (en) * | 1998-05-18 | 2002-04-30 | Liberate Technologies | Secure data downloading, recovery and upgrading |
US5922072A (en) * | 1997-01-03 | 1999-07-13 | Ncr Corporation | Method and apparatus for creating alternate boot environments in a computer |
US6128734A (en) * | 1997-01-17 | 2000-10-03 | Advanced Micro Devices, Inc. | Installing operating systems changes on a computer system |
US5933647A (en) * | 1997-01-24 | 1999-08-03 | Cognet Corporation | System and method for software distribution and desktop management in a computer network environment |
US6137805A (en) * | 1997-02-10 | 2000-10-24 | International Business Machines Corporation | Method and apparatus to remotely configure a data processing system |
AU6183798A (en) * | 1997-02-27 | 1998-09-29 | Siebel Systems, Inc. | Method of migrating to a successive level of a software distribution incorporating local modifications |
WO1998040805A2 (en) * | 1997-02-27 | 1998-09-17 | Siebel Systems, Inc. | Method of synchronizing independently distributed software and database schema |
US6085244A (en) * | 1997-03-17 | 2000-07-04 | Sun Microsystems, Inc. | Dynamic test update in a remote computer monitoring system |
US6023507A (en) * | 1997-03-17 | 2000-02-08 | Sun Microsystems, Inc. | Automatic remote computer monitoring system |
US5978912A (en) | 1997-03-20 | 1999-11-02 | Phoenix Technologies Limited | Network enhanced BIOS enabling remote management of a computer without a functioning operating system |
US6151683A (en) * | 1997-03-31 | 2000-11-21 | Sun Microsystems, Inc. | Rebuilding computer states remotely |
JPH10289108A (en) * | 1997-04-17 | 1998-10-27 | Matsushita Electric Ind Co Ltd | Remote program downloading device |
US5991860A (en) * | 1997-04-23 | 1999-11-23 | Advanced Micro Devices, Inc. | Root file system size increase on a unix based computer system |
US5964874A (en) * | 1997-04-23 | 1999-10-12 | Advanced Micro Devices, Inc. | Swap size decrease on a UNIX based computer system |
US6023763A (en) * | 1997-04-23 | 2000-02-08 | Fisher Controls International, Inc. | Method of and apparatus for protecting and upgrading software using a removable hardlock |
US5968170A (en) * | 1997-04-23 | 1999-10-19 | Advanced Micro Devices, Inc. | Primary swap size increase on a UNIX based computer system |
US6119212A (en) * | 1997-04-23 | 2000-09-12 | Advanced Micro Devices, Inc. | Root size decrease on a UNIX based computer system |
US6182249B1 (en) | 1997-05-12 | 2001-01-30 | Sun Microsystems, Inc. | Remote alert monitoring and trend analysis |
US6400371B1 (en) | 1997-05-16 | 2002-06-04 | Liberate Technologies | Television signal chrominance adjustment |
US6326970B1 (en) | 1997-05-16 | 2001-12-04 | Liberate Technologies | TV centric layout |
US6513116B1 (en) | 1997-05-16 | 2003-01-28 | Liberate Technologies | Security information acquisition |
US7631188B2 (en) * | 1997-05-16 | 2009-12-08 | Tvworks, Llc | Hierarchical open security information delegation and acquisition |
US6314565B1 (en) * | 1997-05-19 | 2001-11-06 | Intervu, Inc. | System and method for automated identification, retrieval, and installation of multimedia software components |
US6154128A (en) * | 1997-05-21 | 2000-11-28 | Sun Microsystems, Inc. | Automatic building and distribution of alerts in a remote monitoring system |
US6023773A (en) * | 1997-05-29 | 2000-02-08 | Advanced Micro Devices, Inc. | Multi-client test harness |
US5951697A (en) * | 1997-05-29 | 1999-09-14 | Advanced Micro Devices, Inc. | Testing the sharing of stored computer information |
SE9702088D0 (en) * | 1997-06-02 | 1997-06-02 | Ericsson Telefon Ab L M | Method and device for telecommunication |
US6029196A (en) * | 1997-06-18 | 2000-02-22 | Netscape Communications Corporation | Automatic client configuration system |
US8516132B2 (en) | 1997-06-19 | 2013-08-20 | Mymail, Ltd. | Method of accessing a selected network |
US6571290B2 (en) | 1997-06-19 | 2003-05-27 | Mymail, Inc. | Method and apparatus for providing fungible intercourse over a network |
US6073172A (en) * | 1997-07-14 | 2000-06-06 | Freegate Corporation | Initializing and reconfiguring a secure network interface |
US6230194B1 (en) * | 1997-07-14 | 2001-05-08 | Freegate Corporation | Upgrading a secure network interface |
AU8397298A (en) * | 1997-07-15 | 1999-02-10 | Pocket Soft, Inc. | System for finding differences between two computer files and updating the computer files |
US7574727B2 (en) | 1997-07-23 | 2009-08-11 | Touchtunes Music Corporation | Intelligent digital audiovisual playback system |
US6442549B1 (en) | 1997-07-25 | 2002-08-27 | Eric Schneider | Method, product, and apparatus for processing reusable information |
US6760746B1 (en) * | 1999-09-01 | 2004-07-06 | Eric Schneider | Method, product, and apparatus for processing a data request |
US6075943A (en) * | 1997-08-13 | 2000-06-13 | International Business Machines Corporation | System and method for client server software installation |
US6990458B2 (en) * | 1997-08-28 | 2006-01-24 | Csg Systems, Inc. | System and method for computer-aided technician dispatch and communication |
FR2769165B1 (en) | 1997-09-26 | 2002-11-29 | Technical Maintenance Corp | WIRELESS SYSTEM WITH DIGITAL TRANSMISSION FOR SPEAKERS |
US5930515A (en) * | 1997-09-30 | 1999-07-27 | Scientific-Atlanta, Inc. | Apparatus and method for upgrading a computer system operating system |
US6845102B1 (en) * | 1997-10-09 | 2005-01-18 | Cisco Technology, Inc. | Method and system for network access over a low bandwidth link |
US6074435A (en) * | 1997-10-30 | 2000-06-13 | Telefonakiebolaget Lm Ericsson (Publ) | Remote software download with automatic adjustment for data access compatibility |
US5896527A (en) * | 1997-10-31 | 1999-04-20 | Lucent Technologies Inc. | Accessing data during the transition between program releases |
US6282709B1 (en) * | 1997-11-12 | 2001-08-28 | Philips Electronics North America Corporation | Software update manager |
US6041333A (en) * | 1997-11-14 | 2000-03-21 | Microsoft Corporation | Method and apparatus for automatically updating a data file from a network |
US5978916A (en) * | 1997-11-25 | 1999-11-02 | International Business Machines Corporation | Method, system and computer program product for updating region-dependent software using a common update module for multiple regions |
US6158018A (en) * | 1997-11-25 | 2000-12-05 | Philips Semiconductor, Inc. | Integrated circuit including patching circuitry to bypass portions of an internally flawed read only memory and a method therefore |
JP3449684B2 (en) * | 1997-12-11 | 2003-09-22 | 富士通株式会社 | Software setting device, software setting method, and recording medium recording program for implementing the method |
US6182285B1 (en) * | 1997-12-15 | 2001-01-30 | International Business Machines Corporation | Method and apparatus for generating a default list |
US6115720A (en) * | 1997-12-15 | 2000-09-05 | International Business Machines Corportion | Method and apparatus for performing a health check on a database system |
US6085333A (en) * | 1997-12-19 | 2000-07-04 | Lsi Logic Corporation | Method and apparatus for synchronization of code in redundant controllers in a swappable environment |
US6195795B1 (en) | 1997-12-19 | 2001-02-27 | Alcatel Usa Sourcing, L.P. | Apparatus and method for automatic software release notification |
US5991774A (en) * | 1997-12-22 | 1999-11-23 | Schneider Automation Inc. | Method for identifying the validity of an executable file description by appending the checksum and the version ID of the file to an end thereof |
US6192518B1 (en) * | 1998-01-22 | 2001-02-20 | Mis Only, Inc. | Method for distributing software over network links via electronic mail |
US6393437B1 (en) * | 1998-01-27 | 2002-05-21 | Microsoft Corporation | Web developer isolation techniques |
GB2333864B (en) | 1998-01-28 | 2003-05-07 | Ibm | Distribution of software updates via a computer network |
US6202207B1 (en) | 1998-01-28 | 2001-03-13 | International Business Machines Corporation | Method and a mechanism for synchronized updating of interoperating software |
US6151709A (en) * | 1998-02-13 | 2000-11-21 | Novell, Inc. | Processes and apparatuses for uploading instructions to a computer |
US7080371B1 (en) | 1998-03-03 | 2006-07-18 | Siebel Systems, Inc. | Method, system, apparatus and program product for distribution and instantiation of software upgrades |
JP2002506249A (en) * | 1998-03-03 | 2002-02-26 | シーベル システムズ,インコーポレイティド | Method, system, apparatus and program product for distribution and instantiation of software upgrades |
US20050192890A1 (en) | 1998-03-11 | 2005-09-01 | Foliofn, Inc. | Method and apparatus for trading securities or other instruments |
JP2002507015A (en) * | 1998-03-11 | 2002-03-05 | フォリオエフエヌ,インコーポレイティド | Method and apparatus for enabling individuals or small investors to cost effectively build and manage portfolios of securities or other assets or liabilities |
US7185332B1 (en) | 1998-03-25 | 2007-02-27 | Symantec Corporation | Multi-tiered incremental software updating |
US6052531A (en) * | 1998-03-25 | 2000-04-18 | Symantec Corporation | Multi-tiered incremental software updating |
US7770123B1 (en) * | 1998-05-08 | 2010-08-03 | Apple Inc. | Method for dynamically generating a “table of contents” view of a HTML-based information system |
US6237114B1 (en) | 1998-05-13 | 2001-05-22 | Sun Microsystems, Inc. | System and method for evaluating monitored computer systems |
US6577351B1 (en) | 1998-05-18 | 2003-06-10 | Liberate Technologies | Anti-aliasing television signals for display |
US6330715B1 (en) * | 1998-05-19 | 2001-12-11 | Nortel Networks Limited | Method and apparatus for managing software in a network system |
US6070012A (en) * | 1998-05-22 | 2000-05-30 | Nortel Networks Corporation | Method and apparatus for upgrading software subsystems without interrupting service |
US7209949B2 (en) | 1998-05-29 | 2007-04-24 | Research In Motion Limited | System and method for synchronizing information between a host system and a mobile data communication device |
US6438585B2 (en) | 1998-05-29 | 2002-08-20 | Research In Motion Limited | System and method for redirecting message attachments between a host system and a mobile data communication device |
US6381742B2 (en) * | 1998-06-19 | 2002-04-30 | Microsoft Corporation | Software package management |
AU8567798A (en) | 1998-06-19 | 2000-01-05 | Netsafe, Inc. | Method and apparatus for providing connections over a network |
US6604236B1 (en) | 1998-06-30 | 2003-08-05 | Iora, Ltd. | System and method for generating file updates for files stored on read-only media |
FR2781582B1 (en) | 1998-07-21 | 2001-01-12 | Technical Maintenance Corp | SYSTEM FOR DOWNLOADING OBJECTS OR FILES FOR SOFTWARE UPDATE |
FR2781580B1 (en) | 1998-07-22 | 2000-09-22 | Technical Maintenance Corp | SOUND CONTROL CIRCUIT FOR INTELLIGENT DIGITAL AUDIOVISUAL REPRODUCTION SYSTEM |
FR2781593B1 (en) | 1998-07-22 | 2001-01-12 | Technical Maintenance Corp | REMOTE CONTROL FOR INTELLIGENT DIGITAL AUDIOVISUAL REPRODUCTION SYSTEM |
US8028318B2 (en) | 1999-07-21 | 2011-09-27 | Touchtunes Music Corporation | Remote control unit for activating and deactivating means for payment and for displaying payment status |
FR2781591B1 (en) | 1998-07-22 | 2000-09-22 | Technical Maintenance Corp | AUDIOVISUAL REPRODUCTION SYSTEM |
US6449075B1 (en) * | 1998-08-10 | 2002-09-10 | Zilog, Inc. | Method and system for enabling wireless data communications with electronic devices having disparate operating systems |
IL125846A0 (en) * | 1998-08-19 | 1999-04-11 | Emony | Incremental program update |
US6564369B1 (en) | 1998-08-20 | 2003-05-13 | Pearson Technical Software, Inc. | Conflict checking using configuration images |
US6952823B2 (en) * | 1998-09-01 | 2005-10-04 | Pkware, Inc. | Software patch generator using compression techniques |
US6256664B1 (en) * | 1998-09-01 | 2001-07-03 | Bigfix, Inc. | Method and apparatus for computed relevance messaging |
US7197534B2 (en) * | 1998-09-01 | 2007-03-27 | Big Fix, Inc. | Method and apparatus for inspecting the properties of a computer |
US6263362B1 (en) | 1998-09-01 | 2001-07-17 | Bigfix, Inc. | Inspector for computed relevance messaging |
US7246150B1 (en) | 1998-09-01 | 2007-07-17 | Bigfix, Inc. | Advice provided for offering highly targeted advice without compromising individual privacy |
US8914507B2 (en) | 1998-09-01 | 2014-12-16 | International Business Machines Corporation | Advice provided for offering highly targeted advice without compromising individual privacy |
GB9819354D0 (en) * | 1998-09-04 | 1998-10-28 | Seiko Epson Corp | Pos terminal,method of controlling the pos terminal,pos system using the pos terminal and information storage medium |
US6836794B1 (en) * | 1998-09-21 | 2004-12-28 | Microsoft Corporation | Method and system for assigning and publishing applications |
US6289511B1 (en) | 1998-09-29 | 2001-09-11 | Telephonaktiebolaget Lm Ericsson | Method and system for distributing software in a telecommunications network |
US6553507B1 (en) * | 1998-09-30 | 2003-04-22 | Intel Corporation | Just-in-time software updates |
US6805634B1 (en) * | 1998-10-14 | 2004-10-19 | Igt | Method for downloading data to gaming devices |
US6427208B1 (en) * | 1998-10-20 | 2002-07-30 | Gateway, Inc. | Image file change capture method and apparatus |
US6066182A (en) | 1998-11-05 | 2000-05-23 | Platinum Technology Ip, Inc. | Method and apparatus for operating system personalization during installation |
US7028019B2 (en) | 1998-11-11 | 2006-04-11 | Wise Solutions, Inc. | Method and system of managing software conflicts in computer system that receive, processing change information to determine which files and shared resources conflict with one another |
US6266774B1 (en) * | 1998-12-08 | 2001-07-24 | Mcafee.Com Corporation | Method and system for securing, managing or optimizing a personal computer |
US20020073398A1 (en) * | 1998-12-14 | 2002-06-13 | Jeffrey L. Tinker | Method and system for modifying executable code to add additional functionality |
US7039673B1 (en) | 1998-12-24 | 2006-05-02 | Computer Associates Think, Inc. | Method and apparatus for dynamic command extensibility in an intelligent agent |
US6928469B1 (en) | 1998-12-29 | 2005-08-09 | Citrix Systems, Inc. | Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques |
US8726330B2 (en) | 1999-02-22 | 2014-05-13 | Touchtunes Music Corporation | Intelligent digital audiovisual playback system |
US7277919B1 (en) | 1999-03-19 | 2007-10-02 | Bigfix, Inc. | Relevance clause for computed relevance messaging |
US20050149921A1 (en) * | 1999-03-19 | 2005-07-07 | Rollins Douglas L. | Software module update |
USRE43690E1 (en) | 1999-03-22 | 2012-09-25 | Esdr Network Solutions Llc | Search engine request method, product, and apparatus |
US7188138B1 (en) | 1999-03-22 | 2007-03-06 | Eric Schneider | Method, product, and apparatus for resource identifier registration and aftermarket services |
US8037168B2 (en) * | 1999-07-15 | 2011-10-11 | Esdr Network Solutions Llc | Method, product, and apparatus for enhancing resolution services, registration services, and search services |
US6338082B1 (en) | 1999-03-22 | 2002-01-08 | Eric Schneider | Method, product, and apparatus for requesting a network resource |
US9141717B2 (en) | 1999-03-22 | 2015-09-22 | Esdr Network Solutions Llc | Methods, systems, products, and devices for processing DNS friendly identifiers |
US6438688B1 (en) | 1999-03-24 | 2002-08-20 | Dell Usa, L.P. | Method and computer for locally and remotely updating a basic input output system (BIOS) utilizing one update file |
US6591418B2 (en) | 1999-03-26 | 2003-07-08 | Dell U.S.A., L.P. | Factory software management system |
US6625622B1 (en) * | 1999-05-14 | 2003-09-23 | Eisenworld, Inc. | Apparatus and method for transfering information between platforms |
US7062765B1 (en) | 1999-05-25 | 2006-06-13 | Realnetworks, Inc. | System and method for updating information via a network |
US6996627B1 (en) | 1999-05-25 | 2006-02-07 | Realnetworks, Inc. | System and method for providing update information |
US6493594B1 (en) * | 1999-06-04 | 2002-12-10 | Lucent Technologies Inc. | System and method for improved software configuration and control management in multi-module systems |
AU3712300A (en) | 1999-06-11 | 2001-01-02 | Liberate Technologies | Hierarchical open security information delegation and acquisition |
US6467088B1 (en) | 1999-06-30 | 2002-10-15 | Koninklijke Philips Electronics N.V. | Reconfiguration manager for controlling upgrades of electronic devices |
FR2796482B1 (en) | 1999-07-16 | 2002-09-06 | Touchtunes Music Corp | REMOTE MANAGEMENT SYSTEM FOR AT LEAST ONE AUDIOVISUAL INFORMATION REPRODUCING DEVICE |
US6704824B1 (en) * | 1999-07-27 | 2004-03-09 | Inline Connection Corporation | Universal serial bus adapter with automatic installation |
US6324692B1 (en) * | 1999-07-28 | 2001-11-27 | Data General Corporation | Upgrade of a program |
US6574729B1 (en) * | 1999-08-26 | 2003-06-03 | Lucent Technologies Inc. | System for remotely identifying and providing information of unknown software on remote network node by comparing the unknown software with software audit file maintained on server |
USRE44207E1 (en) | 1999-09-01 | 2013-05-07 | Esdr Network Solutions Llc | Network resource access method, product, and apparatus |
GB9921720D0 (en) * | 1999-09-14 | 1999-11-17 | Tao Group Ltd | Loading object-oriented computer programs |
GB9921721D0 (en) * | 1999-09-14 | 1999-11-17 | Tao Group Ltd | Loading object-oriented computer programs |
JP2001084223A (en) * | 1999-09-16 | 2001-03-30 | Nec Corp | Method for remote and decentralized management of computer device |
US6754848B1 (en) * | 1999-09-30 | 2004-06-22 | International Business Machines Corporation | Method, system and program products for operationally migrating a cluster through emulation |
US6742025B2 (en) * | 1999-09-30 | 2004-05-25 | International Business Machines Corp. | System and method for server managed modification of operating system data stored within a network device |
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 |
US8434113B1 (en) | 1999-10-06 | 2013-04-30 | Tvworks, Llc | Electronic commerce using streaming media |
US6496977B1 (en) * | 1999-10-21 | 2002-12-17 | International Business Machines Corporation | Method and system for implementing network filesystem-based aid for computer operating system upgrades |
US6430481B1 (en) | 1999-10-28 | 2002-08-06 | General Electric Company | Remote verification of software configuration information |
DE19953837A1 (en) | 1999-11-09 | 2001-05-23 | Fresenius Medical Care De Gmbh | Software update for a medical device |
US7475428B2 (en) * | 2002-06-20 | 2009-01-06 | Angel Secure Networks, Inc. | Secure detection network system |
AU2044801A (en) * | 1999-11-18 | 2001-05-30 | Netstock Direct Corporation | Method and apparatus for aggregated securities brokerage service |
JP3655152B2 (en) * | 1999-11-29 | 2005-06-02 | 富士通株式会社 | Software editing apparatus and storage medium |
US6631606B2 (en) | 2000-01-18 | 2003-10-14 | Dell Products L.P. | System and method for accommodating atypical customer requirements in a mass customization manufacturing facility |
US6892104B2 (en) * | 2000-01-18 | 2005-05-10 | Dell Products L.P. | System and method for manufacturing products according to customer orders |
US6711798B2 (en) | 2000-01-18 | 2004-03-30 | Dell Products L.P. | Method for manufacturing products according to customer orders |
FR2805377B1 (en) | 2000-02-23 | 2003-09-12 | Touchtunes Music Corp | EARLY ORDERING PROCESS FOR A SELECTION, DIGITAL SYSTEM AND JUKE-BOX FOR IMPLEMENTING THE METHOD |
US7010781B1 (en) * | 2000-02-15 | 2006-03-07 | Sun Microsystems, Inc. | Methods and apparatus for managing debugging I/O |
FR2805060B1 (en) | 2000-02-16 | 2005-04-08 | Touchtunes Music Corp | METHOD FOR RECEIVING FILES DURING DOWNLOAD |
FR2805072B1 (en) | 2000-02-16 | 2002-04-05 | Touchtunes Music Corp | METHOD FOR ADJUSTING THE SOUND VOLUME OF A DIGITAL SOUND RECORDING |
US7028251B2 (en) * | 2000-03-02 | 2006-04-11 | Iora, Ltd. | System and method for reducing the size of data difference representations |
US20050015608A1 (en) | 2003-07-16 | 2005-01-20 | Pkware, Inc. | Method for strongly encrypting .ZIP files |
US7844579B2 (en) | 2000-03-09 | 2010-11-30 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US6879988B2 (en) | 2000-03-09 | 2005-04-12 | Pkware | System and method for manipulating and managing computer archive files |
US20060173848A1 (en) * | 2000-03-09 | 2006-08-03 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US8230482B2 (en) | 2000-03-09 | 2012-07-24 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US8959582B2 (en) | 2000-03-09 | 2015-02-17 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
GB2361784A (en) * | 2000-04-28 | 2001-10-31 | 3Com Corp | Automatic installation of software in a network |
US6904592B1 (en) | 2000-04-28 | 2005-06-07 | Gilbarco Inc. | Software download system for automatic retrieval of warranty and commission data |
GB2362064A (en) * | 2000-05-04 | 2001-11-07 | Marconi Comm Ltd | Switching of software in a communications system |
US6785713B1 (en) | 2000-05-08 | 2004-08-31 | Citrix Systems, Inc. | Method and apparatus for communicating among a network of servers utilizing a transport mechanism |
US6789112B1 (en) | 2000-05-08 | 2004-09-07 | Citrix Systems, Inc. | Method and apparatus for administering a server having a subsystem in communication with an event channel |
US6785726B1 (en) | 2000-05-08 | 2004-08-31 | Citrix Systems, Inc. | Method and apparatus for delivering local and remote server events in a similar fashion |
US6922724B1 (en) | 2000-05-08 | 2005-07-26 | Citrix Systems, Inc. | Method and apparatus for managing server load |
FR2808906B1 (en) | 2000-05-10 | 2005-02-11 | Touchtunes Music Corp | DEVICE AND METHOD FOR REMOTELY MANAGING A NETWORK OF AUDIOVISUAL INFORMATION REPRODUCTION SYSTEMS |
JP2001331321A (en) * | 2000-05-22 | 2001-11-30 | Canon Inc | Information processor, method and system for processing information and medium |
US6912711B1 (en) | 2000-05-25 | 2005-06-28 | International Business Machines Corporation | Method of applying an update to a contained collection of program and data files based upon versions |
JP3852269B2 (en) * | 2000-05-29 | 2006-11-29 | セイコーエプソン株式会社 | A system that automatically collects content that exists on the network |
US6574747B2 (en) * | 2000-06-02 | 2003-06-03 | Microsoft Corporation | Extensible execute in place (XIP) architecture and related methods |
FR2811175B1 (en) | 2000-06-29 | 2002-12-27 | Touchtunes Music Corp | AUDIOVISUAL INFORMATION DISTRIBUTION METHOD AND AUDIOVISUAL INFORMATION DISTRIBUTION SYSTEM |
US6941353B1 (en) * | 2000-06-29 | 2005-09-06 | Auran Holdings Pty Ltd | E-commerce system and method relating to program objects |
FR2811114B1 (en) | 2000-06-29 | 2002-12-27 | Touchtunes Music Corp | DEVICE AND METHOD FOR COMMUNICATION BETWEEN A SYSTEM FOR REPRODUCING AUDIOVISUAL INFORMATION AND AN ELECTRONIC ENTERTAINMENT MACHINE |
KR100455566B1 (en) * | 2000-06-30 | 2004-11-09 | 인터내셔널 비지네스 머신즈 코포레이션 | Device and method for updating code |
US6980313B2 (en) * | 2000-07-11 | 2005-12-27 | Imran Sharif | Fax-compatible internet appliance |
US20030115167A1 (en) * | 2000-07-11 | 2003-06-19 | Imran Sharif | Web browser implemented in an Internet appliance |
US7245291B2 (en) | 2000-07-11 | 2007-07-17 | Imran Sharif | System and method for internet appliance data entry and navigation |
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 |
US6498937B1 (en) | 2000-07-14 | 2002-12-24 | Trw Inc. | Asymmetric bandwidth wireless communication techniques |
US6981252B1 (en) | 2000-07-14 | 2005-12-27 | Symantec Corporation | Method and apparatus for automatically uninstalling software on a network |
US9135393B1 (en) | 2000-08-02 | 2015-09-15 | Smiths Medical Asd, Inc. | Processing program data for medical pumps |
US20020124245A1 (en) * | 2000-08-14 | 2002-09-05 | Alvin Maddux | Method and apparatus for advanced software deployment |
US6571201B1 (en) * | 2000-08-18 | 2003-05-27 | Gilbarco Inc. | Remote-access fuel dispenser using a data type aware mark-up language |
WO2002023328A2 (en) * | 2000-09-12 | 2002-03-21 | Infolibria, Inc. | Managing distribution and local execution of computing resources |
FR2814085B1 (en) | 2000-09-15 | 2005-02-11 | Touchtunes Music Corp | ENTERTAINMENT METHOD BASED ON MULTIPLE CHOICE COMPETITION GAMES |
US7237123B2 (en) * | 2000-09-22 | 2007-06-26 | Ecd Systems, Inc. | Systems and methods for preventing unauthorized use of digital content |
CA2435624C (en) * | 2000-09-22 | 2013-05-07 | Richard B. Levine | Systems and methods for preventing unauthorized use of digital content |
US6866587B1 (en) | 2000-09-25 | 2005-03-15 | Auran Holdings Pty Ltd. | Wide area real-time software environment |
US7120675B1 (en) * | 2000-09-26 | 2006-10-10 | Microsoft Corporation | Information location service |
US8556698B2 (en) | 2000-10-19 | 2013-10-15 | Igt | Executing multiple applications and their variations in computing environments |
US6645077B2 (en) * | 2000-10-19 | 2003-11-11 | Igt | Gaming terminal data repository and information distribution system |
US8636596B2 (en) | 2000-11-04 | 2014-01-28 | Igt | Dynamic player notices for operational changes in gaming machines |
US9251647B2 (en) * | 2000-10-19 | 2016-02-02 | Igt | Remote configuration of gaming terminals |
US20040180721A1 (en) * | 2000-12-21 | 2004-09-16 | Igt | Gaming terminal data repository and information distribution system |
USRE47599E1 (en) | 2000-10-20 | 2019-09-10 | Promega Corporation | RF point of sale and delivery method and system using communication with remote computer and having features to read a large number of RF tags |
US20020183882A1 (en) | 2000-10-20 | 2002-12-05 | Michael Dearing | RF point of sale and delivery method and system using communication with remote computer and having features to read a large number of RF tags |
AU2002211769B2 (en) | 2000-10-20 | 2006-10-26 | Promega Corporation | Radio frequency identification method and system of distributing products |
US7032015B1 (en) * | 2000-10-31 | 2006-04-18 | General Electric Company | System and method for integrating a power system over a network |
US8479189B2 (en) | 2000-11-17 | 2013-07-02 | Hewlett-Packard Development Company, L.P. | Pattern detection preprocessor in an electronic device update generation system |
US7409685B2 (en) | 2002-04-12 | 2008-08-05 | Hewlett-Packard Development Company, L.P. | Initialization and update of software and/or firmware in electronic devices |
US7519731B1 (en) * | 2000-12-01 | 2009-04-14 | Juniper Networks, Inc. | Comparing configuration information for a data forwarding device |
US7574481B2 (en) * | 2000-12-20 | 2009-08-11 | Microsoft Corporation | Method and system for enabling offline detection of software updates |
DE10065418A1 (en) * | 2000-12-27 | 2002-07-18 | Siemens Ag | Integration procedure for automation components |
US20020087668A1 (en) * | 2000-12-29 | 2002-07-04 | San Martin Raul S. | Automatic upgrade of live network devices |
EP1237078A1 (en) * | 2001-01-19 | 2002-09-04 | Siemens Aktiengesellschaft | Execution of a time-optimised exchange of a software application |
US7343560B1 (en) * | 2001-01-22 | 2008-03-11 | Novell, Inc. | Method and system for generating dynamic images |
US7186181B2 (en) * | 2001-02-02 | 2007-03-06 | Igt | Wide area program distribution and game information communication system |
US7647411B1 (en) | 2001-02-26 | 2010-01-12 | Symantec Corporation | System and method for controlling distribution of network communications |
WO2002069108A2 (en) | 2001-02-26 | 2002-09-06 | Eprivacy Group, Inc. | System and method for controlling distribution of network communications |
US6505094B2 (en) | 2001-03-05 | 2003-01-07 | Dell Products L.P. | System and method for shipping items from a distribution facility |
US6816746B2 (en) | 2001-03-05 | 2004-11-09 | Dell Products L.P. | Method and system for monitoring resources within a manufacturing environment |
US6560509B2 (en) | 2001-03-05 | 2003-05-06 | Dell Products L.P. | System and method for automated management of a distribution facility |
US6529797B2 (en) | 2001-03-05 | 2003-03-04 | Dell Products L.P. | System and method for automatically releasing collections of goods for shipment |
US6634506B2 (en) | 2001-03-05 | 2003-10-21 | Dell Products L.P. | Reusable container management system and method |
US6611727B2 (en) | 2001-03-05 | 2003-08-26 | Dell Products L.P. | Method and system for simulating production within a manufacturing environment |
US6615092B2 (en) | 2001-03-05 | 2003-09-02 | Dell Products L.P. | Method, system and facility for controlling resource allocation within a manufacturing environment |
DE10111393A1 (en) * | 2001-03-09 | 2002-09-26 | Rexroth Indramat Gmbh | Remote control programming procedures |
US20040015953A1 (en) * | 2001-03-19 | 2004-01-22 | Vincent Jonathan M. | Automatically updating software components across network as needed |
EP1243998B1 (en) * | 2001-03-21 | 2017-04-19 | Excalibur IP, LLC | A technique for license management and online software license enforcement |
TW518513B (en) * | 2001-03-28 | 2003-01-21 | Synq Technology Inc | System and method to update an executing application software by modular way |
US7512940B2 (en) * | 2001-03-29 | 2009-03-31 | Microsoft Corporation | Methods and apparatus for downloading and/or distributing information and/or software resources based on expected utility |
US7734285B2 (en) * | 2001-04-03 | 2010-06-08 | Qualcomm Incorporated | Method and apparatus for network initiated uninstallation of application program over wireless network |
US7209973B2 (en) * | 2001-04-09 | 2007-04-24 | Swsoft Holdings, Ltd. | Distributed network data storage system and method |
WO2002084484A2 (en) | 2001-04-18 | 2002-10-24 | Domosys Corporation | Method of remotely upgrading firmware in field-deployed devices |
US20020156877A1 (en) * | 2001-04-23 | 2002-10-24 | Lu James C. | System and method for the duplication of a software system onto an appropriate target computer |
US7328453B2 (en) | 2001-05-09 | 2008-02-05 | Ecd Systems, Inc. | Systems and methods for the prevention of unauthorized use and manipulation of digital content |
US20020199044A1 (en) * | 2001-05-30 | 2002-12-26 | Joel Futterman | Method and apparatus for loading a mirror image software copy across circuit cards |
US20030005426A1 (en) * | 2001-06-08 | 2003-01-02 | Scholtens Dale A. | Methods and apparatus for upgrading software without affecting system service |
US20020188934A1 (en) * | 2001-06-12 | 2002-12-12 | Nortel Networks Limited | Method and system for upgrading existing firmware on third party hardware |
US7571166B1 (en) * | 2001-06-19 | 2009-08-04 | Click Acquisitions, Inc. | Virtual private supply chain |
US20030014745A1 (en) * | 2001-06-22 | 2003-01-16 | Mah John M. | Document update method |
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 |
US6549980B2 (en) | 2001-07-19 | 2003-04-15 | Dell Pruducts L.P. | Manufacturing process for software raid disk sets in a computer system |
US20040205587A1 (en) * | 2001-08-07 | 2004-10-14 | Draper Stephen P.W. | System and method for enumerating arbitrary hyperlinked structures in which links may be dynamically calculable |
US20030033303A1 (en) * | 2001-08-07 | 2003-02-13 | Brian Collins | System and method for restricting access to secured data |
US8301587B2 (en) * | 2001-08-21 | 2012-10-30 | Hewlett-Packard Development Company, L.P. | Internet enabled computer system management |
US7228537B2 (en) * | 2001-09-06 | 2007-06-05 | International Business Machines Corporation | System and method for configuring an application |
US20030055932A1 (en) * | 2001-09-19 | 2003-03-20 | Dell Products L.P. | System and method for configuring a storage area network |
US7614048B1 (en) * | 2001-09-28 | 2009-11-03 | At&T Intellectual Property I, L.P. | System and method for automated software distribution in a fiber optic network |
US20030069950A1 (en) * | 2001-10-04 | 2003-04-10 | Adc Broadband Access Systems Inc. | Configuration server updating |
US7162710B1 (en) * | 2001-11-01 | 2007-01-09 | Microsoft Corporation | Dynamic modifications to a heterogeneous program in a distributed environment |
US7624391B2 (en) * | 2001-11-05 | 2009-11-24 | Hewlett-Packard Development Company, L.P. | Device-based model for software driver delivery and upgrade |
US7672249B2 (en) * | 2001-12-13 | 2010-03-02 | Cisco Technology, Inc. | Configurable network appliance |
US6636857B2 (en) | 2001-12-18 | 2003-10-21 | Bluecurrent, Inc. | Method and system for web-based asset management |
US7565402B2 (en) | 2002-01-05 | 2009-07-21 | Eric Schneider | Sitemap access method, product, and apparatus |
US7165250B2 (en) * | 2002-01-15 | 2007-01-16 | International Business Machines Corporation | System and method for priority based application server updates |
US20030140128A1 (en) * | 2002-01-18 | 2003-07-24 | Dell Products L.P. | System and method for validating a network |
US9134989B2 (en) | 2002-01-31 | 2015-09-15 | Qualcomm Incorporated | System and method for updating dataset versions resident on a wireless device |
US8135843B2 (en) * | 2002-03-22 | 2012-03-13 | Citrix Systems, Inc. | Methods and systems for providing access to an application |
US7007036B2 (en) * | 2002-03-28 | 2006-02-28 | Lsi Logic Corporation | Method and apparatus for embedding configuration data |
US7430590B1 (en) * | 2002-04-17 | 2008-09-30 | Everdream Corporation | Method and system to manage services for multiple managed computer systems |
US20030229561A1 (en) * | 2002-04-25 | 2003-12-11 | Foliofn, Inc. | Method and apparatus for converting collectively owned investment accounts and pooled investment accounts and vehicles into individually owned accounts |
EP1361509B1 (en) * | 2002-05-08 | 2013-07-10 | Sap Ag | Software delivery manager |
US8291407B2 (en) * | 2002-06-12 | 2012-10-16 | Symantec Corporation | Systems and methods for patching computer programs |
US8447963B2 (en) | 2002-06-12 | 2013-05-21 | Bladelogic Inc. | Method and system for simplifying distributed server management |
GB0214303D0 (en) * | 2002-06-21 | 2002-07-31 | Koninkl Philips Electronics Nv | Server side configuration management |
US8230026B2 (en) | 2002-06-26 | 2012-07-24 | Research In Motion Limited | System and method for pushing information between a host system and a mobile data communication device |
US20070208574A1 (en) * | 2002-06-27 | 2007-09-06 | Zhiyu Zheng | System and method for managing master data information in an enterprise system |
US7386834B2 (en) | 2002-06-28 | 2008-06-10 | Sun Microsystems, Inc. | Undo/redo technique for token-oriented representation of program code |
US20040006763A1 (en) * | 2002-06-28 | 2004-01-08 | Van De Vanter Michael L. | Undo/redo technique with insertion point state handling for token-oriented representation of program code |
US20040010786A1 (en) * | 2002-07-11 | 2004-01-15 | Microsoft Corporation | System and method for automatically upgrading a software application |
US6962306B2 (en) * | 2002-07-15 | 2005-11-08 | West Ronald R | Units for storing flexible elongated objects |
US9646339B2 (en) | 2002-09-16 | 2017-05-09 | Touchtunes Music Corporation | Digital downloading jukebox system with central and local music servers |
US8332895B2 (en) | 2002-09-16 | 2012-12-11 | Touchtunes Music Corporation | Digital downloading jukebox system with user-tailored music management, communications, and other tools |
US11029823B2 (en) | 2002-09-16 | 2021-06-08 | Touchtunes Music Corporation | Jukebox with customizable avatar |
US8151304B2 (en) | 2002-09-16 | 2012-04-03 | Touchtunes Music Corporation | Digital downloading jukebox system with user-tailored music management, communications, and other tools |
US7822687B2 (en) | 2002-09-16 | 2010-10-26 | Francois Brillon | Jukebox with customizable avatar |
US8584175B2 (en) | 2002-09-16 | 2013-11-12 | Touchtunes Music Corporation | Digital downloading jukebox system with user-tailored music management, communications, and other tools |
US8103589B2 (en) | 2002-09-16 | 2012-01-24 | Touchtunes Music Corporation | Digital downloading jukebox system with central and local music servers |
US10373420B2 (en) | 2002-09-16 | 2019-08-06 | Touchtunes Music Corporation | Digital downloading jukebox with enhanced communication features |
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 |
US20040083471A1 (en) * | 2002-10-21 | 2004-04-29 | Lg Electronics Inc. | Method of upgrading system software of a home appliance |
US9092286B2 (en) | 2002-12-20 | 2015-07-28 | Qualcomm Incorporated | System to automatically process components on a device |
US20040127202A1 (en) * | 2002-12-31 | 2004-07-01 | Yi-Wen Shih | Method for remotely updating software for radio port |
US7373519B1 (en) | 2003-04-09 | 2008-05-13 | Symantec Corporation | Distinguishing legitimate modifications from malicious modifications during executable computer file modification analysis |
US7143115B2 (en) * | 2003-04-15 | 2006-11-28 | Pocket Soft, Inc. | Method and apparatus for finding differences between two computer files efficiently in linear time and for using these differences to update computer files |
WO2004097565A2 (en) * | 2003-04-24 | 2004-11-11 | Secureinfo Corporation | Data preservation across an enterprise |
US20040225282A1 (en) * | 2003-05-09 | 2004-11-11 | Ness Anton P. | Method and articles for assuring appropriate surgery |
US7620948B1 (en) * | 2003-08-29 | 2009-11-17 | Adobe Systems Incorporated | Client side software updating |
US8539063B1 (en) | 2003-08-29 | 2013-09-17 | Mcafee, Inc. | Method and system for containment of networked application client software by explicit human input |
US8555273B1 (en) | 2003-09-17 | 2013-10-08 | Palm. Inc. | Network for updating electronic devices |
US7472254B2 (en) * | 2003-10-10 | 2008-12-30 | Iora, Ltd. | Systems and methods for modifying a set of data objects |
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 |
US8713544B1 (en) | 2003-11-25 | 2014-04-29 | Symantec Corporation | Universal data-driven computer proxy |
US20050125489A1 (en) * | 2003-11-26 | 2005-06-09 | Hanes David H. | System and method for determining messages on a server as relating to at least one functional component of a client system |
US20050120106A1 (en) * | 2003-12-02 | 2005-06-02 | Nokia, Inc. | System and method for distributing software updates to a network appliance |
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 |
US20040133809A1 (en) * | 2003-12-16 | 2004-07-08 | Dahl Nathaniel H. | Method and system for automatically determining compatible and suitable hardware upgrades for computer hardware |
US7840968B1 (en) | 2003-12-17 | 2010-11-23 | Mcafee, Inc. | Method and system for containment of usage of language interfaces |
JP4354268B2 (en) * | 2003-12-22 | 2009-10-28 | 株式会社河合楽器製作所 | Signal processing device |
US9026701B2 (en) | 2003-12-30 | 2015-05-05 | Siebel Systems, Inc. | Implementing device support in a web-based enterprise application |
US7467378B1 (en) | 2004-02-09 | 2008-12-16 | Symantec Corporation | System state rollback after modification failure |
US8954336B2 (en) | 2004-02-23 | 2015-02-10 | Smiths Medical Asd, Inc. | Server for medical device |
US7783735B1 (en) * | 2004-03-22 | 2010-08-24 | Mcafee, Inc. | Containment of network communication |
US7478383B2 (en) * | 2004-03-23 | 2009-01-13 | Toshiba Corporation | System and method for remotely securing software updates of computer systems |
US8225304B2 (en) * | 2004-03-23 | 2012-07-17 | Kabushiki Kaisha Toshiba | System and method for remotely securing software updates of computer systems |
US7415653B1 (en) | 2004-04-21 | 2008-08-19 | Sun Microsystems, Inc. | Method and apparatus for vectored block-level checksum for file system data integrity |
US7424574B1 (en) | 2004-04-21 | 2008-09-09 | Sun Microsystems, Inc. | Method and apparatus for dynamic striping |
US7603568B1 (en) | 2004-04-21 | 2009-10-13 | Sun Microsystems, Inc. | Method and apparatus for self-validating checksums in a file system |
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 |
US8539469B2 (en) * | 2004-05-11 | 2013-09-17 | Microsoft Corporation | Efficient patching |
US7890946B2 (en) * | 2004-05-11 | 2011-02-15 | Microsoft Corporation | Efficient patching |
US7559058B2 (en) * | 2004-05-11 | 2009-07-07 | Microsoft Corporation | Efficient patching |
US7676804B2 (en) * | 2004-05-20 | 2010-03-09 | Caterpillar Inc. | Systems and method for remotely modifying software on a work machine |
US7526622B1 (en) | 2004-05-26 | 2009-04-28 | Sun Microsystems, Inc. | Method and system for detecting and correcting data errors using checksums and replication |
US7496586B1 (en) | 2004-05-26 | 2009-02-24 | Sun Microsystems, Inc. | Method and apparatus for compressing data in a file system |
US7281188B1 (en) * | 2004-05-26 | 2007-10-09 | Sun Microsystems, Inc. | Method and system for detecting and correcting data errors using data permutations |
US7412450B1 (en) | 2004-05-26 | 2008-08-12 | Sun Microsystems, Inc. | Method and apparatus for identifying tampering of data in a file system |
BRPI0511360A (en) * | 2004-06-21 | 2008-03-25 | Equestron Llc | process and apparatus for assessing an animal's health and performance |
US20060123229A1 (en) * | 2004-07-23 | 2006-06-08 | Holloway Robert L | Database integration platform for security systems |
US20060026587A1 (en) * | 2004-07-28 | 2006-02-02 | Lemarroy Luis A | Systems and methods for operating system migration |
US7530065B1 (en) * | 2004-08-13 | 2009-05-05 | Apple Inc. | Mechanism for determining applicability of software packages for installation |
US8526940B1 (en) | 2004-08-17 | 2013-09-03 | Palm, Inc. | Centralized rules repository for smart phone customer care |
US7437528B1 (en) | 2004-08-17 | 2008-10-14 | Sun Microsystems, Inc. | Gang blocks |
US7533225B1 (en) | 2004-08-17 | 2009-05-12 | Sun Microsystems, Inc. | Method and apparatus for enabling adaptive endianness |
US7873955B1 (en) | 2004-09-07 | 2011-01-18 | Mcafee, Inc. | Solidifying the executable software set of a computer |
US7890952B2 (en) * | 2004-10-07 | 2011-02-15 | International Business Machines Corporation | Autonomic peer-to-peer computer software installation |
US20060080257A1 (en) * | 2004-10-08 | 2006-04-13 | Level 3 Communications, Inc. | Digital content distribution framework |
US7979898B2 (en) * | 2004-11-10 | 2011-07-12 | Barclays Capital Inc. | System and method for monitoring and controlling software usage in a computer |
US20060168555A1 (en) * | 2005-01-21 | 2006-07-27 | Represas Ferrao Lucio E | Software development system and method |
US20060168577A1 (en) * | 2005-01-21 | 2006-07-27 | Melo Antonio A V | Software development system and method |
US7735062B2 (en) * | 2005-01-21 | 2010-06-08 | Outsystems—Software Em Rede, S.A. | Software development system and method |
US7930693B2 (en) * | 2005-04-04 | 2011-04-19 | Cisco Technology, Inc. | Method and system for accessing and launching a java based applet as a locally installed application |
US7603552B1 (en) * | 2005-05-04 | 2009-10-13 | Mcafee, Inc. | Piracy prevention using unique module translation |
US7856661B1 (en) | 2005-07-14 | 2010-12-21 | Mcafee, Inc. | Classification of software on networked systems |
US8626377B2 (en) | 2005-08-15 | 2014-01-07 | Innovative Global Systems, Llc | Method for data communication between a vehicle and fuel pump |
US7117075B1 (en) | 2005-08-15 | 2006-10-03 | Report On Board Llc | Driver activity and vehicle operation logging and reporting |
US9818120B2 (en) | 2015-02-20 | 2017-11-14 | Innovative Global Systems, Llc | Automated at-the-pump system and method for managing vehicle fuel purchases |
US20070079238A1 (en) * | 2005-10-05 | 2007-04-05 | Sbc Knowledge Ventures, L.P. | Computer executable graphical user interface engine, system, and method therefor |
US7873799B2 (en) * | 2005-11-04 | 2011-01-18 | Oracle America, Inc. | Method and system supporting per-file and per-block replication |
US7877554B2 (en) * | 2005-11-04 | 2011-01-25 | Oracle America, Inc. | Method and system for block reallocation |
US7930495B2 (en) * | 2005-11-04 | 2011-04-19 | Oracle America, Inc. | Method and system for dirty time log directed resilvering |
US7925827B2 (en) * | 2005-11-04 | 2011-04-12 | Oracle America, Inc. | Method and system for dirty time logging |
US7865673B2 (en) * | 2005-11-04 | 2011-01-04 | Oracle America, Inc. | Multiple replication levels with pooled devices |
US20070106868A1 (en) * | 2005-11-04 | 2007-05-10 | Sun Microsystems, Inc. | Method and system for latency-directed block allocation |
US8635190B2 (en) * | 2005-11-04 | 2014-01-21 | Oracle America, Inc. | Method and system for pruned resilvering using a dirty time log |
US7716519B2 (en) * | 2005-11-04 | 2010-05-11 | Oracle America, Inc. | Method and system for repairing partially damaged blocks |
US7689877B2 (en) * | 2005-11-04 | 2010-03-30 | Sun Microsystems, Inc. | Method and system using checksums to repair data |
US8549051B2 (en) * | 2005-11-04 | 2013-10-01 | Oracle America, Inc. | Unlimited file system snapshots and clones |
US7899989B2 (en) * | 2005-11-04 | 2011-03-01 | Oracle America, Inc. | Method and system for using a block allocation policy |
US7480684B2 (en) * | 2005-11-04 | 2009-01-20 | Sun Microsystems, Inc. | Method and system for object allocation using fill counts |
US7743225B2 (en) * | 2005-11-04 | 2010-06-22 | Oracle America, Inc. | Ditto blocks |
US8495010B2 (en) * | 2005-11-04 | 2013-07-23 | Oracle America, Inc. | Method and system for adaptive metadata replication |
US20070112895A1 (en) * | 2005-11-04 | 2007-05-17 | Sun Microsystems, Inc. | Block-based incremental backup |
US7596739B2 (en) * | 2005-11-04 | 2009-09-29 | Sun Microsystems, Inc. | Method and system for data replication |
US7716445B2 (en) * | 2005-11-04 | 2010-05-11 | Oracle America, Inc. | Method and system for storing a sparse file using fill counts |
US8938594B2 (en) * | 2005-11-04 | 2015-01-20 | Oracle America, Inc. | Method and system for metadata-based resilvering |
US20070168975A1 (en) * | 2005-12-13 | 2007-07-19 | Thomas Kessler | Debugger and test tool |
US8495613B2 (en) * | 2005-12-22 | 2013-07-23 | Microsoft Corporation | Program execution service windows |
US7757269B1 (en) | 2006-02-02 | 2010-07-13 | Mcafee, Inc. | Enforcing alignment of approved changes and deployed changes in the software change life-cycle |
US7895573B1 (en) | 2006-03-27 | 2011-02-22 | Mcafee, Inc. | Execution environment file inventory |
US7870387B1 (en) | 2006-04-07 | 2011-01-11 | Mcafee, Inc. | Program-based authorization |
US8352930B1 (en) * | 2006-04-24 | 2013-01-08 | Mcafee, Inc. | Software modification by group to minimize breakage |
US8555404B1 (en) | 2006-05-18 | 2013-10-08 | Mcafee, Inc. | Connectivity-based authorization |
US8209676B2 (en) | 2006-06-08 | 2012-06-26 | Hewlett-Packard Development Company, L.P. | Device management in a network |
US20070288389A1 (en) * | 2006-06-12 | 2007-12-13 | Vaughan Michael J | Version Compliance System |
US20070289028A1 (en) * | 2006-06-12 | 2007-12-13 | Software Spectrum, Inc. | Time Bound Entitlement for Digital Content Distribution Framework |
US7831966B2 (en) * | 2006-06-29 | 2010-11-09 | Xerox Corporation | Automated patch detection notification process |
WO2008014454A2 (en) | 2006-07-27 | 2008-01-31 | Hewlett-Packard Development Company, L.P. | User experience and dependency management in a mobile device |
US8074213B1 (en) | 2006-08-11 | 2011-12-06 | Symantec Operating Corporation | Automatic software updates for computer systems in an enterprise environment |
US7584229B2 (en) * | 2006-10-31 | 2009-09-01 | Sun Microsystems, Inc. | Method and system for priority-based allocation in a storage pool |
US7840657B2 (en) * | 2006-10-31 | 2010-11-23 | Oracle America, Inc. | Method and apparatus for power-managing storage devices in a storage pool |
US7783847B2 (en) | 2006-10-31 | 2010-08-24 | Oracle America Inc. | Method and system for reallocating blocks in a storage pool |
US8462914B2 (en) * | 2006-12-22 | 2013-06-11 | Vitalclick Llc | Automated incident response method and system |
US9424154B2 (en) | 2007-01-10 | 2016-08-23 | Mcafee, Inc. | Method of and system for computer system state checks |
US8332929B1 (en) | 2007-01-10 | 2012-12-11 | Mcafee, Inc. | Method and apparatus for process enforced configuration management |
US9171419B2 (en) | 2007-01-17 | 2015-10-27 | Touchtunes Music Corporation | Coin operated entertainment system |
US9330529B2 (en) | 2007-01-17 | 2016-05-03 | Touchtunes Music Corporation | Game terminal configured for interaction with jukebox device systems including same, and/or associated methods |
US7710275B2 (en) | 2007-03-16 | 2010-05-04 | Promega Corporation | RFID reader enclosure and man-o-war RFID reader system |
US9953481B2 (en) | 2007-03-26 | 2018-04-24 | Touchtunes Music Corporation | Jukebox with associated video server |
RU2438263C2 (en) | 2007-06-19 | 2011-12-27 | Квэлкомм Инкорпорейтед | Methods and apparatus for dataset synchronisation in wireless environment |
CA2637168C (en) | 2007-07-11 | 2015-12-01 | Jeb Stuart Thorley | Method and system for version independent software release management |
US20090064134A1 (en) * | 2007-08-30 | 2009-03-05 | Citrix Systems,Inc. | Systems and methods for creating and executing files |
US8230412B2 (en) | 2007-08-31 | 2012-07-24 | Apple Inc. | Compatible trust in a computing device |
EP2203815B1 (en) | 2007-09-20 | 2015-08-12 | Uniloc Luxembourg S.A. | Installing protected software product using unprotected installation image |
US8332887B2 (en) | 2008-01-10 | 2012-12-11 | Touchtunes Music Corporation | System and/or methods for distributing advertisements from a central advertisement network to a peripheral device via a local advertisement server |
US10290006B2 (en) | 2008-08-15 | 2019-05-14 | Touchtunes Music Corporation | Digital signage and gaming services to comply with federal and state alcohol and beverage laws and regulations |
US7792882B2 (en) * | 2007-09-27 | 2010-09-07 | Oracle America, Inc. | Method and system for block allocation for hybrid drives |
US8195931B1 (en) | 2007-10-31 | 2012-06-05 | Mcafee, Inc. | Application change control |
US8683458B2 (en) * | 2007-11-30 | 2014-03-25 | Red Hat, Inc. | Automatic full install upgrade of a network appliance |
JP5132292B2 (en) * | 2007-12-07 | 2013-01-30 | キヤノン株式会社 | Information processing apparatus and information processing method |
US8276136B2 (en) * | 2007-12-11 | 2012-09-25 | Red Hat, Inc. | Transparent configuration of a network appliance |
US8589592B2 (en) * | 2007-12-11 | 2013-11-19 | Red Hat, Inc. | Efficient object distribution |
US8515075B1 (en) | 2008-01-31 | 2013-08-20 | Mcafee, Inc. | Method of and system for malicious software detection using critical address space protection |
US8615502B2 (en) | 2008-04-18 | 2013-12-24 | Mcafee, Inc. | Method of and system for reverse mapping vnode pointers |
US8095728B2 (en) * | 2008-04-18 | 2012-01-10 | Oracle America, Inc. | Method and system for power aware I/O scheduling |
US8418164B2 (en) * | 2008-05-29 | 2013-04-09 | Red Hat, Inc. | Image install of a network appliance |
US8037279B2 (en) * | 2008-06-12 | 2011-10-11 | Oracle America, Inc. | Method and system for cross-domain data sharing |
US8135907B2 (en) * | 2008-06-30 | 2012-03-13 | Oracle America, Inc. | Method and system for managing wear-level aware file systems |
WO2010005569A1 (en) | 2008-07-09 | 2010-01-14 | Touchtunes Music Corporation | Digital downloading jukebox with revenue-enhancing features |
US20100070965A1 (en) * | 2008-09-15 | 2010-03-18 | Justin Britten | Software Update Service with Compatibility Checking |
US8544003B1 (en) | 2008-12-11 | 2013-09-24 | Mcafee, Inc. | System and method for managing virtual machine configurations |
US8453141B1 (en) | 2009-01-29 | 2013-05-28 | Symantec Corporation | High performance install update |
US8005929B1 (en) | 2009-02-27 | 2011-08-23 | Symantec Operating Corporation | Software update checking method |
US8438624B2 (en) * | 2009-03-03 | 2013-05-07 | Hewlett-Packard Development Company, L.P. | Systems and methods of modifying system resources |
KR101748448B1 (en) | 2009-03-18 | 2017-06-16 | 터치튠즈 뮤직 코포레이션 | Entertainment server and associated social networking services |
US10719149B2 (en) | 2009-03-18 | 2020-07-21 | Touchtunes Music Corporation | Digital jukebox device with improved user interfaces, and associated methods |
US10564804B2 (en) | 2009-03-18 | 2020-02-18 | Touchtunes Music Corporation | Digital jukebox device with improved user interfaces, and associated methods |
US9292166B2 (en) | 2009-03-18 | 2016-03-22 | Touchtunes Music Corporation | Digital jukebox device with improved karaoke-related user interfaces, and associated methods |
US8438558B1 (en) | 2009-03-27 | 2013-05-07 | Google Inc. | System and method of updating programs and data |
US20100325446A1 (en) * | 2009-06-19 | 2010-12-23 | Joseph Martin Mordetsky | Securing Executable Code Integrity Using Auto-Derivative Key |
US20100332320A1 (en) * | 2009-06-24 | 2010-12-30 | Joseph Martin Mordetsky | Systems and Methods for Providing Conditional Authorization to Operate Licensed Software |
US20100332331A1 (en) * | 2009-06-24 | 2010-12-30 | Craig Stephen Etchegoyen | Systems and Methods for Providing an Interface for Purchasing Ad Slots in an Executable Program |
US8239852B2 (en) * | 2009-06-24 | 2012-08-07 | Uniloc Luxembourg S.A. | Remote update of computers based on physical device recognition |
US8280858B2 (en) * | 2009-06-29 | 2012-10-02 | Oracle America, Inc. | Storage pool scrubbing with concurrent snapshots |
US8381284B2 (en) | 2009-08-21 | 2013-02-19 | Mcafee, Inc. | System and method for enforcing security policies in a virtual environment |
US8341627B2 (en) | 2009-08-21 | 2012-12-25 | Mcafee, Inc. | Method and system for providing user space address protection from writable memory area in a virtual environment |
US8769296B2 (en) | 2009-10-19 | 2014-07-01 | Uniloc Luxembourg, S.A. | Software signature tracking |
US9552497B2 (en) | 2009-11-10 | 2017-01-24 | Mcafee, Inc. | System and method for preventing data loss using virtual machine wrapped applications |
CA2881456A1 (en) | 2010-01-26 | 2011-08-04 | Touchtunes Music Corporation | Digital jukebox device with improved user interfaces, and associated methods |
US8925101B2 (en) | 2010-07-28 | 2014-12-30 | Mcafee, Inc. | System and method for local protection against malicious software |
US8938800B2 (en) | 2010-07-28 | 2015-01-20 | Mcafee, Inc. | System and method for network level protection against malicious software |
US8769341B2 (en) * | 2010-08-26 | 2014-07-01 | Futurewei Technologies, Inc. | System and method for transmitting data using incremental remediation |
US8549003B1 (en) | 2010-09-12 | 2013-10-01 | Mcafee, Inc. | System and method for clustering host inventories |
US9075993B2 (en) | 2011-01-24 | 2015-07-07 | Mcafee, Inc. | System and method for selectively grouping and managing program files |
US9112830B2 (en) | 2011-02-23 | 2015-08-18 | Mcafee, Inc. | System and method for interlocking a host and a gateway |
US8930717B2 (en) | 2011-03-01 | 2015-01-06 | Angel Secure Networks, Inc. | Secure processing module and method for making the same |
US9058482B2 (en) | 2011-03-01 | 2015-06-16 | Angel Secure Networks, Inc. | Controlling user access to electronic resources without password |
US9594881B2 (en) | 2011-09-09 | 2017-03-14 | Mcafee, Inc. | System and method for passive threat detection using virtual memory inspection |
GB2522772B (en) | 2011-09-18 | 2016-01-13 | Touchtunes Music Corp | Digital jukebox device with karaoke and/or photo booth features, and associated methods |
US8694738B2 (en) | 2011-10-11 | 2014-04-08 | Mcafee, Inc. | System and method for critical address space protection in a hypervisor environment |
US9069586B2 (en) | 2011-10-13 | 2015-06-30 | Mcafee, Inc. | System and method for kernel rootkit protection in a hypervisor environment |
US8973144B2 (en) | 2011-10-13 | 2015-03-03 | Mcafee, Inc. | System and method for kernel rootkit protection in a hypervisor environment |
US8800024B2 (en) | 2011-10-17 | 2014-08-05 | Mcafee, Inc. | System and method for host-initiated firewall discovery in a network environment |
US8713668B2 (en) | 2011-10-17 | 2014-04-29 | Mcafee, Inc. | System and method for redirected firewall discovery in a network environment |
WO2013068023A1 (en) * | 2011-11-10 | 2013-05-16 | Abb Technology Ag | Arrangement and method for distributing a control system engineering tool and/or a control application software |
US11151224B2 (en) | 2012-01-09 | 2021-10-19 | Touchtunes Music Corporation | Systems and/or methods for monitoring audio inputs to jukebox devices |
US8739272B1 (en) | 2012-04-02 | 2014-05-27 | Mcafee, Inc. | System and method for interlocking a host and a gateway |
JP2014013457A (en) * | 2012-07-03 | 2014-01-23 | Fujitsu Ltd | Patch determination program, patch determination method, and information processing device |
US9355228B2 (en) | 2012-07-13 | 2016-05-31 | Angel Secure Networks, Inc. | System and method for policy driven protection of remote computing environments |
US9390280B2 (en) | 2012-09-16 | 2016-07-12 | Angel Secure Networks, Inc. | System and method for obtaining keys to access protected information |
US9128792B2 (en) | 2012-09-28 | 2015-09-08 | Wal-Mart Stores, Inc. | Systems and methods for installing, managing, and provisioning applications |
US9317269B2 (en) | 2012-09-28 | 2016-04-19 | 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 |
US9235491B2 (en) | 2012-09-28 | 2016-01-12 | Wal-Mart Stores, Inc. | Systems and methods for installing, managing, and provisioning applications |
US9270660B2 (en) | 2012-11-25 | 2016-02-23 | Angel Secure Networks, Inc. | System and method for using a separate device to facilitate authentication |
US8973146B2 (en) | 2012-12-27 | 2015-03-03 | Mcafee, Inc. | Herd based scan avoidance system in a network environment |
SG10201609076XA (en) | 2013-01-28 | 2016-12-29 | Smiths Medical Asd Inc | Medication safety devices and methods |
US9720669B2 (en) * | 2013-05-30 | 2017-08-01 | The Boeing Company | Deployment of software across an enterprise system |
US9497079B2 (en) | 2013-06-13 | 2016-11-15 | Sap Se | Method and system for establishing, by an upgrading acceleration node, a bypass link to another acceleration node |
WO2015060857A1 (en) | 2013-10-24 | 2015-04-30 | Mcafee, Inc. | Agent assisted malicious application blocking in a network environment |
US10200345B2 (en) | 2013-10-29 | 2019-02-05 | Uniloc 2017 Llc | Electronic mail sender verification |
WO2015070070A1 (en) | 2013-11-07 | 2015-05-14 | Touchtunes Music Corporation | Techniques for generating electronic menu graphical user interface layouts for use in connection with electronic devices |
US9766874B2 (en) | 2014-01-09 | 2017-09-19 | Ford Global Technologies, Llc | Autonomous global software update |
US9398397B2 (en) | 2014-01-09 | 2016-07-19 | Ford Global Technologies, Llc | Secure manipulation of embedded modem connection settings through short messaging service communication |
US9524156B2 (en) | 2014-01-09 | 2016-12-20 | Ford Global Technologies, Llc | Flexible feature deployment strategy |
EP3123293A4 (en) | 2014-03-25 | 2017-09-27 | Touchtunes Music Corporation | Digital jukebox device with improved user interfaces, and associated methods |
US9323546B2 (en) | 2014-03-31 | 2016-04-26 | Ford Global Technologies, Llc | Targeted vehicle remote feature updates |
US9716762B2 (en) | 2014-03-31 | 2017-07-25 | Ford Global Technologies Llc | Remote vehicle connection status |
US9325650B2 (en) | 2014-04-02 | 2016-04-26 | Ford Global Technologies, Llc | Vehicle telematics data exchange |
US10140110B2 (en) | 2014-04-02 | 2018-11-27 | Ford Global Technologies, Llc | Multiple chunk software updates |
US10171630B2 (en) * | 2016-08-26 | 2019-01-01 | Amazon Technologies, Inc. | Executing remote commands |
US10417073B2 (en) | 2017-04-12 | 2019-09-17 | Bank Of America Corporation | Application server deployment system for domain generation and testing with an administrative server virtual machine and managed server virtual machines |
CN111373367A (en) | 2017-09-07 | 2020-07-03 | 惠普发展公司,有限责任合伙企业 | Operating system updates |
EP3685257A1 (en) * | 2017-09-21 | 2020-07-29 | Oracle International Corporation | Systems and methods for updating multi-tier cloud-based application stacks |
US10452375B1 (en) * | 2018-06-21 | 2019-10-22 | Microsoft Technology Licensing, Llc | Memory-efficient upgrade staging |
CN111796853A (en) * | 2020-07-16 | 2020-10-20 | 深圳市千分一智能技术有限公司 | Firmware upgrading method, system, equipment and computer storage medium |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4641274A (en) * | 1982-12-03 | 1987-02-03 | International Business Machines Corporation | Method for communicating changes made to text form a text processor to a remote host |
US4630234A (en) * | 1983-04-11 | 1986-12-16 | Gti Corporation | Linked list search processor |
US4558413A (en) * | 1983-11-21 | 1985-12-10 | Xerox Corporation | Software version management system |
US4748561A (en) * | 1984-05-14 | 1988-05-31 | Mark Brown | Method of protecting computer software |
JPS6226535A (en) * | 1985-07-22 | 1987-02-04 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | Correction of conversion table in program |
US4845665A (en) * | 1985-08-26 | 1989-07-04 | International Business Machines Corp. | Simulation of computer program external interfaces |
US4714996A (en) * | 1985-11-26 | 1987-12-22 | International Business Machines Corporation | Impact calculation for version management in a distributed information service |
JPH071482B2 (en) * | 1986-01-22 | 1995-01-11 | 株式会社日立製作所 | How to edit distributed files |
US4849879A (en) * | 1986-09-02 | 1989-07-18 | Digital Equipment Corp | Data processor performance advisor |
US4827399A (en) * | 1986-10-03 | 1989-05-02 | Nec Corporation | Common file system for a plurality of data processors |
US4866611A (en) * | 1987-01-29 | 1989-09-12 | International Business Machines Corporation | Method for automatically reconciling entries on two copies of independently maintained electronic calendars |
GB2203573A (en) * | 1987-04-02 | 1988-10-19 | Ibm | Data processing network with upgrading of files |
-
1988
- 1988-08-03 US US07/227,799 patent/US5155847A/en not_active Expired - Lifetime
- 1988-09-19 CA CA000577832A patent/CA1310131C/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107832067A (en) * | 2017-10-27 | 2018-03-23 | 维沃移动通信有限公司 | One kind applies update method, mobile terminal and computer-readable recording medium |
Also Published As
Publication number | Publication date |
---|---|
US5155847A (en) | 1992-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA1310131C (en) | Method and apparatus for updating software at remote locations | |
EP0632371B1 (en) | Process for configuration management | |
US7925718B2 (en) | Method and system for identifying and obtaining computer software from a remote computer | |
US5367667A (en) | System for performing remote computer system diagnostic tests | |
US6056786A (en) | Technique for monitoring for license compliance for client-server software | |
US6049671A (en) | Method for identifying and obtaining computer software from a network computer | |
US6067582A (en) | System for installing information related to a software application to a remote computer over a network | |
US6647532B1 (en) | Built-in automatic customer identifier when connecting to a vendor website | |
US7516367B1 (en) | Automated, distributed problem determination and upgrade planning tool | |
US20110139941A1 (en) | Method and apparatus for run-time incorporation of domain data configuration changes | |
JPH1091454A (en) | Method for executing software remotely | |
US20050027846A1 (en) | Automated electronic software distribution and management method and system | |
US20020046176A1 (en) | Method of and apparatus for updating a database using a recordable optical disc | |
US8296753B2 (en) | Upgrade service system | |
GB2349489A (en) | Identification, and streamlined access to online services | |
US20060112189A1 (en) | Method for tracking transport requests and computer system with trackable transport requests | |
US7281165B2 (en) | System and method for performing product tests utilizing a single storage device | |
US7188255B1 (en) | Software delivery system | |
JPH10320357A (en) | Certification server in user certification system, method for certifying the same and recording medium for the method | |
Cisco | Preparing to Install CiscoWorks | |
US20020073289A1 (en) | Method and system for backup copying | |
JPH07306795A (en) | Data base equivalent processor of duplex system computer | |
CN112506543B (en) | Multi-device software upgrading management method and system | |
JP3385928B2 (en) | Redundant distributed controller | |
CN115766798A (en) | Multi-platform operation data receiving and managing method, device, equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MKLA | Lapsed |