JP2002333986A - Application server system and program and storage medium with the program stored therein - Google Patents
Application server system and program and storage medium with the program stored thereinInfo
- Publication number
- JP2002333986A JP2002333986A JP2001140349A JP2001140349A JP2002333986A JP 2002333986 A JP2002333986 A JP 2002333986A JP 2001140349 A JP2001140349 A JP 2001140349A JP 2001140349 A JP2001140349 A JP 2001140349A JP 2002333986 A JP2002333986 A JP 2002333986A
- Authority
- JP
- Japan
- Prior art keywords
- server
- program
- function
- request
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、Webクライアン
ト/サーバシステム等のWebクライアント/サーバシ
ステムにおいて、クライアントからの多様な処理要求
(リクエスト)に応じた処理を実行し、処理結果をサー
バを介してクライアントに提供するためのアプリケーシ
ョンサーバシステム、アプリケーションサーバ用コンピ
ュータが実行可能なプログラムおよびプログラムを記憶
した記憶媒体に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a Web client / server system such as a Web client / server system, which executes processing in response to various processing requests (requests) from clients and transmits the processing results via a server. The present invention relates to an application server system provided to a client, a program executable by an application server computer, and a storage medium storing the program.
【0002】[0002]
【従来の技術】近年、インターネットの爆発的な普及に
より、そのインターネット上に構築したWebサーバに
対して、多くのクライアント(Webブラウザ)から多
様の処理が要求されるようになっており、Webサーバ
側では、要求される多様の処理に応える必要性が生じて
いる。2. Description of the Related Art In recent years, with the explosive spread of the Internet, many clients (Web browsers) have been required to perform various processes on a Web server built on the Internet. On the side, there is a need to respond to the various processes required.
【0003】例えば、インターネット上において、仮想
店舗のWebサイト(Webサーバ)を構築し、このW
ebサーバを利用して電子商取引(Eコマース)を行な
った際には、Webサーバは、顧客(クライアント)に
対する商品提示処理およびクライアントからの注文受付
処理に加えて、注文情報の在庫確認処理(在庫商品のデ
ータベースへのアクセス処理)、受注情報登録処理(登
録用データベースへのアクセス処理)、受注商品の合計
金額算出処理等、複雑かつ多様な処理を実行する必要が
ある。[0003] For example, a Web site (Web server) of a virtual store is constructed on the Internet, and this W
When e-commerce (e-commerce) is performed using the web server, the web server performs order confirmation processing (stock) of the order information in addition to the product presentation processing to the customer (client) and the order reception processing from the client. It is necessary to execute complicated and various processes such as a process of accessing a product database, a process of registering order information (a process of accessing a registration database), and a process of calculating a total price of ordered products.
【0004】しかしながら、上述した複雑かつ多様な処
理をWebサーバが単独で実行するシステムでは、We
bサーバに負荷が集中し、その結果、クライアントに対
するレスポンスの遅延や、Webサーバ自体のトラブル
が発生することになり、Webサイトシステム(Web
クライアント/サーバシステム)の業務効率および信頼
性の低下を招く恐れが生じていた。[0004] However, in a system in which the Web server executes the above-described complicated and diverse processes independently, the Web
b, the load is concentrated on the server, and as a result, a delay in response to the client and trouble of the Web server itself occur, and the Web site system (Web site system)
There has been a risk of lowering the work efficiency and reliability of the client / server system.
【0005】そこで、Webサーバで実行していた処理
の内、負荷の比較的軽いクライアントに対する窓口的な
処理をWebサーバに割り当て、計算処理、データベー
スアクセス処理等の他の負荷のかかる処理については、
新たにWebアプリケーションサーバを導入し、このW
ebアプリケーションサーバに上記負荷のかかる処理を
実行させるWebクライアント/サーバシステムが開発
されており、Webサーバの処理負荷の軽減が図られて
いる。Therefore, of the processing executed on the Web server, a window-like processing for a client with a relatively light load is assigned to the Web server, and other processings such as calculation processing and database access processing that require a load are described below.
A new Web application server is introduced and this W
A Web client / server system has been developed that causes the Web application server to execute the above-described processing with a load, and the processing load on the Web server is reduced.
【0006】[0006]
【発明が解決しようとする課題】しかしながら、上述し
たシステムでは、確かにWebサーバの負荷の軽減は図
れるものの、Webアプリケーションサーバ自体に負荷
が集中することになり、この結果、Webサーバに対す
る負荷集中の場合と同様の問題が生じている。However, in the above-mentioned system, although the load on the Web server can be certainly reduced, the load is concentrated on the Web application server itself, and as a result, the load concentration on the Web server is reduced. A similar problem has arisen.
【0007】上述した問題は、Webクライアント/サ
ーバシステムに限らず、サーバの処理負荷軽減のために
導入されたアプリケーションサーバに対して処理負荷が
集中するWebクライアント/サーバシステムにおいて
も、同様に発生する。The above-mentioned problem occurs not only in the Web client / server system but also in a Web client / server system in which the processing load is concentrated on an application server installed for reducing the processing load of the server. .
【0008】本発明は上述した事情に鑑みてなされたも
ので、アプリケーションサーバ(アプリケーションサー
バ用コンピュータ)に対する処理負荷の分散化を図るこ
とができる具体的なソフトウエア(プログラムモジュー
ル)およびこのプログラムモジュールを記憶した記憶媒
体を提供することをその第1の目的とする。The present invention has been made in view of the above-mentioned circumstances, and specific software (program module) capable of dispersing the processing load on an application server (computer for an application server) and this program module are provided. It is a first object of the present invention to provide a stored storage medium.
【0009】また、本発明は上述した事情に鑑みてなさ
れたもので、第1の目的に加えて、クライアントからの
要求(リクエスト)に基づく処理を分散して実行するこ
とができるアプリケーションサーバシステムを提供する
ことをその第2の目的とする。Further, the present invention has been made in view of the above circumstances, and in addition to the first object, provides an application server system capable of executing processing based on a request from a client in a distributed manner. The second purpose is to provide.
【0010】[0010]
【課題を解決するための手段】上述した目的を達成する
ための請求項1記載の発明によれば、クライアントから
要求されサーバを介して受け付けられたリクエストに応
じてサーバサイドのアプリケーションロジックに基づく
処理を実行するためのアプリケーションサーバ用コンピ
ュータが実行可能なプログラムであって、前記サーバに
より受付られたリクエストを受取る機能を含む前記サー
バに対するインタフェース機能をコンピュータに実現さ
せるためのインタフェース用プログラムモジュールから
構成された第1の層と、前記インタフェース用プログラ
ムモジュールにより受取られたリクエストに対応するア
プリケーションロジックを実行する機能をコンピュータ
に実現させるためのアプリケーション用プログラムモジ
ュールから構成された第2の層とを含む階層構造を有す
る。According to the first aspect of the present invention, there is provided a method for processing based on server-side application logic in response to a request requested by a client and received via a server. A program executable by an application server computer for executing the program, and comprising an interface program module for causing the computer to realize an interface function for the server including a function of receiving a request received by the server. A first layer; and an application program module for causing a computer to execute a function of executing application logic corresponding to the request received by the interface program module. And having a hierarchical structure and a second layer.
【0011】請求項2に記載した発明によれば、請求項
1記載のプログラムにおいて、前記インタフェース用プ
ログラムモジュールのインタフェース機能は、前記サー
バから受取ったリクエストを前記アプリケーション用プ
ログラムモジュールに渡す機能および前記リクエストに
対応するアプリケーションロジックの実行結果を受け取
り、受取った実行結果を前記サーバに送信する機能を含
む。According to the second aspect of the present invention, in the program according to the first aspect, the interface function of the interface program module includes a function of passing a request received from the server to the application program module and the request. And a function of receiving an execution result of the application logic corresponding to the above and transmitting the received execution result to the server.
【0012】請求項3に記載した発明によれば、請求項
2記載のプログラムにおいて、前記アプリケーションロ
ジックは複数であり、これら複数のアプリケーションロ
ジックをそれぞれ実行する機能をコンピュータに実現さ
せるためのアプリケーション用プログラムモジュールは
複数であるとともに、前記受取ったリクエストを前記ア
プリケーション用プログラムモジュールに対して渡す機
能は、受取ったリクエストを前記複数のアプリケーショ
ン用プログラムモジュールの何れかに渡すかを決定し、
決定したアプリケーション用プログラムモジュールに対
して当該リクエストを渡す機能である。According to a third aspect of the present invention, in the program according to the second aspect, the application logic includes a plurality of application logics, and an application program for causing a computer to execute a function of executing each of the plurality of application logics. The module has a plurality of modules, and the function of passing the received request to the application program module determines whether to pass the received request to any of the plurality of application program modules,
This is a function of passing the request to the determined application program module.
【0013】請求項4記載の発明によれば、請求項3記
載のプログラムにおいて、前記アプリケーションサーバ
は、プラットフォームに非依存な状態でオブジェクト指
向に基づく分散オブジェクト環境下において構築されて
おり、前記複数のアプリケーション用プログラムモジュ
ールは、渡されたリクエストに対応するアプリケーショ
ンロジックを前記複数のアプリケーションロジックの中
から選択して起動させる機能を含むアプリケーションロ
ジックの実行管理機能をコンピュータに実現させるため
の実行管理オブジェクトと、前記リクエストに応じた前
記実行管理オブジェクトのアプリケーションロジック実
行管理機能に基づいて渡されたアプリケーションロジッ
クを実行してその実行結果を前記実行管理オブジェクト
に渡す実行エンジンオブジェクトとをそれぞれ備えてい
る。According to a fourth aspect of the present invention, in the program according to the third aspect, the application server is constructed in a distributed object environment based on object orientation in a state independent of a platform. An application program module is an execution management object for causing a computer to implement an application logic execution management function including a function of selecting and starting an application logic corresponding to the passed request from the plurality of application logics, An execution engine that executes a passed application logic based on an application logic execution management function of the execution management object in response to the request, and passes an execution result to the execution management object; And an object, respectively.
【0014】請求項5記載の発明によれば、請求項4記
載のプログラムにおいて、前記第2の層における前記実
行エンジンオブジェクトによる前記アプリケーションロ
ジックの実行を支援する機能をコンピュータに実現させ
るための複数の実行支援用オブジェクトから構成された
第3の層をさらに備えている。According to a fifth aspect of the present invention, in the program according to the fourth aspect, a plurality of programs for causing a computer to implement a function of supporting execution of the application logic by the execution engine object in the second layer. There is further provided a third layer composed of execution support objects.
【0015】請求項6記載の発明によれば、請求項5記
載のプログラムにおいて、前記実行管理オブジェクト
は、前記実行エンジンオブジェクトにより実行されてい
るアプリケーションロジック内において前記複数の実行
支援用オブジェクトの内の少なくとも1つのオブジェク
トの機能を利用する命令が生じた際に、その命令を解釈
し、解釈結果に対応する実行支援用オブジェクトに対し
て処理を依頼する機能および依頼先の実行支援用オブジ
ェクトから渡された実行結果を命令発行元のアプリケー
ションロジックに渡す機能をそれぞれ含み、前記第3の
層の複数の実行支援用オブジェクトは、前記実行管理オ
ブジェクトから依頼された処理内容に基づく処理を実行
し、その実行結果を依頼元の実行管理オブジェクトに渡
す機能をそれぞれ含む。According to a sixth aspect of the present invention, in the program according to the fifth aspect, the execution management object is one of the plurality of execution support objects in an application logic executed by the execution engine object. When an instruction using the function of at least one object is generated, the instruction is interpreted, and a function for requesting the execution support object corresponding to the interpretation result to perform processing is passed from the requested execution support object. And a function for passing the execution result to the application logic of the instruction issuer. The plurality of execution support objects of the third layer execute processing based on the processing content requested by the execution management object, and execute Includes a function to pass the result to the execution management object of the requester. .
【0016】請求項7記載の発明によれば、請求項6記
載のプログラムにおいて、前記アプリケーションサーバ
を構築する複数のコンピュータは、データベースサーバ
に搭載された複数の分散化データベースにアクセス可能
になっており、前記クライアントは複数であり、これら
複数のクライアントから複数のリクエストに対応する複
数のアプリケーションロジックが前記実行管理オブジェ
クトを介して実行エンジンオブジェクトにより実行され
るようになっている一方、前記複数の実行支援用オブジ
ェクトは、前記複数のクライアントから要求されたリク
エストに応じて、当該リクエスト発行元のクライアント
のセッション情報を管理するセッションオブジェクト
と、前記実行管理オブジェクトから依頼されたデータベ
ースアクセスを表す処理内容に基づいて、前記分散化デ
ータベースに対して直接アクセスする機能および前記実
行管理オブジェクトから依頼された処理内容に基づい
て、当該実行管理オブジェクトから渡されたデータを一
時的に蓄えるキャッシュ機能を有するデータベース用オ
ブジェクトと、前記実行管理オブジェクトから依頼され
たデータの暗号化/復号化を表す処理内容に基づいて、
当該実行管理オブジェクトから渡されたデータの暗号化
/復号化を行なう機能を有する暗号化/復号化オブジェ
クトとを含む。According to the invention described in claim 7, in the program described in claim 6, the plurality of computers constituting the application server can access a plurality of distributed databases mounted on the database server. A plurality of clients, and a plurality of application logics corresponding to a plurality of requests from the plurality of clients are executed by an execution engine object via the execution management object. The object for use represents a session object for managing session information of the client that issued the request in response to a request requested from the plurality of clients, and a database access requested from the execution management object. A database having a function of directly accessing the decentralized database based on the management content and a cache function of temporarily storing data passed from the execution management object based on the processing content requested by the execution management object On the basis of the object for processing and processing contents representing encryption / decryption of data requested from the execution management object,
And an encryption / decryption object having a function of encrypting / decrypting the data passed from the execution management object.
【0017】請求項8記載の発明によれば、請求項4記
載のプログラムにおいて、前記複数の実行管理オブジェ
クトは、それぞれ前記複数のコンピュータに分散配置さ
れている一方、前記インタフェース用プログラムモジュ
ールは、前記サーバにより受付られたリクエストを受取
る機能および前記リクエストが渡されたアプリケーショ
ン用プログラムモジュールの実行結果を受け取って前記
サーバに送信する機能をコンピュータに実現させるため
のインタフェースプログラムと、このインタフェースプ
ログラムに基づいて受取られたリクエストに含まれるジ
ョブを、分散配置された複数のコンピュータ上の複数の
実行管理オブジェクトの内のどの実行管理オブジェクト
に渡すかをスケジューリングする機能をコンピュータに
実現させるためのスケジューリングオブジェクトとを含
む。According to the invention described in claim 8, in the program described in claim 4, the plurality of execution management objects are respectively distributed to the plurality of computers, while the interface program module is An interface program for causing a computer to realize a function of receiving a request received by a server and a function of receiving an execution result of an application program module to which the request has been passed and transmitting the result to the server; To provide a computer with a function of scheduling which execution management object among a plurality of execution management objects on a plurality of distributed computers the job included in the received request is to be transferred. Ke and a scheduling object.
【0018】請求項9記載の発明によれば、請求項8記
載のプログラムにおいて、前記インタフェースプログラ
ムは、前記サーバから起動されるCGIプログラムと、
前記サーバに依存するインタフェースオブジェクトとを
備え、前記CGIプログラムは、前記サーバを介して受
け付けられたリクエストが前記サーバのCGI機能によ
り実行されたものである場合に、前記リクエスト受取る
機能および前記リクエストが渡されたアプリケーション
用プログラムモジュールの実行結果を受け取って前記サ
ーバに送信する機能をコンピュータに実現させるように
なっており、前記インタフェースオブジェクトは、前記
サーバを介して受け付けられたリクエストが当該サーバ
のCGI機能により実行されたものでない場合に、前記
リクエスト受取る機能および前記リクエストが渡された
アプリケーション用プログラムモジュールの実行結果を
受け取って前記サーバに送信する機能をコンピュータに
実現させる。According to a ninth aspect of the present invention, in the program of the eighth aspect, the interface program includes a CGI program started from the server,
An interface object that depends on the server, wherein the CGI program transfers the request receiving function and the request when the request received via the server is executed by the CGI function of the server. And a function of receiving the execution result of the application program module and transmitting the execution result to the server. The interface object is configured so that the request received via the server is executed by the CGI function of the server. If the request has not been executed, the computer implements the function of receiving the request and the function of receiving the execution result of the application program module to which the request has been passed and transmitting the result to the server.
【0019】請求項10記載の発明によれば、請求項8
記載のプログラムにおいて、前記クライアントは複数で
あり、これら複数のクライアントから複数のリクエスト
に対応する複数のアプリケーションロジックが前記実行
管理オブジェクトを介して前記実行エンジンオブジェク
トにより実行されるようになっている一方、前記スケジ
ューリングオブジェクトは、前記インタフェースプログ
ラムに基づいて受取られたリクエストに対応するクライ
アントのセッションを担当している実行管理オブジェク
トが存在するか否か判断する機能と、この判断機能に応
じて、前記セッションを担当している実行管理オブジェ
クトが存在すると判断された際に、前記リクエストに含
まれるジョブを対応するセッションを担当している実行
管理オブジェクトに渡す機能と、前記判断機能に応じ
て、前記セッションを担当している実行管理オブジェク
トが存在しないと判断された際に、前記複数の実行管理
オブジェクトそれぞれの担当セッション数が最も少ない
実行管理オブジェクトを選択し、選択した実行管理オブ
ジェクトに対して、前記リクエストに含まれるジョブを
渡す機能とを含む。According to the tenth aspect, the eighth aspect is provided.
In the described program, the client is a plurality, and a plurality of application logic corresponding to a plurality of requests from the plurality of clients is executed by the execution engine object via the execution management object, The scheduling object has a function of determining whether or not there is an execution management object that is in charge of the session of the client corresponding to the request received based on the interface program. When it is determined that the execution management object in charge is present, the job included in the request is passed to the execution management object in charge of the corresponding session. When it is determined that the execution management object in charge does not exist, the execution management object having the smallest number of assigned sessions for each of the plurality of execution management objects is selected. Function to pass the included job.
【0020】請求項11記載の発明によれば、請求項4
記載のプログラムにおいて、前記複数のアプリケーショ
ン用プログラムモジュールおよびインタフェース用プロ
グラムモジュールは、オブジェクト指向言語により生成
されている。According to the eleventh aspect, according to the fourth aspect,
In the program described above, the plurality of application program modules and the interface program modules are generated in an object-oriented language.
【0021】上述した目的を達成するための請求項12
記載の発明によれば、クライアントから要求されサーバ
を介して受け付けられたリクエストに応じてアプリケー
ションロジックに基づく処理を実行するためのアプリケ
ーションサーバ用コンピュータが実行可能なプログラム
を記憶した記憶媒体であって、前記プログラムモジュー
ルは、前記サーバにより受付られたリクエストを受取る
機能を含む前記サーバに対するインタフェース機能をコ
ンピュータに実現させるためのインタフェース用プログ
ラムモジュールから構成されたインタフェース層と、前
記インタフェース用プログラムモジュールにより受取ら
れたリクエストに対応するアプリケーションロジックを
実行する機能をコンピュータに実現させるためのアプリ
ケーション層を構築するアプリケーション用プログラム
モジュールとの内の少なくとも1つのプログラムモジュ
ールを含む。According to a twelfth aspect of the present invention, the above-mentioned object is achieved.
According to the described invention, a storage medium storing a program executable by an application server computer for executing a process based on application logic in response to a request requested from a client and received via a server, The program module includes an interface layer including an interface program module for causing a computer to implement an interface function for the server including a function of receiving a request received by the server, and an interface layer received by the interface program module. Among the application program modules that construct an application layer for causing a computer to execute the function of executing the application logic corresponding to the request Comprising at least one program module.
【0022】上述した目的を達成するための請求項13
記載の発明によれば、クライアントから要求されサーバ
を介して受け付けられたリクエストに応じてアプリケー
ションロジックに基づく処理を実行するためのアプリケ
ーションサーバシステムであって、複数のアプリケーシ
ョンロジックを実行可能な複数のプログラム実行手段
と、前記サーバにより受付られたリクエストを前記複数
のプログラム実行手段の何れに渡すかを当該複数のプロ
グラム実行手段それぞれの状態に応じて決定し、決定し
たプログラム実行手段に対して当該リクエストを渡す手
段と、前記リクエストが渡されたプログラム実行手段に
より実行された当該リクエストに対応するアプリケーシ
ョンロジックの実行結果を受取り、受取った実行結果を
前記サーバに送信する手段とを備えている。A thirteenth aspect of the present invention for achieving the above object.
According to the described invention, there is provided an application server system for executing a process based on application logic in response to a request requested from a client and accepted via a server, and a plurality of programs capable of executing a plurality of application logics An execution unit, and to which of the plurality of program execution units the request received by the server is to be passed, is determined according to a state of each of the plurality of program execution units, and the request is transmitted to the determined program execution unit. Means for receiving an execution result of the application logic corresponding to the request executed by the program execution means to which the request has been passed, and transmitting the received execution result to the server.
【0023】[0023]
【発明の実施形態】本発明に係るアプリケーションサー
バシステム、プログラムモジュールおよびプログラムモ
ジュールを記憶した記憶媒体の実施の形態について、添
付図面を参照して説明する。DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of an application server system, a program module and a storage medium storing the program module according to the present invention will be described with reference to the accompanying drawings.
【0024】なお、本実施形態では、クライアント/サ
ーバシステムとして、インターネット上に構築されたW
eb情報発信用のコンピュータ(Webサーバ)および
このWebサーバに対してWeb情報の提供を要求する
コンピュータ(Webクライアント;以下、単にクライ
アントと記載する)から構成されたWebクライアント
/サーバシステムについて説明する。In the present embodiment, a W constructed on the Internet is used as a client / server system.
A Web client / server system including a computer (Web server) for transmitting Web information and a computer (Web client; hereinafter, simply referred to as a client) for requesting the Web server to provide Web information will be described.
【0025】図1は、本発明の実施の形態に係るWeb
クライアント/サーバシステム1の全体構成を示す図で
ある。FIG. 1 is a diagram showing a Web according to an embodiment of the present invention.
FIG. 1 is a diagram illustrating an overall configuration of a client / server system 1.
【0026】図1に示すように、Webクライアント/
サーバシステム1は、インターネット{TCP/IP、
HTTP(Hyper Text Link Tran
sformer Protocol)、SSL(Sec
ure Socket Layer)等のプロトコルに
基づいて相互リンクされたネットワークの集合体}2上
に構築されたWebサーバシステム3と、インターネッ
ト2上に構築されたWebサーバシステム3にアクセス
し、情報の参照・閲覧処理要求を含む各種要求(リクエ
スト)を行なう多数のクライアント(クライアントコン
ピュータ)4a1〜4anとを備えている。As shown in FIG. 1, the Web client /
The server system 1 has the Internet @ TCP / IP,
HTTP (Hyper Text Link Tran)
sformer Protocol), SSL (Sec.
access to a Web server system 3 constructed on a collection of networks # 2 interconnected based on a protocol such as the U.S. Secure Socket Layer, and a Web server system 3 constructed on the Internet 2. It has a number of clients (client computers) 4a1 to 4an that make various requests (requests) including browsing processing requests.
【0027】各クライアント4a1〜4anは、そのメ
モリにWebブラウザを搭載しており、このWebブラ
ウザに基づいて、Webサーバシステム3に対する処理
要求(リクエスト)をHTTPプロトコルによりWeb
サーバシステム3に送信する機能およびWebサーバシ
ステム3からHTTPプロトコルにより送信されてきた
Web情報を、対応するコンピュータのディスプレイ・
スピーカ等を介して表示出力するようになっている。Each of the clients 4a1 to 4an has a Web browser in its memory, and based on the Web browser, sends a processing request (request) to the Web server system 3 according to the HTTP protocol.
The function of transmitting to the server system 3 and the Web information transmitted from the Web server system 3 by the HTTP protocol are displayed on a display of a corresponding computer.
The display is output via a speaker or the like.
【0028】Webサーバシステム3は、多数のクライ
アント4a1〜4anに対して専用線、公衆回線等の通
信回線5を介して接続可能なクライアント4a1〜4a
nに対するHTTPプロトコルに基づくWeb情報ファ
イル(HTMLファイル、XMLファイル等)を含む通
信インタフェース用のWebサーバ(HTTPサーバ)
10と、このHTTPサーバ10の要求に応じて処理を
実行し、その実行結果をHTTPサーバ10に渡すため
のWebアプリケーションサーバ11とを備えており、
このWebアプリケーションサーバ11は、クラスタリ
ングされた複数のWebアプリケーションサーバ用コン
ピュータ{CPU、メモリ(内部/外部記憶媒体)等を
含む}11a1〜11anにより構成されている。The Web server system 3 is capable of connecting to a large number of clients 4a1 to 4an via a communication line 5 such as a dedicated line or a public line.
Web server for communication interface (HTTP server) including Web information file (HTML file, XML file, etc.) based on HTTP protocol for n
10 and a Web application server 11 for executing processing in response to a request from the HTTP server 10 and passing the execution result to the HTTP server 10.
The Web application server 11 includes a plurality of clustered Web application server computers # 11a1 to # 11an including a CPU, a memory (internal / external storage medium), and the like.
【0029】また、Webサーバシステム3は、分散化
された複数のリレーショナルデータベース(リレーショ
ナルDB)D1〜Dnおよびデータベースサーバ用コン
ピュータ12を含むデータベースサーバ13を備えてお
り、このデータベースサーバ用コンピュータ12は、W
ebアプリケーションサーバ11(Webアプリケーシ
ョンサーバ用コンピュータ11a1〜11an、以下、
単にコンピュータ11a1〜11anと記載する)の処
理に応じて、複数のデータベースD1〜Dkに対してデ
ータを登録する機能および複数のデータベースD1〜D
nからデータを読み出す機能を有しており、これらHT
TPサーバ10、Webアプリケーションサーバ11
(コンピュータ11a1〜11an)およびデータベー
スサーバ13(DBサーバプログラムDPが搭載された
データベースサーバ用コンピュータ12)は、イントラ
ネット(LAN)等を介して互いに通信可能に接続され
ている。Further, the Web server system 3 includes a plurality of distributed relational databases (relational DBs) D1 to Dn and a database server 13 including a database server computer 12. The database server computer 12 W
Web application server 11 (Web application server computers 11a1 to 11an;
A function of registering data in a plurality of databases D1 to Dk and a plurality of databases D1 to Dk in accordance with processing of computers 11a1 to 11an).
n has a function of reading data from the HT.
TP server 10, Web application server 11
The (computers 11a1 to 11an) and the database server 13 (the database server computer 12 on which the DB server program DP is installed) are communicably connected to each other via an intranet (LAN) or the like.
【0030】なお、本実施形態において、“n”は、1
より大きい任意の整数であり、それぞれのクラスタリン
グ数は、任意に設定される。例えば、Webアプリケー
ションサーバ11のコンピュータ11a1〜11anの
クラスタリング数(“n”の値)、クライアント4a1
〜4anのクラスタリング数(“n”の値)、およびデ
ータベースD1〜Dnのクラスタリング数(“n”の
値)は、それぞれ同一であっても、別個であってもよ
い。In this embodiment, "n" is 1
Any larger integer, and the number of clustering is set arbitrarily. For example, the number of clusters (the value of “n”) of the computers 11a1 to 11an of the Web application server 11, the client 4a1
The clustering number (value of “n”) of 44an and the clustering number (value of “n”) of the databases D1 to Dn may be the same or different.
【0031】HTTPサーバ10は、CPU、メモリ
(内部/外部記憶媒体)等を含むコンピュータであり、
このコンピュータのメモリに記憶されたHTTPサーバ
プログラム20に基づいて動作することにより、クライ
アント4a1〜4anから通信回線5を介して送信され
てきたHTTPに基づくリクエストを受信し、受信した
リクエストをWebアプリケーションサーバ11に送信
するとともに、Webアプリケーションサーバ11から
渡されたリクエストに対応する実行処理結果をHTML
ファイルに変換してクライアント4a1〜4anに送信
する機能を実現するようになっている。The HTTP server 10 is a computer including a CPU, a memory (internal / external storage medium), and the like.
By operating on the basis of the HTTP server program 20 stored in the memory of the computer, a request based on HTTP transmitted from the clients 4a1 to 4an via the communication line 5 is received, and the received request is transmitted to the Web application server. 11 and an execution result corresponding to the request passed from the Web application server 11 in HTML.
The function of converting the file into a file and transmitting the file to the clients 4a1 to 4an is realized.
【0032】Webアプリケーションサーバ11は、例
えばJava言語、C++言語等のオブジェクト指向言
語やC言語等の非オブジェクト指向型言語に基づく環
境、すなわち、プラットフォーム{例えば、Webアプ
リケーションサーバ11を構成するWebアプリケーシ
ョンサーバ用コンピュータ11a1〜11an(以下、
単にサーバ用コンピュータ11a1〜11anと記載す
る)自体およびそのサーバ用コンピュータ11a1〜1
1anに実装されるOSを表し、例えば、OSのプラッ
トフォームとしては、Windowに基づくプラットフ
ォーム、Unixに基づくプラットフォームがある}に
依存しない状態での分散オブジェクト環境下において構
築されている。The Web application server 11 is an environment based on an object-oriented language such as a Java language or a C ++ language or a non-object-oriented language such as a C language, that is, a platform {for example, a Web application server constituting the Web application server 11. Computers 11a1 to 11an (hereinafter, referred to as
The server computers 11a1 to 11an) and the server computers 11a1 to 11an.
The OS is implemented in a distributed object environment that does not depend on a platform based on Windows or a platform based on Unix.
【0033】すなわち、アプリケーションサーバ11
は、上記分散オブジェクト環境下において、そのアプリ
ケーションサーバ11を構築するサーバ用コンピュータ
11a1〜11an上に上記オブジェクト指向言語(特
に、本実施形態では、Java言語とする)により実装
された複数のオブジェクトを含むアプリケーションサー
バソフトウエア(アプリケーションサーバプログラム、
以下、単にサーバプログラムSPと記載する)を備えて
おり、この複数のオブジェクトを含むサーバプログラム
SPは、その機能毎に階層化された構造を有している。That is, the application server 11
Includes a plurality of objects implemented in the object-oriented language (particularly, in this embodiment, Java language) on server computers 11a1 to 11an that construct the application server 11 in the distributed object environment. Application server software (application server program,
The server program SP including the plurality of objects has a hierarchical structure for each function.
【0034】すなわち、サーバプログラムSPは、図2
に示すように、HTTPサーバプログラム20に対する
インタフェース用の第1の層としてのインタフェース層
21L1と、予めアプリケーションサーバ11内に用意
されたサーバサイドのアプリケーションロジック{サー
バサイドのユーザにより作成(コーディング)・実装さ
れた、Webアプリケーションサーバ11に対して様々
な業務処理を実行させるためのユーザプログラム、以
下、ユーザプログラムとも記載する)AL1〜ALnを
実行するための第2の層としてのアプリケーション層2
1L2と、このアプリケーション層21L2で実行され
るアプリケーションロジックAL1〜ALnの支援を行
なうためのオブジェクト層21L3とを備えている。That is, the server program SP corresponds to FIG.
As shown in (1), an interface layer 21L1 as a first layer for interfacing with the HTTP server program 20 and server-side application logic prepared in advance in the application server 11 {created (coded) / implemented by a server-side user User program for causing the Web application server 11 to execute various business processes (hereinafter, also referred to as a user program). The application layer 2 as a second layer for executing AL1 to ALn
1L2, and an object layer 21L3 for supporting the application logics AL1 to ALn executed in the application layer 21L2.
【0035】このインタフェース層21L1、アプリケ
ーション層21L2およびオブジェクト層21L3は、
複数のアプリケーション用コンピュータ11a1〜11
an上(そのメモリ上)に例えば分散配置されている。The interface layer 21L1, the application layer 21L2, and the object layer 21L3 are
A plurality of application computers 11a1 to 11
For example, it is distributed on an (on its memory).
【0036】インタフェース層21L1は、図2に示す
ように、HTTPサーバプログラム側で用意された拡張
モジュールをWebアプリケーションサーバ11側に実
装されたオブジェクトであるHTTPインタフェース3
0を有しており、このHTTPインタフェース30は、
HTTPサーバプログラム20の実装言語に依存してお
り、HTTPサーバプログラム20から渡されたリクエ
スト(HTMLファイル要求やCGIプログラム等)を
受取る機能を、そのHTTPインタフェース30が搭載
されたサーバ用コンピュータに実現させるオブジェクト
である。As shown in FIG. 2, the interface layer 21L1 includes an extension module prepared on the HTTP server program side and an HTTP interface 3 which is an object mounted on the Web application server 11 side.
0, and the HTTP interface 30
The function of receiving a request (HTML file request, CGI program, or the like) passed from the HTTP server program 20 depends on the implementation language of the HTTP server program 20, and realizes the function of the server computer equipped with the HTTP interface 30. Object.
【0037】また、インタフェース層21L1は、HT
TPサーバプログラム20のCGIプログラムによりリ
クエストが渡された際に、そのCGIプログラムにより
起動されるCGIインタフェース(プログラム)31を
備えており、このCGIインタフェース31は、そのH
TTPサーバプログラム20のCGIプログラムにより
渡されたリクエストを受取る機能を、そのCGIインタ
フェース31が搭載されたサーバ用コンピュータに実現
させるプログラムである。なお、CGIインタフェース
31は、CGIプログラムを含むHTTPサーバプログ
ラム20であれば、そのHTTPサーバプログラム20
の実装言語には非依存である。The interface layer 21L1 is connected to the HT
When a request is passed by the CGI program of the TP server program 20, a CGI interface (program) 31 activated by the CGI program is provided.
This is a program for realizing the function of receiving a request passed by the CGI program of the TTP server program 20 on a server computer equipped with the CGI interface 31. If the HTTP server program 20 including the CGI program is used as the CGI interface 31, the HTTP server program 20
It is independent of the implementation language of.
【0038】さらに、インタフェース層21L1は、H
TTPインタフェース30あるいはCGIインタフェー
ス31を介して受取られたリクエストをアプリケーショ
ン層21L2における後述する複数のメインオブジェク
トの何れかに渡す機能を、搭載されたサーバ用コンピュ
ータに実現させるためのオブジェクト(スケジューラ)
32を備えており、このスケジューラ32は、上記アプ
リケーション層21L2の複数のメインオブジェクトが
複数のサーバ用コンピュータに上に分散配置、すなわ
ち、クラスタリングされている際に、そのスケジューラ
32自体に実装されているスケジューリングアルゴリズ
ムに従って、最も処理効率が良くなるメインオブジェク
トを選択して、受取ったリクエストを渡すようになって
いる。Further, the interface layer 21L1 is
An object (scheduler) for realizing a function of passing a request received via the TTP interface 30 or the CGI interface 31 to any of a plurality of main objects described later in the application layer 21L2, on a mounted server computer.
The scheduler 32 is mounted on the scheduler 32 itself when a plurality of main objects of the application layer 21L2 are distributed and arranged on a plurality of server computers, that is, are clustered. According to the scheduling algorithm, the main object with the highest processing efficiency is selected and the received request is passed.
【0039】一方、アプリケーション層21L2は、図
2に示すように、アプリケーションロジックAL1〜A
Lnの内、スケジューラ32から渡されたリクエストに
対応する処理を実現するアプリケーションロジックを選
択して起動し、その起動ロジック自体を実行する機能お
よび起動ロジックの実行管理機能を、搭載されたサーバ
用コンピュータに実現させるための複数のメインオブジ
ェクト33a1〜33anと、複数のアプリケーション
ロジックAL1〜ALnを実行する機能を、搭載された
サーバ用コンピュータに実現させるための複数のオブジ
ェクト(スクリプトエンジン)34a1〜34anとを
備えている。On the other hand, as shown in FIG. 2, the application layer 21L2 includes application logics AL1 to AL1A.
A server computer having a function of selecting and activating application logic for realizing a process corresponding to a request passed from the scheduler 32 from among Ln, and executing a function of executing the activation logic itself and an execution management function of the activation logic. And a plurality of objects (script engines) 34a1 to 34an for realizing a function of executing a plurality of application logics AL1 to ALn on a server computer mounted thereon. Have.
【0040】また、アプリケーション層21L2の複数
のメインオブジェクト33a1〜33anは、例えば、
複数のアプリケーションロジックAL1〜ALnがサー
バ用コンピュータ11a1〜11an上にクラスタリン
グされている場合には、クラスタリングされたアプリケ
ーションロジックAL1〜ALnに対応するように、同
一のコンピュータ上に対してクラスタリングされてい
る。The plurality of main objects 33a1 to 33an of the application layer 21L2 are, for example,
When a plurality of application logics AL1 to ALn are clustered on the server computers 11a1 to 11an, they are clustered on the same computer so as to correspond to the clustered application logics AL1 to ALn.
【0041】さらに、複数のスクリプトエンジン34a
1〜34anは、例えば、複数のプログラム言語で作成
されたアプリケーションロジックAL1〜ALnに対応
できるように、複数プログラム言語に基づいて作成・実
装されている。Further, a plurality of script engines 34a
For example, 1 to 34an are created and implemented based on a plurality of programming languages so as to correspond to application logics AL1 to ALn created in a plurality of programming languages.
【0042】例えば、アプリケーションロジックAL1
〜ALnとしては、スクリプト言語であるJavaSc
riptにより作成されたJavaScriptファイ
ルや、Javaで記述されて部品化されたプログラム
(JavaBeans)をベースにしてロジックを構築
するようにコンポーネント化されたEJBコンポーネン
ト(EJBcomponent)等が含まれる。For example, application logic AL1
~ ALn is a script language JavaSc
This includes a JavaScript file created by "script", an EJB component (EJBcomponent) that is componentized so as to construct logic based on a program (JavaBeans) described as a component written in Java, and the like.
【0043】すなわち、図3に示すように、例えばメイ
ンオブジェクト33akは、スケジューラ32からリク
エストが渡された際に、そのリクエストに対応するアプ
リケーションロジック(例えば、アプリケーションロジ
ックALkのJavaScriptファイルF1/EJ
BコンポーネントF2)を起動する。That is, as shown in FIG. 3, for example, when a request is passed from the scheduler 32, the main object 33ak receives an application logic corresponding to the request (for example, a JavaScript file F1 / EJ of the application logic ALk).
Activate the B component F2).
【0044】このとき、メインオブジェクト33ak
は、起動したアプリケーションロジックALkがJav
aScriptファイルF1である場合には、起動した
JavaScriptファイルF1のスクリプトを、そ
のアプリケーションロジックALkに対応するスクリプ
トエンジン(例えば、スクリプトエンジン34akとす
る)に渡し、一方、起動したアプリケーションロジック
ALkがEJBコンポーネントF2である場合には、起
動したEJBコンポーネントF2をインスタンス化し、
インスタンス化したコンポーネントをセグメント化し
て、セグメント毎にスクリプトエンジン34akに渡す
ようになっている。At this time, the main object 33ak
Means that the started application logic ALk is Java
In the case of the aScript file F1, the script of the activated JavaScript file F1 is passed to a script engine (for example, the script engine 34ak) corresponding to the application logic ALk, and the activated application logic ALk is transmitted to the EJB component F2. In the case of, the launched EJB component F2 is instantiated, and
The instantiated components are segmented and passed to the script engine 34ak for each segment.
【0045】また、スクリプトエンジン34akは、渡
されたアプリケーションロジックALk(スクリプト/
セグメント)を実行し、その実行結果をメインオブジェ
クト33akに渡すようになっている。The script engine 34ak also receives the passed application logic ALk (script /
Segment), and passes the execution result to the main object 33ak.
【0046】そして、オブジェクト層21L3は、図2
に示すように、アプリケーション層21L2で実行され
るアプリケーションロジックの支援を行なう複数のオブ
ジェクト(セッションオブジェクト40a1〜40a
n、暗号化オブジェクト41a1〜41an、CGIデ
コーダ42a1〜42anおよびDBマネージャ43a
1〜43an)を備えている。The object layer 21L3 is shown in FIG.
As shown in FIG. 3, a plurality of objects (session objects 40a1 to 40a) supporting the application logic executed in the application layer 21L2 are provided.
n, encrypted objects 41a1-41an, CGI decoders 42a1-42an, and DB manager 43a
1-4an).
【0047】このオブジェクト層21L3を構築する複
数のオブジェクトは、上記種類に限定されるわけではな
く、必要に応じて追加可能になっており、複数のハード
ウエア(サーバ用コンピュータ11a1〜11am)上
にクラスタリング(分散配置)可能になっている。な
お、1つのハードウエア(1つのサーバ用コンピュー
タ)に複数種類のオブジェクト(例えば、1つのハード
ウエアにセッションオブジェクト、暗号化オブジェク
ト、CGIデコーダおよびDBマネージャ)を実装する
ことは可能であるが、1つのハードウエア(1つのサー
バ用コンピュータ)に同一種類のオブジェクト(例え
ば、1つのハードウエアに2つのセッションオブジェク
ト)を実装することはできない。The plurality of objects constructing the object layer 21L3 are not limited to the above-mentioned types, but can be added as needed, and can be added to a plurality of hardware (server computers 11a1 to 11am). Clustering (distributed arrangement) is possible. Note that it is possible to mount a plurality of types of objects (for example, a session object, an encryption object, a CGI decoder, and a DB manager) on one piece of hardware (one server computer). The same type of object (for example, two session objects on one piece of hardware) cannot be implemented on one piece of hardware (one server computer).
【0048】これらオブジェクト層21L3のオブジェ
クトは、アプリケーション層21L2においてアプリケ
ーションロジックが実行されている際に、そのロジック
においてオブジェクト層21L3に存在するオブジェク
トに処理を依頼する命令が発生した場合に、アプリケー
ション層21L2から依頼された処理を実行し、その実
行結果をアプリケーション層21L2に返送する機能
を、対応するサーバ用コンピュータに実現させるもので
ある。The objects in the object layer 21L3 are used when the application logic is executed in the application layer 21L2 and a command for requesting the object existing in the object layer 21L3 to execute processing occurs in the logic. Executes the processing requested by the server and returns the execution result to the application layer 21L2 in the corresponding server computer.
【0049】すなわち、セッションオブジェクト40a
1〜40anは、各メインオブジェクト33a1〜33
anとクライアント4a1〜4anとの接続関係(セッ
ショの履歴情報(以下、セッション情報とする)を管理
するオブジェクトであり、暗号化オブジェクト41a1
〜41anは、アプリケーション層21L2で実行され
ているアプリケーションロジックにおいて、データの暗
号化/復号化処理が要求された場合に、アプリケーショ
ン層21L2(メインオブジェクト)からの依頼に応じ
て、依頼データの暗号化/復号化を実行してその実行結
果をアプリケーション層21L2に渡すためのオブジェ
クトであり、CGIデコーダ42a1〜42anは、ア
プリケーション層21L2で実行されているアプリケー
ションロジックにおいて、CGIのデコード(解釈)が
要求された場合に、アプリケーション層21L2(メイ
ンオブジェクト)からの依頼に応じて、依頼データ(C
GI)のデコードを実行してその実行結果をアプリケー
ション層21L2に渡すためのオブジェクトである。That is, the session object 40a
1 to 40an are the main objects 33a1 to 33a, respectively.
is an object that manages the connection relationship between session an and clients 4a1 to 4an (session history information (hereinafter referred to as session information), and is an encrypted object 41a1.
When an application logic executed in the application layer 21L2 requests data encryption / decryption processing, the application data to 41an encrypts requested data in response to a request from the application layer 21L2 (main object). / CGI decoders 42a1 to 42an are required to decode (interpret) the CGI in the application logic executed in the application layer 21L2. In this case, in response to a request from the application layer 21L2 (main object), the request data (C
This is an object for executing the decoding of the GI) and passing the execution result to the application layer 21L2.
【0050】さらに、DBマネージャ43a1〜43a
nは、データベースサーバ13に搭載された複数のデー
タベース(例えば、リレーショナルデータベースD1〜
Dn)に対するアクセス機能、各データベースD1〜D
nのデータ構造管理機能、データキャッシュ機能、トラ
ンザクション管理機能および分散化データベースD1〜
Dn上のデータ共有化機能(他のDBマネージャとのメ
ッセージング機能)を、搭載されたサーバ用コンピュー
タによりそれぞれ実現させるためのオブジェクトであ
る。Further, the DB managers 43a1 to 43a
n is a plurality of databases mounted on the database server 13 (for example, relational databases D1 to D1).
Dn), each database D1 to D
n data structure management function, data cache function, transaction management function, and distributed database D1
This is an object for realizing the data sharing function on Dn (messaging function with another DB manager) by the mounted server computer.
【0051】分散化リレーショナルデータベースD1〜
Dnは、同一のフィールドを含む互いに関連付けられた
複数のテーブルTをそれぞれ有しており、そのテーブル
Tにおけるレコードの内容のみが異なるようになってい
る。Distributed relational database D1
Dn has a plurality of tables T associated with each other including the same field, and only the contents of the records in the tables T are different.
【0052】このとき、DBマネージャ43a1〜43
an(例えば、3つのDBマネージャ43a1〜43a
3)は、図4に示すように、JDBC(Java Da
taBase Connectivity)と呼ばれる
データベース専用API(Application P
rogram Interface)に基づいて、デー
タベースサーバ13に実装されたDBサーバプログラム
DPのJDBCドライバを介して、対応するデータベー
スD1〜D3に対するデータの登録、修正、削除、検索
等を実行するとともに、そのデータベースD1〜D3の
データ構造を、DOM(Document Objec
t Model)形式、すなわち、データベースD1〜
D3に記憶されたデータ(テキスト、画像等のWebサ
ーバシステム3で取り扱われるマルチメディアコンテン
ツ)を、XML情報に対応付けれられたデータ形式で管
理する機能、およびアプリケーション層21L2で実行
されているアプリケーションロジックにおいて、データ
の一時的な蓄積が要求された場合に、アプリケーション
層21L2(メインオブジェクト)からの依頼に応じ
て、依頼されたデータを一時的に蓄積する機能を有して
いる。At this time, the DB managers 43a1 to 43a43
an (for example, three DB managers 43a1 to 43a
3), as shown in FIG. 4, JDBC (Java Da)
taBase Connectivity (API)
Based on the program interface, data registration, correction, deletion, search, and the like for the corresponding databases D1 to D3 are executed via a JDBC driver of the DB server program DP installed in the database server 13, and the database D1 is also executed. The data structure of D3 to D3 is expressed as DOM (Document Object).
t Model) format, that is, the databases D1 to D1
A function of managing data (multimedia contents such as texts and images handled by the Web server system 3) stored in D3 in a data format associated with XML information, and application logic executed in the application layer 21L2 Has a function of temporarily storing requested data in response to a request from the application layer 21L2 (main object) when temporary storage of data is requested.
【0053】なお、オブジェクト層21L3の各オブジ
ェクトは、マルチスレッドを利用して並列処理を実行す
ることが可能になっている。Each object in the object layer 21L3 can execute parallel processing using multi-threading.
【0054】ここで、図5は、図2に示すWebアプリ
ケーションサーバ(ソフトウエア)を構成する各オブジ
ェクト間の通信アーキテクチャを示す図である。なお、
オブジェクト間の通信は、オブジェクト間においてソケ
ット(API)によりポート間でコネクション(通信
路)を確立してメッセージをやりとりするソケット通信
方式、RMI(Remote Method Inova
tion)によりオブジェクト間でメッセージをやりと
りするRMI通信方式、CORBA(Common O
bject Request Broker Archi
tecture)に基づいてオブジェクト間でメッセー
ジをやり取りするCORBA通信方式の何れかを用いる
ことが可能である。Here, FIG. 5 is a diagram showing a communication architecture between objects constituting the Web application server (software) shown in FIG. In addition,
The communication between objects is a socket communication method for establishing a connection (communication path) between ports by using a socket (API) between objects and exchanging messages, a RMI (Remote Method Inova).
RMI communication method for exchanging messages between objects by CORBA (Common O.)
bject Request Broker Archi
Any of the CORBA communication schemes for exchanging messages between objects based on the T.T.C.T.
【0055】本実施形態において、各オブジェクトは、
それぞれ接続を許可する(メッセージのやり取りを許可
する)相手のオブジェクトのホスト名(そのオブジェク
トが搭載されているハードウエア(コンピュータ)名)
およびポート番号のリストを有しており、そのリスト上
にないホスト、あるいはポート番号からの接続は拒否す
るようになっている。なお、このリストは、設定ファイ
ルとして、各オブジェクトが搭載されたコンピュータの
メモリに予め用意・記憶しておき、各オブジェクト起動
時において、各オブジェクトが設定ファイルを読み込む
ことにより、リストの情報を取り込むことができる。In the present embodiment, each object is
Host name of the partner object (permitting message exchange) for each connection (name of the hardware (computer) on which the object is mounted)
And a list of port numbers, and a connection from a host or port number not on the list is rejected. Note that this list is prepared and stored in advance in a memory of a computer in which each object is mounted as a setting file, and at the time of starting each object, each object reads the setting file so that the information of the list is fetched. Can be.
【0056】例えば、図5において、メインオブジェク
ト33akがサーバ用コンピュータ11ak(ホスト:
11ak)に搭載されているものとし、そのリストL1
に、接続許可ホスト:11ak、11ai、接続許可ポ
ート番号:32001、32003)が記憶されていた
と仮定すると、ホスト(コンピュータ11ak)に搭載
されたスクリプトエンジン34akからポート番号32
001を介して接続要求(メッセージ)が送信された場
合には、リストL1に対応しているため、その接続を許
可し、同様に、ホスト(コンピュータ11ai)に搭載
されたセッションオブジェクト40akからポート番号
32003を介して接続要求(メッセージ)が送信され
た場合においても、リストL1に対応しているため、そ
の接続を許可する。For example, in FIG. 5, the main object 33ak is a server computer 11ak (host:
11ak), and the list L1
Assuming that connection permitted hosts: 11ak, 11ai and connection permitted port numbers: 32001, 32003) are stored in the storage device, the script engine 34ak mounted on the host (computer 11ak) stores the port number 32.
When the connection request (message) is transmitted via the host 001, the connection is permitted, and the connection is permitted. Similarly, the port number is transmitted from the session object 40ak mounted on the host (computer 11ai). Even when a connection request (message) is transmitted via 32003, the connection is permitted because it corresponds to the list L1.
【0057】一方、ホスト(コンピュータ11ak)に
搭載されたDBマネージャ43akからポート番号87
65を介して接続要求(メッセージ)が送信された場合
には、リストL1に対応していないため、その接続を不
許可にする。On the other hand, the port number 87 is sent from the DB manager 43ak mounted on the host (computer 11ak).
When a connection request (message) is transmitted via the link 65, the connection is not permitted because the connection request does not correspond to the list L1.
【0058】この結果、複数のオブジェクト間で信頼性
の高い通信処理が行なわれる。As a result, highly reliable communication processing is performed between a plurality of objects.
【0059】次に、本実施形態のWebクライアント/
サーバシステム1の全体動作処理について、特にWeb
アプリケーションサーバ11の各オブジェクト(に基づ
くサーバ用コンピュータ)の処理動作を中心に図6等に
基づいて説明する。Next, the Web client /
Regarding the overall operation processing of the server system 1,
The processing operation of each object (a server computer based on) of the application server 11 will be mainly described with reference to FIG.
【0060】クライアント4a1〜4anの少なくとも
1つのクライアント(例えば、クライアント4akとす
る)から通信回線5を介してリクエストがWebサーバ
システム3に入力されると(ステップS1)、Webサ
ーバシステム3のHTTPサーバ20は、HTTPサー
バ10により実現されたリクエスト受取機能として、入
力されたリクエストを受け取り、受取ったリクエスト
を、インタフェース層2L1が実装された少なくとも1
台のサーバ用コンピュータに渡す(ステップS2)。When a request is input to the Web server system 3 from at least one of the clients 4a1 to 4an (for example, the client 4ak) via the communication line 5 (step S1), the HTTP server of the Web server system 3 Reference numeral 20 denotes a request receiving function implemented by the HTTP server 10, which receives an input request and converts the received request into at least one of the interface layers 2 L 1 mounted.
(Step S2).
【0061】このとき、サーバ用コンピュータに実装さ
れたインタフェース層2L1のHTTPインタフェース
30は、対応するサーバ用コンピュータの機能として、
渡されたリクエストがHTTPサーバプログラム20に
おけるCGIプログラムにより実行されたものであるか
否かを判断する(ステップS3)。At this time, the HTTP interface 30 of the interface layer 2L1 mounted on the server computer serves as a function of the corresponding server computer.
It is determined whether the passed request has been executed by the CGI program in the HTTP server program 20 (step S3).
【0062】この判断の結果、CGIプログラムで実行
されたものでない場合には(ステップS3→NO)、H
TTPインタフェース30は、対応するサーバ用コンピ
ュータの機能として、渡されたリクエストを受け取り、
スケジューラ32に送る(ステップS4)。If the result of this determination is that the program was not executed by the CGI program (step S3 → NO), H
The TTP interface 30 receives the passed request as a function of the corresponding server computer,
This is sent to the scheduler 32 (step S4).
【0063】一方、ステップS3の判断の結果、CGI
プログラムで実行されたものである場合には(ステップ
S3→YES)、CGIインタフェース31が、対応す
るサーバ用コンピュータの機能として、渡されたリクエ
ストを受け取り、スケジューラ32に送る(ステップS
5)。On the other hand, as a result of the determination in step S3, the CGI
If it is executed by a program (step S3 → YES), the CGI interface 31 receives the passed request as a function of the corresponding server computer and sends it to the scheduler 32 (step S3).
5).
【0064】スケジューラ32は、対応するコンピュー
タ11a1の機能として、送られたリクエストを受け取
り、自スケジューラのスケジューリングアルゴリズムに
したがって、受取ったスケジューリングアルゴリズムを
複数のサーバ用コンピュータにクラスタリングされたメ
インオブジェクト34a1〜34anにスケジューリン
グする(ステップS6)。As a function of the corresponding computer 11a1, the scheduler 32 receives the transmitted request and, in accordance with the scheduling algorithm of its own scheduler, transfers the received scheduling algorithm to the main objects 34a1 to 34an clustered by a plurality of server computers. Schedule is performed (step S6).
【0065】例えば、デフォルトスケジューリングアル
ゴリズムとして、スケジューラ32は、上記リクエスト
要求元であるクライアントに対応するセッションのジョ
ブを実行中のメインオブジェクトが存在するか否かを、
対応するサーバ用コンピュータの機能として実行し(図
8;ステップS6a)、このステップS6aの判断の結
果、YES(メインオブジェクトが存在)の場合、スケ
ジューラ32は、対応するサーバ用コンピュータの機能
として、上記リクエストに対応する新規セッションのジ
ョブを対応するメインオブジェクト(そのメインオブジ
ェクトが搭載されているサーバ用コンピュータ)に渡す
(ステップS6b)。For example, as a default scheduling algorithm, the scheduler 32 determines whether or not there is a main object that is executing a job of a session corresponding to the requesting client.
It is executed as a function of the corresponding server computer (FIG. 8; step S6a). If the result of this determination in step S6a is YES (the main object exists), the scheduler 32 executes the above-mentioned function of the corresponding server computer. The job of the new session corresponding to the request is passed to the corresponding main object (the server computer on which the main object is mounted) (step S6b).
【0066】一方、ステップS6aの判断の結果、NO
(メインオブジェクトが存在しない)の場合、スケジュ
ーラ32は、対応するサーバ用コンピュータの機能とし
て、全てのメインオブジェクト33a1〜33anにお
いて、最も担当セッション数(リクエストに応じて接続
されているクライアント数)の少ないメインオブジェク
トを選択し(ステップS6c)、選択したメインオブジ
ェクト(そのメインオブジェクトが搭載されているサー
バ用コンピュータ)に対して、上記リクエストに対応す
る新規セッションのジョブを渡す(ステップS6d)。On the other hand, as a result of the determination in step S6a,
In the case of (there is no main object), the scheduler 32 has the smallest number of assigned sessions (the number of clients connected in response to the request) among all the main objects 33a1 to 33an as a function of the corresponding server computer. A main object is selected (step S6c), and a new session job corresponding to the request is transferred to the selected main object (the server computer on which the main object is mounted) (step S6d).
【0067】図9は、上述したステップS6a〜S6d
のスケジューリングアルゴリズムに基づくスケジューリ
ング処理を説明するための図である。FIG. 9 shows steps S6a to S6d described above.
FIG. 8 is a diagram for explaining a scheduling process based on the scheduling algorithm of FIG.
【0068】今、スケジューラ32に対して、クライア
ントから送信されたリクエストに基づく新規セッション
621が送られた場合には、スケジューラ32に基づく
ステップS6aの処理により、同一セッション621を
担当しているメインオブジェクト33a2が選択され、
選択されたメインオブジェクト33a2に対してリクエ
ストが渡される(ステップS6b参照)。Now, when a new session 621 based on the request transmitted from the client is sent to the scheduler 32, the main object responsible for the same session 621 is processed by the processing of step S6a based on the scheduler 32. 33a2 is selected,
The request is passed to the selected main object 33a2 (see step S6b).
【0069】また、仮に、メインオブジェクト33a2
がセッション621を担当していない場合には、スケジ
ューラ32に基づくステップS6cの処理により、担当
セッション数の最も少ないメインオブジェクトが33a
2が選択され(ステップS6c参照)、選択されたメイ
ンオブジェクト33a2に対してリクエストが渡される
(ステップS6c参照)。It is assumed that the main object 33a2
Is not in charge of the session 621, the main object having the smallest number of assigned sessions is set to 33a by the process of step S6c based on the scheduler 32.
2 is selected (see step S6c), and a request is passed to the selected main object 33a2 (see step S6c).
【0070】このようにして、複数のサーバ用コンピュ
ータ11a1〜11anの内のあるサーバ用コンピュー
タに搭載されたメインオブジェクトにリクエストが渡さ
れると、そのメインオブジェクトは、対応するサーバ用
コンピュータの機能により、リクエストに対応する処理
を記述したアプリケーションロジック(ユーザプログラ
ム)ALkを起動し(ステップS7)、ユーザプログラ
ムALkを実行する(ステップS8)。As described above, when the request is passed to the main object mounted on a certain server computer among the plurality of server computers 11a1 to 11an, the main object is processed by the function of the corresponding server computer. The application logic (user program) ALk describing the processing corresponding to the request is started (step S7), and the user program ALk is executed (step S8).
【0071】このとき、メインオブジェクトは、対応す
るサーバ用コンピュータの機能として、ユーザプログラ
ムALkの実行にスクリプトエンジンが必要であるか否
か判断し(ステップS9)、この判断の結果、必要無い
のであれば(ステップS8→NO)、メインオブジェク
ト自体がユーザプログラムALkを実行する(ステップ
S10)。At this time, the main object determines whether or not a script engine is necessary to execute the user program ALk as a function of the corresponding server computer (step S9). If (step S8 → NO), the main object itself executes the user program ALk (step S10).
【0072】一方、ステップS9の判断の結果、必要が
ある場合には(ステップS8→YES)、メインオブジ
ェクトは、ユーザプログラムALkをスクリプト/セグ
メントずつ所定のスクリプトエンジン(記述言語が一致
するスクリプトエンジン)34akに送信し、スクリプ
トエンジン34akがユーザプログラムALkを実行す
る(ステップS11)。On the other hand, if the result of the determination in step S9 indicates that it is necessary (step S8 → YES), the main object executes a predetermined script engine (script engine whose description language matches) of the user program ALk for each script / segment. Then, the script engine 34ak executes the user program ALk (step S11).
【0073】このとき、メインオブジェクトは、自オブ
ジェクトあるいはスクリプトエンジン34akにより実
行されているユーザプログラムALkにおいて、オブジ
ェクト層21L3におけるオブジェクトの支援処理は必
要か否かを判断しており(ステップS12)、ユーザプ
ログラムALk実行中に、オブジェクト層21L3の支
援処理用オブジェクトに対応する処理が要求されない場
合には(ステップS12→NO)、メインオブジェクト
は、対応するサーバ用コンピュータの機能により、実行
中のユーザプログラムALkが終了するまで(ステップ
S13→YES)、ステップS12の判断処理を繰り返
し行なう。At this time, the main object determines whether it is necessary to support the object in the object layer 21L3 in its own object or in the user program ALk executed by the script engine 34ak (step S12). If the processing corresponding to the support processing object of the object layer 21L3 is not requested during the execution of the program ALk (step S12 → NO), the main object is executed by the function of the corresponding server computer. Is completed (step S13 → YES), the determination processing of step S12 is repeatedly performed.
【0074】一方、ユーザプログラムALk実行中に、
オブジェクト層21L3、すなわち、セッションオブジ
ェクト、暗号化オブジェクト、CGIデコーダおよびD
Bマネージャの内の何れかのオブジェクトに対応する処
理が要求された場合{例えば、DBマネージャを介して
データベースD1〜D3)をアクセスし、特定のレコー
ドを検索して、その検索結果を返送する処理要求が送信
された場合}、メインオブジェクトにおける対応するサ
ーバ用コンピュータの機能に基づくステップS12の判
断処理はYESとなり、メインオブジェクトは、対応す
るサーバ用コンピュータの機能として、処理要求に対応
するオブジェクト層21L3のオブジェクト(例えば、
全てのDBマネージャ43a1〜43an)に対して、
上記処理要求に対応する処理を依頼する。On the other hand, during execution of the user program ALk,
Object layer 21L3, ie, session object, encrypted object, CGI decoder and D
When a process corresponding to any object in the B manager is requested {for example, a process of accessing the databases D1 to D3) via the DB manager, searching for a specific record, and returning the search result When the request is transmitted, the determination processing of step S12 based on the function of the corresponding server computer in the main object becomes YES, and the main object determines the object layer 21L3 corresponding to the processing request as the function of the corresponding server computer. Objects (for example,
For all DB managers 43a1 to 43an)
Request processing corresponding to the processing request.
【0075】例えば、メインオブジェクトは、全てのD
Bマネージャ43a1〜43anに対して、特定のレコ
ードを検索して、その検索結果を返送する処理を依頼
し、DBマネージャ43a1〜43anは、例えばスレ
ッドを生成して並列に検索処理を実行し、その結果、特
定のレコードを検索し、その検索結果を依頼元のメイン
オブジェクトに返送する。For example, the main object is all D
The DB managers 43a1 to 43an request a process of searching for a specific record and returning the search result, and the DB managers 43a1 to 43an generate, for example, threads and execute the search process in parallel. As a result, a specific record is searched, and the search result is returned to the requesting main object.
【0076】このようにして、処理を依頼したオブジェ
クト層21L3のオブジェクトから処理結果が返送され
ると、メインオブジェクトは、返送された処理結果を受
け取り、受取った処理結果をユーザプログラムALkに
返送する(ステップS14)。When the processing result is returned from the object in the object layer 21L3 which has requested the processing in this way, the main object receives the returned processing result and returns the received processing result to the user program ALk ( Step S14).
【0077】以下、実行中のユーザプログラムALkが
終了するまで、ステップS12〜ステップS14の処理
が繰り返し実行される。Thereafter, the processes of steps S12 to S14 are repeatedly executed until the running user program ALk ends.
【0078】そして、実行中のユーザプログラムALk
が終了すると、ステップS13の判断はYESとなり、
メインオブジェクトは、対応するサーバ用コンピュータ
の機能により、ユーザプログラムALkの実行結果(オ
ブジェクト層21L3の実行結果を含む)を受け取り
(スクリプトエンジン34akが実行した場合)、受取
った実行結果を、リクエストに対するレスポンスとして
スケジューラ32に渡す(ステップS15)。Then, the running user program ALk
Is completed, the determination in step S13 is YES,
The main object receives the execution result of the user program ALk (including the execution result of the object layer 21L3) (when executed by the script engine 34ak) by the function of the corresponding server computer, and transmits the received execution result to the response to the request. To the scheduler 32 (step S15).
【0079】スケジューラ32は、対応するサーバ用コ
ンピュータの機能により、渡されたレスポンスに対応す
るリクエストがCGIプログラムにより実行されたもの
であるか否かを判断する(ステップS16)。The scheduler 32 uses the function of the corresponding server computer to determine whether the request corresponding to the passed response has been executed by the CGI program (step S16).
【0080】この判断の結果、CGIプログラムで実行
されたものでない場合には(ステップS16→NO)、
スケジューラ32を介してレスポンスが渡されたHTT
Pインタフェース30は、対応するサーバ用コンピュー
タの機能として、渡されたリクエストを受け取り、HT
TPサーバ10(HTTPサーバプログラム20)に送
る(ステップS17)。If the result of this determination is that the program was not executed by the CGI program (step S16 → NO),
HTT to which the response has been passed through the scheduler 32
The P interface 30 receives the passed request as a function of the corresponding server computer,
It is sent to the TP server 10 (HTTP server program 20) (step S17).
【0081】一方、CGIプログラムで実行されたもの
である場合には(ステップS16→YES)、スケジュ
ーラ32を介してレスポンスが渡されたCGIインタフ
ェース31は、対応するサーバ用コンピュータの機能と
して、渡されたリクエストを受け取り、HTTPサーバ
10(HTTPサーバプログラム20)に送る(ステッ
プS18)。On the other hand, if it is executed by the CGI program (step S16 → YES), the CGI interface 31 to which the response has been passed through the scheduler 32 is passed as a function of the corresponding server computer. The received request is sent to the HTTP server 10 (HTTP server program 20) (step S18).
【0082】HTTPサーバ10は、そのHTTPサー
バプログラム20により、送られたレスポンスに基づい
て、Web情報(例えば、HTML情報)を作成し、作
成したHTML情報を通信回線5を介してリクエスト送
信元のクライアント4akに送信する(ステップS1
9)。The HTTP server 10 creates Web information (for example, HTML information) based on the response sent by the HTTP server program 20, and transmits the created HTML information via the communication line 5 to the request source. Send to client 4ak (step S1)
9).
【0083】このとき、リクエスト送信元のクライアン
ト4akは、そのWebブラウザに基づいて、送信され
てきたHTML情報からWebページ(閲覧画面)を作
成し、作成したWebページを、そのディスプレイ・ス
ピーカ等を介して表示出力する(ステップS20)。At this time, the client 4ak, which has transmitted the request, creates a Web page (browsing screen) from the transmitted HTML information based on the Web browser, and transmits the created Web page to its display, speaker, etc. Then, the information is displayed and output (step S20).
【0084】この結果、リクエスト送信元のクライアン
ト4akのユーザは、クライアント4akを介して表示
出力された、リクエストに対応するWebページを閲覧
・聴取することができる。As a result, the user of the client 4ak, which has transmitted the request, can browse and listen to the Web page corresponding to the request displayed and output via the client 4ak.
【0085】以上述べたように、本実施形態によれば、
Webアプリケーションサーバ11の機能を実現するた
めに、そのWebアプリケーションサーバ11を構成す
るサーバ用コンピュータ11a1〜11an上に実装さ
れるWebアプリケーションサーバソフトウエアSP
を、プラットフォームに依存しない状態での分散オブジ
ェクト環境下において、その機能毎、すなわち、HTT
Pサーバに対するインタフェース機能、サーバサイドの
アプリケーションロジック(ユーザプログラム)実行機
能およびアプリケーションロジック実行支援機能毎に階
層化された複数のオブジェクト(プログラム)から成る
階層構造(インタフェース層21L1、アプリケーショ
ン層21L2およびオブジェクト層21L3)を有する
プログラムとして実装しているため、それぞれの層のプ
ログラムモジュールを、その層に対応する機能に特化さ
せることができ、Webアプリケーションサーバ全体の
処理の効率化を図ることができる。As described above, according to the present embodiment,
In order to realize the function of the Web application server 11, the Web application server software SP installed on the server computers 11a1 to 11an configuring the Web application server 11
In a distributed object environment in a platform-independent state, for each function, ie, HTT
A hierarchical structure (interface layer 21L1, application layer 21L2, and object layer) composed of a plurality of objects (programs) hierarchized for an interface function for the P server, a server-side application logic (user program) execution function, and an application logic execution support function. 21L3), the program modules of each layer can be specialized for the function corresponding to that layer, and the processing efficiency of the entire Web application server can be increased.
【0086】すなわち、各層のプログラムモジュール
は、異なる機能に対応する処理を含んでいないため、そ
のプログラムモジュールに基づくコンピュータの処理は
単純化され、処理速度の向上を図ることができる。That is, since the program modules in each layer do not include processes corresponding to different functions, the processes of the computer based on the program modules are simplified, and the processing speed can be improved.
【0087】そして、本実施形態では、例えば、Web
アプリケーションサーバ11を、それぞれの階層毎にク
ラスタリングされたサーバ用コンピュータを用いて構築
することにより、Webアプリケーションサーバ11の
処理負荷を分散化することができ、クライアントに対す
るレスポンスの迅速化およびWebサーバシステム3全
体の信頼性の向上を実現することができる。In this embodiment, for example, the Web
By constructing the application server 11 using server computers that are clustered for each layer, the processing load of the Web application server 11 can be distributed, and the response to the client can be speeded up and the Web server system 3 can be used. An improvement in overall reliability can be realized.
【0088】また、本実施形態では、Webアプリケー
ションサーバ11に実装されるWebアプリケーション
サーバソフトウエアSPを複数階層に階層化したため、
Webアプリケーションサーバ11のハードウエアクラ
スタリングを行なう際の指針となり、分散型Webアプ
リケーションサーバ11を容易に構築することができ
る。In the present embodiment, the Web application server software SP mounted on the Web application server 11 is hierarchized into a plurality of layers.
This serves as a guideline when performing hardware clustering of the Web application server 11, and the distributed Web application server 11 can be easily constructed.
【0089】さらに、本実施形態によれば、Webアプ
リケーションサーバソフトウエアSPを、その機能毎、
すなわち、HTTPサーバに対するインタフェース機
能、サーバサイドのアプリケーションロジック(ユーザ
プログラム)実行機能およびアプリケーションロジック
実行支援機能毎に階層化された複数のオブジェクト(プ
ログラム)から成る階層構造(インタフェース層21L
1、アプリケーション層21L2およびオブジェクト層
21L3)を有するプログラムとしたため、Webアプ
リケーションサーバ11の機能拡張/変更を、Webア
プリケーションサーバプログラムSPの各層のプログラ
ムモジュール毎に行なうことが可能になり、その拡張性
およびメンテナンス性を大幅に向上させることができ
る。Further, according to the present embodiment, the Web application server software SP is
That is, a hierarchical structure (interface layer 21L) composed of a plurality of objects (programs) hierarchized for the interface function for the HTTP server, the application logic (user program) execution function on the server side, and the application logic execution support function
1, the application layer 21L2 and the object layer 21L3), the function of the Web application server 11 can be extended / changed for each program module of each layer of the Web application server program SP. Maintainability can be greatly improved.
【0090】なお、本実施形態では、Webアプリケー
ションサーバプログラムSPを構成する各オブジェクト
をJava言語で生成・実装したが、本発明はこれに限
定されるものではなく、プラットフォームに依存しない
形式であれば、C++言語等のオブジェクト指向型言語
や、C言語等の非オブジェクト指向型言語等、どんな言
語も適用可能である。In the present embodiment, each object constituting the Web application server program SP is generated and implemented in the Java language. However, the present invention is not limited to this. Any language can be applied, such as an object-oriented language such as C ++, C ++, or a non-object-oriented language such as C.
【0091】また、本実施形態では、Webアプリケー
ションサーバソフトウエアSPを、インタフェース層2
1L1、アプリケーション層21L2およびオブジェク
ト層21L3から成る3層構造としたが、本発明はこれ
に限定されるものではなく、アプリケーション層21L
2およびオブジェクト層21L3を組み合わせた2層構
造でもよく、あるいは、さらに他の階層を加えた多層構
造でもよい。In this embodiment, the Web application server software SP is installed in the interface layer 2
1L1, the application layer 21L2, and the object layer 21L3, but the present invention is not limited to this.
2 and the object layer 21L3 may be combined to form a two-layer structure, or a multi-layer structure in which another layer is added.
【0092】さらに、本実施形態では、クライアント/
サーバシステムとして、Webクライアント/サーバシ
ステムを例にとって、アプリケーションサーバシステム
を説明したが、本発明はこれに限定されるものではな
く、通常のクライアント/サーバシステムにおいて、サ
ーバの処理負荷を軽減するためのアプリケーションサー
バに対しても、適用可能である。Further, in this embodiment, the client /
The application server system has been described by taking a Web client / server system as an example of the server system. However, the present invention is not limited to this, and is intended to reduce the processing load of the server in a normal client / server system. It is also applicable to application servers.
【0093】[0093]
【発明の効果】以上に述べたように、本発明によれば、
アプリケーションサーバ用コンピュータが実行可能なプ
ログラムを、前記サーバにより受付られたリクエストを
受取る機能を含む前記サーバに対するインタフェース機
能をコンピュータに実現させるためのインタフェース用
プログラムモジュールから構成された第1の層と、前記
インタフェース用プログラムモジュールにより受取られ
たリクエストに対応するアプリケーションロジックを実
行する機能をコンピュータに実現させるためのアプリケ
ーション用プログラムモジュールから構成された第2の
層とを含む階層構造として構築することができるため、
アプリケーションサーバ用コンピュータの処理負荷を分
散化し、かつ各処理速度を向上させることができ、クラ
イアントに対するレスポンスの迅速化およびクライアン
ト/サーバシステム全体の信頼性の向上を実現すること
ができる。As described above, according to the present invention,
A first layer comprising an interface program module for causing a computer to execute an application server computer-executable program, the interface function for the server including a function of receiving a request received by the server; and Since it can be constructed as a hierarchical structure including a second layer including an application program module for causing a computer to execute a function of executing application logic corresponding to a request received by the interface program module,
The processing load on the application server computer can be dispersed, and the processing speed can be improved, whereby a quick response to the client and an improvement in the reliability of the entire client / server system can be realized.
【0094】また、本発明によれば、上述したように、
前記サーバにより受付られたリクエストを受取る機能を
含む前記サーバに対するインタフェース機能をコンピュ
ータに実現させるためのインタフェース用プログラムモ
ジュールから構成された第1の層と、前記インタフェー
ス用プログラムモジュールにより受取られたリクエスト
に対応するアプリケーションロジックを実行する機能を
コンピュータに実現させるためのアプリケーション用プ
ログラムモジュールから構成された第2の層とを含む複
数階層に階層化したため、アプリケーションサーバのハ
ードウエアクラスタリングを、その階層化したプログラ
ム(プログラムモジュール)に基づいて容易に行なうこ
とができ、分散化サーバシステムを容易に構築すること
ができる。According to the present invention, as described above,
A first layer comprising an interface program module for causing a computer to implement an interface function for the server including a function of receiving a request received by the server, and a request corresponding to the request received by the interface program module. The hardware clustering of the application server is divided into a plurality of layers including a second layer composed of application program modules for causing a computer to execute a function of executing application logic. Program module), and a distributed server system can be easily constructed.
【図1】本発明の実施の形態にWebクライアント/サ
ーバシステムのハードウエア構成を示す図。FIG. 1 is a diagram showing a hardware configuration of a Web client / server system according to an embodiment of the present invention.
【図2】図1に示すHTTPサーバおよびWebアプリ
ケーションサーバのソフトウエア構成を概念的に示す
図。FIG. 2 is a diagram conceptually showing a software configuration of an HTTP server and a Web application server shown in FIG. 1;
【図3】図2に示すメインオブジェクトおよびスクリプ
トエンジンに基づく機能を説明するための図。FIG. 3 is a view for explaining functions based on a main object and a script engine shown in FIG. 2;
【図4】図2に示すDBマネージャに基づく機能を説明
するための図。FIG. 4 is a view for explaining functions based on the DB manager shown in FIG. 2;
【図5】図2に示す複数のオブジェクト間の通信アーキ
テクチャを説明するための図。FIG. 5 is a view for explaining a communication architecture between a plurality of objects shown in FIG. 2;
【図6】図1に示すWebクライアント/サーバシステ
ムの全体動作を説明するための概略フローチャート。FIG. 6 is a schematic flowchart for explaining the overall operation of the Web client / server system shown in FIG. 1;
【図7】図1に示すWebクライアント/サーバシステ
ムの全体動作を説明するための概略フローチャート。FIG. 7 is a schematic flowchart for explaining the overall operation of the Web client / server system shown in FIG. 1;
【図8】図6におけるステップS6のスケジューリング
処理を詳細に説明するための図。FIG. 8 is a diagram for explaining in detail a scheduling process in step S6 in FIG. 6;
【図9】図8で説明したスケジューリング処理を概念的
に説明するための図。FIG. 9 is a diagram for conceptually explaining the scheduling process described in FIG. 8;
1 Webクライアント/サーバシステム 2 インターネット 3 Webサーバシステム 4a1〜4an クライアント 5 通信回線 10 Webサーバ(HTTPサーバ) 11 Webアプリケーションサーバ 11a1〜11an Webアプリケーション用コンピ
ュータ 12 データベースサーバ用コンピュータ 13 データベースサーバ 20 HTTPサーバプログラム 21L1 インタフェース層 21L2 アプリケーション層 21L3 オブジェクト層 30 HTTPインタフェース 31 CGIインタフェース 32 スケジューラ 33a1〜33an メインオブジェクト 34a1〜34an スクリプトエンジン 40a1〜40an セッションオブジェクト 41a1〜41an 暗号化オブジェクト 42a1〜42an CGIデコーダ 43a1〜43an DBマネージャ AL1〜ALn アプリケーションロジック D1〜Dn リレーショナルデータベースDESCRIPTION OF SYMBOLS 1 Web client / server system 2 Internet 3 Web server system 4a1-4an client 5 Communication line 10 Web server (HTTP server) 11 Web application server 11a1-11an Web application computer 12 Database server computer 13 Database server 20 HTTP server program 21L1 Interface layer 21L2 Application layer 21L3 Object layer 30 HTTP interface 31 CGI interface 32 Scheduler 33a1-33an Main object 34a1-34an Script engine 40a1-40an Session object 41a1-41an Encrypted object 42a1-42an CGI decoder 4 a1~43an DB manager AL1~ALn application logic D1~Dn relational database
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 15/00 310 G06F 15/16 620B 15/16 620 15/177 674A 15/177 674 9/06 620A ──────────────────────────────────────────────────続 き Continued on the front page (51) Int.Cl. 7 Identification symbol FI Theme coat ゛ (Reference) G06F 15/00 310 G06F 15/16 620B 15/16 620 15/177 674A 15/177 674 9/06 620A
Claims (13)
て受け付けられたリクエストに応じてサーバサイドのア
プリケーションロジックに基づく処理を実行するための
アプリケーションサーバ用コンピュータが実行可能なプ
ログラムであって、 前記サーバにより受付られたリクエストを受取る機能を
含む前記サーバに対するインタフェース機能をコンピュ
ータに実現させるためのインタフェース用プログラムモ
ジュールから構成された第1の層と、前記インタフェー
ス用プログラムモジュールにより受取られたリクエスト
に対応するアプリケーションロジックを実行する機能を
コンピュータに実現させるためのアプリケーション用プ
ログラムモジュールから構成された第2の層とを含む階
層構造を有することを特徴とするプログラム。1. A program executable by an application server computer for executing a process based on application logic on a server side in response to a request requested by a client and received via a server, the program being executable by the server. A first layer composed of an interface program module for causing a computer to implement an interface function for the server including a function of receiving the received request, and application logic corresponding to the request received by the interface program module. A program having a hierarchical structure including a second layer including an application program module for causing a computer to execute a function to be executed.
ェース機能は、前記サーバから受取ったリクエストを前
記アプリケーション用プログラムモジュールに渡す機能
および前記リクエストに対応するアプリケーションロジ
ックの実行結果を受け取り、受取った実行結果を前記サ
ーバに送信する機能を含むことを特徴とするプログラ
ム。2. The program according to claim 1, wherein the interface function of the interface program module is a function of passing a request received from the server to the application program module and executing an application logic corresponding to the request. A program comprising a function of receiving a result and transmitting the received execution result to the server.
数のアプリケーションロジックをそれぞれ実行する機能
をコンピュータに実現させるためのアプリケーション用
プログラムモジュールは複数であるとともに、 前記受取ったリクエストを前記アプリケーション用プロ
グラムモジュールに対して渡す機能は、受取ったリクエ
ストを前記複数のアプリケーション用プログラムモジュ
ールの何れかに渡すかを決定し、決定したアプリケーシ
ョン用プログラムモジュールに対して当該リクエストを
渡す機能であることを特徴とするアプリケーションサー
バ用プログラムモジュール。3. The program according to claim 2, wherein the application logic includes a plurality of application logics, and a plurality of application program modules for causing a computer to execute a function of executing each of the plurality of application logics. The function of passing the received request to the application program module determines whether the received request is to be passed to any of the plurality of application program modules, and passes the request to the determined application program module. A program module for an application server, which has a function of passing.
依存な状態でオブジェクト指向に基づく分散オブジェク
ト環境下において構築されており、 前記複数のアプリケーション用プログラムモジュール
は、渡されたリクエストに対応するアプリケーションロ
ジックを前記複数のアプリケーションロジックの中から
選択して起動させる機能を含むアプリケーションロジッ
クの実行管理機能をコンピュータに実現させるための実
行管理オブジェクトと、前記リクエストに応じた前記実
行管理オブジェクトのアプリケーションロジック実行管
理機能に基づいて渡されたアプリケーションロジックを
実行してその実行結果を前記実行管理オブジェクトに渡
す実行エンジンオブジェクトとをそれぞれ備えたことを
特徴とするプログラム。4. The program according to claim 3, wherein the application server is constructed in a distributed object environment based on object orientation in a platform-independent manner, and the plurality of application program modules are: An execution management object for causing a computer to implement an application logic execution management function including a function of selecting and starting an application logic corresponding to the passed request from the plurality of application logics; and An execution engine object that executes the application logic passed based on the application logic execution management function of the execution management object and passes the execution result to the execution management object. Program which is characterized in that there was example.
よる前記アプリケーションロジックの実行を支援する機
能をコンピュータに実現させるための複数の実行支援用
オブジェクトから構成された第3の層をさらに備えたこ
とを特徴とするプログラム。5. The program according to claim 4, comprising a plurality of execution support objects for causing a computer to realize a function of supporting execution of the application logic by the execution engine object in the second layer. A program characterized by further comprising a selected third layer.
ェクトにより実行されているアプリケーションロジック
内において前記複数の実行支援用オブジェクトの内の少
なくとも1つのオブジェクトの機能を利用する命令が生
じた際に、その命令を解釈し、解釈結果に対応する実行
支援用オブジェクトに対して処理を依頼する機能および
依頼先の実行支援用オブジェクトから渡された実行結果
を命令発行元のアプリケーションロジックに渡す機能を
それぞれ含み、 前記第3の層の複数の実行支援用オブジェクトは、前記
実行管理オブジェクトから依頼された処理内容に基づく
処理を実行し、その実行結果を依頼元の実行管理オブジ
ェクトに渡す機能をそれぞれ含むことを特徴とするプロ
グラム。6. The program according to claim 5, wherein the execution management object is a function of at least one of the plurality of execution support objects in an application logic executed by the execution engine object. When an instruction is used, the function that interprets the instruction and requests the execution support object corresponding to the interpretation result to perform processing and issues the execution result passed from the execution support object of the request destination The plurality of execution support objects of the third layer execute processing based on the processing contents requested from the execution management object, and execute the execution result of the request source. A program characterized by including functions to be passed to managed objects. .
ータは、データベースサーバに搭載された複数の分散化
データベースにアクセス可能になっており、 前記クライアントは複数であり、これら複数のクライア
ントから複数のリクエストに対応する複数のアプリケー
ションロジックが前記実行管理オブジェクトを介して実
行エンジンオブジェクトにより実行されるようになって
いる一方、 前記複数の実行支援用オブジェクトは、前記複数のクラ
イアントから要求されたリクエストに応じて、当該リク
エスト発行元のクライアントのセッション情報を管理す
るセッションオブジェクトと、前記実行管理オブジェク
トから依頼されたデータベースアクセスを表す処理内容
に基づいて、前記分散化データベースに対して直接アク
セスする機能および前記実行管理オブジェクトから依頼
された処理内容に基づいて、当該実行管理オブジェクト
から渡されたデータを一時的に蓄えるキャッシュ機能を
有するデータベース用オブジェクトと、前記実行管理オ
ブジェクトから依頼されたデータの暗号化/復号化を表
す処理内容に基づいて、当該実行管理オブジェクトから
渡されたデータの暗号化/復号化を行なう機能を有する
暗号化/復号化オブジェクトとを含むことを特徴とする
プログラム。7. The program according to claim 6, wherein the plurality of computers configuring the application server are capable of accessing a plurality of distributed databases mounted on a database server. A plurality of application logics corresponding to a plurality of requests from the plurality of clients are executed by an execution engine object via the execution management object, while the plurality of execution support objects are In response to a request requested from the client, the session object that manages session information of the client that issued the request and the processing content representing the database access requested from the execution management object, A database object having a function of directly accessing the decentralized database and a cache function for temporarily storing data passed from the execution management object based on the processing content requested by the execution management object; An encryption / decryption object having a function of encrypting / decrypting the data passed from the execution management object based on the processing content representing the encryption / decryption of the data requested by the object. A program characterized by:
のコンピュータに分散配置されている一方、 前記インタフェース用プログラムモジュールは、前記サ
ーバにより受付られたリクエストを受取る機能および前
記リクエストが渡されたアプリケーション用プログラム
モジュールの実行結果を受け取って前記サーバに送信す
る機能をコンピュータに実現させるためのインタフェー
スプログラムと、このインタフェースプログラムに基づ
いて受取られたリクエストに含まれるジョブを、分散配
置された複数のコンピュータ上の複数の実行管理オブジ
ェクトの内のどの実行管理オブジェクトに渡すかをスケ
ジューリングする機能をコンピュータに実現させるため
のスケジューリングオブジェクトとを含むことを特徴と
するプログラムモジュール。8. The program according to claim 4, wherein the plurality of execution management objects are respectively distributed to the plurality of computers, and the interface program module is a request received by the server. And an interface program for realizing a function of receiving the execution result of the application program module to which the request has been passed and transmitting the result to the server, and a request received based on the interface program. Scheduling object for causing a computer to implement a function of scheduling a job to be transferred to which of a plurality of execution management objects on a plurality of distributed computers. Program modules, characterized in that it comprises and.
されるCGIプログラムと、前記サーバに依存するイン
タフェースオブジェクトとを備え、前記CGIプログラ
ムは、前記サーバを介して受け付けられたリクエストが
前記サーバのCGI機能により実行されたものである場
合に、前記リクエスト受取る機能および前記リクエスト
が渡されたアプリケーション用プログラムモジュールの
実行結果を受け取って前記サーバに送信する機能をコン
ピュータに実現させるようになっており、 前記インタフェースオブジェクトは、前記サーバを介し
て受け付けられたリクエストが当該サーバのCGI機能
により実行されたものでない場合に、前記リクエスト受
取る機能および前記リクエストが渡されたアプリケーシ
ョン用プログラムモジュールの実行結果を受け取って前
記サーバに送信する機能をコンピュータに実現させるこ
とを特徴とするプログラム。9. The program according to claim 8, wherein the interface program includes a CGI program started from the server, and an interface object dependent on the server, and the CGI program is transmitted through the server. If the received request is executed by the CGI function of the server, the computer performs a function of receiving the request and a function of receiving an execution result of the application program module to which the request is passed and transmitting the result to the server. When the request received via the server is not the one executed by the CGI function of the server, the interface object has the function of receiving the request and the request Program, characterized in that to realize the function of transmitting to the server receives the execution result of the program modules for an application in the computer.
ントから複数のリクエストに対応する複数のアプリケー
ションロジックが前記実行管理オブジェクトを介して前
記実行エンジンオブジェクトにより実行されるようにな
っている一方、 前記スケジューリングオブジェクトは、前記インタフェ
ースプログラムに基づいて受取られたリクエストに対応
するクライアントのセッションを担当している実行管理
オブジェクトが存在するか否か判断する機能と、この判
断機能に応じて、前記セッションを担当している実行管
理オブジェクトが存在すると判断された際に、前記リク
エストに含まれるジョブを対応するセッションを担当し
ている実行管理オブジェクトに渡す機能と、前記判断機
能に応じて、前記セッションを担当している実行管理オ
ブジェクトが存在しないと判断された際に、前記複数の
実行管理オブジェクトそれぞれの担当セッション数が最
も少ない実行管理オブジェクトを選択し、選択した実行
管理オブジェクトに対して、前記リクエストに含まれる
ジョブを渡す機能とを含むことを特徴とするプログラ
ム。10. The program according to claim 8, wherein the client is plural, and a plurality of application logics corresponding to a plurality of requests from the plurality of clients are executed by the execution engine object via the execution management object. While the scheduling object is configured to determine whether there is an execution management object that is in charge of a client session corresponding to the received request based on the interface program; According to this determination function, when it is determined that there is an execution management object in charge of the session, a function of passing the job included in the request to the execution management object in charge of the corresponding session; Judgment function Accordingly, when it is determined that there is no execution management object in charge of the session, the execution management object having the smallest number of assigned sessions for each of the plurality of execution management objects is selected, and A function of passing a job included in the request.
よびインタフェース用プログラムモジュールは、オブジ
ェクト指向言語により生成されていることを特徴とする
プログラム。11. The program according to claim 4, wherein the plurality of application program modules and the interface program modules are generated in an object-oriented language.
して受け付けられたリクエストに応じてアプリケーショ
ンロジックに基づく処理を実行するためのアプリケーシ
ョンサーバ用コンピュータが実行可能なプログラムを記
憶した記憶媒体であって、 前記プログラムモジュールは、前記サーバにより受付ら
れたリクエストを受取る機能を含む前記サーバに対する
インタフェース機能をコンピュータに実現させるための
インタフェース用プログラムモジュールから構成された
インタフェース層と、前記インタフェース用プログラム
モジュールにより受取られたリクエストに対応するアプ
リケーションロジックを実行する機能をコンピュータに
実現させるためのアプリケーション層を構築するアプリ
ケーション用プログラムモジュールとの内の少なくとも
1つのプログラムモジュールを含むことを特徴とする記
憶媒体。12. A storage medium storing a program executable by an application server computer for executing a process based on application logic in response to a request requested from a client and received via a server, the program comprising: The module includes an interface layer including an interface program module for causing a computer to implement an interface function for the server including a function of receiving a request received by the server, and a request received by the interface program module. A small number of the application program modules for constructing an application layer for realizing the function of executing the corresponding application logic on the computer. Storage medium characterized by comprising Kutomo one program modules.
して受け付けられたリクエストに応じてアプリケーショ
ンロジックに基づく処理を実行するためのアプリケーシ
ョンサーバシステムであって、 複数のアプリケーションロジックを実行可能な複数のプ
ログラム実行手段と、前記サーバにより受付られたリク
エストを前記複数のプログラム実行手段の何れに渡すか
を当該複数のプログラム実行手段それぞれの状態に応じ
て決定し、決定したプログラム実行手段に対して当該リ
クエストを渡す手段と、前記リクエストが渡されたプロ
グラム実行手段により実行された当該リクエストに対応
するアプリケーションロジックの実行結果を受取り、受
取った実行結果を前記サーバに送信する手段とを備えた
ことを特徴とするアプリケーションサーバシステム。13. An application server system for executing a process based on application logic in response to a request requested by a client and accepted via a server, wherein a plurality of program execution means capable of executing a plurality of application logics. Means for deciding to which of the plurality of program execution means the request received by the server is to be passed, according to the state of each of the plurality of program execution means, and passing the request to the determined program execution means And an means for receiving an execution result of an application logic corresponding to the request executed by the program execution means to which the request has been passed, and transmitting the received execution result to the server. Stem.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001140349A JP2002333986A (en) | 2001-05-10 | 2001-05-10 | Application server system and program and storage medium with the program stored therein |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001140349A JP2002333986A (en) | 2001-05-10 | 2001-05-10 | Application server system and program and storage medium with the program stored therein |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002333986A true JP2002333986A (en) | 2002-11-22 |
Family
ID=18986969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001140349A Pending JP2002333986A (en) | 2001-05-10 | 2001-05-10 | Application server system and program and storage medium with the program stored therein |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2002333986A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11765242B2 (en) | 2021-11-05 | 2023-09-19 | Honda Motor Co., Ltd. | File exchange system, communication support device, file exchange support device, file exchange method, and computer-readable non-transitory storage medium with program stored therein |
-
2001
- 2001-05-10 JP JP2001140349A patent/JP2002333986A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11765242B2 (en) | 2021-11-05 | 2023-09-19 | Honda Motor Co., Ltd. | File exchange system, communication support device, file exchange support device, file exchange method, and computer-readable non-transitory storage medium with program stored therein |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5894554A (en) | System for managing dynamic web page generation requests by intercepting request at web server and routing to page server thereby releasing web server to process other requests | |
US6996599B1 (en) | System and method providing multi-tier applications architecture | |
US7640347B1 (en) | Method and system for inserting POST data into the GET request to apply normal caching rules | |
US7133933B2 (en) | Content synchronization frameworks using dynamic attributes and file bundles for connected devices | |
US20070106946A1 (en) | Method and system for developing interactive Web applications in a unified framework | |
US20070174420A1 (en) | Caching of web service requests | |
US20070256073A1 (en) | Extendable framework for distributed applications and data | |
JP2005339536A (en) | System and method for managing connection between server and client node | |
JP2005539298A (en) | Method and system for remotely and dynamically configuring a server | |
JP2002229842A (en) | Http archival file | |
US8019884B2 (en) | Proxy content for submitting web service data in the user's security context | |
US20080288955A1 (en) | Method and System for Managing Preferences in a Client Portlet Container | |
US7478142B1 (en) | Self-contained applications that are applied to be received by and processed within a browser environment and that have a first package that includes a manifest file and an archive of files including a markup language file and second package | |
JPH11502346A (en) | Computer system and computer execution process for creating and maintaining online services | |
US8555239B1 (en) | Mainframe-based web service development accelerator | |
US7448032B2 (en) | Method and apparatus for integration of URL into standard file systems | |
US20040143646A1 (en) | Method and apparatus for exchanging data using programmatic conversion to emulated HTML form data | |
US6934734B2 (en) | Method and apparatus for managing and presenting changes to an object in a data processing system | |
JP2000285052A (en) | Url conversion method and device | |
US8479175B1 (en) | Mainframe-based web service development accelerator | |
JP4222065B2 (en) | Data access method and information system in information system | |
JP2002333986A (en) | Application server system and program and storage medium with the program stored therein | |
US20060085372A1 (en) | Copy template/read only data in application tables | |
JP2001325280A (en) | Data base retrieval system | |
JP2002014963A (en) | Database management system and its developing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20050114 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050117 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20050114 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070312 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070327 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070807 |