IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オーエムエックス テクノロジー エービーの特許一覧

特許7293136親注文データを表示するグラフィカルユーザインタフェースを生成するためのシステムおよび方法
<>
  • 特許-親注文データを表示するグラフィカルユーザインタフェースを生成するためのシステムおよび方法 図1A
  • 特許-親注文データを表示するグラフィカルユーザインタフェースを生成するためのシステムおよび方法 図1B
  • 特許-親注文データを表示するグラフィカルユーザインタフェースを生成するためのシステムおよび方法 図2
  • 特許-親注文データを表示するグラフィカルユーザインタフェースを生成するためのシステムおよび方法 図3
  • 特許-親注文データを表示するグラフィカルユーザインタフェースを生成するためのシステムおよび方法 図4
  • 特許-親注文データを表示するグラフィカルユーザインタフェースを生成するためのシステムおよび方法 図5A
  • 特許-親注文データを表示するグラフィカルユーザインタフェースを生成するためのシステムおよび方法 図5B
  • 特許-親注文データを表示するグラフィカルユーザインタフェースを生成するためのシステムおよび方法 図6A
  • 特許-親注文データを表示するグラフィカルユーザインタフェースを生成するためのシステムおよび方法 図6B
  • 特許-親注文データを表示するグラフィカルユーザインタフェースを生成するためのシステムおよび方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-09
(45)【発行日】2023-06-19
(54)【発明の名称】親注文データを表示するグラフィカルユーザインタフェースを生成するためのシステムおよび方法
(51)【国際特許分類】
   G06Q 40/04 20120101AFI20230612BHJP
【FI】
G06Q40/04
【請求項の数】 13
(21)【出願番号】P 2019566132
(86)(22)【出願日】2018-06-01
(65)【公表番号】
(43)【公表日】2020-07-27
(86)【国際出願番号】 SE2018050566
(87)【国際公開番号】W WO2018222129
(87)【国際公開日】2018-12-06
【審査請求日】2021-05-28
(31)【優先権主張番号】62/514,409
(32)【優先日】2017-06-02
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/994,731
(32)【優先日】2018-05-31
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】508364093
【氏名又は名称】ナスダック テクノロジー エービー
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】ブランドン, ピーター
(72)【発明者】
【氏名】オブライエン, マイケル
(72)【発明者】
【氏名】リー, リン, デュイ
【審査官】速水 雄太
(56)【参考文献】
【文献】米国特許出願公開第2017/0109820(US,A1)
【文献】米国特許出願公開第2010/0057602(US,A1)
【文献】米国特許出願公開第2017/0039644(US,A1)
【文献】米国特許出願公開第2016/0180459(US,A1)
【文献】特開2012-043307(JP,A)
【文献】TWS User's Guide,Interactive Brokers,2016年07月,第48-49,381-383頁,2022年 7月 8日検索,インターネット:<URL: https://www.lynxbroker.com/media/doc/manual_english.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
注文データを運ぶユーザインタフェースを生成するよう構成されたシステムであって、バックエンドサーバとクライアントデバイスとを備え、
前記バックエンドサーバは少なくともひとつのメモリと前記メモリに動作可能に結合された少なくともひとつのプロセッサとを有し、前記バックエンドサーバは、
ひとつ以上のレコードを含む注文データを受信することであって、各レコードが取引可能金融商品の注文に関連付けられている、受信することと、
前記注文データを構文解析することであって、前記構文解析することが:
前記ひとつ以上のレコードのうちの親フラグ要素を含む所与のレコードに基づいて、前記所与のレコードに対応する前記注文を親注文として特定することであって、前記親注文が注文識別子を有する、特定することと、
前記ひとつ以上のレコードのうちの前記親注文の前記注文識別子を示す親注文識別子要素を含む所与のレコードに基づいて、前記所与のレコードに対応する前記注文を、前記親注文の複数の子注文のうちのひとつの子注文として特定することと、を含む、構文解析することと、
前記複数の子注文および前記親注文を記述する情報を、前記メモリに保持される構造化データストアに格納することであって、前記構造化データストアが前記親注文の前記注文識別子に基づいて前記複数の子注文と前記親注文とをリンクさせる、格納することと、を含む動作を実行するよう構成され、
前記クライアントデバイスは少なくともひとつのメモリと少なくともひとつのプロセッサとを有し、前記クライアントデバイスは通信回路を使用して前記バックエンドサーバと通信するよう構成され、前記クライアントデバイスはさらに、
グラフを含むユーザインタフェースを生成することと、
複数の子注文オブジェクトを表示するための前記グラフ上の位置を決定することであって、前記複数の子注文オブジェクトのそれぞれが前記複数の子注文のうちの対応するひとつにおける活動に対応する、決定することと、
前記複数の子注文オブジェクトを表示するための前記決定された位置に基づいて、親注文オブジェクトを表示するための前記グラフ上の位置を決定することであって、前記親注文オブジェクトが前記親注文における活動に対応する、決定することと、
前記複数の子注文オブジェクトを表示するために決定された前記位置に前記複数の子注文オブジェクトがあり、前記親注文オブジェクトを表示するための前記決定された位置に前記親注文オブジェクトがある前記グラフを表示することと、を含む動作を実行するよう構成されるシステム。
【請求項2】
前記バックエンドサーバはさらに、
対応する親注文識別子に基づいて親注文に関連付けられている子注文を特定することによって、前記複数の子注文をフィルタリングすることと、
前記対応する親注文識別子を用いて子注文のリストを作ることと、前記集められたリストを用いて前記複数の子注文をフィルタリングすることと、を含む動作を実行するよう構成される請求項1に記載のシステム。
【請求項3】
前記複数の子注文の前記レコードのそれぞれは親注文識別子と注文識別子とを含み、前記特定された親注文の前記レコードは親注文識別子を含まない請求項1に記載のシステム。
【請求項4】
前記注文データ内の複数のレコードは同じ注文識別子を有する請求項1に記載のシステム。
【請求項5】
前記クライアントデバイスはさらに、
前記生成されたユーザインタフェースの一部として表示される第1親注文オブジェクトの選択を処理することと、
前記第1親注文オブジェクトの選択に応じて、前記選択された第1親注文オブジェクトに基づいて前記配された子注文オブジェクトをフィルタリングすることと、を含む動作を実行するよう構成される請求項1に記載のシステム。
【請求項6】
前記選択された親注文オブジェクトにリンクされていない子注文オブジェクトを前記ユーザインタフェースから取り除くことによって、前記子注文オブジェクトがフィルタリングされる請求項5に記載のシステム。
【請求項7】
前記クライアントデバイスはさらに、
前記親注文オブジェクトが選択されたとき、前記親注文および前記複数の子注文の詳細を含む重ねウインドウを前記ユーザインタフェースに表示することを含む動作を実行するよう構成される請求項1に記載のシステム。
【請求項8】
注文データを運ぶユーザインタフェースを生成するための方法であって、前記方法は、少なくともひとつのプロセッサとメモリとを有する情報処理システムにおいて、
サーバと通信することによって、ひとつ以上の取引可能金融商品に関連付けられているユーザインタフェースを生成するためのデータを受信することであって、前記受信されるデータが子注文データと親注文データとを含み、前記子注文データが複数の子注文についてのものであり、前記複数の子注文のそれぞれが前記親注文データ内で参照されている対応する親注文を参照する、受信することと、
前記情報処理システムに接続されているディスプレイデバイスでの表示のために、グラフを有する前記ユーザインタフェースを生成することであって、前記グラフの第1軸に沿って時刻が表され、前記グラフの第2軸に沿って値が表される、生成することと、
前記ひとつ以上の取引可能金融商品に関連付けられている前記複数の子注文の個々の子注文における活動をそれぞれが反映するひとつ以上の子注文オブジェクトの、前記グラフ上での位置を決定することと、
前記ひとつ以上の子注文オブジェクトの前記決定された位置に基づいてひとつ以上の親注文オブジェクトの、前記グラフ上での位置を決定することであって、前記ひとつ以上の親注文オブジェクトが前記親注文データ内に含まれる前記対応する親注文のうちのひとつに関連付けられている、決定することと、
前記子注文オブジェクトと前記親注文オブジェクトとがそれらに対応する決定された位置にあるようにして前記グラフを埋めることと、
前記ひとつ以上の子注文オブジェクトが第1フォーマットで表示され、前記ひとつ以上の親注文オブジェクトが前記第1フォーマットとは異なる第2フォーマットで表示される状態で、前記グラフを表示することと、を含む方法。
【請求項9】
親注文オブジェクトの選択を受信することと、
前記子注文オブジェクトをフィルタリングすることと、
前記フィルタリングに基づいて前記グラフの前記表示を更新することと、をさらに含む請求項8に記載の方法。
【請求項10】
前記フィルタリングすることが、前記選択された親注文オブジェクトに関連付けられている子注文オブジェクト以外の子注文オブジェクトを表示から取り除くことを含む請求項9に記載の方法。
【請求項11】
表示されている第1親注文オブジェクトを選択することと、
前記選択された第1親注文オブジェクトに関連付けられている前記親注文および前記子注文の詳細を含む重ねウインドウを表示することと、をさらに含む請求項8に記載の方法。
【請求項12】
前記ひとつ以上の親注文オブジェクトの前記決定された位置が、前記第1軸に沿って前記ひとつ以上の子注文オブジェクトの上にある位置に設けられたタイムラインに沿っている請求項8に記載の方法。
【請求項13】
前記第2フォーマットで表示される前記ひとつ以上の親注文オブジェクトが、前記ひとつ以上の親注文オブジェクトと前記ひとつ以上の子注文オブジェクトとを区別するための英数字を含む請求項8に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本願は、2017年6月2日に出願された米国特許仮出願第62/514,409号および2018年5月31日に出願された米国特許出願第15/994,731号の優先権の利益を享受する。それら両方の出願の全内容は、参照により本明細書に組み入れられる。
技術分野
【0002】
本明細書で説明する技術は、グラフィカルユーザインタフェースに関する。特に、本明細書で説明される技術は、親注文およびそれらの関連する子注文を示すオブジェクトを表示することができるユーザインタフェースを生成することに関する。
【背景技術】
【0003】
グラフィカルユーザインタフェースを使用して、(金融市場などの)市場のデータを表示するための技術が利用可能である。例えば、そのような活動をグラフ上にプロットすることによって、(例えば、金融商品の)注文および/または取引を示す、ある種の視覚化が利用可能である。グラフ上の注文/取引の位置は、注文/取引の価値および注文/取引が入力/実行された時刻を示すことができる。
【0004】
この分野における多くの進歩が長年にわたって達成されてきたが、この分野における新規で改良された技術、システム、およびプロセスが絶えず求められていることが理解されるのであろう。
【0005】
著作権表示
【0006】
本特許書類の開示の一部は著作権保護の対象となるものを含む。著作権者は、任意の者による本特許書類または本特許開示の特許商標庁にて現れる態様での複製について反対することはないが、そうでない場合は何であれ全ての著作権を留保する。
【発明の概要】
【0007】
本明細書に記載の技術は、関連する子注文データと共に親注文データを視覚的に表示するグラフィカルユーザインタフェースを生成することができるシステムを提供することによって、従来技術における問題に部分的に対処する。例えば、本技術は、親注文を表すオブジェクトと子注文を表す追加のオブジェクトとを示すグラフを表示するグラフィカルユーザインタフェースに関する。
【0008】
本技術は、複数の注文データを構文解析し、構文解析された注文データをデータベースに格納する。構文解析された注文データは、異なる親注文を1つまたは複数の関連する子注文にリンクさせるために使用することができる。このデータを使用して、本技術は、親注文データと子注文データとの間の関係を示すグラフィカルユーザインタフェースを生成することができる。
【0009】
特に、グラフィカルユーザインタフェースを生成する際、システムは、ユーザインタフェースに複数の個々の「子」注文を(子注文オブジェクトとして)表示することができると共に、各注文について、関連する「親」注文を(親注文オブジェクトとして)示すことができる。親注文オブジェクトが選択されると、グラフィカルユーザインタフェースは、関連する子注文オブジェクトを強調表示するように更新する。この技術は例えば、電子取引システムにおいて、親注文と子注文との間の関連を視覚的に伝える方法で、注文データの効率的な表示を可能にする。
【0010】
本概要は、発明の詳細な説明で以下にさらに説明される単純化された概念の選択を紹介するために提供される。本概要は、クレームに係る主題の主要な特徴または不可欠な特徴を識別することと、或いは、クレームに係る主題の範囲を限定するために用いられることとのいずれをも意図するものではなく、むしろ本概要は本書面で説明される主題の概観を提供することを意図するものである。したがって、上述した特徴は例示にすぎず、本明細書で説明される主題の他の特徴、態様、および利点は、後述する詳細な説明、図面、および請求項から明らかになるであろうということは理解されたい。
【図面の簡単な説明】
【0011】
図1A図1Aおよび図1Bは、システムの非限定的な例示的なブロック図を示す。
図1B図1Aおよび図1Bは、システムの非限定的な例示的なブロック図を示す。
【0012】
図2】システムを構成する異なるソフトウエアコンポーネントの非限定的な例示的ブロック図を示す。
【0013】
図3】異なるデバイス間の通信プロセスの非限定的な例を示す。
【0014】
図4】システム内のデバイス間で通信されるデータファイルの非限定的な例を示す。
【0015】
図5A図5Aおよび5Bは、システムにおいて実行される処理の、非限定的な例示的なフローチャートを示す。
図5B図5Aおよび5Bは、システムにおいて実行される処理の、非限定的な例示的なフローチャートを示す。
【0016】
図6A図6Aおよび6Bは、表示のために生成されたユーザインタフェースの非限定的な例を示す。
図6B図6Aおよび6Bは、表示のために生成されたユーザインタフェースの非限定的な例を示す。
【0017】
図7】少なくとも図2に示すシステムを構成するハードウエア構成要素の非限定的な例示的ブロック図を示す。
【発明を実施するための形態】
【0018】
以下の記載では、説明を目的とし、限定を目的とせず、記載の技術の理解を提供するために、特定のノード、機能エンティティ、技術、プロトコル等の具体的な詳細が説明される。他の実施の形態を、以下の詳細説明から離れて実施できることは当業者には明らかであろう。他の例では、周知の方法、デバイス、技術等の詳細説明は、不必要な詳細説明で説明を曖昧にしないために省略されている。
【0019】
各セクションの一般的な主題について読者を方向付けるためにのみ、この詳細な説明でセクションが使用される。以下で明らかになるように、多くの特徴の説明は複数のセクションにまたがっており、表題は任意のセクションに含まれる説明の意味に影響をあたえるものとして読まれるべきではない。
概要
【0020】
本明細書で説明される技術は特に、注文処理システム(例えば、電子取引所)によって提出され、処理された注文に関連する情報を伝達するユーザインタフェースを生成するためのシステムに関する。一例では、電子取引システムは、異なるエンティティ(例えば、ブローカ、トレーダ)が証券を含む様々な金融商品で取引を行うことを可能にする。ブローカ、トレーダ、または他のエンティティによって取引が開始されると、買い手と売り手のマッチングおよび取引の完了を含むプロセス全体を電子的に実行することができる。これらの電子取引システムは取引日中に多数(例えば、数十万から数百万)の取引を実行することを可能にする。これらの取引の多くは、買い注文または売り注文が取引システムに入力されると、および/または入力されたビッド価格またはオファー価格が市場価格に一致すると、ほぼ瞬間的に(例えば、1秒の何分の1か)完了する。
【0021】
非限定的な一例では、いくつかのエンティティがそれらの取引を実行するためにサードパーティを使用することができる。例えば、ヘッジファンドは、取引システムで非常に大きな注文をしたい場合がある。ヘッジファンドは注文全体を直接取引システムに提出するのではなく、注文を処理し、かつ/または注文をより小さい注文に分割するために使用する1つまたは複数のブローカを有することができる。
【0022】
ブローカは注文を受け取ると、ヘッジファンドからの注文(すなわち、「親」注文)に由来する複数の個々の「子」注文を作成することができる。次いで、個々の「子」注文は取引所に提出され、そこで、それらは他の注文とマッチするか、または将来の処理のためにオーダブックに記憶される。
【0023】
本明細書で説明される技術は、注文に関連する1つまたは複数の視覚化を提供するグラフィカルユーザインタフェース(単に「ユーザインタフェース」とも呼ばれる)を生成することができる。用語「注文オブジェクト」は、本明細書では注文のための何らかの活動(例えば、入力、修正、キャンセル、または実行/取引)を示す、グラフィカルユーザインタフェース内の視覚的アーチファクトまたは他のユーザインタフェース要素を指すために使用される。用語「親注文オブジェクト」は、本明細書では親注文のための何らかの活動に対応する注文オブジェクトを指すために使用され、用語「子注文オブジェクト」は、本明細書では子注文のための何らかの活動に対応する注文オブジェクトを指すために使用される。グラフィカルユーザインタフェースは、多くの親/子注文オブジェクトグループ(例えば、複数の親注文オブジェクトの各々が関連する複数の子注文オブジェクトを有する)を同時に(例えば、合わせて)表示することができる。グラフィカルユーザインタフェースは、関連する親/子注文の単一の集合の注文オブジェクト(例えば、1つの親注文オブジェクトおよびそれに関連する複数の子注文オブジェクト)を示すように構成されたフィルタリング機能を含むことができる。非限定的な一例では、ユーザは親注文オブジェクトを選択することができ、グラフィカルユーザインタフェースは例えば、グラフィカルユーザインタフェース内に他の子注文オブジェクトおよび/または親注文オブジェクトを一時的に表示しないことによって、その親のための対応する子注文オブジェクトを強調表示することができる。
【0024】
図1Aおよび図1Bは注文が(例えば、電子取引システムによって)処理され、注文/取引データが通信される例示的なシステムを示す。図2は親注文と子注文との間の関係を示すユーザインタフェースを生成するための例示的なシステムを示し、システムのソフトウエアアーキテクチャ態様が強調されている。図3は注文に関連するデータを取得し、次いで、親注文と子注文との間の関係を示すユーザインタフェースを作成するための、クライアントシステム、サーバシステム、および外部システム間の通信プロセスを示す。図4図6Aおよび図6Bに示されるユーザインタフェースに表されるデータを生成するために、図1Bおよび図2に示されるように、クライアントシステムによって送信され、次いでサーバシステムによって処理され得る、非限定的な例示的なデータファイルを示す。図5Aおよび図5Bは注文データを含む(例えば、図4の)データファイルを処理し、ユーザインタフェースを生成するための非限定的な例示的なフローチャートを示す。図6Aおよび図6Bは、親注文と子注文との間の関係を示すユーザインタフェースの非限定的な例を示す。図7は本明細書で説明される特徴が実装され得る例示的なシステムを示し、システムのハードウエア態様が強調されている。
【0025】
本書の多くの箇所で、ソフトウエアモジュールとソフトウエアモジュールによって実行される動作について説明している。これは、説明を容易にするために行われ、ソフトウエアモジュールが任意の動作を実行することが本明細書で説明されるときはいつでも、その動作は実際にはソフトウエアモジュールを構成するインストラクションおよびデータに従って、基礎となるハードウエアコンポーネント(プロセッサおよびメモリ)によって実行されることを理解されたい。
図1Aおよび図1Bの説明
【0026】
図1Aおよび図1Bは、注文データを処理するための非限定的な例示的なシステムを示す。図1Aは、注文を親システム100からクライアントシステム110に送信することができ、次いで、クライアントシステム110からの注文を取引システム200に送信する、非限定的な例示的なシステムを示す。1つの非限定的な例では、取引システム200は、異なるクライアントデバイスから注文データメッセージを受け入れ、次いで、取引システム200内のマッチングエンジン211を使用して、注文データメッセージに含まれる注文をマッチングさせようと試みることができる。マッチングが見つかった場合、注文は処理され(例えば、取引され)、注文に関連する当事者は、注文が実行された確認メッセージを受信する。マッチングが見つからない場合、注文は(例えば、将来の注文との後のマッチングのために)取引システム200内のオーダブック212メモリに記憶される。
【0027】
図1Aに示す例では、注文データが取引システム200によって受信される前に、いくつかのシステム間で異なる注文を通信することができる。例えば、クライアントシステム(例えば、親システム100および子システム110)はメッセージが取引システム200に送信される前に、互いの間で注文メッセージを通信することができる。1つの非限定的な例では、親システム100は、例えば、エンティティまたは個人が各種取引可能な金融商品を取引することを可能にする、ヘッジファンドなどのエンティティによって運営される1つまたは複数のコンピュータを含むことができる。各親システム100は、自動的に(またはユーザ入力を介して手動で)親注文105を作成する注文生成器101を含むことができる。非限定的な一例では、親注文105は、親システム100に関連付けられたエンティティの注文要求を実行するための情報を含む1つまたは複数の注文データメッセージを含むことができる。
【0028】
子システム110は、追加の処理のために親注文105を受信することができる。1つの非限定的な例では、子システム110は親注文105をさらなる個々の注文に分割することができ、それらの個々の注文は、全体として、親注文105全体を構成する。同様に、子システム110は親注文105の一部のみを受信することができ、親システム100は、複数の親注文105メッセージを様々な異なる子システム110に送信することができる。
【0029】
子システム110は、取引システム200に送信可能な注文データメッセージを生成するために使用される、それ自体の注文生成器111をさらに備えることができる。図1Aに示す例では、子システム110は注文生成器111を使用して、親注文105を1つまたは複数の子注文115-1~115-nに分割することができる。これらの子注文115-1~115-nは、処理(および可能なマッチング)のために取引システム200に個別に送信されるさらなる注文データメッセージを含む。システム100、110、および200は入力/出力デバイス、データトランシーバ(デジタル信号および/またはアナログ信号を送信するための)、1つまたは複数のプロセッサ(たとえば、CPU)、1つまたは複数の記憶デバイス(たとえば、メモリ)、および/または1つまたは複数のオーディオ/ビジュアルコンポーネント(たとえば、サウンドインタフェース、ディスプレイ)を含む処理回路と同様に、様々な通信回路を使用することを理解されたい。このようなコンポーネントは、図7に関して強調され、議論される。
【0030】
図1Bは、取引データが取引システムから子システムに通信され、取引ファイルが子システムと親システムとの間で通信され、次いで、データファイルが親システムとサーバシステム220(本明細書では「サーバ220」とも呼ばれる)との間で通信される、非限定的な例示的システムを示す。図1Aに示される例を使用して、1つまたは複数の子注文115-1~115-nが取引システム200において(例えば、マッチングエンジン211を介して)マッチするとき、取引システム200は、取引を子システム110に報告するデータを生成することができる。例えば、取引システム200は、子注文が取引として実行された(すなわち、マッチした)ことを示す1つまたは複数の子取引116-1~116-nを生成することができる。子取引116-1~116-nは、1つまたは複数の子注文の取引に関連する異なる詳細を含む、取引システム200と子システム110との間のデータメッセージとすることができる。例えば、データメッセージは、取引される金融商品のタイプ、取引される具体的な金融商品、金融商品の取引価格、金融商品の取引量、子注文および/または親注文に関連する識別子、および/または注文が親注文(または子注文)であるかどうかを示すフラグデータ、を示すデータ要素を含むことができる。これらのデータ要素は非限定的であり、本明細書で説明される技術は、データメッセージに含めることができる任意の組合せおよび/または数の異なるデータ要素を想定する。
【0031】
子システム110は、子取引116-1~116-nのなかのデータメッセージを受信して蓄積し、それを子システム110のメモリに保存することができる。非限定的な一例では、子システム110は子システム110のメモリに取引ファイル112としてデータメッセージを格納する。取引ファイル112は、子取引116-1~116-nのデータメッセージで送信される特定の要素を含む1つまたは複数のデータファイルを含むことができる。非限定的な一例では、子システム110は、特定の要素を抽出するためにデータメッセージを構文解析することができ、そのような情報は取引ファイル112に格納することができる。
【0032】
取引ファイル112に収集され記憶されたデータは、親システム100に送信されてもよい。1つの非限定的な例では、取引ファイル112は所与の日(または任意の他の期間)の間、子システム110と共に親システム100によってなされた注文に関連するすべての取引情報を含む「一晩の注文リスト」であってもよい。取引ファイル112は、親システム100に送信される(または指定された期間に親システム100によって「ピックアップ」される)フラットファイルであってもよい。1つの非限定的な例では、取引ファイル112は、例えば、図4に見られ、以下でさらに詳細に論じられるように、取引データに関連付けられた個々の要素を含む記録を有するカンマ区切りフラットファイルであってもよい。
【0033】
親システム100は取引ファイル112を受信し、それらをデータファイル102として親システム100のメモリに保存することができる。1つの非限定的な例では、親システム100は、取引ファイル112に提供されたのと同じ情報を使用することができ、またはデータファイル102として格納するときに取引ファイル112で受信された情報を修正することができる。例えば、親システム100は、取引ファイル112に提示されたデータ要素を、親システム100または別のシステム(例えば、サーバシステム220)によって格納され、後に処理可能なように、再フォーマットすることができる。データファイル102は親システム100からサーバシステム220に送信されてもよく、サーバシステム220はデータを構文解析し、それをサーバシステム220のデータベース224に保存してもよい。データファイル102の内容、ならびにファイル102を構文解析し、構文解析されたデータをメモリに格納し、ユーザインタフェースを生成するためのプロセスは、以下の図2~7に関してさらに詳細に説明される。サーバシステム220は、取引システム200とは別個のシステムであってもよく、あるいは取引システム200と同じであってもよいことを理解されたい。
図2の説明
【0034】
図2は注文データを処理し、ユーザインタフェースを生成するためのフレームワークを実装することができる、システムの非限定的な例示的な図を示す。以下で説明するように、注文データを処理し、ユーザインタフェースを生成するためのフレームワークを実装する1つまたは複数のアプリケーションをシステム内に配備することができ、図2に示すシステム内の様々なコンポーネント(クライアントシステム100、サーバシステム220、および/または外部システム120など)は、配備されたアプリケーションに関連する様々な機能を実行することができる。1つの非限定的な例では、外部システム120は例えば、詐欺行為または不正行為を発見するために、市場データを監視するための監視システムを構成することができる。
【0035】
以下で説明するように、図2は外部システム120、サーバシステム220、およびクライアントシステム100で実行されるソフトウエアモジュール(ソフトウエアモジュール124など)を示す。図2に示されるソフトウエアモジュールは、ハードウエアコンポーネント(プロセッサおよびメモリなど)に格納され、そのようなハードウエアコンポーネントによって実行されることを理解されたい;これらのソフトウエアモジュールを実行するために使用され得る例示的なハードウエアコンポーネントに関する詳細は図7を参照して以下で、ならびに本明細書の他の場所で提供される。
【0036】
1つまたは複数のクライアントシステム100は、システム100によって生成された注文に関連するデータを含むデータファイル102を生成するように構成されてもよい。データファイル102は、サーバシステム220による処理のためにフォーマットされた電子データメッセージおよび/またはデータファイルとすることができる。例えば、データファイル102は、システム220によって処理されるデータエントリに関連付けられた異なるタグを有するXMLファイルの形態とすることができる。別の例示的な実施の形態では、データファイル102は、異なるフィールドを示すデリミタによって分離された異なるエントリを有するフラットファイルとすることができる。一例では、区切り文字がカンマ(例えば、カンマ区切りファイル)とすることができる。この例は非限定的であり、本明細書で説明する技術は、データファイル102内のデータ要素を分離するための任意のタイプのデリミタを想定している。データファイル102を構成する要素は例えば、図4に示され、以下に詳細に説明される。
【0037】
クライアントシステム100は、サーバシステム220と直接的または間接的に対話する任意のクライアントシステムとすることができることを理解されたい。図1Aの例を使用すると、クライアントシステム100は、親システム100、子システム110、またはサーバシステム220と直接的または間接的に通信する任意の他のクライアントシステムとすることができる。一例では、クライアントシステム100は、ヘッジファンドに関連付けられたクライアントシステムとすることができ、クライアントシステム100によって生成されたデータファイル102はその日(または任意の期間)のヘッジファンドのすべての取引詳細を提供する「エンド・オブ・デイ(end-of-day)」取引ファイルとすることができる。
【0038】
サーバシステム220は(例えば、ネットワーク130を介して)クライアントシステム100および外部システム120と通信するように構成される。ネットワーク130がインターネットなどの相互に接続された計算デバイスのネットワークを含みうることは理解されるべきである。ネットワーク130はローカルエリアネットワーク(LAN)を含んでもよく、またはシステム内の異なるデバイス間のピアツーピア接続を含んでもよい。サーバシステム220は、データベースサーバ、ファイルサーバ、ウェブサーバ、アプリケーションサーバ、サーバクラスタ(例えば、クラウドベースのコンピューティング環境)、スタンドアロンサーバ、および/またはサーバベースの機能を有する任意の他のポータブルまたは固定コンピューティングデバイスを含むが、これらに限定されない任意の様々なサーバデバイスを備えることができる。サーバシステム220は別個に配置されたハードウエア(例えば、リモートハードウエア)を使用して実装することができ、または同じハードウエアを使用して(例えば、単一の収容されたサーバデバイス内で)実装することができることを理解されたい。
【0039】
サーバシステム220は、ネットワーク130を介してクライアントシステム100からデータファイル102を受信することができる。データファイル102を受信すると、サーバシステム220の構文解析モジュール221は、データファイル102内の異なる要素を構文解析するように構成される。一例では、データファイル102は、1つまたは複数のカンマが各データエントリ内のデータ要素を分離するカンマ分離データファイルであってもよい。構文解析モジュール221はそれぞれの区切り文字(例えば、カンマ)を検索し、次いで、格納のために、ファイルから個々のデータ要素を抽出するように構成される。
【0040】
ファイルが構文解析されると、サーバシステム220は、構文解析されたデータをデータベース224に格納することができる。データベース224はリレーショナルデータベース管理システム(RDBMS)、オブジェクト指向データベース管理システム(OODBMS)、オブジェクトリレーショナルデータベース管理システム(ORDBMS)、非限定的構造化クエリ言語(NoSQL)データストア、オブジェクトキャッシュ、分散ファイルシステム、データクラスタ(Hadoopなどの技術に基づく)、および/または任意の他の適切なタイプのデータストレージシステムのうちの1つまたは複数とすることができ、またはそれらを含むことができる。
【0041】
サーバシステム220は、例えば、サーバシステム220上で実行されるアプリケーションのためのサーバ側(または「バックエンド」)命令を実行することができるアプリケーションサーバ223をさらに含んでもよい。非限定的な一例では、アプリケーションサーバ223は、外部システム120に接続されたディスプレイ上に表示可能なユーザインタフェースに関連するデータを生成することができる。サーバシステム220は、特に表示のためのユーザインタフェースを生成するときに、外部システム120に送信されるデータをフィルタリングするように構成されたフィルタリングモジュール222を含むこともできる。一例では、フィルタリングモジュール222は、親注文に関連する注文データのみが外部システム120に送信されるように、注文データをフィルタリングするように構成されてもよい。
【0042】
外部システム120は、システム内に展開されたアプリケーションに関連する処理を実行するためのソフトウエアコンポーネントを含むことができる。非限定的な例として、外部システム120は、少なくとも、描画モジュール122とネットワーキングモジュール123とソフトウエアモジュール124とからなるクライアントアプリケーション121を有してもよい。もちろん、これらのモジュールは非限定的な例であり、アプリケーション121は、図2に示されるものよりもいくつか多くのモジュールおよび/または異なるモジュールを備えることができる。外部システム120は、パーソナルコンピュータ(例えば、デスクトップコンピュータ、ラップトップコンピュータ)、シンクライアント、ハイブリッドクライアント、リッチクライアント、ゲームコンソール、タブレット、携帯情報端末(PDA)、スマートフォン、ウェブインタフェース機能を有するデジタル音楽プレーヤ、および/または任意の他の携帯型または固定型コンピューティングデバイスを含むが、これらに限定されない、任意の様々なクライアントベースのデバイスを備えてもよい。
【0043】
外部システム120内のレンダリングモジュール122は、ユーザインタフェースのグラフィカル表示およびレンダリングのための機能を実装することができる。例えば、それは、クライアントアプリケーション121によって処理されたグラフィカルイメージを表すイメージクラスに対応するグラフィカルデータを生成することができる。このグラフィカルデータは、潜在的には外部システム120のオペレーティングシステムによるさらなる変更/変換の後に、システム120のディスプレイに表示されてもよい。代替的にまたは追加的に、外部システム120がイメージデータを描画する/表示すると本明細書で記載されたときはいつでも、描画/表示モジュール122がイメージデータの描画/表示に関する機能を実行してもよい。
【0044】
ネットワーキングモジュール123は、1つまたは複数のネットワーキング/通信プロトコルを実装することができ、外部システム120と、少なくともサーバシステム220との間の様々なデータメッセージを処理するために使用することができる。非限定的な一例では、ネットワーキングモジュール123はソフトウエア接続クラスを使用してデバイス間のソケット接続を開始することによって、ソケット接続を実行することができる。ソケットが接続されると、ネットワーキングモジュール123は、サーバシステム220との間でデータを転送することができる。
【0045】
ソフトウエアモジュール124はクライアントアプリケーション121にロードされた様々なコードを実行し、ソフトウエアに関連する他の機能を実行するために使用することができる。ソフトウエアモジュール124は例えば、Java(登録商標)ランタイムエンジン、またはJava(登録商標)プログラミング言語を使用して開発されたコンピュータ命令を実行することができる任意の他のタイプのソフトウエアモジュールとすることができる。この例もちろん非限定的であり、ソフトウエアモジュール124は、C、C++、C#、Python、JavaScript、またはPHPを含むがこれらに限定されない任意の様々なプログラミング言語を使用して開発されたコンピュータ命令を実行することができる。代替的にまたは追加的に、外部システム120がソフトウエアに関する機能を実行すると本明細書で記載されたときはいつでも、そのような機能がソフトウエアモジュール124によって取り扱われてもよい。
【0046】
図2に示される構成要素は、単一のシステム内に実装することができることを理解されたい。構成要素は複数のシステムおよび/または分散コンピューティング環境(例えば、クラウドコンピューティング環境)に組み込むこともできる。したがって、システムは、単一の構成要素に限定されず、複数の構成要素に組み込むことができる。
図3の説明
【0047】
図3は、システム内のデバイス間の通信プロセスの非限定的な例を示す。通信プロセスは、少なくとも1つのクライアントシステム100と、サーバシステム220と、外部システム120との間の例示的な通信を示す。この通信プロセスは例えば、ネットワーク130を使用して実行することができることを理解されたい。非限定的な一例では、図3に示すプロセスは、親システム100(図1Aおよび図1Bに示す)が子システム110から取引ファイル112を受信した後に開始する。
【0048】
図3に示す例では、通信プロセスは、動作301で、クライアントシステム100がメモリストレージにアクセスしてデータファイル102を取り出すときに開始する。例えば、クライアント100は、クライアント100に関連するメモリストレージに予め記憶されたフラットファイルを有することができる。あるいは、クライアント100は、送信のためにデータファイル102を準備するために、データファイル102に必要な要素のすべてをアセンブルするクエリを実行することができる。一例では、データファイル102は所与の日にクライアント100に関連付けられた1つまたは複数のエンティティについて行われたすべての取引活動を表す。データファイル102は上記のデータファイル102に関して説明したように、エンド・オブ・デイ取引ファイルとすることができる。
【0049】
データファイル102の送信の準備が整うと、クライアント100は、動作302で、データファイル102をサーバ220に送信することができる。一例では、クライアント100がサーバ220とのネットワーク接続を確立し、データファイル102をサーバ220に能動的に送信することができる。別の非限定的な例では、クライアント100は、データファイル102を取り出し、次いで、取り出しのためにサーバ220によってアクセス可能なファイル記憶位置にデータファイル102を配置することができる。すなわち、クライアント100はデータファイル102を、サーバ220によってアクセス可能な「フォルダ」に入れることができ、サーバ220は、一旦利用可能になると(またはデータファイル102が利用可能になった後のいつでも)データファイル102を取得する。クライアント100とサーバ220との間で実行されるステップは非限定的であり、本技術は、データファイル102をサーバ220に送信することができる様々な方法を想定していることを理解されたい。例えば、サーバ220は、クライアントシステム100にデータファイル102を能動的に要求することができる。
【0050】
クライアントシステム100はまた、サーバ220によるピックアップのためにデータファイル102を準備し、サーバ220のための一時的な「ピックアップ」領域として働くメモリ位置にデータファイル102を保存するようにプログラムすることもできる。サーバ220は、データファイル102が利用可能になった後のある時点で、ファイルの「ピックアップ」領域として働くメモリ位置にアクセスすることによって、クライアント100からデータファイル102を取得することができる。上述の例は単一のデータファイル102に言及しているが、クライアント100およびサーバ220は互いに複数のデータファイル102を通信することができることを理解されたい。さらに、クライアント100およびサーバ220はデータファイル102を転送する代わりに、(例えば、クライアント100とサーバ220との間のリアルタイム通信セッション中に)データファイル102内に含まれる個々のデータを通信することができることを理解されたい。
【0051】
データファイル102を受信すると、サーバ220は、動作303で、クライアント100にリターンメッセージを送信することによって、データファイル102の受信を確認することができる。非限定的な一例では、サーバ220は、データファイル102がサーバ220によって正常に受信されたことを示す受信確認メッセージを送信することができ、またはデータファイル102の転送が失敗したことを示すメッセージを発行することができる。さらに別の非限定的な例では、サーバ220は、データファイル102を分析して、データファイル102が任意のデータを含み、かつ/または適切にフォーマットされているかどうかを判定することができる。データファイル102がデータを含まず、かつ/または不適切にフォーマットされている場合、サーバ220はデータファイル102の受信を拒否し、データファイル102の受信に伴う問題の表示を提供するメッセージをクライアント100に送信することができる。あるいはサーバ220は、データファイル102を記憶するが、データファイル102に関する問題を示すメッセージをクライアント100に発行し続けることができる。
【0052】
動作304で、サーバ220は、格納および処理のために個々の要素を抽出するために、データファイル102の要素を構文解析することができる。一例では、データファイル102は、サーバ220がデータファイル102から個々の要素を識別し、構文解析することができるカンマ区切りファイルである。例えば、データファイル102は、取引されている証券のタイプ、価格、および証券の量を識別することができる。これらの個々の要素のそれぞれ(例えば、証券のタイプ、価格、量)は、データファイル102内のカンマ(または他の何らかのタイプのデリミタ)によって分離されてもよく、サーバ220は互いから分離されているものとして識別することができ、データファイル102の各「レコード」を伴う要素の所定の位置に基づいて、要素を取得し、それらをメモリに保存する。例えば、データファイル102内の各レコードエントリの構文解析に成功すると、サーバ220は、サーバ220のデータベースメモリの1つまたは複数のテーブルの関連する部分に関連する要素を格納することができる。例えば、サーバはその親注文のための注文識別子を(例えば、テーブル内の列として)含む親注文の第1レコードを作成することができる。このレコードは、この注文が親注文であることを示すフラグまたは他のデータを含むことができる。サーバは注文識別子を含む子注文のレコードを(例えば、親注文が格納されるのと同じまたは異なるテーブル内の同じまたは異なる列内に)作成することもできる。テーブルに格納される子注文の各レコードは、親注文の注文識別子を参照する親注文識別子(例えば、テーブル内で注文識別子とは別個の列である)を含むこともできる。したがって、親注文の子注文は、子注文の親注文識別子の値が親注文の注文識別子と同じであることによってリンクされ得る。この構文解析がいくつかの実施の形態においてどのように実行され得るかに関するさらなる詳細は図4および図5Aに関して以下に提供される(動作505に関するものを含むがそれに限定されない)。
【0053】
動作305で、外部システム120は、システム120に動作可能に結合されたディスプレイデバイス上に表示するためのユーザインタフェースをロードすることができる。例えば、システム120は、サーバ220を介して取引を行った異なるエンティティに関連する1つまたは複数の注文/取引に関する情報を表示するためのユーザインタフェースを生成することができるアプリケーションをロードすることができる。そうする際に、外部システム120は、動作306で、ユーザインタフェースを埋めるおよび/または描画するためのデータを要求することができる。例えば、ユーザインタフェースは、1つの軸に沿って取引の時刻を表し、かつ別の軸に沿って取引の値を表すグラフに沿って、サーバ220によってマッチングされた取引を表す異なるオブジェクトを示すデータを表示してもよい。
【0054】
これらの要素でディスプレイを埋めるために必要なデータは、動作307でサーバ220によって生成されてもよい。1つの非限定的な例では、システム120は、1つまたは複数のエンティティ(例えば、ブローカ、個人、ヘッジファンド)について、所与の日(または任意の他の期間)に発生したすべての取引に関するデータを要求することができる。次いで、サーバ220はデータベースにアクセスして、システム120からクエリで要求された関連情報を取得し、次いで、動作308で、そのようなデータをシステム120に送信することができる。1つの例示的な実施の形態では、サーバ220は、関連する「親」注文を有する取引に関連するデータ要素のみを送信することができる。この例示的な実施の形態では、サーバ220は、メモリに記憶された各個々の取引を検索するのではなく、取引が別の、おそらくはより大きなボリュームの「親」注文に関与していることを示す関連する「親」フラグを有する取引のみをクエリすることができる。したがって、サーバ220はメモリ内で検索されるデータの量を低減し、システム120に送信されるデータの量をさらに低減し、それによって、デバイス間の全体的な通信待ち時間を低減する。
【0055】
動作309で、外部システム120は、動作308でサーバ220から受信したデータを使用して、表示されているユーザインタフェースを生成/更新することができる。非限定的な一例では、システム120は、サーバ220によって実行される個々の取引を表す個々の要素と、個々の「子」取引のうちの1つまたは複数に関連付けられた(おそらくはより大量の)「親」注文を表す追加の要素とをプロットすることができるグラフを埋めることができる。要素は、表示/プロットされた位置が例えば、注文の時刻および/または注文の値を表すようにプロットおよび表示されてもよい。ユーザインタフェースのこのような例は図6Aおよび図6Bに関して見ることができ、以下でさらに詳細に論じる。
【0056】
動作310で、外部システム120は、ユーザインタフェースに関連する追加の表示を更新および/またはさらに生成する際に、データの後続の要求を(自動的にまたはユーザ操作を介して)行うことができる。動作301~310は図3では一度発生するものとして示されているが、これらの動作301~310は様々な実施の形態では複数回繰り返されてもよい。
図4の説明
【0057】
図4は、少なくともクライアント100とサーバ220との間で通信される非限定的な例示的なデータファイル102を示す。図4に示す例では、データファイル102は、レコード内の個々の要素がデリミタ(例えば、カンマ)によって分離されている様々なデータ「レコード」を含む。この例はもちろん非限定的であり、本明細書に記載の技術は、コロン、セミコロン、および/またはタブデリミタを含むがこれらに限定されない、データ要素を分離するために使用することができる任意の様々なデリミタを想定するものであり、かつ/または本明細書に記載の技術は、他の(非デリミテッド)ファイルタイプを使用する。さらに、例示的な「レコード」および「要素」が本明細書で説明される(図4の以下の説明を含むが、これらに限定されない)が、そのような「レコード」および「要素」は様々な実施の形態では任意のタイプの適切なデータ構造(複数可)であってもよいことを理解されたい。
【0058】
図4に示す例では、データファイル102内のレコードは、取引システム200を介して取引/交換される1つまたは複数の取引可能な金融商品(例えば、証券)に関連してもよい。したがって、各レコードは、特定の注文に関して発生した活動に関連する異なる情報に関連付けられた個々のデータ要素を含むことができる。例えば、レコードは、注文が取引システム200によって処理/実行された時刻を示す時刻要素401を含むことができる。この例では、データファイル102に含まれるレコードは、各個々のデータファイル102がそれ自体日付に関連付けられ得るので、注文の特定の日付を含まなくてもよい。例えば、データファイル102はクライアント100と関連付けて処理された1つ以上の注文(例えば、所定の日の注文)に関連付けられたエンドオブデイファイルに対応することができる。したがって、時刻要素401に関連するすべてのデータ要素は、データファイル102の特定の日付に自動的に関連付けられる。もちろん、この例は非限定的であり、本明細書で説明される技術は、各レコードが、特定の日付に関連する情報(または特定の日付を識別する各レコード内の別の要素)をさらに含むことを想定する。
【0059】
各レコードは、注文活動タイプ402およびトランザクション識別子(ID)403を含むことができる。1つの非限定的な例では、注文活動タイプ402は、レコードが対応する注文に関して発生した活動のタイプ(例えば、エントリ、修正、または実行/取引)を識別することができる。例えば、図4に示すように、「ENTER」の注文活動タイプ402は、レコードが注文の最初のエントリに対応することを示してもよく、「AMEND」および「TRADE」活動タイプはそれぞれ、レコードが、注文が修正された場合または注文が取引として実行された場合に対応することを示す。これらの値はもちろん非限定的であり、本技術は、注文活動タイプ402の要素として表すことができる様々な値を想定している。さらに、レコードは、トランザクションID403を識別する特定の数値識別子を有することができる。図4に示される例では、各レコードは、各トランザクションのシーケンスを示す方法でソートされる(すなわち、transld=2が最初にリストされ、transld=3が2番目にリストされ、transld=4が3番目にリストされるなど)。
【0060】
上述のように、各レコードは、取引システム200を介して取引可能な異なる金融商品に関連付けられてもよい。図4に示す例では、各レコードは、1つまたは複数の証券の取引に関する情報を含む。例えば、証券識別子404は、特定のタイプの証券を識別することができ、価格要素405およびボリューム要素406は、注文に関連する価格および数量に関する情報を伝達することができる。図4に示す第1レコードでは、証券404は「TRAASELS91H2-TRY」として識別され、注文は価格405の値が「100」であり、ボリューム406の値が「20000」であった。
【0061】
各レコードはまた、レコード内に表される注文のタイプおよび/またはステータスに関連する異なるフラグを示す識別情報を含むフラグ要素407を有することができる。特定の例示的なフラグ要素は、売り注文(SO)、市場注文(MO)、および非アクティブ注文(IA)のフラグをそれぞれ示すフラグ「se」、「MO」、および「IA」を含むことができる。
【0062】
データファイル102に表された注文について、注文の幾つかは、親注文に関連する子注文である。所与のレコードが親注文のものである場合、そのレコードのフラグ要素407は、そのレコード内で表される注文が親注文であることを示す親フラグ408を含むことができる。例えば、親フラグ408は、文字「PAR」がフラグ要素407に関連して存在するときに特定されてもよい。図4に示す例では、レコード(1)は親注文用であり(親フラグ408を含むので)、レコード(2)~(6)は親注文用ではない。レコード内に親フラグ408が存在しない場合、注文が子注文に関連付けられていることを理解することができる。言い換えれば、システムは、対応するレコード内の親フラグの存在に基づいて、注文を親注文として分類または識別するようにプログラムされてもよい。子注文は、レコードが親フラグを含まないという決定に基づいて識別または分類され得る。いくつかの例では、子注文の識別または分類は、親注文識別子がレコード内に存在する(したがって、対応する注文が親注文を有することを示す)という判定に基づくことができる。
【0063】
各注文は、注文識別子411に基づいて識別することができる。図4に示す第1レコードの例では、注文識別子411が注文の識別値を示す値「123456789」を含む。同じ注文が複数のレコードで表される場合、注文の識別子411は、それらのレコード内の注文識別子として含まれる。図4の例では、少なくともレコード(2)および(4)は注文識別子411「0=12121212121」を有する同じ注文に関連する。この例では、レコード(2)は注文がエンターされたときに関連付けられ(注文活動タイプ402「ENTER」によって識別される)、レコード(4)は注文が実行/取引されていることに関連付けられる(注文活動タイプ402「TRADE」によって識別される)。
【0064】
データファイル102において、子注文のレコードは、関連する親注文識別子の識別子を示す別個のフィールドを含むことができる。すなわち、レコードが親フラグ408を含まない場合、レコードは子注文に対応することができ、子注文に関連する親注文の注文識別子を含む別のフィールドを含むことができる。例えば、レコードは値「P=」を有する親注文識別子412フィールドを含むことができ、等号に続く要素は、親注文の注文識別子を含むことができる。図4に示される例では、レコード(2)~(6)は、注文識別子411の値が「0=123456789」(レコード(1)に詳細に示される)である親注文に関連する子注文に対応し、図4に見られるように、レコード(2)~(6)の各々は、値「P= 123456789」を有する親注文識別子(レコード(2)の場合、親注文識別子フィールド412に含まれる親注文識別子)を含む。したがって、レコード(2)~(6)は(親フラグ408が省略されることによって)親注文に対応せず、代わりに子注文に対応し、さらに、これらの子注文が関連付けられる親注文が親注文識別子412を有することを理解することができる。これらの子注文はそれ自体の注文識別子を使用して(すなわち、等号に続く値が子注文識別子に対応する場合の「O=」として)依然として識別可能であることを理解されたい。図4 に示す例では、レコード(2) と(4) は1つの子注文(すなわち、「O=12121212121」) に属しているが、レコード(3)、(5)、(6) は別の子注文(すなわち、「0=45454545454」) に関連している。これらの例は非限定的であり、本明細書に記載される技術は、異なる親および子注文を識別するための様々な方法を想定する。
【0065】
データファイル102に表される注文は、1つまたは複数の当事者/エンティティに関連付けることができる。例えば、各注文は注文を開始するブローカ、注文を実行することをブローカに要求するエンティティ(例えば、個人、ヘッジファンド、会社)、取引を行う取引所のタイプ、および/または注文のポストマッチングを清算する特定のクリアリングハウスに関連付けられてもよい。図4に示す例では、ハウス識別子409は、注文に関連付けられた特定のハウス(例えば、クリアリングハウス)を識別することができる。各レコードは例えば、トレーダ識別子410を使用して、注文に関連する特定のトレーダ(または他の当事者)を識別することもできる。この例で説明されるデータ要素は非限定的であり、本明細書で説明される技術は、各データレコードに関連するさらなる情報を提供する任意の様々な追加のデータ要素を想定することを理解されたい。
図5Aおよび図5Bの説明
【0066】
図5Aおよび5Bは表示用のユーザインタフェースの情報を取得し、ユーザインタフェースを描画するための、システム内のコンポーネントによって実行される非限定的な例示的な方法を示す。図5Aは具体的には例えば、クライアント100から受信したデータファイル102を処理するためにサーバ220によって実行することができるプロセスを示す。
【0067】
動作501で、サーバ220は1つまたは複数の注文に関連付けられた情報を含むデータファイル102をクライアント100から取得/受信することができ、いくつかの実施の形態ではデータファイル102が図4に示すような情報を含むことができる。データファイル102はコンマで区切られたフラットファイルまたは他のタイプのファイルとすることができ、データファイル102は様々な方法を使用してサーバ220に送信することができる。例えば、コンマで区切られたフラットファイルの代わりに、データファイル102は、XMLファイル内の異なる「タグ」によって識別される個々の取引に関連する異なる要素を有するXMLファイルであってもよい。サーバ220は「タグ」識別子に基づいて個々の要素を識別し、次いで、「タグ」識別子に続く各要素に関連する情報を抽出することができる。
【0068】
動作502において、サーバ220はデータファイル102をロードし、前処理することができる。1つの非限定的な例では、サーバ220は、データファイル102が処理の準備ができていることを保証するために、データファイル102をロードし、分析することができる。例えば、サーバ220はデータファイル102が図4に関して説明したレコードを有するコンテンツを含むことを確認することができる。サーバ220はデータファイル102のフォーマットが前処理に適切であるかどうかを判定することもできる。例えば、サーバ220はデータファイル102がカンマで区切られたデータファイルであり、レコード内の個々の要素がカンマで区切られていることを確認することができる。
【0069】
動作503において、サーバ220は次に、動作502におけるロードおよび前処理中に障害が発生したかどうかを判定することができる。障害が発生した場合、サーバ220は、動作504で、ロード/前処理障害を詳述するメッセージを生成することができる。非限定的な一例では、サーバ220は、ロード/前処理中に発生した特定のエラーを詳述する電子メールメッセージを生成して、クライアントデバイスに送信することができる。例えば、サーバ220は、データファイル102のロードが失敗したこと、またはデータファイル102が破損している(または不適切なフォーマットである)ことを示すメッセージを自動的に生成することができる。
【0070】
障害が発生しなかった場合、サーバ220は動作505で、データファイル102を構文解析することができる(すなわち、データファイル102内に含まれる注文データを、その注文データ内のレコード/要素も含めて構文解析することができる)。これは、(例えば、動作304に関して、図4に関して、および/または上記の他の場所において)上述された方法を使用して、および/または以下のように実行されてもよい。
【0071】
カンマ区切りデータファイルの例では、データファイル102は、左から右にリストされた要素のシーケンスが所定の順序で配置されるように構成されてもよい。したがって、動作505において、サーバ220は、左から右へのシーケンスにおける位置に基づいて、どの要素がデータレコード内の関連付けられた情報片に対応するかを知ることになる。例えば、レコード内の最初のカンマの前の最初のデータストリングは常に、トランザクション識別子403、取引が処理された時刻401、および注文活動タイプ402に関連付けられ得る。代替として、サーバ220は、データレコード内の各要素にわたって、様々な事前定義された識別子を識別することが可能であってもよい。例えば、サーバ220はデータ要素内の特定の文字を識別し、次いで、データ要素が特定のフィールドに関連付けられていることを理解することができる。図4の例示的なレコードを使用して、サーバ220が用語「price」を有するデータ要素を構文解析するとき、サーバ220は、「=」記号に続く値が対応する価格値になることを知る。サーバ220は個々のデータ要素を構文解析して識別するための任意の様々な方法を使用することができ、したがって、この例は非限定的である。
【0072】
いくつかの実施の形態では、動作505におけるサーバ220による構文解析は、注文データを検索して、その中に含まれる親注文を識別し、その中に含まれる子注文を識別し、識別された親注文と識別された子注文ベースとの間の対応を識別することを含むことができる。いくつかの実施の形態では、注文データは、注文識別子要素(例えば、注文識別子411)、親フラグ要素(例えば、親フラグ408)、親注文識別子要素(例えば、親注文識別子412)、および他の要素を含むことができる、図4に示すレコードなどのレコードを含むことができる。そのような実施の形態では、この構文解析は、(a)親注文のレコードが親フラグ要素を含むことに基づいて親注文を識別すること、(b)子注文のレコードが親注文識別子要素を含むことに基づいて子注文を識別すること、などの動作を含むことができる。そのような実施の形態では、この構文解析は、代替的にまたは追加的に、以下のような動作を含むことができる:
(x)(1)注文データ内の所与のレコードを解析し、(2)所与のレコードが親フラグ要素を含むと判定し、(3)前述の判定に基づいてレコードが親注文に対応することを特定し、(4)親注文の注文識別子を格納する、および
(y)(1)注文データ内の所与のレコードを分析し、(2)所与のレコードが親注文識別子要素を含むと判定し、(3)親注文識別子要素内の注文識別子を(x)からの親注文の識別子と比較し、(4)比較が、親注文識別子要素内の注文識別子と(x)からの親注文の識別子とが同じであることを示す場合、所与のレコードが(x)からの親注文に関連する子注文の1つに対応することを特定する。
【0073】
データファイル102内の要素を構文解析すると、動作506において、サーバ220は、個々の要素を、例えば、サーバ220のメモリに格納されたデータベースの1つまたは複数のテーブルを含むことができる構造化データフォーマットで格納することができる。1つの非限定的な例では、サーバ220は、データファイル102に提供されたレコードから抽出された個々の取引に関連する各情報片を格納する1つまたは複数のテーブルを含むデータベースを有することができる。例えば、テーブル内の各エントリは、一意の識別子で識別することができ、少なくとも、トランザクションID403、注文活動タイプ402、時刻401、証券404、価格405、ボリューム406、および他の残りの要素を含む要素は、個々の取引アイテムに対応することができる。テーブルはデータファイル102から抽出されない追加の情報(例えば、一意の識別子)を含むことができる。
【0074】
動作507において、サーバ220は、構文解析されたデータを市場データとマージすることができる。1つの非限定的な例では、サーバ220は、構文解析されて格納された個々の注文データを取得することができ、次いで、そのようなデータは1つまたは複数の金融商品の異なる注文に関する市場データとマージされ得る。格納されたデータを市場データとマージすることにより、ユーザインタフェースは、金融商品の注文データに関するさらなる情報を伝えるために、構文解析された注文データと市場データ(例えば、証券の)の両方を表示することができる。
【0075】
図5Bは例えば、サーバ220とシステム120との対話の間で実行され得るプロセスのための非限定的なフローチャートを示す。図5Bに関して実行されるプロセスは、図5Aに関するプロセスが完了した後に行われてもよいことを理解されたい。図5Bの例では、プロセスは、ユーザインタフェースの特定の態様を生成するときに、実質的に外部システム120によって実行され得る。
【0076】
動作508において、外部システム120は例えば、1つまたは複数の証券にわたる1つまたは複数のエンティティの注文に関連する注文データを取得/受信することができる。システム120は特定のエンティティおよび/または証券に関するすべての注文データを取得することができ、またはサーバ220に特定の注文データを要求することができ、その場合、サーバ220は要求された必要なデータのみを提供する。この受信された注文データは親注文のデータ(すなわち、親注文データ)および子注文のデータ(すなわち、子注文データ)を含むことができ、さらに、親/子注文ではない他の注文のデータを含むことができる。いくつかの実施の形態では、注文データは、子注文が実行/取引されたときの子注文のデータのみを含むことができ(例えば、注文データは子注文がエンターされたとき(子注文がエントリ後に休止した場合)、修正されたとき、キャンセルされたときなどに関連するデータを含まない)、そのような実施の形態では以下で説明するように、外部システム120によって処理/表示される子注文オブジェクトは子注文が実行/取引されたときの子注文オブジェクトのみを含むことになる。他の実施の形態では、他方、注文データは子注文に関連するすべての活動についての子注文のデータを含むことができ(例えば、子注文がエンターされたとき(子注文がエントリ後に休止した場合)、修正されたとき、キャンセルされたときなど)、後述する外部システム120によって処理/表示される子注文オブジェクトはすべてのそのような活動についての子注文オブジェクトを含むことになる。
【0077】
動作508において、注文データが受信された後、外部システム120はグラフィカルユーザインタフェースを表示することができ、グラフィカルユーザインタフェースは、注文データ内に表される親注文に対応する親注文オブジェクト、注文データ内に表される子注文オブジェクトに対応する子注文オブジェクト、および/または注文データ内に表される他の注文(すなわち、親注文でも子注文でもない注文)に対応する注文オブジェクトを含む。一部の実施の形態では、親注文オブジェクトの一部または全部は文字「P」を含む円として表現されることがある。特定の親注文オブジェクトが選択されていない場合、システム120はグラフィカルユーザインタフェースに、全ての利用可能な親注文オブジェクトおよび子注文オブジェクトを表示してもよい。そのようなディスプレイの一例が図6Aに提供されており、これは、他の注文オブジェクトと共に、複数の親注文オブジェクトおよび複数の個々の子注文オブジェクトを示している。
【0078】
動作509において、システム120はユーザからの入力(例えば、マウスクリック、タッチスクリーンを介したタッチ入力などを介して)を受信することができ、ユーザ入力に応答して、ユーザインタフェースを使用して親注文オブジェクトが選択されたことを判定することができる。例えば、図6Aおよび図6Bに関してさらに詳細に説明されるように、および以下の動作510、511、および512において説明されるように、ユーザは対応する親注文の詳細が強調されるべきであることを示すために、親注文オブジェクトを選択し得る。
【0079】
動作510において、システム120は、選択された親注文オブジェクトに関連する親注文識別子を決定する。これは、親注文識別子を示す選択された親注文オブジェクト内のデータフィールドにアクセスすること、親注文識別子を取得するために選択された親注文オブジェクト内のメソッドを呼び出すこと、および/またはそうでなければ選択された親注文オブジェクトに関連する親注文識別子を取得するためにシステム120に利用可能なデータを検索することによって実行され得る。
【0080】
動作511で、システム120は、動作510で判定された親注文識別子に基づいて、対応する親注文に関連付けられた注文/取引に対応する子注文オブジェクトをフィルタリングすることができる。
【0081】
いくつかの実施の形態では、このフィルタリングは、システム120が(「他の」注文オブジェクトを含む、利用可能な注文オブジェクトのすべてのうちの)どの注文オブジェクトが子注文オブジェクトであるかを判定し、そのような子注文オブジェクトのリストを生成することを含むことができる。これは、システム120が利用可能なデータを検索し、親注文フラグおよび/または特定の親注文を指定する識別子を有するすべての注文を特定し、対応する注文オブジェクトをリストに追加することを含むことができる。次いで、システム120は、選択された親注文オブジェクトに関連付けられていない子注文オブジェクトが表示されるべきでないことを反映するために、子注文オブジェクトの生成されたリストを横断し、データを更新することができる(例えば、システムは、そのような注文オブジェクトに関連付けられた「表示」フラグをFALSEに設定することができる)。このアプローチを介して、システム120は利用可能な注文オブジェクトのすべてについて表示状態を更新する必要はなく、むしろ、子注文オブジェクトリスト内の注文オブジェクトについてのみ表示状態を更新することになり、これは、より効率的である。
【0082】
動作512で、選択された親注文オブジェクトに関連付けられていない子注文オブジェクトが表示されないように、グラフィカルユーザインタフェースが更新される。これは、例えば、システム120がグラフィカルユーザインタフェースのディスプレイをリフレッシュし、どの注文オブジェクトが表示されるように設定されているか、およびどの注文オブジェクトが表示されていないかをチェックし(例えば、各注文オブジェクトに関連する「表示」フラグがTRUE(真)またはFALSE(偽)に設定されているかを評価することによって)、それに応じてグラフィカルユーザインタフェースを描画することによって実行することができる。図6Bは動作512で表示することができるグラフィカルユーザインタフェースの一例を示し、表示される子取引オブジェクトは、選択された親注文オブジェクトに関連するものだけである。
【0083】
動作501~507および508~512は所与の順序付け/シーケンスを有する別個の動作として上述されているが、これは説明を容易にするために行われることを理解されたい。各種の実施の形態では、上述の動作が各種の順序/シーケンスで実行されてもよく、代替的にまたは追加的に、上述の動作501~507および508~512の一部が動作501~507および508~512の他の一部と入れ違いにされてもよいし、および/または同時に実行されてもよいことを理解されたい。
図6Aおよび図6Bの説明
【0084】
図6Aおよび図6Bは、外部システム120に動作可能に結合されたディスプレイ上に表示することができるユーザインタフェースの非限定的な例を示す。1つの非限定的な例では、ユーザインタフェースは、1つまたは複数の証券の注文に関連する異なる注文/取引データを示すディスプレイに関係し得る。
【0085】
図6Aは親注文オブジェクト、子注文オブジェクト、および他の注文の(すなわち、親注文でも子注文でもない注文の)注文オブジェクトを含む、異なる注文オブジェクトを表示する、非限定的な例示的なユーザインタフェース600を示す。1つの非限定的な例では、ユーザインタフェース600は、その上に注文オブジェクトがプロットされる少なくとも2つの軸を有するグラフを有するディスプレイ部分を含む。グラフは、表示活動が行われた時刻を示す第1軸610と、表示された活動が行われた価格/値を示す第2軸620とを含む。
【0086】
1つの非限定的な例では、子注文オブジェクト605はユーザインタフェースのグラフ表示上にプロットされ、一方、親注文オブジェクト610は子注文オブジェクト605とは異なる位置で同じグラフ表示上にプロットされる。例えば、親注文オブジェクト610は、(第1軸610に平行な方向に延びる)タイムラインに沿って、第2軸620に沿った1つまたは複数の子注文オブジェクト605の上の位置にプロットされてもよい。
【0087】
グラフ上にプロットされた注文オブジェクト(例えば、親注文オブジェクト610または子注文オブジェクト605)の位置は、注文オブジェクトに対応する注文に関連する何らかの活動が行われた時刻、例えば、注文がエンターされ、修正され/変更され、および/または取引されたとき、に対応してもよい。非限定的な一例では、1つまたは複数の子注文オブジェクト605に関連付けられた親注文オブジェクト610は、x軸に沿って、左から右への順で子注文オブジェクト605の前の最初に配置される。すなわち、左から右に向かってx軸に沿ってディスプレイを見るとき、親注文オブジェクト610は、関連する子注文オブジェクト605が表示される前の最初に表示される。これは、親注文オブジェクト610が子システムが(取引のために)取引所に注文を出すことができる前に配置されるためであり得る。したがって、親注文オブジェクト610が、1つまたは複数の子注文オブジェクト605の後にx軸に沿って(左から右へ)ディスプレイ上に示される場合、そのような情報は異常な取引活動(例えば、不正取引活動、インサイダー取引)を示しうる。そのような情報は、1つまたは複数のシステムが注文に不適切にタイムスタンプを付けることを示すこともできる。例えば、注文情報(例えば、図4に示す)を含むデータファイル102は、親注文に関連付けられた注文エントリに不正確にタイムスタンプを付けることがある。一例として、親注文は、親注文に関連付けられた後の注文エントリ(例えば、「TRADE」または「AMEND」動作)が、後のエントリに、親注文が発注された時刻ではなく現在の時刻で不正確にタイムスタンプを付与し得る最初の時刻に発注され得る。この場合、ディスプレイは不正確なタイムスタンプデータのために、1つまたは複数の子注文オブジェクト605よりも遅い時刻に親注文オブジェクト610を不正確に示すことがある。
【0088】
親注文オブジェクト610および子注文オブジェクト605の位置は非限定的であり、本明細書で説明される技術は、そのような注文オブジェクトの位置を決定するための様々な方法を想定する。例えば、各親注文オブジェクト610の位置は、1つまたは複数の子注文オブジェクト605の決定された位置との相対関係に基づいて決定することができる。非限定的な一例では、親注文オブジェクト610の位置は、関連する子注文オブジェクト605の集合位置の中央値にあってもよい。別の非限定的な例では、親注文オブジェクト610の位置は、中央(median)の子注文オブジェクト605の位置に対応する位置であってもよい。例えば、1つの親注文オブジェクト610が5つの子注文オブジェクト605に対応する場合、親注文オブジェクト610の位置は3番目の子注文オブジェクト605(すなわち、シーケンス中の「中央の」注文)の位置と一致し得る。
【0089】
また、各親注文オブジェクト610は、それを子注文オブジェクト605と区別するフォーマットで表示することができることを理解されたい。例えば、親注文オブジェクト610は注文が「親注文」であることを示すために第1フォーマットで(例えば、オブジェクト610上に「P」を用いて)表示され得、一方、子注文オブジェクト605は第2フォーマットで(例えば、オブジェクト605上の「P」の使用を伴わない)表示され得る。この例は非限定的であり、親注文オブジェクト610および子注文オブジェクト605は、関係するサイズ、形状、および/または色に関して異なるフォーマットで表示することができる。
【0090】
さらに、親注文オブジェクト610は、それが親注文に関連付けられた特定のタイプの動作を有する親注文であることを示す他の識別情報と共に表示することができる。例えば、親注文オブジェクト610は、親注文がエンターされたことを示す文字「Pe」を有するゴールドアイコンとして表示することができる。親注文オブジェクト610は、親注文が修正されたことを示す文字「Pa」を有するピンク色のアイコンとして表示することもできる。親注文オブジェクト610は、親注文が削除されたことを示す文字「Pd」を有するグレーアイコンで表示することもできる。もちろん、これらの例は非限定的であり、親注文オブジェクト610は、任意の色で、かつ任意のタイプのインジケーションを伴って表示することができる。
【0091】
ユーザインタフェース600はまた、異なる注文/取引データに関連するさらなる情報を含んでもよい。例えば、ユーザインタフェース600は、表示されたグラフに表された1つ以上の証券に関連付けられた取引の数を示す取引数601を含むことができる。ユーザインタフェース600はまた、例えば、表示されたグラフに表される1つ以上の証券について取引される株式の数を示すボリューム602を含み得る。ユーザインタフェース600はまた、例えば、取引され、表示されたグラフに表される1つまたは複数の証券の全ドル金額を示す値603を含むことができる。グラフは、特定の注文の取引量に対応するバー領域631も含むことができることを理解されたい。例えば、特定の取引のバー領域631のサイズは、取引として処理された他の注文と比較して、より高いボリュームの注文を示すことができる。
【0092】
ユーザが、ユーザインタフェース上に示される親注文オブジェクトのうちの1つを選択すると、異なる子注文が強調表示され得る。図6Bは、少なくとも1つの親注文オブジェクト610が(例えば、ユーザ入力によって)選択されたときの、非限定的な例示的なユーザインタフェース600を示す。図6Bに示される例は図6Aに示される注文オブジェクトに関するが、選択された親注文オブジェクト610に関連する子注文オブジェクト605のみを示すようにフィルタリングされる。非限定的な一例では、ユーザインタフェース600は、選択された親注文オブジェクト610に関連付けられていない子注文オブジェクト605をディスプレイから削除することができる。この例は非限定的なものであり、本技術は、ディスプレイ上の子オブジェクト605を強調表示するか、さもなければ示すための様々な方法を想定している。例えば、ディスプレイは他の(例えば、リンクされていない)子注文オブジェクト605を表示したままにすることができるが、選択された親注文オブジェクト610に関連する子注文オブジェクト605のサイズ、形状、および/または色を変更することができる。いくつかの例では、リンクされていない子注文は色、透明度、または他の視覚的インジケータ(例えば、グレーアウトされるか、または透明にされることによって)において変更され得る。特定の例では、リンクされた子注文は、選択された親注文とその子注文との間の関係を視覚的に示すために(例えば、注文を強調表示するか、または注文を明るい色に変更することによって)、色、透明度、または他の視覚的インジケータにおいて変更されてもよい。
【0093】
ユーザインタフェース600は、「フィルタリングされた」子注文オブジェクト605および親注文オブジェクト610に関連して生成されるオーバレイウィンドウ640を含むようにディスプレイを変更するようにさらに構成され得る。非限定的な一例では、オーバレイウィンドウ640は、選択された親注文オブジェクト610および関連する子注文オブジェクト605に関する詳細を含むことができる。例えば、ユーザは、親注文オブジェクト610を「左クリック」して、親注文に関連するオーバレイウィンドウ640を開くことができる。
【0094】
オーバレイウィンドウ640は、親注文および/または子注文を識別する注文識別子642を含むことができる。注文識別子642は、選択された親注文イベントの注文IDとすることができる。ウィンドウ640は、親注文に関する1つまたは複数の情報を含むことができる親注文情報641をさらに含むことができる。例えば、親注文情報641は、親注文が出された日付/時刻、親注文に関連付けられた値(または価格)、および/または親注文に関連付けられたボリュームを含むことができる。
【0095】
オーバレイウィンドウ640は、親注文に関連する1つまたは複数の子注文に関連するさらなる情報を提供することもできる。例えば、ウィンドウ640は、選択された親注文に関連して取引/処理された子注文の数を示す子注文取引数643を含むことができる。ウィンドウ640はさらに、選択された親注文に関連する子注文の最初および最後の取引の時刻(および/または日付)をそれぞれ示す最初の取引時刻644および最後の取引時刻645を含むことができる。例えば、最初の取引時刻644は、選択された親注文に関連する最初の取引が実行された時刻に対応することができる。同様に、最後の取引時間645は、選択された親注文に関連する最後の取引が実行された時刻に対応することができる。
【0096】
オーバレイウィンドウ640は、親注文および子注文の両方に関連するさらなる情報を提供することができる。例えば、ウィンドウ640は、取引に関連付けられた(または発注した)1つまたは複数の個人を示すトレーダ識別子646と、親注文および/または子注文に関連する少なくとも1つの取引の識別子値を示す取引識別子647とをさらに含むことができる。ウィンドウ640は、親注文および/または子注文に関連付けられたアカウントを示すアカウント識別子648と、親注文および/または子注文に関連付けられたボリューム加重平均価格を示すVWAP 649とをさらに含むことができる。オーバレイウィンドウ640に示されるアイテムは非限定的であり、本明細書で説明される技術は、ウィンドウ640に表示することができる様々なデータを想定していることを理解されたい。
【0097】
図6Bに示されるディスプレイは、ユーザインタフェースの上部付近にさらなる要約情報を含んでもよいことを理解されたい。例えば、ユーザインタフェースは、いくつの子取引が強調表示されているかを示す子取引数606の値を含むことができる。ユーザインタフェースは例えば、表示されたグラフに表される強調表示された子取引について取引されている株式の数を示す子ボリューム607をさらに含むことができる。また、子ボリューム607は、ボリューム602に対する子ボリューム607の全パーセンテージを示すパーセンテージ値を示すこともできる。また、ユーザインタフェースは例えば、表示されたグラフに表される強調表示された子取引の全ドル金額を示す子の値608を含むことができる。子ボリューム607と同様に、子の値608は、値603に対する子の値608の全パーセンテージを示すパーセンテージ値を示すこともできる。図6Aおよび6Bに示される要約項目はもちろん、非限定的な例であり、本明細書で説明される技術は、示され得る要約情報の任意の種類または修正を想定する。
図7の説明
【0098】
図7は、システム1260のハードウエアアーキテクチャの非限定的例示的ブロック図を示す。図7に示される例では、クライアントデバイス1210はネットワーク1240を介してサーバシステム1200と通信する。ネットワーク1240はインターネットなどの相互に接続された計算デバイスのネットワークを含みうる。ネットワーク1240はローカルエリアネットワーク(LAN)を含んでもよく、またはクライアントデバイス1210とサーバシステム1200との間のピアツーピア接続を含んでもよい。後述されるように、図7に示されるハードウエア要素は、上で示され説明された種々のソフトウエアコンポーネントおよび動作を、クライアントデバイス1210およびサーバシステム1200に含まれるかおよび/またはそれにおいて実行されるものとして実装するために使用可能である。
【0099】
いくつかの実施の形態では、クライアントデバイス1210(これは本明細書において「クライアントシステム」とも称される)は、1つまたは複数のプロセッサ1212、1つまたは複数のメモリデバイス1214、1つまたは複数のネットワークインタフェースデバイス1216、1つまたは複数のディスプレイインタフェース1218、および1つまたは複数のユーザ入力アダプタ1220のうちの1つまたは複数を含む。さらに、いくつかの実施の形態では、クライアントデバイス1210はディスプレイデバイス1222に接続されるか、またはディスプレイデバイス412を含む。以下で説明するように、これらの要素(例えば、プロセッサ1212、メモリデバイス1214、ネットワークインタフェースデバイス1216、ディスプレイインタフェース1218、ユーザ入力アダプタ1220、ディスプレイデバイス1222)は、計算デバイス1210の様々な異なる機能を実行するように構成されたハードウエアデバイス(例えば、電子回路または回路の組合せ)である。
【0100】
いくつかの実施の形態では、プロセッサ1212の各々またはいずれかは、例えば、シングルコアまたはマルチコアプロセッサ、マイクロプロセッサ(例えば、中央処理装置またはCPUと呼ばれ得る)、デジタル信号プロセッサ(DSP)、DSPコアに関連するマイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)回路、またはシステムオンチップ(SOC)(例えば、CPUと、メモリ、ネットワーキングインタフェースなどの他のハードウエア構成要素とを含む集積回路)であるか、またはそれらを含む。および/または、いくつかの実施の形態では、プロセッサ1212のそれぞれまたはいずれかは、x86またはARM(Advanced RISC Machine)などのインストラクションセットアーキテクチャを使用する。
【0101】
いくつかの実施の形態では、メモリデバイス1214の各々またはいずれかは、ランダムアクセスメモリ(RAM)(ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)など)、フラッシュメモリ(例えば、NANDまたはNOR技術に基づく)、ハードディスク、光磁気媒体、光媒体、キャッシュメモリ、レジスタ(例えば、インストラクションを保持する)、またはデータおよび/またはインストラクションの揮発性または不揮発性保持を実行する他のタイプのデバイス(例えば、プロセッサ1212上でまたはプロセッサ402によって実行されるソフトウエア)であるか、またはそれらを含む。メモリデバイス1214は、不揮発性コンピュータ可読保持媒体の例である。
【0102】
いくつかの実施の形態では、ネットワークインタフェースデバイス1216のそれぞれまたはいずれかは、1つまたは複数の回路(ベースバンドプロセッサおよび/または有線または無線トランシーバなど)を含み、1つまたは複数の有線通信技術(イーサネット(IEEE 802.3)など)および/または無線通信技術(ブルートゥース、WiFi(IEEE 802.11)、GSM、CDMA2000、UMTS、LTE、LTE-Advanced(LTE-A)、および/または他の短距離、中距離、および/または長距離無線通信技術など)のためのレイヤ1、レイヤ2、および/またはより高次のレイヤを実装する。トランシーバは、送信機および受信機のための回路を備えることができる。送信機および受信機は共通の筐体を共有することができ、送信および受信を実行するために筐体内の回路のいくつかまたはすべてを共有することができる。いくつかの実施の形態では、トランシーバの送信機および受信機は、いかなる共通の回路も共有しなくてもよく、および/または同じまたは別個のハウジング内にあってもよい。
【0103】
いくつかの実施の形態では、ディスプレイインタフェース1218の各々またはいずれかは、プロセッサ1212からデータを受信し、受信したデータに基づいて対応する画像データを(例えば、ディスクリートGPU、組み込みGPU、グラフィック処理を実行するCPUなどを介して)生成し、および/または生成された画像データを画像データを表示するディスプレイデバイス1222に出力する(例えば、高精細度マルチメディアインターフェース(HDMI)、ディスプレイポートインタフェース、ビデオグラフィックスアレイ(VGA)インタフェース、デジタルビデオインタフェース(DVI)など)、1つまたは複数の回路であるか、またはそれらを含む。代替的にまたは追加的に、いくつかの実施の形態では、ディスプレイインタフェース1218の各々またはいずれかは、例えば、ビデオカード、ビデオアダプタ、またはグラフィックス処理ユニット(GPU)であるか、またはそれらを含む。
【0104】
いくつかの実施の形態では、ユーザ入力アダプタ1220のそれぞれまたはいずれかは、クライアントデバイス1210に含まれ、それに取り付けられ、またはそれと通信する1つまたは複数のユーザ入力デバイス(図7には示されていない)からユーザ入力データを受信し、処理し、受信した入力データに基づいてプロセッサ1212にデータを出力する1つまたは複数の回路であるか、またはそれを含む。代替的にまたは追加的に、いくつかの実施の形態では、ユーザ入力アダプタ1220の各々またはいずれかは、例えば、PS/2インタフェース、USBインタフェース、タッチスクリーンコントローラなどであるか、またはそれらを含み、および/またはユーザ入力アダプタ1220は例えば、キーボード、マウス、トラックパッド、タッチスクリーンなどのユーザ入力デバイス(図7には図示せず)からの入力を容易にする。
【0105】
いくつかの実施の形態では、ディスプレイデバイス1222は、液晶ディスプレイ(LCD)ディスプレイ、発光ダイオード(LED)ディスプレイ、または他のタイプのディスプレイデバイスとすることができる。ディスプレイデバイス1222がクライアントデバイス1210の構成要素である(例えば、計算デバイスおよびディスプレイデバイスが統合ハウジングに含まれる)実施の形態では、ディスプレイデバイス1222は、タッチスクリーンディスプレイまたは非タッチスクリーンディスプレイとすることができる。ディスプレイデバイス1222がクライアントデバイス1210に接続される(例えば、クライアントデバイス1210の外部にあり、有線および/または無線通信技術を介してクライアントデバイス1210と通信する)実施の形態では、ディスプレイデバイス1222は例えば、外部モニタ、プロジェクタ、テレビジョン、ディスプレイ画面である。
【0106】
様々な実施の形態では、クライアントデバイス1210は、上述の要素(例えば、プロセッサ1212、メモリデバイス1214、ネットワークインタフェースデバイス1216、ディスプレイインタフェース1218、およびユーザ入力アダプタ1220)の各々またはいずれかの1つ、2つ、または3つ、4つ、またはそれ以上を含む。代替的にまたは追加的に、いくつかの実施の形態では、クライアントデバイス1210は、プロセッサ1212を含む処理システム、メモリデバイス1214を含むメモリまたはストレージシステム、およびネットワークインタフェースデバイス1216を含むネットワークインタフェースシステムのうちの1つまたは複数を含む。
【0107】
クライアントデバイス1210は様々な実施の形態において、多くの異なる方法で構成されうる。単なる一例として、クライアントデバイス1210は、プロセッサ1212が:マルチ(または単一)コアプロセッサと、第1ネットワークインタフェースデバイス(これは例えばWiFiやブルートゥースやNFCなどで実装される)と、1つ以上のセルラ通信技術(例えば3G、4G LTE、CDMAなど)を実施する第2ネットワークインタフェースデバイスと、メモリまたはストレージデバイス(例えばRAM、フラッシュメモリ、またはハードディスク)と、を含むように構成されうる。プロセッサ、第一のネットワークインタフェースデバイス、第二のネットワークインタフェースデバイス、およびメモリデバイスは、同一のSOC(例えば1つの集積回路チップ)の一部として統合されうる。別の例として、クライアントデバイス1210は、プロセッサ1212が2、3、4、5つ、またはそれより多いマルチコアプロセッサを含み、ネットワークインタフェースデバイス1216がEthernetを実施する第一のネットワークインタフェースデバイスとWiFiおよび/またはBluetoothを実施する第二のネットワークインタフェースデバイスとを含み、並びにメモリデバイス1214がRAMおよびフラッシュメモリもしくはハードディスクを含むよう構成されうる。
【0108】
サーバシステム1200は、図2のサーバシステム220のソフトウエア要素を実装するために用いられる種々のハードウエアコンポーネントを備える。いくつかの実施の形態では、サーバシステム1200(これは本明細書において「サーバデバイス」とも称される)は、1つまたは複数のプロセッサ1202、1つまたは複数のメモリデバイス1204および1つまたは複数のネットワークインタフェースデバイス1206のうちの1つまたは複数を含む。以下で説明するように、これらの要素(例えば、プロセッサ1202、メモリデバイス1204、ネットワークインタフェースデバイス1206)は、サーバシステム1200の様々な異なる機能を実行するように構成されたハードウエアデバイス(例えば、電子回路または回路の組合せ)である。
【0109】
いくつかの実施の形態では、プロセッサ1202の各々またはいずれかは、例えば、シングルコアまたはマルチコアプロセッサ、マイクロプロセッサ(例えば、中央処理装置またはCPUと呼ばれ得る)、デジタル信号プロセッサ(DSP)、DSPコアに関連するマイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)回路、またはシステムオンチップ(SOC)(例えば、CPUと、メモリ、ネットワーキングインタフェースなどの他のハードウエア構成要素とを含む集積回路)であるか、またはそれらを含む。および/または、いくつかの実施の形態では、プロセッサ1202のそれぞれまたはいずれかは、x86またはARM(Advanced RISC Machine)などのインストラクションセットアーキテクチャを使用する。
【0110】
いくつかの実施の形態では、メモリデバイス1204の各々またはいずれかは、ランダムアクセスメモリ(RAM)(ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)など)、フラッシュメモリ(例えば、NANDまたはNOR技術に基づく)、ハードディスク、光磁気媒体、光媒体、キャッシュメモリ、レジスタ(例えば、インストラクションを保持する)、またはデータおよび/またはインストラクションの揮発性または不揮発性保持を実行する他のタイプのデバイス(例えば、プロセッサ1202上でまたはプロセッサ402によって実行されるソフトウエア)であるか、またはそれらを含む。メモリデバイス1204は、不揮発性コンピュータ可読保持媒体の例である。
【0111】
いくつかの実施の形態では、ネットワークインタフェースデバイス1206のそれぞれまたはいずれかは、1つまたは複数の回路(ベースバンドプロセッサおよび/または有線または無線トランシーバなど)を含み、1つまたは複数の有線通信技術(イーサネット(IEEE 802.3)など)および/または無線通信技術(ブルートゥース、WiFi(IEEE 802.11)、GSM、CDMA2000、UMTS、LTE、LTE-Advanced(LTE-A)、および/または他の短距離、中距離、および/または長距離無線通信技術など)のためのレイヤ1、レイヤ2、および/またはより高次のレイヤを実装する。トランシーバは、送信機および受信機のための回路を備えることができる。送信機および受信機は共通の筐体を共有することができ、送信および受信を実行するために筐体内の回路のいくつかまたはすべてを共有することができる。いくつかの実施の形態では、トランシーバの送信機および受信機は、いかなる共通の回路も共有しなくてもよく、および/または同じまたは別個のハウジング内にあってもよい。
【0112】
様々な実施の形態では、サーバシステム1200は、上述の要素(例えば、プロセッサ1202、メモリデバイス1204、ネットワークインタフェースデバイス1206)の各々またはいずれかの1つ、2つ、または3つ、4つ、またはそれ以上を含む。代替的にまたは追加的に、いくつかの実施の形態では、サーバシステム1200は、プロセッサ1202を含む処理システム、メモリデバイス1204を含むメモリまたはストレージシステム、およびネットワークインタフェースデバイス1206を含むネットワークインタフェースシステムのうちの1つまたは複数を含む。
【0113】
サーバシステム1200は様々な実施の形態において、多くの異なる方法で構成されうる。単なる一例として、サーバシステム1200は、プロセッサ1202が:マルチ(または単一)コアプロセッサと、第1ネットワークインタフェースデバイス(これは例えばWiFiやブルートゥースやNFCなどで実装される)と、1つ以上のセルラ通信技術(例えば3G、4G LTE、CDMAなど)を実施する第2ネットワークインタフェースデバイスと、メモリまたはストレージデバイス(例えばRAM、フラッシュメモリ、またはハードディスク)と、を含むように構成されうる。プロセッサ、第一のネットワークインタフェースデバイス、第二のネットワークインタフェースデバイス、およびメモリデバイスは、同一のSOC(例えば1つの集積回路チップ)の一部として統合されうる。別の例として、サーバシステム1200は、プロセッサ1202が2、3、4、5つ、またはそれより多いマルチコアプロセッサを含み、ネットワークインタフェースデバイス1206がEthernetを実施する第一のネットワークインタフェースデバイスとWiFiおよび/またはBluetoothを実施する第二のネットワークインタフェースデバイスとを含み、並びにメモリデバイス1204がRAMおよびフラッシュメモリもしくはハードディスクを含むよう構成されうる。
【0114】
既述の通り、ソフトウェアモジュールまたはソフトウェアプロセスが任意の動作を実行すると本書で記載されている場合はいつでも、当該動作は実際は、当該ソフトウェアモジュールを備えるインストラクションに従い基礎となるハードウェアエレメントによって実行される。前述と一致して、種々の実施の形態では、クライアントデバイス210やサーバシステム220のそれぞれは、この段落の残りの部分において明確性のために個々に「コンポーネント」と呼ばれるが、それらのコンポーネントのそれぞれまたは任意の組み合せは、図7のクライアントデバイス1210やサーバシステム1200の例を使用して実装される。そのような実施の形態では、各コンポーネントに対して以下が適用される:(a)図7に示すクライアントデバイス1210の要素(すなわち、1つ以上のプロセッサ1212、1つ以上のメモリデバイス1214、1つ以上のネットワークインタフェースデバイス1216、1つ以上のディスプレイインタフェース1218、および1つ以上のユーザ入力アダプタ1220)およびサーバシステム1200の要素(すなわち、ひとつ以上のプロセッサ1202、ひとつ以上のメモリデバイス1204、ひとつ以上のネットワークインタフェースデバイス1206)、または前述のものの適切な組み合わせもしくは部分集合は、コンポーネントによっておよび/またはコンポーネント内に含まれるとして本明細書で説明される任意のソフトウェアモジュールによって実行されるとして本明細書で説明される動作、行動、もしくは特徴のそれぞれもしくは任意の組み合わせを実施するように構成され、適応され、および/またはプログラムされる、(b)代替的または付加的に、1つ以上のソフトウェアモジュールがコンポーネント内に存在すると本明細書で説明される範囲で、いくつかの実施形態では、(ソフトウェアモジュールによって扱われおよび/または使用されるとして本明細書で説明された任意のデータとともに)そのようなソフトウェアモジュールは対応するメモリデバイス(例えば様々な実施形態では、RAMのような揮発性メモリデバイス、命令レジスタ、および/またはフラッシュメモリもしくはハードディスクのような不揮発メモリデバイス)に格納され、ソフトウェアモジュールによって行われるとして本明細書で説明される全ての動作は、クライアントデバイス1210またはサーバシステム1200の中および/またはそれに接続される他の要素と適切に連動する対応するプロセッサによって実行される、(c)代替的または付加的に、コンポーネントはデータを処理し、および/またはさもなければ扱うと本明細書で説明される範囲で、いくつかの実施形態では、そのようなデータは、対応するメモリデバイス(例えばいくつかの実施形態では、RAMのような揮発性メモリデバイスおよび/またはフラッシュメモリもしくはハードディスクのような不揮発メモリデバイス)に格納され、および/またはクライアントデバイス1210またはサーバシステム1200の中にあるかおよび/またはそれに接続される他の要素と適切に連携する対応するプロセッサによって処理され/扱われる、(d)代替的または付加的に、いくつかの実施形態では、対応するメモリデバイスは、対応するプロセッサによって実行される場合に、当該プロセッサに、コンポーネントによっておよび/またはコンポーネント内に含まれるとして本明細書で説明された任意のソフトウェアモジュールによって実行されるとして本明細書で説明された動作のそれぞれまたは任意の組み合わせを、クライアントデバイス1210やサーバシステム1200の中のおよび/またはそれに接続された他の要素と適宜連携して、実行させる命令を格納する。
【0115】
図7に示され、上記で説明されたハードウエア構成は例として提供され、本明細書で説明された主題は様々な異なるハードウエアアーキテクチャおよび要素と併せて利用され得る。例えば、本明細書の多くの図では、個々の機能/アクションブロックが示され;様々な実施の形態では、これらのブロックの機能は(a)個々のハードウエア回路を使用して、(b)記載された機能/アクションを実行するように特に構成された特定用途向け集積回路(ASIC)を使用して、(c)記載された機能/アクションを実行するように特に構成された1つまたは複数のデジタル信号プロセッサ(DSP)を使用して、(d)図7を参照して上述したハードウエア構成を使用して、(e)他のハードウエア構成、アーキテクチャ、および構成を介して、および/または(a)~(e)に記載された技術の組み合わせを介して、実装され得る。
説明された主題の技術的利点
【0116】
本明細書で説明される技術は注文データの効率的な記憶および処理を可能にし、情報を表示し、ユーザと対話するシステムの能力を改善する。特に、システムは大量の注文データ要素を処理し、システムによって管理されるデータベースに効率的に格納することができ、その結果、そのデータを使用してユーザインタフェースを生成することができる。その際、システムは、データを提示する表示の高速かつ効率的な生成に使用される理解可能なコンポーネントにデータを分解することによって、大量のデータを効率的に保存し、編成し、管理する。
【0117】
したがって、システムによって生成された結果物としてのユーザインタフェースは、見やすい方法で情報を提供する。特に、ユーザインタフェースは、親注文と子注文との間の関係を示す注文データのグラフィカル表示を提供する。ユーザインタフェースは、関連する子注文が強調表示され得るように、個々の親注文を選択することによって、ユーザがディスプレイを操作することを可能にする。したがって、グラフィカルユーザインタフェースは、注文データ自体を見るよりもはるかに理解しやすくアクセスしやすい方法で注文データを提示する。さらに、グラフィカルユーザインタフェースは注文情報を表示するための特定の方法を提供し、その結果、ユーザインタフェースが改善される。したがって、この技術はまた、ソフトウエアユーザインタフェースの技術分野における改善を提供し、ユーザと対話するシステムの能力を改善するインタフェースを生成する。
選択された定義
【0118】
本書面では、「いくつかの実施形態」、「様々な実施形態」、「特定の実施形態」、「特定の例示的な実施形態」、「いくつかの例示的な実施形態」、「例示的な実施形態」に所定のアイテムが示されることが説明されるときはいつでも、または任意の他の類似の言葉が用いられるときはいつでも、所与のアイテムは少なくとも1つの実施形態に示されてはいるが、全ての実施形態に示される必要はないことは理解されたい。上述と整合して、本書では、動作が実行され「てもよく」、「ることができ」、もしくは「うる」ことと、機能、エレメント、もしくは構成要素が所与のコンテキストに含まれ「てもよく」、「ることができ」、もしくは「うる」、または適用可能なことと、所与のアイテムが所与の特性を有し「てもよく」、「ることができ」、もしくは「うる」こととが説明されるときはいつでも、または「~てもよい」、「~できる」もしくは「~しうる」という用語を含む任意の類似の語句が使用されるときはいつでも、所与の動作、特徴、エレメント、構成要素、特性、などが少なくとも1つの実施形態に示されているが、全ての実施形態に示される必要はないことが理解されたい。本書で使用される用語と語句、およびそれらの変形は、特に明記しない限り、限定的ではなく包含的に解釈されるべきである。先の例としては、「および/または」は、関連して挙げられたアイテムのうちの1つ以上の任意のまたは全ての組み合わせ(例えば、aおよび/またはbは、a、b、またはaとbを意味する)を含み、単数形「a」、「an」および「the」は「少なくとも1の」、「1つ以上の」、または類似のものを意味するとして読まれるべきであり、「例」という用語は議論中の主題の例を提供するためにもちいられるがそれの網羅的なものでも限定的リストでもなく、「備える」と「含む」(および他の活用とそれらの他の変形)は関連する挙げられたアイテムの存在を特定するが、1つ以上の他のアイテムの存在または追加を排除するものではなく、アイテムが「随意に(optional)」と説明される場合、そのような説明は他のアイテムが随意ではないことを示すものと理解されるべきではない。
【0119】
本明細書で使用されるように、「非一時的のコンピュータ可読ストレージ媒体」は、レジスタ、キャッシュメモリ、ROM、(D-RAM、S-RAM、または他のRAMのような)半導体メモリ装置、フラッシュメモリといった磁気記録媒体、ハードディスク、光磁気記録媒体、CD-ROM、DVD、もしくはBlu-Rayディスクといった光学記録媒体、または非一時的の電子データストレージのための他のタイプの装置、を含む。「非一時的のコンピュータ可読ストレージ媒体」は一時的な伝搬する電磁信号は含まない。
<説明された主題のさらなる応用>
【0120】
本明細書ではウェブアプリケーションを数多く参照するが、本明細書で説明される特徴はクライアントシステム上でバイナリとして展開/インストールされるアプリケーションなどの他のタイプのアプリケーションのコンテキストで、様々な実施の形態で使用することもできることを理解されたい。
【0121】
本明細書では「証券」および「金融商品」の取引について多数の言及がなされているが、本明細書で説明される特徴はあらゆる種類の証券(株式、デリバティブ、オプションなど)、先物、ファイト通貨、暗号資産(暗号通貨およびトークンを含む)を含むが、これらに限定されない、あらゆる種類の市場で取引することができるあらゆる種類の資産または金融商品に関して使用することができることを理解されたい。
【0122】
限定的でなく図1から図7を参照して含まれるような処理ステップ、アルゴリズムあるいはその類が特定の順序で記載またはクレームされている場合があるが、このような処理は、異なる順序で動作するように構成設定することができる。換言すれば、本明細書で明示されるかクレームされるいかなるシーケンスあるいはステップの順序も、そのステップがその順序で実行される必要性を示すものでは必ずしもなく、本明細書で説明される処理ステップは任意の可能な順序で実行されてもよい。また、いくつかのステップは、非同時的に発生するように記載されているあるいは暗示されているが(例えば、あるステップは、他のステップの後に記載されているからである)、同時に(または並行して)実行されうる。さらに、図面における図示による処理の説明は、図示される処理が他の変形や変更について排他的であることを暗示しているのではなく、また、図示される処理あるいはその任意のステップが必要であることを暗示しているのではなく、また、図示される処理が好ましいことを暗示しているのでもない。
【0123】
様々な実施形態が詳細に示され、説明されたが、請求項は特定の実施形態または例の何れにも限定されない。上記の説明の何れもが、任意の特定のエレメント、ステップ、範囲、または機能が必要不可欠であることを暗示するとして読まれるべきではない。上述の実施の形態の要素に対する構造的および機能的等価物のうち当業者に既知のものは全て、明示的に本明細書に参照により組み入れられており、包含されることが意図されている。さらに、本発明に包含されるために、デバイスや方法が、本発明により解決されるべきおのおの全ての課題を指向する必要はない。本書の実施形態、特徴、構成要素、コンポーネント、またはステップは、公に供することを意図されていない。
図1A
図1B
図2
図3
図4
図5A
図5B
図6A
図6B
図7