(57)【要約】【課題】  ウェブまたはオペレーティングシステムシェルなどを介して、アプリケーションによって提供される機能に直接アクセスするためのシステムおよび方法を提供すること。【解決手段】  アプリケーションの機能を固有のタスクに分ける。各タスクは、アプリケーション内への関連付けられたエントリポイントを有する。関連付けられたエントリポイントにより、コンピュータユーザは、アプリケーションを呼び出し、アプリケーション内をナビゲートして特定のタスクを見つけるのではなく、特定のタスクを直接呼び出すことができるようになる。各タスクは、そのタスクに関連付けられたアイコンをデスクトップ上のアクティビティセンターに表示するなどしてオペレーティングシステムに公開してもよい。本発明は、デスクトップ環境、ウェブベースの環境、ブラウザ環境、およびその他の環境で動作することができる。【選択図】  図５
2004227591.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションによって提供される機能に直接アクセスすることを可能にするためにコンピュータに実施される方法であって、
前記アプリケーションによって提供される機能の複数のユニットの１つを前記アプリケーションのタスクとして関連付けることと、
前記タスクについて前記アプリケーションへのエントリポイントを宣言することであって、前記エントリポイントは、前記エントリポイントと関連付けられた前記アプリケーションの一部を起動し、前記タスクと関連付けられた前記アプリケーション内の命令を見つけることにより、前記タスクをアクティブ化するように構成されることと
を備えることを特徴とする方法。
【請求項２】
前記エントリポイントを公開することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記エントリポイントを公開することは、前記タスクについてメニューにエントリを作成することを含み、前記メニューは、オペレーティングシステムシェルによって提供されることを特徴とする請求項２に記載の方法。
【請求項４】
前記エントリポイントを公開することは、コンピュータディスプレイ上のアクティビティセンター内に表示されるアイコンを作成することを含むことを特徴とする請求項２に記載の方法。
【請求項５】
前記エントリポイントを公開することは、アドレスフィールドに分かりやすい名前を記載することを含み、前記分かりやすい名前は、前記エントリポイントに関連付けられることを特徴とする請求項２に記載の方法。
【請求項６】
前記エントリポイントを公開することは、自然言語の検索エンジンに、入力されたテキストに基づいて前記エントリポイントを発見させることを含み、前記テキストは、実行する動作を記述することを特徴とする請求項２に記載の方法。
【請求項７】
前記機能の複数のユニットの１つを関連付けることは、前記タスクを宣言的に記述することを含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記タスクを宣言的に記述することは、ＸＭＬフォーマットに基づくことを特徴とする請求項７に記載の方法。
【請求項９】
前記アプリケーションをインストールする時に、前記タスクと関連付けられたタスク情報をタスクストアに登録することをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記タスクストアを調べて、アクティブ化されたエントリポイントと関連付けられた前記アプリケーションを判定することをさらに含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記エントリポイントはプログラム的にアクティブ化されることを特徴とする請求項１に記載の方法。
【請求項１２】
前記エントリポイントはオペレーティングシステムシェルを通じてアクティブ化されることを特徴とする請求項１に記載の方法。
【請求項１３】
前記機能の複数のユニットの１つを関連付けることは、複数のページを前記タスクとして定義することによって達成され、前記エントリポイントを宣言することは、前記複数のページの１つのＵＲＬを前記エントリポイントとして割り当てることを含むことを特徴とする請求項１に記載の方法。
【請求項１４】
アプリケーションの機能に直接アクセスするためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記命令は、
公開されたエントリポイントを選択することに応答して、タスクストアを調べて前記公開されたエントリポイントと関連付けられたアプリケーションを判定することであって、前記公開されたエントリポイントは、前記アプリケーションによって提供される複数のタスクの１つと関連付けられることと、
前記アプリケーションを起動することと、
前記公開されたエントリポイントと関連付けられたタスクオブジェクトをインスタンス化することであって、前記タスクオブジェクトは、処理がユーザの制御下で前記１つのタスクと関連付けられた命令を実行するためにそこから継続する前記アプリケーション内の位置を見つけることと
を含むことを特徴とするコンピュータ可読媒体。
【請求項１５】
前記公開されたエントリポイントは、コンピュータディスプレイ上のアクティビティセンターにアイコンを含むことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記公開されたエントリポイントはメニュー項目を含むことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１７】
前記公開されたエントリポイントは、アドレスフィールドに記載された分かりやすい名前を含み、前記分かりやすい名前は、前記エントリポイントと関連付けられていることを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１８】
前記公開されたエントリポイントは、入力されたテキストに基づく自然言語の検索エンジンによって生成される出力を含み、前記テキストは実行する動作を記述することを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１９】
前記公開されたエントリポイントは、前記１つのタスクについて定義された複数のページの１つのＵＲＬを含むことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項２０】
アプリケーションによって提供される複数のタスクを宣言的に記述するためのデータ構造を用いて符号化されたコンピュータ可読媒体であって、前記データ構造は、
前記複数のタスクを定義するための始まりと終わりとを識別する第１のエレメントと、
前記複数のタスクのうち１つのタスクを定義するための始まりと終わりとを識別する第２のエレメントと、
前記１つのタスクと関連付けられた場所を提供する第１の属性と、
前記１つのタスクと関連付けられた識別子を提供する第２の属性と、
前記１つのタスクと関連付けられたクラス名を提供する第３の属性と
を備えたことを特徴とするコンピュータ可読媒体。
【請求項２１】
前記場所は、ＵＲＩを含むことを特徴とする請求項２０に記載のコンピュータ可読媒体。
【請求項２２】
前記場所はリモートであることを特徴とする請求項２０に記載のコンピュータ可読媒体。
【請求項２３】
前記場所はローカルであることを特徴とする請求項２０に記載のコンピュータ可読媒体。
【請求項２４】
前記データ構造はＸＭＬベースであることを特徴とする請求項２０に記載のコンピュータ可読媒体。
【請求項２５】
前記１つのタスクと関連付けられたアイコンを提供する第４の属性をさらに備え、前記アイコンは、前記１つのタスクに関連する前記アプリケーション内の命令に公開されたエントリポイントを提供することを特徴とする請求項２０に記載のコンピュータ可読媒体。
【請求項２６】
アプリケーション中に複数のエントリポイントを提供するためのデータ構造を用いて符号化されたコンピュータ可読媒体であって、前記データ構造は、
前記アプリケーションによって提供されるタスクと関連付けられた処理を開始するための第１のメソッドであって、該第１のメソッドは前記アプリケーションと関連付けられた複数のエントリポイントの１つにナビゲートし、該１つのエントリポイントは前記タスクと関連付けられ、該タスクは前記アプリケーションによって提供される複数のタスクの１つである前記第１のメソッド
を備えたことを特徴とするコンピュータ可読媒体。
【請求項２７】
アプリケーション中に複数のエントリポイントを提供するシステムであって、
プロセッサと、
メモリであって、前記プロセッサによる実行のために前記メモリにロードされる複数の実行可能命令に割り当てられている前記メモリと
を備え、前記コンピュータ実行可能命令は、
公開されたエントリポイントを選択することに応答して、タスクストアを調べて前記公開されたエントリポイントと関連付けられたアプリケーションを判定することであって、前記公開されたエントリポイントは、前記アプリケーションによって提供された複数のタスクの１つと関連付けられていることと、
前記アプリケーションを起動することと、
前記公開されたエントリポイントと関連付けられたタスクオブジェクトをインスタンス化することであって、前記タスクオブジェクトは、ユーザの制御下で前記１つのタスクと関連付けられたコンピュータ実行可能命令を実行するために処理がそこから継続する前記アプリケーション内の位置を見つけることと
を含むメソッドを実行することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータのアプリケーションプログラムに関する。詳細には、本発明は、コンピュータアプリケーションによって提供される機能に直接アクセスするためのシステムおよび方法に関する。
【背景技術】
【０００２】
各種のソフトウェアアプリケーションが存在する。各アプリケーションは、１つまたは複数の関連する機能を提供するように設計されている。例えば、個人向けの金融管理アプリケーションは通例、小切手帳を決算する、年金口座を管理する、取引を記入する、株を購入するなどの機能を提供する。ユーザは、特定の機能を行いたい時、その特定の機能を提供するアプリケーションを呼び出す。通例、アプリケーションは、そのアプリケーションに関連付けられたディスプレイ上のアイコンをクリックするか、メニューからそのアプリケーションを選択することによって呼び出す。ユーザは次いで、そのアプリケーション内から（例えばメニューを通じて）その特定の機能を選択する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
この方法は、各アプリケーションが提供する機能に精通しているユーザには有効であるかもしれないが、特に利便であるわけではない。初心者のコンピュータユーザは、各アプリケーションが備える機能についてよく知らない場合があるので、初心者のコンピュータユーザにとってはさらに不便なものとなる。そのため、初心者のコンピュータユーザは、特定の機能を実行するために、まず特定の機能を提供するアプリケーションを判定しなければならない。この判定には、いくつかのアプリケーションを起動し、「あちこちクリック」してみて、より経験を積んだコンピュータユーザに尋ねるか、必要な特定機能に関するコンピュータ書籍やマニュアルを調べることが伴う可能性がある。特定機能を提供するアプリケーションを特定すると、初心者のコンピュータユーザはそのアプリケーションを起動することができるが、経験を積んだコンピュータユーザと同じように特定の機能を見つけ、選択するにはなお援助を必要とする場合がある。これらの解決法は、ユーザが任意のアプリケーションによって提供される任意の必要な機能にアクセスすることを可能にするが、理想的なものではない。
【課題を解決するための手段】
【０００４】
本発明は、アプリケーションによって提供される機能に直接アクセスするためのシステムおよび方法を対象とする。本発明は、開発者が、自分が開発したアプリケーション中にユーザがナビゲート（ｎａｖｉｇａｔｅ）することができるポイントを制御するためのメカニズムを提供する。アプリケーションは、１つまたは複数の高次の機能のユニット（すなわちタスク）を提供する。そのため、各アプリケーションには、１つまたは複数のタスクが関連付けられている。例えば、個人向けの金融管理アプリケーションは、小切手帳の決算、年金口座の管理、取引の記入、株の購入など、そのアプリケーションに関連付けられたいくつかのタスクを有することができる。
【０００５】
本発明によれば、各タスクには、アプリケーションへのエントリポイントが関連付けられる。このエントリポイントにより、コンピュータユーザは、アプリケーション内をナビゲートしてタスクを見つける必要なく特定のタスクを直接呼び出すことができる。各タスクは、オペレーティングシステムシェルからユーザに公開されるようにしてもよい。タスクがオペレーティングシステムシェルを通じて公開されると、ユーザがそのタスクに関連付けられた名前を容易に検索することができたり、アクセシビリティソフトウェア（ａｃｃｅｓｓｉｂｉｌｉｔｙ  ｓｏｆｔｗａｒｅ）は、タスクに関連付けられた名前を使用して、障害を持つユーザ（ｉｍｐａｉｒｅｄ  ｕｓｅｒ）のためにアプリケーションの機能（すなわちタスク）をより容易に特定することができたり、ユーザが各種のタスクに関連付けられた名前を閲覧することによって自分が購入したソフトウェアの機能をより容易に識別したりといったことができる。
【０００６】
本発明は、従来のデスクトップ環境、従来のウェブベースの環境、ナビゲーション中心のアプリケーションをホストするブラウザ環境、およびその他の環境で動作することができる。ブラウザ環境で動作する場合は、複数の関連するページを単一のタスクと関連付けることができる。そして、ページを保存する（以下「お気に入りに入れる」と称する）時には、お気に入りに入れたページ自体のＵＲＬ（ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ）ではなく、お気に入りに入れたページと関連付けられたタスクのエントリポイントとして指定されたページのＵＲＬが保存される。これにより、開発者は、自分が開発したナビゲーションベースのアプリケーションの中にユーザがナビゲートできるポイントを制御することができる。
【０００７】
このように、どのアプリケーションを起動し、どのようにそのアプリケーション内の機能を見つけるかをすでに知っている経験を積んだコンピュータユーザであっても、本発明が提供するより効率的で利便なメカニズムから恩恵を得ることができ、そのメカニズムにより、デスクトップから直接機能にアクセスすることができるようになる。
【発明を実施するための最良の形態】
【０００８】
本発明は、アプリケーションによって提供される機能に直接アクセスするためのシステムおよび方法を対象とする。この機能は固有のタスクに分けられる。そのため、各アプリケーションは１つまたは複数の関連付けられたタスクを有する。各タスクは、ユーザが具体的なアクティビティを達成するのを助けるユーザ中心のアクティビティを表す。例えば、個人向け金融管理アプリケーションは、小切手帳決算のタスク、４０１Ｋ管理のタスク、取引記入のタスク、株購入のタスクなどいくつかのタスクを有することが考えられる。本発明によれば、アプリケーションへのエントリポイントはタスクごとに定義される。エントリポイントが呼び出されると、そのアプリケーション内の実行の流れが、そのタスクに関連付けられたコードの部分に向けられる。
【０００９】
このように、本発明は、コンピュータユーザがアプリケーション内でナビゲートして指定のタスクを見つけるのではなく、指定されたタスクを直接呼び出すことができるようにするメカニズムを提供する。各タスクは、タスクに関連付けられたアイコンをアクティビティセンター（ａｃｔｉｖｉｔｙ  ｃｅｎｔｅｒ）に表示させることなどにより、オペレーティングシステムシェルから直接ユーザに公開することができる。本発明は、デスクトップ環境、ウェブベース環境、ナビゲーション中心のアプリケーションをホストするブラウザ環境、および他の環境で動作することができる。以下の論考では、ブラウザ環境を使用して本発明を説明する。この実施形態では、用語「アプリケーション」は、ブラウザ環境でホストされるナビゲーション中心のアプリケーションを指す。当業者は、以下の説明を読み終えると本発明を他の環境で実施することができるであろう。
【００１０】
図１に、本発明の例示的な実施形態で使用することができる例示的なコンピューティングデバイスを示す。ごく基本的な構成においては、コンピューティングデバイス１００は通例、少なくとも１つの処理装置１０２およびシステムメモリ１０４を含む。コンピューティングデバイスの厳密な構成およびタイプに応じて、システムメモリ１０４は、揮発性（ＲＡＭなど）、不揮発性（ＲＯＭ、フラッシュメモリなど）、あるいはそれら２種の何らかの組み合わせとすることができる。システムメモリ１０４は通例、オペレーティングシステム１０５、１つまたは複数のプログラムモジュール１０６を含み、またプログラムデータ１０７を含むこともある。プログラムモジュール１０６の例には、ブラウザアプリケーション、金融管理アプリケーション、ワードプロセッサなどが含まれる。この基本的な構成を図１では点線１０８内の構成要素によって表す。
【００１１】
コンピューティングデバイス１００は、追加的な特徴または機能を備えることができる。例えば、コンピューティングデバイス１００は、例えば磁気ディスク、光ディスク、またはテープなどの付加的なデータ記憶装置（取り外し可能および／または取り外し不可）も含むことができる。そのような付加的な記憶装置を図１では取り外し可能な記憶装置１０９および取り外し不可の記憶装置１１０によって示す。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、あるいはその他のデータなどの情報を記憶するための任意の方法または技術に実装された、揮発性および不揮発性、取り外し可能および取り外し不可の媒体が含まれる。システムメモリ１０４、取り外し可能な記憶媒体１０９、および取り外し不可の記憶媒体１１０はすべてコンピュータ記憶媒体の例である。コンピュータ記憶媒体には、これらに限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクもしくは他の磁気記憶装置、あるいは所望の情報を記憶するために使用することができ、コンピューティングデバイス１００からのアクセスすることができる任意の他の媒体が含まれる。そのようなコンピュータ記憶媒体をデバイス１００の一部とすることができる。コンピューティングデバイス１００は、キーボード、マウス、ペン、音声入力装置、タッチ入力デバイスなどの入力装置１１２も有することができる。ディスプレイ、スピーカ、プリンタなどの出力装置１１４も含めることができる。これらの装置は当技術分野ではよく知られており、ここで詳細に説明する必要はない。
【００１２】
コンピューティングデバイス１００は、デバイス１００が例えばネットワークを通じて他のコンピューティングデバイス１１８と通信することを可能にする通信接続を含むこともできる。通信接続１１６は、通信媒体の一例である。通信媒体は通例、搬送波または他のトランスポートメカニズムなどの変調データ信号中のコンピュータ可読命令、データ構造、プログラムモジュール、あるいはその他のデータによって具現することができ、任意の情報伝達媒体を含む。用語「変調データ信号」とは、信号中に情報を符号化する形でその特性の１つまたは複数を設定または変化させた信号を意味する。これらに限定されないが、通信媒体の例には、有線ネットワークや直接配線接続などの有線媒体と、音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体が含まれる。本明細書で使用する用語「コンピュータ可読媒体」は、記憶媒体と通信媒体の両方を含む。
【００１３】
図２は、ナビゲーションベースのアプリケーション（図示せず）のために定義されたタスクの図式表現である。このタスクは、いくつかのページを共に関連付けている。いくつかのページが相互に連携して機能して、ナビゲーションベースのアプリケーションによって提供される機能のユニットの１つを実行する。この実施形態では、ナビゲーションベースのアプリケーションはブラウザ中でホストされる。各タスクは、いくつかのページ（例えばページ２０２〜２０８）と関連付けることができる。図２ではこのタスクを点線２１０内のページによって表す。以下、これらのページをまとめてタスク２１０と称する。図５〜８との関連において下記で詳細に説明するが、簡潔に述べると各タスク２１０には、エントリポイントが割り当てられる。一実施形態では、このエントリポイントは、エントリページとすることができる。この実施形態では、エントリページを指定する属性を含むタスク２１０の別の実施形態を使用することができる。以下の論考を通じて、この実施形態を参照するためにｎａｖｉｇａｔｉｏｎＴａｓｋを使用することがある。ｎａｖｉｇａｔｉｏｎＴａｓｋを図８に示し、図８との関連で説明する。
【００１４】
図２では、エントリポイントの指定２１２を使用して、エントリポイントとしてタスク２１０を形成するためにグループとしてまとめられたページの１つを指定する。上述の例では、ページ２０２（すなわち「ページ１」）が、タスク２１０のエントリポイントとしてエントリポイントの指定２１２で指定されている。ページ２０２〜２０８は、ＨＴＭＬページ、ＸＭＬドキュメント、ＵＩコントロールの集合などを表すことができる。
【００１５】
図３は、ブラウザが、図２に示すタスクと関連付けられたページの１つと、そのアプリケーションが提供する機能のユニットと関連付けられた、いくつかの公開されたタスクのエントリポイントとを表示している例示的な環境を示すディスプレイである。上述のように、この例示的な環境は、ナビゲーション中心のアプリケーションをホストするブラウザ環境である。以下の論考では、この例示的なアプリケーションは金融管理アプリケーションであり、本明細書にわって金融管理アプリケーションに関連する用語を使用して本発明を説明する。しかし、本発明はどの種のアプリケーションにも適用可能であることは理解されよう。図３を参照すると、ディスプレイ３００は、ウィンドウ３０２が表示されたデスクトップ３０１を含む。ウィンドウ３０２は、呼び出されたアプリケーション（例えば金融管理アプリケーション）のウィンドウである。通例、アプリケーションは、そのアプリケーションによって提供されるオプションを探索（ｔｒａｖｅｒｓｅ）するためのメニューバー３０４を提供する。従来は、このオプションが、アプリケーションによって提供される機能のユニットにアクセスするためのメカニズムを提供していた。例えば、メニューバー３０４は、いくつかのメニュー項目（例えば「口座」のメニュー項目３０８）を含む。それらのメニュー項目のそれぞれは、サブメニュー項目（例えば「取引記入」のサブメニュー項目３２２）を含むサブメニュー（例えばサブメニュー３１９）を提供することができる。
【００１６】
本発明では、「取引記入」のサブメニュー項目３２２に関連付けられた機能は、タスクを使用して直接アクセスすることができる。簡潔に説明すると、そのタスクは、「取引記入」のサブメニュー項目３２２と関連付けられた機能に対する直接のアクセス性（ａｃｃｅｓｓｉｂｉｌｉｔｙ）を提供するタスクのエントリポイント（例えば「取引記入」タスクのエントリポイント３１４）と関連付けられている。図の実施形態では、公開されたタスクのエントリポイント（例えば、「収支確認」の公開されたエントリポイント３１２、取引記入タスクのエントリポイント３１４、年金口座管理の公開されたエントリポイント３１６、および株購入の公開されたエントリポイント３１８）は、ディスプレイ３００のデスクトップ３０１上のアクティビティセンター３３０内にアイコンとして表示される。アクティビティセンター３３０は、提供されるアクティビティのタイプに基づいて編成される。例えば、公開されたエントリポイント３１２〜３１８は、「金融」のアクティビティセンターに置くことができる。公開されたエントリポイント３１２〜３１８がアクティビティセンター内に編成されるので、ユーザはより容易に必要とするタスクを見つけることができる。当業者には理解されるように、公開されたエントリポイントは、本発明の範囲から逸脱することなく、例えばスタートメニュー中のメニュー項目など、各種の形態をとることができる。
【００１７】
デスクトップ３０１は、別のエントリポイントであるメインアプリケーションのエントリポイント３１０も表示する。メインアプリケーションのエントリポイント３１０は、アプリケーションへの従来のエントリポイントであり、通例はこれらのタスクの１つとしては含まれないであろう。図３で、メインアプリケーションのエントリポイント３１０は、デスクトップ３０１上にショートカットとして表示される。従来は、各アプリケーションは、そのアプリケーションを呼び出すために選択される１つのエントリポイント（例えばメインアプリケーションのエントリポイント３１０）を有していた。メインアプリケーションのエントリポイント３１０が選択されると、関連付けられたアプリケーションはウィンドウ３０２においてインスタンス化され、そのアプリケーションは、アプリケーションウィンドウ３０２内をナビゲートするためにメニューバー３０４を提供していた。その後、アプリケーションによって提供されるメニューを通してナビゲートすることにより、アプリケーションによって提供される機能を選択していた。このように、従来は、初心者のコンピュータユーザは、必要とするタスクと関連付けられていると思われるメニュー項目を見つけるために、いくつかのアプリケーションを呼び出し、各アプリケーション内でいくつかのメニューをプルダウンする必要がある場合があった。
【００１８】
これに対して、本発明は、ユーザが利用可能なすべてのアプリケーションが備える機能を容易に特定するためのメカニズムを提供する。このメカニズムは、アプリケーションによって提供される機能のユニットそれぞれに対してタスクのエントリポイントを関連付けるための手段を提供する。このメカニズムにより、ユーザは、メニューを使用してアプリケーション内をナビゲートしなくとも所望の機能に直接的にアクセスすることができるようになる。図示したように、一実施形態においては、公開されたタスクのエントリポイントをカテゴリによってアクティビティセンター３３０に編成する。下記で詳細に述べるように、タスクのエントリポイントを呼び出すと、選択された機能を実装するアプリケーション内の特定コードに実行が導かれる。
【００１９】
別の実施形態では、自然言語の検索エンジンを介して「シェル」を通じてタスクを公開することができる。この実施形態では、ユーザは、実行したい機能を記述するテキスト列をタイプすることができる。このテキスト列は、自然言語検索エンジンと関連付けられた検索バーに入力される。テキスト列に基づき、自然言語検索エンジンは、検索を行ってそのテキスト列と関連付けられた利用可能なタスクを特定する。この検索では、タスクストア中に登録されたすべてのタスクを検索することができる。次いで検索の結果は、アイコン、タスク名、および関連付けられたツールチップ（ｔｏｏｌ  ｔｉｐ）を有するショートカットとして表示することができる。表示されたショートカットは、ユーザによってリクエストされる機能を行うことのできるマシン上のタスクを表す。そしてユーザは、表示されたショートカットの１つを利便に選択してリクエストした機能に直接アクセスすることができる。
【００２０】
本発明のタスクは、手紙を書く、請求書の支払をする、写真を配置する、電子メールを作成するなどの任意のタイプの機能を行うことができる。本発明のメカニズムを使用することにより、コンピュータユーザはより容易に特定のタスクを見つけることができたり、アクセシビリティソフトウェアに、各アプリケーションによって提供される機能（すなわちタスク）をより容易に特定する能力を与えたりといったことなどができるようになる。
【００２１】
図４は、ブラウザが、図２に示すタスクと関連付けられたページの１つと、本発明によりページをお気に入りに入れるためのメカニズムとを表示する例示的な環境を示す別のディスプレイである。ディスプレイ４００は、ブラウザウィンドウ３０２が図２に示すタスク２１０に関連付けられたページの１つ（例えばページ２０６）を表示しているデスクトップ３０１を示す。図のように、ブラウザウィンドウ３０２はアドレスフィールド４０６を含む。アドレスフィールド４０６には、ＵＲＬが入っている。典型的なウェブページでは、アドレスフィールド４０６の内容には、表示されているウェブページのＵＲＬが入っている。本発明の一実施形態においては、アドレスフィールド４０６の内容には、表示中のページ２０６が含まれるタスクのＵＲＬを入れることができる。この実施形態では、アドレスフィールド４０６には、タスク２１０に割り当てられたエントリポイントのページのＵＲＬが入っている。図４に示すように、このエントリポイントのページのＵＲＬは、「http://MoneyManager/EnterTransactions」である。図３に示す別の実施形態では、アドレスフィールド４０６には、タスクの分かりやすい名前（例えば「取引記入」）を入れることができる。ユーザがアドレスフィールド４０６の内容をコピーすると、その内容はハイパーリンクとしてコピーされる。このように、その内容をペーストすると分かりやすい名前が表示され、その内容をクリックすると、本発明は、その分かりやすい名前と関連付けられたハイパーリンクにナビゲートする。ブラウザウィンドウ３０２は、それぞれページ２０２〜２０８（図２）にリンクするリンク４１０〜４１６のような各種のページへのリンクを含むこともできる。
【００２２】
ブラウザウィンドウ３０２は、「お気に入り」のメニュー項目４２２など各種のメニュー項目を列挙するメニューバー３０４を含むこともできる。「お気に入り」のメニュー項目４２２は、「お気に入りに追加」のサブメニュー項目４２４など１つまたは複数のサブメニュー項目が入っているサブメニュー４２３を含むことができる。ここで、以下の論考では、表示中のページ（すなわちページ３）が事前に本発明によりタスクと関連付けられている場合、そしてユーザが表示中のページ２０６をブラウザ中で保存することを選択した時の結果について説明する。別の実施形態では、アプリケーションがタスクをお気に入りに入れるための専用のサブメニュー項目（図示せず）を提供することができる。
【００２３】
本発明を説明する前に、ブラウザがウェブページをお気に入りに入れる従来の態様についてまず下記に簡単に説明する。従来は、ユーザが「お気に入りに追加」のサブメニュー項目４２４を選択すると、アドレスフィールド４０６にリストされたＵＲＬが保存される（すなわち「お気に入りに入れられる」）。このお気に入りに入れられたウェブページは、後にお気に入りのリストから選択することができる。しかし、表示されたウェブページの実際のＵＲＬが保存されているため、場合によってはブラウザは後にそのウェブページを表示することができないであろう。これは、例えば、ウェブページがそのウェブページを表示する前にユーザにログインを要求する場合、あるいはそのページが何らかの以前のユーザアクションに応答してサーバによって生成される場合に起こる可能性がある。こうした状況では、保存されたＵＲＬは有用でなく、ユーザはどのようにして所望のウェブページに戻ることができるかを見つけ出さなければならない。
【００２４】
図２〜４に示し、上述したように、ブラウザ環境において、本発明は、ナビゲーション中心のアプリケーションによって提供される各タスクにエントリポイントを関連付けるためのメカニズムを提供する。この実施形態では、エントリポイントは、ＵＲＬを有するタスクである。そのため、現在表示されているページを「お気に入りに入れる」時には、そのお気に入りに入れたページのＵＲＬではなく、そのお気に入りに入れたページと関連付けられたタスクのＵＲＬが保存される。
【００２５】
このように、ユーザは、通常通りアプリケーション内をナビゲートすることができるが、特定のページがお気に入りに入れられる時には、その特定ページと関連付けられたタスクのＵＲＬが保存される。このタスクおよびそのデフォルトのエントリページは、アプリケーションの作成時に開発者によって指定される。このメカニズムにより、開発者は、自分が設計したアプリケーションまたはウェブサイト中にユーザがナビゲートできるポイントを制御することができ、また、ユーザが、所定の状況ではもはや有効でない、以前にお気に入りに入れたページへアクセスを試みる時にサーバエラーを受けることがないようにすることができる。このように、アプリケーションの実行を任意のコードに向けるのに加えて、本発明のメカニズムは、上述のお気に入りへ追加する行動（ｂｅｈａｖｉｏｒ）を可能にする。このお気に入りへの追加の行動は、ブラウザ内でのユーザ体験を大幅に向上する。
【００２６】
デフォルトでは、「お気に入り」から、またはその他の手段によって、あるタスクにナビゲートすると、そのタスクと関連付けられたエントリページが表示される。このエントリページは、タスクの宣言型記述において開発者によって指定される（図６）。タスクをお気に入りに入れる時、アプリケーション開発者は、オプションとしてそのタスクがお気に入りに入れられる時点でユーザが閲覧していたタスク内の現在のページを含むタスクの現在の状態が入っているメタデータをＵＲＬとともに「お気に入り」に追加することを選ぶことができる。これにより、開発者は、ユーザがタスクをお気に入りに入れた時に訪問していた正確なページにユーザをいつ戻すのが適切であるかを判断できるようになる。
【００２７】
図５は、本発明と関連した処理を図示する論理的流れ図である。各種の処理には、定義プロセス５００、コンパイルプロセス５１０、登録プロセス５２０、および呼び出しプロセス５３０が含まれる。図５内に示した処理は、タスクとそれに関連付けられたアプリケーションへのエントリポイントとを容易に記述し、オペレーティングシステムシェルにおいてそれらのエントリポイントを表面に出す（ｓｕｒｆａｃｅ）ためのメカニズムを提供する。
【００２８】
定義プロセス５００では、ブロック５０２で、開発者はアプリケーションによって提供される１つまたは複数のタスクを記述する。一実施形態では、タスクは、コードを通じてプログラム的に記述することができる。別の実施形態では、タスクは、定義ファイル内で宣言的に記述することができる。この定義ファイルは、タスク情報のみを含んでも、アプリケーションに関連する他の情報を含んでもよい。図６に示し、下記で詳細に説明する、タスクを宣言的に記述するための１つのフォーマットでは、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋ−ｕｐ  Ｌａｎｇｕａｇｅ）ベースのフォーマットを使用する。タスクが記述されると、コンパイルプロセス５１０で記述がコンパイルされる。
【００２９】
コンパイルプロセス５１０では、コンパイラがタスクの記述を読み取り、タスクエントリの記述をマニフェスト（例えばタスクマニフェスト）にコンパイルする（ブロック５１２）。また、コンパイルプロセスでは、記述を実行ファイルにコンパイルする（ブロック５１４）。実行ファイルとは、ＤＬＬファイルのように、処理のためにプロセッサにロードされるファイルを言う。このように、実行ファイルとは、関連付けられたタスクのエントリポイントが呼び出されるとインスタンス化されるようになるタスクオブジェクトを表すコードを指す。マニフェストは、アプリケーションによって提供されるタスクを適切な形式で記述し、必要な場合には利便にダウンロードすることができる。例示的なマニフェストを図７に示し、後で詳細に説明する。コンパイルプロセス５１０が実行されると、登録プロセス５２０で、タスクマニフェスト、実行ファイル、マークアップ（ブロック５１６）を登録することができる。
【００３０】
登録プロセス５２０では、タスクマニフェストが読み出され、タスクマニフェストから得られる情報がタスクストアに登録される（ブロック５２２）。このように、タスクストアは、タスク名、アイコン、ツールチップテキスト、ファイルの関連付け、および「シェル」中のどこで（例えば、タスクペイン、「スタート」メニュー、アクティビティセンターなど）タスクを公開するかを示すタスクカテゴリなど、タスクマニフェストから得られたタスク情報を収容する。一実施形態では、タスクストアは、上述のタスク情報を格納する１つまたは複数のテーブルを含む。
【００３１】
「シェル」は、タスクストアの情報を使用して、公開されたエントリポイントとして指定されるタスクのＵＩを表示する。エントリポイントは、タスクアイコンが伴うタスク名の形でユーザに公開することができる。エントリポイントが公開されると（ブロック５２４）タスクはいつでも呼び出すことができ、これは呼び出しプロセス５３０で行われる。
【００３２】
呼び出しプロセス５３０では、タスクと関連付けられた公開されたエントリポイントが呼び出される（ブロック５３２）。タスクは、ユーザによってオペレーティングシステムシェル中のエントリポイントを通じて呼び出されても、プログラム的に呼び出されてもよい。次に示すのは、あるタスクをプログラム的に起動するための例示的なコードである。
MoneyManager.EnterTransactions.Start();.  
タスクがシェルを通じて呼び出されるときは、タスクと関連付けられた公開されたエントリポイントのアイコンをダブルクリックする。別の実施形態では、お気に入りのメニューからお気に入りに入れたページを選択するか、またはあるＵＲＬにナビゲートすることによってタスクを呼び出すことができる。これらおよびその他の方法を使用してタスクのエントリポイントを呼び出すことができる。エントリポイントが呼び出されると、タスクストアを調べて（ブロック５３４）、呼び出されたタスクと関連付けられたアプリケーションを判定し、そのタスク自体のために呼び出されるべきメソッドを判定する。
【００３３】
ある状況では、アプリケーションがあらかじめ登録されていない場合がある。アプリケーションキャッシュを検索して、アプリケーションが以前に登録されていたか否かを判定することができる。タスクのＵＲＬを電子メールで送信し、その電子メール内から呼び出す場合、アプリケーションは、呼び出した時に登録済みとして表示されないであろう。そうした状況では、呼び出しを進める前に登録プロセス５２０が行われる。
【００３４】
呼び出されたタスクと関連付けられたアプリケーションが登録されると、タスクを呼び出すために特定されたメソッドが実行される。呼び出しプロセスはブロック５３６に進み、タスクと関連付けられたアプリケーションが呼び出される。一実施形態では、公開されたエントリポイントがそのタスクの宣言型記述で宣言されたタスクＩｄが付加された、そのアプリケーションのＵＲＬであるＵＲＬを参照するように、タスクがｈｔｔｐプロトコルを使用してアドレス指定される。このアクティブ化には、アプリケーションがすでに実行中でなければアプリケーションを起動する必要がある場合がある。アプリケーションが起動されると、アクティブ化されたエントリポイントと関連付けられたタスククラスがインスタンス化される（ブロック５３８）。タスククラスがインスタンス化されると、呼び出されたタスククラスに特有の処理が行われる。ブロック５３６で、アプリケーションが実行中である場合、プロセスは現在実行中のアプリケーションのインスタンスにナビゲートし、次いでタスククラスをインスタンス化する（ブロック５３８）。
【００３５】
アプリケーションは、インスタンス化時にタスクオブジェクトにパラメータを渡すことができる。例えば、一実施形態では、タスクＵＲＬ中のクエリストリングとしてパラメータを渡すことができる。別の実施形態では、タスクＩｄおよびパラメータを取るＳｔａｒｔＴａｓｋ  ＡＰＩをコールすることによりタスクを開始することができる。パラメータには、タスクオブジェクトのコンストラクタからアクセスすることができる。別の実施形態では、ＤａｔａＯｂｊｅｃｔがあって、アプリケーションに渡すことができる。ＤａｔａＯｂｊｅｃｔは、パラメータなどのデータを転送するためのインタフェースをサポートする。さらに別の実施形態では、「代理（ｄｅｌｅｇａｔｅ）」をＳｔａｒｔＴａｓｋパラメータとして受け付けることができる。そしてこの代理をコールして、タスクインスタンスを初期化するのに必要なパラメータを得ることができる。
【００３６】
図６に、本発明によりタスクを定義するためのＸＭＬベースのフォーマットの例示的なスキーマの一部を示す。スキーマ６００は、ＴａｓｋＬｉｓｔエレメント６０２と、１つまたは複数のＴａｓｋＩｎｆｏエレメント（例えばＴａｓｋＩｎｆｏエレメント６０４、６０６、および６０８）を含む。ＴａｓｋＬｉｓｔエレメント６０２は、アプリケーションと関連付けられたタスクのリストの記述の始まりと終わりを示す。ＴａｓｋＩｎｆｏエレメント６０４〜６０８のそれぞれは、アプリケーションによって提供される特定タスクの１つの記述の始まりと終わりを示す。各ＴａｓｋＩｎｆｏエレメント６０４〜６０８は、識別子（「Ｉｄ」）、ユニフォームリソースインディケータ（ＵＲＩ）、分かりやすい名（「ＦｒｉｅｎｄｌｙＮａｍｅ」）、ツールチップ（「ＴｏｏｌＴｉｐ」）、アイコン（「Ｉｃｏｎ」）、デフォルトのエントリページ（「ＳｔａｒｔＰａｇｅ」）、アセンブリ名（「ＡｓｓｅｍｂｌｙＮａｍｅ」）、およびクラス名（「ＣｌａｓｓＮａｍｅ」）などいくつかの属性を含むことができる。識別子は、特定タスクの名前を関連付ける。ユニフォームリソースインディケータは、特定タスクの場所を関連付ける。この場所は、ローカルでもリモートでもよい。分かりやすい名前は、特定のタスクを容易に識別できる名前を関連付ける。ツールチップは、コンピュータユーザがアイコンの上にマウスカーソルを載せるとユーザに表示される有用なヒントを関連付ける。アイコンは、特定タスクへの視覚的なエントリポイントを関連付ける。デフォルトのエントリページは、起動した時のそのタスクのデフォルトのエントリページとして特定のページを関連付ける。アセンブリ名は、実行ファイルの名前を特定のタスクに関連付ける。クラス名は、特定タスクのクラスに名前を関連付ける。タスクリストを定義するための図示したスキーマは、アプリケーション全体を完全に定義するために、タスクを定義するための別のファイル内でセクションを示すなどにより、この別のファイルに含めるか、またはこの別のファイルとともに組み込むことができる。
【００３７】
図７は、図５で使用するのに適したタスクマニフェストの一実施形態である。このように、タスクマニフェストは、タスクエレメント（例えばタスクエレメント７０４、７０６、７０８）を含むことができる。各タスクエレメントは、ｅｎｔｒｙＰｏｉｎｔリストエレメント７１０内の対応するｅｎｔｒｙＰｏｉｎｔエレメント（例えばｅｎｔｒｙＰｏｉｎｔエレメント７１２）と関連付けられる。例えば、タスクエレメント７０４は、ｅｎｔｒｙＰｏｉｎｔエレメント７１２に対応する。各タスクエレメント７０４は、タスクの記述（図６）から得られる情報を含む。例えば、タスクエレメント７０４、７０６、７０８は、タスクの名前、タスクのＤｉｓｐｌａｙＮａｍｅ、およびタスクと関連付けられたアイコンを含むことができる。さらに、タスクエレメント７０４、７０６、７０８は、ｅｎｔｒｙＰｏｉｎｔの属性（例えばｅｎｔｒｙＰｏｉｎｔ属性７２０）を含むことができる。ｅｎｔｒｙＰｏｉｎｔ属性７２０は、対応するｅｎｔｒｙＰｏｉｎｔエレメントとタスクエレメントを利便に関連付けるメカニズムを提供する。一般に、ｅｔｎｒｙＰｏｉｎｔエレメント７１２は、タスクの呼び出しに関する属性／値のペアを含む。このように、ｅｎｔｒｙＰｏｉｎｔエレメント７１２は、ＵＲＩ属性、アセンブリ属性、およびクラス属性を含む。ＵＲＩ属性は、特定タスクの場所を特定する。アセンブリ属性は、タスクが選択された時に呼び出す実行ファイルを特定する。クラス属性は、ｅｎｔｒｙＰｏｉｎｔが呼び出された時に呼び出すクラスを特定する。
【００３８】
図８は、図５で使用するのに適したＴａｓｋクラスの一実施形態である。Ｔａｓｋクラス８００は、アプリケーションによって提供される機能の特定のユニットに対するタスクを定義する際に開発者がオーバーライドする抽象クラスである。Ｔａｓｋクラス８００は、そのタスクオブジェクトがインスタンス化された時に呼び出されるＳｔａｒｔメソッド８０２を含む。Ｓｔａｒｔメソッド８０２は、タスクに関連付けられた特定の処理を実行する。開発者は、そのタスクが最初に起動された時に生じる任意の機能を付加する（例えば、そのタスクが最後に使用された時に保持された状態を回復するなど）。タスククラス８００は、Ｆｉｎｉｓｈメソッド８０４を含むこともできる。Ｆｉｎｉｓｈメソッド８０４は、タスク後に「クリーンアップ」するための特定のオペレーションを実行する。開発者はＦｉｎｉｓｈメソッド８０４を使用して、タスクの現在の状態を持続し、その結果、後でＳｔａｒｔメソッド８０２がその保持された状態から再開することができる。本発明では、データベースに保存する、リソースを開放するなどの「クリーンアップ」オペレーションを可能にするｅｎｄＴａｓｋ通知を送信することによりこれを達成することもできる。タスククラス８００は、ｔａｓｋＩｄプロパティ８０６、ＵＲＩプロパティ、アイコンプロパティ８０８、分かりやすい名前のプロパティ８１０、ツールチッププロパティ８１２などのプロパティを含むこともできる。開発者は、オーバーライドされたＴａｓｋクラスに他のメソッドを追加して、タスクに特有の任意の機能を実装することができる。当業者には理解されるように、Ｔａｓｋクラス８００によって提供されるメソッドおよびプロパティにより上述した本発明のメカニズムが動作できるようになる。タスクオブジェクトは、タスクが開始される時に作成してもよい。さらに、タスクは、新しいタスクが始まると終了する。
【００３９】
さらなる改良として、関連付けられたタスクが呼び出された時にユーザインタフェース（ＵＩ）に容易にナビゲートするための機能を提供する別のクラス（例えばＮａｖｉｇａｔｉｏｎＴａｓｋクラス）を提供してもよい。ＮａｖｉｇａｔｉｏｎＴａｓｋクラスは、そのタスクのデフォルトのエントリページを指定するＳｔａｒｔＰａｇｅ８１６と呼ばれるプロパティを有することができる。ＮａｖｉｇａｔｉｏｎＴａｓｋでは、基本となるＳｔａｒｔメソッドがデフォルトのエントリページ（「ＳｔａｒｔＰａｇｅ」）にナビゲートする。また、ＮａｖｉｇａｔｉｏｎＴａｓｋクラスは、本発明によるタスクのナビゲーションに関連する他の一般的なメソッドを提供してもよい。
【００４０】
別の実施形態では、タスククラスは、ＵＩページあるいはＰａｇｅＦｕｎｃｔｉｏｎへの参照を含んでもよい。第１の場合、開発者は、タスクに属するページを指定することができる。第２の場合、タスクは、ＰａｇｅＦｌｏｗへのエントリポイントとすることができ、ＰａｇｅＦｌｏｗのルートは、そのタスクによって参照されるＰａｇｅＦｕｎｃｔｉｏｎである。そのルートＰａｇｅＦｕｎｃｔｉｏｎの子のＰａｇｅＦｕｎｃｔｉｏｎのそれぞれは、同じタスクに関連付けることができる。このようなタスクにはＤａｔａＥｎｔｉｔｙを関連付けることができ、このタスクに関連付けられた各ページまたはＰａｇｅＦｕｎｃｔｉｏｎは、各自のユーザインタフェースエレメントをこのＤａｔａＥｎｔｉｔｙにデータバインドすることができる。これにより、タスクオブジェクトのシャットダウンが要求されている時に、タスクオブジェクトが状態を保持することができるようになる。
【００４１】
したがって、上述のように、本発明は、アプリケーション中への複数のエントリポイントを定義するためのメカニズムを提供する。複数のエントリポイントにより、ユーザは、アプリケーションによって提供される機能に直接的にアクセスすることができる。これらの複数のエントリポイントがオペレーティングシステムを介して公開されると、ユーザは、インストールされたアプリケーションが備える機能をより明確に特定することができる。さらに、システムに常駐するヘルプシステムおよびアクセシビリティツールは、インストールされたアプリケーションが備える機能をより容易に特定することができる。本発明は、開発者に、自分のウェブサイトのナビゲーションに対してさらなる制御を可能にする。そのため、コンピュータユーザは、ブラウザ環境でよりよい体験を得、意味のないリンクに遭遇することが減ることになるであろう。
【００４２】
上記の実施形態はブラウザ環境のアプリケーションに焦点を当てたが、当業者は、本発明の教示は、従来のデスクトップ環境およびウェブ環境におけるアプリケーションにも実施できることを認めるであろう。
【００４３】
上記の明細書、例、およびデータは、本発明の構成の製作および使用について網羅している。本発明の精神および範囲から逸脱することなく、本発明の多くの実施形態をなすことができるので、本発明は添付の特許請求の範囲に依拠する。
【図面の簡単な説明】
【００４４】
【図１】本発明の例示的な実施形態で使用することができる例示的なコンピューティングデバイスの図である。
【図２】ブラウザ中でホストされるアプリケーションが提供する機能のユニットの１つについて複数のページを関連付けるタスクの図式表現である。
【図３】ブラウザが、図２に示すタスクに関連付けられたページの１つと、アプリケーションが提供する機能のユニットに関連付けられた、いくつかの公開されたタスクのエントリポイントとを表示する例示的環境を示すディスプレイの図である。
【図４】ブラウザが、図２に示すタスクに関連付けられたページの１つと、アプリケーションが提供する機能のユニットに関連付けられた、いくつかの公開されたタスクのエントリポイントとを表示する例示的環境を示すディスプレイの図である。
【図５】本発明の一実施形態に関連付けられたプロセスを説明する論理的流れ図である。
【図６】図５で使用するのに適したアプリケーション中のタスクを宣言的に記述するフォーマットの一実施形態の図である。
【図７】図５で使用するのに適したタスクマニフェストの一実施形態の図である。
【図８】図５で使用するのに適したタスククラスの一実施形態の図である。
【符号の説明】
【００４５】
１００、１１８  コンピューティングデバイス
１０２  処理装置
１０４  システムメモリ
１０５  オペレーティングシステム
１０６  プログラムモジュール
１０７  プログラムデータ
１０９  取り外し可能記憶装置
１１０  取り外し不可記憶装置
１１２  入力装置
１１４  出力装置
１１６  通信接続
２０２、２０６、２０８  ページ
２１０  タスク
２１２  エントリポイントの指示
３００、４００  ディスプレイ
３０１  デスクトップ
３０２  ウィンドウ
３０４  メニューバー
３０８  メニュー項目
３１０、３１２、３１４、３１６、３１８  エントリポイント
３１９、４２３  サブメニュー
３２２、４２４  サブメニュー項目
３３０  アクティビティセンター
４０６  アドレスフィールド
４１０、４１７  リンク
４２２  メニュー項目
６００  スキーマ
６０２、６０４、６０６、６０８、７０４、７０６、７０８、７１０、７１２  エレメント
８００  タスククラス
８０２、８０４  メソッド
８０６、８０８、８１０  プロパティ
【図１】
2004227591.tif 000003
【図２】
2004227591.tif 000004
【図３】
2004227591.tif 000005
【図４】
2004227591.tif 000006
【図５】
2004227591.tif 000007
【図６】
2004227591.tif 000008
【図７】
2004227591.tif 000009
【図８】
2004227591.tif 000010