Deploying Your Updates

Once you have updated your library or individual content collections, you need to deploy those updates so your end users can update their content. You will see that the process of deploying updates is in many ways much simpler than the initial deployment of your content.

Deploying Library Updates

After you have rebuilt your library (or part thereof) and the Library Manager has finished its work, you are ready to deploy your updates for your end users to access. You will notice in Figure 1 that the process of deploying updates to your end users looks very similar to deploying libraries. However, there are some key differences that actually simplify the update deployment process.

Figure 1. Library Update Deployment Process

Updating Your Library

If you distribute your updates in an Intranet (or your own company's intranet) environment, you may need to use the Library Installer utility (not GUI application) to update your library content. Whether this step is optional for you depends on your library's output directory and the directory the SDF is referencing to find your library content.

When you first install a library on your public NXT Online Server (and into the SDF on that server), you may have copied (or had Library Installer copy) your library files into a directory different from your library's output directory because your public NXT Online Server is different than your production or testing server. This is a typical installation scenario. However, you may also have NXT Online Server installed on your testing server so you can validate your library content before sending it out to your customers. In this case your library's output directory and the testing server's SDF reference directory may be the same. The process for updating your library content in both environments is different.

Directories are the Same

If your library's output and the SDF reference directories are the same, this means that the SDF that controls the structure of your site "looks" for your library collections in your library's output directory. If this is the case you must take your collections offline in the Content Network Manager (and save the changes) to execute a rebuild in the Library Manager. If you do not take the collections you want to rebuild offline, the Library Manager will be unable to rebuild those collections and will produce the error in the Build Progress dialog you see in Figure 2.

Figure 2. "Collection is Online" Rebuild Error

After Library Manager rebuilds the collections, you can put those collections back online (and save the changes) in the Content Network Manager. After you put the collection back online and refresh your browser, you can see your updated content on your site.

Directories are Different

If your library's output directory is different than the SDF reference directory, then you do not need to take your collections offline to rebuild them with Library Manager. The reason for this is that the collections that are online are a copy of those that you have in your output directory. Therefore, you rebuild different collections than those the SDF is referencing.

Instead, you must use the Library Installer utility to "update" the SDF reference collections after you rebuild with Library Manager. To update the SDF reference directory collections with Library Installer, you use the update command with the librarypath directed to the SDF reference directory, then use the /sp: option and directed at your library's output directory like this (you may have run a similar command when you first installed your library):

libinst.console update c:\...\SDF_reference_directory /sp:c:\...\update_files_folder

When you run this command, Library Installer toggles each collection offline in turn as it updates the collection then puts it back online upon completion. This process only affects those collections that require updating.

note icon You can also prevent Library Installer from reordering the nodes in your SDF if you reorganize them in your library, gather update files, new content collections, and completely rebuilt (as opposed to updated) content collections into a single location if they are not already there.

Validating Your Library Content

This is an optional step in deploying your updates, but a step you should consider to ensure the updates you send out are representative of you and your company. Since the Library Manager updates your library collections with the same information that the update files contain, you can deploy your entire library for validation or the individual content collections.

To validate your entire library, you can use the same procedure you did to validate your library for an initial deployment. However, you can also choose to validate only the content collections that you have updated. To do this you need access to the Content Network Manager. With this tool you can deploy the individual content collections in an online environment for validation purposes.

Collecting Update Files For Publication

The files that you need to collect for distributing updates are very similar to the files you need to collect for your initial deployment.

Content Collection Update Files

When you distribute your initial library content to your customers, you include all content collection files (.nxt files) in that distribution. To keep those customers' content up to date, you only need to distribute the update files (.upd files) associated with those collections. All update files that you need to distribute (place on your update servers) are in your library's output directory.

note icon If you completely rebuild a collection, meaning, if you choose Start collection over from the Content or right click menu, you will need to redistribute that complete content collection to your end users that you have distributed it to previously. If you do choose this menu option, the Library Manager displays the confirmation dialog in Figure 3.

Figure 3. "Start Collection Over" Confirmation Dialog

New Content Collection Files

If you add new content collections to your library after your initial deployment, you need to also place those content collections on the update server. If the content collections are very large, and may take too much time for customers to download from your update server, you can opt to create another initial deployment distribute those collections on a CD or DVD.

If you do distribute updates or new content collections on CD or DVD, your customers will need to run Library Installer command line utility with the update command to install these new content collections from the distribution media.

Since the Library Installer utility is not as user friendly as the Library Installer application (GUI), you can simplify the process for your customers of updating their content from a CD or DVD by creating a batch file that runs the utility and updates their library content. The command line syntax that would go in that batch file would look something like this:

libinst.console update <librarypath> /sp:c:\...\update_files_folder

Library Install File

The library install file contains a record of all updates for each content collection node in your library. Each time you execute a complete or partial build on your library, Library Manager updates this file with update files and version information. When your customers download files from your update server, the library install file indicates which updates to download and install on your customers' site.

User Interface Templates and Files

Once you have distributed your initial install package to a customer, you only need to update your interface templates and files if you modify them further after your distribution. However, if you do modify these templates and want to distribute them to your customers, you will need to distribute them on a CD or DVD and provide a method for integrating those files into your customer's site. That method may be a document of instructions or a batch file for automating the process. This would mean that you would have to know the install location of their NXT product. In an online environment this process is much more straightforward.

Distributing For Intranet and Offline Users

The main vehicle, if you will, for your intranet and offline users to update their library content is your update servers. Unless you add new content collections to your library which are too large to feasibly download, you distribute your update content to your update servers that you designate in your library properties. You customers will get their updates from your update servers.

To distribute your updated content, do the following:

  1. Copy all content collection update files (.upd files) onto your update server locations.
  2. Copy all new content collection files (.nxt files) to your update server locations (unless they are too big to download).
  3. Copy the library install file (Library.libinst) to your update servers.
  4. Ensure that your Update Server is available to service update requests.

Again, you may need to find a different method of distribution (CD or DVD) if you have multiple new content collections or if your content collections are very large and would require extensive download times. Also, you will want to create a batch file with the appropriate Library Installer utility command line statements to automate this process for your customers. You would need to provide similar methods for updating any interface templates and files.

Distributing For Internet Users

For Internet or intranet update deployments inside your firm, you deploy your updated content on an NXT Online Server. Distributing library collection updates on your NXT Online Server means that you have deployed your library on that server previously.

  1. Copy all content collection update files and library install file to the same directory you placed the original content collections on the NXT Online Server.
  2. Copy any updated user interface templates and files to the templates directory on the NXT Online Server.
  3. Update your library on the NXT Online Server with the Library Installer command line utility. (You may optionally use the Content Network Manager to add each content collection one at a time to your system.)

Library Installer takes each collection it updates individually offline to update it then turns it back online when it is finished updating that collection. Therefore, you will want to update your online library content during "off-peak" hours.

Deploying Individual Collection Updates

Just like deploying individual content collections, you deploy their update counterparts in an online environment with the Content Network Manager. NXT 4 offers you three different methods for deploying updates to individual content collections. Each method has its strengths and limitations with regards to collection down time and ease of maintenance. These three methods are:

Merging Updates Into Collections

When Library Manager updates a content collection, it creates an update file and integrates those changes into the original content collection. This means that a library content collection, whether builder or reference node, is not dependent upon update files to make it current or complete. Library Manager merges ccBuild built content collections with their respective ccBuild build update files, thus making those content collections completely current and up to date.

After Library Manager has updated the collections you want to deploy, you can "hot swap" the old collection with the new updated collection. Otherwise, you need to delete the old content collection in the Content Network Manager then mount the updated content collection. Your collections are not accessible to your end users during this time.

"Hot Swapping" Collections

To eliminate collection down time you can use the Content Network Manager to perform a "hot swap" of existing content collections. Assume that you have a content collection mounted on your server and located in MyDirectory1. You create an updated version of the collection (this is a duplicate of the original except it has current content) and copy it to MyDirectory2 on the server. Locate the original content collection node in the Content Network Manager, view its properties, and reset the File name property to point to the updated collection in MyDirectory2. When you save the changes, all current requests in old content collection are serviced and new requests come into the updated collection. Active users on the server should not notice the change.

Mounting the Update

You can update content collections that you build with ccBuild and deploy on an NXT Online Server by directly mounting the update file (.upd) that ccBuild produces. You use the Content Network Manager to mount a content collection update file and consequently update your online content. The process for doing this is very similar to "hot swapping" content collections. The difference is the file that you are searching for. Locate the content collection node in the Content Network Manager for which you have a respective update file. Open the properties for that node and click the Browse button to the right of the File name property field to locate the update file. When you find the update file click Open, OK, and Save to finish the transaction. Refresh your browser to see the updated collection content.

You mount the update file because the update file contains information indicating its "parent" content collection, but the content collection does not contain information about its "child" update file. The child knows its parent but the parent does not know its child. Because of this relationship or association, the "child" or update file becomes the controller of the "updated" content collection (the updated content collection is the combination of the original content collection and the update file). So, for NXT to serve up the updated content collection, you must redirect the Site Definition File (SDF) to the update file. Mounting the update file implies mounting your content collection, but not vice-versa.