(57)【要約】【課題】Ｗｅｂアプリケーションサーバシステムにおけるコントローラとビジネスコンポーネントとの依存部分を低減し、ビジネスコンポーネントの変更の自由度を向上させる。【解決手段】コントローラ５とビジネスコンポーネント８との間に共通連携コンポーネント７を配置し、この共通連携コンポーネント７にて、Ｗｅｂクライアント１からのリクエストを解析し、ビジネスコンポーネント８にて処理可能なデータセットを生成し、このデータセットを当該リクエストに対して適切な業務処理を行うビジネスコンポーネント８に受け渡すようにしたものである。この共通連携コンポーネント７によって、コントローラ５とビジネスコンポーネント８との依存部分を吸収でき、コントローラ／ビジネスコンポーネントいずれか一方の変更による影響が他方に波及することがなくなる。【選択図】　　　図３
2004110156.tif 000002
【特許請求の範囲】
【請求項１】
業務処理を実行する手段をコンピュータに実現するビジネスコンポーネントと、
クライアントからのリクエストを解析して前記ビジネスコンポーネントにより処理可能なデータセットを生成し、前記ビジネスコンポーネントに受け渡す手段をコンピュータに実現する共通連携コンポーネントと、
前記クライアントからのリクエストに応じて前記共通連携コンポーネントを呼び出す手段をコンピュータに実現するコントローラと、
前記ビジネスコンポーネントによる業務処理結果をクライアントに応答する手段をコンピュータに実現するビューと
を有することを特徴とするアプリケーションサーバシステム用プログラム。
【請求項２】
アプリケーションサーバ上でクライアントからのリクエストに基づく業務処理を行う方法において、
業務処理を実行する手段を前記コンピュータに実現するビジネスコンポーネントと、
クライアントからのリクエストを解析して前記ビジネスコンポーネントにより処理可能なデータセットを生成し、前記ビジネスコンポーネントに受け渡す手段を前記コンピュータに実現する共通連携コンポーネントと、
前記クライアントからのリクエストに応じて前記共通連携コンポーネントを呼び出す手段を前記コンピュータに実現するコントローラと、
前記ビジネスコンポーネントによる業務処理結果をクライアントに応答する手段を前記コンピュータに実現するビューと
を有するプログラムを前記アプリケーションサーバのコンピュータに配置しておき、
前記アプリケーションサーバは、前記クライアントからのリクエストに応じて前記共通連携コンポーネントを呼び出し、この共通連携コンポーネントを用いて生成されたデータセットを前記ビジネスコンポーネントに受け渡すことを特徴とするビジネスコンポーネントへのデータ受け渡し方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、Ｗｅｂと企業システムとをつなぐためのＷｅｂアプリケーションサーバシステム用のプログラムとビジネスコンポーネントへのデータ受け渡し方法に関する。
【０００２】
【従来の技術】
近年、コンポーネントを用いたアプリケーションプラグラムの開発が主流となってきている。コンポーネントを用いたアプリケーションプラグラムの開発に関連する従来技術には以下の特許文献１、特許文献２がある。
【０００３】
【特許文献１】
特開２００１−１５４８８７号公報
【特許文献２】
特開平１１−０７３３２２号公報
【０００４】
特許文献１の特開２００１−１５４８８７号公報に記載された発明は、アプリケーションプログラムを実行する際に、各コンポーネントの実行のアクセス履歴を記録しておいて、アプリケーションプログラムの実行の際の不具合等の検証を行う、というものである。
【０００５】
また、特許文献２である特開平１１−０７３３２２号公報に記載されている発明は、コンピュータアプリケーションの生成を支援するアプリケーションビルダツール内のソフトウェアコンポーネントを解析するための技術について開示されている。
【０００６】
このようなコンポーネントを用いたアプリケーションの開発において、近年、Ｗｅｂ（Ｗｏｒｌｄ　Ｗｉｄｅ　Ｗｅｂ）と企業システムとをつなぐためのＷｅｂアプリケーションをＷｅｂとＪａｖａを用いて構築する事例が増加している。
【０００７】
Ｗｅｂアプリケーションの開発手法としてＭＶＣ（Ｍｏｄｅｌ　Ｖｉｅｗ　Ｃｏｎｔｒｏｌｌｅｒ）がある。これは、図８に示すように、Ｗｅｂアプリケーションサーバシステム２００をコントローラ２０１、モデル（ビジネスコンポーネント）２０２、ビュー２０３の３つの組み合わせで構成する考え方である。
【０００８】
コントローラ２０１はたとえばＪＳＰ（Ｊａｖａ（登録商標）　Ｓｅｒｖｅｒ　Ｐａｇｅ）やＳｅｒｖｌｅｔなどによって実装され、ビジネスコンポーネント２０２、ビュー２０３の呼び出しやデータの受け渡しを制御するコンポーネントである。たとえば、Ｗｅｂクライアント２０４から受け取ったＨＴＴＰリクエストの内容を判断して、適切な業務処理を実行するビジネスコンポーネント２０２を呼び出す。
【０００９】
ビジネスコンポーネント２０２はたとえばＪａｖａＢｅａｎｓなどで実装され、コントローラ２０１によって呼び出されると業務処理を実行し、その結果をコントローラ２０１へ返す。コントローラ２０１はビジネスコンポーネント２０２からの応答に応じてビュー２０３を呼び出す。
【００１０】
ビュー２０３はたとえばＪＳＰ（Ｊａｖａ　Ｓｅｒｖｅｒ　Ｐａｇｅ）やＳｅｒｖｌｅｔなどによって実装され、コントローラ２０１から受け取ったデータからＷｅｂページを生成してＷｅｂクライアント２０４にＨＴＴＰレスポンスを返す。
【００１１】
【発明が解決しようとする課題】
上記Ｗｅｂアプリケーションサーバシステム２００では、Ｗｅｂクライアント２０４から送られてきたリクエストに含まれる入力データをビジネスコンポーネント２０２が扱うことのできるデータセットに変換する必要がある。
【００１２】
たとえば図９に示すように、コントローラ２０１にリクエスト解析部２１１を設けておき、Ｗｅｂクライアント２０４から受け取ったリクエストをコントローラ２０１において解析してデータセットを生成するか、もしくは図１０に示すように、ビジネスコンポーネント２０２にリクエスト解析部２１２を設けておき、コントローラ２０１はそのままＷｅｂクライアント２０４から受け取ったリクエストをビジネスコンポーネント２０２に渡し、ビジネスコンポーネント２０２でリクエストを解析してデータセットを生成していた。
【００１３】
しかしながら、この場合、コントローラ２０１とビジネスコンポーネント２０２とが互いにデータ構造を把握している必要があり、どちらかを変更した場合に他方に影響が及ぶという問題があった。
【００１４】
具体的には、ビジネスコンポーネント２０２で扱うデータセットの変更によりコントローラ２０１の改造が必要になったり、リクエスト解析処理を含むビジネスコンポーネント２０２ひとつで業務処理を完結させる、もしくはビジネスコンポーネントの実行順番に制約を設けるなど、ビジネスコンポーネントの業務処理手順に制約を設けなければならない等の問題があった。
【００１５】
そしてこのような課題、およびこの課題を解決するための手段については、上記の特開２００１−１５４８８７号公報、特開平１１−０７３３２２号公報などの公知文献においても何等記載も、示唆もされていない。
【００１６】
本発明は、このような課題を解決するためになされるもので、コントローラとビジネスコンポーネントとの依存部分を低減し、ビジネスコンポーネントの変更の自由度を向上させることのできるアプリケーションサーバシステム用のプログラムと、ビジネスコンポーネントへのデータ受け渡し方法を提供することを目的としている。
【００１７】
【課題を解決するための手段】
上記目的を達成するために、本発明のアプリケーションサーバシステム用のプログラムは、業務処理を実行する手段をコンピュータに実現するビジネスコンポーネントと、クライアントからのリクエストを解析して前記ビジネスコンポーネントにより処理可能なデータセットを生成し、前記ビジネスコンポーネントに受け渡す手段をコンピュータに実現する共通連携コンポーネントと、前記クライアントからのリクエストに応じて前記共通連携コンポーネントを呼び出す手段をコンピュータに実現するコントローラと、前記ビジネスコンポーネントによる業務処理結果をクライアントに応答する手段をコンピュータに実現するビューとを有するものである。
【００１８】
この発明によれば、コントローラとビジネスコンポーネントとの間に共通連携コンポーネントを配置し、この共通連携コンポーネントにて、クライアントからのリクエストを解析し、ビジネスコンポーネントにて処理可能なデータセットを生成し、当該リクエストに対して適切な業務処理を行うビジネスコンポーネントにデータセットを受け渡すようにしたことによって、コントローラとビジネスコンポーネントとの依存部分を共通連携コンポーネントで吸収することが可能となり、コントローラ／ビジネスコンポーネントいずれか一方の変更による影響が他方に波及することがなくなり、ビジネスコンポーネントの変更の自由度が向上する。
【００１９】
また、本発明のビジネスコンポーネントへのデータ受け渡し方法は、アプリケーションサーバ上でクライアントからのリクエストに基づく業務処理を行う方法において、業務処理を実行する手段を前記コンピュータに実現するビジネスコンポーネントと、クライアントからのリクエストを解析して前記ビジネスコンポーネントにより処理可能なデータセットを生成し、前記ビジネスコンポーネントに受け渡す手段を前記コンピュータに実現する共通連携コンポーネントと、前記クライアントからのリクエストに応じて前記共通連携コンポーネントを呼び出す手段を前記コンピュータに実現するコントローラと、前記ビジネスコンポーネントによる業務処理結果をクライアントに応答する手段を前記コンピュータに実現するビューとを有するプログラムを前記アプリケーションサーバのコンピュータに配置しておき、前記アプリケーションサーバは、前記クライアントからのリクエストに応じて前記共通連携コンポーネントを呼び出し、この共通連携コンポーネントを用いて生成されたデータセットを前記ビジネスコンポーネントに受け渡すことを特徴とする。
【００２０】
【発明の実施の形態】
以下、本発明の実施形態を図面に基づいて説明する。
図１は本発明のプログラムが適用される典型的なＷｅｂアプリケーションサーバシステムの構成を示す図である。
【００２１】
同図に示すように、このＷｅｂアプリケーションサーバシステム１００は、Ｗｅｂクライアント１からのＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ）リクエストを受け付けてレスポンスを返すＷｅｂサーバ２、およびＷｅｂサーバ２を介してＷｅｂクライアント１からのＨＴＴＰリクエストに対して業務処理を行うアプリケーションサーバ３とからなる。
【００２２】
Ｗｅｂクライアント１は、具体的には、ＰＣ（Ｐｅｒｓｏｎａｌ　Ｃｏｎｐｕｔｅｒ）、ＰＤＡ（Ｐｅｒｓｏｎａｌ　Ｄｉｇｉｔａｌ（Ｄａｔａ）　Ａｓｓｉｓｔａｎｔｓ）　、携帯電話、その他インターネットへの接続機能とＷｅｂブラウザとを有する端末装置である。
【００２３】
Ｗｅｂサーバ２およびアプリケーションサーバ３には、具体的には、ワークステーションや、これと同等の性能を有したＰＣなどが用いられる。Ｗｅｂサーバ２およびアプリケーションサーバ３は一台もしくは複数台のサーバコンピュータ上で稼動する。
【００２４】
図２はＷｅｂサーバ２およびアプリケーションサーバ３に適用される典型的なコンピュータシステムの構成を示している。
【００２５】
同図に示すように、コンピュータシステムは、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）１１、ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）１２、ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）１３、入力デバイス１４、表示デバイス１５、インターフェース１６、ストレージデバイス１７、通信デバイス１８、システムバス１９を備えて構成される。
【００２６】
ＣＰＵ１１は、ＲＯＭ１２やＲＡＭ１３に格納されたプログラムやデータなどを用いて各種の演算処理を実行する。ＲＯＭ１２は、コンピュータを機能させるための基本的なプログラムやパラメータなどが記憶された読み取り専用メモリである。ＲＡＭ１３は、ＣＰＵ１１が実行するプログラムやプログラムの実行に必要なデータを記憶する、高速な読み出しと書き込みが可能なメモリである。システムバス１９は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、インターフェース１６などで共有される情報伝達路である。
【００２７】
インターフェース１６には、入力デバイス１４、表示デバイス１５、ストレージデバイス１７、通信デバイス１８などの各種デバイスが接続されている。入力デバイス１４は、オペレータからの入力を処理するデバイスであり、たとえばキーボードやマウスなどである。表示デバイス１５は、オペレータに演算結果や描画結果などを表示するデバイスであり、たとえばＣＲＴ、液晶ディスプレイ、プラズマディスプレイなどである。ストレージデバイス１７は、プログラムやデータを蓄積しておくための大容量の記憶装置であり、たとえばハードディスク装置などである。通信デバイス１８は、コンピュータをインターネットに接続するための、たとえばモデムやＮＩＣ（Ｎｅｔｗｏｒｋ　Ｉｎｔｅｒｆａｃｅ　Ｃａｒｄ）などである。
【００２８】
一方、Ｗｅｂクライアント１の構成は、基本的には上記コンピュータシステムと同等であり、少なくとも、有線もしくは無線でインターネットに接続するための機能、Ｗｅｂブラウザを動作させるためのハードウェア資源を備えたものである。
【００２９】
図３は、上記Ｗｅｂアプリケーションサーバシステム１００のサーバサイドのアーキテクチャ（ソフトウェア構成）を示す図である。
【００３０】
Ｗｅｂサーバ２は、ＨＴＴＰサーバ４、コントローラ５およびビュー６で構成される。アプリケーションサーバ３は、共通連携コンポーネント７およびビジネスコンポーネント８で構成される。
【００３１】
ＨＴＴＰサーバ４は、ＨＴＴＰプロトコルによりＷｅｂクライアント１との間でリクエストとレスポンスの送受信を行う。
【００３２】
コントローラ５は、たとえばＪＳＰ（Ｊａｖａ　Ｓｅｒｖｅｒ　Ｐａｇｅ）やＳｅｒｖｌｅｔなどで実装され、共通連携コンポーネント７およびビュー６の呼び出し、さらにコンポーネント間でのデータの受け渡しの制御をする。
【００３３】
コントローラ５は、たとえば、ＨＴＴＰサーバ４を通じて受け取ったＷｅｂクライアント１からのリクエストに基づいて共通連携コンポーネント７を呼び出し、リクエストのデータを共通連携コンポーネント７に受け渡したり、ビジネスコンポーネント８から業務処理結果であるデータを受け取ってビュー６を呼び出す。
【００３４】
共通連携コンポーネント７は、たとえばＪａｖａＢｅａｎｓなどで実装された１つ以上のコンポーネントであり、コントローラ５により受け取ったリクエストを解析して、このリクエストに対して適切な業務処理を行うビジネスコンポーネント８にて処理可能なデータセット形式を作成し、このデータセットをそのビジネスコンポーネント８に受け渡す。
【００３５】
ビジネスコンポーネント８は、たとえばＪａｖａＢｅａｎｓなどで実装された１つ以上のコンポーネントである。ビジネスコンポーネント８は、共通連携コンポーネント７より受け取ったデータセットに基づいて業務処理を実行し、その結果をコントローラ５へ返す。
【００３６】
ビュー６は、たとえばＪＳＰ（Ｊａｖａ　Ｓｅｒｖｅｒ　Ｐａｇｅ）やＳｅｒｖｌｅｔなどによって実装され、コントローラ５から受け取ったデータからＷｅｂページを作成し、ＨＴＴＰサーバ４を介してＷｅｂクライアント１にＨＴＴＰリクエストに対するＨＴＴＰレスポンスとして返す。
【００３７】
次に、この実施形態のＷｅｂアプリケーションサーバシステム１００の動作として、Ｗｅｂクライアント１からのＨＴＴＰリクエストのデータをビジネスコンポーネント８に受け渡す動作を図４を用いて説明する。
【００３８】
Ｗｅｂクライアント１は、ユーザからの入力データをもとにＨＴＴＰリクエストを生成する。図４の符号４１はこのとき生成されるＨＴＴＰリクエストの例である。リクエスト４１には、たとえば、クラアント画面でユーザが入力した、テキスト、非表示テキスト、画面フォーム上でクライアントが選択（チェック）した項目に関する情報などが含まれている。
【００３９】
Ｗｅｂクライアント１は、生成したリクエスト４１をＨＴＴＰプロトコルによりＷｅｂサーバ２に送信する。リクエスト４１はＷｅｂサーバ２のＨＴＴＰサーバ４に受信され、ＨＴＴＰサーバ４からコントローラ５に渡される。
【００４０】
コントローラ５はリクエスト４１を受け取ると共通連携コンポーネント７を呼び出し、共通連携コンポーネント７にＨＴＴＰサーバ４から受け取ったリクエスト４１をそのまま受け渡す。
【００４１】
なお、リクエストを受けたとき実行する業務処理が予め外部の指定情報により指定されている場合がある。この場合共通連携コンポーネント７は、その外部の指定情報に従って適切なビジネスコンポーネント８を呼び出すことになる。
【００４２】
また、共通連携コンポーネント７は、一つのコンポーネントであることに限らず、複数のコンポーネントで処理を分担するようにしても構わない。この場合の共通連携コンポーネント７の呼び出しはコントローラ５において制御するか、Ｗｅｂクライアント１からのリクエストのデータ内で指定するか、あるいは、外部からの指定情報内で指定することが可能である。
【００４３】
共通連携コンポーネント７は、コントローラ５から受け取ったリクエスト４１を解析して、その中から必要なキー情報、値を抽出して、ビジネスコンポーネント８にて処理可能なデータセット４２を生成する。たとえば、キー情報と値情報をリスト上に並べた形式の一時データセットテーブル４２が作成される。
【００４４】
共通連携コンポーネント７は、作成したデータセット４２をビジネスコンポーネント８に受け渡す。ビジネスコンポーネント８は受け取ったデータセット４２に基づいて業務処理を実行する。
【００４５】
なお、このとき、図５に示すように、複数のビジネスコンポーネント８ａ，８ｂ間でデータセット４２を次々と引き渡しながら、業務処理を継続して行く構成も考えられる。すなわち、最初のビジネスコンポーネント８ａは、共通連携コンポーネント７によって作成されたデータセット４２を受け取りこれを基に業務処理を行う。その結果がデータセット４２に反映され、次のビジネスコンポーネント８ｂでの業務処理に利用される。
【００４６】
そして最後のビジネスコンポーネント８（図５では８ｂ）は業務処理結果を含むデータセット４２をコントローラ５に返す。コントローラ５は、ビジネスコンポーネント８よりデータセット４２を受け取るとビュー６を呼び出し、ビュー６に業務処理結果を含むデータセット４２を受け渡す。
【００４７】
ビュー６は、コントローラ５より受け取ったデータセット４２より業務処理結果を取り出し、これをたとえばＨＴＭＬ（Ｈｙｐｅｒ　Ｔｅｘｔ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）形式やＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）形式のデータに変換し、ＨＴＴＰサーバ４を介してＷｅｂクライアント１にＨＴＴＰリクエストに対するＨＴＴＰレスポンスとして返す。
【００４８】
Ｗｅｂクライアント１は受け取ったＨＴＴＰレスポンスを描画する。
【００４９】
このように、このＷｅｂアプリケーションサーバシステム１００によれば、コントローラ５とビジネスコンポーネント８との間に共通連携コンポーネント７を配置し、この共通連携コンポーネント７にて、Ｗｅｂクライアント１からのリクエストを解析し、ビジネスコンポーネント８にて処理可能なデータセットを生成し、当該リクエストに対して適切な業務処理を行うビジネスコンポーネント８にデータセットを受け渡すようにしたことによって、コントローラ５とビジネスコンポーネント８との依存部分を共通連携コンポーネント７で吸収することが可能となり、コントローラ／ビジネスコンポーネントいずれか一方の変更による影響が他方に波及することがなくなり、ビジネスコンポーネント８の変更の自由度が向上する。
【００５０】
たとえば、図６に示すように、複数のビジネスコンポーネント８ａ，８ｂの順番を入れ替えたり、図７に示すように、新しいビジネスコンポーネント８ｃを挿入しても、各ビジネスコンポーネント８ａ，８ｂを改造する必要がなく、この変更にコントローラ５も影響されることがないため、コントローラ５の改造も必要としない。
【００５１】
共通連携コンポーネント７は、前述したように、一つのコンポーネントであっても、複数のコンポーネントで構成されていても構わない。
【００５２】
この場合の共通連携コンポーネント７の呼び出しは、コントローラ５において制御するか、Ｗｅｂクライアント１からのリクエストのデータ内で指定するか、あるいは、外部からの指定情報内で指定することが可能である。
【００５３】
このように共通連携コンポーネント７を複数のコンポーネントで構成しておき、その中の必要なコンポーネントのみを呼び出すようにすることで、速度的な性能アップを図れるとともに、メンテナンスも容易になる。
【００５４】
【発明の効果】
以上説明したように、本発明のＷｅｂアプリケーションサーバシステム用のプログラムによれば、共通連携コンポーネントでコントローラとビジネスコンポーネントとの依存部分を吸収でき、一方の変更による影響が他方に波及することがなくなり、ビジネスコンポーネントの変更の自由度を高めることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係るテレビジョンセットのシステムを示す概略図である。
【図２】図１のＷｅｂサーバおよびアプリケーションサーバに適用される典型的なコンピュータシステムの構成を示すブロック図である。
【図３】図１のＷｅｂアプリケーションサーバシステムのサーバサイドのアーキテクチャを示すブロック図である。
【図４】ＷｅｂクライアントからのＨＴＴＰリクエストのデータをビジネスコンポーネントに受け渡す動作を説明するための図である。
【図５】複数のビジネスコンポーネントで業務処理を継続する場合のブロック図である。
【図６】本発明の第１の実施形態に係るビデオ入力を含んだ画面説明図である。
【図７】本発明の第１の実施形態に係る基本フローチャート図である。
【図８】従来のＷｅｂアプリケーションサーバシステムのソフトウェア構成を示すブロック図である。
【図９】従来のＷｅｂアプリケーションサーバシステムでのリクエスト解析の方法を示す図である。
【図１０】従来のＷｅｂアプリケーションサーバシステムでのリクエスト解析の他の方法を示す図である。
【符号の説明】
１・・・・Ｗｅｂクライアント
２・・・・Ｗｅｂサーバ
３・・・・アプリケーションサーバ
４・・・・ＨＴＴＰサーバ
５・・・・コントローラ
６・・・・ビュー
７・・・・共通連携コンポーネント
８・・・・ビジネスコンポーネント
４１・・・・ＨＴＴＰリクエスト
４２・・・・データセット
１００・・・・アプリケーションサーバシステム
【図１】
2004110156.tif 000003
【図２】
2004110156.tif 000004
【図３】
2004110156.tif 000005
【図４】
2004110156.tif 000006
【図５】
2004110156.tif 000007
【図６】
2004110156.tif 000008
【図７】
2004110156.tif 000009
【図８】
2004110156.tif 000010
【図９】
2004110156.tif 000011
【図１０】
2004110156.tif 000012