“"WinFS" is an active storage platform for organizing, searching for, and sharing all kinds of information.”
虽然没有像Indigo这样“fancy”的命名,但是WinFS仍然是Longhorn组件当中最令人困惑的名字——FS毫无疑问是代表“File System”,但不幸WinFS偏偏又不是真正的文件系统(至少在目前的Longhorn Release中不是)。思归的Blog里面也提到过,WinFS实际上是建筑在NTFS上面的一个系统服务(思归称之为Windows Future Storage,贴切的多
)。
WinFS有成为一个完整的文件系统的潜力,但出于系统兼容性地考虑,目前的Longhorn系统只是使用WinFS作为一个文件系统上面的附加数据库模块。
- WinFS Store: 相当于一个关系数据库的物理存储。非文件型式的数据(如Address Book)会直接保存在WinFS Store当中。传统文件形式的数据仍然以文件的形式保存在NTFS文件系统,WinFS Store里只是根据数据的Schem定义保存了这些数据的一些属性(如JPEG图片的EXIF信息)。
- Item Schema: 存储数据模型,用于精确描述Store中存储的信息。在WinFS Store中存储的数据/数据属性都必须符合给定的Schema——相当于数据库的Design View、Xml文档的Schema或者.NET的类型定义。
- WinFS API: WinFS系统提供了丰富的API用于访问WinFS Store中的数据:.NET应用程序可以通过新增的System.Storage名称空间操作WinFS Store,WinFS Store中预定义的Schema在这里都有对应的数据类型;其他的应用程序(例如COM)可以通过T-SQL、ADO或者OLEDB方式访问WinFS Store。

- Notification Service(WinFS-IA): Information Agents,实际上是WinFS API的一个部分。当WinFS Store的数据发生变化时,WinFS可以通过Notify机制通知那些需要监听的应用程序。.NET API通过事件实现Notification Service。这有些类似于关系数据库的Trigger机制。
- Sync: 同步模块。用于在不同的WinFS Store之间实现数据同步。
在目前的Longhorn版本当中,WinFS的作用范围仅限于Documents and Settings目录,系统的其他部分仍然处于NTFS的控制之下。不难看出,套用了关系数据库模型的WinFS与传统操作系统相比主要优势是数据组织和查询。不同格式的数据可以方便的建立关联,例如:一张照片和Address Book里的一个人,或者一份email。数据搜索的条件也不再局限于文件名、文件大小或者创建日期,例如文章标题或作者可以被用作Word文档的搜索条件。
不难想见,在WinFS的强大功能支持下,Personal Orgnizer类型的程序将会在数据集成、分析方面提供更大的便利。
打印 | 张贴于 2003-12-04 11:20:00 | Tag:.NET
留言反馈