(57)【要約】  実施形態によれば、システムは、第１の電子機器において手書き入力されるストロークに対応する複数の点データを前記第１の電子機器から受信する。前記複数の点データは、前記ストロークが手書き入力されている間に、前記第１の電子機器から時系列順に順次送信される。前記システムは、前記複数の点データを、タイムスタンプと共に記憶媒体に格納する。第３の電子機器がサービスに途中からログインした場合、前記システムは、前記記憶媒体に格納されている複数の第１点データを、前記複数の第１点データにそれぞれ対応するタイムスタンプに基づくタイミングで、前記第３の電子機器に時系列順に順次送信する。
2016024329.tif 000002
【特許請求の範囲】
【請求項１】
手書き情報を共有可能なサービスにログインしている第１の電子機器において手書き入力されるストロークに対応する複数の点データを前記第１の電子機器から受信する受信手段であって、前記複数の点データは、前記ストロークが手書き入力されている間に、前記第１の電子機器から時系列順に順次送信される、受信手段と、
前記複数の点データを、前記複数の点データの入力時刻又は受信時刻をそれぞれ示すタイムスタンプと共に、記憶媒体に格納するための処理を実行する処理手段と、
前記サービスにログインしている第２の電子機器に前記複数の点データを時系列順に順次送信する送信手段とを具備し、
第３の電子機器が前記サービスに途中からログインした場合、前記処理手段は、前記第３の電子機器のログイン前に前記記憶媒体に格納された複数の第１点データを、前記複数の第１点データにそれぞれ対応するタイムスタンプに基づくタイミングで、前記第３の電子機器に時系列順に順次送信するための処理を実行する、システム。
【請求項２】
前記処理手段は、前記複数の第１点データを、前記複数の第１点データが受信されたレートよりも速い第１レートで、前記第３の電子機器に時系列順に順次送信する請求項１記載のシステム。
【請求項３】
前記複数の第１点データが受信されたレートに対する前記第１レートの倍率は、可変設定可能である請求項２記載のシステム。
【請求項４】
前記複数の第１点データが受信されたレートに対する前記第１レートの倍率は、前記サービスが開始される時点から前記第３の電子機器がログインする時点までの期間の長さに基づいて決定される請求項２記載のシステム。
【請求項５】
前記第３の電子機器への前記複数の第１点データの送信が完了するまで、前記第３の電子機器におけるストロークの手書き入力が禁止される請求項１記載のシステム。
【請求項６】
手書き情報を共有可能なサービスにログインしている第１の電子機器において手書き入力されるストロークに対応する複数の点データを前記第１の電子機器から受信することであって、前記複数の点データは、前記ストロークが手書き入力されている間に、前記第１の電子機器から時系列順に順次送信される、受信することと、
前記複数の点データを、前記複数の点データの入力時刻又は受信時刻をそれぞれ示すタイムスタンプと共に、記憶媒体に格納することと、
前記サービスにログインしている第２の電子機器に前記複数の点データを時系列順に順次送信することと、
第３の電子機器が前記サービスに途中からログインした場合、前記第３の電子機器のログイン前に前記記憶媒体に格納された複数の第１点データを、前記複数の第１点データにそれぞれ対応するタイムスタンプに基づくタイミングで、前記第３の電子機器に時系列順に順次送信することとを具備する方法。
【請求項７】
前記複数の第１点データを送信することは、前記複数の第１点データを、前記複数の第１点データが受信されたレートよりも速い第１レートで、前記第３の電子機器に時系列順に順次送信することを含む請求項６記載の方法。
【請求項８】
前記複数の第１点データが受信されたレートに対する前記第１レートの倍率は、可変設定可能である請求項７記載の方法。
【請求項９】
前記複数の第１点データが受信されたレートに対する前記第１レートの倍率は、前記サービスが開始される時点から前記第３の電子機器がログインする時点までの期間の長さに基づいて決定される請求項７記載の方法。
【請求項１０】
前記第３の電子機器への前記複数の第１点データの送信が完了するまで、前記第３の電子機器におけるストロークの手書き入力が禁止される請求項６記載の方法。
【請求項１１】
コンピュータによって実行されるプログラムであって、
手書き情報を共有可能なサービスにログインしている第１の電子機器において手書き入力されるストロークに対応する複数の点データを前記第１の電子機器から受信することであって、前記複数の点データは、前記ストロークが手書き入力されている間に、前記第１の電子機器から時系列順に順次送信される、受信することと、
前記複数の点データを、前記複数の点データの入力時刻又は受信時刻をそれぞれ示すタイムスタンプと共に、記憶媒体に格納することと、
前記サービスにログインしている第２の電子機器に前記複数の点データを時系列順に順次送信することと、
第３の電子機器が前記サービスに途中からログインした場合、前記第３の電子機器のログイン前に前記記憶媒体に格納された複数の第１点データを、前記複数の第１点データにそれぞれ対応するタイムスタンプに基づくタイミングで、前記第３の電子機器に時系列順に順次送信すること
の機能を実行するように前記コンピュータを制御するプログラム。
【請求項１２】
前記複数の第１点データを送信することは、前記複数の第１点データを、前記複数の第１点データが受信されたレートよりも速い第１レートで、前記第３の電子機器に時系列順に順次送信することを含む請求項１１記載のプログラム。
【請求項１３】
前記複数の第１点データが受信されたレートに対する前記第１レートの倍率は、可変設定可能である請求項１２記載のプログラム。
【請求項１４】
前記複数の第１点データが受信されたレートに対する前記第１レートの倍率は、前記サービスが開始される時点から前記第３の電子機器がログインする時点までの期間の長さに基づいて決定される請求項１２記載のプログラム。
【請求項１５】
前記第３の電子機器への前記複数の第１点データの送信が完了するまで、前記第３の電子機器におけるストロークの手書き入力が禁止される請求項１１記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ここに記載される実施形態は、手書き情報を共有するための技術に関する。
【背景技術】
【０００２】
近年、タブレット、ＰＤＡ、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。【０００３】
また最近では、手書き情報を共有するための技術も開発されている。手書き情報を共有する技術は、会議のようなビジネスシーンでの利用に有用である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−４４４７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、従来では、別の電子機器からの手書き情報を違和感なくユーザに提示するための技術については考慮されていないのが現状である。【０００６】
本発明の一形態の目的は、手書き情報を違和感なくユーザに提示することができるシステムおよび方法を提供することである。
【課題を解決するための手段】
【０００７】
実施形態によれば、システムは、受信手段と、処理手段と、送信手段とを具備する。前記受信手段は、手書き情報を共有可能なサービスにログインしている第１の電子機器において手書き入力されるストロークに対応する複数の点データを前記第１の電子機器から受信する。前記複数の点データは、前記ストロークが手書き入力されている間に、前記第１の電子機器から時系列順に順次送信される。前記処理手段は、前記複数の点データを、前記複数の点データの入力時刻または受信時刻をそれぞれ示すタイムスタンプと共に、記憶媒体に格納するための処理を実行する。前記送信手段は、前記サービスにログインしている第２の電子機器に前記複数の点データを時系列順に順次送信する。第３の電子機器が前記サービスに途中からログインした場合、前記処理手段は、前記第３の電子機器のログイン前に前記記憶媒体に格納された複数の第１点データを、前記複数の第１点データにそれぞれ対応するタイムスタンプに基づくタイミングで、前記第３の電子機器に時系列順に順次送信するための処理を実行する。
【図面の簡単な説明】
【０００８】
【図１】図１は実施形態に係る電子機器の外観を示す例示的な斜視図である。
【図２】図２は手書き共有サービスを利用する電子機器間の接続を示す例示的な図である。
【図３】図３は図１の電子機器（手書きコラボレーションサーバシステム）と他の各電子機器との間のデータの流れの概要を説明するための例示的な図である。
【図４】図４は複数の電子機器間で手書き情報を共有する画面（カンバス）を示す例示的な図である。
【図５】図５は図１の電子機器のタッチスクリーンディスプレイ上に手書きされる手書き文書を示す例示的な図である。
【図６】図６は手書き共有サービスに別のユーザが途中から参加した時に実行されるべき処理を説明するための例示的な図である。
【図７】図７は図１の電子機器と他の各電子機器との間の手書きデータの流れを説明するための例示的な図である。
【図８】図８はストロークの手書き入力中に複数の点データが一ずつ送信される様子を示す例示的な図である。
【図９】図９はカンバス上に描画される手書きデータの例を示す例示的な図である。
【図１０】図１０は図１の電子機器のデータベースに格納される手書きデータを示す例示的な図である。
【図１１】図１１は図１の電子機器のデータベースのデータ構造を示す例示的な図である。
【図１２】図１２はデータベースに格納された複数の点データが２倍速でリプレイされる様子を示す例示的な図である。
【図１３】図１３は受信レートに対する送信レートの倍率を決定する処理を示す例示的な図である。
【図１４】図１４は図１の電子機器の構成を示す例示的なブロック図である。
【図１５】図１５は図１の電子機器によって実行される手書き共有アプリケーションプログラムの構成を示す例示的なブロック図である。
【図１６】図１６は図１の電子機器によって実行される手書きデータ配信処理の手順を示す例示的なフローチャートである。
【図１７】図１７は図１の電子機器によって実行される点データ保存処理の手順を示す例示的なフローチャートである。
【図１８】図１８は図１の電子機器によって実行されるリプレイ処理の手順を示す例示的なフローチャートである。
【図１９】図１９は図１の電子機器によって実行される、リプレイのための点データ送信処理の手順を示す例示的なフローチャートである。
【図２０】図２０は各参加者の機器によって実行される処理の手順を示す例示的なフローチャートである。
【図２１】図２１はカンバス上に表示されるメニューを説明するための例示的な図である。
【図２２】図２２はカンバス上に表示されるタイムラインを説明するための例示的な図である。
【図２３】図２３はロークバック処理を説明するための例示的な図である。
【発明を実施するための形態】
【０００９】
以下、実施の形態について図面を参照して説明する。  
図１は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペン（スタイラス）または指を使用した手書き入力を実行することが可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。以下では、この電子機器がタブレットコンピュータ１０として実現されている場合を想定する。タブレットコンピュータ１０は、タブレットまたはスレートコンピュータとも称される携帯型電子機器である。タブレットコンピュータ１０は、図１に示すように、本体１１とタッチスクリーンディスプレイ１７とを備える。タッチスクリーンディスプレイ１７は、本体１１の上面に重ね合わされるように取り付けられている。
【００１０】
本体１１は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ１７には、フラットパネルディスプレイと、センサとが組み込まれている。センサは、ペンまたは指と接触されるフラットパネルディスプレイの画面上の位置（接触位置）を検出する。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルの２種類のセンサの双方がタッチスクリーンディスプレイ１７に組み込まれている場合を想定する。
【００１１】
このタッチスクリーンディスプレイ１７は、指と接触される画面上の位置を検出することができ、またペンと接触される画面上の位置を検出することもできる。ペン１００は例えば電磁誘導ペン（デジタイザペン）であってもよい。ユーザは、ペン１００を使用してタッチスクリーンディスプレイ１７の画面上に文字等を書くことができる。この手書き入力操作中においては、画面上のペン１００の動きの軌跡、つまり手書き入力されるストロークが、リアルタイムに画面上に描画される。ペン１００が画面に接触されている間のペン１００の動きの軌跡が１ストロークに相当する。手書き入力された文字または図形などに対応する多数のストロークの集合が手書き文書を構成する。
【００１２】
一つのストロークは、このストローク上の複数の点それぞれに対応する複数の点データの集合によって表現される。各点データは、対応する点の座標（Ｘ座標、Ｙ座標）を示す。
【００１３】
さらに、タブレットコンピュータ１０は、手書きコラボレーション機能を有している。この手書きコラボレーション機能は、手書き情報を複数の電子機器間で共有することが可能な手書き共有サービスを実行する。手書き共有サービスは、各電子機器のユーザが、共有される手書き情報を閲覧すること、他の電子機器のユーザとの協同作業によって手書き情報を編集することを可能にする。
【００１４】
この手書き共有サービスは、このサービスに参加（ログイン）している電子機器において手書き入力される手書きデータを、このサービスに参加（ログイン）している他の各電子機器にリアルタイムに配信する。これによって、これら電子機器の表示画面に表示される手書き文書の内容を同期させることができる。異なるユーザによって手書き入力されたストロークは、異なる形態（例えば、異なる色、異なるペン種、等）で表示されてもよい。
【００１５】
手書き共有サービスは、複数人のグループによって利用される。手書き共有サービスを利用する複数人のグループは、一人のグループオーナ（主催者）と、一人以上の参加者とを含んでも良い。
【００１６】
図２は、手書き共有サービスを利用する電子機器間の接続例を示す。  
電子機器１０Ａは、ユーザＡによって使用されるタブレットコンピュータである。電子機器１０Ｂは、ユーザＢによって使用されるタブレットコンピュータである。電子機器１０Ｃは、ユーザＣによって使用されるタブレットコンピュータである。これら電子機器１０Ａ、１０Ｂ、１０Ｃの各々は、本実施形態のタブレットコンピュータ１０と同等の手書きコラボレーション機能を有している。
【００１７】
電子機器１０Ａ、１０Ｂ、１０Ｃは有線ネットワークまたは無線ネットワークを介して互いに接続される。以下では、電子機器１０Ａ、１０Ｂ、１０Ｃが無線ネットワークを介して互いに接続される場合を想定する。電子機器１０Ａ、１０Ｂ、１０Ｃを互いに無線接続するための方法としては、複数の機器を互いに無線接続することが可能な任意の無線接続規格を使用し得る。例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、またはＷｉ−Ｆｉ  Ｄｉｒｅｃｔ（登録商標）、等が使用されてもよい。
【００１８】
電子機器１０Ａ、１０Ｂ、１０Ｃのいずれか１つは、手書き共有サービスを管理するように構成されたサーバ（手書きコラボレーションサーバシステム）として機能することができる。グループオーナの電子機器が、サーバ（手書きコラボレーションサーバシステム）の役割をしてもよい。グループオーナは手書き共有サービスの主催者に相当する。
【００１９】
このサーバ（手書きコラボレーションサーバシステム）は、手書き共有サービスへの参加を要求している各電子機器が手書き共有サービス（グループ）に参加すること、つまり手書きコラボレーションサーバシステム（手書き共有サービス）にログインすること、を許可するか否かを決定してもよい。手書きコラボレーションサーバシステムから参加（ログイン）の許可を受け取った機器だけが、手書き共有サービスにログインすること、つまりこのグループに参加することが許可されても良い。
【００２０】
ここで、各機器が手書きコラボレーションサーバシステム（手書き共有サービス）へログインする方法としては、この機器自体のＩＤ（アカウント）を使用して手書き共有サービスにログインする方法を使用してもよい。あるいは、この機器を使用するユーザのＩＤ（アカウント）を使用して手書き共有サービスにログインする方法を使用してもよい。つまり、手書き共有サービスに対するログインおよびログアウトは、電子機器自体のＩＤ（アカウント）を使用したログインおよびログアウト、またはユーザのＩＤ（アカウント）を使用したログインおよびログアウトのどちらであってもよい。
【００２１】
いま、電子機器１０Ａ、１０Ｂ、１０Ｃが手書き共有サービスにログインしている状態である場合、つまり電子機器１０Ａ、１０Ｂ、１０Ｃが同じ手書き共有サービスに参加している場合を想定する。電子機器１０Ａ、１０Ｂ、１０Ｃの各々においては、共有される手書き情報を見るための手書き共有画面（カンバス）が表示される。手書き共有画面（カンバス）は電子機器１０Ａ、１０Ｂ、１０Ｃに共通の表示エリアとして使用される。この手書き共有画面（カンバス）は、電子機器１０Ａ、１０Ｂ、１０Ｃ間のビジュアル通信を可能にする。ビジュアル通信は、手書き情報、および他の様々な電子文書を機器間で交換することを可能にする。
【００２２】
ユーザＡ，Ｂ，Ｃの各々が自身の電子機器において手書き入力した手書きデータは、自身の電子機器の手書き共有画面（カンバス）に表示されるだけでなく、他の各ユーザの電子機器の手書き共有画面（カンバス）にもリアルタイムに反映される。この結果、ユーザＡ，Ｂ，Ｃの各々が手書き入力した情報（手書き文字、手書き図形等）をユーザＡ，Ｂ，Ｃ間で交換・共有することができる。
【００２３】
さらに、電子機器１０Ａ、１０Ｂ、１０Ｃは、会議資料のような同じコンテンツをカンバス上に表示することもできる。この場合、各電子機器において手書き入力される手書きデータは、このコンテンツ上に表示される。ユーザＡ，Ｂ，Ｃは、同じコンテンツを見ながら、このコンテンツ上に手書きされる手書き文字、手書き図形等をユーザＡ，Ｂ，Ｃ間で交換・共有することができる。
【００２４】
図３は、手書きコラボレーションサーバシステムと各電子機器との間のデータの流れを示す。
【００２５】
図３では、電子機器１０Ａが、手書きコラボレーションサーバシステムとして動作する場合が想定されている。つまり、電子機器１０ＡのユーザＡがグループオーナであり、電子機器１０ＢのユーザＢが参加者（参加者１）であり、電子機器１０ＣのユーザＣが別の参加者（参加者２）である。
【００２６】
手書きコラボレーションサーバシステム（電子機器１０Ａ）は、電子機器１０Ｂにおいて手書き入力される手書きデータを電子機器１０Ｂから受信する。また、手書きコラボレーションサーバシステム（電子機器１０Ａ）は、電子機器１０Ｃにおいて手書き入力される手書きデータを電子機器１０Ｃから受信する。
【００２７】
さらに、手書きコラボレーションサーバシステム（電子機器１０Ａ）は、電子機器１０Ａにおいて手書き入力される手書きデータと電子機器１０Ｃから受信された手書きデータとを電子機器１０Ｂに送信する。またさらに、手書きコラボレーションサーバシステム（電子機器１０Ａ）は、電子機器１０Ａにおいて手書きに入力される手書きデータと電子機器１０Ｂから受信された手書きデータとを電子機器１０Ｃに送信する。
【００２８】
したがって、電子機器１０Ａのディスプレイにおいては、グループオーナの手書きデータが表示されるだけでなく、参加者１の手書きデータ、さらには参加者２の手書きデータも表示される。
【００２９】
同様にして、電子機器１０Ｂのディスプレイにおいても、参加者１の手書きデータが表示されるだけでなく、グループオーナの手書きデータ、さらには参加者２の手書きデータも表示される。
【００３０】
また同様に、電子機器１０Ｃのディスプレイにおいても、参加者２の手書きデータが表示されるだけでなく、グループオーナの手書きデータ、さらには参加者１の手書きデータも表示される。
【００３１】
電子機器１０Ａは、各電子機器において手書き入力される手書きデータをデータベース１２に格納する。このデータベース１２は、共同作業によって作成および編集される手書き情報を管理するために使用される。
【００３２】
図４は、手書き共有画面（カンバス）の例を示している。各電子機器のカンバス３０Ａにおいては、手書き入力可能な透明のレイヤ（手書きレイヤ）３０Ｂが設定される。この手書きレイヤ３０Ｂ上に、各ユーザの手書きデータが表示される。
【００３３】
電子機器１０Ｂに関しては、この電子機器１０Ｂのカンバス３０Ａにおいては、カンバス３０Ａ上でペン１００Ｂを使用して参加者１によって手書き入力される手書きデータ４０が表示される。さらに、カンバス３０Ａ上においては、他の各電子機器において手書き入力される手書きデータが表示される。他の各電子機器において手書き入力される手書きデータには、参加者２の電子機器１０Ｃにおいて手書き入力された手書きデータ４２と、グループオーナの電子機器１０Ａにおいて手書き入力された手書きデータ４４とが含まれる。
【００３４】
次に、図５を参照して、ストロークと点データについて説明する。
【００３５】
図５においては、「ＡＢＣ」の手書き文字列が「Ａ」、「Ｂ」、「Ｃ」の順番で手書きされた場合が想定されている。
【００３６】
手書き文字「Ａ」は、ペン１００などを使用して手書きされる２つのストローク（「∧」形状の軌跡、「−」形状の軌跡）によって表現される。
【００３７】
ペン１００が移動している間に、「∧」形状のペン１００の軌跡がリアルタイムにサンプリングされる。これによって、「∧」形状のペン１００の軌跡上の複数の点それぞれに対応する複数の点データ（複数の座標データ）ＰＤ１１、ＰＤ１２、…ＰＤ１ｍが次々と得られる。例えば、画面上のペン１００の位置が所定量移動する度に、新たな位置を示す点データが得られてもよい。図５においては、図示の簡単化のために点データの密度が粗く描かれているが、実際には、より高い密度で複数の点データが得られる。これら点データＰＤ１１、ＰＤ１２、…ＰＤ１ｍは、「∧」形状のペン１００の軌跡を画面上に描画するために使用される。ペン１００の動きに追従するように、「∧」形状のペン１００の軌跡がリアルタイムに画面上に描画される。
【００３８】
同様に、「−」形状のペン１００の軌跡も、ペン１００が移動している間に、リアルタイムにサンプリングされる。これによって「−」形状のペン１００の軌跡上の複数の点それぞれに対応する複数の点データ（複数の座標データ）ＰＤ２１、ＰＤ２２、…ＰＤ２ｎが次々と得られる。
【００３９】
手書き文字「Ｂ」は、ペン１００などを使用して手書きされた２つのストロークによって表現される。手書き文字「Ｃ」は、ペン１００などを使用して手書きされた１つのストロークによって表現される。
【００４０】
次に、図６を参照して、手書き情報共有サービスのためのデータの流れについて説明する。
【００４１】
図６では、グループオーナ（電子機器１０Ａ）、参加者１（電子機器１０Ｂ）、参加者２（電子機器１０Ｃ）の３人のグループで議論を行う場合が想定されている。グループオーナ、参加者１、参加者２は、自身の電子機器１０Ａ、１０Ｂ、１０Ｃを持って会議室に集合しても良い。そして、グループオーナ、参加者１、参加者２は、自身の電子機器のカンバスを見ながら、あるいはカンバス上に手書きしながら、議論を行うことができる。
【００４２】
（１）３人のグループで手書きによる議論
参加者１によって電子機器１０Ｂのカンバス上に手書き入力された手書きデータ（手書き文字、手書き図形等）は、電子機器１０Ａに送信される。さらに、参加者１の手書きデータは、電子機器１０Ａによって、電子機器１０Ｃに転送される。よって、参加者１の手書きデータは、電子機器１０Ｂ、電子機器１０Ａ、電子機器１０Ｃの各々のカンバス上に表示される。
【００４３】
同様にして、参加者２によって電子機器１０Ｃのカンバス上に手書き入力された手書きデータも、電子機器１０Ａに送信され、さらに、電子機器１０Ａによって電子機器１０Ｂに転送される。よって、参加者２の手書きデータは、電子機器１０Ｂ、電子機器１０Ａ、電子機器１０Ｃの各々のカンバス上に表示される。
【００４４】
さらに、グループオーナによって電子機器１０Ａのカンバス上に手書き入力された手書きデータは、電子機器１０Ｂおよび電子機器１０Ｃに送信される。よって、グループオーナの手書き情報も、電子機器１０Ａ、電子機器１０Ｂ、電子機器１０Ｃの各々のカンバス上に表示される。
【００４５】
このようにして、３人のグループは、これら３人の手書きが反映されるカンバスの内容を見ながら、議論（会議）を行うことができる。
【００４６】
（２）議論中のグループに参加依頼
手書き情報共有サービスが開始された後に、別のユーザ（参加者３）の電子機器１０Ｄが、この手書き情報共有サービスへの参加（ログイン）を要求するかもしれない。このような状況は、例えば、参加者３が後から会議室に到着して、既に開始されている議論に加わるような場合に発生し得る。
【００４７】
（３）この参加（ログイン）の要求を受信したグループオーナ（電子機器１０Ａ）は、参加者３がこの手書き情報共有サービスのグループに参加（ログイン）することを許可することができる。この場合、電子機器１０Ａは、現在の手書き情報の内容（これまでの議論の内容）を電子機器１０Ｄに送信してもよい。
【００４８】
（４）この結果、電子機器１０Ｄは、現在の手書き情報の内容を電子機器１０Ｄのカンバス上に描画することができる。
【００４９】
（５）しかし、現在の手書き情報の内容をみただけでは、参加者３は、これまでの議論の経過、つまりどの様な経緯を辿って現在の手書き情報が構築されたかを、把握できない可能性がある。
【００５０】
そこで、本実施形態の手書きコラボレーション機能は、手書き情報共有サービスに途中から参加した参加者に、現在の手書き情報がどのような経緯を辿って構築されたかを分かりやすく提示するための新たな機能を備えている。
【００５１】
以下、この新たな機能の概要について説明する。
【００５２】
ある電子機器において手書き入力された手書きデータを別の電子機器に送信するための方法としては、一つのストロークが手書き入力される度にそのストロークのデータ（ストロークデータ）全体を一度に送信するという方法を使用することができる。
【００５３】
しかし、この場合には、ストロークの手書き入力が完了するまでは、つまりペンが画面からリフトアップされることによってペンと画面との接触が解除されるまでは、ストロークデータは送信されない。したがって、例えば、ある電子機器において３つのストロークが順番に手書き入力された場合には、まず、最初のストロークの手書き入力が完了した後に、その最初のストローク全体の形状が別の電子機器のカンバス上に一度に表示される。そして、２番目のストロークの手書き入力が完了した後に、その２番目のストローク全体の形状が別の電子機器のカンバス上に一度に表示される。そして、３番目のストロークの手書き入力が完了した後に、その３番目のストローク全体の形状が別の電子機器のカンバス上に一度に表示される。
【００５４】
このように、別の電子機器のカンバス上においては、個々のストロークが書かれる様子（線が延びていく様子）は再現されず、手書き入力が完了した各ストロークの形状だけが一度に表示される。
【００５５】
一方、ストロークの手書き入力が実際に行われている電子機器においては、そのストロークが書かれる様子（線が延びていく様子）がリアルタイムに表示される。
【００５６】
本実施形態では、どの電子機器においてストロークが手書き入力された場合でも、そのストロークが書かれる様子を他の全ての電子機器のカンバス上において再現できるようにするために、手書きデータは、ストローク単位では無く、点データ単位で送信される。
【００５７】
手書きコラボレーションサーバシステム（電子機器１０Ａ）は、手書き情報共有サービスにログインしている電子機器（例えば、電子機器１０Ｂ）において手書き入力されるストロークに対応する複数の点データを、電子機器１０Ｂから受信する。これら複数の点データは、このストロークが手書き入力されている間に、電子機器１０Ｂから手書きコラボレーションサーバシステム（電子機器１０Ａ）に時系列順に順次送信される。つまり、ストロークに対応する複数の点データが入力された順に、これら複数の点データが電子機器１０Ｂから手書きコラボレーションサーバシステム（電子機器１０Ａ）に１つずつ転送される。
【００５８】
手書きコラボレーションサーバシステム（電子機器１０Ａ）は、これら複数の点データを、これら複数の点データの受信時刻をそれぞれ示すタイムスタンプと共に、データベース１２に格納するための処理を実行する。各点データに対応するタイムスタンプは、その点データの入力時刻を示してもよい。この場合、電子機器１０Ｂは、各点データをその点データが入力された入力時刻を示す時間情報と共に手書きコラボレーションサーバシステム（電子機器１０Ａ）に送信してもよい。
【００５９】
そして、手書きコラボレーションサーバシステム（電子機器１０Ａ）は、手書き情報共有サービスにログインしている別の電子機器（例えば、電子機器１０Ｃ）に、これら複数の点データを時系列順に順次送信する。この場合、手書きコラボレーションサーバシステム（電子機器１０Ａ）は、一つの点データが電子機器１０Ａから受信される度に、この受信された点データを電子機器１０Ｃに送信するという処理を実行してもよい。
【００６０】
電子機器１０Ｃは、電子機器１０Ｃの画面上で手書き入力が行われた場合と同様に、複数の点データを電子機器１０Ａから順番に受信することができる。電子機器１０Ｃは、これら受信された複数の点データに基づいて、電子機器１０Ａにおいて手書き入力されたストロークに対応する軌跡を電子機器１０Ｃのカンバス上にリアルタイムに描画することができる。このため、電子機器１０Ｃのカンバス上においても、電子機器１０Ａにおいて手書き入力されたストロークが書かれる様子（線が延びていく様子）を再現することができる。
【００６１】
電子機器１０Ｄが手書き情報共有サービスに途中からログインした場合、手書きコラボレーションサーバシステム（電子機器１０Ａ）は、電子機器１０Ｄのログイン前にデータベース１２に格納された全ての点データ（複数の第１点データ）を、これら複数の第１点データにそれぞれ対応するタイムスタンプに基づくタイミングで、電子機器１０Ｄに時系列順に順次送信するための処理を実行する。
【００６２】
これにより、既に書かれた多数のストロークが、それらストロークの各々が書かれる様子がリプレイされるかのように電子機器１０Ｄのカンバス上に表示される。よって、電子機器１０Ｄのユーザ（途中参加者）は、どの様な経緯を辿って現在の手書き情報が構築されたかを、容易に把握することができる。
【００６３】
ある一つのストロークに関しては、電子機器１０Ｄは、電子機器１０Ｄの画面上で手書き入力が行われた場合と同様に、このストロークに対応する複数の点データを順番に受信することができる。電子機器１０Ｄは、これら受信された複数の点データに基づいて、電子機器１０Ａにおいて手書き入力されたストロークに対応する軌跡を電子機器１０Ｄのカンバス上にリアルタイムに描画することができる。よって、各ストロークが書かれる様子（線が延びていく様子）を再現することができる。
【００６４】
さらに、各ストロークに対応する複数の点データは、これら点データが書かれたタイミングに対応する送信タイミングで、電子機器１０Ｄに順次送信される。このため、書かれたストローク（線）の速度も再現することが可能となる。
【００６５】
図７は、電子機器間の手書きデータの流れを示している。
【００６６】
図７では、図６と同様に、グループオーナ（電子機器１０Ａ）、参加者１（電子機器１０Ｂ）、参加者２（電子機器１０Ｃ）の３人のグループで議論を行う場合が想定されている。
【００６７】
（１）参加者１の電子機器１０Ｂにおいてストロークが手書き入力される。このストロークは電子機器１０Ｂのカンバス上にリアルタイムに表示される。つまり、電子機器１０Ｂのカンバス上のペンの動きに追従するようにストローク（線）が描画される。
【００６８】
（２）上述したように、ストロークは、その始点から終点までの複数の点データ（複数の座標）の集合として表現される。
【００６９】
（３）このストロークのデータ（ストロークデータ）は、点データ単位でグループオーナ（電子機器１０Ａ）に送信される。この様子を図８に示す。図８に示されているように、電子機器１０Ｂにおいては、ペン１００Ｂによってストロークが手書き入力されている間に、このストロークに対応する複数の点データＰＤ１、ＰＤ２、…、ＰＤ８が次々と得られる。そして、これら点データＰＤ１、ＰＤ２、…、ＰＤ８はグループオーナ（電子機器１０Ａ）に一つずつ送信される。つまり、これら点データＰＤ１、ＰＤ２、…、ＰＤ８はグループオーナ（電子機器１０Ａ）に時系列順に順次送信される。例えば、点データＰＤ１が得られた時には、点データＰＤ１に基づく描画処理が電子機器１０Ｂによって実行され、さらに点データＰＤ１をグループオーナ（電子機器１０Ａ）に送信する処理も電子機器１０Ｂによって実行される。そして、次の点データＰＤ２が得られた時には、点データＰＤ２に基づく描画処理が電子機器１０Ｂによって実行され、さらに点データＰＤ２をグループオーナ（電子機器１０Ａ）に送信する処理も電子機器１０Ｂによって実行される。
【００７０】
このようにして、ストロークが手書き入力されている間に、多数の点データが連続的にグループオーナ（電子機器１０Ａ）に送信される。各点データは、ストロークＩＤ、ユーザＩＤ（またはデバイスＩＤ）、点種別（始点／中点／終点）、ペン属性（ペン種、色、等）等と一緒に、グループオーナ（電子機器１０Ａ）に送信されてもよい。ストロークＩＤは、手書き入力されたストロークを識別可能な情報である。各電子機器は、乱数などを使用して複数桁のユニークＩＤを生成し、このユニークＩＤの値を、最初に手書き入力されたストロークを識別するためのストロークＩＤとして使用しても良い。２番目以降に手書きされたストロークについては、ユニークＩＤをインクリメントすることによって得られる値が、対応するストロークＩＤとして使用されてもよい良い。同一のストロークに対応する点データの各々には、同じストロークＩＤが与えられる。
【００７１】
（４）グループオーナ（電子機器１０Ａ）は、電子機器１０Ｂから時系列順に順次送信される複数の点データを受信する。そして、グループオーナ（電子機器１０Ａ）は、これら複数の点データを、これら複数の点データの受信時刻（受信タイミング）または入力時刻（入力タイミング）をそれぞれ示すタイムスタンプと共に、データベース１２に格納する。各タイムスタンプは、対応する点データがグループオーナ（電子機器１０Ａ）によって受信された時刻を示してもよいし、同一のストローク内の先頭の点データが受信された時点から対応する点データが受信される時点までの相対時間を示してもよい。あるいは、各タイムスタンプは、対応する点データが入力された時刻を示してもよいし、同一のストローク内の先頭の点データが入力された時点から対応する点データが入力される時点までの相対時間を示してもよい。
【００７２】
（５）グループオーナ（電子機器１０Ａ）は、電子機器１０Ｂから受信された複数の点データを電子機器１０Ｃに送信する。
【００７３】
この場合、これら複数の点データは、これら複数の点データに対応するタイムスタンプに基づくタイミングで、電子機器１０Ｃに時系列順に順次送信されてもよい。これにより、複数の点データが受信された間隔と同じ間隔で、これら複数の点データを電子機器１０Ｃに送信することができる。
【００７４】
送信される各点データには、ストロークＩＤ、ユーザＩＤ（またはデバイスＩＤ）、点種別（始点／中点／終点）、ペン属性（ペン種、色、等）等が付加される。
【００７５】
あるいは、グループオーナ（電子機器１０Ａ）が電子機器１０Ｂから一つの点データを受信した時に、グループオーナ（電子機器１０Ａ）が、その点データを電子機器１０Ｃに即座に送信しても良い。
【００７６】
さらに、グループオーナ（電子機器１０Ａ）は、電子機器１０Ｂからの複数の点データに基づいて、電子機器１０Ａにおいて手書き入力されたストロークに対応する軌跡をグループオーナのカンバス上にリアルタイムに描画することもできる。
【００７７】
（６）電子機器１０Ｄが手書き情報共有サービスに途中からログインした場合、グループオーナ（電子機器１０Ａ）は、これまでにデータベース１２に格納された全ての点データを電子機器１０Ｄに送信する。この場合、これら全ての点データは、これら全てのデータにそれぞれ対応するタイムスタンプに基づくタイミングで、電子機器１０Ｄに時系列順に順次送信される。送信される各点データには、ストロークＩＤ、ユーザＩＤ（またはデバイスＩＤ）、点種別（始点／中点／終点）、ペン属性（ペン種、色、等）等が付加される。
【００７８】
これらの点データは、これら点データが受信されたレート（速度）よりも速いレート（速度）で、電子機器１０Ｄに送信されても良い。これら点データが受信されたレート（速度）は、これら点データに対応するタイムスタンプによって得ることができる。ある基準時間当たりに受信された点データの数が多い密の期間の受信レートは高く、基準時間当たりに受信された点データの数が少ない粗の期間の受信レートは低い。
【００７９】
複数の点データを受信レートよりも速い送信レートで送信するための方法としては、複数の点データを、これら複数の点データ間の受信間隔よりも短い送信間隔で、送信するという方法を使用しても良い。これら複数の点データ間の受信間隔は、これら点データに対応するタイムスタンプによって容易に得ることができる。
【００８０】
例えば、これら点データ間の受信間隔の１／２の送信間隔でこれら点データを送信することにより、これら点データを、これら点データの受信レートの２倍の送信レートで、電子機器１０Ｄに送信することができる。
【００８１】
図７の説明では、電子機器１０Ｂにおいてストロークが手書き入力された場合に実行される処理について説明したが、電子機器１０Ｃまたはグループオーナ（電子機器１０Ａ）においてストロークが手書き入力された場合も、同様の処理が実行される。
【００８２】
例えば、電子機器１０Ｃにおいてストロークが手書き入力された場合には、このストロークに対応する複数の点データが点データ単位でグループオーナ（電子機器１０Ａ）に送信される。つまり、このストロークが手書き入力されている間に、これら複数の点データは時系列順に順次グループオーナ（電子機器１０Ａ）に送信される。そして、これら複数の点データがタイムスタンプと共にデータベース１２に格納される。そして、これら複数の点データが点データ単位で電子機器１０Ｂに送信される。
【００８３】
グループオーナ（電子機器１０Ａ）においてストロークが手書き入力された場合には、このストロークに対応する複数の点データがタイムスタンプと共にデータベース１２に格納され、さらに、これら複数の点データが点データ単位で電子機器１０Ｂおよび電子機器１０Ｃに送信される。
【００８４】
次に、図９〜図１１を参照して、各点データをデータベース１２に格納する処理について説明する。
【００８５】
図９は、電子機器１０Ｂのカンバスに表示される手書き情報の例を示す。図９では、ストローク５０、ストローク５２、ストローク５３が、グループオーナ、参加者１、参加者２の３人のグループで共有されている場合が想定されている。
【００８６】
ストローク５０は参加者１によって電子機器１０Ｂにおいて手書き入力されたストロークである。ストローク５２は参加者２によって電子機器１０Ｃにおいて手書き入力されたストロークである。ストローク５４はグループオーナによって電子機器１０Ａにおいて手書き入力されたストロークである。
【００８７】
図１０はデータベース１２に格納される手書きデータの例を示す。データベース１２においては、ストローク５０に対応する各点データがタイムスタンプと共に格納される。またストローク５２に対応する各点データもタイムスタンプと共に格納され、さらに、ストローク５４に対応する各点データもタイムスタンプと共に格納される。
【００８８】
図１１はデータベース１２のデータ構造を示す。
【００８９】
データベース１２においては、例えば、ストローク管理テーブル１２１と点管理テーブル１２２とが構築される。
【００９０】
ストローク管理テーブル１２１は、複数のストロークに対応する複数の行（レコード）を含む。各レコードには、「ストロークＩＤ」フィールド、「始点時刻」フィールド、「ユーザＩＤ」フィールド、「ペン種」フィールド、「カラー」フィールド、等が定義されている。
【００９１】
点管理テーブル１２２は、複数の点データに対応する複数の行（レコード）を含む。各レコードには、「ストロークＩＤ」フィールド、「時刻」フィールド、「点種別」フィールド、「座標ｘ」フィールド、「座標ｙ」フィールド、等が定義されている。
【００９２】
電子機器１０Ａがあるストロークの始点に対応する点データを受信した時、電子機器１０Ａは、ストローク管理テーブル１２１に１レコードを追加し、その追加されたレコードに、ストロークＩＤを示す値、始点時刻を示す値、ユーザＩＤを示す値、ペン種を示す値、カラーを示す値を格納する。上述したように、受信される点データには、ストロークＩＤ、ユーザＩＤ、ペン種、カラーを示す追加情報が付加されている。よって、電子機器１０Ａは、この追加情報を使用して、ストロークＩＤを示す値、ユーザＩＤを示す値、ペン種を示す値、カラーを示す値を、レコードに格納することができる。始点時刻を示す値は、ストロークの始点に対応する点データの受信時刻（受信タイミング）を示すタイムスタンプである。このタイムスタンプとしては、点データが受信されたタイミングを識別可能な任意の値を使用することができる。例えば、このタイムスタンプは絶対時間であってもよいし、ある基準時間に対する相対時間であってもよい。
【００９３】
あるいは、始点時刻を示す値は、ストロークの始点に対応する点データの入力時刻を示すタイムスタンプであってもよい。このタイムスタンプとしては、点データが入力されたタイミングを識別可能な任意の値を使用することができる。
【００９４】
電子機器１０Ａがあるストロークの始点に対応する点データを受信した時、さらに、電子機器１０Ａは、点管理テーブル１２２に１レコードを追加し、その追加されたレコードに、ストロークＩＤを示す値、時刻（入力時刻または受信時刻）を示す値、点種別を示す値、座標ｘを示す値、座標ｙを示す値を格納する。上述したように、点データは座標ｘおよび座標ｙを示す情報だけでなく、ストロークＩＤ、点種別、を示す追加情報も含む。したがって、電子機器１０Ａは、この追加情報を使用して、ストロークＩＤを示す値、点種別を示す値をレコードに格納することができる。時刻を示す値は、この点データの入力時刻または受信時刻を示すタイムスタンプである。
【００９５】
電子機器１０Ａがあるストロークの２番目以降のある点データを受信した時、電子機器１０Ａは、点管理テーブル１２２に１レコードを追加して、その追加されたレコードに、ストロークＩＤを示す値、時刻（入力時刻または受信時刻）を示す値、点種別を示す値、座標ｘを示す値、座標ｙを示す値を格納する処理を実行する。
【００９６】
図１１のデータベース１２は、手書き共有サービスにログインしている全ての電子機器から参照可能な共有データであってもよい。この場合、各電子機器は、データベース１２の内容に基づいて、カンバスに表示されている現在の手書き情報を、任意の時点の手書き情報にロールバックすることができる。
【００９７】
あるいは、図１１のデータベース１２の内容が各参加者の電子機器のローカルストレージにコピーされても良い。この場合でも、上述のロールバックを実現できる。
【００９８】
図１２はデータベース１２に格納された複数の点データが２倍速でリプレイされる様子を示す。
【００９９】
ストローク５０に対応する複数の点データは、これら複数の点データ間の受信間隔の１／２の時間間隔で、電子機器１０Ａから電子機器１０Ｄに送信される。例えば、最初の点データと２番目の点データとの間の受信間隔がＴ１であり、２番目の点データと３番目の点データとの間の受信間隔がＴ２である場合を想定する。この場合、最初の点データが電子機器１０Ｄに送信されてからＴ１／２の時間間隔だけ経過した時に、２番目の点データが電子機器１０Ｄに送信される。そして、２番目の点データが電子機器１０Ｄに送信されてからＴ２／２の時間間隔だけ経過した時に、３番目の点データが電子機器１０Ｄに送信される。
【０１００】
これにより、電子機器１０Ｄのカンバス上においては、ストローク５０は２倍速でリプレイされる。同様に、ストローク５２に対応する複数の点データも、これら複数の点データの受信間隔の１／２の時間間隔で、電子機器１０Ａから電子機器１０Ｄに送信される。これにより、電子機器１０Ｄのカンバス上においては、ストローク５２は２倍速でリプレイされる。よって、途中からサービスにログインした参加者３は、これまでの議論の経過、つまりどの様な経緯を辿って現在の手書き情報が構築されたかを、短い時間で把握することができる。
【０１０１】
受信レートに対する送信レート（リプレイ速度）の倍率は、２倍に限らず、例えば、１倍、１．５倍、３倍、４倍、…３０倍のような、任意の倍率に可変設定可能である。受信レートに対する送信レートの倍率を可変設定可能とするために、ユーザの操作に応じてリプレイ速度を増減可能なユーザインタフェースを使用しても良い。あるいは、多くの点データが存在する密の期間と点データの数が少ない粗の期間との間で、受信レートに対する送信レートの倍率を変化させても良い。この場合、粗の期間では受信レートに対する送信レートの倍率を１に近い低い倍率に設定し、密の期間では受信レートに対する送信レートの倍率を１よりも高い倍率に設定してもよい。
【０１０２】
あるいは、受信レートに対する送信レート（リプレイ速度）の倍率は、手書き共有サービスが開始される時点から電子機器１０Ｄ（途中参加者）がログインする時点までの期間（遅れ期間）の長さに基づいて決定してもよい。
【０１０３】
図１３は受信レートに対する送信レートの倍率を決定する処理を示す。
【０１０４】
図１３において、ｔ０は手書き共有サービスが開始される時点を表し、ｔ１は電子機器１０Ｄ（途中参加者）がログインする時点を表している。ここでは、リプレイ時間Ｒｔが固定である場合を想定する。リプレイ時間Ｒｔは、遅れ期間Ｄｔの間にデータベース１２に蓄積された全ての点データをリプレイするための時間間隔である。リプレイ時間Ｒｔは、例えば、３０秒、または１分に設定されても良い。
【０１０５】
受信レート（オリジナル速度）に対する送信レートの倍率Ｎは、
Ｎ＝Ｄｔ／Ｒｔ
によって与えられる。
【０１０６】
なお、リプレイ時間Ｒｔは必ずしも固定でなくてもよい。この場合、例えば、遅れ期間Ｄｔがしきい時間未満であれば、予め決められた第１倍速（例えば２倍速）でリプレイが実行されても良い。一方、遅れ期間Ｄｔがしきい時間以上であれば、予め決められた第２倍速（例えば１０倍速）でリプレイが実行されても良い。また、一つ前の点データの受信時刻（または入力時刻）から次の点データの受信時刻（または入力時刻）までの時間間隔がある基準時間を超えている場合には、この時間間隔だけ待つこと無く、一つ前の点データを送信した直後に、次の点データを送信してもよい。
【０１０７】
図１４は、タブレットコンピュータ１０のシステム構成を示す。  
タブレットコンピュータ１０は、図１４に示されるように、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスプロセッシングユニット（ＧＰＵ）１０４、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７、エンベデッドコントローラ（ＥＣ）１０８等を備える。
【０１０８】
ＣＰＵ１０１は、タブレットコンピュータ１０内の様々なコンポーネントの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる様々なプログラムを実行する。これらプログラムには、オペレーティングシステム（ＯＳ）２０１、および様々なアプリケーションプログラムが含まれている。アプリケーションプログラムには、手書き共有アプリケーションプログラム２０２が含まれている。この手書き共有アプリケーションプログラム２０２は、手書き情報を複数の電子機器間で共有するための上述の手書きコラボレーション機能を実行することができる。
【０１０９】
また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【０１１０】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバスなどを介してグラフィクスプロセッシングユニット（ＧＰＵ）１０４との通信を実行する機能も有している。
【０１１１】
ＧＰＵ１０４は、本タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示プロセッサである。このＧＰＵ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。このＬＣＤ１７Ａの上面側にはタッチパネル１７Ｂが配置されている。ＬＣＤ１７Ａの下面側にはデジタイザ１７Ｃが配置されている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置および接触位置の動き等はタッチパネル１７Ｂによって検出される。デジタイザ１７ＣはＬＣＤ１７Ａの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン１００が接触される画面上の接触位置および接触位置の動き等はデジタイザ１７Ｃによって検出される。
【０１１２】
無線通信デバイス１０７は、無線通信を実行するように構成されたデバイスである。ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ１０を電源オンまたは電源オフする機能を有している。
【０１１３】
次に、図１５を参照して、手書き共有アプリケーションプログラム２０２の構成について説明する。
【０１１４】
手書き共有アプリケーションプログラム２０２は、手書き情報を共有するための機能実行モジュールとして、手書き入力インタフェース３００、表示処理部３０１、処理部３０２、送信制御部３０３、および受信制御部３０４等を含む。
【０１１５】
手書き共有アプリケーションプログラム２０２は、タッチスクリーンディスプレイ１７を用いて入力されるストロークデータを使用することによって、手書きページデータの作成、表示、編集等を行う。タッチスクリーンディスプレイ１７のデジタイザ１７Ｃは、「タッチ」、「移動（スライド）」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上にペンが接触したことを示すイベントである。「移動（スライド）」は、画面上にペンが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面からペンが離されたことを示すイベントである。
【０１１６】
手書き入力インタフェース３００は、タッチスクリーンディスプレイ１７のデジタイザ１７Ｃと協同して手書き入力を行うように構成されたインタフェースである。手書き入力インタフェース３００は、タッチスクリーンディスプレイ１７のデジタイザ１７Ｃから「タッチ」または「移動（スライド）」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動（スライド）」イベントにも、移動先の接触位置の座標が含まれている。したがって、手書き入力インタフェース３００は、タッチスクリーンディスプレイ１７から、接触位置の動きの軌跡に対応する座標列（複数の点データ）を受信することができる。
【０１１７】
表示処理部３０１は、手書き入力インタフェース３００からの座標列に基づいて、ペン１００を使用した手書き入力操作によって手書き入力される各ストロークをＬＣＤ１７Ａの画面上に表示する。さらに、表示処理部３０１は、処理部３０２の制御の下、他の電子機器から受信された座標列に基づいて、各ストロークをＬＣＤ１７Ａの画面上に表示する。
【０１１８】
送信制御部３０３は、処理部３０２の制御の下、無線通信デバイス１０７を使用して複数の点データを時系列順に順次他の電子機器に送信するための処理を実行する。受信制御部３０４は、処理部３０２の制御の下、無線通信デバイス１０７を使用して他の電子機器から複数の点データを時系列順に順次受信するための処理を実行する。
【０１１９】
処理部３０２は、複数の電子機器間で手書き情報を共有するための処理を実行する。この処理部３０２は、メンバ管理部３１１、保存処理部３１２、およびリプレイ処理部３１３等を含む。
【０１２０】
メンバ管理部３１１は、手書き共有サービスにログインしているメンバ（電子機器）それぞれを管理する。メンバ管理部３１１は、手書き共有サービスへのログインを要求している電子機器に、ログインすることを許可するか否かを決定することができる。メンバ管理部３１１から許可を受け取った電子機器は、手書き共有サービスにログインすることが許可され、これによって手書き共有サービスにログインしている他の各電子機器と接続される。メンバ管理部３１１の機能は、手書きコラボレーションサーバシステムとして動作する電子機器（グループオーナの電子機器）においてのみ実行されても良い。
【０１２１】
保存処理部３１２は、他の電子機器から受信される各点データを、タイムスタンプと共に、データベース１２に保存するための処理を実行する。リプレイ処理部３１３は、第３の電子機器が前記サービスに途中からログインした場合、上述のリプレイのための処理を実行する。つまり、ある電子機器が手書き共有サービスに途中からログインした場合、リプレイ処理部３１３は、この電子機器のログイン前にデータベース１２に格納された複数の点データを、これら点データにそれぞれ対応するタイムスタンプに基づくタイミングで、この電子機器に時系列順に順次送信するための処理を実行する。この場合、これら点データの送信はＮ倍速（Ｎは１以上）で実行することができる。
【０１２２】
参加者（クライアント）として動作する電子機器においては、リプレイ処理部３１３は、グループオーナの電子機器から時系列順に順次送信される点データを受信しながらそれら点データを表示する処理を実行する。
【０１２３】
図１６のフローチャートは、本実施形態の手書きデータ配信処理の手順を示す。
【０１２４】
手書きコラボレーションサーバシステム（電子機器１０Ａ）の処理部３０２は、ログイン状態である複数の参加者の電子機器のいずれかにおいて手書き入力されるストロークに対応する複数の点データを、この電子機器から受信する（ブロックＢ１１）。上述したように、これら複数の点データは、この電子機器から手書きコラボレーションサーバシステム（電子機器１０Ａ）に時系列順に順次送信される。
【０１２５】
処理部３０２は、受信された各点データをこの点データの入力時刻または受信時刻を示すタイムスタンプとともにデータベース１２に格納するための点データ保存処理を実行する（ブロックＢ１２）。
【０１２６】
処理部３０２は、受信された複数の点データを、他の各参加者の電子機器に送信する（ブロックＢ１３）。ブロックＢ１３では、複数の点データは、他の各参加者の電子機器に、時系列順に順次送信される。
【０１２７】
図１７のフローチャートは、図１６のブロックＢ１２で行われる点データ保存処理の手順を示す。
【０１２８】
処理部３０２が点データを受信した時（ブロックＢ２１のＹＥＳ）、処理部３０２は、点データに付加されている点種別に基づいて、この点データがストロークの始点の点データであるか否かを判定する（ブロックＢ２２）。
【０１２９】
この点データがストロークの始点の点データであるならば（ブロックＢ２２のＹＥＳ）、処理部３０２は、ストローク管理テーブル１２１に１レコードを追加し、その追加されたレコードに、ストロークＩＤを示す値、始点時刻を示す値、ユーザＩＤを示す値、ペン種を示す値、カラーを示す値を格納する（ブロックＢ２３）。そして、処理部３０２は、点管理テーブル１２２に１レコードを追加し、その追加されたレコードに、ストロークＩＤを示す値、時刻を示す値、点種別を示す値、座標ｘを示す値、座標ｙを示す値を格納する（ブロックＢ２４）。そして、処理部３０２は、受信された点データを、他の各参加者の電子機器に送信する（ブロックＢ２５）。
【０１３０】
受信された点データがストロークの中点または終点の点データであるならば（ブロックＢ２２のＹＥＳ）、処理部３０２は、ブロックＢ２３の処理をスキップして、ブロックＢ２４、ブロックＢ２５の処理のみを実行する。
【０１３１】
図１８のフローチャートは、リプレイ処理の手順を示す。
【０１３２】
新たな参加者が手書き共有サービスに途中から参加（ログイン）したならば（ブロックＢ３１のＹＥＳ）、処理部３０２は、新たな参加者の参加の前にデータベース１２に格納された全ての点データを新たな参加者の電子機器に送信するための点データ送信処理を実行する（ブロックＢ３２）。ブロックＢ３２では、これら全ての点データは、対応するタイムスタンプによって指定されるタイミングで、新たな参加者の電子機器に時系列順に順次送信される。
【０１３３】
ブロックＢ３３で全ての点データの送信が完了したと判定されるまで、点データ送信処理は繰り返し実行される。
【０１３４】
図１９のフローチャートは、点データ送信処理の手順を示す。
【０１３５】
ここでは、遅れ期間Ｄｔの長さに基づいて、リプレイをＮ倍速で実行する場合を想定する。
【０１３６】
まず、処理部３０２は、オリジナル速度の何倍の速度でリプレイすべきかを決定する（ブロックＢ４１）。ブロックＢ４１では、処理部３０２は、遅れ期間Ｄｔの長さに基づいて、受信レート（オリジナル速度）に対する送信レートの倍率Ｎを算出する。固定のリプレイ時間Ｒｔを使用する場合においては、倍率Ｎは、
Ｎ＝Ｄｔ／Ｒｔ
によって与えられる。
【０１３７】
処理部３０２は、最初の点データを、新たな参加者の電子機器に送信する（ブロックＢ４２）。次に、処理部３０２は、最初の点データの受信時刻（または入力時刻）と次の点データの受信時刻（または入力時刻）との間の時間間隔と、倍率Ｎとに基づいて、次の点データが送信されるべき送信タイミングを決定する（ブロックＢ４３）。処理部３０２は、次の点データの送信タイミングが到来したか否かを判定する（ブロックＢ４４）。次の点データの送信タイミングが到来しならば（ブロックＢ４４のＹＥＳ）、処理部３０２は、最初の点データを、新たな参加者の電子機器に送信する（ブロックＢ４５）。そして、処理部３０２は、全ての点データの送信が完了したか否かを判定する（ブロックＢ４６）。
【０１３８】
全ての点データの送信が完了するまで、送信対象の次の点データを更新しながら、ブロックＢ４３〜Ｂ４５の処理が繰り返される。
【０１３９】
図２０のフローチャートは、参加者の電子機器によって実行される処理の手順を示す。
【０１４０】
参加者の電子機器の処理部３０２は、手書きコラボレーションサーバシステムにログイン要求（参加要求）を送信して手書き共有サービスにログインする（ステップＢ５１）。データベース１２に既に蓄積されている点データが存在する場合には（ブロックＢ５２のＹＥＳ）、処理部３０２は、リプレイ処理モードに遷移する。
【０１４１】
リプレイ処理モードである間は、処理部３０２は、参加者の電子機器におけるストロークの手書き入力を禁止する。
【０１４２】
リプレイ処理モードでは、処理部３０２は、手書きコラボレーションサーバシステムから送信される点データを受信する。手書きコラボレーションサーバシステムから点データが受信された時（ブロックＢ５３のＹＥＳ）、処理部３０２は、受信された点データに基づいて謬画処理を実行する（ブロックＢ５４）。既に蓄積されている全ての点データの受信及び描画が完了するまでは（ブロックＢ５４のＮＯ）、ブロックＢ５３、Ｂ５４の処理が繰り返される。
【０１４３】
既に蓄積されている全ての点データの受信及び描画が完了すると（ブロックＢ５４のＹＥＳ）、処理部３０２は、リプレイ処理モードを抜け、手書き共有モードに遷移する。手書き共有モードでは、処理部３０２は、参加者の電子機器におけるストロークの手書き入力を許可する。
【０１４４】
手書き共有モードにおいて、ユーザ（参加者）によってストロークの手書き入力が開始されたならば（ブロックＢ５６のＹＥＳ）、処理部３０２は、このストロークに対応する複数の点データに基づいてストロークを描画する処理を実行し（ブロックＢ５７）、さらに、複数の点データを時系列順に順次手書きコラボレーションサーバシステムに送信する処理を実行する（ブロックＢ５８）。
【０１４５】
手書き共有モードにおいて、手書きコラボレーションサーバシステムから点データが受信されたならば（ブロックＢ５９のＹＥＳ）、処理部３０２は、受信された点データに基づいて描画処理を実行する（ブロックＢ６０）。
【０１４６】
次に、図２１〜図２３を参照して、ロールバック処理を説明する。
【０１４７】
図２１に示されているように、カンバス上には、共有されている現在の手書き情報の内容が表示される。ここでは、手書きデータ４０１、手書きデータ４０２、手書きデータ４０３、手書きデータ４０４がカンバス上に表示されている。これら各手書きデータは、手書き共有サービスにログインしているいずれかの電子機器において手書き入力された１以上のストロークから構成される。
【０１４８】
ユーザはカンバス上にメニューを表示することもできる。このメニューは、「タイムライン」ボタンを含む。「タイムライン」ボタンはロールバック処理を起動するためのソフトウェアボタンである。
【０１４９】
「タイムライン」ボタンがユーザによってタップされると、図２２に示すように、タイムライン５０１と、タイムライン５０１上を移動可能なスライダ５０２、再生ボタン５０４等がカンバス上に表示される。
【０１５０】
タイムライン５０１の左端は、手書き共有サービスが開始された時点に対応する。タイムライン５０１の右端は現時点に対応する。スライダ５０２のデフォルト位置はタイムライン５０１の右端である。
【０１５１】
図２３に示されているように、スライダ５０２がタイムライン５０１の例えば中央位置にユーザによって移動されると、カンバス上の手書き情報の内容は、中央位置に対応する時時点の手書き情報に更新される。
【０１５２】
中央位置に対応する時時点よりも後に手書きされたデータはカンバスから消える。ここでは、手書きデータ４０３、手書きデータ４０４がカンバス上から消えている。
【０１５３】
再生ボタン５０４がユーザによってタップされると、スライダ５０２によって指定される時点から現時点までの手書き情報がリプレイされる開始される。
【０１５４】
なお、以上の説明では、手書き共有サービスにログインしている複数の電子機器の１つが手書きコラボレーションサーバシステムとして機能する場合を例示したが、手書きコラボレーションサーバシステムは、これら電子機器以外の１以上のサーバによって実現されても良い。
【０１５５】
以上説明したように、本実施形態においては、手書きデータは、ストロークデータ単位では無く、点データ単位で送信される。よって、どの電子機器においてストロークが手書き入力された場合でも、そのストロークが書かれる様子を他の全ての電子機器のカンバス上において再現することができる。よって、よりリアルタイムに手書き情報の共有が可能となる。
【０１５６】
さらに、電子機器１０Ｄが手書き情報共有サービスに途中からログインした場合、手書きコラボレーションサーバシステム（電子機器１０Ａ）は、電子機器１０Ｄのログイン前にデータベース１２に格納された全ての点データ（複数の第１点データ）を、これら複数の第１点データにそれぞれ対応するタイムスタンプに基づくタイミングで、電子機器１０Ｄに時系列順に順次送信する。
【０１５７】
これにより、既に書かれた多数のストロークが、それらストロークが書かれる様子がリプレイされるかのように電子機器１０Ｄのカンバス上に表示される。よって、電子機器１０Ｄのユーザ（途中参加者）は、どの様な経緯を辿って現在の手書き情報が構築されたかを、容易に把握することができる。
【０１５８】
また、会議は数日に跨がって実行される場合もある。この場合、翌日の会議の冒頭で、前日の会議終了時までの手書き情報を格納しているデータベース１２を使用することによって、前日の会議において手書き情報が構築された過程をリプレイしてもよい。
【０１５９】
データベース１２の内容は、会議終了時などに、各電子機器のローカルストレージに格納しても良い。
【０１６０】
なお、本実施形態の手書きコラボレーションサーバシステム（電子機器１０Ａ）の機能は１以上のプロセッサによって実現できる。
【０１６１】
また、本実施形態の手書きコラボレーションサーバシステム（電子機器１０Ａ）の機能はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【０１６２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【図１】
2016024329.tif 000003
【図２】
2016024329.tif 000004
【図３】
2016024329.tif 000005
【図４】
2016024329.tif 000006
【図５】
2016024329.tif 000007
【図６】
2016024329.tif 000008
【図７】
2016024329.tif 000009
【図８】
2016024329.tif 000010
【図９】
2016024329.tif 000011
【図１０】
2016024329.tif 000012
【図１１】
2016024329.tif 000013
【図１２】
2016024329.tif 000014
【図１３】
2016024329.tif 000015
【図１４】
2016024329.tif 000016
【図１５】
2016024329.tif 000017
【図１６】
2016024329.tif 000018
【図１７】
2016024329.tif 000019
【図１８】
2016024329.tif 000020
【図１９】
2016024329.tif 000021
【図２０】
2016024329.tif 000022
【図２１】
2016024329.tif 000023
【図２２】
2016024329.tif 000024
【図２３】
2016024329.tif 000025
【国際調査報告】
2016024329.tif 000026
2016024329.tif 000027
2016024329.tif 000028
2016024329.tif 000029