(57)【要約】【課題】端末間の同期のパフォーマンスを向上させ、適切に操作の競合を解消する。【解決手段】１又は複数のオブジェクトを含む会議データを管理するサーバと、サーバから会議データを受信して記憶する複数の端末と、が通信ネットワークで接続され、複数の端末で１又は複数のオブジェクトを閲覧し、編集することによって共同作業を行う共同作業システムにおいて、各々の端末は、所定のオブジェクトに対する編集操作が行われた場合に、編集操作の内容を示す編集情報をサーバと他の端末とに送信し、サーバは、端末から編集情報を受信した場合に、編集情報における所定のオブジェクトに対する編集操作が、会議データにおける所定のオブジェクトの状態と整合するか（編集が矛盾しないか）を判断し、その判断結果を、各々の端末に通知する。【選択図】図８
2018067084.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）ディスプレイなどで構成され、サーバ２０から受信した会議データに基づく画面や他のクライアント端末１０から受信した編集情報に基づいてオブジェクトを編集した画面を表示する。
【００４６】
操作部１８は、マウスやキーボード、表示部１７上に配置された格子状の電極からなるタッチセンサなどで構成され、オブジェクトの移動や拡大／縮小、手書き入力、テキスト入力、画像の貼り付けなどの編集操作を受け付け、編集操作の内容に応じた編集信号を操作判定部１１ａに出力する。
【００４７】
［サーバ］
サーバ２０は、コンピュータ装置などの管理装置であり、図７（ａ）に示すように、制御部２１と記憶部２５と通信Ｉ／Ｆ部２６と、必要に応じて、表示部及び操作部などで構成される。
【００４８】
制御部２１は、マイクロプロセッサ等により構成されるＣＰＵ２２と、ＲＯＭ２３やＲＡＭ２４などのメモリと、で構成され、ＣＰＵ２２は、ＲＯＭ２３や記憶部２５から制御プログラムを呼び出し、ＲＡＭ２４に展開して実行することにより、サーバ２０全体の動作を制御する。上記制御部２１は、図７（ｂ）に示すように、管理部２１ａ、判断部２１ｂ、通知部２１ｃ、通信制御部２１ｄなどとしても機能する。
【００４９】
管理部２１ａは、共同作業の開始時にクライアント端末１０に送信する会議データを記憶部２５などに保存して管理し、クライアント端末１０から編集情報を受信した場合は、判断部２１ｂの判断結果に従って、当該編集情報に基づき、会議データを更新する（会議データに編集情報の内容を反映させ、編集対象のオブジェクトの状態を変更する）。また、管理部２１ａは、クライアント端末１０から、矛盾する編集を適用する旨の指示を受信した場合は、当該編集操作を適用して会議データを修正する。
【００５０】
判断部２１ｂは、クライアント端末１０から編集情報を受信したら、記憶部２５などに保存している会議データとクライアント端末１０から受信した編集情報とを比較して、編集が矛盾するか否かを判断する。具体的には、編集情報における当該オブジェクトに対する編集操作が、保存している会議データにおける編集対象のオブジェクトの状態（表示位置や表示サイズ）と整合するか、例えば、編集操作の前のオブジェクトの状態が保存している会議データにおける当該オブジェクトの最新の状態に一致するかを判断する。オブジェクトの状態が一致している場合は編集操作が整合する（編集が矛盾しない）と判断し、オブジェクトの状態が一致していない場合（編集操作前に既にオブジェクトが他の位置に移動されていたり、削除されていたりする場合）は編集操作が整合しない（編集が矛盾する）と判断し、判断結果を管理部２１ａや通知部２１ｃに転送する。
【００５１】
通知部２１ｃは、判断部２１ｂの判断結果を各クライアント端末１０に通知する。具体的には、判断部２１ｂにより編集が矛盾しないと判断された場合は、編集情報に基づいて更新した会議データを各クライアント端末１０に通知したり、オブジェクトの状態を変更（編集情報に基づいて会議データを更新）した旨を各クライアント端末１０に通知したりする。一方、判断部２１ｂにより編集が矛盾すると判断された場合は、矛盾を解消する指示を各クライアント端末１０に通知する。また、通知部２１ｃは、編集が矛盾すると判断した場合に、クライアント端末１０に、編集操作の受付を禁止する指示を通知したり、当該編集操作を行ったクライアント端末１０に、編集が矛盾する（編集操作が整合しない）旨を通知したりする。
【００５２】
通信制御部２１ｄは、管理部２１ａの指示に従って、クライアント端末１０に会議データを送信したり、状態を変更した旨や矛盾を解消する指示を通知したり、クライアント端末１０から編集情報を受信したりする。
【００５３】
上記管理部２１ａ、判断部２１ｂ、通知部２１ｃ、通信制御部２１ｄは、ハードウェアとして構成してもよいし、制御部２１を、管理部２１ａ、判断部２１ｂ、通知部２１ｃ、通信制御部２１ｄとして機能させるソフトウェア（編集管理プログラム）として構成し、当該編集管理プログラムをＣＰＵ２２に実行させるようにしてもよい。
【００５４】
記憶部２５は、メモリやＨＤＤ、ＳＳＤなどで構成され、会議データ、クライアント端末１０から受信した編集情報、通信ネットワークに接続されているクライアント端末１０のアドレス情報などを記憶する。
【００５５】
通信Ｉ／Ｆ部２６は、ＮＩＣやモデムなどで構成され、通信ネットワークを介して接続されているクライアント端末１０との通信を確立する。
【００５６】
なお、図５乃至図７は、本実施例の共同作業システムの一例であり、その構成や制御内容は適宜変更可能である。例えば、上記では複数のクライアント端末１０を同等に取り扱っているが、サーバ２０はクライアント端末１０毎に制御を変えてもよい。
【００５７】
以下、上記構成の共同作業システムの動作について具体的に説明する。なお、各クライアント端末１０は、通信Ｉ／Ｆ部２６を介してサーバ２０にアクセスし、サーバ２０から会議データと共同作業を行う他のクライアント端末１０の情報（通信ネットワーク上のアドレス情報、表示部１７の解像度情報など）を取得して記憶部１５などに保存し、表示部１７に、会議データに含まれる１又は複数のオブジェクトに対して共同作業を行う画面（作業画面と呼ぶ。）を表示させているものとする。
【００５８】
サーバ２０のＣＰＵ２２は、ＲＯＭ２３又は記憶部２５に記憶した編集管理プログラムをＲＡＭ２４に展開して実行することにより、図８のフローチャート図に示すサーバ２０の各ステップの処理を実行する。また、クライアント端末１０のＣＰＵ１２は、ＲＯＭ１３又は記憶部１５に記憶した編集制御プログラムをＲＡＭ１４に展開して実行することにより、図８のフローチャート図に示すクライアント端末１０の各ステップの処理、図１０及び図１１のフローチャート図に示す各ステップの処理を実行する。
【００５９】
図８に示すように、クライアント端末１０（操作を実行するクライアント端末１０）の制御部１１（操作判定部１１ａ）は、操作部１８から出力される操作信号に基づいて、オブジェクトが操作されたかを判定し、編集操作（例えば、オブジェクトの移動）が実施されたら（Ｓ１０１）、その編集操作に基づいて、オブジェクトの状態を変更する（Ｓ１０２）。そして、制御部１１（処理部１１ｂ）は、必要に応じて、自端末の表示部１７の解像度と他のクライアント端末１０の表示部１７の解像度とを比較し、他のクライアント端末１０の解像度が低い場合はオブジェクトのデータを圧縮するなど処理を行い、その後、制御部１１（通信制御部１１ｃ）は、サーバ２０及び他のクライアント端末１０に編集情報を送信して、オブジェクトの状態の変更を通知する（Ｓ１０３）。
【００６０】
上記編集情報は、編集操作によるオブジェクトの状態の変更を伝えるのに必要な情報で構成される。図９は、編集操作としてオブジェクトの移動を行った時の編集情報の一例であり、編集情報は、編集操作を特定する情報（操作内容）と編集対象のオブジェクトＩＤと編集操作前の状態（変更前の状態、ここではオブジェクトの中心座標）と編集操作後の状態（変更後の状態、ここではオブジェクトの中心座標）と必要に応じて編集操作を行った時刻などで構成される。このように、クライアント端末１０から送信する編集情報に、操作内容と変更後の状態だけでなく、変更前の状態も含めることにより、その編集操作を取り消す際に、以前の状態を過去の履歴から探す必要がなくなり、後述する矛盾の解消処理を少ない処理数で実施することができる。
【００６１】
図８に戻って、他のクライアント端末１０の制御部１１（通信制御部１１ｃ）は、操作を実行するクライアント端末１０から、編集情報を受信したら（Ｓ１０４）、受信した編集情報に基づいて、オブジェクトの状態を変更する（Ｓ１０５）。
【００６２】
また、サーバ２０の制御部２１（通信制御部２１ｄ）は、操作を実行するクライアント端末１０から、編集情報を受信したら（Ｓ１０６）、制御部２１（判断部２１ｂ）は、記憶部２５などに保存している会議データと受信した編集情報とを比較し、編集が矛盾するかを判断する（Ｓ１０７）。編集が矛盾しないと判断した場合は、制御部２１（管理部２１ａ）は、受信した編集情報に基づいて、オブジェクトの状態を変更（会議データを更新）する（Ｓ１０８）。一方、編集が矛盾すると判断した場合は、制御部２１（通知部２１ｃ）は、全てのクライアント端末１０（操作を実行するクライアント端末１０及び他のクライアント端末１０）に矛盾を解消する指示を通知する（Ｓ１０９）。
【００６３】
全てのクライアント端末１０の制御部１１（通信制御部１１ｃ）は、サーバ２０から矛盾の解消を指示する通知を受け取ったら（Ｓ１１０）、矛盾の解消処理（編集操作の取り消し）を実施する（Ｓ１１１）。なお、サーバ２０の制御部２１（管理部２１ａ）が会議データを更新したら、制御部２１（通信制御部２１ｄ）は更新した会議データを各クライアント端末１０に送信し、各クライアント端末１０の制御部１１（処理部１１ｂ）は、記憶部１５などに保存している会議データを、受信した会議データに更新するようにしてもよい。
【００６４】
このように、編集操作を実行するクライアント端末１０は、編集情報をサーバ２０のみならず、他のクライアント端末１０に直接送信するため、クライアント端末１０間の同期のパフォーマンスを向上させ、操作の競合の発生を抑制することができる。また、サーバ２０は、編集情報を受信したら、編集が矛盾するかを判断し、編集が矛盾すると判断した場合はクライアント端末１０に矛盾を解消する指示を通知し、クライアント端末１０は、その指示に従って矛盾の解消処理（編集操作の取り消し）を実施するため、操作の競合が発生した場合であっても、操作の競合を適切に解消することができる。
【００６５】
ここで、矛盾を解消する処理（編集操作の取り消し）を行う場合、それ以降にも編集対象のオブジェクトに対して編集操作が行われている可能性があり、その場合に、該当する編集操作以降に行われている編集操作も取り消してもよいが、該当する編集操作以降に行われている編集操作で、取り消し対象になっているパラメータ（例えば、位置）が変更されている場合には、そのパラメータについては取り消し（編集操作前の状態への上書き）を行わないようにしてもよい。例えば、編集操作１で、オブジェクト１を（０，０）から（５０，０）へ移動し、次の編集操作２で、オブジェクト１を（５０，０）から（１００，０）へ移動した場合において、編集操作１を取り消す場合は、編集操作１のパラメータ（位置）は変更しない（編集操作前の状態（０，０）への上書きは行わない）ようにする。図１０は、その場合の処理の詳細を示しており、まず、制御部１１（処理部１１ｂ）は、矛盾を解消するために変更する各パラメータについて、それ以降の編集操作で当該パラメータが変更されているか否かを判断し（Ｓ２０１）、パラメータが変更されていない場合は、そのパラメータを変更して（Ｓ２０３）、矛盾の解消処理を終了する。
【００６６】
また、ある時点の編集操作を取り消した場合に、当該編集操作以降に行われた編集操作を改めて反映させるようにしても良い。例えば、編集操作１、２、３、４の順番でオブジェクトに対して処理を行った場合に、編集操作２を取り消すときには、編集操作２を取り消してオブジェクトを編集操作１の後の状態に戻した後に、編集操作３、４を改めて適用する（編集操作３、４が行われた後の状態にする）こともできる。図１１は、その処理の詳細を示しており、まず、制御部１１（処理部１１ｂ）は、矛盾を解消するために編集操作の取り消しを行い（Ｓ３０１）、その後、当該編集操作以降に行われた編集操作を反映し直して（Ｓ３０２）、矛盾の解消処理を終了する。
【００６７】
上記図１０のＳ２０２で変更ありと判断した場合、そのパラメータは変更されないが、編集操作は無かったことになるため、それ以降の編集操作の「変更前の状態」が変わることになる。これに対応するために、クライアント端末１０から送信する編集情報に、操作内容とその結果（変更後の状態）だけでなく、変更前の状態も含める場合において、上記フローで「変更あり」の場合には、変更しなかったパラメータに関して、次にそのパラメータを変更する編集操作の「変更前の状態」に、取り消し対象の編集操作の「変更前の状態」を上書きするようにしてもよい。
【００６８】
例えば、編集操作１で、オブジェクト１を（０，０）から（５０，０）へ移動し、次の編集操作２で、オブジェクト１を（５０，０）から（１００，０）へ移動した場合に、オブジェクト１の座標は編集操作２でも変更されているため、編集操作１の取り消しではパラメータ（位置）は変更せず、編集操作２は、オブジェクト１の座標（５０、０）から（１００，０）へ移動する編集操作のままとなっている。この後、編集操作２も取り消されることになった場合に、オブジェクト１は（５０，０）に戻されることになり、結果的に編集操作１が適用された状態となってしまう。これを防ぐために、編集操作１を取り消す際に、編集操作２の変更前の状態を編集操作１の変更前の状態に上書きする。すなわち、編集操作２を、オブジェクト１の座標（５０、０）から（１００，０）へ移動する編集操作から、オブジェクト１の座標を（０，０）から（１００，０）へ移動する編集操作に書き換える。このようにすることで、編集操作２が取り消された場合に、オブジェクト１は（０，０）に戻るため、編集操作を正しく取り消すことができる。
【００６９】
また、上記図８では、編集が矛盾すると判断した場合に、サーバ２０からクライアント端末１０に矛盾を解消する指示を通知したが、編集が矛盾しないと判断した場合に、サーバ２０からクライアント端末１０に状態を更新した旨を通知するようにし、各クライアント端末１０では所定時間内に通知を受け取らなかった場合に編集操作を取り消すようにしても良い。
【００７０】
図１２は、この場合の共同作業システムの動作を示すフローチャート図であり、クライアント端末１０（操作を実行するクライアント端末１０）の制御部１１（操作判定部１１ａ）は、図８と同様に、操作部１８から出力される操作信号に基づいて、オブジェクトが操作されたかを判定し、編集操作が実施されたら（Ｓ４０１）、その編集操作に基づいて、オブジェクトの状態を変更する（Ｓ４０２）。そして、制御部１１（処理部１１ｂ）は、必要に応じて、オブジェクトのデータを圧縮するなど処理を行い、その後、制御部１１（通信制御部１１ｃ）は、サーバ２０及び他のクライアント端末１０に編集情報を送信して、オブジェクトの状態の変更を通知する（Ｓ４０３）。
【００７１】
他のクライアント端末１０の制御部１１（通信制御部１１ｃ）は、図８と同様に、操作を実行するクライアント端末１０から、編集情報を受信したら（Ｓ４０４）、受信した編集情報に基づいて、オブジェクトの状態を変更する（Ｓ４０５）。
【００７２】
また、サーバ２０の制御部２１（通信制御部２１ｄ）は、図８と同様に、操作を実行するクライアント端末１０から、編集情報を受信したら（Ｓ４０６）、制御部２１（判断部２１ｂ）は、記憶部２５などに保存している会議データと受信した編集情報とを比較し、編集が矛盾するかを判断する（Ｓ４０７）。ここで、図８では、編集が矛盾すると判断した場合に、サーバ２０からクライアント端末１０に矛盾を解消する指示を通知したが、図１２では、編集が矛盾すると判断した場合は、制御部２１（管理部２１ａ）は、オブジェクトの状態を変更（会議データを更新）せず、編集が矛盾しないと判断した場合は、制御部２１（管理部２１ａ）は、受信した編集情報に基づいて、オブジェクトの状態を変更（会議データを更新）し（Ｓ４０８）、制御部２１（通知部２１ｃ）は、全てのクライアント端末１０（操作を実行するクライアント端末１０及び他のクライアント端末１０）に、オブジェクトの状態を変更した旨を通知する（Ｓ４０９）。
【００７３】
全てのクライアント端末１０の制御部１１（通信制御部１１ｃ）は、オブジェクトの状態を変更してから、予め定めた所定時間内に、サーバ２０からオブジェクトの状態を変更した旨の通知を受け取ったかを判断し（Ｓ４１０）、所定時間内に通知を受け取った場合は、何もせず（すなわち、オブジェクトの状態の変更を維持し）、所定時間内に通知を受け取らなかった場合は、オブジェクトの状態変更を取り消す（オブジェクトに対する編集操作を取り消す）。
【００７４】
このように、サーバ２０は、編集情報を受信したら、編集が矛盾するかを判断し、編集が矛盾しないと判断した場合にクライアント端末１０にオブジェクトの状態を変更した旨を通知し、クライアント端末１０は、オブジェクトの状態を変更してから所定時間内にサーバ２０からオブジェクトの状態を変更した旨の通知を受け取らなかったら、編集操作の取り消しを実施することによって、操作の競合を未然に防止することができる。
【００７５】
ここで、編集の矛盾を解消する処理（図８のＳ１１１、図１２のＳ４１１）を実施している間に、新たな編集操作が行われると、その編集操作がさらに矛盾を発生させてしまう可能性がある。そこで、クライアント端末１０の制御部１１（操作判定部１１ａ）は、制御部１１（処理部１１ｂ）が編集の矛盾を解消する処理を行っている間は、新たな編集操作を受け付けないようにしても良い。このような制御を行うことにより、編集の矛盾を解消している間にさらに矛盾した編集操作が行われてしまう不都合を未然に防止することができる。
【００７６】
また、サーバ２０に編集情報を送信した後、編集の矛盾が確認されるまでの間に、各クライアント端末１０でさらに編集操作が行われる場合も考えられる。この場合、図８や図１２のように、編集操作毎に編集の矛盾をチェックして解消する方法では、編集の矛盾が残った状態でフローを終了してしまう可能性がある。これを防ぐために、サーバ２０は、編集が矛盾していると判断したら、一旦、全てのクライアント端末１０の編集操作の禁止を指示し、矛盾が発生した編集操作以降の編集操作についても矛盾がないかを確認し、矛盾がある場合には、その矛盾の解消も含めて、クライアント端末１０に矛盾を解消する指示を通知するようにしても良い。このような制御を行うことにより、矛盾を解消することによってその後の編集操作でさらに矛盾が発生してしまう場合についても、それらを一度に解消することができる。
【００７７】
また、編集が矛盾していると判断した場合には、その編集操作を行ったクライアント端末１０（又はそのクライアント端末１０のユーザ）に対して、編集が矛盾しているために矛盾を解消した（編集操作を取り消した）旨を通知してもよい。また、編集が矛盾していると判断した場合に、その編集操作を勝手に取り消してしまうのではなく、矛盾を解消するか否か、及び、矛盾の解消方法をユーザに確認するようにしても良い。これにより、ユーザは自分の編集操作が取り消されたことを認識することができる。
【００７８】
また、編集が矛盾している場合に、矛盾した編集操作を適用するか否かをユーザに確認し、適用が指示された場合に、サーバ２０の会議データを、その編集操作が適用できるように修正しても良い。また、矛盾した編集操作の適用を指示された場合に、コピーを作成し、コピーに対して一方の編集操作を適用することによって、双方の編集操作を反映するようにしても良い。この制御について、図１３及び図１４を参照して具体的に説明する。
【００７９】
図１３は、オブジェクト３１を削除する編集操作と移動する編集操作とが競合した場合を示している。具体的には、図１３（ａ）に示すように、クライアント端末１０の表示部１７の作業画面３０にオブジェクト３１が表示されている場合において、図１３（ｂ）に示すように、クライアントＡがオブジェクト３１を削除する操作１を行い、その後、図１３（ｃ）に示すように、クライアントＢがオブジェクト３１を移動する操作２を行った場合を示している。
【００８０】
この場合、サーバ２０により編集が矛盾すると判断された場合に、図１３（ｄ）に示すように、操作２を取り消して操作１を適用する（オブジェクト１を削除する）ことになるが、ユーザが操作２の適用を指示した場合は、図１３（ｅ）に示すように、操作１を取り消し、操作２を適用することもできる。その場合は、サーバ２０は会議データを、操作２を適用可能に修正する（操作１を取り消した後に操作２を適用した状態に変更する）ことにより、編集操作が取り消された後からでも簡単に自分の編集操作を反映又は実行することができる。
【００８１】
また、図１４は、オブジェクト３１をある位置に移動する編集操作と他の位置に移動する編集操作とが競合した場合を示している。具体的には、図１４（ａ）に示すように、クライアント端末１０の表示部１７の作業画面３０にオブジェクト３１が表示されている場合において、図１４（ｂ）に示すように、クライアントＡがオブジェクト３１を第１の位置に移動する操作１を行い、その後、図１４（ｃ）に示すように、クライアントＢがオブジェクト３１を第２の位置に移動する操作２を行った場合を示している。
【００８２】
この場合、サーバ２０により編集が矛盾すると判断された場合に、図１４（ｄ）に示すように、操作２を取り消して操作１を適用する（オブジェクト３１を第１の位置に移動する）ことになるが、図１４（ｅ）に示すように、オブジェクト３１のコピー（複製）を作成し、コピーに対して操作２を適用することにより、他のユーザの編集操作を取り消さずに新たな編集操作として適用することができる。
【実施例２】
【００８３】
次に、本発明の第２の実施例に係る共同作業システム及び編集管理プログラム並びに編集管理方法について、図１５及び図１６を参照して説明する。図１５は、本実施例の共同作業システムの構成を示す模式図であり、図１６は、クライアント端末の構成を示すブロック図である。
【００８４】
上記実施例では、複数のクライアント端末１０とサーバ２０とで共同作業システムを構成したが、図１５に示すように、いずれかのクライアント端末１０がサーバ２０としての機能を備える場合は、共同作業システムからサーバ２０を省略することもできる。
【００８５】
その場合、サーバ２０として機能するクライアント端末１０の制御部１１は、図１６（ｂ）に示すように、操作判定部１１ａ、処理部１１ｂ、通信制御部１１ｃに加えて、管理部１１ｄ、判断部１１ｅ、通知部１１ｆとしても機能する。
【００８６】
管理部１１ｄは、共同作業の開始時にクライアント端末１０に送信する会議データを記憶部１５などに保存して管理し、編集操作が行われたクライアント端末１０から編集情報を受信した場合は、判断部１１ｅの判断結果に従って、当該編集情報に基づき、会議データを更新する（会議データに編集情報の内容を反映させる）。また、管理部１１ｄは、編集操作が行われたクライアント端末１０から、矛盾する編集を適用する旨の指示を受信した場合は、当該編集操作を適用して会議データを修正する。
【００８７】
判断部１１ｅは、記憶部１５などに保存している会議データと編集操作が行われたクライアント端末１０から受信した編集情報とを比較して、編集が矛盾するか否かを判断する。
【００８８】
通知部１１ｆは、判断部１１ｅにより編集が矛盾しないと判断された場合は、編集情報に基づいて更新した会議データを他の各クライアント端末１０に通知したり、オブジェクトの状態を変更（編集情報に基づいて会議データを更新）した旨を他のクライアント端末１０に通知したりする。一方、判断部１１ｅにより編集が矛盾すると判断された場合は、矛盾を解消する指示を他のクライアント端末１０に通知する。また、通知部１１ｆは、編集が矛盾すると判断した場合に、他のクライアント端末１０に、編集操作の受付を禁止する指示を通知したり、当該編集操作を行ったクライアント端末１０に、編集が矛盾する（編集操作が整合しない）旨を通知したりする。
【００８９】
そして、操作判定部１１ａ、処理部１１ｂ、通信制御部１１ｃ、管理部１１ｄ、判断部１１ｅ、通知部１１ｆを備えるクライアント端末１０を第１の実施例のサーバ２０として動作させ、図８及び図１２に示す処理を実行させる。
【００９０】
このように、サーバとして機能するクライアント端末１０は、編集情報を受信したら、編集が矛盾するかを判断し、編集が矛盾すると判断した場合は他のクライアント端末１０に矛盾を解消する指示を通知し、他のクライアント端末１０は、その指示に従って矛盾の解消処理（編集操作の取り消し）を実施するため、操作の競合が発生した場合であっても、操作の競合を適切に解消することができる。また、編集が矛盾しないと判断した場合は他のクライアント端末１０にオブジェクトの状態を変更した旨を通知し、他のクライアント端末１０は、オブジェクトの状態を変更してから所定時間内にサーバとして機能するクライアント端末１０からオブジェクトの状態を変更した旨の通知を受け取らなかったら、編集操作の取り消しを実施することによって、操作の競合の発生を未然に防止することができる。
【００９１】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、そのクライアント端末１０やサーバ２０の構成や制御部の制御は適宜変更可能である。
【産業上の利用可能性】
【００９２】
本発明は、複数の端末を用いて共同作業を行う共同作業システム及び各々の端末における編集を制御する編集制御プログラム並びに当該編集制御プログラムを記録した記録媒体並びに共同作業システムにおける編集制御方法に利用可能である。
【符号の説明】
【００９３】
１０  クライアント端末
１１  制御部
１１ａ  操作判定部
１１ｂ  処理部
１１ｃ  通信制御部
１１ｄ  管理部
１１ｅ  判断部
１１ｆ  通知部
１２  ＣＰＵ
１３  ＲＯＭ
１４  ＲＡＭ
１５  記憶部
１６  通信Ｉ／Ｆ部
１７  表示部
１８  操作部
２０  サーバ
２１  制御部
２１ａ  管理部
２１ｂ  判断部
２１ｃ  通知部
２１ｄ  通信制御部
２２  ＣＰＵ
２３  ＲＯＭ
２４  ＲＡＭ
２５  記憶部
２６  通信Ｉ／Ｆ部
３０  作業画面
３１  オブジェクト
【図１】
2018067084.tif 000003
【図２】
2018067084.tif 000004
【図３】
2018067084.tif 000005
【図４】
2018067084.tif 000006
【図５】
2018067084.tif 000007
【図６】
2018067084.tif 000008
【図７】
2018067084.tif 000009
【図８】
2018067084.tif 000010
【図９】
2018067084.tif 000011
【図１０】
2018067084.tif 000012
【図１１】
2018067084.tif 000013
【図１２】
2018067084.tif 000014
【図１３】
2018067084.tif 000015
【図１４】
2018067084.tif 000016
【図１５】
2018067084.tif 000017
【図１６】
2018067084.tif 000018