RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:30-18:00
你可能遇到了下面的问题
关闭右侧工具栏
感受Longhorn之三
  • 作者:xiaoxiao
  • 发表时间:2020-12-23 10:52
  • 来源:未知

第四章 存贮

Longhorn里另一大杀手锏就是WinFS--让你可以像数据库一样管理和查询你的数据。

硬盘越来越大,想想7年前,自己还在上大学的时候买了一块1.5G的硬盘,一直在想自己怎么可能用得完呢?想想现在,一两百G的硬盘已经轻易买到了。现在硬盘是大了,你怎么管理这些数据啊?

于是想起Google这个神奇的东西,几乎成了百科全书,有什么不懂的直接敲入搜索框,几秒钟之后答案就摆在面前了,比搜索本地硬盘的速度还快!人家那可是搜索整个世界啊!

先来看看现在的计算机数据存贮方式,一般采用的是文件系统,Windows上无外乎FAT和NTFS两种。采用文件系统,你只能以层次结构的方式组织数据。搜索无非就是对文件名进行匹配,最多能够对里面包含的文字进行匹配,其他更复杂的搜索就几乎不可能实现了。比如根据图像的内容,音乐的演唱者以及Word文档的摘要等进行检索,就比较困难。当然,现在已经有了一些应用程序来帮忙实现这些复杂的检索工作,但是都是基于自己的一套技术,没有统一的标准。所以,对于用户来说,要实现不同的功能,要面对各种迥然不同的接口。而且不同应用程序之间的数据交换,因为数据格式的不统一,也很难进行。

好了,现在WinFS横空出世了,数据保存在系统中的时候,不再仅仅保存文件名和内容,还包括一些原数据(MetaData)。原数据就是譬如照片的大小,颜色值,拍摄地点,时间和事件,以及MP3的演唱者,所属专辑等等信息。这些信息就宛如数据库表里的字段,有了这些字段你就可以使用类似SQL一样的语句进行复杂的查询,譬如在某某地点拍摄的照片,某某专辑的MP3等等。

WinFS可以与原先的FAT/NTFS并存,你可以选择是把数据保存在哪个系统中。在文件保存的时候,系统会自动提取它所认识的MedaData,并在文件发生改变的时候,自动同步更新MedaData。

另外,WinFS定义了一些所谓的公共的Schema,类似数据定义一样的东西。比如,定义了Person,Address,Contact这样的数据对象,这样系统就可以之维护一份数据,不同的应用程序都可以存取。想想看吧,现在的应用程序有多少在使用自己的通讯录格式啊,想想当年为了读取Windows内部的通讯录的那个费劲啊,哪怕是现在Outlook和Outlook Express的通讯录还都是两套呢!

如果仅仅是把能够类似数据库一样存取和查询数据的话,还不算得什么惊奇的。神奇的是,WinFS提供的接口里,允许直接对对象Object进行保存。完全摒弃了文件的概念,摒弃了Serialize/Deserialize的过程,完全是面向对象的。不仅如此,你还可以利用类似SQL语句的方式来进行对象查询,还支持数据库才有的概念--事务!你完全可以想象,系统的底层一定是SQL Server了。