本発明は、装置で使用される検証可能なストローク及び画像を用いたワークフローを取り扱うシステムにより、従来技術における欠点を克服し、そのシステムは、パーソナルコンピュータで処理する場合に特有のエンドユーザによるオーバーヘッドを必要とせずに、紙を用いた場合と同様に、ユーザが、電子文書を配布すること、注釈を付けること及び収集することを可能にする。このシステムは、電子システムと相互運用(同時使用)可能に用紙又は電子文書を所有する仕組みをもたらす点で、特に有利である。特に、本発明は、紙のような任意の画像コンテンツを表示し、ストローク(stroke)を収集し、画像及び/又はストロークを、ある方法でワークフローの次の段階に提供し、その方法は、現在の動作方法を大幅に変更することを必要とせず、印刷したり紙をファイルしたりする必要性を排除する。携帯用コンピュータ装置及びサーバ間のやりとりにより、画像、取り込んだストローク情報及び構造化されたログを利用して、検証可能な方法でイベントを記録する。
一実施例において、本発明によるシステムは、ストローク及び画像ワークフローサーバにネットワークを介して結合された複数の携帯用コンピュータ装置を有する。ストローク及び画像ワークフローサーバは、データストレージにも結合されている。一実施例において、携帯用コンピュータ装置は、ディスプレイ、ストローク取得機能部及び無線通信機能部を有する。携帯用コンピュータ装置は、(例えば、フォームのような)画像を受信し、受信した画像にストローク注釈(stroke annotation)を付加し、受信した注釈の付いた画像を送信する。ストローク及び画像ワークフローサーバは、ネットワークに結合され、携帯用コンピュータ装置と通信する。ストローク及び画像ワークフローサーバは、ロギングモジュール、ワークフローモジュール、検証モジュール及び文書送信モジュールを含む。ストローク及び画像ワークフローサーバは、携帯用コンピュータ装置との間で文書を送受信し、検証用の履歴(ログ)を維持し、文書を処理するペーパーライクワークフローを実行する。本質的には、このストローク及び画像ワークフローサーバが、ペーパーライクワークフローを実行し、電子文書を処理する際のオーバーヘッドを取り扱い、その作業がユーザに見えないようにする。
本発明は多数の新しい方法も含み、その方法は、ストローク及び画像を用いたワークフローを処理する方法、複合文書(composite document)の履歴をとる(ロギングする)方法、検証する方法、複合文書を作成する方法、及び文書のルーティングを決定する方法等を含む。
本発明は、ストローク及び画像のアグリゲーション及び分析を行うシステムとともに従来技術における問題点に対処する。本システムは、ワークシート、テスト又はフォームのようなページ画像を複数の装置に配布する点で、特に有利である。本システムは、独立したページの閲覧、分散されたマテリアルへの書き込み、分散されたページ画像に追加されたストロークの収集、有用な方法によるそれらのストローク又は要約情報のアグリゲーション及び表示を可能にする。例えば、教師が、特定の試験問題に対する生徒の現在の作品(又は回答)を受信し、並列的な方法で又は組み合わせた方法でそれらのストロークを眺める。
一実施例において、本発明によるシステムは、ストローク及び画像ワークフローサーバにネットワークを介して結合された複数の携帯用コンピュータ装置を含む。携帯用コンピュータ装置は、ディスプレイ、ストローク取得部及び無線通信部を含む。携帯用コンピュータ装置は、画像(例えば、フォーム)を受信し、受信した画像にストロークの注釈を追加し、受信した注釈の付いた画像又はストローク注釈自身を送信する。ストローク及び画像ワークフローサーバは、携帯用コンピュータ装置と通信するためにネットワークに結合される。ストローク及び画像ワークフローサーバは、アグリゲーションモジュール及び分析モジュールを含み、複数の携帯用コンピュータ装置からのストロークを収集し、それらストロークを収集した表示を生成する。
本発明は多数の新しい方法も含み、本発明によるその方法は、ストローク及び画像のアグリゲーション(aggregation)及び分析を行う方法、ストローク及び/又は画像のアグリゲーションを行う方法、ストローク及び/又は画像のフィルタリング及びプレゼンテーションを行う方法、及びストローク及び/又は画像の分析を行う方法等を含む。
本願において説明される特徴及び利点は網羅的なものではなく、以下の詳細な説明及び図面を参照することで、多くのさらなる特徴や利点が当業者にとって明らかになるであろう。さらに、本明細書で使用されている言葉は、原則として読みやすさや説明を意図して選択されており、開示される発明の範囲を限定するものではないことに、留意を要する。
検証可能なストローク及び画像に基づくワークフローにおける装置のためのシステムが開示される。以下の説明において、説明の目的で様々な具体的詳細が説明され、本発明の十分な理解を促す。しかしながら、本発明はそのような具体的詳細によらず使用可能であることは、当業者にとって明らかであろう。場合によっては、装置や構造はブロック図として示され、本発明を曖昧にしてしまうことを回避する。例えば、本発明は、一実施例において、ハードウェア及びソフトウェアプラットフォーム(例えば、アマゾンキンドル(Amazon Kindle))において実現される携帯用コンピュータ装置と共に説明されている。しかしながら、本発明は、インク、データ及びコマンドを取り込み、文書を電子的に送信することが可能な如何なるタイプの携帯用コンピュータ装置にも適用できる。
本明細書における「一実施例」又は「形態」は、その実施例に関して説明される特定の特質、構造又は特徴が、本発明の少なくとも1つの実施例に含まれることを意味する。本明細書の様々な場所で「一実施例」なる用語が使用されているが、必ずしも全てが同じ実施例であるとは限らない。特に、本発明は以下において2つの別個のアーキテクチャに関連して説明されるが、一部の装置は双方のアーキテクチャにおいて動作可能であるが、他の装置はそうではない。
以下の詳細な説明の一部は、コンピュータメモリ内のデータビットを処理するアルゴリズム及び記号表現で与えられる。これらのアルゴリズムの説明及び表現は、データ処理技術分野の当業者が他の当業者に彼らの仕事内容を最も効率的に伝えるのに使用される手段である。ここで、アルゴリズムは一般に所望の結果に導く首尾一貫した一連のステップと考えられる。そのステップは物理量の物理的処理を必要とするものである。必須ではないが、通常それらの物理量は、格納、転送、結合、比較その他の処理を施すことの可能な電気的な又は磁気的な信号の形態をとる。原則的な一般的な用法の観点から、ビット、値、エレメント、シンボル、キャラクタ、期間、数等としてそれらの信号に言及することが折に触れて便利なことが分かる。
しかしながら、これらの及び類似の用語の全ては、適切な物理量に関連しており且つそれらの量に付された便宜的なラベルにすぎないことに留意を要する。特に断りのない限り、以下の説明から明らかなように、本説明を通じて、「処理」、「演算」、「計算」、「決定」又は「表示」等のような用語を用いる説明は、コンピュータシステム又は同様な電子コンピュータ装置の動作や処理に関連し、そのコンピュータシステム等は、コンピュータシステムのレジスタ及びメモリの中で物理的な(電子的な)量として表現されるデータを、コンピュータシステムメモリやレジスタその他の情報ストレージ、伝送又は表示装置の中で物理量として同様に表現される他のデータに変換及び処理することが、理解されるであろう。
本発明はここで説明される処理を実行する装置にも関連している。その装置は、必要な目的に応じて特別に構築されてもよいし、コンピュータに格納されているコンピュータプログラムによって選択的にアクティブにされる又は再構成される汎用コンピュータで構築されてもよい。そのようなコンピュータプログラムはコンピュータ読取可能な記憶媒体に格納されてもよく、その記憶媒体は、限定ではないが、フロッピディスク、光ディスク、CD-ROM、磁気光ディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気又は光カード等の如何なるタイプのディスクを含んでもよいし、或いは電子的な命令を格納するのに指摘した如何なるタイプの媒体を含んでもよく、ディスクも媒体もそれぞれコンピュータシステムバスに結合される。
本明細書に示されるアルゴリズム及びディスプレイは、何らかの特定のコンピュータ又は他の装置に固有に関連するものではない。様々な汎用システムが、本願による教示にしたがってプログラムとともに使用されてもよいし、あるいは、必要な方法ステップを実行するのにさらに特化した装置を構築することが有益であるかもしれない。それら様々なシステムに必要な構造は以下の説明から明らかになるであろう。さらに、本発明は何らかの特定のプログラミング言語に特化して説明されている。本願で説明される発明の教示内容を実現するために様々なプログラミング言語を使用可能であることが、理解されるであろう。
<システム概要>
図1は、装置により使用される検証可能なストローク及び画像を用いてワークフローを処理するシステム例を示す。図1を参照するに、この例のシステム100は、複数の携帯用コンピュータ装置102a−102n、ネットワーク104、コンピュータ108、ストローク及び画像ワークフローサーバ106、そしてデータストレージ110を有する。
複数の携帯用コンピュータ装置102a−102nは、各自の接続112a−112nを介してネットワーク104に無線により結合される。一実施例において、携帯用コンピュータ装置102a−102nは、ディスプレイ、ストローク捕捉機能部(取込機能部、取得機能部)及び無線通信機能部を含む携帯用コンピュータ装置である。携帯用コンピュータ装置は、画像(例えば、フォーム)を受信し、受信した画像にストローク注釈(stroke annotation)を追加し、受信した注釈の付いた画像を送信するように構築される。携帯用コンピュータ装置102a−102nの具体例については、図2及び図3を参照しながら後述される。
ネットワーク104は、通常の有線又は無線の形式のものであり、スターコンフィギュレーション、トークンリングコンフィギュレーションその他の当業者に既知のコンフィギュレーションのような任意の形態を有する。さらに、ネットワーク104は、ローカルエリアネットワーク(LAN)や、広域ネットワーク(WAN)(例えば、インターネット)により構築されていてもよいし、及び/又は複数の装置が通信する他の任意の相互接続データパスにより構築されていてもよい。さらに別の実施例において、ネットワーク104はピアトゥピアネットワークでもよい。ネットワーク104は、多種多様な通信プロトコルによりデータを送信する通信ネットワークの部分に結合されていてもよいし、そのような部分を含んでいてもよい。さらに別の実施例において、ネットワーク104は、ブルートゥース通信ネットワーク又はセルラ通信ネットワークを含み、例えば、ショートメッセージサービス(SMS)、マルチメディアメッセージサービス(MMS)、ハイパーテキストトランスファプロトコル(HTTP)、直接的なデータ接続、WAP、電子メール等を介してデータを送信及び受信する。
コンピュータ108は、パーソナルコンピュータのような通常のタイプのものである。コンピュータ108は信号線118によりネットワーク104に結合される。一実施例において、コンピュータは、最初にフォームを入力するストローク及び画像ワークフローサーバ106にアクセスして通信し、ワークフローにしたがって特定のフォームに対する処理を実行する又は処理を確認する。例えば、ユーザは、コンピュータ108を使用して、以後の処理のためにPDFファイルのような文書を、ストローク及び画像ワークフローサーバ106に入力する。同様に、コンピュータ108は、そのワークフローによる全ての処理が完了した後に、完成したフォームを受け取る。コンピュータ108は、ストローク及び画像ワークフローサーバ106の検証モジュール530(図5A参照)と通信し、特定のフォームの処理の状態又は仕上がりを確認する。そして、コンピュータ108は、ワークフローの中間段階として電子文書に処理を施しもよいし、あるいはストローク及び画像ワークフローサーバ106の一部の機能を包含し、携帯用コンピュータ装置102a−102nと直接的に通信してもよい。
ストローク及び画像ワークフローサーバ106は、信号線116を介してネットワーク104に結合され、携帯用コンピュータ装置102a−102nと通信する。ストローク及び画像ワークフローサーバ106は、文書送信モジュール508、ワークフローモジュール512、ロギングモジュール516及び検証モジュール530を含む(図5A参照)。ストローク及び画像ワークフローサーバ106は、文書を送信し、携帯用コンピュータ装置102a−102nから文書を受信し、確認用の記録(ログ)を維持し、ペーパーライクワークフロー及び文書の処理を実行する。これは特に有利である。なぜなら、ストローク及び画像ワークフローサーバ106は、携帯装置ユーザのためにペーパーライクワークフローを実行し、電子文書処理のオーバーヘッドを処理し、その処理がユーザにとって不可視であるようにできるからである。
データストレージ110は、信号線120を介してストローク及び画像ワークフローサーバ106に結合される。データストレージ110は、不揮発性記憶装置又は同様な永続的なストレージデバイス及び媒体である。データストレージデバイス110は、プロセッサ302用の命令及びデータを保存し、ハードディスクドライブ、フロッピディスクドライブ、CD−ROM装置、DVD−ROM装置、DVD−RAM装置、DVD−RW装置、フラッシュメモリ装置又は他の既存の大容量記憶装置等を含む装置の内の1つ以上を有する。データストレージ110は、ログの処理のようなワークフローの処理に関する情報を保存するために使用される。
図1のシステムはストローク及び画像ワークフローサーバ106を1つしか示していないが、例えば、他の機能、企業、機構、組織構造に専用のさらに追加のワークフローサーバがいくつでも存在してよいことが、理解されるべきである。コンピューティングパッド202(図2参照)は、1つより多い数のストローク及び画像ワークフローサーバ106と通信してもよい。複合文書400(図4参照)の特定のページ又はセクションが、様々なワークフローサーバに関連付けられてもよい。そして、コンピューティングパッド202は、政府のワークフローサーバに提出される納税申告フォーム、病院のワークフローサーバに提出される医療用フォーム、及びできた場合に教育機関のワークフローサーバに提出されるテスト等を表示する。様々なページ及びセクションのアドレスを特定するために、メタデータディレクトリが使用可能である。また、複合文書400の全体を送信する代わりに、複合文書の一部分が転送されてもよい。試験を受けた生徒は、その試験の回答の部分のみを提出し、参考的な部分のページを提出しないようにしてもよい。
<携帯用コンピュータ装置102>
図2及び図3を参照しながら、一実施例における携帯用コンピュータ装置102を詳細に説明する。携帯用コンピュータ装置102は、コンピューティングパッド202及びスタイラス204を有する。コンピューティングパッド202の動作は、画像を表示すること、及びその画像の上で描かれた任意の筆使い、筆跡、一画、ストローク(stroke)を記録する。典型的には、ストロークは、あたかも紙にペンで書いた場合のように、画像の最上面に表示される。ストロークは、一連の点の集まり又は一連の線分の集まりとして取り込まれる。通常、あるタイミング情報がストロークと共に取得され、場合によっては、筆圧情報も取得される。パッドに接していること及びパッドに近接して離れていることを含む「ペンアップ(ペンを持ち上げたこと)」及び「ペンダウン(ペンを下ろしたこと)」の情報が、ストロークと共に記録されてもよい。場合によっては、スタイラス204が識別子、ボタン又は異なる「末尾(different ends)」を有し、これがストロークとともに記録されてもよい。
コンピューティングパッド202は、ディスプレイ装置206、ストローク取得装置及びモジュール208、複数の入力装置210−216、カメラ218、出力装置220、プロセッサ302、メモリ304、通信装置306、固有のデバイス識別子308、クロック310、メタデータモジュール312、ロギングモジュール314、文書転送モジュール316、ルーティングモジュール318、バス320、プレゼンテーションモジュール322及びその他のアプリケーション324を有する。
図2を参照するに、一実施例によるコンピューティングパッド202が示されている。一実施例において、ディスプレイ装置206は、E−inkにより製造販売されているような電子ペーパーディスプレイである。一実施例において、ディスプレイ装置206は、液晶ディスプレイ(LCD)又は他の同様に組み込まれる表示装置、スクリーン又はモニタである。ディスプレイ装置206は、本願で説明されるような電子画像及び文書を表示するように装備された任意の装置を表す。ディスプレイ装置206は、少なくとも情報の小さな「ページ」を表示できる程度に充分な大きさを有する。別の実施例において、ディスプレイは、バイナリ(画素について異なる値が2つのみ)、モノクロ(一色による多段階の陰影)によるものであってもよいし、複数の色や陰影を表示できてもよい。ディスプレイ装置206は、好ましくは、軽量で低電力消費のディスプレイである。一実施例において、ディスプレイ装置206は、屋外使用及び低電力消費のために、発光する光のではなく、反射する光を利用する。ディスプレイ装置206は、紙に表示するように情報を表示するために高解像度を有するが、ディスプレイ装置206は、LCDディスプレイに共通の60Hzリフレッシュレートよりも十分に低い更新速度を有する。
ディスプレイ装置206に整合した場所に、ディジタル化するタブレット又はグラフィックスパッドのようなストローク取得装置208が存在する。ストローク取得装置208は、接触検出装置、あるいは電磁的又は光学的検出装置であり、ディスプレイの上、下又は周囲に設けられた受信機を有する。ストローク取得装置208は、スタイラス204、指又はその他の手段によるストロークを受け付けることができる。ストローク取得装置208は、スタイラス204に対するセンサであり、手書き画像、印刷画像及びその他の描画を識別可能に取り込むことができる程度に充分な解像度(分解能)を有する。一実施例において、ディスプレイ装置206にはタッチスクリーンが備わっており、そのタッチスクリーンの中で、接触感知式の透明パネルがディスプレイ装置206の画面をカバーしている。一実施例において、ストローク取得装置208は、ワコム(Wacom Co.,Ltd)により製造販売されているディジタイザである。別の実施例において、ストローク取得装置208は、接触した一点の水平位置及び垂直位置(縦横の位置)を返す簡易なセンサである。さらに別の実施例において、ストローク取得装置208は、より複雑な複数のセンサであり、スタイラスにおけるボタンが押された場合又はスタイラスが逆さにされた場合に(例えば、消去する場合)、筆圧、位置及び時間の指標に加えて、スタイラス204のID番号、タイプ又は指標さえも返す。幾つかのセンサが、接触した複数の地点の情報を返してもよい。ストローク取得装置208は、ストローク取得モジュール208の一部分でもよいし、ストローク取得モジュール208と通信するように構築されていてもよい。
スタイラス204に加えて、コンピューティングパッド202は、コマンドを入力するための複数の入力装置210−216を用意している。図2に示されるような第1ボタン214が選択されると、コンピューティングパッド202のディスプレイ装置206に複合文書を表示し始める。第2ボタン216が選択されると、注釈が終わったこと、及び複合文書がコンピューティングパッド202により送信可能であることが示される。第3のボタン212は、表示されているフォームの部分を、ディスプレイ装置206の表示領域の中で動かすことを可能にする。このボタン212は、ディスプレイ装置206の表示領域の中で、ユーザが、フォームを中心にすること、フォームの他の領域に着目し、それらを中心にすることを可能にする。第4のボタン210は、ユーザが、複合文書の次のページに移ることを可能にする。これらのボタンとしての入力装置は、複数の入力装置210−216の単なる一例にすぎないこと、及びより多い数の又は少ない数のボタンや入力装置による他の様々な形態も、本発明の精神及び目的の範囲内にあることを、当業者は認識するであろう。より具体的には、別の実施例において、コンピューティングパッド202はボタンをほとんど備えていない(又は全くない)。なぜなら、ボタンは、装置を紙のように感じることに対して障害となるかあらである。そのような例の場合、ストローク及び他のメタデータは、ネットワーク接続が存在する限り、連続的に送信される。1ページ又は複数ページのページ群ができたことは、パッドにおける「提出、投稿又はサブミット」ボタン又は「拒否」ボタンを押すことで示され、あるいは表示されたページに複数の領域があり、それらの領域にストロークを追加することが、適切なデータの投稿を引き起こしてもよい。複数の入力装置210−216について多種多様な形態が存在することを、当業者は認識するであろう。例えば、他の形態は、進む、戻る、サブミットの3つのボタンを含み、第2の例は、指及び1つ以上のボタンの位置に依存して、多数のページの中から1ページを選択するスライダ(slider)を有する。
コンピューティングパッド202は、カメラ218及び一群のLEDのような出力装置220を含む。カメラは、セルラ電話やノートブックコンピュータにおいて利用されているような通常のタイプのものである。出力装置220は装置の状態を示し、例えば、1)コンピューティングパッド202が電力を有し、動作可能であるか否か、2)コンピューティングパッド202がネットワーク接続を有しているか否か、3)コンピューティングパッド202が複合文書を送信又は受信しているか否か等を示す。当業者は、上記に列挙したもの以外の様々な別のステータスインジケータが存在してもよいことを理解するであろう。そのステータスインジケータは、出力装置220の一部分であってもよいし、一次的なディスプレイ装置206を介して提供されてもよい。
図3を参照しながら、コンピューティングパッド202の残りの要素を説明する。
プロセッサ302は、算術演算論理装置、マイクロプロセッサ、汎用コントローラ又はその他のプロセッサアレイを有し、演算を実行し、ディスプレイ装置206に電子表示信号を提供し、ストロークの入力を検出して処理する。プロセッサ302は、バス320に結合され、コンピューティングパッド202の他の要素と通信する。プロセッサ302は、データ信号を処理し、様々なコンピュータアーキテクチャにより構築されていてもよい。そのようなコンピュータアーキテクチャは、複合命令セットコンピュータ(CISC)アーキテクチャ、冗長命令セットコンピュータ(RISC)アーキテクチャ、又はそれらの命令セットの組み合わせによるアーキテクチャである。図3には1つのプロセッサしか描かれていないが、複数のプロセッサが含まれていてもよい。コンピューティングパッド202の処理能力は、画像を表示すること、ストロークを記録すること及びストローク(の情報)を送信することをサポートするように制限されている。処理能力は、画像処理、ストローク処理又は認識タスク等の様々なタイプのものを含むさらに複雑なタスクを処理できる程度に充分なものであってもよい。他のプロセッサ、他のオペレーティングシステム、他のセンサ、他のディスプレイ及び他の物理形態が可能であることは、当業者にとって自明であろう。コンピューティングパッド202はプロセッサにより実行可能なオペレーティングシステムを含み、オペレーティングシステムは、例えば、WINDOWS(登録商標)、MacOSX又はUNIX(登録商標)等であるがこれらに限定されない。
メモリ304は、プロセッサ302により実行される命令及び/又はデータを格納する。命令及び/又はデータは、本願で説明される技法の何れか及び/又は全てを実行するためのコードを有する。メモリ304は、ダイナミックランダムアクセスメモリ(DRAM)装置、スタティックランダムアクセス(SRAM)装置、フラッシュメモリ又は当該技術分野で既知の他のメモリでもよい。一実施例において、メモリ304は、より永続的な方法でログ情報を保存するフラッシュ装置又はハードディスクドライブのような不揮発性メモリを含む。メモリ304は、バス320に結合され、コンピューティングパッド202の他の要素と通信する。
通信装置306はアンテナ及びバス320に結合される。代替実施例において、通信装置306は、ネットワーク104に対する直接的な物理接続用のポートを用意している。通信装置306は、複合文書を送受信するトランシーバを含む。一実施例において、通信装置306は、アクセスポイントと無線通信するためのWi−Fiトランシーバを含む。別の実施例において、通信装置306は、他の装置と無線通信するためのブルートゥース(登録商標)方式のトランシーバを含む。さらに別の実施例において、通信装置306は、セルラ通信ネットワークを介してデータを送信及び受信するセルラ通信トランシーバを含み、例えば、ショートメッセージサービス(SMS)、マルチメディアメッセージサービス(MMS)、ハイパーテキストトランスファプロトコル(HTTP)、ダイレクトデータコネクション、WAP、電子メール等を介してデータを送受信する。さらに別の実施例において、通信装置306は、有線接続用のポートを含み、その有線接続は、USB、SD又はCAT−5等であるがこれらに限定されない。通信装置306は、複数の処理システムを含むネットワーク104にプロセッサ302を接続する。処理システムのネットワークは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)(例えば、インターネット)、及び/又は複数の装置が通信する何らかの他の相互接続データパスにより構築される。通信装置306は、ネットワーク104に対する通常の他の接続を提供し、当該技術分野で知られているようなTCP/IP、HTTP、HTTPS及びSMTP等のような標準的なネットワークプロトコルを利用して、ファイル(メディアオブジェクト)を配信する。
コンピューティングパッド202は、固有のデバイス識別子308用のストレージを含む。コンピューティングパッド202は、バス320に結合され、その固有の識別子を必要に応じて他の要素に提供する。一実施例において、ストレージは、固有のデバイス識別子308を格納するリードオンリメモリである。別の実施例において、固有のデバイス識別子308は、公開鍵−秘密鍵の対(ペア)を保存する不揮発性ストレージに保存される。ストロークが記録される場所を示すために使用される固有の識別子があることは、固有のデバイス識別子308にとって有利であるし、様々な通信プロトコルにとっても有利である。一実施例において、固有の識別子は、コンピューティングパッド202におけるネットワークチップのハードウェアMACアドレスである。固有の識別子308は、通信装置306のような他の機能ブロックの一部分に含まれていてもよいし、あるいはメモリ装置304の不揮発性ストレージに含まれていてもよい。別の実施例において、固有の識別子は、コンピューティングパッド202のメモリカードに関連付けられた固有のIDであり、関連付けられる特定の装置は、意図されているようにメモリカードが移された場合に、別の装置に移る。複数の固有の識別子は、様々なオペレーションに対して有用であるが、一般的には強いセキュリティをもたらさない。例えば、ハードウェアMACアドレスは、他の装置により模倣されてしまうかもしれない。したがって、RSA(登録商標)のような公開鍵暗号システムによるキーのペアにデバイス(装置)を関連付けることが、しばしば有意義である。一実施例において、コンピューティングパッド202は、秘密鍵及び普及している公開鍵とともに製造され又はそれらとともに構築される。コンピューティングパッド202は、ストローク、画像、ログ又はその装置から発した他のメディアに対する秘密鍵を使用することができる。あるいは、公開鍵を利用してそのようなメディアを検証してもよい。公開鍵は、その装置との秘密通信を提供するように使用されてもよい。装置の公開鍵を用いて暗号化することで、特定のコンピューティングパッド202用に意図されているページ画像やメタデータに対して、他者のアクセスを制限できる。
クロック310は、通常のタイプのものであり、コンピューティングパッド202に局所的な時間(ローカルタイム)の指標を提供する。特に、クロック310は、複合文書が処理されるローカルタイムを提供するのに使用される。この時間の値は、ロギングモジュール314を利用して、ローカルログファイル内のデータとともに保存される。クロック310は、システムバス320を利用して、この情報をプロセッサ302及びロギングモジュール314に通知するよう構築される。
メタデータモジュール312は、複合文書からメタデータを抽出し、複合文書に対するメタデータを保存するルーチンを含むソフトウェアである。一実施例において、メタデータモジュール312は、プロセッサ302により実行可能な命令であり、図6A−11を参照しながら以下において説明される機能を提供し、画像/ページメタデータだけでなく文書メタデータにもアクセスする。一実施例において、メタデータモジュール312は、メモリ304内に保存され、プロセッサ302によりアクセス可能及び実行可能である。いずれにせよ、メタデータモジュール312は、プロセッサ302及びコンピューティングパッド202内の他の要素と協同及び通信する。
ロギングモジュール314は、ローカルなログを作成し、メモリ304内に、より具体的にはメモリ304の不揮発性ストレージ部分に保存するルーチンを含むソフトウェアである。一実施例において、ロギングモジュール314は、プロセッサ302により実行可能な一群の命令であり、図6Cないし図10を参照しながら以下において説明される機能を提供する。ロギングモジュール314は、ワークフローの処理の完了を確認する際に特に重要である。一実施例において、ロギングモジュール314は、特定のコンピューティングパッド202のログを公表し又はそれをネットワークにおける公に利用可能な場所に保存するルーチンを含む。ロギングモジュール314は、プロセッサ302、メモリ304及び通信装置306にバス320により結合される。
文書転送モジュール316は、複合文書を送信し、何らかの他のコンピュータ装置から複合文書をフォーマットされたメッセージとして受信するソフトウェア及びルーチンであり、そのコンピュータ装置は、例えば、コンピュータ108、ストローク及び画像ワークフローサーバ106又は他の携帯用コンピュータ装置102等であるが、これらに限定されない。文書転送モジュール316は、プロセッサ302及び通信装置306と通信するようにバス320により結合される。文書転送モジュール316は、例えば、電子メール、ファイルトランスファ、XMPP又は特定目的のアプリケーションにより、複合文書400を送信し、及びコンピューティングパッドから複合文書400を受信する。一実施例において、文書転送モジュール316は電子メールクライアントであり、添付物(アタッチメント)を有する電子メールを送受信することができる。電子メールクライアントはプロセッサ302において操作可能である。メールサーバは、通常、POP又はIMAPプロトコルを利用してメールクライアントと通信し、コンピューティングパッド202は何れかを使用するように構築される。メッセージは、例えば、画像ファイルのアタッチメントのように、コンピューティングパッド202が直接的に利用できるようなフォーマットでもよい。メッセージは、例えばpdf文書のように、コンピューティングパッド202における変換を要するフォーマットでもよい。あるいは、特殊なサーバがメッセージの変換を実行し、パッドが複数のフォーマットをサポートする必要が無いようにしてもよい。上述したように、仕事の成果(work)を配布するために、例えば部署毎の受信箱においてのみ実行される必要があるワークフローにおいて複数の装置が使用される場合、IMAPを利用すると有利である。複数のクライアント102a−nは、同じIMAPサーバ及び「ユーザ名」とともにクライアントとして構築されてよい。装置102a−nのグループは、「インボックス(inbox)」内の全てのフォームを表示する。あるユーザがある装置102a−nによりそのフォームを「処理済み」としてマークすると、その装置は、そのメッセージを「インボックス」外へ、おそらくはIMAPサーバの「処理済み」ボックスへ移す。他の装置102a−nがIMAPサーバの「インボックス」を確認する際、それらは、ページがもはや存在しないこと及びもはやそれらは表示されないことを確認する。パッドがページ又はストローク又は複数のページやストロークを送信する必要がある場合、パッドは電子メールクライアントとして動作し、おそらくは、1つのファイルに圧縮及び結合されたディレクトリ構造のページとともにメールを送信する。
第2の例において、文書転送モジュール316は、ファイル転送を実行するルーチンである。様々なファイル転送方法を利用して、コンピューティングパッド202に対して文書を移動させる。コンピューティングパッド202は、ftp、http、又はwebdavサーバとともに動作し、他の装置はコンピューティングパッド202に対して文書をプッシュ(push)又はプル(pull)する。コンピューティングパッド202は、再びftp、http、rsync、webdav又は他のプロトコルを利用して、新しい文書を取得する又は新しい文書を外部サーバに投稿する。
第3の例において、文書転送モジュール316は、MMSを介した通信又は他の通信プロトコルのようなクライアント通信プログラムである。インスタントメッセージングに使用されるプロトコルであるXMPPは、文書及びストロークをパッドと通信するために使用される。メッセージンググループのどのメンバでも、たとえ他のメンバがメッセージを送信している場合でさえ、メッセージを開始することができる点で、インスタントメッセージングプロトコルは有利である。コンピューティングパッド202の場合、これは、ストロークがパッドからサーバに送信されているのと同時に、パッドの画像をサービスが送信できるようにする。コンピューティングパッド202のグループが表示空間を共有しており、グループの全てのメンバに新たなストロークが通知される場合に、インスタントメッセージングプロトコルは有利である。
第4の例において、文書転送モジュール316はカスタムアプリケーションである。パッド固有のAPIを利用して、パットとともに作業するように意図されている特別なアプリケーションとともに、情報はコンピューティングパッド202に転送される。ファイルを移動するのに使用される特別な方法を知る必要無しに、インストラクタは、ワークシートをパッドの図形表示の所へ「ドラッグアンドドロップ」(ドラッグしてドロップする)ことを期待する。
ルーティングモジュール318は、将来ルーティングする複合文書を決定するルーチンを含むソフトウェアである。ルーティングモジュール318は、ワークフロープロセスにおける次のステップを特定し、複合文書を作成し、ワークフロープロセスにおける次のステップとして特定された場所に複合文書を送信する。ルーティングモジュールの動作については、図4、6A−D及び11を参照しながら詳細に説明される。ルーティングモジュール318は、プロセッサ302、メモリ304及び文書転送モジュール316と通信するためにバス320により結合されている。
バス320は、コンピューティングパッド202により情報及びデータを通信するための共有バスを表す。バス320は、業界標準アーキテクチャ(ISA)バス、周辺装置相互接続(PCI)バス、ユニバーサルシリアルバス(USB)、同様な機能を提供する当該技術分野において既知の他のバスを含む1つ以上のバスを表す。バス320を介してプロセッサ302に結合される他の要素は、ディスプレイ装置206、ストローク取得装置モジュール208、複数の入力装置210−216、出力装置220、プロセッサ302、メモリ304、通信装置306、固有の装置識別子のストレージ308、クロック310、メタデータモジュール312、ロギングモジュール314、文書転送モジュール316、ルーティングモジュール318、プレゼンテーションモジュール322及び他のアプリケーション324を含む。機能要素同士の間でさらに効率的な通信を行うように設計された複数のバスが、コンピュータシステム202内に存在してもよい。
プレゼンテーションモジュール322は、複合文書の画像部分をディスプレイ装置206において表示し、入力装置210−216からの入力に応答して画像の表示を調整するソフトウェア及びルーチンである。一実施例において、プレゼンテーションモジュール322は、プロセッサ302により実行可能な薄い(thin)クライアントルーチンであり、ディスプレイ装置206における画像の表示を引き起こす。プレゼンテーションモジュール322は、ディスプレイ装置206、プロセッサ302及びメモリ304にバス320により結合される。
他のアプリケーション324は、プロセッサ302により実行可能な他の様々なタイプの機能に関する他のソフトウェア及びルーチンである。一実施例において、1つ以上のアプリケーションプログラムは、プロセッサ302により実行され、そのアプリケーションプログラムは、例えば、ワードプロセッシングアプリケーション、電子メールアプリケーション、財務アプリケーション及びウェブブラウザアプリケーションを含むが、これらに限定されない。
最後に、コンピューティングパッド202は1つ以上の他のI/Oデバイス326を含んでもよい。例えば、他のI/Oデバイス326は、音を生成するためのスピーカ、音を記録するためのマイクロフォン、文書又は画像を記録するためのスキャナ又はカメラ、その他のセンサ又はフィードバック装置(例えば、加速度計、ページャモータ(pager motor)、触覚的なフィードバック等)を含んでもよい。選択的に、他のI/Oデバイス326は、1つ以上のアナログディジタル変換器、1つ以上のディジタルアナログ変換器及び/又はオーディオ処理を促す1つ以上のディジタル信号プロセッサを含んでもよい。これらの他のI/Oデバイス326は、プロセッサ302及びメモリ304と通信するためにバス320により結合される。選択的に、マイクロコントローラが他のI/Oデバイス326の一部として追加され、電力システム制御に加えて、低速で重要度の低いタスクからメインプロセッサの負担を軽減する。
<複合文書400フォーマット>
本発明は、複合文書400を使用して、ペーパーライクのワークフロー及びペーパーライクの体感をユーザに提供する。特に、複合文書フォーマットは、コンピューティングパッド202における画像の速やかな表示、コンピューティングパッド202に作成されたストロークデータの保存、ログ情報の保存を可能にし、コンピューティングパッド202において実行される処理を検証できるようにする。一実施例において、複合文書400の基本構造は、複数ファイルのディレクトリである。ディレクトリ内部は、一連のページ画像に加えて、選択的なメタデータである。メタデータは、各ページに独立に関連付けられてもよく、及び/又はメタデータは文書全体に関連付けられてもよい。そのようなメタデータは、入れ子になったディレクトリに保存され、これは選択的なものである。
図4を参照するに、複合文書400の基本構造を表現する図が示されている。上述したように、複合文書400は、1つ以上のファイルを含むディレクトリ及び複数のディレクトリである。これは図4において最も外側の枠として表現されている。この例の場合、複合文書400は、画像1(I1)...画像n(In)のように図示されている複数の画像402a−402nを含む。有利なことに、本発明は、複合文書400のページを画像として保存している。これは特に有利である。なぜなら、コンピューティングパッドのツールが、広範囲に及ぶ文書フォーマットをサポートする必要性を排除できるからである。レンダリングを要する文書ではなく、純粋な文書をコンピューティングパッド202に提供することは、矛盾のない画像を保証し、フォントや他の図形コマンドを変換できない問題を解消する。一実施例において、画像は以下のファイルフォーマットの内の何れかにおけるものである:JPEG、JPEG2000、JPM、PNG、PDF、TIFF又はシンプルPBM(ポータブルビットマップ)ファイルフォーマット。後述するように、複合文書400を作成するプロセスの一部は、画像が携帯用コンピュータ装置102により又は携帯用コンピュータ装置102において受信される前に、文書及び他のフォーマットを、これらの簡易な画像フォーマットの何れかにレンダリングすることを含む。上述したように、基礎的で簡易な画像を利用することで、コンピューティングパッド202における演算負担を排除し、矛盾のない表示を保証できる。複合文書400のディレクトリは、標準的なZIPフォーマットアーカイブとして転送及び保存することができることを、当業者は認めるであろう。
一実施例において、複合文書400のメインストリームページが、ディレクトリの最上位レベルに保存される。(最初の「.」に至るまでの)名称セグメントは、そのページに固有である必要がある。一実施例において、ページはUTF−8を用いて命名される。UTF−8表示のバイトそのものを利用して、最初の名称セグメントを昇順に並べ替えることで、ページが並べられる。場合によっては、アプリケーションは、文書レベルのメタデータを利用して、名称を変更することなくページを並べ替えることを可能にする。
最初の名称セグメントが同じものを共有する複数のページ画像ファイルは、同等な品質のファイルの代替表現物と考えることができ、プレゼンテーションモジュール322は、その用途に最も相応しい表現物を選択する。例えば、001.pgm、001.png、002.pgm、002.jpg及び5.pgmのようなコンテンツを有するディレクトリは、3ページの文書となる。第1ページは2つのファイル、001.pgm又は001.pngの一方により表現される。第2のページは、002.pgm又は002.jpgにより表現され、第3のページは5.pgmにより表現される。一実施例において、名称セグメントは、任意の画像の解像度又はサイズを指定するのに使用可能であり、装置が画像を簡易に選択できるようにする。例えば、画像ページ001.600x800.pgm及びページ001.cif.pgmがあった場合、600x800又はcif(共通中間フォーマット)の部分が画像の解像度を特定する。
複数の画像402a−402nの各々は、関連付けられたページ又は画像メタデータ404a−404nを含む。ページ又は画像メタデータ404a−404nは、ストロークデータ414、頼めたデータ416及びログデータ418を含む。さらに、複合文書400全体は、文書メタデータ406を含む。文書メタデータ406は、文書ログ408及び他の文書メタデータ410を含む。
複合文書400のメタデータは、ディレクトリに保存されたファイルにより表現され、ディレクトリは、文書全体に又は個々のページに関連する。一実施例において、メタデータディレクトリは、ディレクトリ名における最後の文字列に添え字「.d」を有する。メタデータディレクトリ内の情報はファイル又はサブディレクトリに保存され、固有の名称セグメントを有することが期待される。システム(組織)は、例えば、従来のJavaにおいてドメイン名を予約する方法のように、固有の識別子を用いてそれらを命名するよう促される。メタデータディレクトリはそれ自身のサブディレクトリを含み、サブディレクトリの内容は、そのディレクトリの作成者によって並べられ規定される。一般的なポリシは、メタデータファイル又はディレクトリのコンテンツを理解しないアプリケーションは、そのコンテンツを保存すべきであり、それを警告すべきでないことである。所与のメタデータファイル又はディレクトリは自己完結型(self contained)であり、それらは同じディレクトリに含まれない限り、メタデータの要素同士の間に如何なる依存性もない。メタデータの要素(アイテム)は、文書全体に又は特定のページに対応付けられる。
一実施例において、文書メタデータ406は、グローバルメタデータであり、「document.d」と命名された1つ以上のファイルを含むディレクトリに保存される。このディレクトリは、トップレベルのディレクトリに含まれる。文書メタデータにおける文書に関連する動作(処理又はアクション)のログを保存することは有用である。一実施例において、システム100は、「オリジナルの(元の)」文書のバージョンを文書メタデータとして保存する。例えば、複合文書がPDF、マイクロソフトワード、マイクロソフトエクセル又は他の文書から形成されていた場合、オリジナルのフォーマットの文書が、メタデータディレクトリに保存される。
一実施例において、ページ又は画像メタデータ404は、ページ画像と同じ名称セグメントを有し、拡張子が「.d」で終わるように命名される。例えば、ページ画像が「page.001.jpg」のように命名されている場合、そのページのメタデータディレクトリは、「page.001.d」のように命名され、そのページに関連していることを示す。別の実施例において、ページ又は画像メタデータ404は、ページメタデータディレクトリにおけるページ各々に対する或るフォーマットでオリジナル画像を含む。複合文書400が、例えば、最上位レベルのディレクトリ及びページメタデータディレクトリの双方においてラスタフォーマット(raster format)を保存することで作成されると直ぐに、このメタデータが作成される。あるいは、オリジナルラスタフォーマットのコピーは、ページ画像が最初に変更された場合に保存されてもよい。他の実施例において、ページ又は画像メタデータ404は、以下において詳細に説明されるように、ログデータ408を含む。このログデータ418は、そのページに対するメタデータディレクトリ内のページ各々に適用された変更のログを表す。他のメタデータ416は、特定のページ又は画像に関連する任意の他のデータを保存するのに使用される。例えば、画像がページに追加された場合、これら追加された画像をページメタデータディレクトリに保存することが有用である。紙のページに「スタンプを押すこと(stamping)」と同様な理由で、ある画像がページに加えられてもよい。例えば、「受信済み(received)」や「提出済み(submitted)」は、そのページの状態に対する視覚的な指標をユーザに与える。
ストロークデータ414は、ページのメタデータディレクトリ内のページに加えられた任意のストロークに対するストローク情報を保存する。これは、コンピューティングパッド202が取り込む最も重要な情報である。最も簡易な形態の場合、ストロークはx−y座標の単なるリストであり、そのx−y座標は、スタイラス、ペン又は指のようなその他のポインティングデバイスが検出した場所である。この情報は、ストロークが描かれる場合に表示されていた背景画像と関連付けられ、ストロークが後にユーザが見るものと一致するように、ストロークのスケールや向きを変更できるようにすべきである。x−y座標に加えて、各ストローク又は各地点における時間や、スタイラスが使用された際の又はスタイラスの端部が使用された際のスタイラスの圧力(筆圧)の情報を取得することが有意義である。ペンのストロークを画素に変換するためにそのペンについて使用されたアルゴリズムの情報を保存することもさらに有用であり、例えば、どのような幅、色のペンで描画されたか、場面の地点同士の間でどのように地点が選択されたか等についての情報が、保存される。
ストロークに関する情報は、様々な方法で保存することができる。第1の例の場合、その情報は、描画領域外の点によるストロークの終点とともに、xの値、スペース、yの値、改行によるシンプルテキストのリストとして保存される。例えば、パッドが0ないし1200までのx座標と、0ないし1600までのy座標とを許容していた場合、「−1,−1」として記録された地点は、描画可能な空間内にはなく、ストロークを終了するのに使用可能である。第2の例の場合、各地点に適切なビット数又はバイト数を割り当てるバイナリストレージ法を用いて、ストロークが保存され、例えば、x座標について2ビット及びy座標について2ビットであり、これは、よりいっそうメモリ効率がよい。第3の例の場合、ストロークデータはInkMLとして保存される。InkMLは、W3Cにより指定された、ストローク及び様々な追加データの保存を可能にするXMLフォーマットであり、これについては、2006年10月23日付のテクニカルレポート、Ink Markup Language(InkML)、W3C Working Draftに記載されている。InkMLはメモリ利用効率をさらに改善し、必要に応じて、データはテキストコンプレッサにより圧縮される。
<ログファイル418>
本発明による特に有利な利点は、携帯用コンピュータ装置102又はストローク及び画像ワークフローサーバ106により実行された動作(アクション)を検証する能力があることである。アクションを検証することは、ログファイル418の生成及び維持により可能になる。本発明は、複合文書に対してなされた変更を記述する一群のエントリとともに、ログ又はログファイルを生成する。本発明は、コンピューティングパッド202を操作する人間により引き起こされた如何なる動作をも記録し、その動作により、表示される文書に変更が加わる。コンピューティングパッド202は、それがあたかも紙であるかのように、人間が文書に書き込みを行えるようにするので、何時どの装置でどのページにどのような書き込みがなされたか、及び分かっているならば誰によりどの場所でなされたかを記録することが有用である。本発明は以下の2つの重要な特徴とともにログファイル418を利用する:1)ログにより十分な情報を参照し、ログ書き込みの地点における最小限の表示により、文書の状態を作成し直すこと、及び2)ログファイルは「開封明示的(tamper evident)」であること(不正防止に使用可能である)。
本発明は、ログエントリの暗号化ハッシュのシーケンスを維持することで、開封明示的な(不正防止に使用可能な)ログを生成する。ログエントリ各々に関連する暗号化ハッシュは、以前のログエントリの暗号化ハッシュを含むデータからハッシュ値を求める。暗号化ハッシュを保存又は公表することは、ログの全ての過去のエントリに対するチェックサムをもたらす。したがって、公表されたハッシュが「信頼できる」ならば、過去の全てのログハッシュを再計算し、最終的な同じハッシュになるか否かを確認できる。ログエントリを形成するためにハッシュ値をもたらす任意のデータ又は任意のログ部分に対する変更が、検出可能である。そのようなログ及びログエントリの検証及びハッシュ計算についてのフォーマット及び詳細については、2005年12月29日付で出願された「Coordination and Tracking of Workflows」と題する米国特許出願第11/322,435号(出願公開第20070156632号)、2008年10月2日付けで出願された「Method and Apparatus for Tamper Proof Camera Logs」と題する米国特許出願第12/244,714号、及び2004年7月9日付けで出願された「Synchronizing Distributed Work Through Document Logs」と題する米国特許出願第10/887,998号において説明されており、これらの出願の内容全体は本願のリファレンスに組み入れられる。暗号化ハッシュは、検証に使用されることに加えてデータを索引付けるのにも使用可能なので、コンテンツベースの識別子(CBI:content based identifier)とも呼ばれる。最新の暗号化ハッシュを公表することは、他の信頼できるログ又は電子メールを介しており、これについては、2008年10月2日付けで出願された「Method and Apparatus For Risk Analysis of Entangled Logs」と題する米国特許第12/224,707号、及び2008年10月2日付で出願された「Method & Apparatus for Automatically Publishing Content Based Identifiers」と題する米国特許出願12/244,721号において説明されており、これらの出願の内容全体は本願のリファレンスに組み入れられる。このように、暗号化ハッシュ又はコンテンツベースの識別子(CBI)を含むログが維持される。最新のログエントリのコンテンツベースの識別子(CBI)は、他のログファイルに保存され、電子メール又は他のプロトコルにより公表される。CBIは、そのCBIが公表されて以来そのログが変更されていないことを確認するために使用可能である。
任意の地点における文書を再生できるようにするログの維持は、文書について実行された操作(処理)のタイプと、ログファイルにおける操作を再実行するのに必要な任意のデータに対するCBIとを保存することによって行われる。このデータ自身は、ページ及び文書のメタデータディレクトリに保存される。
ロギングモジュール314は、ページを生成すること、ページに書き込みをすること及びページに画像を付加すること等のようなページに対する変更についての情報を保存する。ロギングモジュール314は、ページがサブミットされた時点、あるいはコンピューティングパッド202から別の場所へページがコピーされた時点をも保存する。ページが生成されると、そのページに関するメタデータディレクトリ内に、画像のラスタフォームが保存される。ページログ418は、「スタートログエントリ(start log entry)」とともに初期化される。スタートログエントリは、コンピューティングパッド202により測定される現在時間を含み、別のログからのCBIを含み、そのページがCBIの時点の後に生成されていることを確認する(すなわち、「フレッシュネスハッシュ(freshness hash)」)。「スタートログエントリ」に加えて、ロギングモジュール314は、開始画像のラスタフォームのハッシュを含む「ページ生成」エントリ(page created entry)を保存する。
ページログ418のCBIが、ページの作成後に公表されていたならば、そのCBIを使って、ページログ418が不正に修正されているか否かを確認できる。ページログ418が修正されていなかった場合、ログ418における処理が続く。先ず、唯一のエントリは、「ページ生成」エントリである。ページ画像に対するCBIを検査することが可能であり、それがページメタデータディレクトリ404のラスタ画像に合致していた場合、初期ページのフォーマットは、生成以来不正に修正されていないことを示す。
ストロークがページに追加された場合、それらはディスプレイ装置206のラスタフォーマットに表示され、それらはそのページのメタデータディレクトリにおけるストロークファイル414に保存される。ログエントリは、ページログ418に追加され、典型的にはストロークファイル414に関するCBI及び時間を含む。こうして、後の地点において、ログ418が検証される場合、ストロークファイル414を検証することが可能であり、背景画像を検証することが可能である。これら全てのアイテムが修正されていなかった場合、ストロークファイル414は、背景画像におけるストロークを再描画するために使用可能であり、ストロークが付加された後に見えるようなページを再生する。
画素の精度を維持するため、本発明は、既存のアルゴリズムを使用して、ストロークファイル414を画素に変換することに留意を要する。複数のアルゴリズムが使用される場合、又は例えばストローク幅のような幾つかのパラメータとともに1つのアルゴリズムが使用される場合、「ストローク付加」のエントリ(strokes added entry)は、使用される厳密なアルゴリズム及びそのアルゴリズムに対するパラメータを示す情報を含むべきである。
ストロークがページに追加されるのと同時に、画像がページに追加されてもよい。この場合、ページに追加される画像は、ページのメタデータディレクトリ404のラスタフォーマットに保存されているべきである。例えば(500,300)のような画像に付加するのに使用するスケール(縮尺)、場所及び「画像付加」の処理は、画像のラスタフォームのCBIとともに、ログ418に保存されているべきである。
画像を付加することで又はストロークを追加することでページを更新するだけである多くの「アプリケーション」が、コンピューティングパッド202において使用可能である。追加的な変更がページになされた場合、それらの処理に対するログエントリが規定される必要があり、その処理の名称がログに保存される必要があり、データのハッシュがログに保存される必要がある。ログエントリがログ418に追加された場合、コンピューティングパッド202の固有の識別子308がそのエントリに含められる。装置が秘密鍵を利用するように構築されていた場合、ストロークファイル414がそのコンピューティングパッド202において取得されたことを示すために、ストロークファイル414のディジタル署名を提供する。この署名はログ418に含まれる。
新しいページが作成される際に、ページログ418がメタデータディレクトリ404に作成される一方、文書が形成される際に、ロギングモジュール314が文書ログ408を文書メタデータディレクトリに作成する。ページを文書に追加したこと、何時ページが閲覧されたか、何時文書全体がサブミットされたか等を含む項目(アイテム)を記録するために、文書ログ408が使用される。文書レベルメタデータ406に対する変更も、この文書ログ408に記録される。(ページ識別子とともに)文書ログ全体の中でページログ418に保存されている情報を反復することが可能である一方、ページログ418が更新された場合、ロギングモジュール314は最後のエントリに対するCBIをページログ418に記録する。ページログ418からのCBIを文書ログ408に保存することで、文書ログ408を使用して、全てのページログ418を検証できる。文書ログ408からのCBIは、電子メール又はその他の方法により公表され、個々のページログ418各々からの情報を公表する必要はない。
文書ログ408におけるエントリは、ページログ418におけるものと同様である:それらは、処理を完了するのに必要な何らかのデータのCBI及び「処理」の情報を含むべきである。ページ閲覧の場合、ログエントリは、ページ画像の現在のラスタフォーマットのCBIとともに、そのページの識別子を含む。一部のログフォーマットは、テキスト(文字)及びCBIを同じログエントリの中に直接的に包含できるが、別のログフォーマットはCBIしか含められない点に、留意を要する。ログフォーマットがCBIしか許容しない場合、「処理」に関するテキスト(文字)は、文書メタデータディレクトリ406の中のファイルに保存され、そのファイルのCBIはログに含まれる。「処理」(operation)が、「ストローク追加」のようなパラメータを一切含んでいなかった場合、その処理のテキストと同じファイルが、メタデータディレクトリに保存され、CBIが複数回使用される。当然に、実際のストロークファイルのCBIは、多くの場合異なることが予想される。
<ストローク及び画像ワークフローサーバ106>
図5Aを参照しながら、ストローク及び画像ワークフローサーバ106を詳細に説明する。ストローク及び画像ワークフローサーバ106は、プロセッサ502、メモリ504、通信装置506、文書転送モジュール508、クロック510、ワークフローモジュール512、ロギングモジュール516、その他のアプリケーション518、バス520及び検証モジュール530を有する。代替実施例において、ストローク及び画像ワークフローサーバ106は、ディスプレイ装置522、出力装置524、固有デバイスIDストレージ526及び入力装置528をさらに有する。
ストローク及び画像ワークフローサーバ106の要素の幾つかは、コンピューティングパッド202の要素と同一又は類似の機能を有することを、当業者は認めるであろう。したがって、それらの要素についての説明はここでは繰り返さない。例えば、プロセッサ502、メモリ504、通信装置506、文書転送モジュール508、ロギングモジュール516、クロック510、その他のアプリケーション518、ディスプレイ装置522、出力装置524、固有デバイスIDストレージ526及び入力装置528は、それぞれ、図3におけるプロセッサ302、メモリ304、通信装置306、文書転送モジュール316、ロギングモジュール314、クロック310、その他のアプリケーション324、ディスプレイ装置206、出力装置220、固有デバイスIDストレージ308及び入力装置210−216と同様な機能を有する。ストローク及び画像ワークフローサーバ106及びコンピューティングパッド202における要素同士の間の幾つかの相違点が、以下において説明される。例えば、通信装置506は、無線ではなく有線により、ストローク及び画像ワークフローサーバ106をネットワークへ結合する。ワークフローサーバ106は多数の携帯用コンピュータ装置102にサービスを提供するので、プロセッサ502はプロセッサ302よりも強力な演算能力を有する。文書転送モジュール508は、電子メールクライアントとは異なり、電子メールサーバである。ディスプレイ装置522は例えばCRTであり、出力装置524はスピーカである。入力装置528は、キーパッド及びマウス形式のコントローラを有する。ストローク及び画像ワークフローサーバ106は、リモートクライアントとは異なり、ハードウェアサーバとして機能するので、外にも様々な相違があることを当業者は認めるであろう。
ストローク及び画像ワークフローサーバ106の検証モジュール530は、複合文書400の処理を検証又は確認するソフトウェア及びルーチンである。一実施例において、検証モジュール530は、プロセッサ502により実行可能なルーチンであり、図6Dを参照しながら後述する文書処理の検証を実行する。検証モジュール530は、プロセッサ502、メモリ504及び通信装置506にバス520により結合される。検証モジュール530は、ストローク及び画像ワークフローサーバ106において独立に使用されてもよいことに留意を要する。すなわち、特定のサーバを信頼して当てにすることなく、文書の検証をコンピュータ108において独立に実行してもよい。
ストローク及び画像ワークフローサーバ106のワークフローモジュール512は、複合文書を処理及びルーティングするソフトウェア及びルーチンである。ワークフローモジュール512は、複合文書400を作成し、フォーマットされたメッセージを作成する。ワークフローモジュール512は、ロギングモジュール516と協同してシステムログ(システムログは、ロギングモジュール516、メモリ504又はデータストレージ110に保存される)を作成し、それを公表する、あるいは必要に応じてそのログを利用可能にする。ワークフローモジュール512は、ワークフローを処理する一部分として、フォーマットされたメッセージを次の場所にルーティングする責務を有する。一実施例において、この機能は、コンピューティングパッド202のルーティングモジュール318により提供される。別の実施例において、コンピューティングパッド202は、ストローク及び画像ワークフローサーバ1−6に応答の電子メールを送信し、ワークフローモジュール512は、そのルーティング及び次のワークフローのステップを確認する。ワークフローモジュール512がシステムログを作成するプロセスは、上述したようなログエンタングルメント(log entanglement)を作成することが可能であること、及び文書の個々のページを取り扱う複数のワークフローモジュール512が存在すると、検出されずに文書を不正使用する際の困難性を大幅に増進できることに、留意を要する。
<ワークフロー仕様>
実施形態に依存して、ストローク及び画像ワークフローサーバ106のワークフローモジュール512により、又はコンピューティングパッド202のルーティングモジュール318により、多数の機能が実行される。説明の便宜上及び理解を促すため、以下においては、コンピューティングパッド202のルーティングモジュール318により実行される処理が説明される。しかしながら、代替的に同じ処理が、ストローク及び画像ワークフローサーバ106のワークフローモジュール512により実行されてもよいことを、当業者は認めるであろう。
コンピューティングパッド202のルーティングモジュール318が、ページに記録されたストロークとともに実行することは何か、及びこれらのストロークがワークフローにおける次のステップにサブミットされるべきは何時かを決定する際に様々な方法が存在することを、当業者は認めるであろう。コンピューティングパッド202のルーティングモジュール318が、完成したページをどのように取り扱うかは、パッドがどのように構築されているか及びパッド情報がどのように受信されていたか等に依存する。
一実施例において、コンピューティングパッド202は、ストローク及び画像ワークフローサーバ106とともに協同し、あるページを、そのページに関するストローク及び画像ワークフローサーバ106にサブミットし、ストローク及び画像ワークフローサーバ106は、プログラムされたルール(規則)にしたがって次のステップを特定する。
別の実施例において、ワークフローは、複合文書400において、又は複合文書400が送信される電子メール(フォーマットされたメッセージ)において指定される。複合文書400を電子メールにより受信する簡易な方法の場合、コンピューティングパッド202は、完成した複合文書400を、複合文書400の送信元に電子メールで返す。より良い方法は、典型的な電子メールクライアントにおいて「返信(Reply)」が選択された場合に生じる「Reply−To」の電子メールヘッダで指定されているアドレス宛に、複合文書400を送信することである。ほとんどの電子メールクライアントは、送信者が、「返信(Reply−To)」のアドレスを指定できるようにしている。このことは、ある人がフォームを埋めて(記入して)そのフォームを「返信」ヘッダとともに別のコンピューティングパッド202へ送信することを可能にし、「返信」ヘッダは、コンピューティングパッド202のユーザにより承認された後に、その複合文書400を見るべき次の人物/装置/場所に設定されている。例えば、ある従業者が出張申請フォームを記入し、出張のコーディネータ宛に設定された返信先(Reply−To)とともに、そのフォームを従業者の管理者のコンピューティングパッド202に電子メールで送信することができる。管理者がその出張申請を承認し、そのフォームをサブミットすると、コンピューティングパッド202において次の電子メールアドレスを手入力する必要なしに、そのフォームは自動的に次のステップにルーティングされる。
「返信(Reply−To)」ヘッダを利用することで、ワークフローにおける1つのステップを、電子メールアドレスを手入力する必要なしに実行できるようになる。1つより多いステップのワークフローを可能にするために、追加的なメールヘッダが規定されてもよい。例えば、電子メールは、次のようなヘッダを含む:
このような複数ステップのワークフロー例の場合、コンピューティングパッド202は、ワークフローのステップに対する電子メールヘッダを確認し、現在のステップを確認し、フォームが仕上がった場合に、全てのワークフロー電子メールヘッダとともに、そのフォームを次のステップに転送するように構築される。上記の例は、複数のコンピューティングパッド202が、文書の署名を複数個集めるために使用できるようにし、署名後のフォームが出張の世話をする者に送信され、ワークフローを開始した従業者に返される。これは、従業者が、コピーを取得し、かつ出張が承認された時点を知ることを可能にする。従業者は、フォームを追跡する方法として、全てのステップにおけるそれらのアドレスをリスト化する。調査や試験のような場合、同じフォームが何人かの人々に送信され、様々な回答が収集され、結果が蓄積又は処理される。例えば、教師が、試験の問題とともに複合文書を準備し、それをクラスの生徒全員のコンピューティングパッド202に電子メールで送信してもよい。生徒各々は、教師のアドレスに設定されている返信先「Reply−To」ヘッダとともに、粗オンフォームを受信する。生徒が試験を終えると、教師はそれを受信する。教師は全てのストロークについての時間の情報も受信する。
コンピューティングパッド202又は他の装置は、リストに自身の電子メールが出現していることを調べることで、ワークフローにおける段階(ステップ)を確認する。同じ人物により複数回検討される必要があるワークフローを取り扱う際、メッセージ識別ヘッダ(message−id header)から、どの段階であるかを確認できる。あるいは、例えば「ワークフローX−完了:1,2(X−Workflow−Completed:1,2)」のように、仕上がったワークフローのステップをリスト化した別の電子メールヘッダが使用される。この場合、ワークフローの段階(ステップ)各々が終了すると、その段階が電子メールヘッダに追加されて転送される。
上記の電子メールヘッダリストは、コンピューティングパッド202だけでなくウェブサービスを含むことができる。例えば、複合文書400が閲覧され、「manager_pad@example.com」という電子メールアドレスを有するコンピューティングパッド202により署名された後、それは署名検証サーバに送信される。このサービスは、ストロークを検査し、適切な管理者がその文書に署名したか否かを確認し、そうであった場合、署名は確認されたことを示す何らかのメタデータを付け加える。一実施例において、サービスは、ストローク及び画像ワークフローサーバ106を介して提供される。すなわち、電子メールがストローク及び画像ワークフローサーバ106に送信され、ストローク及び画像ワークフローサーバ106が、検証のために複合文書400をサービスへ送信する。
一実施例において、複合文書400を送信するのに使用されたフォーマットされたメッセージは、コンピューティングパッド202又はワークフローサービスに対する電子メールヘッダのパラメータを含む。例えば、ストロークが、手書認証サービスに送信された場合、言語を特定すること、あるいは幾つかのストロークが何らかの言葉ではなく「数字」であることを示すことが有用である。以下のものは、コンピューティングパッド202及びサーバに関するワークフローを示す電子メールヘッダの一例を示す。
この例の場合、パラメータは属性値のペアであり、これは、言語が英語であり、ストロークが数字の文字を含んでいることを示す。
複合文書400がワークフローの次のステップに続かない場合、これはおそらくは要求(真正)が拒否された場合であり、一般的には、より多くの情報が必要な場合である。一実施例において、ワークフローにおける複数のパス(経路)とともに処理されるように、追加的なヘッダが規定される。ただし、フォーム又はコンピューティングパッド202は、どのパスを使用するかを示す必要がある。簡易な直線的なワークフローの場合、フォームは、次のステップに進むか、あるいは拒否されるかである。拒否されたフォームは、送信元に返され、おそらくは、なぜ拒否されたかの理由に関する追加的な注釈とともに返される。例えば、あるユーザは、フォームにおける未記入の領域を丸で囲み、それを先行するステップに返送するようにする。
このようにコンピューティングパッド202又はフォームは、次のステップへのフォームの「提出(サブミッション)」及び「拒否」又は先行するステップへの返送を示す手段を提供すべきである。直線的なワークフロー(1つのパスしか存在しない)の場合において、上記の「X−Workflow−*」ヘッダにより指定される「X−Workflow−Completed」ヘッダは、先行する段階に実際に送られなかったことを示すように変更される。例えば、ヘッダは次のようなものである。
そして、電子メールは、「vp_pad@example.com」により受信される。コンピューティングパッド202のユーザは、おそらくは「費用の見積もりが必要」のようなメモを記入し、拒否していることを示すことで、このフォームを拒否する。メタデータモジュール312は、最後の値を削除することで「completed」の部分を変更し、「X−Workflow−Completed:1」のようになり、文書を次に必要なステップに送信する。この場合、ステップ2のdirector_pad@example.comである。
代替実施例において、電子メールヘッダの代わりに又はそれに加えて、HTTPヘッダが使用されてもよい。複合文書がHTTPにより転送される場合、複数のステップをサポートするためにHTTPヘッダに同様な情報が挿入される。この場合、次のステップは、電子メールアドレスではなく、文書を送付するURLである。例えば、「X−Workflow−4:http://www.example.com/travelrequest.cgi」のようなラインが電子メールヘッダにあってもよい。この例の場合において、電子メールプロトコルを利用する代わりにステップ3が完了すると、現在の複合文書400は、httpポストコマンドにより、ワークフローにおけるステップのURLへ送信される。当然に、HTTPが文書転送に使用されていた場合、一実施例において、複合文書400を含むフォーマットされたメッセージが、次のステップに送信される前にストローク及び画像ワークフローサーバ106に返される。これにより、ストローク及び画像ワークフローサーバ106がワークフローの状態を追跡できるようになり、コンテンツ管理システムや他のビジネスアプリケーションのラインとの統合が可能になる。
ページ画像、ストローク及びメタデータをサポートする方法で文書が転送される場合、そのメタデータは、ワークフローの命令及び状態を含むことができる。再び、簡易な例において、メタデータは、電子メールアドレス及びワークフローにおける現在のステップに関するリストを含む。上記の複合文書400の場合、このワークフロー情報は、ページメタデータディレクトリ404又は文書メタデータディレクトリ406に登場してもよい。
<方法>
図6A及び6Bは、本発明によるストローク及び画像を用いたワークフロー処理のための一般的な方法例を示すフローチャートである。図6Aを参照しながら方法600を説明する。ストローク及び画像ワークフローサーバ106(以下、「サーバ106」と言及する)が、画像又は画像群(画像のグループ)を受信したことにより(602)、本方法600が始まる。サーバ106は複合文書400を作成する(604)。複合文書400は、図4を参照しながら説明されたような画像及びメタデータを含む。次に、サーバ106はフォーマットされたメッセージを作成する(606)。上述したように、一実施例において、フォーマットされたメッセージは、アタッチメントとしての複合文書と、ワークフローを指定する電子メールヘッダとを含む電子メールである。次に、サーバ106は、フォーマットされたメッセージを、ワークフローで指定されている最初の装置に送信する(608)。例えば、サーバ106は、電子メールヘッダ、文書メタデータ406又はページメタデータ404において指定されている最初の電子メールアドレス宛に、フォーマットされたメッセージを電子メールとして送信する(608)。代替実施例において、ステップ602−608は、複合文書400を作成する機能を有する携帯用コンピューティング装置102により実行されてもよいことを、当業者は認めるであろう。
次に、携帯用コンピュータ装置102は、フォーマットされたメッセージを受信する(610)。携帯用コンピュータ装置は、フォーマットされたメッセージから複合文書400を抽出する(612)。例えば、フォーマットされたメッセージは、ディレクトリ、サブディレクトリ及び画像ファイルを伴うWinZipファイルを含む電子メールメッセージである。WiZipファイルは、電子メールメッセージから取得され、それはディレクトリ、サブディレクトリ及び画像ファイルである。次に、携帯用コンピュータ装置102は、プレゼンテーションモジュール322を利用して、ユーザに画像を表示する(614)。図6Bを参照するに、本方法は、ユーザがディスプレイ装置206上でスタイラス又は指を動かした場合に、携帯用コンピュータ装置102がストロークを取得するステップ(616)に続く。ログモジュール314は、その変化を記録し(618)、上述したようにストロークを処理し、複合文書400を更新する(620)。例えば、ログモジュール314は、ペンを持ち上げる行為の後に、ページログ418及び文書ログ408を更新する(620)。次に、本方法は、追加のストロークが携帯用コンピュータ装置102にて受信されたか否かを判断する(621)。これは、ある期間の満了により判断してもよいし、画像への注釈が終わったことを示すユーザからの入力により判断してもよい。入力するストロークが未だあった場合、本方法はステップ616に戻り、ステップ616−621を反復する。入力する追加的なストロークがなかった場合、本方法は、更新された複合文書のルーティングを決定するステップ(622)に続く。特に、携帯用コンピュータ装置102のルーティングモジュール318は、上述したように電子メールのヘッダを調べることで、ルーティングを決定する。次に、携帯用コンピュータ装置102は、更新された複合文書400を含むフォーマットされたメッセージを作成する(624)。携帯用コンピュータ装置102が、ステップ624において作成したフォーマットされたメッセージを、ワークフロープロセスにおける次のワークフロー処理部へ送信することで(626)、一般的なプロセスは完了する。フォーマットされたメッセージ及び複合文書は、任意の数の携帯用コンピュータ装置102及びサーバ106の間において転送可能なので、図6A及び6Bを参照しながら説明したプロセスが、どのようにして任意の回数だけ反復されるかを、当業者は認識するであろう。ある環境の場合、サーバ106によらず、フォーマットされたメッセージは、ワークフローにおける様々なステップを表す様々な携帯用コンピュータ装置102の間で、ネットワーク104及び通常の電子メールサーバを介して送信されることを、当業者は認めるであろう。
図6Cを参照しながら、ストローク及び画像を用いたワークフローにおける記録処理(ロギング処理)の方法例を説明する。例えば、ステップ626の後に終了するのではなく、あるプロセスがサーバ106において続く。この例の場合、サーバ106は、所与のワークフローについてステップが実行されると、サーバ106はステップのログを維持及び公表する。このログは、後の検証の際に使用可能である。これは、処理ステップ各々の後に、サーバ106に送信されたフォーマットされたメッセージ又はそのコピーを所有することで達成される。ロギングは、フォーマットされたメッセージをサーバ106において受信すること(628)から始まる。サーバ106は、ステップ628において受信したフォーマットされたメッセージから複合文書400を抽出する(630)。そして、複合文書400はサーバ106において記録される(632)。例えば、ロギングモジュール516は、フォーマットされたメッセージが受信された時のタイムスタンプとともに、複合文書のコピー及び関連するメタデータを保存する。次に、サーバ106は、フォーマットされたメッセージを受信したサーバ106に関連する処理を(もしあれば)実行する(634)。例えば、フォーマットされたメッセージが、サービスにアクセスするためにサーバ106に送信された場合、サーバ106は、複合文書中の適切な一部分を、処理を行うサービスプロバイダに送信し、結果を受信し、複合文書400を更新する。文字認識、署名検証等のような様々なサービス例が上記に示されている。次に、本方法は、フォーマットされたメッセージに関する何らかの追加的なルーティングを決定する(636)。上述したように、フォーマットされたメッセージの電子メールヘッダを確認し、ワークフロープロセスにおける次のステップを特定する。次に、サーバ106のワークフローモジュール512は、メッセージの宛先であるワークフローの次の宛先への新しいフォーマットされたメッセージを作成する(636)。ステップ638において生成されたフォーマットされたメッセージは、サーバの文書転送モジュール508に提供され、通信装置506を介して送信される(640)。
図6Dを参照しながら、検証を行う方法例を説明する。本プロセスは文書検証のリクエスト(650)から始まる。図示の例では、携帯用コンピュータ装置102から開始されているが、サーバ106、コンピュータ108又は何れかの携帯用コンピュータ装置102a−nから、検証リクエストが生成され送信されてもよいことを、当業者は認めるであろう。リクエストはサーバ106により受信され、サーバは、複合文書400に対するハッシュ値の公表された場所を確認する(652)。次に、一実施例において、サーバ106の検証モジュール530は、複合文書の画像に対するハッシュ値を抽出する(654)。次に、検証モジュール530は、ストロークのハッシュ値を確認し、複合文書400のストロークデータ414からストローク値を抽出する(656)。サーバは、デバイスIDを確認し、そのデバイスIDが正当であることを保証する(668)。次に、サーバ106は画像におけるストロークを描き直し/再描画し(670)、その画像及び再描画されたストロークに対するハッシュ値を算出する(672)。文書を検証するため、サーバ106は、算出したハッシュ値と、照合する抽出されたハッシュ値とを比較する(674)。ハッシュ値が合致していた場合、サーバ106は、検証を要求した装置へ検証メッセージを送信する(676)。ハッシュ値が合致していなかった場合、複合文書400は正当でない又は確認できなかったことを示すメッセージが送信される。図6Dの様々なステップは、図示ものとは異なる順序で実行されてもよいことを、当業者は認めるであろう。レンダリング技法における小さな相違に起因して、ラスタ画像のハッシュは検証に失敗するかもしれない。この場合、ラスタ画像は携帯用装置のログから取得でき、その画像のハッシュはそのログにおけるものとして検証でき、ラスタ画像を比較することができる。ラスタ画像が十分に近かった場合、確認できたことが送信される。十分に近いことは、二乗平均誤差や、人的オブザーバによる分析などを含む様々な方法で判断できる。
コンピューティングパッド202において署名されたフォームが受信された場合において、その署名が他の文書から単にコピーされて現在のフォームに適用されていることを誰かが示唆したとする。複合文書400に保存されているログ408、418が確認され、署名又は他のストロークが適用された順序と、署名がなされた時とを判定する。ログにたいするCBIが適切な時間の順序で公表されていた場合、その署名は、公表時点より前に適用されていることを知ることができる。携帯用コンピュータ装置102がディジタル署名とともにストロークファイルに署名していた場合、ストロークは特定の携帯用コンピュータ装置102において付加されていることを確認でき、これは、携帯用コンピュータ装置102へのアクセス権を持っていない者がストロークを追加するおそれを排除する。あるいは、携帯用コンピュータ装置102が署名ストロークのCBIを公表していた場合、ディジタル署名がない場合でさえ、他の署名が付加されているのと同じ携帯用コンピュータ装置102によりストロークが追加されていることについて、確信できる。署名検証の用途の場合、個々のストロークのタイミングが、各ストロークに保存されている時間情報を用いて分析される。また、サービスは、ストローク情報をリアルタイムで使用して、署名サービスにアクセスしてもよく、署名サービスは、ストロークを受け付け、それらの信憑性を検証し、ストロークを用いた署名を補足するようにディジタル署名を適用する。
図7を参照しながら、署名フォームに関する本発明による利用例を説明する。図7は例示的なシステム700を示し、コンピュータ702が画像を生成し、後の処理に備えてそれをストローク及び画像ワークフローサーバ106に送信する。このプロセスの部分は、携帯用コンピュータ装置102を介してシステム700にアクセスする個人のディジタル署名を取得することを含む。携帯用コンピュータ装置102は、任意の画像及びストロークを用いたワークフローに対して、ユーザのためのパーソナル署名装置として機能する。
例えば、携帯用コンピュータ装置102は、barrus_pad@example.comのような固有の電子メールアドレスを有するように構築されている。この電子メールは、例えばbarrus_pad@example.comのようにユーザのプライマリ電子メールアドレスと異なるようにし、携帯用コンピュータ装置102において処理されることが意図されるメッセージのみが、携帯用コンピュータ装置102において表示されるようにできる点で有利であることに留意を要する。
図7に示されているように、パーソナルコンピュータ702における仕事仲間は、携帯用コンピュータ装置102のユーザによる署名を要する文書をPDFフォームで所有している。この仕事仲間はPDFを含むメッセージを携帯用コンピュータ装置102に関連するアドレス宛に送信する(710)。フォーマットされたメッセージは、先ず、ストローク及び画像ワークフローサーバ106に保存され、メールサーバは電子メールアドレスに関連付けられている。携帯用コンピュータ装置102がネットワーク104に接続されると、フォーマットされたメッセージにアクセスし(712)、それをユーザに表示する。ユーザは、フォームの幾つかの部分を記入し、あるいは文書に署名(サイン)し、あるいは双方を行う。ユーザは、自身がそのフォームについて作業を行ったことを示し、その時点において、ストロークを有するフォーマットされたメッセージが、携帯用コンピュータ装置102の出力メールサーバに送信される(714)。ストロークを伴うフォーマットされたメッセージは、pdfファイルとして当初の送信者に返送されてもよいし、あるいはワークフロープロセスにおける別のステップへ、フォーマットされたメッセージとして転送されてもよい(716)。
非常に簡易で限定された機能しか備えていない装置(例えば、携帯用コンピュータ装置102)がこのワークフローに使用できる点で、これは特に有利である。携帯用コンピュータ装置102のメールサーバ(文書転送モジュール316、508)は、必要な任意のファイル変換を行うように構築される。PDFファイルをレンダリングすることは演算負担が大きく、様々な機能がPDFファイルにおいて使用されるので、ファイルを表示するのに必要なソフトウェアが異なるかもしれない。しかしながら、レンダリングがサーバ106において行われた場合、携帯用コンピュータ装置102は、表示に相応しい簡易な画像フォーマットをサポートするだけでよい。
代替実施例において、携帯用コンピュータ装置102は、ストロークが適用された文書の指標とともに、ストロークを出力メールサーバ106に返すことのみを必要とする。出力メールサーバ106は、返されたストロークを、例えばPDFファイルのような元の文書フォーマットに変換する。変換及び比較を行う入力及び出力サーバに依存する携帯用コンピュータ装置102は、全ての文書変換をローカルに(装置内で)実行する装置よりも、少ないソフトウェアの更新しか必要としない。
限られたことしか想定されていないので、携帯用コンピュータ装置102において非常に簡易なユーザのやり取りが可能になる。署名又は簡易なストロークを記入するために、携帯用コンピュータ装置102が文書を単に表示するために使用されていた場合、ユーザは、複雑なユーザインターフェースの使い方を学習しなくてよい。携帯用コンピュータ装置102は、PCを用いて生じること又はエンドユーザ以外の者により行われることについて規定されている必要がある。電子メールを自動的に検査するように構築された携帯用コンピュータ装置102を用いることで、ユーザは、ページの進め方/戻し方、書き込みの仕方、及び完成したフォームの提出の仕方を学習するだけでよい。
図8は、記録を処理する本発明による別のシステム例800のブロック図である。ホンシステム800は、患者の記録処理や、医療従事者のオフィスに使用可能であり、あるいは部署毎の書類受信トレイとして構築され、ストロークを取得し、フォームを次のワークフローステップへ送信する。図8のシステム800は、コンピュータ802、プリンタ804、ストローク及び画像ワークフローサーバ106、1つ以上の携帯用コンピュータ装置102及びデータベース110を含む。コンピュータ802は、携帯用コンピュータ装置102に無線で結合され、ブランクフォーム(未記入フォーム)を送信し、ストロークを伴うフォームを受信する(812)。コンピュータ802は、プリンタ804に結合され(816)、ストロークを伴うフォームを印刷する。コンピュータ802は、ストローク及び画像ワークフローサーバ106にも結合され、ストロークを伴うフォームを提供する(814)。ストローク及び画像ワークフローサーバ106は、信号線120により、上述したようなデータベース110に結合される。
一実施例において、コンピューティングパッド202は、1人の人物ではなく、ジョブタスク又は人々のグループに関連付けられている。例えば、複数の人々が支払報告を処理できる場合、コンピューティングパッド202の電子メールアドレスは、expense_reports@example.comのように形成される。ある1つの装置が、紙の「受信トレイ」の代わりとして提供され、誰もがフォームを置いて行くことができ、別の人がそのフォームを取得して処理することができる。誰もがコンピューティングパッド202と電子メールで通信でき、フォームに署名できる誰もがコンピューティングパッド202を取り、フォームを承認する又は他の処理をすることができる。複数の装置が使用される場合、それらは同じ電子メールアドレスにアクセスし、そのアドレスに送付されたフォームを表示する。任意の1人がフォームを承認した場合又はフォームについての作業を「完了」した場合、フォームは、処理の次のステップへ送信される。フォームは、全ての装置において「完了(completed)」としてマークされる、あるいはその装置から削除される。したがって、重複した用紙や労力を要することなく、本装置は、作業結果(work)を配布するのに簡易に使用できる。
別の実施例において、コンピューティングパッド202は、診療所における患者との一般的なやり取りをサポートするように構築される。歯科医院における一般的なやりとりは、患者の到着、受付係による接客、クリップボードの付与、健康状態を更新するための問診等である。患者は、そのフォームを記入し、クリップボードを受付係に戻し、見えるように待機する。初診の患者には、より複雑なフォームが渡されるかもしれない。このやりとりをサポートするため、受付係は、受付係のコンピュータ802においてあるアプリケーションを実行し、そのアプリケーションは、選択したフォームをコンピューティングパッド202にコピーできるようにする。これは、完全に未記入の(ブランク)フォームでもよいし、あるいはそのフォームには、患者の名前や、スケジューリングシステムから取得された他の情報(例えば、その患者が後に会う医者の名前)等が記入されていてもよい。図8に示されるように、受付係は、フォームがコンピューティングパッド202にロードされることを引き起こし、コンピューティングパッド202を患者にわたす。患者はスタイラスを使ってフォームに情報を記入する。ボタンを押すことで、特別なストロークを形成することで、あるいは単にコンピューティングパッド202を受付係に戻すことで、患者は、フォームの記入が完了したことを意思表示する。同じコンピュータ802又はアプリケーションを使用する受付係は、紙によるワークフローで使用するためにそのフォームを印刷し、あるいは何らかの患者記録システム又は認識システムにフォームをアップロードする。
図9を参照しながら、一実施例により複合文書400を作成する方法604を説明する。複合文書400を作成する本方法604は、ストローク及び画像ワークフローサーバ106により実行されるように説明されるが、代替実施例において、他の装置が、複合文書400を作成する本方法を実行してもよいことを、当業者は認識するであろう。複合文書400を作成する本方法604は、トップレベルの文書ディレクトリを作成することから始まる(902)。次に、サーバ106は、画像を文書ディレクトリに保存する(904)。上述したように、文書ディレクトリに保存される画像のファイル名は、増加する数値を伴う固有の名称であることが好ましい。次に、サーバ106は、ステップ904において付加された画像飲めたデータディレクトリ404を作成する(906)。サーバ106は、その特定の画像に関するメタデータを、その画像のメタデータディレクトリ404に保存する(908)。サーバ106は、その画像のメタデータディレクトリ404におけるログ418を作成して更新する(910)。次に、本方法は、複合文書400に加える必要がある画像が未だ残っているか否かを判断する(912)。残っていた場合、本方法はステップ904に戻り、次の画像に対するステップ904−912を実行する。複合文書400に追加するさらなる画像が無かった場合、本方法はステップ914に進む。ステップ914において、本方法は、文書メタデータ406のディレクトリを作成する。そして、文書メタデータ406にメタデータを保存することで、複合文書を作成する本方法は終了する。
図10を参照しながら、文書のロギング処理を行う本発明による方法を説明する。このロギング方法は、携帯用コンピュータ装置102におけるローカルログを作成するロギングモジュール314により、又はサーバ106におけるグローバルログを作成するロギングモジュール516により、好ましくは双方により実行される。本方法は、サーバ106又は携帯用コンピュータ装置102において実行されるが、それらは同様であるので、サーバ106においてログを作成又は更新する観点から本方法を説明する。複合文書400を含むフォーマットされたメッセージが受信された後に、本方法は始まる。サーバ106は、複合文書中の基本画像に対する1つ以上のハッシュ値を生成して保存する(1002)。次に、サーバ106は、ストロークファイルの1つ以上のハッシュ値を作成して保存する(1004)。そして、サーバ106は、文書全体に対する累積的なハッシュ値を算出する(1006)。このプロセスは、ロギングに関連して上述されている。最後に、サーバ106は、複合文書400の処理を確認することを希望する誰もが公にアクセスできる場所において、その累積的なハッシュ値を公表する(1008)。一実施例において、このロギング機能により作成されたデータは、サーバ106のメモリ504に保存される。別の実施例において、データは、サーバ106に結合されたデータストレージ110に保存される。一実施例において、この累積的なハッシュ値は、コンピューティングパッド202の所有者及びストローク及び画像ワークフローサーバ106から独立して制御されるサービスに対して公表される。
図11を参照しながら、複合文書400のルーティングを決定する方法例を説明する。本方法は、メタデータからワークフロー情報を抽出することから始まる(1102)。例えば電子メールヘッダにおけるそのようなワークフロー情報の例は、上述の「ワークフロー仕様」において説明されている。次に、本方法は現在のステップを確認する(1104)。直線的なワークフローの場合、これは、受信者の電子メールアドレスを用いて判別できる。現在のステップを判別する他の方法は、上述の「ワークフロー仕様」において説明されている。そして、本方法は現在のステップを実行する(1106)。最後に、本方法は、メタデータを更新し、現在のステップが完了したことを示す。再び、更新する技法については、上述のワークフローサービスにおいて説明されている。
図5Bを参照しながら、第2実施例によるストローク及び画像ワークフローサーバ106を詳細に説明する。ストローク及び画像ワークフローサーバ106は、プロセッサ502、メモリ504、通信装置506、文書転送モジュール508、クロック510、ワークフローモジュール512、アグリゲーション及びストレージモジュール514、ロギングモジュール516、その他のアプリケーション518、バス520及び分析モジュール530を有する。代替実施例において、ストローク及び画像ワークフローサーバ106は、ディスプレイ装置522、出力装置524、固有デバイスIDストレージ526及び入力装置528をさらに有する。
ストローク及び画像ワークフローサーバ106の要素の幾つかは、コンピューティングパッド202の要素と同一又は類似の機能を有することを、当業者は認めるであろう。したがって、それらの要素についての説明はここでは繰り返さない。例えば、プロセッサ502、メモリ504、通信装置506、文書転送モジュール508、ロギングモジュール516、クロック510、その他のアプリケーション518、ディスプレイ装置522、出力装置524、固有デバイスIDストレージ526及び入力装置528は、それぞれ、図3におけるプロセッサ302、メモリ304、通信装置306、文書転送モジュール316、ロギングモジュール314、クロック310、その他のアプリケーション324、ディスプレイ装置206、出力装置220、固有デバイスIDストレージ308及び入力装置210−216と同様な機能を有する。ストローク及び画像ワークフローサーバ106及びコンピューティングパッド202における要素同士の間の幾つかの相違点が、以下において説明される。例えば、通信装置506は、無線ではなく有線により、ストローク及び画像ワークフローサーバ106をネットワークへ結合する。ワークフローサーバ106は多数の携帯用コンピュータ装置102にサービスを提供するので、プロセッサ502はプロセッサ302よりも強力な演算能力を有する。文書転送モジュール508は、電子メールクライアントとは異なり、電子メールサーバである。ディスプレイ装置522は例えばCRTであり、出力装置524はスピーカである。入力装置528は、キーパッド及びマウス形式のコントローラを有する。ストローク及び画像ワークフローサーバ106は、リモートクライアントとは異なり、ハードウェアサーバとして機能するので、外にも様々な相違があることを当業者は認めるであろう。
ストローク及び画像ワークフローサーバ106のワークフローモジュール512は、複合文書を処理及びルーティングするソフトウェア及びルーチンである。ワークフローモジュール512は、複合文書400を作成し、フォーマットされたメッセージを作成する。ワークフローモジュール512は、ロギングモジュール516と協同してシステムログ(システムログは、ロギングモジュール516、メモリ504又はデータストレージ110に保存される)を作成し、それを公表する、あるいは必要に応じてそのログを利用可能にする。ワークフローモジュール512は、ワークフローを処理する一部分として、フォーマットされたメッセージを次の場所にルーティングする責務を有する。一実施例において、この機能は、コンピューティングパッド202のルーティングモジュール318により提供される。別の実施例において、コンピューティングパッド202は、ストローク及び画像ワークフローサーバ1−6に応答の電子メールを送信し、ワークフローモジュール512は、そのルーティング及び次のワークフローのステップを確認する。ワークフローモジュール512がシステムログを作成するプロセスは、上述したようなログエンタングルメント(log entanglement)を作成することが可能であること、及び文書の個々のページを取り扱う複数のワークフローモジュール512が存在すると、検出されずに文書を不正使用する際の困難性を大幅に増進できることに、留意を要する。一実施例において、ワークフローモジュール512は、複合文書400の処理を検証する検証モジュール(図示せず)を含む。一実施例において、検証モジュールは、プロセッサ502により実行されるルーチンであり、図6Dを参照しながら説明されるような文書の処理を検証する。検証モジュールは、バス502、メモリ504及び通信装置506に結合される。検証モジュールは、ストローク及び画像ワークフローサーバ106とは独立に使用されてもよいことに留意を要する。すなわち、特定のサーバを当てにして信用せずに、文書の独立した検証を行うようにコンピュータ108において実行されてもよい。
アグリゲーション及びストレージモジュール514は、通信装置506を介して文書転送モジュール518が受信したストローク及び/又は画像を処理するソフトウェア及びルーチンである。一実施例において、アグリゲーション及びストレージモジュール514は、文書転送モジュール518が受信した複合文書400を処理する。別の実施例において、アグリゲーション及びストレージモジュール514は、ストロークを含むフォーマットされたメッセージを処理する。何れの実施例にせよ、アグリゲーション及びストレージモジュール514は、複合文書400又はフォーマットされたメッセージからストローク及び/又は画像を抽出し、分析モジュール530によるさらなる処理においてそれらが利用可能になるようにする。アグリゲーション及びストレージモジュール514は、ストローク及び/又は画像を保存する責務も有する。この保存(ストレージ)は、アグリゲーション及びストレージモジュール514、メモリ504又はデータストレージ110を用いて実行される。図12−17を参照しながら、アグリゲーション及びストレージモジュール514の動作の詳細を説明する。アグリゲーション及びストレージモジュール514は、バス520によりプロセッサ502及びメモリ504に結合されている。
ストローク及び画像ワークフローサーバ106の分析モジュール530は、プロセッサ502により実行可能なソフトウェア及びルーチンであり、ストローク及び/又は画像を分析し、ストローク及び画像に関する様々な表示を作成する。分析モジュール530については、図12、14A−14E、16及び12を参照しながら詳細に説明される。分析モジュール530は、プロセッサ502、メモリ504、及びアグリゲーション及びストレージモジュール514にバス520を介して結合されている。
ここでは、アグリゲーション及びストレージモジュール514と分析モジュール530とはストローク及び画像ワークフローサーバの一部分として説明されているが、代替実施例では、アグリゲーション及びストレージモジュール514と分析モジュール530とは、コンピューティングパッド202の一部分でもよいことを、当業者は認めるであろう。特に、本実施例は図13Aを参照しながら説明され、あるコンピューティングパッド802が残りのコンピューティングパッド804a−nと通信し、画像を送信したり、ストロークを受信したり、修正した画像を返したりする。
図12を参照しながら、ストローク及び画像のアグリゲーション及び分析のための本発明による方法例を説明する。本方法は、フォーマットされたメッセージを生成して複数の携帯用コンピュータ装置102に送信することから始まる(702)。上述したように、このステップは、一実施例においてはストローク及び画像ワークフローサーバ106により実行され、別の実施例では特定の携帯用コンピュータ装置102により実行されてもよい。説明の便宜及び簡明化のため、本方法における残りのステップは、ストローク及び画像ワークフローサーバ106があたかもソース装置であるかのように説明され、最初のフォーマットされたメッセージを送信し、受信側の携帯用コンピュータ装置102a−nが行った注釈又は追加を含む返送用のフォーマットされたメッセージを受信する。しかしながら、選択された携帯用コンピュータ装置(例えば、図13A及び13B)が代替的にこれらのステップを実行してもよいことを、当業者は認めるであろう。次に受信側の携帯用コンピュータ装置102aは、フォーマットされたメッセージを受信し、それを表示する(704a)。受信側の携帯用コンピュータ装置102aのユーザは、ストロークデータを追加する(706a)。受信側の携帯用コンピュータ装置102aは、画像又はテキストデータを追加することもできる。次に、携帯用コンピュータ装置102aは、フォーマットされたメッセージを、ストローク及び画像ワークフローサーバ106へ送信する(708a)。図12において、これら3つのステップ704、706及び708は、追加的なステップ704n、706n及び708nにより表現されているように、任意の数の追加的なコンピュータ装置102b−nにおいて反復されてよい。
注釈を含む返送されたフォーマットされたメッセージは、ストローク及び画像ワークフローサーバ106において受信される(710)。上述したように代替例としてステップ710−722は、複数の携帯用コンピュータ装置102の内の何れかにより実行されてもよい。ストローク及び画像ワークフローサーバ106は、返送されたフォーマットされたメッセージから注釈を抽出し、それらの注釈を寄せ集める(アグリゲーションを行う)(712)。ストローク及び画像ワークフローサーバ106は、携帯用コンピュータ装置102からの寄せ集めた注釈又はデータを分析する(714)。例えば、データは選別(フィルタリング)され、携帯用コンピュータ装置102に送信されるべき特定のものを抽出する。様々な他のタイプの分析が以下において詳細に説明される。次に、本方法は、分析され選別されたデータを表現する者を作成する(716)。一実施例において、これは、特定のストローク情報の抽出と、基本画像及び抽出されたストローク情報を含む改訂画像の作成とにより行われる。次に、ストローク及び画像ワークフローサーバ106は、ステップ716において生成された分析及び選別後のデータを表現するものを含むメッセージを作成し、それを携帯用コンピュータ装置102に送信する(718)。例えば、ストローク及び画像ワークフローサーバ106は、教師の携帯用コンピュータ装置に対して作成された表現物を送信する(718)。最後に、本方法は、複数のコンピュータ装置102の何れかにおいて、作成した表現物を表示することで終了する(720)。
図13Aを参照しながら、ストローク及び画像のアグリゲーション及び分析を行う利用状況の一例を説明する。図13Aは、第1の携帯用コンピュータ装置802が画像を生成し、それを複数の他の携帯用コンピュータ装置804a−nへ送信するシステム例800を示す。他の携帯用コンピュータ装置804a−n各々のユーザは、第1の携帯用コンピュータ装置802から送信された画像を取り出し、その取り出した画像に彼ら自身の注釈を加える。後の時点において、又はポーリング信号に応答して、他の携帯用コンピュータ装置804a−nは、彼らの注釈及び/又は画像を、他の携帯用コンピュータ装置806へ送信する。他の携帯用コンピュータ装置806がそれらの注釈を受信すると、それらは分析され、処理され、いくつかは複数の他の携帯用コンピュータ装置804a−nへさらにもどされる。別の実施例において、第1の携帯用コンピュータ装置802及び複数の他の携帯用コンピュータ装置804a−n間の通信が双方向であり、第1のコンピュータ装置802が他のコンピュータ装置806について上述した機能を実行し、他のコンピュータ装置806が省略されてもよいことを、当業者は認めるであろう。
図13Aは、通常の会議(ミーティング)や授業の設定におけるやりとりをサポートするように構築されたコンピューティングパッド202を示す。授業の設定の場合、通常、同じ情報のコピー(おそらくはワークシート)をクラスの生徒にわたす。生徒は、自身の名前をワークシートに記入し、質問に答え始める。教師は、生徒の回答を検査するために教室を歩き回る。後の時点において、生徒はワークシートを提出し、それらのワークシートは採点され、採点結果は生徒に返される。
図13Aは、この種のグループ共有用に構築された幾つかのコンピューティングパッド202を示す。先ず、特別に設定された教師用パッド802を有する教師は、最初のページを生徒のコンピューティングパッド802に配布する。代替実施例において、これはコンピュータ108により行われてもよい。生徒は、彼ら自身のページのコピーへ各自ストロークを追加し、おそらくは問題に対する「彼らの」回答を伴う様々なページのバージョンが形成される。教師のパッド802は、任意の数の他のパッド804a−nからストローク、又は画像とストロークを取得するように構築されている。これは、教師が、教室を歩き回ることなく、生徒のページ各々を網羅することを可能にし、あるいは生徒が遠く離れた場所にいる場合でさえこれを可能にする。
教育現場又は他の状況において、1人の者が、複数の他の人々の(典型的には、生徒)の仕事、作品、回答(work)を確認できることは有利である。教室の場合、これは、(教師が)歩き回り、配られた解答用紙に何が書かれているかを眺めることで、しばしば行われる。本発明により特別に構築された教師用パッド802を利用することで、作品又は回答等を閲覧する代替方法が可能になる。あるパッド802は、複数の他のパッド804a−nからストロークを受信するように構築されてもよい。これらの受信したストロークは、図9A−9Eの具体例とともに後述されるような複数の様々な有用な方法で表示される。
教室の環境の場合、ある装置の機能(他の装置が行っていることを見る機能)を制限することが、特に試験の場合に好ましい。この場合、「教師」の装置802のみが、他のパッド804a−nから情報を受信するように構築される。より協力的な環境の場合、例えば会議やテレビ会議の場合、複数のパッドが他のパッドから情報を収集できることが有用である。遠く離れた教室同士の場合、又はテレビ会議の場合、パッド802、804a−nは、互いに大きく離れて動作してもよい。教室の業務の双方の場合において、パッド802、804a−nが「共有の」ページを表示できることが有用である。この場合、パッド802、804a−nの何れかにおいてなされたストロークが、他のパッドにおいて適切なサイズ及び場所に登場する。これは、2人の別個の人々の入力による絵画のような共同作業を可能にし、あるいは2人以上の物理的に離れた場所にいる者が「同時に」契約に署名することを可能にする。
図13Bを参照しながら、ストローク及び画像のアグリゲーション及び分析を行う別の例を説明する。このストローク及び画像のアグリゲーション及び分析を行うシステム例850は、上記の図12を参照しながら説明した方法にしたがう。このシステム例850は図13Aを参照しながら説明したものに類似しているが、ストローク及び画像ワークフローサーバ106を含んでいる点が異なる。第1の携帯用コンピュータ装置802が、フォーマットされたメッセージを、複数の他のコンピュータ装置804a−nへ送信するように、システム850は構築される。複数の他のコンピュータ装置804a−nは、フォーマットされたメッセージから画像コンテンツを抽出し、抽出した画像を表示し、ストロークのような注釈を追加し、返送フォーマットメッセージを作成して送信する。しかしながら、この返送フォーマットされたメッセージを第1の携帯用コンピュータ装置802へ送信するのではなく、返送フォーマットされたメッセージは、ストローク及び画像ワークフローサーバ106へ送信される。返送フォーマットされたメッセージを寄せ集めて分析するプロセスが、ストローク及び画像ワークフローサーバ106により実行される。これは、ストローク及び画像ワークフローサーバ106が、演算能力、メモリ及び二次ストレージ等を含む演算リソースを豊富に備えていること、及び多数の返送フォーマットメッセージを短時間の内に処理できること等の点で特に有利である。ストローク及び画像ワークフローサーバ106は、寄せ集めた(アグリゲート)分析されたデータの表現物を作成し、その表現物を含むフォーマットされたメッセージを、他のコンピュータ装置806へ送信する。別の実施例において、アグリゲート及び分析されたデータは、他の携帯用コンピュータ装置806ではなく、第1のコンピュータ装置802に返送される。
図14A−14Eを参照しながら、本発明により生成される表現物の具体例を説明する。携帯用コンピュータ装置802はプレゼンテーションモジュール322を含み、グループに属する他のコンピュータ装置804a−n(例えば、生徒のパッド)からの画像を表示する又は循環又は巡回させ(cycle)、他のコンピュータ装置804a−nにおいて、そのコンピュータ装置における実際のサイズで何が表示されているかを正確に示す。これは、第1のコンピュータ装置802(特に、生成及びストレージモジュール514)を備え、表示されている現在のページに関するコンピュータ装置804a−n各々をポーリングすることで行われる。コンピュータ装置804a−nは、自身の現在の表示の画像全体を応答として送信する。コンピュータ装置804a−nは、背景画像と、ページに適用したストローク又は追加的な画像の組み合わせとを送信することで、現在のページを送信する。多くの場合、限られた数の一群のページが閲覧され、コンピュータ装置804a−nは背景画像を既に所有していてもよい。この場合、コンピュータ装置804a−nは、最後の送信が行われて以来付け加えられた新たな情報を表現するストロークファイルを送信するだけでよい。これは、限られた帯域幅の状況において非常に速やかに実行される。さらに、ストローク(の情報)を送信することは、第1の携帯用コンピュータ装置802における表示206を速やかに更新できるようにする。連続的に見えるシーケンスにおいて、同じ背景画像が第1及び第2のコンピュータ装置802、804a−nにより使用される場合、第1の携帯用コンピュータ装置802によりストロークを消去すること、及び第2の携帯用コンピュータ装置802によりストロークを描くことは、画像全体を表示し直す場合と比較して、速やかに実行される。ストローク及び画像は別々に保存されるので、ストロークを取り除くこと、及びブランクの背景ではなくオリジナルの(元の)背景画像を取得することは容易であることに、留意を要する。
図14Aは、本発明による携帯用コンピュータ装置802、804a−nにより取り込まれたストロークの図形表示例を示す。特に、図14Aは、他の携帯用コンピュータ装置804a−cにより取り込まれた情報の表示908を示している。この例の場合、画像902、904、906の組908を形成する3つの他の携帯用コンピュータ装置804a−cが存在し、画像の各々は、携帯用コンピュータ装置804a−cの何れかにより表示され、取り込まれ、そして送信されている。特に、この図は3つのパッドを示し、生徒は、グラフの軸を含む基本ページにストロークを追加している。
一実施例において、教師の表示(本発明によれば独立した表示である)は、一度に1人の生徒からの提示データを含んでもよい。この場合、教師は、各生徒が描いたものを順に閲覧し、どの生徒が支援を必要としているか、及びどの生徒が適切に処理を進めているかを判別する。図14B−14Dは、3つの個々の表示902、904、906を示し、3つの異なる生徒のコンピュータ装置804a−cに表示されているものを示す。背景画像とは別にストロークを受信することで、携帯用コンピュータ装置802に追加的な情報を提供できる。ストロークファイルを利用することで、携帯用コンピュータ装置802は、生徒が自身の携帯用コンピュータ装置804a−cに追加した順序でストロークを再生できる。これは、教師にとって、問題を解決するために必要なステップをさらに明確に分かるようにし、生徒が授業を理解できていない個所を特定できるようにする。ストロークがタイミング情報を含んでいた場合、ストロークは、それらが作成された様々な速度で再生可能である。代替的に、ストロークは、サンプル地点毎、ストローク毎又は画素毎の一定の時間により置換されてもよい。
図14Eは、本発明による合成された表示910による取得されたストローク(要求元の携帯用コンピュータ装置802へ送信されるストローク)の図形表示例を示す。複数のコンピュータ装置804a−cによる情報を一度に表示できることも有用である。複数の携帯用コンピュータ装置804a−cからの情報を見えるようにする1つの方法は、携帯用コンピュータ装置804a−c各々からの画像の縮尺(スケール)を調整し、それらを1つの携帯用コンピュータ装置802において表示することである。そのような表示が図9Eに示されている。この例の場合、生徒のストローク及び背景のページは、圧縮され、1つのページに一緒に表示されている。合成された表示910において、背景画像の1つのコピーが、生徒の携帯用コンピュータ装置802の全部又は一部とともに表示されている。この表示を利用することで、何らかのことを生徒の大多数が理解しているか否か、どのような種類の誤りがなされているか等を速やかに特定できる。また、本方法は速やかにデータを収集するために使用されてもよい。例えば、全員が彼らの好みに近いボックスをチェックすれば、速やかに調査が完了する。
再び、ストローク情報を背景画像と別個に送信する利点があることに留意を要する。受信する携帯用コンピュータ装置802は、背景画像のスケールを調整し(例えば、大きな画像を小さくし)、それを表示し、ストロークのスケールを調整し、それらを既に受信している背景画像に追加することができる。これは、通信リソースだけでなく、送信帯域幅をも節約できる。
本発明は、全体を見渡す画像におけるストロークを、まさに1つの選択されたページ画像として再生できる機能を提供する。すなわち、ストローク情報が時間の情報を含んでいた場合、各ストロークが複数の携帯用コンピュータ装置804a−nに追加された順序を知ることができる。これは、作業が速い者、問題を抱えている者等を特定する際に有用であり、ある生徒のパッドから別の生徒のパッドへコピーする場合でさえ有用である。
図14Fは、本発明による概観表示912による取得されたストローク(要求元の携帯用コンピュータ装置802へ送信されるストローク)の図形表示例を示す。背景ページの1つのコピーが、生徒の携帯用コンピュータ装置802の全部又は一部からのストロークとともに提示される。この表示は、何らかのことを大多数の生徒が理解しているか否か、あるいはどのような種類の誤りが生じているか等を速やかに決定するために使用可能である。これは、迅速にデータを収集する方法として使用可能であり、例えば、全員が自身の好みに対応するボックスをチェックすれば、調査を速やかに完了できる。図14Fの画像は大きく表現されているが、その表現は図9A−9Eと同じスケールではない。例えば、携帯用コンピュータ装置802、804a−nの表示は、同一であってもよい。この場合、概観表示912は、第1のコンピュータ装置802の表示サイズに合わせてスケールが調整されてもよい。
この場合においても、背景画像とストロークを別々に送信する優れた利点がある。結合した画像(combo image)を作成する際に重要な時間は、背景画像が同じであるものである。この場合、受信する携帯用コンピュータ装置802において一度背景が描かれ、その後に複数の携帯用コンピュータ装置804a−nからのストロークが追加される。
場合によっては、携帯用コンピュータ装置804各々からのストロークを、組み合わせた表示において僅かにずらすことが有用であるかもしれない。例えば、調査の質問が、横方向に並んでおり、左側に「非常に同意する」があり、右側に「全く同意しない」があり、それらの間のいずれかの場所をチェックするようにユーザに求めていた場合において、複数の回答が組み合わせられる場合、同じ場所で複数の回答同士の相違を判別することは容易ではない。しかしながら、回答の各々が縦方向に僅かにずらされるならば、各々の場所を指定している人々の数をさらに容易に評価することができる。
図15及び図13Aを参照しながら、ストローク及び/又は画像のアグリゲーションのための本発明による方法例を説明する。本方法は、ポーリンググループにおける携帯用コンピュータ装置804a−nを特定することから始まる(1002)。例えば、教師は、授業(クラス)の識別番号を、特定のクラス内の生徒に配布する。生徒は、クラスの識別番号を各自の携帯用コンピュータ装置804a−nに入力し、同じ識別番号の教師からの報知信号(ブロードキャスト信号)へのアクセス権を取得する。さらに、特定するステップ1002は、教師が使用する携帯用コンピュータ装置802の通信範囲内の携帯用コンピュータ装置804a−nをリアルタイムで判別することを実行する。上述したように、特定するステップ1002は、ポーリンググループ内のユーザが眺める背景画像を配布することも含む。代替実施例において、ポーリンググループ内の携帯用コンピュータ装置804a−nは、背景画像を各自の携帯用コンピュータ装置804a−nにロードする。次に、本方法は、ポーリンググループに属する携帯用コンピュータ装置804a−nによるストローク及び/又は画像データを求めるメッセージを送信する(1004)。一実施例において、ストロークデータのみが要求されてもよいことが理解されるべきである。他の実施例において、ストロークデータ及び画像データだけでなく、他のデータも要求され、複合文書400の形式で提供される。これは、上述したように、フォーマットされたメッセージを送信することで実行されることが好ましい。次に、本方法は、携帯用コンピュータ装置804a−nからリターンメッセージを受信する(1006)。この例の説明において、携帯用コンピュータ装置802は、図15に示す方法ステップを実行するものとする。しかしながら、ストローク及び画像ワークフローサーバ106を含む代替実施例において、図10に示すステップは、当業者に理解されるように、携帯用コンピュータ装置802により実行されてもよいし、ストローク及び画像ワークフローサーバ106により実行されてもよい。携帯用コンピュータ装置802は、次に、メッセージからストロークを抽出し、それらを処理して表示する(1008)。一実施例において、ストロークは処理されなくてもよい。別の実施例において、表示の前にストロークをスケーリングし、それらを空間的に動かすように、ストロークは処理されてもよい。さらに別の実施例において、ストロークは、選別(フィルタリング)、分析又は他の表示機能(ここで説明されているようなもの)を実行することで分析されてもよい。さらに、抽出されたストローク情報は、上述したように、アグリゲーション及びストレージモジュール514の一部として保存される。一実施例において、本方法はポーリンググループにおける携帯装置のリストを維持する。ステップ1010において、本方法は、携帯装置IDを装置のリストに加え、リスト内の装置は、ストローク情報を要求するステップ1004のメッセージに応答するものである。次に、本方法はステップ1012に続き、ポーリンググループの中に応答メッセージを送信していない装置が未だ残っているか否かを確認する。これは、ステップ1010で維持されている応答リストと、ポーリンググループ内の全ての装置のリストとを比較することで実行できる。応答していない装置が未だポーリンググループ内に残っていた場合、本方法は、ステップ1004に戻り、ステップ1004−1012を応答していない装置に対して反復する。一方、ポーリンググループ内の全ての装置がメッセージを返していた場合、アグリゲーション方法は完了し、終了する。
図15の上記の説明及び以下に説明する図16の説明において、ストローク及び画像ワークフローサーバ106が、リクエスト又はポーリングメッセージを複数の携帯用コンピュータ装置804a−nに送信することを要するように、本発明は説明されている。しかしながら、他の実施例において、複数の携帯用コンピュータ装置102a−102nは、ポーリングされることなく、任意のページにおける最新情報(ストローク)を特定のアドレス宛に自動的に送信するように構築されてもよい(例えば、「ポーリング」ソフトウェアを実行するのではなく、受信装置で動作するhttpサーバへ投稿することで行われてもよい。)。
図16及び図13Aを参照しながら、ストローク及び/又は画像のフィルタリング及びプレゼンテーションのための本発明による方法例を説明する。本方法は、第1の携帯用コンピュータ装置802から1つ以上の他の携帯用コンピュータ装置804a−nへプレゼンテーション(情報)を送信することから始まる(1102)。例えば、あるプロジェクトマネジャが、プレゼンテーションソフトウェアを利用して、グループミーティング用の一群のスライドを準備する。これらのスライドは、彼の携帯用コンピュータ装置802に「印刷」され(printed)、ミーティングの他の参加者へ電子メールで送信される。他の携帯用コンピュータ装置804a−nのユーザ各々は、編集及び注釈を行い、それらを第1の携帯用コンピュータ装置802へ送信する。プロジェクトマネジャがスライドを通じて進行する際、他の参加者は、彼ら自身の携帯用コンピュータ装置804a−nにおいてスライドを眺め、そしてアイテムを確認するために既に提示したマテリアルにもどってもよい。ミーティングにおける誰でもが、どのスライドについてメモを書いてもよい。第1の携帯用コンピュータ装置802は、他の携帯用コンピュータ装置804a−nからストロークデータを伴うメッセージを受信する(1104)。例えば、プレゼンテーションの中頃において、スケジュール(計画)は現実的であること及び目標は適切であることに、参加者が同意するか否かを把握するために調査が行われる。プレゼンテータは、十分な人数が調査を完了するまで中断する。本方法は、ストロークデータを選別(フィルタリング)する(1106)。一実施例において、これは、受信した入力にあるルールを適用することで、分析モジュール530により自動的に実行される。別の実施例において、これは、入力された様々な表示のストロークをプレゼンテータに提示し、選択を可能にすることで、手動で行われてもよい。次に、第1のコンピュータ装置802は、選別されたストロークデータをプレゼンテータに表示する(1108)。プレゼンテータは、データを選別するために、概観のページ(図14E)を使用してもよいし、組み合わせの表示(図14E)を使用してもよい。この例の場合、プレゼンテータは、情報の選択を入力し、リアルタイムの結果により聴講者に送信する。本方法は、プレゼンテータから選択内容を受信し(1110)、本方法は、選択内容を携帯用コンピュータ装置804a−nに送信する(1112)。次に、本方法は、これがプレゼンテーションの終了であるか否かを判別する(1114)。終了でなかった場合、本方法はステップ1102−1114に戻り、要求、選別及びリアルタイムフィードバックのプレゼンテータへの提示に戻る。しかしながらプレゼンテーションが完了した場合、本方法は終了する。その結果に依存して、プレゼンテータは、最初に理解が得られていなかった何らかのマテリアルを選択してもよいし、あるいは残りのプレゼンテーションに進んでもよい。ミーティングの終了の際、プレゼンテータは、携帯用コンピュータ装置804a−nの全てにおいてなされたメモを受信し、その情報を使用して、アクションアイテムのリストを作成する、あるいは次のグループに対するプレゼンテーションを改善する。
図17を参照しながら、ストローク及び/又は画像の分析のための本発明による方法例を説明する。本方法は、メタデータを取得する又はリアルタイムでストローク又はメタデータを取得ることから始まる(1202)。例えば、教師がプレゼンテーションを行い、生徒(その場に居る生徒及び離れた場所にいる生徒)がメモを取る(ノートをとる)。生徒達がストロークを形成する際、特定のコンピュータ装置804a−nに固有の装置識別情報及び最後のストロークの時間が、教師の携帯用コンピュータ装置802に送信される。次に本方法は算出する分析メトリック又は分析の尺度(analytic measure)を決定し(1204)、ストロークデータを選別する(1206)。本方法は、ステップ1204において決定した分析メトリックによりストロークデータを処理する(1208)。そして、本方法は、分析メトリックの表示を生成し(1210)、分析メトリックの表示を携帯用コンピュータ装置802に表示用に送信する(1212)。
一実施例において、教師の携帯用コンピュータ装置802は、どの程度の割合の携帯用コンピュータ装置804a−nが、最後の2秒でストロークを追加しているかを算出し、この割合が、教師の携帯用コンピュータ装置802に表示されてもよい。教師は、この情報をリアルタイムで使用してスライドの変更を遅らせたり停止することを決定しながら、生徒が追いつけるように喋る。教師は、提示したスライドとともにこの情報を使用して、講義のどの部分で最も多くのメモが取られたかを確認する。同じ情報を試験の後に使用して、ある問題に不正解であった生徒が、その問題の答えに最も有効であるプレゼンテーションの部分についてノートをとっていたか否かを判定してもよい。試験がパッドを用いて行われた場合、ストローク時間及び場所の情報が生徒全員から収集可能である。ある問題に関する領域における最後のストロークと、別の問題に関する領域における最後のストロークとの間の時間が、その問題に対する時間を決定するために使用されてもよい。教師は、核問題に費やされたと推定される時間の分布を眺め、難しすぎた問題の有無を検討し、あるいは十分に時間がかけられなかった問題の有無を検討する。
ストロークが他のパッド又は装置において見えるように、ストロークを転送することに加えて、ストロークファイルから概要情報又はサマリ情報を収集することが有用である。これは、本発明により処理可能な分析尺度(analytic measure)の一例である。例えば、幾つかの政府のフォームは、そのフォームを完了するのにかかった時間の見積もりを要求する。ストロークデータが利用可能な場合、最後のストロークの時間マイナス最初のストロークの時間を、そのフォームを仕上げるのに要した時間の見積もりとして使用することができる。あるいは、最後のストロークの時間マイナスフォームを最初に閲覧した時間が、見積もりとして使用されてもよい。多数の事例からそのような情報を収集することで、かかった時間の正当性を判別することも有用である。
場合によっては、実際のストローク(の情報)を送信せずに、ストロークの時間及びストロークの場所を送信することが有用であるかもしれない。各ストロークを境界枠で置換することで、ストローク分析を実行すること及びプライバシを保護することが可能である。これは、フォームのどのセクションに多くの時間が費やされたかを、各セクションに書かれた実際の情報を提示することなく詳細に分析できるようにする。当然に、調査用フォームの場合、境界枠を質問のサイズに拡張し、一連のチェックボックスの中でどの選択肢が選択されたかを明らかにしないようにすることが有用である。
フォームの複雑さ又は教育マテリアルの複雑さを判定する際に、他のフォームの分析が有用である。ページ当たりのストローク数や、ページの或る領域当たりのストローク数等に関するサマリ(概要)情報は、作業した多数のステップが存在する場所を示す。
本発明による分析尺度は、特定の領域内のストローク数、特定の領域におけるストロークを伴うフォーム数、1秒当たりに書き込まれたストローク数、「消しゴムツール(eraser)」を使用した頻度(スタイラスがイレーサを持っていることを仮定している。あるいは、パッドが、消去ボタンのような消去を示す方法を使用できることを仮定している。)、ある領域内で消した回数、ストローク同士の間の時間、どのパッドが「使用中」であり、どのパッドが使用されていないか(これは、特定の期間内に記録されたストロークにより表現される)等を含むが、これらに限定されない。ログ情報を他の携帯用コンピュータ装置804a−nに公表する複数のコンピュータ装置804a−nを使用する場合、クロックがたとえ正確でなかったとしても、ストロークが様々な携帯用コンピュータ装置804a−nに書き込まれた順番を把握できることに、留意を要する。さらに、各場所におけるストロークのロケーションのパターンを監視することで、誰が誰からコピーしたかを検出できる。例えば、生徒Aがあるエリアに書き込むと、少し後で生徒Bが常に同じエリアに書き込んでいることが分かる。
本発明による分析尺度は、加速度計や、マイクロフォン及びボタン押下等のような他のセンサによる情報を含んでもよい。パッド202は、磁気近接センサ(magnetic proximity sensor)、温度センサ、容量近接センサ(magnetic proximity sensor)、加速度計、光センサ、ボタン、電力スイッチ及び/又はカメラ等を含んでいてもよい。これらのセンサからの情報は、メタデータとして複合文書とともに送信されてもよいし、又は送信されるストロークに関するコンテキスト情報として送信されてもよい。これらのセンサからの情報は、分析するためにストローク情報と組み合わせられてもよい。例えば、試験の最中にカンニングするために受け渡されたパッド202は、ほとんど机の上に置いたままのものよりも顕著に異なる加速度計信号を示すことになる。
本発明は、生徒のワークシートが使用される如何なる状況においても特に適用可能である。例えば、教師が、自身のパーソナルコンピュータ108におけるワードプロセシングプログラムを使用して2ページのワークシートを準備する。教師は、ワークシートを教師の携帯用コンピュータ装置802に「印刷」する(ロードする)。一実施例において、これは、「プリンタドライバ」のソフトウェアとともに実行され、このソフトウェアは、プリンタを選択するのと同じ方法で携帯用コンピュータ装置802を選択する。ソフトウェアは、携帯用コンピュータ装置802に必要なフォーマットを作成し、それを携帯用コンピュータ装置802に送信する。あるいは、ワードプロセシングプログラムが、PDFやXPFのような何らかの中間的なフォーマットを印刷し、そのフォーマットは、画像及びストロークを保存することができるフォーマットに変換され、携帯用コンピュータ装置802に転送される。教師の携帯用コンピュータ装置802は教室に持って行かれ、ある場所において、教師は教師の携帯用コンピュータ装置802から生徒の携帯用コンピュータ装置804a−nへワークシートを配る。一実施例において、これは、ボンジュール(Bonjour)を用いて行われてもよいし、教室内にある適切な全ての携帯用コンピュータ装置を特定する他のディスカバリプロトコルを利用して行われてもよい。
生徒がワークシート上で作業を始めると、教師は、「概観画像(overview image)」を使用して、生徒全員が適切に進展しているか否かを判断する。この画像を生成するため、教師の携帯用コンピュータ装置802は、ワークシートを受信してページに付加するストロークを取り込む携帯用コンピュータ装置804a−nと通信する。多数の生徒が存在する場合、1つより多い数の概観画像が存在してもよい。例えば、最初の9人の生徒が、スケール調整され、スケール調整された背景画像に加えられたスケールを有し、そのスケールは、教師の携帯用コンピュータ装置802の一部に表示される。そして、次の9人の生徒は、後続のページに表示されるストロークを有する。
教師は、1人以上の生徒のページを全画面サイズで見るように選択してもよく、特に多くのストロークがページに追加されていなかった場合、そのように選択する。教師の携帯用コンピュータ装置802は、全画面に背景のページを表示し、その後に1人の生徒のストロークを追加することで、独立したページ表示を形成する。生徒の進捗に応じて、教師は、クラス全体に追加的な指示を出してもよいし、その1人の生徒を支援してもよいし、おそらくはその生徒のページにストロークを追加してもよいし、生徒の携帯用コンピュータ装置804a−nにそれらのストロークを返送してもよい。
ワークシートの第2ページは、地図を含み、生徒は、興味のあるものに丸を描くように指示されている。教師は、組み合わせの画像を使用して、全てのストロークの集合を眺め、その表示をクラスに示し、クラスのほとんどがある特定のアイテムを選択しているが、少数の生徒により見出された同等に良い代替案も利用可能であることを指摘する。
授業の後、教師は、ストロークの時間情報(タイミング情報)を検討し、1つの問題に過剰な時間が費やされていることを確認する。教師は、問題を少し簡明化し、次のクラスでは他の問題にもっと多くの時間をさけるようにする。
ストローク及び他のセンサ入力に関する情報は、ハードウェア開発者、フォーム設計者又はアプリケーション開発者等のようなディベロッパにより使用されてもよい。特定のコンピュータパッド202が、ディスプレイの或る部分においてストロークを決して報告していなかった場合、それは、ディスプレイのその部分の不具合、ストローク取得回路の部分の不具合、又はストローク取得機能部の調整不具合(校正不具合)等を示しているかもしれない。同様に、コンピューティングパッド202が複数の人々により使用され、あるパッドが一方の側よりも多いストロークを一貫して示していた場合、問題が示されているか否かの検査を行うことが有用である。様々なフォームが、複数のコンピューティングパッド202において使用可能であり、フォームの所定部分の場所が、多かれ少なかれその場所に記入させる傾向があるか否かを判定するために、収集したストロークが使用される。同様に、ストローク情報を使用して、ユーザが、意図されたストローク取得枠(ボックス)の外側に書き込み行う傾向があるか否かを判定してもよい(外側に書き込みを行う傾向がある場合、おそらくは、その分のサイズを大きくする必要があることを示している。)。
本発明の実施例に関する以上の説明は、説明及び理解を促すために提示されている。それは網羅的であることを意図しておらず、説明された厳密な形式に本発明を限定することも意図されていない。上記の教示に照らせば、多くの修正及び変形が可能である。本発明の範囲は、詳細な説明によってではなく、本願の特許請求の範囲によって規定されることが、意図されている。当業者に理解されるように、本発明は、本発明の精神又は本質的特徴から逸脱することなく、他の特定の形式により実現されてもよい。同様に、モジュール、ルーチン、特徴、属性、方法、及び他の形態等の特定の名称や区分けは、必須でもなく本質的なものでもない。本発明又はその特徴を実現する仕組みは、異なる名称、異なる区分け及び/又は異なるフォーマットを備えていてもよい。さらに、当業者にとっては明らかであるように、本発明に関するモジュール、ルーチン、特徴、属性、方法及び他の形態は、ソフトウェア、ハードウェア、ファームウェア又はそれらの任意の組み合わせにより実現可能である。また、本発明による要素がモジュールにより実現される場合、モジュールはソフトウェアとして実現され、その要素は、スタンドアローンプログラムとして、より大きなプログラムの一部として、複数の別個のプログラムとして、静的に又は動的にリンクされたライブラリとして、カーネルローダブルモジュール(kernel loadable module)として、デバイスドライバとして実現可能であり、及び/又はコンピュータプログラミングの技術分野における当業者にとって現在知られている又は将来知られるようになる全ての任意の他の方法によって実現可能である。さらに、本発明は、何らかの特定のプログラミング言語で実現されることに限定されず、何らかの特定のオペレーティングシステム夜環境にも限定されない。したがって、本願による開示は、例示的なものであることを意図しており、添付の特許請求の範囲を規定する本発明の範囲を限定するようには意図されていない。
以下、本発明により教示される手段を例示的に列挙する。
(付記1)
ストロークのアグリゲーション及び分析を行う方法であって、
背景画像を含む第1フォーマットのメッセージを複数の携帯用コンピュータ装置に送信し、
前記背景画像に関連付けて入力されたストロークデータを含む複数の応答メッセージを、前記複数の携帯用コンピュータ装置から受信し、
前記複数の応答メッセージ中のデータを寄せ集めることでアグリゲートデータを生成し、
前記アグリゲートデータを分析することで分析データを生成し、
前記分析データの視覚的表現を生成し、
前記視覚的表現を表示するステップ
を有する方法。
(付記2)
前記第1フォーマットのメッセージは、複合文書を含む電子メールであり、該複合文書は、前記複数の携帯用コンピュータ装置により表示される前記背景画像を含む、付記1記載の方法。
(付記3)
前記複数の応答メッセージは、ストロークデータを含む電子メールメッセージである、付記1記載の方法。
(付記4)
前記複数の応答メッセージは、画像データを含む電子メールメッセージである、付記1記載の方法。
(付記5)
当該方法が、携帯用コンピュータ装置において実行される、付記1記載の方法。
(付記6)
前記複数の携帯用コンピュータ装置からの受信、前記アグリゲートデータの生成、前記分析データの生成及び前記視覚的表現の生成が、ストローク及び画像ワークフローサーバにより実行され、当該方法は、前記視覚的表現を含む表示メッセージを携帯用コンピュータ装置に送信するステップをさらに有し、前記視覚的表現の表示が、前記携帯用コンピュータ装置により実行される、付記1記載の方法。
(付記7)
当該方法は、ストロークデータを要求するために前記複数の携帯用コンピュータ装置へポーリング信号を送信するステップをさらに有し、前記複数の応答メッセージは、前記ポーリング信号に応答して送信される、付記1記載の方法。
(付記8)
当該方法は、前記ポーリング信号に対する応答を送信した前記複数の携帯用コンピュータ装置のリストを維持するステップをさらに有する、付記1記載の方法。
(付記9)
前記アグリゲートデータを生成する際、前記複数の応答メッセージからストロークデータを抽出し、前記複数の携帯用コンピュータ装置から受信したストロークデータを保存する、付記1記載の方法。
(付記10)
少なくとも1つの前記応答メッセージが、前記複数の携帯用コンピュータ装置の内の何れかのセンサからの情報を含み、
前記アグリゲートデータを生成する際、前記アグリゲートデータのコンテキストを判別し、
前記アグリゲートデータを分析する際、前記ストロークデータに加えて前記コンテキストを使用する、付記1記載の方法。
(付記11)
前記アグリゲートデータを分析することで分析データを生成する際、ストロークを追加するのにかかった時間の長さを判定する、付記1記載の方法。
(付記12)
前記アグリゲートデータを分析することで分析データを生成する際、ストロークデータを送信した前記複数の携帯用コンピュータ装置の占める割合を判定する、付記1記載の方法。
(付記13)
前記アグリゲートデータを分析することで分析データを生成する際、画像のあるセクションにストロークを入力するのにかかった時間の長さを判定する、付記1記載の方法。
(付記14)
前記アグリゲートデータを分析することで分析データを生成する際、前記複数の携帯用コンピュータ装置からの前記ストロークデータをまとめる、付記1記載の方法。
(付記15)
前記アグリゲートデータを分析する際、前記ストロークデータを前記視覚的表現に対してスケール調整する、付記1記載の方法。
(付記16)
前記視覚的表現は、前記複数の携帯用コンピュータ装置におけるものとは独立した、ストロークデータの表示である、付記1記載の方法。
(付記17)
前記視覚的表現は、2つ以上の複数の携帯用コンピュータ装置からのストロークデータを組み合わせた表示である、付記1記載の方法。
(付記18)
前記視覚的表現は、2つ以上の複数の携帯用コンピュータ装置からのストロークデータを全体的に概観する表示である、付記1記載の方法。
(付記19)
前記複数の応答メッセージは、前記ストロークデータに関するタイミング情報を含む、付記1記載の方法。
(付記20)
前記視覚的表現の表示は、各自の携帯用コンピュータ装置にストロークが追加される際の順序でストロークをそれぞれ再描画することにより行われる、付記19記載の方法。