JP5455432B2 - 通信システム及び方法、並びにプログラム - Google Patents

通信システム及び方法、並びにプログラム Download PDF

Info

Publication number
JP5455432B2
JP5455432B2 JP2009118404A JP2009118404A JP5455432B2 JP 5455432 B2 JP5455432 B2 JP 5455432B2 JP 2009118404 A JP2009118404 A JP 2009118404A JP 2009118404 A JP2009118404 A JP 2009118404A JP 5455432 B2 JP5455432 B2 JP 5455432B2
Authority
JP
Japan
Prior art keywords
time
transmission
scheduled
date
request transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009118404A
Other languages
English (en)
Other versions
JP2010267104A (ja
Inventor
宏 里見
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2009118404A priority Critical patent/JP5455432B2/ja
Publication of JP2010267104A publication Critical patent/JP2010267104A/ja
Application granted granted Critical
Publication of JP5455432B2 publication Critical patent/JP5455432B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Description

本発明は、通信システム及び方法、並びにプログラムに関し、特に、複数のクライアントからのポーリングによるネットワーク負荷及びサーバへのアクセス集中を回避するための方法に関するものである。
従来、複数のクライアントからサーバにポーリングを行う通信システムでは、複数のクライアントからのアクセスが過度に集中しないように、クライアントの次回ポーリング時間をサーバから指定する方法が提案されている(例えば、特許文献1参照)。この方法では、サーバとクライアントの通信時間の総和が一定時間を超えると、クライアントからの通信要求を所定の期間だけずらすようにサーバからクライアントに対して変更を要求する。そして、クライアントは、サーバの要求に基づいて通信要求をする時刻をずらす。これにより、ネットワーク負荷集中を回避することができる。
また、サーバがアクセスタイミングテーブルを参照して各端末のアクセスタイミング情報を各端末に通知し、各端末がアクセスタイミング情報に基づいてサーバにアクセスを行ってネットワーク負荷の分散を行うシステムが提案されている(特許文献2参照)。
特開平11−053274号公報 特開2004−234625号公報
上記特許文献1には、ネットワーク負荷の集中が発生した後にクライアントからの通信要求を所定の期間だけずらすことが記載されているが、予め負荷が集中する時間を想定してその時間帯でのアクセスを回避する方法に関しては考慮されていない。
上記特許文献2には、端末ごとのアクセス履歴を記録し、それを基に端末ごとの次回アクセス時間を調整することは記載されているが、その指定時間に指定された端末がアクセス可能かどうかは考慮されていない。
本発明は、複数のクライアントからサーバへの問い合わせによるネットワーク負荷やサーバへのアクセス集中を回避して効率的な通信を行うことができる通信システム及びその制御方法、並びにプログラムを提供することを目的とする。
上記目的を達成するために、本発明の通信システムは、ネットワーク上の複数のクライアントからサーバに対してコンテンツの更新有無を問い合わせる通信システムにおいて、前記クライアントは、前記サーバに問い合わせを行う予定であった第1の予定日時と実際に問い合わせを行った実行日時の組み合わせが登録される履歴情報を保管する第1の保管手段と、前記サーバに対してコンテンツに関する問い合わせを行うときに前記履歴情報をあわせて送信する送信手段とを有し、前記サーバは、前記クライアントから送信された履歴情報を受信する受信手段と、前記クライアントによる次回問い合わせを行う予定となる第2の予定日時を前記コンテンツの更新履歴または現在時刻に基づき算出する算出手段と、前記第2の予定日時を前記受信手段により受信された履歴情報にしたがって調整する調整手段と、前記調整された第2の予定日時を前記クライアントへ返信する返信手段を有することを特徴とする。
本発明によれば、クライアントからの問い合わせの履歴を考慮して次回問い合わせ予定日時を調整することにより、複数のクライアントからサーバへの問い合わせによるネットワーク負荷やサーバへのアクセス集中を回避して効率的な通信を行うことができる。
本発明の第1の実施形態に係る通信システムの構成例を示す図である。 図1のユーザPC及びコンテンツサイトのハードウェア構成の概略を示すブロック図である。 次回リクエスト送信日時の登録処理の一例を示すフローチャートである 図3のステップS305におけるリクエスト送信予定日時調整処理の詳細を示すフローチャートである。 図4のステップS401における週次調整処理の詳細を示すフローチャートである。 ユーザPCに保管されるリクエスト送信履歴テーブルの一例を示す図である。 本発明の第2の実施形態におけるリクエスト送信予定日時調整処理を示すフローチャートである。 図7のステップS701における日次調整処理の詳細を示すフローチャートである。 図8のステップS808における次回リクエスト送信予定時刻調整処理の詳細を示すフローチャートである。 ユーザPCに保管されるリクエスト送信履歴テーブルの他の一例を示す図である。 コンテンツサイトに保管されるリクエスト送信予定テーブルの一例を示す図である。
以下、本発明の実施形態を図面を参照して詳細に説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態に係る通信システムの構成例を示す図である。
図1において、第1の実施形態における通信システムは、ユーザPC102,103とコンテンツサイト101とがインターネット等のネットワーク104を介して互いに接続されている。複数のクライアントとなるユーザPC102,103は、サーバとなるコンテンツサイト101に対してポーリングを行う。なお、本実施形態では、図示例の通信システムについて説明するが、これに限定されるものではなく、ネットワーク上に他のPCやプリンタ等が接続されていてもよい。また、ユーザPCは、図示の数に限定されるものではない。
ユーザPC102,103は、ネットワーク104での情報転送が可能な標準プロトコルを有するブラウザ120を動作させることが可能である。また、ユーザPC102,103は、ブラウザ120を動作させることにより、HTTP等のプロトコルを用いてコンテンツサイト101にアクセスし、HTMLやXML等の記述言語で作成されたWebページ情報を取得して解析することができる。さらに、ユーザPC102,103は、解析したWebページを不図示のディスプレイ上に表示させることができる。
また、ユーザPC102,103は、プログラム130を動作させることにより、所定の間隔で登録されたハイパーリンクの指し示すデータの状態情報の取得することができる。さらに、ユーザPC102,103は、プログラム130を動作させることにより、HTTP等のプロトコルを用いてコンテンツサイト101にアクセスし、HTMLやXML等の記述言語で作成された状態情報を取得して解析することができる。そして、ユーザPC102,103は、状態情報を解析した結果からデータを含む情報の更新が認められる場合には、更新があったことをディスプレイ上に表示させることができる。
コンテンツサイト101は、制御部106により、ユーザPC102,103からのアクセスに対して情報DB(データベース)107から必要なWebページ情報や状態情報を取得し、アクセス元に送信を行う。また、コンテンツサイト101は、制御部106により、後述する図示の処理を行う。
なお、本実施形態では、Webページ情報を表示するブラウザ120とデータの状態情報の取得を試行するプログラム130とを分けているが同一であってもよいことは云うまでもない。また、本実施形態では、プログラム130は、ユーザに対して更新があったことをディスプレイ上に表示させるが、表示を行わずデータの収集を行ってDBなどにデータを登録する自動収集ツールの機能の一部であってもよいことは云うまでもない。
図2は、図1のユーザPC102,103及びコンテンツサイト101のハードウェア構成の概略を示すブロック図である。
ユーザPC102,103、コンテンツサイト101は、CRTディスプレイ(CRT)201、VRAM202、BMU203を有する。また、キーボード204、PD205、CPU206、ROM207、RAM208、HDD209、FDD210、及びネットワークI/F211を有する。
CRT(Cathode Ray Tube)ディスプレイ201には、例えば、編集中の文書、図形、画像その他の編集情報、アイコン、メッセージ、メニューその他のユーザインタフェース情報が表示される。VRAM202は、CRTディスプレイ201に接続され、該CRTディスプレイ201に表示するための画像が描画される。このVRAM202に生成された画像データは、所定の規定に従ってCRTディスプレイ201に転送され、これによりCRTディスプレイ201に画像が表示される。
BMU(ビットムーブユニット)203は、例えば、メモリ間(例えば、VRAM202と他のメモリとの間)のデータ転送や、メモリと各I/Oデバイス(例えば、ネットワークI/F211)との間のデータ転送を制御する。キーボード204は、文書等を入力するための各種キーを有する。PD(ポインティングデバイス)205は、例えば、CRTディスプレイ201に表示されたアイコン、メニューその他のコンテンツを指示するために使用される。
CPU206は、ROM207、HDD209又はFDD(フレキシブルディスクドライブ)210に格納された制御プログラムに基づいて、上述した各デバイスを制御する。ROM207は、各種制御プログラムやデータを保存する。RAM208は、CPU206のワーク領域、エラー処理時のデータの退避領域、制御プログラムのロード領域等を有する。なお、図1におけるブラウザ120やプログラム130は、ROM207、HDD209又はFDD210に格納される。情報DB107は、HDD209上に構成される。
HDD209は、情報処理装置内で実行される各制御プログラムやコンテンツを格納する。FDD210は、フロッピー(登録商標)ディスク等に代表されるフレキシブルディスクに対するアクセスを制御する。ネットワークI/F211は、他の情報処理装置やプリンタ等とネットワーク104を介して通信を行う。CPUバス212は、アドレスバス、データバス及びコントロールバスを含む。CPU206に対する制御プログラムの提供は、ROM207、HDD209、FDD210から行うこともできるし、ネットワークI/F211を介してネットワーク104経由で他の情報処理装置等から行うこともできる。
次に、図1の通信システムでユーザPC102からコンテンツサイト101にポーリングリクエスト(単に「リクエスト」とも呼ぶ)を送信してから次回リクエスト送信日時を登録するまでの流れを説明する。なお、ユーザPC103もユーザPC102と同様に、以下の処理を実行するものとする。
図3は、図1の通信システムでユーザPC102からコンテンツサイト101にリクエストを送信してから次回リクエスト送信日時を登録するまでの流れを示すフローチャートである。
ユーザPC102は、図6(a)に示すようなリクエスト送信履歴テーブル600を参照し、次回リクエスト送信予定日時になると(ステップS300でYES)、リクエスト送信履歴テーブル600を取得する(ステップS301)。
図6(a)において、リクエスト送信履歴テーブル600は、送信ID601と、次回リクエスト送信予定日時602と、調整ID603と、実際の送信日時604とで構成される。送信ID601は、次回リクエスト送信予定日時と調整IDと実際の送信日時の組合せを識別して管理するために付与されたIDである。次回リクエスト送信予定日時602は、ユーザPC102からコンテンツサイト101に次回問い合わせを行う予定日時である。調整ID603は、コンテンツサイト101が送信予定日時の調整を行ったかどうかを示す識別情報である。実際の送信日時604は、コンテンツの更新有無を問い合わせるためにユーザPC102からコンテンツサイト101にリクエストを送信した実際の送信日時(実行日時)である。
リクエスト送信履歴テーブル600は、ユーザPC102固有のリクエスト送信履歴情報であり、ユーザPC102内のHDD209に保管される(第1の保管手段)。なお、ユーザPC103内のHDD209にも、同様に、ユーザPC103固有のリクエスト送信履歴テーブルが保管されているものとする。
次に、ステップS302にて、ユーザPC102は、ステップS301で取得したリクエスト送信履歴テーブル600とポーリングリクエストをコンテンツサイト101に送信する。このとき、ユーザPC102は、送信するリクエスト送信履歴テーブル600の今回の送信に対応する送信IDに関連付けられた送信日時604に、最新のリクエスト送信日時として現在時刻をセットして送信する。
ステップS303にて、コンテンツサイト101は、ポーリングリクエスト及びリクエスト送信履歴テーブル600をユーザPC102から受信する。次に、ステップS304にて、コンテンツサイト101は、次回リクエスト送信予定日時を算出する。この算出方法については、例えばコンテンツの更新履歴から次回更新時を予測したり、単純に現在時刻から一定時間後を予定日時としても構わない。ステップS304は第1の算出手段の一例である。
ステップS305にて、コンテンツサイト101は、次回リクエスト送信予定日時の調整処理を行う。この調整処理の詳細については図4を用いて詳述する。ステップS306にて、コンテンツサイト101は、ポーリング結果と共に、ステップS305で調整した次回リクエスト送信予定日時の情報をユーザPC102に返す。
ステップS307にて、ユーザPC102は、コンテンツサイト101からポーリング結果と次回リクエスト送信予定日時の情報を受信する。そして、受信した次回リクエスト送信予定日時を最新のリクエスト送信予定日時としてリクエスト送信履歴テーブル600の次回リクエスト送信予定日時602に登録して、本処理を終了する。
ユーザPC102は、ステップS307で登録した次回リクエスト送信予定日時になると、改めてステップS301から処理を実行する。
図4は、図3のステップS305におけるリクエスト送信予定日時調整処理の詳細を示すフローチャートである。
ステップS401にて、コンテンツサイト101内のCPU206は週次調整処理を行う。この週次調整処理の詳細については図5を用いて詳述する。
次に、ステップS402にて、CPU206は、図11に例示するリクエスト送信予定テーブル1000を参照し、次回リクエスト送信予定日時に既に送信予定が登録されているか否かを判定する。
図11において、リクエスト送信予定テーブル1000は、送信予定日時を返したユーザPC102の端末ID1001と、ユーザPC102に返した次回送信予定日時1002とで構成されている。リクエスト送信予定テーブル(予定日時情報)1000は、コンテンツサイト101内のHDD209に作成され、ユーザPC毎(クライアント毎)の送信予定日時が保存管理されている(第2の保管手段)。
ステップS402の判定の結果、次回リクエスト送信予定日時に、どのユーザPCからも送信予定が登録されていない場合(ステップS402でNO)、ステップS405に進む。ステップS405では、CPU206は、次回リクエスト送信予定日時をリクエスト送信予定テーブル1000に登録してリターンする。
一方、次回リクエスト送信予定日時に既に他のユーザPC(例えば、ユーザPC103等)からのリクエスト送信予定が登録されていた場合(ステップS402でYES)、ステップS403へ進む。ステップS403では、CPU206は、次回リクエスト送信予定日時を一定時間シフトして、ステップS402に戻り、ずらした次回リクエスト送信予定日時に送信予定が登録されていないかを判定する。
次回リクエスト送信予定日時を一定時間シフトする場合は以下のように処理する。例えば、コンテンツサイト101で図11に示すリクエスト送信予定テーブル1000が運用されていたときは、送信予定日時の時刻が5分刻みで変動していることから、次回リクエスト送信予定日時の時刻を5分間遅らせる。
なお、コンテンツサイト101にアクセスするユーザPCの端末数が多くなれば、次回リクエスト送信予定時刻のシフト時間を短くしてもよい。
また、本実施形態では、同一時刻にリクエストを受け付けられるユーザPCの端末数を1台としているが、これに限定されない。同一時刻にリクエストを受け付ける端末数は、コンテンツサイト101の処理能力次第で変わるものであり、例えば、同一時刻に複数台の異なる端末からリクエストを受け付けることも可能である。この場合、ステップS402では、リクエスト送信予定日時に送信する端末の有無で判断をするのではなく、リクエスト送信予定日時に送信する端末が処理上限に達しているかどうかで判断することは言うまでもない。
図5は、図4のステップS401における週次調整処理の詳細を示すフローチャートである。
ステップS501にて、CPU206は、図3のステップS304で算出した次回リクエスト送信予定日時から曜日を取得する。なお、この曜日の取得方法は、次回リクエスト送信予定日時に基づいて不図示のカレンダー機能により取得してもよいし、インターネット上から取得してもよい。
ステップS502では、CPU206はユーザPC102から受信したリクエスト送信履歴テーブル600からステップS501で取得した次回リクエスト送信予定日の曜日と同じ曜日が送信予定に指定されている最後(最新)の送信履歴(送信日時)を取得する。なお、不図示であるが、該当する送信履歴が取得できなかった場合、以降の処理を行わずにリターンする。図示例では、リクエスト送信履歴テーブル600に曜日に関する情報が登録されていないが、曜日情報を登録するように構成してもよいし、曜日情報を求めるように構成してもよい。
ステップS503にて、CPU206は、ステップS502で取得した送信履歴に対応する実際のリクエスト送信日時をリクエスト送信履歴テーブル600から取得する。このリクエスト送信履歴テーブル600は図3のステップS302にてユーザPC102からコンテンツサイト101に送付されたものであり、コンテンツサイト102上のHDD209に保存してもよいし、RAM208上に保管してもよい。
ステップS504にて、CPU206は、ステップS502で取得した送信履歴のリクエスト送信予定日時(S1)とステップS503で取得した実際のリクエスト送信日時(E1)とを比較し、送信予定日と同じ日にリクエストを送信しているかを判定する。送信予定日と同一の日にリクエストを送信していると判定したときは(ステップS504でYES)、以降の処理を行わずにリターンする。
一方、ステップS504でリクエストを送信予定日と同じ日に送信していないと判定した場合、CPU206は、リクエスト送信履歴テーブル600から、同じ曜日が送信予定日に指定されているもう一つ前の送信履歴を取得する(ステップS505)。なお、不図示であるが、該当する送信履歴が取得できなかった場合、以降の処理を行わずにリターンする。
ステップS506にて、CPU206は、ステップS505で取得したリクエスト送信履歴に対応する実際のリクエスト送信日時をリクエスト送信履歴テーブル600から取得する。
次に、ステップS507にて、CPU206は、ステップS505で取得した送信履歴のリクエスト送信予定日時(S2)とステップS506で取得した実際のリクエスト送信日時(E2)とを比較する。そして、送信予定日と同じ日にリクエストを送信しているかを判定する。送信予定日と同一の日にリクエストを送信していると判定したときは(ステップS507でYES)、以降の処理を行わずにリターンする。
一方、ステップS507でリクエストを送信予定日と同じ日に送信していないと判定した場合、CPU206は、図3のステップS304で算出した次回リクエスト送信予定日時を一定時間シフトして(ステップS508)、リターンする。例えば、ステップS502からステップS506で求めた2回の送信予定日時S1,S2と実際の送信日時E1,E2を利用し、時間差E1−S1と時間差E2−S2の小さいほうをシフト時間に決定して、次回リクエスト送信予定日時をシフト時間分ずらす。
図3のステップS306にて、コンテンツサイト101がユーザPC102に次回リクエスト送信予定日時を返すときは、週次調整による時間シフトを行ったことを示す調整IDに1をセットして同時に返すものとする。これは、ユーザPC102が次回リクエスト送信時にコンテンツサイト101が調整ID=1の送信履歴を含むリクエスト送信履歴テーブル600を受信した場合、送信履歴と実際のリクエスト送信日時とを比較する。そして、比較の結果、時刻が異なるときには、例えば一定時間リクエスト送信予定日時を遅らせる等の時間調整に利用できるためである。
図6(a)において、最後(最新)のリクエスト送信履歴が2008/6/13_9:00に送信されていることが判る(送信ID11)。これは、コンテンツサイト101が毎日コンテンツの更新を行っていることから、送信予定日時が翌日の9:00に返されているためである(送信ID8〜11)。
送信ID7では、送信予定日時として登録された2008/6/7にはリクエストが送信されず、実際の送信日時は2008/6/9である。また、その1週間前の送信ID2では、5/31(土曜日)と6/1(日曜日)の2日間のリクエスト送信がなかったことを示す。これらの送信履歴から上述した図5の週次調整処理が行われると、送信ID12に示すように、次回リクエスト送信予定日時が調整される。送信ID12には、送信予定日時を調整したことを示すID=1が登録されている。
上記処理により、例えば毎日曜日が休業でユーザPCが起動していない環境からのポーリングリクエストが翌月曜日にずれ込んで送られることを事前に想定し、月曜日のリクエスト受信量を事前に調整することで、負荷集中を避けることができる。
上記第1の実施形態によれば、クライアントからの送信履歴を考慮して次回問い合わせ予定日時を調整することにより、複数のクライアントからサーバへの問い合わせによるネットワーク負荷やサーバへのアクセス集中を回避して効率的な通信を行うことができる。
なお、本実施形態では、1週間単位(または日単位)のクライアントの稼働状態を基準に負荷調整を行ったが、例えば一か月単位などの調整を行ってもよい。また、本実施形態では、週次調整を行うために過去2回の送信履歴をもとにユーザPCの稼働状態を判定したが、これに限定されず、過去1回であっても3回以上であってもよい。
[第2の実施形態]
本発明の第2の実施形態は、上記第1の実施形態におけるリクエスト送信予定時間の週次調整に対して、時刻単位のクライアントの稼働状態を基準に負荷調整を行う点で相違する。以下に、上記第1の実施形態と異なる点のみを説明する。
図7は、本発明の第2の実施形態におけるリクエスト送信予定日時調整処理を示すフローチャートである。本処理は、図3のステップS305にて実行される処理である。
ステップS701にて、コンテンツサイト101内のCPU206は日次調整処理を行う。この日次調整処理の詳細については図8を用いて詳述する。
次に、ステップS702にて、CPU206は、ユーザPC102から受信したリクエスト送信履歴テーブル600を参照して、リクエスト送信時刻(送信履歴)に一貫性があるかどうかを判定する。一貫性の有無の判定については後述する。なお、本実施形態では、リクエストの送信に要する時間で年月日時分秒が指定されている時間のことを送信日時、送信日時のうち年月日を除いた1日の中での時間帯を示す時間のことを送信時刻と呼ぶことにする。
ステップS702の判定の結果、送信履歴に一貫性がないと判定した場合、CPU206は、ステップS701で調整した次回リクエスト送信予定日時をリクエスト送信予定テーブル1000に登録せずに処理を終了する。これは、コンテンツサイト101内のCPU206が、ユーザPC102から受信したリクエスト送信履歴テーブル600に基づいて、当該ユーザPC102がランダムな時間に起動したり終了したりする稼働状態であると判断するためである。また、CPU206は、次回リクエスト送信予定日時をリクエスト送信予定テーブル1000に登録しても、その時間帯にユーザPC102が稼働中でないおそれがあり、予定通りにユーザPC102からリクエストが送信されないと判断するためである。
ステップS702の判定の結果、送信履歴に一貫性があると判定した場合はステップS703へ進む。ステップS703では、CPU206は、リクエスト送信予定テーブル1000を参照し、次回リクエスト送信予定日時に既に送信予定が登録されているか否かを判定する。
ステップS703の判定の結果、次回リクエスト送信予定日時に、どのユーザPCからも送信予定が登録されていない場合(ステップS703でNO)、ステップS705へ進む。ステップS705では、CPU206は、次回リクエスト送信予定日時をリクエスト送信予定テーブル1000に登録してリターンする。
一方、次回リクエスト送信予定日時に既に他のユーザPC(例えば、ユーザPC103)からのリクエスト送信予定が登録されていた場合(ステップS703でYES)、ステップS704へ進む。ステップS704では、CPU206は、次回リクエスト送信予定日時を一定時間シフトして、ステップS703に戻り、ずらした次回リクエスト送信予定日時に送信予定が登録されていないかを判定する。
次回リクエスト送信予定日時を一定時間シフトする場合、以下のように処理する。例えば、コンテンツサイト101で図11に示すリクエスト送信予定テーブル1000が運用されていたときは、送信予定日時の時刻が5分刻みで変動していることから、次回リクエスト送信予定日時の時刻を5分間遅らせる。
なお、コンテンツサイト101にアクセスするアクセスするユーザPCの端末数が多くなれば、次回リクエスト送信予定時刻のシフト時間を短くしてもよい。
また、本実施形態では、同一時刻にリクエストを受け付けられるユーザPCの端末数を1台としているが、これに限定されない。同一時刻にリクエストを受け付ける端末数は、コンテンツサイト101の処理能力次第で変わるものであり、例えば、同一時刻に複数台の異なる端末からリクエストを受け付けることも可能である。この場合、ステップS703では、リクエスト送信予定日時に送信する端末の有無で判断をするのではなく、リクエスト送信予定日時に送信する端末が処理上限に達しているかどうかで判断することは言うまでもない。
図8は、図6のステップS701における日次調整処理の詳細を示すフローチャートである。
ステップS801にて、CPU206は、図3のステップS304で算出した次回リクエスト送信予定日時から次回リクエスト送信予定時刻を取得する。ステップS802にて、CPU206は、ユーザPC102から受信したリクエスト送信履歴テーブル600から、ステップS801で取得した次回リクエスト送信予定時刻と同じ時刻(日が異なって時、分が同じ)の最後(最新)の送信履歴を取得する。なお、不図示であるが、該当する送信履歴が取得できなかった場合、以降の処理を行わずにリターンする。
ステップS803にて、CPU206は、ステップS802で取得した送信履歴に対応する実際のリクエスト送信日時および送信時刻をリクエスト送信履歴テーブル600から取得する。
ステップS804にて、CPU206は、ステップS802で取得した送信履歴のリクエスト送信予定時刻(ST1)とステップS803で取得した実際のリクエスト送信時刻(ET1)を比較する。そして、送信予定時刻と同一の時刻にリクエストを送信しているかを判定する。送信予定時刻と同一の時刻にリクエストを送信していると判定したときは(ステップS804でYES)、以降の処理を行わずにリターンする。
一方、ステップS804でリクエストを送信予定時刻と同一の時刻に送信していないと判定した場合、CPU206は、リクエスト送信履歴テーブル600から、同じ時刻が送信予定時刻に指定されているもう一つ前の送信履歴を取得する(ステップS805)。なお、不図示であるが、該当する送信履歴が取得できなかった場合、以降の処理を行わずにリターンする。
ステップS806にて、CPU206は、ステップS805で取得したリクエスト送信履歴に対応する実際のリクエスト送信時刻をリクエスト送信履歴テーブル600から取得する。
次に、ステップS807にて、CPU206は、ステップS805で取得した送信履歴のリクエスト送信予定時刻(ST2)とステップS806で取得した実際のリクエスト送信時刻(ET2)とを比較する。そして、送信予定時刻と同一の時刻にリクエストを送信しているかを判定する。送信予定時刻と同一の時刻にリクエストを送信していると判定したときは(ステップS807でYES)、以降の処理を行わずにリターンする。
一方、ステップS807でリクエストを予定時刻と同じ時刻に送信していないと判定した場合、CPU206は、次回リクエスト送信予定日時の時刻をシフトするための次回リクエスト送信予定時刻調整処理を行う(ステップS808)。この次回リクエスト送信予定時刻調整処理の詳細については図9を用いて詳述する。
なお、図8におけるステップS804,S807でリクエスト送信予定時刻と実際のリクエスト送信時刻とが同じかどうかの判断を行ったが、時刻がまったく一致している場合に限らない。例えば、両時刻の差が一定時間以内(例えば2分以内等)であれば、同じであると判断しても構わない。
図9は、図8のステップS808における次回リクエスト送信予定時刻調整処理の詳細を示すフローチャートである。
ステップS901にて、CPU206は、図8のステップS802で取得した送信予定時刻ST1から新たな送信予定時刻ST3を算出する。この送信予定時刻ST3は、例えば、上述した送信予定時刻ST1の15分前とする。なお、送信予定時刻ST3には、送信予定時刻ST1の近傍で当該送信予定時刻ST1とは異なる時刻を設定できれば、どのような方法で算出しても構わない。そのため、送信予定時刻ST3は、ステップS802,S803で取得した送信予定時刻ST1と実際の送信時刻ET1及びステップS805、S806で求めた送信予定時刻ST2と実際の送信時刻ET2から算出するようにしてもよい。
具体的には、例えば、送信予定時刻ST1より時刻ST1とET1の差分の2分の1の時間だけ後ろにずらした時刻を設定してもよい。逆に、送信予定時刻ST2より時刻ST2とET2の差分の2分の1の時間だけ前にずらした時刻を設定してもよい。また、ET1,ET2それぞれより前の時刻であれば、一定時間(例えば、10分等)だけST1をずらしても構わない。ステップS901は第2の算出手段の一例である。
ステップS902にて、CPU206は、リクエスト送信履歴テーブル600から、リクエスト送信予定日時ST1以降に送信予定時刻がST3に調整されている送信履歴を検索する。ステップS903にて、CPU206は、ステップS902の条件に合う送信履歴があったかどうかを判定し、履歴がなかった場合には(ステップS903でNO)、送信予定時刻をST3としてリターンする。
一方、ステップS903の判定の結果、ST3を送信予定時刻とした送信履歴が存在した場合(ステップS903でYES)、CPU206は、その送信履歴の実際のリクエスト送信時刻ET3を取得する(ステップS904)。
ステップS905にて、CPU206は、送信予定時刻ST3と実際の送信時刻ET3とを比較し、送信予定時刻ST3と同一の時刻にリクエストが送信されていた場合には、送信予定時刻をST3として、リターンする。
一方、送信予定時刻ST3と同一の時刻にリクエストが送信されていなかった場合、CPU206は、実際のリクエスト送信時刻ET1、ET2、ET3に一貫性があるかどうかを判定する(ステップS906)。ここでは、それぞれの送信時刻に1時間以上の差があれば一貫性はないと判断する。なお、一貫性の判断時間は、予め規定されている時間であれば何でもよく、1時間に固定されるものでないことは言うまでもない。
ステップS906の判定の結果、リクエスト送信時刻ET1、ET2、ET3に一貫性がないと判断した場合、CPU206は、時間調整処理をリセットし、ステップS304で算出した次回リクエスト送信予定日時を予定日時とする(ステップS907)。この場合、図7で説明したとおり、ユーザPC102がランダムな時間にリクエストを送信してくるものと判断して、CPU206は、リクエスト送信予定テーブル1000には次回送信予定日時を登録しない。
一方、ステップS906の判定の結果、リクエスト送信時刻ET1,ET2,ET3に一貫性があると判断した場合、CPU206は、ステップS908にて、リクエスト送信時刻ET3に送信予定時刻ST3の効果があったかどうかを判定する。送信予定時刻ST3の効果がなかった場合(S908でNO)、つまりST3として、ST1,ST2より前の時刻にリクエスト送信予定時刻を設定したにも関わらず、ET3がET1,ET2と大差ない時刻であった場合、ユーザPC102は以下を実行する。すなわち、ユーザPC102は、ET1,ET2,ET3の時刻前後まで停止しているとみなす。そして、ステップS909にて、次回リクエスト送信予定時刻ST4としてET1,ET2,ET3の中間時刻をもった次回送信予定日時をリクエスト送信予定テーブル1000に登録する。
一方、ステップS908の判定の結果、送信予定時刻ST3の効果があった場合(ステップS908でYES)、つまりST1,ST2からST3に時間をずらしただけET1,ET2からET3に時間がずれた場合、以下となる。すなわち、ユーザPC102は何らかの理由で負荷の大きな処理をしているため、予定時刻通りにリクエストが出せないと判断することができる。この場合、ステップS910にて次回リクエスト送信予定時刻をS1,S3の近傍から大幅にずらした時間(例えば、1時間後)に再調整する。
図6(b)は、図9のステップS907で調整をリセットした場合のリクエスト送信履歴テーブルの一例を示す図である。
図6(b)において、リクエスト送信履歴テーブル700は、リクエスト送信履歴テーブル600と同様に、送信ID601と、次回リクエスト送信予定日時602と、調整ID603と、実際の送信日時604とで構成される。
図示例では、送信ID2のリクエスト送信予定日時が2008/6/2_8:20になっているが、実際の送信日時は2008/6/2_8:33である。翌日の6/3も同じ時刻がリクエスト送信予定時刻になっているが、実際の送信日時は2008/6/3_10:16である(送信ID3)。そこで、ステップS901における時刻調整がなされた送信ID4のリクエスト送信予定日時は2008/6/4_8:05となっている。
しかし、実際の送信日時は2008/6/4_14:10となっていて、3回のリクエスト送信時刻に一貫性がないと判断され、次のリクエスト送信予定時刻は2008/6/5_8:20(送信ID5)と調整前の時刻に戻っている。この場合、調整IDには、調整リセットを示す調整ID=99がセットされている。
図6(c)は、図9のステップS909で送信予定日時の調整をした場合のリクエスト送信履歴テーブルの一例を示す図である。
図6(c)において、リクエスト送信履歴テーブル800は、リクエスト送信履歴テーブル600と同様に、送信ID601と、次回リクエスト送信予定日時602と、調整ID603と、実際の送信日時604とで構成される。
図示例では、送信ID2のリクエスト送信予定日時が2008/6/2_9:20になっているが、実際の送信日時は2008/6/2_9:33である。翌日の6/3も同じ時刻がリクエスト送信予定時刻になっているが、実際の送信日時は2008/6/3_9:32である(送信ID3)。そこで、ステップS901における時刻調整がなされた送信ID4のリクエスト送信予定日時は2008/6/4_9:05となっている。
しかし、実際の送信日時は2008/6/4_9:34となっていて、リクエスト送信予定時刻を調整したにも関わらず、実際のリクエスト送信時刻にはその影響が出ていない。この場合、毎日9:30頃にユーザPC102が起動すると想定して過去3回の送信履歴から2008/6/5_9:33が次回リクエスト送信予定日時になり、5分単位で丸められた時刻9:35がセットされている。なお、送信ID4には、時刻調整を行ったことを示す調整ID=2がセットされている。
図10(a)は、図9のステップS910で送信予定日時の再調整した場合のリクエスト送信履歴テーブルの一例を示す図である。
図10(a)において、リクエスト送信履歴テーブル900は、リクエスト送信履歴テーブル600と同様に、送信ID601と、次回リクエスト送信予定日時602と、調整ID603と、実際の送信日時604とで構成される。
図示例では、送信ID2のリクエスト送信予定日時が2008/6/2_8:30になっているが、実際の送信日時は2008/6/2_8:38である。翌日の6/3も同じ時刻がリクエスト送信予定時刻になっているが、実際の送信日時は2008/6/3_8:39である(送信ID3)。そこで、ステップS901における時刻調整がなされた送信ID4のリクエスト送信予定日時は2008/6/4_8:15となっている。
しかしながら、送信ID4の実際の送信日時は2008/6/4_8:23となっていて、リクエスト送信予定時刻を調整した時間だけ実際のリクエスト送信時刻が早くなっている。この場合、毎日同時間帯にはユーザPC102が何らかの重い処理を実行していて、リクエストが送信できない状態にあると判断し、送信ID5に示すように次回リクエスト送信日時を1時間繰り下げている。送信ID5の調整IDには、時刻再調整を行ったことを示す調整ID=3がセットされている。
上記処理により、例えば、毎日同じ時間に起動するユーザPCに対して、そのユーザPCが起動する時刻よりも前に次回リクエスト送信予定時刻がセットされてしまうという問題を回避することができる。
また、リクエスト送信予定時刻にリクエストを送信してこないユーザPCの次回リクエスト送信予定日時を調整し、予定外の時間にリクエストを送信するユーザPCを極力減らすことでリクエスト負荷の均質化を図ることができる。
なお、本実施形態では、日次調整処理を行うために過去2回の送信履歴をもとにユーザPCの稼働状態を判定したが、これに限定されず、過去1回であっても3回以上であってもよい。
[第3の実施形態]
本発明の第3の実施形態は、上記第2の実施形態に対して、リクエスト送信予定時間の日次調整を別の方法で実行する点において相違する。以下に、上記第2の実施形態と異なる点のみを説明する。
図9のステップ910では、例えば、ユーザPC102が何らかの処理を実行することによってリクエスト送信時刻が常に予定時刻より一定時間遅れている場合について、CPU206が次回リクエスト送信予定日時の再調整を行っている。しかし、このような場合、コンテンツサイト101への負荷を分散させるには別の方法があるので、その内容を説明する。
ステップS910においてET3がST3の影響を受けている場合、ステップS907と同様に調整をリセットしても構わない。この場合、引き続き行われるステップS703〜S705にて、ステップS304で算出した送信予定日時にET3とST3の時差を考慮した送信予定日時をリクエスト送信予定テーブル1000に登録する。または、ステップS304で算出した送信予定日時にユーザPC102から送られてくる時間の差分を考慮した送信予定日時をリクエスト送信予定テーブル1000に登録する。
図10(b)は、本発明の第3の実施形態におけるリクエスト送信履歴テーブルの一例を示す図である。
図10(b)において、リクエスト送信履歴テーブル1100は、リクエスト送信履歴テーブル600と同様に、送信ID601と、次回リクエスト送信予定日時602と、調整ID603と、実際の送信日時604とで構成される。リクエスト送信履歴テーブル1100は、ステップS910で送信予定日時の再調整をリセットした場合のリクエスト送信履歴情報である。
図示例では、送信ID2のリクエスト送信予定日時が2008/6/2_8:30になっているが、実際の送信日時は2008/6/2_8:38である。翌日の6/3も同じ時刻が送信予定時刻になっているが、実際の送信日時は2008/6/3_8:39である(送信ID3)。そこで、ステップS901における時刻調整がなされた送信ID4のリクエスト送信予定日時は2008/6/4_8:15となっている。
しかしながら、送信ID4の実際の送信日時は2008/6/4_8:23となっていて、リクエスト送信予定時刻を調整した時間だけ実際のリクエスト送信時刻が早くなっている。この場合、毎日同時間帯にはユーザPC102が何らかの重い処理を実行していて、リクエストが送信できない状態にあると判断し、送信ID5に示すように次回リクエスト送信日時が8:30にリセットされている。送信ID5の調整IDには、時刻再調整を行ったことを示す調整ID=4がセットされている。このとき、コンテンツサイト101に保管されるリクエスト送信予定テーブル1000には、2008/6/5_8:30が登録されるのではない。すなわち、リクエスト送信履歴テーブル1100にある誤差8分を5分単位で丸めた時差10分を考慮した2008/6/5_8:40が登録されることになる。
[第4の実施形態]
上記第1〜第3の実施形態では、リクエスト送信履歴テーブルがユーザPC102側で保存管理される構成について説明したが、本発明の第4の実施形態として、コンテンツサイト101側でユーザPC毎に保存管理される構成であってもよい。この場合、不図示であるが、リクエスト送信履歴テーブルには、送信ID601、次回リクエスト送信予定日時602、調整ID603、実際の送信日時604に加えて、各ユーザPCの一意に特定するための端末IDが登録管理される。
また、第4の実施形態では、図3のステップS302でユーザPC102がポーリングリクエストを送信するときに、コンテンツサイト101に対してリクエストの送信日時を送付する必要がある。そして、コンテンツサイト101は、ステップS303にてポーリングリクエストと共にリクエストの送信日時を受信する。この場合、上記第1の実施で送信されたリクエスト送信履歴テーブル600は、コンテンツサイト101で保管されているリクエスト送信履歴テーブル600からユーザPC102の端末IDを用いて検索することができることは言うまでもない。
本発明の実施形態は、ネットワーク又は各種記憶媒体を介して取得したソフトウェア(プログラム)をパーソナルコンピュータ(CPU,プロセッサ)にて実行することでも実現できる。
101 コンテンツサイト(サーバ)
102,103 ユーザPC(クライアント)
104 ネットワーク
106 制御部
107 情報DB
206 CPU
207 ROM
208 RAM
600 リクエスト送信履歴テーブル
1100 リクエスト送信予定テーブル

Claims (5)

  1. ネットワーク上の複数のクライアントからサーバに対してコンテンツの更新有無を問い合わせる通信システムにおいて、
    前記クライアントは、
    前記サーバに問い合わせを行う予定であった第1の予定日時と実際に問い合わせを行った実行日時の組み合わせが登録される履歴情報を保管する第1の保管手段と、
    前記サーバに対してコンテンツに関する問い合わせを行うときに前記履歴情報をあわせて送信する送信手段とを有し、
    前記サーバは、
    前記クライアントから送信された履歴情報を受信する受信手段と、
    前記クライアントによる次回問い合わせを行う予定となる第2の予定日時を前記コンテンツの更新履歴または現在時刻に基づき算出する算出手段と
    前記第2の予定日時を前記受信手段により受信された履歴情報にしたがって調整する調整手段と、
    前記調整された第2の予定日時を前記クライアントへ返信する返信手段を有することを特徴とする通信システム。
  2. 前記サーバは、前記調整された第2の予定日時を前記クライアント毎に保管する第2の保管手段をさらに備え、
    前記調整手段は、さらに、前記調整された第2の予定日時を、前記保管された他のクライアントの第2の予定日時にしたがって調整することを特徴とする請求項1記載の通信システム。
  3. 前記算出手段により算出された第2の予定日時と同じ曜日または同じ時間帯の、前記第1の予定日時を有する前記履歴情報を取得する取得手段と、
    前記取得された履歴情報における少なくとも1組の前記第1の予定日時と前記実行日時とを比較する比較手段をさらに備え、
    前記調整手段は、前記比較結果にしたがって前記第2の予定日時を調整することを特徴とする請求項1または2に記載の通信システム。
  4. ネットワーク上の複数のクライアントからサーバに対してコンテンツの更新有無を問い合わせる通信システムの通信方法において、
    前記クライアントによって、
    前記サーバに問い合わせを行う予定であった第1の予定日時と実際に問い合わせを行った実行日時の組み合わせが登録される履歴情報を保管する保管工程と、
    前記サーバに対してコンテンツに関する問い合わせを行うときに前記履歴情報をあわせて送信する送信工程と、
    前記サーバによって、
    前記クライアントから当該サーバに送信された履歴情報を受信する受信工程と、
    前記クライアントによる次回問い合わせを行う予定となる第2の予定日時を前記コンテンツの更新履歴または現在時刻に基づき算出する算出工程と、
    前記第2の予定日時を前記受信工程で受信された履歴情報にしたがって調整する調整工程と
    前記調整された第2の予定日時を前記クライアントへ返信する返信工程と、
    を有することを特徴とする通信方法。
  5. 請求項記載の通信方法をコンピュータに実行させるためのコンピュータ読み取り可能なプログラム。
JP2009118404A 2009-05-15 2009-05-15 通信システム及び方法、並びにプログラム Expired - Fee Related JP5455432B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009118404A JP5455432B2 (ja) 2009-05-15 2009-05-15 通信システム及び方法、並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009118404A JP5455432B2 (ja) 2009-05-15 2009-05-15 通信システム及び方法、並びにプログラム

Publications (2)

Publication Number Publication Date
JP2010267104A JP2010267104A (ja) 2010-11-25
JP5455432B2 true JP5455432B2 (ja) 2014-03-26

Family

ID=43364016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009118404A Expired - Fee Related JP5455432B2 (ja) 2009-05-15 2009-05-15 通信システム及び方法、並びにプログラム

Country Status (1)

Country Link
JP (1) JP5455432B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103516690B (zh) 2012-06-26 2016-08-03 阿里巴巴集团控股有限公司 一种业务处理状态信息查询方法及装置
JP6183373B2 (ja) * 2012-10-31 2017-08-23 日本電気株式会社 配信装置、通信システム、負荷分散方法および負荷分散プログラム
JP5983467B2 (ja) * 2013-03-07 2016-08-31 アイシン・エィ・ダブリュ株式会社 地図情報配信システム、方法およびプログラム
JP6559539B2 (ja) * 2015-10-28 2019-08-14 シャープ株式会社 通信サーバ、通信システム、通信制御方法、および通信制御プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08272711A (ja) * 1995-03-30 1996-10-18 Mitsubishi Electric Corp ファイル転送自動管理システム
JP3726310B2 (ja) * 1995-06-01 2005-12-14 富士ゼロックス株式会社 情報通信システム
JP2005190063A (ja) * 2003-12-25 2005-07-14 Fuji Xerox Co Ltd スケジュール調整支援システム

Also Published As

Publication number Publication date
JP2010267104A (ja) 2010-11-25

Similar Documents

Publication Publication Date Title
TWI450534B (zh) 用於遠端列印網路中文件的方法、客戶電腦系統、網路系統及電腦可讀取媒體
US20200371653A1 (en) Enhanced multi-tab co-browsing between one or more operators and one or more visitors
US7440125B2 (en) Setting information transmission/reception system
JP5455432B2 (ja) 通信システム及び方法、並びにプログラム
JP5415183B2 (ja) バッチジョブ処理装置、バッチジョブ処理システム
WO2015163834A1 (en) Internet based administration of reminder notifications by a computer system
JP4880376B2 (ja) 支援装置、プログラム、情報処理システム及び支援方法
JP2007299308A (ja) ジョブ処理システム、ジョブ処理方法、プログラムおよび記録媒体
JP2008140287A (ja) アノテーション管理プログラム、アノテーション管理装置、アノテーション管理方法及びアノテーション表示プログラム
JP5866971B2 (ja) 画像形成システム
JP6192423B2 (ja) 情報処理装置及び情報処理方法、情報処理システム、プログラム
US8024427B2 (en) Dynamic storage of documents
JP5006823B2 (ja) 画面情報生成装置、端末制御装置、画面情報生成方法、画面情報生成プログラム、端末制御方法及び端末制御プログラム
JP2009053866A (ja) データ転送装置およびデータ転送システム
JP2005025431A (ja) 情報保管システム、情報保管方法、および情報保管プログラム
JP4128971B2 (ja) グリッドコンピューティングシステム
JP2008071258A (ja) 情報表示システムおよびそのプログラム
JP2009080587A (ja) データ転送サーバ
JP6286887B2 (ja) プレゼンスサービス方法、プレゼンスサーバ、およびプログラム
JP4966570B2 (ja) 情報提供システム、端末、情報取得及び提供サーバ、情報提供方法及びプログラム
JP2001075850A (ja) データキャッシュ処理方法及びキャッシュ装置
JP5192863B2 (ja) 情報処理システム
JP5049856B2 (ja) 情報処理装置、情報処理方法
JP4960283B2 (ja) 情報処理システム
JP2011100370A (ja) 情報提供装置、情報提供システムおよび情報提供方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120427

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130312

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130508

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140107

R151 Written notification of patent or utility model registration

Ref document number: 5455432

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees