Caching JavaWebStart和Web代理缓存

Caching JavaWebStart和Web代理缓存,caching,proxy,java-web-start,jnlp,webproxy,Caching,Proxy,Java Web Start,Jnlp,Webproxy,我有一个通过互联网在SaaS模式(云)中提供的富互联网应用程序。应用程序是通过JavaWebStart部署的:用户单击指向提供者站点()的JNLP文件的链接;然后下载应用程序并在本地缓存(从客户机的Java控制面板我看到应用程序大约有40MB)。我希望,如果没有发生服务器端更改,客户端将使用缓存版本。 发布新服务器版本时可能会出现一个问题:所有客户端(数百个)都可能同时下载新版本。 为了防止这个问题,我想探索一下使用Web代理作为缓存的可能性:第一个客户端从Internet下载新版本,其他客户端

我有一个通过互联网在SaaS模式(云)中提供的富互联网应用程序。应用程序是通过JavaWebStart部署的:用户单击指向提供者站点()的JNLP文件的链接;然后下载应用程序并在本地缓存(从客户机的Java控制面板我看到应用程序大约有40MB)。我希望,如果没有发生服务器端更改,客户端将使用缓存版本。 发布新服务器版本时可能会出现一个问题:所有客户端(数百个)都可能同时下载新版本。 为了防止这个问题,我想探索一下使用Web代理作为缓存的可能性:第一个客户端从Internet下载新版本,其他客户端下载Web代理上缓存的版本。 这是否可行?我有一些疑问,主要是因为,从Java控制面板-->Java缓存查看器(Win XP上的Java 6)中,我可以在“应用程序视图”中看到1个应用程序(40 MB),切换到“资源视图”时会看到一些JAR,但当我转到实际承载缓存的磁盘位置时,我会看到很多文件夹(大部分为空)和.idx文件(没有罐子的痕迹)。 其想法是告诉Web代理(Forefront TMG)只缓存来自提供商站点的一组文件(哪些文件?哪些扩展名?)。 我附加了带有缓存选项的JNLP文件的清理版本,但我猜它们与我的问题无关,因为它们只处理客户端上的缓存选项(对吗?)


....
....
....
…其他一些罐子。。。
-showSavePwd
-ForceDhttpLoginPort:443
-可用语言:en;fr;de;es;ja
-forceCountryByLanguage:false

谢谢

我已经将CloudFront用于我们的CDN,并且它已经运行了将近2年(20多个应用程序更新)。我会像这样调整您的JNLP:

 ...
  <resources>
    <java initial-heap-size="20971520" max-heap-size="536870912" java-vm-args="-XX:MaxPermSize=128m" href="http://java.sun.com/products/autodl/j2se" version="1.6.0_11+"/>
    <jar href="http://xyz.cloudfront.net/path/some.jar" download="eager" main="false" version="123"/>
     ... some other JARs...
  </resources>
...
。。。
…其他一些罐子。。。
...
配置为原点指向

在此之后,CloudFront被配置为缓存查询字符串,从而允许版本机制工作

 ...
  <resources>
    <java initial-heap-size="20971520" max-heap-size="536870912" java-vm-args="-XX:MaxPermSize=128m" href="http://java.sun.com/products/autodl/j2se" version="1.6.0_11+"/>
    <jar href="http://xyz.cloudfront.net/path/some.jar" download="eager" main="false" version="123"/>
     ... some other JARs...
  </resources>
...