使用者の手引き

DB2 コネクトと Web アプリケーション

Web ブラウザーは急速な勢いで、 オンライン・カタログからイントラネット・アプリケーションに至るあらゆるものの標準インターフェースになりつつあります。 単純な Web アプリケーションであれば、Web サーバーだけで十分な場合もあります。 それに対し、データベース・アクセスやトランザクション処理を必要とするような、 大量データを処理するアプリケーションについては、 DB2 コネクトを使って Web 上で膨大な数のトランザクションを同時に処理するソリューションが IBM によって提供されています。

ここでは、DB2 コネクトを使用することで効果を上げることができる Web ベースのビジネス・ソリューションについて解説します。

従来の CGI プログラミングの利点と限界

WWW 上の e-business アプリケーションは通常、 ユーザーがバックエンドのデータベースを照会できるように CGI (Common Gateway Interface) を使っています。 多くの企業も内部で Web アプリケーションを利用しており、 この場合でも通常はバックグラウンドでデータベースが稼働しています。

ユーザーが Web ページ上のフォームに記入すると、 それらのフォームは CGI 経由で Web サーバー上のアプリケーションまたはスクリプトに送られます。 次に、そのスクリプトは提供されているデータベース API を使って、 SQL 照会をホスト・データベースへ送信します。 続いて、その同じスクリプトは照会の結果を表示する Web (HTML) ページを作成し、 ユーザーの Web ブラウザーが表示できるようにそれを送り返します。 たとえば、特定の商品やサービスが入手 (利用) 可能であるか、 あるいはその現在の価格がいくらかをユーザーが照会できるオンライン・カタログはその一例です。

CGI アプリケーションは設計をシンプルにすることができ、 保守するのも容易です。 CGI はオペレーティング・システムと言語のいずれにも依存しない規格であるため、 ほとんどすべてのコンピューティング・プラットフォームで利用できます。 CGI プログラムは C++ で記述することもできれば、 Perl などのスクリプト言語で記述することもできます。

このように、CGI は Web ベースのアプリケーションにおける 理想的なソリューションのように見えますが、実は重大な欠点があります。 まず、CGI のプログラミング環境は他の API の場合ほど洗練されていません。 さらにスケーラビリティーにも問題があり、 大規模な e-commerce を運用するときに影響を及ぼします。 CGI アプリケーションを 1 つ起動するたびに、Web サーバーでは新しいプロセスが 1 つ作成されます。 各インスタンスはデータベースへの接続を各自のものとして確立する必要があり、 それぞれが各自の照会を送信することになります。 大量のトランザクションの処理を行う環境では、 このような制限によってパフォーマンスに重大な問題が生じることがあります。

DB2 コネクトを Web サーバーと組み合わせて使えば、 大量のデータを扱う堅固な e-commerce アプリケーションを作成できます。 DB2 コネクトには、Web ベースのアプリケーションのパフォーマンスを改善するいくつかのソリューションが用意されています。 さらに、DB2 コネクトのユーザーはストアード・プロシージャー (Web サーバー上の DB2 コネクト) を利用することで、 データベースに送られる照会の数を減らすことができます。

接続プール (接続のプールを参照) を利用すれば、 データベースとの間の接続および切断の頻度を少なくすることができます。 大量データを処理するときに CGI の制限が問題となる場合は、 IBM の Net.Data (Net.Data を参照) および WebSphere (IBM WebSphere を参照) を使って、 大量データを処理するエンタープライズ・アプリケーションへ非 CGI 接続を行うことが可能です。

Web サーバー上の DB2 コネクト

DB2 コネクトのすべての製品 (OS/2 版、UNIX 版、Windows NT 版、Windows 2000 版) には、 HTTP (Web) サーバーが用意されています。 さらに、DB2 コネクト エンタープライズ・エディションは Apache や Lotus Domino Go といった Web サーバーを独創的な方法でサポートしているだけでなく、 Microsoft Internet Information Server や Netscape Enterprise Server など他の Web サーバーと組み合わせて利用することも可能です。

OS/390、AS/400、VM、VSE の各システム上で DB2 ファミリーのデータベースを利用している場合、 Web サーバー側では DB2 コネクト エンタープライズ・エディションが必要になります。 DB2 コネクト エンタープライズ・エディションには、Web サーバーがこれらのホスト・プラットフォームおよび AS/400 プラットフォームへアクセスすることを可能にするライブラリーと通信インターフェースが用意されています。 Web サーバーと、OS/390、AS/400、VM、または VSE 上で稼働しているデータベースとの間の通信には、TCP/IP または SNA のいずれかを使用できます。
注:IBM の Web ソリューションでは、 複数のデータベースを同一の CGI スクリプトで、あるいは特定の CGI スクリプトの同一トランザクション内で扱うことができます。

続く 2 つのセクションでは、DB2 データベースにアクセスする CGI アプリケーション側で実行可能な、 パフォーマンスを向上させる方法について説明します。 その後のセクションでは、標準の CGI に代わる手段 (Java など) について考えます。

ストアード・プロシージャー

クライアント / サーバーの場合と同様、 Web アプリケーションについて考慮すべき重要な点として、 HTTP サーバーとバックエンド・データベースの間で発生する通信量を最小限に抑えることが挙げられます。 これは、大多数の e-business アプリケーションで中心的な役割を果たす、 大量データのトランザクション処理において特に重要な点です。

推奨されるアプローチは、CGI アプリケーションのプログラミングを、 ストアード・プロシージャーにカプセル化されたプログラミングおよびビジネス・ロジックと組み合わせる手法です。 OS/2、UNIX、および Windows 上の DB2 ユニバーサル・データベースと、 OS/390、AS/400、および VSE 上の DB2 はいずれも、 ストアード・プロシージャーを呼び出すときに同じパラメーター規則を使います。

通常の CGI の場合と同様、Web ブラウザーはフォームを Web サーバーに送信し、そこで CGI スクリプトが実行されます。 ただし、個々の SQL ステートメントが DB2 データベースに送られる代わりに、 ストアード・プロシージャーを実行するようにとの要求が送られます。 このストアード・プロシージャーは、何もしなければ別々に実行されてしまういくつかの SQL ステートメントをカプセル化します。 それで、ストアード・プロシージャーを利用することによって、 CGI スクリプトとバックエンド・データベースとの間でやり取りされるメッセージの数を減らすことができます。

ストアード・プロシージャーの主な利点は、 HTTP サーバーとバックエンドの DB2 データベースの間におけるネットワーク通信量が減少することです。 ストアード・プロシージャーについて詳しくは、 アプリケーション開発の手引き、または DB2 ストアード・プロシージャー・ビルダーのオンライン・ヘルプを参照してください。

接続のプール

DB2 コネクト・サーバーからホストへの接続を確立するには、 コンピューター・リソースと時間が必要です。 数千ものクライアントが DB2 コネクト・サーバーを介してホストに対し接続と切断を頻繁に繰り返す環境では、 接続の確立と切断に相当の処理時間を費やすことになります。

DB2 コネクトの接続プールは、そのような環境でのパフォーマンスを大幅に向上させるものです。 DB2 コネクトは、データベースに対してオープンしている接続を使用可能なプールで保持し、 クライアントが接続を要求すると、すでに使える状態になっている接続をこのプールから提供できます。 接続プールによって、通常はそれらの接続をオープンしたりクローズしたりするのに費やされるオーバーヘッドが大幅に減少します。

接続プールの仕組みについて詳しくは、 接続のプールを参照してください。

Java アプリケーション・サーバーとしての DB2 コネクト

CGI の欠点の多くは、それをなるべく使用せず、 代わりに Java を使うことで回避できます。 IBM は、Web トランザクションのどの場面でも CGI の代わりに Java を利用できるようにするアプレットとアプリケーションの両方を提供しています。 IBM が提供するソリューションでは、いくつもの技術を組み合わせて利用できるようになっています。 つまり、Net.Data や Microsoft Active Server Pages のようなスクリプトによるソリューションを DB2 と組み合わせて使ったり、 Java アプリケーション・サーバー (IBM WebSphere など) で実現されるより堅固なシステムへ移行できるということです。

Java プログラマーが使えるアプリケーション・プログラミング・インターフェース (API) は 2 つあります。 その最初である JDBC は、Java を使ってデータ指向の Java アプレットや Java アプリケーション、 さらに Java サーブレット、Java Server Pages (JSP)、Enterprise Java Beans (EJB) を開発するためにサポートされています。 JDBC はコール・レベルまたはメソッド呼び出しの API です。 もう一方の Java API は、SQLJ です。 SQLJ では、SQL を Java プログラム内にインラインで指定することが可能です。 DB2 はこの両方の API を、Web トランザクションのクライアント側かサーバー側で使用できます。

クライアント側では、アプレット、データ指向のアプレット、アプリケーションなどがサポートされています。 データベース側では、Java を使用可能にする部分がデータベース・オブジェクト (ユーザー定義関数やストアード・プロシージャーなど) で構成されています。

DB2 (OS/390 版)、DB2 (VSE および VM 版)、そして DB2 (AS/400 版) の場合、 Java アプリケーションを配置する方法には 2 通りあります。 DB2 コネクト パーソナル・エディションが提供する TCP/IP または SNA による直接接続を使用する方法と、 DB2 コネクト エンタープライズ・エディション・サーバーを経由してメインフレームまたはバックエンドの AS/400 へ接続する方法がそれです。

どちらの場合も、Web 上のユーザーはデータベースへアクセスするのに、 標準的な Web ブラウザー以外の特別なソフトウェアを必要としません。 また、インストールする必要があるのは、 DB2 コネクト・サーバーといずれかの業界標準の Web サーバーだけです。 Web サーバーと DB2 コネクトが同じ物理マシン上にない場合は、 DB2 クライアントを Web サーバー上にインストールしなければなりません。

DB2 (OS/390 版) の場合、その主要な構成要素は中間層サーバーで稼働している DB2 コネクト エンタープライズ・エディションです。 この構成要素が、DB2 (OS/390 版、VSE および VM 版、AS/400 版) サーバーへの接続に加えて、 JDBC サーバーを使用可能にする部分を提供します。 この場合でも、クライアントの Web ブラウザーに特別なソフトウェアは必要ありません。

IBM では、Java のアプリケーションとアプレットを開発するための多岐にわたるツールを用意しています。 データベースの接続性に関しては DB2 Developer's Edition が、 VisualAge for Java Professional Edition、WebSphere Application Server、 Net.Data を含む完全なキットを提供しています。 DB2 ユニバーサル・データベースと DB2 コネクトも評価用としてそれに含まれています。 さらに、IBM VisualAge for Java Enterprise Edition にも、 大規模なエンタープライズ・アプリケーション向けの開発ツールが同梱されています。 他社製のツール、たとえば Borland JBuilder や Symantec Visual Cafe なども、 IBM のデータベース・ソリューションで利用できます。

Net.Data

DB2 ユニバーサル・データベースおよび DB2 コネクト・ファミリーの一部である Net.Data は、 Web ベースのトランザクション・アプリケーションを作成また保守するときに役立つ、 アプリケーション開発ツールのセットです。 Net.Data を使用することで、DB2 UDB (OS/2 版、Windows NT 版、Windows 2000 版、 UNIX 版、OS/390 版、VM 版、VSE 版、および AS/400 版) に格納されたデータにアクセスし、 それを変更することができます。 Net.Data で作成したアプリケーションは Web サーバー上に格納され、 Web ブラウザーを介して活動化することが可能です。

Net.Data ではマクロ、またはテンプレートを利用して、 HTML と SQL の基本しか理解していないユーザーでも非常に洗練された Web アプリケーションを構築できるようにしています。 マクロは、Java、JavaScript、HTML タグ、組み込み関数などで構成されるテキスト・ファイルです。 これらのマクロは、事前定義されたレイアウト、変数、関数を持つ動的な Web ページを生成するのに使われます。

基本的な Net.Data マクロには、次の 7 つの明確なセクションがあります。

特に DB2 を対象にした Net.Data の主な特色として、 クライアントの配置が不要である点が挙げられます。 このような場合、クライアントは単なる Web ブラウザーで構いません。

Net.Data の処理プログラムは、 DB2 ユニバーサル・データベースとともに Windows NT、Windows 2000、OS/2、または UNIX ワークステーション上にインストールされ、同時に Web サーバーにもインストールされます。 DB2 (OS/390 版、VSE および VM 版、AS/400 版) への接続時には、 Net.Data の基本部分のすべてが DB2 コネクト・サーバー上と Web サーバー上に配置されます。

IBM WebSphere

IBM WebSphere は、従来の CGI プログラミングでの可能な範囲を超えた、 より完全な e-business ソリューションを提供します。 WebSphere Application Server は CGI のスクリプト機能を実行するだけでなく、 Web を介した複雑で高度なサービスを、サーブレット、 Active Server Pages、Enterprise JavaBeans の使用により可能にします。 WebSphere を使えば以下のことが行えます。

WebSphere は単一の製品ではなく、3 つの異なるマーケットを対象にしたファミリー製品となっています。 WebSphere によるソリューションの中核を成しているのは、 WebSphere Application Server です。

WebSphere Application Server が提供する環境は、 3 種類のオブジェクトを対象にしています。 最初のものは Java Server Pages (JSP) であり、 これは Active Server Pages (ASP) に相当するものです。 2 番目は Java サーブレットで構成される構成要素であり、 3 番目は Enterprise JavaBeans です。 Enterprise JavaBeans は、大規模で強力なエンタープライズ・クラスのアプリケーションを配置する際の標準になりつつあります。

さらに、Data Access JavaBeans は、特に DB2 を対象にした、非常に洗練されたデータベース機能を提供します。 DB2 は JDBC および SQLJ を介して直接アクセスすることもできます。 COM+ と CORBA の両方もサポートされています。

WebSphere アプリケーションは、Web サーバーや DB2 ユニバーサル・データベースと同じプラットフォーム上に置くことができます。 DB2 (OS/390 版、VM および VSE 版、AS/400 版) の場合、 WebSphere は DB2 コネクト エンタープライズ・エディションと同じプラットフォーム上に配置されます。

WebSphere ソリューションは、Web Studio や WebSphere Performance Pack と同様にいくつか用意されています。 WebSphere の 3 つのバージョンを以下に示します。

スタンダード版
Web サイトの作成者を対象にしたこのサーバーは、 Java サーブレットと JSP テクノロジーの利用を可能にし、静的ページから、 カスタマイズされた動的 Web コンテンツに不可欠なソースに至るまで、 Web サイトおよびポータルの変換を簡単に、かつ短時間で行うことができます。 さらに、グループ間や企業間での情報とデータの共用を容易にする業界最先端の XML サポートと、 Web サイトへの投資から最大限の利益を上げるのに役立つパフォーマンスと利用状況の情報を提供する、 組み込みのサイト分析テクノロジーもこれに含まれています。

アドバンスド版
アプリケーション・プログラマーを対象にしたこの高性能な EJB サーバーは、 EJB 構成要素を使用するビジネス・ロジックの配置を可能にします。 スケーラビリティー、機密保護、接続性、Java サポートを提供しており、 スタンダード版のすべての機能が含まれています。

エンタープライズ版
エンタープライズ設計者を対象にしたこのサーバーは、 組織内の異なるビジネス・システムを統合して堅固な e-business アプリケーションを構築し、 リソースを最大限に再利用します。 エンタープライズ版には、賞を獲得した IBM TXSeries や Component Broker のテクノロジーが組み込まれています。 さらに、アドバンスト版とスタンダード版のすべての機能も含まれています。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]