(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
本出願の目的、技術的解決策および利点をより明白にするために、以下、本出願の具体的な実装および添付図面を参照しつつ本出願の技術的解決策を明白かつ総合的に説明する。明らかに、記載される実装は本出願の実装の全てよりむしろほんの一部である。創意工夫なく本出願の実装に基づいて当業者によって得られる全ての他の実装が本出願の保護範囲内に納まるものとする。
【0015】
本出願の実装で提供される技術的解決策が添付図面を参照しつつ以下に詳細に記載される。
【0016】
図1は、本出願の一実装に係る、ブロックチェーンベースのデータ処理方法を例示する概略フローチャートである。本方法は次の通りに説明可能である。本出願の本実装における実行体は、ブロックチェーンネットワーク内の任意のサービスノード(ブロックチェーンノードとも称され得、以下単にノードと称される)であり得、ここでは限定されない。本出願の本実装では、実行体がノードである例が詳細な説明のために使用される。
【0017】
ステップ101:ブロックチェーンネットワーク内のノードが、所定の期間に生成される少なくとも1つのサービスデータを得る。
【0018】
サービスデータは、サービスデータを生成するサービスの処理レベルを含む。
【0019】
本出願の本実装では、最初に、異なるサービスに対してサービス優先度が決定される。ここで、サービス優先度はサービスデータの処理レベルに対応する、すなわち、より高いサービス優先度が、サービスに関して生成されるサービスデータのより高い処理レベルを示す。次いで、サービスデータが生成されるサービスのサービス優先度(または処理レベル)を表すフィールドがサービスデータに追加される。そのため、サービスデータを受信した後に、ノードは、フィールドを使用することによってサービスデータの処理レベルを判定できる。
【0020】
通常、サービスデータに含まれるフィールドは、ハッシュ値、バージョン番号、公開鍵、署名、サービスデータが帰属するブロックのハッシュ値、タイムスタンプ(すなわち、ノードがサービスデータを処理する時間)等を含むが、これらに限定されない。この場合、本出願の本実装に記載されるサービスデータに含まれるフィールドは、Table 1(表1)に図示されるものを含むが、これらに限定されない。フィールドのいくつかの属性がTable 1(表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個の処理レベルに対応する。異なる処理レベルに対応する処理比率はa
iによって表され得る、すなわち、第1の処理レベルに対応する処理比率はa
1であり、第iの処理レベルに対応する処理比率はa
iであり、そして第nの処理レベルに対応する処理比率はa
nであり、かつ(a
1+a
2+...+a
i+...+a
n)=1。各データ処理キューに関して、ブロックの記憶容量がXであれば、第1の処理レベルのデータ処理キューに対応する処理量はa
1×Xであり、第iの処理レベルのデータ処理キューに対応する処理量はa
i×Xであり、そして第nの処理レベルのデータ処理キューに対応する処理量はa
n×Xである。
【0057】
本出願の本実装で提供される技術的解決策によれば、異なるサービスデータが処理レベルに基づいて異なるデータ処理キューに記憶され、そしてデータをブロックに記憶するときに、所定の条件に基づいて異なるデータ処理キューから所定量のサービスデータが読み込まれ、その結果、異なる処理レベルのサービスデータが処理可能であり、時間に基づいてのみサービスデータを処理する既存技術の規則が破棄可能であり、そして比較的高いサービス優先度のサービスを処理する低効率という既存技術の問題が軽減可能である。本出願の実装で提供される解決策は、高サービス優先度のサービスのサービスデータを処理する効率を保証するだけでなく、低サービス優先度のサービスのサービスデータを処理する効率も保証する。サービス処理優先度が満たされると、ブロックチェーンにおいてサービスデータを処理する柔軟性が上げられ、そしてサービス応用分野におけるブロックチェーンの使用価値も高められる。
【0058】
図3は、本出願の一実装に係る、ブロックチェーンベースのデータ処理方法のシナリオを例示する図である。サービスデータを受信すると、ブロックチェーンネットワーク内のノードが、サービスデータの処理レベルに基づいてサービスデータのためのデータ処理キューを選択し、そしてサービスデータをデータ処理キューへ書き込むことができることが
図3から見て取れる。新たなブロックが生成されると、ノードは、サービスデータ選択ポリシー(すなわち、前記した実装におけるステップ103に記載される方法)に基づいて異なるデータ処理キューからサービスデータを選択し、そして選択したサービスデータをブロックに記憶する。
【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】
以上の実装は本出願の実装であり、本出願を限定するとは意図されない。当業者は本出願に様々な修正および変更を加えることができる。本出願の趣旨および原則から逸脱することなくなされるいかなる修正、等価な置換または改良も、本出願における請求項の範囲内に納まるものとする。