Наверх

Между толстым нативным клиентом и веб-приложением

Время чтения: 6 минут
8
Между толстым нативным клиентом и веб-приложением

Компании-разработчики корпоративного ПО, в том числе на рынке ECM, вынуждены выбирать между разными вариантами клиентов своих систем. Данная статья — рассуждение на тему, какой может быть золотая середина между толстым нативным клиентом и веб-приложением.

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

Некоторые системы (например, Docsvision, «Дело») имеют десктоп-клиент в качестве основного пользовательского. Другие («Тезис», ELMA) работают через веб-интерфейс. Для таких систем, как DIRECTUM и «1С:Документооборот», характерно наличие функциональных, более или менее равноценных десктоп- и веб-приложений.

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

Ключевые используемые определения

Нативный клиент — приложение, разработанное специально под конкретную операционную систему, позволяющее использовать максимум программных и аппаратных возможностей ОС и устройства. Десктоп-клиент — нативный клиент для настольного компьютера.

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

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

Тонкий клиент — клиент, который переносит всю или большую часть задач по обработке информации на сервер.

Классические нативные десктоп-клиенты

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

●    пользователи работают в привычном интерфейсе, свойственном конкретной оболочке операционной системы;

Источники изображений: directum.ru, pixshark.com

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

●    кроме того, толстые клиенты снимают часть нагрузки с серверов и со слоя бизнес-логики (при его наличии).

И ряд недостатков:

●    жесткая привязка приложения к операционной системе, отсутствие кроссплатформенности;

●    трудности, связанные с локальной установкой, а также с обновлением клиента;

●    сложность с предоставлением удаленного доступа к данным.

Альтернативой нативному клиенту является веб-приложение.

Плюсы и минусы веб-приложений

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

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

Для преодоления этого ограничения приходится либо использовать возможности дополнительных платформ, либо устанавливать плагины и агенты (как минимум в песочницу браузера). Появляется возможность реализовывать практически полностью идентичный десктопному UI-функционал (в частности drag-and-drop, вывод контекстного меню по клику правой кнопки мыши и т.д.). Часть вычислений может выполняться на машине пользователя без отправки на сервер, и в целом лучше балансируется нагрузка на ресурсы клиента и сервера. Движок клиента может взаимодействовать с сервером, не дожидаясь действий пользователя (к примеру, обновлять список входящих в режиме реального времени).

За плюсы веб-приложений приходится платить следующими ограничениями:

●    ввиду унификации приложение в большей или меньшей степени инородно на любой платформе;

●    скрипты и движок приложения должны загружаться в рабочие папки браузера при подключении, что замедляет работу с системой;

●    при запуске скрипта на стороне клиента теряется производительность;

●    разворачивание клиента в песочнице браузера приводит к ограничениям использования системных ресурсов и устройств; могут возникнуть сложности с интеграцией с МФУ, сканерами, сторонним софтом для редактирования документов разных форматов и т.д.

Нативный тонкий, но «богатый» клиент

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

Существенно упростится настройка клиента с точки зрения пользовательского интерфейса, интеграции и взаимодействия с устройствами и другим ПО.

Источники изображений: rx.directum.ru, www.teachucomp.com

Появится больше возможностей для прикладной разработки, в том числе силами собственных специалистов. Бизнес-логика может остаться на стороне сервера, что облегчит клиент, распределив нагрузку между клиентом и сервером, а, следовательно, позволит экономить на железе.

В итоге имеем нативный тонкий, но «богатый» клиент, работающий через интернет, прекрасно применимый в том числе для подключения пользователей к облачным решениям, как правило, предоставляемым по SaaS-модели. Клиент обеспечивает высокий уровень мобильности и возможность организации как удаленной, так и территориально распределенной работы. Легкость установки и обновления клиента усилит преимущества SaaS, так как администрирование даже на уровне пользователя сведется к минимуму.

Нативный тонкий, но «богатый» клиент можно признать искомой золотой серединой, таким пользовательским приложением, которое вобрало в себя качества и классического десктоп-, и веб-приложения. В качестве примера реализации подобного клиента можно привести облачное решение DirectumRX.

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

Источник: ECM-Journal

Чтобы прочитать эту статью до конца,
или зарегистрируйтесь

Комментарии 8

Для десктоп-клиента показан Outlook 2010, а для "богатого но тонкого" 2013. Хотя оба почтовых клиента "десктопы". И это показательно...

Мне кажется, тут много таких подмен понятий. Нет, я не хочу подвергнуть обструкции подход RX - мне он симпатичен, но вот порассуждать можно.

Главные опасения в том, что подход RX устарел к моменту выхода, лежат в преимуществах десктоп-клиентов:

"пользователи работают в привычном интерфейсе" - а что для них привычно? Вот с утра пользователь почитал почту и новости на Android-планшете, в метро потыкался в iPhone, на работе открыл Office 365. Ну Word был десктопный, да, хоть и не особо заметно. Все свободное время он провел в FB, Инстаграмме и иже с ними. Вот в какой момент он решил, что именно окно "вне браузера" и есть гуд, а остальное так себе? Он вообще делит так приложения? И куда все движется, разве не в облака с тонкими клиентами? 
Подробнее:http://www.ecm-journal.ru/docs/Mezhdu-tolstym-nativnym-klientom-i-veb-prilozheniem.aspx" "

"приложение легко интегрируется с прочими нативными приложениями и системным программным обеспечением" - если все переезжает в облака, то с чем будем интегрироваться? С каких пор звонок через FB стал сложностью? Или видеоконференция через веб версии skype business?

 "кроме того, толстые клиенты снимают часть нагрузки с серверов" - и зачем это надо? 

В итоге имеем ситуацию, когда десктоп-клиент уже почти не имеет преимуществ, и, скорее всего, в будущем их не будет иметь вовсе. А RX не стал веб-приложением только опираясь на эти потенциальные преимущества. 

При этом RX все равно не обойдется без веб-клиента по понятным причинам, вытекающим из его недостатков.

Аргумент "Появится больше возможностей для прикладной разработки" какой-то странный. Как-будто не существует SharePoint online, SalesForce и т.д.

Короче, если бы RX вышел лет 5 назад - это была бы бомба. Тогда веб-клиенты и вправду не могли конкурировать с десктоп-приложениями по удобству и функциональности. А сейчас, со всеми этими HTML5 и полным стиранием понятия Интернет (Интернет умрет, т.к. все будет Интернетом - Шмидт), мне кажется поздно уже...  
Подробнее:http://www.ecm-journal.ru/docs/Mezhdu-tolstym-nativnym-klientom-i-veb-prilozheniem.asp

Подробнее:http://www.ecm-journal.ru/docs/Mezhdu-tolstym-nativnym-klientom-i-veb-prilozheniem.aspx 
Подробнее:http://www.ecm-journal.ru/docs/Mezhdu-tolstym-nativnym-klientom-i-veb-prilozheniem.aspx В итоге

пользователи работают в привычном интерфейсе, свойственном конкретной оболочке операционной системы

Это уже давно не прерогатива настольных приложений. Взгляните на enterprise приложения с web-интерфейсом от Microsoft (Outlook Web Access, SharePoint) - это же чистые кальки с настольных приложений. А возьмите десктопную 1С 8.0... да она же выглядит как сайт!

приложение легко интегрируется с прочими нативными приложениями и системным программным обеспечением

Ой ли? Вы, например, знаете нормальный способ интегрировать Microsoft Office c хранилищем (т.е. чтобы та же ECM система точно знала когда документ можно сохранять)? Я знаю ровно один - WebDAV, и к десктопу он не имеет никакого отношения.

А то, каких затрат сил и нервов стоила интеграция с офисом в настольном Directum вы можете поинтересоваться у разработчиков. Надеюсь, кстати, что в DirectumRX все же сделали нормальную поддержку WebDAV.

кроме того, толстые клиенты снимают часть нагрузки с серверов и со слоя бизнес-логики (при его наличии).

Вы про процессорное время? А какие такие высоконагруженные операции делает ECM, что их выгоднее выполнять на клиенте?

А манипулировать данными (основной функционал ECM!) лучше поближе к базе - т.е. на сервере приложений.

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

Вообще-то есть масса способов нивелировать это замедление. Плюс влияет загрузка кода лишь на первый запуск (ну плюс обновления и устаревание/чистка кэша - но это уже частности).

при запуске скрипта на стороне клиента теряется производительность

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

Если вас смущает слово "скрипт", то не переживайте - современные VM, выполняющие javaSAFEscript мало чем уступают VM .Net или Java (т.е. конечно же уступают - в силу динамической природы javaSAFEscript и некоторых заложенных, но это не так критично)

Вообще, рискну предположить, что своим появлением статья обязана первым недоуменным отзывам клиентов, которым попытались предложить DirectumRX. Ну да, понятие "облачное решение" и "настольный клиент" в сознании заказчиков сочетаются очень плохо.

Я скажу даже больше - заказчики информационных систем (я говорю про разработку заказных решений) практически поголовно желают видеть их в виде Web-приложений. Исключение составляют некоторые специфичные системы, для которых нужен действительно сложный и замысловатый интерфейс или тесная интеграция с десктопом (но ECM не относится ни туда, ни туда).

Всё! Остальным нужен Web, Web и еще раз Web!

Причины обсуждались многократно...

Во главу угла, конечно же, ставится многоплатформенность. "Сможем ли мы работать на Windows? А на Mac OS? А на планшете с Android? А на IPad?" - первое чем интересуется заказчик.

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

  • установка и обновление - это далеко не всё администрирование
  • для каждой платформы механизм установки будет свой (а для некоторых платформ до сих пор нет нормального варианта массовой установки, минуя магазин приложений!)
  • отдельный клиент для каждой платформы - это свои ошибки, свои ограничения и особенности реализации функционала (например, это можно наглядно видеть на примере того же Directum: Directum Desktop, Directum Web, Solo, Jazz, DirectumRX - все имеют свои особенности поведения, свои ограничения по функционалу, свои ошибки, ...). Представьте, каково это - поддерживать такое количество клиентов! Ведь с вопросами и ошибками пользователи бегут не к вендору, а к администратору, ресурсы которого не безграничны.

Ну и, конечно, Web-технологии сейчас "в тренде", а значит:

  • найти специалистов для сопровождения (доработки) теоретически проще (для того же .Net, в котором я специализируюсь, найти ASP.Net MVC + Frontend специалиста проще, нежели WPF-разработчика - на последних практически нет спроса).
  • основной упор в инструментах разработки / интеграции все основные вендоры платформ делают на Web. В результате мы видим, например, что ASP.Net может в течение ближайшего года быть полноценно портирован на Mac и Linux, а для WPF нет даже приблизительных планов.

На самом деле, я не думаю, что отсутствие Web версии ставит крест на будущем DirectumRX. Рано или поздно web-клиент все равно появится (я даже практически уверен, что работы по его созданию уже ведутся), а за это время, и функционал расширится, и платформа стабилизируется.

На самом деле, я не думаю, что отсутствие Web версии ставит крест на будущем DirectumRX. Рано или поздно web-клиент все равно появится (я даже практически уверен, что работы по его созданию уже ведутся), а за это время, и функционал расширится, и платформа стабилизируется.

Но зачем тогда "богатый и тонкий" клиент, почему сразу не современный веб-клиент? Ты правильно сказал, на мой взгляд, что всем нужен веб. Просто потому, что функция "компьютер (любое устройство) = веб" в сознании и в жизни уже работает. 

Возможно, RX - это результат фундаментального "исправления" архитектуры, которое нельзя было сделать просто в новой версии. И потому две ветки продукта - это нормально.

Но и по поводу архитектуры я в сомнениях. Многие (и, вероятно, скоро это будут почти все) "переезжают" в облака. RX же ни разу не облачный продукт, т.к. не позволяет уплотнить вычислительную среду (нет мультитенантного режима фронта, нет уплотнения хранилищ).

В итоге RX - это DIRECTUM вид сбоку. Канцелярия и договора с чертовски симпатичными кнопками на новой кодовой платформе. Вот и все. А этого мало. Я так думаю...

Но зачем тогда "богатый и тонкий" клиент, почему сразу не современный веб-клиент?

Это вопрос не ко мне - к вендору.

А мой последний абзац - это легкий сарказм. Я действительно не верю в будущее "тонких Desktop-клиентов" и считаю, что до тех пор, пока Directum не выпустит полноценное Web-решение, продажи DirectumRX будут идти с большим скрипом.

Впрочем, положение "стороннего эксперта" тем и хорошо, что можно высказывать мнение и давать советы, не неся никакой ответственности. :)

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

Увы, информации о RX - кот наплакал. На сколько я знаю, та же мультитенантность есть в планах, как и полноценный Web-клиент (по крайней мере еще с год назад, а то и больше искали разработчиков для "разработки web-клиента к новой платформе").

Почему поспешили выпустить такое промежуточное решение? Не знаю. Возможно "облака" и SaaS - не единственная ниша, для которой хотят использовать новую платформу. Но продавать её сейчас как on-premises - значит конкурировать с текущим Directum, для которого есть и готовая инфраструктура (курсы, партнеры, опытные разработчики, лояльные клиенты), и куча сторонних решений. А в нише "облаков" текущему Directum уж точно делать нечего.

Но это моё imho, а как оно на самом деле...

Канцелярия и договора с чертовски симпатичными кнопками

Вот, кстати, хороший вопрос (я немного отстал за последние 5 лет от дел на российском рынке СЭД) - неужели канцелярия в том замшелом виде (входящие/исходящие, места регистрации, поручения, ...) всё ещё такой важный козырь при продаже СЭД (я к тому, что именно его и договоры сделали первыми функциональными модулями)?

всё ещё такой важный козырь при продаже СЭД (я к тому, что именно его и договоры сделали первыми функциональными модулями)?

Если верить маркетингу вендора - то нет. "Тренды несгибаемо указывают на смещение акцентов ..." и все такое. Но по моим ощущениям и сведениям - это не так. В массе что было, то и осталось. И так у всех "СЭД". И то, что именно эти два модуля добавили в RX прямо подтверждает мои догадки. Хотя казалось бы - вот он ECM который скинет груз канцелярии...

Господа, спасибо за интерес проявленный к DirectumRX в комментариях!

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

Я бы хотел раскрыть несколько моментов касательно DirectumRX. Во-первых, мультитеннантность не просто «в планах», а реализована в текущей версии решения.

Во-вторых, заказчики ECM в средних компаниях спокойно относятся к внедрению системы с нативным windows-клиентом, и не упираются в веб-клиент. В этом плане больше "неудобств" доставляет то, что WindowsXP не поддерживается.

В-третьих, по поводу разработанных на текущий момент модулей: канцелярии и договоров. Да, они закрывают наиболее популярные потребности наших заказчиков. Но и в базовой поставке (управление документами + workflow) решение уже самоценно и позволяет организовать архив электронных документов, управлять контентом и автоматизировать относительно простые бизнес-процессы, работать с задачами-заданиями.

С одной стороны мы в виде DirectumRX предлагаем уже готовый ECM-продукт, но и готовы его развивать, в том числе и предлагая новые модули, внедряя их у клиентов и используя опыт DIRECTUM по автоматизации узких предметных бизнес-процессов. С другой стороны, в планах – расширение и функциональности, и числа клиентов системы (в первую очередь мобильных).

У DirectumRX есть рыночный сегмент и потребители, которые получат от решения максимальные выгоды. В частности, эту тему я раскрывал на недавнем вебинаре, с которым вы можете познакомиться по ссылке www.directum.ru/events.

спасибо за интерес проявленный к DirectumRX в комментариях

Да в общем-то интерес был не к DirectumRX - там пока ничего интересного просто нет.

Интересной была попытка Максима аргументировать выбор в пользу Desktop-платформы. Как это обычно бывает у Максима - получилась весьма добротная статья. Беда только в том, на мой взгляд, что попытка априори была обречена на провал. Да, как по мне, web-технологии это набор страшных костылей, противоречивых и неполных стандартов и неразвитых (по сравнению с desktop) инструментов, но это проблема только разработчиков, а заказчики предпочитаю web.

заказчики ECM в средних компаниях спокойно относятся к внедрению системы с нативным windows-клиентом, и не упираются в веб-клиент

Вы оцениваете всех заказчиков вообще или речь о заказчиках Directum? Клиенты Directum и вправду спокойно относятся к desktop клиенту - у них просто нет выбора. Но каким образом вы оцениваете количество потенциальных клиентов, отказавшихся от Directum по причине отсутствия до недавнего времени нормального Web-решения?

Ну и небольшая просьба: давайте уважать друг друга и обходиться без этих маркетинговых шаблонов.

С одной стороны мы в виде DirectumRX предлагаем уже готовый ECM-продукт ...
Чтобы прокомментировать, или зарегистрируйтесь