2013-04-01 10 views
9

So che è stato chiesto alcune volte, ma sembra che non ci sia una risposta chiara ... sto cercando su questo negli ultimi 3 giorni o più.Connessione a Oracle dall'app iOS

Sembra che ci siano 2 modi per connettersi a un database Oracle da un App iOS:

  1. ODBC client ho bisogno di compilare ODBC (che ODBC?) Utilizzando gcj per ARM. Penso che questo sia il modo difficile, commesso con errori, ma possibile con un certo sforzo.

  2. UTILIZZO DEL SERVIZIO WEB Connessione dall'app al servizio Web e dal servizio Web al DB Oracle.

Questi sono i 2 metodi disponibili o altri?

Poche domande sui due metodi: a. Quale è più sicuro? b. Il dipartimento di sicurezza della mia azienda si oppone a uno dei precedenti? c. Quale è più performante? d. Quale di questi usi normalmente?

+0

è possibile controllare anche .. http://www.oracle.com/technetwork/products/database-mobile-server/oracle-database-lite-10gr3-ds-130079.pdf e http: //orclib.sourceforge.net/blog/ – TonyMkenu

risposta

6

Non è consigliabile connettersi al database direttamente dall'app. Può essere sicuro se crei un account che non può fare altro che SELECT, ma ci sono alcune altre cose da considerare.

Perché caricare l'app con il client Oracle?

Se si dispone di molti utenti, è necessario preoccuparsi che Oracle gestisca un numero elevato di connessioni simultanee. Con una restful API le richieste sono stateless.

Se si decide di modificare lo schema. Dovrai anche cambiare la tua app. Quando si inserisce un servizio in mezzo, l'app non dipende più dallo schema.

2

La connessione ODBC richiede che la porta Oracle sia aperta su Internet, che nella stragrande maggioranza dei casi non sarà consentita per motivi di sicurezza e prestazioni. Anche se lo fosse, o anche se si stabilisce una VPN sicura, un accesso diretto al database richiede che la connessione sia mantenuta aperta, il che può essere problematico quando un dispositivo mobile può entrare e uscire dalla copertura della rete.

HTTP è molto più tollerante alle reti inaffidabili e può essere crittografato tramite SSL (HTTPS). Il problema con HTTP è che il database non ha un supporto diretto per questo trasporto, quindi la maggior parte delle persone sviluppa servizi Web dedicati.

Lavoro su un progetto chiamato SlashDB, che crea automaticamente API RESTful dai database. Per le API pubbliche dovresti installare/db in DMZ (un segmento di rete tra due firewall) come descritto in this blog post.

SlashDB può essere configurato per consentire l'accesso limitato ai dati agli utenti pubblici oppure è possibile definire utenti specifici con vari privilegi ai dati. È progettato come servizio stateless, il che significa che è possibile configurare facilmente più nodi dietro un bilanciamento del carico e un proxy HTTP inverso per distribuzioni su scala Web ad alta disponibilità.

Indipendentemente dal fatto che si sviluppi il servizio Web a mano o si usi il nostro prodotto, si ottengono migliori scalabilità, prestazioni e sicurezza per la soluzione rispetto all'utilizzo diretto del client/server. Direi anche che le API REST dovrebbero essere utilizzate per soluzioni interne di integrazione dei dati aziendali, ma questo è un argomento completamente nuovo.

6

I servizi Web sono la risposta, non si desidera che le persone si colleghino direttamente al database da un dispositivo mobile. Un server Web aggiungerà un ulteriore livello di sicurezza e la possibilità di gestire la richiesta simultanea senza stressare direttamente il database

a. Quale è più sicuro? Webservices come spiegato sopra

b. Il dipartimento di sicurezza della mia azienda si oppone a uno dei precedenti? Sì, il dipartimento di sicurezza insiste a non aprire la porta Oracle per connettersi direttamente, a meno che non sia già aperta.

c. Quale è più performante? I servizi Web, impostando le giuste politiche della cache in un server web possono salvare risorse nel database.

d. Quale di questi usi normalmente? Webservices, perché offrono grandi vantaggi in termini di sicurezza e prestazioni, non solo, i servizi Web sono riutilizzabili e accessibili da molte piattaforme diverse, pensate al futuro in cui vorreste servire la vostra applicazione più tardi su dispositivi Android e Webservices vi salverà un sacco di tempo di sviluppo.

Molte delle principali applicazioni di oggi sul mercato utilizzano i servizi Web, pensateci.

Google Maps è un ottimo esempio di quanto siano potenti i servizi web!

Problemi correlati