特許第6793838号(P6793838)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ アリババ・グループ・ホールディング・リミテッドの特許一覧

特許6793838ブロックチェーンベースのデータ処理方法および装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6793838
(24)【登録日】2020年11月12日
(45)【発行日】2020年12月2日
(54)【発明の名称】ブロックチェーンベースのデータ処理方法および装置
(51)【国際特許分類】
   G06F 16/27 20190101AFI20201119BHJP
   G06F 16/182 20190101ALI20201119BHJP
【FI】
   G06F16/27
   G06F16/182
【請求項の数】20
【全頁数】19
(21)【出願番号】特願2019-535857(P2019-535857)
(86)(22)【出願日】2018年3月26日
(65)【公表番号】特表2020-510892(P2020-510892A)
(43)【公表日】2020年4月9日
(86)【国際出願番号】CN2018080501
(87)【国際公開番号】WO2018177250
(87)【国際公開日】20181004
【審査請求日】2019年8月26日
(31)【優先権主張番号】201710190740.X
(32)【優先日】2017年3月28日
(33)【優先権主張国】CN
【早期審査対象出願】
(73)【特許権者】
【識別番号】510330264
【氏名又は名称】アリババ・グループ・ホールディング・リミテッド
【氏名又は名称原語表記】ALIBABA GROUP HOLDING LIMITED
(74)【代理人】
【識別番号】100188558
【弁理士】
【氏名又は名称】飯田 雅人
(74)【代理人】
【識別番号】100205785
【弁理士】
【氏名又は名称】▲高▼橋 史生
(72)【発明者】
【氏名】ホンリン・チウ
【審査官】 鹿野 博嗣
(56)【参考文献】
【文献】 特開2016−208347(JP,A)
【文献】 特開平10−327186(JP,A)
【文献】 特開2014−038616(JP,A)
【文献】 特開2015−091047(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/27
G06F 16/182
(57)【特許請求の範囲】
【請求項1】
ブロックチェーンネットワーク内のノードによって、1のサービスによって生成されサービスデータを受信するステップであって、前記ービスデータが、フィールドの値が第1の処理レベルに関連付けられた前記第1のサービスを示す前記フィールドを有するデータ構造を備える、ステップと、
前記フィールドの前記値に基づいて前記ノードによって、複数のデータ処理キューから選択された第1のデータ処理キューに前記サービスデータを記憶するステップであって、前記第1のデータ処理キューが記第1の処理レベルに対応し、記複数のデータ処理キューが、異なる処理レベルに対応する、ステップと、
前記第1のデータ処理キューから読み込まれるサービスデータの第1の量を決定するステップと、
前記複数のデータ処理キューの第2のデータ処理キューから読み込まれるサービスデータの第2の量を決定するステップと、
前記ノードによって、前記第1のデータ処理キューからの前記サービスデータの第1の量と前記第2のデータ処理キューからの前記サービスデータの第2の量とを記憶する新しいブロックを生成するステップと
を備え、
前記複数のデータ処理キューのうちの1つまたは複数のそれぞれから読み込まれるサービスデータの量が、前記新しいブロック内の前記複数のデータ処理キューからの内容の記憶を優先順位づける条件に従って決定される、方法。
【請求項2】
前記第1のデータ処理キューに記憶されたサービスデータの全体の量が前記サービスデータの第1の量より少ないことを判定するステップと、
前記第1のデータ処理キューからの前記サービスデータの全体の量を前記新しいブロックに記憶するステップと、
前記新しいブロック内に、前記複数のデータ処理キューのうちの1つまたは複数から読み込まれたサービスデータの第3の量を記憶するステップであって、前記第3の量が、前記第1のデータ処理キューに記憶された前記第1の量と前記サービスデータの全体の量との差を表す、ステップと
を備える、請求項1に記載の方法。
【請求項3】
前記サービスデータの第3の量の少なくとも一部が、前記第2のデータ処理キューから読み込まれる、請求項2に記載の方法。
【請求項4】
異なるサービスについてのサービス優先度を決定するステップであって、サービス優先度が、対応するサービスによって生成されたサービスデータの処理レベルに対応する、ステップをさらに備える、請求項1に記載の方法。
【請求項5】
記憶されることになるサービスデータを生成する前記異なるサービスについての前記サービス優先度に基づいて、前記複数のデータ処理キューを事前に作成するステップをさらに備える、請求項4に記載の方法。
【請求項6】
前記第1のデータ処理キューに記憶されたサービスデータの処理時間に基づいて、または前記記憶されたサービスデータに備えられた属性に基づいて、前記記憶されたサービスデータを配列するステップをさらに備える、請求項1に記載の方法。
【請求項7】
前記第1のデータ処理キューからの前記サービスデータの第1の量を記憶するステップが、前記サービスデータの対応する処理時間の順序に基づいて、前記第1のデータ処理キューからの前記サービスデータの第1の量を読み込むステップと、
前記サービスデータの前記対応する処理時間の順序に基づいて、前記サービスデータの第1の量を前記新しいブロックに記憶するステップと
を含む、請求項1に記載の方法。
【請求項8】
コンピュータ可読記憶媒体であって、
ブロックチェーンネットワーク内のノードによって、第1のサービスによって生成されたサービスデータを受信することであって、前記サービスデータが、フィールドの値が第1の処理レベルに関連付けられた前記第1のサービスを示す前記フィールドを有するデータ構造を備える、受信することと、
前記フィールドの前記値に基づいて前記ノードによって、複数のデータ処理キューから選択された第1のデータ処理キューに前記サービスデータを記憶することであって、前記第1のデータ処理キューが前記第1の処理レベルに対応し、前記複数のデータ処理キューが、異なる処理レベルに対応する、記憶することと、
前記第1のデータ処理キューから読み込まれるサービスデータの第1の量を決定することと、
前記複数のデータ処理キューの第2のデータ処理キューから読み込まれるサービスデータの第2の量を決定することと、
前記ノードによって、前記第1のデータ処理キューからの前記サービスデータの第1の量と前記第2のデータ処理キューからの前記サービスデータの第2の量とを記憶する新しいブロックを生成することと
を備える動作を実行するためにコンピュータシステムによって実行可能な1つまたは複数の命令を記憶し、
前記複数のデータ処理キューのうちの1つまたは複数のそれぞれから読み込まれるサービスデータの量が、前記新しいブロック内の前記複数のデータ処理キューからの内容の記憶を優先順位づける条件に従って決定される、コンピュータ可読記憶媒体。
【請求項9】
前記第1のデータ処理キューに記憶されたサービスデータの全体の量が前記サービスデータの第1の量より少ないことを判定することと、
前記第1のデータ処理キューからの前記サービスデータの全体の量を前記新しいブロックに記憶することと、
前記新しいブロック内に、前記複数のデータ処理キューのうちの1つまたは複数から読み込まれたサービスデータの第3の量を記憶することであって、前記第3の量が、前記第1のデータ処理キューに記憶された前記第1の量と前記サービスデータの全体の量との差を表す、記憶することと
を備える、請求項8に記載のコンピュータ可読記憶媒体。
【請求項10】
前記サービスデータの第3の量の少なくとも一部が、前記第2のデータ処理キューから読み込まれる、請求項9に記載のコンピュータ可読記憶媒体。
【請求項11】
前記動作が、異なるサービスについてのサービス優先度を決定することであって、サービス優先度が、対応するサービスによって生成されたサービスデータの処理レベルに対応する、決定することをさらに備える、請求項8に記載のコンピュータ可読記憶媒体。
【請求項12】
前記動作が、記憶されることになるサービスデータを生成する前記異なるサービスについての前記サービス優先度に基づいて、前記複数のデータ処理キューを事前に作成することをさらに備える、請求項11に記載のコンピュータ可読記憶媒体。
【請求項13】
前記動作が、前記第1のデータ処理キューに記憶されたサービスデータの処理時間に基づいて、または前記記憶されたサービスデータに備えられた属性に基づいて、前記記憶されたサービスデータを配列することをさらに備える、請求項8に記載のコンピュータ可読記憶媒体。
【請求項14】
前記第1のデータ処理キューからの前記サービスデータの第1の量を記憶することが、前記サービスデータの対応する処理時間の順序に基づいて、前記第1のデータ処理キューからの前記サービスデータの第1の量を読み込むことと、
前記サービスデータの前記対応する処理時間の順序に基づいて、前記サービスデータの第1の量を前記新しいブロックに記憶することと
を含む、請求項8に記載のコンピュータ可読記憶媒体。
【請求項15】
システムであって、
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに相互動作可能に結合される1つまたは複数のコンピュータメモリデバイスであって、1つまたは複数の命令を記憶する有形の機械可読記憶媒体を有し、前記1つまたは複数のコンピュータによって実施されたとき、
ブロックチェーンネットワーク内のノードによって、第1のサービスによって生成されたサービスデータを受信することであって、前記サービスデータが、フィールドの値が第1の処理レベルに関連付けられた前記第1のサービスを示す前記フィールドを有するデータ構造を備える、受信することと、
前記フィールドの前記値に基づいて前記ノードによって、複数のデータ処理キューから選択された第1のデータ処理キューに前記サービスデータを記憶することであって、前記第1のデータ処理キューが前記第1の処理レベルに対応し、前記複数のデータ処理キューが、異なる処理レベルに対応する、記憶することと、
前記第1のデータ処理キューから読み込まれるサービスデータの第1の量を決定することと、
前記複数のデータ処理キューの第2のデータ処理キューから読み込まれるサービスデータの第2の量を決定することと、
前記ノードによって、前記第1のデータ処理キューからの前記サービスデータの第1の量と前記第2のデータ処理キューからの前記サービスデータの第2の量とを記憶する新しいブロックを生成することと
を備える1つまたは複数の動作を実行し、
前記複数のデータ処理キューのうちの1つまたは複数のそれぞれから読み込まれるサービスデータの量が、前記新しいブロック内の前記複数のデータ処理キューからの内容の記憶を優先順位づける条件に従って決定される、システム。
【請求項16】
前記第1のデータ処理キューに記憶されたサービスデータの全体の量が前記サービスデータの第1の量より少ないことを判定することと、
前記第1のデータ処理キューからの前記サービスデータの全体の量を前記新しいブロックに記憶することと、
前記新しいブロック内に、前記複数のデータ処理キューのうちの1つまたは複数から読み込まれたサービスデータの第3の量を記憶することであって、前記第3の量が、前記第1のデータ処理キューに記憶された前記第1の量と前記サービスデータの全体の量との差を表す、記憶することと
を備える、請求項15に記載のシステム。
【請求項17】
前記サービスデータの第3の量の少なくとも一部が、前記第2のデータ処理キューから読み込まれる、請求項16に記載のシステム。
【請求項18】
異なるサービスについてのサービス優先度を決定することであって、サービス優先度が、対応するサービスによって生成されたサービスデータの処理レベルに対応する、決定することをさらに備える、請求項15に記載のシステム。
【請求項19】
記憶されることになるサービスデータを生成する前記異なるサービスについての前記サービス優先度に基づいて、前記複数のデータ処理キューを事前に作成することをさらに備える、請求項18に記載のシステム。
【請求項20】
前記第1のデータ処理キューに記憶されたサービスデータの処理時間に基づいて、または前記記憶されたサービスデータに備えられた属性に基づいて、前記記憶されたサービスデータを配列することをさらに備える、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、インターネット情報処理技術の分野およびコンピュータ技術の分野に関し、特に、ブロックチェーンベースのデータ処理方法および装置に関する。
【背景技術】
【0002】
ブロックチェーン技術は分散台帳技術とも称される。分散インターネットデータベース技術として、ブロックチェーン技術は、分散化、透明性、非改ざんおよび信用性によって特徴付けられる。ブロックチェーン技術に基づいて構築されるネットワークはブロックチェーンネットワークと称され得る。ブロックチェーンネットワークは、ネットワークノード(ブロックチェーンノードとも称され得る)を含む。各ネットワークノードは少なくとも1つのブロックチェーンに対応し、そして各ブロックチェーンは少なくとも1つのブロックを含む。
【0003】
記憶されることになるデータを受信すると、ネットワークノードは、記憶されることになるデータをブロックチェーンネットワーク内の他のネットワークノードにブロードキャストする。したがって、ブロックチェーンネットワーク内の各ネットワークノードは、ブロックチェーンネットワークの完全なデータを記憶し、そして1つのネットワークノードに記憶されるデータは、別のノードに記憶されるものと一致している。
【0004】
データは一般に、2段階でブロックチェーンネットワークに記憶される。第1の段階で、ブロックチェーンネットワークは、記憶されることになるデータを受信し、そしてそのデータを全ブロックチェーンネットワークにブロードキャストする。そのため、ブロックチェーンネットワーク内の各ノードは、記憶されることになるデータを受信する。この場合、ブロックチェーンネットワーク内の各ネットワークノードは、記憶されることになるデータをキャッシュに書き込む。第2の段階で、記憶されることになるデータを記憶する許可を得るブロックチェーンネットワーク内のネットワークノードが、記録許可を得ると、記憶されることになるデータをブロックに書き込み、そしてそのブロックを既存のブロックチェーンに追加する。非同期書込みポリシーを使用することによってブロックチェーンネットワークにデータが記憶されることが見て取れる。
【0005】
しかしながら、実際のサービスシナリオでは、非同期書込みポリシーを使用することによってブロックチェーンネットワークにサービスデータが記憶されるとき、一般に、第1の段階でデータ処理キューが維持され、そして記憶されることになるデータのタイムスタンプに基づいて、記憶されることになるデータがデータ処理キューへ順次書き込まれる。そのため、第2の段階で、データ処理キュー内の記憶されることになるデータが先入れ先出し原則に基づいてブロックへ書き込まれる。
【0006】
調査によれば、以上の方法では、ブロックチェーンネットワークにデータを記憶する際に以下の課題がある。すなわち、比較的高いサービス優先度のサービスに関しては、サービスデータ処理効率が比較的低く、結果的にこれらのサービスの処理効率は比較的低い。
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記に鑑みて、本出願の実装は、比較的高いサービス優先度のサービスのサービスデータを処理する低効率という既存技術の問題を軽減する、ブロックチェーンベースのデータ処理方法および装置を提供する。
【課題を解決するための手段】
【0008】
本出願の一実装が、ブロックチェーンネットワーク内のノードによって、所定の期間に生成される少なくとも1つのサービスデータを得るステップであって、サービスデータが、サービスデータを生成するサービスの処理レベルを含む、ステップと、ノードによって、サービスデータを処理レベルと一致するデータ処理キューに記憶するステップと、ノードによって、新たなブロックが生成されると、異なるデータ処理キューから所定の条件を満たすサービスデータを別々に読み込み、そして読み込んだサービスデータをブロックに記憶するステップとを含む、ブロックチェーンベースのデータ処理方法を提供する。
【0009】
本出願の一実装が、所定の期間に生成される少なくとも1つのサービスデータを得るように構成されており、サービスデータが、サービスデータを生成するサービスの処理レベルを含む、取得ユニットと、サービスデータを処理レベルと一致するデータ処理キューに記憶するように構成される記憶ユニットと、新たなブロックが生成されると、異なるデータ処理キューから所定の条件を満たすサービスデータを別々に読み込み、そして読み込んだサービスデータをブロックに記憶するように構成される処理ユニットとを含む、ブロックチェーンベースのデータ処理装置を更に提供する。
【発明の効果】
【0010】
本出願の実装に使用される前記した技術的解決策の少なくとも1つが以下の有益効果を達成できる。
【0011】
異なるサービスデータが処理レベルに基づいて異なるデータ処理キューに記憶され、そしてデータをブロックに記憶するときに、所定の条件に基づいて異なるデータ処理キューから所定量のサービスデータが読み込まれ、その結果、異なる処理レベルのサービスデータが処理可能であり、時間に基づいてのみサービスデータを処理する既存技術の規則が破棄可能であり、そして比較的高いサービス優先度のサービスを処理する低効率という既存技術の問題が軽減可能である。本出願の実装で提供される解決策は、高サービス優先度のサービスのサービスデータを処理する効率を保証するだけでなく、低サービス優先度のサービスのサービスデータを処理する効率も保証する。サービス処理優先度が満たされると、ブロックチェーンにおいてサービスデータを処理する柔軟性が上げられ、そしてサービス応用分野におけるブロックチェーンの使用価値も高められる。
【0012】
ここに記載される添付図面は、本出願の更なる理解を提供すると意図され、本出願の一部を構成する。本出願の例証的な実装およびその説明は、本出願を説明すると意図され、本出願に対する限定を構成しない。
【図面の簡単な説明】
【0013】
図1】本出願の一実装に係る、ブロックチェーンベースのデータ処理方法を例示するフローチャートである。
図2(a)】本出願の一実装に係る、異なる処理レベルのサービスデータに対応するデータ処理キューを例示する図である。
図2(b)】本出願の一実装に係る、異なる処理レベルのサービスデータに対応するデータ処理キューを例示する図である。
図3】本出願の一実装に係る、ブロックチェーンベースのデータ処理方法のシナリオを例示する図である。
図4】本出願の一実装に係る、ブロックチェーンベースのデータ処理装置の構造の一例を例示する図である。
【発明を実施するための形態】
【0014】
本出願の目的、技術的解決策および利点をより明白にするために、以下、本出願の具体的な実装および添付図面を参照しつつ本出願の技術的解決策を明白かつ総合的に説明する。明らかに、記載される実装は本出願の実装の全てよりむしろほんの一部である。創意工夫なく本出願の実装に基づいて当業者によって得られる全ての他の実装が本出願の保護範囲内に納まるものとする。
【0015】
本出願の実装で提供される技術的解決策が添付図面を参照しつつ以下に詳細に記載される。
【0016】
図1は、本出願の一実装に係る、ブロックチェーンベースのデータ処理方法を例示する概略フローチャートである。本方法は次の通りに説明可能である。本出願の本実装における実行体は、ブロックチェーンネットワーク内の任意のサービスノード(ブロックチェーンノードとも称され得、以下単にノードと称される)であり得、ここでは限定されない。本出願の本実装では、実行体がノードである例が詳細な説明のために使用される。
【0017】
ステップ101:ブロックチェーンネットワーク内のノードが、所定の期間に生成される少なくとも1つのサービスデータを得る。
【0018】
サービスデータは、サービスデータを生成するサービスの処理レベルを含む。
【0019】
本出願の本実装では、最初に、異なるサービスに対してサービス優先度が決定される。ここで、サービス優先度はサービスデータの処理レベルに対応する、すなわち、より高いサービス優先度が、サービスに関して生成されるサービスデータのより高い処理レベルを示す。次いで、サービスデータが生成されるサービスのサービス優先度(または処理レベル)を表すフィールドがサービスデータに追加される。そのため、サービスデータを受信した後に、ノードは、フィールドを使用することによってサービスデータの処理レベルを判定できる。
【0020】
通常、サービスデータに含まれるフィールドは、ハッシュ値、バージョン番号、公開鍵、署名、サービスデータが帰属するブロックのハッシュ値、タイムスタンプ(すなわち、ノードがサービスデータを処理する時間)等を含むが、これらに限定されない。この場合、本出願の本実装に記載されるサービスデータに含まれるフィールドは、Table 1(表1)に図示されるものを含むが、これらに限定されない。フィールドのいくつかの属性がTable 1(表1)に記載される。
【0021】
【表1】
【0022】
好ましくは、本出願の本実装では、決定されたサービス優先度に基づいて異なるサービス優先度に対してデータ処理キューが更に構成可能である。そのため、サービスデータを受信するとき、サービスデータは、サービス優先度に基づいて別々に記憶可能である。
【0023】
本出願の本実装では、以降の説明のための一例として、「高」サービス優先度および「低」サービス優先度に分けられるサービス優先度が使用される。サービス優先度が「高」サービス優先度および「低」サービス優先度に分けられる場合、対応して、処理レベルも「高」処理レベルおよび「低」処理レベルに分けられる。
【0024】
ブロックチェーンにおける2つの隣接するブロック間に時間間隔があるので、この時間間隔が、本出願の本実装において期間を設定するための基準条件として使用可能であることに留意する価値がある。実装はここで限定されない。
【0025】
ステップ102:ノードが、サービスデータを処理レベルと一致するデータ処理キューに記憶する。
【0026】
本出願の本実装では、サービスのサービス優先度(またはサービスの処理レベル)に基づいて異なるデータ処理キューが事前に作成可能であるので、処理レベルとデータ処理キューの識別子との間のマッピング関係が事前に確立可能である。
【0027】
サービスデータを受信すると、ノードは、サービスデータの処理レベルを抽出し(そのような抽出は、サービスデータにおける処理レベルフィールドを読み込み、そして処理レベルフィールドに基づいてサービスデータの処理レベルを判定することを含むことができる)、処理レベルとデータ処理キューの識別子との間の事前に確立されるマッピング関係に基づいてサービスデータに含まれる処理レベルに対応するデータ処理キューを決定し、そして決定したデータ処理キューにサービスデータを記憶する。
【0028】
図2(a)は、本出願の一実装に係る、異なる処理レベルのサービスデータに対応するデータ処理キューを例示する概要図である。2つのデータ処理キューが含まれることが図2(a)から見て取れる。一方のデータ処理キューは高処理レベルに対応する、すなわち、データ処理キューに記憶されるサービスデータは、高サービス優先度(または高サービス処理レベル)のサービスに関して生成される。他方のデータ処理キューは低処理レベルに対応する、すなわち、データ処理キューに記憶されるサービスデータは、低サービス優先度(または低サービス処理レベル)のサービスに関して生成される。
【0029】
データ処理キューに記憶されるサービスデータがサービスデータの処理時間に基づいて配列可能である、またはサービスデータに含まれるサービス属性に基づいて配列可能である、またはキュー原則(先入れ先出し原則)に基づいて配列可能であることに留意する価値がある。実装はここで限定されない。
【0030】
ステップ103:ノードが、新たなブロックが生成されると、異なるデータ処理キューから所定の条件を満たすサービスデータを別々に読み込み、そして読み込んだサービスデータをブロックに記憶する。
【0031】
本出願の本実装では、ブロックチェーンネットワーク内の各ノードは、2段階でサービスデータを処理する。第1の段階は、本出願の本実装におけるステップ101およびステップ102に対応できる。第2の段階は、本出願の本実装におけるステップ103、すなわち、サービスデータをブロックに記憶することに対応できる。本出願の本実装に記載される解決策が、ブロックに記憶されることになる、異なるデータ処理キューから読み込まれる特定のサービスデータを説明することに重点を置くことに留意する価値があり、したがって検証、コンセンサス等は、本出願の本実装では簡略化のために省略される。そのような処理方法は既存技術に基づいて行われ得る。
【0032】
好ましくは、本出願の本実装に記載される所定の条件は、ブロックの記憶容量および異なる処理レベルのサービスデータの所定の処理比率に基づいて決定可能である、または異なるサービス処理レベルのサービスデータがブロックへ均等に書込み可能であることが保証される限り、他の方法で決定可能である。
【0033】
以下、異なるデータ処理キューから所定の条件を満たすサービスデータをどのようにしてノードが別々に読み込むかを詳細に説明する。
【0034】
ノードは、異なるデータ処理キューに対して以下の動作、すなわち、第1のデータ処理キューに対応する処理レベルを判定することと、処理レベルが第1の処理レベルであれば、第2の処理レベルのサービスデータの所定の処理比率を決定することであって、第1の処理レベルが第2の処理レベルより高い、ことと、決定した処理比率およびブロックの記憶容量に基づいて第1の処理レベルのサービスデータの第1の処理量を決定することと、第1の処理量に基づいて第1のデータ処理キューから第1の処理量を満たすサービスデータを順次読み込むこととを別々に行う。
【0035】
本出願の本実装に記載される「第1のデータ処理キュー」および「第2のデータ処理キュー」に含まれる「第1の」および「第2の」が特別な意味を有せず、単に異なるデータ処理キューを表すに過ぎないことに留意する価値がある。
【0036】
本出願の本実装に記載される「第1の処理レベル」および「第2の処理レベル」に含まれる「第1の」および「第2の」は特別な意味を有せず、単に2つの異なる処理レベルを表すに過ぎない。本出願の本実装では、第1の処理レベルが第2の処理レベルより高いと仮定する。
【0037】
本出願の本実装に記載される「第1の処理量」および「第2の処理量」に含まれる「第1の」および「第2の」が特別な意味を有せず、単に異なる量を表すに過ぎないことに留意する価値がある。
【0038】
第1のデータ処理キューが調査対象として使用される。
【0039】
ステップ1:第1のデータ処理キューに対応する処理レベルを判定する。
【0040】
ステップ2:処理レベルが第1の処理レベルであるか第2の処理レベルであるかを判定し、処理レベルが第1の処理レベルであれば、ステップ3を行い、処理レベルが第2の処理レベルであれば、ステップ4を行う。
【0041】
ステップ3:第2の処理レベルのサービスデータの所定の処理比率を決定して、決定した処理比率およびブロックの記憶容量に基づいて第1の処理レベルのサービスデータの第1の処理量を決定し;そして第1の処理量に基づいて第1のデータ処理キューから第1の処理量を満たすサービスデータを順次読み込む。
【0042】
ステップ4:第2の処理レベルのサービスデータの所定の処理比率を決定して、決定した処理比率およびブロックの記憶容量に基づいて第2の処理レベルのサービスデータの第2の処理量を決定し;そして第2の処理量に基づいて第1のデータ処理キューから第2の処理量を満たすサービスデータを順次読み込む。
【0043】
本出願の本実装では、「第2の処理レベルのサービスデータの所定の処理比率」が、本出願の本実装における比較的低い処理レベルのサービスデータの最低比率、すなわち、今回ブロックにデータが記憶されるときにブロックの記憶容量に対して記憶される必要がある比較的低い処理レベルのサービスデータの最少量によって占有される容量の比率と理解可能であることに留意する価値がある。ここで処理比率は実需に基づいて調節可能である。実装はここで限定されない。
【0044】
第2の処理レベルのサービスデータの所定の処理比率がpであり、ブロックの記憶容量(ブロックによって保持可能であるサービスデータの上限量とも理解可能である)がxであると仮定する。この場合、第1の処理レベルのサービスデータの第1の処理量が(1-p)×xと表現可能であり、そして第2の処理レベルのサービスデータの第2の処理量がpxと表現可能であると判定される。
【0045】
本出願の本実装では別の場合、すなわち、第1のデータ処理キューに記憶されたサービスデータの処理量が第1の処理量より少ない場合があり、これは、第1の処理量が決定された後で、第1のデータ処理キューに記憶されたサービスデータが第1の処理量の要件を満たすことができないことを意味する。リソースの適切な使用を実装するために、この場合、第1のデータ処理キューに記憶されたサービスデータの処理量に基づいて第1のデータ処理キューからサービスデータが順次読み込まれる。すなわち、第1のデータ処理キューに記憶された全てのサービスデータが読み込まれる。
【0046】
この場合、第1のデータ処理キューに記憶されたサービスデータの処理量およびブロックの記憶容量に基づいて第2のデータ処理キューからサービスデータの処理量が読み込まれ、そして第2のデータ処理キューから読み込まれるサービスデータの決定した処理量に基づいて第2のデータ処理キューからサービスデータが順次読み込まれる。
【0047】
前記した式がここでやはり一例として使用される。第1のデータ処理キューに記憶されたサービスデータの処理量がmであると仮定する。(1-p)×xに対応する値がmより大きいので、第1の処理量はmであるべきである。そのため、決定した第2の処理量は(x-m)であるべきである。すなわち、比較的高いサービス優先度のサービスデータの量が比較的少ないとき、比較的高いサービス優先度のサービスデータが優先して処理可能であり、そして比較的低いサービス優先度のサービスデータが可能な限り処理可能であることが保証可能である。
【0048】
本出願の本実装では、第1のデータ処理キューから第1の処理量を満たすサービスデータを順次読み込むことが、サービスデータの対応する処理時間の順序に基づいて第1のデータ処理キューから第1の処理量を満たすサービスデータを順次読み込むことを含む。
【0049】
同様に、第2の処理量を満たすサービスデータも、サービスデータの対応する処理時間の順序に基づいて第2のデータ処理キューから順次読み込み可能である。
【0050】
本出願の本実装では、読み込んだサービスデータをブロックに記憶するステップが、サービスデータの対応する処理時間の順序に基づいて読み込んだサービスデータをブロックに順次記憶するステップを含む。
【0051】
例えば、図2(b)は、本出願の一実装に係る、異なる処理レベルのサービスデータに対応するデータ処理キューを例示する概要図である。ステップ103に記載される方法で2つのデータ処理キューから異なる量のサービスデータが順次読み込まれることが図2(b)から見て取れる。
【0052】
ブロックに比較的低い処理レベルのサービスデータを記憶する所定の処理比率が各回30%であり、かつブロックの記憶容量が10である、すなわち、10個のサービスデータが記憶可能であると仮定する。高処理レベルのデータ処理キューに4つのサービスデータが記憶され、そして低処理レベルのデータ処理キューに8つのサービスデータが記憶される。選択される必要がある高処理レベルのサービスデータの処理量がシステム構成ポリシーに従って(1-30%)×10=7であると判定される。明らかに、4は7より小さい。したがって、高処理レベルのデータ処理キューに記憶された4つ全てのサービスデータが取り出され、そして低処理レベルのデータ処理キューから6つのサービスデータが取り出される。10個の得られたサービスデータは、サービスデータの処理時間に基づいてブロックに記憶される。
【0053】
ブロックに比較的低い処理レベルのサービスデータを記憶する所定の処理比率が各回30%であり、かつブロックの記憶容量が10である、すなわち、10個のサービスデータが記憶可能であると仮定する。高処理レベルのデータ処理キューに8つのサービスデータが記憶され、そして低処理レベルのデータ処理キューに8つのサービスデータが記憶される。選択される必要がある高処理レベルのサービスデータの処理量がシステム構成ポリシーに従って(1-30%)×10=7であると判定される。明らかに、8は7より大きい。したがって、高処理レベルのデータ処理キューから7つのサービスデータが取り出され、そして低処理レベルのデータ処理キューから3つのサービスデータが取り出される。10個の得られたサービスデータは、サービスデータの処理時間に基づいてブロックに記憶される。
【0054】
本出願の本実装では、ノードは、ノードによって異なるデータ処理キューに対して以下の動作、すなわち、第1のデータ処理キューに対応する処理レベルを判定し、そして処理レベルに対応する所定の処理比率を得ることと、決定した処理比率およびブロックの記憶容量に基づいて処理量を決定し、そして第1のデータ処理キューから処理量を満たすサービスデータを順次読み込むこととを別々に行うという方法で、異なるデータ処理キューから所定の条件を満たすサービスデータを別々に読み込むこともできる。
【0055】
各データ処理キューに関して、データ処理キューに対応する処理レベルが判定され、そして更に処理レベルに対応する所定の処理比率に基づいてデータ処理キューに対応する処理比率が決定される。決定した処理比率およびブロックの記憶容量に基づいて処理量が決定され、そしてデータ処理キューから処理量を満たすサービスデータが順次読み込まれる。
【0056】
例えば、n個のデータ処理キューが含まれ、そしてn個のデータ処理キューはn個の処理レベルに対応する。異なる処理レベルに対応する処理比率はaiによって表され得る、すなわち、第1の処理レベルに対応する処理比率はa1であり、第iの処理レベルに対応する処理比率はaiであり、そして第nの処理レベルに対応する処理比率はanであり、かつ(a1+a2+...+ai+...+an)=1。各データ処理キューに関して、ブロックの記憶容量がXであれば、第1の処理レベルのデータ処理キューに対応する処理量はa1×Xであり、第iの処理レベルのデータ処理キューに対応する処理量はai×Xであり、そして第nの処理レベルのデータ処理キューに対応する処理量はan×Xである。
【0057】
本出願の本実装で提供される技術的解決策によれば、異なるサービスデータが処理レベルに基づいて異なるデータ処理キューに記憶され、そしてデータをブロックに記憶するときに、所定の条件に基づいて異なるデータ処理キューから所定量のサービスデータが読み込まれ、その結果、異なる処理レベルのサービスデータが処理可能であり、時間に基づいてのみサービスデータを処理する既存技術の規則が破棄可能であり、そして比較的高いサービス優先度のサービスを処理する低効率という既存技術の問題が軽減可能である。本出願の実装で提供される解決策は、高サービス優先度のサービスのサービスデータを処理する効率を保証するだけでなく、低サービス優先度のサービスのサービスデータを処理する効率も保証する。サービス処理優先度が満たされると、ブロックチェーンにおいてサービスデータを処理する柔軟性が上げられ、そしてサービス応用分野におけるブロックチェーンの使用価値も高められる。
【0058】
図3は、本出願の一実装に係る、ブロックチェーンベースのデータ処理方法のシナリオを例示する図である。サービスデータを受信すると、ブロックチェーンネットワーク内のノードが、サービスデータの処理レベルに基づいてサービスデータのためのデータ処理キューを選択し、そしてサービスデータをデータ処理キューへ書き込むことができることが図3から見て取れる。新たなブロックが生成されると、ノードは、サービスデータ選択ポリシー(すなわち、前記した実装におけるステップ103に記載される方法)に基づいて異なるデータ処理キューからサービスデータを選択し、そして選択したサービスデータをブロックに記憶する。
【0059】
(実装)
(実装2)
【0060】
図4は、本出願の一実装に係る、ブロックチェーンベースのデータ処理装置を例示する概要構造図である。データ処理装置は、取得ユニット401、記憶ユニット402および処理ユニット403を含む。
【0061】
取得ユニット401は、所定の期間に生成される少なくとも1つのサービスデータを得るように構成され、サービスデータは、サービスデータを生成するサービスの処理レベルを含む。
【0062】
記憶ユニット402は、サービスデータを処理レベルと一致するデータ処理キューに記憶するように構成される。
【0063】
処理ユニット403は、新たなブロックが生成されると、異なるデータ処理キューから所定の条件を満たすサービスデータを別々に読み込み、そして読み込んだサービスデータをブロックに記憶するように構成される。
【0064】
本出願の別の実装では、所定の条件は、ブロックの記憶容量および異なる処理レベルのサービスデータの所定の処理比率に基づいて決定される。
【0065】
本出願の別の実装では、処理ユニット403は、異なるデータ処理キューから所定の条件を満たすサービスデータを別々に読み込む上で、異なるデータ処理キューに対して以下の動作、すなわち、第1のデータ処理キューに対応する処理レベルを判定することと、処理レベルが第1の処理レベルであれば、第2の処理レベルのサービスデータの所定の処理比率を決定することであって、第1の処理レベルが第2の処理レベルより高い、ことと、決定した処理比率およびブロックの記憶容量に基づいて第1の処理レベルのサービスデータの第1の処理量を決定することと、第1の処理量に基づいて第1のデータ処理キューから第1の処理量を満たすサービスデータを順次読み込むこととを別々に行うことを含む。
【0066】
本出願の別の実装では、処理ユニット403は、第1の処理量に基づいて第1のデータ処理キューから第1の処理量を満たすサービスデータを順次読み込む上で、第1のデータ処理キューに記憶されたサービスデータの処理量が第1の処理量より少ないとき、第1のデータ処理キューに記憶されたサービスデータの処理量に基づいて第1のデータ処理キューからサービスデータを順次読み込むことを含む。
【0067】
本出願の別の実装では、データ処理装置は、決定ユニット404を更に含む。
【0068】
決定ユニット404は、第1のデータ処理キューに記憶されたサービスデータの処理量およびブロックの記憶容量に基づいて第2のデータ処理キューから読み込まれるサービスデータの処理量を決定し、そして第2のデータ処理キューから読み込まれるサービスデータの決定した処理量に基づいて第2のデータ処理キューからサービスデータを順次読み込む。
【0069】
本出願の別の実装では、処理ユニット403は、処理レベルが第2の処理レベルであれば、第2の処理レベルのサービスデータの所定の処理比率を更に決定し、決定した処理比率およびブロックの記憶容量に基づいて第2の処理レベルのサービスデータの第2の処理量を決定し、そして第2の処理量に基づいて第1のデータ処理キューから第2の処理量を満たすサービスデータを順次読み込む。
【0070】
本出願の別の実装では、処理ユニット403は、第1のデータ処理キューから第1の処理量を満たすサービスデータを順次読み込む上で、サービスデータの対応する処理時間の順序に基づいて第1のデータ処理キューから第1の処理量を満たすサービスデータを順次読み込むことを含む。
【0071】
本出願の別の実装では、処理ユニット403は、読み込んだサービスデータをブロックに記憶する上で、サービスデータの対応する処理時間の順序に基づいて読み込んだサービスデータをブロックに順次記憶することを含む。
【0072】
本出願の別の実装では、データ処理装置は、作成ユニット405を更に含む。
【0073】
作成ユニット405は、サービスの処理レベルに基づいて異なるデータ処理キューを事前に作成する。
【0074】
記憶ユニット402は、サービスデータを処理レベルと一致するデータ処理キューに記憶する上で、処理レベルとデータ処理キューとの間のマッピング関係に基づいてサービスデータに含まれる処理レベルに対応するデータ処理キューを決定することと、決定したデータ処理キューにサービスデータを記憶することとを含む。
【0075】
本出願の別の実装では、処理ユニット403は、異なるデータ処理キューから所定の条件を満たすサービスデータを別々に読み込む上で、異なるデータ処理キューに対して以下の動作、すなわち、第1のデータ処理キューに対応する処理レベルを判定し、そして処理レベルに対応する所定の処理比率を得ることと、決定した処理比率およびブロックの記憶容量に基づいて処理量を決定し、そして第1のデータ処理キューから処理量を満たすサービスデータを順次読み込むこととを別々に行うことを含む。
【0076】
本出願の本実装で提供されるデータ処理装置がソフトウェアまたはハードウェアを使用することによって実装可能であることに留意する価値がある。実装はここで限定されない。データ処理装置は、異なるサービスデータを処理レベルに基づいて異なるデータ処理キューに記憶し、そしてデータをブロックに記憶するときに、所定の条件に基づいて異なるデータ処理キューから所定量のサービスデータを読み込み、その結果、異なる処理レベルのサービスデータが処理可能であり、時間に基づいてのみサービスデータを処理する既存技術の規則が破棄可能であり、そして比較的高いサービス優先度のサービスを処理する低効率という既存技術の問題が軽減可能である。本出願の実装で提供される解決策は、高サービス優先度のサービスのサービスデータを処理する効率を保証するだけでなく、低サービス優先度のサービスのサービスデータを処理する効率も保証する。サービス処理優先度が満たされると、ブロックチェーンにおいてサービスデータを処理する柔軟性が上げられ、そしてサービス応用分野におけるブロックチェーンの使用価値も高められる。
【0077】
1990年代、技術的改良がハードウェア改良(例えば、ダイオード、トランジスタまたはスイッチなどの回路構成への改良)であるかソフトウェア改良(方法手順への改良)であるかが明確に区別可能である。しかしながら、技術が発達するにつれて、多くの方法手順への現在の改良がハードウェア回路構成への直接改良と考えられ得る。設計者は通常、改善された方法手順をハードウェア回路へプログラムして対応するハードウェア回路構成を得る。したがって、方法手順は、ハードウェアエンティティモジュールを使用することによって改善可能である。例えば、プログラマブルロジックデバイス(PLD)(例えば、フィールドプログラマブルゲートアレイ(FPGA))がそのような集積回路であり、そしてPLDの論理機能はデバイスプログラミングを通じてユーザによって決定される。設計者は、特定用途向け集積回路チップを設計および生産することをチップメーカーに要求することなく、プログラミングを行ってデジタルシステムをPLDに「集積する」。加えて、現在、集積回路チップを手動で製造する代わりに、そのようなプログラミングは大抵、「論理コンパイラ」ソフトウェアを使用することによって実装される。論理コンパイラソフトウェアは、プログラムを開発するおよび書くために使用されるソフトウェアコンパイラと同様である。オリジナルコードは、コンパイルのための特定のプログラミング言語で書かれる必要がある。その言語はハードウェア記述言語(HDL)と称される。高級ブール式言語(ABEL)、Alteraハードウェア記述言語(AHDL)、Confluence、コーネル大学プログラミング言語(CUPL)、HDCal、Java(登録商標)ハードウェア記述言語(JHDL)、Lava、Lola、MyHDL、PALASMおよびRubyハードウェア記述言語(RHDL)など、多くのHDLがある。超高速集積回路ハードウェア記述言語(VHDL)およびVerilogが最も一般に使用される。一旦論理的方法手順がいくつかの記載したハードウェア記述言語を使用することによって論理的にプログラムされ、そして集積回路へプログラムされれば、その方法手順を実装するハードウェア回路が容易に得られることも当業者は理解するはずである。
【0078】
コントローラは、任意の適切な方法を使用することによって実装可能である。例えば、コントローラは、マイクロプロセッサもしくはプロセッサ、またはマイクロプロセッサもしくはプロセッサによって実行可能であるコンピュータ可読プログラムコード(ソフトウェアもしくはファームウェアなど)を記憶したコンピュータ可読媒体、論理ゲート、スイッチ、特定用途向け集積回路(ASIC)、プログラマブルロジックコントローラ、または組込みマイクロプロセッサであり得る。コントローラの例は、以下のマイクロプロセッサ、すなわち、 ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20およびSilicon Labs C8051F320を含むが、これらに限定されない。メモリコントローラは、メモリの制御論理の一部として実装可能でもある。コンピュータ可読プログラムコードを使用することによってコントローラを実装することに加えて、方法ステップに論理プログラミングが行われて、コントローラが論理ゲート、スイッチ、特定用途向け集積回路、プログラマブルロジックコントローラおよび組込みマイクロコントローラの形態で同じ機能を実装するのを可能にし得ることも当業者は知っている。したがって、コントローラはハードウェア部品と考えられ得、そしてコントローラにおいて様々な機能を実装するように構成される装置もハードウェア部品における構造と考えられ得る。または、様々な機能を実装するように構成される装置は、方法を実装するソフトウェアモジュールともハードウェア部品における構造とも考えられさえできる。
【0079】
以上の実装で例示されるシステム、装置、モジュールまたはユニットは、コンピュータチップまたはエンティティを使用することによって実装可能である、または或る機能を有する製品を使用することによって実装可能である。典型的な実装装置がコンピュータである。コンピュータは、例えば、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ付き電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーション装置、電子メール装置、ゲーム機、タブレットコンピュータ、もしくはウェアラブル装置、またはこれらの装置のいずれかの組合せであり得る。
【0080】
説明のし易さのため、上記装置は、機能を様々なユニットに分けることによって記載される。もちろん、本出願が実装されるときに、各ユニットの機能は1つまたは複数のソフトウェアおよび/またはハードウェアで実装可能である。
【0081】
本開示の一実装が方法、システムまたはコンピュータプログラム製品として提供可能であることを当業者は理解するはずである。したがって、本開示は、ハードウェアのみの実装、ソフトウェアのみの実装、またはソフトウェアおよびハードウェアの組合せでの実装の形態を使用できる。その上、本開示は、コンピュータ使用可能プログラムコードを含む1つまたは複数のコンピュータ使用可能記憶媒体(ディスクメモリ、CD-ROM、光メモリ等を含むがこれらに限定されない)に実装されるコンピュータプログラム製品の形態を使用できる。
【0082】
本開示は、本開示の実装に基づいて方法、装置(システム)およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照しつつ記載される。フローチャートおよび/またはブロック図内の各プロセスおよび/または各ブロックならびにフローチャートおよび/またはブロック図内のプロセスおよび/またはブロックの組合せを実装するためにコンピュータプログラム命令が使用可能であることに留意する価値がある。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、埋込みプロセッサ、または別のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを生成でき、その結果、コンピュータまたは別のプログラム可能なデータ処理装置のプロセッサによって実行される命令は、フローチャート内の1つもしくは複数のプロセスにおけるおよび/またはブロック図内の1つもしくは複数のブロックにおける特定の機能を実装するための装置を生成する。
【0083】
これらのコンピュータプログラム命令は、コンピュータまたは別のプログラム可能なデータ処理装置に特定の方法で動くように命令できるコンピュータ可読メモリに記憶可能であり、その結果、コンピュータ可読メモリに記憶された命令は、命令装置を含むアーチファクトを生成する。命令装置は、フローチャート内の1つもしくは複数のプロセスにおけるおよび/またはブロック図内の1つもしくは複数のブロックにおける特定の機能を実装する。
【0084】
これらのコンピュータプログラム命令は、コンピュータまたは別のプログラム可能なデータ処理装置へロード可能であり、その結果、コンピュータまたは別のプログラム可能な装置上で一連の動作およびステップが行われ、それによってコンピュータ実装処理を生成する。したがって、コンピュータまたはプログラム可能な装置上で実行される命令は、フローチャート内の1つもしくは複数のプロセスにおけるおよび/またはブロック図内の1つもしくは複数のブロックにおける特定の機能を実装するためのステップを提供する。
【0085】
典型的な構成では、コンピューティング装置は、1つまたは複数のプロセッサ(CPU)、1つまたは複数の入出力インターフェース、1つまたは複数のネットワークインターフェースおよび1つまたは複数のメモリを含む。
【0086】
メモリは、非永続メモリ、ランダムアクセスメモリ(RAM)、不揮発性メモリ、および/またはコンピュータ可読媒体である別の形態、例えば、リードオンリメモリ(ROM)もしくはフラッシュメモリ(フラッシュRAM)を含むことができる。メモリはコンピュータ可読媒体の一例である。
【0087】
コンピュータ可読媒体は、任意の方法または技術を使用することによって情報を記憶できる永続、非永続、可動かつ非可動媒体を含む。情報は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータであり得る。コンピュータ記憶媒体の例は、パラメータランダムアクセスメモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、別の種類のランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、フラッシュメモリまたは別のメモリ技術、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)または別の光記憶装置、カセット磁気テープ、磁気テープ/磁気ディスク記憶装置または別の磁気記憶装置を含むが、これらに限定されない。コンピュータ記憶媒体は、コンピューティング装置によってアクセス可能な情報を記憶するために使用可能である。本明細書での定義に基づいて、コンピュータ可読媒体は、変調データ信号および搬送波などの一時的コンピュータ可読媒体(一時的媒体)を含まない。
【0088】
用語「含む」、「含有する」またはそれらのいかなる他の変形も非排他的包含を網羅すると意図されるので、要素の列記を含むプロセス、方法、製品もしくは装置は、それらの要素を含むだけでなく、明白に列記されない他の要素も含む、またはそのようなプロセス、方法、製品もしくは装置に固有の要素を更に含むことに更に留意する価値がある。更なる制約なしで、「...を含む」に先行する要素は、その要素を含むプロセス、方法、製品または装置における追加の同一要素の存在を排除しない。
【0089】
本出願は、コンピュータ、例えば、プログラムモジュールによって実行されるコンピュータ実行可能命令の一般の文脈で記載可能である。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。本出願は分散コンピューティング環境でも実施可能である。分散コンピューティング環境では、タスクは、通信ネットワークを通じて接続される遠隔処理装置によって行われる。分散コンピューティング環境では、プログラムモジュールは、記憶装置を含むローカルおよび遠隔の両方のコンピュータ記憶媒体に設けられ得る。
【0090】
本明細書における実装は累進的に記載されている。実装の同じまたは同様の部分に関しては、実装が参照可能である。各実装は他の実装との差に重点を置いている。特に、システム実装は基本的に方法実装と同様であり、したがって、簡潔に記載される。関連部分に関しては、方法実装における関連説明が参照可能である。
【0091】
以上の実装は本出願の実装であり、本出願を限定するとは意図されない。当業者は本出願に様々な修正および変更を加えることができる。本出願の趣旨および原則から逸脱することなくなされるいかなる修正、等価な置換または改良も、本出願における請求項の範囲内に納まるものとする。
【符号の説明】
【0092】
401 取得ユニット
402 記憶ユニット
403 処理ユニット
404 決定ユニット
405 作成ユニット
図1
図2(a)】
図2(b)】
図3
図4