図1A~1Cは、一次元バーコード10の一例の概略ブロック図である。線形又は一次元(1D)バーコードは、テキスト情報(例えば、数字、文字など)を表すための様々な幅の平行線及びスペースからなる。図1Aに示されるように、典型的な1Dバーコード10は、開始記号12、続いてデータ記号14を含み、停止記号16で終了する。記号12~16は、平行線(「バー」)及びスペース18からなる。バーコード読み取り機は、1Dバーコード10を水平方向に読み取り、開始記号12及び停止記号16の場所に基づいてデータ記号14を読み取るときを識別する。
図1B~1Cは、universal product code-A(UPC-A)バーコード20の例である。UPC-Aバーコード20は、12桁の数字を表す1Dバーコードである。各桁は、可変幅の2本のバー及び2つのスペースの、一意のパターンで表される。幅の変形例には、1つ、2つ、3つ、及び4つのモジュール幅が含まれ、各桁には合計7つのモジュールが含まれる。図1Bにおいて、UPC-Aコード20には、開始記号(S)、6つの左桁(L)、中央記号(M)、6つの右桁(R)、及び終了記号(E)が含まれる。各桁及び記号は、バー及びスペース18のパターンを含む。開始(S)、中央(M)、及び終了(E)は、全てのUPC-Aコードにおいて同じガードパターンである。「L」及び「R」セクションは、12桁のコードを表し、ガードパターンは2つのグループを分離し、タイミングを確立する。最初の「L」桁は、これに続く桁によって使用される第1の数体系を示す。最後の「R」桁は、誤り検出チェック桁である。
図1Cは、図1BのUPC-Aバーコード20に対する例示的なエンコードテーブル22を含む。黒い平行線はバーであり、白い平行線はスペースである。クワイエットゾーンは、コードを周囲から分離するのに役立つ空白のスペースである。「L」セクション桁は、奇数パリティ(例えば、合計バー幅が奇数のモジュール数である)を有し、「R」セクション桁は、偶数パリティ(例えば、合計スペース幅が奇数のモジュール数である)を有する。
例えば、左セクションのゼロは、3モジュール幅のスペース、2モジュール幅のバー、1モジュール幅のスペース、及び1モジュールのバー(すなわち、合計スペース幅4モジュール及び合計バー幅3モジュール)によって表される。右セクションのゼロは、3モジュール幅のバー、2モジュール幅のスペース、1モジュール幅のバー、及び1モジュールのスペース(すなわち、合計スペース幅3モジュール及び合計バー幅4モジュール)を有する。UPCバーコードスキャナは、セクションのパリティの差に基づいて、左から右へ、又は右から左へ(すなわち、逆さまに)スキャンするかどうかを決定する。
図2A~2Dは、二次元バーコード24の一例の概略ブロック図である。図2Aに示されるように、二次元(2D)バーコード24には、価格、数量、ウェブアドレス、画像など、1Dバーコードよりも多くの情報を含むことを可能にするパターン(ドット、ピクセル、バー、ハニカム構造、多列バーコードなど)の垂直及び水平配置に基づいてエンコードされた情報が含まれる。パターンの水平及び垂直配置には、実際のデータ及び誤り訂正キーを表すデータ記号14、配向記号26、及び様々な非データ情報記号28(例えば、バージョン情報、フォーマット情報など)が含まれる。
図2B~2Dは、クイックレスポンス(QR)コード30の例である。QRコード(登録商標)30は、多くの用途で使用される2Dバーコードの一種である。図2Bは、完全なQRコード(登録商標)30を示し、図2C~2Dは、QRコード(登録商標)30の異なる構成要素を強調するために、QRコード(登録商標)30の不完全なバージョンを示す。図2Cは、QRコード(登録商標)30の配向記号26及び非データ情報記号28を含む。
QRコード(登録商標)30の配向記号26及び非データ情報記号28には、位置決めマーク32、タイミングパターン34、バージョン情報36、位置合わせマーク38、フォーマット情報40、及びクワイエットゾーン42が含まれる。(3隅の)位置決めマーク32は、コードが印刷される方向を示している。タイミングパターン34(白い四角形として示される)は、QRコード(登録商標)がどれだけ大きいかをスキャナが判定するのに役立つ。
バージョン情報36(黒い四角形の集合として示される)は、使用されるQRバージョン(例えば、40を超える異なるQRバージョンがある)を指定する。位置合わせマーク38は、スキャナのための追加の配向情報を提供する。位置合わせマーク38は、大きなQRコード(登録商標)をスキャンするときに役立つ。フォーマット情報40(濃い灰色のマークとして示される)は、耐障害性及びデータマスクパターンに関する情報を含む。クワイエットゾーン42は、QRコード(登録商標)をその周囲から区別する空白の境界である。
図2Dは、図2Cに含まれないQRコード(登録商標)パターンの残りを示し、これにはデータ記号14が含まれる。データ記号14は、実際のデータ及び誤り訂正キーを表すエンコードされたデータである。データ記号14は、特殊文字を含む最大7089桁又は4296文字を表す。データ記号14は冗長性を含み、これによりQRコード(登録商標)の最大30%が破棄されることができ、依然として読み取り可能である。
図3は、ネットワークコンピューティングデバイス46、第1のコンピューティングデバイス48、第2のコンピューティングデバイス50、及びインターフェース手段52を含む、マルチパートコードシステム44の一実施形態の概略ブロック図である。マルチパートコードシステム44は、2つ以上の当事者間のインタラクション60を完了するための、マルチパートコードの使用を容易にする。
マルチパートコードは、個々では使用できない少なくとも2つの部分からなる任意の種類の光学的に読み取り可能なコードである。使用できないとは、その部分を光学読み取り機/スキャナによって光学的に読み取ることができない、又は光学読み取り機から取得された情報が不完全である、かつ/若しくは意味のある情報を包含しないことを意味する。光学的に読み取り可能なコードは、一次元(1D)バーコード、二次元(2D)バーコード、数字コード、英数字コード、画像、並びに、光学的に読み取り可能なコードをスキャン、デコード、及び処理することによって情報がもたらされるようなデータを表す任意の図形パターン、のうちの1つ以上を含む。
ネットワークコンピューティングデバイス46、第1のコンピューティングデバイス48、及び第2のコンピューティングデバイス50は、携帯型コンピューティングデバイス及び/又は固定コンピューティングデバイスであり得る。携帯型コンピューティングデバイスは、ソーシャルネットワーキングデバイス、ゲーミングデバイス、携帯電話、スマートフォン、デジタルアシスタント、デジタル音楽プレーヤ、デジタルビデオプレーヤ、ラップトップコンピュータ、ハンドヘルドコンピュータ、タブレット、ビデオゲームコントローラ、携帯型マーチャントポイントオブセール(POS)デバイス(例えば、POS機能を有するモバイルデバイス)、及び/又はコンピューティングコアを含む任意の他の携帯型デバイスであり得る。固定コンピューティングデバイスは、コンピュータ(PC)、コンピュータサーバ、ケーブルセットトップボックス、衛星受信機、テレビセット、プリンタ、ファックスマシン、ホームエンターテインメント機器、ビデオゲームコンソール、固定マーチャントポイントオブセール(POS)デバイス(例えば、キャッシュレジスタ)、及び/又は任意のタイプのホーム又はオフィスコンピューティング機器であり得る。
第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50は、1つ以上の光学スキャナ68を含み、この1つ以上の光学スキャナ68は、データ及び/又は画像データの図形としてコード化された表現を、光学的にスキャン/検出/読み取るように動作可能である。光学スキャナ68は、光及び/又はカメラ撮像を使用して、データの図形コード化された表現を検出し、光学スキャナ68は、ペン型読み取り機、レーザースキャナ、全方向バーコードスキャナ、電荷結合デバイス(CCD)読み取り機、カメラベース読み取り機、及び広視野の読み取り機のうちの1つ以上を含み得る。
ペン型読み取り機は、ペン状のデバイスの先端に互いに隣接して置かれた光源及びフォトダイオードからなる。コードを読み取るために、ペンはコードを横切って移動し、これによりフォトダイオードは、コード化された情報を先端が横切るときに光源から反射して戻った光の強度を測定する。例えば、バーコードでは、暗いバーは光を吸収し、白いスペースは光を反射する。フォトダイオードは、バー及びスペースパターンの表現として、波形(例えば、電圧波形)を生成する。
レーザースキャナは、光源としてレーザービームを使用し、典型的には往復ミラー又は回転プリズムのいずれかを使用してコードを横断してレーザーを前後にスキャンすることを除いて、ペン型読み取り機と同様に動作する。フォトダイオードは、コードから反射される光強度を測定し、パターンを表す波形を生成するために使用される。全方向コードスキャナは、様々な方向の一連の直線又は湾曲したスキャンライン(例えば、レーザー)を使用して、画像上に投影し、これにより、画像の全ての領域が、配向又は角度に関係なくスキャンされる。
CCD読み取り機(又は発光ダイオード(LED)スキャナ)は、読み取り機の先頭に一列に並んだ数百個の小さな光センサのアレイを使用する。ペンスキャナ及びレーザースキャナとは対照的に、各センサは、コードから放射された周囲光を測定して、図形コードのデジタル画像を生成する。
カメラベースの読み取り機は、画像処理及びデコードアルゴリズムを使用して、捕捉された画像内の図形コードの場所を特定し、検出されたコード内の情報をデコードする。一例として、多くのスマートフォンには、図形コードの画像を捕捉するためにスマートフォンのカメラに依拠するコードスキャンアプリケーションが含まれる。オートフォーカス技術により、スマートフォンカメラの光スキャンの精度は向上する。
ビデオカメラ読み取り機は、小さなビデオカメラを使用してCCD読み取り機と同じCCD技術を実装するが、ビデオカメラが画像を生成するために、二次元領域に配置された数百行のセンサを有することを除く。広視野読み取り機は、高解像度の産業用カメラを使用して、複数のコードを同時に捕捉する。画像に現れる全てのコードは、即座にデコードされるか、又はプラグインを使用することによってデコードされる。
第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50は、それぞれのデバイスをネットワークコンピューティングデバイス46に関連付けるネットワークアプリケーション(「アプリ」)54を含む。ネットワークコンピューティングデバイス46は、マルチパートコード生成モジュール56及びインタラクション完成モジュール58を含む。ネットワークアプリケーション54には、(例えば、光学スキャナ68を介して)光学スキャンされて、保存された(例えば、コードのスクリーンショット、メモリに記憶されたコード)、又はデータの図形コード化された表現などの別様に検出された画像データを分析するための、画像処理及びエンコード/デコード回路を含む画像処理モジュール45が含まれる。
第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50は、インターフェース手段52を介してインタラクション60に関与する。インタラクション60は、データの交換である。例えば、インタラクション60は、第1のコンピューティングデバイス48と第2のコンピューティングデバイス50との間のデジタル支払い取引である。別の例として、インタラクション60は、第1のコンピューティングデバイス48と第2のコンピューティングデバイス50との間の合意(例えば、契約への署名)である。別の例として、インタラクション60は、第1のコンピューティングデバイス48と第2のコンピューティングデバイス50との間の本人確認(例えば、セキュリティチェックポイントインタラクション)である。別の例として、インタラクション60は、第1のコンピューティングデバイス48と第2のコンピューティングデバイス50との間の、イベントに入場するためのチケット確認である。別の例として、インタラクション60は、第1のコンピューティングデバイス48と第2のコンピューティングデバイス50との間の機密情報の共有である。
インターフェース手段52には、第1のコンピューティングデバイス又は第2のコンピューティングデバイスのうちの1つ以上の、光学スキャナ68、直接リンク(例えば、近距離通信(NFC))、及びネットワーク接続、のうちの1つ以上が含まれる。ネットワーク接続には、パブリックネットワーク及び/又はプライベートネットワークであり得る、1つ以上のローカルエリアネットワーク(LAN)及び/又は1つ以上のワイドエリアネットワーク(WAN)が含まれる。LANは、無線LAN(例えば、Wi-Fiアクセスポイント、Bluetooth、ZigBeeなど)及び/又は有線LAN(例えば、ファイアワイヤ、イーサネットなど)であり得る。WANは、有線及び/又は無線WANであり得る。例えば、LANは、個人のホーム無線ネットワーク又は企業の無線ネットワークであり、WANは、インターネット、携帯電話インフラストラクチャ、及び/又は衛星通信インフラストラクチャである。
一例として、第1のコンピューティングデバイス48は、スマートフォンであり、第2のコンピューティングデバイス50は、固定マーチャントPOSデバイス(例えば、POSレジスタ)であり、インターフェース手段52は、固定マーチャントPOSデバイスの光学スキャナ68である。別の例として、第1のコンピューティングデバイス48は、スマートフォンであり、第2のコンピューティングデバイス50は、固定マーチャントPOSデバイス(例えば、POSレジスタ)であり、インターフェース手段52は、スマートフォンカメラの形態の第1のコンピューティングデバイス48の光学スキャナ68である。
別の例として、第1のコンピューティングデバイス48は、スマートフォンであり、第2のコンピューティングデバイス50は、eコマースプラットフォームであり、インターフェース手段52は、ネットワーク接続である。例えば、スマートフォンは、(セルラ又は無線インターネット接続を介して)インターネットブラウザアプリケーションを使用して、eコマースプラットフォームにアクセスする。別の例として、第1のコンピューティングデバイス48は、スマートフォンであり、第2のコンピューティングデバイス50は、スマートフォンであり、インターフェース手段52は、Bluetooth接続である。
動作の一例では、ネットワークコンピューティングデバイス46は、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のうちの1つ以上からインタラクション情報(「情報」)62を受信する。インタラクション情報62は、第1のコンピューティングデバイス48と第2のコンピューティングデバイス50との間のインタラクション60に関する。インタラクション情報62には、第1のコンピューティングデバイス識別子(ID)、第2のコンピューティングデバイス識別子(ID)、支払い額、データファイル、署名ページ、イベント情報、所望の支払い方法、支払いアカウント情報、割引情報、プロモーション情報、ロイヤルティアカウント情報、及び個人情報(例えば、電子メール、電話番号、アドレス、社会保障番号など)のうちの1つ以上が含まれる。
一例として、インタラクション60は、第1のコンピューティングデバイス48から第2のコンピューティングデバイス50へのデジタル支払い取引である。第1のコンピューティングデバイス48は、ネットワークコンピューティングデバイス46に、第1のコンピューティングデバイス48識別子(ID)、支払い額、使用する所望の通貨及び/又は支払い方法、顧客ロイヤルティ情報、プロモーションコード、請求先住所、個人情報、データファイルなどの、第1のコンピューティングデバイス48に関連する支払い取引に関するインタラクション情報62を、(例えば、ネットワークアプリ54が第1のコンピューティングデバイス48にダウンロードされたデジタルウォレットアプリケーションである、ネットワークアプリ54を介して)送信する。
第2のコンピューティングデバイス50は、ネットワークコンピューティングデバイス46に、第2のコンピューティングデバイス50識別子(例えば、マーチャントID)、支払い額、所望の支払い方法の形態、提供される割引などの、第2のコンピューティングデバイス50に関連する支払い取引に関するインタラクション情報62を、(例えば、ネットワークアプリ54が、第2のコンピューティングデバイス50(例えば、POSデバイス)にインストールされたネットワークコンピューティングデバイス46と関連付けられた支払いソフトウェアである、ネットワークアプリ54を介して)送信する。
ネットワークコンピューティングデバイス46のマルチパートコード生成モジュール56は、コードの第1の部分64及び第2の部分66が個々では使用できないように、コードの第1の部分64及びコードの第2の部分66を生成する。コードの第1の部分64及び第2の部分66を位置合わせすることにより、インタラクション情報62を表すコードが光学的に作成される。第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のうちの1つ以上のネットワークアプリケーション54の画像処理モジュール45は、光学的に作成されたコードを検出、捕捉、及び処理するように動作可能である。
この例では、ネットワークコンピューティングデバイス46は、コードの第1の部分64を第1のコンピューティングデバイス48に送信し、コードの第2の部分66を第2のコンピューティングデバイス50に送信する。コードの第1の部分64及び第2の部分66は、完全なコードが光学的に作成されるように、ネットワークアプリケーション54の位置合わせ機能(例えば、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のうちの1つ以上の手動アクション)を通して位置合わせされなければならない。従来の光学的に読み取り可能なコードでは、コードが誤ってスキャンされたり、又は不正に複製されたりする可能性がある。完全なコードを作成するために位置合わせ機能を要求することにより、インタラクション60を完了するというユーザの意図が示され、不正使用を低減する。位置合わせ機能については、図8A~18を参照してより詳細に考察される。
光学的に作成されたコードが(例えば、ネットワークアプリケーション54の画像処理モジュール45を介して)捕捉されると、ネットワークアプリケーション54は、ネットワークコンピューティングデバイス46のインタラクション完成モジュール58と通信して、インタラクション60を完成させる。例えば、捕捉され、デコードされた完全なコードは、第1のコンピューティングデバイス48に関連付けられたアカウントから第2のコンピューティングデバイス50に関連付けられたアカウントにある金額を送金するようにインタラクション完成モジュール58に指示する情報を包含する。
光学的に作成されたコードが捕捉されていない場合(例えば、位置合わせ機能が完了する前に一定時間が経過した後、エラーによってなど)、ネットワークコンピューティングデバイス46は、1つ以上の解決策を実装し得る。例えば、ネットワークコンピューティングデバイス46は、適切な位置合わせの前に一定の時間が経過した後に、コードの新しい第1及び第2の部分を生成及び配信する(例えば、コードの新しい第1及び第2の部分は、位置合わせの前に30秒~1分ごとに生成及び配信される)。
別の例として、ネットワークコンピューティングデバイス46は、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のうちの1つ以上に、位置合わせに関して通知する(例えば、位置合わせを再試行する通知が送信される、新しいコードを再生成するかどうかに関するクエリが送信される、コードの第1及び第2の部分のうちの1つ以上に関連するエラーの通知が送信される、など)。
図4A~4Dは、個々の部分が意味のあるデータを包含しないマルチパートコードの例である。図4Aは、コードの第1の部分64及びコードの第2の部分66がクイックレスポンス(QR)コード30の不完全なデータを含む、マルチパートコードを含む。これらの部分は、QRスキャナによって読み取られることができる(例えば、配向マーク及び非データ情報が両方の部分に存在する)が、実際のデータ読み取り値は、意味のある情報を保持しない。コードの第1の部分64及び第2の部分66が位置合わせされる(例えば、一方がもう一方の上に置かれる)と、完全なQRコード(登録商標)30が作成され、意味のあるデータを読み取ることができる。
図4Bは、コードの第1の部分64及びコードの第2の部分66がUPC-Aバーコード20の不完全なデータを含む、マルチパートコードを含む。これらの部分は、バーコードスキャナによって読み取られることができるが(例えば、バリア記号が存在する)、実際のデータは、不完全であり、有意ではない。コードの第1の部分64及び第2の部分66が位置合わせされる(例えば、一方がもう一方の上に置かれる)と、完全なUPC-Aバーコード20が作成され、データを光学的に読み取ることができる。
図4Cは、コードの第1の部分64及びコードの第2の部分66が暗号化鍵などの英数字コードの不完全なデータを含む、マルチパートコードを含む。コードの第1の部分64及び第2の部分66は、使用される暗号化鍵タイプに従ってコードが意味を有するための十分なデータを含まず、コード間の間隙が光学読み取りエラーを引き起こす場合がある。コードの第1の部分64及び第2の部分66が位置合わせされる(例えば、一方がもう一方の上に置かれる)と、完全な英数字コード70が作成され、データを正確に読み取ることができる。
図4Dは、データを表すために任意の図形パターンを使用することができることを描写する一例である。図4Dのコード70は、各々が完全な図形コードの欠損部分である、コードの第1の部分64及びコードの第2の部分66を含む。コードの第1の部分64及びコードの第2の部分66は、コードのこれらの部分が意味を有するのに十分なデータを含まない。コードの第1の部分64及び第2の部分66が位置合わせされる(例えば、一方がもう一方の上に置かれる)と、完全な図形コード70が作成され、データを光学的に読み取ることができる。
図5A~5Dは、部分が読み取り不可能なデータを含む、マルチパートコードの例である。図5Aは、コードの第1の部分64及びコードの第2の部分66がクイックレスポンス(QR)コード30の読み取り不可能なデータを含む、マルチパートコードを含む。これらの部分には配向情報がこぼれているため、QRスキャナは個々の部分を正確に読み取ることができない。コードの第1の部分64及び第2の部分66が位置合わせされる(例えば、互いに隣に置かれる)と、正しい配向記号を有する完全なQRコード(登録商標)30が作成され、データを正確に読み取ることができる。
図5Bは、コードの第1の部分64及びコードの第2の部分66がUPC-Aバーコード20の読み取り不可能なデータを含む、マルチパートコードを含む。これらの部分にはバリア記号がこぼれており、記号全体が壊れているため、バーコードスキャナは個々の部分を正確に読み取ることができない。コードの第1の部分64及び第2の部分66が位置合わせされる(例えば、互いに隣に置かれる)と、UPC-Aバーコード20が作成され、データを正確に読み取ることができる。
図5C及び5Dは、コードの読み取り不可能な部分を作成するために、任意の図形パターンを使用してデータを表すことができること、かつ任意の分割化が可能であることを示す例である。図5Cは、コードの第1の部分64及びコードの第2の部分66が、デュアルバーコードに似た図形コード化されたデータ表現の読み取り不可能なデータを含む、マルチパートコードを含む。コードの第1の部分64は内側領域が欠落し、コードの第2の部分は周囲領域が欠落しているため、スキャナは、個々の部分を正確に読み取ることができない。コードの第1の部分64及び第2の部分66が(例えば、一方をもう一方の上に位置決めすることによって)位置合わせされると、完全なコード70が作成され、データを光学的に正確に読み取ることができる。
図5Dにおいて、コードの第1の部分64は、データが欠落している穴を包含し、コードの第2の部分66は、第1の部分から欠落している穴を含む。スキャナが、スキャンすべき矩形などのコードの特定の形状を探しているとき、コードの第1の部分64及び第2の部分66は、いずれにも認識可能な矩形の境界が存在しないため、読み取られない。コードの第1の部分64及び第2の部分66が位置合わせされると、必要な形状の完全な図形コード70が作成され、データを正確に読み取ることができる。
図6A~6Cは、ネットワークコンピューティングデバイス46、第1のコンピューティングデバイス48、第2のコンピューティングデバイス50、及びインターフェース手段52を含む、マルチパートコードシステム44の実施形態の概略ブロック図である。図6A~6Cは、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のうちの1つ以上に、コードの一部分を配信する例を示す。
図6Aにおいて、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50は、ネットワークコンピューティングデバイス46に接続するためのネットワークアプリケーション54と、光学スキャナ68とを有する。ネットワークアプリケーション54は、画像処理モジュール45を含む。ステップ1a及び/又は1bにおいて、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のうちの1つ以上は、インターフェース手段52又は他の手段を介してインタラクション60を起動する。
一例として、インタラクション60は、第1のコンピューティングデバイス48が、商品又はサービスのために第2のコンピューティングデバイス50に支払っており、インターフェース手段52が、ネットワーク接続であり、第2のコンピューティングデバイスが、マーチャントeコマースプラットフォームデバイスであり、第1のコンピューティングデバイス48が、スマートフォンであるような、支払い取引である。ステップ1aでインタラクション60を起動するために、第1のコンピューティングデバイス48は、インターネットブラウザアプリケーションを使用してeコマースウェブサイトにアクセスするために、インターフェース手段52(例えば、ネットワーク接続)を使用する。第1のコンピューティングデバイス48のユーザは、購入のために商品をeコマースウェブサイトから選択し、チェックアウトのために商品をオンラインカートに置く。チェックアウトプロセスによって図の次のステップがトリガされる。
別の例として、インタラクション60は、契約への署名であり、インターフェース手段52は、ネットワーク接続であり、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50は、スマートフォンである。インタラクション60を起動するために、ステップ1aにおいて、第1のコンピューティングデバイス48は、インターフェース手段52を介して(例えば、電子メールを介して)、第2のコンピューティングデバイス50と契約を共有する。代替的に、ステップ1bにおいて、第2のコンピューティングデバイス50は、インターフェース手段52を介して(例えば、電子メールを介して)、第1のコンピューティングデバイス48と契約を共有する。契約を共有することによって図の次のステップがトリガされる。
ステップ2aにおいて、第1のコンピューティングデバイス48は、インタラクション60に関する第1のインタラクション情報62-1を、第1のコンピューティングデバイス48のネットワークアプリケーション54を介してネットワークコンピューティングデバイス46に送信する。ステップ2bにおいて、第2のコンピューティングデバイス50は、インタラクション60に関する第2のインタラクション情報62-2を、第2のコンピューティングデバイス50のネットワークアプリケーション54を介してネットワークコンピューティングデバイス46に送信する。ステップ2a及び2bは、同時に、又は異なる時間に発生し得る。
インタラクション60が支払い取引である上の例を続けると、ステップ2aにおいて、第1のコンピューティングデバイス48のユーザが、ネットワークアプリケーション54を使用して支払いを容易にするために、eコマースウェブサイト上のチェックアウトオプションを選択すると、第1のコンピューティングデバイス48のネットワークアプリケーション54(例えば、デジタルウォレットアプリケーション)が開く。第1のインタラクション情報62-1は、ネットワークアプリケーション54を介してネットワークコンピューティングデバイス46に送信される。第1のインタラクション情報62-1は、第1のコンピューティングデバイス48識別子(ID)、支払い額、使用する所望の通貨及び/又は支払い方法、顧客ロイヤルティ情報、プロモーションコード、請求先住所などの支払いに関する、第1のコンピューティングデバイス48の情報に関連する。
同様に、ステップ2bで、第1のコンピューティングデバイス48のユーザが、自身のネットワークアプリケーション54を使用するためにチェックアウトオプションを選択すると、第2のコンピューティングデバイス50は、そのネットワークアプリケーション54(例えば、eコマースプラットフォームにインストールされたソフトウェア)を介してネットワークコンピューティングデバイス46にアクセスし、第2のインタラクション情報62-2が、第2のコンピューティングデバイス50のネットワークアプリケーション54を介してネットワークコンピューティングデバイス46に送信される。第2のインタラクション情報62-2は、第2のコンピューティングデバイス50識別子(例えば、マーチャントID)、支払い額、銀行のルーティング情報、所望の支払い方法の形態、提供される割引などの支払いの受信に関する、第2のコンピューティングデバイス50の情報に関連する。
インタラクション60が契約への署名である上の例を続けると、ステップ2a及び/又は2bにおいて、第1のコンピューティングデバイス48及び/又は第2のコンピューティングデバイス50は、それぞれのネットワークアプリケーション54を介して、第1及び第2のインタラクション情報をネットワークコンピューティングデバイス46に送信する。例えば、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のうちの1つ以上は、それらのネットワークアプリケーション54に契約の完全なコピーをアップロードする。代替的に、第1のコンピューティングデバイス48及び/又は第2のコンピューティングデバイス50は、契約概要、個人情報(例えば、アドレス、電子メール、社会保障番号など)、署名情報(例えば、署名のコピー、デジタル署名など)、選択された条件、選択された条項、署名ページ、及びセキュリティ情報(例えば、秘密鍵、暗号化された情報など)のうちの1つ以上を、第1及び第2のインタラクション情報として提供し得る。
ステップ3a~3bにおいて、ネットワークコンピューティングデバイス46のマルチパートコード生成モジュール56は、コードの第1の部分64及び第2の部分66を生成する。例えば、マルチパートコード生成モジュール56は、ステップ3aにおいて、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50から受信された第1のインタラクション情報62-1及び第2のインタラクション情報62-2を表す、コード70を生成する。コード70は、第1のインタラクション情報62-1及び第2のインタラクション情報62-2の一部又は全てを含み得る。代替的に、コード70は、該コード70が第1のインタラクション情報62-1及び第2のインタラクション情報62-2のいずれも包含しないように、ネットワークコンピューティングデバイス46によって受信された情報を表すためにランダムに生成されてもよい(例えば、一時的な英数字コード)。
ステップ3bにおいて、マルチパートコード生成モジュール56は、コードの第1の部分64及び第2の部分66が個々では使用できないように、コードの第1の部分64及びコードの第2の部分66を生成する。図4A~5Dで考察されたように、使用できないとは、これらの部分が意味のあるデータを包含しないこと、不完全なデータを包含すること、及び/又はこれらの部分が光学スキャナによって正しく読み取ることができないことを意味する。
代替例として、ステップ3aにおいて、ネットワークコンピューティングデバイス46のマルチパートコード生成モジュール56は、第1のインタラクション情報62-1に基づいてコードの第1の部分64を生成し、ステップ3bにおいて、第2のインタラクション情報62-2及びコードの第1の部分64に基づいて、コードの第2の部分64を生成する(例えば、第2の部分は、第1の部分の形状と位置合わせするように生成される)。
ステップ4aにおいて、ネットワークコンピューティングデバイス46は、コードの第1の部分64を第1のコンピューティングデバイス48に送信する。ステップ4bにおいて、ネットワークコンピューティングデバイス46は、コードの第2の部分66を第2のコンピューティングデバイス50に送信する。
コードの第1の部分64及び第2の部分66は、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のうちの1つ以上のネットワークアプリケーションが、光学的に作成されたコード70を捕捉するように動作可能であり、当事者によるインタラクション60を完了する意図が明示されるように、ステップ5において、ネットワークアプリケーション54の位置合わせ機能(例えば、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のうちの1つ以上による手動アクション)を介して位置合わせされる。位置合わせ機能については、図8A~18を参照してより詳細に考察される。
ステップ5において、コードの第1の部分64及び第2の部分66が位置合わせされると、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のうちの1つ以上のネットワークアプリケーション54の画像処理モジュール45は、光学的に作成されたコード70を検出し、捕捉し、処理し、ステップ6a~6bにおいて、ネットワークコンピューティングデバイス46と通信して、インタラクション60を完成させる。ネットワークコンピューティングデバイス46のインタラクション完成モジュール58が、インタラクション60を完成させる。
例えば、インタラクション60が支払いである場合、インタラクション完成モジュール58は、第1のコンピューティングデバイス48と関連付けられたアカウントから、第2のコンピューティングデバイス50と関連付けられたアカウントにある金額を送金する。別の例として、インタラクション60が契約への署名である場合、インタラクション完成モジュール58は、署名された契約を生成し、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50に送信する。
図6Bは、図6Aと同様に動作するが、ネットワークコンピューティングデバイス46に接続して光学的に作成されたコードを捕捉するためのネットワークアプリケーション54を、1つのデバイス(例えば、第1のコンピューティングデバイス48)のみが含むことを除く。第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50は、インターフェース手段52又は他の手段を介して(例えば、ステップ1a及び1bで)、インタラクション60を起動する。
一例として、インタラクション60は、第1のコンピューティングデバイス48が、第2のコンピューティングデバイス50に支払っており、インターフェース手段52が、Bluetoothであり、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50が、スマートフォンであるような、支払い取引である。ステップ1a又は1bにおいて、インタラクション60を起動するために、第1のコンピューティングデバイス48又は第2のコンピューティングデバイス50は、インターフェース手段52(例えば、Bluetooth接続)を使用して、支払いを起動する。例えば、第2のコンピューティングデバイス50は、第1のコンピューティングデバイス48に請求書を送信し、請求書には、支払いのためのアカウントへのリンク、支払われるべき金額などが含まれる。
別の例として、インタラクション60は、第1のコンピューティングデバイスから第2のコンピューティングデバイス50への機密データの交換であり、インターフェース手段52は、ネットワーク接続であり、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50は、スマートフォンである。インタラクション60を起動するために、ステップ1aにおいて、第1のコンピューティングデバイス48は、インターフェース手段52を介して(例えば、電子メールを介して)、第2のコンピューティングデバイス50とデータ交換要求を共有する。代替的に、ステップ1bにおいて、第2のコンピューティングデバイス50は、インターフェース手段52を介して(例えば、テキストメッセージを介して)、第1のコンピューティングデバイス48とデータ交換要求を共有する。
ステップ2において、第1のコンピューティングデバイス48は、インタラクション60に関するインタラクション情報62を、第1のコンピューティングデバイス48のネットワークアプリケーション54(例えば、デジタルウォレットアプリケーション)を介してネットワークコンピューティングデバイス46に送信する。例えば、インタラクションが、第1のコンピューティングデバイス48から第2のコンピューティングデバイス50への支払いである場合、第1のコンピューティングデバイス48は、第2のコンピューティングデバイス50から、支払いを進めるために必要な任意の情報を、インターフェース手段52を介して受信した。
インタラクション情報62には、第1のコンピューティングデバイス48識別子(ID)、支払い額、使用する所望の通貨及び/又は支払い方法、顧客ロイヤルティ情報、プロモーションコード、請求先住所、第2のコンピューティングデバイス50識別子(例えば、マーチャントID)、支払い額、銀行ルーティング情報、所望の支払い方法の形態、提供される割引などの、支払いに関する情報が含まれる。
インタラクション60が機密情報の共有である上の例を続けると、ステップ2において、第1のコンピューティングデバイス48は、そのネットワークアプリケーション54を介して、インタラクション情報62をネットワークコンピューティングデバイス46に送信する。例えば、インタラクション情報62には、第1のコンピューティングデバイスが第2のコンピューティングデバイスと共有したいであろう機密データ、機密情報の概要、第1及び/又は第2のコンピューティングデバイスに関連する識別情報、情報を送信する場所(例えば、第2のコンピューティングデバイスの電子メールアドレス、オンラインクラウドストレージなど)、セキュリティ情報などが含まれ得る。
ステップ3a~3bにおいて、ネットワークコンピューティングデバイス46のマルチパートコード生成モジュール56は、コードの第1の部分64及び第2の部分66を生成する。例えば、マルチパートコード生成モジュール56は、ステップ3aにおいて、第1のコンピューティングデバイス48から受信されたインタラクション情報62を表す、コード70を生成する。コード70は、インタラクション情報62の一部又は全てを含み得る。代替的に、コード70は、該コード70がインタラクション情報62のいずれも包含しないように、ネットワークコンピューティングデバイス46によって受信された情報を表すためにランダムに生成されてもよい(例えば、一時的な英数字コード)。
ステップ3bにおいて、マルチパートコード生成モジュール56は、コードの第1の部分64及び第2の部分66が個々では使用できないように、コードの第1の部分64及びコードの第2の部分66を生成する。図4A~5Dで考察されたように、使用できないとは、これらの部分が意味のあるデータを包含しないこと、不完全なデータを包含すること、及び/又はこれらの部分が光学スキャナによって正しく読み取ることができないことを意味する。
代替例として、ステップ3aにおいて、ネットワークコンピューティングデバイス46のマルチパートコード生成モジュール56は、インタラクション情報62に基づいてコードの第1の部分64を生成し、ステップ3bにおいて、インタラクション情報62及びコードの第1の部分64に基づいて、コードの第2の部分64を生成する(例えば、第2の部分は、第1の部分の形状と位置合わせするように生成される)。
ステップ4において、ネットワークコンピューティングデバイス46は、コードの第1の部分64及び第2の部分66を第1のコンピューティングデバイス48に送信する。この例では、第2のコンピューティングデバイス50は、ネットワークコンピューティングデバイス46に関連付けられていないため、インタラクション60を完了する意図は、第1のコンピューティングデバイス48にのみ依拠する。
コードの第1の部分64及び第2の部分66は、第1のコンピューティングデバイス48のネットワークアプリケーション54の画像処理モジュール45が、光学的に作成されたコード70を検出、捕捉、及び処理するように動作可能であり、当事者によるインタラクション60を完了する意図が明示されるように、ステップ5において、ネットワークアプリケーション54の位置合わせ機能(例えば、第1のコンピューティングデバイス48による手動アクション)を介して位置合わせされる。位置合わせ機能については、図8A~18を参照してより詳細に考察される。
ステップ5において、コードの第1の部分64及び第2の部分66が位置合わせされると、第1のコンピューティングデバイス48のネットワークアプリケーションの画像処理モジュール45は、光学的に作成されたコード70を検出し、捕捉し、処理し、ステップ6において、コードで取得した情報をネットワークコンピューティングデバイス46に通信して、インタラクション60を完成させる。ネットワークコンピューティングデバイス46のインタラクション完成モジュール58が、インタラクション60を完成させる。
例えば、インタラクション60が支払いである場合、インタラクション完成モジュール58は、第1のコンピューティングデバイス48と関連付けられたアカウントから、第2のコンピューティングデバイス50と関連付けられたアカウントに、(インタラクション情報に示されるように)ある金額を送金する。別の例として、インタラクション60が情報の共有である場合、インタラクション完成モジュール58は、情報を、インタラクション情報62で特定された場所(例えば、第2のコンピューティングデバイスの50電子メールアドレス)に送信する(かつ任意選択で暗号化する)。
図6Cは、図6Aと同様に動作するが、ネットワークコンピューティングデバイス46のマルチパート生成モジュール56が、コードの部分64~66を個別に、かつ異なる時間に生成することを除く。第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50は、ネットワークコンピューティングデバイス46に接続して、光学的に作成されたコードを捕捉するためのネットワークアプリケーション54を含む。ステップ1a及び/又は1bにおいて、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のうちの1つ以上は、インターフェース手段52又は他の手段(例えば、ステップ1a及び1b)を介してインタラクション60を起動する。
一例として、インタラクション60は、第1のコンピューティングデバイス48が、商品又はサービスのために第2のコンピューティングデバイス50から支払いを受けており、第1のコンピューティングデバイスが、マーチャントポイントオブセール(POS)デバイス(例えば、レジスタ)であり、第2のコンピューティングデバイス50が、スマートフォンであり、インターフェース手段52が、直接リンク(例えば、NFC、Bluetoothなど)であるような、支払い取引である。ステップ1a及び/又は1bにおいてインタラクション60を起動するために、第1のコンピューティングデバイス48及び/又は第2のコンピューティングデバイス50は、チェックアウトプロセスを始める。例えば、第2のコンピューティングデバイス48のユーザは、NFCリンクを介してチェックアウトを起動する。
ステップ2において、第1のコンピューティングデバイス48は、インタラクション60に関する第1のインタラクション情報62-1を、第1のコンピューティングデバイス48のネットワークアプリケーション54を介してネットワークコンピューティングデバイス46に送信する。例えば、インタラクション60が、第2のコンピューティングデバイス50からの支払いである場合、第1のインタラクション情報62-1には、第1のコンピューティングデバイス48(例えば、マーチャント)識別子(ID)、購入のために選択された商品、未払い額、支払いアカウント情報、所望の支払い方法の形態、提供される割引などが含まれる。
ステップ3において、ネットワークコンピューティングデバイス46のマルチパートコード生成モジュール56は、第1のコンピューティングデバイス48から受信された第1のインタラクション情報62-1を表すコードの第1の部分64を生成する。コードの第1の部分64は、第1のインタラクション情報62-1の一部又は全てを含み得る。代替的に、コードの第1の部分64が第1のインタラクション情報62-1のいずれも包含しないように、コードの第1の部分64は、第1のインタラクション情報62-1を表すためにランダムに生成されてもよい(例えば、一時的な英数字コード)。
ステップ4において、ネットワークコンピューティングデバイス46は、コードの第1の部分64を第1のコンピューティングデバイス48に送信する。ステップ5において、第1のコンピューティングデバイス48は、コードの第1の部分64を、第2のコンピューティングデバイス50に表示する。例えば、コードの第1の部分64は、第1のコンピューティングデバイス48のデジタル表示部に表示される。別の例として、第1のコンピューティングデバイス48は、コードの第1の部分64を、第2のコンピューティングデバイス50に提示するために紙(例えば、領収書)に印刷する。別の例として、第1のコンピューティングデバイス48は、コードの第1の部分64を、インターフェース手段52(例えば、ネットワーク接続(例えば、電子メールに送信する)、Bluetooth接続、SMSテキストメッセージなど)を介して第2のコンピューティングデバイス50に配信する。
ステップ6において、第2のコンピューティングデバイス50は、光学スキャナ68(例えば、スマートフォンカメラ)を介してコードの第1の部分64を捕捉し、そこでコード64は、ネットワークアプリケーション54の画像処理モジュール45によって分析される。別の例として、第2のコンピューティングデバイスが、(例えば電子メール、テキストメッセージなどで受信された)コードの第1の部分64をスキャンしない場合、第2のコンピューティングデバイス50は、コードの第1の部分64を、ネットワークアプリケーション54の画像処理モジュール45に手動又は自動で保存/アップロードする。ネットワークアプリケーション54の画像処理モジュール45は、画像検出及びデコード技術を使用して、(例えば、光学スキャナ68からの直接のものだけでなく)保存又はダウンロードされた画像からの情報を分析するように動作可能である。
コードの第1の部分64から取得された情報に基づいて、ステップ7において、第2のコンピューティングデバイス50は、ネットワークアプリケーション54を介して、第2のインタラクション情報62-2をネットワークコンピューティングデバイス46に送信する。第2のインタラクション情報62-2には、コードの第1の部分64、使用する所望の通貨及び/又は支払い方法、顧客ロイヤルティ情報、プロモーションコード、請求先住所などが含まれ得る。
ステップ8において、ネットワークコンピューティングデバイス46のマルチパートコード生成モジュール56は、第2のコンピューティングデバイス50から受信され、かつコードの第1の部分64に基づく、第2のインタラクション情報62-2を表すコードの第2の部分66を生成する。コードの第2の部分66は、第2のインタラクション情報62-2の一部又は全てを含み得る。代替的に、コードの第2の部分66が第2のインタラクション情報62-2のいずれも包含しないように、コードの第2の部分66は、第2のインタラクション情報62-2を表すためにランダムに生成されてもよい(例えば、一時的な英数字コード)。
マルチパートコード生成モジュール56は、コードの第1の部分64及び第2の部分66が個々では使用できないように、コードの第1の部分64及びコードの第2の部分66を生成する。図4A~5Dで考察されたように、使用できないとは、これらの部分が実際のデータを包含しないこと、不完全なデータを包含すること、及び/又はこれらの部分が光学スキャナによって正しく読み取ることができないことを意味する。
ステップ9において、ネットワークコンピューティングデバイス46は、コードの第2の部分66を第2のコンピューティングデバイス50に送信する。コードの第1の部分64及び第2の部分66は、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のうちの1つ以上のネットワークアプリケーションの画像処理モジュール45が、光学的に作成されたコード70を捕捉するように動作可能であり、当事者によるインタラクション60を完了する意図が明示されるように、ステップ5において、ネットワークアプリケーション54の位置合わせ機能(例えば、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のうちの1つ以上による手動アクション)を介して位置合わせされる。位置合わせ機能については、図8A~18を参照してより詳細に考察される。
ステップ10において、コードの第1の部分64及び第2の部分66が位置合わせされると、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のうちの1つ以上のネットワークアプリケーションの画像処理モジュール45は、光学的に作成されたコード70を捕捉し、ステップ11a~11bにおいて、ネットワークコンピューティングデバイス46と通信して、インタラクション60を完成させる。ネットワークコンピューティングデバイス46のインタラクション完成モジュール58が、インタラクション60を完成させる。
例えば、インタラクション60が支払いである場合、インタラクション完成モジュール58は、第2のコンピューティングデバイス50と関連付けられたアカウントから、第1のコンピューティングデバイス48と関連付けられたアカウントにある金額を送金する。
図7は、マルチパートコードシステムのネットワークコンピューティングデバイスによる実行のための方法の一例のフローチャートである。ネットワークコンピューティングデバイスは、2つ以上の当事者間のインタラクションを完了するための、マルチパートコードの使用を容易にする。マルチパートコードは、個々では使用できない少なくとも2つの部分からなる任意の種類の光学的に読み取り可能なコードである。使用できないとは、その部分を光学読み取り機/スキャナによって光学的に読み取ることができない、又は光学読み取り機から取得された情報が不完全である、かつ/若しくは意味のある情報を包含しないことを意味する。光学的に読み取り可能なコードは、一次元(1D)バーコード、二次元(2D)バーコード、数字コード、英数字コード、画像、並びに光学的に読み取り可能なコードをスキャン、デコード、及び処理することによって情報がもたらされるようなデータを表す任意の図形パターン、のうちの1つ以上を含む。
方法はステップ72から始まり、ここでネットワークコンピューティングデバイスは、マルチパートコードシステムの第1のコンピューティングデバイス及び第2のコンピューティングデバイスのうちの1つ以上からインタラクション情報を受信する。第1及び第2のコンピューティングデバイスのうちの1つ以上は、この第1及び第2のコンピューティングデバイスのうちの1つ以上をネットワークコンピューティングデバイスと関連付ける、ネットワークアプリケーションを含む。ネットワークアプリケーションは、(例えば、第1及び第2のコンピューティングデバイスのうちの1つ以上の光学スキャナを介して)光学スキャンされて、保存された(例えば、コードのスクリーンショット、第1及び第2のコンピューティングデバイスのうちの1つ以上のメモリに記憶されたコード)、又は別様に検出された画像データ(例えば、データの図形コード化された表現)を分析するための、画像処理及びエンコード/デコード回路を含む画像処理モジュールを含む。
インタラクションは、データの交換である。例えば、インタラクションは、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間の支払い取引である。別の例として、インタラクションは、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間の合意(例えば、契約)である。別の例として、インタラクションは、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間の本人確認である。別の例として、インタラクションは、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間の、イベントに入場するためのチケット確認である。別の例として、インタラクションは、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間の機密情報の共有である。
インタラクションは、インターフェース手段を介して発生する。インターフェース手段には、第1又は第2のコンピューティングデバイスのうちの1つ以上(例えば、スマートフォンカメラ)の光学スキャナ、直接リンク(例えば、近距離通信(NFC))、及びネットワーク接続、のうちの1つ以上が含まれる。ネットワーク接続には、パブリックネットワーク及び/又はプライベートネットワークであり得る、1つ以上のローカルエリアネットワーク(LAN)及び/又は1つ以上のワイドエリアネットワーク(WAN)が含まれる。LANは、無線LAN(例えば、Wi-Fiアクセスポイント、Bluetooth、ZigBeeなど)及び/又は有線LAN(例えば、ファイアワイヤ、イーサネットなど)であり得る。WANは、有線及び/又は無線WANであり得る。例えば、LANは、個人のホーム無線ネットワーク又は企業の無線ネットワークであり、WANは、インターネット、携帯電話インフラストラクチャ、及び/又は衛星通信インフラストラクチャである。
インタラクション情報には、第1のコンピューティングデバイス識別子(ID)、第2のコンピューティングデバイス識別子(ID)、支払い額、データファイル、署名ページ、イベント情報、所望の支払い方法、支払いアカウント情報、割引情報、プロモーション情報、ロイヤルティアカウント情報、及び個人情報(例えば、電子メール、電話番号、アドレス、社会保障番号など)のうちの1つ以上が含まれる。
方法はステップ74に続き、ここでネットワークコンピューティングデバイスのマルチパートコード生成モジュールは、コードの第1及び第2の部分が個々では使用できないように、コードの第1の部分及びコードの第2の部分を生成する。使用できないとは、その部分を光学読み取り機/スキャナによって光学的に読み取ることができない、又は光学読み取り機から取得された情報が不完全であるか若しくは意味のあるデータにならないことを意味する。コードの第1及び第2の部分を位置合わせすることにより、インタラクション情報を表すコードが光学的に作成される。第1及び第2のコンピューティングデバイスのうちの1つ以上のネットワークアプリケーションの画像処理モジュールは、光学的に作成されたコードを検出、捕捉、及び処理するように動作可能である。
マルチパートコード生成の例では、マルチパートコード生成モジュールは、インタラクション情報を表すコードを生成し、次いで、コードを、コードの第1及び第2の部分に分割する(例えば、コードは2つの部分に物理的に分割され、情報はこれらの部分から取り除かれる、など)。別の例として、マルチパートコード生成モジュールは、第1のコンピューティングデバイスから受信されたインタラクション情報の第1のインタラクション情報に基づいて、コードの第1の部分を生成する。次いで、マルチパートコード生成モジュールは、第2のコンピューティングデバイスから受信されたインタラクション情報の第2のインタラクション情報とコードの第1の部分とに基づいて、コードの第2の部分を生成する(例えば、コードの第2の部分は、コードの第1の部分の形状と位置合わせするように生成される)。
方法はステップ76に続き、ここでネットワークコンピューティングデバイスは、コードの第1及び第2の部分を、第1及び第2のコンピューティングデバイスのうちの1つ以上に送信する。例えば、ネットワークコンピューティングデバイスは、コードの第1の部分を第1のコンピューティングデバイスに送信し、コードの第2の部分を第2のコンピューティングデバイスに送信する。別の例として、ネットワークコンピューティングデバイスは、コードの第1及び第2の部分を、第1のコンピューティングデバイスに送信する。別の例として、ネットワークコンピューティングデバイスは、コードの第1の部分を生成し、第1のコンピューティングデバイスに送信する。コードの第1の部分は、第2のコンピューティングデバイスに提供され(例えば、第2のコンピューティングデバイスは、光学スキャナでコードの第1の部分をスキャンする)、第2のコンピューティングデバイスは、コードの第1の部分に基づいて、第2のインタラクション情報を生成し、ネットワークコンピューティングデバイスに送信する。ネットワークコンピューティングデバイスは、第2のインタラクション情報に基づいてコードの第2の部分を生成し、コードの第2の部分を第2のコンピューティングデバイスに送信する。
コードの第1及び第2の部分は、インタラクションを完了する意図を示す完全なコードが光学的に作成されるように、第1及び第2のコンピューティングデバイスのうちの1つ以上のネットワークアプリケーションの位置合わせ機能を通して位置合わせされなければならない。位置合わせ機能については、図8A~18を参照してより詳細に考察される。
ステップ78において、光学的に作成されたコードが(例えば、第1及び第2のコンピューティングデバイスのうちの1つ以上のネットワークアプリケーションの画像処理モジュールを介して)捕捉されている場合、方法はステップ80に続き、ネットワークコンピューティングデバイスは、インタラクションを完成させる。例えば、第1及び第2のコンピューティングデバイスのうちの1つ以上のネットワークアプリケーションは、捕捉されたコード情報を、ネットワークコンピューティングデバイスのインタラクション完成モジュールと通信して、インタラクションを完成させる。一例として、捕捉され、デコードされたコードは、第1のコンピューティングデバイスに関連付けられたアカウントから第2のコンピューティングデバイスに関連付けられたアカウントにある金額を送金するようにインタラクション完成モジュールに指示する情報を包含する。
ステップ78において、光学的に作成されたコードが捕捉されていない場合(例えば、一定時間が経過した後、第1又は第2のコンピューティングデバイスのエラーによってなど)、ネットワークコンピューティングデバイスは、ステップ82で1つ以上の解決策を実施する。例えば、ネットワークコンピューティングデバイスは、一定時間が経過した後、光学的に作成されたコードが捕捉されていない前に、コードの新しい第1及び第2の部分を生成し、配信する。別の例として、ネットワークコンピューティングデバイスは、コードの1つ以上の新しい第1及び第2の部分を作成するかどうかに関して、第1及び第2のコンピューティングデバイスのうちの1つ以上に問い合わせる。別の例として、ネットワークコンピューティングデバイスは、位置合わせに関して、第1及び第2のコンピューティングデバイスのうちの1つ以上に通知する(例えば、位置合わせを再試行する通知が送信される、位置合わせに関連するエラーを修正するための通知、など)。
図8A~8Bは、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50を含む、マルチパートコードシステムのドラッグアンドドロップ位置合わせ機能の一例の概略ブロック図である。第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50は、ネットワークアプリケーション(「アプリ」)54及び1つ以上の光学スキャナ88~90を含む。ネットワークアプリケーション54は、それぞれのデバイスをネットワークコンピューティングデバイスに関連付ける。ネットワークアプリケーション54には、(例えば、光学スキャナ68を介して)光学スキャンされて、保存された(例えば、コードのスクリーンショット、メモリに記憶されたコード)、又はデータの図形コード化された表現などの別様に検出された画像データを分析するための、画像処理及びエンコード/デコード回路を含む画像処理モジュールが含まれる。
デバイス上で開くと、ネットワークアプリケーション54は、コード表示領域86及びビューファインダー/表示領域84を特徴とするインタラクティブ表示領域を表示する。この例では、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のインタラクティブ表示領域は、タッチスクリーン表示部である。コード表示領域86は、ネットワークコンピューティングデバイスによって生成されたコード部分を表示し、デバイスのユーザによるプライベート使用のためのものである。ビューファインダー/表示領域84は、光学スキャナ88~90によって捕捉された画像、表示のためにコード表示領域86から選択された画像、並びにデバイスストレージ及び/又は他のデバイスアプリケーションからのアップロードのために選択された画像(例えば、ウェブサイトからのスクリーンショット、デバイスメモリに保存された画像(例えば、カメラロール又は写真アルバム)、保存された電子メールからの画像など)を表示する。ビューファインダー/表示領域84は、ネットワークアプリケーション54の画像処理及びエンコード/デコード回路を通じて、ビューファインダー/表示領域84内で位置合わせされた光学的に作成されたコードを認識、捕捉、及び検出するように動作可能である。
図8Aにおいて、第1のコンピューティングデバイス48は、ネットワークコンピューティングデバイスからコードの第1の部分64を受信する。コードの第1の部分64は、第1のコンピューティングデバイス48のコード表示領域86に表示される。第1のコンピューティングデバイス48のユーザは、コードの第1の部分64を第1のコンピューティングデバイス48のビューファインダー/表示領域84に表示するためのオプションを選択して、第2のコンピューティングデバイス50のユーザがコードの第1の部分64をスキャンすることを可能にする。
第2のコンピューティングデバイス50は、ネットワークコンピューティングデバイスからコードの第2の部分66を受信する。コードの第2の部分66は、第2のコンピューティングデバイス50のコード表示領域86に表示される。第2のコンピューティングデバイス50のユーザは、スキャンオプションを選択して、第2のコンピューティングデバイス50の背面光学スキャナ88(例えば、スマートフォンカメラアプリケーション)を使用して、第1のコンピューティングデバイス48のビューファインダー/表示領域84をスキャンする。
第1のコンピューティングデバイス48のビューファインダー/表示領域84は、第2のコンピューティングデバイス50の背面光学スキャナ88によってスキャンされ、コードの第1の部分64は、第2のコンピューティングデバイス50のビューファインダー/表示領域84に表示される。
図8Bにおいて、第2のコンピューティングデバイス50のユーザは、コードの第2の部分66をビューファインダー/表示領域84内にドラッグして、コードの第1の部分64と位置合わせさせる。位置合わせされると、ユーザは、コードの第2の部分66をビューファインダー/表示領域84内に「ドロップ」し(例えば、タッチを離し)、完全なコードを作成する。ビューファインダー/表示領域84は、正確に位置合わせされたときに完全なコードを捕捉し、位置合わせの成功及び完全なコードをネットワークコンピューティングデバイスと通信するように、動作可能である。次いで、ネットワークコンピューティングデバイスは、インタラクションを完成させる。位置合わせが成功し、インタラクションが完成すると、メッセージが現れ、インタラクションが完了したことを第2のコンピューティングデバイス50のユーザに通知する。
図9A~9Cは、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50を含む、マルチパートコードシステムのドラッグアンドドロップ位置合わせ機能の別の例の概略ブロック図である。図9A~9Cは、図8A~8Bの例の続きである。図8A~8Bにおいて、第2のコンピューティングデバイスのユーザは、コードの第2の部分を、第2のコンピューティングデバイス50のビューファインダー/表示領域84内のコードの第1の部分と位置合わせさせて、第1のコンピューティングデバイス48とのインタラクションを完了させる。図9A~9Cにおいては、第1のコンピューティングデバイスのユーザは、インタラクションを完了するためにも、コードの部分を位置合わせさせなければならない。
図9Aは、図8Bの例の続きであるが、第2のコンピューティングデバイス50のユーザが、インタラクションが完了したというメッセージを受信する代わりに、第1のコンピューティングデバイス48がスキャンするために、コードの第2の部分66を表示する要求を受信することを除く。図9Bにおいて、第2のコンピューティングデバイス50のユーザは、コードの第2の部分66を、第2のコンピューティングデバイス50のビューファインダー/表示領域84に表示する。
第1のコンピューティングデバイス48のユーザは、第1のコンピューティングデバイス48のビューファインダー/表示領域84内のスキャンオプションを選択して、第1のコンピューティングデバイス48の背面光学スキャナ88(例えば、スマートフォンカメラアプリケーション)を使用して第2のコンピューティングデバイス50のビューファインダー/表示領域84をスキャンする。
第2のコンピューティングデバイス50のビューファインダー/表示領域84は、第1のコンピューティングデバイス48の背面光学スキャナ88によってスキャンされ、コードの第2の部分66は、第1のコンピューティングデバイス48のビューファインダー/表示領域84に表示される。
図9Cにおいて、第1のコンピューティングデバイス48のユーザは、コードの第1の部分64をビューファインダー/表示領域84内にドラッグして、コードの第2の部分66と位置合わせさせる。位置合わせされると、ユーザは、コードの第1の部分64をビューファインダー/表示領域84内に「ドロップ」し(例えば、タッチを離し)、完全なコードを作成する。ビューファインダー/表示領域84は、正確に位置合わせされたときに完全なコードを捕捉し、位置合わせの成功及び完全なコードをネットワークコンピューティングデバイスと通信するように、動作可能である。次いで、ネットワークコンピューティングデバイスは、インタラクションを完成させる。位置合わせが成功し、インタラクションが完成すると、メッセージが現れ、インタラクションが完了したことを第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のユーザに通知する。
図10A~10Bは、第1のコンピューティングデバイス48を含む、マルチパートコードシステムのドラッグアンドドロップ位置合わせ機能の別の例の概略ブロック図である。図10A~10Bは、図8A~9Cの例と同様であるが、図10A~10Bでは、第1のコンピューティングデバイス48がネットワーク接続(例えば、WiFi、セルラなど)を介して第2のコンピューティングデバイス50と接続しており、第2のコンピューティングデバイス50が物理的に第1のコンピューティングデバイス48の近くにない例を示すことを除く。
例えば、図10Aにおいて、第2のコンピューティングデバイス50は、eコマースプラットフォームデバイスであり、第1のコンピューティングデバイス48は、スマートフォンである。第1のコンピューティングデバイス48のユーザは、インターネットブラウザアプリケーション92及びネットワーク接続を介して、第2のコンピューティングデバイス50と関連付けられたeコマースウェブサイト94を開く。インタラクション起動(例えば、オンラインカートに商品を追加)後、ウェブサイトのチェックアウト領域は、インタラクションに基づいてネットワークコンピューティングデバイスによって生成されたコードの第2の部分66を表示する。
別の例として、第1のコンピューティングデバイス48のユーザは、インターネットブラウザアプリケーション92及びネットワーク接続を介して、電子メールにアクセスするためにウェブサイト94を開く。電子メールは、第2のコンピューティングデバイス50とのインタラクションに基づいて、ネットワークコンピューティングデバイスによって生成されたコードの第2の部分66を表示する。
ネットワークアプリケーション54の画像処理モジュールは、第1のコンピューティングデバイス48の他のアプリケーションに表示されるコードの部分を自動で検出し、第1のコンピューティングデバイスのネットワークアプリケーション54を自動で開いて、コードの検出された部分をビューファインダー/表示領域84内に示し得る。代替的に、第1のコンピューティングデバイス48のユーザは、コードの第2の部分66をスクリーンショットで撮るか又は別様にコピーし、それを第1のコンピューティングデバイス48のメモリ(例えば、写真ストレージ、ネットワークアプリケーションメモリなど)に保存し、その場合ユーザは、保存されたものを後で所望に応じてネットワークアプリケーションにアップロードすることができる。別のオプションとして、コードの一部分がネットワークアプリケーション54の画像処理モジュールを介して検出されるとき、第1のコンピューティングデバイス48のユーザに、(図示されるように)コードの検出された部分をデバイスのネットワークアプリケーション54にコピー/アップロードするかどうかを問い合わせる。
コードの第2の部分66がアップロードされるとき、ネットワークアプリケーション54は(例えば、自動又は手動で)開かれ、コードの第2の部分66が第1のコンピューティングデバイス48のビューファインダー/表示領域84内に作成される。第1のコンピューティングデバイス48は、第2のコンピューティングデバイス50とのインタラクションを表すコードの第1の部分64を、ネットワークコンピューティングデバイスから受信する。コードの第1の部分64は、第1のコンピューティングデバイス48のコード表示領域86に表示される。
図10Bにおいて、第1のコンピューティングデバイス48のユーザは、コードの第1の部分64をビューファインダー/表示領域84内にドラッグして、コードの第2の部分66と位置合わせさせる。位置合わせされると、ユーザは、コードの第1の部分64をビューファインダー/表示領域84内に「ドロップ」し(例えば、タッチを離し)、完全なコードを作成する。ビューファインダー/表示領域84は、正確に位置合わせされたときに完全なコードを捕捉し、位置合わせの成功及び完全なコードをネットワークコンピューティングデバイスと通信するように、動作可能である。
ネットワークコンピューティングデバイスは次いで、インタラクションを完成させる(例えば、支払いを完成させるために第2のコンピューティングデバイスと接続する)。位置合わせが成功し、インタラクションが完成すると、メッセージが現れ、インタラクションが完了したことを第1のコンピューティングデバイス48のユーザに通知する。「ウェブサイトに戻る」オプションなどの追加のオプション又はメッセージは、コード表示領域86に表示され得る。「ウェブサイトに戻る」オプションで、ネットワークアプリケーション54から出て最後に訪問したウェブサイトのページに戻る。
図11A~11Bは、生体認証スキャンを伴うドラッグアンドドロップ位置合わせ機能の一例の概略ブロック図である。図11A~11Bは、図8A~8Bと同様に動作するが、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間のインタラクションのタイプに基づいて、第1及び第2のコンピューティングデバイスのうちの1つ以上によって、本人確認のための生体認証スキャンなどの追加のセキュリティが要求されることを除く。例えば、インタラクションは、セキュリティチェックポイントを通過するためにIDを必要とするイベント又は航空券である。
図11Aにおいて、第1のコンピューティングデバイス48は、コードの第1の部分64を、第1のコンピューティングデバイス48のビューファインダー/表示領域84に表示する。第2のコンピューティングデバイス50は、第2のコンピューティングデバイス50の背面光学スキャナ88(例えば、スマートフォンカメラアプリケーション)を使用して、第1のコンピューティングデバイス48のビューファインダー/表示領域84をスキャンする。コードの第1の部分64は、第2のコンピューティングデバイス50のビューファインダー/表示領域84に表示される。
第2のコンピューティングデバイス50は、ネットワークコンピューティングデバイスからコードの第2の部分66を受信する。コードの第2の部分66は、第2のコンピューティングデバイス50のコード表示領域86に表示される。ネットワークアプリケーションの画像処理モジュールによって検出されたコードの第1の部分64内の情報、又はインタラクションに関してネットワークコンピューティングデバイスから受信されたメッセージに基づいて、コードの第2の部分66は、第2のコンピューティングデバイス50のユーザにロックされる。使用のためにコードの第2の部分66のロックを解除するために、第2のコンピューティングデバイスのユーザは、生体認証スキャンを行って本人確認をしなければならない。
生体認証スキャンには、(例えば、第2のコンピューティングデバイス50の前面光学スキャナ90を使用した)指紋スキャン、網膜及び/若しくは顔識別スキャン、並びに/又は任意の他の識別特徴スキャンが含まれ得る。ネットワークアプリケーション54は、第2のコンピューティングデバイスのユーザ(例えば、ネットワークアプリケーション54のセットアップの一部として生体認証スキャンを行うユーザ)の識別情報を記憶し、それにより、識別特徴が認識されると、ユーザの識別が確認される。
図11Bは、生体認証スキャンが、第2のコンピューティングデバイス50の前面光学スキャナ90を使用した顔識別(ID)スキャンである例を示す。ユーザは、スキャンを完了するために、ビューファインダー/表示領域84において顔を中央に置くように求められる。確認された場合、コードの第2の部分66はロック解除され、第2のコンピューティングデバイス50のユーザは、コードの第2の部分66をビューファインダー/表示領域84内にドラッグアンドドロップして、コードの第1の部分64と位置合わせさせ、前の図で説明されるようにインタラクションを完了することができる。
図12は、マルチパートコードシステムのドラッグアンドドロップ位置合わせ機能のための方法の一例のフローチャートである。方法はステップ96から始まり、ここでマルチパートコードシステムの第1のコンピューティングデバイスは、マルチパートコードシステムの第2のコンピューティングデバイスと関連付けられたコードの第2の部分を取得する。例えば、第1のコンピューティングデバイスは、光学スキャナを介して、第2のコンピューティングデバイスの表示部をスキャンし、コードの第2の部分のスキャンされた画像を取り出す。別の例として、第1のコンピューティングデバイスは、第1のコンピューティングデバイスのインターネットブラウザアプリケーション上で開かれたウェブサイト又は電子メールからのコードの第2の部分を、スクリーンショットで撮る、かつ/又は保存する。
方法はステップ98に続き、ここで第1のコンピューティングデバイスは、ネットワークアプリケーションのインタラクティブ表示部のビューファインダー/表示領域に、コードの第2の部分を表示する。例えば、第1のコンピューティングデバイスのユーザは、ネットワークアプリケーションが開いている間にコードの第2の部分をスキャンし、ネットワークアプリケーションは、コードの第2の部分をビューファインダー/表示領域に表示する。別の例として、第1のコンピューティングデバイスのユーザは、ネットワークアプリケーションのビューファインダー/表示領域にアップロード及び表示するために、ストレージ又は別のアプリケーションからコードの第2の部分を選択する。別の例として、コードの第2の部分がストレージ又は別のアプリケーションで検出されると(例えば、ネットワークアプリケーションは、コード又はコード部分のスクリーンショットが直ちに使われるために検出できるように、第1のコンピューティングデバイスの写真ストレージにアクセスする)、ネットワークアプリケーションが自動で開き、コードビューファインダー/表示領域の第2の部分を表示する。
ネットワークアプリケーションは、第1のコンピューティングデバイスを、マルチパートコードシステムのネットワークコンピューティングデバイスと関連付ける。ネットワークアプリケーションには、(例えば、光学スキャナを介して)光学スキャンされて、保存された(例えば、コードのスクリーンショット、メモリに記憶されたコード)、又はデータの図形コード化された表現などの別様に検出された画像データを分析するための、画像処理及びエンコード/デコード回路を含む画像処理モジュールが含まれる。
方法はステップ100に続き、ここで第1のコンピューティングデバイスは、インタラクティブ表示部のコード表示領域に表示するためのコードの第1の部分を受信する。ネットワークコンピューティングデバイスは、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間のインタラクションのために、コードの第1及び第2の部分を生成した。例えば、ネットワークコンピューティングデバイスは、第1及び第2のコンピューティングデバイスの1つ以上からのインタラクション情報に基づいてコードを生成し、このコードを分割して、コードの第1及び第2の部分を作成した。別の例として、ネットワークコンピューティングデバイスは、第2のコンピューティングデバイスから受信されたインタラクション情報の第2のインタラクション情報に基づいてコードの第2の部分を生成し、次いで、第1のコンピューティングデバイスから受信されたインタラクション情報の第1のインタラクション情報及び第1のコンピューティングデバイスによってスキャンされたコードの第2の部分に基づいて、コードの第1の部分を生成した。
方法はステップ102に続き、ここで第1のコンピューティングデバイスのユーザは、コードの第1の部分をコード表示領域からビューファインダー/表示領域にドラッグして、コードの第1の部分をコードの第2の部分と位置合わせさせる。方法はステップ104に続き、ここでコードの第1の部分がコードの第2の部分と位置合わせされると、ユーザは、コードの第1の部分をビューファインダー/表示領域にドロップして、完全なコードを光学的に作成する。
方法はステップ106に続き、ここで第1のコンピューティングデバイスは、インタラクション完成通知をネットワークコンピューティングデバイスに送信する。例えば、ビューファインダー/表示領域は、正確に位置合わせされたときに完全なコードを捕捉し、位置合わせの成功及び完全なコードをネットワークコンピューティングデバイスと通信するように、動作可能である。
図13A~13Bは、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50を含む、マルチパートコードシステムの位置合わせ機能への移動一例の概略ブロック図である。第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50は、ネットワークアプリケーション(「アプリ」)54及び1つ以上の光学スキャナ88~90を含む。ネットワークアプリケーション54は、それぞれのデバイスをネットワークコンピューティングデバイスに関連付ける。ネットワークアプリケーション54には、(例えば、光学スキャナ88~90を介して)光学スキャンされて、保存された(例えば、コードのスクリーンショット、メモリに記憶されたコード)、又はデータの図形コード化された表現などの別様に検出された画像データを分析するための、画像処理及びエンコード/デコード回路を含む画像処理モジュールが含まれる。
デバイス上で開くと、ネットワークアプリケーション54は、コード表示領域86及びビューファインダー/表示領域84を特徴とするインタラクティブ表示領域を表示する。この例では、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のインタラクティブ表示領域は、タッチスクリーン表示部である。ただし、移動して位置合わせする機能を用いる場合、インタラクションを完了するためにタッチスクリーン表示部は必要ない。コード表示領域86は、ネットワークコンピューティングデバイスによって生成されたコード部分を表示し、デバイスのユーザによるプライベート使用のためのものである。
ビューファインダー/表示領域84は、光学スキャナ88~90によって捕捉された画像、表示のためにコード表示領域86から選択された画像、並びにデバイスストレージ及び/又は他のデバイスアプリケーションからのアップロードのために選択された画像(例えば、ウェブサイトからのスクリーンショット、デバイスメモリに保存された画像(例えば、カメラロール又は写真アルバム)、保存された電子メールからの画像など)を表示する。ビューファインダー/表示領域84は、ネットワークアプリケーション54の画像処理及びエンコード/デコード回路を通じて、ビューファインダー/表示領域84内で位置合わせされた光学的に作成されたコードを認識、捕捉、及び検出するように動作可能である。
図13Aにおいて、第1のコンピューティングデバイス48は、ネットワークコンピューティングデバイスからコードの第1の部分64を受信する。コードの第1の部分64は、第1のコンピューティングデバイス48のコード表示領域86に表示される。第1のコンピューティングデバイス48のユーザは、コード表示領域86内で、コードの第1の部分64を第1のコンピューティングデバイス48のビューファインダー/表示領域84に表示するオプションを選択する。第1のコンピューティングデバイスがタッチスクリーンデバイスではない実施形態では、コードの第1の部分64は自動で表示され得る。
第2のコンピューティングデバイス50は、ネットワークコンピューティングデバイスからコードの第2の部分66を受信する。コードの第2の部分66は、第2のコンピューティングデバイス50のコード表示領域86に表示される。第2のコンピューティングデバイス50のユーザは、コード表示領域86内で、コードの第2の部分66を第2のコンピューティングデバイス50のビューファインダー/表示領域84に表示するオプションを選択する。第2のコンピューティングデバイスがタッチスクリーンデバイスではない実施形態では、コードの第2の部分66は自動で表示され得る。
図13Bは、第1のコンピューティングデバイス48の背面光学スキャナ88が、第2のコンピューティングデバイス50のビューファインダー/表示領域84をスキャンして、第1のコンピューティングデバイス48のビューファインダー/表示領域84に表示するためにコードの第2の部分66を捕捉するように、第1のコンピューティングデバイス48が、第2のコンピューティングデバイス50の近くに(例えば、上方の、スキャン可能な範囲内で停止して)置かれている一例を示す。
コードの第2の部分66を表示するために第2のコンピューティングデバイス50のビューファインダー/表示領域84をスキャンし続けながら、第1のコンピューティングデバイス48のユーザは、ビューファインダー/表示領域84に表示された、コードの第2の部分66のスキャンされた画像が、コードの第1の部分64と位置合わせされるまで、第1のコンピューティングデバイス48を移動させる。例えば、コードの第1の部分64は、第1のコンピューティングデバイス48のビューファインダー/表示領域84の固定位置に表示される。第1のコンピューティングデバイス48を移動させることにより第1のコンピューティングデバイス48の背面光学スキャナ88が移動し、これにより、コードの第2の部分50のスキャンされた画像が、第1のコンピューティングデバイス48のビューファインダー/表示領域84上で移動する。
第1のコンピューティングデバイス48のビューファインダー/表示領域84は、これらの部分が正確に位置合わせされたときに完全なコードを捕捉し、位置合わせの成功及び完全なコードをネットワークコンピューティングデバイスと通信するように、動作可能である。次いで、ネットワークコンピューティングデバイスは、インタラクションを完成させる。位置合わせが成功し、インタラクションが完成すると、メッセージが現れ、インタラクションが完了したことを第1のコンピューティングデバイス48のユーザに通知する。
図14A~14Bは、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50を含む、マルチパートコードシステムの移動して位置合わせ及びスケーリング機能の一例の概略ブロック図である。図14Aは、図13A~13Bの例と同様であるが、第1のコンピューティングデバイス48のビューファインダー/表示領域84が位置合わせウィンドウ108を含み、第2のコンピューティングデバイス50のビューファインダー/表示領域84が、第1のコンピューティングデバイス48のビューファインダー/表示領域84よりも小さいことを除く。第1のコンピューティングデバイス48の背面光学スキャナ88が、第2のコンピューティングデバイス50のビューファインダー/表示領域84をスキャンするとき、コードの第2の部分66は、コードの第1の部分64と正しく位置合わせするには小さすぎる。
ネットワークアプリケーション54の画像処理モジュールは、第1のコンピューティングデバイス48のビューファインダー/表示領域84の位置合わせウィンドウ108内で、コードの第2の部分66を自動でスケーリングする。位置合わせウィンドウ108のサイズは、コードの第1の部分64の寸法に依存する。別の実施形態では、第1のコンピューティングデバイスのユーザは、タッチコマンド(例えば、2本指タッチ及び拡大)を介して、コードの第2の部分66を位置合わせウィンドウ108のサイズに手動でスケーリングする。
コードの第2の部分66が位置合わせウィンドウ108にスケーリングされた状態で、第1のコンピューティングデバイス48のユーザは、位置合わせウィンドウ108に表示されたコードの第2の部分66のスキャンされた画像が、静止したコードの第1の部分64と位置合わせされるまで、第1のコンピューティングデバイス48を移動させることができる。例えば、位置合わせウィンドウ108は、コードの第2の部分66とともに移動して、第1のコンピューティングデバイス48が移動するにつれて正しいスケーリングを維持する。
図14Bは、図14Aの例と同様であるが、第2のコンピューティングデバイス50のビューファインダー/表示領域84が、第1のコンピューティングデバイス48のビューファインダー/表示領域84よりも大きいことを除く。第1のコンピューティングデバイス48の背面光学スキャナ88が、第2のコンピューティングデバイス50のビューファインダー/表示領域84をスキャンするとき、コードの第2の部分66は、コードの第1の部分64と正しく位置合わせするには大きすぎる。
ネットワークアプリケーション54の画像処理モジュールは、第1のコンピューティングデバイス48のビューファインダー/表示領域84の位置合わせウィンドウ108内で、コードの第2の部分66を自動でスケーリングする。別の実施形態では、第1のコンピューティングデバイスのユーザは、タッチコマンド(例えば、2本指タッチ及び縮小)を介して、コードの第2の部分66を位置合わせウィンドウ108のサイズに手動でスケーリングする。
コードの第2の部分66が位置合わせウィンドウ108にスケーリングされた状態で、第1のコンピューティングデバイス48のユーザは、位置合わせウィンドウ108に表示されたコードの第2の部分66のスキャンされた画像が、静止したコードの第1の部分64と位置合わせされるまで、第1のコンピューティングデバイス48を移動させることができる。位置合わせウィンドウ108は、コードの第2の部分66とともに移動する。
図15は、マルチパートコードシステムの、移動して位置合わせする機能のための方法の一例のフローチャートである。方法はステップ110から始まり、ここでマルチパートコードシステムの第1のコンピューティングデバイスは、ネットワークアプリケーションを介して、マルチパートコードシステムのネットワークコンピューティングデバイスからコードの第1の部分を受信する。ネットワークアプリケーションは、第1のコンピューティングデバイスを、マルチパートコードシステムのネットワークコンピューティングデバイスと関連付ける。
ネットワークアプリケーションには、(例えば、光学スキャナを介して)光学スキャンされて、保存された(例えば、コードのスクリーンショット、メモリに記憶されたコード)、又はデータの図形コード化された表現などの別様に検出された画像データを分析するための、画像処理及びエンコード/デコード回路を含む画像処理モジュールが含まれる。ネットワークコンピューティングデバイスは、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間のインタラクションのために、コードの第1の部分を生成した。
方法はステップ112に続き、ここで第1のコンピューティングデバイスは、移動して位置合わせする機能のために、ネットワークアプリケーションのインタラクティブ表示部のビューファインダー/表示領域にコードの第1の部分を表示する。例えば、コードの第1の部分は、ネットワークアプリケーションのインタラクティブ表示部のコード表示領域に表示される。第1のコンピューティングデバイスのユーザは、移動して位置合わせする機能のために、コード表示領域からコードの第1の部分を選択し、ここでこの選択によって第1のコンピューティングデバイスのビューファインダー/表示領域にコードの第1の部分が表示される。別の例として、コードの第1の部分は、インタラクション情報に基づいて、第1のコンピューティングデバイスのビューファインダー/表示領域に自動で表示される(例えば、コードの第1の部分は、移動して位置合わせする機能のために特別に生成された)。
方法はステップ114に続き、ここでユーザは、第1のコンピューティングデバイスの光学スキャナ(例えば、スマートフォン背面カメラ)を、第2のコンピューティングデバイスのネットワークアプリケーションのインタラクティブ表示部のファインダ/表示領域の近くに位置決めする。第2のコンピューティングデバイスは、コードの第2の部分をビューファインダー/表示領域に表示する。ネットワークコンピューティングデバイスは、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間のインタラクションのために、コードの第2の部分を生成した。
位置決めすることにより、コードの第2の部分を、第1のコンピューティングデバイスのビューファインダー/表示領域にスキャンし、表示する。コードの第2の部分を表示することは、コードの第1及び第2の部分が位置合わせのために正しくサイズ決めされるように、コードの第2の部分を、位置合わせウィンドウにスケーリングすることを含み得る。方法はステップ116に続き、ここでユーザは、第1のコンピューティングデバイスを第2のコンピューティングデバイスの近くに位置決めし、コードの第1及び第2の部分が第1のコンピューティングデバイスのビューファインダー/表示領域で位置合わせされるようにする。
方法はステップ118に続き、ここで第1のコンピューティングデバイスは、インタラクション完成通知をネットワークコンピューティングデバイスに送信する。例えば、ビューファインダー/表示領域は、第1及び第2の部分が正確に置合わせされたときに完全なコードを捕捉し、位置合わせの成功及び完全なコードをネットワークコンピューティングデバイスと通信するように、動作可能である。
図16は、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50を含む、マルチパートコードシステムの移動して位置合わせする機能(a move to align function)の一例の概略ブロック図である。図16は、図13A~15と同様に動作するが、第1のコンピューティングデバイス48が、位置合わせ参照のために第2のコンピューティングデバイス50のビューファインダー/表示領域を使用して使用して、移動して位置合わせする機能を完了し、第2のコンピューティングデバイス50のビューファインダー/表示領域が完全なコードを捕捉することを除く。
動作の一例では、第1のコンピューティングデバイス48は、ネットワークコンピューティングデバイスからコードの第1の部分64を受信する。コードの第1の部分64は、第1のコンピューティングデバイス48のコード表示領域86に表示される。第1のコンピューティングデバイス48のユーザは、第1のコンピューティングデバイス48のビューファインダー/表示領域84にコードの第1の部分64を表示するためのオプションを選択する。別の実施形態では、コードの第1の部分64は、移動して位置合わせする機能のために、第1のコンピューティングデバイス48のビューファインダー/表示領域84に自動で表示されてもよい。
第2のコンピューティングデバイス50は、ネットワークコンピューティングデバイスからコードの第2の部分66を受信する。コードの第2の部分66は、第2のコンピューティングデバイス50のコード表示領域86に表示される。第2のコンピューティングデバイス50のユーザは、コード表示領域86内で、コードの第2の部分66を第2のコンピューティングデバイス50のビューファインダー/表示領域84に表示するオプションを選択する。別の実施形態では、コードの第2の部分66は、移動して位置合わせする機能のために、第2のコンピューティングデバイス50のビューファインダー/表示領域84に自動で表示されてもよい。
第1のコンピューティングデバイス48は、第2のコンピューティングデバイス50の近くに(例えば、上方の、スキャン可能な範囲内で停止して)置かれ、かつ第2のコンピューティングデバイス50の前面光学スキャナ90が第1のコンピューティングデバイス50のビューファインダー/表示領域84をスキャンし、スキャンされたコードの第1の部分64が第2のコンピューティングデバイス50のビューファインダー/表示領域84に表示されるように、下向きに(例えば、ビューファインダー/表示領域84とビューファインダー/表示領域84とが向かい合わせに)置かれている。
スキャンされたコードの第1の部分64を表示するために第1のコンピューティングデバイス48のビューファインダー/表示領域84をスキャンし続けながら、第1のコンピューティングデバイス48のユーザは、コードの第1の部分64のスキャンされた画像がコードの第2の部分66と位置合わせされるまで、第1のコンピューティングデバイス48を移動させる(例えば、ユーザは参照のために第2のコンピューティングデバイス50のビューファインダー/表示領域84を見ている)。
例えば、コードの第2の部分66は、第2のコンピューティングデバイス50のビューファインダー/表示領域84の固定位置に表示される。第1のコンピューティングデバイス48を移動させることにより、第2のコンピューティングデバイス50の前面光学スキャナ90がコードの第1の部分64をスキャンするやり方が動かされ、これにより、コードの第1の部分48のスキャンされた画像が、第2のコンピューティングデバイス50のビューファインダー/表示領域84上で移動する。
第2のコンピューティングデバイス50のビューファインダー/表示領域84は、これらの部分が正確に位置合わせされたときに完全なコードを捕捉し、位置合わせの成功及び完全なコードをネットワークコンピューティングデバイスと通信するように、動作可能である。次いで、ネットワークコンピューティングデバイスは、インタラクションを完成させる。位置合わせが成功し、インタラクションが完成すると、メッセージが現れ、インタラクションが完了したことを、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のうちの1つ以上のユーザに通知する。
一具体例として、コードの第1の部分64は、チケットの第1の部分(例えば、航空券、コンサートチケット、スポーツイベントチケットなど)であり、コードの第2の部分66は、チケットの第2の部分である。コードの第1の部分と第2の部分とが位置合わせされると、チケットは確認される。コードの第2の部分66は、一般的であり得、コードの第1の部分64は、発券情報に固有であり得る。例えば、第2のコンピューティングデバイス50は、各乗客のためにコードの新しい部分を生成する、Transportation Security Administration(TSA)エージェントのチケットスキャニングデバイスである。コードの部分は、時間変化する情報(例えば、タイムスタンプ、エージェント識別など)に関しては一意であるが、各乗客に提示される空港、セキュリティラインなどの一般的な情報を包含する。
コードの第1の部分は、第1のコンピューティングデバイスの48チケット情報のユーザを表す固有の情報を包含する。しかしながら、コードの第1の部分のチケット情報は、個々ではスキャン及び読み取りができない(例えば、第1のコンピューティングデバイス48が盗まれた場合、コードの第1の部分は、読み取り可能な情報にならないであろう)。コードの2つの部分が位置合わせされている場合にのみ、情報を正しく読み取ることができる。スマートフォン(第1のコンピューティングデバイス48)は、エージェントのチケットスキャニングデバイス(第2のコンピューティングデバイス50)の上で下向きに置かれ、スマートフォンのユーザは、スマートフォンをずらすことによって、かつエージェントのチケットスキャニングデバイスの表示部を視認して、これらの部分が位置合わせされたときを正確に判断することによって、これらの部分を位置合わせする。コードの部分をいずれかの当事者に表示する前に、生体認証スキャンなどの更なるセキュリティ機能が使用されてもよい。
例えば、第1のコンピューティングデバイス48は、スマートフォンであり、第2のコンピューティングデバイス50は、Transportation Security Administration(TSA)エージェントのチケットスキャニングデバイスである。第2のコンピューティングデバイス50は、コードの第2の部分を生成する前に、生体認証スキャン(例えば、指紋スキャン、顔識別スキャンなど)を要求する。生体認証スキャンで得られた情報は、コードの第2の部分の生成に使用される。次いで、第1のコンピューティングデバイスのユーザは、コードの第1の部分のロックを解除するために別の生体認証スキャンを実施するよう要求されてもよく、又はコードの第1の部分は、コードの第2の部分と位置合わせするために生体認証情報を含む。このシナリオでは、コードの部分を位置合わせさせようとしている人は、これらの部分を位置合わせさせるために、コード化された情報にリンクされた確認可能な識別を有していなければならない。
図17は、第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50を含む、マルチパートコードシステムの移動して位置合わせ及びスケーリング機能の一例の概略ブロック図である。図17は、図16と同様に動作するが、第2のコンピューティングデバイス50のビューファインダー/表示領域84が位置合わせウィンドウ108を含み、第1のコンピューティングデバイス48のビューファインダー/表示領域84が、第2のコンピューティングデバイス50のビューファインダー/表示領域84よりも小さいことを除く。
図17は、図14Aの例と同様にコードの部分をスケーリングするが、第2のコンピューティングデバイス50の前面光学スキャナ90が、第1のコンピューティングデバイス48のビューファインダー/表示領域84をスキャンすることを除く。この例では、コードの第1の部分64は、コードの第2の部分66と正しく位置合わせするには小さすぎる。
ネットワークアプリケーション54の画像処理モジュールは、第2のコンピューティングデバイス50のビューファインダー/表示領域84の位置合わせウィンドウ108内で、コードの第1の部分64を自動でスケーリングする。位置合わせウィンドウ108のサイズは、コードの第2の部分66の寸法に依存する。別の実施形態では、第1又は第2のコンピューティングデバイスのユーザは、第2のコンピューティングデバイス50の位置合わせウィンドウで行われるタッチコマンド(例えば、2本指タッチ及び拡大)を介して、コードの第1の部分64を位置合わせウィンドウ108のサイズに手動でスケーリングする。
コードの第1の部分64が位置合わせウィンドウ108にスケーリングされた状態で、第1のコンピューティングデバイス48のユーザは、位置合わせウィンドウ108に表示されたコードの第1の部分64のスキャンされた画像が、静止したコードの第2の部分66と位置合わせされるまで、第1のコンピューティングデバイス48を移動させることができる。位置合わせウィンドウ108は、コードの第1の部分64とともに移動する。
第2のコンピューティングデバイス50の前面光学スキャナ90が、第1のコンピューティングデバイス48のビューファインダー/表示領域84をスキャンし、かつコードの第1の部分64が、コードの第2の部分66と正しく位置合わせするには大きすぎるとき、第2のコンピューティングデバイス50の位置合わせウィンドウ108において大きすぎるコードの第1の部分64を自動又は手動でスケーリングする同様のプロセスが発生する。
図18は、マルチパートコードシステムの、移動して位置合わせする機能のための方法の一例のフローチャートである。方法はステップ122から始まり、ここでマルチパートコードシステムの第1のコンピューティングデバイスは、ネットワークアプリケーションを介して、マルチパートコードシステムのネットワークコンピューティングデバイスからコードの第1の部分を受信する。ネットワークアプリケーションは、第1のコンピューティングデバイスを、マルチパートコードシステムのネットワークコンピューティングデバイスと関連付ける。
ネットワークアプリケーションには、(例えば、光学スキャナを介して)光学スキャンされて、保存された(例えば、コードのスクリーンショット、メモリに記憶されたコード)、又はデータの図形コード化された表現などの別様に検出された画像データを分析するための、画像処理及びエンコード/デコード回路を含む画像処理モジュールが含まれる。ネットワークコンピューティングデバイスは、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間のインタラクションのために、コードの第1の部分を生成した。ネットワークコンピューティングデバイスは、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間のインタラクションのために、コードの第1の部分を生成した。
方法はステップ124に続き、ここで第1のコンピューティングデバイスは、移動して位置合わせする機能のために、ネットワークアプリケーションのインタラクティブ表示部のビューファインダー/表示領域にコードの第1の部分を表示する。例えば、コードの第1の部分は、ネットワークアプリケーションのインタラクティブ表示部のコード表示領域に表示される。第1のコンピューティングデバイスのユーザは、移動して位置合わせする機能のために、コード表示領域からコードの第1の部分を選択し、ここでこの選択によって第1のコンピューティングデバイスのビューファインダー/表示領域にコードの第1の部分が表示される。別の例として、コードの第1の部分は、インタラクション情報に基づいて、第1のコンピューティングデバイスのビューファインダー/表示領域に自動で表示される(例えば、コードの第1の部分は、移動して位置合わせする機能のために特別に生成された)。
方法はステップ126に続き、ここでユーザは、第1のコンピューティングデバイスのビューファインダー/表示領域を第2のコンピューティングデバイスの光学スキャナの近くに位置決めする。例えば、第2のコンピューティングデバイスは、第2のコンピューティングデバイスのビューファインダー/表示領域と同じ表面上に前面光学スキャナ(例えば、カメラ)を含む。第1のコンピューティングデバイスのユーザは、第1のコンピューティングデバイスのビューファインダー/表示領域が、第2のコンピューティングデバイスのビューファインダー/表示領域及び前面光学スキャナに面するように、第1のコンピューティングデバイスを裏返す。第2のコンピューティングデバイスは、コードの第2の部分を第2のコンピューティングデバイスのビューファインダー/表示領域に表示する。ネットワークコンピューティングデバイスは、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間のインタラクションのために、コードの第2の部分を生成した。
位置決めすることにより、コードの第1の部分を、第2のコンピューティングデバイスのビューファインダー/表示領域にスキャンし表示する。コードの第1の部分を表示することは、コードの第1及び第2の部分が正しくサイズ決めされるように、コードの第1の部分を、第2のコンピューティングデバイスのビューファインダー/表示領域の位置合わせウィンドウにスケーリングすることを含み得る。方法はステップ128に続き、ここでユーザは、第1のコンピューティングデバイスを第2のコンピューティングデバイスの近くに位置決めし、コードの第1及び第2の部分が第2のコンピューティングデバイスのビューファインダー/表示領域で位置合わせされてコードを作成するようにする。
方法はステップ130に続き、ここで第2のコンピューティングデバイスは、インタラクション完成通知をネットワークコンピューティングデバイスに送信する。例えば、第2のコンピューティングデバイスのビューファインダー/表示領域は、正確に位置合わせされたときに完全なコードを捕捉し、位置合わせの成功及び完全なコードをネットワークコンピューティングデバイスと通信するように、動作可能である。
図19A~19Cは、インタラクションのためのコード部分オプションを選択する一例の概略図である。図19A~19Cは、図8A~10Bのドラッグアンドドロップ位置合わせ機能例と同様に動作するが、図19A~19Cにおいて、コードの第1の部分64とともにドラッグアンドドロップするための、複数のコード部分オプションが第2のコンピューティングデバイス50に提示されることを除く。
図19Aにおいて、第1のコンピューティングデバイス48は、ネットワークコンピューティングデバイスからコードの第1の部分64を受信する。コードの第1の部分64は、第1のコンピューティングデバイス48のコード表示領域86に表示される。第1のコンピューティングデバイス48のユーザは、コードの第1の部分64を第1のコンピューティングデバイス48のビューファインダー/表示領域84に表示するためのオプションを選択して、第2のコンピューティングデバイス50のユーザがコードの第1の部分64をスキャンすることを可能にする。
第2のコンピューティングデバイス50のユーザは、第2のコンピューティングデバイス50のビューファインダー/表示領域84内のスキャンオプションを選択して、第2のコンピューティングデバイス50の背面光学スキャナ88(例えば、スマートフォンカメラアプリケーション)を使用して第1のコンピューティングデバイス48のビューファインダー/表示領域84をスキャンする。この例では、第1のコンピューティングデバイス48のビューファインダー/表示領域84は、第2のコンピューティングデバイス50の背面光学スキャナ88によってスキャンされ、コードの第1の部分64は、第2のコンピューティングデバイス50のビューファインダー/表示領域84に表示される。
第2のコンピューティングデバイス50は、ネットワークコンピューティングデバイスから、コードの第2の部分の複数のオプション66-1~66-4を受信する。コードの第2の部分の複数のオプション66-1~66-4は、第2のコンピューティングデバイス50のコード表示領域86に表示される。例えば、1つのオプションは、インタラクションを完了するのに十分な情報を包含する(例えば、「インタラクション情報」が含まれる)、コードの第2の部分66-1である。他のオプション66-2~66-4は、第2のコンピューティングデバイス50のユーザが共有することを選択することができる、追加の個人情報を含む。
例えば、コードの第2の部分のオプション66-2は、電子メールアドレスを含み、コードの第2の部分のオプション66-3は、電話番号を含み、コードの第2の部分のオプション66-4は、ロイヤルティ情報(例えば、顧客ロイヤルティ識別子(ID、フリークエントフライヤー番号など))を含む。他の例としては、既知の旅行者識別子(ID)(例えば、TSA事前チェック番号)、プロモーション/割引コード、自宅住所、事業所住所、セキュリティ情報(例えば、セキュリティ質問への回答)、社会保障番号、運転免許証番号、ソーシャルメディアアカウントリンク、ウェブサイトリンクなどが挙げられる。ユーザは、複数のオプションを用いて、特定のインタラクションにおいて情報をどれだけ少なく又はどれだけ多く共有したいかを決定することができる。
図19Bにおいて、第2のコンピューティングデバイス50のユーザは、コードの第2の部分のインタラクション情報オプション66-1をビューファインダー/表示領域84内にドラッグして、コードの第1の部分64と位置合わせさせる。位置合わせされると、ユーザは、コードの第2の部分のインタラクション情報オプション66-1をビューファインダー/表示領域84に「ドロップ」(例えば、タッチを離し)して、完全なコードを作成する。コードの第2の部分の複数のオプションが利用可能であるため、ビューファインダー/表示領域84は、ユーザがいつコードを捕捉すべきかを示すことができるように、ユーザに確認ボタンを表示する。
図19Cにおいて、第2のコンピューティングデバイス50のユーザは、コードの第2の部分のロイヤルティ情報オプション66-3を、ビューファインダー/表示領域84のコードの第2の部分のインタラクション情報オプション66-1の上にドラッグして、コードの第1の部分64と位置合わせさせる。位置合わせされると、ユーザは、コードの第2の部分のロイヤルティ情報オプション66-3をビューファインダー/表示領域84に「ドロップ」(例えば、タッチを離し)して、完全なコードを作成する。この例では、ユーザは、任意の追加情報を含めたくなく、ビューファインダー/表示領域84の「押下して確認」ボタンを選択する。
ビューファインダー/表示領域84は、確認が受信され、これらの部分が正確に位置合わせされたときに完全なコードを捕捉し、位置合わせの成功及び完全なコードをネットワークコンピューティングデバイスに通信するように、動作可能である。ネットワークアプリケーションは、捕捉された完全なコードが、インタラクションを完了するための少なくとも最小限の情報を包含することを確認する。例えば、ユーザは、コードの第2の部分の電子メールアドレスオプション66-2のみをドラッグアンドドロップし、完全なコードを確認しようと試みることができる。ビューファインダー/表示領域84は、完全なコードを捕捉し、より多くの情報が必要であることを認識するように動作可能である。そのシナリオでは、ユーザは、完全なコードに最小限の情報が捕捉されるまで、より多くのオプションをドラッグアンドドロップするように促されるであろう。
インタラクションを完了するための少なくとも最小限の情報を有する完全なコードが捕捉されると、ネットワークコンピューティングデバイスは、次いで、インタラクションを完成させる。位置合わせが成功し、インタラクションが完成すると、メッセージが現れ、インタラクションが完了したことを第2のコンピューティングデバイス50のユーザに通知する。
図20は、インタラクションのためのコード部分オプションを選択する方法の一例のフローチャートである。方法はステップ134から始まり、ここでマルチパートコードシステムの第1のコンピューティングデバイスは、マルチパートコードシステムの第2のコンピューティングデバイスと関連付けられたコードの第2の部分を取得する。例えば、第1のコンピューティングデバイスは、光学スキャナを介して、第2のコンピューティングデバイスの表示部をスキャンし、コードの第2の部分のスキャンされた画像を取り出す。別の例として、第1のコンピューティングデバイスは、第1のコンピューティングデバイスのインターネットブラウザアプリケーション上で開かれたウェブサイト又は電子メールからのコードの第2の部分を、スクリーンショットで撮る、かつ/又は保存する。
方法はステップ136に続き、ここで第2のコンピューティングデバイスは、ネットワークアプリケーションのインタラクティブ表示部のビューファインダー/表示領域に、コードの第1の部分を表示する。例えば、第1のコンピューティングデバイスのユーザは、ネットワークアプリケーションが開いている間にコードの第2の部分をスキャンし、ネットワークアプリケーションは、コードの第2の部分をビューファインダー/表示領域に表示する。別の例として、第1のコンピューティングデバイスのユーザは、ネットワークアプリケーションのビューファインダー/表示領域にアップロード及び表示するために、ストレージ又は別のアプリケーションからコードの第2の部分を選択する。別の例として、コードの第2の部分がストレージ又は別のアプリケーションで検出されると(例えば、ネットワークアプリケーションは、コード又はコード部分のスクリーンショットが直ちに使われるために検出され得るように、第1のコンピューティングデバイスの写真ストレージにアクセスする)、ネットワークアプリケーションが自動で開き、コードビューファインダー/表示領域の第2の部分を表示する。
ネットワークアプリケーションは、第2のコンピューティングデバイスを、マルチパートコードシステムのネットワークコンピューティングデバイスと関連付ける。ネットワークアプリケーションには、(例えば、光学スキャナを介して)光学スキャンされて、保存された(例えば、コードのスクリーンショット、メモリに記憶されたコード)、又はデータの図形コード化された表現などの別様に検出された画像データを分析するための、画像処理及びエンコード/デコード回路を含む画像処理モジュールが含まれる。
方法はステップ138に続き、ここで第2のコンピューティングデバイスは、インタラクティブ表示部のコード表示領域に表示するための、コードの第2の部分の複数のオプションを受信する。ネットワークコンピューティングデバイスは、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間のインタラクションのために、コードの第1の部分及びコードの第2の部分の複数のオプションを生成した。
方法はステップ140に続き、ここで第2のコンピューティングデバイスのユーザは、コードの第2の部分の複数のオプションのうちの第1のオプションを、コード表示領域からビューファインダー/表示領域にドラッグして、第1のオプションをコードの第1の部分と位置合わせさせる。コードの第2の部分の複数のオプションのうちの第1のオプションは、第1の情報を含む。
方法はステップ142に続き、ここで第1のオプションがコードの第1の部分と位置合わせされると、ユーザは、第1のオプションをビューファインダー/表示領域にドロップして、第1のレベルの情報を有する完全なコードを作成する。所望のオプションがドラッグアンドドロップされると、ユーザは、ステップ144において、所望のレベルの情報を有する完全なコードが作成されていることを確認する。
所望のオプションがドラッグアンドドロップされておらず、ステップ144で、ユーザが所望のレベルの情報を有する完全なコードが作成されたことを確認していない場合、方法はステップ146に続き、ユーザは、オプションのドラッグアンドドロップを続ける。例えば、第2のコンピューティングデバイスのユーザは、コードの第2の部分の複数のオプションのうちの第2のオプションを、コード表示領域からビューファインダー/表示領域にドラッグして、第2のオプションをコードの第1の部分と位置合わせさせる。
コードの第2の部分の複数のオプションのうちの第2のオプションは、第2の情報を含む。第2のオプションがコードの第1の部分と位置合わせされると、ユーザは、第2のオプションをビューファインダー/表示領域にドロップして、第2のレベルの情報を有する完全なコードを作成する。第2のレベルの情報は、第1の情報及び第2の情報を含む。コードの第2の部分の複数のオプションのうちの所望の量のオプションがドロップされドラッグされると、第2のコンピューティングデバイスのユーザは、ステップ144において、作成されたコードが最後であることを確認する。
方法はステップ148に続き、ここでネットワークアプリケーションは、インタラクションを完了するために、作成されたコードに最小限の情報が存在することを確認する。作成されたコードが、インタラクションを完了するために存在する最小限の情報を有さない場合、方法はステップ146に分岐し、ここでユーザに更なるオプションをドラッグアンドドロップするように促す。一実施形態では、十分な情報が追加された後、ネットワークアプリケーションは、十分な情報を有する完全なコードが作成されたことを自動で確認してもよく、したがってステップ144及び148をスキップし、インタラクションを完成させる150に続いてもよい。
作成されたコードが、インタラクションを完了するために存在する最小限の情報を有する場合、方法はステップ150に続き、ここで第2のコンピューティングデバイスは、インタラクション完成通知をネットワークコンピューティングデバイスに送信する。例えば、ネットワークアプリケーションのビューファインダー/表示領域は、正確に位置合わせされたときに完全なコードを捕捉し、位置合わせの成功及び完全なコードをネットワークコンピューティングデバイスと通信するように、動作可能である。
図21A~21Bは、インタラクションのための、複数のコード部分オプションのうちの1つのコード部分オプションを選択する一例の概略図である。図21A~21Bは、図19A~19Cと同様に動作するが、ユーザが、様々なレベルの情報を包含する複数のコード部分オプションのうちの1つの所望のコード部分オプションを選択することを除く。
図21Aにおいて、第1のコンピューティングデバイス48は、ネットワークコンピューティングデバイスからコードの第1の部分64を受信する。コードの第1の部分64は、第1のコンピューティングデバイス48のコード表示領域86に表示される。第1のコンピューティングデバイス48のユーザは、コード表示領域86内で、コードの第1の部分64を第1のコンピューティングデバイス48のビューファインダー/表示領域84に表示するためのオプションを選択して、第2のコンピューティングデバイス50のユーザがコードの第1の部分64をスキャンすることを可能にする。
第2のコンピューティングデバイス50のユーザは、第2のコンピューティングデバイス50のビューファインダー/表示領域84内のスキャンオプションを選択して、第2のコンピューティングデバイス50の光学スキャナ(例えば、スマートフォンカメラアプリケーション)を使用して第1のコンピューティングデバイス48のビューファインダー/表示領域84をスキャンする。この例では、第1のコンピューティングデバイス48のビューファインダー/表示領域84は、第2のコンピューティングデバイス50の背面光学スキャナ88によってスキャンされ、コードの第1の部分64は、第2のコンピューティングデバイス50のビューファインダー/表示領域84に表示される。
第2のコンピューティングデバイス50は、ネットワークコンピューティングデバイスから、コードの第2の部分の複数のオプション66-1及び66-2を受信する。コードの第2の部分の複数のオプション66-1(すなわち、オプション「A」)及び66-2(すなわち、オプション「B」)は、様々なレベルの情報を包含する。例えば、オプションAは、インタラクションを完了するのに十分な情報を包含するコードの第2の部分であり、オプションBは、オプションAの情報の全てと、電子メールアドレスなどの追加の個人情報とを含む。コードの第2の部分の複数のオプション66-1及び66-2は、第2のコンピューティングデバイス50のコード表示領域86に表示される。
図21Bにおいて、第2のコンピューティングデバイス50のユーザは、コードの第2の部分66-2(すなわち、オプションAよりも多くの情報を含むコードの第2の部分である、オプションB)を選択し、コードの第2の部分66-2をビューファインダー/表示領域84内にドラッグして、コードの第1の部分64と位置合わせさせる。位置合わせされると、ユーザは、コードの第2の部分66-2をビューファインダー/表示領域84内に「ドロップ」し(例えば、タッチを離し)、完全なコードを作成する。図19A~19Cの例と比較して、所望の部分が選択されたことを確認する、又は作成されたコードがインタラクションを完了するための最小限の情報を包含することを確認するための確認ステップは必要とされない。
ビューファインダー/表示領域84は、これらの部分が正確に位置合わせされたときに完全なコードを捕捉し、位置合わせの成功及び完全なコードをネットワークコンピューティングデバイスに通信するように動作可能である。次いで、ネットワークコンピューティングデバイスは、インタラクションを完成させる。位置合わせが成功し、インタラクションが完成すると、メッセージが現れ、インタラクションが完了したことを第1のコンピューティングデバイス48及び第2のコンピューティングデバイス50のうちの1つ以上のユーザに通知する。
図22は、インタラクションのための、複数のコード部分オプションのうちの1つのコード部分オプションを選択する別の例の概略図である。図22は、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間のインタラクションのために複数のコード部分オプションが生成され、位置合わせのために1つのオプションが選択されるという点で、図21A~21Bと同様である。しかしながら、図22は、先行する図のドラッグアンドドロップ位置合わせ機能とは対照的に、移動して位置合わせする機能のために所望のコード部分オプションを選択する一例を描写している。移動して位置合わせする機能については、図13A~18を参照してより詳細に考察されている。
図22において、第1及び第2のコンピューティングデバイスには、第1のコンピューティングデバイス48と第2のコンピューティングデバイス50との間のインタラクションのために、ネットワークコンピューティングデバイスから複数のコード部分オプションが送信される。別の実施形態では、第1又は第2のコンピューティングデバイスのいずれかに、複数のコード部分オプションが送信され、もう一方に、コードの1つの部分(すなわち、1つのオプションのみ)が送信される。この例では、第1のコンピューティングデバイスは、コードの第1の部分の複数のオプションのうちの第1のオプション64-1(すなわち、オプション「A」)及びコードの第1の部分の複数のオプションのうちの第2のオプション64-2(すなわち、オプション「B」)を受信する。コードの第1の部分の複数のオプションは、様々なレベルの情報を包含する。例えば、オプションAは、コードの第2の部分と位置合わせされたときにインタラクションを完了するのに十分な情報を包含する、コードの第1の部分であり、オプションBは、オプションAの情報の全てと、電子メールアドレスなどの追加の個人情報とを含む。
コードの第1の部分の複数のオプションのうちの、第1及び第2のオプション64-1及び64-2は、第1のコンピューティングデバイス48のコード表示領域86に表示される。第1のコンピューティングデバイス48のユーザは、コード表示領域86内で、第1のコンピューティングデバイス48のビューファインダー/表示領域84に表示するためのオプションを選択する。例えば、ユーザは、第1のコンピューティングデバイス48のビューファインダー/表示領域84内に表示するために、コードの第1の部分のオプション64-1(すなわち、オプション「A」)を選択し、移動して位置合わせする機能に関与させる。
第2のコンピューティングデバイスは、コードの第2の部分の複数のオプションのうちの第1のオプション66-1(すなわち、オプション「A」)及びコードの第2の部分の複数のオプションのうちの第2のオプション66-2(すなわち、オプション「B」)を受信する。コードの第2の部分の複数のオプションは、様々なレベルの情報を包含する。例えば、オプションAは、コードの第1の部分とのインタラクションを完了するのに十分な情報を含むコードの第2の部分であり、オプションBは、オプションAの情報の全てと、電子メールアドレスなどの追加の個人情報とを含む。
コードの第2の部分のオプション66-1及び66-2は、第2のコンピューティングデバイス50のコード表示領域86に表示される。第2のコンピューティングデバイス50のユーザは、コード表示領域86内で、第2のコンピューティングデバイス50のビューファインダー/表示領域84に表示するためのオプションを選択する。例えば、ユーザは、第2のコンピューティングデバイス50のビューファインダー/表示領域84内に表示するために、コードの第2の部分のオプション66-2(すなわち、オプション「B」)を選択し、移動して位置合わせする機能に関与させる。移動して位置合わせする機能は、図13B(一方のデバイスの背面光学スキャナがもう一方のデバイスのビューファインダー/表示領域84をスキャンする)、又は図16(一方のデバイスの前面光学スキャナがもう一方のデバイスのビューファインダー/表示領域84をスキャンする)のいずれかの例と同様に発生する。
図23は、インタラクションのための、複数のコード部分オプションのうちの1つのコード部分オプションを選択する方法の一例のフローチャートである。方法はステップ154から始まり、ここでマルチパートコードシステムの第1のコンピューティングデバイスは、第1のコンピューティングデバイスのネットワークアプリケーションのインタラクティブ表示領域のコード表示領域に表示するための、コードの第1の部分の複数のオプションを受信する。
ネットワークアプリケーションは、第1のコンピューティングデバイスを、マルチパートコードシステムのネットワークコンピューティングデバイスと関連付ける。ネットワークアプリケーションには、(例えば、光学スキャナを介して)光学スキャンされて、保存された(例えば、コードのスクリーンショット、メモリに記憶されたコード)、又はデータの図形コード化された表現などの別様に検出された画像データを分析するための、画像処理及びエンコード/デコード回路を含む画像処理モジュールが含まれる。ネットワークコンピューティングデバイスは、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間のインタラクションのために、コードの第1の部分の複数のオプションとコードの第2の部分とを生成した。
別の実施形態では、ネットワークコンピューティングデバイスは、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間のインタラクションのために、コードの第1の部分の複数のオプションとコードの第2の部分の複数のオプションとを生成した。第2のコンピューティングデバイスは、コードの第2の部分の所望のオプションを選択し、第1のコンピューティングデバイスに提示した。
コードの第1の部分の複数のオプションは、コードの第2の部分と位置合わせされたときにインタラクションを完了するのに十分な情報を個々に含むが、異なる部分オプションには異なるレベルの追加情報が含まれる。例えば、コードの第1の部分の複数のオプションのうちの第1のオプションには、第1の情報(例えば、インタラクションを完了するための最小限の情報)が含まれ、コードの第1の部分の複数のオプションのうちの第2のオプションには、第2の情報が含まれる。第2の情報には、第1の情報と、追加情報(例えば、電子メールアドレス、顧客ロイヤルティ情報、電話番号など)とが含まれる。
方法はステップ156に続き、ここで第1のコンピューティングデバイスのユーザは、ユーザがインタラクションで共有することを望む所望のレベルの情報に基づいて、位置合わせ機能のために、コード表示領域からコードの第1の部分の複数のオプションのうちの所望のオプションを選択する。位置合わせ機能は、ドラッグアンドドロップ位置合わせ、又は移動して位置合わせする機能であり得る。位置合わせ(する)機能が、ドラッグアンドドロップ位置合わせである場合、第1のコンピューティングデバイスは、第1のコンピューティングデバイスのビューファインダー/表示領域内のコードの第2の部分を、(例えば、背面光学スキャナを介して)捕捉する。位置合わせ(する)機能が、移動して位置合わせする機能である場合、ユーザは、コード表示領域からコードの第1の部分の複数のオプションのうちの所望のオプションを選択して、第1のコンピューティングデバイスのビューファインダー/表示領域に表示する。
方法はステップ158に続き、ここでコードの第1の部分の複数のオプションのうちの所望のオプションは、所望のレベルの情報を有するコードを作成するために、位置合わせ機能を介してコードの第2の部分と位置合わせされる。位置合わせ機能がドラッグアンドドロップ位置合わせである場合、第1のコンピューティングデバイスのユーザは、所望のオプションをビューファインダー/表示領域にドラッグしてコードの第2の部分と位置合わせし、所望のオプションを第1のコンピューティングデバイスのビューファインダー/表示領域内でドロップして、所望のレベルの情報を有するコードを作成する。
位置合わせ機能が、移動して位置合わせする機能である場合、第1のコンピューティングデバイスのユーザは、第1のコンピューティングデバイスを第2のコンピューティングデバイスの近くに位置決めして、所望のオプションをコードの第2の部分と位置合わせさせる。例えば、第1のコンピューティングデバイスの背面光学スキャナを使用して第2のコンピューティングデバイスのビューファインダー/表示領域をスキャンし、コードの第2の部分を捕捉すると、第1のコンピューティングデバイスのユーザは、第1のコンピューティングデバイスを移動させて、表示された所望のオプションを、第1のコンピューティングデバイスのビューファインダー/表示領域で捕捉されたコードの第2の部分と位置合わせさせる。
別の例として、第2のコンピューティングデバイスの前面光学スキャナを使用して第1のコンピューティングデバイスのビューファインダー/表示領域をスキャンし、所望のオプションを捕捉すると、第1のコンピューティングデバイスのユーザは、第1のコンピューティングデバイスを移動させて、第2のコンピューティングデバイスのビューファインダー/表示領域で捕捉された所望のオプションを、第2のコンピューティングデバイスのビューファインダー/表示領域に表示されたコードの第2の部分と位置合わせさせる。
方法はステップ160に続き、ここでインタラクション完成通知がネットワークコンピューティングデバイスに送信される。例えば、これらの部分が正確に位置合わせされたときに、所望のレベルの情報を有する作成されたコードを捕捉するデバイス(例えば、位置合わせ機能に応じて、第1又は第2のコンピューティングデバイス)は、ネットワークコンピューティングデバイスに、位置合わせの成功と作成されたコードとを通信する。
図24は、マルチソースマルチパートコードシステム162の一実施形態の概略ブロック図であり、ネットワークコンピューティングデバイス46、複数のソースコンピューティングデバイス166-1~166-n、宛先コンピューティングデバイス164、及びインターフェース手段52を含む。図24は、図3のマルチパートコードシステムと同様であるが、1つのデバイス(例えば、第1のコンピューティングデバイス)が別のデバイス(例えば、第2のコンピューティングデバイス)と相互作用する代わりに、ここでは、複数のソースコンピューティングデバイス166-1~166-nが、宛先コンピューティングデバイス164とのインタラクション60に関与することを除く。
例えば、複数のソースコンピューティングデバイス166-1~166-nは、消費者用スマートフォンであり、宛先コンピューティングデバイス164は、マーチャントポイントオブセール(POS)デバイスであり、インタラクション60は、ソースコンピューティングデバイスから宛先コンピューティングデバイスへの分割支払いである。別の例として、複数のソースコンピューティングデバイス166-1~166-nは、夫婦又はビジネスパートナーによって動作するスマートフォンであり、宛先コンピューティングデバイス164は、個人又は団体によって動作するコンピューティングデバイスであり、インタラクション60は、契約への署名である。
動作の一例では、ネットワークコンピューティングデバイス46は、ソースコンピューティングデバイス166-1~166-n及び宛先コンピューティングデバイス164のうちの1つ以上からインタラクション情報(「情報」)62を受信する。インタラクション情報62は、ソースコンピューティングデバイス166-1~166-nと宛先コンピューティングデバイス164との間のインタラクション60に関している。
例えば、インタラクション60は、ソースコンピューティングデバイス166-1~166-nが、商品又はサービスのために宛先コンピューティングデバイス164に支払っている支払い取引である。ソースコンピューティングデバイス166-1~166-nのうちの1つ以上は、ソースコンピューティングデバイス識別子(ID)、支払い額、使用する所望の通貨及び/又は支払い方法、顧客ロイヤルティ情報、プロモーションコード、請求先住所などのインタラクション情報62を、(例えば、ネットワークアプリ54がデジタルウォレットアプリケーションであるネットワークアプリ54を介して)ネットワークコンピューティングデバイス46に送信する。
宛先コンピューティングデバイス164は、宛先コンピューティングデバイス164識別子(例えば、マーチャントID)、支払い額、所望の支払い方法の形態、提供される割引などのインタラクション情報62を、(例えば、ネットワークアプリ54を介して)ネットワークコンピューティングデバイス46に送信する。ネットワークコンピューティングデバイス46のマルチパートコード生成モジュール56は、コードのソース部分及び宛先部分が個々では使用できないように、コードの複数のソース部分168-1~168-nとコードの宛先部分170とを生成する。
コードの宛先部分170とコードの複数のソース部分168-1~168-nとを位置合わせすることにより、インタラクション情報62を表すコードが光学的に作成される。ソースコンピューティングデバイス166-1~166-nのうちの1つ以上のネットワークアプリケーション54の画像処理モジュール、及び宛先コンピューティングデバイス164は、光学的に作成されたコードを検出、捕捉、及び処理するように動作可能である。
ネットワークコンピューティングデバイス46は、コードのソース部分168-1~168-nをそれぞれのソースコンピューティングデバイス166-1~166-nに送信し、コードの宛先部分170を宛先コンピューティングデバイス164に送信する。コードのソース部分168-1~168-nは、インタラクション60を完了する意図を示す完全なコードが光学的に作成されるように、ネットワークアプリケーション54の位置合わせ機能を通じてコードの宛先部分170と位置合わせされなければならない。
ネットワークコンピューティングデバイス46は、コードの全てのソース部分168-1~168-nがコードの宛先部分170と正確に位置合わせされるまではインタラクション60が不完全であるように、位置合わせ機能を通じて光学的に作成されたコードを追跡し続ける。コードの部分の位置合わせについては、図8A~18及び図24A~24Eを参照してより詳細に考察される。
代替的に、ソースコンピューティングデバイス166-1は、別のソースコンピューティングデバイス166-2が、いまだソースコンピューティングデバイス166-2と宛先コンピューティングデバイスとのインタラクションを完了するプロセス中である間に、ソースコンピューティングデバイス166-1と宛先コンピューティングデバイスとのインタラクションの特定の部分を完了することが可能であり得る。全体的なインタラクションは、コードの全てのソース部分168-1~168-nがコードの宛先部分170と正確に位置合わせされるまでは不完全であるが、ソースコンピューティングデバイス166-1は、任意の更なるアクションを実施する必要がないため、インタラクションが完了したという通知を受信する。
例えば、インタラクションが契約への署名である場合、ソースコンピューティングデバイス166-1のユーザは、位置合わせ機能を実施して、契約への署名を示すインタラクションを完了する。ソースコンピューティングデバイス166-1のユーザは署名が成功したという通知を受信するが、ユーザの配偶者又はビジネスパートナーも契約への署名を示すインタラクションを完了するための位置合わせ機能を実施するまで、契約は完了しない。
別の例として、インタラクションが支払いの分割である場合、ソースコンピューティングデバイス166-1のユーザは、支払いの一部分を支払うことを示すインタラクションを完了するための位置合わせ機能を実施する。ソースコンピューティングデバイス166-1のユーザは、位置合わせ機能が成功したという通知を受信するが、完全な支払いが確認される(例えば、他のソースコンピューティングデバイスが、それらのデバイスの支払いの部分を支払うことを示すインタラクションを完了するための位置合わせ機能を実施する)まで、支払いはユーザのアカウントから引き出されない。例えば、他のソースコンピューティングデバイスのうちの1つ以上が、それらのデバイスの支払いの部分を支払うことを示すインタラクションを完了するための位置合わせ機能を実施しない場合、ソースコンピューティングデバイス166-1のユーザは、より多くの支払いを行うように、又は共有支払い取引を取り消すように通知され得る。
コードのソース部分168-1~168-nが、コードの宛先部分170と正確に位置合わせされ、光学的に作成されたコードが(例えば、ネットワークアプリケーション54の画像処理モジュールを介して)捕捉され、コードが、インタラクションを完了するために必要な全ての情報を表していると確認されると、ネットワークコンピューティングデバイス46のインタラクション完成モジュール58は、インタラクション60を完成させる。例えば、インタラクション完成モジュール58は、ソースコンピューティングデバイス166-1~166-nに関連付けられたアカウントから、宛先コンピューティングデバイス164に関連付けられたアカウントにある金額を送金する。
光学的に作成されたコードが捕捉されていない場合(例えば、位置合わせ前に一定時間が経過した後、エラーによってなど)、ネットワークコンピューティングデバイス46は、1つ以上の解決策を実装し得る。例えば、ネットワークコンピューティングデバイス46は、適切な位置合わせの前に一定の時間が経過した後、コードの新しいソース部分及び/又は宛先部分を生成し、配信する(例えば、コードの新しい部分が生成され、位置合わせの前に30秒~1分ごとに送信される)。
別の例として、ネットワークコンピューティングデバイス46は、ソースコンピューティングデバイス166-1~166-n及び宛先コンピューティングデバイス164のうちの1つ以上に、位置合わせに関して通知する(例えば、位置合わせを再試行する通知が送信される、新しいコードを再生成するかどうかに関するクエリ、コードのソース部分及び宛先部分のうちの1つ以上に関連するエラーの通知、位置合わせ機能を完了できなかったデバイスに位置合わせ機能を実施するよう通知など)。
図24A~24Eは、マルチソースマルチパートコードの例の概略ブロック図である。図24Aにおいて、ネットワークコンピューティングデバイス46は、宛先コンピューティングデバイス164及びソースコンピューティングデバイス166-1~166-2(この例では、2つのソースコンピューティングデバイス166-1~166-2のみが存在する)からインタラクション情報62を受信する。ネットワークコンピューティングデバイス46のマルチパートコード生成モジュール56は、インタラクション情報62を表すコード70を生成する。
関与するソースコンピューティングデバイスの数、及びインタラクション情報62の条件に基づいて、マルチパートコード生成モジュール56は、各デバイスが、完全なコード70を作成するために一緒に適合する固有のピースを有するように、コード70を分割する。ネットワークコンピューティングデバイス46は、コードの宛先部分170を宛先コンピューティングデバイス164に送信し、コードのソース部分168-1~168-2を対応するソースコンピューティングデバイス166-1~166-2に送信する。
図24Bは、図24Aの例の続きであり、ここでソースコンピューティングデバイス166-1~166-2は、位置合わせ機能を実施して、コードのソース部分168-1~168-2をコードの宛先部分170と位置合わせさせて、部分コード182-1~182-2を作成する。ネットワークアプリケーション54の画像処理技術は、部分コード182-1~182-2を捕捉し、部分コード情報をネットワークコンピューティングデバイス46に送信する。ネットワークコンピューティングデバイス46のインタラクション完成モジュール58は、受信された部分コード182-1~182-2を分析して、完全コード70が部分コードによって形成されるかどうかを判定する。完全なコードが形成されると、インタラクションは完了する。
図24Cは、図24Aの例の続きであり、ここでソースコンピューティングデバイス166-2は、ソースコンピューティングデバイス166-2のコードのソース部分168-2を(例えば、電子メール、Bluetooth、テキストメッセージ、ソースコンピューティングデバイス166-1による光学スキャンなどを介して)、ソースコンピューティングデバイス166-1に送信する。ソースコンピューティングデバイス166-1は、位置合わせ機能を実施して、コードのソース部分168-1~168-2をコードの宛先部分170と位置合わせさせる。ソースコンピューティングデバイス166-1のネットワークアプリケーション54は、作成された完全なコードを捕捉して、インタラクションを完了する。
図24Dは、図24Aの例の続きであり、ここでソースコンピューティングデバイス166-1及び166-2は、図16~18の例と同様の移動して位置合わせする機能を実施する。宛先コンピューティングデバイス164の前面光学スキャナ90は、ソースコンピューティングデバイス166-1~166-2のビューファインダー/表示領域から、コードのソース部分168-1~168-2をスキャンする(例えば、ソースコンピューティングデバイスと宛先コンピューティングデバイスとは、表示部同士が向かい合わせになるように置かれる)。
ソースコンピューティングデバイス166-1~166-2のユーザは、ソースコンピューティングデバイス166-1~166-2を移動させて、コードのソース部分168-1~168-2を、宛先コンピューティングデバイス164のビューファインダー/表示領域84のコードの宛先部分170と位置合わせさせる。宛先コンピューティングデバイス164のネットワークアプリケーション54は、作成された完全なコードを捕捉してインタラクションを完了する。
図24Eは、ネットワークコンピューティングデバイス46のマルチパートコード生成モジュール56が、一意の形状を有しないコードのソース部分168-1~168-nを生成する例である。例えば、マルチパートコード生成モジュール56は、まず、宛先コンピューティングデバイスから受信したインタラクション情報に基づいて、コードの宛先部分170を生成する。この時点で、マルチパートコード生成モジュール56は、インタラクションに関与するソースコンピューティングデバイスの数を知らない。マルチパートコード生成モジュール56は、コードのソース部分の数とは無関係の特定の形状を有する、コードの宛先部分170を生成する。
ソースコンピューティングデバイスがコードの宛先部分170を取得すると、ソースコンピューティングデバイスは、ネットワークコンピューティングデバイス46に更なるインタラクション情報を送信する。更なるインタラクション情報とコードの宛先部分170とに基づいて、マルチパートコード生成モジュール56は、(例えば、コードの宛先部分170の形状と位置合わせするために)コードのソース部分168-1~168-nを生成する。
図25A~25Eは、ソースコンピューティングデバイス166-1及び166-2並びに宛先コンピューティングデバイス164を含む、マルチソースマルチパートコードシステムの一実施形態の概略ブロック図である。図25A~25Cは、ソースコンピューティングデバイス166-1~166-2が支払人であり、宛先コンピューティングデバイス164が受取人である、割り勘インタラクションの一例を明示する。例えば、ソースコンピューティングデバイス166-1~166-2は、レストランの利用者によって使用されるスマートフォンであり、宛先コンピューティングデバイスは、レストラン従業員によって請求を生成し精算するために使用されるポイントオブセールコンピューティングデバイス(例えば、レジスタ、タブレットなど)である。別の例として、ソースコンピューティングデバイス166-1~166-2は、小売店の消費者によって使用されるスマートフォンであり、宛先コンピューティングデバイスは、チェックアウトを完了するために使用される、ポイントオブセールコンピューティングデバイス(例えば、レジスタ、タブレット、eコマースプラットフォームなど)である。
図25Aにおいて、ネットワークコンピューティングデバイス46は、宛先コンピューティングデバイス164から受信したインタラクション情報(例えば、マーチャント識別子(ID)、所望の支払い方法、未払い額、購入した商品、割引など)に基づいてコードの宛先部分170を生成し、それを宛先コンピューティングデバイス164のネットワークアプリケーション54を介して宛先コンピューティングデバイス164に送信する。宛先コンピューティングデバイス164は、コードの宛先部分170を、(例えば、光学スキャンを介して取得するために)ソースコンピューティングデバイス166-1~166-2に表示する。
例えば、宛先コンピューティングデバイス164は、コードの宛先部分170を、宛先コンピューティングデバイス164のビューファインダー/表示領域84に表示する。別の例として、宛先コンピューティングデバイス164は、コードの宛先部分170を、スキャン可能な表面(例えば、紙の領収書)に印刷する。別の例では、宛先コンピューティングデバイス164は、コードの宛先部分170を、ネットワーク接続のようなインターフェース手段を介して(例えば、電子メール、テキストメッセージなどを介して)、ソースコンピューティングデバイス166-1~166-2に配信する。
この例では、第1のソースコンピューティングデバイス166-1が、コードの宛先部分170を、(例えば、スマートフォンカメラアプリケーションなどの前面又は背面光学スキャナを介して)(例えば、宛先コンピューティングデバイス164のビューファインダー/表示領域84から直接、領収書からなど)スキャンし、これにより第1のソースコンピューティングデバイス166-1のビューファインダー/表示領域84にコードの宛先部分170を表示する。
第1のソースコンピューティングデバイス166-1は、ネットワークアプリケーション54の割り勘アプリケーションを有効化する。有効化されると、ネットワークアプリケーション54は、他のデバイスがコードの宛先部分170をスキャンするか又は別様に受信するのを待機する。
図25Bにおいて、ソースコンピューティングデバイス166-2は、コードの宛先部分170を、(例えば、スマートフォンカメラアプリケーションなどの前面又は背面光学スキャナを介して)(例えば、宛先コンピューティングデバイス164のビューファインダー/表示領域84から直接、領収書からなど)スキャンし、ソースコンピューティングデバイス166-2のビューファインダー/表示領域84にコードの宛先部分170を表示する。ソースコンピューティングデバイス166-2は、ネットワークアプリケーション54の割り勘アプリケーションを有効化する。有効化されると、ネットワークアプリケーション54は、割り勘アプリケーションに対する2つのデバイスが検出されたというメッセージを生成し、割り勘を進めるかどうかを尋ねる。
ネットワークアプリケーション54は、どのデバイスがコードの宛先部分170をアップロードしたかに基づいて、割り勘アプリケーションに対するデバイスを検出するように動作可能である。この例では、ソースコンピューティングデバイス166-1及びソースコンピューティングデバイス166-2の両方が、2つのデバイス間で割り勘をするオプションを選択する。代替的に、ソースコンピューティングデバイス166-1及びソースコンピューティングデバイス166-2は、追加のデバイスが検出されるのを待機する。一定時間後に他のデバイスが検出されない場合、割り勘アプリケーションを使用できないこと、又は特定の時間後に再試行することを示すエラーメッセージが送信される。
図25Cは、ソースコンピューティングデバイス166-2がコードの宛先部分170を受信している代替例を示す。この例では、ソースコンピューティングデバイス166-1が、接続(例えば、Bluetoothリンク、電子メール、SMSテキストメッセージなど)を介して、ソースコンピューティングデバイス166-2にコードの宛先部分170を送信する。ソースコンピューティングデバイス166-2は、コードの宛先部分170を、ソースコンピューティングデバイス166-2のビューファインダー/表示領域84に表示する(例えば、ソースコンピューティングデバイス166-2は、スクリーンショットで撮る、及び/又はネットワークアプリケーション54にアップロードするために、コードの宛先部分170を保存する)。
ソースコンピューティングデバイス166-2は、ネットワークアプリケーション54の割り勘アプリケーションを有効化する。有効化されると、ネットワークアプリケーション54は、割り勘アプリケーションに対する2つのデバイスが検出されたというメッセージを生成し、割り勘を進めるかどうかを尋ねる。この例では、第1のソースコンピューティングデバイス166-1及び第2のソースコンピューティングデバイス166-2の両方が、2つのデバイス間で割り勘をするオプションを選択する。代替的に、第1のソースコンピューティングデバイス166-1及び第2のソースコンピューティングデバイス166-2は、追加のデバイスが検出されるのを待機する。
図25Dにおいて、ネットワークコンピューティングデバイスは、インタラクション情報に基づいてコードの第1のソース部分168-1を生成し、コードの宛先部分170に基づいて、宛先コンピューティングデバイス164への支払いを、第2のソースコンピューティングデバイス166-2と均等に分ける。ネットワークコンピューティングデバイスは、インタラクション情報に基づいてコードの第2のソース部分168-2を生成し、コードの宛先部分170に基づいて、宛先コンピューティングデバイス164への支払いを、第1のソースコンピューティングデバイス166-1と均等に分ける。ネットワークコンピューティングデバイスは、コードの第1のソース部分168-1を第1のソースコンピューティングデバイス166-1に送信し、コードの第2のソース部分168-2を第2のソースコンピューティングデバイス166-2に送信する。
第1及び第2のソースコンピューティングデバイスのユーザは、インタラクションを完了するために、位置合わせ機能を完了して、コードの第1及び第2のソース部分168-1~168-2をコードの宛先部分170と位置合わせさせる。例えば、ここにはドラッグアンドドロップ機能が示されているが、ソースコンピューティングデバイス及び宛先コンピューティングデバイスが互いに物理的に近くにあるときには、移動して位置合わせする機能もまた可能である。
図25Eは、図25Dの例の続きであり、ここでソースコンピューティングデバイス166-1~166-2のユーザは、それぞれコードのソース部分168-1~168-2をコードの宛先部分170と位置合わせさせるための位置合わせ機能を完了して、インタラクションを完了する。これらの部分が位置合わせされると、完全なコードが光学的に作成され、ネットワークアプリケーション54の画像処理回路によって捕捉される。ネットワークアプリケーション54は、インタラクション60を完成させるために、ネットワークコンピューティングデバイス46のインタラクション完成モジュール58と通信する。
例えば、ソースコンピューティングデバイス166-1のネットワークアプリケーション54は、捕捉されたコードに関して、ネットワークコンピューティングデバイス46のインタラクション完成モジュール58と通信する。例えば、捕捉され、デコードされたコードは、ソースコンピューティングデバイス166-1に関連付けられたアカウントから宛先コンピューティングデバイス164に関連付けられたアカウントにある金額を送金するようにインタラクション完成モジュール58に指示する情報を包含する。捕捉され、デコードされたコードはまた、割り勘アプリケーションに関する情報(例えば、ソースデバイスの総数、割り勘の条件、合計未払い額など)を含む。
インタラクションが完了すると、ユーザに、インタラクションが完了した(例えば、合計請求額が支払われた)ことが通知される。通知には、終了又は修正するためのオプションも含まれ得る。例えば、ソースコンピューティングデバイス166-1のユーザが、合計請求額が支払われたことを通知され、ユーザは追加のチップを追加することを望んでいる。ソースコンピューティングデバイス166-1のユーザは、修正オプションを押して、チップを追加することを要求するであろう。ネットワークコンピューティングデバイスは、修正要求のための、コードの新しいソース部分を生成する。修正要求によって、支払った額が未払い額を下回った場合、ソースデバイス及び宛先デバイスのうちの1つ以上にエラー通知が送信され、要求は拒否される。
図26A~26Dは、マルチソースマルチパートコードシステムの割り勘オプションの一例の概略ブロック図である。図26A~26Dは、ソースコンピューティングデバイス166-1~166-3を含む。図26Aにおいて、ソースコンピューティングデバイス166-1~166-3は、(例えば、図25Aの例と同様に)コードの宛先部分170をスキャンした(又は別様にネットワークアプリケーション54にアップロードした)。
ネットワークアプリケーション54は、3つのソースコンピューティングデバイスがコードの宛先部分170をアップロードしたことを認識し、ソースコンピューティングデバイス166-1~166-3に、異なる割り勘オプションを表示する能力を提示する。この例では、ソースコンピューティングデバイス166-1~166-3のユーザは、割り勘オプションが表示されるように選択する。別の実施形態では、割り勘機能に関与するソースコンピューティングデバイス166-1~166-3によってコードの宛先部分170をアップロードすることにより、ユーザが合意した設定又はデフォルト設定(例えば、均等に分けるデフォルト設定)に基づいて、コードのソース部分が自動で生成される。
図26Bは、図26Aの例の続きであり、ソースコンピューティングデバイス166-1~166-3のコード表示領域86に表示される割り勘オプションの一例を示す。この例では、オプションには以下が含まれる:(例えば、検出されたソースデバイスの総数に基づいて)均等に割り勘すること、20%のチップ(又は当事者によって設定若しくはデフォルト設定された他のチップ金額)を均等に分けること、カスタム額を入力すること、カスタムチップを入力すること。割り勘オプションには、確認ボタンが含まれる。
図26Cは、図26Bの例の続きであり、ソースコンピューティングデバイス166-1~166-3が、均等に割り勘するオプションと20%チップを均等に分けるオプションとを選択した例を示す。第1、第2、及び第3のソースコンピューティングデバイス166-1~166-3は次いで、選択を確認する。図26Dは、図26Cの例の続きであり、ここでネットワークコンピューティングデバイスは、選択された割り勘オプション(例えば、均等に割り勘する、かつ均等にチップを分ける)及びコードの宛先部分170に基づいて、コードのソース部分168-1~168-3を生成する。ネットワークコンピューティングデバイスは、コードのソース部分168-1~168-3を、それぞれのソースコンピューティングデバイス166-1~166-3に送信する。
ユーザソースコンピューティングデバイス166-1~166-3のユーザは、位置合わせ機能を完了して、コードのソース部分168-1~168-3をコードの宛先部分170と位置合わせさせる。例えば、ソースコンピューティングデバイス166-1~166-3のユーザは、それぞれのビューファインダー/表示領域84にコードのソース部分168-1~168-3をドラッグアンドドロップして、コードの宛先部分170と位置合わせさせる。インタラクションは、ソースコンピューティングデバイス166-1~166-3のネットワークアプリケーション54の全てが光学的に作成されたコードを捕捉し、ネットワークコンピューティングデバイスと通信すると完了する。
図27A~27Bは、マルチソースマルチパートコードシステムの割り勘オプションの一例の概略ブロック図である。図27A~27Bは、ソースコンピューティングデバイス166-1~166-3を含む。ソースコンピューティングデバイス166-1~166-3のユーザが割り勘オプションを表示させる選択をする図26Aの例を続けると、別の実施形態では、ネットワークコンピューティングデバイスは、異なる割り勘オプションを表すコードのソース部分を生成し、コードのソース部分オプションをソースコンピューティングデバイスに送信する。
例えば、ソースコンピューティングデバイス166-1~166-3と宛先コンピューティングデバイス164との間のインタラクションは、3つの商品(例えば、レストランメニューからの3つのアントレ)に対する支払いである。ネットワークコンピューティングデバイスは、異なる商品の支払いを表すためにコードのソース部分を生成し、コードのソース部分のオプションをソースコンピューティングデバイスに送信する。
この例では、ソースコンピューティングデバイス166-1のユーザは、コードのソース部分168-1「商品1の支払い」をコードの宛先部分170に位置合わせさせるために、位置合わせ機能を実施する。ソースコンピューティングデバイス166-2のユーザは、コードのソース部分168-2「商品2の支払い」をコードの宛先部分170に位置合わせさせるために、位置合わせ機能を実施する。ソースコンピューティングデバイス166-3のユーザは、コードのソース部分168-3「商品3の支払い」をコードの宛先部分170に位置合わせさせるために、位置合わせ機能を実施する。割り勘オプションセクションは、確認ボタン及び他の割り勘選択オプションを更に含んでもよい。
位置合わせ機能により、(例えば、図21A~21Bで考察された例のように)インタラクションを終了してもよく、又は(例えば、図19A~19Cで考察された例のように)コードのソース部分の全ての所望のオプションが位置合わせされたときに確認するために、確認が必要とされてもよい。
この例では、インタラクションを終了するには確認が必要である。支払うべきメニュー商品を示すコードのソース部分を位置合わせさせた後、ソースコンピューティングデバイス166-1~166-3のユーザは、チップを追加するためのオプションを選択する。別の実施形態では、ソースコンピューティングデバイス166-1~166-3のユーザが、支払うべきメニュー商品を示すコードのそれぞれのソース部分を位置合わせさせると、ネットワークアプリケーションは、選択された個々の商品の価格に基づいて、追加のチップを表すコードのソース部分を自動で表示する。別の例として、コードのソース部分は、既にチップを含んでもよい。
図27Bにおいて、ソースコンピューティングデバイス166-1~166-3のユーザがチップを追加するオプションを選択すると、ネットワークコンピューティングデバイスは、異なる商品の価格に基づいてチップの支払いを表すコードのソース部分を生成し、コードのソース部分オプションをソースコンピューティングデバイスに送信する。
この例では、ソースコンピューティングデバイス166-1のユーザは、コードのソース部分168-1「商品1のチップ支払い」をコードの宛先部分170に位置合わせさせるために、位置合わせ機能を実施する。ソースコンピューティングデバイス166-2のユーザは、コードのソース部分168-2「商品2のチップ支払い」をコードの宛先部分170に位置合わせさせるために、位置合わせ機能を実施する。ソースコンピューティングデバイス166-3のユーザは、コードのソース部分168-3「商品3のチップ支払い」をコードの宛先部分170に位置合わせさせるために、位置合わせ機能を実施する。
位置合わせ機能により、(例えば、図21A~21Bで考察された例のように)インタラクションを終了してもよく、又は(例えば、図19A~19Cで考察された例のように)コードのソース部分の全ての所望のオプションが位置合わせされたときに確認するために、確認が必要とされてもよい。ここに示されるように、ソースコンピューティングデバイス166-1~166-3のユーザは、インタラクションを終了するために、全ての部分が位置合わせされたことを確認するオプションを選択する。
図28A~28Bは、マルチソースマルチパートコードシステムの割り勘エラーの例の概略ブロック図である。図28Aは、図26A~26Cに記載の例の続きであるが、ソースコンピューティングデバイス166-1~166-2のみが、均等に割り勘するオプションと、20%チップを均等に分けるオプションとを選択したことを除く。ソースコンピューティングデバイス166-3のユーザは、特定の期間内に任意のオプションを選択していない。図28Bは、図26A~26Cに記載される例の続きであるが、ソースコンピューティングデバイス166-1~166-2が、均等に割り勘するオプションと、20%チップを均等に分けるオプションとを選択し、ソースコンピューティングデバイス166-3が、カスタム金額及びカスタムチップを入力する選択をしたことを除く。この例では、入力されたカスタム金額及びカスタムチップが、他のソースコンピューティングデバイスと均等に割り勘しチップを均等に分ける金額未満である。
図29A~29Cは、マルチソースマルチパートコードシステムのエラー解決策の例の概略ブロック図である。図29Aにおいて、(例えば、図28A及び/又は28Bのエラーのような)エラーが検出されると、インタラクションを終了させるための位置合わせ機能及び確認の試みは、ネットワークコンピューティングデバイスによって受け入れられない。最低限の支払い額が満たされていないことを示すエラーメッセージが、ソースコンピューティングデバイス166-1~166-3に送信される。
ネットワークコンピューティングデバイスは、未払い額を表すコードの新しいソース部分を生成し、ソースコンピューティングデバイスのいずれかがエラーを解決できるように、コードのソース部分をソースコンピューティングデバイス166-1~166-3に送信する。
図29Bにおいて、(例えば、図28A及び/又は28Bのエラーのような)エラーが検出されると、インタラクションを終了させるための位置合わせ機能及び確認の試みは、ネットワークコンピューティングデバイスによって受け入れられない。最低支払い額が満たされていないことを示すエラーメッセージが、ソースコンピューティングデバイス166-1~166-3に送信される。取引をキャンセルするオプションが表示される。例えば、ソースコンピューティングデバイスが正しい金額の支払いを拒否する場合、ソースコンピューティングデバイス166-1、ソースコンピューティングデバイス166-2、ソースコンピューティングデバイス166-3、及び宛先コンピューティングデバイス164のうちの1つ以上は、取引をキャンセルすることを選択することができる。
図29Cにおいて、ネットワークコンピューティングデバイスは通知を受信し、これは、全ての部分が位置合わせされたことと、作成されたコードが、最低支払い額は満たされたが慣習的なチップの金額が安すぎる又は高すぎることを示していることとの通知である。例えば、地理的地域が異なれば、チップの慣習も異なる。海外旅行者は、支払っているチップが慣習よりも多いか又は少ないことに気付かない場合がある。別の例として、特定のサービスではチップを支払うのが慣習だが、チップは常に選択的である。サービスのレベルによっては、慣習的な金額外のチップを定める場合がある。別の例として、ソースコンピューティングデバイス166-1~166-3のうちの1つのユーザが、チップを含むことを忘れた、又は計算エラーをした可能性がある。
ネットワークコンピューティングデバイスが、関与する現在の地理的地域及びサービスに基づいて、チップの金額が安すぎる又は高すぎることを検出すると、ソースコンピューティングデバイス166-1~166-3に、チップの金額が慣習の範囲外であることが通知される。通知は、チップがどのくらいの金額、慣習の範囲外であるかの表示を含み得る。ソースコンピューティングデバイス166-1~166-3のユーザには、チップの金額を確認又は調整するオプションが提示される。
チップの金額を調整するために、ネットワークコンピューティングデバイスは、コードの宛先部分と位置合わせされたときにチップを調整するであろうコードの推奨ソース部分を提示し得る。コードの推奨ソース部分には、チップを調整するために必要な全額、又はソースコンピューティングデバイス間で分けられる金額が含まれ得る。
図30は、マルチソースマルチパートコードのネットワークコンピューティングデバイスによる実行のための方法の一例のフローチャートである。方法はステップ172から始まり、ここでネットワークコンピューティングデバイスは、次のうちの1つ以上からインタラクション情報を受信する:マルチソースマルチパートコードシステムの、2つ以上のソースコンピューティングデバイスのうちの1つのソースコンピューティングデバイス、及びマルチソースマルチパートコードシステムの宛先コンピューティングデバイス。2つ以上のソースコンピューティングデバイスのうちの1つのソースコンピューティングデバイスと、宛先コンピューティングデバイスと、のうちの1つ以上はネットワークアプリケーションを含み、ネットワークアプリケーションは、2つ以上のソースコンピューティングデバイスのうちのこのソースコンピューティングデバイス及び宛先コンピューティングデバイスを、ネットワークコンピューティングデバイスと関連付ける。インタラクションは、インターフェース手段を介して発生する。
インタラクションは、データの交換である。例えば、インタラクションは、2つ以上のソースコンピューティングデバイスと宛先コンピューティングデバイスとの間の支払い取引である。別の例として、インタラクションは、2つ以上のソースコンピューティングデバイスと宛先コンピューティングデバイスとの間の契約である。別の例として、インタラクションは、2つ以上のソースコンピューティングデバイスと宛先コンピューティングデバイスとの間の機密情報の共有である。
インターフェース手段には、第1のコンピューティングデバイス又は第2のコンピューティングデバイスのうちの1つ以上の、光学スキャニングアプリケーション、直接リンク(例えば、近距離通信(NFC))、及びネットワーク接続、のうちの1つ以上が含まれる。ネットワーク接続には、パブリックネットワーク及び/又はプライベートネットワークであり得る、1つ以上のローカルエリアネットワーク(LAN)及び/又は1つ以上のワイドエリアネットワーク(WAN)が含まれる。LANは、無線LAN(例えば、Wi-Fiアクセスポイント、Bluetooth、ZigBeeなど)及び/又は有線LAN(例えば、ファイアワイヤ、イーサネットなど)であり得る。WANは、有線及び/又は無線WANであり得る。例えば、LANは、個人のホーム無線ネットワーク又は企業の無線ネットワークであり、WANは、インターネット、携帯電話インフラストラクチャ、及び/又は衛星通信インフラストラクチャである。
方法はステップ174に続き、ここでネットワークコンピューティングデバイスのマルチパートコード生成モジュールは、コードの宛先部分及び2つ以上のソース部分が個々では使用できないように、インタラクション情報を表すコードの宛先部分と、インタラクション情報を表すコードの2つ以上のソース部分とを生成する。使用できないとは、その部分を光学読み取り機/スキャナによって光学的に読み取ることができない、又は光学読み取り機から取得された情報が不完全であるか若しくは実際のデータにならないことを意味する。コードの2つ以上のソース部分の生成は、2つ以上のソースコンピューティングデバイスの、コードの宛先部分及び/又はソースコードオプション選択(例えば、割り勘オプションなど)に基づき得る。マルチソースに対するマルチパートコード生成の異なる例は、図24A~24Eを参照してより詳細に考察されている。
方法はステップ176に続き、ここでネットワークコンピューティングデバイスは、コードの宛先部分を宛先コンピューティングデバイスに送信し、コードの2つ以上のソース部分を対応する2つ以上のソースコンピューティングデバイスに送信する。代替的に、ネットワークコンピューティングデバイスは、コードの宛先部分を宛先コンピューティングデバイスに送信し、ソースコンピューティングデバイスの、コードの宛先部分とのインタラクションに基づいてコードの2つ以上のソース部分を生成し、次いで、コードの2つ以上のソース部分を対応する2つ以上のソースコンピューティングデバイスに送信する。
コードの2つ以上のソース部分は、インタラクションを完了する意図を示す完全なコードが作成されるように、位置合わせ機能(例えば、ドラッグアンドドロップ、移動して位置合わせなど)を介して、コードの宛先部分と位置合わせされなければならない。コードの2つ以上のソース部分がコードの宛先部分と位置合わせされて、ステップ178において完全かつ正確なコードが作成されると、ネットワークコンピューティングデバイスのインタラクション完成モジュールは、ステップ180においてインタラクションを完成させる。例えば、インタラクション完成モジュールは、インタラクションが、2つ以上のソースコンピューティングデバイスから2つ以上のソースコンピューティングデバイスへの支払いであるときに、2つ以上のソースコンピューティングデバイスと関連付けられたアカウントから宛先コンピューティングデバイスと関連付けられたアカウントに、ある金額を送金する。
ステップ178において、コードの2つ以上のソース部分が、完全なコードを作成するコードの宛先部分と位置合わせされていない場合(例えば、コードの全てのソース部分が位置合わせされているわけではない場合)、及び/又はコードの2つ以上のソース部分が、不正確なコードを作成するコードの宛先部分と位置合わせされている場合(例えば、作成されたコードがインタラクション情報を表さない、ユーザエラーが発生したなどの場合)、ネットワークコンピューティングデバイスは、ステップ182において1つ以上の解決策を実行する。
例えば、ネットワークコンピューティングデバイスは、コードの新しいソース部分を生成し、2つ以上のソースコンピューティングデバイスのうちの少なくとも1つに配信するか、又はネットワークコンピューティングデバイスは、コードの全ての新しい部分を生成し、2つ以上のソースコンピューティングデバイス及び宛先コンピューティングデバイスに配信する。別の例として、ネットワークコンピューティングデバイスは、2つ以上のソースコンピューティングデバイスと宛先コンピューティングデバイスとのうちの1つ以上に、位置合わせに関して通知する(例えば、位置合わせを再試行する通知が送信される、エラーを修正するための通知、新しいコードを再生成するかどうかに関するクエリなど)。
本明細書でも使用され得る場合、用語「に構成される」、「に動作可能に結合される」、「に結合される」、及び/又は「結合する」は、介在アイテム(例えば、アイテムは、以下に限定されないが、構成要素、要素、回路、及び/又はモジュールを含む)を介してアイテム間の直接結合及び/又はアイテム間の間接結合を含み、間接結合の例では、介在アイテムは、信号の情報を修正しないが、その電流レベル、電圧レベル、及び/又は電力レベルを調整し得る。本明細書で更に使用され得る場合、推論結合(すなわち、1つの要素が推論によって別の要素に結合される場合)は、「に結合された」と同じ方式での、2つのアイテム間の直接的及び間接的な結合を含む。
本明細書で更に使用され得る場合、用語「に構成される」、「に動作可能である」、「に結合されている」、又は「に動作可能に結合されている」は、アイテムが、アクティブにされたときに、1つ以上の対応する機能を実行するための電源接続、入力、出力などのうちの1つ以上を含み、1つ以上の他のアイテムへの推論連結を更に含み得ることを示す。本明細書でなお更に使用され得る場合、用語「と関連付けられた」は、別個のアイテムの直接及び/又は間接結合、及び/又は1つのアイテムが別のアイテム内に埋め込まれていることを含む。
本明細書で使用され得る場合、用語「好都合に比較する」は、2つ以上のアイテム、信号などの間の比較が、所望の関係を提供することを示す。例えば、所望の関係が、信号1が信号2よりも大きい大きさを有することである場合、信号1の大きさが、信号2の大きさよりも大きいとき、又は信号2の大きさが、信号1の大きさ未満であるときに、好都合な比較が、達成され得る。本明細書で使用され得る場合、用語「不利に比較する」は、2つ以上のアイテム、信号などの間の比較が、所望の関係を提供できないことを示す。
本明細書で使用され得る場合、1つ以上の特許請求項は、「a」、「b」、及び「c」よりも多いか、又は少ない要素に関して、この一般的な形式の特定の形式の「a、b、及びcのうちの少なくとも1つ」というフレーズ、又はこの一般的な形態の特定の形式の「a、b、又はcのうちの少なくとも1つ」を含む場合がある。いずれのフレージングにおいても、フレーズは、同一に解釈されるべきである。特に、「a、b、及びcのうちの少なくとも1つ」は、「a、b、又はcのうちの少なくとも1つ」に等しく、a、b、及び/又はcを意味するものとする。一例として、それは、「a」のみ、「b」のみ、「c」のみ、「a」及び「b」、「a」及び「c」、「b」及び「c」、並びに/又は「a」、「b」、及び「c」を意味する。
本明細書で使用され得る場合、「処理モジュール」、「処理回路(processing circuit)」、「プロセッサ」、「処理回路(processing circuitry)」、及び/又は「処理ユニット」という用語は、単一の処理デバイス又は複数の処理デバイスであり得る。そのような処理デバイスは、マイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ、マイクロコンピュータ、中央処理装置、フィールドプログラマブルゲートアレイ、プログラマブルロジックデバイス、ステートマシン、論理回路、アナログ回路、デジタル回路、及び/又は回路のハードコーディング及び/又は動作命令に基づいて信号(アナログ及び/又はデジタル)を操作する任意のデバイスであり得る。処理モジュール、モジュール、処理回路(processing circuit)、処理回路(processing circuitry)、及び/若しくは処理ユニットは、単一のメモリデバイス、複数のメモリデバイス、及び/又は別の処理モジュール、モジュール、処理回路(processing circuit)、処理回路(processing circuitry)、及び/若しくは処理ユニットの埋め込み回路であり得るメモリ及び/若しくは統合メモリ素子であり得るか、又はそれを更に含み得る。そのようなメモリデバイスは、読み出し専用メモリ、ランダムアクセスメモリ、揮発性メモリ、不揮発性メモリ、スタティックメモリ、ダイナミックメモリ、フラッシュメモリ、キャッシュメモリ、及び/又はデジタル情報を記憶する任意のデバイスであり得る。処理モジュール、モジュール、処理回路(processing circuit)、処理回路(processing circuitry)、及び/又は処理ユニットが、2つ以上の処理デバイスを含む場合、処理デバイスは、中央に位置し得るか(例えば、有線及び/若しくは無線バス構造を介して一緒に直接結合され得る)、又は分散されて位置し得る(例えば、ローカルエリアネットワーク及び/若しくはワイドエリアネットワークを介する間接結合を介したクラウドコンピューティング)ことに留意されたい。更に、処理モジュール、モジュール、処理回路(processing circuit)、処理回路(processing circuitry)、及び/又は処理ユニットが、ステートマシン、アナログ回路、デジタル回路、及び/又は論理回路を介してその機能のうちの1つ以上を実装する場合、対応する動作命令を記憶するメモリ及び/又はメモリ素子は、ステートマシン、アナログ回路、デジタル回路、及び/又は論理回路を含む回路の中に埋め込まれるか、又はその外部にあることに留意されたい。なお更に、メモリ素子は、図のうちの1つ以上に示されているステップ及び/若しくは機能のうちの少なくともいくつかに対応するハードコードされた命令及び/若しくは動作命令を記憶し得、処理モジュール、モジュール、処理回路(processing circuit)、処理回路(processing circuitry)、及び/又は処理ユニットはそれらを実行することに留意されたい。そのようなメモリデバイス又はメモリ素子は、製造品に含まれ得る。
1つ以上の実施形態が、指定された機能及びそれらの関係性の実行を例示する方法ステップの助けを借りて、上記で説明されている。これらの機能的ビルディングブロック及び方法ステップの境界及び順序は、説明の便宜のために、本明細書で任意に定義されている。指定された機能及び関係性が適切に実行される限り、代替の境界及び順序が、定義され得る。したがって、任意のそのような代替の境界又は順序は、特許請求の範囲の範囲及び趣旨内である。更に、これらの機能的ビルディングブロックの境界は、説明の便宜のために、任意に定義されている。特定の有意な機能が適切に実行される限り、代替の境界が、定義され得る。同様に、フローダイヤグラムブロックも、特定の有意な機能を例示するために、本明細書において任意に定義されている可能性がある。
使用される範囲で、フローダイヤグラムブロックの境界及び順序は、別様に定義されている可能性があるが、依然として特定の重要な機能を実行し得る。したがって、機能的ビルディングブロック及びフローダイヤグラムブロックの両方のそのような代替定義並びに順序は、特許請求の範囲の範囲及び趣旨内である。当業者はまた、機能的ビルディングブロック、及び本明細書における他の例示的なブロック、モジュール、及び構成要素が、図示されたように、又は別個の構成要素、特定用途向け集積回路、適切なソフトウェアを実行するプロセッサなど、若しくはそれらの任意の組み合わせによって、実装され得ることを認識するであろう。
加えて、フローダイヤグラムは、「開始」及び/又は「続く」の表示を含み得る。「開始」及び「続く」の表示は、提示されたステップが、任意選択で、1つ以上の他のルーチンに組み込まれるか、又はさもなければそれらとともに使用され得ることを反映する。更に、フローダイヤグラムは、「終了」及び/又は「続く」の表示を含み得る。「終了」及び/又は「続く」の表示は、提示されたステップが、記載され、示されているように終了するか、又は任意選択で、1つ以上の他のルーチンに組み込まれるか、さもさければそれらとともに使用され得ることを反映する。この文脈で、「開始」は、提示された最初のステップの始まりを示し、具体的に示されていない他の活動にとって先行され得る。更に、「続く」の表示は、提示されたステップが、複数回実行され得、及び/又は具体的に示されていない他の活動によって継承され得ることを反映する。更に、フローダイヤグラムは、ステップの特定の順序を示すが、因果関係の原理が維持されているという条件で、他の順序も同様に可能である。
1つ以上の実施形態が、1つ以上の態様、1つ以上の特徴、1つ以上の概念、及び/又は1つ以上の例を示すために、本明細書で使用される。装置、製造品、機械、及び/又はプロセスの物理的な実施形態は、本明細書で考察される実施形態の1つ以上を参照して説明される態様、特徴、概念、例などのうちの1つ以上を含み得る。更に、図ごとに、実施形態は、同じか又は異なる参照番号を使用し得る、同じか又は類似して命名された機能、ステップ、モジュールなどを組み込み得、したがって、機能、ステップ、モジュールなどは、同じか又は類似した機能、ステップ、モジュールなどであり得るか、又は異なる機能、ステップ、モジュールなどであり得る。
上述の図におけるトランジスタは、フィールドエフェクトトランジスタ(FET)として示されているが、当業者であれば理解するであろうように、トランジスタは、以下に限定されないが、バイポーラ、金属酸化物半導体フィールドエフェクトトランジスタ(MOSFET)、Nウェルトランジスタ、Pウェルトランジスタ、エンハンスメントモード、枯渇モード、及びゼロ電圧閾値(VT)トランジスタを含む任意のタイプのトランジスタ構造を使用して実装され得る。
反対に明記されていない限り、本明細書に提示される図のうちのいずれかの図の要素への信号、要素からの信号、及び/又は要素間の信号は、アナログ若しくはデジタル、連続時間若しくは離散時間、及びシングルエンド若しくは差動であり得る。例えば、信号経路がシングルエンド経路として示される場合、その信号経路は、差動信号経路も表す。同様に、信号経路が差動経路として示される場合、その信号経路は、シングルエンド信号経路も表す。1つ以上の特定のアーキテクチャが本明細書で説明されるが、明示的に示されていない1つ以上のデータバス、要素間の直接接続、及び/又は当業者によって認識されるような他の要素間の間接結合を使用する他のアーキテクチャも同様に実装され得る。
「モジュール」という用語が、実施形態のうちの1つ以上の説明で使用される。モジュールは、動作命令を記憶するメモリを含み得るか、又はメモリと関連付けて動作し得るプロセッサ又は他の処理デバイス若しくは他のハードウェアなどのデバイスを介して、1つ以上の機能を実装する。モジュールは、独立して、及び/又はソフトウェア及び/又はファームウェアと連携して動作し得る。本明細書でも使用される場合、モジュールは、1つ以上のサブモジュールを含み得、サブモジュールの各々は、1つ以上のモジュールであり得る。
本明細書で更に使用され得る場合、コンピュータ可読メモリは、1つ以上のメモリ素子を含む。メモリ素子は、別個のメモリデバイス、複数のメモリデバイス、又はメモリデバイス内のメモリ位置のセットであり得る。そのようなメモリデバイスは、読み出し専用メモリ、ランダムアクセスメモリ、揮発性メモリ、不揮発性メモリ、スタティックメモリ、ダイナミックメモリ、フラッシュメモリ、キャッシュメモリ、及び/又はデジタル情報を記憶する任意のデバイスであり得る。メモリデバイスは、形態において、ソリッドステートメモリ、ハードドライブメモリ、クラウドメモリ、サムドライブ、サーバメモリ、コンピューティングデバイスメモリ、及び/又はデジタル情報を記憶するための他の物理媒体の形態であり得る。
1つ以上の実施形態の様々な機能及び特徴の特定の組み合わせが、本明細書に明示的に記載されているが、これらの特徴及び機能の他の組み合わせも、同様に可能である。本開示は、本明細書に開示される特定の例に限定されず、これらの他の組み合わせを明示的に組み込む。