Senior Fitness - Exercise and Nutrition for Aging Men and Women
FREE Article Feed for your website.
Home Ownership Magazine
Party Planning Information
Article Marketing Resources
Bio-Medical Research Article Database
Informative Articles on Life, Love and Happiness
Tutorials on Business to Writing
Famous Quotes from Famous People
Song Lyric Information
New US Patent Information
Comprehensive List of Content by Category
Online Auctions and Shopping Related Articles
Article Search
Most Recent Articles
Title: Modulation circuit with integrated microelectro-mechanical system (MEMS) components
Patent Number: 7,417,511 Issued on 08/26/2008 to Menke

Title: Direct digital interpolative synthesis
Patent Number: 7,417,510 Issued on 08/26/2008 to Huang

Title: Spread spectrum modulation of a clock signal for reduction of electromagnetic interference
Patent Number: 7,417,509 Issued on 08/26/2008 to Kultgen

Title: Multiple RF path amplifiers
Patent Number: 7,417,508 Issued on 08/26/2008 to Quaglietta

Title: Bias circuit for power amplifier having a low degradation in distortion characteristics
Patent Number: 7,417,507 Issued on 08/26/2008 to Yamamoto,   et al.

Title: Amplifier having switchable negative feedback
Patent Number: 7,417,506 Issued on 08/26/2008 to Klein,   et al.

Title: CMOS amplifiers with frequency compensating capacitors
Patent Number: 7,417,505 Issued on 08/26/2008 to Forbes,   et al.

Title: Startup and shutdown click noise elimination for class D amplifier
Patent Number: 7,417,504 Issued on 08/26/2008 to Strydom,   et al.

Title: Method for high efficiency audio amplifier
Patent Number: 7,417,503 Issued on 08/26/2008 to Xu,   et al.

Title: Selectable power supply for audio amplifier
Patent Number: 7,417,502 Issued on 08/26/2008 to Cochrane

Title: Variable inductor, oscillator including the variable inductor and radio terminal comprising this oscillator, and amplifier including the variable inductor and radio terminal comprising this am
Patent Number: 7,417,501 Issued on 08/26/2008 to Fujimoto,   et al.

Title: Control of an adjustable gain amplifier
Patent Number: 7,417,500 Issued on 08/26/2008 to Arnott

Title: Gain controlled amplifier and cascoded gain controlled amplifier based on the same
Patent Number: 7,417,499 Issued on 08/26/2008 to Moon,   et al.

Title: PWM modulator and class-D amplifier having the same
Patent Number: 7,417,497 Issued on 08/26/2008 to Lee

Title: Demodulator circuit of RFID system
Patent Number: 7,417,496 Issued on 08/26/2008 to Kang,   et al.

Title: Reconfigurable frequency filter
Patent Number: 7,417,495 Issued on 08/26/2008 to Li

Title: Voltage generator in a flash memory device
Patent Number: 7,417,493 Issued on 08/26/2008 to Lee

Title: Internal voltage generator of semiconductor integrated circuit
Patent Number: 7,417,490 Issued on 08/26/2008 to Kim

Title: Regulation circuit for inductive charge pump
Patent Number: 7,417,488 Issued on 08/26/2008 to Ahmed,   et al.

Title: Overheat detecting circuit
Patent Number: 7,417,487 Issued on 08/26/2008 to Mori

Title: Voltage-current conversion circuit, amplifier, mixer circuit, and mobile appliance using the circuit
Patent Number: 7,417,486 Issued on 08/26/2008 to Koutani,   et al.

Title: Differential energy difference integrator
Patent Number: 7,417,485 Issued on 08/26/2008 to Vecera

Title: Level shifter with boost and attenuation programming
Patent Number: 7,417,484 Issued on 08/26/2008 to Voo

Title: Wide-band wide-swing CMOS gain enhancement technique and method therefor
Patent Number: 7,417,483 Issued on 08/26/2008 to Wong,   et al.

Title: Adaptive voltage scaling for an electronics device
Patent Number: 7,417,482 Issued on 08/26/2008 to Elgebaly,   et al.

Title: Controlling signal states and leakage current during a sleep mode
Patent Number: 7,417,481 Issued on 08/26/2008 to Ahsanullah,   et al.

Title: Duty cycle correction circuit whose operation is largely independent of operating voltage and process
Patent Number: 7,417,480 Issued on 08/26/2008 to Boerstler,   et al.

Title: Duty detection circuit and method for controlling the same
Patent Number: 7,417,479 Issued on 08/26/2008 to Kitayama

Title: Delay line circuit
Patent Number: 7,417,478 Issued on 08/26/2008 to Kim,   et al.

Title: Power-on-reset circuit with output reset to ground voltage during power off
Patent Number: 7,417,476 Issued on 08/26/2008 to Hung

Title: Circuit and method for generating power up signal
Patent Number: 7,417,475 Issued on 08/26/2008 to Byeon,   et al.

Title: Clock frequency division methods and circuits
Patent Number: 7,417,474 Issued on 08/26/2008 to Jamal

Title: Multi-channel integrated circuit
Patent Number: 7,417,472 Issued on 08/26/2008 to Tumer,   et al.

Title: Voltage comparator having hysteresis characteristics
Patent Number: 7,417,471 Issued on 08/26/2008 to Gong,   et al.

Title: Phase frequency detector with a novel D flip flop
Patent Number: 7,417,470 Issued on 08/26/2008 to Riley

Title: Compensation for leakage current from dynamic storage node variation by the utilization of an automatic self-adaptive keeper
Patent Number: 7,417,469 Issued on 08/26/2008 to Cheng,   et al.

Title: Dynamic and differential CMOS logic with signal-independent power consumption to withstand differential power analysis
Patent Number: 7,417,468 Issued on 08/26/2008 to Verbauwhede,   et al.

Title: Flip-flop circuit and frequency divider using the flip-flop circuit
Patent Number: 7,417,466 Issued on 08/26/2008 to Akahori

Title: N-domino output latch
Patent Number: 7,417,465 Issued on 08/26/2008 to Lundberg,   et al.

Title: Bi-directional signal transmission system
Patent Number: 7,417,464 Issued on 08/26/2008 to Crawford

Title: Wireline transmission circuit
Patent Number: 7,417,463 Issued on 08/26/2008 to Danesh,   et al.

Title: Variable external interface circuitry on programmable logic device integrated circuits
Patent Number: 7,417,462 Issued on 08/26/2008 to Wong,   et al.

Title: Multi-standard transmitter
Patent Number: 7,417,460 Issued on 08/26/2008 to De Laurentiis,   et al.

Title: On-die offset reference circuit block
Patent Number: 7,417,459 Issued on 08/26/2008 to Wilson,   et al.

Title: Gate driving circuit and display apparatus having the same
Patent Number: 7,417,458 Issued on 08/26/2008 to Ahn,   et al.

Title: Scalable non-blocking switching network for programmable logic
Patent Number: 7,417,457 Issued on 08/26/2008 to Pani,   et al.

Title: Dedicated logic cells employing sequential logic and control logic functions
Patent Number: 7,417,456 Issued on 08/26/2008 to Verma,   et al.

Title: Programmable function generator and method operating as combinational, sequential and routing cells
Patent Number: 7,417,455 Issued on 08/26/2008 to Verma,   et al.

Title: Low-swing interconnections for field programmable gate arrays
Patent Number: 7,417,454 Issued on 08/26/2008 to Rahman,   et al.

Title: System and method for dynamically executing a function in a programmable logic array
Patent Number: 7,417,453 Issued on 08/26/2008 to Goodnow,   et al.

Title: Techniques for providing adjustable on-chip termination impedance
Patent Number: 7,417,452 Issued on 08/26/2008 to Wang,   et al.

Title: Leakage power management with NDR isolation devices
Patent Number: 7,417,451 Issued on 08/26/2008 to Kawa

Title: Testing combinational logic die with bidirectional TDI-TMS/TDO chanel circuit
Patent Number: 7,417,450 Issued on 08/26/2008 to Whetsel

Title: Wafer stage storage structure speed testing
Patent Number: 7,417,449 Issued on 08/26/2008 to Posey,   et al.

Title: System to calibrate on-die temperature sensor
Patent Number: 7,417,448 Issued on 08/26/2008 to Lim,   et al.

Title: Probe cards employing probes having retaining portions for potting in a retention arrangement
Patent Number: 7,417,447 Issued on 08/26/2008 to Kister

Title: Probe for combined signals
Patent Number: 7,417,446 Issued on 08/26/2008 to Hayden,   et al.

Title: Probing method and prober for measuring electrical characteristics of circuit devices
Patent Number: 7,417,445 Issued on 08/26/2008 to Sakagawa,   et al.

Title: Method and apparatus for inspecting integrated circuit pattern
Patent Number: 7,417,444 Issued on 08/26/2008 to Shinada,   et al.

Title: Determination of effective resistance between a power sourcing equipment and a powered device
Patent Number: 7,417,443 Issued on 08/26/2008 to Admon,   et al.

Title: Method and apparatus for testing tunnel magnetoresistive effect element, manufacturing method of tunnel magnetoresistive effect element and tunnel magnetoresistive effect element
Patent Number: 7,417,442 Issued on 08/26/2008 to Hachisuka,   et al.

Title: Methods and systems for guarding a charge transfer capacitance sensor for proximity detection
Patent Number: 7,417,441 Issued on 08/26/2008 to Reynolds

Title: Methods and systems for the rapid detection of concealed objects
Patent Number: 7,417,440 Issued on 08/26/2008 to Peschmann,   et al.

Title: Impedance conversion circuit and integrated circuit including thereof
Patent Number: 7,417,439 Issued on 08/26/2008 to Hirabayashi,   et al.

Title: Battery voltage measurement apparatus
Patent Number: 7,417,438 Issued on 08/26/2008 to Miyamoto

Title: Vehicle battery testing assembly
Patent Number: 7,417,437 Issued on 08/26/2008 to Torres

Title: Selectable tap induction coil
Patent Number: 7,417,436 Issued on 08/26/2008 to Chesser,   et al.

Title: Method for generating a homogeneous magnetization in a spatial examination volume of a magnetic resonance installation
Patent Number: 7,417,435 Issued on 08/26/2008 to Diehl

Title: Magnetic resonance imaging system with iron-assisted magnetic field gradient system
Patent Number: 7,417,434 Issued on 08/26/2008 to Overweg

Title: Method, examination apparatus and antenna array for magnetic resonance data acquisition
Patent Number: 7,417,433 Issued on 08/26/2008 to Heid,   et al.

Title: Asymmetric ultra-short gradient coil for magnetic resonance imaging system
Patent Number: 7,417,432 Issued on 08/26/2008 to Overweg

Title: Coil array for magnetic resonance imaging with reduced coupling between adjacent coils
Patent Number: 7,417,431 Issued on 08/26/2008 to Lanz,   et al.

Title: Continuous moving-table MRI contrast manipulation and/or update of scanning parameters
Patent Number: 7,417,430 Issued on 08/26/2008 to Aldefeld,   et al.

Title: Moving table MRI with subsampling in parallel
Patent Number: 7,417,429 Issued on 08/26/2008 to Fuderer,   et al.

Title: Fibre tracking magnetic resonance imaging
Patent Number: 7,417,428 Issued on 08/26/2008 to Hoogenraad,   et al.

Method, system, apparatus and program product for distribution and instantiation of software upgrades Number:7,080,371 from the United States Patent and Trademark Office (PTO) owispatent

Home    Author Login    Submit Article    Article Search    Add Your Link    Edit Your Link    Contact Us    Advertising    Disclaimer

   

 
Web LinkGrinder.com

Top Breaking News
     Greek, Cypriot Leaders Resume Unification Talks in Nicosia by Nathan Morley
     Indonesia Tobacco Sales Grow, Raising Health Fears
     South Korea Allows Top Defector to Travel Overseas by VOA News

Title: Method, system, apparatus and program product for distribution and instantiation of software upgrades

Abstract: Distributing and instantiating software version upgrades in a distributed computing environment. This includes defining the required versions of software as the contents of a software version upgrade kit. This is written, e.g., as a table of contents or a list, to a database to generate software version upgrade kit tables. These tables are used to generate software version upgrade kits. The kits are then used as a source to download copies of the upgrade kits to clients to be upgraded. This enables upgrading the software on the client.

Patent Number: 7,080,371 Issued on 07/18/2006 to Arnaiz,   et al.


Inventors: Arnaiz; Gilberto (Redwood City, CA); Brodersen; Robert A. (Redwood City, CA); Chatterjee; Prashant (Saratoga, CA); Lim, III; Peter Siam Sy (Redwood City, CA); Wandless; Duane E. (Bloomsbury, NJ)
Assignee: Siebel Systems, Inc. (San Mateo, CA)
Appl. No.: 09/653,706
Filed: September 1, 2000


Current U.S. Class: 717/170 ; 717/168; 717/174
Current International Class: G06F 9/44 (20060101)
Field of Search: 717/101-103,120-123,168-178 709/230


References Cited [Referenced By]

U.S. Patent Documents
5155847 October 1992 Kirouac et al.
5473772 December 1995 Halliwell et al.
5579509 November 1996 Furtney et al.
5586304 December 1996 Stupek et al.
5613101 March 1997 Lillich
5666501 September 1997 Jones et al.
5684952 November 1997 Stein
5715462 February 1998 Iwamoto et al.
5752042 May 1998 Cole et al.
5845077 December 1998 Fawcett
5867714 February 1999 Todd et al.
5960204 September 1999 Yinger et al.
5999740 December 1999 Rowley
6282709 August 2001 Reha et al.
6324693 November 2001 Brodersen et al.
6385770 May 2002 Sinander
6418555 July 2002 Mohammed
Foreign Patent Documents
0802480 Oct., 1997 EP
0 811 942 Dec., 1997 EP
WO 98/40805 Sep., 1998 WO
WO 99/45465 Sep., 1999 WO
PCT/US99/04581 Jul., 2000 WO

Other References

Dictionary of Computing; Oxford University Press; 1996; pp. 149. cited by examiner .
M2 Communications, Siebel Announces Production Shipment of Siebel Enterprise Applications, Version 3.0, M2 Presswire, Feb. 28, 1997, p. 2. cited by other .
Arnaiz, G., et al., "Method, System, Apparatus and Program Product for Distribution and Instantiation of Software Upgrades", U.S. Appl. No. 60/076,667, filed Mar. 30, 1998, pp. 1-43, Figures 1-8. cited by other .
Anonymous, "Logging Status Information While Installing New Software," IBM Technical Disclosure Bulletin, IBM Corp., vol. 34, No. 1, Jun. 1991 p. 177, New York, USA. cited by other.

Primary Examiner: Chaki; Kakali
Assistant Examiner: Wood; William H.
Attorney, Agent or Firm: Soong; James W. Perkins Coie LLP

Parent Case Text



CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation and claims priority under 35 USC .sctn.120 and/or .sctn.365 to PCT International Application Ser. No. PCT/US99/04581 filed Mar. 3, 1999, which in turn claims priority to U.S. Provisional Application No. 60/076,667 filed Mar. 3, 1998, each of which is incorporated herein in its entirety by reference.
Claims



We claim:

1. A method for a server computer to distribute and install software upgrades on client computers, comprising: under control of the server computer, defining contents of software version upgrade kits of software installed on client computers, the software version upgrade kits each being self-contained and comprising files, actions, and an upgrade wizard to upgrade a software component from one version to another version; writing the contents of the software version upgrade kits to a database on the server computer as a table of contents, the table of contents showing for each of the upgrade kits the contents of that upgrade kit and any software components required for an upgrade using that upgrade kit; and for each of multiple client computers, comparing the table of contents of the software version upgrade kits to software installed on that client computer to determine one or more software version upgrade kits that will each effect an upgrade on that client computer from a version of a software component currently installed on that client computer to an updated software component version; and building copies of the determined software upgrade kits for that client computer from the table of contents; and for each of the multiple client computers, determining whether software components for a program that is currently running on that client computer are up-to-date; and when one or more software components of the program are not up-to-date, interrogating other installed software components on that client computer to determine the versions of those not-up-to-date software components that are installed on that client computer; notifying the server computer of the determined installed versions of the not-up-to-date software components on that client computer; downloading copies of software upgrade kits built on the server computer for that client computer to upgrade the not-up-to-date software components; for each of the downloaded software upgrade kits, invoking the upgrade wizard for that software upgrade kit on that client computer to upgrade one of the not-up-to-date software components on that client computer, the upgrade wizard performing the software component upgrade by performing the actions of the upgrade kit and using the files of the upgrade kit, the upgrade wizard keeping track of the upgrade's progress and, if an error is detected during the upgrade, automatically rolling back the changes and restoring the client computer to a pre-upgrade state; and after the upgrading of the not-up-to-date software components, restarting execution of the program so as to use the upgraded software components.

2. The method of claim 1 including: before the performing of an upgrade of a software component, creating a backup of local files; tracking progress of the performing of the upgrade; rolling back changes made during the performing after an error occurs; instantiating the local file backup; and restarting the upgrade from a save point.

3. The method of claim 1 comprising monitoring progress of the performing of an upgrade of a software component on a client from a server.

4. The method of claim 1 including downloading one or more upgrade kits for software components to a client computer before the upgrade of the software component is required on the client computer.

5. The method of claim 1 wherein the currently running program on the multiple client computers is database management software, and wherein the upgraded software components include database schemas.

6. A client-server computing system comprising a server computer and at least one client computer that periodically docks with the server computer, the server computer including a database management system and a database, the database being partially replicated from the server computer to the client computer during docking, the client-server system being configured to perform a method to apply upgrades from the server computer to software components resident on the client computer, the method comprising: defining contents of version upgrade kits that each include files and actions and an indication of an upgrade wizard to upgrade one or more software components from one version to another version, the software components to be upgraded by at least some of the upgrade kits including database schema for the partially replicated database on the client computer; writing the contents of the version upgrade kits to a database as a table of contents, the table of contents showing the contents of each upgrade kit and software components required by an upgrade using an upgrade kit; determining one or more software components for a currently running database management software program on the client computer that are not up-to-date, the database management software program interacting with the partially replicated database on the client computer, those one or more software components including at least one of the database schema for the partially replicated database on the client computer; retrieving identifications from the table of contents of one or more version upgrade kits to download from the server computer to the client computer to effect upgrades of the determined software components from installed versions to required versions, the identified upgrade kits including one or more of the at least some upgrade kits that upgrade the database schema for the partially replicated database on the client computer; building copies of the identified upgrade kits and of additional upgrade kits based on the table of contents, the additional upgrade kits for performing upgrades of software components on the client computer that are not needed for the database management software program; during docking of the client computer with the server computer, downloading copies of the built upgrade kits from the server computer to the client computer, each of the built upgrade kits being self-contained; invoking the upgrade wizard to perform upgrades on the client computer of at least the determined software components based on the downloaded upgrade kits, the upgrading of each software component including identifying a state of the upgrade for that component and performing at least some of the actions of the one or more upgrade kits for that software component based on the identified state, the upgrade wizard keeping track of the upgrade's progress and, if an error is detected during the upgrade, automatically rolling back the changes and restoring the client computer to a pre-upgrade state; after performing the software component upgrades, restarting the database management software program; and subsequent to the docking of the client computer with the server computer, determining that the client computer needs one or more of the software component upgrades corresponding to the additional upgrade kits and performing those one or more upgrades based on the previously downloaded additional upgrade kits.

7. The client-server computing system of claim 6 further configured to create on the client computer a backup of local files before applying the upgrades from the downloaded software upgrade kits, to track progress of an upgrade, and to, when an error occurs during the upgrade, roll back changes, instantiate the local files backup, and restart the upgrade from a save point.

8. The client-server computing system of claim 6 further configured to monitor progress of a software upgrade on the client computer from the server computer.
Description



FIELD OF THE INVENTION

This invention relates to a system, method, and program product for providing software updates online. The updates may be provided to one or more of a sequence of individual computers, or to a network of computers. In a preferred exemplification, the software updates are provided to individual clients in a client server-network, for example a client-server network of the type executing a partially replicated relational database or transaction processing system, an enterprise on a WAN or a LAN.

BACKGROUND OF THE INVENTION

Business enterprises utilize large numbers of terminals, i.e., desktop computers, portable computers, and network terminals to carry out their activities. While it is desirable that all of these terminals have identical images, interfaces, and software, this is not always possible when a continuum of terminal ages and capabilities exists in an enterprise. However, it is absolutely essential that the set of terminals in an enterprise be able to communicate effectively. This requires careful planning for and coordination of software migration efforts.

In a system including one or more central databases (including correspondence databases and such databases as are contemplated in groupware applications such as Lotus Notes, Novell GroupWise, and the like) and locally partially replicated databases, there is considerable amount of software which is often customized to meet the needs of particular enterprise, and even particular users and groups of users within elements of the enterprise. A great deal of effort is expended on configuring the software and writing custom modules and objects. If the software is upgraded to a new release, a considerable amount of programming time and effort are required to provide consistent upgrades while configuring the new release and reimplementing the customer-specific functionality of the earlier versions.

It is therefore desirable to provide a capability to provide a facility which allows enterprises to rapidly migrate their changes from one version of the software to another version of the software, such as configurations and objects.

It would be desirable to accomplish rapid migration of software upgrades in a user-friendly, on-line method through the use of on-line distribution of software upgrades.

OBJECTS OF THE INVENTION

It is an object of the invention to provide on-line distribution of software upgrades while satisfying the following business requirements:

It is a primary object of our invention to provide database schema synchronization.

It is a further object of our invention to provide support for all types of installations and terminals in an enterprise. That is, the sol, are provider or the upgrader, e.g., the database administrators must be able to upgrade all types of the installations in an enterprise, including connected clients, remote clients, regional servers and application servers.

It is a still further object of our invention to provide support for the upgrading of third party software.

It is still a further object of our invention to support both full and partial upgrades installed software in an enterprise.

An additional object is restartability. This means that the upgrade software must track the progress of upgrades and automatically roll back changes when an error occurs, and the upgrade software must also be able to restart the upgrade from the last save point.

An important object of the invention, especially in an enterprise characterized by heterogeneity and/or geographical dispersion is centralized definition and monitoring, upgrader, e.g., the database administrators must be able to easily define and distribute software and schema upgrades from a central location and to monitor the progress of upgrades across all installations.

The upgrade must be able to stand alone. This means that upgrades must be able to run by themselves, and not depend on other programs or data.

Finally, these objects must be attained and maintained while preserving ease of use and user friendliness.

SUMMARY OF THE INVENTION

These and other objects are objected by the method, apparatus, system, and program product of our invention.

Our invention provides software version upgrades and database schema synchronization. The software provider or upgrader, e.g., the database administrator, applies and distributes database schema changes to all remote databases including mobile databases and regional databases. Moreover, the software provider or upgrader, e.g., the database administrator, applies minor schema changes (e.g. database extensions), patches and major schema changes without manual intervention.

According to our invention, it is possible to provide sol, are version upgrade all types of installations. That is, the software provider or the upgrader, e.g., the database administrators is now able to upgrade all types of installations and terminals, including connected clients, remote clients, regional servers, and application servers.

One aspect of our invention is a method of distributing and instantiating software version upgrades in a distributed computing environment. This method includes setting the minimum (and maximum) levels of the version for installed software, and using those levels to define the contents of software version upgrade kits. The contents of the software version upgrade kits are then written to a database, e.g., as a table of contents or the like, and used top generate software version upgrade kit tables. These tables are used to build software version upgrade kits. Copies of the upgrade kits are downloaded to clients to be upgraded; and the software on the client is upgraded.

After the table of contents of the software upgrade kits is installed, it is compared to the locally installed software on a client, with the Software needing to be installed on the client to the client being downloaded to the client. This comparison can be at the startup of the server, the client, or a particular software component.

When the client is a mobile client the comparison and download are carried out at a docking session, with instantiation of the upgrade either during the current docking session or during a subsequent docking session.

In one exemplification of our invention the distributed computing environment is database management system having replicated or partially replicated databases, and the database schema version on the client is compared to the database schema version on server, with reinitialization of the database version on the client if the database schema version on the client and the server do not match, and synchronization of the database the client with the database on the server if the database schema versions on the client and server match.

According to our invention there is support for third party software. The software provider or upgrader, e.g., the database administrators is able to upgrade third party software that customer installation depend on. For example, the software provider, management information services supervisor, or upgrader, e.g. the database administrator, is able to upgrade Microsoft Word, Adobe Acrobat, Microsoft Access and the like residing on customer installations.

Full and partial upgrades are enabled according to the method and apparatus of our invention. Upgrader, e.g., the database administrator, s may upgrade all or part of an installation. For example, the upgrader, e.g., the database administrator, is able to distribute both a completely new installation and a patch for an existing installation such as a CDF file, an executable, a DLL, a report, and the like. In a like manner, upgrader, e.g., the database administrators is able to distribute upgrader for different languages.

These objects are attained while maintaining ease of use and user friendliness. In this regard, ease of use requires automatic detection of existing program and automatic invocation of upgrade programs, including clients and replication agents. The installation software must automatically detect when an upgrade is available and can be applied to the local installation, such that the user does not need to explicitly find and choose upgrades. User-friendliness requires that software upgrade programs must let the user cancel or defer upgrades. The software upgrade programs must keep the user informed on the status of upgrades, inform the user of pending upgrades, the user steps to be performed in an upgrade, time estimates for the upgrade, and progress indicators during the upgrades. This includes self upgrading, upgrades must be able to upgrade themselves, and upgrader, e.g., the database administrator, s must be able to distribute upgrades for the upgrade programs. User-friendliness also includes a requirement adaptivity. That is, the ability for individual users to use any method to install or update software components, whether using an upgrade wizard or not, upgrades should use current state of the software components to identify whether an upgrade is needed.

A related requirement is restartability. That means that the upgrade software must track the progress of upgrades and automatically roll back changes when an error occurs, and the upgrade software must also be able to restart the upgrade from the last save point.

A desirable property is the availability of early downloads. By this expedient, mobile users can download and apply upgrade kits to their local machines even before the upgrade is required. This lets mobile users download the upgrade when they have more time or have access to a fast network (e.g. visiting HQ).

A further desirable property is centralized definition and monitoring, upgrader, e.g., the database administrators must be able to easily define and distribute software and schema upgrades from a central location. Moreover, upgrader, e.g., the database administrator, s must be able to monitor the progress of upgrades across all installations. For example, the upgrader, e.g., the database administrator, must be able to find all installations that have applied an upgrade. This includes guaranteed delivery. All upgrades are distributed and applied to all installations. The upgrader, e.g., the database administrator, must not have to explicitly monitor the status of upgrades on every installation.

Our invention provides be support for Text and Production environments, upgrader, e.g., the database administrator, s must be able to configure and test upgrades in a test environment, and thereafter, easily migrate the changes to a production environment for distribution to all production users.

The upgrades applied by our invention are able to stand alone. This means that upgrade are able to run by themselves, and do not depend on other programs or data.

Installation of upgrades according to our invention requires minimal network traffic. It is important to minimize file transfers by sending upgrades to only the sites that need them. For example, application server upgrades are only sent to regional data installations. Microsoft Word upgrades are only sent to client installations.

THE FIGURES

Our invention may be understood by reference to the FIGURES and TABLES appended hereto.

FIG. 1 illustrates the process of defining software upgrades. As shown in the FIGURE, the administrator defines the upgrade kits, thereby generating upgrade kit files. Next, the client writes the upgrade kit definition to the server database resident in the database server, generating further upgrade kit files. The client also copies upgrade kit files to the file server. When the upgrade kit files are to be released, upgrade kit archive files are created.

FIG. 2 illustrates initiation and distribution of upgrades. In the process shown in FIG. 2 the administrator updates the required versions for a software item. This causes the database server, when started up, this causes the client to compare the required versions of the software with the locally installed versions for each software item. If an upgrade is required the client retrieves the upgrade kit archive file from the file server and invokes the upgrade wizard to apply the upgrade locally. Also, shown in FIG. 2 is upgrading of mobile users. In the case of mobile users an application server routes new required versions to mobile and regional users. After a docking session, the docking client compares the required versions to locally installed versions of the software. If an upgrade is required, the docking client retrieves the upgrade kit archive file from the file server and invokes the upgrade wizard to apply the upgrade the local machine.

FIG. 3 illustrates the upgrade procedures for customers. As shown in FIGURE upgrade distribution CD's or diskettes are created and shipped to customers. The customer upgrades a test environment, distributes new version of the software testing, and tests the software. If the test is satisfactory, the customer upgrades the new version to production users.

FIG. 4 is a data model for a remote upgrade. It shows the upgrade kit, a kit component, including a component, and a related component, a kit item and kit item argument, and a kit item type argument.

FIG. 5 Table I shows an enumeration of the valid actions for the upgrade kit items, such as copying files into directories, deleting files from directories, invoking stand-alone executables, running statements in SQL files, loading data, issuing ddl, and loading repository files.

DETAILED DESCRIPTION OF THE INVENTION

Implementation Overview

The definition of upgrades, the initiation and distribution of upgrades, and end-user level upgrading are illustrated in the FIGURES.

As shown in FIG. 1, the administrator, shown as the client (101) defines the upgrade kits. The client (101) writes this upgrade kit definition to a server database (103) resident in the database server, generating upgrade kit tables (104) in the server database (103). The step of defining the upgrade at the client (101) also generates upgrade kit files (102. The client copies these upgrade kit files (102) to the file server (105), for example, for subsequent downloading. When the upgrade kit files (106) are to be released, upgrade kit archive files are created.

FIG. 2 illustrates initiation and distribution of upgrades. In the process shown FIG. 2 the administrator (101) updates the required versions for a software item.

This causes the database server (103), with resident software component tables (104A), when started up, to compare the required versions of the software with the locally installed versions for each for each connected local user (211) for each software item. If an upgrade is required the local user (211) retrieves the upgrade kit archive file (106) from the file server (105) and invokes an upgrade wizard to apply the upgrade locally.

Also shown in FIG. 2 is upgrading of mobile users (215). In the case of mobile users (215) an application server (213) routes new required versions to mobile (215) and regional users. After a docking session, the docking client compares the required versions to locally installed versions of the software. If an upgrade is required, the docking client retrieves the upgrade kit archive file (106) from the file server (105) and invokes the upgrade wizard to apply the upgrade to the local machine (215).

FIG. 3 illustrates one set of test and distribution procedures for customers. As shown in FIG. 3, upgrade CD's or diskettes (307) are created in a master repository (305) and shipped to a test database server (303) for distribution to test users, including server test users (313), connected test users (311), and mobile test users (315). The test users (311, 313, and 315) upgrade their test environments, and the upgraded version of the software for testing. The customers (311, 313, 315) test the software. If the test is satisfactory, the newly upgraded version of the software is distributed to production users (4121, 413, 415).

FIG. 4 illustrates a data model for a remote upgrade. It shows the upgrade kit (1001), a kit component (1003), including a component (1005), and a related component (1007), a kit item (1009) and kit item argument (1011), and a kit item type (1013).

Software Components

The basic unit of upgrades is the software component. A software component is a set software that can be separately installed and tracked by upgrades. Each software component has a range of required versions. The software vendor, the MIS supervisor, or the upgrader, e.g., the database administrator, specifies the range of required for each software component. Examples of software components in, by way of exemplification only and not limitation, the Siebel Remote application are the Siebel Schema, the Siebel Client, the Siebel Server and Microsoft Word.

Upgrade Kits

The software vendor, MIS supervisor, or upgrader, e.g., the database administrator, creates upgrade kits to install or upgrade one or more software components. An upgrade kit is a collection of files and actions to upgrade one or more software components from one version to another (usually higher) version. To initiate an upgrade of a software component, the upgrader, for example, the upgrader, e.g., the database administrator, builds and releases an upgrade kit to install the new version of the software component. Then the upgrader, e.g., the database administrator, updates the software component's required versions to ensure that users upgrade to the new required version of the software component.

Automatic Upgrade Detection

At certain pre-defined times (e.g. client startup, before and after each synchronization session, before invoking a third party software component, when the Server starts up), system programs verify that software components for the currently running program are up-to-date. For example, in the case of Siebel Remote, the Siebel Client checks the versions of the Siebel Schema and Siebel Client components, but does not necessarily check the Siebel Server component. The server determines the currently installed version of a software component by interrogating the software component itself and comparing the installed versions against the required versions.

If any software component is not within the range of required versions, the server checks the versions of all software components and searches for one or more upgrade kits upgrade the out-of-date software components to the required versions. The server then informs the user of the required upgrades and prompts the user to perform the upgrade.

Upgrade Wizard

The server invokes an upgrade wizard to apply an upgrade kit. After invoking the upgrade wizard, the program exits so as to release any locks on database tables or files that need to be upgraded. For example, the client invokes the upgrade wizard and exits. The Server sends a shutdown messages to all currently active server components, waits for all server components to stop, invokes the upgrade wizard and exits.

The upgrade wizard is preferably a standalone single executable (no DLLs required) that can read and apply an upgrade kit to the local machine. The upgrade wizard keeps track of the upgrade's progress and automatically recovers from errors. For example, it creates a back up of the local database and local files while applying an upgrade kit. If an error occurs anytime during the upgrade, the upgrade wizard attempts to rollback all the changes and restores the local machine to the original state.

When the Client or Server starts, it detects whether an upgrade is in progress or has failed. If so, it informs the user and invokes the upgrade wizard to restart the upgrade. For the Client, if the user declines to restart the upgrade, the Client continues in read-only mode. In read-only mode, the client lets the user view data but prevents the user from modifying data. For the Server, if the upgrader, e.g., the database administrator, declines to restart the upgrade, the Server issues an error message and stops.

After successfully completing an upgrade, the software components on the local machine should be up-to-date. The upgrade wizard restarts the original program that invoked the upgrade.

Using Upgrades

This section describes the process for defining, distributing and applying an upgrade more detail.

Customize

The upgrader, e.g., the database administrator, uses tool programs and other programs to customize the database management system for their environment. The upgrader, e.g., the database administrator, has the capability to extend the database schema and customize client screens, report files and other files.

Define Upgrades

The Upgrader, e.g., the database administrator, defines the upgrade in the server database. This process consists of defining the software components and the upgrade kits needed to upgrade each software component to a specific version.

Define Software Components

The upgrader, e.g., the database administrator, uses a Software Component screen or tool to define new software components. A software component is a set of software that can be separately installed, tracked and de-installed by upgrades. As used herein, a software component has the following attributes: Name. A name to identify the software component. Required Versions. A range of versions, that is, the minimum and maximum versions, that must be installed on each machine. Locate Method. A specification of how to detect whether the software component is installed on a machine. For example, read the windows registry to identify where Microsoft Windows is installed on the local machine. Version Method. A specification of how to identify the current version of installed software component on a machine. For example, read the Windows registry to get the currently installed version of Microsoft Word on the local machine. "Compiled" component information. Information about the previously released version of the software component. For example Siebel Remote stores exactly two versions of software components. The user can view and manipulate the current version. Siebel Remote stores the previously released version in a LONG column in the software component table (i.e. S_UPG_COMP). The upgrader, e.g., the database administrator, uses the Component screen to copy the current version into the "compiled" LONG column. Schema. The schema is the database schema, also referred to as a meta-database. This includes the database tables, indexes, views, seed data and repository data that must be installed in the database to run. Client. The executables, dlls, reports, help files needed to run the client. CDF. The definition of a customer's configuration for the client. Server. The executables, dlls and other files needed to run the server. Upgrade wizard. The standalone executable that applies upgrade kits on machine.

For most end users, the predefined set of software components described above complete. If needed, the upgrader, e.g., the database administrator, can also define one software components that they want to distribute and apply to their users.

Define Upgrade Kits Using the Upgrade Kit Screen

In a preferred embodiment of our invention, the upgrader, e.g., the data administrator, uses an Upgrade Kit screen to define an upgrade kit to install one or more software components.

Each upgrade kit must contain all the files and commands needed to install the software components. For example, an upgrade kit can be used to install Microsoft Word 7.0.2 on all clients. This upgrade kit must contain all the files (e.g. executables, sample files, templates, etc.) and commands (e.g. update the registry, build short cuts, etc.) to install Microsoft Word 7.0.2. The upgrader, e.g., the database administrator, provides the following information when defining an upgrade kit: Upgrade kit information. Provide a name, a title and description of the upgrade kit. Upgrade kit items: The upgrader, e.g., the database administrator, defines a set of actions (or "items") that the upgrade wizard runs in sequence to apply the upgrade kit. Error! Reference source not found, shows a list of possible upgrade kit items. The upgrader, e.g., the database administrator, pre-creates the files for the upgrade kit and registers them with the upgrade kit. Required component versions. The upgrader, e.g., the database administrator, also defines the list of required software components that must be installed to apply the upgrade kit. For example, an upgrade kit to import data into the database might require that SQL Anywhere v5.5 be installed. Component versions to install. The upgrader, e.g., the database administrator, also defines the list of software components that the upgrade kit applies example, an upgrade kit to execute a file might install Microsoft Word 7.0.2. The Upgrade Kit screen provides a wizard to help creating upgrade kits at customer sites. The Upgrade Kit Wizard lets upgrader, e.g., the database administrator, create upgrade kits for software components that users can customize.

After the upgrader, e.g., the database administrator, finishes defining an upgrade, he or she saves the result, for example, by issuing a command, for example, pressing the "Release" button on the Siebel Upgrade Kit screen, to make the upgrade kit available to all installations. The command, for example, the button, does the following: Generates an upgrade wizard driver file for the upgrade kit. Creates an upgrade kit archive file and stores it in the file system. The archive file consists of the upgrade wizard driver file and all the files needed to apply the upgrade kit to a machine. Compiles the upgrade kit information into a "compiled" LONG column. This "compiled" column stores all the information needed by programs to find the upgrade kits. This "compiled" column is provided to reduce the time to find upgrade kits.

Deploy Upgrades

After defining the upgrade, the upgrader, e.g., the database administrator, then initiates the upgrade from the server database. Client programs at all locations automatically detect and apply the upgrades as needed.

Early Download of Upgrade Kits

After the upgrade kit is defined, it is possible to distribute the upgrade kit definitions associated files to mobile and regional databases. In this case mobile users can navigate to the Upgrade Kit screen and request that the database management system download the upgrade kit archive file in the next synchronization session. This lets mobile users download large upgrade kit archive files long before the upgrade kit needs to be applied to the local machine. For example, the mobile user may be visiting headquarters and can download the upgrade kit archive file in much less time over the LAN than over a modem.

Early download of upgrade kits is not mandatory for mobile users. The mobile user does not need to explicitly request the upgrade kit archive file: The database management software can automatically download the upgrade kit archive file if it needs to apply the upgrade kit and the upgrade kit archive file is not accessible on the local machine.

Initiate Upgrades

After defining software components and upgrade kits, the upgrader, e.g., the database administrator, can initiate an upgrade of the software component. The upgrader, e.g., the database administrator, must first set the required versions of the software component. There are two ways of setting the required versions: The first way is through the component screen. The upgrader, e.g., the database administrator, uses the component screen to manually update the required versions for a software component. He or she uses the screen to modify the minimum or maximum required version of one or more software components.

Alternatively, the upgrader, e.g., the database administrator, can utilize an Upgrade Kit screen. The upgrader, e.g., the database administrator, uses the Upgrade Kit screen update the required versions of a software component. The upgrader, e.g., the database administrator, selects an upgrade kit, and, initiates a function to set the required versions for example, in the case of Siebel Remote, the upgrader presses the "Set Required Versions" button. The button finds all the software components that the upgrade affects and sets their maximum versions. The maximum versions are set to the versions that the upgrade kit installs.

The upgrader, e.g., the database administrator, uses a component or similar screen to "release" the new software component information to all users. The upgrader, e.g., the database administrator, selects a software component and presses the "Release" button. The button reads all the information about the selected software component and related software components, verifies the information, writes the information to the "compiled" LONG column and logs a transaction to replicate the information to all databases.

Detect and Apply Upgrade Kits

Upgrade programs of our invention automatically detect an upgrade by comparing the currently installed version of each component to the required versions. The client reads the required versions from the software component "compiled" LONG column at start up. Servers also read the required versions from the software component "compiled" LONG column at start up.

For mobile users and regional databases, the upgrader, e.g., the database administrator, distributes the updated required versions to all remote databases. The docking client and Replication Agent query the docking server for the required schema versions before each synchronization session. If a change to the software component compiled column occurs during a synchronization session, the docking client and Replication Agent reads the required versions after the synchronization session.

If any of the versions do not match, then an upgrade is required and the program searches for one or more upgrade kits to apply, applies the upgrade kits in two steps: Download the upgrade kit archive file to the local machine Invoke the upgrade wizard to apply the upgrade kit to the local machine

For mobile and regional database installations, the docking client downloads the upgrade kit archive file from the server, typically the database server, to the local inbox directory. For connected users, the client downloads the upgrade kit archive file in the file system to the temp directory on the local disk.

After the upgrade kit is accessible on the local machine, the upgrade wizard applies the upgrade. The upgrade wizard extracts files from the upgrade kit archive file, then performs each of the upgrade kit actions in sequence. If an error occurs, the upgrade wizard rolls back the upgrade kit actions and displays an error to the user. The program detects and invokes upgrades again the next time.

After successfully completing all the upgrade kit actions, the upgrade wizard deletes the upgrade kit files from the local machine and restarts the program that invoked the upgrade.

Integration

The upgrade installation system uses a package, for example, Siebel Upgrades, to initialize and maintain remote databases. The upgrade wizard initializes new remote databases, performs database re-extracts, and handles database schema upgrades.

Extract Remote Databases--When extracting a remote database, Database Extract creates an upgrade kit archive file in the outbox directory. This database extract archive file consists of an upgrade wizard driver file and several items to initialize the local database: Create database. Copy the database template file (for mobile users) Snapshot data. Import a database snapshot file containing visible data for the mobile user Sql files. Execute a set of SQL files that create users and initialize data in the database.

Database Initialization

The client, Replication Agent, docking client and standalone Dbinit (database initialization) program invoke Dbinit to initialize a local database. Database initialization (Dbinit) ensures that all required versions exist on the local machine and creates a local database for the mobile client.

Dbinit performs these steps: Connect to Server. Dbinit prompts the user for the name of the local mobile client, the password for the mobile client and the address of the Remote Server (the mobile user should get this information from his or her upgrader, e.g., the MIS staff, the vendor, or the database administrator). Database initialization connects to the Remote server and validates the mobile client name, user and password. Perform version check and download upgrade kits. Dbinit then performs a version check to ensure that all required software components exist on the local machine. Dbinit first downloads the required versions (i.e. the compiled information) from the docking server. Dbinit compares the required versions against the versions on the local machine. If one or more versions do not match, then Dbinit downloads information about all (all? Not some?) upgrade kits. Dbinit then searches for upgrade kits to apply and downloads the upgrades kits to the local inbox directory. Download extract snapshot file. Dbinit downloads the database extract snapshot file to the local inbox directory. Create driver file. Dbinit creates an upgrade wizard driver file to apply the upgrade kits to the local machine and create the local database using the database extract snapshot file. Run upgrade wizard. Dbinit invokes the upgrade wizard to apply the upgrade kits and initialize the local database.

If the initialization is successful, the upgrade wizard then restarts the calling program.

Automatic Initialization from the Client

When a mobile user runs the client against the local database, the client checks whether the local database file exists. If the local database does not exist, the client prompts the user whether he wants to initialize a local database. If so, the Client invokes Dbinit to create the local database and also ensure that all software components are up-to-date.

Version Checking

At the beginning of each synchronization session, the docking client checks whether a database extract or a database schema upgrade is pending. This is because the docking client must perform a schema version check at the start of the docking session because the docking client must know whether it can upload transactions to the server database or must discard the transactions. The docking client also must know whether it must perform a dbinit to re-initialize the local database.

After the docking client connects to the docking server, the docking client asks docking server for the server database schema versions. There are three possible outcomes:

Major Schema Change. If the major and minor schema versions of the local database and the server database do not match, then a database re-initialization is "required". A change in the major or minor schema versions implies that the server database has undergone a major schema change. The docking client discards all pending transactions to upload. The docking client informs the mobile user and invokes the upgrade wizard to initialize the local database and upgrade sol, ware components (if any). If a database extract is not available, then the docking client displays an error asking the mobile user to contact the upgrader, e.g., the database administrator, to re-extract the docking client. Pending Dbinit, if there is no major schema change and the upgrader, e.g., the database administrator, has re-extracted the docking client, then the docking client must re-initialize the local database. The docking client saves all pending transactions to upload in a file in the inbox directory called dbinit.dx. The docking client invokes the upgrade wizard to create the new local database and upgrade any new software components. After initializing the local database, the upgrade wizard invokes the data merge utility (dmutl.exe) to apply the saved pending transactions in dbinit.dx to the local database. Dmutl.exe applies the transactions to the local database and logs new transactions to upload to the server database, as if the mobile user has re-entered all the transactions.

Minor Schema Change. If there is no major schema change and no pending dbinit, then the docking client proceeds to synchronize the docking client. Eventually, the docking client applies a transaction to upgrade the required versions of the Schema sol, are component. This update triggers the docking client to perform a version check and eventually causes the upgrade wizard apply an upgrade kit to upgrade the local database.

Initialize a Regional Database

The upgrader, e.g., the database administrator, on the regional database runs standalone database initialization program to initialize a regional database. The program connects to the Remote server and downloads the database extract archive file from outbox directory. The program then invokes the upgrade wizard to initialize the regional database.

Replace a Regional Database

If the upgrader, e.g., the database administrator, on the HQ server runs database extract for an existing regional database, the upgrader, e.g., the database administrator, on the regional database needs to re-initialize the regional database. At the beginning of the each synchronization session, a Replication Agent checks whether a database extract archive file is pending for the regional database. If so, the Replication Agent notifies the upgrader, e.g., the database administrator, and shuts down. The upgrader, e.g., the database administrator, must manually invoke the standalone database initialization program to initialize a regional database.

The Schema upgrade kit consists of one or more of the following items: DDL file to make schema changes DAT files to install seed data Repimexp files to install Repository SQL scripts to perform special upgrade steps, convert data, and the like SQL script to update version numbers in the S_APP_VER table Files to update software components. This includes adding, deleting and updating software component information. At the minimum, the file must update required versions of the components (e.g. you must use the new version of Tools against the new schema). Files to install upgrade kits that defines. For example, upgrade kits to install a new version of Tools, Server and the like.

Installing the Schema at Customer Sites

The upgrader, e.g., the database administrator, receives the CD, or other media, and applies the upgrade kit to the test/configuration database. Before applying the upgrade kit, the upgrader, e.g., the database administrator, first shuts down all programs: both connected users and Server instances. Then he or she runs the upgrade wizard to apply the upgrade kit to the test database.

The upgrade kit performs the following steps: Makes schema changes Imports seed data Runs repimexp.exe to import the new Repository Runs SQL scripts to perform special upgrade steps, convert data, and the like. Updates the version numbers. Runs files to update the software component tables. Runs files to install--defined upgrade kits.

Accessing the Database after an Upgrade

At this point, the test/configuration database has the new schema and the software component required versions are set to the new versions. Any program that connects to the server database needs to apply one or more upgrade kits to get to the new required versions. For example, when the upgrader, e.g., the database administrator, logs in to the server database, the software used to login should detect a version mismatch and attempt to upgrade or call the upgrade. The upgrader, e.g., the database administrator, has two options to upgrade to the new Tools version: If an upgrade kit is available, download the upgrade kit and apply it to the local machine.

Install the new version from the CD-ROM. Then, use the version against the server database, upgrader, e.g., the database administrator, must use this option if this is the first time they installed software on the local machine.

If the upgrader, e.g., the database administrator, wants to let programs perform upgrades, he or she can register upgrade kits to upgrade the various software components. Otherwise, he or she can manually upgrade each machine by installing from the CD-ROM.

Customizing and Testing

Upgrader, e.g., the database administrator, can customize local installations in these three ways:

Database extensions such as new extension tables, extension columns or indexes. Configuration changes such as new CDF files, CFG files or report files.

Third party software changes such as new versions of Microsoft Word, Adobe Acrobat and the like.

Customers follow a well-defined procedure for creating and distributing these kinds of customizations. All of these customizations do not cause a major schema change; hence, they do not require a database re-extract.

Step 1: Make the configuration changes on the server database The upgrader, e.g., the database administrator, uses programs to customize end-user installations for their site, and merge the customer's repository with a new repository.

To effect configuration changes during the version or schema upgrade, new .CDF files need to be generated. This is done using an editor to customize CFG files. And a DBMS program such as Microsoft Access to customize reports. Microsoft Help Editor or the like may be used to customize the Help files.

Programs in the upgrade kit compare versions and automatically detect the need to apply an upgrade the next time they start up. The method, apparatus, system, and program product of our invention upgrades connected users. In a similar way, the server upgrades application servers, or, when present, a docking client upgrades local databases. A Replication agent upgrades regional databases.

The method, apparatus, system, and program product of our invention downloads the required upgrade kits and applies the upgrade to the local machine. If the database upgrade changed the major or minor schema versions, the upgrade method, system, apparatus, and program product of our invention automatically re-initializes the mobile or regional database.

A further aspect of our invention is the automatic setting of the required versions software components. Alternatively, the upgrader, e.g., the database administrator can update the required versions and initiate upgrades of one or more software components. In a networked environment the upgrader, e.g., the database administrator, should be very careful when making changes to listing of required versions because updates to this file can cause programs at all locations to invoke upgrades.

In most cases, the application server is self-upgrading. That is, the upgrader, e.g., the database administrator, does not need to intervene to detect and apply an upgrade. However, there are exceptions. If the upgrade kit requires user intervention, then the upgrade software should wait until the upgrader, e.g., the database administrator, provides input.

Similarly, if a database extract is pending, for example, for a regional database, the server must shutdown all access to the regional database, ensure that the transaction merger has successfully merged all pending .dx files from mobile clients, and initiate a database initialization process to re-initialize the regional database.

The software upgrade programs of the invention automatically detect and apply upgrades as needed to maintain the correct software component versions on all machines. Users do not need to manually search for and apply upgrades. This is especially true of users connected on a LAN or WAN, who experience painless upgrades. The client automatically detects and applies upgrades as needed. If an upgrade is detected, the client notifies the user of the software components to upgrade, encourages the user to apply the upgrade and prompts the user to start the upgrade. The system automatically downloads the appropriate upgrade kits to the local disk if the upgrade kit does not already exist on the local disk.

After the upgrade kit is available on the local machine, the client invokes the upgrade wizard to apply the upgrade. The upgrade wizard displays the upgrade kit items prompts the user to start the upgrade. The upgrade wizard starts processing the upgrade kit items and regularly informs the user of the progress. When the upgrade wizard complete, it restarts the original program.

Mobile users also experience painless upgrades. Mobile users do not need to explicitly invoke database initialization. Attempting to start the Client against the local database with no local database available automatically invokes database initialization to create the local database. Dbinit also ensures that all software components are up-to-date on the local machine.

Mobile users can download upgrade kits earlier than necessary by navigating to the Upgrade Kit screen and requesting to download the upgrade kit archive file in the next synchronization session.

The upgrade software of our invention performs a version check at the start of each synchronization session. If an upgrade is detected, the client notifies the user of the software components to upgrade, encourages the user to apply the upgrade and prompts the user to start the upgrade, automatically downloads the appropriate upgrade kits to the local disk if the upgrade kit does not already exist on the local disk.

After the upgrade kit is available on the local machine, the client invokes the upgrade wizard to apply the upgrade. The upgrade wizard displays the upgrade kit items and prompts the user to start the upgrade. The upgrade wizard starts processing the upgrade kit items and regularly informs the user of the progress. When the upgrade wizard is complete, it restarts the original program.

If a re-initialization is required, the docking client invokes Dbinit to reinitialize the local database.

In one exemplification of our invention a component screen lets the upgrade


Free Web Sudoku Puzzles.
Solve with your browser.
1     2     5    
  4             1
3 6   9     2    
6 8       1      
    2 4   8 7    
      3       1 9
    1     7   3 4
4             2  
    6     3     8
What is it?



Add Your Site · Terms Of Service · Privacy Policy


DISCLAIMER
Linkgrinder is a free service that searches the Internet and indexes all files found so that you may search quickly and easily for shared files. These files are created and made available individually by users whose identity we are not aware of and who we have no control over. In essence we function like a search engine tool; these files ARE NOT STORED OR SERVED BY OUR NETWORK. We are not responsible for any materials obtained by using our service. We do not monitor any of the contents of these files. These files may contain viruses, illegal materials, materials inappropriate for minors, offensive files and the like. BY USING OUR SERVICE, YOU ASSUME FULL RESPONSIBILITY FOR DOWNLOADING THESE MATERIALS AND WILL INDEMNIFY US FOR ANY DAMAGES THAT MAY BE INCURRED.

For More Specific Information VIEW OUR TERMS OF SERVICE.

Thank you and Enjoy!