(57)【要約】【課題】同一内容のHTMLデータ作成処理要求が重複した場合の処理負荷の低減と、リアルタイム性のあるHTMLデータの提供とを実現する。【解決手段】クライアントコンピュータから最新の装置生成データに基づくHTMLデータの作成要求があると、同一内容の要求に基づく処理が実行中でない場合、データベースの装置生成データの格納内容が更新され、実行中であれば完了待ちが行われる。更新処理が行われた場合には更新後の装置生成データに基づいてHTMLデータが作成される。完了待ち処理が行われた場合には、待ち対象とされていたデータベース更新処理によって更新された装置生成データに基づいてHTMLデータが作成される。同一内容のHTMLデータの作成要求が相前後して与えられた場合、先の作成要求に対してのみデータベース更新処理を行うにも関わらず、後の作成要求に対しても、最新の装置生成データに基づくHTMLデータが作成される。【選択図】図３
2008083789.tif 000002
【特許請求の範囲】
【請求項１】
a)サーバーと、
b)ネットワークを介して前記サーバーにアクセス可能に設けられてなる複数のクライアントコンピュータと、
を備えるクライアントサーバーシステムであって、
c)所定の装置生成データを生成するデータ生成装置と、
d)前記装置生成データを格納するデータベースと、
が前記サーバーに接続されてなり、
前記サーバーが、
a-1)前記複数のクライアントコンピュータのそれぞれから与えられる、前記装置生成データに基づくコンテンツデータの作成要求を受信する受信手段と、
a-2)前記データ生成装置から前記装置生成データを取得し、これを格納することにより前記データベースの記述内容を更新する前記データベース更新処理を行うデータベース更新手段と、
a-3)前記データベースに格納されている前記装置生成データに基づいて前記作成要求に応じた内容の前記コンテンツデータを作成するコンテンツデータ作成処理を行うコンテンツデータ作成手段と、
a-4)実行中の前記データベース更新処理の完了を待ち対象とする待ち処理を行う待ち処理手段と、
a-5)前記作成要求がなされた場合に、当該作成要求と同一内容の作成要求に基づくデータベース更新処理が実行中でなければ当該作成要求に基づく前記データベース更新処理を行う旨の判定を行う一方、実行中であれば前記待ち処理を行う旨の判定を行い、前記データベース更新手段と前記待ち処理手段とに判定結果に応じた処理の実行を要求する処理内容判定手段と、
a-6)前記複数のクライアントコンピュータのそれぞれに、当該クライアントコンピュータからの作成要求に応じた前記コンテンツデータを送信する送信手段と、
を備え、
前記データベース更新手段は、前記処理内容判定手段からの要求に応答して前記データベース更新処理の実行を開始し、
前記コンテンツデータ作成手段は、前記データベース更新処理が行われた場合には当該データベース更新処理によって更新された装置生成データに基づいて前記コンテンツデータ作成処理を行うとともに、前記待ち処理が終了した場合には、当該待ち処理において待ち対象とされていたデータベース更新処理によって更新された装置生成データに基づいて前記コンテンツデータ作成処理を行う、
ことを特徴とするクライアントサーバーシステム。
【請求項２】
請求項１に記載のクライアントサーバーシステムであって、
前記サーバーが、
a-7)前記作成要求に基づき前記処理内容判定手段によって前記データベース更新処理の実行が要求される場合に所定のイベントを前記データベース更新処理に対応させて所定のイベントリストに登録し、当該データベース更新処理の完了に応答して前記イベントを実行するイベント処理手段、
をさらに備え、
前記処理内容判定手段は、前記作成要求と同一内容の作成要求に基づくデータベース更新処理についての登録が前記イベントリストに存在していなければ当該作成要求に係るデータベース更新処理の実行を前記データベース更新手段に要求する一方、前記登録が前記イベントリストに存在していれば前記作成要求に係る待ち処理の実行を前記待ち処理手段に要求する、
ことを特徴とするクライアントサーバーシステム。
【請求項３】
請求項２に記載のクライアントサーバーシステムであって、
前記待ち処理手段が、
a-4-1)前記イベントの実行を監視する監視手段、
を備え、
前記待ち処理手段は、前記監視手段が前記所定のイベントの実行を確認することにより前記データベース更新処理の完了を確認する、
ことを特徴とするクライアントサーバーシステム。
【請求項４】
請求項２または請求項３に記載のクライアントサーバーシステムであって、
前記待ち処理手段が、
a-4-2)前記データベース更新処理を待ち対象とする前記作成要求の数に対応付けて所定の指数を増減させる指数処理手段、
を備え、
前記イベント処理部は、前記データベース更新処理についての前記指数が待ち処理が行われていないことを示す所定の基準値になったときに、前記データベース更新処理についての登録を前記イベントリストから削除する、
ることを特徴とするクライアントサーバーシステム。
【請求項５】
a)サーバーと、
b)ネットワークを介して前記サーバーにアクセス可能に設けられてなる複数のクライアントコンピュータと、
を備えるクライアントサーバーシステムであって、
c)所定の装置生成データを生成するデータ生成装置と、
d)前記装置生成データを格納するデータベースと、
が前記サーバーに接続されてなり、
前記サーバーが、
a-1)前記複数のクライアントコンピュータのそれぞれから与えられる、前記装置生成データに基づくコンテンツデータの作成要求を受信する受信手段と、
a-2)前記データ生成装置から前記装置生成データを取得し、これを格納することにより前記データベースの記述内容を更新する前記データベース更新処理を行うデータベース更新手段と、
a-3)前記データベースに格納されている前記装置生成データに基づいて前記作成要求に応じた内容の前記コンテンツデータを作成するコンテンツデータ作成処理を行うコンテンツデータ作成手段と、
a-4)前記コンテンツデータ作成処理の完了を待ち対象とする待ち処理を行う待ち処理手段と、
a-5)前記作成要求がなされた場合に、同一内容の作成要求に基づく前記データベース更新処理および前記コンテンツデータ作成処理のいずれもが実行中でなければ前記データベース更新処理を行う旨の判定を行う一方、いずれかが実行中であれば前記待ち処理を行う旨の判定を行い、前記データベース更新手段と前記待ち処理手段とに判定結果に応じた処理を要求する処理内容判定手段と、
a-6)前記コンテンツデータ作成手段によって作成された前記コンテンツデータを記憶する記憶手段と、
a-7)待ち対象とされた前記データベース更新処理が完了することによって前記待ち処理が終了したときに前記記憶手段に記憶された前記コンテンツデータを取得する取得手段と、
a-8)前記複数のクライアントコンピュータのそれぞれに、当該クライアントコンピュータからの作成要求に応じて前記コンテンツデータを送信する送信手段と、
を備え、
前記データベース更新手段は、前記処理内容判定手段からの要求に応答して前記データベース更新処理を行い、
前記コンテンツデータ作成手段は、前記データベース更新処理による記述内容の更新に引き続いて前記作成要求に応じた前記コンテンツデータの作成を行い、
前記送信手段においては、前記コンテンツデータ作成処理が行われた場合には当該コンテンツデータ作成処理によって作成された前記コンテンツデータが送信され、前記待ち処理が行われた場合には前記取得手段によって取得された前記コンテンツデータが送信される、
ことを特徴とするクライアントサーバーシステム。
【請求項６】
請求項５に記載のクライアントサーバーシステムであって、
前記サーバーが、
a-9)前記作成要求に基づき前記処理内容判定手段によって前記データベース更新処理の実行が要求され、当該データベース更新処理後に前記コンテンツデータ作成処理が行われて前記コンテンツデータが作成される場合に、前記作成要求について所定の実行中リストに登録し、当該コンテンツデータ作成処理の完了に応答して前記実行中リストから前記作成要求についての登録を削除する実行中リスト処理手段、
をさらに備え、
前記処理内容判定手段は、前記作成要求と同一内容の作成要求に基づくコンテンツデータ処理についての登録が前記実行中リストに存在していなければ当該作成要求に係るデータベース更新処理の実行を前記データベース更新手段に要求する一方、前記登録が前記実行中リストに存在していれば前記作成要求に係る待ち処理の実行を前記待ち処理手段に要求する、
ことを特徴とするクライアントサーバーシステム。
【請求項７】
請求項６に記載のクライアントサーバーシステムであって、
前記待ち処理手段が、
a-4-1)前記コンテンツデータの作成を監視する監視手段、
を備え、
前記待ち処理手段は、前記監視手段が前記コンテンツデータの作成の完了を確認することにより前記コンテンツデータ作成処理の完了が確認されたときに、前記取得手段に前記コンテンツデータの取得を要求する、
ことを特徴とするクライアントサーバーシステム。
【請求項８】
請求項７に記載のクライアントサーバーシステムであって、
前記待ち処理手段が、
a-4-2)前記作成要求に基づき前記処理内容判定手段によって前記待ち処理の実行が要求され、前記待ち処理が行われる場合に、当該作成要求をその待ち対象であるデータベース更新処理と関連付けて所定の待ちリストに登録し、前記待ち処理手段から削除要求があった場合に当該作成要求についての登録を削除する待ちリスト処理手段、
を備え、
前記待ち処理手段は、前記監視手段により監視対象である前記コンテンツデータの作成の完了が確認された時点で前記待ちリストを参照し、その時点で当該待ちリストに登録されている前記作成要求に対応するコンテンツデータの取得を前記取得手段に対して要求したうえで、前記待ちリスト処理手段に対し当該作成要求に係る登録の削除を要求する、
ことを特徴とするクライアントサーバーシステム。
【請求項９】
所定の装置生成データを生成するデータ生成装置が接続されてなる、クライアントサーバーシステムのサーバーであって、
a)ネットワークを介して前記サーバーにアクセス可能に設けられてなる複数のクライアントコンピュータのそれぞれから与えられる、前記装置生成データに基づくコンテンツデータの作成要求を受信する受信手段と、
b)前記データ生成装置から前記装置生成データを取得し、これを所定のデータベースに格納することにより前記データベースの記述内容を更新する前記データベース更新処理を行うデータベース更新手段と、
c)前記データベースに格納されている前記装置生成データに基づいて前記作成要求に応じた内容の前記コンテンツデータを作成するコンテンツデータ作成処理を行うコンテンツデータ作成手段と、
d)実行中の前記データベース更新処理の完了を待ち対象とする待ち処理を行う待ち処理手段と、
e)前記作成要求がなされた場合に、当該作成要求と同一内容の作成要求に基づくデータベース更新処理が実行中でなければ当該作成要求に基づく前記データベース更新処理を行う旨の判定を行う一方、実行中であれば前記待ち処理を行う旨の判定を行い、前記データベース更新手段と前記待ち処理手段とに判定結果に応じた処理の実行を要求する処理内容判定手段と、
f)前記複数のクライアントコンピュータのそれぞれに、当該クライアントコンピュータからの作成要求に応じた前記コンテンツデータを送信する送信手段と、
を備え、
前記データベース更新手段は、前記処理内容判定手段からの要求に応答して前記データベース更新処理の実行を開始し、
前記コンテンツデータ作成手段は、前記データベース更新処理が行われた場合には当該データベース更新処理によって更新された装置生成データに基づいて前記コンテンツデータ作成処理を行うとともに、前記待ち処理が終了した場合には、当該待ち処理において待ち対象とされていたデータベース更新処理によって更新された装置生成データに基づいて前記コンテンツデータ作成処理を行う、
ことを特徴とするクライアントサーバーシステムのサーバー。
【請求項１０】
所定の装置生成データを生成するデータ生成装置が接続されてなる、クライアントサーバーシステムのサーバーであって、
a)ネットワークを介して前記サーバーにアクセス可能に設けられてなる複数のクライアントコンピュータのそれぞれから与えられる、前記装置生成データに基づくコンテンツデータの作成要求を受信する受信手段と、
b)前記データ生成装置から前記装置生成データを取得し、これを所定のデータベースに格納することにより前記データベースの記述内容を更新する前記データベース更新処理を行うデータベース更新手段と、
c)前記データベースに格納されている前記装置生成データに基づいて前記作成要求に応じた内容の前記コンテンツデータを作成するコンテンツデータ作成処理を行うコンテンツデータ作成手段と、
d)前記コンテンツデータ作成処理の完了を待ち対象とする待ち処理を行う待ち処理手段と、
e)前記作成要求がなされた場合に、同一内容の作成要求に基づく前記データベース更新処理および前記コンテンツデータ作成処理のいずれもが実行中でなければ前記データベース更新処理を行う旨の判定を行う一方、いずれかが実行中であれば前記待ち処理を行う旨の判定を行い、前記データベース更新手段と前記待ち処理手段とに判定結果に応じた処理を要求する処理内容判定手段と、
f)前記コンテンツデータ作成手段によって作成された前記コンテンツデータを記憶する記憶手段と、
g)待ち対象とされた前記データベース更新処理が完了することによって前記待ち処理が終了したときに前記記憶手段に記憶された前記コンテンツデータを取得する取得手段と、
h)前記複数のクライアントコンピュータのそれぞれに、当該クライアントコンピュータからの作成要求に応じて前記コンテンツデータを送信する送信手段と、
を備え、
前記データベース更新手段は、前記処理内容判定手段からの要求に応答して前記データベース更新処理を行い、
前記コンテンツデータ作成手段は、前記データベース更新処理による記述内容の更新に引き続いて前記作成要求に応じた前記コンテンツデータの作成を行い、
前記送信手段においては、前記コンテンツデータ作成処理が行われた場合には当該コンテンツデータ作成処理によって作成された前記コンテンツデータが送信され、前記待ち処理が行われた場合には前記取得手段によって取得された前記コンテンツデータが送信される、
ことを特徴とするクライアントサーバーシステムのサーバー。
【請求項１１】
所定の装置生成データを生成するデータ生成装置が接続されてなるサーバーと、ネットワークを介して前記サーバーにアクセス可能に設けられてなる複数のクライアントコンピュータとを備えるクライアントサーバーシステムのサーバーにおけるコンテンツデータの作成方法であって、
a)前記複数のクライアントコンピュータのそれぞれから与えられる、前記装置生成データに基づくコンテンツデータの作成要求を受信する受信工程と、
b)前記データ生成装置から前記装置生成データを取得し、これを所定のデータベースに格納することにより前記データベースの記述内容を更新する前記データベース更新処理を行うデータベース更新工程と、
c)前記データベースに格納されている前記装置生成データに基づいて前記作成要求に応じた内容の前記コンテンツデータを作成するコンテンツデータ作成処理を行うコンテンツデータ作成工程と、
d)実行中の前記データベース更新処理の完了を待ち対象とする待ち処理を行う待ち処理工程と、
e)前記作成要求がなされた場合に、当該作成要求と同一内容の作成要求に基づく前記データベース更新処理が実行中でなければ当該作成要求に基づく前記データベース更新処理を行う旨の判定を行う一方、実行中であれば前記待ち処理を行う旨の判定を行う処理内容判定工程と、
f)前記複数のクライアントコンピュータのそれぞれに、当該クライアントコンピュータからの作成要求に応じた前記コンテンツデータを送信する送信工程と、
を備え、
前記データベース更新工程においては、前記処理内容判定工程における判定結果に基づいて前記データベース更新処理の実行を開始し、
前記コンテンツデータ作成工程においては、前記データベース更新処理が行われた場合には当該データベース更新処理によって更新された装置生成データに基づいて前記コンテンツデータ作成処理を行うとともに、前記待ち処理が終了した場合には、当該待ち処理において待ち対象とされていたデータベース更新処理によって更新された装置生成データに基づいて前記コンテンツデータ作成処理を行う、
ことを特徴とするクライアントサーバーシステムのサーバーにおけるコンテンツデータ作成方法。
【請求項１２】
サーバーと、ネットワークを介して前記サーバーにアクセス可能に設けられてなる複数のクライアントコンピュータとを備えるクライアントサーバーシステムにおいて前記サーバーに所定の装置生成データを生成するデータ生成装置が接続されてなる場合の、前記装置生成データに基づくコンテンツデータの作成方法であって、
a)前記複数のクライアントコンピュータのそれぞれから与えられる、前記装置生成データに基づくコンテンツデータの作成要求を受信する受信工程と、
b)前記データ生成装置から前記装置生成データを取得し、これを格納することにより前記データベースの記述内容を更新する前記データベース更新処理を行うデータベース更新工程と、
c)前記データベースに格納されている前記装置生成データに基づいて前記作成要求に応じた内容の前記コンテンツデータを作成するコンテンツデータ作成処理を行うコンテンツデータ作成工程と、
d)前記コンテンツデータ作成処理の完了を待ち対象とする待ち処理を行う待ち処理工程と、
e)前記作成要求がなされた場合に、同一内容の作成要求に基づく前記データベース更新処理および前記コンテンツデータ作成処理のいずれもが実行中でなければ前記データベース更新処理を行う旨の判定を行う一方、いずれかが実行中であれば前記待ち処理を行う旨の判定を行う処理内容判定工程と、
f)前記コンテンツデータ作成工程において作成された前記コンテンツデータを所定の記憶手段に記憶する記憶工程と、
g)待ち対象とされた前記データベース更新処理が完了することによって前記待ち処理が終了したときに前記記憶手段に記憶された前記コンテンツデータを取得する取得工程と、
h)前記複数のクライアントコンピュータのそれぞれに、当該クライアントコンピュータからの作成要求に応じて前記コンテンツデータを送信する送信工程と、
を備え、
前記データベース更新工程においては、前記処理内容判定工程からの要求に応答して前記データベース更新処理を行い、
前記データベース更新処理による記述内容の更新に引き続いて前記コンテンツデータ作成工程を行って前記作成要求に応じた前記コンテンツデータの作成を行い、
前記送信工程においては、前記コンテンツデータ作成処理が行われた場合には当該コンテンツデータ作成処理によって作成された前記コンテンツデータが送信され、前記待ち処理が行われた場合には前記取得工程において取得された前記コンテンツデータが送信される、
ことを特徴とするクライアントサーバーシステムのサーバーにおけるコンテンツデータ作成方法。
【請求項１３】
コンピュータが有するＣＰＵとメモリを使用することにより、前記コンピュータを請求項９または請求項１０に記載のクライアントサーバーシステムのサーバーとして機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂアプリケーションサーバーシステムにおけるサーバーの処理負荷を軽減する技術に関する。
【背景技術】
【０００２】
Ｗｅｂアプリケーションサーバーシステムとは、Ｗｅｂクライアント（以下、単にクライアント、もしくはクライアントコンピュータとも称する）がＷｅｂサーバー（以下、単にサーバー、もしくはサーバーコンピュータとも称する）から情報（コンテンツデータ）を取得して、Ｗｅｂブラウザに該情報に基づくＷｅｂページを表示させることができるシステムである。この場合、サーバーには、コンテンツデータとしてのＨＴＭＬデータを作成するＨＴＭＬデータ作成処理を実現するＷｅｂアプリケーションのプログラムがインストールされてなり、クライアントは、Ｗｅｂブラウザを介して係るＷｅｂアプリケーションの機能を利用していることになる。また、Ｗｅｂアプリケーションはサーバーのプログラムとは別個にアプリケーション開発者によって種々のものが開発されてインストールされるのが通常であり、複数のアプリケーションがインストールされている場合であっても、クライアントからは、一のＷｅｂブラウザを介してそれらを適宜利用することができるのが一般的である。
【０００３】
係るＷｅｂアプリケーションサーバーシステムにおいては、基本的には、以下のような処理が順次に行われる。
【０００４】
１）Ｗｅｂブラウザを介してユーザより与えられる実行指示に応答して、クライアントが、サーバーへＵＲＬリクエストを送信する；
２）サーバーは、クライアントからのＵＲＬリクエストを受信する；
３）サーバーは、受信したＵＲＬリクエストに応じたＨＴＭＬデータ作成処理を実行する；
４）サーバーは、作成したＨＴＭＬデータをＵＲＬリクエストの送信元クライアントに向けて返信する；
５）ＵＲＬリクエストの送信元クライアントは、サーバーから返信されたＨＴＭＬデータを受信し、該ＨＴＭＬデータの記述に従ってＷｅｂブラウザにＷｅｂページを表示する。
【０００５】
これら一連の処理のうち、ＨＴＭＬデータ作成処理は、ＵＲＬリクエストの内容に応じたＷｅｂアプリケーションを実行する処理である。すなわち、サーバーに実装されている種々のＷｅｂアプリケーションのうちのいずれかの処理が、ＵＲＬリクエストに応じて実行される。
【０００６】
一方、ＵＲＬリクエストの受信処理、ＵＲＬリクエストの内容に応じてどのＨＴＭＬデータ処理を実行するのかを判断する処理、ＵＲＬリクエストの送信元クライアントを特定する処理、さらには、ＨＴＭＬデータを返信する処理については、ＵＲＬリクエストの内容に関わりなく、クライアントからのＵＲＬリクエストの送信があった場合には必ず、サーバーにおいて実行されることになる処理である。
【０００７】
なお、ＵＲＬリクエストに対する応答性を高めるために、いったん作成したＨＴＭＬデータをキャッシュメモリに保持しておき、同一内容のＵＲＬリクエストが与えられた場合にはキャッシュメモリ内に保持されたＨＴＭＬデータを返信するシステムもすでに公知である（例えば、特許文献１および特許文献２参照）。
【０００８】
【特許文献１】特開平１０−２６０８８９号公報
【特許文献２】特開２００２−０３２２６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述したような基本的な処理態様のＷｅｂアプリケーションサーバーシステムにおいては、複数のクライアントから複数のＵＲＬリクエストが与えられた場合、サーバーはそれぞれのＵＲＬリクエストに応じたＨＴＭＬデータ作成処理を実行することになる。同じＨＴＭＬデータ作成処理を実行させる内容の、複数のＵＲＬリクエストを受け取った場合には、作成されるのは同一内容のＨＴＭＬデータであるに過ぎないにもかかわらず、ＨＴＭＬデータ作成処理を繰り返し行うことになる。また、非常に処理が重く、時間が掛かるＨＴＭＬデータ作成処理を実行させるようなＵＲＬリクエストが、略同時に集中した場合には、そうしたＨＴＭＬデータ作成処理を略並行して行おうとするために、システムに負荷がかかってしまい、他の処理までが停滞してしまう場合もある。
【００１０】
特許文献１および特許文献２に開示されているような、キャッシュメモリを使用するシステムにおいては、いったん作成されたＨＴＭＬデータはキャッシュメモリに保持され、次に同一のＨＴＭＬデータの作成を要求するＵＲＬリクエストがあるクライアントから与えられた場合には、キャッシュメモリに保持されているＨＴＭＬデータを返信するようにすることで、ＷｅｂサーバーにおけるＨＴＭＬデータ作成処理の重複の解消が、実現されてなる。また、開示されたシステムには、キャッシュの内容をできるだけ最新のものとするための技術も盛り込まれてはいる。
【００１１】
しかしながら、特許文献１および特許文献２に開示のシステムにおいては、例えばキャッシュの内容が頻繁にアップデートされるとしても、ＵＲＬリクエストの送信時点のリアルタイムな情報を含むＨＴＭＬデータを、必ずしも得ることができるわけではない。
【００１２】
本発明は、上記課題に鑑みてなされたものであり、同一内容のＨＴＭＬデータ作成処理要求が重複した場合の処理負荷の低減と、リアルタイム性のあるＨＴＭＬデータの提供を実現するＷｅｂアプリケーションサーバーシステムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するため、請求項１の発明は、a)サーバーと、b)ネットワークを介して前記サーバーにアクセス可能に設けられてなる複数のクライアントコンピュータと、を備えるクライアントサーバーシステムであって、c)所定の装置生成データを生成するデータ生成装置と、d)前記装置生成データを格納するデータベースと、が前記サーバーに接続されてなり、前記サーバーが、a-1)前記複数のクライアントコンピュータのそれぞれから与えられる、前記装置生成データに基づくコンテンツデータの作成要求を受信する受信手段と、a-2)前記データ生成装置から前記装置生成データを取得し、これを格納することにより前記データベースの記述内容を更新する前記データベース更新処理を行うデータベース更新手段と、a-3)前記データベースに格納されている前記装置生成データに基づいて前記作成要求に応じた内容の前記コンテンツデータを作成するコンテンツデータ作成処理を行うコンテンツデータ作成手段と、a-4)実行中の前記データベース更新処理の完了を待ち対象とする待ち処理を行う待ち処理手段と、a-5)前記作成要求がなされた場合に、当該作成要求と同一内容の作成要求に基づくデータベース更新処理が実行中でなければ当該作成要求に基づく前記データベース更新処理を行う旨の判定を行う一方、実行中であれば前記待ち処理を行う旨の判定を行い、前記データベース更新手段と前記待ち処理手段とに判定結果に応じた処理の実行を要求する処理内容判定手段と、a-6)前記複数のクライアントコンピュータのそれぞれに、当該クライアントコンピュータからの作成要求に応じた前記コンテンツデータを送信する送信手段と、を備え、前記データベース更新手段は、前記処理内容判定手段からの要求に応答して前記データベース更新処理の実行を開始し、前記コンテンツデータ作成手段は、前記データベース更新処理が行われた場合には当該データベース更新処理によって更新された装置生成データに基づいて前記コンテンツデータ作成処理を行うとともに、前記待ち処理が終了した場合には、当該待ち処理において待ち対象とされていたデータベース更新処理によって更新された装置生成データに基づいて前記コンテンツデータ作成処理を行う、ことを特徴とする。
【００１４】
請求項２の発明は、請求項１に記載のクライアントサーバーシステムであって、前記サーバーが、a-7)前記作成要求に基づき前記処理内容判定手段によって前記データベース更新処理の実行が要求される場合に所定のイベントを前記データベース更新処理に対応させて所定のイベントリストに登録し、当該データベース更新処理の完了に応答して前記イベントを実行するイベント処理手段、をさらに備え、前記処理内容判定手段は、前記作成要求と同一内容の作成要求に基づくデータベース更新処理についての登録が前記イベントリストに存在していなければ当該作成要求に係るデータベース更新処理の実行を前記データベース更新手段に要求する一方、前記登録が前記イベントリストに存在していれば前記作成要求に係る待ち処理の実行を前記待ち処理手段に要求する、ことを特徴とする。
【００１５】
請求項３の発明は、請求項２に記載のクライアントサーバーシステムであって、前記待ち処理手段が、a-4-1)前記イベントの実行を監視する監視手段、を備え、前記待ち処理手段は、前記監視手段が前記所定のイベントの実行を確認することにより前記データベース更新処理の完了を確認する、ことを特徴とする。
【００１６】
請求項４の発明は、請求項２または請求項３に記載のクライアントサーバーシステムであって、前記待ち処理手段が、a-4-2)前記データベース更新処理を待ち対象とする前記作成要求の数に対応付けて所定の指数を増減させる指数処理手段、を備え、前記イベント処理部は、前記データベース更新処理についての前記指数が待ち処理が行われていないことを示す所定の基準値になったときに、前記データベース更新処理についての登録を前記イベントリストから削除する、ことを特徴とする。
【００１７】
請求項５の発明は、a)サーバーと、b)ネットワークを介して前記サーバーにアクセス可能に設けられてなる複数のクライアントコンピュータと、を備えるクライアントサーバーシステムであって、c)所定の装置生成データを生成するデータ生成装置と、d)前記装置生成データを格納するデータベースと、が前記サーバーに接続されてなり、前記サーバーが、a-1)前記複数のクライアントコンピュータのそれぞれから与えられる、前記装置生成データに基づくコンテンツデータの作成要求を受信する受信手段と、a-2)前記データ生成装置から前記装置生成データを取得し、これを格納することにより前記データベースの記述内容を更新する前記データベース更新処理を行うデータベース更新手段と、a-3)前記データベースに格納されている前記装置生成データに基づいて前記作成要求に応じた内容の前記コンテンツデータを作成するコンテンツデータ作成処理を行うコンテンツデータ作成手段と、a-4)前記コンテンツデータ作成処理の完了を待ち対象とする待ち処理を行う待ち処理手段と、a-5)前記作成要求がなされた場合に、同一内容の作成要求に基づく前記データベース更新処理および前記コンテンツデータ作成処理のいずれもが実行中でなければ前記データベース更新処理を行う旨の判定を行う一方、いずれかが実行中であれば前記待ち処理を行う旨の判定を行い、前記データベース更新手段と前記待ち処理手段とに判定結果に応じた処理を要求する処理内容判定手段と、a-6)前記コンテンツデータ作成手段によって作成された前記コンテンツデータを記憶する記憶手段と、a-7)待ち対象とされた前記データベース更新処理が完了することによって前記待ち処理が終了したときに前記記憶手段に記憶された前記コンテンツデータを取得する取得手段と、a-8)前記複数のクライアントコンピュータのそれぞれに、当該クライアントコンピュータからの作成要求に応じて前記コンテンツデータを送信する送信手段と、を備え、前記データベース更新手段は、前記処理内容判定手段からの要求に応答して前記データベース更新処理を行い、前記コンテンツデータ作成手段は、前記データベース更新処理による記述内容の更新に引き続いて前記作成要求に応じた前記コンテンツデータの作成を行い、前記送信手段においては、前記コンテンツデータ作成処理が行われた場合には当該コンテンツデータ作成処理によって作成された前記コンテンツデータが送信され、前記待ち処理が行われた場合には前記取得手段によって取得された前記コンテンツデータが送信される、ことを特徴とする。
【００１８】
請求項６の発明は、請求項５に記載のクライアントサーバーシステムであって、前記サーバーが、a-9)前記作成要求に基づき前記処理内容判定手段によって前記データベース更新処理の実行が要求され、当該データベース更新処理後に前記コンテンツデータ作成処理が行われて前記コンテンツデータが作成される場合に、前記作成要求について所定の実行中リストに登録し、当該コンテンツデータ作成処理の完了に応答して前記実行中リストから前記作成要求についての登録を削除する実行中リスト処理手段、をさらに備え、前記処理内容判定手段は、前記作成要求と同一内容の作成要求に基づくコンテンツデータ処理についての登録が前記実行中リストに存在していなければ当該作成要求に係るデータベース更新処理の実行を前記データベース更新手段に要求する一方、前記登録が前記実行中リストに存在していれば前記作成要求に係る待ち処理の実行を前記待ち処理手段に要求する、ことを特徴とする。
【００１９】
請求項７の発明は、請求項６に記載のクライアントサーバーシステムであって、前記待ち処理手段が、a-4-1)前記コンテンツデータの作成を監視する監視手段、を備え、前記待ち処理手段は、前記監視手段が前記コンテンツデータの作成の完了を確認することにより前記コンテンツデータ作成処理の完了が確認されたときに、前記取得手段に前記コンテンツデータの取得を要求する、ことを特徴とする。
【００２０】
請求項８の発明は、請求項７に記載のクライアントサーバーシステムであって、前記待ち処理手段が、a-4-2)前記作成要求に基づき前記処理内容判定手段によって前記待ち処理の実行が要求され、前記待ち処理が行われる場合に、当該作成要求をその待ち対象であるデータベース更新処理と関連付けて所定の待ちリストに登録し、前記待ち処理手段から削除要求があった場合に当該作成要求についての登録を削除する待ちリスト処理手段、を備え、前記待ち処理手段は、前記監視手段により監視対象である前記コンテンツデータの作成の完了が確認された時点で前記待ちリストを参照し、その時点で当該待ちリストに登録されている前記作成要求に対応するコンテンツデータの取得を前記取得手段に対して要求したうえで、前記待ちリスト処理手段に対し当該作成要求に係る登録の削除を要求する、ことを特徴とする。
【００２１】
請求項９の発明は、所定の装置生成データを生成するデータ生成装置が接続されてなる、クライアントサーバーシステムのサーバーであって、a)ネットワークを介して前記サーバーにアクセス可能に設けられてなる複数のクライアントコンピュータのそれぞれから与えられる、前記装置生成データに基づくコンテンツデータの作成要求を受信する受信手段と、b)前記データ生成装置から前記装置生成データを取得し、これを所定のデータベースに格納することにより前記データベースの記述内容を更新する前記データベース更新処理を行うデータベース更新手段と、c)前記データベースに格納されている前記装置生成データに基づいて前記作成要求に応じた内容の前記コンテンツデータを作成するコンテンツデータ作成処理を行うコンテンツデータ作成手段と、d)実行中の前記データベース更新処理の完了を待ち対象とする待ち処理を行う待ち処理手段と、e)前記作成要求がなされた場合に、当該作成要求と同一内容の作成要求に基づくデータベース更新処理が実行中でなければ当該作成要求に基づく前記データベース更新処理を行う旨の判定を行う一方、実行中であれば前記待ち処理を行う旨の判定を行い、前記データベース更新手段と前記待ち処理手段とに判定結果に応じた処理の実行を要求する処理内容判定手段と、f)前記複数のクライアントコンピュータのそれぞれに、当該クライアントコンピュータからの作成要求に応じた前記コンテンツデータを送信する送信手段と、を備え、前記データベース更新手段は、前記処理内容判定手段からの要求に応答して前記データベース更新処理の実行を開始し、前記コンテンツデータ作成手段は、前記データベース更新処理が行われた場合には当該データベース更新処理によって更新された装置生成データに基づいて前記コンテンツデータ作成処理を行うとともに、前記待ち処理が終了した場合には、当該待ち処理において待ち対象とされていたデータベース更新処理によって更新された装置生成データに基づいて前記コンテンツデータ作成処理を行う、ことを特徴とする。
【００２２】
請求項１０の発明は、所定の装置生成データを生成するデータ生成装置が接続されてなる、クライアントサーバーシステムのサーバーであって、a)ネットワークを介して前記サーバーにアクセス可能に設けられてなる複数のクライアントコンピュータのそれぞれから与えられる、前記装置生成データに基づくコンテンツデータの作成要求を受信する受信手段と、b)前記データ生成装置から前記装置生成データを取得し、これを所定のデータベースに格納することにより前記データベースの記述内容を更新する前記データベース更新処理を行うデータベース更新手段と、c)前記データベースに格納されている前記装置生成データに基づいて前記作成要求に応じた内容の前記コンテンツデータを作成するコンテンツデータ作成処理を行うコンテンツデータ作成手段と、d)前記コンテンツデータ作成処理の完了を待ち対象とする待ち処理を行う待ち処理手段と、e)前記作成要求がなされた場合に、同一内容の作成要求に基づく前記データベース更新処理および前記コンテンツデータ作成処理のいずれもが実行中でなければ前記データベース更新処理を行う旨の判定を行う一方、いずれかが実行中であれば前記待ち処理を行う旨の判定を行い、前記データベース更新手段と前記待ち処理手段とに判定結果に応じた処理を要求する処理内容判定手段と、f)前記コンテンツデータ作成手段によって作成された前記コンテンツデータを記憶する記憶手段と、g)待ち対象とされた前記データベース更新処理が完了することによって前記待ち処理が終了したときに前記記憶手段に記憶された前記コンテンツデータを取得する取得手段と、h)前記複数のクライアントコンピュータのそれぞれに、当該クライアントコンピュータからの作成要求に応じて前記コンテンツデータを送信する送信手段と、を備え、前記データベース更新手段は、前記処理内容判定手段からの要求に応答して前記データベース更新処理を行い、前記コンテンツデータ作成手段は、前記データベース更新処理による記述内容の更新に引き続いて前記作成要求に応じた前記コンテンツデータの作成を行い、前記送信手段においては、前記コンテンツデータ作成処理が行われた場合には当該コンテンツデータ作成処理によって作成された前記コンテンツデータが送信され、前記待ち処理が行われた場合には前記取得手段によって取得された前記コンテンツデータが送信される、ことを特徴とする。
【００２３】
請求項１１の発明は、所定の装置生成データを生成するデータ生成装置が接続されてなるサーバーと、ネットワークを介して前記サーバーにアクセス可能に設けられてなる複数のクライアントコンピュータとを備えるクライアントサーバーシステムのサーバーにおけるコンテンツデータの作成方法であって、a)前記複数のクライアントコンピュータのそれぞれから与えられる、前記装置生成データに基づくコンテンツデータの作成要求を受信する受信工程と、b)前記データ生成装置から前記装置生成データを取得し、これを所定のデータベースに格納することにより前記データベースの記述内容を更新する前記データベース更新処理を行うデータベース更新工程と、c)前記データベースに格納されている前記装置生成データに基づいて前記作成要求に応じた内容の前記コンテンツデータを作成するコンテンツデータ作成処理を行うコンテンツデータ作成工程と、d)実行中の前記データベース更新処理の完了を待ち対象とする待ち処理を行う待ち処理工程と、e)前記作成要求がなされた場合に、当該作成要求と同一内容の作成要求に基づく前記データベース更新処理が実行中でなければ当該作成要求に基づく前記データベース更新処理を行う旨の判定を行う一方、実行中であれば前記待ち処理を行う旨の判定を行う処理内容判定工程と、f)前記複数のクライアントコンピュータのそれぞれに、当該クライアントコンピュータからの作成要求に応じた前記コンテンツデータを送信する送信工程と、を備え、前記データベース更新工程においては、前記処理内容判定工程における判定結果に基づいて前記データベース更新処理の実行を開始し、前記コンテンツデータ作成工程においては、前記データベース更新処理が行われた場合には当該データベース更新処理によって更新された装置生成データに基づいて前記コンテンツデータ作成処理を行うとともに、前記待ち処理が終了した場合には、当該待ち処理において待ち対象とされていたデータベース更新処理によって更新された装置生成データに基づいて前記コンテンツデータ作成処理を行う、ことを特徴とする。
【００２４】
請求項１２の発明は、サーバーと、ネットワークを介して前記サーバーにアクセス可能に設けられてなる複数のクライアントコンピュータとを備えるクライアントサーバーシステムにおいて前記サーバーに所定の装置生成データを生成するデータ生成装置が接続されてなる場合の、前記装置生成データに基づくコンテンツデータの作成方法であって、a)前記複数のクライアントコンピュータのそれぞれから与えられる、前記装置生成データに基づくコンテンツデータの作成要求を受信する受信工程と、b)前記データ生成装置から前記装置生成データを取得し、これを格納することにより前記データベースの記述内容を更新する前記データベース更新処理を行うデータベース更新工程と、c)前記データベースに格納されている前記装置生成データに基づいて前記作成要求に応じた内容の前記コンテンツデータを作成するコンテンツデータ作成処理を行うコンテンツデータ作成工程と、d)前記コンテンツデータ作成処理の完了を待ち対象とする待ち処理を行う待ち処理工程と、e)前記作成要求がなされた場合に、同一内容の作成要求に基づく前記データベース更新処理および前記コンテンツデータ作成処理のいずれもが実行中でなければ前記データベース更新処理を行う旨の判定を行う一方、いずれかが実行中であれば前記待ち処理を行う旨の判定を行う処理内容判定工程と、f)前記コンテンツデータ作成工程において作成された前記コンテンツデータを所定の記憶手段に記憶する記憶工程と、g)待ち対象とされた前記データベース更新処理が完了することによって前記待ち処理が終了したときに前記記憶手段に記憶された前記コンテンツデータを取得する取得工程と、h)前記複数のクライアントコンピュータのそれぞれに、当該クライアントコンピュータからの作成要求に応じて前記コンテンツデータを送信する送信工程と、を備え、前記データベース更新工程においては、前記処理内容判定工程からの要求に応答して前記データベース更新処理を行い、前記データベース更新処理による記述内容の更新に引き続いて前記コンテンツデータ作成工程を行って前記作成要求に応じた前記コンテンツデータの作成を行い、前記送信工程においては、前記コンテンツデータ作成処理が行われた場合には当該コンテンツデータ作成処理によって作成された前記コンテンツデータが送信され、前記待ち処理が行われた場合には前記取得工程において取得された前記コンテンツデータが送信される、ことを特徴とする。
【００２５】
請求項１３の発明は、コンピュータが有するＣＰＵとメモリを使用することにより、前記コンピュータを請求項９または請求項１０に記載のクライアントサーバーシステムのサーバーとして機能させることを特徴とする。
【発明の効果】
【００２６】
請求項１ないし請求項１３の発明によれば、相異なるクライアントコンピュータから同一内容のコンテンツデータの作成要求が相前後して与えられた場合に、最先の作成要求に対してのみデータベース更新処理を行うにも関わらず、係る最先の作成要求を与えたクライアントコンピュータに対してのみならず、後の作成要求を与えたクライアントコンピュータに対しても、係る最新の書き込み内容に基づくコンテンツデータを提供することができる。すなわち、リアルタイム性のあるコンテンツデータを提供することができる。また、キャッシュメモリを設けておく必要もない。そして、同一内容の処理が略同一のタイミングで与えられた場合であっても、サーバーに重複処理に伴う負荷を与えることもない。
【００２７】
特に、請求項１ないし請求項４、請求項９、および請求項１１の発明によれば、相異なるクライアントコンピュータから同一内容のコンテンツデータの作成要求が相前後して与えられた場合に、最先の作成要求に対してのみデータベース更新処理を行うにも関わらず、後の作成要求を与えたクライアントコンピュータに対しても、係る最新の書き込み内容に基づいてコンテンツデータを生成してこれを提供することができる。
【００２８】
特に、請求項５ないし請求項８、請求項１０、および請求項１２の発明によれば、相異なるクライアントコンピュータから同一内容のコンテンツデータの作成要求が相前後して与えられた場合に、最先の作成要求に対してのみデータベース更新処理を行ったうえでコンテンツデータ作成処理を行うにも関わらず、後の作成要求を与えたクライアントコンピュータに対しても、最先の作成要求に基づくコンテンツデータの作成後、直ちに、該作成されたコンテンツデータを提供することで、データベースの最新の格納内容に基づくコンテンツデータを提供することができる。
【発明を実施するための最良の形態】
【００２９】
＜第１の実施の形態＞
＜システム概要＞
図１は、本発明の実施の形態に係るＷｅｂアプリケーションサーバーシステム１０の構造を模式的に示す図である。Ｗｅｂアプリケーションサーバーシステム１０は、サーバーコンピュータ１と、該サーバーコンピュータ１に対してインターネットやイントラネットなどのネットワークＮを通じてアクセス可能な複数のクライアントコンピュータＣとから主として構成される。
【００３０】
このようなＷｅｂアプリケーションサーバーシステム１０においては、クライアントコンピュータＣとサーバーコンピュータ１との送受信にＨＴＴＰプロトコルを用い、クライアントコンピュータＣが処理要求に応じたＵＲＬの送信（ＵＲＬリクエスト）を行い、サーバーコンピュータ１は、ＵＲＬリクエストに応じた処理を行ってコンテンツデータ（処理結果データ）をＨＴＭＬ形式やＸＭＬ形式でクライアントコンピュータＣへと返信するのが好適な一態様である。その際、該ＵＲＬには、サーバーコンピュータ１のアドレスその他、所望されるコンテンツデータの作成に必要な情報が記述されてなる。以下においては、ＨＴＴＰプロトコルを用い、コンテンツデータとしてＨＴＭＬ形式のデータを作成する態様を前提として説明を行う。ただし、他の通信プロトコルやデータ形式の適用を除外するものではない。
【００３１】
サーバーコンピュータ１は、ＣＰＵ１１ａ、ＲＯＭ１１ｂ、およびＲＡＭ１１ｃから構成され、後述する各機能を実現する制御部１１と、ハードディスクなどにより構成され、ＨＴＭＬデータ処理プログラムｐ１その他を含むプログラムｐや種々のデータを記憶する記憶部１２と、通信インターフェースとしての通信部１３とを、主として備えている。加えて、各種の入力操作を行うためのマウスやキーボードなどからなる操作部（図示せず）と、ディスプレイ等の表示部（図示せず）と、ＭＯ、ＣＤ−Ｒ、ＤＶＤ−ＲＡＭなど種々の可搬性の記録媒体との間でデータのリード／ライトを行うためのリード／ライト部（図示せず）などをさらに備えていてもよい。
【００３２】
ここで、ＨＴＭＬデータ処理プログラムｐ１は、サーバーコンピュータ１にインストールされ実行されることにより、クライアントコンピュータＣからの処理要求（ＨＴＭＬデータの取得要求）に応じてＨＴＭＬ形式のコンテンツデータ（処理結果データ）を作成する処理（これをＨＴＭＬデータ作成処理と称する）を含む一連のデータ処理（これをＨＴＭＬデータ処理と称する）を担うプログラムである。ＨＴＭＬデータ処理プログラムｐ１は、クライアント／サーバーシステムのいわゆる３階層アプリケーションモデルでいうところのビジネスロジック層を実現するプログラムに相当する。ＨＴＭＬデータ処理プログラムｐ１を実現するプログラム記述言語としては、例えばＣ言語などを用いることができる。
【００３３】
また、換言すれば、ＨＴＭＬデータ処理プログラムｐ１は、ＵＲＬリクエストの内容に固有の処理を行ういわゆるＷｅｂアプリケーションに相当する。サーバーコンピュータ１に相異なる複数のＨＴＭＬデータ処理プログラムｐ１がインストールされて実行可能とされてなり、クライアントコンピュータＣがそれらを利用可能である場合には、Ｗｅｂアプリケーションサーバーシステム１０においては、個々のＨＴＭＬデータ処理プログラムｐ１に応じた相異なる複数の処理が、選択的あるいは並列的に実行可能な状態が実現されていることになる。
【００３４】
なお、プログラムｐには、ＨＴＭＬデータ処理プログラムｐ１の他に、サーバーＯＳや３階層アプリケーションモデルにおけるプレゼンテーション層などを実現する図示しないプログラム群が含まれる。これらのプログラム群が実行されることにより、クライアントコンピュータＣからのＵＲＬリクエストの受信、さらには、クライアントコンピュータＣへのコンテンツデータの返信など、ＵＲＬリクエストの内容に関わらず必要となる処理が実現される。該プログラム群には、公知のプログラムを利用可能である。
【００３５】
クライアントコンピュータＣは、一般的に用いられる民生用のパーソナルコンピュータである。クライアントコンピュータＣにおいては、所定のオペレーティングシステム上で図示しないプログラムを実行することで、図示しないディスプレイ上に、ブラウザＢを起動させることができる。
【００３６】
このような構成を有するＷｅｂアプリケーションサーバーシステム１０は、それぞれのクライアントコンピュータＣからの要求に応じて、サーバーコンピュータ１が所定のＷｅｂアプリケーションプログラムを実行することによってＨＴＭＬデータ作成処理を行い、その処理結果データとしてのコンテンツデータをクライアントコンピュータＣに返信し、クライアントコンピュータＣがそのコンテンツデータを利用するシステムである。係るＨＴＭＬ形式のコンテンツデータは、例えば、クライアントコンピュータＣのユーザが閲覧可能であるようにクライアントコンピュータＣのブラウザＢにその内容を表示する、という態様で利用される。
【００３７】
また、本実施の形態に係るＷｅｂアプリケーションサーバーシステム１０では、サーバーコンピュータ１にデータ生成装置２とデータベース３とがそれぞれ通信線ＣＬ１、ＣＬ２によって接続されてなり、サーバーコンピュータ１からデータ生成装置２とデータベース３へのアクセスが可能となっている。
【００３８】
そして、本実施の形態では、サーバーコンピュータ１に記憶されているデータのみならず、データ生成装置２が生成する種々のデータ（これを、装置生成データと称する）についてもクライアントコンピュータＣによって利用可能であるように、Ｗｅｂアプリケーションサーバーシステム１０が構成されている、という場合を例として説明する。具体的には、サーバーコンピュータ１が、クライアントコンピュータＣからのＵＲＬリクエストによるＨＴＭＬデータの取得要求（ＨＴＭＬデータ処理によるＨＴＭＬ形式のコンテンツデータの作成要求とその返信要求）に応答して、データ生成装置２に蓄積された最新の装置生成データに基づいて動的コンテンツを作成する様な場合がこれに相当する。ただし、ＨＴＭＬデータとして静的コンテンツに係るデータが作成される場合を除外するものではない。
【００３９】
係る場合、ＵＲＬリクエストには、データ生成装置２を特定する情報や、要求されるデータ内容やフォーマットを指定する情報などが含まれることになる。そして、クライアントコンピュータＣからＵＲＬリクエストがある度に、サーバーコンピュータ１は、その時点でデータ生成装置２において生成され、蓄積されている装置生成データを取得していったんこれをデータベース３に書き込んだうえで、クライアントコンピュータＣにおいて利用することが可能な形式のデータとしてクライアントコンピュータＣに返信する、という処理が行われる。なお、データ生成装置２に蓄積されている装置生成データを取得してデータベース３に書き込む一連の処理のことを、データベース更新処理と称することとする。なお、本実施の形態においては、係るデータベース更新処理が行われた上でＨＴＭＬデータ作成処理が行われることから、データベース更新処理は、ＨＴＭＬデータ作成処理の前処理に相当する処理であるともいえる。さらにいえば、データベース更新処理からＨＴＭＬデータ作成処理までの一連の処理は、換言すれば、クライアントコンピュータＣからの要求されたＨＴＭＬデータを送信可能に準備するための準備処理に相当するともいえる。
【００４０】
なお、本実施の形態において、ＨＴＭＬデータ処理には、相異なるクライアントコンピュータＣから略同時に同一のデータ生成装置２に関する処理要求がなされた場合の、データベース更新処理に係る完了待ち処理も含むものとする。
【００４１】
従って、ＨＴＭＬデータ処理プログラムｐ１には、クライアントコンピュータＣからの処理要求の内容に従ったＨＴＭＬデータ処理の実行開始指示、データベース更新処理、データベース更新処理に係る完了待ち処理、さらにはデータベース３を参照したＨＴＭＬ形式のコンテンツデータの作成を実現するためのプログラム記述がなされていることになる。
【００４２】
ここで、完了待ち処理とは、相異なるクライアントコンピュータＣから相前後するタイミングで同一内容のＨＴＭＬデータの取得要求がなされた場合に、同一内容のデータベース更新処理を重複して行うことを避けるべく、後からの処理要求に対してはデータベース更新処理そのものを行うことなく、先行して実行されているデータベース更新処理の完了を待つ処理のことをいう。係る完了待ち処理が行われた場合には、完了待ちの対象であった、先行した処理要求に対応するデータベース更新処理が完了した時点で、該データベース更新処理によって更新されたデータベース３の書込内容に基づいて、後からの処理要求に係るＨＴＭＬデータ作成処理が行われることになる。
【００４３】
上述のようなデータベース更新処理は通常、クライアントコンピュータＣからサーバーコンピュータ１へのＨＴＭＬデータ取得要求やサーバーコンピュータ１からクライアントコンピュータＣへのＨＴＭＬデータの返信などの処理に要する時間に比して多大な時間を要し、サーバーコンピュータ１に処理負荷をかける処理であるために、これを頻繁に行うことは、とりわけ同一内容の処理を繰り返し行うことは、サーバーコンピュータ１の他の処理の遅延をも引き起こす可能性があり望ましくない。しかしながら、本実施の形態においては、上述のように完了待ち処理を行うことによって、サーバーコンピュータ１の処理負荷の増大が抑制されてなる。
【００４４】
なお、データベース３においては、図示しないプログラムが読み込まれ実行されることにより、３階層アプリケーションモデルにおけるデータストア層が実現されてなり、サーバーコンピュータ１によるデータの書き込みおよび参照が実行可能とされてなる。また、データベース３の構成態様については、複数のデータ生成装置２から取得される装置生成データを識別可能に格納し、個別に読み出しや参照が可能なものであれば、特に制限されない。
【００４５】
また、データ生成装置２とは、所定の処理動作を行うことによって（生成物、加工物などの）実体的な、あるいは（デジタルデータなどの）仮想的な何らかのアウトプットを実行しつつ、その処理動作中に適宜のタイミングで上記アウトプット以外に何らかのデータを連続的あるいは断続的に生成し、これを蓄積する（あるいは保持する）装置を指し示している。このようなデータ生成装置２は、マイクロコンピュータなどで構成され、係る処理動作を制御するコントローラ２１と、実際にその処理動作を行う処理部２２と、メモリやハードディスクなどで構成され、処理動作の過程で生成するデータを装置生成データとして蓄積する蓄積部２３と、サーバーコンピュータ１との間の通信インターフェースである通信部２４とから主として構成される。さらには、コントローラ２１や処理部２２に対する所定の入力指示を行うための図示しない操作部や、動作状態などを表示する図示しない表示部などが設けられていてもよい。
【００４６】
例えば、データ生成装置２としては、半導体デバイスなど種々の被製造物（もしくはその中間製造物）を製造する製造装置などが該当する。係る製造装置においては、その処理プロセスにおいて所定の処理が完了したことを記述するプロセスログデータや、何らかの不具合が生じた場合に装置使用者に向けて発せられる注意や警告の内容を記述するエラーログデータなどが、装置生成データとして所定のタイミングで生成され、少なくとも所定の期間は保持される。
【００４７】
このような製造装置をデータ生成装置２とするＷｅｂアプリケーションサーバーシステム１０については、該製造装置の動作状況などをクライアントコンピュータＣを介して把握することが、その利用目的として想定される。係る場合、クライアントコンピュータＣのユーザは、製造装置の動作管理を把握する必要がある立場の者であり、クライアントコンピュータＣを介して、適宜のタイミングで、該製造装置の最新のプロセスログデータやエラーログデータの取得をサーバーコンピュータ１に要求することとなる。サーバーコンピュータ１においてクライアントコンピュータＣからの処理要求に応答してＨＴＭＬデータ処理プログラムｐ１が実行されることで、例えば、該製造装置からプロセスログデータやエラーログデータなどが取得されることになる。
【００４８】
なお、図１においては、データ生成装置２とデータベース３がそれぞれ通信線ＣＬ１、ＣＬ２によって直接にサーバーコンピュータ１と接続される態様を例示しているが、これに代わり、データ生成装置２およびデータベース３の一方又は両方が直接にネットワークＮに接続されてなる態様であってもよい。あるいは、データベース３については、サーバーコンピュータ１と一体のものとして構成される態様であってもよい。
【００４９】
また、図１においては、３つのクライアントコンピュータＣが図示されているが、クライアントコンピュータＣの数はこれに限定されるものではない。また、データ生成装置２は１つだけ接続されているが、さらに多くのデータ生成装置２が接続される態様であってもよい。
【００５０】
＜サーバーコンピュータの機能的構成＞
次に、ＨＴＭＬデータ処理プログラムｐ１を含むプログラムｐが実行されることにより制御部１１において（必要に応じて記憶部１２や通信部１３も含めて）実現される、サーバーコンピュータ１の機能的構成要素について説明する。なお、本実施の形態に係るＷｅｂアプリケーションサーバーシステム１０においては、後述するように、ＨＴＭＬデータ処理プログラムｐ１によって実現される機能的構成要素の作用によって、データベース更新処理の重複実行の回避によるサーバーコンピュータ１の処理負荷の低減が実現される。
【００５１】
図２は、サーバーコンピュータ１の機能的構成要素について説明するための図である。なお、図２には併せて、制御部１１内外の各部の間における相関関係についても矢印にて示している。図中、一点鎖線にて示す矢印は、クライアントコンピュータＣからの処理要求に従ってデータベース更新処理を実行する場合の相関関係を示しており、破線にて示す矢印は、他のクライアントコンピュータＣから処理要求に従ってデータベース更新処理が行われている場合の完了待ち処理を実行する場合の相関関係を示しており、実線にて示す矢印は、両者に共通する処理に関する相関関係を示している。
【００５２】
図２に示すように、制御部１１においては、リクエスト受信部１１０と、処理内容判定部１１１と、イベント処理部１１２と、セマフォ処理部１１３と、データ取得処理部１１４と、データ書込処理部１１５と、イベント実行監視部１１６と、終了処理部１１７と、ＨＴＭＬデータ作成部１１８と、ＨＴＭＬデータ送信部１１９とが、主として実現される。このうち、リクエスト受信部１１０とＨＴＭＬデータ送信部１１９以外の各部は、ＨＴＭＬデータ処理プログラムｐ１が実行されることによって実現される。
【００５３】
また、ＨＴＭＬデータ処理プログラムｐ１が実行されることによって、ＲＡＭ１１ｃには処理中装置リストＬＥとセマフォテーブルＴＳが生成される。処理中装置リストＬＥは、あるクライアントコンピュータＣからの処理要求があった場合に、他のクライアントコンピュータＣからの処理要求に従って行われているデータ処理の有無を判定するために設けられるリストである。セマフォテーブルＴＳは、実行中のデータベース更新処理について他のクライアントコンピュータＣからの処理要求に基づく完了待ちがあるか否かを判定するために設けられるテーブルである。処理中装置リストＬＥとセマフォテーブルＴＳの記述は、後述する処理の過程で適宜書き換えられる。処理中装置リストＬＥとセマフォテーブルＴＳの詳細については後述する。
【００５４】
リクエスト受信部１１０は、ＨＴＴＰプロトコルを用い、通信部１３を介してクライアントコンピュータＣから与えられるＵＲＬリクエストを受信する処理を担う。なお、好ましくは、通信部１１３においては、ＵＲＬリクエストを与えたクライアントコンピュータＣをＩＰアドレスなどによって識別可能とされてなり、制御部１１においては、その識別内容に基づいて、該制御部１１に実現されてなる機能的構成要素のそれぞれが該ＵＲＬリクエストの要求元であるクライアントコンピュータＣを特定することが、可能とされてなる。リクエスト受信部１１０において該ＵＲＬリクエストがＨＴＭＬデータ処理を要求する内容であると確認されると、ＨＴＭＬデータ処理プログラムｐ１により実現される各部によるデータ処理が行われることとなる。
【００５５】
処理内容判定部１１１は、リクエスト受信部１１０が受信したＵＲＬリクエストに記述されている処理内容について、同一のデータ生成装置２を対象とするデータベース更新処理が他のクライアントコンピュータＣからの処理要求に従って行われているか否かを、処理中装置リストＬＥの記述内容に基づいて判定する。
【００５６】
処理内容判定部１１１において、同一内容のデータベース更新処理が行われていないと判定された場合には、ＵＲＬリクエストに記述された処理要求に沿ったデータベース処理が行われることになる。係る場合、処理内容判定部１１１は、処理中装置リストＬＥへの登録、セマフォの生成、および該データベース更新処理の一環としてのデータ生成装置２からの装置生成データの取得を、対応する各部に要求する。
【００５７】
なお、対象となるデータ生成装置２とは異なるデータ生成装置２についてのデータベース更新処理が実行されたとしても、新たに要求されたデータベース更新処理はそれらの存在に関係なく実行される。これは、ＨＴＭＬデータ処理プログラムｐ１がマルチスレッド処理を実現可能なプログラム記述を有することによって実現されてなる。
【００５８】
一方、処理内容判定部１１１において、同一内容のデータベース更新処理が実行中であると判定された場合には、その実行中のデータベース更新処理の完了を待つ完了待ち処理が行われることになる。具体的には、処理内容判定部１１１は、データベース更新処理の実行対象となっているデータ生成装置２についてのセマフォに対する加算を行った上で、係るデータベース更新処理の処理完了イベントの実行の監視を行うように、対応する各部に要求する。処理完了イベントが実行されるまではＨＴＭＬデータ処理の進行が一時的に停止することから、係る監視を行うことが、完了待ち処理に相当する。
【００５９】
イベント処理部１１２は、クライアントコンピュータＣからの処理要求に沿って行われるデータベース更新処理の処理中装置リストＬＥへの登録、該データベース更新処理の処理完了イベントの実行、処理完了イベントが実行されたデータベース更新処理に関する記述の処理中装置リストＬＥからの削除に関する処理を担う。イベント処理部１１２は、これらの処理を実現するべく、イベント生成部１１２ａと、イベント実行部１１２ｂと、イベント削除部１１２ｃとを備える。
【００６０】
イベント生成部１１２ａは、あるデータ生成装置２についてのデータベース更新処理が実行されることになる度に、より詳細には、該データ生成装置２に関する同一内容のデータベース更新処理が実行されていないと処理内容判定部１１１において判定される度に、個々のデータ生成装置２を識別する装置ＩＤ（装置番号）をキーとし、該装置ＩＤにそれぞれのデータベース更新処理に一意に対応するイベントハンドル（処理完了イベントハンドルとも称する）を関連付けて、処理中装置リストＬＥに記述する。なお、係る処理は、換言すれば、後述する処理完了イベントを生成する（作成する）処理に相当する。
【００６１】
処理中装置リストＬＥは、上述のように、あるデータ生成装置２についてのＨＴＭＬデータの作成を要求するＵＲＬリクエストがあった場合に、処理内容判定部１１１が、その作成のために必要となるデータベース更新処理と同一内容のデータベース更新処理がその時点で実行されているか否かを判定するために用いられる。より詳細に言えば、処理内容判定部１１１は処理中装置リストＬＥにおいて装置ＩＤを検索し、該データ生成装置２の装置ＩＤの有無を判定する。装置ＩＤが登録されている場合には、サーバーコンピュータ１において当該データ生成装置２に係るデータベース更新処理が実行中であると判定することになる。
【００６２】
イベント実行部１１２ｂは、処理完了イベントを実行する処理を担う。ここで、処理完了イベントの実行とは、ある装置ＩＤのデータ生成装置２についてのデータベース更新処理が終了したことを指し示すための所定の処理を行うことを意味している。係る処理は、いわば、データベース更新処理の終了を指し示すフラグを立てる処理に相当する。これは、処理中装置リストＬＥに該フラグに相当する記述が追記される態様であっても良いし、処理中装置リストＬＥに関連付けられた別個のテーブルに、対応する記述がなされる態様であってもよい。そして、本実施の形態においては、その他の態様を含め、データベース更新処理の終了が認定される状態になることを、処理完了イベントが実行される、あるいは、処理完了イベントが「ＯＮ」になる、と称することがある。イベント実行部１１２ｂは、データ書込処理部１１５におけるデータ書込が終了したことを受けて、処理完了イベントを実行する。
【００６３】
イベント削除部１１２ｃは、処理中装置リストＬＥから、処理完了イベントが実行されたデータベース更新処理に関する記述を削除する処理を担う。係る削除は、後述するように、着目しているデータベース更新処理についてのセマフォが「０」と判定された場合に行われる。
【００６４】
セマフォ処理部１１３は、あるデータ生成装置２についての実行中のデータベース更新処理が、他のクライアントコンピュータＣからの処理要求に基づく完了待ちの対象となっているか否かの判定に用いるセマフォの生成（セマフォテーブルＴＳへの記述）、係るセマフォについての演算（加減算）、セマフォが０であるか否かの判定、セマフォテーブルＴＳからのセマフォの削除に関する処理を担う。セマフォ処理部１１３は、これらの処理を実現するべく、セマフォ生成部１１３ａと、セマフォ演算部１１３ｂと、セマフォ判定部１１３ｃと、セマフォ削除部１１３ｄとを備える。
【００６５】
セマフォ生成部１１３ａは、あるデータ生成装置２についてのデータベース更新処理が実行されることになる度に、より詳細には、該データ生成装置２に関するデータベース更新処理が実行されていないと処理内容判定部１１１において判定される度に、該データ生成装置２を識別する装置ＩＤをキーとし、それぞれの装置ＩＤに対応するセマフォ（処理完了イベント破棄セマフォ）を生成する。ここで生成されるセマフォは、０または正の整数を変数として取り得るように定義される。それぞれのセマフォの初期値は、「１」に設定される。すなわち、セマフォは、あるデータベース更新処理を完了待ちの対象とする処理要求の数を指し示す指数であるといえる。
【００６６】
セマフォ演算部１１３ｂは、セマフォテーブルＴＳのセマフォに対して、所定の条件に応じて加算あるいは減算を行う。具体的には、ある装置ＩＤに対応するデータ生成装置２についてのデータベース更新処理が新たに完了待ちの対象となる度に、該装置ＩＤと関連付けられているセマフォに「１」を加算し、完了待ちの対象であったデータベース更新処理が終了した時点で、加えて、複数の完了待ちが行われている場合にはその１つが終了する度にも、該装置ＩＤと関連付けられているセマフォから「１」を減算する。
【００６７】
セマフォ判定部１１３ｃは、セマフォ演算部１１３ｂにおいてある装置ＩＤに係るセマフォの減算が行われた場合に、減算後の該セマフォが「０」であるか否かを判定する。セマフォが「０」であれば、該装置ＩＤと対応するデータベース更新処理について完了待ち状態となっている同一内容の処理要求は存在しないことになる。一方、「１」以上であれば、同一内容のデータベース更新処理について、さらに別のクライアントコンピュータＣからのＵＲＬリクエストに基づく完了待ちがなされていることになる。セマフォ判定部１１３ｃにおける判定結果は終了処理部１１７に与えられる。終了処理部１１７は、後述するように、それぞれの判定結果に応じた処理を行う。
【００６８】
セマフォ削除部１１３ｄは、セマフォ判定部１１３ｃによって「０」であると判定されたセマフォについての記述を、セマフォテーブルＴＳから削除する処理を担う。
【００６９】
データ取得処理部１１４およびデータ書込処理部１１５は、データベース更新処理を担う。詳細に言えば、クライアントコンピュータＣから処理要求があった時点でデータ生成装置２に蓄積されている装置生成データをデータ生成装置２から取得しこれをデータベース３に書き込むことによって、データベースの内容を更新する処理を担う。
【００７０】
データ取得処理部１１４は、処理内容判定部１１１からのデータ取得要求に応答して、データ生成装置２の蓄積部２３にアクセスし、該蓄積部２３に蓄積されている装置生成データを取得する処理を行い、データ書込処理部１１５は、取得された装置生成データをデータベース３に書き込む（格納する）ことにより既存の記述内容を更新する処理を担う。
【００７１】
本実施の形態においては、ＵＲＬリクエストによってＨＴＭＬデータ処理が要求される度に、係るデータベース更新処理を実行し、その後にＨＴＭＬデータを作成することで、最新のデータ内容を含むＨＴＭＬデータの作成が可能とされてなる。
【００７２】
なお、ＵＲＬリクエストの有無にかかわらず、例えば連続的にあるいは断続的にデータベース更新処理を行う態様であってもよいが、これは必ずしも望ましくはない。なぜならば、上述したようにデータベース更新処理は通常、多大な時間を要し、サーバーコンピュータ１に処理負荷をかける処理であることに加えて、ＨＴＭＬデータ作成処理において要求されるのはその時点で最新のＨＴＭＬデータの作成であり、そのような頻繁な更新を行ったとしても、結局は最新の装置生成データをデータ生成装置２から取得する必要があるからである。
【００７３】
イベント実行監視部１１６は、処理中装置リストＬＥに記述されているデータベース更新処理について、処理完了イベントの実行を監視し、処理完了イベントがＯＮになった場合には、セマフォ演算部１１３ｂに対して、対応する（装置ＩＤが同じ）セマフォから「１」を減算するよう要求する。この要求に応答して、上述のようにセマフォ演算部１１３ｂが減算を行い、セマフォ判定部１１３ｃがその時点でのセマフォが「０」であるか否かを判定することになる。
【００７４】
終了処理部１１７は、データベース更新処理および完了待ち処理の終了に際して必要な処理を行う。セマフォ判定部１１３ｃによる判定の結果、判定対象であるセマフォが「０」である場合には、終了処理部１１７は、イベント削除部１１２ｃおよびセマフォ削除部１１３ｄに対してそれぞれ、該セマフォに関連付けられている装置ＩＤを有するデータ生成装置２についての記述を削除するよう要求する。該データ生成装置２についてのデータベース更新処理の完了待ちは行われていないため、係る記述を維持する必要はないからである。そして、終了処理部１１７は、ＨＴＭＬデータ作成部１１８に対して、データベース３に書き込まれている該装置ＩＤについての最新データに基づくＨＴＭＬデータ作成処理の実行を要求する。
【００７５】
一方、セマフォ判定部１１３ｃによる判定の結果、セマフォが「０」でない、つまりは「１」以上である場合には、同一内容のデータベース更新処理について、さらに別のクライアントコンピュータＣからのＵＲＬリクエストに基づく完了待ちがなされていることになるので、処理中装置リストＬＥおよびセマフォテーブルＴＳの記述を維持する必要がある。係る場合、終了処理部１１７は、ＨＴＭＬデータ作成部１１８に対するＨＴＭＬデータ作成処理の実行要求のみを行う。
【００７６】
ＨＴＭＬデータ作成部１１８は、終了処理部１１７からの実行要求に応答して、データベース３を参照し、対象となっている装置ＩＤのデータ生成装置２についての装置生成データに基づいて、クライアントコンピュータＣからの要求に沿ったＨＴＭＬデータを作成する。
【００７７】
ＨＴＭＬデータ送信部１１９は、ＨＴＭＬデータ作成部１１８において作成されたＨＴＭＬデータを、ＨＴＴＰプロトコルを用い、通信部１３を介してクライアントコンピュータＣに送信する（返信する）処理を担う。
【００７８】
＜ＨＴＭＬデータ取得までの流れ＞
次に、上述のような機能的構成要素によって実現される、クライアントコンピュータＣからのＵＲＬリクエストの受信から該クライアントコンピュータに対するＨＴＭＬデータの返信に至るまでの処理の流れについて説明する。図３は、係る処理の流れの概略を示す図である。
【００７９】
まず、クライアントコンピュータＣからサーバーコンピュータ１に対して、あるデータ生成装置２の装置生成データに基づくＨＴＭＬデータの取得要求がＵＲＬリクエストとして行われる（ステップＳ１）。これは、例えば、あらかじめクライアントコンピュータＣのブラウザＢによって視認可能に表示されてなる該ＨＴＭＬデータ処理に係るメニュー画面を、クライアントコンピュータＣのユーザがクライアントコンピュータＣに備わる図示しないマウスやキーボードなどの操作部を操作することによって、あるいはＵＲＬを直接に入力するなどして、実行される。係るＵＲＬリクエストは、リクエスト受信部１１０において受信される。なお、メニュー画面の表示は、サーバーコンピュータ１が該メニュー画面に対応するＨＴＭＬデータをクライアントコンピュータに与えることで実現されてなる。
【００８０】
ＵＲＬリクエストを受信したサーバーコンピュータ１は、ＨＴＭＬデータの作成に用いるべく、その時点での最新の装置生成データを、利用可能な状態とするための処理を行う（ステップＳ２）。具体的には、データベース更新処理あるいは完了待ち処理、およびこれらに関連する種々の処理を行うことになる。図４は、ステップＳ２において行われる処理の詳細な流れを示す図である。なお、図４においては、いくつかのステップについて、ＨＴＭＬデータ処理プログラムｐ１の記述言語としてＣ言語を用いる場合の当該ステップにおける処理を記述するコマンドを例示している。
【００８１】
ＵＲＬリクエストの内容は、リクエスト受信部１１０から処理内容判定部１１１に与えられる。処理内容判定部１１１は、これに応答して、処理中装置リストＬＥを対象に、該ＵＲＬリクエストにおいてＨＴＭＬデータの取得対象とされているデータ生成装置２の装置ＩＤ（装置番号）を検索する（ステップＳ２−１）。
【００８２】
該装置ＩＤが存在しない場合（ステップＳ２−２でＮＯ）、該データ生成装置２に関する同一内容のデータベース更新処理がその時点において実行されていないことになる。係る場合、処理内容判定部１１１が、イベント生成部１１２ａに対して該データ生成装置２に係るデータベース更新処理についての新たな処理完了イベントの作成を要求し、イベント生成部１１２ａはこれに応答して、該データ生成装置２の装置ＩＤをキーとし、該データベース更新処理に一意に対応する処理完了イベントハンドルを関連付けた記述を、処理中装置リストＬＥに登録する（ステップＳ２−３、Ｓ２−４）。
【００８３】
併せて、処理内容判定部１１１は、セマフォ生成部１１３ａに対して、該データベース更新処理についてのセマフォの生成を要求し、セマフォ生成部１１３ａはこれに応答して、該データ生成装置２を識別する装置ＩＤをキーとし、それぞれの装置ＩＤに対応するセマフォをセマフォテーブルＴＳに登録する（ステップＳ２−５、Ｓ２−６）。
【００８４】
さらに、処理内容判定部１１１は、データ取得処理部１１４およびデータ書込処理部１１５におけるデータベース更新処理の実行を要求する（ステップＳ２−７）。具体的には、対象となっているデータ生成装置２からの装置生成データの取得実行を要求する。データ取得処理部１１４が取得した装置生成データは、データ書込処理部１１５によってデータベース３に書き込まれる。これにより、データベース３においては、データ取得の対象となっているデータ生成装置２についての装置生成データが最新の内容に更新されたことになる。
【００８５】
データ書込処理部１１５におけるデータの書き込みが終了することで、データベース更新処理が終了したことになる。データ書込処理部１１５から書き込み終了に関する情報を取得するなどして、データベース更新処理の終了が判断されると、イベント実行部１１２ｂは、対応する処理完了イベントを「ＯＮ」の状態にする（ステップＳ２−８）。
【００８６】
一方、処理内容判定部１１１が、処理中装置リストＬＥを対象にＨＴＭＬデータの取得対象とされているデータ生成装置２の装置ＩＤを検索した結果、該装置ＩＤが存在する場合（ステップＳ２−２でＹＥＳ）、他のクライアントコンピュータＣからのＵＲＬリクエストに基づき、同一内容のデータベース更新処理が実行中ということになる。係る場合は、完了待ち処理が行われることになる。具体的には、まず、処理内容判定部１１１からの要求に応答して、イベント実行監視部１１６が、該装置ＩＤに係る処理完了イベントを監視対象として特定（取得）する（ステップＳ２−９）。そして、処理内容判定部１１１がセマフォテーブルＴＳを対象に該装置ＩＤを検索（ステップＳ２−１０）することで該装置ＩＤに対応するセマフォを特定したうえで、セマフォ演算部１１３ｂが該セマフォに対して「１」を加算する処理を行う（ステップ２−１１）。そして、イベント実行監視部１１６は、監視対象である処理完了イベントを「ＯＮ」にする所定の実行を監視する（ステップＳ２−１２）。具体的には、処理中装置リストＬＥへの「ＯＮ」状態を指し示すフラグの付与などが監視対象となる。
【００８７】
ステップＳ２−３〜Ｓ２−８を経てデータベース更新処理が行われた場合、また、ステップＳ２−９〜Ｓ２−１２による完了待ち処理が行われ、ステップＳ２−１２において処理完了イベントが「ＯＮ」となって完了待ち状態が終了（ステップＳ２−１２でＹＥＳ）した場合、終了処理部１１７が、セマフォテーブルＴＳを対象に検索を行うことによってＨＴＭＬデータ取得の対象となっているデータ生成装置２についての装置ＩＤを特定（ステップＳ２−１３）するとともに、セマフォ演算部１１３ｂが、終了処理部１１７からの要求に応答して、該装置ＩＤに関連付けられたセマフォから「１」を減算する（ステップＳ２−１４）。
【００８８】
そして、セマフォ演算部１１３ｂにおける減算が行われると、セマフォ判定部１１３ｃは、減算後のセマフォが「０」であるか否かを判定し（ステップＳ２−１５）、その結果を終了処理部１１７に与える。
【００８９】
セマフォが「０」である場合（ステップＳ２−１５でＹＥＳ）、係るセマフォに関連付けられている装置ＩＤを有するデータ生成装置についてのデータベース更新処理が完了待ちの対象とはなっていないことになる。係る場合、終了処理部１１７から削除要求が与えられ、イベント削除部１１２ｃが処理中装置リストＬＥにおける該装置ＩＤについての記述を削除（ステップＳ２−１６）するとともに、セマフォ削除部１１３ｄがセマフォテーブルＴＳにおける該装置ＩＤについての記述を削除する（ステップＳ２−１７）。その上で、終了処理部１１７からは、その時点でデータベース３に書き込まれている装置生成データに基づくＨＴＭＬデータの作成がＨＴＭＬデータ作成部１１８に対して要求され、ＨＴＭＬデータ作成部１１８はこれを実行する（図３のステップＳ３）。
【００９０】
一方、セマフォ判定部１１３ｃが、セマフォが「０」でないと判定した場合（図４のステップＳ２−１５でＮＯ）は、終了処理部１１７は直ちにＨＴＭＬデータ作成部１１８に対してＨＴＭＬデータの作成を要求し、ＨＴＭＬデータ作成部１１８はこれを実行する（ステップＳ３）。なお、初期値が「１」と与えられるセマフォがステップＳ２−１４において減算されているにもかかわらずこの時点で「０」でないということは、該セマフォに対して少なくとも一度は加算が行われているということである。しかも、「セマフォ」の加算は完了待ち処理の過程のみ行われる。従って、この場合、少なくとも他に１つ、同一の装置ＩＤに対応するデータ生成装置２についてのＨＴＭＬデータ処理が要求されており、そのためのデータベース更新処理が完了待ち処理の状態にあることになる。従って、処理中装置リストＬＥやセマフォテーブルの記述は削除されずに維持されることになる。
【００９１】
結論的に言えば、ステップＳ３のＨＴＭＬデータ作成部１１８におけるＨＴＭＬデータの作成は、セマフォ判定部１１３ｃにおいてセマフォが「０」であると判定されるか、「０」ではないと判定されるかによらず、最新の装置生成データに基づいて行われることになる。換言すれば、ＨＴＭＬデータ作成部１１８におけるＨＴＭＬデータの作成は、データベース更新処理が実際に行われた場合に限らず、完了待ち処理が行われた場合であっても、最新の装置生成データに基づいて行われることになる。前者の場合は実際にデータベース３に対する書き込みが行われた直後にＨＴＭＬデータが作成されるので当然であるが、後者の場合も、その直前に与えられた他のＵＲＬリクエストに基づき行われた同一内容のデータベース更新処理の終了を受けて、直ちにＨＴＭＬデータが作成されるからである。
【００９２】
ＨＴＭＬデータ作成部１１８において作成されたＨＴＭＬデータは、ＨＴＭＬデータ送信部１１９によって、ＵＲＬリクエストを与えたクライアントコンピュータＣに返信される（ステップＳ４）。これを受けて、ＨＴＭＬデータを受信したクライアントコンピュータＣのブラウザＢに、該ＨＴＭＬデータに基づく表示が行われることとなる。すなわち、処理要求に応じた結果表示が実現されたこととなる。
【００９３】
以上、説明したように、本実施の形態に係るＷｅｂアプリケーションサーバーシステムによれば、同一内容のＨＴＭＬデータの作成を要求するＵＲＬリクエストが相前後して与えられた場合に、最先のＵＲＬリクエストに対してのみＨＴＭＬデータの内容を最新のものとするためのデータベース更新処理を行うにも関わらず、係る最先のＵＲＬリクエストを与えたクライアントコンピュータに対してのみならず後のＵＲＬリクエストを与えたクライアントコンピュータに対しても、係る最新の書き込み内容に基づくＨＴＭＬデータを提供することができる。すなわち、リアルタイム性のあるＨＴＭＬデータを提供することができる。また、キャッシュメモリを設けておく必要もない。そして、同一内容の処理が略同一のタイミングで与えられた場合であっても、サーバーコンピュータに重複処理に伴う負荷を与えることもない。
【００９４】
なお、ＵＲＬリクエストが重複しない場合は、ＵＲＬリクエストが与えられる度にデータベース更新処理が行われた上でＨＴＭＬデータが作成されることになるので、当然ながら、得られるＨＴＭＬデータは、データベースに書き込まれた最新の内容に基づくものであることは言うまでもない。
【００９５】
＜第１の実施の形態の適用例＞
次に、本実施の形態に係るＷｅｂアプリケーションサーバーシステム１０の適用例について説明する。ここでは、データ生成装置２が、連続して稼働されるある製造装置であり、装置生成データとしてプロセスログデータとエラーログデータが生成される場合を例として説明する。そして、製造装置は絶えず動作しており、その動作状態が正常であるか否かを、頻繁に把握することが求められるものであるとする。このような場合、製造装置で生成された最新のプロセスログデータやエラーログデータの内容を、該製造装置の管理者が把握することが必要である。その目的を果たす上では、本実施の形態に係るＷｅｂアプリケーションサーバーシステム１０および該システムにおける処理方法を利用することが好適であると言える。すなわち、Ｗｅｂアプリケーションサーバーシステム１０のクライアントコンピュータＣが、管理者が使用する端末であるならば、該端末においては、最新のプロセスログデータやエラーログデータの内容を表示させようとする場合に、サーバーコンピュータ１に対して負荷をかけることなく、いつでも最新のデータ内容を取得することができる。特に、製造装置が相異なる機能を実現する複数のユニットから構成されてなるなどの理由で管理者が複数存在する（より詳細には、それぞれの担当者が個別のクライアントコンピュータＣを使用してサーバーコンピュータ１に対しアクセスする）ような場合や、サーバーコンピュータ１が製造装置に関する他の処理をも担っている場合には、本実施の形態に係るＷｅｂアプリケーションサーバーシステム１０の利用効果は大きいといえる。
【００９６】
図５は、係る場合においてクライアントコンピュータＣのブラウザＢに表示される、ＨＴＭＬデータ処理を要求する前のメニュー画面Ｗ１を例示する図である。メニュー画面Ｗ１には、データ生成装置２である製造装置についてのＨＴＭＬデータ処理の実行要求を行うための更新ボタンＢＴ１や、ＨＴＭＬデータ処理の結果を示す結果表示フィールドＦ１や、結果表示の表示内容を絞り込むための表示条件絞込フィールドＦ２（ただし、詳細は省略）や、メニュー画面Ｗ１などの表示対象のＵＲＬを表示するアドレスフィールドＦ３や、結果表示をバックアップする処理を実行するためのバックアップボタンＢＴ２（ただし、メニュー画面Ｗ１では非アクティブ）やエラーログデータについての表示とプロセスログデータについての表示とを切り替えるためのタブＴ１およびＴ２などが備わっている。
【００９７】
クライアントコンピュータＣのユーザによって更新ボタンＢＴ１がクリックされることで、ＨＴＭＬデータの作成を要求するＵＲＬリクエストが、サーバーコンピュータ１に対して与えられることになる。サーバーコンピュータ１は、このＵＲＬリクエストに応答し、図３や図４に示した処理の流れに従って、該更新ボタンＢＴがクリックされた時点の最新のプロセスログデータとエラーログデータに基づくＨＴＭＬデータ作成処理を実行し、その結果をクライアントコンピュータＣに返信することになる。
【００９８】
図６は、ＨＴＭＬデータ処理後のメニュー画面Ｗ２を例示する図である。メニュー画面Ｗ２の構成はメニュー画面Ｗ１と基本的に同じであり、ＨＴＭＬデータ処理によって作成されたＨＴＭＬデータに基づき、エラーログに関する情報の一部が、結果表示フィールドＦ１に表示される。なお、メニュー画面Ｗ２においてはバックアップボタンＢＴ２がアクティブになっており、クライアントコンピュータＣのユーザがバックアップボタンＢＴ２をクリックすることで、表示された処理結果をクライアントコンピュータの図示しない記憶部に記憶できるようになっている。
【００９９】
＜第２の実施の形態＞
＜サーバーコンピュータの機能的構成＞
同一内容のＨＴＭＬデータの作成を要求するＵＲＬリクエストが相前後して与えられた場合に、最先のＵＲＬリクエストを与えたクライアントコンピュータに対してのみならず後のＵＲＬリクエストを与えたクライアントコンピュータに対しても最新のＨＴＭＬデータを提供することができるＷｅｂアプリケーションサーバーシステムの構成態様は、上述した第１の実施の形態のものに限られるものではない。具体的には、Ｗｅｂアプリケーションサーバーシステムのサーバーコンピュータの制御部において、ＨＴＭＬデータ処理プログラムによって第１の実施の形態とは異なる機能的構成要素が実現されてなる場合であっても、同様の作用効果を奏することができる。本実施の形態においては、係る場合について説明する。なお、第１の実施の形態においては、最先のＵＲＬリクエストに応答して行われるデータベース更新処理が、後のＵＲＬリクエストに応答して行われる完了待ち処理の対象であったが、本実施の形態においては、最先のＵＲＬリクエストに対しては、データベース更新処理のみならずＨＴＭＬデータ作成処理までもが、完了待ち処理の対象となる。係る点で両実施形態には相違がある。
【０１００】
図７は、本実施の形態に係るサーバーコンピュータ１の機能的構成要素について説明するための図である。本実施の形態においても、係る機能的構成要素は、ＨＴＭＬデータ処理プログラムｐ１を含むプログラムｐが実行されることにより制御部１１において（必要に応じて記憶部１２や通信部１３も含めて）実現される。なお、第１の実施の形態と同様の作用効果を奏する構成要素については、同一の符号を付してその説明は省略する。図７には併せて、制御部１１内外の各部の間における相関関係についても矢印にて示している。図中、一点鎖線にて示す矢印は、クライアントコンピュータＣからの処理要求に従ってデータベース更新処理およびＨＴＭＬデータ作成処理を実行する場合の相関関係を示しており、破線にて示す矢印は、他のクライアントコンピュータＣから処理要求に従ってデータベース更新処理が行われている場合の完了待ち処理を実行する場合の相関関係を示しており、実線にて示す矢印は、両者に共通する処理に関する相関関係を示している。
【０１０１】
本実施の形態に係るサーバーコンピュータ１の制御部１１においては、リクエスト受信部１１０と、処理内容判定部２１１と、実行中リスト処理部２１２と、待ちリスト処理部２１３と、データ取得処理部１１４と、データ書込処理部１１５と、データ作成監視部２１６と、ＨＴＭＬデータ取得部２１７と、ＨＴＭＬデータ作成部２１８と、ＨＴＭＬデータ送信部２１９とが、主として実現される。
【０１０２】
また、ＨＴＭＬデータ処理プログラムｐ１が実行されることによって、ＲＡＭ１１ｃには実行中リストＬ１と処理待ちリストＬ２と作成データリストＬ３が生成される。実行中リストＬ１は、あるクライアントコンピュータＣからＨＴＭＬデータの取得要求があった場合に、他のクライアントコンピュータＣからの要求に基づく同一内容のＨＴＭＬ作成データの作成がその時点において行われているか否かを判定するために設けられるリストである。処理待ちリストＬ２は、実行中のＨＴＭＬデータ作成処理、あるいはその前段のデータベース更新処理が行われているＨＴＭＬデータ作成処理について他のクライアントコンピュータＣからの処理要求に基づく完了待ちがあった場合に、完了待ちを行うクライアントコンピュータＣが記述されるリストである。作成データリストＬ３は、作成されたＨＴＭＬデータについてその作成内容や格納場所を登録するためのリストである。なお、本実施の形態においては、ＨＴＭＬデータ作成部２１８で作成されたＨＴＭＬデータについては、いったんはＲＡＭ１１ｃや記憶部１２あるいはその他の図示しない記憶手段に格納される。実行中リストＬ１と処理待ちリストＬ２と作成データリストＬ３の記述は、後述する処理の過程で適宜書き換えられる。これらのリストの詳細については後述する。
【０１０３】
処理内容判定部２１１は、リクエスト受信部１１０が受信したＵＲＬリクエストに記述されている処理内容について、同一のデータ生成装置２を対象とするデータベース更新処理あるいはこれに引き続くＨＴＭＬデータ作成処理が他のクライアントコンピュータＣからの処理要求に従って行われているか否かを、実行中リストＬ１の記述内容に基づいて判定する。
【０１０４】
処理内容判定部２１１において、同一内容のデータベース更新処理あるいはＨＴＭＬデータ作成処理が行われていないと判定された場合には、ＵＲＬリクエストに記述された処理要求に沿った処理が行われることになる。係る場合、処理内容判定部２１１は、実行中リストＬ１への登録および該データベース更新処理の一環としてのデータ生成装置２からの装置生成データの取得を、対応する各部に要求する。
【０１０５】
一方、処理内容判定部２１１において、同一内容のＨＴＭＬデータ作成処理あるいはその前段のデータベース更新処理が実行中であると判定された場合には、ＨＴＭＬデータ作成処理の完了を待つ完了待ち処理が行われることになる。係る場合には、処理内容判定部２１１は、先に行われているＨＴＭＬデータの作成処理の完了についての監視を行うように、データ作成監視部２１６に要求する。係る監視を行っている間は、ＨＴＭＬデータ処理の進行が一時的に停止することから、係る監視を行うことが、完了待ち処理に相当する。
【０１０６】
実行中リスト処理部２１２は、クライアントコンピュータＣからＨＴＭＬデータ作成処理の要求があった場合に、そのＨＴＭＬデータ作成処理と要求元のクライアントコンピュータＣとについての実行中リストＬ１への登録、完了したＨＴＭＬデータ作成処理に係る記述の処理待ちリストＬ２からの削除に関する処理を担う。実行中リスト処理部２１２は、これらの処理を実現するべく、リスト登録部２１２ａと、リスト削除部２１２ｂとを備える。
【０１０７】
リスト登録部２１２ａは、あるデータ生成装置２についてのＨＴＭＬデータ作成処理が実行されることになる度に、より詳細には、該データ生成装置２に関する同一内容のＨＴＭＬデータ作成処理あるいはその前段のデータベース更新処理が実行されていないと処理内容判定部２１１において判定される度に、該クライアントコンピュータの識別情報とそのＨＴＭＬデータ作成処理の処理対象であるデータ生成装置２（あるいはその処理そのもの）とを一意に識別する識別情報と関連付けて、実行中リストＬ１に登録する。
【０１０８】
実行中リストＬ１は、上述のように、あるデータ生成装置２についてのＨＴＭＬデータの作成を要求するＵＲＬリクエストがあった場合に、処理内容判定部２１１が、その作成ために必要となるＨＴＭＬデータ作成処理と同一内容のＨＴＭＬデータ作成処理あるいはその前段のデータベース更新処理がその時点で実行されているか否かを判定するために用いられる。より詳細に言えば、処理内容判定部２１１は実行中リストＬ１を対象とする検索を行い、同一内容のＨＴＭＬデータ作成処理が実行対象となっているか否かを判定する。送信元のクライアントコンピュータＣが異なる以外は同一内容のＵＲＬリクエストを受信した場合には、処理内容判定部２１１は、サーバーコンピュータ１において当該データ生成装置２に係るＨＴＭＬデータ作成処理またはデータベース更新処理が実行中であると判定することになる。
【０１０９】
リスト削除部２１２ｂは、ＨＴＭＬデータ作成処理が完了した場合に、実行中リストＬ１から、該ＨＴＭＬデータ作成処理に関する記述を削除する処理を担う。
【０１１０】
待ちリスト処理部２１３は、あるデータ生成装置２についてのＨＴＭＬデータ作成処理が終了する時点までに同一内容の処理要求を与えた他のクライアントコンピュータＣについての処理待ちリストＬ２への登録、およびＨＴＭＬデータ返信後の処理待ちリストＬ２の記述の削除に関する処理を担う。待ちリスト処理部２１３は、これらの処理を実現するべく、リスト登録部２１３ａと、リスト削除部２１３ｂとを備える。
【０１１１】
リスト登録部２１３ａは、あるデータ生成装置２についてのＨＴＭＬデータ作成処理が完了待ちの対象となる度に、より詳細には、クライアントコンピュータＣからの処理要求があった場合に、その内容と同一のデータベース更新処理あるいはＨＴＭＬデータ作成処理がその時点で実行されていると処理内容判定部２１１において判定される度に、そのクライアントコンピュータＣの識別情報とその処理内容を識別する情報とを待ちリストＬ２に登録する。
【０１１２】
リスト削除部２１３ｂは、完了待ちの状態が解除され、完了待ちの対象となっていたクライアントコンピュータＣに対してもＨＴＭＬデータが返信された場合に、該クライアントコンピュータＣに係る記述を処理待ちリストＬ２から削除する処理を担う。
【０１１３】
データ作成監視部２１６は、ＨＴＭＬデータ作成部２１８におけるＨＴＭＬデータ作成処理の完了を監視するとともに、そのＨＴＭＬデータ作成処理について完了待ち状態に基づいて、必要な処理を行う。
【０１１４】
具体的には、あるクライアントコンピュータＣからのＵＲＬリクエストに応答して行われたＨＴＭＬデータ作成処理が終了した時点で、処理待ちリストＬ２を参照して、そのＨＴＭＬデータ作成処理についての完了待ち状態となっている他のクライアントコンピュータＣからの処理要求がないと判断される場合には、データ作成監視部２１６は、実行中リスト処理部２１２のリスト削除部２１２ｂに対して、係るＨＴＭＬデータ作成処理についての記述を削除する旨の要求を行う。
【０１１５】
一方、処理待ちリストＬ２を参照した際に、完了待ち状態となっていたクライアントコンピュータＣがあると判断される場合には、作成されたＨＴＭＬデータをその完了待ち状態のクライアントコンピュータＣに対しても送信させるべく、ＨＴＭＬデータ取得部２１７に対して、係るＨＴＭＬデータの取得を行うように所定の要求を与える。係る要求が、完了待ちの解除要求に相当することになる。さらに、待ちリスト処理部２１３のリスト削除部２１３ｂに対して、係る完了待ち状態のＵＲＬリクエストを与えたクライアントコンピュータＣについての記述を削除する旨の要求を与える。
【０１１６】
ＨＴＭＬデータ取得部２１７は、データ作成監視部２１６から与えられる所定の要求に従い、作成データリストＬ３を参照して、完了待ち状態となっていたＵＲＬリクエストに沿ったＨＴＭＬデータを取得する。そして、該ＨＴＭＬデータを取得すると、これをそのＵＲＬリクエストを与えたクライアントコンピュータＣに送信するよう、ＨＴＭＬデータ送信部２１９に対して要求する。
【０１１７】
ＨＴＭＬデータ作成部２１８は、データ書込処理部１１５による装置生成データのデータベース３への書き込みが完了したことを受けて、該データベース３を参照し、更新後の装置生成データに基づいて、クライアントコンピュータＣからの要求に沿ったＨＴＭＬデータを作成する。そして、ＨＴＭＬデータ送信部２１９に、該クライアントコンピュータＣに対して送信するよう要求する。その一方で、作成したＨＴＭＬデータをＲＡＭ１１ｃや記憶部１２あるいはその他の図示しない記憶手段に格納する。さらに、係るＨＴＭＬデータについての作成内容や作成したＨＴＭＬデータの格納場所について作成データリストＬ３に登録する処理も担う。
【０１１８】
ＨＴＭＬデータ送信部２１９は、ＨＴＭＬデータ作成部２１８において作成されたＨＴＭＬデータもしくはＨＴＭＬデータ取得部２１７によって取得されたＨＴＭＬデータを、ＨＴＴＰプロトコルを用い、通信部１３を介して、それぞれの要求元であるクライアントコンピュータＣに送信する（返信する）処理を担う。
【０１１９】
＜ＨＴＭＬデータ取得までの流れ＞
次に、上述のような機能的構成要素によって実現される、クライアントコンピュータＣからのＵＲＬリクエストの受信から該クライアントコンピュータＣへのＨＴＭＬデータの返信に至るまでの処理の流れについて説明する。図８は、係る処理の流れの概略を示す図である。
【０１２０】
まず、クライアントコンピュータＣからサーバーコンピュータ１に対して、あるデータ生成装置２の装置生成データのＨＴＭＬデータ取得要求が、ＵＲＬリクエストによって行われる（ステップＳ１１）。係るＵＲＬリクエストは、リクエスト受信部１１０において受信される。
【０１２１】
受信されたＵＲＬリクエストの内容は、処理内容判定部２１１に与えられる。処理内容判定部２１１は、実行中リストＬ１を対象に、同一内容のＨＴＭＬデータ作成処理が登録されているか否かを検索する（ステップＳ１２）。その結果に応じて、データベース更新処理およびその後のＨＴＭＬデータ作成処理、あるいは完了待ち処理、およびこれらに関連する種々の処理が行われることになる。
【０１２２】
処理内容判定部２１１が、同一内容のＨＴＭＬデータ作成処理が実行中リストＬ１に登録されていないと判定した場合（ステップＳ１２でＮＯ）、該データ生成装置２に関する同一内容のＨＴＭＬデータ作成処理あるいはその前段のデータベース更新処理がその時点において実行されていないことになる。係る場合、処理内容判定部２１１は、実行中リスト処理部２１２のリスト登録部２１２ａに対して、該ＨＴＭＬデータ作成処理の登録を要求する。リスト処理部２１２ａはこれに応答して、要求元のクライアントコンピュータＣとＨＴＭＬデータ処理の内容とを関連付けて、実行中リストＬ１に登録する（ステップＳ１３）。
【０１２３】
さらに、処理内容判定部２１１は、データベース更新処理とこれに引き続くＨＴＭＬデータ作成処理の実行を要求する（ステップＳ１４）。具体的には、ＨＴＭＬデータの取得対象となっているデータ生成装置２からの装置生成データの取得を実行を要求する。データベース更新処理については、第１の実施の形態と同様に行われる。データ書込処理部１１５におけるデータの書き込みが終了するとデータベース更新処理が終了したことになる。デーベース更新処理が終了すると引き続いて、データベースに書き込まれた最新の装置生成データに基づいて、ＨＴＭＬデータ作成処理が行われ、クライアントコンピュータＣから要求されたＨＴＭＬデータが作成されて、図示しない所定の格納場所に一時的に格納される。
【０１２４】
係るＨＴＭＬデータは、その作成内容や格納場所の情報が、作成データリストＬ３に登録されたうえで（ステップＳ１５）、ＨＴＭＬデータ送信部２１９によって、ＵＲＬリクエストを与えたクライアントコンピュータＣに返信される（ステップＳ１６）。これを受けて、ＨＴＭＬデータを受信したクライアントコンピュータＣのブラウザＢに、該ＨＴＭＬデータに基づく表示が行われることとなる。
【０１２５】
そして、データ作成監視部２１６が、処理待ちリストＬ２を対象に、実行されたＨＴＭＬデータ作成処理が、完了待ちの対象とされているか否かを検索し、対象となっている場合には、ＨＴＭＬデータ取得部２１７に、係るＨＴＭＬデータ作成処理で作成されたＨＴＭＬデータを取得させるための要求を行うことによって、その完了待ちを解除させる（ステップＳ１７）。また、所定の処理要求を与えることにより、実行中リスト処理部２１２のリスト削除部２１２ｂに対して、実行中リストＬ１から、実行されたＨＴＭＬデータ作成処理についての記述を削除させる。
【０１２６】
一方、処理内容判定部２１１が、実行中リストＬ１において同一内容のＨＴＭＬデータが登録されていると判定した場合（ステップＳ１２でＹＥＳ）、他のクライアントコンピュータＣからのＵＲＬリクエストに基づき、同一内容のＨＴＭＬデータ作成処理あるいはその前段のデータベース更新処理が実行中ということになる。係る場合は、完了待ち処理が行われることになる。具体的には、処理内容判定部２１１が待ちリスト処理部２１３のリスト登録部２１３ａに対して、クライアントコンピュータＣが処理待ちの状態である旨の登録を要求する。リスト登録部２１３ａはこれに応答して、要求元のクライアントコンピュータＣの識別情報とその処理内容を識別する情報とを待ちリストＬ２に登録する（ステップＳ１８）。その後は、上述のようにデータ作成監視部２１６による解除要求、つまりは、ＨＴＭＬデータ取得部２１７によるＨＴＭＬデータの取得要求が与えられるまでは、処理を停止したままの完了待ち状態となる（ステップＳ１９）。
【０１２７】
ＨＴＭＬデータ取得部２１７に対してＨＴＭＬデータの取得要求が与えられると、ＨＴＭＬデータ取得部２１７は、作成データリストＬ３を参照して、他のクライアントコンピュータＣからの取得要求に従って直近に作成されたＨＴＭＬデータを取得する（ステップＳ２０）。ＨＴＭＬデータ取得部２１７によって取得されたＨＴＭＬデータは、ＨＴＭＬデータ送信部２１９によって、ＵＲＬリクエストを与えたクライアントコンピュータＣに返信される（ステップＳ２１）。この場合も、ＨＴＭＬデータを受信したクライアントコンピュータＣのブラウザＢにおいて、該ＨＴＭＬデータに基づく表示が行われることとなる。
【０１２８】
本実施の形態においては、同一内容のＨＴＭＬデータの作成を要求するＵＲＬリクエストが相前後して与えられた場合、あるクライアントコンピュータＣからの最先のＵＲＬリクエストに基づくＨＴＭＬデータの作成が完了すれば、後のＵＲＬリクエストに係る完了待ちは直ちに解消されて、作成されたＨＴＭＬデータが、後のＵＲＬリクエストを与えたクライアントコンピュータに対しても直ちに送信されることになる。
【０１２９】
すなわち、本実施の形態に係るＷｅｂアプリケーションサーバーシステムにおいては、同一内容のＨＴＭＬデータの作成を要求するＵＲＬリクエストが相前後して与えられた場合に、最先のＵＲＬリクエストに対してのみデータベース更新処理を行ったうえでコンテンツデータ作成処理を行うにも関わらず、係る最先のＵＲＬリクエストを与えたクライアントコンピュータに対してのみならず後のＵＲＬリクエストを与えたクライアントコンピュータに対しても、最先の作成要求に基づくＨＴＭＬデータの作成後、直ちに、データベースの最新の書き込み内容に基づくＨＴＭＬデータを提供することができる。すなわち、リアルタイム性のあるＨＴＭＬデータを提供することができる。また、キャッシュメモリを設けておく必要もない。そして、同一内容の処理が略同一のタイミングで与えられた場合であっても、サーバーコンピュータに重複処理に伴う負荷を与えることもない。
【０１３０】
なお、ＵＲＬリクエストが重複しない場合に、ＨＴＭＬデータがデータベースに書き込まれた最新の内容に基づいて作成されることは、第１の実施の形態と同様に言うまでもないことである。
【図面の簡単な説明】
【０１３１】
【図１】第一の実施の形態に係るＷｅｂアプリケーションサーバーシステム１０の構造を模式的に示す図である。
【図２】第１の形態に係るサーバーコンピュータ１の機能的構成要素について説明するための図である。
【図３】第１の実施の形態に係るＨＴＭＬデータ取得までの処理の流れの概略を示す図である。
【図４】図３のステップＳ２において行われる処理の詳細な流れを示す図である。
【図５】クライアントコンピュータＣのブラウザＢに表示される、ＨＴＭＬデータ処理を要求する前のメニュー画面Ｗ１を例示する図である。
【図６】クライアントコンピュータＣのブラウザＢに表示される、ＨＴＭＬデータ処理後のメニュー画面Ｗ２を例示する図である。
【図７】第２の形態に係るサーバーコンピュータ１の機能的構成要素について説明するための図である。
【図８】第２の実施の形態に係るＨＴＭＬデータ取得までの処理の流れの概略を示す図である。
【符号の説明】
【０１３２】
１  サーバーコンピュータ
２  データ生成装置
３  データベース
１０  アプリケーションサーバーシステム
１１０  リクエスト受信部
１１１、２１１  処理内容判定部
１１２  イベント処理部
１１３  セマフォ処理部
１１４  データ取得処理部
１１５  データ書込処理部
１１６  イベント実行監視部
１１７  終了処理部
１１８、２１８  ＨＴＭＬデータ作成部
１１９、２１９  ＨＴＭＬデータ送信部
２１２  実行中リスト処理部
２１３  待ちリスト処理部
２１６  データ作成監視部
２１７  ＨＴＭＬデータ取得部
Ｂ  ブラウザ
ＢＴ１  更新ボタン
Ｃ  クライアントコンピュータ
Ｆ１  結果表示フィールド
Ｌ１  実行中リスト
Ｌ２  処理待ちリスト
Ｌ３  作成データリスト
ＬＥ  処理中装置リスト
Ｎ  ネットワーク
ＴＳ  セマフォテーブル
Ｗ１、Ｗ２  メニュー画面
ｐ１  ＨＴＭＬデータ処理プログラム
【図１】
2008083789.tif 000003
【図２】
2008083789.tif 000004
【図３】
2008083789.tif 000005
【図４】
2008083789.tif 000006
【図５】
2008083789.tif 000007
【図６】
2008083789.tif 000008
【図７】
2008083789.tif 000009
【図８】
2008083789.tif 000010