2014-01-09 2 views
2

Наше веб-приложение сильно зависит от Java-апплетов. Для каждого Java-апплета мы имеем несколько подписанных файлов jar, которые содержат класс апплета и зависимые классы. Количество этих JAR может увеличиться до 70-80 за апплет.Java 7 | Можно ли загрузить JAR-файлы апплета параллельно?

При взгляде на журналы консоли Java кажется, что файлы JAR загружаются и обрабатываются один за другим в типичном последовательном порядке. Это приводит к задержке загрузки апплета, когда кеш JRE пуст.

Чтобы преодолеть это, один из вариантов, который мы рассматриваем, заключается в параллельном загрузке JAR. Следующий Race condition in parallel downloading of jars for applets and web-start ошибка обсуждает проблему с параллельной загрузкой баночек:

Итак, мои запросы:

  • JRE загрузки Существуют ли в апплете JAR-файлы параллельно, по умолчанию и журналам Java Console не изображающий правильную картины?
  • Если выше правильно, то как проверить, загружаются ли JAR параллельно?
  • Если выше не верно, как мы можем загружать JAR параллельно? например, какой-то пользовательский подход к коду или некоторый флаг для JRE.

ответ

0

Возможно это может быть достигнуто за счет:

  1. Развертывание апплет с помощью Java Web Start.
  2. Задать вопрос: lazy скачать.
  3. Начиная ряд Thread экземпляров, что ..
  4. Используйте DownloadService (или связанных с ними услуг) JNLP API.

OTOH, я подозреваю, что настоящим узким местом является пропускная способность соединения пользователя. 70-80 Банки кажутся огромными!

Вы считали, что запутываете код? Я часто осуждаю способность программного обеспечения обфускации, чтобы люди не воровали код (если они действительно определены, ничто не остановит их), но при этом часто можно сжать стандартные банки на еще 50-60%.

Еще одна вещь, которую нужно изучить, - это Pack-200, что также может принести выгоду при уменьшении размера требуемой загрузки.

+0

Спасибо за быстрый ответ. Позвольте мне изучить этот вариант для выполнимости. Что касается количества файлов jar, да, я согласен, что это большое количество, но снова наше является устаревшим приложением. Мы рассматривали проблему запутывания для безопасности, а также сокращения. Однако это было отменено, поскольку мы уходим от апплетов. Спасибо –

+0

Если бы вы быстро просмотрели [Руководство по миграции] (http://www.oracle.com/technetwork/java/javase/applet-migration-139512.html). Наше приложение интенсивно использует java для js/js для java-связи. JNLP не поддерживает эту функцию. Соответствующая выдержка: _ Приложение Java Web Start не запускается в веб-браузере. Поэтому, если ваш апплет имеет какую-либо зависимость от браузера (например, Java для JavaScript/JavaScript для обмена сообщениями с помощью браузера), код связи больше не будет работать. В число затронутых API входят: _ –

+0

Слишком плохо. Лучше тонкие банки тогда .. –

Смежные вопросы