(57)【要約】  複数の端末間での共同作業において、ある端末で行われた編集を迅速かつ適切に他の端末の表示データに反映させて、端末間の表示の同期のパフォーマンスを向上させる共同作業システム、編集制御プログラム及び編集制御方法を提供する。共同作業を行う各クライアント端末の制御部（編集制御プログラム）は、１又は複数のオブジェクトを表示するための表示データをサーバから受信し、表示データに基づく画面を表示部に表示させ、操作部による操作を受け付けて、所定のオブジェクトに対する編集操作が行われたかを判定し、所定のオブジェクトに対する編集操作が行われたと判定した場合に、編集操作の内容を示す編集情報をサーバと他の端末とに送信する制御を行い、他の端末は、サーバから受信した表示データと端末から受信した編集情報とに基づいて、所定のオブジェクトを編集した画面を自端末の表示部に表示させる。
2017154565.tif 000002
【特許請求の範囲】
【請求項１】
１又は複数のオブジェクトを表示するための表示データを管理するサーバと、前記サーバから前記表示データを受信する複数の端末と、を備え、前記サーバと前記複数の端末とが互いに通信ネットワークで接続され、前記複数の端末で前記１又は複数のオブジェクトを閲覧し、編集することによって共同作業を行う共同作業システムであって、
各々の前記端末は、
前記表示データに基づく画面を表示する表示部と、
前記１又は複数のオブジェクトに対する編集操作を受け付ける操作部と、
前記操作部から出力される操作信号に基づいて、前記１又は複数のオブジェクトのうち所定のオブジェクトに対する編集操作が行われたかを判定する操作判定部と、
前記所定のオブジェクトに対する編集操作が行われたと判定された場合に、前記編集操作の内容を示す編集情報を、前記サーバと他の端末とに送信する通信制御部と、を備え、
前記他の端末は、前記サーバから受信した前記表示データと、前記端末から受信した前記編集情報と、に基づいて、前記所定のオブジェクトを編集した画面を自端末の前記表示部に表示させる、
ことを特徴とする共同作業システム。
【請求項２】
前記操作判定部は、前記所定のオブジェクトが編集中であるか、及び、前記所定のオブジェクトの編集が完了したかを判定し、
前記通信制御部は、前記所定のオブジェクトが編集中であると判定された場合は、編集時の前記編集情報を前記他の端末に送信し、前記所定のオブジェクトの編集が完了したと判定された場合は、編集完了時の前記編集情報を前記サーバと前記他の端末とに送信する、
ことを特徴とする請求項１に記載の共同作業システム。
【請求項３】
前記端末は、前記所定のオブジェクトに対する編集操作を行うユーザを識別するユーザ識別部を備え、
前記操作判定部は、同じユーザによる一連の編集操作が行われていると判定した場合に、前記所定のオブジェクトが編集中であると判定する、
ことを特徴とする請求項２に記載の共同作業システム。
【請求項４】
前記操作判定部は、同じユーザによる複数の編集操作であり、所定の時間内に次の編集操作が行われていると判定した場合、若しくは、同じユーザによる複数の編集操作であり、同じ種類の編集操作が行われていると判定した場合に、前記同じユーザによる一連の編集操作と判定する、
ことを特徴とする請求項３に記載の共同作業システム。
【請求項５】
前記通信制御部は、前記所定のオブジェクトが編集中の状態が予め定めた所定時間以上、継続していると判定した場合は、前記所定時間毎に、前記編集情報を前記サーバに送信する、
ことを特徴とする請求項２乃至４のいずれか一に記載の共同作業システム。
【請求項６】
前記通信制御部は、前記所定のオブジェクトが編集中であると判定された場合に、前記所定のオブジェクトの種類に応じて、前記編集情報を前記サーバに送信するか否かを変更する、
ことを特徴とする請求項２乃至４のいずれか一に記載の共同作業システム。
【請求項７】
前記通信制御部は、前記所定のオブジェクトが特定の形式のファイルであると判定した場合は、前記所定のオブジェクトが編集中であると判定された場合も、前記編集情報を前記サーバに送信する、
ことを特徴とする請求項６に記載の共同作業システム。
【請求項８】
前記通信制御部は、前記所定のオブジェクトが編集中であると判定された場合に、前記所定のオブジェクトに対する編集操作の内容に応じて、前記編集情報を前記サーバに送信するか否かを変更する、
ことを特徴とする請求項２乃至４のいずれか一に記載の共同作業システム。
【請求項９】
前記通信制御部は、前記所定のオブジェクトに対する編集操作が手書き入力であると判定された場合は、前記所定のオブジェクトが編集中であると判定された場合も、前記編集情報を前記サーバに送信する、
ことを特徴とする請求項８に記載の共同作業システム。
【請求項１０】
前記端末は、
前記編集情報を送信する前記他の端末の特性に応じて、前記編集情報のデータサイズを削減するデータ処理部を備え、
前記通信制御部は、データサイズが削減された前記編集情報を当該他の端末に送信する、
ことを特徴とする請求項１乃至９のいずれか一に記載の共同作業システム。
【請求項１１】
前記データ処理部は、自端末の前記表示部の解像度と前記他の端末の前記表示部の解像度とを比較し、自端末の前記表示部の解像度よりも前記他の端末の前記表示部の解像度の方が低い場合は、前記他の端末の前記表示部の解像度に合わせて、前記編集情報を圧縮する、
ことを特徴とする請求項１０に記載の共同作業システム。
【請求項１２】
前記通信制御部は、データが相手に届いたかの確認及び届いていない場合のデータの再送を行わない特定の通信方式により、前記編集情報を前記他の端末に送信する、
ことを特徴とする請求項１乃至１１のいずれか一に記載の共同作業システム。
【請求項１３】
前記サーバは、前記端末から前記編集情報を受信した場合に、前記編集情報に基づいて前記所定のオブジェクトを編集した前記表示データを前記他の端末に送信する、
ことを特徴とする請求項１乃至１２のいずれか一に記載の共同作業システム。
【請求項１４】
前記複数の端末は第１の通信ネットワークで接続され、前記複数の端末と前記サーバとは第２の通信ネットワークで接続され、前記第１の通信ネットワークは、前記第２の通信ネットワークよりも通信速度が大きい、
ことを特徴とする請求項１乃至１３のいずれか一に記載の共同作業システム。
【請求項１５】
１又は複数のオブジェクトを表示するための表示データを管理するサーバと、前記サーバから前記表示データを受信する複数の端末と、が通信ネットワークで接続され、前記複数の端末で前記１又は複数のオブジェクトを閲覧し、編集することによって共同作業を行う共同作業システムにおける、各々の前記端末で動作する編集制御プログラムであって、
各々の前記端末に、
前記サーバから前記表示データを受信する受信処理、
表示部に、前記表示データに基づく画面を表示させる表示処理、
前記１又は複数のオブジェクトに対する編集操作を受け付ける操作部から出力される操作信号に基づいて、前記１又は複数のオブジェクトのうち所定のオブジェクトに対する編集操作が行われたかを判定する判定処理、
前記所定のオブジェクトに対する編集操作が行われたと判定した場合に、前記編集操作の内容を示す編集情報を、前記サーバと他の端末とに送信する送信処理、を実行させ、
前記他の端末は、前記サーバから受信した前記表示データと、前記端末から受信した前記編集情報と、に基づいて、前記所定のオブジェクトを編集した画面を自端末の前記表示部に表示させる、
ことを特徴とする編集制御プログラム。
【請求項１６】
前記判定処理では、前記所定のオブジェクトが編集中であるか、及び、前記所定のオブジェクトの編集が完了したかを判定し、
前記送信処理では、前記所定のオブジェクトが編集中であると判定した場合は、編集時の前記編集情報を前記他の端末に送信し、前記所定のオブジェクトの編集が完了したと判定した場合は、編集完了時の前記編集情報を前記サーバと前記他の端末とに送信する、
ことを特徴とする請求項１５に記載の編集制御プログラム。
【請求項１７】
前記端末に、更に、
前記所定のオブジェクトに対する編集操作を行うユーザを識別するユーザ識別処理を実行させ、
前記判定処理では、同じユーザによる一連の編集操作が行われていると判定した場合に、前記所定のオブジェクトが編集中であると判定する、
ことを特徴とする請求項１６に記載の編集制御プログラム。
【請求項１８】
前記判定処理では、同じユーザによる複数の編集操作であり、所定の時間内に次の編集操作が行われていると判定した場合、若しくは、同じユーザによる複数の編集操作であり、同じ種類の編集操作が行われていると判定した場合に、前記同じユーザによる一連の編集操作と判定する、
ことを特徴とする請求項１７に記載の編集制御プログラム。
【請求項１９】
前記送信処理では、前記所定のオブジェクトが編集中の状態が予め定めた所定時間以上、継続していると判定した場合は、前記所定時間毎に、前記編集情報を前記サーバに送信する、
ことを特徴とする請求項１６乃至１８のいずれか一に記載の編集制御プログラム。
【請求項２０】
前記送信処理では、前記所定のオブジェクトが編集中であると判定した場合に、所定のオブジェクトの種類に応じて、前記編集情報を前記サーバに送信するか否かを変更する、
ことを特徴とする請求項１６乃至１８のいずれか一に記載の編集制御プログラム。
【請求項２１】
前記送信処理では、前記所定のオブジェクトが特定の形式のファイルであると判定した場合は、前記所定のオブジェクトが編集中であると判定した場合も、前記編集情報を前記サーバに送信する、
ことを特徴とする請求項２０に記載の編集制御プログラム。
【請求項２２】
前記送信処理では、前記所定のオブジェクトが編集中であると判定した場合に、前記所定のオブジェクトに対する編集操作の内容に応じて、前記編集情報を前記サーバに送信するか否かを変更する、
ことを特徴とする請求項１６乃至１８のいずれか一に記載の編集制御プログラム。
【請求項２３】
前記送信処理では、前記所定のオブジェクトに対する編集操作が手書き入力であると判定された場合は、前記所定のオブジェクトが編集中であると判定した場合も、前記編集情報を前記サーバに送信する、
ことを特徴とする請求項２２に記載の編集制御プログラム。
【請求項２４】
前記端末に、更に、
前記編集情報を送信する前記他の端末の特性に応じて、前記編集情報のデータサイズを削減する削減処理を実行させ、
前記送信処理では、データサイズが削減された前記編集情報を当該他の端末に送信する、
ことを特徴とする請求項１５乃至２３のいずれか一に記載の編集制御プログラム。
【請求項２５】
前記削減処理では、自端末の前記表示部の解像度と前記他の端末の前記表示部の解像度とを比較し、自端末の前記表示部の解像度よりも前記他の端末の前記表示部の解像度の方が低い場合は、前記他の端末の前記表示部の解像度に合わせて、前記編集情報を圧縮する、
ことを特徴とする請求項２４に記載の編集制御プログラム。
【請求項２６】
前記送信処理では、データが相手に届いたかの確認及び届いていない場合のデータの再送を行わない特定の通信方式により、前記編集情報を前記他の端末に送信する、
ことを特徴とする請求項１５乃至２５のいずれか一に記載の編集制御プログラム。
【請求項２７】
１又は複数のオブジェクトを表示するための表示データを管理するサーバと、前記サーバから前記表示データを受信する複数の端末と、が通信ネットワークで接続され、前記複数の端末で前記１又は複数のオブジェクトを閲覧し、編集することによって共同作業を行う共同作業システムにおける編集制御方法であって、
各々の前記端末は、
前記サーバから前記表示データを受信する受信処理と、
表示部に、前記表示データに基づく画面を表示させる表示処理と、
前記１又は複数のオブジェクトに対する編集操作を受け付ける操作部から出力される操作信号に基づいて、前記１又は複数のオブジェクトのうち所定のオブジェクトに対する編集操作が行われたかを判定する判定処理と、
前記所定のオブジェクトに対する編集操作が行われたと判定した場合に、前記編集操作の内容を示す編集情報を、前記サーバと他の端末とに送信する送信処理と、を実行し、
前記他の端末は、前記サーバから受信した前記表示データと、前記端末から受信した前記編集情報と、に基づいて、前記所定のオブジェクトを編集した画面を自端末の前記表示部に表示させる、
ことを特徴とする編集制御方法。
【請求項２８】
前記判定処理では、前記所定のオブジェクトが編集中であるか、及び、前記所定のオブジェクトの編集が完了したかを判定し、
前記送信処理では、前記所定のオブジェクトが編集中であると判定した場合は、編集時の前記編集情報を前記他の端末に送信し、前記所定のオブジェクトの編集が完了したと判定した場合は、編集完了時の前記編集情報を前記サーバと前記他の端末とに送信する、
ことを特徴とする請求項２７に記載の編集制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共同作業システム、編集制御プログラム及び編集制御方法に関し、特に、複数の端末を用いて共同作業を行う共同作業システム、各々の端末における編集を制御する編集制御プログラム及び共同作業システムにおける編集制御方法に関する。
【背景技術】
【０００２】
サーバに保存されたデータを複数の端末にて同時に共有表示し、共同で編集できるようにすることにより、遠隔会議等でコンテンツ共有を実現する共同作業システムが提案されている。この共同作業システムにおいて、複数の端末での共同作業を円滑に進めるためには、ある端末で操作を行った内容が他の端末にリアルタイムに伝わることが重要である。特に、ある端末でユーザが共有表示されているデータの編集を開始した時に、他の端末でも同時に別のユーザが共有表示されているデータの編集を開始してしまうと編集操作の競合が発生し、他の端末での操作のデータへの反映が遅れれば遅れるほど、この競合が発生しやすくなることから、端末間での表示の同期のパフォーマンスを向上させることが重要である。【０００３】
このような共同作業システムに関して、例えば、下記特許文献１には、複数のユーザが利用するための複数のクライアントと、サーバとを有し、複数の前記クライアントの複数のユーザによる共同作業を支援する共同作業支援システムが開示されている。前記サーバは、共同作業に参加するユーザの前記クライアントの画面上に表示させる部品に対応する所定の対象の属性情報と、前記対象に関するアドレス情報とを含む部品情報を記憶する部品情報記憶手段と、前記部品情報を前記共同作業に参加する前記ユーザの前記クライアントに対して送信する送信手段とを有する。また、前記クライアントは、前記部品情報を受信する受信手段と、前記部品情報に基づいて、前記部品を前記画面に表示させる表示制御手段とを有する。【０００４】
また、複数の端末をネットワークで接続するシステムにおけるパフォーマンスを向上させる技術に関して、下記特許文献２には、以下の情報処理装置が開示されている。即ち、複数の情報処理装置から構成されるシステムであって、互いに通信が可能な組み合わせの情報処理装置が接続し情報通信を行う事が可能な状態において、当該情報処理装置は、その時点の転送状況にあわせて最適化した情報を送受信しながら通信を行う。【０００５】
また、下記特許文献３には、自端末と他の端末との間のネットワーク状態を計測するネットワーク状態計測手段と、自端末および他の端末の処理性能を計測する処理性能計測手段と、ユーザの操作に応じて発生する操作イベントのサンプリング間隔と、前記ネットワーク状態および前記処理性能の計測結果とに応じて最適データ削減率を決定するデータ削減率計算手段と、前記最適データ削減率に基づいて、他の端末に送信する操作共有データを削減するデータ削減手段と、を含む端末が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−０３４４９１号公報
【特許文献２】特開２００４−３５５３０３号公報
【特許文献３】ＷＯ２０１３／０７３１２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１のように、各端末が、データを保存しているサーバからデータを取得して閲覧し、また、いずれかの端末でデータの編集を行った場合は、編集情報をこの端末からサーバに送信し、サーバから各端末に編集情報を送信するシステムでは、編集情報はサーバを介して２回送信されることになるため、他の端末で表示されているデータに編集が反映されるまでに時間がかかる。【０００８】
また、特許文献２のように、通信状況に応じて送信する際のデータ形式を変える（負荷が高い時はデータサイズがより小さくなる形式で送る）方法や、特許文献３のように、ネットワーク負荷に応じて通信するデータを間引く方法を採用したとしても、操作を行った端末からサーバ、サーバから他の端末という２回の編集情報の通信が発生している点については改善されないため、他の端末で表示されているデータに編集が反映されるまでの時間を効果的に短縮することができない。【０００９】
すなわち、従来の、サーバを介したデータ共有により複数の端末間での共同作業を実現する共同作業システムでは、端末間の表示の同期のパフォーマンスが悪いという問題がある。【００１０】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、複数の端末間での共同作業において、ある端末で行われた編集を迅速かつ適切に他の端末の表示データに反映させて、端末間の表示の同期のパフォーマンスを向上させることができる共同作業システム、編集制御プログラム及び編集制御方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の一側面は、１又は複数のオブジェクトを表示するための表示データを管理するサーバと、前記サーバから前記表示データを受信する複数の端末と、を備え、前記サーバと前記複数の端末とが互いに通信ネットワークで接続され、前記複数の端末で前記１又は複数のオブジェクトを閲覧し、編集することによって共同作業を行う共同作業システムであって、各々の前記端末は、前記表示データに基づく画面を表示する表示部と、前記１又は複数のオブジェクトに対する編集操作を受け付ける操作部と、前記操作部から出力される操作信号に基づいて、前記１又は複数のオブジェクトのうち所定のオブジェクトに対する編集操作が行われたかを判定する操作判定部と、前記所定のオブジェクトに対する編集操作が行われたと判定された場合に、前記編集操作の内容を示す編集情報を、前記サーバと他の端末とに送信する通信制御部と、を備え、前記他の端末は、前記サーバから受信した前記表示データと、前記端末から受信した前記編集情報と、に基づいて、前記所定のオブジェクトを編集した画面を自端末の前記表示部に表示させることを特徴とする。【００１２】
本発明の一側面は、１又は複数のオブジェクトを表示するための表示データを管理するサーバと、前記サーバから前記表示データを受信する複数の端末と、が通信ネットワークで接続され、前記複数の端末で前記１又は複数のオブジェクトを閲覧し、編集することによって共同作業を行う共同作業システムにおける、各々の前記端末で動作する編集制御プログラムであって、各々の前記端末に、前記サーバから前記表示データを受信する受信処理、表示部に、前記表示データに基づく画面を表示させる表示処理、前記１又は複数のオブジェクトに対する編集操作を受け付ける操作部から出力される操作信号に基づいて、前記１又は複数のオブジェクトのうち所定のオブジェクトに対する編集操作が行われたかを判定する判定処理、前記所定のオブジェクトに対する編集操作が行われたと判定した場合に、前記編集操作の内容を示す編集情報を、前記サーバと他の端末とに送信する送信処理、を実行させ、前記他の端末は、前記サーバから受信した前記表示データと、前記端末から受信した前記編集情報と、に基づいて、前記所定のオブジェクトを編集した画面を自端末の前記表示部に表示させることを特徴とする。【００１３】
本発明の一側面は、１又は複数のオブジェクトを表示するための表示データを管理するサーバと、前記サーバから前記表示データを受信する複数の端末と、が通信ネットワークで接続され、前記複数の端末で前記１又は複数のオブジェクトを閲覧し、編集することによって共同作業を行う共同作業システムにおける編集制御方法であって、各々の前記端末は、前記サーバから前記表示データを受信する受信処理と、表示部に、前記表示データに基づく画面を表示させる表示処理と、前記１又は複数のオブジェクトに対する編集操作を受け付ける操作部から出力される操作信号に基づいて、前記１又は複数のオブジェクトのうち所定のオブジェクトに対する編集操作が行われたかを判定する判定処理と、前記所定のオブジェクトに対する編集操作が行われたと判定した場合に、前記編集操作の内容を示す編集情報を、前記サーバと他の端末とに送信する送信処理と、を実行し、前記他の端末は、前記サーバから受信した前記表示データと、前記端末から受信した前記編集情報と、に基づいて、前記所定のオブジェクトを編集した画面を自端末の前記表示部に表示させることを特徴とする。
【発明の効果】
【００１４】
本発明の共同作業システム、編集制御プログラム及び編集制御方法によれば、複数の端末間での共同作業において、ある端末で行われた編集を迅速かつ適切に他の端末の表示データに反映させて、端末間の表示の同期のパフォーマンスを向上させることができる。【００１５】
その理由は、共同作業を行う各クライアント端末の制御部（編集制御プログラム）は、１又は複数のオブジェクトを表示するための表示データをサーバから受信し、表示データに基づく画面を表示部に表示させ、操作部による操作を受け付けて、所定のオブジェクトに対する編集操作が行われたかを判定し、所定のオブジェクトに対する編集操作が行われたと判定した場合に、編集操作の内容を示す編集情報をサーバと他の端末とに送信する制御を行うからである。さらに、他の端末から編集情報を受信した際に、サーバから受信した表示データと他の端末から受信した編集情報とに基づいて、所定のオブジェクトを編集した画面を自端末の表示部に表示させるからである。
【図面の簡単な説明】
【００１６】
【図１】共同作業システムの動作（共同作業開始時）を説明する模式図である。
【図２】従来の共同作業システムの動作（編集時の動作）を説明する模式図である。
【図３】本発明の一実施の形態に係る共同作業システムの動作（編集時の動作）を説明する模式図である。
【図４Ａ】本発明の一実施例に係る共同作業システムの構成を示す模式図である。
【図４Ｂ】本発明の一実施例に係る共同作業システムの構成を示す模式図である。
【図５Ａ】本発明の一実施例に係るクライアント端末の構成を示すブロック図である。
【図５Ｂ】本発明の一実施例に係るクライアント端末の構成を示すブロック図である。
【図６Ａ】本発明の一実施例に係るサーバの構成を示すブロック図である。
【図６Ｂ】本発明の一実施例に係るサーバの構成を示すブロック図である。
【図７】本発明の一実施例に係るクライアント端末の動作を示すフローチャート図である。
【図８】本発明の一実施例に係るサーバの動作を示すフローチャート図である。
【図９】本発明の一実施例に係る編集情報と編集情報の送信先の一例である。
【図１０】本発明の一実施例に係る編集制御の一例を示す模式図である。
【図１１】本発明の一実施例に係る編集制御の他の例を示す模式図である。
【図１２】本発明の一実施例に係る編集制御の他の例を示す模式図である。
【図１３】本発明の一実施例に係る編集制御の他の例を示す模式図である。
【図１４】本発明の一実施例に係る編集制御におけるデータ削減量を説明する図である。
【発明を実施するための形態】
【００１７】
背景技術で示したように、サーバに保存されたデータを複数の端末にて同時に共有表示し、共同で編集できるようにする共同作業システムでは、複数の端末での編集操作が競合しないようにするために、端末間での表示の同期のパフォーマンスを向上させることが重要である。
【００１８】
しかしながら、特許文献１のように、編集を行った端末が編集情報をサーバに送信し、サーバから各端末に編集情報を送信する方法では、編集情報は２回送信しなければならいため、他の端末で表示されているデータに編集が反映されるまでに時間がかかる。また、特許文献２のように通信状況に応じて送信する際のデータ形式を変えたり、特許文献３のようにネットワーク負荷に応じて通信するデータを間引いたりしたとしても、端末とサーバ間の２回の編集情報の通信が必要であるため、他の端末で表示されているデータに編集が反映されるまでの時間を効率的に短縮することができない。すなわち、従来の共同作業システムでは、端末間の表示の同期のパフォーマンスが悪いという問題がある。
【００１９】
そこで、本発明の一実施の形態では、サーバと複数の端末とを備える共同作業システムにおいて、各々の端末はサーバから１又は複数のオブジェクトを表示するための表示データを受信し、表示部に受信した表示データに基づく画面を表示させる。そして、いずれかの端末において、オブジェクトに対する編集操作が行われたと判定した際に、編集操作の内容を示す編集情報を、サーバと他の端末とに送信する。即ち、サーバを介して他の端末に編集情報を送信するのではなく、編集操作が行なわれている端末から、同期している他の端末に編集情報を直接送信するようにして、１回の通信で他の端末の表示部に表示されている画面に編集内容を反映できるようにする。
【００２０】
以下、図１乃至図３を参照して、従来の編集制御を用いた共同作業システムの基本動作と本発明の一実施の形態の編集制御を用いた共同作業システムの基本動作について概説する。なお、ここでは、２台の端末（端末ＴＡ及び端末ＴＢ）とサーバとを用いて、共同作業を行うものとする。また、共同作業の際に端末の表示部に表示する文書や画像、手書き情報などをオブジェクトと呼び、１又は複数のオブジェクトで構成される共同作業のデータを表示データと呼ぶ。また、編集情報は、表示データ中の１又は複数のオブジェクトの表示形態（位置やサイズなど）を変化させる場合は、編集対象のオブジェクトを特定する情報と編集後のオブジェクトの表示形態を特定する情報などを含み、オブジェクトを追加する場合は、追加するオブジェクトのデータと当該オブジェクトの表示形態を特定する情報などを含む。
【００２１】
［共同作業開始時］
図１に示すように、端末ＴＡ及び端末ＴＢは、それぞれ、表示部ＤＳＡ、ＤＳＢ及び操作部ＯＰＡ、ＯＰＢを有する。端末ＴＡ及び端末ＴＢは、共同作業開始時にサーバＳＲＶから表示データＤ０を取得し（図中のＳ１１参照）、自端末の記憶部などに表示データのコピーＤ１、Ｄ２を作成すると共に、表示データのコピーＤ１、Ｄ２に基づいて、各オブジェクトを表示部ＤＳＡ、ＤＳＢに表示する（図中のＳ１２参照）。
【００２２】
［従来の編集制御による端末ＴＡでの編集時］
従来は、図２に示すように、ユーザが端末ＴＡの操作部ＯＰＡを操作してオブジェクトの編集を行うと（図中のＳ２１参照）、端末ＴＡは、その編集内容と表示データのコピーＤ１とに基づいてオブジェクトを編集した画面を表示部ＤＳＡに表示する（図中のＳ２２参照）と共に、編集情報をサーバＳＲＶに送信する（図中のＳ２３参照）。サーバＳＲＶは、端末ＴＡから編集情報を受信すると、受信した編集情報を他の端末（ここでは端末ＴＢ）に送信する（図中のＳ２４参照）。そして、端末ＴＢは、表示データのコピーＤ２とサーバＳＲＶから受信した編集情報とに基づいて、表示部ＤＳＢの表示を更新してオブジェクトを表示している画面に編集内容を反映させる（図中のＳ２５参照）。すなわち、従来の方法では、端末ＴＡからサーバＳＲＶ及びサーバＳＲＶから端末Ｂの２回の通信を行わなければ端末ＴＢの表示データに編集内容を反映させることができない。
【００２３】
［本発明の一実施の形態の編集制御による端末ＴＡでの編集時］
本発明では、図３に示すように、ユーザが端末ＴＡの操作部ＯＰＡを操作してオブジェクトの編集を行うと（図中のＳ３１参照）、端末ＴＡは、その編集内容と表示データのコピーＤ１とに基づいてオブジェクトを編集した画面を表示部ＤＳＡに表示する（図中のＳ３２参照）と共に、編集情報をサーバＳＲＶと他の端末（端末ＴＢ）の双方に送信する（図中のＳ３３参照）。そして、端末ＴＢは、表示データのコピーＤ２と端末Ａから受信した編集情報とに基づいて、表示部ＤＳＢの表示を更新してオブジェクト表示している画面に編集内容を反映させる（図中のＳ３４参照）。すなわち、本発明の一実施の形態の編集制御方法では、端末ＴＡから端末ＴＢの１回の通信で端末ＴＢの表示データに編集内容を反映することができる。
【００２４】
このように、編集している端末から他の端末に編集情報を直接送信することにより、端末間の表示の同期のパフォーマンスを向上させることができる。また、端末−端末間は編集操作中も編集情報を送信し、端末−サーバ間は編集操作が完了した時点で編集情報を送信してもよい。これにより、編集内容を適切に管理しつつ、端末−サーバ間の通信負荷を低減することができる。
【００２５】
また、同じユーザが編集を行っている間は編集中と判断してサーバに編集情報を送信しないようにしたり、他の端末の表示部の解像度に応じて他の端末に送信するオブジェクトの画像の解像度を調整してもよい。これにより、更に通信負荷を低減することができる。
【００２６】
また、サーバはインターネット上、端末同士は職場のイントラネットに接続可能な場合など、端末−端末間の通信環境が端末−サーバ間の通信環境よりもよい場合には、表示の同期は環境の良い通信網だけを使用して行ってもよい。これにより、更に端末間の表示の同期のパフォーマンスを向上させることができる。
【実施例】
【００２７】
上記した本発明の一実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係る共同作業システム、編集制御プログラム及び編集制御方法について、図４Ａ乃至図１４を参照して説明する。図４Ａ及び図４Ｂは、本実施例の共同作業システムの構成を示す模式図であり、図５Ａ及び図５Ｂは、クライアント端末の構成を示すブロック図、図６Ａ及び図６Ｂは、サーバの構成を示すブロック図である。また、図７は、本実施例のクライアント端末の動作を示すフローチャート図であり、図８は、本実施例のサーバの動作を示すフローチャート図である。また、図９は、本実施例の編集情報及び編集情報の送信先の一例であり、図１０乃至図１３は、本実施例の編集制御の一例を示す模式図、図１４は、編集制御におけるデータ削減量を説明する図である。【００２８】
本実施例の共同作業システムは、遠隔会議等の共同作業を行うユーザが利用する複数のクライアント端末１０と、共同作業に使用する表示データを管理するサーバ２０と、で構成される。図４Ａに示す例では、共同作業システムが、クライアント端末１０Ａ、１０Ｂ、…と、サーバ２０とで構成されている。複数のクライアント端末１０とサーバ２０とは、イーサネット（登録商標）、トークンリング、ＦＤＤＩ（Fiber-Distributed Data Interface）等の規格により定められるＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）等の通信ネットワークＮを介して相互に接続されており、複数のクライアント端末１０はサーバ２０から１又は複数のオブジェクトを表示するための表示データを受信する。複数のクライアント端末１０の各々において、ユーザは表示データ中の１又は複数のオブジェクトを閲覧し、編集することによって共同作業を行う。【００２９】
なお、図４Ａでは、複数のクライアント端末１０とサーバ２０とが同一の通信ネットワークＮに接続されている共同作業システムを示したが、図４Ｂに示すように、複数のクライアント端末１０（図４Ｂのクライアント端末１０Ａ、１０Ｂ、…を参照）が職場のイントラネットＮ１に接続され、サーバ２０がインターネットＮ２に接続されるなど、通信ネットワークＮの構成は適宜設定することができる。以下、各装置について詳細に説明する。【００３０】
［クライアント端末］
クライアント端末１０は、パーソナルコンピュータなどのコンピュータ端末、タブレット端末やスマートフォンなどの携帯端末などであり、図５Ａに示すように、制御部１１と記憶部１５と通信Ｉ／Ｆ部１６と表示部１７と操作部１８などで構成される。【００３１】
制御部１１は、マイクロプロセッサ等により構成されるＣＰＵ（Central Processing Unit）１２と、ＲＯＭ（Read Only Memory）１３やＲＡＭ（Random Access Memory）１４などのメモリと、で構成され、ＣＰＵ１２は、ＲＯＭ１３や記憶部１５から制御プログラムを呼び出し、ＲＡＭ１４に展開して実行することにより、クライアント端末１０全体の動作を制御する。上記制御部１１は、図５Ｂに示すように、操作判定部１１ａ、データ処理部１１ｂ、通信制御部１１ｃとしても機能する。【００３２】
操作判定部１１ａは、操作部１８から出力される操作信号に基づき、共同作業が開始されたか、オブジェクトに対する編集操作が行われたか（オブジェクトの編集中か、オブジェクトの編集が完了したか）を判定する。そして、オブジェクトに対する編集操作の内容を示す編集情報を通信制御部１１ｃ（又はデータ処理部１１ｂ）に転送する。また、操作判定部１１ａは、操作部１８がユーザ毎に割り当てられている場合は、必要に応じて、各々の操作部１８から出力される操作信号に基づいて、オブジェクトの編集操作を行っているユーザを識別し、同じユーザによる一連の編集操作が行われていると判断した場合（例えば、同じユーザによる複数の編集操作であり、所定の時間内に次の編集操作が行われていると判定した場合、若しくは、同じユーザによる複数の編集操作であり、同じ種類の編集操作が行われていると判定した場合）に、オブジェクトの編集中と判定する。なお、クライアント端末１０にユーザを識別する仕組み（ユーザ識別部）が設けられている場合は、ユーザ識別部によりオブジェクトの編集操作を行っているユーザを識別し、識別されたユーザの情報に基づき、操作判定部１１ａにより上記編集操作の判定を行ってもよい。【００３３】
なお、上述したように、編集情報は、表示データ中の１又は複数のオブジェクトの表示形態（位置やサイズなど）を変化させる場合（すなわち、オブジェクトの移動や拡大／縮小などの場合）は、例えば、編集操作を行った時刻とオブジェクトを特定する情報（オブジェクトＩＤ）と編集内容を示す情報と編集後のオブジェクトの表示形態（オブジェクトの移動の場合は表示位置、オブジェクトの移動や拡大／縮小の場合は表示位置とサイズ）などで構成される。また、オブジェクトを追加する場合（例えば、手書き入力やテキスト入力、画像の貼り付けの場合）は、編集情報には、オブジェクトのデータ（手書きデータやテキストデータ、貼り付けた画像のデータ）が含まれる。【００３４】
データ処理部１１ｂは、必要に応じて、編集情報の送信先である他のクライアント端末１０の構成やスペック（これらを総称して特性と呼ぶ。）に応じて、他のクライアント端末１０に送信する編集情報のデータサイズを削減する。例えば、自端末の表示部１７の解像度と他のクライアント端末１０の表示部１７の解像度とを比較し、他のクライアント端末１０の解像度の方が低い場合は、その解像度に合わせて編集情報（オブジェクトのデータ）を圧縮する。【００３５】
通信制御部１１ｃは、共同作業の開始時に、サーバ２０から表示データを受信し、当該表示データに基づく画面を表示部１７に表示させる。また、他のクライアント端末１０から編集情報を受信したと判断した場合に、表示データと受信した編集情報に基づいて、オブジェクトを編集した画面を表示部１７に表示させる。また、通信制御部１１ｃは、操作判定部１１ａがオブジェクトに対する編集操作が行われたと判定した場合に、編集情報をサーバ２０と通信ネットワークＮに接続されている他のクライアント端末１０とに送信する。具体的には、通信制御部１１ｃは、操作判定部１１ａがオブジェクトの編集中と判定した場合は、編集情報（必要に応じてデータ処理部１１ｂがデータサイズを削減した編集情報）を、少なくとも通信ネットワークＮに接続されている他のクライアント端末１０に送信する。また、通信制御部１１ｃは、操作判定部１１ａがオブジェクトの編集完了と判定した場合は、編集情報を、通信ネットワークＮに接続されている他のクライアント端末１０及びサーバ２０に送信する。【００３６】
なお、通信制御部１１ｃは、オブジェクトの編集中の状態が所定時間以上、継続していると判断した場合は、所定時間毎に、編集情報をサーバ２０に送信したり、オブジェクトの種類に応じて、編集情報をサーバ２０に送信するか否かを変更（例えば、オブジェクトが特定の形式のファイルであると判断した場合は、オブジェクトの編集中も、編集情報をサーバ２０に送信）したり、オブジェクトに対する編集操作の内容に応じて、編集情報をサーバ２０に送信するか否かを変更したりする。例えば、操作判定部１１ａがオブジェクトに対する編集操作が手書き入力であると判断した場合は、オブジェクトの編集中であると判定されていたとしても、通信制御部１１ｃは編集情報をサーバ２０に送信する。【００３７】
上記操作判定部１１ａ、データ処理部１１ｂ、通信制御部１１ｃは、ハードウェアとして構成してもよいし、コンピュータ読み取り可能な記録媒体に記録され、実行時に、制御部１１を、操作判定部１１ａ、データ処理部１１ｂ、通信制御部１１ｃとして機能させるソフトウェア（編集制御プログラム）として構成し、当該編集制御プログラムを共同作業システムの各々のクライアント端末１０のＣＰＵ１２（ハードウェアプロセッサ）に実行させるようにしてもよい。【００３８】
記憶部１５は、メモリやＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）などで構成され、サーバ２０から受信した表示データ、他のクライアント端末１０に送信する編集情報、他のクライアント端末１０から受信した編集情報、他のクライアント端末１０やサーバ２０の通信ネットワークＮ上のアドレス情報などを記憶する。【００３９】
通信Ｉ／Ｆ部１６は、ＮＩＣ（Network Interface Card）やモデムなどで構成され、通信ネットワークＮを介して接続されている他のクライアント端末１０やサーバ２０との通信を確立し、通信制御部１１ｃの指示に従って、サーバ２０から表示データを受信したり、他のクライアント端末１０やサーバ２０に編集情報を送信したり、他のクライアント端末１０から編集情報を受信したりする。【００４０】
表示部１７は、ＬＣＤ（Liquid Crystal Display）や有機ＥＬ（Electro Luminescence）ディスプレイなどで構成され、制御部１１の制御に従って、サーバ２０から受信した表示データに基づく画面や他のクライアント端末１０から受信した編集情報に基づいてオブジェクトを編集した画面を表示する。【００４１】
操作部１８は、マウスやキーボード、ペン、表示部１７上に配置された格子状の電極からなるタッチセンサなどで構成され、オブジェクトの移動や拡大／縮小、手書き入力、テキスト入力、画像の貼り付けなどの、オブジェクトに対する編集操作を受け付け、編集操作の内容に応じた編集信号を操作判定部１１ａに出力する。なお、１つのクライアント端末１０を複数のユーザが使用して共同作業を行う場合は、ユーザ毎に操作部１８を設けても良い。【００４２】
［サーバ］
サーバ２０は、コンピュータ装置などであり、図６Ａに示すように、制御部２１と記憶部２５と通信Ｉ／Ｆ部２６と、必要に応じて、表示部と操作部などで構成される。【００４３】
制御部１１は、マイクロプロセッサ等により構成されるＣＰＵ２２と、ＲＯＭ２３やＲＡＭ２４などのメモリと、で構成され、ＣＰＵ２２は、ＲＯＭ２３や記憶部２５から制御プログラムを呼び出し、ＲＡＭ２４に展開して実行することにより、サーバ２０全体の動作を制御する。上記制御部２１は、図６Ｂに示すように、管理部２１ａ、通信制御部２１ｂとしても機能する。【００４４】
管理部２１ａは、共同作業の開始時にクライアント端末１０に送信する表示データを管理し、クライアント端末１０から編集情報を受信した場合は、当該編集情報に基づき、表示データを更新する。【００４５】
通信制御部２１ｂは、管理部２１ａの指示に従って、クライアント端末１０に表示データを送信したり、クライアント端末１０から編集情報を受信したりする。また、管理部２１ａが、編集情報に基づいて表示データを更新した場合は、更新した表示データを直ちに、又は、共同作業の終了時に、全てのクライアント端末１０に送信する。【００４６】
上記管理部２１ａ及び通信制御部２１ｂは、ハードウェアとして構成してもよいし、コンピュータ読み取り可能な記録媒体に記録され、実行時に、制御部２１を、管理部２１ａ及び通信制御部２１ｂとして機能させるソフトウェア（管理プログラム）として構成し、この管理プログラムをＣＰＵ２２に実行させるようにしてもよい。【００４７】
記憶部２５は、メモリやＨＤＤ、ＳＳＤなどで構成され、表示データ、クライアント端末１０から受信した編集情報、通信ネットワークＮに接続されているクライアント端末１０のアドレス情報などを記憶する。【００４８】
通信Ｉ／Ｆ部２６は、ＮＩＣやモデムなどで構成され、通信ネットワークＮを介して接続されているクライアント端末１０との通信を確立し、通信制御部２１ｂの指示に従って、クライアント端末１０に表示データを送信したり、クライアント端末１０から編集情報を受信したりする。【００４９】
なお、図４Ａ乃至図６Ｂは、本実施例の共同作業システムの一例であり、その構成や制御内容は適宜変更可能である。例えば、上記では複数のクライアント端末１０を同等に取り扱っているが、サーバ２０は、遠隔会議の進行を行うユーザなどが使用する特定のクライアント端末１０から編集情報を受信した場合のみ、更新した表示データを直ちに他のクライアント端末１０に送信するなど、クライアント端末１０毎に制御を変えてもよい。また、図４Ａ及び図４Ｂでは、複数のクライアント端末１０とサーバ２０とで共同作業システムを構成したが、いずれかのクライアント端末１０がサーバ２０としての機能を備える場合は、共同作業システムからサーバ２０を省略することもできる。【００５０】
以下、上記構成の共同作業システムの動作について具体的に説明する。【００５１】
［クライアント端末の動作］
まず、クライアント端末１０の動作について説明する。編集元のクライアント端末１０のＣＰＵ１２は、ＲＯＭ１３又は記憶部１５に記憶した編集制御プログラムをＲＡＭ１４に展開して実行することにより、図７のフローチャート図に示す各ステップの処理を実行する。【００５２】
制御部１１（通信制御部１１ｃ）は、通信Ｉ／Ｆ部２６を介してサーバ２０にアクセスし（Ｓ１０１）、サーバ２０から表示データと共同作業を行う他のクライアント端末１０の情報（通信ネットワークＮ上のアドレス情報、表示部１７の解像度情報など）を取得する受信処理を行う（Ｓ１０２）。そして、制御部１１は、サーバ２０から受信した表示データに基づいて、表示部１７に、表示データに含まれる１又は複数のオブジェクトに対して共同作業を行う画面（作業画面と呼ぶ。）を表示させる表示処理を行う（Ｓ１０３）。【００５３】
次に、制御部１１（操作判定部１１ａ）は、操作部１８から出力される操作信号に基づいて、表示データに含まれる１又は複数のオブジェクトのいずれかが編集中であるかを判定する判定処理を行う（Ｓ１０４）。編集中とは、オブジェクトの移動中や拡大／縮小中、手書き中、テキスト入力中など、オブジェクトの状態が確定されていない状態を指す。【００５４】
オブジェクトが編集中でないと判定した場合は（Ｓ１０４のＮｏ）、Ｓ１１０に遷移し、オブジェクトが編集中であると判定した場合は（Ｓ１０４のＹｅｓ）、制御部１１（データ処理部１１ｂ）は、必要に応じて、編集情報のデータサイズを削減する削減処理を行う。例えば、自端末の表示部１７の解像度と他のクライアント端末１０の表示部１７の解像度とを比較して、他のクライアント端末１０の解像度が低いかを判断し（Ｓ１０５）、他のクライアント端末１０の解像度が低い場合は（Ｓ１０５のＹｅｓ）、オブジェクトのデータを圧縮する（Ｓ１０６）。このオブジェクトのデータの圧縮に関しては後述する。その後、制御部１１（通信制御部１１ｃ）は、他のクライアント端末１０に編集情報を送信する送信処理を行う（Ｓ１０７）。【００５５】
ここで、他のクライアント端末１０に送信する編集情報とサーバ２０に送信する編集情報とではその利用目的が異なる。他のクライアント端末１０に送信する編集情報は、一つのクライアント端末１０で行われた編集を他のクライアント端末１０の表示データに反映させ、操作の競合を防止して共同作業を円滑に行えるようにすることが目的である。そのため、編集情報は、編集中の状態も含めてリアルタイムに他のクライアント端末１０に送信することが望ましく、細かい編集情報を全て送信することが重要である。【００５６】
これに対し、サーバ２０に送信する編集情報は、共同作業の結果を残しておくための情報であり、この編集情報は、途中から共同作業に参加したユーザがサーバ２０から表示データを取得してから参加する、あるいは後日、共同作業を振り返ったり、続きを行ったりする場合に用いる。そのため、必ずしもすべての編集情報をサーバ２０に送信する必要はなく、特に編集中の情報については省略してもほとんど影響が無い。そこで、本実施例では、サーバ２０に送信する編集情報については、編集中の状態を示す編集情報の送信を省略し、編集が完了した時点で、その完了時の状態を知らせるために編集情報をサーバ２０に送信するようにする。【００５７】
具体的には、制御部１１（操作判定部１１ａ）は、操作部１８から出力される操作信号に基づいて、オブジェクトの編集が完了したかを判定する判定処理を行う（Ｓ１０８）。編集が完了していないと判定した場合は（Ｓ１０８のＮｏ）、Ｓ１１０に遷移し、編集が完了したと判定した場合は（Ｓ１０８のＹｅｓ）、制御部１１（通信制御部１１ｃ）は、サーバ２０に編集情報を送信する送信処理を行う（Ｓ１０９）。【００５８】
上記編集情報は、編集操作によるオブジェクトの状態の変更を伝えるのに必要な情報で構成される。図９は、編集操作としてオブジェクトの移動を行った時の編集情報と編集情報の送信先の一例を示す。編集情報は、編集操作を行った時刻と編集対象のオブジェクトＩＤと編集内容（移動、移動終了など）と編集後のオブジェクトの座標などで構成される。また、図９の例では、他のクライアント端末１０とサーバ２０のうち、丸印が記載されている装置に編集情報が送信されることを示す。編集中は編集情報をサーバ２０に送信しないことにより、サーバ２０への編集情報の送信は編集完了時の１回だけになり、他のクライアント端末１０への編集情報の送信に対してかなり通信量を削減することができる。【００５９】
図７に戻って、制御部１１（通信制御部１１ｃ）は、他のクライアント端末１０から編集情報を受信したかを判断し（Ｓ１１０）、編集情報を受信したと判断した場合は（Ｓ１１０のＹｅｓ）、Ｓ１０３に戻って、受信した編集情報とサーバ２０から受信した表示データに基づいてオブジェクトを編集した作業画面を作成し、作業画面の表示を更新する。一方、他のクライアント端末１０から編集情報を受信していないと判断した場合は（Ｓ１１０のＮｏ）、制御部２１（操作判定部１１ａ）は、予め設けた終了ボタンなどが操作されたかに基づいて共同作業が終了したかを判断し（Ｓ１１１）、共同作業が終了していないと判断した場合は（Ｓ１１１のＮｏ）、Ｓ１０３に戻って、同様の処理を繰り返し、共同作業が終了したと判断した場合は（Ｓ１１１のＹｅｓ）、一連の処理を終了する。【００６０】
［サーバの動作］
次に、サーバ２０の動作について説明する。サーバ２０のＣＰＵ２２は、ＲＯＭ２３又は記憶部２５に記憶した管理プログラムをＲＡＭ２４に展開して実行することにより、図８のフローチャート図に示す各ステップの処理を実行する。なお、以下の説明において、サーバ２０は、通信ネットワークＮに接続される各々のクライアント端末１０の情報（通信ネットワークＮ上のアドレス情報、表示部１７の解像度情報など）を取得しているものとする。【００６１】
まず、制御部２１（通信制御部２１ｂ）は、クライアント端末１０からのアクセスを受け付け（Ｓ２０１）、各々のクライアント端末１０に表示データと他のクライアント端末１０の情報（通信ネットワークＮ上のアドレス情報、表示部１７の解像度情報など）を送信する（Ｓ２０２）。【００６２】
次に、制御部２１（管理部２１ａ）は、いずれかのクライアント端末１０から編集情報を受信したかを判断し（Ｓ２０３）、編集情報を受信したと判断したら（Ｓ２０３のＹｅｓ）、受信した編集情報に基づいて表示データを更新（例えば、編集対象のオブジェクトに関するデータの記述を修正）する（Ｓ２０４）。そして、制御部２１（通信制御部２１ｂ）は、必要に応じて、更新後の表示データを全てのクライアント端末１０に送信して（Ｓ２０５）、一連の処理を終了する。【００６３】
以下、本実施例の共同作業における編集制御について、具体的に説明する。【００６４】
図１０は、編集操作として、ユーザがクライアント端末１０の表示部１７に表示される作業画面３０でオブジェクト３１の移動操作を行った場合の編集制御の一例を説明する模式図である。図１０において、オブジェクト３１の移動開始（オブジェクト３１のドラッグ開始）時の状態をＳ４１、移動中（ドラッグ中）の状態をＳ４２、移動終了（ドラッグ終了）時の状態をＳ４３で示す。オブジェクト３１の移動操作に関して、オブジェクト３１の移動開始時点から移動中は、クライアント端末１０の通信制御部１１ｃは、編集情報をサーバ２０へは送信せずに他のクライアント端末１０のみに送信し、移動終了時点で、編集情報を他のクライアント端末１０及びサーバ２０に送信する。なお、ドラッグ開始時点Ｓ４１では、それ以前と比べてオブジェクト３１の状態が変化していない為、通信制御部１１ｃは編集情報を他のクライアント端末１０に送信しなくてもよい。【００６５】
このように、オブジェクト３１の移動中に編集情報を直接、他のクライアント端末１０に送信することにより、編集内容を速やかに他のクライアント端末１０の表示データに反映させて、クライアント端末１０間の表示の同期のパフォーマンスを向上させることができる。また、移動終了時のみ編集情報をサーバ２０に送信する（サーバ２０に送信するデータを削減する）ことにより、通信ネットワークの通信負荷を低減することができる。【００６６】
例えば、サーバ２０と２台のクライアント端末１０Ａ、１０Ｂとが接続されている状態で、端末−端末間はオブジェクトの移動中の編集情報（例えば、１／６０秒に１回のドラッグ中の編集情報）を送信し、端末−サーバ間はオブジェクト移動が完了した時の編集情報（例えば、数秒に１回のドラッグ終了時の編集情報）を送信する場合、端末−サーバ間の通信は端末−端末間の通信に対しておよそ１／１００になり、ほぼ無視できるため、全体の通信量をおよそ１／２に削減することができる。【００６７】
また、図１０では、オブジェクト３１の移動に関して説明したが、オブジェクトの拡大／縮小操作についても同様であり、拡大／縮小中（２本指でピンチ操作を行っている、又は、ハンドルをつかんでドラッグしている場合）は、クライアント端末１０の通信制御部１１ｃは、編集情報をサーバ２０へは送信せずに他のクライアント端末１０のみに送信し、拡大／縮小終了（ピンチ操作を終了し指を離した、又は、ハンドルを離した）時点で、編集情報を他のクライアント端末１０及びサーバ２０に送信する。【００６８】
図１１は、編集操作として、ユーザがクライアント端末１０の表示部１７に表示される作業画面３０でオブジェクト３１の手書き入力を行った場合の編集制御の一例を説明する模式図である。図１１の例では、ユーザが作業画面３０に手書き可能なモードでペンなどを用いてドラッグしてオブジェクト３１を手書き入力しており、オブジェクト３１の手書き中の状態をＳ５１で示す。ユーザがペンを作業画面から離して描画を終了した時、または、オブジェクト３１外（ストローク周辺に設定した領域の外）をタップするなどして手書きオブジェクトとして確定した時に、手書き入力が終了したと判定され、それぞれの状態をＳ５２及びＳ５３で示す。オブジェクト３１の手書き入力に関しては、手書き中は、クライアント端末１０の通信制御部１１ｃは、編集情報をサーバ２０へは送信せずに他のクライアント端末１０のみに送信し、手書き終了時に、編集情報（ここでは追加されたストローク情報）を他のクライアント端末１０及びサーバ２０に送信する。あるいは、ユーザがオブジェクト３１外（ストローク周辺に設定した領域の外）をタップするなどして手書きオブジェクトとして確定するまでは、ペンを離しても編集中として、手書きオブジェクトが確定したら、クライアント端末１０の通信制御部１１ｃは、編集情報（ここでは「Ａ」の文字を構成する複数のストローク情報）を他のクライアント端末１０及びサーバ２０に送信する。【００６９】
このように、手書き入力中に編集情報を直接、他のクライアント端末１０に送信することにより、編集内容を速やかに他のクライアント端末１０の表示データに反映させて、クライアント端末１０間の表示の同期のパフォーマンスを向上させることができる。また、手書き入力終了時点で編集情報をサーバ２０に送信する（特に、複数のストローク情報をまとめて送信する）ことにより、通信ネットワークの通信負荷を低減することができる。【００７０】
図１１では、手書き入力に関して説明したが、テキスト入力についてもほぼ同様であり、テキストボックスへの文字入力中は、クライアント端末１０の通信制御部１１ｃは、編集情報をサーバ２０へは送信せずに他のクライアント端末１０のみに送信し、文字入力終了（手書き入力と同様にボックス外をタップするか、他のオブジェクトの操作を行った）時に、編集情報（ここでは追加されたテキスト）を他のクライアント端末１０及びサーバ２０に送信する。【００７１】
図１０及び図１１では、編集の基本操作として同じユーザが操作を行う場合を示したが、複数のユーザが作業画面３０上でオブジェクト３１を操作する場合は、クライアント端末１０の操作判定部１１ａもしくは後述するユーザ識別部により、編集操作を行うユーザを識別し、同じユーザによる一連の編集操作が行われていると見なすことができる場合に、クライアント端末１０の操作判定部１１ａによりオブジェクト３１が編集中であると判定しても良い。例えば、オブジェクト３１を移動したり拡大／縮小したりする編集操作を断続的に行う場合のように、同じユーザによる複数の編集操作であり、所定の時間内に次の編集操作が行われている場合は、操作判定部１１ａは、これらの編集操作を同じユーザによる一連の編集操作と見なすことができる。また、オブジェクト３１を手書き入力する場合のように、同じユーザによる複数の編集操作であり、同じ種類の編集操作が行われている場合は、操作判定部１１ａは、これらの編集操作を同じユーザによる一連の編集操作と見なすことができる。【００７２】
この場合、別のユーザが操作を開始した時に、クライアント端末１０の通信制御部１１ｃは、前のユーザが行った編集操作の結果をすべてまとめて、編集情報としてサーバ２０に送信することができる。例えば、図１２のＳ６１に示すように、ユーザＡがオブジェクト３１を位置Ｐ０から位置Ｐ１に移動し、図１２のＳ６２に示すように、ユーザＡがオブジェクト３１を位置Ｐ１から位置Ｐ２にさらに移動した後、ユーザＢが操作を行った場合、通信制御部１１ａは、その時点で、ユーザＡの操作に関する編集情報をサーバ２０に送信する。その際、通信制御部１１ａは、ユーザＡがオブジェクト３１を位置Ｐ０から位置Ｐ２へ移動したという編集情報をサーバ２０に送信する。位置Ｐ０から位置Ｐ１への移動の情報を省略することにより、サーバ２０に送信する編集情報のデータ量を削減することができる。【００７３】
なお、上記制御は、作業画面３０に表示されているコンテンツ全体に対して行ってもよいし、オブジェクト毎に行ってもよい。例えば、ユーザＡがオブジェクト３１を移動し直す前に（図１２のＳ６１と図１２のＳ６２の間に）、ユーザＢが別のオブジェクトに関する操作を行った時は、操作判定部１１ａは、ユーザＡの操作を編集中と見なすことができる。【００７４】
上記ユーザの識別は、クライアント端末１０の操作判定部１１ａにより、クライアント端末１０毎にユーザが異なるものとして識別してもよいし、クライアント端末１０にユーザを識別する仕組み（ユーザ識別部）を設けてユーザを識別してもよい。例えば、クライアント端末１０に複数の操作部１８を設け、予めユーザ毎に異なる操作部１８を割り当て、ユーザ識別部により、操作部１８の識別情報に基づいてユーザを識別することができる。また、クライアント端末１０にセンサを設け、このセンサの出力に基づきユーザを識別してもよい。例えば、クライアント端末１０にカメラなどの撮像部を設け、ユーザ識別部により、撮像部が撮像したユーザの画像から公知の手法を用いて特徴を抽出し、抽出した特徴と予めユーザ毎に記憶した特徴とを比較することによってユーザを識別することができる。また、クライアント端末１０の操作部１８をタッチパネルで構成すると共に人体通信の信号を検出する検出部を設け、ユーザ識別部により、検出部が検出した信号と予めユーザ毎に記憶した信号とを比較することによって、タッチパネルにタッチしたユーザを識別することができる。【００７５】
また、上記では、オブジェクト３１を操作するユーザが変わった場合に、通信制御部１１ｃにより編集情報をサーバ２０に送信する構成としたが、誰かが次に操作を行わなくても編集情報はサーバ２０に送信されるよう、例えば、途中から共同作業に参加するクライアント端末１０がある場合に、そのクライアント端末１０を操作するユーザにもオブジェクト３１が編集されていることを知らせることができるよう、操作が行われずに予め定めた所定時間が経過した時に、通信制御部１１ｃにより編集情報をサーバ２０に送信するようにしてもよい。具体的には、通信制御部１１ｃは、最後に操作が行われた時刻と現在の時刻とを比較して、所定時間以上操作が行われていない場合（時刻の差が予め定めた閾値以上の場合）は、編集が終了したとみなし、編集情報をサーバ２０に送信する。なお、この制御についても、作業画面３０に表示されているコンテンツ全体に対して行ってもよいし、オブジェクト毎に行ってもよい。【００７６】
あるいは、操作内容が変わった時に、通信制御部１１ｃにより編集情報をサーバ２０に送信するようにしても良い。すなわち、操作するユーザが同じであっても、操作内容が変わるということは、そこで作業ステップが変わった（例えば、アイデア出しのために手書き入力を行っていたのが、それらをまとめるステップに移ってオブジェクトの移動を開始した）と考えられるため、作業ステップ単位を編集中として、１つの作業ステップが終わった時に編集情報をサーバ２０に送信することもできる。【００７７】
また、上記では、所定時間以上操作が行われていない場合に、通信制御部１１ｃにより編集情報をサーバ２０に送信したが、編集中の状態が所定時間以上継続している場合であっても編集情報がサーバ２０に送信されるよう、例えば、途中から共同作業に参加するクライアント端末１０がある場合に、そのクライアント端末１０を操作するユーザにオブジェクト３１が編集されていることを知らせることができるよう、編集中の状態が所定時間以上継続していると判定した場合は、通信制御部１１ｃにより所定時間毎に編集情報をサーバ２０に送信するようにしてもよい。【００７８】
また、上記では、オブジェクト３１の編集中は、通信制御部１１ｃは編集情報をサーバ２０へは送信せずに他のクライアント端末１０のみに送信したが、編集対象のオブジェクトの種類に応じて、サーバ２０への送信を省略するか否かを変更してもよい。例えば、表示データとして拡張子がpptやpdfのファイルを共有し、そのファイルを編集しながら共同作業を行う場合を考えると、それらのファイルの編集自体が議論の過程となる。そこで、そのような場合には、編集中についても、通信制御部１１ｃにより編集情報をサーバ２０に送信するようにしてもよい。【００７９】
また、図１２では、ユーザがオブジェクト３１を移動させる場合に、途中の状態（位置Ｐ１に移動させた状態）を省略した編集情報を通信制御部１１ｃによりサーバ２０に送信したが、編集操作の内容に応じて、サーバ２０への送信を省略するか否かを変更してもよい。例えば、オブジェクト３１の移動中にどのような経路をたどったかという情報は、あとから経緯を振り返る場面においてもほとんど必要ない。しかしながら、手書き入力では、手書きの順番に意味がある場合もある。そこで、手書き入力の場合は、編集中も通信制御部１１ｃにより編集情報をサーバ２０に送信するようにしてもよい。この場合、手書きの１ストローク内の軌跡までサーバ２０に通知する必要性は乏しく、また、軌跡までサーバ２０に通知すると通知頻度が高くなって通信負荷が大きくなってしまうため、１ストローク毎に編集情報をサーバ２０に送信することが好ましい。【００８０】
また、他のクライアント端末１０への編集情報の送信に関して、もっとも単純な構成は、すべての編集情報をそのまま他のクライアント端末１０に送信する構成であるが、各々のクライアント端末１０で利用する情報は、そのクライアント端末１０の構成やスペックなどの特性によって異なり、クライアント端末１０毎に必要な情報量や情報種類が異なる。そこで、データ処理部１１ｂにより、各々のクライアント端末１０の特性に応じて、クライアント端末１０に送信する編集情報のデータサイズを削減してもよい。【００８１】
例えば、クライアント端末１０で表示する画像については、そのクライアント端末１０の表示部１７の解像度に応じて必要な情報量は変化するため、編集情報として解像度の低い画像をクライアント端末１０に送信すれば十分な場合がある。そこで、図１３に示すように、あるクライアント端末１０Ｎの作業画面３０Ｎでユーザがオブジェクト（画像）を貼り付ける編集を行い、その編集情報（この場合は、オブジェクトのデータ及び表示位置）をクライアント端末１０Ｎから他のクライアント端末１０Ａ、１０Ｂ（必要に応じてサーバ２０）に送信し、送信された表示情報に基づき、ぞれぞれの端末の表示部１７に作業画面３０を表示させる際の編集制御について説明する。ここで、図１３の作業画面３０Ｎ、３０Ａ、３０Ｂ、３０Ｓは、それぞれ、クライアント端末１０Ｎ、１０Ａ、１０Ｂの表示部１７及び必要に応じてサーバ２０の表示部に表示された作業画面である。また、クライアント端末１０Ａの表示部１７の解像度は１９２０×１０８０、クライアント端末１０Ｂの表示部１７の解像度は１０２４×７６８であり、クライアント端末１０Ｎの編集情報におけるオブジェクトのデータサイズは１０２４×１０２４であるとする。クライアント端末１０Ｎのデータ処理部１１ｂは、自端末の表示部１７の解像度と送信先のクライアント端末１０Ａ、１０Ｂの表示部１７の解像度とを比較し（図７のフローチャートのＳ１０５参照）、クライアント端末１０Ａのように、送信先のクライアント端末１０の表示部１７の解像度の方が自端末の表示部１７の解像度より高い又は解像度が同じ場合は、自端末から送信先のクライアント端末１０に編集情報をそのまま送信し（図１３のＴ２）、クライアント端末１０Ｂのように、送信先のクライアント端末１０の表示部１７の解像度の方が低い場合は、その解像度に合わせてデータサイズを圧縮した編集情報を自端末から送信先のクライアント端末１０に送信する（図１３のＴ３、図７のフローチャートのＳ１０６参照）。例えば、図１３の例では、クライアント端末１０Ａには１０２４×１０２４のデータサイズのオブジェクトを含む編集情報を送信し、クライアント端末１０Ｂには５１２×５１２のデータサイズのオブジェクトを含む編集情報を送信する。なお、サーバ２０には、このようなデータ圧縮処理は行わずに編集情報をそのまま（編集情報におけるオブジェクトのデータサイズが１０２４×１０２４のまま）送信し（図のＴ１参照）、元々のオブジェクトの情報が失われないようにすることが好ましい。【００８２】
なお、圧縮とは、解像度に合わせて画素を間引いてデータサイズを小さくしたり、画像データのファイルフォーマットをデータサイズがより小さいフォーマットに変換したり、画像データの色数を減らしてデータサイズを小さくしたり、カラーの画像をモノクロの画像に変換してデータサイズを小さくしたりする場合を含む。【００８３】
また、上述したサーバ２０への編集情報の送信や、他のクライアント端末１０への編集情報の送信について、どのような条件で送信するかを予め共同作業システムで設定してもよいが、ユーザが必要に応じて設定できるようにしてもよい。図１４に、クライアント端末１０からサーバ２０に送信する編集情報のデータ量削減のレベルの一例を示す。例えば、図１４に示すように、編集情報のデータ量が削減される量に応じてレベルを設け、レベルを選択する画面をクライアント端末１０の表示部１７（又は、サーバ２０の表示部）に表示して、ユーザがレベルを選択できるようにしてもよい。図１４の表では、サーバ２０に送信する編集情報のデータ量削減のレベルは大きく３つに分かれており、各レベルは、表の上から下に向かって編集情報のデータ削減量が増えるように並んでいる。これらのレベルを用い、サーバ２０に送信する編集情報について、データを削減せず、全ての編集操作を編集情報としてサーバ２０に送信するか、編集中の編集操作の情報を省略する（例えば、一定時間内の連続操作を省略したり、一連の編集操作のうち最初と最後の操作を除く全ての操作を省略する）か、同じ位置の連続操作の情報を省略する（例えば、同じ位置で連続操作が行われたかを、コンテンツ全体もしくはオブジェクト毎に判定し、一定時間内の連続操作を省略したり、一連の編集操作のうち最初と最後の操作を除く全ての操作を省略する）かを、ユーザが選択できる。なお、図１４では、端末−サーバ間の編集情報の通信の例を記載したが、端末−端末間の通信についても、同様に、解像度と解像度に応じた圧縮量を変更できるようにしてもよい。【００８４】
また、通信ネットワークの通信負荷を減らすという目的からすると、通信状況に応じて削減レベルを設定するようにしてもよい。例えば、クライアント端末１０の通信制御部１１ｃ（又は、サーバ２０の通信制御部２１ｂ）が通信ネットワークの帯域を計測し、帯域が狭い場合は削減量を多く、帯域に余裕がある場合には削減量を少なくするように制御することもできる。あるいは、クライアント端末１０側の通信処理能力に応じて削減量を調整できるようにしてもよい。【００８５】
また、図４Ｂに示すように、サーバ２０はインターネット上、クライアント端末１０同士は職場のイントラネットに接続するなど、クライアント端末１０間の通信環境を良くする（クライアント端末１０間の通信速度がクライアント端末１０とサーバ２０間の通信速度よりも大きいネットワーク構成にする）ことにより、クライアント端末１０間の同期のパフォーマンスを向上させることができる。【００８６】
更に、クライアント端末１０間の通信については、表示の同期のパフォーマンスを向上させるために、例えば、ＵＤＰ（User Datagram Protocol）などの特定の通信方式（送信したデータが相手側に正しく受信されることが保証されない通信方式、すなわち、データが相手に届いたかの確認や届いていない場合のデータの再送を行わない通信方式）を用いてもよい。例えば、クライアント端末１０の通信制御部１１ｃは、この特定の通信方式を用いて、編集情報を他のクライアント端末１０に送信することができる。この場合、クライアント端末１０間で表示データが同じ状態となることが保障されない。例えば、通信に失敗した場合に送信先のクライアント端末１０の表示データにその編集が反映されなかったり、複数のユーザによりたまたま同じオブジェクトを同時に操作してしまった場合にそれぞれのクライアント端末１０の表示部１７に表示されているオブジェクトが異なる状態となってしまったりする可能性がある。このような不都合を解決するために、図８のフローチャート図のＳ２０５に示すように、サーバ２０は表示データを更新した時に、更新した表示データを全てのクライアント端末１０に送信して表示データを更新することができる。ここで、更新のための編集情報をサーバ２０に送信したクライアント端末１０を、更新した表示データの送信先から除いても良い。即ち、サーバ２０は、クライアント端末１０から編集情報を受信した場合に、受信した編集情報に基づいてオブジェクトを編集した表示データを他のクライアント端末１０に送信してもよい。【００８７】
なお、上記では、クライアント端末１０同士が特定の通信方式を用いて通信を行っている場合に、サーバ２０がクライアント端末１０に更新した表示データを送信したが、編集操作を行ったクライアント端末１０から編集情報を受信し、かつ、特定の条件を満たした場合（例えば、予め定めた一定期間が経過した場合、編集回数が予め定めた一定回数に到達した場合、遠隔会議の進行を行うユーザなどが使用する特定のクライアント端末１０からの編集情報を受信した場合、圧縮された編集情報が他のクライアント端末１０に送信された場合など）に、サーバ２０がクライアント端末１０に更新した表示データを送信するようにしても良い。【００８８】
また、一般的に、通信を行う際にはデータ本体の他に送信先情報などのオーバーヘッドが必要になるため、同じサイズのデータを送信する場合であっても、小さいサイズのデータを多数回送信するよりも、大きいサイズのデータを１回で送信する方がデータ通信量は少なくなる。ここで、端末−端末間の同期に関しては通信をまとめるとリアルタイム性が損なわれるため好ましくないが、端末−サーバ間の通信に関してはリアルタイム性の要求は低い。そこで、端末−サーバ間の通信に関しては、通信頻度を減らすために何回かの編集情報をまとめて１回の通信で送信するようにしてもよい。【００８９】
また、クライアント端末１０やサーバ２０では、受け取った編集情報に基づき、表示データを最新の状態に更新するとともに、今まで受け取った編集情報についても保存しておき、保存した編集情報を用いて任意の時点での作業画面３０を表示できるようにし、共同作業の経緯を振り返ることができるようにしてもよい。また、保存した編集情報を用いて作業画面３０をUndo/Redoできるようにしてもよい。【００９０】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、そのクライアント端末１０やサーバ２０の構成や制御部の制御は適宜変更可能である。【００９１】
例えば、上記実施例では、編集操作を行うクライアント端末１０から、他のクライアント端末１０やサーバに編集情報を送信する場合を説明したが、オブジェクトを編集して更新した表示データを送信してもよい。
【産業上の利用可能性】
【００９２】
本発明は、複数の端末を用いて共同作業を行う共同作業システム、各々の端末における編集を制御する編集制御プログラム、当該編集制御プログラムを記録した記録媒体及び共同作業システムにおける編集制御方法に利用可能である。
【符号の説明】
【００９３】
１０、１０Ａ、１０Ｂ  クライアント端末
１１  制御部
１１ａ  操作判定部
１１ｂ  データ処理部
１１ｃ  通信制御部
１２  ＣＰＵ
１３  ＲＯＭ
１４  ＲＡＭ
１５  記憶部
１６  通信Ｉ／Ｆ部
１７  表示部
１８  操作部
２０  サーバ
２１  制御部
２１ａ  管理部
２１ｂ  通信制御部
２２  ＣＰＵ
２３  ＲＯＭ
２４  ＲＡＭ
２５  記憶部
２６  通信Ｉ／Ｆ部
３０、３０Ａ、３０Ｂ、３０Ｎ，３０Ｓ  作業画面
３１  オブジェクト
【図１】
2017154565.tif 000003
【図２】
2017154565.tif 000004
【図３】
2017154565.tif 000005
【図４Ａ】
2017154565.tif 000006
【図４Ｂ】
2017154565.tif 000007
【図５Ａ】
2017154565.tif 000008
【図５Ｂ】
2017154565.tif 000009
【図６Ａ】
2017154565.tif 000010
【図６Ｂ】
2017154565.tif 000011
【図７】
2017154565.tif 000012
【図８】
2017154565.tif 000013
【図９】
2017154565.tif 000014
【図１０】
2017154565.tif 000015
【図１１】
2017154565.tif 000016
【図１２】
2017154565.tif 000017
【図１３】
2017154565.tif 000018
【図１４】
2017154565.tif 000019
【国際調査報告】
2017154565.tif 000020
2017154565.tif 000021