Java Web Start - Популярность - PullRequest
       17

Java Web Start - Популярность

30 голосов
/ 19 февраля 2009

Я недавно использовал приложение Java Web Start. Я запустил его из своего веб-браузера, используя встроенную ссылку jnlp на странице, которую я просматривал. Приложение было загружено, запущено и работало просто отлично. Он имел доступ к моей локальной файловой системе и запоминал мои настройки между перезапусками.

Что я хочу знать, так это почему приложения Java Web Start не являются более популярным форматом доставки сложных приложений в Интернете? Почему разработчики часто тратят много времени и энергии на репликацию функций рабочего стола в формате html / javascript, когда возможности приложения для настольных компьютеров легче реализовать с помощью Java & Java Web Start?

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

(Ради обсуждения давайте представим мир, в котором: источники загрузки являются «доверенными», а приложения «подписаны» (т.е. не связаны с вопросами безопасности), скорости загрузки высоки (время загрузки быстро) и разработчики знают Java ( числа, которые они знают html / js / php)).

Ответы [ 8 ]

15 голосов
/ 17 августа 2009

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

Панель управления Java имеет настройки, которые позволяют пользователям использовать настройки прокси-сервера браузера по умолчанию или переопределять их. Другими словами, команды инфраструктуры могут настроить установочные образы Windows или ОС, чтобы JVM была предварительно установлена ​​с настройками прокси-сервера предприятия. Поэтому я считаю, что это вообще не проблема.

Java Web Start фактически кэширует все приложения с настраиваемыми настройками в панели управления Java. Как только приложение кэшируется, оно «устанавливается», как и другие приложения. Хотя выполнение в первый раз может быть медленным, во второй раз будет быстрым из-за технологии интеллектуального выделения памяти JVM. Таким образом, время запуска может быть проблемой, но многие веб-сайты (даже внутренние) теперь перенесены на портал. Веб-портал обычно содержит множество неиспользуемых библиотек для целей разработки, поскольку сам портал не предвидит, какие типы портлетов создаются и развертываются на конкретной странице. Таким образом, загрузка одной страницы портала может занять до МБ и заполнить страницу более чем за 5 секунд; это всего лишь одна страница, и кэширование помогает до 30%, но все еще есть много компонентов HTML / Javascript / CSS, которые необходимо загружать каждый раз. При этом я уверен, что Java Web Start является здесь преимуществом.

Java Web Start не загружается снова, если он кэшируется, если копия сервера НЕ обновлена. Следовательно, если, например, программное обеспечение для управления проектами, такое как MS Project, выполняется с использованием SmartClient (аналогично JWS), обмен информацией между клиентом и сервером будет представлять собой чисто данные без представления, как полное обновление страницы в браузере. Даже с помощью Ajax это не исключает полной загрузки страницы. Кроме того, многие компании считают Ajax незрелым и необеспеченным. Вот почему Ajax является горячей темой в кругах разработчиков, но пока не касается корпоративного программного обеспечения. Имея это в виду, приложения JWS определенно имеют больше преимуществ, таких как то, как приложения JWS развертываются и выполняются в песочницах, подписываются и имеют гораздо более интерактивный графический интерфейс.

Другие преимущества включают более быструю разработку (проще в отладке кода и производительности), отзывчивый пользовательский интерфейс (не требует, чтобы серверы Comet обеспечивали функциональность PUSH) и выполнение быстрее (наверняка, потому что клиентские компьютеры отображают графический интерфейс без перевода, как HTML / Javascript / CSS и меньше обработки данных).

После всего этого я еще не затронул вопрос, почему JWS не так знаменит?

Мое мнение таково, что это то же самое, что комментарий Брайана Ноблауха, оно без осознания.

ИТ-специалистов слишком привлекает шумиха над веб-технологиями, Ajax PUSH, GWT, и все эти модные слова заставляют их склоняться к удовольствию от использования различных технологий или для решения технических задач вместо того, что действительно работает для клиентов. 1015 *

Взгляните на Citrix. Я думаю, что Citrix на самом деле отличная идея. Citrix позволяет создавать собственные фермы приложений за сценой. Существует множество стратегий обновления и внедрения, которые вы можете использовать, не влияя на работу клиента. Развертывание Citrix чрезвычайно простое, стабильное и безопасное. Предприятия все еще используют это. Тем не менее, я думаю, что JWS даже лучше, чем Citrix. Идея JWS состоит в том, чтобы запускать приложения на клиентских компьютерах, а не размещать тонны серверных ферм, где клиентские машины могут сами запускать эти приложения. Это экономит компании много денег !!! С JWS команда разработчиков все еще может создавать бизнес-логику и данные на стороне сервера. Однако без модуля веб-обработки и предоставления возможности процессам рендеринга клиентским компьютерам это значительно уменьшает потребление энергии и вычислительную мощность сервера.

Другим примером того, почему JWS является удивительной идеей, является Blackberry MDS. Приложения Blackberry на самом деле являются приложениями Java, переведенными с Javascript. В студии BB MDS вы используете инструмент GUI для создания GUI приложения BB, кодируя логику GUI в Javascript. Затем приложения переводятся и развертываются на сервере BES. Затем сервер BES распространит эти приложения на BB. На каждом BB он запускает тонкое Java-приложение только с графическим интерфейсом и сетевыми возможностями Всякий раз, когда приложению требуются данные, оно связывается с BES через веб-сервисы, чтобы использовать сервисы с других серверов. Разве это не просто версия JWS BB? Это было чрезвычайно успешно.

Наконец, я думаю, что JWS не популярен из-за того, как Sun его рекламирует. BB никогда не рекламирует, насколько хороши их Java-приложения BB, они верят, что клиентам будет все равно, что это такое. BB рекламирует преимущества использования MDS для разработки приложений: быстрая, экономичная, окупаемая.

Только мои, немного длинные, 2 цента ...:)

11 голосов
/ 19 февраля 2009

Основным препятствием для Java Webstart, вероятно, является то, что вам все еще нужно установить JVM, прежде чем он сможет даже попытаться загрузить и запустить ваше приложение. У всех есть браузер. Не у всех есть JVM.

Edit: С тех пор я приобрел некоторый практический опыт веб-запуска и теперь могу добавить эти два пункта:

  • Сценарий Deployment Toolkit и модульная JVM, выпущенная где-то около Java 1.6u10, делают требование JVM менее проблематичным, поскольку он может автоматически загружать JVM и ядро ​​API и запускать программу, загружая остальные.
  • Web Start серьезно глючит. Даже среди выпусков Java 1.6 был один, который загружал все приложение каждый раз, а другой загружал его, а затем приводил к ошибке с неясным сообщением об ошибке. В общем, я не могу рекомендовать полагаться на такую ​​хрупкую систему.
8 голосов
/ 19 февраля 2009

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

7 голосов
/ 19 февраля 2009

Проблема с Webstart заключается в том, что вам действительно нужно «запустить» что-то, что не так быстро, даже при быстром соединении, в то время как в веб-приложении вы вводите URL-адрес, и приложение там.

Кроме того, многое может пойти не так с веб-запуском. Возможно, предполагаемый пользователь не имеет необходимых привилегий, или прокси-сервер webstart настроен неправильно, или что-то пошло не так с зависимостями jre, или просто не установлен java. Так что для обычного Джона Доу в интернете это совсем не приятно.

В контролируемой среде, такой как компания, во многих случаях это хорошее и простое решение.

3 голосов
/ 28 марта 2011

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

При каждом обновлении по какой-то причине десятки пользователей «застряли в середине». Все, что вы получаете, это исключение «класс не найден» (если вам повезет) или неинформативное «неспособность запустить» из JWS до того, как он попадет в ваш код. Похоже, обновление наполовину загружено. Или, другими словами, он не загружает и не применяет обновление атомарно И имеет плохое кэширование, поэтому перезапуск приложения с того же URL ничего не исправляет.

Нет способа решить его, кроме как очистить кеш JWS или предоставить другой URL (например, добавить ?dummyparam=jwssucks в конце). Даже я, как разработчик, иногда сталкиваюсь с этим и не вижу пути.

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

1 голос
/ 22 марта 2017

Java Web Start является своего рода наследником Java-апплетов, и апплеты сгорели в новом тысячелетии. Но я все еще думаю, что Java-апплеты намного лучше, чем GWT или ад Javascript.

Java Web Start против встроенного Java-апплета

1 голос
/ 06 сентября 2011

Из этих сообщений похоже, что при использовании веб-запуска важно тщательно заботиться о сервере. «Огромная боль» при загрузке приложения при каждом запуске может быть вызвана неправильной отметкой времени, доставленной с сервера. Здесь не приложение, а сервер должен быть настроен на правильное использование кэширования, а не только на его отключение. Насчет глючного запуска я не очень уверен, но мне кажется, что это также может быть вызвано ненадежным соединением.

Важным преимуществом веб-старта является то, что он прекрасно работает с OpenJDK под Linux. Клиенты некоторых довольных разработчиков используют только Windows, а мои клиенты - нет.

HTML и JavaScript, упомянутые в первоначальном вопросе, являются более легкими подходами, которые прекрасно работают с небольшими задачами, такими как анимированные кнопки или даже интерактивные таблицы. Кажется, что ниша Java связана с гораздо более сложными задачами.

1 голос
/ 17 февраля 2010

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

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

...