XML ブローカの使い方

提供: RAD Studio
移動先: 案内検索

多層アプリケーションの作成:インデックス への移動

XML ブローカはブラウザから XML デルタ パケットのフォームで更新を受信し、それをアプリケーション サーバーに適用します。

XML ブローカを Web モジュール(または、TWebDispatcher を含むデータ モジュール)に追加すると、自分自身を自動ディスパッチ オブジェクトとして、Web ディスパッチャに自動的に登録します。これはつまり、他のコンポーネントとは異なり、XML ブローカはアクション項目を作成しなくても、Web ブラウザからの更新メッセージに応答できることを意味します。これらのメッセージは、アプリケーション サーバーに適用しなければならない XML デルタ パケットが含まれます。大抵は、Web クライアント アプリケーションによって生成された HTML ページの 1 つに作成するボタンから発生します。

ディスパッチャが XML ブローカに対するメッセージを認識できるようにするには、トピック「リクエスト メッセージのディスパッチ」にあるように、記述されていなければなりません。

ディスパッチャが、XML ブローカへ更新メッセージを渡す際、その更新をアプリケーション サーバーへも渡し、もし更新エラーがあった場合には、すべての更新エラーを記述した XML デルタ パケットを受け取ります。最後に、レスポンス メッセージをブラウザに返すと、ブラウザは XML デルタ パケットを生成したのと同じページにリダイレクトされるか、新しい内容が送信されます。

数多くのイベントによって、この更新プロセスのあらゆるステップにおいて、独自の処理を挿入することができます:

  1. ディスパッチャは、最初に更新メッセージを XML ブローカに渡す際に、XMLBrokr.TXMLBroker.BeforeDispatch イベントを受け取ります。ここでは、リクエストを事前処理したり、リクエストを完全に処理することさえも可能です。このイベントにより、XML ブローカは、更新メッセージ以外のメッセージも処理することができます。
  2. BeforeDispatch イベント ハンドラがメッセージを処理しない場合、XML ブローカは XMLBrokr.TXMLBroker.OnRequestUpdate イベントを受け取ります。ここでは、デフォルト処理を使用するのではなく、更新を自分自身で適用することができます。
  3. OnRequestUpdate イベント ハンドラがリクエストを処理しない場合、XML ブローカは、更新を適用し、更新エラーを保有しているデルタ パケットを受け取ります。
  4. 更新エラーがない場合、XML ブローカは XMLBrokr.TXMLBroker.OnGetResponse イベントを受け取ります。ここでは、更新が正常に適用された旨のレスポンス メッセージを作成したり、更新されたデータをブラウザに送信します。OnGetResponse イベント ハンドラがレスポンスを完了していない場合(Handled パラメータに True を設定していない場合)、XML ブローカは、デルタ パケットを生成したドキュメントへ、ブラウザをリダイレクトするレスポンスを送信します。
  5. 更新エラーが起こった場合、XML ブローカは、XMLBrokr.TXMLBroker.OnGetErrorResponse イベントを代わりに受け取ります。このイベントを使用して、更新エラーの解決を試行したり、更新エラーをエンド ユーザーに対して記述する Web ページを生成することができます。OnGetErrorResponse イベント ハンドラがレスポンスを完了していない場合(Handled パラメータに True を設定していない場合)、XML ブローカは、レスポンス メッセージのコンテンツを生成するために、ReconcileProducer と呼ばれる特殊なコンテンツ プロデューサを呼び出します。
  6. 最後に、XML ブローカは XMLBrokr.TXMLBroker.AfterDispatch イベントを受け取ります。ここでは、Web ブラウザにレスポンスを返す前に、最後にアクションを実行させることができます。