(57)【要約】  本発明は、アプリケーション・ワークフロー・フレームワークを利用し、コンピューティング・デバイス上で実行するアプリケーションにおけるワークフローを管理することに関するものである。例示的なワークフロー・ルーチンは、ワークフロー・ルーチンを完了するために完了する必要がある複数のタスクを含むことができる。したがって、ワークフロー・フレームワークは、特定のワークフロー・ルーチンに整合するワークフロー定義を有する。ワークフロー・ルーチンにおいて定められる特定のタスクの各々は、アプリケーション内の多数のインタフェース要素によって表現可能である。インタフェース要素の少なくともいくつかは、ワークフロー定義によって定められ、異なるコンテンツおよび表示属性を有する多くの実行状態を有することができる。一実施形態では、実行状態は、アクティブ前状態、アクティブ状態およびアクティブ後状態を含むことができる。
2017514244.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション・フレームワークにおいて、
前記アプリケーション・フレームワークは、プロセッサおよびメモリを有するコンピューティング・デバイス上で実行可能なアプリケーション・ユーザ・インタフェースを備え、前記アプリケーション・ユーザ・インタフェースは、焦点を定めているインタフェース表示領域および複数のインタフェース要素を有し、各インタフェース要素は、各インタフェース要素のための実行状態を定めている、関連付けられたワークフロー定義を有するように構成され、
前記ワークフロー定義は、少なくとも１つのインタフェース要素のために、
第１の表示特性に少なくとも部分的に基づく、前記アプリケーション表示領域内の第１のインタフェース要素表示を有するアクティブ前状態と、
第２の表示特性に少なくとも部分的に基づく、前記アプリケーション表示領域内の第２のインタフェース要素表示および入力データを受け取るように構成される入力制御を有するアクティブ状態と、
前記アクティブ状態の間受け取られる前記入力データに少なくとも部分的に基づく第３の表示特性に少なくとも部分的に基づく、前記アプリケーション表示領域内の第３のインタフェース要素表示を有するアクティブ後状態と、
を定め、
前記少なくとも１つのインタフェース要素は、前記ワークフロー定義に従って、前記インタフェース要素の１つの選択に基づいて、前記アクティブ前状態から前記アクティブ状態に移行するように構成され、
前記少なくとも１つのインタフェース要素は、前記インタフェース要素が前記アクティブ前状態から前記アクティブ状態に移行するとき、前記インタフェース表示領域内の前記焦点に移行するように構成される、
アプリケーション・フレームワーク。
【請求項２】
少なくとも１つの機能は、前記入力制御によって受け取られる入力データに基づいて実行されるように構成される前記アクティブ状態に関連付けられている、
請求項１に記載のアプリケーション・フレームワーク。
【請求項３】
前記少なくとも１つのインタフェース要素の少なくとも１つの前記アクティブ状態は、２以上のアクティブ状態層を有する、
請求項１に記載のアプリケーション・フレームワーク。
【請求項４】
前記入力制御は、テキスト入力、ドロップ・ダウン・リストおよびスライダ入力のうちの１つである、
請求項１に記載のアプリケーション・フレームワーク。
【請求項５】
複数のインタフェース要素は、前記複数のインタフェース要素が前記アクティブ状態から前記アクティブ後状態に移行するとき、前記インタフェース表示領域内の前記焦点から非焦点に移行するように構成される、
請求項１に記載のアプリケーション・フレームワーク。
【請求項６】
前記第１のインタフェース要素表示および前記第３のインタフェース要素表示は、同一サイズである、
請求項１に記載のアプリケーション・フレームワーク。
【請求項７】
第２の選択表示領域は、前記第１のインタフェース要素表示および前記第３のインタフェース要素表示より大きい、
請求項１に記載のアプリケーション・フレームワーク。
【請求項８】
前記少なくとも１つのインタフェース要素は、状態間を移行するとき、前記インタフェース表示領域内に制限されるように構成される、
請求項１に記載のアプリケーション・フレームワーク。
【請求項９】
アプリケーション・フレームワークにおけるユーザ入力を処理するためのコンピュータ実装方法において、前記方法は、
複数のインタフェース要素のための動作状態を定めているワークフロー定義を取得するステップと、
各々が少なくとも１つの表示特性を有する前記複数のインタフェース要素を、ユーザ・インタフェースのアプリケーション・インタフェース表示に表示するステップと、
前記複数のインタフェース要素の１つを選択するための入力を受け取るステップと、
前記選択されたインタフェース要素の少なくとも１つの表示特性を変更し、前記ワークフロー定義に従って、少なくとも１つの入力制御を表示するステップと、
前記ワークフロー定義に従って、前記アプリケーション・インタフェース表示内の焦点に実質的に整列配置するように、前記選択されたインタフェース要素を位置決めするステップと、
前記少なくとも１つの入力制御に対する入力データを受け取るステップと、
ワークフロー定義に従って、前記入力制御によって受け取られた前記入力データに関連付けられた少なくとも１つの機能を実行するステップと、
前記選択されたインタフェース要素が前記受け取られた入力データに少なくとも部分的に基づく情報を表示するように、前記選択されたインタフェース要素に関連付けられた少なくとも１つの表示特性を変更するステップと、
を含むコンピュータ実装方法。
【請求項１０】
前記動作状態は、アクティブ前状態、アクティブ状態およびアクティブ後状態を備える、
請求項９に記載のコンピュータ実装方法。
【請求項１１】
前記複数のインタフェース要素は、前記アクティブ前状態にある、
請求項１０に記載のコンピュータ実装方法。
【請求項１２】
前記選択されたインタフェース要素の前記少なくとも１つの表示特性を変更する前記ステップは、前記選択されたインタフェース要素のサイズを変更する、
請求項９に記載のコンピュータ実装方法。
【請求項１３】
選択可能な表示要素のサイズは、前記アプリケーション・インタフェース表示内の入力パラメータに適応するために変化する、
請求項９に記載のコンピュータ実装方法。
【請求項１４】
前記選択された表示要素のサイズの変化を説明するために、未選択の表示要素を位置決めするステップをさらに含む、
請求項１３に記載のコンピュータ実装方法。
【請求項１５】
前記少なくとも１つの表示要素を変更するとき、前記選択されたインタフェースは、前記ユーザ・インタフェース内の画面を変更しない、
請求項９に記載のコンピュータ実装方法。
【請求項１６】
アプリケーションにおけるアプリケーション・フレームワーク・ワークフローを実装するコンピュータ実装方法において、前記方法は、
焦点を有するインタフェース表示領域および複数のインタフェース要素を有するアプリケーション・ユーザ・インタフェースを提供するステップと、
前記複数のインタフェース要素の各々のための実行状態を定めているワークフロー定義を取得するステップと、
インタフェース要素の各々のために、
第１の表示特性に少なくとも部分的に基づく、前記アプリケーション表示領域内の第１のインタフェース要素表示を有するアクティブ前状態を定めるステップと、
第２の表示特性に少なくとも部分的に基づく、前記アプリケーション表示領域内の第２のインタフェース要素表示および入力データを受け取るように構成される少なくとも１つの入力制御を有するアクティブ状態を定めるステップと、
前記アクティブ状態の間受け取られる前記入力データに少なくとも部分的に基づく第３の表示特性に少なくとも部分的に基づく、前記アプリケーション表示領域内の第３のインタフェース要素表示を有するアクティブ後状態を定めるステップと、
前記複数のインタフェース要素の１つを選択している入力を受け取るステップと、
前記ワークフロー定義に従って、前記選択されたインタフェース要素を前記アクティブ状態に移行するステップと、
前記インタフェース表示領域内の前記焦点の位置に基づいて、前記選択されたインタフェース要素を位置決めするステップと、
を含む方法。
【請求項１７】
前記インタフェース要素が前記アクティブ状態の他に移行するとき、選択されたインタフェース要素を前記焦点から非焦点に移行するステップをさらに含む、
請求項１６に記載のコンピュータ実装方法。
【請求項１８】
前記選択された要素は、選択される前に、アクティブ前状態またはアクティブ後状態にあった、
請求項１６に記載のコンピュータ実装方法。
【請求項１９】
入力データをユーザから受け取るステップと、
前記受け取られた入力データに基づいて、前記アクティブ状態の間、機能を実行するステップと、
をさらに含む、
請求項１６に記載のコンピュータ実装方法。
【請求項２０】
アプリケーション・フレームワークにおけるユーザ入力を処理するためのコンピュータ実装方法において、前記方法は、
複数のインタフェース要素を、アプリケーション・インタフェース表示を有するユーザ・インタフェース内に表示するステップと、
前記複数のインタフェース要素の１つを選択するための入力を受け取るステップと、
前記アプリケーション・インタフェース表示内の焦点の位置に少なくとも部分的に基づき、前記選択されたインタフェース要素を位置決めするステップであって、前記選択されたインタフェース要素は選択される間少なくとも１つの入力制御を有するステップと、
前記選択されたインタフェース要素の位置に少なくとも部分的に基づいて、未選択のインタフェース要素を位置決めするステップと、
前記少なくとも１つの入力制御でユーザ入力を受け取るステップと、
前記ユーザ入力に基づいて、機能を実行するステップと、
前記機能が実行された後、前記複数のインタフェース要素を再配置するステップと、
を含む方法。
【請求項２１】
前記選択された要素は、選択される前、アクティブ前状態またはアクティブ後状態にある、
請求項２０に記載のコンピュータ実装方法。
【請求項２２】
前記選択された要素は、前記機能を実行した後、アクティブ後状態にある、
請求項２０に記載のコンピュータ実装方法。
【請求項２３】
前記機能は、ユーザをアカウントにログインさせることである、
請求項２０に記載のコンピュータ実装方法。
【請求項２４】
前記機能は、支払トランザクションを許可することである、
請求項２０に記載のコンピュータ実装方法。
【発明の詳細な説明】
【背景技術】
【０００１】
一般的に記載すると、コンピューティング・デバイスを用いて、通信ネットワーク、例えばインターネット上のコンテンツおよびサービスにアクセスすることができる。伝統的に、ユーザは、より大きい画面表示に関連付けられうるコンピューティング・デバイス、例えばデスクトップ・コンピューティング・デバイスを介して、コンテンツおよびサービスにアクセスすることができる。
【０００２】
無線通信ネットワークおよび携帯型コンピューティング・デバイス（例えば携帯電話）の継続的な開発は、コンテンツ・プロバイダおよびサービス・プロバイダとのさらなるユーザ対話を容易にしてきている。具体的には、モバイル・コンピューティング・デバイスがより一般的になるにつれて、ユーザには、コンテンツおよびサービスの追加的または代替的なアクセスが提供される。例えば、カスタマイズされたソフトウェア・アプリケーション（しばしば、特定目的のために特別に設定される「アプリケーション」または「アプリ」と呼ばれる）の利用をサポートする多くのモバイル機器が存在する。例えば、モバイル機器のプロバイダまたはモバイル機器のオペレーティング・システム・プロバイダは、カスタマイズされたアプリケーション、例えば銀行アプリケーション、商品注文アプリケーション等のライブラリを提供することができる。しばしば、カスタマイズされたソフトウェア・アプリケーションを介するアプリケーションまたはサービスの表現は、ワークフローに関して特徴付けられうる。例えば、買い物または注文を容易にするアプリケーションは、商品を選択し、注文条件を最終決定し、個人データまたは金融データを入力し、購入を確認することを含むワークフローによって特徴付けられうる。
【０００３】
いくつかの携帯機器、例えば携帯電話は、制限された表示領域を有する場合があるので、任意の特定の時間に表示可能なデータまたはデータ要素の量は制限されうる。この種のディスプレイが制限されたモバイル機器のために、ワークフローの実施は、一般的に、さまざまなワークフローのステップまたはステージを実装する必要がある一連のページの表現を必要とする。例えば、金融アプリケーションは、金融条件の選択、識別子および証明書の入力等を容易にするための、コンテンツの別個のページの表現を必要としうる。いくつかの場合には、消費者がさまざまなページ上の情報の表現によって混乱したり、気が散ることがあるため、ワークフローは中断されうる。ユーザが以前のデータ・エントリまたは選択を変更または検査する必要がある場合、さまざまなページを戻り、必要な変更を加えることが困難な場合がある。さらに、変更が完了した後、ソフトウェア・アプリケーションは、ワークフロープロセスにおける次のステップですでに提供された情報を再入力することをユーザに要求する場合がある。これは、ワークフローの実施に関する不満または中断に至り、その結果、消費者がワークフローを早期に終了する場合がある。
【０００４】
上述した態様および効果の多くは、以下の詳細な説明および添付の図面を参照することにより、より容易に認識され、かつ、より理解されるものである。
【図面の簡単な説明】
【０００５】
【図１】コンピューティング環境の例示的実施形態を表しているブロック図を示す。
【図２】クライアント・コンピューティング・デバイスの実施形態の構成要素を示す。
【図３Ａ】アプリケーション・ワークフロー・フレームワークを実装するように構成されたクライアント・コンピューティング・デバイスの実施形態を示す。
【図３Ｂ】アプリケーション・ワークフロー・フレームワークを実装するように構成されたクライアント・コンピューティング・デバイスの実施形態を示す。
【図３Ｃ】アプリケーション・ワークフロー・フレームワークを実装するように構成されたクライアント・コンピューティング・デバイスの実施形態を示す。
【図４Ａ】アプリケーション・ワークフロー・フレームワークを実装するように構成されたクライアント・コンピューティング・デバイスの他の実施形態を示す。
【図４Ｂ】アプリケーション・ワークフロー・フレームワークを実装するように構成されたクライアント・コンピューティング・デバイスの他の実施形態を示す。
【図５Ａ】ワークフロー・アプリケーション・フレームワークを実装している支払処理アプリケーションの例示的実施形態を提供する。
【図５Ｂ】ワークフロー・アプリケーション・フレームワークを実装している支払処理アプリケーションの例示的実施形態を提供する。
【図５Ｃ】ワークフロー・アプリケーション・フレームワークを実装している支払処理アプリケーションの例示的実施形態を提供する。
【図６Ａ】ワークフロー・アプリケーション・フレームワークを実装している支払処理アプリケーションの他の例示的実施形態を提供する。
【図６Ｂ】ワークフロー・アプリケーション・フレームワークを実装している支払処理アプリケーションの他の例示的実施形態を提供する。
【図６Ｃ】ワークフロー・アプリケーション・フレームワークを実装している支払処理アプリケーションの他の例示的実施形態を提供する。
【図６Ｄ】ワークフロー・アプリケーション・フレームワークを実装している支払処理アプリケーションの他の例示的実施形態を提供する。
【図６Ｅ】ワークフロー・アプリケーション・フレームワークを実装している支払処理アプリケーションの他の例示的実施形態を提供する。
【図６Ｆ】ワークフロー・アプリケーション・フレームワークを実装している支払処理アプリケーションの他の例示的実施形態を提供する。
【図６Ｇ】ワークフロー・アプリケーション・フレームワークを実装している支払処理アプリケーションの他の例示的実施形態を提供する。
【図７】例示的なワークフロー・アプリケーション・フレームワーク処理ルーチンを表しているフロー図の実施形態である。
【図８】例示的なワークフロー処理ルーチンを表しているフロー図の実施形態である。
【発明を実施するための形態】
【０００６】
一般的に記載すると、本発明は、アプリケーション・ワークフロー・フレームワークを利用し、コンピューティング・デバイス上で実行するアプリケーションにおけるワークフローの実施を管理することに関するものである。例示的に、コンピューティング・デバイスによるアプリケーションの実行態様は、ワークフロー・ルーチンを完了するために実行する必要がある複数のタスクを含みうるワークフロー・ルーチンとして特徴付けられうる。したがって、アプリケーションは、ワークフロー・フレームワークによって実装可能な特定のワークフロー・ルーチンに整合するワークフロー定義を有することができる。より具体的には、例示的な実施形態では、ワークフロー・ルーチン内で定められる特定のタスクは、アプリケーション内の多くのインタフェース要素に関連付けられうる。例示的に、インタフェース要素の少なくともいくつかは、ワークフロー定義によって定められ、ワークフローの進行に関連した多くの実行状態を有することができる。一実施形態では、実行状態は、アクティブ前状態、アクティブ状態およびアクティブ後状態とすることができる。
【０００７】
ワークフロー・フレームワークは、コンピューティング・デバイスのディスプレイによりインタフェース要素の全てを何らかの方法で表示可能なインタフェース表示領域を提供する、または、さもなければ関連付けられている。ユーザがアプリケーションと対話し、アプリケーション・ワークフローにより進行するので、インタフェース表示領域内のインタフェース要素は、ワークフローによる現在の進行に従って表示される。例えば、まだ完了していないワークフロー・ステップのためのインタフェース要素は、アクティブ前状態に従って表現され、現在のワークフロー・ステップのためのインタフェース要素は、アクティブ状態に従って表現され、完了したワークフロー・ステップのためのインタフェース要素は、アクティブ後状態に従って表現される。
【０００８】
例示的に、アクティブ状態のインタフェース要素は、１つまたは複数の入力制御を提供するように構成可能であり、入力制御によって、ユーザは、インタフェース要素に関連付けられたタスクを完了するために情報をアプリケーションに提供することができる。要求された情報をユーザが提供した後、または、タスクが定められるところを越えたワークフローに沿ってユーザが進行した場合、インタフェース要素は、アクティブ状態からアクティブ後状態に移行することができる。アクティブ後状態のインタフェース要素は、インタフェース要素に関連付けられたタスクが完了したことを示すことができる。アクティブ後状態において、インタフェース要素は、インタフェース要素に関連付けられたタスクが完了したという印を表示することができる。一実施形態では、アクティブ後状態のインタフェース要素は、ユーザによって提供される入力に少なくとも部分的に基づき、インタフェース要素に情報を表示することができる。
【０００９】
例示的に、ユーザは、同一インタフェース表示領域内で異なるインタフェース要素と対話することによって、異なる実行状態を経て進行することができる。ユーザは、アプリケーションのための定義済みワークフローを経て進行するので、インタフェース要素は、表示領域内で変化し、各実行状態に関連付けられた情報を表示することができる。より具体的には、例示的な実施形態では、アクティブ状態に対応するインタフェース要素は、表示領域の焦点に位置決め可能である。インタフェースの焦点への位置決めは、完了する必要があるアクティブなタスクに、ユーザの注意を集中させるのに役立ちうる。対照的に、アクティブ前状態またはアクティブ後状態の一方に対応するインタフェース要素は、表示領域の非焦点に位置決め可能である。したがって、ユーザは、各インタフェース要素の実行状態を経て、インタフェース表示領域から離れずに進行することができ、異なるタスクに移動するまたは異なるタスクを非連続で選択することができる。いくつかの実施形態では、ユーザは、インタフェース要素を再選択することによって、以前完了したタスクを修正することができる。
【００１０】
このようなタスクの表現は、ユーザが、複数のページ間を移行する必要なく、ワークフロー・ルーチンに関連付けられた各タスクを経て進行するのに役立ちうる。このフレームワークは、ユーザが面倒なワークフロー・インタフェースによって気が散ったり、混乱することなく、ワークフロー・ルーチンを完了できる合理化されたインタフェースを提供することによって、消費者の不満を減らすのに役立ちうる。
【００１１】
本発明の態様は、図示するワークフロー・フレームワークを参照して記載されているが、開示された実施形態が本質的に例示的であり、制限するものとして解釈されてはならないということを当業者は認識するであろう。またさらに、多くの図示例は、本発明に関して説明されるが、この種の例が必ずしも制限するものとして解釈されるべきであるというわけではない。
【００１２】
図１は、クライアント・コンピューティング・デバイス１０４上のワークフロー・フレームワーク１０８を利用しているアプリケーションを実装するためのコンピューティング環境１００の例示的実施形態を表しているブロック図を示す。クライアント・コンピューティング・デバイス１０４は、ネットワーク１０２を介してアプリケーション・サーバ１１２およびサービス・プロバイダ１１４と通信するように構成されている。アプリケーション１０６は、クライアント・コンピューティング・デバイス１０４にインストールされ、動作することができる。ワークフロー・フレームワーク１０８を用いて、ワークフロー・ルーチンをアプリケーション１０６内で実装することができる。各ワークフロー・ルーチンは、特定のワークフロー定義１１０に関連付けられ、クライアント・コンピューティング・デバイス１０４上で実行可能である。
【００１３】
クライアント・コンピューティング・デバイス１０４は、ワークフロー・ルーチンの特定の態様の実行中に、アプリケーション・サーバ１１２およびサービス・プロバイダ１１４と対話することができる。クライアント・コンピューティング・デバイス１０４は、アプリケーションをアプリケーション・サーバ１１２から受け取ることができる。いくつかの実施形態では、アプリケーション・サーバ１１２は、ワークフロー・ルーチンの実行中に、クライアント・コンピューティング・デバイス１０４とサービス・プロバイダ１１４との間の通信を可能にすることができる。アプリケーション・サーバ１１２は、複数のコンピューティング・デバイスまたはサーバによって実施されてもよい。
【００１４】
サービス・プロバイダ１１４は、クライアント・コンピューティング・デバイス１０４およびアプリケーション・サーバ１１２と、ネットワーク１０２を介して通信するように構成されている。図示の実施形態では、サービス・プロバイダ１１４は、ネットワーク１０２を介してコンテンツまたはサービスを提供しているネットワーク・サービス・プロバイダまたは第三者によって提供されるサービスを含むことができる。サービス・プロバイダの例は、小売業者、デジタル・コンテンツ・プロバイダ、銀行および他のサービス・プロバイダを含むことができる。
【００１５】
当業者は、通信ネットワーク１０２が任意の有線ネットワーク、無線ネットワークまたはそれらの組み合わせでもよいことを理解するであろう。さらに、通信ネットワーク１０２は、パーソナル・エリア・ネットワーク、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、ケーブル・ネットワーク、衛星ネットワーク、携帯電話ネットワークまたはそれらの組み合わせでもよい。インターネットまたは他の上述したタイプの通信ネットワークのいずれかを介した通信用のプロトコルおよび構成要素は、コンピュータ通信の当業者に周知であるので、本願明細書に詳細に記載されている必要はない。
【００１６】
クライアント・コンピューティング・デバイス１０４は、通信ネットワーク１０２上で通信を開始する、受信する、または、容易にすることができる多種多様なデバイスまたは構成要素に対応することができ、例えば、パーソナル・コンピューティング・デバイス、電子書籍表示装置（例えば、イーブック・リーダ）、携帯型コンピューティング・デバイス、コンピューティング・デバイスに含まれる内蔵部品、家電、機器、車両、機械、固定電話、ネットワーク・ベースの電話（例えば、ボイス・オーバー・アイピー（ＶｏＩＰ））、コードレス電話、移動電話、スマートフォン、モデム、携帯情報端末、ラップトップ・コンピュータ、ゲーム機、メディアデバイス等が挙げられるが、これらに限定されるものではない。図示の実施形態では、クライアント・コンピューティング・デバイス１０４は、無線通信ネットワーク、有線通信ネットワークまたはＩＰベースの電気通信ネットワークを含む１つまたは複数の通信ネットワーク上の通信を確立するための多種多様なソフトウェアおよびハードウェア・コンポーネントを含む。図２には、クライアント・コンピューティング・デバイス１０４の図示の構成要素がより詳細に記載されている。
【００１７】
図２は、クライアント・コンピューティング・デバイス１０４、例えば携帯電話の実施形態の構成要素を示す。クライアント・コンピューティング・デバイス１０４は、１つまたは複数の処理装置２０２、例えば１つまたは複数のＣＰＵを含むことができる。クライアント・コンピューティング・デバイス１０４は、システム・メモリ２０４を含むこともでき、システム・メモリ２０４は、揮発性および／または不揮発性のコンピュータ可読記憶媒体の任意の組み合わせに対応することができる。システム・メモリ２０４は、オペレーティング・システム・モジュール２０６、さまざまなプログラム・モジュール２０８、プログラム・データ２１０および他のモジュールを提供する情報を格納することができる。一実施形態では、図示のワークフロー・フレームワークの機能は、オペレーティング・システム・モジュール２０６の一部として実装されてもよい。そのような実施形態では、オペレーティング・システム・モジュール２０６は、実行コードを含み、この実行コードは、アプリケーション・ワークフロー・ルーチン（後述する）の定義または構成を受け取り、アプリケーション・ワークフロー・ルーチンに関連付けられたインタフェース要素を、ワークフロー定義１１０に従って表示させる。他の実施形態では、図示するワークフロー・フレームワークの機能は、コンピューティング・デバイス１０４上で実行されるアプリケーション１０６またはモジュールの一部として、コンピューティング・デバイス上で実行されるアプリケーションとは独立して実装されてもよい。そのような実施形態では、アプリケーション１０６は、実行コードを含み、この実行コードは、アプリケーション・ワークフロー・ルーチンの定義または構成を受け取り、アプリケーション・ワークフロー・ルーチンに関連付けられたインタフェース要素を、ワークフロー定義１１０に従って表示させる。さらに別の実施形態では、図示するワークフローの機能は、プログラム・データ２１０に格納され、実行されるべきアプリケーション１０６の一部として実装されてもよい。この実施形態では、アプリケーション１０６は、実行コードを含み、この実行コードは、アプリケーション・ワークフロー・ルーチンの定義または構成を受け取り、アプリケーションに関連付けられたインタフェース要素を、ワークフロー定義１１０に従って表示させる。
【００１８】
上に列挙された構成要素のリストは、代表的であり、クライアント・コンピューティング・デバイス１０４によって実行される機能または実装される構成要素のタイプを包括するものではない。当業者は、追加的または代替的な構成要素もまたクライアント・コンピューティング・デバイス１０４に含まれ、他の意図された機能、例えばモバイル電話機能を実行することができると認識するであろう。
【００１９】
クライアント・コンピューティング・デバイス１０４は、処理装置２０２を用いて機能を実行し、システム・メモリ２０４に格納されるモジュールを実行する。クライアント・コンピューティング・デバイス１０４は、１つまたは複数の入力装置２１２（キーボード、マウス・デバイス、専門選択キー等）および１つまたは複数の出力装置２１４（ディスプレイ、プリンタ、音声出機構等）を含むこともできる。当業者は、追加的または代替的なソフトウェア・モジュールおよび／またはハードウェア・コンポーネントがクライアント・コンピューティング・デバイス１０４に含まれ、他の意図された機能、例えばモバイル電話機能を実行することができると認識するであろう。
【００２０】
図２を引き続き参照すると、クライアント・コンピューティング・デバイス１０４は、バッテリ２２２、１つまたは複数のタイプの取り外し可能な記憶装置２１６および１つまたは複数のタイプの取り外し不可能な記憶装置２１８を含むこともできる。いくつかの実施形態では、デバイスは、外部電源、例えばＡＣ電源出力に接続可能である。またさらに、クライアント・コンピューティング・デバイス１０４は、有線および無線通信ネットワークを介する通信を容易にするための通信構成要素２２０、例えばセルラー送受信機および無線送受信機を含むことができる。これらの送受信機は、さまざまな通信プロトコルを用いて通信を容易にし、さまざまな通信プロトコルとは、ブルートゥース、ＩＥＥＥ８０２．１１技術標準（ＷｉＦｉ）の系統、ＩＥＥＥ８０２．１６標準（ＷｉＭａｘ）、ショート・メッセージ・サービス（ＳＭＳ）、ボイス・オーバー・アイピー（ＶｏＩＰ）およびさまざまな世代のセルラー・エアー・インタフェース・プロトコル（符号分割多重接続（ＣＤＭＡ）、時分割多重接続（ＴＤＭＡ）、グローバル・システム・フォー・モバイル・コミュニケーションズ（ＧＳＭ）、広帯域符号分割多重接続（ＷＣＤＭＡ）、符号分割多重接続第三世代（ＣＤＭＡ１０４０）、時分割複信・符号分割多元接続（ＴＤＳＣＤＭＡ）、波長時分割多重接続（ＷＴＤＭＡ）、ロング・ターム・エボリューション（ＬＴＥ）、直交周波数分割多元接続（ＯＦＤＭＡ）および類似技術に基づくエアー・インタフェース・プロトコルを含むがこれらに限定されるものではない）を含むが、これらに限定されるものではない。
【００２１】
図３Ａ〜図３Ｃは、アプリケーション・ワークフロー・フレームワーク１０８を利用してアプリケーション１０６を実装するように構成されたクライアント・コンピューティング・デバイス１０４の実施形態を示す。上述したように、例示的に、ワークフロー・フレームワーク１０８は、コンピューティング・デバイス、例えばモバイル・コンピューティング・デバイス上で実行されているアプリケーション１０６のために定められるワークフロー・ルーチンを管理することができる。ワークフロー・ルーチンは、ルーチンを完了するために完了する必要がある複数のタスクを含むことができる。ワークフロー・フレームワーク１０８は、各ワークフロー・ルーチンに関連付けられたワークフロー定義１１０を有することができる。ワークフロー・ルーチンにおいて定められる特定のタスクの各々は、アプリケーション１０６内の多数のインタフェース要素によって表現可能である。ワークフロー定義１１０は、アプリケーション１０６内の少なくともいくつかのインタフェース要素のための実行状態を定めることができる。
【００２２】
図３Ａを参照すると、クライアント・コンピューティング・デバイス１０４は、インタフェース表示領域３２０を有するユーザ・インタフェース３１０を有する。ユーザ・インタフェース３１０のサイズは、コンピューティング・デバイス１０４の特性によって定めることができる。インタフェース表示領域３２０は、アプリケーション１０６のコンテンツを表示するのに利用可能な、ユーザ・インタフェース３１０内の領域を表す。いくつかの実施形態では、アプリケーション１０６は、ワークフロー・フレームワーク１０８に従って構成される複数のインタフェース表示領域３２０を有することができる。インタフェース表示領域３２０は、複数のインタフェース要素３４０Ａ〜３４０Ｅを表示するように構成可能である。いくつかの実施形態では、インタフェース表示領域３２０は、クライアント・コンピューティング・デバイス１０４のユーザ・インタフェース３１０より大きくなりうる。これらの例では、インタフェース表示領域３２０は、インタフェース表示領域３２０の全体を見るために、ユーザ・インタフェース３１０内で上下左右または斜めに移動するように構成可能である。
【００２３】
ワークフロー定義１１０は、インタフェース要素３４０のための実行状態を定めることができる。一実施形態では、インタフェース要素３４０は、第１の状態（アクティブ前状態とも呼ばれる）と、第２の状態（アクティブ状態とも呼ばれる）と、第３の状態（アクティブ後状態とも呼ばれる）と、を有することができる。アクティブ前状態およびアクティブ後状態は、非アクティブ状態とも呼ばれうる。各インタフェース要素３４０の状態は、他のインタフェース要素３４０の状態から独立している。例えば、図３Ａにおいて、インタフェース要素３４０Ａ〜３４０Ｅは、アクティブ前状態にある。図３Ｂにおいて、インタフェース要素３４０Ｂは、アクティブ状態に表示されている。図３Ｃにおいて、インタフェース要素３４０Ｂは、アクティブ後状態に表示され、インタフェース要素３４０Ａ、３４０Ｃ〜３４０Ｅは、アクティブ前状態に表示されている。いくつかの実施形態では、単一のインタフェース要素のみがアクティブ状態にあることができる。いくつかの実施形態では、複数のインタフェース要素が同時にアクティブ状態にあることができる。さらに、さらなる実施形態では、クライアント・コンピューティング・デバイス１０４は、メモリの複数の状態に関連付けられたインタフェース要素を有し、状態間の切り替わりを最小の影響で容易にすることができる。
【００２４】
例示的に、ワークフロー・フレームワーク１０８は、ユーザ・インタフェース３１０内の焦点３３０を定めることができる。いくつかの実施形態では、焦点３３０の位置は、クライアント・コンピューティング・デバイス１０４の特性、例えば画面のサイズ、解像度および他の装置特性に基づくことができる。いくつかの実施形態では、ワークフロー・フレームワーク１０８は、複数の焦点３３０を有することができる。図３Ｂにおける焦点３３０は、インタフェース表示領域３２０の実質的に中央に位置決めされている。異なる例では、焦点３３０は、インタフェース表示領域３２０の他の位置、例えばディスプレイの上または下の部分に位置決め可能であろう。アクティブなインタフェース要素３４０は、焦点３３０の位置に少なくとも部分的に基づいて位置決め可能である。アクティブ要素の焦点位置は、優先位置とも呼ばれうる。アクティブ状態にある要素が存在しないとき、インタフェース要素は、どのインタフェース要素もインタフェース表示領域３２０内で優先位置を有さない以前の表示状態に戻る。焦点３３０の使用は、ユーザがアクティブなインタフェース要素に焦点を合わせるのに役立ちうる。
【００２５】
ワークフロー定義１１０は、各インタフェース要素３４０に関連付けられた１つまたは複数の表示特性を定める。表示特性は、アプリケーション表示領域３２０内のインタフェース要素３４０の外観を定めることができる。表示特性は、例えば、サイズ、形状、色、表示情報、例えばテキスト、アイコン、グラフィックスまたは他の表示情報を含むことができる。この実施形態では、インタフェース要素３４０Ａ〜３４０Ｅは、実質的に矩形である。いくつかの実施形態では、インタフェース要素は、正方形、円形または他の形状を含むがこれらに限定されるものではない各種形状の任意のものにすることができるであろう。
【００２６】
例示的に、インタフェース要素３４０は、インタフェース要素の現在の状態に依存している１つまたは複数の異なる表示特性を有することができる。インタフェース要素がアクティブ前状態からアクティブ状態に移行するとき、インタフェース要素の表示特性は、ワークフロー定義１１０に基づいて変化することができる。例えば、インタフェース要素は、アクティブ前状態と比較してアクティブ状態においてサイズが増加することができる。これは、図３Ａおよび図３Ｂのインタフェース要素３４０Ｂによって示されている。図３Ｂにおいて、インタフェース要素３４０Ｂは、サイズが拡大し、入力制御３５０および説明（ディスクリプタ）３６０を示す。インタフェース要素３４０Ｂがアクティブ状態に移行するとき、アプリケーション１０６は、新しいページに移行せず、むしろ、他のインタフェース要素３４０Ａ、３４０Ｃ〜３４０Ｅが、アクティブのインタフェース要素３４０Ｃに適応するために再配置される。いくつかのインタフェース要素（例えば、３４０Ａ、３４０Ｃ）は、依然として見えており、一方、他のインタフェース要素（例えば３４０Ｄ、３４０Ｅ）は、見えているディスプレイの外に位置決めされているが、依然としてインタフェース表示領域３２０内には存在している。インタフェース要素３４０Ｂがアクティブである間、見えていないインタフェース要素３４０Ｄ、３４０Ｅを見るために、インタフェース表示領域３２０を移動することができる（例えば、スクロールする）。インタフェース要素３４０Ｂに関連付けられたタスクを完了するとき、これはユーザコンテキストを提供するのに役立ちうる。
【００２７】
アクティブ状態において、インタフェース要素３４０は、１つまたは複数の入力制御３５０を含むことができる。入力制御３５０は、ユーザのためのインタフェースを提供し、入力データをアプリケーションに提供するように構成される。例えば、入力制御３５０は、ドロップ・ダウン・ボックス、テキスト・フィールド、スクロール・バー、スピニング入力、スクロール入力、水平バー入力、数値入力、英数字入力、および／または、ユーザが入力をアプリケーションに提供できるように構成された他のタイプの入力制御を含むことができる。インタフェース要素は、任意の数の入力制御を有することができる。インタフェース要素は、アプリケーション１０６が入力データをユーザから受け取った後実装される入力制御に関連付けられた１つまたは複数の機能を有することができる。
【００２８】
いくつかの実施形態では、ワークフロー定義１１０は、インタフェース要素３４０に関連付けられた１つまたは複数のアクティブ状態層を定めることができる。各層のために、ワークフロー定義１１０は、インタフェース要素３４０に関連付けられた表示特性を定めることができる。表示特性は、他の状態または他のアクティブ状態層に関連付けられた表示特性とは異なることができる。いくつかの実施形態では、ベース層は、層のフォームファクタ（すなわち、サイズおよび形状）を定め、続く層は、ベース層によって定められるフォームファクタ内に表示される情報を定める。
【００２９】
インタフェース要素３４０がアクティブ状態からアクティブ後状態に移行するとき、インタフェース要素の表示特性は、ワークフロー定義１１０に基づいて変化することができる。アクティブ後状態のために、ワークフロー定義１１０は、インタフェース要素に関連付けられた１つまたは複数の表示特性を定めることができる。１つまたは複数の表示特性は、アクティブ状態またはアクティブ前状態に関連付けられた表示特性とは異なることができる。例えば、図３Ｂおよび図３Ｃを参照すると、インタフェース要素３４０Ｂは、アクティブ状態と比較して、アクティブ後状態ではサイズが減少している。図３Ａおよび図３Ｃに示したように、アクティブ後状態のインタフェース要素３４０Ｂは、アクティブ前状態の間と同一サイズであるように構成可能である。いくつかの実施形態では、インタフェース要素は、アクティブ前状態と異なるフォームファクタを、アクティブ後状態において有することができる。表示特性は、アクティブ前状態において表示される情報と異なる情報３７０をインタフェース要素に表示するように構成可能である。いくつかの実施形態では、表示される情報は、アクティブ状態の間ユーザによって提供される入力に少なくとも部分的に基づくことができる。いくつかの実施形態では、インタフェース要素は、インタフェース要素３４０が完了し、さらなる入力をユーザから要求しないことを示すチェックマークまたはＸまたは他の印を示すことができる。上述したように、クライアント・コンピューティング・デバイス１０４は、アクティブおよびパッシブな状態表示要素をメモリ内に維持し、移行を容易にすることができる。
【００３０】
図４Ａおよび図４Ｂは、異なる表示領域を有するクライアント・コンピューティング・デバイス４００（例えばタブレット・コンピューティング・デバイス）の他の実施形態で動作しているワークフロー・アプリケーションを示す。クライアント・コンピューティング・デバイス４００は、ユーザ・インタフェース４１０と、複数のインタフェース要素４４０Ａ〜４４０Ｆを有するインタフェース表示領域４２０と、を有する。破線の円は、ユーザ・インタフェース４１０内の焦点４３０を表す。焦点４３０は、ワークフロー・フレームワーク１０８によって定めることができる。図４Ａにおいて、インタフェース要素４４０Ａ〜４４０Ｆは非アクティブ状態にあり、インタフェース要素のいずれも焦点４３０に対して位置決めされていない。インタフェース要素４４０Ａ、４４０Ｂはアクティブ後状態にあり、インタフェース要素４４０Ｃ〜４４０Ｆはアクティブ前状態にある。後状態印（すなわち、チェックマーク）４６０Ａ、４６０Ｂのため、インタフェース要素４４０Ａ、４４０Ｂがアクティブ後状態にあることは容易に識別できる。後状態印がないため、インタフェース要素４４０Ｃ〜４４０Ｆがアクティブ前状態にあることは容易に識別できる。
【００３１】
図４Ｂにおいて、インタフェース要素４４０Ｃは、アクティブ前状態からアクティブ状態に移行したところである。インタフェース要素４４０Ｃは、インタフェース表示領域４２０内の以前の位置から移動し、焦点４３０に実質的に整列配置された。アクティブ状態において、インタフェース要素４４０Ｃは、サイズを変更し、ワークフロー定義１１０によって定められるような複数の入力制御４５０Ａ〜４５０Ｃを表示した。この実施形態では、他のインタフェース要素４４０Ａ、４４０Ｂ、４４０Ｄ〜４４０Ｆは、インタフェース要素４４０Ｃの新しい位置および形状に適応するために再配置された。いくつかの実施形態では、ワークフロー定義１１０は、インタフェース要素が焦点に移行するとき、インタフェース要素がどのように再配置されるのかを定めることができる。例えば、この実施形態では、４つのインタフェース要素は、ユーザ・インタフェースの左側に表示され、第５のインタフェース要素は、アクティブのインタフェース要素４４０Ｃの下に表示される。
【００３２】
図５Ａ〜図５Ｃは、アプリケーション・ワークフロー・フレームワークを実装している支払処理アプリケーションの例示的な実施形態を提供する。本実施形態では、ユーザ・インタフェース５１０、インタフェース表示領域５２０、焦点５２４および複数のインタフェース要素が存在し、複数のインタフェース要素は、カード残高５２６、補充カード５２８、支払タイプ５３０、自動補充５３２および取消入力５３４を含む。各インタフェース要素は、ワークフロー定義１１０に従って定められる。本実施形態では、焦点５２４は、ユーザ・インタフェース５１０の実質的に中央に位置決めされている。後述するように、図５Ａは、アクティブ前状態の各インタフェース要素を示す。図５Ｂは、アクティブ前状態からアクティブ状態に移行した後の補充カード・インタフェース要素５２８を示す。図５Ｃは、アクティブ状態からアクティブ後状態に移行した後の補充カード・インタフェース要素５２８を示す。カード残高５２６、支払タイプ５３０、自動補充５３２および取消５３４を含む他の要素は、アクティブ前状態のままである。
【００３３】
図５Ａを参照すると、ワークフロー・ルーチンの最初に、インタフェース要素は、各々、アクティブ前状態で表示される。アクティブ前状態において、ワークフロー定義１１０は、インタフェース要素のテキスト、サイズ、形状、色および他の表示特性を決定する。ユーザは、インタフェース要素の１つを選択し、そのインタフェース要素をアクティブ前状態からアクティブ状態に移行することができる。マウスまたはキーボードのような周辺装置を介してタッチスクリーン装置上のユーザ・インタフェースをタッチすることによって、または、入力をアプリケーションに提供する他の方法によって、ユーザ入力は受け取られてもよい。入力が受け取られると、選択されたインタフェース要素５２８は、アクティブ前状態からアクティブ状態に移行する。選択されたインタフェース要素５２８は、焦点５２４に実質的に整列配置するように移動されうる。未選択のインタフェース要素は、アクティブなインタフェース要素５２８の新しい位置に基づいて再配置されうる。アクティブ状態の要素が存在しない場合、インタフェース要素は焦点に配置されうる。
【００３４】
図５Ｂは、アクティブ前状態からアクティブ状態に移行した後の補充カード・インタフェース要素５２８を示す。補充カード・インタフェース要素５２８は、今や実質的に焦点５２４に位置決めされている。他のインタフェース要素は、アクティブのインタフェース要素５２８に適応するためにインタフェース表示領域内で移動する。カード残高５２６および支払タイプ５３０要素は、依然としてインタフェース表示領域５２０内に見えている。インタフェース要素５２８は、インタフェース表示領域５２０内で焦点５２４に移行し、アプリケーション内の異なる画面には移行しない。むしろ、インタフェース表示領域５２０は、見えている表示領域内にない要素を見るために操作（例えばスクロール）されうる制御を有することができる。図示するように、アクティブ状態の補充カード要素５２８の表示特性は、アクティブ前状態の表示特性と異なる。具体的には、アクティブ状態では、補充カード要素５２８はサイズが拡大し、説明５３６、入力制御５３８および取消入力５４０を表示する。入力制御５３８によって、ユーザは、補充額のための金額を選択することができる。例えば、ユーザは、１０ドル、１５ドル、２０ドルまたは「その他」を選択することができるであろう。ユーザが「その他」を選択する場合、ワークフロー定義１１０は追加の入力制御を定めることができる。例えば、テキスト入力制御が表示可能であり、テキスト入力制御によって、ユーザは、特定の金額を入力することができるであろう。取消入力制御５４０は、ワークフロー定義１１０に従って、要素をアクティブ状態からアクティブ前状態に戻す移行を生じさせることができる。ユーザ入力に基づいて、インタフェース要素は、ワークフロー定義１１０に従って、アクティブ状態の追加の層に移行し（例えば、「その他」を選択する）、アクティブ前状態に戻る（例えば、取消入力を選択する）、または、アクティブ後状態に進む（例えば、金額を選択する）ことができる。
【００３５】
図５Ｃは、アクティブ後状態の補充カード要素５２８を示す。アクティブ状態の間、ユーザは、２０ドルを選択した。ユーザが入力を提供した後、補充カード要素５２８は、アクティブ状態からアクティブ後状態に移行した。図示するように、アクティブ後状態の補充カード要素５２８の表示特性は、アクティブ状態の間の表示特性と異なる。アクティブ後状態では、補充カード要素５２８は、アクティブ状態の間受け取られたユーザ入力に少なくとも部分的に基づく情報５４２を表示することができる。例えば、この場合、補充カード・インタフェース要素５２８は、アクティブ前状態の「補充カード」から、ユーザが選択した特定の金額を示すアクティブ後状態の「補充金額：２０ドル」に変化している。これは、ユーザがインタフェース要素を再選択することなく以前の選択を決定することができるので、有利である。さらに、補充カード要素５２８がアクティブ状態からアクティブ後状態に移行するとき、補充カード要素５２８は焦点５２４から非焦点に移動した。
【００３６】
図６Ａ〜図６Ｇは、支払処理アプリケーション内の複数のアクティブ状態層を有するアプリケーション・ワークフロー・フレームワークの実行の他の例示的な実施例を示す。図６Ａでは、支払タイプ・インタフェース要素５３０がアクティブ前状態にある。
【００３７】
図６Ｂでは、支払タイプ要素５３０は、アクティブ前状態からアクティブ状態に移行する。アクティブ状態において、支払タイプ要素５３０は、インタフェース表示領域５２０内で実質的に焦点に位置決めされている。他のインタフェース要素は、支払タイプ要素５３０の位置およびサイズに対して移動する。この例では、支払タイプ・インタフェース要素５３０がアクティブであるとき、カード残高インタフェース要素５２６のみが見えている。他の要素は、インタフェース表示領域５２０を操作（例えば、スクロール）することによって見ることができる。いくつかの実施形態では、ワークフロー定義１１０は、インタフェース表示領域５２０内で静止したままの特定の要素または情報を定め、アクティブなインタフェース要素に関係なく表示することができる。これは、アクティブなインタフェース要素に関する文脈情報を提供するのに役立ちうる。いくつかの実施形態では、インタフェース要素が連結されることにより、指定された非アクティブのインタフェース要素が、特定のアクティブな要素と同時に表示可能になる。例えば、一実施形態では、補充金額は、特定の支払タイプをユーザが選択するのに役立つかまたは影響しうるので、補充金額要素５２８が、カード残高要素５２６の代わりに表示されてもよい。
【００３８】
支払タイプ要素５３０のアクティブ状態は、複数のアクティブ状態層を備える。図６Ｂは、ベース層または第１の層５４４を表示する。第１の層５４４の表示特性は、説明５４６を含み、説明５４６は、支払タイプ入力制御５４８に関する説明情報を提供することができる。支払タイプ入力制御５４８は、第三者支払オプション（例えば、ＰａｙＰａｌ（登録商標））、クレジットカードおよび他の支払方法を含む、支払いのための複数のオプションを備える。第１の層は、取消入力５５０も含む。
【００３９】
図６Ｃにおいて、クレジットカード入力が第１の層５４４のアプリケーションによって受け取られた後、アクティブ状態は、第１の層からクレジットカード支払層または第２の層５５２に移行する。第２の層５５２の表示特性は、複数のクレジットカード制御入力５５４を含み、複数のクレジットカード制御入力５５４は、ユーザのクレジットカードに関連付けられた情報（例えば、カード番号、失効日、カード所有者名）を受け取るように構成されている。図示するように、アクティブ状態は、１つまたは複数の層を備え、各層は、異なる表示特性および入力制御を提供することができる。アプリケーションは、現在のインタフェース表示画面から移行せずに、層間で移行することができる。
【００４０】
ユーザが情報を完了した後、ユーザは、確認５５２または取消５５０を選択することができる。取消入力５５０が選択される場合、アプリケーションは、ワークフロー定義１１０に従って、第２のページ５５２から第１のページ５４４に移行することができるであろう。いくつかの場合では、取消入力５５０は、ユーザを図６Ａに表示された状態へ戻すことができる。確認入力が受け取られると、次に、支払タイプ要素５３０は、ワークフロー定義１１０に従って、アクティブ状態からアクティブ後状態に移行する。ユーザ入力が提供された後、かつ、アクティブ後状態に移行する前、アプリケーションは、ユーザ入力に関連付けられた１つまたは複数の機能（例えば資金の確認またはワークフロー定義１１０に従う他の機能）を実行することができる。
【００４１】
図６Ｄは、アクティブ後状態の支払タイプ要素５３０を示す。図示するように、アクティブ後状態の支払タイプ要素５３０の表示特性は、アクティブ状態の間の表示特性と異なる。アクティブ後状態では、支払タイプ要素５３０は、アクティブ状態の間受け取られるユーザ入力に少なくとも部分的に基づく情報５５６を表示することができる。例えば、この場合、支払タイプ要素５３０は、アクティブ前状態の「支払タイプ」からアクティブ後状態の「ＶＩＳＡによる支払・・・１５８４」に変化している。アクティブ後状態に表示されるユーザ情報は、ワークフロー定義１１０に従って定められる。本実施形態では、ユーザは、クレジットカードに関する情報を提供し、表示情報５５６は、クレジットカードのタイプおよびクレジットカード番号の最後の４桁を表示する。他の実施形態では、ワークフロー定義１１０は、表示されるべき他の情報を定めることができるであろう。
【００４２】
図６Ｅは、アプリケーション１０６が支払タイプ・インタフェース要素５３０を再び選択するための入力を受け取り、支払タイプ要素５３０を、アクティブ後状態からアクティブ状態に移行させるときを示す。アクティブ状態では、第１の層５４４は、ユーザからの以前の入力に少なくとも部分的に基づく情報を示すように再び表示される。図示するように、以前に提供された情報は、要素に関連付けられた情報をリセットしたり、消去するのではなく、ユーザに表示されている。例えば、以前の支払情報に関する情報は、制御５４８内の第１の位置において、それが現在選択されたオプションであることを示す表示印５５８とともに表示される。入力制御５４４は、以前表示された他の利用できる支払オプションも表示する。
【００４３】
図６Ｆは、選択された第三者支払への入力を受け取った後のアプリケーションを示す。第三者支払オプション層またはアクティブ状態の第３の層５６０が表示されている。第３の層５６０の表示特性は、複数の第三者支払制御入力５６２を含み、複数の第三者支払制御入力５６２は、第三者支払口座に関連付けられた情報（例えば、電子メールおよびパスワード）を受け取るように構成されている。ユーザ入力が提供された後、アプリケーション１０６はユーザ入力に関連付けられた１つまたは複数の機能、例えばユーザのアカウントにログインすること、資金の確認またはワークフロー定義１１０に従う他の機能を実行することができる。ワークフロー定義１１０は、アクティブ状態内の１つまたは複数の機能を実行することもできる。例えば、電子メール・アドレスおよびパスワードが提供され、動作中のログが選択されるとき、ワークフロー定義１１０は、ユーザをアカウントにログインさせ、資金の利用可能性を検査する機能を実行することができる。いくつかの場合には、アプリケーション１０６は、インタフェース要素のためのアクティブ状態の実行を終了する前に、１つまたは複数の追加の層を提供してもよい。
【００４４】
図６Ｇは、アクティブ状態からアクティブ後状態への支払タイプ要素５３０の移行を示す。アクティブ後状態の表示情報５５６は、ユーザ入力の変化を説明（ユーザ入力の変化に適応）するために更新されている。表示情報５５６は、ここでは、ユーザがクレジットカードではなく、第三者支払プロバイダを用いて支払っていることを表示する。
【００４５】
図７は、アプリケーション・フレームワーク・ワークフロー処理ルーチンのための例示的なフロー図を示す。ワークフロー・フレームワーク１０８は、特定のワークフロー・ルーチンに整合するワークフロー定義１１０を有する。アプリケーション１０６は、アプリケーション内のワークフロー・ルーチンごとに特定のワークフロー定義１１０を有することができる。ワークフロー・フレームワーク１０８は、オペレーティング・システム・モジュール２０６の一部として実装されてもよく、コンピューティング・デバイス１０４上で実行されるアプリケーションまたはモジュールの一部として実装されてもよく、または、コンピューティング・デバイス上で実行されるアプリケーション１０６内に組み込まれてもよい。
【００４６】
ブロック７０２において、アプリケーション・ワークフロー・ルーチンのためのワークフロー定義１１０が取得され、ワークフロー定義１１０は、アプリケーション１０６内の複数のインタフェース要素のための実行状態を定める。インタフェース要素の少なくともサブセットのために、ワークフロー定義１１０は、アクティブ前状態、アクティブ状態およびアクティブ後状態を定める。いくつかの実施形態では、アプリケーション１０６に関連付けられたワークフロー定義１１０は、アプリケーション表示領域に関連付けられた焦点を定めることもできる。いくつかの実施形態では、焦点は、ワークフロー・フレームワーク１０８によって定められ、ワークフロー定義１１０は、インタフェース要素の位置を定義済み焦点に対して定めることができる。いくつかの実施形態では、ワークフロー・フレームワーク１０８は、履歴情報、ユーザ選択またはデフォルト値に基づいて、ワークフロー定義１１０を追加または修正することができる。例えば、ワークフロー定義１１０内の１つまたは複数の状態定義が失われている場合、ワークフロー・フレームワーク１０８は失われた状態定義を定めることができる。
【００４７】
ブロック７０４において、ワークフロー定義１１０は、インタフェース要素のためのアクティブ前状態を定める。アクティブ前状態のために、ワークフロー定義１１０は、インタフェース要素に関連付けられた１つまたは複数の表示特性を定める。表示特性は、アプリケーション表示領域内でインタフェース要素の外観を定めることができる。表示特性は、例えば、サイズ、形状、色、表示情報、例えばテキスト、アイコン、グラフィックスおよび／または他の表示情報を含むことができる。
【００４８】
ブロック７０６において、ワークフロー定義１１０は、インタフェース要素のためのアクティブ状態を定める。アクティブ状態のために、ワークフロー定義１１０は、インタフェース要素に関連付けられた１つまたは複数のアクティブ状態層を定めることができる。層ごとに、ワークフロー定義１１０は、インタフェース要素に関連付けられた１つまたは複数の表示特性を定めることができる。１つまたは複数の表示特性は、アクティブ前状態に関連付けられた表示特性とは異なることができる。表示特性は、アプリケーション表示領域内でインタフェース要素の外観を定めることができる。例えば、インタフェース要素は、アクティブ前状態と比較して、アクティブ状態のサイズを増加することができる。各層は、異なる表示特性を有することができる。いくつかの実施形態では、ベース層は、層のフォームファクタ（すなわち、サイズおよび形状）を定め、続く層は、定義済みフォームファクタ内で表示特性を定める。いくつかの実施形態では、非アクティブなインタフェース要素の表示特性を修正し、ユーザの注意をアクティブ要素に引き付けるまたは集中させることができる。例えば、非アクティブの要素の強度を低くする、グレーアウトする、または、他の変更を行うことができる。
【００４９】
ワークフロー定義１１０は、アクティブ状態の各層のための１つまたは複数の入力制御を定めることもできる。入力制御は、入力をアプリケーションに提供するためのインタフェースをユーザに提供する。入力制御は、例えば、ドロップ・ダウン・ボックス、テキスト・フィールド、スクロール・バー、スピニング入力、スクロール入力、水平バー、数値入力、英数字入力、または、ユーザが入力をアプリケーションに提供できる他の任意のタイプの入力を含むことができる。ワークフロー定義１１０は、アクティブ状態のユーザによって提供される入力に基づいて実行される１つまたは複数の機能またはサブルーチンを定めることもできる。
【００５０】
ブロック７０８において、ワークフロー定義１１０は、インタフェース要素のためのアクティブ後状態を定める。アクティブ後状態のために、ワークフロー定義１１０は、インタフェース要素に関連付けられた１つまたは複数の表示特性を定める。１つまたは複数の表示特性は、アクティブ状態に関連付けられた表示特性とは異なることができる。例えば、インタフェース要素は、アクティブ状態と比較してアクティブ後状態のサイズを減少することができる。アクティブ後状態のインタフェース要素は、アクティブ前状態の間と同一サイズであるように構成可能である。いくつかの実施形態では、アクティブ後状態は、アクティブ前状態と異なるフォームファクタを有することができる。表示特性は、アクティブ状態の間ユーザによって提供される入力に少なくとも部分的に基づき、インタフェース要素に情報を表示するように構成可能である。いくつかの実施形態では、インタフェース要素は、チェックマークＸ、または、インタフェース要素が完了し、さらなる入力を必要としないことを示す他の印を表示することができる。ブロック７１０において、アプリケーション・フレームワーク・ワークフロー処理ルーチンは終了する。
【００５１】
図８は、ワークフロー処理ルーチン８００のための例示的なフロー図を示す。ワークフロー処理ルーチン８００は、アプリケーション１０６内で実行可能である。ワークフロー・ルーチンは、ワークフロー・ルーチンを完了するために実行する必要がある複数のタスクを含むことができる。アプリケーション・ワークフロー・フレームワーク１０８は、アプリケーション１０６内でワークフロー・ルーチンを管理することができる。ワークフロー・フレームワーク１０８は、特定のワークフロー・ルーチンに整合するワークフロー定義１１０を有する。
【００５２】
ブロック８０２において、アプリケーション１０６は、特定のワークフロー・ルーチンのためのワークフロー定義１１０を取得する。上述したように、ワークフロー定義１１０は、複数のインタフェース要素のための少なくともアクティブ前状態、アクティブ状態およびアクティブ後状態を定める。図示するワークフロー定義ルーチンは、図７に関連付けられて記載されていたものである。
【００５３】
ブロック８０４において、アプリケーションは、インタフェース要素をインタフェース表示領域に表示させる。インタフェース要素は、インタフェース要素の現在の状態（例えば、アクティブ前状態またはアクティブ後状態）に従って、非アクティブ状態で表示される。アプリケーション１０６は、ワークフロー定義１１０に従って、インタフェース要素の表示をアクティブ状態表示に変化させる。
【００５４】
ブロック８０６において、アプリケーション１０６は、複数のインタフェース要素の１つを選択するための入力をユーザから受け取る。ブロック８０８において、アプリケーション１０６は、選択されたインタフェース要素をアクティブ状態に移行させる。アクティブ状態において、インタフェース要素は、インタフェース表示領域内の焦点に対して位置決めされ、インタフェース要素の表示特性は、ワークフロー定義１１０に従って変化する。アクティブなインタフェース要素は、入力データをユーザから受け取るように構成される１つまたは複数のユーザ制御を提供することができる。
【００５５】
ブロック８１０において、アプリケーションは、インタフェース要素によって提供される１つまたは複数の入力制御で入力データをユーザから受け取る。ブロック８１２において、アプリケーションは、受け取られた入力データに基づく機能、例えば金融情報の許可を実行することができる。いくつかの実施形態では、アプリケーション１０６は、サービス・プロバイダと通信し、機能、例えば銀行トランザクションを実行し、十分な資金の確認を受け取ることができる。機能が完了した後、インタフェース要素は、アクティブ状態からアクティブ後状態に移行することができる。
【００５６】
ブロック８１４において、アプリケーション１０６は、インタフェース要素をアクティブ状態からアクティブ後状態に移行させることができる。インタフェース要素もまた、焦点から非焦点に移行する。アプリケーション１０６は、ワークフロー定義１１０に従って、インタフェース要素の表示をアクティブ後状態表示に変化させる。アクティブ後インタフェースは、アクティブ状態の間受け取られたユーザ・データに少なくとも部分的に基づく情報を表示するように構成可能である。
【００５７】
ブロック８１６において、アプリケーション１０６は、ワークフロー・ルーチンが完了しているか否かを決定する。ワークフロー・ルーチンが完了している場合、ワークフロープロセスは、ブロック８１８において終了する。ワークフロー・ルーチンが終了すると、ユーザは、アプリケーション１０６内でリダイレクトされうる。例えば、ユーザは、異なるワークフロー・ルーチンが実施されるべきアプリケーションの他の部分にリダイレクトされうるであろう。いくつかの例では、処理ルーチンが終了するとき、アプリケーション１０６は終了することができる。ワークフロー・ルーチンが完了していない場合、方法は、ワークフロー・ルーチンの実施を継続するブロック８０４に戻る。
【００５８】
本願明細書に記載されている方法の全てを、１つまたは複数の汎用コンピュータまたはプロセッサによって実行されるソフトウェアコード・モジュールにおいて実施することができ、また、そのソフトウェアコード・モジュールを介して完全に自動化することができ、ソフトウェアコード・モジュールは、１つまたは複数の物理的演算器上の仮想マシンで動作することもできる。コード・モジュールを、任意のタイプのコンピュータ可読媒体または他のコンピュータ記憶装置に格納することができる。代替的に、いくつかまたはすべての方法を、専用のコンピュータ・ハードウェアにおいて実施することができる。さらに、本願明細書において参照される構成要素を、ハードウェア、ソフトウェア、ファームウェアまたはそれらの組み合わせで実装することができる。このように、モジュールまたはコンポーネントによって実行される動作に対する本願明細書の参照は、参照された動作を実行させるための、１つまたは複数の処理装置による実行可能命令の実行に関する。
【００５９】
他に具体的な記述がない限り、特に「〜できる」、「可能である」「〜できるであろう」、「〜かもしれない」または「〜してもよい」等の条件付き言語は、一般的に使用される文脈において、特定の実施形態が特定の特徴、要素および／またはステップを含むが、他の実施形態がそれらを含まないことであると理解されたい。それゆえ、そのような条件付き言語は、一般的に、特徴、要素および／またはステップが、１つまたは複数の実施形態にとって任意の形で必要とされるか、または、１つまたは複数の実施形態が、ユーザ入力またはユーザプロンプトを用いて、または、用いずに、それらの特徴、要素および／またはステップが、任意の特定の実施形態に含まれるか否か、または、任意の特定の実施形態において実行されるべきか否かを決定するためのロジックを含む必要があることを意味することは意図していない。
【００６０】
他に具体的な記述がない限り、用語「Ｘ、ＹおよびＺのうちの少なくとも１つ」等の接続的言語は、一般的に使用される文脈で、項目、術語等がＸ、ＹまたはＺのいずれかでよいことを意味していると理解されたい。それゆえ、そのような接続的言語は、一般的に、特定の実施形態が、Ｘのうちの少なくとも１つ、Ｙのうちの少なくとも１つ、および、Ｚのうちの少なくとも１つを必要とすることを意味することは意図していない。
【００６１】
本願明細書に記載した、および／または、添付の図面に図示したフローチャートにおける任意の方法の説明、要素またはブロックは、その方法における特定の論理的機能または要素を実装するための１つまたは複数の実行可能命令を含む、モジュール、セグメントまたはコードの一部を潜在的に表現するものとして理解されたい。代替的な実装形態は、本願明細書に記載した実施形態の範囲に含まれ、当業者に理解されるように含まれた機能性に応じて、要素または機能を削除してもよく、または、図示または説明した順序とは異なり、実質的に同時にまたは逆の順序で実行してもよい。
【００６２】
多くの変形および変更が上述の実施形態に対して可能であると強調されるべきであり、その要素は他の受け入れられる例に存在すると理解されたい。すべてのこのような修正および変更は、この開示の範囲内で本願明細書に含まれ、以下の請求項によって保護されることを意図している。
【図１】
2017514244.tif 000003
【図２】
2017514244.tif 000004
【図３Ａ】
2017514244.tif 000005
【図３Ｂ】
2017514244.tif 000006
【図３Ｃ】
2017514244.tif 000007
【図４Ａ】
2017514244.tif 000008
【図４Ｂ】
2017514244.tif 000009
【図５Ａ】
2017514244.tif 000010
【図５Ｂ】
2017514244.tif 000011
【図５Ｃ】
2017514244.tif 000012
【図６Ａ】
2017514244.tif 000013
【図６Ｂ】
2017514244.tif 000014
【図６Ｃ】
2017514244.tif 000015
【図６Ｄ】
2017514244.tif 000016
【図６Ｅ】
2017514244.tif 000017
【図６Ｆ】
2017514244.tif 000018
【図６Ｇ】
2017514244.tif 000019
【図７】
2017514244.tif 000020
【図８】
2017514244.tif 000021
【国際調査報告】
2017514244.tif 000022