Web applications 离线web启动器

Web applications 离线web启动器,web-applications,menu,xul,distributed,offline,Web Applications,Menu,Xul,Distributed,Offline,我正在构建一个分布式菜单系统,以支持大型企业的操作端。 其想法是,用户可以使用此应用程序启动web应用程序(在线或离线)、驻留在远程服务器上的虚拟化应用程序,以及本地安装的、我们无法更改的传统厚客户端应用程序(读:C/C++,基于Java) 一些额外要求: 基于Web的部署 应用程序启动检测到服务器上有新版本时自动更新 脱机启用-缺少网络连接不会妨碍本地安装的胖客户端或脱机web应用程序的用户操作 RESTful数据同步(即,菜单通过查询安全集合REST服务使用间接方式访问工具/服务) 跨平台

我正在构建一个分布式菜单系统,以支持大型企业的操作端。 其想法是,用户可以使用此应用程序启动web应用程序(在线或离线)、驻留在远程服务器上的虚拟化应用程序,以及本地安装的、我们无法更改的传统厚客户端应用程序(读:C/C++,基于Java)

一些额外要求:

  • 基于Web的部署
  • 应用程序启动检测到服务器上有新版本时自动更新
  • 脱机启用-缺少网络连接不会妨碍本地安装的胖客户端或脱机web应用程序的用户操作
  • RESTful数据同步(即,菜单通过查询安全集合REST服务使用间接方式访问工具/服务)
  • 跨平台、跨浏览器,只需最少或不需要客户端安装(例如,不需要不断让用户出错的JVM)
  • 直观的用户界面,类似于Mac OS X或
现在,我已经确定了一个由SQL Server企业数据库支持的REST Web服务框架。目前,服务器端并不是一个关键问题。最后,我需要考虑安全性、角色授权等,但现在我对服务器有很好的处理。 客户端候选解决方案。客户端是一个不同的故事。我研究了解决此问题的各种方法,其中没有一种是理想的(主要是由于浏览器沙盒安全性)。我正在寻找更好的替代方案:

  • 脱机web应用程序
      • 支持我的大多数用例,但AFAIK无法执行本地安装的本机代码
      • 为了缓解这种情况,我进行了研究,但它对执行的本机代码进行了限制,这超出了我的预算和控制范围
      • 这将是我的首选,但是否有可能在没有上述限制的情况下执行厚客户机代码
  • 浏览器扩展
      • 我已经构建了其中一个来启动一个小型的厚客户端菜单(见下文)
      • 这里需要考虑的是XUL是
      • 似乎不支持执行本地安装的本机代码
  • 浏览器插件
      • 看起来很危险
  • 厚web服务客户端
      • 在我所有的努力中,我在XUL方面做得最好。我有一个支持XUL的应用程序,它向我的web服务发出AJAX请求,以动态填充菜单
      • 到目前为止,这项工作进展顺利,但也存在一些问题:
        • 如何从网页启动本地XUL应用程序
        • 再说一次,XUL还会存在更长时间吗
    • JavaWebStart
      • 我知道我可以和JWS合作,但我
    • 使用
      • 不知道该如何开始,也不知道它会带我去哪里
    • 加速钛
      • 可能是一个可行的选择。我还没有研究过
如果你能做到这一点,那就太好了!基本上,这个应用程序正在取代用脚本构建的传统菜单,这需要一支军队来维护和更新。我相信有一些顶级的SOA解决方案可以解决这个问题,但预算不会支持在前期设计和长期维护方面的大量投资

请告诉我,目前为止我考过的考生是否还有其他选择。考虑到上述要求,我的问题的理想解决方案是什么


编辑:我对此很感兴趣。是否有人有过这方面的经验,或者知道如何从SP中实现这一点?

在我看来,实现您描述的功能集有多种可能的方法,但您仍停留在如何以跨浏览器、跨平台的方式从基于浏览器的应用程序执行本机应用程序上

恐怕实现这一点的唯一方法是为您想要支持的每个浏览器开发一个小的附加组件。对于Firefox来说,这样做非常简单,因为有一个XPCOM API(NSIProces)在伊江,你可以编写一个用C++实现的ActiveX并授予必要的权限。在Chrome中,你除了写一个NPAPI插件外别无选择。
如果是我,我会为Firefox和Chrome编写一个NPAPI插件,因为网页可以为这两种浏览器使用相同的代码。对于IE,你可以编写一个ActiveX,它的访问方式或多或少与插件相同。因此,希望能够启动外部进程的网页将嵌入插件,设置必要的属性值(即,要执行的进程的路径)并调用嵌入对象上的方法。

我觉得实现您描述的功能集有很多可能的方法,但您仍然无法从基于浏览器的应用程序以跨浏览器、跨平台的方式执行本机应用程序

恐怕实现这一点的唯一方法是为您想要支持的每个浏览器开发一个小的附加组件。对于Firefox来说,这样做非常简单,因为有一个XPCOM API(NSIProces)在伊江,你可以编写一个用C++实现的ActiveX并授予必要的权限。在Chrome中,你除了写一个NPAPI插件外别无选择。
如果是我,我会为Firefox和Chrome编写一个NPAPI插件,因为网页可以为这两种浏览器使用相同的代码。对于IE,你可以编写一个ActiveX,它的访问方式或多或少与插件相同。因此,希望能够启动外部进程的网页将嵌入插件,设置必要的属性值(即要执行的进程的路径)并调用嵌入对象上的方法。

基于提供的优秀教程,我尝试使用基于PHP的客户端/服务器框架构建分布式菜单系统