(57)【要約】      （修正有）【課題】動的環境における静的内容を利用して、少なくとも１つの定義された機能性を提供する。【解決手段】静的内容および動的環境と関連付けられるべき少なくとも１つの機能を識別し、各識別された機能に対する少なくとも１つの状態３０を識別し、ページオブジェクト内の各識別された状態を定義し、ページオブジェクトが、ページオブジェクト内の出力テンプレートと関連付けられたページ状態および出力属性をも定義する。各識別された状態に対する出力テンプレートを作成し、各機能に対してコンピュータメモリにおいてプレゼンテーションページおよび論理オブジェクトを作成し、少なくとも１つのコンピュータ処理装置により実行されるべきエンジンを作成する。各エンジンが機能を表し、コンピュータメモリ内で定義された状態の中でデータトラフィックを導くために、対応するページオブジェクトを用いる。【選択図】図１
2013047947.tif 000002
【特許請求の範囲】
【請求項１】
動的環境における静的内容を利用して、少なくとも１つの定義された機能性を提供するためのコンピュータによる方法であって、前記方法が、
静的内容および動的環境と関連付けられるべき少なくとも１つの機能を識別することと、
各識別された機能に対する少なくとも１つの状態を識別することと、
コンピュータメモリにおいて、ページオブジェクト内の各識別された状態を定義することであって、ページオブジェクトが、コンピュータメモリ内において、ページオブジェクト内の出力テンプレートと関連付けられたページ状態および出力属性をも定義する、定義することと、
コンピュータメモリにおいて、各識別された状態に対する出力テンプレートを作成することと、
各機能に対してコンピュータメモリにおいてプレゼンテーションページおよび論理オブジェクトを作成することと、
少なくとも１つのコンピュータ処理装置により実行されるべきエンジンを作成することであって、各エンジンが機能を表し、エンジンが、コンピュータメモリ内で定義された状態の中でデータトラフィックを導くために、対応するページオブジェクトを用いるよう動作可能である、作成することと
を含む方法。
【請求項２】
エンジンを用いて、状態に基づき出力テンプレートにおける機能の結果を戻すことをさらに含む請求項１に記載のコンピュータによる方法。
【請求項３】
各識別された状態に対する出力テンプレートを作成することが、状態に対するすべての静的情報を保持するよう出力テンプレートを構成することを含む請求項１に記載のコンピュータによる方法。
【請求項４】
各識別された状態に対する出力テンプレートを作成することが、
作成された出力テンプレートを共有するよう識別された状態のうちの１つ以上を構成すること、および、
複数の作成された出力テンプレートを利用するよう識別された状態のうちの１つ以上を構成すること
のうちの少なくとも一方を含む請求項１に記載のコンピュータによる方法。
【請求項５】
各識別された状態に対する出力テンプレートを作成することが、ページオブジェクトを含むか、または、インポートするよう各出力テンプレートを構成することを含む請求項１に記載のコンピュータによる方法。
【請求項６】
各識別された状態に対する出力テンプレートを作成することが、出力テンプレートの状態を保つための出力属性を含むページオブジェクトのうちの１つを有する出力テンプレートを構成することを含む請求項１に記載のコンピュータによる方法。
【請求項７】
ページオブジェクトからの属性を用いて、出力テンプレートと関連付けられたプレゼンテーションページ内のアクティブな情報を書き込むことをさらに含む請求項６に記載のコンピュータによる方法。
【請求項８】
出力属性が、ユーザに対するプレゼンテーションのための動的出力を定義する請求項１に記載のコンピュータによる方法。
【請求項９】
プレゼンテーションページに必要な情報を収集し、かつ、
各対応する状態に対する対応するページオブジェクトへ制御をナビゲートする
ようエンジンを実行することをさらに含む請求項１に記載のコンピュータによる方法。
【請求項１０】
プレゼンテーションページを用いて、ページオブジェクトから派生した結果を提供し、かつ、論理オブジェクトから受信した結果に関する動的内容をページオブジェクトに提供することをさらに含む請求項１に記載のコンピュータによる方法。
【請求項１１】
サーバ、および、
前記サーバに通信可能に結合されている少なくとも１つのクライアント
を含むシステムであって、前記システムが、
ユーザ入力に基づいて、前記サーバ上にホスティングされている少なくとも１つの定義された機能を用いるよう前記クライアントからの要求を送信し、
前記サーバ内において、かつ、受信した送信に基づいて、前記サーバ内のページオブジェクトから派生している機能性プレゼンテーションを製造し、
サーバから、前記クライアントシステムに関連付けられたコンピュータディスプレイ上で表示するために、かつ、前記サーバ内の出力テンプレートを介して、機能性プレゼンテーションを含むページオブジェクトを出力する
よう動作可能であって、出力テンプレートが、各ページオブジェクトに対する静的情報を定義し、前記サーバ内の機能性エンジンが、ページオブジェクト内の各ページに対する機能性の各々を定義するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の分野は、概して、独立型アプリケーションと対照的なインターネット上のアプリケーションのホスティングに関し、具体的には、状態ベースのウェブフレームワークアーキテクチャのための方法およびシステムに関する。
【背景技術】
【０００２】
インターネットが受け継いでいる特質により、その動的な設定において静的な情報を提示することが困難となっている。一般に、インターネットは、ユーザがデータの収集および処理を行う中心的位置を提供するので、従来の独立型アプリケーションに対して数多くの利点を有するプラットフォームである。しかしながら、インターネットに関する１つの問題は、動的でありすぎて、静的なアプリケーションを作成する際に最高の価値を提示しないということである。
【０００３】
インターネットがもたらす恩恵のすべてに基づいてインターネットの使用が奨励されている一方で、開発者は、あるアプリケーションに対してはあまり適していないそのフレームワークに限定されている。例えば、単純な計算機アプリケーションは、現在のところ独立型のアプリケーションとしてもっともよく実施されている。というのも、その機能性が、ワールドワイドウェブの提供するフレームワーク内で活用できないからである。
【０００４】
計算機アプリケーションは、単純な例であるが、ウェブが、計算機といった静的なアプリケーションのための良好なアーキテクチャを提供していないという点を示している。ウェブのアーキテクチャが静的なアプリケーションのための最適なアーキテクチャを提供していないその他の例としては、コントロールパネル、メンテナンスディスプレイおよび遠隔制御を挙げることができる。その結果、たいていの開発者は、静的なアプリケーションの開発に頭を悩ませる際に直面する問題の種類に取り組もうとしているときに見込みある解決法としてのインターネットを見落としている。
【０００５】
一般的に、既存のアーキテクチャは、インターネットの動的特質を妨げるというよりむしろ利用している。その他の既存のアーキテクチャは、あまりよく定義されておらず、この特定の問題には対応していない。その代わりに、それらアーキテクチャは、インターネットが受け継いでいる特質に焦点を当てて、そのフレームワーク内で機能することにより、問題に明確に対応できずに煩雑かつ散らかったコードにつながることがよくある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
アーキテクチャ自体に関して、実際のところ既存の解決法は存在しない。多くは、実際のアーキテクチャではなく、むしろ、ウェブフレームワーク内で偶然機能している単純な設計である。一般に、開発者は、静的アプリケーションの展開方法としてインターネットを用いることはない。しかしながら、このアプローチは、インターネットがもたらす明らかな利点が魅力を増すにつれて、変化する可能性がある。コントロールパネルとしてウェブページを表示するためにウェブブラウザを用いることを想像するのは理にかなっている。そのような表現は、エンドユーザに存在を意識させないだろう。
【課題を解決するための手段】
【０００７】
一側面において、動的環境における静的内容を利用して、少なくとも１つの定義された機能性を提供するためのコンピュータによる方法を提供する。該方法は、静的内容および動的環境と関連付けられるべき少なくとも１つの機能を識別することと、各識別された機能に対する少なくとも１つの状態を識別することと、コンピュータメモリにおいて、ページオブジェクト内の各識別された状態を定義することであって、ページオブジェクトが、コンピュータメモリ内において、ページオブジェクト内の出力テンプレートと関連付けられたページ状態および出力属性をも定義する、定義することと、コンピュータメモリにおいて、各識別された状態に対する出力テンプレートを作成することと、各機能に対してコンピュータメモリにおいてプレゼンテーションページおよび論理オブジェクトを作成することと、少なくとも１つのコンピュータ処理装置により実行されるべきエンジンを作成することであって、各エンジンが機能を表し、エンジンが、コンピュータメモリ内で定義された状態の中でデータトラフィックを導くために、対応するページオブジェクトを用いるよう動作可能である、作成することとを含む。
【０００８】
別の側面において、サーバ、および、サーバに通信可能に結合されている少なくとも１つのクライアントを含むシステムを提供する。該システムは、ユーザ入力に基づいて、サーバ上にホスティングされている少なくとも１つの定義された機能を用いるようクライアントからの要求を送信し、サーバ内において、かつ、受信した送信に基づいて、サーバ内のページオブジェクトから派生している機能性プレゼンテーションを製造し、サーバから、クライアントシステムに関連付けられたコンピュータディスプレイ上で表示するために、かつ、サーバ内の出力テンプレートを介して、機能性プレゼンテーションを含むページオブジェクトを出力するよう動作可能であって、出力テンプレートは、各ページオブジェクトに対する静的情報を定義し、前記サーバ内の機能性エンジンは、ページオブジェクト内の各ページに対する機能性の各々を定義する。
【０００９】
システムに対してさらに、サーバ上で実行されている機能性論理は、ページオブジェクト内の機能性の各々についての結果を計算するよう構成されていてもよい。ページオブジェクトは、状態を定義し、各ページに対する属性を出力してもよい。エンジンは、状態に基づいて出力テンプレートにおける機能の結果を返すのに用いられてもよい。サーバは、各識別された状態に対する出力テンプレートを作成し、状態に対するすべての静的情報を保持するよう出力テンプレートを構成するようプログラムされていてもよく、かつ、複数の作成された出力テンプレートを利用するための１つ以上の識別された状態として構成されていてもよい。サーバはまた、各識別された状態に対する出力テンプレートを作成するようプログラムされていてもよく、かつ、各出力テンプレートは、ページオブジェクトを含むか、または、インポートするようプログラムされていてもよい。追加の実施例において、サーバは、機能性エンジンを実行して、プレゼンテーションページに必要な情報を収集し、かつ、各対応する状態に対する対応するページオブジェクトへ制御をナビゲートするようプログラムされていてもよい。また、サーバは、ページオブジェクトから導かれた結果を提供し、かつ、論理オブジェクトから受信した結果に関する動的内容をページオブジェクトに提供するためにプレゼンテーションページを用いるようプログラムされていてもよい。さらに、システム機能性プレゼンテーションは、ページオブジェクト内の機能性の各々に対する出力プレゼンテーションを定義してもよい。システムはまた、出力テンプレートの状態を保つための出力属性を含むページオブジェクトのうちの１つを有する出力テンプレートを構成するようサーバをプログラムし、かつ、ページオブジェクトからの属性を用いて、出力テンプレートに関連付けられたプレゼンテーションページ内のアクティブな情報を書き込むことにより、各識別された状態に対する出力テンプレートを作成してもよい。
【００１０】
取り上げた特徴、機能および利点は、さまざまな実施形態において独立して達成可能であり、または、以下の説明および図面を参照してさらなる詳細が理解可能であるさらに他の実施形態において組み合わせてもよい。
【図面の簡単な説明】
【００１１】
【図１】図１は、アーキテクチャ内で動作可能なサーバによる機能を示すデータフロー図である。
【図２】図２は、アーキテクチャクラス図のブロック図である。
【図３】図３は、図２のアーキテクチャクラスを用いて作成された計算機アプリケーションの図である。
【図４】図４は、計算機アプリケーションの図を用いたアーキテクチャのレイアウト図である。
【図５】図５は、計算機アプリケーションにより示された、状態の使用を例示するアーキテクチャフロー図である。
【図６】図６は、図１、図２、図４および図５で描写したアーキテクチャにおいて利用されるエンジン、テンプレートおよびオブジェクトの図である。
【図７】図７は、説明したアーキテクチャの実施形態の一使用例を概説するフローチャートである。
【図８】図８は、データ処理システムの図である。
【図９】図９は、サーバアーキテクチャの単純化したブロック図である。
【発明を実施するための形態】
【００１２】
説明する実施形態は、状態の概念を用いることによりインターネットの動的な特質をより静的な環境へと転換するアーキテクチャに関する。その結果、開発者は、独立型アプリケーションの静的な特質を失うことなくインターネットが受け継いでいる恩恵を保つアーキテクチャを与えられる。上で触れたように、インターネットが受け継いでいる特質により、その動的な設定において静的な情報を提示することが困難となっている。ただし、インターネットは、ユーザがデータの収集および処理を行う中心的位置を提供するので、従来の独立型アプリケーションに対して数多くの利点を有するプラットフォームである。インターネットに関する問題の１つは、動的でありすぎて、静的なアプリケーションを作成する際に最高の価値を提示しないということである。
【００１３】
ここで用いられているように、（英文における）単数形で記載され、かつ、不定冠詞「ａ」または「ａｎ」が付されている構成要素または工程は、複数の構成要素または工程を除外しないものとして理解されねばならない。ただし、そのような除外が明示的に記載されている場合は除くものとする。さらに、本発明の「一実施形態」または「例示的実施形態」への言及は、記載されている特徴をも組み込む追加の実施形態の存在を除外するものとして解釈されることを意図していない。
【００１４】
種々の有利な実施形態の説明は、例示および説明の目的で提示したものであり、かつ、網羅的であったり、開示された形式の実施形態に限定されたりすることは意図していない。多くの変更および変形例が、当業者にとって明らかであろう。さらに、種々の有利な実施形態は、他の有利な実施形態と比較して異なる利点を提供するかもしれない。選択された一または複数の実施形態は、実施形態の原理、実際の適用をもっともよく説明するため、かつ、考慮された特定の使用に適したものとしてさまざまな変更を有するさまざまな実施形態に対する開示を当該技術分野における通常の技術を有する他者が理解できるようにするために選ばれ、説明されている。
【００１５】
以下の段落において説明する実施形態は、動的環境におけるアプリケーションコーディングをかなり単純化する。というのも、開発者は、機能性の各々の中の各状態の結果を定義するだけでよいからである。アーキテクチャは、状態の概念を用いることによりこれを支持する。状態は、その外部環境に関わらず問題領域の静的表現を提供する。
【００１６】
インターネットベースの状態の使用を通じて生じた利点を以下に列挙する。例えば、問題は、状態の使用を通じて対処される。状態の使用は、アプリケーションの設計を構築する綿密なプロセスを提供する。状態の使用は、インターネット用に必ずしも設計されてはいない問題領域とともにうまく機能する。状態の使用は、プログラム言語から独立しており、明確に定義され、かつ、容易に追従可能である。インターネットが受け継いでいる利点が利用され、かつ、状態の使用は、内容が明確で、構造化され、かつ、一貫性があるので実施および展開しやすい。プレゼンテーションおよび論理は、あらゆる静的アプリケーションに対して優れた適性を提供するプレゼンテーションおよびナビゲーションに対して、強力な制御により分割される。こうして、本実施形態は、広範な使用可能性を有する。
【００１７】
たいていの開発者は、従来の独立型で静的なアプリケーションに沿ったアプリケーションの開発に直面したときに見込みある解決法としてのインターネットを見落としている。典型的に、既存のアーキテクチャは、インターネットの動的特質を妨げるというよりむしろ利用している。一般に、開発者は、静的アプリケーションの展開方法としてインターネットを用いることはない。しかしながら、このアプローチは、インターネットがもたらす明らかな利点が魅力を増すにつれて、変化する可能性がある。コントロールパネルとしてウェブページを表示するためにウェブブラウザを用いることを想像するのは理にかなっている。そのような表現は、エンドユーザに存在を意識させないだろう。
【００１８】
図１は、以下の段落において描写するアーキテクチャ内で動作可能なサーバによる機能を示すデータフロー図１０である。ここでもさらに説明するように、コンピュータ１４からのクライアント要求１２は、サーバ１８内のウェブサーバ１６へ送信される。該要求は、要求の特質がアーキテクチャの機能性に関するので該特質に依存してサーバ１８内で実行されている機能性エンジン２０、２２、２４へと送られる。機能性エンジンは、クライアントから受信した要求と相関する状態３０を用い、かつ、機能性プレゼンテーション３２の生成を開始する。該機能性プレゼンテーション３２は、最後には、ページオブジェクト３６内の出力テンプレート３４を通じてクライアント応答４０としてクライアントコンピュータ１４へ戻るよう転送される。機能性プレゼンテーション３２は、ページオブジェクト３６から派生し、かつ、ページオブジェクト３６内の出力属性を書き込む機能性論理５０を含んでもよい。機能性論理５０は、特定の論理５２を利用して、コマンドをシステム６０へと送ることにより、動的な出力、例えば、計算機の実施例に関して説明する表示を計算する。
【００１９】
図２は、独立型アプリケーションの静的な特質を失うことなくアーキテクチャがインターネットが受け継いでいる恩恵を保っている、開発者に与えられてもよいアーキテクチャクラス図１００のブロック図である。プレゼンテーションクラス１０２は、アプリケーションにルックアンドフィールを与えるとともに、ことによると、１つ以上の論理クラス１０４を含む。一実施例において、論理クラス１０４は、演算機能を含む。プレゼンテーションクラス１０２はまた、ページオブジェクトクラス１０６から拡張しており、任意に状態、例えば、ここにさらに説明するように出力テンプレート１０８を介してユーザへ提示される表示を定義している。
【００２０】
機能性エンジンクラス１２０は、図示のように１つ以上のプレゼンテーションクラス１０２を含み、これにより、参照を提供している。機能性エンジンクラス１２０は、サーバクラス１２２から拡張しており、該サーバクラス１２２は、インターネットに対するアプリケーション用のインタフェースを提供している。
【００２１】
図３は、静的構成要素および動的構成要素、とりわけ、計算機アプリケーション２００に関連付けられた静的構成要素および動的構成要素を定義するための説明例を提供する一例である。計算機アプリケーション内のすべての構成要素は、静的状態か動的状態のいずれかを有するものとして特徴付けることができる。例えば、計算機結果フィールド２０２は、動的構成要素の一例であり、計算機タイトルフィールド２０４は、静的構成要素の一例であり、かつ、計算機キーパッド２０６は、静的構成要素の一例である。
【００２２】
図４は、計算機アプリケーションを一例として用いるさらなる説明を提供するアーキテクチャレイアウト図３００である。クライアント３０２は、ウェブサーバ３０４に要求を出す。該要求は、機能性エンジン３０８へ送られ、該機能性エンジン３０８は、何らかの機能性論理３１４を含む可能性のある、ページオブジェクト３１０から派生している機能性プレゼンテーション３１２を生成する。機能性プレゼンテーション３１２を含むページオブジェクト３１０は、出力テンプレート３０６を介してクライアントへ戻される。出力テンプレート３０６は、示されているように各ページに対する静的情報、例えば、数字キーパッド上の数字を定義する。機能性エンジン３０８は、示されているように各ページに対する機能性の各々、例えば、単純な計算機上の演算子（＋、−、＊、／）を定義する。ページオブジェクト３１０は、示されているように各ページに対する状態および出力属性を定義する。機能性プレゼンテーション３１２は、示されているように機能性の各々に対する出力プレゼンテーション、例えば、加算機能から結果として得られる可能性のある視覚的プレゼンテーションを定義する。機能性論理３１４は、機能性の各々に対する結果を計算する。
【００２３】
図５は、計算機アプリケーションを一例として用いるさらなる説明を提供する状態の使用を例示するアーキテクチャフロー図４００である。ユーザは、等式の第１オペランドを表す入力「２」を書き込み、状態は、「表示」４０２に設定される。次いで、ユーザは、等式の第２オペランドを表す入力「２」を再度書き込み、状態は、「表示」４０２に再度設定される。ユーザは、演算「＋」記号のような機能を選択し、状態は、「表示」４０２から「待機」４０４へと変化する。システムは、回答および表示結果により応答し、ここで、状態は、「待機」４０４から「結果」４０６へ変化する。図５は、本アーキテクチャ内で状態をどのように用いることができるかの一例を表している。各状態、すなわち、表示、待機および結果は、クライアントの要求と相関している。
【００２４】
図６は、上記を達成するアーキテクチャエンジン、テンプレートおよびオブジェクトの図５００である。例えば、各機能性エンジン５０２は、各対応する状態、例えば、表示、待機および結果についてプレゼンテーションページおよびナビゲーションを含む。タスクを行うよう指示されると、エンジン５０２は、その状態に基づいて出力テンプレート５０４における該タスクの結果を返す。出力テンプレート５０４は、各状態に対して存在可能であり、かつ、その状態に対する静的情報のすべてを保持する。状態は、２つ以上の出力テンプレート５０４を共有するか、または、有していてもよく、これにより柔軟性が得られることに注目することも重要である。アーキテクチャは、出力テンプレート５０４を用いて、静的情報を保持する。計算機の実施例において、この情報は、ボタン、スクリーンレイアウトおよびいくつかの静的テキストを含む。各出力テンプレートはまた、ページオブジェクト５０６を含むか、または、インポートする。
【００２５】
出力テンプレート５０４内において、ページオブジェクト５０６は、機能性プレゼンテーション５０８を行う出力属性を含み、その状態をも保持する。出力テンプレート５０４は、ページオブジェクト５０６からの属性を用いて、そのページ内のアクティブな情報を書き込む。計算機にとって、これは、その結果スクリーン内に表示される情報であろう。これはまた、ある演算に対しては存在するかもしれないが、他の演算に対しては存在しないタイトルおよび機能をも含みうる。ページオブジェクト５０６は、状態および出力属性を定義する。状態と出力属性との両方がすべてのページに共通であり、このことは、例えば、コントロールパネルのようにすべてのページが同じに見えることが期待されるであろう静的アプリケーションにとって道理にかなう。
【００２６】
状態は、アプリケーションが生成することのできるすべての条件（または状態）を表す。計算機について、上に説明したように、１つの特定の実施形態において３つの状態：表示、待機および結果が存在する。
【００２７】
ページオブジェクト５０６はまた、出力属性５０７を含む。これらの属性は、ユーザが見えると期待している動的出力を定義する。計算機の実施例において、出力属性５０７は、計算結果、現在の演算およびタイトルを含みうる。
【００２８】
説明したアーキテクチャは、機能性の各々をエンジン５０２に分割する。これらのエンジン５０２は、典型的に親クラスからこの挙動を拡張することにより、ウェブベースの応答および要求（ｈｔｔｐ）を制御する。各エンジン５０２は、１つ以上のプレゼンテーションページ５０８を含む。要求を用いて、エンジン５０２は、プレゼンテーションページに必要な情報を収集し、正常な状態へナビゲートすることによりこれをクライアントへ戻す。計算機の実施例において、機能性エンジンは、加算、減算、乗算および除算を表すだろう。
【００２９】
機能性プレゼンテーションページ５０８は、結果を提供する。機能性プレゼンテーションページ５０８は、ページオブジェクト５０６から導き出され、かつ、エンジン５０２内ではなく各対応するプレゼンテーションページ内で起こるプレゼンテーション論理から戻された結果に関する動的内容をページオブジェクト５０６に提供する。機能性の各々に対して、機能性プレゼンテーションページ５０８が存在する。各プレゼンテーションページ５０８は、ページオブジェクト５０６の挙動を拡張し、かつ、ゼロまたはそれより多くの機能性論理オブジェクト５１２を含むことができる。機能性プレゼンテーションページ５０８の主要な目的は、機能性の各状態に必要とされる動的プレゼンテーションを生成することである。機能性プレゼンテーションページ５０８は、論理オブジェクトを用いて、ページオブジェクトから拡張される各属性を書き込むことによりこれを達成可能である。例えば、計算機により、「加算」プレゼンテーションページオブジェクトは、「加算」論理オブジェクトを用いて、数字を加算し、結果を計算結果フィールドに出すというタスクを完了するだろう。それらのタスクを完了すると、機能性プレゼンテーションページ５０８は、エンジン５０２へ制御を戻し、出力テンプレート内において機能性プレゼンテーションページ５０６が派生しているページオブジェクト５０６を通じて結果を渡す。
【００３０】
機能性の各々に対して、機能性論理オブジェクト５１２が存在する。これらのオブジェクト５１２は、各状態をカバーする機能性の各々に対して論理を制御する。これらの結果が（ウェブ）ページ上に現れるだろうという事実以外は、これらオブジェクトにおけるプレゼンテーションの観念は存在しない。
【００３１】
説明したアーキテクチャの実施形態の使用に関連して、典型的な使用を以下の段落において概説し、かつ、図７のフローチャート６００において説明する。初めに、問題領域、例えば、単純な計算機を識別する６０２。次いで、問題領域がそのようなアーキテクチャに対して良好な適性があるか否かを判定する６０４。ここに説明する実施例において、単純な計算機がこのアーキテクチャに対して良好な適性を有する。状態のほとんどない静的アプリケーションがこのアーキテクチャに対して良好な適性を有する。
【００３２】
機能性を識別する６０６。単純な計算機の実施例において、これは、加算、減算、乗算および除算であろう。機能性の各々に対して状態を識別する６０８。典型的に、機能は、その状態が表示、待機および結果である単純な計算機の場合と同様に、状態を共有する。上で識別された状態を定義するページオブジェクトを作成する６１０。このページオブジェクトはまた、例えばタイトルのような、その出力と関連付けられた典型的なページ出力属性をも定義する。計算機の実施例に対して、それは、たいていの計算機において見られる結果ウィンドウを表すであろう計算結果を単に含むだろう。必要に応じて、各状態に対して出力テンプレートを作成する６１２が、必ずしも一対一のマッピングでなくともよい。計算機の実施例は、表示、待機および結果に対する出力が同じに見えるであろうから、１つしかテンプレートを含まない。
【００３３】
機能性の各々に対してプレゼンテーションページおよび論理オブジェクトを作成する６１４。機能性プレゼンテーションページは、ページオブジェクトを拡張し、かつ、機能性論理オブジェクトを含むことができる。機能性プレゼンテーションページは、機能性の各々に対してプレゼンテーションを制御し、各状態をカバーする。機能性論理オブジェクトは、機能性の各々に対して論理を制御し、各状態をカバーする。
【００３４】
機能性の各々を表すためにエンジンを作成する６１６。説明しているアーキテクチャは、ウェブフレームワーク内で動作するので、これらのエンジンは、ウェブサーバ上で（典型的には、サーブレットまたはウェブアプリケーションとして）要求および応答を制御する。各エンジンは、対応する機能性プレゼンテーションページを用い、かつ、各状態の中でトラフィックを誘導する。これらのエンジンは、機能性や構成要素論理ではなく、ナビゲーションおよびナビゲーション論理のみを制御する。
【００３５】
ここに説明するアーキテクチャは、状態の概念を用いて、各機能タスクをナビゲートする。機能タスクは、機能性プレゼンテーションおよびその状態という２つの構成要素から構成されている。アーキテクチャは、状態を用いて、プレゼンテーションにそのタスクを遂行するよう導く。下に示す表１において、「ｐａｇｅ」（注：「Ｐａｇｅ」ではない）は、プレゼンテーションオブジェクトを表す。本実施例において、「ｐａｇｅ」は、表示、待機および結果という３つの状態を有する。
【００３６】
表１―機能タスクのサンプルコード
2013047947.tif 000003
【００３７】
機能性プレゼンテーションは、ページオブジェクトから拡張するか、または、派生する。ページオブジェクトは、クライアントへ提示が必要な情報を保持する容器として作用する。機能性プレゼンテーションの目的は、クライアントの要求に属するのでこの情報を書き込むことである。下に示す表２は、ユーザへ提示が必要な情報として「ｔｉｔｌｅ（タイトル）」および「ｍａｉｎ  ｃｏｎｔｅｎｔ（主な内容）」を例示している。
【００３８】
表２―ページオブジェクトのサンプルコード
2013047947.tif 000004
【００３９】
機能性プレゼンテーションは、各タスクの遂行に要する機能性論理を含むことができる。下に示す表３において、「ｌｏｇｉｃ」は、結果を示すためにデータのリフレッシュを行う際の論理オブジェクトを表す。
【００４０】
表３―機能性論理を有する機能性プレゼンテーションのサンプルコード
2013047947.tif 000005
【００４１】
一旦、機能性プレゼンテーションがそのタスクを完了すると、出力は、ページオブジェクト内に保存され、該ページオブジェクトは、出力テンプレート内に収容される。各状態は、各タスクのための機能性プレゼンテーションを保持するページオブジェクトを含む自身の出力テンプレートを有することができる。表１〜表３において示した実施例について、出力テンプレートは、ｄｉｓｐｌａｙ．ｊｓｐ、ｗａｉｔ．ｊｓｐおよびｒｅｓｕｌｔｓ．ｊｓｐであろう。ページオブジェクトに加えて、これらのテンプレートはまた、各対応する状態に対して静的プレゼンテーションのすべてを保持する。下に示す表４は、表示状態用のサンプル出力テンプレートがどのように見える可能性があるかを例示している。
【００４２】
表４―出力テンプレートのサンプルコード
2013047947.tif 000006
【００４３】
一実施形態において、ここに説明する方法、システムおよびコンピュータ読み取り可能な媒体の技術的効果は、（ａ）静的内容および動的環境と関連付けられるべき少なくとも１つの機能を識別すること、（ｂ）各識別された機能に対する少なくとも１つの状態を識別すること、（ｃ）コンピュータメモリにおいて、ページオブジェクト内の各識別された状態を定義することであって、ページオブジェクトが、コンピュータメモリ内で、ページオブジェクトを含む出力テンプレートと関連付けられたページ状態および出力属性をも定義する、定義すること、（ｄ）コンピュータメモリにおいて、各識別された状態に対する出力テンプレートを作成すること、（ｅ）各機能に対してコンピュータメモリにおいてプレゼンテーションページおよび論理オブジェクトを作成すること、および、（ｆ）少なくとも１つのコンピュータ処理装置により実行されるべきエンジンを作成することであって、各エンジンが機能を表し、エンジンが対応するページオブジェクトを用いて、コンピュータメモリ内の定義された状態の中でデータトラフィックを導くよう動作可能である、作成することのうちの少なくとも１つを含む。
【００４４】
ここで図８に注目して、ある例示的実施形態に係る、ここに説明したアーキテクチャが実行される可能性のあるデータ処理システムの図を描写する。本例示的実施例において、データ処理システム７００は、通信機構７０２を含み、該通信機構７０２は、プロセッサユニット７０４、メモリ７０６、固定記憶域７０８、通信ユニット７１０、入出力（Ｉ／Ｏ）ユニット７１２および表示部７１４の間の通信を提供する。
【００４５】
プロセッサユニット７０４は、メモリ７０６内に読み込まれてもよいソフトウェア用の命令を実行する役割を果たす。プロセッサユニット７０４は、特定の実施構成によって、１つ以上のプロセッサの組であっても、マルチプロセッサコアであってもよい。さらに、プロセッサユニット７０４は、単一のチップ上に主プロセッサが副プロセッサとともに存在する１つ以上の異種プロセッサシステムを用いて実施可能である。別の説明例として、プロセッサユニット７０４は、同種の複数のプロセッサを含む対称型マルチプロセッサシステムであってもよい。
【００４６】
メモリ７０６および固定記憶域７０８は、記憶装置の一例である。記憶装置は、一時的かつ／または永久的のいずれかで情報を保存することができるあらゆるハードウェアである。これらの実施例において、メモリ７０６は、例えば限定はされないが、ランダムアクセスメモリまたはその他あらゆる適切な揮発性もしくは不揮発性記憶装置であってもよい。固定記憶域７０８は、特定の実施構成によって、さまざまな形態を取ってもよい。例えば限定はされないが、固定記憶域７０８は、１つまたはそれ以上の構成要素または装置を含んでもよい。例えば、固定記憶域７０８は、ハードドライブ、フラッシュメモリ、書き換え可能な光学ディスク、書き換え可能な磁気テープ、または、上記の何らかの組み合わせであってもよい。固定記憶域７０８により用いられる媒体もまた、着脱可能であってもよい。例えば限定はされないが、固定記憶域７０８用に着脱可能なハードドライブを用いてもよい。
【００４７】
これらの実施例において、通信ユニット７１０は、その他のデータ処理システムまたは装置との通信を提供する。これらの実施例において、通信ユニット７１０は、ネットワークインタフェースカードである。通信ユニット７１０は、物理的通信回線と無線通信回線とのいずれかまたは両方の使用により通信を提供してもよい。
【００４８】
入出力ユニット７１２は、データ処理システム７００と接続可能なその他の装置に対してデータを入力および出力可能とする。例えば限定はされないが、入出力ユニット７１２は、キーボードおよびマウスを介するユーザ入力に対する接続を提供してもよい。さらに、入出力ユニット７１２は、プリンタへの出力を送信してもよい。表示部７１４は、ユーザに対する情報を表示する機構を提供する。
【００４９】
オペレーティングシステムおよびアプリケーションまたはプログラムに対する命令は、固定記憶域７０８上に位置している。これらの命令は、メモリ７０６内に読み込まれて、プロセッサユニット７０４により実行されてもよい。種々の実施形態のプロセスは、メモリ７０６のようなメモリ内に位置していてもよいコンピュータにより実行される命令を用いてプロセッサユニット７０４により行われてもよい。これらの命令は、プロセッサユニット７０４内のプロセッサにより読取りおよび実行可能なプログラムコード、コンピュータ使用可能なプログラムコードまたはコンピュータ読取り可能なプログラムコードと呼ばれる。種々の実施形態におけるプログラムコードは、メモリ７０６または固定記憶域７０８といった種々の物理的または有形のコンピュータ読み取り可能な媒体上で実現されてもよい。
【００５０】
プログラムコード７１６は、選択的に着脱可能で、かつ、プロセッサユニット７０４による実行のためにデータ処理システム７００上に読み込まれたり、これに転送されてもよいコンピュータ読み取り可能な媒体７１８上で機能的な形態で位置している。プログラムコード７１６およびコンピュータ読み取り可能な媒体７１８は、これらの実施例においてコンピュータプログラム製品７２０を形成する。一例において、コンピュータ読み取り可能な媒体７１８は、例えば、固定記憶域７０８の一部であるドライブまたはその他の装置内へ挿入または設置されて、固定記憶域７０８の一部であるハードドライブのような記憶装置上へ転送される光学または磁気ディスクといった有形の形態であってもよい。有形の形態において、コンピュータ読み取り可能な媒体７１８はまた、データ処理システム７００と接続されているハードドライブ、サムドライブまたはフラッシュメモリといった固定記憶域の形態を取ってもよい。コンピュータ読み取り可能な媒体７１８の有形の形態はまた、コンピュータ記録可能な記憶媒体とも呼ばれる。いくつかの場合において、コンピュータ読み取り可能な媒体７１８は、取り外しできないこともある。
【００５１】
あるいは、プログラムコード７１６は、通信ユニット７１０への通信回線を介してかつ／または入出力ユニット７１２への接続を介してコンピュータ読み取り可能な媒体７１８からデータ処理システム７００へ転送されてもよい。通信回線および／または接続は、本説明例において、物理的なものであっても、無線であってもよい。コンピュータ読み取り可能な媒体はまた、プログラムコードを含む通信回線または無線伝送といった無形の媒体の形態を取ってもよい。
【００５２】
いくつかの例示的実施形態において、プログラムコード７１６は、別の装置またはデータ処理システムから固定記憶域７０８へのネットワークによりダウンロードされて、データ処理システム７００内で用いられてもよい。例えば、サーバデータ処理システムにおけるコンピュータ読み取り可能な記憶媒体に保存されたプログラムコードは、サーバからデータ処理システム７００へネットワークによりダウンロードされてもよい。プログラムコード７１６を提供するデータ処理システムは、サーバコンピュータ、クライアントコンピュータまたはプログラムコード７１６を保存および伝送可能なその他何らかの装置であってもよい。
【００５３】
データ処理システム７００に対して例示された種々の構成要素は、種々の実施形態が実施可能な手法に対するアーキテクチャの限定を提供することを意図しているのではない。種々の例示的実施形態は、データ処理システム７００に対して例示された構成要素に加えた、または、これに代えた構成要素を含むデータ処理システムにおいて実施されてもよい。図７に示した他の構成要素は、示されている例示的実施例から変形させることができる。
【００５４】
一実施例として、データ処理システム７００における記憶装置は、データを保存可能なあらゆるハードウェア装置である。メモリ７０６、固定記憶域７０８およびコンピュータ読み取り可能な媒体７１８は、有形の記憶装置の一例である。
【００５５】
別の実施例において、バスシステムは、通信機構７０２の実施に用いられてもよく、かつ、システムバスまたは入出力バスといった１つ以上のバスから構成されていてもよい。もちろん、バスシステムは、バスシステムに取り付けられている種々の構成要素または装置間のデータの転送を可能とするあらゆる適切な種類のアーキテクチャを用いて実施されてもよい。また、通信ユニットは、モデムまたはネットワークアダプタといったデータの送受信に用いられる１つ以上の装置を含んでもよい。さらに、メモリは、例えば限定はされないが、メモリ７０６、または、通信機構７０２内に存在してもよいインタフェースおよびメモリコントローラハブにおいて見られるようなキャッシュであってもよい。
【００５６】
図９は、本発明の一実施形態に係る例示的システム８００の単純化したブロック図である。一実施形態において、システム８００は、特別なまたはカスタマイズされた発行者―小売業者関係を実施するために用いられる支払いカードシステムである。別の実施形態において、システム８００は、支払い処理に適用される宣伝コードを入力するためにアカウント保持者により利用可能な支払いカードシステムである。
【００５７】
具体的には、例示的実施形態において、システム８００は、サーバシステム８１２と、サーバシステム８１２に接続されている、クライアントシステム８１４とも呼ばれる複数のクライアントサブシステムとを含む。一実施形態において、クライアントシステム８１４は、ウェブブラウザを含むコンピュータであり、その結果、サーバシステム８１２は、インターネットを用いてクライアントシステム８１４にアクセス可能である。クライアントシステム８１４は、ローカルエリアネットワーク（ＬＡＮ）やワイドエリアネットワーク（ＷＡＮ）のようなネットワーク、ダイアルイン接続、ケーブルモデムおよび特別な高速ＩＳＤＮ回線を含む数多くのインタフェースを通じてインターネットと相互接続されている。クライアントシステム８１４は、ウェブベースの電話、携帯情報端末（ＰＤＡ）やその他のウェブベースの接続可能な設備を含む、インターネットと相互接続可能ないかなる装置とすることもできる。データベースサーバ８１６は、下でより詳細に説明するように、さまざまな事項についての情報を含むデータベース８２０と接続されている。一実施形態において、中央データベース８２０は、サーバシステム８１２上に保存され、かつ、クライアントシステム８１４のうちの１つを通じてサーバシステム８１２にログオンすることによりクライアントシステム８１４のうちの１つにおける潜在的なユーザによりアクセス可能である。代替の実施形態において、データベース８２０は、サーバシステム８１２から遠隔保存されており、かつ、集中化されていなくともよい。
【００５８】
ここに説明するように、アーキテクチャにより、動的環境におけるアプリケーションコーディングがかなり単純化される。というのも、ユーザは、機能性の各々の中の各状態の結果を定義するだけでよいからである。アーキテクチャは、状態の概念を用いることによりこれを支持する。状態は、その外部環境に関わらず問題領域の静的表現を提供する。
【００５９】
説明した実施形態により提供される潜在的なコスト節減は、独立型アプリケーションと比較してウェブアプリケーションが提供するものと同様であり、より高い信頼性、より強力かつ均一な認証、より高い携帯性、より高いアクセス可能性、より良好な構成管理、より良好な資源の使用、より高い速度、高められた安全性、事業アプリケーションの中でのより良好な一貫性、ならびに、展開およびインストールの容易性のうちの１つ以上を含む。コントロールパネル、メンテナンス装置、遠隔制御などといった静的装置の製造業者は、説明した実施形態の使用により恩恵を受ける。しかしながら、その使用を支持する明確に定義されたアーキテクチャは存在しない。説明したアーキテクチャの実施形態は、事業全体を通じた一貫性を促進するとともに、開発者が使用するための直接的なレイアウトを提供する。すべての静的アプリケーションの後方に均一なアーキテクチャを有することは、例えば、アーキテクチャはすでに合理化および有効化されているので、開発コストを改善することにより、開発者の効率をより高めるだろう。
【００６０】
本記述は、ベストモードを含むさまざまな実施形態を開示するために実施例を用いて、あらゆる当業者による、あらゆる装置またはシステムの作成および使用ならびにあらゆる内包された方法の実行を含むそれら実施形態の実施を可能としている。特許取得可能な範囲は、請求項により定義されており、かつ、当業者が想到する他の実施例を含んでもよい。そのような他の実施例は、請求項の文言とは異ならない構造的要素を有している場合、または、請求項の文言からの実質的な差異を有さない均等の構造的要素を含んでいる場合に、請求の範囲内であることが意図されている。
【符号の説明】
【００６１】
１２    クライアント要求
１４    コンピュータ
１６    ウェブサーバ
１８    サーバ
２０、２２、２４    機能性エンジン
３０    状態
３２    機能性プレゼンテーション
３４    出力テンプレート
３６    ページオブジェクト
４０    クライアント応答
５０    機能性論理
５２    特定の論理
６０    システム
１０２    プレゼンテーションクラス
１０４    論理クラス
１０６    ページオブジェクトクラス
１０８    出力テンプレート
１２０    機能性エンジンクラス
１２２    サーバクラス
２００    計算機アプリケーション
２０２    計算機結果フィールド
２０４    計算機タイトルフィールド
２０６    計算機キーパッド
３０２    クライアント
３０４    ウェブサーバ
３０６    出力テンプレート
３０８    機能性エンジン
３１０    ページオブジェクト
３１２    機能性プレゼンテーション
３１４    機能性論理
４０２    表示
４０４    待機
４０６    結果
５０２    機能性エンジン
５０４    出力テンプレート
５０６    ページオブジェクト
５０７    出力属性
５０８    機能性プレゼンテーションページ
５１２    機能性論理オブジェクト
７００    データ処理システム
７０２    通信機構
７０４    プロセッサユニット
７０６    メモリ
７０８    固定記憶域
７１０    通信ユニット
７１２    入出力ユニット
７１４    表示部
７１６    プログラムコード
７１８    コンピュータ読み取り可能な媒体
７２０    コンピュータプログラム製品
８００    システム
８１２    サーバシステム
８１４    クライアントシステム
８１６    データベースサーバ
８２０    データベース
【図１】
2013047947.tif 000007
【図２】
2013047947.tif 000008
【図３】
2013047947.tif 000009
【図４】
2013047947.tif 000010
【図５】
2013047947.tif 000011
【図６】
2013047947.tif 000012
【図７】
2013047947.tif 000013
【図８】
2013047947.tif 000014
【図９】
2013047947.tif 000015
【外国語明細書】
2013047947000001.pdf
2013047947000002.pdf
2013047947000003.pdf
2013047947000004.pdf