TickZoom/AutoUpdate

Auto Update Requirements and Design

Requirements for Auto-Update

  1. Auto-update must be simple and painless for customers who elect to enable auto-update.
  2. It must have a manual way for users to download and install who disable auto-update.
  3. It must require a unique key for download of the new engine for copy protection.
  4. The server must count the downloads of each version and restrict to 1.
  5. It must auto-update in the following situations: Regular check for a new patch or bug fix version. (users can decide whether to update or not.) Deadline is nearing expiration, server confirms payment. Deadline has passed expiration, server confirms payment. User downloads a new upgrade version of the software.
  6. TickZoom must allow downgrading as well as upgrading in case some issue in the newer version.

Design for Auto-Update

Dynamic Engine Loading

  1. Finished The TickZoomAPI Engine factory dynamically loads the engine when the platform starts up.
  2. Finished The engine factory finds all the DLLs in the current directory and asks for their name and version. Finished
  3. Finished The name and version comes from inside the DLL and not from the file name of the dll. Finished
  4. Finished The engine eliminates all but the latest version from the list. Finished
  5. Finished If there are more than one engine models remaining with the latest version: Finished
    1. It will favor Gold first.
    2. Then Silver
    3. The Pro.
    4. Then FREE.
  6. NEW If the load fails for any reason, the engine factory must report the error and try loading another engine based on the priority above.

Auto Update

  1. High MySQL database on the server has a row for each user with there unique software key.
  2. High The DB also has a table with rows for each user and version they downloaded already.
  3. High In app.config user can enable/disable the check for update feature. Default will be enabled.
  4. High Enable/disable of auto update must be an option in the GUI that changes the app.config setting.
  5. High At every startup check for update feature will send to the server the unique user key and current version.
  6. High The server responds with a version status. Out-of-date status means download available.
    1. Up-to-date
    2. Out-of-date
    3. Bad Key
    4. Payment arrears.
  7. High Server must offer download the best model of engine the user paid for. That means Gold, Silver, or Pro.

Auto Extend

  1. Low In app.config user can enable/disable the auto extend deadline feature. Default will be enabled.
  2. Low This feature will only exist in the paid versions of the Engine. FREE version only offers auto update.
  3. Finished When deadline is within 10 days, the log file will begin to warn that engine will expire in X days.
  4. Low When nearing expiration, the engine will also log the status of the auto-extend feature. Enabled or Disabled.
  5. Low If disabled, it will explain how to enable the feature.
  6. Low Enable/disable of auto extend must be an option in the GUI that changes the app.config setting.
  7. Low After the deadline has passed, the engine will have a 5 day grace period during which it will attempt to auto extend if enabled in the app.config setting.
  8. Finished After the grace period has expired, the engine will continue to attempt to auto extend but otherwise cease functioning.
  9. Low The auto extend feature must continue to work forever in all versions of the engine.

Billing Design

  1. Paypal checkout must update the site with the confirmation of payment.

Add comment