2013-04-01 13 views
9

Wiem, że zostało to zadane kilka razy, ale wydaje się, że nie ma jednoznacznej odpowiedzi ... szukam tego w ciągu ostatnich 3 dni lub dłużej.Łączenie się z Oracle z iOS App

Nie wydaje się być 2 sposoby podłączenia do bazy danych Oracle z iOS:

  1. ODBC Client muszę skompilować ODBC (które ODBC?) Przy użyciu gcj dla ARM. Myślę, że jest to trudny sposób, obarczony błędami, ale możliwy z dużym wysiłkiem.

  2. KORZYSTANIE Z SERWISU INTERNETOWEGO Połączenie z aplikacji do usługi internetowej i usługi sieci Web do bazy danych Oracle.

Czy są dostępne 2 metody lub jakakolwiek inna?

Kilka pytań na temat dwóch metod: a. Który jest bardziej bezpieczny? b. Czy dział bezpieczeństwa mojej firmy będzie przeciwny któremukolwiek z powyższych? c. Który jest bardziej wydajny? d. Które z powyższych zwykle używasz?

+0

można sprawdzić także .. http://www.oracle.com/technetwork/products/database-mobile-server/oracle-database-lite-10gr3-ds-130079.pdf i http: //orclib.sourceforge.net/blog/ – TonyMkenu

Odpowiedz

6

Nie jest dobrym pomysłem połączenie się z bazą danych bezpośrednio z poziomu aplikacji. Może to być bezpieczne, jeśli utworzysz konto, które nie może nic zrobić poza SELECT, ale jest kilka innych rzeczy do rozważenia.

Po co obciążać aplikację klientem Oracle?

Jeśli masz wielu użytkowników, musisz martwić się, że Oracle obsługuje ogromną liczbę równoczesnych połączeń. Dzięki restrykcyjnym żądaniom API są bezpaństwowcami.

Jeśli zdecydujesz się zmienić swój schemat. Musisz także zmienić swoją aplikację. Gdy umieścisz usługę pomiędzy, aplikacja nie będzie już zależna od schematu.

2

Połączenie ODBC będzie wymagać, aby port Oracle był otwarty dla Internetu, co w zdecydowanej większości przypadków nie będzie dozwolone ze względów bezpieczeństwa i wydajności. Nawet jeśli tak, a nawet jeśli ustanowisz bezpieczną sieć VPN, bezpośredni dostęp do bazy danych wymaga, aby połączenie było otwarte, co może być problematyczne, gdy urządzenie mobilne może wejść i wyjść z zasięgu sieci.

HTTP jest znacznie bardziej odporny na niewiarygodne sieci i może być szyfrowany przy użyciu protokołu SSL (HTTPS). Problem z HTTP polega na tym, że baza danych nie ma bezpośredniego wsparcia dla tego transportu, więc większość ludzi tworzy dedykowane usługi internetowe.

Pracuję nad projektem o nazwie SlashDB, który automatycznie tworzy RESTful API z baz danych. W przypadku publicznych interfejsów API instalowałbyś/db w tak zwanym DMZ (segmencie sieci między dwiema zaporami ogniowymi), jak opisano w this blog post.

SlashDB można skonfigurować tak, aby zezwalał na ograniczony dostęp do danych dla użytkowników publicznych lub można zdefiniować określonych użytkowników o różnych uprawnieniach do danych. Został zaprojektowany jako usługa bezstanowa, co oznacza, że ​​można łatwo skonfigurować wiele węzłów za modułem równoważenia obciążenia i odwrotnego proxy HTTP w przypadku wdrożeń o wysokiej dostępności w sieci WWW.

Bez względu na to, czy usługa internetowa jest rozwijana ręcznie, czy też używasz naszego produktu, uzyskasz lepszą skalowalność, wydajność i bezpieczeństwo dla swojego rozwiązania niż przy użyciu bezpośredniego podejścia klient/serwer. Twierdziłbym nawet, że interfejsy API REST powinny być używane w wewnętrznych systemach integracji danych przedsiębiorstwa, ale to zupełnie nowy temat.

6

Usługi sieciowe to odpowiedź, nie chcesz, aby ludzie łączyli się bezpośrednio z bazą danych za pomocą urządzenia mobilnego. Serwer WWW doda jedną dodatkową warstwę zabezpieczeń, a także możliwość obsługi jednoczesnego żądania bez obciążania bazy danych bezpośrednio

a. Który jest bardziej bezpieczny? Usługi sieciowe zgodnie z wyjaśnieniami powyżej

b. Czy dział bezpieczeństwa mojej firmy będzie przeciwny któremukolwiek z powyższych? Tak, dział bezpieczeństwa będzie nalegał, aby nie otwierać portu Oracle, aby nawiązać bezpośrednie połączenie, chyba że jest już otwarte.

c. Który jest bardziej wydajny? Usługi sieciowe, konfigurowanie zasad dotyczących pamięci podręcznej na serwerze sieci Web pozwala na zapisywanie zasobów w bazie danych.

d. Które z powyższych zwykle używasz? Webservices, ponieważ oferują one wielkie korzyści w zakresie bezpieczeństwa i wydajności, nie tylko, że usługi sieciowe są wielokrotnego użytku i mogą być dostępne dla wielu różnych platform, pomyśl o przyszłości, może chcesz później złożyć swoją aplikację na urządzeniach z Androidem, a Webservices zaoszczędzi ci dużo czasu na rozwój.

Wiele dzisiejszych najlepszych aplikacji na rynku korzysta z usług sieciowych, pomyśl o tym.

Google Maps to doskonały przykład tego, jak wydajne są usługi sieciowe!

Powiązane problemy