В конце августа 2005 г. Microsoft удивила аналитиков выпуском WinFS Beta 1, первой общедоступной версией системы хранения данных следующего поколения. Для того чтобы понять, почему это оказалось сюрпризом, нам придется вернуться к истокам и исследовать эволюцию этой технологии, которая до недавнего времени была недосягаема.

Как появилась WinFS

Тогда, в начале 90-х команда новых технологий Microsoft (NT) находилась еще под влиянием так называемых технологий нового поколения. Одной из целей проекта Cairo, который охватывал ряд продуктов следующего поколения, была новая реляционная файловая система. Тогда ее называли объектной файловой системой OFS (Object File System). Она должна была помогать администрировать локальные и распределенные объекты на основе парадигмы активного хранения. Сам по себе проект Cairo содержал многочисленные богатые возможности, и хотя исследовательские идеалы проекта не могли быть воплощены с помощью технических средств того времени, разработчики Microsoft были уверены, что с годами ситуация изменится к лучшему. Эта вера никогда прежде их не подводила, но для проекта Cairo она оказалась фатальной. Корни многих технологий, которыми мы пользуемся ежедневно, тянутся из проекта Cairo. Одни появлялись в соответствии с разработанными планами, другим же технологиям, например OFS, еще только предстоит выход в свет.

А тем временем работа над объектной файловой системой OFS продолжалась. Предполагалось, что OFS поддержит возможности накопления и сбора данных, например, можно будет открыть псевдопапку, содержащую данные на различных накопителях на компьютере пользователя. Если вы думаете, что это очень напоминает виртуальные папки Windows Vista, то вы не ошибаетесь. Прошло десять лет после того, как в компании начали говорить о таких возможностях, и вот, наконец, это свойство добавляется к Windows (хотя, опять же, не так элегантно, как первоначально планировалось).

Система OFS могла бы избавить пользователей от необходимости выяснять, где находятся данные, вне зависимости от того, локально или в удаленном режиме они работают. Сегодня мы имеем дело с такими объектами, как общие файловые ресурсы на удаленных серверах, которые напрямую зависят от физического расположения. Предполагалось, что OFS поможет пользователям забыть о необходимости знать их местоположение. Вместо ресурса Data на сервере, мы могли бы иметь простой доступ к псевдокаталогу под названием "Данные поля", в котором накапливаются все документы пользователя на сервере.

Storage+

Поскольку проект Cairo в середине 90-х провалился, его объектно-ориентированные технологии рассеялись по группам различных продуктов, и объектная файловая система OFS была преобразована в проект Storage+. Проект Storage+ вместе с COM+ и Forms+ создал основание для технологического прорыва Microsoft в середине 90-х с моделью компонентных объектов COM (Component Object Model). Как я писал в 1999 году в обзоре по COM+, Storage+ положит конец файловой системе NTFS и заменит ее новой реляционной, объектно-ориентированной файловой системой, основанной на SQL Server 8.0. Ожидалось, что Storage+ выйдет вместе со следующей версией Business Windows и превратит файловую систему в реляционную базу данных с быстрым поиском и более высоким уровнем детализации.

Как следует из этого описания, Storage+ представлял собой модернизированную OFS, но с добавлением одной особенности: теперь файловая система была основана на технологии реляционных баз данных. Это очевидный выбор для хранения данных. А поскольку Microsoft просто воссоздала из пепла, как выяснилось, удивительно мощный SQL Server (SQL Server 7.0 был совершенно новой технологией, а не кодом Sybase, который компания использовала в прежних версиях), казалось, что был выбран правильный подход.

Реляционная файловая система RFS

В 2000 году я рассказывал о том, что Windows Blackcomb (в то время правопреемник Windows XP/Windows Server 2003) будет содержать новую файловую систему, основанную на реляционной базе данных, дублере Storage+. Но планы уже поменялись. Описывая события апреля 2005 года, я отметил следующее: "Задуманная первоначально как дублер файловой системы Windows, система Storage+ должна была передать мощь реляционного процессора базы данных SQL Server – с его богатой функциональностью средств поиска и индексирования – всем пользователям Windows, где бы они ни находились. Однако по ряду причин Storage+ все еще пребывает в неопределенном состоянии. Сначала компания предполагала поставлять этот продукт — тот, что сейчас называется реляционной файловой системой RFS (Relational File System) — вместе с SQL Server 2000. Однако SQL Server 2000 оказался сравнительно небольшим обновлением (он первоначально назывался SQL Server 7.5) с коротким циклом разработки, и Storage+/RFS нельзя было встроить в него в намеченные сроки".

Были и другие задержки. Когда корпорация Oracle в 2000 году анонсировала систему IFS (Internet File System), не зависящую от платформы (IFS была реляционной файловой системой, основанной на технологии баз данных Oracle), Microsoft должна была снова пересмотреть свой инструментарий, чтобы состязаться на равных по функциональности продукта. Из-за постоянных задержек с OFS/Storage+/RFS группы Microsoft, разрабатывающие другие продукты, должны были использовать более выверенные технологии хранения. Продукты Active Directory (AD) и хранилище сообщений Exchange были основаны на технологии Jet (как и Microsoft Access). Таким образом, работа над реляционной файловой системой опять была отложена до лучших времен.

Тем временем Longhorn занял место Blackcomb в качестве следующего выпуска Windows, и Microsoft вплотную занялась планом создания файловой системы хранилища. Система RFS снова претерпела изменения, на этот раз в WinFS (Windows Future Storage). Было бы некорректно называть ее новой файловой системой: это процессор хранения, построенный поверх NTFS, который будет виртуально включать всю функциональность, первоначально заявленную в OFS десять лет назад.

Трудно точно сказать, когда Microsoft объявит о готовности WinFS, напомним только, что это продолжение OFS/Storage+/RFS. В 2002 году я еще упоминал о движке для хранения как о Storage+, а в 2003 речь шла уже о WinFS. В этой статье я покажу, что WinFS - не самостоятельная файловая система, а скорее надстройка над NTFS. Марк Майерс рассказал мне, что будущая система хранения Windows Future Storage (WinFS), которая включает функциональность SQL Server версии Yukon, в сущности, не является файловой системой. WinFS - это служба, которая работает поверх NTFS, и требует ее наличия. Майерс подчеркнул: «WinFS сидит на NTFS, и NTFS является необходимым условием ее работы».

Самый большой всплеск интереса к WinFS был, конечно, на конференции PDC 2003, когда представители Microsoft впервые раскрыли технические подробности. Тогда было объявлено, что Longhorn, следующая большая версия Windows, будет основана на трех технологических «китах»: WinFS, Avalon и Indigo (которые продолжают и совершенствуют технологии предыдущего поколения Storage+, Forms+ и COM+, соответственно). Я присутствовал на сессии WinFS на конференции PDC и был приятно удивлен ее возможностями. Большим достижением, конечно, является оперативный поиск, который всегда оставался частью этого плана, но он привлек особенное внимание ввиду повышенного спроса на поисковые системы для Internet. «Почему мы так быстро находим информацию в Internet, но тратим столько времени на поиск данных в своих компьютерах?» – задала риторический вопрос Microsoft.

В последующие месяцы, после появления нескольких общедоступных сборок Longhorn, стало очевидно, что WinFS не будет готова к сроку. Как можно было ожидать, WinFS испытывала большие затруднения в реализации и замедляла подготовку регулярных сборок. И хотя эта технология все же была включена в сборку Longhorn для WinHEC 2004, которую компания представила в мае 2004 года, Microsoft хранила молчание относительно WinFS. И спустя несколько месяцев стало ясно, почему.

В конце августа 2004 года Microsoft удивила всех существенным изменением своих планов по проекту Longhorn – он был задержан до 2006 года. Три главные технологии из следующей версии Windows – Avalon, Indigo и программные интерфейсы WinFX, необходимые для их поддержки, будут портированы для Windows XP с Service Pack 2 (SP2), Windows XP Professional x64 Edition и Windows Server 2003 с SP1. Самая важная из основных возможностей Longhorn – WinFS – была удалена из Longhorn, ее поставка была перенесена на более поздний срок.

Из-за этого существенного изменения Microsoft быстро перешла в режим минимизации негативных последствий, заявляя, что выпуск все же содержит многие свойства, которые пользователи ошибочно приписывают WinFS. В то время Грег Саливан говорил мне: "Longhorn по-прежнему обладает богатыми средствами поиска. Не следует ставить знак равенства между локальным поиском и WinFS, это разные элементы платформы. Так, в Longhorn по-прежнему остается локальный поиск, как остается тот же самый полнотекстовый поиск, наряду с новыми возможностями оболочки. Это дает некоторое сходство с возможностями 'Find My Stuff'. Однако не будет полностью реляционного хранилища с глубокой интеграцией и взаимодействием платформ через программные интерфейсы. С точки зрения конечного пользователя, тем не менее, все останется по-прежнему. Мы предложим те же самые превосходные возможности локального поиска внутри Longhorn".

Тогда же представители Microsoft сообщили, что WinFS не будет поставляться для Windows XP или 2003. Поэтому я, как и многие, стал думать, что WinFS «скрылась в бездне вод». Мы увидели только первый бета-выпуск, привязанный к такому же выпуску Longhorn, и все. В который раз WinFS осталась для нас журавлем в небе.

WinFS Beta 1

Но, несмотря на множество задержек, Microsoft интенсивно работала над WinFS, и в течение всего 2005 года готовила маленький сюрприз. Компания анонсировала выпуск WinFS Beta 1, который будет поставляться только для версий Windows XP и более поздних. Следующие бета-версии также будут работать на Windows Vista и других современных платформах Microsoft. Интересно, что все это действительно было секретом. Компания Microsoft тщательно скрывала, что она активно готовит WinFS для выпуска бета-версии в 2006 году. И никто ничего об этом не спрашивал. Обозреватели считали, что WinFS является просто очередной технологией, которая проявится «когда-нибудь со временем».

Так что же такое WinFS Beta 1? По мнению Тома Ризо, директора по менеджменту SQL Server, направление деятельности не изменилось: "Мы создаем реляционную файловую систему с богатыми возможностями для Windows. С помощью WinFS мы предоставим новые функции организации и визуализации данных. И, наконец, это платформа. Она предназначена не только для конечного пользователя. Разработчики могут расширять WinFS, интегрировать с ней свои приложения, синхронизировать данные между приложениями и закрытыми базами данных и WinFS, а также обеспечивать поддержку собственных типов данных внутри WinFS с помощью полнофункционального API для управляемого кода".

Установка WinFS Beta 1 на Windows XP

Реляционная файловая система WinFS устанавливается так же, как и любое другое приложение (рисунок), однако требует специальной (новой) версии .NET Framework (2.0.50215.322) и может использоваться только с системами на основе NTFS, причем в завершение требуется перезагрузка. Когда вы снова окажетесь в Windows, вы заметите в окне My Computer новый объект (рисунок), или, как его называют в Microsoft, новый объект в пространстве имен оболочки. Поскольку этот объект называется WinFS Stores, он сразу вызывает аргументы «за» и «против» его включения в состав продукта.

Аргументы «за»: реляционная база данных WinFS – реальная система. Вы можете хранить данные в WinFS и, главное, иметь доступ к данным на основе WinFS из любого существующего (традиционного) приложения Windows. Самое приятное в WinFS Beta 1 – это то, что вы можете получить доступ к базе из любого Win32 API. Можно просматривать ее с помощью Windows Explorer, в этом случае она выглядит как накопитель. Можно сохранять документы из Microsoft Word прямо в WinFS. Она сохраняет полную обратную совместимость, когда вы считываете или записываете данные WinFS об авторе, по последнему времени сохранения и т.д. WinFS прекрасно работает с существующими приложениями – можно копировать и вставлять все, что угодно.

Аргументы «против»: WinFS - слишком сложная система. Это не истинно интегральная часть операционной системы, и пока независимые разработчики не будут поддерживать WinFS новыми приложениями, вряд ли данная технология будет нужна кому-нибудь.

В любом случае для конечного пользователя WinFS Beta 1 не представляет особого интереса. Кроме объекта оболочки, почти ничего и не видно. Под уровнем WinFS Stores вы увидите данные инициирующей программы, сохраняемые под именем DefaultStore (рисунок). Можно также добавить свои хранилища данных, с помощью контекстного меню при нажатии правой кнопки (рисунок). При создании хранилища ему можно присваивать имя, комментарии и задавать его местонахождение (рисунок). Интересно, что нельзя создать ярлык к хранилищу на рабочем столе (несомненно, ошибка Beta 1).

Когда вы копируете данные в какое-то хранилище WinFS, окно копирования файлов - не традиционное, это не тот вариант, который мы видим обычно в XP (рисунок). А когда вы пытаетесь получить доступ к хранилищу через окно Open какого-нибудь приложения Microsoft Office, это хранилище не появляется в My Computer, как можно было бы ожидать. Вместо этого оно оказывается в виде ресурса в окне Network Places (рисунок). Это означает, что вы можете использовать Explorer для навигации по хранилищу, дважды щелкнуть на файле с документом и вызвать приложение, которое может работать с этим типом документов. А вот Save As работает нормально и "видит" хранилище (как общий ресурс).

Что действительно интересно в WinFS, так это то, как ее могут использовать разработчики. Microsoft поставляет приложение Getting Started (рисунок), которое поможет разработчикам получить доступ к WinFS, файлам помощи WinFS API и другой документации. У меня еще не было времени, чтобы полностью изучить возможности разработчика в WinFS, но кое-что я определенно сделаю.

Сроки и поставка

Как сказал мне Том Ризо, Microsoft поставила версию WinFS Beta 1 за две недели до PDC 2005, для того чтобы разработчики могли немного поэкспериментировать с ней и рассказать об этом на конференции.

Недавно я просмотрел внутреннюю документацию Microsoft, в которой более полно раскрывается график подготовки для WinFS. За WinFS Beta 1 последует, по крайней мене, один выпуск по программе CTP (Community Technology Preview). К маю 2006 года запланирован выпуск WinFS Beta 2, а выпуск обновления Beta 3 Refresh ожидается в апреле 2007 года. WinFS RTM будет представлен в третьем квартале 2007 года, после выпуска Longhorn Server.

Когда новая файловая система будет закончена, WinFS будет разрабатываться как внеплановое обновление для Windows XP и Windows Vista, так же, как сейчас поставляется .NET Framework. И пока Microsoft не закончит лицензирование, WinFS почти наверняка будет распространяться бесплатно. Таким образом, WinFS должна быть, по-видимому, включена в Longhorn Server, хотя она может поставляться и как добавление для этой операционной системы.

И, наконец, WinFS - это только кодовое имя. Технология, весьма вероятно, будет раскручиваться под торговой маркой Windows Storage Foundation, прежде чем она будет выпущена.

Выводы

Пока еще рано говорить о том, насколько хороша реляционная файловая система WinFS. Однако самое удивительное, что Microsoft сумела сохранить в тайне выпуск Beta 1, несмотря на свою активную деятельность. И в то время, когда программный гигант постоянно подвергался критике из-за вечных задержек в поставках, выпуск WinFS Beta 1 стал приятной неожиданностью. Будем надеяться, что Microsoft будет делать нам такие подарки и в дальнейшем.

Окна

После установки WinFS появляется в My Computer как новый объект
Вы можете добавить новые хранилища данных к WinFS, выбрав меню правой кнопкой.
Хотя WinFS прекрасно интегрирован в Explorer, операции копирования файлов здесь непривычные.