用于HTML5应用程序的安全本地服务的体系结构

时间:2015-04-16 18:48:33

标签: .net node.js html5 java-ee

我的用户需要具有完整离线功能的多设备应用。

需要离线存储的一些数据是超级超级秘密,并且无法安全地存储在HTML 5本地存储中。此外,一些功能非常复杂(复杂的财务方案建模和可视化)

我目前对此解决方案的想法是一个HTML5应用程序,它具有针对服务器端REST服务的所有相关功能,然后为特定设备开发本地服务层,用于存储和保护超级超级秘密数据。

然后,应用程序将在服务器联机时对服务器执行REST调用,当它处于脱机状态时,它将在本地服务器上调用相同的接口。

本地服务器在联机时会将数据上传到远程服务器(使用相同的呼叫)。

问题: 1.)任何可以简化此设置的javascript框架建议? 2.)什么后端应用程序架构可以工作?通过强大的加密支持(.NET或Java)与类似mongodb的节点之类的东西,我在企业和简单的东西之间徘徊。

1 个答案:

答案 0 :(得分:1)

我可以想象你正在考虑类似混合应用程序的东西,当没有可用的远程版本时,它会与服务器的本地版本对话,但是在某种程度上,你可能希望保持这种状态本地和远程服务器尽可能相同。

如果您正在考虑的是,那么您需要在您的应用程序中嵌入服务器,如果它是混合应用程序,那么节点可能是城里唯一的游戏。请参阅此博文:http://modernweb.com/2015/03/19/develop-an-ios-application-with-node-js-and-cordova/和此项目:http://jxcore.io/。这将是非常前沿的,但可能是可行的。当网络不可用时,您只需点击本地服务器,当网络出现时,您就会向远程服务器发出代理请求。

让我们暂时坚持安全存储方面。如果您计划将服务器端数据存储在SQL数据库中,那么我可能会建议使用支持客户端加密的SQLite版本,例如https://www.zetetic.net/sqlcipher/。它可以在所有平台上运行。

如果你想使用看起来像Mongo的东西,那么最小的东西,由运行客户端的流星人支持的项目,由本地存储支持,并且可以在网络可用时同步:{ {3}}

否则,您可能会为每个平台创建一个本机应用程序。我还没有跟上这方面的所有java新闻,但应该有很多选择。在.net方面有https://github.com/mWater/minimongo,它可以让你定位几乎所有平台。

如果你走这条路,你可能会失去HTML 5的能力。但就用户体验而言,这可能是一件好事。您最终会做一些聪明的事情,例如当网络不在那里时直接呼叫您的服务层,并在它出现时远程呼叫它们。阅读本文以了解需要完成的工作:http://xamarin.com/,即使该技术可能无法直接应用。

正如我在下面提到的,我目前对节点和javascript的所有事情都很高兴,经过反思,我认为这两种方法的风险可能相似。正如您所说,它将完成您可用的资源以及缺少HTML 5是否是一个交易破坏者。

经过进一步的反思和研究,我认为你应该评估像http://docs.spring.io/spring/docs/current/spring-framework-reference/html/remoting.html这样可以处理你所有用例的东西(将上述所有部分整合在一起。

祝你好运!