JPWO2004102396A1 - 遅延ストレージ装置および遅延処理方法 - Google Patents
遅延ストレージ装置および遅延処理方法 Download PDFInfo
- Publication number
- JPWO2004102396A1 JPWO2004102396A1 JP2004571845A JP2004571845A JPWO2004102396A1 JP WO2004102396 A1 JPWO2004102396 A1 JP WO2004102396A1 JP 2004571845 A JP2004571845 A JP 2004571845A JP 2004571845 A JP2004571845 A JP 2004571845A JP WO2004102396 A1 JPWO2004102396 A1 JP WO2004102396A1
- Authority
- JP
- Japan
- Prior art keywords
- processing
- request
- processing request
- delay
- relay
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/10015—Access to distributed or replicated servers, e.g. using brokers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
遅延ストレージ装置は、利用者端末からの処理要求を受け付け、処理要求の識別子と受付日時を情報管理テーブルに登録して、識別子を含む回答メッセージを返送する。そして、処理装置の性能に応じて処理要求の転送速度を調整しながら、受け付けた処理要求を処理装置に中継する。
Description
本発明は、利用者からの処理要求を受けて逐次的に処理を行う処理装置の前段に配置され、高速かつ大量に送信されてくる処理要求を後段の処理装置に逐次入力していく際に、その処理要求を一時的に蓄え、利用者の要求や後段の処理装置の性能に応じて処理要求速度を制御する遅延ストレージ装置および遅延処理方法に関する。
従来のWebサーバ等の処理装置では、システムの負荷を軽減するために、複数の処理装置に処理要求を振り分けるためのドメインネームサーバ(DNS)を配置して、利用者からの処理要求を中継する、ラウンドロビン技術が用いられている(例えば、非特許文献1および特許文献1参照)。この技術では、クライアントからは複数のサーバが仮想的に1つのサーバに見えるが、実際には複数のサーバに処理要求が振り分けられる。
また、プロキシサーバと呼ばれる装置が、利用者と処理装置の間に配置され、利用者からの処理要求を記録するとともに、処理装置からの処理結果を記録しておく技術も用いられている(例えば、特許文献2参照)。この技術では、同じ処理要求が再び同一あるいは別の利用者から行われた場合に、後段の処理装置に処理要求を中継せずに、記録されている処理結果を後段の処理装置の処理結果として利用者に返すことができる。
"高性能かつ高可用性クラスタシステムの構築"、3ページ、1.1 ロード・バランシングの種類、[online]、2000年6月16日、Zeus Technology−技術資料−技術情報、[平成15年3月7日検索]、インターネット<URL:http://www.jp.zeus.com/library/technical/cluster/index.html> 特開2002−057691号公報 特開2002−259338号公報
また、プロキシサーバと呼ばれる装置が、利用者と処理装置の間に配置され、利用者からの処理要求を記録するとともに、処理装置からの処理結果を記録しておく技術も用いられている(例えば、特許文献2参照)。この技術では、同じ処理要求が再び同一あるいは別の利用者から行われた場合に、後段の処理装置に処理要求を中継せずに、記録されている処理結果を後段の処理装置の処理結果として利用者に返すことができる。
"高性能かつ高可用性クラスタシステムの構築"、3ページ、1.1 ロード・バランシングの種類、[online]、2000年6月16日、Zeus Technology−技術資料−技術情報、[平成15年3月7日検索]、インターネット<URL:http://www.jp.zeus.com/library/technical/cluster/index.html>
しかしながら、上述した従来の技術には、次のような問題がある。
従来のラウンドロビン技術をもってしても、振り分け対象となる複数の処理装置のすべてが高負荷な状態になった場合には、利用者からの処理要求は、回答されることなしに待たされることになる。
また、プロキシ技術では、初めて受け付けた処理要求に対しては処理結果が記録されていないため、その処理要求は後段の処理装置にそのまま中継される。このため、プロキシサーバがあったとしても、後段の処理装置が高負荷な状態にある場合には、利用者からの処理要求は、回答されることなしに待たされることになる。
実際には、後段の処理装置の処理性能(例えば、単位時間当たりの処理件数)の上限が決まっている場合が多く、それを越える処理要求が送られると、処理装置のあふれを招き、さらに処理時間の遅延につながる。
従来のラウンドロビン技術をもってしても、振り分け対象となる複数の処理装置のすべてが高負荷な状態になった場合には、利用者からの処理要求は、回答されることなしに待たされることになる。
また、プロキシ技術では、初めて受け付けた処理要求に対しては処理結果が記録されていないため、その処理要求は後段の処理装置にそのまま中継される。このため、プロキシサーバがあったとしても、後段の処理装置が高負荷な状態にある場合には、利用者からの処理要求は、回答されることなしに待たされることになる。
実際には、後段の処理装置の処理性能(例えば、単位時間当たりの処理件数)の上限が決まっている場合が多く、それを越える処理要求が送られると、処理装置のあふれを招き、さらに処理時間の遅延につながる。
本発明の課題は、高速かつ大量に送信されてくる処理要求を後段の処理装置に逐次入力していく際に、処理装置のあふれを防止する遅延ストレージ装置および遅延処理方法を提供することである。
本発明のもう1つの課題は、処理要求を送信した利用者が回答されることなしに待たされる状況を回避することである。
図1は、本発明の遅延ストレージ装置の原理図である。図1の遅延ストレージ装置は、受付部101、要求格納部102、管理部103、および中継部104を備え、利用者105から処理装置106への処理要求を受け付けて処理装置106へ中継する。
受付部101は、処理要求を受け付け、要求格納部102は、受け付けた処理要求を一時的に格納する。管理部103は、受け付けた処理要求の受付時刻を格納し、中継部104は、処理装置106の性能に応じて処理要求の転送速度を調整しながら、受付時刻順に処理要求を処理装置106に中継する。
中継部104は、例えば、以下のような方法で処理要求の転送速度を調整する。
(1)指定された単位時間当たりの処理要求件数を受け取り、処理装置106に送信される単位時間当たりの処理要求件数が指定された単位時間当たりの処理要求件数を越えないように、処理要求の転送速度を調整する。
(2)指定された遅延時間を受け取り、受け付けた処理要求の受付日時から指定された遅延時間が経過した後に、その処理要求を処理装置106に中継する。
(3)中継停止の指示を受け取ったとき、次に中継再開の指示を受け取るまで処理要求の中継を停止する。
(4)処理装置106の負荷状況を検知し、検知した負荷状況に基づいて処理要求の転送速度を調整する。
このように、処理要求を受け付けて処理装置106への転送速度を調整する遅延ストレージ装置を、処理装置106の前段に設けることにより、処理装置106の性能に応じて処理要求の中継を遅延させることが可能となり、処理装置のあふれが防止される。また、処理要求とともにその受付時刻を格納することにより、処理要求を受付順に処理装置106へ転送することができる。
また、遅延ストレージ装置は、処理装置106に中継された処理要求に対して処理装置106から返送された処理結果を格納する結果格納部107をさらに備える。受付部101は、処理要求を一意に識別するための識別子を発行して、処理要求の要求元(利用者105の端末等)にその識別子を返送し、その要求元が識別子を用いて処理要求に対する処理結果を要求したとき、結果格納部107から対応する処理結果を読み出して要求元に送信する。
このように、処理要求を受け付けたときに識別子を発行して要求元に返送することで、処理要求が受け付けられたことを利用者に通知することが可能となり、利用者が回答されることなしに待たされる状況が回避できる。また、結果格納部107を設けることで、要求元は、返送された識別子を用いて、先に送信した処理要求に対する処理結果を遅延ストレージ装置から取得することが可能となる。
図1の受付部101、要求格納部102、管理部103、中継部104、および結果格納部107は、例えば、後述する図2の処理要求受付部211、処理要求ファイル217、情報管理テーブル213、中継時間調整部214、および処理結果ファイル218にそれぞれ対応する。
本発明のもう1つの課題は、処理要求を送信した利用者が回答されることなしに待たされる状況を回避することである。
図1は、本発明の遅延ストレージ装置の原理図である。図1の遅延ストレージ装置は、受付部101、要求格納部102、管理部103、および中継部104を備え、利用者105から処理装置106への処理要求を受け付けて処理装置106へ中継する。
受付部101は、処理要求を受け付け、要求格納部102は、受け付けた処理要求を一時的に格納する。管理部103は、受け付けた処理要求の受付時刻を格納し、中継部104は、処理装置106の性能に応じて処理要求の転送速度を調整しながら、受付時刻順に処理要求を処理装置106に中継する。
中継部104は、例えば、以下のような方法で処理要求の転送速度を調整する。
(1)指定された単位時間当たりの処理要求件数を受け取り、処理装置106に送信される単位時間当たりの処理要求件数が指定された単位時間当たりの処理要求件数を越えないように、処理要求の転送速度を調整する。
(2)指定された遅延時間を受け取り、受け付けた処理要求の受付日時から指定された遅延時間が経過した後に、その処理要求を処理装置106に中継する。
(3)中継停止の指示を受け取ったとき、次に中継再開の指示を受け取るまで処理要求の中継を停止する。
(4)処理装置106の負荷状況を検知し、検知した負荷状況に基づいて処理要求の転送速度を調整する。
このように、処理要求を受け付けて処理装置106への転送速度を調整する遅延ストレージ装置を、処理装置106の前段に設けることにより、処理装置106の性能に応じて処理要求の中継を遅延させることが可能となり、処理装置のあふれが防止される。また、処理要求とともにその受付時刻を格納することにより、処理要求を受付順に処理装置106へ転送することができる。
また、遅延ストレージ装置は、処理装置106に中継された処理要求に対して処理装置106から返送された処理結果を格納する結果格納部107をさらに備える。受付部101は、処理要求を一意に識別するための識別子を発行して、処理要求の要求元(利用者105の端末等)にその識別子を返送し、その要求元が識別子を用いて処理要求に対する処理結果を要求したとき、結果格納部107から対応する処理結果を読み出して要求元に送信する。
このように、処理要求を受け付けたときに識別子を発行して要求元に返送することで、処理要求が受け付けられたことを利用者に通知することが可能となり、利用者が回答されることなしに待たされる状況が回避できる。また、結果格納部107を設けることで、要求元は、返送された識別子を用いて、先に送信した処理要求に対する処理結果を遅延ストレージ装置から取得することが可能となる。
図1の受付部101、要求格納部102、管理部103、中継部104、および結果格納部107は、例えば、後述する図2の処理要求受付部211、処理要求ファイル217、情報管理テーブル213、中継時間調整部214、および処理結果ファイル218にそれぞれ対応する。
図1は、本発明の遅延ストレージ装置の原理図である。
図2は、遅延ストレージシステムの構成図である。
図3は、処理要求を示す図である。
図4は、第1の遅延メッセージを示す図である。
図5は、第2の遅延メッセージを示す図である。
図6は、第3の遅延メッセージを示す図である。
図7は、第4の遅延メッセージを示す図である。
図8は、処理結果を示す図である。
図9は、情報管理テーブルを示す図である。
図10は、処理要求ファイルを示す図である。
図11は、処理結果ファイルを示す図である。
図12は、遅延ストレージシステムの処理のフローチャートである。
図13は、中継時間調整処理のフローチャートである。
図14は、処理要求受付処理のフローチャートである。
図15は、処理結果要求受付処理のフローチャートである。
図16は、第1の運用方法を示す図である。
図17は、第2の運用方法を示す図である。
図18は、第1の遅延ストレージシステムを示す図である。
図19は、第2の遅延ストレージシステムを示す図である。
図20は、情報処理装置の構成図である。
図21は、記録媒体を示す図である。
図2は、遅延ストレージシステムの構成図である。
図3は、処理要求を示す図である。
図4は、第1の遅延メッセージを示す図である。
図5は、第2の遅延メッセージを示す図である。
図6は、第3の遅延メッセージを示す図である。
図7は、第4の遅延メッセージを示す図である。
図8は、処理結果を示す図である。
図9は、情報管理テーブルを示す図である。
図10は、処理要求ファイルを示す図である。
図11は、処理結果ファイルを示す図である。
図12は、遅延ストレージシステムの処理のフローチャートである。
図13は、中継時間調整処理のフローチャートである。
図14は、処理要求受付処理のフローチャートである。
図15は、処理結果要求受付処理のフローチャートである。
図16は、第1の運用方法を示す図である。
図17は、第2の運用方法を示す図である。
図18は、第1の遅延ストレージシステムを示す図である。
図19は、第2の遅延ストレージシステムを示す図である。
図20は、情報処理装置の構成図である。
図21は、記録媒体を示す図である。
以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
後段の処理装置では、通常、実質的な処理にかかる時間と処理の受付や回答にかかる時間の和によって単位時間当たりの処理件数の上限が決まっている。したがって、その前段に利用者からの処理要求を中継する装置を配置し、その装置により後段の処理装置の処理件数の上限を越えないように単位時間当たりの処理要求件数を調整することで、処理装置のあふれを防ぐことができる。
本実施形態の遅延ストレージ装置は、利用者からの処理要求を一時的に蓄積するバッファリング装置として用いられ、処理装置の性能に応じて処理要求の転送速度を制御する。この遅延ストレージ装置内には、処理要求を一時的に格納する記憶機構と、処理要求が到着した時刻を記録する機構が設けられる。処理要求の到着時刻を処理要求と併せて記録しておくことで、到着した処理要求を後段の処理装置に出力する際の順序を保証することができ、また、指定された遅延時間後に、到着した処理要求を指定された時間間隔や頻度で中継することが可能となる。
また、遅延ストレージ装置は、要求元から処理要求を受け付けた際に、処理要求を一意に識別するための識別子とあらかじめ決められた形式の回答を要求元に返すことができる。これにより、処理の要求元は、後で、その処理要求が後段の処理装置に出力されたかどうかをこの識別子を用いて遅延ストレージ装置に問い合わせたり、処理装置による処理結果を受け取ったりすることが可能となる。
例えば、Webサーバ等の処理装置の前段に遅延ストレージ装置を配置することで、Webサーバの性能上の要件に応じて、送られてくる処理要求の転送速度を制御することができる。例えば、処理要求の転送速度が毎秒1千トランザクションであって、Webサーバの処理速度が毎秒500トランザクションであった場合に、Webサーバの処理速度に合わせて処理要求の転送速度を遅延させることが可能となる。
また、Webサーバの運用中にディスク装置等に障害が発生した場合でも、システムの運用を停止することなく、遅延ストレージ装置に処理要求を一時的に格納していき、その間にディスク装置の交換を行うことで、システムの運用を継続させることが可能となる。
図2は、このような遅延ストレージ装置を用いた遅延ストレージシステムの構成図である。図2の遅延ストレージシステムは、遅延ストレージ装置201、利用者端末202、管理端末203、および処理装置204からなる。実線の矢印は処理要求時の情報の流れを示しており、破線の矢印は処理結果要求時の情報の流れを示している。
利用者端末202は、利用者からの処理要求の入力と処理結果の表示に用いられ、管理端末203は、管理者による遅延時間の指定、中継停止/再開の指示、および単位時間当たりの処理要求件数の指定に用いられる。処理装置204は、遅延ストレージ装置201から受け取った処理要求に従って処理を実行し、処理結果を返す。
遅延ストレージ装置201は、処理要求受付部211、処理要求格納部212、情報管理テーブル213、中継時間調整部214、処理結果受付部215、および処理結果格納部216を備え、利用者端末202からの処理要求を後段の処理装置204に中継する。
処理要求受付部211は、利用者端末202からの処理要求を受け付け、受け付けた処理要求を識別する識別子と受付日時とを処理要求に付与し、利用者に対するメッセージを生成する。処理要求格納部212は、受け付けた処理要求を処理要求ファイル217に一時的に格納する。情報管理テーブル213は、処理要求の識別子、処理要求の受付日時、処理要求の中継状況、および処理要求と処理結果を結びつける管理情報を格納する。
中継時間調整部214は、格納された処理要求を処理装置204に中継する際に、時間的な調整を行ってから処理要求を送出する。処理結果受付部215は、処理装置204から処理結果を受け取り、その処理結果の受付日時を発行する。処理結果格納部216は、受け取った処理結果に受付日時を付与して、処理結果ファイル218に一時的に格納する。
中継時間調整部214は、処理装置204の負荷状況を検知し、検知した負荷状況や、管理端末203から指定された遅延時間および単位時間当たりの処理要求件数に応じて、中継のタイミングを調整する。さらに、中継時間調整部214は、管理端末203からの指示により中継の停止や再開を制御する。このような中継時間調整部214を設けることで、処理装置204のあふれを防ぐことが可能となる。
処理要求受付部211は、処理要求の中継に遅延がある際に、処理装置204の代わりに、処理に遅延が発生している旨のメッセージ(遅延メッセージ)を生成して利用者に回答する。また、受け付けた処理要求の識別子を利用者端末202に対して発行し、利用者端末202が後でその識別子に基づいて改めて処理結果を要求した際に、処理装置204からの処理結果を回答する。
利用者端末202は、遅延ストレージ装置201から受け取った遅延メッセージや処理要求の識別子を含むクッキーを、ローカルな保存ファイル221に保存しておき、後で処理結果を要求する際に読み出して使用する。このようなメッセージと識別子を用いることで、利用者は、処理要求の中継に遅延がある場合にも、待たされることなしにその旨を知ることができ、後で改めて処理結果を受け取ることも可能となる。
図3は、利用者からの処理要求の例を示している。この例では、処理装置204としてWebサーバを用いたチケットの予約受け付けシステムにおける処理要求が示されている。利用者端末202上で、利用者が予約フォーム301に名前311とコース番号312を入力し、予約ボタン313をクリックすると、Webブラウザは、入力された情報をWebサーバで処理可能な処理要求302に変換する。
図4から図6までは、処理要求の中継に遅延が発生する場合に利用者に返される遅延メッセージの例を示している。
図4は、遅延メッセージを保存する場合の例を示している。この例では、遅延メッセージ401は、HTML(Hyper Text Markup Language)形式の文書として利用者端末202に送られる。遅延メッセージ401には、サーバ負荷のため処理が遅延しており、終了まで30分ほどかかる旨を示すテキストと、遅延ストレージ装置201が発行した、処理結果要求のためのリンク411とが含まれている。リンク411には、処理要求の識別子(ID=5678)が付加されている。
利用者がメッセージの保存ボタン412をクリックすると、利用者端末202は、遅延メッセージ401を保存ファイル221に保存する。そして、遅延メッセージ401に書かれた遅延時間を経た後に利用者が処理結果を要求する際に、利用者端末202は、保存した遅延メッセージ401を保存ファイル221から読み出して、画面上に表示する。このとき、利用者は、リンク411をクリックすることで、遅延ストレージ装置201に対して処理結果を要求することができる。
図5は、クッキーを用いる場合の例を示している。一般に、利用者端末202のWebブラウザには、サーバからの指示に基づいて識別子等の情報を自動的に利用者端末側の保存ファイル221に保存しておく、クッキーと呼ばれる機能が備わっている。この機能を用いることで、遅延ストレージ装置201から利用者端末202に送付される遅延メッセージ501の中に、処理要求の識別子をクッキー511として含ませておくことができる。
利用者端末202は、受け付けたクッキー511を自動的に保存ファイル221に保存する。そして、遅延メッセージ501に書かれた遅延時間を経た後に利用者が処理結果を要求する際に、利用者は、例えば、再度、予約フォーム301の画面を呼び出して、予約ボタン313をクリックする。これにより、遅延ストレージ装置201に処理要求が送られるが、このとき保存ファイル221に保存されているクッキー511が自動的に読み出され、処理要求とともに遅延ストレージ装置201に送られる。
遅延ストレージ装置201は、クッキー511を読み出すことで、割り当てられた処理要求の識別子の有無を判定し、利用者端末側にクッキー511があれば、既に受け付けた予約であると判別する。そして、その識別子に基づいて予約確認フォーム502を利用者端末202に送付する。利用者は、予約確認フォーム502の画面に含まれる確認ボタン512をクリックすることで、遅延ストレージ装置201に対して処理結果を要求することができる。
図4および図5の方法は、遅延時間が長く、利用者端末202に遅延メッセージを表示したままにしておくことが困難な場合に有効である。これに対して、遅延時間が短く、遅延メッセージを表示したままにしておくことが容易であれば、表示された遅延メッセージの画面上に埋め込まれたリンクをクリックすることで、処理結果を要求することも可能である。
図6および図7は、このような遅延メッセージの例を示している。図6の遅延メッセージは、Webサーバの単位時間当たりの処理要求件数が閾値を越えたため処理が遅延している場合に、利用者端末202に送付される。この遅延メッセージには、処理要求の識別子を含む、処理結果を要求するためのリンク601が挿入されており、利用者は、リンク601をクリックすることで、遅延ストレージ装置201に対して処理結果を要求することができる。
図7の遅延メッセージは、Webサーバのメンテナンスのため処理が遅延している場合に、利用者端末202に送付される。この場合も、利用者は、図6の遅延メッセージと同様に、リンク701をクリックすることで、遅延ストレージ装置201に対して処理結果を要求することができる。
図8は、処理装置204から返される処理結果の例を示している。この例では、遅延ストレージ装置201が中継した処理要求がWebサーバで処理され、その結果として予約が完了したという処理結果801が返される。この処理結果801は、遅延ストレージ装置201の処理結果ファイル218に一旦格納され、利用者からの処理結果要求に応じて利用者端末202に送られ、Webブラウザにより結果表示802として表示される。
図9は、情報管理テーブル213のデータの例を示している。図9の情報管理テーブルには、処理要求毎に、処理要求識別子、処理要求番号、受付日時、中継状況、および処理結果番号が登録される。このうち、処理要求番号は、情報管理テーブル213のデータと処理要求ファイル217のデータを結びつけるために用いられ、処理結果番号は、情報管理テーブル213のデータと処理結果ファイル218のデータを結びつけるために用いられる。
また、中継状況としては、“受付済み”、“処理中”、“結果受付済み”、および“結果削除済み(不図示)”のいずれかが登録される。“受付済み”は、処理要求が登録済みであることを表し、“処理中”は、処理装置204が処理を実行中であることを表し、“結果受付済み”は、処理装置204からの処理結果が登録済みであることを表し、“結果削除済み”は、登録された処理結果が削除されたことを表す。“受付済み”、“処理中”、および“結果削除済み”の場合は、処理結果ファイルが登録されていないので、処理結果番号は“−1”に設定される。
図10は、処理要求ファイル217のデータの例を示している。図10の処理要求ファイルには、処理要求毎に、処理要求番号および処理要求がテーブル形式で登録される。
図11は、処理結果ファイル218のデータの例を示している。図11の処理結果ファイルは、処理結果テーブル1101と個々の処理結果を格納したファイル1102からなる。処理結果テーブル1101には、処理結果毎に、処理結果番号、処理結果受付日時、および処理結果ファイル名が登録される。処理結果ファイル名はファイル1102の名称であり、遅延ストレージ装置201は、処理結果テーブル1101を参照することで、ファイル1102を読み出すことができる。
次に、図12から図15までを参照しながら、図2の遅延ストレージシステムによる処理をより詳細に説明する。
図12は、図2の遅延ストレージシステムの全体処理のフローチャートである。利用者が利用者端末202の入力装置1201から処理要求を入力して、それを遅延ストレージ装置201に送信すると(ステップS1211)、処理要求受付部211は、その処理要求を受け付ける(ステップS1221)。
次に、処理要求受付部211は、情報管理テーブル213を参照して現在の処理要求遅延状況を確認し(ステップS1222)、処理要求の中継に遅延があるか否かを判定する(ステップS1223)。
処理要求の中継に遅延があれば、受け付けた処理要求を識別する識別子を発行し、要求を受け付けた日時を取得する(ステップS1224)。そして、処理要求を処理要求格納部212の処理要求ファイル217に登録し(ステップS1225)、識別子を受付日時とともに情報管理テーブル213に登録する(ステップS1226)。図9の情報管理テーブルの場合、中継状況は“受付済み”に設定され、処理結果番号は“−1”に設定される。
次に、あらかじめ決められた遅延メッセージを用いて、処理要求の識別子を含む回答メッセージを生成し、利用者端末202に送信する(ステップS1227)。これを受けて、利用者端末202は、受信した回答メッセージをディスプレイ1202の画面上に表示し(ステップS1212)、待機状態となる。
システムの管理者は、管理端末203の入力装置1203から、あらかじめ決められた遅延時間の指定、中継停止/再開の指示、および単位時間当たりの処理要求件数の指定を入力する(ステップS1241)。
中継時間調整部214は、情報管理テーブル213から処理要求のデータを読み出し(ステップS1232)、処理装置204の負荷状況を検知して、管理者により指定された遅延時間および単位時間当たりの処理要求件数と、管理者からの中継停止/再開の指示と、検知された負荷状況等の情報に基づいて、中継時間を調整し、中継時刻を決定する(ステップS1233)。
そして、中継状況が“受付済み”となっている処理要求を受付日時順に処理要求ファイル217から読み出して、順次、処理装置204に中継送信し(ステップS1234)、中継した処理要求の中継状況を“処理中”に変更する(ステップS1235)。
処理装置204は、遅延ストレージ装置201からの処理要求を受け付け(ステップS1251)、要求された処理を実行し(ステップS1252)、処理結果を回答する(ステップS1253)。
処理結果受付部215は、処理装置204からの処理結果を受け付け(ステップS1236)、処理結果格納部216の処理結果ファイル218に登録する(ステップS1237)。このとき、処理結果の受付日時が処理結果ファイル218の処理結果テーブルに登録される。
また、処理結果受付部215は、情報管理テーブル213に処理結果ファイルに関する情報を登録する(ステップS1238)。ここでは、情報管理テーブル213の中継状況が“結果受付済み”に変更され、処理結果番号が“−1”から実際の処理結果番号に変更される。
遅延ストレージ装置201から、処理要求の中継に遅延がある旨の回答メッセージを受け取った利用者は、遅延ストレージ装置201に対して、後で改めて処理結果を要求する。このとき、利用者は、入力装置1201から処理結果要求を入力して、それを遅延ストレージ装置201に送信する(ステップS1213)。これにより、回答メッセージに含まれていた処理要求の識別子が、遅延ストレージ装置201に送信される。
処理要求受付部211は、その処理結果要求を受け付け(ステップS1228)、情報管理テーブル213を参照して、受信した識別子に対応する処理要求の中継状況を確認し(ステップS1229)、処理結果ファイル218に処理結果が格納されているか否かを判定する(ステップS1230)。
この時点で、処理要求が既に処理装置204に中継され、その結果が処理結果ファイル218に格納されていれば(中継状況が“結果受付済み”であれば)、その処理結果を読み出して利用者端末202に送信する(ステップS1231)。これを受けて、利用者端末202は、受信した処理結果をディスプレイ1202の画面上に表示する(ステップS1214)。
まだ処理要求が中継されていない(中継状況が“受付済み”である)か、あるいは処理要求は中継されたが処理結果を受け付けていない(中継状況が“処理中”である)場合は、処理要求受付部211は、その旨の回答メッセージを生成して、利用者端末202に送信する(ステップS1227)。
また、処理装置204から処理結果が返され、その後一定時間おいても利用者から処理結果の要求がなかった場合には、処理結果格納部216は、記憶容量に応じてその処理結果を削除することもできる。この場合、処理結果格納部216は、削除したことを示す情報を情報管理テーブル213に登録する。ここでは、情報管理テーブル213の中継状況が“結果削除済み”に変更される。
同じ処理要求が2回繰り返して処理されても問題がない場合には、既に削除された処理結果に関する処理結果要求が利用者からあった際に、その処理要求を再び処理装置204に中継することも可能である。この場合、遅延ストレージ装置201は、情報管理テーブル213を参照して、その処理要求を処理要求ファイル217から読み出し、処理装置204に改めて中継送信することで、処理結果を再び受け取ることができる。
管理者は、管理端末203から、処理装置204に対する処理要求の再実行に関する条件を設定しておき、遅延ストレージ装置201は、その条件に基づいて、処理要求の再実行に問題があるか否かを判断し、条件を満たす処理要求を再び処理装置204に中継する。そして、処理結果受付部215は、その処理結果を処理結果ファイル218に格納し、処理要求受付部211は、処理結果を利用者端末202に送信する。
ステップS1223において処理要求の中継に遅延がなければ、中継時間調整部214は、ステップS1234以降の処理を行い、処理要求受付部211は、ステップS1229以降の処理を行う。この場合、処理結果受付部215が受け付けた処理結果が、そのまま利用者端末202に送信される。
図13は、中継時間調整部214による中継時間調整処理のフローチャートである。図13のステップS1301の処理は、図12のステップS1241の処理と同様であり、図13のステップS1311〜S1320の処理は、図12のステップS1232〜S1234の処理に対応している。
中継時間調整部214は、情報管理テーブル213から処理要求のデータを読み出し(ステップS1311)、処理装置204の負荷状況を確認する(ステップS1312)。そして、情報管理テーブル213から読み出した情報に基づいて、処理装置204に処理要求を中継する。このとき、以下の4つの中継条件を考慮する(ステップS1313〜S1318)。
(1)単位時間当たりの処理要求件数
後段の処理装置の処理性能に応じてあらかじめ決められた一定時間当たりの処理件数を越えないように処理要求を中継する。
(2)指定された遅延時間
利用者から受け付けた処理要求の受付日時から、あらかじめ指定された遅延時間が経過した後に、処理要求を中継する。
(3)処理装置204の負荷状況
あらかじめ決められた閾値を越える負荷が処理装置204にかかっている場合に中継を遅延させる。
(4)中継停止/再開の指示
管理者からの指示に基づいて、明示的に遅延時間を指定することなく、処理要求の中継を停止、あるいは再開する。中継を停止している間は、処理要求の中継を遅延させる。
まず、処理装置204の負荷が閾値を越えているか否かを判定する(ステップS1313)。負荷が閾値を越えていれば、中継待機(ステップS1320)の後でステップS1311以降の処理を繰り返す。
負荷が閾値を越えていなければ、次に、管理端末203からの指示状況を確認し(ステップS1314)、中継停止が指示されているか否かを判定する(ステップS1315)。中継停止が指示されていれば、中継待機(ステップS1320)の後でステップS1311以降の処理を繰り返す。
中継停止が指示されていなければ、次に、現在の単位時間当たりの処理要求件数を確認し(ステップS1316)、その単位時間当たりの処理要求件数が閾値を越えているか否かを判定する(ステップS1317)。閾値としては、管理者により指定された単位時間当たりの処理要求件数が用いられる。単位時間当たりの処理要求件数が閾値を越えていれば、中継待機(ステップS1320)の後でステップS1311以降の処理を繰り返す。
単位時間当たりの処理要求件数が閾値を越えていなければ、次に、処理要求の受付日時から指定された遅延時間が経過しているか否かを判定する(ステップS1318)。遅延時間が経過していなければ、中継待機(ステップS1320)の後でステップS1311以降の処理を繰り返す。そして、遅延時間が経過していれば、処理要求の中継を実行する(ステップS1319)。
図14は、処理要求受付部211による処理要求受付処理のフローチャートである。図14のステップS1401およびS1402の処理は、図12のステップS1211およびS1212の処理と同様であり、図14のステップS1411〜S1416の処理は、図12のステップS1221〜S1226の処理と同様である。
また、図14のステップS1423の処理は、図12のステップS1234の処理に対応しており、図14のステップS1417〜S1422およびステップS1424〜S1429の処理は、図12のステップS1227の処理に対応している。
処理要求受付部211は、中継時間調整部214による処理要求の中継が遅延している場合、利用者に対して処理要求の中継が遅延している旨のメッセージを回答する。メッセージの内容は、あらかじめ決められており、メッセージ中に処理要求の識別子を含めることもできる。
また、上述した4つの中継条件に従って、その時点で中継が遅延している処理要求の件数と処理装置204の処理性能から、受け付けた処理要求が中継されるまでの予測待ち時間をメッセージの中に含めることもできる。ただし、中継停止が指示されている場合等は、中継再開時刻が特に指定されていない限り、待ち時間を予測することはできない。
4つの中継条件に従って回答メッセージを生成する場合、処理要求受付部211は、まず、中継時間調整部214から中継遅延理由を受け取る(ステップS1417)。そして、中継遅延理由が中継停止が指示されているためであるか否かを判定する(ステップS1418)。中継遅延理由が中継停止が指示されているためであれば、中継停止の遅延メッセージを生成し(ステップS1424)、それを用いて処理要求の識別子を含む回答メッセージを生成して、利用者端末202に送信する(ステップS1422)。
中継遅延理由が中継停止が指示されているためでなければ、次に、中継遅延理由が処理装置204の負荷が閾値を越えているためであるか否かを判定する(ステップS1419)。中継遅延理由が処理装置204の負荷が閾値を越えているためであれば、処理装置204の負荷超過の遅延メッセージを生成し(ステップS1425)、ステップS1422の処理を行う。
中継遅延理由が処理装置204の負荷が閾値を越えているためでなければ、次に、中継遅延理由が単位時間当たりの処理要求件数が閾値を越えているためであるか否かを判定する(ステップS1420)。中継遅延理由が単位時間当たりの処理要求件数が閾値を越えているためであれば、中継待機中の処理要求の件数と処理装置204の処理性能から中継予定時刻を予測し(ステップS1426)、その中継予定時刻を含む、処理要求件数超過の遅延メッセージを生成して(ステップS1427)、ステップS1422の処理を行う。
中継遅延理由が単位時間当たりの処理要求件数が閾値を越えているためでなければ、次に、中継遅延理由が遅延時間が指定されているためであるか否かを判定する(ステップS1421)。中継遅延理由が遅延時間が指定されているためであれば、処理要求の受付日時と指定された遅延時間から中継予定時刻を予測し(ステップS1428)、その中継予定時刻を含む、遅延時間指定の遅延メッセージを生成して(ステップS1429)、ステップS1422の処理を行う。
中継遅延理由が遅延時間が指定されているためでなければ、処理要求の識別子を含む適当な回答メッセージを生成して、利用者端末202に送信する(ステップS1422)。
図15は、処理要求受付部211による処理結果要求受付処理と、その処理に関連する処理のフローチャートである。図15のステップS1511およびS1512の処理は、図12のステップS1213およびS1214の処理と同様であり、図15のステップS1521〜S1524の処理は、図12のステップS1228〜S1231の処理と同様である。
また、図15のステップS1541〜S1545の処理は、図12のステップS1234〜S1238の処理と同様であり、図15のステップS1551〜S1553の処理は、図12のステップS1251〜S1253の処理と同様である。
処理結果格納部216は、情報管理テーブル213を参照して、中継状況が“結果受付済み”の処理要求の処理結果番号を取得し、その番号をキーとして処理結果ファイル218を参照する(ステップS1561)ことで、処理結果の受付日時から一定時間が経過した時間切れの処理結果があるか否かを判定する(ステップS1562)。時間切れの処理結果がなければ、ステップS1561以降の処理を繰り返す。
時間切れの処理結果があれば、処理結果ファイル218からそれを削除し(ステップS1563)、情報管理テーブル213の対応する処理要求の中継状況を、“結果削除済み”に変更する(ステップS1564)。そして、ステップS1561以降の処理を繰り返す。
処理要求の中継に遅延がある場合、利用者は処理要求受付部211を通じて、その旨の回答メッセージ1501を受け取る。回答メッセージ1501に処理要求の識別子が含まれている場合、利用者は後で改めて、その識別子を含む処理結果要求を送信することで、先に行った処理要求の処理結果を受け取ることができる。
ステップS1523において処理結果が格納されていない(中継状況が“結果受付済み”でない)場合、処理要求受付部211は、処理結果が時間切れで削除されている(中継状況が“結果削除済み”である)か否かを判定する(ステップS1525)。
処理結果が削除されていれば、その旨を示す時間切れ削除メッセージを生成して、利用者端末202に回答メッセージとして送信する(ステップS1526)。処理結果が削除されていなければ、中継処理遅延メッセージを生成して、利用者端末202に回答メッセージとして送信する(ステップS1527)。
処理結果が時間切れで削除されている場合、前述した方法で自動的に処理の再実行を行う他に、利用者に再実行の要否を選択させることも可能である。この場合、時間切れ削除メッセージの中に、処理要求の識別子と、利用者に対して再実行の要否を確認するメッセージを含めておく。
このような時間切れ削除メッセージ1502を受け取った利用者は、処理の再実行を依頼するか否かを選択し(ステップS1513)、利用者が再実行の依頼を選択しなければ、利用者端末202は処理を終了する。
利用者が再実行の依頼を選択すれば、利用者端末202は、時間切れ削除メッセージ1502に含まれる処理要求の識別子を含む再実行要求を、遅延ストレージ装置201に送信する(ステップS1514)。
処理要求受付部211は、再実行要求を受け付け(ステップS1528)、情報管理テーブル213を参照して、再実行要求に含まれる処理要求の識別子に対応する処理要求を、処理要求ファイル217から読み出す(ステップS1529)。そして、再実行要求に含まれる処理要求と読み出した処理要求が同じものであることを確認する。
次に、情報管理テーブル213の中継状況を“結果削除済み”から“受付済み”に変更する(ステップS1530)。これにより、中継時間調整部214は、その処理要求を中継待ちの処理要求であると認識するので、この処理要求は自動的に処理装置204に中継される。
次に、中継が遅延している旨を示す遅延メッセージを生成して、利用者端末202に送信する(ステップS1531)。この場合の遅延メッセージの生成方法については、図14と同様である。利用者端末202は、受信した遅延メッセージをディスプレイ1202の画面上に表示する(ステップS1515)。
次に、図16から図19までを参照しながら、インターネット上における遅延ストレージシステムの運用方法および構成について説明する。
図16は、遅延ストレージ装置を一種のアプライアンスサーバとしてWebサーバの前段に配置することで、利用者からの処理要求をWebサーバに中継する構成を示している。図16の遅延ストレージ装置201、利用者端末202、およびWebサーバ1602は、それぞれ独立したコンピュータにより構成され、インターネット1601に接続されている。このうち、Webサーバ1602は、図2の処理装置204に対応する。利用者端末202は、Webブラウザ1611を含み、Webサーバ1602は、Webコンテンツ1612を格納したディスク装置を含む。
例えば、Webサーバ1602の処理性能が、1分間に1万件の処理要求を処理できるというものである場合、管理者は、遅延ストレージ装置201に接続された管理端末203から、処理要求の中継が1分間に1万件を越えないように指定する。
例えば、新製品の予約販売や、スポーツの試合のチケットの予約等で、予約受け付け開始と同時に一斉に予約処理の要求が集中し、Webサーバ1602で処理しきれなくなり、処理が滞ってしまうような場合に、このような運用方法が有効となる。
遅延ストレージ装置201自体が行う処理は、利用者端末202からの処理要求を受け付けて格納することと、処理が遅延している旨のメッセージを利用者端末202に回答することだけであるので、実際のWebサーバ1602が行う予約処理に比べて、計算機システムへの負荷は小さくなる。このため、Webサーバ1602に比べて、単位時間当たりにより多くの処理要求を処理できることが期待される。図16における処理の手順は以下の通りである。
(1)遅延ストレージ装置201は、利用者端末202からの処理要求を受け付ける。
(2)処理が遅延している旨の遅延メッセージ(例えば、図4、5、6のような遅延メッセージ)を利用者端末202に返す。
(3)指定された単位時間当たりの処理要求件数を越えないように遅延時間を調整して、受け付けた処理要求をWebサーバ1602に中継する。
(4)Webサーバ1602は、中継された処理要求を順次処理し、その結果を遅延ストレージ装置201に返す。遅延ストレージ装置201は、返された処理結果を処理結果ファイル218に格納する。
(5)利用者端末202は、遅延メッセージに含まれる、先の処理要求の識別子を用いて、遅延ストレージ装置201に対して処理結果を要求する。
(6)遅延ストレージ装置201は、利用者端末202に処理結果を返す。
一般に、利用者は処理要求に対する回答が来ないまま待たされると、処理を中断して、再び処理要求を送信する傾向がある。このため、遅延ストレージ装置201を持たない構成の場合、Webサーバ1602の負荷は、中断と再要求を繰り返す処理要求によって、実際の処理要求の負荷と比べてますます高くなってしまう。また、利用者が自分の要求した予約が受け付けられたのかどうか分からずに処理要求を再送すると、多重に処理を要求してしまうこともあり得る。
これに対して、遅延ストレージ装置201を利用者端末202とWebサーバ1602の間に配置し、処理要求を受け付けた旨のメッセージを利用者に迅速に返すようにすれば、このような問題が解決される。
図17は、図16と同様の構成で、Webサーバ1602のディスク装置に障害が発生し、その交換のためにWebサーバ1602の動作を1時間停止するような運用方法を示している。
この場合、管理者は、管理端末203から、処理要求の中継を1時間遅延させる指示を行うことで、利用者端末202から受信した処理要求を遅延ストレージ装置201に一時的に蓄積させる。図17における(1)および(4)〜(6)の処理は、図16と同様である。(2)および(3)の処理は、以下のようになる。
(2)処理が遅延している旨の遅延メッセージ(例えば、図7のような遅延メッセージ)を利用者端末202に返す。
(3)指定された遅延時間が経過した後に、受け付けた処理要求をWebサーバ1602に中継する。
図17において遅延ストレージ装置201がない構成の場合、利用者は停止しているWebサーバ1602に処理要求を送ったとしても、回答がない状態になるか、あるいは、処理再開後も自分の送った処理要求が実行されないため、処理の再開を待って再要求を行う必要がある。
これに対して、遅延ストレージ装置201を利用者端末202とWebサーバ1602の間に配置することで、利用者に対して処理要求が遅延している原因と結果が得られる予定時刻を伝えることが可能となる。さらに、利用者の処理要求自体は遅延ストレージ装置201に蓄積されているため、Webサーバ1602の処理再開後に、処理要求を順次処理することができる。
ところで、遅延ストレージ装置201とWebサーバ1602の配置方法としては、これらを同一のコンピュータ上に配置する方法と互いに異なるコンピュータ上に配置する方法とが考えられる。
図18は、前者の配置方法による構成を示している。この構成では、遅延ストレージ装置201、管理端末203、およびWebサーバ1602の機能が同一のコンピュータにより実現され、このコンピュータは遅延中継機能付きWebサーバ1801としてインターネット1601に接続される。
この場合、利用者からは遅延ストレージ装置201とWebサーバ1602が一体に見えるため、従来のWebサーバに対して送信していた処理要求とまったく同じ処理要求を送信するだけで、その受付と中継を遅延ストレージ装置201に代行させることができる。
図19は、後者の配置方法による構成を示している。この構成は、既にWebサーバ1602が稼動している状態で、Webサーバ1602から独立したコンピュータ上に遅延ストレージ装置201を配置し、利用者からWebサーバ1602宛てに出されていた処理要求を遅延ストレージ装置201を経由して中継するような場合に有効である。
インターネット1601を用いた通信サービスの場合、利用者端末202からWebサーバ1602への処理要求は、通常、DNSと呼ばれる名前解決システムによりWebサーバ1602の名前とネットワーク上のアドレスとを置き換えることで、Webサーバ1602に送信される。
遅延ストレージ装置201を経由してWebサーバ1602に処理要求を中継する場合、DNS1901上で管理されているWebサーバ1602のエントリを遅延ストレージ装置201のそれに置き換えることで、利用者端末202から見たWebサーバ1602のアドレスをすりかえることができる。この方法により、利用者端末202からWebサーバ1602への処理要求は、そのまま遅延ストレージ装置201を経由してWebサーバ1602に中継することができる。図19における処理の手順は以下の通りである。
(1)管理者は、遅延ストレージ装置201のアドレスを、Webサーバ1602の名前でDNS1901に登録する。
(2)利用者端末202からDNS1901へ、Webサーバ1602のアドレスを問い合わせる。
(3)DNS1901から利用者端末202へ、遅延ストレージ装置201のアドレスを回答する。
(4)利用者端末202は、回答されたアドレスを用いて、Webサーバ1602の名前をアクセス先として遅延ストレージ装置201にアクセスする。
図2の遅延ストレージ装置201、利用者端末202、管理端末203、および処理装置204は、例えば、図20に示すような情報処理装置(コンピュータ)を用いて構成することができる。図20の情報処理装置は、CPU(中央処理装置)2001、メモリ2002、入力装置2003、出力装置2004、外部記憶装置2005、媒体駆動装置2006、およびネットワーク接続装置2007を備え、それらはバス2008により互いに接続されている。
メモリ2002は、例えば、ROM(read only memory)、RAM(random access memory)等を含み、処理に用いられるプログラムおよびデータを格納する。CPU2001は、メモリ2002を利用してプログラムを実行することにより、必要な処理を行う。
図2の処理要求受付部211、処理要求格納部212、中継時間調整部214、処理結果受付部215、および処理結果格納部216は、メモリ2002に格納されたプログラムに対応する。
入力装置2003は、例えば、キーボード、ポインティングデバイス、タッチパネル等であり、オペレータ(利用者や管理者)からの指示や情報の入力に用いられる。出力装置2004は、例えば、ディスプレイ、プリンタ、スピーカ等であり、オペレータへの問い合わせや処理結果の出力に用いられる。図12の入力装置1201および1203は、入力装置2003に対応し、図12のディスプレイ1202は、出力装置2004に対応する。
外部記憶装置2005は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。情報処理装置は、この外部記憶装置2005に、上記プログラムおよびデータを格納しておき、必要に応じて、それらをメモリ2002にロードして使用する。外部記憶装置2005は、図2の情報管理テーブル213、処理要求ファイル217、処理結果ファイル218、および保存ファイル221を格納するためにも用いられる。
媒体駆動装置2006は、可搬記録媒体2009を駆動し、その記録内容にアクセスする。可搬記録媒体2009は、メモリカード、フレキシブルディスク、CD−ROM(compact disk read only memory)、光ディスク、光磁気ディスク等の任意のコンピュータ読み取り可能な記録媒体である。オペレータは、この可搬記録媒体2009に上記プログラムおよびデータを格納しておき、必要に応じて、それらをメモリ2002にロードして使用する。
ネットワーク接続装置2007は、LAN(local area network)、インターネット等の任意の通信ネットワークに接続され、通信に伴うデータ変換を行う。情報処理装置は、必要に応じて、上記プログラムおよびデータを外部の装置からネットワーク接続装置2007を介して受け取り、それらをメモリ2002にロードして使用する。
図21は、図20の情報処理装置にプログラムおよびデータを供給することのできるコンピュータ読み取り可能な記録媒体を示している。可搬記録媒体2009やサーバ2101のデータベース2103に格納されたプログラムおよびデータは、情報処理装置2102のメモリ2002にロードされる。サーバ2101は、そのプログラムおよびデータを搬送する搬送信号を生成し、ネットワーク上の任意の伝送媒体を介して情報処理装置2102に送信する。CPU2001は、そのデータを用いてそのプログラムを実行し、必要な処理を行う。
後段の処理装置では、通常、実質的な処理にかかる時間と処理の受付や回答にかかる時間の和によって単位時間当たりの処理件数の上限が決まっている。したがって、その前段に利用者からの処理要求を中継する装置を配置し、その装置により後段の処理装置の処理件数の上限を越えないように単位時間当たりの処理要求件数を調整することで、処理装置のあふれを防ぐことができる。
本実施形態の遅延ストレージ装置は、利用者からの処理要求を一時的に蓄積するバッファリング装置として用いられ、処理装置の性能に応じて処理要求の転送速度を制御する。この遅延ストレージ装置内には、処理要求を一時的に格納する記憶機構と、処理要求が到着した時刻を記録する機構が設けられる。処理要求の到着時刻を処理要求と併せて記録しておくことで、到着した処理要求を後段の処理装置に出力する際の順序を保証することができ、また、指定された遅延時間後に、到着した処理要求を指定された時間間隔や頻度で中継することが可能となる。
また、遅延ストレージ装置は、要求元から処理要求を受け付けた際に、処理要求を一意に識別するための識別子とあらかじめ決められた形式の回答を要求元に返すことができる。これにより、処理の要求元は、後で、その処理要求が後段の処理装置に出力されたかどうかをこの識別子を用いて遅延ストレージ装置に問い合わせたり、処理装置による処理結果を受け取ったりすることが可能となる。
例えば、Webサーバ等の処理装置の前段に遅延ストレージ装置を配置することで、Webサーバの性能上の要件に応じて、送られてくる処理要求の転送速度を制御することができる。例えば、処理要求の転送速度が毎秒1千トランザクションであって、Webサーバの処理速度が毎秒500トランザクションであった場合に、Webサーバの処理速度に合わせて処理要求の転送速度を遅延させることが可能となる。
また、Webサーバの運用中にディスク装置等に障害が発生した場合でも、システムの運用を停止することなく、遅延ストレージ装置に処理要求を一時的に格納していき、その間にディスク装置の交換を行うことで、システムの運用を継続させることが可能となる。
図2は、このような遅延ストレージ装置を用いた遅延ストレージシステムの構成図である。図2の遅延ストレージシステムは、遅延ストレージ装置201、利用者端末202、管理端末203、および処理装置204からなる。実線の矢印は処理要求時の情報の流れを示しており、破線の矢印は処理結果要求時の情報の流れを示している。
利用者端末202は、利用者からの処理要求の入力と処理結果の表示に用いられ、管理端末203は、管理者による遅延時間の指定、中継停止/再開の指示、および単位時間当たりの処理要求件数の指定に用いられる。処理装置204は、遅延ストレージ装置201から受け取った処理要求に従って処理を実行し、処理結果を返す。
遅延ストレージ装置201は、処理要求受付部211、処理要求格納部212、情報管理テーブル213、中継時間調整部214、処理結果受付部215、および処理結果格納部216を備え、利用者端末202からの処理要求を後段の処理装置204に中継する。
処理要求受付部211は、利用者端末202からの処理要求を受け付け、受け付けた処理要求を識別する識別子と受付日時とを処理要求に付与し、利用者に対するメッセージを生成する。処理要求格納部212は、受け付けた処理要求を処理要求ファイル217に一時的に格納する。情報管理テーブル213は、処理要求の識別子、処理要求の受付日時、処理要求の中継状況、および処理要求と処理結果を結びつける管理情報を格納する。
中継時間調整部214は、格納された処理要求を処理装置204に中継する際に、時間的な調整を行ってから処理要求を送出する。処理結果受付部215は、処理装置204から処理結果を受け取り、その処理結果の受付日時を発行する。処理結果格納部216は、受け取った処理結果に受付日時を付与して、処理結果ファイル218に一時的に格納する。
中継時間調整部214は、処理装置204の負荷状況を検知し、検知した負荷状況や、管理端末203から指定された遅延時間および単位時間当たりの処理要求件数に応じて、中継のタイミングを調整する。さらに、中継時間調整部214は、管理端末203からの指示により中継の停止や再開を制御する。このような中継時間調整部214を設けることで、処理装置204のあふれを防ぐことが可能となる。
処理要求受付部211は、処理要求の中継に遅延がある際に、処理装置204の代わりに、処理に遅延が発生している旨のメッセージ(遅延メッセージ)を生成して利用者に回答する。また、受け付けた処理要求の識別子を利用者端末202に対して発行し、利用者端末202が後でその識別子に基づいて改めて処理結果を要求した際に、処理装置204からの処理結果を回答する。
利用者端末202は、遅延ストレージ装置201から受け取った遅延メッセージや処理要求の識別子を含むクッキーを、ローカルな保存ファイル221に保存しておき、後で処理結果を要求する際に読み出して使用する。このようなメッセージと識別子を用いることで、利用者は、処理要求の中継に遅延がある場合にも、待たされることなしにその旨を知ることができ、後で改めて処理結果を受け取ることも可能となる。
図3は、利用者からの処理要求の例を示している。この例では、処理装置204としてWebサーバを用いたチケットの予約受け付けシステムにおける処理要求が示されている。利用者端末202上で、利用者が予約フォーム301に名前311とコース番号312を入力し、予約ボタン313をクリックすると、Webブラウザは、入力された情報をWebサーバで処理可能な処理要求302に変換する。
図4から図6までは、処理要求の中継に遅延が発生する場合に利用者に返される遅延メッセージの例を示している。
図4は、遅延メッセージを保存する場合の例を示している。この例では、遅延メッセージ401は、HTML(Hyper Text Markup Language)形式の文書として利用者端末202に送られる。遅延メッセージ401には、サーバ負荷のため処理が遅延しており、終了まで30分ほどかかる旨を示すテキストと、遅延ストレージ装置201が発行した、処理結果要求のためのリンク411とが含まれている。リンク411には、処理要求の識別子(ID=5678)が付加されている。
利用者がメッセージの保存ボタン412をクリックすると、利用者端末202は、遅延メッセージ401を保存ファイル221に保存する。そして、遅延メッセージ401に書かれた遅延時間を経た後に利用者が処理結果を要求する際に、利用者端末202は、保存した遅延メッセージ401を保存ファイル221から読み出して、画面上に表示する。このとき、利用者は、リンク411をクリックすることで、遅延ストレージ装置201に対して処理結果を要求することができる。
図5は、クッキーを用いる場合の例を示している。一般に、利用者端末202のWebブラウザには、サーバからの指示に基づいて識別子等の情報を自動的に利用者端末側の保存ファイル221に保存しておく、クッキーと呼ばれる機能が備わっている。この機能を用いることで、遅延ストレージ装置201から利用者端末202に送付される遅延メッセージ501の中に、処理要求の識別子をクッキー511として含ませておくことができる。
利用者端末202は、受け付けたクッキー511を自動的に保存ファイル221に保存する。そして、遅延メッセージ501に書かれた遅延時間を経た後に利用者が処理結果を要求する際に、利用者は、例えば、再度、予約フォーム301の画面を呼び出して、予約ボタン313をクリックする。これにより、遅延ストレージ装置201に処理要求が送られるが、このとき保存ファイル221に保存されているクッキー511が自動的に読み出され、処理要求とともに遅延ストレージ装置201に送られる。
遅延ストレージ装置201は、クッキー511を読み出すことで、割り当てられた処理要求の識別子の有無を判定し、利用者端末側にクッキー511があれば、既に受け付けた予約であると判別する。そして、その識別子に基づいて予約確認フォーム502を利用者端末202に送付する。利用者は、予約確認フォーム502の画面に含まれる確認ボタン512をクリックすることで、遅延ストレージ装置201に対して処理結果を要求することができる。
図4および図5の方法は、遅延時間が長く、利用者端末202に遅延メッセージを表示したままにしておくことが困難な場合に有効である。これに対して、遅延時間が短く、遅延メッセージを表示したままにしておくことが容易であれば、表示された遅延メッセージの画面上に埋め込まれたリンクをクリックすることで、処理結果を要求することも可能である。
図6および図7は、このような遅延メッセージの例を示している。図6の遅延メッセージは、Webサーバの単位時間当たりの処理要求件数が閾値を越えたため処理が遅延している場合に、利用者端末202に送付される。この遅延メッセージには、処理要求の識別子を含む、処理結果を要求するためのリンク601が挿入されており、利用者は、リンク601をクリックすることで、遅延ストレージ装置201に対して処理結果を要求することができる。
図7の遅延メッセージは、Webサーバのメンテナンスのため処理が遅延している場合に、利用者端末202に送付される。この場合も、利用者は、図6の遅延メッセージと同様に、リンク701をクリックすることで、遅延ストレージ装置201に対して処理結果を要求することができる。
図8は、処理装置204から返される処理結果の例を示している。この例では、遅延ストレージ装置201が中継した処理要求がWebサーバで処理され、その結果として予約が完了したという処理結果801が返される。この処理結果801は、遅延ストレージ装置201の処理結果ファイル218に一旦格納され、利用者からの処理結果要求に応じて利用者端末202に送られ、Webブラウザにより結果表示802として表示される。
図9は、情報管理テーブル213のデータの例を示している。図9の情報管理テーブルには、処理要求毎に、処理要求識別子、処理要求番号、受付日時、中継状況、および処理結果番号が登録される。このうち、処理要求番号は、情報管理テーブル213のデータと処理要求ファイル217のデータを結びつけるために用いられ、処理結果番号は、情報管理テーブル213のデータと処理結果ファイル218のデータを結びつけるために用いられる。
また、中継状況としては、“受付済み”、“処理中”、“結果受付済み”、および“結果削除済み(不図示)”のいずれかが登録される。“受付済み”は、処理要求が登録済みであることを表し、“処理中”は、処理装置204が処理を実行中であることを表し、“結果受付済み”は、処理装置204からの処理結果が登録済みであることを表し、“結果削除済み”は、登録された処理結果が削除されたことを表す。“受付済み”、“処理中”、および“結果削除済み”の場合は、処理結果ファイルが登録されていないので、処理結果番号は“−1”に設定される。
図10は、処理要求ファイル217のデータの例を示している。図10の処理要求ファイルには、処理要求毎に、処理要求番号および処理要求がテーブル形式で登録される。
図11は、処理結果ファイル218のデータの例を示している。図11の処理結果ファイルは、処理結果テーブル1101と個々の処理結果を格納したファイル1102からなる。処理結果テーブル1101には、処理結果毎に、処理結果番号、処理結果受付日時、および処理結果ファイル名が登録される。処理結果ファイル名はファイル1102の名称であり、遅延ストレージ装置201は、処理結果テーブル1101を参照することで、ファイル1102を読み出すことができる。
次に、図12から図15までを参照しながら、図2の遅延ストレージシステムによる処理をより詳細に説明する。
図12は、図2の遅延ストレージシステムの全体処理のフローチャートである。利用者が利用者端末202の入力装置1201から処理要求を入力して、それを遅延ストレージ装置201に送信すると(ステップS1211)、処理要求受付部211は、その処理要求を受け付ける(ステップS1221)。
次に、処理要求受付部211は、情報管理テーブル213を参照して現在の処理要求遅延状況を確認し(ステップS1222)、処理要求の中継に遅延があるか否かを判定する(ステップS1223)。
処理要求の中継に遅延があれば、受け付けた処理要求を識別する識別子を発行し、要求を受け付けた日時を取得する(ステップS1224)。そして、処理要求を処理要求格納部212の処理要求ファイル217に登録し(ステップS1225)、識別子を受付日時とともに情報管理テーブル213に登録する(ステップS1226)。図9の情報管理テーブルの場合、中継状況は“受付済み”に設定され、処理結果番号は“−1”に設定される。
次に、あらかじめ決められた遅延メッセージを用いて、処理要求の識別子を含む回答メッセージを生成し、利用者端末202に送信する(ステップS1227)。これを受けて、利用者端末202は、受信した回答メッセージをディスプレイ1202の画面上に表示し(ステップS1212)、待機状態となる。
システムの管理者は、管理端末203の入力装置1203から、あらかじめ決められた遅延時間の指定、中継停止/再開の指示、および単位時間当たりの処理要求件数の指定を入力する(ステップS1241)。
中継時間調整部214は、情報管理テーブル213から処理要求のデータを読み出し(ステップS1232)、処理装置204の負荷状況を検知して、管理者により指定された遅延時間および単位時間当たりの処理要求件数と、管理者からの中継停止/再開の指示と、検知された負荷状況等の情報に基づいて、中継時間を調整し、中継時刻を決定する(ステップS1233)。
そして、中継状況が“受付済み”となっている処理要求を受付日時順に処理要求ファイル217から読み出して、順次、処理装置204に中継送信し(ステップS1234)、中継した処理要求の中継状況を“処理中”に変更する(ステップS1235)。
処理装置204は、遅延ストレージ装置201からの処理要求を受け付け(ステップS1251)、要求された処理を実行し(ステップS1252)、処理結果を回答する(ステップS1253)。
処理結果受付部215は、処理装置204からの処理結果を受け付け(ステップS1236)、処理結果格納部216の処理結果ファイル218に登録する(ステップS1237)。このとき、処理結果の受付日時が処理結果ファイル218の処理結果テーブルに登録される。
また、処理結果受付部215は、情報管理テーブル213に処理結果ファイルに関する情報を登録する(ステップS1238)。ここでは、情報管理テーブル213の中継状況が“結果受付済み”に変更され、処理結果番号が“−1”から実際の処理結果番号に変更される。
遅延ストレージ装置201から、処理要求の中継に遅延がある旨の回答メッセージを受け取った利用者は、遅延ストレージ装置201に対して、後で改めて処理結果を要求する。このとき、利用者は、入力装置1201から処理結果要求を入力して、それを遅延ストレージ装置201に送信する(ステップS1213)。これにより、回答メッセージに含まれていた処理要求の識別子が、遅延ストレージ装置201に送信される。
処理要求受付部211は、その処理結果要求を受け付け(ステップS1228)、情報管理テーブル213を参照して、受信した識別子に対応する処理要求の中継状況を確認し(ステップS1229)、処理結果ファイル218に処理結果が格納されているか否かを判定する(ステップS1230)。
この時点で、処理要求が既に処理装置204に中継され、その結果が処理結果ファイル218に格納されていれば(中継状況が“結果受付済み”であれば)、その処理結果を読み出して利用者端末202に送信する(ステップS1231)。これを受けて、利用者端末202は、受信した処理結果をディスプレイ1202の画面上に表示する(ステップS1214)。
まだ処理要求が中継されていない(中継状況が“受付済み”である)か、あるいは処理要求は中継されたが処理結果を受け付けていない(中継状況が“処理中”である)場合は、処理要求受付部211は、その旨の回答メッセージを生成して、利用者端末202に送信する(ステップS1227)。
また、処理装置204から処理結果が返され、その後一定時間おいても利用者から処理結果の要求がなかった場合には、処理結果格納部216は、記憶容量に応じてその処理結果を削除することもできる。この場合、処理結果格納部216は、削除したことを示す情報を情報管理テーブル213に登録する。ここでは、情報管理テーブル213の中継状況が“結果削除済み”に変更される。
同じ処理要求が2回繰り返して処理されても問題がない場合には、既に削除された処理結果に関する処理結果要求が利用者からあった際に、その処理要求を再び処理装置204に中継することも可能である。この場合、遅延ストレージ装置201は、情報管理テーブル213を参照して、その処理要求を処理要求ファイル217から読み出し、処理装置204に改めて中継送信することで、処理結果を再び受け取ることができる。
管理者は、管理端末203から、処理装置204に対する処理要求の再実行に関する条件を設定しておき、遅延ストレージ装置201は、その条件に基づいて、処理要求の再実行に問題があるか否かを判断し、条件を満たす処理要求を再び処理装置204に中継する。そして、処理結果受付部215は、その処理結果を処理結果ファイル218に格納し、処理要求受付部211は、処理結果を利用者端末202に送信する。
ステップS1223において処理要求の中継に遅延がなければ、中継時間調整部214は、ステップS1234以降の処理を行い、処理要求受付部211は、ステップS1229以降の処理を行う。この場合、処理結果受付部215が受け付けた処理結果が、そのまま利用者端末202に送信される。
図13は、中継時間調整部214による中継時間調整処理のフローチャートである。図13のステップS1301の処理は、図12のステップS1241の処理と同様であり、図13のステップS1311〜S1320の処理は、図12のステップS1232〜S1234の処理に対応している。
中継時間調整部214は、情報管理テーブル213から処理要求のデータを読み出し(ステップS1311)、処理装置204の負荷状況を確認する(ステップS1312)。そして、情報管理テーブル213から読み出した情報に基づいて、処理装置204に処理要求を中継する。このとき、以下の4つの中継条件を考慮する(ステップS1313〜S1318)。
(1)単位時間当たりの処理要求件数
後段の処理装置の処理性能に応じてあらかじめ決められた一定時間当たりの処理件数を越えないように処理要求を中継する。
(2)指定された遅延時間
利用者から受け付けた処理要求の受付日時から、あらかじめ指定された遅延時間が経過した後に、処理要求を中継する。
(3)処理装置204の負荷状況
あらかじめ決められた閾値を越える負荷が処理装置204にかかっている場合に中継を遅延させる。
(4)中継停止/再開の指示
管理者からの指示に基づいて、明示的に遅延時間を指定することなく、処理要求の中継を停止、あるいは再開する。中継を停止している間は、処理要求の中継を遅延させる。
まず、処理装置204の負荷が閾値を越えているか否かを判定する(ステップS1313)。負荷が閾値を越えていれば、中継待機(ステップS1320)の後でステップS1311以降の処理を繰り返す。
負荷が閾値を越えていなければ、次に、管理端末203からの指示状況を確認し(ステップS1314)、中継停止が指示されているか否かを判定する(ステップS1315)。中継停止が指示されていれば、中継待機(ステップS1320)の後でステップS1311以降の処理を繰り返す。
中継停止が指示されていなければ、次に、現在の単位時間当たりの処理要求件数を確認し(ステップS1316)、その単位時間当たりの処理要求件数が閾値を越えているか否かを判定する(ステップS1317)。閾値としては、管理者により指定された単位時間当たりの処理要求件数が用いられる。単位時間当たりの処理要求件数が閾値を越えていれば、中継待機(ステップS1320)の後でステップS1311以降の処理を繰り返す。
単位時間当たりの処理要求件数が閾値を越えていなければ、次に、処理要求の受付日時から指定された遅延時間が経過しているか否かを判定する(ステップS1318)。遅延時間が経過していなければ、中継待機(ステップS1320)の後でステップS1311以降の処理を繰り返す。そして、遅延時間が経過していれば、処理要求の中継を実行する(ステップS1319)。
図14は、処理要求受付部211による処理要求受付処理のフローチャートである。図14のステップS1401およびS1402の処理は、図12のステップS1211およびS1212の処理と同様であり、図14のステップS1411〜S1416の処理は、図12のステップS1221〜S1226の処理と同様である。
また、図14のステップS1423の処理は、図12のステップS1234の処理に対応しており、図14のステップS1417〜S1422およびステップS1424〜S1429の処理は、図12のステップS1227の処理に対応している。
処理要求受付部211は、中継時間調整部214による処理要求の中継が遅延している場合、利用者に対して処理要求の中継が遅延している旨のメッセージを回答する。メッセージの内容は、あらかじめ決められており、メッセージ中に処理要求の識別子を含めることもできる。
また、上述した4つの中継条件に従って、その時点で中継が遅延している処理要求の件数と処理装置204の処理性能から、受け付けた処理要求が中継されるまでの予測待ち時間をメッセージの中に含めることもできる。ただし、中継停止が指示されている場合等は、中継再開時刻が特に指定されていない限り、待ち時間を予測することはできない。
4つの中継条件に従って回答メッセージを生成する場合、処理要求受付部211は、まず、中継時間調整部214から中継遅延理由を受け取る(ステップS1417)。そして、中継遅延理由が中継停止が指示されているためであるか否かを判定する(ステップS1418)。中継遅延理由が中継停止が指示されているためであれば、中継停止の遅延メッセージを生成し(ステップS1424)、それを用いて処理要求の識別子を含む回答メッセージを生成して、利用者端末202に送信する(ステップS1422)。
中継遅延理由が中継停止が指示されているためでなければ、次に、中継遅延理由が処理装置204の負荷が閾値を越えているためであるか否かを判定する(ステップS1419)。中継遅延理由が処理装置204の負荷が閾値を越えているためであれば、処理装置204の負荷超過の遅延メッセージを生成し(ステップS1425)、ステップS1422の処理を行う。
中継遅延理由が処理装置204の負荷が閾値を越えているためでなければ、次に、中継遅延理由が単位時間当たりの処理要求件数が閾値を越えているためであるか否かを判定する(ステップS1420)。中継遅延理由が単位時間当たりの処理要求件数が閾値を越えているためであれば、中継待機中の処理要求の件数と処理装置204の処理性能から中継予定時刻を予測し(ステップS1426)、その中継予定時刻を含む、処理要求件数超過の遅延メッセージを生成して(ステップS1427)、ステップS1422の処理を行う。
中継遅延理由が単位時間当たりの処理要求件数が閾値を越えているためでなければ、次に、中継遅延理由が遅延時間が指定されているためであるか否かを判定する(ステップS1421)。中継遅延理由が遅延時間が指定されているためであれば、処理要求の受付日時と指定された遅延時間から中継予定時刻を予測し(ステップS1428)、その中継予定時刻を含む、遅延時間指定の遅延メッセージを生成して(ステップS1429)、ステップS1422の処理を行う。
中継遅延理由が遅延時間が指定されているためでなければ、処理要求の識別子を含む適当な回答メッセージを生成して、利用者端末202に送信する(ステップS1422)。
図15は、処理要求受付部211による処理結果要求受付処理と、その処理に関連する処理のフローチャートである。図15のステップS1511およびS1512の処理は、図12のステップS1213およびS1214の処理と同様であり、図15のステップS1521〜S1524の処理は、図12のステップS1228〜S1231の処理と同様である。
また、図15のステップS1541〜S1545の処理は、図12のステップS1234〜S1238の処理と同様であり、図15のステップS1551〜S1553の処理は、図12のステップS1251〜S1253の処理と同様である。
処理結果格納部216は、情報管理テーブル213を参照して、中継状況が“結果受付済み”の処理要求の処理結果番号を取得し、その番号をキーとして処理結果ファイル218を参照する(ステップS1561)ことで、処理結果の受付日時から一定時間が経過した時間切れの処理結果があるか否かを判定する(ステップS1562)。時間切れの処理結果がなければ、ステップS1561以降の処理を繰り返す。
時間切れの処理結果があれば、処理結果ファイル218からそれを削除し(ステップS1563)、情報管理テーブル213の対応する処理要求の中継状況を、“結果削除済み”に変更する(ステップS1564)。そして、ステップS1561以降の処理を繰り返す。
処理要求の中継に遅延がある場合、利用者は処理要求受付部211を通じて、その旨の回答メッセージ1501を受け取る。回答メッセージ1501に処理要求の識別子が含まれている場合、利用者は後で改めて、その識別子を含む処理結果要求を送信することで、先に行った処理要求の処理結果を受け取ることができる。
ステップS1523において処理結果が格納されていない(中継状況が“結果受付済み”でない)場合、処理要求受付部211は、処理結果が時間切れで削除されている(中継状況が“結果削除済み”である)か否かを判定する(ステップS1525)。
処理結果が削除されていれば、その旨を示す時間切れ削除メッセージを生成して、利用者端末202に回答メッセージとして送信する(ステップS1526)。処理結果が削除されていなければ、中継処理遅延メッセージを生成して、利用者端末202に回答メッセージとして送信する(ステップS1527)。
処理結果が時間切れで削除されている場合、前述した方法で自動的に処理の再実行を行う他に、利用者に再実行の要否を選択させることも可能である。この場合、時間切れ削除メッセージの中に、処理要求の識別子と、利用者に対して再実行の要否を確認するメッセージを含めておく。
このような時間切れ削除メッセージ1502を受け取った利用者は、処理の再実行を依頼するか否かを選択し(ステップS1513)、利用者が再実行の依頼を選択しなければ、利用者端末202は処理を終了する。
利用者が再実行の依頼を選択すれば、利用者端末202は、時間切れ削除メッセージ1502に含まれる処理要求の識別子を含む再実行要求を、遅延ストレージ装置201に送信する(ステップS1514)。
処理要求受付部211は、再実行要求を受け付け(ステップS1528)、情報管理テーブル213を参照して、再実行要求に含まれる処理要求の識別子に対応する処理要求を、処理要求ファイル217から読み出す(ステップS1529)。そして、再実行要求に含まれる処理要求と読み出した処理要求が同じものであることを確認する。
次に、情報管理テーブル213の中継状況を“結果削除済み”から“受付済み”に変更する(ステップS1530)。これにより、中継時間調整部214は、その処理要求を中継待ちの処理要求であると認識するので、この処理要求は自動的に処理装置204に中継される。
次に、中継が遅延している旨を示す遅延メッセージを生成して、利用者端末202に送信する(ステップS1531)。この場合の遅延メッセージの生成方法については、図14と同様である。利用者端末202は、受信した遅延メッセージをディスプレイ1202の画面上に表示する(ステップS1515)。
次に、図16から図19までを参照しながら、インターネット上における遅延ストレージシステムの運用方法および構成について説明する。
図16は、遅延ストレージ装置を一種のアプライアンスサーバとしてWebサーバの前段に配置することで、利用者からの処理要求をWebサーバに中継する構成を示している。図16の遅延ストレージ装置201、利用者端末202、およびWebサーバ1602は、それぞれ独立したコンピュータにより構成され、インターネット1601に接続されている。このうち、Webサーバ1602は、図2の処理装置204に対応する。利用者端末202は、Webブラウザ1611を含み、Webサーバ1602は、Webコンテンツ1612を格納したディスク装置を含む。
例えば、Webサーバ1602の処理性能が、1分間に1万件の処理要求を処理できるというものである場合、管理者は、遅延ストレージ装置201に接続された管理端末203から、処理要求の中継が1分間に1万件を越えないように指定する。
例えば、新製品の予約販売や、スポーツの試合のチケットの予約等で、予約受け付け開始と同時に一斉に予約処理の要求が集中し、Webサーバ1602で処理しきれなくなり、処理が滞ってしまうような場合に、このような運用方法が有効となる。
遅延ストレージ装置201自体が行う処理は、利用者端末202からの処理要求を受け付けて格納することと、処理が遅延している旨のメッセージを利用者端末202に回答することだけであるので、実際のWebサーバ1602が行う予約処理に比べて、計算機システムへの負荷は小さくなる。このため、Webサーバ1602に比べて、単位時間当たりにより多くの処理要求を処理できることが期待される。図16における処理の手順は以下の通りである。
(1)遅延ストレージ装置201は、利用者端末202からの処理要求を受け付ける。
(2)処理が遅延している旨の遅延メッセージ(例えば、図4、5、6のような遅延メッセージ)を利用者端末202に返す。
(3)指定された単位時間当たりの処理要求件数を越えないように遅延時間を調整して、受け付けた処理要求をWebサーバ1602に中継する。
(4)Webサーバ1602は、中継された処理要求を順次処理し、その結果を遅延ストレージ装置201に返す。遅延ストレージ装置201は、返された処理結果を処理結果ファイル218に格納する。
(5)利用者端末202は、遅延メッセージに含まれる、先の処理要求の識別子を用いて、遅延ストレージ装置201に対して処理結果を要求する。
(6)遅延ストレージ装置201は、利用者端末202に処理結果を返す。
一般に、利用者は処理要求に対する回答が来ないまま待たされると、処理を中断して、再び処理要求を送信する傾向がある。このため、遅延ストレージ装置201を持たない構成の場合、Webサーバ1602の負荷は、中断と再要求を繰り返す処理要求によって、実際の処理要求の負荷と比べてますます高くなってしまう。また、利用者が自分の要求した予約が受け付けられたのかどうか分からずに処理要求を再送すると、多重に処理を要求してしまうこともあり得る。
これに対して、遅延ストレージ装置201を利用者端末202とWebサーバ1602の間に配置し、処理要求を受け付けた旨のメッセージを利用者に迅速に返すようにすれば、このような問題が解決される。
図17は、図16と同様の構成で、Webサーバ1602のディスク装置に障害が発生し、その交換のためにWebサーバ1602の動作を1時間停止するような運用方法を示している。
この場合、管理者は、管理端末203から、処理要求の中継を1時間遅延させる指示を行うことで、利用者端末202から受信した処理要求を遅延ストレージ装置201に一時的に蓄積させる。図17における(1)および(4)〜(6)の処理は、図16と同様である。(2)および(3)の処理は、以下のようになる。
(2)処理が遅延している旨の遅延メッセージ(例えば、図7のような遅延メッセージ)を利用者端末202に返す。
(3)指定された遅延時間が経過した後に、受け付けた処理要求をWebサーバ1602に中継する。
図17において遅延ストレージ装置201がない構成の場合、利用者は停止しているWebサーバ1602に処理要求を送ったとしても、回答がない状態になるか、あるいは、処理再開後も自分の送った処理要求が実行されないため、処理の再開を待って再要求を行う必要がある。
これに対して、遅延ストレージ装置201を利用者端末202とWebサーバ1602の間に配置することで、利用者に対して処理要求が遅延している原因と結果が得られる予定時刻を伝えることが可能となる。さらに、利用者の処理要求自体は遅延ストレージ装置201に蓄積されているため、Webサーバ1602の処理再開後に、処理要求を順次処理することができる。
ところで、遅延ストレージ装置201とWebサーバ1602の配置方法としては、これらを同一のコンピュータ上に配置する方法と互いに異なるコンピュータ上に配置する方法とが考えられる。
図18は、前者の配置方法による構成を示している。この構成では、遅延ストレージ装置201、管理端末203、およびWebサーバ1602の機能が同一のコンピュータにより実現され、このコンピュータは遅延中継機能付きWebサーバ1801としてインターネット1601に接続される。
この場合、利用者からは遅延ストレージ装置201とWebサーバ1602が一体に見えるため、従来のWebサーバに対して送信していた処理要求とまったく同じ処理要求を送信するだけで、その受付と中継を遅延ストレージ装置201に代行させることができる。
図19は、後者の配置方法による構成を示している。この構成は、既にWebサーバ1602が稼動している状態で、Webサーバ1602から独立したコンピュータ上に遅延ストレージ装置201を配置し、利用者からWebサーバ1602宛てに出されていた処理要求を遅延ストレージ装置201を経由して中継するような場合に有効である。
インターネット1601を用いた通信サービスの場合、利用者端末202からWebサーバ1602への処理要求は、通常、DNSと呼ばれる名前解決システムによりWebサーバ1602の名前とネットワーク上のアドレスとを置き換えることで、Webサーバ1602に送信される。
遅延ストレージ装置201を経由してWebサーバ1602に処理要求を中継する場合、DNS1901上で管理されているWebサーバ1602のエントリを遅延ストレージ装置201のそれに置き換えることで、利用者端末202から見たWebサーバ1602のアドレスをすりかえることができる。この方法により、利用者端末202からWebサーバ1602への処理要求は、そのまま遅延ストレージ装置201を経由してWebサーバ1602に中継することができる。図19における処理の手順は以下の通りである。
(1)管理者は、遅延ストレージ装置201のアドレスを、Webサーバ1602の名前でDNS1901に登録する。
(2)利用者端末202からDNS1901へ、Webサーバ1602のアドレスを問い合わせる。
(3)DNS1901から利用者端末202へ、遅延ストレージ装置201のアドレスを回答する。
(4)利用者端末202は、回答されたアドレスを用いて、Webサーバ1602の名前をアクセス先として遅延ストレージ装置201にアクセスする。
図2の遅延ストレージ装置201、利用者端末202、管理端末203、および処理装置204は、例えば、図20に示すような情報処理装置(コンピュータ)を用いて構成することができる。図20の情報処理装置は、CPU(中央処理装置)2001、メモリ2002、入力装置2003、出力装置2004、外部記憶装置2005、媒体駆動装置2006、およびネットワーク接続装置2007を備え、それらはバス2008により互いに接続されている。
メモリ2002は、例えば、ROM(read only memory)、RAM(random access memory)等を含み、処理に用いられるプログラムおよびデータを格納する。CPU2001は、メモリ2002を利用してプログラムを実行することにより、必要な処理を行う。
図2の処理要求受付部211、処理要求格納部212、中継時間調整部214、処理結果受付部215、および処理結果格納部216は、メモリ2002に格納されたプログラムに対応する。
入力装置2003は、例えば、キーボード、ポインティングデバイス、タッチパネル等であり、オペレータ(利用者や管理者)からの指示や情報の入力に用いられる。出力装置2004は、例えば、ディスプレイ、プリンタ、スピーカ等であり、オペレータへの問い合わせや処理結果の出力に用いられる。図12の入力装置1201および1203は、入力装置2003に対応し、図12のディスプレイ1202は、出力装置2004に対応する。
外部記憶装置2005は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。情報処理装置は、この外部記憶装置2005に、上記プログラムおよびデータを格納しておき、必要に応じて、それらをメモリ2002にロードして使用する。外部記憶装置2005は、図2の情報管理テーブル213、処理要求ファイル217、処理結果ファイル218、および保存ファイル221を格納するためにも用いられる。
媒体駆動装置2006は、可搬記録媒体2009を駆動し、その記録内容にアクセスする。可搬記録媒体2009は、メモリカード、フレキシブルディスク、CD−ROM(compact disk read only memory)、光ディスク、光磁気ディスク等の任意のコンピュータ読み取り可能な記録媒体である。オペレータは、この可搬記録媒体2009に上記プログラムおよびデータを格納しておき、必要に応じて、それらをメモリ2002にロードして使用する。
ネットワーク接続装置2007は、LAN(local area network)、インターネット等の任意の通信ネットワークに接続され、通信に伴うデータ変換を行う。情報処理装置は、必要に応じて、上記プログラムおよびデータを外部の装置からネットワーク接続装置2007を介して受け取り、それらをメモリ2002にロードして使用する。
図21は、図20の情報処理装置にプログラムおよびデータを供給することのできるコンピュータ読み取り可能な記録媒体を示している。可搬記録媒体2009やサーバ2101のデータベース2103に格納されたプログラムおよびデータは、情報処理装置2102のメモリ2002にロードされる。サーバ2101は、そのプログラムおよびデータを搬送する搬送信号を生成し、ネットワーク上の任意の伝送媒体を介して情報処理装置2102に送信する。CPU2001は、そのデータを用いてそのプログラムを実行し、必要な処理を行う。
本発明によれば、Webサーバ等の後段の処理装置に処理要求が集中し、高負荷により処理に遅延が生じるような場合に、処理要求の転送速度を調整しながら処理要求を処理装置に中継することで、処理装置のあふれを防ぐことが可能となる。
また、利用者にとっては、後段の処理装置の負荷が高くなった場合でも、回答なしに処理要求が待たされることがなくなり、後で処理結果を受け取ることも可能となる。
また、利用者にとっては、後段の処理装置の負荷が高くなった場合でも、回答なしに処理要求が待たされることがなくなり、後で処理結果を受け取ることも可能となる。
本発明は、利用者からの処理要求を受けて逐次的に処理を行う処理装置の前段に配置され、高速かつ大量に送信されてくる処理要求を後段の処理装置に逐次入力していく際に、その処理要求を一時的に蓄え、利用者の要求や後段の処理装置の性能に応じて処理要求速度を制御する遅延ストレージ装置および遅延処理方法に関する。
従来のWebサーバ等の処理装置では、システムの負荷を軽減するために、複数の処理装置に処理要求を振り分けるためのドメインネームサーバ(DNS)を配置して、利用者からの処理要求を中継する、ラウンドロビン技術が用いられている(例えば、非特許文献1および特許文献1参照)。この技術では、クライアントからは複数のサーバが仮想的に1つのサーバに見えるが、実際には複数のサーバに処理要求が振り分けられる。
また、プロキシサーバと呼ばれる装置が、利用者と処理装置の間に配置され、利用者からの処理要求を記録するとともに、処理装置からの処理結果を記録しておく技術も用いられている(例えば、特許文献2参照)。この技術では、同じ処理要求が再び同一あるいは別の利用者から行われた場合に、後段の処理装置に処理要求を中継せずに、記録されている処理結果を後段の処理装置の処理結果として利用者に返すことができる。
"高性能かつ高可用性クラスタシステムの構築"、3ページ、1.1 ロード・バランシングの種類、[online]、2000年6月16日、Zeus Technology−技術資料−技術情報、[平成15年3月7日検索]、インターネット<U RL:http://www.jp.zeus.com/library/technical/cluster/index.html> 特開2002−057691号公報
特開2002−259338号公報
"高性能かつ高可用性クラスタシステムの構築"、3ページ、1.1 ロード・バランシングの種類、[online]、2000年6月16日、Zeus Technology−技術資料−技術情報、[平成15年3月7日検索]、インターネット<U RL:http://www.jp.zeus.com/library/technical/cluster/index.html>
しかしながら、上述した従来の技術には、次のような問題がある。
従来のラウンドロビン技術をもってしても、振り分け対象となる複数の処理装置のすべてが高負荷な状態になった場合には、利用者からの処理要求は、回答されることなしに待たされることになる。
従来のラウンドロビン技術をもってしても、振り分け対象となる複数の処理装置のすべてが高負荷な状態になった場合には、利用者からの処理要求は、回答されることなしに待たされることになる。
また、プロキシ技術では、初めて受け付けた処理要求に対しては処理結果が記録されていないため、その処理要求は後段の処理装置にそのまま中継される。このため、プロキシサーバがあったとしても、後段の処理装置が高負荷な状態にある場合には、利用者からの処理要求は、回答されることなしに待たされることになる。
実際には、後段の処理装置の処理性能(例えば、単位時間当たりの処理件数)の上限が決まっている場合が多く、それを越える処理要求が送られると、処理装置のあふれを招き、さらに処理時間の遅延につながる。
本発明の課題は、高速かつ大量に送信されてくる処理要求を後段の処理装置に逐次入力していく際に、処理装置のあふれを防止する遅延ストレージ装置および遅延処理方法を提供することである。
本発明のもう1つの課題は、処理要求を送信した利用者が回答されることなしに待たされる状況を回避することである。
図1は、本発明の遅延ストレージ装置の原理図である。図1の遅延ストレージ装置は、受付部101、要求格納部102、管理部103、および中継部104を備え、利用者105から処理装置106への処理要求を受け付けて処理装置106へ中継する。
図1は、本発明の遅延ストレージ装置の原理図である。図1の遅延ストレージ装置は、受付部101、要求格納部102、管理部103、および中継部104を備え、利用者105から処理装置106への処理要求を受け付けて処理装置106へ中継する。
受付部101は、処理要求を受け付け、要求格納部102は、受け付けた処理要求を一時的に格納する。管理部103は、受け付けた処理要求の受付時刻を格納し、中継部104は、処理装置106の性能に応じて処理要求の転送速度を調整しながら、受付時刻順に処理要求を処理装置106に中継する。
中継部104は、例えば、以下のような方法で処理要求の転送速度を調整する。
(1)指定された単位時間当たりの処理要求件数を受け取り、処理装置106に送信される単位時間当たりの処理要求件数が指定された単位時間当たりの処理要求件数を越えないように、処理要求の転送速度を調整する。
(2)指定された遅延時間を受け取り、受け付けた処理要求の受付日時から指定された遅延時間が経過した後に、その処理要求を処理装置106に中継する。
(3)中継停止の指示を受け取ったとき、次に中継再開の指示を受け取るまで処理要求の中継を停止する。
(4)処理装置106の負荷状況を検知し、検知した負荷状況に基づいて処理要求の転送速度を調整する。
(1)指定された単位時間当たりの処理要求件数を受け取り、処理装置106に送信される単位時間当たりの処理要求件数が指定された単位時間当たりの処理要求件数を越えないように、処理要求の転送速度を調整する。
(2)指定された遅延時間を受け取り、受け付けた処理要求の受付日時から指定された遅延時間が経過した後に、その処理要求を処理装置106に中継する。
(3)中継停止の指示を受け取ったとき、次に中継再開の指示を受け取るまで処理要求の中継を停止する。
(4)処理装置106の負荷状況を検知し、検知した負荷状況に基づいて処理要求の転送速度を調整する。
このように、処理要求を受け付けて処理装置106への転送速度を調整する遅延ストレージ装置を、処理装置106の前段に設けることにより、処理装置106の性能に応じて処理要求の中継を遅延させることが可能となり、処理装置のあふれが防止される。また、処理要求とともにその受付時刻を格納することにより、処理要求を受付順に処理装置106へ転送することができる。
また、遅延ストレージ装置は、処理装置106に中継された処理要求に対して処理装置106から返送された処理結果を格納する結果格納部107をさらに備える。受付部101は、処理要求を一意に識別するための識別子を発行して、処理要求の要求元(利用者105の端末等)にその識別子を返送し、その要求元が識別子を用いて処理要求に対する処理結果を要求したとき、結果格納部107から対応する処理結果を読み出して要求元に送信する。
このように、処理要求を受け付けたときに識別子を発行して要求元に返送することで、処理要求が受け付けられたことを利用者に通知することが可能となり、利用者が回答されることなしに待たされる状況が回避できる。また、結果格納部107を設けることで、要求元は、返送された識別子を用いて、先に送信した処理要求に対する処理結果を遅延ストレージ装置から取得することが可能となる。
図1の受付部101、要求格納部102、管理部103、中継部104、および結果格納部107は、例えば、後述する図2の処理要求受付部211、処理要求ファイル217、情報管理テーブル213、中継時間調整部214、および処理結果ファイル218にそれぞれ対応する。
以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
後段の処理装置では、通常、実質的な処理にかかる時間と処理の受付や回答にかかる時間の和によって単位時間当たりの処理件数の上限が決まっている。したがって、その前段に利用者からの処理要求を中継する装置を配置し、その装置により後段の処理装置の処理件数の上限を越えないように単位時間当たりの処理要求件数を調整することで、処理装置のあふれを防ぐことができる。
後段の処理装置では、通常、実質的な処理にかかる時間と処理の受付や回答にかかる時間の和によって単位時間当たりの処理件数の上限が決まっている。したがって、その前段に利用者からの処理要求を中継する装置を配置し、その装置により後段の処理装置の処理件数の上限を越えないように単位時間当たりの処理要求件数を調整することで、処理装置のあふれを防ぐことができる。
本実施形態の遅延ストレージ装置は、利用者からの処理要求を一時的に蓄積するバッファリング装置として用いられ、処理装置の性能に応じて処理要求の転送速度を制御する。この遅延ストレージ装置内には、処理要求を一時的に格納する記憶機構と、処理要求が到着した時刻を記録する機構が設けられる。処理要求の到着時刻を処理要求と併せて記録しておくことで、到着した処理要求を後段の処理装置に出力する際の順序を保証することができ、また、指定された遅延時間後に、到着した処理要求を指定された時間間隔や頻度で中継することが可能となる。
また、遅延ストレージ装置は、要求元から処理要求を受け付けた際に、処理要求を一意に識別するための識別子とあらかじめ決められた形式の回答を要求元に返すことができる。これにより、処理の要求元は、後で、その処理要求が後段の処理装置に出力されたかどうかをこの識別子を用いて遅延ストレージ装置に問い合わせたり、処理装置による処理結果を受け取ったりすることが可能となる。
例えば、Webサーバ等の処理装置の前段に遅延ストレージ装置を配置することで、Webサーバの性能上の要件に応じて、送られてくる処理要求の転送速度を制御することができる。例えば、処理要求の転送速度が毎秒1千トランザクションであって、Webサーバの処理速度が毎秒500トランザクションであった場合に、Webサーバの処理速度に合わせて処理要求の転送速度を遅延させることが可能となる。
また、Webサーバの運用中にディスク装置等に障害が発生した場合でも、システムの運用を停止することなく、遅延ストレージ装置に処理要求を一時的に格納していき、その間にディスク装置の交換を行うことで、システムの運用を継続させることが可能となる。
図2は、このような遅延ストレージ装置を用いた遅延ストレージシステムの構成図である。図2の遅延ストレージシステムは、遅延ストレージ装置201、利用者端末202、管理端末203、および処理装置204からなる。実線の矢印は処理要求時の情報の流れを示しており、破線の矢印は処理結果要求時の情報の流れを示している。
利用者端末202は、利用者からの処理要求の入力と処理結果の表示に用いられ、管理端末203は、管理者による遅延時間の指定、中継停止/再開の指示、および単位時間当たりの処理要求件数の指定に用いられる。処理装置204は、遅延ストレージ装置201から受け取った処理要求に従って処理を実行し、処理結果を返す。
遅延ストレージ装置201は、処理要求受付部211、処理要求格納部212、情報管理テーブル213、中継時間調整部214、処理結果受付部215、および処理結果格納部216を備え、利用者端末202からの処理要求を後段の処理装置204に中継する。
処理要求受付部211は、利用者端末202からの処理要求を受け付け、受け付けた処理要求を識別する識別子と受付日時とを処理要求に付与し、利用者に対するメッセージを生成する。処理要求格納部212は、受け付けた処理要求を処理要求ファイル217に一時的に格納する。情報管理テーブル213は、処理要求の識別子、処理要求の受付日時、処理要求の中継状況、および処理要求と処理結果を結びつける管理情報を格納する。
中継時間調整部214は、格納された処理要求を処理装置204に中継する際に、時間的な調整を行ってから処理要求を送出する。処理結果受付部215は、処理装置204から処理結果を受け取り、その処理結果の受付日時を発行する。処理結果格納部216は、受け取った処理結果に受付日時を付与して、処理結果ファイル218に一時的に格納する。
中継時間調整部214は、処理装置204の負荷状況を検知し、検知した負荷状況や、管理端末203から指定された遅延時間および単位時間当たりの処理要求件数に応じて、中継のタイミングを調整する。さらに、中継時間調整部214は、管理端末203からの指示により中継の停止や再開を制御する。このような中継時間調整部214を設けることで、処理装置204のあふれを防ぐことが可能となる。
処理要求受付部211は、処理要求の中継に遅延がある際に、処理装置204の代わりに、処理に遅延が発生している旨のメッセージ(遅延メッセージ)を生成して利用者に回答する。また、受け付けた処理要求の識別子を利用者端末202に対して発行し、利用者端末202が後でその識別子に基づいて改めて処理結果を要求した際に、処理装置204からの処理結果を回答する。
利用者端末202は、遅延ストレージ装置201から受け取った遅延メッセージや処理要求の識別子を含むクッキーを、ローカルな保存ファイル221に保存しておき、後で処理結果を要求する際に読み出して使用する。このようなメッセージと識別子を用いることで、利用者は、処理要求の中継に遅延がある場合にも、待たされることなしにその旨を知ることができ、後で改めて処理結果を受け取ることも可能となる。
図3は、利用者からの処理要求の例を示している。この例では、処理装置204としてWebサーバを用いたチケットの予約受け付けシステムにおける処理要求が示されている。利用者端末202上で、利用者が予約フォーム301に名前311とコース番号312を入力し、予約ボタン313をクリックすると、Webブラウザは、入力された情報をWebサーバで処理可能な処理要求302に変換する。
図4から図6までは、処理要求の中継に遅延が発生する場合に利用者に返される遅延メッセージの例を示している。
図4は、遅延メッセージを保存する場合の例を示している。この例では、遅延メッセージ401は、HTML(HyperText Markup Language)形式の文書 として利用者端末202に送られる。遅延メッセージ401には、サーバ負荷のため処理が遅延しており、終了まで30分ほどかかる旨を示すテキストと、遅延ストレージ装置201が発行した、処理結果要求のためのリンク411とが含まれている。リンク411には、処理要求の識別子(ID=5678)が付加されている。
図4は、遅延メッセージを保存する場合の例を示している。この例では、遅延メッセージ401は、HTML(HyperText Markup Language)形式の文書 として利用者端末202に送られる。遅延メッセージ401には、サーバ負荷のため処理が遅延しており、終了まで30分ほどかかる旨を示すテキストと、遅延ストレージ装置201が発行した、処理結果要求のためのリンク411とが含まれている。リンク411には、処理要求の識別子(ID=5678)が付加されている。
利用者がメッセージの保存ボタン412をクリックすると、利用者端末202は、遅延メッセージ401を保存ファイル221に保存する。そして、遅延メッセージ401に書かれた遅延時間を経た後に利用者が処理結果を要求する際に、利用者端末202は、保存した遅延メッセージ401を保存ファイル221から読み出して、画面上に表示する。このとき、利用者は、リンク411をクリックすることで、遅延ストレージ装置201に対して処理結果を要求することができる。
図5は、クッキーを用いる場合の例を示している。一般に、利用者端末202のWebブラウザには、サーバからの指示に基づいて識別子等の情報を自動的に利用者端末側の保存ファイル221に保存しておく、クッキーと呼ばれる機能が備わっている。この機能を用いることで、遅延ストレージ装置201から利用者端末202に送付される遅延メッセージ501の中に、処理要求の識別子をクッキー511として含ませておくことができる。
利用者端末202は、受け付けたクッキー511を自動的に保存ファイル221に保存する。そして、遅延メッセージ501に書かれた遅延時間を経た後に利用者が処理結果を要求する際に、利用者は、例えば、再度、予約フォーム301の画面を呼び出して、予約ボタン313をクリックする。これにより、遅延ストレージ装置201に処理要求が送られるが、このとき保存ファイル221に保存されているクッキー511が自動的に読み出され、処理要求とともに遅延ストレージ装置201に送られる。
遅延ストレージ装置201は、クッキー511を読み出すことで、割り当てられた処理要求の識別子の有無を判定し、利用者端末側にクッキー511があれば、既に受け付けた予約であると判別する。そして、その識別子に基づいて予約確認フォーム502を利用者端末202に送付する。利用者は、予約確認フォーム502の画面に含まれる確認ボタン512をクリックすることで、遅延ストレージ装置201に対して処理結果を要求することができる。
図4および図5の方法は、遅延時間が長く、利用者端末202に遅延メッセージを表示したままにしておくことが困難な場合に有効である。これに対して、遅延時間が短く、遅延メッセージを表示したままにしておくことが容易であれば、表示された遅延メッセージの画面上に埋め込まれたリンクをクリックすることで、処理結果を要求することも可能である。
図6および図7は、このような遅延メッセージの例を示している。図6の遅延メッセージは、Webサーバの単位時間当たりの処理要求件数が閾値を越えたため処理が遅延している場合に、利用者端末202に送付される。この遅延メッセージには、処理要求の識別子を含む、処理結果を要求するためのリンク601が挿入されており、利用者は、リンク601をクリックすることで、遅延ストレージ装置201に対して処理結果を要求することができる。
図7の遅延メッセージは、Webサーバのメンテナンスのため処理が遅延している場合に、利用者端末202に送付される。この場合も、利用者は、図6の遅延メッセージと同様に、リンク701をクリックすることで、遅延ストレージ装置201に対して処理結果を要求することができる。
図8は、処理装置204から返される処理結果の例を示している。この例では、遅延ストレージ装置201が中継した処理要求がWebサーバで処理され、その結果として予約が完了したという処理結果801が返される。この処理結果801は、遅延ストレージ装置201の処理結果ファイル218に一旦格納され、利用者からの処理結果要求に応じて利用者端末202に送られ、Webブラウザにより結果表示802として表示される。
図9は、情報管理テーブル213のデータの例を示している。図9の情報管理テーブルには、処理要求毎に、処理要求識別子、処理要求番号、受付日時、中継状況、および処理結果番号が登録される。このうち、処理要求番号は、情報管理テーブル213のデータと処理要求ファイル217のデータを結びつけるために用いられ、処理結果番号は、情報管理テーブル213のデータと処理結果ファイル218のデータを結びつけるために用いられる。
また、中継状況としては、“受付済み”、“処理中”、“結果受付済み”、および“結果削除済み(不図示)”のいずれかが登録される。“受付済み”は、処理要求が登録済みであることを表し、“処理中”は、処理装置204が処理を実行中であることを表し、“結果受付済み”は、処理装置204からの処理結果が登録済みであることを表し、“結果削除済み”は、登録された処理結果が削除されたことを表す。“受付済み”、“処理中”、および“結果削除済み”の場合は、処理結果ファイルが登録されていないので、処理結果番号は “−1”に設定される。
図10は、処理要求ファイル217のデータの例を示している。図10の処理要求ファイルには、処理要求毎に、処理要求番号および処理要求がテーブル形式で登録される。
図11は、処理結果ファイル218のデータの例を示している。図11の処理結果ファイルは、処理結果テーブル1101と個々の処理結果を格納したファイル1102からなる。処理結果テーブル1101には、処理結果毎に、処理結果番号、処理結果受付日時、および処理結果ファイル名が登録される。処理結果ファイル名はファイル1102の名称であり、遅延ストレージ装置201は、処理結果テーブル1101を参照することで、ファイル1102を読み出すことができる。
図11は、処理結果ファイル218のデータの例を示している。図11の処理結果ファイルは、処理結果テーブル1101と個々の処理結果を格納したファイル1102からなる。処理結果テーブル1101には、処理結果毎に、処理結果番号、処理結果受付日時、および処理結果ファイル名が登録される。処理結果ファイル名はファイル1102の名称であり、遅延ストレージ装置201は、処理結果テーブル1101を参照することで、ファイル1102を読み出すことができる。
次に、図12から図15までを参照しながら、図2の遅延ストレージシステムによる処理をより詳細に説明する。
図12は、図2の遅延ストレージシステムの全体処理のフローチャートである。利用者が利用者端末202の入力装置1201から処理要求を入力して、それを遅延ストレージ装置201に送信すると(ステップS1211)、処理要求受付部211は、その処理要求を受け付ける(ステップS1221)。
図12は、図2の遅延ストレージシステムの全体処理のフローチャートである。利用者が利用者端末202の入力装置1201から処理要求を入力して、それを遅延ストレージ装置201に送信すると(ステップS1211)、処理要求受付部211は、その処理要求を受け付ける(ステップS1221)。
次に、処理要求受付部211は、情報管理テーブル213を参照して現在の処理要求遅延状況を確認し(ステップS1222)、処理要求の中継に遅延があるか否かを判定する(ステップS1223)。
処理要求の中継に遅延があれば、受け付けた処理要求を識別する識別子を発行し、要求を受け付けた日時を取得する(ステップS1224)。そして、処理要求を処理要求格納部212の処理要求ファイル217に登録し(ステップS1225)、識別子を受付日時とともに情報管理テーブル213に登録する(ステップS1226)。図9の情報管理テーブルの場合、中継状況は“受付済み”に設定され、処理結果番号は“−1”に設定される。
次に、あらかじめ決められた遅延メッセージを用いて、処理要求の識別子を含む回答メッセージを生成し、利用者端末202に送信する(ステップS1227)。これを受けて、利用者端末202は、受信した回答メッセージをディスプレイ1202の画面上に表示し(ステップS1212)、待機状態となる。
システムの管理者は、管理端末203の入力装置1203から、あらかじめ決められた遅延時間の指定、中継停止/再開の指示、および単位時間当たりの処理要求件数の指定を入力する(ステップS1241)。
中継時間調整部214は、情報管理テーブル213から処理要求のデータを読み出し(ステップS1232)、処理装置204の負荷状況を検知して、管理者により指定された遅延時間および単位時間当たりの処理要求件数と、管理者からの中継停止/再開の指示と、検知された負荷状況等の情報に基づいて、中継時間を調整し、中継時刻を決定する(ステップS1233)。
そして、中継状況が“受付済み”となっている処理要求を受付日時順に処理要求ファイル217から読み出して、順次、処理装置204に中継送信し(ステップS1234)、中継した処理要求の中継状況を“処理中”に変更する (ステップS1235)。
処理装置204は、遅延ストレージ装置201からの処理要求を受け付け (ステップS1251)、要求された処理を実行し(ステップS1252)、処理結果を回答する(ステップS1253)。
処理結果受付部215は、処理装置204からの処理結果を受け付け(ステップS1236)、処理結果格納部216の処理結果ファイル218に登録する(ステップS1237)。このとき、処理結果の受付日時が処理結果ファイル218の処理結果テーブルに登録される。
また、処理結果受付部215は、情報管理テーブル213に処理結果ファイルに関する情報を登録する(ステップS1238)。ここでは、情報管理テーブル213の中継状況が“結果受付済み”に変更され、処理結果番号が“−1”から実際の処理結果番号に変更される。
遅延ストレージ装置201から、処理要求の中継に遅延がある旨の回答メッセージを受け取った利用者は、遅延ストレージ装置201に対して、後で改めて処理結果を要求する。このとき、利用者は、入力装置1201から処理結果要求を入力して、それを遅延ストレージ装置201に送信する(ステップS1213)。これにより、回答メッセージに含まれていた処理要求の識別子が、遅延ストレージ装置201に送信される。
処理要求受付部211は、その処理結果要求を受け付け(ステップS1228)、情報管理テーブル213を参照して、受信した識別子に対応する処理要求の中継状況を確認し(ステップS1229)、処理結果ファイル218に処理結果が格納されているか否かを判定する(ステップS1230)。
この時点で、処理要求が既に処理装置204に中継され、その結果が処理結果ファイル218に格納されていれば(中継状況が“結果受付済み”であれば)、その処理結果を読み出して利用者端末202に送信する(ステップS1231)。これを受けて、利用者端末202は、受信した処理結果をディスプレイ1202の画面上に表示する(ステップS1214)。
まだ処理要求が中継されていない(中継状況が“受付済み”である)か、あるいは処理要求は中継されたが処理結果を受け付けていない(中継状況が“処理中”である)場合は、処理要求受付部211は、その旨の回答メッセージを生成して、利用者端末202に送信する(ステップS1227)。
また、処理装置204から処理結果が返され、その後一定時間おいても利用者から処理結果の要求がなかった場合には、処理結果格納部216は、記憶容量に応じてその処理結果を削除することもできる。この場合、処理結果格納部216は、削除したことを示す情報を情報管理テーブル213に登録する。ここでは、情報管理テーブル213の中継状況が“結果削除済み”に変更される。
同じ処理要求が2回繰り返して処理されても問題がない場合には、既に削除された処理結果に関する処理結果要求が利用者からあった際に、その処理要求を再び処理装置204に中継することも可能である。この場合、遅延ストレージ装置201は、情報管理テーブル213を参照して、その処理要求を処理要求ファイル217から読み出し、処理装置204に改めて中継送信することで、処理結果を再び受け取ることができる。
管理者は、管理端末203から、処理装置204に対する処理要求の再実行に関する条件を設定しておき、遅延ストレージ装置201は、その条件に基づいて、処理要求の再実行に問題があるか否かを判断し、条件を満たす処理要求を再び処理装置204に中継する。そして、処理結果受付部215は、その処理結果を処理結果ファイル218に格納し、処理要求受付部211は、処理結果を利用者端末202に送信する。
ステップS1223において処理要求の中継に遅延がなければ、中継時間調整部214は、ステップS1234以降の処理を行い、処理要求受付部211は、ステップS1229以降の処理を行う。この場合、処理結果受付部215が受け付けた処理結果が、そのまま利用者端末202に送信される。
図13は、中継時間調整部214による中継時間調整処理のフローチャートである。図13のステップS1301の処理は、図12のステップS1241の処理と同様であり、図13のステップS1311〜S1320の処理は、図12のステップS1232〜S1234の処理に対応している。
中継時間調整部214は、情報管理テーブル213から処理要求のデータを読み出し(ステップS1311)、処理装置204の負荷状況を確認する(ステップS1312)。そして、情報管理テーブル213から読み出した情報に基づいて、処理装置204に処理要求を中継する。このとき、以下の4つの中継条件を考慮する(ステップS1313〜S1318)。
(1)単位時間当たりの処理要求件数
後段の処理装置の処理性能に応じてあらかじめ決められた一定時間当たりの処理件数を越えないように処理要求を中継する。
(2)指定された遅延時間
利用者から受け付けた処理要求の受付日時から、あらかじめ指定された遅延時間が経過した後に、処理要求を中継する。
(3)処理装置204の負荷状況
あらかじめ決められた閾値を越える負荷が処理装置204にかかっている場合に中継を遅延させる。
(4)中継停止/再開の指示
管理者からの指示に基づいて、明示的に遅延時間を指定することなく、処理要求の中継を停止、あるいは再開する。中継を停止している間は、処理要求の中継を遅延させる。
(1)単位時間当たりの処理要求件数
後段の処理装置の処理性能に応じてあらかじめ決められた一定時間当たりの処理件数を越えないように処理要求を中継する。
(2)指定された遅延時間
利用者から受け付けた処理要求の受付日時から、あらかじめ指定された遅延時間が経過した後に、処理要求を中継する。
(3)処理装置204の負荷状況
あらかじめ決められた閾値を越える負荷が処理装置204にかかっている場合に中継を遅延させる。
(4)中継停止/再開の指示
管理者からの指示に基づいて、明示的に遅延時間を指定することなく、処理要求の中継を停止、あるいは再開する。中継を停止している間は、処理要求の中継を遅延させる。
まず、処理装置204の負荷が閾値を越えているか否かを判定する(ステップS1313)。負荷が閾値を越えていれば、中継待機(ステップS1320)の後でステップS1311以降の処理を繰り返す。
負荷が閾値を越えていなければ、次に、管理端末203からの指示状況を確認し(ステップS1314)、中継停止が指示されているか否かを判定する (ステップS1315)。中継停止が指示されていれば、中継待機(ステップS1320)の後でステップS1311以降の処理を繰り返す。
中継停止が指示されていなければ、次に、現在の単位時間当たりの処理要求件数を確認し(ステップS1316)、その単位時間当たりの処理要求件数が閾値を越えているか否かを判定する(ステップS1317)。閾値としては、管理者により指定された単位時間当たりの処理要求件数が用いられる。単位時間当たりの処理要求件数が閾値を越えていれば、中継待機(ステップS1320)の後でステップS1311以降の処理を繰り返す。
単位時間当たりの処理要求件数が閾値を越えていなければ、次に、処理要求の受付日時から指定された遅延時間が経過しているか否かを判定する(ステップS1318)。遅延時間が経過していなければ、中継待機(ステップS1320)の後でステップS1311以降の処理を繰り返す。そして、遅延時間が経過していれば、処理要求の中継を実行する(ステップS1319)。
図14は、処理要求受付部211による処理要求受付処理のフローチャートである。図14のステップS1401およびS1402の処理は、図12のステップS1211およびS1212の処理と同様であり、図14のステップS1411〜S1416の処理は、図12のステップS1221〜S1226の処理と同様である。
また、図14のステップS1423の処理は、図12のステップS1234の処理に対応しており、図14のステップS1417〜S1422およびステップS1424〜S1429の処理は、図12のステップS1227の処理に対応している。
処理要求受付部211は、中継時間調整部214による処理要求の中継が遅延している場合、利用者に対して処理要求の中継が遅延している旨のメッセージを回答する。メッセージの内容は、あらかじめ決められており、メッセージ中に処理要求の識別子を含めることもできる。
また、上述した4つの中継条件に従って、その時点で中継が遅延している処理要求の件数と処理装置204の処理性能から、受け付けた処理要求が中継されるまでの予測待ち時間をメッセージの中に含めることもできる。ただし、中継停止が指示されている場合等は、中継再開時刻が特に指定されていない限り、待ち時間を予測することはできない。
4つの中継条件に従って回答メッセージを生成する場合、処理要求受付部211は、まず、中継時間調整部214から中継遅延理由を受け取る(ステップS1417)。そして、中継遅延理由が中継停止が指示されているためであるか否かを判定する(ステップS1418)。中継遅延理由が中継停止が指示されているためであれば、中継停止の遅延メッセージを生成し(ステップS1424)、それを用いて処理要求の識別子を含む回答メッセージを生成して、利用者端末202に送信する(ステップS1422)。
中継遅延理由が中継停止が指示されているためでなければ、次に、中継遅延理由が処理装置204の負荷が閾値を越えているためであるか否かを判定する(ステップS1419)。中継遅延理由が処理装置204の負荷が閾値を越えているためであれば、処理装置204の負荷超過の遅延メッセージを生成し (ステップS1425)、ステップS1422の処理を行う。
中継遅延理由が処理装置204の負荷が閾値を越えているためでなければ、次に、中継遅延理由が単位時間当たりの処理要求件数が閾値を越えているためであるか否かを判定する(ステップS1420)。中継遅延理由が単位時間当たりの処理要求件数が閾値を越えているためであれば、中継待機中の処理要求の件数と処理装置204の処理性能から中継予定時刻を予測し(ステップS1426)、その中継予定時刻を含む、処理要求件数超過の遅延メッセージを生成して(ステップS1427)、ステップS1422の処理を行う。
中継遅延理由が単位時間当たりの処理要求件数が閾値を越えているためでなければ、次に、中継遅延理由が遅延時間が指定されているためであるか否かを判定する(ステップS1421)。中継遅延理由が遅延時間が指定されているためであれば、処理要求の受付日時と指定された遅延時間から中継予定時刻を予測し(ステップS1428)、その中継予定時刻を含む、遅延時間指定の遅延メッセージを生成して(ステップS1429)、ステップS1422の処理を行う。
中継遅延理由が遅延時間が指定されているためでなければ、処理要求の識別子を含む適当な回答メッセージを生成して、利用者端末202に送信する(ステップS1422)。
図15は、処理要求受付部211による処理結果要求受付処理と、その処理に関連する処理のフローチャートである。図15のステップS1511およびS1512の処理は、図12のステップS1213およびS1214の処理と同様であり、図15のステップS1521〜S1524の処理は、図12のステップS1228〜S1231の処理と同様である。
図15は、処理要求受付部211による処理結果要求受付処理と、その処理に関連する処理のフローチャートである。図15のステップS1511およびS1512の処理は、図12のステップS1213およびS1214の処理と同様であり、図15のステップS1521〜S1524の処理は、図12のステップS1228〜S1231の処理と同様である。
また、図15のステップS1541〜S1545の処理は、図12のステップS1234〜S1238の処理と同様であり、図15のステップS1551〜S1553の処理は、図12のステップS1251〜S1253の処理と同様である。
処理結果格納部216は、情報管理テーブル213を参照して、中継状況が“結果受付済み”の処理要求の処理結果番号を取得し、その番号をキーとして処理結果ファイル218を参照する(ステップS1561)ことで、処理結果の受付日時から一定時間が経過した時間切れの処理結果があるか否かを判定する(ステップS1562)。時間切れの処理結果がなければ、ステップS1561以降の処理を繰り返す。
時間切れの処理結果があれば、処理結果ファイル218からそれを削除し (ステップS1563)、情報管理テーブル213の対応する処理要求の中継状況を、“結果削除済み”に変更する(ステップS1564)。そして、ステップS1561以降の処理を繰り返す。
処理要求の中継に遅延がある場合、利用者は処理要求受付部211を通じて、その旨の回答メッセージ1501を受け取る。回答メッセージ1501に処理要求の識別子が含まれている場合、利用者は後で改めて、その識別子を含む処理結果要求を送信することで、先に行った処理要求の処理結果を受け取ることができる。
ステップS1523において処理結果が格納されていない(中継状況が“結果受付済み”でない)場合、処理要求受付部211は、処理結果が時間切れで削除されている(中継状況が“結果削除済み”である)か否かを判定する(ステップS1525)。
処理結果が削除されていれば、その旨を示す時間切れ削除メッセージを生成して、利用者端末202に回答メッセージとして送信する(ステップS1526)。処理結果が削除されていなければ、中継処理遅延メッセージを生成して、利用者端末202に回答メッセージとして送信する(ステップS1527)。
処理結果が時間切れで削除されている場合、前述した方法で自動的に処理の再実行を行う他に、利用者に再実行の要否を選択させることも可能である。この場合、時間切れ削除メッセージの中に、処理要求の識別子と、利用者に対して再実行の要否を確認するメッセージを含めておく。
このような時間切れ削除メッセージ1502を受け取った利用者は、処理の再実行を依頼するか否かを選択し(ステップS1513)、利用者が再実行の依頼を選択しなければ、利用者端末202は処理を終了する。
利用者が再実行の依頼を選択すれば、利用者端末202は、時間切れ削除メッセージ1502に含まれる処理要求の識別子を含む再実行要求を、遅延ストレージ装置201に送信する(ステップS1514)。
処理要求受付部211は、再実行要求を受け付け(ステップS1528)、情報管理テーブル213を参照して、再実行要求に含まれる処理要求の識別子に対応する処理要求を、処理要求ファイル217から読み出す(ステップS1529)。そして、再実行要求に含まれる処理要求と読み出した処理要求が同じものであることを確認する。
次に、情報管理テーブル213の中継状況を“結果削除済み”から“受付済み”に変更する(ステップS1530)。これにより、中継時間調整部214は、その処理要求を中継待ちの処理要求であると認識するので、この処理要求は自動的に処理装置204に中継される。
次に、中継が遅延している旨を示す遅延メッセージを生成して、利用者端末202に送信する(ステップS1531)。この場合の遅延メッセージの生成方法については、図14と同様である。利用者端末202は、受信した遅延メッセージをディスプレイ1202の画面上に表示する(ステップS1515)。
次に、図16から図19までを参照しながら、インターネット上における遅延ストレージシステムの運用方法および構成について説明する。
図16は、遅延ストレージ装置を一種のアプライアンスサーバとしてWebサーバの前段に配置することで、利用者からの処理要求をWebサーバに中継する構成を示している。図16の遅延ストレージ装置201、利用者端末202、およびWebサーバ1602は、それぞれ独立したコンピュータにより構成され、インターネット1601に接続されている。このうち、Webサーバ1602は、図2の処理装置204に対応する。利用者端末202は、Webブラウザ1611を含み、Webサーバ1602は、Webコンテンツ1612を格納したディスク装置を含む。
図16は、遅延ストレージ装置を一種のアプライアンスサーバとしてWebサーバの前段に配置することで、利用者からの処理要求をWebサーバに中継する構成を示している。図16の遅延ストレージ装置201、利用者端末202、およびWebサーバ1602は、それぞれ独立したコンピュータにより構成され、インターネット1601に接続されている。このうち、Webサーバ1602は、図2の処理装置204に対応する。利用者端末202は、Webブラウザ1611を含み、Webサーバ1602は、Webコンテンツ1612を格納したディスク装置を含む。
例えば、Webサーバ1602の処理性能が、1分間に1万件の処理要求を処理できるというものである場合、管理者は、遅延ストレージ装置201に接続された管理端末203から、処理要求の中継が1分間に1万件を越えないように指定する。
例えば、新製品の予約販売や、スポーツの試合のチケットの予約等で、予約受け付け開始と同時に一斉に予約処理の要求が集中し、Webサーバ1602で処理しきれなくなり、処理が滞ってしまうような場合に、このような運用方法が有効となる。
遅延ストレージ装置201自体が行う処理は、利用者端末202からの処理要求を受け付けて格納することと、処理が遅延している旨のメッセージを利用者端末202に回答することだけであるので、実際のWebサーバ1602が行う予約処理に比べて、計算機システムへの負荷は小さくなる。このため、Webサーバ1602に比べて、単位時間当たりにより多くの処理要求を処理できることが期待される。図16における処理の手順は以下の通りである。
(1)遅延ストレージ装置201は、利用者端末202からの処理要求を受け付ける。
(2)処理が遅延している旨の遅延メッセージ(例えば、図4、5、6のような遅延メッセージ)を利用者端末202に返す。
(3)指定された単位時間当たりの処理要求件数を越えないように遅延時間を調整して、受け付けた処理要求をWebサーバ1602に中継する。
(4)Webサーバ1602は、中継された処理要求を順次処理し、その結果を遅延ストレージ装置201に返す。遅延ストレージ装置201は、返された処理結果を処理結果ファイル218に格納する。
(5)利用者端末202は、遅延メッセージに含まれる、先の処理要求の識別子を用いて、遅延ストレージ装置201に対して処理結果を要求する。
(6)遅延ストレージ装置201は、利用者端末202に処理結果を返す。
(1)遅延ストレージ装置201は、利用者端末202からの処理要求を受け付ける。
(2)処理が遅延している旨の遅延メッセージ(例えば、図4、5、6のような遅延メッセージ)を利用者端末202に返す。
(3)指定された単位時間当たりの処理要求件数を越えないように遅延時間を調整して、受け付けた処理要求をWebサーバ1602に中継する。
(4)Webサーバ1602は、中継された処理要求を順次処理し、その結果を遅延ストレージ装置201に返す。遅延ストレージ装置201は、返された処理結果を処理結果ファイル218に格納する。
(5)利用者端末202は、遅延メッセージに含まれる、先の処理要求の識別子を用いて、遅延ストレージ装置201に対して処理結果を要求する。
(6)遅延ストレージ装置201は、利用者端末202に処理結果を返す。
一般に、利用者は処理要求に対する回答が来ないまま待たされると、処理を中断して、再び処理要求を送信する傾向がある。このため、遅延ストレージ装置201を持たない構成の場合、Webサーバ1602の負荷は、中断と再要求を繰り返す処理要求によって、実際の処理要求の負荷と比べてますます高くなってしまう。また、利用者が自分の要求した予約が受け付けられたのかどうか分からずに処理要求を再送すると、多重に処理を要求してしまうこともあり得る。
これに対して、遅延ストレージ装置201を利用者端末202とWebサーバ1602の間に配置し、処理要求を受け付けた旨のメッセージを利用者に迅速に返すようにすれば、このような問題が解決される。
図17は、図16と同様の構成で、Webサーバ1602のディスク装置に障害が発生し、その交換のためにWebサーバ1602の動作を1時間停止するような運用方法を示している。
この場合、管理者は、管理端末203から、処理要求の中継を1時間遅延させる指示を行うことで、利用者端末202から受信した処理要求を遅延ストレージ装置201に一時的に蓄積させる。図17における(1)および(4)〜(6)の処理は、図16と同様である。(2)および(3)の処理は、以下のようになる。
(2)処理が遅延している旨の遅延メッセージ(例えば、図7のような遅延メッセージ)を利用者端末202に返す。
(3)指定された遅延時間が経過した後に、受け付けた処理要求をWebサーバ1602に中継する。
(2)処理が遅延している旨の遅延メッセージ(例えば、図7のような遅延メッセージ)を利用者端末202に返す。
(3)指定された遅延時間が経過した後に、受け付けた処理要求をWebサーバ1602に中継する。
図17において遅延ストレージ装置201がない構成の場合、利用者は停止しているWebサーバ1602に処理要求を送ったとしても、回答がない状態になるか、あるいは、処理再開後も自分の送った処理要求が実行されないため、処理の再開を待って再要求を行う必要がある。
これに対して、遅延ストレージ装置201を利用者端末202とWebサーバ1602の間に配置することで、利用者に対して処理要求が遅延している原因と結果が得られる予定時刻を伝えることが可能となる。さらに、利用者の処理要求自体は遅延ストレージ装置201に蓄積されているため、Webサーバ1602の処理再開後に、処理要求を順次処理することができる。
ところで、遅延ストレージ装置201とWebサーバ1602の配置方法としては、これらを同一のコンピュータ上に配置する方法と互いに異なるコンピュータ上に配置する方法とが考えられる。
図18は、前者の配置方法による構成を示している。この構成では、遅延ストレージ装置201、管理端末203、およびWebサーバ1602の機能が同一のコンピュータにより実現され、このコンピュータは遅延中継機能付きWebサーバ1801としてインターネット1601に接続される。
この場合、利用者からは遅延ストレージ装置201とWebサーバ1602が一体に見えるため、従来のWebサーバに対して送信していた処理要求とまったく同じ処理要求を送信するだけで、その受付と中継を遅延ストレージ装置201に代行させることができる。
図19は、後者の配置方法による構成を示している。この構成は、既にWebサーバ1602が稼動している状態で、Webサーバ1602から独立したコンピュータ上に遅延ストレージ装置201を配置し、利用者からWebサーバ1602宛てに出されていた処理要求を遅延ストレージ装置201を経由して中継するような場合に有効である。
インターネット1601を用いた通信サービスの場合、利用者端末202からWebサーバ1602への処理要求は、通常、DNSと呼ばれる名前解決システムによりWebサーバ1602の名前とネットワーク上のアドレスとを置き換えることで、Webサーバ1602に送信される。
遅延ストレージ装置201を経由してWebサーバ1602に処理要求を中継する場合、DNS1901上で管理されているWebサーバ1602のエントリを遅延ストレージ装置201のそれに置き換えることで、利用者端末202から見たWebサーバ1602のアドレスをすりかえることができる。この方法により、利用者端末202からWebサーバ1602への処理要求は、そのまま遅延ストレージ装置201を経由してWebサーバ1602に中継することができる。図19における処理の手順は以下の通りである。
(1)管理者は、遅延ストレージ装置201のアドレスを、Webサーバ1602の名前でDNS1901に登録する。
(2)利用者端末202からDNS1901へ、Webサーバ1602のアドレスを問い合わせる。
(3)DNS1901から利用者端末202へ、遅延ストレージ装置201のアドレスを回答する。
(4)利用者端末202は、回答されたアドレスを用いて、Webサーバ1602の名前をアクセス先として遅延ストレージ装置201にアクセスする。
(1)管理者は、遅延ストレージ装置201のアドレスを、Webサーバ1602の名前でDNS1901に登録する。
(2)利用者端末202からDNS1901へ、Webサーバ1602のアドレスを問い合わせる。
(3)DNS1901から利用者端末202へ、遅延ストレージ装置201のアドレスを回答する。
(4)利用者端末202は、回答されたアドレスを用いて、Webサーバ1602の名前をアクセス先として遅延ストレージ装置201にアクセスする。
図2の遅延ストレージ装置201、利用者端末202、管理端末203、および処理装置204は、例えば、図20に示すような情報処理装置(コンピュータ)を用いて構成することができる。図20の情報処理装置は、CPU(中央処理装置)2001、メモリ2002、入力装置2003、出力装置2004、外部記憶装置2005、媒体駆動装置2006、およびネットワーク接続装置2007を備え、それらはバス2008により互いに接続されている。
メモリ2002は、例えば、ROM(read only memory)、RAM(random access memory)等を含み、処理に用いられるプログラムおよびデータを格納する。CPU2001は、メモリ2002を利用してプログラムを実行することにより、必要な処理を行う。
図2の処理要求受付部211、処理要求格納部212、中継時間調整部214、処理結果受付部215、および処理結果格納部216は、メモリ2002に格納されたプログラムに対応する。
入力装置2003は、例えば、キーボード、ポインティングデバイス、タッチパネル等であり、オペレータ(利用者や管理者)からの指示や情報の入力に用いられる。出力装置2004は、例えば、ディスプレイ、プリンタ、スピーカ等であり、オペレータへの問い合わせや処理結果の出力に用いられる。図12の入力装置1201および1203は、入力装置2003に対応し、図12のディスプレイ1202は、出力装置2004に対応する。
外部記憶装置2005は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。情報処理装置は、この外部記憶装置2005に、上記プログラムおよびデータを格納しておき、必要に応じて、それらをメモリ2002にロードして使用する。外部記憶装置2005は、図2の情報管理テーブル213、処理要求ファイル217、処理結果ファイル218、および保存ファイル221を格納するためにも用いられる。
媒体駆動装置2006は、可搬記録媒体2009を駆動し、その記録内容にアクセスする。可搬記録媒体2009は、メモリカード、フレキシブルディスク、CD−ROM(compact disk read only memory )、光ディスク、光磁気ディスク等の任意のコンピュータ読み取り可能な記録媒体である。オペレータは、この可搬記録媒体2009に上記プログラムおよびデータを格納しておき、必要に応じて、それらをメモリ2002にロードして使用する。
ネットワーク接続装置2007は、LAN(local area network)、インターネット等の任意の通信ネットワークに接続され、通信に伴うデータ変換を行う。情報処理装置は、必要に応じて、上記プログラムおよびデータを外部の装置からネットワーク接続装置2007を介して受け取り、それらをメモリ2002にロードして使用する。
図21は、図20の情報処理装置にプログラムおよびデータを供給することのできるコンピュータ読み取り可能な記録媒体を示している。可搬記録媒体2009やサーバ2101のデータベース2103に格納されたプログラムおよびデータは、情報処理装置2102のメモリ2002にロードされる。サーバ2101は、そのプログラムおよびデータを搬送する搬送信号を生成し、ネットワーク上の任意の伝送媒体を介して情報処理装置2102に送信する。CPU2001は、そのデータを用いてそのプログラムを実行し、必要な処理を行う。
(付記1)
利用者から処理装置への処理要求を受け付けて該処理装置へ中継する遅延ストレージ装置であって、
前記処理要求を受け付ける受付部と、
受け付けた処理要求を一時的に格納する要求格納部と、
受け付けた処理要求の受付時刻を格納する管理部と、
前記処理装置の性能に応じて処理要求の転送速度を調整しながら、前記受付時刻順に処理要求を該処理装置に中継する中継部と
を備えることを特徴とする遅延ストレージ装置。
(付記2)
前記中継部は、指定された単位時間当たりの処理要求件数を受け取り、前記処理装置に送信される単位時間当たりの処理要求件数が該指定された単位時間当たりの処理要求件数を越えないように、前記処理要求の転送速度を調整することを特徴とする付記1記載の遅延ストレージ装置。
(付記3)
前記中継部は、指定された遅延時間を受け取り、受け付けた処理要求の受付時刻から該指定された遅延時間が経過した後に、該処理要求を前記処理装置に中継することを特徴とする付記1記載の遅延ストレージ装置。
(付記4)
前記中継部は、中継停止の指示を受け取ったとき、次に中継再開の指示を受け取るまで処理要求の中継を停止することを特徴とする付記1記載の遅延ストレージ装置。
(付記5)
前記中継部は、前記処理装置の負荷状況を検知し、検知した負荷状況に基づいて前記処理要求の転送速度を調整することを特徴とする付記1記載の遅延ストレージ装置。
(付記6)
前記処理装置に中継された処理要求に対して該処理装置から返送された処理結果を格納する結果格納部をさらに備え、前記受付部は、処理要求を一意に識別するための識別子を発行して、該処理要求の要求元に該識別子を返送し、該要求元が該識別子を用いて該処理要求に対する処理結果を要求したとき、該結果格納部から対応する処理結果を読み出して該要求元に送信することを特徴とする付記1記載の遅延ストレージ装置。
(付記7)
前記受付部は、受け付けた処理要求の中継が遅延する場合、中継遅延理由に応じてあらかじめ決められた遅延メッセージを、該処理要求に対する回答として該処理要求の要求元に返送することを特徴とする付記1記載の遅延ストレージ装置。
(付記8)
前記処理装置に中継された処理要求に対して該処理装置から返送された処理結果を格納する結果格納部をさらに備え、前記受付部は、処理要求を一意に識別するための識別子を発行し、該識別子と予測される中継遅延時間を含む遅延メッセージを生成して前記要求元に返送し、該要求元が該識別子を用いて該処理要求に対する処理結果を要求したとき、該結果格納部から対応する処理結果を読み出して該要求元に送信することを特徴とする付記7記載の遅延ストレージ装置。
(付記9)
利用者から処理装置への処理要求を受け付けて該処理装置へ中継するコンピュータのためのプログラムであって、
前記処理要求を受け付け、
受け付けた処理要求を一時的に格納し、
受け付けた処理要求の受付時刻を発行し、
前記処理装置の性能に応じて処理要求の転送速度を調整しながら、前記受付時刻順に処理要求を該処理装置に中継する
処理を前記コンピュータに実行させることを特徴とするプログラム。
(付記10)
利用者から処理装置への処理要求を受け付けて該処理装置へ中継するコンピュータのためのプログラムを記録した記録媒体であって、該プログラムは、
前記処理要求を受け付け、
受け付けた処理要求を一時的に格納し、
受け付けた処理要求の受付時刻を発行し、
前記処理装置の性能に応じて処理要求の転送速度を調整しながら、前記受付時刻順に処理要求を該処理装置に中継する
処理を前記コンピュータに実行させることを特徴とするコンピュータ読み取り可能な記録媒体。
(付記11)
利用者から処理装置への処理要求を受け付けて該処理装置へ中継するコンピュータにプログラムを搬送する搬送信号であって、該プログラムは、
前記処理要求を受け付け、
受け付けた処理要求を一時的に格納し、
受け付けた処理要求の受付時刻を発行し、
前記処理装置の性能に応じて処理要求の転送速度を調整しながら、前記受付時刻順に処理要求を該処理装置に中継する
処理を前記コンピュータに実行させることを特徴とする搬送信号。
(付記12)
利用者から処理装置への処理要求を受け付けて該処理装置へ中継する遅延処理方法であって、
前記処理要求を受け付け、
受け付けた処理要求を一時的に蓄積し、
受け付けた処理要求の受付時刻を発行し、
前記処理装置の性能に応じて処理要求の転送速度を調整しながら、前記受付時刻順に処理要求を該処理装置に中継し、
前記処理装置が、中継された処理要求の処理を実行して処理結果を出力する
ことを特徴とする遅延処理方法。
利用者から処理装置への処理要求を受け付けて該処理装置へ中継する遅延ストレージ装置であって、
前記処理要求を受け付ける受付部と、
受け付けた処理要求を一時的に格納する要求格納部と、
受け付けた処理要求の受付時刻を格納する管理部と、
前記処理装置の性能に応じて処理要求の転送速度を調整しながら、前記受付時刻順に処理要求を該処理装置に中継する中継部と
を備えることを特徴とする遅延ストレージ装置。
(付記2)
前記中継部は、指定された単位時間当たりの処理要求件数を受け取り、前記処理装置に送信される単位時間当たりの処理要求件数が該指定された単位時間当たりの処理要求件数を越えないように、前記処理要求の転送速度を調整することを特徴とする付記1記載の遅延ストレージ装置。
(付記3)
前記中継部は、指定された遅延時間を受け取り、受け付けた処理要求の受付時刻から該指定された遅延時間が経過した後に、該処理要求を前記処理装置に中継することを特徴とする付記1記載の遅延ストレージ装置。
(付記4)
前記中継部は、中継停止の指示を受け取ったとき、次に中継再開の指示を受け取るまで処理要求の中継を停止することを特徴とする付記1記載の遅延ストレージ装置。
(付記5)
前記中継部は、前記処理装置の負荷状況を検知し、検知した負荷状況に基づいて前記処理要求の転送速度を調整することを特徴とする付記1記載の遅延ストレージ装置。
(付記6)
前記処理装置に中継された処理要求に対して該処理装置から返送された処理結果を格納する結果格納部をさらに備え、前記受付部は、処理要求を一意に識別するための識別子を発行して、該処理要求の要求元に該識別子を返送し、該要求元が該識別子を用いて該処理要求に対する処理結果を要求したとき、該結果格納部から対応する処理結果を読み出して該要求元に送信することを特徴とする付記1記載の遅延ストレージ装置。
(付記7)
前記受付部は、受け付けた処理要求の中継が遅延する場合、中継遅延理由に応じてあらかじめ決められた遅延メッセージを、該処理要求に対する回答として該処理要求の要求元に返送することを特徴とする付記1記載の遅延ストレージ装置。
(付記8)
前記処理装置に中継された処理要求に対して該処理装置から返送された処理結果を格納する結果格納部をさらに備え、前記受付部は、処理要求を一意に識別するための識別子を発行し、該識別子と予測される中継遅延時間を含む遅延メッセージを生成して前記要求元に返送し、該要求元が該識別子を用いて該処理要求に対する処理結果を要求したとき、該結果格納部から対応する処理結果を読み出して該要求元に送信することを特徴とする付記7記載の遅延ストレージ装置。
(付記9)
利用者から処理装置への処理要求を受け付けて該処理装置へ中継するコンピュータのためのプログラムであって、
前記処理要求を受け付け、
受け付けた処理要求を一時的に格納し、
受け付けた処理要求の受付時刻を発行し、
前記処理装置の性能に応じて処理要求の転送速度を調整しながら、前記受付時刻順に処理要求を該処理装置に中継する
処理を前記コンピュータに実行させることを特徴とするプログラム。
(付記10)
利用者から処理装置への処理要求を受け付けて該処理装置へ中継するコンピュータのためのプログラムを記録した記録媒体であって、該プログラムは、
前記処理要求を受け付け、
受け付けた処理要求を一時的に格納し、
受け付けた処理要求の受付時刻を発行し、
前記処理装置の性能に応じて処理要求の転送速度を調整しながら、前記受付時刻順に処理要求を該処理装置に中継する
処理を前記コンピュータに実行させることを特徴とするコンピュータ読み取り可能な記録媒体。
(付記11)
利用者から処理装置への処理要求を受け付けて該処理装置へ中継するコンピュータにプログラムを搬送する搬送信号であって、該プログラムは、
前記処理要求を受け付け、
受け付けた処理要求を一時的に格納し、
受け付けた処理要求の受付時刻を発行し、
前記処理装置の性能に応じて処理要求の転送速度を調整しながら、前記受付時刻順に処理要求を該処理装置に中継する
処理を前記コンピュータに実行させることを特徴とする搬送信号。
(付記12)
利用者から処理装置への処理要求を受け付けて該処理装置へ中継する遅延処理方法であって、
前記処理要求を受け付け、
受け付けた処理要求を一時的に蓄積し、
受け付けた処理要求の受付時刻を発行し、
前記処理装置の性能に応じて処理要求の転送速度を調整しながら、前記受付時刻順に処理要求を該処理装置に中継し、
前記処理装置が、中継された処理要求の処理を実行して処理結果を出力する
ことを特徴とする遅延処理方法。
本発明によれば、Webサーバ等の後段の処理装置に処理要求が集中し、高負荷により処理に遅延が生じるような場合に、処理要求の転送速度を調整しながら処理要求を処理装置に中継することで、処理装置のあふれを防ぐことが可能となる。
また、利用者にとっては、後段の処理装置の負荷が高くなった場合でも、回答なしに処理要求が待たされることがなくなり、後で処理結果を受け取ることも可能となる。
Claims (12)
- 利用者から処理装置への処理要求を受け付けて該処理装置へ中継する遅延ストレージ装置であって、
前記処理要求を受け付ける受付部と、
受け付けた処理要求を一時的に格納する要求格納部と、
受け付けた処理要求の受付時刻を格納する管理部と、
前記処理装置の性能に応じて処理要求の転送速度を調整しながら、前記受付時刻順に処理要求を該処理装置に中継する中継部と
を備えることを特徴とする遅延ストレージ装置。 - 前記中継部は、指定された単位時間当たりの処理要求件数を受け取り、前記処理装置に送信される単位時間当たりの処理要求件数が該指定された単位時間当たりの処理要求件数を越えないように、前記処理要求の転送速度を調整することを特徴とする請求項1記載の遅延ストレージ装置。
- 前記中継部は、指定された遅延時間を受け取り、受け付けた処理要求の受付時刻から該指定された遅延時間が経過した後に、該処理要求を前記処理装置に中継することを特徴とする請求項1記載の遅延ストレージ装置。
- 前記中継部は、中継停止の指示を受け取ったとき、次に中継再開の指示を受け取るまで処理要求の中継を停止することを特徴とする請求項1記載の遅延ストレージ装置。
- 前記中継部は、前記処理装置の負荷状況を検知し、検知した負荷状況に基づいて前記処理要求の転送速度を調整することを特徴とする請求項1記載の遅延ストレージ装置。
- 前記処理装置に中継された処理要求に対して該処理装置から返送された処理結果を格納する結果格納部をさらに備え、前記受付部は、処理要求を一意に識別するための識別子を発行して、該処理要求の要求元に該識別子を返送し、該要求元が該識別子を用いて該処理要求に対する処理結果を要求したとき、該結果格納部から対応する処理結果を読み出して該要求元に送信することを特徴とする請求項1記載の遅延ストレージ装置。
- 前記受付部は、受け付けた処理要求の中継が遅延する場合、中継遅延理由に応じてあらかじめ決められた遅延メッセージを、該処理要求に対する回答として該処理要求の要求元に返送することを特徴とする請求項1記載の遅延ストレージ装置。
- 前記処理装置に中継された処理要求に対して該処理装置から返送された処理結果を格納する結果格納部をさらに備え、前記受付部は、処理要求を一意に識別するための識別子を発行し、該識別子と予測される中継遅延時間を含む遅延メッセージを生成して前記要求元に返送し、該要求元が該識別子を用いて該処理要求に対する処理結果を要求したとき、該結果格納部から対応する処理結果を読み出して該要求元に送信することを特徴とする請求項7記載の遅延ストレージ装置。
- 利用者から処理装置への処理要求を受け付けて該処理装置へ中継するコンピュータのためのプログラムであって、
前記処理要求を受け付け、
受け付けた処理要求を一時的に格納し、
受け付けた処理要求の受付時刻を発行し、
前記処理装置の性能に応じて処理要求の転送速度を調整しながら、前記受付時刻順に処理要求を該処理装置に中継する
処理を前記コンピュータに実行させることを特徴とするプログラム。 - 利用者から処理装置への処理要求を受け付けて該処理装置へ中継するコンピュータのためのプログラムを記録した記録媒体であって、該プログラムは、
前記処理要求を受け付け、
受け付けた処理要求を一時的に格納し、
受け付けた処理要求の受付時刻を発行し、
前記処理装置の性能に応じて処理要求の転送速度を調整しながら、前記受付時刻順に処理要求を該処理装置に中継する
処理を前記コンピュータに実行させることを特徴とするコンピュータ読み取り可能な記録媒体。 - 利用者から処理装置への処理要求を受け付けて該処理装置へ中継するコンピュータにプログラムを搬送する搬送信号であって、該プログラムは、
前記処理要求を受け付け、
受け付けた処理要求を一時的に格納し、
受け付けた処理要求の受付時刻を発行し、
前記処理装置の性能に応じて処理要求の転送速度を調整しながら、前記受付時刻順に処理要求を該処理装置に中継する
処理を前記コンピュータに実行させることを特徴とする搬送信号。 - 利用者から処理装置への処理要求を受け付けて該処理装置へ中継する遅延処理方法であって、
前記処理要求を受け付け、
受け付けた処理要求を一時的に蓄積し、
受け付けた処理要求の受付時刻を発行し、
前記処理装置の性能に応じて処理要求の転送速度を調整しながら、前記受付時刻順に処理要求を該処理装置に中継し、
前記処理装置が、中継された処理要求の処理を実行して処理結果を出力することを特徴とする遅延処理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2003/006004 WO2004102396A1 (ja) | 2003-05-14 | 2003-05-14 | 遅延ストレージ装置および遅延処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2004102396A1 true JPWO2004102396A1 (ja) | 2006-07-13 |
Family
ID=33446530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004571845A Pending JPWO2004102396A1 (ja) | 2003-05-14 | 2003-05-14 | 遅延ストレージ装置および遅延処理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7634534B2 (ja) |
JP (1) | JPWO2004102396A1 (ja) |
WO (1) | WO2004102396A1 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006112381A1 (ja) * | 2005-04-14 | 2006-10-26 | Matsushita Electric Industrial Co., Ltd. | サーバ装置、情報通知方法、および情報通知システム |
US7917124B2 (en) | 2005-09-20 | 2011-03-29 | Accenture Global Services Limited | Third party access gateway for telecommunications services |
JP4653618B2 (ja) * | 2005-09-28 | 2011-03-16 | 株式会社三菱東京Ufj銀行 | アクセス管理装置、方法及びプログラム |
US8694616B2 (en) * | 2005-10-28 | 2014-04-08 | Accenture Global Services Limited | Service broker integration layer for supporting telecommunication client service requests |
US7920583B2 (en) | 2005-10-28 | 2011-04-05 | Accenture Global Services Limited | Message sequencing and data translation architecture for telecommunication services |
US20070226737A1 (en) * | 2006-03-22 | 2007-09-27 | International Business Machines Corporation | Methods, systems, and storage mediums for monitoring and controlling command usage |
US8566695B2 (en) * | 2007-03-30 | 2013-10-22 | Sandisk Technologies Inc. | Controlling access to digital content |
US20090063587A1 (en) * | 2007-07-12 | 2009-03-05 | Jakob Holger | Method and system for function-specific time-configurable replication of data manipulating functions |
US7822841B2 (en) * | 2007-10-30 | 2010-10-26 | Modern Grids, Inc. | Method and system for hosting multiple, customized computing clusters |
US7912975B2 (en) * | 2008-03-03 | 2011-03-22 | Alcatel Lucent | System and method for application layer resource traffic control |
JP2009289040A (ja) * | 2008-05-29 | 2009-12-10 | Seiko Epson Corp | Id発行システムおよびこれに用いられるid発行サーバ |
US20100017807A1 (en) * | 2008-07-15 | 2010-01-21 | Radoslav Danilak | System, method, and computer program product for transparent communication between a storage device and an application |
US20110040903A1 (en) * | 2009-08-17 | 2011-02-17 | Lsi Corporation | Methods and apparatus for automated performance limiting of an i/o control device |
US20130091266A1 (en) | 2011-10-05 | 2013-04-11 | Ajit Bhave | System for organizing and fast searching of massive amounts of data |
EP2648364B1 (en) | 2012-03-07 | 2018-06-06 | Accenture Global Services Limited | Communication collaboration |
JP2014010703A (ja) * | 2012-06-29 | 2014-01-20 | International Business Maschines Corporation | 情報処理システムの連携を支援するシステム、装置および連携方法 |
JP2015138354A (ja) * | 2014-01-21 | 2015-07-30 | 富士ゼロックス株式会社 | 情報処理装置、情報処理システム、及びプログラム |
NO2963875T3 (ja) * | 2014-07-02 | 2018-07-28 | ||
US10579309B2 (en) * | 2017-02-16 | 2020-03-03 | International Business Machines Corporation | Method for increasing throughput in a distributed storage network |
JP6802777B2 (ja) * | 2017-11-24 | 2020-12-23 | 株式会社カカクコム | 障害耐性の向上した処理の実行要求及びその結果応答のための方法、プログラム及びシステム |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0619819A (ja) | 1992-07-01 | 1994-01-28 | Fujitsu Ltd | 送受信制御装置 |
JPH07129498A (ja) | 1993-10-29 | 1995-05-19 | Matsushita Electric Ind Co Ltd | 問い合わせ型遠隔手続き処理装置 |
JPH0950412A (ja) * | 1995-08-10 | 1997-02-18 | Hitachi Ltd | 遠隔手続き呼び出し方法およびシステム |
US6070184A (en) * | 1997-08-28 | 2000-05-30 | International Business Machines Corporation | Server-side asynchronous form management |
JP2000261556A (ja) * | 1999-03-05 | 2000-09-22 | Toshiba Corp | メッセージ応答システム、及びメッセージ応答方法 |
JP2000268012A (ja) | 1999-03-12 | 2000-09-29 | Nec Corp | クライアントサーバシステムにおけるサーバ負荷の分散方法ならびに装置 |
US7454457B1 (en) * | 2000-02-07 | 2008-11-18 | Parallel Networks, Llc | Method and apparatus for dynamic data flow control using prioritization of data requests |
JP3421308B2 (ja) | 2000-08-08 | 2003-06-30 | 株式会社エヌ・ティ・ティ エムイー | サーバ支援システム及び方法 |
JP3885483B2 (ja) | 2000-10-30 | 2007-02-21 | 富士通株式会社 | サービス実行方法および装置 |
JP2002189650A (ja) * | 2000-12-20 | 2002-07-05 | Hitachi Ltd | 計算機制御方法及び装置並びにその処理プログラムを格納した記録媒体 |
JP3709797B2 (ja) | 2001-02-27 | 2005-10-26 | 日本電気株式会社 | プロキシサーバとウェブサーバを含むシステム及びそのプログラム |
JP2002259234A (ja) | 2001-03-06 | 2002-09-13 | Matsushita Electric Ind Co Ltd | アクセス制御装置及びアクセス制御プログラム |
US7152102B2 (en) * | 2002-10-31 | 2006-12-19 | Microsoft Corporation | On-line wizard entry point management computer system and method |
-
2003
- 2003-05-14 WO PCT/JP2003/006004 patent/WO2004102396A1/ja active Application Filing
- 2003-05-14 JP JP2004571845A patent/JPWO2004102396A1/ja active Pending
-
2005
- 2005-05-17 US US11/130,364 patent/US7634534B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20050228906A1 (en) | 2005-10-13 |
WO2004102396A1 (ja) | 2004-11-25 |
US7634534B2 (en) | 2009-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPWO2004102396A1 (ja) | 遅延ストレージ装置および遅延処理方法 | |
US6023722A (en) | High-availability WWW computer server system with pull-based load balancing using a messaging and queuing unit in front of back-end servers | |
EP1320237B1 (en) | System and method for controlling congestion in networks | |
JP4144897B2 (ja) | 共通作業キュー環境における最適格サーバ | |
US20060031395A1 (en) | Method and system for managing programs for web service system | |
US9432449B2 (en) | Managing connection failover in a load balancer | |
EP1247188B1 (en) | Converting messages between point-to-point and subject-based addressing | |
US6934761B1 (en) | User level web server cache control of in-kernel http cache | |
US20230027013A1 (en) | Implementing a Queuing System In a Distributed Network | |
JP4034312B2 (ja) | 分散処理制御装置、分散処理制御方法および分散処理制御プログラム | |
JP2011134219A (ja) | ユーザ環境退避制御システム、装置、方法、及びプログラム | |
US20110145191A1 (en) | Proxy-Based, Distributed Computer-Aided Dispatch System | |
JP4353036B2 (ja) | リモート接続システム、サーバコンピュータ、リモート接続方法及びプログラム | |
US8516146B1 (en) | Method and system for reduction of delay and bandwidth requirements in internet data transfer | |
JPWO2008105099A1 (ja) | アプリケーション連携制御プログラム、アプリケーション連携制御方法およびアプリケーション連携制御装置 | |
JP2008097184A (ja) | アクセス負荷制御装置、その方法およびそのプログラム、ならびに、投稿受付システム | |
US10320663B2 (en) | Communication device, communication system, and computer program product for performing interactive communication via relay servers | |
JP4646931B2 (ja) | サーバ装置およびリクエスト整理方法 | |
JP2022504271A (ja) | クライアントソフトウェアバックオフ | |
JP2009080587A (ja) | データ転送サーバ | |
JP4897644B2 (ja) | 端末に対するアクセス数制御方法、端末、制御サーバ及びプログラム | |
JP2011100370A (ja) | 情報提供装置、情報提供システムおよび情報提供方法 | |
JP5251753B2 (ja) | 端末、リクエスト送信方法、およびプログラム | |
JPH06231066A (ja) | データ通信システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081021 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081215 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090825 |