JP2019096112A - Request to execute processing with improved resistance to failures, and method, program, and system for responding to results of the same - Google Patents
Request to execute processing with improved resistance to failures, and method, program, and system for responding to results of the same Download PDFInfo
- Publication number
- JP2019096112A JP2019096112A JP2017225692A JP2017225692A JP2019096112A JP 2019096112 A JP2019096112 A JP 2019096112A JP 2017225692 A JP2017225692 A JP 2017225692A JP 2017225692 A JP2017225692 A JP 2017225692A JP 2019096112 A JP2019096112 A JP 2019096112A
- Authority
- JP
- Japan
- Prior art keywords
- request
- result
- processing
- execution
- reservation
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 101
- 238000000034 method Methods 0.000 title claims description 195
- 230000004044 response Effects 0.000 claims abstract description 60
- 230000008569 process Effects 0.000 claims description 179
- 230000005540 biological transmission Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
Description
本発明は、クライアント・サーバ型システムに関する。より詳細には、障害耐性の向上した、処理の実行要求及びその結果応答を実施するクライアント・サーバ型システムに関する。 The present invention relates to a client server system. More particularly, the present invention relates to a client-server system that implements processing requests for execution and the resultant responses with improved fault tolerance.
飲食店(例えば、レストラン)等についてのクライアント・サーバ型予約システムが存在する。 There is a client server type reservation system for a restaurant (for example, a restaurant) or the like.
図6は、従来技術に係る予約システムの全体的な処理の流れ600を表す図である。610及び620はそれぞれクライアント及びサーバを示しており、図示しないネットワークを介して接続されている。クライアント610は、サーバ620に対して、予約に係る処理(例えば、ある飲食店等についての予約(登録)、予約変更及び予約キャンセル)の実行要求を送信する。サーバ620は、予約に係る処理を実際に実行し、受信した処理の実行要求に対して、当該処理の結果を示す応答を返信する。
FIG. 6 is a diagram showing an
上記のような予約システムによれば、ネットワークに起因する障害が発生し、予約に係る処理の実行要求又はその応答の伝達に失敗した場合に、次のような問題が生じることになる。 According to the reservation system as described above, when a failure caused by the network occurs and transmission of a request for execution of a process related to reservation or transmission of its response fails, the following problem occurs.
サーバ620において実際に実行される予約に係る処理は、その完了まで比較的時間がかかり、且つ、当該時間が変動する処理である。そのため、クライアント610は、処理の実行要求の送信後、基本的には応答を待ち続けることになる。しかしながら、応答が返ってこない場合、クライアント610は、半永久的に又は既定のタイムアウト時間(例えば、20秒)だけ応答を待ち続けることになり、従って、クライアント610における要求から応答までに係る処理の滞留を招くことになる。このような滞留は、二次的に、クライアント610において障害を引き起こす可能性がある。
The process related to the reservation actually executed in the
また、送信した処理の実行要求に対して応答が返ってこない場合、クライアント610の側では、予約に係る処理の実行が成功したのか失敗したのか(例えば、予約登録が成功したのか失敗したのか)を判断することができない。そのため、クライアント610は、次のアクション(予約したユーザへのお知らせ等)を取ることができない。
Also, if no response is returned to the process execution request that has been sent, on the side of the
更に、予約に係る処理の実行要求又はその応答の伝達に失敗した場合、飲食店等とユーザとの間で、予約に係る処理に関し認識のずれが生じてしまうという問題がある。例えば、応答は返ってこないもののサーバ620において予約に係る処理が成功していた(例えば、予約登録が成功していた)場合には、予約をしたユーザはそのことを知ることができないために、飲食店等において、予約は入っているにも関わらず来客がないという状況となる。また、応答は返ってこないもののサーバ620において予約のキャンセルが成功していた場合には、キャンセルを希望したユーザは、応答が返ってこないためキャンセルできなかったと考えて飲食店等に来店するが、飲食店等側では、キャンセルができているという状況となる。
Furthermore, when transmission of an execution request for a process relating to a reservation or a response thereof fails, there is a problem that a recognition deviation is generated between the restaurant and the user and the user regarding the process relating to the reservation. For example, if the processing related to the reservation is successful (for example, the reservation registration has been successful) in the
本発明は、以上に鑑みてなされたものであり、本発明の課題は、障害耐性の向上した処理の実行要求及びその結果応答を実施することである。 The present invention has been made in view of the above, and it is an object of the present invention to carry out a request for execution of processing with improved fault tolerance and a result response.
本発明の実施の第1態様は、第1のシステムが、第2のシステムに、処理の実行要求を送信するステップと、第1のシステムが、処理の実行受付を示す、処理の実行要求に対する応答を待ち受けるステップと、第1のシステムが、第2のシステムに、処理の結果要求を送信するステップとを含む方法である。 According to a first aspect of the present invention, a first system transmits a process execution request to a second system, and the first system indicates a process execution acceptance for the process execution request. The method comprises the steps of: waiting for a response; and transmitting a request for processing result to the second system.
当該方法は、第1のシステムが、処理の実行受付を示す、処理の実行要求に対する応答を受信した場合に、第2のシステムに処理の結果要求を繰り返し送信するように自身を設定するステップを更に含んでいてよい。 In the method, the first system sets itself to repeatedly transmit the processing result request to the second system when the first system receives a response to the processing execution request indicating acceptance of the processing execution. It may further be included.
当該方法は、第1のシステムが、識別情報を記憶するステップを更に含んでいてよい。このとき、処理の実行要求及び処理の結果要求は、記憶した前記識別情報を含むことが好ましい。 The method may further include the step of the first system storing the identification information. At this time, it is preferable that the process execution request and the process result request include the stored identification information.
本発明の実施の第2態様は、システムが、処理の実行要求を受信した場合に、処理の実行の完了を待たずに、処理の実行受付を示す応答を返信するステップと、システムが、処理の結果要求を受信した場合に、処理の結果を返信するために、処理の結果の取得を試行するステップとを含む方法である。 In the second aspect of the present invention, the system returns a response indicating acceptance of the process execution without waiting for the completion of the process execution when the system receives the process execution request, and the system performs the process Attempting to obtain the result of the process in order to return the result of the process when the request for the result of the process is received.
前記処理の実行要求及び前記処理の結果要求は、識別情報を含むことが好ましい。このとき、当該方法は、システムが、実行要求を受信した処理の結果を、実行要求に含まれる識別情報に関連付けて記憶するステップを更に含むことができる。また、処理の結果の取得を試行するステップは、結果要求を受信した処理の結果の取得を、結果要求に含まれる識別情報に基づき試行するステップを含むことができる。 It is preferable that the process execution request and the process result request include identification information. At this time, the method may further include the step of the system storing the result of the process of receiving the execution request in association with the identification information included in the execution request. Also, attempting to obtain the result of the process may include attempting to obtain the result of the process that received the result request based on the identification information included in the result request.
本発明の実施の第3態様は、1以上のコンピュータに、全体として、上記方法を実行させるプログラムである。 A third aspect of the present invention is a program that causes one or more computers to execute the above method as a whole.
本発明の実施の第4態様は、上記方法を実行するシステムである。 A fourth aspect of the present invention is a system for performing the above method.
本発明の実施形態によれば、ネットワークに起因する障害のほか、システムにおける障害に対する耐性をも向上させた、処理の実行要求及びその結果応答を実施することができる。 According to the embodiment of the present invention, it is possible to implement a process execution request and a response as a result with improved tolerance to a failure in a system as well as a failure caused by a network.
1 本発明の一実施形態
以下、図面を参照して、本発明の一実施形態について説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 1. One Embodiment of the Present Invention Hereinafter, one embodiment of the present invention will be described with reference to the drawings.
1−1 一実施形態に係る予約システム
図1は、本発明の一実施形態に係る例示の予約システム100の構成を表している。
1-1 Reservation System According to an Embodiment FIG. 1 shows a configuration of an
110は、飲食店等の予約を行うユーザが利用するシステム(サブ・システム。予約に係る処理の流れの観点からはクライアントとして機能するため、以下、「クライアント」という。)を示している。クライアント110は、1以上のコンピュータから構成されたものであり、飲食店等の情報が記載され、ユーザから飲食店等についての予約の指示の入力を受け、当該予約の指示をクライアント110に送信するためのウェブ・ページを提供するウェブ・サーバとしての機能も有している。なお、「コンピュータ」については、「2 コンピュータ」の節も参照されたい。
115は、ユーザの手元にあり、クライアント110からウェブ・ページを取得して表示し、ユーザからの予約の指示の入力を受け、当該予約の指示をクライアント110に送信するコンピュータ(以下、「ユーザ端末」という。)を示している。図1ではユーザ端末115は1つのみ描かれているが、実際には複数のユーザが使用する複数のユーザ端末が存在する。
115 is a computer that is at the user's hand, acquires a web page from the
120は、飲食店等の予約を管理するシステム(サブ・システム。予約に係る処理の流れの観点からはサーバとして機能するため、以下、「サーバ」という。)を示している。サーバ120は、1以上のコンピュータから構成されたものであり、飲食店等の予約処理に係る要求を受けるためのウェブ・サーバとしての機能も有している。
130は、1以上のネットワーク(サブネットワーク)から構成されるネットワークを示している。ネットワーク130は、ローカル・エリア・ネットワーク(LAN)及びインターネット等のワイド・エリア・ネットワーク(WAN)の一方又は双方を含んでいてよい。少なくとも、クライアント110とサーバ120及びクライアント110とユーザ端末115は、ネットワーク130を介して通信可能である。
1−2 クライアント110の概要
以下、図2A及びBを参照して、クライアント110が実行する例示の一連の処理について説明する。なお、上述した通り、クライアント110は1以上のコンピュータから構成されたものであるため、一連の処理は、当該1以上のコンピュータが全体として実行するものである。なお、一連の処理が含む各ステップは、クライアント110を構成する1以上のコンピュータのうちの何れか1つが実行するものであるが、ステップごとに実行するコンピュータが異なっていてもよい。以下に説明するコンピュータが実行する処理(以下、「例示処理」という。)は、プログラムがコンピュータに、より詳細には、当該コンピュータのプロセッサに実行させるものであってよい。また、そのようなプログラムは、公知のコンピュータ可読記憶媒体、より詳細には、例えば非一時的コンピュータ可読記憶媒体に記憶することができる。更に、例示処理が含むステップは、一部を省略することができ、その実行順序を変更することができ、例示処理には、更なるステップを追加することができる。
1-2 Overview of
図2Aは、クライアント110がユーザ端末115から予約の指示を受信したときに呼び出される例示の処理200のフローチャートである。予約の指示の例は、ある飲食店等についての予約(予約の登録)、予約の変更及び予約のキャンセルである。
FIG. 2A is a flowchart of an
202は、ユーザ端末115から受信した予約の指示に基づく処理の実行要求を識別するための情報(以下、「トランザクションID」という。)を、以後のステップのために記憶するステップを示している。この記憶は一時的なものであってもよいが、少なくとも、クライアント110における予約システム100に係るプログラムが異常終了し、再起動した後であっても取得できるような態様で記憶されることが好ましい。なお、トランザクションIDは、クライアント110が任意の手法により生成することができる。
204は、サーバ120に、記憶されたトランザクションIDを用いて当該処理の実行要求を送信するステップを示している。具体的には、サーバ120は、処理の種類ごとに、処理の実行要求を受けるためのURLをウェブAPIとして有することができ、従って、サーバ120は、予約登録用API、予約変更用API及び予約キャンセル用API等を有することができる。また、ある処理の実行要求は、当該処理に対応したURLに、トランザクションIDを含む当該処理に必要な情報(予約すべき飲食店等予約内容を特定する情報や、既にした予約を特定する情報等)をパラメータとして付加したものを宛先としたHTTPリクエストであることができる。
The
206は、処理の実行要求に対する応答を受信したかを判定するステップを示している。具体的には、処理の実行要求に対する応答は、HTTPリクエストに対するHTTPレスポンスであることができる。処理の実行要求に対する応答を受信している場合には後述のステップ214に進み、そうでない場合にはステップ208に進む。 206 shows the step of determining whether a response to the process execution request has been received. Specifically, the response to the process execution request can be an HTTP response to an HTTP request. If a response to the process execution request has been received, the process proceeds to step 214 described later, and if not, the process proceeds to step 208.
208は、処理の実行要求を最後に送信してから第1の時間経過したかを判定するステップを示している。第1の時間は任意であるが、例えば2秒である。処理の実行要求を最後に送信してから第1の時間経過している場合には後述するステップ210に進み、そうでない場合にはステップ206に戻る。
ステップ210は、第1の条件を満たすかを判定するステップを示している。第1の条件は任意であるが、本実施例では、同じトランザクションIDを用いた処理の実行要求の送信リトライを既に3回しているという条件である。第1の条件を満たしている場合には後述するステップ212に進み、そうでない場合にはステップ204に戻る。ステップ210の結果として、処理の実行要求の所定回数の送信リトライが実現できることになる。
Step 210 shows the step of determining whether the first condition is met. The first condition is arbitrary, but in the present embodiment, the condition is that the transmission retry of the execution request of the process using the same transaction ID has already been made three times. If the first condition is satisfied, the process proceeds to step 212 described later, and if not, the process returns to step 204. As a result of
212は、所定の処理を行うステップを示している。ステップ212に達したことは、処理の実行要求の送信リトライを所定回数繰り返したにもかかわらず、その応答が返ってこなかったことを意味する。従って、この所定の処理は、対応するエラー処理であってよいが、エラー処理に限定されるわけではない。なお、エラー処理としては、具体的には、エラーログを記憶する、予約システム100の保守担当者が保持する携帯電話に発報する、ユーザ端末115にエラーが生じたことを通知する等が考えられるが、これらに限定されるわけではない。
214は、処理の実行要求に対する応答が処理の実行受付を示すかを判定するステップを示している。応答は、処理の実行受付失敗を示すことがある。処理の実行要求に対する応答が処理の実行受付を示している場合には後述するステップ216に進み、そうでない場合にはステップ220に進む。
なお、ステップ206、208及び214は、全体として、処理の実行受付を示す、処理の実行要求に対する応答を待ち受けるステップを構成するステップの例である。
216は、ユーザ端末115に処理の実行が開始されることを通知するステップを示している。このステップの結果、ユーザ端末115には処理が実行中である旨の表示をすることができる。
216 shows the step of notifying the
218は、所定時間間隔でサーバ120に処理の結果要求を送信するようにクライアント110を設定するステップを示している。所定時間は任意であるが、例えば3秒である。このステップの結果、所定時間間隔で、後述する処理250が呼び出されるようになる。
218 shows the steps of configuring the
なお、ステップ218は、サーバ120に処理の結果要求を繰り返し送信するようにクライアント110を設定するステップの一例である。送信と送信との間の時間は、変動してもよい。
Step 218 is an example of setting the
220は、所定の処理を行うステップを示している。ステップ220に達したことは、処理の実行受付に失敗したことを意味する。従って、ステップ220における所定の処理は、対応するエラー処理であってよいが、エラー処理に限定されるわけではない。また、ステップ220における所定の処理は、ステップ212における所定の処理と同様の処理であってよいが、異なる処理であってもよい。
220 shows the step of performing a predetermined process. Having reached
図2Bは、ステップ218の結果として所定時間間隔で呼び出される例示の処理250のフローチャートである。なお、処理250は、クライアント110において、予約システム100に係るプログラムが異常終了した後、再起動したとき等の他のタイミングで呼び出されることもある。
FIG. 2B is a flowchart of an
252は、サーバ120に、ステップ202において記憶されたトランザクションIDを用いて処理の結果要求を送信するステップを示している。具体的には、サーバ120は、処理の結果要求を受けるためのURLをウェブAPIとして有することができ、従って、サーバ120は、予約結果確認用APIを有することができる。また、処理の結果要求は、対応したURLに、トランザクションIDを含む必要な情報をパラメータとして付加したものを宛先としたHTTPリクエストであることができる。
252 shows the step of transmitting the processing result request to the
254は、処理の結果要求に対する応答を受信したかを判定するステップを示している。具体的には、処理の結果要求に対する応答は、HTTPリクエストに対するHTTPレスポンスであることができる。処理の結果要求に対する応答を受信している場合には後述のステップ262に進み、そうでない場合にはステップ256に進む。 254 shows the step of determining whether a response to the processing result request has been received. Specifically, the response to the processing result request can be an HTTP response to an HTTP request. As a result of processing, if a response to the request has been received, the process proceeds to step 262 described later, and if not, the process proceeds to step 256.
256は、処理の結果要求を最後に送信してから第2の時間経過したかを判定するステップを示している。第2の時間は任意であるが、例えば2秒である。処理の結果要求を最後に送信してから第2の時間経過している場合には後述するステップ258に進み、そうでない場合にはステップ254に戻る。 256 shows the step of determining whether a second time has elapsed since the last transmission of the processing result request. The second time is optional, for example, 2 seconds. As a result of processing, if the second time has elapsed since the last request was sent, the process proceeds to step 258 described later, and otherwise returns to step 254.
ステップ258は、第2の条件を満たすかを判定するステップを示している。第2の条件は任意であるが、本実施例では、対応するトランザクションIDが生成されてから既に1分が経過しているという条件である。第2の条件を満たしている場合には後述するステップ260に進み、そうでない場合には処理250は終了する。
Step 258 shows the step of determining whether the second condition is met. The second condition is arbitrary, but in the present embodiment, one minute has already passed since the corresponding transaction ID was generated. If the second condition is satisfied, the process proceeds to step 260 described later, and if not, the
なお、ステップ258並びに後述するステップ266及び270の結果として、一定時間が経過するまでの処理の結果要求の所定時間間隔での送信リトライが実現できることになる。
Note that, as a result of
260は、所定の処理を行うステップを示している。ステップ260に達したことは、処理の結果要求の送信リトライを一定時間繰り返したにもかかわらず、その応答が返ってこなかったことを意味する。従って、ステップ260における所定の処理は、対応するエラー処理であってよいが、エラー処理に限定されるわけではない。また、ステップ260における所定の処理は、ステップ212における所定の処理と同様の処理であってよいが、異なる処理であってもよい。
260 shows the step of performing a predetermined process. The fact that
262は、処理の結果要求に対する応答が処理の結果を示すかを判定するステップを示している。応答は、処理の結果ではなく、処理が実行中であることを示すことがある。処理の結果要求に対する応答が処理の結果を示している場合には後述するステップ264に進み、そうでない場合にはステップ266に進む。 262 shows the step of determining whether the response to the processing result request indicates the processing result. The response may not indicate the result of the process, but may indicate that the process is being performed. Processing Result If the response to the request indicates the processing result, the process proceeds to step 264 described later, otherwise proceeds to step 266.
264は、処理結果に応じた処理を行うステップを示している。処理結果に応じた処理の例は、ユーザ端末115に処理結果を通知することであるが、これに限定されるわけではない。
H.264 shows steps for performing processing according to the processing result. Although the example of the process according to a process result is notifying a
266は、第3の条件を満たすかを判定するステップを示している。第3の条件は任意であるが、本実施例では第2の条件と同一である。第3の条件を満たしている場合には後述するステップ268に進み、そうでない場合には処理250は終了する。
266 shows the step of determining whether the third condition is met. Although the third condition is optional, it is the same as the second condition in the present embodiment. If the third condition is satisfied, the process proceeds to step 268 described later, and if not, the
268は、所定の処理を行うステップを示している。ステップ268に達したことは、処理の結果要求の送信リトライを一定時間繰り返したにもかかわらず、処理結果を示す応答が返ってこなかった即ち処理の実行が失敗している可能性があることを意味する。従って、ステップ268における所定の処理は、対応するエラー処理であってよいが、エラー処理に限定されるわけではない。また、ステップ268における所定の処理は、ステップ212における所定の処理と同様の処理であってよいが、異なる処理であってもよい。
268 indicates steps for performing predetermined processing. The fact that
270は、ステップ218においてなされた所定間隔での処理の結果要求の送信設定を解除するステップを示している。このステップの結果、処理250は、以後、所定間隔では呼び出されないようになる。
A
1−3 サーバ120の概要
以下、図3A〜Cを参照して、サーバ120が実行する例示の一連の処理について説明する。なお、上述した通り、サーバ120は1以上のコンピュータから構成されたものであるため、一連の処理は、当該1以上のコンピュータが全体として実行するものである。なお、一連の処理が含む各ステップは、サーバ120を構成する1以上のコンピュータのうちの何れか1つが実行するものであるが、ステップごとに実行するコンピュータが異なる場合があることに留意されたい。
1-3 Overview of
図3Aは、サーバ120が実行する例示の処理300のフローチャートである。
FIG. 3A is a flowchart of an
302は、処理の実行要求を受信したかを判定するステップを示している。処理の実行要求を受信している場合には後述するステップ304に、そうでない場合にはステップ302を繰り返す。
304は、受信した処理の実行要求に含まれるトランザクションIDの一時的な記憶を試行するステップを示している。具体的には、トランザクションIDを、揮発性の情報を一時的に記憶しておくストレージ(キャッシュ)に記憶することができる。また、このステップにおいて、処理の実行要求の受信日時等、その他の情報を記憶してもよい。
306は、ステップ304における試行が成功したかを判定するステップを示している。何らかのエラーが生じた場合には、試行が成功していないと判定されることになる。試行が成功した場合には後述するステップ308に進み、そうでない場合にはステップ310に進む。
306 illustrates the step of determining if the attempt in
308及び310は、それぞれ、受信した処理の実行要求に対する応答として、処理の実行受付を示す応答を生成するステップ及び処理の実行受付失敗を示す応答を生成するステップを示している。
312は、処理の実行を実際に開始するステップを示している。なお、本実施例においては、サーバ120における処理の実行要求を受信するインスタンスと、当該処理を実際に実行するインスタンスとは異なっており、ステップ312は、前者のインスタンスから後者のインスタンスへ当該処理の実行要求を送信するステップ(図示せず)を含む。ここで、1つのインスタンスの例は、1つの物理的なコンピュータ、物理的なコンピュータ又は仮想マシンにおいて実行されている1つの仮想マシン、及び、物理的なコンピュータ又は仮想マシンにおいて実行されている1つのプロセスである。なお、前者のインスタンスと後者のインスタンスとは同一であってもよい。
312 shows the step of actually starting the execution of the process. Note that, in the present embodiment, an instance that receives an execution request for processing in the
314は、受信した処理の実行要求に対する応答を返信するステップを示している。なお、ステップ314は、ステップ312とは非同期に実行されてよい。即ち、ステップ314は、実行が開始された処理の完了を待つことなく実行することができる。
314 shows the step of returning a response to the received request for processing execution. Note that
図3Bは、ステップ312の実行の結果呼び出される例示の処理330のフローチャートである。
FIG. 3B is a flowchart of an
332は、所定時間経過後に、ステップ304において一時的に記憶されたトランザクションIDが自動的に削除されるようにサーバ120を設定するステップを示している。この所定時間は任意であるが、例えば120秒である。
332 shows the step of setting the
334は、処理を実際に実行するステップを示している。 334 shows the step of actually executing the process.
336は、処理の結果を、対応するトランザクションIDに関連付けて記憶するステップを示している。なお、ステップ334において何らかのエラーが生じて処理が完了しなかった即ち処理の結果が得られなかった場合、ステップ336は実行されず、従って、処理の結果は記憶されないことに留意されたい。
336 shows the step of storing the result of processing in association with the corresponding transaction ID. It should be noted that if an error occurs in
338は、ステップ304において一時的に記憶されたトランザクションIDを削除するステップを示している。このステップは、ステップ332において設定されたトランザクションIDの自動削除とは独立したものである。即ち、本実施例では、一時的に記憶されたトランザクションIDは、所定時間が経過するか又は処理が完了した場合に削除されることになる。
338 shows the step of deleting the transaction ID temporarily stored in
図3Cは、サーバ120が実行する例示の処理360のフローチャートである。
FIG. 3C is a flowchart of an
362は、処理の結果要求を受信したかを判定するステップを示している。処理の結果要求を受信している場合には後述するステップ364に、そうでない場合にはステップ362を繰り返す。
362 shows the step of determining whether the processing result request has been received. If a process result request has been received, the process is repeated at
364は、受信した処理の結果要求が含むトランザクションIDに基づき、記憶された処理の結果の取得を試行するステップを示している。 364 indicates a step of attempting to acquire the stored processing result based on the transaction ID included in the received processing result request.
366は、ステップ364における試行が成功したかを判定するステップを示している。実行要求を受信した処理の実行が完了していない場合には、この試行に失敗することになる。なお、本実施例において、処理の実行が完了した場合にはトランザクションIDの一時的な記憶が削除されることから、ステップ366は、トランザクションIDが一時的に記憶されているかを判定するステップ(図示せず)を含む。試行が成功した場合には後述するステップ368に進み、そうでない場合にはステップ370に進む。
366 shows the step of determining if the attempt in
368及び370は、それぞれ、受信した処理の結果要求に対する応答として、処理の結果を示す応答を生成するステップ及び処理が実行中であることを示す応答を生成するステップを示している。
372は、処理の結果を取得したことを、トランザクションIDに関連付けて記憶するステップを示している。このステップの結果、サーバ120は、トランザクションIDに基づき、処理の結果を取得したことが記憶されているかを判定することによって、記憶されていれば、処理の結果がクライアント110に送信され、ひいてはユーザ端末115に通知されているであろうことを、記憶されていなければ未だユーザ端末115には通知されていないであろうことを認識することができるようになる。
372 shows the step of storing the result of processing in association with the transaction ID. As a result of this step, based on the transaction ID, the
374は、受信した処理の結果要求に対する応答を返信するステップを示している。 374 shows the step of returning a response to the received request for processing result.
1−4 予約システム100の全体的な処理の流れ
以下、図4A〜Dを参照して、様々な状況下における、予約システム100の全体的な例示の処理の流れについて説明する。なお、これら図において、ユーザ端末115及びネットワーク130は省略されている。
1-4 Overall Process Flow of
図4Aは、特段の障害が発生することなく一連の処理が行われた場合の、予約システム100の全体的な例示の処理の流れ400を表す図である。
FIG. 4A is a diagram illustrating the overall
401は、ユーザ端末115からクライアント110に予約の指示が送信されたことを示している。
401 indicates that the
402は、クライアント110からサーバ120に、予約に係る処理の実行要求が送信されたことを示している。
403は、サーバ120において処理の実行を実際に開始するために、処理の実行要求を受信するインスタンスから処理の実行を実際に行うインスタンスに処理の実行要求が送信されたことを示している。
403 indicates that, in order to actually start the execution of the process in the
404は、サーバ120が処理の実行受付を示す応答を返信したことを示している。
404 indicates that the
405は、クライアント110がユーザ端末に、処理の実行開始を通知したことを示している。
405 indicates that the
406は、サーバ120において実行要求を受けた処理が完了したことを示している。
407は、クライアント110からサーバ120に、処理の結果要求が送信されたことを示している。この図において、407の発生は406の発生よりも後であるから、処理360において、サーバ120は処理結果を取得可能である。
408は、サーバ120が処理結果を示す応答を返信したことを示している。
409は、クライアント110が、処理結果に応じた処理として、ユーザ端末115に処理結果を通知したことを示している。
このように、予約システム100によれば、ユーザ端末115からの予約の指示に従い、当該指示に基づく予約に係る処理を行い、その処理結果をユーザ端末115に通知することが可能である。また、予約システム100によれば、クライアント110は、処理の実行要求に対しては、単に処理の実行受付を示す応答を待ち受けるため、その待ち受けのタイムアウト時間を小さいものとすることができ、よって、仮に応答が返ってこなかった場合であっても予約に係る処理の実行要求からその応答までに係る処理の滞留は短いものとなる。
As described above, according to the
図4Bは、ネットワーク130に起因する障害が発生した場合の、予約システム100の全体的な例示の処理の流れ420を表す図である。
FIG. 4B is a diagram illustrating the overall
421は、401と同様のことを示している。 421 shows the same thing as 401.
422は、クライアント110が、処理の実行要求を送信したものの、サーバ120に届かなかったことを示している。
422 indicates that the
423は、クライアント110からサーバ120に、処理の実行要求が再度送信されたことを示している。
424〜427は、それぞれ、403〜406と同様のことを示している。 424-427 show the same thing as 403-406, respectively.
428は、クライアント110が処理の結果要求を送信したものの、サーバ120に届かなかったことを示している。
428 indicates that the
429は、クライアント110からサーバ120に、処理の結果要求が再度送信されたことを示している。
429 indicates that the request has been sent again from the
430及び431は、それぞれ、408及び409と同様のことを示している。 430 and 431 indicate the same as 408 and 409, respectively.
このように、予約システム100によれば、ネットワーク130を介した通信が不安定な場合であっても、予約に係る一連の処理が途中で途切れる可能性が低くなる。特に、予約システム100によれば、処理の結果要求を複数回送信することができることから、サーバ120において実行要求を受信した処理が完了したときに、その事実をクライアント110が取得できず、ひいてはユーザ端末115のユーザに予約の成否を通知できないといった可能性が低くなる。このことは、例えば、飲食店等において予約が入っているにもかかわらず来客がないといった事故の発生する確率が下がることを意味する。
As described above, according to the
図4Cは、クライアント110において障害が発生した場合の、予約システム100の全体的な例示の処理の流れ440を表す図である。
FIG. 4C is a diagram representing the overall
441〜446は、401〜406と同様のことを示している。 441-446 have shown the same thing as 401-406.
447は、クライアント110において、予約システム100に係るプログラムの異常終了が生じたことを示している。
447 indicates that the abnormal termination of the program related to the
448は、当該プログラムが再起動した後に、記憶されている識別情報を用いて、クライアント110からサーバ120に処理の結果要求が送信されたことを示している。
448 indicates that, after the program is restarted, a request for processing result is transmitted from the
449及び450は、それぞれ、408及び409と同様のことを示している。 449 and 450 indicate the same as 408 and 409, respectively.
このように、予約システム100によれば、クライアント110において一時的な障害が発生したとしても、障害発生前に記憶した識別情報を用いて障害発生前に実行要求を送信した処理の結果要求を送信することができ、ひいてはユーザ端末115のユーザに予約の成否を通知できないといった可能性が低くなる。
As described above, according to the
図4Dは、サーバ120において実行要求を受信した処理の実行に時間がかかった場合の、予約システム100の全体的な例示の処理の流れ460を表す図である。
FIG. 4D is a diagram illustrating a general example process flow 460 of the
461〜467は、それぞれ、401〜407と同様のことを示している。但し、この図において、467の発生は466の発生よりも前であるから、467が示す処理の結果要求を受信したときには、サーバ120は処理結果を取得できない。
461 to 467 indicate the same as 401 to 407, respectively. However, in this figure, since the occurrence of 467 precedes the occurrence of 466, the
468は、サーバ120が処理結果を取得できなかったことにより、処理が実行中であることを示す応答を返信したことを示している。
468 indicates that the
469は、クライアント110からサーバ120に、処理の結果要求が再度送信されたことを示している。この図において、469の発生は466の発生よりも後であるから、469が示す処理の結果要求を受信したときに、サーバ120は処理結果を取得可能である。
469 indicates that the request has been sent again from the
470は、再度送信された処理の結果要求に対して、サーバ120が処理結果を示す応答を返信したことを示している。
471は、409と同様のことを示している。 471 shows the same thing as 409.
このように、予約システム100によれば、サーバ120において実行要求を受信した処理の実行に時間がかかったとしても、当該実行要求に対する応答はその実行の完了を待つことなくなされることから、クライアント110における、予約に係る処理の実行要求から応答までに係る処理の時間はより短いものとなる。
As described above, according to the
2 コンピュータ
図5は、コンピュータのハードウェア構成の一例を表している。同図に示すように、コンピュータ500は、主に、プロセッサ510と、主記憶装置520と、補助記憶装置530と、ユーザ・インターフェース540と、通信インターフェース550とを備えており、これらはアドレスバス、データバス、コントロールバス等を含むバスライン560を介して相互に接続されている。なお、バスライン560と各ハードウェア資源との間には適宜インターフェース回路(図示せず)が介在している場合もある。
2 Computer FIG. 5 shows an example of a hardware configuration of a computer. As shown, the
プロセッサ510は、コンピュータの全体の制御を行う。プロセッサ510は、各々がコンピュータの一部又は全体の制御を行なう、複数のプロセッサにより構成されていてもよい。
The
主記憶装置520は、プロセッサ510に対して作業領域を提供し、例えばSRAM、DRAM等の揮発性メモリである。
The
補助記憶装置530は、ソフトウェアであるプログラム(コンピュータ実行可能命令を含む)等や各種データ等を格納する、例えば、ハードディスクドライブ、フラッシュメモリ等の不揮発性メモリである。プログラムは、任意の時点で補助記憶装置530からバスライン560を介して主記憶装置520へとロードされ、プロセッサ510に各種処理、方法又はステップを実行させる。
The
なお、主記憶装置520及び補助記憶装置530を、両者を区別することなく集合的に「メモリ」として参照する場合があることに留意されたい。
It should be noted that the
ユーザ・インターフェース540は、ユーザに情報を提示すること及びユーザから情報の入力を受けることの一方又は双方を行う、ハードウェア資源としてのユーザ・インターフェースであり、例えば、キーボード、マウス、トラックパッド、トラックポインタ、ディスプレイ、タッチパネル・ディスプレイ、マイク、スピーカ、加速度センサ等である。
The
通信インターフェース550は、ネットワーク130と接続されるものであり、ネットワーク130を介してデータを送受する。通信インターフェース550とネットワーク130とは、有線又は無線で接続されうる。通信インターフェース550は、ネットワークに係る情報、例えば、Wifiのアクセスポイントに係る情報、通信キャリアの基地局に関する情報等も取得することがある。
The communication interface 550 is connected to the
3 むすび
以上、本発明の実施形態を説明したが、他の類似する形態の採用や、適宜形態の変更又は追加を行うことができることに留意されたい。
3 Conclusion Although the embodiments of the present invention have been described, it should be noted that other similar forms may be adopted, and forms may be modified or added as appropriate.
Claims (7)
前記第1のシステムが、前記処理の実行受付を示す、前記処理の実行要求に対する応答を待ち受けるステップと、
前記第1のシステムが、前記第2のシステムに、前記処理の結果要求を送信するステップと
を含む方法。 The first system transmitting to the second system an execution request for processing;
Waiting for a response to a request for execution of the process, the first system indicating acceptance of execution of the process;
Sending the request resulting from the process to the second system.
前記第1のシステムが、前記処理の実行受付を示す、前記処理の実行要求に対する応答を受信した場合に、前記第2のシステムに前記処理の結果要求を繰り返し送信するように自身を設定するステップ
を更に含む方法。 The method according to claim 1, wherein
Setting the self system to repeatedly transmit the result request of the process to the second system when the first system receives a response to the process execution request indicating acceptance of the process execution; A method further comprising
前記第1のシステムが、識別情報を記憶するステップ
を更に含み、前記処理の実行要求及び前記処理の結果要求は、記憶した前記識別情報を含む、方法。 The method according to claim 1 or 2, wherein
The method further includes the step of the first system storing identification information, wherein the processing execution request and the processing result request include the stored identification information.
前記システムが、前記処理の結果要求を受信した場合に、前記処理の結果を返信するために、前記処理の結果の取得を試行するステップと
を含む方法。 A step of returning a response indicating acceptance of the execution of the process without waiting for the completion of the execution of the process when the system receives the process execution request;
Attempting to obtain the result of the process in order to return the result of the process if the system receives a request for the result of the process.
前記システムが、実行要求を受信した前記処理の結果を、前記実行要求に含まれる前記識別情報に関連付けて記憶するステップ
を更に含み、前記処理の結果の取得を試行する前記ステップは、
結果要求を受信した前記処理の結果の取得を、前記結果要求に含まれる前記識別情報に基づき試行するステップ
を含む、方法。 5. The method according to claim 4, wherein the processing execution request and the processing result request include identification information;
The system further includes the step of storing the result of the process having received the execution request in association with the identification information included in the execution request, and the step of attempting to acquire the result of the process is:
Attempting to obtain a result of the process that received the result request based on the identification information included in the result request.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017225692A JP6802777B2 (en) | 2017-11-24 | 2017-11-24 | Methods, programs and systems for requesting execution of processing with improved fault tolerance and responding as a result. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017225692A JP6802777B2 (en) | 2017-11-24 | 2017-11-24 | Methods, programs and systems for requesting execution of processing with improved fault tolerance and responding as a result. |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019096112A true JP2019096112A (en) | 2019-06-20 |
JP6802777B2 JP6802777B2 (en) | 2020-12-23 |
Family
ID=66971725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017225692A Active JP6802777B2 (en) | 2017-11-24 | 2017-11-24 | Methods, programs and systems for requesting execution of processing with improved fault tolerance and responding as a result. |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6802777B2 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07253912A (en) * | 1994-03-16 | 1995-10-03 | Toshiba Corp | Process monitor device |
JP2003016041A (en) * | 2001-07-05 | 2003-01-17 | Sony Corp | Communication system, server apparatus, client apparatus, cellular phone, communication method, providing method for coordination processing, method for coordination processing, method for representative charge, validating method for contents, program and recording medium |
WO2004102396A1 (en) * | 2003-05-14 | 2004-11-25 | Fujitsu Limited | Delay storage device and delaying method |
JP2009252150A (en) * | 2008-04-10 | 2009-10-29 | Sony Computer Entertainment Inc | Information processing system |
JP2015049745A (en) * | 2013-09-02 | 2015-03-16 | 株式会社オービックビジネスコンサルタント | Server device, information processing method, and program |
JP2016066167A (en) * | 2014-09-24 | 2016-04-28 | 富士ゼロックス株式会社 | Information processor, system, and program |
-
2017
- 2017-11-24 JP JP2017225692A patent/JP6802777B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07253912A (en) * | 1994-03-16 | 1995-10-03 | Toshiba Corp | Process monitor device |
JP2003016041A (en) * | 2001-07-05 | 2003-01-17 | Sony Corp | Communication system, server apparatus, client apparatus, cellular phone, communication method, providing method for coordination processing, method for coordination processing, method for representative charge, validating method for contents, program and recording medium |
WO2004102396A1 (en) * | 2003-05-14 | 2004-11-25 | Fujitsu Limited | Delay storage device and delaying method |
JP2009252150A (en) * | 2008-04-10 | 2009-10-29 | Sony Computer Entertainment Inc | Information processing system |
JP2015049745A (en) * | 2013-09-02 | 2015-03-16 | 株式会社オービックビジネスコンサルタント | Server device, information processing method, and program |
JP2016066167A (en) * | 2014-09-24 | 2016-04-28 | 富士ゼロックス株式会社 | Information processor, system, and program |
Also Published As
Publication number | Publication date |
---|---|
JP6802777B2 (en) | 2020-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9961129B2 (en) | Business transaction correlation with client request monitoring data | |
US9239715B1 (en) | Cancel and rollback update stack requests | |
CN108681777B (en) | Method and device for running machine learning program based on distributed system | |
CN108123851B (en) | Survival detection method and device for master-slave node synchronous link in distributed system | |
CN115004673A (en) | Message pushing method and device, electronic equipment and computer readable medium | |
JP2013097548A (en) | Information processing system, information processing device, client terminal, information processing method and program | |
US10802896B2 (en) | Rest gateway for messaging | |
CN108200132A (en) | Resource acquiring method, device, equipment and computer readable storage medium | |
CN107018159B (en) | Service request processing method and device, and service request method and device | |
CN111064802B (en) | Network request processing method and device, electronic equipment and storage medium | |
CN111506388B (en) | Container performance detection method, container management platform and computer storage medium | |
US8055991B2 (en) | Error detection and recovery using an asynchronous transaction journal | |
JP2017167763A (en) | Information processor, test execution method and program | |
US11720089B2 (en) | Decoupled load generation architecture | |
CN111211925B (en) | Alarm information synchronization method and device, computer equipment and storage medium | |
JP6802777B2 (en) | Methods, programs and systems for requesting execution of processing with improved fault tolerance and responding as a result. | |
CN109669642B (en) | Node joining method, system and device of storage system and readable storage medium | |
CN111488373A (en) | Method and system for processing request | |
CN112583879A (en) | Request processing method, device and system, storage medium and electronic equipment | |
CN107800754B (en) | Data transmission task processing method and device, and data transmission task monitoring method and device | |
US11500857B2 (en) | Asynchronous remote calls with undo data structures | |
US11012537B2 (en) | Method for handling long-running client-server processes | |
CN112994974A (en) | Cluster node detection method, device, cluster, equipment and medium | |
CN107835225B (en) | Method, device and equipment for acquiring data information | |
CN109495560B (en) | Link establishment method, device, equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200115 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20200115 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20200121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200206 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200326 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200626 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20201116 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201127 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6802777 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |