(57)【要約】【課題】クライアント装置が処理要求を送信する際の通信量を、クライアント装置からサーバ装置に対して処理要求を直接送信する場合と比較して、削減する。【解決手段】データ送受信部３１は、クライアント装置２０からのリクエスト（処理要求）を受信する。リクエスト実行部４２は、データ受信部３１により受信された１つのリクエストに対して、複数回のリクエストをＡＰＩサーバ装置３０に対して実行する。プロトコル変換部４３は、同期通信を行う通信プロトコルと非同期通信を行う通信プロトコルとの間のプロトコル変換を行う。また、データ送受信部３１は、ＡＰＩサーバ装置３０との間で同期通信を行い、クライアント装置２０との間では非同期通信を行うことにより、複数回のリクエストに対するＡＰＩサーバ装置３０からのそれぞれの処理結果をクライアント装置２０に順次返信する。【選択図】図３
2019105977.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置からの処理要求を受信する受信手段と、
前記受信手段により受信された１つの処理要求に対して、複数回の処理要求をサーバ装置に対して実行する処理要求実行手段と、
同期通信を行う通信プロトコルと非同期通信を行う通信プロトコルとの間のプロトコル変換を行う変換手段と、
前記サーバ装置との間で同期通信を行い、前記クライアント装置との間では非同期通信を行うことにより、当該複数回の処理要求に対する前記サーバ装置からのそれぞれの処理結果を前記クライアント装置に順次返信する返信手段と、
を備えたゲートウェイ装置。
【請求項２】
前記サーバ装置から取得された処理結果を参照して、次にどのような処理要求を前記サーバ装置に対して実行すれば前記クライアント装置から受信した処理要求を実現できるかを解析する解析手段をさらに備え、
前記処理要求実行手段は、前記解析手段による解析結果に基づいて前記サーバ装置に対して次の処理要求を実行する請求項１記載のゲートウェイ装置。
【請求項３】
前記サーバ装置が、ＡＰＩ処理を実行するためのＡＰＩサーバ装置であり、
前記処理要求実行手段は、前記受信手段により受信された１つの処理要求に対して、複数回のＡＰＩ呼び出し処理を前記ＡＰＩサーバ装置に対して行う請求項１又は２記載のゲートウェイ装置。
【請求項４】
前記処理要求実行手段は、前記受信手段により指定フォルダの全ての下層フォルダのフォルダ情報及び前記指定フォルダと前記指定フォルダの下層フォルダに含まれる全てのファイルのファイル情報の取得を要求する処理要求が受信された場合、前記サーバ装置に対して前記指定フォルダの直接下層のフォルダ情報及びファイル情報を取得する処理要求の実行を複数回繰り返すことにより、前記指定フォルダの全ての下層フォルダのフォルダ情報及び前記指定フォルダと前記指定フォルダの下層フォルダに含まれる全てのファイルのファイル情報を取得する請求項１記載のゲートウェイ装置。
【請求項５】
前記返信手段は、前記サーバ装置との間で同期通信を行い、前記クライアント装置との間では非同期通信を行うことにより、前記サーバ装置から取得されたフォルダ情報及びファイル情報を順次前記クライアント装置に返信する請求項４記載のゲートウェイ装置。
【請求項６】
前記処理要求実行手段は、複数のパラメータを指定した処理要求が受信された場合、前記サーバ装置に対して複数のパラメータのうちの１つのパラメータを指定した処理要求の実行を複数回繰り返すことにより、複数のパラメータのそれぞれを指定した場合の処理結果を取得する請求項１記載のゲートウェイ装置。
【請求項７】
前記返信手段は、前記サーバ装置との間で同期通信を行い、前記クライアント装置との間では非同期通信を行うことにより、前記サーバ装置から取得された複数のパラメータのそれぞれを指定した場合の処理結果を順次前記クライアント装置に返信する請求項６記載のゲートウェイ装置。
【請求項８】
前記処理要求実行手段は、順番に行われるべき複数の処理内容を指定した処理要求が受信された場合、前記サーバ装置に対して最初の処理内容を指定した処理要求を実行し、次の処理内容を得られた処理結果に実行する処理要求を前記サーバ装置に対して実行することにより、複数の処理内容が実行された後の処理結果を取得する請求項１記載のゲートウェイ装置。
【請求項９】
前記返信手段は、前記サーバ装置との間で同期通信を行い、前記クライアント装置との間では非同期通信を行うことにより、前記サーバ装置から取得された全ての処理内容が実行される前の処理結果および全ての処理内容が実行された後の処理結果を順次前記クライアント装置に返信する請求項８記載のゲートウェイ装置。
【請求項１０】
前記処理要求実行手段は、複数のサーバ装置にファイルデータを格納すべき処理要求が受信された場合、前記複数のサーバ装置に対してそれぞれファイルデータを格納する処理を順次実行して、ファイルデータの格納結果を取得する請求項１記載のゲートウェイ装置。
【請求項１１】
前記返信手段は、前記サーバ装置との間で同期通信を行い、前記クライアント装置との間では非同期通信を行うことにより、前記複数のサーバ装置から取得されたファイルデータの格納結果を順次前記クライアント装置に返信する請求項１０記載のゲートウェイ装置。
【請求項１２】
処理要求を行うクライアント装置と、
受信した処理要求に基づいた処理を実行して、その処理結果を返信するサーバ装置と、
クライアント装置からの処理要求を受信する受信手段と、前記受信手段により受信された１つの処理要求に対して、複数回の処理要求をサーバ装置に対して実行する処理要求実行手段と、同期通信を行う通信プロトコルと非同期通信を行う通信プロトコルとの間のプロトコル変換を行う変換手段と、前記サーバ装置との間で同期通信を行い前記クライアント装置との間では非同期通信を行うことにより、当該複数回の処理要求に対する前記サーバ装置からのそれぞれの処理結果を前記クライアント装置に順次返信する返信手段とを備えたゲートウェイ装置と、
を有するクライアントサーバシステム。
【請求項１３】
クライアント装置からの処理要求を受信する受信ステップと、
前記受信ステップにおいて受信された１つの処理要求に対して、複数回の処理要求をサーバ装置に対して実行する処理要求実行ステップと、
同期通信を行う通信プロトコルと非同期通信を行う通信プロトコルとの間のプロトコル変換を行う変換ステップと、
前記サーバ装置との間で同期通信を行い、前記クライアント装置との間では非同期通信を行うことにより、当該複数回の処理要求に対する前記サーバ装置からのそれぞれの処理結果を前記クライアント装置に順次返信する返信ステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲートウェイ装置、クライアントサーバシステムおよびプログラムに関する。
【背景技術】
【０００２】
特許文献１には、ＷｅｂＳｏｃｋｅｔを用いる通信と、ＷｅｂＳｏｃｋｅｔ以外のプロトコルを用いる通信とを仲介するゲートウェイ装置を用いることにより、ＷｅｂＳｏｃｋｅｔ通信に非対応のＷｅｂサービスを利用する場合においても、クライアントアプリケーションからのリクエストによるＷｅｂＳｏｃｋｅｔ通信を可能とする通信方法が開示されている。
【０００３】
特許文献２には、既存システムとＡＰＩ（Application Programming Interface）ゲートウェイとの間において、既存システムとのパケット送受信シーケンスをデータベースに予め格納しておき、受信したパケット内のパラメータを抽出して、データベースに格納されているパケット内のパラメータを抽出されたパラメータに置換して、パラメータが置換されたパケットを用いて既存システムとの間でパケットの送受信を実施するようにしたＡＰＩ変換システムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−０４５８９７号公報
【特許文献２】特開２０１７−０５４４１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、クライアント装置が処理要求を送信する際の通信量を、クライアント装置からサーバ装置に対して処理要求を直接送信する場合と比較して、削減することが可能なゲートウェイ装置、クライアントサーバシステムおよびプログラムを提供することである。
【課題を解決するための手段】
【０００６】
［ゲートウェイ装置］
請求項１に係る本発明は、クライアント装置からの処理要求を受信する受信手段と、
前記受信手段により受信された１つの処理要求に対して、複数回の処理要求をサーバ装置に対して実行する処理要求実行手段と、
同期通信を行う通信プロトコルと非同期通信を行う通信プロトコルとの間のプロトコル変換を行う変換手段と、
前記サーバ装置との間で同期通信を行い、前記クライアント装置との間では非同期通信を行うことにより、当該複数回の処理要求に対する前記サーバ装置からのそれぞれの処理結果を前記クライアント装置に順次返信する返信手段とを備えたゲートウェイ装置である。
【０００７】
請求項２に係る本発明は、前記サーバ装置から取得された処理結果を参照して、次にどのような処理要求を前記サーバ装置に対して実行すれば前記クライアント装置から受信した処理要求を実現できるかを解析する解析手段をさらに備え、
前記処理要求実行手段は、前記解析手段による解析結果に基づいて前記サーバ装置に対して次の処理要求を実行する請求項１記載のゲートウェイ装置である。
【０００８】
請求項３に係る本発明は、前記サーバ装置が、ＡＰＩ処理を実行するためのＡＰＩサーバ装置であり、
前記処理要求実行手段は、前記受信手段により受信された１つの処理要求に対して、複数回のＡＰＩ呼び出し処理を前記ＡＰＩサーバ装置に対して行う請求項１又は２記載のゲートウェイ装置である。
【０００９】
請求項４に係る本発明は、前記処理要求実行手段が、前記受信手段により指定フォルダの全ての下層フォルダのフォルダ情報及び前記指定フォルダと前記指定フォルダの下層フォルダに含まれる全てのファイルのファイル情報の取得を要求する処理要求が受信された場合、前記サーバ装置に対して前記指定フォルダの直接下層のフォルダ情報及びファイル情報を取得する処理要求の実行を複数回繰り返すことにより、前記指定フォルダの全ての下層フォルダのフォルダ情報及び前記指定フォルダと前記指定フォルダの下層フォルダに含まれる全てのファイルのファイル情報を取得する請求項１記載のゲートウェイ装置である。
【００１０】
請求項５に係る本発明は、前記返信手段が、前記サーバ装置との間で同期通信を行い、前記クライアント装置との間では非同期通信を行うことにより、前記サーバ装置から取得されたフォルダ情報及びファイル情報を順次前記クライアント装置に返信する請求項４記載のゲートウェイ装置である。
【００１１】
請求項６に係る本発明は、前記処理要求実行手段が、複数のパラメータ（媒介変数）を指定した処理要求が受信された場合、前記サーバ装置に対して複数のパラメータのうちの１つのパラメータを指定した処理要求の実行を複数回繰り返すことにより、複数のパラメータのそれぞれを指定した場合の処理結果を取得する請求項１記載のゲートウェイ装置である。
【００１２】
請求項７に係る本発明は、前記返信手段が、前記サーバ装置との間で同期通信を行い、前記クライアント装置との間では非同期通信を行うことにより、前記サーバ装置から取得された複数のパラメータのそれぞれを指定した場合の処理結果を順次前記クライアント装置に返信する請求項６記載のゲートウェイ装置である。
【００１３】
請求項８に係る本発明は、前記処理要求実行手段が、順番に行われるべき複数の処理内容を指定した処理要求が受信された場合、前記サーバ装置に対して最初の処理内容を指定した処理要求を実行し、次の処理内容を得られた処理結果に実行する処理要求を前記サーバ装置に対して実行することにより、複数の処理内容が実行された後の処理結果を取得する請求項１記載のゲートウェイ装置。
【００１４】
請求項９に係る本発明は、前記返信手段が、前記サーバ装置との間で同期通信を行い、前記クライアント装置との間では非同期通信を行うことにより、前記サーバ装置から取得された全ての処理内容が実行される前の処理結果および全ての処理内容が実行された後の処理結果を順次前記クライアント装置に返信する請求項８記載のゲートウェイ装置である。
【００１５】
請求項１０に係る本発明は、前記処理要求実行手段が、複数のサーバ装置にファイルデータを格納すべき処理要求が受信された場合、前記複数のサーバ装置に対してそれぞれファイルデータを格納する処理を順次実行して、ファイルデータの格納結果を取得する請求項１記載のゲートウェイ装置である。
【００１６】
請求項１１に係る本発明は、前記返信手段が、前記サーバ装置との間で同期通信を行い、前記クライアント装置との間では非同期通信を行うことにより、前記複数のサーバ装置から取得されたファイルデータの格納結果を順次前記クライアント装置に返信する請求項１０記載のゲートウェイ装置である。
【００１７】
[クライアントサーバシステム]
請求項１２に係る本発明は、処理要求を行うクライアント装置と、
受信した処理要求に基づいた処理を実行して、その処理結果を返信するサーバ装置と、
クライアント装置からの処理要求を受信する受信手段と、前記受信手段により受信された１つの処理要求に対して、複数回の処理要求をサーバ装置に対して実行する処理要求実行手段と、同期通信を行う通信プロトコルと非同期通信を行う通信プロトコルとの間のプロトコル変換を行う変換手段と、前記サーバ装置との間で同期通信を行い前記クライアント装置との間では非同期通信を行うことにより、当該複数回の処理要求に対する前記サーバ装置からのそれぞれの処理結果を前記クライアント装置に順次返信する返信手段とを備えたゲートウェイ装置とを有するクライアントサーバシステムである。
【００１８】
[プログラム]
請求項１３に係る本発明は、クライアント装置からの処理要求を受信する受信ステップと、
前記受信ステップにおいて受信された１つの処理要求に対して、複数回の処理要求をサーバ装置に対して実行する処理要求実行ステップと、
同期通信を行う通信プロトコルと非同期通信を行う通信プロトコルとの間のプロトコル変換を行う変換ステップと、
前記サーバ装置との間で同期通信を行い、前記クライアント装置との間では非同期通信を行うことにより、当該複数回の処理要求に対する前記サーバ装置からのそれぞれの処理結果を前記クライアント装置に順次返信する返信ステップとをコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１９】
請求項１に係る本発明によれば、クライアント装置が処理要求を送信する際の通信量を、クライアント装置からサーバ装置に対して処理要求を直接送信する場合と比較して、削減することが可能なゲートウェイ装置を提供することができる。
【００２０】
請求項２に係る本発明によれば、クライアント装置が処理要求を送信する際の通信量を、クライアント装置からサーバ装置に対して処理要求を直接送信する場合と比較して、削減することが可能なゲートウェイ装置を提供することができる。
【００２１】
請求項３に係る本発明によれば、クライアント装置が処理要求を送信する際の通信量を、クライアント装置からＡＰＩサーバ装置に対して処理要求を直接送信する場合と比較して、削減することが可能なゲートウェイ装置を提供することができる。
【００２２】
請求項４に係る本発明によれば、クライアント装置がサーバ装置における指定フォルダの全ての下層フォルダのフォルダ情報及び指定フォルダと指定フォルダの下層フォルダに含まれる全てのファイルのファイル情報を取得する際に、クライアント装置が処理要求を送信する際の通信量を、クライアント装置からサーバ装置に対して処理要求を直接送信する場合と比較して、削減することが可能なゲートウェイ装置を提供することができる。
【００２３】
請求項５に係る本発明によれば、サーバ装置が指定フォルダの全ての下層フォルダのフォルダ情報及び指定フォルダと指定フォルダの下層フォルダに含まれる全てのファイルのファイル情報の取得を要求する処理要求に対応していない場合でも、クライアント装置は、１回の処理要求を送信するだけで、サーバ置における指定フォルダの全ての下層フォルダのフォルダ情報及び指定フォルダと指定フォルダの下層フォルダに含まれる全てのファイルのファイル情報を取得することが可能なゲートウェイ装置を提供することができる。
【００２４】
請求項６に係る本発明によれば、サーバ装置においてパラメータを指定した処理要求を複数回実行する際に、クライアント装置が処理要求を送信する際の通信量を、クライアント装置からサーバ装置に対して処理要求を直接送信する場合と比較して、削減することが可能なゲートウェイ装置を提供することができる。
【００２５】
請求項７に係る本発明によれば、クライアント装置は、１回の処理要求を送信するだけで、サーバ置においてパラメータを指定した処理要求を複数回実行した場合の複数の処理結果を取得することが可能なゲートウェイ装置を提供することができる。
【００２６】
請求項８に係る本発明によれば、サーバ装置において順番に行われるべき複数の処理要求を実行する際に、クライアント装置が処理要求を送信する際の通信量を、クライアント装置からサーバ装置に対して処理要求を直接送信する場合と比較して、削減することが可能なゲートウェイ装置を提供することができる。
【００２７】
請求項９に係る本発明によれば、クライアント装置は、１回の処理要求を送信するだけで、サーバ装置において順番に行われるべき複数の処理要求を実行した場合の処理結果を取得することが可能なゲートウェイ装置を提供することができる。
【００２８】
請求項１０に係る本発明によれば、複数のサーバ装置に対してそれぞれファイルデータを格納する処理要求を実行する際に、クライアント装置が処理要求を送信する際の通信量を、クライアント装置からサーバ装置に対して処理要求を直接送信する場合と比較して、削減することが可能なゲートウェイ装置を提供することができる。
【００２９】
請求項１１に係る本発明によれば、クライアント装置は、１回の処理要求を送信するだけで、複数のサーバ装置に対してファイルデータを格納することが可能なゲートウェイ装置を提供することができる。
【００３０】
請求項１２に係る本発明によれば、クライアント装置が処理要求を送信する際の通信量を、クライアント装置からサーバ装置に対して処理要求を直接送信する場合と比較して、削減することが可能なクライアントサーバシステムを提供することができる。
【００３１】
請求項１３に係る本発明によれば、クライアント装置が処理要求を送信する際の通信量を、クライアント装置からサーバ装置に対して処理要求を直接送信する場合と比較して、削減することが可能なプログラムを提供することができる。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施形態のクライアントサーバシステムの構成を示すシステム図である。
【図２】本発明の一実施形態におけるゲートウェイ装置１０のハードウェア構成を示すブロック図である。
【図３】本発明の一実施形態におけるゲートウェイ装置１０の機能構成を示すブロック図である。
【図４】本発明の一実施形態のゲートウェイ装置１０の動作を示すフローチャートである。
【図５】図４のフローチャートを参照して説明したゲートウェイ装置１０の動作を説明するためのシーケンスチャートである。
【図６】ゲートウェイ装置１０の具体的な処理例１を説明する際に使用するフォルダ構成例を説明するための図である。
【図７】本発明の一実施形態のゲートウェイ装置１０における具体的な処理例１の動作を説明するためのフローチャートである。
【図８】図７のフローチャートを参照して説明したゲートウェイ装置１０の具体的な処理例１における動作を説明するためのシーケンスチャートである。
【図９】本発明の一実施形態のゲートウェイ装置１０における具体的な処理例２の動作を説明するためのフローチャートである。
【図１０】図９のフローチャートを参照して説明したゲートウェイ装置１０の具体的な処理例２における動作を説明するためのシーケンスチャートである。
【図１１】本発明の一実施形態のゲートウェイ装置１０における具体的な処理例３の動作を説明するためのシーケンスチャートである。
【図１２】本発明の一実施形態のゲートウェイ装置１０における具体的な処理例４の動作を説明するためのシステム構成を説明するための図である。
【図１３】本発明の一実施形態のゲートウェイ装置１０における具体的な処理例４の動作を説明するためのシーケンスチャートである。
【発明を実施するための形態】
【００３３】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００３４】
図１は本発明の一実施形態のクライアントサーバシステムの構成を示すシステム図である。
【００３５】
本発明の一実施形態のクライアントサーバシステムは、図１に示されるように、ゲートウェイ装置１０と、クライアント装置２０と、ＡＰＩ（Application Programming Interface）サーバ装置３０とから構成されている。
【００３６】
クライアント装置２０は、ある特定の処理を実施するためのリクエスト（処理要求）を行う。具体的には、クライアント装置２０は、ゲートウェイ装置１０に対して実行する処理内容が指定されたリクエストを送信する。
【００３７】
ゲートウェイ装置１０は、通信プロトコルの異なる複数のネットワーク間の接続を行うための装置であり、本実施形態では、クライアント装置２０と、ＡＰＩサーバ装置２０との間の通信プログラム変換を行っている。
【００３８】
このようなゲートウェイ装置１０が設けられていることにより、本実施形態のクライアントサーバシステムでは、クライアント装置２０とゲートウェイ装置１０との間では非同期通信によりデータの送受信が行われ、ＡＰＩサーバ装置３０とゲートウェイ装置１０との間では同期通信によりデータの送受信が行われる。
【００３９】
ＡＰＩサーバ装置３０は、ゲートウェイ装置１０を介して受信したリクエストに基づいた処理を実行して、その処理結果をゲートウェイ装置２０に返信する。
【００４０】
なお、本実施形態では、ＡＰＩサーバ装置３０は、ＡＰＩ処理を実行するためのサーバ装置であり、ゲートウェイ装置１０を介して受信したＡＰＩ呼び出しに基づくＡＰＩ呼び出し処理を実行して、その処理結果をゲートウェイ装置２０に返信する。
【００４１】
次に、本実施形態のクライアントサーバシステムにおけるゲートウェイ装置１０のハードウェア構成を図２に示す。
【００４２】
ゲートウェイ装置１０は、図２に示されるように、ＣＰＵ１１、メモリ１２、ハードディスクドライブ（ＨＤＤ）等の記憶装置１３、ネットワーク３０を介して外部の装置等との間でデータの送信及び受信を行う通信インタフェース（ＩＦ）１４、タッチパネル又は液晶ディスプレイ並びにキーボードを含むユーザインタフェース（ＵＩ）装置１５を有する。これらの構成要素は、制御バス１６を介して互いに接続されている。
【００４３】
ＣＰＵ１１は、メモリ１２または記憶装置１３に格納された制御プログラムに基づいて所定の処理を実行して、ゲートウェイ装置１０の動作を制御する。なお、本実施形態では、ＣＰＵ１１は、メモリ１２または記憶装置１３内に格納された制御プログラムを読み出して実行するものとして説明したが、当該プログラムをＣＤ−ＲＯＭ等の記憶媒体に格納してＣＰＵ１１に提供することも可能である。
【００４４】
図３は、上記の制御プログラムが実行されることにより実現されるゲートウェイ装置１０の機能構成を示すブロック図である。
【００４５】
本実施形態のゲートウェイ装置１０は、図３に示されるように、データ受信部３１と、ゲートウェイ装置１０の動作を制御している制御部３２とを備えている。また、制御部３２は、解析部４１と、リクエスト実行部４２と、プロトコル変換部４３とから構成されている。
【００４６】
データ送受信部３１は、クライアント装置２０およびＡＰＩサーバ装置３０との間でデータの送受信を行っている。具体的には、データ送受信部３１は、クライアント装置２０からのリクエスト（処理要求）を受信する。
【００４７】
また、データ送受信部３１は、ＡＰＩサーバ装置３０との間で同期通信を行い、クライアント装置２０との間では非同期通信を行うことにより、複数回のリクエストに対するＡＰＩサーバ装置３０からのそれぞれの処理結果をクライアント装置２０に順次返信する。
【００４８】
解析部４１は、ＡＰＩサーバ装置３０から取得された処理結果を参照して、次にどのようなリクエストをＡＰＩサーバ装置３０に対して実行すればクライアント装置２０から受信したリクエストを実現できるかを解析する。
【００４９】
リクエスト実行部４２は、データ受信部３１により受信された１つのリクエストに対して、複数回のリクエストをＡＰＩサーバ装置３０に対して実行する。
【００５０】
また、あるリクエストに対する処理結果がＡＰＩサーバ装置３０から送信されてきた場合、リクエスト実行部４２は、解析部４１による解析結果に基づいてＡＰＩサーバ装置３０に対して次の処理要求を実行する。
【００５１】
なお、本実施形態ではＡＰＩサーバ装置３０はＡＰＩ呼び出し処理を実行するためのサーバ装置であるため、リクエスト実行部４２は、デー送受信部３１によってクライアント装置２０から受信された１つのリクエストに対して、複数回のＡＰＩ呼び出し処理をＡＰＩサーバ装置３０に対して行う。
【００５２】
プロトコル変換部４３は、同期通信を行う通信プロトコルと非同期通信を行う通信プロトコルとの間のプロトコル変換を行う。
【００５３】
次に、本実施形態のクライアントサーバシステムにおけるゲートウェイ装置１０の動作について図面を参照して詳細に説明する。
【００５４】
先ずゲートウェイ装置１０の動作を図４のフローチャートを参照して説明する。
【００５５】
ゲートウェイ装置１０がクライアント装置２０からのリクエストを受信すると(ステップＳ１０１)、ゲートウェイ装置１０は、クライアント装置２０から受信したリクエストの解析を行う(ステップＳ１０２)。
【００５６】
そして、ゲートウェイ装置１０は、その解析結果に基づいて、クライアント装置２０から受信したリクエストを実現するためのリクエストをＡＰＩサーバ装置３０に送信する(ステップＳ１０３)。
【００５７】
そして、ゲートウェイ装置１０は、ＡＰＩサーバ装置３０において処理が実行され、ＡＰＩサーバ装置３０からの処理結果を受信すると(ステップＳ１０４)、クライアント装置２０に処理結果を返信する(ステップＳ１０５)。
【００５８】
そして、ゲートウェイ装置１０は、ＡＰＩサーバ装置３０から受信した処理結果を解析して（ステップＳ１０６）、クライアント装置２０から受信したリクエストを実現するためには新たなリクエストが必要だと判定した場合（ステップＳ１０７においてｙｅｓ）、ＡＰＩサーバ装置３０に新たなリクエストを送信する（ステップＳ１０３）。
【００５９】
このようにしてステップＳ１０３〜Ｓ１０６の処理が繰り返され、クライアント装置２０から受信したリクエストの全てが実現されると、ゲートウェイ装置１０は、新たなリクエストは不要と判定して処理を終了する（ステップＳ１０７においてｎｏ）。
【００６０】
次に、図４のフローチャートを参照して説明したゲートウェイ装置１０の動作を、図５のシーケンスチャートを参照して説明する。なお、図５のシーケンスチャートでは、ゲートウェイ装置１０は、クライアント装置２０からのリクエストに対して、３回のリクエスト（ＡＰＩ呼び出し）をＡＰＩサーバ装置３０に送信するものとして説明する。
【００６１】
クライアント装置２０がゲートウェイ装置１０にリクエストを送信すると（ステップＳ２０１）、ゲートウェイ装置１０は、クライアント装置２０から受信したリクエストを実現するためのＡＰＩ呼び出し（リクエスト）をＡＰＩサーバ装置３０に送信する(ステップＳ２０２)。
【００６２】
そして、ＡＰＩサーバ装置３０では、受信したＡＰＩ呼び出しに基づいて処理が実行され、その処理結果がゲートウェイ装置１０に送信される（ステップＳ２０３）。すると、ゲートウェイ装置１０は、ＡＰＩサーバ装置３０から受信した処理結果をクライアント装置２０に返信する(ステップＳ２０４)。
【００６３】
さらに、ゲートウェイ装置１０は新たなＡＰＩ呼び出し（ステップＳ２０５）をＡＰＩサーバ装置３０に送信して、ＡＰＩサーバ装置３０からゲートウェイ装置１０に処理結果が返信され（ステップＳ２０６）、ゲートウェイ装置１０からクライアント装置２０に処理結果が返信される（ステップＳ２０７）。
【００６４】
最後に、ゲートウェイ装置１０は新たなＡＰＩ呼び出し（ステップＳ２０８）をＡＰＩサーバ装置３０に送信して、ＡＰＩサーバ装置３０からゲートウェイ装置１０に最終的な処理結果が返信され（ステップＳ２０９）、ゲートウェイ装置１０からクライアント装置２０に最終的な処理結果が返信される（ステップＳ２１０）。
【００６５】
図５のシーケンスチャートを参照すると、クライアント装置２０からゲートウェイ装置１０に対しては１回のリクエスト（ステップＳ２０１）のみが行われるだけで、ゲートウェイ装置１０からＡＰＩサーバ装置３０に対しては３回のＡＰＩ呼び出し（ステップＳ２０２、Ｓ２０５、Ｓ２０８）が行われているのが分かる。
【００６６】
次に、上記で説明した本実施形態のクライアントサーバシステムにおけるゲートウェイ装置１０の動作を、下記の具体的な処理例１〜４を用いて説明する
【００６７】
［具体的な処理例１］
先ず、具体的な処理例１として、ＡＰＩサーバ装置３０が、ストレージサービスを提供しており、クライアント装置２０がＡＰＩサーバ装置３０における指定フォルダの下層フォルダのフォルダ情報と、指定フォルダと指定フォルダの下層フォルダに含まれるファイル情報を取得する場合を用いて説明する。
【００６８】
例えば、図６に示すようなＡＰＩサーバ装置３０内に格納されている指定フォルダ６１の下層フォルダのフォルダ情報と、指定フォルダ６１と指定フォルダ６１の下層フォルダに含まれるファイル情報を、クライアント装置２０が取得する場合について説明する。
【００６９】
ここで、指定フォルダの下層フォルダの構造であるフォルダ情報を取得するための処理要求には、ＧｅｔＤｅｓｃｅｎｄａｎｔｓリクエストと、ＧｅｔＣｈｉｌｄｒｅｎリクエストという２種類のリクエストが存在する。
【００７０】
そして、ＧｅｔＤｅｓｃｅｎｄａｎｔｓリクエストは、指定フォルダの全ての下層フォルダと、指定フォルダと指定フォルダの下層フォルダに含まれる全てのファイルの情報を取得するための処理要求である。そして、ＧｅｔＣｈｉｌｄｒｅｎリクエストは、指定フォルダの直近（直接）の下層フォルダとファイルの情報のみを取得するための処理要求である。
【００７１】
例えば、フォルダ６１を指定してＧｅｔＣｈｉｌｄｒｅｎリクエストという処理要求を実行した場合、フォルダ６２、６３というフォルダ情報のみが取得される。また、フォルダ６１を指定してＧｅｔＤｅｓｃｅｎｄａｎｔｓリクエストという処理要求を実行した場合、フォルダ６２〜６６という全ての下層フォルダのフォルダ情報が取得される。
【００７２】
ここで、クライアント装置２０は、ＧｅｔＤｅｓｃｅｎｄａｎｔｓリクエストを要求可能であるが、ＡＰＩサーバ装置３０では、ＧｅｔＤｅｓｃｅｎｄａｎｔｓリクエストには対応しておらず、ＧｅｔＣｈｉｌｄｒｅｎリクエストのみが実行可能であるとする。
【００７３】
つまり、クライアント装置２０からＡＰＩサーバ装置３０に対して、ＧｅｔＤｅｓｃｅｎｄａｎｔｓリクエストを直接送信したとしても、ＡＰＩサーバ装置３０においては、ＧｅｔＤｅｓｃｅｎｄａｎｔｓリクエストを実行することができない。
【００７４】
そこで、本実施形態のゲートウェイ装置１０におけるリクエスト実行部４２は、データ送受信部３１によりクライアント装置２０から指定フォルダの全ての下層フォルダのフォルダ情報と、指定フォルダと指定フォルダの下層フォルダに含まれる全てのファイル情報の取得を要求するＧｅｔＤｅｓｃｅｎｄａｎｔｓリクエストが受信された場合、ＡＰＩサーバ装置３０に対して指定フォルダの直接下層のフォルダ情報とファイル情報を取得するＧｅｔＣｈｉｌｄｒｅｎリクエストの実行を複数回繰り返すことにより、指定フォルダの全ての下層フォルダのフォルダ情報とファイル情報を取得する。
【００７５】
そして、データ送受信部３１は、ＡＰＩサーバ装置３０との間で同期通信を行い、クライアント装置２０との間では非同期通信を行うことにより、ＡＰＩサーバ装置３０から取得されたフォルダ情報を順次クライアント装置２０に返信する。
【００７６】
次に、この具体的な処理例１におけるゲートウェイ装置１０の動作を図７のフローチャートを参照して説明する。
【００７７】
ゲートウェイ装置１０がクライアント装置２０からのＧｅｔＤｅｓｃｅｎｄａｎｔｓリクエストを受信すると(ステップＳ３０１)、ゲートウェイ装置１０は、クライアント装置２０から受信したＧｅｔＤｅｓｃｅｎｄａｎｔｓリクエストの解析を行う(ステップＳ３０２)。
【００７８】
そして、ゲートウェイ装置１０は、その解析結果に基づいて、クライアント装置２０から受信したリクエストを実現するためのＧｅｔＣｈｉｌｄｒｅｎリクエストをＡＰＩサーバ装置３０に送信する(ステップＳ３０３)。
【００７９】
そして、ゲートウェイ装置１０は、ＡＰＩサーバ装置３０において処理が実行され、ＡＰＩサーバ装置３０からの処理結果、つまり指定フォルダの直近下層のフォルダとファイルの情報を受信すると(ステップＳ３０４)、クライアント装置２０に対して、そのフォルダ情報とファイル情報を処理結果として返信する(ステップＳ３０５)。
【００８０】
そして、ゲートウェイ装置１０は、ＡＰＩサーバ装置３０から受信した処理結果を解析して（ステップＳ３０６）、ＡＰＩサーバ装置３０における指定フォルダの全ての下層フォルダの情報と、指定フォルダと指定フォルダの下層フォルダに含まれる全てのファイル情報が取得されていない場合（ステップＳ３０７においてｎｏ）、ＡＰＩサーバ装置３０に新たなＧｅｔＣｈｉｌｄｒｅｎリクエストを送信する（ステップＳ３０３）。
【００８１】
このようにしてステップＳ３０３〜Ｓ３０６の処理が繰り返され、ＡＰＩサーバ装置３０における指定フォルダの全ての下層フォルダとファイルの情報が取得されると、ゲートウェイ装置１０は、新たなＧｅｔＣｈｉｌｄｒｅｎリクエストは不要と判定して処理を終了する（ステップＳ３０７においてｙｅｓ）。
【００８２】
次に、図７のフローチャートを参照して説明したゲートウェイ装置１０の具体的な処理例１における動作を、図８のシーケンスチャートを参照して説明する。
【００８３】
クライアント装置２０がゲートウェイ装置１０にＧｅｔＤｅｓｃｅｎｄａｎｔｓリクエストを送信すると（ステップＳ４０１）、ゲートウェイ装置１０は、クライアント装置２０から受信したＧｅｔＤｅｓｃｅｎｄａｎｔｓリクエストを実現するためのＧｅｔＣｈｉｌｄｒｅｎリクエストをＡＰＩサーバ装置３０に送信する(ステップＳ４０２)。
【００８４】
そして、ＡＰＩサーバ装置３０では、受信したＧｅｔＣｈｉｌｄｒｅｎリクエストに基づいて、指定フォルダの直近下層フォルダのフォルダ情報と直近下層ファイルのファイル情報を取得する処理が実行され、その処理結果がフォルダ情報及びファイル情報としてゲートウェイ装置１０に送信される（ステップＳ４０３）。すると、ゲートウェイ装置１０は、ＡＰＩサーバ装置３０から受信したフォルダ情報とファイル情報をクライアント装置２０に返信する(ステップＳ４０４)。
【００８５】
そして、ステップＳ４０２〜Ｓ４０４と同様な処理が繰り返され、ＡＰＩサーバ装置３０における指定フォルダの全ての下層フォルダのフォルダ情報と、指定フォルダと指定フォルダの下層フォルダに含まれる全てのファイル情報が最終的な処理結果として、ゲートウェイ装置１０からクライアント装置２０に返信される（ステップＳ４０５〜Ｓ４１０）。
【００８６】
図８のシーケンスチャートを参照すると、クライアント装置２０からゲートウェイ装置１０に対してはＧｅｔＤｅｓｃｅｎｄａｎｔｓリクエストという１回のリクエスト（ステップＳ４０１）のみが行われるだけで、ゲートウェイ装置１０からＡＰＩサーバ装置３０に対しては複数回のＧｅｔＣｈｉｌｄｒｅｎリクエスト（ステップＳ４０２、Ｓ４０５、Ｓ４０８）が行われているのが分かる。
【００８７】
［具体的な処理例２］
次に、具体的な処理例２として、クライアント装置２０が複数のパラメータ（パラメータセット）を指定した処理結果をＡＰＩサーバ装置３０から取得したい場合に、ＡＰＩサーバ装置３０では１回のリクエストにおいて１つのパラメータの指定しか受付けていない場合を用いて説明する。
【００８８】
本実施形態のゲートウェイ装置１０におけるリクエスト実行部４２は、複数のパラメータ（媒介変数）を指定したリクエストが受信された場合、ＡＰＩサーバ装置３０に対して複数のパラメータのうちの１つのパラメータを指定したリクエストの実行を複数回繰り返すことにより、複数のパラメータのそれぞれを指定した場合の処理結果を取得する。
【００８９】
データ送受信部３１は、ＡＰＩサーバ装置３０との間で同期通信を行い、クライアント装置２０との間では非同期通信を行うことにより、ＡＰＩサーバ装置３０から取得された複数のパラメータのそれぞれを指定した場合の処理結果を順次クライアント装置２０に返信する。
【００９０】
次に、この具体的な処理例２におけるゲートウェイ装置１０の動作を図９のフローチャートを参照して説明する。
【００９１】
ゲートウェイ装置１０がクライアント装置２０から複数のパラメータを指定したリクエストを受信すると(ステップＳ５０１)、ゲートウェイ装置１０は、クライアント装置２０から受信したリクエストの解析を行う(ステップＳ５０２)。
【００９２】
そして、ゲートウェイ装置１０は、その解析結果に基づいて、クライアント装置２０から受信したリクエストを実現するために１つのパラメータを指定したリクエストをＡＰＩサーバ装置３０に送信する(ステップＳ５０３)。
【００９３】
そして、ゲートウェイ装置１０は、ＡＰＩサーバ装置３０において処理が実行され、ＡＰＩサーバ装置３０からの処理結果、つまり１つのパラメータを指定したリクエストを実行した処理結果を受信すると(ステップＳ５０４)、クライアント装置２０に対して、その処理結果を返信する(ステップＳ５０５)。
【００９４】
そして、ゲートウェイ装置１０は、全てのパラメータを指定した場合の処理結果が取得されていない場合（ステップＳ５０６においてｎｏ）、ＡＰＩサーバ装置３０に次のパラメータを指定した新たなリクエストを送信する（ステップＳ５０３）。
【００９５】
このようにしてステップＳ５０３〜Ｓ５０６の処理が繰り返され、全てのパラメータについての処理結果が取得されると、ゲートウェイ装置１０は、新たなリクエストは不要と判定して処理を終了する（ステップＳ５０６においてｙｅｓ）。
【００９６】
次に、図９のフローチャートを参照して説明したゲートウェイ装置１０の具体的な処理例２における動作を、図１０のシーケンスチャートを参照して説明する。
【００９７】
クライアント装置２０がゲートウェイ装置１０に３つのパラメータＡ、Ｂ、Ｃを指定したリクエストを送信すると（ステップＳ６０１）、ゲートウェイ装置１０は、パラメータＡを指定したリクエスト（パラメータＡ）をＡＰＩサーバ装置３０に送信する(ステップＳ６０２)。
【００９８】
そして、ＡＰＩサーバ装置３０では、受信したリクエスト（パラメータＡ）に基づいて処理が実行され、その処理結果（Ａ）がゲートウェイ装置１０に送信される（ステップＳ６０３）。すると、ゲートウェイ装置１０は、ＡＰＩサーバ装置３０から受信した処理結果（Ａ）をクライアント装置２０に返信する(ステップＳ６０４)。
【００９９】
そして、ステップＳ６０２〜Ｓ６０４と同様な処理が繰り返され、パラメータＢ、Ｃについての処理結果が取得され、ゲートウェイ装置１０からクライアント装置２０に順次返信される（ステップＳ６０５〜Ｓ６１０）。
【０１００】
図１０のシーケンスチャートを参照すると、クライアント装置２０からゲートウェイ装置１０に対してはパラメータＡ、Ｂ、Ｃという３つのパラメータを指定した１回のリクエスト（ステップＳ６０１）のみが行われるだけで、ゲートウェイ装置１０からＡＰＩサーバ装置３０に対してはパラメータＡ、Ｂ、Ｃのそれぞれを指定した３回のリクエスト（ステップＳ６０２、Ｓ６０５、Ｓ６０８）が行われているのが分かる。
【０１０１】
［具体的な処理例３］
次に、具体的な処理例３として、あるリクエストに基づくＡＰＩサーバ装置３０における処理結果を取得して、取得した処理結果を用いて再度ＡＰＩサーバ装置３０に対してリクエストを行う場合を用いて説明する。
【０１０２】
本実施形態のゲートウェイ装置１０におけるリクエスト実行部４２は、順番に行われるべき複数の処理内容を指定したリクエストが受信された場合、ＡＰＩサーバ装置３０に対して最初の処理内容を指定したリクエストを実行し、次の処理内容を得られた処理結果に実行するリクエストをＡＰＩサーバ装置３０に対して実行することにより、複数の処理内容が実行された後の処理結果を取得する。
【０１０３】
データ送受信部３１は、ＡＰＩサーバ装置３０との間で同期通信を行い、クライアント装置２０との間では非同期通信を行うことにより、ＡＰＩサーバ装置３０から取得された全ての処理内容が実行される前の処理結果および全ての処理内容が実行された後の処理結果を順次クライアント装置２０に返信する。
【０１０４】
次に、図１１のシーケンスチャートを参照してゲートウェイ装置１０の具体的な処理例３における動作を説明する。なお、図１１のシーケンスチャートでは、ある画像データに対してフィルタ処理を実行して、そのフィルタ処理後の画像データに対してさらにサイズ変更処理を実行する場合について説明する。
【０１０５】
クライアント装置２０がゲートウェイ装置１０に２つの処理内容を示すパラメータ「フィルタ」、「サイズ変更」を指定したリクエストを送信すると（ステップＳ７０１）、ゲートウェイ装置１０は、パラメータ「フィルタ」を指定したリクエスト（「フィルタ」）をＡＰＩサーバ装置３０に送信する(ステップＳ７０２)。
【０１０６】
そして、ＡＰＩサーバ装置３０では、受信したリクエスト（「フィルタ」）に基づいて画像データに対するフィルタ処理が実行され、その処理結果（フィルタ）がゲートウェイ装置１０に送信される（ステップＳ７０３）。すると、ゲートウェイ装置１０は、ＡＰＩサーバ装置３０から受信した処理結果（フィルタ）をクライアント装置２０に返信する(ステップＳ７０４)。
【０１０７】
そして、ゲートウェイ装置１０は、処理結果（フィルタ）に対して、さらに「サイズ変更」を指定したリクエストをＡＰＩサーバ装置３０に送信する（ステップＳ７０５）。
【０１０８】
すると、ＡＰＩサーバ装置３０では、受信したリクエスト（「サイズ変更」）に基づいて、フィルタ処理後の画像データに対するサイズ変更処理が実行され、その処理結果（サイズ変更）がゲートウェイ装置１０に送信される（ステップＳ７０６）。すると、ゲートウェイ装置１０は、ＡＰＩサーバ装置３０から受信した最終的な処理結果（サイズ変更）をクライアント装置２０に返信する(ステップＳ７０７)。
【０１０９】
図１１のシーケンスチャートを参照すると、クライアント装置２０からゲートウェイ装置１０に対してはパラメータ「フィルタ」、「サイズ変更」という２つのパラメータを指定した１回のリクエスト（ステップＳ７０１）のみが行われるだけで、ゲートウェイ装置１０からＡＰＩサーバ装置３０に対してはパラメータ「フィルタ」、「サイズ変更」を指定した２回のリクエスト（ステップＳ７０２、Ｓ７０５）が行われているのが分かる。
【０１１０】
［具体的な処理例４］
次に、具体的な処理例４として、図１２に示すようにストレージサービスを提供している複数のＡＰＩサーバ装置３０Ａ、３０Ｂが存在する場合に、クライアント装置２０から複数のＡＰＩサーバ装置３０Ａ、３０Ｂに対して、ファイルデータを格納するリクエストを送信して、そのファイルデータの格納結果を取得する場合を用いて説明する。
【０１１１】
本実施形態のゲートウェイ装置１０におけるリクエスト実行部４２は、複数のＡＰＩサーバ装置３０Ａ、３０Ｂにファイルデータを格納すべきリクエストが受信された場合、複数のＡＰＩサーバ装置３０Ａ、３０Ｂに対してそれぞれファイルデータを格納する処理を順次実行して、ファイルデータの格納結果を取得する。
【０１１２】
データ送受信部３１は、ＡＰＩサーバ装置３０との間で同期通信を行い、クライアント装置２０との間では非同期通信を行うことにより、複数のＡＰＩサーバ装置３０Ａ、３０Ｂから取得されたファイルデータの格納結果を順次クライアント装置２０に返信する。
【０１１３】
次に、図１３のシーケンスチャートを参照してゲートウェイ装置１０の具体的な処理例４における動作を説明する。
【０１１４】
先ず、クライアント装置２０がゲートウェイ装置１０に、ファイルデータをアップロードするための１つのリクエストを送信すると（ステップＳ８０１）、先ず、ゲートウェイ装置１０は、ファイルデータをアップロードするためのリクエストをＡＰＩサーバ装置３０Ａに送信する(ステップＳ８０２)。
【０１１５】
すると、ＡＰＩサーバ装置３０Ａでは、受信したリクエストに基づいてファイルデータのアップロード処理が実行され、その処理結果がゲートウェイ装置１０に送信される（ステップＳ８０３）。そして、ゲートウェイ装置１０は、ＡＰＩサーバ装置３０Ａから受信した処理結果をクライアント装置２０に返信する(ステップＳ８０４)。
【０１１６】
次に、ゲートウェイ装置１０は、ファイルデータをアップロードするためのリクエストをＡＰＩサーバ装置３０Ｂに送信する(ステップＳ８０５)。すると、ＡＰＩサーバ装置３０Ｂでは、受信したリクエストに基づいてファイルデータのアップロード処理が実行され、その処理結果がゲートウェイ装置１０に送信される（ステップＳ８０６）。そして、ゲートウェイ装置１０は、ＡＰＩサーバ装置３０Ｂから受信した処理結果をクライアント装置２０に返信する(ステップＳ８０７)。
【０１１７】
図１３のシーケンスチャートを参照すると、クライアント装置２０からゲートウェイ装置１０に対して１回のファイルアップロードのリクエスト（ステップＳ８０１）のみが行われるだけで、ゲートウェイ装置１０からＡＰＩサーバ装置３０Ａ、３０Ｂのそれぞれに対してファイルデータをアップロードするための２回のリクエスト（ステップＳ８０２、Ｓ８０５）が行われているのが分かる。
【０１１８】
[変形例]
上記実施形態では、ＡＰＩサーバ装置３０において複数回の処理が実行される場合に、ゲートウェイ装置１０からクライアント装置２０に対して処理結果が順次送信される場合を用いて説明したが、複数回の処理結果をまとめて、または最終的な処理結果のみが送信されるようにしても良い。また、クライアント装置２０に対する処理結果の送信よりもＡＰＩサーバ装置３０への次のリクエストを優先して送信するようにしても良い。
【符号の説明】
【０１１９】
１０    ゲートウェイ装置
１１    ＣＰＵ
１２    メモリ
１３    記憶装置
１４    通信インタフェース（ＩＦ）
１５    ユーザインタフェース（ＵＩ）装置
１６    制御バス
２０    クライアント装置
３０、３０Ａ、３０Ｂ    ＡＰＩサーバ装置
３１    データ送受信部
３２    制御部
４１    解析部
４２    リクエスト実行部
４３    プロトコル変換部
【図１】
2019105977.tif 000003
【図２】
2019105977.tif 000004
【図３】
2019105977.tif 000005
【図４】
2019105977.tif 000006
【図５】
2019105977.tif 000007
【図６】
2019105977.tif 000008
【図７】
2019105977.tif 000009
【図８】
2019105977.tif 000010
【図９】
2019105977.tif 000011
【図１０】
2019105977.tif 000012
【図１１】
2019105977.tif 000013
【図１２】
2019105977.tif 000014
【図１３】
2019105977.tif 000015