The USB Mass Storage class (also called UMS) is a protocol that allows a device connected through USB (Universal Serial Bus) to become accessible to a host computing device. This allows file transfers between the device and the desktop, as long as the file system used on the device is known to the desktop. One common example of this is the FAT file system. Other file systems can be supported through an external driver. An example of this is a device formatted with Reliance Nitro can be accessed through the Reliance Nitro Windows Driver (RNWD) on a Windows host.
To the host machine, the USB device appears similar to an external hard drive, enabling drag-and-drop file transfers. In fact the host has exclusive access to the media shared through this USB Mass Storage class. The connection happens below the file system layer – the physical media is revealed through this protocol. All transfers are done on a media block basis, and all metadata writes are separate from file data writes.
This can cause a few problems, especially when a transfer is interrupted. To truly prevent corruption, the host computer must release access to the device before it is disconnected. Often the software on the device cannot access the media while any transfer is in operation. One example of this is Android, which warns you that applications and data stored on the SD card will be inaccessible.
Another option which is gaining popularity is the Media Transfer Protocol, or MTP. This is an extension of the Picture Transfer Protocol which was originally developed for cameras. A host computer equipped with MTP will be able to communicate with the device at a layer above the file system with basic packet transfer commands. The unit of storage is a local file rather than a media block. The target device can use whatever file system is required for the device, and the device can access that file system simultaneous with the host computer with no fear of corruption.
In some ways this makes the Media Transfer Protocol rather like a transactional file system – either the entire file is written or nothing is. In most cases, the storage media is not affected by failed transfers, because the protocol on the device side handles this properly. This works especially well with the Reliance Nitro transactional file system. A customer implementing MTP on their device can use the Dynamic Transaction Points of Reliance Nitro to perform a manual transaction after each completed MTP transfer. Best of all, file data and metadata writes can be done at the same time, in an atomic fashion.
In summary, Datalight’s software works with both of these standard protocols. The improvements and advantages of Media Transfer Protocol make it the superior solution for embedded devices.