2009-06-03 16 views
3

私はiPhone開発契約の可能性について誰かと話をしてきました。私が実際に知っているのは、内部データベースにヒットするiPhoneアプリを作りたいという会社があるということだけです。データベースの種類(Oracle、MySQLなど)がわからない。iPhone:インターネット経由でデータベースに接続していますか?

私は、インターネット経由でこれらのいずれかに接続するための大きな学習曲線がある場合は、データベースタイプがOracleかMySQLかを知りたがっていますか?

本当の痛みなら、私は収穫を受け入れる前にもっと研究をするかもしれません。

+0

誰かがこのデータベースにアクセスする方法を尋ねる必要があります。 – tuinstoel

答えて

14

iPhoneアプリケーションから直接データベースにアクセスすることをお勧めします。

通常、データベースにアクセスするWebサービスを作成し、そのWebサービスをiPhoneアプリケーションから使用します。

1

ローカルの場合と同じ方法でインターネット経由で簡単に接続できますが、リモートIPアドレスからの通信を受け入れる場合は、データベースを攻撃の対象としています。通常、オープンポートを介してサーバーのリモートIPアドレスに接続するソケットを介して接続します。MySQLのデフォルトポートは3306です。

これらのシステムに対して一般的に推奨されるのは、内部的なデータベースは世界のハッカーコミュニティに公開されています。

1

私がやっていることは、Sinatraを使ってオンラインデータベースにアクセスするWebサービスを作成することです。

+1

ウェブサイトはsinatrarb.comではなく、sinatra.rbである –

+0

ありがとう!私はそれを修正しました。 –

3

Webサービスを作成します。これは、あなたがシンクライアントのiphoneアプリをより多く作ることができます。アプリケーションがWebサービスにコマンドをプッシュし、データベースとの処理および対話を行い、アプリケーションが必要とするデータのみを返すようにします。

このオプションは、アプリ、データベース、およびお客様のセキュリティに適しています。

1

2009年の回答はほとんど廃止されました。

http://ODBCrouter.com/ipad(新)には、XCodeクライアント側のODBCライブラリ、ヘッダーファイル、およびマルチスレッドのObjective Cオブジェクトがあり、アプリケーションがSQLをサーバー側のODBCドライバに送信してバイナリ結果を得ることができます。これにより、SOAP/RESTサーバーを停止して別に保守する必要性が減り、維持していてもかなり恐ろしい結果を招く可能性があります。

XMLスキームは、静的構成をモバイルデバイスに "時々転送"するのに問題ありませんでしたが、XMLは、 "サーバー環境"(電源コード、有線ネットワーク、無線条件付きで)、モバイルアプリのn個のコピーから頻繁に来るデータベースクエリに対しては効率的ではありません。 JSONを使ってもサードパーティ製のJSONライブラリがありますが、データベースのバイナリ表現からサーバー上のテキスト表現にすべてをエンコード(デコード)する必要があります(ユーザーに表示される場合は問題ありません)とにかくWebブラウザでは、モバイルアプリがバイナリに変換し直して、ユーザーが何をしているのかを「舞台裏で」計算できるようにするには問題ありません。モバイルCPUがXMLとJSONで描画するネットワークオーバーヘッドとバッテリ電力が高いことを除けば、データベースへのODBC接続を使用するだけでなく、バ​​ックエンドサーバーでRAMとCPUの電力をより多く購入できるようになります。

+0

Benのフォローアップに関する質問はここにありますが、答えはVPNを使用するか、ユーザー名とパスワードをサポートするデータソース(OracleやMySQLなど)を選択することです。データベースにアクセスするときにWebサーバー上の迷子なPHPスクリプトがしなければならないように、最初のODBC接続文字列にユーザー名とパスワードを渡すことができます( "; UID = xxx; PWD = yyy;")。 SQL GRANTコマンドを使用して、ユーザー名がアクセスできるストアドプロシージャ、テーブル、ビュー、データベースなどを制御します。これは、例えばATM現金自動預け払い機が銀行のデータベースにつなぐ方法です。 –