(57)【要約】【課題】  ネットワーク上の各装置が実行する処理のシーケンスを共通化できるようにする。【解決手段】  操作情報取得手段２１は、入力装置１６の操作による操作情報を取得する。この操作情報の取得がなされたときは、操作情報を表示装置１７の画面表示の内容に反映させることなく、情報送信手段２２は、当該操作情報を少なくとも本装置２を含めたネットワーク３上の装置に送信することをネットワーク３に指示してネットワークインターフェイス１１を介して当該操作情報を送信する。情報受信手段２３は、送信した操作情報をネットワークインターフェイス１１を介してネットワーク３から受信する。操作情報反映手段２４は、この受信した操作情報を表示装置１７の出力の内容に反映させる。【選択図】    図１
2006018430.tif 000002
【特許請求の範囲】
【請求項１】
外部のネットワークと通信を行なう通信インターフェイスと、
入力装置と、
出力装置と、
前記入力装置の操作がなされたときは当該操作による操作情報を少なくとも本装置を含めた前記ネットワーク上の装置に送信することを前記ネットワークに指示して前記通信インターフェイスを介して当該操作情報を送信する手段と、
を備えている情報処理装置。
【請求項２】
外部のネットワークと通信を行なう通信インターフェイスと、
入力装置と、
出力装置と、
前記入力装置の操作による操作情報を取得する手段と、
この操作情報の取得がなされたときは、当該操作情報を少なくとも本装置を含めた前記ネットワーク上の装置に送信することを前記ネットワークに指示して前記通信インターフェイスを介して当該操作情報を送信する手段と、
前記操作情報を前記通信インターフェイスを介して前記ネットワークから受信する手段と、
この受信した操作情報を用いてはじめて操作情報を前記出力装置の出力の内容に反映させる手段と、
を備えている情報処理装置。
【請求項３】
前記ネットワークを介してデータの送受信が行なえるか否かを検査する手段をさらに備え、
前記送信する手段は、前記検査により前記送受信が行なえないときは、前記ネットワークへの指示を行なうことなく前記操作情報を前記反映させる手段に渡して当該操作情報を前記出力装置の出力の内容に反映させる、請求項２に記載の情報処理装置。
【請求項４】
前記送信する手段は、前記操作情報を少なくとも本装置を含めた前記ネットワーク上の装置に送信することを前記ネットワークでのブロードキャストにより行なうことを前記ネットワークに指示する、請求項２又は３に記載の情報処理装置。
【請求項５】
前記取得する手段で取得した操作情報を前記送信の前に暗号化する手段と、
この暗号化された操作情報を復号化する手段と、
をさらに備えている請求項２〜４のいずれかの一に記載の情報処理装置。
【請求項６】
前記送信を行なおうとする前記操作情報に署名する手段と、
この署名がなされた操作情報の当該署名を確認する手段と、
をさらに備えている請求項２〜５のいずれかの一に記載の情報処理装置。
【請求項７】
前記送信する手段は、前記取得する手段で取得した複数の前記操作情報を一度で送信する、請求項２〜６のいずれかの一に記載の情報処理装置。
【請求項８】
請求項１〜７のいずれかの一に記載の情報処理装置が複数台接続され、Peer to Peerで情報の送受信を行なう、ネットワークシステム。
【請求項９】
前記送信する手段は前記操作情報の送信を前記ネットワーク上の所定の装置に送信する請求項１〜７のいずれかの一に記載の情報処理装置が１又は複数台接続され、
前記所定の装置は、
前記操作情報を受信する手段と、
この受信した操作情報に応じて所定のデータを前記指示に含まれる前記操作情報の送信先の前記情報処理装置を含めた前記ネットワーク上の装置に送信することを前記ネットワークに指示して送信する手段と、
を備え、
Peer to Peerで情報の送受信を行なう、
ネットワークシステム。
【請求項１０】
コンピュータの入力装置の操作がなされたときは当該操作による操作情報を少なくとも前記コンピュータを含めたネットワーク上の装置に送信することを前記ネットワークに指示して前記コンピュータの通信インターフェイスを介して当該操作情報を送信する手段を、前記コンピュータに実行させる前記コンピュータに読み取り可能なプログラム。
【請求項１１】
前記コンピュータの入力装置の操作による操作情報を取得する手段と、
この操作情報の取得がなされたときは当該操作情報を前記コンピュータの出力装置の出力の内容に反映させることなく、当該操作情報を少なくとも前記コンピュータを含めたネットワーク上の装置に送信することを前記ネットワークに指示して前記コンピュータの通信インターフェイスを介して当該操作情報を送信する手段と、
前記操作情報を前記通信インターフェイスを介して前記ネットワークから受信する手段と、
この受信した操作情報を前記コンピュータの出力装置の出力の内容に反映させる手段と、
を前記コンピュータに実行させる前記コンピュータに読み取り可能なプログラム。
【請求項１２】
前記ネットワークを介してデータの送受信が行なえるか否かを検査する手段をさらにコンピュータに実行させ、
前記送信する手段は、前記検査により前記送受信が行なえないときは、前記ネットワークへの指示を行なうことなく前記操作情報を前記反映させる手段に渡して当該操作情報を前記出力装置の出力の内容に反映させる、請求項１１に記載のプログラム。
【請求項１３】
前記送信する手段は、前記操作情報を少なくとも本装置を含めた前記ネットワーク上の装置に送信することを前記ネットワークでのブロードキャストにより行なうことを前記ネットワークに指示する、請求項１１又は１２に記載のプログラム。
【請求項１４】
前記取得する手段で取得した操作情報を前記送信の前に暗号化する手段と、
この暗号化された操作情報を復号化する手段と、
をさらに前記コンピュータに実行させる請求項１１〜１３のいずれかの一に記載のプログラム。
【請求項１５】
前記送信を行なおうとする前記操作情報に署名する手段と、
この署名がなされた操作情報の当該署名を確認する手段と、
をさらに前記コンピュータに実行させる請求項１１〜１４のいずれかの一に記載のプログラム。
【請求項１６】
前記送信する手段は、前記取得する手段で取得した複数の前記操作情報を一度で送信する、請求項１１〜１５のいずれかの一に記載のプログラム。
【請求項１７】
情報コンテンツと、
この情報コンテンツをコンピュータ上で動作させるため第１のプログラムと、
本データの構造を規定する構造ファイルと、
請求項１０〜１６のいずれかの一に記載のプログラムである第２のプログラムと、
を備えているデータ構造。
【請求項１８】
請求項１０〜１６のいずれかの一に記載のプログラム又は請求項１７のデータを記憶している、記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
特許文献１には、ネットワークを介して接続された複数のコンピュータが、画面を共有することにより共同して作業を行なう画面共有システムが開示され、これは、各共有端末において操作した内容の表示結果に不一致が発生することをなくすことを目的としている。
【０００２】
特許文献２には、複数の通信端末と、１台または複数のＷｅｂサーバが接続されたネットワークで、Ｗｅｂサーバ上にあるＷｅｂページを複数の端末で共有を行なうＷｅｂ共有システムについて開示されており、複数の共有されたＷｅｂページの同時表示を可能とする。
【０００３】
特許文献３には、サーバからクライアントに配信するデータの情報量を少なくすることで、情報配信時間を短くし、クライアントの同期の整合がとれるようにする技術が開示されている。
【０００４】
特許文献４には、ネットワークを介して同じものを見ながら様々なコンテンツに対する一方の操作が他方に同期して操作が伝わる共同作業を可能にする技術が開示されている。これは、ＷＷＷブラウザの操作情報を他方に送信することで同期を実現するものである。
【０００５】
また、カプセル化文書に関する技術が、特許文献５，６などに開示されている。
【０００６】
【特許文献１】特開２００１−２７３２１９公報
【特許文献２】特開２００３−３０１２１公報
【特許文献３】特開２００３−３７８３０公報
【特許文献４】特開２００３−３２３３８６公報
【特許文献５】特開２００３−９９２６３公報
【特許文献６】特開２００３−９９４２４公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
インターネット、有線や無線のＬＡＮなど、ネットワーク環境が整備され、様々なシステムや装置がネットワークに接続するのが当たり前になっている。そして、ネットワークを介して情報をやりとりするプログラムはさまざまな形態のものが知られている。例えば、チャット、E-mail、グループウエア、Ｗｅｂブラウザ、Ｗｅｂサーバアプリケーション、Ｗｅｂサービスなどである。
【０００８】
このような状況で、ローカルマシン上のみで動作するアプリケーションも多いが、ネットワークに接続し、他のプログラムと情報をやりとりする等して何らかの動作をするプログラムが急速に増えてきており、その形態は多様化している。現段階では、ネットワークを利用しないローカル型、処理能力の大きなマシンを複数のマシンで利用するクライアント・サーバ型、そのサーバ同士が複数で協調して動作を行う分散処理型、複数のマシンが対等な関係で情報のやりとりを行うPeer to Peer（Ｐ２Ｐ）型、複数のマシンを効率よく使用することを目的としたグリットコンピューティング型、などが挙げられる。
【０００９】
これらの形態は、開発されるアプリケーションの用途によって選択される。例えば、他のネットワーク上のプログラムと全く情報のやりとりを行わないのであればローカル型、Ｗｅｂ関連はクライアント・サーバ型、１台のサーバに負担をかけないようにするには分散処理型、サーバレスにして管理コストを下げたい場合などにはＰ２Ｐ型、遊休リソースを効率よく使ってシミュレーションなどをする場合はグリッド型、といったようにである。
【００１０】
ここで、Peer AとPeer B、どちらかのPeerのユーザ操作を基にして両方のPeerを同期させ、同じ画像を表示させるＰ２Ｐ型のプログラムを考えた場合、現状では、例えばPeer Aにおいてユーザ操作により画像表示コマンドが実行される場合、Peer Aにおける画像表示は、ユーザ操作情報をすぐさま表示に反映するローカル型のプログラムと同じように行い、別の命令もしくはプロセスでPeer Bに対して「画像表示」のコマンドを送信し、Peer Bがそれを受信し、コマンドを解釈、反映することによってPeerどうしの同期をとるようにしている。
【００１１】
しかしながら、このような処理では、自Peerにユーザ操作による情報を伝達する場合と、他のPeerにその情報を伝達する場合とで、二つの別の処理を行うことになる。この自Peerに画像を画面表示させる処理と、他Peerに画像を画面表示させる処理とは、画像表示という意味では実質的には同じ処理にも関わらず、わざわざ別の処理を行わせていると考えることができる。
【００１２】
これを両者間で同じ処理になるようにするためには、例え自Peerでローカル型の処理を行う場合であっても、一度ネットワークに自分宛にデータを送信し、これによりネットワークから受信したデータを解釈、その結果を画面表示に反映させるようにする必要があり、これにより、自Peerと他Peerを意識しない実装が可能になる。
【００１３】
また、このようにすれば、一旦ネットワーク上にデータを送信するため、そのデータを加工したり、別の形に変換したりといったような所謂サービスの構築も容易になり、さらには、多地点でのデータの収集結果を、一旦ネットワークを介してサービスへ送信し、結果を取得するということも可能である。つまり、今後増えてくると思われるＷｅｂサービスを利用し、あるいは、分散環境でのデータの収集、解析などを容易に行えるようになる。
【００１４】
このように、Ｐ２Ｐ型であっても、自プログラムに反映すべきデータを一旦ネットワークへ送信し、これによりネットワークから受信した情報に基づいて処理を行うことによって、自プログラムや他プログラムでの処理を同じにできるので、実装が一本化され、開発が容易になるだけでなく、プログラム間の連携や、今後普及していくと考えられるPeer to Peerのアプリケーションの構築や、ネットワーク上のサービスの利用などにおいても威力を発揮すると考えられる。
【００１５】
これに対して、特許文献１，２，４の技術は、一旦ネットワークへ自分宛も含むデータを送信し、これによりネットワークから受信した情報に基づいて画像に表示を行なう点について開示されていない。
【００１６】
また、特許文献３の技術は、データのネットワークへの送信側が画像の表示をすることはなく、一旦ネットワークへ自分宛にデータを送信し、これによりネットワークから受信した情報に基づいて画像に表示を行なう技術については開示されていないといえる。
【００１７】
このように、従来技術は、いずれも、データを一旦ネットワークへ送信し、これによりネットワークから受信した情報に基づいて画像の表示を行う構成にはなっておらず、ローカルマシンの表示シーケンスとリモートマシンへ表示させるシーケンスとが別々になっている。
【００１８】
本発明の目的は、ネットワーク上の各装置が実行する処理のシーケンスを共通化できるようにすることである。
【課題を解決するための手段】
【００１９】
本発明は、外部のネットワークと通信を行なう通信インターフェイスと、入力装置と、出力装置と、前記入力装置の操作がなされたときは当該操作による操作情報を少なくとも本装置を含めた前記ネットワーク上の装置に送信することを前記ネットワークに指示して前記通信インターフェイスを介して当該操作情報を送信する手段と、を備えている情報処理装置である。
【００２０】
別の面から見た本発明は、外部のネットワークと通信を行なう通信インターフェイスと、入力装置と、出力装置と、前記入力装置の操作による操作情報を取得する手段と、この操作情報の取得がなされたときは当該操作情報を前記出力装置の出力の内容に反映させることなく、当該操作情報を少なくとも本装置を含めた前記ネットワーク上の装置に送信することを前記ネットワークに指示して前記通信インターフェイスを介して当該操作情報を送信する手段と、前記操作情報を前記通信インターフェイスを介して前記ネットワークから受信する手段と、この受信した操作情報を前記出力装置の出力の内容に反映させる手段と、を備えている情報処理装置である。
【００２１】
別の面から見た本発明は、コンピュータの入力装置の操作がなされたときは当該操作による操作情報を少なくとも前記コンピュータを含めたネットワーク上の装置に送信することを前記ネットワークに指示して前記コンピュータの通信インターフェイスを介して当該操作情報を送信する手段を、前記コンピュータに実行させる前記コンピュータに読み取り可能なプログラムである。
【００２２】
別の面から見た本発明は、前記コンピュータの入力装置の操作による操作情報を取得する手段と、この操作情報の取得がなされたときは当該操作情報を前記コンピュータの出力装置の出力の内容に反映させることなく、当該操作情報を少なくとも前記コンピュータを含めたネットワーク上の装置に送信することを前記ネットワークに指示して前記コンピュータの通信インターフェイスを介して当該操作情報を送信する手段と、前記操作情報を前記通信インターフェイスを介して前記ネットワークから受信する手段と、この受信した操作情報を前記コンピュータの出力装置の出力の内容に反映させる手段と、を前記コンピュータに実行させる前記コンピュータに読み取り可能なプログラムである。
【発明の効果】
【００２３】
本発明によれば、ユーザが入力装置を操作しても、その操作情報は直ちに出力装置の出力の内容に反映されず、まず、操作情報をネットワークに送信し、これにより、その操作情報をネットワークから受け取って、操作情報を送信した装置も、他のネットワーク上の装置も操作情報は出力装置の出力の内容に反映させることができるので、これらのネットワーク上の装置で行なわれるシーケンスを共通化することができる。
【発明を実施するための最良の形態】
【００２４】
本発明を実施するための最良の一形態について説明する。
【００２５】
図１は、本実施の形態のネットワークシステム１の全体構成の説明図であり、図２は、ネットワークシステム１で用いられている情報処理装置２の電気的な接続のブロック図である。ネットワークシステム１では、パーソナルコンピュータなどの情報処理装置２が複数台（この例では、装置Ａ，Ｂの２台を図示している）、ネットワーク３でPeer to Peer（Ｐ２Ｐ）接続されている。
【００２６】
情報処理装置２は、各種演算を行い、コンピュータの各部を集中的に制御するＣＰＵ１２と、各種のＲＯＭ、ＲＡＭからなるメモリ１３とが、バス１４で接続されている。
【００２７】
バス１４には、所定のインターフェイスを介して、ハードディスクなどの磁気記憶装置１５と、キーボード、マウスなどの入力装置１６と、出力装置となる表示装置１７と、光ディスクなどの記憶媒体１８を読み取る記憶媒体読取装置１９とが接続され、また、ネットワーク３と通信を行うネットワークインターフェイス１１が接続されている。
【００２８】
また、バス１４には、所定のインターフェイスを介して記憶媒体１８を読み取る記憶媒体読取装置１９が接続されている。記憶媒体１８としては、ＣＤ，ＤＶＤなどの光ディスク、光磁気ディスク、フレキシブルディスクなどの各種メディアを用いることができる。また、記憶媒体読取装置１９は、具体的には記憶媒体１８の種類に応じて光ディスクドライブ装置、光磁気ディスクドライブ装置、フレキシブルディスクドライブ装置などが用いられる。
【００２９】
各情報処理装置２は、記憶媒体１８から、プログラム２０をそれぞれ読み取って、磁気記憶装置１５にインストールする。また、プログラム２０はインターネットなどのネットワークを介してダウンロードしてインストールするようにしてもよい。このインストールにより、各情報処理装置２は、後述の所定の処理の実行が可能な状態となる。
【００３０】
このプログラム２０は、Ｗｉｎｄｏｗｓ、ＵＮＩＸ、ＭａｃＯＳ（いずれも登録商標である）などの所定のＯＳ（Operating System）上で動作するアプリケーションである。ＯＳは、ユーザの操作に応じてプログラム２０の起動、情報の読み込み、保存などを行う。情報処理装置２におけるデータの外部への送信は、ＯＳを介してデータを送ることにより、ネットワークインターフェイス１１がネットワーク３へ信号を出力して行う。また、ネットワークインターフェイス１１が受け取った信号は、情報処理装置２の内部で必要かどうかの判断がなされ、必要なデータであれば取り込み、不必要であれば破棄する、というような処理を行っている。情報処理装置２が外部と行なうあらゆるデータの送受信は、すべてこのネットワークインターフェイス１１を経由する。電子メールの送受信やＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）でのデータのやりとりなども、このネットワークインターフェイス１１を経由する。ネットワーク３を介して情報をやりとりするプログラム２０は、このネットワークインターフェイス１１を経由するデータを一般にはＯＳとやり取りすることで機能する。
【００３１】
以上の構成により、各情報処理装置２は、各種の情報処理を行うことができ、また、ネットワークインターフェイス１１を介してネットワーク３と通信を行うことができる。以下では、プログラム２０に基づいて情報処理装置２が実行する特徴的な処理について説明する。
【００３２】
図１においては、情報処理装置２がプログラム２０に基づいて実行する機能の機能ブロックも図示している。すなわち、情報処理装置２では、プログラム２０に基づいて、ユーザがマウスやキーボードなどの入力装置１６を操作することによって発生するイベントを取得する操作情報取得手段２１と、他の情報処理装置２及び自機に、このイベントを示す操作情報を送信する情報送信手段２２と、他の情報処理装置２又は自機の送信した操作情報を受信するための情報受信手段２３と、受信したデータを表示装置１７の表示などに反映するための操作情報反映手段２４を実現する。
【００３３】
図３は、情報処理装置２における基本的なデータの流れを示すフローチャートである。操作情報取得手段２１は、マウスやキーボードなどの入力装置１６の操作によるイベント情報を取得し、そのイベント情報のデータ（操作情報）を情報送信手段２２に渡す。例えば、マウスを操作して表示装置１７上で線を描いた場合は、その座標情報を収集して操作情報として情報送信手段２２に渡す。この時点では、情報処理装置２は操作情報を表示装置１７の画像表示には反映させず、よって、この描いた線は、この時点では表示はされない。情報送信手段２２では、操作情報取得手段２１から渡された操作情報を送信先のＩＰアドレスや利用するポート番号と共にＯＳに渡し、ネットワークインターフェイス１１を介して、ネットワークシステム１上の各情報処理装置２にブロードキャストする。
【００３４】
ブロードキャストがされると、自機にも送信データが送信されるので、これをネットワークインターフェイス１１及びＯＳを介してそれを情報受信手段２３で受信する。そして、受信したデータ中の操作情報を、入力装置１６の操作による操作情報として操作情報反映手段２４に渡す。操作情報反映手段２４は、情報受信手段２３から渡された操作情報を表示装置１７の画面表示に反映させる。例えば、前記の例では、表示装置１７に操作情報どおりの線の描画を行う。
【００３５】
このように、取得した操作情報を直ちに自機の画面表示に反映せず、一旦、ネットワーク３へブロードキャストするなどして送信し、この送信を行なうことに起因してネットワーク３から送信される情報を受信し、この情報に含まれる操作情報を利用して初めて自機の画面表示に反映させる。
【００３６】
情報送信手段２２が送信する送信データには、ユーザが入力装置１６を操作し、その操作内容が現在の表示装置１７の画像表示の内容に反映されるべきであるときの、その操作内容を示す操作情報が含まれる。この操作情報はネットワーク３へ送信されるが、この操作情報はネットワーク３から少なくとも操作情報の送信先の情報処理装置２が含まれ、通常はこの他にネットワークシステム１上の他のすべての情報処理装置２に送信される。すなわち、送信データには、少なくとも操作情報の送信先の情報処理装置２、通常はこの他にネットワークシステム１上の他のすべての情報処理装置２への操作情報の送信のネットワーク３への指示が含まれる。その送信は、ブロードキャストによってもユニキャストによってもよいが、必要に応じて送信先の情報処理装置２を示すアドレス情報が含まれることになる。
【００３７】
操作情報の送信にかかる情報処理装置２以外の他の情報処理装置２にも同一の操作情報が送信される場合には、同一のプログラム２０に基づいて同一の画面が各情報処理装置２に表示されているときには、同一の操作情報が一斉に各情報処理装置２の画面表示に反映されるので、各情報処理装置２について画面表示の変動が常に同じになり、同じ画像が各情報処理装置２に常に表示されることになる。しかも、各情報処理装置２において同一のプログラム２０とＯＳの機能により、このような一斉に行なわれる同一の画面表示が同じシーケンスで実現する。
【００３８】
次に、２つの情報処理装置２（装置Ａ，Ｂ）間の表示情報の同期を例にした動作の一例を説明する。図１は、装置Ａのユーザの操作に基づいて装置Ａ，Ｂの表示が同期される場合のデータの流れを矢印で示している。装置Ａは先に述べたのと同様に、マウス、キーボードなどからユーザ操作のイベントを取得し、情報送信手段２２にデータを渡す。情報送信手段２２は受け取ったデータとともにブロードキャストアドレスと使用するポート番号をＯＳに渡す。この送信データはネットワークインターフェイス１１を介してネットワーク３にブロードキャストされる。このブロードキャストがあると装置Ａ，Ｂの両方ともその送信データをネットワークインターフェイス１１で自分宛のデータであると解釈して受信する（装置Ａ，Ｂが同一サブネットに所属する場合）ので、情報受信手段２３はＯＳを介してその送信データを受信する。装置Ａ、Ｂとも、受信した情報を操作情報反映手段２４に渡し、操作情報反映手段２４が受け取った情報を利用して、その情報に含まれる操作情報のとおりの内容で画面表示に反映させるので、装置Ａ，Ｂ間の表示の同期を実現できる。このように、取得した操作情報を一旦ネットワーク３に送信し、この送信に起因しネットワーク３から送信されるデータを受信し、このデータを利用して初めて情報処理装置２の画面表示に反映することで、単一の情報処理装置２での画面表示も、複数の情報処理装置２を同期させて画面表示させる場合でも、同じシーケンスで処理をすることが可能である。
【００３９】
以下では、個々の機能ブロックの具体的な動作例について説明する。
【００４０】
操作情報取得手段２１は、ユーザが入力装置１６を操作した操作情報を取得し、それを情報送信手段２２に渡す。取得できる情報はマウスのクリック、移動、ドラッグなどの動作に伴うポインタの位置や、マウスポインタの所定の領域への入出位置などの情報及びキーボードで入力されるキー情報などである。操作情報取得手段２１の処理の流れを、図３に示す。すなわち、操作情報取得手段２１はマウスやキーボードなどの操作によるイベントを待ち受けし（ステップＳ１）、イベントが発生すると（ステップＳ１のＹ）、操作情報としてそれらのイベントを取得する（ステップＳ２）。取得した情報は他の情報送信手段２２以下の手段において扱いやすいデータに生成し（ステップＳ３）、情報送信手段２２にデータを渡す（ステップＳ４）。
【００４１】
ここで、情報送信手段２２に渡すデータには、操作情報、送信者のＩＰアドレス、宛先のＩＰアドレス、送信時間などの情報が含まれる。図４に示すように、ステップＳ３では、これらの情報を例えば図４に示すようなＸＭＬ形式（ツリーオブジェクト）に生成すると扱いやすい。図４中のevent_infoタグ以下には、取得した操作情報を記述する。この例では、マウスの動きを取得したポイントがannotationというタグとともに記述されている。情報受信手段２３では、このタグ情報をもとに所望のデータを取得する（解釈できるデータがない場合は、そのまま破棄する）。senderタグには送信者のＩＰアドレス、destinationタグにはブロードキャストアドレス、timeタグには送信時刻がlong値で記述される。この例ではsenderタグ、destinationタグはあらかじめ入力しておき、操作情報を取得した段階で、event_infoタグ以下の記述を行ない、あわせて操作情報取得時刻をtimeタグ以下に記述することによって、情報送信手段２２に渡すデータを生成する。また、データを情報送信手段２２に渡す際にはdestinationタグにあるＩＰアドレスもあわせて情報送信手段２２に渡す。
【００４２】
情報送信手段２２の処理の流れを図５に示す。情報送信手段２２は、操作情報取得手段２１から渡されるＸＭＬ（ツリーオブジェクト）形式のデータ、及び送信先のＩＰアドレスを待ち受けし（ステップＳ１１）、このデータがあると（ステップＳ１１のＹ）、受け取ったデータをＯＳに渡す作業を行う（ステップＳ１３）。ＯＳに渡すデータは、送信先のＩＰアドレス、使用するポート番号、送信するデータである（ステップＳ１２）。このデータはバイナリデータに変換する。ＯＳはこれらのデータが渡されると、データをネットワークインターフェイス１１に渡す。ネットワークインターフェイス１１は、データを送信できるサイズに分割し、あるいは、通信用のヘッダをつけるなどして、ネットワーク３に送信（ブロードキャスト）する。
【００４３】
ここではブロードキャストを行う場合の例を示したが、ユニキャストを行なう場合は、ブロードキャストの場合と同様に送信先ＩＰアドレスを予めセットしておくか、ユーザに送信先ＩＰアドレスの入力を促し、それを操作情報取得手段２１によって取得し、先に述べたＸＭＬにデータをセットするなどする。
【００４４】
情報受信手段２３の処理の流れは図６に示す。情報受信手段２３は、ＯＳから渡されるパケットを待ち受けし（ステップＳ２１）、パケットを取得すると（ステップＳ２１のＹ，Ｓ２２）、取得したパケットからデータオブジェクトを生成して（ステップＳ２３）、操作情報反映手段２４に渡す（ステップＳ２４）。このとき渡されるデータは先に述べたツリーオブジェクト（ＸＭＬ形式）である。
【００４５】
情報受信手段２３の処理の流れを図７に示す。操作情報取得手段２１は、情報受信手段２３によって渡されるデータを解釈する。この場合、ツリーオブジェクトのannotationタグを参照してポイント情報を取得する。取得した情報は、表示装置１７に描画できるデータに変換し、表示装置１７に表示させることによって、受信したデータを表示情報に反映させる。
【００４６】
なお、以上の例ではマウスイベントを中心に説明したが、ユーザの行う操作情報としては、マウスのみでなく、キーボードによる入力操作などもある。また、マウス操作にしても、クリックの情報を拾いたい場合や、あるウインドウに入ったときの位置情報を拾いたい場合などさまざまな場合が考えられる。しかも、それらは独立に処理され、操作情報反映手段２４に渡される方がよい。以下では、複数の操作情報を取得し、その情報を反映する動作について説明する。
【００４７】
図８に、情報処理装置２において、複数の操作情報を取得して、これらを画面表示に反映させる際のデータの流れを矢印で示している。図８においては、複数の操作情報取得手段２１と、これらの操作情報取得手段２１にそれぞれ対応する複数の操作情報反映手段２４が示されている。各操作情報取得手段２１は、入力装置１６の操作による異なるイベントａ，ｂ，ｃを取得する。
【００４８】
イベントａ，ｂ，ｃの取得から操作情報の送信までの処理の流れは先に述べた動作と同じである。各操作情報取得手段２１では、イベントを取得すると、それぞれ図９〜図１１のようなデータを生成し、送信先のＩＰアドレスとともに情報送信手段２２に渡す。図９に示したデータはマウス操作によるイベントａのイベント情報が記述されたものであり、図中のmouse1タグにそのデータを記述している。他の操作情報取得手段２１が生成するデータは、図９のmouse1タグにあたる箇所が別のタグ名になる。他のタグと重ならないように、ＸＭＬの命名規則にしたがって一意に決まれば、タグ名はさまざまであってよい（図１０、図１１参照）。また、event_infoタグ以下の記述内容は、それぞれの操作情報取得手段２１と操作情報反映手段２４の組が解釈できる記述であって、ＸＭＬの記述規則にしたがっていればどのように記述してもよい。情報送信手段２２はイベントａ，ｂ，ｃによる複数の操作情報を一度に送信する。
【００４９】
情報受信手段２３は、図９〜図１１に示すようなデータを受信すると、適切な操作情報反映手段２４にデータを渡す必要がある。例えば、図９のデータを受信した場合はデータを図８中の左の操作情報反映手段２４に渡す必要があるし、図１０のデータを受信した場合にはデータを図８中の中央の操作情報反映手段２４に渡す必要がある。このような割り振りを適切に行うには、予め各操作情報反映手段２４が情報受信手段２３に対してタグ名を通知しておくとよい。つまり、情報受信手段２３において図１２に示すようなテーブル３１を用意しておき、event_infoタグ内のタグ名を取得し、テーブル３１の情報と照らし合わせてデータの渡し先を決定する。各操作情報反映手段２４は、渡されたデータを解釈し、表示装置１７にデータを表示することによって受信したデータの反映を行う。
【００５０】
図１３に示すように、ネットワークシステム１においては、ネットワーク３にサービス提供装置４を接続してもよい。次に、このサービス提供装置４の詳細について説明する。サービス提供装置４は、サーバコンピュータなどの情報処理装置で構成され、そのハードウエア構成は図２の情報処理装置２と同様である。そして、情報処理装置２とは異なるプログラム２０に基づいて以下のような処理を実行する。
【００５１】
サービス提供装置４は、所定のサービスを提供するが、ここでいうサービスとは、情報処理装置２から送信されて取得された操作情報を何らかの形のデータに変換することを示す。図１３には、サービス提供装置４で動作するプログラム２０により実行される機能の機能ブロックとして、情報受信手段４１、情報処理手段４２、情報送信手段４３を図示している。
【００５２】
先に述べたように、装置Ａである情報処理装置２は、マウスやキーボードの操作で発生するイベントを取得して、その操作情報のデータを情報送信手段２２に渡すのであるが、ここで図４におけるデータにおいて、destinationタグにはローカルマシンのＩＰアドレスをセットする。また、destinationにローカルマシンのＩＰアドレスがセットされたデータとともに情報送信手段２２に渡すときの、そのＩＰアドレスは、サービス提供装置４のＩＰアドレスとする。ここではサービス提供装置４のＩＰアドレスは予めわかっているとする。そして、情報送信手段２２は、渡されたＩＰアドレス宛（サービス提供装置４宛）にデータを送信する。サービス提供装置４は、そのデータを情報受信手段４１により受信し、event_infoタグ以下のデータの解析を行い、情報処理手段４２において所定のデータ処理を行って新たなデータを作成し、情報送信手段４３は、destinationタグ宛に当該作成したデータを送信する。装置Ａは、情報受信手段２３により、この処理されてセットしなおされたデータを取得し、操作情報取得手段２１に渡し、操作情報取得手段２１は、この情報を表示装置１７に表示することで反映させる。これにより、情報処理装置２において、ネットワークシステム１上で提供されるサービスを利用することができる。なお、この例では、受信した操作情報に応じたデータを情報処理手段４２で新たに作成して、このデータを情報送信手段４３で送信しているが、予め用意されたデータを情報送信手段４３で送信するようにしてもよい。
【００５３】
すなわち、ネットワーク３上に１又は複数台接続されている各情報処理装置２の情報送信手段２２は、操作情報の送信をネットワーク３上の所定の装置となるサービス提供装置４に行なう。この送信データには、情報送信手段２２の送信データに含まれるネットワーク３に対するデータ送信の指示が含まれているが、その指示には、この少なくとも送信データの送信先となる情報処理装置２を含むネットワーク３上の装置に送信することが含まれ、この指示にある各装置にサービス提供装置４の情報送信手段４３が（この例ではブロードキャストにより）データを送信することになる。
【００５４】
次に、このサービス提供装置４が提供するサービスの具体例について説明する。ここでは、提供するサービスの例を２つ説明する。これらのサービスは、受け取ったデータに所定の加工などを施して、送り返すものである。
【００５５】
１．翻訳サービス
キーボードで入力した文字列を翻訳するサービスである。図１３の装置Ａとなる情報提供装置２は、操作情報取得手段２１により取得した文字列（ここでは、「これはペンです。」という文字列であるものとする）を図１４に示すようなデータにして、その送信データに添付する。ここでは、送信先は、通常、サービス提供装置４のみになる。サービス提供装置４はこれを受信し、データ中に解釈できるタグがあれば処理を行う（解釈できるデータがなければそのままdestinationタグのＩＰアドレス宛に返信する）。ここでは、sentenceタグをもとに文字列を取得し、それを周知の翻訳プログラムで翻訳し、返信データとして図１５に示すようなデータを生成し、destinationタグにあるＩＰアドレスに送信する。装置Ａはこれを受信し、そのデータを解釈することで、表示装置１７上に文字列（この例では、「This is a pen．」）を表示する。このような処理を実行することで、情報処理装置２の外部のサービスを容易に利用することができる。
【００５６】
２．加筆データの平滑化サービス
これは、マウスやタブレットの操作において描画される線を滑らかにするサービスである。装置Ａとなる情報提供装置２は、操作情報取得手段２１により取得したマウスのポイント（座標）情報を図１６に示すようなデータにしてサービス提供装置４に送信する（このデータは、このまま画面表示すると図１７に示すような線図になるものとする）。サービス提供装置４はこれを受信し、データ中に解釈できるタグがあれば処理を行う（解釈できるデータがなければそのままdestinationタグのＩＰアドレス宛に返信する）。ここでは、annotationタグをもとにpointの座標を取得し、平滑化するためのデータを計算し、返信データとして図１８のようなデータを生成し、destinationタグにあるＩＰアドレスに送信する。装置Ａはこれを受信し、データを解釈することで、表示装置１７上に図１９に示すような線図を表示する。これにより、元の線図は線が滑らかになるように加工されて表示される。このような処理を実行することで、情報処理装置２の外部のサービスを容易に利用することができる。
【００５７】
以上説明したように、入力装置１６の操作をただちに表示装置１７の画像表示に反映させずに、一旦ネットワーク３にデータを送信し、これによりネットワーク３から受信したデータを利用してはじめて表示装置１７の画像表示に入力装置１６の操作を反映させることによって、複数の情報処理装置２間で表示データの同期を行ったり、外部のサービスの利用をしたりすることが、同じ作法で行うことができる。また、destinationタグをローカルマシンではなく、他のネットワーク３上のマシンにすることで処理したデータを他のマシンへ送るということも容易に実現できる。さらに、destinationタグに複数のＩＰアドレスを記述したり、ブロードキャストアドレスを記述したりすることで、処理したデータを同報することも可能である。
【００５８】
前述の実施例では、入力装置１６の操作をただちに表示装置１７の画像表示に反映させずに、一旦ネットワーク３にデータを送信し、これによりネットワーク３から受信したデータを利用してはじめて表示装置１７の画像表示に入力装置１６の操作を反映させるようにしているので、ネットワーク３にトラブルが発生した場合には、他の情報処理装置２などに情報を伝達する場合だけでなく、自機に情報を反映することすらできなくなってしまう。
【００５９】
そこで、情報処理装置２は、プログラム２０に基づいて、ネットワーク３が機能していて、ネットワーク３上でデータの送受信が行なえるか否かを判断する手段を備えるのが望ましい。そして、ネットワーク３が機能していない場合には、情報送信手段２２で生成された送信データを、直接、情報受信手段２３に渡し、あたかもネットワークインターフェイス１１を介して情報を受信したかのような処理を行うようにする。これにより、ネットワーク３が正常に動作していなくても、入力装置１６の操作を自機の表示装置１７の画像表示に反映させることは可能となる。なお、ネットワーク３が機能しているか否かのチェックは、所定のデータをブロードキャストして自機に返ってくるかどうかをチェックし、あるいは、いわゆるpingコマンドを使って応答があるかどうかで判断することができる。
【００６０】
また、図２０に示すように、プログラム２０に基づく機能ブロックに、情報送信手段２２によりネットワークインターフェイス１１を介して送信する送信データを所定の暗号方式で暗号化する手段（情報暗号化手段２５）や、情報受信手段２３で受信するデータが前述の暗号化方式で暗号化されているときに、それを復号化する手段（情報復号化手段２６）を、プログラム２０に基づいて情報処理装置２やサービス提供装置４に設けるようにしてもよい。すなわち、情報暗号化手段２５は操作情報取得手段２１が生成するデータを暗号化して情報送信手段２２に渡し、情報復号化手段２６は受信したデータを復号化して操作情報反映手段２４に渡す。
【００６１】
さらに、図２１に示すように、プログラム２０に基づく機能ブロックに署名手段２７を設けることによって、情報送信手段２２で送信するデータに署名を付加し、また、情報受信手段２３で受信する署名が付加されているデータの署名者の確認を行う署名確認手段２８を設けるようにしてもよい。すなわち、署名手段２７は操作情報取得手段２１が生成したデータに署名を付加して情報送信手段２２に渡す。署名確認手段２８は受信したデータの署名部分の解析を行い、署名者の確認ができればデータを操作情報反映手段２４に渡す。
【００６２】
このように、操作情報取得手段２１が生成するデータをそのまま情報送信手段２２に渡すのではなく、暗号化もしくは署名を行ってから渡し、データを受信した際も、直接操作情報取得手段２１に渡すのではなく復号化もしくは署名確認を行うだけであり、基本的な動作は前述の説明と変わりはない。
【００６３】
以上説明したような画像処理装置２で用いられるプログラム２０は、カプセル化文書に搭載するようにしてもよい。すなわち、プログラム２０を同梱するカプセル化文書を作成することにより、ネットワークシステム１上の各情報処理装置２で動作するカプセル化文書同士の同期などをスムーズに行なうことができ、ネットワークシステム１上でサービス提供装置４から提供されるサービスもカプセル化文書から容易に利用可能である。
【００６４】
このようなカプセル化文書は、文書内容を表す文書ファイルとそれに付随する画像、動画などのマルチメディアファイルからなる情報コンテンツと、この情報コンテンツをコンピュータ上で閲覧し、動作させるためのプログラム及び機能を付加するプログラム群と、カプセル化文書の構造を規定する構造ファイルから構成されている（その詳細については、例えば、前述の特許文献５，６を参照）。
【００６５】
図２２は、本発明のデータ構造を実施するカプセル化文書５１の構成の一例を示す説明図であるが、このカプセル化文書５１は、前述の情報コンテンツ５２、第１のプログラムとなるプログラム群５３、構造ファイル５４という基本構成に加えて、ユーザ操作を取得する操作情報取得モジュール５５ａ，５５ｂ及び５５ｃ、これらの操作情報を反映する操作情報反映モジュール５６ａ，５６ｂ及び５６ｃ、情報送信モジュール５７、並びに情報受信モジュール５８を第２のプログラムとして同梱している。
【００６６】
第２のプログラムに基づく動作としては、図８を参照して前述した動作と同様であり、操作情報取得モジュール５５ａ，５５ｂ及び５５ｃがそれぞれ各操作情報取得手段２１を実現し、操作情報反映モジュール５６ａ，５６ｂ及び５６ｃがそれぞれ操作情報反映手段２４を実現し、情報送信モジュール５７が情報送信手段２２を実現し、情報受信モジュール５８が情報受信手段２３を実現する。
【００６７】
このようなカプセル化文書５１は、前述の記憶媒体１８に記憶させて提供し、あるいは、インターネットなどのネットワークからダウンロードするなどして、情報処理装置２において利用することができる。
【００６８】
このように、各プログラムモジュールを同梱することによって、先に述べたような動作で情報の伝達を行うことができる。また、各情報処理装置２に同時に表示されている同一の文書間での表示状態の同期や、ネットワーク３上のサービスの利用なども、先に述べた要領でデータを処理することにより、容易に実現できる。
【００６９】
また、各操作情報取得モジュール５５ａ，５５ｂ及び５５ｃと、操作情報反映モジュール５６ａ，５６ｂ及び５６ｃは、それぞれがセットになっており、必要なモジュールを加え、あるいは、不必要なツールを削除することも容易である。
【００７０】
なお、この例では、出力装置の一例として表示装置１７の画面の表示情報に、ネットワーク３から受信した操作情報を反映させるようにしているが、本発明はこれに限定されるものではなく、例えば、出力装置としてのスピーカが出力する音声に、ネットワーク３から受信した操作情報を反映させるなども考えられる。
【図面の簡単な説明】
【００７１】
【図１】本発明の一実施の形態のネットワークシステムの機能ブロック図である。
【図２】情報処理装置の電気的な接続のブロック図である。
【図３】操作情報取得手段の処理のフローチャートである。
【図４】操作情報取得手段で生成するデータの例を示す説明図である。
【図５】情報送信手段の処理のフローチャートである。
【図６】情報受信手段の処理のフローチャートである。
【図７】操作情報反映手段の処理のフローチャートである。
【図８】情報処理装置の他の例の機能ブロック図である。
【図９】操作情報取得手段が生成するデータの例を示す説明図である。
【図１０】操作情報取得手段が生成するデータの例を示す説明図である。
【図１１】操作情報取得手段が生成するデータの例を示す説明図である。
【図１２】情報受信手段で用意しているテーブルの説明図である。
【図１３】サービス提供装置を備えたネットワークシステムの機能ブロック図である。
【図１４】翻訳サービスにおいて操作情報取得手段が生成するデータの例を示す説明図である。
【図１５】翻訳サービスにおいて情報処理手段が生成するデータの例を示す説明図である。
【図１６】翻訳サービスにおいて情報処理装置の情報送信手段が送信するデータの例を示す説明図である。
【図１７】加筆データの平滑化サービスについての説明図である。
【図１８】加筆データの平滑化サービスにおいて操作情報取得手段が生成するデータの例を示す説明図である。
【図１９】加筆データの平滑化サービスについての説明図である。
【図２０】データの暗号化を行なう場合の情報処理装置の機能ブロックの説明図である。
【図２１】データに署名を行なう場合の情報処理装置の機能ブロックの説明図である。
【図２２】カプセル化文書のデータ構造のブロック図である。
【符号の説明】
【００７２】
１  ネットワークシステム
２  情報処理装置
３  ネットワーク
４  所定の装置
１１  通信インターフェイス
１６  入力装置
１７  出力装置
１８  記憶媒体
２０  プログラム
５１  データ構造
５２  情報コンテンツ
５３  第１のプログラム
５４  構造ファイル
５５ａ  第２のプログラム
５５ｂ  第２のプログラム
５５ｃ  第２のプログラム
５６ａ  第２のプログラム
５６ｂ  第２のプログラム
５６ｃ  第２のプログラム
５７  第２のプログラム
５８  第２のプログラム
【図１】
2006018430.tif 000003
【図２】
2006018430.tif 000004
【図３】
2006018430.tif 000005
【図４】
2006018430.tif 000006
【図５】
2006018430.tif 000007
【図６】
2006018430.tif 000008
【図７】
2006018430.tif 000009
【図８】
2006018430.tif 000010
【図９】
2006018430.tif 000011
【図１０】
2006018430.tif 000012
【図１１】
2006018430.tif 000013
【図１２】
2006018430.tif 000014
【図１３】
2006018430.tif 000015
【図１４】
2006018430.tif 000016
【図１５】
2006018430.tif 000017
【図１６】
2006018430.tif 000018
【図１７】
2006018430.tif 000019
【図１８】
2006018430.tif 000020
【図１９】
2006018430.tif 000021
【図２０】
2006018430.tif 000022
【図２１】
2006018430.tif 000023
【図２２】
2006018430.tif 000024