コンテンツ |
 |
|
はじめに
IBM® DB2® Universal DatabaseTM(UDB)は、重要なインターネット規格のすべてをサポートしており、Webでの利用に理想的なデータベースです。リレーショナル・データベースのスケーラビリティーと可用性の特性に加えて、インターネット検索と複雑なテキスト・マッチングを円滑に行うためのメモリー内速度を備えています。DB2
UDBは、WebSphere®、JavaTM、およびXML技術をサポートしており、e-businessアプリケーションの導入を容易にします。
DB2 Universal Databaseは、さまざまな種類のJavaプログラムをサポートしており、JDBCTMを使ってJavaで作成したクライアント・アプリケーションやアプレット用のドライバー・サポートを提供します。また、組み込みSQL
for Java(SQLJ)、Javaユーザー定義関数(UDF)、およびJavaストアード・プロシージャーもサポートしています。
この記事では、DB2 UDB Universal Developer's Edition Version 8(UDE)、DB2 for z/OSTM
and OS/390®(V7)、およびDB2 for iSeriesTM(V5R2)で提供されているJavaアプリケーション開発環境について説明します
Javaプラットフォーム・サポート
このセクションでは、次の機能について説明します。
JDBCサポート
JDBC仕様によると、4つのタイプのJDBCドライバー・アーキテクチャーが存在します。
- Type 1 − Open Database Connectivity(ODBC)などの別のデータ・アクセスAPIへのマッピングとしてJDBC
APIを実装するドライバー。このタイプのドライバーは一般に、ネイティブ・ライブラリーに依存しており、移植性が制限されます。JDBC-ODBCブリッジ・ドライバーが、Type
1ドライバーの一例です。
- Type 2 − 一部はJavaプログラミング言語で作成され、一部はネイティブ・コードで作成されたドライバー。このタイプのドライバーは、接続先のデータ・ソースに固有のネイティブ・クライアント・ライブラリーを使用します。ネイティブ・コードを使用するため、やはり移植性は制限されます。
- Type 3 − Pure Javaクライアントを使用し、データベースに依存しないプロトコルを使用してミドルウェア・サーバーと通信するドライバー。ミドルウェア・サーバーは、クライアントの要求をデータ・ソースに伝えます。
- Type 4 − Pure Javaであり、特定のデータ・ソース用のネットワーク・プロトコルを実装したドライバー。クライアントは、データ・ソースに直接接続します。
DB2 UDB Version 8 for Linux, UNIX®, and Windows®は、Type
2、Type 3、Type 4のJDBCドライバーをサポートしています。従来のリリースのJDBCドライバーは、DB2 CLI(コール・レベル・インターフェース)の上に構築されていました。DB2
Version 8のType 2とType 3ドライバーは、引き続きこのDB2 CLIインタフェースを使って、UNIX、Windows、Linux上のDB2
UDB サーバーと通信します。通常の場合、Linux、UNIX、Windows上のアプリケーションがOS/390、z/OS、iSeries上のDB2データへのアクセスを要求すると、DB2
Connectサーバーが要求されます。DB2 UDB Version 8 for Linux, Unix and Windowsには、新たにDB2
JDBC Universal Driver(Type 4)が追加されています。このドライバーは、クライアント/サーバー通信用に分散リレーショナル・データベース体系TM(DRDA®)プロトコルを使用しており、対応するDRDA
Application Server(AS)レベルのサポートと必要なストアード・プロシージャーを持つ各種DB2サーバー・プラットフォームと互換性があります。この新しいJDBC
Universal Driverを使って、DB2データベース・サーバー・ファミリー間でデータにアクセスすることができます。このドライバーは現在、UNIX、Windows、Linux上のDB2
UDB v8サーバーと、z/OS上のDB2 UDB v7およびv8サーバーをサポートしています。このドライバーの将来の方向性としては、iSeries上のDB2もサポートする予定です。
DB2 for iSeriesデータベース・サーバーには、Type 4 JDBCドライバーであるiSeries Toolbox for Javaドライバーが用意されています。iSeries
Developer Kit for Javaには、iSeries DB2コール・レベル・インターフェース(CLI)ネイティブ・ライブラリー上に構築されたType
2 JDBCドライバーがあります。
DB2 for z/OS v7はJDBC Type 2ドライバーを提供しており、次期DB2 V8 for z/OSリリースでJDBC Universal
Driver(Type 4)をサポートする計画を発表済みです。
DB2 JDBCドライバーは、最新のJDBC 3.0の機能の多くをサポートしています。
SQLJサポート
DB2 SQLJサポートにより、SQLJアプレットやアプリケーションを構築し、実行することができます。こうしたJavaプログラムには、プリコンパイルされ、DB2
UDBデータベースにバインドされた組み込みSQLステートメントが含まれています。
SQLJには、変換プログラム、カスタマイザー、ランタイム環境の3つのコンポーネントがあります。変換プログラムは、ソースSQLJプログラム内の組み込みSQLステートメントに基づいて、Javaコードを生成します。SQLステートメントのバイナリー表現が、個別の直列化プロファイル(.ser
file)に作成されます。db2sqljcustomizeコマンドを使ってプロファイルをカスタマイズすると、静的SQLパッケージが作成されます。
| 図1. |
Type 4 Java Universal Driverを使ったSQLJアプリケーション開発(ドライバーとリリースによってはプロセスが異なる場合があります) |

SQLJは、下記を提供します。
- 静的パッケージ・レベル・セキュリティー・モデル
- 静的SQLインタフェース(例:SELECT xxx INTO :hv1, :hv2)
- JDBCと比較した場合の開発生産性の向上(特に、既存の組み込みSQLアーキテクチャー(C、COBOLなど)からアプリケーションを移植する場合)。
J2EEサポート
Java 2 Platform, Enterprise Edition(J2EE)は、多層エンタープライズ・アプリケーション開発用の規格を定義しています。J2EEプラットフォームは、インフラストラクチャーを管理し、Webサービスをサポートして、セキュアで堅牢性があり、相互運用可能なビジネス・アプリケーションの開発を可能にします。J2EEは、「Write
Once, Run Anywhere」の移植性やデータベース・アクセス用のJDBC APIなど、Java 2 Platform, Standard
Editionの多くの機能を活用しているだけでなく、Java Servlets、JavaServer Pages(JSPs)、およびXML技術といったEnterprise
JavaBeans(EJBs)コンポーネント・フル・サポートを追加しています。単純性、移植性、スケーラビリティー、およびレガシー統合を備えたJ2EE技術とそのコンポーネントベース・モデルにより、エンタープライズの開発と導入が簡素化されます。
図2.J2EEアプリケーション・モデル
Entity EJB(Enterprise Javabeans)には、コンテナー管理パーシスタンス(CMP)とビーン管理パーシスタンス(BMP)の2つのタイプがあります。WebSphere
Studioは、Entity EJBを含め、J2EEアプリケーションの作成に理想的な環境を提供します。多くのJava開発者は、単にDB2データベース・サーバーに保存されたデータにアクセスするために、好んでCMP
EJBを使用しています。柔軟で移植可能なこのプログラミング・モデルは、リレーショナル・マッピング・レイヤーへのオブジェクトとEnterprise
Javabean Query Language(EJB-QL)を使って、データ・アクセス・レイヤーを抽象化します。WebSphere Studio
Application Developer v5製品は、DB2アプリケーションを迅速かつ効率的に構築するためのJ2EE開発ウィザードとテンプレートのフル・スイートを提供します。J2EEアプリケーションを開発しながら、組み込みWebSphereテスト環境で迅速にテストを行い、準備の整ったWebSphere
Application Server本番環境にアプリケーションを導入することができます。
DB2 EJBサンプル
DB2 Version 8 on Linux, UNIX and WindowsにはDB2 UDB EJBベースのサンプルが同梱されています。このサンプル・アプリケーションには、Session/Entity
EJBコンポーネントへのJSP/servletインタフェースを使ってDB2サンプル・データベースにアクセスするWebクライアントが内蔵されています。サンプル・アプリケーションの入ったAccessEmployee.earファイルは、Windowsプラットフォームであれば、<DB2_root>\samples\java\Websphere\ディレクトリーに、UNIXプラットフォームであれば、<DB_instance_home>/sqllib/samples/java/Websphereディレクトリーにあります。
EJBサンプル・アプリケーションの詳細な説明と導入情報は、samples/JavaディレクトリーのREADMEファイルにあります。
Java UDFとストアード・プロシージャー
DB2 UDBは、DB2サーバー内部のアプリケーションの一部をリンクするための柔軟なJavaインフラストラクチャーを提供します。Javaモジュールを、ユーザー定義関数(UDF)と呼ばれるSQL拡張に変換することが可能です。もう1つの強力なオプションは、既存のJavaクラスを使って、ストアード・プロシージャーと呼ばれるデータベース・オブジェクトを作成する機能です。Java
UDFとストアード・プロシージャーには、DB2サーバーとJava仮想マシン、外部のJavaクラス・ファイルとのインタラクションが関係するため、そうした機能の構築と導入のベスト・プラクティスに関して、DB2ファミリー間のプラットフォームの相違を考慮することが重要です。DB2
UDB V8には、Java用の分散デバッガーが同梱されており、Javaストアード・プロシージャーのロジックをデバッグするのに便利です。DB2
Development Centerを使用すれば、多くのプラットフォーム上でJavaストアード・プロシージャーとUDFを作成し、テストすることができます。
DB2 Java UDFを使って、データベース・サーバーSQL言語の機能を拡張することができます。実装後は、任意のSQL照会によってJava
UDFを呼び出すことができます。そうしたJava SQL関数は、スカラー値またはテーブル(レコード・セット)を戻すことができます。テーブル関数は、データ・ソースをDB2テーブルのように見せることができるため、強力であり、その後、通常のSQL照会、結合操作、グループ化などに使用することができます。JavaベースのSQL関数の作成についての詳しい情報は、DB2
SQLリファレンスのCREATE FUNCTION SQLステートメントの説明を参照してください。
ストアード・プロシージャーは、アプリケーション・ロジックとサーバー上のデータベース・アクセスをカプセル化するのに役立ちます。クライアント・アプリケーションから呼び出されたストアード・プロシージャーが、データベース・アクセスを実行します。ネットワーク経由で不必要なデータが戻されることはありません。ストアード・プロシージャーは、クライアント・アプリケーションが必要とする結果のみを戻します。ストアード・プロシージャーは、次の利点をもたらします。
- パフォーマンスの改善:
SQLステートメントをグループ化することで、ネットワーク・トラフィックを軽減することができ、その結果パフォーマンスが改善されます。通常のアプリケーションでは、各SQLステートメントについてネットワーク2往復が必要とされます。SQLステートメントをストアード・プロシージャーにグループ化することにより、トランザクションを完了するためのネットワーク・インタラクション数を減らすことができます。大規模な結果セットを、DB2サーバー上でストアード・プロシージャー・モジュール内部で処理することができ、クライアント・アプリケーション側で処理しなければならないデータ量を削減することができます。
- データ・モデルに関連するビジネス・ルールの実行:
ストアード・プロシージャーを使って、一般的なビジネス・ルールを定義し、再利用することができます。アプリケーションからストアード・プロシージャーを呼び出すと、ストアード・プロシージャーに定義されたルールに従った一貫した方法でデータが処理されます。ルールを変更する必要がある場合は、ストアード・プロシージャーに一度変更を加えるだけで済みます。ストアード・プロシージャーを呼び出すすべてのアプリケーションを変更する必要はありません。
JavaベースのSQLプロシージャーの作成についての詳しい情報は、DB2
SQLリファレンスのCREATE PROCEDURE SQLステートメントの説明を参照してください。
図3a.JavaクライアントとDB2間のコマンド
図3b.Javaクライアント
Javaアプリケーション開発用ツール
WebSphere Studioは、Javaアプリケーションの構築、テスト、WebSphere Application ServerおよびDB2
Universal Databaseへの導入を可能にする統合開発環境(IDE)です。WebSphere StudioのDB2ストアード・プロシージャーとUDFビルダー・コンポーネントは、DB2
Universal Databaseと併用するためのJavaストアード・プロシージャとユーザー定義関数(UDF)の作成および処理用のウィザードとツールを提供します。DB2データにアクセスするアプリケーションの作成時に、データベース・サーバーに登録されるストアード・プロシージャーとUDFを組み込むことにより、アプリケーションのパフォーマンスを高めることができます。
DB2 Development Centerを、単独でまたはWebSphere Studioと組み合わせて使用して、UNIX、Windows、Linux、およびz/OSプラットフォーム用の、サーバー・サイドのJavaストアード・プロシージャーやUDFを作成することができます。
要約
DB2 UDB Universal Developer's Edition Version 8製品は、アプリケーションを高速に構築・導入するために必要とされるすべてのツールを提供します。パッケージには、フル機能の統合開発環境、スケーラブルなWebアプリケーション・サーバー、およびDB2
UDB組み込みXML機能が含まれています。DB2 Universal Databaseは、e-businessのデータ管理の基盤となるスケーラブルできわめて強力なデータベースです。
参考文献
DB2、DB2 Universal Database、分散リレーショナル・データベース体系、DRDA、iSeries、OS/390、WebSphereおよびz/OSは、IBM
Corporationの米国またはその他の国(あるいはその両方)における商標または登録商標です。
Windowsは、Microsoft Corporationの米国またはその他の国(あるいはその両方)における登録商標です。
JavaおよびすべてのJava関連の商標およびロゴは、Sun Microsystems, Inc.の米国またはその他の国(あるいはその両方)における商標または登録商標です。
UNIXは、The Open Groupの米国およびその他の国における登録商標です。
他の会社名、製品名、およびサービス名は、他社の商標またはサービス・マークである場合があります。 IBMの著作権および商標情報
原文はこちら
|