2010-08-19 28 views
2

我有一个小应用程序,这是一个相当大的(4MB)分布在广域网上的几千个用户使用的网页。这些用户的带宽从128Kbps到10Mbps不等。大的小应用程序大用户数低带宽

当新版本的小程序可用时,就会出现问题;它由所有用户浏览器自动下载,有效地阻塞网络。

他们真的很讨厌“发布当天上午在这里:)

有什么策略来解决这个问题呢?

编辑:我只能从一对服务器集中服务这个小程序。我无法对托管或网络基础架构进行任何修改。

回答

0

如果您可以在目录中添加.htaccess,您可以添加expiresByType,以便客户端不会每次都询问服务器。

你看过pack200吗?和(pack200 + .htaccess) 你看过索引Jar吗?

安东尼

+0

很好!...没想到pack200可以用于小程序......是的,索引加上一些漂亮的java_arguments将有助于在这里大放异彩。谢谢 – 2010-08-21 02:11:14

1

这里有一些想法:

  • 将你的用户群体分成N个相等组,每个组为提供不同的小应用程序的URL。然后错开每个小组的小程序副本更新的时间。

  • 将小程序放在一个已被调整的服务器上,以说明小程序的修改日期,并使用它来(粗略地)限制浏览器获取更新的小程序的速率。

  • 将小应用程序推送到大型用户组的本地网络上的位置。让中央服务器发出HTTP重定向,以便每个浏览器从“关闭”位置拿起小程序。

  • 在本地网络上部署缓存HTTP代理&自动代理文件,并阻止直接访问小程序,迫使用户通过代理获取小程序。

最后一个选项可能是最好的。

+0

优秀的建议斯蒂芬...然而我的手在添加/修改基础架构时很紧张:( – 2010-08-19 10:26:44

1

除了斯蒂芬C提到的之外,我想增加一个你应该考虑的策略。

  • 应考虑将你的applet代码库成不同的模块(存档)
  • 这些模块更新,而不是整个4MB小程序。你可以有一个特殊的类加载器来检查给定模块的新版本是否可用。
  • 对于修补程序有一个单独的“修补程序”存档,可以在任何其他存档之前加载,以便从修补程序存档中加载任何更新的类,而不是旧的已下载的存档。
  • java web start已经做了一些这些事情来避免整个更新。你可以看看链接(开发人员文档)的几个指针。