从iOS App连接到Oracle

时间:2013-04-01 09:27:35

标签: iphone ios oracle

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

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

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

  2. 使用WEB服务 从App连接到Web服务,从Web服务连接到Oracle DB。

  3. 这两种方法是否可用?

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

4 个答案:

答案 0 :(得分:7)

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

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

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

℃。哪个更高效? Web服务,在Web服务器中设置正确的缓存策略可以节省资源到数据库。

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

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

谷歌地图是一个很好的例子,说明网络服务有多强大!

答案 1 :(得分:6)

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

为什么要让应用程序加载Oracle客户端?

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

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

答案 2 :(得分:2)

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

HTTP对不可靠的网络更加宽容,可以使用SSL(HTTPS)加密。 HTTP的问题在于数据库没有直接支持这种传输,因此大多数人都开发了专用的Web服务。

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

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

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

答案 3 :(得分:0)

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

http://odbcrouter.com/iosvsweb#hn_iOS_Open_Database_Connectivity_SDK