しかしながら、複数の電子装置から構成される通信システムでは、1つ以上の電子装置から同一システムにある他の電子装置全体に対する通信が遅延したり、あるいは、妨げられたりして非効率となるという問題が生じる。例えば、これらの電子装置を含む通信システムは、ある条件下では、ある装置から多数の他の装置にオブジェクト(例えば、ファイル、文書、画像、プログラムなど)を伝送させることが困難となる。特許文献2〜5は、ある装置から他の装置にオブジェクトを効率的に伝送させることに関しては開示されていない。
また、特許文献1は、マルチキャスト伝送によるソース(オブジェクト)の伝送について開示されており、マルチキャスト伝送を行える装置にしか適用できない。
従って、本発明は、上記の問題点に鑑みてなされたものであり、その目的は、より効率的な通信技術を提供するさらなるシステムおよび方法によって、電子装置間における通信の効率を向上させることを実現することにある。
本発明に係る電子装置の制御方法は、サーバ電子装置からオブジェクトを受信するステップと、第1クライアント電子装置を含む転送待ち行列を、サーバ電子装置から受信するステップと、第1クライアント電子装置にこのオブジェクトを伝送するステップとを含んでいることを特徴としている。
また、本発明に係る電子装置の制御方法は、上記方法において、上記転送待ち行列が、複数のクライアント電子装置を含んでおり、この複数のクライアント電子装置の各クライアント電子装置には序列が付けられており、第1クライアント電子存置はこの序列の最高位に位置付けられていてもよい。
また、本発明に係る電子装置の制御方法は、上記方法において、上記序列が、オブジェクトの伝送を完了させるために必要と推定される期間に基づかれていることが好ましい。
また、本発明に係る電子装置の制御方法は、上記方法において、上記転送待ち行列が、複数のクライアント電子装置を含んでおり、転送待ち行列と上記サーバ電子装置に保持されているサーバ転送待ち行列との間で、複数のクライアント電子装置を分配することについて、上記サーバ電子装置と通信するステップをさらに含んでいることを特徴とする。
また、本発明に係る電子装置の制御方法では、複数のクライアント電子装置が、上記電子装置またはサーバ電子装置のどちらがオブジェクトを最も効率的に伝送可能であるかに基づいて、上記転送待ち行列と上記サーバ転送待ち行列との間で分配される。
また、本発明に係る電子装置の制御方法は、上記転送待ち行列を第1クライアント電子装置に伝送するステップをさらに含むことを特徴とする。
また、本発明に係る電子装置の制御方法は、上記オブジェクトが第1クライアント電子装置に伝送された後でかつ、転送待ち行列が第1クライアント電子装置に伝送される前に、上記第1クライアント電子装置を当該転送待ち行列から削除するステップをさらに含むことを特徴としている。
また、本発明に係る電子装置の制御方法は、上記オブジェクトをサーバ電子装置から検索するステップと、オブジェクトをサーバ電子装置において見つけ出すステップと、オブジェクトの取り出し要求を、サーバ電子装置に対して行うステップとをさらに含むことを特徴としている。
また、本発明に係る電子装置の制御方法は、オブジェクトの取り出し要求を第2クライアント電子装置から受信するステップと、上記第2クライアント電子装置を転送待ち行列に加えるステップと、オブジェクトを第2クライアント電子装置に対して伝送するステップとをさらに含むことを特徴としている。
また、本発明に係る電子装置の制御方法では、上記第2クライアント電子装置が、転送待ち行列において第1クライアント電子装置よりも上位に序列されている。そして、この電子装置の制御方法は、第1クライアント電子装置に対するオブジェクトの伝送を停止するステップと、第2クライアント電子装置に対してオブジェクトが伝送された後、第1クライアント電子装置へのオブジェクトの伝送を再開するステップとをさらに含むことを特徴としている。
上記オブジェクトを第1クライアント電子装置に対して伝送するステップには、第1クライアント電子装置に対するオブジェクトの伝送を終了するステップを含んでいることが好ましい。
また、本発明に係る電子装置の制御方法において、自装置が、単一の通信インターフェースを備えていることを特徴としている。
また、本発明に係る電子装置の制御方法では、自装置がオブジェクトを保持しており、上記オブジェクトを、転送待ち行列に関連付けるステップと、オブジェクトの取り出し要求を、複数のクライアント電子装置から受信するステップと、複数のクライアント電子装置を、転送待ち行列に加えるステップと、オブジェクトおよび転送待ち行列を、複数のクライアント電子装置のうちの第1クライアント電子装置に伝送するステップとを含んでいることを特徴としている。
また、上記方法において上記複数のクライアント電子装置の各クライアント電子装置には序列が付けられており、上記第1クライアント電子装置が、この序列の最高位に位置付けられている。
また、上記序列が、オブジェクトの伝送を完了するために必要と推定される期間に基づいている。
また、本発明に係る電子装置の制御方法は、自装置が保持している転送待ち行列と上記第1クライアント電子装置が保持している転送待ち行列との間で複数のクライアント電子装置を分配することについて、第1クライアント電子装置と通信するステップをさらに含むことを特徴としている。
なお、自装置または上記第1クライアント電子装置のどちらがオブジェクトを最も効率的に伝送できるかに基づいて、電子装置が保持している転送待ち行列と第1クライアント電子装置が保持している転送待ち行列との間で上記複数のクライアント電子装置を分配することが好ましい。
さらにまた、本発明に係る電子装置の制御方法は、上記オブジェクトが第1クライアント電子装置に伝送された後でかつ、転送待ち行列が第1クライアント電子装置に伝送される前に、上記第1クライアント電子装置を当該転送待ち行列から削除するステップをさらに含むことを特徴としている。
また、本発明に係る電子装置の制御方法において、自装置が、単一の通信インターフェースを備えていることを特徴としている。
本発明に係る電子装置は、プロセッサと、当該プロセッサと電子通信しているメモリとを備えており、上記メモリには、オブジェクトをサーバ電子装置から受信するステップと、第1クライアント電子装置を含む転送待ち行列をサーバ電子装置から受信するステップと、第1クライアント電子装置にオブジェクトを伝送するステップとを含む方法を実行する為の指示がプログラムされていることを特徴としている。
また、上記転送待ち行列が、複数のクライアント電子装置を含んでおり、この複数のクライアント電子装置のうちの各クライアント電子装置には序列が付けられており、第1クライアント電子装置は、この序列の最高位に位置付けられていてもよい。
また、上記序列が、オブジェクトの伝送を完了する為に必要と推定される期間に基づいていることが好ましい。
また、本発明に係る電子装置は、上記転送待ち行列には、複数のクライアント電子装置が含まれており、上記方法が、複数のクライアント電子装置を、上記転送待ち行列とサーバ電子装置が保持しているサーバ転送待ち行列との間で分配することについて、サーバ電子装置と通信するステップをさらに含むことを特徴としている。
また、自装置または上記サーバ電子装置のどちらがオブジェクトを最も効率的に伝送可能であるかに基づいて、上記転送待ち行列と上記サーバ転送待ち行列との間で上記複数のクライアント電子装置を分配することが好ましい。
また、本発明に係る電子装置は、上記方法において、上記転送待ち行列を、第1クライアント電子装置に伝送するステップをさらに含んでいることを特徴としている。
さらにまた、本発明にかかる電子装置は、上記方法において、オブジェクトが第1クライアント電子装置に伝送された後でかつ、転送待ち行列が第1クライアント電子装置に伝送される前に、上記第1クライアント電子装置を当該転送待ち行列から削除するステップをさらに含んでいることを特徴とする。
また、本発明に係る電子装置は、上記方法において、オブジェクトをサーバ電子装置から検索するステップと、オブジェクトをサーバ電子装置において見つけ出すステップと、オブジェクトの取り出し要求を、サーバ電子装置に対して行うステップをさらに含んでいることを特徴としている。
また、本発明に係る電子装置は、上記方法において、オブジェクトの取り出し要求を、第2クライアント電子装置から受信するステップと、第2クライアント電子装置を、転送待ち行列に加えるステップと、オブジェクトを、第2クライアント電子装置に伝送するステップとをさらに含んでいることを特徴としている。
また、本発明に係る電子装置は、上記第2クライアント電子装置が、転送待ち行列において第1クライアント電子装置よりも上位に序列されており、上記方法において、第1クライアント電子装置に対するオブジェクトの伝送を停止するステップと、第2クライアント電子装置に対してオブジェクトが伝送された後に、第1クライアント電子装置へのオブジェクトの伝送を再開するステップとをさらに含んでいることを特徴としている。
上記オブジェクトを上記第1クライアント電子装置に伝送するステップには、当該第1クライアント電子装置に対するオブジェクトの伝送を終了するステップを含んでいることを特徴とする。
また、本発明に係る電子装置は、単一の通信インターフェースをさらに備えていることを特徴としている。
本発明に係る電子装置は、プロセッサと、上記プロセッサと電子通信しているメモリとを備えており、オブジェクトを、転送待ち行列と関連付けるステップと、オブジェクトの取り出し要求を、複数のクライアント電子装置から受信するステップと、複数のクライアント電子装置を、上記転送待ち行列に加えるステップと、上記オブジェクトおよび上記転送待ち行列を、複数のクライアント電子装置のうちの第1クライアント電子装置に伝送するステップとを含む方法を実行する為の指示が上記メモリにプログラムされていることを特徴とする。
また、上記電子装置において、上記複数のクライアント電子装置の各クライアント電子装置には序列が付けられており、上記第1クライアント電子装置がこの序列の最高位に位置付けられていてもよい。
また、上記電子装置において、上記序列が、オブジェクトの伝送を完了する為に必要と推定される期間に基づいていてもよい。
また、本発明に係る電子装置は、上記方法において、自装置が保持している転送待ち行列と第1クライアント電子装置が保持している転送待ち行列との間で複数のクライアント電子装置を分配することについて、第1クライアント通信装置と通信するステップをさらに含むことを特徴とする。
また、上記電子装置において、自装置または第1クライアント電子装置のどちらがオブジェクトを最も効率的に伝送できるかに基づいて、自装置が保持している転送待ち行列と第1クライアント電子装置が保持している転送待ち行列との間で上記複数のクライアント電子装置を分配するように構成されていてもよい。
また、本発明に係る電子装置は、上記方法において、ブジェクトが第1クライアント電子装置に対して伝送された後でかつ、転送待ち行列が第1クライアント電子装置に対して伝送される前に、上記第1クライアント電子装置を当該転送待ち行列から削除するステップをさらに含んでいることを特徴としている。
また、本発明に係る電子装置は、単一の通信インターフェースをさらに備えていることを特徴としている。
また、本発明に係る電子装置制御プログラムは、上記電子装置を制御するためのプログラムであって、プロセッサを上記各ステップとして機能させるためのプログラムであることを特徴としている。
また、本発明に係る記録媒体は、電子装置制御プログラムが記録されたコンピュータの読み取り可能な記録媒体である。
本発明に係る電子装置の制御方法は、当該電子装置がサーバ電子装置からオブジェクトを受信するステップと、第1クライアント電子装置を含む転送待ち行列をサーバ電子装置から受信ステップと、第1クライアント電子装置にこのオブジェクトを伝送するステップとを含んでいる。
また、本発明に係る電子装置は、プロセッサとメモリを備えており、メモリには上記した電子装置の制御方法を実行するための指示がプログラムされている。
このため、本発明にかかる電子装置およびこの電子装置の制御方法では、サーバ電子装置から受信したオブジェクトを、転送待ち行列を参照して第1クライアント電子装置に確実に送信することができるという効果を奏する。
なお、このサーバ電子装置とは、自装置内にオブジェクトを保持しており、自装置以外の電子装置にこのオブジェクトを伝送させることができる電子装置である。また、クライアント電子装置とは、上記サーバ電子装置からオブジェクトを受信可能な電子装置である。そして、第1のクライアント電子装置とは、クライアント電子装置のうち、当該電子装置がオブジェクトを伝送すべき所定の電子装置である。なお、オブジェクトとは、例えば、ファイル、文書、画像、プログラムなど各電子装置の間で通信網を介して送受信可能なデータである。
また、転送待ち行列とは、オブジェクトの配信先であるクライアント電子装置に関する情報が記録されているものである。
すなわち、電子装置は、サーバ電子装置からオブジェクトと転送待ち行列とを受信することによって、クライアント電子装置に対するサーバ電子装置になる。そして、この電子装置は、転送待ち行列を参照することで、サーバ電子装置から受信したオブジェクトをどのクライアント装置に転送すべきか知ることができる。
したがって、この電子装置は、受信したオブジェクトをさらに受信した転送待ち行列の情報に基づいて、次のオブジェクトの伝送相手である第1クライアント電子装置を指定して送信することができる。
本発明に係る電子装置およびこの電子装置の制御方法では、上記転送待ち行列が、複数のクライアント電子装置を含んでおり、この複数のクライアント電子装置の各クライアント電子装置には序列が付けられており、第1クライアント電子存置はこの序列の最高位に位置付けられている。
このため、電子装置は、複数のクライアント装置のうち第1クライアント装置を優先してオブジェクトを伝送することができるという効果を奏する。
すなわち、転送待ち行列に複数のクライアント電子装置に関する情報が存在する場合、この複数のクライアント電子装置の情報それぞれには序列がつけられている。このため、各クライアント電子装置の情報は、この序列に従って転送待ち行列に格納されていくことになる。そして、電子装置はクライアント電子装置の情報が格納されている順番に、自装置に保持するオブジェクトを伝送する。
ところで、第1クライアント電子装置は、この序列において最高位に位置付けられているため、電子装置は、複数のクライアント電子装置の中で最も優先的にオブジェクトを第1クライアント装置に送信する。
したがって、電子装置は、転送待ち行列において複数のクライアント電子装置の情報が含まれている場合であっても、第1クライアント電子装置を優先させて、オブジェクトを送信することができる。
本発明に係る電子装置およびこの電子装置の制御方法では、転送待ち行列に記録されているクライアント電子装置の序列を、オブジェクトを伝送するために必要となる期間に基づいて決定している。
このため、この電子装置は、例えばオブジェクトの伝送期間が短いクライアント電子装置から順に転送するなど、転送にかかる時間を考慮に入れてオブジェクトをクライアント電子装置に対して伝送することができるという効果を奏する。
本発明に係る電子装置およびこの電子装置の制御方法では、上記転送待ち行列が、複数のクライアント電子装置を含んでおり、上記方法において、転送待ち行列と上記サーバ電子装置に保持されているサーバ転送待ち行列との間で、複数のクライアント電子装置を分配することについて、上記サーバ電子装置と通信するステップをさらに含んでいる。
このため、サーバ電子装置と当該電子装置とは、転送待ち行列に格納されているクライアント電子装置をそれぞれで分配することができる。
したがって、電子装置およびサーバ電子装置それぞれが、オブジェクトを配信すべきクライアント電子装置を分配して減らすことができるため、より効率的にオブジェクトをクライアント電子装置に対して伝送することができるという効果を奏する。
本発明に係る電子装置およびこの電子装置の制御方法では、複数のクライアント電子装置は、自装置またはサーバ電子装置のどちらがオブジェクトを最も効率的に伝送可能であるかに基づいて、上記転送待ち行列と上記サーバ転送待ち行列との間で分配される。
このため、本発明に係る電子装置とサーバ電子装置との間で、各装置がクライアント電子装置に対してオブジェクトをより効率的に伝送可能とする能力に応じて、双方の転送待ち行列に格納されているクライアント電子装置の情報を分配することができる。すなわち、例えば、オブジェクトの伝送能力が低い方にオブジェクトを送信する必要があるクライアント電子装置の数が多くなったりすることを防ぐことができる。
したがって、本発明に係る電子装置は、効率的にオブジェクトをクライアント電子装置に送信することができるという効果を奏する。
本発明に係る電子装置およびこの電子装置の制御方法では、上記転送待ち行列を第1クライアント電子装置に伝送するステップをさらに含んでいる。
このため、電子装置は、オブジェクトだけでなく、転送待ち行列も第1クライアント電子装置に対して伝送するため、この第1クライアント電子装置もその他のクライアント電子装置に対するサーバ電子装置となることができる。
したがって、サーバ電子装置および電子装置だけではなく、オブジェクトと転送待ち行列を受信した第1クライアント電子装置によってもオブジェクトを他のクライアント電子装置に対して送信することができるため、オブジェクトを効率的に配信することができるという効果を奏する。
本発明に係る電子装置およびこの電子装置の制御方法では、上記オブジェクトが第1クライアント電子装置に伝送された後でかつ、転送待ち行列が第1クライアント電子装置に伝送される前に、上記第1クライアント電子装置を当該転送待ち行列から削除するステップをさらに含んでいる。
このため、転送待ち行列が第1クライアント電子装置に伝送された時点では、この転送待ち行列には第1クライアント装置に関する情報が削除されている。
したがって、一度オブジェクトが送信された第1クライアント装置に再度同じオブジェクトを送ることを防ぐことができる。すなわち、オブジェクトが二回以上同じクライアント電子装置に送信されることがないため効率的にオブジェクトを伝送することができるという効果を奏する。
本発明に係る電子装置およびこの電子装置の制御方法では、上記方法において、さらに上記オブジェクトをサーバ電子装置から検索するステップと、オブジェクトをサーバ電子装置において見つけ出すステップと、オブジェクトの取り出し要求を、サーバ電子装置に対して行うステップとを含んでいる。
このため、本発明に係る電子装置は、所望するオブジェクトをサーバ電子装置から検索し、見つけ出すことができる。さらにこの電子装置は、この見つけ出したオブジェクトをサーバ電子装置から取り出して、自装置に対して送信するように要求することができる。
したがって、本発明に係る電子装置では、当該電子装置が所望する特定のオブジェクトのみだけを要求するため、所望しない余分なオブジェクトまでもが伝送されることがないため効率的にオブジェクトが伝送されるという効果を奏する。
本発明にかかる電子装置およびこの電子装置の制御方法では、上記方法において、さらにオブジェクトの取り出し要求を第2クライアント電子装置から受信するステップと、上記第2クライアント電子装置を転送待ち行列に加えるステップと、オブジェクトを第2クライアント電子装置に対して伝送するステップとを含んでいる。
このため、本発明に係る電子装置は、第1クライアント装置以外の第2クライアント装置からの取り出し要求を受けることができる。また、電子装置はこの要求に応じて、当該第2クライアント電子装置に関する情報を転送待ち行列に加え、この転送待ち行列を参照して所定の順番に従ってオブジェクトを第2クライアント装置に伝送することができる。
したがって、本発明に係る電子装置は、複数のクライアント電子装置に対して転送待ち行列を参照して、所定の順番で適切にオブジェクトを伝送することができるという効果を奏する。
本発明に係る電子装置およびこの電子装置の制御方法では、上記第2クライアント電子装置が、転送待ち行列において第1クライアント電子装置よりも上位に序列されており、上記方法においてさらに、第1クライアント電子装置に対するオブジェクトの伝送を停止するステップと、第2クライアント電子装置に対してオブジェクトが伝送された後、第1クライアント電子装置へのオブジェクトの伝送を再開するステップとを含んでいる。
ここで、転送待ち行列において第1クライアント電子装置よりも第2クライアント電子装置の方が上位に序列されているため、第1クライアント電子装置よりも第2クライアント電子装置の方が優先的にオブジェクトが伝送されるクライアント電子装置ということになる。
また、本発明に係る電子装置は、第1クライアント電子装置に対するオブジェクトの伝送を停止し、第2クライアント電子装置に対してオブジェクトが伝送された後、第1クライアント電子装置へのオブジェクトの伝送を再開することができる構成である。
このため、第1クライアント電子装置に対して既にオブジェクトの伝送が行われている最中であっても、第1クライアント電子装置よりもオブジェクトの伝送の優先度が高い第2クライアント電子装置に対して先に伝送することができる。
したがって、本発明に係る電子装置は、転送待ち行列に格納されているクライアント情報の序列に応じて効率的にオブジェクトを伝送することができるという効果を奏する。
本発明に係る電子装置およびこの電子装置の制御方法では、上記オブジェクトを第1クライアント電子装置に対して伝送するステップには、第1クライアント電子装置に対するオブジェクトの伝送を終了するステップを含んでいる。
例えば、本発明に係る電子装置が第1クライアント電子装置に対してオブジェクトの伝送を開始する際に、第1クライアント装置に対して他のサーバ電子装置からも同じオブジェクトが伝送されている最中である場合がある。
なお、このような場合、本発明に係る電子装置は、第1クライアント電子装置に対するオブジェクトの伝送を停止することができるため、第1クライアント電子装置に対して同じオブジェクトを電子装置とサーバ電子装置とがかち合って伝送させることを防ぐことができる。
本発明に係る電子装置およびこの電子装置の制御方法は、自装置が、単一の通信インターフェースを備えている。
このため、電子装置は、例えば複数の通信インターフェースを備える等複雑な構成の通信装置を備えていなくても、オブジェクトを効率的にサーバ電子装置から受信し、クライアント電子装置に伝送させることができるという効果を奏する。
本発明に係る電子装置の制御方法は、自装置に保持しているオブジェクトを転送待ち行列に関連付けるステップと、オブジェクトの取り出し要求を複数のクライアント電子装置から受信するステップと、複数のクライアント電子装置を転送待ち行列に加えるステップと、オブジェクトおよび転送待ち行列を複数のクライアント電子装置のうちの第1クライアント電子装置に伝送するステップとを含んでいる。
また、本発明に係る電子装置はプロセッサと、このプロセッサと電子通信しているメモリとを備えており、上記電子装置の制御方法を実行するための指示が上記メモリにプログラムされている。
すなわち、本発明に係る電子装置およびこの電子装置の制御方法では、オブジェクトとこのオブジェクトに関連付けた転送待ち行列を備えているため、サーバ電子装置からオブジェクトおよび第1クライアント装置を含む転送待ち行列を受信しなくても、クライアント装置に対するサーバ電子装置になることができる。また、本発明に係る電子装置は、第1クライアント電子装置に対して、自装置にオブジェクトの取り出し要求を行った他のクライアント電子装置の情報と自装置が保持するオブジェクトとを伝送することができる。すなわち、第1クライアント装置も、本発明に係る電子装置と同様に、他のクライアント装置に対するサーバ電子装置になることができる。
このため、本発明に係る電子装置は、自装置に対してオブジェクトの取り出しを要求する他のクライアント電子装置に対して、第1クライアント電子装置からもオブジェクトを伝送させることができる。
したがって、電子装置は、クライアント装置からオブジェクトの取り出し要求を受けた場合、第1クライアント電子装置からもこのクライアント電子装置に対してオブジェクトを伝送させることができるため、効率的にオブジェクトをクライアント電子装置に送信することができるという効果を奏する。
本発明に係る電子装置およびこの電子装置の制御方法では、上記複数のクライアント電子装置の各クライアント電子装置には序列が付けられており、上記第1クライアント電子装置がこの序列の最高位に位置付けられている。なお、この序列は、オブジェクトを伝送させるクライアント電子装置の優先順位を示すものである。
このため、電子装置は、転送待ち行列を参照して、当該転送待ち行列において最高位に位置付けられている第1クライアント装置に対して、オブジェクトおよび転送待ち行列を伝送させることができる。
したがって、この電子装置は、転送待ち行列におけるクライアント電子装置の序列に応じて、オブジェクトを伝送することができるという効果を奏する。
本発明に係る電子装置およびこの電子装置の制御方法では、転送待ち行列に記録されているクライアント電子装置の序列を、オブジェクトを伝送するために必要となる期間に基づいて決定している。
ここで、第1クライアント装置は、序列において最高位に位置しているため、電子装置から第1クライアント装置に対して必要と推定されるオブジェクトの伝送を完了するまでの期間が他のクライアント装置の中で最も短いまたは最も長いものとなる。
したがって、この電子装置は、例えばオブジェクトの伝送期間が短いクライアント電子装置から順に転送するなど、転送にかかる時間を考慮に入れてオブジェクトを第1クライアント電子装置に対して伝送することができるという効果を奏する。
本発明に係る電子装置およびこの電子装置の制御方法では、上記転送待ち行列が、複数のクライアント電子装置を含んでおり、上記方法において、転送待ち行列と上記サーバ電子装置に保持されているサーバ転送待ち行列との間で、複数のクライアント電子装置を分配することについて、上記サーバ電子装置と通信するステップをさらに含んでいる。
このため、サーバ電子装置と電子装置とは、転送待ち行列に格納されているクライアント電子装置をそれぞれで分配することができる。
したがって、本発明にかかる電子装置およびサーバ電子装置それぞれが、オブジェクトを配信すべきクライアント電子装置を分配して減らすことができるため、より効率的にオブジェクトをクライアント電子装置に対して伝送することができるという効果を奏する。
本発明に係る電子装置およびこの電子装置の制御方法では、複数のクライアント電子装置は、自装置または上記第1クライアント電子装置のどちらがオブジェクトを最も効率的に伝送可能であるかに基づいて、自装置が保持している転送待ち行列と上記第1クライアント電子装置が保持している転送待ち行列との間で分配される。
このため、本発明に係る電子装置と第1クライアント電子装置との間で、各装置がオブジェクトをその他のクライアント電子装置に対して伝送させることが可能な能力に応じて、双方の転送待ち行列に格納されているその他のクライアント電子装置の情報を分配することができる。すなわち、例えば、オブジェクトの伝送能力が低い方にオブジェクトを送信する必要があるその他のクライアント電子装置の数が多くなったりすることを防ぐことができる。
したがって、本発明に係る電子装置は、効率的にオブジェクトをその他のクライアント電子装置に送信することができるという効果を奏する。
本発明に係る電子装置およびこの電子装置の制御方法では、上記オブジェクトが第1クライアント電子装置に伝送された後でかつ、転送待ち行列が第1クライアント電子装置に伝送される前に、上記第1クライアント電子装置を当該転送待ち行列から削除するステップをさらに含んでいる。
このため、転送待ち行列が第1クライアント電子装置に伝送された時点では、この転送待ち行列には第1クライアント装置に関する情報が削除されている。
したがって、一度オブジェクトが送信された第1クライアント装置に再度同じオブジェクトを送ることを防ぐことができる。すなわち、オブジェクトが二回以上同じクライアント電子装置に送信されることがないため効率的にオブジェクトを伝送することができるという効果を奏する。
本発明の一実施形態について図1ないし図21に基づいて説明すると以下の通りである。なお、ここで、図面にて説明および記載されているような実施の形態にかかる部材は、広範囲の様々な構成において配置され、設計されるものである。従って、これらの図面にて示されるような、本発明のシステムおよび方法に関する実施形態の以下のより詳細な説明は、特許請求の範囲のように本発明の範囲を制限するものではなく、単に本発明の代表的な実施形態を示すものである。
また、本発明は、添付の図を参照することによって、詳細な説明および添付の特許請求の範囲がより明確になる。ただし、これら図面は、単に典型的な実施形態を示しているものであり、本発明の範囲を制限しないものである。そして、この実施形態について、これら図面を用いてさらに具体的に詳細に説明する。
図1は、通信システム100を示す図であり、この通信システム100では、ここで記載されるいくつかの実施例が実行される。また、このシステム100は、複数の電子装置102から構成されている。この電子装置102のいくつかの例としては、コンピュータ、自動販売機、電話機、ドアロック、温度感知器、駆動機、スイッチ、照明、プリンタ、ファクシミリ装置、冷蔵庫、健康管理装置(ヘルスモニタ)、エレベーターおよび/またはエスカレーター、複写機、スキャナ、製造装置、工業製品、コンピュータ設備機器および周辺機器、セキュリティシステム、監視装置、サーモスタットなどが挙げられる。
図1に示される例では、各装置102が、システム100において他の装置102それぞれと通信するための通信チャネル104を保持している。そして、各通信チャネル104は、個々に確立され、システム100における他の通信チャネル104と著しく干渉し合うことはない。しかしながら、各装置102は、単一の通信インターフェース106のみを備えているため、各装置102が一度に通信できる他の装置102は、1つだけとなる。また、図1に示されるように、装置102それぞれの通信インターフェース106は、ある通信チャネル104から他の通信チャネル104へと切り替えて通信することができる。従って、各装置102は、複数の他の装置102と、時分割多重化方式により通信可能となる。
また、通信システム100では、オブジェクト(例えば、ファイル、文書、画像、プログラムなど)を、1つの装置102から複数の他の装置102に伝送することが望ましい。そこで、図2では、通信システム100でのオブジェクト210を配信する為のオブジェクト配信方法200の一例を示す。
ここで、上記オブジェクト配信方法200を明確に説明するため、オブジェクト210を他の装置202に伝送する装置202は、オブジェクト210の「サーバ」とし、オブジェクト210を他の装置202から受信する装置202は、「クライアント」とする。すなわち、図示したように、オブジェクト210を受信する各クライアントは、そのオブジェクト210のサーバにもなり得る。
図2は、時間的に連続して行われる上記オブジェクト配信方法200における異なる段階を示す図である。そしてこの異なる段階は、図2において破線によって区分されている。第1段階では、予めオブジェクト210が装置A202aに格納されている。このため、装置A202aは、オブジェクト210のサーバとなる。そして、装置A202aは、オブジェクト210を、クライアント、すなわち、装置B202bに伝送する。
第2段階では、装置B202bは、オブジェクト210を既に受信している。従って、装置B202bは、オブジェクト210のサーバとなる。そして、この段階では、装置A202aは、オブジェクト210を、他のクライアント、すなわち、装置C202cに伝送する。また、装置B202bも、オブジェクト210を、クライアント、すなち、装置D202dに伝送する。
第3段階では、装置C202cおよび装置D202dは、オブジェクト210を既に受信している。従って、装置C202cおよび装置D202dは、オブジェクト210のサーバとなる。この段階では、装置A202aは、オブジェクト210を、他のクライアント、すなわち、装置E202eに伝送する。また、装置B202bは、オブジェクト210を、クライアント、すなわち、装置F202fに伝送する。さらに装置C202cも、オブジェクト210を、クライアント、すなわち、装置G202gに伝送する。装置D202dも、オブジェクト210を、クライアント、すなわち、装置H202hに伝送する。装置E202e、装置F202f、装置G202g、および、装置H202hが、オブジェクト210を受信すると、これら装置は、オブジェクト210のサーバとなる。このようにして、この処理は、システム100の全ての装置202それぞれが、オブジェクト210を受信するまで繰り返される。
図3(a)〜(c)は、クライアント320とサーバ322との間で実行可能ないくつかのやりとりを示す図である。これらのやりとりは、図2に示した上記オブジェクト配信方法200に基づいて、オブジェクト310が配信される間中行われる。なお、既に説明したように、このサーバ322は、オブジェクト310を別のサーバ201に伝送する装置102であって、クライアント320は、別の装置102からオブジェクト310を受信する装置102である。
また、図3(a)に示すように、クライアント320は、オブジェクト310をサーバ322から取り出すために、取り出し要求324を行う。なお、この要求されるオブジェクト310は、転送待ち行列326と関連付けられている。なお、以下により詳しく説明するように、転送待ち行列326とは、サーバ322がオブジェクト310の取り出し要求324を行ったクライアント320の情報を管理するために使用するものである。この転送待ち行列326では、オブジェクトの取り出し要求を行ったクライアント320に関する情報が記録される。このクライアント320に関する情報は、例えばクライアント320との通信を管理しているポートの情報などである。このため、この転送待ち行列326には、サーバ322からオブジェクト310に対する取り出し要求324を行っている1つ以上の装置(クライアント320)に関する情報を含んでいる。次に、図3(b)に示すように、サーバ322が、クライアント320から取り出し要求324を受信する場合、サーバ322は、このクライアント320に関する情報を転送待ち行列326に加える。
次に、クライアント320に関する情報が、転送待ち行列326に加えられた後、サーバ322は、クライアント320に対してオブジェクト310の伝送328を開始する。一般的に、サーバ322の通信が有効である場合、サーバ322は、オブジェクト310の伝送328を始める。このように、オブジェクト310の伝送328は、すぐには始まらないのである。
ところである場合では、クライアント320は、オブジェクト310の伝送328を拒否することがある。例えば、オブジェクト310が、既に他のサーバ322からクライアント320に伝送されている場合、クライアント320は、オブジェクト310の伝送328を拒否する。クライアント320が、オブジェクト310の伝送328を拒否する場合、このクライアント320に関する情報は、転送待ち行列326から削除される。
また、サーバ322がクライアント320に対してオブジェクト310の伝送328を開始する際に、クライアント320は、他のサーバ322からのオブジェクト310の伝送328を既に受信している最中の場合がある。このような状況の場合、クライアント320は、どちらのサーバ322からの伝送328を終了させるかを選択する。なお、この選択は、クライアント320が転送待ち行列326に登録されているクライアント320の数が最も少ないサーバ322を選択することで実現される。
図3(b)に示すように、オブジェクト310の伝送328が完了すると、オブジェクトの伝送が完了したクライアント320は、転送待ち行列326から削除される。そして次に、通常は転送待ち行列326が、クライアント320に伝送され、クライアント320は、オブジェクト310のサーバ322となる。しかしながら、一部のクライアント320は、サーバ322になることができないことがある。この場合、転送待ち行列326は、このようなクライアント320には伝送されない。
図3(a)〜(c)に示すやりとりは、様々な状況において生じる。例えば、クライアント320は、特定のオブジェクト310、あるいは検索条件を満たす全てのオブジェクト310を、1つ以上のサーバ322から検索する。そして、クライアント320のユーザは、特定のサーバ322にある特定のオブジェクト310を選択するのである。それから、クライアント320は、選択したサーバ322から選択したオブジェクト310に対する取り出し要求324を行う。なお、このオブジェクト310を検索し、取り出すための1つの方法は、本発明の特許譲受人へ譲渡された関連先行出願である米国特許出願番号09/910,650(U.S. Patent Application Serial No. 09/910,650)、発明の名称「アドホックなデータ通信システムのオブジェクト検索および取り出しシステム(Object Search and Retrieval System for an Ad Hoc Data Communication System)」に記載されており、本特許は、その出願内容を含むものである。
また、場合によっては、所望のオブジェクト310が、複数のサーバ322において検出されることがある。このような場合、クライアント320は、オブジェクト310の伝送能力に基づいて各サーバ322それぞれを序列する。つまり、様々なサーバ322についての序列は、この様々なサーバ322の通信能力と、各通信チャネル104の推定される伝送率とに応じている。次に、クライアント320は、サーバ322が伝送328を開始するまで、あるいは、各サーバ322に対して取り出し要求324がなされてしまうまで、様々なサーバ322に対して、その序列の順に取り出し要求324を連続的に行う。
ある実施例では、任意のサーバ322に対して、オブジェクト310の取り出し要求324を行った後、クライアント320は、さらなる他のサーバ322からもオブジェクト310を検索し続ける。このような場合、サーバ322が、オブジェクト310の伝送328をクライアント320に対して開始すると、このクライアント320は、継続中である同じオブジェクト310の検索を全て中断する。
なお、この明細書に記載している実施例では、必ずしも伝送を要求するオブジェクト310の検索を含んでいる必要はない。例えば、あるの実施例では、クライアント320のユーザが、予め決まっているサーバ322にある、予め決められたオブジェクト310を受信することを所望する構成であってもよい。その場合、クライアント320が、取り出し要求324を行えるように、ユーザがクライアント320に、オブジェクト310およびサーバ322についての情報を提供する。なお、この情報の提供は、例えば、クライアント320に備えられている操作ボタン等の外部入力手段(不図示)を利用することで実現できる。
図4(a)に示すように、サーバ422が、転送待ち行列426をクライアント420に伝送する際、転送待ち行列426が空いていないことがある。このような場合には、転送待ち行列426にある装置402に関するそれぞれの情報は、クライアント420とサーバ422との間で分配される。
ここで、図4(b)は、転送待ち行列426にある装置402に関する情報が、クライアント420とサーバ422との間で分配される1つの方法を示す図である。図4(b)に示すように、各装置402それぞれに関する情報は、クライアント420に格納されている転送待ち行列426またはサーバ422に格納されている転送待ち行列426のどちらかに含まれており、その両方には含まれないように分配処理されている。
転送待ち行列426にある装置402に関する情報は、どの装置402がオブジェクト210を最も迅速に伝送できるかということに基づいて、クライアント420とサーバ422との間で分配される。例えば、クライアント420およびサーバ422が、転送待ち行列426に記録されている各装置402に対して、オブジェクト210を伝送するために必要となる時間をそれぞれ推定する。つまり、クライアント420が、転送待ち行列426にある特定の装置402に関して、クライアント420にある装置402に対するオブジェクト210の伝送の方が、サーバ422にある装置402に対するオブジェクト210の伝送よりも伝送時間が短いと推定された場合、この装置402に関する情報は、クライアント420に格納されている転送待ち行列426に残され、一方、サーバ422に格納されている転送待ち行列426からは削除される。その反対に、サーバ422が、転送待ち行列426にある特定の装置402に関して、サーバ422にある装置402の方が、クライアント420にある装置402よりもオブジェクト210の転送時間がより短いと推定される場合は、この装置402に関する情報は、サーバ422に格納されている転送待ち行列426に残され、一方、クライアント420に格納されている転送待ち行列426から削除される。また、クライアント420とサーバ422との待ち行列426に記録されている装置402それぞれに対して、オブジェクト210を伝送する時間がほぼ同じであると推定された場合は、これらの装置402は、クライアント420とサーバ422との間でほぼ同数となるように分配される。このようにして、クライアント420とサーバ422との間において、各転送待ち行列426に記録されている装置402について調整が行われる。したがって、オブジェクト210を転送待ち行列426に記録されている全ての装置402に対して、オブジェクト210を伝送するために必要とされる合計時間はほぼ同じとなる。
図5は、転送待ち行列526の一例を示すブロック図である。図示したように、転送待ち行列526は、オブジェクト210に対する取り出し要求324を行ったクライアント520に関する情報を含んでいない、あるいは複数のクライアント520を含んでいること場合がある。なお、上記オブジェクト210は、転送待ち行列526に関連付けられているオブジェクトである。
また、既に説明したようにサーバ322は、転送待ち行列326と関連付けられているオブジェクト210を、転送待ち行列526にある各クライアント520に伝送するように構成されている。しかし、サーバ322がオブジェクト210を一度に伝送できるクライアント520は1つだけである。
ところで、図5に示すように、各クライアント520は、序列530によって関連付けられている。このため、サーバ322が、オブジェクト210を一度に伝送できるクライアント520が1つだけである場合、サーバ322は、通常オブジェクト210を受信するクライアント520として、序列530の最高位にあるクライアント520を選択する。
なお、この序列530は、いくつかの判断基準に基づかれて決定される。つまり、クライアント320の序列530を決定するために考慮される要素としては、クライアント320が、オブジェクト210に関してサーバ322としての役割を果たせるかどうか、サーバ322とクライアント520との間の通信チャンネル104の特性、クライアント520に、オブジェクト210の一部が既に伝送されているかどうか、オブジェクト210の伝送328を完了するまでに必要とされる推定の期間、クライアント520の有する通信能力などが挙げられる。
次に、図6は、サーバ622の一例を示すブロック図である。図示したように、サーバ622は、複数のオブジェクト610を含んでいる。このような一例では、各オブジェクト610が、転送待ち行列626と関連付けられている。
クライアント320は、サーバ622に格納されているいずれかのオブジェクト610についての取り出し要求324を行う。なお、サーバ622が一度に1つだけのオブジェクト610だけを伝送可能とする場合は、取り出し要求324の最も多いオブジェクト610が優先される。
図7〜図19は、図1に示すようなシステム100でのオブジェクト710を配信する方法の一例を示す図である。なお、ここでは、システム100が装置A702aから装置H702hまでの8つの装置702によって構成されている。
このシステム100における各装置702は、ほとんどが配信されるオブジェクト710のサーバ322およびクライアント320として機能できるものである。しかしながら、装置B702bだけは、クライアント320としてのみしか機能しないものである。
また、このシステム100における異なる装置702間での通信速度は、概してほぼ同じ速度である。しかしながら、以下のような例外がある。すなわち、装置A702aと装置G702gとの間の通信速度は、装置D702dと装置G702gとの間の通信速度よりも速い。さらに、装置C702cと、システム100におけるその他の装置702との間の通信速度は、システム100におけるその他の装置702間での通信速度よりも遅い。
また、図7に示すように、オブジェクト710は、装置A702aにおいて利用できるようになっている。したがって、装置A702aは、オブジェクト710のサーバ322となる。ここで、装置A702aでは、転送待ち行列726がこのオブジェクト710用に生成され、そして、この装置A702aに格納される。次に、装置B702bが、装置A202aからオブジェクト710を取り出すために、取り出し要求724を行う。
装置A702aが装置B702bからの取り出し要求724を受信すると、装置B702bに関する情報がオブジェクト710の転送待ち行列726に加えられる。ここで、図8に示すように、装置B702bは、転送待ち行列726にある唯一の装置702であるため、装置A702aは、装置B702bに対してオブジェクト710の伝送728を開始する。
次に、図9に示すように、装置C702cが装置A702aからオブジェクト710を取り出すために、取り出し要求724を行う。この装置C702cの取り出し要求は、装置A702aが装置B702bに対してオブジェクト710の伝送728を継続している間に行われる。
そして、装置A702aは、装置C702cから取り出し要求724を受信し、図10に示すように、装置C702cが転送待ち行列726に加えられる。なお、装置C702cは、サーバ322として機能できるが、一方、装置B702bはクライアント320としてのみしか機能しないため、装置C702cは転送待ち行列726において、装置B702bよりもオブジェクト710を伝送する優先順位が上に序列される。なお、図10において、転送待ち行列726では、優先順位が高い装置の順にその装置名を上から示している。これ以降の図面においても、転送待ち行列726では優先順位の高い装置の順で上から装置名を示すものとする。そして、この装置C702cは、現在、転送待ち行列726においてオブジェクト710を伝送する優先順位が一位に序列されているため、装置A702aは、装置B702bへのオブジェクト710の伝送728を停止し、装置C702cへのオブジェクト710の伝送728を開始する。
また次に、図11に示すように、装置D702d、装置E702eおよび装置F702fそれぞれは、装置A702aからオブジェクト710を取り出すために、取り出し要求724を行う。装置D702d、装置E702e、および装置F702fそれぞれからのこの取り出し要求は、装置A702aが、装置C702cに対するオブジェクト710の伝送728を継続している間に行われる。なお、装置D702dは、装置E702eが取り出し要求724を行うより以前に、その取り出し要求724を行っている。また、装置E702eは、装置F702fが取り出し要求724を行うより以前に、その取り出し要求724を行っている。
このように装置A702aが、装置D702d、装置E702eおよび装置F702fから、取り出し要求724を受信すると、装置D702d、装置E702eおよび装置F702fそれぞれに関する情報は、図12に示すように、転送待ち行列726に加えられる。そして、装置702と装置A702aとの間の通信速度が、装置C702cと装置A702aとの間の通信速度よりも速いため、これら装置D702d、装置E702eおよび装置F702fは、それぞれ、転送待ち行列726において装置C702cよりも上に序列されている。また、装置D702dは、転送待ち行列726において、装置E702eおよび装置F702fよりも上に序列されている。なぜなら、装置D702dは、装置E702eおよび装置702fが取り出し要求724を行うより以前に、この取り出し要求724を行っていたからである。同じく、装置E702eは、転送待ち行列726において、装置F702fよりも上に序列されている。つまり、装置E702eは、装置F792fが取り出し要求724を行う前に、その取り出し要求724を行っていたからである。このように、この場合では装置D702dは、転送待ち行列726の一位に序列されるため、装置A702aは、装置C702cに対するオブジェクト710の伝送728を停止し、装置D702dに対するオブジェクト710の伝送728を開始する。
そして、装置A702aは、装置D702dに対するオブジェクト710の伝送728を完了させる。また一方、オブジェクト710の転送待ち行列726が、装置A702aから装置D702dに伝送される。そして次に、装置D702dが、オブジェクト710のサーバ322となる。それから、装置A701aと装置D701dとは、転送待ち行列726における装置702の分配について相互に連絡を取る。ここで、装置A702aと装置D702dとは、転送待ち行列726の各装置702に対して、データを伝送する能力が同じであるため、転送待ち行列726のこの装置702が、装置A702aと装置D702dとの間でほぼ同数に分配される。このため、例えば装置C702cと装置B702bとは、装置A702aに格納されている転送待ち行列726から削除されるが、装置D702dに格納されている転送待ち行列726には残っている。また同様に、装置E702eと装置F702fとは、装置D702dに格納されている転送待ち行列726から削除されるが、装置A702aに格納されている転送待ち行列726には残っている。次に、図7(G)は、上記したこの処理が完了した後の装置A702aおよび装置D702dを示す図である。ここで装置E702eが装置A702aに格納されている転送待ち行列726の一位に序列されているため、装置A702aは、装置E702eに対してオブジェクト710の伝送728を開始する。また、装置C702cが装置D702dに格納されている転送待ち行列726の一位に序列されているため、装置D702dは、装置A702aにより先に部分的にオブジェクト710の伝送が完了した、装置C702cに対してオブジェクト710の伝送728を継続する。
それから、装置G702gが、装置A702aおよび装置D702dにあるオブジェクト710を見つける。ここで、装置G702gは、装置A702aおよび装置D702dを、通信能力と通信速度とに基づいて序列する。なお、装置A702aと装置D702dとの双方は、他の装置702へのオブジェクト710の伝送を現在行っているため、容量に関してはこの序列の決定に影響しないものとする。したがって、装置A702aと装置G702gとの間の通信速度は、装置D702dと装置G702gとの間の通信速度よりも速いため、装置A702aは、装置D702dよりも上に序列されることとなる。これにより、装置G702gは、まず、装置A702aに対して取り出し要求724を行う。この取り出し要求724は、装置A702aが、装置E702eに対してオブジェクト710の伝送を継続している間に行われている。そして次に、装置G702gが、装置D702dに対して取り出し要求724を行う。この取り出し要求724も、装置D702dが、装置C702cに対してオブジェクト710の伝送を継続している間に行われている。図7(H)では、装置A702aと装置D702dとの双方に対して取り出し要請724を行っている装置G702gを示している。
次に、装置A702aは、装置G702gから取り出し要求724を受信すると、装置G702gが装置A702aに格納されている転送待ち行列726に加えられる。装置G702gは、装置A702aに格納されている転送待ち行列726において、装置E702e,装置F702fの後に序列される。なぜならば、装置E702eおよび装置F702fは、装置G702gがオブジェクト710の取り出し要求724を行うより前に、オブジェクト710の取り出し要求724を行っているからである。さらに、装置D702dもまた、装置G702gからの取り出し要求724を受信すると、装置G702gが、装置D702dに格納されている転送待ち行列726に加えられる。装置G702gは、装置D702dに格納されている転送待ち行列726において、一位に序列される。すなわち、装置G702gは、装置D702dと装置G702gとの間の通信速度が装置D702dと装置C702cとの間の通信速度よりも速いため、装置C702cの前に序列される。また、装置G702gはサーバ322として機能できるが、一方、装置B702bは、クライアント320としてのみ機能できるため、装置G702gは、装置B702bよりも上に序列される。このように、装置G702gが装置D702dに格納されている転送待ち行列726において、一位に序列されているため、装置D702dは、装置C702cへのオブジェクト710の伝送728を停止し、図7(I)に示すように、装置G702gへのオブジェクト710の伝送728を開始する。
次に、装置A702aが、装置E702eに対するオブジェクト710の伝送728を完了すると、装置A702aに格納されている転送待ち行列726もまた、装置E702eに対して伝送される。このため、装置E702eは、オブジェクト710のサーバ322となる。そして、装置A702aと装置E702eとは、転送待ち行列726における装置702を分配する。装置A702aと装置E702eとは、転送待ち行列726にある各装置702に対して、データを伝送できる能力がほぼ同じであるため、転送待ち行列726における装置702は、装置A702aと装置E702eとの間で、ほぼ同数に分配される。つまり、例えば装置G702gが、装置A702aに格納されている転送待ち行列726から削除されるが、一方、装置E702eに格納されている転送待ち行列726には残っている。同様に、装置F702fが、装置E702eに格納されている転送待ち行列726からは削除されるが、一方、装置A702aに格納されている転送待ち行列726には残っている。図7(J)は、この処理が完了した後の装置A702aおよび装置E702eを示す図である。ここで、図7(J)に示すように、装置F702fは、装置A702aに格納されている転送待ち行列726に現在ある唯一つの装置702であるため、装置A702aは、装置F702fに対するオブジェクト710の伝送728を開始する。また、装置G702gは、装置E702eに格納されている転送待ち行列726にある唯1つの装置702であるため、装置E702eは、装置G702gに対してオブジェクト710の伝送728を開始する。このため、装置D702dは、装置G702gに対するオブジェクト710の伝送728を中止し、装置G702gを装置D702dに格納されている転送待ち行列726から削除する。ここで装置C702cが、装置D702dに格納されている転送待ち行列726において、一位に序列されているため、装置702dは、装置C702cに対するオブジェクト710の伝送728を継続する。既に説明したように、装置C702cは、装置A702aからオブジェクト710の一部を先に受信しており、オブジェクト710の残りの部分を装置D702dから受信することになる。なお、この場合、装置D702dは、以前に、オブジェクト710の伝送を停止した時点から伝送728を簡単に継続できる。
装置D702dが、装置C702cに対してオブジェクト710の伝送728を完了する際、装置D702dに格納されている転送待ち行列726もまた、装置C702cに対して伝送される。そして、装置C702cが、オブジェクト710のサーバ322となる。それから、装置D702dと装置C702cとは、転送待ち行列726に装置702を分配することについて、相互に連絡をとる。ここで、装置D702dと装置C702cとは、装置B703b(転送待ち行列726における唯一つの装置702)に対してデータを伝送する能力がほぼ同じであるため、装置D702dが、任意に選択される。従って、装置B702bは、装置C702cに格納されている転送待ち行列726からは削除されるが、装置D702dに格納されている転送待ち行列726には残っている。装置C702cに格納されている転送待ち行列726は、このとき、空きとなる。図7(K)は、この処理が完了した後の装置C702cと装置D702dとを示す図である。
次に、装置H702hが、オブジェクト710を、装置A702a、装置E702e、装置D702d、および装置C702cから見つける。そして、ここでは装置C702cが、装置H702hに対してオブジェクト710の伝送728をすぐに開始できるため、装置H702hは、装置C702cに対して取り出し要求724を行う。図7(K)では、装置C702cに対して取り出し要求724を行っている装置H702hを示している。
装置C702cが装置H702hからの取り出し要求724を受信すると、装置H702hは、装置C702cに格納されている転送待ち行列726に加えられる。次に、装置C702cは、装置H702hに対してオブジェクト710の伝送728を開始する。なぜならば、ここでは装置H702hが、装置C702cに格納されている転送待ち行列726における唯1つの装置702となるからである。図7(L)では、装置H702hに対するオブジェクト710の伝送728を開始している装置C702cを示している。
図7(M)に記載のように、装置A702aは、装置F702fに対してオブジェクト710の伝送728を完了しており、装置E702eは、装置G702gに対してオブジェクト710の伝送728を完了している。また、装置D702dは、装置B702bに対するオブジェクト710の伝送728を完了しており(この伝送728は、上記したように、装置A702aによって部分的に完了していた)、装置C702cは、装置H702hに対してオブジェクト710の伝送728を完了している。その結果、装置A702a、装置G702g、装置D702d、装置C702cに格納されている転送待ち行列726が空きになる。装置A702aに格納されている空きの転送待ち行列726は、装置A702aから装置F702fに伝送され、装置E702eに格納されている空きの転送待ち行列726は、装置E702eから装置G702gに伝送され、そして、装置C702cに格納されている空きの転送待ち行列726は、装置C702cから装置H702hに伝送される。このため、装置F702f、装置G702g、装置H702hは、オブジェクト710のサーバ322となる。しかし、この時点で、システム100における各装置702が、オブジェクト710を既に受信してしまっているため、伝送728はこれ以上行われない。
図8は、通信システム100でのオブジェクト210を配信するオブジェクト配信方法800の一例を説明するフローチャートである。このオブジェクト配信方法800は、クライアント320が、サーバ322に対してオブジェクト210の取り出し要求324を行うステップ(ステップS802、以下S802のように称する)から始まる。すなわち、クライアント320がサーバに対してオブジェクト210の取り出し要求324を行うと、次に、クライアント320は、オブジェクト210を、サーバ322から受信する(S804)。そして、クライアント320は、転送待ち行列436を、サーバ322から受信する(S806)。
さらに、このオブジェクト配信方法800では、サーバ322が転送待ち行列326において最上位に序列されているクライアント320を選択し(S808)、ステップS808において選択されたクライアント320に対して、オブジェクト210を伝送するステップ(S810)を含んでいる。次に、このサーバ322は、上記クライアント320を、転送待ち行列326から削除する(S812)。それから、この転送待ち行列326を、上記クライアント320に対して伝送する(S814)。さらに、このオブジェクト配信方法800では、転送待ち行列326を分配することについて、サーバ322が上記クライアント320と相互に連絡しあうステップ(S816)を含んでいる。
また、図9は、電子装置902において一般的に使用されているハードウエアの主要な構成要素を示すブロック図である。電子装置902は、概して、入力構成要素すなわち入力部904、および/または、出力構成要素すなわち出力部906と電子通信しているプロセッサ903を備えている。このプロセッサ903は、プロセッサ903と電子通信可能な入力部904および/または出力部906を動作可能とするように接続されている。すなわち、これらの部材は、電気的な信号方式で入力および/または出力可能となっている。なお、装置902の一例では、入力部904、出力部906、およびプロセッサ903が、同じ物理的構造内、または別々の筐体内あるいは構造内に備えていてもよい。
さらに、電子装置902は、メモリ908を備えている。メモリ908は、プロセッサ903とは別に設けられていてもよく、あるいは、プロセッサ903として同じ部分に備えられているオンボードメモリ908でもよい。例えば、マイクロコントローラは、大抵、一定容量のオンボードメモリを備えている。
また、上記プロセッサ903は、通信インターフェース910と電子通信を確立している。この通信インターフェース910は、他の装置902と通信するために用いることができるものである。このため、様々な電子装置902の通信インターフェース910は、それぞれの電子装置902の間で相互に通信をして、信号またはメッセージを送信するように設計されている。
また、本実施形態に係る電子装置のプロセッサ903は、例えばCPU(Central Processing Unit)が、上記サーバ322に対してオブジェクト210の取り出し要求を行うステップ、オブジェクト210を、サーバ322から受信するステップ、転送待ち行列436をサーバ322から受信するステップなどの各ステップにおける処理動作を実現するためのプログラムを実行することによって実現することができる。
また、これらのプログラムは、例えばハードディスクなどの読み書き可能な不揮発性記録媒体に記憶されており、必要時にプロセッサ903が備えるRAMなどのメモリ908に読み出されてCPUによって実行されることになる。
また、各種リムーバブルメディアに上記プログラムが記憶されており、必要時にこのリムーバブルメディアからプログラムが読み出されることによって実行される形態でもよい。
また、上記プログラムは、通信ネットワークを介して外部からダウンロードされて実行されるようになっていてもよい。
また、上記電子装置902は、さらに他の通信ポート912を備えていてもよい。さらにまた、上記電子装置902は、他の部品914を備えた構成であってもよい。
当然、当業者は、明細書の実施例に用いた様々な装置には複数の種類があることを理解している。それゆえ、図9のブロック図は、単に、電子装置902の一般的な構成要素を示すものであって、明細書に開示する実施例の範囲を制限するものではない。
この明細書に記載した実施形態にかかるアプリケーションの一例としては、Bluetoothの規格や、Bluetoothに関する関連パーソナルエリアネットワーク(PAN)技術を有するものがあげられる。このBluetoothの規格はBluetoothシステムの仕様書に記載されていおり、この明細書はその内容を含むものである。また、当然、当業者には、この明細書にて開示した実施例と発明の本質とがパーソナルエリアネットワーク技術および/またはBluetoothによるネットワークに制限されるものではないことが明らかである。すなわち、この明細書の本発明の本質は、相互に通信する電子装置102を含む様々な種類の通信システムに適用できる。
本発明に関する特定の実施例および適用について図示および記載してきたが、本発明が、この明細書において開示した構成および構成部材に厳密に制限されるものではない。本発明の精神および範囲に反することなく、この明細書にて開示した本発明の方法とシステムとの配置、操作、および細部において、当業者にとって認められる様々な修正、変更、および変形がなされ得る。