(57)【特許請求の範囲】
【請求項１】
データベース・アクセス言語によるデータベースへのアクセス依頼を受け付け、応答を返すデータベース管理システムを備える複数のサーバ情報処理装置と、該サーバ情報処理装置に接続された、上記データベース管理システムをアクセス対象とする上記依頼を発行するアプリケーション・ソフトウェア実行手段を備える一以上のクライアント情報処理装置とを有するデータベース・アクセス・システムにおいて、
上記アクセス依頼を受け付け、上記データベース管理システムに送るゲートウェイ情報処理装置を備え、
上記ゲートウェイ情報処理装置は、
上記アクセス依頼を受け付け、異なるデータベース・アクセス言語による依頼に変換して、上記データベース管理システムに送るデータベース・アクセス言語変換手段と、
上記アクセス依頼を受け付け、上記データベース・アクセス言語変換手段に送る、アクセス管理手段とを備え、
上記クライアント情報処理装置は、
上記依頼を発行すると、上記アクセス管理手段との接続を確保し、該依頼を該アクセス管理手段に送る手段と、
あらかじめ定められた時間が経過しても応答がないと、上記接続を切断し、上記依頼の処理をエラーとする手段とを備え、
前記アクセス管理手段は、
上記依頼を受け付けると、上記データベース・アクセス言語変換手段との接続を確保し、該依頼を該データベース・アクセス言語変換手段に送る手段と、
あらかじめ定められた時間が経過しても応答がないと、上記接続を切断し、上記依頼の処理のエラーをクライアント情報処理装置に通知する手段とを備え、
前記データベース・アクセス言語変換手段は、
前記依頼を受け付けると、上記データベース管理システム手段との接続を確保し、該依頼を該データベース管理システムに送る手段と、
あらかじめ定められた時間が経過しても応答がないと、上記接続を切断し、上記依頼の処理のエラーをアクセス管理手段に通知する手段とを備え、
前記クライアント情報処理装置にあらかじめ定められた時間と、
前記アクセス管理手段にあらかじめ定められた時間と、
前記データベース・アクセス言語変換手段にあらかじめ定められた時間とは、
この順に短いことを特徴とするデータベース・アクセス・システム。
【請求項２】
データベース・アクセス言語によるデータベースへのアクセス依頼を受け付け、応答を返すデータベース管理システムを備える複数のサーバ情報処理装置と、該サーバ情報処理装置に接続された、上記データベース管理システムをアクセス対象とする上記依頼を発行するアプリケーション・ソフトウェア実行手段を備える一以上のクライアント情報処理装置とを有するデータベース・アクセス・システムにおいて、
上記アクセス依頼を受け付け、上記データベース管理システムに送るゲートウェイ情報処理装置を備え、
上記ゲートウェイ情報処理装置は、
上記アクセス依頼を受け付け、異なるデータベース・アクセス言語による依頼に変換して、上記データベース管理システムに送るデータベース・アクセス言語変換手段と、
上記アクセス依頼を受け付け、上記データベース・アクセス言語変換手段に送る、アクセス管理手段とを備え、
上記クライアント情報処理装置は、
上記依頼を発行すると、上記アクセス管理手段との接続を確保し、該依頼を該アクセス管理手段に送る手段と、
あらかじめ定められた時間が経過しても応答がないと、上記接続を切断し、上記依頼の処理をエラーとする手段と、
上記クライアント情報処理装置にあらかじめ定められた時間を、前記アクセス管理手段に通知する手段とを備え、
前記アクセス管理手段は、
上記依頼を受け付けると、上記データベース・アクセス言語変換手段との接続を確保し、該依頼を該データベース・アクセス言語変換手段に送る手段と、
あらかじめ定められた時間が経過しても応答がないと、上記接続を切断し、上記依頼の処理のエラーをクライアント情報処理装置に通知する手段とを備え、
上記アクセス管理手段は、上記通知された時間を、該アクセス管理手段にあらかじめ定められた時間として用いることを特徴とするデータベース・アクセス・システム。
【請求項３】
データベース・アクセス言語によるデータベースへのアクセス依頼を受け付け、応答を返すデータベース管理システムを備える複数のサーバ情報処理装置と、該サーバ情報処理装置に接続された、上記データベース管理システムをアクセス対象とする上記依頼を発行するアプリケーション・ソフトウェア実行手段を備える一以上のクライアント情報処理装置とを有するデータベース・アクセス・システムにおいて、
上記アクセス依頼を受け付け、上記データベース管理システムに送るゲートウェイ情報処理装置を備え、
上記ゲートウェイ情報処理装置は、
上記アクセス依頼を受け付け、異なるデータベース・アクセス言語による依頼に変換して、上記データベース管理システムに送るデータベース・アクセス言語変換手段と、
上記アクセス依頼を受け付け、上記データベース・アクセス言語変換手段に送る、アクセス管理手段とを備え、
上記クライアント情報処理装置は、
上記依頼を発行すると、上記アクセス管理手段との接続を確保し、該依頼を該アクセス管理手段に送る手段と、
あらかじめ定められた時間が経過しても応答がないと、上記接続を切断し、上記依頼の処理をエラーとする手段とを備え、
前記アクセス管理手段は、
上記依頼を受け付けると、上記データベース・アクセス言語変換手段との接続を確保し、該依頼を該データベース・アクセス言語変換手段に送る手段と、
あらかじめ定められた時間が経過しても応答がないと、上記接続を切断し、上記依頼の処理のエラーをクライアント情報処理装置に通知する手段と、
前記アクセス管理手段にあらかじめ定められた時間を、前記データベース・アクセス言語変換手段に通知する手段とを備え、
前記データベース・アクセス言語変換手段は、
前記依頼を受け付けると、上記データベース管理システム手段との接続を確保し、該依頼を該データベース管理システムに送る手段と、
あらかじめ定められた時間が経過しても応答がないと、上記接続を切断し、上記依頼の処理のエラーをアクセス管理手段に通知する手段とを備え、
上記データベース・アクセス言語変換手段は、上記通知された時間を、該データベース・アクセス言語変換手段にあらかじめ定められた時間として用いることを特徴とするデータベース・アクセス・システム。
【請求項４】
データベース・アクセス言語によるデータベースへのアクセス依頼を受け付け、応答を返すデータベース管理システムを備える複数のサーバ情報処理装置と、該サーバ情報処理装置に接続された、上記データベース管理システムをアクセス対象とする上記依頼を発行するアプリケーション・ソフトウェア実行手段を備える一以上のクライアント情報処理装置とを有するデータベース・アクセス・システムにおいて、
上記アクセス依頼を受け付け、上記データベース管理システムに送るゲートウェイ情報処理装置を備え、
上記ゲートウェイ情報処理装置は、
上記アクセス依頼を受け付け、異なるデータベース・アクセス言語による依頼に変換して、上記データベース管理システムに送るデータベース・アクセス言語変換手段と、
上記アクセス依頼を受け付け、上記データベース・アクセス言語変換手段に送る、アクセス管理手段とを備え、
上記アクセス管理手段は、
上記依頼を受け付けると、上記データベース・アクセス言語変換手段との接続を確保し、該依頼を該データベース・アクセス言語変換手段に送る手段と、
あらかじめ定められた時間が経過しても応答がないと、上記接続を切断し、上記依頼の処理のエラーをクライアント情報処理装置に通知する手段と、
前記アクセス管理手段にあらかじめ定められた時間を、前記データベース・アクセス言語変換手段に通知する手段とを備え、
前記データベース・アクセス言語変換手段は、
前記依頼を受け付けると、上記データベース管理システム手段との接続を確保し、該依頼を該データベース管理システムに送る手段と、
あらかじめ定められた時間が経過しても応答がないと、上記接続を切断し、上記依頼の処理のエラーをアクセス管理手段に通知する手段とを備え、
上記データベース・アクセス言語変換手段は、上記通知された時間を、該データベース・アクセス言語変換手段にあらかじめ定められた時間として用いることを特徴とするデータベース・アクセス・システム。
【請求項５】
請求項２において、
前記アクセス管理手段は、該アクセス管理手段にあらかじめ定められた時間を、前記データベース・アクセス言語変換手段に通知する手段を、さらに備え、
上記データベース・アクセス言語変換手段は、上記通知された時間を、該データベース・アクセス言語変換手段にあらかじめ定められた時間として用いることを特徴とするデータベース・アクセス・システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、データベースをアクセスするための情報処理システムに係り、特に、クライアントの情報処理装置からネットワークを介して複数の異種データベース・サーバーをアクセスする場合に好適な、データベース・アクセス・システムおよびその制御方法に関する。
【０００２】
【従来の技術】
企業におけるデータベース・システムは、ダウンサイジング化に伴い、メインフレームを用いた全社システムから、各業務を担当する部門に分散された部門システムへと移行が進んでいる。部門システムでは、業務内容に応じた最適なシステムを構築するため、各部門毎に異なるベンダのデータベース管理システム(ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ：  ＤＢＭＳ)を採用することも珍しくない。一方、意志決定支援などのアプリケーション・ソフトウェアの実行においては、企業内の各部門に分散したデータベース上の種々のデータを必要に応じて収集し分析する必要がある。
【０００３】
データベースのアクセスに用いるアプリケーション・プログラミング・インタフェース（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ：  ＡＰＩ）としては、エス・キュー・エル（ＳＱＬ：  Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ)とよばれる言語が一般に用いられている。ＳＱＬは、ＪＩＳ規格などで標準仕様が定められているが、実際のＤＢＭＳの製品では細かな点でＤＢＭＳベンダ毎にその仕様が異なっている。このため、同一のＳＱＬで異なるベンダのＤＢＭＳ上のデータベースにアクセスすることはできない。そこで、一種類のＳＱＬを各ベンダ固有のＳＱＬに変換するゲートウェイが製品化されている。なお、ＳＱＬの仕様の相違点については、Ａｄｄｉｓｏｎ-Ｗｅｓｌｅｙ  Ｐｕｂｌｉｓｈｉｎｇ  Ｃｏｍｐａｎｙ，  Ｉｎｃ発行の「ＴＨＥ  ＰＲＡＣＴＩＣＡＬ  ＳＱＬ  ＨＡＮＤＢＯＯＫ」３２９〜３４１頁に記載されている。
【０００４】
ゲートウェイを用いた異種データベース・アクセス・システムの一従来例を図２に示す。この従来例では、アプリケーション・ソフトウェア実行手段１１１が動作するクライアント情報処理装置１１０に、ゲートウェイ機能を搭載している。図２に示した例では、クライアント情報処理装置１１０と接続されたＬＡＮ(Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ)１００には、２つのサーバ情報処理装置１２０ａ，１２０ｂが接続されており、それぞれ、ＤＢＭＳ＿Ａ１２１ａ、ＤＢＭＳ＿Ｂ１２１ｂが動作する。サーバ情報処理装置１２０ａには、データベース１２４ａのデータを保持する外部記憶装置１２４ａが接続され、サーバ情報処理装置１２０ｂには、データベース１２４ｂのデータを保持する外部記憶装置１２４ｂが接続されている。ＤＢＭＳ＿Ａ１２１ａ，ＤＢＭＳ＿Ｂ１２１ｂは、それぞれ、データベース１２４ａ，１２４ｂを管理する。
【０００５】
アクセス管理コンポーネント１１２は、アプリケーション・ソフトウェア１１１がデータベース・アクセスのため発行するＳＱＬ文を、アクセス先がＤＢＭＳ＿Ａ１２１ａの時はＳＱＬ変換手段Ａ１１５ａ、アクセス先がＤＢＭＳ＿Ｂ１２１ｂの時はＳＱＬ変換手段Ｂ１１５ｂの各コンポーネントに引き渡すように動作する。
【０００６】
ＳＱＬ変換手段Ａ１１５ａ，ＳＱＬ変換手段Ｂ１１５ｂの各コンポーネントは、受け取ったＳＱＬ文をターゲットＤＢＭＳ（アクセス先のＤＢＭＳ）の仕様に変換し、各ＤＢＭＳ用のデータベース・ドライバＡ１２２ａ、データベース・ドライバＢ１２２ｂ、およびＬＡＮドライバ１２３を介して、各ターゲットのサーバ情報処理装置１２０ａまたは１２０ｂに、前記変換後のＳＱＬ文を送信する。
【０００７】
データベース・ドライバＡ１２２ａ、データベース・ドライバＢ１２２ｂ、および前記ＬＡＮドライバ１２３は、クライアント情報処理装置１１０と同じものが各サーバ情報処理装置１２０ａ、１２０ｂにも搭載されており、通信プロトコルの階層に従った処理を行い、クライアント情報処理装置１００が送信したＬＡＮ１００上のパケットデータからＤＢＭＳ＿Ａ１２１ａまたはＤＢＭＳ＿Ｂ１２１ｂ宛の前記ＳＱＬ文を取り出し、該各ＤＢＭＳに該ＳＱＬ文を送る。各ＤＢＭＳでの処理結果は、上述の経路を逆に辿り、ＳＱＬ変換手段Ａ１１５ａまたはＳＱＬ変換手段Ｂ１１５ｂによって、標準のデータ形式、および標準のリターン・コードに変換した後、アクセス管理コンポーネント１１２を介してアプリケーション・ソフトウェア１１１に送られる。
【０００８】
このように、ゲートウェイ機能を、クライアント情報処理装置１１０上のアクセス管理コンポーネント１１２とＳＱＬ変換手段Ａ１１５ａ、ＳＱＬ変換手段Ｂ１１５ｂによって実現することにより、単一のＳＱＬ仕様だけを用いて、異なるＳＱＬ仕様を持つＤＢＭＳにアクセスすることが可能となっている。
【０００９】
これらのゲートウェイ機能をクライアント情報処理装置１１０上ではなく、専用のゲートウェイ情報処理装置１３０を用いて実現した従来例を図３に示す。この従来例では、アプリケーション・ソフトウェア実行手段１１１が発行したＳＱＬ文は、まず、データベース・ドライバＣ１２２ｃ、ＬＡＮドライバ１２３を介してゲートウェイ情報処理装置１３０に送られる。ゲートウェイ情報処理装置１３０上では、ＬＡＮドライバ１２３、データベース・ドライバＣ１２２ｃによって前記ＳＱＬ文が取り出され、アクセス管理コンポーネント１１２に送られる。この後の動作は、図２を用いて説明した従来例と同様であり、ＳＱＬ変換手段Ａ１１５ａ、ＳＱＬ変換手段Ｂ１１５ｂ、データベース・ドライバＡ１２２ａ、データベース・ドライバＢ１２２ｂ、ＬＡＮドライバ１２３を介してターゲットのサーバ情報処理装置１２０ａまたは１２０ｂ上のデータベースをアクセスし、結果がクライアント情報処理装置１１０上のアプリケーション・ソフトウェア実行手段１１１に返される。
【００１０】
これらの異種データベース・アクセス・システムについては、「日経エレクトロニクス１９９３年２月１５日号」１３８〜１４５頁（日経ＢＰ社刊）に述べられている。
【００１１】
【発明が解決しようとする課題】
以上述べたように、ターゲットＤＢＭＳのＳＱＬ仕様へのＳＱＬ文の変換を行うゲートウェイ機能を、クライアント情報処理装置上に搭載する、あるいは、ゲートウェイ機能を実現するゲートウェイ情報処理装置を設けることによって、単一のＳＱＬ仕様だけに対応したアプリケーション・ソフトウェア実行手段によって、異なるＳＱＬ仕様を持つ複数のＤＢＭＳで管理されたデータベースをアクセスすることが可能となっている。
【００１２】
しかし、図２で示した従来の構成では、アクセスするＤＢＭＳに対応したＳＱＬ変換手段およびデータベース・ドライバを、すべてのクライアントが具備する必要がある。このため、システム内のＤＢＭＳの種類の追加やバージョンアップのたびごとに、各クライアントのＳＱＬ変換手段およびデータベース・ドライバをメンテナンスする必要があり、保守性のよいものではなかった。
【００１３】
図３で示した従来の構成では、ゲートウェイ情報処理装置上のＳＱＬ変換手段、データベース・ドライバだけをメンテナンスすればよいので、上記の課題は解決される。しかし、常にゲートウェイ情報処理装置を介してデータベースをアクセスするので、ゲートウェイ情報処理装置に負荷が集中し、ＬＡＮ上のトラフィックが増加するため、該アクセスの性能がゲートウェイ情報処理装置を介さない場合に比べて低下するという課題があった。
【００１４】
また、従来のゲートウェイ情報処理装置を用いた方式では、それぞれ仕様の異なるＳＱＬを発行する複数のクライアントから、それぞれ仕様の異なる複数のＤＢＭＳにアクセスすることができないという課題があった。
【００１５】
さらに、従来のゲートウェイ情報処理装置を用いた方法では、クライアントのアプリケーション・ソフトウェア毎に、異なる文字コードセットを使用することができないという課題があった。
【００１６】
また、データベースへのアクセスは、長いときには３０分以上の時間を要する場合があり、処理の打ち切り時間はユーザーが自由に設定できることが望ましい。しかし、従来は、前記打ち切り時間を設定できない、あるいはシステムで固定した値での設定となっており、ユーザー毎の設定はできないという課題があった。さらに、ゲートウェイ情報処理装置上のＳＱＬ変換手段を介したデータベース・アクセスにおいては、処理打ち切り時間をオーバーした場合の原因箇所特定が容易でないという課題があった。また、ゲートウェイ情報処理装置上のコンポーネントまたはＤＢＭＳに障害が発生している場合も、３０分程度の値が設定される前記打ち切り時間だけ待たなければ、前記障害が明らかにならないという課題があった。
【００１７】
また、従来のゲートウェイ情報処理装置を用いた方法では、それぞれ仕様の異なるＳＱＬを発行する複数のクライアントから、それぞれ仕様の異なる複数のＤＢＭＳにアクセスすることは困難であった。
【００１８】
そこで、本発明は、仕様の異なるデータベース・アクセス言語を発行するクライアントとＤＢＭＳとのアクセスを可能にする言語変換手段を有するデータベース・アクセス・システムであって、言語変換に伴う負荷を、複数の情報処理装置に分散することのできるデータベース・アクセス・システムを提供すること、およびその制御方法を提供することを第１の目的とする。
【００１９】
さらに、本発明は、仕様の異なるデータベース・アクセス言語を発行するクライアントとＤＢＭＳとのアクセスを可能にする言語変換手段を有するデータベース・アクセス・システムであって、アプリケーション・ソフトウェアが、データベース管理システムや、ゲートウェイ情報処理装置と異なる文字コードを用いることのできるデータベース・アクセス・システムを提供すること、およびその制御方法を提供することを第２の目的とする。
【００２０】
また、本発明は、仕様の異なるデータベース・アクセス言語を発行するクライアントとＤＢＭＳとのアクセスを可能にする言語変換手段を有するデータベース・アクセス・システムであって、任意の時間でデータベースへのアクセス処理を打ち切ることのできるデータベース・アクセス・システムを提供すること、およびその制御方法を提供することを第３の目的とする。
【００２１】
さらに、本発明は、仕様の異なるデータベース・アクセス言語を発行するクライアントとＤＢＭＳとのアクセスを可能にする言語変換手段を有するデータベース・アクセス・システムであって、各装置の障害を検知する手段を有するデータベース・アクセス・システムを提供すること、およびその制御方法を提供することを第４の目的とする。
【００２２】
【課題を解決するための手段】
上記目的を達成するために、本発明では、データベース・アクセス言語によるデータベースへのアクセス依頼を受け付け、応答を返すデータベース管理システムを備える複数のサーバ情報処理装置と、該サーバ情報処理装置に接続された、上記データベース管理システムをアクセス対象とする上記依頼を発行するアプリケーション・ソフトウェア実行手段を備える一以上のクライアント情報処理装置とを有するデータベース・アクセス・システムであって、上記アクセス依頼を受け付け、上記データベース管理システムに送るゲートウェイ情報処理装置を備え、上記ゲートウェイ情報処理装置は、上記アクセス依頼を受け付け、異なるデータベース・アクセス言語による依頼に変換して、上記データベース管理システムに送るデータベース・アクセス言語変換手段と、上記アクセス依頼を受け付け、上記データベース・アクセス言語変換手段に送る、アクセス管理手段とを備え、その目的に応じて、下記の要素を有するデータベース・アクセス・システムが提供される。
【００２３】
Ａ．上記第１の目標達成のためには、
（１）上記クライアント情報処理装置が、上記アプリケーション・ソフトウェア実行手段の発行した依頼を受け付け、上記複数のアクセス管理手段のうちのいずれに送るかを決定し、該決定したアクセス管理手段に送る第１の選択手段を有すること
（２）上記アクセス管理手段が、
上記アプリケーション・ソフトウェア実行手段の発行した依頼を受け付け、
上記複数のデータベース言語変換手段のうちのいずれに送るかを決定し、該決定したデータベース・アクセス言語変換手段に送る第２の選択手段を有することのすくなくともいずれかを備えるデータベース・アクセス・システムが提供される。
【００２４】
Ｂ．上記第２の目標達成のためには、
（１）上記クライアント情報処理装置が、上記アプリケーション・ソフトウェア実行手段の、前記依頼の発行に使用した文字コードの文字コードセット識別情報を、上記アクセス管理手段に通知する手段を備え、上記アクセス管理手段は、上記データベース・アクセス言語変換手段へ送る前に、受け付けた上記依頼の文字コードを、あらかじめ定められた文字コードセットの文字コードに変換する手段と、上記クライアント情報処理装置へ通知する応答を、上記通知された文字コードセットの文字コードに変換する手段とを備えること
（２）上記データベース・アクセス言語変換手段が、受け付けた上記依頼の文字コードを、あらかじめ定められた文字コードに変換する手段と、上記アクセス管理手段へ通知する応答を、上記通知された文字コードセットの文字コードに変換する手段とを備えること
の少なくともいずれかを備えるデータベース・アクセス・システムが提供される。
【００２５】
Ｃ．上記第３の目的達成のためには、
（１）上記クライアント情報処理装置が、上記依頼を発行すると、上記アクセス管理手段との接続を確保し、該依頼を該アクセス管理手段に送る手段と、あらかじめ定められた時間が経過しても応答がないと、上記接続を切断し、上記依頼の処理をエラーとする手段とを備えること
（２）上記アクセス管理手段が、上記依頼を受け付けると、上記データベース・アクセス言語変換手段との接続を確保し、該依頼を該データベース・アクセス言語変換手段に送る手段と、あらかじめ定められた時間が経過しても応答がないと、上記接続を切断し、上記依頼の処理のエラーをクライアント情報処理装置に通知する手段とを備えること
（３）上記データベース・アクセス言語変換手段が、上記依頼を受け付けると、上記データベース管理システム手段との接続を確保し、該依頼を該データベース管理システムに送る手段と、あらかじめ定められた時間が経過しても応答がないと、上記接続を切断し、上記依頼の処理のエラーをアクセス管理手段に通知する手段とを備えること
の少なくともいずれかを備えるデータベース・アクセス・システムが提供される。
【００２６】
Ｄ．上記第４の目的達成のためには、
（１）上記クライアント情報処理装置が、障害チェック用のあらかじめ定められた上記アクセス依頼を、あらかじめ定められた時間が経過するごとに発行し、上記ゲートウェイ情報処理装置に送る障害チェック手段と、上記障害チェック用アクセス依頼に対する応答が、あらかじめ定められた時間内になければ、上記アプリケーション・ソフトウェア実行手段にエラーを通知する障害通知手段とを有すること
（２）上記アクセス管理手段が、障害チェック用の上記アクセス依頼を、あらかじめ定められた時間が経過するごとに発行し、上記データベース・アクセス言語変換手段に送る障害チェック手段と、上記障害チェック用アクセス依頼に対する応答が、あらかじめ定められた時間内になければ、上記クライアント情報処理装置にエラーを通知する障害通知手段とを有すること
（３）上記データベース・アクセス言語変換手段が、障害チェック用の上記アクセス依頼をあらかじめ定められた時間が経過するごとに発行し、上記データベース管理システムに送る障害チェック手段と、上記障害チェック用アクセス依頼に対する応答が、あらかじめ定められた時間内になければ、上記アクセス管理手段にエラーを通知する障害通知手段とを有すること
の少なくともいずれかを備えるデータベース・アクセス・システムが提供される。
【００２７】
さらに、本発明では、上記各要素を備えるデータベース・アクセス・システムの制御方法が提供される。
【００２８】
【作用】
アクセス管理手段は、あらかじめ定められた仕様のＳＱＬによる、データベース管理システムへのアクセス依頼をリモート・プロシージャ・コール（（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ：  ＲＰＣ）のパラメータとしたアクセスを受け付け、ターゲットのＤＢＭＳの種類を決定し、ＤＢＭＳの種類に対応したＳＱＬ変換手段に標準仕様のＳＱＬをパラメータとしたＲＰＣを発行する。
【００２９】
ＳＱＬ変換手段は、アクセス管理手段から発行されたＲＰＣによって引き渡された標準仕様のＳＱＬを、ターゲットＤＢＭＳが用いる非標準仕様のＳＱＬに変換し、ＤＢＭＳへのアクセスを実行する。
【００３０】
このように、アクセス管理手段とＳＱＬ変換手段との接続をＲＰＣを用いて行い、しかもアクセス管理手段への処理依頼と、ＳＱＬ変換手段への処理依頼の各ＲＰＣのパラメータ仕様を同一とする事によって、ターゲットＤＢＭＳが明確でしかも単一の場合には、ユーザー・アプリケーション・ソフトウェアから、アクセス管理手段を介すること無く直接ＳＱＬ変換手段へアクセスすることができるようになる。これによって、オーバーヘッドを低減することができる。
【００３１】
また、アクセス管理手段とＳＱＬ変換手段は、複数の情報処理装置上に置くことができ、第一の情報処理装置上のアクセス管理手段から他の情報処理装置上のＳＱＬ変換手段へＲＰＣによる処理依頼を行うこともできる。これによって、処理負荷を複数の情報処理装置に分散できる。さらに、アクセス管理手段が搭載されたすべての情報処理装置上にすべての種類のＤＢＭＳに対応したＳＱＬ変換手段を搭載しなくてもよく、どれかの情報処理装置上に必要な種類のＳＱＬ変換手段を用意して置けばよいので、導入、保守が容易となる。
【００３２】
また、ユーザー・アプリケーション・ソフトウェアが搭載された情報処理装置（クライアント情報処理装置）上で動作し、ユーザー・アプリケーション・ソフトウェア実行手段から発行されるＳＱＬを、ＲＰＣを用いて他の情報処理装置に実行依頼するクライアントＳＱＬ処理手段は、ユーザー・アプリケーション・ソフトウェア実行手段から発行されるＳＱＬをパラメータとするＲＰＣを、単一のＤＢＭＳに対するものであるときはターゲットＤＢＭＳと同一情報処理装置上のＳＱＬ変換手段に発行し、単一のＤＢＭＳに対するものでないときはターゲットＤＢＭＳとは別のゲートウェイ情報処理装置上のアクセス管理手段に発行するように動作する。これによって、単一のＤＢＭＳに対してのアクセスは、ゲートウェイ情報処理装置を介することによるオーバーヘッドを生じることなく実行することができる。
【００３３】
アクセス管理手段は、あらかじめ定められた仕様のＳＱＬをＲＰＣのパラメータとしたアクセスを受け付け、ターゲットのＤＢＭＳの種類を決定し、ＤＢＭＳの種類に対応したＳＱＬ変換手段に前記ＲＰＣと同じ内容のＲＰＣを発行する。前記ＳＱＬ変換手段は、アクセス管理手段から発行されたＲＰＣによって引き渡されたアクセス依頼を、ターゲットＤＢＭＳが用いるＳＱＬ仕様のアクセス依頼に変換し、該ＤＢＭＳへのアクセスを実行する。この際、文字コードセット識別情報が通知される。前記アクセス管理コンポーネントは、自分自身が解釈可能な文字コードセットへ、アプリケーション・ソフトウェアから受け取ったＳＱＬ文を文字コード変換手段を用いて変換する。これによって、クライアント情報処理装置上のアプリケーション・ソフトウェアは、データベースへの接続単位に様々な文字コードセットを用いることができる。
【００３４】
クライアント情報処理装置、アクセス管理手段、データベース・アクセス言語変換手段のいずれかに、上記依頼を受け付けると、送り先への接続を確保し、該依頼を送る手段と、あらかじめ定められた時間が経過しても応答がないと、該接続を切断し、上記依頼の処理のエラーを依頼元に通知する手段とを備えれば、データベース・アクセスの処理をあらかじめ定められた時間（打ち切り時間）で打ち切ることができる。また、クライアント情報処理装置からアクセス管理手段へ、アクセス管理手段からデータベース・アクセス言語変換手段へ、打ち切り時間を、依頼の通知ごとに通知するようにすれば、アプリケーション・ソフトウェア実行手段による依頼ごとに、データベースへの接続単位で自由に設定できる。
【００３５】
また、打ち切り時間設定手段は、前記データベース・アクセス処理打ち切り時間通知手段から受け取った時間よりも短い時間を処理打ち切り時間として設定するように動作する。これによって、前記２つの打ち切り時間計測手段が用いる処理打ち切り時間は、前記アクセス管理手段から前記ＳＱＬ変換手段へのＳＱＬ文の処理依頼に対して適用されるの方が短い時間となる。これによって、アプリケーション・ソフトウェアから見てアクセス管理手段の先にあるＳＱＬ変換手段への処理依頼打ち切りよりも時間的前に、アクセス管理手段への処理を打ち切ることを防止できる。これによって、ＳＱＬ変換手段への処理打ち切りが発生した場合も、アクセス管理手段を介して該打ち切りの通知をアプリケーション・ソフトウェアが受け取ることができ、処理打ち切り時間をオーバーした場合の原因箇所特定が可能となる。
【００３６】
また、サーバ障害チェック用ＲＰＣ発行手段は、アプリケーション・ソフトウェアがデータベースに接続した後、アクセス管理手段およびＳＱＬ変換手段に対して、定期的に障害チェック用ＲＰＣを発行する。該障害チェック用ＲＰＣは、発行後、打ち切り時間内にサーバすなわちアクセス管理手段またはＳＱＬ変換手段から応答があるかどうかを打ち切り時間計測手段によってチェックする。前記打ち切り時間内に応答がなかった場合には、サーバに障害が発生したものとみなす。これによって、アクセス管理手段、ＳＱＬ変換手段の障害をＳＱＬ文の発行前に検知することが可能である。
【００３７】
さらに、ＲＰＣの定期的発行をチェックする手段は、前記サーバ障害チェック用ＲＰＣ発行手段から発行される障害チェック用ＲＰＣが定期的に発行されているかどうかを監視し、前記発行がなされていない場合にはクライアントに障害が発生したものとみなす。これによって、クライアント側の障害を容易に検知することが可能である。
【００３８】
【実施例】
以下に、本発明の実施例を図面を用いて説明する。
【００３９】
（実施例１）
Ａ．異種データベース・アクセス・システムの構成
図１に、本実施例１における異種データベース・アクセス・システムの一構成例を示す。本実施例１における異種データベース・アクセス・システムは、クライアント情報処理装置１１０と、ゲートウェイ情報処理装置１３０と、サーバ情報処理装置１２０ａ，１２０ｂと、ネームサーバ情報処理装置１５０とを備える。以上の各情報処理装置１１０，１２０ａ，１２０ｂ，１３０，１５０はＬＡＮ１００で接続されている。図３９に示すように、各情報処理装置１１０，１２０ａ，１２０ｂ，１３０，１５０は、少なくとも、主記憶装置１００１と中央演算処理装置（ＣＰＵ）１０００とを備える。
【００４０】
クライアント情報処理装置１１０は、アプリケーション・ソフトウェア実行手段１１１と、ＲＰＣドライバ１０２と、ＬＡＮドライバ１２３とを備え、アプリケーション・ソフトウェア実行手段１１１によりデータベースの保持するデータにアクセスするためのアクセス要求であるリモート・プロシージャ・コール（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ：  ＲＰＣ）を発行し、該要求に対する応答を受け付ける情報処理装置である。アプリケーション・ソフトウェア実行手段１１１と、ＲＰＣドライバ１０２と、ＬＡＮドライバ１２３とは、クライアント情報処理装置１１０の主記憶装置１００１上に保持されたインストラクションを、クライアント情報処理装置１１０のＣＰＵ１０００が実行することにより実現される。
【００４１】
サーバ情報処理装置１２０ａは、ＤＢＭＳ＿Ａ１２１ａと、データベースドライバＡ１２２ａと、ＬＡＮドライバ１２３とを備え、サーバ情報処理装置１２０ｂは、ＤＢＭＳ＿Ｂ１２１ｂと、データベースドライバデータベースドライバＢ１２２ｂと、ＬＡＮドライバ１２３とを備える。サーバ情報処理装置１２０ａ，１２０ｂは、ＤＢＭＳ＿Ａ１２１ａ、ＤＢＭＳ＿Ｂ１２１ｂにより、受け付けたデータベースアクセス要求に対して応答する。サーバ情報処理装置１２０ａのＤＢＭＳ＿Ａ１２１ａと、データベースドライバＡ１２２ａと、ＬＡＮドライバ１２３とは、サーバ情報処理装置１２０ａの主記憶装置１００１上に保持されたインストラクションを、サーバ情報処理装置１２０ａのＣＰＵ１０００が実行することにより実現される。サーバ情報処理装置１２０ｂのＤＢＭＳ＿Ｂ１２１ｂと、データベースドライバデータベースドライバＢ１２２ｂと、ＬＡＮドライバ１２３とは、サーバ情報処理装置１２０ｂの主記憶装置１００１上に保持されたインストラクションを、サーバ情報処理装置１２０ｂのＣＰＵ１０００が実行することにより実現される。
【００４２】
ネームサーバ情報処理装置１５０は、ネームサーバ１５１と、ＲＰＣドライバ１０２と、ＬＡＮドライバ１２３とを備え、ＲＰＣで呼び出す各サーバ・コンポーネント（アクセス管理コンポーネント１１２ｖや、ＳＱＬ変換手段１１５など）の識別情報と、ネットワーク上の物理位置との対応情報を提供するサービスを行うネームサーバ１５１が動作する情報処理装置である。ネームサーバ情報処理装置１５０のネームサーバ１５１と、ＲＰＣドライバ１０２と、ＬＡＮドライバ１２３とは、ネームサーバ情報処理装置１５０の主記憶装置１００１上に保持されたインストラクションを、ネームサーバ情報処理装置１５０のＣＰＵ１０００が実行することにより実現される。
【００４３】
ゲートウェイ情報処理装置１３０は、アクセス管理コンポーネント１１２ｖと、２種類のデータベース・アクセス言語変換手段（本実施例では、データベース・アクセス言語として、ＳＱＬを用いるので、ここでは、ＳＱＬ変換手段と呼ぶ。本実施例では、ＳＱＬ変換手段Ａ１１５ａおよびＳＱＬ変換手段Ｂ１１５ｂがある）およびデータベースドライバ（データベースドライバＡ１２２ａおよびデータベースドライバＢ１２２ｂ）と、ＲＰＣドライバ１０２と、ＬＡＮドライバ１２３とを備え、ＲＰＣを処理するゲートウェイである。ゲートウェイ情報処理装置１３０のアクセス管理コンポーネント１１２ｖと、ＳＱＬ変換手段Ａ１１５とａ、ＳＱＬ変換手段Ｂ１１５ｂと、データベースドライバＡ１２２ａと、データベースドライバＢ１２２ｂと、ＲＰＣドライバ１０２と、ＬＡＮドライバ１２３とは、ゲートウェイ情報処理装置１３０の主記憶装置１００１上に保持されたインストラクションを、ゲートウェイ情報処理装置１３０のＣＰＵ１０００が実行することにより実現される。
【００４４】
なお、アクセス管理コンポーネント１１２ｖと、ゲートウェイ情報処理装置１３０のＲＰＣドライバ１０２とを合わせて、アクセス管理手段と呼ぶ。
【００４５】
ＤＢＭＳ＿Ａ１２１ａ、ＤＢＭＳ＿Ｂ１２１ｂによって管理されているデータベースのデータは、上述の従来例と同様に、外部記憶装置に格納されるが、図が煩雑になるのを防ぐため、図１では外部記憶装置およびデータベースの図示を省略している（以下の実施例についても同様に省略する）。
【００４６】
Ｂ．ＳＱＬ＿ＲＰＣの処理
アプリケーション・ソフトウェア実行手段１１１からのデータベース・アクセスは、アプリケーション・ソフトウェア実行手段１１１の発行したＳＱＬ文に対応するＲＰＣ（パラメタとして該ＳＱＬ文の指定されたＲＰＣ。以下、ＳＱＬ＿ＲＰＣと呼ぶ）の実行によって行なわれる。
【００４７】
なお、ここでは、アプリケーション・ソフトウェア実行手段１１１が使用するＳＱＬ仕様を、本実施例１のシステムにおける標準仕様と呼ぶことにする。本実施例１では、ＤＢＭＳ＿Ａ１２１ａ、ＤＢＭＳ＿Ｂ１２１ｂはこの標準仕様とは異なるＳＱＬ仕様を用いている。
【００４８】
アプリケーション・ソフトウェア実行手段１１１からＳＱＬ＿ＲＰＣが発行されると、クライアント情報処理装置１１０上のＲＰＣドライバ１０２は、まず、ネームサーバ情報処理装置１５０上のネームサーバ１５１に、このＳＱＬ文を処理するサーバのネットワーク・アドレスとサーバ・コンポーネントへの接続のためのポート番号を問い合わせる。
【００４９】
本実施例１では、このＳＱＬ＿ＲＰＣを処理するサーバは、ゲートウェイ情報処理装置１３０上のアクセス管理コンポーネント１１２ｖであるので、この問い合わせに対して、ネームサーバ１５１は、ゲートウェイ情報処理装置１３０のネットワーク・アドレス情報とアクセス管理コンポーネント１１２ｖのポート番号を返す。
【００５０】
これらの情報をもとに、クライアント情報処理装置１１０上のＲＰＣドライバ１０２は、ゲートウェイ情報処理装置１３０上のアクセス管理コンポーネント１１２ｖとＲＰＣ接続を行い、処理対象のＳＱＬ＿ＲＰＣの処理をアクセス管理コンポーネント１１２ｖへ依頼する。
【００５１】
アクセス管理コンポーネント１１２ｖは、処理を依頼されたＳＱＬ＿ＲＰＣのパラメータに含まれるターゲットＤＢＭＳの名称をネームサーバ１５１に通知して、使用すべきＳＱＬ変換コンポーネントを問い合わせる。本実施例１では、ネームサーバ１５１は、ＳＱＬ変換手段Ａ１１５ａまたは、ＳＱＬ変換手段Ｂ１１５ｂのネットワーク・アドレス情報とポート番号を応答するので、アクセス管理コンポーネント１１２ｖは、ネームサーバ１５１から返された該情報をもとに、該情報により定められる何れかのＳＱＬ変換手段に、ＳＱＬ文の変換とターゲットＤＢＭＳへのアクセス処理とをＲＰＣを用いて依頼する。
【００５２】
ＳＱＬ変換手段Ａ１１５ａまたはＳＱＬ変換手段Ｂ１１５ｂが行った各ＤＢＭＳへのアクセス結果は、上述の経路を逆に辿り、前記ＳＱＬ変換手段Ａ１１５ａまたはＳＱＬ変換手段Ｂ１１５ｂによって、標準のデータ形式、および標準のリターン・コードに変換した後、アクセス管理コンポーネント１１２ｖを介してアプリケーション・ソフトウェア実行手段１１１に送られる。
【００５３】
上述のＳＱＬ＿ＲＰＣの処理を図４のフローチャートに示す。
（１）ＲＰＣドライバ１０２の処理
クライアント情報処理装置１１０のアプリケーション・ソフトウェア１１１がＳＱＬ＿ＲＰＣを発行すると、クライアント情報処理装置１１０のＲＰＣドライバ１０２は、まず、ネームサーバ情報処理装置１５０上のネームサーバ１５１に、該ＳＱＬ＿ＲＰＣを処理するサーバの物理位置、すなわちネットワーク・アドレスとサーバ・コンポーネントのポート番号を問い合わせ（ステップ４５０）、得られたポート番号を用いて、ゲートウェイ情報処理装置１３０上のアクセス管理コンポーネント１１２ｖとのＲＰＣ接続を行い、ＳＱＬ＿ＲＰＣの処理を該アクセス管理コンポーネント１１２ｖへ依頼する（ステップ４５１）。
【００５４】
（２）ネームサーバ１５１の処理
本実施例のネームサーバ情報処理装置１５０は、サーバ・コンポーネントの識別情報とアドレス等を保持するサーバ情報テーブルを備える。本実施例１のサーバ情報テーブルの一例を図３５に示す。サーバ情報テーブルは、サーバ・コンポーネント名格納領域（列１７０１）ごとに、アドレス格納領域（列１７０２）と、ポート番号格納領域（列１７０３）と、状態格納領域（列１７０４）とを備える配列構造を有している。なお、状態格納領域（列１７０４）には、各コンポーネントのステータスが保持されており、動作中のサーバでは”ＲＵＮ”、停止中のサーバでは”ＳＴＯＰ”、故障中のサーバでは”ＦＡＵＬＴ”となっている。
【００５５】
上述のステップ４５０等において、サーバの物理位置の問い合わせを受けたネームサーバ１５１は、このサーバ情報テーブルを参照して、状態格納領域に保持された値が”ＲＵＮ”であれば、問い合わせられた名称に対応して保持されている該サーバ・コンポーネントのネットワーク・アドレスとポート番号とを返答する。
【００５６】
（３）アクセス管理コンポーネント１１２ｖの処理
ステップ４０１〜４１１は、依頼を受けたアクセス管理コンポーネント１１２ｖの処理内容である。ステップ４５１で依頼を受けたアクセス管理コンポーネント１１２ｖは、まず、ＳＱＬ＿ＲＰＣのパラメータとして送られてきたＳＱＬ文を解析し、アクセス先のテーブルが含まれるＤＢＭＳの名称を得る（ステップ４０１）。
【００５７】
なお、本実施例１では、アクセス管理コンポーネント１１２ｖは、単一のＤＢＭＳ上のテーブルに対する操作だけでなく、異なるＤＢＭＳの管理する複数のデータベースに跨る複数のテーブルのデータの検索、結合などの操作を行えるようにした。そこで、本実施例１のアクセス管理コンポーネント１１２ｖは、アクセス先がＤＢＭＳ＿Ａ１２１ａとＤＢＭＳ＿Ｂ１２１ｂとの両方か（ステップ４０２）、ＤＢＭＳ＿Ａ１２１ａだけか（ステップ４０３）、ＤＢＭＳ＿Ｂ１２１ｂだけか（ステップ４０４）を判断する。
【００５８】
アクセス先がＤＢＭＳ＿Ａ１２１ａとＤＢＭＳ＿Ｂ１２１ｂの両方の場合、アクセス管理コンポーネント１１２ｖは、処理対象のＳＱＬ文をＤＢＭＳ＿Ａ１２１ａに対するアクセスとＤＢＭＳ＿Ｂ１２１ｂに対するアクセスに分割したＳＱＬ文を作成する（ステップ４０６）。つぎに、アクセス管理コンポーネント１１２ｖは、ＤＢＭＳ＿Ａ１２１ａに対するＳＱＬ文をパラメータとしたＲＰＣ（ＳＱＬ＿Ａ＿ＲＰＣと呼ぶ）を実行し、その結果を得（ステップ４０７）、さらに、ＤＢＭＳ＿Ｂ１２１ｂに対するＳＱＬ文をパラメータとしたＲＰＣ（ＳＱＬ＿Ｂ＿ＲＰＣと呼ぶ）を実行し、その結果を得る（ステップ４０８）。最後に、アクセス管理コンポーネント１１２ｖは、ステップ４０７、４０８で得た結果をマージして、分割を行う前のＳＱＬ文に対応する結果を作成し（ステップ４０９）、ＳＱＬ＿ＲＰＣの処理を完了する（ステップ４１２）。
【００５９】
アクセス先がＤＢＭＳ＿Ａ１２１ａ一方のみの場合、アクセス管理コンポーネント１１２ｖは、処理対象のＳＱＬ文をパラメータとしたＲＰＣ（ＳＱＬ＿Ａ＿ＲＰＣ）を発行してアクセス結果を得（ステップ４１０）、ＳＱＬ＿ＲＰＣの処理を完了する（ステップ４１２）。
【００６０】
アクセス先がＤＢＭＳ＿Ｂ１２１ｂ一方のみの場合、アクセス管理コンポーネント１１２ｖは、処理対象のＳＱＬ文をパラメータとしたＲＰＣ（ＳＱＬ＿Ｂ＿ＲＰＣ）を発行してアクセス結果を得（ステップ４１１）、ＳＱＬ＿ＲＰＣの処理を完了する（ステップ４１２）。
【００６１】
なお、アクセス先がＤＢＭＳ＿Ａ１２１ａおよびＤＢＭＳ＿Ｂ１２１ｂのいずれでもない場合、アクセス管理コンポーネント１１２ｖは、エラーコードをセットし（ステップ４０５）、ＳＱＬ＿ＲＰＣの処理を終了する（ステップ４１２）。
【００６２】
（４）ＳＱＬ＿ＲＰＣの分割（ステップ４０６）
アクセス管理コンポーネント１１２ｖは、処理対象のＳＱＬ文が複数のデータベースに対する処理の指示を含むことを検出すると、アクセス対象ごとに分割したＳＱＬ＿ＲＰＣを作成する（ステップ４０６）。図２３に示したセレクト構文の例を用いて、アクセス管理コンポーネント１１２ｖの作成するＳＱＬ文を説明する。なお、セレクト構文は、ＷＨＥＲＥ句により指定した条件を満たすレコードを、ＦＲＯＭ句に記述したアクセス対象から検索し、該レコードのＳＥＬＥＣＴ句に指定されたデータを構成要素とするテーブルを得るための質問指定の構文である。
【００６３】
アプリケーション・ソフトウェア実行手段１１１が発行するＳＱＬ文２３０１は、”ＤＢＭＳ＿Ａ”という名称のデータベース管理システムの管理する”ＳＡＬＥＳ”というテーブルと、”ＤＢＭＳ＿Ｂ”という名称のデータベース管理システムの管理する”ＳＡＬＥＳＤＡＴＡ”というテーブルから、”ＳａｌｅＮｕｍ”カラムの内容が０でないレコードを検索し、そのレコードの”Ｎａｍｅ”カラムの内容と”ＳａｌｅＮｕｍ”カラムの内容とのテーブルを作成することを指示するものである。
【００６４】
アクセス管理コンポーネント１１２ｖは、このＳＱＬ文２３０１を、ＤＢＭＳ＿Ａに対するＳＱＬ文２３０２と、ＤＢＭＳ＿Ｂに対するＳＱＬ文２３０３に分割し、それぞれのＳＱＬ文をパラメータとしたＲＰＣを発行して、その応答を結合してＳＱＬ文２３０１に対する応答であるテーブルを作成するのである。
【００６５】
ＳＱＬ文２３０２は、”ＤＢＭＳ＿Ａ”という名称のデータベース管理システムの管理する”ＳＡＬＥＳ”というテーブルから、”ＳａｌｅＮｕｍ”カラムの内容が０でないレコードを検索し、そのレコードの”Ｎａｍｅ”カラムの内容と”ＳａｌｅＮｕｍ”カラムの内容とのテーブルを作成することを意味する。
【００６６】
ＳＱＬ文２３０３は、”ＤＢＭＳ＿Ｂ”という名称のデータベース管理システムの管理する”ＳＡＬＥＳＤＡＴＡ”というテーブルから、”ＳａｌｅＮｕｍ”カラムの内容が０でないレコードを検索し、そのレコードの”Ｎａｍｅ”カラムの内容と”ＳａｌｅＮｕｍ”カラムの内容とのテーブルを作成することを意味する。
【００６７】
（５）単一ＤＢＭＳへのアクセスを指示するＳＱＬ＿ＲＰＣの処理（ステップ４０７，４１０（ＳＱＬ＿Ａ＿ＲＰＣの処理）、ステップ４０８，４１１（ＳＱＬ＿Ｂ＿ＲＰＣの処理））
単一ＤＢＭＳへのアクセスを指示するＳＱＬ＿ＲＰＣ（以下、ＳＱＬ＿ｘ＿ＲＰＣと呼ぶ）の処理を図５に示す。ＳＱＬ＿ｘ＿ＲＰＣの処理では、まず、ゲートウェイ情報処理装置１３０のＲＰＣドライバ１０２が、ＳＱＬ＿ｘ＿ＲＰＣを処理するサーバ・コンポーネント（本実施例１ではＳＱＬ変換手段Ａ１１５ａあるいはＳＱＬ変換手段Ｂ１１５ｂ）のネットワーク・アドレス情報とポート番号とを、ネームサーバ１５１に問い合わせ、その問い合わせの応答として取得する（ステップ５０１）。
【００６８】
次に、ゲートウェイ情報処理装置１３０のＲＰＣドライバ１０２は、ステップ５０１の問い合わせによって検出したＳＱＬ変換手段１１５に対し、ＳＱＬ＿ｘ＿ＲＰＣを引き渡し、その処理を依頼する（ステップ５０２）。
【００６９】
なお、本実施例１では、ステップ５０１において問い合わせを行なったＲＰＣドライバ１０２と、ＳＱＬ変換手段Ａ１１５ａおよびＳＱＬ変換手段Ｂ１１５ｂとが、いずれも同じゲートウェイ情報処理装置１３０にあることから、ＲＰＣドライバ１０２は、ネットワーク・アドレス情報とポート番号とを用いなくても、ＳＱＬ＿ｘ＿ＲＰＣをＳＱＬ変換手段１１５に通知することができる。そこで、本実施例１では、ステップ５０１の処理を省略してもよい。
【００７０】
ステップ５０３、５０４、５０５は処理を依頼されたＳＱＬ変換手段１１５の処理である。ＳＱＬ変換手段１１５は、ＲＰＣのパラメータとして受け取った標準仕様のＳＱＬ文をターゲットＤＢＭＳのＳＱＬ仕様に変換する（ステップ５０３）。次に、ＳＱＬ変換手段１１５は、変換によって作成したＳＱＬ文をターゲットＤＢＭＳに送り、ターゲットＤＢＭＳでの前記ＳＱＬ文の実行結果を得る（ステップ５０４）。さらに、ＳＱＬ変換手段１１５は、実行結果として得たデータおよびリターンコードを、ターゲットＤＢＭＳのＳＱＬ仕様から標準のＳＱＬ仕様に変換する（ステップ５０５）。最後に、ＳＱＬ変換手段１１５は、変換結果をリターンデータ、リターンコードとして、ＳＱＬ＿ｘ＿ＲＰＣの処理を終了する（ステップ５０６）。
【００７１】
つぎに、各ＳＱＬ変換手段１１５ａ，ｂによるＳＱＬ文の変換（ステップ５０３）を図２４に示した例を用いて説明する。ＳＱＬ変換手段１１５ａ，ｂは、入力されたＳＱＬ構文を、それぞれのターゲットとするＤＢＭＳのＳＱＬ仕様に変換する。なお、ステップ５０５では、この逆の変換が行なわれる。
【００７２】
本実施例１における標準仕様のＳＱＬでは、”等しくない”ことを示す演算子は、”＜＞”であるが、ＤＢＭＳ＿Ａ１２１ａのＳＱＬ仕様では”！＝”を、ＤＢＭＳ＿Ｂ  １２１ｂのＳＱＬ仕様では”＾＝”を用いるとする。この場合、ＳＱＬ変換手段Ａ１１５ａは、標準仕様のＳＱＬ文２３０２（図２３に図示）を、図２４の構文２４０２に示すように変換する。すなわち、ＳＱＬ変換手段Ａ１１５ａは、構文２３０２の”＜＞”を”！＝”に変換する。また、ＳＱＬ変換手段Ｂ１１５ｂは、標準仕様のＳＱＬ文２３０３（図２３に図示）を、図２４の構文２４０３に示すように変換する。すなわち、ＳＱＬ変換手段Ｂ１１５ｂは、構文２３０２の”＜＞”を”＾＝”に変換する。
【００７３】
以上説明したように、アクセス管理コンポーネント１１２ｖ、ＳＱＬ変換手段Ａ１１５ａ、ＳＱＬ変換手段Ｂ１１５ｂを具備することによって、アプリケーション・ソフトウェア実行手段１１１からは、仕様の異なる複数のＤＢＭＳ上のテーブルを、その仕様の違いを意識すること無く、単一の標準仕様のＳＱＬ文を用いてアクセスすることができる。
【００７４】
（６）ゲートウェイ情報処理装置１３０内のプロセスの生成、消滅
本実施例１におけるゲートウェイ情報処理装置１３０内のプログラムの動作の一例を図１０に示す。ここでは、クライアント情報処理装置を２台接続し、クライアント情報処理装置１１０ａからはサーバ情報処理装置１２０ａ上のＤＢＭＳ＿Ａとサーバ情報処理装置１２０ｂ上のＤＢＭＳ＿Ｂを、クライアント情報処理装置１１０ｂからはサーバ情報処理装置１２０ｂ上のＤＢＭＳ＿Ｂをアクセスする場合を示す。
【００７５】
アクセス管理コンポーネント１１２ｖでは、クライアント情報処理装置との接続単位にプロセスが生成される。ＳＱＬ変換手段Ａ１１５ａ、ＳＱＬ変換手段Ｂ１１５ｂについても、アクセス管理コンポーネント１１２ｖの各プロセスからのアクセス要求がＲＰＣを用いて発行される毎にプロセスが生成される。また、データベース・ドライバＡ１２２ａ、データベース・ドライバＢ１２２ｂは、それぞれＳＱＬ変換手段Ａ１１５ａ、ＳＱＬ変換手段Ｂ１１５ｂの各１プロセスに対して１プロセスが生成されるように動作する。
【００７６】
これらのプロセスは、アクセスの終了と共に消滅する。このようなプロセス生成・消滅をゲートウェイ情報処理装置１３０で行うことによって、複数のクライアント情報処理装置から複数のサーバ情報処理装置へのアクセスを同時に処理することができる。
【００７７】
Ｃ．適用例
ネットワーク１００に、互いに異なる仕様を有するデータベース管理システムを備える２つの既存のシステム６００ａと６００ｂとが接続されているネットワーク１００に本実施例１の異種データベースアクセスシステムを適用する場合の例を、図１８を用いて説明する。
【００７８】
システム６００ａは、ＤＢＭＳ＿Ａを用いたサーバ情報処理装置１２１ａとＤＢＭＳ＿Ａ専用のデータベースドライバＡ、アプリケーション・ソフトウェアＡ実行手段が搭載されたクライアント情報処理装置１１０ａから構成される。また、システム６００ｂは、ＤＢＭＳ＿Ｂを用いたサーバ情報処理装置１２１ｂとＤＢＭＳ＿Ｂ専用のデータベースドライバＢ、アプリケーション・ソフトウェアＢが搭載されたクライアント情報処理装置１１０ｂから構成される。
【００７９】
これらの既存のシステムに、上述のゲートウェイ情報処理装置１３０、ネームサーバ情報処理装置１５０、クライアント情報処理装置１１０からなる付加システム５００を付加することによって、既存のシステム６００ａ、６００ｂの構成を何等変更することなく、追加したクライアント情報処理装置１１０から単一の標準仕様のＳＱＬ文を用いて、仕様の異なる複数のＤＢＭＳにアクセスすることができる。
【００８０】
（実施例２）
ところで、本発明では、アプリケーション・ソフトウェア実行手段１１１からアクセス管理コンポーネント１１２ｖへのアクセスと、該アクセス管理コンポーネント１１２ｖからのＳＱＬ変換手段１１５へのアクセスにＲＰＣを用いている。このため、実施例１に示した異種データベース・アクセス・システムにおけるゲートウェイ情報処理装置１３０への負荷集中によるデータベース・アクセス性能の低下を、ゲートウェイ情報処理装置１３０の追加によって容易に回避できる。本実施例２では、ゲートウェイ情報処理装置１３０を追加した場合の実施例を説明する。
【００８１】
本実施例２では、図９の構成図に示すように、ＳＱＬ変換手段Ａ１１５ａを具備したゲートウェイ情報処理装置１３０ａと、ＳＱＬ変換手段Ｂ１１５ｂを具備したゲートウェイ情報処理装置１３０ｂの２台のゲートウェイ情報処理装置がネットワーク１００に接続されている。すなわち、本実施例２は、ＳＱＬ変換手段１１５ごとにゲートウェイ情報処理装置１３０が設けられている点で実施例１とは異なる。
【００８２】
クライアント情報処理装置１１０上のＲＰＣドライバ１０２は、実施例１と同様、アプリケーション・ソフトウェア実行手段１１１が発行するＳＱＬ＿ＲＰＣを受け付けると、まず、該ＳＱＬ＿ＲＰＣを処理するサーバの物理位置すなわちネットワーク・アドレスとポート番号をネームサーバ１５１に問い合わせる。
【００８３】
本実施例２のサーバ情報テーブルは、図１７に示すように、一つのサーバ・コンポーネント名に対応して、複数のサーバの情報（アドレス、ポート番号、および状態）が保持されている。そこで、本実施例２のネームサーバ１５１は、サーバ情報テーブル１７００を参照し、指定されたサーバ・コンポーネント名に対応する稼働中のすべてのサーバ・コンポーネントのネットワーク・アドレスおよびポート番号を返答する。すなわち、ネームサーバ１５１は、列１７０１に指定されたサーバ・コンポーネント名が保持されていおり、かつ、列１７０４に”ＲＵＮ”が保持されているすべての行の、列１７０２に保持されているデータ（ネットワーク・アドレス）および列１７０３に保持されているデータ（ポート番号）を返答する。
【００８４】
本実施例２では、前記ＳＱＬ＿ＲＰＣを処理するサーバすなわちアクセス管理コンポーネント１１２ｖは、ゲートウェイ情報処理装置１３０ａと１３０ｂとの両方に搭載されており、ネームサーバ１５１からは、前記問い合わせに対して２つのアクセス管理コンポーネント１１２ｖの物理位置が返答される。クライアント情報処理装置１１０上のＲＰＣドライバ１０２は、第１の選択手段として、返答された複数のアクセス管理コンポーネント１１２ｖの中から、一つを選択し、処理を依頼する。
【００８５】
なお、本実施例２の異種データベースアクセスシステムの各構成要素の処理は、ここに特に記述した処理以外は、実施例１の場合と同様である。
【００８６】
Ａ．動作例
つぎに、ゲートウェイ情報処理装置１３０ａ上のアクセス管理コンポーネント１１２ｖが選択された場合の動作を説明する。
【００８７】
アプリケーション・ソフトウェア実行手段１１１から発行されるＳＱＬ＿ＲＰＣは、まず、クライアント情報処理装置１１０のＲＰＣドライバ１０２により、ゲートウェイ情報処理装置１３０ａ上のアクセス管理コンポーネント１１２ｖに送られる。
【００８８】
ゲートウェイ情報処理装置１３０ａのアクセス管理コンポーネント１１２ｖは、すでに図４を用いて説明したように、受け付けたＳＱＬ＿ＲＰＣのターゲットのＤＢＭＳに応じて、ＳＱＬ＿Ａ＿ＲＰＣおよび／またはＳＱＬ＿Ｂ＿ＲＰＣを発行する。つぎに、アクセス管理コンポーネント１１２ａは、発行したＳＱＬ＿ｘ＿ＲＰＣがＳＱＬ＿Ａ＿ＲＰＣであれば、ＳＱＬ変換手段Ａ１１５ａに通知して処理させ、発行したＳＱＬ＿ｘ＿ＲＰＣがＳＱＬ＿Ｂ＿ＲＰＣであれば、ＳＱＬ変換手段Ｂ１１５ｂに通知して処理させる。
【００８９】
なお、本実施例２のシステムでは、ＳＱＬ＿Ｂ＿ＲＰＣを処理するＳＱＬ変換手段Ｂ１１５ｂは、処理を依頼されたアクセス管理コンポーネント１１２ａが存在するゲートウェイ情報処理装置１３０ａとは別のゲートウェイ情報処理装置１３０ｂに存在する。従って、ゲートウェイ情報処理装置１３０ａのＲＰＣドライバ１０２は、ＳＱＬ＿Ｂ＿ＲＰＣを、ＬＡＮ１００を経由してゲートウェイ情報処理装置１３０ｂ上のＳＱＬ変換手段Ｂ１１５ｂに通知する。複数のＳＱＬ変換手段Ｂ１１５ｂを備えるシステムにおいては、ゲートウェイ情報処理装置１３０ａのＲＰＣドライバ１０２は、第２の選択手段として、上述のクライアント情報処理装置１１０のＲＰＣドライバ１０２と同様の手順により、通知するＳＱＬ変換手段Ｂ１１５ｂを選択するようにしてもよい。
【００９０】
このように、本実施例２では、ＳＱＬ変換手段１１５へのアクセスをＲＰＣを用いて行い、ゲートウェイ情報処理装置１３０上のＲＰＣドライバ１０２が、処理を依頼するＳＱＬ変換手段１１５の選択を行うので、ＳＱＬ変換手段１１５が複数のゲートウェイ情報処理装置１３０上に分散していても、アプリケーション・ソフトウェア実行手段１１１がその位置を意識することなくアクセスすることができる。したがって、システム内に存在する種々のＤＢＭＳに対応したＳＱＬ変換手段１１５は、システム内のどれかのゲートウェイ情報処理装置１３０にあればよく、すべてのＳＱＬ変換手段１１５を各ゲートウェイ情報処理装置１３０が持つ必要はない。これによって、各ゲートウェイ情報処理装置１３０への負荷集中の回避、ＳＱＬ変換手段１１５の導入やメンテナンス工数の低減を図ることができる。
【００９１】
Ｂ．選択方法
クライアント情報処理装置１１０上のＲＰＣドライバ１０２は、アクセス管理コンポーネント１１２ｖの選択を実行し、ＳＱＬ＿ＲＰＣを通知する。また、ゲートウェイ情報処理装置１３０ａおよび１３０ｂ上のＲＰＣドライバ１０２は、ＳＱＬ変換手段Ａ１１５ａまたはＳＱＬ変換手段Ｂ１１５ｂの選択を実行し、ＳＱＬ＿ｘ＿ＲＰＣを通知する。そこで、ネームサーバ１５１への問い合わせの結果、複数の候補が該ネームサーバ１５１から返答されたときの、ＲＰＣドライバ１０２の、通知対象の選択方法の例について以下に示す。
【００９２】
（１）無作為選択
第一の選択方法は、複数の候補からランダムに選択する方法である。図１２に示すように、候補の数が２以上のときは（ステップ１２０１）乱数を発生させ（ステップ１２０２）、該乱数を候補の数Ｎで割りその剰余を求め（ステップ１２０３）、該剰余＋１番目の候補をサーバコンポーネントとして選択（ステップ１２０４）する方法などが考えられる。
【００９３】
（２）優先順位による選択
第二の選択方法は、予め登録した優先順位を用いる方法である。この方法では、サーバコンポーネントの優先順位を例えば図１３に示すようなテーブル形式で、ＲＰＣドライバ１０２の参照可能なファイルなどに予め格納しておき、ＲＰＣドライバ１０２は、ネームサーバ１５１から返答された複数の候補の内、優先順位の高いサーバ・コンポーネントを選択する。
【００９４】
なお、図１３の列１３０１は優先順位、列１３０２はサーバ名称の格納領域である。この方法を用いる場合、ＲＰＣを発行するコンポーネントと同じ情報処理装置上にサーバコンポーネントが存在する場合に、そのサーバ・コンポーネントを高い優先順位に設定すれば、ネットワークを経由することによるオーバーヘッドを抑えることができる。
【００９５】
（３）負荷状態による選択
第三の方法は、各ゲートウェイサーバ情報処理装置１３０の負荷の状態によって、選択する方法である。負荷状態とは、例えば、ゲートウェイサーバ情報処理装置１３０で動作中のあらゆるプログラムのインストラクションのＣＰＵ占有率や、外部記憶装置へのアクセス頻度である。この方法を用いるときは、問い合わせに対して、各ゲートウェイ・サーバのオペレーティング・システム（ＯＳ）が提供するＣＰＵや外部記憶装置などの負荷状態を返答する負荷情報通知手段（図示せず）を、各ゲートウェイサーバ情報処理装置１３０に設ける。また、各ＲＰＣドライバ１０２の記憶領域（図示せず）に、サーバ・コンポーネント（アクセス管理コンポーネント１１２ｖまたはＳＱＬ変換手段１１５）の候補の数（Ｎとする）の格納領域、カウンタ用変数（ｃとする）の格納領域、最小負荷サーバ・ナンバー記憶変数（ｎとする）の格納領域、最小負荷記憶変数（ＬＭＩＮとする）格納領域、および負荷状態を示す変数（Ｌとする）の格納領域を備える。この第三の方法による選択処理の手順を図１４に示す。なお、負荷情報通知手段は、ゲートウェイサーバ情報処理装置１３０の主記憶装置１００１に保持されたインストラクションを、ゲートウェイサーバ情報処理装置１３０のＣＰＵが実行することにより実現される。
【００９６】
ＲＰＣドライバ１０２は、サーバ・コンポーネント候補数Ｎ格納領域、カウンタ用変数ｃ格納領域、最小負荷サーバ・ナンバー記憶変数ｎ格納領域、最小負荷記憶変数ＬＭＩＮ格納領域を初期化する（ステップ１４０１）。なお、ステップ１４０１における初期化とは、各格納領域に初期値を格納することであり、本実施例２では、サーバ・コンポーネント候補数Ｎの初期値は、通知された候補数、カウンタ用変数ｃおよび最小負荷サーバ・ナンバー記憶変数ｎの初期値はそれぞれ１、最小負荷記憶変数ＬＭＩＮの初期値は１００である。
【００９７】
つぎに、ＲＰＣドライバ１０２は、サーバ・コンポーネント候補が複数かどうかを調べ、１個だけなら、負荷を調べる必要がないのでステップ１４１０に制御を移して、選択結果を、候補に挙げられているサーバ・コンポーネントとする（ステップ１４０２）。
【００９８】
サーバ・コンポーネント候補が複数の場合には、ＲＰＣドライバ１０２は、ｃ番目の候補のサーバ・コンポーネントの備えられているゲートウェイサーバ情報処理装置１３０の負荷情報通知手段に負荷情報を問い合わせ（ステップ１４０３）、サーバ・コンポーネントから返された負荷状態を示す数値を変数Ｌの格納領域に格納する（ステップ１４０４）。ここで、負荷状態を示す数値は、０から１００までの数値（百分率）で表わされる。例えば、ゲートウェイサーバ情報処理装置１３０で並列実行しているプログラムが多いほど、値が大きい。これに対し、実行しているプログラムが存在しない場合は、０近傍の値となる。
【００９９】
次に、ＲＰＣドライバ１０２は、それまでに調べた他のサーバの負荷の最小値ＬＭＩＮと前記変数Ｌとを比較し（ステップ１４０５）、変数Ｌの方が小さいときは、ＬＭＩＮにＬの値を格納し（ステップ１４０６）、最小負荷サーバ・ナンバーｎに上記調査を行ったサーバ・コンポーネントの候補番号すなわちｃの値を格納する（ステップ１４０７）。こののち、ＲＰＣドライバ１０２は、カウンタ用変数ｃの値を１増やし（ステップ１４０８）、最後の候補まで負荷の調査が終わったかどうかを調べ（ステップ１４０９）、まだの場合には、ステップ１４０３〜１４０９を繰り返す。
【０１００】
このようにして、最小の負荷であったサーバ・コンポーネントの候補番号がｎ格納領域に保持されるので、ＲＰＣドライバ１０２は、ｎ格納領域に保持された候補番号で示されるサーバ・コンポーネントを選択し処理を終了する（ステップ１４１０）。
【０１０１】
この方法によれば、負荷の小さな情報処理装置上のサーバ・コンポーネントを選択できるので、負荷が一台の情報処理装置に集中することを回避でき、高速に処理を実行できる。なお、負荷情報通知手段を、各サーバ・コンポーネントごとに設けてもよい。この場合、ステップ１４０３における問い合わせは、候補となったサーバ・コンポーネントごとに行なわれる。このようにすれば、情報処理装置全体ではなく、各サーバ・コンポーネントの負荷状態に応じて使用するサーバ・コンポーネントを決定することができる。
【０１０２】
（４）応答時間による選択
第四の選択方法は、各ゲートウェイサーバ情報処理装置１３０からの応答時間をもとに選択する方法である。この方法を用いる場合は、各ＲＰＣドライバ１０２の記憶領域（図示せず）に、サーバ・コンポーネント（アクセス管理コンポーネント１１２ｖまたはＳＱＬ変換手段１１５）の候補の数（Ｎとする）の格納領域、カウンタ用変数（ｃとする）の格納領域、最小応答時間サーバ・ナンバー記憶変数（ｎとする）格納領域、最小応答時間記憶変数（ＲＭＩＮとする）格納領域、および応答時間（Ｒとする）格納領域を備える。この第四の方法による選択処理の手順を図１５に示す。
【０１０３】
ＲＰＣドライバ１０２は、サーバ・コンポーネント候補数Ｎ格納領域、カウンタ用変数ｃ格納領域、最小応答時間サーバ・ナンバー記憶変数ｎ格納領域、および最小応答時間記憶変数ＲＭＩＮ格納領域を初期化する（ステップ１５０１）。なお、ステップ１５０１における初期化とは、各格納領域に初期値を格納することであり、本実施例２では、サーバ・コンポーネント候補数Ｎの初期値は、通知された候補数、カウンタ用変数ｃおよび最小負荷サーバ・ナンバー記憶変数ｎの初期値はそれぞれ１、最小応答時間記憶変数ＲＭＩＮの初期値は１００である。
【０１０４】
つぎに、ＲＰＣドライバ１０２は、サーバ・コンポーネント候補が複数かどうかを調べ、１個だけなら応答時間を調べる必要がないのでステップ１５１０に制御を移す（ステップ１５０２）。
【０１０５】
サーバ・コンポーネント候補が複数の場合には、ＲＰＣドライバ１０２は、ｃ番目の候補のサーバ・コンポーネントに応答時間計測のためのダミーのＲＰＣを発行し（ステップ１５０３）、このＲＰＣに対する応答時間を変数Ｒ格納領域に格納する（ステップ１５０４）。
【０１０６】
次に、ＲＰＣドライバ１０２は、それまでに調べた他のサーバ・コンポーネントの応答時間の最小値ＲＭＩＮと変数Ｒとを比較し（ステップ１５０５）、変数Ｒの方が小さければＲＭＩＮにＲの値を格納する（ステップ１５０６）。こののち、ＲＰＣドライバ１０２は、最小応答時間サーバ・ナンバーｎに前記調査を行ったサーバ・コンポーネントの候補番号すなわちｃの値を格納して（ステップ１５０７）、カウンタ用変数ｃを１増やす（ステップ１５０８）。さらに、ＲＰＣドライバ１０２は、最後の候補まで応答時間の調査が終わったかどうかを調べ（ステップ１５０９）、まだの場合にはステップ１５０３〜１５０９を繰り返す。
【０１０７】
このようにして、すべての候補の調査が終わると（ステップ１５０９）、最小の応答時間であったサーバ・コンポーネントの候補番号がｎ格納領域に保持されていることになるので、ＲＰＣドライバ１０２は、候補番号ｎで示されるサーバ・コンポーネントを選択し、処理を終了する（ステップ１５１０）。
【０１０８】
上述の応答時間は、サーバ・コンポーネントが搭載された情報処理装置の性能および負荷状態、該情報処理装置までの通信経路の距離、通信経路の混み具合などを反映したものであるので、応答時間が最小のサーバ・コンポーネントを採用することによって、最適な処理を行うことができる。
【０１０９】
（５）ブロードキャスト通信を用いた応答時間による選択
応答時間によるサーバ・コンポーネントの選択は、ブロードキャスト通信を使うことによって、上述した第四の方法よりも簡単に行うこともできる。この方法を用いる場合、各サーバ・コンポーネントは、処理可能なサーバ・コンポーネントを募集するブロードキャストＲＰＣに対して応答する手段（図示せず）を備える。この方法での選択処理の手順を図１６に示す。なお、上記応答する手段は、該手段の存在する各情報処理装置の、主記憶装置１００１上に保持されたインストラクションを、ＣＰＵが実行することにより実現される。
【０１１０】
まず、ＲＰＣドライバ１０２は、処理可能なサーバ・コンポーネントを募集するブロードキャストＲＰＣを発行し（ステップ１６０１）、応答を待つ（ステップ１６０２）。このブロードキャストＲＰＣに対する応答には、応答したサーバ・コンポーネントに関する情報が含まれているので、最初に応答があった時点で、ＲＰＣドライバ１０２は、その応答から応答したサーバ・コンポーネントのサーバ名を取得し（ステップ１６０３）、該サーバ・コンポーネントを実際に処理を依頼するサーバとして採用して、処理を終了する（ステップ１６９０）。
【０１１１】
なお、二番目以降に応答したサーバ・コンポーネントは無視される。このように、ブロードキャストＲＰＣを用いて処理を依頼するサーバ・コンポーネントを選択することによって、第四の方法として説明した応答時間を比較する方法と同様、サーバ・コンポーネントが搭載された情報処理装置の性能および負荷状態、該情報処理装置までの通信経路の距離、通信経路の混み具合などを反映した選択が行える。なお、このブロードキャストＲＰＣはネットワークに接続されたすべてのサーバに対して発行されるが、マルチキャストＲＰＣを用いればネームサーバ１５１から得たサーバ・コンポーネントの候補だけに発行することもできる。
【０１１２】
さらに、上記の応答時間のいずれかまたは両方による選択操作を複数回実施し、複数回の平均応答時間が最も短かったサーバ・コンポーネントを選ぶようにすれば、一時的なネットワークの混み具合の変化などによる影響を防止し、より最適なサーバ・コンポーネントの選択を行うことができる。
【０１１３】
（６）応答時間と負荷状況とによる選択
また、サーバ・コンポーネントがブロードキャストＲＰＣまたはマルチキャストＲＰＣに対する応答時間を、該サーバ・コンポーネントが搭載されている情報処理装置の負荷状況に応じて変化させることで、（５）に記述したブロードキャスト通信またはマルチキャスト通信によるサーバ・コンポーネントの選択を、より最適に行うことができる。図２０を用いて、この方法によるサーバ・コンポーネントの処理手順を説明する。なお、この方法を用いる場合は、各サーバ・コンポーネントのブロードキャスト通信に対する応答手段は、該サーバ・コンポーネントのあるサーバ情報処理装置の負荷状態を数値化したものである変数（Ｌとする）の格納領域を備える。
【０１１４】
まず、サーバ・コンポーネントのブロードキャスト通信に対する応答手段は、受信したブロードキャスト・パケットがサーバ・コンポーネントの処理対象かどうかを調べ、処理対象でなければ処理を終了する（ステップ２００１）。処理対象であれば、応答手段は、サーバ・コンポーネントが搭載されている情報処理装置の負荷状態を調べ（ステップ２００２）、負荷状態を数値化したものを変数Ｌに代入する（ステップ２００３）。つぎに、応答手段は、変数Ｌを０になるまでカウントダウンしながら（ステップ２００４）、負荷値に比例した時間だけ次の処理への移行を遅延させる（ステップ２００５）。該遅延処理（ステップ２００４，２００５）の後、応答手段は、処理可能であることを示す応答パケットを処理を募集したクライアント・コンポーネントに発行し（ステップ２００６）、ブロードキャスト・パケットの受信処理を終了する（ステップ２０９０）。
【０１１５】
このようにして、クライアント・コンポーネント（ＲＰＣドライバ１０２）からのブロードキャスト通信を用いた募集に対して、各サーバ・コンポーネントは、該サーバ・コンポーネントが搭載された情報処理装置の負荷状態に比例した遅延時間の後、該サーバ・コンポーネントが処理可能であることを示す応答パケットを発行する。これによって、（５）と同様に、ＲＰＣドライバ１０２が、最も早く応答したサーバ・コンポーネントを選択すれば、負荷状態が最も軽い情報処理装置上のサーバ・コンポーネントを選択することができる。
【０１１６】
以上述べた（１）〜（６）の各選択方法は、単独で用いてもよいし、組み合わせて使用してもよい。また、これらの選択手段をネームサーバ１５１に具備し、複数候補がある場合にはそのうちの一つを選択してもよいし、優先順位を付けてネームサーバ１５１への問い合わせ元に返答するようにしてもよい。
【０１１７】
本実施例２では、アクセス管理手段が搭載されたすべての情報処理装置上に、かならずしもすべての種類のＤＢＭＳに対応したＳＱＬ変換手段を搭載しなくてもよく、どれかの情報処理装置上に必要な種類のＳＱＬ変換手段を用意して置けばよいので、導入、保守が容易であるという効果がある。
【０１１８】
また、本実施例２では、アクセス管理コンポーネントとＳＱＬ変換手段とは、複数の情報処理装置上に置くことができ、第一の情報処理装置上のアクセス管理コンポーネントから他の情報処理装置上のＳＱＬ変換手段へＲＰＣによる処理依頼を行うこともできる。これによって、処理負荷を複数の情報処理装置に分散できる。
【０１１９】
（実施例３）
本実施例３では、実施例１においてゲートウェイ情報処理装置１３０上で動作していたＳＱＬ変換手段Ａ１１５ａ、ＳＱＬ変換手段Ｂ１１５ｂを、それぞれサーバ情報処理装置１２０ａ、１２０ｂに設けた。本実施例３でも、すでに説明した実施例と同様に、ＳＱＬ変換手段Ａ１１５ａ、ＳＱＬ変換手段Ｂ１１５ｂへのインタフェースはＲＰＣを用いている。これにより、各サーバ・コンポーネントに実施例１と同じものを用いたまま、図１に示した実施例１の異種データベースアクセスシステムの構成を、図６に示した本実施例３の異種データベースアクセスシステムの構成に変更することができる。本実施例３においては、各サーバ情報処理装置１２０ａ、１２０ｂがそれぞれＳＱＬ変換手段Ａ１１５ａ、ＳＱＬ変換手段Ｂ１１５ｂを具備するので、ゲートウェイ情報処理装置１３０を介さなくても単一のＳＱＬ仕様で、異なるＳＱＬ仕様を持つＤＢＭＳ＿Ａ１２１ａ、ＤＢＭＳ＿Ｂ１２１ｂにアクセスすることができる。
【０１２０】
本実施例３では、クライアント情報処理装置１１０上のＲＰＣドライバ１０２は、アプリケーション・ソフトウェア実行手段１１１から発行されるＳＱＬをＲＰＣのパラメータとして、各ＤＢＭＳ１２１ａ，ｂを介してデータベースをアクセスするＳＱＬ＿ＡＰＩ処理手段７００を備える。
【０１２１】
ＳＱＬ＿ＡＰＩ処理手段７００の処理を図７に示す。まず、ＳＱＬ＿ＡＰＩ処理手段７００は、アプリケーション・ソフトウェア実行手段１１１から発行されたＳＱＬ文を受け付けると、該ＳＱＬ文を解析し、アクセス先のＤＢＭＳ情報を得る（ステップ７０１）。つぎに、ＳＱＬ＿ＡＰＩ処理手段７００は、該アクセス先がＤＢＭＳ＿Ａ１２１ａとＤＢＭＳ＿Ｂ１２１ｂの両方か、ＤＢＭＳ＿Ａ１２１ａだけか、ＤＢＭＳ＿Ｂ１２１ｂだけかをそれぞれ判断する（ステップ７０２、７０３、７０４）。
【０１２２】
ＳＱＬ＿ＡＰＩ処理手段７００は、アクセス先がＤＢＭＳ＿Ａ１２１ａとＤＢＭＳ＿Ｂ１２１ｂとの両方の場合は、処理対象のＳＱＬ文をパラメータとするＳＱＬ＿ＲＰＣを発行する（ステップ７０６）。このＳＱＬ＿ＲＰＣは、ゲートウェイ情報処理装置１３０のアクセス管理コンポーネント１１２ｖに送られ、そこで実施例１の場合と同様に処理される。
【０１２３】
一方、アクセス先がＤＢＭＳ＿Ａ１２１ａおよびＤＢＭＳ＿Ｂ１２１ｂのいずれか一方のみであった場合、ＳＱＬ＿ＡＰＩ処理手段７００は、ＳＱＬ＿Ａ＿ＲＰＣ（ステップ７０７）、または、ＳＱＬ＿Ｂ＿ＲＰＣ（ステップ７０８）を発行し、ゲートウェイ情報処理装置１３０を介すること無くＤＢＭＳ＿Ａ１２１ａまたはＤＢＭＳ＿Ｂ１２１ｂをアクセスする。
【０１２４】
指定されたアクセス先がＤＢＭＳ＿Ａ１２１ａおよびＤＢＭＳ＿Ｂ１２１ｂのいずれでもない場合、ＳＱＬ＿ＡＰＩ処理手段７００は、エラーコードをセットして（ステップ７０５）、処理を終了する（ステップ７０９）。
【０１２５】
このように、本実施例３では、ゲートウェイ情報処理装置１３０は、ＤＢＭＳ＿Ａ１２１ａおよびＤＢＭＳ＿Ｂ１２１ｂの両方に同時にアクセスすることを指示するＳＱＬ文を処理する場合にのみ使用され、いずれか一方のＤＢＭＳに対するアクセスを指示するＳＱＬ文を処理する場合には、ＳＱＬ＿ＡＰＩ処理手段７００が、ゲートウェイ情報処理装置１３０を介することなく、直接指定されたＤＢＭＳをアクセスする。これにより、本実施例３では、ゲートウェイ情報処理装置１３０を介することによって生じる性能低下を低減することができる。
【０１２６】
また、本実施例３によれば、ターゲットＤＢＭＳが明確でしかも単一の場合には、ユーザー・アプリケーション・ソフトウェアから、アクセス管理コンポーネントを介すること無く直接ＳＱＬ変換手段へアクセスすることができるので、オーバーヘッドを低減することができる。
【０１２７】
なお、本実施例のＳＱＬ＿ＡＰＩ処理手段７００は、実施例１にも適用できる。これにより、ターゲットＤＢＭＳが明確で、しかも単一の場合には、実施例１においても、アクセス管理コンポーネントを介することなく、直接ＳＱＬ変換手段をアクセスでき、オーバヘッドを低減することができる。
【０１２８】
（実施例４）
上述の実施例１〜３では、任意のＳＱＬ仕様のアプリケーション・ソフトウェア実行手段１１１からの、種々のＳＱＬ仕様の複数のＤＢＭＳへのアクセスを実現する例を示したが、本実施例４では、種々の異なるＳＱＬ仕様を用いたアプリケーション・ソフトウェア実行手段１１１からのＤＢＭＳへのアクセスを実現する。
【０１２９】
図８に本実施例４の異種データベースアクセスシステムの構成を示す。本実施例４では、図８に示したように、図１で示した実施例１の異種データベースアクセスシステムの構成に対して、クライアント情報処理装置１１０ｒと、ゲートウェイ情報処理装置１３０上の非標準ＳＱＬ変換手段１１５ｒとを追加した。クライアント情報処理装置１１０ｒは、クライアント情報処理装置１１０と同様の構成を有しているが、標準ＳＱＬ仕様のアプリケーション・ソフトウェア実行手段１１１の代わりに、非標準のＳＱＬ仕様のアプリケーション・ソフトウェアＲ実行手段１１１ｒを備える。また、非標準ＳＱＬ変換手段１１５ｒは非標準のＳＱＬを標準のＳＱＬに変換する手段である。
【０１３０】
アプリケーション・ソフトウェア実行手段１１１ｒから発行される非標準仕様のＳＱＬ文を含むＲＰＣ（以下ＳＱＬ＿ｒ＿ＲＰＣと呼ぶ）は、ＲＰＣドライバ１０２によって、ＬＡＮドライバ１２３およびＬＡＮ１００を介して、ゲートウェイ情報処理装置１３０の非標準ＳＱＬ変換手段１１５ｒに送られ、処理される。非標準ＳＱＬ変換手段１１５ｒによって非標準ＳＱＬから標準ＳＱＬへと変換されたＳＱＬ文は、アクセス管理コンポーネント１１２ｖにＲＰＣのパラメータとして送られる。以後の処理は実施例１と同様であり、ＳＱＬ変換手段１１５でターゲットＤＢＭＳの仕様のＳＱＬに変換された後、そのＳＱＬ文によりＤＢＭＳがアクセスされ、結果がアプリケーション・ソフトウェア実行手段１１１ｒに返される。
【０１３１】
このように、本実施例４によれば、非標準ＳＱＬから標準ＳＱＬに変換するコンポーネントを設けることによって、各種のＳＱＬ仕様を用いたアプリケーション・ソフトウェア実行手段１１１ｒから、該アプリケーション・ソフトウェア実行手段１１１ｒとは別のＳＱＬ仕様のＤＢＭＳをアクセスすることができる。
【０１３２】
（実施例５）
つぎに、あるＤＢＭＳ専用に構築されたクライアント情報処理装置のプログラム構成を全く変更する事なく、該ＤＢＭＳとは異なるＳＱＬ仕様、通信プロトコル仕様のＤＢＭＳをアクセスすることのできる異種データベースアクセスシステムについて説明する。
【０１３３】
Ａ．構成例
本実施例５では、ネットワーク１００にＲＰＣを用いたクライアントとＲＰＣを用いないクライアントの両方が接続される。本実施例５では、図１１に示す異種データベースアクセスシステムの構成のように、図１で示した実施例１の異種データベースアクセスシステムの構成に対して、クライアント情報処理装置１１０ａと、ゲートウェイ情報処理装置１３０上の非標準ＳＱＬ変換手段ＲＡ１１５ｒａとを追加した。
【０１３４】
クライアント情報処理装置１１０ａは、アプリケーション・ソフトウェアＡ実行手段１１１ａと、データベースドライバＡ１２２ａと、ＬＡＮドライバ１２３とを備える。アプリケーション・ソフトウェアＡ実行手段１１１ａは、非標準ＳＱＬ仕様のソフトウェア実行手段であり、非標準のＳＱＬ文を発行して、応答を受け取る機能を有する。クライアント情報処理装置１１０ａのデータベースドライバＡ１２２ａは、アプリケーション・ソフトウェアＡ実行手段１１１ａの発行した非標準のＳＱＬ文を、ゲートウェイ情報処理装置１３０のデータベース・ドライバＡ１２２ａに通知する。なお、データベース・ドライバＡ１２２ａは、ＤＢＭＳ＿Ａ１２１ａと同じＳＱＬ仕様である。
【０１３５】
一方、ゲートウェイ情報処理装置１３０の非標準ＳＱＬ変換手段ＲＡ１１５ｒａは、入力された非標準ＳＱＬ文を、標準ＳＱＬ文に変換して、ゲートウェイ情報処理装置１３０のＲＰＣドライバ１０２に出力する非標準ＳＱＬ変換手段である。
【０１３６】
Ｂ．作用
本実施例５では、一旦、データベース・ドライバ１２２ａおよび非標準ＳＱＬ変換手段ＲＡ１１５ｒａを介して変換された標準ＳＱＬ文を、ゲートウェイ情報処理装置１３０のＲＰＣドライバ１０２に送ることで、アプリケーション・ソフトウェアＡ実行手段１１１ａの発行したＳＱＬ文によるデータベース・アクセスが行なわれる。
【０１３７】
アプリケーション・ソフトウェアＡ実行手段１１１ａから発行されるＤＢＭＳ＿Ａ１２１ａの仕様、すなわち非標準仕様のＳＱＬ文は、データベース・ドライバ１２２ａにより、ＬＡＮドライバ１２３およびＬＡＮ１００を介してゲートウェイ情報処理装置１３０上の非標準ＳＱＬ変換手段ＲＡ１１５ｒａに送られ、処理される。非標準ＳＱＬ変換手段ＲＡ１１５ｒａは、通知された非標準ＳＱＬ文を標準ＳＱＬへ変換し、アクセス管理コンポーネント１１２ｖにＲＰＣのパラメータとして通知する。以後の処理は実施例１と同様であり、ＳＱＬ変換手段１１５でターゲットＤＢＭＳの仕様のＳＱＬに変換された後、そのＳＱＬ文によりＤＢＭＳがアクセスされ、結果がアプリケーション・ソフトウェア実行手段１１１ｒに返される。
【０１３８】
このように、本実施例５では、非標準から標準へのＳＱＬ変換手段を実施例１のシステムに追加する事によって、あるＤＢＭＳ固有の非標準ＳＱＬおよび非標準データベース・ドライバを用いて、あるＤＢＭＳ専用に構築されたクライアント情報処理装置のプログラム構成を全く変更する事なく、該ＤＢＭＳとは異なるＳＱＬ仕様、通信プロトコル仕様のＤＢＭＳをアクセスする事ができる。
【０１３９】
なお、本実施例５ではクライアント情報処理装置１１０ａとゲートウェイ情報処理装置１３０との接続をデータベース・ドライバ＿Ａ１２２ａを用いて行ったが、このドライバが上述のＲＰＣとは異なる仕様のＲＰＣを用いていてもよい。
【０１４０】
Ｃ．適用例
ネットワーク１００に、互いに異なる仕様を有するデータベース管理システムを備える２つの既存のシステム６００ａと６００ｂとが接続されているネットワーク１００に本実施例５の異種データベースアクセスシステムを適用する場合の例を、図１９を用いて説明する。
【０１４１】
システム６００ａは、ＤＢＭＳ＿Ａを用いたサーバ情報処理装置１２１ａとＤＢＭＳ＿Ａ専用のデータベースドライバＡ、アプリケーション・ソフトウェア実行手段Ａが搭載されたクライアント情報処理装置１１０ａから構成される。また、システム６００ｂは、ＤＢＭＳ＿Ｂを用いたサーバ情報処理装置１２１ｂとＤＢＭＳ＿Ｂ専用のデータベースドライバＢ、アプリケーション・ソフトウェアＢが搭載されたクライアント情報処理装置１１０ｂから構成される。
【０１４２】
これらの既存のシステム６００ａ，６００ｂに、上述のゲートウェイ情報処理装置１３０と、ネームサーバ情報処理装置１５０とを備える付加システム５００を付加することによって、既存のシステム６００ａ、６００ｂの構成を何等変更することなくクライアント情報処理装置１１０ａから、サーバ情報処理装置１２１ｂに搭載された前記クライアント情報処理装置１１０ａとはＳＱＬ仕様の異なるＤＢＭＳ＿Ｂをにアクセスすることができる。
【０１４３】
（実施例６）
Ａ．異種データベース・アクセス・システムの構成
次に、アプリケーション・ソフトウェア実行手段１１１が種々の文字コードセットを使用可能なデータベース・アクセス・システムを実現する実施例を図３８を用いて説明する。本実施例６の異種データベースアクセスシステムの構成は、図１に示した実施例１の構成と同様である。なお、本実施例６では、アクセス管理コンポーネント１１２ｖは、ＳＱＬ文を解析するＳＱＬ文解析部３８１を備える。また、ＳＱＬ変換手段１１５は、ＳＱＬ文を変換するＳＱＬ文変換部３８２を備える。アクセス管理コンポーネント１１２ｖのＳＱＬ文解析部、ＳＱＬ変換手段１１５のＳＱＬ文変換部で扱える文字コードセットはＪＩＳコードとする。
【０１４４】
Ｂ．ＳＱＬ＿ＲＰＣの処理
本実施例６における、アプリケーション・ソフトウェア実行手段１１１の発行したＳＱＬ＿ＲＰＣが処理される手順を、図２１に示す。
【０１４５】
（１）ＲＰＣドライバ１０２の処理
アプリケーション・ソフトウェア実行手段１１１がＳＱＬ＿ＲＰＣを発行すると、クライアント情報処理装置１１０のＲＰＣドライバ１０２は、まず、データベースへの接続文かどうかを判定し（ステップ２１６１）、接続文であった場合には、ステップ２１５０とステップ２１６２を実行したのち、ステップ２１５１に処理を移し、接続文以外の文であった場合には、直接ステップ２１５１に処理を移す。
【０１４６】
ステップ２１５０では、ＲＰＣドライバ１０２は、ネームサーバ情報処理装置１５０上のネームサーバ１５１をアクセスし、処理対象のＳＱＬ＿ＲＰＣを処理するサーバであるアクセス管理コンポーネント１１２ｖの物理位置すなわちネットワーク・アドレスとサーバ・コンポーネントのポート番号を取得する。次に、ＲＰＣドライバ１０２は、ステップ２１６２で、アプリケーション・ソフトウェア実行手段１１１がＳＱＬ文に使用している文字コードセット名を、アクセス管理コンポーネント１１２ｖに送出する。なお、文字コードセット名を受け取ったアクセス管理コンポーネント１１２ｖは、ゲートウェイ情報処理装置１３０の記憶装置１００１内の記憶領域３８３に、該入力文字コードセット名を格納する（ステップ２１２１）。
【０１４７】
最後に、ＲＰＣドライバ１０２は、アクセス管理コンポーネント１１２ｖとＲＰＣ接続を行い、ＳＱＬ＿ＲＰＣの処理をアクセス管理コンポーネント１１２ｖへ依頼する（ステップ２１５１）。
【０１４８】
（２）アクセス管理コンポーネント１１２ｖの処理
ステップ２１０１〜２１１１、２１２１〜２１２３、２１４０は、アクセス管理コンポーネント１１２ｖでの処理内容である。
【０１４９】
ＳＱＬ＿ＲＰＣの処理を依頼されたアクセス管理コンポーネント１１２ｖは、記憶領域３８３に保持された入力文字コードセット名を参照し、ＲＰＣドライバ１０２から通知されたＳＱＬ＿ＲＰＣのパラメータとして送られてきたＳＱＬ文の文字コードを、ＪＩＳコードに変換する（ステップ２１２３）。ただし、ステップ２１２１で通知された入力文字コードセット名がＪＩＳコードの場合は、変換は不要なので行わない。つぎに、アクセス管理コンポーネント１１２ｖは、文字コード変換を施したＳＱＬ文を解析し、アクセス先のテーブルが含まれるＤＢＭＳの名称を得る（ステップ２１０１）。
【０１５０】
この解析の結果、アクセス先がＤＢＭＳ＿Ａ１２１ａとＤＢＭＳ＿Ｂ１２１ｂとの両方であることを検出した場合（ステップ２１０２）、アクセス管理コンポーネント１１２ｖは、実施例１のステップ４０６と同様に、処理対象のＳＱＬ文を、ＤＢＭＳ＿Ａ１２１ａに対するアクセスとＤＢＭＳ＿Ｂ１２１ｂに対するアクセスとに分割して２つのＳＱＬ文を作成する（ステップ２１０６）。この新たに作成したＳＱＬ文をパラメタとしたＳＱＬ＿ＲＰＣ（それぞれＳＱＬ＿Ａ＿ＲＰＣ、ＳＱＬ＿Ｂ＿ＲＰＣと呼ぶ）を用い、アクセス管理コンポーネント１１２ｖは、ステップ２１０７でＤＢＭＳ＿Ａ１２１ａに、ステップ２１０８でＤＢＭＳ＿Ｂ１２１ｂに、それぞれアクセスする。これらのＤＢＭＳ１２１ａ，ｂからの応答を受け付けると、アクセス管理コンポーネント１１２ｖは、前記ステップ２１０７、２１０８で得た結果をマージし、ステップ２１０６で分割する前のＳＱＬ文に対応する結果を作成する（ステップ２１０９）。
【０１５１】
アクセス先がＤＢＭＳ＿Ａ１２１ａおよびＤＢＭＳ＿Ｂ１２１ｂのいずれか一方であることを検出した場合（ステップ２１０３または２１０４）、アクセス管理コンポーネント１１２ｖは、ステップ２１１０または２１１１で、それぞれＳＱＬ文をパラメータとしたＲＰＣ（ＳＱＬ＿Ａ＿ＲＰＣまたはＳＱＬ＿Ｂ＿ＲＰＣ）を発行し、アクセス結果を得る。
【０１５２】
なお、アクセス先がＤＢＭＳ＿Ａ１２１ａでもＤＢＭＳ＿Ｂ１２１ｂでもない場合、アクセス管理コンポーネント１１２ｖは、エラーコードをセットする（ステップ２１０５）。
【０１５３】
最後に、アクセス管理コンポーネント１１２ｖは、ステップ２１０９〜２１１１で得られたアクセス結果、あるいはステップ２１０５でセットされたエラーコードを、ＪＩＳコードから、記憶領域３８３に保持された入力文字コードセット名の示す文字コードに変換し（ステップ２１４０）、実施例１のステップ４１２と同様に、リモート・プロシージャ・コールのリターン値としてアプリケーション・ソフトウェア実行手段１１１に返して、ＳＱＬ＿ＲＰＣを終了する（ステップ２１１２）。
【０１５４】
（３）ＳＱＬ＿ｘ＿ＲＰＣの処理（ステップ２１０７〜２１０８、２１１０〜２１１１）
ＳＱＬ＿Ａ＿ＲＰＣまたはＳＱＬ＿Ｂ＿ＲＰＣの処理の流れを図２２に示す。なお、ＳＱＬ＿Ａ＿ＲＰＣの処理とＳＱＬ＿Ｂ＿ＲＰＣの処理とは、その手順が同一であるので、ここでは、これらをまとめてＳＱＬ＿ｘ＿ＲＰＣとして説明する。また、ＳＱＬ＿ｘ＿ＲＰＣを処理するサーバであるＳＱＬ変換手段Ａ１１５ａとＳＱＬ変換手段Ｂ１１５ｂをまとめてＳＱＬ変換手段１１５と呼ぶ。
【０１５５】
ＳＱＬ＿ｘ＿ＲＰＣが通知されると、ゲートウェィ情報処理装置１３０のＲＰＣドライバ１０２は、まず、データベースへの接続文かどうかを判定し（ステップ２２６１）、接続文であった場合にはネームサーバ情報処理装置１５０上のネームサーバ１５１をアクセスして、ＳＱＬ変換手段１１５の物理位置すなわちネットワーク・アドレスとサーバ・コンポーネントのポート番号を取得する（ステップ２２５０）。
【０１５６】
次に、ＲＰＣドライバ１０２は、アクセス管理コンポーネント１１２ｖの出力文字コードセット名である”ＪＩＳ”（本実施例６では、アクセス管理コンポーネント１１２ｖの入出力に用いられる文字コードは、ＪＩＳコードであると、あらかじめ定められている）を、ＳＱＬ変換手段１１５に送出する（ステップ２２６２）。これを受け付けたＳＱＬ変換手段１１５は、これを入力文字コードセット名として記憶装置１００１の記憶領域３８４に格納する（ステップ２２２１）。
【０１５７】
最後に、ＲＰＣドライバ１０２は、ＳＱＬ変換手段１１５とＲＰＣ接続を行い、ＳＱＬ＿ｘ＿ＲＰＣの処理をＳＱＬ変換手段１１５へ依頼する（ステップ２２０２）。
【０１５８】
ステップ２２２２〜２２４０は、ＳＱＬ変換手段１１５での処理内容である。依頼されたＳＱＬ変換手段１１５は、まず、ＲＰＣのパラメータとして送られてきたＳＱＬ文の文字コードを、ＪＩＳコードに変換するとともに、データベース・ドライバ１２２が文字コードセット名を得るために参照する環境変数に、変換後の文字コードセットであるＪＩＳを、該データベース・ドライバ１２２が定めた表現形式で格納する（ステップ２２２２）。
【０１５９】
ただし、本実施例６では、入力文字コードセット名は”ＪＩＳ”であり、変換は不要なので行わずに、データベース・ドライバ１２２の該環境変数に、入力文字コードセット名を格納する。このステップは、実施例２で示したように、アクセス管理コンポーネント１１２ｖが、異なるゲートウェイ情報処理装置１３０のＳＱＬ変換手段１１５をアクセスする場合、もしくは、実施例３で示したように、アクセス管理コンポーネント１１２ｖ介さずにアプリケーション・ソフトウェア実行手段１１１からＳＱＬ変換手段１１５をアクセスする場合に有効である。
【０１６０】
次に、ＳＱＬ変換手段１１５は、ＲＰＣのパラメータとして受け取った標準仕様のＳＱＬ文を、ターゲットＤＢＭＳのＳＱＬ仕様に変換（ステップ２２２３）したのち、変換によって作成したＳＱＬ文をターゲットＤＢＭＳに送り、ターゲットＤＢＭＳからのＳＱＬ文の実行結果の通知を得る（ステップ２２２４）。
【０１６１】
ステップ２２２４で実行結果として得たデータおよびリターンコードを、ＳＱＬ変換手段１１５は、ターゲットＤＢＭＳのＳＱＬ仕様から標準のＳＱＬ仕様に変換し（ステップ２２２５）、さらに、該変換結果を、ステップ２２２１で記憶領域３８４に格納した入力文字コードセット名で示される文字コードに変換する（ステップ２２４０）。最後に、ＳＱＬ変換手段１１５は、変換して得られた結果を、リターンデータ、リターンコードとしてアクセス管理コンポーネント１１２ｖに通知して、ＳＱＬ＿ｘ＿ＲＰＣの処理を終了する（ステップ２２０６）。
【０１６２】
Ｃ．本実施例６の効果
以上のようにして、本実施例６では、アプリケーション・ソフトウェア実行手段１１１は、アクセス管理コンポーネント１１２ｖ、ＳＱＬ変換手段１１５、ＤＢＭＳ＿ｘ１２１ａ，ｂが内部でどの様な文字コードセットを用いて処理するかを意識することなく、データベースへのアクセスを行うことができる。また、文字コードセット名の指定方法が各ＤＢＭＳのデータベース・ドライバ毎に異なることを意識する必要もない。
【０１６３】
なお、本実施例６では、アクセス管理コンポーネント１１２ｖのＳＱＬ文解析部、ＳＱＬ変換手段１１５のＳＱＬ文変換部で扱える文字コードセットはＪＩＳコードとしたが、他の文字コードセットであってもよい。また、実施例２の第１および／または第２の選択手段をＲＰＣドライバ１０２に設けてもよい。
【０１６４】
さらに、文字コードセット名だけでなく、エラーメッセージなどに使用する言語や、データベースの検索結果の並び替えを行う際の文字コード順の指定についても、本実施例６の入力文字コードセット名と同様に、クライアント情報処理装置１１０のＲＰＣドライバ１０２とアクセス管理コンポーネント１１２ｖとの間で授受するようにすれば、それらの相違を意識することなく、データベースへのアクセスを行うことができる。
【０１６５】
図３０に、言語、文字コードセット、並び替えコードを設定する環境変数の一例を示す。環境変数群３００１はアプリケーション・ソフトウェア実行手段１１１の環境変数の例であり、環境変数群３００２はアクセス管理コンポーネント１１２ｖの環境変数の例であり、環境変数群３００３はＳＱＬ変換手段１１５とＤＢＭＳ１２１ａ，ｂのプロセスの環境変数の例である。
【０１６６】
環境変数群３００１〜３００３において、ＳＱＬ＿ＬＡＮＧは使用言語の種別を示す変数名であり、ＳＱＬ＿ＣＨＡＲＡＣＴＥＲは使用する文字コードセットを示す変数名、ＳＱＬ＿ＣＯＬＬＡＴＥは、並び替えコードを示す変数名である。本実施例６では、アプリケーション・ソフトウェア実行手段１１１、アクセス管理コンポーネント１１２ｖ、ＳＱＬ変換手段１１５とも、使用言語は日本語（「JAPANESE」）である。また、アプリケーション・ソフトウェア実行手段１１１では、文字コードセットおよび並び替えコードは「ＳＪＩＳ」である。一方、アクセス管理コンポーネント１１２ｖおよびＳＱＬ変換手段１１５の文字コードセットおよび並び替えコードは「ＪＩＳ」である。
【０１６７】
環境変数群３００３において、ＤＢ＿ＬＡＮＧはデータベース・ドライバ１２２が参照する、使用言語の種別（ＤＢＭＳ１２１ａ，ｂが使用する言語の種別）を示す環境変数名である。また、ＤＢＭＳ１２１ａ，ｂの使用する文字コードセットは、環境変数名ＤＢ＿ＣＨＡＲＡＣＴＥＲの変数により示される。さらに、ＤＢＭＳ１２１ａ，ｂの使用する並び替えコードは環境変数名ＤＢ＿ＣＯＬＬＡＴＥの変数により示される。本実施例６では、ＤＢＭＳ１２１ａ，ｂが使用する言語は日本語（「JAPANESE」）である。また、ＤＢＭＳ１２１ａ，ｂの使用する文字コードセットおよび並び替えコードは「ＪＩＳ」である。
【０１６８】
（実施例７）
次に、データベースへのアクセス依頼をユーザーが設定した時間で打ち切るための機能を実施例１に付加した実施例を説明する。図３６に、本実施例７の異種データベース・アクセス・システムの構成を示す。本実施例７の異種データベース・アクセス・システムは、図１に示した実施例１のシステムと同様の構成を備えているが、本実施例７では、図３６に示すように、クライアント情報処理装置１１０およびゲートウェイ情報処理装置１３０の両方の主記憶装置１００１に、ＳＱＬタイムアウト時間を保持するための格納領域２５０，２５１を、それぞれ備えている。また、本実施例７のクライアント情報処理装置１１０のＲＰＣドライバ１０２は、計時のためのタイムアウトカウンタ２５２を備える。さらに、ゲートウェイ情報処理装置１３０のＲＰＣドライバ１０２も、計時のためのタイムアウトカウンタ２５３を備える。
【０１６９】
Ａ．ＳＱＬ＿ＲＰＣの処理の流れ
本実施例７におけるＳＱＬ＿ＲＰＣの処理を図２５に示す。本実施例７では、実施例１と同様、クライアント情報処理装置１１０上のアプリケーション・ソフトウェア１１１から発行されたＳＱＬ＿ＲＰＣは、クライアント情報処理装置１１０のＲＰＣドライバ１０２によりゲートウェイ情報処理装置１３０上のアクセス管理コンポーネント１１２ｖに通知され、アクセス管理コンポーネント１１２ｖによって処理される。
【０１７０】
しかし、本実施例７では、実施例１とは異なり、クライアント情報処理装置１１０のＲＰＣドライバ１０２は、ＲＰＣを用いてアクセス管理コンポーネント１１２ｖにＳＱＬ＿ＲＰＣの処理を依頼してから、あらかじめ定められたＳＱＬタイムアウト時間が経過しても、応答を受け取らない場合、処理を打ち切ってエラーとする。なお、本実施例７では、ＳＱＬタイムアウト時間は、クライアント情報処理装置１１０の主記憶装置１００１の格納領域２５０にあらかじめ格納され、保持されている。
【０１７１】
まず、アプリケーション・ソフトウェア１１１が発行するＳＱＬ＿ＲＰＣを受け付けたクライアント情報処理装置１１０のＲＰＣドライバ１０２は、ＤＢＭＳへの接続文かどうかを判定し（ステップ２５６１）、接続文であった場合はステップ２５５０とステップ２５６２を実行してからステップ２５５３を実行し、接続文以外の文であった場合には、直接ステップ２５５３を実行する。
【０１７２】
ステップ２５５０では、ＲＰＣドライバ１０２は、ネームサーバ情報処理装置１５０上のネームサーバ１５１をアクセスし、処理対象のＳＱＬ＿ＲＰＣを処理するサーバであるアクセス管理コンポーネント１１２ｖの物理位置すなわちネットワーク・アドレスとサーバ・コンポーネントのポート番号を取得する。次に、ＲＰＣドライバ１０２は、ステップ２５６２で、クライアント情報処理装置１１０上の記憶装置の格納領域２５０に保持されているＳＱＬタイムアウト時間を、アクセス管理コンポーネント１１２ｖに送出する。このＳＱＬタイムアウト時間を受信したアクセス管理コンポーネント１１２ｖは、受け付けたＳＱＬタイムアウト時間を、ゲートウェイ情報処理装置１３０の格納領域２５１に格納する（ステップ２５０１）。
【０１７３】
次に、ＲＰＣドライバ１０２は、ＲＰＣ実行スレッドを起動する（ステップ２５５３）。ここでスレッドとは、プロセス内の処理をさらに分割し、時分割によって並行処理を行う処理単位のことである。起動されたＲＰＣ実行スレッドは、アクセス管理コンポーネント１１２ｖとＲＰＣ接続を行い、前記ＳＱＬ＿ＲＰＣの処理を該アクセス管理コンポーネント１１２ｖへ依頼する（ステップ２５８０）。
【０１７４】
ステップ２５０１〜２５０４は、アクセス管理コンポーネント１１２ｖでの処理である。実施例１における図４で説明した処理と同様に、本実施例７のアクセス管理コンポーネント１１２ｖは、処理依頼を受けると、ＳＱＬ文解析（ステップ２５０２）、ＳＱＬ＿ｘ＿ＲＰＣ発行（ステップ２５０３）等の処理を行い、処理結果を依頼元のＲＰＣ実行スレッドを起動したＲＰＣドライバ１０２（親スレッド）に通知して、依頼元のＲＰＣ実行スレッドに終了を通知したのち、ＲＰＣの処理を終了する（ステップ２５０４）。
【０１７５】
ステップ２５８０で処理を依頼したＲＰＣ実行スレッドは、アクセス管理コンポーネント１１２ｖの終了信号（ステップ２５０４）を受信するまで、待ち状態となっており、終了の通知を受けると、スレッドを終了する（ステップ２５８５）。
【０１７６】
一方、ステップ２５５３でＲＰＣ実行スレッドを起動した親スレッドは、タイムアウトカウンタ２５２を初期化した後（ステップ２５５４）、タイムアウトカウンタ２５２をカウントアップし（ステップ２５５５）、タイムアウトカウンタ２５２の保持する値が、ＳＱＬタイムアウト時間格納領域２５０の保持する値を超えているかどうかチェックし（ステップ２５５６）、超えていなければ、さらにＲＰＣ実行スレッドがすでに終了しているかどうかチェックする（ステップ２５５７）。
【０１７７】
ＲＰＣ実行スレッドがまだ終了していないときは、親スレッドは処理をステップ２５５５に戻し、タイムアウトカウンタのカウントアップと、経過時間のチェックを繰り返す。なお、本実施例７では、ＲＰＣ実行スレッドが起動されると、クライアント情報処理装置１１０の主記憶装置１００１にあらかじめ定められた識別情報を格納し、ＲＰＣ実行スレッドは、終了時（ステップ２５８５）に、該識別情報を削除する。ステップ２５５７におけるＲＰＣ実行スレッドの終了チェックは、該識別情報がクライアント情報処理装置１１０の記憶装置に保持されているかどうか確認することにより行なわれる。
【０１７８】
ステップ２５５６でのタイムアウトチェックの結果、タイムアウトと判定した場合には、親スレッドは、エラーコードをあらかじめ定められた領域に格納し（ステップ２５５９）、ＳＱＬ＿ＲＰＣの処理を終了する（ステップ２５６０）。なお、エラーコード設定（ステップ２５５９）の際、本実施例７では、親スレッドは、ＲＰＣ実行スレッドとアクセス管理コンポーネント１１２ｖとの接続を切り、ＲＰＣ実行スレッドを終了させる。
【０１７９】
また、ステップ２５５７でのＲＰＣ実行スレッド終了チェックの結果、終了したと判定した場合には、実行結果をあらかじめ定められた領域に格納し（ステップ２５５８）、ＳＱＬ＿ＲＰＣの処理を終了する（ステップ２５６０）。
【０１８０】
Ｂ．ＳＱＬ＿ｘ＿ＲＰＣの処理（ステップ２５０３）
図２６に、本実施例７においてアクセス管理コンポーネント１１２ｖが発行するＳＱＬ＿ｘ＿ＲＰＣの処理を示す。本実施例７では、アクセス管理コンポーネント１１２ｖにより依頼される、ＳＱＬ変換コンポーネント１１５のＳＱＬ＿ＲＰＣの処理についても、あらかじめ定められた時間内に処理が行なわれなければ、処理を打ち切り、エラーとするようにした。
【０１８１】
処理の手順は、上述のＳＱＬ＿ＲＰＣの処理の場合と同様であるが、ＳＱＬ＿ｘ＿ＲＰＣの処理では、上述のステップ２５０１（図２５に図示）で格納領域２５１に格納された値が、ＳＱＬタイムアウト時間として用いられる。
【０１８２】
まず、アクセス管理コンポーネント１１２ｖが発行するＳＱＬ＿ｘ＿ＲＰＣを受け付けたゲートウェイ情報処理装置１３０のＲＰＣドライバ１０２は、ＤＢＭＳへの接続文かどうかを判定し（ステップ２６６１）、接続文であった場合はステップ２６５０を実行してからステップ２６５３を実行し、接続文以外の文であった場合には、直接ステップ２６５３を実行する。
【０１８３】
ステップ２６５０では、ＲＰＣドライバ１０２は、ネームサーバ情報処理装置１５０上のネームサーバ１５１をアクセスし、処理対象のＳＱＬ＿ｘ＿ＲＰＣを処理するＳＱＬ変換手段１１５の物理位置（ネットワーク・アドレスおよびポート番号）を取得する。
【０１８４】
次に、ＲＰＣドライバ１０２は、ＲＰＣ実行スレッドを起動する（ステップ２６５３）。起動されたＲＰＣ実行スレッドは、ＳＱＬ変換手段１１５とＲＰＣ接続を行い、ＳＱＬ＿ｘ＿ＲＰＣの処理を該ＳＱＬ変換手段１１５へ依頼する（ステップ２６８０）。
【０１８５】
ステップ２６０２〜２６０４は、ＳＱＬ変換手段１１５の処理である。ＳＱＬ変換手段１１５は、処理依頼を受けると、ＳＱＬ文を解析し（ステップ２６０２）、ＤＢＭＳへアクセスして、応答を受け取り（ステップ２６０３）、処理結果を依頼元のＲＰＣ実行スレッドを起動したＲＰＣドライバ１０２（親スレッド）に通知して、依頼元のＲＰＣ実行スレッドに終了を通知したのち、処理を終了する（ステップ２６０４）。
【０１８６】
ステップ２６８０で処理を依頼したＲＰＣ実行スレッドは、ＳＱＬ変換手段１１５の終了信号（ステップ２６０４）を受信するまで、待ち状態となっており、終了の通知を受けると、スレッドを終了する（ステップ２６８５）。
【０１８７】
一方、ステップ２６５３でＲＰＣ実行スレッドを起動した親スレッドは、タイムアウトカウンタ２５３を初期化した後（ステップ２６５４）、タイムアウトカウンタ２５３をカウントアップし（ステップ２６５５）、タイムアウトカウンタ２５３の保持する値が、ＳＱＬタイムアウト時間格納領域２５１の保持する値を超えているかどうかチェックし（ステップ２６５６）、超えていなければ、さらにＲＰＣ実行スレッドがすでに終了しているかどうかチェックする（ステップ２６５７）。
【０１８８】
ＲＰＣ実行スレッドがまだ終了していないときは、親スレッドは処理をステップ２６５５に戻し、タイムアウトカウンタのカウントアップと、経過時間のチェックを繰り返す。なお、ＲＰＣ実行スレッドが起動されると、ゲートウェイ情報処理装置１３０の主記憶装置１００１にあらかじめ定められた識別情報を格納し、ＲＰＣ実行スレッドは、終了時（ステップ２６８５）に、該識別情報を削除する。ステップ２６５７におけるＲＰＣ実行スレッドの終了チェックは、該識別情報が該記憶装置に保持されているかどうか確認することにより行なわれる。
【０１８９】
ステップ２６５６でのタイムアウトチェックの結果、タイムアウトと判定した場合には、親スレッドは、エラーコードをあらかじめ定められた領域に格納し（ステップ２６５９）、ＳＱＬ＿ＲＰＣの処理を終了する（ステップ２６６０）。なお、エラーコード設定（ステップ２６５９）の際、本実施例７では、親スレッドは、ＲＰＣ実行スレッドとＤＢＭＳとの接続を切り、ＲＰＣ実行スレッドを終了させる。
【０１９０】
また、ステップ２６５７でのＲＰＣ実行スレッド終了チェックの結果、終了したと判定した場合には、実行結果をあらかじめ定められた領域に格納し（ステップ２６５８）、ＳＱＬ＿ｘ＿ＲＰＣの処理を終了する（ステップ２６６０）。
【０１９１】
Ｃ．本実施例７の効果
以上説明したように、本実施例７によれば、タイムアウト値をアプリケーション・ソフトウェア１１１からアクセス管理コンポーネント１１２ｖ、ＳＱＬ変換手段１１５へとデータベースへの接続に先だって転送することによって、アプリケーション・ソフトウェア１１１が設定したＳＱＬタイムアウト時間で、前記各コンポーネントでのＲＰＣ処理を打ち切ることができる。
【０１９２】
また、本実施例７によれば、アプリケーション・ソフトウェア実行手段がゲートウェイを介してデータベースにアクセスする場合にも、アプリケーション・ソフトウェア実行手段が動作するプロセスで設定されたデータベース・アクセス時の処理打ち切り時間が、ゲートウェイがデータベースへアクセスする際に参照するデータベース・アクセス処理打ち切り時間に反映させることができるので、アプリケーション・ソフトウェア実行手段側とゲートウェイ側で個別に打ち切り時間を設定する必要が無いという効果がある。
【０１９３】
なお、ＳＱＬ変換手段１１５がＤＢＭＳをアクセスする際にも、タイムアウトチェックを同様な方法で行うようにしてもよい。この場合、ＲＰＣドライバ１０２は、ステップ２６５０実行後、ステップ２６５３実行前に、ゲートウェイ情報処理装置１３０の記憶装置の格納領域２５１に保持されているＳＱＬタイムアウト時間を、ＳＱＬ変換手段１１５に送出するようにし、このＳＱＬタイムアウト時間を受信したＳＱＬ変換手段１１５は、受け付けたＳＱＬタイムアウト時間を、ゲートウェイ情報処理装置１３０にＳＱＬ変換手段用ＳＱＬタイムアウト時間の格納領域として確保された格納領域に格納するようにする。このようにすれば、ＳＱＬ変換手段１１５がＤＢＭＳをアクセスする際に、格納されたＳＱＬ変換手段用ＳＱＬタイムアウト時間を参照し、処理時間が該時間を超えると、エラーにするようにすれば、ＳＱＬ変換手段１１５によるＤＢＭＳのアクセスについても、処理に制限時間を設けることができる。
【０１９４】
ところで、アプリケーション・ソフトウェア１１１から発行されたＳＱＬ＿ＲＰＣは、図２９に示すように、アクセス管理コンポーネント１１２ｖ、ＳＱＬ変換手段１１５、ＤＢＭＳ１２１での処理が入れ子になる形で実行される。したがって、各コンポーネントでのタイムアウトによる処理打ち切りが同時に発生すると、どのコンポーネントでの処理が原因で処理時間がタイムアウト値をオーバーしたかアプリケーション・ソフトウェア１１１が正しく認識できない。
【０１９５】
これを解決するためには、アクセス管理コンポーネント１１２ｖがステップ２５０１で受信したＳＱＬタイムアウト時間から、一定時間を引いた時間をアクセス管理コンポーネント１１２ｖが使用するＳＱＬタイムアウト時間として記憶すればよい。
【０１９６】
これによって、タイムアウトエラーを検出したコンポーネント（アクセス管理コンポーネント、またはＳＱＬ変換手段）よりもアプリケーション・ソフトウェア１１１に近い側のコンポーネントは、その検出の時点では、ＳＱＬタイムアウト時間に達しておらず、まだ処理を打ち切っていないので、タイムアウトエラーを検出したコンポーネントからのエラーコードを正しくアプリケーション・ソフトウェア１１１に伝えることができる。このようにすれば、処理が打ち切られた場合の、処理時間超過の原因箇所を容易に特定できる。
【０１９７】
なお、本実施例７のＲＰＣドライバ１０２に、実施例２の第１および／または第２の選択手段を設けてもよい。また、各情報処理装置に外部記憶装置を備え、上述した、主記憶装置１００１に備えられている各格納領域は、この外部記憶装置に設けてもよい。
【０１９８】
（実施例８）
つぎに、サーバおよびクライアントの障害を監視する実施例を説明する。本実施例８の異種データベース・アクセス・システムの構成を図３７に示す。本実施例８の異種データベース・アクセス・システムは、実施例７とほぼ同様の構成を有する。ただし、本実施例８では、図３７に示すように、クライアント情報処理装置１１０の主記憶装置１００１は、ＳＱＬタイムアウト時間格納領域２５０に加えて、さらに、サーバチェック用ＲＰＣタイムアウト時間と、サーバチェック用ＲＰＣインターバル時間とをそれぞれ保持するための格納領域３７１、３７２を備え、同様に、ゲートウェイ情報処理装置１３０の主記憶装置１００１は、ＳＱＬタイムアウト時間格納領域２５１に加えて、さらに、サーバチェック用ＲＰＣタイムアウト時間と、サーバチェック用ＲＰＣインターバル時間とをそれぞれ保持するための格納領域３７３、３７４を備える。また、本実施例８のクライアント情報処理装置１１０のＲＰＣドライバ１０２は、タイムアウトカウンタ２５２に加えて、さらに、サーバチェック用ＲＰＣの発行間隔をカウントするためのインターバルタイマ３７５を備え、ゲートウェイ情報処理装置１３０のアクセス管理コンポーネント１１２ｖは、クライアントの稼働をチェックするタイミングを計るためのクライアントチェックタイマ３７６を、さらに備える。
【０１９９】
なお、本実施例８のＲＰＣドライバ１０２に、実施例２の第１および／または第２の選択手段を設けてもよい。また、各情報処理装置に外部記憶装置を備え、上述した、主記憶装置１００１に備えられている各格納領域は、この外部記憶装置に設けてもよい。
【０２００】
Ａ．ＳＱＬ＿ＲＰＣの処理の流れ
本実施例８におけるＳＱＬ＿ＲＰＣの処理を図２７に示す。本実施例８のクライアント情報処理装置１１０のＲＰＣドライバ１０２は、アプリケーション・ソフトウェア１１１から発行されたＳＱＬ＿ＲＰＣを受け付けると、まず、該ＳＱＬ＿ＲＰＣが、ＤＢＭＳへの接続文かどうかを判定し（ステップ２７５１）、接続文であった場合にはステップ２７５２〜２７５４を実行した後、ステップ２７９０に制御を移し、接続文でなかった場合には直接ステップ２７９０に制御を移す。
【０２０１】
ステップ２７５２では、ＲＰＣドライバ１０２は、実施例７と同様に、アクセス管理コンポーネント１１２ｖの物理位置を取得する。ステップ２７５３では、ＲＰＣドライバ１０２は、実施例７で説明したＳＱＬタイムアウト時間に加え、格納領域３７１にあらかじめ保持されたサーバチェック用ＲＰＣタイムアウト時間と、格納領域３７２にあらかじめ保持されたサーバチェック用ＲＰＣインターバル時間とを、アクセス管理コンポーネント１１２ｖに通知する。つぎに、クライアントのＲＰＣドライバ１０２は、サーバチェック用スレッドを起動する（ステップ２７５４）。
【０２０２】
ステップ２７５３による通知を受けたアクセス管理コンポーネント１１２ｖは、ＳＱＬタイムアウト時間、サーバチェック用ＲＰＣタイムアウト時間、サーバチェック用ＲＰＣインターバル時間を、それぞれ、格納領域２５１、２７３、２７４に格納する（ステップ２７０１）。また、アクセス管理コンポーネント１１２ｖは、クライアントチェック用スレッドを起動する（ステップ２７０２）。
【０２０３】
一方、クライアント情報処理装置１１０のＲＰＣドライバ１０２は、インターバルタイマ３７５を初期化したのち（ステップ２７９０）、ＳＱＬ文がデータベースへの接続を切る切断文であるかどうかを調べ（ステップ２７６０）、切断文であった場合には、ステップ２７５４で起動したサーバチェック用スレッドを終了する（ステップ２７６１）。
【０２０４】
つぎに、ＲＰＣドライバ１０２は、実施例７と同様にＲＰＣ実行スレッドを起動する（ステップ２７６２）。ここで起動されたＲＰＣ実行スレッドは、アクセス管理コンポーネント１１２ｖにＲＰＣを発行してその処理を依頼し（ステップ２７８０）、アクセス管理コンポーネント１１２ｖの処理終了通知を待つ。処理を依頼されたアクセス管理コンポーネント１１２ｖ側のＲＰＣサーバは、クライアントチェックタイマ３７６を初期化し（ステップ２７０３）、ＳＱＬ文の解析を行う（ステップ２５０２）。
【０２０５】
なお、以上述べた処理の続き（ステップ２５５４〜２５６０、ステップ２５８５、ステップ２５０２〜２５０４）は、上述の実施例７における図２５に図示した処理と同じである。
【０２０６】
Ｂ．サーバチェック用スレッドの処理
図２８に、上述のステップ２７５４で起動され、ステップ２７６１で終了するサーバチェック用スレッドの処理を示す。
【０２０７】
サーバチェック用スレッドは、起動されると、まず、インターバルタイマ３７５を初期化して（ステップ２８０１）、インターバルタイマ３７５のカウントアップ（ステップ２８０２）と、インターバルタイマ３７５の保持する値が、格納領域３７２の保持するサーバチェック用ＲＰＣインターバル時間を超えたかどうかのチェック（ステップ２８０３）とを繰り返すことにより、インターバルタイマ３７５の値が、あらかじめ定められたサーバチェック用ＲＰＣインターバル時間に到達するまで待つ。
【０２０８】
サーバチェック用ＲＰＣインターバル時間に到達すると、サーバチェック用スレッドは、ＳＱＬ＿ＲＰＣの処理が実行中であるかどうか（すなわち、本実施例ではＲＰＣ実行スレッドが終了していないかどうか）を調べ（ステップ２８９０）、実行中であった場合には、ステップ２８０１に処理を戻す。実行中ではなかった場合は、サーバチェック用スレッドは、サーバチェック用ＲＰＣ実行スレッドを起動する（ステップ２８０４）。
【０２０９】
起動されたサーバチェック用ＲＰＣ実行スレッドは、アクセス管理コンポーネント１１２ｖに対しサーバチェック用ＲＰＣを発行し、応答を待つ（ステップ２８５０）。なお、このサーバチェック用ＲＰＣは、ＲＰＣサーバであるアクセス管理コンポーネント１１２ｖに障害がないかを確認するための、あらかじめ定められた単純な指示のＲＰＣである。サーバチェック用ＲＰＣのアクセス管理コンポーネント１１２ｖによる処理が終了すると、サーバチェック用ＲＰＣ実行スレッドは、サーバチェック用ＲＰＣ終了メッセージを設定しスレッドを終了する（ステップ２８５１）。
【０２１０】
一方、ステップ２８０４でサーバチェック用ＲＰＣ実行スレッドを起動した親スレッドは、タイムアウトカウンタ２５２を初期化した後（ステップ２８０５）、ステップ２８０６のタイムアウトカウンタカウントアップ、ステップ２８０７のタイムアウトチェック、ステップ２８０８のサーバチェック用ＲＰＣ実行スレッドの終了チェックを、所定時間（サーバチェック用ＲＰＣタイムアウト時間）が経過するか、あるいは、サーバチェック用ＲＰＣ実行スレッドが終了するまで繰り返し実行する。なお、ステップ２８０７でのタイムアウトチェックは、タイムアウトカウンタ２５２の値が格納領域３７１に保持されているサーバチェック用ＲＰＣタイムアウト時間に達したかどうかで判定される。また、ステップ２８０８のＲＰＣ終了チェックは、ステップ２８５１で設定される終了メッセージがすでに設定されているかどうかで判定される。
【０２１１】
ステップ２８０７でのタイムアウトチェックの結果、所定時間を経過した場合、サーバチェック用スレッドは、ステップ２８２０でエラーコードを設定し（ステップ２８２０）、スレッドを終了する（ステップ２８２１）。また、ステップ２８０８でのサーバチェック用ＲＰＣ終了チェックの結果、サーバチェック用ＲＰＣ実行スレッドが終了していた場合には、サーバチェック用スレッドは、処理をステップ２８０１に戻す。
【０２１２】
このようにすれば、ＤＢＭＳに接続してから切断するまでの間、あらかじめ定められた一定時間（サーバチェック用ＲＰＣインターバル時間）ごとに、サーバの正常稼働を確認することができる。
【０２１３】
なお、本実施例８ではインターバルタイマ３７５を用いてサーバチェック用ＲＰＣを定期的に発行しているが、ステップ２８９０により、ＳＱＬ＿ＲＰＣの処理の実行とサーバチェック用ＲＰＣが競合した場合は、サーバチェック用ＲＰＣの発行を取りやめ、再びインターバルタイマ３７５を初期化（ステップ２８０１）して、計時を再実行するようになっている。
【０２１４】
さらに、インターバルタイマ３７５はＳＱＬ＿ＲＰＣを、クライアントのＲＰＣドライバ１０２が受け付ける毎に、ステップ２７９０（図２７）で初期化される。従って、ＳＱＬ＿ＲＰＣとサーバチェック用ＲＰＣの何れかが一番最後に発行された時点から、サーバチェック用ＲＰＣインターバル時間内にＳＱＬ＿ＲＰＣが発行されなかった場合に、サーバチェック用ＲＰＣを発行するように動作する。これによって、サーバチェック用ＲＰＣの発行回数を必要最小限とする事ができる。
【０２１５】
Ｃ．クライアントチェック用スレッドの処理
次に、ステップ２７０２（図２７）で起動されたクライアントチェック用スレッド（クライアントチェック処理実行手段）の処理内容を図３３を用いて説明する。
【０２１６】
クライアントチェック用スレッドは、起動されると、まず、クライアントチェックタイマ３７６を初期化し（ステップ３３０１）、ＳＱＬ＿ＲＰＣが処理中かどうかを調べ（ステップ３３０２）、処理中でなければ、クライアントチェックタイマ３７６をカウントアップする（ステップ３３０３）。
【０２１７】
つぎに、クライアントチェック用スレッドは、クライアントチェックタイマ３７６の保持する値が、タイムアウト時間に到達したかを調べ（ステップ３３０４）、達していないと判断した場合にはステップ３３０２に処理を戻す。なお、ここで、タイムアウト時間は、サーバチェック用ＲＰＣインターバル時間格納領域３７４に保持された値を基に設定された時間である。この時間は、インターバルタイマの精度、通信経路での遅延等を考慮すれば、サーバチェック用ＲＰＣインターバル時間の１．２倍から２倍の間の時間とするのが適切である。
【０２１８】
ステップ３３０４において、タイムアウト時間に達したと判断した場合には、クライアントチェック用スレッドは、エラー通知を行い（ステップ３３０５）、スレッドの終了処理を行う（ステップ３３０６）。
【０２１９】
Ｄ．サーバチェック用ＲＰＣのサーバ側での処理
図３４に、サーバチェック用ＲＰＣのサーバ側での処理内容を示す。アクセス管理コンポーネント１１１２ｖは、ステップ２８５０において発行されたサーバチェック用ＲＰＣを受け付けると、クライアントチェックタイマ３７６を初期化し（ステップ３４０１）、終了通知をして処理を終了する（ステップ３４９０）。
【０２２０】
このクライアントチェックタイマ３７６の初期化（ステップ３４０１）は、すでに図２７のステップ２７０３で示したように、ＳＱＬ＿ＲＰＣの処理においてＳＱＬ＿ＲＰＣを受け付けた際にも行われる。したがって、クライアントチェックタイマ３７６によるタイムアウトチェックは、クライアントからサーバチェック用ＲＰＣまたはＳＱＬ＿ＲＰＣの何れかが、タイムアウト時間内に発行されるかどうかを監視していることになる。
【０２２１】
Ｅ．アクセス管理コンポーネント１１２ｖとＳＱＬ変換手段１１５が相互に障害チェックを行う場合の処理
なお、以上の説明では、クライアントのＲＰＣドライバ１０２と、アクセス管理コンポーネント１１２ｖが相互に障害チェックを行う例を示したが、アクセス管理コンポーネント１１２ｖとＳＱＬ変換手段１１５が相互に障害チェックを行う場合も図３２に示すように全く同様に実現できる。この場合の処理の流れを、つぎに説明する。
【０２２２】
まず、アクセス管理コンポーネント１１２ｖは、クライアントのＲＰＣドライバ１０２から通知されたＳＱＬ＿ＲＰＣを受け付けると、該ＳＱＬ＿ＲＰＣが、ＤＢＭＳへの接続文かどうかを判定し（ステップ３２５１）、接続文であった場合にはステップ３２５２〜３２５４を実行した後、ステップ３２９０に制御を移し、接続文でなかった場合には直接ステップ３２９０に制御を移す。
【０２２３】
ステップ３２５２では、アクセス管理コンポーネント１１２ｖは、ＳＱＬ変換手段１１５の物理位置を取得する。ステップ３２５３では、アクセス管理コンポーネント１１２ｖは、格納領域２５１に保持されたＳＱＬタイムアウト時間と、格納領域３７３に保持されたサーバチェック用ＲＰＣタイムアウト時間と、格納領域３７４に保持されたサーバチェック用ＲＰＣインターバル時間とを、ＳＱＬ変換手段１１５に通知する。つぎに、アクセス管理コンポーネント１１２ｖは、サーバチェック用スレッドを起動する（ステップ３２５４）。
【０２２４】
ステップ３２５３による通知を受けたＳＱＬ変換手段１１５は、ＳＱＬタイムアウト時間、サーバチェック用ＲＰＣタイムアウト時間、サーバチェック用ＲＰＣインターバル時間を、それぞれ、格納領域（図示せず）に格納する（ステップ３２０１）。また、ＳＱＬ変換手段１１５は、クライアントチェック用スレッド（アクセス管理手段チェック処理実行手段）を起動する（ステップ３２０２）。
【０２２５】
一方、アクセス管理コンポーネント１１２ｖは、インターバルタイマ３７５を初期化したのち（ステップ３２９０）、ＳＱＬ文がデータベースへの接続を切る切断文であるかどうかを調べ（ステップ３２６０）、切断文であった場合には、ステップ３２５４で起動したサーバチェック用スレッドを終了する（ステップ３２６１）。
【０２２６】
つぎに、アクセス管理コンポーネント１１２ｖは、ＲＰＣ実行スレッドを起動する（ステップ３２６２）。ここで起動されたＲＰＣ実行スレッドは、ＳＱＬ変換手段１１５にＲＰＣを発行してその処理を依頼し（ステップ３２８０）、処理終了通知を待つ。処理を依頼されたＳＱＬ変換手段１１５は、クライアントチェックタイマ３７６を初期化し（ステップ３２０３）、ＳＱＬ文の解析を行う（ステップ２５０２）。
【０２２７】
なお、以上述べた処理の続き（ステップ２５５４〜２５６０、ステップ２５８５、ステップ２５０２〜２５０４）は、実施例７における図２５に図示した処理と同じである。
【０２２８】
Ｆ．各時間の設定例
図３１に、上記実施例におけるＳＱＬタイムアウト時間、サーバチェック用ＲＰＣタイムアウト時間、サーバチェック用ＲＰＣインターバル時間の設定例を示す。本実施例８では、図３１に示すように、ＳＱＬタイムアウト時間はＳＱＬ＿ＴＩＭＥＯＵＴ、サーバチェック用ＲＰＣタイムアウト時間はＳＥＲＶ＿ＴＩＭＥＯＵＴ、サーバチェック用ＲＰＣインターバル時間はＳＥＲＶ＿ＣＨＫＩＮＴという名称の環境変数の格納領域に、それぞれ格納して定義する。これらの設定値は、本実施例８では環境変数であるが、これに限られず、記憶できれば何でもよい。なお、図３１に示した例では、各時間の単位はすべて秒である。
【０２２９】
設定値群３１０１は、アプリケーション・ソフトウェア実行手段１１１およびクライアントＲＰＣドライバ１０２のプロセスの環境変数であり、ユーザーあるいはアプリケーション・ソフトウェア実行手段１１１が設定する。この設定３１０１では、ＳＱＬタイムアウト時間は３６００秒、サーバチェック用ＲＰＣタイムアウト時間は１０秒、サーバチェック用ＲＰＣインターバル時間は６００秒となっている。
【０２３０】
設定値群３１０２は、アクセス管理コンポーネント１１２ｖのプロセスの環境変数であり、データベースへの接続時にアクセス管理コンポーネント１１２ｖが上述の設定値群３１０１の値をクライアントのＲＰＣドライバ１０２から受信し、設定したものである。この設定３１０２では、ＳＱＬタイムアウト時間は３５００秒、サーバチェック用ＲＰＣタイムアウト時間は１０秒、サーバチェック用ＲＰＣインターバル時間は６００秒となっている。ここでは、ＳＱＬタイムアウト時間は、受信した値から１００を引いた値としている。
【０２３１】
設定値群３１０３は、ＳＱＬ変換手段１１５のプロセスの環境変数であり、データベース接続時にＳＱＬ変換手段１１５が上述の設定値群３１０２の値をアクセス管理コンポーネント１１２ｖから受信し設定したものである。この設定３１０３では、ＳＱＬタイムアウト時間は３４００秒、サーバチェック用ＲＰＣタイムアウト時間は１０秒、サーバチェック用ＲＰＣインターバル時間は６００秒となっている。ここでも、ＳＱＬタイムアウト時間は、受信した値から１００を引いた値としている。
【０２３２】
以上述べたように、本実施例８では、サーバチェック用ＲＰＣを用い、サーバの障害検出を、設定したインターバル時間毎に定期的に行うことによって、データベースアクセスのためのＲＰＣ実行前にサーバの障害を認識することができる。また、サーバチェック用ＲＰＣが定期的に発行されているかどうかをサーバ側で監視することによって、クライアント側の障害検出を行うことができる。
【０２３３】
本実施例８では、データベース・アクセス時の処理打ち切り時間をアプリケーション・ソフトウェア実行手段のプロセス毎に設定可能であるので、アプリケーションに応じた適切な処理打ち切り時間が設定できる。さらに、本実施例８によれば、ゲートウェイ情報処理装置上のコンポーネントやＤＢＭＳの障害をＳＱＬ文の発行前に検知可能であり、無駄なＳＱＬ文の発行や、障害検知待ち時間の発生を防止できる。また、本実施例によれば、アクセスを依頼した側のコンポーネントの障害、つまり、クライアント側のコンポーネントの障害（アクセス管理コンポーネント１１２ｖの場合）、または、アクセス管理コンポーネント１１２ｖの障害（ＳＱＬ変換手段１１５の場合）を検知することができる。これにより、障害が発生したコンポーネントに対応するプロセスを異常終了させることができ、ゲートウェイ情報処理装置の資源、例えば、ＣＰＵ１０００や、主記憶装置１００１を、他のプロセスが有効利用することができる。
【０２３４】
（上記各実施例１〜８の効果）
以上述べた各実施例１〜８では、ＳＱＬ仕様の異なる２種類のＤＢＭＳが混在した場合について説明したが、何種類のＤＢＭＳが混在してもよいし、ＳＱＬ仕様だけでなく、通信プロトコルが異なっていてもよい。また、各情報処理装置間がＬＡＮによって接続された例を示したが、ＬＡＮでなく電話回線などのＷＡＮ(Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ)による接続、あるいはＬＡＮとＷＡＮを併用した接続環境にも本発明は適用できる。さらに、以上述べた実施例におけるＲＰＣは、同一の情報処理装置内のプログラム間か、別の情報処理装置上のプログラム間かに拘らず処理の依頼と該処理結果の受取が可能なインタフェース機構であれば何を用いてもよい。また、ゲートウェイ情報処理装置の選択や、タイムアウト監視などは、データベース・アクセス・システムに限らず、ＲＰＣを用いた他の分散処理システムへも適用できる。なお、上記実施例１〜８は、任意に組み合わせることができる。
【０２３５】
また、ひとつのＳＱＬ変換手段１１５は、同一のＳＱＬ仕様を備える複数のＤＢＭＳに対するデータベース・アクセスを処理できる。このため、運用しているＤＢＭＳごとのＳＱＬ変換手段１１５を用意する必要がなく、少なくとも、運用しているＤＢＭＳの種類に相当する数のＳＱＬ変換手段１１５を導入すればたりるため、システム全体のコストを低減できる。
【０２３６】
【発明の効果】
本発明によれば、複数のゲートウェイ情報処理装置に負荷を分散することができる。また、本発明によれば、ゲートウェイ情報処理装置を経由することのオーバーヘッドを低減することができる。さらに本発明によれば、非標準仕様のＳＱＬを用いたアプリケーション・ソフトウェアから非標準仕様のＳＱＬを用いたＤＢＭＳにアクセスすることできる。
【０２３７】
また、本発明によれば、クライアントのアプリケーション・ソフトウェア毎に自由な文字コードセットを使用することができる。さらに、本発明によれば、アプリケーション・ソフトウエア実行手段からＤＢＭＳへの接続単位に、自由な文字コードセットを使用することができる。
【０２３８】
また、本発明によれば、データベース・アクセス時に、クライアントのアプリケーション・ソフトウェアごとに任意に設定した時間が経過すると、その処理を打ち切ることができる。さらに、本発明によれば、ゲートウェイ情報処理装置上のコンポーネントやＤＢＭＳの障害をＳＱＬ文の発行前に検知することができ、接続中のクライアントの障害をゲートウェイ情報処理装置側で検出できる。
【図面の簡単な説明】
【図１】実施例１におけるデータベース・アクセス・システムの構成図である。
【図２】従来のデータベース・アクセス・アクセス・システムの構成例を示す構成図である。
【図３】従来のデータベース・アクセス・アクセス・システムの他の構成例を示す構成図である。
【図４】実施例１においてクライアント情報処理装置からアクセス管理コンポーネントに発行するＲＰＣの処理を示すフローチャートである。
【図５】実施例１においてアクセス管理コンポーネントからＳＱＬ変換手段に発行するＲＰＣの処理を示すフローチャートである。
【図６】実施例３のデータベース・アクセス・システムの構成図である。
【図７】実施例３におけるクライアントでのＳＱＬ処理を示すフローチャートである。
【図８】実施例４のデータベース・アクセス・システムの構成図である。
【図９】実施例２のデータベース・アクセス・システムの構成図である。
【図１０】実施例１におけるゲートウェイ情報処理装置１３０の動作を示す説明図である。
【図１１】実施例５のデータベース・アクセス・システムの構成図である。
【図１２】実施例２において、サーバ・コンポーネントを乱数を用いて選択する場合の処理を示すフローチャートである。
【図１３】実施例２において、サーバ・コンポーネントを選択するために用意した優先順位テーブルの内容の一例を示す図である。
【図１４】実施例２において、サーバ・コンポーネントを負荷状態に応じて選択する場合の処理を示すフローチャートである。
【図１５】実施例２において、サーバ・コンポーネントを応答時間に応じて選択する場合の処理を示すフローチャートである。
【図１６】実施例２において、サーバ・コンポーネントをブロードキャストＲＰＣを用いて選択する場合の処理を示すフローチャートである。
【図１７】実施例２のサーバ情報テーブルの例を示す説明図である。
【図１８】実施例１を用いたシステムの他の構成を示す図である。
【図１９】実施例５のデータベース・アクセス・システムの他の構成を示す構成図である。
【図２０】実施例２において、ブロードキャストによる処理依頼への応答を、サーバ・コンポーネントが動作する情報処理装置の負荷状態に応じて遅延させるための処理を示すフローチャートである。
【図２１】実施例６において、クライアント情報処理装置からアクセス管理コンポーネントに発行するＲＰＣの処理を示すフローチャートである。
【図２２】実施例６において、アクセス管理コンポーネントからＳＱＬ変換手段に発行するＲＰＣの処理を示すフローチャートである。
【図２３】実施例１において、アクセス管理コンポーネント１１２ｖで処理するＳＱＬ文の一例を示す図。
【図２４】実施例１において、ＳＱＬ変換手段によって変換したＳＱＬ文の例を示す図。
【図２５】実施例７において、クライアント情報処理装置からアクセス管理コンポーネントに発行するＲＰＣの処理を示すフローチャートである。
【図２６】実施例７において、アクセス管理コンポーネントからＳＱＬ変換手段に発行するＲＰＣの処理を示すフローチャートである。
【図２７】実施例８において、クライアント情報処理装置からアクセス管理コンポーネントに発行するＲＰＣの処理を示すフローチャートである。
【図２８】実施例８において、サーバの障害監視処理を行うサーバチェック用スレッドの処理を示すフローチャートである。
【図２９】実施例７において、各コンポーネント間で発行するＲＰＣのシーケンスを示す説明図である。
【図３０】実施例６における文字コードの設定例を示す説明図である。
【図３１】実施例７および８における障害検出に関する時間設定の例を示す説明図である。
【図３２】実施例８において、アクセス管理コンポーネントからＳＱＬ変換＿Ｘコンポーネントに発行するＲＰＣの処理を示すフローチャートである。
【図３３】実施例８におけるクライアントチェック用スレッドの処理を示すフローチャートである。
【図３４】実施例８におけるサーバチェック用ＲＰＣのサーバ側の処理を示すフローチャートである。
【図３５】実施例１のサーバ情報テーブルの例を示す説明図である。
【図３６】実施例７のデータベース・アクセス・システムの構成を示す構成図である。
【図３７】実施例８のデータベース・アクセス・システムの構成を示す構成図である。
【図３８】実施例６のデータベース・アクセス・システムの構成を示す構成図である。
【図３９】実施例１のデータベース・アクセス・システムのハードウェア構成図である。
【符号の説明】
１００…ＬＡＮ、１０２…ＲＰＣドライバ、１１０…クライアント情報処理装置、１１１…アプリケーション・ソフトウェア実行手段、１１２…アクセス管理コンポーネント、１１５…ＳＱＬ変換手段、１２０…サーバ情報処理装置、１２１…ＤＢＭＳ、１２２…データベースドライバ、１２３…ＬＡＮドライバ、１２４…外部記憶装置、１３０…ゲートウェイ情報処理装置、１５０…ネームサーバ情報処理装置、１５１…ネームサーバ・コンポーネント、１３００…サーバ優先順位テーブル、１７００…サーバ情報テーブル。
【図１】
0003693365.tif 000002
【図２】
0003693365.tif 000003
【図３】
0003693365.tif 000004
【図４】
0003693365.tif 000005
【図５】
0003693365.tif 000006
【図６】
0003693365.tif 000007
【図７】
0003693365.tif 000008
【図８】
0003693365.tif 000009
【図９】
0003693365.tif 000010
【図１０】
0003693365.tif 000011
【図１１】
0003693365.tif 000012
【図１２】
0003693365.tif 000013
【図１３】
0003693365.tif 000014
【図１４】
0003693365.tif 000015
【図１５】
0003693365.tif 000016
【図１６】
0003693365.tif 000017
【図１７】
0003693365.tif 000018
【図１８】
0003693365.tif 000019
【図１９】
0003693365.tif 000020
【図２０】
0003693365.tif 000021
【図２１】
0003693365.tif 000022
【図２２】
0003693365.tif 000023
【図２３】
0003693365.tif 000024
【図２４】
0003693365.tif 000025
【図２５】
0003693365.tif 000026
【図２６】
0003693365.tif 000027
【図２７】
0003693365.tif 000028
【図２８】
0003693365.tif 000029
【図２９】
0003693365.tif 000030
【図３０】
0003693365.tif 000031
【図３１】
0003693365.tif 000032
【図３２】
0003693365.tif 000033
【図３３】
0003693365.tif 000034
【図３４】
0003693365.tif 000035
【図３５】
0003693365.tif 000036
【図３６】
0003693365.tif 000037
【図３７】
0003693365.tif 000038
【図３８】
0003693365.tif 000039
【図３９】
0003693365.tif 000040