User's Guide - Chapter 6: TrueUpdate Servers

TrueUpdate Servers

One of the best features of TrueUpdate is that it uses standard server technology. It doesn’t require any proprietary hardware or software--all you need is a location where you can host the three server configuration files. These locations are called TrueUpdate Servers.

What Are TrueUpdate Servers?

In TrueUpdate, the term TrueUpdate Server refers to the location of your server configuration files. In other words, a TrueUpdate Server is any location where the TrueUpdate Client can download your server configuration files. This can be a standard HTTP server, a standard FTP server, or even a folder on your local area network.

The server configuration files allow the TrueUpdate Client to update its client-side data and executable files if newer versions are available, allow it to determine whether an update is required, and tell it the exact steps to take in order to perform the update. They are generated whenever you build a project. Once you upload the server configuration files to a location where the TrueUpdate Client can find them, that location becomes a TrueUpdate Server.

Tip: You can set up multiple, redundant TrueUpdate Servers by hosting the configuration files at more than one location.

Each TrueUpdate Client contains a list of all the locations where it can download the configuration files. The items in this list are also called TrueUpdate Servers. In this context, a TrueUpdate Server is the collection of settings that describe a location where the server configuration files can be found and the method that should be used to download them. These settings include a name that uniquely identifies the TrueUpdate Server along with the location (e.g. a URL) and any other connection details that are required to access the files, such as a username and password.

Tip: TrueUpdate can automatically upload your server configuration files to your TrueUpdate Servers via FTP, SFTP, or direct file copy. You can configure these automatic upload locations on the Upload tab of the Build Settings dialog, which you can access by choosing Publish > Settings from the program menu.

Types of TrueUpdate Servers

TrueUpdate provides a variety of methods for downloading server configuration files. All file access is handled using standard protocols--TrueUpdate doesn’t require any special hardware or specific types of servers.

Each download method is represented as a different "type" of TrueUpdate Server. The four types of TrueUpdate Servers are listed below.

HTTP Server

An HTTP TrueUpdate Server is a location (folder) on any Web server. For this type of server, the TrueUpdate Client will download the server configuration files from the Web site using the HTTP protocol. TrueUpdate uses Internet Explorer’s connection settings, so even if a client is behind a proxy server, they should have no problems provided they are able to use Internet Explorer successfully.

HTTPS Server

An HTTPS TrueUpdate Server is a location (folder) on a secure Web server. For this type of server, the TrueUpdate Client will download the server configuration files from the server using the HTTP protocol exchanged over an SSL (Secure Socket Layer)-encrypted session. This is known as the "secure hypertext transfer protocol." As with HTTP, TrueUpdate also uses Internet Explorer’s connection settings for HTTPS connections, so the same likelihood of achieving a successful connection across a proxy server exists for this method as well.

Note: This type of location requires that you have access to a secure Web server.

FTP Server

An FTP TrueUpdate Server is a location (folder) on an FTP server from which the TrueUpdate Client will download the server configuration files using FTP (file transfer protocol).

LAN/Local Server

As its name suggests, a LAN/Local server is a location (folder) either on a local drive, a mapped network drive, or a network path. In this case, the TrueUpdate Client copies the server configuration files from the TrueUpdate Server location on the network.

Note: This type of server is most useful when you are using TrueUpdate to update applications within your organization. Keep in mind that those without access to your local area network will be unable to download files from this type of TrueUpdate Server.

Adding, Removing and Editing Servers

All TrueUpdate Servers can be added and configured through the TrueUpdate Servers tab of the Project Settings dialog. You can access this dialog by choosing Project > TrueUpdate Servers from the program menu.

You can add a TrueUpdate Server by clicking the Add button and selecting the appropriate server type from the menu. Once you have selected a server type, a properties dialog will appear allowing you to specify how the server will be accessed. Each server’s properties depend upon what type of server was selected. With that in mind, properties generally include a unique name or identifier that is used to refer to the TrueUpdate Server, the folder path or address, and any other connection settings that are necessary to access it.

Once a TrueUpdate Server’s settings have been configured through its properties dialog, clicking OK adds it to the list on the TrueUpdate Servers tab. If the server’s settings need to be adjusted later, you can highlight the desired TrueUpdate Server and click the Edit button to open its properties dialog. Also, note that any TrueUpdate Server can be easily removed. Simply highlight the desired TrueUpdate Server and click the Remove button.

Note: TrueUpdate supports as many TrueUpdate Servers as you require.

TrueUpdate Server Redundancy

Although most updates can be served from a single location, many developers find it useful to have one or more backup servers in case of problems with the primary server. TrueUpdate makes this easy to accomplish by allowing you to set up multiple TrueUpdate Server locations.

TrueUpdate’s approach to handling redundancy is straightforward: simply add more TrueUpdate Server locations to the list, and see that the server configuration files are uploaded to those locations. If a server is unavailable for any reason, the TrueUpdate Client will move on to the next one until it can establish a connection and download the configuration files.

In fact, TrueUpdate is designed to support redundancy to any level. You can add as many TrueUpdate Server locations as you need, and you can mix the server types as well--for example, you could have a primary HTTPS server, followed by a pair of HTTP servers and an FTP server as backups.

Tip: If you’re designing an update for a mission critical application, use TrueUpdate’s support for redundancy to ensure that, given appropriate access to the Internet or your internal network, your TrueUpdate Client can always access a TrueUpdate Server.

By default, any project generated through the project wizard is designed to run through the list of TrueUpdate Servers defined in the project until the server configuration files have been downloaded successfully. In other words, if the first server fails, it will automatically try the next location. The default project achieves this functionality by using a TrueUpdate.GetUpdateServerList action to get a list of all of the servers, and then using a TrueUpdate.GetServerFile action to download the server configuration files from each TrueUpdate Server in turn.

While simply going through the list of TrueUpdate Servers in the order they are defined on the Project Settings dialog is the default behavior, this is by no means the only option available to you. Since the default server interaction is scripted, it is possible for you to modify it even further. For example, you may want to use different TrueUpdate Servers in specific cases. You could change the primary server for clients distributed in different geographic locations, for instance--letting the client automatically choose the appropriate TrueUpdate Server location whether it's run from North America, Europe, or Asia. By customizing the script, you can have full control over the entire process. This allows you to choose the best server for each particular client.

TrueUpdate Server Scalability

From the ground up, TrueUpdate was created to be fully scalable and fault-tolerant. In addition to being able to easily configure the client application to access redundant servers, you control the underlying server technology. Because TrueUpdate uses standard Internet protocols such as HTTP, HTTPS, FTP and LAN, you are free to take advantage of the full range of server technologies available to you. Unlike other update services that use proprietary server hardware and software, TrueUpdate allows you ultimate control over load-balancing and distributed processing of client/server requests.

Another exciting feature of TrueUpdate is the client’s ability to update itself with the newest client executable or data file. That way, if any changes are made to the client--such as an updated list of TrueUpdate Servers--these changes can be propagated through to the existing clients that have already been distributed. While we generally recommend not modifying the client after it has been distributed, this feature can be a lifesaver if you run into a situation where you require additional servers or need to change existing ones.

Note: In order for the client to update itself, it must be able to access at least one of its previously defined TrueUpdate Servers. In other words, you cannot simply update the TrueUpdate Server list on your end, switch servers entirely, and expect the client to update itself. Before the client makes use of any new servers, it must know what those new servers are.