访问远程数据库的最佳方式:通过Web服务还是直接访问数据库?

5
我想要开发一个Mac和iOS设备的应用程序。该应用程序将依赖于存储在远程数据库中的信息。它需要对数据库进行读取(选择)和写入(插入、更新、删除)访问。该应用程序将是一个多用户应用程序。
现在我正在考虑两种不同的方法来访问数据库: - 通过Web服务:应用程序访问Web服务(REST,JSON),该服务访问数据库。身份验证将通过SSL(https)上的HTTP身份验证完成。 - 直接通过VPN访问远程数据库。
该应用程序将由最多100人使用,并针对小团体/组织/企业。
我的问题是:访问数据库的最佳方法是什么?安全性和性能如何?对于小型企业而言,典型的实现是什么样子?
任何建议都将不胜感激。
谢谢
2个回答

5
使用Web服务在客户端和数据库之间增加了一层间接性。这样做有几个优点,这些优点都是因为客户端只需要了解您的Web服务接口,而不需要了解数据库。由于客户端应用程序比服务器端代码更难控制和更新,因此在服务器端添加业务逻辑层可以让您调整系统而无需向客户端推送更新。主要优点:
  • 灵活性 - 只要保持相同的Web服务接口,您可以更改数据库配置/完全替换数据层,而在客户端应用程序上不需要进行任何更改。
  • 安全性 - 为您的Web服务实现某些身份验证机制,并避免向客户端提供对数据库引擎的访问凭据。

也有一些缺点:通过添加一层复杂性来获得灵活性,您需要付出代价 - 直接将数据库访问编码到客户端中可能会更快。将Web服务层视为可能在未来产生回报的投资。它是否值得取决于您的业务要求和前景。


1
根据您提供的信息,答案几乎肯定是Web服务,除非VPN速度很快。
如果VPN足够快以处理流量,您可以通过直接从应用程序访问数据库来节省大量时间、精力和费用。
如果您需要的话,还可以提供远程访问虚拟PC会话。
因此,这将取决于您的要求。有很多方法可以做到这一点,每种方法都有其优缺点。做出正确的决定将需要相当数量的系统分析,可能超出了在StackOverflow上发布问题的范围。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接