(57)【要約】【課題】手書き情報を共有することができるシステムを実現する。【解決手段】実施形態によれば、システムは、受信手段と、制御手段と、送信手段とを具備する。前記受信手段は、第１のコンテンツ上に複数の端末において手書きされる複数のストロークに対応する複数のストロークデータを前記複数の端末から受信する。前記制御手段は、前記複数のストロークデータの各々を当該ストロークデータの送信元の端末の識別子に対応付けて記憶媒体に格納する。前記送信手段は、前記複数の端末内の第１の端末に、前記第１の端末以外の他の端末の識別子に対応付けられている、前記複数のストロークデータ内の１以上の第１のストロークデータを送信する。【選択図】図２
2014110061.tif 000002
【特許請求の範囲】
【請求項１】
複数の端末のいずれかにおいてコンテンツ上に手書きされる複数のストロークに対応する複数のストロークデータを前記複数の端末のいずれかから受信する受信手段と、
前記複数のストロークデータの各々を、当該ストロークデータの送信元の端末の識別子と、当該ストロークデータが手書きされたコンテンツの識別子とに対応付けて記憶媒体に格納する制御手段と、
前記複数の端末内の第１の端末からの要求の後、１以上の第１のストロークデータを前記第１の端末に送信する送信手段とを具備し、
前記１以上の第１のストロークデータは、前記第１の端末以外の他の端末の識別子と前記要求によって指定される第１のコンテンツの識別子との双方に対応付けられ、且つ前記第１の端末に未送信のストロークデータであって、
前記第１の端末において前記第１のコンテンツが開かれる場合、前記送信手段は、複数の第２のストロークデータを前記第１の端末に送信するものであって、
前記複数の第２のストロークデータは、前記第１の端末において前記第１のコンテンツが開かれるよりも前に前記複数の端末のいずれかにおいて手書きされたストロークデータ群の内、前記第１のコンテンツの識別子に対応付けられているストロークデータ群である、システム。
【請求項２】
前記複数の第２のストロークデータは、前記第１の端末において前記第１のコンテンツが開かれる直前の第１の時間内に前記複数の端末のいずれかにおいて手書きされたストロークデータ群の内、前記第１のコンテンツの識別子に対応付けられているストロークデータ群である請求項１記載のシステム。
【請求項３】
前記制御手段は、前記複数のストロークデータの各々をその手書きタイミングに対応する時間情報に対応付けて前記記憶媒体に格納し、
前記送信手段は、前記第１の端末に、前記１以上の第１のストロークデータおよび前記１以上の第１のストロークデータに対応する時間情報を送信する請求項１記載のシステム。
【請求項４】
前記複数のストロークデータの各々は、前記複数のストロークデータの各々に対応するストロークの太さまたは色を示す情報を含む請求項１記載のシステム。
【請求項５】
前記複数のストロークデータは、消去モードにおいて前記第１のコンテンツ上に手書きされるストロークに対応する消去ストロークデータを含む請求項１記載のシステム。
【請求項６】
前記送信手段は、前記第１の端末からの要求に応じて、前記第１の端末にどの端末からのストロークデータを提供すべきかを決定する請求項１記載のシステム。
【請求項７】
複数の端末のいずれかにおいてコンテンツ上に手書きされる複数のストロークに対応する複数のストロークデータを前記複数の端末のいずれかから受信することと、
前記複数のストロークデータの各々を、当該ストロークデータの送信元の端末の識別子と、当該ストロークデータが手書きされたコンテンツの識別子とに対応付けて記憶媒体に格納することと、
前記複数の端末内の第１の端末からの要求の後、１以上の第１のストロークデータを前記第１の端末に送信することとを具備し、
前記１以上の第１のストロークデータは、前記第１の端末以外の他の端末の識別子と前記要求によって指定される第１のコンテンツの識別子との双方に対応付けられ、且つ前記第１の端末に未送信のストロークデータであって、
前記第１の端末において前記第１のコンテンツが開かれる場合、前記送信することは、複数の第２のストロークデータを前記第１の端末に送信することを含み、
前記複数の第２のストロークデータは、前記第１の端末において前記第１のコンテンツが開かれるよりも前に前記複数の端末のいずれかにおいて手書きされたストロークデータ群の内、前記第１のコンテンツの識別子に対応付けられているストロークデータ群である、データ提供方法。
【請求項８】
前記複数の第２のストロークデータは、前記第１の端末において前記第１のコンテンツが開かれる直前の第１の時間内に前記複数の端末のいずれかにおいて手書きされたストロークデータ群の内、前記第１のコンテンツの識別子に対応付けられているストロークデータ群である請求項７記載のデータ提供方法。
【請求項９】
前記格納することは、前記複数のストロークデータの各々をその手書きタイミングに対応する時間情報に対応付けて前記記憶媒体に格納することを含み、
前記送信することは、前記第１の端末に、前記１以上の第１のストロークデータおよび前記１以上の第１のストロークデータに対応する時間情報を送信することを含む請求項７記載のデータ提供方法。
【請求項１０】
前記複数のストロークデータの各々は、前記複数のストロークデータの各々に対応するストロークの太さまたは色を示す情報を含む請求項７記載のデータ提供方法。
【請求項１１】
前記複数のストロークデータは、消去モードにおいて前記第１のコンテンツ上に手書きされるストロークに対応する消去ストロークデータを含む請求項７記載のデータ提供方法。
【請求項１２】
前記送信することは、前記第１の端末からの要求に応じて、前記第１の端末にどの端末からのストロークデータを提供すべきかを決定することを含む請求項７記載のデータ提供方法。
【請求項１３】
複数の端末のいずれかにおいてコンテンツ上に手書きされる複数のストロークに対応する複数のストロークデータを前記複数の端末のいずれかから受信する手順と、
前記複数のストロークデータの各々を、当該ストロークデータの送信元の端末の識別子と、当該ストロークデータが手書きされたコンテンツの識別子とに対応付けて記憶媒体に格納する手順と、
前記複数の端末内の第１の端末からの要求の後、１以上の第１のストロークデータを前記第１の端末に送信する手順とをコンピュータに実行させ、
前記１以上の第１のストロークデータは、前記第１の端末以外の他の端末の識別子と前記要求によって指定される第１のコンテンツの識別子との双方に対応付けられ、且つ前記第１の端末に未送信のストロークデータであって、
前記第１の端末において前記第１のコンテンツが開かれる場合、前記送信する手順は、複数の第２のストロークデータを前記第１の端末に送信することを含み、
前記複数の第２のストロークデータは、前記第１の端末において前記第１のコンテンツが開かれるよりも前に前記複数の端末のいずれかにおいて手書きされたストロークデータ群の内、前記第１のコンテンツの識別子に対応付けられているストロークデータ群である、プログラム。
【請求項１４】
前記複数の第２のストロークデータは、前記第１の端末において前記第１のコンテンツが開かれる直前の第１の時間内に前記複数の端末のいずれかにおいて手書きされたストロークデータ群の内、前記第１のコンテンツの識別子に対応付けられているストロークデータ群である請求項１３記載のプログラム。
【請求項１５】
前記格納する手順は、前記複数のストロークデータの各々をその手書きタイミングに対応する時間情報に対応付けて前記記憶媒体に格納する手順を含み、
前記送信する手順は、前記第１の端末に、前記１以上の第１のストロークデータおよび前記１以上の第１のストロークデータに対応する時間情報を送信する手順を含む請求項１３記載のプログラム。
【請求項１６】
前記複数のストロークデータの各々は、前記複数のストロークデータの各々に対応するストロークの太さまたは色を示す情報を含む請求項１３記載のプログラム。
【請求項１７】
前記複数のストロークデータは、消去モードにおいて前記第１のコンテンツ上に手書きされるストロークに対応する消去ストロークデータを含む請求項１３記載のプログラム。
【請求項１８】
前記送信する手順は、前記第１の端末からの要求に応じて、前記第１の端末にどの端末からのストロークデータを提供すべきかを決定する手順を含む請求項１３記載のプログラム。
【請求項１９】
電子機器であって、
ディスプレイに表示される第１のコンテンツ上に手書きされるストロークデータと前記第１のコンテンツの識別子とをシステムに送信する送信手段と、
前記第１のコンテンツに対応するストロークデータを前記システムに要求することにより、１以上の第１のストロークデータを前記システムから受信する受信手段とを具備し、
前記１以上の第１のストロークデータは、前記電子機器以外の他の機器の識別子と前記第１のコンテンツの識別子との双方に対応付けられ、且つ前記電子機器が未取得のストロークデータであって、
前記受信手段は、前記第１のコンテンツが開かれる場合、複数の第２のストロークデータを前記システムから受信するものであって、
前記複数の第２のストロークデータは、前記電子機器において前記第１のコンテンツが開かれるよりも前に前記他の機器のいずれかにおいて手書きされたストロークデータ群の内、前記第１のコンテンツの識別子に対応付けられているストロークデータ群である、電子機器。
【請求項２０】
前記複数の第２のストロークデータ群は、前記第１の端末において前記第１のコンテンツが開かれる直前の第１の時間内に前記他の機器のいずれかにおいて手書きされたストロークデータ群の内、前記第１のコンテンツの識別子に対応付けられているストロークデータ群である請求項１９記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、手書きデータを処理するための技術に関する。
【背景技術】
【０００２】
近年、タブレット、ＰＤＡ、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。
【０００３】
ユーザは、タッチスクリーンディスプレイ上に表示されるメニューまたはオブジェクトを指などでタッチすることにより、これらメニューまたはオブジェクトに関連づけられた機能の実行を電子機器に指示することができる。
【０００４】
しかし、タッチスクリーンディスプレイを備える既存の電子機器の多くは、画像、音楽、他の各種メディアデータに対する操作性を追求したコンシューマ向け製品であり、会議、商談、商品開発などのビジネスシーンにおける利用については必ずしも適していない場合がある。このため、ビジネスシーンにおいては、いまなお、紙の手帳が広く利用されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１０３０３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ビジネスシーンにおいては、電子機器は、会議のような協調作業に有用なデジタルツールとして機能することが期待される場合がある。したがって、手書き情報を容易に共有することが可能な新たな技術の実現が必要とされる。
【０００７】
本発明の一形態の目的は、手書き情報を共有することができるシステムおよびデータ提供方法並びに電子機器を提供することを目的とする。
【課題を解決するための手段】
【０００８】
実施形態によれば、システムは、システムは、受信手段と、制御手段と、送信手段とを具備する。前記受信手段は、複数の端末のいずれかにおいてコンテンツ上に手書きされる複数のストロークに対応する複数のストロークデータを前記複数の端末のいずれかから受信する。前記制御手段は、前記複数のストロークデータの各々を、当該ストロークデータの送信元の端末の識別子と、当該ストロークデータが手書きされたコンテンツの識別子とに対応付けて記憶媒体に格納する。前記送信手段は、前記複数の端末内の第１の端末からの要求の後、１以上の第１のストロークデータを前記第１の端末に送信する。前記１以上の第１のストロークデータは、前記第１の端末以外の他の端末の識別子と前記要求によって指定される第１のコンテンツの識別子との双方に対応付けられ、且つ前記第１の端末に未送信のストロークデータである。前記第１の端末において前記第１のコンテンツが開かれる場合、前記送信手段は、複数の第２のストロークデータを前記第１の端末に送信する。前記複数の第２のストロークデータは、前記第１の端末において前記第１のコンテンツが開かれるよりも前に前記複数の端末のいずれかにおいて手書きされたストロークデータ群の内、前記第１のコンテンツの識別子に対応付けられているストロークデータ群である。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る電子機器の外観を示す斜視図。
【図２】実施形態に係るシステムと各端末との間のデータの流れを示す図。
【図３】図１の電子機器の表示画面の例を示す図。
【図４】図１の電子機器のタッチスクリーンディスプレイ上に手書きされる手書き文書の例を示す図。
【図５】図１の電子機器によって記憶媒体に保存される、図４の手書き文書に対応する時系列情報（手書きページデータ）を説明するための図。
【図６】図１の電子機器のシステム構成を示すブロック図。
【図７】図１の電子機器によって実行される手書きノートアプリケーションプログラムの機能構成を示すブロック図。
【図８】図２のサーバシステムのデータベースに保存されるストローク情報管理テーブルを示す図。
【図９】図２のシステムによって実行される、送信側端末から受信されるストロークデータを受信側端末に配信する動作を示す図。
【図１０】図２のシステムによって実行される、２つの送信側端末から受信されるストロークデータそれぞれを受信側端末に配信する動作を示す図。
【図１１】図２のシステムによって実行される、複数の端末間でストロークデータを交換する動作を示す図。
【図１２】図２のシステムの構成を示すブロック図。
【図１３】図２のシステムによって実行されるストローク配信処理の手順を示すフローチャート。
【図１４】図１の電子機器によって実行される手書き情報共有処理の手順を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、実施の形態について図面を参照して説明する。  
図１は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。以下では、この電子機器がタブレットコンピュータ１０として実現されている場合を想定する。タブレットコンピュータ１０は、タブレットまたはストレートコンピュータとも称される携帯型電子機器であり、図１に示すように、本体１１とタッチスクリーンディスプレイ１７とを備える。タッチスクリーンディスプレイ１７は、本体１１の上面に重ね合わせるように取り付けられている。
【００１１】
本体１１は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ１７には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルの２種類のセンサの双方がタッチスクリーンディスプレイ１７に組み込まれている場合を想定する。
【００１２】
デジタイザおよびタッチパネルタッチの各々は、フラットパネルディスプレイの画面を覆うように設けられる。このタッチスクリーンディスプレイ１７は、指を使用した画面に対するタッチ操作のみならず、ペン１００を使用した画面に対するタッチ操作も検出することができる。ペン１００は例えば電磁誘導ペンであってもよい。ユーザは、外部オブジェクト（ペン１００又は指）を使用してタッチスクリーンディスプレイ１７上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト（ペン１００又は指）の動きの軌跡、つまり手書き入力操作によって手書きされるストロークの軌跡（筆跡）がリアルタイムに描画され、これによって各ストロークの軌跡が画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が１ストロークに相当する。手書きされた文字または図形などに対応する多数のストロークの集合、つまり多数の軌跡（筆跡）の集合が手書き文書を構成する。
【００１３】
本実施形態では、この手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係を示す時系列情報として記憶媒体に保存される。この時系列情報の詳細は図５を参照して後述するが、この時系列情報は、複数のストロークが手書きされた順を示し、且つ複数のストロークにそれぞれ対応する複数のストロークデータを含む。換言すれば、この時系列情報は、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある一つのストロークに対応し、このストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
【００１４】
タブレットコンピュータ１０は、記憶媒体から既存の任意の時系列情報を読み出し、この時系列情報に対応する手書き文書、つまりこの時系列情報によって示される複数のストロークそれぞれに対応する軌跡を画面上に表示することができる。さらに、タブレットコンピュータ１０は編集機能を有している。この編集機能は、「消しゴム」ツール、範囲指定ツール、および他の各種ツール等を用いたユーザによる編集操作に応じて、表示中の手書き文書内の任意のストロークまたは任意の手書き文字等を削除または移動することができる。「消しゴム」ツールとしては、消去モードにおいて手書きされるストロークに対応するストロークデータ（消去ストロークデータ）を使用し得る。消去ストロークデータに対応するストロークは、他のストロークを消す（透明にする）という属性を有する消去ストロークである。消去ストロークと他の通常のストロークとが交差する交差部分は、透明とされる。換言すれば、他のストローク内の当該交差部分は消される（透明にされる）。ユーザは、この透明の交差部分を介して、背景レイヤ、または他のコンテンツが表示される下層レイヤを視認することができる。
【００１５】
さらに、この編集機能は、幾つかの手書き操作の履歴を取り消す機能も含んでいる。さらに、この編集機能は、表示中の手書き文書に、任意の手書き文字または手書き記号などを追加することができる。
【００１６】
本実施形態では、時系列情報は、１つまたは複数のページとして管理されうる。この場合、時系列情報を１つの画面に収まる面積単位で区切ることによって、１つの画面に収まる時系列情報のまとまりを１つのページとして記録してもよい。あるいは、ページのサイズを可変できるようにしてもよい。この場合、ページのサイズは１つの画面のサイズよりも大きい面積に広げることができるので、画面のサイズよりも大きな面積の手書き文書を一つのページとして扱うことができる。１つのページ全体をディスプレイに同時に表示できない場合は、そのページを縮小してするようにしてもよいし、縦横スクロールによってページ内の表示対象部分を移動するようにしてもよい。
【００１７】
このように、時系列情報はページデータとして管理することができるので、以下では、時系列情報を手書きページデータあるいは単に手書きデータとも称する。
【００１８】
タブレットコンピュータ１０は、ネットワーク通信機能を有しており、他のパーソナルコンピュータやインターネット上のサーバなどと連携することができる。すなわち、タブレットコンピュータ１０は、無線ＬＡＮなどの無線通信デバイスを備えており、他のパーソナルコンピュータとの無線通信を実行することができる。さらに、タブレットコンピュータ１０は、インターネット上の各種サーバとの通信を実行することもできる。
【００１９】
サーバはハードディスクドライブ（ＨＤＤ）のような大容量の記憶媒体を備えている。タブレットコンピュータ１０は、時系列情報（手書きページデータ）をネットワーク越しにサーバに送信して、サーバの記憶媒体に格納することができる（アップロード）。タブレットコンピュータ１０とサーバとの間のセキュアな通信を確保するために、通信開始時には、サーバがタブレットコンピュータ１０を認証するようにしてもよい。この場合、タブレットコンピュータ１０の画面上にユーザに対してＩＤまたはパスワードの入力を促すダイアログを表示してもよいし、タブレットコンピュータ１０のＩＤなどを自動的にタブレットコンピュータ１０からサーバに送信してもよい。
【００２０】
これにより、タブレットコンピュータ１０内のストレージの容量が少ない場合でも、タブレットコンピュータ１０が多数の時系列情報（手書きページデータ）あるいは大容量の時系列情報（手書きページデータ）を扱うことが可能となる。
【００２１】
さらに、タブレットコンピュータ１０は、サーバの記憶媒体に格納されている任意の１以上の時系列情報（手書きページデータ）を読み出し（ダウンロード）、その読み出した時系列情報によって示されるストロークそれぞれの軌跡をタブレットコンピュータ１０のディスプレイ１７の画面に表示することができる。この場合、複数の時系列情報（手書きページデータ）それぞれのページを縮小することによって得られるサムネイル（サムネイル画像）の一覧をディスプレイ１７の画面上に表示してもよいし、これらサムネイルから選ばれた１ページをディスプレイ１７の画面上に通常サイズで表示してもよい。
【００２２】
このように、本実施形態では、時系列情報が格納される記憶媒体は、タブレットコンピュータ１０内のストレージ、サーバ内のストレージのいずれであってもよい。タブレットコンピュータ１０のユーザは、任意の時系列情報を、タブレットコンピュータ１０内のストレージおよびサーバ２内のストレージから選択される任意のストレージに格納することができる。
【００２３】
さらに、タブレットコンピュータ１０は、Ｗｅｂページ、テキスト、画像、他の各種コンテンツ上に文字、図形のようなオブジェクトを手書きすることもできる。この場合、手書きされたストロークは、表示されているコンテンツ上に設定される透明レイヤ上に描画し得る。これにより、このストロークの軌跡を上述のコンテンツ上に重ねて表示することができる。また、さらに、タブレットコンピュータ１０は、コンテンツ上に手書きされた各ストロークに対応するストロークデータを他の端末との間で共有することができる。
【００２４】
例えば、会議においては、複数の会議参加者は自身のタブレットコンピュータの画面上に同じコンテンツ（同じ会議資料）を表示する。会議中においては、議長あるいは各発言者は、そのタブレットコンピュータの画面上に表示されるコンテンツ上に文字、図形などを手書きする場合がある。手書きされた文字や図形に対応する複数のストロークデータは、サーバシステムを介して他の各会議参加者のタブレットコンピュータに配信される。そして、議長あるいは各発言者によって手書きされた文字、図形等に対応するストロークが、各タブレットコンピュータの画面上のコンテンツ上に描画される。これにより、会議参加者間で互いの手書き情報（手書き文字、手書き図形等）を交換・共有することができる。
【００２５】
図２は、複数の端末間で手書き情報を共有するための処理を実行するように構成されたストローク管理サーバシステム２を示す。ストローク管理サーバシステム２は、同一のコンテンツに手書きされたストロークを複数の端末間で共有するためのシステムである。このストローク管理サーバシステム２は、１以上のサーバによって実現される。このストローク管理サーバシステム２は、インターネット、イントラネットのようなネットワーク１を介して複数の端末（ここでは、端末１０Ａ、１０Ｂ、１０Ｃ）と通信する。端末１０ＡはユーザＡによって使用されるタブレットコンピュータであり、端末ＢはユーザＢによって使用されるタブレットコンピュータであり、端末１０ＣはユーザＣによって使用されるタブレットコンピュータである。
【００２６】
端末１０Ａ、１０Ｂ、１０Ｃの各々は本実施形態のタブレットコンピュータ１０と同等の手書き機能を有する端末である。端末１０Ａ、１０Ｂ、１０Ｃの各々は、インターネットを介してストローク管理サーバシステム２およびＷｅｂサーバ３の各々との通信をする能力を有している。ここでは、端末１０Ａ、１０Ｂ、１０Ｃ間で共有される同一のコンテンツが、Ｗｅｂサーバ３から受信される特定のＷｅｂページである場合を想定する。端末１０Ａ、１０Ｂ、１０Ｃの各々は、Ｗｅｂサーバ３から上述の特定のＷｅｂページを取得し、この特定のＷｅｂページを各端末のディスプレイ画面上に表示する。
【００２７】
ユーザＡが端末１０Ａのディスプレイ画面上のＷｅｂページ上で手書き入力操作を行うと、その手書き入力操作によって書かれた第１のストロークがＷｅｂページ上に表示される。
【００２８】
端末１０Ａは、端末１０Ａのディスプレイに表示されるＷｅｂページ（コンテンツ）上にユーザＡによって手書きされる第１のストロークに対応する第１のストロークデータをストローク管理サーバシステム２に送信する。端末１０Ａは、他の端末１０Ｂのディスプレイに表示される上述のＷｅｂページ（コンテンツ）上にユーザＢによって手書きされる第２のストロークに対応する第２のストロークデータをストローク管理サーバシステム２から受信することができる。端末１０Ａは、第２のストロークデータに基づいて、第２のストロークを端末１０Ａのディスプレイに表示されるＷｅｂページ（コンテンツ）上に表示することができる。
【００２９】
さらに、端末１０Ａは、他の端末１０Ｃのディスプレイに表示される上述のＷｅｂページ（コンテンツ）上にユーザＣによって手書きされる第３のストロークに対応する第３のストロークデータもストローク管理サーバシステム２から受信することができる。端末１０Ａは、第３のストロークデータに基づいて、第３のストロークを端末１０Ａのディスプレイに表示されるＷｅｂページ（コンテンツ）上に表示することができる。
【００３０】
したがって、端末１０Ａのディスプレイにおいては、ユーザＡの手書きオブジェクトがＷｅｂページ上に表示されるだけでなく、ユーザＢの手書きオブジェクト、さらにはユーザＣの手書きオブジェクトもＷｅｂページ上に表示される。
【００３１】
同様にして、端末１０Ｂのディスプレイにおいても、ユーザＢの手書きオブジェクトがＷｅｂページ上に表示されるだけでなく、ユーザＡの手書きオブジェクト、さらにはユーザＣの手書きオブジェクトがＷｅｂページ上に表示される。また同様に、端末１０Ｃのディスプレイにおいても、ユーザＣの手書きオブジェクトがＷｅｂページ上に表示されるだけでなく、ユーザＡの手書きオブジェクト、さらにはユーザＢの手書きオブジェクトがＷｅｂページ上に表示される。
【００３２】
ストローク管理サーバシステム２は、同一のＷｅｂページ（同一のコンテンツ）を閲覧している複数の端末の各々からストロークデータを受信する。すなわち、ストローク管理サーバシステム２は、上述のＷｅｂページ上に端末１０Ａ，１０Ｂ，１０Ｃにおいてそれぞれ手書きされる複数のストロークに対応する複数のストロークデータを、これら端末１０Ａ，１０Ｂ，１０Ｃから受信する。そして、ストローク管理サーバシステム２は、これら複数のストロークデータの各々を当該ストロークデータの送信元の端末の識別子に対応付けてデータベース２Ａに格納する。例えば、端末１０Ａから受信される個々のストロークデータは、端末１０Ａの識別子（またはユーザＡの識別子）に対応付けてデータベース２Ａに格納される。同様に、端末１０Ｂから受信される個々のストロークデータは端末１０Ｂの識別子（またはユーザＢの識別子）に対応付けてデータベース２Ａに格納され、端末１０Ｃから受信される個々のストロークデータは端末１０Ｃの識別子（またはユーザＣの識別子）に対応付けてデータベース２Ａに格納される。識別子とは、端末を識別可能な情報であればどのような情報であっても良く、例えば、ＭＡＣアドレスやＩＰアドレスのような既存の情報や、端末１０Ａ，１０Ｂ，１０Ｃが属するシステムで設定される情報であっても良く、ストローク管理サーバシステム２で各端末１０Ａ，１０Ｂ，１０Ｃに付与される情報であっても良く、乱数に基づいて端末ごとに設定される情報であっても良い。
【００３３】
そして、ストローク管理サーバシステム２は、端末１０Ａ，１０Ｂ，１０Ｃ内のある第１の端末に、第１の端末以外の他の端末の識別子に対応付けられている、上述の複数のストロークデータ内の１以上の第１のストロークデータを送信する。端末１０Ａに他の各端末（端末１０Ｂ、１０Ｃ）のストロークデータを送信する場合には、ストローク管理サーバシステム２は、上述の複数のストロークデータから、端末１０Ｂの識別子に対応付けられているストロークデータと端末１０Ｃの識別子に対応付けられているストロークデータとを選択する。そして、ストローク管理サーバシステム２は、これら選択されたストロークデータを上述の第１のストロークデータ（他の端末において手書きされたストローク）として端末１０Ａに送信する。
【００３４】
さらに、ストローク管理サーバシステム２は、上述の複数のストロークデータの各々をその手書きタイミングに対応する時間情報に対応付けてデータベース２Ａに格納することができる。この場合、ストローク管理サーバシステム２は、ストロークデータとこのストロークデータに対応する時間情報とのセットを各端末に送信する。たとえば、端末１０Ａに他の各端末（端末１０Ｂ、１０Ｃ）のストロークデータを提供する場合には、ストローク管理サーバシステム２は、上述の複数のストロークデータから端末１０Ｂの識別子に対応付けられているストロークデータを選択し、この選択したストロークデータとこの選択したストロークデータに対応する時間情報とを端末１０Ａに送信する。さらに、ストローク管理サーバシステム２は、上述の複数のストロークデータから端末１０Ｃの識別子に対応付けられているストロークデータを選択し、この選択したストロークデータとこの選択したストロークデータに対応する時間情報とを端末１０Ａに送信する。
【００３５】
このように各ストロークデータのみならず各ストロークデータに対応する時間情報をも端末１０Ａに送信することにより、端末１０Ａにおいては、ストローク間の順序関係（筆順、ストロークが手書きされたタイミング）を再現することができる。さらに、端末１０Ｂにおいて書かれた手書き文字のようなストローク群と端末１０Ｃにおいて書かれた手書き文字のようなストローク群との間の順序関係も再現できる。
【００３６】
各端末とストローク管理サーバシステム２との間の通信の手順の例を説明する。  
端末１０Ａは、上述のＷｅｂページが表示されている端末１０Ａのディスプレイ上に１つのストロークが手書きされる度に、その手書きされた１つのストロークに対応する１つのストロークデータと上述のＷｅｂページの識別子（ＵＲＩ）とのセットを、ストローク管理サーバシステム２に送信する。ストロークデータは、対応するストロークが手書きされた時間を示す時間情報（タイムスタンプ）を含み得る。この時間情報は、絶対時間（ＧＭＴなど）であっても良いし、相対時間であってもよい。相対時間は、一つ前のストロークが手書きされたタイミングと現在の送信対象のストロークが手書きされたタイミングとの間の差分を示す情報である。さらに、ストロークデータは、対応するストロークのペン種別情報（ストロークの太さ、ストロークの色など）を含み得る。さらに、ペン種別情報には、消去モードにおいて手書きされるストロークを識別するための情報が含まれていても良い。
【００３７】
また、上述のＷｅｂページをより精度良く特定できるようにするために、上述のＷｅｂページの識別子（ＵＲＩ）のみならず、このＷｅｂページの更新日時情報も併せて端末１０Ａからストローク管理サーバシステム２に送信するようにしてもよい。
【００３８】
端末１０Ｂも、上述のＷｅｂページが表示されている端末１０Ｂのディスプレイ上に１つのストロークが手書きされる度に、その手書きされた１つのストロークに対応する１つのストロークデータと上述のＷｅｂページの識別子（ＵＲＩ）とのセットを、ストローク管理サーバシステム２に送信する。同様に、端末１０Ｃも、上述のＷｅｂページが表示されている端末１０Ｂのディスプレイ上に１つのストロークが手書きされる度に、その手書きされた１つのストロークに対応する１つのストロークデータと上述のＷｅｂページの識別子（ＵＲＩ）とのセットを、ストローク管理サーバシステム２に送信する。
【００３９】
ストローク管理サーバシステム２は、ストロークデータとＵＲＩをセットとしてデータベース２Ａに保存する。端末１０Ａ，１０Ｂ，１０Ｃの各々は、定期的（たとえば１〜２秒毎）にストローク管理サーバシステム２をポーリングして、ストローク管理サーバシステム２から上述のＵＲＩに関連付けられたストロークデータを取得する。ポーリングにおいては、端末１０Ａ，１０Ｂ，１０Ｃの各々は、上述のＷｅｂページのＵＲＩをストローク管理サーバシステム２に送信する。このＵＲＩに関連し且つ未取得の新しいストロークデータがストローク管理サーバシステム２にあれば、端末１０Ａ，１０Ｂ，１０Ｃの各々は、その新しいストロークデータをストローク管理サーバシステム２から取得する。ストローク管理サーバシステム２においては、各ストロークデータはその送信元の端末の端末ＩＤに対応付けて管理されている。したがって、端末１０Ａに対しては端末１０Ｂまたは１０Ｃに対応付けられたストロークデータが提供され、端末１０Ｂに対しては端末１０Ａまたは１０Ｃに対応付けられたストロークデータが提供され、端末１０Ｃに対しては端末１０Ａまたは１０Ｂに対応付けられたストロークデータが提供される。
【００４０】
端末１０Ａ，１０Ｂ，１０Ｃの各々は、取得した各ストロークデータに対応するストロークをＷｅｂページ上に描画する。この場合、端末１０Ａ，１０Ｂ，１０Ｃの各々においては、所定時間分のストロークデータ群をバッファリングしておいてもよい。これにより、各ストロークが手書きされたタイミングの順に、各ストロークをＷｅｂページ上に描画することができる。
【００４１】
図３は、端末１０Ａの表示画面の例を示している。ここでは、端末１０Ａ、１０Ｂ、１０ＣがＵＲＬ“ｈｔｔｐ／／ｗｗｗ．ａｗｅｂｐａｇｅ．ｃｏｍ／ｈｏｗｔｏａｃｃｅｓｓ”のＷｅｂページを閲覧している場合を想定する。Ｗｅｂページの画面イメージ３０Ａ上には透明のレイヤ（手書きレイヤ）３０Ｂが設定される。ユーザによって手書きされる各ストロークはレイヤ３０Ｂ上に描画され、これによってＷｅｂページの画面イメージ３０Ａ上に各ストローク（各ストロークの軌跡）が表示される（オーバーレイ）。Ｗｅｂページの画面イメージ３０Ａ上に手書きされるストローク群は、１ストローク単位でストローク管理サーバシステム２に逐次送信される。
【００４２】
図３では、Ｗｅｂページ内の矩形オブジェクト“ＹＹＹ駅”を囲む楕円のストロークがユーザＡによって手書きされた場合が想定されている。このストロークに対応するストロークデータはＵＲＬ“ｈｔｔｐ／／ｗｗｗ．ａｗｅｂｐａｇｅ．ｃｏｍ／ｈｏｗｔｏａｃｃｅｓｓ”などのメタ情報と一緒にストローク管理サーバシステム２に送信され、ストロークデータとメタ情報とがデータベース２Ａに蓄積される。端末１０Ａは、ＵＲＬ“ｈｔｔｐ／／ｗｗｗ．ａｗｅｂｐａｇｅ．ｃｏｍ／ｈｏｗｔｏａｃｃｅｓｓ”に関するストロークデータを定期的にストローク管理サーバシステム２に要求する。端末１０ＢのユーザＢが端末１０Ｂのディスプレイに表示されているＵＲＬ“ｈｔｔｐ／／ｗｗｗ．ａｗｅｂｐａｇｅ．ｃｏｍ／ｈｏｗｔｏａｃｃｅｓｓ”のＷｅｂページ上に文字などを手書きしたならば、その手書き文字に対応するストロークデータ群がストローク管理サーバシステム２のデータベース２Ａに蓄積される。端末１０Ａは、端末１０Ｂのこれらストロークデータをストローク管理サーバシステム２から受信することができる。これらストロークデータに対応するストロークはレイヤ３０Ｂ上に描画され、これによってＷｅｂページの画面イメージ３０Ａ上にユーザＢの各ストローク（各ストロークの軌跡）が表示される（オーバーレイ）。
【００４３】
次に、図４および図５を参照して、ユーザによって手書きされたストローク（文字、マーク、図形、表など）と時系列情報との関係について説明する。図４は、ペン１００などを使用してタッチスクリーンディスプレイ１７上に手書きされる手書き文書（手書き文字列）の例を示している。
【００４４】
手書き文書では、一旦手書きされた文字や図形などの上に、さらに別の文字や図形などが手書きされるというケースが多い。図４においては、「ＡＢＣ」の手書き文字列が「Ａ」、「Ｂ」、「Ｃ」の順番で手書きされ、この後に、手書きの矢印が、手書き文字「Ａ」のすぐ近くに手書きされた場合が想定されている。
【００４５】
手書き文字「Ａ」は、ペン１００などを使用して手書きされる２つのストローク（「∧」形状の軌跡、「−」形状の軌跡）によって、つまり２つの軌跡によって表現される。最初に手書きされる「∧」形状のペン１００の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標ＳＤ１１、ＳＤ１２、…ＳＤ１ｎが得られる。同様に、次に手書きされる「−」形状のペン１００の軌跡も等時間間隔でリアルタイムにサンプリングされ、これによって「−」形状のストロークの時系列座標ＳＤ２１、ＳＤ２１、…ＳＤ２ｎが得られる。
【００４６】
手書き文字「Ｂ」は、ペン１００などを使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。手書き文字「Ｃ」は、ペン１００などを使用して手書きされた１つのストローク、つまり１つの軌跡によって表現される。手書きの「矢印」は、ペン１００などを使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。
【００４７】
図５は、図４の手書き文書に対応する時系列情報（手書きページデータ）２００を示している。時系列情報は、複数のストロークデータＳＤ１、ＳＤ２、…、ＳＤ７を含む。時系列情報２００内においては、これらストロークデータＳＤ１、ＳＤ２、…、ＳＤ７は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べている。
【００４８】
時系列情報２００において、先頭の２つのストロークデータＳＤ１、ＳＤ２は、手書き文字「Ａ」の２つのストロークをそれぞれ示している。３番目と４番目のストロークデータＳＤ３、ＳＤ４は、手書き文字「Ｂ」を構成する２つのストロークをそれぞれ示している。５番目のストロークデータＳＤ５は、手書き文字「Ｃ」を構成する１つのストロークを示している。６番目と７番目のストロークデータＳＤ６、ＳＤ７は、手書き「矢印」を構成する２つのストロークをそれぞれ示している。
【００４９】
各ストロークデータは、一つのストロークに対応する座標データ系列（時系列座標）、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「Ａ」に関しては、ストロークデータＳＤ１は、手書き文字「Ａ」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）、つまりｎ個の座標データＳＤ１１、ＳＤ１２、…ＳＤ１ｎを含む。ストロークデータＳＤ２は、手書き文字「Ａ」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりｎ個の座標データＳＤ２１、ＳＤ２２、…ＳＤ２ｎを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
【００５０】
各座標データは、対応する軌跡内のある１点に対応するＸ座標およびＹ座標を示す。例えば、座標データＳＤ１１は、「∧」形状のストロークの始点のＸ座標（Ｘ１１）およびＹ座標（Ｙ１１）を示す。ＳＤ１ｎは、「∧」形状のストロークの終点のＸ座標（Ｘ１ｎ）およびＹ座標（Ｙ１ｎ）を示す。
【００５１】
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Ｔを含んでいてもよい。手書きされた時点は、絶対時間（例えば、年月日時分秒）またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間（例えば、年月日時分秒）をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Ｔとして付加してもよい。
【００５２】
このように、各座標データにタイムスタンプ情報Ｔが追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。
【００５３】
さらに、各座標データには、筆圧を示す情報（Ｚ）を追加してもよい。
【００５４】
図５で説明したような構造を有する時系列情報２００は、個々のストロークの筆跡だけでなく、ストローク間の時間的関係も表すことができる。したがって、この時系列情報２００を使用することにより、図４に示すようにたとえ手書き「矢印」の先端部が手書き文字「Ａ」上に重ねてまたは手書き文字「Ａ」に近接して書かれたとしても、手書き文字「Ａ」と手書き「矢印」の先端部とを異なる文字または図形として扱うことが可能となる。
【００５５】
なお、ストロークデータＳＤ１のタイムスタンプ情報としては、ストロークデータＳＤ１の内の複数の座標それぞれに対応する複数のタイムスタンプ情報Ｔ１１からＴ１ｎから選択される任意の一つを、あるいはタイムスタンプ情報Ｔ１１からＴ１ｎの平均値などを使用してもよい。同様に、ストロークデータＳＤ２のタイムスタンプ情報としては、ストロークデータＳＤ２の内の複数の座標点それぞれに対応する複数のタイムスタンプ情報Ｔ２１からＴ２ｎから選択される任意の一つを、あるいはタイムスタンプ情報Ｔ２１からＴ２ｎの平均値などを使用してもよい。また、同様に、ストロークデータＳＤ７のタイムスタンプ情報としては、ストロークデータＳＤ７の内の複数の座標点それぞれに対応する複数のタイムスタンプ情報Ｔ７１からＴ７ｎから選択される任意の一つを、あるいはタイムスタンプ情報Ｔ７１からＴ７ｎの平均値などを使用してもよい。
【００５６】
本実施形態の時系列情報２００においては、上述したように、ストロークデータＳＤ１、ＳＤ２、…、ＳＤ７の並びは手書き文字の筆順を示す。例えば、ストロークデータＳＤ１およびＳＤ２の並びは、最初に「∧」形状のストロークが手書きされ、次に「−」形状のストロークが手書きされたことを表す。したがって、たとえ２つの手書き文字の筆跡同士が互いに類似していても、それら２つの手書き文字の筆順が互いに異なる場合には、それら２つの手書き文字を異なる文字として区別することができる。
【００５７】
さらに、本実施形態では、上述したように、手書き文書は、イメージまたは文字認識結果ではなく、複数のストロークに対応する複数のストロークデータの集合から構成される時系列情報２００として記憶されるので、手書き文字の言語に依存せずに手書き文字を扱うことができる。よって、本実施形態の時系列情報２００の構造は、使用言語の異なる世界中の様々な国で共通に使用できる。
【００５８】
図６は、タブレットコンピュータ１０のシステム構成を示す図である。  
タブレットコンピュータ１０は、図６に示されるように、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスコントローラ１０５、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７、エンベデッドコントローラ（ＥＣ）１０８等を備える。
【００５９】
ＣＰＵ１０１は、タブレットコンピュータ１０内の各種モジュールの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム（ＯＳ）２０１、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、手書きノートアプリケーションプログラム２０２が含まれている。この手書きノートアプリケーションプログラム２０２は、Ｗｅｂページのようなコンテンツを閲覧するためのブラウザ機能、コンテンツ上に手書きストロークを描画する機能、ストローク管理サーバシステム２と連携する機能等を有している。
【００６０】
また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００６１】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバスなどを介してグラフィクスコントローラ１０４との通信を実行する機能も有している。
【００６２】
グラフィクスコントローラ１０４は、本タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示コントローラである。このグラフィクスコントローラ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。このＬＣＤ１７Ａ上にはタッチパネル１７Ｂおよびデジタイザ１７Ｃが配置されている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置および接触位置の動き等はタッチパネル１７Ｂによって検出される。デジタイザ１７ＣはＬＣＤ１７Ａの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン１００が接触される画面上の接触位置および接触位置の動き等はデジタイザ１７Ｃによって検出される。
【００６３】
無線通信デバイス１０７は、無線ＬＡＮまたは３Ｇ移動通信などの無線通信を実行するように構成されたデバイスである。ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ１０を電源オンまたは電源オフする機能を有している。
【００６４】
次に、図７を参照して、手書きノートアプリケーションプログラム２０２の機能構成について説明する。
【００６５】
手書きノートアプリケーションプログラム２０２は、ペン種別・消しゴム制御部３００、ペン軌跡描画処理部３０１、ストロークデータ生成部３０２、ストローク送信処理部３０４、ストローク受信処理部３０５、ストローク描画処理部３０７、ブラウザ３０８、および合成処理部３０９等を備える。
【００６６】
手書きノートアプリケーションプログラム２０２は、タッチスクリーンディスプレイ１７を用いて入力されるストロークデータを使用することによって、手書きページデータの作成、表示、編集等を行う。タッチスクリーンディスプレイ１７は、「タッチ」、「移動（スライド）」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動（スライド）」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
【００６７】
ペン種別・消しゴム制御部３００はタッチスクリーンディスプレイ１７上にメニュー又はボタンのようなグラフィカルユーザインタフェースを表示する。ペン種別・消しゴム制御部３００は、タッチスクリーンディスプレイ１７によって発生される「タッチ」のイベントを受信し、これによってユーザによるグラフィカルユーザインタフェースの操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。したがって、ペン種別・消しゴム制御部３００はグラフィカルユーザインタフェース上のボタンやメニューがタッチされたことを検出することができる。手書きノートアプリケーションプログラム２０２は、文字や図形等を手書きするための入力モードと、上述の消去ストロークを手書きするための消去モードとを有している。消去モードにおいて手書きされたストロークは上述の消去ストロークとして扱われる。また、ユーザは、描画されるストローク（ストロークに対応する軌跡）の太さや色を指定することができる。
【００６８】
ペン軌跡描画処理部３０１およびストロークデータ生成部３０２は、タッチスクリーンディスプレイ１７によって発生される「タッチ」または「移動（スライド）」のイベントを受信し、これによって手書き入力操作を検出する。上述したように「タッチ」イベントには、接触位置の座標が含まれている。「移動（スライド）」イベントにも、移動先の接触位置の座標が含まれている。したがって、ペン軌跡描画処理部３０１および時系列情報生成部３０２は、タッチスクリーンディスプレイ１７から、接触位置の動きの軌跡に対応する座標列を受信することができる。
【００６９】
ペン軌跡描画処理部３０１は、タッチスクリーンディスプレイ１７から座標列を受信し、この座標列に基づいて、ペン１００等を使用した手書き入力操作によって手書きされる各ストロークの軌跡を上述のレイヤ３０Ｂ上に、ペン種別・消しゴム制御部３００によって指定された太さおよび色で表示する。このペン軌跡描画処理部３０１により、画面にペン１００が接触している間のペン１００の軌跡、つまり各ストロークの軌跡がレイヤ３０Ｂ上に描かれる。
【００７０】
ストロークデータ生成部３０２は、タッチスクリーンディスプレイ１７から出力される上述の座標列を受信し、この座標列に基づいて、図５で詳述したような構造を有するストロークデータを生成する。この場合、ストロークデータ、つまりストロークの各点に対応する座標およびタイムスタンプ情報は作業メモリ３０３に一時保存してもよい。
【００７１】
ストローク送信処理部３０４は、ブラウザによって表示されているＷｅｂページ上に１つのストロークが手書きされる度に、このＷｅｂページのＵＲＩ（ＵＲＬ）とこのＷｅｂページに手書きされた１ストロークに対応するストロークデータとをストローク管理サーバシステム２に送信する。
【００７２】
ストローク受信処理部３０５は、定期的（たとえば１〜２秒毎）にストローク管理サーバシステム２をポーリングして、ブラウザによって現在表示されているＷｅｂページに関連するストロークデータをストローク管理サーバシステム２から受信する。この場合、ストロークデータと上述の時間情報とペン種別情報とのセットがストローク管理サーバシステム２から送信されるので、ストローク受信処理部３０５は、ストロークデータと時間情報とペン種別情報とのセットを受信する。受信されるストロークデータと時間情報とペン種別情報のセットはバッファ３０６に一時格納されてもよい。
【００７３】
ストローク描画処理部３０７は、受信されるストロークデータに対応するストローク（ストロークの軌跡）を、ペン種別情報によって指定される太さおよび色でレイヤ３０Ｂ上に描画する。ストローク描画処理部３０７は上述の消去ストロークデータを取り扱う機能を有しており、受信されるストロークデータが消去ストロークデータである場合には、他のストロークを透明にするためのストローク（消去ストローク）をレイヤ３０Ｂ上に描画する。この消去ストロークの軌跡の下側に位置する、既存の各ストローク内の部分は、透明にされる。
【００７４】
合成処理部３０９は、ブラウザ３０８によって描画されるＷｅｂコンテンツの画面イメージとレイヤ３０Ｂとを合成することによって、Ｗｅｂコンテンツの画面イメージ上に各ストロークを表示する。
【００７５】
図８は、ストローク管理サーバシステム２のデータベース２Ａに保存されるストローク情報管理テーブルを示す。ストローク情報管理テーブルは多数のレコードを含む。ストローク情報管理テーブルの１レコードには１つのストローク（1画）が割り当てられる。各レコードにおいては、コンテンツを同定するＵＲＩ、ストロークが書かれた時間を示す時間情報（GMTやローカル時間）、ユーザＩＤ（デバイスＩＤ）、ストローク（座標列）、ペン種別情報等が格納される。ストローク管理サーバシステム２は、各端末から受信されるストロークデータに付加されたタイムスタンプ情報を絶対時間（年月日時分秒）に換算し、この絶対時間を時間情報としてレコードに登録することができる。もちろん、ストロークデータに付加されたタイムスタンプ情報を上述の時間情報としてレコードに登録してもよい。ユーザＩＤ（デバイスＩＤ）は、ストロークデータを送信した送信元の端末の識別子である。
【００７６】
ＵＲＩは、リソース（コンテンツ、情報資源等を含む）の場所または名前の少なくとも一方を識別可能な情報であればどのような情報であっても良い。ＵＲＩは、例えば、ｈｔｔｐスキームなどのような、インターネット上にあるコンテンツの識別子であっても良く、システムで独自に拡張したスキームであって良く、各端末がローカルに持つ同一コンテンツ（たとえば電子書籍）の同定が可能な情報であっても良い。
【００７７】
各端末は、あるコンテンツのファイルを最初に開いた時は、（１）開いたコンテンツのＵＲＩに対応し且つ現在時刻の一定時間前の時点から現在時刻までの期間内に属する時間を各々が有するストロークデータ群、または（２）開いたコンテンツのＵＲＩに対応し且つ基準データ数以内のストロークデータ群、または（３）開いたコンテンツの最終更新日以降の時間を各々が有するストロークデータ群をストローク管理サーバシステム２から取得する。その後は、各端末は、一定時間毎にストローク管理サーバシステム２をアクセスして、前回取得時間から現在取得時間までの期間内に属する時間を各々が有するストロークデータ群をストローク管理サーバシステム２から取得する。
【００７８】
図９は、端末１０Ａの画面上に表示されるコンテンツ上に手書きされたストロークが端末１０Ｂの画面上に表示される様子を示している。
【００７９】
端末１０Ａの画面上に表示されるコンテンツ上に１つのストロークが書かれると、そのストロークに対応するストロークデータがストローク管理サーバシステム２に送信される。図９では、端末１０Ａと端末１０Ｂとが同じＷｅｂページを閲覧しており、端末１０Ａの画面上に表示されるＷｅｂページ上にユーザＡによって文字列５０Ａが手書きされた場合が想定されている。端末１０Ｂは、一定時間毎にストローク管理サーバシステム２をポーリングしており、新たな１以上のストロークデータがストローク管理サーバシステム２上に存在すると、その新たな１以上のストロークデータを受信する。端末１０Ｂでは、受信された各ストロークデータはバッファリングされ、一定時間待った後にストロークの描画が開始される。この待ち時間は、リアルタイム性を優先するのであればゼロ若しくは極短い時間に設定すれば良い。あるいは、書き方の再現性を求めるならば、この待ち時間は、比較的長い時間に設定すれば良い。
【００８０】
図９では、端末１０Ａの画面上に書かれたストロークがほぼリアルタイムに端末１０Ｂの画面上に表示される例が示されている。
【００８１】
なお、ここでは、端末１０Ａが送信側、端末１０Ｂが受信側の場合を例示的に示したが、端末間の通信は全二重方式で実行され得る。
【００８２】
図１０は、端末１０Ａの画面上に表示されるコンテンツ上に手書きされたストロークと端末１０Ｃの画面上に表示されるコンテンツ上に手書きされたストロークとが、端末１０Ｂの画面上に表示される様子を示している。
【００８３】
端末１０Ａの画面上に表示されるコンテンツ上に１つのストロークが書かれると、そのストロークに対応するストロークデータがストローク管理サーバシステム２に送信される。図１０では、３つの端末１０Ａ，１０Ｂ，１０Ｃが同じＷｅｂページを閲覧しており、端末１０Ａの画面上に表示されるＷｅｂページ上にユーザＡによって文字列５０Ａが手書きされ、その後に、端末１０Ｃの画面上に表示されるＷｅｂページ上にユーザＣによって文字列５０Ｃが手書きされ場合が想定されている。この場合、ストローク情報管理テーブルにおいては、手書き文字列５０Ｃに対応するストロークデータそれぞれの時間は、手書き文字列５０Ａに対応するストロークデータのどの時間よりも遅い。
【００８４】
端末１０Ｂは、手書き文字列５０Ａに対応する各ストロークデータと手書き文字列５０Ｃに対応する各ストロークデータを受信するが、上述したように各ストロークデータと一緒に時間情報も受信する。したがって、端末１０Ｂにおいては、最初に文字列５０Ａに対応するストローク群が、端末１０Ｂの画面に表示されているＷｅｂページ上に表示され、その後に、文字列５０Ｃに対応するストローク群がＷｅｂページ上に表示される。
【００８５】
なお、ここでは、端末１０Ａ，１０Ｃが送信側、端末１０Ｂが受信側の場合を例示的に示したが、端末間の通信は全二重方式で実行され得る。つまり、端末１０Ａは送信側だけでなく、端末１０Ｂ，１０Ｃにおいて手書きされるストロークを受信する受信側となり得る。同様に、端末１０Ｃは送信側だけでなく、端末１０Ａ，１０Ｂにおいて手書きされるストロークを受信する受信側となり得る。端末１０Ｂは受信側だけでなく、端末１０Ｂにおいて手書きされるストロークを送信する送信側となり得る。
【００８６】
図１１は３つの端末１０Ａ，１０Ｂ，１０Ｃが相互に全二重で通信する場合を示している。ユーザＡによって手書きされた文字列５０Ａの各ストロークに対応するストロークデータは端末１０Ａからストローク管理サーバシステム２に送信され、そしてストローク管理サーバシステム２から端末１０Ｂ，１０Ｃに送信される。よって、文字列５０Ａの各ストロークが、端末１０Ｂの画面に表示されているＷｅｂページ上に表示される。同様に、文字列５０Ａの各ストロークが、端末１０Ｃの画面に表示されているＷｅｂページ上に表示される。
【００８７】
ユーザＣによって手書きされた文字列５０Ｃの各ストロークに対応するストロークデータは端末１０Ｃからストローク管理サーバシステム２に送信され、そしてストローク管理サーバシステム２から端末１０Ａ，１０Ｂに送信される。よって、文字列５０Ｃの各ストロークが、端末１０Ａの画面に表示されているＷｅｂページ上に表示される。同様に、文字列５０Ｃの各ストロークが、端末１０Ｂの画面に表示されているＷｅｂページ上に表示される。
【００８８】
図１２は、ストローク管理サーバシステム２の機能構成を示す。ストローク管理サーバシステム２は、ストローク受信処理部２１、ストローク送信処理部２２、およびストローク管理部２３を備える。ストローク受信処理部２１は、同一コンテンツ上に端末１０Ａ，１０Ｂ，１０Ｃにおいて手書きされる複数のストロークに対応する複数のストロークデータを端末１０Ａ，１０Ｂ，１０Ｃから受信する。ストローク管理部２３は、これら受信された複数のストロークデータの各々を当該ストロークデータの送信元の端末の識別子に対応付けてデータベース２Ａ（記憶媒体）に格納するように構成された制御部として機能する。ストローク送信処理部２２は、端末１０Ａ，１０Ｂ，１０Ｃ内の任意の端末（第１の端末）に、第１の端末以外の他の端末から受信された１以上の第１のストロークデータを送信する。データベース２Ａにおいては、各ストロークデータにはその送信元の端末の端末ＩＤが関連付けられている。上述の１以上の第１のストロークデータは、第１の端末以外の他の端末の端末ＩＤに対応付けられているストロークデータである。
【００８９】
次に、図１３のフローチャートを参照して、ストローク管理サーバシステム２によって実行されるストローク配信処理の手順を説明する。
【００９０】
ストローク管理サーバシステム２のストローク受信処理部２１は、同じコンテンツを共有する端末１０Ａ，１０Ｂ，１０Ｃから、これら端末１０Ａ，１０Ｂ，１０ＣのユーザＡ，Ｂ，Ｃによってコンテンツ上にそれぞれ手書きされる複数のストロークに対応する複数のストロークデータを受信する（ステップＳ１１）。ストローク管理サーバシステム２のストローク管理部２３は、受信した各ストロークデータを、そのストロークデータを送信した端末のＩＤ、そのストロークが手書きされた時間を示す時間情報、そのストロークデータに対応するペン種別情報と対応付けて管理する。
【００９１】
ストローク管理サーバシステム２のストローク送信処理部２２は、端末１０Ａ，１０Ｂ，１０Ｃ内のある送信対象端末に、この送信対象端末以外の他の端末から受信されたストロークデータとこのストロークデータに対応する時間情報およびペン種別情報を送信する（ステップＳ１３）。例えば、端末１０Ａが送信対象端末であれば、ストローク送信処理部２２は、端末１０Ｂから受信された各ストロークデータと、この各ストロークデータに対応する時間情報およびペン種別情報を端末１０Ａに送信する。さらに、ストローク送信処理部２２は、端末１０Ｃから受信された各ストロークデータと、この各ストロークデータに対応する時間情報およびペン種別情報を端末１０Ａに送信する。
【００９２】
次に、図１４のフローチャートを参照して、タブレットコンピュータ１０によって実行される手書き情報共有処理の手順について説明する。ここでは、端末間で共有されるコンテンツがＷｅｂページである場合を例示して手書き情報共有処理を説明するが、共有されるコンテンツはＷｅｂページに限られず、例えば、電子書籍、テキストデータ、画像データ（静止画、動画）、等の任意のコンテンツを使用し得る。
【００９３】
タブレットコンピュータ１０の手書きノートアプリケーションプログラム２０２は、Ｗｅｂサーバ３からＷｅｂページのようなコンテンツを取得する（ステップＳ２１）。そして、手書きノートアプリケーションプログラム２０２は、Ｗｅｂページの画面イメージを描画することによってそのＷｅｂページの画面イメージをタッチスクリーンディスプレイ１７に表示する（ステップＳ２２）。手書きノートアプリケーションプログラム２０２は、ユーザによる手書き入力操作によってタッチスクリーンディスプレイ１７に手書きされる各ストロークをＷｅｂページの画面イメージ上のレイヤ３０Ａ上に描画する（ステップＳ２３）。これにより、Ｗｅｂページ上に手書き文字等が表示される（オーバーレイ）。
【００９４】
そして、手書きノートアプリケーションプログラム２０２は、手書きされたストロークに対応するストロークデータとＷｅｂページのＵＲＩのセットをストローク管理サーバシステム２に送信する（ステップＳ２４）。ストロークデータとＷｅｂページのＵＲＩのセットの送信は、１ストローク単位で実行される。手書きノートアプリケーションプログラム２０２は、例えば、定期的にポーリングすることによって、ストローク管理サーバシステム２から、他の端末において上述のＷｅｂページに手書きされるストロークに対応するストロークデータとこのストロークデータの時間情報とを受信する（ステップＳ２５）。
【００９５】
手書きノートアプリケーションプログラム２０２は、受信されたストロークデータと時間情報とに基づいて、他の端末において上述のＷｅｂページに手書きされたストロークと同じストロークを、表示中のＷｅｂページ上に描画する（ステップＳ２６）。これにより、他の端末上で手書きされた文字等が、タブレットコンピュータ１０の画面上のＷｅｂページ上に表示される。
【００９６】
以上説明したように、本実施形態においては、第１のコンテンツ（共有コンテンツ）上に複数の端末１０Ａ，１０Ｂ，１０Ｃにおいて手書きされる複数のストロークに対応する複数のストロークデータがこれら複数の端末１０Ａ，１０Ｂ，１０Ｃから受信され、これら複数のストロークデータの各々が当該ストロークデータの送信元の端末の識別子に対応付けてデータベース（記憶媒体）２Ａに格納される。そして、端末１０Ａ，１０Ｂ，１０Ｃ内のある第１の端末（送信対象端末）に、この第１の端末以外の他の端末の識別子に対応付けられているストロークデータが送信される。よって、同じコンテンツ上に書かされる手書き情報を端末１０Ａ，１０Ｂ，１０Ｃ間で共有することができるので、例えば、会議においては、会議参加者間で同じ資料（コンテンツ）上に書かれた手書き情報（手書き文字、手書き図形等）を容易に交換・共有することが可能となる。また、コンテンツとストロークデータの双方が端末間で交換されるのではなく、ストロークデータだけが端末間で交換されるので、比較的少ない通信データ量で手書き情報の交換・共有を実現することができる。
【００９７】
さらに、ストロークデータと時間情報のセットを第１の端末に送信することにより、第１の端末においては、ある他の端末で書かれた手書き文字のようなストローク群と別の他の端末で書かれた手書き文字のようなストローク群との間の順序関係を再現することができる。
【００９８】
なお、本実施形態では、時間情報として絶対時間を使用する場合を例示的に説明したが、動画のようなコンテンツの場合には、ストロークが書かれた時間としては、そのコンテンツの再生を開始してからの経過時間を示すオフセット値を使用しても良い。
【００９９】
また、本実施形態では、各端末がサーバからコンテンツを取得する場合を例示したが、各端末のローカルストレージに格納されているコンテンツを各端末のディスプレイに表示しても良い。
【０１００】
また、同じURIで同定できる電子教科書を複数の端末に配布し、講義中講師が書いたストロークがリアルタイムに各端末の電子教科書上に表示されるようにしてもよい。講義であれば、ストロークの情報以外に、講義内容の進行とストロークが実際に書かれるタイミングとの関係が重要であるので、ストロークデータと時間情報のセットを各端末に送信することが有効である。
【０１０１】
なお、本実施形態のストローク管理サーバシステム２の処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをサーバコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【０１０２】
本実施形態のタブレットコンピュータ１０の処理もコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【０１０３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０４】
２…ストローク管理サーバシステム、１０…タブレットコンピュータ、２１…ストローク受信処理部、２２…ストローク管理部、２３…ストローク送信処理部、２００…時系列情報、３０１…ペン軌跡描画処理部、３０２…ストロークデータ生成部、３０４…ストローク送信処理部、３０５…ストローク受信処理部、３０７…ストローク描画処理部
【図１】
2014110061.tif 000003
【図２】
2014110061.tif 000004
【図３】
2014110061.tif 000005
【図４】
2014110061.tif 000006
【図５】
2014110061.tif 000007
【図６】
2014110061.tif 000008
【図７】
2014110061.tif 000009
【図８】
2014110061.tif 000010
【図９】
2014110061.tif 000011
【図１０】
2014110061.tif 000012
【図１１】
2014110061.tif 000013
【図１２】
2014110061.tif 000014
【図１３】
2014110061.tif 000015
【図１４】
2014110061.tif 000016