The WinFS File System
In the last decade there has been a “combination of trends and technologies” that will change the way people work with managing their data in the future. Because computers have become faster, bandwidth continues to increase, and data storage has increased, the amount of “digitally born data” has exploded (Rizzo, 2005). The increase in digital data has propelled Microsoft to invest in building a new way to manage data. WinFS (Windows Future Storage) is being developed by Microsoft to be used as an advanced storage system that shall be implemented on top of NTFS. Because WinFS is actually operating on top of NTFS, the only way to compare the two is to highlight the features of WinFS that distinguish it from NTFS. “WinFS is modeled on the file system of the coming SQL server (Yukon), whose FS is based entirely on a relational database”(Ibelshäuser, 2004). According to the Wikipedia encyclopedia, “WinFS is not a physical file system; rather it provides rich data modeling capabilities on top of the NTFS file system. But it still uses NTFS to store its data in physical files” (p. 4). The concept of WinFS is that it will identify different data by a form of Extensible Markup Language (XML) metadata and use this metadata to set up relationships among the data. This metadata is attributes “such as type of file (e.g., document, picture, music), creator, artist” (Wikipedia, 2006). WinFS will be able to utilize the metadata to aggregate data from two or more applications and organize “using attributes to describe the data in files and the relation of that data with other data. By creating a unified datastore, it promotes sharing and reuse of data between different applications” (Wikipedia, 2006). WinFS is comprised of five components: Core WinFS, Data Model, Schemas, Services, and APIs. Below is a diagram detailing the different components.
The core WinFS building blocks (Rizzo. 2004, Figure 1)
Core WinFS helps provide the core services of a file system such as security, manageability, Win32 file access support, and import/export.
The Data Model includes the basic item structure, relationships, and extensions and can store data in all sorts of data structures. The WinFS item has replaced the file in NTFS. WinFS files data “in a cohesive data store, not just a file system” (Wildermuth, 2004, p. 2). The item is the data object. The item along with the core data contains the information concerning how this data relates with other data.
(Wildermuth, 2004 Figure 2)
In Wildermuth’s article A Developer’s Perspective on WinFS: Part1, he gives a very clear explanation of what an Item is in WinFS: These specializations add new pieces of information specific to the type of object it represents. For example, a File has a timestamp and last accessed time; a Document has the author of the document; and a Person has the first and last name of the Person. This hierarchy continues to specialize as new types of objects are created to be stored in WinFS. This can be seen in Figure 3:
(Wildermuth, 2004, Figure 3)
For example, the Photo class consists of an Image, a Document, and an Item. While a Photo is a document, and therefore has an author, and last date changed, it is also an Image. Being an Image, it will need to store data like color depth, image size, and format. Lastly, the Photo needs even more data that the Image type has. It wants to store the type of camera it was taken with, the time the photo was taken, and whether a flash was used. Each WinFS object that specializes (or inherits from) the Item primitive defines the actual fields that will be stored as part of the object. For example, a Contact object defines that a contact includes a name, one or more addresses, and other contact information. The base Item object only knows how to take that information and store it in WinFS. WinFS accomplishes this with NestedTypes and ScalarTypes. For example, here is a depiction of a contact in WinFS:...
Please join StudyMode to read the full document