Windows 10プラットフォーム用のODBC-ODBCブリッジをリリースしたばかりなので、この機会に製品についてのブログを作成して、製品の用途を説明すると思いました。
当社の製品の大部分は、アプリケーションを特定のデータベースに接続する「シングルティア」ODBCドライバーです。たとえば、SQLServerODBCドライバーはアプリケーションをSQLServerデータベースに接続します。 ODBCドライバーは、データベースと直接通信するため、シングルティアと呼ばれます。
ただし、ODBC-ODBCブリッジは、クライアントコンポーネントとサーバーコンポーネントの両方を備えた多層ODBCドライバーです。 ODBC-ODBCブリッジは、アプリケーションと(サードパーティの)ODBCドライバーの間に位置し、アプリケーションによって行われたODBCAPI呼び出しを渡します。 ODBC-ODBCブリッジクライアントは、アプリケーションのODBCドライバーです。 ODBC-ODBCブリッジサーバーは、ターゲットODBCドライバーへのアプリケーションとして機能します。
では、なぜこの追加のデータ接続レイヤーを導入する必要があるのでしょうか?
ODBC-ODBCブリッジは、アプリケーションがODBCドライバーと連携するためのクロスプラットフォーム/クロスアーキテクチャメカニズムを提供します。当初、これは、アプリケーションのプラットフォームで使用できないODBCドライバーを使用する必要がある顧客向けのソリューションとして使用されていました。たとえば、顧客のアプリケーションはLinuxで実行されていましたが、ターゲットのODBCドライバーはWindowsでのみ使用可能でした。
最近では、ODBC-ODBCブリッジの最も一般的な使用法は、顧客が64ビットアプリケーションを使用しているが、ODBCドライバーが32ビットのみ(またはその逆)である場合です。 ODBCドライバーはライブラリであり、アプリケーションのアーキテクチャとそれが使用するライブラリは同じである必要があります。通常、ユーザーは、データベースへの接続の試行が「指定されたDSNにドライバーとアプリケーション間のアーキテクチャの不一致が含まれています」というエラーで失敗したときに、この要件を最初に認識します。これは、Windowsに含まれているODBCドライバーマネージャーによって生成されたエラーであり、ODBC-ODBCブリッジの新しいリリースでは、これはWindows 10で解決できる問題です(ODBC-ODBCブリッジはWindows 2000以降の以前のバージョンのWindows。)
Windowsでは、ODBC-ODBCブリッジには、64ビットと32ビットの両方のクライアントとサーバーのペアが含まれています。 64ビットクライアントは、64ビットODBCドライバーをアプリケーションに提供します。 32ビットサーバーは、32ビットODBCドライバー用の32ビットアプリケーションを提供します。クライアントとサーバーは同じWindowsマシン上で共存でき、アーキテクチャに依存しないメカニズムを使用して通信できます。つまり、クライアントが32ビットサーバーと64ビットサーバーのどちらと通信しているかは、ODBC-ODBCブリッジにとって重要ではありません。
一般的な例として、64ビットアプリケーションをMDB形式のAccessデータベースに接続する必要がありますが、データベースのODBCドライバーは32ビットです。 WindowsバージョンのODBC-ODBCブリッジをマシンにインストールし、クライアントとサーバーの両方をインストールするデフォルトのインストールオプションを受け入れます。最後に、32ビットAccessデータソースを指す64ビットODBC-ODBCブリッジクライアントデータソースをODBCAdministratorで構成します。その後、64ビットアプリケーションは32ビットODBCドライバーに接続でき、この統合を促進しているミドルウェアをまったく認識していません。
(同様に、状況が前の例で示した状況と反対の場合、32ビットのODBC-ODBCブリッジクライアントは64ビットサーバーと通信できます。)