Веб-клиенты против толстых/богатых клиентов?

Моя компания является поставщиком программных решений для крупной телекоммуникационной компании. Среда в настоящее время основана на IBM WebSphere с внешними серверами IBM Portal, взаимодействующими с кластером внутренних серверов приложений WebSphere, предоставляющих службы EJB. Некоторые портлеты используют наш собственный шаблон MVC, а некоторые написаны на JSF.

Недавно мы сделали экспериментальное приложение с расширенным/толстым клиентом, которое взаимодействует напрямую с компонентами EJB на внутренних серверах. Он был написан с использованием платформы NetBeans и использует клиентскую библиотеку приложений WebSphere для установления связи с компонентами EJB.

Самым болезненным моментом было заставить клиента использовать безопасную связь JAAS/SSL. Но после того, как это было решено, мы обнаружили, что полнофункциональный клиент имеет ряд преимуществ по сравнению с клиентскими приложениями веб-портала, к которым мы привыкли:

  • Огромное преимущество в производительности (CORBA по сравнению с HTTP, исключая посредника Portal Server)
  • Разработка упрощается и ускоряется благодаря использованию визуального конструктора NetBeans и в целом надежной архитектуры Swing.
  • Цикл отладки сокращается за счет отсутствия необходимости развертывания клиентского приложения на тестовом сервере.
  • Никакой мешанины технологий, как при веб-разработке (Struts, JSF, JQuery, HTML, JSTL и т. д. и т. д.)

Потерпев некоторое время мучения веб-разработки (даже JSF), я пришел к следующему выводу: богатые клиенты подходят не для каждой ситуации, но когда вы разрабатываете внутреннюю интранет-систему решение, то вы сойдете с ума, если не примете во внимание платформу NetBeans или Eclipse RCP.

Любые комментарии/опыт работы с многофункциональными клиентами по сравнению с веб-клиентами?


person rudolfv    schedule 29.04.2010    source источник


Ответы (2)


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

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

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

Для запуска и распространения нового программного обеспечения у нас есть запускаемый банк обновлений, который проверяет файл в локальной системе по дате развертывания на сервере, чтобы проверить, обновлена ​​ли локальная система. Если система устарела, мы загружаем необходимые файлы jar, а затем запускаем приложение. Это избавляет пользователей от необходимости переходить на веб-страницу.

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

person Romain Hippeau    schedule 29.04.2010

Пока вы используете Java Web Start для развертывания, я не обязательно не согласен. Смысл веб-приложений в ИТ заключается в том, чтобы избежать путаницы с удаленным развертыванием, когда пытаются обновить всех до версии Y, когда версия X больше не поддерживается.

Вы получаете это бесплатно с веб-приложениями.

person Chris K    schedule 29.04.2010