(57)【要約】  本出願は、ストリーミングデータ分散処理方法を提供しており、方法は、ストリーミングデータのデータレコードのサービスデータ識別子情報、データレコードの処理対象のリアルタイム値、及びデータレコードの処理対象のリアルタイム値の時間シーケンス特性を取得するステップであって、識別子情報は、サービスデータの一つの断片又は一つの組を一意に表している、ステップと、保存されているサービスデータ識別子情報と処理済みのリアルタイム値の時間シーケンス特性との間の対応性関係に基づいてサービスデータの処理済みのリアルタイム値の時間シーケンス特性を取得するステップと、サービスデータの処理対象のリアルタイム値の時間シーケンス特性とサービスデータの処理済みのリアルタイム値の時間シーケンス特性とを比較し、処理対象のリアルタイム値の時間シーケンスが、処理済みのリアルタイム値の時間シーケンスよりも後である際に、処理対象のリアルタイム値をサービス演算の実行において利用し、且つ、処理済みのリアルタイム値の保存されている時間シーケンス特性を処理対象のリアルタイム値の時間シーケンス特性に更新するステップと、を具備する。この技術的方式を使用することにより、データ更新シーケンスに応じたデータ処理が実現され、これにより、後から更新されたリアルタイム値を処理することによってもたらされる処理結果の誤りが回避され、且つ、データ処理精度が向上する。
2019523952.tif 000002
【特許請求の範囲】
【請求項１】
ストリーミングデータ分散処理方法であって、
ストリーミングデータのデータレコードのサービスデータ識別子情報と、前記データレコードの処理対象のリアルタイム値と、前記データレコードの前記処理対象のリアルタイム値の時間シーケンス特性と、を取得するステップであって、前記識別子情報は、サービスデータの一つの断片又は一つの組を一意に表している、ステップと、
前記保存されているサービスデータ識別子情報と前記処理済みのリアルタイム値の前記時間シーケンス特性との間の対応性関係に基づいて前記サービスデータの処理済みのリアルタイム値の時間シーケンス特性を取得するステップと、
前記サービスデータの前記処理対象のリアルタイム値の前記時間シーケンス特性と前記サービスデータの前記処理済みのリアルタイム値の前記時間シーケンス特性とを比較し、前記処理対象のリアルタイム値の時間シーケンスが、前記処理済みのリアルタイム値の時間シーケンスよりも後である際に、前記処理対象のリアルタイム値をサービス演算の実行において利用し、且つ、前記処理済みのリアルタイム値の前記保存されている時間シーケンス特性を前記処理対象のリアルタイム値の前記時間シーケンス特性に更新するステップと、
を具備する方法。
【請求項２】
リアルタイム値の時間シーケンス特性は、リアルタイム値生成時刻を具備する、請求項１に記載の方法。
【請求項３】
前記ストリーミングデータは、前記データレコードの前記サービスデータ識別子情報を搬送するメッセージのメッセージフローと、前記データレコードの前記処理対象のリアルタイム値と、前記データレコードの前記処理対象のリアルタイム値の前記時間シーケンス特性と、を具備し、
前記リアルタイム値の前記時間シーケンス特性は、リアルタイム値生成時刻と前記リアルタイム値を含むメッセージのメッセージ識別子とを具備し、前記メッセージ識別子は、メッセージ生成の時間シーケンスを反映する能力を有し、
前記処理対象のリアルタイム値の前記時間シーケンスが、前記処理済みのリアルタイム値の前記時間シーケンスよりも後であることは、前記処理対象のリアルタイム値の生成時刻が、前記処理済みのリアルタイム値の生成時刻よりも後であること、或いは、前記処理対象の及び処理済みのリアルタイム値の前記生成時刻が同一であり、且つ、前記処理対象のリアルタイム値を含むメッセージのメッセージ識別子によって反映された時間シーケンスが、前記処理済みのリアルタイム値を含むメッセージのメッセージ識別子によって反映された時間シーケンスよりも後であること、を具備する、
請求項１に記載の方法。
【請求項４】
前記サービスデータの前記処理済みのリアルタイム値の前記時間シーケンス特性が保存される前に、前記サービスデータの前記処理対象のリアルタイム値を前記サービス演算において利用し、前記サービスデータの前記処理対象の値の前記時間シーケンス特性を前記処理済みのリアルタイム値の前記時間シーケンス特性として使用し、且つ、前記サービスデータ識別子情報と前記処理済みのリアルタイム値の前記時間シーケンス特性との間の前記対応性関係を保存するステップ、
を更に具備する、請求項１に記載の方法。
【請求項５】
前記ストリーミングデータ分散処理方法は、並列状態において、且つ、独立的に、少なくとも二つのソフトウェア機能モジュール上において稼働し、且つ、前記ソフトウェア機能モジュールによって処理される前記データレコードは、前記サービスデータ識別子情報又は前記データレコードの前記サービスデータ識別子情報の一部分に基づいて判定される、請求項１に記載の方法。
【請求項６】
前記識別子情報は、識別子特性と少なくとも一つの識別子フィールドとを具備し、すべての識別子フィールドの組合せが、前記サービスデータの一つの断片又は一つの組を一意に表しており、且つ、前記識別子特性は、前記すべての識別子フィールドの組合せの既定の一部分に基づいて生成される、請求項１又は請求項５に記載の方法。
【請求項７】
前記識別子フィールドは、主サービスプライマリキー識別子とアプリケーションシグネチャとを具備し、前記識別子特性は、前記主サービスプライマリキー識別子のダイジェスト値の最初のいくつかのビットである、請求項６に記載の方法。
【請求項８】
ストリーミングデータ分散処理装置であって、
ストリーミングデータのデータレコードのサービスデータ識別子情報と、前記データレコードの処理対象のリアルタイム値と、前記データレコードの前記処理対象のリアルタイム値の時間シーケンス特性と、を取得するように構成された処理対象の情報取得ユニットであって、前記識別子情報は、サービスデータの一つの断片又は一つの組を一意に表している、処理対象の情報取得ユニットと、
前記保存されているサービスデータ識別子情報と前記処理済みのリアルタイム値の前記時間シーケンス特性との間の対応性関係に基づいて前記サービスデータの処理済みのリアルタイム値の時間シーケンス特性を取得するように構成された処理済みの情報取得ユニットと、
前記サービスデータの前記処理対象のリアルタイム値の前記時間シーケンス特性と前記サービスデータの前記処理済みのリアルタイム値の前記時間シーケンス特性とを比較し、前記処理対象のリアルタイム値の時間シーケンスが、前記処理済みのリアルタイム値の時間シーケンスよりも後である際に、前記処理対象のリアルタイム値をサービス演算の実行において利用し、且つ、前記処理済みのリアルタイム値の前記保存されている時間シーケンス特性を前記処理対象のリアルタイム値の前記時間シーケンス特性に更新する、ように構成されたデータ処理ユニットと、
を具備する装置。
【請求項９】
前記リアルタイム値の時間シーケンス特性は、前記リアルタイム値生成時刻を具備する、請求項８に記載の装置。
【請求項１０】
前記ストリーミングデータは、前記データレコードの前記サービスデータ識別子情報を搬送するメッセージのメッセージフローと、前記データレコードの前記処理対象のリアルタイム値と、前記データレコードの前記処理対象のリアルタイム値の前記時間シーケンス特性と、を具備し、
前記リアルタイム値の前記時間シーケンス特性は、リアルタイム値生成時刻と前記リアルタイム値を含むメッセージのメッセージ識別子とを具備し、前記メッセージ識別子は、メッセージ生成の時間シーケンスを反映する能力を有し、
前記処理対象のリアルタイム値の前記時間シーケンスが、前記処理済みのリアルタイム値の前記時間シーケンスよりも後であることは、前記処理対象のリアルタイム値の生成時刻が、前記処理済みのリアルタイム値の生成時刻よりも後であること、或いは、前記処理対象の及び処理済みのリアルタイム値の前記生成時刻が同一であり、且つ、前記処理対象のリアルタイム値を含むメッセージのメッセージ識別子によって反映された時間シーケンスが、前記処理済みのリアルタイム値を含むメッセージのメッセージ識別子によって反映された時間シーケンスよりも後であること、を具備する、
請求項８に記載の装置。
【請求項１１】
前記サービスデータの前記処理済みのリアルタイム値の前記時間シーケンス特性が保存される前に、前記サービスデータの前記処理対象のリアルタイム値を前記サービス演算において利用し、前記サービスデータの前記処理対象の値の前記時間シーケンス特性を前記処理済みのリアルタイム値の前記時間シーケンス特性として使用し、且つ、前記サービスデータ識別子情報と前記処理済みのリアルタイム値の前記時間シーケンス特性との間の前記対応性関係を保存する、ように構成された処理済みの情報追加ユニット、
を更に具備する、請求項８に記載の装置。
【請求項１２】
前記ストリーミングデータ分散処理方法は、並列状態において、且つ、独立的に、少なくとも二つのソフトウェア機能モジュール上において稼働し、且つ、前記ソフトウェア機能モジュールによって処理される前記データレコードは、前記サービスデータ識別情報又は前記データレコードの前記サービスデータ識別情報の一部分に基づいて判定される、請求項８に記載の装置。
【請求項１３】
前記識別子情報は、識別子特性と少なくとも一つの識別子フィールドとを具備し、すべての識別子フィールドの組合せが、前記サービスデータの一つの断片又は一つの組を一意に表しており、且つ、前記識別子特性は、すべての識別子フィールドの前記組合せの既定の一部分に基づいて生成される、請求項８又は請求項１２に記載の装置。
【請求項１４】
前記識別子フィールドは、主サービスプライマリキー識別子とアプリケーションシグネチャとを具備し、前記識別子特性は、前記主サービスプライマリキー識別子のダイジェスト値の最初のいくつかのビットである、請求項１３に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、2016年６月20日付けで出願されると共に「STREAMING DATA DISTRIBUTED PROCESSING METHOD AND DEVICE」という名称を有する中国特許出願第 201610447125.8 号の優先権を主張するものであり、この特許文献のすべての内容は、引用により、そのすべてが本明細書に包含される。
【０００２】
本発明は、データ処理の技術分野に関し、且つ、更に詳しくは、ストリーミングデータ分散処理方法及び装置に関する。
【背景技術】
【０００３】
様々なネットワークアプリケーションが人々の日々の生活において益々深く根を下ろすようになるのに伴って、多くのアプリケーションシステムが、テラバイト規模のサービスデータを毎日生成することになる。このデータの海のリアルタイム分析は、アプリケーションシステムにとって大きな価値を有する情報を提供することができる。例えば、トラフィック監視システムによって収集されるビデオデータストリームのリアルタイム分析は、トラフィックフローの制御を支援することが可能であり、且つ、ソーシャルネットワーキングサイト上におけるユーザのアクセス動作のリアルタイム分析は、ホットトピックを即座に見出すと共にこれらを更に多くのユーザに対してプッシュすることができる。
【０００４】
膨大な量のリアルタイムサービスデータは、通常、異なる場所において、異なるソフトウェア及びハードウェアプラットフォーム上において、且つ／又は、異なるタイプのデーベース内において、保存されている。リアルタイムデータ収集システムは、リアルタイムデータ処理を実行するべく、データベース内において、ストリームの形態において、リアルタイムで変化するサービスデータを継続的に収集している。リアルタイムデータ収集システムは、シングルスレッドを使用することにより、実現することも可能であり、或いは、複数のスレッドがリアルタイムデータ収集を同時に実行する状態において分散形態を利用することにより、実現することもできる。
【０００５】
アプリケーションシステムのサービスデータは、任意の時点において更新され得ることから、特に、サービスデータの単一の断片が、恐らくは、非常に短い期間内において複数回にわたって更新され得ることから、シングルスレッドを使用して実装されたリアルタイムデータ収集システムは、ストリーミングデータ内において、最初に更新されたサービスデータリアルタイム値が、後から更新されたサービスデータリアルタイム値よりも前に到来する、ことを保証することができる。但し、大部分の状況において、シングルスレッドの低い性能は、大量のデータのリアルタイムデータ処理の需要を充足することができない。分散型のリアルタイムデータ収集システムにおいては、その生成された分散型のストリーミングデータ内におけるサービスデータリアルタイム値のシーケンスが、更新が発生したシーケンスと異なっている可能性がある。
【０００６】
現時点の技術においては、サービスデータリアルタイム値のデータ処理は、ストリーミングデータ内のサービスデータのシーケンスに従って実行されている。この結果、分散型のストリーミングデータ内におけるサービスデータリアルタイム値のシーケンスが、更新が発生したシーケンスと異なっている際には、相対的に早期に更新されたリアルタイム値が、後から更新されたリアルタイム値を置換することにより、データ処理結果の誤りをもたらすことになる。
【発明の概要】
【０００７】
以上の内容に鑑み、本出願は、ストリーミングデータ分散処理方法を提供しており、方法は、
ストリーミングデータのデータレコードのサービスデータ識別子情報、データレコードの処理対象のリアルタイム値、及びデータレコードの処理対象のリアルタイム値の時間シーケンス特性を取得するステップであって、識別子情報は、サービスデータの一つの断片又は一つの組を一意に表している、ステップと、
保存されているサービスデータ識別子情報と処理済みのリアルタイム値の時間シーケンス特性との間の対応性関係に基づいてサービスデータの処理済みのリアルタイム値の時間シーケンス特性を取得するステップと、
サービスデータの処理対象のリアルタイム値の時間シーケンス特性とサービスデータの処理済みのリアルタイム値の時間シーケンス特性とを比較し、且つ、処理対象のリアルタイム値の時間シーケンスが、処理済みのリアルタイム値の時間シーケンスよりも後である際に、処理対象のリアルタイム値をサービス演算の実行において利用し、且つ、処理済みのリアルタイム値の保存されている時間シーケンス特性を処理対象のリアルタイム値の時間シーケンス特性に更新するステップと、
を具備する。
【０００８】
又、本出願は、ストリーミングデータ分散処理装置をも提供しており、装置は、
ストリーミングデータのデータレコードのサービスデータ識別子情報、データレコードの処理対象のリアルタイム値、及びデータレコードの処理対象のリアルタイム値の時間シーケンス特性を取得するように構成された処理対象の情報取得ユニットであって、識別子情報は、サービスデータの一つの断片又は一つの組を一意に表している、処理対象の情報取得ユニットと、
保存されているサービスデータ識別子情報と処理済みのリアルタイム値の時間シーケンス特性との間の対応性関係に基づいてサービスデータの処理済みのリアルタイム値の時間シーケンス特性を取得するように構成された処理済みの情報取得ユニットと、
サービスデータの処理対象のリアルタイムデータ値の時間シーケンス特性とサービスデータの処理済みのリアルタイム値の時間シーケンス特性とを比較し、且つ、処理対象のリアルタイム値の時間シーケンスが、処理済みのリアルタイム値の時間シーケンスよりも後である際に、処理対象のリアルタイム値をサービス演算の実行において利用し、且つ、処理済みのリアルタイム値の保存されている時間シーケンス特性を処理対象のリアルタイム値の時間シーケンス特性に更新するように構成されたデータ処理ユニットと、
を具備する。
【０００９】
上述の技術的解決策によって示されているように、本出願の実施形態においては、データレコードの処理済みのリアルタイム値の時間シーケンス特性が、データ処理において保存され、且つ、ストリーミングデータ内の同一のデータレコードからの処理対象のリアルタイム値の時間シーケンス特性と比較され、且つ、処理済みのリアルタイム値よりも後の時間シーケンスを有する処理対象のリアルタイム値のみがサービス演算を経験している。従って、データ更新シーケンスに応じたデータ処理が実現されることにより、後から更新されたリアルタイム値を処理することによって生じる処理結果の誤りが防止され、且つ、データ処理精度が改善される。
【図面の簡単な説明】
【００１０】
【図１】図１は、本出願の一実施形態の適用シナリオ用のネットワーク構造図である。
【図２】図２は、本出願の一実施形態のストリーミングデータ分散処理方法のフロー図である。
【図３】図３は、本出願の一実施形態を含む装置のハードウェア構造図である。
【図４】図４は、本出願の一実施形態のストリーミングデータ分散処理装置の論理構造図である。
【発明を実施するための形態】
【００１１】
本出願の実施形態は、新しいストリーミングデータ分散処理方法を提示している。ストリーミングデータは、データレコードの処理対象のリアルタイム値の時間シーケンス特性を含み、且つ、データ処理を既に経験しているデータレコードの処理済みのリアルタイム値の時間シーケンス特性が保存されている。処理対象の及び処理済みのリアルタイム値の時間シーケンス特性を比較することにより、処理対象の及び処理済みのリアルタイム値の相対的な時間シーケンスが見出され、且つ、処理対象のリアルタイム値の時間シーケンスが後である際に、処理対象のリアルタイム値の時間シーケンスがデータ処理を経験している。この結果、相対的に早期の時間シーケンスを有するリアルタイム値の後からの処理によって生じるデータ処理結果の誤りが防止されることにより、既存の技術における問題を克服することができる。
【００１２】
本出願の一実施形態の適用シナリオのネットワーク構造が図１に示されており、動作実行プロセスにおいて異なるサービスシステムによって生成及びリフレッシュされたサービスデータは、（例えば、MySQL、Oracle、HBase などの）いくつかの異なるタイプのサービスデータベース内において保存することができる。既定の条件を充足しているサービスデータが、サービスデータベース内において追加又はリフレッシュされた際に、データ収集プラットフォームは、新たに追加又は更新されたサービスデータに基づいて、データレコードを生成し、恒常的に生成されるデータレコードをストリーミングデータとして組み合わせ、且つ、ストリーミングデータをリアルタイム演算プラットフォームに提供している。データ収集プラットフォームは、読取りのためにリアルタイム演算プラットフォームに対して提供するべく、生成されたデータレコードをメッセージとしてメッセージキューに書き込む、（例えば、kafka や TimeTunel などの）メッセージ指向のミドルウェアを利用することにより、実現することができる。リアルタイム演算プラットフォームは、（例えば、Jstorm や storm などの）分散演算を利用することも可能であり、且つ、中央集中型の演算を利用することもできる。図１は、分散型の演算が利用された際のフレームワークであり得る。一つ又は複数の（例えば、storm プラットフォームの出力などの）データ分配器が、ストリーミングデータのデータレコードを少なくとも二つの（例えば、storm プラットフォームのエンジン（bolt）などの）データプロセッサに分配し、且つ、データプロセッサは、サービスデータ内のリアルタイムの変化が処理結果において反映されるようにしている。
【００１３】
従って、図１において、データ収集プラットフォームがマルチスレッド型の並列取得を利用しており、且つ／又は、リアルタイム演算プラットフォームが分散型の演算を利用している場合に、サービスデータの断片が連続的に更新された際には、相対的に早期に更新されたサービスデータリアルタイム値を搬送するデータレコードが、後から更新されたサービスデータリアルタイム値を搬送するデータレコードよりも後にリアルタイム演算プラットフォームのデータプロセッサに到達する場合がある。本出願の実施形態は、リアルタイム演算プラットフォーム上において稼働する（分散型の演算が利用される際には、それぞれのデータプロセッサ上において稼働する）ことができると共に、且つ、上述の状況において、後から更新されたサービスデータの処理結果が相対的に早期に更新されたサービスデータの処理結果によって隠蔽されるという誤りを防止することができる。
【００１４】
本出願の実施形態は、例えば、携帯電話機、タブレットコンピュータ、ＰＣ（Personal Computer）、ラップトップ、サーバ、及び仮想機械などの、演算及び保存能力を有する任意の物理的又は論理的装置に適用することができる。或いは、この代わりに、本出願の実施形態においては、装置は、様々な機能を実現するべく、互いに調整している、異なる職務を共有する、二つ以上の物理的又は論理的装置であってもよい。
【００１５】
本出願のいくつかの実施形態においては、ストリーミングデータ分散処理方法のフローは、図２に示されているとおりである。
【００１６】
ステップ２１０：ストリーミングデータのデータレコードのサービスデータ識別子、データレコードの処理対象のリアルタイム値、及びデータレコードの処理対象のリアルタイム値の時間シーケンス特性を取得する。
【００１７】
本出願のいくつかの実施形態においては、データレコードは、ストリーミングデータの最小構成単位である。それぞれのデータレコードは、サービスデータベース内の、（例えば、口座の残高などの）サービスデータの一つの断片の変化（追加又は更新）、或いは、（例えば、振替の回数や他の口座に振り替えられた合計金額などの）サービスデータの組（二つ以上の断片）の同時の変化、に基づいて生成されている。データレコードは、サービスデータ又はサービスデータの組の識別子情報と、サービスデータ又はサービスデータの組のリアルタイム値と、を具備しており、通常、データレコードは、リアルタイム値がサービスデータベース内において生成された時刻をも具備する。
【００１８】
ここで、識別子情報は、例えば、本出願の実施形態が稼働している範囲内において、サービスデータ又はサービスデータの組を一意に表しており、識別子情報とサービスデータ又はサービスデータの組との間には、１対１の対応性が存在している。例えば、本出願の一実施形態は、リアルタイム演算プラットフォームのそれぞれのデータプロセッサ上において稼働しており、従って、データプロセッサによって処理されるそれぞれのデータレコードごとに、識別子情報とサービスデータの断片又はサービスデータの組との間には、１対１の対応性が存在している。実際の一適用シナリオにおいては、サービスデータの識別子情報を判定するべく、サービスデータベース内のフィールド及びテーブル識別子並びに／或いはサービスシステム内のサービスデータ識別子を参照することができる。例えば、サービスデータが配置されているテーブルのプライマリキー、テーブル名、及びデータベース名の組合せをサービスデータの識別子情報として使用することができる。又、サービスデータが属しているサービスの主サービスプライマリキー識別子、第二サービスプライマリキー識別子、及びアプリケーションシグネチャをサービスデータの識別子情報として使用することもできる。
【００１９】
サービスデータのリアルタイム値は、最も最近の変化の後のサービスデータ又はサービスデータの組の値である。リアルタイム値生成時刻は、サービスデータがサービスデータベース内において変化した時刻である。
【００２０】
リアルタイム値の時間シーケンス特性は、サービスデータ又はサービスデータの組が変化した時刻と関連する情報を具備する。サービスデータ又はサービスデータの組がＮ回の変化を経験した際には、Ｎ個のデータレコードが生成されることになる。これらのＮ個のデータレコードのうちにおいて、サービスデータ識別子情報は、同一であり、サービスデータリアルタイム値は、異なっており、且つ、大部分の状況において、リアルタイム値の時間シーケンス特性も、異なっている。リアルタイム値の時間シーケンス特性を比較することにより、通常、このサービスデータ又はサービスデータの組のいずれの一つ又は複数のリアルタイム値が、相対的に早期に発生したのか、並びに、後から発生したのか、を知ることができる。
【００２１】
リアルタイム値の時間シーケンス特性として使用される変数は、サービスデータが変化している速度及びストリーミングデータ処理用の精度要件などの、実際の適用シナリオにおける要因に基づいて選択することができる。例えば、データレコードにおけるリアルタイム値生成時刻をリアルタイム値の時間シーケンス特性として使用することができる。同一の識別子情報を有するサービスデータの場合には、リアルタイム値の時間シーケンスは、リアルタイム値生成時刻に基づいて判定することができる。但し、リアルタイム値生成時刻は、通常、その保存の精度が（例えば、ミリ秒に）限られていることから、一つに極めて近接した状態において（例えば、数十マイクロ秒内において）発生した、サービスデータの同一の断片又は同一の組に対する２回の変化は、同一のリアルタイム値生成時刻を有する場合がある。
【００２２】
又、リアルタイム値生成時刻の精度の向上に加えて、データ収集プラットフォームとして機能しているメッセージ指向のミドルウェアを有する適用シナリオにおいては、リアルタイム値生成時刻と、リアルタイム値を含むメッセージのメッセージ識別子と、をリアルタイム値の時間シーケンス特性として使用することもできる。このタイプの適用シナリオにおいて、メッセージ指向のミドルウェアは、一つ又は複数のデータレコードをメッセージ内においてパッケージ化し、メッセージ生成の時間シーケンスに従って、メッセージ識別子が、それぞれのメッセージごとに指定され、且つ、メッセージ識別子を有するメッセージが、メッセージフロー（即ち、ストリーミングデータ）を構成している。サービスデータの同一の断片又は同一の組に対する２回の連続的な変化について生成されたデータレコードは、同一のメッセージ内において出現することにはならないことから、メッセージ生成時間シーケンスを反映したメッセージ識別子は、サービスデータのリアルタイム値の時間情報をも反映している。同一のサービスデータ識別子情報を有する二つのデータレコードの場合に、サービスデータのリアルタイム値生成時刻が異なっている場合には、リアルタイム値の時間シーケンスは、リアルタイム値生成時刻に基づいて判定される。サービスデータのリアルタイム値生成時刻が同一である場合には、リアルタイム値の時間シーケンスは、データレコードを含むメッセージのメッセージ識別子に基づいて判定することができる。
【００２３】
従って、データレコードは、ストリーミングデータから抽出され、且つ、データレコードから、サービスデータ識別子情報と、サービスデータの処理対象のリアルタイム値と、を取得することが可能であり（データレコード内のサービスデータのリアルタイム値は、データ処理を経験してはいないことから、データレコード内のサービスデータのリアルタイム値は、処理対象のリアルタイム値と呼称することができる）、且つ、処理対象のリアルタイム値の時間シーケンス特性は、データレコードから、或いは、データレコード及びデータレコードを搬送しているメッセージから、取得することができる。
【００２４】
ステップ２２０：保存されているサービスデータ識別子情報と処理済みのリアルタイム値の時間シーケンス特性との間の対応性関係に基づいてサービスデータの処理済みのリアルタイム値の時間シーケンス特性を取得する。
【００２５】
ステップ２３０：サービスデータの処理対象のリアルタイム値の時間シーケンス特性とサービスデータの処理済みのリアルタイム値の時間シーケンス特性とを比較し、且つ、処理対象のリアルタイム値の時間シーケンスが処理済みのリアルタイム値の時間シーケンスよりも後である際に、処理対象のリアルタイム値をサービス演算の実行において利用し、且つ、処理済みのリアルタイム値の保存されている時間シーケンス特性を処理対象のリアルタイム値の時間シーケンス特性に更新する。
【００２６】
本出願のいくつかの実施形態においては、サービスデータ識別子情報と処理済みのリアルタイム値の時間シーケンス特性との間の対応性関係のテーブルが維持されており、この場合に、処理済みのリアルタイム値の時間シーケンス特性は、最も最近にデータ処理を経験したサービスデータリアルタイム値の時間シーケンス特性である。このリアルタイム値を含むデータレコードは、ストリーミングデータ内においてオリジナルのデータレコードの前に配置されている。
【００２７】
新しいデータレコードからサービスデータ識別子情報を取得した後に、識別子情報と処理済みのリアルタイム値の時間シーケンス特性との間の対応性関係のテーブルがチェックされる。この識別子情報が存在している場合には、この識別子情報を有するサービスデータの処理済みのリアルタイム値の時間シーケンス特性を取得することができる。このサービスデータの処理対象の及び処理済みのリアルタイム値の時間シーケンス特性が比較される。処理対象のリアルタイム値の時間シーケンスが、処理済みのリアルタイム値よりも後である場合には、処理対象のリアルタイム値がサービス演算において利用され（即ち、処理対象のリアルタイム値がデータ処理を経験する）、且つ、識別子情報と処理済みのリアルタイム値の時間シーケンス特性との間の対応性関係のテーブル内において、データレコード内の識別子情報に対応する処理済みのリアルタイム値の時間シーケンス特性が、データレコードの処理対象のリアルタイム値の時間シーケンス特性値として更新される。さもなければ、データ処理結果の誤りをもたらす、相対的に早期に更新されたリアルタイム値が、後から更新されたリアルタイム値を置換することを回避するように、データレコード内の処理対象のリアルタイム値は、処理を経験しない、即ち、データレコード内の処理対象のリアルタイム値は、サービス演算において使用されない。
【００２８】
リアルタイム値生成時刻がリアルタイム値の時間シーケンス特性として機能している状況において、処理対象のリアルタイム値生成時刻が、処理済みのリアルタイム値生成時刻よりも大きい場合には、処理対象のリアルタイム値の時間シーケンスは、処理済みのリアルタイム値の時間シーケンスよりも後である。リアルタイム値生成時刻及びリアルタイム値を含むメッセージのメッセージ識別子がリアルタイム値の時間シーケンス特性として使用されている状況において、処理対象のリアルタイム値生成時刻が、処理済みのリアルタイム値生成時刻よりも後である際には、且つ、処理対象のリアルタイム値を含むメッセージのメッセージ識別子によって反映された時間シーケンスが、処理済みのリアルタイム値を含むメッセージのメッセージ識別子によって反映された時間シーケンスよりも後である状態において、処理対象の及び処理済みのリアルタイム値の生成時刻が同一である際には、処理対象のリアルタイム値の時間シーケンスは、処理済みのリアルタイム値の時間シーケンスよりも後である。
【００２９】
識別子情報と処理済みのリアルタイム値の時間シーケンス特性との間の対応性関係のテーブルが、データレコード内のサービスデータ識別子情報に対応する処理済みのリアルタイム値の時間シーケンス特性を有していない場合には、それは、これが、このサービスデータ又はこのサービスデータの組のリアルタイム値を受け取る最初であり得ることを意味している。従って、データレコード内のサービスデータの処理対象のリアルタイム値が、サービス演算において使用され、サービスデータの処理対象のリアルタイム値の時間シーケンス特性が、処理済みのリアルタイム値の時間シーケンス特性として機能し、且つ、サービスデータの識別子情報と処理済みのリアルタイム値の時間シーケンス特性との間の対応性関係が、対応性関係テーブル内において保存される。
【００３０】
サービス演算を実施するべく処理対象のリアルタイム値を利用する特定のアルゴリズムは、現時点の技術のデータ処理モードを参照することによって実現される、実際の適用シナリオの需要に基づいたものであってよい。更なる詳細の付与については、省略することとする。
【００３１】
識別子情報と処理済みのリアルタイム値の時間シーケンス特性との間の対応性関係のテーブル内の大きなバイト数の又は多数のテーブル項目を有する識別子情報を伴う適用シナリオにおいては、対応性関係のルックアップが、相当量の時間を必要とする場合がある。データ処理のリアルタイム品質に対するルックアップ回数の影響を低減するべく、識別子情報が識別子特性及び少なくとも一つの識別子フィールドを具備するようにすることが可能であり、この場合には、すべての識別子フィールドの組合せが、サービスデータの一つの断片又は一つの組を一意に表しており、識別子特性の入力は、すべての識別子フィールドの組合せの既定の一部分であり、且つ、（例えば、ダイジェストアルゴリズムなどの）アルゴリズムを使用することによって生成される。対応性関係テーブルをルックアップする際に、識別子情報内の識別子特性をテーブル項目のルックアップを実行するためのインデックスとして使用することにより、ルックアップ速度を加速させることができる。
【００３２】
リアルタイム演算プラットフォームが分散型の演算を利用している適用シナリオにおいては、本出願の実施形態の方法は、並列状態において、且つ、独立的に、データ処理の責任を担う二つ以上の（例えば、図１に示されているネットワーク構造内のデータプロセッサなどの）ソフトウェア機能モジュール上において稼働する。ストリーミングデータがこれらのソフトウェア機能モジュールに到達する前に、通常、データ分配器が、異なるデータレコードをこれらのソフトウェア機能モジュールに対して分配することになる。データ分配器は、同一のサービスデータ識別子情報を有するデータレコードが同一のソフトウェア機能モジュールに分配され得るように、データレコード内のサービスデータ識別子情報のすべて又は既定の部分に従って、データレコードをソフトウェア機能モジュールに分配することができる。この結果、リアルタイム演算プラットフォームの全体ではなく、単一のソフトウェア機能モジュール上において、識別子情報と処理済みのリアルタイム値の時間シーケンス特性との間の対応性関係のテーブルを実装することにより、対応性関係テーブルの容量を低減することが可能であり、且つ、ルックアップ速度を加速させることができる。
【００３３】
従って、本出願の実施形態においては、ストリーミングデータは、データレコードの処理対象のリアルタイム値の時間シーケンス特性を搬送している。データ処理において、データレコードの処理済みのリアルタイム値の時間シーケンス特性が保存され、且つ、処理対象の及び処理済みのリアルタイム値の時間シーケンス特性を比較することにより、処理済みのリアルタイム値よりも後の時間シーケンスを有する処理対象のリアルタイム値のみがサービス演算を経験しており、これにより、後から更新されたリアルタイム値を処理することによって生じる処理結果の誤りが回避され、且つ、データ処理精度が向上している。
【００３４】
本出願の一適用例においては、メッセージ指向のミドルウェアが、変化したサービスデータをサービスデータベースから収集し、且つ、データレコードを生成している。データレコードは、サービスデータ識別子情報、サービスデータリアルタイム値（処理対象のリアルタイム値）、及びリアルタイム値生成時刻を具備する。ここで、サービスデータ識別子情報は、識別子特性と、少なくとも二つの識別子フィールドと、を具備し、且つ、識別子フィールドは、一つ又は複数のサービスプライマリキー識別子及びサービスシグネチャである。これらのサービスプライマリキー識別子及びサービスシグネチャの組合せとデータレコードを生成するべく使用されたサービスデータとの間には、（データレコードを処理するソフトウェア機能モジュールの範囲内において）１対１の対応性が存在している。サービスプライマリキー識別子は、主サービスプライマリキー識別子を具備する。又、複数のサービスプライマリキー識別子が存在している場合には、サービスプライマリキー識別子は、第二サービスプライマリキー識別子及びその他のサービスプライマリキー識別子を具備することができる。識別子特性は、主サービスプライマリキーのダイジェスト値の最初のいくつかのビットであり、この場合に、ダイジェスト値は、ダイジェストアルゴリズムを利用した後に、主サービスプライマリキーから取得された値である。例えば、主サービスプライマリキーのＭＤ５（Message Digest Algorithm 5）値の最初の５ビットを識別子特性として使用することができる。識別子特性は、サービスデータの識別子情報として機能するように、すべての識別子フィールドと結合される（結合演算子として、「＃」などの固定されたシンボルを隣接する識別子フィールドの間において使用することができる）。例示用の結果が、表１に示されている。
【００３５】
【表１】
2019523952.tif 000003
【００３６】
メッセージ指向のミドルウェアが、データレコードをメッセージ内においてパッケージ化し、昇順においてソートされた次のメッセージ連番が、（同様に、メッセージ内においてパッケージ化された）メッセージ識別子として使用され、且つ、生成されたメッセージが、メッセージキュー内において配置される。
【００３７】
リアルタイム演算プラットフォームのデータ分配器が、メッセージキューからメッセージを抽出し、データレコードを解析し、且つ、データレコード内のサービスデータ識別子情報の識別子特性に従って、データレコード及びデータレコードを含むメッセージのメッセージ識別子をデータプロセッサのうちの一つに送信する。識別子特性は、主サービスプライマリキーのダイジェスト値の最初のいくつかのビットであることから、同一の主サービスプライマリキーを有するサービスデータを有するデータレコードが、同一のデータプロセッサに対して分配されることになる。換言すれば、同一のサービスデータが、同一のデータプロセッサ上においてデータ処理を経験することになる。
【００３８】
それぞれのデータプロセッサは、サービスデータ識別子情報と処理済みのリアルタイム値の時間シーケンス特性との間の対応性関係のテーブル DATA_CHECK を維持している。DATA_CHECK テーブルのフィールドは、表２に示されているとおりである。
【００３９】
【表２】
2019523952.tif 000004
【００４０】
データ分配器によって分配される、データレコード及びデータレコードが配置されたメッセージのメッセージ識別子を受け取った後に、データプロセッサは、サービスデータ識別子情報をデータレコードから抽出し、データレコードのサービスデータリアルタイム値及びリアルタイム値生成時刻を処理対象のリアルタイム値及び処理対象のリアルタイム値生成時刻として使用すると共に、分配されたメッセージ識別子を処理対象のリアルタイム値が配置されているメッセージのメッセージ識別子として使用する。
【００４１】
識別子情報内の識別子特性をインデックスとして使用することにより、データプロセッサは、この識別子情報のテーブル項目として DATA_CHECK テーブル内の ROWKEY をルックアップし、識別子情報に対応する処理済みのリアルタイム値の時間シーケンス特性の LAST_VERSION を取得し、且つ、処理済みのリアルタイム値生成時刻及び処理済みのリアルタイム値が配置されているメッセージのメッセージ識別子を解析する。
【００４２】
データプロセッサが、処理対象の及び処理済みのリアルタイム値生成時刻を比較する。処理対象のリアルタイム値生成時刻が処理済みのリアルタイム値生成時刻よりも後である場合には、或いは、処理対象の及び処理済みのリアルタイム値生成時刻が同一であり、且つ、処理対象のリアルタイム値が配置されているメッセージのメッセージ識別子が、処理済みのリアルタイム値が配置されているメッセージのメッセージ識別子よりも大きい場合には、処理対象のリアルタイム値がデータ処理を経験し、且つ、DATA_CHECK テーブル内のこの識別子情報を有するテーブル項目の LAST_VERSION が、処理対象のリアルタイム値生成時刻及び処理対象のリアルタイム値を保持するメッセージのメッセージ識別子に変更される。さもなければ、データレコードの処理対象のリアルタイム値は、放棄され、且つ、データ処理を経験しない。
【００４３】
又、上述のプロセスの実装に対応することにより、本出願の実施形態は、ストリーミングデータ分散処理用の装置をも提供している。この装置は、ソフトウェアを通じて、ハードウェアを通じて、或いは、ソフトウェア及びハードウェアの組合せを通じて、実装することができる。ソフトウェア実装を一例として使用すれば、論理装置として、装置は、ＣＰＵ（Central Processing Unit）が配置されている装置のＣＰＵに、対応するコンピュータプログラム命令をメモリに読み取らせることにより、稼働する。又、ハードウェアについては、図３に示されているＣＰＵ、メモリ、及び不揮発性メモリに加えて、ストリーミングデータ分散処理用の装置が配置されている装置は、通常、無線信号の送信及び受信を実行するべく使用されるチップなどのその他のハードウェア及び／又はネットワーク通信のために使用されるカードなどのその他のハードウェアをも具備する。
【００４４】
図４は、本出願の実施形態によって提供されるストリーミングデータ分散処理装置を示しており、装置は、処理対象の情報取得ユニット、処理済みの情報取得ユニット、及びデータ処理ユニットを具備し、この場合に、処理対象の情報取得ユニットは、ストリーミングデータのデータレコードのサービスデータ識別子情報、データレコードの処理対象のリアルタイム値、及びデータレコードの処理対象のリアルタイム値の時間シーケンス特性を取得するように構成されており、識別子情報は、サービスデータの一つの断片又は一つの組を一意に表しており、処理済みの情報取得ユニットは、保存されているデータ識別子情報と処理済みのリアルタイム値の時間シーケンス特性との間の対応性関係に基づいてサービスデータの処理済みのリアルタイム値の時間シーケンス特性を取得するように構成されており、データ処理ユニットは、サービスデータの処理対象のリアルタイム値の時間シーケンス特性とサービスデータの処理済みのリアルタイム値の時間シーケンス特性とを比較し、且つ、処理対象のリアルタイム値の時間シーケンスが、処理済みのリアルタイム値の時間シーケンスよりも後である際に、処理対象のリアルタイム値をサービス演算の実行において利用し、且つ、処理済みのリアルタイム値の保存されている時間シーケンス特性を処理対象のリアルタイム値の時間シーケンス特性に更新するように構成されている。
【００４５】
任意選択により、リアルタイム値の時間シーケンス特性は、リアルタイム値生成時刻を具備する。
【００４６】
任意選択により、ストリーミングデータは、データレコードのサービスデータ識別子情報を搬送するメッセージのメッセージフロー、データレコードの処理対象のリアルタイム値、及びデータレコードの処理対象のリアルタイム値の時間シーケンス特性を具備し、リアルタイム値の時間シーケンス特性は、リアルタイム値生成時刻及びリアルタイム値を含むメッセージのメッセージ識別子を具備し、メッセージ識別子は、メッセージ生成の時間シーケンスを判定する能力を有し、処理対象のリアルタイム値の時間シーケンスが、処理済みのリアルタイム値の時間シーケンスよりも後であることは、処理対象のリアルタイム値の生成時刻が、処理済みのリアルタイム値の生成時刻よりも後であること、或いは、処理対象の及び処理済みのリアルタイム値の生成時刻が同一であり、且つ、処理対象のリアルタイム値を含むメッセージのメッセージ識別子によって反映された時間シーケンスが、処理済みのリアルタイム値を含むメッセージのメッセージ識別子によって反映された時間シーケンスよりも後であること、を具備する。
【００４７】
又、任意選択により、装置は、サービスデータの処理済みのリアルタイム値の時間シーケンスが保存される前に、サービスデータの処理対象のリアルタイム値をサービス演算において利用し、処理済みのリアルタイム値の時間シーケンス特性としてサービスデータの処理対象の値の時間シーケンス特性を使用し、且つ、サービスデータ識別子情報と処理済みのリアルタイム値の時間シーケンス特性との間の対応性関係を保存するように構成された処理済みの情報追加ユニットをも具備する。
【００４８】
任意選択により、ストリーミングデータ分散処理方法は、並列状態において、且つ、独立的に、少なくとも二つのソフトウェア機能モジュール上において稼働し、且つ、ソフトウェア機能モジュールによって処理されるデータレコードは、サービスデータ識別子情報又はデータレコードのサービスデータ識別子情報の一部分に基づいて判定される。
【００４９】
一例においては、識別子情報は、識別子特性及び少なくとも一つの識別子フィールドを具備し、すべての識別子フィールドの組合せは、サービスデータの一つの断片又は一つの組を一意に表しており、且つ、識別子特性は、すべての識別子フィールドの組合せの既定の一部分に基づいて生成されている。
【００５０】
先行する例においては、識別子フィールドは、主サービスプライマリキー識別子及びアプリケーションシグネチャを具備していてもよく、識別子特性は、主サービスプライマリキー識別子のダイジェスト値の最初のいくつかのビットである。
【００５１】
以上の内容は、本出願の好適な実施形態であるに過ぎず、且つ、本出願を限定するものではない。本出願の精神及び原理内において実施されるすべての変更、等価な置換、及び改善は、本出願の保護の範囲に含まれている。
【００５２】
通常の一構成においては、演算装置は、一つ又は複数のプロセッサ（ＣＰＵ）、入出力インタフェース、ネットワークインタフェース、及び内部メモリを具備する。
【００５３】
内部メモリは、コンピュータ可読媒体上の不揮発性メモリ、ランダムアクセスメモリ（ＲＡＭ：Random Access Memory）、及び／又は、読み出し専用メモリ（ＲＯＭ：Read-Only Memory）又はフラッシュＲＡＭなどの、不揮発性ＲＡＭ、の形態を具備することができる。内部メモリは、コンピュータ可読媒体の一例である。
【００５４】
コンピュータ可読媒体は、任意の方法又は技術を通じて情報ストレージを実現し得る、永久的な、非永久的な、可動型の、且つ固定型の、媒体を含む。情報は、コンピュータ可読命令、データ構造、プログラムモジュール、又はその他のデータであってもよい。コンピュータストレージ媒体の例は、限定を伴うことなしに、相変化ＲＡＭ（ＰＲＡＭ：Phase-change RAM）、スタティックＲＡＭ（ＳＲＡＭ：Static RAM）、ダイナミックＲＡＭ（ＤＲＡＭ：Dynamic RAM）、その他のタイプのランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、電気的に消去可能なプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ：Electrically Erasable Programmable Read-Only Memory）、フラッシュメモリ又はその他の内部メモリ技術、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ：Compact Disk Read-Only Memory）、デジタルバーサタイルディスク（ＤＶＤ：Digital Verstile Disc）又はその他の光メモリ、カセット、磁気テープ及びディスクメモリ又はその他の磁気メモリ装置、或いは、演算装置によってアクセスされ得る情報を保存するべく使用され得る任意のその他の非送信媒体を含む。本明細書における定義によれば、コンピュータ可読媒体は、変調されたデータ信号及び搬送波などの、一時的なコンピュータ可読媒体（一時的な媒体）を排除し得る。
【００５５】
又、「具備する、備える（comprise）」及び「包含する、含む（include）」という用語、或いは、これらの任意の変形は、非排他的包含となるように意図されていることに留意されたい。従って、一連の要素を具備するプロセス、方法、製品、又は装置は、これらの要素を具備し得るのみならず、明示的に列挙されてはいないその他の要素、或いは、そのプロセス、方法、製品、又は装置に固有の要素をも具備し得る。その他の制限が存在していない際に、「一つの〜を具備する（comprising one...）」というフレーズによって定義される要素は、その要素を具備するプロセス、方法、製品、又は装置内におけるその他の類似の要素の存在を排除するものではない。
【００５６】
当業者は、本出願の実施形態は、方法、システム、又はコンピュータプログラムプロダクトとして提供され得ることを理解するであろう。従って、本出願は、純粋にハードウェア実施形態の形態、純粋にソフトウェア実施形態の形態、或いは、ソフトウェアとハードウェアとを組み合わせた実施形態の形態を利用することができる。又、本出願は、コンピュータ実行可能プログラムコードを具備する（限定を伴うことなしに、磁気ディスクメモリ、ＣＤ−ＲＯＭ、及び光メモリを含む）一つ又は複数のコンピュータストレージ媒体を通じて実現されたコンピュータプログラムプロダクトの形態を利用することもできる。
【図１】
2019523952.tif 000005
【図２】
2019523952.tif 000006
【図３】
2019523952.tif 000007
【図４】
2019523952.tif 000008
【国際調査報告】
2019523952.tif 000009
2019523952.tif 000010
2019523952.tif 000011
2019523952.tif 000012