(58)【調査した分野】(Int.Cl.,DB名)
シーケンス化プロセスに亘って複数のデータトランザクション要求を処理するコンピュータシステムであって、当該シーケンス化プロセスが複数の個々のプロセスを含み、当該複数の個々のプロセスのそれぞれが複数のリソースのうちの異なるひとつを処理することに対応し、当該複数のリソースのそれぞれが対応する識別子を有し、前記複数のリソースが互いにリンクされており、前記コンピュータシステムは、
複数のデータトランザクション要求を保持するよう構成されたデータストレージシステムであって、前記複数のデータトランザクション要求が少なくとも第1タイプまたは第2タイプのデータトランザクション要求を含み、前記複数のデータトランザクション要求であって前記第1タイプのものがそれぞれ、i)総量と、ii)前記シーケンス化プロセス中に前記総量が前記複数のリソースに対して処理されるのに適格である場合のその複数のリソースの適格リストと、を含む、データストレージシステムと、
少なくともひとつのハードウエアプロセッサを含む処理システムと、を備え、
前記処理システムが、
前記複数の個々のプロセスが前記シーケンス化プロセス中に行われるべき順番を決定することと、
前記決定された順番で前記複数の個々のプロセスのそれぞれを行うことによって前記シーケンス化プロセスを行うことと、を行うよう構成され、
前記行われるシーケンス化プロセスの一部として行われる前記複数の個々のプロセスのそれぞれについて、前記個々のプロセスを行うことが、
a)前記個々のプロセスによって行われることが適格なデータトランザクション要求を取得することであって、前記取得されたデータトランザクション要求が、前記第1タイプを伴うデータトランザクション要求と、前記個々のプロセスに対応する前記リソースを含む適格リストと、を含む、取得することと、
b)前記取得されたデータトランザクション要求の処理に基づいて、第1データおよび第2データを計算することであって、前記第1データは、前記個々のプロセスによって処理される前記第1タイプおよび前記第2タイプのデータトランザクション要求がマッチング可能な計算されたマッチング値である、計算することと、
c)前記計算された第1データおよび第2データを格納することと、を含むコンピュータシステム。
前記シーケンス化プロセスが新規トランザクション要求の受信に応じて行われるとき、データトランザクション要求はマッチングされない請求項4に記載のコンピュータシステム。
ゼロか1か要求およびそのような要求の完全マッチングの判定は、新規トランザクション要求の受信に応じて行われるトランザクション処理中は行われない請求項7に記載のコンピュータシステム。
前記第1データおよび前記第2データの各計算に応じて、前記計算された第1データおよび第2データを表示するグラフィカルユーザインタフェースを出力するよう構成されたディスプレイデバイスをさらに備える請求項7に記載のコンピュータシステム。
シーケンス化プロセスに亘って複数のデータトランザクション要求を処理する方法であって、当該方法はコンピュータシステムで実行され、当該シーケンス化プロセスが複数の個々のプロセスを含み、当該複数の個々のプロセスのそれぞれが複数のリソースのうちの異なるひとつに対応し、当該複数のリソースのそれぞれが対応する識別子を有し、前記方法は、
複数のデータトランザクション要求を保持することであって、前記複数のデータトランザクション要求が少なくとも第1タイプまたは第2タイプのデータトランザクション要求を含み、前記複数のデータトランザクション要求であって前記第1タイプのものがそれぞれ、i)総量と、ii)前記シーケンス化プロセス中に前記総量が前記複数のリソースに対して処理されるのに適格である場合のその複数のリソースの適格リストと、を含む、保持することと、
前記複数の個々のプロセスが前記シーケンス化プロセス中に行われるべき順番を決定することと、
前記決定された順番で前記複数の個々のプロセスのそれぞれを行うことによって前記シーケンス化プロセスを行うことと、を含み、
前記シーケンス化プロセスの一部として行われる前記個々のプロセスのそれぞれが、
a)前記個々のプロセスによって処理されることが適格なデータトランザクション要求を取得することであって、前記取得されたデータトランザクション要求が、前記第1タイプを伴うデータトランザクション要求と、前記個々のプロセスに対応する前記リソースを含む適格リストと、を含む、取得することと、
b)前記取得されたデータトランザクション要求に基づいて、第1データおよび第2データを計算することであって、前記第1データは、前記個々のプロセスによって処理される前記第1タイプおよび前記第2タイプのデータトランザクション要求がマッチング可能な計算されたマッチング値である、計算することと、
c)前記計算された第1データおよび第2データを格納することと、を含むトランザクション処理を含む方法。
コンピュータシステムで使用されるコンピュータ実行可能インストラクションを保持する非一時的コンピュータ可読ストレージ媒体であって、当該コンピュータシステムがシーケンス化プロセスに亘って複数のデータトランザクション要求を処理し、当該シーケンス化プロセスが複数の個々のプロセスを含み、当該複数の個々のプロセスのそれぞれが複数のリソースのうちの異なるひとつに対応し、当該複数のリソースのそれぞれが対応する識別子を有し、前記保持されるコンピュータ実行可能インストラクションが前記コンピュータシステムに、
複数のデータトランザクション要求を前記コンピュータシステムのストレージシステムに保持することであって、前記複数のデータトランザクション要求が少なくとも第1タイプまたは第2タイプのデータトランザクション要求を含み、前記複数のデータトランザクション要求であって前記第1タイプのものがそれぞれ、i)総量と、ii)前記シーケンス化プロセス中に前記総量が前記複数のリソースに対して処理されるのに適格である場合のその複数のリソースの適格リストと、を含む、保持することと、
前記複数の個々のプロセスが前記シーケンス化プロセス中に行われるべき順番を決定することであって、前記個々のプロセスが第1プロセスを含む、決定することと、
前記決定された順番に基づいて前記シーケンス化プロセスを行うことと、
前記シーケンス化プロセスの一部として、前記シーケンス化トランザクションの第1プロセスを行うことであって、
a)前記第1プロセスによって行われることが適格なデータトランザクション要求を取得することであって、前記取得されたデータトランザクション要求が、前記第1タイプを伴うデータトランザクション要求と、前記第1プロセスに対応する前記リソースを含む適格リストと、を含む、取得することと、
b)前記取得されたデータトランザクション要求に基づいて、第1データおよび第2データを計算することであって、前記第1データは、前記第1プロセスによって処理される前記第1タイプおよび前記第2タイプのデータトランザクション要求がマッチング可能であろう計算されたマッチング値であり、マッチング可能として示されるデータトランザクション要求が前記行われるシーケンス化プロセスの一部である前記複数の個々のプロセスのうちの後続のものについて適格なデータトランザクション要求として削除される、計算することと、
c)前記計算された第1データおよび第2データを格納することと、
前記行われるシーケンス化プロセスの一部として、前記シーケンス化プロセスに含まれる前記個々のプロセスの残りについて少なくともa)−c)を繰り返すことであって、前記残りが前記決定された順番で行われる、繰り返すことと、を行わせるインストラクションを含む非一時的コンピュータ可読ストレージ媒体。
【発明を実施するための形態】
【0012】
以下の記載では、説明を目的とし、限定を目的とせず、記載の技術の理解を提供するために、特定のノード、機能エンティティ、技術、プロトコル等の具体的な詳細が説明される。他の実施の形態を、以下の詳細説明から離れて実施できることは当業者には明らかであろう。他の例では、周知の方法、デバイス、技術等の詳細説明は、不必要な詳細説明で説明を曖昧にしないために省略されている。
【0013】
各セクションの一般的な主題について読者を方向付けるためにのみ、この詳細な説明でセクションが使用される。以下で明らかになるように、多くの特徴の説明は複数のセクションにまたがっており、表題は任意のセクションに含まれる説明の意味に影響をあたえるものとして読まれるべきではない。
概要
【0014】
ある例示的な実施の形態では、コンピュータシステム(例えば、オークションコンピュータシステム)は、アセットとも呼ばれ得る、関連するが個別に特定されるリソースについて、複数の別個のデータトランザクションプロセス(例えば、対向するデータトランザクション要求間のマッチングまたはトランザクションを決定するプロセス)を実行するように構成される。いくつかの例では、データトランザクションプロセスは、注文を提出するクライアントの観点からは、1つのオークションまたは1つのデータトランザクションプロセスとして実行されるコンピュータ実装オークションプロセスである。クライアントコンピュータシステムは、単一のインタフェースを介して、および単一の要求を介して、電子データトランザクション要求(例えば、本明細書では「注文(オーダ)」とも呼ばれる)を提出することができる。次いで、単一の注文は、オークションコンピュータシステムによって実行される複数の別個であるがリンクされたデータトランザクションプロセス(例えば、オークション)にわたって使用される。いくつかの例では、複数の別個のオークションにわたって実行することができる単一の注文は、マルチリソースまたはマルチアセット注文であってもよい。
【0015】
ある例示的な実施の形態では、単一のデータトランザクション要求(例えば、買い注文)は、複数の別個であるが関連するオークションにわたって実行がどのように生じるかについての最大値(または売り注文の場合には最小値)に関するインストラクションを(例えば、1つまたは複数のパラメータとして)含む。各注文(例えば、売り注文および買い注文の両方)は、個々のオークションに参加するための価格を指定することができる(または指定しなければならない)。コンピュータシステムは異なるアセットに対する複数のオークションが行われるシーケンスを決定し、次いで、異なるアセットの各々に対するオークションを順次実行する。各オークションは取引価格、量、およびそのオークションの売買注文がどのようにマッチングされるかの決定(例えば、取引処理の一部として)を含む。特定の例では、1つのオークションプロセスの終了時に実行されないままである注文(例えば、買い注文)は次のオークションに参加することができる。特定の例では、コンピュータシステムは、オークションの「サイズ」または値(例えば、株式によって定量化される)、実行値、または名目値を最大にする所与のオークションの実行価格をプログラム的に決定する。
【0016】
図1は、オークションシステムに注文を提出するように構成されたクライアントシステムにネットワークを介して結合されたコンピュータ実施オークションシステムの非限定的な例示的機能ブロック図を示す。
図2は、個々にオークション処理を行った複数の異なるアセットグループを
図1のシステムを用いてどのように構成するかを示す図である。
図3Aおよび3Bは、アセットグループ(
図2に示されたものなど)に対する多段階オークションの一例を示す信号図である。
図4は、いくつかの実施の形態において、
図1から
図3Bに示される特徴を実施するために使用される例示的なハードウエアアーキテクチャを示す。
【0017】
この文書の多くの場所で、ソフトウエアモジュール(例えば、トランザクション要求ハンドラ103、スケジューリングエンジン104A、演算エンジン104B、およびマッチングエンジン104C)およびそのようなソフトウエアモジュールによって実行される動作が説明される。これは、説明を容易にするために行われ、ソフトウエアモジュールが任意の動作を実行することが本明細書で説明されるときはいつでも、その動作は実際にはソフトウエアモジュールを構成するインストラクションに従って、基礎となるハードウエア要素(ハードウエアプロセッサ(例えば、CPU)、メモリデバイスなど)によって実行されることを理解されたい。これに関するさらなる詳細は、他の場所の中でもとりわけ、
図4の説明において以下に提供される。
図1の説明
【0018】
図1は、コンピュータシステムの例示的な実施の形態のブロック図を示す。この例では、コンピュータシステムは、ネットワークインタフェース106Aを介してオークションシステム100にデータトランザクション要求(例えば、注文)を提出するように構成されたクライアントシステム108と通信するオークションコンピュータシステム100(オークションシステム)とすることができる。
【0019】
オークションシステム100は、トランザクション要求ハンドラ103と、スケジューリングエンジン104Aと、計算エンジン104Bと、マッチングエンジン104Cと、を実装するハードウエアプロセッサ102(たとえば、
図4のプロセッサ402など)を含み、これらはそれぞれ、オークションシステム100によって実行される別個のプログラムまたはルーチン(たとえば、ソフトウエアプログラム、ライブラリ、または他のプログラムされた機能)とすることができる。いくつかの例では、トランザクション要求ハンドラ103、スケジューリングエンジン104A、計算エンジン104B、およびマッチングエンジン104Cのそれぞれによって実行される機能はこれらの異なる要素がネットワークを介して通信するような異なるコンピュータシステム(たとえば、分散コンピュータシステム)上で実行され得る。オークションシステム100はまた、(例えば、提出された注文の、ソートされ得る二重リストを保持するための)オーダブックデータ構造として機能し得るか、またはそれを含み得るデータベース112を含む。オークションシステム100はまた、外部システム110と、および/またはオークションシステム100を構成するコンピューティングノード間(例えば、分散システムの場合)で通信するために使用されるネットワークインタフェース106Bを含む。
【0020】
トランザクション要求ハンドラ103は、クライアントシステム108からの入来データトランザクション要求(例えば、電子データメッセージに含まれるデータトランザクション要求)を処理する。上述のように、データトランザクション要求の一例は注文(例えば、買い注文または売り注文)である。いくつかの例示的な実施の形態では、入来注文は、一緒にグループ化された1つまたは複数のアセットの量(例えば、$100,000)および価格(例えば、アセットCに対する$100,000の入札、およびアセットBに対する$90,000の入札)を指定することができる(例えば、指定しなければならない)。
【0021】
いくつかの例示的な実施の形態では、入来注文は、オークションされているアセットのNAV(純アセット価値)のパーセンテージを含むことができる。そのような場合、システム100は、アセットのNAV、提供されたパーセンテージ、および注文で指定された量の機能として、注文の「価格」を自動的に決定することができる。例えば、入来注文が$200,000の公称値を有し、シーケンシャルオークションプロセスにおけるアセットのうちの1つのNAVが$100,000である場合、入来注文は、注文「価格」として、そのアセットのNAVの.50(50%)を含むことができる。新しい注文が受け取られると、システム100はアセットの入札価格を$50,000として計算し、50,000の値を使用して、最終的に、この新しい注文のそのアセットの入札の、1株当たりの価格(例えば、$0.25)を決定することができる。したがって、最低限望まれる全取引値(たとえば、$50,000)を表す価格を提供する代わりに、オークション参加者は事前定義された値(たとえば、NAV)のパーセンテージとして入札額を提供することができる。
【0022】
いくつかの例では、クライアントは、一緒にグループ化されたすべてのアセットの部分集合の価格のみ(例えば、シーケンシャルオークションに入る3つのアセットのうちの2つの価格を含み、3番目のアセットの価格は含まない)を含むことができる。新しい注文が受信されると、それは、将来の処理のためにオーダブックおよび/またはデータベース112に追加されてもよい(例えば、シーケンシャルオークションプロセスが開始するときに使用される)。
【0023】
トランザクション要求ハンドラ103を介して受信された新しい買い注文は、それらが、購入されるべき証券の全想定価値(または代替の実施形態ではクライアントが費やす意思のある全額)を、アセットのリストおよび対応する価格(または例えば、アセットのNAVのパーセンテージ)とともに含むことを確実にするようにチェックすることによって検証されてもよい。リスト内のアセットの各々は、アセット識別子(例えば、他のアセットからそれを一意に識別する)と、クライアントがこのアセットの株を購入する準備ができている価格と、を有することができる。
【0024】
新たに受け取られた売り注文はまた、その売り注文が、売られているアセットの識別子と、アセットの全想定価値と、および少なくともクライアントがアセットを売る準備ができている価格(全価格またはNAVのパーセンテージとして表すことができる)と、を含むことを保証するために検証されてもよい。
【0025】
スケジューリングエンジン104Aは、複数の異なるアセットに対するオークションのシーケンスを決定または維持する責任を負う。
【0026】
一般に、取引され得る各別個のアセットは、それ自体の対応するオークションプロセスを有する。例えば、
図2を参照すると、アセットA、B、C、およびDは対応するオークションA、B、C、およびD(例えば、それぞれが、全体のシーケンス化データトランザクションプロセスの一部である別個のデータトランザクションプロセスである)を有することになる。スケジューリングエンジン104は、そのようなアセットに対する様々なオークションが実行され得る順番を決定し得る。いくつかの例では、スケジューリングエンジン104は、個々のアセットにおける関心の量に基づいて、順番を動的に決定することができる。例えば、所与のアセットの価格を含むクライアントが多ければ多いほど、アセットの優先度を上げることができる。アセットA(5人のクライアントのみが価格を提供した)よりもアセットDにより多くの関心がある場合(例えば、100人のクライアントが価格を提供した)、スケジューリングエンジン104は、オークションAの前にオークションDをスケジュールすることができる。他の例では順番を逆にすることができる(例えば、より多くの関心がオークションシーケンス内の優先度を下げることができる)。特定の例では、個々のアセットそれぞれのオークションの順番は(例えば、オークション管理者が定義可能な構成に基づいて)事前設定されてもよい。いくつかの例では、スケジューリングエンジン104Aは、アセットに関連付けられたプロパティに基づいて、アセット(したがって、対応するオークション)を動的にソートすることができる。例えば、各アセットは、そのアセットに添付された対応する手数料を有することができる。スケジューリングエンジン104は、その手数料に基づいてアセットをソートまたは選択することができる。特定の例では、各アセットは対応する手数料クラスを有し、最低手数料クラスを有するアセットはシーケンス化オークションプロセスにおいて最初であり、次に低い手数料クラスが続き、最高手数料クラスのオークションがシーケンス内で最後に実行されるまで、以下同様である。したがって、スケジューリングエンジン104は、所与のファンドまたはコレクションアセット内に含まれる複数のアセットに対するオークションのシーケンスを構成またはスケジューリングする。
【0027】
各シーケンス化オークションについて、計算エンジン104Bは、オークション当たりの清算価格および清算量を決定する。言い換えれば、計算エンジン104Bは所与のアセットについての売り注文と買い注文との間で、株式、単位、サイズ、取引値、名目値、譲渡されたコミットメント、または他の数量(例えば、清算量)を最大にする単一の清算価格を選択しようと試みる。計算エンジン104Bからの出力は売り注文および買い注文のリストを含み、そのリストは、買い注文と売り注文との間の取引を構築するためにマッチングエンジン104Cによって使用される。
【0028】
いくつかの例示的な実施の形態では、計算エンジン104Bを使用して、現在の売買注文、清算価格、清算量などのリアルタイムデータフィードを提供することができる。リアルタイムデータフィードの例では、新しい注文が受信されるたびに、計算エンジン104Bの機能を実行することができ、計算エンジン104Bからの出力結果を、リアルタイムデータフィードを介して報告することができる(例えば、ディスプレイに出力することができ、またはネットワークを介して他のコンピュータに電子的に送信することができる)。
【0029】
マッチングエンジン104Cは、マッチングされるべき売り注文および買い注文のリストを取得し、これらの注文間の取引を決定または構築する。いくつかの例では、マッチングエンジン104Cは(例えば、部分的なマッチングを回避することによって、同様のサイズの注文をマッチングすることによって、などによって)コンポーネントトランザクションの数を最小化しようとする。
【0030】
データベース112はシステム100の電子ストレージ(例えば、
図4の404)を含み、オーダブックを含んでもよく、またはオーダブックであってもよい。いくつかの例では、オーダブックは、クライアントコンピュータシステム108から受信された電子データメッセージ(例えば、またはその中の注文)を保存する。いくつかの実装形態では、識別子ごとに(たとえば、ティッカーシンボルごとに、CUSIP番号ごとに、セキュリティ識別番号ごとに、または他のアセットまたはリソース識別子ごとに)2つの別々に順序付けられたリストが格納され、維持される。2つのリストは、ティッカーシンボルについてオーダブックの売買またはビッドおよびアスク「側」に対応することができる。メッセージ(またはそれらのメッセージに含まれる要求/注文)は、価格、サイズ、注文提出エンティティ、提出時刻、オーダブック内の時間などのうちの1つまたは複数に従ってソートされ得る。いくつかの例では、メッセージまたは注文の記述情報もオーダブックに含まれる。
【0031】
いくつかの例では、データベース112は、各アセットについての売り注文のリスト(例えば、そのアセットのどれだけが利用可能であるかに対応する)と、買い注文のリストと、各買い注文に対して資格のあるアセットと、を含むことができる。この点で、「買い」注文はクライアントが所与のアセットを購入する意思があるが、そのような取引が発生しないかもしれないことを表すので、従来の買い注文(例えば、50で100購入する)とは異なっていてもよい。例えば、
図2の注文210Aは200の買い注文およびAおよびCが資格のあるアセットであることを示している。これは、買い注文210Aを提出したクライアントがAおよび/またはCを200まで購入することを検討しており、クライアントがAに対して支払う意思のある価格は95であり、クライアントがCに対して支払う意思のある価格は90であることを意味する。この買い注文210Aを成立させると決定される実際の取引は、Aおよび/またはCのオークションの結果に応じて変化しうる。例えば、一例では、200のAがクライアントの注文を成立させてもよく、0のCがクライアントの注文を成立させてもよい。他の例では、25のAおよび175のCが注文を成立させるために用いられてもよい。他の例では、50のAおよび50のCが決定されてもよい(例えば、AおよびCのオークションはこの買い注文のすべてを満たすのに十分な売り注文を有していなかった)。
【0032】
所定の例示的な実施の形態では、個々のオークション(例えば、オークションA 206A、オークションB 206Bなど)ごとに実行されるオークション処理は標準的なオークションプロセスを使用する。特定の例では、オークションプロセスは
図3A〜3Cに示される処理に従って動作する。特定の例では、オークションプロセスは本明細書の表1および2に関連して説明される例に従って動作する。
【0033】
クライアントシステム108は、パーソナルコンピュータ、PDA、携帯電話、サーバコンピュータ、または電子データ通信ネットワーク(例えば、インターネットまたは他のコンピュータベースのネットワーク)を介してコンピュータ実装オークションシステム100と(電子データメッセージを介して)電子的に通信するように構成された任意の他のシステム/デバイスを含むことができる。
【0034】
クライアントシステム108は、電子データメッセージを使用することによってオークションシステム100に注文を提出する個人および/またはビジネスエンティティ(例えば、小売ブローカまたは個人トレーダ)に関連付けられてもよい。
【0035】
クライアントシステム108は、中央処理装置(CPU)、メモリ、およびデータ伝送デバイスを含む。データ伝送デバイスは例えば、クライアントシステムを電子データ通信ネットワークに接続するネットワークインターフェースデバイスとすることができる。接続は、有線、光、あるいは無線であってもよく、また、例えば、WiFiネットワーク、インターネット、またはセルラデータサービスを介して接続することができる。所定の例では、クライアントシステム108は、オークションシステム100への専用接続を有することができる。データ伝送デバイスは、いくつかの実施の形態では、トランシーバ、ベースバンドプロセッサ、ネットワークインタフェースデバイス、および/または他のデータ通信回路であってもよいし、またはそれらを含んでもよく、データを送受信することができる。データはデータパッケージまたはパケット(例えば、電子データメッセージ)を介して受信および/または送信されてもよい。
【0036】
クライアントシステム108は、オークションコンピュータシステム100と対話するために使用される。例えば、所与のクライアントシステムを使用して、証券/アセットを売買するための注文の発注に関する電子データメッセージを作成し、そのような要求に関する電子データメッセージをオークションシステム100に送信することができる。クライアントシステム108は、ある数の株式を売買するための注文の詳細をユーザから(例えば、キーボードまたは他の入力デバイスを介して提供される入力を介して)取得して、オークションシステム100にその注文を送信することができる。
【0037】
一般に、クライアントコンピュータシステム108は、注文を介してオークションから恩恵を受けるエンティティである「クライアント」または「参加者」によって制御される。これはまた、様々なクライアントに代わって(例えば、ファイナンシャルアドバイザまたはブローカ機関を介して)提出された注文を含む。
図2の説明
【0038】
図2は、個々にオークション処理を行った複数の異なるアセットグループを
図1のシステムを用いてどのように処理されるかを示す図である。この例では、アセットのグループはエンティティ(例えば、個人、企業、ブローカ、リミテッドパートナーシップインタレスト等)によって提供される「ファンド」に対応する。ここで、ファンドX 200は、アセットA 202A、アセットB 202B、アセットC 202C、およびアセットD 202Dを含む。ファンドX 200およびそのファンド内の各アセットは、例えばデータベース112に格納され得る一意の識別子(例えば、ティッカーシンボル)を介してコンピュータシステム100内で識別され得る。各アセットはまた、対応するオークション、オークションA 206A、オークションB 206B、オークションC 206C、およびオークションD 206Dを有する。4つのオークションはオークショングループ204を形成する。オークショングループ204は、名目上、ファンドX 200に対応する。しかしながら、他のファンドからの他のアセット(又は個々のアセットでさえも)を単一のオークショングループに含めることができる。オークショングループ204およびその中のオークションはまた、一意の識別子を介してコンピュータシステム100によって識別されてもよい。
【0039】
特定の例では、様々なアセットは、例えば、同じまたは類似の基礎となる金融商品、証券、または同じティッカーシンボルに対応するが(例えば、基礎となる金融商品が交換可能または実質的に同じであり得るように)、それらに関連する異なる特徴または特性を有するアセットを含む。したがって、様々なアセットは(例えば、元のアセットまたは他の関連物によって)互いにリンクされていてもよいが、異なる手数料構造、法的構造、所有権、議決権、譲渡可能権などに基づいて区別することができる。様々なアセットの一例として−それぞれがシーケンス化オークションプロセスにおけるそれ用の個々のオークションを伴うが−、1つは0.5%の手数料を有し、別の1つは1%の手数料を有することができる。それ用の対応するオークションを有する各アセットは、システム100によって(および様々なアセットに対して注文を行う参加者によって)識別され得る(例えば、一意的に)。本明細書で使用される場合、様々なアセットは、同じアセットの異なるクラスまたはタイプを含むことができる。本明細書で使用される場合、所与のアセットの株式は、そのアセット、そのアセットの単位、またはそのアセットの他の除数での持ち分を含む。
【0040】
オークションプロセスが開始されると(または開始される前に)、アセットA、B、およびCについての売り注文208A、208B、208Cが受信されてもよい。これらの売り注文を使用して、所与のオークション(206A、206B、206C、206D)で利用可能な各アセットの総量を決定する。
【0041】
オークショングループ204のオークションプロセス中に、クライアントは、買い注文210Aおよび210Bを提出することもできる。本明細書で説明する場合、買い注文は、クライアントが買いたいオークショングループの量、その量が適用されるグループの特定のアセット、およびグループの各アセットに対する対応する入札価格を含むことができる。
【0042】
別の例示的な実施の形態では、買い注文は、(グループとは対照的に)特定のアセットに対して発行されてもよく、売り注文はアセットグループに対して発行される。
【0043】
本明細書で説明される場合、ある例示的な実装では、新しい注文のそれぞれを受信すると、スケジュールされたオークションのそれぞれについてのオークション価格およびオークション量を決定する演算処理が実行される。この情報は、その後、様々なサービスに公開されうる。いくつかの例では、この情報は、監視または運用監督を提供するためにオークション管理者に提供されてもよく、または、この情報は、この情報への可視性を望む発行者にまたは他のサービスに提供されてもよい。
図3A、3B、および3C:
【0044】
図3A、3B、および3Cは、
図1に示される例示的なシステムを使用してシーケンス化オークションプロセスがどのように動作するかを示す信号図である。
【0045】
300において、データベース112は、どのアセットがどのグループに属するかを定義する、アセットおよび情報のリストで構成される(例えば、
図2のアセット202A、202B、202C、および202Dはすべて、ファンドX 200の下でグループ化され、ここで、それぞれは、対応する一意の識別子によって識別され得る)。この構成は手動プロセスであってもよく、または他のシステム(例えば、外部システム110)からインポートされてもよい。
【0046】
301で、オークションコンピュータシステム100はオークションプロセスを開始する。これは、オークションが開始したという通知をクライアントシステム108に送信することを含むことができる。特定の例では、オークションプロセスの開始のトリガは手動であり、他の例ではオークションが事前に構成された事前設定時刻に開始する。
【0047】
302において、クライアントシステム108は、所与のアセットグループに対するオークションが開始したというオークション通知メッセージを受信する。特定の例では、この通知はオークションシステム100から送信される。しかしながら、そのような通知は、他のコンピュータシステムから送信されてもよい。
【0048】
オークションプロセス中、オークションコンピュータシステム100は、新しい注文(買い注文および/または売り注文)を受け入れることができる期間を有する。これは、それぞれステップ304および306で表される。しかしながら、301と320との間の任意の時間に、クライアントシステム108はオークションコンピュータシステム100に注文を提出することができる。提出された注文は、307でトランザクション要求ハンドラ103によってデータベース108に追加される。
【0049】
308で、トランザクション要求ハンドラ103はスケジューリングエンジン104Aと通信して、新しい買い注文または売り注文の受信に応答して、「部分的」シーケンス化オークションプロセス(例えば、複数のシーケンス化オークションが実行される場合)を実行する。いくつかの例では、新しい注文を受け取ると、進行中のオークションの現在の状態をリアルタイムで見ることができるようにするために、部分的シーケンス化オークションプロセスが実行される。これは、現在のオークション価格及びコミットメント量(例えば、オークションの現在の状態に従って取引されることになる株式の数)を計算することを含むことができる。いくつかの例では、308が買い注文のみ、売り注文のみ、または買い注文および売り注文のいずれかの受信に応答して実行される。
【0050】
実行される(308で開始する)シーケンス化オークションプロセスは、「完全な」オークションプロセスの特定の特徴がオークションのこの段階で実行され得ないため、「部分的な」プロセスであり得る。特に、オークションがまだ進行中である間、オークションの現在の状態に関するリアルタイムデータを提供するために必要とされるオークションの要素のみが実行され得る。完全オークションプロセスの一部である(例えば、322〜338に関連して説明したような)他の態様、例えば、取引を形成するために個々の売買注文をマッチングすることは、所望のデータを提供しない場合、この「部分的」シーケンス化オークションプロセス中に実行されないことがある。しかしながら、特定の代替的な実装では、完全シーケンス化オークションプロセスは各注文の受信に応答して実行されてもよい。
【0051】
シーケンス化オークションプロセスの部分的な実行の一部として、309において、スケジューリングエンジン104Aは、304または306において入ってくる注文が関連付けられたファンドについてのオークションのシーケンスを決定する。言い換えれば、個々のオークションプロセスの順番が決定される。オークションのシーケンスの決定は動的(例えば、各種受信された注文の内容に基づく)、静的(例えば、アセットのプロパティに基づく)、または事前定義(例えば、ユーザが手動で特定の注文に設定)であってもよい。特定の例では、オークションの順番が(例えば、オークションの前に)設定され、次いで、静的状態でデータベース112に記憶されてもよい。
【0052】
次に、
図3Bでは、スケジューリングエンジン104Aはシーケンス化オークションプロセスにおける所与のアセットについて、310で計算プロセスを開始する。これは、計算エンジン104Bによって実行される演算処理を呼び出すスケジューリングエンジン104Aによって達成され得る。このプロセスは、(318と310との間のループによって表されるように)シーケンス化オークションプロセスにおけるアセットの各々について行われる。
【0053】
312において、計算エンジン104Bは、価格が計算されているアセットについて、データベース112から適格な注文を取り出す。取り出された売り注文は、最も低い価格のものから最も高い価格のものへと、次いで、時刻(例えば、売り注文がシステムによって受信されたときのタイムスタンプ)によって最も昔のものから一番新しいものへとソートされてもよい。したがって、プロセスで使用される最初の売り注文は、最も昔のタイムスタンプを有する最も低い価格のものであってもよい。
【0054】
買い注文は最高価格のものから最低価格のものへとソートされてもよく、現在のアセットに対する関心を示した買い注文は所与のアセットのオーダブックに買い注文として追加される。
【0055】
計算プロセスは、以下の変数を使用することができる:1)現在の清算価格−現在の繰り返し中に計算された清算価格を保存する;2)現在の清算量−現在の繰り返し中に計算された清算量を保存する;3)前の清算価格−前の繰り返し中に計算された清算価格を保存する;4)前の清算量−前の繰り返し中に計算された清算量を保存する;5)現在の売り清算量−これまでに売りループによって処理された売り注文からのすべてのコミットメントの和を保存する;6)現在の買い清算量−これまでに買いループによって処理された買い注文からのすべてのコミットメントの和を保存する。これらの変数は全てゼロに初期化されてもよい。
【0056】
314における価格および量の計算は、以下のように進行してもよい:
【0058】
1.1)現在の売り注文のコミットメント量を現在の清算量(例えば、利用可能な所与のアセットの総量)に加算することによって、現在の売り清算量を計算する。
【0059】
1.2)各買い注文に対して、以下の3つの選択肢のうちの1つが実行される:
【0060】
a)買い注文のさらなる処理を停止する:買い注文価格が現在の清算価格よりも小さいか、または現在の買い清算量が現在の売り清算量よりも大きい場合、処理を停止する。
【0061】
b)現在の買い注文をスキップし、次の買い注文を続行する::買い注文価格が売り注文価格よりも小さい場合、次の買い注文を続行する。
【0062】
c)現在の買い清算量を更新し、次の買い注文を継続する:現在の買い注文のコミットメントを現在の買い清算量に追加し、次の買い注文を継続する。
【0063】
1.3)1.2の買い注文からループした後、プロセスは、現在の清算価格および現在の清算量を計算する。特に、少なくとも1つの買い注文が買い注文ループによって処理された場合、現在の清算価格を、現在の売り注文価格および最後に処理された買い注文価格の平均値(例えば、中点)に設定する。あるいは、買い注文が買い注文ループによって処理されなかった場合、現在の清算価格および量をゼロに設定する。
【0064】
1.4)最後に、現在の清算価格に現在の清算量を乗じたものが、以前の清算価格に以前の清算量を乗じたもの以下である場合、売りループは処理を停止し、以前の清算価格および以前の清算量を最終結果(例えば、シーケンス化オークションにおいてこのオークションのために使用または提供される価格および量)として使用する。しかしながら、現在の清算価格に現在の清算量を乗じたものが、以前の清算価格に以前の清算量を乗じたものよりも大きい場合、ループは次の注文に続く(例えば、上記の1に戻る)。
【0065】
したがって、上記の例示的な技術を使用することによって、清算価格および清算量を、シーケンス化オークションの一部である所与のアセットについての売買注文リストに基づいて計算することができる。これらの2つの計算されたデータ(第1および第2のデータ)はその後のオークションプロセスのための処理(例えば、価格、量、および/またはどの注文がマッチングされるべきかを決定するオークションのためのトランザクション処理)において使用されてもよい。したがって、ある例では、最初のオークション(例えば、シーケンス化プロセスにおける最初のオークション)を処理した結果は次のオークションがどのように実行されるかに影響を及ぼし得る。
【0066】
以下でより詳細に説明するように、ゼロか1か注文(AON)を解決またはチェックし、各注文の充足状態を更新することに関連して実行される、ステップ314の別の部分があってもよい。
【0067】
いずれにしても、ステップ314で計算されたデータは、316でデータベース112に保存されてもよい。場合によっては、データは次に、シーケンス化オークションの各オークションの現在のオークション統計のリアルタイムビューを提供するために、ディスプレイまたは電子データフィードに出力されてもよい。
【0068】
いくつかの例では、入ってくる売り注文に対してのみ、または入ってくる買い注文に対してのみ、310〜318のトリガが行われる。したがって、あるタイプの注文(例えば、売り注文などの第1のタイプ)の受信は処理310〜318をトリガすることができ、他方で、別のタイプの注文(例えば、売り注文などの第2のタイプ)の受信は、その同じ処理をトリガすることができない。
【0069】
ステップ318において、プロセスは次のオークション(例えば、次に高い手数料を伴うアセットのオークションなど)について繰り返される。
【0070】
320において、オークションコンピュータシステム100は、オークションプロセスを新しい注文に対してクローズする。新しい注文は、オークションの開始(301)と終了(320)との間の任意の時刻に受信されてもよいことが理解されるのであろう。
【0071】
オークションを終了した後、スケジューリングエンジン104Aは、対応するオークションの計算エンジン104Bの計算プロセスを呼び出す。上述のように、オークションを順序付ける(シーケンス化する)ための様々な異なる技術があるが、ある例示的な実施の形態では、アセットは最低の手数料のものから最高の手数料のものへと並べられ、それらのアセットのオークションも同様に322でスケジュールされる。
【0072】
様々なオークションの各々に対して、計算エンジン104Bは、324において、その特定のシーケンス化オークションの注文リストを検索し、326において、清算価格及び清算量を計算する。326のプロセスは314のプロセスと同様または同じであり、結果は328で保存される。いくつかの例では、ステップ326をスキップすることができ、314の最後のトリガ中に保存された価格および量を330の入力として使用することができる。特定の例では、330が(例えば、330で詳述されたプロセスが310と318との間のループに含まれていた場合)同様にスキップされてもよい。したがって、いくつかの例では、マッチングプロセス334はデータベースに以前に格納されたデータに基づいて実行され得る。
【0073】
いずれにしても、計算された清算価格および清算量を用いて、計算エンジン104Bは330において、AON状態をチェックし、各注文の充足状態を決定する。AONプロセスは、変数を使用して、残りの清算量を超えるデータを保存することができる。この変数は、前のラウンドによって処理されていない清算量を表すために使用されてもよい。特定の例では、326で決定された清算量はこの値を初期化するために使用される。326におけるプロセスは、以下の要素を含むことができる。
【0074】
1) AONをチェックし、売り注文を充足する
【0075】
1.1)リスト内の各売り注文に対して、2つの可能なオプションのうちの1つがある:
【0076】
1.1.1)所与の売り注文のコミットメント量が残りの清算量よりも大きい場合、残りの清算量はゼロに設定される。特定の例では、残りの清算量は、以前のシーケンス化オークション(例えば、以前のラウンド)によって処理されなかった清算量である。残りの清算量の値は上記で計算された清算量に初期化されてもよい(例えば、328で保存されたもの)。注文ステータスが部分的にマッチングするように設定され、マッチングされた量が残りの清算量に設定される。注文がAON注文である場合、それは注文リストから削除され、現在のオークションはこの所与のアセットについて再計算される。言い換えれば、ゼロか1か注文が部分的にマッチングされるというのは、その結果、プロセスがその注文を注文リストから除去し、演算プロセスを再実行する(例えば、再実行326および/または330)ことのみである。ゼロか1か注文が除去され、演算プロセスが再実行されると、残りの注文はマッチングなしに設定される。
【0077】
1.1.2)売り注文のコミットメント量が残りの清算量以下である場合、残りの清算量から注文のコミットメント量を差し引いて、残りを新しい残りの清算量として設定する。次いで、売り注文は完全にマッチングされるように(例えば、完全にマッチングした量に)設定される。次に、次の売り注文が処理される。
【0078】
2)売り注文を処理した後、買い注文が同様にチェックされる。売り注文と同様に、2つの可能なオプションがある(完全にマッチングされるものか、または全くマッチングされない注文を含む完全マッチングに達しないもの)。
【0079】
2.1)買い注文のコミットメント量が残りの清算量より大きい場合、残りの清算量をゼロに設定する。買い注文の注文ステータスが部分的にマッチングするように設定され、マッチングされた量が残りの清算量に設定される。買い注文がAON注文である場合、このオークションの買い注文のリストからそれを削除し、それなしで演算プロセスを再実行する。残りの買い注文は、再実行プロセスが行われる前にマッチングなしに設定されてもよい。ゼロか1か注文が除去されると、その除去が2つ以上のオークションに影響を及ぼし得ることが理解されるのであろう。例えば、3つの異なるアセットを示した、ゼロか1かにマークされた買い注文は、その買い注文が完全には充たされ得ないとプロセスが判定した場合に、それら3つのアセットに対するオークションの再計算を生じさせ得る。
【0080】
2.2)買い注文のコミットメント量が残りの清算量以下である場合、買い注文のコミットメント量は残りの清算量から減算される。残りは、新たな残りの清算量として保存される。買い注文は完全にマッチングするように設定され(例えば、そのマッチングした量がそのコミットメント量に設定される)、次の買い注文が処理される。
【0081】
2.3)買い注文が完全にマッチングする場合、それはオークションのシーケンスから完全に除去される。しかしながら、買い注文が充たされていないか、または部分的に充たされている場合、それは、シーケンス化オークションのうちの次のオークション(例えば、次のラウンド)に移される。
【0082】
計算プロセスのAONおよび充足状態部分の終了時に、マッチングされるべき(例えば、充たされているか、または部分的に充たされている)買い注文および売り注文のリストを、次のラウンドで使用されるべき買い注文(およびそれらのコミット量)のリストと共にデータベース112に保存することができる。
【0083】
ステップ334で、マッチングエンジン104Cが呼び出されて、330によって決定され332で保存された売買注文のリスト間のトランザクションが生成される。このプロセスは、以下の変数、すなわち現在の売り注文(処理されている現在の売り注文)、現在の買い注文(処理されている現在の買い注文)、現在の売り注文リスト(マッチング処理すべきすべての売り注文のリスト)、および現在の買い注文リスト(シーケンス化オークションプロセスのこのラウンドのこのマッチング部分で処理すべきすべての買い注文のリスト)を含むことができる。プロセスは、買い注文と売り注文との間のトランザクションのリストを生成することができる。マッチングプロセスは、ループで動作する以下のステップを含む:
【0084】
1)現在の売り注文のリストから現在の売り注文を削除することによって、現在の売り注文を取得する(または処理を停止する)。それ以上の注文がない場合、プロセスは終了する。
【0085】
2)現在の買い注文のリストから現在の買い注文を削除することによって、現在の買い注文を取得する(または処理を停止する)。
【0086】
3)その2つの注文で、3つの可能なアクションのうちの1つが取られる:
【0087】
3.1)現在の買い注文コミットメントが現在の売り注文コミットメントよりも大きい場合、売り手から買い手への、現在の売り注文の量での取引を追加する。現在の買い注文コミットメントは、現在の売り注文コミットメントだけ減少され、ステップ1および3が再実行される。場合によっては、買い注文の選択(ステップ2)は、買い注文が既に選択されているのでスキップされてもよい。
【0088】
3.2)現在の買い注文のコミットメントと売り注文のコミットメントとが等しい場合、売り手から買い手への取引が追加され、ステップ1〜3が再実行される。
【0089】
3.3)買い注文コミットメントが売り注文より小さい場合、売り手から買い手への、その買い注文の量での取引が追加される。売り注文コミットメントは、現在の買い注文コミットメントだけ減少され、ステップ2および3が繰り返される。
【0090】
したがって、取引のリスト(例えば、清算価格での)は、以前に生成された買い注文および売り注文のリストに基づいて生成され、336でデータベース112に保存され得る。
【0091】
清算価格、充足状態(fill status)、およびマッチングを計算するプロセスは、338において、シーケンス化オークションプロセスの各オークションラウンドについて繰り返される。
【0092】
シーケンス化オークションが終了すると、340で、オークションの結果をクライアントシステム108に報告することができる。
【0093】
以下は、シーケンス化オークションプロセスがどのように実行され得るかについての実施の形態である。いくつかの例では、
図1のシステム100を使用して、および/または
図3A〜3Cに示すプロセスに従って、以下を実施することができる。表1は、例示的なシーケンス化オークションについて受信される複数の異なる売り注文を示し、表2は、シーケンス化オークションについての買い注文を示す。
【表1】
【表2】
【0094】
表1および表2はそれぞれ、異なる参加者によって(例えば、クライアントシステム108を介して)システム100に提出された売り注文および買い注文を示す。
【0095】
いくつかの実装形態では、1つまたは複数の条件が満たされない場合、注文はオーダブックに暫定的に含まれ(たとえば、オーダブック112および/または上記の表に含まれ)、後の時点で削除され得る。このような場合には、仮の注文は「不完全」とみなすことができる注文は、外部のチェック又はプロセスの完了を条件とする場合には、暫定的な注文とすることができる。一例として、参加者はオーダブック(例えば、オーダブック112に格納された上記の表)に含まれる仮の注文を提出することができるが、注文はその注文のために執行された法的文書の承認または提出を条件とすることができる。必要な書類が提出されない場合は、オーダブックから暫定的な注文を削除することができる。必要な文書が提出された場合、注文は暫定的な注文から「完了」注文に変更(例えば、更新)され、オーダブック内の他の通常の注文と同様に処理されてもよい。いくつかの例では、注文はビットフィールドなどを介して暫定としてマークされ得る。
【0096】
上記の表に示すように、シーケンス化オークションプロセスには2つの異なるアセット(AおよびB)がある。アセットBの手数料構成は0.5%、アセットAの手数料構成は1%である。この例では、最低手数料構造から最高手数料構造へのシーケンス化オークションでアセットが並べられ、したがって、アセットBのオークションが最初に行われ、続いてアセットAのオークションが行われる。
【0097】
アセットBのオークションについて、価格および量が最初に計算される。価格および量の計算プロセスは、アセットBの最低売却価格および最高入札価格を選択することから始まる。これから、注文1226および968が選択される。これら2つの注文の中点は$10.50であり、したがって、この価格で取引される総量は$1,000である。
【0098】
プロセスは、オークションにコミットされる量を増加させる価格を求めて注文を調べ続ける。したがって、注文1227および969が選択される。これらの注文間の中間価格は$9であり、この価格では、全コミットメント量は$1,300となる。本明細書で使用される全コミットメント量は代わりに、「想定元本」、数量、または他の数値であってもよいことが理解されるのであろう。
【0099】
次に、プロセスは、注文1228および注文968を選択する。これらの注文の中点の価格は$13.50であり、全コミットメント量は$1,000である。現在のコミットメント量が以前のコミットメント量よりも小さいので、全トランザクション値$1,300を伴う以前に計算された価格($9)が、買い注文および売り注文を充たすために使用される。
【0100】
($1,000の総コミットメントのうちの)$1,000のコミットメントに対する最高価格$15を伴う買い注文968は、合計$9,000(最終オークション価格*コミットメント量)を伴う$1,000のコミットメントに対して完全に実行される。注文968に対するAの残りの可能なポジションの残余コミットメント量はない。
【0101】
($700の総コミットメントのうちの)$700のコミットメントに対する最高価格$11を伴う買い注文969は、$300のコミットメントに対して部分的に実行される(合計
$2,700=オークション価格*コミットメント量)。969の残余量は、アセットAの$400($700−$300)である。
【0102】
買い注文970および971は、(元の$1,300のうちの)利用可能なコミットメントが使い尽くされたため、実行されない。
【0103】
ここで、売り注文が充たされる。売り注文1226は$1,000のコミットメントと$6の最低価格とを有し、$1,000のコミットメントに対して$9のオークション価格で全額実行され、合計$9,000となる。
【0104】
売り注文1226は$300のコミットメントと$7の最低価格とを有し、$300のコミットメントに対して$9のオークション価格で全額実行され、合計$2,700となる。売り注文1228および1229は、利用可能なコミットメント量がないので実行されない。
【0105】
これで、Bのオークションの初期計算が完了し、Aのオークションが開始される。この例では発生しないが、この計算は、Bのオークション中に部分的に実行され、Aのオークション中に完全には実行されないゼロか1か注文(例えば、AoN注文)の場合に、(たとえば、ステップ330に関連して説明したように)修正されうる。このため、オークションのすべての計算はすべてのシーケンス化オークションが完了するまで「初期」である。
【0106】
オークションBと同様に、オークションAについて価格および量が決定され、まず、1230までの売り注文および972までの買い注文を使用して$5.50の価格が計算される。これは、$1,000のコミットメント量をもたらす。次の計算のために、$9.25の価格が、1231までの売り注文および買い注文969から使用される。この結果、コミットメント量は$400となる。コミットメント量が減少したので、プロセスは、オークション価格が$5.50に決定され、コミットメント量が$1,000に決定された過去の計算を戻って参照する。
【0107】
オークションBと同様に、買い注文が最初に充たされ、次に売り注文が充たされる。注文968は、その合計コミットメントがオークションBのために既に実行されているので処理されない。買い注文969は(元の$700のコミットメントのうちの)$400のコミットメントおよび最高価格$10を有し、$5.50のオークション価格で$400のコミットメントに対して完全に実行され、合計$2,200である。残りや残りのポジションはない。
【0108】
買い注文970は、(合計$500のコミットメントのうちの)$500のコミットメントおよび最高価格$7を有し、$5.50の最終オークション価格で$500のコミットメントに対して完全に実行され、$2,750となる。残りや残りのポジションはない。
【0109】
買い注文972は、(合計$600のコミットメントのうちの)$600のコミットメントおよび最高価格$6を有し、$5.50の最終オークション価格で$100のコミットメントに対して部分的に実行され、合計$550となる。注文972には$500のコミットメント量が残っている。
【0110】
ここで、売り注文は充たされる。売り注文1230は、最低価格$5および$1,000のコミットメントを有し、オークション価格$5.50で$1,000のコミットメントで全額実行され、合計$5,500となる。これは、オークションのために利用可能なコミットメント量を使い果たし、したがって、売り注文1231、1232、または1233のいずれも実行されない。これにより、シーケンス化オークションプロセスが終了し、上述したようにトランザクションが生成される。
図4の説明
【0111】
図4は、いくつかの実施の形態にしたがう、例示的な計算デバイス400(例えば、「コンピューティングデバイス」、「コンピュータシステム」、または「コンピューティングシステム」とも呼ばれ得る)のブロック図である。いくつかの実施の形態では、計算デバイス400は、1つまたは複数のプロセッサ402、1つまたは複数のメモリデバイス404、1つまたは複数のネットワークインタフェースデバイス406、1つまたは複数のディスプレイインタフェース408、および1つまたは複数のユーザ入力アダプタ410のうちの1つまたは複数を含む。さらに、いくつかの実施の形態では、計算デバイス400はディスプレイデバイス412に接続されるか、またはディスプレイデバイス412を含む。以下で説明するように、これらの要素(例えば、プロセッサ402、メモリデバイス404、ネットワークインタフェースデバイス406、ディスプレイインタフェース408、ユーザ入力アダプタ410、ディスプレイデバイス412)は、計算デバイス400の様々な異なる機能を実行するように構成されたハードウエアデバイス(例えば、電子回路または回路の組合せ)である。
【0112】
いくつかの実施の形態では、プロセッサ402の各々またはいずれかは、例えば、シングルコアまたはマルチコアプロセッサ、マイクロプロセッサ(例えば、中央処理装置またはCPUと呼ばれ得る)、デジタル信号プロセッサ(DSP)、DSPコアに関連するマイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)回路、またはシステムオンチップ(SOC)(例えば、CPUと、メモリ、ネットワーキングインタフェースなどの他のハードウエア構成要素とを含む集積回路)であるか、またはそれらを含む。および/または、いくつかの実施の形態では、プロセッサ402のそれぞれまたはいずれかは、x86またはARM(Advanced RISC Machine)などのインストラクションセットアーキテクチャを使用する。
【0113】
いくつかの実施の形態では、メモリデバイス404の各々またはいずれかは、ランダムアクセスメモリ(RAM)(ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)など)、フラッシュメモリ(例えば、NANDまたはNOR技術に基づく)、ハードディスク、光磁気媒体、光媒体、キャッシュメモリ、レジスタ(例えば、インストラクションを保持する)、またはデータおよび/またはインストラクションの揮発性または不揮発性保持を実行する他のタイプのデバイス(例えば、プロセッサ402上でまたはプロセッサ402によって実行されるソフトウエア)であるか、またはそれらを含む。メモリデバイス404は、不揮発性コンピュータ可読保持媒体の例である。
【0114】
いくつかの実施の形態では、ネットワークインタフェースデバイス406のそれぞれまたはいずれかは、1つまたは複数の回路(ベースバンドプロセッサおよび/または有線または無線トランシーバなど)を含み、1つまたは複数の有線通信技術(イーサネット(IEEE 802.3)など)および/または無線通信技術(ブルートゥース、WiFi(IEEE 802.11)、GSM、CDMA2000、UMTS、LTE、LTE−Advanced(LTE−A)、および/または他の短距離、中距離、および/または長距離無線通信技術など)のためのレイヤ1、レイヤ2、および/またはより高次のレイヤを実装する。トランシーバは、送信機および受信機のための回路を備えることができる。送信機および受信機は共通の筐体を共有することができ、送信および受信を実行するために筐体内の回路のいくつかまたはすべてを共有することができる。いくつかの実施の形態では、トランシーバの送信機および受信機は、いかなる共通の回路も共有しなくてもよく、および/または同じまたは別個のハウジング内にあってもよい。
【0115】
いくつかの実施の形態では、ディスプレイインタフェース408の各々またはいずれかは、プロセッサ402からデータを受信し、受信したデータに基づいて対応する画像データを(例えば、ディスクリートGPU、組み込みGPU、グラフィック処理を実行するCPUなどを介して)生成し、および/または生成された画像データを画像データを表示するディスプレイデバイス412に出力する(例えば、高精細度マルチメディアインターフェース(HDMI)、ディスプレイポートインタフェース、ビデオグラフィックスアレイ(VGA)インタフェース、デジタルビデオインタフェース(DVI)など)、1つまたは複数の回路であるか、またはそれらを含む。代替的にまたは追加的に、いくつかの実施の形態では、ディスプレイインタフェース408の各々またはいずれかは、例えば、ビデオカード、ビデオアダプタ、またはグラフィックス処理ユニット(GPU)であるか、またはそれらを含む。
【0116】
いくつかの実施の形態では、ユーザ入力アダプタ410のそれぞれまたはいずれかは、計算デバイス400に含まれ、それに取り付けられ、またはそれと通信する1つまたは複数のユーザ入力デバイス(
図4には示されていない)からユーザ入力データを受信し、処理し、受信した入力データに基づいてプロセッサ402にデータを出力する1つまたは複数の回路であるか、またはそれを含む。代替的にまたは追加的に、いくつかの実施の形態では、ユーザ入力アダプタ410の各々またはいずれかは、例えば、PS/2インタフェース、USBインタフェース、タッチスクリーンコントローラなどであるか、またはそれらを含み、および/またはユーザ入力アダプタ410は例えば、キーボード、マウス、トラックパッド、タッチスクリーンなどのユーザ入力デバイス(
図4には図示せず)からの入力を容易にする。
【0117】
いくつかの実施の形態では、ディスプレイデバイス412は、液晶ディスプレイ(LCD)ディスプレイ、発光ダイオード(LED)ディスプレイ、または他のタイプのディスプレイデバイスとすることができる。ディスプレイデバイス412が計算デバイス400の構成要素である(例えば、計算デバイスおよびディスプレイデバイスが統合ハウジングに含まれる)実施の形態では、ディスプレイデバイス412は、タッチスクリーンディスプレイまたは非タッチスクリーンディスプレイとすることができる。ディスプレイデバイス412が計算デバイス400に接続される(例えば、計算デバイス400の外部にあり、有線および/または無線通信技術を介して計算デバイス400と通信する)実施の形態では、ディスプレイデバイス412は例えば、外部モニタ、プロジェクタ、テレビジョン、ディスプレイ画面である。
【0118】
様々な実施の形態では、計算デバイス400は、上述の要素(例えば、プロセッサ402、メモリデバイス404、ネットワークインタフェースデバイス406、ディスプレイインタフェース408、およびユーザ入力アダプタ410)の各々またはいずれかの1つ、2つ、または3つ、4つ、またはそれ以上を含む。代替的にまたは追加的に、いくつかの実施の形態では、計算デバイス400は、プロセッサ402を含む処理システム、メモリデバイス404を含むメモリまたはストレージシステム、およびネットワークインタフェースデバイス406を含むネットワークインタフェースシステムのうちの1つまたは複数を含む。
【0119】
計算デバイス400は多様な実施形態において、多くの異なる方法で構成されうる。単なる一例として、計算デバイス400は、プロセッサ402が:マルチ(または単一)コアプロセッサと、第1ネットワークインタフェースデバイス(これは例えばWiFiやブルートゥースやNFCなどで実装される)と、1つ以上のセルラ通信技術(例えば3G、4G LTE、CDMAなど)を実施する第2ネットワークインタフェースデバイスと、メモリまたはストレージデバイス(例えばRAM、フラッシュメモリ、またはハードディスク)と、を含むように構成されうる。プロセッサ、第一のネットワークインタフェースデバイス、第二のネットワークインタフェースデバイス、およびメモリデバイスは、同一のSOC(例えば1つの集積回路チップ)の一部として統合されうる。別の例として、コンピューティングデバイスは、プロセッサ402が2、3、4、5つ、またはそれより多いマルチコアプロセッサを含み、ネットワークインタフェースデバイス406がEthernetを実施する第一のネットワークインタフェースデバイスとWiFiおよび/またはBluetoothを実施する第二のネットワークインタフェースデバイスとを含み、並びにメモリデバイス404がRAMおよびフラッシュメモリもしくはハードディスクを含むよう構成されうる。
【0120】
既述の通り、ソフトウェアモジュール(例えば、「エンジン」)またはソフトウェアプロセスが任意の動作を実行すると本書で記載されている場合はいつでも、当該動作は実際は、当該ソフトウェアモジュールを備えるインストラクションに従い基礎となるハードウェアエレメントによって実行される。前述と一致して、種々の実施の形態では、オークションコンピュータシステム100、クライアントシステム108、外部システム110、ネットワークインタフェース106および106B、ならびにハードウエアプロセッサ102のそれぞれは、この段落の残りの部分において明確性のために個々に「コンポーネント」と呼ばれるが、それらのコンポーネントのそれぞれまたは任意の組み合せは、
図4の計算デバイス400の例を使用して実装される。そのような実施形態では、各構成要素に対して以下が適用される:(a)
図4に示す計算デバイス400のエレメント(すなわち、1つ以上のプロセッサ402、1つ以上のメモリデバイス404、1つ以上のネットワークインタフェースデバイス406、1つ以上のディスプレイインタフェース408、および1つ以上のユーザ入力アダプタ410)または前述のものの適切な組み合わせもしくはサブセットは、コンポーネントによっておよび/またはコンポーネント内に含まれるとして本明細書で説明される任意のソフトウェアモジュールによって実行されるとして本明細書で説明される動作、行動、もしくは特徴のそれぞれもしくは任意の組み合わせを実施するように構成され、適応され、および/またはプログラムされる、(b)代替的または付加的に、1つ以上のソフトウェアモジュールがコンポーネント内に存在し、いくつかの実施形態では、(ソフトウェアモジュールによって扱われおよび/または使用されるとして本明細書で説明された任意のデータとともに)そのようなソフトウェアモジュールはメモリデバイス404(例えば様々な実施形態では、RAMのような揮発性メモリデバイス、命令レジスタ、および/またはフラッシュメモリもしくはハードディスクのような不揮発メモリデバイス)に格納され、ソフトウェアモジュールによって行われるとして本明細書で説明される全ての動作は、計算デバイス400(すなわちネットワークインタフェースデバイス406、ディスプレイインタフェース408、ユーザ入力アダプタ410、および/またはディスプレイデバイス412)の中および/またはそれに接続される、他のエレメントと適切に連動するプロセッサ402によって実行されることが本明細書である程度説明される、(c)代替的または付加的に、コンポーネントはデータを処理し、および/またはさもなければ扱い、いくつかの実施形態では、そのようなデータは、メモリデバイス404(例えばいくつかの実施形態では、RAMのような揮発性メモリデバイスおよび/またはフラッシュメモリもしくはハードディスクのような不揮発メモリデバイス)に格納され、および/または他のエレメントと適切に連動し、および/または計算デバイス400(すなわちネットワークインタフェースデバイス406、ディスプレイインタフェース408、ユーザ入力アダプタ410、および/またはディスプレイデバイス512)に接続されるプロセッサ402によって処理され/扱われることが本明細書である程度説明される、(d)代替的または付加的に、いくつかの実施の形態では、プロセッサ402によって実行される場合に、コンポーネントによっておよび/またはコンポーネント内に含まれるとして、本明細書で説明された任意のソフトウエアモジュールによって実行されるとして、本明細書で説明された動作のそれぞれまたは任意の組み合わせを、プロセッサ402に、計算デバイス400内のおよび/またはそれに接続された他のエレメント(すなわち、メモリデバイス404、ネットワークインタフェースデバイス406、ディスプレイインタフェース408、ユーザ入力アダプタ410および/またはディスプレイデバイス512)と適切な場合には連携して、行わせるインストラクションをメモリデバイス402が格納する。
【0121】
前の段落と一致して、一例として、計算デバイス400のインスタンスがオークションシステム100を実装するために使用される実施の形態では、メモリデバイス404は、トランザクション要求ハンドラ103、スケジューリングエンジン104A、計算エンジン104b、およびマッチングエンジン104Cに関連付けられたファイル(たとえば、実行可能プログラムまたはライブラリ)をロードし、および/またはオークションコンピュータシステム、クライアントコンピュータシステム108、および/または外部システム110によって処理され、および/または、そうでなければ取り扱われるように本明細書で説明されるデータ(たとえば、103〜104Cの実行のために結果として得られるデータ)を保存することができる。プロセッサ402はトランザクション要求ハンドラ103、スケジューリングエンジン104A、計算エンジン104b、およびマッチングエンジン104Cを動作させるために、および/またはそうでなければオークションコンピュータシステム100によって処理されるように本明細書で説明されるデータを処理するために使用され得る。
【0122】
図4に示され、上記で説明されたハードウエア構成は例として提供され、本明細書で説明された主題は様々な異なるハードウエアアーキテクチャおよび要素と併せて利用され得る。例えば、本明細書の多くの図では、個々の機能/アクションブロックが示され;様々な実施の形態では、これらのブロックの機能は(a)個々のハードウエア回路を使用して、(b)記載された機能/アクションを実行するように特に構成された特定用途向け集積回路(ASIC)を使用して、(c)記載された機能/アクションを実行するように特に構成された1つまたは複数のデジタル信号プロセッサ(DSP)を使用して、(d)
図4を参照して上述したハードウエア構成を使用して、(e)他のハードウエア構成、アーキテクチャ、および構成を介して、および/または(a)〜(e)に記載された技術の組み合わせを介して、実装され得る。
説明された主題の技術的利点
【0123】
いくつかの例では、異なるリソースのための複数の別個のトランザクションプロセスは、トランザクション要求者(参加者)の観点からは1つのトランザクションプロセスとして扱われる。これにより、参加者はリソースグループに対してデータトランザクション要求(例えば、単一のデータトランザクション要求)を行うことができ、リソースの各々は、トランザクション処理のより大きな整理されたシーケンスの一部であるそれ自体の対応するトランザクションプロセスを有する。トランザクションプロセスは一緒にシーケンス化されるので、参加者からのデータトランザクション要求の実行は、より効率的かつ柔軟な態様で処理されうる。特に、このタイプの実装は、参加者が個々に実行されるトランザクションプロセスのために複数のデータトランザクション要求を提出することにより労力を重複させる必要がなくなるので、より効率的なトランザクション処理を可能にする。代わりに、参加者はグループに対してトランザクション要求を提出することができ、システムはデータトランザクション処理が順次実行される際に、データトランザクション要求を自動的に調整することができる。これにより、1つの初期データトランザクション要求を複数の異なるデータトランザクションプロセスに関与させることができる。そのような実装は、システムの全体的な処理効率を改善する。
【0124】
特定の例では、異なるリソース(例えば、アセット)は一緒に(例えば、単一のファンドに)グループ化される。このタイプの実装では、クライアントがファンド全体およびその中の複数の個々のリソースにわたるコミットメント量を制限する注文を入力することができる。注文の一部として、クライアントは、ファンド内の各アセットについて固有の価格を定義することができる。
【0125】
アセットは、ファンド内の異なるアセットに対する複数の個々のオークションが順番に保持される、ファンド用シーケンス化オークションプロセスの一部であってもよい。オークションが順番に保持されるので、所与のマルチアセット注文(例えば、ファンドの複数のアセットに対して実行することができる注文)の連続性は、マルチアセット注文の元のコミットメントの量と比較して、所与のオークションについてマッチングされた量を追跡し続けることによって維持されうる。したがって、シーケンス化オークションプロセスにおいて注文が異なるオークションを通って移動するにつれて、コミットメント量は徐々に減少され得る。いくつかの例では、マルチアセット注文がゼロか1か注文としてフラグを立てられているが、その注文が完全マッチングしない場合、それはオークションシーケンス全体から削除され、オークションシーケンス全体がファンド、または複数のオークションのうち少なくともマルチアセット注文が参加した複数のオークション、について再計算され得る。
【0126】
したがって、本明細書で説明する技術を用いて、より効率的で柔軟なデータトランザクション処理を実行することができる。
<選択された用語>
【0127】
本書面では、「いくつかの実施形態」、「様々な実施形態」、「特定の実施形態」、「特定の例示的な実施形態」、「いくつかの例示的な実施形態」、「例示的な実施形態」に所定のアイテムが示されることが説明されるときはいつでも、または任意の他の類似の言葉が用いられるときはいつでも、所与のアイテムは少なくとも1つの実施形態に示されてはいるが、全ての実施形態に示される必要はないことは理解されたい。上述と整合して、本書では、動作が実行され「てもよく」、「ることができ」、もしくは「うる」ことと、機能、エレメント、もしくは構成要素が所与のコンテキストに含まれ「てもよく」、「ることができ」、もしくは「うる」、または適用可能なことと、所与のアイテムが所与の特性を有し「てもよく」、「ることができ」、もしくは「うる」こととが説明されるときはいつでも、または「〜てもよい」、「〜できる」もしくは「〜しうる」という用語を含む任意の類似の語句が使用されるときはいつでも、所与の動作、特徴、エレメント、構成要素、特性、などが少なくとも1つの実施形態に示されているが、全ての実施形態に示される必要はないことが理解されたい。本書で使用される用語と語句、およびそれらの変形は、特に明記しない限り、限定的ではなく包含的に解釈されるべきである。先の例としては、「および/または」は、関連して挙げられたアイテムのうちの1つ以上の任意のまたは全ての組み合わせ(例えば、aおよび/またはbは、a、b、またはaとbを意味する)を含み、単数形「a」、「an」および「the」は「少なくとも1の」、「1つ以上の」、または類似のものを意味するとして読まれるべきであり、「例」という用語は議論中の主題の例を提供するためにもちいられるがそれの網羅的なものでも限定的リストでもなく、「備える」と「含む」(および他の活用とそれらの他の変形)は関連する挙げられたアイテムの存在を特定するが、1つ以上の他のアイテムの存在または追加を排除するものではなく、アイテムが「随意に(optional)」と説明される場合、そのような説明は他のアイテムが随意ではないことを示すものと理解されるべきではない。
【0128】
本明細書で使用されるように、「非一時的のコンピュータ可読ストレージ媒体」は、レジスタ、キャッシュメモリ、ROM、(D−RAM、S−RAM、または他のRAMのような)半導体メモリ装置、フラッシュメモリといった磁気記録媒体、ハードディスク、光磁気記録媒体、CD−ROM、DVD、もしくはBlu−Rayディスクといった光学記録媒体、または非一時的の電子データストレージのための他のタイプの装置、を含む。「非一時的のコンピュータ可読ストレージ媒体」は一時的な伝搬する電磁信号は含まない。
<説明された主題の付加的な応用>
【0129】
限定的でなく
図3Aから
図3Cを参照して含まれるような処理ステップ、アルゴリズムあるいはその類が特定の順序で記載またはクレームされている場合があるが、このような処理は、異なる順序で動作するように構成設定することができる。換言すれば、本明細書で明示されるかクレームされるいかなるシーケンスあるいはステップの順序も、そのステップがその順序で実行される必要性を示すものでは必ずしもなく、本明細書で説明される処理ステップは任意の可能な順序で実行されてもよい。また、いくつかのステップは、非同時的に発生するように記載されているあるいは暗示されているが(例えば、あるステップは、他のステップの後に記載されているからである)、同時に(または並行して)実行されうる。さらに、図面における図示による処理の説明は、図示される処理が他の変形や変更について排他的であることを暗示しているのではなく、また、図示される処理あるいはその任意のステップが必要であることを暗示しているのではなく、また、図示される処理が好ましいことを暗示しているのでもない。
【0130】
様々な実施形態が詳細に示され、説明されたが、請求項は特定の実施形態または例の何れにも限定されない。上記の説明の何れもが、任意の特定のエレメント、ステップ、範囲、または機能が必要不可欠であることを暗示するとして読まれるべきではない。上述の実施の形態の要素に対する構造的および機能的等価物のうち当業者に既知のものは全て、明示的に本明細書に参照により組み入れられており、包含されることが意図されている。さらに、本発明に包含されるために、デバイスや方法が、本発明により解決されるべきおのおの全ての課題を指向する必要はない。本書の実施形態、特徴、構成要素、コンポーネント、またはステップは、公に供することを意図されていない。
ある例示的な実施の形態では、単一のトランザクションとして複数の個々のトランザクションプロセスを扱うシーケンス化トランザクションプロセスが提供される。参加者は、クライアントコンピュータシステムを介して、コミットする意思のある総量を(例えば、ボリュームでまたは他の量で)指定する要求(例えば、注文)を提出することができる。参加者はまた、シーケンス化トランザクションプロセス中にマッチングされるリソースの特定の量を特定してもよい。シーケンス化トランザクションプロセスは、次いで、各リソースのどれほどが提出された要求のそれぞれに対してマッチングされるであろうかを決定する。