(57)【要約】【課題】ユーザの消費に基づいてライセンス料を決定するペイパーユース・ライセンス供与モデルを管理するための方法および装置を提供する。【解決手段】画像レベルでユーザのアクションを監視し、ソフトウェア・アプリケーションの機能の利用を含む、１つまたは複数のあらかじめ定義されたユーザ・アクションが検出されるかどうかを判断し、あらかじめ定義されたユーザ・アクションの通知を、支払処理のための仲介サーバに提供することによって、ユーザによるソフトウェア・アプリケーションの一部の利用を監視するためのクライアント側の方法を提供する。通知は、複数の通知について、必要に応じて定期的に行われる。利用に対して支払いが行われない場合、または通知が仲介サーバによって受け取られない場合、必要に応じてソフトウェア・アプリケーションの実行を一時停止することができる。【選択図】図１
2014516431.tif 000002
【特許請求の範囲】
【請求項１】
ユーザによるソフトウェア・アプリケーションの一部の利用を監視するためのクライアント側の方法であって、
画像レベルで前記ユーザのアクションを監視するステップと、
前記ソフトウェア・アプリケーションの機能の利用を含む、１つまたは複数のあらかじめ定義されたユーザ・アクションが検出されるかどうかを判断するステップと、
前記１つまたは複数のあらかじめ定義されたユーザ・アクションの通知を、支払処理のための仲介サーバに提供するステップと
を含む、方法。
【請求項２】
前記利用に対して支払いが行われない場合、前記ソフトウェア・アプリケーションの実行を一時停止するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記通知が前記仲介サーバによって受け取られない場合、前記ソフトウェア・アプリケーションの実行を一時停止するステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記通知を提供する前記ステップが、複数の前記通知について定期的に行われる、請求項１に記載の方法。
【請求項５】
前記ユーザが、１つまたは複数のあらかじめ定義された基準に違反しなければ、前記ソフトウェア・アプリケーションをある期間の間オフライン・モードで使用することができる、請求項４に記載の方法。
【請求項６】
支払処理のための前記仲介サーバが、使用量に基づいて前記あらかじめ定義されたユーザ・アクションに対するライセンス料を決定する、請求項１に記載の方法。
【請求項７】
支払処理のための前記仲介サーバが、所与のあらかじめ定義されたユーザ・アクションと関連する前記機能の識別子に基づいて前記あらかじめ定義されたユーザ・アクションに対するライセンス料を決定する、請求項１に記載の方法。
【請求項８】
前記監視するステップが、前記ソフトウェア・アプリケーションと前記ユーザのユーザ・インタフェース・インタラクションをサンプリングするステップをさらに含む、請求項１に記載の方法。
【請求項９】
前記サンプリングするステップが、メニューの選択、マウス・ボタンの選択、マウス・ボタンのクリック動作、追加のユーザ・インタフェース・ウィジェット、およびショートカットのキーストロークのうちの１つまたは複数を監視するステップをさらに含む、請求項８に記載の方法。
【請求項１０】
前記サンプリングするステップが、前記ユーザ・アクション付近の画像をサンプリングするステップと、前記サンプリングした画像をマッチングして、選択のタイプおよび前記選択のインスタンスを判断するステップとをさらに含む、請求項８に記載の方法。
【請求項１１】
前記サンプリングするステップが、スクリーン・スクレイピング・ツールを使用して行われる、請求項１０に記載の方法。
【請求項１２】
前記サンプリングするステップが、ユーザ・インタフェース・ウィジェットを使用して行われる、請求項８に記載の方法。
【請求項１３】
前記仲介サーバが、ソフトウェア利用規約および利用レポートの１つまたは複数に基づいて前記支払いを決定する、請求項１に記載の方法。
【請求項１４】
前記仲介サーバが、１つまたは複数の監視されるソフトウェア・アプリケーションの１つまたは複数のソフトウェア利用規約に基づいて前記支払いを決定する、請求項１に記載の方法。
【請求項１５】
前記ソフトウェア利用規約が、所与のソフトウェア・アプリケーションの１つまたは複数の機能に対して支払額を規定するためのポリシーおよびルールの１つまたは複数を含む、請求項１４に記載の方法。
【請求項１６】
１つまたは複数の利用解析レポートを前記ユーザおよびソフトウェア・ベンダの１つまたは複数に提供するステップをさらに含む、請求項１に記載の方法。
【請求項１７】
ユーザによるソフトウェア・アプリケーションの一部の利用を監視するためのクライアント側のシステムであって、
メモリと、
前記メモリに結合された少なくとも１つのプロセッサであって、
画像レベルで前記ユーザのアクションを監視し、
前記ソフトウェア・アプリケーションの機能の利用を含む、１つまたは複数のあらかじめ定義されたユーザ・アクションが検出されるかどうかを判断し、
前記１つまたは複数のあらかじめ定義されたユーザ・アクションの通知を、支払処理のための仲介サーバに提供する
ように動作する少なくとも１つのプロセッサと
を含む、システム。
【請求項１８】
前記利用に対して支払いが行われない場合、前記プロセッサが、前記ソフトウェア・アプリケーションの実行を一時停止するようにさらに構成された、請求項１７に記載のシステム。
【請求項１９】
前記通知が前記仲介サーバによって受け取られない場合、前記プロセッサが、前記ソフトウェア・アプリケーションの実行を一時停止するようにさらに構成された、請求項１７に記載のシステム。
【請求項２０】
前記通知が、前記通知の複数について、定期的に提供される、請求項１７に記載のシステム。
【請求項２１】
前記ユーザが、１つまたは複数のあらかじめ定義された基準に違反しなければ、前記ソフトウェア・アプリケーションをある期間の間オフライン・モードで使用することができる、請求項２０に記載のシステム。
【請求項２２】
支払処理のための前記仲介サーバが、使用量に基づいて前記あらかじめ定義されたユーザ・アクションに対するライセンス料を決定する、請求項１７に記載のシステム。
【請求項２３】
支払処理のための前記仲介サーバが、所与のあらかじめ定義されたユーザ・アクションと関連する前記機能の識別子に基づいて前記あらかじめ定義されたユーザ・アクションに対するライセンス料を決定する、請求項１７に記載のシステム。
【請求項２４】
前記アクションが、前記ソフトウェア・アプリケーションと前記ユーザのユーザ・インタフェース・インタラクションをサンプリングすることによって監視される、請求項１７に記載のシステム。
【請求項２５】
ユーザによるソフトウェア・アプリケーションの一部の利用をクライアント側が監視するための製品であって、実行されるとき、
画像レベルで前記ユーザのアクションを監視するステップと、
前記ソフトウェア・アプリケーションの機能の利用を含む、１つまたは複数のあらかじめ定義されたユーザ・アクションが検出されるかどうかを判断するステップと、
前記１つまたは複数のあらかじめ定義されたユーザ・アクションの通知を、支払処理のための仲介サーバに提供するステップと
を実行する１つまたは複数のプログラムを収容した有形の機械可読記録可能媒体を含む製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してソフトウェア・ライセンス管理の分野に関し、より詳細には、ソフトウェア・ライセンス供与のペイパーユース(pay-per-use)・モデルを管理するための技術に関する。
【背景技術】
【０００２】
ソフトウェアは、大多数のビジネス・ユーザおよび個人ユーザにとって重要な役割を果たす。一般にソフトウェアは、永続的ソフトウェア・ライセンスを用いて使用許諾されてきた。永続的ソフトウェア・ライセンスでは、ユーザはソフトウェアの支払いを一度行って、ソフトウェア・パッケージ全体を使用するライセンスを手に入れる。企業の場においては、特定のソフトウェア製品のコピーが、通常、各ユーザにライセンス供与されなければならない。一般に、永続的ソフトウェア・ライセンスは、ソフトウェア製品のヘビー・ユーザに合わせた均一価格設定戦略を用いる。しかし、多くのソフトウェア・ユーザは、ソフトウェアをたまに使用するとき、または完全なソフトウェア・パッケージの利用可能な機構または機能、あるいはその両方の一部のみを使用するとき、完全なソフトウェア・パッケージの正規価格を支払うことを望まない。
【０００３】
ソフトウェア・ベンダは、利用可能な機構の一部のみに興味を有するが、完全なソフトウェア・パッケージを購入するための正規価格を支払うことを好まないユーザに、ソフトウェア製品をライセンス供与することによってソフトウェア製品をさらに活用することができる。ソフトウェアのためのペイパーユース・ライセンス供与モデルを実施するために、いくつかの技術が提案または提言されてきた。大部分のペイパーユース・ライセンス供与モデルはサーバに実装され、ウェブ・アプリケーション／サービスを対象とする。例えば、Ａｍａｚｏｎ．ｃｏｍ  Ｉｎｃ．などのサービス型ソフトウェア（software-as-a-service、ＳａａＳ）のプロバイダは、ペイパーユース・モデルに基づく価格設定方式を提供する。例えば、Ａｍａｚｏｎが提供するＥｌａｓｔｉｃ  Ｃｏｍｐｕｔｅ  Ｃｌｏｕｄ（ＥＣ２）サービスにより、会社は独自のソフトウェアをホストし、使用したアプリケーションの時間数に基づいてその支払いをすることができる。さらに音楽業界は、消費者に完全なコンパクト・ディスク（ＣＤ）の形の音楽を主として販売することから、個別の楽曲を主として販売することに転換した。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願第２００８／０００１９５９号
【特許文献２】米国特許出願第２００９／０２７３５９７号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ユーザの消費に基づいてライセンス料を決定するペイパーユース・ライセンス供与モデルを管理するための方法および装置の必要性が依然としてある。従来の永続的モデルを用いるよりも粒度の細かいレベルでユーザがソフトウェアを取得して、代金を支払うことを可能にするペイパーユース・ライセンス供与モデルを管理するための方法および装置にさらに別の必要性が存在する。
【課題を解決するための手段】
【０００６】
概して、ユーザの消費に基づいてライセンス料を決定するペイパーユース・ライセンス供与モデルを管理するための方法および装置を提供する。本発明の１つの態様により、画像レベルでユーザのアクションを監視し、ソフトウェア・アプリケーションの機能の利用を含む、１つまたは複数のあらかじめ定義されたユーザ・アクションが検出されるかどうかを判断し、あらかじめ定義されたユーザ・アクションの通知を、支払処理のための仲介サーバに提供することによって、ユーザによるソフトウェア・アプリケーションの一部の利用を監視するためのクライアント側の方法を提供する。通知は、複数の通知について、必要に応じて定期的に行われる。利用に対して支払いが行われない場合、または通知が仲介サーバによって受け取られない場合、必要に応じてソフトウェア・アプリケーションの実行を一時停止することができる。
【０００７】
１つの実施では、中央仲介サーバが、あらかじめ定義されたユーザ・アクションに対するライセンス料を決定する。決定されるライセンス料は、例えば、使用量または所与のあらかじめ定義されたユーザ・アクションと関連する機能の識別子、あるいはその両方に基づくことができる。仲介サーバは、監視されるソフトウェア・アプリケーションのソフトウェア利用規約または利用レポート、あるいはその両方に基づいて、支払いを決定することができる。ソフトウェア利用規約は、例えば、所与のソフトウェア・アプリケーションの機能に対する支払額を規定するためのポリシーおよびルールを含むことができる。
【０００８】
ユーザ・アクションは、例えばソフトウェア・アプリケーションとユーザのユーザ・インタフェース・インタラクションをサンプリングすることによって、監視することができる。例えば、メニューの選択、マウス・ボタンの選択、マウス・ボタンのクリック動作、追加のユーザ・インタフェース・ウィジェット、およびショートカットのキーストロークのうちの１つまたは複数を、監視することができる。さらに、ユーザ・アクション付近の画像をサンプリングおよびマッチングして、選択のタイプおよび選択のインスタンスを判断することができる。１つの例示的実施では、サンプリングは、スクリーン・スクレイピング（Screen Scraping）・ツールまたはユーザ・インタフェース・ウィジェットによって行われる。
【０００９】
次の詳細な説明および図面を参照して、本発明ならびに本発明のさらなる特徴および利点はさらに完全に理解されるであろう。
【図面の簡単な説明】
【００１０】
【図１】本発明の特徴を組み込んだペイパーユース・ライセンス管理システムの例示的実施を示す図である。
【図２】本発明の特徴を組み込んだクライアント側の監視プログラムの例示的実施を説明するフローチャートである。
【図３】本発明の特徴を組み込んだ例示的利用レコードを示す図である。
【図４】本発明の特徴を組み込んだ例示的メディエータにより実施される様々なルーチンの例示的実施を説明するフローチャートである。
【図５】本発明の特徴を組み込んだ例示的メディエータにより実施される様々なルーチンの例示的実施を説明するフローチャートである。
【図６】本発明の特徴を組み込んだ例示的メディエータにより実施される様々なルーチンの例示的実施を説明するフローチャートである。
【図７】所与の監視されるアプリケーションのソフトウェア利用規約の例示的表現である。
【図８】ユーザがアプリケーション内で例示的保存操作を実行できるようにする例示的グラフィカル・ユーザ・インタフェース（ＧＵＩ）を示す図である。
【図９】本発明の１つもしくは複数の態様または要素、あるいはその両方を実施する際に役立つことができるコンピュータ・システムを示す図である。
【発明を実施するための形態】
【００１１】
本発明は、ソフトウェアのためのペイパーユース・ライセンス供与モデルを管理するための方法および装置を提供する。開示のペイパーユース・ライセンス管理システムは、ユーザの消費に基づいてライセンス料を決定する。本発明の１つの態様によれば、監視および計測アプリケーションが、クライアント・マシン上のソフトウェアの使用を監視し、サーバ上でまたはコンピュート・クラウドで実行中の支払メディエータ（Payment Mediator）に利用レポートを送信する。支払メディエータは、ソフトウェア製品ごとに異なる可能性があるソフトウェア利用規約のルールに基づいて、エンドユーザに代金を請求する。この方法では、ある機構についてエンドユーザに対し、ユーザがこの機構を初めて使用したとき、ユーザがこの機構をｎ回使用したとき、代金を請求する、または、ユーザが所与の機構もしくは機構セットを使用する頻度に基づいて代金を請求するように、ルールを確立することができる。他の利点として、ソフトウェア・アプリケーションに変更は必要とされない。もっと正確に言えば、ソフトウェア・アプリケーションから独立した１つまたは複数の監視および計測アプリケーションによって、支払条件が完全に執行される。
【００１２】
１つの例示的実施では、ソフトウェア・ベンダが、ＸＭＬまたは別の統一フォーマットで支払条件を指定することができる。このように支払条件は、必要に応じて開示する監視／計測アプリケーションによりすべてのソフトウェアに統一された方法で、ユーザに表示することができる。本発明に従って生成される利用レポートは、必要に応じてソフトウェア・ユーザおよびソフトウェア・ベンダの両方に提供することができる。
【００１３】
図１は、本発明の特徴を組み込んだペイパーユース・ライセンス管理システム１００の例示的実施を示す。図１に示すように、例示的ペイパーユース・ライセンス管理システム１００は、１つまたは複数のソフトウェア・アプリケーション１２０−１から１２０−Ｎ（本明細書ではまとめてソフトウェア・アプリケーション１２０と呼ぶ）を実行する複数のユーザ・デバイス１１０−１から１１０−Ｎ（本明細書ではまとめてユーザ・デバイス１１０と呼ぶ）を含む。ソフトウェア・アプリケーション１２０−１から１２０−Ｎは、１つまたは複数のソフトウェア・ベンダ１８０−１から１８０−Ｎによって提供される。
【００１４】
本発明の１つの態様によれば、図２と併せて以下にさらに説明するクライアント側の監視プログラム２００が、ソフトウェア・アプリケーション１２０の１つまたは複数のユーザによる利用を監視する。図１に示し、以下にさらに説明するように、例示的クライアント側監視プログラム２００は、接続ブローカ１３０と利用キャプチャ１４０とを含む。一般に、利用キャプチャ１４０は、画像レベルでユーザ・アクションを取り込んで記録し、接続ブローカ１３０は、さらなる処理のために利用レコードを中央メディエータ４００に送信する。図１に示すように、また図４〜６と併せて以下にさらに説明するように、例示的メディエータ４００は、利用解析ツール１５０と、請求管理ツール１６０と、ソフトウェア・プロファイル１７０とを含む。
【００１５】
図２は、本発明の特徴を組み込んだクライアント側の監視プログラム２００の例示的実施を説明するフローチャートである。図２に示すように、クライアント側の監視プログラム２００は、初めにステップ２１０中に画像レベルでユーザ・アクションを監視する。ステップ２２０中に、あらかじめ定義されたユーザ・アクションが検出されるかどうかを判断するためにテストが行われる。１つの例示的実施では、ターゲット・アプリケーション１２０を使用したユーザの作業中に、および、メニュー選択、右マウス・ボタンメニューからの選択、もしくはボタン上のマウス・クリックのような各ユーザ・インタフェース（ＵＩ）・ウィジェットのインタラクションの際に、マーカの座標（すなわち、インタラクションを信号で知らせるイベントの座標）の周りの画像はサンプリングされ、マッチングされて、選択のタイプ（メニュー選択、右マウス・ボタンのメニュー選択、ボタン・クリックなど）およびインスタンス（すなわちどのメニュー選択が選ばれたか、またはどのボタンがクリックされたか）を判断する。
【００１６】
ステップ２２０中に、あらかじめ定義されたユーザ・アクションが検出されないと判断される場合、プログラム制御はステップ２１０に戻る。しかしながら、ステップ２２０中にあらかじめ定義されたユーザ・アクションが検出されると判断される場合、利用キャプチャ１４０は、ステップ２３０中に画像レベルでユーザのアクションを取り込む。ユーザのアクションは、例えば、参照により本明細書に組み込まれる米国特許出願第２００８／０００１９５９号および第２００９／０２７３５９７号に記載された技術を使用して、例えば、スクリーン・スクレイピング・ツールによって、取り込むことができる。スクリーン・スクレイピング・ツールは、例えばユーザがクリックするメニュー選択の表示もしくはボタン、またはオペレーティング・システム（ＯＳ）のイベントを通してユーザが入力するキーストローク（機能のコマンド・ショートカット）を取り込むことができる。ユーザのアクションを取り込むために独立したツールを使用することにより、ソフトウェア・アプリケーション１２０に、たとえあったとしても著しい変更を行うことなく、本発明を実施することができる。さらなる変形では、ユーザのアクションは、備え付けられているユーザ・インタフェース・ウィジェットから取得して、ウィジェットが使用される際報告することができる。この計測をオペレーティング・システム・レベルで（例えば、Windows Software Development Kit（SDK）内で）一度行い、次いでそのＳＤＫを使用して任意のアプリケーション１２０で利用することができる。図３と併せて以下にさらに説明する、イベントの利用レコード３００が、ステップ２５０中に記録される。
【００１７】
図２に示すように、ステップ２６０中に、接続ブローカ１３０は、メディエータ４００と定期的にハンドシェイクし、利用レコード３００をメディエータ１５０に送信する。最大許容期間後に、接続ブローカ１３０がメディエータ４００に接続できない、またはユーザが利用料を支払わない場合、アプリケーションの実行を一時停止することができる。
【００１８】
ステップ２６０中に送信される利用レコード３００は、必要に応じて時間をかけて蓄積し、バッチ処理でメディエータ１５０に送信することができることに注意する。したがって、たとえユーザ・デバイス１１０がオフラインであっても、ユーザは依然としてソフトウェア・アプリケーション１２０の使用を許可されることが可能である。ユーザが、最大期間または利用アクション数のような、あらかじめ定義された限度に達すると、接続ブローカ１３０はメディエータ４００に接触し、ソフトウェア・アプリケーション１２０へのアクセスの継続を確認することが必要となる。
【００１９】
図３は、本発明の特徴を組み込んだ例示的利用レコード３００を示す。先に示したように、例えばユーザが所与のソフトウェア・アプリケーション１２０の保存機能にアクセスするなど、あらかじめ定義された利用イベントが検出されると、クライアント側の監視プログラム２００によって所与の利用レコード３００が作成される。図３に示すように、あらかじめ定義された各利用イベントについて、例示的利用レコード３００は、ソフトウェア・アプリケーション１２０の識別子と、ソフトウェア・アプリケーション１２０と関連するソフトウェア・ベンダ１８０の識別子と、関連するユーザ・デバイス１１０および関連するオペレーティング・システム（ＯＳ）の識別子と、利用イベントと関連する機能と、時間／日付スタンプと、利用イベントと関連するファイル名およびファイル・サイズと、利用イベントのアクション・タイプおよび手数料とを記録する。
【００２０】
図４は、メディエータ４００が実施することができ、本発明の特徴を組み込んだ例示的ソフトウェア・プロファイル管理ルーチン４１０の例示的実施を説明するフローチャートである。図４に示すように、ソフトウェア・プロファイル管理ルーチン４１０は、ステップ４２０中に対応するソフトウェア・ベンダ１８０からの監視される各アプリケーション１２０に対するソフトウェア利用規約５００を含むソフトウェア・プロファイル１７０を作成する。図７と併せて以下にさらに説明するように、例示的ソフトウェア利用規約５００は、例えば、それぞれのソフトウェア機能の名前、機能の呼び出しにマッチングされる画像ファイル（の名前）、ある場合は機能を呼び出すためのショートカット、およびクライアント・アプリケーションにおいて例えば利用ごとになど、機能の代金請求方法の詳細な説明を示すポリシー／ルールを含む。
【００２１】
先に示したように、ユーザ・デバイス１１０中の接続ブローカ１３０は、さらなる処理のために利用レコード３００を中央メディエータ４００に送信する。図５は、メディエータ４００が実施することができ、本発明の特徴を組み込んだ例示的利用解析ルーチン４３０の例示的実施を説明するフローチャートである。ステップ４４０中に、メディエータ４００の利用解析機能１５０は、利用解析レポートをコンパイルして、ユーザまたはソフトウェア・ベンダ１８０、あるいはその両方にこれを提供する。
【００２２】
図６は、メディエータ４００が実施することができ、本発明の特徴を組み込んだ例示的請求管理ルーチン４５０の例示的実施を説明するフローチャートである。ステップ４６０中に、請求管理機能１６０は、利用規約５００および利用レポート３００に基づいてアプリケーションの機能の利用代金をユーザ１１０に請求する。
【００２３】
図７は、ソフトウェア・ベンダ１８０によって提供される所与の監視されるアプリケーション１２０についてのソフトウェア利用規約５００の例示的表現である。ソフトウェア利用規約５００は、例えばＸＭＬフォーマットで提供し、格納することができる。先に示したように、例示的ソフトウェア利用規約５００は、例えば、それぞれのソフトウェア機能の名前、機能の呼び出しにマッチングされる画像ファイル（の名前）、ある場合は機能を呼び出すためのショートカット、およびクライアント・アプリケーション１２０における例えば利用ごとになど、機能の代金請求方法の詳細な説明を示すポリシー／ルールを含む。
【００２４】
所与の監視されるアプリケーション１２０についてのソフトウェア利用規約５００は、必要に応じてメディエータ４００に加えてユーザ・デバイス１１０に格納することができることに注意する。クライアント側のソフトウェア利用規約５００により、ユーザ・デバイス１１０の利用キャプチャ１４０が、利用レコード３００に記録される利用アクションをフィルタリングできるようになり、例えば支払請求をトリガする機能に対応するアクションだけをメディエータ４００に送信する。
【００２５】
図８は、ユーザが例えばアプリケーション１２０において保存操作を実行できるようにする例示的グラフィカル・ユーザ・インタフェース（ＧＵＩ）を示す。図８に示すように、例示的ＧＵＩ６００により、ユーザはメニュー・オプション６１０を選択することにより、またはキーストローク・ショートカット６２０により、保存操作を実行できるようになる。ユーザが「保存」操作６１０または６２０を選択するとき、アクションが取り込まれ、記録され、メディエータ４００に送信される。例示的保存操作の例示的利用レコード３００を図３に示す。例示的保存操作の例示的ソフトウェア利用規約５００を図７に示す。メディエータ４００は、ソフトウェア・プロファイル１７０に格納された利用規約５００に基づいてユーザに代金を請求する。
【００２６】
例示的システムおよび製品の詳細
当業者には理解されるように、本発明の諸態様は、システム、方法、またはコンピュータ・プログラム製品として具体化することができる。したがって、本発明の諸態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、またはソフトウェアの態様とハードウェアの態様を組み合わせた実施形態の形をとることができ、本明細書ではすべて一般的に「回路」、「モジュール」、または「システム」と呼ぶことができる。さらに、本発明の諸態様は、コンピュータ可読プログラム・コードを組み入れた１つまたは複数のコンピュータ可読記憶媒体に組み入れられたコンピュータ・プログラム製品の形をとることができる。
【００２７】
本発明の１つもしくは複数の実施形態、またはその要素は、メモリと、メモリに結合され、例示的方法のステップを実行するように動作する少なくとも１つのプロセッサとを含む装置の形で実現することができる。
【００２８】
１つまたは複数の実施形態は、汎用コンピュータまたはワークステーションで実行するソフトウェアを使用することができる。図９は、本発明の１つもしくは複数の態様または要素、あるいはその両方を実施する際に役立つ可能性があるコンピュータ・システム７００を示す。図９を参照すると、このような実施は、例えば、プロセッサ７０２と、メモリ７０４と、例えばディスプレイ７０６およびキーボード７０８で形成される入力／出力インタフェースとを使用することができる。本明細書で使用する「プロセッサ」という用語は、例えばＣＰＵ（中央演算処理装置）または他の形態の処理回路、あるいはその両方を含む処理デバイスなど、いかなる処理デバイスも含むものとする。さらに「プロセッサ」という用語は、２つ以上の個々のプロセッサを指すことができる。「メモリ」という用語は、例えばＲＡＭ（ランダム・アクセス・メモリ）、ＲＯＭ（読み出し専用メモリ）、固定メモリ・デバイス（例えばハード・ドライブ）、リムーバブル・メモリ・デバイス（例えばディスケット）、フラッシュ・メモリなどのような、プロセッサまたはＣＰＵと関連するメモリを含むものとする。さらに、本明細書で使用する「入力／出力インタフェース」という語句は、例えば、処理ユニットにデータを入力するための１つまたは複数のメカニズム（例えばマウス）、および処理ユニットと関連する結果を提供するための１つまたは複数のメカニズム（例えばプリンタ）を含むものとする。プロセッサ７０２、メモリ７０４、ならびにディスプレイ７０６およびキーボード７０８のような入力／出力インタフェースは、例えばデータ処理ユニット７１２の一部としてバス７１０を介して相互接続することができる。例えばバス７１０を介する好適な相互接続は、ネットワーク・カードのような、コンピュータ・ネットワークと接続するために設けることができるネットワーク・インタフェース７１４に、およびディスケットもしくはＣＤ−ＲＯＭドライブのような、メディア７１８と接続するために設けることができるメディア・インタフェース７１６に、提供することもできる。
【００２９】
アナログ・ビデオ・フィードのようなアナログ入力を受け取って、同じものをデジタル化するために、（１つまたは複数の）アナログ−デジタル変換器７２０を設けることができる。このような（１つまたは複数の）変換器は、システム・バス７１０で相互接続することができる。
【００３０】
したがって、本明細書に記載する、本発明の手法を実行するための命令またはコードを含んだコンピュータ・ソフトウェアは、関連するメモリ・デバイス（例えばＲＯＭ、固定メモリまたはリムーバブル・メモリ）の１つまたは複数に格納することができ、利用の準備ができると、一部または全部を（例えばＲＡＭに）ロードされ、ＣＰＵによって実行される。このようなソフトウェアは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むことができるが、これらに限定されない。
【００３１】
プログラム・コードを格納するまたは実行する、あるいはその両方のために適したデータ処理システムは、システム・バス７１０を介してメモリ要素７０４に直接的にまたは間接的に結合された少なくとも１つのプロセッサ７０２を含む。メモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリと、大容量記憶装置と、実行中に大容量記憶装置からコードを検索しなければならない回数を削減するために少なくとも一部のプログラム・コードの一時的な収納場所を提供するキャッシュ・メモリとを含むことができる。
【００３２】
入力／出力デバイス、すなわちＩ／Ｏデバイス（キーボード７０８、ディスプレイ７０６、ポインティング・デバイスなどを含むが、これらに限定されない）を、直接的に（例えばバス７１０を介する）または介在するＩ／Ｏコントローラ（わかりやすくするために省略する）を通じて、システムに結合することができる。
【００３３】
ネットワーク・インタフェース７１４のようなネットワーク・アダプタをシステムに結合して、データ処理システムが介在するプライベート・ネットワークまたはパブリック・ネットワークを通して他のデータ処理システムまたはリモート・プリンタまたは記憶装置に結合されるようになることを可能にすることもできる。モデム、ケーブル・モデム、およびイーサネット・カードは、現在利用できるネットワーク・アダプタのタイプのほんの一部にすぎない。
【００３４】
本明細書で使用し、特許請求の範囲に含む「サーバ」は、サーバ・プログラムを実行する物理的データ処理システム（例えば、図９に示すシステム７１２）を含む。このような物理的サーバは、ディスプレイおよびキーボードを含む場合がある、または含まない場合があることを理解されるであろう。
【００３５】
前述のように、本発明の諸態様は、コンピュータ可読プログラム・コードを組み入れた１つまたは複数のコンピュータ可読媒体に組み入れられたコンピュータ・プログラム製品の形をとることができる。１つまたは複数のコンピュータ可読媒体の任意の組合せを使用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体、またはコンピュータ可読記憶媒体であることが可能である。コンピュータ可読記憶媒体は、例えば電子、磁気、光、電磁気、赤外線、または半導体のシステム、装置、またはデバイス、あるいは上記の任意の好適な組合せであることが可能であるが、これらに限定されない。メディア・ブロック７１８は、非限定的な例である。コンピュータ可読記憶媒体のさらなる具体例（非網羅的リスト）には、１つもしくは複数の配線を有する電気接続、携帯可能なコンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラマブル読み出し専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光学式記憶装置、磁気記憶装置、または上記の任意の好適な組合せが含まれる。この文書の文脈においては、コンピュータ可読記憶媒体は、命令実行システム、装置、もしくはデバイスによって、またはこれらに関連して使用するためにプログラムを収容または格納することができる任意の有形媒体とすることができる。
【００３６】
コンピュータ可読信号媒体は、例えばベースバンドに、または搬送波の一部として、コンピュータ可読プログラム・コードを組み入れた伝搬データ信号を含むことができる。このような伝搬信号は、電磁気、光、またはその任意の好適な組合せを含むが、これらに限定されない、様々な形態のいずれかをとることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではないが、命令実行システム、装置、もしくはデバイスによって、またはこれらに関連して使用するためにプログラムを伝える、伝搬する、もしくは伝送することができる任意のコンピュータ可読媒体とすることができる。
【００３７】
コンピュータ可読媒体に組み入れられたプログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦなど、または上記の任意の好適な組合せを含むが、これらに限定されない、任意の適切な媒体を使用して送信することができる。
【００３８】
本発明の諸態様のための動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのようなオブジェクト指向プログラミング言語、ならびに「Ｃ」プログラミング言語または同様のプログラミング言語のような従来の手続きプログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで書くことができる。プログラム・コードは、スタンドアロン型ソフトウェア・パッケージとして、完全にユーザのコンピュータ上で、一部ユーザのコンピュータ上で、一部はユーザのコンピュータ上でかつ一部はリモート・コンピュータ上で、または完全にリモート・コンピュータもしくはサーバ上で、実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含む、任意のタイプのネットワークを介してユーザのコンピュータに接続することができる、または（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに接続を行うことができる。
【００３９】
本発明の諸実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図、あるいはその両方を参照して、本発明の諸態様を以下に記載する。フローチャート図またはブロック図、あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図、あるいはその両方の中のブロックの組合せは、コンピュータ・プログラム命令によって実行できることを理解されるであろう。こうしたコンピュータ・プログラム命令は、汎用コンピュータ、専用コンピュータ、または機械を製造するための他のプログラマブル・データ処理装置のプロセッサに提供することができ、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図、あるいはその両方の１つまたは複数のブロックに指定される機能／行動を実行するための手段を作り出すようにする。
【００４０】
またこうしたコンピュータ・プログラム命令は、特定の方法で機能するように、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに命令することができるコンピュータ可読媒体に格納することができ、したがってコンピュータ可読媒体に格納された命令が、フローチャートまたはブロック図、あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実行する命令を内蔵した製品を生み出す。
【００４１】
またコンピュータ・プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードして、一連の動作ステップをコンピュータ、他のプログラマブル装置、または他のデバイス上で実行させてコンピュータ実行プロセスを作り出すことができ、したがってコンピュータまたは他のプログラマブル装置上で実行される命令が、フローチャートまたはブロック図、あるいはその両方の１つまたは複数のブロックに指定される機能／行動を実行するためのプロセスを提供する。
【００４２】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。この関連で、フローチャートまたはブロック図の各ブロックは、コードのモジュール、セグメント、または一部を表わすことができ、（１つまたは複数の）指定された論理機能を実行するための１つまたは複数の実行可能命令を含む。また、いくつかの代替的な実施では、ブロックに示した機能が図に示した順序を外れて行われる場合があることに注意されたい。例えば、連続して示した２つのブロックは、実際には実質的に同時に行われる場合があり、またはブロックは、関与する機能に応じて、時には逆の順序で行われる場合がある。またブロック図またはフローチャート図、あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図、あるいはその両方におけるブロックの組合せは、指定された機能または行動を行う特殊用途ハードウェアベースのシステムによって、あるいは特殊用途ハードウェアおよびコンピュータ命令の組合せによって、実行可能であることに注意されたい。
【００４３】
本明細書に記載する方法のステップは、本明細書に記載するように、例えば、このようなステップを実行するようにプログラムされた汎用コンピュータに、またはこのようなステップを実行するためのハードウェアに結び付けることができる。さらに、例えばデータ・ストリームを取得すること、およびこのストリームを符号化することを含む、本明細書に記載する方法のステップは、カメラまたはマイクのような、そこからデータ・ストリームを取得する物理センサに結び付けることもできる。
【００４４】
本明細書に記載する方法のいずれも、コンピュータ可読記憶媒体に組み入れられた別個のソフトウェア・モジュールを含むシステムを提供するさらなるステップを含むことができることに注意されたい。方法のステップはその後、上述のように、１つまたは複数のハードウェア・プロセッサ７０２で実行中のシステムの別個のソフトウェア・モジュールまたはサブモジュール、あるいはその両方を使用して、実行することができる。いくつかの場合、専用ハードウェアを使用して、本明細書に記載する機能の１つまたは複数を実行することができる。さらに、コンピュータ・プログラム製品は、システムに別個のソフトウェア・モジュールを提供することを含む、本明細書に記載する１つまたは複数の方法のステップを行うために実装されるように適合されたコードを有するコンピュータ可読記憶媒体を含むことができる。
【００４５】
いずれの場合も、本明細書に示す構成要素は、例えば（１つまたは複数の）特定用途向け集積回路（ＡＳＩＣＳ）、機能回路、関連するメモリを備えた１つまたは複数の適切にプログラムされた汎用デジタル・コンピュータなど、ハードウェア、ソフトウェア、またはその組合せの様々な形で実装することができることを理解されたい。本明細書に提供される本発明の教示を前提として、当業者は、本発明の構成要素の他の実装を考えることができるであろう。
【００４６】
本明細書で使用する用語は、特定の実施形態を説明することのみを目的としており、本発明の限定となることを意図していない。本明細書で使用される単数形（「ａ」、「ａｎ」、および「ｔｈｅ」）は、文脈上明らかに他の意味を示す場合を除いて、複数形も含むものとする。「含む」または「含んでいる」、あるいはその両方の用語は、本明細書で使用されるとき、明示された特徴、または完全体、またはステップ、または動作、または要素、または構成要素、あるいはその組合せの存在を明記するが、１つまたは複数の他の特徴、または完全体、またはステップ、または動作、または要素、または構成要素、またはそのグループ、あるいはその組合せの存在または追加を排除しないことを、さらに理解されるであろう。
【００４７】
添付の特許請求の範囲に含まれるあらゆる手段またはステップさらに機能要素の対応する構造、材料、行動、および均等物は、具体的に特許請求される他の請求項の要素と組み合わせて機能を行うためのいかなる構造、材料、または行動も含むものとする。本発明の説明は、例示および説明のために提示したが、網羅的であること、または開示した形態の発明に限定されることを意図していない。本発明の範囲および趣旨を逸脱することなく多くの変更形態および変形形態が当業者には明らかであろう。本発明の原理および実際の応用を最も良く説明するために、また当業者が予想される特定の利用に適した様々な変更形態と共に様々な実施形態について本発明を理解できるように、実施形態を選択して説明した。
【図１】
2014516431.tif 000003
【図２】
2014516431.tif 000004
【図３】
2014516431.tif 000005
【図４】
2014516431.tif 000006
【図５】
2014516431.tif 000007
【図６】
2014516431.tif 000008
【図７】
2014516431.tif 000009
【図８】
2014516431.tif 000010
【図９】
2014516431.tif 000011
2014516431.tif 000012
2014516431.tif 000013
2014516431.tif 000014
2014516431.tif 000015
2014516431.tif 000016
2014516431.tif 000017
2014516431.tif 000018
【国際調査報告】
2014516431.tif 000019
2014516431.tif 000020