(57)【要約】  マルチモーダルタッチスクリーン対話装置、方法、及び、システム（ＭＴＩ）は、複数ユーザによる、マルチモーダルなタッチスクリーンを介したジェスチャー入力をＭＴＩコンポーネントを介して変換し、ユーザによりカスタマイズされた計算結果を表示する。一実装例において、ＭＴＩはタッチスクリーン上のユーザタッチイベントの情報を含むセンサ信号を、タッチスクリーンセンサから取得する。ＭＴＩは当該センサ信号からユーザタッチイベントの位置座標を決定する。ＭＴＩは当該センサ信号からユーザタッチイベントのタッチ種別を識別し、ユーザタッチイベントのタッチ種別を用いてユーザタッチスクリーンジェスチャーを決定する。ＭＴＩはメモリから、当該ユーザタッチスクリーンジェスチャーと関連付けられたユーザコマンドを検索し、プロセッサを介して、当該ユーザコマンドを実行する。【選択図】図１Ａ
2014507726.tif 000002
【特許請求の範囲】
【請求項１】
マルチモーダルタッチスクリーン対話をプロセッサにより実現する方法であって、
タッチスクリーンセンサから、タッチスクリーン上のユーザタッチイベントの情報を含むセンサ信号を取得する工程と、
プロセッサを介して、前記センサ信号から前記ユーザタッチイベントの位置座標を決定する工程と、
前記センサ信号から前記ユーザタッチイベントのタッチ種別を識別する工程と、
前記プロセッサを介して、前記ユーザタッチイベントの前記タッチ種別を用いてユーザタッチスクリーンジェスチャーを決定する工程と、を備えることを特徴とする方法。
【請求項２】
メモリから、前記ユーザタッチスクリーンジェスチャーと関連付けられたユーザコマンドを検索する工程と、
前記プロセッサを介して、前記ユーザコマンドを実行する工程を含むことを特徴とする請求項１に記載の方法。
【請求項３】
メモリから、所定の時間ウィンドウの範囲で、以前のユーザタッチイベントを検索する工程と、
前記以前のユーザタッチイベント及び前記ユーザタッチスクリーンジェスチャーを用いてジェスチャーパターンを識別する工程を含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記ユーザタッチスクリーンジェスチャーと関連付けられた前記ユーザコマンドの検索が、前記識別されたジェスチャーパターンに基づいて行われることを特徴とする請求項３に記載の方法。
【請求項５】
識別された前記ユーザタッチイベントの前記タッチ種別に基づき、前記ユーザタッチスクリーンジェスチャーに関連付けられた前記ユーザコマンドに対する変更を識別する工程を有し、
前記プロセッサを介した前記ユーザコマンドの実行が、識別された前記タッチ種別に基づく前記ユーザコマンドに対する変更に基づいて行われることを特徴とする請求項２に記載の方法。
【請求項６】
前記ユーザタッチイベントが、指によるタッチとスタイラスによるタッチを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記ユーザタッチイベントが、複数指によるタッチとスタイラスによるタッチを含むことを特徴とする請求項６に記載の方法。
【請求項８】
マルチモーダルタッチスクリーン対話システムであって、
プロセッサ、及び、前記プロセッサと連絡を取り合うように配置され、プロセッサにより発行可能な命令を保持するメモリを備え、
前記プロセッサにより発行可能な命令が、
タッチスクリーン上のユーザタッチイベントの情報を含むセンサ信号を取得する命令と、
前記プロセッサを介して、前記センサ信号から前記ユーザタッチイベントの位置座標を決定する命令と、
前記センサ信号から前記ユーザタッチイベントのタッチ種別を識別する命令と、
前記プロセッサを介して、前記ユーザタッチイベントの前記タッチ種別を用いてユーザタッチスクリーンジェスチャーを決定する命令と、を含むことを特徴とするシステム。
【請求項９】
前記メモリが、
メモリから、前記ユーザタッチスクリーンジェスチャーと関連付けられたユーザコマンドを検索する命令、及び、前記プロセッサを介して、前記ユーザコマンドを実行する命令を保持することを特徴とする請求項８に記載のシステム。
【請求項１０】
前記メモリが、
メモリから、所定の時間ウィンドウの範囲で、以前のユーザタッチイベントを検索する命令、及び、前記以前のユーザタッチイベントと前記ユーザタッチスクリーンジェスチャーを用いてジェスチャーパターンを識別する命令を保持することを特徴とする請求項９に記載のシステム。
【請求項１１】
前記ユーザタッチスクリーンジェスチャーと関連付けられた前記ユーザコマンドの検索が、前記識別されたジェスチャーパターンに基づいて行われることを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記メモリが、
識別された前記ユーザタッチイベントの前記タッチ種別に基づき、前記ユーザタッチスクリーンジェスチャーに関連付けられた前記ユーザコマンドに対する変更を識別する命令を保持し、
前記プロセッサを介した前記ユーザコマンドの実行が、識別された前記タッチ種別に基づく前記ユーザコマンドに対する変更に基づいて行われることを特徴とする請求項９に記載のシステム。
【請求項１３】
前記ユーザタッチイベントが、指によるタッチとスタイラスによるタッチを含むことを特徴とする請求項８に記載のシステム。
【請求項１４】
前記ユーザタッチイベントが、複数指によるタッチとスタイラスによるタッチを含むことを特徴とする請求項１３に記載のシステム。
【請求項１５】
プロセッサにより発行可能なマルチモーダルタッチスクリーン対話命令を保持する、プロセッサにより読み取り可能な有形媒体であって、
タッチスクリーン上のユーザタッチイベントの情報を含むセンサ信号を取得する命令、
前記プロセッサを介して、前記センサ信号から前記ユーザタッチイベントの位置座標を決定する命令、
前記センサ信号から前記ユーザタッチイベントのタッチ種別を識別する命令、及び、
前記プロセッサを介して、前記ユーザタッチイベントの前記タッチ種別を用いてユーザタッチスクリーンジェスチャーを決定する命令を保持する媒体。
【請求項１６】
メモリから、前記ユーザタッチスクリーンジェスチャーと関連付けられたユーザコマンドを検索する命令、及び、
前記プロセッサを介して、前記ユーザコマンドを実行する命令を保持することを特徴とする請求項１５に記載の媒体。
【請求項１７】
メモリから、所定の時間ウィンドウの範囲で、以前のユーザタッチイベントを検索する命令、及び、
前記以前のユーザタッチイベントと前記ユーザタッチスクリーンジェスチャーを用いてジェスチャーパターンを識別する命令を保持することを特徴とする請求項１６に記載の媒体。
【請求項１８】
前記ユーザタッチスクリーンジェスチャーと関連付けられた前記ユーザコマンドの検索が、前記識別されたジェスチャーパターンに基づいて行われることを特徴とする請求項１７に記載の媒体。
【請求項１９】
識別された前記ユーザタッチイベントの前記タッチ種別に基づき、前記ユーザタッチスクリーンジェスチャーに関連付けられた前記ユーザコマンドに対する変更を識別する命令を保持し、
前記プロセッサを介した前記ユーザコマンドの実行が、識別された前記タッチ種別に基づく前記ユーザコマンドに対する変更に基づいて行われることを特徴とする請求項１６に記載の媒体。
【請求項２０】
前記ユーザタッチイベントが、指によるタッチとスタイラスによるタッチを含むことを特徴とする請求項１５に記載の媒体。
【請求項２１】
前記ユーザタッチイベントが、複数指によるタッチとスタイラスによるタッチを含むことを特徴とする請求項２０に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この特許に係る特許証開示文書は、種々の新規な革新（以下において、「開示」という。）を含む発明の側面を記載しており、且つ、著作権、マスクワーク、及び／又は、その他知的財産の保護を受ける内容を含んでいる。当該知的財産の夫々の所有者は、何人かが当該開示を複製することにつき、それが公開された特許庁のファイル／記録に存する限りにおいて、異議を有さないものとするが、そうでない場合は全ての権利を留保する。
【０００２】
優先権主張クレーム
この出願は、「ＡＰＰＡＲＡＴＵＳＥＳ，  ＭＥＴＨＯＤＳ  ＡＮＤ  ＳＹＳＴＥＭＳ  ＦＯＲ  ＭＵＬＴＩＭＯＤＡＬ  ＩＮＴＥＲＡＣＴＩＯＮＳ  ＷＩＴＨ  ＬＡＳＥＲ  ＬＩＧＨＴ  ＰＬＡＮＥ  ＴＯＵＣＨ  ＳＣＲＥＥＮＳ」と題する２０１１年２月８日に出願された米国特許仮出願第６１／４４０，５９１号（代理人整理番号２１４４５−００２ＰＶ）に対し、米国特許法第１１９条に基づく優先権を主張するものであり、上記出願の全体が引用により本願に明示的に組み込まれる。
【０００３】
本願に係る革新技術は、一般に、人とコンピュータの対話のための装置、方法、及びシステムに関し、特に、タッチスクリーンを介したマルチモーダル対話（ＭＵＬＴＩＭＯＤＡＬ  ＴＯＵＣＨＳＣＲＥＥＮ  ＩＮＴＥＲＡＣＴＩＯＮ、以降「ＭＴＩ」と称する）のための装置、方法、及びシステムを含む。
【背景技術】
【０００４】
電子ディスプレイは、ユーザに視覚情報を提供する。いくつかのコンピュータシステムは、電子ディスプレイにより提供される視覚情報に従って、ユーザに入力を提供する仕組みを備えている。例えば、コンピュータシステムはタッチスクリーンを含んでいてもよい。ユーザは、コンピュータシステムへの入力を提供する仕組みとして、タッチスクリーンの一部領域に圧力を加える。
【図面の簡単な説明】
【０００５】
添付の別表、及び／又は、図面は、本開示の下で、種々の限定されない発明の側面を例示するものである。
【図１Ａ】ＭＴＩのいくつかの実施形態において、タッチスクリーンを介したマルチモーダル対話の例を示すブロック図である。
【図１Ｂ】ＭＴＩのいくつかの実施形態において、タッチスクリーンを介したマルチモーダル対話の例を示すブロック図である。
【図２Ａ】ＭＴＩのいくつかの実施形態において、マルチモーダルタッチセンシングの例を示すブロック図である。
【図２Ｂ】ＭＴＩのいくつかの実施形態において、マルチモーダルタッチセンシングの例を示すブロック図である。
【図２Ｃ】ＭＴＩのいくつかの実施形態において、マルチモーダルタッチセンシングの例を示すブロック図である。
【図２Ｄ】ＭＴＩのいくつかの実施形態において、マルチモーダルタッチセンシングの例を示すブロック図である。
【図３】ＭＴＩのいくつかの実施形態において、光ベースのタッチ入力認識の一例を示すブロック図である。
【図４Ａ】ＭＴＩのいくつかの実施形態において、マルチモーダルタッチ処理（ＭＴＰ）の一例（例えば、マルチモーダルタッチ処理部４００）を示す論理フロー図である。
【図４Ｂ】ＭＴＩのいくつかの実施形態において、マルチモーダルタッチ処理（ＭＴＰ）の一例（例えば、マルチモーダルタッチ処理部４００）を示す論理フロー図である。
【図５】ＭＴＩのいくつかの実施形態において、タッチ座標決定（ＴＣＤ）の一例（例えば、タッチ座標決定部５００）を示す論理フロー図である。
【図６】ＭＴＩのいくつかの実施形態において、タッチ種別識別（ＴＴＰ）の一例（例えば、タッチ種別識別部６００）を示す論理フロー図である。
【図７Ａ】ＭＴＩのいくつかの実施形態において、タッチグループ解析（ＴＧＲ）の一例（例えば、タッチグループ解析部７００）を示す論理フロー図である。
【図７Ｂ】ＭＴＩのいくつかの実施形態において、タッチグループ解析（ＴＧＲ）の一例（例えば、タッチグループ解析部７００）を示す論理フロー図である。
【図８】ＭＴＩコントローラの実施形態を示すブロック図である。
【０００６】
図中に示す参照符号の最初の番号は、夫々、当該参照符号が導入される、及び／又は、詳細に説明される図番号を表している。つまり、参照符号１０１についての詳細な説明は図１中にあり、及び／又は、図１において導入される。参照符号２０１は図２において導入される。
【発明を実施するための形態】
【０００７】
〈マルチモーダルタッチスクリーン対話（ＭＴＩ）〉
マルチモーダルタッチスクリーン対話装置、方法、及び、システム（ＭＴＩ）は、複数ユーザによる、マルチモーダルなタッチスクリーンを介したジェスチャー入力を変換し、ユーザによりカスタマイズされた計算結果を表示する。図１Ａ−Ｂに、ＭＴＩのいくつかの実施形態において、タッチスクリーンを介したマルチモーダル対話の例を示すブロック図を示す。図１Ａを参照すると、いくつかの実施形態において、ＭＴＩはタッチスクリーン１００を備える。例えば、ユーザが、ＭＴＩにより提供されるディスプレイに、指又は手、又はスタイラス（タッチペン）のような物体でタッチする構成としてもよい。タッチスクリーンは、視覚的表示を行う電子ディスプレイであってもよく、表示領域内におけるタッチとその位置を検出し、検出されたタッチを処理された対話に変換し、結果を表示することができる。ＭＴＩは、それによって仮想オーバレイまたは表面がユーザ入力を受け取る仕組みを提供してもよい。ユーザ入力は、備えられた、又はディスプレイをホスティングする所定の表面に入り、対話又はタッチする。いくつかの実装では、タッチスクリーンは、タッチスクリーンまたはその周辺の僅かな物理的な周辺環境の変化を検知するように設計されたセンサが輪郭に設けられた、或いは当該センサで支持されたフレームを備えてもよい。センサは、定義された表面上における種々の対象物との接触を、空間的、及び時間的に検知、追跡してもよい。いくつかの実装では、タッチスクリーン面は、例えば液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、背面投影、Light-Emitting-Diode（ＬＥＤ）、Organic Light-Emitting-Diode（ＯＬＥＤ）、及び／又は、これらと同種のデジタルディスプレイ上のオーバレイを含んでいてもよいが、これらに限られるものではない。他に、非デジタルディスプレイとして、例えば、不規則形状の或いは曲面の壁面をタッチスクリーン面として具現化することもできる。いくつかの実施形態では、ＭＴＩは、一のディスプレイ上の二以上の異なるタッチイベントを同時に検知し、解釈するように設計されたマルチタッチスクリーンを提供してもよい。当該マルチタッチスクリーンは、二本以上の指によって実現される様々なジェスチャーを解釈することができるものを含む。ＭＴＩは、ここで議論される様々なタッチ検出方式及び追跡方式の何れかを用いてマルチタッチ・タッチスクリーンを実装してよい。これにより、ＭＴＩはジェスチャー解釈が可能となり、表示された内容に対し、多種の上等で洗練されたユーザ対話を提供する。いくつかの実施形態では、ＭＴＩは、単一のユーザによる単一種類の入力（例えば、スタイラス入力１０１ａ、指入力１０１ｂなど）を提供する。いくつかの実施形態では、ＭＴＩは、単一のユーザによる複数の入力タッチの同時入力（例えば、複数のスタイラス入力１０１ｃ、スタイラスと指のハイブリッド入力１０１ｄ、複数指による入力１０１ｅ、複数手と複数指による入力１０１ｆ、複数指とスタイラスによるハイブリッド入力１０１ｇ、及び／又は、同様の組み合わせ等）を提供する。
【０００８】
図１Ｂを参照すると、いくつかの実施形態では、ＭＴＩは、複数ユーザ（例えば、ユーザ１：１１０ａ、ユーザ２：１１０ｂ、ユーザ３：１１０ｃ）による、図１Ａを参照して上述したタッチスクリーン１００への複数入力の同時入力を提供する。いくつかの実施形態において、夫々のユーザは、ＭＴＩにより提供されたタッチスクリーン上に表示された別々の実行可能アプリケーション（例えば、アプリケーション１１１ａ、１１１ｂ、１１１ｃ）と対話している。この場合、ＭＴＩは（場合によっては同時に作業している）各ユーザによる（場合によっては同時に入力される）複数の入力の夫々を受け付け、区別し、一意に特定して、各ユーザによる当該入力をＭＴＩ上で対話中の対応するアプリケーションと関連付けてもよい。好ましい実施形態において、ＭＴＩは指入力とスタイラス入力が異種のタッチであるとスクリーンに触れたときに検知されるようにして、ユーザによる指入力とスタイラス入力を認識し、識別してもよい。この場合、ＭＴＩは、タッチスクリーンに表示されているアプリケーションのユーザインタフェースを適応させ、指で対話している場合にスタイラスで対話している場合と異なる動作をさせてもよい。いくつかの実施形態では、（例えば、ＭＴＩのタッチスクリーン上のユーザのジェスチャーの形が指とスタイラスとで同じであっても）ユーザが指又はスタイラスのどちらをアプリケーションとの対話のために利用しているか否かに応じて、当該アプリケーションによりユーザに提供される機能が変化してもよい。この一例として、描画アプリケーションにおいて、指タッチに基づくジェスチャーが消しゴムツールをユーザに提供する一方で、スタイラスを用いた同じジェスチャーが描画ツールをユーザに提供してもよい。いくつかの実施形態では、（例えば、指タッチではなく）スタイラスのタッチによりユーザコントロールが起動してもよく、指及びスタイラスを同時にジェスチャー内で用いる方法により定義される新規な複合型タッチジェスチャーが可能となる。いくつかの実施形態では、タッチスクリーンアプリケーションソフトウェア(又は「アプリ」)は、指又はスタイラスの何れか一方、又はその両方に基づいて実行される特定の追跡プロセスを、専用にするか、及び／又は、分割する。実例的な、限定されない例として、ＭＴＩ上で実行されるタッチスクリーンアプリケーションは、描画に指を用いる場合に、スタイラスを用いる場合に比して追加的なスムージングを適用する。
【０００９】
図２Ａ−Ｄに、ＭＴＩのいくつかの実施形態において、マルチモーダルタッチセンシングの例を示すブロック図を示す。図２Ａを参照し、多種多様な実施形態において、ＭＴＩは、タッチ検出のための様々な技術を利用したタッチスクリーンを備える。当該技術は、抵抗性／容量性膜、表示面に取り付けられたフレームを含んでなる「オーバレイ」、背面から表面を観察するカメラ、対象物が表示面の周辺を移動することに伴い発生する音響振動に基づいて当該対象物の位置を三角測量により求める音響センサ、を含むが、これらに限られるものではない。抵抗性／容量性タッチスクリーンを利用する実施形態では、センサは、弾性及び柔軟性が予め調整され、且つ、最適化済みのプラスチックポリマーで構成されていてもよく、例えば指のような静電気を帯びた物体の近傍で、又は当該物体の接触により、誘起される歪みに敏感な静電界を感知する。ＭＴＩは、拡張可能な感度範囲及び近接センシング能力を備えた抵抗性／容量性タッチスクリーンを提供してもよい。いくつかの実施形態において、オーバレイ面は圧力に敏感であり、表面に印加された力の大きさを測定してもよい。いくつかの実装例では、タッチスクリーンは、高リフレッシュレート（例えば、１２０Ｈｚ以上）で、曇りのない透明で高いコントラスト比を持つ、高解像度の画素センサの使用を含んでいてもよい。タッチスクリーンセンサは、自動的に較正されるか、又は、ユーザ／グループの嗜好、実行されるアプリケーション、タッチスクリーン周囲の環境条件等に従ってカスタマイズされてもよい。上述した種々の実装例は、複数モードを用いたタッチ対話を検出し、追跡し、解釈するタッチスクリーンに組み合わされてもよい。
【００１０】
いくつかの実装例では、レーザ光平面（Laser Light Plane: ＬＬＰ）、つまり、赤外光（ＩＲ）或いは他の光波が表示面に渡って投影され、対象物が投影された光波を遮ることにより、センサによりタッチ検出される。例えば、いくつかの実施形態では、タッチスクリーン２１０は表示面に赤外光源２１５及びセンサを組み合わせてもよい。赤外光源２１５は表示面に平行に光が出射するように取り付けられ、当該出射光及びその擾乱を観測するためにセンサが取り付けられる。いくつかの実施形態では、タッチスクリーン表示面は平坦面であってよいが、例えば円柱の一部分のように、ある種の曲率を有して、動作可能な程度の曲面であっても構わない。限定されることなく、実施形態は可視光を含む種々の電磁波の波長に対して動作可能である。
【００１１】
いくつかの実施形態では、一部表面の周囲に方形のフレーム２１１を設け、当該フレーム内に赤外光源及びセンサを組み込んでもよい。赤外光源は、複数の光源を（例えば、連続的に、等間隔で、或いは所定の参照点からみた角が等角度間隔になるように等）配置して、フレームの内側に実装してもよい。センサ（図２Ａの符号２１４）は、当該方形のフレームの二以上のコーナー部に配置してもよい。別の実施形態では、発光体とセンサが互いに向かい合って、適合した対をなすようにフレーム内に組み込んでもよい。例えば、フレームの一辺に複数の発光体を備え、その対向する辺に当該発光体に対応する複数のセンサを備えるものとしてよい。いくつかの実施形態では、タッチスクリーン周囲のフレームは、感度レベル、分解能、及び／又は、計時特性の異なるセンサの混成した組を備えてもよい。いくつかの実施形態では、例えば赤外ＬＥＤが一方向に配置される等、照度センサがセンシング面上に配置されてもよい。フレームは、既定の対話領域に渡って戦略的に配置された多様なセンサを備えていてもよい。いくつかの実施形態では、タッチスクリーンは、例えば相補型金属酸化膜物半導体（ＣＭＯＳ）及び赤外レーザダイオードを２次元的に配置する場合には、平面表面の外側にセンサを備えていてもよい。センサが平面表面の外側にある場合、タッチスクリーンと対話するに際して対象物、及び／又は、スタイラスが当該表面と物理的に接触する必要はなく、タッチスクリーンは、例えばモバイル機器や遠隔装置を介して遠隔から対話入力を受け取ることが可能となる。種々の実施形態において、タッチスクリーンと対話する物体は多数の形をとりえる。一実施形態において、検出される物体は、指、スタイラス、或いは、規則形状であれ不規則形状であれ予め定義されたパターンの遠位末端を有する部材であってもよい。
【００１２】
一実施形態において、タッチスクリーンは多様なセンサの出力から三角法により対象物の位置を決定してもよい。いくつかの実施形態では、タッチスクリーンとの対話のために赤外発光体を備えたスタイラスを使用してもよい。タッチスクリーンは当該赤外光スタイラスを高輝度の点として、（スクリーンの背後から測定するか、スクリーンの面内で測定する）光センサを介して検出する。いくつかの実施形態において、タッチスクリーンは指によるタッチ動作を反射または遮光により検出するために赤外光を出射する。いくつかのスクリーンは、スクリーンに触れた指が赤外光により照射され、光センサの輝点として検出できるように、タッチスクリーンの平面内に光を照射する赤外光源を内蔵していてもよい。
【００１３】
いくつかの実施形態では、タッチスクリーン周囲に設けられたオーバレイフレームは、表面に平行に照射する赤外光源、及び、対象物が定義された平面を割り込み、光がセンサの方向に反射した際に増加する輝度を検出する複数の光センサを備えてもよい。図２Ａに示すように、いくつかの実施形態では、タッチスクリーンパネルは指２１２及びスタイラス２１３からの入力を同時に受け付け、夫々を独立に追跡する。いくつかの実施形態では、センサ２１４はスタイラスからの発光又は指タッチによる反射光を検知する。そのような実施形態にあっては、スタイラス２１３により照射される光の強度は、指タッチによる反射光の強度、或いはタッチがない場合にスクリーン平面上方に照射される光の通常の強度よりも高輝度であってもよい。
【００１４】
いくつかの実施形態では、オーバレイフレームは、表面に平行に赤外光を照射する光源、及び、複数のセンサを備えてもよい。当該センサは、指などの対象物が赤外光源とセンサの間で当該表面と接触することによる光の遮りを検出する。図２Ｂに示すように、いくつかの実施形態では、遮断された光によりタッチを検出するタッチスクリーンを利用してよい。そのような実施形態にあっては、タッチイベント２２２がセンサ２２０により検出されると、発光又は透過光２２５の強度の減少により遮りを認識し、検出されたタッチイベントの位置を（例えばタッチプロセッサ２２１を介して）三角法により求め、数個のセンサによる遮断パターンに基づいて追跡してもよい。いくつかの実施形態では、区別アルゴリズムが、通常よりも有意に明るい位置（例えば、スタイラス２２３の光／ＲＦ波発光体がオンの場合）、或いは、通常よりも有意に暗い位置（例えば、指２２２がスクリーン面上方の光面を遮り又は減少させている場合）をセンサに検出するように指示してもよい。その場合、通常より明るいスクリーン対話はスタイラスによるタッチ２２３と解釈され、通常よりも暗い場合は指によるタッチ２２２と解釈されることができる。いくつかの実施形態では、スタイラス２２３はＲＦ送信器を備え、タッチスクリーンのオーバレイフレームに組み込まれた二以上のセンサ２２３を用いた三角法によりスタイラスの位置を求めるものであってよい。
【００１５】
図２Ｃを参照して、いくつかの実施形態では、タッチスクリーンパネル２３０は、別のタッチスクリーン２３２−２３３とネットワークを介して通信しながら、指２３４及びスタイラス２３５からの入力を受け付ける。入力側タッチスクリーンパネル２３０で検出されたタッチ対話はタッチプロセッサ２３１により、追跡され、ネットワーク接続された全てのスクリーン２３０、２３２−２３３に表示されるように出力処理がされてもよい。いくつかの実施形態において、ネットワーク接続されたスクリーン２３２−２３３自身がタッチスクリーン２３０と同様の特徴を備えたタッチスクリーンであってもよい。いくつかの実施形態において、ネットワーク接続されたタッチスクリーンは、カメラベースのタッチ／近接入力スクリーン（例えば、表面を背にして配置されたカメラ、フロントマウントカメラ、後方カメラ）、抵抗性／容量性タッチスクリーンベースの入力スクリーン、及び／又は、それと同様の構成を含む若干の追加入力を備えていてもよい。
【００１６】
いくつかの実施形態では、スタイラス２３５はＩＲ  ＬＥＤ又はＲＦ送信器をその先端に備え、タッチスクリーン面から圧力を受け、又はタッチスクリーン面に近接することで、ＬＥＤ又はＲＦ送信器が随意に起動するものとしてよい。スタイラスは、外部から取り付けられた、又は内蔵されたスイッチを備えてもよい。当該スイッチは、スタイラスが対象物に対して動く又は押されると、ＬＥＤ又はＲＦ送信器を起動する電気回路を閉じる。いくつかの実施形態では、センサは複数のスタイラス同士を識別してもよい。例えば、ある既定のスタイラスの先端にＬＥＤを設け、タッチスクリーン面と接触している間は連続的に赤外光を出射するようにしておき、当該赤外光をディスプレイ面上に整列（面内で、背後から、前面の何れでもよい）したセンサにより検出、追跡してもよい。同一光を出射する複数のスタイラスについては、センサは一連の同種の輝点を区別することなく認識してもよい。いくつかの実施形態においては、特定のスタイラスのＩＲ  ＬＥＤを点滅するようにし、異なるスタイラスについては異なるパターン又は異なる周波数で点滅するようにして、センサにスタイラスを区別させてもよい。周波数パターンにより区別が可能になるので、いくつかのタッチスクリーンは精密な追跡の恩恵を受けうる。
【００１７】
いくつかの実施形態では、スタイラスの夫々が、タッチスクリーン面に近づく／接触するときに異なる空間的パターンの光を生成してもよい。適切に定義された大きさのスタイラス及びセンサ範囲を用いると、スタイラスがＩＲセンサに対して様々な位置にある場合にパターンが認識可能となる。いくつかの実施形態では、スタイラスは、センサのコントラストを上げるために、色つきの（複数の）ＬＥＤを備えてもよい。実施例としては輝度が時間と共に変化する二つのＬＥＤを備えてもよい。この場合、スタイラスは途切れることなくセンサに対して可視状態となる（暗くならない）が、「明るい」と「より明るい」との間の変調が異なる時間パターン又は異なる周波数で行われることにより、異なるスタイラスを区別してもよい。このようにして、複数のスタイラスの移動跡を互いに区別しつつ、高忠実度の位置追跡の維持が可能となる。複数のスタイラス同士を区別するタッチスクリーンのいくつかの実施形態において、タッチスクリーンは、スタイラス毎に異なる描画モード（色、線種など）を関連付けてもよい。他に、描画及び消去モード、ユーザ／スタイラスの関連付け、ターン制の制御、タッチスクリーンの一部に対する読み出し／書き込み／実行パーミッションが挙げられる。加えて、ユーザ毎に関連付けられた異なるスタイラスにより、どのユーザが何を描いているかを追跡してもよい。
【００１８】
図２Ｄに入力スタイラスの例を示す。例えば、入力部材２４３は所定の遠位端にＩＲ  ＬＥＤが設けられたスタイラスである。一実施形態では、入力部材は近位端にＩＲ  ＬＥＤの対を配してもよい。スタイラス入力部材は、スタイラスのオンオフ、及び／又は、追加的なスタイラスの機能２４２を制御するトグルスイッチを備えてもよい。タッチ式の直線方向に滑動するスライドが、追加的な制御、例えばタッチスクリーンに出力される線幅の制御を提供してもよい。一実施形態では、スタイラス２４１は無線通信ハードウェア、音声マイク、及び／又は、内蔵された生体認証ソフトウェアを備えてもよい。図２Ｄのスタイラスは、さらに、センサによる三角測量及び識別のためにＲＦ送信器／受信器を備えていてもよい。スタイラス識別の一実施形態において、異なる時間変調パターン毎にスタイラスＩＤが割り当てられてもよい。夫々のＩＤは、異なる正弦波又はステップパターンの時間周波数、ゼロ輝度からのオフセット値により関連付けられてもよい。さらに、スタイラスＩＤはモールス信号に類似の時間パターンを備えてもよい。実装例では、ＬＥＤの対をスタイラスの両端に備え、夫々の一端で異なった時間変調パターンを用いてもよい。一実施形態では、スタイラスペンの側部に配されたスイッチにより時間変調パターンを変化させ、これによりスタイラスＩＤを切り替える構成としてもよい。時間変調パターンの認識は、初めにタッチスクリーン面上のスタイラスを観測してから若干の遅れを伴って生じうる。しかしながら、高周波数パターンで、且つ、高フレームレートで動作するセンサであれば、当該遅れは非常に小さい。加えて、スタイラスの接触が最初に観測されたときは、その領域内で最も直近に観測されたスタイラスと同じＩＤを割り当ててよい。この初期の推定は、数フレーム後、観測によりスタイラスＩＤが確認又は訂正されるまで利用され、通常のタッチスクリーンの利用では、この初期推定は非常に高い時間割合で正しい可能性が高い。
【００１９】
一実施形態において、スタイラスはラジオ周波数（ＲＦ）送信アンテナ、及び／又は、受信器を、タッチスクリーンとの通信を確立するために備えてもよい。ＲＦ伝送を利用するスタイラスとタッチスクリーンの実装例では、送信器と受信器間で信号を伝送するためのラジオ波を用いてもよい。スタイラスアンテナが、スタイラス送信部に取り付けられていてもよい。当該スタイラス送信部は、スタイラス内に内蔵されているか、或いは、通信動作が可能な状態でスタイラスと接続されている。実装例によっては、タッチスクリーン側の受信器がスタイラスからの信号を受信できるように、スタイラス側の送信器を位置決めしてもよい。一実施形態では、スタイラス同士のＲＦ通信を一チャンネル、及び／又は、多チャンネルのシステムにより可能としてもよい。多チャンネルシステムの一実施形態は、ＲＦスタイラス、及び／又は、タッチスクリーン側の送受信器上のチャネルセレクタを含んでいてもよい。
【００２０】
図３に、ＭＴＩのいくつかの実施形態における、光ベースのタッチ入力認識の一例を示すブロック図を示す。このうち図３（ａ）−（ｂ）は、指タッチの検出が反射を測定することにより行う場合に、スタイラス及び指入力タッチに対して、出力であるＩＲ光の感度の一例を示すグラフである。一実施形態において、基準光レベルはＩＲ光源がオンであるときにセンサが検出した値として測定され、指タッチに係る閾値と、スタイラスタッチに係る閾値の２つの閾値が設定されてもよい。図３（ａ）−（ｂ）に示すようないくつかの実施形態では、両方の閾値が上記基準光レベルよりも高く、スタイラスに係る閾値を最も高くするとよい。
【００２１】
図３（ｃ）−（ｄ）は、指タッチの検出が光の遮りを測定することにより行う場合に、スタイラス及び指入力タッチに対して、出力であるＩＲ光の感度の一例を示すグラフである。一実施形態において、グラフは一次元に配列したカメラのうちのある一つが表面の面内における多数の角度につき測定した様子を示している。つまり、図の横軸Θは、例えば、ＩＲ撮像装置から見た角度を代表している。一実施形態において、閾値レベルは一定値とせず、むしろ、矢印に示すように動的に変化するものとしてもよい。例えば、ＭＴＩがノイズの大きい、一様でない基準光レベルを想定する場合、閾値を同じ形状であるが、オフセットを上方又は下方に設定してもよい。或いは、基準光レベルがタッチスクリーンの空間に渡って変動し、その上時間的にも変動している場合には、ＭＴＩが、グラフ内の夫々の位置で、基準光レベルに対するある割合（例えば、１２０％又は８０％）として閾値を計算することもできる。
【００２２】
例えば、いくつかの実施形態では、ＩＲ光源をオンにすると、センサの夫々が基準光レベルを測定し、定義してもよい。タッチスクリーンソフトウェアはこの基準光レベルよりも高い「閾値１」を設定し、輝度がこの閾値を超える場合にスタイラスによるタッチを検出してもよい。いくつかの実施形態では、基準光レベルよりも低い「閾値２」を設定し、輝度がこの第２の閾値未満となる場合に指によるタッチを検出してもよい。限定されることなく、当該閾値１及び２はセンサ毎に異なる値が設定され、センサの検出範囲がスクリーン面に沿った空間位置の範囲に渡るものであれば、空間的に分布していてもよい。これにより、基準光レベル、及び、当該基準光レベルより高い閾値及び低い閾値は、夫々、非一様となりうる。タッチオーバレイソフトウェアの較正は、中性の（指又はスタイラスとの接触がない）場合に中間値を表すように設定される。一実施形態では、タッチスクリーンは複数種の対象物（例えば、指とスタイラス）によるタッチ対話を検知し、解釈し、区別し、さらに二以上の同種の対象物（例えば、複数の異なるスタイラス）のタッチ対話について、それらが単一のユーザによるものか複数のユーザによるものかを解釈、区別してもよい。以降において詳細に説明されるが、一実施形態では、タッチスクリーンはここで説明された物理検出モードの何れか１つ、或いは複数の組み合わせにより実装されてもよい。好ましい一実施形態において、タッチスクリーンは少なくとも光学式タッチ検出、或いはラジオ周波数信号検出と光学式検出の組み合わせにより実装されてもよい。
【００２３】
図４Ａ−Ｂに、ＭＴＩのいくつかの実施形態において、マルチモーダルタッチ処理（ＭＴＰ）の一例（例えば、マルチモーダルタッチ処理部４００）を示す論理フロー図を示す。図４Ａを参照すると、いくつかの実施形態において、ユーザがＭＴＩのタッチスクリーンに対してタッチ入力を与える（４０１）。例えば、ユーザは一以上の指タッチ、一以上の光／ＲＦ発光スタイラス、或いはこれらの任意の組み合わせを利用できる。タッチスクリーンが光ベースのユーザタッチ検出方式を利用する実施形態の場合、タッチスクリーンセンサが、ユーザタッチにより生じた光レベルの変動（増加又は減少）を検出する（４０２）。当該検出された変動を用いて、タッチスクリーンセンサは光強度信号を生成し（４０３）、当該光強度信号を一以上のタッチ処理（「タッチプロセッサ」）へ与える。例えば、センサは銅線のようなアナログ通信チャネルを介して光強度信号を伝送してもよい。その後、データ収集ボード(Data Acquisition Board)を用いたデジタルサンプリングが行われる。他の例として、センサは、例えば（保護された）HyperText Transfer Protocol (HTTP(S))を利用し、ネットワークを介してデータパケットを伝送してもよい。タッチプロセッサは、光強度信号を取得すると、当該光強度信号の変動の様子からユーザタッチの位置座標を決定する（４０４）。例えば、タッチプロセッサはタッチ座標決定部（一例としては、以降において図５を参照して後述されるＴＣＤ５００）を実行する。この計算に基づき、タッチプロセッサは、例えば図７中の７０１に示されている座標のような、データを生成する。タッチプロセッサは、一タッチ入力に対し、座標の夫々（｛ｘ，ｙ，ｚ｝）を設定する（４０５）。いくつかの実施形態では、タッチプロセッサは、ユーザによるタッチ入力毎にその種別（指によるものか、スタイラスによるものか等）を識別してもよい（４０６）。例えば、タッチプロセッサはタッチ種別識別部（一例としては、以降において図６を参照して後述されるＴＴＩ６００）を実行してもよい。この計算に基づき、タッチプロセッサは、例えば図７中の７０１に示されているようなタッチ種別のデータを生成する。いくつかの実施形態では、タッチプロセッサは、ユーザによるどの複数のタッチ入力を単一ジェスチャーの一部として一グループにまとめるべきか（例を挙げると、二つの指と一つのスタイラスによるタッチを、一人のユーザによる単一ジェスチャーとみなすべきか）を判断してもよい（４０７）。例えば、タッチプロセッサはタッチグループ解析部（一例としては、以降において図７Ａ−Ｂを参照して後述されるＴＧＲ７００）を実行してもよい。この計算に基づき、タッチプロセッサは、例えば図７中の７０５に示されているようなタッチグループのデータを生成する。ユーザのジェスチャーを識別するに際して、タッチプロセッサはデータベースに対し、所定の時間ウィンドウの範囲で、ジェスチャーシーケンスの一部として組み合わせることのできる以前のタッチ入力グループの検索要求（クエリ）を生成する（４０８）。例えば、４指のスワイプ動作は同時に行われるジェスチャーとは認識されないかもしれない。むしろ、当該ジェスチャーはユーザの４指の動きを有限の時間ウィンドウで追跡��ることにより識別されうる。また別の例では、あるジェスチャーは２つの異なったユーザタッチの組（例えば、２指タップとスタイラスによるタップなど）を必要とするかもしれない。検索要求に基づき、データベース／メモリはジェスチャーシーケンスを識別するために以前のタッチ入力の組を与える（４０９）。例えば、タッチプロセッサは、ＳＱＬ（Structured Query Language）コマンドが組み込まれたＰＨＰ（Hypertext Preprocessor）スクリプトを、以前のタッチ入力の組をリレーショナルデータベースから探索するために利用してもよい。以前のタッチ入力の組を用いて、タッチプロセッサはタッチ入力グループからジェスチャーパターン／シーケンスを生成する（４１０）。いくつかの実施形態において、タッチ入力グループの位置座標に基づいて、タッチプロセッサはジェスチャーパターン／シーケンスの夫々にユーザＩＤ（おおよそ当該空間位置にいることが分かっているユーザ（例えば、カメラによる顔認識を用いる場合、そのタッチスクリーンの位置のユーザログイン等）、或いは当該おおよその位置で操作された他のジェスチャーシーケンスに割り当てたものと同じランダムＩＤ）のタグを付けてもよい。夫々のジェスチャーパターン／シーケンスにつき、タッチプロセスはデータベース／メモリに当該ジェスチャーパターン／シーケンスと関連付けられているユーザコマンドを検索させる（４１２）。これを受け、データベース／メモリは要求されたユーザコマンドを提供し、当該ユーザコマンドがその実行のためにプロセスキューに保持される。
【００２４】
図４Ｂを参照すると、いくつかの実施形態において、タッチプロセッサは（例えば、図４Ａを参照して上述した手順により随意に生成される）プロセスキューからユーザコマンドを選択してもよい（４１４）。任意で、タッチプロセッサはユーザコマンドに関連付けられたジェスチャーパターンを検索する要求を生成してもよい（４１５）。これを受け、データベース／メモリはジェスチャーパターンの一部を形成している以前のタッチ入力の組を提供する（４１６）。タッチプロセッサはジェスチャーパターンの一部を形成しているタッチ入力を抽出する（４１７）。例えば、タッチプロセスは、パーサを用いてデータを構文解析する。パーサの具体例については、以降において図８を参照して説明される。タッチプロセッサは、タッチ入力の組が、スタイラスと指のハイブリッド入力を含むか否かを判断する（４１８）。タッチ入力の組の何れかに、スタイラスと指のハイブリッド入力を含む場合（４１８でＹＥＳ分枝）、タッチプロセスはジェスチャーと通常間連付けられるユーザコマンドに対する変更を検索する要求を生成する（４１９）。データベース／メモリからユーザコマンドの変更を取得（４２０）後、タッチプロセッサは、例えばタッチスクリーン（或いはネットワークに接続された他のタッチスクリーン等）を介したプレゼンテーションのための映像／音響出力の生成等、（変更された）ユーザコマンドを実行する（４２１）。タッチプロセッサは、上記の手順をプロセスキューに保持されたユーザコマンド毎に行う（４２２）。
【００２５】
図５に、ＭＴＩのいくつかの実施形態において、タッチ座標決定（ＴＣＤ）の一例（例えば、タッチ座標決定部５００）を示す論理フロー図を示す。いくつかの実装例では、ＭＴＩのタッチプロセッサはタッチスクリーンセンサから光強度信号を取得して、当該光強度信号に符号化されているユーザタッチの座標を決定する（５０１）。タッチプロセッサは、光強度信号を用いてデジタルタッチマップを任意で作成してもよい（５０２）。例えば、タッチプロセッサは閾値未満の全ての画素を０とし、閾値を超える全ての画素を１として光強度信号の閾値化処理を行ってもよい。或いは、発光するスタイラス入力及び光を遮る指入力の何れかに対応する画素を１とし、他の全ての画素を０とするように、２つの異なる閾値を持たせてもよい。デジタルタッチマップを用いて、タッチプロセッサは夫々のタッチ（或いはその輪郭線）を識別できる。例えば、タッチプロセッサは夫々のタッチ或いはその輪郭線を識別するために画像分割アルゴリズムを用いてもよい（５０３）。（分割された）夫々のタッチイメージオブジェクトの識別後、タッチプロセッサは、当該分割されたタッチイメージの輪郭内を強度で重み付けした平均の位置に基づき重心を計算する（５０４）。タッチプロセッサは当該重心の座標｛ｘ，ｙ，ｚ｝を識別されたタッチの位置座標として保持し、これをタッチについての決定された位置座標として返す（５０６）。
【００２６】
図６に、ＭＴＩのいくつかの実施形態において、タッチ種別識別（ＴＴＰ）の一例（例えば、タッチ種別識別部６００）を示す論理フロー図を示す。いくつかの実施形態において、ＭＴＩのタッチプロセッサはタッチの夫々のタッチＩＤ及び位置座標（例えば、図５の５０６を参照）を取得して、タッチＩＤの夫々につきタッチの種別を識別する（６０１）。タッチプロセッサは元の光強度信号（例えば、図４Ａの４０３を参照）を取得してもよい（６０２）。タッチプロセスはタッチＩＤを選択し（６０３）、選択されたタッチＩＤに対応する位置座標を調べる（６０４）。当該位置座標に基づき、タッチプロセッサは、光強度信号を用いて、当該位置座標に対応する画素の元の強度レベル（又は、その周辺のあるウィンドウ内の画素における平均レベル）を調べる（６０５）。タッチプロセッサは、光強度レベルのサンプルを、検出されるべきスタイラス入力の閾値、及び／又は、検出されるべき指入力の場合の閾値と比較する。当該比較に基づいて、タッチプロセッサはスタイラス入力と指入力の何れかとして、タッチ種別を識別する（６０６）。タッチプロセッサはこの手順を取得したタッチＩＤ毎に行う（６０７）。タッチプロセスはタッチＩＤ及びタッチ種別をその後の処理のために返す（６０８）。
【００２７】
図７Ａ−Ｂに、ＭＴＩのいくつかの実施形態において、タッチグループ解析（ＴＧＲ）の一例（例えば、タッチグループ解析部７００）を示す論理フロー図を示す。図７Ａを参照すると、いくつかの実装例において、ＭＴＩのタッチプロセッサはタッチの夫々についてタッチＩＤ及び位置座標を取得し（７０１（挿入図を参照））、一以上のユーザによる複数のタッチのうち、どれかが単一のジェスチャー又はジェスチャーパターン／シーケンスの一部としてグループにまとめられるかを解決する。タッチプロセッサは位置座標を用いてタッチ入力のペア夫々についてペア間の距離を計算する（７０２（挿入図の距離行列を参照））。タッチプロセッサは閾値を越える全ての行列要素を０とし、閾値未満の全ての行列要素を１として距離行列の閾値化処理を行ってもよい。これにより、いくつかの実施形態では、他のタッチと（単一のジェスチャー、パターン、又はシーケンスの一部といえるために必要な閾値距離よりも短いと評価され）十分に近い位置にあるタッチのみが１となる。近接行列（７０３（挿入図を参照））の対角成分は、タッチが自身の近傍にあるので常に１である。したがって、タッチが孤立してあれば、そのＩＤに対応する対角要素は１となり、対応する列における他の全ての要素は０となる（挿入図の第４列を参照）。図７Ｂを参照して、いくつかの実装例では、タッチプロセッサは７０３の近接行列を近接ペアを構成するタッチの識別に利用してもよい（７０４（挿入図のペア行列を参照））。タッチプロセッサは少なくとも１つの共通のタッチＩＤを有する近接ペアを結合し（７０５）、タッチグループ（７０５の挿入図を参照）を生成する。タッチプロセスは当該タッチグループを、その後の処理のために返す（７０６）。
【００２８】
〈ＭＴＩコントローラ〉
図８に、ＭＴＩコントローラ８０１の実施形態を示すブロック図を示す。この実施形態では、ＭＴＩコントローラ８０１は、種々の技術によりコンピュータとの対話、及び／又は他の関連するデータを、集計し、処理し、保持し、検索し、提供し、識別し、指示し、生成し、照合し、及び／又は、対話が容易になるように促進する。
【００２９】
典型的には、人又はシステムであってもよいが、ユーザ８３３ａが、情報の加工を容易に行うために情報技術システム（例えば、コンピュータ）を使用する。同じく、コンピュータは情報の加工のためにプロセッサを利用する。そのようなプロセッサ８０３は、中央処理装置（ＣＰＵ）と呼ばれる。プロセッサの形式の１つにマイクロプロセッサがある。ＣＰＵは、命令として機能する２値の符号化された信号をやりとりするための連絡回路を使用し、当該命令により、様々な動作が可能になる。これらの命令は、動作可能であり、及び／又は、種々のアクセス可能なプロセッサやメモリ８２９の動作領域（例えば、レジスタ、キャッシュメモリ、ランダムアクセスメモリなど）内にある他の命令及びデータを含み、及び／又は、参照するデータ命令である。このような連絡可能な命令は、所望の動作を行うためのプログラム、及び／又は、データ構造として、ひとまとまりの束（例えば、バッチ命令）毎に保持され、及び／又は、転送される。これらの保持される命令コード群、例えばプログラムは、ＣＰＵ回路コンポーネント及び他のマザーボード、及び／又はシステムコンポーネントに所望の動作を行わせる。プログラムの一種としてオペレーティングシステムがあり、コンピュータ上のＣＰＵによって実行されうる。オペレーティングシステムは、ユーザがコンピュータ情報技術及び資源（リソース）にアクセスし、操作することを可能・容易にする。情報技術システムにおいて使用されているリソースは、データをコンピュータ内に入れる、及びコンピュータから取り出すための入出力機構、データを保存する記憶装置、及び、情報を処理するプロセッサを含む。これらの情報技術システムは、データベースプログラムにより容易となるが、後の検索、分析、操作のためにデータを収集するのに用いてもよい。これらの情報技術システムはユーザに様々なシステムコンポーネントへのアクセス、操作を可能とするインタフェースを提供する。
【００３０】
一実施形態において、ＭＴＩコントローラ８０１は下記の実在と接続、及び／又は、通信してもよいが、これに限られるものではない。ユーザ入力機器８１１からの一以上のユーザ、周辺機器８１２、任意の暗号化処理機器（暗号機器）８２８、及び／又は、通信ネットワーク８１３。例えば、ＭＴＩコントローラ８０１はユーザ８３３ａ、クライアント操作機器（例えば、８３３ｂ）と接続され、及び／又は、通信してもよい。クライアント操作機器としては、パーソナルコンピュータ、サーバ、及び／又は、種々のモバイル機器が挙げられるが、これに限られるものではない。モバイル機器としては、携帯電話、スマートフォン（例えば、Apple iPhone、Blackberry、Android OSを採用したスマートフォン等）、タブレットコンピュータ（例えば、Apple iPad、HP Slate、Motorola Xoom等）、電子ブックリーダ（例えば、Amazon Kindle、Barnes and Noble's Nook eReader等）、ラップトップコンピュータ、ノートブック、ネットブック、ゲーミングコンソール（例えば、XBOX Live, Nintendo DS, Sony PlayStation Portable等）、ポータブルスキャナ等が挙げられるが、これに限られるものではない。
【００３１】
ネットワークは通常クライアント、サーバ、及びグラフトポロジーにおける中間ノード間の相互接続及び相互運用を包含すると考えられている。この出願において、用語「サーバ」は一般的にコンピュータのほか、他の機器、プログラム、或いは通信ネットワークを介して遠隔ユーザの要求を処理し、応答するこれらの組み合わせを指すことに注意すべきである。サーバは自身の持つ情報を要求があったクライアントに提供する。ここで、用語「クライアント」は一般的にコンピュータのほか、プログラム、他の機器、ユーザ、及び／又は、要求を処理、作成し、通信ネットワークを介してサーバから応答を取得し、処理を行うことが可能なこれらの組み合わせを指す。コンピュータ、他の機器、プログラム、或いは、情報及び要求を処理し、手助けし、及び／又は、発信元のユーザから目的のユーザへ情報の伝達を促進するこれらの組み合わせは、通常「ノード」と呼ばれる。ネットワークは一般的に発信源から目的地への情報の転送を容易にすると考えられている。特に、発信元のユーザから目的のユーザへ情報の伝達を促進する役割を有するノードは通常「ルータ」と呼ばれる。ローカルエリアネットワーク (ＬＡＮ)、ピコネットワーク、ワイドエリアネットワーク(ＷＡＮ), 無線ネットワーク (ＷＬＡＮ)など、多くの形式のネットワークがある。例えば、インターネットは遠隔クライアントとサーバが互いにアクセスし、相互運用が可能なように多数のネットワーク間を相互接続するものとして、一般的に受け入れられている。
【００３２】
ＭＴＩコントローラ８０１は、例えばメモリ８２９と接続するコンピュータシステム部８０２のようなコンポーネントを備えたコンピュータシステムに基づいていてもよいが、これに限られるものではない。
【００３３】
〈コンピュータシステム部〉
コンピュータシステム部８０２は、クロック８３０、中央処理装置（「ＣＰＵ」及び／又は「プロセッサ」（本開示において、これらの語は特に断らない限り、互いに代替可能である））８０３、メモリ８２９（例えば、リードオンリーメモリ（ＲＯＭ）８０６、ランダムアクセスメモリ（ＲＡＭ）８０５など）、及び／又は、インタフェースバス８０７を備える。さらに、必ずしも必要ではないが、最も頻繁には、これらの全てが、導通した回路経路及び／又は転送可能な回路経路を有して、命令（例えば、２値の符号化された信号）が通信、動作、記憶を行うために伝達する一以上の（マザー）ボード８０２上に、システムバス８０４を通して相互接続され、及び／又は、連絡している。コンピュータシステム部は電源８８６と接続されていてもよい。例えば、任意であるが電源は内部にあってもよい。また、暗号化プロセッサ８２６、及び／又は、無線送受信機（例えば、ＩＣ）８７４がシステムバスと接続されていてもよい。他の実施形態では、暗号化プロセッサ、及び／又は、無線送受信機はシステム内部、及び／又は外部に設けられた周辺機器８１２として、インタフェースバスＩ／Ｏを介して接続されてもよい。無線送受信機はアンテナ８７５と接続されていてもよく、これにより種々の通信、及び／又は、センサプロトコルの無線による送受信が可能となる。例えば、アンテナは下記の無線送受信機と接続してもよい：Texas Instruments WiLink WL1283 transceiver chip（例えば、802.11n、 Bluetooth（登録商標） 3.0、FM、衛星利用測位システム（ＧＰＳ）（これによりＭＴＩコントローラはその位置を決定できる）の場合）、Broadcom BCM4329FKUBG transceiver chip（例えば、802.11n、Bluetooth 2.1 + EDR、FM等の場合）、Broadcom BCM4750IUB8 receiver chip（例えば、ＧＰＳ）、Infineon Technologies X-Gold 618-PMB9800 （例えば、2G/3G HSDPA/HSUPA通信の場合）等。システムクロックは典型的には結晶振動子を有し、コンピュータシステム部の回路経路に基準信号を生成する。クロックは典型的にはシステムバスと接続し、コンピュータシステム部内で相互接続する他のコンポーネントに利用する基準動作周波数を増加又は減少させる様々なクロック乗算器と接続する。クロック及びコンピュータシステム部内の種々のコンポーネントは、情報が組み込まれた信号をそのシステム内の全域に渡って駆動する。このような情報が組み込まれた命令のコンピュータシステム内全域における送信及び受信は、総称して通信と呼ばれる。これらの通信命令は、さらに、送信され、受信され、当該コンピュータシステム部を超えて、通信ネットワーク、入力デバイス、他のコンピュータシステム部、周辺機器等にまで及ぶ返信及び／又は応答を生じる。代替する実施形態として、上述のコンポーネントは他と互いに直接接続してもよいし、ＣＰＵと接続してもよいし、及び／又は、種々のコンピュータシステムによって例示される多数の変形を用いて体系化されていてもよい。
【００３４】
ＣＰＵは、ユーザ、及び／又はシステムが生成した要求を実行するためにプログラムコンポーネントを実行するのに適切な少なくとも１つの高速データプロセッサを含む。しばしば、プロセッサはそれ自身が下記に示す種々の専用の処理ユニットを内蔵しているが、これに限られるものではない：統合システム（バス）コントローラ、メモリ管理制御ユニット、浮動小数点ユニット、及び、グラフィックス処理ユニットやデジタル信号処理ユニット等。加えて、プロセッサは高速アクセスのアドレス可能なメモリを内蔵し、プロセッサ自身の外部にあるメモリ８２９のマッピング、アドレッシングが可能にされていてもよい。内蔵メモリは、高速レジスタ、種々のレベルのキャッシュメモリ（例えば、レベル１、２、３等）、ＲＡＭ等を含むが、これに限られるものではない。プロセッサはメモリアドレス空間の使用を通してこのメモリにアクセスしてよい。当該メモリアドレス空間は、命令アドレスを介してアクセス可能である。プロセッサは当該命令アドレスを構成し、復号化して、回路経路上のある記憶状態を有する特定のメモリアドレス空間へのアクセスを許可する。ＣＰＵは、AMDのAthlon、Duron、及び／又はOpteron、ARMのセキュアな組み込み・アプリケーションプロセッサ、IBM及び／又はMotorolaのDragonBall及びPowerPC、IBM及びSonyのCellプロセッサ、IntelのCeleron、Core (2) Duo、Itanium、 Pentium（登録商標）、Xeon、及び／又は、XScale、等のマイクロプロセッサであってよい。ＣＰＵは導電性の、及び／又は、転送可能な経路（例えば、（印刷された）電気回路、及び／又は、光学回路）を通して、命令のやりとりによってメモリと対話し、従来のデータ処理技術によって保持された命令（つまり、プログラムコード）を実行する。このような命令のやり取りはＭＴＩコントローラ内の通信、及び様々なインタフェースを通した外部への通信を容易にする。プロセシングの要請はより高速性、及び／又は、より大きな処理能力を決定付け、分散型プロセッサ（例えば分散型ＭＴＩ）、メインフレーム、マルチコア、並列、及び／又はスーパーコンピュータアーキテクチャを同様に採用してもよい。一方、配置の要請はより携帯性に優れることを決定付け、より小型の携帯情報端末（ＰＤＡ）を採用してもよい。
【００３５】
個別の実装例に依存するが、ＭＴＩの特徴はCAST R8051XC2マイクロコントローラ、Intel MCS 51（8051マイクロコントローラ）等のマイクロコントローラの実装によりなされてもよい。また、ＭＴＩのある特徴を実装するために、いくつかの特徴の実装に際して、ＡＳＩＣ（Application-Specific Integrated Circuit）、ＤＳＰ（Digital Signal Processing）、ＦＰＧＡ（Field Programmable Gate Array）、及び／又は、同種の組み込み技術のような組み込みコンポーネントに頼ってもよい。例えば、ＭＴＩコンポーネント集合体（分散していても、又はそうでなくても）及び／又は特徴の何れかは、マイクロプロセッサを介して、及び／又は、例えばＡＳＩＣ、コプロセッサ、ＤＳＰ、ＦＰＧＡ等の組み込みコンポーネントを介して実装されてもよい。一方で、ＭＴＩのいくつかの実装が、様々な特徴又は信号処理を行うために構成され、使用される組み込みコンポーネントを用いてなされてもよい。
【００３６】
個別の実装例に依存するが、組み込みコンポーネントはソフトフェアによる解法と、ハードウェアによる解法、及び／又はその両方の組み合わせによる解法を含んでよい。例えば、ここで説明したＭＴＩの機能はＦＰＧＡにより実装することができる。ＦＰＧＡは「論理ブロック」と呼ばれるプログラム可能な論理コンポーネントと、プログラム可能な配線を含んだ半導体装置であり、例として高パフォーマンスのFPGA Virtexシリーズ、及び／又は、低コストのSpartanシリーズがザイリンクス社により製造されている。論理ブロック及び配線はＦＰＧＡの製造後に顧客或いは設計者によって任意のＭＴＩの機能を実装するためにプログラム可能である。プログラム可能な配線はＭＴＩシステムの設計者／管理者の必要に応じて、さながら１チップのプログラム可能な実験用回路基板のように、論理ブロックが相互接続されるように階層化されている。ＦＰＧＡの論理ブロックは、ＡＮＤやＸＯＲのような基本論理ゲート、或いはデコーダのようなより複雑な組み合わせの演算、或いは単純な数学演算を行うようにプログラム可能である。大半のＦＰＧＡでは、論理ブロックはさらにメモリ素子を含む。当該メモリ素子はフリップフロップ回路又はより完全なメモリブロックであってもよい。状況次第で、ＭＴＩは通常のＦＰＧＡで開発され、その後ＡＳＩＣ実装により近い固定されたバージョンに移行されてもよい。代替の、或いは調整された実装では、ＦＰＧＡの代わりに、或いはＦＰＧＡに加えて、ＭＴＩコントローラの機能を最終のＡＳＩＣに移行させてよい。実装に依存するが、上述した組み込みコンポーネント及びマイクロプロセッサの全ては、ＭＴＩにとってＣＰＵ、及び／又は、プロセッサとみなされる。
【００３７】
〈電源〉
電源８８６は、小型の電子回路基板装置に電力を供給する任意の標準の形式であってよく、例えば以下に示す電池が挙げられる：アルカリ、リチウム水素、リチウムイオン、リチウムポリマー、ニッケルカドミウム、太陽電池等。他の型のＡＣ又はＤＣ電源も同様に使用できる。太陽電池を用いる場合、一実施形態において、光エネルギーを捕獲するための開口を備える。電源８８６はＭＴＩの相互接続された後続のコンポーネントの少なくとも１つと接続され、後続のコンポーネント全てに電流を供給する。一例では、電源８８６はシステムバスコンポーネント８０４と接続される。代替する実施形態では、外部電源８８６が、Ｉ／Ｏインタフェース８０８を介した接続により提供される。例えば、ＵＳＢ接続、及び／又は、IEEE 1394接続はデータと電力の両方を当該接続により運ぶことができるため、電源に適している。
【００３８】
〈インタフェースアダプタ〉
インタフェースバス８０７は、多数のインタフェースアダプタに対応し、接続、及び／又は通信を行うものであってよい。インタフェースアダプタは、アダプタカード方式が標準的であるが、必ずしもこの必要はない。インタフェースアダプタは、例えば入出力インタフェース（Ｉ／Ｏ）８０８、ストレージインタフェース８０９、ネットワークインタフェース８１０等であるが、これに限られるものではない。任意で、暗号化プロセッサインタフェース８２７が同様にインタフェースバスに接続されていてもよい。インタフェースバスは、インタフェースアダプタとコンピュータシステム部の他のコンポーネント間の通信のほか、インタフェースアダプタと他のインタフェースアダプタ間の通信を提供する。インタフェースアダプタは互換インタフェースバスに適応する。インタフェースアダプタは、スロット構造を介してインタフェースバスと接続するのが標準的である。標準のスロット構造として、ＡＧＰ（Accelerated Graphics Port）、カードバス、（Ｅ）ＩＳＡ（(Extended) Industry Standard Architecture）、ＭＣＡ（Micro Channel Architecture）、ＮｕＢｕｓ、ＰＣＩ（Ｘ）（Peripheral Component Interconnect (Extended)）、PCI Express、ＰＣＭＣＩＡ（Personal Computer Memory Card International Association）等を採用してもよいが、これに限られるものではない。
【００３９】
ストレージインタフェース８０９は、多数のストレージデバイスに対応し、通信、及び／又は接続を行うものであってよい。ストレージデバイスとしては、例えばストレージデバイス８１４、及び／又は、リムーバブルディスク装置等が挙げられるが、これに限られるものではない。ストレージインタフェースは例えば下記の接続プロトコルを採用してよいが、これに限られるものではない：(Ultra) (Serial) ATA(PI)（(Ultra) (Serial) Advanced Technology Attachment (Packet Interface)）、(E)IDE（(Enhanced) Integrated Drive Electronics）、IEEE（Institute of Electrical and Electronics Engineers）1394、ファイバーチャネル、SCSI（Small Computer Systems Interface）、USB（Universal Serial Bus）等。
【００４０】
ネットワークインタフェース８１０は、通信ネットワーク８１３に対応し、通信、及び／又は接続を行うものであってよい。通信ネットワーク８１３を通して、ＭＴＩコントローラは遠隔クライアント８３３ｂ（例えば、ウェブブラウザ付きのコンピュータ）とのアクセスがユーザ８３３ａによって可能となる。ネットワークインタフェースは例えば下記の接続プロトコルを採用してよいが、これに限られるものではない：ダイレクトコネクト、イーサネット（太い、細い、ツイストペアの10/100/1000 Base T等）（登録商標）、トークンリング、IEEE 802.11a-xに代表される無線接続等。プロセシングにはより高速性、及び／又は、より大きな処理能力が求められるため、分散型ネットワークコントローラ（例えば分散型ＭＴＩ）アーキテクチャを、プールし、負荷を分散し、及び／または、ＭＴＩコントローラの通信バンド幅を増加させたりするために同様に採用してもよい。通信ネットワークは以下に示すネットワークの何れか、及び／又は、これらの組み合わせであってよい：直接相互接続、インターネット、ローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、ＯＭＮＩ（Operating Missions as Nodes on the Internet）、保護されたカスタム接続、ワイドエリアネットワーク（ＷＡＮ）、無線ネットワーク（例えばＷＡＰ（Wireless Application Protocol）、Iモード等のプロトコルがあるが、これに限られない）等。ネットワークインタフェースは入出力インタフェースの特別な形式と考えることができる。さらに、通信ネットワーク８１３の種々の方式に対応できるように、複合的なネットワークインタフェースを使用してもよい。例えば、放送、マルチキャスト通信、及び／又は、ユニキャスト通信を可能とするために、複合ネットワークインタフェースを採用してもよい。
【００４１】
入出力インタフェース（Ｉ／Ｏ）８０８は、ユーザ入力機器８１１、周辺機器８１２、暗号化処理機器（暗号機器）８２８等に対応し、通信、及び／又は接続を行うものであってよい。Ｉ／Ｏは下記の接続プロトコルを使用してもよいが、これに限られるものではない：音声について：アナログ、デジタル、モノラル、ＲＣＡ、ステレオ等、データについて：アップルデスクトップバス（ＡＤＢ）、IEEE 1394a-b、 シリアル、 ユニバーサルシリアルバス（ＵＳＢ）、赤外通信、ジョイスティック、キーボード、ＭＩＤＩ、オプティカル、ＰＣ  ＡＴ、ＰＳ／２、パラレル、ラジオ、映像インタフェースについて：アップルデスクトップコネクタ（ＡＤＣ）、ＢＮＣ、同軸、コンポーネント、コンポジット、デジタル、デジタルビジュアルインタフェース（ＤＶＩ）、高精細度マルチメディアインタフェース（ＨＤＭＩ（登録商標））、ＲＣＡ、ＲＦアンテナ、Ｓビデオ、ＶＧＡ等、無線送受信について：802.11a/b/g/n/x、ブルートゥース、セルラー方式（例えば、符号分割多重接続（ＣＤＭＡ）、ＨＳＰＡ（＋）（high speed packet access）、ＨＳＤＰＡ（high-speed downlink packet access）、ＧＳＭ（global system for mobile communications）（登録商標）、ＬＴＥ（long term evolution）、ＷｉＭａｘ等。典型的な出力機器の１つはビデオディスプレイであり、典型的にはブラウン管（ＣＲＴ）や液晶ディスプレイ（ＬＣＤ）に基づくモニタに、映像インタフェースからの信号を受けるインタフェース（例えば、ＤＶＩ回路及びケーブル）を備えたものが用いられる。映像インタフェースはコンピュータシステム部により生成された情報を合成し、映像メモリフレーム内の合成された情報に基づいて映像信号を生成する。他の出力機器としては映像インタフェースからの信号を受けるテレビ装置がある。典型的に、映像インタフェースは映像ディスプレイインタフェースを受ける映像接続インタフェース（例えば、ＲＣＡコンポジット映像ケーブルを受けるＲＣＡコンポジット映像コネクタや、ＤＶＩディスプレイケーブルを受けるＤＶＩコネクタ等）を通して合成された映像情報を提供する。
【００４２】
ユーザ入力機器８１１は、多くの場合周辺機器８１２（下記参照）の一種であり、以下の機器を含んでいてよい：カードリーダ、ドングル、指紋リーダ、データグローブ、グラフィックタブレット、ジョイスティック、キーボード、マイク、マウス、リモコン、網膜リーダ、タッチスクリーン（静電容量式、或いは抵抗式等）、トラックボール、トラックパッド、センサ（例えば、加速度計、周辺光、ＧＰＳ、ジャイロスコープ、近接センサ等）、スタイラス等。
【００４３】
周辺機器８１２は、Ｉ／Ｏ、及び／又は、ネットワークインタフェース、ストレージインタフェース、インタフェースバスと直接、システムバス、ＣＰＵ等の他の機器と接続し、及び／又は通信を行うものであってよい。周辺機器は外付け、内蔵型、及び／又はＭＴＩコントローラの一部であってもよい。周辺機器は以下の機器を含んでいてよい：アンテナ、オーディオ機器（例えば、ライン入力、ライン出力、マイク入力、スピーカー等）、カメラ（例えば、スチルカメラ、ビデオカメラ、ウェブカメラ等）、ドングル（例えば、コピー保護や、デジタル署名つきの安全な取引を保証する目的等）、外部プロセッサ（追加される機能として、例えば、暗号機器８２８）、力フィードバック機器（例えば、振動モータ）、ネットワークインタフェース、プリンタ、スキャナ、記憶装置、送受信機（例えば、携帯電話、ＧＰＳ等）、映像機器（例えば、ゴーグル、モニタ等）、映像ソース、バイザー等。周辺機器は、多くの場合複数種の入力機器（例えば、カメラ）を含む。
【００４４】
ユーザ入力機器及び周辺機器が用いられる場合であっても、ＭＴＩコントローラは、ネットワークインタフェース接続を介してアクセスが提供されれば、内蔵された、専用の、及び／又はモニタレス（つまり、ヘッドレスの）装置として実装されてもよいことに留意すべきである。
【００４５】
暗号化ユニットとして、マイクロコントローラ、プロセッサ８２６、インタフェース８２７、及び／又は、機器８２８が追加され、及び／又は、ＭＴＩコントローラと通信する構成としてもよいが、これに限られるものではない。モトローラ社製のMC68HC16マイクロコントローラを、暗号化ユニットのために、及び／又は、暗号化ユニット内で利用することができる。MC68HC16マイクロコントローラは１６ビットの積和演算（multiply-and-accumulate）命令を１６ＭＨｚの構成で実行し、５１２ビットのＲＳＡ秘密鍵の処理実行に１秒をも必要としない。暗号化ユニットは、匿名による処理を許容する場合のほか、対話するエージェントからの通信の場合にその認証を支援する。暗号化ユニットはＣＰＵの一部として構成されてもよい。同等のマイクロコントローラ、及び／又は、プロセッサも使用してもよい。他の市販の専用の暗号化プロセッサとしては、Broadcom社のCryptoNetX及び他のセキュリティプロセッサ、nCipher社のnShield、SafeNet社の Luna PCI (例えば、7100) シリーズ、Semaphore Communications社の 40 MHz Roadrunner 184、サン社の暗号化アクセラレータ（例えば、Accelerator 6000 PCIe Board、 Accelerator 500 Daughtercard)、500+MB/sで暗号化命令を処理できるVia Nano Processor（例えば、L2100, L2200, U2400）line、VLSI Technology社の 33 MHz 6868等が挙げられる。
【００４６】
〈メモリ〉
一般的に、プロセッサが記憶装置に作用することを可能とし、及び／又は情報の検索を可能とする任意の機械化、及び／又は、実装例をメモリ８２９とみなせる。しかしながら、メモリは代替可能な技術及び資源であり、このため、多数のメモリ実施形態が、他の実施形態に代替して、或いは他の実施形態と併せて適用されうる。ＭＴＩコントローラ、及び／又は、コンピュータシステム部は様々な形式のメモリ８２９を採用してよいことが理解される。例えば、コンピュータシステム部は、チップ上のＣＰＵ内部メモリ（例えば、レジスタ）、ＲＡＭ、ＲＯＭ、及び他の記憶装置の動作が紙製のパンチテープ或いは紙製のパンチカード機構により提供されてもよいが、しかしながらそのような実施形態では動作速度が極めて遅くなる。典型的な構成では、メモリ８２９はＲＯＭ８０６、ＲＡＭ８０５、及び、ストレージデバイス８１４を備える。ストレージデバイス８１４は従来用いられている任意のコンピュータシステム記憶装置であってよい。ストレージデバイスは、ドラムメモリ、（固定された、及び／又は取り外し可能な）磁気ディスクドライブ、光磁気ドライブ、光学ドライブ（例えば、ブルーレイ、CD ROM/RAM/Recordable (R)/ReWritable (RW)、DVD R/RW、HD DVD R/RW等）、装置の配列（例えば、ＲＡＩＤ（Redundant Array of Independent Disks））、固体記憶装置（例えば、ＵＳＢメモリ、固体ドライブ（ＳＳＤ）等）、その他プロセッサにより読み出し可能な記憶媒体等の機器を備えていてもよい。このように、コンピュータシステム部は一般にメモリを必要とし、使用する。
【００４７】
〈コンポーネント集合体〉
メモリ８２９はプログラム、及び／又は、データベースコンポーネント、及び／又は、データの集合を含んでいてもよい。集合としては例えば下記のコンポーネントが挙げられるが、これに限られるものではない：オペレーティングシステムコンポーネント８１５（オペレーティングシステム）、情報サーバコンポーネント８１６（情報サーバ）、ユーザインタフェースコンポーネント８１７（ユーザインタフェース）、ウェブブラウザコンポーネント８１８（ウェブブラウザ）、データベース８１９、メールサーバコンポーネント８２１、メールクライアントコンポーネント８２２、暗号サーバコンポーネント８２０（暗号サーバ）、ＭＴＩコンポーネント８３５等。これらをまとめてコンポーネント集合体という。これらのコンポーネントは、ストレージデバイス、及び／又はインタフェースバスを介してアクセス可能なストレージデバイスに保持され、アクセスされる。当該コンポーネント集合体のうち従来構成にないプログラムコンポーネントについては、ローカルのストレージデバイス８１４に保持されるのが典型例であるが、周辺機器、ＲＡＭ、通信ネットワークを介したリモート記憶装置、ＲＯＭ等、様々な形式のメモリにロードされ、及び／又は、保持されても構わない。
【００４８】
〈オペレーティングシステム〉
オペレーティングシステムコンポーネント８１５は、ＭＴＩコントローラの動作を容易にするための実行可能なプログラムコンポーネントである。典型的には、オペレーティングシステムはＩ／Ｏ、ネットワークインタフェース、周辺機器、記憶装置等へのアクセスを容易にする。オペレーティングシステムは、高い耐障害性、拡張性を備えた、安全なシステムであってよく、例えば以下のオペレーティングシステムが挙げられる：Apple Macintosh OS X (Server)、AT&T Plan 9、Be OS、Unix（登録商標）及びUnix類似のシステムディストリビューション（例えば、AT&T UNIX、FreeBSD、NetBSD、OpenBSD等のＢＳＤ系（Berkley Software Distribution）、Red Hat、Ubuntu等のＬｉｎｕｘ（登録商標）ディストリビューション）等。しかしながら、下記に示すより限定的な、及び／又は、より安全ではないオペレーティングシステムを利用することもできる：Apple Macintosh OS、IBM OS/2、Microsoft DOS、Microsoft Windows（登録商標） 2000/2003/3.1/95/98/CE/Millenium/ NT/Vista/XP (Server)、Palm OS等。オペレーティングシステムは自身が属するコンポーネント集合体内の他のコンポーネント等と通信し、及び／又は、連絡を取り合う。多くの場合、オペレーティングシステムは他のプログラムコンポーネント、ユーザインタフェース等と連絡を取り合う。たとえば、オペレーティングシステムはプログラムコンポーネント、システム、ユーザ、及び／又はデータ通信、要求、及び／又は応答を制限し、通信し、生成し、取得し、及び／又は提供してもよい。オペレーティングシステムは、一旦ＣＰＵにより実行されると、通信ネットワーク、データ、Ｉ／Ｏ、周辺機器、プログラムコンポーネント、メモリ、及び、ユーザ入力機器等との対話を可能にする。オペレーティングシステムはＭＴＩコントローラが通信ネットワーク８１３を通して他の存在と通信するための通信プロトコルを提供する。ＭＴＩコントローラによって、マルチキャスト、ＴＣＰ／ＩＰ、ＵＤＰ、ユニキャスト等といった種々の通信プロトコルがサブキャリア伝送機構として使用されてよいが、これに限られるものではない。
【００４９】
〈情報サーバ〉
情報サーバコンポーネント８１６はＣＰＵにより実行される保持されたプログラムコンポーネントである。情報サーバは従来のインターネット情報サーバであってよく、例えばApache Software FoundationのApache、Microsoft Internet Information Server等が挙げられるが、これに限られるものではない。情報サーバは例えば下記の機能を通してプログラムコンポーネントの実行を可能にする：ＡＳＰ（Active Server Page）、ActiveX、(ANSI) (Objective-) C (++), C#及び／又は.NET, ＣＧＩ（Common Gateway Interface）スクリプト、（ダイナミック）ＨＴＭＬ（hypertext markup language）、FLASH、Java（登録商標）、JavaScript（登録商標）、ＰＥＲＬ（Practical Extraction Report Language）、ＰＨＰ（Hypertext Pre-Processor）、pipes、Python、ＷＡＰ（wireless application protocol）、WebObjects等。情報サーバは下記の保護された通信プロトコルをサポートしてもよいが、これに限られるものではない：ＦＴＰ（File Transfer Protocol）、ＨＴＴＰ（HyperText Transfer Protocol）、ＨＴＴＰＳ（Secure Hypertext Transfer Protocol）、ＳＳＬ（Secure Socket Layer）、メッセージ通信プロトコル（例えば、America Online (AOL) Instant Messenger (AIM)、Application Exchange (APEX)、ＩＣＱ、ＩＲＣ（Internet Relay Chat） 、Microsoft Network (MSN) Messenger Service、ＰＲＩＭ（Presence and Instant Messaging Protocol）、Internet Engineering Task Force (IETF) Session Initiation Protocol（ＳＩＰ）、SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE)、オープンＸＭＬベースのＸＭＰＰ（Extensible Messaging and Presence Protocol）（例えば、Jabber社或いはOpen Mobile Alliance (OMA)によるＩＭＰＳ（Instant Messaging and Presence Service）、Yahoo! Instant Messenger Service）等。情報サーバはウェブページの形でウェブブラウザへ結果を提供し、他のプログラムコンポーネントとの対話を通してウェブページの編集と作成を可能にする。ＨＴＴＰ要求のうち、ドメインネームシステム（ＤＮＳ）による名前解決の部分が特定の情報サーバにより解決されると、情報サーバは残りのＨＴＴＰ要求に基づき、ＭＴＩコントローラ上の特定された場所の情報提示要求を解決する。例えば、http://123.124.125.126/myInformation.htmlのような要求は、ＤＮＳサーバによって解決されるＩＰ部分"123.124.125.126"を有している。当該ＩＰ部分は、当該ＩＰアドレスの情報サーバへ向けての要求であることを示す。当該情報サーバは、次にＨＴＴＰ要求を"/myInformation.html"の部分について構文解析し、情報"myInformation.html"のあるメモリ内の場所を示して要求を解決する。また、他の情報サービスプロトコルは、種々のポート上で利用されるものであってよい。例えば、ＦＴＰによる通信がポート番号２１で行われるとしてもよいし、或いは類似のポートで行われるとしてもよい。情報サーバは自身が属するコンポーネント集合体内の他のコンポーネント等と通信し、及び／又は、連絡を取り合う。多くの場合、情報サーバはＭＴＩデータベース８１９、オペレーティングシステム、他のプログラムコンポーネント、ユーザインタフェース、ウェブブラウザ等と連絡を取り合う。
【００５０】
ＭＴＩデータベースへのアクセスは以降において例挙されるスクリプト言語（例えば、ＣＧＩ）のような多数のデータベース通信メカニズムを介して、且つ、以降において例挙されるアプリケーション間通信チャネル（例えば、ＣＯＲＢＡ、WebObjects等）を介して行われる。ウェブブラウザを介したデータ要求は当該通信メカニズムによって、ＭＴＩが必要とする適切な文法に構文解析される。一実施形態において、情報サーバはウェブブラウザによってアクセス可能なウェブフォームを提供する。ウェブフォーム内の供給されたフィールドを構成するエントリが特定のフィールドへ入力済みとしてタグが付され、そのように構文解析がされる。その後、入力された語がフィールドタグとともに通過して、パーサに適切なテーブル、及び／又は、フィールドについて検索要求（クエリ）を生成する指示を行うように動作する。一実施形態において、パーサはタグ付けされたテキストエントリに基づき、適当なjoin/selectコマンドを用いた探索文字列のインスタンスを生成することにより標準のＳＱＬのクエリを生成してよい。このとき、結果としてコマンドは通信メカニズムを介し、ＭＴＩにクエリとして提供される。クエリから検索結果生成に基づいて、その結果が通信メカニズムを通過し、初期化及び新たな出力ウェブページの生成のために通信メカニズムにより解析される。新たな出力ウェブページは情報サーバに提供され、情報サーバはそれを要求があったウェブブラウザに供給する。
【００５１】
また、情報サーバはプログラムコンポーネント、システム、ユーザ、及び／又はデータ通信、要求、及び／又は応答を制限し、通信し、生成し、取得し、及び／又は提供してもよい。
【００５２】
〈ユーザインタフェース〉
コンピュータインタフェースはいくつかの点において自動車の操作インタフェースと似ている。ステアリングホイール、変速レバー、及び、スピードメータといった自動車の操作インタフェース要素は、自動車のリソース及び状態へのアクセス、操作、及び表示を容易にしている。同様に、チェックボックス、カーソル、メニュー、スクロールバー、及びウィンドウ（これらはまとめて、ウィジェットと総称される）といったコンピュータ対話インタフェース要素は、データ、コンピュータハードウェア、オペレーティングシステムリソース、及び状態へのアクセス、機能、処理、及び表示を容易にする。操作インタフェースは一般にユーザインタフェースと呼ばれる。グラフィカルユーザインタフェース、例えば、Apple Macintosh Operating Systemの Aqua、IBM OS/2、Microsoft Windows 2000/2003/3.1/95/98/CE/Millenium/NT/XP/Vista/7（即ち、Aero）、Unix X-Window（例えば、ＫＤＥ（K Desktop Environment）、mythTVやＧＮＯＭＥ（GNU Network Object Model Environment）といった追加的なグラフィックインタフェースライブラリ及びレイヤを含む）、ウェブインタフェースライブラリ（例えば、ActiveX、AJAX、(D)HTML、FLASH、Java、JavaScript等があり、インタフェースライブラリとしては、Dojo、jQuery(UI)、MooTools、Prototype、script.aculo.us、SWFObject、Yahoo! User Interfaceの何れかを利用できるが、これに限られるものではない）が、情報にアクセスし、ユーザに図示的に表示するための基準及び手段を提供する。
【００５３】
ユーザインタフェースコンポーネント８１７はＣＰＵにより実行される保持されたプログラムコンポーネントである。ユーザインタフェースは、オペレーティングシステム、及び／又はオペレーティング環境によって、これらと一緒に、及び／又は、これらの上で提供される、上述した従来のグラフィカルユーザインタフェースであってよい。ユーザインタフェースはテキスト形式の、及び／又はグラフィック形式の設備を通して、プログラムコンポーネント、及び／又は、システム機能との表示、実行、対話、編集、及び／又は処理を可能にする。ユーザインタフェースはユーザがコンピュータシステムに作用し、対話し、操作するための設備を提供する。ユーザインタフェースは自身が属するコンポーネント集合体内の他のコンポーネント等と通信し、及び／又は、連絡を取り合う。多くの場合、ユーザインタフェースはオペレーティングシステムや他のプログラムコンポーネント等と連絡を取り合う。ユーザインタフェースはプログラムコンポーネント、システム、ユーザ、及び／又はデータ通信、要求、及び／又は応答を制限し、通信し、生成し、取得し、及び／又は提供してもよい。
【００５４】
〈ウェブブラウザ〉
ウェブブラウザコンポーネント８１８はＣＰＵにより実行される保持されたプログラムコンポーネントである。ウェブブラウザはMicrosoft Internet Explorer 或いは Netscape Navigator等といった従来のハイパーテキスト閲覧アプリケーションであってよい。安全なウェブブラウジングがＨＴＴＰＳ、ＳＳＬ等を介した１２８ビット（或いはそれ以上）の暗号化を用いて提供されてもよい。ウェブブラウザは、例えばActiveX、AJAX、(D)HTML、FLASH、Java、JavaScript、プラグインAPI（例えば、FireFox、Safari Plug-in等のAPI）等の機能によって、プログラムコンポーネントの実行が可能である。ウェブブラウザ、及び同様の情報アクセスツールはＰＤＡ、携帯電話、及び／又は、他の携帯機器に統合されていてもよい。ウェブブラウザは自身が属するコンポーネント集合体内の他のコンポーネント等と通信し、及び／又は、連絡を取り合う。多くの場合、ウェブブラウザは情報サーバ、オペレーティングシステム、統合されたプログラムコンポーネント（例えば、プラグイン）等と連絡を取り合う。例えば、ウェブブラウザはプログラムコンポーネント、システム、ユーザ、及び／又はデータ通信、要求、及び／又は応答を制限し、通信し、生成し、取得し、及び／又は提供してもよい。さらに、ウェブブラウザと情報サーバの代わりに、結合されたアプリケーションが両方と同様の処理を行うために開発されてもよい。当該結合されたアプリケーションは、同様にユーザ、ユーザエージェント、及び／又は、ＭＴＩ可能なノードからの同等物への情報の取得、供給に影響を与えるであろう。結合されたアプリケーションは標準的なウェブブラウザが稼動するシステムからは無効（nugatory）であってもよい。
【００５５】
〈メールサーバ〉
メールサーバコンポーネント８２１はＣＰＵ８０３により実行される保持されたプログラムコンポーネントである。メールサーバは、sendmail、Microsoft Exchange等のような従来のインターネットメールサーバであってよいが、これに限られるものではない。メールサーバは、ASP、ActiveX、(ANSI) (Objective-) C (++)、C#、及び／又は.NET、CGIスクリプト、Java、JavaScript、PERL、PHP、pipes、Python、WebObjects等の機能によってプログラムコンポーネントの実行を可能としてもよい。メールサーバは下記の通信プロトコルに対応してもよいが、これに限られるものではない：ＩＭＡＰ（Internet message access protocol）、ＭＡＰＩ（Messaging Application Programming Interface）/Microsoft Exchange、ＰＯＰ３（post office protocol）、ＳＭＴＰ（simple mail transfer protocol）等。メールサーバは、ＭＴＩを通って、及び／又はＭＴＩへと送信された、中継された、及び／又は転送途中の、到着する及び外に出て行くメールメッセージの配送先を決定し、転送し、処理する。
【００５６】
ＭＴＩメールへのアクセスは、個々のウェブサーバコンポーネント及び／又はオペレーティングシステムにより提供される多数のＡＰＩを介してなされてもよい。
【００５７】
また、メールサーバはプログラムコンポーネント、システム、ユーザ、及び／又はデータ通信、要求、情報、及び／又は応答を制限し、通信し、生成し、取得し、及び／又は提供してもよい。
【００５８】
〈メールクライアント〉
メールクライアントコンポーネント８２２はＣＰＵ８０３により実行される保持されたプログラムコンポーネントである。メールクライアントはApple Mail、Microsoft Entourage、Microsoft Outlook、Microsoft Outlook Express、Mozilla、Thunderbird等の従来のメール閲覧アプリケーションであってよい。メールクライアントはＩＭＡＰ、Microsoft Exchange、ＰＯＰ３、ＳＭＴＰ等といった多くの転送プロトコルに対応してもよい。メールクライアントは自身が属するコンポーネント集合体内の他のコンポーネント等と通信し、及び／又は、連絡を取り合う。多くの場合、メールクライアントはメールサーバ、オペレーティングシステム、他のメールクライアント等と連絡を取り合う。例えば、メールクライアントはプログラムコンポーネント、システム、ユーザ、及び／又はデータ通信、要求、情報、及び／又は応答を制限し、通信し、生成し、取得し、及び／又は提供してもよい。一般に、メールクライアントは電子メールメッセージを作成し、送信する機能を提供する。
【００５９】
〈暗号サーバ〉
暗号サーバコンポーネント８２０はＣＰＵ８０３、暗号化プロセッサ８２６、暗号化プロセッサインタフェース８２７、暗号化処理機器８２８等により実行される保持されたプログラムコンポーネントである。暗号化プロセッサインタフェースは暗号コンポーネントによる暗号化／復号化要求の迅速処理を可能にする。しかしながら、暗号コンポーネントは、代替的に、従来のＣＰＵ上で動作してもよい。暗号コンポーネントは与えられたデータの暗号化、及び／又は、復号化を可能にする。暗号コンポーネントは対称暗号方式、及び非対称暗号方式（例えば、ＰＧＰ（Pretty Good Protection））の両方につき、暗号化、及び／又は、復号化を可能にする。暗号コンポーネントは下記の暗号化技術を適用してもよいが、これに限られるものではない：デジタル証明書（例えば、Ｘ．５０９の枠組みによる）、デジタル署名、二重署名、封書化（enveloping）、パスワードによるアクセス保護、公開鍵管理等。暗号コンポーネントは以下の多数の（暗号化、及び／又は、復号化の）セキュリティプロトコルを利用可能とするが、これに限られるものではない：チェックサム、ＤＥＳ（Data Encryption Standard）、楕円曲線暗号（ＥＣＣ）、ＩＤＥＡ（International Data Encryption Algorithm）、（一方向ハッシュ演算である）ＭＤ５（Message Digest 5）、パスワード、ＲＣ５（Rivest Cipher）、Rijndael暗号、ＲＳＡ（Ron Rivest、Adi Shamir、Leonard Adlemanによって１９７７年に開発されたアルゴリズムを利用するインタネット上の暗号／認証システム）、ＳＨＡ（Secure Hash Algorithm）、ＳＳＬ（Secure Socket Layer）、ＨＴＴＰＳ（Secure Hypertext Transfer Protocol）等。上記の暗号化セキュリティプロトコルを利用するに際し、ＭＴＩは全ての行き来する通信を暗号化し、より広域の通信ネットワークにおける１つの仮想プライベートネットワーク（ＶＰＮ）内のノードとして働く。暗号コンポーネントは「セキュリティ認証」処理を容易にし、この結果、リソースへのアクセスは、セキュリティプロトコルによって制限されるとともに、暗号コンポーネントが保護されたリソースへの認証されたアクセスを生じさせる。加えて、暗号コンポーネントは、例えばＭＤ５ハッシュを用いてデジタル音声ファイルの一意的な署名を取得する等、コンテンツの一意的な識別子を提供してもよい。暗号コンポーネントは自身が属するコンポーネント集合体内の他のコンポーネント等と通信し、及び／又は、連絡を取り合う。暗号コンポーネントは、ＭＴＩコンポーネントが求めに応じて保護されたトランザクション処理を行うことのできるように、通信ネットワークを介した情報の保護された伝送を可能とする暗号化スキームに対応する。暗号コンポーネントはＭＴＩ上のリソースへの保護されたアクセスを容易にするとともに、リモートシステム上の保護されたリソースへのアクセスを容易にする。つまり、保護されたリソースのクライアント、及び／又は、サーバとして働く。多くの場合、暗号コンポーネントは情報サーバ、オペレーティングシステム、他のプログラムコンポーネント等と連絡を取り合う。暗号コンポーネントはプログラムコンポーネント、システム、ユーザ、及び／又はデータ通信、要求、及び／又は応答を制限し、通信し、生成し、取得し、及び／又は提供してもよい。
【００６０】
〈ＭＴＩデータベース〉
ＭＴＩデータベースコンポーネント（ＭＴＩデータベース）８１９はデータベース及びその保持されるデータ内部に実装される。データベースはＣＰＵにより実行される保持されたプログラムコンポーネントであり、当該保持されたプログラムコンポーネント部分が、保持されたデータをＣＰＵが処理するように構成する。データベースは、例えばOracle又はSybaseのような、従来の、高い耐障害性を備えた、リレーショナルな、拡張性を備えた、保護されたデータベースであってよい。リレーショナルデータベースはフラットファイルを拡張したものである。リレーショナルデータベースは一連の関係するテーブルからなる。テーブルはキーフィールドを介して相互接続されている。キーフィールドを使用し、キーフィールドに対して索引を付すことで、複数のテーブル同士を結合することが可能になる。即ち、キーフィールドは様々なテーブルからの情報を結合する次元の回転中心として働く。関係付けは、一般にプライマリキーを適合させることによりテーブル間に維持されるリンクを確認する。プライマリキーはリレーショナルデータベースにおけるテーブルの行を一意に特定するフィールドを表す。より正確には、それは一対多の関係のあるテーブルの「一」側のテーブルの行を一意に特定する。
【００６１】
代わりに、ＭＴＩデータベースは例えば配列、ハッシュ、（連結）リスト、構造体、構造化されたテキストファイル（例えば、ＸＭＬ）、テーブル等、種々の標準的なデータ構造を使用して実装されていてもよい。これらのデータ構造はメモリ内に、及び／又は、（構造化された）ファイル内に格納されていてもよい。また別の方法として、例えばFrontier、 ObjectStore、Poet、Zope等のオブジェクト指向データベースを利用してもよい。オブジェクトデータベースは共通の属性によりグループ化され、及び／又は互いに結びつけられた多数のオブジェクト集合を含む。オブジェクト集合はある共通の属性によって他のオブジェクト集合と関係付けられてよい。オブジェクト指向データベースは、オブジェクトが単なるデータの一片ではなく、別種の機能が所定のオブジェクト内に隠蔽（カプセル化）されている場合があることを除いて、リレーショナルデータベースと同様の動作をする。ＭＴＩデータベースがデータ構造として実装される場合、ＭＴＩデータベース８１９の利用は例えばＭＴＩコンポーネント８３５のような他のコンポーネント内に統合されていてもよい。さらに、データ構造、オブジェクト、及びリレーショナル構造を混合してデータベースが実装されていてもよい。データベースは、標準のデータ処理技術による無数の設計変更に応じて統一され、及び／又は、分散されていてもよい。データベースの部分、例えば、テーブルは、エクスポート、及び／又は、インポートされてもよく、これにより分散管理され、及び／又は、集中管理される。
【００６２】
一実施形態では、データベースコンポーネント８１９は複数個のテーブル８１９ａ〜ｊを含む。ユーザテーブル８１９ａは例えば下記のフィールドを備えて構成されてよいが、これに限られるものではない：user_id、ssn、dob、first_name、last_name、age、state、address_firstline、address_secondline、zipcode、devices_list、contact_info、contact_type、alt_contact_info、alt_contact_type等。ユーザテーブルはＭＴＩ上の複数の実在するアカウントに対応し、アカウントを追跡する。
デバイステーブル８１９ｂは例えば下記のフィールドを備えて構成されてよいが、これに限られるものではない：device_ID、device_name、device_IP、device_MAC、device_type、device_model、device_version、device_OS、device_apps_list、device_securekey等。
アプリテーブル８１９ｃは例えば下記のフィールドを備えて構成されてよいが、これに限られるものではない：app_ID、app_name、app_type、app_dependencies等。
ジェスチャーテーブル８１９ｄは例えば下記のフィールドを備えて構成されてよいが、これに限られるものではない：gesture_id、gesture_name、gesture_touch_group_definition、gesture_timing_sequence、gesture_enabled_flag、gesture_settings_list、gesture_settings_values等。
入力機器テーブル８１９ｅは例えば下記のフィールドを備えて構成されてよいが、これに限られるものではない：device_ID、device_name、device_IP、device_MAC、device_type、device_model、device_version、device_OS、device_apps_list、device_securekey等。
コマンドテーブル８１９ｆは例えば下記のフィールドを備えて構成されてよいが、これに限られるものではない：command_id、command_name、command_syntax、command_compiler、command_inputs、command_exceptions_list、command_gesture_trigger等。
センサテーブル８１９ｇは例えば下記のフィールドを備えて構成されてよいが、これに限られるものではない：sensor_id、sensor_name、sensor_type、last_calibrated、sensor_data_rate、sensor_data_format、sensor_data_error_estimate、sensor_trigger_type、sensor_trigger_condition、sensor_burst_enable_flag、sensor_continuous_enable_flag等。
較正データテーブル８１９ｈは例えば下記のフィールドを備えて構成されてよいが、これに限られるものではない：calibration_id、calibration_type、calibration_device_applicable、calibration_variables_list、calibration_variables_values等。
閾値テーブル８１９ｉは例えば下記のフィールドを備えて構成されてよいが、これに限られるものではない：threshold_id、threshold_name、threshold_type、threshold_dynamic_parameter、threshold_value、threshold_delta、threshold_last_update、threshold_calibrated_flag等。
タッチ履歴テーブル８１９ｊは例えば下記のフィールドを備えて構成されてよいが、これに限られるものではない：timestamp、user_id、user_app_id、user_device_id、user_gesture_id、user_command_id等。
【００６３】
一実施形態において、ＭＴＩデータベースは他のデータベースシステムと交信してもよい。例えば、分散型データベースシステムを採用することにより、ＭＴＩコンポーネント検索によるクエリ及びデータアクセスは、ＭＴＩデータベースが結合され、統合化されたデータ・セキュリティレイヤデータベースを単一のデータベースとして扱ってもよい。
【００６４】
一実施形態において、ユーザプログラムはＭＴＩをアップデートするために提供されうる種々の基本的なユーザインタフェースを包含してもよい。また、アカウントが多様であることにより、ＭＴＩの提供を必要とするクライアントの種類、環境に応じてカスタムデータベーステーブルが必要となる。任意の一意なフィールドがあらゆる場所でキーフィールドとして指定されうることに留意すべきである。代替の実施形態では、これらのテーブルはこれら自身のデータベース、及び、夫々のデータベースコントローラ（即ち、上記テーブルの夫々に対応する個々のデータベースコントローラ）に分散されている。標準のデータ処理技術を用いて、データベースをさらに複数のコンピュータシステム部、及び／又は、複数のストレージデバイスに渡って分散させてもよい。同様に、分散的なデータベースコントローラの構成は、種々のデータベースコンポーネント８１９ａ〜ｊの一元化、及び／又は、分散化に応じて様々であってよい。ＭＴＩは、データベースコントローラを介した様々な設定、入力、及びパラメータを把握できるように構成されている。
【００６５】
ＭＴＩデータベースは自身が属するコンポーネント集合体内の他のコンポーネント等と通信し、及び／又は、連絡を取り合う。多くの場合、ＭＴＩデータベースはＭＴＩコンポーネント、他のプログラムコンポーネント等と連絡を取り合う。データベースは他のノードに関する情報及びデータを制限し、維持し、及び、提供してもよい。
【００６６】
〈ＭＴＩ〉
ＭＴＩコンポーネント８３５はＣＰＵにより実行される保持されたプログラムコンポーネントである。一実施形態において、ＭＴＩコンポーネントは前図（図８）において説明したＭＴＩの態様の何れかの、及び／又は全ての組み合わせを包含する。そして、ＭＴＩは種々の通信ネットワークを介し、情報、サービス、トランザクション等のアクセス、取得、供給等に作用する。
【００６７】
当該ＭＴＩコンポーネントは、複数ユーザによる、マルチモーダルなタッチスクリーンを介したジェスチャー入力を複数のＭＴＩコンポーネントを介して変換し、ユーザによりカスタマイズされた計算結果を表示し、ＭＴＩを使用してよい。一実施形態において、ＭＴＩコンポーネント８３５は、（例えば、タッチ入力４０１、以前のタッチ入力の組４０９、ユーザコマンド４１３、４１６、変更されたユーザコマンド４２０、光強度信号５０１、タッチＩＤ、位置座標６０１、７０１等の）入力を受け、（例えば、マルチモーダルタッチ処理部（ＭＴＰ）８４１、タッチ座標決定部（ＴＣＤ）８４２、タッチ種別識別部（ＴＩＩ）８４３、タッチグループ解析部（ＴＧＲ）８４４等の）ＭＴＩコンポーネントを介し、（例えば、実行されたユーザコマンド４２１、重心座標５０５、タッチＩＤと位置座標５０６、タッチＩＤとタッチ種別６０８、タッチグループ７０６等の）出力に変換する。
【００６８】
ノード間の情報のアクセスが可能なＭＴＩコンポーネントが、以下の標準開発ツール及び言語を利用することにより開発可能であるが、これに限られるものではない：Apacheコンポーネント、アセンブリ言語、ActiveX、実行可能なバイナリ、(ANSI) (Objective-) C (++)、C#及び／又は.NET、データベースアダプタ、CGIスクリプト、Java、JavaScript、マッピングツール、手続き型及びオブジェクト指向開発ツール、PERL、PHP、Python、シェルスクリプト、ＳＱＬコマンド、ウェブアプリケーションサーバ拡張、ウェブ開発環境及びライブラリ（例えば、Microsoft ActiveX、Adobe AIR, FLEX & FLASH、AJAX、(D)HTML、Dojo、Java、JavaScript、jQuery(UI)、MooTools、Prototype、script.aculo.us、SOAP (Simple Object Access Protocol)、SWFObject、Yahoo! User Interface等）、WebObjects等。一実施形態において、ＭＴＩサーバは通信の暗号化及び復号化のために暗号サーバを採用してもよい。ＭＴＩコンポーネントは自身が属するコンポーネント集合体内の他のコンポーネント等と通信し、及び／又は、連絡を取り合う。多くの場合、ＭＴＩコンポーネントはＭＴＩデータベース、オペレーティングシステム、他のプログラムコンポーネント等と連絡を取り合う。ＭＴＩコンポーネントはプログラムコンポーネント、システム、ユーザ、及び／又はデータ通信、要求、及び／又は応答を制限し、通信し、生成し、取得し、及び／又は提供してもよい。
【００６９】
〈分散型ＭＴＩ〉
ＭＴＩノードコントローラコンポーネントは、その複数の何れかの構造及び／又は動作が、開発、及び／又は、配置が容易となるように、種々の方法で結合され、一元化され、及び／又は、分散されてもよい。同様に、コンポーネント集合体は開発、及び／又は、配置が容易となるように、種々の方法で結合されていてもよい。このために、コンポーネントを共通のコードベース、又は、要求に応じてコンポーネントを動的にロードできる機能で一体的に統合してもよい。
【００７０】
コンポーネント集合体は、標準のデータ処理技術、及び／又は、開発技術による無数の設計変更に応じて統合され、及び／又は、分散されていてもよい。コンポーネント集合体内のプログラムコンポーネントの複数インスタンスが、何れも単一ノード上でインスタンスが生成されるか、及び／又は、負荷分散及び／又はデータ処理技術によりパフォーマンスが向上するように、多数のノード上でインスタンスが生成されていてもよい。さらに、一のインスタンスが複数のコントローラ及び／又は複数の記憶装置（例えば、データベース）に渡って分散されていてもよい。協調して動作する全てのプログラムコンポーネントインスタンス及びコントローラは、標準のデータ処理・通信技術によってそのようにしてよい。
【００７１】
ＭＴＩコントローラの構成はシステムの配備構成に依存する。例えば、予算、性能、場所、及び／又は基礎となるハードウェア資源の使用(これらに限られるものではない)が、配備の条件及び構成に影響を及ぼす。より一元化され、及び／又は統合されたプログラムコンポーネントを備えた構成となるか、より分散された一連のプログラムコンポーネントを備えた構成となるか、及び／又は、より一元化された構成とより分散された構成の組み合わせとなるかを問わず、データは通信され、取得され、及び／又は、提示される。プログラムコンポーネント集合体から共通のコードベースに一元化されたコンポーネントのインスタンスが、データの通信、取得、及び／又は提示を行ってもよい。これは、例えば、データ参照（例えばポインタ）、内部メッセージング、オブジェクトインスタンス可変通信、共有メモリ空間、可変パッシング等のアプリケーション内データ処理通信技術により可能となるが、これに限られるものではない。
【００７２】
コンポーネント集合のコンポーネントが孤立して、ばらばらで、及び／又は、他に対して外部に存在する場合、他のコンポーネントとの、及び／又は他のコンポーネントへのデータの通信、取得、及び／又は提示は、例えば下記に示すアプリケーション間データ処理通信技術により可能となるが、これに限られるものではない：ＡＰＩ（Application Program Interfaces）情報パッセージ、（分散型）ＣＯＭ（Component Object Model）、（分散型）ＯＬＥ（Object Linking and Embedding等）、ＣＯＲＢＡ（Common Object Request Broker Architecture）、Jini local and remote application program interfaces、ＪＳＯＮ（JavaScript Object Notation）、ＲＭＩ（Remote Method Invocation）、ＳＯＡＰ、プロセスパイプ、共有ファイル等。アプリケーション間通信を介して別々のコンポーネント間で送信されるメッセージ、又は、アプリケーション内通信を介して単一のコンポーテントのメモリ空間へ送信されるメッセージは、文法(grammar)の生成及び解析によって容易となる。文法は例えばｌｅｘ、ｙａｃｃ、ＸＭＬ等の文法を生成し解析する機能を有して、コンポーネント内、及びコンポーテント間の通信メッセージの基礎を生成する開発ツールの利用によって開発されてもよい。
【００７３】
例として、ＨＴＴＰのポストコマンドのトークンを認識するように配列された下記の文法を考える。
w3c -post http://... Value1
【００７４】
ここで、"http://"は文法構文(grammar syntax)の一部であり、その次に続くものがpost値と認識されるため、Value1はパラメータとして識別される。同様に、そのような文法では、変数"Value1"は"http://"ポストコマンド内に挿入した状態で送信されてもよい。文法構文自体は、構文解析メカニズムの生成のために解釈、及び／又は使用される構造化されたデータ（例えば、lexやyacc等が生成する構文記述テキストファイル）として提示されてもよい。また、一度構文解析メカニズムが生成され、及び／又は、インスタンス化されると、当該構文解析メカニズムは自身で、文字（例えばタブ）で区切られたテキスト、ＨＴＭＬ、構造化されたテキストストリーム、ＸＭＬ等の構造化されたデータ（これに限られるものではない）を処理、及び／又は、解析してもよい。別の実施形態では、アプリケーション間データ処理プロトコルそれ自身が、統合化された、及び／又は、直ちに利用可能なパーサ（例えば、ＪＳＯＮ、ＳＯＡＰ等）を有し、（例えば、通信文）データを構文解析するために利用されてもよい。さらに、メッセージ解析のほか、データベース、データ集合体、データ蓄積、構造化データ等の解析にも、文法解析を行ってもよい。また、システム配備の内容、環境、及び条件に応じて、所望の構成は変化する。
【００７５】
例えば、いくつかの実装例では、ＭＴＩコントローラは、情報サーバを介し、ＳＳＬ（Secure Sockets Layer）ソケットサーバを実装したＰＨＰスクリプトを実行してもよい。ＰＨＰスクリプトは、サーバ上のあるポートを待機状態とし、クライアントが例えばＪＳＯＮフォーマットで符号化されたデータを当該ポートに向けて送信するとき、当該ポートから到来する通信に耳を傾ける。到来する通信文の識別後、ＰＨＰスクリプトはクライアント機器からの到来メッセージを読み取り、受信したＪＳＯＮ符号化されたテキストデータを構文解析により当該ＪＳＯＮ符号化されたテキストデータから情報を取り出してＰＨＰスクリプトの変数とし、（例えば、クライアント識別情報等の）データ、及び／又は、取り出された情報をＳＱＬ（Structured Query Language）によりアクセス可能なリレーショナルデータベースに保存する。ＳＳＬ接続を介してクライアント機器からＪＳＯＮ符号化された入力データを受け付け、当該データを構文解析して変数を取り出し、データをデータベースに保存するための、実質的にＰＨＰ／ＳＱＬコマンドの形式で記載された例示的なリストを、以下に示す。
【００７６】
<?PHP
header('Content-Type: text/plain');
// set ip address and port to listen to for incoming data
$address = '192.168.0.100'; 
$port = 255;
// create a server-side SSL socket, listen for/accept incoming communication
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, $port) or die('Could not bind to address');
socket_listen($sock);
$client = socket_accept($sock);
// read input data from client device in 1024 byte blocks until end of message
do {
$input = "";
$input = socket_read($client, 1024);
$data .= $input;
} while ($input != "");
// parse data to extract variables
$obj = json_decode( $data, true);
// store input data in a database 
mysql_connect("201.408.185.132", $DBserver, $password); // access database server
mysql_select("CLIENT_DB.SQL"); // select database to append
mysql_query("INSERT INTO UserTable (transmission)
VALUES ($data)"); // add data to UserTable table in a CLIENT database
mysql_close("CLIENT_DB . SQL"); // close connection to database
?>
【００７７】
また、ＳＯＡＰパーサの実装に関しては、例示の実施形態として、下記のリソースを利用できる：
http://www.xav.com/perl/site/lib/SOAP/Parser.html
http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/
index.jsp?topic=/com.ibm.IBMDI.doc/referenceguide295.htm
【００７８】
さらに、他のパーサの実装については：
http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/
index.jsp?topic=/com.ibm.IBMDI.doc/referenceguide259.htm
【００７９】
これらパーサ実装の全てが、ここで、参照により明示的に取り込まれる。
【００８０】
様々な課題及び技術進歩に対応するため、「マルチモーダルタッチスクリーン対話装置、方法、及び、システム」についてのこの出願の全体（表紙、題名、見出し、技術分野、背景技術、概要、図面の簡単な説明、詳細な説明、特許請求の範囲、カバーページ、要約、図面、付録その他を含む）は、特許請求された発明が実施されうる種々の実施形態を説明するものである。この出願に記載の効果、及び特徴は実施形態における代表的な一例のみを取り出したものであり、これらは網羅的、及び／又は、排他的ではない。これらは特許請求された指針の理解を助け、及び教示するために提示されているに過ぎない。これらは特許請求された全ての革新を代表するものではないと理解すべきである。そのため、開示のある側面について、ここでは説明されていない場合がある。革新のある特定の一部について代替する実施形態が提示されていない場合、或いは、さらに記載されていない代替する実施形態がある一部について利用可能である場合であっても、これらの代替する実施形態は放棄されたと考えるべきではない。それら記載のない実施形態のうち多数は当該革新と同じ指針を包含し、他は均等と理解されるであろう。したがって、他の実施形態の利用に際し、開示の範囲、及び／又は、精神から逸脱することなく、機能的な、論理的な、運用上の、組織的な、構造的な、及び／又は、トポロジー的な変更を伴ってもよいと理解される。そして、この開示全体に渡って、全ての具体例、及び／又は、実施形態は限定されないものと考えられる。さらに、ここで説明された実施形態に関し、記載の節約と繰り返しを避けるために説明されていない場合を別として、ここで説明されていない実施形態との比較推論を行うべきではない。例えば、図及び／又は全体を通して記載された、任意のプログラムコンポーネント（コンポーネント集合体）、他のコンポーネント、及び／又は任意の現存する特徴の組との任意の組み合わせについての論理的、及び／又は、トポロジー的な構造は、固定の動作順序及び／または配列に限定されるものではなく、むしろ、開示された順序は例示的であって、順序に拘わらず、全ての均等物が開示によって期待される。さらに、そのような特徴はシリアル実行に限られるものではなく、むしろ、非同期で、一斉に、並列して、同時に、同期して、及び／又は同等の方法で実行するための多数のスレッド、プロセス、サービス、サーバ等が開示によって期待される。その場合、これらの特徴のいくつかは、ある一実施形態において同時に存在できないことにより互いに矛盾するかもしれない。同様に、いくつかの特徴は革新の一側面において適用可能であるが、他では適用できないことがある。加えて、本開示は現時点で特許請求されていない他の革新を含んでいる。出願人はこれらの現時点で特許請求されていない革新について、そのような革新を特許請求する権利、追加的な出願、継続出願、一部継続出願、分割出願等を行う権利を含め、全ての権利を保持している。そして、本開示の効果、実施形態、具体例、特徴、機能、論理的な、運用上の、組織的な、構造的な、トポロジー的な、及び／又は他の一側面は、開示上の特許請求の範囲の規定を限定するもの、又は、特許請求の範囲の均等物を限定するものと考えるべきではない。ＭＴＩの個人及び／又は企業ユーザの個別の要求、特性、データベースの構成及び／又はリレーショナルモデル、データ型、データ伝送及び／又はネットワーク構成、構文構造等に応じて、大幅な柔軟性及びカスタマイズを可能とする種々のＭＴＩの実施形態を利用してよいことを理解すべきである。例えば、ＭＴＩの側面は３次元没入型システム、仮想現実体験、オフィススイート等に適合されてもよい。ＭＴＩについての種々の実施形態及び説明は人とコンピュータ間の対話を目的としているが、ここに記載された実施形態は多岐にわたる他の応用、及び／又は、実装に対して容易に構成され、及び／又は、カスタマイズされてよいと理解される。
【図１Ａ】
2014507726.tif 000003
【図１Ｂ】
2014507726.tif 000004
【図２Ａ】
2014507726.tif 000005
【図２Ｂ】
2014507726.tif 000006
【図２Ｃ】
2014507726.tif 000007
【図２Ｄ】
2014507726.tif 000008
【図３】
2014507726.tif 000009
【図４Ａ】
2014507726.tif 000010
【図４Ｂ】
2014507726.tif 000011
【図５】
2014507726.tif 000012
【図６】
2014507726.tif 000013
【図７Ａ】
2014507726.tif 000014
【図７Ｂ】
2014507726.tif 000015
【図８】
2014507726.tif 000016
【国際調査報告】
2014507726.tif 000017