2011-06-17 90 views
1

我正在构建一个分布式菜单系统来支持大型企业的运营方。 这个想法是,用户可以使用此应用程序来启动Web应用程序(在线或离线),驻留在远程服务器上的虚拟化应用程序以及本地安装的传统胖客户端应用程序,这些应用程序是我们无法更改的(请参阅:C/C++,Java的基础)离线网络发射器

一些额外的要求:

  • 基于Web的部署自动更新时,应用程序启动时检测到服务器上的新版本支持离线操作的
  • - 没有网络连接两者均不会妨碍本地安装的富客户端或者离线网络应用程序
  • REST风格的数据同步的用户操作(即,菜单采用间接通过查询安全会合REST服务
  • 跨平台,跨浏览器来访问工具/服务与最小或无客户端安装所需要(例如,不需要JVM,不断的bug用户update
  • 直观的UI界面,类似于Mac OS X的堆叠或menus that arc when selected

服务器-侧。现在,我已经决定将ServiceStack作为我的RESTful Web服务框架,并由SQL Server Enterprise数据库支持。目前,服务器端并不是一个关键问题。最终,我需要考虑安全性,角色授权等,但现在我在服务器上拥有良好的处理能力。

客户端候选解决方案。客户是一个不同的故事。我研究的方法解决这个问题,没有一个是理想的宽范围我在寻找更好的替代品,以这些(主要是由于浏览器沙盒的安全性。):

  • 离线Web应用程序
    • Google Installable Web Apps
      • 支持我的大部分使用情况,但据我所知它不能执行本地安装的本地代码
      • 为了缓解这个问题,我已经研究过NaCl,但它放在本地合作限制德多数民众赞成执行,这已经超出了我的预算和控制
    • HTML5 Offline Web Application
      • 这将有力地是我的偏好,但有可能没有上述的NaCl的限制执行从这个胖客户端代码?
  • 浏览器扩展
  • 浏览器插件
  • 厚的Web服务客户端
    • XUL-based
      • 我所有的努力,我已经走了最远用XUL。我有一个XUL供电的应用程序,使得AJAX请求我的web服务动态填充菜单
      • 这是运作良好,到目前为止,但有一些问题:
    • Java Web Start的
    • Appcelerator的钛
      • 可能是一个可行的选择。我还没有看过它。

荣誉,如果你做了这么远!基本上,这个应用程序正在取代用脚本构建的遗留菜单,这需要军队进行维护和更新。我确信这个问题存在一些头重脚轻的SOA解决方案,但预算不会支持在前期设计和长期维护方面的大规模投资。

请告诉我,如果有我到目前为止考察的候选人的替代品。鉴于上述要求,我的问题的理想解决方案是什么?

编辑:我很喜欢这SharePoint Quick Launch Web Part。有没有人有这方面的经验,或知道如何从SP中取消这一点?

回答

1

这听起来好像有无数可能的方法来实现功能设置你的描述,但你是卡在了如何从一个基于浏览器的应用程序在跨浏览器,跨平台的方式执行的本地应用。

恐怕要实现这一目标是开发一个小的附加组件要支持每个浏览器的唯一途径。对于Firefox来说,这样做非常简单,因为有一个用于调用新进程的XPCOM API(nsIProcess)。在IE中,你可以编写一个用C++实现的ActiveX并授予必要的权限。在Chrome中,你别无选择,只能编写一个NPAPI插件。

如果是我,我会写的Firefox和Chrome的插件NPAPI因为网页可以再使用相同的代码两种浏览器。对于IE来说,你可以编写一个ActiveX,这个ActiveX的插入方式大致与插件相同。因此,想要启动外部进程的网页会嵌入插件,设置必要的属性值(即要执行的进程的路径)并调用嵌入对象上的方法。

+0

感谢您的信息。 – retrodrone 2011-06-21 19:15:21

0

根据所提供的优秀教程,我试图建立使用SiteFusion它是XUL应用的基于PHP的客户机/服务器架构分布式的菜单系统,这因此允许客户执行本地,本地应用程序。虽然服务器仅支持* NIX平台,但客户端可以在任何地方运行。这个解决方案对我所说的大部分要求来说都是理想的。