JP2020504867A - System and method for aggregating, filtering, and presenting streaming data - Google Patents

System and method for aggregating, filtering, and presenting streaming data Download PDF

Info

Publication number
JP2020504867A
JP2020504867A JP2019531996A JP2019531996A JP2020504867A JP 2020504867 A JP2020504867 A JP 2020504867A JP 2019531996 A JP2019531996 A JP 2019531996A JP 2019531996 A JP2019531996 A JP 2019531996A JP 2020504867 A JP2020504867 A JP 2020504867A
Authority
JP
Japan
Prior art keywords
data
client
streaming data
snapshot
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019531996A
Other languages
Japanese (ja)
Other versions
JP7048614B2 (en
Inventor
スレイビン,イリア
レッグ,マシュー・アリステア
アルパート,リード
トム,ジョナサン・ブイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JPMorgan Chase Bank NA
Original Assignee
JPMorgan Chase Bank NA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/378,501 external-priority patent/US10657137B2/en
Application filed by JPMorgan Chase Bank NA filed Critical JPMorgan Chase Bank NA
Publication of JP2020504867A publication Critical patent/JP2020504867A/en
Application granted granted Critical
Publication of JP7048614B2 publication Critical patent/JP7048614B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries

Abstract

ストリーミングデータを集約し、フィルタリングし、提示するためのシステムおよび方法が開示される。一実施形態において、ストリーミングデータを提示するための方法は、(1)少なくとも1つのコンピュータプロセッサを含むサーバのためのウェブサービス層において、複数のパラメータを含むクエリをクライアントから受信することを含み、(2)少なくとも1つの予め規定されたストリーミングデータソースからストリーミングデータを受信するサーバのためのデータキャッシング層を含み、(3)データキャッシング層は複数のパラメータのそれぞれについてストリーミングデータを融合し、(4)データキャッシング層は融合されたデータを集約し、(5)データキャッシング層は、融合されたデータに対してクエリを同時に実行することによって、融合されたデータのスナップショットを生成し、(6)スナップショットをクライアントに出力することを含むことができる。Disclosed are systems and methods for aggregating, filtering, and presenting streaming data. In one embodiment, a method for presenting streaming data includes: (1) receiving, from a client, a query including a plurality of parameters at a web services layer for a server including at least one computer processor; 2) including a data caching layer for a server that receives streaming data from at least one predefined streaming data source; (3) the data caching layer fuses the streaming data for each of the plurality of parameters; The data caching layer aggregates the fused data, (5) the data caching layer generates a snapshot of the fused data by concurrently executing queries on the fused data, and (6) snaps. Shots It may include outputting the Ant.

Description

[0001]本開示は、概して、ストリーミングデータを集約し、フィルタリングし、提示するためのシステムおよび方法に関する。   [0001] The present disclosure relates generally to systems and methods for aggregating, filtering, and presenting streaming data.

[0002]パブリッククラウドおよびプライベートクラウドは共に、益々一般的なコンピューティング環境になってきている。しかしながら、これらの環境は、ホストシステムとリモートオペレーティングシステムとの間の可変するレイテンシによって、ストリーミングデータをサポートしない。さらに、テラバイトものストリーミング市場データを種々のクラウド内にプッシュする(転送する)コストは、プロバイダからの非常に高い「トランジット(transit)」料を招くので、データ駆動型アプリケーションのためにクラウドを使用する提供価値(value proposition)を減少させる。   [0002] Both public and private clouds are becoming increasingly common computing environments. However, these environments do not support streaming data due to variable latency between the host system and the remote operating system. In addition, the cost of pushing (transferring) as much as terabytes of streaming market data into various clouds incurs very high “transit” charges from providers, thus using the cloud for data-driven applications. Decrease value proposal.

[0003]ストリーミングデータを集約し、フィルタリングし、提示するためのシステムおよび方法が開示される。一実施形態において、ストリーミングデータを提示するための方法は、(1)少なくとも1つのコンピュータプロセッサを含むサーバのためのウェブサービス層において、複数のパラメータを含むクエリをクライアントから受信することを含み、(2)サーバのためのデータキャッシング層は少なくとも1つの予め規定されたストリーミングデータソースからストリーミングデータを受信し、(3)データキャッシング層は複数のパラメータのそれぞれについてストリーミングデータを融合し、(4)データキャッシング層は融合されたデータを集約し、(5)データキャッシング層は、融合されたデータに対してクエリを同時に実行することによって、融合されたデータのスナップショットを生成し、(6)スナップショットをクライアントに出力することを含むことができる。   [0003] Systems and methods for aggregating, filtering, and presenting streaming data are disclosed. In one embodiment, a method for presenting streaming data comprises: (1) receiving a query including a plurality of parameters from a client at a web services layer for a server including at least one computer processor; 2) the data caching layer for the server receives the streaming data from at least one predefined streaming data source; (3) the data caching layer fuses the streaming data for each of the plurality of parameters; The caching layer aggregates the fused data, (5) the data caching layer generates a snapshot of the fused data by simultaneously executing a query on the fused data, and (6) the snapshot. The client It may include outputting the.

[0004]一実施形態において、パラメータは、証券および投資の少なくとも一方のための特定の記述子を含むことができる。
[0005]一実施形態において、クエリは、ストリーミングデータソースの識別情報を更に含むことができる。
[0004] In one embodiment, the parameters may include specific descriptors for securities and / or investments.
[0005] In one embodiment, the query may further include the identity of the streaming data source.

[0006]一実施形態において、ストリーミングデータは市場データを含むことができる。
[0007]一実施形態において、ウェブサービス層は、所定の時間量だけ遅延されるスナップショットを出力することができ、期間は、ストリーミングデータに関連する1つまたは複数のルールに基づく。
[0006] In one embodiment, the streaming data may include market data.
[0007] In one embodiment, the web services layer may output a snapshot that is delayed by a predetermined amount of time, wherein the time period is based on one or more rules associated with the streaming data.

[0008]一実施形態において、方法は、サーバのためのエンタイトルメントサービス層が、クエリに応答してクライアントが情報にアクセスすることが承認されることを検証するステップを更に含むことができる。   [0008] In one embodiment, the method may further include the step of the entitlement service layer for the server verifying that the client is authorized to access the information in response to the query.

[0009]一実施形態において、方法は、クライアントから受信される少なくとも1つのクライアントクレデンシャルに基づいてクライアントを認証するステップを更に含むことができる。   [0009] In one embodiment, the method may further include authenticating the client based on at least one client credential received from the client.

[0010]一実施形態において、スナップショットは、或る時間の間、証券および投資の少なくとも一方について正確であり得る。
[0011]一実施形態において、スナップショットは、或る時間の間、証券および投資の少なくとも一方について適切な状態を含むことができる。
[0010] In one embodiment, the snapshot may be accurate for securities and / or investments for a period of time.
[0011] In one embodiment, the snapshot may include appropriate states for securities and / or investments for a period of time.

[0012]別の実施形態によれば、ストリーミングデータを提示するためのシステムは、複数のストリーミングデータソースと、各ストリーミングデータソースのためのデータローダであって、ストリーミングデータソースからストリーミングデータを受信する、データローダと、データローダからストリーミングデータを受信するデータキャッシング層と、データキャッシング層と通信状態にある少なくとも1つのコンピュータプロセッサを含むウェブサービス層とを含むことができる。ウェブサービス層は複数のパラメータを含むクエリをクライアントから受信することができ、データキャッシング層は複数のパラメータのそれぞれについてストリーミングデータを融合(conflate)することができ、データキャッシング層は融合されたデータを集約することができ、データキャッシング層は、融合されたデータに対してクエリを同時に実行することによって、融合されたデータのスナップショットを生成することができ、スナップショットをクライアントに出力することができる。   [0012] According to another embodiment, a system for presenting streaming data is a plurality of streaming data sources and a data loader for each streaming data source for receiving streaming data from the streaming data sources. , A data loader, a data caching layer receiving streaming data from the data loader, and a web services layer including at least one computer processor in communication with the data caching layer. The web service layer may receive a query including a plurality of parameters from the client, the data caching layer may consolidate the streaming data for each of the plurality of parameters, and the data caching layer may consolidate the merged data. Can be aggregated and the data caching layer can generate a snapshot of the fused data by executing queries on the fused data simultaneously and output the snapshot to the client .

[0013]一実施形態において、パラメータは、証券および投資の少なくとも一方のための特定の記述子を含むことができる。
[0014]一実施形態において、クエリは、ストリーミングデータソースの識別情報を含むことができる。
[0013] In one embodiment, the parameters may include specific descriptors for securities and / or investments.
[0014] In one embodiment, the query may include the identity of the streaming data source.

[0015]一実施形態において、ストリーミングデータは市場データを含むことができる。
[0016]一実施形態において、ウェブサービス層は、所定の時間量だけ遅延されるスナップショットを出力することができる。
[0015] In one embodiment, the streaming data may include market data.
[0016] In one embodiment, the web services layer can output a snapshot that is delayed by a predetermined amount of time.

[0017]一実施形態において、期間は、ストリーミングデータに関連する1つまたは複数のルールに基づくことができる。
[0018]一実施形態において、クエリを、クラウドアプリケーションおよびローカルアプリケーションの少なくとも一方から受信することができる。
[0017] In one embodiment, the time period may be based on one or more rules associated with the streaming data.
[0018] In one embodiment, the query may be received from at least one of a cloud application and a local application.

[0019]一実施形態において、システムは、クエリに応答してクライアントが情報にアクセスすることが承認されることを検証するサーバのためのエンタイトルメントサービス層を更に含むことができる。エンタイトルメントサービス層は、クライアントから受信される少なくとも1つのクライアントクレデンシャルに基づいてクライアントを更に認証することができる。   [0019] In one embodiment, the system may further include an entitlement service layer for the server that verifies that the client is authorized to access the information in response to the query. The entitlement service layer may further authenticate the client based on at least one client credential received from the client.

[0020]一実施形態において、スナップショットは、或る時間の間、証券および投資の少なくとも一方について正確であり得る。
[0021]一実施形態において、スナップショットは、或る時間の間、証券および投資の少なくとも一方について適切な状態を示すことができる。
[0020] In one embodiment, the snapshot may be accurate for securities and / or investments for a period of time.
[0021] In one embodiment, the snapshot may indicate an appropriate state for securities and / or investments for a period of time.

[0022]本発明、本発明の目的および利点のより完全な理解のために、添付図面と併せて、以下の説明に対してここで参照が行われる。   [0022] For a more complete understanding of the present invention, its objects and advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings.

[0023]一実施形態によるストリーミングデータを、集約し、フィルタリングし、提示するためのシステムを示す図である。[0023] FIG. 3 illustrates a system for aggregating, filtering, and presenting streaming data according to one embodiment. [0024]一実施形態によるストリーミングデータを、集約し、フィルタリングし、提示するための方法を示す図である。[0024] FIG. 9 illustrates a method for aggregating, filtering, and presenting streaming data according to one embodiment. [0025]一実施形態に従って提供される戦略的フローを示す図である。[0025] FIG. 7 illustrates a strategic flow provided in accordance with one embodiment. [0026]一実施形態による例示的なプロセスフローである。6 is an exemplary process flow according to one embodiment.

[0027]本発明の幾つかの実施形態及びそれらの利点は、図1〜4を参照することによって理解することができる。
[0028]実施形態は、ストリーミングデータを、集約し、フィルタリングし、提示するためのシステムおよび方法を対象とする。
[0027] Some embodiments of the present invention and their advantages can be understood by reference to FIGS.
[0028] Embodiments are directed to systems and methods for aggregating, filtering, and presenting streaming data.

[0029]一実施形態において、内部および外部ソースからのデータを、高速データ集約エンジン内にプッシュすることができる。クライアントは、簡単なウェブサービス要求を行い、クライアントのクレデンシャル、情報のソース、および要求される情報のリストを指定することができる。例えば、金融機関において、クライアントは証券およびフィールドのリストを提出することができる。クライアントは、その後、クライアントが必要とする情報を有する単一応答を受信する。これにより、全てのアプリケーションがサポートする必要のある高速ストリーム管理、ならびに要求されるインフラストラクチャーおよび開発が低減されまたはなくなる。   [0029] In one embodiment, data from internal and external sources can be pushed into the high speed data aggregation engine. The client can make a simple web service request and specify the client's credentials, source of information, and a list of requested information. For example, at a financial institution, a client may submit a list of securities and fields. The client then receives a single response with the information needed by the client. This reduces or eliminates the high-speed stream management that all applications need to support, as well as the required infrastructure and development.

[0030]一実施形態において、任意の適した集約エンジンを、必要に応じておよび/または所望に応じて使用することができる。一実施形態において、集約エンジンは、データペイロード内の個々のフィールドに対する構造化クエリ言語(「SQL:Structured Query Language」)スタイルコンテンツフィルタリングを可能にし、広範囲な製品に対しほぼリアルタイムの分析を可能にすることができる。   [0030] In one embodiment, any suitable aggregation engine may be used as needed and / or desired. In one embodiment, the aggregation engine enables Structured Query Language ("SQL") style content filtering on individual fields within the data payload, allowing near real-time analysis for a wide range of products. be able to.

[0031]実施形態は、以下のものの一部または全てを提供することができる。以下のものとは、(1)より低いデータトランジットコストによるクラウドベースアプリケーションの価格優位性の増加;(2)データ駆動型アプリケーションのためのインフラストラクチャー要件の減少および短い開発サイクルによる、技術コストの大幅低減;(3)スプレッドシートを用いたAPIおよび統合の簡略化による、より代替可能な開発者労働力;(4)異種ソースにわたる高度コンテンツフィルタリングは、過去において法外なコストがかかったリアルタイムアプリケーションフィーチャーの開発を可能にする;(5)外部および内部データのマージングによる分散分析の促進;および(6)データのコストを下げるために、リアルタイムにそのデータを必要としない個人についてリアルタイムデータの送出を経時変化させるまたは遅延させる能力である。他の利益も同様に提供することができる。   [0031] Embodiments may provide some or all of the following: These include: (1) increased price advantage of cloud-based applications due to lower data transit costs; (2) significant increase in technology costs due to reduced infrastructure requirements and shorter development cycles for data-driven applications. (3) more replaceable developer workforce through simplification of APIs and integration using spreadsheets; (4) advanced content filtering across disparate sources has been cost prohibitive in the past for real-time application features (5) facilitate analysis of variance by merging external and internal data; and (6) reduce the cost of data by sending real-time data to individuals who do not need it in real time. Change Or the ability to delay. Other benefits can be provided as well.

[0032]金融業界において、市場データおよびメッセージングは大量のデータを伴うため、クライアントは、ティッカープラント(ticker plant)から出てくるペイロードを扱うことに関連付けられるかなりの作業を行うことが予想される。クライアントは、しばしば、大量の情報に関連するハードウェアおよびソフトウェアの課題を扱い、ユーザが利益を引出すために情報を融合し、ポートフォリオ管理をサポートするために多くのスレッドおよびシステムにわたって集約すること等を行う必要がある。実施形態では、エンドユーザおよび開発者にフィルタリングとのインターフェースを与えながら、これらの課題や他の課題に対処する。   [0032] In the financial industry, because market data and messaging involve large amounts of data, clients are expected to perform considerable work associated with handling payloads emanating from a ticker plant. Clients often deal with hardware and software issues related to large amounts of information, such as allowing users to fuse information to profit, aggregate across many threads and systems to support portfolio management, etc. There is a need to do. Embodiments address these and other issues while providing end users and developers with an interface to filtering.

[0033]図1を参照すると、ストリーミングデータを集約し、フィルタリングし、提示するためのシステムが一実施形態に従って開示される。システム100は、複数のクライアントアクセスポイント110、ウェブサービス層120、データキャッシング層130、データローダ140、140・・・、140、およびデータソース150、150・・・、150を含むことができる。データソース150は、インターネット等の1つまたは複数のストリーミングデータソースからのデータ、および、外部市場データ、業界ニュース等を受信することができる。 [0033] Referring to FIG. 1, a system for aggregating, filtering, and presenting streaming data is disclosed in accordance with one embodiment. System 100 includes a plurality of client access points 110, web service layer 120, a data caching layer 130, the data loader 140 1, 140 2, ..., 140 n, and data sources 150 1, 150 2, ..., a 150 n Can be included. Data source 150 may receive data from one or more streaming data sources, such as the Internet, as well as external market data, industry news, and the like.

[0034]3つのデータローダ140およびデータソース150が図1に示されるが、より多くのまたはより少ない数のデータローダ140およびデータソース150を、必要に応じておよび/または所望に応じて設けることができることが認識されるべきである。   [0034] Although three data loaders 140 and data sources 150 are shown in FIG. 1, more or fewer data loaders 140 and data sources 150 may be provided as needed and / or desired. It should be recognized that

[0035]データローダ140はデータソース150からデータを受信することができる。一実施形態において、各データローダ140は、1つまたは複数のデータソース150からデータキャッシング層130内にストリーミングデータを「配信する(feed)」ことができる。各データローダ140は、ウェブサービス層120と更に通信状態にあることができる。例えば、各データローダ140は、コントロールプレーンサービス126と通信することができ、コントロールプレーンサービス126は、新しいサブスクリプションを作成すること、失敗にリトライすること、等を1つまたは複数のデータローダ140に指令することができる。   [0035] Data loader 140 may receive data from data source 150. In one embodiment, each data loader 140 can “feed” streaming data from one or more data sources 150 into the data caching layer 130. Each data loader 140 may be in further communication with the web services layer 120. For example, each data loader 140 can communicate with a control plane service 126, which instructs one or more data loaders 140 to create a new subscription, retry a failure, etc. Can be ordered.

[0036]データキャッシング層130は、ウェブサービス層120からの要求にサービスすることができる。一実施形態において、データキャッシング層130は、データベースとメッセージバスの両方として機能することができる。   [0036] The data caching layer 130 may service requests from the web services layer 120. In one embodiment, the data caching layer 130 can function as both a database and a message bus.

[0037]一実施形態において、データキャッシング層130は、また、データをフィルタリングすることができ、要求されたデータの「スナップショット(snapshot)」を提供することができる。   [0037] In one embodiment, the data caching layer 130 may also filter the data and provide a "snapshot" of the requested data.

[0038]適したデータキャッシング層130の例は、60East Technologiesからの高度メッセージ処理システム(AMPS:Advanced Message Processing System)である。   [0038] An example of a suitable data caching layer 130 is an Advanced Message Processing System (AMPS) from 60 East Technologies.

[0039]ウェブサービス層120は1つまたは複数のクライアントアクセスポイント110を使用してクライアントとインターフェースすることができる。一実施形態において、ウェブサービス層は、構成管理サービス122、モニタリングサービス124、コントロールプレーン層126、およびエンタイトルメントサービス128等のサービスを提供することができる。他のサービスを、必要に応じておよび/または所望に応じて設けることができる。   [0039] Web services layer 120 may interface with clients using one or more client access points 110. In one embodiment, the web services layer may provide services such as a configuration management service 122, a monitoring service 124, a control plane layer 126, and an entitlement service 128. Other services can be provided as needed and / or desired.

[0040]一実施形態において、構成管理サービス122は、どんなデータソース150に接続するか、データソース150にどのように接続するか等、1つまたは複数のデータローダ140についての構成データを提供することができる。一実施形態において、構成管理サービス122は、ランタイム構成情報、例えば、データローダ140、ウェブサービス層120、エンタイトルエントサービス128についての接続情報(例えば、ホスト:ポート)、どんなデータフィードをロードするか、どんなウェブ接続をサポートするか(httpまたはhttps)、SSL証明書ロケーション、接続およびスレッドポールサイジング、ロギング間隔、環境(dev/test/prod)等を提供することができる。   [0040] In one embodiment, the configuration management service 122 provides configuration data for one or more data loaders 140, such as what data source 150 to connect to and how to connect to the data source 150. be able to. In one embodiment, the configuration management service 122 loads runtime configuration information, such as data loader 140, web services layer 120, connection information (eg, host: port) for the entitlement service 128, and what data feed to load. , What web connection is supported (http or https), SSL certificate location, connection and thread poll sizing, logging interval, environment (dev / test / prod), etc. can be provided.

[0041]一実施形態において、モニタリングサービス124は、1つまたは複数のデータソース150のステータスをモニタすることができ、データソースが利用可能でなくなる場合、要求を再ルーティングすることができる。   [0041] In one embodiment, the monitoring service 124 can monitor the status of one or more data sources 150 and can re-route requests if the data sources become unavailable.

[0042]コントロールプレーンサービス150は、1つまたは複数のデータローダ140とインターフェースすることができる。一実施形態において、コントロールプレーンサービス150は、サービスの間でディレクティブを渡し、自動化命令(例えば、モニタリングデバイス124は、データローダの失敗に気付き、データ集約層130内でサーバを切換えるようにウェブサービス層120に指令する)とマニュアルディレクティブ(例えば、オペレーションチームは、サービスをオフラインにしたいと思う)の両方を可能にすることができる。   [0042] The control plane service 150 may interface with one or more data loaders 140. In one embodiment, the control plane service 150 passes directives between services, and the automation instructions (eg, the monitoring device 124 notices the failure of the data loader and switches the web service layer to switch the server within the data aggregation layer 130). 120, and manual directives (eg, the operations team would like to take the service offline).

[0043]一実施形態において、エンタイトルメントサービス128は、クライアントが、要求されるデータにアクセスすることを許可されることを検証することができる。
[0044]一実施形態において、クライアントアクセスポイント110は、例えば、クラウドアプリケーション、ローカルアプリケーション、ユーザインターフェース、API等を含むことができる。一実施形態において、クライアントアクセスポイント110は、例えば、クライアントへの出力としてスプレッドシートを提供することができる。
[0043] In one embodiment, the entitlement service 128 may verify that the client is authorized to access the requested data.
[0044] In one embodiment, the client access point 110 may include, for example, a cloud application, a local application, a user interface, an API, etc. In one embodiment, the client access point 110 can provide a spreadsheet, for example, as output to the client.

[0045]一実施形態において、システム100は、クライアントが更新を受信するための「サブスクリプション(subscription)」を提供する能力を含むことができる。一実施形態において、複雑なクエリに対する更新は、クエリを再提出し、1秒に数回、全結果セットを受信するよりもサイズが小さい場合がある。   [0045] In one embodiment, the system 100 may include the ability to provide a "subscription" for clients to receive updates. In one embodiment, updates to a complex query may be smaller than resubmitting the query and receiving the entire result set several times a second.

[0046]図2を参照すると、ストリーミングデータを集約し、フィルタリングし、提示するための方法が一実施形態に従って開示される。
[0047]ステップ210にて、クライアントは、クラウドアプリケーション、ローカルアプリケーション、アップロード等、インターフェースを介して関心のある情報(information of interest)を要求することができる。また、一実施形態において、クライアントは、クレデンシャルを提供し、情報のソースおよび要求される情報のリストを特定することができる。別の実施形態において、機械学習を、過去のクエリに基づいてソースを特定するために使用することができる。
[0046] Referring to FIG. 2, a method for aggregating, filtering, and presenting streaming data is disclosed in accordance with one embodiment.
[0047] At step 210, the client may request information of interest via an interface, such as a cloud application, a local application, an upload, and the like. Also, in one embodiment, the client can provide credentials and identify the source of the information and the list of requested information. In another embodiment, machine learning can be used to identify sources based on past queries.

[0048]一実施形態において、クライアントは、情報を要求するためにウェブサービスプロトコルを使用することができる。ウェブサービスプロトコルは、例えば、情報をフィルタリングするためにSQL様のシンタックスを使用することができる。提出することができる例示的なクエリは、「(/BID//ASK>= (0.05/TRDPRC_1))」であり、「ASKの値で割ったBIDの値がTRDPRC_1の値の5%以上である」ことを意味する。 [0048] In one embodiment, a client may use a web services protocol to request information. Web services protocols can use, for example, SQL-like syntax to filter information. Exemplary queries that may be filed, "(/ BID // ASK> = ( 0.05 * / TRDPRC_1)) " was 5% of the value of the value of BID divided by the value of "ASK is TRDPRC_1 That is all. "

[0049]金融システムにおいて、クエリは、株式、業界、関心領域(field/area of interest)等の識別情報を含むことができる。クエリをフィルター内で使用することができる。   [0049] In a financial system, a query may include identifying information such as stocks, industries, fields / areas of interest, and the like. Queries can be used in filters.

[0050]一実施形態において、要求は(例えば、株式、業界等に対する)サブスクリプションである場合がある。一実施形態において、要求は、各スナップショットが提供される期間または条件を指定することができる。   [0050] In one embodiment, the request may be a subscription (e.g., for a stock, industry, etc.). In one embodiment, the request may specify a period or condition for which each snapshot will be provided.

[0051]ステップ220にて、クライアントが要求されたデータにアクセスすることが承認され得る。一実施形態において、これは、要求された情報に対するアクセスをクライアントが許可されるかどうかを判定するエンタイトルメントチェックを伴うことができる。   [0051] At step 220, the client may be authorized to access the requested data. In one embodiment, this may involve an entitlement check to determine whether the client is allowed access to the requested information.

[0052]一実施形態において、クライアントを、要求の一部として提供することができるクレデンシャルに基づいて更に認証することができる。
[0053]ステップ230にて、要求を、データキャッシング層に提供することができ、データキャッシング層は、ステップ240にて、ストリーミングデータソースから受信したデータをフィルタリングすることができる。また、データキャッシング層は、データを「スナップショットする(snapshot)」、すなわち、特定の時間的瞬間にデータ状態を提供することができる。
[0052] In one embodiment, the client can be further authenticated based on credentials that can be provided as part of the request.
[0053] At step 230, the request may be provided to a data caching layer, which may filter the data received from the streaming data source at step 240. Also, the data caching layer can "snapshot" the data, i.e., provide a data state at a particular moment in time.

[0054]一実施形態において、ビジネスロジックは、クライアントに提示されるデータフィールドの数を低減することができる。
[0055]ステップ250にて、フィルタリングされたデータを融合することができる。例えば、フィルタリングされた2つ以上のソースからのデータを集約することができる。例えば、すぐに、株式は、70.00から70.05に、戻って69.90に、そして、70.01まで価格が変化する場合がある。融合されたソースによって、クライアントは、70.01を受信するだけになる。その理由は、その値が、その時点の終わりに価格の適切な状態であったからである。しかしながら、この値は、特に、Bid及びAsk等の複数のフィールドに関するデータセットについて常に適切なデータポイントであるわけではないため、最終の値ではないであろう。
[0054] In one embodiment, business logic may reduce the number of data fields presented to the client.
[0055] At step 250, the filtered data may be fused. For example, data from more than one filtered source can be aggregated. For example, immediately, a stock may change in price from 70.00 to 70.05, back to 69.90, and then to 70.01. With the fused source, the client will only receive 70.01. The reason is that the value was in the proper state of the price at the end of that time. However, this value will not be the final value, especially since it is not always the appropriate data point for datasets for multiple fields such as Bid and Ask.

[0056]ステップ260にて、データのデータスナップショットを生成することができる。一実施形態において、スナップショットは証券の買い集めのためのものであり、その時点におけるその買い集めにわたって正確である場合がある。例えば、クエリを、順次にではなく、集約されたデータ(例えば、関心のある証券)にわたって同時に実行することができる。   [0056] At step 260, a data snapshot of the data may be generated. In one embodiment, the snapshot is for a security collection and may be accurate over that collection at that time. For example, queries may be performed concurrently over aggregated data (eg, securities of interest) rather than sequentially.

[0057]ステップ270にて、スナップショットを、ウェブアプリケーション、ローカルアプリケーション、API、スプレッドシート等を介してクライアントに出力することができる。   [0057] At step 270, the snapshot can be output to the client via a web application, a local application, an API, a spreadsheet, or the like.

[0058]一実施形態において、スナップショットの送出を、データを「経時変化させる」ために所定の時間量だけ遅延させることができる。例えば、データ送出のためのタイミングは、データを無料で送出することができるかどうか、または、データについて料金が存在するかどうかを判定することができる。全てのクライアントがリアルタイムデータを要求するわけではない;例えば、投資マネージャは見込みクライアントに会うときリアルタイムデータを必要としない場合がある。   [0058] In one embodiment, the delivery of the snapshot may be delayed by a predetermined amount of time to "age" the data. For example, the timing for data transmission can determine whether data can be transmitted free of charge or whether there is a fee for data. Not all clients require real-time data; for example, an investment manager may not need real-time data when meeting a prospective client.

[0059]そのため、一実施形態において、システムは、データおよび/またはデータソースに関連付けられるルールに基づくことができるスナップショットの出力をどれだけ長く遅延させるかを決定することができ、スナップショットを少なくともこの時間量だけ遅延させることができる。一実施形態において、スナップショット内のデータの経時変化の監査証跡(auditable trail)を維持することができる。   [0059] Thus, in one embodiment, the system can determine how long to delay the output of the snapshot, which can be based on the rules associated with the data and / or data sources, and reduce the snapshot by at least This amount of time can be delayed. In one embodiment, an audit trail of the aging of the data in the snapshot may be maintained.

[0060]本明細書で開示される実施形態は、複数のラインオブビジネス(line of Business)が実施する種々のプロセスの仕組みを、問題を解決することに関連するコンテンツから分離することができる。クライアントのポートフォリオにおける種々のロット、取引、送金、買い増し、払い戻し等に起因する変化等のそのコンテンツを、汎用の内部公表データとして扱い、匿名化し、ストリーミングデータを集約し、フィルタリングし、提示するための1つまたは複数のシステム/方法に提供することができる。こうしたシステム/方法の例は、米国特許出願第15/378,501号に開示され、その開示は参照によりその全体が本明細書に組込まれる。   [0060] Embodiments disclosed herein may separate various line of business-implemented process schemes from content related to solving a problem. To treat the content, such as changes resulting from various lots, transactions, remittances, repurchases, refunds, etc., in the client's portfolio as general-purpose internal publication data, anonymize, aggregate, filter and present streaming data To one or more systems / methods. An example of such a system / method is disclosed in U.S. Patent Application No. 15 / 378,501, the disclosure of which is incorporated herein by reference in its entirety.

[0061]複数の実施形態において、種々の施設からの市場データを、ストリーミングデータを集約し、フィルタリングし、提示するための1つまたは複数のシステム/方法の内部で融合することができ、ポートフォリオ情報とマージすることができる。データが幾つかのマージングステージを通るときに、各ロットは、リアルタイム市場データに対して値付けされ、その後、リアルタイム・ポートフォリオ・ビューに集約される。   [0061] In embodiments, market data from various establishments may be fused within one or more systems / methods for aggregating, filtering, and presenting streaming data, and portfolio information. And can be merged. As the data passes through several merging stages, each lot is priced against real-time market data and then aggregated into a real-time portfolio view.

[0062]複数の実施形態において、顧客は、ビジネスに関連する「警報(alert)」を申込むためにカスタムルールエンジンを使用することができる。例えば、システムは、特定の株式が価格閾値に達したとき、特定の所有財産の集中リスクが、予め規定されたレベルを突破するとき、ロットまたはポートフォリオの評価が或るパーセンテージだけ上がる/落ちるとき等に、クライアントに通知を送信することができる。   [0062] In embodiments, a customer may use a custom rules engine to apply for "alerts" related to a business. For example, the system may determine when a particular stock reaches a price threshold, when the concentration risk of a particular property breaks through a predefined level, when a lot or portfolio valuation goes up / down a certain percentage, etc. A notification can be sent to the client.

[0063]図3を参照すると、戦略的フローが一実施形態に従って提供される。戦略的フローは、顧客、金融機関インターフェース、ゲートウェイサービス、1つまたは複数のグラフィカルユーザインターフェース、境界ゲートウェイ、複雑イベントプロセッサ(CEP:Complex Event Processor)エンジン、内部データプラットフォーム(例えば、パブリッシュと消費者との間のセキュアで確実なメッセージングを提供することができる内部データプラットフォーム。OpenMAMA APIを使用してアクセスを提供することができる。)、1つまたは複数の市場データフィード(例えば、NASDAQおよびNYSE市場データを保持するNASDAQBasic。商用フィードハンドラ;OPRA、Pink Sheets、TradeWeb等を使用することができる。)、アノニマイザ、データインジェクタ、証券マスタ、ポートフォリオ管理システム、日中アクティビティモニタ(例えば、日中アクティビティ、オーダー管理システム、及びキャッシュフローシステム)、警報エンジン、および通知プラットフォームを含むことができる。   [0063] Referring to FIG. 3, a strategic flow is provided according to one embodiment. Strategic flows include customer, financial institution interface, gateway service, one or more graphical user interfaces, perimeter gateway, complex event processor (CEP) engine, internal data platform (eg, publishing and consumer interaction) An internal data platform that can provide secure and secure messaging between. It can provide access using the OpenMAMA API.) One or more market data feeds (eg, NASDAQ and NYSE market data NASDAQBasic to hold.Commercial feed handlers: OPRA, Pink Sheets, TradeWeb, etc. can be used.), Anonyma The data injector, securities master, portfolio management system, daytime Activity Monitor (e.g., activity during the day, order management systems, and cash flow system) may include an alarm engine, and notification platform.

[0064]一実施形態において、CEPエンジンは、市場データおよび以下のものの1つまたは複数を要求するアプリケーションについてデータを処理することができる。以下のものとは、(1)高レートストリーミングデータをサポートできない構成にあること;(2)1日に数回価格を要求するだけであるが、それらの価格が非常に小さいヒステリシスを有することを必要とすること;(3)(それぞれが単一シンボルを採用するサブスクリプションをストリーミングすることと対照的に)単一時刻に多数のシンボルを提出する必要があること:(4)幾つかのソース(例えば、Reuters RMDS、ダイレクトフィード(Direct Feed)、内部データ(Internal Data)、LOB市場アナリティクス)からの市場および分析データの集約;または(5)1つまたは複数のフィールドの価値を考慮する動的クエリに対してデータをフィルタリングする能力を必要とする、または、そのコストを下げるために所定の時間だけ遅延された市場データを使用できること、である。   [0064] In one embodiment, the CEP engine may process the data for applications that require market data and one or more of the following. The following are: (1) being in a configuration that cannot support high-rate streaming data; (2) only requiring prices several times a day, but having very little hysteresis. Need; (3) need to submit multiple symbols at a single time (as opposed to streaming subscriptions each employing a single symbol): (4) several sources Aggregation of market and analytics data (eg, Reuters RMDS, Direct Feed, Internal Data, LOB market analytics); or (5) Dynamic consideration of one or more field values You need the ability to filter data for queries, or The market data that is delayed by a predetermined time to reduce the cost of use is.

[0065]一実施形態において、アノニマイザコンポーネントは、CEPエンジンに注入する前にポートフォリオコンテンツからクライアントのアイデンティティを取除くことができる。逆のプロセスは、プロセスが、興味を持っている特定のクライアントのポートフォリオに関連付けられるIDを調べることを可能にする。   [0065] In one embodiment, the anonymizer component can remove the client's identity from the portfolio content before injecting it into the CEP engine. The reverse process allows the process to look up the ID associated with a particular client's portfolio of interest.

[0066]データインジェクタは、1つまたは複数の技術資産に単一インターフェースを提供することができる。データインジェクタは、システム間で参照データ(例えば、シンボロジー)をマッピングし、内部データプラットフォーム(例えば、ポートフォリオ情報を送信する)とCEPエンジン(例えば、関心のある商品がウォッチリストにあることを保証する)の両方と通信することができる。   [0066] A data injector may provide a single interface to one or more technology assets. Data injectors map reference data (eg, symbology) between systems, internal data platforms (eg, send portfolio information) and CEP engines (eg, ensure that the product of interest is on the watchlist). Can communicate with both.

[0067]一実施形態において、ポートフォリオ管理システムは、クライアントの所有財産についてのポートフォリオコンテンツデータのソースであってもよい。ポートフォリオ管理システムは、関心のあるポートフォリオのリフレッシュを毎日発行し、オンデマンドでポートフォリオを発行すると共に、全てのロット/ポートフォリオについて「公式(official)」の1日の始まりの価格を維持することができる。   [0067] In one embodiment, the portfolio management system may be a source of portfolio content data about client property. The portfolio management system can issue daily portfolio refreshes of interest, publish portfolios on demand, and maintain "official" day-of-day prices for all lots / portfolios. .

[0068]一実施形態において、日中アクティビティモニタは、オーダー管理システム、キャッシュフローエンジン等に由来するアクティビティ等のアクティビティをモニタすることができる。日中アクティビティモニタは、評価の変化をリアルタイムに反映するために、1日の始まり以来のポートフォリオ変化としてCEPエンジン内に更新を発行することができる。   [0068] In one embodiment, a daytime activity monitor may monitor activities, such as activities from an order management system, a cash flow engine, and the like. The intraday activity monitor can publish updates in the CEP engine as portfolio changes since the beginning of the day to reflect changes in ratings in real time.

[0069]警報エンジンは、金融機関ウェブサイトからのクライアント指示をCEPエンジンおよび他のバックエンドシステムに対するサブスクリプションに変換することができる。複数日にわたり警報を持続すること、条件が満足されたという信号をCEPエンジンから聞くこと、所望のアクションを実施すること、アクションがとられた警報をディセーブルすること等である。   [0069] The alert engine can translate client instructions from the financial institution website into subscriptions to the CEP engine and other back-end systems. Persisting alerts for multiple days, hearing a signal from the CEP engine that a condition has been met, performing the desired action, disabling the alert upon which an action has been taken, and the like.

[0070]図4は、一実施形態による例示的なプロセスフローを示す。一実施形態において、データソース層は市場データ(例えば、市場データストリーム)を受信することができ、データをデータローダ層に提供することができ、データは、1つまたは複数のデータローダを使用してデータキャッシング層にロードすることができる。CEPエンジンは、データキャッシング層からデータにアクセスすることができ、構成管理、データフィルター処理、モニタリングサービス、コントロールプレーンサービス、エンタイトルメントサービス等を提供することができる。一実施形態において、CEPエンジンは、顧客アクセス層を介してサービスを顧客に提供することができる。   [0070] FIG. 4 illustrates an exemplary process flow according to one embodiment. In one embodiment, a data source layer can receive market data (eg, a market data stream) and provide data to a data loader layer, where the data uses one or more data loaders. Can be loaded into the data caching layer. The CEP engine can access data from the data caching layer and can provide configuration management, data filtering, monitoring services, control plane services, entitlement services, and the like. In one embodiment, the CEP engine can provide services to customers via a customer access layer.

[0071]例
[0072]非制限的な例が以下に提供される。
[0073]データセット1:ダイレクトフィードからの持分金融商品:
[0074] <snapSymbol>JPM.N</snapSymbol>
[0075] <snapStatus>ok</snapStatus>
[0076] <wBidPrice>87.790000</wBidPrice>
[0077] <wBidSize>18</wBidSize>
[0078] <wAskPrice>87.800000</wAskPrice>
[0079] <wAskSize>4</wAskSize>
[0080] <wInstrumentType>Stock</wInstrumentType>
[0081] <wOpenPrice>90.360000</wOpenPrice>
[0082] <wAdjPrevClose>90.070000</wAdjPrevClose>
[0083] <wPrevClosePrice>90.070000</wPrevClosePrice>
[0084] <wBidOpen>90.340000</wBidOpen>
[0085] <wAskOpen>90.400000</wAskOpen>
[0086]商品価格はwBitPriceおよびwAskPriceの平均である。
[0071] Example
[0072] A non-limiting example is provided below.
[0073] Data Set 1: Equity instruments from direct feed:
<SnapSymbol> JPM. N </ snapSymbol>
<SnapStatus> ok </ snapStatus>
<WBidPrice> 87.7900000 <// wBidPrice>
[0077] <wBidSize> 18 <// wBidSize>
<WAskPrice> 87.80000000 <// wAskPrice>
<WAskSize> 4 <// wAskSize>
[0080] <wInstrumentType> Stock </ wInstrumentType>
[0081] <wOpenPrice> 90.360000 </ wOpenPrice>
<WAdjPrevClose> 90.070000 <// wAdjPrevClose>
[0083] <wPrevClosePrice> 90.070000 <// wPrevClosePrice>
[0084] <wBidOpen> 90.3400000 </ wBidOpen>
[0085] <wAskOpen> 90.400000 </ wAskOpen>
[0086] The product price is the average of wBitPrice and wAskPrice.

[0087]データセット2:ダイレクトフィードからの商品先物取引:
[0088] <snapSymbol>CLJ7.NYM</snapSymbol>
[0089] <snapStatus>ok</snapStatus>
[0090] <wIssueSymbol>CLJ7.NYM</wIssueSymbol>
[0091] <wBidHigh>48.620000</wBidHigh>
[0092] <wAskLow>47.400000</wAskLow>
[0093] <wAskPrice>47.410000</wAskPrice>
[0094] <wAskSize>5</wAskSize>
[0095] <wBidPrice>47.390000</wBidPrice>
[0096] <wBidSize>52</wBidSize>
[0097] <wBidLow>47.340000</wBidLow>
[0098] <wAskHigh>48.750000</wAskHigh>
[0099] <wOpenPrice>47.930000</wOpenPrice>
[00100] <wOpenTime>2017−03−21;17:45:27.229603</wOpenTime>
[00101] <wCfiCode>FCMXSX</wCfiCode>
[00102] <wCurrency>USD</wCurrency>
[00103] <wEntryStatus>0</wEntryStatus>
[00104]価格についての同じルールが当てはまる
[00105]データセット3:ベンダーフィードからの公債:
[00106] <snapSymbol>ISIN_USN82008AK46_MODEL.FUSE</snapSymbol>
[00107] <snapStatus>ok</snapStatus>
[00108] <CLIENT_OFFER>0.000000</CLIENT_OFFER>
[00109] <CLIENT_BID>0.000000</CLIENT_BID>
[00110] <POSITION>0.000000</POSITION>
[00111] <COUPON_RATE>2.000000</COUPON_RATE>
[00112] <STRING2>HG−Industrials/Defense/Chemicals</STRING2>
[00113] <MKT_PRICE_2>1000000.000000</MKT_PRICE_2>
[00114] <MKT_PRICE_1>1000000.000000</MKT.PRICE_1>
[00115] <MATURDATE> 15 Sep 2023</MATURDATE>
[00116] <ISIN_BENCHMARK>US912828W556</ISIN_BENCHMARK>
[00117] <CURVE_TYPE>EMEA<CURVE_TYPE>
[00118] <UPDATE_TM>12:31:15.000</UPDATE_TM>
[00119] <lTEM_ID/>
[00120]価格はフィールドMKT_PRICE_1にある
[00121]データセットは同じCEPインスタンス内に存在する必要はない。例えば、データセット1および3は、ポートフォリオビューが作成される同じCEPインスタンス上に存在することができる。データセット2は、インジェスチョン(ingestion)の需要によって別のインスタンス上に存在することができる。
[0087] Data Set 2: Commodity Futures Trading from Direct Feed:
<SnapSymbol> CLJ7. NYM </ snapSymbol>
<SnapStatus> ok </ snapStatus>
<WIssueSymbol> CLJ7. NYM </ wissueSymbol>
[0091] <wBidHigh> 48.620000 </ wBidHigh>
[0092] <wAskLow> 47.400000 </ wAskLow>
[0093] <wAskPrice> 47.4100000 </ wAskPrice>
[0094] <wAskSize> 5 <// wAskSize>
[0095] <wBidPrice> 47.390000 </ wBidPrice>
[0096] <wBidSize> 52 </ wBidSize>
[0097] <wBidLow> 47.3400000 </ wBidLow>
[0098] <wAskHigh> 48.750000 </ wAskHigh>
[0099] <wOpenPrice> 47.930000 </ wOpenPrice>
[00100] <wOpenTime>2017-03-21; 17: 45: 27.2229603 </ wOpenTime>
[00101] <wCfiCode> FCMXSX <// wCfiCode>
[00102] <wCurency> USD </ wCurrency>
[00103] <wEntryStatus> 0 </ wEntryStatus>
[00104] Same rules for price apply
[00105] Dataset 3: Government Bonds from Vendor Feed:
<SnapSymbol> ISIN_USN82008AK46_MODEL. FUSE </ snapSymbol>
[00107] <snapStatus> ok </ snapStatus>
[00108] <CLIENT_OFFER> 0.000000 </ CLIENT_OFFER>
[00109] <CLIENT_BID> 0.000000 </ CLIENT_BID>
[00110] <POSITION> 0.000000 </ POSITION>
[00111] <COUPON_RATE> 2.000000 </ COUPON_RATE>
<STRING2> HG-Industrials / Defense / Chemicals </ STRING2>
[00113] <MKT_PRICE_2> 10000000.0000 </ MKT_PRICE_2>
[00114] <MKT_PRICE_1> 10000000.0000 </ MKT. PRICE_1>
[00115] <MATURDATE> 15 Sep 2023 </ MATURDATE>
[00116] <ISIN_BENCHMARK> US912828W556 <// ISIN_BENCHMARK>
[00117] <CURVE_TYPE> EMEA <CURVE_TYPE>
<UPDATE_TM> 12: 31: 15,000 </ UPDATE_TM>
[00119] <lTEM_ID />
[00120] Price is in field MKT_PRICE_1
[00121] The data sets need not be in the same CEP instance. For example, datasets 1 and 3 can be on the same CEP instance where the portfolio view is created. Dataset 2 can be on another instance depending on the demand of the ingestion.

[00122]例示的なプロファイル設計が提供される。ポートフォリオを、Portfolioと呼ばれる自分自身のテーブルに記憶することができる。
[00123] :
[00124] {
[00125] “portfolio”:“12345”
[00126] “version”:3.2.6,
[00127] “holdings”:[
[00128] {“source”:“Data Set 1”,“security”:“JPM.N”,“weight”:150},
[00129] {“source”:“Data Set 2”,“security”:“CLJ7.NYM”,“weight”:200},
[00130] {“sourse”:“Data Set 3”, “security”:“ISIN_USN82008AK46_MODEL.FUSE”,“weight”:2}
[00131] ]
[00132] }
[00133]例えば、ポートフォリオ値付けは、以下の疑似コードを使用することができる:
[00134]特定のポートフォリオIDについて、
[00135] 各資産識別子について
[00136] 総価格=総価格+(資産重み資産_価格[資産識別子])
[00137] 総価格を返す
[00138]換言すれば、データが変化するにつれて変化することになるポートフォリオのリアルタイム価格を表す単一の値を返すことができる。
[00122] An example profile design is provided. The portfolio can be stored in its own table called Portfolio.
[00123]:
[00124] {
[00125] "portfolio": "12345"
[00126] "version": 3.2.6.
[00127] “holdings”: [
[00128] {"source": "Data Set 1", "security": "JPM.N", "weight": 150},
[00129] {"source": "Data Set 2", "security": "CLJ7.NYM", "weight": 200},
[00130] {"source": "Data Set 3", "security": "ISIN_USN82008AK46_MODEL.FUSE", "weight": 2}
[00131]]
[00132]}
[00133] For example, portfolio pricing may use the following pseudo code:
[00134] For a particular portfolio ID,
[00135] About each asset identifier
[00136] Total price = Total price + (Asset weight * Asset_Price [Asset identifier])
[00137] Returns the total price
[00138] In other words, a single value can be returned that represents the real-time price of the portfolio that will change as the data changes.

[00139]一実施形態において、両方のインスタンスについて規定されたテーブルの4つの層が存在する場合がある。
[00140]第1の層は、市場データ発行者からデータを受信することができる。例えば、ポートフォリオ値付けと商品先物取引の両方について、1データフィード/ソースについて1つのテーブルが存在する場合がある。ポートフォリオ値付けに関して、これらを、「Equity」および「Bond」と名付けることができ、商品先物取引に関して、それを「Comm」と名付けることができる。これらのテーブルは、トランザクションログされず、トランザクションリプリケートもされず、これらのテーブル内のデータの「形状(shape)」は、そのデータソースが規定するいずれかのものである。
[00139] In one embodiment, there may be four layers of tables defined for both instances.
[00140] The first tier may receive data from market data publishers. For example, there may be one table per data feed / source for both portfolio pricing and commodity futures trading. For portfolio pricing, they can be named "Equity" and "Bond", and for commodity futures trading, they can be named "Comm". These tables are neither transaction logged nor transaction replicated, and the "shape" of the data in these tables is whatever the data source defines.

[00141]次の層に、「AllPrices」と呼ぶことができるリプリケートされたテーブルが存在し、全てのソースからの価格データの正規化されたユニオンとして働くことができる。データを、正規化し、Comm、Equity、およびBondテーブルからAllPricesに発行することができる。複数の実施形態において、この情報を、最大データレートを低減するために融合することができる。   [00141] At the next tier, there is a replicated table that can be called "AllPrices" and can act as a normalized union of price data from all sources. Data can be normalized and published to AllPrices from the Comm, Equity, and Bond tables. In embodiments, this information may be fused to reduce the maximum data rate.

[00142]アクションチェーンにおける第1のステップは、基礎にあるデータを解析し、関心のある値を抽出し、可変量にする。値の抽出を、射影表現として指定することができる。例えば、Equityからのメッセージを処理するとき、ライン<Value>prise=(/prise/wBidPrice+/prise/wAskPrice)/2</Value>は、/wBidPriceおよび/wAskPriceの平均を計算し、その結果を可変量{{price}}に置く。   [00142] The first step in the action chain is to analyze the underlying data and extract the values of interest into variable quantities. The extraction of the value can be specified as a projective representation. For example, when processing a message from Equity, the line <Value> price = (/ price / wBidPrice + / price / wAskPrice) / 2 </ Value> calculates the average of / wBidPrice and / wAskPrice and changes the result. Place in quantity {price}.

[00143]アクションの次のステップは、値付けデータのソースを示す「source」フィールドと共に、{{symbol}}および正規化された{{price}}を含む新しいメッセージを発行することである。このメッセージを、AllPricesテーブルに発行することができ、JSONとしてフォーマットすることができる。   [00143] The next step in the action is to issue a new message containing the {symbol} and the normalized {price}, along with a "source" field indicating the source of the pricing data. This message can be issued to the AllPrices table and can be formatted as JSON.

[00144]この時点で、到来する市場データは、正規化され、単一のAllPricesテーブルに変換されている。コンフレーション(conflation)およびリプリケーション(replication)が使用されて、ポートフォリオを値付けするために必要とされる証券価格の全てについての完全なビューをポートフォリオ値付けに与えながら、ポートフォリオ値付けインスタンスが扱わなければならないメッセージの全体量を最小にすることができる。   [00144] At this point, the incoming market data has been normalized and converted into a single AllPrices table. Conflation and replication must be used to handle portfolio pricing instances while giving portfolio pricing a complete view of all of the security prices needed to price a portfolio. The overall amount of messages that must be minimized.

[00145]次に、ポートフォリオを、1証券について1ポートフォリオについて1列を有するテーブル「Portfolio」としてモデル化することができる。ポートフォリオ内の各メッセージは、ポートフォリオID、証券、およびそのポートフォリオ内のその証券の重みを有することができる。このテーブルは、本質的に関心のあるポートフォリオについての入力データであり、システムは、ポートフォリオのコンテンツが調整される、追加される、かつ/または、除去されるときに、ポートフォリオ価格を動的に再計算することができる。   [00145] The portfolio may then be modeled as a table "Portfolio" with one column per portfolio for one security. Each message in a portfolio may have a portfolio ID, a security, and the weight of that security in the portfolio. This table is essentially input data for a portfolio of interest, and the system dynamically re-creates portfolio prices as portfolio content is adjusted, added, and / or removed. Can be calculated.

[00146]この計算は、次の層、集約において行われる。この層を、2つのビューとしてモデル化することができる。第1のビューは、「PricedPortfolio」と呼ばれるPortfolioとAllPricesとの結合体(join)である。Portfolio内の全てのメッセージについてここで1つのメッセージが存在する場合があるが、Joinによって、各証券についての現在価格を含むことができる。   [00146] This calculation is performed in the next layer, aggregation. This layer can be modeled as two views. The first view is a combination of Portfolio and AllPrices, called “PricedPortfolio”. There may be one message here for every message in Portfolio, but Join allows you to include the current price for each security.

[00147]トップのPricedPortfolioは、ポートフォリオ価格を計算する第2のビュー「PricedPortfolioAgg」であることができる。これは、本質的に、ポートフォリオID、ポートフォリオ内の証券のカウント、およびポートフォリオ内の証券の/price/weightのSUMを有する、1ポートフォリオについて1メッセージを含むビュー(を超える)に勝る疑似コードの変換である。 [00147] The top PricedPortfolio can be a second view "PricedPortfolioAgg" that calculates the portfolio price. This is essentially the pseudo-code of a view over (and beyond) a view containing one message for one portfolio, with a portfolio ID, a count of the securities in the portfolio, and a SUM of / price * / weight of the securities in the portfolio. Conversion.

[00148]そのため、複数の実施形態において、システムは、ポートフォリオデータを(例えば、プッシュによって)受信し、その後、PricedPortfolioおよびPricedPortfolioAggに対するクエリ/サブスクリプションを受信して、基礎になる市場データが変化するときに動的に更新されたポートフォリオ価格を確認することができる。   [00148] Thus, in embodiments, the system receives portfolio data (e.g., by push), and then receives queries / subscriptions to PricedPortfolio and PricedPortfolioAgg when underlying market data changes. You can see the dynamically updated portfolio price.

[00149]複数の実施形態において、各ポートフォリオの公式の1日の始まりの評価を、毎日のロードの一部としてPortfolioRefテーブル内に提出することができる。これは、PricedPortfolioAggビューが、現在の評価とPortfolioRefテーブル内に提出される参照データを比較することによって、実現されていない1日の始まりの利得/損失の計算を含むことを可能にする。一実施形態において、1日の始まりのポートフォリオ評価からのパーセンテージ変化を計算することができる。   [00149] In embodiments, the official day-of-day assessment of each portfolio can be submitted in the PortfolioRef table as part of the daily load. This allows the PricedPortfolioAgg view to include the unrealized start-of-day gain / loss calculations by comparing the current rating with the reference data submitted in the PortfolioRef table. In one embodiment, the percentage change from the portfolio rating at the beginning of the day can be calculated.

[00150]複数の実施形態において、警報エンジンは、人間識別可能な概念を基礎になるデータ構造にマッピングするCEPエンジン内にサブスクリプションをセットアップすることができる。SQL言語における算術表現および公式が使用されて、警報エンジンがイベントの通知をいつ受信すべきかを規定することができる。特定のサブスクリプションに関するデータが受信されると、警報エンジンは、そのデータを所望のアクション(例えば、電子メールまたはSNS等のメッセージを送信すること、アドバイザのユーザインターフェース上でウィンドウをポップアップすること等)に戻すようにマッピングすることになり、そのアクションを実行することができる。警報エンジンを、アクティブな警報として留まるように、または、サブスクリプションを削除することによってそれ自身をディセーブルするように更に構成することができる。   [00150] In embodiments, the alerting engine may set up a subscription in a CEP engine that maps human identifiable concepts to underlying data structures. Arithmetic expressions and formulas in the SQL language can be used to define when the alert engine should receive notification of an event. When data relating to a particular subscription is received, the alerting engine may send the data to the desired action (eg, sending a message such as an email or SNS, popping up a window on the advisor's user interface, etc.). , And the action can be performed. The alert engine can be further configured to remain as an active alert or to disable itself by deleting a subscription.

[00151]警報の非制限的な例は、金額または金額パーセンテージを超える/を下回るポートフォリオ利得/損失、特定の閾値を超える特定の所有財産の値等を含む。
[00152]複数のクライアントを代表するアドバイザは、そのクライアントの所有財産の全体論的ビューについて関心のある複数のポートフォリオをカバーする警報を維持することができる。
[00151] Non-limiting examples of alerts include portfolio gain / loss above / below an amount or percentage of amount, value of a particular property above a particular threshold, and the like.
[00152] An advisor representing multiple clients may maintain alerts covering multiple portfolios of interest for a holistic view of the client's property.

[00153]組織レベルで、全ての所有財産は、CEPエンジンにおいて全体論的に分析されて、ヘッジング、クロスアカウント貸株、リスク管理等を容易にすることができる。
[00154]一実施形態において、キャッシュを、米国ドル等の基礎になる通貨のユニット数としてポートフォリオにおいて表すことができる。通貨についての市場データは、(ドル建て口座用の米国ドルについて等で)スタティックである、または、現在の為替相場を表すことができる。
[00153] At the organizational level, all property possessions can be holistically analyzed in the CEP engine to facilitate hedging, cross-account lending, risk management, and the like.
[00154] In one embodiment, cash may be represented in a portfolio as a number of units of an underlying currency, such as the United States dollar. Market data for currencies may be static (such as for US dollars for dollar-denominated accounts) or may represent the current exchange rate.

[00155]別の実施形態において、同様の機構を、ポートフォリオ変化の仮説的モデリングのために使用することができる。別個のCEPエンジンまたはサイドテーブルが使用されて、ポートフォリオの仮説的コンテンツの最終表現を記憶することができ、一方、同じ集約機構が、ポートフォリオを値付けするために使用され得る。   [00155] In another embodiment, a similar mechanism can be used for hypothetical modeling of portfolio changes. A separate CEP engine or side table can be used to store the final representation of the hypothetical content of the portfolio, while the same aggregation mechanism can be used to price the portfolio.

[00156]一実施形態において、CEPエンジン内の別個のテーブルは、顧客がリスクを管理するのを助ける動的リスクモデルを構築するために使用することができる株式・セクター関係を記憶することができる。複数のリスクモデルを、異なるリスクアペタイト(risk appetite)を容易にするために規定することができる。   [00156] In one embodiment, a separate table in the CEP engine can store stock-sector relationships that can be used to build dynamic risk models that help customers manage risk. . Multiple risk models can be defined to facilitate different risk appetite.

[00157]一実施形態において、別個のサブスクリプションを、集約されたビューを含むテーブル上でセットアップすることができ、その後、抽出し、データベースに保存することができる。この履歴記録を、監査証跡として、または、顧客およびアドバイザに対する自動化投資助言を生成する機械学習システムを訓練するために使用することができる。   [00157] In one embodiment, separate subscriptions can be set up on a table containing the aggregated views, which can then be extracted and stored in a database. This history record can be used as an audit trail or to train a machine learning system that generates automated investment advice for customers and advisors.

[00158]一実施形態において、CEPエンジンを、リアルタイムマージン管理のために使用することができる。その理由は、CEPエンジンが、ポートフォリオロットならびに金融商品の可用性の現在の評価ステータスを知っているからである。   [00158] In one embodiment, a CEP engine can be used for real-time margin management. This is because the CEP engine knows the current assessment status of portfolio lots as well as the availability of financial instruments.

[00159]幾つかの実施形態が開示されたが、これらの実施形態が互いに排他的でないことが認識されるべきである。
[00160]以降で、本発明のシステムおよび方法の実装態様の一般的な態様が述べられる。
[00159] Although several embodiments have been disclosed, it should be recognized that these embodiments are not mutually exclusive.
[00160] In the following, general aspects of implementations of the systems and methods of the present invention will be described.

[00161]本発明のシステムまたは本発明のシステムの所定の部分は、例えば、汎用コンピュータ等の「処理機械(processing machine)」の形態であってもよい。本明細書で使用するとき、用語「処理機械」は、少なくとも1つのメモリを使用する少なくとも1つのプロセッサを含むと理解される。少なくとも1つのメモリは命令のセットを記憶する。命令を、処理機械の1つまたは複数のメモリに永久的にまたは一時的に記憶することができる。プロセッサは、データを処理するために1つまたは複数のメモリに記憶される命令を実行する。命令のセットは、上述したタスク等の特定の1つまたは複数のタスクを実施する種々の命令を含むことができる。特定のタスクを実施するためのこうした命令のセットを、プログラム、ソフトウェアプログラム、または単にソフトウェアと特徴付けることができる。   [00161] The system of the present invention or certain portions of the system of the present invention may be in the form of a "processing machine", such as, for example, a general-purpose computer. As used herein, the term "processing machine" is understood to include at least one processor that uses at least one memory. At least one memory stores a set of instructions. The instructions may be stored permanently or temporarily in one or more memories of the processing machine. A processor executes instructions stored in one or more memories to process the data. The set of instructions may include various instructions for performing a particular task or tasks, such as those described above. Such a set of instructions for performing a particular task can be characterized as a program, a software program, or simply software.

[00162]一実施形態において、処理機械は専用化プロセッサであってもよい。
[00163]上記で述べたように、処理機械は、データを処理するために1つまたは複数のメモリに記憶される命令を実行する。データのこの処理は、例えば、処理機械の1人または複数人のユーザによるコマンドに応答する、前の処理に応答する、別の処理機械による要求および/または任意の他の入力に応答することができる。
[00162] In one embodiment, the processing machine may be a specialized processor.
[00163] As noted above, the processing machine executes instructions stored in one or more memories to process the data. This processing of the data may be, for example, responsive to commands by one or more users of the processing machine, responsive to previous processing, responsive to requests by another processing machine and / or any other input. it can.

[00164]上記で述べたように、本発明を実装するために使用される処理機械は汎用コンピュータであってもよい。しかしながら、上述した処理機械は、いろいろな他の技術のうちの任意の技術を同様に利用することができる。いろいろな他の技術は、専用コンピュータ、例えばマイクロコンピュータ、ミニコンピュータ、またはメインフレームを含むコンピュータシステム、プログラム式マイクロプロセッサ、マイクロコントローラー、周辺集積回路要素、CSIC(Customer Specific Integrated Circuit、特定顧客向け集積回路)またはASIC(Application Specific Integrated Circuit、特定用途向け集積回路)または他の集積回路、ロジック回路、デジタル信号プロセッサ、FPGA、PLD、PLA、またはPAL等のプログラマブルロジックデバイス、あるいは、本発明のプロセスのステップを実装することが可能である任意の他のデバイスまたはデバイスの配置構成を含む。   [00164] As noted above, the processing machine used to implement the invention may be a general-purpose computer. However, the processing machines described above can utilize any of a variety of other technologies as well. Various other technologies include dedicated computers, eg, microcomputers, minicomputers, or computer systems including mainframes, programmable microprocessors, microcontrollers, peripheral integrated circuit elements, CSICs (Customer Specific Integrated Circuits, customer-specific integrated circuits). ) Or an Application Specific Integrated Circuit (ASIC) or other integrated circuit, a logic circuit, a digital signal processor, a programmable logic device such as an FPGA, PLD, PLA, or PAL, or a step of the process of the present invention. Any other device or device configuration that is capable of implementing No.

[00165]本発明を実装するために使用される処理機械は、適したオペレーティングシステムを利用することができる。そのため、本発明の実施形態は、iOSオペレーティングシステム、OS Xオペレーティングシステム、Androidオペレーティングシステム、Microsoft Windows(商標)オペレーティングシステム、Unixオペレーティングシステム、Linux(登録商標)オペレーティングシステム、Xenixオペレーティングシステム、IBM AIX(商標)オペレーティングシステム、Hewlett−Packard UX(商標)オペレーティングシステム、Novell Netware(商標)オペレーティングシステム、Sun Microsystems Solaris(商標)オペレーティングシステム、OS/2(商標)オペレーティングシステム、BeOSオペレーティングシステム、Macintoshオペレーティングシステム、Apacheオペレーティングシステム、OpenStep(商標)オペレーティングシステム、あるいは別のオペレーティングシステムまたはプラットフォームを実行する処理機械を含むことができる。   [00165] The processing machine used to implement the present invention may utilize a suitable operating system. Therefore, embodiments of the present invention are based on an iOS operating system, an OS X operating system, an Android operating system, a Microsoft Windows (trademark) operating system, a Unix operating system, a Linux (registered trademark) operating system, a Xenix operating system, and an IBM AIX (trademark). ) Operating systems, Hewlett-Packard UX ™ operating system, Novell Network ™ operating system, Sun Microsystems Solaris ™ operating system, OS / 2 ™ operating system, BeOS operating system, Macin osh operating system may include a processing machine to perform Apache operating system, OpenStep (TM) operating system or another operating system or platform.

[00166]上述した本発明の方法を実施するために、処理機械のプロセッサおよび/またはメモリが同じ地理的場所に物理的に位置することは必要でないことが認識される。すなわち、処理機械によって使用されるプロセッサおよびメモリのそれぞれを、地理的に別個のロケーションに位置付け、任意の適した方法で通信するために接続することができる。さらに、プロセッサおよび/またはメモリのそれぞれを、機器の異なる物理的ピースで構成することができることが認識される。したがって、プロセッサが1つのロケーションにおいて機器の1つの単一ピースであること、および、メモリが別のロケーションにおいて機器の別の単一ピースであることは必要でない。すなわち、プロセッサが2つの異なる物理的ロケーションにおいて機器の2つのピースであることができることが企図される。機器の2つの別個のピースを任意の適した方法で接続することができる。さらに、メモリは、2つ以上の物理的ロケーションにおいてメモリの2つ以上の部分を含むことができる。   [00166] It will be appreciated that it is not necessary for the processor and / or memory of the processing machine to be physically located at the same geographic location to implement the method of the invention described above. That is, each of the processor and the memory used by the processing machine can be located at geographically distinct locations and connected to communicate in any suitable manner. Further, it is recognized that each of the processor and / or memory can be comprised of a different physical piece of equipment. Thus, it is not necessary that the processor be one single piece of equipment at one location and that the memory be another single piece of equipment at another location. That is, it is contemplated that the processor can be two pieces of equipment at two different physical locations. The two separate pieces of equipment can be connected in any suitable way. Further, memory may include more than one portion of memory at more than one physical location.

[00167]更に説明すると、処理は、上述したように、種々のコンポーネントおよび種々のメモリによって実施される。しかしながら、上述したように2つの別個のコンポーネントによって実施される処理を、本発明の更なる実施形態によれば、単一コンポーネントによって実施することができることが認識される。さらに、上述したように1つの別個のコンポーネントによって実施される処理を、2つの別個のコンポーネントによって実施することができる。同様に、上述したように2つの別個のメモリ部分によって実施されるメモリ記憶を、本発明の更なる実施形態によれば、単一メモリ部分によって実施することができる。さらに、上述したように1つの別個のメモリ部分によって実施されるメモリ記憶を2つのメモリ部分によって実施することができる。   [00167] To further illustrate, the processes are implemented by various components and various memories, as described above. However, it will be appreciated that the processing performed by the two separate components as described above can be performed by a single component according to further embodiments of the present invention. Further, the processing performed by one separate component as described above can be performed by two separate components. Similarly, memory storage implemented by two separate memory portions as described above can be implemented by a single memory portion, according to a further embodiment of the present invention. Further, the memory storage implemented by one separate memory portion as described above can be implemented by two memory portions.

[00168]さらに、種々の技術を、例えば、種々のプロセッサおよび/またはメモリの間の通信を提供するために、ならびに、本発明のプロセッサおよび/またはメモリが任意の他のエンティティと通信することを可能にするために、すなわち、更なる命令を得るためにまたはリモートメモリストアにアクセスしそれを使用するために使用することができる。こうした通信を提供するために使用されるこうした技術は、例えば、ネットワーク、インターネット、イントラネット、エクストラネット、LAN、イーサネット(登録商標)、セルタワーまたは衛星を介した無線通信、または通信を提供する任意のクライアントサーバシステムを含む場合がある。こうした通信技術は、例えば、TCP/IP、UDP、またはOSI等の任意の適したプロトコルを使用することができる。   [00168] Further, various techniques may be provided, for example, to provide communication between various processors and / or memories, and for the processors and / or memories of the present invention to communicate with any other entities. It can be used to enable, i.e. to get further instructions or to access and use a remote memory store. Such technologies used to provide such communications include, for example, wireless communications via a network, the Internet, an intranet, an extranet, a LAN, Ethernet, a cell tower or satellite, or any client that provides communications. May include server systems. Such communication techniques may use any suitable protocol, such as, for example, TCP / IP, UDP, or OSI.

[00169]上述したように、命令のセットを、本発明の処理において使用することができる。命令のセットは、プログラムまたはソフトウェアの形態であってもよい。ソフトウェアは、例えば、システムソフトウェアまたはアプリケーションソフトウェアの形態であってもよい。ソフトウェアは、同様に、例えば、別個のプログラムの集合体、より大きいプログラム内のプログラムモジュール、またはプログラムモジュールの一部分の形態である場合がある。使用されるソフトウェアは、オブジェクト指向プログラミングの形態のモジュール式プログラミングを同様に含む場合がある。ソフトウェアは、処理されるデータをどうしたらよいかを処理機械に伝える。   [00169] As mentioned above, a set of instructions can be used in the processing of the present invention. The set of instructions may be in the form of a program or software. The software may be, for example, in the form of system software or application software. Software may also be in the form of, for example, a collection of separate programs, a program module within a larger program, or a portion of a program module. The software used may also include modular programming in the form of object-oriented programming. The software tells the processing machine what to do with the data to be processed.

[00170]さらに、本発明の実装および運用において使用される命令または命令のセットが、処理機械が命令を読取ることができるように適した形態であることが認識される。例えば、プログラムを形成する命令は、機械語またはオブジェクトコードに変換されて、1つまたは複数のプロセッサが命令を読取ることを可能にする、適したプログラミング言語の形態であることができる。すなわち、特定のプログラミング言語におけるプログラミングコードまたはソースコードの書かれたラインは、コンパイラー、アセンブラー、またはインタープリターを使用して機械語に変換される。機械語は、例えば、特定のタイプの処理機械、すなわち、特定のタイプのコンピュータに特有である2値符号化機械命令である。コンピュータは機械語を理解する。   [00170] Further, it will be appreciated that the instructions or set of instructions used in the implementation and operation of the present invention are in a form suitable for a processing machine to read the instructions. For example, the instructions that form a program may be in the form of a suitable programming language that is translated into machine language or object code to enable one or more processors to read the instructions. That is, a written line of programming code or source code in a particular programming language is converted to machine language using a compiler, assembler, or interpreter. A machine language is, for example, a binary encoding machine instruction that is specific to a particular type of processing machine, ie, a particular type of computer. Computers understand machine language.

[00171]任意の適したプログラミング言語を、本発明の種々の実施形態に従って使用することができる。例証的に、使用されるプログラミング言語は、例えば、アセンブリ言語、Ada、APL、Basic、C、C++、COBOL、dBase、Forth、Fortran、Java(登録商標)、Modula−2、Pascal、Prolog、REXX、Visual Basic、および/またはJavaScript(登録商標)を含むことができる。さらに、単一タイプの命令または単一プログラミング言語が本発明のシステムおよび方法の運用に関連して利用されることは必要でない。むしろ、任意の数の異なるプログラミング言語を、必要に応じておよび/または所望に応じて利用することができる。   [00171] Any suitable programming language may be used in accordance with various embodiments of the present invention. Illustratively, the programming languages used are, for example, assembly language, Ada, APL, Basic, C, C ++, COBOL, dBase, Forth, Fortran, Java, Modula-2, Pascal, Prolog, REXX, Visual Basic and / or JavaScript can be included. Further, it is not necessary that a single type of instruction or a single programming language be utilized in connection with the operation of the systems and methods of the present invention. Rather, any number of different programming languages can be utilized as needed and / or desired.

[00172]同様に、本発明の実施において使用される命令および/またはデータは、所望されるように、任意の圧縮または暗号化技法またはアルゴリズムを利用することができる。暗号化モジュールは、データを暗号化するために使用される場合がある。さらに、ファイルまたは他のデータを、例えば、適した復号モジュールを使用して復号することができる。   [00172] Similarly, the instructions and / or data used in the practice of the invention can utilize any compression or encryption techniques or algorithms as desired. An encryption module may be used to encrypt data. Further, files or other data can be decrypted, for example, using a suitable decryption module.

[00173]上述したように、本発明を、例えば、少なくとも1つのメモリを含むコンピュータまたはコンピュータシステムを含む処理機械の形態で例証的に具現化することができる。例えば、コンピュータオペレーティングシステムが上述した運用を実施することを可能にする命令のセット、すなわちソフトウェアを、所望に応じて、いろいろな1つまたは複数の媒体のうちの任意の媒体上に含むことができることが認識される。さらに、命令のセットによって処理されるデータは、いろいろな1つまたは複数の媒体のうちの任意の媒体上に同様に含まれる場合がある。すなわち、本発明で使用される命令のセットおよび/またはデータを保持するために利用される処理機械内の特定の媒体、すなわちメモリは、例えば、種々の物理的形態または伝送媒体のうちの任意のものをとることができる。例証的に、媒体は、紙、透明紙、コンパクトディスク、DVD、集積回路、ハードディスク、フロッピーディスク、光ディスク、磁気テープ、RAM、ROM、PROM、EPROM、ワイヤ、ケーブル、ファイバ、通信チャネル、衛星伝送媒体、メモリカード、SIMカード、または他の遠隔伝送媒体、ならびに、本発明のプロセッサが読取ることができる任意の他のデータの媒体またはソースの形態であることができる。   [00173] As noted above, the invention can be illustratively embodied in the form of a processing machine that includes a computer or computer system that includes, for example, at least one memory. For example, a set of instructions that enable a computer operating system to perform the operations described above, ie, software, may be included on any of a variety of one or more media, as desired. Is recognized. Further, the data processed by the set of instructions may also be included on any of a variety of one or more media. That is, the particular medium or memory within the processing machine utilized to hold the set of instructions and / or data used in the present invention may be, for example, any of various physical forms or transmission media. You can take things. Illustratively, the medium is paper, transparent paper, compact disk, DVD, integrated circuit, hard disk, floppy disk, optical disk, magnetic tape, RAM, ROM, PROM, EPROM, wire, cable, fiber, communication channel, satellite transmission medium. , A memory card, a SIM card, or other remote transmission medium, as well as any other data medium or source readable by the processor of the present invention.

[00174]さらに、本発明を実装する処理機械で使用される1つまたは複数のメモリは、メモリが所望に応じて命令、データ、または他の情報を保持することを可能にするいろいろな形態のうちの任意の形態であることができる。そのため、メモリは、データを保持するデータベースの形態であってもよい。データベースは、例えば、フラットファイル配置構成またはリレーショナルデータベース配置構成等の任意の所望のファイルの配置構成を使用する場合がある。   [00174] Further, one or more memories used in a processing machine implementing the invention may have various forms of enabling the memory to hold instructions, data, or other information as desired. It can be in any of these forms. Therefore, the memory may be in the form of a database that holds data. The database may use any desired file arrangement, such as, for example, a flat file arrangement or a relational database arrangement.

[00175]本発明のシステムおよび方法において、種々の「ユーザインターフェース(user interface)」を、本発明を実装するために使用される1つまたは複数の処理機械にユーザがインターフェースすることを可能にするために利用することができる。本明細書で使用するとき、ユーザインターフェースは、ユーザが処理機械と相互作用することを可能にする、処理機械によって使用される、任意のハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せを含む。ユーザインターフェースは、例えば、ダイアログスクリーンの形態であってもよい。ユーザインターフェースは、マウス、タッチスクリーン、キーボード、キーパッド、音声リーダ、音声認識器、ダイアログスクリーン、メニューボックス、リスト、チェックボックス、トグルスイッチ、プッシュボタン、または、任意の他のデバイスであって、任意の他のデバイスが命令のセットを処理するおよび/または処理機械に情報を提供するときに、処理機械の運用に関する情報をユーザが受信することを可能にする、任意の他のデバイスのうちの任意のものを同様に含むことができる。したがって、ユーザインターフェースは、ユーザと処理機械との間の通信を提供する任意のデバイスである。ユーザインターフェースを通してユーザによって処理機械に提供される情報は、例えば、コマンド、データの選択、または何らかの他の入力の形態であってもよい。   [00175] In the systems and methods of the present invention, various "user interfaces" allow a user to interface with one or more processing machines used to implement the present invention. Can be used for As used herein, a user interface includes any hardware, software, or combination of hardware and software used by a processing machine that allows a user to interact with the processing machine. The user interface may be, for example, in the form of a dialog screen. The user interface may be a mouse, touch screen, keyboard, keypad, voice reader, voice recognizer, dialog screen, menu box, list, check box, toggle switch, push button, or any other device, optionally Any of any other devices that allow a user to receive information regarding the operation of the processing machine when the other device processes the set of instructions and / or provides information to the processing machine. Can be included as well. Thus, a user interface is any device that provides communication between a user and a processing machine. The information provided by the user to the processing machine through the user interface may be, for example, in the form of a command, a selection of data, or some other input.

[00176]上記で論じたように、ユーザインターフェースは、命令のセットを実施する処理機械によって利用され、それにより、処理機械はユーザのためにデータを処理する。ユーザインターフェースは、通常、ユーザと相互作用して、情報を伝達するまたはユーザから情報を受信するために処理機械によって使用される。しかしながら、本発明のシステムおよび方法の幾つかの実施形態によれば、人間ユーザが本発明の処理機械によって使用されるユーザインターフェースと実際に相互作用することが必要ないことが認識されるべきである。むしろ、本発明のユーザインターフェースが、人間ユーザではなく、別の処理機械と、相互作用する、すなわち情報を伝達し情報を受信する場合があることが同様に企図される。したがって、他の処理機械は、ユーザと特徴付けられる場合がある。さらに、本発明のシステムおよび方法で利用されるユーザインターフェースが、人間ユーザと部分的に同様に相互作用しながら、別の1つまたは複数の処理機械と部分的に相互作用することができることが企図される。   [00176] As discussed above, the user interface is utilized by a processing machine that implements a set of instructions, whereby the processing machine processes data for a user. User interfaces are typically used by processing machines to interact with, communicate information to, or receive information from a user. However, it should be appreciated that, according to some embodiments of the systems and methods of the present invention, it is not necessary for a human user to actually interact with the user interface used by the processing machine of the present invention. . Rather, it is similarly contemplated that the user interface of the present invention may interact with other processing machines, ie, communicate and receive information, rather than with a human user. Thus, other processing machines may be characterized as users. Further, it is contemplated that the user interface utilized in the systems and methods of the present invention may partially interact with another one or more processing machines while partially interacting with a human user. Is done.

[00177]本発明が幅広い実用性および用途を受入れることが当業者によって容易に理解されるであろう。本明細書で述べた以外の本発明の多くの実施形態および適応形態ならびに多くの変形形態、修正形態、および等価形態は、本発明の実質または範囲から逸脱することなく、本発明および本発明の上記説明から明らかになるであろう、または、それによって合理的に示唆されるであろう。   [00177] It will be readily appreciated by those skilled in the art that the present invention embraces a wide range of utilities and applications. Many embodiments and adaptations of the invention other than those described herein, as well as many variations, modifications, and equivalents, may be made without departing from the spirit or scope of the invention. It will be apparent from the above description, or will be reasonably suggested thereby.

[00178]したがって、本発明はその例示的な実施形態に関連してここで詳細に述べられたが、本開示が、本発明の例証かつ例示に過ぎず、本発明の実施可能な程度の開示を提供するために行われることが理解される。したがって、上記開示は、本発明を制限する、またはそうでなければ、任意の他のこうした実施形態、適応形態、変形形態、修正形態、または等価形態を排除すると解釈されることを意図されない。   [00178] Thus, while the present invention has been described in detail herein with reference to exemplary embodiments thereof, the present disclosure is merely illustrative and exemplary of the present invention and is provided as a practical disclosure of the invention. It is understood that this is done to provide Accordingly, the above disclosure is not intended to be construed as limiting, or otherwise excluding, the invention, any other such embodiments, adaptations, variations, modifications, or equivalents.

Claims (20)

ストリーミングデータを提示するための方法であって、
少なくとも1つのコンピュータプロセッサを含むサーバのためのウェブサービス層において、複数のパラメータを含むクエリをクライアントから受信するステップと、
前記サーバのためのデータキャッシング層が、少なくとも1つの予め規定されたストリーミングデータソースからストリーミングデータを受信するステップと、
前記データキャッシング層が、前記複数のパラメータのそれぞれについて前記ストリーミングデータを融合するステップと、
前記データキャッシング層が、前記融合されたデータを集約するステップと、
前記データキャッシング層が、前記融合されたデータに対して前記クエリを同時に実行することによって、前記融合されたデータのスナップショットを生成するステップと、
前記スナップショットを前記クライアントに出力するステップとを含む、方法。
A method for presenting streaming data, the method comprising:
Receiving, from a client, a query including a plurality of parameters at a web services layer for a server including at least one computer processor;
A data caching layer for the server receiving streaming data from at least one predefined streaming data source;
The data caching layer fusing the streaming data for each of the plurality of parameters;
Said data caching layer aggregating said fused data;
The data caching layer concurrently executing the query on the fused data to generate a snapshot of the fused data;
Outputting the snapshot to the client.
前記パラメータは、証券および投資の少なくとも一方のための特定の記述子を含む、請求項1に記載の方法。   The method of claim 1, wherein the parameters include specific descriptors for securities and / or investments. 前記クエリは、ストリーミングデータソースの識別情報を更に含む、請求項1に記載の方法。   The method of claim 1, wherein the query further comprises identification information of a streaming data source. 前記ストリーミングデータは市場データを含む、請求項1に記載の方法。   The method of claim 1, wherein the streaming data includes market data. 前記ウェブサービス層は、所定の時間量だけ遅延される前記スナップショットを出力し、前記期間は、前記ストリーミングデータに関連する1つまたは複数のルールに基づく、請求項1に記載の方法。   The method of claim 1, wherein the web services layer outputs the snapshot that is delayed by a predetermined amount of time, wherein the time period is based on one or more rules associated with the streaming data. 前記サーバのためのエンタイトルメントサービス層が、前記クエリに応答して前記クライアントが情報にアクセスすることが承認されることを検証するステップを更に含む、請求項1に記載の方法。   The method of claim 1, further comprising the step of an entitlement service layer for the server verifying that the client is authorized to access information in response to the query. 前記クライアントから受信される少なくとも1つのクライアントクレデンシャルに基づいて前記クライアントを認証するステップを更に含む、請求項1に記載の方法。   The method of claim 1, further comprising authenticating the client based on at least one client credential received from the client. 前記スナップショットは、或る時間の間、前記証券および前記投資の少なくとも一方について正確である、請求項2に記載の方法。   3. The method of claim 2, wherein the snapshot is accurate for at least one of the security and the investment for a period of time. 前記スナップショットは、或る時間の間、前記証券および前記投資の少なくとも一方について適切な状態を含む、請求項2に記載の方法。   3. The method of claim 2, wherein the snapshot includes an appropriate state for at least one of the security and the investment for a period of time. ストリーミングデータを提示するためのシステムであって、
複数のストリーミングデータソースと、
各ストリーミングデータソースのためのデータローダであって、前記ストリーミングデータソースからストリーミングデータを受信する、データローダと、
前記データローダから前記ストリーミングデータを受信するデータキャッシング層と、
前記データキャッシング層と通信状態にある少なくとも1つのコンピュータプロセッサを含むウェブサービス層とを含み、
前記ウェブサービス層は複数のパラメータを含むクエリをクライアントから受信し、
前記データキャッシング層は前記複数のパラメータのそれぞれについて前記ストリーミングデータを融合し、
前記データキャッシング層は前記融合されたデータを集約し、
前記データキャッシング層は、前記融合されたデータに対して前記クエリを同時に実行することによって、前記融合されたデータのスナップショットを生成し、
前記スナップショットは前記クライアントに出力される、システム。
A system for presenting streaming data,
Multiple streaming data sources,
A data loader for each streaming data source, the data loader receiving streaming data from the streaming data source;
A data caching layer for receiving the streaming data from the data loader;
A web services layer including at least one computer processor in communication with the data caching layer;
The web service layer receives a query including a plurality of parameters from a client,
The data caching layer fuses the streaming data for each of the plurality of parameters;
The data caching layer aggregates the fused data;
The data caching layer generates a snapshot of the fused data by simultaneously executing the query on the fused data;
The system wherein the snapshot is output to the client.
前記パラメータは、証券および投資の少なくとも一方のための特定の記述子を含む、請求項10に記載のシステム。   The system of claim 10, wherein the parameters include specific descriptors for securities and / or investments. 前記クエリは、ストリーミングデータソースの識別情報を更に含む、請求項10に記載のシステム。   The system of claim 10, wherein the query further comprises an identification of a streaming data source. 前記ストリーミングデータは市場データを含む、請求項10に記載のシステム。   The system of claim 10, wherein the streaming data comprises market data. 前記ウェブサービス層は、所定の時間量だけ遅延される前記スナップショットを出力する、請求項10に記載のシステム。   The system of claim 10, wherein the web services layer outputs the snapshot delayed by a predetermined amount of time. 前記期間は、前記ストリーミングデータに関連する1つまたは複数のルールに基づく、請求項14に記載のシステム。   The system of claim 14, wherein the time period is based on one or more rules associated with the streaming data. 前記クエリは、クラウドアプリケーションおよびローカルアプリケーションの少なくとも一方から受信される、請求項10に記載のシステム。   The system of claim 10, wherein the query is received from at least one of a cloud application and a local application. 前記クエリに応答して前記クライアントが情報にアクセスすることが承認されることを検証する前記サーバのためのエンタイトルメントサービス層を更に含む、請求項10に記載のシステム。   The system of claim 10, further comprising an entitlement service layer for the server that verifies that the client is authorized to access information in response to the query. 前記エンタイトルメントサービス層は、前記クライアントから受信される少なくとも1つのクライアントクレデンシャルに基づいて前記クライアントを更に認証する、請求項17に記載のシステム。   The system of claim 17, wherein the entitlement service layer further authenticates the client based on at least one client credential received from the client. 前記スナップショットは、或る時間の間、前記証券および前記投資の少なくとも一方について正確である、請求項11に記載のシステム。   12. The system of claim 11, wherein the snapshot is accurate for at least one of the security and the investment for a period of time. 前記スナップショットは、或る時間の間、前記証券および前記投資の少なくとも一方について適切な状態を含む、請求項11に記載のシステム。   The system of claim 11, wherein the snapshot includes a state appropriate for at least one of the security and the investment for a period of time.
JP2019531996A 2016-12-14 2017-12-13 Systems and methods for aggregating, filtering and presenting streaming data Active JP7048614B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15/378,501 2016-12-14
US15/378,501 US10657137B2 (en) 2016-12-14 2016-12-14 Systems and methods for aggregating, filtering, and presenting streaming data
US201762534749P 2017-07-20 2017-07-20
US62/534,749 2017-07-20
PCT/US2017/066068 WO2018112023A1 (en) 2016-12-14 2017-12-13 Systems and methods for aggregating, filtering, and presenting streaming data

Publications (2)

Publication Number Publication Date
JP2020504867A true JP2020504867A (en) 2020-02-13
JP7048614B2 JP7048614B2 (en) 2022-04-05

Family

ID=62559201

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019531996A Active JP7048614B2 (en) 2016-12-14 2017-12-13 Systems and methods for aggregating, filtering and presenting streaming data

Country Status (5)

Country Link
EP (1) EP3555741A4 (en)
JP (1) JP7048614B2 (en)
CN (1) CN110249322B (en)
AU (1) AU2017378245B2 (en)
WO (1) WO2018112023A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11922437B2 (en) 2018-04-12 2024-03-05 Jpmorgan Chase Bank, N.A. System and method for implementing a market data hub
CN110187780B (en) * 2019-06-10 2023-07-21 北京百度网讯科技有限公司 Long text prediction method, long text prediction device, long text prediction equipment and storage medium
JP2023553768A (en) * 2020-12-10 2023-12-26 ジェイピーモルガン・チェース・バンク,ナショナル・アソシエーション Cloud-first streaming/market data usage system and method
US20220358499A1 (en) * 2021-05-07 2022-11-10 Jpmorgan Chase Bank, N.A. Method and system for autonomous portfolio platform management

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697806B1 (en) * 2000-04-24 2004-02-24 Sprint Communications Company, L.P. Access network authorization
US20140351233A1 (en) * 2013-05-24 2014-11-27 Software AG USA Inc. System and method for continuous analytics run against a combination of static and real-time data
JP2015008000A (en) * 2000-10-25 2015-01-15 トムソン・フィナンシャル・インコーポレイテッド Method suitable to be used for commercial transactions

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090292677A1 (en) * 2008-02-15 2009-11-26 Wordstream, Inc. Integrated web analytics and actionable workbench tools for search engine optimization and marketing
EP2667337A3 (en) * 2012-05-22 2014-03-12 Hasso-Plattner-Institut für Softwaresystemtechnik GmbH Transparent control of access invoking real-time analysis of the query history
US9870415B2 (en) * 2013-09-18 2018-01-16 Quintiles Ims Incorporated System and method for fast query response

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697806B1 (en) * 2000-04-24 2004-02-24 Sprint Communications Company, L.P. Access network authorization
JP2015008000A (en) * 2000-10-25 2015-01-15 トムソン・フィナンシャル・インコーポレイテッド Method suitable to be used for commercial transactions
US20140351233A1 (en) * 2013-05-24 2014-11-27 Software AG USA Inc. System and method for continuous analytics run against a combination of static and real-time data

Also Published As

Publication number Publication date
EP3555741A1 (en) 2019-10-23
CN110249322A (en) 2019-09-17
CN110249322B (en) 2023-06-20
AU2017378245B2 (en) 2022-10-13
JP7048614B2 (en) 2022-04-05
EP3555741A4 (en) 2020-05-06
AU2017378245A1 (en) 2019-07-11
WO2018112023A1 (en) 2018-06-21

Similar Documents

Publication Publication Date Title
US20190087900A1 (en) Method and system for aggregating and managing data from disparate sources in consolidated storage
JP7048614B2 (en) Systems and methods for aggregating, filtering and presenting streaming data
US11601498B2 (en) Reconciliation of data stored on permissioned database storage across independent computing nodes
US10474692B2 (en) Data conversion and distribution systems
US11783213B2 (en) Projecting data trends using customized modeling
US20180211312A1 (en) Systems and Methods for Intraday Facility Monitoring
US20190066204A1 (en) System for issuing and managing exchange traded products as financial instruments and associated method
US20190066214A1 (en) System for conducting and balancing a secure financial investment of a client and associated method
US10915968B1 (en) System and method for proactively managing alerts
US20240061913A1 (en) Graphical User Interface and Console Management, Modeling, and Analysis System
CA3113845A1 (en) Predicting occurrences of temporally separated events using adaptively trained artificial-intelligence processes
US20190066215A1 (en) System for controlling data and issuing client reports on exchange traded products and associated method
WO2022140837A1 (en) Prediction of future occurrences of events using adaptively trained artificial-intelligence processes
US20230118745A1 (en) Graphical User Interface and Console Management, Modeling, and Analysis System
US10007950B2 (en) Integrating multiple trading platforms with a central trade processing system
US11922437B2 (en) System and method for implementing a market data hub
US20230260061A1 (en) Graphical User Interface and Console Management, Modeling, and Analysis System
US20120323817A1 (en) Systems and Methods for Implementing a Separately Managed Account Platform
US20150317738A1 (en) Computerized method and system for secure communication, and method and system for matching customers with options for investment

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201119

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220218

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220302

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220324

R150 Certificate of patent or registration of utility model

Ref document number: 7048614

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150