JP3806931B2 - 情報処理装置および方法、並びにプログラム - Google Patents
情報処理装置および方法、並びにプログラム Download PDFInfo
- Publication number
- JP3806931B2 JP3806931B2 JP2003091291A JP2003091291A JP3806931B2 JP 3806931 B2 JP3806931 B2 JP 3806931B2 JP 2003091291 A JP2003091291 A JP 2003091291A JP 2003091291 A JP2003091291 A JP 2003091291A JP 3806931 B2 JP3806931 B2 JP 3806931B2
- Authority
- JP
- Japan
- Prior art keywords
- media
- speed
- client
- information processing
- processing apparatus
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0853—Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
- H04L41/0856—Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information by backing up or archiving configuration information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Information Transfer Between Computers (AREA)
- Small-Scale Networks (AREA)
- Computer And Data Communications (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、情報処理装置および方法、並びにプログラムに関し、特に、異なる伝送速度の伝送路に接続された装置間で確実に接続ができるようにした情報処理装置および方法、並びにプログラムに関する。
【0002】
【従来の技術】
最近、インターネットが普及し、インターネットを利用して各種のデータを相手側と授受するユーザが増えてきた。
【0003】
しかしながら、従来、例えば、相手側の装置に対して所定の画像を伝送しようとした場合、相手側の装置が接続されている伝送路の伝送速度と、自分自身の装置が接続されている伝送路の伝送速度が異なるため、安定して画像データを伝送することができなくなるといった事態が発生することがあった。
【0004】
そこで、データ送信側の装置が、パケットの到着遅延からネットワークの輻輳を検出し、検出結果を基に、データ送信レートを制御するという方法が提案されている(例えば、特許文献1参照)。
【0005】
【特許文献1】
特開平11−308271号公報
【0006】
【発明が解決しようとする課題】
しかしながら、特許文献1に記載の方法では、データの送受信が開始されるまで実際のデータ速度が分からないという課題があった。
【0007】
本発明は、このような状況に鑑みてなされたものであり、迅速かつ確実に、そして、ユーザに負担をかけることなく、伝送路の状況に影響されずに、相手側の装置と確実に接続することができるようにして、ユーザビリティを向上させるようにするものである。
【0008】
【課題を解決するための手段】
本発明の情報処理装置は、第2の他の情報処理装置にログインするログイン手段と、ログイン手段によりログインする前または後に、ネットワークを含む伝送路の伝送速度を計測する計測手段と、計測手段により計測された伝送速度を、第2の他の情報処理装置を介して第1の他の情報処理装置に通知する通知手段と、計測手段により計測された伝送速度に基づいて設定された伝送速度で第1の他の情報処理装置と通信する通信手段とを備えることを特徴とする。
【0009】
前記第1の他の情報処理装置が計測した伝送速度を、第2の他の情報処理装置を介して受信する受信手段と、受信手段により受信された伝送速度と、計測手段により計測された伝送速度に基づいて、第1の他の情報処理装置との通信の伝送速度を設定する設定手段とをさらに備えるようにすることができる。
【0010】
前記計測手段は、ネットワークに接続されている計測用のサーバを利用して伝送速度を計測するようにすることができる。
【0011】
本発明の情報処理方法は、第2の他の情報処理装置にログインするログインステップと、ログインステップの処理によりログインする前または後に、ネットワークを含む伝送路の伝送速度を計測する計測ステップと、計測ステップの処理により計測された伝送速度を、第2の他の情報処理装置を介して第1の他の情報処理装置に通知する通知ステップと、計測ステップの処理により計測された伝送速度に基づいて設定された伝送速度で第1の他の情報処理装置と通信する通信ステップとを含むことを特徴とする。
【0012】
本発明のプログラムは、第2の他の情報処理装置にログインするログインステップと、ログインステップの処理によりログインする前または後に、ネットワークを含む伝送路の伝送速度を計測する計測ステップと、計測ステップの処理により計測された伝送速度を、第2の他の情報処理装置を介して第1の他の情報処理装置に通知する通知ステップと、計測ステップの処理により計測された伝送速度に基づいて設定された伝送速度で第1の他の情報処理装置と通信する通信ステップとを含む処理をコンピュータに実行させることを特徴とする。
【0013】
本発明の情報処理装置および方法、並びにプログラムにおいては、第2の他の情報処理装置にログインされ、ログインされる前または後に、ネットワークを含む伝送路の伝送速度が計測されるとともに、第2の他の情報処理装置を介して第1の他の情報処理装置に通知され、計測された伝送速度に基づいて設定された伝送速度で第1の他の情報処理装置と通信が行われる。
【0014】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【0015】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【0016】
請求項1に記載の情報処理装置は、ネットワーク(例えば、図13のインターネット1)を介して第1の他の情報処理装置(例えば、図16のメディアIMクライアント#C1を有する図13のパーソナルコンピュータ12)と通信する情報処理装置(例えば、図16のメディアIMクライアント#P1を有する図13のパーソナルコンピュータ11)であって、第2の他の情報処理装置(例えば、図13のメディアIMサーバ14)にログインするログイン手段(例えば、図14のステップS101の処理を実行する図12のCPU121)と、前記ログイン手段によりログインする前または後に、前記ネットワークを含む伝送路の伝送速度を計測する計測手段(例えば、図14のステップS105の処理を実行する図12のCPU121)と、前記計測手段により計測された前記伝送速度を、前記第2の情報処理装置を介して前記第1の他の情報処理装置に通知する通知手段(例えば、図16のステップS216乃至ステップS220の処理を実行する図12のCPU121)と、前記計測手段により計測された前記伝送速度に基づいて設定された伝送速度で前記第1の他の情報処理装置と通信する通信手段(例えば、図12の通信部129)とを備えることを特徴とする。
【0017】
請求項2に記載の情報処理装置は、前記第1の他の情報処理装置が計測した前記伝送速度(例えば、メディアIMクライアント#C1が計測した上り速度)を、前記第2の他の情報処理装置を介して受信する受信手段(例えば、図18のステップS301の処理を実行する図12の通信部129)と、前記受信手段により受信された前記伝送速度と、前記計測手段により計測された前記伝送速度(自分自身の下り速度)に基づいて、前記第1の他の情報処理装置との通信の伝送速度を設定する設定手段(例えば、図18のステップS302の処理を実行する図12のCPU121)とをさらに備えることを特徴とする。
【0018】
請求項3に記載の情報処理装置は、前記計測手段が、前記ネットワークに接続されている計測用のサーバ(例えば、図13の計測サーバ200)を利用して前記伝送速度を計測することを特徴とする。
【0019】
請求項4に記載の情報処理方法は、ネットワーク(例えば、図13のインターネット1)を介して第1の他の情報処理装置(例えば、図16のメディアIMクライアント#C1を有する図13のパーソナルコンピュータ12)と通信する情報処理装置(例えば、図16のメディアIMクライアント#P1を有する図13のパーソナルコンピュータ11)の情報処理方法であって、第2の他の情報処理装置にログインするログインステップ(例えば、図14のステップS101)と、前記ログインステップの処理によりログインする前または後に、前記ネットワークを含む伝送路の伝送速度を計測する計測ステップ(例えば、図14のステップS105)と、前記計測ステップの処理により計測された前記伝送速度を、前記第2の情報処理装置を介して前記第1の他の情報処理装置に通知する通知ステップ(例えば、図16のステップS216乃至ステップS220)と、前記計測ステップの処理により計測された前記伝送速度に基づいて設定された伝送速度で前記第1の他の情報処理装置と通信する通信ステップ(例えば、図12の通信部129が実行する処理)とを含むことを特徴とする。
【0020】
請求項5に記載のプログラムは、ネットワーク(例えば、図13のインターネット1)を介して第1の他の情報処理装置(例えば、図16のメディアIMクライアント#C1を有する図13のパーソナルコンピュータ12)と通信する情報処理装置(例えば、図16のメディアIMクライアント#P1を有する図13のパーソナルコンピュータ11)のプログラム(例えば、図16のメディアIMクライアント#P1)であって、第2の他の情報処理装置にログインするログインステップ(例えば、図14のステップS101)と、前記ログインステップの処理によりログインする前または後に、前記ネットワークを含む伝送路の伝送速度を計測する計測ステップ(例えば、図14のステップS105)と、前記計測ステップの処理により計測された前記伝送速度を、前記第2の情報処理装置を介して前記第1の他の情報処理装置に通知する通知ステップ(例えば、図16のステップS216乃至ステップS220)と、前記計測ステップの処理により計測された前記伝送速度に基づいて設定された伝送速度で前記第1の他の情報処理装置と通信する通信ステップ(例えば、図12の通信部129が実行する処理)とを含む処理をコンピュータに実行させることを特徴とする。
【0021】
図1は、本発明を適用したネットワークシステムの構成例を表している。このネットワークシステムにおいては、インターネット1を介して、メディアインスタントメッセージサーバ(Media IM Server)14に対して、ユーザ端末として、パーソナルコンピュータ11,12,並びにPDA(Personal Digital Assistants)13が接続されている。メディアIMサーバ14にはまた、アプリケーションサーバ15もインターネット1を介して接続されている。
【0022】
パーソナルコンピュータ11には、ミドルウェアとしてメディアIMクライアント#1が実装されており、パーソナルコンピュータ12には、ミドルウェアとしてメディアIMクライアント#2が実装されている。同様に、PDA13には、ミドルウェアとしてメディアIMクライアント#3が実装されている。
【0023】
アプリケーションサーバ15には、ミドルウェアとしてメディアIMクライアント#4が実装されている。アプリケーションサーバ15は、プリントサービス1乃至プリントサービス7を、アクセスしてきたユーザに対して提供する。
【0024】
メディアIMサーバ14は、これらのメディアIMクライアント#1乃至メディアIMクライアント#4の相互のインスタントメッセージ処理を制御する。
【0025】
図2は、ソフトウェアの構成を表している。上述したメディアIMクライアント#1乃至メディアIMクライアント#4は、図2において、メディアIMクライアントミドルウェア32として示されている。このメディアIMクライアントミドルウェア32は、IPネットワークトランスポート層31とAPI(Application Program Interface)33との間に配置されている。API33は、アプリケーション#1乃至アプリケーション#nと、メディアIMクライアントミドルウェア32との間のインタフェース処理を実行する。メディアIMクライアントミドルウェア32は、API33とIPネットワークトランスポート層31とのインタフェース処理を実行する。
【0026】
アプリケーション(Application)#1乃至アプリケーション#nは、それぞれサービスエンティティを構成する。
【0027】
このネットワークシステムにおいては、図3に示されるように、サービスを提供する側のアプリケーション(図3の例では、Application#1)がサービスプロバイダ(Service Provider)51とされ、そのサービスの提供を受ける側のアプリケーション(図3の例では、Application#n)が(サービスを消費する側が)サービスコンシューマ(Service Consumer)52とされる。
【0028】
サービスプロバイダ51とサービスコンシューマ52は、対応するメディアIMクライアント#P1およびメディアIMクライアント#C1を介して、インスタントメッセージのプレゼンス機能、メッセージング機能、またはInfo/Query機能を用いて、接続のためのネゴシエーション処理を実行する。ネゴシエーションにより、相手側と接続が可能であることが確認された後、サービスプロバイダ51とサービスコンシューマ52は、ピアツーピア(P2P)で、接続処理を実行する。
【0029】
サービスプロバイダ51とサービスコンシューマ52は、それぞれサービスエンティティを構成する。サービスエンティティは、そのものが1つのアプリケーションである場合もあれば、複数のサービスエンティティの集合が1つのアプリケーションを形成する場合もある。以下においては、簡単のため、1つのサービスエンティティが1つのアプリケーションに対応しているものとする。
【0030】
次に、接続処理の詳細を図4乃至図7のフローチャートを参照して説明する。
【0031】
ステップS1において、サービスプロバイダ51としてのアプリケーション#1は、名簿(Roster)に登録されている各メンバー(Buddy)に対して、自分自身が提供可能なサービスの種別を表すプロファイルスペースID(Profile Space ID)をアナウンスすることを、メディアIMクライアント#P1に指令する。メディアIMクライアント#P1は、ステップS2において、この指示を受け取ると、ステップS3において名簿に予め登録されているメンバーに対して、プロファイルスペースIDをプレゼンスによって通知する。
【0032】
なお、プロファイルスペースID並びにアプリケーションIDは、アプリケーションプラットフォームの運用者によって、予め登録され、管理されている。従って、サービスコンシューマ52は、そのIDに基づいて、その内容を特定することが可能となる。
【0033】
図8は、パーソナルコンピュータ11において動作するMPEG4ストリーミングサーバアプリケーションを定義するためのプロファイルスペースの例を表している。同図に示されるように、プロファイルスペースは、プロファイルスペースIDとパラメータにより構成される。この例においては、プロファイルスペースIDは、「10000001」とされている。また、パラメータは、access method, bit rate, X scale, Y scale, audio codecにより構成されている。この例の場合、access methodの値は、1(RTSP/TCP+RTP/UDP)または2(HTTP tunneling)とされる。bit rateは、6k乃至512kbpsとされる。X scaleは128乃至352とされ、またY scaleは96乃至288とされている。
【0034】
さらに、Video Codecは、MPEG4とされている。audio codecは、なし(none)、CELP(Code Excited Linear Predictive) 8k,CELP 16k,AAC(Advanced Audio Coding) 16k, AAC 32k, AAC 44.1k,AAC 48kのいずれかとされる。
【0035】
このように、パラメータは全て数値によって表現されている。
【0036】
図4に戻って、メディアIMサーバ14は、ステップS4において、メディアIMクライアント#P1からの通知を受け取ると、ステップS5において、これを名簿内の各メンバーにアナウンスする。
【0037】
アナウンスを受けたメンバー(サービスコンシューマ52)の1人であるメディアIMクライアント#C1は、ステップS6において、この通知を受け取ると、ステップS7において、プロファイルスペースIDとサービスプロバイダ51側のアプリケーションID(いまの場合、アプリケーション#1のID)に基づいて、自分自身がこのプロファイルを受け入れ可能であるか否かを判定する(検証する)。上述したように、このシステムの参加者は、これらのIDに基づいて、その内容を特定することができるので、この判定が可能である。
【0038】
IDと内容の対応関係を記述したテーブルを各装置(パーソナルコンピュータ11,12等)に記憶させておくこともできるが、所定のサーバ(例えば、メディアIMサーバ14)に記憶させておくこともできる。この場合、ユーザがこのテーブルを利用する度に、ユーザに対して課金するようにすることもできる。これにより、メディアIMサーバ14の運用者は、利益を得ることができる。
【0039】
メディアIMクライアント#C1は、サービスプロバイダ51からプレゼンスを受けたプロファイルの内容が、サービスコンシューマが受け入れ可能であると判断した場合、ステップS8において、その受け入れ可能なサービスコンシューマ52となるアプリケーション#nに対して、プレゼンスの内容(プロファイル)を通知する。ステップS9において、アプリケーション#nは、メディアIMクライアント#C1からの通知を受信する。
【0040】
なお、各メディアIMクライアントは、検証の結果、サービスコンシューマとなる適切なアプリケーションが存在しないと判断した場合、受信したアナウンスを無視する。
【0041】
サービスコンシューマ52としてのアプリケーション#nは、サービスプロバイダ51のプレゼンスの内容を受信すると、ステップS10において、サービスプロバイダ51から提供されたサービスの詳細情報を取得するように、メディアIMクライアント#C1に指示する。ステップS11において、メディアIMクライアント#C1は、この指示を受け取ると、ステップS12において、サービスプロバイダ51が提供するサービスのプロバイダプロファイルの送信を、メッセージング機能またはInfo/Query機能を用いて要求する。この要求には、サービスプロバイダ51を指定するための宛先情報が含められている。
【0042】
メディアIMサーバ14は、ステップS13において、メディアIMクライアント#C1からの要求を受信すると、ステップS14において、これをメディアIMクライアント#P1に送信する。メディアIMクライアント#P1は、ステップS15において、メディアIMサーバ14からの要求を受信すると、ステップS16において、これをサービスプロバイダ51としてのアプリケーション#1に供給する。
【0043】
アプリケーション#1は、ステップS17において、メディアIMクライアント#P1からの要求を受信すると、ステップS18において、サービスコンシューマ52に対して提供するプロバイダプロファイルを組み立て、メディアIMクライアント#P1に送信する。
【0044】
アプリケーション#1により生成されるプロバイダプロファイルの内容は、プロファイルスペース(図8)で定義されているパラメータ群のうち、サービスプロバイダ51がネットワークのリンクスピードやCPUの負荷状況などのランタイム環境を考慮した上で、サービスコンシューマ52に対して実際に提供できるパラメータの値の範囲を具体的に設定したものとされる。
【0045】
図9は、このようにして、生成されるプロバイダプロファイルの例を表している。図9では、このプロバイダプロファイルが、プロファイルディスクリプション(Profile Description)として表されている。
【0046】
図9は、サービスプロバイダ51としてのアプリケーション#1がVGA(Video Graphics Array)系の画角(160×120または320×240)のみをサポートし、かつPHS(Personal Handyphone System)相当のネットワーク(リンクスピードの最大値が128kbpsのネットワーク)に接続されている場合の例を表している。従って、図9の例においては、ネットワークのリンクスピードとの兼ね合いから、画角が図8のプロファイルスペースで規定されている範囲のうち、160×120(X scale×Y scale)のみに限定されている。
【0047】
また、図9の例においては、プロファイルスペースIDは、「10000001」とされ、access methodは、RTSP/TCP+RTP/UDPまたはHTTP tunnelingのいずれかとされる。bit rateは、6k乃至128kbpsとされている。さらに、audio codecは、なし(none)またはCELP 8kとされている。
【0048】
メディアIMクライアント#P1は、ステップS19において、アプリケーション#1からのプロバイダプロファイルの応答を受信すると、ステップS20において、これをアプリケーション#nに向けてメッセージング機能またはInfo/Query機能を用いて返信する。
【0049】
メディアIMサーバ14は、ステップS21において、メディアIMクライアント#P1からの返信を受信すると、ステップS22において、これをメディアIMクライアント#C1に送信する。ステップS23において、メディアIMクライアント#C1は、この返信を受信すると、それをステップS24において、アプリケーション#nに送信する。アプリケーション#nは、ステップS25において、このサービスプロバイダ51からの返信を受信する。
【0050】
アプリケーション#nは、ステップS25の処理で受信したサービスプロバイダ51のプロバイダプロファイルと、自分自身が形成するコンシューマプロファイルとのマッチング(比較)を行う。
【0051】
上述したように、サービスプロバイダが提示するプロバイダファイル(プロファイルディスクリプション)は、数値だけで表現されているため、サービスコンシューマ52は、自分自身のプロファイルを構成する各パラメータの値の範囲と単純に1次元での比較を行うだけで、整合性を簡単に検証することができる。
【0052】
アプリケーション#nは、整合性が確認できた場合、ステップS26において、サービスプロバイダ51に対して、提供されたサービスへの自分自身(サービスコンシューマ52)の登録を要求する。メディアIMクライアント#C1は、ステップS27において、アプリケーション#nからこの指示を受け取ると、ステップS28において、サービスプロバイダ51に対して、サービスへの登録を、メッセージング機能またはInfo/Query機能を用いて要求する。このとき、プロファイルスペースIDとアプリケーションIDがその要求に含められる。
【0053】
メディアIMサーバ14は、ステップS29において、メディアIMクライアント#C1からの要求を受け取ると、ステップS30において、これをメディアIMクライアント#P1に送信する。メディアIMクライアント#P1は、ステップS31において、メディアIMサーバ14からの要求を受信すると、ステップS32において、これをアプリケーション#1に送信する。アプリケーション#1は、ステップS33において、サービスコンシューマ52からの登録要求を受信する。
【0054】
サービスプロバイダ51としてのアプリケーション#1は、ステップS18の処理でサービスコンシューマ52に対して提供したサービスに対応してサービスコンシューマ52を登録する。具体的には、プロファイルスペースIDに対応して、サービスコンシューマ52のアプリケーション#nのアプリケーションIDが対応して登録される。
【0055】
ステップS34において、アプリケーション#1は、登録要求に対応する応答をメディアIMクライアント#P1に指示し、ステップS35において、この指示を受け取ったメディアIMクライアント#P1は、ステップS36において、登録結果を、メッセージング機能またはInfo/Query機能を用いて通知する。ステップS37において、この登録結果の通知を受信したメディアIMサーバ14は、ステップS38において、それをメディアIMクライアント#C1に送信する。メディアIMクライアント#C1は、ステップS39において、これを受信すると、ステップS40において、アプリケーション#nに送信する。アプリケーション#nは、ステップS41において、登録結果の通知を受信する。
【0056】
アプリケーション#nは、ステップS42において、サービスプロバイダ51からのプロファイルディスクリプションに基づく接続性を保証するためのパラメータを、プロファイルアトム(Profile Atom)として決定する。すなわち、アプリケーション#nが送信したデータを、アプリケーション#1がそのまま利用することが可能な(アプリケーション#1が受け入れることが可能な)パラメータが決定される。
【0057】
図10は、このプロファイルアトム(プロファイルアトムディスリプション:Description of Profile Atom)の例を表している。この例においては、プロファイルスペースIDが「10000001」とされ、access methodは、HTTP tunnelingとされている。すなわち、図9におけるaccess methodのうち、番号2に対応する方が選択されている。
【0058】
また、bit rateは48kbps、 X scaleは160、Y scaleは120とされている。さらに、audio codecは、CELP 8kとされている。
【0059】
アプリケーション#nは、ステップS42において、このようにして決定したプロファイルアトムを伴ったコネクト要求を発行する。ステップS43において、メディアIMクライアント#C1は、この要求を受信すると、ステップS44において、この要求を、メッセージング機能またはInfo/Query機能を利用して、サービスプロバイダ51に送信する。メディアIMサーバ14は、ステップS45において、この要求を受信すると、ステップS46において、その要求をメディアIMクライアント#P1に送信する。メディアIMクライアント#P1は、ステップS47において、メディアIMサーバ14からの要求を受信すると、これをステップS48において、アプリケーション#1に送信する。アプリケーション#1は、ステップS49において、この要求を受信する。
【0060】
アプリケーション#1は、この要求を受信すると、ステップS50において、サービスコンシューマ52(アプリケーション#n)がサービスプロバイダ51(アプリケーション#1)に対して接続するために必要な接続情報を含む応答を、サービスコンシューマ52に送信する。この接続情報は、例えば、URI(Uniform Resource Identifier)とすることができる。
【0061】
アプリケーション#1からステップS50の処理で送信された応答は、ステップS51において、メディアIMクライアント#P1で受信され、メディアIMクライアント#P1は、ステップS52において、その応答を、メッセージング機能またはInfo/Query機能を利用して、サービスコンシューマ52に向けて送信する。メディアIMサーバ14は、ステップS53において、メディアIMクライアント#P1からの応答を受信すると、ステップS54において、これをメディアIMクライアント#C1に送信する。メディアIMクライアント#C1は、ステップS55において、メディアIMサーバ14からの応答を受信すると、ステップS56において、これをアプリケーション#nに送信する。アプリケーション#nは、ステップS57において、この応答を受信する。
【0062】
アプリケーション#1は、ステップS50において、応答の送信を指示した後、アプリケーション#nからの直接の(メディアIMサーバ14を介さない)アクセスを待機している。そこで、ステップS58において、アプリケーション#nは、メディアIMサーバ14を介さずに、ピアツーピアで、アプリケーション#1のサービスURL(Uniform Resource Locator)にアクセスする。ステップS59において、アプリケーション#1は、アプリケーション#nからのピアツーピアのURLへのアクセスを受け付ける。
【0063】
以後、アプリケーション#1とアプリケーション#nは、ピアツーピアで情報を授受することが可能となる。
【0064】
以上のように、本発明のアプリケーションプラットフォームは、インスタントメッセージのプレゼンス機能、メッセージング機能、およびInfo/Query機能をベースとして、アプリケーションレベルでのプロファイルのネゴシエーションを実現する新たなプロトコルアーキテクチャを構築している。その結果、このアプリケーションプラットフォームにおけるマッチングメーキングの仕組みを用いることによって、パーソナルコンピュータ、モバイル機器などの能力が異なる(勿論、同一でもよいが)様々なデバイスに実装されたアプリケーション同志が、簡単かつ確実に接続可能となる。これにより、文字、音声、音楽、動画、静止画といった様々な情報からなるリッチメディア情報を、ピアツーピアコミュニケーションで伝送することが可能なシステムを実現することができる。この場合において、最終的に接続性が保証されたアプリケーション(サービスエンティティ同志)がピアツーピアでコミュニケーションを図ることができる。従って、ユーザは、特別の操作を行わずとも、簡単かつ確実に、情報を授受することが可能となる。
【0065】
上述したアプリケーション(サービスエンティティ)は、パーソナルコンピュータやネットワーク対応のCE(Consumer Electronics)機器のみならず、インターネット1上の商用アプリケーションサーバにも適用することが可能となる。
【0066】
例えば、図1のアプリケーションサーバ15においては、商用プリントサービスのアプリケーションが、サービスプロバイダとして、メディアIMクライアント#4上で実行される。従って、図1におけるパーソナルコンピュータ11,12あるいはPDA13は、アプリケーションサーバ15との間で上述した手順を実行することで、アプリケーションサーバ15が提供するプリントサービスを、インターネット1を介して利用することができる。
【0067】
従って、本発明においては、インターネット1に接続されている各サーバが提供しているサービスを検索することで、サービスプロバイダの一覧をBuddyリストとして、例えば、図11に示されるように、表示することができる。
【0068】
図11の例においては、PDA13に実装されたメディアIMクライアント#3上で、サービスコンシューマとして動作しているプリントサービスのアプリケーションが利用できるサービスプロバイダの一覧が表示されている。この場合において、プレゼンス機能を用いることによって、サービスコンシューマに応じてきめ細かく、かつ自由に、商用サービスのステータスを表現することができる。例えば、図11の例において、商用サービスを運用中であるか否かを、ランプアイコン13Aで表示するようにすることができる。この場合、例えば、運用中の商用サービスは、緑色で表示し、休止中の商用サービスは、赤色で表示するようにすることができる。また、図11の例においては、依頼したプリントが仕上がる時刻、価格などの細かい状況も、ステータス情報として表示されている。
【0069】
なお、当然のことながら、ユーザ端末上のサービスプロバイダとサービスコンシューマのアプリケーション間においても、ユーザインタフェースおよびプレゼンス機能により、相手先に応じたきめ細かいステータス表示をアプリケーション毎に行うことが可能である。
【0070】
図12は、パーソナルコンピュータ11の構成例を表している。なお、図示は省略するが、他のパーソナルコンピュータ12も同様に構成される。従って、この図12には、パーソナルコンピュータ12の構成としても、適宜、引用される。
【0071】
図12において、CPU(Central Processing Unit)121は、ROM(Read Only Memory)122に記憶されているプログラム、または記憶部128からRAM(Random Access Memory)123にロードされたプログラムに従って各種の処理を実行する。RAM123にはまた、CPU121が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0072】
CPU121、ROM122、およびRAM123は、バス124を介して相互に接続されている。このバス124にはまた、入出力インタフェース125も接続されている。
【0073】
入出力インタフェース125には、キーボード、マウスなどよりなる入力部126、CRT(Cathode Ray Tube)、LCD(Liquid Crystal display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部127、ハードディスクなどより構成される記憶部128、モデム、ターミナルアダプタなどより構成される通信部129が接続されている。通信部129は、インターネットを含むネットワークを介しての通信処理を行う。
【0074】
入出力インタフェース125にはまた、必要に応じてドライブ130が接続され、磁気ディスク141、光ディスク142、光磁気ディスク143、或いは半導体メモリ144などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部128にインストールされる。
【0075】
上述したアプリケーション#1(サービスプロバイダ51)またはアプリケーション#n(サービスコンシューマ52)は、CPU121により、RAM123にロードされ、実行される。
【0076】
以上においては、各サービス(サービスプロバイダ51やサービスコンシューマ52)がリンクスピードを設定する方法については、特に言及していないが、一般的には、各サービス(例えば、出願人会社が提供しているWith You Call(商標)のようなテレビ電話サービス)に応じて、ユーザが、適切なリンクスピードを手動で設定することになる。
【0077】
しかしながら、ユーザは、アクセスライン(リンク)に関する情報、特に、そのボトルネック速度を知ることは困難であり、また、複数のアクセスラインを使い分けるような環境では切換が面倒であるため、ユーザが、リンクスピードを手動で設定するのは必ずしも容易ではない。
【0078】
そこで、本発明においては、各装置(各メディアクライアント)が、次のようにしてリンク速度を測定する。
【0079】
図13は、このような機能を付加したネットワークシステムの構成例を表している。
【0080】
図13においては、パーソナルコンピュータ11,12、PDA13、メディアIMサーバ(Media IM Server)14、およびアプリケーションサーバ15に加えて、計測サーバ200が、ネットワークとしてのインターネット1に接続されている。
【0081】
メディアIMサーバ14は、基幹リンク221を介してインターネット1に接続されており、計測サーバ200は、基幹リンク222を介してインターネット1に接続されている。パーソナルコンピュータ11は、アクセスリンク223−1を介してインターネット1に接続されており、パーソナルコンピュータ12は、アクセスリンク223−2を介してインターネット1に接続されている。また、PDA13は、アクセスリンク223−3を介してインターネット1に接続されており、アプリケーションサーバ15は、基幹リンク220を介してインターネット1に接続されている。
【0082】
アクセスリンク223−1乃至アクセスリンク223−3は、ISDN(Integrated Service Digital Network)、ADSL(Asymmetric Digital Subscriber Line)等で構成される。
【0083】
基幹リンク222を介してインターネット1に接続されている計測サーバ200は、パーソナルコンピュータ11,12、およびPDA13が、それぞれ対応するアクセスリンク223−1乃至223−3のリンクスピード(伝送レート)を計測するためのサーバである。
【0084】
その他の構成は、上述した図1と同様であるので、その説明は省略する。
【0085】
次に、接続処理の詳細を、図14乃至図17を参照して説明する。
【0086】
この場合においては、上述した図4の処理の前に、メディアIMクライアント#P1とメディアIMクライアント#C1が、それぞれ、メディアIMサーバ14に対してログイン処理を行なうとともに、計測サーバ200との通信により速度計測処理(自分自身の伝送速度を知るための処理)を行なう。
【0087】
最初に、メディアIMクライアント#P1における、ログインおよび速度計測処理を、図14のフローチャートを参照して説明する。
【0088】
ステップS101において、メディアIMクライアント#P1は、メディアIMサーバ14にログインする(例えば、ログイン通知を送信する)。メディアIMサーバ14は、ステップS102において、メディアIMクライアント#P1からのログイン通知を受け取ると、受け付け処理を行い、ステップS103において、ログインが完了したことを示すログイン完了通知を、メディアIMクライアント#P1に送信する。
【0089】
メディアIMクライアント#P1は、ステップS104において、メディアIMサーバ14からのログイン完了通知を受け取ると、ステップS105において、計測サーバ200に対して、速度計測処理を実行する。計測サーバ200は、メディアIMクライアント#P1の処理に対応して、ステップS106において、メディアIMクライアント#P1との間で速度計測処理を実行する。速度計測処理により、メディアIMクライアント#P1は、自分自身の上り速度と下り速度(ボトルネックリンクの上り速度と下り速度)を取得することができる。この上り速度は、メディアIMクライアント#P1が、任意の端末に、情報を送信するときの速度(ビットレート)であり、下り速度は、メディアIMクライアント#P1が情報を受信するときの速度(ビットレート)である。なお、速度計測処理の詳細は、図23乃至図26を参照して後述する。
【0090】
次に、メディアIMクライアント#C1における、ログインおよび速度計測処理を、図15のフローチャートを参照して説明する。この処理も、図14の処理と同様に、上述した図4の処理の前に行なわれる。
【0091】
ステップS151において、メディアIMクライアント#C1は、メディアIMサーバ14にログインする(例えば、ログイン通知を送信する)。メディアIMサーバ14は、ステップS152において、メディアIMクライアント#C1からのログイン通知を受け取ると、受け付け処理を行い、ステップS153において、ログインが完了したことを示すログイン完了通知を、メディアIMクライアント#C1に送信する。
【0092】
メディアIMクライアント#C1は、ステップS154において、メディアIMサーバ14からのログイン完了通知を受け取ると、ステップS155において、計測サーバ200に対して、速度計測処理を実行する。計測サーバ200は、ステップS156において、メディアIMクライアント#C1のステップS155の処理に対応して、メディアIMクライアント#C1との間で速度計測処理を実行する。速度計測処理により、メディアIMクライアント#C1は、自分自身の上り速度と下り速度(ボトルネックリンクの上り速度と下り速度)を取得することができる。この上り速度は、メディアIMクライアント#C1が、任意の端末に、情報を送信するときの速度であり、下り速度は、メディアIMクライアント#C1が情報を受信するときの速度である。
【0093】
このように、メディアIMクライアント#P1とメディアIMクライアント#C1は、それぞれ、メディアIMサーバ14に対してログイン処理を行なった後に、自分自身の上り速度および下り速度を取得する。
【0094】
この実施の形態においては、図14と図15の処理が実行された後、上述した図4に示されるステップS1乃至ステップS9の処理が実行される。すなわち、これにより、サービスプロバイダ51(アプリケーション#1)は、名簿(Roster)に登録されている各メンバー(Buddy)に対して、自分自身が提供可能なサービスの種別を表すプロファイルスペースID(Profile Space ID)を通知し、アナウンスを受けたメンバー(サービスコンシューマ52)の1人であるメディアIMクライアント#C1は、自分自身がこのプロファイルを受け入れ可能であるか否かを判定(検証)し、その受け入れ可能なサービスコンシューマ52(アプリケーション#n)に対して、プレゼンスの内容(プロファイル)を通知する。
【0095】
次に、図5に示されるステップS10乃至ステップS25の処理に代えて、図16に示されるステップS210乃至225の処理が実行される。
【0096】
このステップS210乃至ステップS225の処理は、基本的に、図5のステップS10乃至ステップS25の処理と同様の処理であるが、図5のステップS16に対応するステップS216の処理と、図5のステップS24に対応するステップS224の処理が、図5におけるステップS16またはステップS24の処理と異なっている。
【0097】
その他の処理は、図5における場合と同様であるので、以下に、ステップS216の処理とステップS224の処理についてだけ説明する。
【0098】
図5のステップS16の処理では、メディアIMクライアント#P1は、メディアIMサーバ14からの要求(サービスプロバイダ51が提供するサービスのプロバイダプロファイルの送信の要求)を、サービスプロバイダ51としてのアプリケーション#1に供給する(この要求には、サービスプロバイダ51を指定するための宛先情報が含まれている)。このステップS16の処理では、メディアIMサーバ14からの要求だけをアプリケーション#1に供給するようにしていたが、ステップS216の処理では、さらにメディアIMクライアント#P1は、自分自身がメディアIMクライアント#C1にデータを送信する立場にあるとき、その上りの速度情報を付加する。この上りの速度情報は、図14のステップS105の速度計測処理により計測されたメディアIMクライアント#P1の上りの速度情報である。
【0099】
例えば、図14のステップS105の処理により取得された上り速度(ビットレート)が128Kbpsである場合、上り速度(ビットレート)が128Kbpsであることを示す情報が、サービスプロバイダ51としてのアプリケーション#1に送信される。
【0100】
また、図5のステップS24においては、メディアIMクライアント#C1は、メディアIMクライアント#P1からの返信(サービスコンシューマ52に対して提供するプロバイダプロファイルの応答)を、アプリケーション#nに送信する。このステップS24の処理では、メディアIMクライアント#P1からの返信(メディアIMクライアント#P1の上りの速度情報を含む)だけをアプリケーション#nに送信するようにしていたが、ステップS224の処理では、メディアIMクライアント#C1は、自分自身がデータを受信する立場にあるとき、その下りの速度情報をこれに付加する。この下りの速度情報は、図15のステップS155の速度計測処理により計測されたメディアIMクライアント#C1の下りの速度情報である。
【0101】
例えば、図15のステップS155の処理により取得された下り速度(ビットレート)が48Kbpsである場合、下り速度(ビットレート)が48Kbpsであることを示す情報が、サービスコンシューマ52としてのアプリケーション#nに送信される。これにより、アプリケーション#nには、メディアIMクライアント#P1の上り速度と、メディアIMクライアント#C1の下り速度の両方が通知されることになる。
【0102】
その他の処理は、図5における場合と同様である。
【0103】
この処理により、アプリケーション#1は、メディアIMクライアント#P1の上りの速度を知ることができ、アプリケーション#nは、メディアIMクライアント#C1の下りの速度を知ることができ、よって、ユーザは、アプリケーション(アプリケーション#1またはアプリケーション#n)に、伝送速度(リンクスピード)を手動で設定する手間を省くことができる。また、正確な伝送速度を設定することができる。これにより、迅速かつ簡単に、適正な伝送速度で通信を行なうことが可能となる。
【0104】
図16に示されるステップS210乃至ステップS225の処理(図5のステップS10乃至ステップS25に対応する処理)が実行された後、図6に示されるステップS26乃至ステップS41の処理に代えて、図17に示されるステップS226乃至ステップS241の処理が実行される。
【0105】
このステップS226乃至ステップS241の処理は、基本的に、図6のステップS26乃至ステップS41の処理と同様の処理であるが、図6のステップS26に対応する図17のステップS226の処理と、図6のステップS33に対応する図17のステップS233の処理が、図6におけるステップS26またはステップS33の処理と異なっている。
【0106】
その他の処理は、図6における場合と同様であるので、以下にステップS226の処理とステップS233の処理についてだけ説明する。
【0107】
サービスプロバイダ51のプロバイダプロファイルと、自分自身が形成するコンシューマプロファイルとの整合性が確認された場合、アプリケーション#nは、図6のステップS26の処理では、サービスプロバイダ51に対して、提供されたサービスへの自分自身(サービスコンシューマ52)の登録を要求する。このステップS26の処理では、この登録の要求を、メディアIMクライアント#C1に指示するだけであったが、ステップS226の処理では、この登録要求に、メディアIMクライアント#P1とメディアIMクライアント#C1の間の伝送速度(設定速度)が付加される。このステップS226の処理(提供されたサービスへの登録要求処理)の詳細を、図18のフローチャートを参照して説明する。
【0108】
上述したように、図16のステップS225で、メディアIMクライアント#C1からアプリケーション#nに供給されたプロバイダプロファイルには、ステップS216の処理で付加された、メディアIMクライアント#P1の上りの速度情報が含まれているとともに、ステップS224の処理により付加された、メディアIMクライアント#C1の下りの速度情報が含まれている。
【0109】
ステップS301において、アプリケーション#nは、サービスプロバイダ51のプロバイダプロファイルに含まれる、メディアIMクライアント#P1の上りの速度情報(図16のステップS216で付加された速度情報)を取得し(読み出し)、ステップS302において、サービスプロバイダ51(メディアIMクライアント#P1)の上り速度と、自分自身(サービスコンシューマ52、すなわち、メディアIMクライアント#C1)の下り速度とを比較し、遅い速度を設定速度とする。いまの例の場合、メディアIMクライアント#P1の上り速度は、128Kbpsであるのに対し、メディアIMクライアント#C1の下り速度は、48Kbpsであるので、設定速度(伝送速度)は、48Kbps(メディアIMクライアント#C1の下り速度)となる。
【0110】
ステップS303において、アプリケーション#nは、提供されたサービスへの登録要求に、設定速度(伝送速度)を付加して送信する。
【0111】
また、図6のステップS33においては、アプリケーション#1は、メディアIMクライアント#C1からの登録要求を受信するだけであったが、ステップS233の処理においては、アプリケーション#1は、メディアIMクライアント#C1からの登録要求に付加されている(ステップS303(ステップS226)の処理で付加された)設定速度を受信し、この設定速度を、自分自身の情報送信速度に設定する。このステップS233の処理(登録要求の受信および速度設定処理)の詳細を、図19のフローチャートを参照して説明する。この処理は、図18の処理に対応して実行される。
【0112】
上述した図18の処理(ステップS226の処理)で、サービスコンシューマ52からは、登録要求に設定速度が付加されて送信されてくるので、ステップS351において、アプリケーション#1は、設定速度を含む登録要求を受信する。
【0113】
ステップS352において、アプリケーション#1は、自分自身の情報送信速度を、ステップS351の処理で受信した登録要求に含まれる設定速度に設定する。メディアIMクライアント#P1の上り速度は、128Kbpsであるが、いまの例の場合、設定速度は48Kbpsであるので、アプリケーション#1は、自分自身の情報送信速度(上り速度)を、48Kbpsに設定する。
【0114】
これにより、情報を送信(提供)する装置が、情報を受信する装置との間において、最適な通信速度(設定速度)で情報を送信することができる。
【0115】
なお、ステップS226とステップS233の処理は、図18と図19に示されるだけでなく、図20と図21に示されるようにすることもできる。具体的には、図18と図19に示される処理では、サービスコンシューマ52としてのアプリケーション#nが、通信速度(設定速度)を決定するようにしているが、図20と図21に示される処理では、サービスプロバイダ51としてのアプリケーション#1が、通信速度(設定速度)を決定する。以下にこの場合について説明する。
【0116】
この例では、サービスプロバイダ51のプロバイダプロファイルと、自分自身が形成するコンシューマプロファイルとの整合性が確認された場合、アプリケーション#nは、ステップS226で、図20のフローチャートに示される処理を実行する。
【0117】
すなわち、ステップS401において、アプリケーション#nは、サービスプロバイダ51のプロバイダプロファイルに含まれる、メディアIMクライアント#C1の下りの速度情報(図16のステップS224で付加された速度情報)を取得し、ステップS402において、提供されたサービスへの登録要求に、この下りの速度情報(メディアIMクライアント#C1の下りの速度情報)を付加して送信する。いまの例の場合、メディアIMクライアント#C1の下りの速度は、48Kbpsであるとの情報が付加される。
【0118】
一方、アプリケーション#1は、ステップS233で、図20に対応する図21に示される処理を実行する。
【0119】
上述した図20の処理(ステップS226の処理)で、サービスコンシューマ52からは、登録要求にメディアIMクライアント#C1(サービスコンシューマ52)の下りの速度情報が付加されて送信されてくるので、ステップS451において、アプリケーション#1は、この下りの速度情報を含む登録要求を受信すると、その下りの速度情報を抽出する。
【0120】
ステップS452において、アプリケーション#1は、サービスコンシューマ52(メディアIMクライアント#C1)の下り速度と、自分自身(メディアIMクライアント#P1)の上り速度のうち、遅い速度を設定速度とする。いまの例の場合、メディアIMクライアント#P1の上り速度は、128Kbpsであるのに対し、メディアIMクライアント#C1の下り速度は、48Kbpsであるので、設定速度は、48Kbps(メディアIMクライアント#C1の下り速度)となる。
【0121】
ステップS453において、アプリケーション#1は、自分自身の情報送信速度を、ステップS452の処理で求めた設定速度に設定する。いまの例の場合、メディアIMクライアント#P1の上り速度は、128Kbpsであるが、設定速度は48Kbpsであるので、アプリケーション#1は、自分自身の情報送信速度(上り速度)を、48Kbpsに設定する。これにより、情報を送信(提供)する装置が、情報を受信する装置との間において、最適な通信速度で情報を送信することができる。
【0122】
このように、ステップS226とステップS233の処理を、図18と図19に示される処理としてもよいし、図20と図21に示される処理としてもよい。また、情報の送信と受信の一方だけを行うのではなく、両方を行う場合、上りの速度と下りの速度の両方を送信し、それぞれの設定速度を設定するようにしてもよい。また、一方の端末にのみ、速度情報を集約するのではなく、両方に通知し、いずれもが通信速度を制御できるようにしてもよい。
【0123】
次に、図14のステップS105、または図15のステップS155の速度計測処理の詳細を、以下に説明する。
【0124】
ここでは、速度の計測方法として、TCP(Transmission Control Protocol)で実装されているHTTPを使用して行なう方法と、UDP(User Datagram Protocol)で実装されているパケットペア(Packet Pair)を使用して行なう方法について説明する。
【0125】
最初に、HTTPを使用して速度の計測を行なう方法を説明する。
【0126】
図22は、メディアIMクライアントにおける、計測サーバ200を用いた下り速度計測処理を説明するフローチャートである。いまの場合、図15のメディアIMクライアント#C1が下り速度を計測する場合について説明する。例えば、メディアIMクライアント#C1が、図13のパーソナルコンピュータ12に実装されている場合、パーソナルコンピュータ12としてのメディアIMクライアント#C1は、アクセスリンク223−2を介してインターネット1に接続されている。また、計測サーバ200は、基幹リンク222を介してインターネット1に接続されている。
【0127】
ステップS501において、パーソナルコンピュータ12に実装されているメディアIMクライアント#C1は、計測サーバ200にアクセスし、計測用パケットの送信を要求する。この要求に基づいて、計測サーバ200は、計測用パケットを送信してくる。この計測用パケットは、基幹リンク222、インターネット1、アクセスリンク223−2を介して伝送されてくる。
【0128】
ステップS502において、メディアIMクライアント#C1は、計測サーバ200から送信された計測用パケットを受信する。この計測用パケットは、伝送レートを計測するためのものであるので、決まったデータ量のものであればよい。しかしながら、アナログモデム等では、データの圧縮が行われ、見かけ上のスループットが高くなる可能性があるため、ランダムなデータを使って計測したほうがよい。
【0129】
ステップS503において、メディアIMクライアント#C1は、最初のデータを受信してから、例えば、10秒間に受信したデータ量Dd(ビット)を計測する。
【0130】
ステップS504において、メディアIMクライアント#C1は、「Dd/10」を演算し、これを下り速度Vd(ビット/秒)とする(すなわち、「Vd=Dd/10」を演算する)。
【0131】
計測サーバ200は、計測機能を実現するために、充分広い(少なくともアクセスリンク223−1乃至223−3より広い)帯域の基幹リンク222に接続されている。従って、この下り速度Vdの値は、基幹リンク222とアクセスリンク223−2よりなる伝送路のうちのボトルネックとしてのアクセスリンク223−2の速度となる。
【0132】
図22の処理により、パーソナルコンピュータ12に実装されているメディアIMクライアント#C1の下り速度Vdが求められる。
【0133】
次に、図23のフローチャートを参照して、メディアIMクライアントにおける、計測サーバ200を用いた上り速度計測処理を説明する。いまの場合、図14のメディアIMクライアント#P1が上り速度を計測する場合について説明する。メディアIMクライアント#P1が、図13のパーソナルコンピュータ11に実装されている場合、パーソナルコンピュータ11としてのメディアIMクライアント#P1は、アクセスリンク223−1を介してインターネット1に接続されている。
【0134】
ステップS551において、メディアIMクライアント#P1は、アクセスリンク223−1とインターネット1を介して、計測サーバ200にアクセスし、計測を要求するとともに、計測用パケットを送信する。このパケットは、伝送レートを計測するためのものであるので、データ量が明らかなものであればよい。しかしながら、アナログモデム等では、データの圧縮が行われ、見かけ上のスループットが高くなる可能性があるため、ランダムなデータを使って計測したほうがよい。
【0135】
ステップS552において、メディアIMクライアント#P1は、最初のデータを送信してから、例えば、10秒間に送信したデータ量Du(ビット)を計測する。
【0136】
ステップS553において、メディアIMクライアント#P1は、「Du/10」を演算し、これをパーソナルコンピュータ11(メディアIMクライアント#P1)の上り速度Vu(ビット/秒)とする(すなわち、「Vu=Du/10」を演算する)。
【0137】
アクセスリンク223−1に較べて基幹リンク222は充分広い帯域を有するので、上り速度Vuは、アクセスリンク223−1と基幹リンク222よりなる伝送路のうちのボトルネックとしてのアクセスリンク223−1の速度ということになる。
【0138】
図23の処理により、上り速度Vuが求められる。
【0139】
なお、メディアIMクライアント#C1も、上り速度を計測する場合には、図23の処理を実行し、メディアIMクライアント#P1も、下り速度を計測する場合には、図22の処理を実行する。
【0140】
すなわち、図22と図23の処理は、各メディアIMクライアント(メディアIMクライアント#1乃至メディアIMクライアント#4)が、上り速度と下り速度を求めるときに、適宜、実行する処理である。
【0141】
次に、パケットペアを使用した、速度計測方法を説明する。
【0142】
図24は、メディアIMクライアントにおける、パケットペアによる速度測定処理を説明するフローチャートである。例えば、図14のメディアIMクライアント#P1が速度を計測する場合について説明する。メディアIMクライアント#P1が、図13のパーソナルコンピュータ11に実装されている場合、パーソナルコンピュータ11としてのメディアIMクライアント#P1は、アクセスリンク223−1を介してインターネット1に接続されている。また、計測サーバ200は、基幹リンク222を介してインターネット1に接続されている。
【0143】
ステップS601において、パーソナルコンピュータ11に実装されているメディアIMクライアント#P1は、パケットペアを生成する。生成されるパケットペアは任意長である。パケットペアは、その容量が大きいほど、ボトルネックを通過するときの時間がかかるので、測定誤差が軽減されるというメリットがある。しかし、ネットワークへの負担も大きくなるため、パケットペアの各パケットのパケット長は、例えば、500バイト(IPヘッダを含む)とされる。また、パケットペアは2つのパケットにより構成される。
【0144】
1つのパケットのフォーマットは、例えば、図25に示される構成とされる。図25において、Header(ヘッダ)には、プロトコルバージョン情報である「Ver」、プロトコルタイプである「Type(タイプ)」、IP/UDPヘッダを除いたパケット長「Length(レングス)」、シーケンス番号である「Sequence」、予備領域である「Reserved」、および、測定結果である「Bitrate(ビットレート)」が含まれている。「Payload(ペイロード)」には、任意のデータが埋め込まれる。
【0145】
ヘッダに含まれるシーケンス番号は、計測サーバ200内で、パケットロスが発生したか否かを示すための情報となる。タイプには、いまの場合、RequestまたはReplyが書き込まれる。ペイロードには、任意のデータを埋め込むことができるが、アナログモデム等では、圧縮が行なわれるので、ランダムなデータを入れた方がよい。
【0146】
図24に戻って、ステップS602において、メディアIMクライアント#P1は、変数nに1を初期設定し、ステップS603において、シーケンス番号が連続する2つのパケットを、計測サーバ200に送信する。このパケットは、アクセスリンク223−1、インターネット1、および基幹リンク222を介して、計測サーバ200に送信される。メディアIMクライアント#P1は、できるだけ素早く、2つの連続するパケットを送信する。シーケンス番号は、連続であれば、偶数、奇数のどちらから開始してもよいが、ここでは便宜上、偶数、奇数の順で送るものとする。
【0147】
ステップS604において、メディアIMクライアント#P1は、n=3であるか否かを判定し、n=3でないと判定した場合、ステップS605において、変数nの値を1だけインクリメントする。いまの例の場合、ステップS602においてn=1とされているので、n=1+1=2とされる。
【0148】
ステップS606において、メディアIMクライアント#P1は、前回のパケットを送信後(ステップS603の処理の後)、1秒間が経過したか否かを判定し、1秒間が経過するまで待機する。ステップS606において、1秒間が経過したと判定された場合、処理はステップS603に戻り、それ以降の処理が繰り返される。すなわち、再度、シーケンス番号が連続する2つのパケット(1つのパケットペア)が送信され、nが1だけ加算される処理が、n=3とされるまで繰り返される。その結果、3組のパケットペアが送出される。
【0149】
ステップS604において、n=3であると判定された場合、計測サーバ200は、上述した3回のパケットペアの送信に対する速度(上り速度)を求め、パーソナルコンピュータ11に実装されているメディアIMクライアント#P1に送信してくる(後述する図26のステップS757)。そこで、ステップS607において、メディアIMクライアント#P1は、計測サーバ200から、上りの速度の情報を受信し、処理を終了する。
【0150】
測定誤差を低減するために、1回の測定セット(速度測定処理)では、連続して複数回のパケットペアを送信することが望ましい。しかしながら、短時間のうちに、何回も測定パケットを送信することはネットワーク(アクセスリンク223−1、インターネット1、および基幹リンク222)に負荷をかけることになるので、図24に示されるように、1秒間に1回(つまり、1秒間に2パケット)送信するようにし、さらに、これを3回繰り返すことにより、1回の測定セット(速度測定処理)を終了させる。この例の場合、1回の測定セット(速度測定処理)は、約3秒強の時間となり、その間に、3回の測定ができることになる。
【0151】
次に、図24のパーソナルコンピュータ11の処理に対応して実行される計測サーバ200による測定処理を、図26のフローチャートを参照して説明する。
【0152】
ステップS751において、計測サーバ200は、変数nに1を初期設定し、ステップS752において、メディアIMクライアント#P1からパケットペアを受信する。このパケットペアは、上述した図24のステップS603の処理でメディアIMクライアント#P1により送信されたものである(n=1において送信されたパケットペア)。また、このパケットペアは、アクセスリンク223−1、インターネット1、および基幹リンク222を介して送信されてきたものである。
【0153】
ステップS752において、計測サーバ200は、ボトルネックリンクの速度Bを演算する。ボトルネックリンクの速度Bは、B=L×8/Tにより演算される。Lはパケット長であり(いまの例の場合、500バイト)、Tは、シーケンス番号が連続する2つのパケット(図24のステップS603で送信されたn=1における2つの連続するパケット)において、1つ目のパケットが到着した時刻と、2つ目のパケットが到着した時刻との差に対応する時間である。これにより、n=1における1回目のパケットペアによる、ボトルネックリンクの速度Bが演算される。
【0154】
図27は、パケットペアによる計測の概念図である。図24のステップS603でメディアIMクライアント#P1から送信された2つの連続するパケットのうち、1番目に送信される、シーケンス番号が偶数であるパケットが、パケット302であり、2番目に送信される、シーケンス番号が奇数であるパケットが、パケット303である。
【0155】
メディアIMクライアント#P1からパケットペアが送信されたとき、パケット302とパケット303は素早く連続的に送信されているので、2つのパケットの間隔はほとんどない。しかしながら、ボトルネックである狭帯域のアクセスリンク223−1を通過することにより、パケットの伝送には長い時間が必要となる。その後、広い帯域の基幹リンク222を通過することにより、パケットの伝送に必要な時間は短くなるので、パケット302とパケット303の間隔が開いてしまう。そのため、パケット302とパケット303の計測サーバ200に到着する時刻にずれが生じることになる(パケット302とパケット303の到着時刻のズレである時間がTとなる)。
【0156】
図26に戻って、ステップS754において、計測サーバ200は、n=3であるか否かを判定し、n=3でないと判定した場合、ステップS755において、変数nを1だけインクリメントする。いまの例の場合、n=1+1=2とされる。その後、処理はステップS752に戻り、それ以降の処理が繰り返される。すなわち、2回目のパケットペア(図24のn=2で送信されたパケットペア)が受信され、2回目のボトルネックリンクの速度Bが演算され、3回目(図24のn=3)のパケットペアが受信され、3回目のボトルネックリンクの速度Bが演算される。
【0157】
ステップS754において、n=3であると判定された場合、ステップS756において、計測サーバ200は、速度Bの平均値を演算する。例えば、n=1において演算された速度Bを速度B1、n=2において演算された速度Bを速度B2、n=3において演算された速度Bを速度B3とした場合、「(B1+B2+B3)/3」が演算される。
【0158】
ステップS757において、計測サーバ200は、ステップS756の処理で演算した速度Bの平均値をパーソナルコンピュータ11に送信(通知)する。
【0159】
図24と図26の処理により、パーソナルコンピュータ11は、パケットペアを用いて、上りの速度を測定することができる。
【0160】
なお、下りの速度についても、図24および図26と同様の処理により求めることができる。
【0161】
以上のようにして、例えば、メディアIMクライアント#1であるパーソナルコンピュータ11が、ログインした後、ボトルネックリンクの速度の測定を行ない、通信対象となるメディアIMクライアント#2であるパーソナルコンピュータ12もまた、ログインした後、ボトルネックリンクの速度の測定を行ない、お互いのボトルネックリンクの速度情報を交換するようにしたので、最適な速度でコミュニケーションすることが可能となる。
【0162】
勿論、ログイン前にボトルネックリンクの速度を測定するようにしてもよい。要は、実際に通信するときとほぼ同一のトラフィックの状況が計測できるタイミングであればよい。
【0163】
アプリケーションプラットフォームは、インスタントメッセージのプレゼンス機能、メッセージング機能、およびInfo/Query機能に加えて、さらに、伝送速度を計測する機能をベースとして、アプリケーションレベルでのプロファイルのネゴシエーションを実現する新たなプロトコルアーキテクチャを構築している。その結果、このアプリケーションプラットフォームにおけるマッチングメーキングの仕組みを用いることによって、パーソナルコンピュータ、モバイル機器などの能力が異なる(勿論、同一でもよいが)様々なデバイスに実装されたアプリケーション同志が、簡単かつ確実に接続可能となる。このとき、能力が異なる様々なデバイスのボトルネックリンクの伝送速度も計測されるので、最適な伝送速度を設定できる。これにより、文字、音声、音楽、動画、静止画といった様々な情報からなるリッチメディア情報を、ピアツーピアコミュニケーションで伝送することが可能なシステムを実現することができる。この場合において、最終的に接続性が保証されたアプリケーション(サービスエンティティ同志)がピアツーピアでコミュニケーションを図ることができる。また、伝送レートを考慮した情報の伝送を行なうことが可能となる。従って、ユーザは、特別の操作を行わずとも、簡単かつ確実に、情報を授受することが可能となる。
【0164】
なお、上述した処理は、ネットワーク対応のCE機器等の場合、ハードウェアにより実行することもできる。勿論、ソフトウェアにより実行することもできる。
【0165】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【0166】
この記録媒体は、図12に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク141(フロッピディスクを含む)、光ディスク142(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク143(MD(Mini-Disk)を含む)、もしくは半導体メモリ144などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM122や、記憶部128に含まれるハードディスクなどで構成される。
【0167】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0168】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0169】
【発明の効果】
以上の如く、本発明によれば、情報処理装置の間で情報を授受することが可能となる。特に、ユーザに負担をかけることなく、迅速かつ簡単に、伝送速度の伝送路に接続されている異なる装置間で、確実に接続し、情報を伝送することが可能となる。また、時間帯によってトラフィック状況が変化しても、確実に情報の伝送を行なうことが可能となる。
【図面の簡単な説明】
【図1】本発明を適用したネットワークシステムの構成例を示す図である。
【図2】ソフトウェアの階層を説明する図である。
【図3】本発明を適用したネットワークシステムの動作の概要を説明する図である。
【図4】図1のネットワークシステムの動作を説明するフローチャートである。
【図5】図1のネットワークシステムの動作を説明するフローチャートである。
【図6】図1のネットワークシステムの動作を説明するフローチャートである。
【図7】図1のネットワークシステムの動作を説明するフローチャートである。
【図8】プロファイルスペースの例を示す図である。
【図9】プロファイルディスクリプションの例を示す図である。
【図10】プロファイルアトムの例を示す図である。
【図11】サービスプロバイダの一覧の表示例を示す図である。
【図12】パーソナルコンピュータの構成例を示すブロック図である。
【図13】本発明を適用したネットワークシステムの構成例を示す図である。
【図14】図13のネットワークシステムの動作を説明するフローチャートである。
【図15】図13のネットワークシステムの動作を説明するフローチャートである。
【図16】図13のネットワークシステムの動作を説明するフローチャートである。
【図17】図13のネットワークシステムの動作を説明するフローチャートである。
【図18】図17のステップS226の処理を説明するフローチャートである。
【図19】図17のステップS233の処理を説明するフローチャートである。
【図20】図17のステップS226の処理を説明するフローチャートである。
【図21】図17のステップS233の処理を説明するフローチャートである。
【図22】 図15のステップS155の処理を説明するフローチャートである。
【図23】図14のステップS105の処理を説明するフローチャートである。
【図24】図14のステップS105の処理を説明するフローチャートである。
【図25】パケットフォーマットの例を説明する図である。
【図26】図14のステップS105の処理を説明するフローチャートである。
【図27】パケットペアによる計測を説明する図である。
【符号の説明】
1 インターネット, 11,12 パーソナルコンピュータ, 13 PDA, 14 メディアIMサーバ, 31 IPネットワークトランスポート層, 32 メディアIMクライアントミドルウェア, 33 API, 200 計測サーバ, 220,221,222 基幹リンク, 223−1乃至223−3 アクセスリンク
【発明の属する技術分野】
本発明は、情報処理装置および方法、並びにプログラムに関し、特に、異なる伝送速度の伝送路に接続された装置間で確実に接続ができるようにした情報処理装置および方法、並びにプログラムに関する。
【0002】
【従来の技術】
最近、インターネットが普及し、インターネットを利用して各種のデータを相手側と授受するユーザが増えてきた。
【0003】
しかしながら、従来、例えば、相手側の装置に対して所定の画像を伝送しようとした場合、相手側の装置が接続されている伝送路の伝送速度と、自分自身の装置が接続されている伝送路の伝送速度が異なるため、安定して画像データを伝送することができなくなるといった事態が発生することがあった。
【0004】
そこで、データ送信側の装置が、パケットの到着遅延からネットワークの輻輳を検出し、検出結果を基に、データ送信レートを制御するという方法が提案されている(例えば、特許文献1参照)。
【0005】
【特許文献1】
特開平11−308271号公報
【0006】
【発明が解決しようとする課題】
しかしながら、特許文献1に記載の方法では、データの送受信が開始されるまで実際のデータ速度が分からないという課題があった。
【0007】
本発明は、このような状況に鑑みてなされたものであり、迅速かつ確実に、そして、ユーザに負担をかけることなく、伝送路の状況に影響されずに、相手側の装置と確実に接続することができるようにして、ユーザビリティを向上させるようにするものである。
【0008】
【課題を解決するための手段】
本発明の情報処理装置は、第2の他の情報処理装置にログインするログイン手段と、ログイン手段によりログインする前または後に、ネットワークを含む伝送路の伝送速度を計測する計測手段と、計測手段により計測された伝送速度を、第2の他の情報処理装置を介して第1の他の情報処理装置に通知する通知手段と、計測手段により計測された伝送速度に基づいて設定された伝送速度で第1の他の情報処理装置と通信する通信手段とを備えることを特徴とする。
【0009】
前記第1の他の情報処理装置が計測した伝送速度を、第2の他の情報処理装置を介して受信する受信手段と、受信手段により受信された伝送速度と、計測手段により計測された伝送速度に基づいて、第1の他の情報処理装置との通信の伝送速度を設定する設定手段とをさらに備えるようにすることができる。
【0010】
前記計測手段は、ネットワークに接続されている計測用のサーバを利用して伝送速度を計測するようにすることができる。
【0011】
本発明の情報処理方法は、第2の他の情報処理装置にログインするログインステップと、ログインステップの処理によりログインする前または後に、ネットワークを含む伝送路の伝送速度を計測する計測ステップと、計測ステップの処理により計測された伝送速度を、第2の他の情報処理装置を介して第1の他の情報処理装置に通知する通知ステップと、計測ステップの処理により計測された伝送速度に基づいて設定された伝送速度で第1の他の情報処理装置と通信する通信ステップとを含むことを特徴とする。
【0012】
本発明のプログラムは、第2の他の情報処理装置にログインするログインステップと、ログインステップの処理によりログインする前または後に、ネットワークを含む伝送路の伝送速度を計測する計測ステップと、計測ステップの処理により計測された伝送速度を、第2の他の情報処理装置を介して第1の他の情報処理装置に通知する通知ステップと、計測ステップの処理により計測された伝送速度に基づいて設定された伝送速度で第1の他の情報処理装置と通信する通信ステップとを含む処理をコンピュータに実行させることを特徴とする。
【0013】
本発明の情報処理装置および方法、並びにプログラムにおいては、第2の他の情報処理装置にログインされ、ログインされる前または後に、ネットワークを含む伝送路の伝送速度が計測されるとともに、第2の他の情報処理装置を介して第1の他の情報処理装置に通知され、計測された伝送速度に基づいて設定された伝送速度で第1の他の情報処理装置と通信が行われる。
【0014】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【0015】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【0016】
請求項1に記載の情報処理装置は、ネットワーク(例えば、図13のインターネット1)を介して第1の他の情報処理装置(例えば、図16のメディアIMクライアント#C1を有する図13のパーソナルコンピュータ12)と通信する情報処理装置(例えば、図16のメディアIMクライアント#P1を有する図13のパーソナルコンピュータ11)であって、第2の他の情報処理装置(例えば、図13のメディアIMサーバ14)にログインするログイン手段(例えば、図14のステップS101の処理を実行する図12のCPU121)と、前記ログイン手段によりログインする前または後に、前記ネットワークを含む伝送路の伝送速度を計測する計測手段(例えば、図14のステップS105の処理を実行する図12のCPU121)と、前記計測手段により計測された前記伝送速度を、前記第2の情報処理装置を介して前記第1の他の情報処理装置に通知する通知手段(例えば、図16のステップS216乃至ステップS220の処理を実行する図12のCPU121)と、前記計測手段により計測された前記伝送速度に基づいて設定された伝送速度で前記第1の他の情報処理装置と通信する通信手段(例えば、図12の通信部129)とを備えることを特徴とする。
【0017】
請求項2に記載の情報処理装置は、前記第1の他の情報処理装置が計測した前記伝送速度(例えば、メディアIMクライアント#C1が計測した上り速度)を、前記第2の他の情報処理装置を介して受信する受信手段(例えば、図18のステップS301の処理を実行する図12の通信部129)と、前記受信手段により受信された前記伝送速度と、前記計測手段により計測された前記伝送速度(自分自身の下り速度)に基づいて、前記第1の他の情報処理装置との通信の伝送速度を設定する設定手段(例えば、図18のステップS302の処理を実行する図12のCPU121)とをさらに備えることを特徴とする。
【0018】
請求項3に記載の情報処理装置は、前記計測手段が、前記ネットワークに接続されている計測用のサーバ(例えば、図13の計測サーバ200)を利用して前記伝送速度を計測することを特徴とする。
【0019】
請求項4に記載の情報処理方法は、ネットワーク(例えば、図13のインターネット1)を介して第1の他の情報処理装置(例えば、図16のメディアIMクライアント#C1を有する図13のパーソナルコンピュータ12)と通信する情報処理装置(例えば、図16のメディアIMクライアント#P1を有する図13のパーソナルコンピュータ11)の情報処理方法であって、第2の他の情報処理装置にログインするログインステップ(例えば、図14のステップS101)と、前記ログインステップの処理によりログインする前または後に、前記ネットワークを含む伝送路の伝送速度を計測する計測ステップ(例えば、図14のステップS105)と、前記計測ステップの処理により計測された前記伝送速度を、前記第2の情報処理装置を介して前記第1の他の情報処理装置に通知する通知ステップ(例えば、図16のステップS216乃至ステップS220)と、前記計測ステップの処理により計測された前記伝送速度に基づいて設定された伝送速度で前記第1の他の情報処理装置と通信する通信ステップ(例えば、図12の通信部129が実行する処理)とを含むことを特徴とする。
【0020】
請求項5に記載のプログラムは、ネットワーク(例えば、図13のインターネット1)を介して第1の他の情報処理装置(例えば、図16のメディアIMクライアント#C1を有する図13のパーソナルコンピュータ12)と通信する情報処理装置(例えば、図16のメディアIMクライアント#P1を有する図13のパーソナルコンピュータ11)のプログラム(例えば、図16のメディアIMクライアント#P1)であって、第2の他の情報処理装置にログインするログインステップ(例えば、図14のステップS101)と、前記ログインステップの処理によりログインする前または後に、前記ネットワークを含む伝送路の伝送速度を計測する計測ステップ(例えば、図14のステップS105)と、前記計測ステップの処理により計測された前記伝送速度を、前記第2の情報処理装置を介して前記第1の他の情報処理装置に通知する通知ステップ(例えば、図16のステップS216乃至ステップS220)と、前記計測ステップの処理により計測された前記伝送速度に基づいて設定された伝送速度で前記第1の他の情報処理装置と通信する通信ステップ(例えば、図12の通信部129が実行する処理)とを含む処理をコンピュータに実行させることを特徴とする。
【0021】
図1は、本発明を適用したネットワークシステムの構成例を表している。このネットワークシステムにおいては、インターネット1を介して、メディアインスタントメッセージサーバ(Media IM Server)14に対して、ユーザ端末として、パーソナルコンピュータ11,12,並びにPDA(Personal Digital Assistants)13が接続されている。メディアIMサーバ14にはまた、アプリケーションサーバ15もインターネット1を介して接続されている。
【0022】
パーソナルコンピュータ11には、ミドルウェアとしてメディアIMクライアント#1が実装されており、パーソナルコンピュータ12には、ミドルウェアとしてメディアIMクライアント#2が実装されている。同様に、PDA13には、ミドルウェアとしてメディアIMクライアント#3が実装されている。
【0023】
アプリケーションサーバ15には、ミドルウェアとしてメディアIMクライアント#4が実装されている。アプリケーションサーバ15は、プリントサービス1乃至プリントサービス7を、アクセスしてきたユーザに対して提供する。
【0024】
メディアIMサーバ14は、これらのメディアIMクライアント#1乃至メディアIMクライアント#4の相互のインスタントメッセージ処理を制御する。
【0025】
図2は、ソフトウェアの構成を表している。上述したメディアIMクライアント#1乃至メディアIMクライアント#4は、図2において、メディアIMクライアントミドルウェア32として示されている。このメディアIMクライアントミドルウェア32は、IPネットワークトランスポート層31とAPI(Application Program Interface)33との間に配置されている。API33は、アプリケーション#1乃至アプリケーション#nと、メディアIMクライアントミドルウェア32との間のインタフェース処理を実行する。メディアIMクライアントミドルウェア32は、API33とIPネットワークトランスポート層31とのインタフェース処理を実行する。
【0026】
アプリケーション(Application)#1乃至アプリケーション#nは、それぞれサービスエンティティを構成する。
【0027】
このネットワークシステムにおいては、図3に示されるように、サービスを提供する側のアプリケーション(図3の例では、Application#1)がサービスプロバイダ(Service Provider)51とされ、そのサービスの提供を受ける側のアプリケーション(図3の例では、Application#n)が(サービスを消費する側が)サービスコンシューマ(Service Consumer)52とされる。
【0028】
サービスプロバイダ51とサービスコンシューマ52は、対応するメディアIMクライアント#P1およびメディアIMクライアント#C1を介して、インスタントメッセージのプレゼンス機能、メッセージング機能、またはInfo/Query機能を用いて、接続のためのネゴシエーション処理を実行する。ネゴシエーションにより、相手側と接続が可能であることが確認された後、サービスプロバイダ51とサービスコンシューマ52は、ピアツーピア(P2P)で、接続処理を実行する。
【0029】
サービスプロバイダ51とサービスコンシューマ52は、それぞれサービスエンティティを構成する。サービスエンティティは、そのものが1つのアプリケーションである場合もあれば、複数のサービスエンティティの集合が1つのアプリケーションを形成する場合もある。以下においては、簡単のため、1つのサービスエンティティが1つのアプリケーションに対応しているものとする。
【0030】
次に、接続処理の詳細を図4乃至図7のフローチャートを参照して説明する。
【0031】
ステップS1において、サービスプロバイダ51としてのアプリケーション#1は、名簿(Roster)に登録されている各メンバー(Buddy)に対して、自分自身が提供可能なサービスの種別を表すプロファイルスペースID(Profile Space ID)をアナウンスすることを、メディアIMクライアント#P1に指令する。メディアIMクライアント#P1は、ステップS2において、この指示を受け取ると、ステップS3において名簿に予め登録されているメンバーに対して、プロファイルスペースIDをプレゼンスによって通知する。
【0032】
なお、プロファイルスペースID並びにアプリケーションIDは、アプリケーションプラットフォームの運用者によって、予め登録され、管理されている。従って、サービスコンシューマ52は、そのIDに基づいて、その内容を特定することが可能となる。
【0033】
図8は、パーソナルコンピュータ11において動作するMPEG4ストリーミングサーバアプリケーションを定義するためのプロファイルスペースの例を表している。同図に示されるように、プロファイルスペースは、プロファイルスペースIDとパラメータにより構成される。この例においては、プロファイルスペースIDは、「10000001」とされている。また、パラメータは、access method, bit rate, X scale, Y scale, audio codecにより構成されている。この例の場合、access methodの値は、1(RTSP/TCP+RTP/UDP)または2(HTTP tunneling)とされる。bit rateは、6k乃至512kbpsとされる。X scaleは128乃至352とされ、またY scaleは96乃至288とされている。
【0034】
さらに、Video Codecは、MPEG4とされている。audio codecは、なし(none)、CELP(Code Excited Linear Predictive) 8k,CELP 16k,AAC(Advanced Audio Coding) 16k, AAC 32k, AAC 44.1k,AAC 48kのいずれかとされる。
【0035】
このように、パラメータは全て数値によって表現されている。
【0036】
図4に戻って、メディアIMサーバ14は、ステップS4において、メディアIMクライアント#P1からの通知を受け取ると、ステップS5において、これを名簿内の各メンバーにアナウンスする。
【0037】
アナウンスを受けたメンバー(サービスコンシューマ52)の1人であるメディアIMクライアント#C1は、ステップS6において、この通知を受け取ると、ステップS7において、プロファイルスペースIDとサービスプロバイダ51側のアプリケーションID(いまの場合、アプリケーション#1のID)に基づいて、自分自身がこのプロファイルを受け入れ可能であるか否かを判定する(検証する)。上述したように、このシステムの参加者は、これらのIDに基づいて、その内容を特定することができるので、この判定が可能である。
【0038】
IDと内容の対応関係を記述したテーブルを各装置(パーソナルコンピュータ11,12等)に記憶させておくこともできるが、所定のサーバ(例えば、メディアIMサーバ14)に記憶させておくこともできる。この場合、ユーザがこのテーブルを利用する度に、ユーザに対して課金するようにすることもできる。これにより、メディアIMサーバ14の運用者は、利益を得ることができる。
【0039】
メディアIMクライアント#C1は、サービスプロバイダ51からプレゼンスを受けたプロファイルの内容が、サービスコンシューマが受け入れ可能であると判断した場合、ステップS8において、その受け入れ可能なサービスコンシューマ52となるアプリケーション#nに対して、プレゼンスの内容(プロファイル)を通知する。ステップS9において、アプリケーション#nは、メディアIMクライアント#C1からの通知を受信する。
【0040】
なお、各メディアIMクライアントは、検証の結果、サービスコンシューマとなる適切なアプリケーションが存在しないと判断した場合、受信したアナウンスを無視する。
【0041】
サービスコンシューマ52としてのアプリケーション#nは、サービスプロバイダ51のプレゼンスの内容を受信すると、ステップS10において、サービスプロバイダ51から提供されたサービスの詳細情報を取得するように、メディアIMクライアント#C1に指示する。ステップS11において、メディアIMクライアント#C1は、この指示を受け取ると、ステップS12において、サービスプロバイダ51が提供するサービスのプロバイダプロファイルの送信を、メッセージング機能またはInfo/Query機能を用いて要求する。この要求には、サービスプロバイダ51を指定するための宛先情報が含められている。
【0042】
メディアIMサーバ14は、ステップS13において、メディアIMクライアント#C1からの要求を受信すると、ステップS14において、これをメディアIMクライアント#P1に送信する。メディアIMクライアント#P1は、ステップS15において、メディアIMサーバ14からの要求を受信すると、ステップS16において、これをサービスプロバイダ51としてのアプリケーション#1に供給する。
【0043】
アプリケーション#1は、ステップS17において、メディアIMクライアント#P1からの要求を受信すると、ステップS18において、サービスコンシューマ52に対して提供するプロバイダプロファイルを組み立て、メディアIMクライアント#P1に送信する。
【0044】
アプリケーション#1により生成されるプロバイダプロファイルの内容は、プロファイルスペース(図8)で定義されているパラメータ群のうち、サービスプロバイダ51がネットワークのリンクスピードやCPUの負荷状況などのランタイム環境を考慮した上で、サービスコンシューマ52に対して実際に提供できるパラメータの値の範囲を具体的に設定したものとされる。
【0045】
図9は、このようにして、生成されるプロバイダプロファイルの例を表している。図9では、このプロバイダプロファイルが、プロファイルディスクリプション(Profile Description)として表されている。
【0046】
図9は、サービスプロバイダ51としてのアプリケーション#1がVGA(Video Graphics Array)系の画角(160×120または320×240)のみをサポートし、かつPHS(Personal Handyphone System)相当のネットワーク(リンクスピードの最大値が128kbpsのネットワーク)に接続されている場合の例を表している。従って、図9の例においては、ネットワークのリンクスピードとの兼ね合いから、画角が図8のプロファイルスペースで規定されている範囲のうち、160×120(X scale×Y scale)のみに限定されている。
【0047】
また、図9の例においては、プロファイルスペースIDは、「10000001」とされ、access methodは、RTSP/TCP+RTP/UDPまたはHTTP tunnelingのいずれかとされる。bit rateは、6k乃至128kbpsとされている。さらに、audio codecは、なし(none)またはCELP 8kとされている。
【0048】
メディアIMクライアント#P1は、ステップS19において、アプリケーション#1からのプロバイダプロファイルの応答を受信すると、ステップS20において、これをアプリケーション#nに向けてメッセージング機能またはInfo/Query機能を用いて返信する。
【0049】
メディアIMサーバ14は、ステップS21において、メディアIMクライアント#P1からの返信を受信すると、ステップS22において、これをメディアIMクライアント#C1に送信する。ステップS23において、メディアIMクライアント#C1は、この返信を受信すると、それをステップS24において、アプリケーション#nに送信する。アプリケーション#nは、ステップS25において、このサービスプロバイダ51からの返信を受信する。
【0050】
アプリケーション#nは、ステップS25の処理で受信したサービスプロバイダ51のプロバイダプロファイルと、自分自身が形成するコンシューマプロファイルとのマッチング(比較)を行う。
【0051】
上述したように、サービスプロバイダが提示するプロバイダファイル(プロファイルディスクリプション)は、数値だけで表現されているため、サービスコンシューマ52は、自分自身のプロファイルを構成する各パラメータの値の範囲と単純に1次元での比較を行うだけで、整合性を簡単に検証することができる。
【0052】
アプリケーション#nは、整合性が確認できた場合、ステップS26において、サービスプロバイダ51に対して、提供されたサービスへの自分自身(サービスコンシューマ52)の登録を要求する。メディアIMクライアント#C1は、ステップS27において、アプリケーション#nからこの指示を受け取ると、ステップS28において、サービスプロバイダ51に対して、サービスへの登録を、メッセージング機能またはInfo/Query機能を用いて要求する。このとき、プロファイルスペースIDとアプリケーションIDがその要求に含められる。
【0053】
メディアIMサーバ14は、ステップS29において、メディアIMクライアント#C1からの要求を受け取ると、ステップS30において、これをメディアIMクライアント#P1に送信する。メディアIMクライアント#P1は、ステップS31において、メディアIMサーバ14からの要求を受信すると、ステップS32において、これをアプリケーション#1に送信する。アプリケーション#1は、ステップS33において、サービスコンシューマ52からの登録要求を受信する。
【0054】
サービスプロバイダ51としてのアプリケーション#1は、ステップS18の処理でサービスコンシューマ52に対して提供したサービスに対応してサービスコンシューマ52を登録する。具体的には、プロファイルスペースIDに対応して、サービスコンシューマ52のアプリケーション#nのアプリケーションIDが対応して登録される。
【0055】
ステップS34において、アプリケーション#1は、登録要求に対応する応答をメディアIMクライアント#P1に指示し、ステップS35において、この指示を受け取ったメディアIMクライアント#P1は、ステップS36において、登録結果を、メッセージング機能またはInfo/Query機能を用いて通知する。ステップS37において、この登録結果の通知を受信したメディアIMサーバ14は、ステップS38において、それをメディアIMクライアント#C1に送信する。メディアIMクライアント#C1は、ステップS39において、これを受信すると、ステップS40において、アプリケーション#nに送信する。アプリケーション#nは、ステップS41において、登録結果の通知を受信する。
【0056】
アプリケーション#nは、ステップS42において、サービスプロバイダ51からのプロファイルディスクリプションに基づく接続性を保証するためのパラメータを、プロファイルアトム(Profile Atom)として決定する。すなわち、アプリケーション#nが送信したデータを、アプリケーション#1がそのまま利用することが可能な(アプリケーション#1が受け入れることが可能な)パラメータが決定される。
【0057】
図10は、このプロファイルアトム(プロファイルアトムディスリプション:Description of Profile Atom)の例を表している。この例においては、プロファイルスペースIDが「10000001」とされ、access methodは、HTTP tunnelingとされている。すなわち、図9におけるaccess methodのうち、番号2に対応する方が選択されている。
【0058】
また、bit rateは48kbps、 X scaleは160、Y scaleは120とされている。さらに、audio codecは、CELP 8kとされている。
【0059】
アプリケーション#nは、ステップS42において、このようにして決定したプロファイルアトムを伴ったコネクト要求を発行する。ステップS43において、メディアIMクライアント#C1は、この要求を受信すると、ステップS44において、この要求を、メッセージング機能またはInfo/Query機能を利用して、サービスプロバイダ51に送信する。メディアIMサーバ14は、ステップS45において、この要求を受信すると、ステップS46において、その要求をメディアIMクライアント#P1に送信する。メディアIMクライアント#P1は、ステップS47において、メディアIMサーバ14からの要求を受信すると、これをステップS48において、アプリケーション#1に送信する。アプリケーション#1は、ステップS49において、この要求を受信する。
【0060】
アプリケーション#1は、この要求を受信すると、ステップS50において、サービスコンシューマ52(アプリケーション#n)がサービスプロバイダ51(アプリケーション#1)に対して接続するために必要な接続情報を含む応答を、サービスコンシューマ52に送信する。この接続情報は、例えば、URI(Uniform Resource Identifier)とすることができる。
【0061】
アプリケーション#1からステップS50の処理で送信された応答は、ステップS51において、メディアIMクライアント#P1で受信され、メディアIMクライアント#P1は、ステップS52において、その応答を、メッセージング機能またはInfo/Query機能を利用して、サービスコンシューマ52に向けて送信する。メディアIMサーバ14は、ステップS53において、メディアIMクライアント#P1からの応答を受信すると、ステップS54において、これをメディアIMクライアント#C1に送信する。メディアIMクライアント#C1は、ステップS55において、メディアIMサーバ14からの応答を受信すると、ステップS56において、これをアプリケーション#nに送信する。アプリケーション#nは、ステップS57において、この応答を受信する。
【0062】
アプリケーション#1は、ステップS50において、応答の送信を指示した後、アプリケーション#nからの直接の(メディアIMサーバ14を介さない)アクセスを待機している。そこで、ステップS58において、アプリケーション#nは、メディアIMサーバ14を介さずに、ピアツーピアで、アプリケーション#1のサービスURL(Uniform Resource Locator)にアクセスする。ステップS59において、アプリケーション#1は、アプリケーション#nからのピアツーピアのURLへのアクセスを受け付ける。
【0063】
以後、アプリケーション#1とアプリケーション#nは、ピアツーピアで情報を授受することが可能となる。
【0064】
以上のように、本発明のアプリケーションプラットフォームは、インスタントメッセージのプレゼンス機能、メッセージング機能、およびInfo/Query機能をベースとして、アプリケーションレベルでのプロファイルのネゴシエーションを実現する新たなプロトコルアーキテクチャを構築している。その結果、このアプリケーションプラットフォームにおけるマッチングメーキングの仕組みを用いることによって、パーソナルコンピュータ、モバイル機器などの能力が異なる(勿論、同一でもよいが)様々なデバイスに実装されたアプリケーション同志が、簡単かつ確実に接続可能となる。これにより、文字、音声、音楽、動画、静止画といった様々な情報からなるリッチメディア情報を、ピアツーピアコミュニケーションで伝送することが可能なシステムを実現することができる。この場合において、最終的に接続性が保証されたアプリケーション(サービスエンティティ同志)がピアツーピアでコミュニケーションを図ることができる。従って、ユーザは、特別の操作を行わずとも、簡単かつ確実に、情報を授受することが可能となる。
【0065】
上述したアプリケーション(サービスエンティティ)は、パーソナルコンピュータやネットワーク対応のCE(Consumer Electronics)機器のみならず、インターネット1上の商用アプリケーションサーバにも適用することが可能となる。
【0066】
例えば、図1のアプリケーションサーバ15においては、商用プリントサービスのアプリケーションが、サービスプロバイダとして、メディアIMクライアント#4上で実行される。従って、図1におけるパーソナルコンピュータ11,12あるいはPDA13は、アプリケーションサーバ15との間で上述した手順を実行することで、アプリケーションサーバ15が提供するプリントサービスを、インターネット1を介して利用することができる。
【0067】
従って、本発明においては、インターネット1に接続されている各サーバが提供しているサービスを検索することで、サービスプロバイダの一覧をBuddyリストとして、例えば、図11に示されるように、表示することができる。
【0068】
図11の例においては、PDA13に実装されたメディアIMクライアント#3上で、サービスコンシューマとして動作しているプリントサービスのアプリケーションが利用できるサービスプロバイダの一覧が表示されている。この場合において、プレゼンス機能を用いることによって、サービスコンシューマに応じてきめ細かく、かつ自由に、商用サービスのステータスを表現することができる。例えば、図11の例において、商用サービスを運用中であるか否かを、ランプアイコン13Aで表示するようにすることができる。この場合、例えば、運用中の商用サービスは、緑色で表示し、休止中の商用サービスは、赤色で表示するようにすることができる。また、図11の例においては、依頼したプリントが仕上がる時刻、価格などの細かい状況も、ステータス情報として表示されている。
【0069】
なお、当然のことながら、ユーザ端末上のサービスプロバイダとサービスコンシューマのアプリケーション間においても、ユーザインタフェースおよびプレゼンス機能により、相手先に応じたきめ細かいステータス表示をアプリケーション毎に行うことが可能である。
【0070】
図12は、パーソナルコンピュータ11の構成例を表している。なお、図示は省略するが、他のパーソナルコンピュータ12も同様に構成される。従って、この図12には、パーソナルコンピュータ12の構成としても、適宜、引用される。
【0071】
図12において、CPU(Central Processing Unit)121は、ROM(Read Only Memory)122に記憶されているプログラム、または記憶部128からRAM(Random Access Memory)123にロードされたプログラムに従って各種の処理を実行する。RAM123にはまた、CPU121が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0072】
CPU121、ROM122、およびRAM123は、バス124を介して相互に接続されている。このバス124にはまた、入出力インタフェース125も接続されている。
【0073】
入出力インタフェース125には、キーボード、マウスなどよりなる入力部126、CRT(Cathode Ray Tube)、LCD(Liquid Crystal display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部127、ハードディスクなどより構成される記憶部128、モデム、ターミナルアダプタなどより構成される通信部129が接続されている。通信部129は、インターネットを含むネットワークを介しての通信処理を行う。
【0074】
入出力インタフェース125にはまた、必要に応じてドライブ130が接続され、磁気ディスク141、光ディスク142、光磁気ディスク143、或いは半導体メモリ144などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部128にインストールされる。
【0075】
上述したアプリケーション#1(サービスプロバイダ51)またはアプリケーション#n(サービスコンシューマ52)は、CPU121により、RAM123にロードされ、実行される。
【0076】
以上においては、各サービス(サービスプロバイダ51やサービスコンシューマ52)がリンクスピードを設定する方法については、特に言及していないが、一般的には、各サービス(例えば、出願人会社が提供しているWith You Call(商標)のようなテレビ電話サービス)に応じて、ユーザが、適切なリンクスピードを手動で設定することになる。
【0077】
しかしながら、ユーザは、アクセスライン(リンク)に関する情報、特に、そのボトルネック速度を知ることは困難であり、また、複数のアクセスラインを使い分けるような環境では切換が面倒であるため、ユーザが、リンクスピードを手動で設定するのは必ずしも容易ではない。
【0078】
そこで、本発明においては、各装置(各メディアクライアント)が、次のようにしてリンク速度を測定する。
【0079】
図13は、このような機能を付加したネットワークシステムの構成例を表している。
【0080】
図13においては、パーソナルコンピュータ11,12、PDA13、メディアIMサーバ(Media IM Server)14、およびアプリケーションサーバ15に加えて、計測サーバ200が、ネットワークとしてのインターネット1に接続されている。
【0081】
メディアIMサーバ14は、基幹リンク221を介してインターネット1に接続されており、計測サーバ200は、基幹リンク222を介してインターネット1に接続されている。パーソナルコンピュータ11は、アクセスリンク223−1を介してインターネット1に接続されており、パーソナルコンピュータ12は、アクセスリンク223−2を介してインターネット1に接続されている。また、PDA13は、アクセスリンク223−3を介してインターネット1に接続されており、アプリケーションサーバ15は、基幹リンク220を介してインターネット1に接続されている。
【0082】
アクセスリンク223−1乃至アクセスリンク223−3は、ISDN(Integrated Service Digital Network)、ADSL(Asymmetric Digital Subscriber Line)等で構成される。
【0083】
基幹リンク222を介してインターネット1に接続されている計測サーバ200は、パーソナルコンピュータ11,12、およびPDA13が、それぞれ対応するアクセスリンク223−1乃至223−3のリンクスピード(伝送レート)を計測するためのサーバである。
【0084】
その他の構成は、上述した図1と同様であるので、その説明は省略する。
【0085】
次に、接続処理の詳細を、図14乃至図17を参照して説明する。
【0086】
この場合においては、上述した図4の処理の前に、メディアIMクライアント#P1とメディアIMクライアント#C1が、それぞれ、メディアIMサーバ14に対してログイン処理を行なうとともに、計測サーバ200との通信により速度計測処理(自分自身の伝送速度を知るための処理)を行なう。
【0087】
最初に、メディアIMクライアント#P1における、ログインおよび速度計測処理を、図14のフローチャートを参照して説明する。
【0088】
ステップS101において、メディアIMクライアント#P1は、メディアIMサーバ14にログインする(例えば、ログイン通知を送信する)。メディアIMサーバ14は、ステップS102において、メディアIMクライアント#P1からのログイン通知を受け取ると、受け付け処理を行い、ステップS103において、ログインが完了したことを示すログイン完了通知を、メディアIMクライアント#P1に送信する。
【0089】
メディアIMクライアント#P1は、ステップS104において、メディアIMサーバ14からのログイン完了通知を受け取ると、ステップS105において、計測サーバ200に対して、速度計測処理を実行する。計測サーバ200は、メディアIMクライアント#P1の処理に対応して、ステップS106において、メディアIMクライアント#P1との間で速度計測処理を実行する。速度計測処理により、メディアIMクライアント#P1は、自分自身の上り速度と下り速度(ボトルネックリンクの上り速度と下り速度)を取得することができる。この上り速度は、メディアIMクライアント#P1が、任意の端末に、情報を送信するときの速度(ビットレート)であり、下り速度は、メディアIMクライアント#P1が情報を受信するときの速度(ビットレート)である。なお、速度計測処理の詳細は、図23乃至図26を参照して後述する。
【0090】
次に、メディアIMクライアント#C1における、ログインおよび速度計測処理を、図15のフローチャートを参照して説明する。この処理も、図14の処理と同様に、上述した図4の処理の前に行なわれる。
【0091】
ステップS151において、メディアIMクライアント#C1は、メディアIMサーバ14にログインする(例えば、ログイン通知を送信する)。メディアIMサーバ14は、ステップS152において、メディアIMクライアント#C1からのログイン通知を受け取ると、受け付け処理を行い、ステップS153において、ログインが完了したことを示すログイン完了通知を、メディアIMクライアント#C1に送信する。
【0092】
メディアIMクライアント#C1は、ステップS154において、メディアIMサーバ14からのログイン完了通知を受け取ると、ステップS155において、計測サーバ200に対して、速度計測処理を実行する。計測サーバ200は、ステップS156において、メディアIMクライアント#C1のステップS155の処理に対応して、メディアIMクライアント#C1との間で速度計測処理を実行する。速度計測処理により、メディアIMクライアント#C1は、自分自身の上り速度と下り速度(ボトルネックリンクの上り速度と下り速度)を取得することができる。この上り速度は、メディアIMクライアント#C1が、任意の端末に、情報を送信するときの速度であり、下り速度は、メディアIMクライアント#C1が情報を受信するときの速度である。
【0093】
このように、メディアIMクライアント#P1とメディアIMクライアント#C1は、それぞれ、メディアIMサーバ14に対してログイン処理を行なった後に、自分自身の上り速度および下り速度を取得する。
【0094】
この実施の形態においては、図14と図15の処理が実行された後、上述した図4に示されるステップS1乃至ステップS9の処理が実行される。すなわち、これにより、サービスプロバイダ51(アプリケーション#1)は、名簿(Roster)に登録されている各メンバー(Buddy)に対して、自分自身が提供可能なサービスの種別を表すプロファイルスペースID(Profile Space ID)を通知し、アナウンスを受けたメンバー(サービスコンシューマ52)の1人であるメディアIMクライアント#C1は、自分自身がこのプロファイルを受け入れ可能であるか否かを判定(検証)し、その受け入れ可能なサービスコンシューマ52(アプリケーション#n)に対して、プレゼンスの内容(プロファイル)を通知する。
【0095】
次に、図5に示されるステップS10乃至ステップS25の処理に代えて、図16に示されるステップS210乃至225の処理が実行される。
【0096】
このステップS210乃至ステップS225の処理は、基本的に、図5のステップS10乃至ステップS25の処理と同様の処理であるが、図5のステップS16に対応するステップS216の処理と、図5のステップS24に対応するステップS224の処理が、図5におけるステップS16またはステップS24の処理と異なっている。
【0097】
その他の処理は、図5における場合と同様であるので、以下に、ステップS216の処理とステップS224の処理についてだけ説明する。
【0098】
図5のステップS16の処理では、メディアIMクライアント#P1は、メディアIMサーバ14からの要求(サービスプロバイダ51が提供するサービスのプロバイダプロファイルの送信の要求)を、サービスプロバイダ51としてのアプリケーション#1に供給する(この要求には、サービスプロバイダ51を指定するための宛先情報が含まれている)。このステップS16の処理では、メディアIMサーバ14からの要求だけをアプリケーション#1に供給するようにしていたが、ステップS216の処理では、さらにメディアIMクライアント#P1は、自分自身がメディアIMクライアント#C1にデータを送信する立場にあるとき、その上りの速度情報を付加する。この上りの速度情報は、図14のステップS105の速度計測処理により計測されたメディアIMクライアント#P1の上りの速度情報である。
【0099】
例えば、図14のステップS105の処理により取得された上り速度(ビットレート)が128Kbpsである場合、上り速度(ビットレート)が128Kbpsであることを示す情報が、サービスプロバイダ51としてのアプリケーション#1に送信される。
【0100】
また、図5のステップS24においては、メディアIMクライアント#C1は、メディアIMクライアント#P1からの返信(サービスコンシューマ52に対して提供するプロバイダプロファイルの応答)を、アプリケーション#nに送信する。このステップS24の処理では、メディアIMクライアント#P1からの返信(メディアIMクライアント#P1の上りの速度情報を含む)だけをアプリケーション#nに送信するようにしていたが、ステップS224の処理では、メディアIMクライアント#C1は、自分自身がデータを受信する立場にあるとき、その下りの速度情報をこれに付加する。この下りの速度情報は、図15のステップS155の速度計測処理により計測されたメディアIMクライアント#C1の下りの速度情報である。
【0101】
例えば、図15のステップS155の処理により取得された下り速度(ビットレート)が48Kbpsである場合、下り速度(ビットレート)が48Kbpsであることを示す情報が、サービスコンシューマ52としてのアプリケーション#nに送信される。これにより、アプリケーション#nには、メディアIMクライアント#P1の上り速度と、メディアIMクライアント#C1の下り速度の両方が通知されることになる。
【0102】
その他の処理は、図5における場合と同様である。
【0103】
この処理により、アプリケーション#1は、メディアIMクライアント#P1の上りの速度を知ることができ、アプリケーション#nは、メディアIMクライアント#C1の下りの速度を知ることができ、よって、ユーザは、アプリケーション(アプリケーション#1またはアプリケーション#n)に、伝送速度(リンクスピード)を手動で設定する手間を省くことができる。また、正確な伝送速度を設定することができる。これにより、迅速かつ簡単に、適正な伝送速度で通信を行なうことが可能となる。
【0104】
図16に示されるステップS210乃至ステップS225の処理(図5のステップS10乃至ステップS25に対応する処理)が実行された後、図6に示されるステップS26乃至ステップS41の処理に代えて、図17に示されるステップS226乃至ステップS241の処理が実行される。
【0105】
このステップS226乃至ステップS241の処理は、基本的に、図6のステップS26乃至ステップS41の処理と同様の処理であるが、図6のステップS26に対応する図17のステップS226の処理と、図6のステップS33に対応する図17のステップS233の処理が、図6におけるステップS26またはステップS33の処理と異なっている。
【0106】
その他の処理は、図6における場合と同様であるので、以下にステップS226の処理とステップS233の処理についてだけ説明する。
【0107】
サービスプロバイダ51のプロバイダプロファイルと、自分自身が形成するコンシューマプロファイルとの整合性が確認された場合、アプリケーション#nは、図6のステップS26の処理では、サービスプロバイダ51に対して、提供されたサービスへの自分自身(サービスコンシューマ52)の登録を要求する。このステップS26の処理では、この登録の要求を、メディアIMクライアント#C1に指示するだけであったが、ステップS226の処理では、この登録要求に、メディアIMクライアント#P1とメディアIMクライアント#C1の間の伝送速度(設定速度)が付加される。このステップS226の処理(提供されたサービスへの登録要求処理)の詳細を、図18のフローチャートを参照して説明する。
【0108】
上述したように、図16のステップS225で、メディアIMクライアント#C1からアプリケーション#nに供給されたプロバイダプロファイルには、ステップS216の処理で付加された、メディアIMクライアント#P1の上りの速度情報が含まれているとともに、ステップS224の処理により付加された、メディアIMクライアント#C1の下りの速度情報が含まれている。
【0109】
ステップS301において、アプリケーション#nは、サービスプロバイダ51のプロバイダプロファイルに含まれる、メディアIMクライアント#P1の上りの速度情報(図16のステップS216で付加された速度情報)を取得し(読み出し)、ステップS302において、サービスプロバイダ51(メディアIMクライアント#P1)の上り速度と、自分自身(サービスコンシューマ52、すなわち、メディアIMクライアント#C1)の下り速度とを比較し、遅い速度を設定速度とする。いまの例の場合、メディアIMクライアント#P1の上り速度は、128Kbpsであるのに対し、メディアIMクライアント#C1の下り速度は、48Kbpsであるので、設定速度(伝送速度)は、48Kbps(メディアIMクライアント#C1の下り速度)となる。
【0110】
ステップS303において、アプリケーション#nは、提供されたサービスへの登録要求に、設定速度(伝送速度)を付加して送信する。
【0111】
また、図6のステップS33においては、アプリケーション#1は、メディアIMクライアント#C1からの登録要求を受信するだけであったが、ステップS233の処理においては、アプリケーション#1は、メディアIMクライアント#C1からの登録要求に付加されている(ステップS303(ステップS226)の処理で付加された)設定速度を受信し、この設定速度を、自分自身の情報送信速度に設定する。このステップS233の処理(登録要求の受信および速度設定処理)の詳細を、図19のフローチャートを参照して説明する。この処理は、図18の処理に対応して実行される。
【0112】
上述した図18の処理(ステップS226の処理)で、サービスコンシューマ52からは、登録要求に設定速度が付加されて送信されてくるので、ステップS351において、アプリケーション#1は、設定速度を含む登録要求を受信する。
【0113】
ステップS352において、アプリケーション#1は、自分自身の情報送信速度を、ステップS351の処理で受信した登録要求に含まれる設定速度に設定する。メディアIMクライアント#P1の上り速度は、128Kbpsであるが、いまの例の場合、設定速度は48Kbpsであるので、アプリケーション#1は、自分自身の情報送信速度(上り速度)を、48Kbpsに設定する。
【0114】
これにより、情報を送信(提供)する装置が、情報を受信する装置との間において、最適な通信速度(設定速度)で情報を送信することができる。
【0115】
なお、ステップS226とステップS233の処理は、図18と図19に示されるだけでなく、図20と図21に示されるようにすることもできる。具体的には、図18と図19に示される処理では、サービスコンシューマ52としてのアプリケーション#nが、通信速度(設定速度)を決定するようにしているが、図20と図21に示される処理では、サービスプロバイダ51としてのアプリケーション#1が、通信速度(設定速度)を決定する。以下にこの場合について説明する。
【0116】
この例では、サービスプロバイダ51のプロバイダプロファイルと、自分自身が形成するコンシューマプロファイルとの整合性が確認された場合、アプリケーション#nは、ステップS226で、図20のフローチャートに示される処理を実行する。
【0117】
すなわち、ステップS401において、アプリケーション#nは、サービスプロバイダ51のプロバイダプロファイルに含まれる、メディアIMクライアント#C1の下りの速度情報(図16のステップS224で付加された速度情報)を取得し、ステップS402において、提供されたサービスへの登録要求に、この下りの速度情報(メディアIMクライアント#C1の下りの速度情報)を付加して送信する。いまの例の場合、メディアIMクライアント#C1の下りの速度は、48Kbpsであるとの情報が付加される。
【0118】
一方、アプリケーション#1は、ステップS233で、図20に対応する図21に示される処理を実行する。
【0119】
上述した図20の処理(ステップS226の処理)で、サービスコンシューマ52からは、登録要求にメディアIMクライアント#C1(サービスコンシューマ52)の下りの速度情報が付加されて送信されてくるので、ステップS451において、アプリケーション#1は、この下りの速度情報を含む登録要求を受信すると、その下りの速度情報を抽出する。
【0120】
ステップS452において、アプリケーション#1は、サービスコンシューマ52(メディアIMクライアント#C1)の下り速度と、自分自身(メディアIMクライアント#P1)の上り速度のうち、遅い速度を設定速度とする。いまの例の場合、メディアIMクライアント#P1の上り速度は、128Kbpsであるのに対し、メディアIMクライアント#C1の下り速度は、48Kbpsであるので、設定速度は、48Kbps(メディアIMクライアント#C1の下り速度)となる。
【0121】
ステップS453において、アプリケーション#1は、自分自身の情報送信速度を、ステップS452の処理で求めた設定速度に設定する。いまの例の場合、メディアIMクライアント#P1の上り速度は、128Kbpsであるが、設定速度は48Kbpsであるので、アプリケーション#1は、自分自身の情報送信速度(上り速度)を、48Kbpsに設定する。これにより、情報を送信(提供)する装置が、情報を受信する装置との間において、最適な通信速度で情報を送信することができる。
【0122】
このように、ステップS226とステップS233の処理を、図18と図19に示される処理としてもよいし、図20と図21に示される処理としてもよい。また、情報の送信と受信の一方だけを行うのではなく、両方を行う場合、上りの速度と下りの速度の両方を送信し、それぞれの設定速度を設定するようにしてもよい。また、一方の端末にのみ、速度情報を集約するのではなく、両方に通知し、いずれもが通信速度を制御できるようにしてもよい。
【0123】
次に、図14のステップS105、または図15のステップS155の速度計測処理の詳細を、以下に説明する。
【0124】
ここでは、速度の計測方法として、TCP(Transmission Control Protocol)で実装されているHTTPを使用して行なう方法と、UDP(User Datagram Protocol)で実装されているパケットペア(Packet Pair)を使用して行なう方法について説明する。
【0125】
最初に、HTTPを使用して速度の計測を行なう方法を説明する。
【0126】
図22は、メディアIMクライアントにおける、計測サーバ200を用いた下り速度計測処理を説明するフローチャートである。いまの場合、図15のメディアIMクライアント#C1が下り速度を計測する場合について説明する。例えば、メディアIMクライアント#C1が、図13のパーソナルコンピュータ12に実装されている場合、パーソナルコンピュータ12としてのメディアIMクライアント#C1は、アクセスリンク223−2を介してインターネット1に接続されている。また、計測サーバ200は、基幹リンク222を介してインターネット1に接続されている。
【0127】
ステップS501において、パーソナルコンピュータ12に実装されているメディアIMクライアント#C1は、計測サーバ200にアクセスし、計測用パケットの送信を要求する。この要求に基づいて、計測サーバ200は、計測用パケットを送信してくる。この計測用パケットは、基幹リンク222、インターネット1、アクセスリンク223−2を介して伝送されてくる。
【0128】
ステップS502において、メディアIMクライアント#C1は、計測サーバ200から送信された計測用パケットを受信する。この計測用パケットは、伝送レートを計測するためのものであるので、決まったデータ量のものであればよい。しかしながら、アナログモデム等では、データの圧縮が行われ、見かけ上のスループットが高くなる可能性があるため、ランダムなデータを使って計測したほうがよい。
【0129】
ステップS503において、メディアIMクライアント#C1は、最初のデータを受信してから、例えば、10秒間に受信したデータ量Dd(ビット)を計測する。
【0130】
ステップS504において、メディアIMクライアント#C1は、「Dd/10」を演算し、これを下り速度Vd(ビット/秒)とする(すなわち、「Vd=Dd/10」を演算する)。
【0131】
計測サーバ200は、計測機能を実現するために、充分広い(少なくともアクセスリンク223−1乃至223−3より広い)帯域の基幹リンク222に接続されている。従って、この下り速度Vdの値は、基幹リンク222とアクセスリンク223−2よりなる伝送路のうちのボトルネックとしてのアクセスリンク223−2の速度となる。
【0132】
図22の処理により、パーソナルコンピュータ12に実装されているメディアIMクライアント#C1の下り速度Vdが求められる。
【0133】
次に、図23のフローチャートを参照して、メディアIMクライアントにおける、計測サーバ200を用いた上り速度計測処理を説明する。いまの場合、図14のメディアIMクライアント#P1が上り速度を計測する場合について説明する。メディアIMクライアント#P1が、図13のパーソナルコンピュータ11に実装されている場合、パーソナルコンピュータ11としてのメディアIMクライアント#P1は、アクセスリンク223−1を介してインターネット1に接続されている。
【0134】
ステップS551において、メディアIMクライアント#P1は、アクセスリンク223−1とインターネット1を介して、計測サーバ200にアクセスし、計測を要求するとともに、計測用パケットを送信する。このパケットは、伝送レートを計測するためのものであるので、データ量が明らかなものであればよい。しかしながら、アナログモデム等では、データの圧縮が行われ、見かけ上のスループットが高くなる可能性があるため、ランダムなデータを使って計測したほうがよい。
【0135】
ステップS552において、メディアIMクライアント#P1は、最初のデータを送信してから、例えば、10秒間に送信したデータ量Du(ビット)を計測する。
【0136】
ステップS553において、メディアIMクライアント#P1は、「Du/10」を演算し、これをパーソナルコンピュータ11(メディアIMクライアント#P1)の上り速度Vu(ビット/秒)とする(すなわち、「Vu=Du/10」を演算する)。
【0137】
アクセスリンク223−1に較べて基幹リンク222は充分広い帯域を有するので、上り速度Vuは、アクセスリンク223−1と基幹リンク222よりなる伝送路のうちのボトルネックとしてのアクセスリンク223−1の速度ということになる。
【0138】
図23の処理により、上り速度Vuが求められる。
【0139】
なお、メディアIMクライアント#C1も、上り速度を計測する場合には、図23の処理を実行し、メディアIMクライアント#P1も、下り速度を計測する場合には、図22の処理を実行する。
【0140】
すなわち、図22と図23の処理は、各メディアIMクライアント(メディアIMクライアント#1乃至メディアIMクライアント#4)が、上り速度と下り速度を求めるときに、適宜、実行する処理である。
【0141】
次に、パケットペアを使用した、速度計測方法を説明する。
【0142】
図24は、メディアIMクライアントにおける、パケットペアによる速度測定処理を説明するフローチャートである。例えば、図14のメディアIMクライアント#P1が速度を計測する場合について説明する。メディアIMクライアント#P1が、図13のパーソナルコンピュータ11に実装されている場合、パーソナルコンピュータ11としてのメディアIMクライアント#P1は、アクセスリンク223−1を介してインターネット1に接続されている。また、計測サーバ200は、基幹リンク222を介してインターネット1に接続されている。
【0143】
ステップS601において、パーソナルコンピュータ11に実装されているメディアIMクライアント#P1は、パケットペアを生成する。生成されるパケットペアは任意長である。パケットペアは、その容量が大きいほど、ボトルネックを通過するときの時間がかかるので、測定誤差が軽減されるというメリットがある。しかし、ネットワークへの負担も大きくなるため、パケットペアの各パケットのパケット長は、例えば、500バイト(IPヘッダを含む)とされる。また、パケットペアは2つのパケットにより構成される。
【0144】
1つのパケットのフォーマットは、例えば、図25に示される構成とされる。図25において、Header(ヘッダ)には、プロトコルバージョン情報である「Ver」、プロトコルタイプである「Type(タイプ)」、IP/UDPヘッダを除いたパケット長「Length(レングス)」、シーケンス番号である「Sequence」、予備領域である「Reserved」、および、測定結果である「Bitrate(ビットレート)」が含まれている。「Payload(ペイロード)」には、任意のデータが埋め込まれる。
【0145】
ヘッダに含まれるシーケンス番号は、計測サーバ200内で、パケットロスが発生したか否かを示すための情報となる。タイプには、いまの場合、RequestまたはReplyが書き込まれる。ペイロードには、任意のデータを埋め込むことができるが、アナログモデム等では、圧縮が行なわれるので、ランダムなデータを入れた方がよい。
【0146】
図24に戻って、ステップS602において、メディアIMクライアント#P1は、変数nに1を初期設定し、ステップS603において、シーケンス番号が連続する2つのパケットを、計測サーバ200に送信する。このパケットは、アクセスリンク223−1、インターネット1、および基幹リンク222を介して、計測サーバ200に送信される。メディアIMクライアント#P1は、できるだけ素早く、2つの連続するパケットを送信する。シーケンス番号は、連続であれば、偶数、奇数のどちらから開始してもよいが、ここでは便宜上、偶数、奇数の順で送るものとする。
【0147】
ステップS604において、メディアIMクライアント#P1は、n=3であるか否かを判定し、n=3でないと判定した場合、ステップS605において、変数nの値を1だけインクリメントする。いまの例の場合、ステップS602においてn=1とされているので、n=1+1=2とされる。
【0148】
ステップS606において、メディアIMクライアント#P1は、前回のパケットを送信後(ステップS603の処理の後)、1秒間が経過したか否かを判定し、1秒間が経過するまで待機する。ステップS606において、1秒間が経過したと判定された場合、処理はステップS603に戻り、それ以降の処理が繰り返される。すなわち、再度、シーケンス番号が連続する2つのパケット(1つのパケットペア)が送信され、nが1だけ加算される処理が、n=3とされるまで繰り返される。その結果、3組のパケットペアが送出される。
【0149】
ステップS604において、n=3であると判定された場合、計測サーバ200は、上述した3回のパケットペアの送信に対する速度(上り速度)を求め、パーソナルコンピュータ11に実装されているメディアIMクライアント#P1に送信してくる(後述する図26のステップS757)。そこで、ステップS607において、メディアIMクライアント#P1は、計測サーバ200から、上りの速度の情報を受信し、処理を終了する。
【0150】
測定誤差を低減するために、1回の測定セット(速度測定処理)では、連続して複数回のパケットペアを送信することが望ましい。しかしながら、短時間のうちに、何回も測定パケットを送信することはネットワーク(アクセスリンク223−1、インターネット1、および基幹リンク222)に負荷をかけることになるので、図24に示されるように、1秒間に1回(つまり、1秒間に2パケット)送信するようにし、さらに、これを3回繰り返すことにより、1回の測定セット(速度測定処理)を終了させる。この例の場合、1回の測定セット(速度測定処理)は、約3秒強の時間となり、その間に、3回の測定ができることになる。
【0151】
次に、図24のパーソナルコンピュータ11の処理に対応して実行される計測サーバ200による測定処理を、図26のフローチャートを参照して説明する。
【0152】
ステップS751において、計測サーバ200は、変数nに1を初期設定し、ステップS752において、メディアIMクライアント#P1からパケットペアを受信する。このパケットペアは、上述した図24のステップS603の処理でメディアIMクライアント#P1により送信されたものである(n=1において送信されたパケットペア)。また、このパケットペアは、アクセスリンク223−1、インターネット1、および基幹リンク222を介して送信されてきたものである。
【0153】
ステップS752において、計測サーバ200は、ボトルネックリンクの速度Bを演算する。ボトルネックリンクの速度Bは、B=L×8/Tにより演算される。Lはパケット長であり(いまの例の場合、500バイト)、Tは、シーケンス番号が連続する2つのパケット(図24のステップS603で送信されたn=1における2つの連続するパケット)において、1つ目のパケットが到着した時刻と、2つ目のパケットが到着した時刻との差に対応する時間である。これにより、n=1における1回目のパケットペアによる、ボトルネックリンクの速度Bが演算される。
【0154】
図27は、パケットペアによる計測の概念図である。図24のステップS603でメディアIMクライアント#P1から送信された2つの連続するパケットのうち、1番目に送信される、シーケンス番号が偶数であるパケットが、パケット302であり、2番目に送信される、シーケンス番号が奇数であるパケットが、パケット303である。
【0155】
メディアIMクライアント#P1からパケットペアが送信されたとき、パケット302とパケット303は素早く連続的に送信されているので、2つのパケットの間隔はほとんどない。しかしながら、ボトルネックである狭帯域のアクセスリンク223−1を通過することにより、パケットの伝送には長い時間が必要となる。その後、広い帯域の基幹リンク222を通過することにより、パケットの伝送に必要な時間は短くなるので、パケット302とパケット303の間隔が開いてしまう。そのため、パケット302とパケット303の計測サーバ200に到着する時刻にずれが生じることになる(パケット302とパケット303の到着時刻のズレである時間がTとなる)。
【0156】
図26に戻って、ステップS754において、計測サーバ200は、n=3であるか否かを判定し、n=3でないと判定した場合、ステップS755において、変数nを1だけインクリメントする。いまの例の場合、n=1+1=2とされる。その後、処理はステップS752に戻り、それ以降の処理が繰り返される。すなわち、2回目のパケットペア(図24のn=2で送信されたパケットペア)が受信され、2回目のボトルネックリンクの速度Bが演算され、3回目(図24のn=3)のパケットペアが受信され、3回目のボトルネックリンクの速度Bが演算される。
【0157】
ステップS754において、n=3であると判定された場合、ステップS756において、計測サーバ200は、速度Bの平均値を演算する。例えば、n=1において演算された速度Bを速度B1、n=2において演算された速度Bを速度B2、n=3において演算された速度Bを速度B3とした場合、「(B1+B2+B3)/3」が演算される。
【0158】
ステップS757において、計測サーバ200は、ステップS756の処理で演算した速度Bの平均値をパーソナルコンピュータ11に送信(通知)する。
【0159】
図24と図26の処理により、パーソナルコンピュータ11は、パケットペアを用いて、上りの速度を測定することができる。
【0160】
なお、下りの速度についても、図24および図26と同様の処理により求めることができる。
【0161】
以上のようにして、例えば、メディアIMクライアント#1であるパーソナルコンピュータ11が、ログインした後、ボトルネックリンクの速度の測定を行ない、通信対象となるメディアIMクライアント#2であるパーソナルコンピュータ12もまた、ログインした後、ボトルネックリンクの速度の測定を行ない、お互いのボトルネックリンクの速度情報を交換するようにしたので、最適な速度でコミュニケーションすることが可能となる。
【0162】
勿論、ログイン前にボトルネックリンクの速度を測定するようにしてもよい。要は、実際に通信するときとほぼ同一のトラフィックの状況が計測できるタイミングであればよい。
【0163】
アプリケーションプラットフォームは、インスタントメッセージのプレゼンス機能、メッセージング機能、およびInfo/Query機能に加えて、さらに、伝送速度を計測する機能をベースとして、アプリケーションレベルでのプロファイルのネゴシエーションを実現する新たなプロトコルアーキテクチャを構築している。その結果、このアプリケーションプラットフォームにおけるマッチングメーキングの仕組みを用いることによって、パーソナルコンピュータ、モバイル機器などの能力が異なる(勿論、同一でもよいが)様々なデバイスに実装されたアプリケーション同志が、簡単かつ確実に接続可能となる。このとき、能力が異なる様々なデバイスのボトルネックリンクの伝送速度も計測されるので、最適な伝送速度を設定できる。これにより、文字、音声、音楽、動画、静止画といった様々な情報からなるリッチメディア情報を、ピアツーピアコミュニケーションで伝送することが可能なシステムを実現することができる。この場合において、最終的に接続性が保証されたアプリケーション(サービスエンティティ同志)がピアツーピアでコミュニケーションを図ることができる。また、伝送レートを考慮した情報の伝送を行なうことが可能となる。従って、ユーザは、特別の操作を行わずとも、簡単かつ確実に、情報を授受することが可能となる。
【0164】
なお、上述した処理は、ネットワーク対応のCE機器等の場合、ハードウェアにより実行することもできる。勿論、ソフトウェアにより実行することもできる。
【0165】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【0166】
この記録媒体は、図12に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク141(フロッピディスクを含む)、光ディスク142(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク143(MD(Mini-Disk)を含む)、もしくは半導体メモリ144などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM122や、記憶部128に含まれるハードディスクなどで構成される。
【0167】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0168】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0169】
【発明の効果】
以上の如く、本発明によれば、情報処理装置の間で情報を授受することが可能となる。特に、ユーザに負担をかけることなく、迅速かつ簡単に、伝送速度の伝送路に接続されている異なる装置間で、確実に接続し、情報を伝送することが可能となる。また、時間帯によってトラフィック状況が変化しても、確実に情報の伝送を行なうことが可能となる。
【図面の簡単な説明】
【図1】本発明を適用したネットワークシステムの構成例を示す図である。
【図2】ソフトウェアの階層を説明する図である。
【図3】本発明を適用したネットワークシステムの動作の概要を説明する図である。
【図4】図1のネットワークシステムの動作を説明するフローチャートである。
【図5】図1のネットワークシステムの動作を説明するフローチャートである。
【図6】図1のネットワークシステムの動作を説明するフローチャートである。
【図7】図1のネットワークシステムの動作を説明するフローチャートである。
【図8】プロファイルスペースの例を示す図である。
【図9】プロファイルディスクリプションの例を示す図である。
【図10】プロファイルアトムの例を示す図である。
【図11】サービスプロバイダの一覧の表示例を示す図である。
【図12】パーソナルコンピュータの構成例を示すブロック図である。
【図13】本発明を適用したネットワークシステムの構成例を示す図である。
【図14】図13のネットワークシステムの動作を説明するフローチャートである。
【図15】図13のネットワークシステムの動作を説明するフローチャートである。
【図16】図13のネットワークシステムの動作を説明するフローチャートである。
【図17】図13のネットワークシステムの動作を説明するフローチャートである。
【図18】図17のステップS226の処理を説明するフローチャートである。
【図19】図17のステップS233の処理を説明するフローチャートである。
【図20】図17のステップS226の処理を説明するフローチャートである。
【図21】図17のステップS233の処理を説明するフローチャートである。
【図22】 図15のステップS155の処理を説明するフローチャートである。
【図23】図14のステップS105の処理を説明するフローチャートである。
【図24】図14のステップS105の処理を説明するフローチャートである。
【図25】パケットフォーマットの例を説明する図である。
【図26】図14のステップS105の処理を説明するフローチャートである。
【図27】パケットペアによる計測を説明する図である。
【符号の説明】
1 インターネット, 11,12 パーソナルコンピュータ, 13 PDA, 14 メディアIMサーバ, 31 IPネットワークトランスポート層, 32 メディアIMクライアントミドルウェア, 33 API, 200 計測サーバ, 220,221,222 基幹リンク, 223−1乃至223−3 アクセスリンク
Claims (5)
- ネットワークを介して第1の他の情報処理装置と通信する情報処理装置であって、
第2の他の情報処理装置にログインするログイン手段と、
前記ログイン手段によりログインする前または後に、前記ネットワークを含む伝送路の伝送速度を計測する計測手段と、
前記計測手段により計測された前記伝送速度を、前記第2の他の情報処理装置を介して前記第1の他の情報処理装置に通知する通知手段と、
前記計測手段により計測された前記伝送速度に基づいて設定された伝送速度で前記第1の他の情報処理装置と通信する通信手段と
を備えることを特徴とする情報処理装置。 - 前記第1の他の情報処理装置が計測した前記伝送速度を、前記第2の他の情報処理装置を介して受信する受信手段と、
前記受信手段により受信された前記伝送速度と、前記計測手段により計測された前記伝送速度に基づいて、前記第1の他の情報処理装置との通信の伝送速度を設定する設定手段と
をさらに備えることを特徴とする請求項1に記載の情報処理装置。 - 前記計測手段は、前記ネットワークに接続されている計測用のサーバを利用して前記伝送速度を計測する
ことを特徴とする請求項1に記載の情報処理装置。 - ネットワークを介して第1の他の情報処理装置と通信する情報処理装置の情報処理方法であって、
第2の他の情報処理装置にログインするログインステップと、
前記ログインステップの処理によりログインする前または後に、前記ネットワークを含む伝送路の伝送速度を計測する計測ステップと、
前記計測ステップの処理により計測された前記伝送速度を、前記第2の他の情報処理装置を介して前記第1の他の情報処理装置に通知する通知ステップと、
前記計測ステップの処理により計測された前記伝送速度に基づいて設定された伝送速度で前記第1の他の情報処理装置と通信する通信ステップと
を含むことを特徴とする情報処理方法。 - ネットワークを介して第1の他の情報処理装置と通信する情報処理装置のプログラムであって、
第2の他の情報処理装置にログインするログインステップと、
前記ログインステップの処理によりログインする前または後に、前記ネットワークを含む伝送路の伝送速度を計測する計測ステップと、
前記計測ステップの処理により計測された前記伝送速度を、前記第2の他の情報処理装置を介して前記第1の他の情報処理装置に通知する通知ステップと、
前記計測ステップの処理により計測された前記伝送速度に基づいて設定された伝送速度で前記第1の他の情報処理装置と通信する通信ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003091291A JP3806931B2 (ja) | 2002-07-30 | 2003-03-28 | 情報処理装置および方法、並びにプログラム |
PCT/JP2003/008026 WO2004012401A1 (ja) | 2002-07-30 | 2003-06-25 | 情報処理装置および方法、並びにプログラム |
CNB038011778A CN1291577C (zh) | 2002-07-30 | 2003-06-25 | 信息处理装置、方法和程序 |
EP03771258A EP1526688A1 (en) | 2002-07-30 | 2003-06-25 | Information processing unit, method, and program |
US10/489,852 US7574517B2 (en) | 2002-07-30 | 2003-06-25 | Information processing unit, method, and program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002221129 | 2002-07-30 | ||
JP2003091291A JP3806931B2 (ja) | 2002-07-30 | 2003-03-28 | 情報処理装置および方法、並びにプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004129205A JP2004129205A (ja) | 2004-04-22 |
JP2004129205A5 JP2004129205A5 (ja) | 2005-04-07 |
JP3806931B2 true JP3806931B2 (ja) | 2006-08-09 |
Family
ID=31190325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003091291A Expired - Fee Related JP3806931B2 (ja) | 2002-07-30 | 2003-03-28 | 情報処理装置および方法、並びにプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US7574517B2 (ja) |
EP (1) | EP1526688A1 (ja) |
JP (1) | JP3806931B2 (ja) |
CN (1) | CN1291577C (ja) |
WO (1) | WO2004012401A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060093119A1 (en) * | 2004-11-03 | 2006-05-04 | Wilson Richard A Jr | Leveraging real-time communications client |
US20060098722A1 (en) * | 2004-11-09 | 2006-05-11 | Osamu Tanaka | Repeating installation, communication speed adjusting method, program, and recording medium |
JP2006190033A (ja) * | 2005-01-05 | 2006-07-20 | Hitachi Ltd | 情報処理システム及び通信再生処理方法 |
WO2006075559A1 (ja) | 2005-01-11 | 2006-07-20 | Matsushita Electric Industrial Co., Ltd. | 通信方法および受信端末 |
US8787967B2 (en) | 2005-08-23 | 2014-07-22 | Sony Corporation | Communication terminals with pull-based digital information distribution capability and pull-based methods for digital information distribution |
KR100562427B1 (ko) * | 2005-10-04 | 2006-03-17 | 주식회사 솔루션박스 | 컨텐츠 수신 장치 및 컨텐츠 수신을 수행하는 프로그램이저장된 기록 매체 |
JP4568246B2 (ja) | 2006-03-30 | 2010-10-27 | 株式会社東芝 | サーバ装置 |
JP5182016B2 (ja) * | 2008-10-29 | 2013-04-10 | ブラザー工業株式会社 | ノード紹介装置、ノード紹介処理プログラム、ツリー型放送システム、及びノード紹介処理方法 |
WO2013019206A1 (en) * | 2011-08-01 | 2013-02-07 | Intel Corporation | Witnessed ad-hoc uservices |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69631182T2 (de) * | 1995-04-28 | 2004-08-19 | Matsushita Electric Industrial Co., Ltd., Kadoma | Datenübertragungsverfahren |
US6292834B1 (en) * | 1997-03-14 | 2001-09-18 | Microsoft Corporation | Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network |
US6701372B2 (en) * | 1997-08-22 | 2004-03-02 | Canon Kabushiki Kaisha | Data communication apparatus and method |
US6215772B1 (en) * | 1997-11-26 | 2001-04-10 | International Business Machines Corporation | Dynamic parameter estimation for efficient transport of HPR data on IP |
JP2000115233A (ja) * | 1998-09-29 | 2000-04-21 | Nippon Telegr & Teleph Corp <Ntt> | Ipネットワーク区間性能及び状態測定方法 |
JP3587352B2 (ja) * | 1999-02-04 | 2004-11-10 | 富士通株式会社 | ネットワーク通信性能測定方法及び装置並びにネットワーク通信性能測定プログラムを格納したコンピュータ読取り可能な記録媒体 |
US6438603B1 (en) * | 1999-04-30 | 2002-08-20 | Microsoft Corporation | Methods and protocol for simultaneous tuning of reliable and non-reliable channels of a single network communication link |
US6587875B1 (en) * | 1999-04-30 | 2003-07-01 | Microsoft Corporation | Network protocol and associated methods for optimizing use of available bandwidth |
US6996067B1 (en) * | 1999-12-07 | 2006-02-07 | Verizon Services Corp. | Apparatus for and method of providing and measuring data throughput to and from a packet data network |
JP2002033733A (ja) * | 2000-07-17 | 2002-01-31 | Sharp Corp | ホストコンピュータとネットワークシステム |
US20020194361A1 (en) * | 2000-09-22 | 2002-12-19 | Tomoaki Itoh | Data transmitting/receiving method, transmitting device, receiving device, transmiting/receiving system, and program |
US7043560B2 (en) * | 2001-06-19 | 2006-05-09 | Nokia, Inc. | Dynamic probing and reporting of bit rate information |
WO2004004139A2 (en) * | 2002-06-26 | 2004-01-08 | Yahoo Inc. | System and method for communicating images between intercommunicating users |
-
2003
- 2003-03-28 JP JP2003091291A patent/JP3806931B2/ja not_active Expired - Fee Related
- 2003-06-25 EP EP03771258A patent/EP1526688A1/en not_active Withdrawn
- 2003-06-25 WO PCT/JP2003/008026 patent/WO2004012401A1/ja active Application Filing
- 2003-06-25 US US10/489,852 patent/US7574517B2/en not_active Expired - Fee Related
- 2003-06-25 CN CNB038011778A patent/CN1291577C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1526688A1 (en) | 2005-04-27 |
CN1291577C (zh) | 2006-12-20 |
JP2004129205A (ja) | 2004-04-22 |
US7574517B2 (en) | 2009-08-11 |
US20050021829A1 (en) | 2005-01-27 |
CN1565110A (zh) | 2005-01-12 |
WO2004012401A1 (ja) | 2004-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9178748B2 (en) | Transmission of information relating to a quality of service | |
CN101573941B (zh) | 用于交叉参考相关应用来报告流媒体质量的方法和设备 | |
CN102859943B (zh) | 向应用提供获知接入网络出现的方法和*** | |
US7599307B2 (en) | Quality of experience (QoE) method and apparatus for wireless communication networks | |
CN107743698B (zh) | 用于多路径媒体传递的方法和装置 | |
KR100759954B1 (ko) | 멀티미디어 스트리밍에서 클라이언트 레이트 능력을시그널링하는 방법 | |
US20110044210A1 (en) | Communication System, Wireless Communication Terminal, Communication Method, Wireless Communication Method, Wireless Communication Apparatus and Control Method Thereof | |
US20080228912A1 (en) | Enhanced Quality Reporting for Transmission Sessions | |
KR20150120237A (ko) | 모바일 비디오 애플리케이션을 위한 네트워크 중심의 QoE 프로비저닝 방법 및 장치 | |
KR20050102679A (ko) | 패킷 전환 스트리밍을 위한 품질 메트릭 보고 방법 | |
KR20100057622A (ko) | 스트리밍 미디어 서버에 있어서 프록시 구동의 콘텐츠 레이트 선택 | |
JP3806931B2 (ja) | 情報処理装置および方法、並びにプログラム | |
WO2013017165A1 (en) | Shaping media traffic based on manifest file in http adaptive streaming | |
EP2332308A1 (en) | A method and arrangement for controlling sessions in a communication network | |
WO2007022440A2 (en) | Resource selection in a communication network | |
US20060002425A1 (en) | Determining available bandwidth in a network | |
JP4931969B2 (ja) | ネットワーク品質測定システムと方法およびプログラム | |
JP2004129205A5 (ja) | ||
KR20050023210A (ko) | 정보 처리 장치 및 방법, 및 프로그램 | |
CN114501682A (zh) | 有效载荷压缩 | |
JP2011509627A (ja) | ストリーム化メディアセッションを確立するための方法および装置 | |
KR20170120456A (ko) | Mptcp 프록시 서버 및 mptcp 프록시 서버에서의 데이터 분배 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040428 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040428 |
|
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: 20060424 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060507 |
|
LAPS | Cancellation because of no payment of annual fees |