(57)【要約】【課題】ネットワークフォームのデータインスタンスに対して改変および／またはアクセスを行わずに、データインスタンスの改変に関連するデータ駆動型アクションを可能にする、システムおよび／または方法を提供すること。【解決手段】これらのシステムおよび／または方法は、一実施形態では、ネットワークフォームのデータインスタンスを変換せずに、ネットワークフォームに対するデータ駆動型アクションの結果をレンダリングする。別の実施形態では、これらのシステムおよび／または方法は、データ駆動型アクションを電子フォームのビュー中心の論理表現にマッピングする。【選択図】図４
2006285980.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ可読命令を有する１つまたは複数のコンピュータ可読媒体であって、前記コンピュータ可読命令は、コンピューティングデバイスによって実行されたとき、
ネットワークフォームの編集可能ビューを介してデータを受け取る動作であって、前記データは、前記データが前記ネットワークフォームのデータインスタンスを改変した場合に、前記データインスタンスに関連するアクションを駆動することができることと、
前記データインスタンスを改変せずに前記アクションを実行することと
を備えたアクトを前記コンピューティングデバイスに実行させることを特徴とするコンピュータ可読媒体。
【請求項２】
前記データが前記ネットワークフォームのビュー中心の論理表現のどのノードに関連するかを判定することをさらに備え、前記アクションを実行するアクトは、前記ノードに関連するアクションを実行することを備えたことを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項３】
前記アクションを実行するアクトは、前記データを受け取るアクトに続いて、前記データインスタンスにアクセスせずに実行されることを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項４】
前記データが前記アクションを駆動することができると判定することをさらに備えたことを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項５】
前記アクションの結果が前記データインスタンスを改変する場合に、前記結果が前記データインスタンスに関連する別のアクションを駆動することができるかどうか判定することと、前記アクションの結果が別のアクションを駆動することができる場合に、前記データインスタンスを改変せずに前記別のアクションを実行することとをさらに備えたことを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項６】
前記データインスタンスを変換せずに、前記アクションを実行するアクトの結果をレンダリングすることをさらに備えたことを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項７】
前記ネットワークフォームに関するローカルに記憶されたデータを、前記アクションを実行するアクトの結果で更新することをさらに備えたことを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項８】
前記アクションを実行する結果が前記編集可能ビューを改変することができるかどうか判定することをさらに備えたことを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項９】
前記アクションは検証操作を備えたことを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項１０】
コンピュータ可読命令を有する１つまたは複数のコンピュータ可読媒体であって、前記コンピュータ可読命令は、コンピューティングデバイスによって実行されたとき、
ネットワークフォームに対するデータ駆動型アクションの結果を受け取ることと、
前記ネットワークフォームのデータインスタンスを改変せずに、前記データ駆動型アクションの結果を前記ネットワークフォームの編集可能ビュー中でレンダリングすることと
を備えたアクトを前記コンピューティングデバイスに実行させることを特徴とするコンピュータ可読媒体。
【請求項１１】
前記ネットワークフォームのデータインスタンスを改変せずに前記データ駆動型アクションを実行することをさらに備えたことを特徴とする請求項１０に記載のコンピュータ可読媒体。
【請求項１２】
前記レンダリングするアクトは、前記ネットワークフォームのデータインスタンスにアクセスせずに実行されることを特徴とする請求項１０に記載のコンピュータ可読媒体。
【請求項１３】
前記受け取るアクトおよび前記レンダリングするアクトは、前記ネットワークフォームのデータインスタンスを有するネットワークコンピュータへのラウンドトリップなしで実行されることを特徴とする請求項１０に記載のコンピュータ可読媒体。
【請求項１４】
前記結果をレンダリングするアクトは、前記結果を有するノードに関連する、前記編集可能ビューの部分を再レンダリングするアクトを備えたことを特徴とする請求項１０に記載のコンピュータ可読媒体。
【請求項１５】
前記結果に関連する、前記ネットワークフォームのビュー中心の論理表現のノードをマークすることをさらに備え、前記結果をレンダリングするアクトは、前記ノードを再レンダリングすることを備えたことを特徴とする請求項１０に記載のコンピュータ可読媒体。
【請求項１６】
コンピュータ可読命令を有する１つまたは複数のコンピュータ可読媒体であって、前記コンピュータ可読命令は、コンピューティングデバイスによって実行されたとき、
データ駆動型アクションを電子フォームのデータインスタンスにマッピングする、前記データ駆動型アクションについての第１の関係を受け取ることと、
前記第１の関係に基づいて、前記データ駆動型アクションを前記電子フォームのビュー中心の論理表現にマッピングする第２の関係を構築することと
を備えたアクトを、前記コンピューティングデバイスに実行させることを特徴とするコンピュータ可読媒体。
【請求項１７】
前記第１の関係を前記第２の関係で置き換えることをさらに備えたことを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項１８】
前記第１の関係は、前記データ駆動型アクションを前記電子フォームのデータインスタンスのノードにマッピングする拡張可能マークアップ言語（ＸＭＬ）パス言語（ＸＰａｔｈ）を備えたことを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項１９】
前記第２の関係に基づいて、前記電子フォームの前記ビュー中心の論理表現に前記データ駆動型アクションで注釈を付けることをさらに備えたことを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項２０】
前記データ駆動型アクションから前記第１の関係を抽出することをさらに備えたことを特徴とする請求項１６に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークフォームに対するアクションに関する。
【背景技術】
【０００２】
電子フォームは、情報収集のために一般に使用されている。電子フォームは、ローカルで、またはイントラネットやインターネットなどの通信ネットワークを介して、使用することができる。ローカルで使用される電子フォームの場合は、ユーザのコンピュータが、電子フォームに関するビュー情報およびデータ情報にアクセスする。このビュー情報により、ユーザのコンピュータは、ユーザが電子フォームを閲覧し電子フォームにデータを入力するのを可能にすることができる。また、このデータ情報により、ユーザのコンピュータは、フィールドに入力されたデータを検証したり、複数のフィールドからのデータを加算して結果を別のフィールドに投入したりするなど、電子フォームに対するデータアクションを可能にすることができる。
【０００３】
ネットワークで使用される電子フォームの場合は、ユーザのコンピュータがネットワークコンピュータと通信して、電子フォームの使用を可能にする。このようにする際、しばしばユーザのネットワークブラウザは、ネットワークコンピュータからビュー情報は受け取るが、データ情報は受け取らない。このビュー情報を、ユーザのネットワークブラウザが使用して、ユーザによる電子フォームの閲覧および電子フォームへの情報入力を許可することができる。
【０００４】
電子フォームに対するデータアクションを可能にするために、ユーザのネットワークブラウザはしばしば、各データアクションの度にネットワークコンピュータと通信する必要がある。ユーザは例えば、ネットワークフォーム中のあるデータ入力フィールドに製品の価格を入力し、別のデータ入力フィールドにこれらの製品の数量を入力することができる。あるデータアクションは、製品の価格にその数量を掛けることによって合計金額を計算することができる。この合計金額をフォーム中で提示するために、しばしばユーザのネットワークブラウザは、価格と数量をネットワークコンピュータに送り、ネットワークコンピュータによって合計が計算されてフォーム全体の今やこの合計を含む新しいビュー情報が作成されてネットワークブラウザに送られてくるのを待つ。次いで、ネットワークブラウザは、この新しいビュー情報に基づいてユーザに合計を提示することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、ネットワークコンピュータとの通信は、ユーザの編集体験に悪影響を及ぼすのに十分なほど、ユーザのネットワークブラウザを遅くすることがある。場合によっては、ネットワークコンピュータは、ブラウザから要求を受け取り、データアクションを実行し、新しいビュー情報をブラウザに送るのに、かなりの時間がかかることがある。また、ネットワークコンピュータとの通信は、ネットワークのせいで、またはどのようにブラウザがネットワークコンピュータと通信するか（例えばダイヤルアップモデム使用）によって遅くなる場合があり、そのため、ユーザの編集体験に影響を及ぼす可能性がある。
【０００６】
加えて、ネットワークコンピュータにデータアクションを実行させることは、ネットワークコンピュータのリソースのいくらかを消費する。これらのリソースを消費することで、ネットワークコンピュータが他のユーザにサービスする能力は、遅くなるか不可能になることがある。
【０００７】
したがって、本発明は、ネットワークフォームに対するデータアクションを実行することに関する問題から生まれたものである。
【課題を解決するための手段】
【０００８】
ネットワークフォームのデータインスタンスに対して改変および／またはアクセスを行わずに、データインスタンスの改変に関連するデータ駆動型アクションを可能にする、システムおよび／または方法（「ツール」）について述べる。
【０００９】
本開示および図面を通して、同じコンポーネントおよび機能を参照する場合には同じ番号を使用する。
【発明を実施するための最良の形態】
【００１０】
（概観）
以下の開示では、ネットワークフォームのデータインスタンスに対して改変および／またはアクセスを行わずに、データインスタンスの改変に関連するデータ駆動型アクションを可能にする、１つまたは複数のツールについて述べる。一実施形態では、ツールは、ネットワークフォームのデータインスタンスにローカルにアクセスすることなく、また、データインスタンスを有するネットワークコンピュータとのラウンドトリップなどにより、データインスタンスにアクセスするために非ローカルに通信することなく、データ駆動型アクションを実行する。
【００１１】
別の実施形態では、ツールは、ネットワークフォームのデータインスタンスを変換せずに、ネットワークフォームに対するデータ駆動型アクションの結果をレンダリングする。このツールは、データインスタンスに対するアクセスおよび／または改変を必要とすることなく、このように行うことができる。これにより、ユーザは、このツールがネットワークフォームのデータインスタンスに対してアクセスまたは改変を要求することなく、ネットワークフォーム中のコントロールを編集することができ、ユーザの編集によって駆動されたデータ駆動型アクションの結果を見ることができる。これによりユーザは、データインスタンスを有するネットワークコンピュータへのラウンドトリップを待つことなく、フォームを編集することができ、この編集によって駆動されたアクションの結果を見ることができる。ラウンドトリップを実行する必要がないことは、ユーザの編集体験を、より円滑、高速、および／またはシームレスにすることによって改善することができる。アクションの結果を見るためにラウンドトリップを実行する必要がないことはまた、ネットワークフォームをサービスするネットワークコンピュータによって必要とされるリソースを低減することができる。
【００１２】
別の実施形態では、ツールは、データ駆動型アクションを電子フォームのビューテンプレートにマッピングする関係を構築する。このツールは、電子フォームのデータインスタンスに関するアクションのデータ中心マップを、電子フォームのビューテンプレートに関するビュー中心マップに変換することによって、このように行うことができる。このビュー中心マップを使用して、例えば、ツールがネットワークフォームのデータインスタンスにアクセスする必要なく、データ駆動型アクションを実行するのを可能にすることができる。
【００１３】
（例示的な動作環境）
これらのツールについて詳細に述べる前に、これらのツールをどこでどのように利用できるかを読者が理解するのを助けるために、例示的な動作環境に関する以下の考察を提供する。以下に提供する記述は、一例を構成するだけであり、ツールの適用をいずれか１つの特定の動作環境に限定するもではない。
【００１４】
図１に、このような動作環境の１つを一般に１００に示すが、この動作環境は、コンピュータ１０２、通信ネットワーク１０４、およびネットワークコンピュータ１０６を含む。コンピュータは、１つまたは複数のプロセッサ１０８、およびコンピュータ可読媒体１１０を備えるのが示されている。プロセッサは、コンピュータ可読媒体にアクセスすること、および／またはコンピュータ可読媒体を実行することができる。コンピュータ可読媒体は、ネットワークブラウザ１１２、イベントログ１１４、および受け取った媒体１１６を含む。受け取った媒体と、ネットワークコンピュータの媒体との間の破線は、示されたこれらの媒体がコンピュータによってネットワークコンピュータからダウンロードできることを示している。
【００１５】
通信ネットワークは、コンピュータとネットワークコンピュータとの間の通信を可能にし、会社の内部ネットワークのようなイントラネットや、インターネットなどのうちの、１つまたは複数を含むことができる。
【００１６】
ネットワークコンピュータは、コンピュータ可読媒体１１８を備えるのが示されている。このコンピュータ可読媒体はネットワークフォーム１２０を含み、ネットワークフォーム１２０は、データインスタンス１２２と、ネットワークフォームを統制するスキーマ１２４と、データ中心のデータ駆動型アクション１２６とを含む。ネットワークフォームのデータインスタンスは、ネットワークフォームの特定のデータインスタンスである。したがって、ネットワークフォームの構造またはデータが変更された場合（例えばユーザがネットワークフォームのビューに情報を入力することによって）、ネットワークフォームのデータインスタンスは、変更を反映するようにいずれかの時点で改変される。データ中心のデータ駆動型アクションは、データインスタンスのデータ変更によって駆動されるアクションであり、データインスタンスにマッピングされる。
【００１７】
ネットワークコンピュータのコンピュータ可読媒体はまた、ビュー情報１２８、ビューテンプレート１３０、ビュー中心アクション１３２、アクタアプリケーション（ａｃｔｏｒ  ａｐｐｌｉｃａｔｉｏｎ）１３４、および初期データ１３６を備えるのが示されている。ビュー情報、ビューテンプレート、ビュー中心アクション、アクタアプリケーション、および初期データは、組み合わされていても別々であってもよい。
【００１８】
ビュー情報は、ネットワークブラウザがネットワークフォームの編集可能ビューを表示するのに十分な情報である。このビュー情報はまた、アクションの実行の結果としてもたらされた編集可能ビューの改変をネットワークブラウザおよび／またはアクタアプリケーションが表示するのにも十分なものとすることができる。一実施形態では、ビュー情報は、データインスタンスの拡張可能マークアップ言語（ＸＭＬ）実施形態の、ＸＭＬスタイルシート言語変換（ＸＳＬＴ）で宣言される変換の結果としてもたらされる、ハイパーテキストマシン言語（ＨＴＭＬ）を含む。このＨＴＭＬは、ネットワークフォームを表示するためにネットワークブラウザによって使用可能である。また、この実施形態では、ネットワークフォームのスキーマはＸＭＬスキーマ（ＸＳＤ）を含む。このスキーマは、ネットワークフォームを検証するためのデータ中心アクションを含むことができる。
【００１９】
ビューテンプレートは、ネットワークフォームの、ビュー中心の論理表現を含む。ビューテンプレートの構造は、一実施形態では、ネットワークフォームのビューをアクタアプリケーションおよび／またはブラウザが構築するのに十分なビュー情報をマッピングすることのできる構造である。ビューテンプレートの構造はまた、別の実施形態では、ユーザがビューテンプレートの一部と対話するのに応答してアクタアプリケーションがアクションを実行するのに十分なアクションが関係付けられた構造とすることもできる。
【００２０】
ビュー中心アクションはデータ駆動型アクションを含み、これらのデータ駆動型アクションは、ビューテンプレート中の位置またはノードに結び付けるかまたはマッピングすることができる。
【００２１】
アクタアプリケーションは、ネットワークブラウザと共にまたは別に、ネットワークフォームのデータインスタンス１２２に対して改変および／またはアクセスを行わずに、データ駆動型アクションを実行することができる。
【００２２】
初期データは、デフォルトデータなどの記憶済みデータを含む。デフォルトデータは例えば、単純なフィールド（日付、通貨、名前フィールドなど）の値と、リスト、テーブル、行についてのいくつかの反復とを含むことができる。フォームが改変されサブミットされてから閲覧または追加編集のために後で再び開かれたときなどには、その他の記憶済みデータは、前にネットワークフォームに入力されたデータを含むことができる。
【００２３】
以下に、これらの要素の様々な実施形態、および特に、ビュー中心のデータ駆動型アクションを生み出すための例示的なプロセスについて、より詳細に述べる。このプロセスについて述べた後、これらおよび他のアクションを可能にする例示的なツールについて述べる。
【００２４】
（データ駆動型アクション）
電子フォームに対する多くのデータ駆動型アクションは、フォームのデータインスタンスにマッピングされるなどによって、フォームのデータインスタンスに関係付けられる。しかし、この関係付けは、データインスタンスにアクセスすることが必要な場合があり、ネットワークを介してアクセスされる電子フォームの場合には望ましくないことがある。
【００２５】
ビュー中心のデータ駆動型アクションを生み出すための例示的なプロセス２００を、図２に示し、以下に述べる。このプロセスは、ネットワークフォームのデータインスタンスとの関係を有する既存のデータ中心のデータ駆動型アクションを、ネットワークフォームのビューテンプレートとの関係を有するデータ駆動型アクションに変換することによって、ビュー中心のデータ駆動型アクションを生み出す。プロセス２００は、アクタアプリケーション１３４など、図１の動作環境１００の要素によって実行される個々の操作または動作を表す一連のブロックとして示している。本明細書に述べるこのプロセスおよび他のプロセスは、任意の適切なハードウェア、ソフトウェア、ファームウェア、またはこれらの組合せで実施することができる。ソフトウェアおよびファームウェアの場合、これらのプロセスは、コンピュータ可読媒体１１８に記憶されネットワークコンピュータ１０６の１つまたは複数のプロセッサによって実行可能なコンピュータ実行可能命令、および／または、コンピュータ可読媒体１１０に記憶されプロセッサ１０８によって実行可能なコンピュータ実行可能命令として実施される、１組の操作を表すことができる。
【００２６】
プロセス２００を例示するために、図３に、ネットワークフォーム１２０の一例を表す購入注文書３００を示す。この購入注文書にはコントロールのビューが示されており、ここでは、名前フィールド３０２、電話フィールド３０４、商品フィールド３０６ａおよび３０６ｂ、数量フィールド３０８ａおよび３０８ｂ、単価フィールド３１０ａおよび３１０ｂ、合計フィールド３１２ａおよび３１２ｂ、総計フィールド３１４についてのコントロールがある。このプロセスについて述べる中で、購入注文書のスキーマ、データインスタンス、およびビューテンプレートが有用であり、したがってこれらを以下に示す。
【００２７】
このネットワークフォームのデータインスタンスを統制するスキーマは、以下のように表すことができる。
【００２８】
【表１】
2006285980.tif 000003
【００２９】
このスキーマによって統制されるデータインスタンスは、以下のように表すことができる。
【００３０】
【表２】
2006285980.tif 000004
【００３１】
また、このフォームのビューテンプレートは以下のように表すことができる。
【００３２】
【表３】
2006285980.tif 000005
【００３３】
図２に戻り、ブロック２０２で、ツール（例えばアクタアプリケーション１３４）が、データ駆動型アクション（例えば図１のデータ中心のデータ駆動型アクション１２６のうちの１つ）をデータインスタンス１２２にマッピングする関係を見つける。この関係は、ＸＭＬパス言語（ＸＰａｔｈ）表現などのナビゲーションパスを含むことができる。
【００３４】
例示する実施形態を継続するが、このデータインスタンスは、データ中心のデータ駆動型アクションを２つ有すると仮定する。これらのアクションは、以下のように表すことができる。
【００３５】
【表４】
2006285980.tif 000006
【００３６】
および
【００３７】
【表５】
2006285980.tif 000007
【００３８】
第１のアクションは、データインスタンスのquantityノード中のデータに、データインスタンスのunit priceノード中のデータを掛けるように構造化されている。第２のアクションは、ordersノードの子ノードであるデータインスタンスのtotalノード中の、すべてのデータの和をとるように構造化されている。
【００３９】
ナビゲーションパスは、これらのデータ中心のデータ駆動型アクションから抽出することができ、これらはこの場合、ＸＰａｔｈ表現である。ツールは以下のＸＰａｔｈを抽出する。
【００４０】
【表６】
2006285980.tif 000008
【００４１】
および
【００４２】
【表７】
2006285980.tif 000009
【００４３】
示したように、これらのＸＰａｔｈは、データインスタンスにマッピングする。第１のＸＰａｔｈは、「orders」ノードの子である２つのtotalノード（図３の合計フィールド３１２ａおよび３１２ｂとしてレンダリングされる）にマッピングする。第２のＸＰａｔｈは、rootノードだけの子であるtotalノード（図３の総計フィールド３１４としてレンダリングされる）にマッピングする。
【００４４】
ブロック２０４で、ツールは、ナビゲーションパスに対応するビューテンプレートパスを構築する。ツールは、ナビゲーションパスをビューテンプレートに相関させて、ナビゲーションパスをビューテンプレートパスに変換することができる。ツールはまた、ナビゲーションパスによってマッピングされるデータインスタンス部分を、ビューテンプレートの構造と比較することもできる。マッピングされるデータインスタンス部分に対応するビューテンプレートのノードをツールが見つけた場合、ツールは、このノードにマッピングするビューテンプレートパスを構築することができる。
【００４５】
例示する実施形態を継続するが、ツールは、ナビゲーションパスによってマッピングされるデータインスタンスノードに、どのビューテンプレートノードが対応するかを決定する。ビューテンプレートは以下のように表すことができる。
【００４６】
【表８】
2006285980.tif 000010
【００４７】
ツールは、ナビゲーションパス「/root/orders/order/total」によってマッピングされるデータインスタンスノード、すなわち
【００４８】
【表９】
2006285980.tif 000011
【００４９】
が、ビューテンプレート中で
【００５０】
【表１０】
2006285980.tif 000012
【００５１】
に対応することを判定する。
【００５２】
同様に、ツールは、第２のデータ駆動型アクションについてのデータインスタンスノードが、
【００５３】
【表１１】
2006285980.tif 000013
【００５４】
に対応することを判定する。
【００５５】
あるいは、ツールは、ナビゲーションパスによってマッピングされるスキーマノードに対応する、ビューテンプレートのノードを判定することによって、ナビゲーションパスを変換する。場合によっては、電子フォームを統制するスキーマの構造の方がより容易にまたは正確に解析され、それにより、ツールの判定はより容易にまたは正確になる。上に示したように、スキーマノード「/root/orders/order/total」を以下のように相関させて、ビューテンプレートの「V1/R1/T4」を見つけることができる。
【００５６】
【表１２】
2006285980.tif 000014
【００５７】
場合によっては、ナビゲーションパスによってマッピングされるデータインスタンスノードに対応するビューテンプレートノードがないこともある。このような場合の１つは、アクションがマッピングされるデータインスタンスノードが、フォームのビューに影響を与えることができない場合である。例えば、データインスタンス（またはスキーマ）のノードに、閲覧不可能なノード中のデータを改変するアクションが関係する場合は、このアクションにはビューテンプレート中に対応するノードがないことがある。
【００５８】
データインスタンスのマッピングされる部分が、ビューテンプレート中に対応するノードを有さないとツールが判定した場合は、ツールは続行しない。そうではないと判定した場合は、ブロック２０６に進む。例示する実施形態では、データ中心のデータ駆動型アクションは両方とも、ビューに影響を与えることができ、ビューテンプレート中に対応するノードを有する。ツールは、これらの対応するノードへのビューテンプレートパスを構築する。
【００５９】
ブロック２０６で、ツールは、データ駆動型アクションをデータインスタンスにマッピングするナビゲーションパスを、データ駆動型アクションをビューテンプレートにマッピングするビューテンプレートパスで置き換える。
【００６０】
例示する実施形態を継続するが、データ駆動型アクションについてのナビゲーションパスは、以下のとおりである。
【００６１】
【表１３】
2006285980.tif 000015
【００６２】
および
【００６３】
【表１４】
2006285980.tif 000016
【００６４】
ツールは、これらのナビゲーションパスをビューテンプレートパスで置き換える。したがって、データ中心のデータ駆動型アクションは、以下のようなビュー中心のデータ駆動型アクションに変換される。
【００６５】
【表１５】
2006285980.tif 000017
【００６６】
および
【００６７】
【表１６】
2006285980.tif 000018
【００６８】
ブロック２０８で、ツールは、いくつかの実施形態で、ビューテンプレートにデータ駆動型アクションで注釈を付けることができる。ビューテンプレートパスは、アクションがマッピングされる、ビューテンプレートの１つまたは複数のノードを示す。ツールは、これらのノードに注釈を付けて、アクションをこれらのノードの変更によってトリガできることを示すことができる。また、ビューテンプレートにはアクション自体で注釈を付けることができ、それにより、アクションとビューテンプレートを組み合わせることができる。
【００６９】
例示する実施形態を継続するが、ツールは、以下のように、ビューテンプレートにビュー中心アクションで注釈を付ける。
【００７０】
【表１７】
2006285980.tif 000019
【００７１】
この注釈付きビューテンプレートは、ノード「V1/R1/T2」（数量フィールド３０８ａで示す）と、「V1/R1/T3」（単価フィールド３１０ａで示す）のデータを掛けることができ、結果を「V1/R1/T4」ノード（合計フィールド３１２ａで示す）中に配置することができることを示す。このビューテンプレートはまた、これらのノードの各繰り返し（例えばフィールド３０８ｂ、３１０ｂ、３１２ｂ）についても同じことを示す。
【００７２】
このビューテンプレートはまた、ノード「V1/R1/T4」のそれぞれ（合計フィールド（３１２ａおよび３１２ｂとして示す）のデータの和をとって、結果を別のノード「V1/T3」（総計フィールド３１４で示す）中に配置することができることも示す。
【００７３】
（ネットワークフォームに対するデータ駆動型アクションの実行）
図４に示す例示的なプロセス４００の一部として、ツールは、ネットワークフォームのデータインスタンスに対して改変および／またはアクセスを行わずに、データインスタンスの改変に関連するデータ駆動型アクションを実行する。またこのプロセスでは、ツールが、ネットワークフォームのデータインスタンスを変換せずに、ネットワークフォームに対するデータ駆動型アクションの結果をレンダリングする。プロセス４００は、アクタアプリケーション１３４など、図１の動作環境１００の要素によって実行される個々の操作または動作を表す一連のブロックとして示す。
【００７４】
ブロック４０２で、ネットワークブラウザ１１２は、ネットワークフォームを編集するユーザ選択を受け取る。例として、ユーザは、ネットワークを介して利用可能なフォームを閲覧しており、図３の購入注文書３００を編集することを選択すると仮定する。
【００７５】
ブロック４０４で、ネットワークブラウザは、コンピュータ１０２がネットワークフォームを表示できネットワークフォームに対する編集を受け取れるようにするのに十分な情報を受け取る。この情報は、ビュー情報１２８、ビューテンプレート１３０、ビュー中心アクション１３２、アクタアプリケーション１３４、初期データ１３６など、図１のネットワークコンピュータ１０６からのコンピュータ可読媒体を含むことができる。ビュー情報およびビューテンプレートを使用して、アクタアプリケーションおよび／またはネットワークブラウザは、フォームの編集可能ビューを表示する。
【００７６】
一実施形態では、アクタアプリケーションは、いくつかのビュー情報をビューテンプレートにマッピングすることによって、フォームの編集可能ビューを構築する。これらの情報は、ＨＴＭＬなどの閲覧可能情報であり、アクタアプリケーションは、これらの閲覧可能情報をフォームのビュー全体の中に連結することができる。これらのビュー部分は、例えば、データ入力フィールド、ボタン、およびその他のコントロールのための、レンダリング可能なＨＴＭＬを含むことができる。
【００７７】
ブロック４０６で、コンピュータは、ユーザによって選択されたネットワークフォームをレンダリングする。例示する実施形態では、アクタアプリケーションは、図３の購入注文書をレンダリングする。
【００７８】
ブロック４０８で、ネットワークブラウザは、ネットワークフォームのコントロールに対する編集を受け取る。ユーザは、フィールドにデータを入力したりボタンを選択したりすることによって、フォームを編集することができる。
【００７９】
例示する実施形態を継続するが、ネットワークブラウザは、名前フィールド３０２に入力されたデータを受け取る。このデータは、図５に示すようにビュー中にプッシュされる。
【００８０】
ブロック４１０で、アクタアプリケーションは、この編集にアクションが関連するかどうか判定する。一実施形態では、アクタアプリケーションは、アクションを分析して、ユーザによって編集されたノードに関連する（例えばマッピングする）アクションがあるかどうか判定する。別の実施形態では、アクタアプリケーションは、ビューテンプレートをナビゲートして、編集に関連するアクションを（もしあれば）見つける。編集に関連するデータ駆動型アクションがない場合は、アクタアプリケーションは、ブロック４０８に戻って、ユーザから追加の編集を受け取る。データ駆動型アクションがある場合は、アクタアプリケーションはブロック４１２に進む（またはブロック４１４にスキップする）。
【００８１】
例示する実施形態を継続するが、アクタアプリケーションは、アクションで注釈が付けられたビューテンプレート（上に示したもの）をナビゲートして、図３および５の名前フィールド３０２としてレンダリングされる「V1/T1」ノード（「nameノード」）に関連するアクションがあるかどうか判定する。このノードには、関連するアクションがない。この場合、アクタアプリケーションはブロック４０８に戻る。ネットワークブラウザは、ユーザから他の編集を受け取る。すなわち、図５に示す電話フィールド３０４へのユーザ電話番号の入力、およびやはり図５に示す商品ノード３０６ａへの商品識別子の入力を受け取る。これらの入力もまた、データ駆動型アクションに関連しない。
【００８２】
ユーザは次に数量フィールド３０８ａに数量を入力するが、これはブロック４０８で受け取られ、図５に示されている。ブロック４１０で、アクタアプリケーションは、この編集にアクションが関連するかどうか判定する。
【００８３】
例示する実施形態を継続するが、アクタアプリケーションは、ビューテンプレートをナビゲートして、受け取った編集にアクションが関連するかどうか判定する。この注釈付きビューテンプレートは、以下のように表すことができる。
【００８４】
【表１８】
2006285980.tif 000020
【００８５】
アクタアプリケーションは、このビューテンプレートをナビゲートし、quantityノードに対するユーザの編集に、以下のデータ駆動型アクションが関連することを判定する。
【００８６】
【表１９】
2006285980.tif 000021
【００８７】
ブロック４１２で、アクタアプリケーションは、関連するアクションを実行することがビューに影響を与えるか否か判定する。あるいは、アクタアプリケーションは、ブロック４１２をスキップしてブロック４１４に行くこともできる。
【００８８】
アクタアプリケーションは、ビューテンプレートをナビゲートして、アクションの実行によってビューテンプレートのどのノードが変更されるかもしれないかを判定することにより、アクションがビューに影響を与えることになるかどうか判定することができる。
【００８９】
継続中の実施形態では、アクタアプリケーションは、quantityノードに関連するデータ駆動型アクションが「V1/R1/T2」ノード中のデータに「V1/R1/T3」ノード中のデータを掛けることを判定し、この結果をターゲットノード「V1/R1/T4」中に配置する。したがって、数量フィールド３０８ａ中のデータ「１７」に、単価フィールド３１０ａ中の無データ（０）が掛けられ、この結果（「０」）が合計フィールド３１２ａ中に配置される。この場合、アクションを実行した結果はビューを変更しない。合計フィールド３１２ａにはすでに０がある。この場合、アクタアプリケーションは、quantityノードに関連するアクションを実行せずに済ませることができ、そして／または、フォームに関するデータを更新すること（すなわちブロック４１６の実行）や、このアクションの実行結果をレンダリングすること（すなわちブロック４１８の実行）など、他のアクションを実行せずに済ませることができる。このアクションおよび／またはこれら他のアクションを実行せずに済ませる場合、アクタアプリケーションはブロック４０８に戻る。
【００９０】
ブロック４０８に戻り、ネットワークブラウザは別の編集を受け取るが、この編集は、今度は単価フィールド３１０ａへの単価の入力である。価格は図６のフィールド３１０ａに示されている（「２９９．９９」）。
【００９１】
次いでアクタアプリケーションは、ブロック４１０で、この編集にアクションが関連すると判定する。例示する実施形態を継続するが、アクタアプリケーションは、アクションで注釈が付けられたビューテンプレート（上に示したもの）をナビゲートし、「V1/R1/T3」ノード（「price」ノード）にアクションが関連すると判定する。
【００９２】
上に提供したビューテンプレートをナビゲートして、アクタアプリケーションは、以下のデータ駆動型アクションがユーザによるpriceノードへの編集に関連することを判定する。
【００９３】
【表２０】
2006285980.tif 000022
【００９４】
次いでアクタアプリケーションは、このアクションがビューに影響を与えることになると判定する。これは、ビューテンプレートをナビゲートして、このアクションの実行によってビューテンプレートのどのノードが変更されるかもしれないかを判定することにより、これを行う。
【００９５】
継続中の実施形態では、アクタアプリケーションは、quantityノードに関連するデータ駆動型アクションが「V1/R1/T2」ノード中のデータに「V1/R1/T3」ノード中のデータを掛けることを判定し、この結果をターゲットノード「V1/R1/T4」中に配置する。したがって、数量フィールド３０８ａ中に示されたデータ「１７」に、単価フィールド３１０ａ中に示された「２９９．９９」が掛けられる。この結果は、合計フィールド３１２ａ中に現在レンダリングされている０とは異なるであろう。
【００９６】
ブロック４１４で、アクタアプリケーションは、フォームのデータインスタンスに対してアクセスおよび／または改変を行わずに、アクションを実行する。この例示的なプロセスでは、アクタアプリケーションはデータインスタンスではなくビューテンプレートを使用し、それによりアクタアプリケーションは、フォームのデータインスタンスに対してアクセスまたは改変を行わなければならないことから開放される。アクタアプリケーションは、場合によっては、どんな非ローカル通信もなしにデータ駆動型アクションを実行することができ、それにより、ユーザの編集体験を改善する可能性がある。一実施形態では、アクタアプリケーションは、式を実行して、その結果のレンダリング先とすることのできるビューテンプレートのノードを突き止めることによって、アクションを実行する。
【００９７】
継続中の実施形態では、アクタアプリケーションは、数量フィールドに入力されたデータ「１７」に、単価フィールドに入力されたデータ「２９９．９９」を掛け、結果「５０９９．８３」を得る。
【００９８】
ブロック４１６で、アクタアプリケーションは、フォームに関するデータを更新する。フォームに関するこのデータは、ローカルに記憶することができ、それにより、ネットワークコンピュータへのラウンドトリップをより少なくすることが可能である。継続中の実施形態では、アクタアプリケーションは、第１のtotalノード（合計フィールド３１２ａとしてレンダリングされる）の０を、結果「５０９９．８３」で更新する。アクタアプリケーションは、直接にブロック４１８に進んでこの結果をビュー中にレンダリングすることもできるが、最初に、このデータ変更がいずれか他のアクションをトリガするかどうか判定することもできる。トリガする場合は、アクタアプリケーションは、トリガされるすべてのアクションを実行した後で（いくつかのアクションは別のアクションをトリガし、この別のアクションは別のアクションをトリガし、以下同様になることがある）、この異なるアクションの結果をレンダリングすることができる。
【００９９】
ブロック４０８、４１０、４１２、４１４と同様、アクタアプリケーションは、データ（例えば実行されたアクションからの結果）を受け取ることに進み、このデータが受け取られるノードがアクションに関連するかどうか判定し、このアクションがビューに影響を与えるかもしれないかどうか判定し、このアクションを実行することができる。したがって、継続中の実施形態で、アクタアプリケーションは、totalノードに対して上で実行されたアクションの結果を受け取る。次いでアクタアプリケーションは、この「編集」が行われる対象であるノード（例えばアクションの実行から自動的に受け取られる結果）に、別のアクションが関連するか否か判定することができる。関連する場合は、次いで、この別のアクションを実行することがビューに影響を与えることになるか否か判定することができ、影響を与えることになる場合は、この別のアクションを実行することができる。
【０１００】
継続中の実施形態では、アクタアプリケーションは、totalノードの結果に別のアクションが関連すると判定する。このアクションは以下のように表すことができる。
【０１０１】
【表２１】
2006285980.tif 000023
【０１０２】
したがって、totalノード（「V1/R1/T4」）には、データ駆動型アクションが関連する。このアクションは、totalノードのデータと、他のすべてのtotalノードとの和をとる。この和の結果は、次いで、「V1/T3」totalノード（総計フィールド３１４としてレンダリングされる）のターゲットとなる。
【０１０３】
次にアクタアプリケーションは、この和アクションを実行することがビューに影響を与えるかもしれないと判定する。アクタアプリケーションは、このアクションを実行し、第１と第２のtotalノードのデータの和をとる。これらのデータは「５０９９．８３」と「０」であり、結果「５０９９．８３」が得られる。
【０１０４】
アクタアプリケーションは、入力され、アクションから得られたこのデータを、ローカルに記憶された階層構造化データツリーやイベントログ１１４などに記録することができる。継続中の実施形態のデータおよび結果を用いた場合、このデータツリーは以下のように表すことができる。
【０１０５】
【表２２】
2006285980.tif 000024
【０１０６】
ブロック４１８で、アクタアプリケーションおよび／またはネットワークブラウザは、フォームのデータインスタンスを変換せずに実行された１つまたは複数のデータ駆動型アクションの結果をレンダリングする。アクタアプリケーションはまた、別の実施形態では、データインスタンスに対してアクセスまたは改変を行わずに、ビューに対する変更をレンダリングすることができる。
【０１０７】
アクタアプリケーションは、ビュー中のコントロールに関連するノードをマークしてから、すべてのアクションが実行された後で（ただし結果がレンダリングされた後で）これらの各ノードを新しいデータについてレンダリングすることによって、ビュー中のどのコントロールを更新する必要があるかを常に把握していることができる。
【０１０８】
あるいは、アクタアプリケーションはすべてのフォームを再レンダリングすることもできるが、これは、選択的な再レンダリングと比較して、追加の時間またはリソースを要する場合がある。
【０１０９】
ビューの各部分を選択的に再レンダリングするために、アクタアプリケーションは、ビューテンプレート中の変更されたノードをダーティとしてマークするなどにより、図１のビュー情報１２８のうちでどの情報がこれらの変更されたノードに関連するかを判定することができる。上のビューテンプレートでは、マークされるノードは「V1/R1_1/T4」および「V1/T3」である。次いでアクタアプリケーションは、結果をこれらのビュー部分にプッシュするか、またはこれらの各ビュー部分に結果を加えたものを再レンダリングすることができる。
【０１１０】
図６に示すように、購入注文書のビューは、データ駆動型アクションの結果をユーザに示す。これらの結果は、合計フィールド３１２ａおよび総計フィールド３１４に示されているが、これらは、データ駆動型アクションがもしデータインスタンスに関連付けられていたとすればビューがどのように見えるであろうかの正確なレンダリングである。したがって、このビューは、これらのアクションの結果をデータインスタンス中に配置し、データインスタンスを変換し、変換をレンダリングすることによって示されるビューと、同一であろう。
【０１１１】
しかし場合によっては、データ駆動型アクションは、アクションの実行に必要なデータを有するフォームのデータインスタンスまたはデータベースにアクセスする（例えば入力データをデータベース中のデータに対して検証する）などのために、ネットワークを介した通信を必要とすることがある。これらの場合、アクタアプリケーションは、ネットワークにアクセスすることができ、それにより、プロセス４００のブロックの多くを行わずに済ませることができる。
【０１１２】
アクタアプリケーションおよび／またはネットワークブラウザは、ユーザの編集、および／または様々なアクションの実行結果を記録することができる。この、編集および／または結果の記録は、これを送ることでユーザの編集体験がかなり妨げられることにならないときに、またはユーザからのサブミット時に、ネットワークコンピュータ１０６に送ることができる。
【０１１３】
ネットワークコンピュータは、このイベントログを受け取るのに応答して、ネットワークフォームのデータインスタンスを改変する。これは頻繁に行わなくてもよく、それにより、ネットワークフォームをサービスするのに必要なリソースが低減される可能性がある。
【０１１４】
継続中の例示の場合、アクタアプリケーションは、ユーザによるビューの編集をイベントログ１１４に記録し、このイベントログをネットワークコンピュータに通信する。ネットワークコンピュータは、イベントログからの情報でデータインスタンス１２２を更新する。図２に関する記述の最初で上に表したデータインスタンスは、ネットワークコンピュータがイベントログを使用して変更することができ、この場合は以下のように変更することができる。
【０１１５】
【表２３】
2006285980.tif 000025
【０１１６】
（結び）
ネットワークフォームのデータインスタンスに対して改変および／またはアクセスを行わずに、データインスタンスの改変に関連するデータ駆動型アクションを可能にする、システムおよび／または方法について述べた。構造上の特徴および／または方法上のステップに特有の言語で本発明を述べたが、添付の特許請求に述べる本発明は、述べた具体的な特徴やステップに必ずしも限定されないことを理解されたい。そうではなく、これらの具体的な特徴およびステップは、特許請求される本発明を実施する好ましい形として開示している。
【図面の簡単な説明】
【０１１７】
【図１】様々な実施形態が機能することのできる例示的な動作環境を示す図である。
【図２】ビュー中心のデータ駆動型アクションを生み出すための例示的なプロセスの流れ図である。
【図３】ネットワークフォームの例示的なビューを示す図である。
【図４】ネットワークフォームのデータインスタンスを改変すること、および／またはデータ駆動型アクションの結果をレンダリングすることに関連するデータ駆動型アクションを実行するための例示的なプロセスの流れ図である。
【図５】編集された図３のビューを示す図である。
【図６】データ駆動型アクションを実行することによる編集および結果が加わった、図５のビューを示す図である。
【符号の説明】
【０１１８】
１００  動作環境
１０２  コンピュータ
１０４  通信ネットワーク
１０６  ネットワークコンピュータ
３００  購入注文書
３０２  名前フィールド
３０４  電話フィールド
３０６ａ，３０６ｂ  商品フィールド
３０８ａ，３０８ｂ  数量フィールド
３１０ａ，３１０ｂ  単価フィールド
３１２ａ，３１２ｂ  合計フィールド
３１４  総計フィールド
【図１】
2006285980.tif 000026
【図２】
2006285980.tif 000027
【図３】
2006285980.tif 000028
【図４】
2006285980.tif 000029
【図５】
2006285980.tif 000030
【図６】
2006285980.tif 000031