(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5698235
(24)【登録日】2015年2月20日
(45)【発行日】2015年4月8日
(54)【発明の名称】口座並列処理の方法およびシステム
(51)【国際特許分類】
G06Q 40/02 20120101AFI20150319BHJP
G06Q 20/02 20120101ALI20150319BHJP
【FI】
G06Q40/02 114
G06Q20/02 120
【請求項の数】12
【全頁数】14
(21)【出願番号】特願2012-523626(P2012-523626)
(86)(22)【出願日】2010年7月14日
(65)【公表番号】特表2013-501973(P2013-501973A)
(43)【公表日】2013年1月17日
(86)【国際出願番号】US2010041905
(87)【国際公開番号】WO2011016957
(87)【国際公開日】20110210
【審査請求日】2013年6月18日
(31)【優先権主張番号】200910164888.1
(32)【優先日】2009年8月7日
(33)【優先権主張国】CN
(73)【特許権者】
【識別番号】510330264
【氏名又は名称】アリババ・グループ・ホールディング・リミテッド
【氏名又は名称原語表記】ALIBABA GROUP HOLDING LIMITED
(74)【代理人】
【識別番号】110001243
【氏名又は名称】特許業務法人 谷・阿部特許事務所
(74)【復代理人】
【識別番号】100115624
【弁理士】
【氏名又は名称】濱中 淳宏
(74)【復代理人】
【識別番号】100162950
【弁理士】
【氏名又は名称】久下 範子
(72)【発明者】
【氏名】ユー シンリン
(72)【発明者】
【氏名】ロウ ファンシン
【審査官】
本郷 彰
(56)【参考文献】
【文献】
特開2009−003968(JP,A)
【文献】
特開2002−279191(JP,A)
【文献】
米国特許出願公開第2003/0033231(US,A1)
【文献】
米国特許第05940813(US,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 40/02
G06Q 20/02
G06F 12/00
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
口座に対する操作を処理するようにクライアントによって提出された要求を処理するために口座処理センタによって利用される口座並列処理方法であって、前記口座処理センタを備える口座並列処理システムが、
所定の期間の各口座のそれぞれの操作数に従って、口座を並列頻発口座および一般口座として分類するステップと、
前記口座を処理するための前記クライアントからの前記要求を受信する際に、前記口座が並列頻発口座であるかどうかを判定するステップと、
前記口座が並列頻発口座であると判定されたときに、
前記口座処理センタによって、前記口座がロックされているかどうかを判定するステップと、
前記口座がロックされていると判定されるときに、現在の操作の実施まで待機するように現在の操作をキューに入れるステップと、
前記口座がロックされていないと判定されるときに、前記現在の操作を実施するステップと、
前記口座が並列頻発口座でないと判定されたときに、
前記口座処理センタによって、前記口座がロックされているかどうかを判定するステップと、
前記口座がロックされていると判定されるときに、エラーメッセージを出力するステップと、
前記口座がロックされていないと判定されるときに、前記現在の操作を実施するステップと
を含むことを特徴とする方法。
【請求項2】
前記口座が並列頻発口座でないと判定され、さらに前記口座がロックされていると判定されるときに、所定の期間遅延させ、次いで前記現在の操作が実施されるかどうかを再判定するステップをさらに含み、
実施されない場合に、エラーメッセージを出力することを特徴とする請求項1に記載の方法。
【請求項3】
口座を並列頻発口座および一般口座として分類するステップが、
全ての口座のうちの並列頻発口座の割合に従って、並列頻発口座をQ個設定するステップと、
所定の期間の各口座のそれぞれの操作数を計算し、それぞれの操作数に従って口座をランク付けするステップと、
最も多くの操作数を伴う上位Q個の口座を前記並列頻発口座として指定するステップと
をさらに含むことを特徴とする請求項1に記載の方法。
【請求項4】
口座を並列頻発口座および一般口座として分類するステップが、並列頻発口座の口座識別表示をメモリに保存するステップを含むことを特徴とする請求項1に記載の方法。
【請求項5】
前記口座を処理するための前記クライアントからの前記要求を受信する際に、前記口座が並列頻発口座であるかどうかを判定するステップが、
前記口座の口座識別表示を、前記メモリに格納された全ての並列頻発口座の口座識別表示と比較するステップを含み、
前記口座の前記口座識別表示と、全ての前記並列頻発口座の前記口座識別表示のうちの1つとが合致するときに、前記口座が並列頻発口座と判定され、合致しない場合は前記口座が一般口座と判定されることを特徴とする請求項4に記載の方法。
【請求項6】
前記現在の操作を実施するステップが、
前記口座をロックするステップと、
前記口座に対して操作を実施するステップと、
前記操作が実施された後で前記口座の対応するロックを解除するステップと
を含むことを特徴とする請求項1に記載の方法。
【請求項7】
口座処理センタを備える口座並列処理システムであって、
前記口座処理センタは、
全ての並列頻発口座の情報を格納する並列頻発口座データベースと、
前記口座を処理する要求を受信するときに、前記並列頻発口座データベースに従って口座が並列頻発口座であるかどうかを判定する口座特徴判定装置と、
前記口座が並列頻発口座であると判定されたときに、前記口座がロックされているかどうかを判定し、前記口座がロックされているときは、現在の操作を、前記現在の操作の実施まで待機するように、キューに入れ、前記口座がロックされていないときは前記現在の操作を実施する、並列頻発口座処理装置と、
前記口座が並列頻発口座でないと判定されたときに、前記口座がロックされているかどうかを判定し、前記口座がロックされているときはエラーメッセージを出力し、前記口座がロックされていないときは前記現在の操作を実施する、一般口座処理装置と
を備えることを特徴とする口座並列処理システム。
【請求項8】
前記並列頻発口座処理装置が、
前記並列頻発口座がロックされているかどうかを判定する並列頻発口座ロック判定サブユニットと、
前記口座をロックし、前記口座に対して1つまたは複数の操作を実施し、前記口座のロックを解除する、操作実施サブユニットと
を備えることを特徴とする請求項7に記載のシステム。
【請求項9】
前記一般口座処理装置が、
前記口座がロックされているかどうかを判定する一般口座ロック判定サブユニットと、
前記口座をロックし、前記口座に対して1つまたは複数の操作を実施し、前記口座に対して対応するロックを解除する、操作実施サブユニットと、
前記口座がロックされた後で前記口座の操作を受信し、エラーメッセージを出力するロック判定サブユニットと
を備えることを特徴とする請求項7に記載のシステム。
【請求項10】
前記一般口座処理装置が、
前記口座がロックされているとき、所定の期間延期し、前記現在の操作が実施されるかどうかを再判定し、実施されない場合はエラーメッセージを出力する、時間遅延サブユニットをさらに備えることを特徴とする請求項9に記載のシステム。
【請求項11】
クライアントによって提出される口座操作に関する要求を処理するために口座処理センタによって実施される口座並列処理方法であって、前記口座処理センタを備える口座並列処理システムが、
口座を前記口座処理センタによって異なるタイプの口座に分類し、それぞれの口座がロックされた後で各タイプの口座に対する操作の処理を確立するステップと、
前記口座を処理するための前記クライアントからの前記要求を受信するのに応答して前記口座のタイプを判定するステップと、
前記口座処理センタによって、前記口座がロックされているかどうかを判定するステップと、
前記口座がロックされているときは前記口座の前記タイプに対応する処理操作に従って、前記口座を処理し、ロックされていない場合は現在の操作を実施するステップと
を含むことを特徴とする方法。
【請求項12】
それぞれの口座がロックされた後で各タイプの口座に対する操作の処理を確立するステップが、
Mがゼロであるときは、前記口座がロックされた後で、エラーメッセージを出力し、前記口座がロックされているかどうかをさらに判定する前に時間Tだけ待機するステップと、
前記口座がロックされているとさらに判定されるときには、Mを1だけ減らし、そうでない場合は前記現在の操作を実施するステップと
を含み、
Mがそれぞれのタイプの口座に対して設定される待機回数であり、Mは包括的にゼロと無限大との間の数とすることができることを特徴とする請求項11に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連特許出願の相互参照
本出願は、2009年8月7日出願の中国特許出願第200910164888.1号「METHOD AND SYSTEM FOR ACCOUNT PARALLEL PROCESSING」の優先権を主張するものであり、その文献は全体が参照により本明細書に援用される。
【0002】
本開示は、インターネットの分野に関し、詳細には、口座並列処理のシステムおよび方法に関する。
【背景技術】
【0003】
図1に、現行の口座処理システムの原理を示す。口座処理システムは、口座処理センタ11およびいくつかのクライアント12を含む。口座処理センタ11は、専用のラインまたはネットワーク(インターネットまたはイントラネット)を通してクライアント12と連絡を取ることができる。複数のクライアント12がいる可能性がある。クライアント12は、独立した端子またはいくつかの端子から構成されたイントラネットとすることができる。口座処理センタ11は、少なくともサーバ21およびデータベース22を含む。データベース22は、口座情報および様々な処理情報を格納するように構成されている。サーバ21は、口座の様々な操作および管理を行うように構成されている。
【0004】
口座処理センタ11が第三者支払いプラットフォームである例では、クライアント12が他のいくつかの口座(口座B1、B2、B3、・・・、Bnなど)に口座Aの資金を支払うように口座処理センタ11に指示を送信し、その支払い額がそれぞれS1、S2、S3、・・・、Snであるときの、現行の支払い処理を以下に説明する。
【0005】
まず、口座処理センタ11は、クライアント12からの支払い操作に関する要求を受信する。
【0006】
次いで、支払い口座処理センタ11は1つの支払い操作を処理する。
【0007】
サーバ21は、口座Aをロックし、口座Aの残高が金額S1よりも多いかどうかを判定する。口座Aの残高がS1よりも多い場合は、サーバ21は、口座Aの残高から金額S1を差し引き、口座Aをロック解除する。次いで、口座B1をロックし、金額S1を口座B1に追加し、支払い操作の完了後に口座B1をロック解除する。
【0008】
したがって、口座処理センタ11は、その支払いを完了するためにこの操作をn回実行する必要がある。
【0009】
換言すると、口座並列処理が口座の残高に影響を与えるのを防止するために、1回に口座に影響を及ぼす操作は1つのみとすることになっている。これは通常、口座をロックすることによって実現され、例えば、口座に対する全ての操作に、最初に口座をロックできるかどうかを判定することが必要である。ロックできる場合は、同一の口座に対する他の操作が存在しないと見なされ、そのため、その口座に対して現在の操作を実施することができる。そうでない場合は、同一の口座に対する他の操作が存在すると見なされ、そのため、待機が必要になる。複数の待機操作があるときは、待機処理用のキューが形成される。待機処理用のキューの操作ごとに口座のロックおよびロック解除が必要である。サーバは、これらの操作を順次処理することしかできず、したがって、多くのリソースが必要になる。特に、こうした口座(例えば、待機処理用のキューを有する口座)がいくつかあるか、または待機処理用のキューに処理すべき操作が多数ある場合は、システムの崩壊が簡単に起きる恐れがある。データベースの接続の最大数が100、例えば、並列データアクセスの最大数が100であると仮定すると、待機処理用のキューに100の操作があるときは、システム全体が口座操作に関するいかなる新規の要求をも受け取ることができない。したがって、後の新規の口座操作の効率低下がもたらされ、システム全体の崩壊が簡単に起きることになる。
【0010】
いくつかの予期せぬ事象が存在すると、1つまたは複数の口座に対する異常な操作が生じる。非常に一般的に、予期せぬ事象は口座に対する操作を急激に増加させる。これは、待機処理用のキューの処理すべき操作が急激に増加することから生じ、それにより、システム全体の効率が低下する。
【0011】
予期せぬ事象のいくつかは、システムの不安定性または技術的理由から生じる。一部は人間が作り出している。例えば、小売商がそれぞれ、オンライン取引き処理における信用格付けを有する。その信用格付けは、その小売商のサービスまたは商品に関するバイヤまたは他のユーザの満足度を表している。ユーザは、オンライン取引きという状況で商品を体験することができず、したがって、信用格付けは小売商にとって非常に重要である。より高い信用格付けを得るために何らかの虚偽の取引きを行うことは信用不正と呼ばれる。いくつかの小売商が小売商の不正のグループを形成するときに、こうした小売商の口座に対して頻繁な操作がある可能性がある。このような操作を処理するためにシステムの多くのリソースが必要になり、他の口座に対する通常の操作が影響を受ける。
【0012】
換言すると、口座処理センタの現行の口座処理操作は、以下で説明するようないくつかの技術的な落とし穴を有する。
【0013】
現行の支払い処理は、口座Aに対して頻繁な操作を必要とする。各操作は、それぞれ操作の前に口座Aをロックし、操作の完了後に口座Aをロック解除する必要がある。これはサーバ21の処理効率を低くするだけでなく、サーバ21の処理能力を急激に低減させ、そのため、他のクライアントによって送信された処理要求を受信することさえできなくなり、ひどい場合はサーバ21が崩壊することもある。
【0014】
具体的には、口座をバッチ処理するために比較的多くの量の要求があるか、またはこうしたバッチ処理で処理すべき多くの口座があるときに、サーバ21に課される操作負荷が大きくなる。これにより、サーバ21での処理を要求するキューのトラフィックが簡単に生じ、処理要求の故障率が上昇する恐れがあり、したがって、他のユーザの体験に影響が及ぼされる。
【発明の概要】
【発明が解決しようとする課題】
【0015】
本開示の第1の目的は、予期した事象から生じる同一口座に対する並列操作が増加するとシステム全体の処理効率を低下させる恐れがあるという技術的問題を解決する口座並列処理方法を提供することである。
【0016】
本開示の第2の目的は、予期した事象から生じる同一口座に対する並列操作が増加するとシステム全体の処理効率を低下させる恐れがあるという技術的問題を解決する口座並列処理システムを提供することである。
【課題を解決するための手段】
【0017】
口座処理センタによる口座操作の並列処理方法が提供される。その方法は、
(1)口座を並列頻発口座および一般口座として分類することと、
(2)口座を処理するための要求をクライアントから受信するときに、まず口座が並列頻発口座であるかどうかを判定し、口座が並列頻発口座である場合は(3)に進み、そうでない場合は(4)に進むことと、
さらに、
(3)口座がロックされている場合に、現在の操作の実施まで待機するように現在の操作をキューに入れることと、
(4)口座処理センタによって、口座がロックされているかどうかをさらに判定し、口座がロックされている場合はエラーメッセージを出力し、そうでない場合は現在の操作を実施することと
を含むことができる。
【0018】
ステップ(4)は、口座がロックされているときに、所定の期間遅延させ、次いで現在の操作が実施されるかどうかを再判定し、実施されない場合はエラーメッセージを出力することを含んでもよい。
【0019】
好ましくは、ステップ(1)は、(A1)全ての口座の中の並列頻発口座の割合に従って並列頻発口座をQ個設定することと、(A2)所定の期間の各口座のそれぞれの操作数を計算し、それらの各操作数に従って口座をランク付けすることと、(A3)操作数が多い上位Q個の口座を並列頻発口座として使用することとをさらに含んでもよい。さらに、ステップ(1)は、好ましくは、並列頻発口座の口座IDをメモリに保存することを含んでもよい。
【0020】
ステップ(2)は、口座の口座IDを、メモリに事前に格納した全ての並列頻発口座の口座IDと比較することを含んでもよい。合致する場合は、その口座は並列頻発口座であり、そうでない場合はその口座は一般口座である。
【0021】
現在の操作を実施することは、口座をロックすることと、その口座に対して操作を実施することと、操作の実施の後にその口座の対応するロックを解除することとをさらに含んでもよい。
【0022】
口座処理センタを含む口座並列処理システムを提供する。その口座処理センタは、全ての並列頻発口座の情報を保存するように構成された並列頻発口座データベースと、口座の操作を処理するための要求を受信するときに、並列頻発口座データベースに従って口座が並列頻発口座であるかどうかを判定するように構成された口座特徴判定装置と、口座がロックされているかどうかをさらに判定し、口座がロックされている場合は現在の操作を実施するまで待機するように待機処理用のキューに現在の操作を割り当て、口座がロックされていない場合は現在の操作をすぐに実施するように構成された並列頻発口座処理装置と、口座がロックされているかどうかを判定し、口座がロックされている場合はエラーメッセージをすぐに出力して戻し、ロックされていない場合は現在の操作を実施するように構成された一般口座処理装置と、を含んでもよい。
【0023】
並列頻発口座装置は、並列頻発口座がロックされているかどうかを判定するように構成された並列頻発口座ロック判定サブユニットと、口座をロックし、その口座の操作を実施し、その口座の対応するロックを解除するように構成された操作実施サブユニットとをさらに含んでもよい。
【0024】
一般口座処理装置は、口座がロックされているかどうかを判定するように構成された一般口座ロック判定サブユニットと、口座をロックし、その口座の操作を実施し、その口座の対応するロックを解除するように構成された操作実施サブユニットと、口座がロックされた後で口座の操作を受信し、エラーメッセージをすぐに出力し戻すように構成されたロック判定サブユニットとをさらに含んでもよい。
【0025】
クライアントが提出した口座操作の要求を処理するために口座処理センタによって利用される口座並列処理方法を提供する。その方法は、
(1)口座を口座処理センタによって異なるタイプの口座として分類し、口座がロックされた後でそれぞれのタイプの口座ごとに処理操作を設定することと、
(2)口座に対する操作を処理するためのクライアントからの要求を受信したときにまず口座のタイプを判定することと、
(3)口座処理センタによって、口座がロックされているかどうかをさらに判定し、口座がロックされている場合は、口座のタイプに対応する処理操作の流れに従って口座がロックされた後の操作を行い、ロックされていない場合は現在の操作を実施することと
を含んでもよい。
【0026】
ステップ(1)では、各タイプの口座ごとに口座がロックされた後で操作を設定することは、
(A1)口座がロックされた後で、数Mがゼロかどうかを判定し、ゼロの場合は、エラーメッセージをすぐに出力して戻し、ゼロでない場合は、待機時間Tの後に口座がロックされているかどうかを判定することをさらに含んでもよい。口座がロックされている場合は、数Mを1だけ減らし、ステップ(A1)に続き、口座がロックされていない場合は、現在の操作を実施する。ここで、Mは、各タイプの口座ごとに設定される待機回数であり、その範囲はゼロと無限大との間である。
【0027】
現行の技法と比較すると、本開示は、以下で説明するようにいくつかの利点を有する。
【0028】
一般口座に関しては、口座にビジネス上の取引き業務があるのが普通であり、通常は期間中の固定様式がある。ビジネスプラットフォームの例のように、1日に共通のバイヤのビジネスの量は限られている。毎日多すぎるほどの取引き業務があるはずがない。換言すると、口座の並行取引き業務の可能性は高くない。口座に大量の取引き業務がある場合は、違法の取引き業務である可能性が非常に高い。しかし、大規模な売り手に関しては、多くの並行取引き業務がある可能性が非常に高い。多くのバイヤがその売り手の商品を購入し、これは多くの並行取引き業務につながる。こうした特徴に従って、本出願人は、口座を2つのタイプ、並列頻発口座および一般口座に分類する。並列頻発口座に関しては、口座残高に変化があり、口座がすでにロックされていると分かっている間にその口座をロックする必要があるときに、システムは、エラーメッセージを戻すことなしに待機を維持する。しかし、一般口座の口座残高に変化があり、口座がすでにロックされていると分かっている間に口座をロックする必要があるときに、システムはエラーメッセージをすぐに戻す。こうした方法は、並列頻発口座により質の高いサービスを提供する。一般の顧客に関しては、一般口座で同じ日に多量の並行取引き業務があるときに、並行処理の発生数を、エラーを出力することによって効果的に制御することができ、こうした口座がシステムに損傷を与えるのを防止する。
【0029】
さらに、本開示により、一般口座の操作に関する要求があり、かつ一般口座がすでにロックされているときに、システムは、所定の長さの時間だけ延期し、次いで、現在の操作を実施できるかどうかを判定する。実施できない場合は、システムがエラーメッセージをすぐに出力し、結果を返す。このような延期された処理により、一般口座で並列処理の間違ったメッセージの可能性のある割合を低減することができる。
【図面の簡単な説明】
【0030】
【
図2】本開示による口座処理センタの例示的実施形態を示す図である。
【
図3】本開示による口座並列処理方法を示すフローチャートである。
【
図4】本開示による口座並列処理方法を示す別のフローチャートである。
【発明を実施するための形態】
【0031】
図を参照しながら以下の詳細な説明を示す。
【0032】
図2に、口座並列処理に関するシステムの例示的実施形態を示す。
図1を参照すると、
図2のシステムは、口座処理センタ11およびクライアント12を含む。クライアント12は、口座処理センタ11で1つまたは複数の口座に操作の要求を提出し、口座処理センタ11から戻ってきた処理結果を受け取る。
【0033】
口座処理センタ11はさらに、サーバ31およびデータベース32を含む。データベース32は、口座情報および様々な処理情報を格納するように構成される。サーバ31は、口座の様々な操作および管理を行うように構成される。本開示では、口座情報を格納するように構成された口座格納装置321と、口座処理操作記録情報を格納するように構成された口座操作記録格納装置322に加えて、データベース32は並列頻発口座データベース323も含む。並列頻発口座データベース323は、並列頻発口座の全ての情報を格納するように構成される。
【0034】
並列頻発口座の情報は、主として並列頻発口座を一意的に識別する口座IDを照会する。本開示は、様々なルールに従って口座処理センタ11の並列頻発口座を指定することができる。例えば、重要な口座を並列頻発口座として指定することができる。口座処理センタ11は、ある期間のそれぞれの口座操作の数に従って、頻度が高いものから低いものまで口座をランク付けすることもでき、大量の操作を伴う上位複数の口座が並列頻発口座として扱われる。
【0035】
サーバ31はさらに、口座特徴判定装置311、並列頻発口座処理装置312、および一般口座処理装置313を含む。
【0036】
口座特徴判定装置311は、操作を処理するための要求を口座から受け取った後で、並列頻発口座データベース323に従って、口座が並列頻発口座であるかどうかを判定するように構成される。並列頻発口座である場合は、口座特徴判定装置311は並列頻発口座処理装置312を起動する。並列頻発口座でない場合は、口座特徴判定装置311は一般口座処理装置313を起動する。
【0037】
並列頻発処理装置312は、口座がロックされているかどうかをさらに判定するように構成される。口座がロックされている場合は、並列頻発口座処理装置312は、現在の操作の実施まで待つように待機処理用のキューに現在の操作を割り当てる。ロックされていない場合は、並列頻発口座処理装置312は、現在の操作をすぐに実施する。
【0038】
並列頻発処理装置312は、並列頻発口座ロック判定サブユニット3121、待機処理キュー管理サブユニット3122、および操作実施サブユニット3123をさらに含む。
【0039】
並列頻発口座ロック判定サブユニット3121は、並列頻発口座がロックされているかどうかを判定するように構成される。
【0040】
待機処理キュー管理サブユニット3122は、待機処理用のキューの操作を管理するように構成される。待機処理用のキューの操作の管理は、先入れ先出し原理または優先順位原理などのような、それらの操作の処理を扱うことを含む。いくつかのシステムは、ユーザが管理サブユニットを手動で設定する必要がないような管理サブユニット3122を有する。
【0041】
操作実施サブユニット3123は、口座をロックし、その口座に対して操作を実施し、次いで、その口座に対応するロックを解除するように構成される。
【0042】
一般口座処理装置313は、口座がロックされているかどうかを判定するように構成される。口座がロックされている場合は、一般口座処理装置313は、エラーメッセージをすぐに出力し、戻す。ロックされていない場合は、一般口座処理装置313は、現在の操作を実施する。一般口座処理装置313は、一般口座ロック判定サブユニット3131、操作実施サブユニット3132、およびロック処理サブユニット3133をさらに含む。
【0043】
一般口座ロック判定サブユニット3131は、並列頻発口座がロックされているかどうかを判定するように構成される。
【0044】
操作実施サブユニット3132は、口座をロックし、その口座の操作を実施し、次いで、その口座に対応するロックを解除するように構成される。
【0045】
ロック処理サブユニット3133は、口座がロックされた後で口座の操作を受信し、エラーメッセージを出力する操作を受け取り、戻すように構成される。
【0046】
一実施形態では、一般口座処理装置313は、時間遅延サブユニット3134も含む。時間遅延サブユニット3134は、口座がロックされる時期を所定の期間延期し、次いで現在の操作が実施されるかどうかを再判定するように構成される。実施されない場合は、時間遅延サブユニット3134は、エラーメッセージをすぐに出力し、戻す。
【0047】
上記で開示した装置は、論理装置についてのみ言及し、これは通常ソフトウェアの形態で実装される。しかし、本開示は、ハードウェアの形態での実装を除外しない。
【0048】
図3に、口座処理センタで口座操作を処理するために使用される、口座並列処理方法のフローチャートを示す。この方法は、以下で説明する複数の動作を含む。
【0049】
S110:口座を並列頻発口座および一般口座として分類すること。一実施形態では、口座処理センタ11では多くの現行の口座がすでに存在する。したがって、並列頻発口座データベース323は、並列頻発口座情報を格納するようにさらに設定される。口座が並列頻発口座であるか一般口座であるかを判定するために、並列頻発口座データベース323の検索を実行することができる。この方法は、現在の口座情報を修正する必要はなく、したがって、現在のシステムの安定性への影響が低減される。別の実施形態では、口座の特徴属性項目を設けることができる。各口座は、それぞれの口座の属性を、口座が並列頻発口座であるか一般口座であるかを示すその特徴属性項目に記憶する。こうした手法は、実現可能であるが、現在の口座の修正を必要とするので時間効率が良くない可能性がある。
【0050】
口座を並列頻発口座および一般口座に分類するために、以下の動作を実施することができる。
【0051】
A1:全ての口座の中の並列頻発口座の割合に従って並列頻発口座をQ個設定する。
A2:所定の期間(例えば1週間など)内の口座ごとの操作数を計算し、操作数に従って口座をランク付けする。
A3:多くの操作を伴う上位Q個の口座を並列頻発口座として指定し、これらの並列頻発口座の情報を並列頻発口座データベース323に格納する。
【0052】
さらに、その方法はまた、操作数に従って並列頻発口座データベース323中の並列頻発口座の情報を定期的に更新する。この方法によってより多くの数の操作を伴う口座を見つけることができる。
【0053】
その後の処理効率を向上させるために、並列頻発口座データベース323の全ての並列頻発口座の口座IDをサーバ31のメモリに保存することができる。
【0054】
S120:操作を処理するための要求を口座から受信するときに、まずその口座が並列頻発口座であるかどうかを判定し、並列頻発口座である場合はS130に進み、並列頻発口座でない場合はS140に進む。
【0055】
本開示は、口座が並列頻発口座であるかどうかを判定するために以下のステップを利用する。
【0056】
口座の口座IDを、メモリまたは並列頻発口座データベース323に事前格納された全ての並列頻発口座の口座IDと比較する。比較結果により同一であることが示された場合は、そのような口座は並列頻発口座である。そうでない場合はその口座は一般口座である。
【0057】
S130:口座がロックされているかどうかを判定する。ロックされている場合は、現在の操作の実施まで待機するように現在の操作を待機処理用のキューに割り当て(S131)、ロックされていない場合は、現在の操作を口座に実施する(S132)。
【0058】
S140:口座がロックされているかどうかをさらに判定する。ロックされている場合は、エラーメッセージを出力し、戻し(S141)、ロックされていない場合は、現在の操作を実施する(S132)。
【0059】
S130の動作は、「select * from account where accountNo=‘XXXXX’ for update」など、Oracleによって実現することができる。
【0060】
こうしたコーディングは、口座番号がXXXXXである口座に対して操作を実行することを示す。こうした指示は、「select * from account where accountNo=‘XXXXX’ for update wait」を意味する。
【0061】
換言すると、口座がロックされているときは、システムは、システムが操作を実施できるときまで待機する。
【0062】
動作S140は、「select * from account where accountNo=‘yyyyy’ for update nowait」など、Java(登録商標)によって実現することもできる。
【0063】
こうしたコーディングは、口座に対して操作を実行するときに口座がロックされていることが判明した場合に、システムがエラーメッセージを出力することを示す。上記の記述は、本開示の実施形態であり、本開示を限定するために用いられるものではない。本開示の概念を実現するどの実施方法も本開示の保護範囲内に包含されるものとする。
【0064】
現在の操作を実施することはさらに、口座をロックすることと、その口座に対して操作を実施することと、操作の実施後にその口座に対応するロックを解除することとをさらに含む。
【0065】
図4に、別の口座並列処理方法のフローチャートを示す。
【0066】
この実施形態では、動作S240は
図3の動作140とは異なる。他の動作は、概して
図3の動作と同様である。
【0067】
S110:口座を並列頻発口座および一般口座として分類する。
【0068】
S120:操作を処理するための要求を口座から受信したときに、まずその口座が並列頻発口座であるかどうかを判定する。並列頻発口座である場合はS130に進み、並列頻発口座でない場合はS240に進む。
【0069】
S130:口座がロックされているかどうかを判定する。ロックされている場合は、現在の操作の実施まで待機するように現在の操作を待機処理用のキューに割り当て(S131)、ロックされていない場合は、現在の操作を口座に実施する(S132)。
【0070】
S240:口座がロックされているかどうかをさらに判定する。口座がロックされている場合は、所定の時間待機した(S241)後に、現在の操作が実施されるかどうかをさらに判定する(S242)。実施されない場合は、エラーメッセージをすぐに出力し、戻し(S243)、実施される場合は、現在の操作を実施する(S132)。口座がロックされていない場合は、現在の操作を実施する(S132)。
【0071】
口座のロックを実施する多くの方法がある。例えば、1つの一般的な方法は、口座のフラグビットを設定することである。フラグビットが1のときは、口座がロックされていることを表す。フラグビットが0のときは、口座がロックされていないことを表す。口座がロックされているかどうかは、フラグビットを判定することによって判定される。
【0072】
この実施形態では、一般口座に対する操作に関する要求を受信するときに、その口座に対する現行の操作がある場合は、要求された操作は、操作が実施されるか否かを判定する前に所定の時間延期する。それにより、一般口座に対する並列処理の可能性のあるエラー報告率を低減させることができる。
【0073】
本開示の実施形態は、口座を並列頻発口座および一般口座として分類する。実際には、本開示のこの実施形態によって限定されることなく、口座を、第1タイプの口座、第2タイプの口座、第3タイプの口座、・・・、第nタイプの口座など、複数のタイプに分けることができる。それを以下の詳細な動作によって実施することができる:
A1:全ての口座の中の第1タイプの口座の割合に従って、第1タイプの口座をQ1個設定し、全ての口座のうちの第2タイプの口座の割合に従って、第2タイプの口座をQ2個設定し、等々を第nタイプの口座をQn個設定するまで続ける。
A2:所定の期間(例えば1週間など)内の各口座ごとの操作数の統計を取り、操作数に従って口座をランク付けする。
A3:最も少ない操作数を伴う上位Q1個の口座を第1タイプの口座として指定し、次に少ないQ2個の口座を第2タイプの口座として指定し、等々を様々なタイプの口座の情報を得るまで続け、様々なタイプの口座の情報をデータベースに格納する。
【0074】
口座を複数のタイプに分類するために、以下の動作を利用することができる。
B1:全ての口座のうちの第1タイプの口座、第2タイプの口座、・・・、および第nタイプの口座のそれぞれの割合を予め設定する。
B2:所定の期間(例えば1週間など)内の各口座ごとの操作数を計算し、それらの操作数に従って口座をランク付けする。
B3:現在の合計口座数Mを計算する。
B4:各タイプの口座のそれぞれの割合および合計口座数Mに従って、各タイプの口座のそれぞれの数を計算する。
B5:口座の対応するそれぞれの数を各タイプの口座に割り当て、このような口座の情報を対応するデータベースに保存する。
【0075】
この実施形態の処理概念は以下の通りである。口座を第1タイプの口座、第2タイプの口座、第3タイプの口座、・・・および第nタイプの口座に分類し、異なるタイプの口座に対して異なる処理方針を設定する。例えば、異なるタイプの口座に、異なる優先順位を与えることができる。優先順位がより高い場合は、それぞれの口座がロックされているときに所定の待機期間はより長くなる。
【0076】
例えば、処理方針は以下の通りとすることができる。第1タイプの口座に関しては、口座がロックされているときに、システムはエラーメッセージをすぐに出力し、戻す。第2タイプの口座に関しては、口座がロックされているときに、システムは所定の時間待機し、次いで、口座がロックされているかどうかを判定し、口座が未だロックされている場合は、システムは、エラーメッセージを出力し、戻す。第3タイプの口座に関しては、口座がロックされているときに、システムは、所定の時間Tだけ待機し、次いで、口座がロックされているかどうかを判定する。口座が未だロックされている場合は、システムはさらに所定の時間Tだけ待機する。その後、口座が未だロックされている場合は、システムはエラーメッセージを出力し、戻す。異なるタイプの口座について異なる処理方針を定めることができ、以下同様である。
【0077】
口座を、上記のように異なるタイプに分類する。異なる処理方針を各タイプの口座ごとに設定する。
【0078】
換言すると、本開示は、クライアントが送信する口座操作に関する要求を処理するために口座処理センタによって利用される口座並列処理方法も提供する。その方法は、以下で説明する動作を含む。
(1)口座を口座処理センタによって異なるタイプの口座に分類し、口座がロックされた後で口座の各タイプごとに操作を設定する。
(2)口座に対して操作を実行するためのクライアントからの要求を受信するときに、まず口座のタイプを判定する。
(3)口座処理センタによって、口座がロックされているかどうかをさらに判定し、口座がロックされている場合は、口座がロック解除された後で口座のタイプに対応する処理操作の流れに従って操作を実行する。
【0079】
動作(1)では、各タイプの口座ごとに口座がロックされた後で操作を設定することは、
A1:口座がロックされた後で、数Mがゼロかどうかを判定し、ゼロの場合は、エラーメッセージをすぐに出力して戻し、ゼロでない場合は、待機時間Tの後に口座がロックされているかどうかを判定することをさらに含む。口座が未だロックされている場合は、数Mを1だけ減らし動作A1に進み、口座がロックされていない場合は、現在の操作を実施する。ここで、
Mは、各タイプの口座ごとに設定される待機回数であり、その範囲はゼロと無限大との間である。
【0080】
上記は、本開示のいくつかの実施形態であるが、本開示を限定するために用いられるものではない。当業者によって開示された実施形態のどんな予測可能な変更も、やはり本開示の保護範囲内に包含される。