Offline Files in Windows Vista

Hi, I’m Navjot Virk, program manager for Offline Files in Windows Vista, and I’ll be blogging a multi-part series about the new features in Offline Files.

Offline Files is a feature of Windows Vista that enables access to files on an SMB server even when the client is not connected to the server. Offline Files was first introduced in Windows 2000 and then revised in Windows XP. Offline Files in Windows Vista has been completely redesigned based on the feedback we received from our customers. Offline Files in Windows Vista has many new features, such as seamless transitions and better synchronization, both of which I’ll describe below.

Seamless Transitions
Offline files has two main modes of operation–online mode and offline mode. The user is working in online mode when they are connected to the server and most file requests are sent to the server. The user is working in offline mode when they are not connected to the server and all file requests are satisfied from the Offline Files cache.

Offline Files in Windows Vista offers seamless (no user intervention required) transition from online to offline mode and from offline mode to online mode.

In Windows XP, the transition from online to offline mode was seamless. However, the transition from offline to online mode was very disruptive. The user would be working offline and suddenly Offline Files would detect that the server is available for reconnection and pop up a balloon to notify the user. At that point the user would need to close all open applications, and then initiate synchronization, and only then would he be transitioned back to online mode. This was very disruptive.

In Windows Vista, the transition from online mode to offline mode is seamless just like in Windows XP. However, in Windows Vista the transition from offline mode to online mode is also seamless and non-disruptive. When Offline Files detects that the share is available for reconnection, all open handles are recreated on the server and the user is immediately transitioned to online mode. The user can now see the server namespace and open files online. Also, Offline Files will automatically initiate synchronization in the background to push all offline changes to the server and pull in any changes made on the server while the client was offline. If a file happens to be in conflict, then just that one file will continue to stay offline (all requests for that file will be satisfied from the cache). The user is notified of the conflict by the sync center system tray icon. The user can resolve this conflict by going to the sync center whenever they are ready. Until the user resolves the conflict, this file will continue to be offline and the user can keep working with his version.

Another big difference from Offline Files in Windows XP is that in Windows Vista the transitions happen at the share level. In Windows XP, the transitions happened at the server level. In other words, in Windows XP if you had a network error or if the share on the server was down (maybe due to maintenance), then the client would be transitioned offline against the entire server even though other shares on the same server were available. This gets much worse against a domain-based DFS path, such as \microsoft.compublicusers. In Windows XP, if one server or share in the domain goes down then the entire domain-based namespace is transitioned offline. While offline the user can only access that part of the domain-based namespace that has been cached by Offline Files.

In Windows Vista, this transition happens at the share level. In other words, only that part of the namespace that is backed by the share that is down is transitioned offline. Other shares on the same server are still available online. In case of domain-based DFS, only the part of the logical namespace that is backed by the share that is down is transitioned offline. The rest of the domain-based namespace continues to be available online.

Offline Files in Windows Vista also offers a user interface to force a share to transition to offline mode even when the client is connected to the server. Using Windows Explorer, the user can browse to the share or a directory inside the share. The command bar of Windows Explorer in Windows Vista has a “Work Offline” button that the user can click to force the share to transition to offline mode. The button then changes to “Work Online.” The user can click the “Work Online” button to transition back to online mode.


Better Synchronization
Offline Files in Windows Vista offer much improved synchronization. The improvements to synchronization are two-fold. First, Offline Files in Windows Vista uses a new faster algorithm to determine what files or directories are different between the client and the server. Second, Offline Files in Windows Vista uses “Bitmap Differential Transfer” when synchronizing changes from the client to the server. Bitmap Differential Transfer is essentially a mechanism to keep track of what blocks of file were modified when offline. When synchronizing changes from the client to the server, Offline Files in Windows Vista sends only those blocks of the file that were modified offline. In Windows XP, Offline Files always copies the entire file even if only a small part of the file was modified.

Bitmap Differential Transfer makes the synchronization in Windows Vista more efficient and enables Offline Files to cache large files like .pst and .mdb files. Because Offline Files in Windows XP could not synchronize large files efficiently, files like .pst and .mdb were by default not cached. Offline Files in Windows Vista can cache all file types and by default no file types are excluded.

Please note that the Bitmap Differential Transfer in only used when pushing changes from the client to the server. This optimization is not used when pulling changes from the server to the client. If a file is modified on the server when offline, Offline Files in Windows Vista will still copy the whole file down to the client during synchronization. The impact of this will be more pronounced for those users who modify the same files from multiple client computers.

Also, note that Bitmap Differential Transfer only works for pre-existing files that are modified in place. Bitmap Differential Transfer will not happen for files that are created while offline. Some applications, like Microsoft Word, do not modify the file in place. These applications create a new temporary file with the changes and later rename the temporary file to the original file. Bitmap Differential Transfer will not happen for such files.

All improvements to synchronization including Bitmap Differential Transfer will be available against any SMB server, for example, Windows 2000, Windows 2003, Windows R2, NetAPP server, etc. 

Offline Files in Windows Vista also provides per-user synchronization. All synchronization operations only synchronize files that the currently logged on user has access to. Offline Files in Windows XP would always try to synchronize all files in the cache including files that where cached by other users. The logged on user would see synchronization failures for the files that he did not have access to. In Windows Vista, the user will only synchronize his files (files that he has access to) therefore he will never see errors for files that belong to some other users (files that he does not have access to). 

Also, synchronization of Offline Files in Windows Vista can be scripted using WMI.