JP3920675B2 - データ通信方法、コンピュータ、プログラム及び記憶媒体 - Google Patents
データ通信方法、コンピュータ、プログラム及び記憶媒体 Download PDFInfo
- Publication number
- JP3920675B2 JP3920675B2 JP2002082056A JP2002082056A JP3920675B2 JP 3920675 B2 JP3920675 B2 JP 3920675B2 JP 2002082056 A JP2002082056 A JP 2002082056A JP 2002082056 A JP2002082056 A JP 2002082056A JP 3920675 B2 JP3920675 B2 JP 3920675B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- computer
- communication
- transmission
- multicast
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1863—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
- H04L12/1868—Measures taken after transmission, e.g. acknowledgments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
- H04L12/1818—Conference organisation arrangements, e.g. handling schedules, setting up parameters needed by nodes to attend a conference, booking network resources, notifying involved parties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
- H04L12/1827—Network arrangements for conference optimisation or adaptation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1042—Peer-to-peer [P2P] networks using topology management mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1048—Departure or maintenance mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1068—Discovery involving direct consultation or announcement among potential requesting and potential source peers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Description
【発明の属する技術分野】
本発明は、データ通信方法、コンピュータ、プログラム及び記憶媒体に関する。
【0002】
【従来の技術】
近年の情報端末の通信機能や通信網の発達により、数多くのネットワーク対応型のアプリケーション(サービス)が提案されている。このようなネットワーク対応型のアプリケーション(サービス)としては、
(1) 電子メールに代表されるような、基本的には1対1のやり取りを行い、非同期でコミュニケーションを行うもの
(2) ホームページ閲覧に見られるような、サーバに対して多数のクライアントが不定期にアクセスして情報を得るもの、
(3) チャットやテレビ会議、共有ホワイトボードのように基本的に多人数で同時にコミュニケーションを行うもの
などが挙げられる。
【0003】
現時点においては、上記(1)及び(2)に示した形式が、ネットワーク対応型のアプリケーション(サービス)の主流である。しかしながら、上記(1)及び(2)に示した形式のネットワーク対応型のアプリケーション(サービス)における情報のやりとりには専用のサーバが不可欠となっている。例えば、電子メールでは、送受信用のサーバ(メールサーバ)が必要であるし、ホームページの閲覧はそもそもサーバ(Webサーバ)を立てて、このサーバ(Webサーバ)にコンテンツをおいて不特定多数のホストからのアクセスを受け付けている。このように専用のサーバを用いるということは、サーバそのもののコストの他に、セットアップや運用のためのコスト、このサーバを管理する管理者が必要になるということであり、近年においては、専用のサーバを用いなくともコミュニケーションをとれる通信形態が望まれている。
【0004】
一方、(3)に示したような多人数(多数のホスト)で同時に情報をやりとりするようなアプリケーション(サービス)は、テキストベースで情報のやり取りを行うチャット以外は必ずしも普及しているとは言い難い。しかしながら、ブロードバンド化がより進むであろう今後は、マルチメディアチャット的なアプリケーション(サービス)や、テレビ会議システムなどのマルチメディアアプリケーション(サービス)が増えてくることが予想され、今後、(3)に示したような多人数(多数のホスト)で同時に情報をやりとりするようなアプリケーション(サービス)も普及してくると思われる。
【0005】
ところで、このようなネットワーク対応型のアプリケーション(サービス)には、1対特定多数の通信を意味するマルチキャストや1対全員の通信を意味するブロードキャスト等の通信方式が不可欠である。マルチキャストおよびブロードキャストは、それぞれの決められたアドレス(マルチキャストアドレスもしくはブロードキャストアドレス)にパケットを1回送信するだけで所望のホストにパケットを送信することができるため、処理の面でもネットワーク帯域の使用率の面においても有益であるからである。
【0006】
例えば、教育システムにおいて生徒たちの情報端末に先生が何らかの情報を送信する場合や、会議システムにおいて会議の出席者の情報端末に発言者がなんらかのデータを送信する場合には、マルチキャスト機能やブロードキャスト機能が利用されることになる。このような場合に、ユニキャストのような1対1の通信機能を用いると、例えば送信したいホストが10あるとすると10回同じデータを送信する処理を行わなければならなくなり、無駄が多く、かつ、ネットワークの帯域も多く使用してしまうことになるからである。したがって、このような用途には、一度データを送信すれば済むマルチキャストやブロードキャストの使用が有用になってくる。
【0007】
ところで、マルチキャスト通信においては、同じデータを特定多数に送信するマルチキャストの性格上、トランスポート層プロトコルにはUDP(User Datagram Protocol)が使われる。UDPはコネクションレス型のプロトコルであり、相手に届かない場合や送信先のマシンがネットワークに接続されていないときなどには、送信先からの応答確認をすることはない。すなわち、UDPによる送信においては、パケットの欠落や到着順序の入れ替えが起こってもそのまま受信されてしまうので、信頼性が低くなってしまうという問題がある。しかし、UDPは、パケットの欠落や到着順序の入れ替えが起こってもそのまま受信されてしまうので、多少信頼性がなくても使用に耐えうる音声やビデオなどのマルチメディアの通信には適しているという面もある。このようにトランスポート層プロトコルにUDPを用いる場合には、応答確認をするためにはアプリケーション層で対応しなければならない。
【0008】
なお、ユニキャストのような1対1の通信に用いられるトランスポート層プロトコルのTCP(Transmission Control Protocol)は、コネクション型のプロトコルであり、パケットの欠落やパケットの相手先への到達順序の入れ替えが生じてもTCPが解決するなど、通信の信頼性は高い。すなわち、TCPは、制御信号やデータのやりとりに適している。しかしながら、前述したように、一度に多数のホストに対してデータを送るとなると、それだけの数のコネクションを確立し、同じデータを何度も送らなければならず、ホストの処理およびネットワーク帯域の面から考えても無駄が多くなってしまう。
【0009】
そこで、近年においては、マルチキャスト通信の信頼性の低さを補うべく、各種の提案がなされている。
【0010】
例えば、特開平11−17713号公報では、中央制御装置を用意し、それにネットワークを介して接続された複数の従属装置がある環境において、従属装置から中央制御装置に送られる受信完了の通知の台数が、ネットワークに接続されている従属装置の台数と一致しているかを確認するマルチキャスト通信処理方式が提案されている。
【0011】
特開平11−161622号公報では、中央サーバを用意し、損失の多いリンクを通じて送信され失われた情報は、サーバからの情報によって回復することができる通信システムが提案されている。
【0012】
特開2000−22687公報では、データをサーバで一括収集し、定期的もしくはイベント発生時にデータを配信することによりマルチキャストの信頼性を向上する広域監視システムが提案されている。
【0013】
【発明が解決しようとする課題】
しかしながら、特開平11−17713号公報で提案されたマルチキャスト通信処理方式、特開平11−161622号公報で提案された通信システム、特開2000−22687号公報で提案された広域監視システムは、基本的にはサーバを用いたものである。
【0014】
複数のホストが接続される会議システムなどを考えた場合、システムが複雑になりがちなクライアント/サーバシステムでなく、サーバを介さないピアツーピア的なネットワーク形態を簡単に形成できる方が良い。これは、会議の開催場所の制限を与えない(サーバに接続できない場所でも会議を開催できる)という面やコストの面(サーバの導入コストや人件費、管理費など)から考えても明白である。
【0015】
本発明の目的は、サーバを介さないピアツーピア的なネットワーク形態の下に、データ送信時のネットワークトラフィックの軽減を図ることができるとともに、マルチキャスト通信の信頼性を向上させることができるデータ通信方法、データ通信システム、データ通信プログラム及び記憶媒体を提供することである。
【0016】
【課題を解決するための手段】
請求項1記載の発明は、相互にネットワーク接続された複数のコンピュータ間でパケ
ットデータを送受信するデータ通信方法であって、表現実体であるデジタル情報ファイルと、前記表現実体の表示状態を特定する表示情報ファイルと、前記表現実体の表示や各種の機能を実行するプログラムを含む動作プログラムファイルと、を単一の文書としてカプセル化したカプセル化文書における前記動作プログラムファイルの前記プログラムを、コンピュータに読み取らせることにより、パケットデータを特定多数のコンピュータに対してマルチキャスト送信するためのマルチキャスト送信手段と、前記パケットデータを受信するためのマルチキャスト受信手段と、特定の前記コンピュータと1対1のユニキャスト接続でデータを送受信するためのデータ送受信手段と、を前記各コンピュータに具備させ、コンピュータ間でのデータ送信に際し、少なくとも1以上の前記コンピュータを指定してユニキャスト接続で通信を確立する通信確立ステップと、前記通信確立ステップにより通信が確立した少なくとも1以上の前記コンピュータに対して、マルチキャスト又はユニキャストのいずれかでデータを通信するデータ通信ステップと、をコンピュータで実現させることを特徴とする。
【0017】
したがって、相互にネットワーク接続された複数のコンピュータ間でのパケットデータの送受信にあたり、まず、ユニキャスト接続により通信が確立され、この通信が確立された少なくとも1以上のコンピュータに対して、マルチキャスト通信とユニキャスト通信とを必要に応じて使い分けてデータ送信が行なわれる。これにより、サーバを介さないピアツーピア的なネットワーク形態の下に、データ送信時のネットワークトラフィックの軽減を図ることが可能になるとともに、マルチキャスト通信の信頼性を向上させることが可能になる。また、デジタル情報ファイルや表示情報ファイルとともに、マルチキャスト送信手段と、マルチキャスト受信手段と、コネクション型データ送受信手段とをコンピュータに実現させるプログラムが単一の文書としてカプセル化されることにより、その取り扱いや管理が極めて容易となる。
【0018】
請求項2記載の発明は、相互にネットワーク接続された複数のコンピュータ間でパケットデータを送受信するデータ通信方法であって、パケットデータを特定多数のコンピュータに対してマルチキャスト送信するためのマルチキャスト送信手段と、前記パケットデータを受信するためのマルチキャスト受信手段と、特定の前記コンピュータと1対1のユニキャスト接続でデータを送受信するためのデータ送受信手段と、を前記各コンピュータに具備させ、コンピュータ間でのデータ送信に際し、少なくとも1以上の前記コンピュータを指定してユニキャスト接続で通信を確立する通信確立ステップは、一のコンピュータの前記マルチキャスト送信手段を用いてハンドシェイク相手を特定するための前記パケットデータである要求パケットを送信する要求信号送信ステップと、送信されてきた前記要求パケットを他のコンピュータが前記マルチキャスト受信手段を用いて受け取る要求信号受信ステップと、前記要求パケットを受け取った前記他のコンピュータが、前記データ送受信手段を用いて前記要求パケットを送信してきた前記一のコンピュータとのコネクションを確定するコネクション確定ステップとからなり、前記通信確立ステップにより通信が確立した少なくとも1以上の前記コンピュータに対して、マルチキャスト又はユニキャストのいずれかでデータを通信するデータ通信ステップと、をコンピュータで実現させることを特徴とする。
【0019】
したがって、相互にネットワーク接続された複数のコンピュータ間でのパケットデータの送受信にあたり、まず、ユニキャスト接続により通信が確立され、この通信が確立された少なくとも1以上のコンピュータに対して、マルチキャスト通信とユニキャスト通信とを必要に応じて使い分けてデータ送信が行なわれる。これにより、サーバを介さないピアツーピア的なネットワーク形態の下に、データ送信時のネットワークトラフィックの軽減を図ることが可能になるとともに、マルチキャスト通信の信頼性を向上させることが可能になる。また、通信確立を要求する要求パケットを特定多数のコンピュータにマルチキャスト通信した後、各コンピュータとのユニキャスト通信によりコネクションが張られる。これにより、特定多数のコンピュータとのコネクションを容易に確立することが可能になる。
【0020】
請求項3記載の発明は、請求項1又は2記載のデータ通信方法において、前記マルチキャスト送信手段及び前記マルチキャスト受信手段のトランスポート層プロトコルはUDP( User Datagram Protocol )で、前記データ送受信手段のトランスポート層プロトコルはTCP( Transmission Control Protocol )/IPであることを特徴とする。
【0021】
したがって、マルチキャスト送信手段、マルチキャスト受信手段及びコネクション型データ送受信手段について、それぞれソフトウェア的に実現することが可能になる。
【0022】
請求項4記載の発明は、請求項2又は3記載のデータ通信方法において、前記要求パケットは、当該要求パケットを送信する前記一のコンピュータに係る属性情報と前記他のコンピュータに対する処理要求を特定する処理要求IDとを含むことを特徴とする。
【0023】
したがって、要求パケットの送信先に対して、要求パケットを送信したコンピュータに係る各種の情報を伝達することが可能になる。
【0024】
請求項5記載の発明は、請求項4記載のデータ通信方法において、前記一のコンピュータに係る属性情報は、少なくとも当該コンピュータのネットワークアドレスを有していることを特徴とする。
【0025】
したがって、要求パケットの送信先に対して、確実に所定の応答を返信することが可能になる。
【0026】
請求項6記載の発明は、請求項4又は5記載のデータ通信方法において、前記要求信号受信ステップは、受け取った前記要求パケットの内容を要求パケット送信先情報として前記要求パケットを受け取った前記コンピュータの記憶部に記憶する要求パケット送信先記憶ステップを含むことを特徴とする。
【0027】
したがって、要求パケットを送信してきたコンピュータに係る各種の情報を記憶することにより、その情報に基づいてデータ送信の有無の確認等の各種の処理を行うことが可能になる。
【0028】
請求項7記載の発明は、請求項2記載のデータ通信方法において、前記コネクション確定ステップは、コネクションが確定した場合に、コネクションが確定した前記他のコンピュータに係る属性情報を通信相手先情報として前記要求パケットを送信した前記一のコンピュータの記憶部に記憶する通信相手先記憶ステップを含むことを特徴とする。
【0029】
したがって、コネクションが確定したコンピュータに係る属性情報を通信相手先情報として記憶することにより、その情報に基づいて受信応答の確認やデータ送信先の指定等の各種の処理を行うことが可能になる。
【0030】
請求項8記載の発明は、請求項4記載のデータ通信方法において、前記他のコンピュータに係る属性情報は、少なくとも当該コンピュータのネットワークアドレスを有していることを特徴とする。
【0031】
したがって、コネクションが確定したコンピュータに対して、確実に所定の要求を送信することが可能になる。
【0032】
請求項9記載の発明は、請求項8記載のデータ通信方法において、前記要求パケットを送信した前記一のコンピュータの記憶部に記憶された前記通信相手先情報を報知する通信確立相手報知ステップを含むことを特徴とする。
【0033】
したがって、マルチキャストによる要求パケット送信により通信を確立できなかったコンピュータを把握することが可能になる。
【0034】
請求項10記載の発明は、請求項9記載のデータ通信方法において、意図した前記コンピュータとのコネクションが確定していない場合、コネクションが確定していない前記コンピュータに対して前記一のコンピュータの前記データ送受信手段を用いて前記要求パケットを送信してコネクションを確定する要求信号再送信ステップを含むことを特徴とする。
【0035】
したがって、マルチキャストによる要求パケット送信で通信が確立できなかった場合に、ネットワークアドレスを指定してユニキャスト通信によって要求パケットを送信することにより、マルチキャストでパケットデータが届かないような環境にあるコンピュータに対して再度通信の確立を試みることが可能になる。
【0036】
請求項11記載の発明は、請求項1又は2記載のデータ通信方法において、前記データ通信ステップは、前記一のコンピュータの前記マルチキャスト送信手段を用い、通信が確立している前記他のコンピュータに対して前記データを送信するデータ送信ステップと、送信されてきた前記データを前記他のコンピュータが前記マルチキャスト受信手段を用いて受け取るデータ受信ステップと、前記一のコンピュータの前記データ送受信手段を用いて前記データが前記他のコンピュータに確実に送信されたか否かを判定するデータ送信判定ステップと、を含むことを特徴とする。
【0037】
したがって、コネクション確立後にマルチキャストによるデータの送受信が行われ、送信したデータが確実に送信されたか否かが判定される。これにより、データ送信時のネットワークトラフィックの軽減を図ることが可能になるとともに、マルチキャスト通信の信頼性を向上させることが可能になる。
【0038】
請求項12記載の発明は、請求項11記載のデータ通信方法において、前記データ送信判定ステップは、前記一のコンピュータの前記データ送受信手段を用い、通信が確立している前記他のコンピュータに対してデータを送信した旨を伝える送信通知パケットを送信する送信通知送信ステップと、送信されてきた前記送信通知パケットを前記他のコンピュータが前記データ送受信手段を用いて受け取る送信通知受信ステップと、送信されてきた前記送信通知パケットに従って前記データが前記他のコンピュータに確実に送信されたか否かをチェックする送信状況チェックステップと、少なくとも前記チェック結果がデータ未送信であった場合には、そのチェック結果を前記他のコンピュータの前記データ送受信手段を用いて前記一のコンピュータに対して送信する結果送信ステップと、送信されてきた前記チェック結果を前記一のコンピュータの前記データ送受信手段を用いて受信する結果受信ステップと、を含むことを特徴とする。
【0039】
したがって、マルチキャストによるデータの送信に対し、コネクション型データ送受信手段でデータを送信した旨を伝える送信通知パケットを送信先に送信してデータが確実に送信されたか否かをチェックさせ、少なくともチェック結果がデータ未送信であった場合にはそのチェック結果を返答させることにより、マルチキャストによるデータが届いているかどうかを確認することが可能になる。
【0040】
請求項13記載の発明は、請求項11記載のデータ通信方法において、前記データ送信判定ステップの判定結果がデータ未送信であった前記コンピュータに対して、前記一のコンピュータの前記データ送受信手段を用い、当該コンピュータに対して前記データを再度送信する第1のデータ再送信ステップを含むことを特徴とする。
【0041】
したがって、マルチキャストによるデータが届いていないコンピュータがあった場合には、当該コンピュータに対してデータをユニキャスト通信により再送信することにより、データ通信の信頼性の向上を図ることが可能になる。
【0042】
請求項14記載の発明は、請求項11記載のデータ通信方法において、前記データ送信判定ステップの判定結果がデータ未送信であった前記コンピュータに対して、前記一のコンピュータの前記マルチキャスト送信手段を用い、通信が確立している前記他のコンピュータに対して前記データを再度送信する第2のデータ再送信ステップを含むことを特徴とする。
【0043】
したがって、マルチキャストによるデータが届いていないコンピュータがあった場合には、データをマルチキャスト通信により通信が確立しているコンピュータに対して再送信することにより、データ通信の信頼性の向上を図ることが可能になる。
【0044】
請求項15記載の発明は、請求項14記載のデータ通信方法において、前記一のコンピュータの前記データ送受信手段を用い、通信が確立している前記他のコンピュータに対してデータを送信した旨を伝える送信通知パケットを送信する再送信通知送信ステップを含むことを特徴とする。
【0045】
したがって、ユニキャスト通信により再度マルチキャストした旨を通知することにより、既に受信済みの場合は、データの受信を拒否するようにすれば、データの2度受けの問題が解消される。
【0046】
請求項16記載の発明は、請求項7記載のデータ通信方法において、前記通信相手先記憶ステップで前記一のコンピュータの記憶部に記憶された前記通信相手先情報には、前記カプセル化文書に含まれる前記文書タイトルを含み、前記通信相手先情報を参照して同一の前記文書タイトルを有する前記他のコンピュータを特定し、その特定された前記他のコンピュータにのみデータを送信する第1の特定相手データ送信ステップを含むことを特徴とする。
【0047】
したがって、各コンピュータが記憶保持する通信相手先情報に基づき、同一の文書タイトルを有するコンピュータにのみデータ送信を行うことが可能になる。
【0048】
請求項17記載の発明は、請求項7記載のデータ通信方法において、前記通信相手先記憶ステップで前記一のコンピュータの記憶部に記憶された前記通信相手先情報を参照して所望の前記他のコンピュータを特定し、その特定された前記他のコンピュータに向けてデータを送信する第2の特定相手データ送信ステップを含むことを特徴とする。
【0049】
したがって、コンピュータの記憶部に記憶された通信相手先情報に基づき、特定のコンピュータを指定してデータを送信することが可能になる。
【0050】
請求項18記載の発明は、請求項17記載のデータ通信方法において、前記第2の特定相手データ送信ステップにおける前記データの送信は、特定された前記他のコンピュータのみに前記データ送受信手段を用いて送ることを特徴とする。
【0051】
したがって、特定多数のコンピュータの中から更に特定のコンピュータを絞り込んでその特定のコンピュータのみにデータを送信することが可能になる。
【0052】
請求項19記載の発明は、請求項17記載のデータ通信方法において、前記第2の特定相手データ送信ステップにおける前記データの送信は、特定された前記他のコンピュータ向けという情報を含めて前記マルチキャスト送信手段を用いて送ることを特徴とする。
【0053】
したがって、マルチキャストにより特定多数のコンピュータにデータを送信した場合であっても、特定多数のコンピュータの中から更に特定のコンピュータを絞り込んでその特定のコンピュータのみにデータを送信することが可能になる。
【0054】
請求項20記載の発明は、請求項11記載のデータ通信方法において、前記他のコンピュータが通信環境が悪いネットワーク経路に位置するか否かを判定するネットワーク環境判定ステップと、このネットワーク環境判定ステップにより通信環境が悪いネットワーク経路に位置すると判定された前記他のコンピュータのコンピュータに対しては、前記一のコンピュータの前記データ送受信手段を用いて前記データを送信する悪環境相手データ送信ステップと、を含むことを特徴とする。
【0055】
したがって、通信環境が悪いネットワーク経路上のコンピュータに対しては、信頼性の高いユニキャスト通信によりデータを送信することが可能になる。
【0056】
請求項21記載の発明は、請求項20記載のデータ通信方法において、前記ネットワーク環境判定ステップにおける通信環境が悪いネットワーク経路に位置するか否かの判定は、前記データ送信判定ステップにおける判定結果に基づくことを特徴とする。
【0057】
したがって、所定のコンピュータが、通信環境が悪いネットワーク経路上にあるか否かの判定を容易に行うことが可能になる。
【0058】
請求項22記載の発明は、請求項1〜21のいずれか一つに記載のデータ通信方法において、送信する前記データを暗号化する暗号化ステップと、受信した暗号化された前記データを復号する復号化ステップと、を含むことを特徴とする。
【0059】
したがって、送受信するデータを暗号化することにより、より機密性の高いデータ通信を行うことが可能になる。
【0060】
請求項23記載の発明は、他のコンピュータとネットワーク接続されるコンピュータにおいて、前記コンピュータは、表現実体であるデジタル情報ファイルと、前記表現実体の表示状態を特定する表示情報ファイルと、前記表現実体の表示や各種の機能を実行するプログラムを含む動作プログラムファイルと、を単一の文書としてカプセル化したカプセル化文書における前記動作プログラムファイルの前記プログラムを実行して、パケットデータを特定多数のコンピュータに対してマルチキャスト送信するためのマルチキャスト送信手段と、前記パケットデータを受信するためのマルチキャスト受信手段と、特定の前記コンピュータと1対1のユニキャスト接続でデータを送受信するためのデータ送受信手段と、を前記コンピュータに具備させ、コンピュータ間でのデータ送信に際し、少なくとも1以上のコンピュータを指定して前記データ送受信手段で通信を確立する通信確立ステップと、前記通信確立ステップにより通信が確立した少なくとも1以上のコンピュータに対して、マルチキャスト送信手段、マルチキャスト受信手段又はデータ送受信手段のいずれかでデータを通信するデータ通信ステップと、を実行することを特徴とする。
【0061】
したがって、相互にネットワーク接続された複数のコンピュータ間でのパケットデータの送受信にあたり、まず、ユニキャスト接続により通信が確立され、この通信が確立された少なくとも1以上のコンピュータに対して、マルチキャスト通信とユニキャスト通信とを必要に応じて使い分けてデータ送信が行なわれる。これにより、サーバを介さないピアツーピア的なネットワーク形態の下に、データ送信時のネットワークトラフィックの軽減を図ることが可能になるとともに、マルチキャスト通信の信頼性を向上させることが可能になる。また、デジタル情報ファイルや表示情報ファイルとともに、マルチキャスト送信手段と、マルチキャスト受信手段と、コネクション型データ送受信手段とをコンピュータに実現させるプログラムが単一の文書としてカプセル化されることにより、その取り扱いや管理が極めて容易となる。
【0062】
請求項24記載の発明のデータ通信プログラムは、他のコンピュータと相互にネットワーク接続されるコンピュータに実行される、表現実体であるデジタル情報ファイルと、前記表現実体の表示状態を特定する表示情報ファイルと、前記表現実体の表示や各種の機能を実行するプログラムを含む動作プログラムファイルと、を単一の文書としてカプセル化したカプセル化文書における前記動作プログラムファイル内のプログラムであって、パケットデータを特定多数のコンピュータに対してマルチキャスト送信するためのマルチキャスト送信機能と、前記パケットデータを受信するためのマルチキャスト受信機能と、特定の前記コンピュータと1対1のユニキャスト接続でデータを送受信するためのデータ送受信機能と、コンピュータ間でのデータ送信に際し、少なくとも1以上の前記コンピュータを指定してユニキャスト接続で通信を確立させる通信確立機能と、前記通信確立機能により通信が確立した少なくとも1以上の前記コンピュータに対して、マルチキャスト又はユニキャストのいずれかでデータを通信するデータ通信機能と、を実行させることを特徴とする。
【0063】
したがって、相互にネットワーク接続された複数のコンピュータ間でのパケットデータの送受信にあたり、まず、ユニキャスト接続により通信が確立され、この通信が確立された少なくとも1以上のコンピュータに対して、マルチキャスト通信とユニキャスト通信とを必要に応じて使い分けてデータ送信が行なわれる。これにより、サーバを介さないピアツーピア的なネットワーク形態の下に、データ送信時のネットワークトラフィックの軽減を図ることが可能になるとともに、マルチキャスト通信の信頼性を向上させることが可能になる。また、デジタル情報ファイルや表示情報ファイルとともに、マルチキャスト送信手段と、マルチキャスト受信手段と、コネクション型データ送受信手段とをコンピュータに実現させるプログラムが単一の文書としてカプセル化されることにより、その取り扱いや管理が極めて容易となる。
【0064】
請求項25記載の発明の記憶媒体は、請求項24記載のプログラムを格納したコンピュータに読み取り可能な記憶媒体であることを特徴とする。
【0065】
したがって、相互にネットワーク接続された複数のコンピュータ間でのパケットデータの送受信にあたり、まず、ユニキャスト接続により通信が確立され、この通信が確立された少なくとも1以上のコンピュータに対して、マルチキャスト通信とユニキャスト通信とを必要に応じて使い分けてデータ送信が行なわれる。これにより、サーバを介さないピアツーピア的なネットワーク形態の下に、データ送信時のネットワークトラフィックの軽減を図ることが可能になるとともに、マルチキャスト通信の信頼性を向上させることが可能になる。また、デジタル情報ファイルや表示情報ファイルとともに、マルチキャスト送信手段と、マルチキャスト受信手段と、コネクション型データ送受信手段とをコンピュータに実現させるプログラムが単一の文書としてカプセル化されることにより、その取り扱いや管理が極めて容易となる。
【0066】
【発明の実施の形態】
[第一の実施の形態]
本発明の第一の実施の形態を、図1ないし図35に基づいて説明する。
【0067】
本実施の形態においては、データ通信方法の一例として、デジタル情報ファイル、表示情報ファイル、動作プログラムファイル等をカプセル化手段によって単一の文書としてカプセル化したカプセル化文書の動作プログラムファイルに含まれるデータ通信機能を適用したものである。
【0068】
[カプセル化文書の説明]
図1は、カプセル化された文書であるカプセル化文書のデータ構造を示す模式図である。
【0069】
カプセル化文書101は、図1に示すように、文書全体の構造、配置等の表示状態を表す表示情報ファイルとしての文書配置情報102と、文書内のテキスト内容を表すデジタル情報ファイルとしてのテキスト情報103と、その他の静止画像や動画画像を表すデジタル情報ファイルとしてのメディア情報104と、文書内容を表示したりユーザ操作を検出したりする複数の動作プログラムファイルとしてのプログラム105とから構築されている。これらの情報は、それぞれ一般的なパーソナル・コンピュータ(以下、単にコンピュータと呼ぶ。)のオペレーティング・システム(Operating System、以下、適宜OSと呼ぶ。)が管理できる個別のファイル単位の構造となっている。
【0070】
このようなカプセル化文書101は、フレキシブルディスク、ハードディスク、磁気テープ等のような磁気的な記憶媒体、MOのような光磁気的な記憶媒体、CD、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−R、DVD−RAM、DVD−RW、DVD+RW等のような光学的な記憶媒体、半導体メモリ等、各種の記憶媒体に格納することができ、記憶媒体の種類によっては容易に持ち運び可能となる。また、カプセル化文書101は、LAN(Local Area Network)やインターネット等の各種の通信回線を介して伝送可能である。
【0071】
図2は書庫ファイルのデータ構造の一例を示す模式図、図3は書庫ファイルの別のデータ構造の一例を示す模式図である。
【0072】
カプセル化文書101を構成する各ファイル102、103、104、105は、図2及び図3に例示するように、書庫ファイル201という一つのファイルに格納されている。これにより、文書配置情報102(表示情報ファイル)と、テキスト情報103(デジタル情報ファイル)と、メディア情報104(デジタル情報ファイル)と、プログラム105(動作プログラムファイル)とを単一の文書としてカプセル化するカプセル化手段が構成されている。このような書庫ファイル201のファイル形式としては、一般的に、ZIP形式やLHA形式等があり、これらの技術を利用しても良い。
【0073】
ここで、書庫ファイル201は、複数のファイル102、103、104、105を一つのファイル(書庫ファイル201)として格納するファイル構造を有している。このような書庫ファイル201は、格納機能及び解凍機能を有するアーカイバプログラムを用いることにより、ユーザの求めに応じて複数のファイル102、103、104、105を一つのファイル(書庫ファイル201)として扱うことができる。
【0074】
図2に例示する書庫ファイル201では、複数のファイル102、103、104、105を格納した書庫ファイル201に、各ファイル102、103、104、105が書庫ファイル201中のどの位置にあるかを示すインデックス情報が付加されている。これにより、ファイル102、103、104、105の位置検索が可能となる。また、別の実施の形態として、図3に例示する書庫ファイル201のように、ファイル102、103、104、105毎にヘッダ情報を付加し、その位置を指示することでファイル102、103、104、105の位置検索を可能とする手法を採用しても良い。
【0075】
このように、カプセル化文書101のファイル構造は、カプセル化文書101を構成する図1に示すような複数のファイル102、103、104、105をインデックス(図2参照)又はヘッダ(図3参照)で管理する書庫ファイル形式である。こうして、カプセル化文書101は、複数のファイル102、103、104、105を一つの書庫ファイル201としてカプセル化しているため、見かけ上、ユーザは複数のファイル102、103、104、105を一つの文書として管理し保管することができる。
【0076】
図4はカプセル化文書101に格納されているプログラムのデータ構造を示す模式図、図5はプログラムに含まれている拡張プログラムに関する情報を規定する表示情報ファイルのデータ構造を示す模式図である。
【0077】
カプセル化文書101に格納されている複数の動作プログラムファイルであるプログラム105は、図4に示すように、基本プログラム111と拡張プログラム112とから構成されている。
【0078】
基本プログラム111は、カプセル化文書101の起動時に呼び出すことができるプログラムであり、全てのカプセル化文書101に共通して一つだけ存在するプログラムである。この基本プログラム111は、図示しない起動プログラムを含んでおり、コンピュータでのカプセル化文書101のアクセスに応じて、コンピュータに解釈、実行され、起動される。
【0079】
拡張プログラム112は、カプセル化文書101に含まれている内容に応じて付加されるプログラムであり、例えば、図5に示すように、表示メディアの種類に応じて用意される。一例として、カプセル化文書101に含まれているデジタル情報ファイルがテキスト情報103のみである場合には、基本プログラム111に加えて、拡張プログラム112のうちの"Text Panel"プログラム112aがカプセル化文書101に格納されている。また、静止画像や動画画像等を表すデジタル情報ファイルとしてのメディア情報104がカプセル化文書101に含まれている場合には、基本プログラム111に加えて、拡張プログラム112のうちの"Image Panel"プログラム112b、"Movei Panel"プログラム112c、"3D Panel"プログラム112dがカプセル化文書101に格納されている。この基本プログラム111は、図示しない起動プログラムを含んでおり、コンピュータでのカプセル化文書101のアクセス、あるいは必要に応じて、コンピュータに解釈、実行され、起動される。
【0080】
ここで、図5は、拡張プログラム参照ファイル113の一例を示しており、この拡張プログラム参照ファイル113は、拡張プログラム112とこれに対応するタグ114及び動作115を規定している。このような拡張プログラム参照ファイル113は、プログラム105としてカプセル化文書101に格納されている。
【0081】
次に、文書配置情報102について説明する。文書配置情報102は、カプセル化文書101の各メディアの配置、表示サイズや各メディアのファイル等を記述するファイルである。本実施の形態では、これらの情報の記述を汎用的なXML形式により記述している。
【0082】
図6は、XMLによって記述されたカプセル化文書101の一例を示す模式図である。XMLは、その一例を図6に示すように、各要素をタグというもので記述するファイル形式であり、タグという要素の集まりによって文書を記述する。この場合、タグの中にタグを記述するという入れ子構造をとることも可能であり、各タグにはタグの属性を表わすアトリビュートと呼ばれるもので属性を付加することもできる。
【0083】
図7は、図6に示すようにXMLで記述されたカプセル化文書101の表示例を示す模式図である。図7に表示例を示すようなカプセル化文書101は、図6に例示するXMLの記述に基づいて表示される。まず、文書全体を表す<Document>というタグが記述され、この中に文書の構造が記述されている。そして、最初に表題を記述するために、<TEXT>というタグを使用する場合の表示内容は、アトリビュートが省略されている場合にタグ内の内容を表示する。次のTEXTタグの例は、テキスト情報を"本文.TXT"というファイルから読み込む例である。次のIMAGEタグは、"画像.JPG"という静止画像をX、Y座標を起点にWIDTH、HIGHTで指示されている大きさで表示するという配置情報である。
【0084】
このように、文書配置情報102は、XML形式によりファイルの指示や配置の指示を行う。
【0085】
また、文書配置情報102は、XML形式を例に挙げて説明したが、その他のHTML形式等の記述言語を使用しても良いし、独自の記述形式を使用しても良い。
【0086】
そして、残りの静止画像、動画画像、3D画像、音声情報等を表すメディア情報104は、汎用のファイルフォーマットでも良いし、特殊な仕様の場合には独自のフォーマットを使用しても良い。
【0087】
これまでに述べてきたように、カプセル化文書101のファイル構造は、文書全体の構造を表す文書配置情報102と、これに対応して表示されるテキスト情報ファイルや画像ファイル等の複数のメディアファイル(テキスト情報103及びメディア情報104)と、複数のプログラム105群から構成されている。
【0088】
[カプセル化文書101の閲覧等]
ここで、カプセル化文書101の基本的な動作である文書起動から文書閲覧までの動作について説明する。
【0089】
図8に、コンピュータ1のハードウェアの構成図を示す。コンピュータ1は、情報処理を行うCPU(Central Processing Unit)2と、BIOS(Basic Input Output System)等を格納するROM(Read Only Memory)3と、情報を処理中に一時的に格納するRAM(Random Access Memory)4等の記憶部と、処理結果等を保存するHDD(Hard Disk Drive)5等の記憶部と、情報を外部に保管又は配布し若しくは情報(カプセル化文書101)を外部から入手するための記憶媒体であるリムーバブルメディア6のドライブ6aと、外部の他のコンピュータ1と通信するためのネットワーク7に接続するためのネットワークインタフェース8と、処理経過や処理結果等をユーザに表示するディスプレイ9と、操作者がコンピュータ1に命令や情報等を入力するためのキーボード10やマウス11等の入力装置とから構成され、これらの間のデータ通信をバスコントローラ12が調停して動作している。
【0090】
なお、リムーバブルメディア6としては、フレキシブルディスク、ハードディスク、磁気テープ等のような磁気的な記憶媒体、MOのような光磁気的な記憶媒体、CD、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−R、DVD−RAM、DVD−RW、DVD+RW等のような光学的な記憶媒体、半導体メモリ等、各種の記憶媒体が適用できる。
【0091】
データ送信は、コンピュータ1のネットワークインタフェース8へとデータを送ることにより、ネットワークインタフェース8がネットワーク7へと信号を出力する。また、ネットワークインタフェース8が受け取った信号については、ネットワークインタフェース8において必要かどうかの判断がなされ、必要なデータであれば取り込み、不必要であれば破棄する、というような処理が行われる。すなわち、あらゆるデータの送受信は、すべてネットワークインタフェース8を経由して行われることになる。
【0092】
一般的に、このようなコンピュータ1ではユーザが電源を投入すると、CPU2はROM3内のBIOSに含まれるローダーというプログラムを起動させ、HDD5からオペレーティング・システムという当該コンピュータ1のハードウェアとソフトウェアとを管理するプログラムをRAM4に読み込む。オペレーティング・システムは起動すると、ユーザの操作に応じてアプリケーション・プログラムの起動、情報の読み込み、保存等をサポートする。代表的なオペレーティング・システムはWindows(Microsoft Corporationの登録商標)、UNIX(X/Open, Inc.の登録商標)等である。これらのオペレーティング・システム上で走るプログラムが、通常アプリケーション・プログラムと呼ばれている。
【0093】
図9は、コンピュータ1を用いたカプセル化文書101の文書閲覧処理の流れを示すフローチャートである。本実施の形態では、このようなコンピュータ1とカプセル化文書101とによって情報処理装置を構成している。
【0094】
カプセル化文書101は、テキスト情報103及びメディア情報104というその実体データに対応するアイコンをコンピュータ1のディスプレイ9上に表示するための図示しないアイコンに関するアイコンファイルを含んでいる。そこで、このアイコンファイルに従ったアイコンがコンピュータ1のディスプレイ9上に表示されることから、ユーザがマウス11等でカプセル化文書101の実体データに対応するアイコンを選択起動(ダブルクリック)すると、カプセル化文書101内に書庫ファイル201として書庫形式で格納されている基本プログラム111が起動される(ステップS201)。基本プログラム111は、その起動後、文書を表示させるための表示ウィンドウを作成する(ステップS202)。そして、基本プログラム111は、XML等で記述された書庫ファイル201内の文書配置情報102を読み込む(ステップS203)。
【0095】
基本プログラム111は、文書配置情報102の読み込み後、タグ構造を解析して(ステップS204)、図5に例示するようなタグ名に対応する拡張プログラム112を別スレッドで起動し、文書配置情報102に記述してあるアトリビュートを各拡張プログラム112に渡す(ステップS205)。基本プログラム111は、このような処理をカプセル化文書101に格納された文書配置情報102における全てのタグについて処理終了まで行い(ステップS206)、これによって、文書配置情報102に記述された複数の拡張プログラム112が別スレッドで起動する(ステップS205)。
【0096】
各拡張プログラム112は、基本プログラム111より受け取ったアトリビュートを解析し(ステップS207)、アトリビュートの内容に応じて必要なテキスト情報103及びメディア情報104をカプセル化文書101内の書庫ファイル201から読み込む(ステップS208)。そして、各拡張プログラム112は、基本プログラム111が作成するウィンドウ内におけるアトリビュートに応じた大きさの領域にテキスト情報103及びメディア情報104を表示する(ステップS209)。このような処理を行うことで、カプセル化文書101は、複数のテキスト情報103及びメディア情報104を基本プログラム111が確保したウィンドウに表示することができる。
【0097】
また、拡張プログラム112は、そのような表示後、各種のイベント発生を認識した場合は(ステップS210のY)、認識したイベントに応じた処理を実行する(ステップS211)。このように、カプセル化文書101は、従来の文書とは根本的に異なる構造で文書を表示することができる。
【0098】
[カプセル化文書101に含まれているプログラム105の記述手法]
次に、カプセル化文書101に含まれているプログラム105の記述について説明する。
【0099】
プログラム105を記述する場合、複数の手法が実施可能である。
【0100】
第一の手法は、現在最もポピュラーな言語であるCプログラム言語でプログラム105を作成し、C言語コンパイラーによりCPU2が直接実行できる形式のネイティブコードを使用する例である。この場合、基本プログラム111を実行形式(WindowsではEXE形式)で作成し、各拡張プログラム112をライブラリ形式(WindowsではDLL形式)で作成し、書庫構造で格納された文書配置情報102、デジタル情報ファイル(テキスト情報103及びメディア情報104)及びこれらのプログラム105をインデックスまたはヘッダによって検索し、検索されたプログラム105を基本プログラム111に指定すれば良い。しかしながら、この手法は、CPU2のコードがCPU2の種類に限定されてしまうため、余り良い方法とはいえない。
【0101】
第二の手法は、Java(Sun Microsystems, Inc.の登録商標)言語等のインタープリタ言語を使用する方法である。これは、実行コードを使わず抽象的な中間コードでプログラムを構成し、実行時にこの中間コードをCPU2に理解可能なネイティブコードに変換し、これをCPU2が実行するというものである。この手法を用いることで、CPU2の種類にとらわれないマルチプラットフォームでのカプセル化文書101の利用が可能となる。
【0102】
このように、本実施の形態のカプセル化文書101では、まず基本プログラム111を起動させ、起動プログラムは文書配置情報102から諸情報を読み込み、それに適合する拡張プログラム112を動作させる、というものである。
【0103】
また、拡張プログラム112は、前述したように、XML等で記述された文書配置情報102のタグの種類に対応したプログラムを用意しておき、その拡張プログラム112を起動しても良いし、タグの属性情報が読み込まれる各種のデジタル情報ファイル(テキスト情報103、メディア情報104)の種類に応じて拡張プログラム112を起動しても良い。例えば、図10に示すように、動画情報を表示再生する場合の動画の代表的なフォーマットは複数あるため、その複数の動画を全て表示するための一つの拡張プログラム112を作成すると大きなプログラムになってしまう。そこで、図10に示すように、ファイルフォーマットに合わせて複数の拡張プログラム112を用意し、カプセル化文書101内における特定の種類のファイルフォーマットに合う拡張プログラム112をカプセル化すれば良い。
【0104】
[拡張プログラム112]
次いで、拡張プログラム112の具体的な例を説明する。
【0105】
まず、カプセル化文書101に、複数個のデジタル情報ファイル(テキスト情報103、メディア情報104)が含まれていることを前提とする拡張プログラム112の機能を説明する。
【0106】
拡張プログラム112は、ディスプレイ9に図示しないファイル特定用パネルを表示する。このファイル特定用パネルというのは、カプセル化文書101に含まれている複数個のデジタル情報ファイル(テキスト情報103、メディア情報104)を選択指示可能に列挙するパネルである。そこで、例えばマウス11によるクリック等の手法で任意のデジタル情報ファイル(テキスト情報103、メディア情報104)が選択指示されると、拡張プログラム112は、図9に示すフローチャートに示すように、イベントの検出を判定し(ステップS210のY)、対応するイベント動作を実行する(ステップS211)。
【0107】
ここでのイベント動作として、拡張プログラム112は、選択指示されたデジタル情報ファイル(テキスト情報103、メディア情報104)をディスプレイ9に表示する動作を実行する。
【0108】
次に、カプセル化文書101に、メディア情報104として、動画画像ファイルが含まれていることを前提とする拡張プログラム112の機能を説明する。
【0109】
図11に示すように、拡張プログラム112は、ディスプレイ9に表示される文書中に動画画像の1フレームによって規定される静止画像141を表示する。そして、ディスプレイ9の文書中に含まれる静止画像141の表示領域がマウス11によるクリック等によって選択指示されると、拡張プログラム112は、図9に示すフローチャートに示すように、イベントの検出を判定し(ステップS210のY)、対応するイベント動作を実行する(ステップS211)。
【0110】
ここでのイベント動作として、拡張プログラム112は、静止画像141を拡大、縮小又はそのまま表示する画像142を含むポップアップフレーム143を表示し、このポップアップフレーム143に再生ボタン144、停止ボタン145及びポーズボタン146からなる操作ボタン147を出現させる。そして、マウス11によるクリック等の手法で操作ボタン147に含まれるいずれかのボタン144、145、146が選択指示された場合、拡張プログラム112は、図9に示すフローチャートに示すように、イベントの検出を判定し(ステップS210のY)、対応するイベント動作を実行する(ステップS211)。
【0111】
ここでのイベント動作として、拡張プログラム112は、選択指示されたのが再生ボタン144であれば静止画像として表示されている画像142を本来の動画画像として再生し、選択指示されたのが停止ボタン145であれば動画画像の再生を停止し、選択指示されたのがポーズボタン146であれば動画画像の再生をその時点で静止画画像として表示する。
【0112】
更に、カプセル化文書101に、メディア情報104として、音声情報ファイルが含まれていることを前提とする拡張プログラム112の機能を説明する。
【0113】
図12に示すように、拡張プログラム112は、ディスプレイ9に表示される文書中に機能パネル及び再生パネルとしての音声再生ボタン151を表示する。そして、ディスプレイ310の文書中に含まれる音声再生ボタン151の表示領域がマウス11によるクリック等によって選択指示されると、拡張プログラム112は、図9に示すフローチャートに示すように、イベントの検出を判定し(ステップS210のY)、対応するイベント動作を実行する(ステップS211)。
【0114】
ここでのイベント動作として、拡張プログラム112は、後述する音声読み上げ情報表示領域152を含むポップアップフレーム153を表示し、このポップアップフレーム153に再生ボタン154、停止ボタン155及びポーズボタン156からなる操作ボタン157を出現させる。そして、マウス11クリック等の手法で操作ボタン157に含まれるいずれかのボタン154、155、156が選択指示された場合、拡張プログラム112は、図9に示すフローチャートに示すように、イベントの検出を判定し(ステップS210のY)、対応するイベント動作を実行する(ステップS211)。
【0115】
ここでのイベント動作として、拡張プログラム112は、選択指示されたのが再生ボタン154であればカプセル化文書101に含まれている音声情報ファイル内の音声を再生し、選択指示されたのが停止ボタン145であれば再生中の音声情報ファイル内の音声再生を停止し、選択指示されたのがポーズボタン146であれば再生中の音声情報ファイル内の音声再生をその時点で一時停止する。
【0116】
拡張プログラム112は、更に別の機能として、再生ボタン154が選択指示されて音声情報ファイル内の音声が再生される場合、再生される音声をテキスト情報化した可視情報を音声読み上げ情報表示領域152に表示する機能をコンピュータ1に実行させる。このような動作は、文書を閲覧する場合に文書閲覧装置(通常はコンピュータ1)の音声再生用のスピーカがOFFになっている場合や、難聴者が文書を閲覧する場合に有効である。また、このような読み上げ機能は、コンピュータ1のスピーカ等の設定や障害者補助機能の設定等に基づいて、自動的にポップアップ動作させても良い。
【0117】
ここで、音声情報ファイルは、音声をサンプリングしたような音声データとしてのデータ構造を有するものであっても、テキストデータであっても良い。テキストデータである場合、音声情報ファイルを再生するに際して、例えば音声合成LSI等を用い、そのテキストデータを音声の特徴量で規定した音声データに変換するというような手法で再生可能である。また、音声情報ファイル内の音声の再生に際して実行される音声のテキスト情報化は、音声情報ファイルがテキストデータによって構成されている場合にはそのテキストデータをそのまま利用することができる。これに対して、音声情報ファイルが音声データによって構成されている場合には、音声データを解析してテキスト情報化する処理が必要となる。
【0118】
以上幾つかの具体例を挙げたように、表示又は再生させたい各種のデジタル情報の特性に応じて多くの種類の拡張プログラム112をカプセル化文書101に用意することが考えられる。そこで、これらの拡張プログラム112をマルチメディア文書の部品として用意しておくことで、柔軟に多種多様なメディアに対応する拡張プログラム112を実現することができる。そして、この場合、カプセル化文書101内には必要な拡張プログラム112のみを格納すれば良いので、カプセル化文書101の取り扱いは極めて軽快なものとなる。
【0119】
図13は、カプセル化文書101に含ませる拡張プログラム112の構造を示している。本実施の形態のカプセル化文書101は、文書配置情報102を基本プログラム111が読み取り、文書配置情報102が参照しているデジタル情報ファイル(テキスト情報103、メディア情報104)に対応する拡張プログラム112を起動し、起動した拡張プログラム112はデジタル情報ファイル(テキスト情報103、メディア情報104)を表示再生する、というものである。また、各拡張プログラム112は、それぞれユーザ操作を検出し、ユーザ操作があったときは、対応する動作を行う。この場合、デジタル情報ファイル(テキスト情報103、メディア情報104)を参照しない拡張プログラム112の場合には、ただ単にユーザ操作を受け取ってそのユーザ操作に応じた動作を行う。
【0120】
ユーザ操作には、マウス11のクリックやキーボード10からの入力等が考えられる。マウス11のクリックの場合は、マウス11のクリック位置がそれぞれの拡張プログラム112の表示占有範囲内かどうかを判断し、自分の表示範囲でクリックされた場合に対応する動作を行うようにすれば良い。キーボード10からの入力の場合は、キーボード10によって移動可能な図示しないカーソル位置がそれぞれの拡張プログラム112の表示占有範囲内かどうかを判断し、自分の表示範囲で選択指示された場合に対応する動作を行うようにすれば良い。例えば、図14に示すように、3つのデジタル情報(PRG1、PRG2、PRG3)を表示している文書の場合、一例として、図中の×印の部分でユーザがマウス11をクリックした場合、PRG2の拡張プログラム112がマウス11のクリックを検出し、対応する動作を実行する。
【0121】
このように、本実施の形態におけるカプセル化文書101の文書形式は、各メディアの種類や表示情報ファイルのタグの種類に関連した拡張プログラム112群からなり、最小である構成としては、基本プログラム111と文書配置情報102からなっている。そして、カプセル化文書101は、ユーザがカプセル化文書101内に格納したい情報に応じてデジタル情報ファイル(テキスト情報103、メディア情報104)を準備し、その情報を再生、表示できるような拡張プログラム112を追加することで成立している。そして、本実施の形態におけるカプセル化文書101は、そのような各種ファイルを、単一のファイルとしてアーカイブ形式を利用して格納している。
【0122】
[拡張プログラム112を利用した通信機能]
次いで、拡張プログラム112を利用した通信機能について説明する。
【0123】
この通信機能というのは、ネットワーク7を介して接続されている二台以上のコンピュータ1において起動しているカプセル化文書101の間で通信を実行させる機能である。
【0124】
ここでは、カプセル化文書101の通信について述べるが、通信機能を実現するには、必ずしもカプセル化文書101であることが不可欠というわけではない。もっとも、拡張プログラム112での機能追加という観点からは、カプセル化文書において実現することがより有用である。
【0125】
本実施の形態では、先に説明したカプセル化文書101に通信機能を加える。その場合、通信機能を指定するXMLのタグは、一例として、<com/>とする。例えば基本プログラム111は、このタグを読んだときに、通信機能を有する拡張プログラム112を起動し、拡張プログラム112は、ディスプレイ9に表示されるカプセル化文書101の表示中に図示しない通信ボタンを表示する。
【0126】
図15は、カプセル化文書101が発揮する通信機能による通信処理の流れを示すフローチャートである。通信機能に係る拡張プログラム112は、図15に示すように、通信相手を確立する通信確立処理(ステップS1)と、通信が確立した後、通信が確立したコンピュータ1間でデータを通信するデータ通信処理(ステップS2)と、データの通信が終了した後、各コンピュータ1間の通信を切断する通信切断処理(ステップS3)と、を実行する。
【0127】
ところで、本実施の形態においては、図16に示すように、コンピュータ1は、マルチキャスト送信手段20と、マルチキャスト受信手段21と、コネクション型送受信手段22とを具備している。
【0128】
マルチキャスト送信手段20は、1対特定多数の通信を意味するマルチキャスト送信を行うものであって、あらかじめ決められたマルチキャストアドレスに対してマルチキャストパケットの送信を行うものである。また、マルチキャスト受信手段21は、あらかじめ決められたマルチキャストグループに所属し、マルチキャストパケットが送られてきた場合にはそのマルチキャストパケットをチェックし、グループ宛てのマルチキャストパケットであればコンピュータ1で起動しているアプリケーション・プログラムにデータを渡すものである。マルチキャスト送信手段20及びマルチキャスト受信手段21においては、トランスポート層プロトコルにUDP(User Datagram Protocol)が使われる。
【0129】
一方、コネクション型送受信手段22は、1対1の通信を意味するユニキャスト通信を行うものであって、他のコンピュータ1と1対1のコネクションを張り、データの送受信を行うものである。コネクション型送受信手段22においては、トランスポート層プロトコルにTCP(Transmission Control Protocol)が使われる。このようなコネクション型送受信手段22によるコネクションの確立は、TCP/IPでの通信を表す。
【0130】
上述したマルチキャスト送信手段20と、マルチキャスト受信手段21と、コネクション型送受信手段22とは、それぞれソフトウェア的に実現することができる。
【0131】
例えば、Javaにおいては、TCP/IPに対応して、データの送受信を行うためのAPI(Applications Programming Interface)が用意されている。具体的には、Javaには、受信側のソケットとしてリクエストを受け付けるためのSeverSocketというAPIと、コネクションを張るためのSocketというAPIとが用意されている。SeverSocketは、ネットワークインタフェース8を介して送信されたリクエストに対してaccept()メソッドによりコネクションのリクエストを受け入れる。これにより、Socketで双方のネットワークインタフェース8を介してコネクションが張られ、データを受け付けることが可能になる。なお、Socketが開かない場合には、データの送信が行われない(Socket errorを返す)。すなわち、Javaを用いた場合、コネクション型送受信手段22は、ServerSocketおよびSocketのgetOutputStream()、getInputStream()メソッドを使用することにより容易に実現することができる。
【0132】
また、Javaには、マルチキャストで使用されるUDPに対応して、DatagramSocketもしくはMulticastSocket(MulticastSocketはDatagramSocketを継承したもの)というAPIが用意されている。これらのDatagramSocket、MulticastSocketにはsend()メソッドがあり、このメソッドを使うと、受信側の状態がどのような状態であってもデータの送信がネットワークインタフェース8を介して行われる。すなわち、Javaを用いた場合、マルチキャスト送信手段20は、MulticastSocketのsend()メソッドを使用することにより容易に実現することができ、マルチキャスト受信手段21は、MulticastSocket(DatagramSocket)のreceive()メソッドを使用することにより容易に実現することができる。
【0133】
すなわち、このようなマルチキャスト送信手段20と、マルチキャスト受信手段21と、コネクション型送受信手段22とを実現するプログラムも、拡張プログラム112に含まれている。
【0134】
[通信確立処理(ステップS1)]
1対1のコンピュータ1間でのカプセル化文書101間における通信確立処理について図17を参照しつつ説明する。ここでは、便宜上、二つの別のコンピュータ1であるホストAで起動している文書AとホストBで起動している文書Bという、二つのカプセル化文書101間での通信の確立について説明する。
【0135】
ホストAで起動している文書Aでは、通信ボタンをクリックしたことを拡張プログラム112が受け取ると、パケット送信命令が出され(命令処理)、マルチキャスト送信手段20を用いて要求パケットの送信を行う(図17中、(1))。
【0136】
ホストBでは、マルチキャスト受信手段21がその要求パケットを受け取ると、その要求パケットの内容は起動している文書Bに渡されて解析される(データ処理)。ホストBの文書Bは、その要求パケットの情報をRAM4もしくはHDD5に記憶保持するとともに、解析の結果として必要であると判断した場合には、ホストAに対してコネクション型送受信手段22を用いてホストAとコネクションを張る旨の命令を出す(命令処理)。ホストBのコネクション型送受信手段22は、命令に従ってホストAとコネクションを確立し、受信応答パケットをホストAに対して送信する(図17中、(2))。
【0137】
ホストAは、この受信応答パケットをコネクション型送受信手段22において受信すると、その受信応答パケットの内容は文書Aに渡されて解析される(データ処理)。また、ホストAが、その受信応答パケットの内容をRAM4もしくはHDD5に記憶保持することでそれぞれの情報が通信相手ホストに渡されたことになり、ホストAとホストBとの通信が確立されることになる。
【0138】
図18に、要求パケットおよび受信応答パケットの内容を例示的に示す。例えば、要求パケットおよび受信応答パケットは、「処理要求ID」aと、「ネットワークアドレス(IPアドレス)」bと、「ホスト名」c、「タイトル」d、「送信時刻」e、「シーケンシャルナンバー」f、「ユーザ名」gにより構成されている。「処理要求ID」aは、例えば要求パケットであれば、「受信応答パケット送信を要求する」というあらかじめ決められたIDである。マルチキャスト受信手段21もしくはコネクション型送受信手段22は、この「処理要求ID」aを読み込み、その「処理要求ID」aのIDに相当する処理命令を各文書A,Bに対して出力する。
【0139】
また、「ネットワークアドレス」b及び「ホスト名」cは、パケット送信元(例えば、図17においてはホストA)のネットワークアドレスおよびホスト名である。「タイトル」dは、各文書A,Bで決められたファイル名もしくは文書であれば文書の題名である。「送信時刻」eは、そのパケットが送信された時刻である。「シーケンシャルナンバー」fは、マルチキャストパケットで送信される際に付与されるナンバーである。例えば、2回目のマルチキャストパケット送信であれば"2"がセットされる。
【0140】
以上、1対1のコンピュータ1間の通信確立処理について説明したが、実際には三台以上のコンピュータ1間でコネクションが張られることになる。例えば、四台のコンピュータ1を仮にホストA,ホストB,ホストC,ホストDとして図19を参照しつつ説明する。
【0141】
ホストAとその他のホストB,ホストC,ホストDとが通信を確立する場合、まず、ホストAのマルチキャスト送信手段20から要求パケットがホストB,ホストC,ホストDに対して送信される。
【0142】
ホストB,ホストC,ホストDのマルチキャスト受信手段21がその要求パケットを受け取ると、ホストB,ホストC,ホストDはその要求パケットの情報をそれぞれ文書B,C,Dに渡し、RAM4もしくはHDD5に記憶保持する。さらに、ホストB,ホストC,ホストDは、それぞれコネクション型送受信手段22においてホストAのコネクション型送受信手段22とコネクションを図る。それぞれコネクションが確立されたところで、ホストB,ホストC,ホストDは、それぞれ受信応答パケットを送信する。
【0143】
この受信応答パケットをコネクション型送受信手段22において受信したホストAは、その受信応答パケットの内容を文書Aに渡し、RAM4もしくはHDD5に記憶保持する。ここで、図20はホストAのRAM4もしくはHDD5に記憶保持されている情報を示す模式図である。図20に示すように、ホストAのRAM4もしくはHDD5には、この段階でホストB,ホストC,ホストDの情報が記憶保持されている。なお、特に図示しないが、ホストB,ホストC,ホストDのRAM4もしくはHDD5には、それぞれホストAの情報が記憶保持されている。
【0144】
以上の処理により、図19(a)に示すように、ホストA−ホストB間、ホストA−ホストC間、ホストA−ホストD間の通信が確立する。
【0145】
同様に、ホストB,ホストC,ホストDからのマルチキャストパケットの送信により、ホストB−ホストC間、ホストB−ホストD間、ホストC−ホストD間の通信の確立も行われる。したがって、図19(b)に示すように、それぞれのホストから他のホストに対してコネクションが張られることになる。
【0146】
ところで、以上に述べた通信の確立方法では、まず、マルチキャスト送信手段20によりマルチキャストパケットである要求パケットの送信を行うことが前提となっている。しかしながら、マルチキャスト送信手段20においては、トランスポート層プロトコルにUDPを用いた送信になるため、パケットの欠落や到着順序の入れ替えが起こってもそのまま受信されてしまうので、信頼性の低い通信となってしまう。つまり、この要求パケットが届かないことによって、意図したホストとの通信確立ができない場合が発生するという問題が起こり得る。そこで、本実施の形態における通信確立処理(ステップS1)では、上述したような問題を解決すべく、次に示す通信確立確認処理を通信確立処理に並行して実行する。
【0147】
図21は、通信確立確認処理の流れを示すフローチャートである。通信機能に係る拡張プログラム112は、通信ボタンをクリックしたことを受け取って通信確立処理を開始した後、図21に示すように、通信が確立したRAM4もしくはHDD5に記憶保持している相手先情報をコンピュータ1のディスプレイ9に表示させるための相手先情報表示イベントを発生させる(ステップS11)。このイベントが検出されると、ディスプレイ9には相手先情報が表示される。図22に示すように、ディスプレイ9に表示される相手先情報としては、「ユーザ名」g、「ネットワークアドレス」b、「ホスト名」cなどで良い。なお、表示させる情報は、これらに限るものではなく、事前登録しておいたユーザの画像やアイコンでも良い。
【0148】
なお、通信が確立したホストを報知する手法は、表示に限るものではなく、音声等であっても良い。
【0149】
ユーザは、ディスプレイ9に表示された通信が確立した相手先情報を確認した後、この表示の中にユーザが意図したホストが含まれない場合には、要求パケット送付先指定イベントを発生させることができる。
【0150】
要求パケット送付先指定イベントは、ディスプレイ9に「ネットワークアドレス」もしくは「ホスト名」を入力するためのダイアログDを表示しておき、ユーザがこのダイアログDに「ネットワークアドレス」もしくは「ホスト名」をこれに入力することにより、発生する。
【0151】
要求パケット送付先指定イベントが発生した場合には(ステップS12のY)、前述したようなマルチキャスト送信手段20を用いるのではなく、コネクション型送受信手段22を用いて要求パケットの送信を行い、再度所望の相手との通信の確立を図る(ステップS13)。
【0152】
これにより、コネクション型送受信手段22を用いたTCP/IPでの通信により相手を指定し要求パケットを送信することで、UDPではデータが届きにくい無線LANなどによってネットワーク接続されているようなコンピュータ1に対しても、通信を確立することができる。
【0153】
以上により、通信確立処理(ステップS1)が終了する。
【0154】
[データ通信処理(ステップS2)]
データ通信処理は、基本的には、マルチキャスト送信手段20およびマルチキャスト受信手段21でやりとりされる。
【0155】
通信確立後、ホストAで起動している文書Aは、マルチキャスト送信手段20を用いてデータ(マルチキャストパケット)の送信を行う。
【0156】
加えて、データ(マルチキャストパケット)送信後には、ホストAのRAM4もしくはHDD5に記憶保持されている相手先情報を利用して通信が確立している各ホスト(ここでは、ホストB,ホストC,ホストD)に対してコネクション型送受信手段22を用いてマルチキャストした旨を通知(送信確認通知)する。この通知内容は、例えば図23に示すように、図中の「処理要求ID」aには受信応答送信要求IDをセットし、「シーケンシャルナンバー」fには何回目のマルチキャストかを表わすシーケンシャルナンバーf1およびその送信命令内容f2をセットする。
【0157】
また、ホストAで起動している文書Aは、データ(マルチキャストパケット)送信の際には、RAM4もしくはHDD5に、図24に示すような各通信相手先との各マルチキャストパケット送信時の通信成否表を作成し、各ホスト(ホストB,ホストC,ホストD)毎のシーケンシャルナンバーf3と受信応答フラグf4を記録し、図25に示すようなシーケンシャルナンバーf5とその送信命令内容f6を記録しておく。
【0158】
一方、データ(マルチキャストパケット)を受け取った各ホスト(ここでは、ホストB,ホストC,ホストD)では、RAM4もしくはHDD5に、図26に示すような送信元のホスト毎に、シーケンシャルナンバーとその送信命令内容を記憶しておく。
【0159】
送信確認通知を受け取った各ホスト(ホストB,ホストC,ホストD)の各文書は、その送信確認通知の内容を処理し、「ホスト名」c、「シーケンシャルナンバー」fを取得し、図26に示した自身が記憶しているデータ(マルチキャストパケット)に係る受信データ(送信元のホスト毎のシーケンシャルナンバー及びその送信命令内容)を参照し、データ(マルチキャストパケット)を受け取っているか否かを判定する。
【0160】
そして、各ホスト(ホストB,ホストC,ホストD)の各文書は、判定結果("TRUE"もしくは"FALSE")を送信元であるホストAに対してコネクション型送受信手段22を用いて受信応答パケットを返信する。
【0161】
このデータをコネクション型送受信手段22を用いて受け取ったデータ(マルチキャストパケット)の送信元であるホストAは、受信応答パケットの内容が"TRUE"であれば図24に示す受信応答フラグf4を"TRUE"にし、受信応答パケットの内容が"FALSE"であればそのシーケンシャルナンバーf5から送信命令内容f6を引いてきて送信命令を取得し、データを再度送信する。
【0162】
データを再度送信する場合には、本実施の形態においては、受信応答パケットの内容が"FALSE"となったホストにのみコネクション型送受信手段22を用いてデータを再送信するものとする。
【0163】
なお、本実施の形態においては、送信確認通知を受け取った各ホストが受信応答パケットを返すことを前提としたが、送信確認通知のみを行い、受信応答パケットは必ずしも返さなくても良い。送信確認通知を受け取った各ホストは、そのシーケンシャルナンバーのデータをきちんと受信しているかをチェックし、受信していなければそのシーケンシャルナンバーの送信内容を再送信するように、送信確認通知をしてきたホストに対して要求すれば良い。
【0164】
また、本実施の形態においては、マルチキャスト送信手段20を用いてデータ(マルチキャストパケット)を送信した後、コネクション型送受信手段22を用いてマルチキャストした旨を通知(送信確認通知)するとしたが、これからマルチキャストする旨をコネクション型送受信手段22を用いて各ホストに通知した後、マルチキャスト送信手段20を用いてデータ(マルチキャストパケット)を送信するようにしても良い。この場合、送信確認通知にはタイムアウトのための時間を設定しておき、送信確認通知を受けた場合はこの時間だけ待ち、それでもデータ(マルチキャストパケット)が到着しない場合には、その旨の受信応答パケットを返す等の処理を実行するようにすれば良い。
【0165】
さらに、このような受信応答パケットおよび受信応答パケットに係る処理は、自動的に行っても良いが、ユーザへの利便性を考えた場合、何らかの送信を行った際にはそのデータが届いたかどうかをユーザに明示的に知らせるようにしたほうが良い。例えば、会議システムなどでは、ソフトウェア的に会議参加者を上記シーケンシャルナンバーとともに表示しておき、受信応答があった場合はそのシーケンシャルナンバーをハイライトするなどによって、ユーザに対して自身の送信がきちんと伝わっているかどうかを通知することが可能である。
【0166】
[特殊なデータ通信処理の例1]
上述したように、基本的に通信確立後のデータの送信はマルチキャスト送信手段20を用いてマルチキャストで行うが、通信環境が悪いと思われるネットワーク経路先にあると考えられるホストに対しては、コネクション型送受信手段22を用いてデータを送信するようにしても良い。通信環境の悪さの判断は、図24に示したような各通信相手先との各マルチキャストパケット送信時の通信成否表を用いる。例えば、通信ごとに通信成否表をチェックしておき、受信応答フラグf4の受信応答の内容がN回以上"FALSE"のままであるホストについては、別途設けた環境フラグf7を"FALSE"にする(初期値は"TRUE")。そして、マルチキャスト送信命令を受けた際にこの環境フラグf7をチェックし、環境フラグf7="FALSE"のホストに対してはコネクション型送受信手段22を用いてデータを送信すれば良い。図27のホストBは、1回の受信応答フラグf4の"FALSE"で、環境フラグf7を"FALSE"にした例である。
【0167】
[特殊なデータ通信処理の例2]
特定多数に対してデータ(マルチキャストパケット)を送信する場合、その特定多数の中からさらに特定の相手を絞り込んでその特定の相手のみにデータを送信したい場合がある。例えば、文書名が送信ホストと同じホストにのみ送りたい場合である。このような場合には、図28に示すように、通信確立時に作成されたRAM4もしくはHDD5に記憶保持されている相手先情報の「タイトル」dを参照し(ステップS21)、同一名の文書タイトルの相手先ホストを特定し(ステップS22)、その相手にのみデータを送信する(ステップS23)。この場合、UDP(マルチキャスト送信手段20)で送信してもTCP(コネクション型送受信手段22)で送信しても良いが、UDP(マルチキャスト送信手段20)で送信した場合には、送信パケットには「処理要求ID」aとして受信応答送信要求のIDをセットする。これにより、受信側は受信確認の応答を送信する。送信側で受信確認の応答を受け取れない場合には、再度同じデータを送信する。また、前述したように、送信通知を送信して確認をとるようにしても良い。
【0168】
[特殊なデータ通信処理の例3]
また、マルチキャスト送信手段20を用いたデータ(マルチキャストパケット)の送信は、通信が確立されているすべてのホストに対してデータを送信してしまうが、通信を確立しているホストの中から特定のホストを選んでデータを送信したい場合がある。例えば、他のホストには知られたくない情報を特定のホストに対してのみ送信する場合である。このような場合には、通信確立時に作成されたRAM4もしくはHDD5に記憶保持されている相手先情報に基づき、通信を確立しているホストの中から特定のホストを決定する。すなわち、図29に示すように、通信が確立したRAM4もしくはHDD5に記憶保持している相手先情報をコンピュータ1のディスプレイ9に表示させるための相手先情報表示イベントを発生させて通信相手先情報の一覧を表示させる(ステップS31)。図30に示すように、ディスプレイ9に表示される相手先情報としては、「ユーザ名」g、「ネットワークアドレス」b、「ホスト名」cなどで良い。なお、表示させる情報は、これらに限るものではなく、事前登録しておいたユーザの画像やアイコンでも良い。
【0169】
また、各相手先情報の先頭にチェックボックスCBを設け、このチェックボックスCBがチェックされている相手先を選択された送信相手先として受け付けて送信先リストを作成し(ステップS32)、その相手にのみデータを送信する(ステップS33)。
【0170】
この場合、UDP(マルチキャスト送信手段20)で送信してもTCP(コネクション型送受信手段22)で送信しても良いが、UDP(マルチキャスト送信手段20)で送信した場合には、受信側のホストにおいては次のような処理が実行される。図31に示すように、受信側のホストは、データを受信した後(ステップS41)、送信先リストを参照する(ステップS42)。そして、送信先リストに自分のデータがあれば(ステップS43のY)、データを取り込み(ステップS44)、送信先リストに自分のデータがなければ(ステップS43のN)、そのデータは破棄する(ステップS45)。これにより、UDP(マルチキャスト送信手段20)で送信した場合であっても、例えば会議参加者全員ではなく、会議参加者中の何人かを指定して送信することが可能になる。
【0171】
[特殊なデータ通信処理の例4]
データ通信にあたり、遠隔地とのデータをやりとりする場合には、データの傍受が行われる恐れがある。つまり、マルチキャストでの送信やコネクション型のデータ通信におけるデータの暗号化を行う必要がある。データの暗号化への対応を以下に示す。
【0172】
通信確立後に、暗号鍵要求パケットをコネクション型送受信手段22を用いて送信する。これを受信したホストは、送信元に対して自身の公開鍵と、秘密鍵で暗号化された情報を暗号化し送信する。この情報は、例えば、通信確立の際に送信される図18に示すような受信応答パケットのデータなどを用いると良い。これを受け取ったホストは、公開鍵を用いてこの情報を解読する。解読した結果が通信確立時に記憶保持していた情報と同じであれば、共有鍵を発行する。この共有鍵は、グループ内(例えば会議参加者)でのみ使用する暗号化キーである。したがって、データ通信を行う際に、送信側はこの共通鍵を使用して暗号化してデータを送信し、受信側はこの共通鍵を利用してデータを復号することにより、よりセキュアなデータの送受信がマルチキャストでもコネクション型の通信でも可能になる。また、それぞれのホストの公開鍵を取得しているため、ある特定のホストに対してそのホストの公開鍵で暗号化し、受信したホストは自身の秘密鍵で復号化するといった公開鍵暗号方式も利用可能である。また逆に、自身の秘密鍵で暗号化したデータを送信することにより、送信するデータに電子署名を付加することも可能である。
【0173】
公開鍵暗号方式や電子署名は処理に時間がかかるため、どうしても利用が必要な場合に限った方が良い。したがって、通常は前述したような共通鍵を用いることによって暗号化されたデータの通信を高速に行うことが可能である。
【0174】
取得した各ホストの公開鍵は、図32に示すように、通信相手先情報に加えられる。
【0175】
以上により、データ通信処理(ステップS2)が終了する。
【0176】
[通信切断処理(ステップS3)]
通信切断処理は、「処理要求ID」aにデータ消去IDをセットし、通信確立時に作成されたRAM4もしくはHDD5に記憶保持されている相手先情報に基づき、通信を確立している全ホストに対して送信する。送信後、回線(ソケット)を閉じることにより通信を切断する。このデータを受信したホストは、RAM4もしくはHDD5に記憶保持されている相手先情報からこのホスト情報を消去する。以上の処理により、通信の切断が完了する。なお、「処理要求ID」aにデータ消去IDをセットしたデータをマルチキャスト送信手段20を用いてマルチキャストする際には、前述した方法により受信応答確認をとるようにしても良い。この場合、受信応答確認が全ホストから取れた場合に、回線(ソケット)を閉じるようにすれば良い。
【0177】
以上により、通信切断処理(ステップS3)が終了する。
【0178】
図33は、上述したような通信確立からデータ送信についての基本的な流れを概略的に示すデータ通信シーケンスである。ここでは、便宜上、三台のコンピュータ1を仮にホストA,ホストB,ホストCとし、これらのホストA,ホストB,ホストC間での流れを例に説明する。図33においては、ホストAがホストBおよびホストCに対してデータを送信する場合の例を示す。図33に示すように、ホストBおよびホストCにおいては、既にアプリケーション・プログラム(カプセル化文書101の通信機能に係る拡張プログラム112)が起動し、通信可能状態になっているとする。ユーザがアプリケーション起動命令をマウス11もしくはキーボード10で入力することにより、ホストAのアプリケーション・プログラム(カプセル化文書101の通信機能に係る拡張プログラム112)が起動する。通信可能状態になると、自分の情報(図18に示す要求パケット)をUDP(マルチキャスト送信手段20)で送信することにより、ホストBおよびホストCに対してホストAの情報(要求パケット)を通知することができる。
【0179】
この通知を受け取ったホストBおよびホストCは、ホストAの情報(要求パケット)に基づき、自分の情報(図18に示す受信応答パケット)をTCP/IP(コネクション型送受信手段22)で返信する。これにより、ホストAはホストBおよびホストCの情報を得ることができ、この状態を通信が確立した状態とする。
【0180】
通信確立後、データの送受信を行う。ホストAがデータUDP(マルチキャスト送信手段20)で送信した後(送信する前でも良い)、マルチキャストした旨を通知する送信確認通知をホストBおよびホストCへTCP/IP(コネクション型送受信手段22)にて送信する。
【0181】
これに対して、ホストBおよびホストCは、データを受け取っていれば、受信応答パケットをTCP/IP(コネクション型送受信手段22)にて返信する。
【0182】
ホストAでは、受信応答がなければ、自動的にデータを再度送信するなどの処理を実行する。
【0183】
ここに、相互にネットワーク接続された複数のコンピュータ1間でのパケットデータの送受信にあたり、まず、ユニキャスト接続により通信が確立され、この通信が確立された少なくとも1以上のコンピュータ1に対して、マルチキャスト通信とユニキャスト通信とを必要に応じて使い分けてデータ送信が行なわれる。これにより、サーバを介さないピアツーピア的なネットワーク形態の下に、データ送信時のネットワークトラフィックの軽減を図ることが可能になるとともに、マルチキャスト通信の信頼性を向上させることが可能になる。
【0184】
[実施例]
以上において説明した本実施の形態のデータ通信方法を用いたアプリケーションについて、具体例を挙げて説明する。
【0185】
[第一の実施例]
まず、本実施の形態のデータ通信方法を用いたアプリケーションである会議システムについて説明する。
【0186】
会議においては使われる資料が事前に配布されている場合がある。この資料が、通信機能を備えるカプセル化文書101で作成されているものとする。また、会議出席者は、このカプセル化文書101を事前に取得し、また、このカプセル化文書101を表示可能なディスプレイ9を備えたコンピュータ1を所持しており、それらはネットワーク7に繋がっているものとする。このカプセル化文書101を用いて会議を開催する。
【0187】
まず、会議の開始にあたって通信の確立を行う。カプセル化文書101の拡張プログラム112は、所定の操作に基づいて選択指示されたデジタル情報ファイル(テキスト情報103、メディア情報104)をディスプレイ9に表示する動作を実行する。図34に、ディスプレイ9に表示されたデジタル文書Xを示す。図34に示すように、ディスプレイ9に表示されたデジタル文書Xには通信ボタンoを出現させ、この通信ボタンoをマウス11でクリックすることにより、マルチキャスト送信手段20を用いて要求パケットが送信される。これらの操作は、会議参加者全員が自分のコンピュータ1のディスプレイ9に表示されたデジタル文書X上で同様の操作を行う。通信可能になったデジタル文書Xは、他のデジタル文書Xからの要求パケットを受け取り、そのパケットを送信してきたホストに対してコネクション型送受信手段22を用いて受信応答パケットを送信する。こうすることにより、それぞれのデジタル文書Xの通信が確立し、会議内容データの送受信の準備が整う。ここで、例えば会議の主催者は、参加者全員との通信が確立されているかどうかのチェックを行う。通信状態になると、例えば図35に示すような参加者チェックボタンp、データ送信ボタンqがデジタル文書Xに現れる。参加者チェックボタンpをマウス11でクリックすると通信が確立されているホストの一覧(図22参照)が、その「ユーザ名」g、「ネットワークアドレス」b、「ホスト名」cなどの情報に基づいてディスプレイ9に表示される。この一覧から抜けている参加者があれば、図22中のダイアログDに「ネットワークアドレス」もしくは「ホスト名」を入力することにより、コネクション型送受信手段22を用いて要求パケットの送信が行われ、再度所望の相手との通信の確立が図られる。
【0188】
会議中は、図35中のデータ送信ボタンqをマウス11でクリックすることにより、データ(マルチキャストパケット)がマルチキャスト送信手段20を用いて送信される。ここで送るデータは、例えば文書の状態情報であるとする。例えば、動画Vを再生している状態でデータ送信ボタンqが押されれば、マルチキャストした旨がコネクション型送受信手段22を用いて通知され、それを受け取った側のデジタル文書Xにおいても動画Vが表示される。また、ある画像が表示されている状態で送信されれば、他のデジタル文書Xにおいてもその画像が表示される。
【0189】
基本的に通信確立後のデータの送信はマルチキャスト送信手段20を用いてマルチキャストで行うが、トランスポート層プロトコルにUDPを用いた送信になるために通信の信頼性が低いため、所望のホストにデータが届かない場合が発生するという問題が起こり得る。この場合は、前述したような受信応答確認機能によってそれぞれのデータ送信を常にチェックし、その受信応答があるかどうかをチェックする。受信応答がない場合にはデータの再送信を行う。以上の処理は自動的に行われる。
【0190】
なお、ここでは、データ送信ボタンqを設けたが、何らかのアクション(ページ送り、画像表示/非表示、動画像表示/非表示など)が起こった場合に、自動的に状態情報データをマルチキャストするようにしても良い。
【0191】
また、会議システムを考えた場合には、遠隔地とのデータ通信を行う必要が出てくることが考えられる。遠隔地とのデータをやりとりする場合まず気になるのが、遠隔地とデータをやりとりする過程でデータの傍受が行われないかということである。そこで、データ通信を暗号化して行うための暗号化モードを設けるようにしても良い。例えば、暗号化モードボタン(図示せず)をマウス11でクリックすれば、暗号鍵要求パケットを通信確立しているホストに対して送信することにより、暗号化通信の準備をはじめるようにしても良い。また、通信確立と同時に自動的に暗号鍵要求パケットを送信し、データ通信は必ず暗号化して行うようにしても良い。
【0192】
さらに、ルータなどのネットワーク機器によってはマルチキャストに対応していないものもあるため、遠隔地にある端末との通信には、コネクション型送受信手段22を用いて通信を確立したほうが良い場合もある。この場合、データのやり取りもコネクション型送受信手段22を用いることになる。
【0193】
[第二の実施例]
次に、本実施の形態の通信方法を用いたアプリケーションである教育システムについて説明する。
【0194】
教育システムにおいては、使用するテキストを通信機能を備えるカプセル化文書101で作成すると有用である。このテキストは、CD−Rなどのメディアに焼いて生徒たちに配ると良い。教室では先生、生徒のそれぞれが、このカプセル化文書101を表示可能なディスプレイ9を備えたコンピュータ1が用意されており、それらはLANに繋がっているものとする。
【0195】
第一の実施例で説明した会議システムと同様に、カプセル化文書101の拡張プログラム112は、所定の操作に基づいて選択指示されたデジタル情報ファイル(テキスト情報103、メディア情報104)をディスプレイ9に表示する動作を実行する。ディスプレイ9に表示されたテキスト中の通信ボタンをマウス11でクリックすることにより、マルチキャスト送信手段20を用いて要求パケットが送信される。基本的には、先生のコンピュータ1と生徒たちのコンピュータ1とのコネクションの確立が行われれば良い。また、遠隔地の生徒に対しては事前に先生のコンピュータ1のネットワークアドレスを知らせておき、生徒がそのコンピュータ1とのコネクションを図るか、または、遠隔地の生徒が事前に先生にネットワークアドレスを通知しておき、先生がコネクションを図るなどすれば良い。この際の通信確立は、コネクション型送受信手段22で行い、その後のデータ通信も遠隔地の生徒に対してコネクション型送受信手段22を用いて行われることになる。
【0196】
実際の授業においては例えば、先生が重要だと思った個所をハイライトし、送信ボタンを押すと生徒たちのテキストにそれが反映されるなどが可能である。また、生徒の発言や質問に関してもテキストに関連すること、例えば「○○ページの△△はなんですか?」といった質問をする際に、生徒がディスプレイ9に表示されたテキスト中の○○ページを開いて△△をマークして送信ボタンを押すことによりその情報がマルチキャストされ、先生や他の生徒に対して質問の内容を明示できる。また、授業中の小テストなどのようにある程度プライバシーが守られるべきものは、前述したセキュリティ技術を用いて通信を行えばよい。
【0197】
[第二の実施の形態]
本発明の第二の実施の形態を、図36に基づいて説明する。なお、第一の実施の形態において説明した部分と同一部分については同一符号を用い、説明も省略する(以降の実施の形態においても同様)。第一の実施の形態では、データ通信処理において、受信応答パケットの内容が"FALSE"となったホストにのみコネクション型送受信手段22を用いてデータを再送信するデータを再度送信するようにしたが、本実施の形態においては、マルチキャスト送信手段20を用いてデータを再送信する点でのみ異なるものである。
【0198】
データ(マルチキャストパケット)を受け取っていないことを示す"FALSE"である受信応答パケットを受け取ったホスト(ここでは、ホストA)がデータを再送信する場合、本実施の形態においては、ホストAはマルチキャスト送信手段20を用いてデータを再送信する。
【0199】
しかしながら、このように同じデータをマルチキャストすると、すでにそのデータを受け取っているホストの文書も出てくる。そこで、このように同じデータをマルチキャストする場合は、受信側でそのデータを採用するかどうかを判断させるようにしたものである。
【0200】
再送する場合は、先に送信したデータと同じシーケンシャルナンバーを割り振ってデータを再送信する。受信側が再送されたデータを受信すると、送信元情報やシーケンシャルナンバーと自身のデータ受信情報とを照らし合わせ、既に採用済みの場合は、データは破棄する。一方、採用されていない場合は、データを取り込む。
【0201】
ここで言うデータ受信情報とは、どこから送られてきたか、シーケンシャルナンバーはいくつか、内容はなにかという3点であり、受信側で記録しておくものである。例えば、ホストCが図36に示すような受信記録を記憶保持している場合、ホストBの問題で、ホストCに対しても、「ホストA、シーケンシャルナンバー3」のデータが再送されてきた場合には、ホストCにおいては、そのデータは破棄する。「ホストB、シーケンシャルナンバー2」のデータをホストCが受け取った場合にはそのデータは取り込む。なお、受信記録は、全部記録しておくのではなく、それぞれのホストごとの最新の記録だけとっておいても良い。また、データは記録してもしなくても良い。
【0202】
また、マルチキャスト送信手段20を用いてデータ(マルチキャストパケット)を再送信する前に、コネクション型送受信手段22を用いて再度マルチキャストした旨を通知(送信確認通知)するようにしても良い。この場合には、送信確認通知と自身のデータ受信情報とを照らし合わせ、既に採用済みの場合は、データの受信を拒否するようにすれば、データの2度受けの問題が解消される。
【0203】
[第三の実施の形態]
本発明の第三の実施の形態を、図37に基づいて説明する。本実施の形態は、第一の実施の形態とは、データ通信処理(ステップS2)の流れが異なるものである。例えば、第一の実施の形態では、データ通信処理において、データ(マルチキャストパケット)送信後に、通信が確立している各ホストに対してコネクション型送受信手段22を用いてマルチキャストした旨を通知(送信確認通知)するようにしたが、本実施の形態においては、このような送信確認通知は行わない点で異なるものである。
【0204】
[本実施の形態のデータ通信処理(ステップS2)]
図37は、本実施の形態のデータ通信処理の流れを示すフローチャートである。図37に示すように、通信確立後、データ(マルチキャストパケット)送信命令があった場合(ステップS51)、ホストAで起動している文書Aは、RAM4もしくはHDD5に、図24に示すような各通信相手先との各マルチキャストパケット送信時の通信成否表を作成し、各ホスト(ホストB,ホストC,ホストD)毎に、何回目のマルチキャストかを表わす"n"をシーケンシャルナンバーf3にセットし、かつ、受信応答フラグf4に"FALSE"をセットする(ステップS52)。併せて、例えば図25に示すようなシーケンシャルナンバーf5とその送信命令内容f6を記録しておく。
【0205】
次いで、ホストAで起動している文書Aは、データ(マルチキャストパケット)に対して「受信応答パケット送信を要求する」というあらかじめ決められたIDである「処理要求ID」をセットした後、マルチキャスト送信手段20を用いてデータ(マルチキャストパケット)の送信を行う(ステップS53)。
【0206】
続くステップS54においては、受信応答パケットを受け付けるとともに、一定時間経過するのを待つ。これは、「処理要求ID」がセットされたてデータ(マルチキャストパケット)を受信した各ホスト(ホストB,ホストC,ホストD)は、受信記録を確認し、受信応答パケットをコネクション型送受信手段22を用いて送信することになるため、ホストAは受信応答パケットを受け付けるために一定時間経過するのを待つようにしたものである。
【0207】
この間に、受信応答パケットを受け付けた場合には、該当するホストの通信成否表の受信応答フラグf4を"TRUE"をセットする。なお、受信応答パケットのシーケンシャルナンバーは、受信したデータ(マルチキャストパケット)のシーケンシャルナンバーと同じものとする。これにより、受信応答のないものは受信応答フラグf4が"FALSE"のままであるので、シーケンシャルナンバーによりどのデータがどのホストに届いたか、または届いてないかの把握ができる。すなわち、受信応答フラグf4が"FALSE"のままのホストは、ホストAから送信されたデータ(マルチキャストパケット)が何らかの原因で届かないため、受信応答が帰ってこないものとみなされる。
【0208】
ホストAは、タイムアウト後、各ホスト(ホストB,ホストC,ホストD)のシーケンシャルナンバー="n"の受信応答フラグf4をチェックする(ステップS55)。
【0209】
図27は、3回のマルチキャストパケット送信時にホストAが記憶保持している各通信相手先との各マルチキャストパケット送信時の通信成否表である。この例では、ホストAから3回目にマルチキャストされたパケットに対するホストBの応答がないことがわかる。
【0210】
ここで、受信応答フラグf4が"TRUE"になっているホストである場合には(ステップS56のN)、データ(マルチキャストパケット)が確実に受信されているため問題は無いが、受信応答フラグf4が"FALSE"のままになっているホストである場合には(ステップS56のY)、そのシーケンシャルナンバーf5から送信命令内容f6を引いてきて送信命令を取得し(ステップS57)、そのホストに対してコネクション型送受信手段22を用いてデータの再送信を行う(ステップS58)。
【0211】
ステップS55〜S58の処理は、全てのホスト(ホストB,ホストC,ホストD)のシーケンシャルナンバー="n"の受信応答フラグf4をチェックするまで(ステップS59のN)、繰り返される。
【0212】
ここに、相互にネットワーク接続された複数のコンピュータ1間でのパケットデータの送受信にあたり、まず、ユニキャスト接続により通信が確立され、この通信が確立された少なくとも1以上のコンピュータ1に対して、マルチキャスト通信とユニキャスト通信とを必要に応じて使い分けてデータ送信が行なわれる。これにより、サーバを介さないピアツーピア的なネットワーク形態の下に、データ送信時のネットワークトラフィックの軽減を図ることが可能になるとともに、マルチキャスト通信の信頼性を向上させることが可能になる。
【0213】
【発明の効果】
請求項1記載の発明によれば、相互にネットワーク接続された複数のコンピュータ間でパケットデータを送受信するデータ通信方法であって、表現実体であるデジタル情報ファイルと、前記表現実体の表示状態を特定する表示情報ファイルと、前記表現実体の表示や各種の機能を実行するプログラムを含む動作プログラムファイルと、を単一の文書としてカプセル化したカプセル化文書における前記動作プログラムファイルの前記プログラムを、コンピュータに読み取らせることにより、パケットデータを特定多数のコンピュータに対してマルチキャスト送信するためのマルチキャスト送信手段と、前記パケットデータを受信するためのマルチキャスト受信手段と、特定の前記コンピュータと1対1のユニキャスト接続でデータを送受信するためのデータ送受信手段と、を前記各コンピュータに具備させ、コンピュータ間でのデータ送信に際し、少なくとも1以上の前記コンピュータを指定してユニキャスト接続で通信を確立する通信確立ステップと、前記通信確立ステップにより通信が確立した少なくとも1以上の前記コンピュータに対して、マルチキャスト又はユニキャストのいずれかでデータを通信するデータ通信ステップと、をコンピュータで実現させることにより、サーバを介さないピアツーピア的なネットワーク形態の下に、データ送信時のネットワークトラフィックの軽減を図ることができるとともに、マルチキャスト通信の信頼性を向上させることができる。また、デジタル情報ファイルや表示情報ファイルとともに、マルチキャスト送信手段と、マルチキャスト受信手段と、コネクション型データ送受信手段とをコンピュータに実現させるプログラムが単一の文書としてカプセル化されるので、その取り扱いや管理を極めて容易にすることができる。
【0214】
請求項2記載の発明によれば、相互にネットワーク接続された複数のコンピュータ間でパケットデータを送受信するデータ通信方法であって、パケットデータを特定多数のコンピュータに対してマルチキャスト送信するためのマルチキャスト送信手段と、前記パケットデータを受信するためのマルチキャスト受信手段と、特定の前記コンピュータと1対1 のユニキャスト接続でデータを送受信するためのデータ送受信手段と、を前記各コンピュータに具備させ、コンピュータ間でのデータ送信に際し、少なくとも1以上の前記コンピュータを指定してユニキャスト接続で通信を確立する通信確立ステップは、一のコンピュータの前記マルチキャスト送信手段を用いてハンドシェイク相手を特定するための前記パケットデータである要求パケットを送信する要求信号送信ステップと、送信されてきた前記要求パケットを他のコンピュータが前記マルチキャスト受信手段を用いて受け取る要求信号受信ステップと、前記要求パケットを受け取った前記他のコンピュータが、前記データ送受信手段を用いて前記要求パケットを送信してきた前記一のコンピュータとのコネクションを確定するコネクション確定ステップとからなり、前記通信確立ステップにより通信が確立した少なくとも1以上の前記コンピュータに対して、マルチキャスト又はユニキャストのいずれかでデータを通信するデータ通信ステップと、をコンピュータで実現させることにより、サーバを介さないピアツーピア的なネットワーク形態の下に、データ送信時のネットワークトラフィックの軽減を図ることができるとともに、マルチキャスト通信の信頼性を向上させることができる。また、特定多数のコンピュータとのコネクションを容易に確立することができる。
【0215】
請求項3記載の発明によれば、請求項1又は2記載のデータ通信方法において、前記マルチキャスト送信手段及び前記マルチキャスト受信手段のトランスポート層プロトコルはUDP( User Datagram Protocol )で、前記データ送受信手段のトランスポート層プロトコルはTCP( Transmission Control Protocol )/IPであることにより、マルチキャスト送信手段、マルチキャスト受信手段及びコネクション型データ送受信手段について、それぞれソフトウェア的に実現することができる。
【0216】
請求項4記載の発明によれば、請求項2又は3記載のデータ通信方法において、前記要求パケットは、当該要求パケットを送信する前記一のコンピュータに係る属性情報と前記他のコンピュータに対する処理要求を特定する処理要求IDとを含むことにより、要求パケットの送信先に対して、要求パケットを送信したコンピュータに係る各種の情報を伝達することができる。
【0217】
請求項5記載の発明によれば、請求項4記載のデータ通信方法において、前記一のコンピュータに係る属性情報は、少なくとも当該コンピュータのネットワークアドレスを有していることにより、要求パケットの送信先に対して、確実に所定の応答を返信することができる。
【0218】
請求項6記載の発明によれば、請求項4又は5記載のデータ通信方法において、前記要求信号受信ステップは、受け取った前記要求パケットの内容を要求パケット送信先情報として前記要求パケットを受け取った前記コンピュータの記憶部に記憶する要求パケット送信先記憶ステップを含むことにより、その情報に基づいてデータ送信の有無の確認等の各種の処理を行うことができる。
【0219】
請求項7記載の発明によれば、請求項2記載のデータ通信方法において、前記コネクション確定ステップは、コネクションが確定した場合に、コネクションが確定した前記他のコンピュータに係る属性情報を通信相手先情報として前記要求パケットを送信した前記一のコンピュータの記憶部に記憶する通信相手先記憶ステップを含むことことにより、その情報に基づいて受信応答の確認やデータ送信先の指定等の各種の処理を行うことができる。
【0220】
請求項8記載の発明によれば、請求項4記載のデータ通信方法において、前記他のコンピュータに係る属性情報は、少なくとも当該コンピュータのネットワークアドレスを有していることにより、コネクションが確定したコンピュータに対して、確実に所定の要求を送信することができる。
【0221】
請求項9記載の発明によれば、請求項8記載のデータ通信方法において、前記要求パケットを送信した前記一のコンピュータの記憶部に記憶された前記通信相手先情報を報知する通信確立相手報知ステップを含むことにより、マルチキャストによる要求パケット送信により通信を確立できなかったコンピュータを把握することができる。
【0222】
請求項10記載の発明によれば、請求項9記載のデータ通信方法において、意図した前記コンピュータとのコネクションが確定していない場合、コネクションが確定していない前記コンピュータに対して前記一のコンピュータの前記データ送受信手段を用いて前記要求パケットを送信してコネクションを確定する要求信号再送信ステップを含み、マルチキャストによる要求パケット送信で通信が確立できなかった場合に、ネットワークアドレスを指定してユニキャスト通信によって要求パケットを送信することにより、マルチキャストでパケットデータが届かないような環境にあるコンピュータに対して再度通信の確立を試みることができる。
【0223】
請求項11記載の発明によれば、請求項1又は2記載のデータ通信方法において、前記データ通信ステップは、前記一のコンピュータの前記マルチキャスト送信手段を用い、通信が確立している前記他のコンピュータに対して前記データを送信するデータ送信ステップと、送信されてきた前記データを前記他のコンピュータが前記マルチキャスト受信手段を用いて受け取るデータ受信ステップと、前記一のコンピュータの前記データ送受信手段を用いて前記データが前記他のコンピュータに確実に送信されたか否かを判定するデータ送信判定ステップと、を含み、コネクション確立後にマルチキャストによるデータの送受信を行ない、送信したデータを確実に送信したか否かを判定することにより、データ送信時のネットワークトラフィックの軽減を図ることができるとともに、マルチキャスト通信の信頼性を向上させることができる。
【0224】
請求項12記載の発明によれば、請求項11記載のデータ通信方法において、前記データ送信判定ステップは、前記一のコンピュータの前記データ送受信手段を用い、通信が確立している前記他のコンピュータに対してデータを送信した旨を伝える送信通知パケットを送信する送信通知送信ステップと、送信されてきた前記送信通知パケットを前記他のコンピュータが前記データ送受信手段を用いて受け取る送信通知受信ステップと、送信されてきた前記送信通知パケットに従って前記データが前記他のコンピュータに確実に送信されたか否かをチェックする送信状況チェックステップと、少なくとも前記チェック結果がデータ未送信であった場合には、そのチェック結果を前記他のコンピュータの前記データ送受信手段を用いて前記一のコンピュータに対して送信する結果送信ステップと、送信されてきた前記チェック結果を前記一のコンピュータの前記データ送受信手段を用いて受信する結果受信ステップと、を含み、マルチキャストによるデータの送信に対し、コネクション型データ送受信手段でデータを送信した旨を伝える送信通知パケットを送信先に送信してデータが確実に送信されたか否かをチェックさせ、少なくともチェック結果がデータ未送信であった場合にはそのチェック結果を返答させることにより、マルチキャストによるデータが届いているかどうかを確認することができる。
【0225】
請求項13記載の発明によれば、請求項11記載のデータ通信方法において、前記データ送信判定ステップの判定結果がデータ未送信であった前記コンピュータに対して、前記一のコンピュータの前記データ送受信手段を用い、当該コンピュータに対して前記データを再度送信する第1のデータ再送信ステップを含み、マルチキャストによるデータが届いていないコンピュータがあった場合には、当該コンピュータに対してデータをユニキャスト通信により再送信することにより、データ通信の信頼性の向上を図ることができる。
【0226】
請求項14記載の発明によれば、請求項11記載のデータ通信方法において、前記データ送信判定ステップの判定結果がデータ未送信であった前記コンピュータに対して、前記一のコンピュータの前記マルチキャスト送信手段を用い、通信が確立している前記他のコンピュータに対して前記データを再度送信する第2のデータ再送信ステップを含み、マルチキャストによるデータが届いていないコンピュータがあった場合には、データをマルチキャスト通信により通信が確立しているコンピュータに対して再送信することにより、データ通信の信頼性の向上を図ることができる。
【0227】
請求項15記載の発明によれば、請求項14記載のデータ通信方法において、前記一のコンピュータの前記データ送受信手段を用い、通信が確立している前記他のコンピュータに対してデータを送信した旨を伝える送信通知パケットを送信する再送信通知送信ステップを含み、ユニキャスト通信により再度マルチキャストした旨を通知することにより、既に受信済みの場合は、データの受信を拒否するようにすれば、データの2度受けの問題を解消することができる。
【0228】
請求項16記載の発明は、請求項7記載のデータ通信方法において、前記通信相手先記憶ステップで前記一のコンピュータの記憶部に記憶された前記通信相手先情報には、前記カプセル化文書に含まれる前記文書タイトルを含み、前記通信相手先情報を参照して同一の前記文書タイトルを有する前記他のコンピュータを特定し、その特定された前記他のコンピュータにのみデータを送信する第1の特定相手データ送信ステップを含むことにより、各コンピュータが記憶保持する通信相手先情報に基づき、同一の文書タイトルを有するコンピュータにのみデータ送信を行うことができる。
【0229】
請求項17記載の発明によれば、請求項7記載のデータ通信方法において、前記通信相手先記憶ステップで前記一のコンピュータの記憶部に記憶された前記通信相手先情報を参照して所望の前記他のコンピュータを特定し、その特定された前記他のコンピュータに向けてデータを送信する第2の特定相手データ送信ステップを含むことにより、コンピュータの記憶部に記憶された通信相手先情報に基づき、特定のコンピュータを指定してデータを送信することができる。
【0230】
請求項18記載の発明によれば、請求項17記載のデータ通信方法において、前記第2の特定相手データ送信ステップにおける前記データの送信は、特定された前記他のコンピュータのみに前記データ送受信手段を用いて送ることにより、特定多数のコンピュータの中から更に特定のコンピュータを絞り込んでその特定のコンピュータのみにデータを送信することができる。
【0231】
請求項19記載の発明によれば、請求項17記載のデータ通信方法において、前記第2の特定相手データ送信ステップにおける前記データの送信は、特定された前記他のコンピュータ向けという情報を含めて前記マルチキャスト送信手段を用いて送ることにより、マルチキャストにより特定多数のコンピュータにデータを送信した場合であっても、特定多数のコンピュータの中から更に特定のコンピュータを絞り込んでその特定のコンピュータのみにデータを送信することができる。
【0232】
請求項20記載の発明によれば、請求項11記載のデータ通信方法において、前記他のコンピュータが通信環境が悪いネットワーク経路に位置するか否かを判定するネットワーク環境判定ステップと、このネットワーク環境判定ステップにより通信環境が悪いネットワーク経路に位置すると判定された前記他のコンピュータのコンピュータに対しては、前記一のコンピュータの前記データ送受信手段を用いて前記データを送信する悪環境相手データ送信ステップと、を含むことにより、通信環境が悪いネットワーク経路上のコンピュータに対しては、信頼性の高いユニキャスト通信によりデータを送信することができる。
【0233】
請求項21記載の発明によれば、請求項20記載のデータ通信方法において、前記ネットワーク環境判定ステップにおける通信環境が悪いネットワーク経路に位置するか否かの判定は、前記データ送信判定ステップにおける判定結果に基づくことにより、所定のコンピュータが、通信環境が悪いネットワーク経路上にあるか否かの判定を容易に行うことができる。
【0234】
請求項22記載の発明によれば、請求項1〜21のいずれか一つに記載のデータ通信方法において、送信する前記データを暗号化する暗号化ステップと、受信した暗号化された前記データを復号する復号化ステップと、を含み、送受信するデータを暗号化することにより、より機密性の高いデータ通信を行うことができる。
【0235】
請求項23記載の発明のコンピュータによれば、他のコンピュータとネットワーク接続されるコンピュータにおいて、前記コンピュータは、表現実体であるデジタル情報ファイルと、前記表現実体の表示状態を特定する表示情報ファイルと、前記表現実体の表示や各種の機能を実行するプログラムを含む動作プログラムファイルと、を単一の文書としてカプセル化したカプセル化文書における前記動作プログラムファイルの前記プログラムを実行して、パケットデータを特定多数のコンピュータに対してマルチキャスト送信するためのマルチキャスト送信手段と、前記パケットデータを受信するためのマルチキャスト受信手段と、特定の前記コンピュータと1対1のユニキャスト接続でデータを送受信するためのデータ送受信手段と、を前記コンピュータに具備させ、コンピュータ間でのデータ送信に際し、少なくとも1以上のコンピュータを指定して前記データ送受信手段で通信を確立する通信確立ステップと、前記通信確立ステップにより通信が確立した少なくとも1以上のコンピュータに対して、マルチキャスト送信手段、マルチキャスト受信手段又はデータ送受信手段のいずれかでデータを通信するデータ通信ステップと、を実行することにより、サーバを介さないピアツーピア的なネットワーク形態の下に、データ送信時のネットワークトラフィックの軽減を図ることができるとともに、マルチキャスト通信の信頼性を向上させることができる。また、デジタル情報ファイルや表示情報ファイルとともに、マルチキャスト送信手段と、マルチキャスト受信手段と、コネクション型データ送受信手段とをコンピュータに実現させるプログラムが単一の文書としてカプセル化されるので、その取り扱いや管理を極めて容易にすることができる。
【0236】
請求項24記載の発明のプログラムによれば、他のコンピュータと相互にネットワーク接続されるコンピュータに実行される、表現実体であるデジタル情報ファイルと、前記表現実体の表示状態を特定する表示情報ファイルと、前記表現実体の表示や各種の機能を実行するプログラムを含む動作プログラムファイルと、を単一の文書としてカプセル化したカプセル化文書における前記動作プログラムファイル内のプログラムであって、パケットデータを特定多数のコンピュータに対してマルチキャスト送信するためのマルチキャスト送信機能と、前記パケットデータを受信するためのマルチキャスト受信機能と、特定の前記コンピュータと1対1のユニキャスト接続でデータを送受信するためのデータ送受信機能と、コンピュータ間でのデータ送信に際し、少なくとも1以上の前記コンピュータを指定してユニキャスト接続で通信を確立させる通信確立機能と、前記通信確立機能により通信が確立した少なくとも1以上の前記コンピュータに対して、マルチキャスト又はユニキャストのいずれかでデータを通信するデータ通信機能と、を実行させることにより、サーバを介さないピアツーピア的なネットワーク形態の下に、データ送信時のネットワークトラフィックの軽減を図ることができるとともに、マルチキャスト通信の信頼性を向上させることができる。また、デジタル情報ファイルや表示情報ファイルとともに、マルチキャスト送信手段と、マルチキャスト受信手段と、コネクション型データ送受信手段とをコンピュータに実現させるプログラムが単一の文書としてカプセル化されるので、その取り扱いや管理を極めて容易にすることができる。
【0237】
請求項25記載の発明の記憶媒体によれば、請求項24記載のプログラムをコンピュータに実行させることにより、サーバを介さないピアツーピア的なネットワーク形態の下に、データ送信時のネットワークトラフィックの軽減を図ることができるとともに、マルチキャスト通信の信頼性を向上させることができる。また、デジタル情報ファイルや表示情報ファイルとともに、マルチキャスト送信手段と、マルチキャスト受信手段と、コネクション型データ送受信手段とをコンピュータに実現させるプログラムが単一の文書としてカプセル化されるので、その取り扱いや管理を極めて容易にすることができる。
【図面の簡単な説明】
【図1】 本発明の第一の実施の形態のカプセル化文書のデータ構造を示す模式図である。
【図2】 書庫ファイルのデータ構造の一例を示す模式図である。
【図3】 書庫ファイルの別のデータ構造の一例を示す模式図である。
【図4】 カプセル化文書に格納されているプログラムのデータ構造を示す模式図である。
【図5】 プログラムに含まれている拡張プログラム参照ファイルのデータ構造を示す模式図である。
【図6】 XMLによって記述されたカプセル化文書の一例を示す模式図である。
【図7】 図6に示すようにXMLで記述されたカプセル化文書の表示例を示す模式図である。
【図8】 パーソナル・コンピュータ(コンピュータ)のハードウェア構成図である。
【図9】 パーソナル・コンピュータ(コンピュータ)によるカプセル化文書の文書閲覧処理の流れを示すフローチャートである。
【図10】 メディアの種類と拡張プログラムとの対応関係を規定するファイルのファイル構造を示す模式図である。
【図11】 拡張プログラムによる動画画像である表示画像の静止画画像としての表示機能及びその再生機能を例示する模式図である。
【図12】 拡張プログラムによる音声再生機能及び再生音声のテキスト情報化機能を例示する模式図である。
【図13】 カプセル化文書に含ませる拡張プログラムの構造を示す模式図である。
【図14】 3つのデジタル情報(PRG1、PRG2、PRG3)を表示している文書表示例を示す模式図である。
【図15】 カプセル化文書が発揮する通信機能による通信処理の流れを示すフローチャートである。
【図16】 カプセル化文書が発揮する通信機能に係る各種手段を示すブロック図である。
【図17】 1対1のコンピュータ間でのカプセル化文書間における通信確立処理の流れを示すフローチャートである。
【図18】 要求パケットおよび受信応答パケットの内容を例示的に示す模式図である。
【図19】 四台のコンピュータ間での通信確立状態を示す模式図である。
【図20】 ホストに記憶保持されている情報を示す模式図である。
【図21】 通信確立確認処理の流れを示すフローチャートである。
【図22】 ディスプレイに表示される相手先情報を示す模式図である。
【図23】 送信確認通知の内容を示す模式図である。
【図24】 マルチキャストパケット送信時の通信成否表を示す模式図である。
【図25】 シーケンシャルナンバーとその送信命令内容を示す模式図である。
【図26】 送信元のホスト毎に記憶されたシーケンシャルナンバーとその送信命令内容を示す模式図である。
【図27】 環境フラグを加えたマルチキャストパケット送信時の通信成否表を示す模式図である。
【図28】 特定多数の中からさらに特定の相手を絞り込んでその特定の相手のみにデータを送信する際の処理の流れを示すフローチャートである。
【図29】 通信を確立している相手の中から特定の相手を選んでデータを送信する際の処理の流れを示すフローチャートである。
【図30】 ディスプレイに表示されるチェックボックス付きの相手先情報を示す模式図である。
【図31】 UDPで送信した場合における受信側のホストでの処理の流れを示すフローチャートである。
【図32】 公開鍵を含む通信相手先情報を示す模式図である。
【図33】 通信確立からデータ送信についての基本的な流れを概略的に示すデータ通信シーケンスである。
【図34】 会議システムにおいてディスプレイに表示されたデジタル文書を示す模式図である。
【図35】 通信状態になったデジタル文書を示す模式図である。
【図36】 本発明の第二の実施の形態のデータ受信情報を示す模式図である。
【図37】 本発明の第三の実施の形態のデータ通信処理の流れを示すフローチャートである。
【符号の説明】
1 コンピュータ
4,5 記憶部
6 記憶媒体
7 ネットワーク
20 マルチキャスト送信手段
21 マルチキャスト受信手段
22 コネクション型データ送受信手段
101 カプセル化文書
102 表示情報ファイル
103,104 デジタル情報ファイル
105 動作プログラムファイル
Claims (25)
- 相互にネットワーク接続された複数のコンピュータ間でパケットデータを送受信するデータ通信方法であって、
表現実体であるデジタル情報ファイルと、前記表現実体の表示状態を特定する表示情報ファイルと、前記表現実体の表示や各種の機能を実行するプログラムを含む動作プログラムファイルと、を単一の文書としてカプセル化したカプセル化文書における前記動作プログラムファイルの前記プログラムを、コンピュータに読み取らせることにより、
パケットデータを特定多数のコンピュータに対してマルチキャスト送信するためのマルチキャスト送信手段と、
前記パケットデータを受信するためのマルチキャスト受信手段と、
特定の前記コンピュータと1対1のユニキャスト接続でデータを送受信するためのデータ送受信手段と、を前記各コンピュータに具備させ、
コンピュータ間でのデータ送信に際し、少なくとも1以上の前記コンピュータを指定してユニキャスト接続で通信を確立する通信確立ステップと、
前記通信確立ステップにより通信が確立した少なくとも1以上の前記コンピュータに対して、マルチキャスト又はユニキャストのいずれかでデータを通信するデータ通信ステップと、をコンピュータで実現させることを特徴とするデータ通信方法。 - 相互にネットワーク接続された複数のコンピュータ間でパケットデータを送受信するデータ通信方法であって、
パケットデータを特定多数のコンピュータに対してマルチキャスト送信するためのマルチキャスト送信手段と、
前記パケットデータを受信するためのマルチキャスト受信手段と、
特定の前記コンピュータと1対1のユニキャスト接続でデータを送受信するためのデータ送受信手段と、を前記各コンピュータに具備させ、
コンピュータ間でのデータ送信に際し、少なくとも1以上の前記コンピュータを指定してユニキャスト接続で通信を確立する通信確立ステップは、
一のコンピュータの前記マルチキャスト送信手段を用いてハンドシェイク相手を特定するための前記パケットデータである要求パケットを送信する要求信号送信ステップと、
送信されてきた前記要求パケットを他のコンピュータが前記マルチキャスト受信手段を用いて受け取る要求信号受信ステップと、
前記要求パケットを受け取った前記他のコンピュータが、前記データ送受信手段を用いて前記要求パケットを送信してきた前記一のコンピュータとのコネクションを確定するコネクション確定ステップとからなり、
前記通信確立ステップにより通信が確立した少なくとも1以上の前記コンピュータに対して、マルチキャスト又はユニキャストのいずれかでデータを通信するデータ通信ステップと、をコンピュータで実現させることを特徴とするデータ通信方法。 - 前記マルチキャスト送信手段及び前記マルチキャスト受信手段のトランスポート層プロトコルはUDP( User Datagram Protocol )で、前記データ送受信手段のトランスポート層プロトコルはTCP( Transmission Control Protocol )/IPであることを特徴とする請求項1又は2記載のデータ通信方法。
- 前記要求パケットは、当該要求パケットを送信する前記一のコンピュータに係る属性情報と前記他のコンピュータに対する処理要求を特定する処理要求IDとを含むことを特徴とする請求項2又は3記載のデータ通信方法。
- 前記一のコンピュータに係る属性情報は、少なくとも当該コンピュータのネットワークアドレスを有していることを特徴とする請求項4記載のデータ通信方法。
- 前記要求信号受信ステップは、受け取った前記要求パケットの内容を要求パケット送信先情報として前記要求パケットを受け取った前記コンピュータの記憶部に記憶する要求パケット送信先記憶ステップを含むことを特徴とする請求項4又は5記載のデータ通信方法。
- 前記コネクション確定ステップは、コネクションが確定した場合に、コネクションが確定した前記他のコンピュータに係る属性情報を通信相手先情報として前記要求パケットを送信した前記一のコンピュータの記憶部に記憶する通信相手先記憶ステップを含むことを特徴とする請求項2記載のデータ通信方法。
- 前記他のコンピュータに係る属性情報は、少なくとも当該コンピュータのネットワークアドレスを有していることを特徴とする請求項4記載のデータ通信方法。
- 前記要求パケットを送信した前記一のコンピュータの記憶部に記憶された前記通信相手先情報を報知する通信確立相手報知ステップを含むことを特徴とする請求項8記載のデータ通信方法。
- 意図した前記コンピュータとのコネクションが確定していない場合、コネクションが確定していない前記コンピュータに対して前記一のコンピュータの前記データ送受信手段を用いて前記要求パケットを送信してコネクションを確定する要求信号再送信ステップを含むことを特徴とする請求項9記載のデータ通信方法。
- 前記データ通信ステップは、
前記一のコンピュータの前記マルチキャスト送信手段を用い、通信が確立している前記他のコンピュータに対して前記データを送信するデータ送信ステップと、
送信されてきた前記データを前記他のコンピュータが前記マルチキャスト受信手段を用いて受け取るデータ受信ステップと、
前記一のコンピュータの前記データ送受信手段を用いて前記データが前記他のコンピュータに確実に送信されたか否かを判定するデータ送信判定ステップと、
を含むことを特徴とする請求項1又は2記載のデータ通信方法。 - 前記データ送信判定ステップは、
前記一のコンピュータの前記データ送受信手段を用い、通信が確立している前記他のコンピュータに対してデータを送信した旨を伝える送信通知パケットを送信する送信通知送信ステップと、
送信されてきた前記送信通知パケットを前記他のコンピュータが前記データ送受信手段を用いて受け取る送信通知受信ステップと、
送信されてきた前記送信通知パケットに従って前記データが前記他のコンピュータに確実に送信されたか否かをチェックする送信状況チェックステップと、
少なくとも前記チェック結果がデータ未送信であった場合には、そのチェック結果を前記他のコンピュータの前記データ送受信手段を用いて前記一のコンピュータに対して送信する結果送信ステップと、
送信されてきた前記チェック結果を前記一のコンピュータの前記データ送受信手段を用いて受信する結果受信ステップと、
を含むことを特徴とする請求項11記載のデータ通信方法。 - 前記データ送信判定ステップの判定結果がデータ未送信であった前記コンピュータに対して、前記一のコンピュータの前記データ送受信手段を用い、当該コンピュータに対して前記データを再度送信する第1のデータ再送信ステップを含むことを特徴とする請求項11記載のデータ通信方法。
- 前記データ送信判定ステップの判定結果がデータ未送信であった前記コンピュータに対して、前記一のコンピュータの前記マルチキャスト送信手段を用い、通信が確立している前記他のコンピュータに対して前記データを再度送信する第2のデータ再送信ステップを含むことを特徴とする請求項11記載のデータ通信方法。
- 前記一のコンピュータの前記データ送受信手段を用い、通信が確立している前記他のコンピュータに対してデータを送信した旨を伝える送信通知パケットを送信する再送信通知送信ステップを含むことを特徴とする請求項14記載のデータ通信方法。
- 前記通信相手先記憶ステップで前記一のコンピュータの記憶部に記憶された前記通信相手先情報には、前記カプセル化文書に含まれる前記文書タイトルを含み、
前記通信相手先情報を参照して同一の前記文書タイトルを有する前記他のコンピュータを特定し、その特定された前記他のコンピュータにのみデータを送信する第1の特定相手データ送信ステップを含むことを特徴とする請求項7記載のデータ通信方法。 - 前記通信相手先記憶ステップで前記一のコンピュータの記憶部に記憶された前記通信相手先情報を参照して所望の前記他のコンピュータを特定し、その特定された前記他のコンピュータに向けてデータを送信する第2の特定相手データ送信ステップを含むことを特徴とする請求項7記載のデータ通信方法。
- 前記第2の特定相手データ送信ステップにおける前記データの送信は、特定された前記他のコンピュータのみに前記データ送受信手段を用いて送ることを特徴とする請求項17記載のデータ通信方法。
- 前記第2の特定相手データ送信ステップにおける前記データの送信は、特定された前記他のコンピュータ向けという情報を含めて前記マルチキャスト送信手段を用いて送ることを特徴とする請求項17記載のデータ通信方法。
- 前記他のコンピュータが通信環境が悪いネットワーク経路に位置するか否かを判定するネットワーク環境判定ステップと、
このネットワーク環境判定ステップにより通信環境が悪いネットワーク経路に位置すると判定された前記他のコンピュータのコンピュータに対しては、前記一のコンピュータの前記データ送受信手段を用いて前記データを送信する悪環境相手データ送信ステップと、を含むことを特徴とする請求項11記載のデータ通信方法。 - 前記ネットワーク環境判定ステップにおける通信環境が悪いネットワーク経路に位置するか否かの判定は、前記データ送信判定ステップにおける判定結果に基づくことを特徴とする請求項20記載のデータ通信方法。
- 送信する前記データを暗号化する暗号化ステップと、
受信した暗号化された前記データを復号する復号化ステップと、
を含むことを特徴とする請求項1〜21のいずれか一つに記載のデータ通信方法。 - 他のコンピュータとネットワーク接続されるコンピュータにおいて、
前記コンピュータは、表現実体であるデジタル情報ファイルと、前記表現実体の表示状態を特定する表示情報ファイルと、前記表現実体の表示や各種の機能を実行するプログラムを含む動作プログラムファイルと、を単一の文書としてカプセル化したカプセル化文書における前記動作プログラムファイルの前記プログラムを実行して、
パケットデータを特定多数のコンピュータに対してマルチキャスト送信するためのマルチキャスト送信手段と、
前記パケットデータを受信するためのマルチキャスト受信手段と、
特定の前記コンピュータと1対1のユニキャスト接続でデータを送受信するためのデータ送受信手段と、を前記コンピュータに具備させ、
コンピュータ間でのデータ送信に際し、少なくとも1以上のコンピュータを指定して前記データ送受信手段で通信を確立する通信確立ステップと、
前記通信確立ステップにより通信が確立した少なくとも1以上のコンピュータに対して、マルチキャスト送信手段、マルチキャスト受信手段又はデータ送受信手段のいずれかでデータを通信するデータ通信ステップと、を実行することを特徴とするコンピュータ。 - 他のコンピュータと相互にネットワーク接続されるコンピュータに実行される、表現実体であるデジタル情報ファイルと、前記表現実体の表示状態を特定する表示情報ファイルと、前記表現実体の表示や各種の機能を実行するプログラムを含む動作プログラムファイルと、を単一の文書としてカプセル化したカプセル化文書における前記動作プログラムファイル内のプログラムであって、
パケットデータを特定多数のコンピュータに対してマルチキャスト送信するためのマルチキャスト送信機能と、
前記パケットデータを受信するためのマルチキャスト受信機能と、
特定の前記コンピュータと1対1のユニキャスト接続でデータを送受信するためのデータ送受信機能と、
コンピュータ間でのデータ送信に際し、少なくとも1以上の前記コンピュータを指定してユニキャスト接続で通信を確立させる通信確立機能と、
前記通信確立機能により通信が確立した少なくとも1以上の前記コンピュータに対して、マルチキャスト又はユニキャストのいずれかでデータを通信するデータ通信機能と、を実行させることを特徴とするプログラム。 - 請求項24記載のプログラムを格納したコンピュータに読み取り可能な記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002082056A JP3920675B2 (ja) | 2002-03-22 | 2002-03-22 | データ通信方法、コンピュータ、プログラム及び記憶媒体 |
US10/372,960 US7533185B2 (en) | 2002-03-22 | 2003-02-26 | Data communication method, system and program using unicast and multicast communications |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002082056A JP3920675B2 (ja) | 2002-03-22 | 2002-03-22 | データ通信方法、コンピュータ、プログラム及び記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003283559A JP2003283559A (ja) | 2003-10-03 |
JP3920675B2 true JP3920675B2 (ja) | 2007-05-30 |
Family
ID=28035751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002082056A Expired - Fee Related JP3920675B2 (ja) | 2002-03-22 | 2002-03-22 | データ通信方法、コンピュータ、プログラム及び記憶媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7533185B2 (ja) |
JP (1) | JP3920675B2 (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3920675B2 (ja) | 2002-03-22 | 2007-05-30 | 株式会社リコー | データ通信方法、コンピュータ、プログラム及び記憶媒体 |
WO2004077741A1 (ja) * | 2003-02-06 | 2004-09-10 | Matsushita Electric Industrial Co., Ltd. | 情報伝達システム、情報伝達方法、電気機器通信装置、情報通信装置及び通信制御プログラム |
US8825356B2 (en) | 2003-05-09 | 2014-09-02 | Dimitri Vorona | System for transmitting, processing, receiving, and displaying traffic information |
US7440842B1 (en) * | 2003-05-09 | 2008-10-21 | Dimitri Vorona | System for transmitting, processing, receiving, and displaying traffic information |
JP4059214B2 (ja) * | 2004-03-04 | 2008-03-12 | ソニー株式会社 | 情報再生システムの制御方法、情報再生システム、情報提供装置、および情報提供プログラム |
JP2005300470A (ja) * | 2004-04-15 | 2005-10-27 | Denso Corp | 積層型ガスセンサ素子の製造方法 |
JP2006059319A (ja) * | 2004-07-21 | 2006-03-02 | Ricoh Co Ltd | 情報処理装置、プログラムおよび記憶媒体 |
GB2418320B (en) * | 2004-09-15 | 2007-09-19 | Motorola Inc | A communication system and method of call group management therefor |
KR100717239B1 (ko) * | 2005-06-22 | 2007-05-11 | 엔에이치엔(주) | 동일한 멀티캐스트 그룹에 속하는 구성원 서버들 간의신뢰성 있는 통신을 제공하기 위한 방법 및 장치 |
JP2007041702A (ja) * | 2005-08-01 | 2007-02-15 | Ricoh Co Ltd | カプセル化文書構造及びウェブサーバ機能を有する文書の作成方法 |
JP2007114879A (ja) * | 2005-10-18 | 2007-05-10 | Ricoh Co Ltd | 構造化文書、端末装置、構造化文書の作成プログラム及び構造化文書の作成装置 |
JP2007122609A (ja) * | 2005-10-31 | 2007-05-17 | Ricoh Co Ltd | 構造化文書、コンテンツ配信サーバ装置及びコンテンツ配信システム |
US20080040489A1 (en) * | 2006-07-10 | 2008-02-14 | International Business Machines Corporation | Method of assigning applications to specific network interfaces |
US8429389B2 (en) * | 2007-01-16 | 2013-04-23 | Bally Gaming, Inc. | ROM BIOS based trusted encrypted operating system |
US20080222100A1 (en) * | 2007-03-08 | 2008-09-11 | Fu-Sheng Chiu | Internet forum management method |
JP4935658B2 (ja) * | 2007-12-11 | 2012-05-23 | ブラザー工業株式会社 | ブラウザプログラムおよび情報処理装置 |
JP5549149B2 (ja) * | 2009-08-25 | 2014-07-16 | 富士電機株式会社 | データ共有システム、データ共有方法、データ共有プログラム |
US9198225B2 (en) * | 2009-12-18 | 2015-11-24 | Nokia Technologies Oy | Ad-hoc surveillance network |
US10142383B2 (en) * | 2012-02-16 | 2018-11-27 | 1974 Productions, Inc. | Method for delivering music content to a smart phone |
US9088612B2 (en) * | 2013-02-12 | 2015-07-21 | Verizon Patent And Licensing Inc. | Systems and methods for providing link-performance information in socket-based communication devices |
JP2016099813A (ja) * | 2014-11-21 | 2016-05-30 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法、及びプログラム |
US10051436B2 (en) * | 2015-02-09 | 2018-08-14 | Gilat Satellite Networks Ltd. | Compression with multicast dictionary |
JP6561656B2 (ja) | 2015-07-29 | 2019-08-21 | 株式会社リコー | 端末およびマルチキャスト・アドレス配布サーバ |
JP2017200080A (ja) * | 2016-04-28 | 2017-11-02 | 株式会社リコー | ネットワーク会議システム、端末、接続方式決定プログラムおよび接続方式決定方法 |
WO2018070493A1 (en) * | 2016-10-14 | 2018-04-19 | Ricoh Company, Ltd. | Information processing system, information processing apparatus, and screen-sharing terminal controlling method |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US246897A (en) * | 1881-09-13 | martin | ||
US234234A (en) * | 1880-11-09 | Watch-case | ||
JP2586931B2 (ja) | 1988-07-07 | 1997-03-05 | 株式会社リコー | カメラの測距装置 |
JPH02222806A (ja) | 1989-02-23 | 1990-09-05 | Ricoh Co Ltd | 多点測距装置 |
JPH05207023A (ja) * | 1992-01-24 | 1993-08-13 | Hitachi Ltd | 大量データ伝送方法 |
JP3343697B2 (ja) | 1992-12-31 | 2002-11-11 | 株式会社リコー | 合焦状態又は被写体距離検出装置 |
US5594872A (en) * | 1993-04-27 | 1997-01-14 | Hitachi, Ltd. | Method of communicating messages in a distributed processing system |
US5553083B1 (en) * | 1995-01-19 | 2000-05-16 | Starburst Comm Corp | Method for quickly and reliably transmitting frames of data over communications links |
JP3353865B2 (ja) | 1995-06-09 | 2002-12-03 | 株式会社リコー | 測距装置 |
US6209004B1 (en) * | 1995-09-01 | 2001-03-27 | Taylor Microtechnology Inc. | Method and system for generating and distributing document sets using a relational database |
US5963547A (en) * | 1996-09-18 | 1999-10-05 | Videoserver, Inc. | Method and apparatus for centralized multipoint conferencing in a packet network |
JP2982728B2 (ja) * | 1996-12-06 | 1999-11-29 | 日本電気株式会社 | アプリケーション共有システム |
JP3704238B2 (ja) | 1997-03-31 | 2005-10-12 | 株式会社リコー | 撮像装置 |
US6138144A (en) * | 1997-06-24 | 2000-10-24 | At&T Corp. | Method for managing multicast addresses for transmitting and receiving multimedia conferencing information on an internet protocol (IP) network implemented over an ATM network |
JPH1117713A (ja) | 1997-06-25 | 1999-01-22 | Hitachi Ltd | マルチキャスト通信処理方式 |
US6006254A (en) | 1997-08-29 | 1999-12-21 | Mitsubishi Electric Information Technology Center America, Inc. | System for the reliable, fast, low-latency communication of object state updates over a computer network by combining lossy and lossless communications |
US6029200A (en) * | 1998-03-09 | 2000-02-22 | Microsoft Corporation | Automatic protocol rollover in streaming multimedia data delivery system |
JP2000022687A (ja) | 1998-06-30 | 2000-01-21 | Meidensha Corp | 広域監視システム |
US6466550B1 (en) * | 1998-11-11 | 2002-10-15 | Cisco Technology, Inc. | Distributed conferencing system utilizing data networks |
DE69936834T2 (de) * | 1999-01-29 | 2008-05-21 | International Business Machines Corp. | Konferenzsystem |
US6577599B1 (en) * | 1999-06-30 | 2003-06-10 | Sun Microsystems, Inc. | Small-scale reliable multicasting |
JP2001111619A (ja) * | 1999-10-12 | 2001-04-20 | Sony Corp | 送信装置、通信システム及びその通信方法 |
US7139813B1 (en) * | 1999-11-01 | 2006-11-21 | Nokia Networks Oy | Timedependent hyperlink system in videocontent |
US6832367B1 (en) * | 2000-03-06 | 2004-12-14 | International Business Machines Corporation | Method and system for recording and replaying the execution of distributed java programs |
EP1133101A1 (en) * | 2000-03-07 | 2001-09-12 | BRITISH TELECOMMUNICATIONS public limited company | Data distribution |
JP2004531780A (ja) * | 2000-06-22 | 2004-10-14 | マイクロソフト コーポレーション | 分散型コンピューティングサービスプラットフォーム |
WO2002017574A1 (fr) * | 2000-08-24 | 2002-02-28 | Matsushita Electric Industrial Co., Ltd. | Procede et dispositif de transmission/reception |
WO2002060149A2 (en) * | 2001-01-26 | 2002-08-01 | Placeware, Inc. | A method and apparatus for automatically determining an appropriate transmission method in a network |
US7328240B2 (en) * | 2001-06-28 | 2008-02-05 | Intel Corporation | Distributed multipoint conferencing |
US7299304B2 (en) * | 2001-11-20 | 2007-11-20 | Intel Corporation | Method and architecture to support interaction between a host computer and remote devices |
JP3920675B2 (ja) | 2002-03-22 | 2007-05-30 | 株式会社リコー | データ通信方法、コンピュータ、プログラム及び記憶媒体 |
US7191241B2 (en) * | 2002-09-27 | 2007-03-13 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
US20050071459A1 (en) * | 2003-09-26 | 2005-03-31 | Jose Costa-Requena | System, apparatus, and method for providing media session descriptors |
-
2002
- 2002-03-22 JP JP2002082056A patent/JP3920675B2/ja not_active Expired - Fee Related
-
2003
- 2003-02-26 US US10/372,960 patent/US7533185B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20030182446A1 (en) | 2003-09-25 |
JP2003283559A (ja) | 2003-10-03 |
US7533185B2 (en) | 2009-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3920675B2 (ja) | データ通信方法、コンピュータ、プログラム及び記憶媒体 | |
US10326807B2 (en) | Method and software for enabling n-way collaborative work over a network of computers | |
US7908325B1 (en) | System and method for event-based collaboration | |
JP4467220B2 (ja) | 音声インスタント・メッセージング | |
JP5929305B2 (ja) | 通信システム、サーバ、端末、プログラム | |
US6151619A (en) | Method and apparatus for maintaining configuration information of a teleconference and identification of endpoint during teleconference | |
US7167897B2 (en) | Accessories providing a telephone conference application one or more capabilities independent of the teleconference application | |
JP4173517B2 (ja) | コンピューティング・ネットワークとリモート装置との間のバーチャル・プライベート・ネットワーク | |
JP2013524632A (ja) | ネットワークノード間のネットワーク通信の管理及びストリームトランスポートプロトコル | |
US20140245185A1 (en) | Electronic Information Collaboration System | |
US20150120827A1 (en) | Systems and computer program products and methods and media for operating a scalable, private practice tele-consultation service | |
US20050071430A1 (en) | Network information processing system and information processing method | |
JP5632817B2 (ja) | 協調ウィンドウ内へのツールの埋め込み | |
JP2004046855A (ja) | データを提示する方法及び投影システム | |
CN111885252A (zh) | 一种手机扩展使用方法 | |
US20070011232A1 (en) | User interface for starting presentations in a meeting | |
JP2003044429A (ja) | コラボレーション用の端末、コラボレーションシステム及びコラボレーション方法 | |
US20060155811A1 (en) | System and method for mobile e-mail management | |
JP2007074035A (ja) | 通信機器および情報処理方法 | |
JP2004334721A (ja) | コンテンツ提供装置および提供されたコンテンツを閲覧する装置 | |
JP4779475B2 (ja) | 電子掲示板情報通知装置 | |
JP2003273898A (ja) | 通信システム及び通信方法 | |
Ma et al. | A P2P groupware system with decentralized topology for supporting synchronous collaborations | |
US7721215B2 (en) | Information processing apparatus, information processing method, recording medium, and program | |
JP2006018430A (ja) | 情報処理装置、ネットワークシステム、プログラム、データ構造及び記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20041006 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041227 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20050831 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061031 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061227 |
|
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: 20070213 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070215 |
|
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: 20110223 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120223 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130223 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130223 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140223 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |