WebBroker アプリケーションの構造
Web アプリケーションは,HTTP リクエストメッセージを受信すると,Web.HTTPApp.TWebRequest オブジェクトと Web.HTTPApp.TWebResponse オブジェクトを作成します。Web.HTTPApp.TWebRequest は HTTP リクエストメッセージを表し,Web.HTTPApp.TWebResponse はリクエストメッセージに対して返される応答を表します。これらのオブジェクトは Web ディスパッチャ(Web モジュールまたは TWebDispatcher コンポーネント)に渡されます。
Web ディスパッチャは Web サーバーアプリケーションの処理の流れを制御します。ディスパッチャは,HTTP リクエストメッセージの種類ごとに処理方法を規定しているアクション項目(TWebActionItem)の集合を保持しています。ディスパッチャは,HTTP リクエストメッセージの処理に適したアクション項目または自動ディスパッチコンポーネントを特定し,リクエストオブジェクトとレスポンスオブジェクトを所定のイベントハンドラに渡します。これにより,要求されたアクションの実行やレスポンスメッセージの作成ができるようになります。
アクション項目は,リクエストを読み出して,それに対するレスポンスメッセージを作成しなければなりません。専用のコンテンツプロデューサコンポーネントを使用すると,アクション項目は HTML カスタムコードやその他の MIME コンテンツを保持できるレスポンスメッセージのコンテンツを動的に作成できます。コンテンツプロデューサは,ほかのコンテンツプロデューサや THTMLTagAttributes の下位オブジェクトを使用して,アクション項目が簡単にレスポンスメッセージのコンテンツを作成できるようにします。
Web サービスを実装するサーバーを作成する場合は,Web サーバーアプリケーションに自動ディスパッチコンポーネントを追加することで,SOAP に基づいたメッセージがインボーカに渡り,解釈され実行されます。ディスパッチャは,自身のアクション項目をすべて試行した後,上記の自動ディスパッチコンポーネントを呼び出してリクエストメッセージを処理します。
すべてのアクション項目(または自動ディスパッチコンポーネント)が TWebResponse オブジェクトを完全なものにしてレスポンスを完成させると,ディスパッチャはこの結果を Web アプリケーションに返します。アプリケーションはこのレスポンスを Web サーバーを経由してクライアントに送信します。