(57)【要約】  署名デバイスに通信可能に接続されたローカルコンピューティングデバイスによって実行されるコンピュータ実装方法。本方法は、ローカルウェブサーバを含む署名デバイス制御インスタンスを起動することを含む。署名デバイス制御インスタンスは署名デバイスを制御して署名デバイスから署名データを受信し、第１のＵＲＬに対応するローカルホスト及び第１のポートを待ち受けする。本方法は、さらに、ローカルコンピューティングデバイス上で実行されるウェブブラウザによって、第２のＵＲＬを用いてリモートサーバからウェブページを読み出すことを含む。ウェブページは、署名デバイスによって入力される署名に対するコンテキストと第１のＵＲＬを示すクロスドメイン参照とを示す書類を含む。本方法は、さらにまた、ウェブブラウザによって、第１のＵＲＬを用いて、署名デバイス制御インスタンスによって待ち受けされた第１のポートとの接続を確立することと、ウェブブラウザによって署名デバイスを制御することと、ウェブブラウザによって署名デバイスから署名データを受信することとを含む。
2019502177.tif 000002
【特許請求の範囲】
【請求項１】
署名デバイスに通信可能に接続されたローカルコンピューティングデバイスによって実行されるコンピュータ実装方法であって、
ローカルウェブサーバを含む署名デバイス制御インスタンスであって、前記署名デバイスを制御して前記署名デバイスから署名データを受信し、第１のＵＲＬに対応するローカルホスト及び第１のポートを待ち受けする前記署名デバイス制御インスタンスを起動することと、
前記署名デバイスによって入力される署名に対するコンテキストを示す書類と、前記第１のＵＲＬを示すクロスドメイン参照とを含むウェブページを、前記ローカルコンピューティングデバイス上で実行されるウェブブラウザによって、第２のＵＲＬを用いてリモートサーバから読み出すことと、
前記ウェブブラウザによって、前記第１のＵＲＬを用いて、前記署名デバイス制御インスタンスにより待ち受けされた前記第１のポートとの接続を確立することと、
前記ウェブブラウザによって前記署名デバイスを制御することと、
前記ウェブブラウザによって前記署名デバイスから署名データを受信することとを含む方法。
【請求項２】
請求項１に記載の方法であって、
前記起動することを、前記ウェブブラウザが起動される前の、ユーザセッションの起動時に実行する方法。
【請求項３】
請求項１に記載の方法であって、
前記接続はＨＴＴＰＳ接続である方法。
【請求項４】
請求項１に記載の方法であって、
前記ローカルウェブサーバは、前記ローカルコンピューティングデバイスで生成されインストールされた固有の認証局によって署名された証明書を使用する方法。
【請求項５】
請求項１に記載の方法であって、
さらに、座標データもしくは前記署名データ、または前記座標データによって生成されたデータもしくは前記署名データによって生成されたデータを、前記リモートウェブサーバまたは前記リモートウェブサーバに関連付けられたサーバに送信することを含む方法。
【請求項６】
請求項５に記載の方法であって、
前記送信することは、前記座標データまたは前記署名データを前記書類に接続することと、接続された当該データを前記リモートサーバまたは前記リモートウェブサーバに関連付けられた前記サーバに送信することを含む方法。
【請求項７】
１つまたは複数の署名デバイスに通信可能に接続されたローカルコンピューヒング装置によって実行されるコンピュータ実装方法であって、
複数のウェブブラウザプロセスと前記複数の署名デバイス制御インスタンスに関連付けられた複数のポート番号の間の複数のマッピングを管理するアービトレータサービスを実行することと、
第１のローカルウェブサーバを含む第１の署名デバイス制御インスタンスであって、第１の署名デバイスを制御して前記第１の署名デバイスから署名データを受信し、第１のＵＲＬに対応する第１のポートを待ち受けする第１の署名デバイス制御インスタンスを起動することと、
前記第１の署名デバイスによって入力される署名に対するコンテキストを示す書類と、前記第１のＵＲＬを示すクロスドメイン参照とを含むウェブページを、前記ローカルコンピューティングデバイス上で実行される第１のウェブブラウザプロセスによって、第２のＵＲＬを用いてリモートサーバから読み出すことと、
前記第１のウェブブラウザプロセスによって、前記アービトレータサービスから前記第１のポートのポート番号を取得することと、
前記第１のウェブブラウザプロセスによって、前記アービトレータサービスから取得したポート番号を用いて前記第１のポートとの接続を確立することと、
前記第１のウェブブラウザプロセスによって前記第１の署名デバイスを制御することと、
前記第１のウェブブラウザプロセスによって前記第１の署名デバイスから署名データを受信することとを含む方法。
【請求項８】
請求項７に記載の方法であって、
前記アービトレータサービスを、いずれかの署名デバイス制御インスタンスが起動される前に実行する方法。
【請求項９】
請求項８に記載の方法であってさらに、
第２のローカルウェブサーバを含む第２の署名デバイス制御インスタンスであって、前記第１の署名デバイスまたは他の制御装置を制御し、前記第１のＵＲＬに対応する第２のポートを待ち受けする第２の署名デバイス制御インスタンスを起動することと、
前記ローカルコンピューティングデバイス上で実行される第２のウェブブラウザプロセスによって、前記リモートサーバから前記ウェブページを読み出すことと、
前記第２のウェブブラウザプロセスによって、前記アービトレータサービスから前記第２のポートのポート番号を取得することと、
前記第２のウェブブラウザプロセスによって、前記アービトレータサービスから取得したポート番号を用いて前記第２のポートとの接続を確立することとを含む方法。
【請求項１０】
請求項７乃至請求項９のいずれか１項に記載の方法であって、
前記アービトレータサービスは、
前記第１のウェブブラウザプロセスのプロセスＩＤ（ＰＩＤ）を取得し、
前記ＰＩＤに関連付けられたユーザＩＤ（ＵＩＤ）を取得し、
前記ＵＩＤに対する前記第１のポートのポート番号を取得することによって、前記マッピングを管理する方法。
【請求項１１】
請求項１０に記載の方法であって、
前記アービトレータサービスは前記ＵＩＤ及びポート番号を保持し、前記第１のポートのポート番号は前記アービトレータサービスによって割り当てられ、前記第１のポートのポート番号を取得することは、割り当てられたポート番号及びＵＩＤのテーブル内のポート番号を参照することを含む方法。
【請求項１２】
１つまたは複数の署名デバイスに通信可能に接続されたローカルコンピューティングデバイスによって実行されるコンピュータ実装方法であって、
第１のＵＲＬに対応する第１のポートを待ち受けして複数のウェブブラウザプロセスと複数の署名デバイス制御インスタンスとの間の複数のマッピングを管理するローカルウェブサーバを起動するプロキシサービスを実行することと、
第１の署名デバイスを制御して前記第１の署名デバイスから署名データを受信する第１の署名デバイス制御インスタンスを起動することと、
前記第１の署名デバイスによって入力される署名に対するコンテキストを示す書類と、前記第１のＵＲＬを示すクロスドメイン参照とを含むウェブページを、前記ローカルコンピューティングデバイス上で実行される第１のウェブブラウザプロセスによって、第２のＵＲＬを用いて、リモートサーバから読み出すことと、
前記第１のウェブブラウザプロセスによって、前記プロキシサービスにより待ち受けされた前記第１のポートに署名デバイス制御呼出しを送信することと、
前記プロキシサービスによって、プロセス間通信（ＩＰＣ）を用いて、前記呼出しを前記第１の署名デバイス制御インスタンスに送信して呼出し応答を受信することと、
前記プロキシサービスによって前記呼出し応答を前記第１のウェブブラウザプロセスに送信することと、
前記第１のウェブブラウザプロセスによって前記第１の署名デバイスを制御することと、
前記第１のウェブブラウザプロセスによって前記第１の署名デバイスから署名データを受信することとを含む方法。
【請求項１３】
請求項１２に記載の方法であって、
前記プロキシサービスを、いずれかの署名デバイス制御インスタンスが起動される前に実行する方法。
【請求項１４】
請求項１３に記載の方法であって、さらに、
前記第１の署名デバイスまたは他の署名デバイスを制御する第２の署名デバイス制御インスタンスを起動することと、
前記ローカルコンピューティングデバイス上で実行される第２のウェブブラウザプロセスによって、前記リモートサーバから前記ウェブページを読み出すことと、
前記第２のウェブブラウザプロセスによって、前記プロキシサービスによって待ち受けされた前記第１のポートに署名デバイス制御呼出しを送信することと、
前記プロキシサービスによって、プロセス間通信（ＩＰＣ）を用いて、前記呼出しを前記第２の署名デバイス制御インスタンスに送信して呼出し応答を受信することと、
前記プロキシサービスによって前記呼出し応答を前記第２のウェブブラウザプロセスに送信することを含む方法。
【請求項１５】
請求項１２乃至請求項１４のいずれか１項に記載の方法であって、
前記プロキシサービスは、
前記第１のウェブブラウザプロセスのプロセスＩＤ（ＰＩＤ）を取得し、
前記ＰＩＤに関連付けられたユーザＩＤ（ＵＩＤ）を取得し、
前記ＵＩＤに対する前記第１の署名デバイス制御インスタンスとのＩＰＣを用いるのに供される情報を取得することによって、
前記マッピングを管理する方法。
【請求項１６】
請求項１乃至請求項１５のいずれか１項に記載の方法であって、
前記クロスドメイン参照はクロスプラットフォーム記述言語コードで提供される方法。
【請求項１７】
請求項１６に記載の方法であって、
前記クロスプラットフォーム記述言語コードはＪａｖａＳｃｒｉｐｔ（登録商標）である方法。
【請求項１８】
請求項１乃至請求項１７のいずれか１項に記載の方法であって、
前記ウェブページによって提供される少なくとも一部のコードは、クロスドメイン方式を用いて読み出される方法。
【請求項１９】
請求項１８に記載の方法であって、
前記クロスドメイン方式はＪＳＯＮ−Ｐ方式またはＣＯＲＳ方式である方法。
【請求項２０】
請求項１乃至請求項１９のいずれか１項に記載の方法であって、
前記署名データは、ペンイベントデータまたはペンイベントデータ以外の署名データを含む方法。
【請求項２１】
請求項１乃至請求項２０のいずれか１項に記載の方法を実行するようにプログラムされたコンピューティング装置。
【請求項２２】
実行されると、１つまたは複数のコンピューティング装置に請求項１乃至請求項２０のいずれか１項に記載の方法を実行させる命令を格納した一時的でないコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
電子手書きは様々な場面で次第に重要になっている。電子手書きが一般化するにつれて、電子手書きの真正性を検証する能力もいっそう重要になった。例えば、電子手書きは、クレジットカード所持者によるクレジットカードトランザクションの承認を得るためにペン及び紙の代わりに用いられるのが今や一般的である。他の例として、銀行、小売店その他の、法的に拘束される書類への署名を得る場所において、署名パッド及び署名タブレットが用いられる。通常、必要な署名をキャプチャする機能が、署名デバイスが接続されるコンピュータ上で、または好適に構成される装置にあっては署名デバイス自体で動作する専用のソフトウェアアプリケーションの形態で備えられる（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００２】
【特許文献１】米国特許第９２３５７４８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００３】
同時に、コンシューマは、インターネットを介したより多くのデジタルコンテンツ及び多種多様な機能性へのアクセスを要求している。過去には、ウェブサイトがコンシューマに適切な機能を確保するための特定の機能性を備えた特定のウェブブラウザ（例えば、Ｍｉｃｒｏｓｏｆｔ社によって提供される、ＡｃｔｉｖｅＸ（登録商標）機能を備えたＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）ブラウザ）を使用するように求めることがあった。しかし、今日のコンシューマはシームレスなアクセスを要求する。ウェブサイトがコンシューマの好みに合わない特定のブラウザまたはプラットフォームを要求すれば、コンシューマはもっと良い方法を求めて他のどこかを探すだけであろう。同様に、ビジネス向けに設計されたウェブサービスが対応していないブラウザまたはプラットフォームがあると、そのサービスのプロバイダは顧客を失うおそれがある。
【０００４】
一方で、サービスプロバイダは、デジタルコンテンツへのシームレスなアクセスに対する顧客の要望とセキュリティ対策込みの機能性とのバランスをとらなければならない。
【図面の簡単な説明】
【０００５】
【図１Ａ】図１Ａは、説明される実施形態が実施され得る例示的なシステムのブロック図である。
【図１Ｂ】図１Ｂは、ブラウザウィンドウ１３１及び署名キャプチャウィンドウ１４５を含む例示的なグラフィカルユーザインタフェース１１１のスクリーンショットである。
【図１Ｃ】図１Ｃは、例示的な手書き署名１０６Ａ及び当該署名１０６Ａの表現１０６Ｂを示す図である。
【図１Ｄ】図１Ｄは、ペン装置について検出され得るパラメータを示す図である。
【図２】図２は、第１の例示的な実施形態に係る処理２００のフローチャートである。
【図３Ａ】図３Ａは、本明細書で説明される例示的な実施形態が実施され得る例示的なマルチユーザ環境３００を示すシステム図である。
【図３Ｂ】図３Ｂは、上述のマルチユーザセッションをより詳細に示すシステム図である。
【図４】図４は、第３の例示的な実施形態または他の実施形態が実施され得る例示的なローカルコンピュータ１１０の他の実施形態のブロック図である。
【図５】図５は、第３の例示的な実施形態に係る処理５００のフローチャートである。
【図６】図６は、第４の例示的な実施形態または他の実施形態が実施され得る例示的なローカルコンピュータ１１０の他の実施形態のブロック図である。
【図７】図７は、第３の例示的な実施形態に係る処理７００のフローチャートである。
【図８】図８は、本開示の実施形態に従う使用に適切な例示的なコンピューティング装置８００の態様を示すブロック図である。
【発明を実施するための形態】
【０００６】
同様の符号が同様の要素を指す添付の図面に関連して以下で述べる詳細な説明は、開示される主題の様々な実施形態の説明として意図したものであり、最適な実施形態を表すことを意図していない。本開示において説明される各実施形態は例または説明図としてのみ提供され、他の実施形態に照らして好ましいとも有利であるとも解釈されるものではない。本明細書で提供される例示は、包括的であることも、主張される主題を開示された形態そのものに限定することも意図していない。
【０００７】
以下の説明において、本開示の例示的な実施形態の完全な理解を与えるために多数の具体的詳細を説明する。しかし、当業者が具体的詳細の一部または全部を用いずに本開示の多くの実施形態を実施し得ることは明らかであろう。場合によっては、本開示の種々の態様に対して不必要に焦点をぼかさないために、周知の処理ステップを詳細には説明していない。また、本開示の実施形態は、本明細書で説明される特徴の任意の組合せを採用し得る。
Ｉ．導入
【０００８】
本明細書において、最新のウェブアプリケーション及びウェブブラウザに好適な署名プラットフォームを説明する。説明される実施形態において、ローカルコンピューティングデバイスが署名デバイスに通信可能に接続される。ローカルコンピュータ上で実行されるウェブブラウザは、リモートウェブサーバ及び署名機能を提供するセキュアなローカルウェブサーバと通信する。説明される実施形態は、マルチユーザシナリオに好適な実施形態を含む。このような実施形態は、銀行支店などの多くのユーザによって多数の署名が収集される状況において特に有用となり得る。このような一実施形態において、ウェブブラウザは既知のポート番号を用いてアービトレータサービスと通信する。アービトレータサービスはウェブブラウザに、ユーザに適合するローカルウェブサーバのポート番号を通知する。ウェブブラウザは当該ポート番号を用いてローカルウェブサーバに接続し、署名機能の使用を、当該署名機能の使用がそのユーザに対して承認された場合にのみ許可する。
【０００９】
本明細書では、「署名デバイス」との用語は、署名用の手書き入力をキャプチャする装置のことを指す。署名デバイスは、専用の署名収集装置、または相当に構成されたスマートフォンまたはタブレットコンピュータなどの汎用装置として実施され得る。署名デバイスは必ずしも厳密に入力装置ではなく、他の機能（例えば、表示機能、データ送信機能など）を含んでいてもよい。例示的な署名デバイスに関するさらなる詳細は、以下で提供される。
Ａ．第１の例示的な実施形態
【００１０】
本項においては、署名デバイス（例えば、専用の署名タブレットまたは署名の収集に好適な他の装置）に通信可能に接続されたローカルコンピューティングデバイス（デスクトップコンピュータ、ノートブックコンピュータ、または任意の他の適当なコンピューティング装置など）が、インターネットなどのネットワークを介してリモートサーバによりローカルコンピューティングデバイスに提供された電子書類にユーザが署名する機能を提供する第１の例示的な実施形態を説明する。
【００１１】
図１Ａは、説明される実施形態が実施され得る例示的なシステムのブロック図である。図１Ａに示す例において、ローカルコンピュータ１１０は、ウェブブラウザ１３０により、インターネットなどのネットワーク９０を介してリモートウェブサーバ１２０と通信する。セキュリティのため、リモートウェブサーバはＨＴＴＰＳを用いてウェブブラウザ１３０と通信し得るとともに、信頼できる認証局によって署名された証明書を用い得る。ローカルコンピュータ１１０は、ローカルウェブサーバ１４２、制御モジュール１４４、及びデータモジュール１４６を含む署名デバイス制御インスタンス１４０を起動する。したがって、本例においては、署名デバイス制御インスタンス１４０が起動されると、対応するローカルウェブサーバ１４２も起動される。しかし、以下で説明するように、対応するローカルウェブサーバ１４２を備えない署名デバイス制御インスタンス１４０を提供するのが好ましいこともあり得る。署名デバイス制御インスタンスをウェブブラウザ１３０と組み合わせて用いることが可能であるが、署名デバイス制御インスタンスはウェブブラウザ１３０から独立させて起動することが可能であり、ブラウザに対するプラグインコンポーネントとして提供される必要はない。署名デバイス制御インスタンス１４０及びローカルウェブサーバ１４２は、コンピュータ始動時に（例えば、ウェブブラウザ１３０が起動される前に）、または他の何らかのときに（例えば、署名が予定されることを示す、ユーザ入力、またはウェブブラウザ１３０からの入力に応答して）、起動することが可能である。
【００１２】
図１Ａに示す例において、ローカルコンピュータ１１０は、ウェブブラウザ１３０及び制御モジュール１４４をそれぞれインタラクトするユーザインタフェース要素１３１及び１４５（例えば、アプリケーションに個別のウィンドウ）を備えたグラフィカルユーザインタフェース１１１を提供する。制御モジュール１４４は署名デバイス１５０を制御し、データモジュール１４６は、署名デバイス１５０からの署名に対応する署名データ（例えば、座標データ及び圧力データなどのペンイベントデータ、またはペンイベントデータ以外の署名データ（例えば、署名の画像、生体データなど））を受信する。署名データの内容は、署名デバイス制御ソフトウェアまたは署名デバイス自体の構成または機能に依存し得る。例えば、署名データは、署名のデジタル画像、ペンイベントデータ、他の署名データ、またはこのようなデータの何らかの組合せを含み得る。本例において、署名デバイスは電子書類（例えば、契約書）を表示するＬＣＤ画面１５１を備え、当該ＬＣＤ画面は、制御モジュール１４４によって提供される、ペン装置１５２を用いて署名がなされる署名領域１５３と、署名が完了したことを確認する、署名を消去する、署名を取り消すなどするのに用いられ得るインタフェース要素１５４（例えば、「ＯＫ」、「クリア」、及び「取消」ボタン）とを含む。なされた署名に対応する署名データは、データモジュール１４６への入力として提供され得る。
【００１３】
図１Ｂは、ブラウザウィンドウ１３１及び署名キャプチャウィンドウ１４５を含む例示的なグラフィカルユーザインタフェース１１１のスクリーンショットである。図１Ｂに示す例において、書類及び関連するユーザインタフェース要素に対応するコード（例えば、ＨＴＭＬコード及びＪａｖａＳｃｒｉｐｔ（登録商標）コード）は、リモートウェブサーバ１２０からダウンロードされてブラウザウィンドウ１３１内に描画される。署名デバイス制御インスタンス１４０は、ローカルコンピューティングデバイス上に、また図１Ａに示す例においては署名デバイス１５２のＬＣＤ画面１５１上に、署名キャプチャウィンドウ１４５を表示させる。
【００１４】
一般に、署名デバイスは、デジタイザがペンの動きを検出するセンサ基板を組み込み、センサ基板表面によって生成される磁場によりペンの共振回路中にエネルギーを誘導する電磁共鳴（ＥＭＲ）方式を使用し得る。その場合に、ペンの共振回路はこのエネルギーを利用してセンサ基板表面に磁気信号を返す。基板は、電子ペンがセンサ基板表面に接触しなくても、ペンから信号が受信され続けるようにペンがセンサ基板に十分に近接し続ける限り、一定時間間隔でペンの座標位置を検出する（有効な信号範囲は使用される個々の方式に依存して変化し得るが、一般に約数ミリメートルである。）。
【００１５】
これに代えて、他の手書き入力方式を用いてもよい。例えば、電子ペンは他の無線方式を用いてもよく、または有線でデジタイザに接続されてもよい。他の例として、電子ペンはデジタイザの表面から離れて検出可能であってもなくてもよい。他の例として、電子ペンは電源供給型であってもよいし非電源供給型であってもよい。電源供給型ペンは外部電源への有線接続によって、または内蔵電池によって電源を受け取ってもよい。他の例として、電子ペンを用いずに手書きデータを入力することが可能である（例えば、感圧デジタル手書きパッド、タッチ画面、または電子ペンを必要としない何らかの他の入力装置上のスタイラスによる）。
【００１６】
どのように手書きデータを収集するにしても、署名デバイスによって提供される手書きデータは、ペンイベント情報、装置情報、及び／または手書きがなされたコンテキストに関するコンテキスト情報を含み得る。ペンイベント情報は、デジタイザ表面上またはデジタイザ表面の上方のペン先のｘ／ｙ位置と、手書きの開始からの時間とを含み得る。ｘ／ｙ座標値の他に、ペンイベント情報は、圧力（ペンフォース）、角度（方位角、仰角、及び／または回転）、及びペンダウンステータスなどの、署名デバイスの機能に属する付加情報を適宜含み得る。ペンイベント情報は、通常、署名処理中に一定間隔で収集される。
【００１７】
図１Ｃに示す例において、例示的な手書き処理１０６Ａは、ペンが信号範囲内にとどまる限りペンがデジタイザの表面から持ち上げられているときにペンイベントを検出し続けることが可能な方式（例えば、ＥＭＲ方式）を用いるペン装置及びデジタイザによって検出される複数のペンイベントを含む。署名１０６Ａの表現１０６Ｂにおいて、ペンがアップしているときに検出される座標を明るいほうのドットで示し、ペンがダウンしている間に検出される座標を暗いほうのドットで示す。図１Ｄに示す例において、ペン装置について検出され得るパラメータ中に回転、仰角、及び方位角が含まれる（大きな黒矢印で示す）。
【００１８】
図１Ａを再度参照すると、ローカルウェブサーバ１４２は、ＡｃｔｉｖｅＸコントロールなどの、これらを使用するブラウザの種類に特化して構成されなければならない、ローカルにインストールされたプラグインまたはコントロールを使用せずに、ブラウザ１３０がセキュアな方法で署名機能を制御することを可能とする。本例において、ローカルウェブサーバ１４２は、始動時にバックグラウンドで起動される。ブラウザ１３０はリモートウェブサーバ１２０からウェブページをロードする。また、ウェブページは、ウェブページがクロスドメイン方式（例えば、ＪＳＯＮ−Ｐ（ＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ  ｗｉｔｈ  Ｐａｄｄｉｎｇ）方式、ＣＯＲＳ（Ｃｒｏｓｓ−ｏｒｉｇｉｎ  Ｒｅｓｏｕｒｃｅ  Ｓｈａｒｉｎｇ）方式、またはＷｅｂＳｏｃｋｅｔプロトコルに準拠する方式）、及びＨＴＴＰ  Ｇｅｔ要求を用いてローカルウェブサーバ１４２に逐次の呼出しを行うことを可能とするフレームワーク（例えば、ＪａｖａＳｃｒｉｐｔ（登録商標）フレームワーク）を提供し得る。ローカルウェブサーバ１４２は、これらの呼出しを受信し、呼出しを解釈し、制御モジュール１４４を用いて署名デバイス１５０を制御し得る。
【００１９】
例示的なシナリオにおいて、ローカルコンピュータ１１０のユーザは、ローカルコンピュータにおいて署名デバイスを制御する関数を備えたライブラリをロードするコード（例えば、＜ｓｃｒｉｐｔ  ｓｒｃ＝"ｓｉｇｎａｔｕｒｅｓｄｋ．ｊｓ"＞＜／ｓｃｒｉｐｔ＞）を含むウェブページ（例えば、ｈｔｔｐｓ：／／ｅｘａｍｐｌｅｐａｇｅ．ｃｏｍ／ｄｅｍｏ．ｈｔｍ）を訪問する。ｓｉｇｎａｔｕｒｅｓｄｋ．ｊｓファイルは、ウェブページの一部であってそれらの関数についてのコードを提供するが、当該ウェブページはそれらの関数の実行をローカルウェブサーバに受け渡す。コードはローカルウェブサーバ１４２のＵＲＬ（例えば、"ｈｔｔｐ：／／ｌｏｃａｌｈｏｓｔ："）を示すクロスドメイン参照（すなわち、当該ウェブページのドメイン以外のドメインへの参照）を含み得る。コードは、ＪＳＯＮ−Ｐ方式などのクロスドメイン方式を用いて送信され得る。ＪＳＯＮ−Ｐ方式は、他のリモートサーバと通信するのに用いられ得るが、ここではローカルコンピュータ１１０上で動作するローカルウェブサーバ１４２と通信するのに用いられる。
【００２０】
セキュリティのため、ローカルウェブサーバ１４２もＨＴＴＰＳを用いてウェブブラウザ１３０と通信し得る。当該ローカルウェブサーバはさらに、認証局によって署名された証明書を用い得るが、この認証局は、例えば、署名デバイス制御インスタンス１４０に対応する署名ソフトウェアのインストール中にコンピュータ１１０上に生成されインストールされた固有の認証局である。このように、ウェブブラウザ１３０は、ローカルウェブサーバ１４２によって用いられる証明書を真正であるとして受理する。各コンピュータにおいて固有の認証局及び証明書を用いることによって、一方のコンピュータによって用いられる証明書／認証局が侵害されても、本システムを使用する他のすべてのコンピュータのセキュリティは必ずしも侵害されない。
【００２１】
実装に依存して、ローカルウェブサーバ１４２は、任意選択的にさらに、ＡｃｔｉｖｅＸコントロールインスタンスを生成し、格納し、追跡し、最終的に廃棄し得る。このような実装において、ローカルウェブサーバ１４２は、各ＡｃｔｉｖｅＸコントロールインスタンスに対する固有かつランダムなＩＤを生成し、当該ＩＤをウェブブラウザ１３０と共有し得る。
【００２２】
図２は、第１の例示的な実施形態に係る処理２００のフローチャートである。図２に示す例において、ステップ２１０において、ローカルコンピューティングデバイス（例えば、図１Ａに示すローカルコンピュータ１１０）は、第１のポート及び第１のＵＲＬに関連付けられたローカルウェブサーバを含む署名デバイス制御インスタンス（例えば、ワコム社より入手可能なＳｉｇｎａｔｕｒｅ  ＳＤＫまたはＳＴＵ  ＳＤＫを用いる制御インスタンス）を起動する。署名デバイス制御インスタンスは、ローカルコンピューティングデバイスが署名デバイスを制御することを可能とし、署名デバイスから署名データを受信する。ローカルウェブサーバは第１のポートを待ち受け（Listen）する。ステップ２２０において、ローカルコンピューティングデバイス上で実行されているウェブブラウザは、第２のＵＲＬに関連付けられたリモートサーバからウェブページを読み出す（例えば、ＨＴＴＰＳ接続などのセキュアな接続を介する）。
【００２３】
ウェブページは、ローカルコンピューティングデバイス上で描画または実行されるコードを提供する。このコードは、署名デバイスによって入力される署名に対するコンテキスト（例えば、専用の署名領域を備えた電子書類の形式による視覚的なコンテキスト）を提供する。このコードは、さらに、第１のＵＲＬ（例えば、"ｈｔｔｐｓ：／／ｌｏｃａｌｈｏｓｔ："）を示すクロスドメイン参照を提供する。例えば、クロスドメイン参照は、ＪａｖａＳｃｒｉｐｔ（登録商標）などのクロスプラットフォーム記述言語コードで提供され得る。
【００２４】
ウェブページによって提供されるコードの少なくとも一部は、最新のウェブブラウザにおいて実施され得る同一発行元ポリシーを考慮して、ＪＳＯＮ−Ｐ方式またはＣＯＲＳ方式などのセキュアなクロスドメイン方式を用いて提供され得る。
【００２５】
ステップ２３０において、ウェブブラウザは、第１のＵＲＬを用いて、署名デバイス制御インスタンスにより待ち受けされた第１のポートとの接続（例えば、ＨＴＴＰＳ接続）を確立する。ステップ２４０において、ウェブブラウザは、署名デバイスからの署名データ（例えば、座標データ及び圧力データなどのペンイベントデータ、またはペンイベントデータ以外の署名データ（例えば、署名の画像、生体データなど））を制御及び受信する。例えば、図１Ａ及び図１Ｂに示す例を再度参照すると、ウェブブラウザ１３０は、ローカルウェブサーバのＵＲＬを用いて、署名デバイス制御インスタンス１４０により待ち受けされた第１のポートとの接続を確立する。ブラウザウィンドウ１３１内において「署名」ボタンがクリックされると、ブラウザは署名デバイス制御インスタンス１４０を起動して署名デバイス１５２を制御する。
【００２６】
このようにして、ウェブブラウザは署名に対するコンテキストを提供し、ユーザ（例えば、銀行顧客）からの署名の収集を容易にすることができる。ウェブブラウザは、署名デバイスから受信したデータ、または受信したデータから生成されたデータを、リモートウェブサーバ、またはリモートウェブサーバに関連付けられたサーバへ、さらなる処理に向けて送信し得る。例えば、ウェブブラウザインスタンスが署名データを受信及び処理した後にウェブブラウザインスタンスは、必要に応じて、ＨＴＴＰ  ＰＯＳＴ要求を用いて、またはクロスドメイン方式を用いて当該データをリモートウェブサーバにアップロードし得る。本明細書で説明される例のいずれにおいても、署名データは、署名を記録する、何かに同意を与えるか否かを判断する、署名を他の既知である本物の署名と比較してその有効性を検証する、または署名された書類を読み出すなどの多様な目的に用いられ得る。ウェブブラウザは、読み出したデータを書類データと組み合わせて（例えば、署名された書類の画像の形態で）送信し得る。
ＩＩ．マルチユーザ実装
【００２７】
本項においては、第２、第３、及び第４の例示的な実施形態を参照して例示的なマルチユーザ実装を説明する。説明される実施形態において、ローカルコンピューティングデバイス（デスクトップコンピュータ、ノートブックコンピュータ、または任意の他の適当なコンピューティング装置）は、１つまたは複数の署名デバイスを使用する複数のユーザがリモートサーバによってインターネットなどのネットワークを介してローカルコンピューティングデバイスに、（例えば、ウェブブラウザによって）提供された電子書類に署名する機能を提供する。
【００２８】
本明細書で説明される例示的な実施形態において、署名デバイス制御インスタンスは、ユーザインタフェース（ＵＩ）要素（例えば、Ｗｉｎｄｏｗｓ  ＵＩ要素）を利用する特定のユーザセッション（例えば、Ｗｉｎｄｏｗｓユーザセッション）、または当該ユーザセッションによって利用可能とされる他の特徴に関連付けられ得る。このことは、例えば、署名デバイスが、使用中にアクティブなユーザセッションによって管理される画面を含む場合に有用となり得る。署名のキャプチャ時に、キャプチャされる間に署名を表示するウィンドウが生成され得る（例えば、図１Ａにおいて署名デバイス１５０内に示される）とともに、そのウィンドウはアクティブなユーザセッションにおいて生成され得る。署名デバイス制御インスタンスは、ユーザセッションがアクティブである間にバックグラウンドで実行され得る。１つより多い署名デバイス制御インスタンスを単一のユーザセッションに関連付けることが可能である。
【００２９】
図３Ａは、本明細書で説明される例示的な実施形態が実施され得る例示的なマルチユーザ環境３００を示すシステム図である。図３Ａに示す例において、ＡＢＣ銀行の地方支店は、Ｍ人の従業員３８０Ａ〜Ｍと、Ｐ台の署名デバイス１５０Ａ〜Ｐ（例えば、専用の署名タブレット）に、（例えば、有線接続または無線接続によって）通信可能に接続されたＫ台のコンピュータ１１０Ａ〜Ｋとを有する。本例において、従業員３８０Ａ〜Ｍのいずれもが、示されたコンピュータ１１０Ａ〜Ｋのいずれかにログインすることができ、各従業員はユーザアカウントを所有する。コンピュータ１１０Ａ〜Ｋは、単一の接続された署名デバイス、または同時に接続された複数の署名デバイスを有し得る。営業日中に多くの顧客３９０Ａ〜Ｘが銀行支店を訪れ得る。典型的な使用シナリオにおいて、タブレットが1人の顧客によって使用中である場合に、他の顧客はそのタブレットを使用することができない。したがって、典型的な使用シナリオにおいて、ある任意の時点にタブレットを使用している可能性がある顧客の最大数はタブレットの最大数によって制限される。
【００３０】
例示的な使用シナリオにおいて、銀行員３８０Ａがコンピュータ１１０Ａにログインする。顧客３９０Ａ、３９０Ｂ（例えば、夫婦）が到着し、銀行員３８０Ａは彼らにそれぞれタブレット１５０Ａ、１５０Ｂを使用して書類に署名するように案内する。コンピュータ１１０Ａ上のウェブブラウザプロセスは、タブレット１５０Ａ及び１５０Ｂを使用するアプリケーションフレームワークを含むウェブページをウェブブラウザからロードし、それをコンピュータ１１０Ａの表示装置に表示し得る。さらに、タブレット１５０Ａ、１５０Ｂは、署名された書類の画像、またはその一部分などの視覚的なコンテキストをそれぞれのタブレットの表示装置上に提供し得る。図３Ａに示す例において、ウェブページはＡＢＣ銀行のリモートウェブサーバ１２０によって供給される。これに代えて、ブラウザプロセスは様々なサーバから様々なウェブページをロードすることができ、それらのウェブページが、タブレットを使用するのに好適なアプリケーションフレームワークを含むならば、当該例は同様に機能する。
【００３１】
例示的な使用シナリオにおいて、顧客３９０Ａは、書類の対応する部分におけるタブレット１５０Ａ上で自己の署名を終える。顧客３９０Ｂは、タブレット１５０Ｂ上での自己の署名を完了していない。顧客３９０Ｃが到着して、直ちに署名されなければならない優先事項を有している。銀行員３８０Ｂはコンピュータ１１０Ａを自己のアカウントに切り替え、銀行員３８０Ａのユーザアカウントをロックする。顧客３９０Ｃは現在使用されていないタブレット１５０Ｃを占有して優先事項に署名する一方、タブレット１５０Ｂはなお顧客３９０Ｂにより使用中である。顧客３９０Ｃは自己の署名を終える。銀行員３８０Ｂはコンピュータ１１０Ａからログアウトし、銀行員３８０Ａはコンピュータ１１０Ａを切り替えて自己のユーザアカウントに戻す。その後、顧客３９０Ｂは自己の署名を終える。
【００３２】
図３Ｂは、上述のマルチユーザセッションをより詳細に示すシステムである。図３Ｂに示す例において、銀行員３８０Ａ及び３８０Ｂのユーザセッションは、コンピュータ１１０Ａの拡大図内における破線の一方側に示されている。１つのユーザセッションがロックされ、（例えば、Ｗｉｎｄｏｗｓユーザセッションなどの、ユーザセッション間においてロックまたは切替えを行う公知の方式により）他のユーザセッションが起動されると、コンピュータ１１０Ａは、（それぞれブラウザプロセス１３０Ａ、１３０Ｂに関連付けられた）対応するブラウザウィンドウ１３１Ａ、１３１Ｂ、及び（それぞれ署名デバイス制御インスタンス１４０Ａ、１４０Ｂに関連付けられた）署名キャプチャウィンドウ１４５Ａ、１４５Ｂを含む、各セッションに関連付けられたユーザインタフェース１１１Ａ、１１１Ｂ間の切替えを行うことができる。
【００３３】
当然ながら、Ｗｉｎｄｏｗｓにおいてユーザセッションがロックされると、セッションと当該セッションの下で動作するすべてのプログラム及び処理とはアクティブのままであるが、機能が制限されてバックグラウンドで動作し、モニタ画面の制御を行わない。ロックされたユーザセッションは、マイクロフォンまたはビデオカメラなどのある入力装置を制御しなくてもよい。ユーザセッションがロックされているときに署名制御装置インスタンスはバックグラウンドで動作し続けることが可能であるが、セッションがロックされた状態でそのユーザセッションに対する新たなウィンドウは生成されない。一方、重要なことであるが、署名デバイス制御インスタンスがバックグラウンドで動作しているときに、署名デバイスはブラウザプロセスと通信し続けることが可能であり、このことを以下でより詳細に説明する。署名デバイスの種類に応じて、署名デバイスがロックされたセッションの署名デバイス制御インスタンスに接続されているときでも、ユーザは署名デバイスを使用し続けることが可能であってよい。
【００３４】
以下でより詳細に説明するように、任意選択的に、サービス（例えば、アービトレータサービスまたはプロキシサービス）を使用して署名デバイス制御インスタンス１４０Ａ及び１４０Ｂ間の切替えを行うことができる。
【００３５】
図３Ａに示す例を再度参照すると、コンピュータ１１０Ａに接続された３つのタブレットが存在し、３人の顧客が当該タブレットを使用する。一方、説明したばかりの例によって示すように、顧客はタブレットを共有することもでき、それは顧客がそれらを全く同時には使用しない場合であってもよい。タブレットは特定のユーザアカウントに固定される必要はない。さらに、説明される実施形態に従って、１人より多いユーザ（例えば、銀行員３８０Ａ及び３８０Ｂ）が唯一の署名デバイスとともにコンピュータを使用することが可能である。例えば、ユーザがユーザセッションを切り替えるときに、単一の署名デバイスの制御が、各ユーザセッションの署名デバイス制御インスタンス間を行き来し得る。
Ａ．第２の例示的な実施形態
【００３６】
本項においては、第２の例示的な実施形態を説明する。本実施形態において、同じポート番号を用いてすべての署名デバイス制御インスタンスと、それらのそれぞれのローカルウェブサーバを介して通信する。次に図３Ａを参照して説明する例示的な使用シナリオにおいて、銀行員３８０Ａがコンピュータ１１０Ａにログインすることによってユーザセッションを生成し、所定のポート番号（例えば、８０００）を待ち受けするローカルウェブサーバを用いて署名デバイス制御インスタンスを起動する。コンピュータ１１０Ａ上で実行されているブラウザは、所定のポート番号を用いてローカルウェブサーバに接続する。銀行員３８０Ａはユーザセッションをロックし、ブラウザとローカルウェブサーバとの間の接続が中断され、ローカルウェブサーバはポートの待ち受けを停止する。次いで、銀行員３８０Ｂがコンピュータ１１０Ａにログインすることによって第２のユーザセッションを生成し、同じポート番号（本例では、８０００）を待ち受けする第２のローカルウェブサーバを用いて新たな署名デバイス制御インスタンスを起動する。銀行員３８０Ｂが第２のユーザセッションをロックすると、ブラウザと第２のローカルウェブサーバとの間の接続が中断され、第２のローカルウェブサーバはポートの待ち受けを停止する。銀行員３８０Ａが以前にロックされた自己のセッションに再度ログインする場合は、以前に中断された第１のローカルウェブサーバに関連付けられた接続が回復し、当該ウェブサーバはポートの待ち受けを再度開始する。
【００３７】
こうして、本実施形態においては、オプションのサービス（図３Ｂを参照）は使用されず、アクティブなユーザセッションのみが、ポートを待ち受けするローカルウェブサーバを有するようになっている。本実施形態は、明快な解決手法によって複数のユーザを許容する目的を達成するが、あらゆる場合に有効である、または望ましいわけではない。例えば、ユーザがセッションをロックすると、そのローカルウェブサーバへの接続が実際に終了または中断して当該サーバがポートの待ち受けを停止するまでに遅延が生じ得る。他の例として、ユーザが以前にロックされたセッションにログインすると、ローカルウェブサーバがレディとなるまでに遅延が生じ得る。本実施形態は、ユーザセッションがロックされるとブラウザとローカルウェブサーバとの間の情報フローも停止させ、複数のユーザセッションが同時にアクティブであるシナリオには有効でない。
Ｂ．第３の例示的な実施形態
【００３８】
本項においては、第３の例示的な実施形態を説明する。本実施形態においては、アービトレータサービスがブラウザプロセスを署名デバイス制御インスタンスに接続する。
【００３９】
図４は、第３の例示的な実施形態または他の実施形態が実施され得る例示的なローカルコンピュータ１１０の他の実施形態のブロック図である。図４に示す例において、アービトレータサービス１６０はコンピュータ１１０の始動時に起動され、所定のポート番号（本例では、８０００）を待ち受けするローカルホストウェブサーバを起動する。アービトレータサービス１６０は、Ｗｉｎｄｏｗｓサービス、Ｕｎｉｘデーモンなどの、複数のユーザセッションによって用いられ得る任意のサービスからなり得る。
【００４０】
コンピュータ１１０は、Ｎ人のユーザに対する署名デバイス制御インスタンス１４０Ａ〜Ｎを、対応するローカルウェブサーバ１４２Ａ〜Ｎ、制御モジュール１４４Ａ〜Ｎ、及びデータモジュール１４６Ａ〜Ｎを用いて起動する。署名デバイス制御インスタンス１４０Ａ〜Ｎはアービトレータサービス１６０と通信する。本例においては、アービトレータサービスがいくつかの署名デバイス制御インスタンス１４０Ａ〜Ｎによって使用され得ることから、アービトレータサービスはいずれかの署名デバイス制御インスタンス１４０Ａ〜Ｎが起動される前に起動される。
【００４１】
アービトレータサービス１６０は、ローカルウェブサーバ１４２Ａ〜Ｎ（例えば、２つのローカルウェブサーバを用いるシナリオに対して、それぞれ８００１、８００２）の各々に異なるポートを割り当てる。ウェブブラウザプロセス１３０Ａ〜Ｎは、ポート番号８０００を介してアービトレータサービス１６０と通信する。ウェブブラウザプロセス１３０Ａ〜Ｎは、アービトレータサービス１６０から各ローカルウェブサーバ１４２Ａ〜Ｎに割り当てられたポート番号を、（例えば、ＴＣＰソケット接続を生成するＨＴＴＰＳ  Ｇｅｔ要求により）要求及び取得する。次いで、ウェブブラウザプロセス１３０Ａ〜Ｎは、各ポート番号を用いてローカルウェブサーバ１４２Ａ〜Ｎと（例えばＨＴＴＰＳ呼出しによって）直接通信することができる。ウェブブラウザプロセス１３０Ａ〜Ｎは、ローカルウェブサーバ１４２Ａ〜Ｎが実際に利用可能であることを確認するテストを、（例えば、各ローカルウェブサーバにＨＴＴＰＳ  Ｇｅｔエコーメッセージを送信することにより）実行し得る。
【００４２】
次に図３Ａを参照して説明する例示的な使用シナリオにおいて、銀行員３８０Ａがコンピュータ１１０Ａ上でユーザセッションを起動し、第１の装置制御インスタンスがローカルウェブサーバを用いて起動される（図３Ｂにおけるオプションのサービスは、アービトレータサービスであり、事前に起動されている。）。本シナリオにおいて、異なるローカルウェブサーバに異なるポートを割り当てるアービトレータサービスの機能が意味するところは、銀行員３８０Ａがセッションをロックする場合に、セッションが占有ポートを有することから、ブラウザとローカルウェブサーバとの間の通信に何らの変化も生じずにすむということである。ローカルウェブサーバは、セッションがロックされている間に、（すべての可能なオープンソケット接続を用いて）待ち受けポートを開き続けてセッションの状態を容易に維持し、ブラウザに透過なセッションのロック及びアンロックを行い、ブラウザがローカルウェブサーバと通信することを可能とすることができる。このことは、例えば、ウェブページが銀行員３８０Ａのセッションを求める要求を生成して当該銀行員のセッションがロックされている間にローカルウェブサーバがそれに応答し得る場合、または署名キャプチャに関する機能などのある一定の機能がソケット接続を開き続けることを必要とする場合に、有用となり得る。
【００４３】
銀行員３８０Ｂが第２のユーザセッションを生成し、第２のローカルウェブサーバを用いて新たな装置制御インスタンスが起動される場合は、ブラウザは、第１のローカルウェブサーバとの接続を開いたままで、異なるポート番号（例えば、８００２）を用いて第２のローカルウェブサーバと通信することが可能である。銀行員３８０Ａがログアウトしてユーザセッションを終了する場合は、アービトレータサービスは、（例えば、テーブルを更新することにより）ポート番号を開放して、他のユーザが当該ポート番号を使用することができるようにすることが可能である。
【００４４】
オペレーティングシステムの中には（例えば、Ｗｉｎｄｏｗｓ）、ソケット接続のそれぞれの終了時に、プロセスＩＤなどの、ソケット接続に関する情報を提供し得るものがある。このような場合に、アービトレータサービスはその情報を使用するブラウザにリンクされたユーザを検出することが可能である。例えば、ブラウザはソケット接続を用いてアービトレータサービスを呼び出すことが可能であり、アービトレータサービスは、オペレーティングシステムを用いてブラウザのプロセスＩＤとそのプロセスＩＤに関連付けられたユーザＩＤとを学習することが可能である。その場合に、アービトレータサービスは、そのユーザＩＤに適合するポート番号を見つけることが可能である。他のオペレーティングシステムには、そのような情報を提供しないものがあり得る。しかし、アービトレータサービスは、それでも、ユーザがログインまたはログアウトするときを検出し、そのようにユーザを追跡することが可能である。
【００４５】
図５は、第３の例示的な実施形態に係る処理５００のフローチャートである。図５に示す例において、ステップ５１０において、ローカルコンピューティングデバイス（例えば、図４に示すローカルコンピュータ１１０）は、ウェブブラウザプロセスと署名デバイス制御インスタンスに関連付けられたポート番号との間のマッピングを管理するアービトレータサービスを実行する。ステップ５２０において、ローカルコンピューティングデバイスは、第１のポート及び第１のＵＲＬに関連付けられたローカルウェブサーバを含む署名デバイス制御インスタンスを起動する。ステップ５３０において、ローカルコンピューティングデバイス上で実行されているウェブブラウザは、（例えば、ＨＴＴＰＳ接続などのセキュアな接続を介して）第２のＵＲＬに関連付けられたリモートサーバからウェブページを読み出す。ウェブページは、ローカルコンピューティングデバイス上で描画または実行されるコード（例えば、ＨＴＭＬ、ＪａｖａＳｃｒｉｐｔ（登録商標）など）を提供する。当該コードは、第１のＵＲＬ（例えば、"ｈｔｔｐｓ：／／ｌｏｃａｌｈｏｓｔ："）を示すクロスドメイン参照を含む。ウェブページによって提供される当該コードの少なくとも一部は、最新のウェブブラウザにおいて実施され得る同一発行元ポリシーを考慮して、ＪＳＯＮ−Ｐ方式またはＣＯＲＳ方式などのセキュアなクロスドメイン方式を用いて提供され得る。
【００４６】
ステップ５４０において、ブラウザは、アービトレータサービスから、（署名デバイス制御インスタンスによって待ち受けされた）第１のポートに対応するポート番号を取得し、ステップ５５０において、ブラウザは第１のポートとの接続（例えば、ＨＴＴＰＳ接続）を確立する。ステップ５６０において、ウェブブラウザは、署名デバイスからの署名データ（例えば、座標データ及び圧力データなどのペンイベントデータ、またはペンイベントデータ以外の署名データ（例えば、署名の画像、生体データなど））を制御及び受信する。
【００４７】
アービトレータサービスのマッピング管理は、特定のユーザＩＤにポート番号を割り当て、プロセスＩＤまたはユーザＩＤに基づいてそれらのポート番号を読み出すことを含み得る。例えば、アービトレータサービスは、ウェブブラウザプロセスのプロセスＩＤを取得し、プロセスＩＤに関連付けられたユーザＩＤを取得し、（例えば、割り当てられたポート番号及びユーザＩＤのテーブル内のポート番号を参照することにより）ユーザＩＤに関連付けられたポートのポート番号を取得し得る。
Ｃ．第４の例示的な実施形態
【００４８】
本項においては、第４の例示的な実施形態を説明する。本実施形態において、ウェブブラウザはプロキシサービスを介して署名デバイス制御インスタンスと通信することが可能である。
【００４９】
図６は、第４の例示的な実施形態または他の実施形態が実施され得る例示的なローカルコンピュータ１１０の他の実施形態のブロック図である。図６に示す例において、プロキシサービス１７０は、コンピュータ１１０の始動時に起動され、所定のポート番号（本例では、８０００）を待ち受けするローカルホストウェブサーバを起動する。コンピュータ１１０は、Ｎ人のユーザに対する署名デバイス制御インスタンス１４０Ａ〜Ｎを、対応する制御モジュール１４４Ａ〜Ｎ、及びデータモジュール１４６Ａ〜Ｎを用いて起動する。ウェブブラウザプロセス１３０Ａ〜Ｎは、単一のポート番号８０００を介してプロキシサービス１７０と通信し、プロキシサービスはプロセス間通信（ＩＰＣ）を用いて装置制御インスタンス１４０Ａ〜Ｎと通信する。したがって、本実施形態においては、１つのローカルウェブサーバポートのみが必要とされ、装置制御インスタンス１４０Ａ〜Ｎは個別の独立したローカルウェブサーバを提供する必要がない。ウェブブラウザプロセス１３０Ａ〜Ｎと装置制御インスタンス１４０Ａ〜Ｎとの間の直接通信は全く必要とされない。
【００５０】
プロキシサービスと署名デバイス制御インスタンスとの間の通信は、ソケット、共有メモリ、ファイル、パイプ、信号、メッセージの受け渡し等を用いるなどのＩＰＣ方式を用いる多くの異なる方法で実施され得る。プロキシサービスを用いることにより、プロキシサービスがメッセージを受信してそれらを該当する署名デバイス制御インスタンスにリダイレクトするのに限られた時間を要するので、遅延が加わり得る。当該遅延は実装に依存するものであるが、付加された複雑さのオーバヘッドの処理は最小限であることから、ユーザに気付かれるものではない。プロキシ及び唯一のポート番号を用いることにより、ブラウザがプロキシに接続されさえすればよいため、システム及びブラウザサイドの構成が軽減される。また、空きポートの数が制限され（例えば、１〜６５５３５）、セキュリティポリシーは利用可能なポート番号範囲を制限することが可能であり、多くのポート番号が他のアプリケーションにより使用された状態となり得る。したがって、アクティブなユーザそれぞれに異なるポート番号を割り当てることが可能でない場合が生じ得る。それゆえ、当該プロキシサービスは有益な代替手段を提供する。
【００５１】
次に図３Ａを参照して説明する例示的な使用シナリオにおいて、銀行員３８０Ａはコンピュータ１１０Ａ上で第１のユーザセッションを起動し、第１の装置制御インスタンスが起動される（図３Ｂにおけるオプションのサービスは、プロキシサービスであり、事前に起動されている。）。第１のユーザセッションがアクティブである間に、ウェブブラウザはＨＴＴＰＳ／ＴＣＰソケット接続が開いた状態に保持されるように要求する関数を呼び出す。例として、ＤｙｎａｍｉｃＣａｐｔｕｒｅ：：Ｃａｐｔｕｒｅなどの関数は、タブレット上に署名をキャプチャするウィンドウを生成し得る。ブラウザとポート８０００を待ち受けするローカルウェブサーバであるプロキシサービスとの間にＨＴＴＰＳ／ＴＣＰソケット接続が生成される。次いで、プロキシサービスはＩＰＣを用いて第１の装置制御インスタンスと通信する。第１の装置制御インスタンスはウィンドウを生成し、タブレット上で署名キャプチャが起動する。銀行員３８０Ａが自己のセッションをロックし、銀行員３８０Ｂが新たなセッションを起動する場合に、ブラウザは複数の装置制御インスタンスと同じポート（本例では、８０００）を介して通信することが可能であることから、ブラウザと第１の装置制御インスタンスとの間の通信に何らの変化も生じずにすむ。銀行員３８０Ａが再度ログインするときに、署名キャプチャウィンドウは開いたままであり、ＨＴＴＰＳ／ＴＣＰソケット接続は開いたままである。署名が完了すると、ウィンドウ及びソケット接続は閉じられ得る。本例においては、署名がキャプチャされたことを伝えるＨＴＴＰＳ  Ｇｅｔ要求が返され得る。
【００５２】
図７は、第３の例示的な実施形態に係る処理７００のフローチャートである。図７に示す例において、ステップ７１０において、ローカルコンピューティングデバイス（例えば、図６に示すローカルコンピュータ１１０）は、ウェブブラウザプロセスと署名デバイス制御インスタンスとの間のマッピングを管理するプロキシサービスを実行する。また、プロキシサービスは、第１のポートを待ち受けするとともに第１のＵＲＬに関連付けられたローカルウェブサーバを起動する。ステップ７２０において、ローカルコンピューティングデバイスは署名デバイス制御インスタンスを起動する。ステップ７３０において、ローカルコンピューティングデバイス上で実行されているウェブブラウザプロセスは、第２のＵＲＬに関連付けられたリモートサーバから、（例えば、ＨＴＴＰＳ接続などのセキュアな接続を介して）ウェブページを読み出す。当該ウェブページは、第１のＵＲＬ（例えば、"ｈｔｔｐｓ／／ｌｏｃａｌｈｏｓｔ："）を示すクロスドメイン参照を含むコードを提供する。ウェブページによって提供される当該コードの少なくとも一部は、ＪＳＯＮ−Ｐ方式またはＣＯＲＳ方式などのセキュアなクロスドメイン方式を用いて提供され得る。
【００５３】
ステップ７４０において、ブラウザプロセスは、プロキシサービスによって待ち受けされた第１のポートに署名デバイス制御呼出しを送信する。ステップ７５０において、プロキシサービスはＩＰＣを用いて署名デバイス制御インスタンスに当該呼出しを送信し、呼出し応答を受信する。ステップ７６０において、プロキシサービスは呼出し応答をブザウザプロセスに送信する。ステップ７７０において、ブラウザプロセスは、署名デバイスからの署名データ（例えば、座標データ及び圧力データなどのペンイベントデータ、またはペンイベントデータ以外の署名データ（例えば、署名の画像、生体データなど））を制御及び受信する。
【００５４】
プロキシサービスのマッピング管理は、ブラウザプロセスのプロセスＩＤを取得し、プロセスＩＤに関連付けられたユーザＩＤを取得し、ＩＰＣを用いてユーザＩＤに関連付けられた署名デバイス制御インスタンスと通信するのに供される特定の情報を取得することを含み得る。
ＩＩＩ．コンピューティング環境
【００５５】
特定の例の状況に特化されない限り、本明細書で説明される実施形態または他の実施形態は、限定されるものではないが、ラップトップコンピュータ、デスクトップコンピュータ、スマートフォン、タブレットコンピュータ、専用の署名タブレット、またはこのような装置の組合せを含む任意の適当なコンピューティング装置によって実施され得る。
【００５６】
図８は、本開示の実施形態に従う使用に適した例示的なコンピューティング装置８００の例示的な態様を示すブロック図である。以下の説明は、本開示の実施形態に従って使用され得る、サーバ、パーソナルコンピュータ、モバイル電話、スマートフォン、タブレットコンピュータ、組込みコンピューティング装置、及び他の現在入手可能なまたは開発途上の装置にあてはまる。
【００５７】
コンピューティング装置８００は、その最も基本的な構成において、通信バス８０６によって接続された、少なくとも１つのプロセッサ８０２及びシステムメモリ８０４を備える。装置の正確な構成及び種類に応じて、システムメモリ８０４は、リードオンリーメモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリ技術などの、揮発性メモリまたは不揮発性メモリからなり得る。当業者等は、システムメモリ８０４が、通常、プロセッサ８０２によって直接アクセス可能な及び／または同時に動作する、データモジュール及び／またはプログラムモジュールを格納することを認識するであろう。この場合に、プロセッサ８０２は、命令の実行をサポートすることによって、コンピューティング装置８００の計算中枢として機能し得る。
【００５８】
図８にさらに示すように、コンピューティング装置８００は、ネットワークを介して他の装置と通信する１つまたは複数のコンポーネントを有するネットワークインタフェース８１０を備え得る。本開示の実施形態は、ネットワークインタフェース８１０を利用する基本サービスにアクセスして、共通のネットワークプロトコルを用いる通信を実行し得る。ネットワークインタフェース８１０は、さらに、ＷｉＦｉ（登録商標）、２Ｇ、３Ｇ、４Ｇ、ＬＴＥ、ＷｉＭＡＸ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの１つまたは複数の無線通信プロトコルによって通信するように構成された無線ネットワークインタフェースを備え得る。
【００５９】
図８に示す例示的な実施形態において、コンピューティング装置８００は、さらに、記録媒体８０８を備える。しかし、データをローカルな記録媒体に固定保持する手段を備えないコンピューティング装置を用いてサービスにアクセスし得る。したがって、図８に示す記録媒体８０８は任意選択による。いずれにせよ、記録媒体８０８は、限定されるものではないが、ハードドライブ、ソリッドステートドライブ、ＣＤ−ＲＯＭ、ＤＶＤその他のディスク記憶装置、磁気テープ、磁気ディスク記憶装置などの、情報を格納することが可能な任意の技術を用いて実施される、揮発性または不揮発性、リムーバブルまたは非リムーバブルであり得る。
【００６０】
本明細書で用いる用語「コンピュータ読み取り可能な媒体」には、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納することが可能な任意の方法または技術によって実施される、揮発性媒体及び不揮発性媒体ならびにリムーバブル媒体及び非リムーバブル媒体が含まれる。この場合に、図８に示すシステムメモリ８０４及び記録媒体８０８は、コンピュータ読み取り可能な媒体の例である。
【００６１】
説明を簡単にするため、また特許請求する主題の理解には重要でないため、図８は、多くのコンピューティング装置のいくつかの通常の構成要素を示していない。この場合に、コンピューティング装置８００は、キーボード、キーパッド、マウス、トラックボール、マイクロフォン、ビデオカメラ、タッチパッド、タッチスクリーン、スタイラスなどの入力装置を備え得る。このような入力装置は、ＲＦ、赤外、シリアル、パラレル、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＵＳＢその他の、無線接続または物理接続を用いる適当な接続プロトコルを含む有線接続または無線接続によってコンピューティング装置８００に接続され得る。
【００６２】
任意の説明例において、データを入力装置（例えば、署名デバイス）によってキャプチャし、その後の処理に向けて送信または格納し得る。当該処理には、出力装置による表示のために後で復号化することができるようにデータを符号化することが含まれ得る。入力装置は、コンピューティング装置８００から分離されるとともにコンピューティング装置８００に通信可能に接続され得る、またはコンピューティング装置８００の集積構成要素となり得る。コンピューティング装置８００は、さらに、ディスプレイまたはタッチスクリーンなどの出力装置を備えてもよい。当該出力装置はコンピューティング装置８００から分離されるとともにコンピューティング装置８００に通信可能に接続され得る、またはコンピューティング装置８００の集積構成要素となり得る。入力機能及び出力機能を同一の入力／出力装置（例えば、タッチスクリーン）に集積してもよい。現在知られている、または将来開発される適当な入力装置、出力装置、または組合せによる入力／出力装置を、説明に係るシステムとともに用い得る。
【００６３】
一般に、本明細書で説明されるコンピューティング装置の機能は、ハードウェアまたはソフトウェア命令に埋め込んだコンピューティングロジック内に実装可能であり、Ｃ、Ｃ＋＋、ＣＯＢＯＬ、ＪＡＶＡ（登録商標）、ＰＨＰ、Ｐｅｒｌ、Ｐｙｔｈｏｎ、Ｒｕｂｙ、ＨＴＭＬ、ＣＳＳ、ＪａｖａＳｃｒｉｐｔ（登録商標），ＶＢＳｃｒｉｐｔ、ＡＳＰＸ、Ｃ＃などのＭｉｃｒｏｓｏｆｔ．ＮＥＴ（登録商標）言語といったプログラミング言語で記述可能である。コンピューティングロジックを、実行可能なプログラムにコンパイルしてもよいし、インタープリタ型のプログラミング言語で記述してもよい。一般に、本明細書で説明される機能を、増設してより大きな処理能力を提供する、他のモジュールと統合する、またはサブモジュールに分割することが可能なロジックモジュールとして実装することができる。コンピューティングロジックを、任意の種類のコンピュータ読み取り可能な媒体（例えば、メモリまたは記録媒体などの一時的でない（non-transitory）媒体）、またはコンピュータ記憶装置に格納し、また１つまたは複数の汎用または専用のプロセッサ上に格納して当該プロセッサによって実行することができ、これにより本明細書で説明される機能を提供するように構成された専用のコンピューティング装置を生成する。
ＩＶ．拡張機能及び代替手段
【００６４】
本明細書で説明されるシステム及び装置に対する多くの代替手法が可能である。例えば、個々のモジュールまたはサブシステムを別々のモジュールまたはサブシステムに分離する、または接続してより少ない数のモジュールまたはサブシステムとすることができる。他の例として、モジュールまたはサブシステムを省略する、または他のモジュールまたはサブシステムを用いて補充することができる。他の例として、個々の装置、モジュール、またはサブシステムによって実行されるものとして示した機能を、１つまたは複数の他の装置、モジュール、またはサブシステムによって代わりに実行し得る。本開示中のいくつかの例は、特定の配置を取る特定のハードウェア構成要素を備える装置の説明を含むが、本明細書で説明される技術及びツールを変形して、異なるハードウェア構成要素、組合せ、または配置に適応させることができる。また、本開示のいくつかの例は特定の使用シナリオの説明を含むが、本明細書で説明される技術及びツールを変形して、異なる使用シナリオに適応させることができる。ソフトウェアで実施されるものとして説明される機能を、代わりにハードウェアで実施することができ、その逆も可能である。
【００６５】
本明細書で説明される技術に対する多くの代替手段が可能である。例えば、種々の技術における処理段階を別々の段階に分離する、または接続してより少ない数とすることができる。他の例として、種々の技術における処理段階を省略する、または他の技術または処理段階を用いて補充することができる。他の例として、特定の順序で起こるものとして説明される処理段階は、代わりに異なる順序で起こり得る。他の例として、一連のステップで実行されるとして説明される処理段階を、示された処理段階の１つまたは複数を同時に処理する複数のモジュールまたはソフトウェア処理を用いた並列方式で代わりに処理し得る。他の例として、個々の装置またはモジュールによって実行されるものとして示される処理段階を、１つまたは複数の他の装置またはモジュールによって代わりに実行し得る。
【００６６】
本開示の原理、代表的な実施形態、及び動作のモードを以上で説明してきた。しかし、保護されることを意図した本開示の態様は、開示された特定の実施形態に限定されるものと解釈すべきではない。また、本明細書で説明される実施形態は、限定的ではなく例示的であるとみなすべきである。本開示の精神から逸脱することなく、他の者によって変形及び変更がなされ、等価物が採用され得ることは理解することができるであろう。本発明の例示的な実施形態を図示及び説明してきたが、本発明の精神及び範囲から逸脱することなくそれらにおいて種々の変更がなされ得ることは理解することができるであろう。
【図１Ａ】
2019502177.tif 000003
【図１Ｂ】
2019502177.tif 000004
【図１Ｃ】
2019502177.tif 000005
【図１Ｄ】
2019502177.tif 000006
【図２】
2019502177.tif 000007
【図３Ａ】
2019502177.tif 000008
【図３Ｂ】
2019502177.tif 000009
【図４】
2019502177.tif 000010
【図５】
2019502177.tif 000011
【図６】
2019502177.tif 000012
【図７】
2019502177.tif 000013
【図８】
2019502177.tif 000014
【国際調査報告】
2019502177.tif 000015
2019502177.tif 000016