Oracle9i: Microsoft .NET による開発
オラクル・テクニカル・ホワイト・ペーパー
Oracle9i: Microsoft .NET による開発
概要
... 3
はじめに
... 4
Windows Server 2003 のサポート ... 4
32 ビットのサポート... 4
64 ビットのサポート... 4
.NET データ・アクセス... 4
Oracle Data Provider for .NET ... 5
OLE DB .NET のサポート... 6
ODBC .NET のサポート... 6
.NET トランザクション ... 6
Visual Studio .NET および.NET フレームワーク... 7
Oracle9i: Microsoft .NET による開発
概要
マイクロソフト社の.NET フレームワークは、広範囲で扱われます。Oracle データ ベース・サーバーと.NET とが統合する領域は、次の 3 つのカテゴリに分類できま す。まず、Windows Server 2003(旧称: .NET サーバー)、次に、Common Language Runtime(CLR)や様々なデータ・アクセス・メカニズムなどのプログラミング・ パラダイムを記述するCommon Language Infrastructure(CLI)、そして最後に、Visual Studio.NET、.NET トランザクションや Web サービスなどの.NET ツールと.NET サービスです。オラクル社は、Windows Server 2003(32 ビットおよび 64 ビット) の発売と同時に(2003 年 4 月 24 日の予定)、この OS 上で自社のサーバー製品を サポートすることを表明しています。 マ イ ク ロ ソ フ ト 社 の Windows Server 2003 オペレーティング・システム(32 ビットおよび64 ビット)が登場した時点 で、このOS をサポートすることを、オ ラクル社は全面的に表明しています。 Oracle 9i database for 64-bit Windows の 開発者向けリリースは、2001 年 12 月初 めよりOTN(Oracle 開発者支援サイト) で 提 供 さ れ て い ま す 。Oracle9i は 、 Windows XP もサポートします。
Oracle9i Database のリリース 2 には、.NET 開発者を対象とした新しいサポート機 能が導入されます。このデータベースにより、OLE DB .NET または ODBC .NET を介した.NET データへのアクセスが実現します。その結果、プログラマは C#や Visual Basic .NET などの.NET 言語を使用して、Oracle データベースにアクセスで きるようになります。Oracle Data Provider for .NET(ODP.NET)と呼ばれる.NET データ・アクセス専用のOracle 固有のドライバもあります。この ODP.NET は、 高パフォーマンスおよびREF Cursor、XML DB などの Oracle 拡張機能へのアクセ スに最適化されたADO.NET 仕様を Oracle に実装したものです。この ODP.NET は、Oracle Technology Network(http://otn.oracle.co.jp/software/tech/windows/odpnet/) より入手してください。Oracle データベースは、引き続き.NET トランザクション に参加可能となります。
Visual Studio.NET 開発者は、バックエンドで Oracle データベースを使用する.NET アプリケーションをシームレスに開発し配置することができます。Visual Studio.NET を経由する統合ポイントは無数存在します。これらの統合ポイントで は、たとえば、データベース、表、ストアド・プロシージャなどを参照したり操 作したりすることができます。
Oracle9i Application Server(Oracle9iAS)リリース 2 は、Web サービスを開発する ための主要な標準として、Simple Object Access Protocol(SOAP)、Web services Description Language(WSDL)および Universal Description, Discovery, and Integration (UDDI)をサポートします。Oracle9iAS および Oracle9i JDeveloper により開発した Web サービスは、.NET Web サービスとシームレスに相互運用できます。Oracle9iAS は、最新のWeb キャッシング、ポータル・サービス、ビジネス・インテリジェン ス、ワイヤレス・サービス、Internet Information Server(IIS)プロキシ・プラグイ ンを通じて、.NET サービスの拡張機能および優れたパフォーマンスを提供します。
Visual Studio .NET 開発者は、Oracle 9i Database を直接使用して Web サービスを構 築する方法も選択できます。この場合、ドラッグ・アンド・ドロップ操作によっ てストアド・プロシージャをプロジェクトに移し、Microsoft IIS を運用する Web サービスとして配置します。
はじめに
自社のソフトウェアを公開して、顧客のニーズに最適なテクノロジが選択できる ようにすることが、オラクル社の基本的姿勢です。公開することを信条としてい るため、オラクル社は常に最新テクノロジの先頭に立って活動してきました。オ ラクル社が創立して間もない頃、主力製品であるデータベースを、他のベンダー よりも多くのオペレーティング・システムに提供することにより、この取組みが スタートしました。オラクル社のこの特色は、今も変らず、Java2 Enterprise Edition の初期導入、COM そして現在の.NET など様々な実現プラットフォーム・テクノ ロジをサポートしています。Windows Server 2003 のサポート
32 ビットのサポート
オラクル社は、1993 年より 16 ビットおよび 32 ビット Windows オペレーティング・ システム・ファミリをサポートし、現在は、32 ビット Windows OS の次期リリー スのサポートを目指した取組みを進めている段階です。OS が使用可能になるとき にオラクル社は32 ビット Windows Server 2003 をサポートする予定です。64 ビットのサポート
オラクル社は、64 ビット環境にソフトウェアを初めて提供したデータベース・ベ ンダーの1 つです。現在、64 ビット対応の Oracle8i V 8.1.6 のデモ・バージョンが 提供されていますが、このデータベースは1999 年 10 月から実際の 64 ビット・ハー ドウェア上で運用されています。2001 年 12 月初めに、64 ビット Windows 対応の Oracle9i Database を開発者向けにリリースし、その後、ベータ版を 2 つリリースし ました。64 ビットの Windows Server 2003 の販売にあわせて 64 ビットのデータベー スの本番バージョンをリリースする予定です。.NET データ・アクセス
オラクル社は、.NET 対応プログラミング言語によって、.NET データ・アクセス を起動する方法を3 通り用意しています。これらのデータ・アクセス・ドライバ は、最新の.NET 仕様に準拠し、高パフォーマンスが得られます。ODBC .NET は、 Oracle データベース ODBC ドライバを使用し、OLE DB .NET は、Oracle データベー スOLE DB ドライバを使用します。これらのドライバは、.NET で徹底的にテスト され、安定性および高パフォーマンスが保証されています。ネイティブ実装であ るOracle Data Provider for .NET も提供しております。オラクル社は、これを最適 な.NET データ・アクセス方法として推奨しています。 Oracle 9i リリース 2 には、様々な方法で、 マイクロソフト社のCLR をベースとす る言語による.NET データ・アクセスをフ ル・サポートする機能が導入されていま す。オラクル社によるCOM ベースのデータ・アクセス方法の中には、.NET プログラ ミング・フレームワークを介して開発者が起動できるものもあります。データベー スからCOM クライアントをコールアウトする Oracle COM Automation 機能によ り、.NET アプリケーション/Web サービスを起動することもできます。また、開 発者はJava ストアド・プロシージャを使用して、データベースから Web サービス をコールすることができます。
図1: .NET と Oracle 間のデータ・アクセス
Oracle Data Provider for .NET
Oracle Data Provider for .NET(ODP.NET)により、.NET 環境から Oracle データベー スへのデータ・アクセスが最適化されます。OLE DB .NET や ODBC .NET とは異 なり、パフォーマンスの低下を招くデータ・アクセス・ブリッジはODP.NET では 使用しません。ODP.NET により、開発者は最新の Oracle データベース機能を活用 できるようになります。このデータ・プロバイダは、C#や Visual Basic .NET など すべての.NET 言語で使用できます。これは、実際に稼働しています。
Oracle Data Provider for .NET は、.NET からOracle にアクセスする手段として、 最高のパフォーマンスを提供し、Oracle の最新データベース機能をサポートしま す。
OLE DB .NET や ODBC .NET と比較し、ODP.NET により、.NET からの Oracle の 使用がより高速で柔軟、しかも安定したものになります。これらは、プログラマ の柔軟性やアプリケーション速度の最適化よりも、コードの移植性に配慮し設計 された共通のインタフェースです。たとえば、ODP.NET は、REF Cursor など Oracle 固有のデータ型をサポートします。ODP.NET では、これらの REF Cursor 変数は 更新可能で、IN パラメータとしてストアド・プロシージャに渡すことができます。 そのため、.NET 内部で REF Cursor がより柔軟に操作できるようになります。最 適化されたLOB の更新および配列 DML のバインディングのサポートにより、ア プリケーションの実行速度が早くなります。
ODP.NET は、Unicode、ローカルおよび分散トランザクションのフル・サポート を通じて、スケーラブルな企業向けWindows ソリューションを提供するように設 計されています。分散.NET トランザクションは、Oracle services for Microsoft Transaction Server がサポートします。ODP .NET は、標準に準拠し、Oracle 固有の 機能も備えています。
OLE DB .NET のサポート
Oracle9i リリース 2 の OLE DB プロバイダは、OLE DB .NET インタフェースを使 用してADO .NET をサポートします。OLE DB .NET は、.NET と OLE DB(マイク ロソフト社製)との間に相互運用性をもたらすブリッジとなります。
Oracle OLE DB は、OLE DB .NET 仕様に完全に準拠し、プログラマは、ストアド・ プロシージャを実行して、LOB にアクセスできます。Windows 開発者が COM と.NET のいずれを使用する場合でも、Oracle OLE DB の機能は完全にサポートさ れます。Oracle provider for OLE DB を使用する OLE DB .NET は、すべての.NET 言語に対応し、Oracle データベースを駆使した.NET の開発を実現します。OLE DB .NET を使用する際は、オラクル社の OLE DB ドライバを使用されることをお 薦めします。
ODBC .NET のサポート
Oracle9i リリース 2 の ODBC ドライバは、ODBC .NET インタフェースによる ADO .NET データ・アクセスをサポートします。OLE DB .NET の場合と同様、 ODBC.NET は、.NET と ODBC(マイクロソフト社製)との間に相互運用性をもた らすブリッジとなります。
Oracle OBDC/ODBC .NET プログラマは、ストアド・プロシージャの実行や LOB へのアクセスなどの豊富な機能にアクセスできます。したがって、Windows 開発 者は、.NET、COM または Win32 から Oracle ODBC のフル機能を利用できます。 Oracle ODBC ドライバを使用する ODBC .NET は、すべての.NET 言語に対応し、 Oracle データベースを利用した.NET の開発を実現します。ODBC .NET を使用す る際は、Oracle ODBC ドライバを使用されることをお薦めします。
.NET トランザクション
Windows プラットフォームを運用している多くの Oracle 顧客が、中間層で Microsoft Transaction Server(MTS)を使用しています。MTS は、COM オブジェク トおよびトランザクションを分散環境で扱うためのアプリケーション・サーバー です。MTS の中核である Distributed Transaction Coordinator(DTC)は、分散した リソース・マネージャ間のトランザクションの調整を行います。Windows 2000 で は、MTS executive のかわりに、COM+サービスの拡張機能が採用されています。 Oracle services for Microsoft Transaction Server により、DTC と Oracle データベース とが統合されます。プロキシとして機能するこれらのサービスにより、DTC で調 整されたトランザクションでOracle データベースをリソース・マネージャとして 使用できるようになります。
Oracle9i リリース 2 の Oracle services for MTS は、トランザクション型.NET アプ リケーションの実行をフル・サポートし ます。
Oracle9i リリース 2 では、Oracle データベースに対して実行されるトランザクショ ン型.NET プログラムは、Oracle services for MTS によりフル・サポートされます。 開発者は、Oracle services for MTS の新しいスケーラブルなアーキテクチャを、.NET 環境で使用できるようになります。Oracle services for MTS を.NET から導入する場 合、オラクル社の.NET データ・アクセス方法(OLE DB .NET/Oracle OLE DB、 ODBC.NET/Oracle ODBC、Oracle Data Provider for .NET)の中から任意のものを使 用できます。.NET または COM のいずれを使用する場合でも、同様の堅牢な機能 性がOracle services for MTS ユーザーに提供されます。
Visual Studio .NET および.NET フレームワーク
Visual Studio .NET は、マイクロソフト社の最新の開発者向け統合開発環境(IDE) です。従来のマイクロソフト社のプログラミング言語(VB、C++など)やプログ ラミングAPI(COM、COM+など)に加え、.NET プログラミング・フレームワー クもサポートします。Visual Studio .NET は、任意の CLR ベースの言語(VB .NET、 C#、C++managed extension など)でアプリケーションが作成でき、様々な形式(ア プリケーション、Web サービスなど)で配置できます。
Visual Studio .NET 開発環境には、Oracle RDBMS に対する簡単かつシームレスに 開発作業が進められる多数の統合ポイントがあります。次に、統合ポイントの例 を示します。 サーバー・エクスプローラ。VS.NET の場合、サーバー・エクスプロー ラがデータベース・オブジェクトの参照機能を提供します。このサー バー・エクスプローラで、マイクロソフト社のOLE DB ドライバを選 択し、Oracle などのデータ・ソースと接続することができます。Oracle データ接続ノードに接続すると、データベース・ダイアグラム、表、 ビュー、ストアド・プロシージャなどの子ノードの他に、Oracle 固有 の機能の一部(シノニム、パッケージ仕様、パッケージ本体など)も 調べることができます。 データベース・ダイアグラムでは、E-R(エンティティ関連)モデル を画面で参照しながら操作できます。Table Designer を使用すると、 表を参照しながら操作できます。View and Query Designer を使用する と、表をドラッグし、リンクを定義して、視覚的に問合せまたはビュー を作成できます。
ストアド・プロシージャ/関数/トリガーのサポート。Visual Studio .NET IDE では、サーバー・エクスプローラでストアド・プロシージャの作 成および操作ができます。このIDE には、ストアド・プロシージャ/ 関数/トリガーを作成するための、簡単なテンプレートが用意されてい ます。 ドラッグ・アンド・ドロップ/データ取得。サーバー・エクスプローラ では、表やストアド・プロシージャなどのOracle オブジェクトを、ド ラッグ・アンド・ドロップ操作によって、特定の種類のプロジェクト に移し、データベース・アクセス・コードを自動的に作成できます。 VS .NET のデータ取得機能を使用すると、表またはビューのコンテン ツを即座に参照できます。
Web サービスおよび.NET
Web サービスは、メッセージ・プロトコル、プログラミング基準、ネットワーク 登録および検出機能(Web で接続された任意のデバイスから、ビジネス機能をイ ンターネット経由で権限が与えられた関係者に公開する機能)で構成されていま す。Web サービスとは、次の機能を持つビジネス・プロセスです。 ビジネス・プロセス自体を公開し説明する。他のサービスが Web 上でこれらのビジネス・プロセスを検索できる ようにする。 起動可能である。 レスポンスを戻す(シンプルな Web サービスの場合は、シンプルな リクエスト/レスポンス機能、または高度なセキュリティ、B2B 協調 動作、ビジネス・プロセス管理を起動する複雑なWeb サービスの場 合は、長時間実行されるトランザクション型の相互対話)。 適切な内部ビジネス・プロセスをオプションとして提供する。 Oracle9i は、Web サービスを開発するための主要な標準として、SOAP(Simple Object Access Protocol)、WSDL(Web services Description Language)および UDDI (Universal Description, Discovery, and Integration)をサポートします。オラクル社製 品を使用して開発されたWeb サービスは、マイクロソフト社の.NET アーキテク チャに従って開発されたWeb サービスとシームレスに相互運用できます。一般に、 Oracle データベースを使用した Web サービスまたは.NET アプリケーションの作 成方法には、次の2 つがあります。
Oracle9i Application Server と Oracle9i Database を使用する方法。 Oracle9i JDeveloper などの Oracle ツール製品を使用して、Oracle9iAS のすべての拡張機能を活用するWeb サービスを構築し配置します。 この他に、IIS を Web リスナーとして使用するオプション、および IIS プロキシ・プラグインによりOracle9iAS と相互対話するオプションが あります。
Oracle データベースのバックエンドに対し、中間層で IIS のみ使用す る方法。Visual Studio .NET を使用して、ASP .NET、VB .NET などの アプリケーションやWeb サービスを開発し、Oracle9i Database と対す るIIS に配置することができます。
PL/SQL または Java ストアド・プロシージャから Oracle RDBMS をコールして、 Web サービスを起動する方法もあります。
オラクル社のWindows 製品の詳細は、次の Oracle サイトにアクセスしてください。
Oracle9i: Microsoft .NET による開発 2003 年 4 月
著者: Barmak Meftah
Oracle Corporation 発行「Oracle9i: Developing with Microsoft .NET」の翻訳版です。 Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. 海外からのお問合せ窓口: 電話: +1.650.506.7000 ファックス: +1.650.506.7200 www.oracle.com オラクル社は、インターネット上での活動を強化するソフトウェアを提供します。 Oracle はオラクル社の登録商標です。 この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。 万一、誤植などにお気づきの場合は、オラクル社までお知らせください。オラクル社は本書の内容に関していかなる保証もしません。また、本書の内容に 関連したいかなる損害についても責任を負いかねます。 このガイドで使用されているさまざまな製品名およびサービス名には、オラクル社の商標が含まれています。 その他のすべての製品名およびサービス名は、各社の商標です。