4D Webサービスについて

4D Webサービスを実現する一方で、ユーザやWeb開発者、Webマスターの作業を軽減するため、大切なデータベースメカニズム構築に重点を置いてきました。

主な事項を次に示します。

●4Dアーキテクチャ内にユーザインタフェースメッセージシステムを組み込むことにより、データベース管理制御を自動化し強化する。

●特定のWeb管理作業を排除し、データベース管理者がサイト訪問者の分析などのビジネスに促した作業に時間を割けるようにする。

●4D Webサービス機能を拡張して、データベースやクライアント/サーバの要件に合うようにし、将来の上位バージョンとの互換性の基礎を確立する。

この節では、ユニークな4D Web機能の基礎となるテクノロジーについて説明します。

Web接続処理

4Dや4D ServerへのWeb接続は、クライアント/サーバ接続と構造的に同じであり、4Dのビルトイン機能を利用しています。開発者に意識させずに、4Dがブラウザからのリクエスト間の状態を管理します。

4Dのクライアント/サーバアーキテクチャでは、ユーザが接続を行い、セッション内で作業し、その後サーバへの接続を解除します。HTTPでは、Webサーバからの応答を求めるような動作を行うたび、リクエストがサーバへ送られます。つまり、HTTPリクエストの一連の作業は“接続+リクエスト+応答待機+切断”として捉えることができます。HTTPプロトコルは“セッションベース”のプロトコルではなく、SQL同様、“リクエストベース”のプロトコルです。

上記のHTTPでクライアント/サーバセッションを動作させるため、4DではWeb接続を識別できるようなユニークなURLを作成し、Web接続を処理する4Dプロセスとの関連付けを行います。データベースのWebタイムアウト設定に指定した時間以上、何の処理も行われなければ、Web接続を処理している4Dプロセスは終了します。

Web接続タイムアウトは制御することができます。Web接続プロセスは、4Dコードが実行されているか、ブラウザ側で現在表示されているWebページの送信を待機しているかのどちらかです。後者の場合、Web接続プロセスはWebサーバ接続タイムアウト設定時間以上待機します。この時間は、データベースプロパティウインドウまたはSET WEB TIMEOUTコマンドを使用してプログラムから設定します。

必要に応じてこのタイムアウト設定時間を増減することができます。“No Timeout”を指定すると、Web接続プロセスはデータベースを終了した場合のみ中断します。Webサーバを中断したときに、Web接続プロセスがオープンされていた場合、Webサーバ接続タイムアウト設定時間を超えたためにWebユーザがデータベースへの問い合わせを中断するまでの間、各プロセスは実行され続けます。

Web接続プロセス

マルチスレッドアーキテクチャの4Dと4D Serverでは、アプリケーションがWebサイトとして公開された時に、カーネルWebサーバプロセスを自動的にオープンし、動作、実行します。

このカーネルWebサーバプロセスは、必要があれば自動的にユーザインタフェースメッセージを表示します。たとえば、許可されたサイトライセンスがすべて使用中であれば、4Dからブラウザユーザにメッセージが送られます。

Web接続が開始されると、Web接続プロセスがその接続の全Webセッションを処理します。

下図のデザインプロセスリストウインドウには、Webブラウザ接続の開始後、“Web Connection# 1066993139”のWeb接続プロセスが開始されたことが表示されています。

コンテキストID

コンテキストIDは無作為に生成され、各Web接続を識別します。このコンテキストIDはWeb接続が行われている間、4Dとブラウザ側で保持されます。ここの例では、1066993139というのがコンテキストIDです。下のWebブラウザウインドウには、LocationエリアのURL中にこの番号が表示されています。

4DはWebセッションの間、URLを自動的に保持しています。4D TCP/IPネットワークコンポネントによりHTTPリクエストが受信されるたび、4DがURLからこのコンテキストIDを取り出します。これにより、正しいWeb接続プロセスに対して再度リクエストを送ることになります。

4DでのコンテキストIDの役割

●各Web接続間で、Webとデータベースセッションを管理する。

●Web接続を複数同時に処理する。

●各接続ごとに異なるコンテキストIDが生成されるため、ブックマークを使用した望ましくない接続を防止する。

Webとデータベースセッションの同期化

新しい4DベースのHTMLページがブラウザに送られるたびに、4DではサブコンテキストIDを管理し、その番号を繰り上げていきます。サブコンテキストIDは、データベースセッションの管理を正しく行うために重要なものです。

Webユーザは本来“Webワンダラー”です。Webユーザがテーブルにレコードを追加している最中に、キャンセルやOKボタンをクリックしないで別のページに移ってしまう、ということは充分考えられます。この結果、データ登録は不確定な状態のままになります。このようなことを避けるため、4DではサブコンテキストIDを利用して、ブラウザ側のWebセッションと、4D側のデータベースセッションとの同期が取られます。Webとデータベースのセッションの同期が取れていない場合、4Dからブラウザへ自動的にメッセージが送られます。

ユーザインタフェース管理

ユーザからみると、Webブラウザ側の動作がWebセッションを進めてゆきます。しかし、データベースからみると、Web接続プロセスがWebセッションを進めています。WebブラウザはWeb接続プロセスによって送信されたページを表示します。このプロセスは4Dコードを実行しているか、あるいはブラウザから現在のWebページが送信されるのを待機しています。管理の点からみると、Web接続プロセスは4th Dimensionまたは4D Serverで実行された4Dプロセスですが、接続されているブラウザ上にユーザインタフェースを使ってリモート表示されています。

4Dのクライアント/サーバアーキテクチャには、ワークステーションとホスト間に、先進的な双方向通信システムが採用されています。大部分のクライアント/サーバと異なり、4D Serverはクライアントへメッセージを送信することができます。Webサーバとして、4Dと4D Serverではブラウザとの通信が保証されています。この結果、ブラウザユーザは放ったままにされることなく、またWebサーバ管理は大幅に簡略化されます。特にブラウザでは自由にページ移動できるため、ブラウザのインタフェースロジックを識別し、「理解」することが4Dにとって通常の作業となっています。

接続を統計的に分析

4Dがブラウザからあらゆる情報を受信できるなら、Webマスターは接続数や頻度に関する統計的な情報を簡単に取得し、計算することができます。4Dはデータベースなので、この点での可能性は無限に広がります。この結果、WebマスターやISマネージャはビジネスに関する質問に対して積極的に取り組めるようになります。

Web接続

Web接続に関していえば、ユーザがアプリケーションを配備すると、データベースメソッドが自動的に呼び出されます。特定のニーズがあれば、開発者はプロジェクトメソッドやデータベースのフォーム定義、HTMLページを呼び出すことができます。データベースメソッドはセッション全体を処理します。

HTMLツールで作成されたHTMLページを使う

4DベースのWebサイトは完全に4Dをベースにしたシステムか、もしくは4DのフォームとHTMLページを組み合わせたものになります。既存のHTMLドキュメントをホームページにする方法は、On Web Connectionデータベースメソッドでドキュメント名を指定するだけです。

コマンドSET HTML ROOTは、4DにHTMLドキュメントの場所を知らせます。コマンドSEND HTML FILEは、カレントWebページとしてHTMLドキュメントをブラウザに送信します。

次は、Microsoft Front Pageを使った簡単なHTMLドキュメントです。

次は、同じドキュメントをClaris Home Pageを使って見たものです。

リンクしたURL

“Add Some Records”や“List Existing Record”など、リンクが張られたテキスト項目は、そのURLを介して4Dのプロジェクトメソッドを実行します。“4D METHOD/メソッド名”というURLを使うと、HTMLオブジェクトをデータベースのプロジェクトメソッドにリンクさせることができます。

次は、Claris Home Page上でテキスト“Add Some Records”のURLを見たものです。

次は、Microsoft Front Page上で同じURLを見たものです。

ブラウザからURLが送信されると、4Dではキーワード/4D METHOD/の後に指定されたプロジェクトメソッドを実行します。プロジェクトメソッドが終了すると、もとのHTMLページに戻ります。プロジェクトメソッドでは4Dフォームや他のHTMLページの表示などを行うことができます。

HTMLボタンの使用

HTMLボタンには3種類あります。

ノーマル:ノーマルボタンは、キーワード/4D METHOD/を使って4Dメソッドを参照するURLに相当します。

サブミット:サブミットボタンは、ユーザの登録した値が納められたフォームをWebサーバへ送信します。通常の4Dフォームではなく、HTMLページを使ってデータ入力を処理したい場合に便利なボタンです。

リセット:リセットボタンは4D開発環境においてはあまり便利なボタンではありません。このボタンにより、ユーザが登録した値のあるフォームがクリアされますが、サーバへは何のリクエストも送られません。

HTMLフォームを4D側にサブミットするには、POSTアクション4Dメソッドを指定します。このメソッドはフォームがサブミットされた後に実行されます。

次は、Microsoft Front Page上でPOSTアクション4Dメソッドを指定しています。

次は、Claris Home Page上でPOSTアクション4Dメソッドを指定しています。

HTMLサポートに関する注意

すでに説明したように、4DではHTMLがサポートされます。4DアプリケーションでHTMLやJavaScriptコードをインプリメントする前に、4th Dimensionで自動的に行われる機能を調べておくことをお勧めします。

ホーム