2013-04-01 3 views
9

Я знаю, что это было задано несколько раз, но, похоже, нет четкого ответа ... я искал это в течение последних 3 дней или более.Подключение к Oracle из приложения iOS

Там, кажется, 2 способа подключения к базе данных Oracle из IOS App:

  1. ODBC Client мне нужно собрать ODBC (который ODBC?) С помощью GCJ для ARM. Я думаю, что это трудный путь, вызванный ошибками, но возможно с большим трудом.

  2. ИСПОЛЬЗОВАНИЕ WEB-СЕРВИСА Подключитесь от приложения к веб-сервису и от веб-службы до Oracle DB.

Являются ли эти два метода доступными или любыми другими?

Несколько вопросов по двум методам: a. Что более безопасно? b. Будет ли отдел безопасности моей компании выступать против любого из вышеперечисленных? c. Что более показательно? d. Какое из перечисленных выше обычно используется?

+0

вы можете также проверить .. http://www.oracle.com/technetwork/products/database-mobile-server/oracle-database-lite-10gr3-ds-130079.pdf и http://webproverka.com/ //orclib.sourceforge.net/blog/ – TonyMkenu

ответ

6

Не рекомендуется подключаться к базе данных непосредственно из приложения. Это может быть безопасно, если вы создаете учетную запись, которая ничего не может сделать, кроме SELECT, но есть и другие вещи, которые следует учитывать.

Зачем загружать приложение с помощью клиента Oracle?

Если у вас есть много пользователей, вам придется беспокоиться о том, что Oracle обрабатывает огромное количество одновременных подключений. С запросами Restful API нет апатридов.

Если вы решили изменить свою схему. Вам также придется изменить свое приложение. Когда вы размещаете услугу между ними, приложение больше не зависит от схемы.

2

Подключение ODBC потребует, чтобы порт Oracle был открыт для Интернета, что в подавляющем большинстве случаев не будет разрешено по соображениям безопасности и производительности. Даже если бы это было так, или даже если вы устанавливаете безопасную VPN, прямой доступ к базе данных требует, чтобы соединение оставалось открытым, что может быть проблематичным, когда мобильное устройство может войти и выйти из сети.

HTTP гораздо более терпим к ненадежным сетям и может быть зашифрован с использованием протокола SSL (HTTPS). Проблема с HTTP заключается в том, что база данных не имеет прямой поддержки для этого транспорта, поэтому большинство людей разрабатывают специализированные веб-службы.

Я работаю над проектом под названием SlashDB, который автоматически создает RESTful API из баз данных. Для общедоступных API вы должны установить/db в так называемом DMZ (сегменте сети между двумя брандмауэрами), как описано в this blog post.

SlashDB может быть настроен так, чтобы разрешить доступ к ограниченным данным для общедоступных пользователей или вы можете определить конкретных пользователей с различными привилегиями к данным. Он разработан как служба без состояния, что означает, что вы можете легко настроить несколько узлов за балансировщиком нагрузки и обратный HTTP-прокси для развертывания веб-масштабирования высокой доступности.

Независимо от того, разрабатываете ли вы веб-сервис вручную или используете наш продукт, вы достигнете лучшей масштабируемости, производительности и безопасности для своего решения, чем при использовании прямого подхода клиент/сервер. Я бы даже утверждал, что API REST должен использовать внутренние решения для интеграции корпоративных данных, но это совершенно новая тема.

6

Веб-службы - это ответ, вы не хотите, чтобы люди, подключающиеся непосредственно к базе данных с мобильного устройства. Веб-сервер добавит один дополнительный уровень безопасности, а также возможность обрабатывать одновременный запрос без непосредственного указания базы данных.

a. Что более безопасно? Веб-службы, как объяснялось выше

b. Будет ли отдел безопасности моей компании выступать против любого из вышеперечисленных? Да, отдел безопасности будет настаивать на том, чтобы не открывать порт oracle для прямого подключения, если только он не открыт.

c. Что более показательно? Веб-службы, устанавливающие правильные политики кэширования на веб-сервере, могут сохранять ресурсы в базе данных.

d. Какое из перечисленных выше обычно используется? Webservices, потому что они предлагают вам большие преимущества в области безопасности и производительности, а не только в том, что веб-сервисы являются многоразовыми и могут быть доступны на многих разных платформах, подумайте о будущем, которое вы, возможно, захотите использовать для своего приложения позже на устройствах Android, а веб-службы сохранят вас много времени разработки.

Многие из современных приложений на современном рынке используют веб-сервисы, подумайте об этом.

Карты Google - отличный пример того, насколько мощными являются веб-сервисы!

0

Я собираюсь повторить то, что говорили все остальные, API для отдыха - это путь. Не подключайтесь непосредственно к базе данных. Однако может быть способ подключения к вашей базе данных, который я никогда не пробовал самостоятельно.

http://odbcrouter.com/iosvsweb#hn_iOS_Open_Database_Connectivity_SDK

Смежные вопросы