特許第5984148号(P5984148)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許5984148遠隔手続き呼び出しを制御する装置及び方法
<>
  • 特許5984148-遠隔手続き呼び出しを制御する装置及び方法 図000002
  • 特許5984148-遠隔手続き呼び出しを制御する装置及び方法 図000003
  • 特許5984148-遠隔手続き呼び出しを制御する装置及び方法 図000004
  • 特許5984148-遠隔手続き呼び出しを制御する装置及び方法 図000005
  • 特許5984148-遠隔手続き呼び出しを制御する装置及び方法 図000006
  • 特許5984148-遠隔手続き呼び出しを制御する装置及び方法 図000007
  • 特許5984148-遠隔手続き呼び出しを制御する装置及び方法 図000008
  • 特許5984148-遠隔手続き呼び出しを制御する装置及び方法 図000009
  • 特許5984148-遠隔手続き呼び出しを制御する装置及び方法 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5984148
(24)【登録日】2016年8月12日
(45)【発行日】2016年9月6日
(54)【発明の名称】遠隔手続き呼び出しを制御する装置及び方法
(51)【国際特許分類】
   G06F 9/54 20060101AFI20160823BHJP
   G06F 9/48 20060101ALI20160823BHJP
【FI】
   G06F9/46 480D
   G06F9/46 452B
【請求項の数】7
【全頁数】15
(21)【出願番号】特願2014-99583(P2014-99583)
(22)【出願日】2014年5月13日
(65)【公開番号】特開2015-215838(P2015-215838A)
(43)【公開日】2015年12月3日
【審査請求日】2016年1月5日
【早期審査対象出願】
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】水野 孝久
(72)【発明者】
【氏名】塩谷 知宏
(72)【発明者】
【氏名】玉井 さやか
(72)【発明者】
【氏名】黒川 洋
【審査官】 大塚 俊範
(56)【参考文献】
【文献】 特開平11−238027(JP,A)
【文献】 特開平09−185516(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/54
G06F 9/48
(57)【特許請求の範囲】
【請求項1】
クライアントのサーバに対する遠隔手続き呼び出しを制御する装置であって、
前記クライアントから前記サーバに対して実行された遠隔手続き呼び出しから、定期的な遠隔手続き呼び出しと、不定期的な遠隔手続き呼び出しとを抽出する抽出部と、
前記クライアントから前記サーバに対して実行される定期的な遠隔手続き呼び出しであって、前記不定期的な遠隔手続き呼び出しが対象とする特定のデータを対象とする定期的な遠隔手続き呼び出しについて、当該定期的な遠隔手続き呼び出しの態様及び当該定期的な遠隔手続き呼び出しに基づく処理の態様の何れかを決定する決定部と
を含む、装置。
【請求項2】
前記定期的な遠隔手続き呼び出しが対象とするデータを示す情報が設定される項目を推定する推定部を更に備え、
前記決定部は前記不定期的な遠隔手続き呼び出しにおいて前記項目に設定された情報が示すデータを前記特定のデータに決定する、請求項1の装置。
【請求項3】
前記決定部は、前記クライアントから前記サーバに対して実行される前記定期的な遠隔手続き呼び出しについて、前記特定のデータを対象とする特定の定期的な遠隔手続き呼び出しが他の定期的な遠隔手続き呼び出しとは区別されるように、当該定期的な遠隔手続き呼び出しの態様及び当該定期的な遠隔手続き呼び出しに基づく処理の態様の何れかを決定する、請求項1又は請求項2の装置。
【請求項4】
前記決定部は、前記クライアントから前記サーバに対して実行される前記定期的な遠隔手続き呼び出しについて、当該定期的な遠隔手続き呼び出しの態様を決定する場合には、当該態様として、当該定期的な遠隔手続き呼び出しの優先度を決定し、当該定期的な遠隔手続き呼び出しに基づく処理の態様を決定する場合には、当該態様として、当該定期的な遠隔手続き呼び出しに基づく処理の優先度を決定する、請求項1乃至請求項3の何れかの装置。
【請求項5】
クライアントのサーバに対する遠隔手続き呼び出しを制御する装置であって、
前記クライアントから前記サーバに対して実行された遠隔手続き呼び出しから、定期的な遠隔手続き呼び出しと、不定期的な遠隔手続き呼び出しとを抽出する抽出部と、
前記定期的な遠隔手続き呼び出しが対象とするデータを示す値が設定される項目を推定する推定部と、
前記不定期的な遠隔手続き呼び出しにおいて前記項目に設定された値が示す当該不定期的な遠隔手続き呼び出しが対象とする特定のデータを認識する認識部と、
前記クライアントから前記サーバに対して実行される定期的な遠隔手続き呼び出しについて、前記特定のデータを対象とする特定の定期的な遠隔手続き呼び出しが他の定期的な遠隔手続き呼び出しよりも優先されるように、当該定期的な遠隔手続き呼び出しの態様及び当該定期的な遠隔手続き呼び出しに基づく処理の態様の何れかを決定する決定部と
を含む、装置。
【請求項6】
クライアントのサーバに対する遠隔手続き呼び出しをコンピュータが制御する方法であって、
前記コンピュータが、前記クライアントから前記サーバに対して実行された遠隔手続き呼び出しから、定期的な遠隔手続き呼び出しを抽出するステップと、
前記コンピュータが、前記クライアントから前記サーバに対して実行された遠隔手続き呼び出しから、不定期的な遠隔手続き呼び出しを抽出するステップと、
前記コンピュータが、前記クライアントから前記サーバに対して実行される定期的な遠隔手続き呼び出しであって、前記不定期的な遠隔手続き呼び出しが対象とする特定のデータを対象とする定期的な遠隔手続き呼び出しについて、当該定期的な遠隔手続き呼び出しの態様及び当該定期的な遠隔手続き呼び出しに基づく処理の態様の何れかを決定するステップと
を含む、方法。
【請求項7】
クライアントのサーバに対する遠隔手続き呼び出しを制御する装置として、コンピュータを機能させるプログラムであって、
前記コンピュータを、
前記クライアントから前記サーバに対して実行された遠隔手続き呼び出しから、定期的な遠隔手続き呼び出しと、不定期的な遠隔手続き呼び出しとを抽出する抽出部と、
前記クライアントから前記サーバに対して実行される定期的な遠隔手続き呼び出しであって、前記不定期的な遠隔手続き呼び出しが対象とする特定のデータを対象とする定期的な遠隔手続き呼び出しについて、当該定期的な遠隔手続き呼び出しの態様及び当該定期的な遠隔手続き呼び出しに基づく処理の態様の何れかを決定する決定部と
して機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、遠隔手続き呼び出しを制御する装置及び方法に関する。特に、本発明は、クライアントのサーバに対する遠隔手続き呼び出しを制御する装置及び方法に関する。
【背景技術】
【0002】
クライアントのサーバに対する複数の遠隔手続き呼び出しの実行がほぼ同時に要求されることがある。ところが、遠隔手続き呼び出しの同時に実行できる数や、遠隔手続き呼び出しに基づく処理の同時に実行できる数には上限がある場合があり、そのような場合は、遠隔手続き呼び出しの態様や遠隔手続き呼び出しに基づく処理の態様をどのようなものとするかが問題となる。
【0003】
ここで、同時セッション数を規定されている最大数以上に増やすための技術は、公報記載の技術として知られている(例えば、特許文献1参照)。
【0004】
特許文献1は、コンピュータが、機器ごとに、リクエストの受信からリプライの発行までのリプライ発行待ち時間を指定し、リプライの受信から次のリクエストの発行までの次回リクエスト発行待ち時間を指定し、いずれかの機器からリクエストを受信した際に、制御要求がない場合は、その機器のリプライ発行待ち時間の経過後に、次回リクエスト発行待ち時間を通知するリプライを送信し、各機器が、リプライの受信の際に、リプライで通知されている次回リクエスト発行待ち時間の経過後に、次のリクエストを送信することを開示する。
【0005】
また、遠隔手続き呼び出しの一例であるAPI(Application Programming Interface)呼び出しに関する技術も、公報記載の技術として知られている(例えば、特許文献2、3参照)。
【0006】
特許文献2は、アプリケーションソースコード格納部が、アプリケーション群の各ソースコードを格納し、呼出遷移カウント部が、アプリケーションソースコードをアプリケーションごとに読込み、API関数呼出遷移回数を計数し、呼出遷移カウント格納部が、その計数結果を遷移マトリックスとしてアプリケーションごとに格納し、呼出遷移共通カウント部が、遷移マトリックスに対しアプリケーションごとに読込み比較をしアプリケーション群間で共通するAPI関数呼出遷移候補回数を計数し、呼出遷移共通カウント格納部が、その計数結果を共通遷移マトリックスとして格納することを開示する。
【0007】
特許文献3は、情報端末が、外部情報提供部から新しいアプリケーションプログラムやミドルウェアをダウンロードしてインストールする際に、アプリケーションプログラムの起動時において、ミドルウェアがアプリケーションプログラムへ提供する機能群の性能値及びユーザのアプリケーションプログラムの使い方の両者を考慮して、ロード可能なミドルウェア群の中からアプリケーションプログラムの実行性能を高めるミドルウェアを優先的に選択してロードすることを開示する。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2009−251665号公報
【特許文献2】特開平11−212780号公報
【特許文献3】特開2008−59494号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
ところで、上述した、クライアントのサーバに対する複数の遠隔手続き呼び出しの実行がほぼ同時に要求されたような場合には、ユーザの関心を考慮して、遠隔手続き呼び出しの態様や遠隔手続き呼び出しに基づく処理の態様を決定するのが望ましい。
【0010】
しかしながら、特許文献1〜3の技術は、ユーザの関心を考慮して、遠隔手続き呼び出しの態様や遠隔手続き呼び出しに基づく処理の態様を決定することを開示するものではない。
【0011】
本発明の目的は、ユーザの関心を考慮して、遠隔手続き呼び出しの態様又は遠隔手続き呼び出しに基づく処理の態様を決定することにある。
【課題を解決するための手段】
【0012】
かかる目的のもと、本発明は、クライアントのサーバに対する遠隔手続き呼び出しを制御する装置であって、クライアントからサーバに対して実行された遠隔手続き呼び出しから、定期的な遠隔手続き呼び出しと、不定期的な遠隔手続き呼び出しとを抽出する抽出部と、定期的な遠隔手続き呼び出しから得られる第1の情報と、不定期的な遠隔手続き呼び出しから得られる第2の情報とに基づき、クライアントからサーバに対して実行される遠隔手続き呼び出しについて、遠隔手続き呼び出しの態様及び遠隔手続き呼び出しに基づく処理の態様の何れかを決定する決定部とを含む、装置を提供する。
【0013】
この装置において、決定部は、不定期的な遠隔手続き呼び出しが対象とする特定のデータを示す情報を第2の情報として用いる、ものであってよい。その場合、決定部は、定期的な遠隔手続き呼び出しが対象とするデータを示す情報が設定される項目を示す情報を第1の情報として用い、不定期的な遠隔手続き呼び出しにおいて項目に設定された情報が示すデータを特定のデータに決定する、ものであってよい。また、これらの場合において、決定部は、クライアントからサーバに対して実行される定期的な遠隔手続き呼び出しについて、特定のデータを対象とする特定の定期的な遠隔手続き呼び出しが他の定期的な遠隔手続き呼び出しとは区別されるように、定期的な遠隔手続き呼び出しの態様及び定期的な遠隔手続き呼び出しに基づく処理の態様の何れかを決定する、ものであってよい。
【0014】
更に、決定部は、クライアントからサーバに対して実行される遠隔手続き呼び出しについて、遠隔手続き呼び出しの態様を決定する場合には、態様として、遠隔手続き呼び出しの優先度を決定し、遠隔手続き呼び出しに基づく処理の態様を決定する場合には、態様として、遠隔手続き呼び出しに基づく処理の優先度を決定する、ものであってよい。
【0015】
また、本発明は、クライアントのサーバに対する遠隔手続き呼び出しを制御する装置であって、クライアントからサーバに対して実行された遠隔手続き呼び出しから、定期的な遠隔手続き呼び出しと、不定期的な遠隔手続き呼び出しとを抽出する抽出部と、定期的な遠隔手続き呼び出しが対象とするデータを示す値が設定される項目を推定する推定部と、不定期的な遠隔手続き呼び出しにおいて項目に設定された値が示す不定期的な遠隔手続き呼び出しが対象とする特定のデータを認識する認識部と、クライアントからサーバに対して実行される定期的な遠隔手続き呼び出しについて、特定のデータを対象とする特定の定期的な遠隔手続き呼び出しが他の定期的な遠隔手続き呼び出しよりも優先されるように、定期的な遠隔手続き呼び出しの態様及び定期的な遠隔手続き呼び出しに基づく処理の態様の何れかを決定する決定部とを含む、装置も提供する。
【0016】
更に、本発明は、クライアントのサーバに対する遠隔手続き呼び出しを制御する方法であって、クライアントからサーバに対して実行された遠隔手続き呼び出しから、定期的な遠隔手続き呼び出しを抽出するステップと、クライアントからサーバに対して実行された遠隔手続き呼び出しから、不定期的な遠隔手続き呼び出しを抽出するステップと、定期的な遠隔手続き呼び出しから得られる第1の情報と、不定期的な遠隔手続き呼び出しから得られる第2の情報とに基づき、クライアントからサーバに対して実行される遠隔手続き呼び出しについて、遠隔手続き呼び出しの態様及び遠隔手続き呼び出しに基づく処理の態様の何れかを決定するステップとを含む、方法も提供する。
【0017】
更にまた、本発明は、クライアントのサーバに対する遠隔手続き呼び出しを制御する装置として、コンピュータを機能させるプログラムであって、コンピュータを、クライアントからサーバに対して実行された遠隔手続き呼び出しから、定期的な遠隔手続き呼び出しと、不定期的な遠隔手続き呼び出しとを抽出する抽出部と、定期的な遠隔手続き呼び出しから得られる第1の情報と、不定期的な遠隔手続き呼び出しから得られる第2の情報とに基づき、クライアントからサーバに対して実行される遠隔手続き呼び出しについて、遠隔手続き呼び出しの態様及び遠隔手続き呼び出しに基づく処理の態様の何れかを決定する決定部として機能させる、プログラムも提供する。
【発明の効果】
【0018】
本発明によれば、ユーザの関心を考慮して、遠隔手続き呼び出しの態様又は遠隔手続き呼び出しに基づく処理の態様を決定することができる。
【図面の簡単な説明】
【0019】
図1】システムの状態を監視するアプリケーションがクライアントに表示するダッシュボードUIの例を示した図である。
図2】本発明の実施の形態におけるクライアントサーバシステムの全体構成例を示した図である。
図3】本発明の実施の形態におけるAPI呼び出し制御部の機能構成例を示したブロック図である。
図4】API呼び出しを一定期間記録することにより得られたAPIの呼び出しのタイミングを示した図である。
図5】リソースを表すパラメータ項目の推定方法を説明するための図である。
図6】リソースを表すパラメータ項目の推定の一例について示した図である。
図7】定期APIの呼び出しの優先度の変更方法を説明するための図である。
図8】本発明の実施の形態におけるAPI呼び出し制御部の動作例を示したフローチャートである。
図9】本発明の実施の形態におけるクライアントのハードウェア構成例を示した図である。
【発明を実施するための形態】
【0020】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
【0021】
[本実施の形態の背景]
RESTful API等のステートレスなリモートAPIをウェブブラウザ(以下、単に「ブラウザ」という)から定期的に呼び出すことにより、クライアントがサーバで動作するシステムの状態を監視したいという要求がある。その際、定期的なAPIの呼び出しは同時に行われることが多い。
【0022】
図1は、このようなシステムの状態を監視するアプリケーションがクライアントに表示するダッシュボードUI600を示した図である。このダッシュボードUI600では、システムの状態を監視したり、監視のための操作を行ったりすることが可能になっている。ダッシュボードUI600は、コンポーネント601a〜601fを含む。そして、コンポーネント601a〜601fは、それぞれ、対応するリソースの状態を表示する表示部602a〜602fと、そのリソースに対してユーザが操作を行うための操作部603a〜603fとを提供している。ここで、表示部602a〜602fは、定期的なAPIの呼び出しにより、リソースの状態を表示する。また、操作部603a〜603fをユーザが操作すると、不定期的なAPIの呼び出しが行われる。このようなアプリケーションにおいて、各コンポーネントはモジュール化されており、同時にタイマがセットされるため、定期的なAPIの呼び出しのタイミングは重なり易い。従って、上述したように、定期的なAPIの呼び出しは同時に行われることが多くなる。
【0023】
しかしながら、APIの呼び出しが同時に行われることにより、同時に多大なHTTPリクエストが発生すると、ブラウザが同時に処理できるHTTPリクエストの上限に達することがある。その場合、上限に達した後におけるHTTPリクエストは長時間待たされ、所謂詰まった状態が生ずる。具体的には、複数の定期的なAPIが同時に実行される際に、ユーザの関心が高いリソースに関するAPIの実行が後回しになることがあり、ユーザの待ち時間がより長くなる。
【0024】
そこで、本実施の形態では、まず、繰り返し行われるリモートAPIの呼び出しの履歴に基づいて、リモートAPIを、定期的に呼び出されるリモートAPI(以下、「定期API」という)と、ユーザの要求に応じて不定期に呼び出されるリモートAPI(以下、「不定期API」という)とに分類する。次に、定期APIのパラメータを比較することにより、定期APIが対象とするリソースを表すパラメータを推定する。そして、直近の不定期APIが対象としたリソースはユーザの関心が高いと推定し、このリソースの優先度が高くなるよう、各リソースの優先度を決定する。これにより、複数の定期APIの実行が同時に要求された場合に、各定期APIが対象とするリソースの優先度に基づいて、これらの定期APIの実行順序を決定する。
【0025】
[本実施の形態のクライアントサーバシステムの構成]
図2は、本実施の形態におけるクライアントサーバシステムの全体構成例を示した図である。図示するように、このクライアントサーバシステムは、サーバ10と、クライアント20とを含み、クライアント20では、アプリケーション30と、ブラウザ40とが動作する。また、このクライアントサーバシステムは、情報を表示するためのディスプレイ60と、情報を入力するための入力デバイス70とを含む。
【0026】
サーバ10は、APIを実行するコンピュータである。具体的には、サーバ10は、API実行部11を備え、API実行部11が、クライアント20のブラウザ40から呼び出されたAPIを実行し、結果をブラウザ40に返す。
【0027】
クライアント20は、ブラウザ40を介してアプリケーション30によるサービスを受けるユーザが使用するコンピュータである。具体的には、クライアント20は、アプリケーション30の機能として、タイマイベント処理部31と、入力イベント処理部32と、イベント制御部33とを備え、ブラウザ40の機能として、操作受付部41と、表示制御部42と、API呼び出し部43と、API呼び出し制御部50とを備える。
【0028】
タイマイベント処理部31は、予め登録されたタイマがタイムアウトすることによってタイマイベントが発生したことが伝えられると、その旨をイベント制御部33に通知する。
【0029】
入力イベント処理部32は、操作受付部41から入力イベントが発生したことが伝えられると、その旨をイベント制御部33に通知する。
【0030】
イベント制御部33は、タイマイベントが発生した旨又は入力イベントが発生した旨を受け取り、イベントの内容に応じて、表示制御部42に対するディスプレイ60への表示出力の要求や、API呼び出し部43に対するAPI呼び出しの要求を行う。
【0031】
操作受付部41は、入力デバイス70を用いたユーザの入力操作を受け付けることによって入力イベントが発生すると、その旨を入力イベント処理部32に伝える。
【0032】
表示制御部42は、イベント制御部33の要求に従って、ディスプレイ60への表示出力を行う。
【0033】
API呼び出し部43は、イベント制御部33の要求に従って、サーバ10に対するAPI呼び出しを行う。
【0034】
API呼び出し制御部50は、複数の呼び出しが同時に要求された場合にAPI呼び出しの優先度を決定し、その優先度に基づいてAPI呼び出し部43によるAPI呼び出しを制御する。
【0035】
[本実施の形態のAPI呼び出し制御部の構成]
図3は、本実施の形態におけるAPI呼び出し制御部50の機能構成例を示した図である。図示するように、このAPI呼び出し制御部50は、API呼び出し監視部51と、定期API記憶部52と、パラメータ推定部53と、不定期API記憶部54と、優先度決定部55と、優先度記憶部56とを含む。
【0036】
API呼び出し監視部51は、API呼び出し部43によるAPI呼び出しを監視する。API呼び出しの監視は、最初の定期API呼び出し監視処理と、続く不定期API呼び出し監視処理とに分けられる。まず、API呼び出し監視部51は、定期API呼び出し監視処理において、API呼び出しを一定時間監視し、定期APIの呼び出しがあったかどうかを判定する。そして、定期APIの呼び出しがあったと判定すれば、定期APIの情報を定期API記憶部52に記憶する。次に、API呼び出し監視部51は、不定期API呼び出し監視処理において、API呼び出しを監視し、API呼び出しを検出すると、それが不定期APIの呼び出しであるかどうかを判定する。そして、それが不定期APIの呼び出しであると判定すれば、不定期APIの情報を不定期API記憶部54に記憶する。本実施の形態では、遠隔手続き呼び出しの一例として、API呼び出しを用いており、定期的な遠隔手続き呼び出しと不定期的な遠隔手続き呼び出しとを抽出する抽出部の一例として、API呼び出し監視部51を設けている。
【0037】
定期API記憶部52は、API呼び出し監視部51による定期APIの呼び出しの監視により得られた定期APIの情報を記憶する。
【0038】
パラメータ推定部53は、定期API記憶部52に記憶された定期APIの情報に基づいて、APIが対象とするリソースを表すパラメータ項目を推定する。本実施の形態では、データの一例として、リソースを用いており、対象とするデータを示す情報又は値が設定される項目の一例として、パラメータ項目を用いており、項目を推定する推定部の一例として、パラメータ推定部53を設けている。
【0039】
不定期API記憶部54は、API呼び出し監視部51による不定期APIの呼び出しの監視により得られた不定期APIの情報を記憶する。
【0040】
優先度決定部55は、不定期API記憶部54に記憶された不定期APIの情報において、パラメータ推定部53により推定されたパラメータ項目に設定されたパラメータ値を調べることにより、不定期APIが対象とするリソースを特定する。そして、定期API記憶部52に記憶された定期APIの情報において、パラメータ推定部53により推定されたパラメータ項目にそのリソースを表すパラメータ値が設定されているものを検索することにより、そのリソースを対象とする定期APIがあるかどうかを判定する。その結果、そのような定期APIがあれば、その優先度が高くなるように、定期APIの優先度を決定する。本実施の形態では、対象とするデータを示す情報又は値の一例として、パラメータ値を用いており、項目に設定された値が示す特定のデータを認識する認識部の一例として、優先度決定部55を設けている。
【0041】
優先度記憶部56は、優先度決定部55により決定された各定期APIの優先度の情報を記憶する。この優先度の情報は、複数の定期APIの呼び出しの実行が同時に要求された場合にAPI呼び出し部43により参照され、複数の定期APIの呼び出しの実行を優先度の高いものから順に行うことを可能とする。
【0042】
[API呼び出し監視部の概略動作]
API呼び出し監視部51は、API呼び出し部43によるAPI呼び出しを一定期間記録し、API呼び出しのパターンから定期APIの呼び出しと不定期APIの呼び出しとを判別する。ここで、このような判別は、フーリエ変換等の公知の手法を用いて行えばよい。
【0043】
図4は、API呼び出しを一定期間記録することにより得られたAPIの呼び出しのタイミングを示した図である。図において、API201,202,203は、定期的に呼び出されているので、定期APIである。一方、API204,205,206は、不定期に呼び出されているので、不定期APIである。
【0044】
[パラメータ推定部の概略動作]
パラメータ推定部53は、近い時刻に呼び出される定期APIのURLやリクエストボディを比較する。具体的には、URLやリクエストボディに含まれる各パラメータの項目(以下、「パラメータ項目」という)に設定された値(以下、「パラメータ値」という)を比較する。その結果、異なるパラメータ値が設定されたパラメータ項目が1つだけの定期API呼び出しの回数が閾値以上あれば、そのパラメータ項目がリソースを表すパラメータ項目であると推定する。
【0045】
図5は、このようなリソースを表すパラメータ項目の推定方法を説明するための図である。具体的には、見出し部にパラメータ項目「パラメータ1」,…,「パラメータ4」を示し、データ部に各パラメータ項目に設定されたパラメータ値を示した表である。この表では、データ部の1行目〜4行目が、「パラメータ2」に設定されたパラメータ値のみが異なる定期API呼び出しを表している。「パラメータ2」に設定されたパラメータ値が4行目では省略されているが、例えば、データ部の1行目〜4行目が100回以上の定期API呼び出しを表し、定期API呼び出しの回数の閾値が100であるとすると、「パラメータ2」がリソースを表すと推定する。一方、データ部の5行目及び6行目は、「パラメータ3」に設定されたパラメータ値のみが異なる定期APIを表している。しかしながら、これは2回の定期API呼び出しを表すに過ぎず、定期API呼び出しの回数の閾値100に満たないので、「パラメータ3」がリソースを表すとは推定しない。
【0046】
図6は、リソースを表すパラメータ項目の推定の一例について示した図である。短時間内に呼び出された定期APIに、図示するような情報が含まれていたとする。すると、この場合は、異なるパラメータ値が設定されている唯一のパラメータ項目である「collectionId」がリソースを表すパラメータ項目であると推定できる。
【0047】
[優先度決定部の概略動作]
本実施の形態では、不定期APIが呼び出された場合に、その不定期APIが対象とするリソースに対するユーザの関心が高いと考える。そこで、同一のリソースを対象とする定期APIの呼び出しの優先度を高くする。
【0048】
図7は、このような定期APIの呼び出しの優先度の変更方法を説明するための図である。図示するように、まず、定期API211,212が呼び出されたとする。このとき、定期API211,212の呼び出しの優先度は何れも「中」であるものとする。次に、不定期API213が呼び出されたとする。すると、リソースを表すと推定されたパラメータ項目「collectionId」に設定されたパラメータ値「col_kurokawa」がユーザの関心が高いリソースを表すことが分かる。これにより、その後、定期API214,215が同時に呼び出された場合、「collectionId」に「col_kurokawa」が設定された定期API214の優先度が「高」に変更される。
【0049】
[本実施の形態のクライアントサーバシステムの動作]
クライアント20では、イベント制御部33が、タイマイベント処理部31からタイマイベントが発生した旨の通知を受け、入力イベント処理部32から入力イベントが発生した旨の通知を受ける。そして、タイマイベント又は入力イベントの内容に応じて、API呼び出し部43に対し、API呼び出しの実行を要求する。すると、API呼び出し部43が、サーバ10に対して、API呼び出しを実行する。これにより、サーバ10では、API実行部11が、クライアント20から呼び出されたAPIを実行する。
【0050】
クライアントサーバシステムはこのような動作を行うが、本実施の形態では、API呼び出し部43がAPI呼び出しを実行する際に、API呼び出し制御部50による制御を受ける。図8は、このAPI呼び出し制御部50の動作例を示したフローチャートである。この動作は、例えば、図1に示したような画面に遷移したときに開始するものとする。
【0051】
図示するように、API呼び出し制御部50では、まず、API呼び出し監視部51が、定期API呼び出し監視処理を行う。即ち、API呼び出し部43によるAPI呼び出しを一定時間観測する(ステップ501)。そして、一定時間観測したAPI呼び出しの中に定期APIの呼び出しがあるかどうかを判定する(ステップ502)。定期APIの呼び出しがないと判定すれば、API呼び出し監視部51は、ステップ501を繰り返すが、定期APIの呼び出しがあると判定すれば、API呼び出し監視部51は、その定期APIの情報を定期API記憶部52に記憶する(ステップ503)。このとき、API呼び出し監視部51は、定期APIの呼び出しがあった旨をパラメータ推定部53に伝え、パラメータ推定部53が、定期API記憶部52に記憶された定期APIの情報を参照して、リソースを表すパラメータ項目を推定する(ステップ504)。その後、パラメータ推定部53は、リソースを表すパラメータ項目の推定が完了した旨をAPI呼び出し監視部51に伝え、推定したリソースを表すパラメータ項目を優先度決定部55に通知する。
【0052】
これにより、API呼び出し監視部51は、不定期API呼び出し監視処理を行う。即ち、API呼び出し部43によるAPI呼び出しを観測する(ステップ505)。そして、観測したAPI呼び出しが不定期APIの呼び出しであるかどうかを判定する(ステップ506)。観測したAPI呼び出しが不定期APIの呼び出しでないと判定すれば、API呼び出し監視部51は、ステップ505を繰り返すが、観測したAPI呼び出しが不定期APIの呼び出しであると判定すれば、API呼び出し監視部51は、その不定期APIの情報を不定期API記憶部54に記憶する(ステップ507)。その後、優先度決定部55は、この不定期APIが対象とするリソースを対象とする定期APIがあるかどうかを判定する(ステップ508)。具体的には、不定期API記憶部54に記憶された不定期APIの情報を参照して、パラメータ推定部53から通知されたパラメータ項目に設定されたパラメータ値を取得する。そして、定期API記憶部52に記憶された定期APIの情報を参照して、このパラメータ値がパラメータ項目に設定された定期APIがあるかどうかを判定する。その結果、不定期APIが対象とするリソースを対象とする定期APIがないと判定すれば、優先度決定部55は、ステップ505を繰り返すようAPI呼び出し監視部51に指示する。一方、不定期APIが対象とするリソースを対象とする定期APIがあると判定すれば、優先度決定部55は、その定期APIの優先度を高くする(ステップ509)。
【0053】
以上により、クライアントサーバシステムの動作の説明を終了する。尚、このようにして優先度を付加した後、優先度の調整を行ってもよい。優先度の調整としては、例えば、一定時間経過後に優先度をリセットすることが考えられる。或いは、優先度の偏りの発生を防止するための係数を導入することも考えられる。ここで、優先度の偏りとは、ある時期にある定期APIの優先度を高くする処理が集中したことにより、その定期APIの優先度が特に高くなっている状態である。そして、これを防止するには、最近の優先度を高くする処理において、以前に優先度を高くした処理よりも、優先度を高める度合いを大きくすることが考えられる。
【0054】
以上述べたように、本実施の形態では、クライアント20からサーバ10に対して実行されたAPI呼び出しから定期APIの呼び出しと不定期APIの呼び出しとを抽出し、APIが対象とするリソースを示すパラメータ項目を定期APIに基づいて推定し、不定期APIにおいてそのパラメータ項目に設定されたパラメータ値に基づいて不定期APIが対象とするリソースを特定し、そのリソースを対象とする定期APIの呼び出しの優先度を高くするようにした。これにより、同時に実行が要求される定期APIの呼び出しのうちユーザの関心が高いものを、アプリケーションに関する知識を用いずに特定し、その実行の優先度を上げることが可能となった。
【0055】
尚、本実施の形態では、定期APIの呼び出しから推定されたリソースを表すパラメータ項目と、不定期APIにおいてそのパラメータ項目に設定されたパラメータ値とに基づいて、定期APIの呼び出しの優先度を決定するようにしたが、この限りではない。定期APIの呼び出しから得られる第1の情報と、不定期APIの呼び出しから得られる第2の情報とに基づいて、定期APIの呼び出しの優先度を決定するようにしてもよい。ここで、第1の情報と第2の情報とは同種の情報であっても異種の情報であってもよい。
【0056】
また、本実施の形態では、ブラウザ40が同時に呼び出せるAPIの数に上限があるものとし、定期APIの呼び出しの優先度を決定するようにした。しかしながら、ブラウザ40が同時に呼び出せるAPIの数に上限がないものとし、定期APIの呼び出しに基づく処理の優先度を決定するようにしてもよい。即ち、ブラウザ40は、要求された全ての定期APIの呼び出しを実行し、サーバ10側で優先度に従って定期APIに基づく処理を実行できるようにしてもよい。
【0057】
更に、本実施の形態では、定期APIの呼び出し又は定期APIの呼び出しに基づく処理の優先度を決定するようにしたが、この限りではない。あるリソースを対象とする定期APIが他の定期APIとは区別されるように、定期APIの呼び出し又は定期APIの呼び出しに基づく処理の態様を決定するようにしてもよい。例えば、あるリソースを対象とする定期APIの呼び出しに対しては新たに処理を行うが、別のリソースを対象とする定期APIの呼び出しに対しては既に行った処理の結果を用いる、といったものが考えられる。また、これは更に一般化して、単に、定期APIの呼び出し又は定期APIの呼び出しに基づく処理の態様を決定するものと捉えることも可能である。即ち、本実施の形態では、定期的な遠隔手続き呼び出しの態様及び定期的な遠隔手続き呼び出しに基づく処理の態様の何れかを決定する決定部の一例として、優先度決定部55を設けていると言うことができる。
【0058】
[本実施の形態のクライアントのハードウェア構成]
図9は、本実施の形態におけるクライアント20のハードウェア構成例を示した図である。図示するように、クライアント20は、演算手段であるCPU(Central Processing Unit)20aと、M/B(マザーボード)チップセット20bを介してCPU20aに接続されたメインメモリ20cと、同じくM/Bチップセット20bを介してCPU20aに接続された表示機構20d(図2のディスプレイ60に対応)とを備える。また、M/Bチップセット20bには、ブリッジ回路20eを介して、ネットワークインターフェイス20fと、磁気ディスク装置(HDD)20gと、音声機構20hと、キーボード/マウス20i(図2の入力デバイス70に対応)と、光学ドライブ20jとが接続されている。
【0059】
尚、図9において、各構成要素は、バスを介して接続される。例えば、CPU20aとM/Bチップセット20bの間や、M/Bチップセット20bとメインメモリ20cの間は、CPUバスを介して接続される。また、M/Bチップセット20bと表示機構20dとの間は、AGP(Accelerated Graphics Port)を介して接続されてもよいが、表示機構20dがPCI Express対応のビデオカードを含む場合、M/Bチップセット20bとこのビデオカードの間は、PCI Express(PCIe)バスを介して接続される。また、ブリッジ回路20eと接続する場合、ネットワークインターフェイス20fについては、例えば、PCI Expressを用いることができる。また、磁気ディスク装置20gについては、例えば、シリアルATA(AT Attachment)、パラレル転送のATA、PCI(Peripheral Components Interconnect)を用いることができる。更に、キーボード/マウス20i、及び、光学ドライブ20jについては、USB(Universal Serial Bus)を用いることができる。
【0060】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
【0061】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【0062】
10…サーバ、11…API実行部、20…クライアント、30…アプリケーション、31…タイマイベント処理部、32…入力イベント処理部、33…イベント制御部、40…ブラウザ、41…操作受付部、42…表示制御部、43…API呼び出し部、50…API呼び出し制御部、51…API呼び出し監視部、52…定期API記憶部、53…パラメータ推定部、54…不定期API記憶部、55…優先度決定部、56…優先度記憶部
図1
図2
図3
図4
図5
図6
図7
図8
図9