(57)【特許請求の範囲】
【請求項１】
プロセッサによって少なくとも部分的に実装される方法であって、
クライアント要求に対応するＷｅｂモジュールメソッドを検索することと、
前記Ｗｅｂモジュールメソッドのパラメータ宣言に基づいて、前記クライアント要求に対応する要求データをＷｅｂコンテキストから取得することと、
入力パラメータとして前記要求データを使用することによって、前記Ｗｅｂモジュールメソッドを呼び出すことと、
前記Ｗｅｂモジュールメソッドの事前設定された戻りパラメータ宣言に基づいて、戻り値を前記Ｗｅｂコンテキスト内に記憶することであって、前記事前設定された戻りパラメータ宣言は、戻り値が記憶される、前記Ｗｅｂコンテキストのデータ範囲を示す、記憶することと、
前記Ｗｅｂコンテキストに記憶された戻り値に基づいて、Ｗｅｂページをレンダリングすることと、
を含む、方法。
【請求項２】
前記取得することは、
前記Ｗｅｂコンテキスト内の前記要求データのデータソースを示すパラメータ注釈と、前記データソース内の前記要求データのデータ項目を示すパラメータ注釈属性と、を取得するために、前記パラメータ宣言を分析することを含む、請求項１に記載の方法。
【請求項３】
前記パラメータ注釈に基づいて、前記要求データに対応する前記データソースを前記Ｗｅｂコンテキスト内で検索することと、
前記パラメータ注釈属性に基づいて、前記クライアント要求に対応する前記データ項目を前記データソース内で検索することと、
をさらに含む、請求項２に記載の方法。
【請求項４】
前記パラメータ宣言のパラメータ型と前記戻り値に関連付けられるパラメータ型とが不一致であると決定することと、
前記決定に応じて、所定の規則に基づいて、前記要求データを前記戻り値に対応する前記パラメータ型から前記パラメータ宣言の前記パラメータ型に転換することと、
をさらに含む、請求項１に記載の方法。
【請求項５】
前記記憶することは、
前記戻り値に関連付けられる前記Ｗｅｂコンテキストの前記データ範囲を示す戻りパラメータ注釈を取得するために、前記事前設定された戻りパラメータ宣言を分析することと、
前記戻り値を前記Ｗｅｂコンテキストの前記範囲内に記憶することと、
を含む、請求項１に記載の方法。
【請求項６】
前記クライアント要求に対応する前記Ｗｅｂモジュールメソッドが前記クライアント要求に対応するインスタンスを含まないと決定することと、前記決定に応じて、前記クライアント要求に対応するＷｅｂモジュールインスタンスを生成することと、
をさらに含む、請求項１に記載の方法。
【請求項７】
前記Ｗｅｂモジュールインスタンスをキャッシュすることと、
別のクライアント要求を受信した後に、前記Ｗｅｂモジュールインスタンスに基づいて、前記Ｗｅｂモジュールメソッドを呼び出すことと、
をさらに含む、請求項６に記載の方法。
【請求項８】
１つ以上のプロセッサと、
複数のコンピュータ実行可能なモジュールを含むメモリと、を備える、サーバシステムであって、前記複数のコンピュータ実行可能なモジュールは、
クライアント要求に基づいて、ＷｅｂモジュールのＷｅｂモジュールメソッドを検索するように構成される検索ユニットであって、前記Ｗｅｂモジュールメソッドは、パラメータ宣言と、事前設定された戻りパラメータ宣言と、を含む、検索ユニットと、
前記パラメータ宣言に基づいて、前記クライアント要求に対応する要求データをＷｅｂコンテキストから取得するように構成される取得ユニットであって、前記事前設定された戻りパラメータ宣言は、戻り値が記憶される、前記Ｗｅｂコンテキストのデータ範囲を示す、取得ユニットと
前記戻り値を生成するために、前記要求データに基づいて、前記Ｗｅｂモジュールメソッドを呼び出すように構成される呼び出しメソッドユニットと、
更新されたＷｅｂコンテキストを生成するために、前記事前設定された戻りパラメータ宣言に基づいて、前記戻り値を前記Ｗｅｂコンテキスト内に記憶するように構成される記憶ユニットと、
前記更新されたＷｅｂコンテキストに基づいて、Ｗｅｂページをレンダリングするように構成されるレンダリングユニットと、
を備える、サーバシステム。
【請求項９】
前記取得ユニットは、
前記Ｗｅｂコンテキスト内の前記要求データのデータソースを示すパラメータ注釈と、前記データソース内の前記要求データのデータ項目を示すパラメータ注釈属性と、を取得するために、前記パラメータ宣言を分析するように構成される第１の分析モジュール
を備える、請求項８に記載のサーバシステム。
【請求項１０】
前記取得ユニットは、
前記パラメータ注釈に基づいて、前記要求データを含む前記データソースを決定するように構成される第１の決定モジュールと、
前記パラメータ注釈属性に基づいて、前記クライアント要求に対応する前記データ項目を決定するように構成される第２の決定モジュールと、
をさらに備える、請求項９に記載のサーバシステム。
【請求項１１】
前記パラメータ宣言に含まれるパラメータ型と前記戻り値に対応するパラメータ型とが不一致であると決定するように構成される決定モジュールと、
所定の規則に基づいて、前記要求データを前記戻り値に対応する前記パラメータ型から前記パラメータ宣言に含まれる前記パラメータ型に変換するように構成される変換モジュールと、
をさらに備える、請求項８に記載のサーバシステム。
【請求項１２】
前記Ｗｅｂコンテキストの前記データ範囲を示す戻りパラメータ注釈を取得するために、前記事前設定された戻りパラメータ宣言を分析するように構成される第２の分析モジュールをさらに備える、請求項８に記載のサーバシステム。
【請求項１３】
前記クライアント要求に対応する前記Ｗｅｂモジュールメソッドがインスタンスを含まないと決定するように構成される決定ユニットと、
前記決定後に、前記クライアント要求に対応するＷｅｂモジュールインスタンスを作成するように構成されるインスタンス作成ユニットと、
をさらに備える、請求項８に記載のサーバシステム。
【請求項１４】
Ｗｅｂモジュールインスタンスをキャッシュし、かつ
別のクライアント要求を受信した後に、前記Ｗｅｂモジュールインスタンスを使用して前記Ｗｅｂモジュールメソッドを呼び出すように構成されるキャッシュユニット
をさらに備える、請求項１１に記載のサーバシステム。
【請求項１５】
１つ以上のプロセッサによって実行されるときに、
クライアント要求に応じて、ＷｅｂサーバのＷｅｂモジュールおよび対応するＷｅｂモジュールメソッドを配置する行為と、
前記対応するＷｅｂモジュールに基づいて、前記クライアント要求に関連付けられる要求データを記憶するＷｅｂコンテキストのデータソースを示す事前設定されたパラメータ宣言を決定する行為と、
前記事前設定されたパラメータ宣言に基づいて、前記要求データを前記Ｗｅｂコンテキストから取得する行為と、
戻り値を生成するために、前記要求データを使用することによって、前記Ｗｅｂモジュールメソッドを呼び出す行為と、
前記Ｗｅｂモジュールメソッドの事前設定された戻りパラメータ宣言に基づいて、前記戻り値を記憶することによって前記Ｗｅｂコンテキストを更新する行為であって、前記事前設定された戻りパラメータ宣言は、戻り値が記憶される、前記Ｗｅｂコンテキストのデータ範囲を示す、更新する行為と、
前記更新されたＷｅｂコンテキストに基づいて、前記戻り値をレンダリングする行為と、
を含む行為を実行するように前記１つ以上のプロセッサを構成する命令でコード化された、１つ以上のコンピュータ可読媒体。
【請求項１６】
前記取得する行為は、
前記Ｗｅｂコンテキスト内の前記要求データの前記データソースを示すパラメータ注釈と、前記データソース内の前記要求データのデータ項目を示すパラメータ注釈属性と、を取得するために、前記事前設定されたパラメータ宣言を分析することと、
前記パラメータ注釈に基づいて、前記要求データに対応する前記データソースを前記Ｗｅｂコンテキスト内で決定することと、
前記パラメータ注釈属性に基づいて、前記クライアント要求に対応する前記データ項目を前記データソース内で決定することと、
を含む、請求項１５に記載の１つ以上のコンピュータ可読媒体。
【請求項１７】
前記Ｗｅｂモジュールが、モデルビューコントローラ（ＭＶＣ）のコントローラであり、前記Ｗｅｂモジュールが、前記コントローラの機能である、請求項１５に記載の１つ以上のコンピュータ可読媒体。
【請求項１８】
前記Ｗｅｂモジュールメソッドは、ハイパーテキストマークアップ言語（ＨＴＭＬ）またはクエリ文字列形式として実装される、請求項１５に記載の１つ以上のコンピュータ可読媒体。
【請求項１９】
前記事前設定されたパラメータ宣言に含まれるパラメータ型と前記戻り値に対応するパラメータ型とが不一致であると決定し、その後に、所定の規則に基づいて、前記要求データを前記戻り値に対応する前記パラメータ型から前記事前設定されたパラメータ宣言に含まれる前記パラメータ型に転換することと、
前記Ｗｅｂモジュールメソッドが前記クライアント要求に対応するインスタンスを含まないと決定し、その後に、前記クライアント要求に対応するＷｅｂモジュールインスタンスを生成することと、
をさらに含む、請求項１５に記載の１つ以上のコンピュータ可読媒体。
【請求項２０】
前記戻り値に関連付けられる前記Ｗｅｂコンテキストの範囲を示す戻りパラメータ注釈を取得するために、前記事前設定された戻りパラメータ宣言を分析することと、
前記呼び出されたＷｅｂモジュールメソッドに関連付けられる前記戻り値を前記Ｗｅｂコンテキストの前記範囲内に記憶することと、
をさらに含む、請求項１５に記載の１つ以上のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、Ｗｅｂ技術の分野に関する。より具体的には、本開示は、Ｗｅｂアクセスを実装するための方法およびＷｅｂサーバに関する。
【０００２】
関連出願の相互参照
本出願は、２０１０年１２月３１日出願、表題「ＭＥＴＨＯＤ  ＡＮＤ  ＷＥＢ  ＳＥＥＶＥＲ  ＦＯＲ  ＩＭＰＬＥＭＥＮＴＩＮＧ  ＷＥＢ  ＡＣＣＥＳＳ」の中国特許出願第２０１０１０６１７５８０．０号に対する優先権を主張するものであり、参照によりその全体が本明細書に組み込まれる。
【背景技術】
【０００３】
Ｗｅｂアクセスを実装するために、クライアントは、要求を処理するＷｅｂサーバに要求を送信する。それに応じて、Ｗｅｂサーバの対応するＷｅｂモジュールは、Ｗｅｂアクセスを可能にするために、クライアントに返信される応答情報を生成する。Ｗｅｂモジュールは、Ｗｅｂサーバ内の特別な機能を有するプログラムユニットである。
【０００４】
現在、アプリケーションプログラム構造を示すためのモデルビューコントローラ（ＭＶＣ）、ならびに構造内の機能および対話を支援するＷｅｂ開発環境が増えている。ＭＶＣ下で、このモデルは、データパッキングを管理する。ビューは、このモデルを表示ページにレンダリングし、特に、データ入力／出力機能を実装する。そしてコントローラは、アプリケーション論理を完成させる。
【０００５】
これらの環境において、Ｗｅｂサーバは、クライアント要求を受信した後に、要求データを取得し、インスタンスバリアントを介して応答データを提供することができる。しかしながら、ＷｅｂサーバのＷｅｂモジュールが多くの異なる呼び出しメソッドを実装するときに、問題が生じる場合もある。これは、例えば、Ｗｅｂモジュールの個々の呼び出しメソッドに関連付けられる要求データおよび応答データがインスタンスバリアントに割り当てられなければならないためである。しかしながら、これらの呼び出しメソッドは、異なるデータ（例えば、要求データおよび応答データ）を説明することも特定することもない。したがって、Ｗｅｂサーバは、クライアント要求への応答により多くの時間を費やし得る。結果として、Ｗｅｂサーバの効率および性能が低下し得る。
【発明の概要】
【０００６】
この発明の概要は、発明を実施するための形態において以下にさらに記載される概念の選択を簡易化された形式で紹介するために提供される。この発明の概要は、特許請求された対象の重要な特徴または不可欠な特徴を明らかにすることを意図するものではなく、また、特許請求された対象の範囲を限定するために使用されることを意図するものでもない。
【０００７】
本開示は、例えば、Ｗｅｂアクセスを実装するための方法およびサーバを提供する。いくつかの態様において、Ｗｅｂアクセスを実装することは、クライアント要求に対応するＷｅｂモジュールメソッドを検索することを含む。Ｗｅｂモジュールメソッドに含まれるパラメータ宣言に基づいて、クライアント要求に対応する要求データは、Ｗｅｂコンテキストから取得される。その後、Ｗｅｂモジュールメソッドは、戻り値を取得するために、入力パラメータとして要求データを使用して呼び出される。戻り値は、どのＷｅｂページがレンダリングされるかに基づいて、Ｗｅｂコンテキスト内に記憶される。いくつかの態様において、Ｗｅｂアクセスを実装することはさらに、Ｗｅｂモジュールメソッドのパラメータ宣言を分析することと、要求データに関連付けられるデータ範囲およびデータ項目を検索することとを含む。いくつかの態様では、Ｗｅｂアクセスを実装することはさらに、インスタンスが存在しないという決定に応じて、クライアント要求に対応するＷｅｂモジュールインスタンスを生成することを含む。
【図面の簡単な説明】
【０００８】
発明を実施するための形態は、添付の図を参照して説明される。異なる図における同一の参照番号の使用は、類似または同一の品目を示す。
【図１】Ｗｅｂアクセスを実装する例示的なプロセスを示す流れ図である。
【図２】Ｗｅｂアクセスを実装する別の例示的なプロセスを示す流れ図である。
【図３】Ｗｅｂアクセスを実装するさらに別の例示的なプロセスを示す流れ図である。
【図４】例示的なサーバシステムの詳細を示す概略ブロック図である。
【図５】例示的なメモリの詳細を示す概略ブロック図である。
【図６】別の例示的なメモリの詳細を示す概略ブロック図である。
【発明を実施するための形態】
【０００９】
Ｗｅｂアクセスの方法およびＷｅｂアクセスのためのサーバの詳細な説明は、添付の図を参照して記述される。
【００１０】
本開示は、要求データとインスタンスバリアントに関連付けられる応答データを区別し、Ｗｅｂモジュールメソッドにおいて対応するパラメータ記述を提供し、かつＷｅｂモジュールの効率および性能を高めるための方法およびシステムを記載する。
【００１１】
例えば、モデルビューコントローラ（ＭＶＣ）設計モデルにおいて、Ｗｅｂアクセスを実装するために、Ｗｅｂサーバは、クライアント要求を受信し、要求された機能に基づいて、対応するＷｅｂモジュール（すなわち、クライアントがログイン要求を提示した場合にログイン要求を処理するＷｅｂモジュール）を検索する。その後、Ｗｅｂモジュールインスタンスおよび対応するインスタンスバリアントが作成される。インスタンスバリアントは、要求データおよびクライアント要求に関連付けられる応答データをキャッシュするために作成される。Ｗｅｂサーバは、要求データをインスタンスバリアントに割り当て、Ｗｅｂモジュールのメソッドのインスタンスを呼び出し、インスタンスバリアントに対する戻り値（すなわち、クライアント要求に関連付けられる応答データ）をキャッシュし、最後に、インスタンスバリアントに基づいてＷｅｂページをレンダリングする。要求データおよびその対応する応答データは、異なるＷｅｂモジュール間でデータを交換するために、Ｗｅｂサーバ内のＷｅｂコンテキスト内に記憶される。
【００１２】
その一方で、以下に記載の技術は、既存の技術よりも効率的かつ正確にＷｅｂアクセスを実装することを可能にする。そうするために、パラメータ宣言および対応する戻りパラメータ宣言は、Ｗｅｂモジュールメソッドにおいて事前設定される。パラメータ宣言は、クライアント要求に応じてＷｅｂコンテキストから取得される要求データのソースを示す。戻りパラメータ宣言は、Ｗｅｂモジュールメソッドを呼び出して戻り値を取得した後に戻り値が記憶されるＷｅｂコンテキストのある特定の範囲を示す。したがって、Ｗｅｂサーバは、要求データの属性を効率的かつ正確に識別し、クライアント要求に対応するＷｅｂコンテキストデータから取得される要求データを処理することができる。その一方で、Ｗｅｂサーバは、キャッシュを効率的かつ正確に配置し、Ｗｅｂコンテキスト内に戻り値を記憶し、したがって、処理工程を減らし、Ｗｅｂサーバの効率および性能を高めることができる。
【００１３】
図１〜３は、Ｗｅｂアクセスを実装する例示的なプロセスを示す流れ図である。これらのプロセスは、ハードウェア、ソフトウェア、またはそれらの組み合わせにおいて実装することができる一連の動作を表す論理流れ図におけるブロックの集合として図示されている。これらのプロセスを様々な環境およびデバイスを使用して実行してもよい。
【００１４】
容易に理解できるように、方法１００、２００、および３００は、図１、２、および３において独立したブロックで表される別個の工程として描写されている。しかしながら、これらの別個に描写された工程は、それらの実行において、必ずしも順序に依存すると解釈されるべきではない。プロセスが記載される順序が限定的であると解釈されることを意図するものではなく、本方法または代替の方法を実装するために、あらゆる数の記載のプロセスブロックを任意の順序で組み合わせてもよい。さらに、提供される工程のうちの１つ以上が省略され得る可能性もある。
【００１５】
図１は、Ｗｅｂアクセスを実装する例示的なプロセスを示す流れ図である。１０１において、Ｗｅｂサーバは、Ｗｅｂモジュールおよび受信したクライアント要求に対応するＷｅｂモジュールメソッドを検索する。いくつかの実施形態において、Ｗｅｂサーバは、クライアント要求のユニフォームリソースロケータ（ＵＲＬ）に基づいてクライアント要求を処理するＷｅｂモジュールを検索し、Ｗｅｂモジュールは、対応するアプリケーションメソッド（すなわち、Ｗｅｂモジュールメソッド）を含有する。例えば、Ｗｅｂサーバが、クライアント要求が命令要求であると認める場合、Ｗｅｂサーバは、命令を処理するＷｅｂモジュールを検索する。Ｗｅｂモジュールは、クライアント要求によって示される異なるアプリケーションに基づいて変化する。いくつかの実施形態において、Ｗｅｂモジュールメソッドは、ある特定のＷｅｂモジュールの挙動を示す。
【００１６】
１０２において、Ｗｅｂサーバは、Ｗｅｂモジュールメソッドのパラメータ宣言に基づいて、クライアント要求に対応する要求データをＷｅｂコンテキストから取得する。いくつかの実施形態において、Ｗｅｂモジュールメソッドは、パラメータ宣言を含有し、Ｗｅｂサーバは、Ｗｅｂモジュールメソッドのパラメータ宣言に基づいて、要求データをＷｅｂコンテキストから取得することができる。パラメータ宣言は、Ｗｅｂモジュールメソッドにおいて事前設定されてもよく、この事前設定されたパラメータ宣言は、クライアント要求に応じてＷｅｂコンテキストから取得される要求データのソースを示す。いくつかの実施形態において、パラメータ宣言は、コンテンツに対して要求データの存在を示し得る。より詳細な説明が以下に提供される。
【００１７】
Ｗｅｂコンテキストは、Ｗｅｂサーバの記憶ユニットであり、機能およびデータ型に基づいて、いくつかの範囲に分けられてもよい。異なる範囲内のデータは、異なるＷｅｂモジュールによって異なる可視性を有する。例えば、「パラメータ」範囲は、現在のクライアント要求によって提示されるデータを記憶し、「要求」範囲は、クライアントが要求してからＷｅｂサーバが応答し終えるまでの間、異なるＷｅｂモジュールによって共有されるデータを記憶し、「クッキー」範囲は、複数の要求を有する現在のユーザによって共有されるクライアントクッキーデータを遮断および／または記憶し、「セッション」範囲は、複数の要求を有する現在のユーザによって共有されるデータを遮断および／または記憶し、「アプリケーション」範囲は、Ｗｅｂサーバの動作中にすべてのオンラインユーザによって共有されるデータを遮断および／または記憶する。
【００１８】
１０３において、Ｗｅｂサーバは、Ｗｅｂモジュールメソッドの入力パラメータとして要求データを使用することによって、Ｗｅｂモジュールメソッドを呼び出す。いくつかの実施形態において、１０２において取得された要求データは、Ｗｅｂモジュールメソッドの入力パラメータとして使用され、１０１において検索されるＷｅｂモジュールメソッドは、Ｗｅｂサーバがクライアント要求に応答した後、戻り値、すなわち、応答データを取得するために呼び出される。
【００１９】
１０４において、Ｗｅｂサーバは、Ｗｅｂモジュールメソッドの戻りパラメータ宣言に基づいて、戻り値をＷｅｂコンテキスト内に記憶する。Ｗｅｂモジュールメソッドは、パラメータ宣言に加えて、戻りパラメータ宣言を含有する。戻りパラメータ宣言は、Ｗｅｂモジュールメソッドが呼び出され、かつ戻り値が取得された後に戻り値が記憶されるＷｅｂコンテキストのある特定の範囲を示す。したがって、Ｗｅｂモジュールメソッドを呼び出した後、Ｗｅｂサーバは、戻りパラメータ宣言によって示されるある特定の範囲に基づいて、戻り値をＷｅｂコンテキスト内に記憶する。
【００２０】
１０５において、Ｗｅｂサーバは、Ｗｅｂコンテキストの戻り値をその後にクライアントに表示されるＷｅｂページとしてレンダリングする。Ｗｅｂサーバの他のモジュールは、戻り値をＷｅｂコンテキストから取得し、戻り値をＷｅｂページとしてレンダリングし、そのページをクライアントに表示する。
【００２１】
いくつかの実施形態において、Ｗｅｂモジュールは、コントローラであり、その対応するＷｅｂモジュールメソッドは、Ｗｅｂモジュールがクライアント要求を処理する際のＭＶＣ設計モデルにおけるコントローラ機能である。例えば、クライアント要求がログイン要求であると仮定する。結果として、対応するコントローラは、ユーザのログインページに対応するＵＲＬに基づいて検索され、コントローラは、ログイン挙動の対応する機能を有する。したがって、本開示に記載の技術をＭＶＣ設計モデルに適用してもよい。Ｗｅｂモジュールがコントローラであり、Ｗｅｂモジュールメソッドが機能であり、コントローラの処理およびコントローラ機能は、その技術に一致する。
【００２２】
図２は、Ｗｅｂアクセスを実装する別の例示的なプロセスを示す流れ図である。２０１において、Ｗｅｂサーバは、Ｗｅｂモジュールおよび受信したクライアント要求に対応するＷｅｂモジュールメソッドを検索する。２０２において、Ｗｅｂサーバは、パラメータ注釈およびパラメータ注釈属性を取得するために、Ｗｅｂモジュールメソッドのパラメータ宣言を分析する。パラメータ注釈は、Ｗｅｂコンテキスト内の要求データのデータソースを示し、パラメータ注釈属性は、データソース内の要求データのデータ項目を示す。
【００２３】
いくつかの実施形態において、メソッドのパラメータ宣言および戻り値宣言を事前設定するために、従来の注釈技術を採用してもよい。パラメータ宣言および関連した戻り値宣言を分析するために反射技法を使用して、パラメータ注釈およびパラメータ注釈属性を取得することができる。
【００２４】
いくつかの実施形態において、Ｗｅｂモジュールメソッドのパラメータ宣言および戻りパラメータ宣言は、要求データ、入力バインディング論理、戻り値、および出力バインディング論理を示す。例えば、事前設定されたＷｅｂモジュールメソッドを、以下のように提供されるオブジェクト指向プログラミング言語（例えば、Ｊａｖａ（登録商標））として実装することができる：
Ｐｕｂｌｉｃ［ＲｅｔｕｒｎＡｎｎｏｔａｔｉｏｎ］ＲｅｔｕｒｎＴｙｐｅ  ＭｅｔｈｏｄＮａｍｅ（
［Ａｎｎｏｔａｔｉｏｎ１（ａｎｎｏｔａｔｉｏｎＰｒｏｐｅｒｔｙ）Ｔｙｐｅ１  Ａｒｇｕｍｅｎｔ１，
Ａｎｎｏｔａｔｉｏｎ２（ａｎｎｏｔａｔｉｏｎＰｒｏｐｅｒｔｙ）Ｔｙｐｅ２  Ａｒｇｕｍｅｎｔ２，
…
ＡｎｎｏｔａｔｉｏｎＮ（ａｎｎｏｔａｔｉｏｎＰｒｏｐｅｒｔｙ）ＴｙｐｅＮ  ＡｒｇｕｍｅｎｔＮ］
）
ＭｅｔｈｏｄＮａｍｅは、アプリケーションメソッドの名称を示し、Ａｎｎｏｔａｔｉｏｎ１は、要求データのデータソースを示すパラメータ注釈を示し、ａｎｎｏｔａｔｉｏｎＰｒｏｐｅｒｔｙは、パラメータ注釈属性を示し、かつ要求パラメータのデータ項目を表し、Ａｒｇｕｍｅｎｔ１は、バインディング分析論理を通常含まないが、属性の注釈が利用可能なときに要求データのデータ項目を示すために使用することができる要求パラメータの名称を示す。メソッドによって処理される様々なアプリケーションに基づいて、どのパラメータも要求データを示さないように設計することができるか、または複数のパラメータが要求データを示すように設計することができる。例えば、Ａｒｇｕｍｅｎｔ２，…ＡｒｇｕｍｅｎｔＮは、Ｎパラメータ宣言を示す。Ｔｙｐｅ１は、仮パラメータ宣言に含まれてもよいパラメータ型を示し、要求データのデータ型を示す。
【００２５】
ＲｅｔｕｒｎＡｎｎｏｔａｔｉｏｎは、メソッドの戻りパラメータ宣言に含まれる戻りパラメータ注釈を示し、戻り値がＷｅｂコンテキスト内のどこに記憶されるかを示す。ＲｅｔｕｒｎＴｙｐｅは、戻り値のデータ型を示すために戻りパラメータ宣言に含まれ得る戻りパラメータ型を示す。
【００２６】
いくつかの実施形態において、パラメータ宣言または戻りパラメータ宣言のいくつかもしくはすべての属性を省略することができる（すなわち、パラメータ注釈または戻りパラメータ注釈のないＷｅｂモジュールメソッド）。この状況において、Ｗｅｂサーバは、パラメータ宣言または戻りパラメータ宣言を分析し、パラメータ宣言または戻りパラメータ宣言のデフォルト属性を採用する。例えば、パラメータ注釈が存在しない場合、デフォルト要求データは、クライアントによって現在提示されるデータである。パラメータ注釈および戻りパラメータ注釈を、［…］で表すことができ、省略を示す。言い換えると、Ｗｅｂモジュールメソッドは、パラメータ注釈も戻りパラメータ注釈も有しない場合もある。
【００２７】
２０３において、Ｗｅｂサーバは、パラメータ注釈に基づいて、要求データに対応するデータ範囲をＷｅｂコンテキスト内で検索する。例えば、パラメータ注釈が「＠ｐａｒａｍｅｔｅｒ」である場合、その注釈は、要求データがクライアントによって現在提示されるデータであることを示し、Ｗｅｂサーバは、Ｗｅｂコンテキスト内の「ｐａｒａｍｅｔｅｒ」の範囲内に要求データを配置してもよい。同様に、「＠ｒｅｑｕｅｓｔ」は、要求データがＷｅｂコンテキスト内の「ｒｅｑｕｅｓｔ」の範囲内に配置されることを示し、「＠ｓｅｓｓｉｏｎ」は、要求データがＷｅｂコンテキスト内の「ｓｅｓｓｉｏｎ」の範囲内に配置されることを示す。
【００２８】
いくつかの実施形態において、パラメータ宣言は、パラメータ注釈を有しない。この状況において、Ｗｅｂサーバは、Ｗｅｂモジュールメソッドのデフォルトデータソース情報を採用する。例えば、パラメータ宣言は、「ｐｕｂｌｉｃ  Ｂｏｏｌｅａｎ  ｌｏｇｉｎ（Ｓｔｒｉｎｇ  ｕｓｅｒｎａｍｅ，Ｓｔｒｉｎｇ  ｐａｓｓｗｏｒｄ）」で表され、パラメータ注釈を有しない。結果として、データ要求、すなわち、クライアントによって現在提示される要求データをＷｅｂコンテキスト内のパラメータの範囲内に配置することができ、対応するデータ項目を、「ｕｓｅｒｎａｍｅ」および「ｐａｓｓｗｏｒｄ」で表すことができる。
【００２９】
いくつかの実施形態において、要求データを、Ｗｅｂコンテキストの異なる範囲内に配置することができ、要求データは、Ｗｅｂサーバ内に現在提示または記憶され、かつ現在のクライアント要求に関連したデータであり得る。
【００３０】
２０４において、Ｗｅｂサーバは、パラメータ注釈属性に基づいて、クライアント要求に対応するデータ項目をＷｅｂコンテキストのデータの範囲内で検索する。「ｕｎａｍｅ」がパラメータ注釈属性として事前設定され、クライアントによって提示されるＨＴＴＰパラメータを示し、「Ｓｔｒｉｎｇ」が、パラメータ型として事前設定され、要求データの種類が文字列であることを示し、「ｕｓｅｒｎａｍｅ」が、パラメータの名称として事前設定され、ログインユーザ名を示し、「Ｂｏｏｌｅａｎ」が、Ｗｅｂモジュールメソッドの戻り値として事前設定され、ログインが成功したかを示すと仮定する。パラメータ注釈属性（「ｕｎａｍｅ」）が省略される場合、前述のパラメータ「ｕｓｅｒｎａｍｅ」が代用される。結果として、パラメータ宣言を、ｐｕｂｌｉｃ  Ｂｏｏｌｅａｎ  ｌｏｇｉｎ（Ｓｔｒｉｎｇ  ｕｓｅｒｎａｍｅ，Ｓｔｒｉｎｇ  ｐａｓｓｗｏｒｄ）で表すことができる。
【００３１】
いくつかの実施形態において、パラメータ注釈は、要求データが現在提示されるデータであることを示すことができ、「ｕｎａｍｅ」および「ｐａｓｓｗｄ」は、記憶された要求データに対応するパラメータ注釈を表すことができ、現在提示されたデータ内に記憶されたデータ項目を示す。例えば、ユーザが、ログインページ上の対応する入力ボックスにユーザ名および／またはパスワードを打ち込むと、ユーザ名および／またはパスワードは、データ項目（例えば、「ｕｎａｍｅ」および「ｐａｓｓｗｄ」）に対応する。言い換えると、ユーザ名およびパスワードを、それぞれ、データ項目「ｕｎａｍｅ」および「ｐａｓｓｗｄ」内に記憶することができる。
【００３２】
例えば、登録メソッド（レジスタ）が、パラメータ宣言「＠Ｐａｒａｍｅｔｅｒ（‘ｕｓｅｒ’）」を含むと仮定する。結果として、この宣言は、「ｕｓｅｒ」と名付けられたデータがＨＴＴＰパラメータから取得されることを示す。パラメータ型は「ｕｓｅｒ」であり、ＷｅｂサーバのＷｅｂフレームによってＷｅｂコンテキストから取得される要求データが、「ｕｓｅｒ」型の構造要件を満たさなければならないことを示す。「ｕｓｅｒ」属性に基づいて「ｕｓｅｒ」要求データを取得するために、クライアントによって提示されるＨＴＴＰパラメータは、「ｕｓｅｒ」注釈のパラメータ値およびその属性のそれぞれの名称を含むことができる。上の例のＨＴＭＬコードを、＜ｉｎｐｕｔ  ｎａｍｅ＝”ｕｓｅｒ．ｕｓｅｒｎａｍｅ”＞＜ｉｎｐｕｔ  ｎａｍｅ＝”ｕｓｅｒ．ｐａｓｓｗｏｄ”＞＜ｉｎｐｕｔ  ｎａｍｅ＝”ｕｓｅｒ．ｅｍａｉｌ”＞と表すことができる。同様に、クエリ文字列形式パラメータを、ｕｓｅｒ．ｕｓｅｒｎａｍｅ＝Ｊａｃｋｙ＆ｕｓｅｒ．ｐａｓｓｗｏｒｄ＝１２３４５６＆ｕｓｅｒ．ｅｍａｉｌ＝ｊａｃｋｙ＠ａｂｃ．ｃｏｍと表すことができる。結果として、Ｗｅｂコンテキストから取得される要求データは、Ｊａｃｋｙ、１２３４５６、およびｊａｃｋｙ＠ａｂｃ．ｃｏｍである。
【００３３】
２０５において、Ｗｅｂサーバは、Ｗｅｂモジュールメソッドの入力パラメータとして要求データを使用することによって、Ｗｅｂモジュールメソッドを呼び出す。ブロック２０６において、Ｗｅｂサーバは、戻り値に対応するＷｅｂコンテキストの範囲を示す戻りパラメータ注釈を取得するために、戻りパラメータ宣言を分析する。戻り値を取得した後、戻りパラメータ宣言の戻りパラメータ注釈を取得することができる。戻りパラメータ注釈は、戻り値が記憶されるＷｅｂコンテキストの範囲を示す。
【００３４】
いくつかの実施形態において、戻りパラメータ宣言は、要求データの種類を示す戻りパラメータ型を含んでもよい。例えば、戻りパラメータ宣言を、ｐｕｂｌｉｃ＠ｓｅｓｓｉｏｎ（“ｃｌｉｃｋ  Ｔｉｍｅｓ”）ｉｎｔ  ｃｌｉｃｋ（）として事前設定してもよい。メソッド名としての「ｃｌｉｃｋ」は、クリック動作を示し、戻りパラメータ注釈としての「＠ｓｅｓｓｉｏｎ（“ｃｌｉｃｋ  Ｔｉｍｅｓ”）」は、Ｗｅｂコンテキストのセッションの範囲内に記憶された「ｃｌｉｃｋ  Ｔｉｍｅｓ」のバリアントを示す。戻りパラメータ型としての「ｉｎｔ」は、このメソッドの戻り値型を示す。
【００３５】
いくつかの実施形態において、戻りパラメータ宣言は存在しない（例えば、「ｖｏｉｄ」キーワード宣言を使用して）。結果として、Ｗｅｂモジュールは、データをクライアントに出力する必要はない。したがって、Ｗｅｂモジュールメソッドを呼び出した後、Ｗｅｂモジュールは、直接クライアントに戻る（すなわち、ｐｕｂｌｉｃ  ｖｏｉｄ  ｉｎｔ  ｃｌｉｃｋ（））。
【００３６】
２０７において、Ｗｅｂサーバは、戻りパラメータ注釈に基づいて、Ｗｅｂコンテキスト内に戻り値を記憶する。２０８において、Ｗｅｂサーバは、Ｗｅｂコンテキストの戻り値をＷｅｂページにレンダリングする。
【００３７】
図３は、Ｗｅｂアクセスを実装する例示的なプロセスを示す流れ図である。３０１において、Ｗｅｂサーバは、Ｗｅｂモジュールおよび受信したクライアント要求に対応するＷｅｂモジュールメソッドを検索する。３０２において、Ｗｅｂサーバは、パラメータ注釈およびパラメータ注釈属性を取得するために、Ｗｅｂモジュールメソッドのパラメータ宣言を分析する。パラメータ注釈は、Ｗｅｂコンテキスト内の要求データのデータソースを示し、パラメータ注釈属性は、データソース内の要求データのデータ項目を示す。いくつかの実施形態において、Ｗｅｂサーバは、パラメータ注釈およびパラメータ注釈属性を取得するためにパラメータ宣言を分析するだけでなく、要求データのデータ型を示す取得したパラメータ型も分析する。例えば、パラメータ型を、整数データを示す「ｉｎｔ」、または要求データが文字列であることを示す「ｓｔｒｉｎｇ」で表すことができる。
【００３８】
３０３において、Ｗｅｂサーバは、パラメータ注釈に基づいて、要求データに対応するデータ範囲をＷｅｂコンテキスト内で検索する。３０４において、Ｗｅｂサーバは、パラメータ注釈属性に基づいて、クライアント要求に対応するデータ項目をＷｅｂコンテキストのデータ範囲内で検索する。
【００３９】
３０５において、Ｗｅｂサーバは、要求データのパラメータ型および実際の型が一致しているかを決定する。これらの２つの型が不一致である場合（すなわち、３０５から分岐した「いいえ」）、３０６において、要求データは、所定の規則（すなわち、「パラメータバインディング」）に基づいて、実際の型からパラメータ型に転換される。これらの２つの型が一致している場合（すなわち、３０５から分岐した「はい」）、プロセスは、直接３０７に進む。
【００４０】
３０７において、Ｗｅｂサーバは、インスタンスがクライアント要求に対応するＷｅｂコンポーネントメソッドに存在するかを決定する。インスタンスが存在しない場合（すなわち、３０７から分岐した「いいえ」）、３０８において、Ｗｅｂサーバは、クライアント要求に対応するＷｅｂモジュールインスタンスを生成する。いくつかの実施形態において、インスタンスが存在しない場合、Ｗｅｂコンポーネントメソッドがまだ呼び出されていないことを示す。インスタンスが存在する場合（すなわち、３０７から分岐した「はい」）、プロセスは、直接３０９に進む。いくつかの実施形態において、インスタンスは、Ｗｅｂモジュールメソッドにすでに存在しており、Ｗｅｂモジュールメソッドが呼び出されたことを示す。
【００４１】
Ｗｅｂモジュールメソッドは、呼び出される間、インスタンスを毎回生成する。生成されたインスタンスをキャッシュおよび共有することができる（例えば、ＷｅｂサーバのＷｅｂモジュール）。具体的には、インスタンスを、Ｗｅｂサーバのメモリユニットに登録することができる。次回、同一の機能要求に応じてインスタンスを再作成する必要はない。「同一の機能要求」とは、同一のアプリケーション機能を有するクライアント要求を指す（例えば、異なるクライアントによって提示される要求が「ログイン」を示す）。１人のクライアントが「ログイン」および「提示命令」を別々に要求する場合、これらの２つの要求は、異なる機能要求である。
【００４２】
３０９において、Ｗｅｂサーバは、入力パラメータとして要求データを使用して、Ｗｅｂモジュールインスタンスに関連付けられるＷｅｂモジュールメソッドを呼び出す。要求データは、Ｗｅｂコンテキスト内で検索されるパラメータ型またはデータ項目に変換されるデータであり得る。
【００４３】
３１０において、Ｗｅｂサーバは、戻りパラメータ注釈に基づいて、戻り値をＷｅｂコンテキスト内に記憶する。Ｗｅｂモジュールメソッドは、呼び出された後、戻り値を自動生成する。いくつかの実施形態において、戻り値は、要求データに関連付けられる応答データであり、事前設定された戻りパラメータ宣言に基づいて、Ｗｅｂコンテキストの対応する範囲内に記憶される。
【００４４】
３１１において、Ｗｅｂサーバは、Ｗｅｂコンテキストの戻り値をＷｅｂページとしてレンダリングする。いくつかの実施形態において、クライアント要求を処理するＷｅｂサーバの効率を、対応するＷｅｂモジュールインスタンスがＷｅｂサーバ内にすでに記憶されているかを決定することによってさらに改善することができる。
【００４５】
図４〜６は、例示的なサーバシステムおよび／またはシステムのメモリの詳細を示す概略ブロック図である。考察のために、システムおよびメモリは、図１〜３に示されるプロセス１００、２００、および３００を参照して説明される。しかしながら、本明細書に記載のシステムおよびメモリを使用して、異なるプロセスを実行してもよい。
【００４６】
図４は、プロセス１００等のプロセスを実装する例示的なサーバシステム４００の詳細を示す概略ブロック図である。サーバシステム４００を、任意の好適なデバイスとして構成してもよい。１つの例示的な構成において、コンピューティングデバイス４００は、１つ以上のプロセッサ４０７、入力／出力インターフェース４０８、ネットワークインターフェース４０９、およびメモリ４０１を含む。
【００４７】
メモリ４０１は、ランダムアクセスメモリ（ＲＡＭ）等の揮発性メモリおよび／または読み出し専用メモリ（ＲＯＭ）もしくはフラッシュＲＡＭ等の不揮発性メモリの形態のコンピュータ可読媒体を含んでもよい。メモリ４０１は、コンピュータ可読媒体の例である。
【００４８】
コンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、もしくは他のデータなどの情報の記憶のために任意の方法または技術で実装された、揮発性および不揮発性の、取り外し可能および取り外し不可能な媒体を含む。コンピュータ記憶媒体の例としては、相変化メモリ（ＰＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、他の種類のランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、電気的消去可能でプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリもしくは他のメモリ技術、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）もしくは他の光学式ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、またはコンピューティングデバイスによるアクセスのための情報を記憶するために使用することができる任意の他の非伝送媒体が挙げられるが、これらに限定されない。本明細書中で定義されるように、コンピュータ可読媒体は、変調されたデータ信号および搬送波などの一時的な媒体を含まない。
【００４９】
メモリ４０１をさらに詳細に参照して、メモリ４０１は、検索ユニット４０２、取得ユニット４０３、呼び出しメソッドユニット４０４、記憶ユニット４０５、レンダリングユニット４０６、およびＷｅｂアクセスのすべてまたは一部を実装するための１つ以上のアプリケーション（図４には図示されず）を記憶することができる。検索ユニット４０２は、Ｗｅｂモジュールおよび受信したクライアント要求に対応するＷｅｂモジュールメソッドを検索する。Ｗｅｂモジュールメソッドのパラメータ宣言に基づいて、取得ユニット４０２は、クライアント要求に対応する要求データをＷｅｂコンテキストから取得する。要求データを取得した後、呼び出しメソッドユニット４０３は、Ｗｅｂモジュールメソッドの入力パラメータとして要求データを使用することによって、Ｗｅｂモジュールメソッドを呼び出す。記憶ユニット４０４は、Ｗｅｂモジュールメソッドの戻りパラメータ宣言に基づいて、戻り値をＷｅｂコンテキスト内に記憶する。その後、レンダリングユニット４０５は、Ｗｅｂコンテキストの戻り値をその後にクライアントに表示されるＷｅｂページにレンダリングする。
【００５０】
いくつかの実施形態において、事前設定されたパラメータ宣言は、要求データがＷｅｂコンテキスト内に配置される場所を示し、事前設定された戻りパラメータ宣言は、Ｗｅｂモジュールメソッドを呼び出した後に戻り値がＷｅｂコンテキスト内に配置される場所を示す。Ｗｅｂモジュールは、メソッドのパラメータ宣言および戻りパラメータ宣言に基づいて、その関連データを処理することができる。Ｗｅｂモジュールは、要求データを取得するために、必ずしもインスタンスバリアントに依存するわけではない。ＷｅｂサーバのＷｅｂコンテナは、要求データをパラメータ宣言として入力することができる。その後、Ｗｅｂモジュールは、その宣言を入力パラメータとして使用することができ、したがって、処理工程を減らし、Ｗｅｂサーバの効率および性能を高める。
【００５１】
図５は、実装プロセス２００等のプロセスを実装するための例示的なメモリ５００の詳細を示す概略ブロック図である。メモリ５００は、図４のメモリ４０１と同様に、検索ユニット４０２、呼び出しメソッドユニット４０４、記憶ユニット４０５、およびレンダリングユニット４０６を記憶することができる。この図５の実装例において、メモリ５００はさらに、第１の分析モジュール５０１、第１の検索モジュール５０２、第２の検索モジュール５０３、および第２の分析モジュール５０４を記憶する。
【００５２】
いくつかの実施形態において、図４に示される取得ユニット４０３は、第１の分析モジュール５０１、第１の検索モジュール５０２、第２の検索モジュール５０３、および第２の分析モジュール５０４を含んでもよい。したがって、検索ユニット４０１を用いてＷｅｂモジュールおよびＷｅｂモジュールメソッドを検索した後、第１の分析モジュール５０１は、パラメータ注釈およびパラメータ注釈属性を取得するために、Ｗｅｂモジュールメソッドのパラメータ宣言を分析する。第１の検索モジュール５０２は、パラメータ注釈に基づいて、要求データに対応するデータ範囲をＷｅｂコンテキスト内で検索する。第２の検索モジュール５０３サーバは、パラメータ注釈属性に基づいて、クライアント要求に対応するデータ項目をＷｅｂコンテキストのデータ範囲内で検索する。第２の解決モジュール５０４は、戻り値に対応するＷｅｂコンテキストの範囲を示す戻りパラメータ注釈を取得するために、戻りパラメータ宣言を分析する。
【００５３】
図６は、プロセス３００等のプロセスを実装するための別の例示的なメモリ６００の詳細を示す概略ブロック図である。メモリ６００は、図５のメモリ５００と同様に、検索ユニット４０２、呼び出しメソッドユニット４０４、記憶ユニット４０５、レンダリングユニット４０６、第１の分析モジュール５０１、第１の検索モジュール５０２、第２の検索モジュール５０３、および第２の分析モジュール５０４を記憶することができる。この図６の実装例において、メモリ６００はさらに、決定モジュール６０１、変換モジュール６０２、決定ユニット６０３、インスタンス作成ユニット６０４、およびキャッシュユニット６０５を記憶する。
【００５４】
いくつかの実施形態において、決定モジュール６０１は、要求データのパラメータ型および実際の型が一致しているかを決定する。これらの２つの型が不一致である場合、変換モジュール６０２は、所定の規則に基づいて、要求データを実際の型からパラメータ型に変換する。これらの２つの型が一致している場合、決定ユニット６０３は、インスタンスがクライアント要求に対応するＷｅｂコンポーネントメソッドに存在するかを決定する。インスタンスが存在しない場合、インスタンス作成ユニット６０４は、クライアント要求に対応するＷｅｂモジュールインスタンスを生成する。インスタンスが存在する場合、呼び出しメソッドユニット４０４は、入力パラメータとして要求データを使用して、Ｗｅｂモジュールインスタンスに関連付けられるＷｅｂモジュールメソッドを呼び出す。
【００５５】
本開示において、「第１の」および「第２の」等の用語が、単に１つの構成要素／動作と別の構成要素／動作を区別するために使用されており、いかなる物理的関係もしくは順序を暗示することも必要とすることも意図するものではないことに留意されたい。容易に理解できるように、デバイスは、それらの異なる機能に従って異なるユニットとして示されており、実装例において、異なるユニットの機能を、１つまたはいくつかのソフトウェア／ハードウェアに実装してもよい。
【００５６】
本開示における実施形態は、単に図解目的であり、本開示の範囲を限定することを意図するものではない。当業者は、本開示に提供された実施形態に変更および改変を行うことが可能であろう。当業者が理解するであろういかなる変更および改変も、本開示の範囲内にある。
【図１】
0006016808.tif 000002
【図２】
0006016808.tif 000003
【図３】
0006016808.tif 000004
【図４】
0006016808.tif 000005
【図５】
0006016808.tif 000006
【図６】
0006016808.tif 000007