JP2004326156A - クライアントサーバーシステム - Google Patents
クライアントサーバーシステム Download PDFInfo
- Publication number
- JP2004326156A JP2004326156A JP2003115709A JP2003115709A JP2004326156A JP 2004326156 A JP2004326156 A JP 2004326156A JP 2003115709 A JP2003115709 A JP 2003115709A JP 2003115709 A JP2003115709 A JP 2003115709A JP 2004326156 A JP2004326156 A JP 2004326156A
- Authority
- JP
- Japan
- Prior art keywords
- bandwidth
- remaining battery
- client
- server
- terminal
- 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.)
- Withdrawn
Links
Images
Landscapes
- Power Sources (AREA)
Abstract
【課題】広域ネットワーク上でデジタルカメラから転送されるの画像を預かる画像サーバーにおいて、デジタルカメラ側の電池残量不足に応じてサービスの最適化を行い、電池残量不足による処理失敗を軽減する。
【解決手段】1)電池残量の少ないデジタルカメラに対して転送のバンド巾を優先的に割り当てる。2)バンド巾制御機能の無い伝送路において、動的にバンド巾計測を行い、全転送量の抑制を行う事で、優先的にバンド巾を割り当てることを可能とする。3)電池残量の少ないデジタルカメラに対してサーバー側のCPUタイムを優先的に割り当てる。4)電池残量で転送可能なデータ量を超える転送要求を受け付けない。
【選択図】 図1
【解決手段】1)電池残量の少ないデジタルカメラに対して転送のバンド巾を優先的に割り当てる。2)バンド巾制御機能の無い伝送路において、動的にバンド巾計測を行い、全転送量の抑制を行う事で、優先的にバンド巾を割り当てることを可能とする。3)電池残量の少ないデジタルカメラに対してサーバー側のCPUタイムを優先的に割り当てる。4)電池残量で転送可能なデータ量を超える転送要求を受け付けない。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、複数の装置を接続可能な通信手段を用いてデジタルカメラの画像を転送する場合におけるプロトコル及び装置構成に関するものである。
【0002】
【従来の技術】
近年インターネット上でユーザーのデジタル画像を預かり、印刷や閲覧等のサービスを利用できるサーバーが出現し、例えば特開2000−222325「ホームページ作成ならびに公開システム」ではユーザーが専用のソフトウェアを使う事なく汎用のWebブラウザによってすべてのサービスが利用可能となるシステムが紹介されている。
【0003】
上記のようなサーバーのサービスは接続経路のトラフィックやバンド巾の制約により接続時間がまちまちになるという特徴がある。一方、デジタルカメラのような小型端末は出来るだけ小さな電池搭載する事で携帯性を向上させる事ができるため、小さな電池でも安定したサービスを受けられる事が望ましい。
【0004】
【発明が解決しようとする課題】
しかしながら、小さな電池を搭載した小型端末から画像を転送する場合に接続時間が予想以上に長くなってしまった場合に小型端末側の電池残容量不足によって画像の転送を中断せざるおえなくなるという欠点がある。
【0005】
接続時間が長くなってしまう要因としては、▲1▼インターネットプロバイダの利用者の増加によるトラフィックの増加。▲2▼インターネットの利用者増加によるトラフィックの増加。▲3▼サーバーとインターネット間のバンド巾に対して利用者の増加。▲4▼サーバーの処理能力に対して利用者が増加。などが考えられる。サーバーとインターネット間のトラフィックとサーバーの能力に関しては、バンド巾の低い方の制約を受ける事となり、そのバンド巾は時間帯によらず一定であるが、インターネットプロバイダとインターネット上の利用者一人あたりのバンド巾は利用者の増加に比例して減少する。
【0006】
また、ネットワークのバンド巾を動的に計測して送信するデータ量を制限するビデオデータ配信のシステムが特開平9−271002で考案されている。
【0007】
本発明が解決しようとする課題は電池を搭載した小型端末から画像を転送する際バンド巾の低下が原因で接続時間が長くなってしまい、その結果電池不足を起こして転送に失敗する頻度を低減したシステムを構築する事にある。
【0008】
【課題を解決するための手段】
本願請求項1で示したクライアントサーバーシステムは、端末の電池残容量を管理する事によりサービスの最適化を行い、電池不足による処理の失敗頻度を低減する事を特徴とする。
【0009】
また本願請求項2で示すクライアントサーバーシステムは端末の電池残容量の少ない端末に対して伝送路のバンド巾を優先的に割り当てる事で、電池残容量の少ない端末の接続時間を短縮し、電池不足による処理の失敗頻度を低減する。
【0010】
本願請求項3で示すクライアントサーバーシステムはバンド巾制御機能の無い伝送路において、端末とサーバー間の伝送路のバンド巾計測手段を使って計測した結果を用いてバンド巾の分配を行い、バンド巾の分配に従って単位時間あたりの転送量を抑制するように動作する事によりバンド巾制御機能の無い伝送路においてもバンド巾の優先割り当てが可能となるように構成する。
【0011】
本願請求項4で示すクライアントサーバーシステムは電池残容量の少ない端末に対して優先的にCPUタイムを割り当てる事によって電池不足による処理の失敗頻度を低減する事を特徴とする。
【0012】
請求項5で示すクライアントサーバーシステムは要求された処理に必要なサービス時間とクライアント側の電池残容量での稼動時間を比較し、稼働時間が不足した場合は要求された処理を受け付けないよう構成する。
【0013】
【発明の実施の形態】
(第一の実施例)
図1は本発明第一の実施例の形態を示すものである。図1の1はネットワーク上で画像を預かるサービスを行う画像サーバー。図1の2は画像サーバーと広域ネットワークを接続する伝送路。図1の3は広域ネットワーク。図1の4はプロバイダと広域ネットワークを接続する伝送路。図1の5はプロバイダのサーバー。図1の6はプロバイダと端末を接続する伝送路。図1の7は端末機能を有するデジタルカメラを示す。
【0014】
図1の7はデジタルカメラの機能を有し、通常用途において画像を撮影する事ができる。デジタルカメラのメモリーに蓄積された画像の中から印刷あるいはWebブラウザ等で閲覧する目的で図1の1の画像サーバーへ接続して画像をアップロードする。
【0015】
図1の7のデジタルカメラから画像サーバーへ接続すると図1の1の画像サーバーは接続に応じて対応するサービスを実行するソフトウェアのインスタンスを生成する。マルチクライアントのシステムではクライアント毎のサービスを実現するインスタンスを生成するのが一般的である。
【0016】
図2はバンド巾の割り当てを行うソフトウェアの構造を示したものである。図2の1はバンド巾の割り当てを行うバンド巾マネージャ図2の2はクライアント毎に生成されるインスタンス。図2の3はクライアントまでの伝送路のバンド巾を測定するバンド巾測定モジュールのインスタンスである。
【0017】
図2の2のインスタンスはそれぞれバンド巾割り当てマネージャから割り当てられた割り当てバンド巾と図2の3のバンド巾測定によって測定されたクライアントとサーバー間のバンド巾およびクライアントのデジタルカメラの電池残容量、クライアント側が転送しようとしているデータの総容量をプロパティとして格納している。
【0018】
図2の3のバンド巾測定はクライアントからのブロック転送に要する時間を計測して逆算するもので、本実施例の中では重要ではないため詳細な説明を省略する。
【0019】
図2の1のバンド巾割り当てマネージャは画像サーバーから広域ネットワークまでの伝送路のバンド巾かサーバーの処理能力の上限によって制限されるバンド巾のどちらか低い方を総バンド巾として持つ。
【0020】
図2の1のバンド巾割り当てマネージャは総バンド巾をすべてのクライアントへ分配する。
【0021】
(バンド巾割り当て)
バンド巾割り当てマネージャがどのように総バンド巾を分配するのかを説明する。
【0022】
図3はクライアントを管理するためのクライアントインスタンスのリストを示すインスタンス図である。
【0023】
図3の1〜4のクライアントインスタンスは接続中のクライアントそれぞれの情報を持っており、リンクリストによって管理されている。リンクリストは常にクライアントの電池残容量順にソーティングされている。
【0024】
図1の1のサーバーは図1の7のデジタルカメラと接続が完了すると、図1の7のデジタルカメラに対して電池の残容量を時間で正規化した値を問い合わせる。
【0025】
以後図1の1のサーバーは定期的に図1の7のデジタルカメラの電池残容量を問い合わせ、図3のインスタンスの電池残容量プロパティを更新し、リストの順序をソーティングする。それにより図3のリストは常に電池残容量の順に並んでいる。
【0026】
図3の1〜4のクライアントインスタンスは図2の3のバンド巾測定クラスによって測定されたクライアントとサーバー間の実質バンド巾をプロパティとして持っている。このプロパティも定期的に更新される。
【0027】
図2の1のバンド巾割り当てマネージャがバンド巾を割り当てる処理を図4のフローチャートを使って説明する事とする。ステップ101でバンド巾マネージャがバンド巾割り当てを開始する。ステップ102では利用可能なバンド巾の変数Available Band Widthに総バンド巾を代入している。総バンド巾はサーバーの転送能力とサーバーと広域ネットワーク間の伝送路のどちらかバンド巾の低い方と同じ値を保持している。ステップ102ではさらにp Current Clientへクライアントインスタンスリストの先頭の項目を代入し、Remain Client Countへ総クライアント数を代入する。ステップ103ではp Current Clientがリストの最後を示しているかどうかを判断している。リストが空の場合はただちにステップ112へ分岐し、リストが空でなければステップ104へ分岐する。ステップ104ではp Current Clientの電池残容量が20分以下かどうかを判断している。電池残容量が20分以下ならステップ106へ分岐し、電池残容量が20分以上ならステップ105へ分岐する。ステップ106ではバンド巾の割り当て上限値の変数であるLimit of Band Widthへ利用可能なバンド巾の変数Avalirable Band Widthの値を代入する。ステップ105ではバンド巾の割り当て上限値の変数であるLimit of Band Widthへ利用可能なバンド巾の変数Avalirable Band Widthの値を未だ割り当ての済んでいないクライアントの数を保持している変数Remain Client Countの値で割った値を代入する。ステップ104、105、106のプログラムを要約すると電池残容量が20分以上の場合は割り当て可能なバンド巾を残りのクライアントで均等に割った配分を実際に割り当てる上限とし、電池残容量が20分以下の場合は割り当て可能なバンド巾のすべてを上限とするという事である。ステップ107ではクライアントが要求するバンド巾の一時変数であるRequest Band Widthへクライアントとサーバーまでの実行的なバンド巾の変数であるPerformance Band Widthを代入している。この値は図2の3のEstimate Performanceクラスによって計測された値であり、例えばクライアントとプロバイダの間の接続が28kのモデムなのかADSLの高速な回線なのかによって大きく異なる。28kのモデムで接続している場合はそれ以上のバンド巾を要求する必要が無いため、要求値として計測値を使用する。ステップ108では要求値であるRequest Band Widthと割り当て可能上限値であるLimit of Band Widthを比較して、Limit of Band Widthの方が大きい場合ステップ109へRequest Band WidthよりLimit of Band Widthの方が小さい場合ステップ109を実行せずにステップ110へ分岐する。ステップ109へ分岐した場合はRequest Band Widthの値をLimit of Band Widthの値でリプレスしている。ステップ108、109のプログラムを要約すると、要求値が割り当て可能上限値を超えないようにしているという事である。ステップ110では割り当て可能バンド巾の変数であるAvailable Band Widthから要求値の変数であるRequest Band Widthの値を引いて、クライアントへ割り当てたバンド巾を保持する変数であるp Current Client−>Allocated Band Widthへ要求値の変数であるRequest Band Widthを代入している。そしてステップ111で現在着目しているクライアントの変数であるp Current Clientへリスト上次のクライアントであるp Current Client−>p Nextを代入して、割り当てる残りのクライアント数を保持しているRemain Client Countの値をディクリメントしている。そしてステップ103へ分岐している。ステップ103からステップ111までのプログラムをp Current Clientがリストの最後を指し示すまで繰り返して処理する事によってすべてのクライアントへバンド巾の割り当てが行われる事になる。すべてのクライアントへバンド巾の割り当てが行われるとステップ103からステップ112へ分岐して処理が終了する。
【0028】
図4のフローチャートのプログラムによって電池残容量が20分以下のデジタルカメラは伝送路の限界までのバンド巾を分配し、電池残容量が20分以上のデジタルカメラへは残ったバンド巾を均等に分配している。
【0029】
(バンド巾制限)
上記のようにクライアントへバンド巾を分配した後、各クライアントはそのバンド巾を超えないように制限しながら転送しなければ総バンド巾を超えてしまう。
【0030】
図1の7のデジタルカメラから画像サーバーへ接続した後、デジタルカメラ側のユーザーインターフェースを操作して画像の転送をスタートするが、プロトコル上はサーバーからのプルモデルによって画像転送が行われる。デジタルカメラ側からプッシュモデルによって画像を転送するよりもプルモデルの方がバンド巾抑制をやりやすいからである。
【0031】
図5はそれぞれのクライアントから画像を受信するプロセスのフローチャートである。サーバーの中ではクライアント1つに対して1つのプロセスが生成されて独立に実行される。それぞれのプロセスは上記のクライアントリストのインスタンスの1つを参照して動作する。ステップ200でプロセスがスタートしてステップ201で転送要求の累計データ量を保持する変数であるTotal Transfer Request Sizeを0に初期化する。ステップ202では転送で使用したバンド巾の値を保持する変数Transfer Band Widthの算出を行っている。Transfer Band Widthは転送要求の累計データ量を経過時間で割った数字として計算している。したがって、経過時間が増えるとTransfer Band Widthは減るが転送要求の累計であるTotal Transfer Request Sizeが0なので、時間に関係なく最初は0が代入される事になる。その後ステップ203で使用したバンド巾と配分されているバンド巾を比較し、配分されているバンド巾の方が大きければステップ204へ配分されているより使用したバンド巾の方が大きければステップ202へ分岐する。ステップ202とステップ203を繰り返し実行する事で、時間の経過によってTransfer Band Widthが減少するのでいずれはステップ204へ分岐する事になる。ステップ204ではデジタルカメラ側に対してブロック転送要求を送信し、その転送要求に応える受信用のスレッドを生成している。転送要求ブロックの大きさは1枚の画像のように大きな単位ではなく数キロバイトから数十キロバイト程度の小さな単位で行う。ステップ205では転送要求の累計を保持するTotal Transfer Request Sizeに対してステップ204で送信した転送要求のサイズを加算する。ステップ206ではデジタルカメラ側の操作で転送を指示したデータのすべての転送が終了したらステップ207へ、まだ転送すべきデータがある場合はステップ202へ分岐する。ステップ202からステップ206は転送するデータが無くなるまで繰り返される。またステップ204では転送要求を送信した後で受信待ちになる替わりに受信スレッドを生成して処理を非同期に行っている。従ってステップ203の割り当てバンド巾に対して転送に使用するバンド巾が超えるまでの間ステップ202からステップ206の間を高速に繰り返し実行が可能となる。また、ステップ204で送信する転送要求のブロックサイズも数キロバイトから数十キロバイトと小さいのでステップ203でのオーバーランも非常に微小な程度に抑えられる。ステップ202からステップ206の間を高速に実行する事で短期間の間にたくさんの転送要求が送信される事になるが、その結果としてレスポンス待ちの無駄な時間が生じない為伝送路を有効に利用する事が出来る。ステップ202から203の繰り返しは時間経過によって再びTransfer Band Widthの値が減少するまで行われ、一定期間後にまたステップ206までのプログラムが実行される。このしくみによってバンド巾を抑制する事が出来る。すべてのデータの転送が終了するステップ206からステップ207へ分岐し転送プロセスが終了する。
【0032】
(失敗防止)
上記のようにバンド巾を割り当てて、全体のバンド巾を制限する事で電池残容量の少ない端末での失敗は軽減できるが、予め失敗の予測をする事によって無駄な接続料金の発生を防ぐ事が出来る。例えば図3の2のクライアントBには28kbpsのバンド巾が割り当てられている。それに対して15分の電池残容量しか無い。28kbpsだと1分で約169kByteの転送が可能である。従って、2,531kbyte以上の転送要求が失敗する事は予測できる。本願の第一の実施例ではこのような場合の転送要求に対して電池残量不足エラーという通知を端末へ送る。端末側のデジタルカメラは電池不足のため転送できないという趣旨のメッセージをユーザーに知らせるように動作する。これによって電池残量の不足による転送失敗を未然に防ぐ事ができ無駄な接続料金も節約できるだけでなく、無駄な転送によるバンド巾の占有も防げる。
【0033】
(第二実施例)
サーバーで行うサービスとして画像の加工や利用者への情報提供サービスを行う場合、サーバー側のデータ検索や画像処理などの時間がかかる処理によって接続時間が長くなる事がある。サーバーはこのような処理をそれぞれのクライアント用に生成したプロセスによって行うが、プロセスはオペレーティングシステムによってスケジュールされており、CPUタイムを優先順位によって割り当てている。サーバーが電池残容量の少ないクライアントに対してCPUタイムを優先的に割り当てられるようにプロセス生成を行う事によって電池残容量が少ない端末の処理が失敗に終わる可能性を下げる事が出来る。本願第二実施例ではサーバーが電池残容量の少ないクライアントに対してCPUタイムを優先的に割り当てられるようにプロセス生成を行うものである。
【0034】
(その他の実施例)
第一の実施例では、広域ネットワークを含む伝送路で接続していたために、実行バンド巾を計測する手段を用いていたが、ローカルにイーサーネット、FDDI、USBなどの有限のバンド巾で複数の端末を接続した場合、バンド巾計測を行わない事を除けば第一の実施例同様の処理を適用できる。
【0035】
ATMなどのバンド巾の管理機能を有する伝送路や、USBのアイソクロナスモードなどのバンド巾制御機能を有する伝送路を用いた場合はそれらの機能を積極的に利用して電池残量の少ない端末へバンド巾を割り当てる事も可能である。
【0036】
【発明の効果】
請求項1及び請求項2に示した発明によれば電池残容量の少ない端末に対して優先的にバンド巾が割り当てられる事によって電池不足による処理の中断失敗の頻度を下げる事が出来る。また、請求項3に示した発明によってバンド巾制御機能を持たない広域ネットワークを含む伝送路においても、単位時間あたりの総転送量を抑制する事で電池残容量の少ない端末に優先的に伝送路を配分する事が可能となる。また請求項4に示す発明によって電池残容量の少ない端末に対して優先的にサーバー側のCPUタイムを割り当てられ電池不足で処理が中断失敗する頻度を下げる事ができる。
【0037】
請求項5の発明によって電池残容量で処理を完了できない事を予測する事ができ、電池不足の処理が中断失敗する頻度を下げる事ができる。
【図面の簡単な説明】
【図1】本願第一の実施例の接続状態を示す図
【図2】本願第一の実施例におけるバンド巾マネージャのソフトウェア構造を示すクラス図
【図3】本願第一の実施例におけるクライアントインスタンスリストのソフトウェア構造を示すインスタンス図
【図4】本願第一の実施例におけるバンド巾マネージャのバンド巾割り当て処理のフローチャート図
【図5】本願第一の実施例におけるクライアント毎に生成される転送プロセスの処理を示すフローチャート図
【符号の説明】
1 ネットワーク上で画像を預かるサービスを行う画像サーバー
2 画像サーバーと広域ネットワークを接続する伝送路、
3 広域ネットワーク、
4 プロバイダと広域ネットワークを接続する伝送路、
5 プロバイダのサーバー、
6 プロバイダと端末を接続する伝送路、
7 端末機能を有するデジタルカメラ
【発明の属する技術分野】
本発明は、複数の装置を接続可能な通信手段を用いてデジタルカメラの画像を転送する場合におけるプロトコル及び装置構成に関するものである。
【0002】
【従来の技術】
近年インターネット上でユーザーのデジタル画像を預かり、印刷や閲覧等のサービスを利用できるサーバーが出現し、例えば特開2000−222325「ホームページ作成ならびに公開システム」ではユーザーが専用のソフトウェアを使う事なく汎用のWebブラウザによってすべてのサービスが利用可能となるシステムが紹介されている。
【0003】
上記のようなサーバーのサービスは接続経路のトラフィックやバンド巾の制約により接続時間がまちまちになるという特徴がある。一方、デジタルカメラのような小型端末は出来るだけ小さな電池搭載する事で携帯性を向上させる事ができるため、小さな電池でも安定したサービスを受けられる事が望ましい。
【0004】
【発明が解決しようとする課題】
しかしながら、小さな電池を搭載した小型端末から画像を転送する場合に接続時間が予想以上に長くなってしまった場合に小型端末側の電池残容量不足によって画像の転送を中断せざるおえなくなるという欠点がある。
【0005】
接続時間が長くなってしまう要因としては、▲1▼インターネットプロバイダの利用者の増加によるトラフィックの増加。▲2▼インターネットの利用者増加によるトラフィックの増加。▲3▼サーバーとインターネット間のバンド巾に対して利用者の増加。▲4▼サーバーの処理能力に対して利用者が増加。などが考えられる。サーバーとインターネット間のトラフィックとサーバーの能力に関しては、バンド巾の低い方の制約を受ける事となり、そのバンド巾は時間帯によらず一定であるが、インターネットプロバイダとインターネット上の利用者一人あたりのバンド巾は利用者の増加に比例して減少する。
【0006】
また、ネットワークのバンド巾を動的に計測して送信するデータ量を制限するビデオデータ配信のシステムが特開平9−271002で考案されている。
【0007】
本発明が解決しようとする課題は電池を搭載した小型端末から画像を転送する際バンド巾の低下が原因で接続時間が長くなってしまい、その結果電池不足を起こして転送に失敗する頻度を低減したシステムを構築する事にある。
【0008】
【課題を解決するための手段】
本願請求項1で示したクライアントサーバーシステムは、端末の電池残容量を管理する事によりサービスの最適化を行い、電池不足による処理の失敗頻度を低減する事を特徴とする。
【0009】
また本願請求項2で示すクライアントサーバーシステムは端末の電池残容量の少ない端末に対して伝送路のバンド巾を優先的に割り当てる事で、電池残容量の少ない端末の接続時間を短縮し、電池不足による処理の失敗頻度を低減する。
【0010】
本願請求項3で示すクライアントサーバーシステムはバンド巾制御機能の無い伝送路において、端末とサーバー間の伝送路のバンド巾計測手段を使って計測した結果を用いてバンド巾の分配を行い、バンド巾の分配に従って単位時間あたりの転送量を抑制するように動作する事によりバンド巾制御機能の無い伝送路においてもバンド巾の優先割り当てが可能となるように構成する。
【0011】
本願請求項4で示すクライアントサーバーシステムは電池残容量の少ない端末に対して優先的にCPUタイムを割り当てる事によって電池不足による処理の失敗頻度を低減する事を特徴とする。
【0012】
請求項5で示すクライアントサーバーシステムは要求された処理に必要なサービス時間とクライアント側の電池残容量での稼動時間を比較し、稼働時間が不足した場合は要求された処理を受け付けないよう構成する。
【0013】
【発明の実施の形態】
(第一の実施例)
図1は本発明第一の実施例の形態を示すものである。図1の1はネットワーク上で画像を預かるサービスを行う画像サーバー。図1の2は画像サーバーと広域ネットワークを接続する伝送路。図1の3は広域ネットワーク。図1の4はプロバイダと広域ネットワークを接続する伝送路。図1の5はプロバイダのサーバー。図1の6はプロバイダと端末を接続する伝送路。図1の7は端末機能を有するデジタルカメラを示す。
【0014】
図1の7はデジタルカメラの機能を有し、通常用途において画像を撮影する事ができる。デジタルカメラのメモリーに蓄積された画像の中から印刷あるいはWebブラウザ等で閲覧する目的で図1の1の画像サーバーへ接続して画像をアップロードする。
【0015】
図1の7のデジタルカメラから画像サーバーへ接続すると図1の1の画像サーバーは接続に応じて対応するサービスを実行するソフトウェアのインスタンスを生成する。マルチクライアントのシステムではクライアント毎のサービスを実現するインスタンスを生成するのが一般的である。
【0016】
図2はバンド巾の割り当てを行うソフトウェアの構造を示したものである。図2の1はバンド巾の割り当てを行うバンド巾マネージャ図2の2はクライアント毎に生成されるインスタンス。図2の3はクライアントまでの伝送路のバンド巾を測定するバンド巾測定モジュールのインスタンスである。
【0017】
図2の2のインスタンスはそれぞれバンド巾割り当てマネージャから割り当てられた割り当てバンド巾と図2の3のバンド巾測定によって測定されたクライアントとサーバー間のバンド巾およびクライアントのデジタルカメラの電池残容量、クライアント側が転送しようとしているデータの総容量をプロパティとして格納している。
【0018】
図2の3のバンド巾測定はクライアントからのブロック転送に要する時間を計測して逆算するもので、本実施例の中では重要ではないため詳細な説明を省略する。
【0019】
図2の1のバンド巾割り当てマネージャは画像サーバーから広域ネットワークまでの伝送路のバンド巾かサーバーの処理能力の上限によって制限されるバンド巾のどちらか低い方を総バンド巾として持つ。
【0020】
図2の1のバンド巾割り当てマネージャは総バンド巾をすべてのクライアントへ分配する。
【0021】
(バンド巾割り当て)
バンド巾割り当てマネージャがどのように総バンド巾を分配するのかを説明する。
【0022】
図3はクライアントを管理するためのクライアントインスタンスのリストを示すインスタンス図である。
【0023】
図3の1〜4のクライアントインスタンスは接続中のクライアントそれぞれの情報を持っており、リンクリストによって管理されている。リンクリストは常にクライアントの電池残容量順にソーティングされている。
【0024】
図1の1のサーバーは図1の7のデジタルカメラと接続が完了すると、図1の7のデジタルカメラに対して電池の残容量を時間で正規化した値を問い合わせる。
【0025】
以後図1の1のサーバーは定期的に図1の7のデジタルカメラの電池残容量を問い合わせ、図3のインスタンスの電池残容量プロパティを更新し、リストの順序をソーティングする。それにより図3のリストは常に電池残容量の順に並んでいる。
【0026】
図3の1〜4のクライアントインスタンスは図2の3のバンド巾測定クラスによって測定されたクライアントとサーバー間の実質バンド巾をプロパティとして持っている。このプロパティも定期的に更新される。
【0027】
図2の1のバンド巾割り当てマネージャがバンド巾を割り当てる処理を図4のフローチャートを使って説明する事とする。ステップ101でバンド巾マネージャがバンド巾割り当てを開始する。ステップ102では利用可能なバンド巾の変数Available Band Widthに総バンド巾を代入している。総バンド巾はサーバーの転送能力とサーバーと広域ネットワーク間の伝送路のどちらかバンド巾の低い方と同じ値を保持している。ステップ102ではさらにp Current Clientへクライアントインスタンスリストの先頭の項目を代入し、Remain Client Countへ総クライアント数を代入する。ステップ103ではp Current Clientがリストの最後を示しているかどうかを判断している。リストが空の場合はただちにステップ112へ分岐し、リストが空でなければステップ104へ分岐する。ステップ104ではp Current Clientの電池残容量が20分以下かどうかを判断している。電池残容量が20分以下ならステップ106へ分岐し、電池残容量が20分以上ならステップ105へ分岐する。ステップ106ではバンド巾の割り当て上限値の変数であるLimit of Band Widthへ利用可能なバンド巾の変数Avalirable Band Widthの値を代入する。ステップ105ではバンド巾の割り当て上限値の変数であるLimit of Band Widthへ利用可能なバンド巾の変数Avalirable Band Widthの値を未だ割り当ての済んでいないクライアントの数を保持している変数Remain Client Countの値で割った値を代入する。ステップ104、105、106のプログラムを要約すると電池残容量が20分以上の場合は割り当て可能なバンド巾を残りのクライアントで均等に割った配分を実際に割り当てる上限とし、電池残容量が20分以下の場合は割り当て可能なバンド巾のすべてを上限とするという事である。ステップ107ではクライアントが要求するバンド巾の一時変数であるRequest Band Widthへクライアントとサーバーまでの実行的なバンド巾の変数であるPerformance Band Widthを代入している。この値は図2の3のEstimate Performanceクラスによって計測された値であり、例えばクライアントとプロバイダの間の接続が28kのモデムなのかADSLの高速な回線なのかによって大きく異なる。28kのモデムで接続している場合はそれ以上のバンド巾を要求する必要が無いため、要求値として計測値を使用する。ステップ108では要求値であるRequest Band Widthと割り当て可能上限値であるLimit of Band Widthを比較して、Limit of Band Widthの方が大きい場合ステップ109へRequest Band WidthよりLimit of Band Widthの方が小さい場合ステップ109を実行せずにステップ110へ分岐する。ステップ109へ分岐した場合はRequest Band Widthの値をLimit of Band Widthの値でリプレスしている。ステップ108、109のプログラムを要約すると、要求値が割り当て可能上限値を超えないようにしているという事である。ステップ110では割り当て可能バンド巾の変数であるAvailable Band Widthから要求値の変数であるRequest Band Widthの値を引いて、クライアントへ割り当てたバンド巾を保持する変数であるp Current Client−>Allocated Band Widthへ要求値の変数であるRequest Band Widthを代入している。そしてステップ111で現在着目しているクライアントの変数であるp Current Clientへリスト上次のクライアントであるp Current Client−>p Nextを代入して、割り当てる残りのクライアント数を保持しているRemain Client Countの値をディクリメントしている。そしてステップ103へ分岐している。ステップ103からステップ111までのプログラムをp Current Clientがリストの最後を指し示すまで繰り返して処理する事によってすべてのクライアントへバンド巾の割り当てが行われる事になる。すべてのクライアントへバンド巾の割り当てが行われるとステップ103からステップ112へ分岐して処理が終了する。
【0028】
図4のフローチャートのプログラムによって電池残容量が20分以下のデジタルカメラは伝送路の限界までのバンド巾を分配し、電池残容量が20分以上のデジタルカメラへは残ったバンド巾を均等に分配している。
【0029】
(バンド巾制限)
上記のようにクライアントへバンド巾を分配した後、各クライアントはそのバンド巾を超えないように制限しながら転送しなければ総バンド巾を超えてしまう。
【0030】
図1の7のデジタルカメラから画像サーバーへ接続した後、デジタルカメラ側のユーザーインターフェースを操作して画像の転送をスタートするが、プロトコル上はサーバーからのプルモデルによって画像転送が行われる。デジタルカメラ側からプッシュモデルによって画像を転送するよりもプルモデルの方がバンド巾抑制をやりやすいからである。
【0031】
図5はそれぞれのクライアントから画像を受信するプロセスのフローチャートである。サーバーの中ではクライアント1つに対して1つのプロセスが生成されて独立に実行される。それぞれのプロセスは上記のクライアントリストのインスタンスの1つを参照して動作する。ステップ200でプロセスがスタートしてステップ201で転送要求の累計データ量を保持する変数であるTotal Transfer Request Sizeを0に初期化する。ステップ202では転送で使用したバンド巾の値を保持する変数Transfer Band Widthの算出を行っている。Transfer Band Widthは転送要求の累計データ量を経過時間で割った数字として計算している。したがって、経過時間が増えるとTransfer Band Widthは減るが転送要求の累計であるTotal Transfer Request Sizeが0なので、時間に関係なく最初は0が代入される事になる。その後ステップ203で使用したバンド巾と配分されているバンド巾を比較し、配分されているバンド巾の方が大きければステップ204へ配分されているより使用したバンド巾の方が大きければステップ202へ分岐する。ステップ202とステップ203を繰り返し実行する事で、時間の経過によってTransfer Band Widthが減少するのでいずれはステップ204へ分岐する事になる。ステップ204ではデジタルカメラ側に対してブロック転送要求を送信し、その転送要求に応える受信用のスレッドを生成している。転送要求ブロックの大きさは1枚の画像のように大きな単位ではなく数キロバイトから数十キロバイト程度の小さな単位で行う。ステップ205では転送要求の累計を保持するTotal Transfer Request Sizeに対してステップ204で送信した転送要求のサイズを加算する。ステップ206ではデジタルカメラ側の操作で転送を指示したデータのすべての転送が終了したらステップ207へ、まだ転送すべきデータがある場合はステップ202へ分岐する。ステップ202からステップ206は転送するデータが無くなるまで繰り返される。またステップ204では転送要求を送信した後で受信待ちになる替わりに受信スレッドを生成して処理を非同期に行っている。従ってステップ203の割り当てバンド巾に対して転送に使用するバンド巾が超えるまでの間ステップ202からステップ206の間を高速に繰り返し実行が可能となる。また、ステップ204で送信する転送要求のブロックサイズも数キロバイトから数十キロバイトと小さいのでステップ203でのオーバーランも非常に微小な程度に抑えられる。ステップ202からステップ206の間を高速に実行する事で短期間の間にたくさんの転送要求が送信される事になるが、その結果としてレスポンス待ちの無駄な時間が生じない為伝送路を有効に利用する事が出来る。ステップ202から203の繰り返しは時間経過によって再びTransfer Band Widthの値が減少するまで行われ、一定期間後にまたステップ206までのプログラムが実行される。このしくみによってバンド巾を抑制する事が出来る。すべてのデータの転送が終了するステップ206からステップ207へ分岐し転送プロセスが終了する。
【0032】
(失敗防止)
上記のようにバンド巾を割り当てて、全体のバンド巾を制限する事で電池残容量の少ない端末での失敗は軽減できるが、予め失敗の予測をする事によって無駄な接続料金の発生を防ぐ事が出来る。例えば図3の2のクライアントBには28kbpsのバンド巾が割り当てられている。それに対して15分の電池残容量しか無い。28kbpsだと1分で約169kByteの転送が可能である。従って、2,531kbyte以上の転送要求が失敗する事は予測できる。本願の第一の実施例ではこのような場合の転送要求に対して電池残量不足エラーという通知を端末へ送る。端末側のデジタルカメラは電池不足のため転送できないという趣旨のメッセージをユーザーに知らせるように動作する。これによって電池残量の不足による転送失敗を未然に防ぐ事ができ無駄な接続料金も節約できるだけでなく、無駄な転送によるバンド巾の占有も防げる。
【0033】
(第二実施例)
サーバーで行うサービスとして画像の加工や利用者への情報提供サービスを行う場合、サーバー側のデータ検索や画像処理などの時間がかかる処理によって接続時間が長くなる事がある。サーバーはこのような処理をそれぞれのクライアント用に生成したプロセスによって行うが、プロセスはオペレーティングシステムによってスケジュールされており、CPUタイムを優先順位によって割り当てている。サーバーが電池残容量の少ないクライアントに対してCPUタイムを優先的に割り当てられるようにプロセス生成を行う事によって電池残容量が少ない端末の処理が失敗に終わる可能性を下げる事が出来る。本願第二実施例ではサーバーが電池残容量の少ないクライアントに対してCPUタイムを優先的に割り当てられるようにプロセス生成を行うものである。
【0034】
(その他の実施例)
第一の実施例では、広域ネットワークを含む伝送路で接続していたために、実行バンド巾を計測する手段を用いていたが、ローカルにイーサーネット、FDDI、USBなどの有限のバンド巾で複数の端末を接続した場合、バンド巾計測を行わない事を除けば第一の実施例同様の処理を適用できる。
【0035】
ATMなどのバンド巾の管理機能を有する伝送路や、USBのアイソクロナスモードなどのバンド巾制御機能を有する伝送路を用いた場合はそれらの機能を積極的に利用して電池残量の少ない端末へバンド巾を割り当てる事も可能である。
【0036】
【発明の効果】
請求項1及び請求項2に示した発明によれば電池残容量の少ない端末に対して優先的にバンド巾が割り当てられる事によって電池不足による処理の中断失敗の頻度を下げる事が出来る。また、請求項3に示した発明によってバンド巾制御機能を持たない広域ネットワークを含む伝送路においても、単位時間あたりの総転送量を抑制する事で電池残容量の少ない端末に優先的に伝送路を配分する事が可能となる。また請求項4に示す発明によって電池残容量の少ない端末に対して優先的にサーバー側のCPUタイムを割り当てられ電池不足で処理が中断失敗する頻度を下げる事ができる。
【0037】
請求項5の発明によって電池残容量で処理を完了できない事を予測する事ができ、電池不足の処理が中断失敗する頻度を下げる事ができる。
【図面の簡単な説明】
【図1】本願第一の実施例の接続状態を示す図
【図2】本願第一の実施例におけるバンド巾マネージャのソフトウェア構造を示すクラス図
【図3】本願第一の実施例におけるクライアントインスタンスリストのソフトウェア構造を示すインスタンス図
【図4】本願第一の実施例におけるバンド巾マネージャのバンド巾割り当て処理のフローチャート図
【図5】本願第一の実施例におけるクライアント毎に生成される転送プロセスの処理を示すフローチャート図
【符号の説明】
1 ネットワーク上で画像を預かるサービスを行う画像サーバー
2 画像サーバーと広域ネットワークを接続する伝送路、
3 広域ネットワーク、
4 プロバイダと広域ネットワークを接続する伝送路、
5 プロバイダのサーバー、
6 プロバイダと端末を接続する伝送路、
7 端末機能を有するデジタルカメラ
Claims (5)
- 電池によって動作する端末装置と、複数の端末へサービスを提供するサーバー装置を有限のバンド巾の伝送路によって接続する場合において、端末側の電池残容量の情報を動的にサーバーで管理する事でサービスの最適化を行う事を特徴とするクライアントサーバーシステム。
- 電池残容量の少ない端末に対して優先的に伝送路のバンド巾を割り当てる事を特徴とする上記請求項1のクライアントサーバーシステム。
- 端末とサーバー間の伝送路のバンド巾を計測する手段を有し、上記端末とサーバー間の伝送路のバンド巾計測手段で計測した結果を用いてバンド巾の分配を行い、バンド巾の分配に従って単位時間あたりの転送量を抑制する事によって、バンド巾制御機能の無い伝送路においても、バンド巾の優先的割り付けを可能とした事を特徴とする上記請求項2のクライアントサーバーシステム。
- 電池残容量の少ない端末に対して優先的にCPUタイムを割り当てる事を特徴とする上記請求項1のクライアントサーバーシステム。
- 端末側で要求した処理が端末側電池残容量で稼動可能な時間内に完了するかどうかを予測する手段を有し、上記予測手段の結果、処理が電池残容量で稼動可能な時間内に完了しない場合には処理要求を受け付けない事を特徴とする上記請求項1のクライアントサーバーシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003115709A JP2004326156A (ja) | 2003-04-21 | 2003-04-21 | クライアントサーバーシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003115709A JP2004326156A (ja) | 2003-04-21 | 2003-04-21 | クライアントサーバーシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004326156A true JP2004326156A (ja) | 2004-11-18 |
Family
ID=33496181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003115709A Withdrawn JP2004326156A (ja) | 2003-04-21 | 2003-04-21 | クライアントサーバーシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004326156A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7631215B2 (en) | 2004-12-15 | 2009-12-08 | Casio Hitachi Mobile Communications Co., Ltd. | Personal digital assistant and data recovery method |
-
2003
- 2003-04-21 JP JP2003115709A patent/JP2004326156A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7631215B2 (en) | 2004-12-15 | 2009-12-08 | Casio Hitachi Mobile Communications Co., Ltd. | Personal digital assistant and data recovery method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111629028B (zh) | 面向分布式多云存储的数据传输调度系统 | |
USRE43144E1 (en) | System for predicting and managing network performance by managing and monitoring resource utilization and connection of network | |
Raman et al. | A model, analysis, and protocol framework for soft state-based communication | |
CA2843231C (en) | Deferred transfer of content to optimize bandwidth usage | |
US6961341B1 (en) | Adaptive bandwidth throttling for network services | |
US20050055694A1 (en) | Dynamic load balancing resource allocation | |
US20100205292A1 (en) | System and method for network optimization through predictive downloading | |
US20030236745A1 (en) | Systems and methods for billing in information management environments | |
US20020049608A1 (en) | Systems and methods for providing differentiated business services in information management environments | |
US20020049841A1 (en) | Systems and methods for providing differentiated service in information management environments | |
US20020095400A1 (en) | Systems and methods for managing differentiated service in information management environments | |
US20020174227A1 (en) | Systems and methods for prioritization in information management environments | |
US20020065864A1 (en) | Systems and method for resource tracking in information management environments | |
US20060187833A1 (en) | Systems and methods for upload bandwidth management | |
JP2003536287A (ja) | 帯域幅予約システムのサービスのグレードおよび公平化方法 | |
JP2001043199A (ja) | 異種サーバにまたがるサービス指向資源管理 | |
Ramakrishnan et al. | Operating system support for a video-on-demand file service | |
WO2006085843A1 (en) | System architecture and method for scheduled downloading services | |
US20100274901A1 (en) | Network accelerator for controlled long delay links | |
CN111614473A (zh) | 最高带宽可用idc确定方法、装置、系统及电子设备 | |
US20030084140A1 (en) | Data relay method | |
WO2004095160A2 (en) | On the fly offering and allocation of bandwidth on demand | |
JP4887999B2 (ja) | スーパースケジュール装置、処理実行システム、処理依頼方法、およびスーパースケジューラプログラム | |
WO2002039693A2 (en) | System and method for providing differentiated business services in information management | |
Fu et al. | Service level agreement based distributed resource allocation for streaming hosting systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060704 |