Интеграция Windows Search с корпоративными источниками данных
Windows Explorer эволюционировал, позволив компьютерным пользователям искать всевозможные типы файлов путем ввода имени в поле для поиска. Многие из вас, судя по статистике, с удовольствием пользуются поисковыми возможностями Windows Vista, доступными через меню Start или прямо в Windows Explorer. Пожалуй, уже мало кто помнит те времена, когда было необходимо грамотно выстраивать иерархию папок, а для поиска файла использовалось одно лишь его имя. Мы часто полагаемся на так называемый доменный поиск (в музыкальных проигрывателях, почтовых клиентах, приложениях для работы с изображениями), но с Windows Vista и Windows 7 мы сделали возможным поиск внутри пространства имен и среди пространств имен. Данная статья посвящена новой функции поиска, которая позволяет осуществлять поиск на других компьютерах и даже серверах корпоративной сети. Авторами статьи выступили Олвин и Скотт, программные менеджеры, вместе с нашим разработчиком Брэндоном из команды «Find and Organize». – Стивен
В поиске нужной информации
Первостепенной задачей Windows Explorer является помощь в поиске нужной информации и только потом дальнейшие операции с ней (копирование, открытие, удаление и т.п.). Для информации, хранящейся на вашем компьютере или компьютерах домашней сети, в Windows 7 предусмотрены библиотеки и HomeGroup. Однако, мы решили не останавливаться на достигнутом. В течение нескольких последних лет мы наблюдали, как корпоративные пользователи начали миграцию всей информации в такие централизованные хранилища, как SharePoint. Подобные продукты, как правило, предлагают расширенные возможности по совместной работе, управлению рабочей средой и архивации, которые в значительной степени упрощают жизнь ИТ-специалистам.
Рис. 1. Важная корпоративная информация часто располагается на локальных компьютерах, различных централизованных хранилищах, а также вне корпоративной сети
К сожалению, разнообразие интерфейсов таких продуктов оказывает отнюдь не положительное влияние на конечных пользователей, вынужденных переучиваться и часто не понимающих, почему конкретный продукт, к примеру, не поддерживает столь привычный drag-and-drop. Принимая во внимание направленность таких хранилищ информации, со временем они увеличиваются до громадных размеров и часто пользователи не могут вспомнить, где хранится конкретный документ. Поэтому порой приходится пролистывать длинные списки, чтобы отыскать необходимый документ. Корпоративные пользователи неоднократно обращались с просьбой предложить решение, которое упростило бы поиск важной информации в различных хранилищах информации без необходимости покидать привычную среду Windows.
В связи с возникновением такой тенденции и нынешним отсутствием в Windows интеграции с системами управления контентом и службами индексации контента было принято решение о создании функции, отвечающей этим требованиям. В процессе разработки мы придерживались следующих принципов:
· Естественное поведение для пользователей. Конечным пользователям важно, чтобы поиск в несвязанных хранилищах протекал незаметно для них, чтобы поиск в удаленных хранилищах был неотличим от поиска по локальным дискам, чтобы при необходимости пользователи могли переключаться между локальными и удаленными источниками информации.
· Не требует усилий при развертывании. ИТ-специалистам не очень-то нравится проводить развертывание дополнительного кода, поэтому они предпочитают решения, которым требуется минимальное обслуживание. Процедура подключения к этим источникам должна быть простой и прозрачной, поскольку никто не хочет лишний раз обращаться в поддержку, когда требуется выбрать новое место поиска.
· Не требует особых знаний при разработке. Разработчикам важно быстро и просто реализовать новые функции в своих решениях. Существует масса источников, поддержку которых еще предстоит обеспечить, поскольку ИТ-специалисты не хотят ограничиваться определенной серверной технологией.
Почему федеративный поиск?
Стоит сказать, что федеративный поиск является далеко не единственным способом решения проблемы. Можно было бы использовать грубую силу: взять технологию индексации из Windows Search и просто проиндексировать содержимое удаленных компьютеров. Однако, это не лучшее решение, поскольку хранить индекс информации со всей сети на компьютере пользователя неэффективно, особенно учитывая ее динамичное обновление. Принятые в компании политики конфиденциальности информации могут запрещать хранение не только индекса сети, но и локального индекса.
К счастью, есть более удобное решение – федеративный поиск. Федеративный поиск позволяет осуществлять поиск по удаленной веб-службе прямо из Windows Explorer, при этом результаты поиска возвращаются в виде обычных файлов. Самая серьезная преграда для выполнения федеративного поиска была решена. Это все потому, что эти хранилища, как правило, индексированы самим сервером (или другим сервером). Собственно, для таких задач существуют отдельные программные продукты, как Microsoft Search Server, которые не просто индексируют содержимое, но и возвращают результаты поиска по стандартному веб-протоколу. И все благодаря OpenSearch и RSS-клиентам (включая Internet Explorer, Microsoft Search Server и ряд сторонних продуктов).
В Windows 7 поддержка Federated Search обеспечивается с помощью OpenSearch v1.1. Мы выяснили, что такое решение обеспечивает хороший баланс между мощью служб управления контентом и мощью локальных файловых операций в Windows.
Прост и естественен в использовании
Windows Explorer не вызывает у пользователей затруднений. Они знают, каким образом работать с панелью навигации. Они знают, как выбрать нужный элемент (или несколько), как его открыть. Большинство знает, как вызвать контекстное меню или как отыскать нужную команду в панели команд. Пользователи знают, что они могут перетаскивать элементы из одного места в другое. Знают, как сменить режим отображения информации. Мы надеемся, что они знают, и как осуществлять поиск с помощью поля в Windows Explorer, поэтому в Windows 7 им будет гораздо проще находить нужную информацию, а с помощью панели предварительного просмотра быть уверенными в том, что нашли именно то, что нужно.
Рис. 2. Поиск по SharePoint-сайту с помощью федеративного поиска прямо из Windows Explorer
Основным преимуществом интеграции функции федеративного поиска в Windows Explorer является знакомый и привычный интерфейс. Это станет очевидным, как только попробуете функцию в действии, хотя за кулисами процесса происходит очень много операций. Некоторые приложения, как, например, Microsoft Word, умеют работать с URL-адресами. Поэтому открытие документа Word с веб-сервера протекает очень быстро. Но большинство популярных приложений умеют открывать файлы или локально, или по стандартным протоколам общего сетевого доступа. Сюда относятся и встроенные приложения, как, например, Notepad и Paint, а также сторонние приложения, среди которых Photoshop и iTunes.
Для решения этой проблемы мы реализовали мгновенную загрузку файла в интернет-кэш до того, как он будет открыт в приложении или с файлом будут произведены какие-либо операции (к примеру, будет использовано меню SendTo), предполагающие наличие локальных объектов. Это позволило предложить пользователям достаточно легковесный с точки зрения нагрузки на сервер поиск, при котором отображены мета-данные и миниатюры файла без загрузки самого файла. Затем, если вы решите предпринять какие-либо действия (выполнить предварительный просмотр или открыть файл), ОС в фоновом режиме выполнит копирование файла на жесткий диск, если потребуется.
Подобное решение позволило нам работать с существующим набором приложений и не просить разработчиков вносить изменения в свои приложения. Однако, во многих случаях приложения могут добавить новые возможности. Взять, к примеру, Windows Photo Viewer, в которой была добавлена поддержка нефайловых объектов. Это значит, что при открытии изображения из результатов поиска загрузку приложения осуществляет встроенный просмотрщик, а не Windows Explorer. Многие спросят, какая разница, но данный способ позволяет использовать кнопки Forward/Back для перемещения по результатам поиска. Поэтому при щелчке по кнопке будет загружен следующий результат. Начиная с PDC, мы начали сотрудничество с ISV, чтобы те внесли в свои приложения поддержку сценариев федеративного поиска, и продолжим свою работу на пути к финальному релизу, предложив свою помощь по интеграции в приложения новых возможностей Windows Explorer.
И, наконец, наша реализация поддерживает стандартные операции с буфером и drag-and-drop. Поэтому при перетаскивании документа Word из результатов федеративного поиска на рабочий стол, файл будет просто скопирован. При этом возникнет традиционный диалог копирования с индикацией уровня выполнения и возможностью отмены.
Подождите, это еще не все! В бесчисленном множестве Windows-приложений используется так называемый общий файловый диалог (Common File Dialog). Это специальное окно Windows Explorer, которое позволяет искать и выбирать файлы для открытия или вставки в текущее приложение не выходя из него. Если вы хоть раз заходили в меню File и затем выбирали Open или Save as в любом из приложений, то могли видеть различные версии этого диалога. PowerPoint, к примеру, использует общий файловый диалог для вставки изображений. Это значит, что из самого PowerPoint при щелчке на кнопке Insert Picture можно выбрать ссылку федеративного поиска, отыскать нужное изображение и вставить прямо в PowerPoint. Эта функция работает в любом приложении, в котором используется общий файловый диалог!
Рис. 3. Вставка изображения в PowerPoint с помощью федеративного поиска
Федеративный поиск призван обеспечить простой доступ к удаленным файлам через знакомый интерфейс. Функция обладает многими достоинствами, но бывают ситуации, когда серверный веб-интерфейс имеет ряд преимуществ. Речь идет о возможности создания сложных поисковых запросов, навигации или выполнения других задач. Windows 7 призвана стать мостом к этим хранилищам. После выполнения поиска по заданному местоположению в командной строке появится кнопка «Искать на сайте», которая позволит отправить запрос прямо на серверный веб-интерфейс браузера, используемого по умолчанию. При щелчке правой кнопкой на результатах поиска пользователю станет доступна опция «Открыть папку с файлом», которая открывает в браузере папку, в которой хранится документ.
Столь тесная интеграция федеративного поиска в Windows в значительной степени упрощает работу с удаленными хранилищами информации не заставляя отказываться от имеющихся возможностей серверных продуктов.
Прост в развертывании
Еще одной задачей было упрощение задачи по развертыванию технологии. С нашей стороны было бы непрактичным выпускать Windows с поддержкой всех существующих решений, поэтому мы сосредоточились на том, как упростить процедуру подключения к конкретной службе.
Мы прибегли к использованию модели, напоминающей добавление сайта в список избранных ссылок. На веб-сайте размещается ссылка на .osdx-файл (в качестве примера см. cтраницу поиска на Channel 9). Сам .osdx-файл представляет собой простенький XML-файл, использующий формат OpenSearch для описания способа подключения к веб-службе и предоставляющий этой службе контроль над представлением информации в Windows Explorer. При щелчке на этой ссылке Windows осуществляет фоновую установку, которая добавляет так называемый поисковый коннектор (search connector) к веб-службе и размещает ссылку на него в панели избранного Windows Explorer.
Если вы являетесь системным администратором, то скорее всего, захотите самостоятельно обозначить несколько коннекторов, которыми могут воспользоваться сотрудники вашей компании для поиска по корпоративной сети или внутреннему SharePoint-сайту. Сделать это можно путем интеграции файлов-коннекторов (.searchconnector-ms) с помощью традиционных техник развертывания (создание образов, групповые политики или загрузочные сценарии). Удобство такого решения заключается в простоте XML-файлов и отсутствии необходимости развертывания кода. Кроме того, через групповые политики можно закрепить ссылки на коннекторы в меню Start: в редакторе групповых настроек необходимо открыть User Configuration> Administrative Templates > Windows Components > Windows Explorer и активировать политику под названием «Pin Libraries or Search connectors to Search again links and start menu».
Рис. 4. Запуск федеративного поиска по корпоративной сети из меню Start
Прост в разработке
Эта технология, конечно же, зависит от наличия поддерживающих ее служб. И хотя на сегодняшний день есть всего несколько служб, предлагающих .osdx-файлы, существует огромное количество служб, отвечающих основным требованиям OpenSearch.
Мы уже ощутили положительную реакцию энтузиастов и ISV, при этом стало ясно, что на самом деле совсем несложно научить практически любую службу работать с платформой федеративного поиска. Если вы разработчик и желаете обеспечить поддержку платформы Windows 7 Federated Search в существующей веб-службе, всего-то и нужно воспользоваться службой, принимающей запросы типа http GET с условиями поиска, указываемыми где-то в URL, а также возвращающей результаты в форме RSS или Atom. Удовлетворить эти требования в большинстве современных приложений, предоставляющих возможность поиска через браузер, не составит труда.
Результаты должны содержать основные RSS-тэги, среди которых <link>, <title>, <description>, <pubDate>, однако ими не ограничиваются: существует масса других, которые можно включать в результаты и которые позволят увеличить удобство работы конечного пользователя.
Хотелось бы отметить, что мы опубликовали документ под названием Windows 7 Federated Search implementer’s guide с детальной информацией о том, как заставить ваш источник данных работать с федеративным поиском в Windows 7. Есть интересная сессия с PDC, которая рассказывает, как создать совместимую с платформой Windows Federated Search веб-службу для существующей SQL-базы.
Брэндон Пэддок (Brandon Paddock), Скотт Дарт (Scott Dart) и Олвин Вайместер (Alwin Vyhmeister),
команда Find and Organize