(57)【特許請求の範囲】
【請求項１】
データベースに関連する要求を効率的に処理するためのコンピュータシステムであって、
前記コンピュータシステムはサーバを含み、前記サーバは、
プロセッサと、
前記プロセッサに結合され、命令を格納するメモリと
を含み、前記命令が、前記プロセッサによって実行されると、
前記サーバによって、ユーザの口座に対応する複数のシャドウ口座を作成することと、
前記ユーザの前記口座から、前記口座の残高に等しい第１の金額を前記複数のシャドウ口座に分配することと、
第２の金額を前記ユーザの前記口座に移動するという要求を受信することであって、前記口座が、前記ユーザに見えるものであり、データベースの記録と一致している、受信することと、
前記口座に対応する前記複数のシャドウ口座のうちの１つを選択することであって、シャドウ口座が前記ユーザには見えない、選択することと、
前記選択したシャドウ口座をロックし、それにより、前記データベースの前記対応する記録に対していかなる変更も行われないようにすることと、
前記選択したシャドウ口座の現在の残高に移動予定の前記第２の金額を加算することによって、前記選択したシャドウ口座の残高を修正することと
を含む方法を前記プロセッサに実行させる、コンピュータシステム。
【請求項２】
前記データベースが、前記口座と前記複数の対応するシャドウ口座との間のマッピングを含む、請求項１に記載のコンピュータシステム。
【請求項３】
前記方法が、
前記口座、前記選択したシャドウ口座および前記第２の金額を示す前記要求の記録を生成すること
をさらに含む、請求項１に記載のコンピュータシステム。
【請求項４】
前記方法が、
前記選択したシャドウ口座をアンロックすること
をさらに含む、請求項１に記載のコンピュータシステム。
【請求項５】
データベースに関連する要求を効率的に処理するためのコンピュータシステムであって、
前記コンピュータシステムはサーバを含み、前記サーバは、
プロセッサと、
前記プロセッサに結合され、命令を格納するメモリと
を含み、前記命令が、前記プロセッサによって実行されると、
前記サーバによって、ユーザの口座に対応する複数のシャドウ口座を作成することと、
前記ユーザの前記口座から、前記口座の残高に等しい第１の金額を前記複数のシャドウ口座に分配することと、
第２の金額を前記ユーザの前記口座から移動するという要求を受信することであって、前記口座が、前記ユーザに見えるものであり、データベースの記録と一致している、受信することと、
前記口座に対応する前記複数のシャドウ口座のうちの１つを選択することであって、シャドウ口座が前記ユーザには見えない、選択することと、
前記選択したシャドウ口座をロックし、それにより、前記データベースの前記対応する記録に対していかなる変更も行われないようにすることと、
前記選択したシャドウ口座の残高が移動予定の前記第２の金額より少ないと判断することに応答して、 
前記口座の残高を前記複数のシャドウ口座の組み合わされた残高に設定することと、
各シャドウ口座の残高をゼロに設定することと、
前記選択したシャドウ口座または前記口座に対する前記要求を実行することと、
前記ユーザの前記口座から、前記要求を実行した後の口座の残高に等しい第３の金額を前記複数のシャドウ口座に分配することと
を含む方法を前記プロセッサに実行させる、コンピュータシステム。
【請求項６】
前記データベースが、前記口座と前記複数の対応するシャドウ口座との間のマッピングを含む、請求項５に記載のコンピュータシステム。
【請求項７】
前記選択したシャドウ口座または前記口座に対する前記要求を実行することが、
前記選択したシャドウ口座をアンロックすることと、
前記口座をロックすることと、
前記口座の現在の残高から前記第２の金額を減算することによって、前記口座の前記残高を修正することと
をさらに含む、請求項５に記載のコンピュータシステム。
【請求項８】
前記選択したシャドウ口座または前記口座に対する前記要求を実行することが、
指定金額を前記口座から前記選択したシャドウ口座に移動することであって、前記指定金額が、移動予定の前記第２の金額以上の値である、移動することと、
前記選択したシャドウ口座の現在の残高から前記第２の金額を減算することによって、前記選択したシャドウ口座の前記残高を修正することと
をさらに含む、請求項５に記載のコンピュータシステム。
【請求項９】
前記方法が、
前記口座、前記選択したシャドウ口座および前記第２の金額を示す前記要求の記録を生成すること
をさらに含む、請求項５に記載のコンピュータシステム。
【請求項１０】
前記方法が、前記選択したシャドウ口座の残高が移動予定の前記第２の金額より少なくないと判断することに応答して、
前記選択したシャドウ口座の現在の残高から前記第２の金額を減算することによって、前記選択したシャドウ口座の前記残高を修正すること
をさらに含む、請求項５に記載のコンピュータシステム。
【請求項１１】
前記第３の金額を分配することが、
前記口座から前記複数のシャドウ口座への前記第３の金額のランダムな分配、
前記口座から前記複数のシャドウ口座への前記第３の金額の均等分配であって、前記シャドウ口座の各々に加算される第４の金額が前記第３の金額をシャドウ口座の数で除した結果に基づく、均等分配、および、
前記口座から前記複数のシャドウ口座に前記第３の金額を分配するための既定の規則、のうちの１つまたは複数に基づく、請求項５に記載のコンピュータシステム。
【請求項１２】
前記データベースが、
前記口座に対応する口座番号、
前記口座の現在の残高を示す残高、
前記口座が作成されたのはいつかを示す口座作成時刻、
前記口座が最後に修正されたのはいつかを示す口座修正時刻、および、
前記口座がシャドウ口座かどうかを示すフラグ、 
のうちの１つまたは複数を含む、請求項５に記載のコンピュータシステム。
【請求項１３】
データベースに関連する要求を効率的に処理するためのコンピュータシステムであって、
前記コンピュータシステムはサーバを含み、前記サーバは、
プロセッサと、
前記プロセッサに結合され、命令を格納するメモリと
を含み、前記命令が、前記プロセッサによって実行されると、
前記サーバによって、ユーザの口座に対応する複数のシャドウ口座を作成することと、
前記ユーザの前記口座から、前記口座の残高に等しい第１の金額を前記複数のシャドウ口座に分配することと、
第２の金額を前記ユーザの前記口座から移動するという要求を受信することであって、前記口座が、前記ユーザに見えるものであり、データベースの記録と一致している、受信することと、
前記複数のシャドウ口座のいずれも残高が移動予定の前記第２の金額以上でないと特定することであって、シャドウ口座が前記ユーザには見えない、特定することに応答して、
前記口座の残高を前記複数のシャドウ口座の組み合わされた残高に設定することと、
各シャドウ口座の残高をゼロに設定することと、
選択したシャドウ口座または前記口座に対する前記要求を実行することと、
前記ユーザの前記口座から、前記要求を実行した後の口座の残高に等しい第３の金額を前記複数のシャドウ口座に分配すること
を含む方法を前記プロセッサに実行させる、コンピュータシステム。
【請求項１４】
前記データベースが、前記口座と前記複数の対応するシャドウ口座との間のマッピングを含む、請求項１３に記載のコンピュータシステム。
【請求項１５】
選択したシャドウ口座または前記口座に対する前記要求を実行することが、
前記口座をロックすることと、
前記口座の現在の残高から前記第２の金額を減算することによって、前記口座の前記残高を修正することと
をさらに含む、請求項１３に記載のコンピュータシステム。
【請求項１６】
選択したシャドウ口座または前記口座に対する前記要求を実行することが、
前記口座に対応する前記複数のシャドウ口座のうちの１つを選択することと、
指定金額を前記口座から前記選択したシャドウ口座に移動することであって、前記指定金額が、移動予定の前記第２の金額以上の値である、移動することと、
前記選択したシャドウ口座の現在の残高から前記第２の金額を減算することによって、前記選択したシャドウ口座の前記残高を修正することと
をさらに含む、請求項１３に記載のコンピュータシステム。
【請求項１７】
前記方法が、
前記口座、前記選択したシャドウ口座および前記第２の金額のうちの１つまたは複数を示す前記要求の記録を生成すること
をさらに含む、請求項１３に記載のコンピュータシステム。
【請求項１８】
残高が移動予定の前記第２の金額以上の１つまたは複数のシャドウ口座を特定することであって、シャドウ口座が前記ユーザには見えない、特定することに応答して、
前記特定したシャドウ口座のうちの１つを選択し、
前記選択したシャドウ口座をロックすることにより、前記データベースの前記対応する記録に対していかなる変更も行われないようにし、
前記選択したシャドウ口座の現在の残高から前記第２の金額を減算することによって、前記選択したシャドウ口座の前記残高を修正する、
請求項１３に記載のコンピュータシステム。
【請求項１９】
前記第３の金額を分配することが、
前記口座から前記複数のシャドウ口座への前記第３の金額のランダムな分配、
前記口座から前記複数のシャドウ口座への前記第３の金額の均等分配であって、前記シャドウ口座の各々に加算される第４の金額が前記第３の金額をシャドウ口座の数で除した結果に基づく、均等分配、および、
前記口座から前記複数のシャドウ口座に前記第３の金額を分配するための既定の規則、のうちの１つまたは複数に基づく、請求項１３に記載のコンピュータシステム。
【請求項２０】
前記データベースが、
前記口座に対応する口座番号、
前記口座の現在の残高を示す残高、
前記口座が作成されたのはいつかを示す口座作成時刻、
前記口座が最後に修正されたのはいつかを示す口座修正時刻、および、
前記口座がシャドウ口座かどうかを示すフラグ、
のうちの１つまたは複数を含む、請求項１３に記載のコンピュータシステム。
【請求項２１】
データベースに関連する要求を効率的に処理するためのコンピュータ実施方法であって、
サーバによって、ユーザの口座に対応する複数のシャドウ口座を作成することと、
前記ユーザの前記口座から、前記口座の残高に等しい第１の金額を前記複数のシャドウ口座に分配することと、
第２の金額を前記ユーザの前記口座に移動するという要求を受信することであって、前記口座が、前記ユーザに見えるものであり、データベースの記録と一致している、受信することと、
前記口座に対応する前記複数のシャドウ口座のうちの１つを選択することであって、シャドウ口座が前記ユーザには見えない、選択することと、
前記選択したシャドウ口座をロックし、それにより、前記データベースの前記対応する記録に対していかなる変更も行われないようにすることと、
前記選択したシャドウ口座の現在の残高に移動予定の前記第２の金額を加算することによって、前記選択したシャドウ口座の残高を修正することと
を含む、コンピュータ実施方法。
【請求項２２】
データベースに関連する要求を効率的に処理するためのコンピュータ実施方法であって、
サーバによって、ユーザの口座に対応する複数のシャドウ口座を作成することと、
前記ユーザの前記口座から、前記口座の残高に等しい第１の金額を前記複数のシャドウ口座に分配することと、
第２の金額を前記ユーザの前記口座から移動するという要求を受信することであって、前記口座が、前記ユーザに見えるものであり、データベースの記録と一致している、受信することと、
前記口座に対応する前記複数のシャドウ口座のうちの１つを選択することであって、シャドウ口座が前記ユーザには見えない、選択することと、
前記選択したシャドウ口座をロックし、それにより、前記データベースの前記対応する記録に対していかなる変更も行われないようにすることと、
前記選択したシャドウ口座の残高が移動予定の前記第２の金額より少ないと判断することに応答して、
前記口座の残高を前記複数のシャドウ口座の組み合わされた残高に設定することと、
各シャドウ口座の残高をゼロに設定することと、
前記選択したシャドウ口座または前記口座に対する前記要求を実行することと、
前記ユーザの前記口座から、前記要求を実行した後の口座の残高に等しい第３の金額を前記複数のシャドウ口座に分配することと
を含む、コンピュータ実施方法。
【請求項２３】
前記選択したシャドウ口座または前記口座に対する前記要求を実行することが、
前記選択したシャドウ口座をアンロックすることと、
前記口座をロックすることと、
前記口座の現在の残高から前記第２の金額を減算することによって、前記口座の前記残高を修正することと
をさらに含む、請求項２２に記載の方法。
【請求項２４】
前記選択したシャドウ口座または前記口座に対する前記要求を実行することが、
指定金額を前記口座から前記選択したシャドウ口座に移動することであって、前記指定金額が、移動予定の前記第２の金額以上の値である、移動することと、
前記選択したシャドウ口座の現在の残高から前記第２の金額を減算することによって、前記選択したシャドウ口座の前記残高を修正することと
をさらに含む、請求項２２に記載の方法。
【請求項２５】
データベースに関連する要求を効率的に処理するためのコンピュータ実施方法であって、
サーバによって、ユーザの口座に対応する複数のシャドウ口座を作成することと、
前記ユーザの前記口座から、前記口座の残高に等しい第１の金額を前記複数のシャドウ口座に分配することと、
第２の金額を前記ユーザの前記口座から移動するという要求を受信することであって、前記口座が、前記ユーザに見えるものであり、データベースの記録と一致している、受信することと、
前記複数のシャドウ口座のいずれも残高が移動予定の前記第２の金額以上でないと特定することであって、シャドウ口座が前記ユーザには見えない、特定することに応答して、
前記口座の残高を前記複数のシャドウ口座の組み合わされた残高に設定することと、
各シャドウ口座の残高をゼロに設定することと、
選択したシャドウ口座または前記口座に対する前記要求を実行することと、
前記口座から、前記要求を実行した後の口座の残高に等しい第３の金額を前記複数のシャドウ口座に分配すること
を含む、コンピュータ実施方法。
【請求項２６】
選択したシャドウ口座または前記口座に対する前記要求を実行することが、
前記口座をロックすることと、
前記口座の現在の残高から前記第２の金額を減算することによって、前記口座の前記残高を修正することと
をさらに含む、請求項２５に記載の方法。
【請求項２７】
選択したシャドウ口座または前記口座に対する前記要求を実行することが、
前記口座に対応する前記複数のシャドウ口座のうちの１つを選択することと、
指定金額を前記口座から前記選択したシャドウ口座に移動することであって、前記指定金額が、移動予定の前記第２の金額以上の値である、移動することと、
前記選択したシャドウ口座の現在の残高から前記第２の金額を減算することによって、 
前記選択したシャドウ口座の前記残高を修正することと
をさらに含む、請求項２５に記載の方法。
【請求項２８】
残高が移動予定の前記第２の金額以上の１つまたは複数のシャドウ口座を特定することであって、シャドウ口座が前記ユーザには見えない、特定することに応答して、
前記特定したシャドウ口座のうちの１つを選択し、
前記選択したシャドウ口座をロックすることにより、前記データベースの前記対応する記録に対していかなる変更も行われないようにし、
前記選択したシャドウ口座の現在の残高から前記第２の金額を減算することによって、前記選択したシャドウ口座の前記残高を修正する、
請求項２５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
背景分野
この開示は、概して、データベースに関連する。より具体的には、この開示は、データベースの口座にまたはデータベースの口座から資金を移動するという取引要求を効率的に処理するためのシステムに関する。
【背景技術】
【０００２】
関連技術分野
技術の進歩は、利便性の向上と金融取引に対するリスクの両方をもたらす。会計データベースは、複数の口座の情報を含み得、データベースの対応する記録をロックすることによって口座におよび口座から資金を移動することができる。例えば、取引要求（例えば、資金を口座に移動することまたは資金を口座から移動すること）は、２つの主な動作、すなわち、要求の記録を生成することと、口座の残高を更新することとを含み得る。これらの動作を実行しながらデータベースの精度を維持するため、取引要求を受信次第、口座に対応する記録をロックし、取引要求が完了次第、自動的にアンロックすることができる。データベースは、１つの口座に対して複数の取引要求を同時に受信することができる。しかし、いかなる時間においても、たった１つの要求または「スレッド」しか、口座に対するロックを保持することができない。他の要求またはスレッドは、ロックを受けるまで待たなければならず、データベースは、逐次的方法でしか口座に対する取引要求を実行することができない。従って、口座は、データベースに対する性能ボトルネックを生み出す「ホットスポット」口座になり得る。
【発明の概要】
【０００３】
概要
一実施形態は、データベースに関連する要求の効率的な処理を容易にするシステムを提供する。動作の間、システムは、サーバによって、一定の金額をユーザの口座に移動するという要求を受信し、口座は、ユーザに見えるものであり、データベースの記録と一致している。システムは、口座に対応する複数のシャドウ口座のうちの１つを選択し、シャドウ口座はユーザには見えない。システムは、選択したシャドウ口座をロックし、それにより、データベースの対応する記録に対していかなる変更も行われないようにする。システムは、選択したシャドウ口座の現在の残高に移動予定の金額を加算することによって、選択したシャドウ口座の残高を修正する。
【０００４】
いくつかの実施形態では、データベースは、口座と複数の対応するシャドウ口座との間のマッピングを含む。
【０００５】
いくつかの実施形態では、システムは、口座、選択したシャドウ口座および金額を示す要求の記録を生成する。
【０００６】
いくつかの実施形態では、システムは、選択したシャドウ口座をアンロックする。
【０００７】
別の実施形態では、システムは、サーバによって、一定の金額をユーザの口座から移動するという要求を受信し、口座は、ユーザに見えるものであり、データベースの記録と一致している。システムは、口座に対応する複数のシャドウ口座のうちの１つを選択し、シャドウ口座はユーザには見えない。システムは、選択したシャドウ口座をロックし、それにより、データベースの対応する記録に対していかなる変更も行われないようにする。選択したシャドウ口座の残高が移動予定の金額より少ないと判断することに応答して、システムは、次のこと、すなわち、口座の残高を複数のシャドウ口座の組み合わされた残高に設定することと、各シャドウ口座の残高をゼロに設定することと、選択したシャドウ口座または口座に対する要求を実行することと、口座の残高に等しい第１の金額を口座から複数のシャドウ口座に分配することを行う。
【０００８】
いくつかの実施形態では、選択したシャドウ口座または口座に対する要求を実行する際、システムは、選択したシャドウ口座をアンロックし、口座をロックし、口座の現在の残高から金額を減算することによって、口座の残高を修正する。
【０００９】
いくつかの実施形態では、選択したシャドウ口座または口座に対する要求を実行する際、システムは、移動予定の金額以上の値である指定金額を口座から、選択したシャドウ口座に移動し、選択したシャドウ口座の現在の残高から金額を減算することによって、選択したシャドウ口座の残高を修正する。
【００１０】
いくつかの実施形態では、選択したシャドウ口座の残高が移動予定の金額より少なくないと判断することに応答して、システムは、選択したシャドウ口座の現在の残高から金額を減算することによって、選択したシャドウ口座の残高を修正する。
【００１１】
いくつかの実施形態では、第１の金額を分配することは、口座から複数のシャドウ口座への第１の金額のランダムな分配、口座から複数のシャドウ口座への第１の金額の均等分配であって、シャドウ口座の各々に分配される金額が、第１の金額をシャドウ口座の数で除したものの平均に基づく、均等分配、および、口座から複数のシャドウ口座に第１の金額を分配するための既定の規則、のうちの１つまたは複数に基づく。
【００１２】
いくつかの実施形態では、データベースは、口座に対応する口座番号、口座の現在の残高を示す残高、口座が作成されたのはいつかを示す口座作成時刻、口座が最後に修正されたのはいつかを示す口座修正時刻、口座がシャドウ口座かどうかを示すフラグ、のうちの１つまたは複数を含む。
【００１３】
別の実施形態では、システムは、サーバによって、一定の金額をユーザの口座から移動するという要求を受信し、口座は、ユーザに見えるものであり、データベースの記録と一致している。シャドウ口座のいずれも残高が移動予定の金額以上でないと特定することであって、シャドウ口座がユーザには見えない、特定することに応答して、システムは、次の動作、すなわち、口座の残高を複数のシャドウ口座の組み合わされた残高に設定することと、各シャドウ口座の残高をゼロに設定することと、選択したシャドウ口座または口座に対する要求を実行することと、口座の残高に等しい第１の金額を口座から複数のシャドウ口座に分配することを実行する。
【００１４】
いくつかの実施形態では、選択したシャドウ口座または口座に対する要求を実行する際、システムは、口座をロックし、口座の現在の残高から金額を減算することによって、口座の残高を修正する。
【００１５】
いくつかの実施形態では、選択したシャドウ口座または口座に対する要求を実行する際、システムは、口座に対応する複数のシャドウ口座のうちの１つを選択する。システムは、移動予定の金額以上の値である指定金額を口座から、選択したシャドウ口座に移動する。システムは、選択したシャドウ口座の現在の残高から金額を減算することによって、選択したシャドウ口座の残高を修正する。
【００１６】
いくつかの実施形態では、システムは、口座、選択したシャドウ口座および金額、のうちの１つまたは複数を示す要求の記録を生成する。
【００１７】
いくつかの実施形態では、残高が移動予定の金額以上の１つまたは複数のシャドウ口座を特定することであって、シャドウ口座がユーザには見えない、特定することに応答して、システムは、次の動作、すなわち、特定したシャドウ口座のうちの１つを選択することと、選択したシャドウ口座をロックすることにより、データベースの対応する記録に対していかなる変更も行われないようにすることと、選択したシャドウ口座の現在の残高から金額を減算することによって、選択したシャドウ口座の残高を修正することを実行する。
【図面の簡単な説明】
【００１８】
【図１】本出願の実施形態による、データベースの口座に関連する要求の効率的な処理を容易にする例示的なコンピューティングシステムを示す。
【図２】本出願の実施形態による、サーバによって、データベースの口座に関連する要求を効率的に処理するための方法を示すフローチャートを提示する。
【図３】本出願の実施形態による、サーバによって、データベースの口座に資金を移動するという要求を効率的に処理するための方法を示すフローチャートを提示する。
【図４Ａ】本出願の実施形態による、サーバによって、データベースの口座から資金を移動するという要求を効率的に処理するための方法を示すフローチャートを提示する。
【図４Ｂ】本出願の実施形態による、サーバによって、データベースの口座から資金を移動するという要求を効率的に処理するための方法を示すフローチャートを提示する。
【図５Ａ】本出願の実施形態による、対応するシャドウ口座のトラバースを含む、サーバによって、データベースの口座から資金を移動するという要求を効率的に処理するための方法を示すフローチャートを提示する。
【図５Ｂ】本出願の実施形態による、対応するシャドウ口座のトラバースを含む、サーバによって、データベースの口座から資金を移動するという要求を効率的に処理するための方法を示すフローチャートを提示する。
【図６】本出願の実施形態による、データベースの口座に関連する要求の効率的な処理を容易にする例示的な装置を示す。
【図７】本出願の実施形態による、データベースの口座に関連する要求の効率的な処理を容易にする例示的なコンピュータシステムを示す。
【発明を実施するための形態】
【００１９】
図中、同様の参照番号は、同じ図要素を指す。
【００２０】
詳細な説明
以下の説明は、当業者が実施形態を作成して使用できるように提示され、特定の応用およびその要件の文脈において提供される。開示される実施形態の様々な変更は、当業者には容易に明らかであり、本明細書で定義される一般的な原理は、本開示の精神および範囲から逸脱することなく、他の実施形態および応用に適用することができる。従って、本発明は、示される実施形態に限定されないが、本明細書で開示される原理および特徴と一致する最も広い範囲に添うものとする。
【００２１】
概要
本発明の実施形態は、複数の同時の取引要求を受信するユーザ口座によって生み出されるデータベースにおける性能ボトルネックの問題を解決し、ここで、各要求は、順番に、口座に対する同じ単一のロックを受けたり解除したりすることによってのみ完了することができる。データベースは、複数のユーザ口座に対応する記録を保持することができ、ユーザは、ウェブ、モバイル、または、他のコンピューティングインタフェースもしくはデバイスを介して、口座に対する取引要求を実行することができる。取引要求は、ユーザ口座にまたはユーザ口座から資金を移動するという要求を含み得る。そのような要求を正確に処理するには、口座のロックまたはアンロックが必要とされ（例えば、データベースのユーザ口座に対応する行をロックする）、その結果、各取引要求は、要求または「スレッド」がロックを保持している間、口座に対して不可分操作的に（atomically）実行することができる。
【００２２】
口座の数と口座に対する取引要求の数の両方が増加するにつれて、データベースは、所定の口座に対するますます多くの取引要求を同時に受信する可能性がある。しかし、いかなる時間においても、複数の同時の要求のうちのたった１つしか、口座に対するロックを保持することができない。その結果、口座に対する大量のロックおよびアンロック動作の実行は、データベースにおける「ホットスポット」を招き得る。ホットスポットは、性能ボトルネックを生み出し、データベースに対する効率の低下を招き得る。本システムは、各口座に対して複数のシャドウ口座を作成することによってこれらの問題に対処し、シャドウ口座はユーザには見えない。システムは、所定の口座に対するシャドウ口座の最適数を決定し、口座の残高をシャドウ口座に分配する。それに続いて、システムは、対応するシャドウ口座のうちの１つを選択し、選択したシャドウ口座のみをロックすることによって、口座に対する取引要求を処理することができる。これにより、選択した１つのシャドウ口座しかロックされておらず、口座自体はアンロック状態のままであるため、システムは、同じ口座に関連する取引要求の処理を継続することができる。
【００２３】
例示的なネットワークおよび環境
図１は、本出願の実施形態による、データベースの口座に関連する要求の効率的な処理を容易にする例示的なコンピューティングシステムを示す。この例では、システム１００は、コンピューティングデバイス１３０、１３２および１３４を含み得、コンピューティングデバイス１３０、１３２および１３４は、ユーザ１２０、１２２および１２４とそれぞれ関連付けられる。コンピューティングデバイス１３０〜１３４は、例えば、タブレット、携帯電話、電子ブックリーダ、ラップトップコンピュータ、デスクトップコンピュータまたは他の任意のコンピューティングデバイスを含み得る。コンピューティングデバイス１３０〜１３４は、ネットワーク１４０を介して、サーバ１４２および１４４と通信することができる。サーバ１４２は、記憶装置１４２．１と通信することができ、サーバ１４４は、記憶装置１４４．１と通信することができる。いくつかの実施形態では、記憶装置１４２．１および１４４．１は、サーバ１４２および１４４上にそれぞれ存在する。記憶装置１４２．１はテーブル１９０を格納することができ、テーブル１９０は複数のエントリを含み得、複数のエントリの各々は口座に関連する。例えば、テーブル１９０は、口座に対するエントリを含み得、エントリは、次のもの、すなわち、口座に対するユーザが定義したまたはシステムが定義した名前を示す口座名１９０．１、口座に対する番号を示す口座番号１９０．２、口座に対する現在の残高を示す口座残高１９０．３、口座が作成された日時を示す口座作成日１９０．４、口座が修正された最近の時刻を示す口座修正時刻１９０．５、口座がシャドウ口座かどうかを示すシャドウフラグ１９０．６およびユーザには見えない複数のシャドウ口座を示す対応するシャドウ口座のリスト１９０．７を含み得、各シャドウ口座は、リスト１９０．７において、シャドウ口座に対する口座番号または名前およびシャドウ口座に対する作成日によって識別される。テーブル１９０で説明されるエントリは、シャドウ口座にも関連し、その場合、シャドウフラグ１９０．６は、口座がシャドウ口座であることを示すように設定され、対応するシャドウ口座のリスト１９０．７は、空値に設定されることに留意されたい。
【００２４】
従って、システム１００は、データベースの口座におよびデータベースの口座から資金を移動するという要求の効率的な処理を容易にするシステムを描写する。システムは、各ユーザ口座に対する一連の対応するシャドウ口座を作成し、本明細書で説明される機能を実行することによって、単一のユーザ口座に関連する取引要求を分配するための方法を提供する。
【００２５】
口座に対する要求を効率的に処理するためのシステムの確立
図２は、本出願の実施形態による、サーバによって、データベースの口座に関連する要求を効率的に処理するための方法を示すフローチャートを提示する。動作の間、システムは、サーバによって、口座残高の値がゼロより大きい口座を作成する（動作２０２）。システムは、口座に対するシャドウ口座の最適数（「Ｎ」）を決定する（動作２０４）。シャドウ口座は、口座に対応する「二次的な」口座であり、ユーザには見えない。シャドウ口座は、図１のテーブル１９０に関連して上記で説明されるような口座と同じ構造を含み得る。シャドウ口座の数が多いほど、データベースにおける「ホットスポット」口座の低減に優れている。しかし、シャドウ口座の数の増加は、追加の空間およびリソース消費に起因する性能問題を生じさせる恐れがある。従って、システムは、ホットスポット低減とリソース消費のバランスの取れた考察および分析に基づいて、口座に対応するシャドウ口座の最適数Ｎを決定することができる。例えば、システムは、口座に対する取引要求を完了するために費やされた時間量に基づいて、または、口座と関連付けられた大多数の失敗メッセージ（例えば、「データベースロックを受けることに失敗しました」メッセージ）に基づいて、ホットスポットを識別することができる。これらの特性は、システムログに記録することができる。システムは、ある一定の時間の間ログを分析し、シャドウ口座の数を段階的に増加させ、システムログの分析を継続して、シャドウ口座の最適数Ｎを決定することができる。分析は、システムログにおいて関連エラーレポートが生成されていないこと、または、口座に対する取引要求を完了するために費やされた時間量が既定の許容範囲内に収まることを検出することを含み得る。
【００２６】
シャドウ口座の最適数Ｎを決定し次第、システムは、口座に対応するＮ個のシャドウ口座を作成することができる（動作２０６）。システムは、口座とＮ個のシャドウ口座との間のマッピング関係を作成することができる（動作２０８）（例えば、図１のテーブル１９０に関連して描写および説明されるような対応するシャドウ口座のリスト１９０．７）。それに続いて、システムは、口座残高の値をＮ個のシャドウ口座に分配することができる（動作２１０）。この分配は、いくつかの方法に基づいて実行することができる。第１の方法は、ランダムな分配であり、ランダムな分配では、口座残高は、Ｎ個の部分にランダムに分割され、Ｎ個のシャドウ口座に割り当てられる。第２の方法は、平均分配であり、平均分配では、口座残高（「Ｍ」）は、Ｎ個の部分に均等に分割され、ＭをＮで除したものの平均金額がＮ個のシャドウ口座に割り当てられる。第３の方法は、Ｎ個のシャドウ口座の各々に割り当てる金額を決定する１つまたは複数の既定の規則に基づき得る。システムは、口座残高の値をゼロに設定し（動作２１２）、それに続いて、取引要求を受信することができる（動作２１４）。取引要求は、口座に資金を移動するという要求、または、口座から資金を移動するという要求を含み得る。取引要求の処理については、以下で、図３、４Ａ−４Ｂおよび５Ａ−５Ｂに関連して説明する。
【００２７】
それに加えて、Ｎ個のシャドウ口座を作成し、口座の残高をＮ個のシャドウ口座に分配次第、システムは、口座の残高に対するクエリを受信することができる。口座の残高を決定するため、システムは、Ｎ個のシャドウ口座の各々からの残高を組み合わせるかまたは統合することができる（いかなる金額も移動することなく）。
【００２８】
口座に資金を移動するという要求の効率的な処理
図３は、本出願の実施形態による、サーバによって、データベースの口座に資金を移動するという要求を効率的に処理するための方法を示すフローチャートを提示する。動作の間、システムは、サーバによって、口座に一定の金額を移動するという取引要求を受信する（「入金取引要求」）（動作３０２）。システムは、口座に対応するＮ個のシャドウ口座から１つのシャドウ口座を選択する（動作３０４）。システムは、ランダムにまたは既定の規則に基づいて、シャドウ口座を選択することができる。例えば、システムは、Ｎ個のシャドウ口座の残高の値に基づいてそれらを順序付け、残高が最も少ないシャドウ口座を選択することができる。システムは、選択したシャドウ口座をロックし（動作３０６）、選択したシャドウ口座に対する入金取引要求を実行する（動作３０８）。システムは、選択したシャドウ口座の現在の残高に移動予定の金額を加算することによって、選択したシャドウ口座の残高を修正する（動作３１０）。残高の修正が完了次第、システムは、選択したシャドウ口座を自動的にアンロックすることができる（動作３１２）。次いで、システムは、入金取引要求および選択したシャドウ口座に基づいて、実行された取引の記録を生成する（動作３１４）。例えば、生成記録は、口座、選択したシャドウ口座、取引要求のタイプ、シャドウ口座の名前または番号、入金取引要求の完了時刻、および、取引要求に伴う金額を示し得る。
【００２９】
口座から資金を移動するという要求の効率的な処理
図４Ａは、本出願の実施形態による、サーバによって、データベースの口座から資金を移動するという要求を効率的に処理するための方法を示すフローチャートを提示する。動作の間、システムは、サーバによって、口座から一定の金額を移動するという取引要求を受信する（「出金取引要求」）（動作４０２）。システムは、口座に対応するＮ個のシャドウ口座から１つのシャドウ口座を選択する（動作４０４）。上記で説明されるように、システムは、ランダムにまたは既定の規則に基づいて、シャドウ口座を選択することができる（例えば、図５Ａの動作５０４〜５１０に関連して以下で説明されるように）。システムは、選択したシャドウ口座をロックする（動作４０６）。次いで、システムは、選択したシャドウ口座の残高が移動予定の金額より少ないかどうかを判断する（判断４０８）。選択したシャドウ口座の残高が移動予定の金額より少なくない場合は、システムは、選択したシャドウ口座に対する出金取引要求を実行し（動作４１０）、選択したシャドウ口座の現在の残高から金額を減算することによって、選択したシャドウ口座の残高を修正する（動作４１２）。残高の修正が完了次第、システムは、選択したシャドウ口座を自動的にアンロックすることができる（動作４１４）。次いで、システムは、出金取引要求および選択したシャドウ口座に基づいて、実行された取引の記録を生成する（動作４３０）。
【００３０】
選択したシャドウ口座の残高が移動予定の金額より少ない場合は、システムは、口座の残高をＮ個のシャドウ口座からの統合された残高に設定し（動作４２０）、Ｎ個のシャドウ口座の各々の残高をゼロに設定する（動作４２２）。言い換えれば、システムは、Ｎ個のシャドウ口座の各々からの残高を加算するかまたは組み合わせ、組み合わされた残高を口座に移動し、Ｎ個のシャドウ口座の各々の残高をゼロにリセットする。この時点では、動作は、図４ＢのラベルＡまたはラベルＢで説明されるように継続することができる。
【００３１】
図４Ｂは、本出願の実施形態による、サーバによって、データベースの口座から資金を移動するという要求を効率的に処理するための方法を示すフローチャートを提示する。ラベルＡは、口座に対して実行された動作を描写し、ラベルＢは、選択したシャドウ口座に対して実行された動作を描写する。ラベルＡの下では、システムは、口座において負の残高が認められているかどうかを判断することができる（判断４５２）。口座において負の残高が認められていない場合は、システムは、口座の統合された残高が移動予定の金額より大きいかどうかを判断する（判断４５４）。口座の統合された残高が移動予定の金額より大きくない場合は、取引要求は失敗に終わり、システムは、失敗警告を生成し（動作４５６）、動作は終了する。統合された残高が移動予定の金額より大きい場合は、システムは、動作４５８に進むことができる。口座において負の残高が認められている場合は（判断４５２）、システムは、選択したシャドウ口座をアンロックし、口座をロックすることができる（動作４５８）。システムは、口座に対する出金取引要求を実行し（動作４６０）、口座の現在の残高から移動予定の金額を減算することによって、口座の残高を修正し（動作４６２）、口座をアンロックすることができる（動作４６４）。次いで、動作は、図４Ａに関連して説明されるように、動作４２８を継続する。いくつかの実施形態では、すべてのシャドウ口座の残高をゼロに設定次第、システムは、口座およびシャドウ口座を自動的にアンロックする。また、システムは、口座を再びロックする必要がないように、口座およびシャドウ口座に対するロックを維持することもできる。
【００３２】
ラベルＢの下では、システムは、指定金額を口座から選択したシャドウ口座に移動することができる（動作４７２）。指定金額は、移動予定の金額以上の値であり得、既定の規則に基づいてシステムによって決定することができる。例えば、指定金額は、出金要求が完了したときに、既定のマージン、金額またはパーセンテージを残す金額であり得る。システムは、選択したシャドウ口座に対する出金取引要求を実行し（動作４７４）、選択したシャドウ口座の現在の残高から金額を減算することによって、選択したシャドウ口座の残高を修正することができる（動作４７６）。次いで、動作は、図４Ａに関連して説明されるように、動作４２８を継続する。
【００３３】
図４Ｂに関連して上記で説明される動作が完了次第、システムは、口座の残高を口座からＮ個のシャドウ口座に分配する（動作４２８）。口座残高は、口座または選択したシャドウ口座に対する出金取引要求を実行することを含む図４Ｂで説明される動作が完了した後の残りの口座残高である。残りの口座残高は、図２に関連して説明される方法に基づいて（すなわち、ランダムな分配、平均分配または既定の規則に基づいて）、口座からＮ個のシャドウ口座に分配することができる。最後に、システムは、出金取引要求および選択したシャドウ口座に基づいて、実行された取引の記録を生成する（動作４３０）。
【００３４】
シャドウ口座のトラバースによる口座から資金を移動するという要求の効率的な処理
図５Ａは、本出願の実施形態による、対応するシャドウ口座のトラバースを含む、サーバによって、データベースの口座から資金を移動するという要求を効率的に処理するための方法を示すフローチャートを提示する。動作の間、システムは、サーバによって、口座から一定の金額を移動するという取引要求を受信する（「出金取引要求」）（動作５０２）。システムは、残高が移動予定の金額以上の口座に対応するシャドウ口座が存在するかどうかを判断する（判断５０４）（例えば、「十分な資金を有するシャドウ口座」）。システムは、１つまたは複数の十分な資金を有するシャドウ口座を特定するために、Ｎ個のシャドウ口座の全セットをトラバースすることができるか、または、システムは、Ｎ個のシャドウ口座のセットをトラバースし、十分な資金を有するシャドウ口座を１つ特定次第、トラバースを停止することができる。システムは、シャドウ口座番号、シャドウ口座作成日またはシャドウ口座修正日によってなど、任意の順番または特性に基づいて、口座に対応するＮ個のシャドウ口座のセットをトラバースすることができる。１つまたは複数の十分な資金を有するシャドウ口座が存在する場合は、システムは、複数の十分な資金を有するシャドウ口座（すなわち、２つ以上の十分な資金を有するシャドウ口座）が存在するかどうかを判断する（動作５０６）。存在しない場合（例えば、システムがたった１つの十分な資金を有するシャドウ口座を特定する）は、システムは、その１つのシャドウ口座を選択する（動作５０８）。複数のシャドウ口座が存在する場合（例えば、システムが２つ以上の十分な資金を有するシャドウ口座を特定する）は、システムは、複数のシャドウ口座のうちの１つを選択する（動作５１０）。システムは、ランダムにまたは既定の規則に基づいて、この選択を実行することができる。例えば、システムは、複数のシャドウ口座の特定されたセットから残高が最も大きいシャドウ口座を選択することができる。
【００３５】
シャドウ口座を選択次第、システムは、選択したシャドウ口座をロックし（動作５１２）、選択したシャドウ口座に対する出金取引要求を実行し（動作５１４）、選択したシャドウ口座の現在の残高から金額を減算することによって、選択したシャドウ口座の残高を修正する（動作５１６）。次いで、システムは、出金取引要求および選択したシャドウ口座に基づいて、実行された取引の記録を生成する（動作５３０）。
【００３６】
残高が移動予定の金額以上のシャドウ口座が存在しない場合（判断５０４）は、システムは、口座の残高をＮ個のシャドウ口座からの統合された残高に設定し（動作５２０）、Ｎ個のシャドウ口座の各々の残高をゼロに設定する（動作５２２）。これは、図４Ａに関連して説明される動作４２０および４２２と同様である。この時点では、動作は、図５ＢのラベルＣまたはラベルＤで説明されるように継続することができる。
【００３７】
図５Ｂは、本出願の実施形態による、複数のシャドウ口座のトラバースを含む、サーバによって、データベースの口座から資金を移動するという要求を効率的に処理するための方法を示すフローチャートを提示する。ラベルＣは、口座に対して実行された動作を描写し、ラベルＤは、選択したシャドウ口座に対して実行された動作を描写する。ラベルＣの下では、システムは、口座をロックすることができる（動作５５２）。システムは、口座に対する出金取引要求を実行し（動作５５４）、口座の現在の残高から移動予定の金額を減算することによって、口座の残高を修正することができる（動作５５６）。負の口座残高に関連する動作および機能は図５Ｂでは描写されていないが、図５Ｂの動作はその機能を含み得ることに留意されたい（例えば、図４Ｂの動作４５２、４５４および４５６に関連して説明されるように）。
【００３８】
ラベルＤの下では、システムは、シャドウ口座を選択し、ロックすることができ（動作５７１）、これは、図４Ａに関連して説明される動作４０４および４０６と同様である。システムは、指定金額を口座から選択したシャドウ口座に移動することができる（動作５７２）。指定金額は、移動予定の金額以上の値であり得、既定の規則に基づいてシステムによって決定することができる。システムは、選択したシャドウ口座に対する出金取引要求を実行し（動作５７４）、選択したシャドウ口座の現在の残高から金額を減算することによって、選択したシャドウ口座の残高を修正することができる（動作５６７）。次いで、動作は、図５Ａに関連して説明されるように、動作５２８を継続する。
【００３９】
図５Ｂに関連して上記で説明される動作が完了次第、システムは、口座の残高（出金取引要求を実行することを含む図５Ｂで説明される動作が完了した後の残りの口座残高である）を口座からＮ個のシャドウ口座に分配する（動作５２８）。残りの口座残高は、図２に関連して説明される方法に基づいて、口座からＮ個のシャドウ口座に分配することができる。最後に、システムは、出金取引要求および選択したシャドウ口座に基づいて、実行された取引の記録を生成する（動作５３０）。
【００４０】
例示的な装置およびコンピュータシステム
図６は、本出願の実施形態による、データベースの口座に関連する要求の効率的な処理を容易にする例示的な装置を示す。装置６００は、有線または無線通信チャネルを介して互いに通信することができる複数のモジュールを含み得る。装置６００は、１つまたは複数の集積回路を使用して実現することができ、図６に示されるものより少ないまたは多いモジュールを含み得る。さらに、装置６００は、コンピュータシステムに組み込むことも、他のコンピュータシステムおよび／またはデバイスとの通信が可能な別個のデバイスとして実現することもできる。具体的には、装置６００は、通信モジュール６０２、シャドウ口座選択モジュール６０４、シャドウ口座処理モジュール６０６、残高修正モジュール６０８、残高分配モジュール６１０および記録生成モジュール６１２を含み得る。
【００４１】
いくつかの実施形態では、通信モジュール６０２は、コンテンツセントリックネットワークなどのコンピュータネットワーク全域において他のネットワークノードに／他のネットワークノードから、データパケットを送信および／または受信することができ、データパケットは、ユーザの口座にまたはユーザの口座から一定の金額を移動するという要求に相当し得る。シャドウ口座選択モジュール６０４は、口座に対応する複数のシャドウ口座のうちの１つを選択することができる。シャドウ口座処理モジュール６０６は、選択したシャドウ口座または口座をロックおよびアンロックすることができる。残高修正モジュール６０８は、選択したシャドウ口座の現在の残高に移動予定の金額を加算することによって、または、選択したシャドウ口座の現在の残高から金額を減算することによって、選択したシャドウ口座の残高を修正することができる。記録生成モジュール６１２は、口座、選択したシャドウ口座、および、入金または出金額を示す記録を生成することができる。
【００４２】
選択したシャドウ口座の残高が移動予定の金額より少ないという判断に応答して、または、シャドウ口座のいずれも残高が移動予定の金額以上でないと特定すること（シャドウ口座処理モジュール６０６）に応答して、残高修正モジュール６０８は、口座の残高をシャドウ口座の組み合わされた残高に設定することもでき、さらに、各シャドウ口座の残高をゼロに設定することもできる。残高分配モジュール６１０は、口座の残高に等しい第１の金額をシャドウ口座に分配することができる。
【００４３】
さらに、残高修正モジュール６１０は、指定金額を口座から選択したシャドウ口座に移動することができ、指定金額は、要求において指定された金額以上の値である。選択したシャドウ口座の残高が移動予定の金額より少なくないと判断すること（シャドウ口座処理モジュール６０６）に応答して、残高修正モジュール６０８は、選択したシャドウ口座の現在の残高から金額を減算することによって、選択したシャドウ口座の残高を修正することができる。
【００４４】
残高が移動予定の金額以上の１つまたは複数のシャドウ口座を特定すること（シャドウ口座処理モジュール７２４）に応答して、装置６００の様々なモジュールは、次の機能を実行することができる。すなわち、シャドウ口座選択モジュール６０４は、特定されたシャドウ口座のうちの１つを選択することができ、シャドウ口座処理モジュール６０６は、選択したシャドウ口座をロックすることができ、残高修正モジュール６０８は、選択したシャドウ口座の現在の残高から金額を減算することによって、選択したシャドウ口座の残高を修正することができる。
【００４５】
図７は、本出願の実施形態による、データベースの口座に関連する要求の効率的な処理を容易にする例示的なコンピュータシステムを示す。コンピュータシステム７０２は、プロセッサ７０４、メモリ７０６および記憶装置７０８を含む。メモリ７０６は、管理されたメモリとして機能する揮発性メモリ（例えば、ＲＡＭ）を含み得、１つまたは複数のメモリプールを格納するために使用することができる。その上、コンピュータシステム７０２は、表示デバイス７１０、キーボード７１２およびポインティングデバイス７１４に結合することができる。記憶装置７０８は、オペレーティングシステム７１６、コンテンツ処理システム７１８およびデータ７３０を格納することができる。
【００４６】
コンテンツ処理システム７１８は、命令を含み得、命令は、コンピュータシステム７０２によって実行されると、この開示で説明される方法および／またはプロセスをコンピュータシステム７０２に実行させることができる。具体的には、コンテンツ処理システム７１８は、コンテンツセントリックネットワークなどのコンピュータネットワーク全域において他のネットワークノードに／他のネットワークノードから、データパケットを送信および／または受信するための命令を含み得、データパケットは、ユーザの口座にまたはユーザの口座から一定の金額を移動するという要求に相当し得る。コンテンツ処理システム７１８は、口座に対応する複数のシャドウ口座のうちの１つを選択する（シャドウ口座選択モジュール７２２）ための命令を含み得る。また、コンテンツ処理システム７１８は、選択したシャドウ口座または口座をロックおよびアンロックする（シャドウ口座処理モジュール７２４）ための命令も含み得る。コンテンツ処理システム７１８は、選択したシャドウ口座の現在の残高に移動予定の金額を加算することによって、または、選択したシャドウ口座の現在の残高から移動予定の金額を減算することによって、選択したシャドウ口座の残高を修正する（残高修正モジュール７２６）ための命令を含み得る。コンテンツ処理システム７１８は、口座、選択したシャドウ口座、および、入金または出金額を示す記録を生成する（記録生成モジュール７３０）ための命令をさらに含み得る。
【００４７】
それに加えて、コンテンツ処理システム７１８は、選択したシャドウ口座の残高が移動予定の金額より少ないという判断（シャドウ口座処理モジュール７２４）に応答して、または、シャドウ口座のいずれも残高が移動予定の金額以上でないと特定すること（シャドウ口座処理モジュール７２４）に応答して、口座の残高をシャドウ口座の組み合わされた残高に設定し、各シャドウ口座の残高をゼロに設定する（残高修正モジュール７２６）ための命令を含み得る。コンテンツ処理システム７１８は、口座の残高に等しい第１の金額をシャドウ口座に分配する（残高分配モジュール７２８）ための命令を含み得る。
【００４８】
また、コンテンツ処理システム７１８は、指定金額を口座から選択したシャドウ口座に移動する（残高修正モジュール７２６）ための命令も含み得、指定金額は、要求において指定された金額以上の値である。コンテンツ処理システム７１８は、選択したシャドウ口座の残高が移動予定の金額より少なくないと判断すること（シャドウ管理処理モジュール７２４）に応答して、選択したシャドウ口座の現在の残高から金額を減算することによって、選択したシャドウ口座の残高を修正する（残高修正モジュール７２６）ための命令を含み得る。
【００４９】
コンテンツ処理システム７１８は、残高が移動予定の金額以上の１つまたは複数のシャドウ口座を特定すること（シャドウ口座処理モジュール７２４）に応答して、特定されたシャドウ口座のうちの１つを選択する（シャドウ口座選択モジュール７２２）ための命令、選択したシャドウ口座をロックする（シャドウ口座処理モジュール７２４）ための命令、および、選択したシャドウ口座の現在の残高から金額を減算することによって、選択したシャドウ口座の残高を修正する（残高修正モジュール７２８）ための命令をさらに含み得る。
【００５０】
データ７３２は、この開示で説明される方法および／またはプロセスによる入力として必要とされるかまたは出力として生成されるいかなるデータも含み得る。具体的には、データ７３２は、口座にまたは口座から一定の金額を移動するという要求に対応するパケットまたはメッセージや、入金または出金額や、入金または出金額以上である指定金額や、ユーザの口座や、口座に対応する、ユーザには見えない複数のシャドウ口座や、口座、選択したシャドウ口座および／または金額を示す要求の記録や、口座の残高や、各シャドウ口座の残高や、口座作成日や、口座修正日や、口座がシャドウ口座か否かを示すシャドウフラグや、ランダムな分配、平均分配または別の分配に対する既定の規則のうちの１つまたは複数に基づき得る、口座からシャドウ口座に資金を分配するための方法を少なくとも格納することができる。
【００５１】
この詳細な説明で説明されるデータ構造およびコードは、通常、コンピュータ可読記憶媒体上に格納され、コンピュータ可読記憶媒体は、コンピュータシステムによる使用のためにコードおよび／またはデータを格納できるいかなるデバイスまたは媒体でもあり得る。コンピュータ可読記憶媒体は、これらに限定されないが、揮発性メモリ、不揮発性メモリ、磁気および光学記憶装置（ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多用途ディスクまたはデジタルビデオディスク）など）、または、現在知られているかもしくは後に開発されるコンピュータ可読媒体の格納が可能な他の媒体を含む。
【００５２】
詳細な説明の項目で説明される方法およびプロセスは、コードおよび／またはデータとして具体化することができ、コードおよび／またはデータは、上記で説明されるように、コンピュータ可読記憶媒体に格納することができる。コンピュータシステムがコンピュータ可読記憶媒体上に格納されたコードおよび／またはデータを読み取って実行する際は、コンピュータシステムは、データ構造およびコードとして具体化されてコンピュータ可読記憶媒体内に格納された方法およびプロセスを実行する。
【００５３】
その上、上記で説明される方法およびプロセスは、ハードウェアモジュールに含めることができる。例えば、ハードウェアモジュールは、これらに限定されないが、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、および、現在知られているかもしくは後に開発される他のプログラム可能論理デバイスを含み得る。ハードウェアモジュールが起動されると、ハードウェアモジュールは、ハードウェアモジュールの中に含まれる方法およびプロセスを実行する。
【００５４】
本発明の実施形態の前述の説明は、単なる例示および説明を目的として提示してきた。それらは、網羅的であることも、本発明を開示される形態に限定することも意図しない。それに従って、多くの変更形態および変形形態が当業者に明らかになるであろう。それに加えて、上記の開示は、本発明を制限することを意図しない。本発明の範囲は、添付の請求項によって定義される。
【図１】
0006498767.tif 000002
【図２】
0006498767.tif 000003
【図３】
0006498767.tif 000004
【図４Ａ】
0006498767.tif 000005
【図４Ｂ】
0006498767.tif 000006
【図５Ａ】
0006498767.tif 000007
【図５Ｂ】
0006498767.tif 000008
【図６】
0006498767.tif 000009
【図７】
0006498767.tif 000010