At the heart of WinFS are schemas. They define everything about an item, and WinFS will ship with up to 45 end-user data schemas. At Microsoft's PDC 2003 in Los Angeles, Microsoft had already given developers a look at 30 schemas, covering everyday information and system information.
The whole model can be extended. Everyday information will be schemas dealing with documents, notes, audio, messages, events, appointments, contacts and other like data. System information will cover system tasks, configuration, security, programs and help. Help, in particular, is interesting as it will be one of the key targets for extensibility. Developers have been asked to put their help information into the help schema to make help an overarching container in WinFS.
The extensibility of the schema model is likely to open up the way that relationships and metadata really become effective. No matter how much work Microsoft puts in to define system schemas, there is a limit as to what is feasible. Developers are being asked to look at using the schema model to create new items that reflect their application.
Microsoft has used a legal application as an example. The core document schema will hold a number of properties but things such as jurisdiction, judge, prosecutor and legal references are unique to that vertical market. To be able to search across all cases based simply on the award, the name of a witness or a prosecutor will remove much of the complex database work currently done by that profession. It also allows all data related to the case to be part of the search criteria, not just that logged into the database. Immediately an item is created it can be searched.
When you feed a schema to WinFS, it takes the schema and looks at the best way of storing and programming to it. It generates views and the code, so you can use T-SQL statements to get at the data as if it were just relational data. Developers might also want to put in their own code to control behaviour.
Synchronisation of data is a critical issue in a world where data changes so readily and can be stored anywhere. Microsoft sees a lot of value in applications that take advantage of the synchronisation components. One of the first areas of synchronisation will be WinFS to WinFS. Items such as My Contacts and My Files are initial targets for this mechanism. For users who remember briefcase, this might have some nasty overtones of that product. However, since then, Microsoft has demonstrated with ActiveSync that it has learned some significant lessons. The approach is to use a multi-master replication model. Each replica will make changes independently. This means that there has to be a common set of services dealing with change tracking, change enumeration and conflict resolution. To make this work will require a bi-directional mechanism and the development of adapters Schemas are the first line of defence to resolve conflict because they understand the notion of changes. Look at a meetings schema. It contains a number of items such as start time, end time, title, attendees and location. Start and end time are intrinsically linked. Change the start time and you are likely to want to change the end time. Within the schema you can define a change unit linking these two items. This approach can be extended to all of your schemas. Whereas previously, large amounts of code where used to control the relationships between objects, that is now dealt with by simply defining a change unit. Such units can be deployed in the original schema or in an update schema. Given the problems of changing code, adding a new change unit by refreshing a schema is a much simpler and almost invisible option. Microsoft has also introduced the concept of a group synchronisation policy. This means that you can use change information and ally it to a notification process. Should the timings of a meeting change, everyone could be informed. Conclusion
This piece has barely scratched the surface of what is happening with WinFS. However, at this time we know that the product is simply in pre-alpha format. It’s officially described as a technology preview and since October a number of elements have apparently already been changed. To get an initial feeling of what is happening with WinFS, go to Microsoft’s MSDN Web site and download the Longhorn beta code.
This is the third of a three-part series.