説明

状態ベースのウェブフレームワークアーキテクチャのための方法およびシステム

【課題】動的環境における静的内容を利用して、少なくとも1つの定義された機能性を提供する。
【解決手段】静的内容および動的環境と関連付けられるべき少なくとも1つの機能を識別し、各識別された機能に対する少なくとも1つの状態30を識別し、ページオブジェクト内の各識別された状態を定義し、ページオブジェクトが、ページオブジェクト内の出力テンプレートと関連付けられたページ状態および出力属性をも定義する。各識別された状態に対する出力テンプレートを作成し、各機能に対してコンピュータメモリにおいてプレゼンテーションページおよび論理オブジェクトを作成し、少なくとも1つのコンピュータ処理装置により実行されるべきエンジンを作成する。各エンジンが機能を表し、コンピュータメモリ内で定義された状態の中でデータトラフィックを導くために、対応するページオブジェクトを用いる。

【発明の詳細な説明】
【技術分野】
【0001】
本開示の分野は、概して、独立型アプリケーションと対照的なインターネット上のアプリケーションのホスティングに関し、具体的には、状態ベースのウェブフレームワークアーキテクチャのための方法およびシステムに関する。
【背景技術】
【0002】
インターネットが受け継いでいる特質により、その動的な設定において静的な情報を提示することが困難となっている。一般に、インターネットは、ユーザがデータの収集および処理を行う中心的位置を提供するので、従来の独立型アプリケーションに対して数多くの利点を有するプラットフォームである。しかしながら、インターネットに関する1つの問題は、動的でありすぎて、静的なアプリケーションを作成する際に最高の価値を提示しないということである。
【0003】
インターネットがもたらす恩恵のすべてに基づいてインターネットの使用が奨励されている一方で、開発者は、あるアプリケーションに対してはあまり適していないそのフレームワークに限定されている。例えば、単純な計算機アプリケーションは、現在のところ独立型のアプリケーションとしてもっともよく実施されている。というのも、その機能性が、ワールドワイドウェブの提供するフレームワーク内で活用できないからである。
【0004】
計算機アプリケーションは、単純な例であるが、ウェブが、計算機といった静的なアプリケーションのための良好なアーキテクチャを提供していないという点を示している。ウェブのアーキテクチャが静的なアプリケーションのための最適なアーキテクチャを提供していないその他の例としては、コントロールパネル、メンテナンスディスプレイおよび遠隔制御を挙げることができる。その結果、たいていの開発者は、静的なアプリケーションの開発に頭を悩ませる際に直面する問題の種類に取り組もうとしているときに見込みある解決法としてのインターネットを見落としている。
【0005】
一般的に、既存のアーキテクチャは、インターネットの動的特質を妨げるというよりむしろ利用している。その他の既存のアーキテクチャは、あまりよく定義されておらず、この特定の問題には対応していない。その代わりに、それらアーキテクチャは、インターネットが受け継いでいる特質に焦点を当てて、そのフレームワーク内で機能することにより、問題に明確に対応できずに煩雑かつ散らかったコードにつながることがよくある。
【発明の概要】
【発明が解決しようとする課題】
【0006】
アーキテクチャ自体に関して、実際のところ既存の解決法は存在しない。多くは、実際のアーキテクチャではなく、むしろ、ウェブフレームワーク内で偶然機能している単純な設計である。一般に、開発者は、静的アプリケーションの展開方法としてインターネットを用いることはない。しかしながら、このアプローチは、インターネットがもたらす明らかな利点が魅力を増すにつれて、変化する可能性がある。コントロールパネルとしてウェブページを表示するためにウェブブラウザを用いることを想像するのは理にかなっている。そのような表現は、エンドユーザに存在を意識させないだろう。
【課題を解決するための手段】
【0007】
一側面において、動的環境における静的内容を利用して、少なくとも1つの定義された機能性を提供するためのコンピュータによる方法を提供する。該方法は、静的内容および動的環境と関連付けられるべき少なくとも1つの機能を識別することと、各識別された機能に対する少なくとも1つの状態を識別することと、コンピュータメモリにおいて、ページオブジェクト内の各識別された状態を定義することであって、ページオブジェクトが、コンピュータメモリ内において、ページオブジェクト内の出力テンプレートと関連付けられたページ状態および出力属性をも定義する、定義することと、コンピュータメモリにおいて、各識別された状態に対する出力テンプレートを作成することと、各機能に対してコンピュータメモリにおいてプレゼンテーションページおよび論理オブジェクトを作成することと、少なくとも1つのコンピュータ処理装置により実行されるべきエンジンを作成することであって、各エンジンが機能を表し、エンジンが、コンピュータメモリ内で定義された状態の中でデータトラフィックを導くために、対応するページオブジェクトを用いるよう動作可能である、作成することとを含む。
【0008】
別の側面において、サーバ、および、サーバに通信可能に結合されている少なくとも1つのクライアントを含むシステムを提供する。該システムは、ユーザ入力に基づいて、サーバ上にホスティングされている少なくとも1つの定義された機能を用いるようクライアントからの要求を送信し、サーバ内において、かつ、受信した送信に基づいて、サーバ内のページオブジェクトから派生している機能性プレゼンテーションを製造し、サーバから、クライアントシステムに関連付けられたコンピュータディスプレイ上で表示するために、かつ、サーバ内の出力テンプレートを介して、機能性プレゼンテーションを含むページオブジェクトを出力するよう動作可能であって、出力テンプレートは、各ページオブジェクトに対する静的情報を定義し、前記サーバ内の機能性エンジンは、ページオブジェクト内の各ページに対する機能性の各々を定義する。
【0009】
システムに対してさらに、サーバ上で実行されている機能性論理は、ページオブジェクト内の機能性の各々についての結果を計算するよう構成されていてもよい。ページオブジェクトは、状態を定義し、各ページに対する属性を出力してもよい。エンジンは、状態に基づいて出力テンプレートにおける機能の結果を返すのに用いられてもよい。サーバは、各識別された状態に対する出力テンプレートを作成し、状態に対するすべての静的情報を保持するよう出力テンプレートを構成するようプログラムされていてもよく、かつ、複数の作成された出力テンプレートを利用するための1つ以上の識別された状態として構成されていてもよい。サーバはまた、各識別された状態に対する出力テンプレートを作成するようプログラムされていてもよく、かつ、各出力テンプレートは、ページオブジェクトを含むか、または、インポートするようプログラムされていてもよい。追加の実施例において、サーバは、機能性エンジンを実行して、プレゼンテーションページに必要な情報を収集し、かつ、各対応する状態に対する対応するページオブジェクトへ制御をナビゲートするようプログラムされていてもよい。また、サーバは、ページオブジェクトから導かれた結果を提供し、かつ、論理オブジェクトから受信した結果に関する動的内容をページオブジェクトに提供するためにプレゼンテーションページを用いるようプログラムされていてもよい。さらに、システム機能性プレゼンテーションは、ページオブジェクト内の機能性の各々に対する出力プレゼンテーションを定義してもよい。システムはまた、出力テンプレートの状態を保つための出力属性を含むページオブジェクトのうちの1つを有する出力テンプレートを構成するようサーバをプログラムし、かつ、ページオブジェクトからの属性を用いて、出力テンプレートに関連付けられたプレゼンテーションページ内のアクティブな情報を書き込むことにより、各識別された状態に対する出力テンプレートを作成してもよい。
【0010】
取り上げた特徴、機能および利点は、さまざまな実施形態において独立して達成可能であり、または、以下の説明および図面を参照してさらなる詳細が理解可能であるさらに他の実施形態において組み合わせてもよい。
【図面の簡単な説明】
【0011】
【図1】図1は、アーキテクチャ内で動作可能なサーバによる機能を示すデータフロー図である。
【図2】図2は、アーキテクチャクラス図のブロック図である。
【図3】図3は、図2のアーキテクチャクラスを用いて作成された計算機アプリケーションの図である。
【図4】図4は、計算機アプリケーションの図を用いたアーキテクチャのレイアウト図である。
【図5】図5は、計算機アプリケーションにより示された、状態の使用を例示するアーキテクチャフロー図である。
【図6】図6は、図1、図2、図4および図5で描写したアーキテクチャにおいて利用されるエンジン、テンプレートおよびオブジェクトの図である。
【図7】図7は、説明したアーキテクチャの実施形態の一使用例を概説するフローチャートである。
【図8】図8は、データ処理システムの図である。
【図9】図9は、サーバアーキテクチャの単純化したブロック図である。
【発明を実施するための形態】
【0012】
説明する実施形態は、状態の概念を用いることによりインターネットの動的な特質をより静的な環境へと転換するアーキテクチャに関する。その結果、開発者は、独立型アプリケーションの静的な特質を失うことなくインターネットが受け継いでいる恩恵を保つアーキテクチャを与えられる。上で触れたように、インターネットが受け継いでいる特質により、その動的な設定において静的な情報を提示することが困難となっている。ただし、インターネットは、ユーザがデータの収集および処理を行う中心的位置を提供するので、従来の独立型アプリケーションに対して数多くの利点を有するプラットフォームである。インターネットに関する問題の1つは、動的でありすぎて、静的なアプリケーションを作成する際に最高の価値を提示しないということである。
【0013】
ここで用いられているように、(英文における)単数形で記載され、かつ、不定冠詞「a」または「an」が付されている構成要素または工程は、複数の構成要素または工程を除外しないものとして理解されねばならない。ただし、そのような除外が明示的に記載されている場合は除くものとする。さらに、本発明の「一実施形態」または「例示的実施形態」への言及は、記載されている特徴をも組み込む追加の実施形態の存在を除外するものとして解釈されることを意図していない。
【0014】
種々の有利な実施形態の説明は、例示および説明の目的で提示したものであり、かつ、網羅的であったり、開示された形式の実施形態に限定されたりすることは意図していない。多くの変更および変形例が、当業者にとって明らかであろう。さらに、種々の有利な実施形態は、他の有利な実施形態と比較して異なる利点を提供するかもしれない。選択された一または複数の実施形態は、実施形態の原理、実際の適用をもっともよく説明するため、かつ、考慮された特定の使用に適したものとしてさまざまな変更を有するさまざまな実施形態に対する開示を当該技術分野における通常の技術を有する他者が理解できるようにするために選ばれ、説明されている。
【0015】
以下の段落において説明する実施形態は、動的環境におけるアプリケーションコーディングをかなり単純化する。というのも、開発者は、機能性の各々の中の各状態の結果を定義するだけでよいからである。アーキテクチャは、状態の概念を用いることによりこれを支持する。状態は、その外部環境に関わらず問題領域の静的表現を提供する。
【0016】
インターネットベースの状態の使用を通じて生じた利点を以下に列挙する。例えば、問題は、状態の使用を通じて対処される。状態の使用は、アプリケーションの設計を構築する綿密なプロセスを提供する。状態の使用は、インターネット用に必ずしも設計されてはいない問題領域とともにうまく機能する。状態の使用は、プログラム言語から独立しており、明確に定義され、かつ、容易に追従可能である。インターネットが受け継いでいる利点が利用され、かつ、状態の使用は、内容が明確で、構造化され、かつ、一貫性があるので実施および展開しやすい。プレゼンテーションおよび論理は、あらゆる静的アプリケーションに対して優れた適性を提供するプレゼンテーションおよびナビゲーションに対して、強力な制御により分割される。こうして、本実施形態は、広範な使用可能性を有する。
【0017】
たいていの開発者は、従来の独立型で静的なアプリケーションに沿ったアプリケーションの開発に直面したときに見込みある解決法としてのインターネットを見落としている。典型的に、既存のアーキテクチャは、インターネットの動的特質を妨げるというよりむしろ利用している。一般に、開発者は、静的アプリケーションの展開方法としてインターネットを用いることはない。しかしながら、このアプローチは、インターネットがもたらす明らかな利点が魅力を増すにつれて、変化する可能性がある。コントロールパネルとしてウェブページを表示するためにウェブブラウザを用いることを想像するのは理にかなっている。そのような表現は、エンドユーザに存在を意識させないだろう。
【0018】
図1は、以下の段落において描写するアーキテクチャ内で動作可能なサーバによる機能を示すデータフロー図10である。ここでもさらに説明するように、コンピュータ14からのクライアント要求12は、サーバ18内のウェブサーバ16へ送信される。該要求は、要求の特質がアーキテクチャの機能性に関するので該特質に依存してサーバ18内で実行されている機能性エンジン20、22、24へと送られる。機能性エンジンは、クライアントから受信した要求と相関する状態30を用い、かつ、機能性プレゼンテーション32の生成を開始する。該機能性プレゼンテーション32は、最後には、ページオブジェクト36内の出力テンプレート34を通じてクライアント応答40としてクライアントコンピュータ14へ戻るよう転送される。機能性プレゼンテーション32は、ページオブジェクト36から派生し、かつ、ページオブジェクト36内の出力属性を書き込む機能性論理50を含んでもよい。機能性論理50は、特定の論理52を利用して、コマンドをシステム60へと送ることにより、動的な出力、例えば、計算機の実施例に関して説明する表示を計算する。
【0019】
図2は、独立型アプリケーションの静的な特質を失うことなくアーキテクチャがインターネットが受け継いでいる恩恵を保っている、開発者に与えられてもよいアーキテクチャクラス図100のブロック図である。プレゼンテーションクラス102は、アプリケーションにルックアンドフィールを与えるとともに、ことによると、1つ以上の論理クラス104を含む。一実施例において、論理クラス104は、演算機能を含む。プレゼンテーションクラス102はまた、ページオブジェクトクラス106から拡張しており、任意に状態、例えば、ここにさらに説明するように出力テンプレート108を介してユーザへ提示される表示を定義している。
【0020】
機能性エンジンクラス120は、図示のように1つ以上のプレゼンテーションクラス102を含み、これにより、参照を提供している。機能性エンジンクラス120は、サーバクラス122から拡張しており、該サーバクラス122は、インターネットに対するアプリケーション用のインタフェースを提供している。
【0021】
図3は、静的構成要素および動的構成要素、とりわけ、計算機アプリケーション200に関連付けられた静的構成要素および動的構成要素を定義するための説明例を提供する一例である。計算機アプリケーション内のすべての構成要素は、静的状態か動的状態のいずれかを有するものとして特徴付けることができる。例えば、計算機結果フィールド202は、動的構成要素の一例であり、計算機タイトルフィールド204は、静的構成要素の一例であり、かつ、計算機キーパッド206は、静的構成要素の一例である。
【0022】
図4は、計算機アプリケーションを一例として用いるさらなる説明を提供するアーキテクチャレイアウト図300である。クライアント302は、ウェブサーバ304に要求を出す。該要求は、機能性エンジン308へ送られ、該機能性エンジン308は、何らかの機能性論理314を含む可能性のある、ページオブジェクト310から派生している機能性プレゼンテーション312を生成する。機能性プレゼンテーション312を含むページオブジェクト310は、出力テンプレート306を介してクライアントへ戻される。出力テンプレート306は、示されているように各ページに対する静的情報、例えば、数字キーパッド上の数字を定義する。機能性エンジン308は、示されているように各ページに対する機能性の各々、例えば、単純な計算機上の演算子(+、−、*、/)を定義する。ページオブジェクト310は、示されているように各ページに対する状態および出力属性を定義する。機能性プレゼンテーション312は、示されているように機能性の各々に対する出力プレゼンテーション、例えば、加算機能から結果として得られる可能性のある視覚的プレゼンテーションを定義する。機能性論理314は、機能性の各々に対する結果を計算する。
【0023】
図5は、計算機アプリケーションを一例として用いるさらなる説明を提供する状態の使用を例示するアーキテクチャフロー図400である。ユーザは、等式の第1オペランドを表す入力「2」を書き込み、状態は、「表示」402に設定される。次いで、ユーザは、等式の第2オペランドを表す入力「2」を再度書き込み、状態は、「表示」402に再度設定される。ユーザは、演算「+」記号のような機能を選択し、状態は、「表示」402から「待機」404へと変化する。システムは、回答および表示結果により応答し、ここで、状態は、「待機」404から「結果」406へ変化する。図5は、本アーキテクチャ内で状態をどのように用いることができるかの一例を表している。各状態、すなわち、表示、待機および結果は、クライアントの要求と相関している。
【0024】
図6は、上記を達成するアーキテクチャエンジン、テンプレートおよびオブジェクトの図500である。例えば、各機能性エンジン502は、各対応する状態、例えば、表示、待機および結果についてプレゼンテーションページおよびナビゲーションを含む。タスクを行うよう指示されると、エンジン502は、その状態に基づいて出力テンプレート504における該タスクの結果を返す。出力テンプレート504は、各状態に対して存在可能であり、かつ、その状態に対する静的情報のすべてを保持する。状態は、2つ以上の出力テンプレート504を共有するか、または、有していてもよく、これにより柔軟性が得られることに注目することも重要である。アーキテクチャは、出力テンプレート504を用いて、静的情報を保持する。計算機の実施例において、この情報は、ボタン、スクリーンレイアウトおよびいくつかの静的テキストを含む。各出力テンプレートはまた、ページオブジェクト506を含むか、または、インポートする。
【0025】
出力テンプレート504内において、ページオブジェクト506は、機能性プレゼンテーション508を行う出力属性を含み、その状態をも保持する。出力テンプレート504は、ページオブジェクト506からの属性を用いて、そのページ内のアクティブな情報を書き込む。計算機にとって、これは、その結果スクリーン内に表示される情報であろう。これはまた、ある演算に対しては存在するかもしれないが、他の演算に対しては存在しないタイトルおよび機能をも含みうる。ページオブジェクト506は、状態および出力属性を定義する。状態と出力属性との両方がすべてのページに共通であり、このことは、例えば、コントロールパネルのようにすべてのページが同じに見えることが期待されるであろう静的アプリケーションにとって道理にかなう。
【0026】
状態は、アプリケーションが生成することのできるすべての条件(または状態)を表す。計算機について、上に説明したように、1つの特定の実施形態において3つの状態:表示、待機および結果が存在する。
【0027】
ページオブジェクト506はまた、出力属性507を含む。これらの属性は、ユーザが見えると期待している動的出力を定義する。計算機の実施例において、出力属性507は、計算結果、現在の演算およびタイトルを含みうる。
【0028】
説明したアーキテクチャは、機能性の各々をエンジン502に分割する。これらのエンジン502は、典型的に親クラスからこの挙動を拡張することにより、ウェブベースの応答および要求(http)を制御する。各エンジン502は、1つ以上のプレゼンテーションページ508を含む。要求を用いて、エンジン502は、プレゼンテーションページに必要な情報を収集し、正常な状態へナビゲートすることによりこれをクライアントへ戻す。計算機の実施例において、機能性エンジンは、加算、減算、乗算および除算を表すだろう。
【0029】
機能性プレゼンテーションページ508は、結果を提供する。機能性プレゼンテーションページ508は、ページオブジェクト506から導き出され、かつ、エンジン502内ではなく各対応するプレゼンテーションページ内で起こるプレゼンテーション論理から戻された結果に関する動的内容をページオブジェクト506に提供する。機能性の各々に対して、機能性プレゼンテーションページ508が存在する。各プレゼンテーションページ508は、ページオブジェクト506の挙動を拡張し、かつ、ゼロまたはそれより多くの機能性論理オブジェクト512を含むことができる。機能性プレゼンテーションページ508の主要な目的は、機能性の各状態に必要とされる動的プレゼンテーションを生成することである。機能性プレゼンテーションページ508は、論理オブジェクトを用いて、ページオブジェクトから拡張される各属性を書き込むことによりこれを達成可能である。例えば、計算機により、「加算」プレゼンテーションページオブジェクトは、「加算」論理オブジェクトを用いて、数字を加算し、結果を計算結果フィールドに出すというタスクを完了するだろう。それらのタスクを完了すると、機能性プレゼンテーションページ508は、エンジン502へ制御を戻し、出力テンプレート内において機能性プレゼンテーションページ506が派生しているページオブジェクト506を通じて結果を渡す。
【0030】
機能性の各々に対して、機能性論理オブジェクト512が存在する。これらのオブジェクト512は、各状態をカバーする機能性の各々に対して論理を制御する。これらの結果が(ウェブ)ページ上に現れるだろうという事実以外は、これらオブジェクトにおけるプレゼンテーションの観念は存在しない。
【0031】
説明したアーキテクチャの実施形態の使用に関連して、典型的な使用を以下の段落において概説し、かつ、図7のフローチャート600において説明する。初めに、問題領域、例えば、単純な計算機を識別する602。次いで、問題領域がそのようなアーキテクチャに対して良好な適性があるか否かを判定する604。ここに説明する実施例において、単純な計算機がこのアーキテクチャに対して良好な適性を有する。状態のほとんどない静的アプリケーションがこのアーキテクチャに対して良好な適性を有する。
【0032】
機能性を識別する606。単純な計算機の実施例において、これは、加算、減算、乗算および除算であろう。機能性の各々に対して状態を識別する608。典型的に、機能は、その状態が表示、待機および結果である単純な計算機の場合と同様に、状態を共有する。上で識別された状態を定義するページオブジェクトを作成する610。このページオブジェクトはまた、例えばタイトルのような、その出力と関連付けられた典型的なページ出力属性をも定義する。計算機の実施例に対して、それは、たいていの計算機において見られる結果ウィンドウを表すであろう計算結果を単に含むだろう。必要に応じて、各状態に対して出力テンプレートを作成する612が、必ずしも一対一のマッピングでなくともよい。計算機の実施例は、表示、待機および結果に対する出力が同じに見えるであろうから、1つしかテンプレートを含まない。
【0033】
機能性の各々に対してプレゼンテーションページおよび論理オブジェクトを作成する614。機能性プレゼンテーションページは、ページオブジェクトを拡張し、かつ、機能性論理オブジェクトを含むことができる。機能性プレゼンテーションページは、機能性の各々に対してプレゼンテーションを制御し、各状態をカバーする。機能性論理オブジェクトは、機能性の各々に対して論理を制御し、各状態をカバーする。
【0034】
機能性の各々を表すためにエンジンを作成する616。説明しているアーキテクチャは、ウェブフレームワーク内で動作するので、これらのエンジンは、ウェブサーバ上で(典型的には、サーブレットまたはウェブアプリケーションとして)要求および応答を制御する。各エンジンは、対応する機能性プレゼンテーションページを用い、かつ、各状態の中でトラフィックを誘導する。これらのエンジンは、機能性や構成要素論理ではなく、ナビゲーションおよびナビゲーション論理のみを制御する。
【0035】
ここに説明するアーキテクチャは、状態の概念を用いて、各機能タスクをナビゲートする。機能タスクは、機能性プレゼンテーションおよびその状態という2つの構成要素から構成されている。アーキテクチャは、状態を用いて、プレゼンテーションにそのタスクを遂行するよう導く。下に示す表1において、「page」(注:「Page」ではない)は、プレゼンテーションオブジェクトを表す。本実施例において、「page」は、表示、待機および結果という3つの状態を有する。
【0036】
表1―機能タスクのサンプルコード

【0037】
機能性プレゼンテーションは、ページオブジェクトから拡張するか、または、派生する。ページオブジェクトは、クライアントへ提示が必要な情報を保持する容器として作用する。機能性プレゼンテーションの目的は、クライアントの要求に属するのでこの情報を書き込むことである。下に示す表2は、ユーザへ提示が必要な情報として「title(タイトル)」および「main content(主な内容)」を例示している。
【0038】
表2―ページオブジェクトのサンプルコード

【0039】
機能性プレゼンテーションは、各タスクの遂行に要する機能性論理を含むことができる。下に示す表3において、「logic」は、結果を示すためにデータのリフレッシュを行う際の論理オブジェクトを表す。
【0040】
表3―機能性論理を有する機能性プレゼンテーションのサンプルコード

【0041】
一旦、機能性プレゼンテーションがそのタスクを完了すると、出力は、ページオブジェクト内に保存され、該ページオブジェクトは、出力テンプレート内に収容される。各状態は、各タスクのための機能性プレゼンテーションを保持するページオブジェクトを含む自身の出力テンプレートを有することができる。表1〜表3において示した実施例について、出力テンプレートは、display.jsp、wait.jspおよびresults.jspであろう。ページオブジェクトに加えて、これらのテンプレートはまた、各対応する状態に対して静的プレゼンテーションのすべてを保持する。下に示す表4は、表示状態用のサンプル出力テンプレートがどのように見える可能性があるかを例示している。
【0042】
表4―出力テンプレートのサンプルコード

【0043】
一実施形態において、ここに説明する方法、システムおよびコンピュータ読み取り可能な媒体の技術的効果は、(a)静的内容および動的環境と関連付けられるべき少なくとも1つの機能を識別すること、(b)各識別された機能に対する少なくとも1つの状態を識別すること、(c)コンピュータメモリにおいて、ページオブジェクト内の各識別された状態を定義することであって、ページオブジェクトが、コンピュータメモリ内で、ページオブジェクトを含む出力テンプレートと関連付けられたページ状態および出力属性をも定義する、定義すること、(d)コンピュータメモリにおいて、各識別された状態に対する出力テンプレートを作成すること、(e)各機能に対してコンピュータメモリにおいてプレゼンテーションページおよび論理オブジェクトを作成すること、および、(f)少なくとも1つのコンピュータ処理装置により実行されるべきエンジンを作成することであって、各エンジンが機能を表し、エンジンが対応するページオブジェクトを用いて、コンピュータメモリ内の定義された状態の中でデータトラフィックを導くよう動作可能である、作成することのうちの少なくとも1つを含む。
【0044】
ここで図8に注目して、ある例示的実施形態に係る、ここに説明したアーキテクチャが実行される可能性のあるデータ処理システムの図を描写する。本例示的実施例において、データ処理システム700は、通信機構702を含み、該通信機構702は、プロセッサユニット704、メモリ706、固定記憶域708、通信ユニット710、入出力(I/O)ユニット712および表示部714の間の通信を提供する。
【0045】
プロセッサユニット704は、メモリ706内に読み込まれてもよいソフトウェア用の命令を実行する役割を果たす。プロセッサユニット704は、特定の実施構成によって、1つ以上のプロセッサの組であっても、マルチプロセッサコアであってもよい。さらに、プロセッサユニット704は、単一のチップ上に主プロセッサが副プロセッサとともに存在する1つ以上の異種プロセッサシステムを用いて実施可能である。別の説明例として、プロセッサユニット704は、同種の複数のプロセッサを含む対称型マルチプロセッサシステムであってもよい。
【0046】
メモリ706および固定記憶域708は、記憶装置の一例である。記憶装置は、一時的かつ/または永久的のいずれかで情報を保存することができるあらゆるハードウェアである。これらの実施例において、メモリ706は、例えば限定はされないが、ランダムアクセスメモリまたはその他あらゆる適切な揮発性もしくは不揮発性記憶装置であってもよい。固定記憶域708は、特定の実施構成によって、さまざまな形態を取ってもよい。例えば限定はされないが、固定記憶域708は、1つまたはそれ以上の構成要素または装置を含んでもよい。例えば、固定記憶域708は、ハードドライブ、フラッシュメモリ、書き換え可能な光学ディスク、書き換え可能な磁気テープ、または、上記の何らかの組み合わせであってもよい。固定記憶域708により用いられる媒体もまた、着脱可能であってもよい。例えば限定はされないが、固定記憶域708用に着脱可能なハードドライブを用いてもよい。
【0047】
これらの実施例において、通信ユニット710は、その他のデータ処理システムまたは装置との通信を提供する。これらの実施例において、通信ユニット710は、ネットワークインタフェースカードである。通信ユニット710は、物理的通信回線と無線通信回線とのいずれかまたは両方の使用により通信を提供してもよい。
【0048】
入出力ユニット712は、データ処理システム700と接続可能なその他の装置に対してデータを入力および出力可能とする。例えば限定はされないが、入出力ユニット712は、キーボードおよびマウスを介するユーザ入力に対する接続を提供してもよい。さらに、入出力ユニット712は、プリンタへの出力を送信してもよい。表示部714は、ユーザに対する情報を表示する機構を提供する。
【0049】
オペレーティングシステムおよびアプリケーションまたはプログラムに対する命令は、固定記憶域708上に位置している。これらの命令は、メモリ706内に読み込まれて、プロセッサユニット704により実行されてもよい。種々の実施形態のプロセスは、メモリ706のようなメモリ内に位置していてもよいコンピュータにより実行される命令を用いてプロセッサユニット704により行われてもよい。これらの命令は、プロセッサユニット704内のプロセッサにより読取りおよび実行可能なプログラムコード、コンピュータ使用可能なプログラムコードまたはコンピュータ読取り可能なプログラムコードと呼ばれる。種々の実施形態におけるプログラムコードは、メモリ706または固定記憶域708といった種々の物理的または有形のコンピュータ読み取り可能な媒体上で実現されてもよい。
【0050】
プログラムコード716は、選択的に着脱可能で、かつ、プロセッサユニット704による実行のためにデータ処理システム700上に読み込まれたり、これに転送されてもよいコンピュータ読み取り可能な媒体718上で機能的な形態で位置している。プログラムコード716およびコンピュータ読み取り可能な媒体718は、これらの実施例においてコンピュータプログラム製品720を形成する。一例において、コンピュータ読み取り可能な媒体718は、例えば、固定記憶域708の一部であるドライブまたはその他の装置内へ挿入または設置されて、固定記憶域708の一部であるハードドライブのような記憶装置上へ転送される光学または磁気ディスクといった有形の形態であってもよい。有形の形態において、コンピュータ読み取り可能な媒体718はまた、データ処理システム700と接続されているハードドライブ、サムドライブまたはフラッシュメモリといった固定記憶域の形態を取ってもよい。コンピュータ読み取り可能な媒体718の有形の形態はまた、コンピュータ記録可能な記憶媒体とも呼ばれる。いくつかの場合において、コンピュータ読み取り可能な媒体718は、取り外しできないこともある。
【0051】
あるいは、プログラムコード716は、通信ユニット710への通信回線を介してかつ/または入出力ユニット712への接続を介してコンピュータ読み取り可能な媒体718からデータ処理システム700へ転送されてもよい。通信回線および/または接続は、本説明例において、物理的なものであっても、無線であってもよい。コンピュータ読み取り可能な媒体はまた、プログラムコードを含む通信回線または無線伝送といった無形の媒体の形態を取ってもよい。
【0052】
いくつかの例示的実施形態において、プログラムコード716は、別の装置またはデータ処理システムから固定記憶域708へのネットワークによりダウンロードされて、データ処理システム700内で用いられてもよい。例えば、サーバデータ処理システムにおけるコンピュータ読み取り可能な記憶媒体に保存されたプログラムコードは、サーバからデータ処理システム700へネットワークによりダウンロードされてもよい。プログラムコード716を提供するデータ処理システムは、サーバコンピュータ、クライアントコンピュータまたはプログラムコード716を保存および伝送可能なその他何らかの装置であってもよい。
【0053】
データ処理システム700に対して例示された種々の構成要素は、種々の実施形態が実施可能な手法に対するアーキテクチャの限定を提供することを意図しているのではない。種々の例示的実施形態は、データ処理システム700に対して例示された構成要素に加えた、または、これに代えた構成要素を含むデータ処理システムにおいて実施されてもよい。図7に示した他の構成要素は、示されている例示的実施例から変形させることができる。
【0054】
一実施例として、データ処理システム700における記憶装置は、データを保存可能なあらゆるハードウェア装置である。メモリ706、固定記憶域708およびコンピュータ読み取り可能な媒体718は、有形の記憶装置の一例である。
【0055】
別の実施例において、バスシステムは、通信機構702の実施に用いられてもよく、かつ、システムバスまたは入出力バスといった1つ以上のバスから構成されていてもよい。もちろん、バスシステムは、バスシステムに取り付けられている種々の構成要素または装置間のデータの転送を可能とするあらゆる適切な種類のアーキテクチャを用いて実施されてもよい。また、通信ユニットは、モデムまたはネットワークアダプタといったデータの送受信に用いられる1つ以上の装置を含んでもよい。さらに、メモリは、例えば限定はされないが、メモリ706、または、通信機構702内に存在してもよいインタフェースおよびメモリコントローラハブにおいて見られるようなキャッシュであってもよい。
【0056】
図9は、本発明の一実施形態に係る例示的システム800の単純化したブロック図である。一実施形態において、システム800は、特別なまたはカスタマイズされた発行者―小売業者関係を実施するために用いられる支払いカードシステムである。別の実施形態において、システム800は、支払い処理に適用される宣伝コードを入力するためにアカウント保持者により利用可能な支払いカードシステムである。
【0057】
具体的には、例示的実施形態において、システム800は、サーバシステム812と、サーバシステム812に接続されている、クライアントシステム814とも呼ばれる複数のクライアントサブシステムとを含む。一実施形態において、クライアントシステム814は、ウェブブラウザを含むコンピュータであり、その結果、サーバシステム812は、インターネットを用いてクライアントシステム814にアクセス可能である。クライアントシステム814は、ローカルエリアネットワーク(LAN)やワイドエリアネットワーク(WAN)のようなネットワーク、ダイアルイン接続、ケーブルモデムおよび特別な高速ISDN回線を含む数多くのインタフェースを通じてインターネットと相互接続されている。クライアントシステム814は、ウェブベースの電話、携帯情報端末(PDA)やその他のウェブベースの接続可能な設備を含む、インターネットと相互接続可能ないかなる装置とすることもできる。データベースサーバ816は、下でより詳細に説明するように、さまざまな事項についての情報を含むデータベース820と接続されている。一実施形態において、中央データベース820は、サーバシステム812上に保存され、かつ、クライアントシステム814のうちの1つを通じてサーバシステム812にログオンすることによりクライアントシステム814のうちの1つにおける潜在的なユーザによりアクセス可能である。代替の実施形態において、データベース820は、サーバシステム812から遠隔保存されており、かつ、集中化されていなくともよい。
【0058】
ここに説明するように、アーキテクチャにより、動的環境におけるアプリケーションコーディングがかなり単純化される。というのも、ユーザは、機能性の各々の中の各状態の結果を定義するだけでよいからである。アーキテクチャは、状態の概念を用いることによりこれを支持する。状態は、その外部環境に関わらず問題領域の静的表現を提供する。
【0059】
説明した実施形態により提供される潜在的なコスト節減は、独立型アプリケーションと比較してウェブアプリケーションが提供するものと同様であり、より高い信頼性、より強力かつ均一な認証、より高い携帯性、より高いアクセス可能性、より良好な構成管理、より良好な資源の使用、より高い速度、高められた安全性、事業アプリケーションの中でのより良好な一貫性、ならびに、展開およびインストールの容易性のうちの1つ以上を含む。コントロールパネル、メンテナンス装置、遠隔制御などといった静的装置の製造業者は、説明した実施形態の使用により恩恵を受ける。しかしながら、その使用を支持する明確に定義されたアーキテクチャは存在しない。説明したアーキテクチャの実施形態は、事業全体を通じた一貫性を促進するとともに、開発者が使用するための直接的なレイアウトを提供する。すべての静的アプリケーションの後方に均一なアーキテクチャを有することは、例えば、アーキテクチャはすでに合理化および有効化されているので、開発コストを改善することにより、開発者の効率をより高めるだろう。
【0060】
本記述は、ベストモードを含むさまざまな実施形態を開示するために実施例を用いて、あらゆる当業者による、あらゆる装置またはシステムの作成および使用ならびにあらゆる内包された方法の実行を含むそれら実施形態の実施を可能としている。特許取得可能な範囲は、請求項により定義されており、かつ、当業者が想到する他の実施例を含んでもよい。そのような他の実施例は、請求項の文言とは異ならない構造的要素を有している場合、または、請求項の文言からの実質的な差異を有さない均等の構造的要素を含んでいる場合に、請求の範囲内であることが意図されている。
【符号の説明】
【0061】
12 クライアント要求
14 コンピュータ
16 ウェブサーバ
18 サーバ
20、22、24 機能性エンジン
30 状態
32 機能性プレゼンテーション
34 出力テンプレート
36 ページオブジェクト
40 クライアント応答
50 機能性論理
52 特定の論理
60 システム
102 プレゼンテーションクラス
104 論理クラス
106 ページオブジェクトクラス
108 出力テンプレート
120 機能性エンジンクラス
122 サーバクラス
200 計算機アプリケーション
202 計算機結果フィールド
204 計算機タイトルフィールド
206 計算機キーパッド
302 クライアント
304 ウェブサーバ
306 出力テンプレート
308 機能性エンジン
310 ページオブジェクト
312 機能性プレゼンテーション
314 機能性論理
402 表示
404 待機
406 結果
502 機能性エンジン
504 出力テンプレート
506 ページオブジェクト
507 出力属性
508 機能性プレゼンテーションページ
512 機能性論理オブジェクト
700 データ処理システム
702 通信機構
704 プロセッサユニット
706 メモリ
708 固定記憶域
710 通信ユニット
712 入出力ユニット
714 表示部
716 プログラムコード
718 コンピュータ読み取り可能な媒体
720 コンピュータプログラム製品
800 システム
812 サーバシステム
814 クライアントシステム
816 データベースサーバ
820 データベース

【特許請求の範囲】
【請求項1】
動的環境における静的内容を利用して、少なくとも1つの定義された機能性を提供するためのコンピュータによる方法であって、前記方法が、
静的内容および動的環境と関連付けられるべき少なくとも1つの機能を識別することと、
各識別された機能に対する少なくとも1つの状態を識別することと、
コンピュータメモリにおいて、ページオブジェクト内の各識別された状態を定義することであって、ページオブジェクトが、コンピュータメモリ内において、ページオブジェクト内の出力テンプレートと関連付けられたページ状態および出力属性をも定義する、定義することと、
コンピュータメモリにおいて、各識別された状態に対する出力テンプレートを作成することと、
各機能に対してコンピュータメモリにおいてプレゼンテーションページおよび論理オブジェクトを作成することと、
少なくとも1つのコンピュータ処理装置により実行されるべきエンジンを作成することであって、各エンジンが機能を表し、エンジンが、コンピュータメモリ内で定義された状態の中でデータトラフィックを導くために、対応するページオブジェクトを用いるよう動作可能である、作成することと
を含む方法。
【請求項2】
エンジンを用いて、状態に基づき出力テンプレートにおける機能の結果を戻すことをさらに含む請求項1に記載のコンピュータによる方法。
【請求項3】
各識別された状態に対する出力テンプレートを作成することが、状態に対するすべての静的情報を保持するよう出力テンプレートを構成することを含む請求項1に記載のコンピュータによる方法。
【請求項4】
各識別された状態に対する出力テンプレートを作成することが、
作成された出力テンプレートを共有するよう識別された状態のうちの1つ以上を構成すること、および、
複数の作成された出力テンプレートを利用するよう識別された状態のうちの1つ以上を構成すること
のうちの少なくとも一方を含む請求項1に記載のコンピュータによる方法。
【請求項5】
各識別された状態に対する出力テンプレートを作成することが、ページオブジェクトを含むか、または、インポートするよう各出力テンプレートを構成することを含む請求項1に記載のコンピュータによる方法。
【請求項6】
各識別された状態に対する出力テンプレートを作成することが、出力テンプレートの状態を保つための出力属性を含むページオブジェクトのうちの1つを有する出力テンプレートを構成することを含む請求項1に記載のコンピュータによる方法。
【請求項7】
ページオブジェクトからの属性を用いて、出力テンプレートと関連付けられたプレゼンテーションページ内のアクティブな情報を書き込むことをさらに含む請求項6に記載のコンピュータによる方法。
【請求項8】
出力属性が、ユーザに対するプレゼンテーションのための動的出力を定義する請求項1に記載のコンピュータによる方法。
【請求項9】
プレゼンテーションページに必要な情報を収集し、かつ、
各対応する状態に対する対応するページオブジェクトへ制御をナビゲートする
ようエンジンを実行することをさらに含む請求項1に記載のコンピュータによる方法。
【請求項10】
プレゼンテーションページを用いて、ページオブジェクトから派生した結果を提供し、かつ、論理オブジェクトから受信した結果に関する動的内容をページオブジェクトに提供することをさらに含む請求項1に記載のコンピュータによる方法。
【請求項11】
サーバ、および、
前記サーバに通信可能に結合されている少なくとも1つのクライアント
を含むシステムであって、前記システムが、
ユーザ入力に基づいて、前記サーバ上にホスティングされている少なくとも1つの定義された機能を用いるよう前記クライアントからの要求を送信し、
前記サーバ内において、かつ、受信した送信に基づいて、前記サーバ内のページオブジェクトから派生している機能性プレゼンテーションを製造し、
サーバから、前記クライアントシステムに関連付けられたコンピュータディスプレイ上で表示するために、かつ、前記サーバ内の出力テンプレートを介して、機能性プレゼンテーションを含むページオブジェクトを出力する
よう動作可能であって、出力テンプレートが、各ページオブジェクトに対する静的情報を定義し、前記サーバ内の機能性エンジンが、ページオブジェクト内の各ページに対する機能性の各々を定義するシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2013−47947(P2013−47947A)
【公開日】平成25年3月7日(2013.3.7)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−176610(P2012−176610)
【出願日】平成24年8月9日(2012.8.9)
【出願人】(500520743)ザ・ボーイング・カンパニー (773)
【氏名又は名称原語表記】The Boeing Company
【Fターム(参考)】