現在、図面を参照しながら、例示的な実施例について全面的に説明する。しかしながら、例示的な実施例は、複数種の形態で実施でき、ここで説明された実施例に限定されるものとして理解すべきではない。逆に、これらの実施例は、本開示を全面的かつ完全なものにさせ、例示的な実施例の構想を当業者に完全に伝達するために提供するものである。図面において、同一の符号は、同一又は類似した部分を示し、したがって、それらについての重複する説明が省略される。
また、説明された特徴、構造又は特性は、適切な方式で1つ以上の実施例に組み合わせることができる。以下の説明では、本開示の実施例を十分に理解するように、多くの具体的な詳細が提供される。しかしながら、当業者であれば、前記特定の詳細の1つまたはそれ以上無しで、本開示の技術案を実施でき、又は、他の方法、ユニット、材料、装置、ステップ等を用いることができること気づくであろう。他の場合、本開示の各態様が不明瞭になることが回避されるよう、公知の構造、方法、装置、実装、材料又は操作が詳細に示されていないか、又は説明されていない。
図面に示すブロック図は、機能エンティティに過ぎず、必ずしも物理的に独立したエンティティに対応するものではない。すなわち、ソフトウェアの形態でこれらの機能エンティティを実現し、又は1つ以上のソフトウェアがハードウェア化されたモジュールでこれらの機能エンティティ又は機能エンティティの一部を実現し、又は、異なるネットワーク及び/又はプロセッサ装置及び/又はマイクロコントローラでこれらの機能エンティティを実現することができる。
本例では、まず、ネットワーク機器に適用できる2次元バーコードの生成方法を提供し、前記ネットワーク機器は、たとえば、サーバなどの電子機器であり得る。図1に示すように、該2次元バーコードの生成方法は、以下のステップを含み得る。
ステップS110、入力情報に基づいてデータコードワード(data codeword)シーケンスを生成する。
ステップS120、前記データコードワードシーケンスに対して暗号化処理を行うことで、暗号化コードワードシーケンスを生成する。
ステップS130、誤り訂正ブロックの数(number of error correction blocks)を決定する。
ステップS140、前記誤り訂正ブロックの数に対応する構築方式により、前記データコードワードシーケンス及び前記暗号化コードワードシーケンスから2次元バーコード情報を生成する。
本例における2次元バーコードの生成方法によれば、一方ではデータコードワードシーケンスに対して暗号化処理を行うことができるため、データ内容の改ざんを防止でき、2次元バーコードの安全性を向上させることができ、他方では、誤り訂正ブロックの数に対応する構築方式により、データコードワードシーケンス及び暗号化コードワードシーケンスから2次元バーコード情報を生成するため、暗号化コードワードシーケンスの完全な埋め込みを効率的に完了できる。
次に、本例における2次元バーコードの生成方法についてさらに説明する。
ステップS110では、入力情報に基づいてデータコードワードシーケンスを生成する。
入力情報は、入力されるデータストリームであり、2次元バーコードを生成することを必要とする情報である。本例示的な実施形態では、まず、入力情報を分析してその長さを決定し、入力情報の長さに基づいて対応する2次元バーコードのフォーマット及びバージョンを決定する。ここで、2次元バーコードのフォーマットには、誤り訂正レベル(error correction level)、マスク(mask)の番号や誤り訂正コード(error correction code)などの情報が含まれており、2次元バーコードには複数のバージョンがあってもよく、各バージョンは固有のシンボル構造を表す。マスク番号は、後続のマスク操作でしか取得できないため、このときは空でもよい。
その後、データ符号化により入力情報をビットストリームに変換し、モード変換を行うことでデータビットストリームをより短い長さに変換する必要があるか否かを決定する。また、データ符号化により入力情報をビットストリームに変換した後、リードソロモン誤り訂正(Reed−solomon Error Correction、RS誤り訂正)符号化などのアルゴリズムにより、入力情報に対応するRS符号データコードワードシーケンスを生成することができる。
ステップS120では、前記データコードワードシーケンスに対して暗号化処理を行うことで、暗号化コードワードシーケンスを生成する。
本例では、このステップは、秘密鍵管理システムに基づいて前記データコードワードシーケンスに対応する秘密鍵を生成し、生成された秘密鍵を使用して、暗号化アルゴリズムに基づいて前記データコードワードシーケンスを暗号化するステップと、暗号化されたデータコードワードシーケンスを、予め設定された符号化アルゴリズムに従って、前記暗号化コードワードシーケンスに変換するステップと、を含み得る。
RS符号データコードワードシーケンスを取得した後、一実施例では、秘密鍵管理システムに基づいて前記RS符号データコードワードシーケンスに対応する秘密鍵を生成するステップは、該RS符号データコードワードシーケンスを秘密鍵管理システムに入力して、該RS符号データコードワードシーケンスに対応する秘密鍵を生成するステップを含み得る。別の実施例では、該RS符号データコードワードシーケンスに対応する符号化記号を生成し、該符号化記号を秘密鍵管理システムに入力することにより、該符号化記号に対応する秘密鍵を生成し得る。
本例では、秘密鍵管理システムごとに秘密鍵生成ルールが異なるため、秘密鍵管理システムごとに秘密鍵の生成方式が異なり、このため、秘密鍵管理システムごとに生成され前記RS符号データコードワードシーケンスに対応する秘密鍵も異なる場合がある。本開示では、秘密鍵管理システム及び秘密鍵生成ルールについては特に制限がない。
データコードワードシーケンスに対応する秘密鍵が生成された後、秘密鍵を使用して、暗号化アルゴリズムによって該データコードワードシーケンスを暗号化する。次に、暗号化されたデータコードワードシーケンスに対して有限体変換を実行した後、RS誤り訂正符号化などのアルゴリズムを使用して符号化し、それにより、安全に暗号化されたRS符号暗号化コードワードシーケンスを得ることができる。ここで、該暗号化アルゴリズムは、DES(Data Encryption Standard、データ暗号化標準)暗号化アルゴリズム、AES(Advanced Encryption Standard、高度暗号化標準)暗号化アルゴリズムなどであってもよく、これについては、本開示では特に限定しない。
ステップS130では、誤り訂正ブロックの数を決定する。
本例示的な実施形態では、このステップは、前記データコードワードシーケンスの長さ(例えば、コードワードの数によって表される)及び誤り訂正レベルを取得するステップと、前記データコードワードシーケンスの長さ及び誤り訂正レベルに基づいて、予め設定された誤り訂正特性テーブルエントリで誤り訂正ブロックの数を検索するステップと、を含み得る。
この予め設定された誤り訂正特性テーブルエントリは、データコードワードシーケンスの長さ及び誤り訂正レベルなどの情報に基づいて予め設定されるものであってもよく、例えば、以下の表を参照する。
表1は、予め設定された誤り訂正特性テーブルエントリを示し、本開示の内容の例をさらに理解するためにのみ使用され、予め設定された誤り訂正特性テーブルエントリの具体的な内容を制限するものではない。
予め設定された誤り訂正特性テーブルエントリには、バージョン、コードワードの総数、誤り訂正レベル、対応する誤り訂正ブロックの数、及び各誤り訂正ブロックの誤り訂正コード間の対応関係が事前に設定されている。各誤り訂正ブロックの誤り訂正コードは(c、k、r)として表すことができる。ここで、cは各誤り訂正ブロック内のコードワードの総数(total number of codewords)を表し、kは該誤り訂正ブロック内のデータコードワードの数(number of data codewords)を表し、rは該誤り訂正ブロックの誤り訂正コード容量(number of error correction capacity)を表し、そして、c、k、rは、c=k+2*rの関係式を満たす。
RS符号データコードワードシーケンスが生成されると、RS符号データコードワードシーケンスの長さ(つまり、該シーケンス内のコードワードの総数)、所定のバージョン番号、及び誤り訂正レベルに基づいて、表1において対応する誤り訂正ブロックの数を検索できる。
ステップS140では、前記誤り訂正ブロックの数に対応する構築方式により、前記データコードワードシーケンス及び前記暗号化コードワードシーケンスから2次元バーコード情報を生成する。
本例示的な実施形態では、このステップは、前記誤り訂正ブロックの数が予め設定された閾値より大きいか否かを判断し、そうである場合、予め設定された誤り訂正特性テーブルエントリに基づいて対応する所定の埋め込まれる誤り訂正ブロックを検索し、前記暗号化コードワードシーケンスを前記誤り訂正ブロックに埋め込むステップと、そうではない場合、前記暗号化コードワードシーケンスを、2次元バーコードを構成する最後のデータコードワードブロックに埋め込むステップと、を含み得る。前記構築方式には、ブロッククロッシング構築方式及び補足構築方式が含まれ得、例えば、予め設定された閾値を1に設定し、前記誤り訂正ブロックの数が1より大きいと判定された場合、ブロッククロッシング構築方式が用いられ、前記誤り訂正ブロックの数が1以下の場合、補足構築方式が用いられる。例えば、
ステップS110では、バージョンが3であり、誤り訂正レベルがQであり、データコードワードシーケンスのデータ長さが70であると判定された場合、表1で検索され得る対応する誤り訂正ブロックの数が2である。該誤り訂正ブロックの数2が予め設定された閾値1より大きいため、ブロッククロッシング構築方式を使用して最終情報を構築でき、つまり、該誤り訂正レベルQ、データ長さ70、及びバージョン番号3に対応する表1における各誤り訂正ブロックの誤り訂正コード(35、17、9)を検索し、RS符号暗号化コードワードシーケンスを各誤り訂正ブロック(35、17、9)の補足ビットに埋め込むことにより、最終情報が構築される。
しかし、ステップS110では、バージョンが2であり、誤り訂正レベルがQであり、データコードワードシーケンスのデータ長さが44であると判定された場合、表1で検索され得る対応する誤り訂正ブロックの数が1である。該誤り訂正ブロックの数1が予め設定された閾値1と等しいため、補足構築方式を使用して最終情報を構築でき、つまり、該暗号化コードワードシーケンスを、2次元バーコードを構成する最後のデータコードワードブロックの補足ビットに埋め込むことにより、最終情報が構築される。
本例示的な実施形態では、暗号化コードワード構造の完全性を確保するために、暗号化コードワードシーケンスを生成する前に、誤り訂正ブロックの数に対応する構築方式に応じて、暗号化コードワードシーケンスの長さ、すなわち暗号化コードワードシーケンスに含まれるコードワードの総数を予め決定しておく。例えば、暗号化コードワードシーケンスを誤り訂正ブロックに完全に埋め込むように、暗号化コードワードシーケンスの長さは、対応する構築方式の誤り訂正ブロック内の埋め込まれ得る補足ビットの数以下になるように制御される。
最終情報が構築された後、この最終情報をマトリックスに配置し、選択したマスクグラフィックを追加し、選択したマスクグラフィックに応じてフォーマットにおけるマスク番号情報を補足し、最後に、フォーマットとバージョン情報を追加し、それにより2次元バーコード(つまり、2次元バーコード記号)を生成する。
さらに、本例示的な実施形態では、端末機器に適用できる2次元バーコードの識別方法がさらに提供され、前記端末機器は、例えば、携帯電話、コンピュータ、PDAなど、2次元バーコードスキャン機能を有する各種の電子機器とすることができる。図2に示すように、前記2次元バーコードの識別方法は、ステップS210〜S240を含み得る。
ステップS210、暗号化された2次元バーコードを読み取って解析する。
このステップでは、暗号化された2次元バーコードを読み取って解析することには、電子機器を介して暗号化された2次元バーコードをスキャンして読み取り、2次元バーコードの深浅モジュールを解析し、フォーマット情報を復号し、この2次元バーコードにおけるデータコードワードシーケンスの長さを取得し、追加されたマスクグラフィックスを削除して、バージョンとフォーマット情報を決定し、誤り訂正レベル、マスク番号や誤り訂正コードなどの情報を取得する。
ステップS220、誤り訂正ブロックの数を決定する。
このステップでは、誤り訂正ブロックの数を決定する方式については、ステップS130における誤り訂正ブロックの数を決定する方式を参照することができ、ここでは詳しく説明しない。
ステップS230、誤り訂正ブロックの数に対応するデータ復元方式により、前記2次元バーコードのデータコードワードシーケンス及び暗号化コードワードシーケンスを復元する。
誤り訂正ブロックの数に対応するデータ復元方式により前記2次元バーコードのデータコードワードシーケンス及び暗号化コードワードシーケンスを復元するステップは、前記誤り訂正ブロックの数が予め設定された閾値よりも大きいか否かを判断し、そうである場合、予め設定された誤り訂正特性テーブルエントリに基づいて対応する所定の埋め込まれる誤り訂正ブロックを検索し、復号アルゴリズムを通じて前記誤り訂正ブロック内の暗号化コードワードシーケンスを取得するステップと、そうではない場合、復号アルゴリズムを通じて前記2次元バーコードを構成する最後のデータコードワードブロック内の前記暗号化コードワードシーケンスを取得するステップと、を含む。
このステップでは、予め設定された閾値は、上記ステップS140の予め設定された閾値と同じであってもよく、誤り訂正ブロックの数を決定した後、誤り訂正ブロックの数に対応するデータ復元方式には、ブロックごとのデータ復元方式及びセグメントごとのデータ復元方式が含まれ得る。誤り訂正ブロックの数が予め設定された閾値よりも大きい場合は、ブロックごとのデータ復元方式が用いられ、前記誤り訂正ブロックの数が予め設定された閾値以下の場合、セグメントごとのデータ復元方式が用いられる。
一例として、バージョンが3であり、誤り訂正レベルがQであり、データ長さが70であると決定され、予め設定された誤り訂正特性テーブルエントリ(表1)で検索された対応する誤り訂正ブロックの数が2である場合、該誤り訂正ブロックの数2が予め設定された閾値1より大きいため、ブロックごとのデータ復元方式を使用して、データコードワードシーケンス及び暗号化コードワードシーケンスを復元でき、つまり、該誤り訂正レベル、データ長さに対応する表1における各誤り訂正ブロックを検索し、対応する誤り訂正ブロックの誤り訂正コード(35、17、9)をそれから見つけ、次に、誤り訂正ブロック(35、17、9)の補足ビットからRS符号暗号化コードワードシーケンスを取得し、これにより、RS符号データコードワードシーケンス及びRS符号暗号化コードワードシーケンスを復元する。しかし、誤り訂正ブロックの数が1であると決定された場合は、この誤り訂正ブロックの数1が予め設定された閾値1と等しいため、セグメントごとのデータ復元方式を使用して、RS符号暗号化コードワードシーケンスを復元でき、つまり、2次元バーコードを構成する最後のデータコードワードブロックの補足ビットから、埋め込まれるRS符号暗号化コードワードシーケンスを取得し、これにより、RS符号データコードワードシーケンス及びRS符号暗号化コードワードシーケンスを復元する。
ステップS240、前記暗号化コードワードシーケンスに対してセキュリティチェックを行い、前記暗号化コードワードシーケンスがセキュリティチェックに合格すると、入力情報を取得する。
このステップでは、前記暗号化コードワードシーケンスに対するセキュリティチェックには、RS符号暗号化コードワードシーケンスを取得した後、まず、RS符号誤り訂正復号アルゴリズムを通じてRS符号暗号化コードワードシーケンスに対して有限体変換を実行し、秘密鍵管理システムに基づいて、有限体変換後の暗号化コードワードシーケンスを解読し、それにより、対応する秘密鍵を取得する。次に、該秘密鍵をチェックし、秘密鍵のチェック方式は、秘密鍵管理システムによって異なり、例えば、取得した秘密鍵をステップS120で取得した秘密鍵とマッチングさせることができ、又は、取得した秘密鍵をRS符号データコードワードシーケンスなどとマッチングすることもでき、両方がマッチングする場合は、セキュリティチェックに合格したと判断し、2次元バーコード記号における元の入力情報を復元できる。両方がマッチングしない場合、又は、取得した秘密鍵が0である場合、情報が改ざんされている可能性があり、セキュリティチェックに失敗したと判断し、2次元バーコード記号における元の入力情報を復元できない。このことから、本開示は、2次元バーコード情報のセキュリティチェックにより、2次元バーコード情報が改ざんされているか否かをタイムリーに確認でき、さらに2次元バーコード情報の実際の応用シナリオにおけるセキュリティを確保できることがわかる。
なお、本開示における方法の各ステップは、図面において特定の順序で説明されているが、これらステップが特定の順序で実行されなければならない、又は示されたすべてのステップが実行されなければならないことを要求又は示唆するものではない。追加又は代替として、特定のステップを省略したり、複数のステップを1つのステップに結合して実行したり、及び/又は1つのステップを複数のステップに分割して実行したりすることもできる。
また、本例では、2次元バーコードの生成装置がさらに提供される。図3に示すように、この2次元バーコードの生成装置300は、データコードワード生成モジュール310、暗号化コードワード生成モジュール320、誤り訂正コードブロック決定モジュール330、及び2次元バーコード生成モジュール340を備え得る。
データコードワード生成モジュール310は、入力情報に基づいてデータコードワードシーケンスを生成することに用いることができる。
暗号化コードワード生成モジュール320は、前記データコードワードシーケンスに対して暗号化処理を行うことで、暗号化コードワードシーケンスを生成することに用いることができる。
誤り訂正コードブロック決定モジュール330は、誤り訂正ブロックの数を決定することに用いることができる。
2次元バーコード生成モジュール340は、前記誤り訂正ブロックの数に対応する構築方式により、前記データコードワードシーケンス及び前記暗号化コードワードシーケンスから2次元バーコードを生成することに用いることができる。
上記の2次元バーコードの生成装置の各モジュールの詳細は、対応する2次元バーコードの生成方法で詳細に説明されているので、ここでは詳しく説明しない。
また、本例示的な実施例では、2次元バーコードの識別装置がさらに提供される。図4に示すように、この2次元バーコードの識別装置400は、2次元バーコード読み取りモジュール410、誤り訂正コードブロック決定モジュール420、コードワード復元モジュール430、及び入力情報取得モジュール440を備え得る。
2次元バーコード読み取りモジュール410は、暗号化された2次元バーコードを読み取って解析することに用いられる。
誤り訂正コードブロック決定モジュール420は、誤り訂正ブロックの数を決定することに用いられる。
コードワード復元モジュール430は、誤り訂正ブロックの数に対応するデータ復元方式により、前記2次元バーコードのデータコードワードシーケンス及び暗号化コードワードシーケンスを復元することに用いられる。
入力情報取得モジュール440は、前記暗号化コードワードシーケンスに対してセキュリティチェックを行い、前記暗号化コードワードシーケンスがセキュリティチェックに合格すると、入力情報を取得することに用いられる。
上記の2次元バーコードの識別装置の各モジュールの詳細は、対応する2次元バーコードの識別方法で詳細に説明されているので、ここでは詳しく説明しない。
なお、上記の詳細な説明では、2次元バーコードの生成装置300のいくつかのモジュール又はユニットが言及されているが、この分割は必須ではない。実際は、本開示の実施形態によれば、上記の2つ以上のモジュール又はユニットの特徴及び機能は、1つのモジュール又はユニットで具現化されてもよい。逆には、上記の1つのモジュール又はユニットの特徴及び機能は、複数のモジュール又はユニットにさらに分割して具現化されてもよい。
また、本開示の1つの例示的な実施例では、上記方法を実現できる電子機器がさらに提供される。
当業者が理解できるように、本開示の様々な態様がシステム、方法、又はプログラム製品として実現できる。したがって、本開示の様々な態様は、完全なハードウェアの実施例、完全なソフトウェアの実施例(ファームウェア、マイクロコードなどを含む)、又はハードウェアとソフトウェアの実施例の組み合わせの形で具体的に実現され得、ここで、これらは「回路」、「モジュール」又は「システム」と総称できる。
以下、本開示の実施例に係る電子機器500について、図5を参照しながら説明する。図5に示される電子機器500は、単なる例に過ぎず、本開示の実施例の機能及び使用範囲を何ら制限するものではない。
図5に示すように、電子機器500は、汎用コンピューティング機器の形で表されている。電子機器500の構成要素は、上記の少なくとも1つの処理ユニット510、少なくとも1つの記憶ユニット520、異なるシステムの構成要素(記憶ユニット520及び処理ユニット510を含む)を接続するバス530、及び表示ユニット540を含み得るが、これらに限定されない。
そのうち、前記記憶ユニット520は機械実行可能な命令を記憶し、前記機械実行可能な命令は、前記処理ユニット510によって実行されると、前記処理ユニット510に、本明細書に記載の「例示的な方法」部分に記載の本発明の各例示的な実施例に係るステップを実行させる。例えば、前記処理ユニット510は、図1に示すステップS110〜S140、及び図2に示すステップS210〜S240を実行することができる。
記憶ユニット520は、ランダムアクセス記憶ユニット(RAM)5201及び/又はキャッシュ記憶ユニット5202などの揮発性記憶ユニットの形態の読み取り可能な媒体を含み得、さらに、読み取り専用記憶ユニット(ROM)5203を含み得る。
記憶ユニット520は、(少なくとも1つの)命令モジュール5205のセットを有する命令/ユーティリティツール5204をさらに含み得る。そのような命令モジュール5205は、オペレーティングシステム、1つ以上のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータを含むが、これらに限定されず、これらの各例又はこれらの組み合わせには、ネットワーク環境の実装が含まれ得る。
バス530は、いくつかのタイプのバス構造の1つ以上を表すことができ、記憶ユニットバス又は記憶ユニットコントローラ、周辺バス、グラフィック加速ポート、処理ユニット、又は様々なバス構造のいずれかを使用するローカルエリアバスを含む。
電子機器500はまた、1つ以上の外部機器570(例えば、キーボード、ポインティング機器、ブルートゥース(登録商標)機器など)と通信することができ、ユーザがこの電子機器500とインタラクションすることを可能にする1つ以上の機器と通信することもでき、及び/又は、該電子機器500が1つ以上の他のコンピューティング機器と通信することを可能にする任意の機器(例えば、ルータ、モデムなど)と通信することもできる。そのような通信は、入力/出力(I/O)インターフェース550を介して実行され得る。さらに、電子機器500は、ネットワークアダプタ560を介して、1つ以上のネットワーク(例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、及び/又はインターネットなどのパブリックネットワーク)と通信することもできる。図示するように、ネットワークアダプタ560は、バス530を介して電子機器500の他のモジュールと通信する。なお、図には示されていないが、マイクロコード、機器ドライバー、冗長処理ユニット、外部磁気ディスクドライブアレイ、RAIDシステム、磁気テープドライブ、及びデータバックアップストレージシステムを含むが、これらに限定されない他のハードウェア及び/又はソフトウェアモジュールを電子機器500と共に使用できる。
上記実施例の説明を通して、当業者が容易に理解できるように、ここで説明される例示的な実施例がソフトウェアによって実現されてもよく、ソフトウェアと必要なハードウェアとの組み合わせによって実現されてもよい。したがって、本開示の実施例による技術案は、ソフトウェア製品の形態で具体化され得、このソフトウェア製品は、不揮発性記憶媒体(CD−ROM、Uディスク、モバイルハードディスクなどであり得る)又はネットワーク上に記憶され得、コンピューティング機器(パーソナルコンピュータ、サーバ、端末装置、又はネットワーク機器などであり得る)に本開示の実施例による方法を実行させるいくつかの命令を含む。
本開示の例示的な実施例では、本明細書の上記方法を実現することができるプログラム製品が記憶されたコンピュータ読み取り可能な記憶媒体がさらに提供される。いくつかの可能な実施例では、本開示の様々な態様は、プログラムコードを含むプログラム製品の形で実現することもでき、前記プログラム製品が端末機器上で実行されると、前記プログラムコードは、本明細書の上記「例示的な方法」部分に記載の本発明の様々な例示的な実施例によるステップを前記端末機器に実行させる。
図6に示すように、本開示の実施例による上記方法を実現するためのプログラム製品600が説明されており、ポータブルコンパクトディスク読み取り専用メモリ(CD−ROM)を使用することができ、プログラムコードを含み、端末機器、例えば、パソコンで実行できる。ただし、本開示のプログラム製品はこれに限定されず、本明細書では、読み取り可能な記憶媒体は、命令実行システム、装置又はデバイスによって又はそれらと組み合わせて使用され得るプログラムを含む又は記憶している任意の物理的な媒体であり得る。
前記プログラム製品は、1つ以上の読み取り可能な媒体の任意の組み合わせを使用することができる。読み取り可能な媒体は、読み取り可能な信号媒体又は読み取り可能な記憶媒体であり得る。読み取り可能な記憶媒体は、例えば、電気、磁気、光学、電磁気、赤外線又は半導体のシステム、装置、又はデバイス、あるいは上記の任意の組み合わせであり得るが、これらに限定されない。読み取り可能な記憶媒体の具体例(網羅的ではないリスト)には、1つ以上のワイヤーを備えた電気接続、ポータブルディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能な読み取り専用メモリ(EPROM又はフラッシュメモリ)、光ファイバー、ポータブルコンパクトディスク読み取り専用メモリ(CD−ROM)、光記憶デバイス、磁気記憶デバイス、又はこれらの適切な組み合わせが含まれる。
コンピュータ読み取り可能な信号媒体は、読み取り可能なプログラムコードが搬送された、ベースバンドで又は搬送波の一部として送信されるデータ信号を含み得る。この伝搬されたデータ信号は、多くの形態をとることができ、これら形態には、電磁信号、光信号、又はこれらの任意の適切な組み合わせが含まれるが、これらに限定されない。読み取り可能な信号媒体は、読み取り可能な記憶媒体以外の任意の読み取り可能な媒体であってもよく、この読み取り可能な媒体は、命令実行システム、装置、又はデバイスによって又はそれらと組み合わせて使用されるプログラムを送信、伝播、又は伝送することができる。
読み取り可能な媒体に含まれるプログラムコードは、任意の適切な媒体を使用して送信され得、この任意の適切な媒体には、無線、有線、光ファイバーケーブル、RFなど、又はこれらの任意の適切な組み合わせが含まれるが、これらに限定されない。
本開示の操作を実行するためのプログラムコードは、1つ以上のプログラミング言語の任意の組み合わせで書くことができ、前記プログラミング言語には、Java、C++などのオブジェクト指向プログラミング言語や、「C」言語又は類似したプログラミング言語などの従来の手続き型プログラミング言語が含まれる。プログラムコードは、完全にユーザのコンピューティング機器で実行したり、部分的にユーザの機器で実行したり、独立したソフトウェアパッケージとして実行したり、一部がユーザのコンピューティング機器で実行し、別の一部がリモートコンピューティング機器で実行したり、又は完全にリモートコンピューティング機器又はサーバで実行したりすることができる。リモートコンピューティング機器に係る場合、リモートコンピューティング機器は、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)など、あらゆる種類のネットワークを介してユーザのコンピューティング機器に接続でき、又は、外部のコンピューティング機器に接続できる(例えば、インターネットサービスプロバイダーによるインターネットを介して接続する)。
また、上記図面は、本開示の1つの例示的な実施例による方法に含まれる処理について模式的に説明するものに過ぎず、制限するためのものではない。理解しやすくするために、上記図面に示される処理は、これらの処理の時間順序を示したり、又は制限したりするものではない。なお、理解やすくするために、これらの処理は、たとえば、複数モジュールに同期又は非同期に実行されてもよい。
当業者は、明細書を配慮して本開示を実施した後、本開示の他の実施例に容易に想到できる。本願は、本開示のいかなる変形、用途又は適応的変化を含むことが意図され、これらの変形、用途又は適応的変化は、本開示の一般的な原理、本開示に開示されてない本技術分野での公知の常識又は常用技術手段を含む。明細書及び実施例は、例示的なものとすべきであり、本開示の実質的範囲及び要旨は、特許請求の範囲により指摘される。
なお、本開示は、以上説明され、図面に示される正確な構造に限られず、その範囲から逸脱することなく、様々な補正や変更を行うことができる。本開示の範囲は、添付の特許請求の範囲のみに限定される。