большие апплеты большая база пользователей низкая пропускная способность - PullRequest
2 голосов
/ 19 августа 2010

У меня есть довольно большой апплет (4 МБ) на веб-странице, которым пользуются несколько тысяч пользователей, разбросанных по глобальной сети.Пропускная способность для этих пользователей варьируется от ничтожных 128 Кбит / с до 10 Мбит / с.

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

Они действительно ненавидят утро 'релизного дня' здесь:)

Есть ли какая-нибудь стратегия, чтобы обойти эту проблему?*

Редактировать: я могу обслуживать этот апплет только централизованно с одной пары серверов.Я не могу вносить изменения в хостинг или сетевую инфраструктуру.

Ответы [ 3 ]

1 голос
/ 19 августа 2010

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

  • Рассмотрите возможность разбиения базы кода вашего апплета на разные модули (архивы)
  • Эти модули обновляются вместо всего 4 МБ апплета. У вас может быть специальный загрузчик классов, который проверяет, доступна ли новая версия данного модуля.
  • Для исправлений есть отдельный архив «исправлений», который загружается перед любыми другими архивами, так что любые обновленные классы загружаются из архива исправлений вместо старых уже загруженных архивов.
  • java web start уже делает некоторые из этих вещей, чтобы избежать полных обновлений. Вы можете посмотреть ссылку (документацию для разработчиков) на несколько указателей.
1 голос
/ 19 августа 2010

Вот несколько идей:

  • Разделите ваше сообщество пользователей на N равных групп и предоставьте разные URL апплета для каждой группы.Затем поразите время обновления копии каждой группы апплета.

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

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

  • Развертывание кэширующих прокси-серверов HTTP и файлов прокси-серверов в локальных сетях и блокирование прямого доступак апплету, заставляющему пользователей получать апплет через прокси.

Последний вариант, вероятно, лучший.

0 голосов
/ 20 августа 2010

Если вы можете поместить .htaccess в каталог, вы можете добавить expiresByType, чтобы клиент не запрашивал сервер каждый раз.

Вы смотрели на pack200? и (pack200 + .htaccess) Вы смотрели на индексированный Jar?

Anthony

...