10

我知道这已被问过几次,但似乎没有明确的答案......在过去 3 天或更长时间内一直在搜索这个问题。

似乎有两种方法可以从 iOS App 连接到 Oracle 数据库:

  1. ODBC 客户端 我需要使用 gcj for ARM 编译 ODBC(哪个 ODBC?)。我认为这是一条艰难的道路,有错误,但可能需要付出相当大的努力。

  2. 使用 WEB SERVICE 从 App 连接到 webservice,从 web service 连接到 Oracle DB。

这两种方法可用还是其他方法?

关于这两种方法的几个问题:哪个更安全?湾。我公司的安全部门会反对上述任何一项吗?C。哪个性能更高?d。上面哪一个通常使用?

4

4 回答 4

7

Web 服务就是答案,您不希望人们从移动设备直接连接到数据库。Web 服务器将增加一层额外的安全性以及处理同时请求而不直接对数据库造成压力的能力

一个。哪个更安全?如上所述的 Web 服务

湾。我公司的安全部门会反对上述任何一项吗?是的,安全部门会坚持不打开oracle端口直接连接,除非他们已经打开它。

C。哪个性能更高?Web 服务,在 Web 服务器中设置正确的缓存策略可以将资源保存到数据库中。

d。上面哪一个通常使用?Web 服务,因为它们在安全性和性能方面为您提供了巨大的优势,不仅如此,Web 服务是可重用的,并且可以被许多不同的平台访问,想想未来您可能希望稍后在 Android 设备上为您的应用程序提供服务,而 Web 服务将为您节省大量的开发时间。

考虑一下,当今市场上的许多顶级应用程序都使用 Web 服务。

谷歌地图是一个很好的例子,展示了网络服务的强大!

于 2013-04-05T18:04:01.873 回答
6

直接从您的应用程序连接到您的数据库不是一个好主意。如果您创建一个除了 SELECT 什么都不做的帐户,它可能是安全的,但还有一些其他的事情需要考虑。

为什么要使用 Oracle 客户端来增加应用程序的负担?

如果您有很多用户,您必须担心 Oracle 会处理大量同时连接。使用 Restful API 请求是无状态的。

如果您决定更改架构。您还必须更改您的应用程序。当您在两者之间放置服务时,应用程序不再依赖于架构。

于 2013-04-04T01:55:39.860 回答
2

ODBC 连接将要求 Oracle 端口对 Internet 开放,在绝大多数情况下,出于安全和性能原因,不允许这样做。即使是这样,或者即使您建立了一个安全的 VPN,直接数据库访问也要求连接保持打开状态,这在移动设备可以进出网络覆盖范围时可能会出现问题。

HTTP 对不可靠网络的容忍度要高得多,并且可以使用 SSL (HTTPS) 进行加密。HTTP 的问题是数据库没有直接支持这种传输,所以大多数人开发专门的 Web 服务。

我在一个名为 SlashDB 的项目上工作,该项目会自动从数据库中构建 RESTful API。对于公共 API,您将在所谓的 DMZ(两个防火墙之间的网段)中安装 /db,如本文所述。

SlashDB 可以配置为允许对公共用户进行受限数据访问,或者您可以定义具有不同数据权限的特定用户。它被设计为无状态服务,这意味着您可以轻松地在负载均衡器和反向 HTTP 代理后面设置多个节点,以实现高可用性 Web 规模部署。

无论您是手动开发 Web 服务还是使用我们的产品,您的解决方案都将获得比使用直接客户端/服务器方法更好的可扩展性、性能和安全性。我什至认为 REST API 应该用于内部企业数据集成解决方案,但这是一个全新的话题。

于 2013-04-04T05:38:18.453 回答
0

我将重复其他人所说的话,Rest API 是要走的路。不要直接连接到数据库。但是,可能有一种方法可以连接到我从未尝试过的数据库。

http://odbcrouter.com/iosvsweb#hn_iOS_Open_Database_Connectivity_SDK

于 2013-04-10T10:25:27.923 回答