(57)【要約】【課題】端末装置の処理負荷を軽減できる制御方法を提供する。【解決手段】制御方法は、端末装置より情報処理システムに対する処理の要求を受信すると、受信した要求を情報処理システムに送信するとともに、処理の要求に対する応答内容を示す情報を該要求の内容に対応付けて記憶する記憶部を参照して、受信した要求の内容に対応付けられた情報を取得し、送信した要求に対する応答内容を示す情報を受信すると、受信した情報と、取得した情報とに基づき、受信した情報のうち、取得した情報とは異なる情報を抽出し、抽出した情報の情報量に基づき、受信した情報を端末装置に送信するか、抽出した前記情報を前記端末装置に送信するかを制御する、処理をコンピュータが実行することを特徴とする。【選択図】図６
2019185512.tif 000002
【特許請求の範囲】
【請求項１】
端末装置より情報処理システムに対する処理の要求を受信すると、受信した前記要求を前記情報処理システムに送信するとともに、処理の要求に対する応答内容を示す情報を該要求の内容に対応付けて記憶する記憶部を参照して、受信した前記要求の内容に対応付けられた情報を取得し、
送信した前記要求に対する応答内容を示す情報を受信すると、受信した前記情報と、取得した前記情報とに基づき、受信した前記情報のうち、取得した前記情報とは異なる情報を抽出し、
抽出した前記情報の情報量に基づき、受信した前記情報を前記端末装置に送信するか、抽出した前記情報を前記端末装置に送信するかを制御する、
処理をコンピュータが実行することを特徴とする制御方法。
【請求項２】
抽出した前記情報の情報量が基準量を超える場合、受信した前記要求の内容に対応付けられた前記情報を、受信した前記情報に変更する、
ことを特徴とする請求項１に記載の制御方法。
【請求項３】
前記情報処理システムが実行するアプリケーションソフトウェアを実行させるプログラムを、受信した前記要求に応じて実行する頻度と、受信した前記要求の内容に対応付けられた前記情報を、受信した前記情報に変更する頻度と、に基づいて、前記基準量を決定する、
ことを特徴とする請求項２に記載の制御方法。
【請求項４】
前記情報処理システムが実行するアプリケーションソフトウェアを実行させるプログラムを、受信した前記要求に応じて実行する頻度に基づいて、前記記憶部が記憶する前記情報の記憶期間を算出する、
ことを特徴とする請求項１から３のいずれか１項に記載の制御方法。
【請求項５】
受信した前記情報のうちの特定の情報が送信対象として指定されており、受信した前記情報のうちの特定の情報と、取得した前記情報のうち前記特定の情報に対応する情報との比較により、前記特定の情報と前記特定の情報に対応する情報との間に変更がない場合、受信した前記情報を含まない情報を送信する処理を実行する、
ことを特徴とする請求項１から４のいずれか１項に記載の制御方法。
【請求項６】
端末装置より情報処理システムに対する処理の要求を受信すると、受信した前記要求を前記情報処理システムに送信するとともに、処理の要求に対する応答内容を示す情報を該要求の内容に対応付けて記憶する記憶部を参照して、受信した前記要求の内容に対応付けられた情報を取得し、
送信した前記要求に対する応答内容を示す情報を受信すると、受信した前記情報と、取得した前記情報とに基づき、受信した前記情報のうち、取得した前記情報とは異なる情報を抽出し、
抽出した前記情報の情報量に基づき、受信した前記情報を前記端末装置に送信するか、抽出した前記情報を前記端末装置に送信するかを制御する、
処理をコンピュータに実行させることを特徴とする制御プログラム。
【請求項７】
処理の要求に対する応答内容を示す情報を該要求の内容に対応付けて記憶する記憶部と、
端末装置より情報処理システムに対する処理の要求を受信すると、受信した前記要求を前記情報処理システムに送信する通信部と、
前記記憶部を参照して、前記通信部が受信した前記要求の内容に対応付けられた情報を取得し、
前記通信部が送信した前記要求に対する応答内容を示す情報を受信すると、前記通信部が受信した前記情報と、取得した前記情報とに基づき、前記通信部が受信した前記情報のうち、取得した前記情報とは異なる情報を抽出し、
抽出した前記情報の情報量に基づき、受信した前記情報を前記端末装置に送信するか、抽出した前記情報を前記端末装置に送信するかを制御する、
処理を実行する情報処理部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、制御方法、制御プログラム、及び情報処理装置に関する。
【背景技術】
【０００２】
モバイル端末と外部に非公開の業務システムとの間に、利用者認証やアクセスログ採取等の機能を有する中間サーバを配置し、中間サーバを経由しないと業務システムへアクセスできない構成が知られている。また、クライアント端末から送信されたリクエストを取得したり、クライアント端末へレスポンスを送信したりする中間サーバも知られている（以上、例えば特許文献１参照）。その他、インターネットに関する種々の技術が知られている（例えば特許文献２及び特許文献３参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−０９７５４２号公報
【特許文献２】特開２００３−２４８６１３号公報
【特許文献３】特開２００２−０５５８７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上述したモバイル端末やクライアント端末といった端末装置は、中間サーバが送信するレスポンスを処理するのに十分な性能を有していない場合がある。この場合、端末装置にはレスポンスの処理に多大な負荷がかかり、端末装置が円滑に動作しなくなる可能性がある。
【０００５】
そこで、１つの側面では、端末装置の処理負荷を軽減できる制御方法、制御プログラム、及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
１つの実施態様では、制御方法は、端末装置より情報処理システムに対する処理の要求を受信すると、受信した前記要求を前記情報処理システムに送信するとともに、処理の要求に対する応答内容を示す情報を該要求の内容に対応付けて記憶する記憶部を参照して、受信した前記要求の内容に対応付けられた情報を取得し、送信した前記要求に対する応答内容を示す情報を受信すると、受信した前記情報と、取得した前記情報とに基づき、受信した前記情報のうち、取得した前記情報とは異なる情報を抽出し、抽出した前記情報の情報量に基づき、受信した前記情報を前記端末装置に送信するか、抽出した前記情報を前記端末装置に送信するかを制御する、処理をコンピュータが実行することを特徴とする。
【発明の効果】
【０００７】
端末装置の処理負荷を軽減することができる。
【図面の簡単な説明】
【０００８】
【図１】図１はサービス提供システムの一例である。
【図２】図２はモバイル端末のハードウェア構成の一例である。
【図３】図３は中間サーバのハードウェア構成の一例である。
【図４】図４（ａ）はモバイル端末、中間サーバ、及び業務サーバのブロック図の一例である。図４（ｂ）は記憶部の一例である。
【図５】図５はサービス提供システムの動作の一例を示す処理シーケンス図（その１）である。
【図６】図６はサービス提供システムの動作の一例を示す処理シーケンス図（その２）である。
【図７】図７（ａ）はリクエストの一例である。図７（ｂ）はレスポンスの一例である。
【図８】図８（ａ）はレスポンスボディの比較を説明するための第１の図である。図８（ｂ）は送信するレスポンスボディを説明するための第１の図である。
【図９】図９（ａ）はレスポンスボディの比較を説明するための第２の図である。図９（ｂ）は送信するレスポンスボディを説明するための第２の図である。
【図１０】図１０（ａ）はレスポンスボディの比較を説明するための第３の図である。図１０（ｂ）は送信するレスポンスボディを説明するための第３の図である。
【図１１】図１１はサービス提供システムの動作の一例を示す処理シーケンス図の一部（その１）である。
【図１２】図１２はサービス提供システムの動作の一例を示す処理シーケンス図の一部（その２）である。
【発明を実施するための形態】
【０００９】
以下、本件を実施するための形態について図面を参照して説明する。
【００１０】
（第１実施形態）
図１はサービス提供システムＳＴの一例である。サービス提供システムＳＴはApplication Programming Interface（ＡＰＩ）の提供といったクラウドサービスを提供するコンピュータシステムである。サービス提供システムＳＴは端末装置としてのモバイル端末１００と情報処理装置としての中間サーバ２００と情報処理システムとしてのバックエンドシステムＢＥＳとを含んでいる。バックエンドシステムＢＥＳは企業の業務システムなどであって、業務に応じたアプリケーションソフトウェアがそれぞれインストールされた複数の業務サーバ３００を含んでいる。尚、図１では、モバイル端末１００の一例としてスマートフォンが示されているが、モバイル端末１００はタブレット端末やウェアラブル端末などであってもよい。
【００１１】
モバイル端末１００と中間サーバ２００と複数の業務サーバ３００はいずれも通信ネットワークＮＷを介して接続されている。特に、モバイル端末１００は携帯基地局ＢＳと通信ネットワークＮＷとを介して中間サーバ２００と接続されている。したがって、携帯基地局ＢＳの通信可能領域ＡＲ内にモバイル端末１００が含まれていれば、モバイル端末１００は携帯基地局ＢＳと無線通信ＷＬにより通信することができる。これにより、モバイル端末１００は中間サーバ２００と通信することができる。尚、通信ネットワークＮＷとしては、例えばインターネットがある。無線通信ＷＬとしては、例えばLong Term Evolution（ＬＴＥ）といった広域無線通信などがある。
【００１２】
中間サーバ２００はクラウドＣＬ上のデータセンターＤＣなどに設置される。中間サーバ２００はREpresentational State Transfer（ＲＥＳＴ）形式の複数のＡＰＩを管理する。ＡＰＩはバックエンドシステムＢＥＳが実行するアプリケーションソフトウェアを実行させるプログラムである。中間サーバ２００はモバイル端末１００からユーザ１０の操作に基づいて送信された処理の要求（以下、リクエストという）を受信する。当該リクエストはＡＰＩリクエストなどと呼ばれることがある。中間サーバ２００はリクエストを受信すると、受信したリクエストをバックエンドシステムＢＥＳに送信する。より詳しくは、中間サーバ２００はリクエストを受信すると、複数のＡＰＩの中から、リクエストに含まれる情報に応じたＡＰＩを実行し、リクエストをバックエンドシステムＢＥＳに含まれる複数の業務サーバ３００のいずれかに送信する。
【００１３】
尚、中間サーバ２００はバックエンドシステムＢＥＳにＲＥＳＴ形式のリクエストを送信するが、中間サーバ２００が受信するリクエストはＲＥＳＴ形式であってもよいし、ＲＥＳＴ形式と異なる非ＲＥＳＴ形式であってもよい。中間サーバ２００が非ＲＥＳＴ形式のリクエストを受信した場合、中間サーバ２００は非ＲＥＳＴ形式のリクエストをＲＥＳＴ形式のリクエストに変換してもよい。
【００１４】
バックエンドシステムＢＥＳは中間サーバ２００から送信されたリクエストを受信すると、そのリクエストに対する応答（以下、レスポンスという）を中間サーバ２００に送信する。当該レスポンスはＡＰＩレスポンスなどと呼ばれることがある。より詳しくは、複数の業務サーバ３００のいずれかがリクエストを受信すると、リクエストを受信した業務サーバ３００はリクエストで指定された処理をアプリケーションソフトウェアに基づいて実行し、実行結果を含むレスポンスを中間サーバ２００に送信する。
【００１５】
中間サーバ２００はレスポンスを受信すると、受信したレスポンスの内容を示す情報（以下、レスポンスボディという）を、そのレスポンスに対応するリクエストの内容を示す情報（以下、リクエストボディという）と対応付けて記憶する。中間サーバ２００はレスポンスボディを記憶すると、受信したレスポンスをモバイル端末１００に向けて送信する。モバイル端末１００はリクエストに応じたレスポンスを受信すると、受信したレスポンスを解析し、解析結果に応じて種々の処理を実行する。これにより、モバイル端末１００はユーザ１０に様々な情報を提供する。尚、中間サーバ２００は、以上説明した処理以外にも各種の処理を実行するが、中間サーバ２００が実行する処理の詳細については後述する。
【００１６】
次に、図２を参照して、上述したモバイル端末１００のハードウェア構成について説明する。
【００１７】
図２はモバイル端末１００のハードウェア構成の一例である。図２に示すように、モバイル端末１００は、ハードウェアプロセッサとしてのCentral Processing Unit（ＣＰＵ）１００Ａ、Random Access Memory（ＲＡＭ）１００Ｂ、Read Only Memory（ＲＯＭ）１００Ｃ、Non-Volatile Memory（ＮＶＭ）１００Ｄ、及び広域通信回路１００Ｅを含んでいる。広域通信回路１００Ｅは広域無線通信を実現するハードウェア回路である。広域通信回路１００Ｅにはアンテナ１００Ｅ´が接続されている。
【００１８】
また、モバイル端末１００は、センサ１００Ｆ、カメラ１００Ｇ、タッチパネル１００Ｈ、ディスプレイ１００Ｉ、及びスピーカ１００Ｊを含んでいる。ＣＰＵ１００Ａからスピーカ１００Ｊまでは、内部バス１００Ｋによって互いに接続されている。尚、ＣＰＵ１００Ａに代えてMicro Processing Unit（ＭＰＵ）をハードウェアプロセッサとして利用してもよい。
【００１９】
上述したＲＡＭ１００Ｂには、ＲＯＭ１００ＣやＮＶＭ１００Ｄに記憶されたプログラムがＣＰＵ１００Ａによって一時的に格納される。格納されたプログラムをＣＰＵ１００Ａが実行することにより、ＣＰＵ１００Ａは後述する各種の機能を実現し、後述する各種の処理を実行する。尚、プログラムは後述する処理シーケンス図に応じたものとすればよい。
【００２０】
次に、図３を参照して、上述した中間サーバ２００のハードウェア構成について説明する。
【００２１】
図３は中間サーバ２００のハードウェア構成の一例である。尚、上述した業務サーバ３００については基本的に中間サーバ２００と同様のハードウェア構成であるため、説明を省略する。図３に示すように、中間サーバ２００は、少なくともハードウェアプロセッサとしてのＣＰＵ２００Ａ、ＲＡＭ２００Ｂ、ＲＯＭ２００Ｃ及びネットワークＩ／Ｆ（インタフェース）２００Ｄを含んでいる。ＣＰＵ２００Ａに代えてＭＰＵをハードウェアプロセッサとして利用してもよい。中間サーバ２００は、必要に応じて、Hard Disk Drive（ＨＤＤ）２００Ｅ、入力Ｉ／Ｆ２００Ｆ、出力Ｉ／Ｆ２００Ｇ、入出力Ｉ／Ｆ２００Ｈ、ドライブ装置２００Ｉの少なくとも１つを含んでいてもよい。ＣＰＵ２００Ａからドライブ装置２００Ｉまでは、内部バス２００Ｊによって互いに接続されている。すなわち、中間サーバ２００はコンピュータによって実現することができる。
【００２２】
入力Ｉ／Ｆ２００Ｆには、入力装置７１０が接続される。入力装置７１０としては、例えばキーボードやマウスなどがある。出力Ｉ／Ｆ２００Ｇには、表示装置７２０が接続される。表示装置７２０としては、例えば液晶ディスプレイがある。入出力Ｉ／Ｆ２００Ｈには、半導体メモリ７３０が接続される。半導体メモリ７３０としては、例えばUniversal Serial Bus（ＵＳＢ）メモリやフラッシュメモリなどがある。入出力Ｉ／Ｆ２００Ｈは、半導体メモリ７３０に記憶されたプログラムやデータを読み取る。入力Ｉ／Ｆ２００Ｆ及び入出力Ｉ／Ｆ２００Ｈは、例えばＵＳＢポートを備えている。出力Ｉ／Ｆ２００Ｇは、例えばディスプレイポートを備えている。
【００２３】
ドライブ装置２００Ｉには、可搬型記録媒体７４０が挿入される。可搬型記録媒体７４０としては、例えばCompact Disc（ＣＤ）−ＲＯＭ、Digital Versatile Disc（ＤＶＤ）といったリムーバブルディスクがある。ドライブ装置２００Ｉは、可搬型記録媒体７４０に記録されたプログラムやデータを読み込む。ネットワークＩ／Ｆ２００Ｄは、例えばＬＡＮポートを備えている。ネットワークＩ／Ｆ２００Ｄは上述した通信ネットワークＮＷと接続される。
【００２４】
上述したＲＡＭ２００Ｂには、ＲＯＭ２００ＣやＨＤＤ２００Ｅに記憶されたプログラムがＣＰＵ２００Ａによって一時的に格納される。ＲＡＭ２００Ｂには、可搬型記録媒体７４０に記録されたプログラムがＣＰＵ２００Ａによって一時的に格納される。格納されたプログラムをＣＰＵ２００Ａが実行することにより、ＣＰＵ２００Ａは後述する各種の機能を実現し、また、後述する各種の処理を実行する。尚、プログラムは後述する処理シーケンス図に応じたものとすればよい。
【００２５】
次に、図４を参照して、モバイル端末１００、中間サーバ２００、及び業務サーバ３００の各機能について説明する。
【００２６】
図４（ａ）はモバイル端末１００、中間サーバ２００、及び業務サーバ３００のブロック図の一例である。特に、図４（ａ）では、モバイル端末１００、中間サーバ２００、及び業務サーバ３００の各機能の要部が示されている。図４（ｂ）は記憶部２０３の一例である。
【００２７】
まず、モバイル端末１００について説明する。モバイル端末１００は制御部１０１と通信部１０２とを備えている。尚、制御部１０１は上述したＣＰＵ１００Ａによって実現することができる。通信部１０２は上述した広域通信回路１００Ｅ及びアンテナ１００Ｅ´によって実現することができる。
【００２８】
制御部１０１はモバイル端末１００の動作全体を制御する。例えば、制御部１０１はタッチパネル１００Ｈ（図２参照）に対するユーザ１０の操作に基づいてリクエストを生成して通信部１０２に出力する。例えば、制御部１０１は通信部１０２から出力されたレスポンスを受け付け、受け付けたレスポンスを解析し、解析結果に応じた種々の情報をディスプレイ１００Ｉ（図２参照）に表示する。通信部１０２はモバイル端末１００と中間サーバ２００との通信を制御する。例えば、通信部１０２は制御部１０１から出力されたリクエストを中間サーバ２００に向けて送信する。また、通信部１０２は中間サーバ２００から送信されたレスポンスを受信して制御部１０１に出力する。
【００２９】
次に、中間サーバ２００について説明する。中間サーバ２００は情報処理部２０１と通信部２０２と記憶部２０３とを備えている。尚、情報処理部２０１は上述したＣＰＵ２００Ａによって実現することができる。通信部２０２は上述したネットワークＩ／Ｆ２００Ｄによって実現することができる。記憶部２０３は上述したＲＡＭ２００Ｂ又はＨＤＤ２００Ｅによって実現することができる。
【００３０】
情報処理部２０１は通信部２０２から出力されたリクエストを受け付けると、中間サーバ２００が管理する複数のＡＰＩの中から、受け付けたリクエストに含まれる情報に応じたＡＰＩを実行し、ＲＥＳＴ形式のリクエストを通信部２０２に出力する。例えば、情報処理部２０１は通信部２０２から出力されたレスポンスを受け付けると、受け付けたレスポンスのレスポンスボディを、既に受け付けたリクエストのリクエストボディと対応付けて記憶部２０３に格納する。これにより、図４（ｂ）に示すように、記憶部２０３はレスポンスボディをリクエストボディと対応付けて記憶する。
【００３１】
情報処理部２０１はレスポンスボディを記憶部２０３に格納すると、受け付けたレスポンスを通信部２０２に出力する。また、情報処理部２０１はＡＰＩを実行する頻度に基づいてキャッシュ期間を算出する。その他、情報処理部２０１は種々の処理を実行するが、情報処理部２０１が実行する処理の詳細については後述する。
【００３２】
通信部２０２は中間サーバ２００とモバイル端末１００及びバックエンドシステムＢＥＳとの通信を制御する。より詳しくは、通信部２０２はモバイル端末１００から送信されたリクエストを受信して、情報処理部２０１に出力する。通信部２０２は情報処理部２０１から出力されたリクエストを受け付けて、バックエンドシステムＢＥＳに送信する。通信部２０２はバックエンドシステムＢＥＳから送信されたレスポンスを受信して、情報処理部２０１に出力する。通信部２０２は情報処理部２０１から出力されたレスポンスを受け付けて、モバイル端末１００に送信する。
【００３３】
尚、上述した記憶部２０３はレスポンスボディを永続的ではなく一時的に記憶する。このため、記憶部２０３はレスポンスボディをキャッシュすると言い換えてもよい。この場合、一時的な記憶の期間をキャッシュ期間と呼んでもよい。したがって、キャッシュ期間を超過すると、レスポンスボディは記憶部２０３から消失する。
【００３４】
次に、業務サーバ３００について説明する。業務サーバ３００は業務処理部３０１と通信部３０２とを備えている。尚、業務処理部３０１は上述したＣＰＵ２００Ａによって実現することができる。通信部３０２は上述したネットワークＩ／Ｆ２００Ｄによって実現することができる。
【００３５】
業務処理部３０１は通信部３０２から出力されたリクエストを受け付けると、受け付けたリクエストに含まれる情報に応じた処理を実行して、レスポンスを生成する。業務処理部３０１はレスポンスを生成すると、生成したレスポンスを通信部３０２に出力する。通信部３０２は業務サーバ３００と中間サーバ２００との通信を制御する。より詳しくは、通信部３０２は中間サーバ２００から送信されたリクエストを受信して、業務処理部３０１に出力する。通信部３０２は業務処理部３０１から出力されたレスポンスを受け付けて、中間サーバ２００に向けて送信する。
【００３６】
続いて、図５から図１０を参照して、サービス提供システムＳＴの動作について説明する。
【００３７】
図５はサービス提供システムＳＴの動作の一例を示す処理シーケンス図（その１）である。図６はサービス提供システムＳＴの動作の一例を示す処理シーケンス図（その２）である。図７（ａ）はリクエストＲＱの一例である。図７（ｂ）はレスポンスＲＰの一例である。図８（ａ）はレスポンスボディの比較を説明するための第１の図である。図８（ｂ）は送信するレスポンスボディを説明するための第１の図である。図９（ａ）はレスポンスボディの比較を説明するための第２の図である。図９（ｂ）は送信するレスポンスボディを説明するための第２の図である。図１０（ａ）はレスポンスボディの比較を説明するための第３の図である。図１０（ｂ）は送信するレスポンスボディを説明するための第３の図である。尚、図５及び図６に示す処理シーケンス図は対応する記号「Ａ」によって連続している。
【００３８】
まず、図５に示すように、モバイル端末１００の通信部１０２はリクエストを中間サーバ２００に向けて送信する（ステップＳ１０１）。中間サーバ２００の通信部２０２はモバイル端末１００から送信されたリクエストを受信する（ステップＳ２０１）。
【００３９】
ここで、図７（ａ）に示すように、リクエストＲＱは、種々の情報を含んでいる。具体的には、リクエストＲＱの１行目であるリクエストラインにはCreateやGetといったメソッドが情報として記載されている。メソッドによって業務処理部３０１が実行する処理を特定することができる。また、リクエストラインにはhttps://…といったUniform Resource Locator（ＵＲＬ）が情報として記載される。ＵＲＬはＡＰＩの名称であるＡＰＩ名とリソースの名称であるリソース名とを含んでいる。ＵＲＬによって情報処理部２０１が実行するＡＰＩと業務処理部３０１が処理を実行する対象のリソースを特定することができる。
【００４０】
また、リクエストＲＱの２行目以降であるリクエストヘッダには認証トークンと呼ばれる情報やＡＰＩキーと呼ばれる情報などが記載される。尚、認証トークンはサービス提供システムＳＴが提供するクラウドサービスの利用権限を有するユーザ１０であるか否かを判定するための情報である。ＡＰＩキーは業務サーバ３００の呼び出し元のプログラムがＡＰＩを利用する利用権限を有していることを示す鍵情報である。さらに、リクエストヘッダの後に続くリクエストボディにはユーザ１０を識別するユーザＩＤやモバイル端末１００を識別する端末ＩＤ、パスワードやパスフレーズといった暗証情報などが情報として記載される。
【００４１】
図５に戻り、中間サーバ２００の通信部２０２がリクエストを受信すると、情報処理部２０１は１回目のリクエストであるか否かを判断する（ステップＳ２０２）。より詳しくは、情報処理部２０１は通信部２０２が受信したリクエストを受け付けると記憶部２０３を参照する。そして、情報処理部２０１は受け付けたリクエストのリクエストボディと同一又は同種（以下、単に同一という）のリクエストボディと対応付いたレスポンスボディを記憶部２０３が記憶しているか否かにより１回目のリクエストであるか否かを判断する。
【００４２】
受け付けたリクエストのリクエストボディと同一のリクエストボディと対応付いたレスポンスボディを記憶部２０３が記憶していない場合、情報処理部２０１は１回目のリクエストであると判断する（ステップＳ２０２：ＹＥＳ）。例えば、受け付けたリクエストのリクエストボディに含まれるユーザＩＤと同一のユーザＩＤを含むリクエストボディと対応付いたレスポンスボディを記憶部２０３が記憶していない場合、情報処理部２０１は１回目のリクエストであると判断する。この場合、通信部２０２はリクエストを業務サーバ３００に向けて送信する（ステップＳ２０３）。これにより、業務サーバ３００の通信部３０２は中間サーバ２００から送信されたリクエストを受信する（ステップＳ３０１）。
【００４３】
業務サーバ３００の業務処理部３０１は通信部３０２がリクエストを受信すると、リクエストで指定された処理を実行し、通信部３０２は処理結果を含むレスポンスを中間サーバ２００に向けて送信する（ステップＳ３０２）。これにより、中間サーバ２００の通信部２０２は業務サーバ３００から送信されたレスポンスを受信する（ステップＳ２０４）。
【００４４】
ここで、図７（ｂ）に示すように、レスポンスＲＰは、種々の情報を含んでいる。具体的には、レスポンスＲＰの１行目であるステータスラインにはステータスコードが情報として記載されている。ステータスコードによって処理の成功や失敗が特定される。具体的には、ステータスコード「２００」は処理の成功を表し、ステータスコード「５００」は処理の失敗を表す。
【００４５】
また、レスポンスＲＰの２行目以降であるレスポンスヘッダにはモバイル端末１００に送信するレスポンスＲＰの送信種別が情報として記載される。例えば、送信種別「DIFF:”false”」は通信部２０２が受信したレスポンスボディをそのまま含むレスポンスをモバイル端末１００に送信することを表している。尚、詳細は後述するが、送信種別「DIFF:”true”」は通信部２０２が受信したレスポンスボディの差分を含むレスポンスをモバイル端末１００に送信することを表している。さらに、レスポンスヘッダの後に続くレスポンスボディには業務処理部３０１の処理の処理結果が情報として記載される。
【００４６】
図５に戻り、ステップＳ２０４の処理において、中間サーバ２００の通信部２０２がレスポンスを受信すると、情報処理部２０１はレスポンスボディを記憶部２０３に格納する（ステップＳ２０５）。より詳しくは、情報処理部２０１は、通信部２０２が受信したレスポンスのレスポンスボディを、ステップＳ２０１の処理で通信部２０２が受信したリクエストのリクエストボディと対応付けて記憶部２０３に格納する。これにより、記憶部２０３はリクエストボディと対応付いたレスポンスボディを記憶する（図４（ｂ）参照）。
【００４７】
ステップＳ２０５の処理が完了すると、通信部２０２はレスポンスをモバイル端末１００に向けて送信する（ステップＳ２０６）。特に、ステップＳ２０２の処理において、情報処理部２０１が１回目のリクエストであると判断した場合、通信部２０２は送信種別「DIFF:”false”」をレスポンスヘッダに含むレスポンスをモバイル端末１００に向けて送信する。モバイル端末１００の通信部１０２は中間サーバ２００から送信されたレスポンスを受信する（ステップＳ１０２）。制御部１０１は通信部１０２が受信したレスポンスの送信種別に基づいて、レスポンスを処理する。例えば、レスポンスヘッダに送信種別「DIFF:”false”」が含まれている場合、制御部１０１はレスポンスボディに含まれる情報の全てを解析して、解析結果に応じた情報をディスプレイ１００Ｉに表示する。
【００４８】
一方、ステップＳ２０２の処理において、受け付けたリクエストのリクエストボディと同一のリクエストボディと対応付いたレスポンスボディを記憶部２０３が記憶している場合、情報処理部２０１は１回目のリクエストでないと判断する（ステップＳ２０２：ＮＯ）。例えば、受け付けたリクエストのリクエストボディに含まれるユーザＩＤと同一のユーザＩＤを含むリクエストボディと対応付いたレスポンスボディを記憶部２０３が記憶している場合、情報処理部２０１は１回目のリクエストでないと判断する。例えば、リクエストボディの数に基づいて情報処理部２０１が２回目のリクエストであると判断した場合、図６に示すように、通信部２０２はリクエストを業務サーバ３００に向けて送信する（ステップＳ２１１）。これにより、業務サーバ３００の通信部３０２は中間サーバ２００から送信されたリクエストを受信する（ステップＳ３１１）。
【００４９】
業務サーバ３００の業務処理部３０１は通信部３０２がリクエストを受信すると、リクエストで指定された処理を実行し、通信部３０２は処理結果を含むレスポンスを中間サーバ２００に向けて送信する（ステップＳ３１２）。これにより、中間サーバ２００の通信部２０２は業務サーバ３００から送信されたレスポンスを受信する（ステップＳ２１２）。
【００５０】
中間サーバ２００の通信部２０２がレスポンスを受信すると、情報処理部２０１は比較対象のレスポンスボディを記憶部２０３から取得する（ステップＳ２１３）。より詳しくは、情報処理部２０１は通信部２０２が受信したレスポンスに対応するリクエストのリクエストボディに記載された情報（例えばユーザＩＤや端末ＩＤなど）に基づいて、その情報と同一の情報を有するリクエストボディと対応付けられたレスポンスボディを取得する。
【００５１】
ステップＳ２１３の処理が完了すると、情報処理部２０１は通信部２０２が受信したレスポンスのレスポンスボディと、記憶部２０３から取得したレスポンスボディとを比較して（ステップＳ２１４）、差分情報を抽出する（ステップＳ２１５）。より詳しくは、図８（ａ）に示すように、情報処理部２０１は、受信したレスポンスのレスポンスボディ（図８（ａ）において受信ボディと表記）と、取得したレスポンスボディ（図８（ａ）において取得ボディと表記）とを比較して、受信したレスポンスボディのうち、取得したレスポンスボディとは異なる情報を差分情報として抽出する。したがって、図８（ａ）に示すように、情報処理部２０１は差分情報Ｄ１を抽出する。
【００５２】
ステップＳ２１５の処理が完了すると、次いで、情報処理部２０１は差分情報の量が閾値より大きいか否かを判断する（ステップＳ２１６）。この閾値は、差分情報の量の大きさを判定する基準量を表している。例えば、図８（ａ）に示すように、４つの項目”slug”、”name”、”created_at”、”uri”の中で項目”uri”しか差分がない場合には、情報処理部２０１は差分情報の量が閾値以下であると判断する（ステップＳ２１６：ＮＯ）。
【００５３】
この場合、通信部２０２は差分のレスポンスをモバイル端末１００に向けて送信する（ステップＳ２１７）。すなわち、差分情報の量が閾値以下であると情報処理部２０１が判断した場合、通信部２０２は送信種別「DIFF:”true”」をレスポンスヘッダに含むレスポンスを送信する。そして、図８（ｂ）に示すように、通信部２０２は差分情報Ｄ１をレスポンスボディ（図８（ｂ）において送信ボディと表記）に含むレスポンスを送信する。
【００５４】
ステップＳ２１７の処理が完了すると、モバイル端末１００の通信部１０２は差分のレスポンスを受信する（ステップＳ１１１）。制御部１０１は通信部１０２が差分のレスポンスを受信すると、差分のレスポンスに応じた処理を実行する。具体的には、制御部１０１は差分情報Ｄ１に対応する情報以外の情報に対して処理を実行せずに、差分情報Ｄ１に対応する情報に対して処理を実行する。これにより、モバイル端末１００の処理負荷が軽減される。
【００５５】
ここで、上述したステップＳ２０２の処理では、１回目のリクエストでない場合の一例として、２回目のリクエストである場合を説明したが、３回目のリクエストである場合についても、２回目のリクエストである場合と基本的に同様である。
【００５６】
具体的には、図９（ａ）に示すように、情報処理部２０１は、受信したレスポンスのレスポンスボディ（図９（ａ）において受信ボディと表記）と、取得したレスポンスボディ（図９（ａ）において取得ボディと表記）とを比較して、受信したレスポンスボディのうち、取得したレスポンスボディとは異なる情報を差分情報として抽出する。したがって、図９（ａ）に示すように、情報処理部２０１は２つの差分情報Ｄ２，Ｄ３を抽出する。この場合、図９（ｂ）に示すように、通信部２０２は差分情報Ｄ２，Ｄ３をレスポンスボディ（図９（ｂ）において送信ボディと表記）に含むレスポンスを送信する。このように、３回目のリクエストである場合であっても、モバイル端末１００が受信するレスポンスの情報量は差分がない場合に受信するレスポンスの情報量と比べて減少する。このため、モバイル端末１００の処理負荷を軽減することができる。
【００５７】
尚、図６に示すステップＳ２１６の処理において、情報処理部２０１は差分情報の量が閾値より大きいと判断した場合（ステップＳ２１６：ＹＥＳ）、記憶部２０３が記憶するレスポンスボディを変更する（ステップＳ２１８）。例えば、図１０（ａ）に示すように、４つの項目”slug”、”name”、”created_at”、”uri”の全てが差分である場合には、情報処理部２０１は差分情報の量が閾値より大きいと判断する。
【００５８】
この場合、情報処理部２０１は記憶部２０３が記憶するレスポンスボディを、通信部２０２がステップＳ２１２の処理で受信したレスポンスのレスポンスボディに変更する。より詳しくは、情報処理部２０１は記憶部２０３が記憶するレスポンスボディを消去して、ステップＳ２１２の処理で受信したレスポンスのレスポンスボディを、ステップＳ２０１の処理で通信部２０２が受信したリクエストのリクエストボディと対応付けて記憶部２０３に格納する。これにより、記憶部２０３が記憶していたレスポンスボディがキャッシュ期間を超過していない場合でも、そのレスポンスボディは新たなリクエストボディに適切に更新される。
【００５９】
ステップＳ２１８の処理が完了すると、通信部２０２はレスポンスをモバイル端末１００に向けて送信する（ステップＳ２１９）。すなわち、差分情報の量が閾値より大きいと情報処理部２０１が判断した場合、通信部２０２は送信種別「DIFF:”true”」をレスポンスヘッダに含むレスポンスを送信する。通信部２０２が送信するレスポンスは、図１０（ｂ）に示すように、差分情報Ｄ４，Ｄ５，Ｄ６，Ｄ７をレスポンスボディ（図１０（ｂ）において送信ボディと表記）に含んでいる。
【００６０】
尚、情報処理部２０１は、ＡＰＩを実行する頻度とレスポンスボディを変更する頻度と２つの頻度と閾値とを対応付けた対応表に基づいて、上述した閾値を決定する。例えば、ＡＰＩを実行する頻度とレスポンスボディを変更する頻度の両方が低い場合には、対応表に基づいて、上述した閾値を小さな閾値に決定する。すなわち、差分が頻繁に発生し、かつ、レスポンスボディのキャッシュ期間が長期化している場合、情報処理部２０１は閾値を小さな閾値に決定する。これにより、通信部２０２はレスポンスボディの情報量が抑制されたレスポンスを高い頻度で送信する。
【００６１】
以上、第１実施形態によれば、中間サーバ２００は情報処理部２０１と通信部２０２とを備えている。通信部２０２はモバイル端末１００よりバックエンドシステムＢＥＳに対する処理のリクエストを受信すると、受信したリクエストをバックエンドシステムＢＥＳに送信する。情報処理部２０１は、記憶部２０３を参照して、受信したリクエストのリクエストボディに対応付けられたレスポンスボディを取得する。
【００６２】
一方、通信部２０２はリクエストを送信したことに応じて、バックエンドシステムＢＥＳより該リクエストに対するレスポンスを受信すると、情報処理部２０１は通信部２０２が受信したレスポンスの内容を示すレスポンスボディと、取得したレスポンスボディとの比較により、受信したレスポンスのレスポンスボディのうち、取得したレスポンスボディとは異なる差分情報を抽出する。情報処理部２０１は抽出した差分情報の情報量に基づき、受信したレスポンスをモバイル端末１００に送信するか、抽出した差分情報のレスポンスをモバイル端末１００に送信するかを制御する処理を実行する。
【００６３】
これにより、モバイル端末１００の処理負荷を軽減することができる。また、モバイル端末１００が受信するレスポンスの情報量が制限されるため、モバイル端末１００の通信環境が高速通信を利用できない環境（例えば山間部や僻地など）であっても、通信によるボトルネックを軽減することができる。さらに、モバイル端末１００の通信契約が従量課金制である場合でも、同様の理由により、通信量を削減することができる。
【００６４】
（第２実施形態）
続いて、図１１及び図１２を参照して、本件の第２実施形態について説明する。図１１はサービス提供システムＳＴの動作の一例を示す処理シーケンス図の一部（その１）である。図１２はサービス提供システムＳＴの動作の一例を示す処理シーケンス図の一部（その２）である。図１１に示すように、サービス提供システムＳＴは第１実施形態で説明したステップＳ２０６の処理に代えて、ステップＳ２０５の処理の後に、ステップＳ２２１の処理などを含めてもよい。また、図１２に示すように、サービス提供システムＳＴは第１実施形態で説明したステップＳ２１５からＳ２１９の処理に代えて、ステップＳ２１４の処理の後に、ステップＳ２３１の処理などを含めてもよい。
【００６５】
具体的には、図１１に示すように、ステップＳ２０５の処理が完了すると、中間サーバ２００の情報処理部２０１は項目指定の有無を判断する（ステップＳ２２１）。例えば、モバイル端末１００がレスポンスボディ内の特定の項目に対応する情報を処理に使用し、特定の項目以外の残りの項目に対応する情報を処理に使用しない場合、制御部１０１は中間サーバ２００が管理する定義情報に特定の項目をパスで指定する。定義情報は中間サーバ２００が管理するＡＰＩの定義を示す情報である。これにより、情報処理部２０１は、定義情報を参照して、項目指定の有無を判断する。
【００６６】
情報処理部２０１は項目指定があると判断した場合（ステップＳ２２１：ＹＥＳ）、通信部２０２は指定項目のレスポンスをモバイル端末１００に向けて送信する（ステップＳ２２２）。例えば、定義情報に特定の項目”uri”がJSON PathやX Pathなどで指定されていた場合、情報処理部２０１は項目指定があると判断する。この場合、通信部２０２は指定された項目とその項目に対応する情報を送信対象として含むレスポンスをモバイル端末１００に向けて送信する。これにより、モバイル端末１００の通信部１０２は指定された項目とその項目に対応する情報を含むレスポンスを受信する（ステップＳ１２１）。したがって、定義情報に特定の項目”uri”が指定されていた場合、制御部１０１は項目”uri”に対応する情報を処理に使用し、残りの複数の項目”slug”、”name”、”created_at”に対応する情報を処理に使用しないで済む。これにより、モバイル端末１００の処理負荷を軽減することができる。
【００６７】
また、図１２に示すように、ステップＳ２１４の処理が完了すると、中間サーバ２００の情報処理部２０１は指定項目に対応する情報の変更の有無を判断する（ステップＳ２３１）。例えば、情報処理部２０１は、２つのレスポンスボディを比較した結果、指定項目”uri”に対応する情報が相違しない場合、指定項目に対応する情報の変更がなかったと判断する（ステップＳ２３１：ＮＯ）。この場合、通信部２０２はレスポンスボディの中身が空（カラ）のレスポンスをモバイル端末１００に向けて送信する（ステップＳ２３２）。これにより、モバイル端末１００の通信部１０２は空（カラ）のレスポンスを受信する（ステップＳ１３１）。このように、通信部１０２はレスポンスボディの中身を含まないレスポンスを受信するため、制御部１０１はレスポンスボディに情報がある場合に実行する処理を実行しない。結果的に、モバイル端末１００の処理負荷を軽減することができる。
【００６８】
一方、情報処理部２０１は、２つのレスポンスボディを比較した結果、指定項目”uri”に対応する情報が相違する場合、指定項目に対応する情報の変更があったと判断する（ステップＳ２３１：ＹＥＳ）。この場合、情報処理部２０１は記憶部２０３が記憶するレスポンスボディを変更する（ステップＳ２３３）。そして、ステップＳ２３３の処理が完了すると、通信部２０２は、上述したステップＳ２２２の処理と同様に、指定項目のレスポンスをモバイル端末１００に向けて送信する（ステップＳ２３４）。これにより、モバイル端末１００の通信部１０２は指定項目のレスポンスを受信する（ステップＳ１３２）。したがって、定義情報に特定の項目”uri”が指定されていた場合、制御部１０１は項目”uri”に対応する情報を処理に使用し、残りの複数の項目”slug”、”name”、”created_at”に対応する情報を処理に使用しないで済む。これにより、モバイル端末１００の処理負荷を軽減することができる。
【００６９】
以上、本発明の好ましい実施形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。例えば、上述した実施形態では、無線通信ＷＬの一例として広域無線通信を説明したが、Ｗｉ−Ｆｉ（登録商標）やＢｌｕｅｔｏｏｔｈ（登録商標）といった近距離無線通信を無線通信ＷＬとして利用してもよい。
【００７０】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）端末装置より情報処理システムに対する処理の要求を受信すると、受信した前記要求を前記情報処理システムに送信するとともに、処理の要求に対する応答内容を示す情報を該要求の内容に対応付けて記憶する記憶部を参照して、受信した前記要求の内容に対応付けられた情報を取得し、送信した前記要求に対する応答内容を示す情報を受信すると、受信した前記情報と、取得した前記情報とに基づき、受信した前記情報のうち、取得した前記情報とは異なる情報を抽出し、抽出した前記情報の情報量に基づき、受信した前記情報を前記端末装置に送信するか、抽出した前記情報を前記端末装置に送信するかを制御する、処理をコンピュータが実行することを特徴とする制御方法。
（付記２）抽出した前記情報の情報量が基準量を超える場合、受信した前記要求の内容に対応付けられた前記情報を、受信した前記情報に変更する、ことを特徴とする付記１に記載の制御方法。
（付記３）前記情報処理システムが実行するアプリケーションソフトウェアを実行させるプログラムを、受信した前記要求に応じて実行する頻度と、受信した前記要求の内容に対応付けられた前記情報を、受信した前記情報に変更する頻度とに基づいて、前記基準量を決定する、ことを特徴とする付記２に記載の制御方法。
（付記４）前記情報処理システムが実行するアプリケーションソフトウェアを実行させるプログラムを、受信した前記要求に応じて実行する頻度に基づいて、前記記憶部が記憶する前記情報の記憶期間を算出する、ことを特徴とする付記１から３のいずれか１項に記載の制御方法。
（付記５）受信した前記情報のうちの特定の情報が送信対象として指定されており、受信した前記情報のうちの特定の情報と、取得した前記情報のうち前記特定の情報に対応する情報との比較により、前記特定の情報と前記特定の情報に対応する情報との間に変更がない場合、受信した前記情報を含まない情報を送信する、ことを特徴とする付記１から４のいずれか１項に記載の制御方法。
（付記６）端末装置より情報処理システムに対する処理の要求を受信すると、受信した前記要求を前記情報処理システムに送信するとともに、処理の要求に対する応答内容を示す情報を該要求の内容に対応付けて記憶する記憶部を参照して、受信した前記要求の内容に対応付けられた情報を取得し、送信した前記要求に対する応答内容を示す情報を受信すると、受信した前記情報と、取得した前記情報とに基づき、受信した前記情報のうち、取得した前記情報とは異なる情報を抽出し、抽出した前記情報の情報量に基づき、受信した前記情報を前記端末装置に送信するか、抽出した前記情報を前記端末装置に送信するかを制御する、処理をコンピュータに実行させることを特徴とする制御プログラム。
（付記７）処理の要求に対する応答内容を示す情報を該要求の内容に対応付けて記憶する記憶部と、端末装置より情報処理システムに対する処理の要求を受信すると、受信した前記要求を前記情報処理システムに送信する通信部と、前記記憶部を参照して、前記通信部が受信した前記要求の内容に対応付けられた情報を取得し、前記通信部が送信した前記要求に対する応答内容を示す情報を受信すると、前記通信部が受信した前記情報と、取得した前記情報とに基づき、前記通信部が受信した前記情報のうち、取得した前記情報とは異なる情報を抽出し、抽出した前記情報の情報量に基づき、受信した前記情報を前記端末装置に送信するか、抽出した前記情報を前記端末装置に送信するかを制御する、処理を実行する情報処理部と、を有することを特徴とする情報処理装置。
（付記８）前記情報処理部は、抽出した前記情報の情報量が基準量を超える場合、受信した前記要求の内容に対応付けられた前記情報を、受信した前記情報に変更する、ことを特徴とする付記７に記載の情報処理装置。
（付記９）前記情報処理部は、前記情報処理システムが実行するアプリケーションソフトウェアを実行させるプログラムを、前記通信部が受信した前記要求に応じて実行する頻度と、受信した前記要求の内容に対応付けられた前記情報を、受信した前記情報に変更する頻度とに基づいて、前記基準量を決定する、ことを特徴とする付記８に記載の情報処理装置。
（付記１０）前記情報処理部は、前記情報処理システムが実行するアプリケーションソフトウェアを実行させるプログラムを、前記通信部が受信した前記要求に応じて実行する頻度に基づいて、前記記憶部が記憶する前記情報の記憶期間を算出する、ことを特徴とする付記７から９のいずれか１項に記載の情報処理装置。
（付記１１）前記情報処理部は、受信した前記情報のうちの特定の情報が送信対象として指定されており、受信した前記情報のうちの特定の情報と、取得した前記情報のうち前記特定の情報に対応する情報との比較により、前記特定の情報と前記特定の情報に対応する情報との間に変更がない場合、受信した前記情報を含まない情報を送信する処理を実行する、ことを特徴とする付記７から１０のいずれか１項に記載の情報処理装置。
（付記１２）端末装置より情報処理システムに対する処理の要求を受信すると、受信した前記要求を前記情報処理システムに送信し、前記要求を送信したことに応じて、前記情報処理システムより該要求に対する応答を受信すると、処理の要求に対する応答の内容を示す情報を該要求の内容を示す情報に対応付けて記憶する記憶部を参照して、受信した前記要求の内容を示す情報に対応付けられた情報を取得し、受信した前記応答の内容を示す情報と、取得した前記情報との比較により、受信した前記応答の内容を示す情報のうち、取得した前記情報とは異なる情報を抽出し、抽出した前記情報の情報量に基づき、受信した前記応答の内容を示す情報を前記端末装置に送信するか、抽出した前記情報を前記端末装置に送信するかを制御する、処理をコンピュータが実行することを特徴とする制御方法。
（付記１３）抽出した前記情報の情報量が基準量以下である場合、前記第１の処理を実行する、ことを特徴とする付記１２に記載の制御方法。
【符号の説明】
【００７１】
ＳＴ  サービス提供システム
ＢＥＳ  バックエンドシステム
１００  モバイル端末
２００  中間サーバ
２０１  情報処理部
２０２  通信部
２０３  記憶部
３００  業務サーバ
【図１】
2019185512.tif 000003
【図２】
2019185512.tif 000004
【図３】
2019185512.tif 000005
【図４】
2019185512.tif 000006
【図５】
2019185512.tif 000007
【図６】
2019185512.tif 000008
【図７】
2019185512.tif 000009
【図８】
2019185512.tif 000010
【図９】
2019185512.tif 000011
【図１０】
2019185512.tif 000012
【図１１】
2019185512.tif 000013
【図１２】
2019185512.tif 000014