JP4222561B2 - データ通信方式、電子会議システム、データ通信方法、データ通信プログラム及び記憶媒体 - Google Patents
データ通信方式、電子会議システム、データ通信方法、データ通信プログラム及び記憶媒体 Download PDFInfo
- Publication number
- JP4222561B2 JP4222561B2 JP2004167650A JP2004167650A JP4222561B2 JP 4222561 B2 JP4222561 B2 JP 4222561B2 JP 2004167650 A JP2004167650 A JP 2004167650A JP 2004167650 A JP2004167650 A JP 2004167650A JP 4222561 B2 JP4222561 B2 JP 4222561B2
- Authority
- JP
- Japan
- Prior art keywords
- client
- server
- screen
- packet
- udp
- 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
Description
米国Microsoft社の販売するWindows(登録商標)系列の一部のOSに、標準で搭載されている電子会議アプリケーションで、サーバのデスクトップ画面全体や、もしくは指定したアプリケーションの画面をクライアントから閲覧する、あるいは遠隔操作することが可能となっている。
米国AT&T社の開発した画面共有ソフトであり、基本的にはサーバのデスクトップ画面全体を共有する。RFB(Remote Frame Buffer)プロトコルと呼ばれるプロトコルを用いて、サーバの画面領域の更新部分をエンコードし、クライアントに送信している。このVNCを元に開発されたソフトには、指定したアプリケーションの画面領域のみを共有したり、サーバのデスクトップ画面のうち指定した矩形領域のみを共有することが出来るよう改良されたものがある。画面データのエンコード方式に強力な圧縮を掛けたものなども開発されている。このような改良がなされたものとしては、例えば、TightVNC,eSVNC,VDACC VNC等のソフトが知られている。
また、画面共有機能を利用した教育用途のソフトウェアとして、Danware社のNetOp Schoolや、Cross Tech社開発の、リモコン倶楽部for Schoolがある。
前記VNCのJava(登録商標)上で動作するクライアントソフトウェアの改良版であり、サーバの画面データを、複数のクライアントに中継する機能を有する。これにより、1つのサーバに、大量のクライアントが接続することにより、画面更新速度が低下するのを低減することが可能となっている。
Microsoft社のOSの一つである、Windows Xp Professionalでは、RemoteDesktopという画面共有機能が備わっている。これも、同様にRemoteDesktopサーバの画面データをRemoteDesktopクライアントで受信し、閲覧したり、クライアントからの遠隔操作を可能にしている。しかし、単純に画面データを送信するだけなので、クライアント機器でWindows MediaPlayerなどのソフトウェアで、ビデオ映像を閲覧しようとすると、コマ落ちが発生するという問題が指摘されている。
一方、データグラム型の通信方式であるUDP/IP通信においては、パケットの受信に対して、ACKを返す必要がない。これにより、通信の確実性は保証されないが、通信速度が向上する。また、UDPパケットのヘッダは64ビットであるのに対し、TCPは182ビットあり、このヘッダのオーバーヘッドが通信速度の低下の原因になる場合もある。特に、電子会議システムのように、1つのサーバに対して、複数のクライアントが画面共有によって、サーバ上に表示された文書の閲覧を行ったり、文書をクライアントから遠隔編集する場合には、1クライアント毎にTCP接続を確立させる必要があり、通信速度の低下を招き、クライアントの画面更新が遅くなり、利用者がストレスを感じたり、誤った遠隔操作を行ってしまう可能性も高くなる。例えば、単一のサーバに対して、10台以上のクライアントが接続した場合、既存のソフトウェアでは、画面更新速度が落ちて、実用に耐えられなくなってしまう。
データ通信システムは、サーバとして機能する情報処理装置(サーバ1)と、前記サーバ1のクライアントとして機能する情報処理装置(クライアント2a,2b,・・・,2n)が、IPネットワーク10を介して接続されている。IPネットワークとして、例えば、IEEE802.3で定められているイーサネット(登録商標)LAN等がある。
画面を共有する方法は、従来の技術をそのまま利用することができるので、詳細な説明を省略する。概略としては、サーバのアプリケーションが該サーバの画面データの更新部分を検出し、画面の更新領域を一定のアルゴリズムにより分割、エンコードして、クライアントに送信する。受信したクライアントは、更新された領域の画面データをデコードして、共有画面のデータを更新するという方法による。
一方、本発明では、画面データをUDPパケットで送信する機能を備えている。UDPはCL型のプロトコルであって、データの信頼性はTCPに劣るものの、高速データ転送が可能であるという利点を有する。
初期状態として、サーバ1は、UDPポートを開け、UDP用のソケットでクライアントからの接続を待ち受けている状態にある。
クライアント2は、サーバ1に対して画面共有の要求を行うために、UDPパケットを用いて送信する(ステップS1)。パケットを受信したサーバは共有を許可すると、共有の要求を行ったクライアントへ許可を通知するパケットを送信すると共に、共有を許可したクライアントのネットワークアドレス(IPアドレス)を記憶する(ステップS2,S3)。これにより、共有の要求を行ったクライアントに対して、UDPパケットで画面データを送信できるようになると共に、該クライアントからの入力イベントを受信して、リモート操作を可能な状態にする。
すなわち、UDPポートを開け、UDP用のソケットでサーバ1からの通信パケットを待ち受ける。
また、図では省略したが、ここでクライアントとサーバは、共有する画面の大きさやエンコードの方法について、相互の設定を調整する通信が含まれる場合もある。
また、クライアントが遠隔操作を行った場合には、入力イベントがUDPパケットでサーバに送信される(ステップS6)。
そこで、図3に示すアルゴリズムで相手の監視を行う。
例えば、2分間のタイマーで確認を行う。
パケット受信の確認を行い(ステップS21)、データまたは確認パケットを受信すると(ステップS22/Yes)、タイマーをスタートさせる(ステップS23)。2分以内に何らかのパケットを受信した場合(ステップS24/Yes)は、タイマーを再スタートする(ステップS23)。2分以内に受信しなかった場合(ステップS24/No,S25/Yes)は、相手が切断したと判断し、相手との送受信の設定を解除する(ステップS26)。
よって、本発明は、LAN等の短距離ネットワークで、データ通信量の大きいネットワーク回線上でサーバとクライアントが接続されている場合や、画面データの確実性よりも共有画面が頻繁に更新されるような場合に用いることが好ましい。
すなわち、本発明において、サーバとは、ネットワークにおいて共有される画面データを有するコンピュータであり、従って、大画面表示装置を備えていなくても、また、クライアントとしてデスクトップPCを用いても構わない。
図4は、サーバとクライアントの接続にTCP/IP接続を利用し、画面データ及び入力イベントの送信にUDPパケットを利用する方式の処理フローを示した図である。
サーバ1とクライアント2は共に、TCPとUDPの2つのソケットを用意する。
TCPパケットで接続すると(ステップS31,S32,S33)、同じネットワークアドレスのUDPソケットを用いて、画面データや入力イベントの送受信を行う(ステップS34a〜d,S35)。
TCP接続の切断の要求を行い、TCP接続を切断すると、UDPソケットも終了し、画面データ及び入力イベントの待ち受けを終了する(ステップS36,S37,S38)。TCPはコネクション型の通信プロトコルであるので、相手との接続の管理はTCP接続の接続管理に任せ、特にアプリケーション側(上位レイヤ)で監視の機能を実装する必要はない。
また、表1はネットワーク構成におけるネットワークアドレスの一例である。
サーバ1は、UDPソケットで、(133. 139. 100. 111)と(133. 139. 100. 222)からの入力イベントを待ち受けている。また、画面データをブロードキャストアドレス(255. 255. 255. 255)で同一サブネット内にブロードキャスト送信する。パケットはUDPパケットを用いる。
クライアント2a,2bは、(133. 139. 100. 100)からの画面データのブロードキャストを待ち受けている。また、入力イベントを(133. 139. 100. 100)にUDPユニキャストで送信する。
クライアントは、サーバからブロードキャストされた画面データを受信して、画面共有を行う。
サーバとクライアントの接続確立時に、サーバ1は、全てのクライアントにマルチキャストアドレスを通知する。
サーバ1は、マルチキャストがクライアントに届くように、マルチキャストの範囲を設定する。すなわち、TTL(Time To Live)の値を適切に設定する。
クライアント2a,2bは、サーバ1から指定されたマルチキャストアドレス(233. 233. 233. 233)からの画面データを待ち受けている。また、入力イベントを(133. 139. 100. 100)にUDPユニキャストで送信する。
サーバ1は、予めTCPパケットで送信するように設定したアプリケーションの画面データ11を送信する場合は、TCPパケットにより送信し、それ以外の画面領域(UTD共有アプリケーション画面12等)は、UDPパケットを用いて送信する。
画面共有サーバプログラムに、TCPパケットで送信したいアプリケーションの実行ファイルのパスを登録する。例えば、
C:\Program Files\Wordproc\Wordproc.exe
C:\Program Files\Matrixcalc\Matrixcalc.exe
を登録する。
サーバ1の表示画面に更新があった場合、画面共有プログラムは、一定のアルゴリズムにより領域を分割して、エンコードするが、ここで分割した画面領域が、登録されたアプリケーションのウィンドウ領域であるか否かを判断する(ステップS51)。
登録されたアプリケーションのウィンドウ領域である場合(ステップS52/Yes)は、エンコード後、TCPパケットで送信するよう指示する(ステップS53)。一方、それ以外の領域である場合(ステップS52/No)は、UDPパケットで送信するよう指示を出す(ステップS54)。
実施例2で示した処理フローと同様に、TCP/IPで接続管理を行っており(ステップS61〜S63、及びS68〜S70)、必要に応じて画面データをTCPパケットとUDPパケットに切り替えて送信している(ステップS64〜S66)。
図9において、最前面ウィンドウ13の画面データを送信する際には、TCPパケットを用いて送信し、それ以外の画面領域(背面ウィンドウ14等)は、UDPパケットを用いて送信する。
サーバ1の表示画面に更新があった場合、画面共有プログラムは、一定のアルゴリズムにより領域を分割して、エンコードするが、ここで、分割した画面領域が、最前面にあるウィンドウ領域であるか否かを判断する(ステップS71)。
最前面にあるウィンドウ領域である場合(ステップS72/Yes)は、エンコード後、TCPパケットで送信するよう指示する(ステップS73)。一方、それ以外の領域の場合(ステップS72/No)は、UDPパケットで送信するよう指示を出す(ステップS74)。
例えば、デスクトップ領域をマウスでクリックした場合など、最前面にあるウィンドウが必ずしもアクティブウィンドウであるとは限らないが、非アクティブであっても、最前面にあればTCPパケット送信するようにすることも、あるいは非アクティブの場合、最前面であってもUDPパケットで送信するようにすることも可能である。
サーバ1の表示画面に更新があった場合、画面共有プログラムは、一定のアルゴリズムにより領域を分割して、エンコードするが、ここで分割した画面領域が、アクティブウィンドウ領域であるか否かを判断する(ステップS81)。
分割した画面領域がアクティブウィンドウ領域である場合(ステップS82/Yes)は、エンコード後、TCPパケットで送信するよう指示する(ステップS83)。一方、それ以外の領域の場合(ステップS82/No)は、UDPパケットで送信するよう指示を出す(ステップS84)。
図13において、ユーザ指定文書ウィンドウ17の画面データを送信する際には、TCPパケットを用いて送信し、それ以外の領域(非ユーザ指定文書ウィンドウ18等)は、UDPパケットを用いて送信する。
サーバ1の表示画面に更新があった場合、画面共有プログラムは、一定のアルゴリズムにより領域を分割して、エンコードするが、ここで分割した画面領域がユーザの指定した文書のウィンドウ領域であるか否かを判断する(ステップS91)。
分割した画面領域がアクティブウィンドウ領域である場合(ステップS92/Yes)は、エンコード後、TCPパケットで送信するよう指示する(ステップS93)。一方、それ以外の領域の場合(ステップS93/No)は、UDPパケットで送信するよう指示を出す(ステップS94)。
c:\My Documents\統計\2003Jan.pdf
と登録する。すると、この文書を開くアプリケーション(例えばAcrobat Reader(登録商標))のウィンドウで、該文書を開いているウィンドウ領域の画面データはTCPパケットで送信される。
例えば、
c:\My Documents\統計\2003Jan.pdf
という文書を開いているプログラムAcrobat Reader(登録商標)のウィンドウを指定する。例えば、画面共有プログラムで、TCPパケットで画面送信するウィンドウを選択する機能を設け、この機能を実行すると、実行後最初にマウスでクリックしたウィンドウをTCPパケットで画面データを送信するよう登録し、登録機能を終了するようにする。
図15に示すように、ユーザ指定領域19の画面データを送信する際には、TCPパケットを用いて送信し、それ以外の領域は、UDPパケットを用いて送信する。
サーバ1の表示画面に更新があった場合、画面共有プログラムは、一定のアルゴリズムにより領域を分割して、エンコードするが、ここで分割した画面領域が、ユーザの指定した画面領域であるか否かを判断する(ステップS101)。
ユーザが指定した画面領域である場合(ステップS102/Yes)は、エンコード後、TCPパケットで送信するよう指示を出す(ステップS103)。一方、それ以外の領域の場合(ステップS102/No)は、UDPパケットで送信するよう指示を出す(ステップS104)。
画面共有プログラムで、TCPパケットで画面送信する画面領域を選択する機能を設け、この機能を実行すると、実行後最初にマウスでクリックしたウィンドウを左上頂点とし、マウスをクリックした状態のまま移動させ、マウスクリックを放した位置を、右下頂点とする矩形領域をTCPパケットで画面データを送信するよう登録し、登録機能を終了するようにする。最初にクリックした座標と、最後に放した場所の座標を取得して登録する。例えば、(100,200)でクリックを開始し、(400,700)までドラッグして、マウスを放した場合、この両点を対角線上にある2頂点とする矩形領域をTCP送信領域とする。
図17は、通信プロトコルの切り替え指示を行う画面を例示した図であり、サーバの画面共有プログラムにTCP/UDPを選択、切り替えを指示する機能を設ける。
このように、最初デフォルト設定では、TCP接続を確立したクライアントに対しては、TCPパケットで画面データを送信するように設定されているとする(ステップS111)。図17のような画面共有プログラムの通信手段切り替え機能により、UDPパケットで送信するよう指示された場合(ステップS112/Yes)は、画面データをUDPパケットで送信する(ステップS113)。また、逆にTCPパケットに戻すことも可能である(ステップS114/Yes,S111)。
例えば、サーバでビデオ映像を再生する場合や、アニメーション効果をふんだんに用いたプレゼンテーションのスライドショーを行う場合、画面データの送信量が多くなり、確実性よりも、速度が要求される場合などに、UDPパケットで送信するモードに切り替える。一方、文字ばかりのデータを共有する場合は、確実に表示されないと困るので、TCPパケットを利用するように切り替える。
図19は、ユーザ毎に通信プロトコルの切り替え指示を行う画面を例示した図であり、クライアント毎にTCPを用いるか、UDPを用いるかを選択することが可能である。
画面共有サーバは、クライアントのIPアドレスまたは、ホスト名、あるいは画面共有プログラムでやり取りする任意の識別名(例えば利用者の名前)を用いて、各クライアント毎の設定を変更する機能を有する。現在接続しているクライアントに対して、TCPとUDPのどちらを用いて、画面データを送信しているかを、管理し、表示すると共に、その設定を変更する機能を有する。
また、図19に示すように、「全員TCP」ボタンの押下により、全員、TCPパケットで送信することも、また、「全員UDP」ボタンの押下により、全員、UDPパケットで送信することも可であり、ネットワークに参加しているクライアントが多数の場合には、このような手段も有効である。
サーバ1の画面共有プログラムは、ネットワーク上のクライアントの接続台数を監視している(ステップS121)。
接続台数が所定の台数を超えたことを検出した場合(ステップS122/Yes)は、画面データを送信するのに用いる通信方式を、TCPからUDPに切り替える(ステップS124)。これにより、クライアントの台数が多い場合に、通信量が増えて各クライアントの画面表示にディレイが生じるのを低減する。
また、UDPでの通信を行っている場合に、ネットワークに接続されているクライアントの台数が、所定の台数以下である場合(ステップS122/No)は、通信方式をUDPからTCPに切り替える(ステップS123)。接続台数が少なく、ネットワークのデータ通信量が小さい場合には、信頼性の高いTCPにより通信を行う。
サーバ1上の画面共有プログラムは、クライアントが有線LANでネットワークに接続しているか、無線LANを介して接続しているかを取得する機能を有する。
クライアントは、自身の通信インターフェースに関する情報を、OSのシステム情報から取得することが可能である。クライアントの画面共有プログラムは、サーバ1に接続する際、この通信インターフェース情報を送信する。
一方、サーバ1は、クライアントから送られた通信インターフェースの情報から、それが無線LANかどうかを判定する。例えば、インターフェースの名前、あるいは無線LANであれば、IEEE802.11のどの規格のものであるか等の情報から判断する。
また、TCPで送信するように設定するインターフェースの対象は、無線LANだけでなく、IrDAやBluetooth(登録商標)も含んで良い。
クライアントが無線インターフェースを利用していることを判断すると、上記例のように、TCPパケットで画面データを送信する設定とし、有線LANと判断した場合には、UDPパケットを利用する設定とする。
サーバ1上の画面共有プログラムは、クライアントとLANで接続しているか、WANを介して接続しているかを取得する機能を有する。
(方法1)
クライアントは、自身の通信インターフェースに関する情報を、OSのシステム情報から取得することが可能である。クライアントの画面共有プログラムは、はサーバ1に接続する際、この通信インターフェース情報を送信する。
一方、サーバ1は、クライアントから送られた通信インターフェースの情報から、第一の判断を行う。インターフェースがモデムであれば、WANで接続していると判断する。
サーバ1自身のネットワーク情報とクライアントのIPアドレスを照合し、クライアントのIPアドレスがグローバルIPであれば、そのクライアントはWANから接続していると判断する。
クライアントに対して、ネットワークコマンドの1つであるtracerouteコマンドを使って、ルーティング情報を問い合わせる。そこで、LANの外に出ていることを確認した場合、そのクライアントはWANから接続していると判断する。
サーバ1上の画面共有プログラムは、画面更新が行われた場合、更新領域をエンコードして送信するのに必要なデータ量を計測する手段を有する。画面共有プログラムのうち、更新領域をエンコードする部分から、この量を取得する(ステップS151)。
図23に示すように、更新量が所定の閾値を越えた場合(ステップS152/Yes)は、画面データを、UDPパケットで速度を優先して送信し(ステップS153)、そうでない場合(ステップS152/No)は、TCPパケットでクライアントの受信を確認しながら送信する(ステップS154)。
また、UDP通信を行っている場合に、残量が閾値よりも少なくなった場合は、自動的にTCPパケットでの送信に戻す。
サーバ1上の画面共有プログラムは、画面更新が行われた場合、単位時間当たり送信しているデータ送信レート(単位時間あたりの送信データ量)を計測する手段を有する。例えば、OSのシステム情報の送信ビットレートから取得する(ステップS161)。
また、UDP通信を行っている場合に、データレートが閾値よりも大きくなった場合は、自動的にTCPパケットでの送信に戻す。
サーバ1及びクライアント上で起動する画面共有プログラムは、クライアントがサーバ1に接続した際、サーバ1とクライアントの間の通信速度を測定する。
サーバ1とクライアントの間の通信速度を測定を行う方法には、従来の測定方法を用いることができる。例えば、インターネット上のウェブサイトで行われているのと同様に、数メガバイトのデータを送信して、所要時間を測定する方法がある。
ここで、この判断の基準値は、例えば1メガバイト/秒(Mbps)とすることができる。
サーバ1上で起動する画面共有プログラムは、クライアントがサーバ1に接続した際、サーバ1とクライアントの間のMTUを測定する手段を有する。
サーバーとクライアントの間のMTUを測定を行う方法には、従来の測定方法を用いることができる。例えば、ネットワークコマンドの1つであるpingコマンドを使って、断片化しない最大データ容量を調べる方法がある。
以下にその原理を示す。
ただし、
-f・・・パケットの分割を禁止するオプション
-l・・・パケットのサイズを指定するオプション
ここで、この判断の基準値は、例えば1メガバイトとすることができる。
サーバ1上で起動する画面共有プログラムは、クライアントがサーバ1に接続した際、QoSを測定し、帯域幅、最低保証速度、最大遅延時間、パケット間隔、ピーク速度、ネットワークの遅延やジッタ、パケットロス等を測定し、通信品質を評価する手段を有する。
ただし、必ずしも、全てのパラメータを測定する必要はない。
サーバ1上で起動する画面共有プログラムは、複数のクライアントが接続して、同時に画面を共有することが可能な画面共有システムにおいて、クライアントに優先順位を付ける機能を有する。
例えば、サーバ1の画面が更新された場合、まず、優先権の与えられたクライアントに対してTCPパケットで確実に画面データを送信し(ステップS201,S202/Yes,S203)、優先権のないクライアントに対しては、その後UDPパケットで、受信確認なしで画面データを送信する(ステップS201,S202/No,S204)。
図29に示すように、制御権を得ているクライアントのみ(クライアント「亜伊 上男(192. 168. 0. 2)」)が、遠隔操作が可能で、制御権を所持しているクライアントに対しては、所有していないクライアントよりも先に、TCPパケットで画面データを送信する。一方、制御権のないクライアントは、共有画面を閲覧するだけで、入力イベントはサーバに受け付けられない。また、制御権のないクライアントへの画面データ送信後に、UDPパケットで、受信確認なしで画面データを受信する。
サーバ1は、クライアントが遠隔操作中であるかどうかを判断する機能を有する。
図30に示すように、クライアントがリモート操作を行うと、サーバ1は、そのクライアントのリモート操作フラッグをONにする(ステップS211)。そこでタイマーをスタートし(ステップS212)、一定時間内に、例えば、1分以内に、クライアントが操作を行ったかどうかで、クライアントが操作中であるかどうかを判断する。例えば、1分以内に何の入力イベントがない場合、サーバ1はそのクライアントが遠隔操作を行っていないと判断して(S213/No,S214/Yes)、リモート操作フラッグをOFFにする(ステップS215)。
これにより、操作を行っている人に対して、品質・速度を優先して、画面データを送信し、遠隔操作に不便を感じないようにすることが可能である。
画面の更新があった場合、先ず、文字が表示された部分の画像データを、TCPパケットで確実に送信し、その後、その他の領域の画像データをUDPパケットで送信し、クライアントの画面で、文字の部分を読みやすくする。
フォント描画命令の検出方法として、例えば、サーバ1上で起動する画面共有プログラムが、分割領域のGDI(Graphic Device Interface)命令を調べ、フォント描画命令が出ているか否かによって実行する方法がある。
サーバ1上の画面共有プログラムは、画面更新が行われた場合に、CPUの負荷量を計測する手段を有する。例えば、OSのシステム情報のCPU負荷情報から取得する。
閾値の設定として、例えば、CPU負荷が1秒間以上にわたって80%を超えている場合は、UDPパケットに切り替えるようにする。
あるいは、有線LANで接続しているクライアントに対しては、無条件でUDPパケットで画面データを送信し、無線LANで接続しているクライアントに対しては、指定したアプリケーションのみをTCPパケットで優先的に送信し、それ以外の部分はUDPパケットで送信するなどの組み合わせが可能である。
図34は、本発明の一実施例であるデータ通信システムのネットワーク構成を示した概要図である。
データ通信システムは、サーバとして機能する情報処理装置(サーバ1)と、前記サーバ1のクライアントとして機能する情報処理装置(クライアント2a,2b,・・・,2n)と、サーバ1及びクライアント2との間に中継機器3と、を含む形で構成される。サーバ1、クライアント2、中継器機3は、例えば、パーソナルコンピュータであり、これらが、例えば、IEEE802.3で定められているイーサネット(登録商標)LANによるネットワークで接続されている。
本例では、サーバ1とクライアント2の間に、中継機器(以下、プロキシと省略する)が存在し、サーバ1から受信した画面データを受信し、プロキシに接続しているクライアントに画面データを転送する。これにより、サーバ1に多数のクライアントが接続した際の、サーバの負荷を低減し、通信効率を向上させることが可能である。
プロキシを用いた画面の共有方法は、MulticastVNCやVNC Proxyあるいは、VNC Reflector等の従来技術をそのまま利用できるので、詳細は省略する。概略としては、サーバのアプリケーションが、サーバの画面データの更新部分を検出し、画面の更新領域を、一定のアルゴリズムにより分割して、エンコードして、プロキシに送信する。プロキシは、一種の画面共有クライアントとして起動する。プロキシはそれと共に、受信した画面データを接続しているクライアントに転送するサーバとしての機能を持ち、受信したクライアントは、更新された領域の画面データをデコードして、共有画面のデータを更新することにより、サーバの画面を表示することが可能となっている。
サーバ1とプロキシ3との接続管理、プロキシ3とクライアント2との接続管理は、実施例2と同様にTCPの接続管理によって行っているものとする。すなわち、プロキシ3はサーバ1に対してTCPによる接続要求を行い(ステップS301)、サーバ1が応答し、サーバ〜プロキシ間のTCP接続が確立する(ステップS302,S303)。また、クライアント2は、プロキシ3に対してTCPによる接続要求を行い(ステップS304)、プロキシ3が応答し、クライアント〜プロキシ間のTCP接続が確立する(ステップS305,S306)。
プロキシ3は、サーバ1からTCPパケットで受信確認を行いながら画面データを受信すると(ステップS307,S308)、その画面データを接続されたクライアントに対してUDPパケットで画面データを送信する(ステップS309)。
また、例えば、サーバ1からUDPパケットで受信した画面データを、TCPパケットでクライアント2に転送してもよい。
あるいは、サーバ1からTCPパケットで受信した画面データを、TCPパケットでクライアント2に転送するという方法もある。
サーバ1は、UDPソケットで、(133. 139. 100. 111)と(133. 139. 100. 222)からの入力イベントを待ち受けしている。また、画面データをブロードキャストアドレス(255. 255. 255. 255)で同一サブネット内にブロードキャスト送信する。
クライアント2j,2nは、(133. 139. 100. 100)からの画面データのブロードキャストを待ち受けしている。また、入力イベントを(133. 139. 100. 100)にUDPユニキャストで送信する。
サーバ1は、プロキシ3とTCP接続し、画面データをTCPパケットで、プロキシ3のアドレス(133. 139. 100. 55)に送信している。一方、TCPソケットで、プロキシ3からの入力データを待ち受けている。
プロキシ3は、TCPソケットで、サーバ1のアドレス(133. 139. 100. 100)からの画面データを待ち受けしている。
また、プロキシ3は、UDPソケットで、クライアントのアドレスである(133. 139. 100. 111)と(133. 139. 100. 222)からの入力イベントを待ち受けしている。
プロキシ3は、クライアントからの入力イベントを受信すると、TCPパケットで、サーバ1に入力イベントを転送する。
クライアント2j,2nは、(133. 139. 100. 55)からの画面データのブロードキャストを待ち受けしている。また、入力イベントを(133. 139. 100. 55)にUDPユニキャストで送信する。
クライアントは、プロキシ3からブロードキャストされた画面データを受信して、画面共有を行う。
プロキシ3とクライアント2との接続確立時に、サーバ1は全てのクライアントにマルチキャストアドレスを通知する。
プロキシ3はマルチキャストがクライアントに届くように、マルチキャストの範囲を設定する。すなわち、TTL(Time To Live)の値を適切に設定する。
サーバ1は、プロキシ3とTCP接続し、画面データをTCPパケットで、プロキシ3のアドレス(133. 139. 100. 55)に送信している。一方、TCPソケットで、プロキシ3からの入力データを待ち受けている。
プロキシ3は、サーバ1からの画面データを受信すると、受信した画面データをマルチキャストキャストアドレス(233. 233. 233. 233)でマルチキャスト送信する。パケットはUDPパケットを用いる。
また、プロキシ3は、UDPソケットで、クライアントのアドレスである(133. 139. 100. 111)と(133. 139. 100. 222)からの入力イベントを待ち受けしている。
プロキシ3は、クライアントからの入力イベントを受信すると、TCPパケットで、サーバ1に入力イベントを転送する。
プロキシ3は、サーバ1から受信した画面データを、TCPパケットでサーバ1が送信して来た順に、時間情報と共に、順次ファイルに追記していき、蓄積する。時間記録は例えば、記録開始時間を原点とする。
クライアント2は、プロキシ3に接続し、記録されたサーバ1の画面データの再生を要求すると、プロキシ3は、記録した画面データを、記録開始時間からの経過時間の指示に従い、順次クライアントにUDPパケットで送信する。
図38はその様子を示している。サーバ1とプロキシ3の接続が終了後に、クライアント2がプロキシ3に接続して、画面共有の様子を非同期で閲覧することが可能である。なお、再生中は、クライアント2は言うまでもなく閲覧することしかできず、プロキシ3はクライアント2からの入力イベントは受け付けない。
プロキシ3が記録時間データを元に、画面データをクライアント2に送信する際、経過時間を、例えば、記録された値の半分の値として送信間隔を早めることも可能である。
例えば、図1で示したネットワーク構成において、サーバ1を会議サーバとし、クライアント2を参加者の利用する参加者端末とする電子会議システムを構築する。
会議サーバは、実施例3で説明したような、画面共有サーバ1のUDPマルチキャストを利用した画面データ送信機能を備える。
会議サーバは、会議室内のネットワークにのみマルチキャストパケットが届くようにTTLを設定する。
また、会議サーバは制御権の管理を行い、基本的に、制御権を持っていない参加者端末にはマルチキャストUDPによって画面データを送信している。
一方、制御権を持っている参加者端末に画面データを送信する場合は、最前面にあるアクティブウィンドウの文字領域の画面データを優先的にTCPパケットを用いて、制御権のある参加者端末で早く正確に表示できるよう送信する。文字領域以外のデータは、UDPパケットで、送信順序の優先度を下げて送信されるようになっている。
会議サーバは、直接接続している参加者端末にマルチキャストパケットが届くようにTTLを設定する。会議プロキシは、プロキシに接続している参加者端末にマルチキャストパケットが届くようにTTLを設定する。
また、途中から会議に参加したい参加者は、プロキシに接続し、会議の初めから共有画面の画面データを再生し、適宜不要な部分を飛ばして再生したり、早送り再生をすることにより、会議の内容を追いかけ、リアルタイムに会議サーバの画面共有したくなったら、会議サーバに接続を切り替え、同期した共有画面を見たり、遠隔操作を行ったりしながら、会議に参加することが可能となる。
以上の説明から明らかなように、送信パケットに対して、パケットを正常に受信したことを応答するACKパケットを返信する必要のある、データストリーム型の通信方式であるTCPパケットによる通信だけでなく、ACKの返信の必要がないため高速であるが、信頼性や、パケットの受信順序を保証しないデータグラム型の通信方式であるUDPパケットを用いて、画面データの送信を行う、高速な画面共有を行う、画面共有サーバと画面共有クライアント間の通信が可能となる。
また、クライアントの利用者が、画面共有によってサーバの画面データを共有する際に感じる、サーバとのタイムラグによって生じる感覚的不満を緩和することも可能となる。
また、あまり重要でない画面データや、TCPを用いて確実に送信するまでもない良好なネットワーククライアント環境のクライアントに対して、UDPパケットを利用して画面データを送信することにより、TCPパケットを利用する必要のあるクライアントの利用者が、あるいはTCPパケットを用いて、確実に送信する必要のある画面データの転送速度を相対的に速くすることが可能となる。
また、TCPパケットで送信するよう登録されたアプリケーションの画面データの転送速度を相対的に速くすることが可能となる。
また、映像データ再生アプリケーションなどの、TCPパケットによる確実性よりも、画面更新速度を優先するアプリケーションの画面データをUDPパケットにより送信し、クライアントの画面で、画面共有のコマ落ちを減少させることも可能となる。
また、文書の重要度により、確実性を優先するか、通信速度を優先するかを選択することが可能となり、通信効率を向上することが可能となる。
また、TCPパケットで送信するよう登録された文書を開いているアプリケーションウィンドウの画面データの転送速度を相対的に速くすることが可能となる。
また、有線LANで接続しているクライアントに対して、UDPパケットを使用して画面データを送信することにより、TCPパケットで送信するよう登録された無線LANを介して接続しているクライアントへの画面データの転送速度を相対的に速くすることが可能となる。
2 クライアント
3 中継機器(プロキシ)
10 IPネットワーク
11 TCP共有アプリケーションウィンドウ
12 UDP共有アプリケーションウィンドウ
13 最前面ウィンドウ
14 背面ウィンドウ
15 アクティブウィンドウ
16 非アクティブウィンドウ
17 ユーザ指定文書ウィンドウ
18 非ユーザ指定文書ウィンドウ
Claims (8)
- サーバとして機能する情報機器と、
前記サーバのクライアントとして機能する情報機器を構成要素とし、
前記サーバは、その表示画面の少なくとも一部に関するデータを、前記クライアントにIPプロトコルを用いて通信を行うネットワークを介して送信する手段と、送信する画面領域のデータの種類または表示条件、クライアントとの通信環境、あるいはユーザが与える指示の何れかによって、前記サーバは前記画面データを送信する場合に、送信する画面データの少なくとも一部を、TCPパケットを用いて送信するか、もしくはUDPパケットを用いて送信するかを切り替えて送信する手段とを有し、
前記クライアントは、前記サーバから受信した画面データを表示装置に表示することにより、前記サーバの表示画面を共有する手段を有するネットワークシステムにおけるデータ通信方式であって、
前記サーバは、接続クライアントの優先権および共有画面上での遠隔制御の制御権を管理する手段をさらに有し、
前記優先権の与えられているクライアントに対しては、TCPパケットで画面データを送信し、
前記優先権が与えられていないクライアントに対しては、前記優先権の与えられているクライアントに対するTCPパケットの送信後に、UDPパケットで画面データを送信し、
前記制御権を所持しているクライアントに対しては、TCPパケットで画面データを送信し、
前記制御権のないクライアントクライアントに対しては、前記制御権の与えられているクライアントに対するTCPパケットの送信後に、UDPパケットで画面データを送信することを特徴するデータ通信方式。 - 前記サーバは、UDPマルチキャストまたはUDPブロードキャストパケットを用いて複数の前記クライアントに対して、画面データを同報通信方式で送信する手段を有することを特徴とする請求項1記載のデータ通信方式。
- 会議サーバとして機能する情報機器と、
前記会議サーバの会議クライアントとして機能する情報機器を構成要素とし、
前記会議サーバは、その表示画面の少なくとも一部に関するデータを、前記会議クライアントにIPプロトコルを用いて通信を行うネットワークを介して送信する手段と、送信する画面領域のデータの種類または表示条件、会議クライアントとの通信環境、あるいはユーザが与える指示の何れかによって、前記会議サーバは前記画面データを送信する場合に、送信する画面データの少なくとも一部を、TCPパケットを用いて送信するか、もしくはUDPパケットを用いて送信するかを切り替えて送信する手段とを有し、
前記会議クライアントは、前記会議サーバから受信した画面データを表示装置に表示することにより、前記会議サーバの表示画面を共有する手段を有する電子会議システムであって、
前記サーバは、接続クライアントの優先権および共有画面上での遠隔制御の制御権を管理する手段を有し、
前記優先権の与えられているクライアントに対しては、TCPパケットで画面データを送信し、
前記優先権が与えられていないクライアントに対しては、前記優先権の与えられているクライアントに対するTCPパケットの送信後に、UDPパケットで画面データを送信し、
前記制御権を所持しているクライアントに対しては、TCPパケットで画面データを送信し、
前記制御権のないクライアントクライアントに対しては、前記制御権の与えられているクライアントに対するTCPパケットの送信後に、UDPパケットで画面データを送信することを特徴する電子会議システム。 - 前記サーバは、UDPマルチキャストまたはUDPブロードキャストパケットを用いて複数の前記クライアントに対して、画面データを同報通信方式で送信する手段を有することを特徴とする請求項3記載の電子会議システム。
- サーバとして機能する情報機器と、前記サーバのクライアントとして機能する情報機器を構成要素とするネットワークシステムにおけるデータ通信方法であって、
前記サーバにおいて、その表示画面の少なくとも一部に関するデータを、前記クライアントにIPプロトコルを用いて通信を行うネットワークを介して送信する工程と、
前記クライアントにおいて、前記サーバから受信した画面データを表示装置に表示することにより、前記サーバの表示画面を共有する工程とを有し、
送信する画面領域のデータの種類または表示条件、クライアントとの通信環境、あるいはユーザが与える指示の何れかによって、前記サーバは前記画面データを送信する場合に、送信する画面データの少なくとも一部を、TCPパケットを用いて送信するか、もしくはUDPパケットを用いて送信するかを切り替えて送信する工程を有し、
前記サーバは、自ら管理する接続クライアントの優先権および共有画面上での遠隔制御の制御権に応じて、
前記優先権の与えられているクライアントに対しては、TCPパケットで画面データを送信し、
前記優先権が与えられていないクライアントに対しては、前記優先権の与えられているクライアントに対するTCPパケットの送信後に、UDPパケットで画面データを送信し、
前記制御権を所持しているクライアントに対しては、TCPパケットで画面データを送信し、
前記制御権のないクライアントクライアントに対しては、前記制御権の与えられているクライアントに対するTCPパケットの送信後に、UDPパケットで画面データを送信することを特徴するデータ通信方法。 - 前記サーバは、UDPマルチキャストまたはUDPブロードキャストパケットを用いて複数の前記クライアントに対して、画面データを同報通信方式で送信する手段を有することを特徴とする請求項5記載のデータ通信方法。
- 請求項5または6に記載のデータ通信方法をコンピュータに実行させるためのデータ通信プログラム。
- 請求項5または6に記載のデータ通信方法をコンピュータに実行させるためのデータ通信プログラムを格納したコンピュータが読み取り可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004167650A JP4222561B2 (ja) | 2004-06-04 | 2004-06-04 | データ通信方式、電子会議システム、データ通信方法、データ通信プログラム及び記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004167650A JP4222561B2 (ja) | 2004-06-04 | 2004-06-04 | データ通信方式、電子会議システム、データ通信方法、データ通信プログラム及び記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005348262A JP2005348262A (ja) | 2005-12-15 |
JP4222561B2 true JP4222561B2 (ja) | 2009-02-12 |
Family
ID=35500185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004167650A Expired - Fee Related JP4222561B2 (ja) | 2004-06-04 | 2004-06-04 | データ通信方式、電子会議システム、データ通信方法、データ通信プログラム及び記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4222561B2 (ja) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8387099B2 (en) | 2002-12-10 | 2013-02-26 | Ol2, Inc. | System for acceleration of web page delivery |
US8495678B2 (en) | 2002-12-10 | 2013-07-23 | Ol2, Inc. | System for reporting recorded video preceding system failures |
US8840475B2 (en) | 2002-12-10 | 2014-09-23 | Ol2, Inc. | Method for user session transitioning among streaming interactive video servers |
US8893207B2 (en) * | 2002-12-10 | 2014-11-18 | Ol2, Inc. | System and method for compressing streaming interactive video |
US8661496B2 (en) | 2002-12-10 | 2014-02-25 | Ol2, Inc. | System for combining a plurality of views of real-time streaming interactive video |
US9003461B2 (en) * | 2002-12-10 | 2015-04-07 | Ol2, Inc. | Streaming interactive video integrated with recorded video segments |
US9032465B2 (en) * | 2002-12-10 | 2015-05-12 | Ol2, Inc. | Method for multicasting views of real-time streaming interactive video |
US20090118019A1 (en) | 2002-12-10 | 2009-05-07 | Onlive, Inc. | System for streaming databases serving real-time applications used through streaming interactive video |
US8549574B2 (en) * | 2002-12-10 | 2013-10-01 | Ol2, Inc. | Method of combining linear content and interactive content compressed together as streaming interactive video |
US9108107B2 (en) | 2002-12-10 | 2015-08-18 | Sony Computer Entertainment America Llc | Hosting and broadcasting virtual events using streaming interactive video |
US8949922B2 (en) | 2002-12-10 | 2015-02-03 | Ol2, Inc. | System for collaborative conferencing using streaming interactive video |
US8468575B2 (en) | 2002-12-10 | 2013-06-18 | Ol2, Inc. | System for recursive recombination of streaming interactive video |
US8832772B2 (en) * | 2002-12-10 | 2014-09-09 | Ol2, Inc. | System for combining recorded application state with application streaming interactive video output |
JP4754416B2 (ja) * | 2006-06-26 | 2011-08-24 | 株式会社トヨタIt開発センター | 無線通信装置、無線通信方法およびプログラム |
US8472885B2 (en) | 2006-10-17 | 2013-06-25 | Pioneer Corporation | Information presenting apparatus, information presenting method, and the like, for performing communication with a plurality of devices |
JP5130891B2 (ja) * | 2007-12-10 | 2013-01-30 | 富士通株式会社 | データ送信装置及びデータ送信方法 |
JP2010034758A (ja) | 2008-07-28 | 2010-02-12 | Funai Electric Co Ltd | 無線通信システム、無線機器、サーバ |
DE112008004245B4 (de) | 2008-12-25 | 2016-12-01 | Mitsubishi Electric Corporation | Kommunikationsverwaltungsvorrichtung, Kommunikationsvorrichtung und Kommunikationsverfahren |
JP4599447B2 (ja) | 2009-03-18 | 2010-12-15 | 株式会社東芝 | 電話システム、サーバおよび端末デバイス |
JP5582282B2 (ja) * | 2009-04-24 | 2014-09-03 | 日本電気株式会社 | サーバ端末、画像処理システム、画像処理方法およびプログラム |
WO2012056783A1 (ja) * | 2010-10-25 | 2012-05-03 | 日本電気株式会社 | コンテンツ共有システム、携帯端末、プロトコル切換方法およびプログラム |
JP2011035939A (ja) * | 2010-10-29 | 2011-02-17 | Toshiba Corp | 無線通信装置及び無線通信方法 |
WO2012114371A1 (ja) * | 2011-02-23 | 2012-08-30 | 株式会社日立製作所 | メッセージ送信装置及びメッセージ送信方法 |
JP5732374B2 (ja) * | 2011-11-14 | 2015-06-10 | 西日本電信電話株式会社 | 情報処理システムおよび情報処理方法 |
US20130151624A1 (en) | 2011-12-12 | 2013-06-13 | International Business Machines Corporation | Context-Sensitive Collaboration Channels |
US9852432B2 (en) | 2011-12-12 | 2017-12-26 | International Business Machines Corporation | Customizing a presentation based on preferences of an audience |
US9588652B2 (en) | 2011-12-12 | 2017-03-07 | International Business Machines Corporation | Providing feedback for screen sharing |
US9124657B2 (en) | 2011-12-14 | 2015-09-01 | International Business Machines Corporation | Dynamic screen sharing for optimal performance |
US9141264B2 (en) | 2011-12-14 | 2015-09-22 | International Business Machines Corporation | Variable refresh rates for portions of shared screens |
JP5726720B2 (ja) * | 2011-12-19 | 2015-06-03 | 日本電信電話株式会社 | Web情報取得方法および先読み代理サーバ |
JP5613710B2 (ja) * | 2012-03-21 | 2014-10-29 | 株式会社東芝 | サーバ端末、画面転送システムおよび画面転送方法 |
WO2014043420A1 (en) * | 2012-09-12 | 2014-03-20 | Trudeau, Matthew | Transmission latency leveling apparatuses, methods and systems |
CA2919966A1 (en) * | 2013-08-06 | 2015-02-12 | Ricoh Company, Ltd. | Information processing apparatus and determination result providing method |
KR101769133B1 (ko) * | 2015-11-30 | 2017-08-17 | 엘아이지넥스원 주식회사 | Tcp/ udp를 적응적으로 선택하는 전자기기 및 이의 패킷 송수신 방법 |
JP6344370B2 (ja) * | 2015-11-30 | 2018-06-20 | ブラザー工業株式会社 | 通信システム、サーバ装置、クライアント装置、及びプログラム |
WO2019172943A1 (en) | 2018-03-08 | 2019-09-12 | Google Llc | Mitigation of client device latency in rendering of remotely generated automated assistant content |
JP2019191962A (ja) * | 2018-04-25 | 2019-10-31 | 富士通株式会社 | 画面送信プログラム、画面送信方法及び画面送受信システム |
JP6873441B2 (ja) * | 2019-09-13 | 2021-05-19 | 株式会社 ゼネテック | 情報送信システム、情報送信方法、情報送信プログラム、サーバー、及び携帯端末 |
-
2004
- 2004-06-04 JP JP2004167650A patent/JP4222561B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005348262A (ja) | 2005-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4222561B2 (ja) | データ通信方式、電子会議システム、データ通信方法、データ通信プログラム及び記憶媒体 | |
US20190028673A1 (en) | Video messaging | |
JP4467220B2 (ja) | 音声インスタント・メッセージング | |
US8732236B2 (en) | Managing network communications between network nodes and stream transport protocol | |
CN100587681C (zh) | 用于在相互通信的用户之间传递图像的系统和方法 | |
TWI385967B (zh) | 智慧型交換器管理模組系統與方法 | |
KR101596530B1 (ko) | 원격 세션에서의 멀티미디어 동작을 관리하는 시스템 및 방법 | |
US7340531B2 (en) | Apparatus and method for data transfer | |
JP4425577B2 (ja) | データを提示する方法 | |
US8793384B2 (en) | Recovery of disconnected channels over a reliable protocol | |
US20110087915A1 (en) | Hybrid reliable streaming protocol for peer-to-peer multicasting | |
JP2014503141A (ja) | リモートパーティ間の通信のサードパーティ開始 | |
US8068514B2 (en) | Efficient bandwidth utilization when streaming data over multiple network interfaces | |
WO2023000894A1 (zh) | 一种数据传输方法、装置、服务器、存储介质及程序产品 | |
US20110271002A1 (en) | Initializing network streaming over multiple physical interfaces | |
EP1395000B1 (en) | A method of transmitting data streams dependent on the monitored state of the client application buffer | |
US7349664B2 (en) | Communication system and method thereof | |
CN114363351A (zh) | 一种代理连接抑制方法、网络架构及代理服务器 | |
JP2005301913A (ja) | 通信システム及び情報処理端末、並びに通信方法 | |
McKinley et al. | Composable proxy services to support collaboration on the mobile internet | |
JP2007207013A (ja) | 情報処理装置、情報共有プログラム | |
CN113411228B (zh) | 一种网络状况的确定方法及服务器 | |
EP1575236A1 (en) | Connectivity confirmation method for network storage device and host computer | |
JPH11249978A (ja) | データ転送方法および装置 | |
Burleigh et al. | NASA ION (Interplanetary Overlay Network) Developer Course Materials |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060925 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080808 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080819 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081020 |
|
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: 20081111 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081114 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111128 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111128 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121128 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131128 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |