(57)【要約】【課題】完了までに時間の掛かる処理を依頼する通信が同時に発生する数を抑制できるプログラム及び通信抑制方法を提供することを課題とする。【解決手段】  コンピュータを、完了までの時間が長い第１の処理を依頼する通信と完了までの時間が第１の処理よりも短い第２の処理を依頼する通信とが行われる通信の発信元において、第１の処理を依頼する通信が行われているか否かの情報を記録する記録手段、通信の発信元と受信先とにおいて、同時に通信できる数が制限されている場合に発信元側で第２の処理を依頼する通信が少なくとも一つ行えるように記録手段に記録されている情報を参照して第１の処理を依頼する通信の数を抑制する同時接続抑制手段、として機能させるためのプログラムにより上記課題を解決する。【選択図】図４
2014206899.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
完了までの時間が長い第１の処理を依頼する通信と完了までの時間が前記第１の処理よりも短い第２の処理を依頼する通信とが行われる通信の発信元において、前記第１の処理を依頼する通信が行われているか否かの情報を記録する記録手段、
前記通信の発信元と受信先とにおいて、同時に通信できる数が制限されている場合に前記発信元側で前記第２の処理を依頼する通信が少なくとも一つ行えるように前記記録手段に記録されている前記情報を参照して前記第１の処理を依頼する通信の数を抑制する同時接続抑制手段、
として機能させるためのプログラム。
【請求項２】
前記同時接続抑制手段は、前記第１の処理を依頼する通信を行う前に、前記記録手段に記録されている前記情報を参照して前記第１の処理を依頼する別の通信が行われているか否かを判定し、前記第１の処理を依頼する別の通信が行われていないと判定すると、前記記録手段に記録されている前記情報を前記第１の処理を依頼する通信が行われていることを表すように更新したあと、前記第１の処理を依頼する通信を前記発信元に行わせること
を特徴とする請求項１記載のプログラム。
【請求項３】
前記同時接続抑制手段は、前記第１の処理を依頼する別の通信が行われていると判定すると、前記別の通信が終了するまで待機すること
を特徴とする請求項２記載のプログラム。
【請求項４】
前記記録手段は、更に、待機中の前記第１の処理を依頼する通信を表す発信元情報を記録しており、
前記同時接続抑制手段は、前記第１の処理を依頼する別の通信が行われていると判定すると、前記記録手段に記録されている前記発信元情報を、新たに発生した前記第１の処理を依頼する通信が待機中の前記第１の処理を依頼する通信となるように書き替えること
を特徴とする請求項３記載のプログラム。
【請求項５】
所定時間を計時するタイマ手段として更に機能させ、
前記同時接続抑制手段は、前記記録手段に記録されている前記発信元情報を、新たに発生した前記第１の処理を依頼する通信が待機中の前記第１の処理を依頼する通信となるように書き替えたあと、前記タイマ手段により所定時間が計時されると、前記記録手段に記録されている前記発信元情報を参照して、待機中の前記第１の処理を依頼する通信のうち前記発信元情報に記録されていない前記第１の処理を依頼する通信をキャンセルすること
を特徴とする請求項４記載のプログラム。
【請求項６】
前記第１の処理を依頼する通信はサムネイルの作成依頼を行う通信と、サムネイルの画像データ取得依頼を行う通信と、を含むこと
を特徴とする請求項１乃至５何れか一項記載のプログラム。
【請求項７】
コンピュータによって実行される通信抑制方法であって、
完了までの時間が長い第１の処理を依頼する通信と完了までの時間が前記第１の処理よりも短い第２の処理を依頼する通信とが行われる通信の発信元において、前記第１の処理を依頼する通信が行われているか否かの情報を記録手段に記録する記録ステップと、
前記通信の発信元と受信先とにおいて、同時に通信できる数が制限されている場合に前記発信元側で前記第２の処理を依頼する通信が少なくとも一つ行えるように前記記録手段に記録されている前記情報を参照して前記第１の処理を依頼する通信の数を抑制する同時接続抑制ステップと、
を有することを特徴とする通信抑制方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム及び通信抑制方法に関する。
【背景技術】
【０００２】
例えばエンドサーバのサービス時間に基づいて各ユーザ端末からエンドサーバへのアクセスタイミングを正確に制御することでアクセス集中を緩和する自立型アクセス集中緩和システムは従来から知られている（例えば特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
モジュール間で行われる通信では、同時に通信できる数（通信の口の数）が制限される場合がある。しかしながら、通信の口の数が制限されている場合は、完了までに時間の掛かる処理を依頼する通信がモジュール間において通信の口の数以上発生すると、後の処理が正常に行われないことがあるという問題があった。
【０００４】
本発明の一実施形態は上記の点に鑑みなされたもので、完了までに時間の掛かる処理を依頼する通信が同時に発生する数を抑制できるプログラム及び通信抑制方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、本願請求項１は、コンピュータを、完了までの時間が長い第１の処理を依頼する通信と完了までの時間が前記第１の処理よりも短い第２の処理を依頼する通信とが行われる通信の発信元において、前記第１の処理を依頼する通信が行われているか否かの情報を記録する記録手段、前記通信の発信元と受信先とにおいて、同時に通信できる数が制限されている場合に前記発信元側で前記第２の処理を依頼する通信が少なくとも一つ行えるように前記記録手段に記録されている前記情報を参照して前記第１の処理を依頼する通信の数を抑制する同時接続抑制手段、として機能させるためのプログラムであることを特徴とする。
【発明の効果】
【０００６】
本発明の一実施形態によれば、完了までに時間の掛かる処理を依頼する通信が同時に発生する数を抑制できる。
【図面の簡単な説明】
【０００７】
【図１】コンピュータシステムの一例のハードウェア構成図である。
【図２】ＧＵＩアプリを起動させたコンピュータシステムの一例の処理ブロック図である。
【図３】モジュール間で行われる通信の一例を表したシーケンス図である。
【図４】同時接続抑制処理の一例を説明する図である。
【図５】通信の種類による同時接続抑制処理の有無の一例を説明する図である。
【図６】通信の種類による同時接続抑制処理の有無の他の例を説明する図である。
【図７】通信の種類による同時接続抑制処理の有無の他の例を説明する図である。
【図８】ＵＩモジュール及びサービスモジュールの一例の処理ブロック図である。
【図９】同時接続抑制処理の一例のフローチャートである。
【図１０】同時接続抑制処理の一例のシーケンス図である。
【発明を実施するための形態】
【０００８】
次に、本発明を実施するための形態を以下の実施形態に基づき図面を参照しつつ説明していく。以下の説明におけるＧＵＩ（Graphical User Interface）アプリケーションプログラムは本発明を理解しやすくするためのものである。本発明はＧＵＩアプリケーションプログラムに限定されるものではない。
［第１の実施形態］
ＧＵＩアプリケーションプログラムは、例えば図１に示すようなハードウェア構成のコンピュータシステム上で動作する。
【０００９】
図１はコンピュータシステムの一例のハードウェア構成図である。コンピュータシステム５００は、入力装置５０１、表示装置５０２、外部Ｉ／Ｆ５０３、ＲＡＭ５０４、ＲＯＭ５０５、ＣＰＵ５０６、通信Ｉ／Ｆ５０７、及びＨＤＤ５０８などを備え、それぞれがバスＢで相互に接続されている。
【００１０】
入力装置５０１はキーボードやマウス、タッチパネルなどを含み、ユーザが各操作信号を入力するのに用いられる。表示装置５０２はディスプレイ等を含み、コンピュータシステム５００による処理結果を表示する。
【００１１】
通信Ｉ／Ｆ５０７はコンピュータシステム５００をネットワーク（図示せず）に接続するインタフェースである。これにより、コンピュータシステム５００は通信Ｉ／Ｆ５０７を介してデータ通信を行うことができる。
【００１２】
ＨＤＤ（Hard Disk Drive）５０８はプログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、例えばコンピュータシステム５００全体を制御する基本プログラムであるＯＳ（Operating System）や、ＯＳ上において各種機能を提供するアプリケーションプログラムなどがある。ＨＤＤ５０８は格納しているプログラムやデータを所定のファイルシステム及び／又はＤＢ（データベース）により管理している。
【００１３】
外部Ｉ／Ｆ５０３は、外部装置とのインタフェースである。外部装置には、記録媒体５０３ａなどがある。これにより、コンピュータシステム５００は外部Ｉ／Ｆ５０３を介して記録媒体５０３ａの読み取り及び／又は書き込みを行うことができる。
【００１４】
記録媒体５０３ａには、例えばフレキシブルディスク、ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk）等がある。記録媒体５０３ａにはＳＤ（Secure Digital）メモリカード、ＵＳＢ（Universal Serial Bus）メモリなどがある。
【００１５】
ＲＯＭ（Read Only Memory）５０５は電源を切ってもプログラムやデータを保持できる不揮発性の半導体メモリ（記憶装置）である。ＲＯＭ５０５にはコンピュータシステム５００の起動時に実行されるＢＩＯＳ（Basic Input/Output System）、ＯＳ設定及びネットワーク設定などのプログラムやデータが格納されている。
【００１６】
ＲＡＭ（Random Access Memory）５０４は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。ＣＰＵ（Central Processing Unit）５０６はＲＯＭ５０５やＨＤＤ５０８などの記憶装置からプログラムやデータをＲＡＭ５０４上に読み出し、処理を実行することで、コンピュータシステム５００全体の制御や機能を実現する演算装置である。
【００１７】
このようなコンピュータシステム５００のハードウェア構成上で動作させることによりＧＵＩアプリケーションプログラム（以下、単にＧＵＩアプリと呼ぶ）は、後述するような各種処理を実現できる。
【００１８】
コンピュータシステム５００はＧＵＩアプリにより例えば図２に示す処理ブロックを実現する。図２はＧＵＩアプリを起動させたコンピュータシステムの一例の処理ブロック図である。
【００１９】
図１のコンピュータシステム５００はＧＵＩアプリを実行することで、ＵＩモジュール１１とサービスモジュール１２とを実現する。なお、図２の処理ブロックは本実施形態の説明に不要な部分について省略している。ＵＩモジュール１１とサービスモジュール１２とはモジュール間で通信を行うモジュールの一例である。
【００２０】
ＵＩモジュール１１は設定項目やサムネイルなどの画面の表示と、サービスモジュール１２へ設定結果の反映を依頼する処理とを行う。サービスモジュール１２は画面の表示以外の内部処理として、同時に設定不可な設定項目の管理やファイルの入出力等を行う。
【００２１】
なお、ＵＩモジュール１１とサービスモジュール１２との間で処理の依頼、処理結果の通知等のやり取りを行う際には、ＨＴＴＰ通信などの通信が発生する。ＵＩモジュールとサービスモジュール１２との通信の口の数は２本という制限があるものとする。
【００２２】
通信の口の数の制限は、例えば通信に使用する通信コンポーネント（例えばＷｉｎＩｎｅｔ）側の制限により発生する。ＷｉｎＩｎｅｔは、ＯＳの一例のＷｉｎｄｏｗｓ（登録商標）が内蔵するコンポーネントの一つであり、プログラムからＨＴＴＰ通信などの通信を行うための通信コンポーネントである。
【００２３】
図３はモジュール間で行われる通信の一例を表したシーケンス図である。図３に示した通信はＧＵＩアプリにサムネイルを表示するために必要な処理である。ＵＩモジュール１１は画面の初期化処理や画面のスクロール等が発生すると、ステップＳ１において、サムネイルの作成依頼をサービスモジュール１２に対して行う。また、ステップＳ２においてＵＩモジュール１１はサムネイルの画像データ取得依頼をサービスモジュール１２に対して行う。
【００２４】
ステップＳ１及びＳ２に示した２種類の通信は、完了までに時間の掛かる処理を依頼する通信の一例である。本実施形態のＧＵＩアプリではサムネイルの作成依頼やサムネイルの画像データ取得依頼などの完了までに時間の掛かる処理を依頼する通信について、後述の同時接続抑制処理を行う。
【００２５】
図４は同時接続抑制処理の一例を説明する図である。図４ではＧＵＩアプリにおいて２つのジョブ（ジョブ１、ジョブ２）を想定し、同時接続抑制処理が行われている状態を示している。図４においてジョブはＧＵＩアプリで使用する原稿や編集した内容などを保存するファイルである。図４では先にジョブ１がサムネイル作成を依頼した後、サムネイルの作成が完了する前に、ジョブ２でもサムネイル作成を依頼する必要が生じた例を示している。
【００２６】
ステップＳ１１において、ＵＩモジュール１１はジョブ１のサムネイル作成依頼を行う通信をサービスモジュール１２に対して実行する。ＵＩモジュール１１はステップＳ１２において、ジョブ２のサムネイル作成依頼を行う必要が生じている。しかし、ジョブ１のサムネイル作成依頼の処理が完了していないため、ＵＩモジュール１１はジョブ２のサムネイル作成依頼を行う通信を実行せず、一定時間（例えば１ミリ秒）待機する。
【００２７】
なお、一定時間待機後、ジョブ１のサムネイル作成依頼の処理が完了していない場合には更に一定時間待機する。ステップＳ１２の処理が同時接続抑制処理となる。ステップＳ１３において、サービスモジュール１２はジョブ１のサムネイル作成が完了する。サービスモジュール１２はジョブ１のサムネイル作成が完了した結果をＵＩモジュール１１に通知する。
【００２８】
ステップＳ１４において、ＵＩモジュール１１はジョブ２のサムネイル作成依頼を行う通信をサービスモジュール１２に対して実行する。ステップＳ１５において、サービスモジュール１２はジョブ２のサムネイル作成が完了する。サービスモジュール１２はジョブ２のサムネイル作成が完了した結果をＵＩモジュール１１に通知する。
【００２９】
図５は通信の種類による同時接続抑制処理の有無の一例を説明する図である。図５ではＵＩモジュール１１とサービスモジュール１２との間で通信を行う通信の口２１を斜線により視覚的に表している。図５では上側の通信の口２１において同時接続抑制処理を行うものとする。同時接続抑制処理を行う通信の口２１は上側でも下側でも良い。
【００３０】
完了までに時間の掛かる（完了までの時間が長い）処理（例えばサムネイルを表示するために必要な処理）を依頼する通信は、同時接続抑制処理を行う上側の通信の口２１が使用される。また、完了までに時間の掛からない（完了までの時間が短い）処理（例えばステープルの設定を行う処理）を依頼する通信は、同時接続抑制処理を行わない下側の通信の口２１が使用される。
【００３１】
図５において、例えばＵＩモジュール１１とサービスモジュール１２との間でサムネイル作成依頼Ａ、サムネイル作成依頼Ｂ、ステープルの設定依頼が発生したとする。サムネイル作成依頼Ａ及びサムネイル作成依頼Ｂは同時接続抑制処理を行う上側の通信の口２１を使用して通信される。また、ステープルの設定依頼は同時接続抑制処理を行わない下側の通信の口２１を使用して通信される。
【００３２】
このように、ＵＩモジュール１１は完了までに時間の掛からない処理の通信が発生した場合を考慮し、少なくとも一つの通信の口（下側の通信の口）２１を空けておくように完了までに時間の掛かる処理の通信を他の通信の口（上側の通信の口）２１で行う。
【００３３】
図６は通信の種類による同時接続抑制処理の有無の他の例を説明する図である。図６でもＵＩモジュール１１とサービスモジュール１２との間で通信を行う通信の口２１を斜線により視覚的に表している。図６では上側の２本の通信の口２１において同時接続抑制処理を行うものとする。同時接続抑制処理を行う通信の口２１は３本の通信の口２１の何れか２本であればよい。
【００３４】
なお、図６では通信の口が３本の例を示しているが４本以上であってもよい。通信の口２１が４本以上である場合は同時接続抑制処理を行う通信の口２１の本数は、通信の口２１の本数から１を引いた本数となる。
【００３５】
完了までに時間の掛かる処理を依頼する通信は、同時接続抑制処理を行う上側の２本の通信の口２１が使用される。また、完了までに時間の掛からない処理を依頼する通信は同時接続抑制処理を行わない下側の１本の通信の口２１が使用される。
【００３６】
図６において、例えばＵＩモジュール１１とサービスモジュール１２との間でサムネイル作成依頼Ａ、サムネイル作成依頼Ｂ、ステープルの設定依頼が発生したとする。サムネイル作成依頼Ａ及びサムネイル作成依頼Ｂは同時接続抑制処理を行う上側の２本の通信の口２１を使用して通信される。また、ステープルの設定依頼は同時接続抑制処理を行わない下側の１本の通信の口２１を使用して通信される。
【００３７】
このように、ＵＩモジュール１１は完了までに時間の掛からない処理の通信が発生した場合を考慮し、少なくとも一つの通信の口２１を空けておくように完了までに時間の掛かる処理の通信を通信の口２１の本数から１を引いた本数分だけ使用して行う。
【００３８】
図７は通信の種類による同時接続抑制処理の有無の他の例を説明する図である。図７でもＵＩモジュール１１とサービスモジュール１２との間で通信を行う通信の口２１を斜線により視覚的に表している。図７では上側の通信の口２１において同時接続抑制処理を行うものとする。同時接続抑制処理を行う通信の口２１は上側でも下側でも良い。
【００３９】
完了までに時間の掛かる処理（例えばサムネイルを表示するために必要な処理であるサムネイルの作成及びサムネイルの画像データ取得）を依頼する通信は、同時接続抑制処理を行う上側の通信の口２１が使用される。また、完了までに時間の掛からない処理（例えばステープルの設定を行う処理）を依頼する通信は、同時接続抑制処理を行わない下側の通信の口２１が使用される。
【００４０】
図７において、例えばＵＩモジュール１１とサービスモジュール１２との間でサムネイル作成依頼Ａ、サムネイル作成依頼Ｂ、ステープルの設定依頼、サムネイルの画像データ取得依頼Ａが発生したとする。サムネイル作成依頼Ａ、サムネイル作成依頼Ｂ及びサムネイルの画像データ取得依頼Ａは同時接続抑制処理を行う上側の通信の口２１を使用して通信される。また、ステープルの設定依頼は同時接続抑制処理を行わない下側の通信の口２１を使用して通信される。
【００４１】
このように、ＵＩモジュール１１は完了までに時間の掛からない処理の通信が発生した場合を考慮し、少なくとも一つの通信の口（下側の通信の口）２１を空けておくように完了までに時間の掛かる処理の通信を他の通信の口（上側の通信の口）２１で行う。
【００４２】
図８はＵＩモジュール及びサービスモジュールの一例の処理ブロック図である。図８のＵＩモジュール１１は、発信元３１、同時接続抑制部３２、記録部３３、タイマ部３４を有する構成である。サービスモジュール１２は受信先４１を有する構成である。
【００４３】
発信元３１は通信を行う際に、通信を発信する。同時接続抑制部３２は同時接続を抑制する必要がある通信に対し、通信の実行状況などの情報を用い、通信を実行するか、待機するか、キャンセルするか、を判定する。記録部３３は同時接続抑制処理を行うために必要な情報を記録する。タイマ部３４は、一定（所定）時間をカウント（計時）する。タイマ部３４は、通信を実行するか、待機するか、キャンセルするか、を判定する処理を一定時間待機するために利用される。また、受信先４１は通信を行う際に通信を受信する。
【００４４】
図９は同時接続抑制処理の一例のフローチャートである。図９のフローチャートはサムネイル作成／データ取得依頼があると開始される。サムネイル作成／データ取得依頼は画面の初期化（更新）処理や画面のスクロール等により発生する。サムネイル作成／データ取得依頼は前述したサムネイル作成依頼とサムネイルの画像データ取得依頼とに対応するものである。また、図９のフローチャートの処理において、記録部３３に記録されるサムネイル取得フラグ（サムネイル作成／データ取得依頼のフラグ）とサムネイル取得（サムネイル作成／データ取得依頼）の発信元情報とが、共通の情報として使用される。
【００４５】
発信元３１からサムネイル作成／データ取得依頼があると、同時接続抑制部３２は図９のフローチャートの処理を開始する。ステップＳ２１において、同時接続抑制部３２は別のサムネイル作成／データ取得依頼中であるかを判定する。
【００４６】
別のサムネイル作成／データ取得依頼中でなければ、同時接続抑制部３２はステップＳ２２の処理に進み、処理を継続する。一方、別のサムネイル作成／データ取得依頼中であれば、同時接続抑制部３２はステップＳ３１の処理に進み、処理を待機させる。
【００４７】
別のサムネイル作成／データ取得依頼中でなければ、同時接続抑制部３２はステップＳ２２の処理に進み、既にサムネイル作成／データ取得依頼中であることを示すため、サムネイル作成／データ取得依頼のフラグを「ｔｒｕｅ」に設定する。
【００４８】
ステップＳ２３において、同時接続抑制部３２は別のサムネイル作成／データ取得依頼によってタイマが開始されていれば、タイマを破棄する。ステップＳ２４において、同時接続抑制部３２は、既にサムネイル作成／データ取得依頼中であることを示すため、サムネイル作成／データ取得依頼の発信元情報を、通信を実行するサムネイル作成／データ取得依頼のものに書き替える。発信元情報はそれぞれのサムネイル作成／データ取得依頼で一意である。ステップＳ２５において、ＵＩモジュール１１の発信元３１はサービスモジュール１２の受信先４１に対し、サムネイル作成／データ取得依頼を行うための通信を実行する。
【００４９】
サムネイル作成／データ取得依頼を行うための通信が完了すると、同時接続抑制部３２はステップＳ２６に進む。ステップＳ２６において、同時接続抑制部３２はサムネイル作成／データ取得依頼中でないことを示すため、サムネイル作成／データ取得依頼のフラグを「ｆａｌｓｅ」に設定する。ステップＳ２７に進み、同時接続抑制部３２はサムネイル作成／データ取得依頼の通信の結果に対し、成功／失敗それぞれで処理を実行し、サムネイル作成／データ取得依頼を完了させる。
【００５０】
一方、別のサムネイル作成／データ取得依頼中であれば、同時接続抑制部３２はサムネイル作成／データ取得依頼を一旦待機（待機中に）させるための処理を実行する。ステップＳ３１の処理に進み、同時接続抑制部３２は現在実行されている通信の後にサムネイル作成／データ取得依頼を行うため、サムネイル作成／データ取得依頼の発信元情報を、待機するサムネイル作成／データ取得依頼のものに書き替える。
【００５１】
ステップＳ３２において、同時接続抑制部３２は別のサムネイル作成／データ取得依頼によってタイマが作成されていれば、タイマを破棄する。ステップＳ３３において、同時接続抑制部３２はタイマを開始して一定時間（例えば１ミリ秒）待機する。一定時間が経過した後、同時接続抑制部３２はステップＳ３４において、サムネイル作成／データ取得依頼の発信元情報が、待機するサムネイル作成／データ取得依頼のものと同一であるかを判定する。
【００５２】
同一であれば、同時接続抑制部３２はステップＳ２１に戻り、処理を続ける。同一でなければ、同時接続抑制部３２はステップＳ３３で開始したタイマをステップＳ３５において破棄し、サムネイル作成／データ取得依頼をキャンセルさせる。
【００５３】
図９のフローチャートは、後から発信されたサムネイル作成／データ取得依頼を優先させることを前提としている。本実施形態はサムネイルを表示するために必要な処理を一例として示しているが、一旦必要となったサムネイルがユーザのスクロール操作などにより不要となり、新たなサムネイルが必要となることに対応させている。
【００５４】
なお、図９のフローチャートの処理ではサムネイル作成／データ取得依頼のフラグとサムネイル作成／データ取得依頼の発信元情報とを使用する例を説明したが、サムネイル作成／データ取得依頼のフラグを省略することもできる。サムネイル作成／データ取得依頼のフラグを省略する場合は、サムネイル作成／データ取得依頼の発信元情報にサムネイル作成／データ取得依頼のフラグの役割を持たせるようにすればよい。
【００５５】
図１０は同時接続抑制処理の一例のシーケンス図である。なお、図１０のシーケンス図ではステップＳ５１〜Ｓ５２と、ステップＳ５３〜Ｓ５８の処理と、ステップＳ６１〜Ｓ６７の処理と、分類できる。そこで、以下ではステップＳ５１〜Ｓ５２と、ステップＳ５３〜Ｓ５８の処理と、ステップＳ６１〜Ｓ６７の処理と、に分けて説明する。
【００５６】
ステップＳ５１〜Ｓ５２は発信元３１からの通信開始要求が発生したときの処理の一例である。ステップＳ５１において、発信元３１は同時接続抑制部３２に対し、通信開始要求が行われる。ステップＳ５２において、同時接続抑制部３２は他の発信元が通信中であるか否かを判定するため、記録部３３に対し、通信実行中か否かを示すフラグの値を要求する。
【００５７】
同時接続抑制部３２は通信実行中か否かを示すフラグの値により、通信実行中か否かを判定する。通信実行中であれば、同時接続抑制部３２はステップＳ５３〜Ｓ５８の処理を行う。また、通信実行中でなければ、同時接続抑制部３２はステップＳ６１〜Ｓ６７の処理を行う。
【００５８】
ステップＳ５３〜Ｓ５８の処理は通信実行を一旦待機するための処理の一例である。ステップＳ５３において、同時接続抑制部３２は通信実行を一旦待機するために、通信開始要求を行った発信元３１の情報を、通信開始要求の発信元情報として記録部３３に記録させる。
【００５９】
起動済みのタイマがれば、同時接続抑制部３２はステップＳ５４において、タイマを破棄する。ステップＳ５５において、同時接続抑制部３２はタイマを起動して一定時間待機する。一定時間経過後、同時接続抑制部３２はステップＳ５６において、記録部３３に現在記録されている通信開始要求の発信元情報を確認する。
【００６０】
記録部３３に現在記録されている通信開始要求の発信元情報が待機当初の発信元情報と同一であれば、同時接続抑制部３２はステップＳ５２の処理に戻る。一方、同時接続抑制部３２は記録部３３に現在記録されている通信開始要求の発信元情報が待機当初の発信元情報と同一でなければ以降の処理を行わずに終了し、通信開始要求をキャンセルする。
【００６１】
ステップＳ６１〜Ｓ６７の処理は通信を実行するための処理の一例である。ステップＳ６１において、同時接続抑制部３２は通信を実行するために、記録部３３に対し、通信実行中か否かを示すフラグを「ｔｒｕｅ」に設定し、通信中であることを記録するように要求する。
【００６２】
ステップＳ６２において、同時接続抑制部３２は、これから通信を行う発信元３１の情報を通信開始要求の発信元情報として記録するように記録部３３に対し要求する。同時接続抑制部３２は通信実行中か否かを示すフラグと、通信開始要求の発信元情報とを記録したことを発信元３１に通知する。
【００６３】
ステップＳ６３において、発信元３１は受信先４１に対し通信を開始する。通信を受信した受信先４１はステップＳ６４において定められた処理を実行する。ステップＳ６４の処理後、受信先４１は通信終了を同時接続抑制部３２に通知する。
【００６４】
同時接続抑制部３２は通信終了が通知されるとステップＳ６６において、記録部３３に対し、通信実行中か否かを示すフラグを「ｆａｌｓｅ」に設定し、通信中でないことを記録するように要求する。また、同時接続抑制部３２はステップＳ６７において、通信の結果を発信元３１に対して通知する。
【００６５】
＜まとめ＞
従来のＧＵＩアプリにおいて、通信の口の数の制限をそのままにして通信を行うと以下のような問題があった。例えばＵＩモジュール１１からサービスモジュール１２に対して完了までに時間の掛かる処理を依頼する通信が２本発生したあと、更に通信が発生した場合は、最後に発生した通信がタイムアウトする恐れや、正常に行われない恐れがあった。
【００６６】
そこで、本実施形態では、サムネイルの作成依頼やサムネイルの画像データ取得依頼などの一種類以上の「完了までに時間の掛かる処理を依頼する通信」に対し、同時接続抑制処理を行うようにしている。
【００６７】
したがって、本実施形態では発信元側から受信先側への通信において、完了までに時間の掛かる恐れのある一種類以上の通信に対し、同時に発生する通信の数を抑制して、完了までに時間の掛からない処理がタイムアウトする状況を避けることができる。また、本実施形態では完了までに時間の掛かる恐れのある一種類以上の通信に対し、同時に発生する通信の数を抑制して、完了までに時間の掛からない処理が正常に行われなくなる状況を避けることができる。
【００６８】
また、本実施形態は発信元側から受信先側への実際の通信が発生する前に、完了までに時間が掛かる処理について、同時に発生する通信の数を抑制することで、通信の集中を緩和して、通信エラーを避けることができる。また、本実施形態では完了までに時間の掛かる処理を依頼する複数種類の通信に対応できる。
【００６９】
本発明は具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【００７０】
１１    ＵＩモジュール
１２    サービスモジュール
２１    通信の口
３１    発信元
３２    同時接続抑制部
３３    記録部
３４    タイマ部
４１    受信先
５００    コンピュータシステム
５０１    入力装置
５０２    表示装置
５０３    外部Ｉ／Ｆ
５０３ａ    記録媒体
５０４    ＲＡＭ
５０５    ＲＯＭ
５０６    ＣＰＵ
５０７    通信Ｉ／Ｆ
５０８    ＨＤＤ
Ｂ    バス
【先行技術文献】
【特許文献】
【００７１】
【特許文献１】特開２０１０−２３１３５３号公報
【図１】
2014206899.tif 000003
【図２】
2014206899.tif 000004
【図３】
2014206899.tif 000005
【図４】
2014206899.tif 000006
【図５】
2014206899.tif 000007
【図６】
2014206899.tif 000008
【図７】
2014206899.tif 000009
【図８】
2014206899.tif 000010
【図９】
2014206899.tif 000011
【図１０】
2014206899.tif 000012