(57)【要約】【課題】ミドルウェアを利用するかどうかにかかわらず、業務処理要求手段が同じインタフェースで業務処理手段の呼び出しを行うことができるようにする（同じコーディング内容で業務処理要求手段を実現できるようにする）。【解決手段】ミドルウェア呼び出し手段７は、分散呼び出し処理スタブ手段２と同一のインタフェースを実装しており、業務処理要求のインタフェースの変換を行って、ミドルウェア５を呼び出す機能を備える。業務処理要求手段１は、ミドルウェア５を利用する場合にもミドルウェア５を利用しない場合にも同じインタフェースで業務処理手段４に対する業務処理要求を行う。ミドルウェア透過分散呼び出し手段生成装置３００は、ミドルウェア５を利用する場合にのみ必要となる手段（ミドルウェア呼び出し手段７等）を自動的に生成する。【選択図】        図１
2004240890.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置とサーバ装置とがネットワークによって接続されるコンピュータシステムにおいて、
分散呼び出し処理スタブ手段と同一のインタフェースを実装しており、業務処理要求のインタフェースの変換を行って、ミドルウェアを呼び出す機能を備えるミドルウェア呼び出し手段と、
ミドルウェアを利用する場合にもミドルウェアを利用しない場合にも同じインタフェースで業務処理手段に対する業務処理要求を行う業務処理要求手段と、
ミドルウェアを利用する場合にのみ必要となる手段を自動的に生成するミドルウェア透過分散呼び出し手段生成装置と
を有することを特徴とするミドルウェア透過分散アプリケーションアクセス方式。
【請求項２】
クライアント装置とサーバ装置とがネットワークによって接続されるコンピュータシステムにおいて、
実際の業務処理を行うサーバ装置上の業務処理手段と、
前記業務処理手段に対する業務処理要求を行う際に、ミドルウェアを利用する場合にはクライアント装置上のミドルウェア呼び出し手段を経由してミドルウェアへのアクセスを行い、ミドルウェアを利用しない場合にはクライアント装置上の分散呼び出し処理スタブ手段を経由してサーバ装置へのアクセスを行うクライアント装置上の業務処理要求手段と、
ミドルウェアを利用する場合に前記分散呼び出し処理スタブ手段とミドルウェアとの間におけるインタフェースの変換を行うサーバ装置上の業務処理呼び出し手段と、
ミドルウェアを利用する場合にはサーバ装置上に配置され、ミドルウェアを利用しない場合にはクライアント装置上に配置され、分散呼び出し処理スケルトン手段とともになり分散した環境において前記業務処理手段を呼び出す機能を持つ前記分散呼び出し処理スタブ手段と、
前記分散呼び出し処理スタブ手段とともになり分散した環境において前記業務処理手段を呼び出す機能を持つサーバ装置上の前記分散呼び出し処理スケルトン手段と、
前記分散呼び出し処理スタブ手段と同一のインタフェースを実装しており、前記業務処理要求手段から発行された業務処理要求のインタフェースの変換を行って、ミドルウェアを呼び出す機能を備えるクライアント装置上のミドルウェア呼び出し手段と、
前記分散呼び出し処理スタブ手段のインタフェースである分散呼び出し処理スタブ手段インタフェースとミドルウェアのインタフェースであるミドルウェアインタフェースとを入力として、ミドルウェアを利用する場合にのみ必要となる前記ミドルウェア呼び出し手段を自動的に生成して出力するミドルウェア透過分散呼び出し生成手段と
を有することを特徴とするミドルウェア透過分散アプリケーションアクセス方式。
【請求項３】
ミドルウェアによって発生した独自の例外をミドルウェアを利用しない場合に分散呼び出し処理スタブ手段から返却される例外と同等の例外にラッピングするクライアント装置上の例外変換手段を追加的に有し、請求項２記載のミドルウェア透過分散呼び出し生成手段の代わりに、分散呼び出し処理スタブ手段のインタフェースである分散呼び出し処理スタブ手段インタフェースとミドルウェアのインタフェースであるミドルウェアインタフェースとを入力として、ミドルウェアを利用する場合にのみ必要となるミドルウェア呼び出し手段および前記例外変換手段を自動的に生成して出力するミドルウェア透過分散呼び出し生成手段を有することを特徴とする請求項２記載のミドルウェア透過分散アプリケーションアクセス方式。
【請求項４】
請求項２記載のミドルウェア透過分散アプリケーションアクセス方式が実現されるコンピュータシステムにおいて、
分散呼び出し処理スタブ手段のインタフェースである分散呼び出し処理スタブ手段インタフェースと、
ミドルウェアのインタフェースであるミドルウェアインタフェースと、
前記分散呼び出し処理スタブ手段インタフェースおよび前記ミドルウェアインタフェースを入力として、ミドルウェアを利用する場合にのみ必要となるミドルウェア呼び出し手段を自動的に生成して出力するミドルウェア透過分散呼び出し生成手段と
を有することを特徴とするミドルウェア透過分散呼び出し手段生成装置。
【請求項５】
請求項３記載のミドルウェア透過分散アプリケーションアクセス方式が実現されるコンピュータシステムにおいて、
分散呼び出し処理スタブ手段のインタフェースである分散呼び出し処理スタブ手段インタフェースと、
ミドルウェアのインタフェースであるミドルウェアインタフェースと、
前記分散呼び出し処理スタブ手段インタフェースおよび前記ミドルウェアインタフェースを入力として、ミドルウェアを利用する場合にのみ必要となるミドルウェア呼び出し手段および例外変換手段を自動的に生成して出力するミドルウェア透過分散呼び出し生成手段と
を有することを特徴とするミドルウェア透過分散呼び出し手段生成装置。
【請求項６】
請求項２記載のミドルウェア透過分散アプリケーションアクセス方式が実現されるコンピュータシステムにおいて、
分散呼び出し処理スタブ手段のインタフェースである分散呼び出し処理スタブ手段インタフェースと、
ミドルウェアのインタフェースであるミドルウェアインタフェースと、
手段に名前を関連付けてその実体を保存し、その名前をもとに手段の実体を検索できるディレクトリ機構に関する規則であるディレクトリ機構格納規則と、
前記分散呼び出し処理スタブ手段インタフェースおよび前記ミドルウェアインタフェースを入力として、ミドルウェアを利用する場合にのみ必要となるミドルウェア呼び出し手段を自動的に生成して出力し、前記分散呼び出し処理スタブ手段インタフェース，前記ミドルウェアインタフェース，および前記ディレクトリ機構格納規則に基づいて業務処理呼び出し手段のコードを自動生成するミドルウェア透過分散呼び出し生成手段と
を有することを特徴とするミドルウェア透過分散呼び出し手段生成装置。
【請求項７】
請求項３記載のミドルウェア透過分散アプリケーションアクセス方式が実現されるコンピュータシステムにおいて、
分散呼び出し処理スタブ手段のインタフェースである分散呼び出し処理スタブ手段インタフェースと、
ミドルウェアのインタフェースであるミドルウェアインタフェースと、
手段に名前を関連付けてその実体を保存し、その名前をもとに手段の実体を検索できるディレクトリ機構に関する規則であるディレクトリ機構格納規則と、
前記分散呼び出し処理スタブ手段インタフェースおよび前記ミドルウェアインタフェースを入力として、ミドルウェアを利用する場合にのみ必要となるミドルウェア呼び出し手段および例外変換手段を自動的に生成して出力し、前記分散呼び出し処理スタブ手段インタフェース，前記ミドルウェアインタフェース，および前記ディレクトリ機構格納規則に基づいて業務処理呼び出し手段のコードを自動生成するミドルウェア透過分散呼び出し生成手段と
を有することを特徴とするミドルウェア透過分散呼び出し手段生成装置。
【請求項８】
クライアント装置，サーバ装置，およびミドルウェア透過分散呼び出し手段生成装置を有するコンピュータシステムを、実際の業務処理を行うサーバ装置上の業務処理手段，前記業務処理手段に対する業務処理要求を行う際に、ミドルウェアを利用する場合にはクライアント装置上のミドルウェア呼び出し手段を経由してミドルウェアへのアクセスを行い、ミドルウェアを利用しない場合にはクライアント装置上の分散呼び出し処理スタブ手段を経由してサーバ装置へのアクセスを行うクライアント装置上の業務処理要求手段，ミドルウェアを利用する場合に前記分散呼び出し処理スタブ手段とミドルウェアとの間におけるインタフェースの変換を行うサーバ装置上の業務処理呼び出し手段，ミドルウェアを利用する場合にはサーバ装置上に配置され、ミドルウェアを利用しない場合にはクライアント装置上に配置され、分散呼び出し処理スケルトン手段とともになり分散した環境において前記業務処理手段を呼び出す機能を持つ前記分散呼び出し処理スタブ手段，前記分散呼び出し処理スタブ手段とともになり分散した環境において前記業務処理手段を呼び出す機能を持つサーバ装置上の前記分散呼び出し処理スケルトン手段，前記分散呼び出し処理スタブ手段と同一のインタフェースを実装しており、前記業務処理要求手段から発行された業務処理要求のインタフェースの変換を行って、ミドルウェアを呼び出す機能を備えるクライアント装置上のミドルウェア呼び出し手段，および前記分散呼び出し処理スタブ手段のインタフェースである分散呼び出し処理スタブ手段インタフェースとミドルウェアのインタフェースであるミドルウェアインタフェースとを入力として、ミドルウェアを利用する場合にのみ必要となる前記ミドルウェア呼び出し手段を自動的に生成して出力するミドルウェア透過分散呼び出し手段生成装置上のミドルウェア透過分散呼び出し生成手段として機能させるためのプログラム。
【請求項９】
クライアント装置，サーバ装置，およびミドルウェア透過分散呼び出し手段生成装置を有するコンピュータシステムを、実際の業務処理を行うサーバ装置上の業務処理手段，前記業務処理手段に対する業務処理要求を行う際に、ミドルウェアを利用する場合にはクライアント装置上のミドルウェア呼び出し手段を経由してミドルウェアへのアクセスを行い、ミドルウェアを利用しない場合にはクライアント装置上の分散呼び出し処理スタブ手段を経由してサーバ装置へのアクセスを行うクライアント装置上の業務処理要求手段，ミドルウェアを利用する場合に前記分散呼び出し処理スタブ手段とミドルウェアとの間におけるインタフェースの変換を行うサーバ装置上の業務処理呼び出し手段，ミドルウェアを利用する場合にはサーバ装置上に配置され、ミドルウェアを利用しない場合にはクライアント装置上に配置され、分散呼び出し処理スケルトン手段とともになり分散した環境において前記業務処理手段を呼び出す機能を持つ前記分散呼び出し処理スタブ手段，前記分散呼び出し処理スタブ手段とともになり分散した環境において前記業務処理手段を呼び出す機能を持つサーバ装置上の前記分散呼び出し処理スケルトン手段，前記分散呼び出し処理スタブ手段と同一のインタフェースを実装しており、前記業務処理要求手段から発行された業務処理要求のインタフェースの変換を行って、ミドルウェアを呼び出す機能を備えるクライアント装置上のミドルウェア呼び出し手段，ミドルウェアによって発生した独自の例外をミドルウェアを利用しない場合に前記分散呼び出し処理スタブ手段から返却される例外と同等の例外にラッピングするクライアント装置上の例外変換手段，ならびに前記分散呼び出し処理スタブ手段のインタフェースである分散呼び出し処理スタブ手段インタフェースとミドルウェアのインタフェースであるミドルウェアインタフェースとを入力として、ミドルウェアを利用する場合にのみ必要となる前記ミドルウェア呼び出し手段および前記例外変換手段を自動的に生成して出力するミドルウェア透過分散呼び出し手段生成装置上のミドルウェア透過分散呼び出し生成手段として機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クライアント装置とサーバ装置とがネットワークによって接続されるコンピュータシステムにおいて、ミドルウェアの存在を意識せずにクライアント装置からサーバ装置上に配置された業務アプリケーション（業務処理手段）を呼び出す方式（ミドルウェア透過分散アプリケーションアクセス方式）に関する。
【０００２】
【従来の技術】
図１９は、従来のミドルウェア透過分散アプリケーションアクセス方式の一例の構成および動作を説明するためのブロック図である。
【０００３】
従来においては、クライアント装置１００からサーバ装置２００の業務処理手段４の呼び出しを行う場合について、ミドルウェアを利用する場合には、業務処理要求手段１（ミドルウェアを利用しない場合における業務処理要求手段）をそのまま利用することができず、ミドルウェア５独自のインタフェースを呼び出すコーディングがなされた業務処理要求手段１’の生成を行なわなければならなかった。すなわち、ミドルウェアを利用する場合に使用する業務処理要求手段を業務処理要求手段１とは異なる業務処理要求手段１’にする必要があった。
【０００４】
ところで、特許文献１に記載された発明では、ＣＯＲＢＡサーバ上で実行されるＥＪＢ（Ｅｎｔｅｒｐｒｉｓｅ  Ｊａｖａ（登録商標）  Ｂｅａｎｓ）を呼び出すためのＪａｖａ（登録商標）クライアントの呼び出し方法が記述されている。この従来技術は、Ａｄａｐｔｅｒパターンを利用して透過的にサーバ上の業務アプリケーションを呼び出すアイデアに関する技術である点で、本発明と類似する。しかし、特許文献１では、業務アプリケーションを呼び出すために必要な手段の生成方法には言及されておらず、また、ＣＯＲＢＡ特有の例外が発生した場合の処理方法に関しても記述されていなかった。なお、Ａｄａｐｔｅｒパターンとは、あるクラスのインタフェースを、クライアントが求める他のインタフェースに変換して、インタフェースに互換性のないクラス同士を組み合わせることができるようにするパターンのことをいう。
【０００５】
なお、本発明に関連する従来技術に係る文献としては、上記の特許文献１の他に、下記の特許文献２，特許文献３，および特許文献４がある。以下に、これらの文献に記載された発明（技術）と本願発明との差異について説明する。
【０００６】
特許文献２に記載された発明は、マスタプロセッサ上に画像処理プログラムと同一のインタフェースを持つマスタ通信プログラムを置くという点で、本願発明と類似の構成をとっているが、画像処理プログラムを同じマスタプロセッサ上で動かそうとしている点（本願発明とは逆の目的・効果となっており、その目的等の差異に起因する構成上の違いがある点）で、本願発明とは明確に相違している。また、本願発明では、図８等における例外変換手段８を置くことにより、通信インフラ（インフラストラクチャ）で発生した例外を吸収することができるが、特許文献２においては、この点に触れられていない。本願発明は、通信インフラにおいて発生した例外をも開発者（業務開発者）に意識させることなく透過にできる点で特許文献２記載の技術とは異なっている。
【０００７】
特許文献３に記載された発明は、パラメータ定義情報格納部に定義された情報をもとに通信に用いるクライアントオブジェクトとサーバオブジェクトとを自動生成するという点で本願発明と類似の構成をとっているが、本願発明においてはミドルウェア呼び出し手段（特許文献３におけるクライアントオブジェクト）の生成において、ミドルウェアインタフェースを入力として、ミドルウェアを呼び出す変換を行うアダプタを自動生成している点で、特許文献３記載の技術とは異なっている（実際の通信は、ミドルウェアに隠蔽される）。また、例外変換手段８を自動生成できる点（本願発明における後述の図１０参照）が特許文献３では触れられていない。本願発明は、通信インフラにおいて発生した例外をも開発者に意識させることなく透過にできる手段を自動生成できる点で、特許文献３記載の技術とは異なっている。
【０００８】
特許文献４に記載された発明は、ソースプログラムの情報をもとにインタフェース定義ファイルを自動生成するという点で本願発明と類似の構成をとっている。しかし、本願発明は、ミドルウェア呼び出し手段（特許文献４におけるインタフェース定義ファイル）の生成において、ミドルウェアインタフェースを入力として、ミドルウェアを呼び出す変換を行うアダプタを自動生成している点で、特許文献４記載の技術とは異なっている（実際の通信は、ミドルウェアに隠蔽される）。また、本願発明における例外変換手段８を自動生成できる点（図１０参照）が、特許文献４では触れられていない。本願発明は、通信インフラにおいて発生した例外をも開発者に意識させることなく透過にできる手段を自動生成できる点で、特許文献４記載の技術とは異なっている。
【０００９】
【特許文献１】
特開２０００−２５０７６８号公報（第２頁、図６、図７、図８）
【００１０】
【特許文献２】
特開２０００−０２０４８１号公報（第２頁、図３）
【００１１】
【特許文献３】
特開２００１−００５７９１号公報（第２頁、図１、図４）
【００１２】
【特許文献４】
特開平０７−２８２０１７号公報（第２頁、図１）
【００１３】
【発明が解決しようとする課題】
上述した従来の技術では、上記のように、ミドルウェアを利用するかどうかでクライアント装置側の呼び出し手段である業務処理要求手段のコーディングの内容が変わるため、ミドルウェアを利用するかどうかをシステム開発の初期段階で決定する必要があり、システム開発と並行して基盤方式を検討することができないという問題点があった。
【００１４】
また、特許文献１記載の発明は、透過的にサーバ上の業務アプリケーションを呼び出すために必要な手段の生成方法に言及しておらず、また、ＣＯＲＢＡ特有の例外が発生した場合の処理方法に関しても記述されていなかったので、以下のａおよびｂに示すような問題点があった。
【００１５】
ａ．後述の図８等における例外変換手段８のような手段が存在しないので、ミドルウェアが送出する例外がそのまま業務処理要求手段に渡るために、完全にミドルウェア透過とはいえない。
【００１６】
ｂ．後述の図３等におけるミドルウェア透過分散呼び出し手段生成装置３００のような装置がないため、システムを構成する手段をコーディングする作業に手間がかかる（本願発明では、ミドルウェア透過分散呼び出し手段生成装置３００によるミドルウェア呼び出し手段７等の自動生成が行われるため、この手間を省くことができる）。
【００１７】
本発明の目的は、上述の点に鑑み、ミドルウェアを利用するかどうかにかかわらず、業務処理要求手段が同じインタフェースで業務処理手段の呼び出しを行うことができ（同じコーディング内容で業務処理要求手段を実現でき）、ミドルウェアの存在を意識せずにクライアント装置からサーバ装置上に配置された業務アプリケーション（業務処理手段）を呼び出すことができるミドルウェア透過分散アプリケーションアクセス方式を提供することにある。また、本発明の他の目的は、そのようなミドルウェア透過分散アプリケーションアクセス方式を実現するために必要な手段を自動的に生成することができるミドルウェア透過分散呼び出し手段生成装置を提供することにある。
【００１８】
【課題を解決するための手段】
本発明のミドルウェア透過分散アプリケーションアクセス方式は、クライアント装置とサーバ装置とがネットワークによって接続されるコンピュータシステムにおいて、実際の業務処理を行うサーバ装置上の業務処理手段と、前記業務処理手段に対する業務処理要求を行う際に、ミドルウェアを利用する場合にはクライアント装置上のミドルウェア呼び出し手段を経由してミドルウェアへのアクセスを行い、ミドルウェアを利用しない場合にはクライアント装置上の分散呼び出し処理スタブ手段を経由してサーバ装置へのアクセスを行うクライアント装置上の業務処理要求手段と、ミドルウェアを利用する場合に前記分散呼び出し処理スタブ手段とミドルウェアとの間におけるインタフェースの変換を行うサーバ装置上の業務処理呼び出し手段と、ミドルウェアを利用する場合にはサーバ装置上に配置され、ミドルウェアを利用しない場合にはクライアント装置上に配置され、分散呼び出し処理スケルトン手段とともになり分散した環境において前記業務処理手段を呼び出す機能を持つ前記分散呼び出し処理スタブ手段と、前記分散呼び出し処理スタブ手段とともになり分散した環境において前記業務処理手段を呼び出す機能を持つサーバ装置上の前記分散呼び出し処理スケルトン手段と、前記分散呼び出し処理スタブ手段と同一のインタフェースを実装しており、前記業務処理要求手段から発行された業務処理要求のインタフェースの変換（ミドルウェアにあうインタフェースへの変換）を行って、ミドルウェアを呼び出す機能を備えるクライアント装置上のミドルウェア呼び出し手段と、前記分散呼び出し処理スタブ手段のインタフェースである分散呼び出し処理スタブ手段インタフェースとミドルウェアのインタフェースであるミドルウェアインタフェースとを入力として、ミドルウェアを利用する場合にのみ必要となる前記ミドルウェア呼び出し手段を自動的に生成して出力するミドルウェア透過分散呼び出し生成手段とを有する。
【００１９】
また、本発明のミドルウェア透過分散アプリケーションアクセス方式は、上記のミドルウェア透過分散アプリケーションアクセス方式に対して、ミドルウェアによって発生した独自の例外をミドルウェアを利用しない場合に分散呼び出し処理スタブ手段から返却される例外と同等の例外にラッピングするクライアント装置上の例外変換手段を追加的に有し、上記のミドルウェア透過分散アプリケーションアクセス方式におけるミドルウェア透過分散呼び出し生成手段の代わりに、分散呼び出し処理スタブ手段のインタフェースである分散呼び出し処理スタブ手段インタフェースとミドルウェアのインタフェースであるミドルウェアインタフェースとを入力として、ミドルウェアを利用する場合にのみ必要となるミドルウェア呼び出し手段および前記例外変換手段を自動的に生成して出力するミドルウェア透過分散呼び出し生成手段を有するように構成することも可能である。
【００２０】
なお、本発明のミドルウェア透過分散アプリケーションアクセス方式は、より一般的には、クライアント装置とサーバ装置とがネットワークによって接続されるコンピュータシステムにおいて、分散呼び出し処理スタブ手段と同一のインタフェースを実装しており、業務処理要求のインタフェースの変換（ミドルウェアにあうインタフェースへの変換）を行って、ミドルウェアを呼び出す機能を備えるミドルウェア呼び出し手段と、ミドルウェアを利用する場合にもミドルウェアを利用しない場合にも同じインタフェースで業務処理手段に対する業務処理要求を行う業務処理要求手段と、ミドルウェアを利用する場合にのみ必要となる手段を自動的に生成するミドルウェア透過分散呼び出し手段生成装置とを有すると表現することができる。
【００２１】
また、本発明は、以下のａ〜ｄに示すようなミドルウェア透過分散呼び出し手段生成装置として実現することも可能である。
【００２２】
ａ．分散呼び出し処理スタブ手段のインタフェースである分散呼び出し処理スタブ手段インタフェースと、ミドルウェアのインタフェースであるミドルウェアインタフェースと、前記分散呼び出し処理スタブ手段インタフェースおよび前記ミドルウェアインタフェースを入力として、ミドルウェアを利用する場合にのみ必要となるミドルウェア呼び出し手段を自動的に生成して出力するミドルウェア透過分散呼び出し生成手段とを有することを特徴とするミドルウェア透過分散呼び出し手段生成装置。
【００２３】
ｂ．分散呼び出し処理スタブ手段のインタフェースである分散呼び出し処理スタブ手段インタフェースと、ミドルウェアのインタフェースであるミドルウェアインタフェースと、前記分散呼び出し処理スタブ手段インタフェースおよび前記ミドルウェアインタフェースを入力として、ミドルウェアを利用する場合にのみ必要となるミドルウェア呼び出し手段および例外変換手段を自動的に生成して出力するミドルウェア透過分散呼び出し生成手段とを有することを特徴とするミドルウェア透過分散呼び出し手段生成装置。
【００２４】
ｃ．分散呼び出し処理スタブ手段のインタフェースである分散呼び出し処理スタブ手段インタフェースと、ミドルウェアのインタフェースであるミドルウェアインタフェースと、手段に名前を関連付けてその実体を保存し、その名前をもとに手段の実体を検索できるディレクトリ機構に関する規則であるディレクトリ機構格納規則と、前記分散呼び出し処理スタブ手段インタフェースおよび前記ミドルウェアインタフェースを入力として、ミドルウェアを利用する場合にのみ必要となるミドルウェア呼び出し手段を自動的に生成して出力し、前記分散呼び出し処理スタブ手段インタフェース，前記ミドルウェアインタフェース，および前記ディレクトリ機構格納規則に基づいて業務処理呼び出し手段のコードを自動生成するミドルウェア透過分散呼び出し生成手段とを有することを特徴とするミドルウェア透過分散呼び出し手段生成装置。
【００２５】
ｄ．分散呼び出し処理スタブ手段のインタフェースである分散呼び出し処理スタブ手段インタフェースと、ミドルウェアのインタフェースであるミドルウェアインタフェースと、手段に名前を関連付けてその実体を保存し、その名前をもとに手段の実体を検索できるディレクトリ機構に関する規則であるディレクトリ機構格納規則と、前記分散呼び出し処理スタブ手段インタフェースおよび前記ミドルウェアインタフェースを入力として、ミドルウェアを利用する場合にのみ必要となるミドルウェア呼び出し手段および例外変換手段を自動的に生成して出力し、前記分散呼び出し処理スタブ手段インタフェース，前記ミドルウェアインタフェース，および前記ディレクトリ機構格納規則に基づいて業務処理呼び出し手段のコードを自動生成するミドルウェア透過分散呼び出し生成手段とを有することを特徴とするミドルウェア透過分散呼び出し手段生成装置。
【００２６】
さらに、本発明は、以下のａおよびｂに示すようなプログラムの態様で実現することも可能である。
【００２７】
ａ．クライアント装置，サーバ装置，およびミドルウェア透過分散呼び出し手段生成装置を有するコンピュータシステムを、実際の業務処理を行うサーバ装置上の業務処理手段，前記業務処理手段に対する業務処理要求を行う際に、ミドルウェアを利用する場合にはクライアント装置上のミドルウェア呼び出し手段を経由してミドルウェアへのアクセスを行い、ミドルウェアを利用しない場合にはクライアント装置上の分散呼び出し処理スタブ手段を経由してサーバ装置へのアクセスを行うクライアント装置上の業務処理要求手段，ミドルウェアを利用する場合に前記分散呼び出し処理スタブ手段とミドルウェアとの間におけるインタフェースの変換を行うサーバ装置上の業務処理呼び出し手段，ミドルウェアを利用する場合にはサーバ装置上に配置され、ミドルウェアを利用しない場合にはクライアント装置上に配置され、分散呼び出し処理スケルトン手段とともになり分散した環境において前記業務処理手段を呼び出す機能を持つ前記分散呼び出し処理スタブ手段，前記分散呼び出し処理スタブ手段とともになり分散した環境において前記業務処理手段を呼び出す機能を持つサーバ装置上の前記分散呼び出し処理スケルトン手段，前記分散呼び出し処理スタブ手段と同一のインタフェースを実装しており、前記業務処理要求手段から発行された業務処理要求のインタフェースの変換を行って、ミドルウェアを呼び出す機能を備えるクライアント装置上のミドルウェア呼び出し手段，および前記分散呼び出し処理スタブ手段のインタフェースである分散呼び出し処理スタブ手段インタフェースとミドルウェアのインタフェースであるミドルウェアインタフェースとを入力として、ミドルウェアを利用する場合にのみ必要となる前記ミドルウェア呼び出し手段を自動的に生成して出力するミドルウェア透過分散呼び出し手段生成装置上のミドルウェア透過分散呼び出し生成手段として機能させるためのプログラム。
【００２８】
ｂ．クライアント装置，サーバ装置，およびミドルウェア透過分散呼び出し手段生成装置を有するコンピュータシステムを、実際の業務処理を行うサーバ装置上の業務処理手段，前記業務処理手段に対する業務処理要求を行う際に、ミドルウェアを利用する場合にはクライアント装置上のミドルウェア呼び出し手段を経由してミドルウェアへのアクセスを行い、ミドルウェアを利用しない場合にはクライアント装置上の分散呼び出し処理スタブ手段を経由してサーバ装置へのアクセスを行うクライアント装置上の業務処理要求手段，ミドルウェアを利用する場合に前記分散呼び出し処理スタブ手段とミドルウェアとの間におけるインタフェースの変換を行うサーバ装置上の業務処理呼び出し手段，ミドルウェアを利用する場合にはサーバ装置上に配置され、ミドルウェアを利用しない場合にはクライアント装置上に配置され、分散呼び出し処理スケルトン手段とともになり分散した環境において前記業務処理手段を呼び出す機能を持つ前記分散呼び出し処理スタブ手段，前記分散呼び出し処理スタブ手段とともになり分散した環境において前記業務処理手段を呼び出す機能を持つサーバ装置上の前記分散呼び出し処理スケルトン手段，前記分散呼び出し処理スタブ手段と同一のインタフェースを実装しており、前記業務処理要求手段から発行された業務処理要求のインタフェースの変換を行って、ミドルウェアを呼び出す機能を備えるクライアント装置上のミドルウェア呼び出し手段，ミドルウェアによって発生した独自の例外をミドルウェアを利用しない場合に前記分散呼び出し処理スタブ手段から返却される例外と同等の例外にラッピングするクライアント装置上の例外変換手段，ならびに前記分散呼び出し処理スタブ手段のインタフェースである分散呼び出し処理スタブ手段インタフェースとミドルウェアのインタフェースであるミドルウェアインタフェースとを入力として、ミドルウェアを利用する場合にのみ必要となる前記ミドルウェア呼び出し手段および前記例外変換手段を自動的に生成して出力するミドルウェア透過分散呼び出し手段生成装置上のミドルウェア透過分散呼び出し生成手段として機能させるためのプログラム。
【００２９】
【発明の実施の形態】
次に、本発明について図面を参照して詳細に説明する。
【００３０】
（１）  第１の実施の形態
【００３１】
図１は、本発明の第１の実施の形態に係るミドルウェア透過分散アプリケーションアクセス方式の構成を示すブロック図である。
【００３２】
図１を参照すると、本実施の形態に係るミドルウェア透過分散アプリケーションアクセス方式は、業務アプリケーションを配置するサーバ装置２００と、ネットワークを介してサーバ装置２００と接続して業務アプリケーションの分散呼び出しを行うクライアント装置１００と、ミドルウェア５を利用する場合にのみ必要となる手段（ミドルウェア呼び出し手段７）を自動的に生成するミドルウェア透過分散呼び出し手段生成装置３００とを含んで構成されている。
【００３３】
なお、本図においては、クライアント装置１００は１つのみの記載となっているが、複数存在してもかまわない。また、クライアント装置１００とサーバ装置２００とは同一の装置であってもかまわない。
【００３４】
図２は、ミドルウェアを利用しない場合およびミドルウェアを利用する場合のそれぞれにおけるクライアント装置１００およびサーバ装置２００の構成を示すブロック図である。
【００３５】
まず、ミドルウェアを利用しない場合の構成について説明する。
【００３６】
図２を参照すると、ミドルウェアを利用しない場合には、クライアント装置１００は、業務処理要求手段１と、分散呼び出し処理スタブ手段２とを含んで構成されている。また、サーバ装置２００は、分散呼び出し処理スケルトン手段３と、業務処理手段４とを含んで構成されている。
【００３７】
これらの手段は、それぞれ、概略、次のように動作する。
【００３８】
業務処理要求手段１は、業務処理手段４のクライアントであり、業務処理の呼び出しを行う。
【００３９】
分散呼び出し処理スタブ手段２と分散呼び出し処理スケルトン手段３とは、業務処理手段４と同一のメソッドを実装し、分散した環境において業務処理手段４を呼び出す機能を持つ。
【００４０】
ここで、ミドルウェアを利用しない場合には、クライアント装置１００に分散呼び出し処理スタブ手段２が配置され、サーバ装置２００に分散呼び出し処理スケルトン手段３が配置される。これにより、クライアント装置１００とサーバ装置２００との間の通信を隠蔽する機能が実現される。デザインパターンでいうＰｒｏｘｙパターンである。Ｐｒｏｘｙパターンとは、あるオブジェクトへのアクセスを制御するために、そのオブジェクトの代理を提供するパターンのことをいう。
【００４１】
業務処理手段４は、実際の業務処理を行う。
【００４２】
次に、ミドルウェアを利用する場合の構成について説明する。
【００４３】
図２を参照すると、ミドルウェア５を利用する場合には、クライアント装置１００は、業務処理要求手段１と、ミドルウェア呼び出し手段７とを含んで構成されている。また、サーバ装置２００は、分散呼び出し処理スタブ手段２と、分散呼び出し処理スケルトン手段３と、業務処理手段４と、業務処理呼び出し手段６とを含んで構成されている。
【００４４】
このうち、ミドルウェア呼び出し手段７は、自動的に生成される。自動生成を行うタイミングとしては、例えば、以下のａ〜ｃが挙げられる。
【００４５】
ａ．あらかじめシステム起動前に生成しておく。
【００４６】
ｂ．最初に呼び出しが行われたときに生成する。
【００４７】
ｃ．インタフェースを更新したかどうかを検出し、更新（または新規追加）されていたら生成する。
【００４８】
これらの手段は、それぞれ、概略、次のように動作する。
【００４９】
業務処理要求手段１は、業務処理手段４のクライアントであり、業務処理の呼び出しを行う。
【００５０】
分散呼び出し処理スタブ手段２と分散呼び出し処理スケルトン手段３とは、分散した環境において業務処理手段４を呼び出す機能を持つ。
【００５１】
業務処理手段４は、実際の業務処理を行う。
【００５２】
ミドルウェア５は、クライアント装置１００とサーバ装置２００との間に介在し、以下のａ〜ｆに示す機能を提供する基盤アプリケーションである。
【００５３】
ａ．負荷を分散させるために、複数のサーバ装置を接続して全体を１つのシステムに見せる機能
【００５４】
ｂ．システムダウン時の影響を最小限に留めるために、複数のサーバ装置を接続して１つまたは複数のサーバ装置が停止した場合でもフェールソフトによりシステムの稼動を継続する機能
【００５５】
ｃ．サーバ装置上に配置された業務アプリケーションをサーバ装置を停止することなく交換する機能
【００５６】
ｄ．業務閉塞やその閉塞を解除する機能
【００５７】
ｅ．時間のかかる業務処理をキューイングしておき、処理タイミングを指定して非同期に業務アプリケーションを呼び出す機能
【００５８】
ｆ．一括して実行したい業務処理を外部ファイルに記憶しておき、そこから情報を抽出することにより一括して多量の業務アプリケーションを実行する機能
【００５９】
業務処理呼び出し手段６は、ミドルウェア５と分散呼び出し処理スタブ手段２との間でＡｄａｐｔｅｒパターンのアダプタとしてインタフェースの変換を行う。
【００６０】
ミドルウェア呼び出し手段７は、分散呼び出し処理スタブ手段２と同一のインタフェースを実装しており、業務処理要求手段１からきた業務処理要求のインタフェースの変換（ミドルウェア５にあうインタフェースへの変換）を行って、ミドルウェア５を呼び出す機能を備える。本手段もアダプタとして動作する。
【００６１】
図３は、本実施の形態を実現する上で必要となるミドルウェア透過分散呼び出し手段生成装置３００（分散アプリケーションアクセス生成装置）の構成と、その内部に配置されるミドルウェア透過分散呼び出し生成手段３２０の入出力の態様とを示すブロック図である。
【００６２】
図３を参照すると、ミドルウェア透過分散呼び出し手段生成装置３００は、その内部にミドルウェア透過分散呼び出し生成手段３２０が配置されており、ミドルウェア透過分散呼び出し生成手段３２０の入力となる分散呼び出し処理スタブ手段インタフェース３１１およびミドルウェアインタフェース３１２とを含んでいる。
【００６３】
ミドルウェア透過分散呼び出し生成手段３２０は、分散呼び出し処理スタブ手段２のインタフェースである分散呼び出し処理スタブ手段インタフェース３１１とミドルウェア５のインタフェースであるミドルウェアインタフェース３１２とを入力として、ミドルウェア５を利用する場合にのみ必要となるミドルウェア呼び出し手段７を生成（出力）する。
【００６４】
図４は、ミドルウェアを利用しない場合における業務処理要求時の一連の処理（分散アプリケーションアクセス処理）を示す流れ図である。この処理は、分散呼び出し処理スタブ手段取得ステップＡ１と、分散呼び出し処理スケルトン手段呼び出しステップＡ２と、業務処理手段呼び出しステップＡ３と、処理結果分散呼び出し処理スタブ手段返却ステップＡ４と、処理結果業務処理要求手段返却ステップＡ５とからなる。
【００６５】
図５は、ミドルウェアを利用する場合における業務処理要求時の一連の処理（分散アプリケーションアクセス処理）を示す流れ図である。この処理は、ミドルウェア呼び出し手段取得ステップＢ１と、ミドルウェア呼び出しステップＢ２と、業務処理呼び出し手段呼び出しステップＢ３と、分散呼び出し処理スタブ手段取得・呼び出しステップＢ４と、分散呼び出し処理スケルトン手段呼び出しステップＢ５と、業務処理手段呼び出しステップＢ６と、処理結果業務処理呼び出し手段返却ステップＢ７と、処理結果ミドルウェア呼び出し手段返却ステップＢ８と、処理結果業務処理要求手段返却ステップＢ９とからなる。
【００６６】
図６は、ミドルウェア透過分散呼び出し手段生成装置３００内のミドルウェア透過分散呼び出し生成手段３２０によるコード自動生成処理を示す流れ図である。この処理は、ミドルウェア呼び出し手段雛型生成ステップＣ１と、ミドルウェア呼び出し手段コード生成ステップＣ２とからなる。
【００６７】
図７は、本実施の形態においてミドルウェア透過分散呼び出し手段生成装置３００により生成されるコード（ミドルウェア呼び出し手段７のコード）の具体例を示す図である。
【００６８】
次に、図１〜図７を参照して、本実施の形態に係るミドルウェア透過分散アプリケーションアクセス方式の全体の動作について詳細に説明する。
【００６９】
第１に、図２および図４を参照して、ミドルウェアを利用しない場合に、クライアント装置１００からの業務処理要求がサーバ装置２００で処理され、その処理結果がクライアント装置１００に返却される際の、一連の処理の流れを説明する。
【００７０】
クライアント装置１００上の業務処理要求手段１は、分散呼び出し処理スタブ手段２を、ローカルファイル，サーバ上のファイル，ディレクトリサーバ，ハッシュ表（ローカルまたはサーバ装置２００上のハッシュ表），または連想リスト等から取得する（ステップＡ１）。
【００７１】
業務処理要求手段１は、サーバ装置２００上の業務処理手段４を分散呼び出し処理スタブ手段２を通して間接的に呼び出すために、上記で取得した分散呼び出し処理スタブ手段２のメソッドを呼び出す。そして、クライアント装置１００上の分散呼び出し処理スタブ手段２は、ネットワークを介して、サーバ装置２００上の分散呼び出し処理スケルトン手段３の同一インタフェースのメソッドを呼び出す（ステップＡ２）。
【００７２】
分散呼び出し処理スケルトン手段３は、業務処理手段４の同一インタフェースのメソッドを呼び出す（ステップＡ３）。
【００７３】
業務処理手段４は、要求された業務処理を実行し、処理結果を分散呼び出し処理スケルトン手段３に返却する。そして、分散呼び出し処理スケルトン手段３は、ネットワークを介して、クライアント装置１００上の分散呼び出し処理スタブ手段２に処理結果を返却する。これにより、業務処理手段４の処理結果が、分散呼び出し処理スケルトン手段３を通して分散呼び出し処理スタブ手段２に返却される（ステップＡ４）。
【００７４】
分散呼び出し処理スタブ手段２は、業務処理要求手段１に処理結果を返却する（ステップＡ５）。
【００７５】
第２に、図３および図６を参照して、ミドルウェア透過分散呼び出し手段生成装置３００内に配置されたミドルウェア透過分散呼び出し生成手段３２０によるコード自動生成処理を説明する。
【００７６】
ミドルウェア透過分散呼び出し生成手段３２０は、分散呼び出し処理スタブ手段２の入出力仕様である分散呼び出し処理スタブ手段インタフェース３１１を読み込み、同一のインタフェースを実装したコードの雛形を生成し、それをミドルウェア呼び出し手段７の雛形とする（ステップＣ１）。
【００７７】
次に、ミドルウェア透過分散呼び出し生成手段３２０は、ミドルウェア５の入出力仕様であるミドルウェアインタフェース３１２から、ミドルウェア５のクライアント装置１００側の入出力仕様を読み込み、処理要求、つまり、上記のステップＣ１で生成した雛形の入力を変換してミドルウェア５を呼び出すコードを生成し、上記のステップＣ１で生成した雛形の出力を変換してミドルウェア５から返却された処理結果を返却するコードを生成し、それらのコードをミドルウェア呼び出し手段７に実装する（そのようなコードを有するミドルウェア呼び出し手段７を生成する）（ステップＣ２）。
【００７８】
ここで、図７に、上記のようにして生成されるミドルウェア呼び出し手段７のコードの具体例を記述する。
【００７９】
第３に、図２および図５を参照して、ミドルウェア５を利用する場合に、クライアント装置１００からの業務処理要求がサーバ装置２００で処理され、その処理結果がクライアント装置１００に返却される際の、一連の処理の流れを説明する。
【００８０】
クライアント装置１００上の業務処理要求手段１は、ミドルウェア透過分散呼び出し生成手段３２０で自動生成されたミドルウェア呼び出し手段７を取得する（ステップＢ１）。なお、取得方法は、図４のステップＡ１における取得方法と同様の各種の方法が考えられる。
【００８１】
業務処理要求手段１は、サーバ装置２００上の業務処理手段４をミドルウェア呼び出し手段７を通して間接的に呼び出すために、上記で取得したミドルウェア呼び出し手段７の同一インタフェースのメソッドを呼び出す。そして、ミドルウェア呼び出し手段７は、業務処理要求をミドルウェア５のインタフェースにあうように変換し、ミドルウェア５を呼び出す（ステップＢ２）。
【００８２】
ミドルウェア５内でクライアント装置１００からサーバ装置２００への通信が行われ、ミドルウェア５の内部でサーバ装置２００上の業務処理呼び出し手段６が呼び出される（ステップＢ３）。
【００８３】
業務処理呼び出し手段６は、ステップＢ２で変換された業務処理要求を復元し、分散呼び出し処理スタブ手段２を取得してそのメソッドを呼び出す（ステップＢ４）。
【００８４】
分散呼び出し処理スタブ手段２は、分散呼び出し処理スケルトン手段３のメソッドを呼び出す（ステップＢ５）。
【００８５】
分散呼び出し処理スケルトン手段３は、業務処理手段４の同一インタフェースのメソッドを呼び出す（ステップＢ６）。
【００８６】
業務処理手段４は、要求された業務処理を実行し、処理結果を分散呼び出し処理スケルトン手段３に返却する。分散呼び出し処理スケルトン手段３は、分散呼び出し処理スタブ手段２に処理結果を返却する。分散呼び出し処理スタブ手段２は、業務処理呼び出し手段６に処理結果を返却する。これにより、業務処理手段４の処理結果が、分散呼び出し処理スケルトン手段３および分散呼び出し処理スタブ手段２を通して業務処理呼び出し手段６に返却される（ステップＢ７）。
【００８７】
業務処理呼び出し手段６は、処理結果をミドルウェア５のインタフェースにあうように変換する。そして、ミドルウェア５により、サーバ装置２００からクライアント装置１００への通信が行われ、変換された処理結果がミドルウェア呼び出し手段７に返却される（ステップＢ８）。
【００８８】
クライアント装置１００上のミドルウェア呼び出し手段７は、変換された処理結果を復元し、復元後の処理結果を業務処理要求手段１に返却する（ステップＢ９）。
【００８９】
（２）  第２の実施の形態
【００９０】
図８は、本発明の第２の実施の形態に係るミドルウェア透過分散アプリケーションアクセス方式の構成を示すブロック図である。本実施の形態（第２の実施の形態）に係るミドルウェア透過分散アプリケーションアクセス方式は、第１の実施の形態における構成・動作に加えて、ミドルウェア５において独自の例外が発生しその例外が必要な場合に対処できる構成・動作を有している。
【００９１】
図８を参照すると、本実施の形態に係るミドルウェア透過分散アプリケーションアクセス方式は、図１に示した第１の実施の形態に係るミドルウェア透過分散アプリケーションアクセス方式と同様に、業務アプリケーションを配置するサーバ装置２００と、ネットワークを介してサーバ装置２００と接続して業務アプリケーションの分散呼び出しを行うクライアント装置１００と、ミドルウェア５を利用する場合にのみ必要となる手段（ミドルウェア呼び出し手段７および例外変換手段８）を自動的に生成するミドルウェア透過分散呼び出し手段生成装置３００とを含んで構成されている。
【００９２】
図９は、ミドルウェアを利用しない場合およびミドルウェアを利用する場合のそれぞれにおけるクライアント装置１００およびサーバ装置２００の構成を示すブロック図である。
【００９３】
図９を参照すると、本実施の形態においては、ミドルウェア５において独自の例外が発生しその例外が必要な場合に対処できるように、クライアント装置１００に例外変換手段８が配置されている。
【００９４】
クライアント装置１００に配置された例外変換手段８は、ミドルウェア５によって発生した独自の例外を、ミドルウェア５を利用しない場合に分散呼び出し処理スタブ手段２から返却される例外と同等の例外にラッピングする。
【００９５】
図１０は、ミドルウェア５において独自の例外が発生しその例外が必要な場合に本実施の形態を実現する上で必要となるミドルウェア透過分散呼び出し手段生成装置３００（分散アプリケーションアクセス生成装置）の構成と、その内部に配置されるミドルウェア透過分散呼び出し生成手段３２０’の入出力の態様とを示すブロック図である。
【００９６】
図１０を参照すると、ミドルウェア透過分散呼び出し手段生成装置３００内に配置されたミドルウェア透過分散呼び出し生成手段３２０’は、分散呼び出し処理スタブ手段２のインタフェースである分散呼び出し処理スタブ手段インタフェース３１１とミドルウェア５のインタフェースであるミドルウェアインタフェース３１２とを入力として、ミドルウェア呼び出し手段７とともに、例外変換手段８をも自動生成する。すなわち、分散呼び出し処理スタブ手段インタフェース３１１およびミドルウェアインタフェース３１２の例外仕様を入力として、例外変換手段８を自動的に生成（出力）する。
【００９７】
図１１は、本実施の形態においてミドルウェアを利用する場合における業務処理要求時の一連の処理（分散アプリケーションアクセス処理）を示す流れ図である。この処理は、ミドルウェア呼び出し手段取得ステップＤ１と、ミドルウェア呼び出しステップＤ２と、業務処理呼び出し手段呼び出しステップＤ３と、分散呼び出し処理スタブ手段取得・呼び出しステップＤ４と、分散呼び出し処理スケルトン手段呼び出しステップＤ５と、業務処理手段呼び出しステップＤ６と、処理結果業務処理呼び出し手段返却ステップＤ７と、処理結果ミドルウェア呼び出し手段返却ステップＤ８と、業務処理成功判定ステップＤ９と、例外発生箇所判定ステップＤ１０と、例外変換ステップＤ１１と、処理結果業務処理要求手段返却ステップＤ１２とからなる。
【００９８】
図１２は、ミドルウェア透過分散呼び出し手段生成装置３００内のミドルウェア透過分散呼び出し生成手段３２０’によるコード自動生成処理を示す流れ図である。この処理は、ミドルウェア呼び出し手段雛型生成ステップＥ１と、ミドルウェア呼び出し手段コード生成ステップＥ２と、例外変換手段コード生成ステップＥ３とからなる。
【００９９】
図１３は、本実施の形態においてミドルウェア透過分散呼び出し手段生成装置３００により生成されるコード（ミドルウェア呼び出し手段７および例外変換手段８のコード）の具体例を示す図である。
【０１００】
次に、図８〜図１３を参照して、本実施の形態に係るミドルウェア透過分散アプリケーションアクセス方式の動作について説明する。ここでは、クライアント装置１００上に配置される例外変換手段８に関する動作を中心にして詳細に説明する（例外変換手段８に関する動作以外の動作は第１の実施の形態と基本的に同様の動作となる）。なお、ミドルウェアを利用しない場合の処理の流れは、第１の実施の形態の場合と同一であるため（図４参照）、ミドルウェアを利用する場合についてだけ説明を行う。
【０１０１】
第１に、図１０および図１２を参照して、ミドルウェア透過分散呼び出し手段生成装置３００内に配置されたミドルウェア透過分散呼び出し生成手段３２０’によるコード自動生成処理を説明する。
【０１０２】
ミドルウェア透過分散呼び出し生成手段３２０’は、分散呼び出し処理スタブ手段２の入出力仕様である分散呼び出し処理スタブ手段インタフェース３１１を読み込み、同一のインタフェースを実装したコードの雛形を生成し、それをミドルウェア呼び出し手段７の雛形とする（ステップＥ１）。
【０１０３】
次に、ミドルウェア透過分散呼び出し生成手段３２０’は、ミドルウェア５の入出力仕様であるミドルウェアインタフェース３１２から、ミドルウェア５のクライアント装置１００側の入出力仕様を読み込み、処理要求、つまり、上記のステップＥ１で生成した雛形の入力を変換してミドルウェア５を呼び出すコードを生成し、上記のステップＥ１で生成した雛形の出力を変換してミドルウェア５から返却された処理結果を返却するコードを生成し、それらのコードをミドルウェア呼び出し手段７に実装する（そのようなコードを有するミドルウェア呼び出し手段７を生成する）（ステップＥ２）。
【０１０４】
さらに、ミドルウェア透過分散呼び出し生成手段３２０’は、ミドルウェアインタフェース３１２の例外仕様を読み込み、「ミドルウェア５で発生した例外とミドルウェア５を介さないでも発生した例外とを識別し、ミドルウェア５で発生した例外の場合に、その例外をミドルウェア５を介さないでも発生する例外に変換してミドルウェア透過で返却される例外にラッピングするコード」を生成し、そのコードを例外変換手段８に実装する（そのようなコードを有する例外変換手段８を生成する）（ステップＥ３）。
【０１０５】
ここで、図１３に、上記のようにして生成されるミドルウェア呼び出し手段７および例外変換手段８のコードの具体例を記述する。
【０１０６】
第２に、図９および図１１を参照して、ミドルウェアを利用する場合に、クライアント装置１００からの業務処理要求がサーバ装置２００で処理され、その処理結果がクライアント装置１００に返却される際の、一連の処理の流れを説明する。
【０１０７】
クライアント装置１００上の業務処理要求手段１は、ミドルウェア透過分散呼び出し生成手段３２０’で自動生成されたミドルウェア呼び出し手段７を取得する（ステップＤ１）。なお、取得方法は、図４のステップＡ１における取得方法と同様の各種の方法が考えられる。
【０１０８】
業務処理要求手段１は、サーバ装置２００上の業務処理手段４をミドルウェア呼び出し手段７を通して間接的に呼び出すために、上記で取得したミドルウェア呼び出し手段７のメソッドを呼び出す。そして、ミドルウェア呼び出し手段７は、業務処理要求をミドルウェア５のインタフェースにあうように変換し、ミドルウェア５を呼び出す（ステップＤ２）。
【０１０９】
ミドルウェア５内でクライアント装置１００からサーバ装置２００への通信が行われ、ミドルウェア５の内部でサーバ装置２００上の業務処理呼び出し手段６が呼び出される（ステップＤ３）。
【０１１０】
業務処理呼び出し手段６は、ステップＤ２で変換された業務処理要求を復元し、分散呼び出し処理スタブ手段２を取得してそのメソッドを呼び出す（ステップＤ４）。
【０１１１】
分散呼び出し処理スタブ手段２は、分散呼び出し処理スケルトン手段３のメソッドを呼び出す（ステップＤ５）。
【０１１２】
分散呼び出し処理スケルトン手段３は、業務処理手段４の同一インタフェースのメソッドを呼び出す（ステップＤ６）。
【０１１３】
業務処理手段４は、要求された業務処理を実行し、処理結果（業務処理手段４で発生した例外を含む）を分散呼び出し処理スケルトン手段３に返却する。分散呼び出し処理スケルトン手段３は、分散呼び出し処理スタブ手段２に処理結果（業務処理手段４または分散呼び出し処理スケルトン手段３で発生した例外を含む）を返却する。分散呼び出し処理スタブ手段２は、業務処理呼び出し手段６に処理結果（業務処理手段４，分散呼び出し処理スケルトン手段３，または分散呼び出し処理スタブ手段２で発生した例外を含む）を返却する。これにより、業務処理手段４の処理結果（業務処理手段４，分散呼び出し処理スケルトン手段３，または分散呼び出し処理スタブ手段２で発生した例外を含む）が、分散呼び出し処理スケルトン手段３および分散呼び出し処理スタブ手段２を通して業務処理呼び出し手段６に返却される（ステップＤ７）。
【０１１４】
業務処理呼び出し手段６は、処理結果（業務処理手段４，分散呼び出し処理スケルトン手段３，または分散呼び出し処理スタブ手段２で発生した例外を含む）をミドルウェア５のインタフェースにあうように変換する。そして、ミドルウェア５により、サーバ装置２００からクライアント装置１００への通信が行われ、変換された処理結果がミドルウェア呼び出し手段７に返却される（ステップＤ８）。
【０１１５】
クライアント装置１００上のミドルウェア呼び出し手段７は、変換された処理結果（業務処理手段４，分散呼び出し処理スケルトン手段３，分散呼び出し処理スタブ手段２，またはミドルウェア５で発生した例外を含む）を復元し、復元した処理結果が業務処理の成功を示すものであるか否かを判定する（ステップＤ９）。
【０１１６】
ミドルウェア呼び出し手段７は、ステップＤ９で「処理結果が業務処理の成功を示すものである」と判定した場合（業務処理が成功した場合）には、その処理結果を業務処理要求手段１に返却する（ステップＤ１２）。
【０１１７】
一方、ミドルウェア呼び出し手段７は、ステップＤ９で「処理結果が業務処理の成功を示すものではない」と判定した場合（復元した処理結果が例外であった場合）には、その処理結果（例外）を例外変換手段８に渡す。そして、例外変換手段８は、その例外がミドルウェア５で発生したものであるのかそれ以外で発生したものであるのかを識別（判定）する（ステップＤ１０）。
【０１１８】
例外変換手段８は、ステップＤ１０で「その例外がミドルウェア５で発生したものである」と判定した場合には、その例外をミドルウェア５を介さないでも発生する例外（ミドルウェア透過で返却される例外）に変換（ラッピング）し（ステップＤ１１）、ラッピングした例外を業務処理要求手段１に返却する（ステップＤ１２）。
【０１１９】
一方、例外変換手段８は、ステップＤ１０で「その例外がミドルウェア５で発生したものではない」と判定した場合には、その例外をそのまま業務処理要求手段１に返却する（ステップＤ１２）。
【０１２０】
（３）  第３の実施の形態
【０１２１】
次に、本発明の第３の実施の形態に係るミドルウェア透過分散呼び出し手段生成装置について説明する。
【０１２２】
上記の第１の実施の形態に係るミドルウェア透過分散アプリケーションアクセス方式で言及したミドルウェア透過分散呼び出し手段生成装置３００（図１および図３参照）は、独立した発明として成立しうる。
【０１２３】
すなわち、図３は、本発明の第３の実施の形態に係るミドルウェア透過分散呼び出し手段生成装置（ミドルウェア透過分散呼び出し手段生成装置３００）の構成を示すブロック図にも該当する。本実施の形態に係るミドルウェア透過分散呼び出し手段生成装置３００は、分散呼び出し処理スタブ手段インタフェース３１１およびミドルウェアインタフェース３１２を入力としてミドルウェア呼び出し手段７を自動生成してクライアント装置１００上に出力するミドルウェア透過分散呼び出し生成手段３２０を含んで構成されている。
【０１２４】
また、図６は、本実施の形態に係るミドルウェア透過分散呼び出し手段生成装置３００の処理を示す流れ図にも該当する。
【０１２５】
なお、本実施の形態に係るミドルウェア透過分散呼び出し手段生成装置３００の動作は、上記の第１の実施の形態に係るミドルウェア透過分散アプリケーションアクセス方式の説明で述べた図６に示す動作（処理）の内容と同様のものになる。
【０１２６】
（４）  第４の実施の形態
【０１２７】
次に、本発明の第４の実施の形態に係るミドルウェア透過分散呼び出し手段生成装置について説明する。
【０１２８】
上記の第２の実施の形態に係るミドルウェア透過分散アプリケーションアクセス方式で言及したミドルウェア透過分散呼び出し手段生成装置３００（図８および図１０参照）は、独立した発明として成立しうる。
【０１２９】
すなわち、図１０は、本発明の第４の実施の形態に係るミドルウェア透過分散呼び出し手段生成装置（ミドルウェア透過分散呼び出し手段生成装置３００）の構成を示すブロック図にも該当する。本実施の形態に係るミドルウェア透過分散呼び出し手段生成装置３００は、分散呼び出し処理スタブ手段インタフェース３１１およびミドルウェアインタフェース３１２を入力としてミドルウェア呼び出し手段７および例外変換手段８を自動生成してクライアント装置１００上に出力するミドルウェア透過分散呼び出し生成手段３２０’を含んで構成されている。
【０１３０】
また、図１２は、本実施の形態に係るミドルウェア透過分散呼び出し手段生成装置３００の処理を示す流れ図にも該当する。
【０１３１】
なお、本実施の形態に係るミドルウェア透過分散呼び出し手段生成装置３００の動作は、上記の第２の実施の形態に係るミドルウェア透過分散アプリケーションアクセス方式の説明で述べた図１２に示す動作（処理）の内容と同様のものになる。
【０１３２】
（５）  第５の実施の形態
【０１３３】
次に、本発明の第５の実施の形態に係るミドルウェア透過分散呼び出し手段生成装置について説明する。
【０１３４】
本実施の形態（第５の実施の形態）に係るミドルウェア透過分散呼び出し手段生成装置は、上記の第４の実施の形態に対して、さらに、「手段に名前を関連付けてその実体を保存し、その名前をもとに手段の実体を検索できるディレクトリ機構」を用意することにより、ミドルウェアを利用する場合とミドルウェアを利用しない場合とのシステム構成の違いを吸収することができるようにするものである。
【０１３５】
図１４は、このようなディレクトリ機構（同図におけるディレクトリ機構１０）の考え方を説明するための図である。
【０１３６】
先述のように、本発明では、ミドルウェアを利用しない場合には業務処理要求手段１から分散呼び出し処理生成スタブ手段２が呼び出されており、ミドルウェアを利用する場合には業務処理要求手段１からミドルウェア呼び出し手段７が呼び出されている。ここで、本実施の形態の考え方によると、図１４に示すように、これら（ミドルウェアを利用しない場合における分散呼び出し処理スタブ手段２およびミドルウェアを利用する場合におけるミドルウェア呼び出し手段７）をディレクトリ機構１０上の同一の位置ａに関連付けるようにする。
【０１３７】
なお、図１４においては、木構造でディレクトリ機構１０を実現しているが、この他に、配列やハッシュ表を利用してディレクトリ機構を実現することも可能である。
【０１３８】
図１５は、本発明の第５の実施の形態に係るミドルウェア透過分散呼び出し手段生成装置（分散アプリケーションアクセス生成装置に該当するミドルウェア透過分散呼び出し手段生成装置３００）の構成と、その内部に配置されるミドルウェア透過分散呼び出し生成手段３２０’’の入出力の態様とを示すブロック図である。
【０１３９】
図１５を参照すると、本実施の形態に係るミドルウェア透過分散呼び出し手段生成装置３００内に配置されたミドルウェア透過分散呼び出し生成手段３２０’’は、図１０に示すミドルウェア透過分散呼び出し生成手段３２０’と比較して、ディレクトリ機構格納規則３１３が新たに入力に加えられることにより、業務処理呼び出し手段６を新たに自動生成する。
【０１４０】
図１６は、ミドルウェア透過分散呼び出し手段生成装置３００内のミドルウェア透過分散呼び出し生成手段３２０’’によるコード自動生成処理を示す流れ図である。この処理は、ミドルウェア呼び出し手段雛型生成ステップＦ１と、ミドルウェア呼び出し手段コード生成ステップＦ２と、例外変換手段コード生成ステップＦ３と、業務処理呼び出し手段コード生成ステップＦ４とからなる。
【０１４１】
次に、図１４〜図１６を参照して、本実施の形態に係るミドルウェア透過分散呼び出し手段生成装置の動作について説明する。ここでは、図１６を参照して、本実施の形態に係るミドルウェア透過分散呼び出し手段生成装置３００内のミドルウェア透過分散呼び出し生成手段３２０’’によるコード自動生成処理を説明する。
【０１４２】
ミドルウェア透過分散呼び出し生成手段３２０’’は、分散呼び出し処理スタブ手段２の入出力仕様である分散呼び出し処理スタブ手段インタフェース３１１を読み込み、同一のインタフェースを実装したコードの雛形を生成し、それをミドルウェア呼び出し手段７の雛形とする（ステップＦ１）。
【０１４３】
次に、ミドルウェア透過分散呼び出し生成手段３２０’’は、ミドルウェア５の入出力仕様であるミドルウェアインタフェース３１２から、ミドルウェア５のクライアント装置１００側の入出力仕様を読み込み、処理要求、つまり、上記のステップＦ１で生成した雛形の入力を変換してミドルウェア５を呼び出すコードを生成し、上記のステップＦ１で生成した雛形の出力を変換してミドルウェア５から返却された処理結果を返却するコードを生成し、それらのコードをミドルウェア呼び出し手段７に実装する（そのようなコードを有するミドルウェア呼び出し手段７を生成する）（ステップＦ２）。
【０１４４】
さらに、ミドルウェア透過分散呼び出し生成手段３２０’’は、ミドルウェアインタフェース３１２の例外仕様を読み込み、「ミドルウェア５で発生した例外とミドルウェア５を介さないでも発生した例外とを識別し、ミドルウェア５で発生した例外の場合に、その例外をミドルウェア５を介さないでも発生する例外に変換してミドルウェア透過で返却される例外にラッピングするコード」を生成し、そのコードを例外変換手段８に実装する（そのようなコードを有する例外変換手段８を生成する）（ステップＦ３）。
【０１４５】
加えて、ミドルウェア透過分散呼び出し生成手段３２０’’は、ディレクトリ機構格納規則３１３（ここでは、図１４に示すような、ディレクトリ機構１０上での位置ａから位置ｂへの変換規則を定めたディレクトリ機構格納規則３１３）を読み取り、分散呼び出し処理スタブ手段２が格納された位置ｂを取得する。その上で、ミドルウェア透過分散呼び出し生成手段３２０’’は、分散呼び出し処理スタブ手段インタフェース３１１およびミドルウェアインタフェース３１２からサーバ装置２００側の入出力仕様を読み込み、「ミドルウェア５で出力された変換された処理要求を復元して分散呼び出し処理スタブ手段２を取得して呼び出すコード」を生成し、そのコードを業務処理呼び出し手段６に実装する（そのようなコードを有する業務処理呼び出し手段６を生成する）（ステップＦ４）。ここで、分散呼び出し処理スタブ手段２の実体は、ディレクトリ機構１０上の位置ｂから取得される。
【０１４６】
なお、本実施の形態に係るミドルウェア透過分散呼び出し手段生成装置は、第４の実施の形態に対する変形形態に該当するものであった。ここで、第３の実施の形態に係るミドルウェア透過分散呼び出し手段生成装置に対する同様の変形形態を実現することも可能である。この場合には、図１６中のステップＦ３の処理が行われないこととなる。
【０１４７】
（６）  第６の実施の形態
【０１４８】
図１７は、本発明の第６の実施の形態の構成を示すブロック図である。
【０１４９】
図１７を参照すると、本発明の第６の実施の形態は、図１に示した第１の実施の形態に対して、ミドルウェア透過分散アプリケーションアクセス制御プログラム１７００を備える点が異なっている。
【０１５０】
ミドルウェア透過分散アプリケーションアクセス制御プログラム１７００は、クライアント装置１００，サーバ装置２００，およびミドルウェア透過分散呼び出し手段生成装置３００を含むコンピュータシステムに読み込まれ、当該コンピュータシステムの動作を業務処理要求手段１，分散呼び出し処理スタブ手段２，分散呼び出し処理スケルトン手段３，業務処理手段４，業務処理呼び出し手段６を含むミドルウェア５，ミドルウェア呼び出し手段７，およびミドルウェア透過分散呼び出し生成手段３２０として制御する。ミドルウェア透過分散アプリケーションアクセス制御プログラム１７００の制御による業務処理要求手段１，分散呼び出し処理スタブ手段２，分散呼び出し処理スケルトン手段３，業務処理手段４，業務処理呼び出し手段６を含むミドルウェア５，ミドルウェア呼び出し手段７，およびミドルウェア透過分散呼び出し生成手段３２０に関する動作は、第１の実施の形態における業務処理要求手段１，分散呼び出し処理スタブ手段２，分散呼び出し処理スケルトン手段３，業務処理手段４，業務処理呼び出し手段６を含むミドルウェア５，ミドルウェア呼び出し手段７，およびミドルウェア透過分散呼び出し生成手段３２０に関する動作と全く同様になるので、その詳しい説明を割愛する。
【０１５１】
（７）  第７の実施の形態
【０１５２】
図１８は、本発明の第７の実施の形態の構成を示すブロック図である。
【０１５３】
図１８を参照すると、本発明の第７の実施の形態は、図８に示した第２の実施の形態に対して、ミドルウェア透過分散アプリケーションアクセス制御プログラム１８００を備える点が異なっている。
【０１５４】
ミドルウェア透過分散アプリケーションアクセス制御プログラム１８００は、クライアント装置１００，サーバ装置２００，およびミドルウェア透過分散呼び出し手段生成装置３００を含むコンピュータシステムに読み込まれ、当該コンピュータシステムの動作を業務処理要求手段１，分散呼び出し処理スタブ手段２，分散呼び出し処理スケルトン手段３，業務処理手段４，業務処理呼び出し手段６を含むミドルウェア５，ミドルウェア呼び出し手段７，例外変換手段８，およびミドルウェア透過分散呼び出し生成手段３２０’として制御する。ミドルウェア透過分散アプリケーションアクセス制御プログラム１８００の制御による業務処理要求手段１，分散呼び出し処理スタブ手段２，分散呼び出し処理スケルトン手段３，業務処理手段４，業務処理呼び出し手段６を含むミドルウェア５，ミドルウェア呼び出し手段７，例外変換手段８，およびミドルウェア透過分散呼び出し生成手段３２０’に関する動作は、第２の実施の形態における業務処理要求手段１，分散呼び出し処理スタブ手段２，分散呼び出し処理スケルトン手段３，業務処理手段４，業務処理呼び出し手段６を含むミドルウェア５，ミドルウェア呼び出し手段７，例外変換手段８，およびミドルウェア透過分散呼び出し生成手段３２０’に関する動作と全く同様になるので、その詳しい説明を割愛する。
【０１５５】
【発明の効果】
以上説明したように、本発明によると、以下に示すような効果が生じる。
【０１５６】
第１の効果は、業務開発者（クライアント装置側およびサーバ装置側ともに）がミドルウェアの存在を意識せずにシステムの開発を行うことができる点である。
【０１５７】
このような効果が生じる理由は、同一の業務処理要求手段および業務処理手段をミドルウェアを利用する場合もしない場合も共通に利用することができるからである。
【０１５８】
第２の効果は、ミドルウェアを利用した場合にのみ必要な手段を業務開発者がコーディングしないでもよい点にある。
【０１５９】
このような効果が生じる理由は、ミドルウェア呼び出し手段，例外変換手段，および／または業務処理呼び出し手段を、ミドルウェア透過分散呼び出し手段生成装置（ミドルウェア透過分散呼び出し生成手段）により自動的に生成することが可能となるからである。
【０１６０】
第３の効果は、業務開発者がミドルウェアで発生した例外を考慮しないでもよいようにできる点である。
【０１６１】
このような効果が生じる理由は、ミドルウェアで発生した例外をラッピングしてミドルウェアを利用しないでも発生する例外に変換する例外変換手段を持っているからである。
【０１６２】
第４の効果は、開発システムへのミドルウェアの適用をシステム開発の最終段階になって決定することが可能になった点である。
【０１６３】
このような効果が生じる理由は、サーバ装置側およびクライアント装置側の開発をともにミドルウェアの存在を意識せずに行うことができ、ミドルウェアを利用した場合にのみ必要な手段をミドルウェア透過分散呼び出し手段生成装置により自動的に生成することが可能になるからである。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るミドルウェア透過分散アプリケーションアクセス方式の構成を示すブロック図である。
【図２】図１に示すミドルウェア透過分散アプリケーションアクセス方式の構成および動作を説明するためのブロック図である。
【図３】図１中のミドルウェア透過分散呼び出し手段生成装置の構成および動作を説明するためのブロック図であり、本発明の第３の実施の形態に係るミドルウェア透過分散呼び出し手段生成装置の構成を示すブロックでもある。
【図４】図１に示すミドルウェア透過分散アプリケーションアクセス方式のミドルウェアを利用しない場合における分散アプリケーションアクセス処理を示す流れ図である。
【図５】図１に示すミドルウェア透過分散アプリケーションアクセス方式のミドルウェアを利用する場合における分散アプリケーションアクセス処理を示す流れ図である。
【図６】図１中のミドルウェア透過分散呼び出し手段生成装置によるコード自動生成処理を示す流れ図である。
【図７】図１中のミドルウェア透過分散呼び出し手段生成装置により生成されるコード（ミドルウェア呼び出し手段のコード）の具体例を示す図である。
【図８】本発明の第２の実施の形態に係るミドルウェア透過分散アプリケーションアクセス方式の構成を示すブロック図である。
【図９】図８に示すミドルウェア透過分散アプリケーションアクセス方式の構成および動作を説明するためのブロック図である。
【図１０】図８中のミドルウェア透過分散呼び出し手段生成装置の構成および動作を説明するためのブロック図であり、本発明の第４の実施の形態に係るミドルウェア透過分散呼び出し手段生成装置の構成を示すブロックでもある。
【図１１】図８に示すミドルウェア透過分散アプリケーションアクセス方式のミドルウェアを利用する場合における分散アプリケーションアクセス処理を示す流れ図である。
【図１２】図８中のミドルウェア透過分散呼び出し手段生成装置によるコード自動生成処理を示す流れ図である。
【図１３】図８中のミドルウェア透過分散呼び出し手段生成装置により生成されるコード（ミドルウェア呼び出し手段および例外変換手段のコード）の具体例を示す図である。
【図１４】本発明の第５の実施の形態に係るミドルウェア透過分散呼び出し手段生成装置の考え方を説明するための図である。
【図１５】本発明の第５の実施の形態に係るミドルウェア透過分散呼び出し手段生成装置の構成を示すブロックである。
【図１６】図１５中のミドルウェア透過分散呼び出し手段生成装置によるコード自動生成処理を示す流れ図である。
【図１７】本発明の第６の実施の形態の構成を示すブロック図である。
【図１８】本発明の第７の実施の形態の構成を示すブロック図である。
【図１９】従来のミドルウェア透過分散アプリケーションアクセス方式の一例の構成および動作を説明するためのブロック図である。
【符号の説明】
１  業務処理要求手段
２  分散呼び出し処理スタブ手段
３  分散呼び出し処理スケルトン手段
４  業務処理手段
５  ミドルウェア
６  業務処理呼び出し手段
７  ミドルウェア呼び出し手段
８  例外変換手段
１０  ディレクトリ機構
１００  クライアント装置
２００  サーバ装置
３００  ミドルウェア透過分散呼び出し手段生成装置
３１１  分散呼び出し処理スタブ手段インタフェース
３１２  ミドルウェアインタフェース
３１３  ディレクトリ機構格納規則
３２０，３２０’，３２０’’  ミドルウェア透過分散呼び出し生成手段
１７００，１８００  ミドルウェア透過分散アプリケーションアクセス制御プログラム
【図１】
2004240890.tif 000003
【図２】
2004240890.tif 000004
【図３】
2004240890.tif 000005
【図４】
2004240890.tif 000006
【図５】
2004240890.tif 000007
【図６】
2004240890.tif 000008
【図７】
2004240890.tif 000009
【図８】
2004240890.tif 000010
【図９】
2004240890.tif 000011
【図１０】
2004240890.tif 000012
【図１１】
2004240890.tif 000013
【図１２】
2004240890.tif 000014
【図１３】
2004240890.tif 000015
【図１４】
2004240890.tif 000016
【図１５】
2004240890.tif 000017
【図１６】
2004240890.tif 000018
【図１７】
2004240890.tif 000019
【図１８】
2004240890.tif 000020
【図１９】
2004240890.tif 000021