Опрос
Вы участвуете в программе Windows Insider?
Популярные новости
Обсуждаемые новости

16.01.2006 19:56 | Raiker

Представляем вашему вниманию, замечательную, на мой взгляд, статью Д.Корнева, о состоянии и концепции WinFS на 2006 год. Мы так же рекомендуем вам ознакомиться с обзором ранней концепции WinFS 2003, а так же переводом материалов Пола Тарротта.

Описание: В этой статье автор подробно рассказывает об этой новой технологической платформе, разъясняет преимущества внедрения этой платформы и ее использования, как для разработчиков программного обеспечения, так и для конечных потребителей.

<font size=5>Содержание</font>
<a href="#vved">Введение</a>
   <a href="#problem">Проблематика информационных систем</a>
   <a href="#history">История WinFS</a>
<a href="#resh">Существующие решения</a>
   <a href="#poisk">Поисковые технологии на примере Windows Desktop Search & Vista Search</a>
   <a href="#platf">Платформа Windows File System</a>
   <a href="#tehpoisk">Технология поиска в WinFS</a>
<a href="#preim">Преимущества использования WinFS</a>
   <a href="#polz">Для пользователя</a>
   <a href="#razrab">Для разработчика</a>
<a href="#zakl">Заключение</a>
<a href="#pril1">Приложение 1. WinFS Beta 1 Refresh</a>
<a href="#systr">Приложение 2. Системные требования</a>

<font size=5><a name="vved"></a>Введение</font>

<font size=5><a name="problem"></a>Проблематика информационных систем</font>
Исторически сложилось, что компьютер позволяет работать с информацией, с которой работает человек, в виде абстракций файлов и папок. Идея очень проста. Вы можете хранить ваши документы (книги, статьи, рефераты, отчеты и т.д.), музыкальные композиции, рисунки в виде логически завершенных элементов - файлов. Человеку свойственно работать не со всей информацией в целом, но разделять ее на маленькие группы, которые позволяют обрабатывать информацию более эффективно.

Для всех примеров, приведенных в этой статье, мы будем использовать некую несуществующую девушку Мэри, работающей менеджером по работе с персоналом в средней IT-компании.

Итак, рассмотрим на примере Мэри, как работает человек с информацией, окружающей его. Мэри работает с людьми, которые желают устроиться на работу в ее компанию, что означает, что круг ее знакомых гораздо шире, чем у большинства других сотрудников компании. Она знакома со всеми сотрудниками, общается с соискателями на должности. Для нее вполне естественно разделить всех своих знакомых на группы:


    1. Семья,
    2. Друзья,
    3. просто знакомые,
    4. сотрудники по отделу,
    5. сотрудники компании,
    6. успешные соискатели (т.е. те, которые получили работу),
    7. и неуспешные соискатели.


Конечно же, круг ее знакомых может быть шире, но остановимся на этом. Как видно, она группирует информацию.
В компьютере реализацией группы информации, стала идея папки, или директории. В одну папку можно сложить файлы. В данной ситуации, Мэри может сохранить в компьютер информацию о своих знакомых в файлы, а эти файлы разложить по папкам: семья, друзья и т.д.

Позднее, в Windows 95, Microsoft анонсировала идею ссылок (ярлыков) на файлы и папки.
Это дает возможность Мэри создавать новые файлы и папки и делать ссылки на них, сохраняя ссылки на ее рабочем столе, либо в любой папке, в которой ей это будет удобно. К сожалению, такая организация хранения информации является жесткой, т.к. в тот момент, когда она подружится с одним из своих сотрудников, она пометит в сознании, что этот сотрудник также и ее друг. К сожалению, в компьютере файл может лежать только в одной папке одновременно. ОК, скажете вы, можно создать ссылку на файл этого сотрудника в папке "Друзья". К сожалению, ссылка на файл и файл не эквиваленты. Как только файл будет перемещен, ссылка перестает действовать, что делает такой механизм неудобным для практического применения.

Это только одна из тех проблем, с которыми сталкивается рядовой пользователь во время работы с данными в компьютере. Вернемся к Мэри. Т.к. она менеджер по персоналу, то у нее есть свой email, и она общается со своими коллегами и с кандидатами на получение работы в компании по электронной почте. Для этого она хранит список таких знакомых (назовем этот список списком ее рабочих контактов) в почтовой программе. Допустим, эта почтовая программа позволяет сохранить достаточно много информации о каждом контакте, что, в действительности, оказывается часто очень востребованным. С другой стороны, в ее компании используется Active Directory для поддержки сетевой информационной инфраструктуры компании в актуальной форме. Active Directory, кроме всего прочего, позволяет хранить информацию обо всех сотрудниках в ее собственной базе данных. Т.к. Active Directory ориентирована, в первую очередь, на бизнес, то хранить в ней информацию о личных пристрастиях каждого контакта не слишком уместно и мало удобно. Тем самым, если только она не использует почтовый клиент Microsoft Outlook, который умеет работать с Active Directory, Мэри приходится хранить одну и ту же информацию о ее знакомых в двух местах - в ее почтовой программе, и в Active Directory.

Но этого мало. Т.к. это IT-компания, то, скорее всего, она использует CRM - Customer Relationship Management, то есть приложение для работы с заказчиками. Аналогичным образом, ей приходится хранить всю информацию о тех, с кем она связана по работе, в собственной базе данных CRM. Итого, уже три местоположения одной и той же, практически идентичной, информации. Причем каждый раз, когда информацию о каком-либо из своих контактов приходится изменять (поменялся номер телефона, должность и т.д.), Мэри приходится открывать свойства этого аккаунта в Active Directory и приводить его в соответствие с контактными данными этого человека, хранящимися в ее почтовой программе. При этом не забываем, что Мэри также работает с корпоративной CRM, что означает необходимость обновления информации и там.

Как видно, такие вполне простые действия, как создание и изменение информации о контактах, занимает у Мэри уйму полезного времени. В действительности, Мэри не просто работает с этим списком людей напрямую, но делит его на группы - сотрудники ее отдела, сотрудники компании, соискатели, не прошедшие интервью соискатели и т.д. И здесь возникает вышеописанная проблема - ей приходится исхитряться сохранять одни и те же контактные данные сразу же в двух папках, что вызывает необходимость изменять и данные в этих папках, когда меняется информация о ее контактах.

Почтовая программа Мэри позволяет создавать и хранить в своей памяти информацию о предстоящих и прошедших событиях, ее задачи, электронную почту и т.д. Это вызывает опять же необходимость разделять информацию на группы. С другой стороны, удобство использования информации о событиях заключено в том, что каждый раз за определенное Мэри время, почтовая программа будет оповещать Мэри о том, что через определенное ею заранее время начнется то или иное событие (например, любимая ТВ-передача, или выступление ее любимой группы). Очень часто оказывается, что ее события сами по себе могут быть связаны с ее контактами. К примеру, Мэри решила назначить совещание сотрудников отдела, и она желает оповестить их об этом, чтобы у них в их календарях было добавлено это событие. Обычно задачу можно решить так: Мэри пишет электронное письмо, в котором сообщает адресатам время и место проведения совещания, а в поле Кому указывает электронные адреса ее коллег. Но это связывает ее коллег и совещание только на словах, компьютер не зафиксировал эту информацию в себе. Тем самым, нельзя в поисковом окне Проводника сделать запрос вида "все сотрудники моего отдела". Хотя, нужно заметить, Microsoft Outlook предоставляет схожую функциональность, но такой запрос он, тем не менее, обработать не в состоянии. Со словом запрос возникает другая фундаментальная проблема, Поиск. Действительно, когда у вас всего около десятка файлов, поиск нужного кажется простым делом (хотя если, к примеру, эти файлы - многостраничные, порядка 100-200 страниц, документы Word, то, опять-таки, поиск достаточно сложен).

Сейчас, в 2006-ом году, у среднестатического пользователя таких файлов намного больше (к примеру, в случае автора, папка документов составляет около 15 GB, что делает самостоятельный поиск по ней напрасной тратой времени, как бы практично не была разложена информация). Тем более, речь идет не просто о поиске по имени файла, что дает лишь поверхностные задачи, но о поиске по содержанию. Иными словами, это контекстный индексный поиск, но скорость работы такой технологии вплоть до прошлого года (в 2005-ом году были выпущены конкурирующие настольные поисковые системы Google Desktop Search [Google] & Windows Desktop Search [Microsoft], и т.д.) была крайне мала. Но даже и после появления новых поисковых технологий, организация информации пользователя оставляет желать лучшего. Он по-прежнему не может раскладывать данные по группам, кроме как по папкам, связывать данные, использовать одни и те же данные в разных программах и т.д. В новой версии Windows Vista (следующее поколение операционной системы Windows) эта проблема частично решена, но не полностью, как это уже было объяснено выше.

Контекстное индексирование означает поиск внутри файла, что существенно расширяет возможность получения требуемой информации. Проблема, однако же, заключена в том, что каждый файл, для начала, относится к определенной категории данных – это может быть текстовый документ, или же песня, или же фотография, и т.д. Чтобы сохранить информацию в файл, необходимо создать определенный формат для сохранения ее специфики. Исторически сложилось, что с течением времени одни форматы данных отмирали, другие были не один раз изменены для соответствия новым требованиям и стандартам, появлялись новые форматы. На текущий момент существует несколько форматов описания текстовых документов (как простые txt файлы, так и документы Microsoft Office Word, OpenOffice.org, WordPrefect и т.д.), несколько форматов сохранения аудиоданных – музыкальных композиций, аналогичным образом ситуация состоит с форматами хранения изображений. Практически, такая картина наблюдается для большинства форматов данных. Очень часто оказывается, что те или иные файлы могут быть отредактированы только программами авторов файловых форматов данных (проприетарные форматы). С другой стороны, возникает проблема сохранения наиболее полной информации о файле, с которым мы работаем, т.н. «метаданных», что дословно можно перевести, как «данные о данных». Именно поэтому существуют различные версии одних и тех же форматов, очень часто несовместимых между собой. Все это вызывает необходимость устанавливать множество программ для работы с этими данными, необходимость хранения одной и той же информации в разных файлах, беспокоиться о переносе информации из одного формата в другой.

Вернемся к поиску. Для контекстного поиска необходимо, чтобы поисковый механизм знал, «как устроен данный формат», чтобы иметь возможность получить информацию о данном файле и проиндексировать ее. В связи с вышеописанными проблемами форматов данных создание универсальных поисковых машин для персональных компьютеров оказывается достаточно трудоемким процессом и решения этой проблемы не могут полностью покрыть все потребности пользователя.

Что еще означает возможность связывания данных? Она означает то, что вы можете строить сложные запросы по вашим документам. К примеру, вы можете сделать запрос вида «лучшие фотографии, снятые во время моего предпоследнего летнего отпуска в горах, где сфотографированы мы с женой и детьми». Согласитесь, такой запрос предоставляет гораздо более глубокую организацию работы с вашими данными. Связывание в данном случае можно сравнить с человеческим ассоциативным подходом.

<font size=5><a name="history"></a>История WinFS</font>
В начале 1990-ых годов в Microsoft была разработана общая концепция видения продуктов, долженствующих быть выпущенными компанией в течение ближайших нескольких лет. В основе своей, все идеи, циркулировавшие в компании, были собраны в общий концептуальный проект под названием Cairo, который должен был стать новым поколением операционной системы, и, по выражению Билла Гейтса, главы компании, предоставлять "информацию на кончиках пальцев". Cairo состоял из нескольких подпроектов, которые решали различные фундаментальные задачи.

Анонсированные в 1991 году компоненты проекта:


    1. DCE RPC
    2. An object-oriented User Interface
    3. X.500 Directory
    4. X.400 Messaging
    5. Content Indexing
    6. Object-based file system


Первый компонент - это среда распределенных компьютерных вычислений (Distributed Computing Environment) и удаленный вызов процедур (Remote Procedure Call). Он был реализован в первой версии Windows NT (New Technology) 3.1. В последующие годы эта среда была логически и концептуально переработана в набор технологий COM, DCOM, DTC и некоторых других. На текущий момент потомком этой линии технологий является Windows Communication Foundation (Indigo).

Объектно-ориентированный пользовательский интерфейс, второй компонент, впервые появился в Windows 95, хотя и далеко не в той форме, которую подразумевал Билл Гейтс. Среда, обеспечивающая выполнение приложений для работы в интерфейсе Windows 95, была вначале основана исключительно на Windows 32 API, и создание каждого приложение начиналось практически «с нуля», с использования Windows Platform SDK. Для упрощения создания приложений и для использования технологий COM/DCOM Microsoft разработала библиотеку классов MFC. Идеологическим продолжением MFC стал проект Forms+, который в последствии перерос в Windows Forms платформы .NET. На текущий момент реализация идей создания приложений с объектно-ориентированным интерфейсом в совокупности составляет Windows Presentation Foundation (Avalon).

Третья технология - это часть Active Directory, реализованной в Windows 2000, и мы еще коснемся этой технологии в этой статье.
x.400 - это почтовые службы, в частности, Microsoft Exchange Server. Content Indexing (контекстно-зависимое индексирование, или поисковая технология) была реализована в форме Indexing Service в Windows 2000, как часть поисковой технологии Windows и веб-сервера Internet Information Server (IIS). Более позднее и более развитое решение на основе Content Indexing стало интернет-поиском MSN Search.
И последний компонент, Object-based file system, до нынешнего момента не выпущена как конечный продукт и известна как WinFS. Естественно, за прошедшее время реализации объектно-ориентированной файловой системы назывались в разные годы по-разному, Microsoft каждый раз анонсировала выпуск этой файловой системы, но вплоть до настоящего момента, наиболее удачным решением оказалась WinFS, тема нашей статьи.

3 года тому назад, на конференции профессиональных разработчиков PDC 2003, Microsoft анонсировала разработку новой технологии как одной из ключевых для новой версии клиентской операционной системы под кодовым именем Longhorn (конечное имя - Windows Vista), названной WinFS - Windows Future Storage. WinFS должна была стать основой подсистемы Windows нового поколения для работы с данными. Такова была прелюдия. Через год, летом 2004-го года, Microsoft объявила, что WinFS не будет встроена в Windows Longhorn. Более того, первая бета-версия этой системы выйдет тогда, когда на прилавках компьютерных магазинов уже будут лежать коробки с Windows Longhorn. Все это было расценено IT-журналистами, аналитиками, разработчиками и энтузиастами, что в ближайшие годы WinFS не появится и, более того, вообще может не появиться.

29 августа 2005 года команда разработчиков WinFS Team удивила весь мир выпуском первой бета-версии WinFS. Что оказалось самым любопытным, бета-версия работает только на Windows XP SP 2, и не поддерживает Windows Vista. В декабре, в связи с тем, что WinFS тесно интегрирована с .NET Framework 2.0, и выходом конечной версии .NET Framework 2.0, команда WinFS Team выпустила WinFS Beta 1 Refresh.
WinFS Beta 1 Refresh - версия WinFS, возможности которой ни в чем не отличаются от возможностей оригинальной бета-версии, однако работающая с конечной версией .NET Framework 2.0.

<font size=5><a name="resh"></a>Существующие решения</font>

<font size=5><a name="poisk"></a>Поисковые технологии на примере Windows Desktop Search & Vista Search</font>
Microsoft начала разрабатывать Windows Vista (CodeNamed Longhorn) с внедрения в ОС многих новых компонентов, позволяющих управлять данными. Т.к. компания занимается разработками в области работы с данными уже на протяжении 15 лет, то, естественно, количество наработок достаточно велико, и они весьма разнородны.
Работа с данными - одно из ключевых нововведений, которые заставят перейти пользователей на новое поколение Windows. Причем не просто с данными вообще - речь идет об организации собственных данных - это документы, это музыка, видео, это файлы на C#, VB.NET, C++, SQL, это архивы и т.д. И здесь очень важно отметить основные идеи, точнее, их приложение для пользователя.

Задачи работы с данными, которые должны были быть решены в Windows Vista (Codenamed Longhorn):


    1. Это, во-первых, возможность поиска по всем личным данным пользователя.
    2. Это, во-вторых, возможность хранения разных данных в т.н. списки, с тем, чтобы данные, физически расположенные в разных папках на диске, можно было объединить в единое представление и работать с ними, как если бы они лежали в одной папке.
    3. Это, в-третьих, возможность связывания данных друг с другом, для выполнения сложных запросов на языке, максимально приближенном к естественному.
    4. Это, в-четвертых, возможность работы, как с реальными файлами, так и с такими данными, которые нельзя хранить на жестком диске в виде файла (контакты - лучший тому пример).
    5. Это, в-пятых, возможность синхронизации данных.
    6. Это, в-шестых, возможность создания т.н. напоминаний, которые появляются у пользователя на экране в случае изменения тех или иных данных.
    7. Это, в-седьмых, транзакционный подход к работе с данными - т.е., если вы выполняете какую-либо операцию с данными, но она выполняется не до конца, то такая операция будет отменена и все данные, над которыми она производилась, вернутся в исходное состояние.
    8. Это, в-восьмых, хранение всех данных пользователя в единых форматах в едином месте, что позволяет различным программах использовать эти данные в своей работе - к примеру, клиент электронной почты the Bat может хранить полученные с сервера письма в этом месте, а затем другой пользователь, работающий с Outlook, может также работать с этими письмами, получая их из этого единого места (Store).


Этим мы очертили основной круг задач, которые должна была решить новая версия Windows при работе с данными.
В августе 2004-го года Майкрософт сделала признание в том, что она вырезает реляционную файловую систему WinFS из Windows Longhorn. После этого заявления, многие энтузиасты Windows Longhorn (Vista) решили, что их совершенно не устраивает новая реализация ОС, т.к. без WinFS большинство нововведений просто потеряют свою силу и переход на новую ОС не будет столь революционным, а, следовательно, и не принесет значительных усовершенствований в работе с данными для конечного пользователя.
На самом деле, это не так.

С самого начала, вышеперечисленные 8 пунктов не были предназначены для их решения только с помощью WinFS.
Распределение решаемых задач в Windows Vista (Codenamed Longhorn):
1. Full-text Search / Поиск по всем личным данным пользователя выполняется специальной поисковой утилитой, получившей позднее название Windows Desktop Search. В случае, если личные данные пользователя лежат в WinFS, то используется система поиска WinFS Search. Тем самым, без WinFS поиск по личным данным сохраняется.
2. Virtual Folders / Хранение различных данных в списках - или то, что многие теперь называют Virtual Folders. Эта технология также состоит из двух - одна построена на Windows Desktop Search, вторая - на WinFS. В первом случае виртуальная папка - это сохраненный запрос по Windows Desktop Search по указанным пользователем критериям. Во втором случае виртуальная папка - это список ссылок на элементы внутри WinFS Store, и этим списком вы можете манипулировать более свободно, т.к. он не обязательно может быть запросом, созданным пользователем, но может быть именно списком, в котором лежат ссылки на те элементы внутри WinFS Store, которые пользователь сам указал.
3. Relationships / Связывание данных друг с другом. Такая возможность в Windows Vista сохраняется, но в рудиментарном виде. Вы можете задавать, к примеру, ключевые слова для разных элементов (документы, медиа) и затем группировать по этим ключевым словам. Однако, связывание данных через отдельные поля отсутствует как класс. Более того, в тех билдах Windows Longhorn, которые включали в себя WinFS, такая возможность так же существовала только для элементов внутри WinFS.
4. Virtual and Backed Items / Данные на диске - т.н. реальные данные, и данные, которые нельзя сохранить. Первое - это обычные документы типа документов Word, второе, как я уже указал выше, те же контакты, календари, задачи, заметки, meetings и т.д. В Windows Vista вы можете работать со вторым типом данных, представленных также в виде файлов - т.е. все эти данные представимы в новых форматах, разработанных Microsoft на основе XML. Однако же, связывание этих данных, что было основной идеей Windows Longhorn, отсутствует в целом, хотя и может быть осуществлено внутри программ типа Outlook.
5. Synchronization / Синхронизация данных. Диспетчер синхронизации сохраняется в Windows Vista, но, естественно, в нем не будет существовать возможность синхронизации данных по связанным полям, что является очевидной возможностью реляционных баз данных. Однако же, синхронизовать данные с КПК, с плеером или камерой будет возможно.
6. Notifications Alerts / Напоминания. Т.к. WinFS вырезана из Windows Vista, то напоминания, появляющиеся на экране пользователя в случае изменения тех или иных его данных, возможны только при использовании обычных средств Windows наблюдения за изменениями в файлах и папках. При этом вы не сможете получать напоминания об изменении связанных данных. К примеру, если ваш коллега в своем календаре отметил, что он не сможет присутствовать на встрече с вами, то для предупреждения вас и всех других участников о том, что будет встреча, ему придется использовать специальное программное обеспечение, к примеру, Outlook. Соответственно, напоминания, построенные на сложных запросах, включающих в себя получение данных с приложений, так же не будут возможными. Вместе с WinFS эта функциональность практически вырезана.
7. Transactions / Транзакционная работа с данными. В действительности, Microsoft здесь также использовала несколько наработок - это, во-первых, механизм транзакций реляционных СУБД, во-вторых, это механизм транзакций на уровне файловой системы. При этом первое вместе с WinFS вырезано из системы, второе же остается под названием TxFS - Transacted NT File System - TxNTFS. Тем самым, механизм транзакций на уровне операций с файлами сохраняется, тогда как механизм транзакций на уровне операций над связями между данными (полями данных) вырезан вместе с WinFS. Кроме того, важно понимать, что этот механизм и в тех сборках Windows Longhorn, которые включали в себя WinFS, так же существовал только для элементов внутри WinFS.
8. Integrated Storage / Хранение всех данных в одном месте. Это и есть ключевая задача WinFS, поэтому на данный момент в Windows Vista хранение всех данных в одном месте не решено как задача. Однако, Майкрософт делает первые шаги к этому, определяя новые форматы данных - это новый формат данных для контактов, это списки музыкальных композиций, это сохраненные поисковые запросы.
Как видно, большинство задач, которые должна была решать Windows Longhorn (Vista), остаются решаемыми, однако необходимо понимать, что ключевая задача работы с данными (Microsoft Integrated Storage Initiative) остается нереализованной в рамках новой версии ОС и будет решена только в виде интеграции WinFS в следующей версии Windows.

Windows Desktop Search как технология на текущий момент имеет две реализации: первая встроена в Windows Vista, вторая же адаптирована для Windows XP/2003. Если Windows Vista на текущий момент малодоступна, то Windows XP установлена на достаточно большом количестве компьютеров. Вы можете скачать поисковый модуль Windows Desktop Search с сайта Microsoft.

Коренное отличие между этими двумя реализациями заключено, кроме всего прочего, в том, что в Windows Vista проводник предоставляет возможность сортировать данные в папках по всем свойствам, отображенным в виде колонок, при этом можно сортировать не только по убыванию/возрастанию, но и вводить конкретные символы, которые, как вы думаете, встречаются в данном искомом файле. В этой ситуации, колонки данных являются колонками метаданных, предоставляя более гибкие возможности поиска, тогда как проводник Windows XP не предоставляет этой возможности в силу отсутствия поддержки такого формата колонок. Поэтому воспользоваться всеми вышеперечисленными преимуществами поиска вы можете, только установив Windows Vista.

<font size=5><a name="platf"></a>Платформа Windows File System</font>
WinFS - это платформа, а не конечное приложение. Неверно думать о WinFS как о приложении наподобие Outlook или Windows Explorer. Это платформа для работы с данными.
Обычно, файлы хранятся в файловой системе. При этом мы не говорим о файловой системе как средстве физической организации данных на жестком диске, т.е. как о средстве организации и хранения наборов единиц и нулей, из которых состоят файлы, но организации и хранении файлов самих в среде, которая обеспечивает их хранение на жестком диске.
Существует несколько типов файловых систем:

1. Дисковые файловые системы
2. Транзакционные файловые системы
3. Сетевые файловые системы
4. Файловые системы для решения узкоспециализированных задач
5. Файловые системы, основанные на базах данных

Наиболее широко известным образцом дисковой файловой системы является FAT12/16/32. Другими примерами являются ext2, ext3, reiserfs, NTFS, HPFS и некоторые другие. Некоторые такие файловые системы являются журналируемыми, что позволяет сохранять информацию о перемещении, создании, изменении и удалении файлов в таких файловых системах. Примеры: ext3, NTFS.

Транзакционные файловые системы в определенной форме являются расширением журналируемых файловых систем. ТФС реализуют работу с данными в форме транзакций, т.е. каждая операция, такая, как создание, изменение или удаление файла, в случае сбоя операции отменяется и файловая система возвращает этот файл в исходное состояние.
Сетевые файловые системы – это распределенные файловые системы, которые обычно строятся поверх первых двух видов файловых систем, и позволяют хранить данные физически на различных носителях и, возможно, различных компьютерах и представлять пользователям доступ к ним как хранящимся в одном месте.
Файловые системы для решения узкоспециализированных задач – это файловые системы, используемые для операционных систем, управляющих спутниками, шаттлами, самолетами и другими объектами, где используются файловые системы реального времени, а также в некоторых других случаях.

Наконец, файловые системы, основанные на базах данных, к которым относится WinFS, строятся также на основе первых двух видов файловых систем. Преимущество использования баз данных заключено в том, что хранимая в них информация должна быть строго структурированной. Она представляется в виде связанных таблиц данных, что позволяет создавать сколь угодно сложные элементы информации. Возможно связывать различные объекты информации друг с другом. А также, самое важное, использовать сложные запросы по базам данных, наподобие приведенного выше примера с поиском фотографий.

Однако же, файловая система – это не только средство базового создания, изменения и удаления информации, но также и другие службы, которые позволяют упростить работу с файлами. Это, в первую очередь, службы поиска.
Для более эффективного использования баз данных разработаны десятки, сотни приложений, упрощающих работу с данными. Одним из основных применений являются экспертные системы, которые позволяют работать с информацией активно, а не пассивно. Это означает, что в отличие от простой базы данных, экспертная система позволяет создавать новые данные, новые типы данных внутри базы данных на основе анализа существующих. Это особенно востребовано в бизнесе, для анализа финансовых документов, и во многих других случаях. Для реализации такого анализа данных, используется механизм ассоциативных правил «если-то». К примеру, «ЕСЛИ двигатель машины заглох И ближайшая заправка в 300 км отсюда, ТО придется ждать попутную машину». Такая организация работы с данными представляется наиболее эффективной.

WinFS является файловой системой, основанной на модели баз данных. Не вдаваясь в подробности, заметим, что модель WinFS является смешанной, т.е. WinFS обладает возможностями не только реляционной модели, но также является объектно-ориентированной. Но WinFS предоставляет все эти возможности в рамках приложений, взаимодействующих с пользователем, т.е. в отсутствие приложений, использующих эти новые возможности, вы не сможете эффективно работать с WinFS.

<font size=5><a name="tehpoisk"></a>Технология поиска в WinFS</font>
Немного о технологии хранения данных в WinFS. К сожалению, из-за недостатка знаний, нежелания или невозможности прочесть документацию MSDN, многие энтузиасты этой платформы слишком неточно объясняют механизм работы этой системы.

Опишем механизм хранения, изменения и удаления данных в WinFS.
WinFS построена на основе СУБД Microsoft SQL Server 2005, поэтому практически информация хранится в базах данных. WinFS может работать только в связке с дисковой файловой журналируемой системой NTFS, которая используется по умолчанию в Windows XP и Windows Vista (NTFS – это «родная» файловая система операционных систем Windows NT, к которым относятся последние две системы). Это связано с поддержкой в NTFS такого специфического механизма, как файловых потоков (filestream), а также с требованиями Microsoft SQL Server 2005 и некоторыми другими причинами.

Конечно, Windows XP работает и на FAT32, но использование FAT32 при размерах разделов более 32 GB было сочтено неэффективным в связи с тем, что размер кванта данных - кластера - растет вместе с размером раздела, поэтому при большем, чем 32 GB, размере раздела размер кластера растет до уровня, при котором потеря пространства будет слишком значительной. Это привело к созданию искусственного ограничения на размер создаваемого раздела под FAT32. При этом при увеличении объема раздела, отформатированного в файловой системе FAT32, объем кластера (квант данных, который занимает всегда одно и тоже, зависящее от объема всего раздела, место на диске, независимо от того, используется ли он полностью или же частично свободен) увеличивается, что приводит к более неэкономному использованию дискового пространства. Кроме того, FAT32 не поддерживает журналирование, что не позволяет протоколировать изменения в файлах и папках, что, в свою очередь, не позволяет обеспечить сохранность данных в случае их повреждения во время операций их создания, изменения, копирования и удаления. NTFS предоставляет все эти возможности.

Для сохранения информации в WinFS, WinFS должна знать, как именно описать эту информацию. Для описания информации используются специальные XML-схемы, которые определяют структуру данных, в которую записывается эта информация. Структура данных, точнее, класс (термин объектно-ориентированного программирования) внутри WinFS сохраняется в виде связанных таблиц. Каждый элемент информации имеет свой уникальный идентификационный ключ, т.н. GUID.

Существуют три основных объекта данных в WinFS. Это Item, Association и Extension. Первый из них дословно переводится как «элемент», второй – ассоциация, третий – расширение. Чуть ниже мы объясним, как взаимодействуют и как применяются эти объекты для хранения информации.

В WinFS, вообще говоря, можно хранить информацию в двух видах – в виде обычных файлов (т.н. File-Backed-Items) и в виде объектов данных WinFS (Items). Если первые могут быть сохранены напрямую в NTFS, то вторые являются специфичными объектами WinFS и в NTFS сохранены быть не могут. Обычные файлы не хранятся полностью напрямую в WinFS. Напротив, механизм их сохранения заключен в том, что WinFS, используя XML-схему формата файла, копирует данные файлы согласно схеме в структурированный объект WinFS. К примеру, после «сохранения» документа Word такие его метаданные, как информация об Авторе, комментарии, ключевые слова, количество страниц и т.д. переносятся в соответствующие поля созданного элемента типа данных System.Storage.Document. В тоже время те части файла, которые не переносятся в WinFS, сохраняются в виде файлового потока в специальной папке на том же диске, на котором установлена WinFS. Такими частями может быть, к примеру, аудио-поток, в хранении которого в базе данных нет целесообразности из-за невозможности его использования во время поиска, в то время как теги аудио-файла переносятся в WinFS.

Теперь, после того, как файл был распознан WinFS (этим занимается служба Windows File Promotion Manager), можно на основе анализа сохраненных о нем данных создать ассоциативные связи (“Assotiation”) с другими данными WinFS. К примеру, после анализа mp3-файла, WinFS может связать его с другими композициями из того же альбома, связать с композициями того же года первоначального исполнения. После этого вы, запустив ваш музыкальный плеер, можете открыть этот альбом или все песни, исполненные в этом году, и среди них появится эта новая композиция.
Если вы разработчик, то, возможно, вас не устроят стандартные схемы, поставляемые вместе с WinFS. К примеру, вы считаете необходимым иметь возможность указывать номер версии аудиокомпозиции, что не учтено в схеме аудиокомпозиций, которой руководствуется WinFS. Отлично! Вспомним концепцию reusable code – повторно используемого кода. Вместо того, чтобы заново описывать схему данных, вы можете расширить уже существующую схему путем написания расширения схемы (“Extension”) данными о версии аудиокомпозиции. После этого вам останется только обновить аудиокомпозиции в WinFS, чтобы они обладали расширенными возможностями, и вы теперь сможете проводить поиск по версии аудиокомпозиции.

Вместе с WinFS поставляется несколько стандартных схем, позволяющих работать с документами, с аудиозаписями, видеозаписями, фотографиями, сообщениями электронной почты, с календарем, задачами, событиями. Предполагается, что в будущем, когда будет готов полный продукт, независимые разработчики программного обеспечения, ISV (Independent Software Vendors), будут расширять WinFS своими предустановленными схемами данных. Это означает, что разработчик может внести изменения в уже существующие схемы на основе использования механизма Extensions либо же добавить новые схемы, после чего поставлять пакет установки WinFS вместе с этими измененными либо новыми схемами.

<font size=5><a name="preim"></a>Преимущества использования WinFS</font>

<font size=5><a name="polz"></a>Для пользователя</font>
Для конечного пользователя использование WinFS в Windows – это использование новых приложений, написанных с поддержкой WinFS. Такими программами могут быть медиа-плееры, текстовые редакторы, программы для работы с персональной информации (PIM – Personal Information Management), почтовые клиенты.
Преимущества заключены в том, что:
Все эти приложения (вполне возможно, написанные разными фирмами) используют одни и те же данные. Вспомните, как часто вам приходилось вводить свои контактные данные из одной почтовой программы в другую, заново восстанавливать список контактов в Outlook, переносить электронные сообщения из Outlook Express/Outlook в the Bat.

Аналогично, вспомните, как вам приходилось работать с несколькими медиа-библиотеками, если вы используете в семье разные медиа-плееры – к примеру, отец слушает музыку через WinAmp, а сын использует Windows Media Player для тех же целей. Музыка одна и та же, но оба приложения создают собственные библиотеки музыки, основываясь на этих песнях, но при этом записи, естественно, дублированы, далеко не всегда одинаковы, и поиск по обеим библиотекам оказывается не слишком эффективным.

Также, вспомните, сколько раз вам приходилось бороться с разными форматами документов Microsoft Office Word и Open Office.org Writer? Ведь вы, по сути, храните одну и ту же информацию, но т.к. вы не уверены, что у тех, кто будет читать ваши документы, будет, к примеру, Microsoft Office, вам приходится хранить рядом с вашими документами в формате Microsoft Word также и документы, оптимизированные под формат Open Document (формат данных Open Office).
Тем самым, благодаря унифицированным форматам данных, WinFS позволяет забыть о таких проблемах, как борьба форматов.

Во-вторых, это, конечно же, полнотекстовый поиск по всем документам. Как уже было указано ранее, в WinFS технология поиска очень гибкая, что позволяет очень эффективно находить нужные данные за короткие сроки. Хотя Windows Desktop Search и позволяет проводить полнотекстовый поиск, скорость поиска по WinFS несравненно выше благодаря нескольким другим механизмам, чисто технологически недоступным для применения в Windows Desktop Search.
Первый такой механизм – это механизм создания связей между данными внутри WinFS по желанию пользователя. Вы можете связать контакты с определенными группами документов (к примеру, вы можете связать контакт ваших коллег с офисными документами, уточнив более точные связи между отдельными документами и контактами). В отличие от Windows Desktop Search, где существует подобное решение, оформленное в виде объединения данных по ключевым словам, в WinFS вы можете связывать данные напрямую, без необходимости создания поисковых запросов и их сохранения. После этого, вы можете производить поиск по вашим документам, строя сложные запросы. К примеру, вы можете запросить все офисные документы, связанные с этой группой людей, где каждый участник – ваш коллега по отделу. Такие запросы без WinFS остаются фантазиями.

Второй такой механизм – механизм создания ассоциативных связей между данными. Как уже было приведено ранее, в WinFS есть специальная служба, которая анализирует хранящиеся в WinFS данные и на основании встроенных и созданных вами правил создает ассоциации между данными. К примеру, WinFS самостоятельно сделает вывод о взаимосвязи между документом и встречей, на которой вы запланировали представление этого документа (к примеру, статья, книга) благодаря тому, что оба объекта сохранены в WinFS и после этого WinFS проанализировала оба объекта.

<font size=5><a name="razrab"></a>Для разработчика</font>
Для разработчика WinFS как платформа предлагает вам использовать уже существующие схемы данных (такие как в Longhorn 4008 и т.д.). Также вы в праве создавать новые схемы и дополнять их (WinFS Extentions).
Во-вторых, WinFS может быть использована как корпоративная база данных. Т.к. в WinFS хранятся все ваши личные данные, и благодаря механизму расширений элементов WinFS, вы можете внести любые изменения в уже существующие форматах данных.
В-третьих, благодаря поисковым технологиям WinFS, вы можете разрабатывать новые приложения, внося в них возможности обращения к WinFS. Вы можете создавать сложные распределенные приложения, т.к. вы можете связываться с WinFS удаленно. Вы также можете обновлять выбранные группы файлов с другими машинами с WinFS, находящимися в сети.
Благодаря инфраструктуре правил (см. экспертные системы), WinFS можно использовать в ваших приложениях также как средство проведения сложных анализов данных, после чего использовать в ваших приложениях.
Благодаря механизму транзакций, вы как разработчик можете быть уверенными в том, что ни один из файлов, с которыми вы работаете, не будет потерян.
Благодаря механизму удаления/восстановления вы можете не задумываться о сохранении разных версий одних и тех документов.
Вы можете использовать механизм синхронизации данных для обеспечения актуальности данных в корпоративной сети.
Для получения более подробной информации по разработке приложений, использующих эти и другие возможности WinFS, обратитесь к справочной документации WinFS Beta 1 SDK, поставляемой вместе с WinFS Beta 1 Refresh.

<font size=5><a name="zakl"></a>Заключение</font>

Такова, в общих чертах WinFS, доступная на текущий момент, не реализующая некоторые из анонсированных под-технологий. Но основная логика уже практически существует, так что можно начинать писать приложения, адоптированные для WinFS

<font size=5><a name="pril1"></a>Приложение 1. WinFS Beta 1 Refresh</font>

В конце августа 2005 года Microsoft удивила весь мир выпуском первой бета-версии WinFS. Что оказалось наиболее интересным, WinFS Beta 1 работает только на Windows XP SP 2. WinFS устанавливается через Windows Installer и может быть также безболезненно удалена.

ВНИМАНИЕ: если вы сохранили какие-либо данные в WinFS, то мы настоятельно рекомендуем вам еще раз проверить содержимое WinFS, чтобы не потерять эти данные после удаления WinFS.

После установки и перезагрузки, в папке Мой Компьютер вы найдете новый объект, WinFS Stores (см. рис.1).


Рис.1

Открыв этот объект, вы увидите все т.н. stores, т.е. «хранилища WinFS», которые у вас установлены. После установки у вас будет хранилище по умолчанию, DefaultStore. Вы также можете создавать новые хранилища. К сожалению, в текущей бета-версии нельзя создавать хранилища на дисках, отличных от C: (см.рис.2.)


Рис.2

Отходя от WinFS Beta 1 Refresh, заметим, что после выпуска финального продукта после установки WinFS, в нее будут перенесены все ваши документы, вся электронная почта из Office Outlook/Windows Mail, все контакты из Office Outlook/Contacts, все записи о событиях и задачи из Office Outlook/Windows Calendar. К сожалению, пока что неизвестно, будет ли конечная версия WinFS устанавливаться на Windows XP, т.к. проводник Windows XP не предоставляет возможность фильтра по метаданным, кроме простой сортировки, в отличие от проводника Windows Vista, как было указано ранее. Поэтому в случае, если Windows Vista к моменту выхода WinFS будет продана в достаточно большом количестве экземпляров, Microsoft скорее всего предоставит WinFS только для Windows Vista. В противном случае, Microsoft внесет изменения в код проводника Windows XP, либо предложит пользоваться решениями третьих фирм.

Автор статьи после установки WinFS Beta 1 Refresh на свой компьютер перенес папку с документами в WinFS, так что на следующих скриншотах вы увидите, как выглядит WinFS после ее установки на компьютере автора.


Рис.3

После открытия «хранилища» DefaultStore, мы видим две папки, StoreInformation и Users (если у вас включена опция проводника отображать скрытые и системные файлы) (см.Рис.3). В папке Users предлагается создать папки для всех пользователей вашего компьютера. (см.Рис.4).


Рис.4

Как видите, у автора в этой папке лежит его личная папка (Daniel), общая папка (Public) и тестовая папка (WinFS Beta1 Sample Data Folder) (см.Рис.4). Наконец, в папке Daniel хранятся все его документы (см.Рис.5).


Рис.5

Как вы могли заметить, доступ к данным в WinFS предоставлен через специальный системный объект WinFS Stores, который лежит в папке Мой Компьютер. Второй способ доступа предоставлен посредством UNC-пути, хотя проводник Windows XP не различает оба способа в отношении адресной строки, т.е. на скриншоте вы видите, как выглядит папка, если переходить к ней через WinFS Stores. С другой стороны, если переходить к ней через UNC-путь, который выглядит следующим образом: localhostDefaultStoreUsersUserName, где localhost – имя вашего компьютера, DefaultStore – имя хранилища, с которым вы работаете, это может также любое другое, созданное вами, UserName – папка с именем, под которым вы зарегистрированы в системе, то вы работаете с файлами в WinFS как если бы они были просто в обычных папках в NTFS (см.Рис.6)


Рис.6

Продемонстрируем, как выглядят объекты WinFS, такие, как контакты (см.рис.7).


Рис. 7

На данный момент проводник в WinFS позволяет отображать только те поля (свойства) хранимых элементов и файлов, которые являются общими для всех элементов и файлов. Это означает, что, в отличие от WinFS, которая была в Longhorn сборок 3000-ой и 4000-ой серий, где вместо объекта WinFS Stores в проводнике были специальные объекты:


    1. Personal Contacts,
    2. Communication History,
    3. Documents,
    4. Music,
    5. Pictures & Videos,


в которых отображались только указанные типы данных и что позволяло использовать специфичные колонки данных, в текущей реализации WinFS такой возможности нет.
Кроме того, вы не можете с помощью стандартных средств Windows создавать специфичные для WinFS объекты, такие как контакты, встречи, задачи. Хотя, используя поставляемую с WinFS Beta 1 Refresh утилиту StoreSpy, вы можете импортировать электронную почту, контакты, встречи и задачи из Outlook. К сожалению, эта функция не работает, если Outlook не подключен к Exchange серверу. Для создания таких объектов вам придется самим писать приложения, создающие такие объекты, способные редактировать их. Тем самым, без наличия таких приложений, для конечного пользователя WinFS Beta 1 Refresh не представляет особого интереса.

<a name="systr"></a><font size=5>Приложение 2. Системные требования</font>

WinFS Beta 1 Refresh требует для установки компьютер с установленной операционной системой Windows XP SP2, жестким диском со свободным пространством не менее 700 MB, отформатированным под NTFS, процессором с тактовой частотой не менее 2 GHz, оперативной памятью не менее 512 MB, рекомендуется процессор с тактовой частотой 3.2 GHz и выше, и оперативная память от 1 GB и выше.
WinFS Beta 1 Refresh доступна обладателям подписки MSDN всех уровней и обладателям подписки TechNet, а также всем участникам конференции профессиональных разработчиков Microsoft PDC’05.
Планируется выход WinFS Beta 2 в мае 2006-го года, с интеграцией с Windows Desktop Search, с тем, чтобы при поиске через WDS, выдавались результаты поиска по WinFS. Неизвестно, будет ли WinFS Beta 2 предоставлена в открытый доступ. Третья бета-версия запланирована на ноябрь 2007-го года.

Russian WinFS Community
Daniel A. Kornev
January 16, 2006

Комментарии

Не в сети

А где скачать?

18.10.06 19:25
0
Не в сети

прил 2 прочитай наверно в ноябре 2007

18.04.07 18:14
0
Не в сети

гкхм помойму это можно сделать с помощью движки на сайте с ограничением прав(кто можит смотреть) и вставки тегов(описание) на файлы и поиска если уж так много файлов...

23.12.07 21:51
0
Для возможности комментировать войдите в 1 клик через

По теме

Акции MSFT
420.55 0.00
Акции торгуются с 17:30 до 00:00 по Москве
Все права принадлежат © ms insider @thevista.ru, 2022
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.072 секунд (Общее время SQL: 0.053 секунд - SQL запросов: 57 - Среднее время SQL: 0.00093 секунд))
Top.Mail.Ru