(57)【要約】２つの異なるコマンドルーティングプロトコルを利用できるユーザインターフェースを提供することができる。２つの異なるコマンドルーティングプロトコルは、第１のコマンドルーティングプロトコル、及び第２のコマンドルーティングプロトコルを備えることができる。第１のコマンドルーティングプロトコルは、プルモデルを使用できる。第２のコマンドルーティングプロトコルは、プッシュモデルを使用できる。第１のコマンドルーティングプロトコルを、拡張可能なマーク付け言語（ＸＭＬ）で静的に事前定義することができる。第２のコマンドルーティングプロトコルを、コマンドがユーザインターフェースコマンドのコンテナに同期して押し込まれるとき、ランタイムで動的に構築することができる。ユーザインターフェースを、複数のタブを有するリボンを備えて表示することができる。
2012511775.tif 000002
【特許請求の範囲】
【請求項１】
ユーザインターフェースのブリッジングを提供するシステムであって、
メモリストレージ（４０４）と、
前記メモリストレージ（４０４）に結合された処理ユニット（４０２）であって、前記処理ユニット（４０２）は、２つの異なるコマンドルーティングプロトコルからユーザインターフェースを提供するために作動し、前記２つの異なるコマンドルーティングプロトコルは、プルモデルを使用する第１のコマンドルーティングプロトコルと、プッシュモデルを使用する第２のコマンドルーティングプロトコルとを備えることと
を備えることを特徴とするシステム。
【請求項２】
前記処理ユニット（４０２）は、前記ユーザインターフェースを表示するよう作動することを特徴とする請求項１に記載のシステム。
【請求項３】
前記処理ユニット（４０２）は、複数のタブ（１２５、１３０、１３５、１４０）を有するリボンを備える前記ユーザインターフェースを表示するよう作動することを特徴とする請求項１に記載のシステム。
【請求項４】
前記第１のコマンドルーティングプロトコルは、静的に事前定義されることを特徴とする請求項１に記載のシステム。
【請求項５】
前記第１のコマンドルーティングプロトコルは、拡張可能なマーク付け言語（ＸＭＬ）で静的に事前定義されることを特徴とする請求項１に記載のシステム。
【請求項６】
前記第２のコマンドルーティングプロトコルは、ランタイムで動的に構築されることを特徴とする請求項１に記載のシステム。
【請求項７】
前記第２のコマンドルーティングプロトコルは、コマンドが、ユーザインターフェースコマンドのコンテナに同期して押し込まれるとき、ランタイムで動的に構築されることを特徴とする請求項１に記載のシステム。
【請求項８】
ユーザインターフェースのブリッジングを提供する方法であって、
送受信器モジュール（１０５）により、アクティブにされたツールモジュール（１１５、１２０、２１５）に基づいてメニューリボンモジュール（２０５）を選択すること（３３０）と、
前記メニューリボンモジュール（２０５）から前記ツールモジュール（１１５、１２０、２１５）に、前記メニューリボンモジュール（２０５）に対応するリボン上のタブ（１２５、１３０、１３５、１４０）のいずれかをアクティブにすべきかを定義するための要求を送信すること（３４０）と、
前記メニューリボンモジュール（２０５）において、前記ツールモジュール（１１５、１２０、２１５）から、前記メニューリボンモジュール（２０５）に対応する前記リボン上のタブ（１２５、１３０、１３５、１４０）のいずれかをアクティブにすべきかを示す応答を受信すること（３５０）と、
前記メニューリボンモジュール（２０５）からアダプタ作成モジュール（４２０）に、コンテナ内の少なくとも１つのツールコマンド、及び前記リボン上の少なくとも１つのタブ間で翻訳する（３８０）ために構成された少なくとも１つのアダプタ（２１０）を作成するための要求を送信（３６０）し、前記少なくとも１つのタブは、アクティブにすべき１つであるとして応答において示されていることと、
前記アダプタ作成モジュール（４２０）により、前記少なくとも１つのアダプタ（２１０）を作成すること（３７０）と
を備えることを特徴とする方法。
【請求項９】
ユーザ入力に応答して前記ツールモジュール（１１５、１２０、２１５）をアクティブにすること（３１０）をさらに備えることを特徴とする請求項８に記載の方法。
【請求項１０】
アクティブにされたことに応答して、前記ツールモジュール（１１５、１２０、２１５）により、前記ツールモジュール（１１５、１２０、２１５）に対応する前記少なくとも１つのツールコマンドを前記コンテナに押し込むこと（３２０）をさらに備えることを特徴とする請求項９に記載の方法。
【請求項１１】
前記少なくとも１つのアダプタ（２１０）を使用し、前記コンテナ内の前記少なくとも１つのツールコマンド、及び前記タブ上に存在する前記少なくとも１つのネイティブリボンコマンド間で翻訳する（３８０）ことをさらに備えることを特徴とする請求項８に記載の方法。
【請求項１２】
前記少なくとも１つのアダプタ（２１０）を作成すること（３７０）は、プッシュモデルを使用する第１のコマンドルーティングプロトコルと、プルモデルを使用する第２のコマンドルーティングプロトコルとを備える２つの異なるコマンドルーティングプロトコル間でマップすることを備えることを特徴とする請求項８に記載の方法。
【請求項１３】
前記少なくとも１つのアダプタ（２１０）を作成すること（３７０）は、前記少なくとも１つのアダプタ（２１０）を作成すること（３７０）を備え、前記第１のコマンドルーティングプロコルは、静的に事前定義されることを特徴とする請求項１２に記載の方法。
【請求項１４】
前記少なくとも１つのアダプタ（２１０）を作成すること（３７０）は、前記少なくとも１つのアダプタ（２１０）を作成すること（３７０）を備え、前記第２のコマンドルーティングプロコルは、ランタイムで動的に構築されることを特徴とする請求項１２に記載の方法。
【請求項１５】
前記少なくとも１つのアダプタ（２１０）を作成すること（３７０）は、前記少なくとも１つのアダプタ（２１０）を作成すること（３７０）を備え、コマンドが、前記コンテナに同期して押し込まれるとき、前記第２のコマンドルーティングプロコルは、ランタイムで動的に構築されることを特徴とする請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なるユーザインターフェースコマンドシステムのブリッジングのためのアダプタに関する。
【背景技術】
【０００２】
一貫した「ルック・アンド・フィール」を提供するために、ソフトウェアの提供者は、アプリケーションツール一式の内の個々のアプリケーションツール間での一貫したユーザインターフェース（ＵＩ）を提供することを望む場合がある。一部の個々のアプリケーションツールが、一貫したＵＩと互換性のあるコマンドルーティングプロトコルで開発される場合がある一方、他の個々のアプリケーションツールは、一貫したＵＩと互換性のない「レガシ（legacy、従来の）」・コマンドルーティングプロトコルで開発されたレガシ・ソフトウェアツールを備える場合がある。このＵＩの非互換性問題の１つの解決法は、一貫したＵＩと動作するためにレガシ・ソフトウェアツールを書き換えることである。ソフトウェアツールを書き換えることなくレガシ・ソフトウェアツールを活用するために、上記の一貫したＵＩにレガシ・ソフトウェアツールをブリッジする（bridge、橋渡し）方法を有することが望ましい。
【発明の概要】
【０００３】
本発明の概要は、発明を実施するための形態において、以下でさらに説明される簡単な形で概念の選択を紹介するために提供される。本発明の概要は、特許請求の範囲に記載された主題の重要な特徴又は主要な特徴を特定することを意図しない。また、本発明の概要は、特許請求の範囲に記載された主題の範囲を限定するために使用されることも意図しない。
【０００４】
２つの異なるコマンドルーティングプロトコルを利用できるユーザインターフェースを、提供することができる。２つの異なるコマンドルーティングプロトコルは、第１のコマンドルーティングプロトコル、及び第２のコマンドルーティングプロトコルを備えることができる。第１のコマンドルーティングプロトコルは、プルモデルを使用できる。第２のコマンドルーティングプロトコルは、プッシュモデルを使用できる。
【０００５】
上記の一般的な説明、及び下記の発明を実施するための形態はともに、実施例を提供し、説明するためのみのものである。従って、上記の一般的な説明、及び下記の発明を実施するための形態は、限定するものとして考慮されるべきではない。さらに、特徴、又は変形形態を、本明細書で説明されるものに加えて提供することができる。例えば、実施形態は、発明を実施するための形態において説明される様々な特徴のコンビネーション及びサブコンビネーションを対象にできる。
【図面の簡単な説明】
【０００６】
添付の図面は、本開示の一部に組み込まれ、本開示の一部を構成し、本発明の様々な実施形態を示す。以下は図面における。
【０００７】
【図１】動作環境のブロック図である。
【図２】マッピング環境を示す図である。
【図３】ユーザインターフェースのブリッジングを提供するための方法のフローチャートである。
【図４】コンピューティングデバイスを含むシステムのブロック図である。
【発明を実施するための形態】
【０００８】
下記の発明を実施するための形態は、添付の図面に言及する。可能な限り、同一の参照番号が、図面及び下記の説明において使用され、同一又は類似の要素に言及する。本発明の実施形態が説明されることができる一方で、修正、適応及び他の実装が可能である。例えば、置換、追加又は修正は、図面において示される要素に対して行なうことができ、本明細書で説明される方法は、置換段階、並べ替え段階又は追加段階により、開示された方法に修正されることができる。従って、下記の発明を実施するための形態は、本発明を限定しない。代わりに、本発明の正確な範囲は、添付の特許請求の範囲により定義される。
【０００９】
インターフェースのブリッジングを、提供することができる。本発明の実施形態に準拠して、アダプタインターフェースは、異なるユーザインターフェース（ＵＩ）コマンドルーティングプロトコル（例えば、システム）をブリッジングできる。図１は動作環境１００を示す。図１に示されるように、環境１００は、例えばディスプレイを備える出力デバイス（例えば、図４に関して以下で説明されるように出力デバイス４１４の１つ）上に表示されることができる。動作環境１００は、送受信器モジュール１０５、ユーザインターフェースモジュール１１０、第１のツールモジュール１１５及び第２のツールモジュール１２０を含むことができる。ユーザインターフェースモジュール１１０は、メニューリボンモジュール（例えば、図２に関して以下で説明されるメニューリボンモジュール２０５）を備えることができるがこれに限定されない。ユーザインターフェース１１０は、複数のタブ１２５、１３０、１３５及び１４０を含むことができる。送受信器モジュール１０５は、ユーザインターフェースモジュール１１０を含んで制御し、第１のツールモジュール１１５及び第２のツールモジュール１２０のいずれが現在アクティブか知ることができる。例えば、ユーザが動作環境１００のフォーカスを、第１のツールモジュール１１５又は第２のツールモジュール２００のそれぞれの１つに変更するとき、第１のツールモジュール１１５又は第２のツールモジュール１２０は、アクティブなツールモジュールになることができる。
【００１０】
第１のツールモジュール１１５は第１のコマンドルーティングプロトコルを採用でき、第２のツールモジュール１２０は第２のコマンドルーティングプロトコルを採用できる。第１のコマンドルーティングプロトコルは、プルモデルを採用し、階層的にそのＵＩコマンドを組み立てることができる一方で、第２のコマンドルーティングプロトコルは、プッシュモデルを採用し、階層的にそのＵＩコマンドを組み立てることができる。
【００１１】
第１のコマンドルーティングプロトコル並びにユーザインターフェース１１０のためのルーティングプロトコルも、例えば拡張可能なマーク付け言語（ＸＭＬ）で静的に事前定義されることができる。しかし、第２のコマンドルーティングプロトコルは、コマンドが、ＵＩコマンドコンテナに同期して押し込まれるとき（例えば、ツール変更時点及びフォーカス変更時）、ランタイムで動的に構築されることができる。
【００１２】
本発明の実施形態は、「プッシュ」ルーティングプロトコルのネイティブ制御のユーザオブジェクトを、「プル」ルーティングプロトコルで動作するための新しいＵＩコマンドオブジェクトに再マップして、ネイティブ制御のユーザオブジェクトがプッシュルーティングプロトコルにおける存在物に出入りするようにする。図２はマッピング環境２００を示す。図２に示されるようにマッピング環境２００は、メニューリボンモジュール２０５、アダプタ２１０及びアクティブなツールモジュール２１５を含むことができる。メニューリボンモジュール２０５は、ユーザインターフェースモジュール１１０を備え、アクティブなツールモジュール２１５は、第１のツールモジュール１１５及び第２のツールモジュール１２０の１つを備えることができる。メニューリボンモジュール２０５は、第１のコマンドルーティングモジュールを採用し、アクティブなツールモジュール２１５は第２のコマンドルーティングモジュールを採用できる。上記のように、第１のコマンドルーティングプロトコルは、階層的にそのＵＩコマンドを組み立てるためにプルモデルを採用できる一方で、第２のコマンドルーティングプロトコルは階層的にそのＵＩコマンドを組み立てるためにプッシュモデルを採用できる。結果として、図３に関して以下でより詳細に説明されるように、アダプタ２１０を作成して使用し、これら２つの異なるコマンドルーティングプロトコル（例えば、プッシュ及びプル）をブリッジすることができる。
【００１３】
図３はユーザインターフェースのブリッジングを提供するための本発明の実施形態に準拠した方法３００に含まれる一般的な段階を説明しているフローチャートである。方法３００は、図４に関して以下でより詳細に説明されるように、コンピューティングデバイス４００を使用して実装されることができる。方法３００の段階を実装するための方式は、以下でより詳細に説明されることになる。方法３００は、開始ブロック３０５で開始し、段階３１０に進むことができ、ここでは、コンピューティングデバイス４００がユーザ入力に応答してツールモジュールをアクティブにできる。例えば、ユーザは動作環境１００において動作できる。動作環境１００において動作する一方で、ユーザは第１のツールモジュール１１５及び第２のツールモジュール１２０の間で動作環境１００のフォーカスを変更できる。アクティブなツールモジュール（例えば、アクティブなツールモジュール２１５）は、ユーザが現在フォーカスしている、第１のツールモジュール１１５及び第２のツールモジュール１２０のいずれかを備えることができる。
【００１４】
コンピューティングデバイス４００がユーザ入力に応答してツールモジュール（例えば、アクティブなツールモジュール２１５）をアクティブにする段階３１０から、方法３００は、段階３２０に前進でき、ここでは、コンピューティングデバイス４００がアクティブなツールモジュール２１５によりアクティブなツールモジュール２１５に対応する少なくとも１つのツールコマンドを、コンテナに押し込むことができる。例えば、アクティブなツールモジュール２１５は「プッシュ」コマンドルーティングプロトコルを採用できる。言い換えると、コマンドがＵＩコマンドコンテナに同期して押し込まれるとき、アクティブなツールモジュール２１５におけるコマンドは、アクティブなツールモジュール２１５のランタイムで動的に構築されることができる。
【００１５】
コンピューティングデバイス４００が、アクティブなツールモジュール２１５により、アクティブなツールモジュール２１５に対応する少なくとも１つのツールコマンドを段階３２０におけるコンテナに押し込むと、方法３００は、コンピューティングデバイス４００が、送受信器モジュール１０５により、アクティブなツールモジュール２１５に基づいてメニューリボンモジュール２０５を選択できる段階３３０に続くことができる。例えば、送受信器モジュール１０５は、メニューリボンモジュール２０５（例えば、ユーザインターフェースモジュール１１０）を含み、制御し、第１のツールモジュール１１５及び第２のツールモジュール１２０のいずれがアクティブなツールモジュール２１５であるかを知ることができる。送受信器モジュール１０５は、いずれのツールモジュールがアクティブにされるかを知ることができるので、送受信器モジュール１０５は、何のタブを、アクティブなツールモジュール２１５が、メニューリボンモジュール２０５において、示すべきかを知ることができる。
【００１６】
コンピューティングデバイス４００が、アクティブなツールモジュール２１５に対応する少なくとも１つのツールコマンドを段階３３０におけるコンテナに押し込んだ後、方法３００は段階３４０に進み、ここでは、コンピューティングデバイス４００は、メニューリボン２０５からアクティブなツールモジュール２１５に、メニューリボンモジュール２０５に対応するリボン上のいずれかのタブ（例えば、複数のタブ１２５、１３０、１３５及び１４０）がアクティブ（例えば、可視）であるべきかを定義するための要求を送信できる。例えば、送受信器モジュール１０５は、いずれかのリボンを表示するかを知ることができる一方で、所与の状況のために、複数のタブ１２５、１３０、１３５及び１４０のいずれかを可視にさせるかを知ることができない。結果として、メニューリボンモジュール２０５は、いずれのタブを可視にさせるかをアクティブなツールモジュール２１５に問い合わせることができる。
【００１７】
コンピューティングデバイス４００が、リボン上のいずれかのタブがアクティブであるべきかを定義するための要求を送信する段階３４０から、方法３００は、段階３５０に前進でき、ここでは、コンピューティングデバイス４００は、メニューリボンモジュール２０５において、アクティブなツールモジュール２１５から、メニューリボンモジュール２０５に対応するリボン上のいずれかのタブがアクティブであるべきかを示す応答を受信できる。例えば、メニューリボンモジュール２０５からの要求に応答して、アクティブなツールモジュール２１５は、メニューリボンモジュール２０５に、複数のタブ１２５、１３０、１３５及び１４０のいずれかを、所与の状況のために可視にさせるかを示すことができる。
【００１８】
コンピューティングデバイス４００が、メニューリボンモジュール２０５に対応するリボン上のいずれかのタブが段階３５０においてアクティブであるべきかを示す応答を受信すると、方法３００は、段階３６０に続くことができ、ここでは、コンピューティングデバイス４００は、メニューリボンモジュール２０５からアダプタ作成モジュール４２０に、少なくとも１つのアダプタ２１０を作成するための要求を送信できる。アダプタ２１０は、コンテナ内の少なくとも１つのツールコマンドと、タブ上で存在できる少なくとも１つのネイティブのリボンコマンドとの間で翻訳するよう構成されることができる。少なくとも１つのタブは、応答において、アクティブであるべきタブであるとして、示されることができる（例えば、可視に）。メニューリボンモジュール２０５は、アクティブなツールモジュール２１５より異なるコマンドルーティングプロトコルを採用できるので、これらの２つのコマンドルーティングプロトコル間に差が存在する可能性がある。この差をブリッジするために、アダプタ作成モジュール４２０を使用し、アダプタ２１０を作成できる。アダプタ２１０は、アクティブなツールモジュール２１５のネイティブのリボン制御ユーザオブジェクトを再マップし、新しいＵＩコマンドオブジェクトに、アクティブなツールモジュール２１５のコマンドオブジェクトが存在物に出入りするようする。
【００１９】
コンピューティングデバイス４００が、段階３６０においてアダプタ２１０を作成する要求を送信した後、方法３００は、段階３７０に進むことができ、ここでは、コンピューティングデバイス４００は、アダプタ作成モジュール４２０によりアダプタ２１０を作成できる。例えば、上記のように、メニューリボンモジュール２０５は第１のコマンドルーティングプロトコルを採用でき、アクティブなツールモジュール２１５は第２のコマンドルーティングプロトコルを採用できる。第１のコマンドルーティングプロトコルは、階層的にそのＵＩコマンドを組み立てるためのプルモデルを採用できる一方で、第２のコマンドルーティングプロトコルは階層的にそのＵＩコマンドを組み立てるためのプッシュモデルを採用できる。結果として、アダプタ２１０を作成し、これらの２つの異なるコマンドルーティングプロトコル（例えば、プッシュ及びプル）をブリッジできる。特に、アクティブなツールモジュール２１５のコマンドオブジェクトはＵＲＬ(Uniform Resource Locators)を利用できる。メニューリボンモジュール２０５は、複数のタブ１２５、１３０、１３５及び１４０の１つを特定するＴｏｏｌ  Ｂａｒ  Ｃｏｎｔｒｏｌ  ＩＤｓ（ＴＣＩＤ、ツールバー制御ＩＤ）を採用できる。従って、アダプタ２１０はアクティブなツールモジュール２１５のＵＲＬを、メニューリボンモジュール２０５のＴＩＣＤにマップできる。
【００２０】
コンピューティングデバイス４００が段階３７０においてアダプタ２１０を作成すると、方法３００は、段階３８０に続くことができ、ここでは、コンピューティングデバイス４００は、アダプタ２１０を使用し、コンテナ内の少なくとも１つのツールコマンドとタブ上に存在できるネイティブのリボンコマンドとの間で翻訳できる。例えば、アダプタ２１０を使用し、アクティブなツールモジュール２１５のネイティブなリボン制御ユーザオブジェクトを、新しいＵＩコマンドオブジェクトに再マップして、アクティブなツールモジュール２１５のコマンドオブジェクトが存在物に出入りするようにできる。コンピューティングデバイス４００が段階３８０において翻訳するためにアダプタ２１０を使用すると、方法３００はその後に段階３９０で終了できる。
【００２１】
本発明に準拠した実施形態は、ユーザインターフェースのブリッジングを提供するためのシステムを備えることができる。システムは、メモリストレージ及びメモリストレージに結合された処理ユニットを備えることができる。処理ユニットは、２つの異なるコマンドルーティングプロトコルからユーザインターフェースを提供するよう作動できる。２つの異なるコマンドルーティングプロトコルは、プルモデルを使用する第１のコマンドルーティングプロトコル、及びプッシュモデルを使用する第２のコマンドルーティングプロトコルを備えることができる。
【００２２】
本発明に準拠した他の実施形態は、ユーザインターフェースのブリッジングを提供するためのシステムを備えることができる。システムは、メモリストレージ、及びメモリストレージに結合された処理ユニットを備えることができる。処理ユニットは、２つの異なるコマンドルーティングプロトコルから、ユーザインターフェースを作成するよう作動できる。２つの異なるコマンドルーティングプロトコルは、プルモデルを使用する第１のコマンドルーティングプロトコル及びプッシュモデルを使用する第２のコマンドルーティングプロトコルを備えることができる。さらに、処理ユニットはユーザインターフェースを表示するよう作動できる。
【００２３】
さらに本発明に準拠した他の実施形態は、ユーザインターフェースのブリッジングを提供するためのシステムを備えることができる。システムは、メモリストレージ及びメモリストレージに結合された処理ユニットを備えることができる。処理ユニットは、送受信器モジュールにより、アクティブにされたツールモジュールに基づいてメニューリボンモジュールを選択するよう作動できる。さらに、処理ユニットは、メニューリボンモジュールからツールモジュールに、メニューリボンモジュールに対応するリボン上のいずれかのタブがアクティブであるべきかを定義する要求を送信するよう作動できる。さらに、処理ユニットは、メニューリボンモジュールにおいてツールモジュールから、メニューリボンモジュールに対応するリボン上のいずれかのタブがアクティブであるべきかを示す応答を受信するよう作動できる。さらに、処理ユニットは、メニューリボンモジュールからアダプタ作成モジュールに、コンテナ内の少なくとも１つのツールコマンドと、タブ上で存在できるネイティブのリボンコマンドとの間で翻訳するよう構成される少なくとも１つのアダプタを作成するための要求を送信するよう作動できる。少なくとも１つのタブは、アクティブであるべきタブであるとして、応答において示されることができる。また、処理ユニットは、アダプタ作成モジュールにより、少なくとも１つのアダプタを作成するよう作動できる。
【００２４】
図４は、コンピューティングデバイス４００を含むシステムのブロック図である。本発明の実施形態に準拠して、上記のメモリストレージ及び上記の処理ユニットは、図４のコンピューティングデバイス４００等のコンピューティングデバイスにおいて実装されることができる。ハードウェア、ソフトウェア又はファームウェアの任意の適切な組み合わせを使用し、メモリストレージ及び処理ユニットを実装する。例えば、メモリストレージ及び処理ユニットは、コンピューティングデバイス４００と結合して、コンピューティングデバイス４００又は任意の他のコンピューティングデバイス４１８で実装されることができる。上記システム、上記デバイス、及び上記プロセッサは例であり、他のシステム、他のデバイス及び他のプロセッサは、上記メモリストレージ及び上記処理ユニットを、本発明の実施形態に準拠して、備えることができる。さらに、コンピューティングデバイス４００は、システム１００のための動作環境を、上記のように、備えることができる。システム１００は、他の環境において動作でき、コンピューティングデバイス４００に限定されない。
【００２５】
図４を参照して、本発明の実施形態に準拠したシステムは、コンピューティングデバイス４００等のコンピューティングデバイスを含むことができる。基本構成において、コンピューティングデバイス４００は、少なくとも１つの処理ユニット４０２、及びシステムメモリ４０４を含むことができる。この構成及びコンピューティングデバイスのタイプに応じて、システムメモリ４０４は、揮発性（例えば、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ））、不揮発性（例えば、Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ））、フラッシュメモリ又は任意の組み合わせを備えることができるが、これらに限定されない。システムメモリ４０４は、オペレーティングシステム４０５、１以上のプログラミングモジュール４０６を含み、プログラムデータ４０７を含むことができる。オペレーティングシステム４０５は、例えば、コンピューティングデバイス４００の操作を制御するのに適切である可能性がある。一実施形態において、プログラミングモジュール４０６は、例えば、送受信器モジュール１０５、第一のツールモジュール１１５、第２のツールモジュール１２０、メニューリボン２０５、アダプタ２１０又はアダプタ作成モジュール４２０を含むことができる。さらに、本発明の実施形態は、グラフィックライブラリ、他のオペレーティングシステム又は任意の他のアプリケーションプログラムと併せて実施でき、任意の特定のアプリケーション又はシステムに限定されない。基本構成は、点線４０８内のこれらのコンポーネントにより、図４に示される。
【００２６】
コンピューティングデバイス４００は、さらなる特徴及び機能性を有すことができる。例えば、コンピューティングデバイス４００は、例えば、磁気ディスク、光ディスク又はテープ等のさらなるデータストレージデバイス（リムーバブル及び／又は非リムーバブル）も含むことができる。このようなさらなるストレージは、リムーバブルストレージ４０９、及び非リムーバブルストレージ４１０により図４に示される。コンピュータストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータ等の情報の格納のための、任意の方法又は技術において実装される、揮発性及び不揮発性、リムーバブル媒体及び非リムーバブル媒体を含むことができる。システムメモリ４０４、リムーバブルストレージ４０９、及び非リムーバブルストレージ４１０は、全てストレージ媒体の例である（すなわち、メモリストレージ）。コンピュータストレージ媒体は、ＲＡＭ、ＲＯＭ、ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｒｅａｄｏｎｌｙ  ｍｅｍｏｒｙ（ＥＥＰＲＯＭ）、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋｓ（ＤＶＤ）もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、又は、情報を格納し、コンピューティングデバイス４００によりアクセスされることができる任意の他の媒体を含むことができるが、これらに限定されない。任意のこのようなコンピュータストレージ媒体は、デバイス４００の一部である可能性がある。コンピューティングデバイス４００は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス等の入力デバイス４１２も有すことができる。例えば、ディスプレイ、スピーカ、プリンター等の出力デバイス４１４も含まれることができる。上記のデバイスは例であり、他のものも使用される可能性がある。
【００２７】
コンピューティングデバイス４００は、デバイス４００を、例えば、イントラネット又はインターネットの分散コンピューティング環境におけるネットワーク上等で、他のコンピューティングデバイス４１８と通信することを可能にできる通信接続４１６も含むことができる。通信接続４１６は、通信媒体の一例である。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は、搬送波もしくは他の転送メカニズム等の変調されたデータ信号における他のデータにより、一般に具体化され、任意の情報配信媒体を含む。用語「変調されたデータ信号(modulated data signal)」は、１以上の文字セットを有する、又は信号内の情報を符号化するような方式で変更される信号を表すことができる。例として、また限定でなく、通信媒体は、有線ネットワーク又は直接有線接続等の有線媒体、ならびに、例えば、音、高周波（ＲＦ）、赤外線、及び他の無線媒体等の無線媒体を含むことができる。本明細書で使用されるコンピュータ可読媒体という用語は、ストレージ媒体及び通信媒体の両方を含むことができる。
【００２８】
上記のように、多くのプログラムモジュール及びデータファイルを、オペレーティングシステム４０５を含むシステムメモリ４０４に格納できる。処理ユニット４０２上で実行しながら、プログラミングモジュール４０６（例えば、送受信器モジュール１０５、ユーザインターフェースモジュール１１０、第１のツールモジュール１１５、第２のツールモジュール１２０、メニューリボンモジュール２０５、アダプタ２１０、又はアダプタ作成モジュール４２０）は、例えば、上記のように、１以上の方法３００の段階を含んでいる処理を実施できる。上記の処理は例であり、処理ユニット４０２は他の処理を実施できる。本発明の実施形態により使用されることができる他のプログラムモジュールは、電子メール及びコンタクトアプリケーション(contacts applications)、ワード処理アプリケーション、表計算アプリケーション、データベースアプリケーション、スライドを使ったプレゼンテーションアプリケーション、描画又はコンピュータ支援のアプリケーションプログラム等を含むことができる。
【００２９】
一般に、本発明の実施形態に準拠して、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、及び特定のタスクを実施できる、又は特定の抽象データ型を実装できる、他のタイプの構造を含むことができる。さらに、本発明の実施形態は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの家電又はプログラム制御可能な家電、ミニコンピュータ、メインフレームコンピュータ等を含む、他のコンピュータシステム構成で実施されることができる。本発明の実施形態は、通信ネットワークを通してリンクされたリモートの処理デバイスによりタスクが処理される分散コンピューティング環境においても実施されることができる。分散コンピューティング環境において、プログラムモジュールは、ローカル及びリモートの両方のメモリストレージデバイスに置かれる可能性がある。
【００３０】
さらに、本発明の実施形態は、分離した電子素子、論理ゲートを含むパッケージ化されたもしくは統合された電子チップ、マイクロプロセッサを利用する回路、又は電子素子もしくはマイクロプロセッサを含む単一のチップ上、を含む電気回路において実施されることができる。本発明の実施形態は、例えば、ＡＮＤ、ＯＲ、及びＮＯＴ等の論理操作を実施することが可能で、機械技術、光技術、流体技術及び量子技術を含むが限定されない、他の技術を使用しても実施されることができる。さらに、本発明の実施形態は、汎用コンピュータ内で、又は任意の他の回路、もしくは任意の他のシステムにおいて実施されることができる。
【００３１】
本発明の実施形態は、例えば、コンピュータのプロセス（方法）、コンピューティングシステム、又は、コンピュータプログラム製品もしくはコンピュータ可読媒体等の製造品として実装されることができる。コンピュータプログラム製品は、コンピュータシステムにより読み取り可能であり、コンピュータのプロセスを実行するための命令のコンピュータプログラムを符号化するコンピュータストレージ媒体であることができる。コンピュータプログラム製品はまた、コンピューティングシステムにより読み取り可能であり、コンピュータのプロセスを実行するための命令のコンピュータプログラムを符号化する、搬送波上に伝播された信号であることができる。従って、本発明は、（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）ハードウェア及び／又はソフトウェアにおいて具体化させることができる。言い換えると、本発明の実施形態は、命令実行システム用に、又は命令実行システムと接続して、媒体に具体化される、コンピュータ使用可能プログラムコード、またはコンピュータ可読プログラムコードを有する、コンピュータ使用可能ストレージ媒体、またはコンピュータ可読ストレージ媒体上のコンピュータプログラム製品の形をとることができる。コンピュータ使用可能ストレージ媒体、またはコンピュータ可読ストレージ媒体は、命令実行システム、装置、もしくはデバイス用に、又は、これらと接続して、プログラムを含み、格納し、通信し、伝播し、又は転送できる任意の媒体であることができる。
【００３２】
コンピュータ使用可能ストレージ媒体、またはコンピュータ可読ストレージ媒体は、例えば、電気、磁気、光、電磁気、赤外線又は半導体のシステム、装置、デバイス、又は伝播媒体であることができるが、これらに限定されない。より具体的なコンピュータ可読媒体の例（限定的なリスト）として、コンピュータ可読媒体は、以下を含むことができる：１以上の線を有する電気接続、携帯型コンピュータディスケット、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）、Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）、Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−ｏｎｌｙ  Ｍｅｍｏｒｙ（ＥＰＲＯＭ、又はフラッシュメモリ）、光ファイバ、携帯型Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ−ｏｎｌｙ  Ｍｅｍｏｒｙ（ＣＤ−ＲＯＭ）。ここで留意すべきは、コンピュータ使用可能媒体、またはコンピュータ可読媒体は、プログラムを印刷する紙又は別の適切な媒体でさえ可能性であることである、なぜならば、プログラムは、例えば、紙又は他の媒体の光学式スキャニングを介して、電子的にキャプチャでき、その後、コンパイル、解釈、又は必要に応じて別の方法で適切な方式により処理され、その後、コンピュータメモリに格納できるためである。
【００３３】
本発明の実施形態は、例えば、本発明の実施形態による方法、システム及びコンピュータプログラム製品のブロック図及び／又は操作図を参照して上述される。ブロックに示される機能／動作は、任意のフローチャートにおいて示されるような順序以外で起こる可能性がある。例えば、連続して示される２つのブロックは、実際には、関連する機能／動作に応じて、実質的に同時に実行され、又はブロックは、時には逆の順序で実行される可能性もある。
【００３４】
本発明の一定の実施形態が説明されてきた一方で、他の実施形態が存在する可能性がある。さらに、本発明の実施形態は、メモリ、及び他のストレージ媒体に格納されたデータに関連付けられるように説明されてきたが、データは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、インターネットからの搬送波、もしくは、ＲＡＭ又はＲＯＭの他の形式のような補助ストレージデバイス等の他のタイプのコンピュータ可読媒体に格納され、又はこれらから読み取られることもできる。さらに、開示された方法の段階を、段階を並び替えること、及び／又は段階を挿入すること、又は段階を削除することを含む任意の方式で、本発明から逸脱することなく、修正することができる。
【００３５】
本願明細書に含まれる規定において、著作権を含む全ての権利は、出願人に権限が与えられ、出願人の所有権である。出願人は、本願明細書に含まれる規定において全ての権利を保持し、及び保有し、付与された特許権の再生品であり、他の目的のない再生品に関連する場合に限り、構成要素を再生する許可を与える。
【００３６】
本明細書は例を含むが、本発明の範囲は、添付の特許請求の範囲により示される。さらに、本明細書が構造的な特徴、及び／又は方法論的な動作に特有の言語で説明されてきたが、特許請求の範囲は、上記の特徴又は動作に限定されない。むしろ、上記の特有の特徴及び動作は、本発明の実施形態のための例として開示される。
【図１】
2012511775.tif 000003
【図２】
2012511775.tif 000004
【図３】
2012511775.tif 000005
【図４】
2012511775.tif 000006
【国際調査報告】
2012511775.tif 000007
2012511775.tif 000008