01.Blogs :
DanielKornev  
.NET Developer spokes about developing tommorow applications which are naturally based of data and realized as WinFS-ready applications.

Web 3.0 or World 1.0

Web 3.0 or World 1.0

Этим постом я немного отойду от основной тематики моего блога - WinFS - и попробую окинуть ситуацию более широко.

Какую ситуацию?

Как разработчика, использующего WinFS, меня, прежде всего, интересуют такие задачи, которые связаны с управлением, хранением и представлением данных. Размах весьма велик, т.к. именно данные насквозь пронизывают большинство задач программирования. Мы имеем несколько решений, охватывающие приложения для настольных компьютеров (Windows Applications), веб-приложения, наконец, приложения для карманных устройств. С точки зрения архитектуры мы также имеем несколько основных шаблонов. Традиционная модель клиент-сервер, трехуровневая модель и это все, практически. Количество веб-сайтов составляет собою астрономическое число. Только благодаря поисковым машинам можно как-то сориентироваться в этом огромном потоке информации.

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

Microsoft разработала .NET, набор технологий, который призван стать базисом, основой для всех будущих разработок ПО. .NET - это, практически, ряд спецификаций, рекомендаций и стандартов, реализованных в форме среды исполнения .NET Framework. Но всего этого мало.

Почему?

Потому что окружающий нас хаос информации разрастается что снежный ком, "лавина". Потому что управляемость сотен тысяч написанных приложений падает постоянно, с каждым новым приложением. Потому что новый пользователь порою уже просто не знает, что ему делать, когда ему не помогает ни Google, ни его любимые сайты. Потому что создание корпоративных веб-сайтов из удовольствия стало напряженной, полной ошибок, задачей, выполнение которой требует повторения решений уже решенных задач. Потому что действительно здравая концепция "reusable code" не так часто используется, как этого бы нам хотелось. Вместо решения действительно новых, интересных задач, вместо того, чтобы выйти в лес за грибами, мы стоим на крыльце, плетя корзину для грибов, мокасины для прогулки по лесу, каждый раз, когда мы захотим идти в лес. Не странно ли это?

Что же предлагаю я, скажете вы?

Ведь если я все это говорю, значит, у меня есть некоторые идеи о том, как решить эти проблемы.

Верно.

Данные.

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

Представление данных.

Как раз здесь возникает первые перемены. Мир меняется. Содержимое вашего сайта будет неактуальным через несколько минут после обновления его содержимого. Скорость изменений фантастически велика. А пользователи тратят непозволительно много времени на поиск информации на сайте, просто из-за неэффективного, неудобного размещения элементов данных на экране. Сам по себе сайт, изначально состоящий из набора ссылок, меняется. И наша задача - узнать, в какую именно сторону. Почему это интересно? Потому что технологии управления данными меняют суть сайтов. Благодаря тому, что есть ASP.NET, Atlas, Flash, WPF, web-приложения становятся все более похожими на Windows-приложения.

Тепершний сайт более чем когда либо является набором не просто ссылок, но центром сбора информации. Давайте посмотрим, что может стать будущим такого сайта.

Если следовать тактике, изложенной несколько выше, в разделе Данные, то можно получить сложную структуру, которая может предоставлять информацию в форме выборок, заданных пользователем с помощью фильтров. Что это означает? Это означает, что содержимое веб-сайтов становится все более и более динамическим, т.е. изменяемым. Использование технологий реляционных БД позволит получать достаточно релевантные результаты запросов без непосредственного участия человека. Иными словами, можно динамически формировать сайты, по мере необходимости в их существовании, их востребованности пользователями.

Представьте себе веб-сайт, который в зависимости от интересов пользователей меняет свое оформление, свое содержимое. Возможно даже, что сайт поменяет свое назначение (к примеру, сайт "Клуба одиноких сердец" начнет выполнять функции веб-сайта частной фирмы). Ссылка на ресурс перестает быть ссылкой на какое-то место вообще, но становится ссылкой на открытие необходимого представления информации. Предшественниками таких веб-сайтов можно назвать настраиваемые под индивидуального пользователя веб-портала.

С другой стороны, задумайтесь. А так ли вам необходимо существование конкретных сайтов? Когда вы ищете необходимую информацию, вы вполне можете сами решить, где какие объекты можно использовать для представления результатов поиска. Я говорю о таком вебе, когда сайты просто станут не нужны. Я говорю о вебе, когда не будет веб-страничек. Я говорю о таком времени, когда данные могут быть представлены в виде расширяемого числа контролов в 3D-окружении, согласно предустановленным и личным пользовательским стилям. Я говорю о том, что представление данных может быть более эффективным при использовании трех измерений, а не двух, о том, что пользователь должен иметь возможность самостоятельно выбрать расположение элементов. Я говорю о том, что информация должна быть четкой и по существу, должны быть четкие фильтры.

Почему такое решение может быть более эффективным? Скажите, вас очень раздражает реклама Google по сравнению с обычной, не направленной на ваши интересы? Согласитесь, всякий сайт в большинстве своем кроме того, что необходимо именно вам, одновременно с этим предоставляет огромное количество лишней информации, "как бы прилагаемой" к тому, что необходимо именно вам.

Что же в таком случае получает пользователь? Только то, что он запросил. А именно, удобную и знакомую 3D-оболочку, которая предоставляет ему необходимую информацию в том виде, в котором он привык с ней работать.

Что же должна она уметь еще?

Наверное, те, кто уже пробовал работать с Windows Vista, заметили в ней одну очень интересную особенность - People Near By Me. "Люди около меня" - так дословно можно перевести эту возможность, предоставляемую новой операционной системой. Что это такое? Это средство, позволяющее всегда знать, какие люди находятся в твоей сети (как в обычной, так и через VPN), в твоем домене. Вы можете обмениваться файлами с этими людьми, предоставлять возможность доступа к папкам в вашем компьютере. Вы можете синхронизировать необходимые данные с ними.

Это лишь часть новых возможностей. Я не говорю о тех возможностях, которые может предоставлять Windows Vista, я говорю о тех возможностях, которые будут реализованы в ближайшие несколько лет.

Считаю естественным такое более дружелюбное решение - People Near By Me. Почему дружелюбное? Потому что у простого пользователя нет желания разбираться в работе двигателя машины, когда ему нужно ехать. Поэтому гораздо проще выбрать человека или группу людей из списка People Near By Me и через контекстное меню предоставить им необходимый доступ к данным. Но это лишь часть возможностей такой оболочки.

Исследования показывают, что человек предпочитает видеть всю информацию о конкретном объекте в одном месте, невзирая на то, что она может быть и зачастую собрана из различных источников.

Думаю, некоторые системные админстраторы и реже разработчики знают, что в Windows NT есть сервис Messenger, который позволяет обмениваться короткими сообщениями между пользователями группы или домена. Конечно же, это удобное средство, но, к сожалению, оно предоставляет крайне ограниченные возможности.

3D-оболочка должна предоставлять возможность также обмениваться сообщениями с теми людьми из списка People Near By Me. Мало того. Почему бы не сделать единый репозитарий всех контактов? Тогда в репозитарии можно было бы собирать контактную информацию, причем собирать ее из различных источников и представлять пользователю в единой стандартной форме контактных карточек.

Почему это необходимо?

Потому что мы все же люди, независимо от того, заказчики мы или соседи по дому, сотрудники по работе или знакомые по web-чатам. Гораздо удобнее связываться с людьми, используя одни и те же контактные сведения, единый интерфейс. Потому что отпадет проблема несовместимых форматов. Потому что будет единое средство, применимое в различных случаях.

Давайте вспомним основное предназначение программ. Программы решают те задачи, которые можно автоматизировать. Так давайте же использовать программы, вместо того чтобы бороться с их малой управляемостью, несовместимостью и низким usability.

Данные можно сохранять в базе данных и описывать в форме XML схем, что позволит расширять наборы данных в случае необходимости. К примеру, можно расширить схему, описывающую контакт, путем добавления информации о заказах вашего контакта. Примеров много, главное - результат.

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

Теперь настает очень важный момент. Давайте, к примеру, будем сохранять информацию, принадлежащую пользователям частной сети, сохранять в форме копий на компьютерах участников; так, чтобы можно было получить необходимые вам сведения, лишь войдя в виртуальную сеть. Кроме того, благодаря наличию сменных носителей информации можно те документы, те данные, которые принадлежат лично вам и которые вы не намерены предоставлять в общественное пользование, носить на вашей USB флэш-карте. В таком случае, после входа в виртуальную частную сеть вы получаете доступ к вашему привычному окружению в любом месте, на любом компьютере. Такой подход может решить проблему Single-sign-on, когда вы получаете доступ ко всем ресурсам сети путем единовременного ввода ваших учетных сведений. Сеть позволит вам получить всю необходимую вам информацию благодаря механизму связывания данных. В любой точке мире вы можете попасть в свое окружение.

Таково мое представление о том будущем, которое наступит через несколько (возможно, десятков) лет. Кто знает?

А таков набор технологий, которые могут помочь создавать такие продукты - WinFS, Windows Communication Foundation, Windows Presentation Foundation, Peer-to-Peer.


Все вышеизложенное является моим личным мнением, изложено "КАК ЕСТЬ" и не дает никаких гарантий, и права.

posted on Friday, February 03, 2006 2:27 AM by DanielKornev


 
03.UPDATE CALENDAR :
<February 2006>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
2627281234
567891011

05.MY LINKS :

07.Subscriptions :

Subscriptions


© Copyright 2005 Microsoft Corporation. All Rights Reserved.
Terms of Use | Privacy Statement | Code of Conduct | Hosted by MaximumASP for Microsoft
WHO-BAR