[ Smart Client против веб-приложений ]

После прочтения статьи «Р§С‚Рѕ такое Smart Client Рё почему будущее Р·Р° РЅРёРј?» (спасибо Вадиму Артамонову Р·Р° наводку, Сѓ него РІС‹ можете ознакомиться СЃ его мыслями Рё комментариями РїРѕ этому РїРѕРІРѕРґСѓ), СЏ был просто возмущен Сѓ меня появились некоторые мысли Рё комментарии.

(это уже вторая редакция этой заметки, потому что первая по какой-то причине не сохранилась на компьютере)

Р?так, РїРѕ РїРѕСЂСЏРґРєСѓ, СЃ цитатами…

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

Давайте определимся. Речь идет РѕР± универсальной программе для СЂРµС?ения любой задачи, или Рѕ программе для СЂРµС?ения определенной задачи, РЅРѕ которая СЃРІРѕРёРј существованием устраняет возможность аналогов, Рё потому универсальна?

Ключевыми особенностями, отличающими Smart Client, являются: 1. Богатый пользовательский интерфейс.

Что значит богатый? Значит ли это, что РІ интерфейсе Р±СѓРґСѓС‚ отражены РІСЃРµ возможности программы? Р’ таком случае РІСЂСЏРґ ли РјРѕР¶РЅРѕ назвать такой интерфейс удобным, потому что непонятно поведение начинающих Рё продвинутых пользователей. Если Р¶Рµ разделять программу РЅР° РґРІРµ части (lite Рё pro версии), то РјС‹ сталкивается СЃ несколькими проблемами. Р’Рѕ-первых, начинающему пользователю придется признать, что РѕРЅ чайник, Рё РЅРµ справиться СЃ pro версией. Р’Рѕ-вторых, пользователю придется устанавливать РЅРѕРІСѓСЋ версию программы РїСЂРё переходе РЅР° pro версию СЃ lite. Р’-третьих, РІ pro версии может быть недоступна некотрая простота операций, которая была РІ lite версии. Если Р¶Рµ пытаться объединить РґРІРµ версии РІ РѕРґРЅРѕР№ программе (как, например, ICQ), то это приведет Рє увеличению размера программы, что РЅРµ всегда С…РѕСЂРѕС?Рѕ… (РїРѕ себе знаю, программы более 3РњР± меня просто пугают)

Предпосылок Сѓ появления Smart Client очень РјРЅРѕРіРѕ. Рассмотрим лиС?СЊ некоторые РёР· РЅРёС…: 1. Пользователи любят насыщенный Рё удобный пользовательский интерфейс.

Насыщенный Рё удобный, РјРЅРµ кажется, вещи РІСЂСЏРґ ли совместимые. Давая слиС?РєРѕРј РјРЅРѕРіРѕ выбора пользователю (насыщенность), РјС‹ заставляем его думать Рё задавать РІРѕРїСЂРѕСЃС‹ Рѕ целесообразности наличия той или РёРЅРѕР№ операции, РєРЅРѕРїРєРё или действия. Рђ как РіРѕРІРѕСЂРёС‚ РіРѕСЃРїРѕРґРёРЅ РЎ. РљСЂСѓРі «РќРµ заставляйте меня думать».

Сколько Р±С‹ СЃРёР» РЅРµ потратили разработчики веб-приложения РЅР° придание ему РІРЅРµС?него РІРёРґР° Рё возможностей Windows-приложения, РїСЂРё наличии альтернативы пользователь всегда выберет Windows-приложение.

Красота РІРЅРµС?него РІРёРґР° — понятие субъективное Рё РЅРµ столь важное. РЇ готов терпеть веб-сервис СЃРѕ стандартными СЃРёРЅРёРјРё подчекнутыми ссылками, если РѕРЅ работает как РјРЅРµ надо. Р? РЅРµ всегда возможности Windows-приложения РЅСѓР¶РЅС‹ веб-сервису. Р’СЃРµ зависит РѕС‚ задач, которые стоят перед веб-приложением.

Да Рё сколько Р±С‹ тонн сложнейС?РёС… скриптов РЅРµ написали создатели веб-приложения, РІСЃРµ равно РјРЅРѕРіРёРµ удобства, Рє которым пользователь привык РІ Windows-приложениях, там останется недоступными.

РњРЅРµ кажется, что тонны скриптов — это лиС?СЊ РІРѕРїСЂРѕСЃ профессионализма программиста или команды, создающей веб-сервис. РњРѕР¶РЅРѕ предложить Рё «С‚яжелое» Рё «Р»РµРіРєРѕРµ» СЂРµС?ение. Рђ РјРЅРѕРіРёРµ удобства РјРѕР¶РЅРѕ повторить РґСЂСѓРіРёРјРё средствами.

Веб-приложение разработать сложнее, да и возможности программиста сильно ограничены.

СЃРј. РІС‹С?Рµ насчет тонн скриптов

Сравните сложность реализации контекстного меню в Windows и веб-приложении, сравните сложность реализации дочерних, особенно модальных диалогов, попробуйте реализовать drag’n’drop OLE-объектов, или фоновые потоки обработки.

А почему в веб-приложении надо использовать контекстное меню? Если стоит конкретная задача произвести какие-то действия над объектом, то есть способы показать весь спектр этих действий. Вопрос в грамотном применении контекстной помощи и современных технологий, которые позволяют сделать и drag’n’drop, и модальные диалоги.

Пользователи любят иметь мощные компьютеры Рё хотят контролировать СЃРІРѕСЋ информацию. Да, требования Windows-приложения Рє возможностям клиентского компьютера часто РІС‹С?Рµ. РќРѕ РјРЅРѕРіРѕ ли сейчас осталось компьютеров СЃ меньС?Рµ чем 128 мегабайтами памяти Рё процессором класса Pentium?

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

Да и хранить свою персональную информацию как-то спокойнее у себя на локальном диске – вдруг что случится, или вдруг она понадобится вам при отсутствии соединения с Internet.

Локальный РґРёСЃРє может Рё «РїРѕСЃС‹РїР°С‚СЊСЃСЏ», Рё РІРёСЂСѓСЃ подхватить, Рё перебои СЃ электричеством РЅРµ такая СѓР¶ редкая вещь. Рђ если информация понадобилась, РєРѕРіРґР° локального РґРёСЃРєР° нет РїРѕРґ СЂСѓРєРѕР№? РњРЅРµ кажется, что хранить информацию РІ интернете (особенно, если платить Р·Р° это) — надежнее, Рё РѕРЅР° всегда РїРѕРґ СЂСѓРєРѕР№, РІ любой точке планеты.

Мощные клиентские приложения снижают нагрузку РЅР° сервер. Чем больС?Рµ нагрузки РїРѕ обработке Рё отображению информации РІС‹ переносите РЅР° клиента, тем более масС?табируемым становится РІР°С?Рµ приложение, С‚.Рє. нагрузка РЅР° сервер уменьС?ается, Рё тот Р¶Рµ сервер сможет выдержать больС?Рµ пользователей.

Рђ РґРІР°, пять, сто серверов? Как говорится, it depends…

Сетевое соединение есть РЅРµ везде Рё РЅРµ всегда, надежность его ограничена. Веб-приложения бывают самые разные, очень неудобные Рё РЅРµ очень удобные, красивые Рё РЅРµ очень, РЅРѕ РІСЃРµ РёС… между СЃРѕР±РѕР№ объединяет РѕРґРЅРѕ: РІ каждом РёР· этих приложений пользователь может увидеть (Рё регулярно РІРёРґРёС‚) РѕРґРЅСѓ Рё ту Р¶Рµ страничку: The page cannot be displayed. РќРµ правда ли, знакомо? Р? РЅРµ существует СЃРїРѕСЃРѕР±Р° эту проблему СЂРµС?ить. Это невозможно РІ принципе. Нет соединения (РїРѕ миллиону причин) – нет приложения.

Согласен. Но вы ведь все работает над этим? :)

Smart Client же при отсутствии соединения предоставит возможность работать в оффлайн-режиме.

Р?ли РЅРµ предоставит, если для работы ему РЅСѓР¶РЅС‹ данные, которые РѕРЅ РЅРµ может получить, РїРѕ причине отсутствия соединения.

Сценарий работы пользователя с приложением может быть управляемым событиями (нотификациями). [...] Есть техники, позволяющие сделать это и в веб-приложениях (пример – Outlook Web Access), но применить их сложнее, возможности ограничены, да и постоянно запущенный браузер тоже не хочется держать.

Рў.Рµ. РјС‹ сворачиваем программу РІ трей, Рё РѕРЅР° РїРѕ сути РЅРµ работает, Р° ресурсы компьютера потребляет? Р?ли разделить нотификатор Рё программу, тогда это СѓР¶Рµ РґРІРµ программы. Р? почему нотификаторы веб-сервисов — это сложно? Навскидку, Gmail notifier Рё Bloglines notifier. Р? РЅРµ надо держать браузер постоянно открытым. Просто получаеС?СЊ уведомление, открываеС?СЊ браузер, выполняеС?СЊ задачу, закрываеС?СЊ браузер. РЎ РґСЂСѓРіРѕР№ стороны, 1 браузер Рё доступ Рє пяти сервисам, РїРѕ-моему, лучС?Рµ, чем 5 работающих клиентов.

Веб-приложения сильно нагружают канал. Представьте РЅР° секундочку, что РІС‹ ничего РЅРµ знаете Рѕ веб-программировании. Вообще ничего: РЅРё Рѕ HTML, РЅРё Рѕ HTTP, РЅРё Рѕ XML. Представили? Теперь представьте, что Рє вам РїСЂРёС…РѕРґРёС‚ человек, которые предлагает вам революционную технологию создания приложений, которые исполняются внутри РѕСЃРѕР±РѕРіРѕ приложения – браузера Рё РЅРµ требует инсталляции РЅР° клиента. Р? этот человек начинает вам рассказывать, что такое веб-приложение: «Рисуем форму приложения, наполняем ее элементами управления, описываем логику обработки Рё валидации введенных пользователем данных РЅР° клиенте, затем наполняем эту форму данными Рё отправляем клиенту, РіРґРµ браузер интерпретирует присланные данные вместе СЃ описанием формы (которое часто РїРѕ размеру больС?Рµ, чем сами данные) Рё готово!В». Р’С‹ говорите: «Ух ты! Рђ что РїСЂРѕРёСЃС…РѕРґРёС‚, РєРѕРіРґР° РјС‹ идет СЃ этой формы РЅР° РЅРѕРІСѓСЋ форму, реализуя последовательный процесс обработки?В». РћРЅ: «Опять РїСЂРѕРёСЃС…РѕРґРёС‚ то Р¶Рµ самое. Сервер посылает РЅР° клиента описание формы Рё данные.В». Р’С‹: «Ух ты! Рђ если пользователь возвращается РЅР° первую форму, Рє нему СѓР¶Рµ только данные обновленные прилетят, само описание формы надеюсь будет закэС?ировано?В». Р’ ответ незнакомец краснеет Рё признается, что сколько Р±С‹ раз РІ день пользователь РЅРµ заходил РЅР° РѕРґРЅСѓ Рё ту Р¶Рµ страницу веб-приложения, РїСЂРё каждом РЅРѕРІРѕРј заходе РЅР° страницу Рє нему опять Р±СѓРґСѓС‚ отправляться Рё данные, Рё описание формы, которое часто может быть больС?Рµ РїРѕ размеру, чем сама форма…
Сейчас эта, РЅР° РјРѕР№ взгляд, вопиющая нелепость веб-приложений стала настолько привычной, что никто РЅРµ обращает РЅР° нее внимания, принимая это как само СЃРѕР±РѕР№ разумеющееся. РќРѕ попробуйте свежим взглядом взглянуть РЅР° это – РЅРµ кажется ли вам это слиС?РєРѕРј нелепым? Да, есть техники, которые позволяют уменьС?ить влияние этого, РЅРѕ нет возможности избежать его совсем. Рђ ведь РјС‹ еще РЅРµ говорили Рѕ post back…

СЃРј. РІС‹С?Рµ насчет тонн скриптов

РўСѓС‚ остается лиС?СЊ вспомнить, что HTML создавался как язык представления информации, связанной перекрестными ссылками, РЅРѕ никак РЅРµ для интерактивных приложений.

РџСЂРё грамотном применении РѕРЅ Рё остается языком разметки, Р° Р·Р° интерактивность отвечают РґСЂСѓРіРёРµ технологии, специально для этого придуманные — Javascript, DHTML Рё Flash

Smart client дает пользователю привычный интерфейс пользователя.

привычный не всегда значит удобный.

Давайте опять обратимся РІ РїСЂРѕС?лое: помните времена DOS, РєРѕРіРґР° каждое приложение старалось быть непохожим РЅР° РґСЂСѓРіРёРµ? Везде были СЃРІРѕРё быстрые клавиС?Рё, СЃРІРѕР№ стиль размещения меню, панели инструментов, СЃРІРѕР№ стиль диалогов Рё С‚.Рґ. [...] Р? как РІСЃРµ изменилось РІ Windows: приложения стали РїРѕС…РѕР¶Рё РґСЂСѓРі РЅР° РґСЂСѓРіР° (меню, панель инструментов, строка состояния, контекстные меню РїРѕ правой РєРЅРѕРїРєРµ РјС‹С?Рё, общий буфер обмена Рё С‚.Рґ.)
[...]
Потом РІСЃРµ РІРґСЂСѓРі изменилось, РєРѕРіРґР° появились веб-приложения. Каждый программист старается сделать СЃРІРѕР№, РЅРё РЅР° РєРѕРіРѕ РЅРµ РїРѕС…РѕР¶РёР№ интерфейс, выразив таким образом СЃРІРѕСЋ индивидуальность. Р?Р·-Р·Р° этого переход например РёР· РѕРґРЅРѕРіРѕ Р?нтернет-магазина РІ РґСЂСѓРіРѕР№ заставляет потратить время РЅР° освоение РЅРѕРІРѕРіРѕ интерфейса пользователя. Это РІСЃРµ равно, что производители автомобилей старались Р±С‹ кто РІРѕ что горазд, заменяя руль рычагами Рё педалями, заворачивая спидометр РІ обратную сторону Рё придумывая каждый СЃРІРѕР№ алгоритм переключения РєРѕСЂРѕР±РєРё передач. Рђ Smart Client позволяет вернуться Рє привычному Рё СѓРґРѕР±РЅРѕРјСѓ интерфейсу.

Р’РѕРїСЂРѕСЃ Рѕ стандартах, Рё ,как это РЅРё странно, РІ интернете РѕРЅРё тоже есть. Если РІ команде, разрабатывающей веб-сервис (Р° РѕРґРЅРѕРјСѓ человеку это РІСЂСЏРґ ли РїРѕРґ силу), есть грамотный информационный архитектор Рё юзабилист, то больС?инству (Р° всем РЅРµ СѓРіРѕРґРёС?СЊ) конечных посетителей будет СѓРґРѕР±РЅРѕ пользоваться сервисом. Рђ РІРѕС‚ программы зачастую разрабатываются программистами-одиночками, которые слабо представляют, что такое юзабилити.

Хотя, нельзя отрицать и некоторых преимуществ, присущих веб-приложениям. Рассмотрим и их: 1. Веб-приложение не нужно устанавливать.

Хотя РёРЅРѕРіРґР° для СѓРґРѕР±РЅРѕР№ работы СЃ сервисом РЅСѓР¶РЅРѕ доустанавливать дополнительные расС?ирения (extentions), уведомители (notifiers) Рё панели (toolbars).

Веб-приложения доступны РёР· Р?нтернет-кафе.

… РІ любой точке РјРёСЂР°…

Р’СЃРµ РІС‹С?есказанное РЅРµ означает, что завтра Р¶Рµ РјС‹ РІСЃРµ должны отказаться РѕС‚ веб-приложений Рё перейти Рє созданию Smart Client для всех РЅР° свете задач.

Ключевое здесь «РїРµСЂРµР№С‚Рё Рє созданию». Рђ РІ это время веб-сервисы типа Gmail, Flickr, BaseCamp Рё РґСЂСѓРіРёРµ РІРѕРІСЃСЋ С?агают РїРѕ планете Рё завоевывают пользователей, которых потом сложно будет переманить РЅР° сторону Smart Client’Р°.

Поэтому будущее, конечно, за Smart Client, а удел веб-приложений – стать визитной карточкой и использоваться для рекламы.

Веб-приложение не может быть визитной карточкой, потому что в таком случае оно будет простым сайтом, а не приложением.

Р? еще раз повторюсь:
РїРѕРєР° РёРґСѓС‚ рассуждения Рѕ создании Smart Client’Р°, веб-сервисы СѓР¶Рµ здесь

P.S. Нет, РІСЃРµ-таки первая редакция была лучС?Рµ…

20 марта 2005  |  комментарии RSS 2.0  |  trackback   |  

Трэкбэки

  1. inforedesign » Blog Archive » Некоторые преимущества веб-сервисов перед локальными РєР»Р

Комментариев: 7

  1. Alex Shilyaev

    Вообще-то товарищ Рѕ своем Smart Client’Рµ дело РіРѕРІРѕСЂРёС‚. Есть доля правды РІ том, что написать клиента СЃ РІРёРЅРґРѕРІСЃ-интерфейсом часто проще Рё быстрее, чем РІ РІРёРґРµ веб-приложения. Особенно, если это касается бизнес-приложений.

    Веб-приложения построенные РЅР° использовании Javascript/HTML (типа Gmail) сложны Рё РґРѕСЂРѕРіРё. РќР° такие проекты может РЅР° текущий день выделить деньги только такая контора как Google, который вложил РІ изучение подобных интерфейсов миллионы долларов. Рђ что делать если тебе РЅСѓР¶РЅРѕ обрабатывать больС?РѕРµ количество разнородной бизнес-информации? Javascript’РѕРІ РЅРµ хватит, Р° информацию надо через интернет передавать…

    РўС‹ как проект-менеджер должен понимать, что СЃ программированием интерфейса РІ MS Visual Studio работать РЅСѓР¶РЅРѕ намного меньС?Рµ, чем РІ веб-приложении. Р? РѕРЅ там будет РЅРµ РІ пример богаче текущим возможностям веб.

    Рђ твоих размыС?лений РїРѕ РїРѕРІРѕРґСѓ интерфейса СЏ РЅРµ РїРѕРЅСЏР». Если СЏ РІСЃРµ правильно понимаю, то Smart Client это РЅРµ какая-то конкретная программа, Р° понятие, обозначающее РЅРѕРІСѓСЋ архитектуру распределенных приложений РѕС‚ Microsoft РЅР° РѕСЃРЅРѕРІРµ .Net-технологий. Какой СѓР¶ там интерфейс будет - будет зависеть РѕС‚ разработчика конкретного Smart Client’Р°.

  2. artreal

    Alex Shilyaev, С?тука РІ том, что MS хочет заменить бродилку достаточно жирными клиентами. РЎРј. http://msdn.microsoft.com/smartclient/understanding/definition/
    Для больС?инства массовых приложений это приведет Рє бесполезному пожиранию мощностей РїСЂРё чуть более лучС?РёС… возможностях.
    Для СЂСЏРґР° приложений Smart Client - это действительно качественный скачок. РќРѕ ведь MS хочет РЅРµ СѓР·РєРёР№ сегмент веб-приложений, РіРґРµ Smart Client будет востребован, Р° весь сегмент веб-приложений, РіРґРµ “командовать парадом Р±СѓРґСѓ СЏ”.

  3. cactusinside

    Было Р±С‹ интересно если Р±С‹ РІС‹ написали заметку почему считаете веб-приложения лучС?Рµ чем SC. Сейчас Р¶Рµ просто получилось покритиковать чужую статью, РёР· чего СЏ сделал вывод что РІС‹ РЅРµ согласны СЃ точкой зрения Вадима. Да, Вадим написал РІ некоторых местах поверхностно Рё СЏ тоже СЃ некоторой частью РЅРµ согласен, РЅРѕ хотелось Р±С‹ увидеть именно РІР°С?Рё мысли РІ более упорядоченном РІРёРґРµ.

  4. Денис Перехрест

    2 cactusinside:
    РІРѕР·РјРѕР¶РЅРѕ Рё напиС?Сѓ, только РЅРµ быстро. здесь РјРЅРѕРіРѕ надо думать….

  5. cactusinside

    Возможно вы уже знаете про этот блог, но на всякий случай кину: http://www.manageability.org/blog/
    Много интересного как раз в области веб-приложений и т.д.

  6. Денис Перехрест

    не знал. спасибо - посмотрю..

* Оставить комментарий