IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ブルーフィン ペイメント システムズ エルエルシーの特許一覧

特許7093531ウェブブラウザを介して決済端末を管理するシステム及び方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-22
(45)【発行日】2022-06-30
(54)【発明の名称】ウェブブラウザを介して決済端末を管理するシステム及び方法
(51)【国際特許分類】
   H04L 61/2503 20220101AFI20220623BHJP
【FI】
H04L61/2503
【請求項の数】 28
(21)【出願番号】P 2019566572
(86)(22)【出願日】2018-06-04
(65)【公表番号】
(43)【公表日】2020-07-30
(86)【国際出願番号】 US2018035858
(87)【国際公開番号】W WO2018223130
(87)【国際公開日】2018-12-06
【審査請求日】2021-05-26
(31)【優先権主張番号】62/514,308
(32)【優先日】2017-06-02
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】516282592
【氏名又は名称】ブルーフィン ペイメント システムズ エルエルシー
【氏名又は名称原語表記】BLUEFIN PAYMENT SYSTEMS,LLC
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】バーネット、ティモシー ウィリアム
(72)【発明者】
【氏名】マッカーシー、ドナル
【審査官】宮島 郁美
(56)【参考文献】
【文献】特表2016-510468(JP,A)
【文献】国際公開第2014/130222(WO,A1)
【文献】中国特許出願公開第105164708(CN,A)
【文献】特開2015-122671(JP,A)
【文献】特開2017-049819(JP,A)
【文献】特表2016-518653(JP,A)
【文献】金融分野におけるICカードの最新動向,月刊自動認識,第21巻 第14号,日本,2008年12月10日,53-59頁
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00-13/18,41/00-69/40
(57)【特許請求の範囲】
【請求項1】
決済端末とマーチャント・コンピューティングシステムとの間のセキュアな通信を可能にするTCP/IPアーキテクチャであって、
1つまたは複数のプロセッサを含むIPレジストリサービスであって、前記IPレジストリサービスは、ネットワークを介して決済端末及びマーチャント・ブラウザと動作可能に通信し、前記IPレジストリサービスは、
前記決済端末から、前記決済端末に関連付けられたIPアドレス、ポート、固有の識別子を受信すること、
前記マーチャント・ブラウザから、前記決済端末の固有の識別子を受信すること、
前記固有の識別子を受信したことに応答して、前記マーチャント・ブラウザがIPアドレスおよびポートを用いてTCP/IPプロトコルで前記決済端末と通信できるように、前記決済端末のIPアドレスおよびポートを前記マーチャント・ブラウザに送信すること、を実行する、前記IPレジストリサービスと、
DNS(domain name system)であって、
前記決済端末のIPアドレスおよびルートドメイン名を含むウェブアドレスのDNSルックアップ要求を前記マーチャント・ブラウザから受信すること、
前記ウェブアドレスのDNSルックアップ要求を受信したことに応答して、
前記ルートドメイン名を削除することによって、前記ウェブアドレスを前記決済端末のIPアドレスに変換すること、
前記マーチャント・ブラウザがHTTPSプロトコルを用いて前記決済端末と通信できるように、前記決済端末のIPアドレスを前記マーチャント・ブラウザに送信すること、を実行する前記DNSと、を備えるTCP/IPアーキテクチャ。
【請求項2】
前記DNSは、前記ルートドメイン名を除去し、前記IPアドレスを再フォーマットすることによって、前記ウェブアドレスを前記決済端末のIPアドレスに変換する、請求項1に記載のTCP/IPアーキテクチャ。
【請求項3】
前記DNSは、前記IPアドレスに小数点を挿入することによって、前記IPアドレスを再フォーマットする、請求項2に記載のTCP/IPアーキテクチャ。
【請求項4】
前記ウェブアドレスは、調整されたフォーマットのIPアドレスを含む、請求項3に記載のTCP/IPアーキテクチャ。
【請求項5】
前記IPアドレスの調整されたフォーマットは、任意の小数点のないIPアドレスを含む、請求項4に記載のTCP/IPアーキテクチャ。
【請求項6】
前記IPレジストリサービスは、前記決済端末のIPアドレスを前記ルートドメイン名と組み合わせることによって、前記ウェブアドレスを作成する、請求項5に記載のTCP/IPアーキテクチャ。
【請求項7】
前記マーチャント・ブラウザは、前記決済端末に関連付けられたセキュリティ証明書およびウェブアドレスの真正性の検証を認証局に要求する、請求項6に記載のTCP/IPアーキテクチャ。
【請求項8】
前記マーチャント・ブラウザは、前記セキュリティ証明書の真正性の検証を受信すると、HTTPSプロトコルを用いて前記決済端末と通信する、請求項7に記載のTCP/IPアーキテクチャ。
【請求項9】
前記IPレジストリサービスおよび前記DNSは、動作可能に接続されている、請求項8に記載のTCP/IPアーキテクチャ。
【請求項10】
決済処理システムをさらに備える請求項9に記載のTCP/IPアーキテクチャ。
【請求項11】
前記決済処理システムは、
暗号化された決済ペイロードを前記決済端末から受信すること、
前記暗号化された決済ペイロードが侵害されたかどうかを判定すること、
前記決済ペイロードが侵害されていないと判定すると、前記暗号化された決済ペイロードを復号化すること、を実行する、請求項10に記載のTCP/IPアーキテクチャ。
【請求項12】
コンピュータによって実行される方法であって、
IPレジストリサービスにおいて、決済端末から、前記決済端末に関連付けられたIPアドレス、ポート、固有の識別子を受信すること、
前記IPレジストリサービスにおいて、マーチャント・ブラウザから、前記決済端末に関連付けられた固有の識別子を受信すること、
前記固有の識別子を受信したことに応答して、前記マーチャント・ブラウザがIPアドレスおよびポートを用いてTCP/IPプロトコルで前記決済端末と通信できるように、前記決済端末のIPアドレスおよびポートを前記マーチャント・ブラウザに送信すること、
DNS(domain name system)において、前記決済端末のIPアドレスおよびルートドメイン名を含むウェブアドレスのDNSルックアップ要求を前記マーチャント・ブラウザから受信すること、
前記ウェブアドレスのDNSルックアップ要求を受信したことに応答して、
前記DNSにおいて、前記ルートドメイン名を削除することによって、前記ウェブアドレスを前記決済端末のIPアドレスに変換すること、
前記DNSが、前記マーチャント・ブラウザがHTTPSプロトコルを用いて前記決済端末と通信できるように、前記決済端末のIPアドレスを前記マーチャント・ブラウザに送信すること、を備える方法。
【請求項13】
前記DNSは、前記ルートドメイン名を除去し、前記IPアドレスを再フォーマットすることによって、前記ウェブアドレスを前記決済端末のIPアドレスに変換する、請求項12に記載の方法。
【請求項14】
前記DNSは、前記IPアドレスに小数点またはコロンを挿入することによって、前記IPアドレスを再フォーマットする、請求項13に記載の方法。
【請求項15】
前記ウェブアドレスは、調整されたフォーマットのIPアドレスを含む、請求項14に記載の方法。
【請求項16】
前記IPアドレスの調整されたフォーマットは、任意の小数点またはコロンのないIPアドレスを含む、請求項15に記載の方法。
【請求項17】
前記IPレジストリサービスは、前記決済端末のIPアドレスを前記ルートドメイン名と組み合わせることによって、前記ウェブアドレスを作成する、請求項16に記載の方法。
【請求項18】
前記マーチャント・ブラウザは、前記決済端末に関連付けられたセキュリティ証明書およびウェブアドレスの真正性の検証を認証局に要求する、請求項17に記載の方法。
【請求項19】
前記マーチャント・ブラウザは、前記セキュリティ証明書の真正性の検証を受信すると、HTTPSプロトコルを用いて前記決済端末と通信する、請求項18に記載の方法。
【請求項20】
前記IPレジストリサービスおよび前記DNSは、動作可能に接続されている、請求項19に記載の方法。
【請求項21】
HTTPS/TLS対応デバイスとローカルネットワーク内のソフトウェアコンポーネントとの間のセキュアな通信を可能にするTCP/IPアーキテクチャであって、
1つまたは複数のプロセッサを含むIPレジストリサービスであって、前記IPレジストリサービスは、ネットワークを介してHTTPS/TLS対応デバイスおよびソフトウェアコンポーネントと動作可能に通信し、前記IPレジストリサービスは、
前記HTTPS/TLS対応デバイスから、前記HTTPS/TLS対応デバイスに関連付けられたIPアドレス、ポート、固有の識別子を受信すること、
前記ソフトウェアコンポーネントから、前記HTTPS/TLS対応デバイスの固有の識別子を受信すること、
前記固有の識別子を受信したことに応答して、ブラウザがIPアドレス及びポートを用いてTCP/IPプロトコルでHTTPS/TLS対応デバイスと通信できるように、前記HTTPS/TLS対応デバイスのIPアドレス及びポートを前記ソフトウェアコンポーネントに送信すること、を実行する、前記IPレジストリサービスと、
DNS(domain name system)であって、
前記HTTPS/TLS対応デバイスのIPアドレスおよびルートドメイン名を含むウェブアドレスのDNSルックアップ要求を前記ブラウザから受信すること、
前記ウェブアドレスのDNSルックアップ要求を受信したことに応答して、
前記ルートドメイン名を削除することによって、前記ウェブアドレスを前記HTTPS/TLS対応デバイスのIPアドレスに変換すること、
前記ブラウザがHTTPSプロトコルでHTTPS/TLS対応デバイスと通信できるように、前記HTTPS/TLS対応デバイスのIPアドレスを前記ブラウザに送信すること、を実行する前記DNSと、を備えるTCP/IPアーキテクチャ。
【請求項22】
前記ソフトウェアコンポーネントは、前記ブラウザと通信するミドルウェアである、請求項21に記載のTCP/IPアーキテクチャ。
【請求項23】
前記ソフトウェアコンポーネントは、前記ブラウザにプラグインとしてインストールされたJavaScript SDKである、請求項21に記載のTCP/IPアーキテクチャ。
【請求項24】
前記ソフトウェアコンポーネントは、1つまたは複数のIoTデバイスと接続するためのサードパーティソフトウェアである、請求項21に記載のTCP/IPアーキテクチャ。
【請求項25】
方法であって、
HTTPS/TLS対応デバイスから、前記HTTPS/TLS対応デバイスに関連付けられたIPアドレス、ポート、固有の識別子を受信すること、
ソフトウェアコンポーネントから、前記HTTPS/TLS対応デバイスの固有の識別子を受信すること、
前記固有の識別子を受信したことに応答して、ブラウザがIPアドレス及びポートを用いてTCP/IPプロトコルでHTTPS/TLS対応デバイスと通信できるように、前記HTTPS/TLS対応デバイスのIPアドレス及びポートを前記ソフトウェアコンポーネントに送信すること、
前記HTTPS/TLS対応デバイスのIPアドレスおよびルートドメイン名を含むウェブアドレスのDNSルックアップ要求をブラウザから受信すること、
前記ウェブアドレスのDNSルックアップ要求を受信したことに応答して、
前記ルートドメイン名を削除することによって、前記ウェブアドレスを前記HTTPS/TLS対応デバイスのIPアドレスに変換すること、
前記ソフトウェアコンポーネントがHTTPSプロトコルでHTTPS/TLS対応デバイスと通信できるように、前記HTTPS/TLS対応デバイスのIPアドレスをブラウザに送信すること、を備える方法。
【請求項26】
前記ソフトウェアコンポーネントは、前記ブラウザと通信するミドルウェアである、請求項25に記載の方法。
【請求項27】
前記ソフトウェアコンポーネントは、前記ブラウザ上にプラグインとしてインストールされたJavaScript SDKである、請求項25に記載の方法。
【請求項28】
前記ソフトウェアコンポーネントは、1つまたは複数のIoTデバイスと接続するためのサードパーティソフトウェアである、請求項25に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本システム及び方法は、概して、TCP/IPプロトコルを用いた通信に関する。
【背景技術】
【0002】
コンピュータ技術がますます普及するにつれて、企業は業務の幾つかの側面にコンピュータソフトウェアを導入することが実質的に求められている。しかし、ソフトウェアのインストールと管理は、多くの企業が有しておらずかつ取得することを望んでいない専門知識を必要とする費用のかかる作業になる可能性がある。ソフトウェアを必要としているが、ソフトウェアをインストールしたり管理したりすることを望んでいない企業にサービスを提供するためのメカニズムとして、「SaaS(software as a service)」が開発された。SaaSは、サードパーティのプロバイダがアプリケーションをホストし、ウェブブラウザを介してインターネット経由で顧客に提供するソフトウェア配信モデルである。SaaSを導入することで、企業は自社のコンピュータまたはデータセンタにアプリケーションをインストールして管理する必要がなくなるかもしれない。
【0003】
電子キャッシュレジスタ(electronic cash register : ECR)を使用する企業は、多くの場合、複数のECRとのインタフェースとしてSaaSアプリケーションを使用する。さらに、複数のECRを使用する企業は、多くの場合、電子決済端末を使用してこれらのタイプの決済を処理することによって、複数の顧客から小切手及びクレジットカードによる決済を受理する。ECRのためのSaaSアプリケーション及び企業が使用するウェブブラウザが、通常、決済端末と直接通信するように設計されていないため、企業がSaaSアプリケーション及びECRを使用して決済端末を管理する場合、データ収集及びその他の通信の問題が発生する可能性がある。このような状況では、企業はECRのソフトウェアを使用するために特別に設計された決済端末を使用するか、又は複数のソースからデータを収集して調整するという非効率的で面倒なタスクに直面するかのいずれかに制限される。したがって、ウェブブラウザを介して決済端末を制御し、更新し、通信することができるシステムまたは方法に対する長年の解決されていないニーズがある。
【発明の概要】
【0004】
上述したように、SaaSシステムは、典型的には、ブラウザベースの環境で動作する。さらに、幾つかの決済端末は、「USB(hard-wired universal serial bus)」接続を介して(例えば、一日の終わり、シフトの終わりなどで)ECRに情報をアップロードしてもよい。当業者によって理解されるように、従来のブラウザは、(セキュリティ目的のために)USB接続を介して通信することはできない。したがって、ブラウザベースの環境で動作するSaaSシステムは、通常、典型的なUSB接続を介してECRと通信できない。
【0005】
一部の決済端末は、ECRとワイヤレスで通信する機能を含む。これらのシナリオでは、ECRは、Wi-Fiなどを介して決済端末と通信するようにプログラムされて、SaaSシステムにデータをアップロードするためのUSB接続の必要性を排除できる。ただし、セキュリティを強化するために、一部のシステムは、ECR及び/又は決済端末用に動的に更新されるIPアドレスを含む。ECRブラウザが動的に更新されるIPアドレスを有する決済端末と通信するためには、ユーザは、(定期的に、幾つかの実施形態では毎日)決済端末のIPアドレスが更新されるたびに、ECRと決済端末との間の接続を再設定する必要がある。システムが複数の(例えば、2個、5個、20個、100個のなどの)決済端末を含む場合、ECRと決済端末との間の接続を再設定すると、追加の問題が発生する。
【0006】
したがって、様々な実施形態において、本システム及び方法は、決済端末が動的に更新されるIPアドレスを有するにもかかわらず、TCP/IPプロトコルを用いてSaaSシステムを搭載したECRへの決済端末の継続的なセキュアな接続を可能にする。
【0007】
簡単に説明すると、一実施形態によれば、本開示の複数の態様は、概して、TCP/IPプロトコルを用いたウェブブラウザを介して複数の決済端末を制御、更新、及び通信するシステム及び方法に関する。本開示のシステム及び方法は、さらに、TCP/IPプロトコルを用いて決済端末と通信するコンピューティングシステムを、IPレジストリサービスを介して決済端末のIPアドレスを用いて自動的に更新する(例えば、決済端末のIPアドレスが動的に更新されると、コンピューティングシステムは、自動的に新しいIPアドレスで更新される)ことに関する。本開示のシステム及び方法は、さらに、ウェブブラウザとTCP/IPプロトコルを用いた決済端末通信との間の潜在的な「SSL(secure socket layer)」のセキュリティ問題を解決することに関する。本明細書の説明から理解されるように、決済端末、ウェブブラウザ、IPレジストリサービス、及びカスタムDNS(domain name system)の様々な組み合わせによって、本明細書に記載された複数の機能が実行される。
【0008】
1つまたは複数の特許請求の範囲に記載されたシステムのこれら及び他の態様、特徴、及び利点は、以下の図面に関連して取られる好ましい実施形態及び態様の以下の詳細に記載された説明から明らかになるであろうが、それに対する変更及び修正は、開示の新規な概念の趣旨及び範囲から逸脱することなく実施され得る。
【図面の簡単な説明】
【0009】
添付の図面は、本開示の1つ又は複数の実施形態及び/又は態様を示し、明細書とともに、本開示の原理を説明する役割を果たす。可能な限り、図面全体を通して同じ参照番号を使用して、実施形態の同じかまたは同様の要素を指す。
図1A】本開示の一実施形態に従った、例示的なシステム環境を示す。
図1B】本開示の一実施形態に従った、例示的なシステム環境を示す。
図1C】本開示の一実施形態に従った、例示的なシステム環境を示す。
図1D】本開示の一実施形態に従った、例示的なシステム環境を示す。
図1E】本開示の一実施形態に従った、例示的なシステム環境を示す。
図1F】本開示の一実施形態に従った、例示的なシステム環境を示す。
図1G】本開示の一実施形態に従った、例示的なシステム環境を示す。
図1H】本開示の一実施形態に従った、例示的なシステム環境を示す。
図1I】本開示の一実施形態に従った、例示的なシステム環境を示す。
図2】本開示の一実施形態に従った、システム環境の例示的なコンポーネント図である。
図3】本開示の一実施形態に従った、例示的なJavaScript SDKプロセスの例示的なフローチャートである。
図4】本開示の一実施形態に従った、例示的なIPレジストリプロセスの例示的なフローチャートである。
図5】本開示の一実施形態に従った、例示的なカスタムDNSサービスプロセスの例示的なフローチャートである。
【発明を実施するための形態】
【0010】
本開示の原理の理解を促進するために、図面に示された実施形態を参照し、特定の言語を使用してこれを説明する。それでもなお、本開示の範囲の限定はそれによって意図されないことが理解されるであろう。説明または例示された実施形態の変更及びさらなる修正、及び明細書に例示された本開示の原理のさらなる適用は、本開示が関連する当業者によって通常行われるように企図される。範囲のすべての制限は、特許請求の範囲に従って説明されているように決定されるべきである。
【0011】
用語が大文字化されているかどうかは、用語の意味の決定または限定とはみなされない。この明細書で使用されているように、大文字の用語は、大文字の用語のより制限的な意味が意図されていることを使用の文脈で具体的に示していない限り、大文字でない用語と同じ意味を有する。しかし、この明細書の残りの部分における大文字の使用またはその欠如は、文脈がそのような制限が意図されていることを明確に示さない限り、必ずしも制限することを意図していない。
【0012】
概要
本明細書で開示されるシステム及び方法は、TCP/IPプロトコルを用いたウェブブラウザを介したブラウザ対応決済端末(browser-enabled payment terminal)の制御、更新、及び通信に関する。本開示のシステム及び方法は、さらに、TCP/IPプロトコルを用いて決済端末と通信するコンピューティングシステムを、IPレジストリサービスを介して決済端末のIPアドレスを用いて自動的に更新する(例えば、決済端末のIPアドレスが動的に更新されると、コンピューティングシステムは、自動的に新しいIPアドレスで更新される)ことに関する。本開示のシステム及び方法は、さらに、ウェブブラウザとTCP/IPプロトコルを用いた決済端末通信との間の潜在的なSSLのセキュリティ問題を解決することに関する。この説明の目的上、TCP/IPプロトコルは、インターネット及びプライベートネットワークの両方でネットワークデバイスを相互接続するように使用される通信プロトコルのスイート(suite)を指す。
【0013】
一実施形態では、システムは、ネットワークを介した通信をサポートする決済端末、例えば、PAX Technology Limited(登録商標)の端末を含む(ただし、ネットワークを介した通信をサポートする任意の端末が、このシステムの一部と考えられる)。特定の実施形態によれば、システムは、HTTPS APIを公開する(expose)か、そうでなければ、HTTPSプロトコルを用いて通信するように構成された決済端末を含む。特定の実施形態では、システムは、1つ以上の他のネットワークプロトコルを用いて通信するように構成された決済端末を含む。
【0014】
幾つかの実施形態では、本明細書に記載のシステムは、ネットワークを介した通信をサポートする決済端末と通信するためのマーチャント・ブラウザ(merchant browser)に含まれるブラウザによって実行可能なブラウザ・プラグイン(browser plug-in)または他のソフトウェア、およびシステムの他のコンポーネントを含む。さまざまな実施形態において、マーチャント・ブラウザは、IPレジストリサービス(IP registry service)及びカスタム(custom)DNSと通信するように構成される。本明細書の説明から理解されるように、決済端末、マーチャント・ブラウザ、ブラウザ・プラグイン(例えば、JavaScript SDK)、IPレジストリサービス、及びカスタムDNSの様々な組み合わせによって、本明細書に記載された複数の機能が実行される。
【0015】
本明細書で説明するように、様々な実施形態において、システムは、決済端末のIPアドレス及びルートドメイン名に少なくとも部分的に基づいて決済端末にドメイン名を割り当てる。潜在的なSSLセキュリティ問題を解決するために、幾つかの実施形態では、本明細書に記載するシステムは、決済端末のドメイン名が、(SSL経由でセキュアな接続を確立するために必要な)SSL証明書に割り当てられたルートドメイン名と一致することを保証する。一実施形態では、ブラウザ・プラグインは、決済端末に割り当てられたIPアドレスを使用し、SSL証明書に割り当てられたIPアドレス及びルートドメイン名を含む決済端末のための一時的な、つまり「スプーフ(spoof)」名、すなわち、ウェブアドレスを指定することを可能にし、決済端末のウェブアドレスを決済端末のSSL証明書とリンクさせる(linking)。
【0016】
様々な実施形態では、決済端末のスプーフドメイン名(spoof domain name)またはウェブアドレスを用いた決済端末へのマーチャント・ブラウザによるセキュアな接続要求に応じて、マーチャント・ブラウザは、カスタムDNSサービスにルーティングされ、カスタムDNSサービスは、ウェブアドレスを決済端末のIPアドレスに変換して、マーチャント・ブラウザが、決済端末へのセキュアな接続を開始できるようにする。セキュアな接続が開始されると、決済端末は、マーチャント・ブラウザにSSL証明書のコピーを提供し、マーチャント・ブラウザが、認証局を介してSSL証明書を認証し、決済端末のアイデンティティを検証し得る(たとえば、ルートドメイン名がSSL証明書のドメイン名と一致するため、SSL証明書は、認証局によって認証され得る)。認証局が決済端末のSSL証明書の真正性を認証または検証すると、セキュアな接続が完了される。
【0017】
同様に理解されるように、システムは、システムの単一のコンポーネントまたは複数のコンポーネントを用いて、本明細書において説明される様々な機能を実行してもよい。たとえば、以下でさらに説明するように、システムは「スプーフ」ドメイン名を計算するように構成され得る。システムは、一実施形態では、ブラウザにインストールされたJavaScript SDKを用いてスプーフドメイン名を計算する。少なくとも1つの実施形態では、システムは、IPレジストリサービス(またはJavaScript SDKとIPレジストリサービスの組み合わせ)を用いてスプーフドメイン名を計算する。
【0018】
別の例として、図面に示す実施形態では、システムは、IPレジストリサービスおよびDNSサーバなどの幾つかの異なるコンポーネントを含む。1つ以上の実施形態において、IPレジストリサービス及びDNSサーバは、1つのシステムまたは1つのサーバであり得る。
【0019】
本明細書では、これらのコンポーネント及びプロセスについて説明する。
例示的な環境
次に図面を参照すると、開示されたシステムおよび方法のプロセスおよび構成要素の例示および説明の目的で、本明細書のシステムおよび方法の一実施形態の例示的で概略的なシステム環境100を示す図1図1A図1Iを含む)が参照される。理解され、認識されるように、図1に示される例示的な概略システム環境100は、本システムの特定のアプローチまたは実施形態を表し、他の態様は本システムの様々な実施形態に従って使用される。概して、図1A~1Iは、例示的な環境100内で「SaaS(software as a service)」決済ソリューションを採用する決済端末102と電子キャッシュレジスタ(electronic cash register : ECR)との間の通信を可能にする異なるステップを示す。具体的には、図1A~1Iは、SaaSベンダからのソフトウェアにアクセスするマーチャント・ブラウザ(例えば、ECR)を使用して、決済端末を介して顧客の支払いが処理される特定の実施形態を示している。
【0020】
一例として、図1に示されるように、例示的なシステム環境は、顧客の支払いを受理する(accept)ための端末識別番号(例えば、123555000)が割り当てられた決済端末102を含む。少なくとも1つの実施形態では、端末識別番号は、決済端末102を識別する固定番号である。特定の実施形態では、決済端末102は、クレジットカード、デビットカード、小切手、または他の電子決済メカニズムの態様で顧客の支払いを受理してもよい。様々な実施形態において、マーチャント(merchant)は、ドメイン名を決済端末102に割り当てることができる(例えば、paymentterminal.com)。少なくとも1つの実施形態では、マーチャントは、ドメイン名のワイルドカード(wildcard)「SSL(secure socket layer)」証明書を取得し得る。この説明のために、SSL証明書は、割り当てられているウェブサイトまたはデバイスのアイデンティティ(identity)を認証し、複数のデバイス間の暗号化された接続を可能にして、割り当てられているウェブサイトまたはデバイスとの間で送受信されるデータを保護する。さらに、ワイルドカードSSL証明書は、無制限のサブドメイン(例えば、*.paymentterminal.com)に付けられる。特定の実施形態では、例示的なシステム環境100は、決済端末102(例えば、192.168.1.100)及びマーチャント・ブラウザ106(例えば、192.168.1.101)にIPアドレスを割り当てる「DHCP(dynamic host configuration protocol)」サーバ104を含む。様々な実施形態において、例示的なシステム環境は、決済端末102とインタフェースし、管理するための端末管理ソフトウェア(「TMS: terminal management software」)110を含む。
【0021】
さらに、幾つかの実施形態では、例示的なシステム環境100は、マーチャント・ブラウザ106及びSaaSベンダ108を含む。特定の実施形態では、マーチャント・ブラウザ106は、ECR(例えば、デスクトップコンピュータ、タブレットコンピュータ、モバイルデバイス、または他の適切なECR)上で動作し得る。様々な実施形態において、SaaSベンダ108は、ECRの使用を可能にするソフトウェアを提供する。少なくとも1つの実施形態では、マーチャント・ブラウザ106は、SaaSベンダ108とインタフェースするように構成される。
【0022】
幾つかの実施形態では、例示的なシステム環境100は、マーチャント・ブラウザ106と決済端末102との間のセキュアな通信を提供するための認証局120を含む。この説明の目的のために、認証局120は、認証局120によって検証されるように、ウェブサイト、人、およびデバイスがそれらの真正なオンライン・アイデンティティを表すことを支援する認証情報(credential)を含む検証可能なデータファイルであるデジタル証明書を発行する。
【0023】
少なくとも一実施形態では、ユーザは、JavaScript SDK(Software Development Kit)205をマーチャント・ブラウザ106にダウンロードしてインストールするか、さもなければ、ユーザは、JavaScript SDK205がマーチャント・ブラウザ106にロードされたSaaSソフトウェアと決済端末102との間の通信を可能にするように、マーチャント・ブラウザ106とインタフェースする。
【0024】
図1を続けて、様々な実施形態では、例示的なシステム環境100は、(例えば、顧客のクレジットカードへの請求を承認するかまたは否認する)決済端末102を介して行われる顧客の支払いを処理する決済処理サービス114を含む。少なくとも一実施形態では、決済処理サービス114は、2015年1月7日に出願された「暗号化装置から受信したペイロードの低減を可能にするシステム及び方法」という名称の米国特許出願第14/591,171号および2017年5月17日に出願された「ハードウェアセキュリティモジュールを介したサービスとして復号化するシステム及び方法」という名称の米国特許出願第15/597,402号に記載されているようなポイントツーポイント暗号化管理システム(point-to-point encryption management system)を使用することができる。
【0025】
特定の実施形態では、例示的なシステム環境100は、様々なデバイスのIPアドレス及び他の情報を記録するIPレジストリサービス(registry service)116を含む。様々な実施形態において、IPレジストリサービス116は、決済端末102の端末識別番号及び他の識別情報(例えば、バージョン番号、MACアドレス、デバイスタイプ、シリアル番号など)を記録し得る。幾つかの実施形態では、IPレジストリサービス116は、決済端末102のIPアドレスをマーチャント・ブラウザ106に送信してもよい。1つまたは複数の実施形態では、本明細書で説明するように、IPレジストリサービス116は、決済端末102の「スプーフ」または一時的なドメイン名の作成を担当し得る。本明細書の説明から理解されるように、IPレジストリサービス116は、任意の数の決済端末及び/またはデバイスの端末識別番号及びIPアドレスを記録し得る。
【0026】
少なくとも1つの実施形態では、例示的なシステム環境100は、デバイスドメイン名に基づいて識別サービスを提供するカスタムDNSサービス118を含む。この説明のために、DNSサービスは、ネットワークに接続されたコンピュータ、サービス、またはその他のデバイスまたはリソースのネーミングシステム(naming system)を提供する。1つまたは複数の実施形態において、DNSサービスは、ドメイン名を、デバイスまたはサービスを識別するために必要なIPアドレスに変換する。例えば、決済端末102(paymentterminal.com)に割り当てられたドメイン名は、DHCPサーバ104によって割り当てられた決済端末102のIPアドレス(例えば、192.168.1.100)に変換される。
【0027】
少なくとも1つの実施形態では、この例示的なシステム環境100の様々なコンポーネントは、1つまたは複数のネットワーク112を介して動作可能に接続される。一実施形態では、ネットワーク112は、インターネットであってもよく、それに限定されず、1つ以上のサービス(クライアント/サービスアーキテクチャ、企業のローカルエリアネットワーク(「LAN」)またはワイドエリアネットワーク(「WAN」)、セルラー・データネットワーク、またはクラウドベースのシステムを使用したウェブ展開サービス(web-deployed service)など)の使用を含んでもよい。さらに、当業者によって理解及び認識されるように、ルータ、スイッチ、ホストなどのようなさまざまなネットワークコンポーネントが、典型的にはこれらの通信に関与している。図1に示すように、そのような通信は、様々な実施形態において、無許可の第三者による不当な侵入及びサイバー攻撃からの追加のセキュリティを提供する1つ以上のセキュアなネットワーク、ゲートウェイ、またはファイアウォールを含み得る。
【0028】
図1Bを参照すると、様々な実施形態において、決済端末102及びマーチャント・ブラウザ106には、DHCPサーバ104によってIPアドレスが割り当てられる。特定の実施形態では、決済端末102とマーチャント・ブラウザ106の両方は、DHCPサーバ104に動作可能に接続される。一実施形態では、DHCPサーバ104は、決済端末102(例えば、192.168.1.100)およびマーチャント・ブラウザ106(例えば、192.168.1.101)の両方に固有のIPアドレスを割り当てて、決済端末102およびマーチャント・ブラウザ106をネットワーク上で識別できるようにする。様々な実施形態において、割り当てられたIPアドレスが静的ではなく変化し得るように、DHCPサーバ104は、決済端末102とマーチャント・ブラウザ106の両方に固有のIPアドレスを動的に割り当てる。1つまたは複数の実施形態において、マーチャントは、静的IPアドレスを決済端末102に割り当ててもよい。
【0029】
図1Cを参照すると、一実施形態によれば、決済端末102は、端末管理ソフトウェア(「TMS(terminal management software)」)110に動作可能に接続する。特定の実施形態では、決済端末102は、有線(例えば、イーサネット、USBなど)または無線(例えば、Wi-Fi、ブルートゥースなど)接続を介してTMS110に接続し得る。様々な実施形態では、決済端末102は、システム起動時、ネットワーク112のステータスの変化(例えば、ネットワーク112に追加された新しいマーチャント・ブラウザ106)、または他のトリガ事象(例えば、TMS110のデータ更新)に基づいて、TMS110に接続する。少なくとも1つの実施形態では、TMS110は、決済端末102に関連するデバイス固有情報(例えば、デバイスタイプ、バージョン番号、端末識別番号、MACアドレス、シリアル番号、管理情報、SSL証明書など)を格納する。一実施形態では、決済端末102は、TMS110からデバイス固有情報をダウンロードする。
【0030】
図1Dを参照すると、決済端末102は、ネットワーク112を介してIPレジストリサービス116に接続する。特定の実施形態では、決済端末102は、DHCPサーバ104から取得したローカルIPアドレス(及び、幾つかの実施形態では、リスニングポート(listening port))をIPレジストリサービス116にアップロードする。例えば、決済端末102は、192.168.1.100をIPレジストリサービス116にアップロードしてもよい。
【0031】
1つまたは複数の実施形態では、IPレジストリサービス116は、受信したIPアドレスを標準/正規化フォーマットに調整するように構成され得る。一実施形態では、受信したIPアドレスがIPv4フォーマットであるが、3つの整数の後ごとに小数点が配置されている12個の整数を含まない(例えば、受信したIPアドレスは「192.168.1.100」である)場合、IPレジストリサービス116は、各小数点(decimal point)の間に(配置されたゼロを含む)3つの整数が含まれるようにゼロを付与することによって受信したIPアドレスを調整する。理解されるように、システムは、小数点の間の任意の既存の整数の左側にゼロを追加する(例えば、端末のIPアドレスが「192.168.1.100」の場合、システムは、3番目の「1」の左側に2つのゼロを追加し得る)。たとえば、192.168.1.100のIPアドレスは、192.168.001.100に調整され得る。システムは、特定の実施形態では、「スプーフ」ドメイン名を作成するために、この標準化されたIPアドレス形式(たとえば、12個の整数)を利用し得る。
【0032】
様々な実施形態によれば、図1Eに示されるように、マーチャント・ブラウザ106は、SaaSベンダ108に接続する。特定の実施形態では、システムは、マーチャント・ブラウザ106(例えば、ECR)を介してSaaSベンダ108からのSaaSソフトウェアにアクセスする。さらに、幾つかの実施形態では、システムは、JavaScript SDK205をマーチャント・ブラウザ106にダウンロードするように構成される。一実施形態では、JavaScript SDK205は、決済端末102のECRアプリケーションプログラミングインタフェース(「API(application programming interface)」)エンドポイントとの通信を担当して、JavaScript SDK205は、SaaSベンダ108からのSaaSソフトウェアを用いてロードされたマーチャント・ブラウザ106と決済端末102との間のブリッジとして機能する。
【0033】
ここで図1Fを参照すると、様々な実施形態において、マーチャント・ブラウザ106は、IPレジストリサービス116に接続する。特定の実施形態では、JavaScript SDK205は、決済端末102の端末識別番号(または、決済端末のシリアル番号、割り当てられたニックネームなど、その他の適切な固有の識別子)をIPレジストリサービス116に送信し、応答としてスプーフドメイン名を要求する。様々な実施形態では、スプーフドメイン名が、決済端末に割り当てられたSSL証明書と一致するように、IPレジストリサービス116は、決済端末102に割り当てられたドメイン名のルート(root)を、すべての小数点を取り除いた決済端末102の調整されたIPアドレスと組み合わせることによって、決済端末102のスプーフドメイン名を計算する(例えば、IPレジストリサービス116は、192.168.1.100のIPアドレスを192.168.001.100に変換し、調整されたIPアドレスをpaymentterminal.comのルートドメイン名と組み合わせて192168001100.paymentterminal.comにする)。図1Dに関連して上述したように、IPレジストリサービス116は、少なくとも1つの実施形態では、決済端末102のIPアドレス、リスニングポート、及び端末識別番号を前もって受信している。理解されるように、マーチャント・ブラウザ106は、決済端末102のIPアドレス及びリスニングポート及び/またはスプーフドメイン名を使用して、TCP/IPプロトコルで決済端末102と通信することができる。
【0034】
少なくとも1つの実施形態では、本明細書で説明するように、JavaScript SDK205は、決済端末102のスプーフまたは一時的なドメイン名を作成することを担当し得る。これらの実施形態では、マーチャント・ブラウザ106は、決済端末102の端末識別番号(例えば、123555000)をJavaScript SDK205にロードする。様々な実施形態において、マーチャントが最初に決済端末102をセットアップしたときに、決済端末102の端末識別番号は、SaaSベンダ108及び/またはマーチャント・ブラウザ106に前もって提供されている。
【0035】
1つまたは複数の実施形態において、IPレジストリサービス116に決済端末102の端末識別番号を送信すると、JavaScript SDK205は、それに応答して、決済端末102の対応する調整されたアドレスを受信する。これら実施形態では、スプーフドメイン名が、決済端末に割り当てられたSSL証明書と一致するように、JavaScript SDK205は、決済端末102に割り当てられたドメイン名のルートを、すべての小数点を取り除いた決済端末102の調整されたIPアドレスと組み合わせることによって、決済端末102のスプーフドメイン名を計算する(例えば、JavaScript SDK205は、192.168.001.100の調整されたIPアドレスおよびpaymentterminal.comのルートドメイン名を192168001100.paymentterminal.comに変換する)。理解されるように、様々な実施形態では、JavaScript SDKは、決済端末(例えば、192.168.1.100)のIPアドレスを受信し、小数点間にゼロを追加することによってIPアドレスを調整されたIPアドレスに変換して、各小数点間に3つの整数を有する12個の整数のIPアドレス(例えば、192.168.001.100)を作成するように構成され得る。
【0036】
さらに、さまざまな実施形態において、スプーフドメイン名は、インターネットプロトコルバージョン6(「IPv6(Internet protocol version 6)」)構造を用いて作成されてもよい。たとえば、特定の実施形態では、2001:db8::ff00:42:8329のIPアドレスは、最初に各コロン間にゼロを追加することで32個の整数の形式(例えば、2001:0db8:0000:0042:0000:8a2e:0370:7334)に変換される。この例を続けると、展開されたIPv6表現からコロンが削除され、結果としてのスプーフドメイン名は、「20010db80000004200008a2e03707334.paymentterminal.com」になる。
【0037】
次に図1Gを参照すると、様々な実施形態において、マーチャント・ブラウザ106は、決済端末102に割り当てられたドメイン名に対するワイルドカードSSL証明書を含む決済端末102に動作可能に接続される(例えば、マーチャントは、TMS110または他のコンポーネントを介して決済端末102にロードされたpaymentterminal.comのすべてのサブドメインに対するSSL証明書を購入している)。一実施形態では、マーチャント・ブラウザ106は、スプーフドメイン名を使用して、「HTTPS(Hyper Text Transfer Protocol Secure)」で決済端末102に接続要求を送信する。
【0038】
次に図1Hを参照すると、特定の実施形態では、マーチャント・ブラウザ106(例えば、JavaScript SDK)は、(例えば、セキュアなHTTPS接続の要求に応答して)決済端末102からSSL証明書を受信し、決済端末102から受信したSSL証明書を認証局120で検証して、決済端末102への接続を完了する。このプロセスについては後述する。
【0039】
様々な実施形態において、図1Hに示されるように、マーチャント・ブラウザ106は、カスタムDNSサービス118、認証局120、及び決済端末102に動作可能に接続される。幾つかの実施形態では、マーチャント・ブラウザ106は、図1Fを参照して説明したように、IPレジストリサービス116またはJavaScript SDK205によって作成された決済端末102のスプーフドメインネーム(例えば、1921681100.paymentterminal.com)でカスタムDNSサービス118に照会する(queries)。少なくとも1つの実施形態では、カスタムDNSサービスは、スプーフドメイン名(例えば、1921681100.paymentterminal.com)を決済端末102のIPアドレス(例えば、192.168.1.100)に変換し、それに応答して、決済端末102のIPアドレス(例えば、192.168.1.100)をマーチャント・ブラウザ106に送り返す。これらの実施形態では、マーチャント・ブラウザ106によるHTTPS接続要求は、決済端末102のIPアドレス(例えば、192.168.1.100)を用いて決済端末102に直接的にルーティングされる。
【0040】
様々な実施形態では、決済端末102は、マーチャント・ブラウザ106(paymentterminal.com)に既知の決済端末102のドメイン名と一致する決済端末102のSSL証明書のコピーをマーチャント・ブラウザ106に送信することによってHTTPS接続要求に応答し、これにより、決済端末102とマーチャント・ブラウザ106との間でSSL「ハンドシェイク(handshake)」が発生する。様々な実施形態において、決済端末102との成功したSSLハンドシェイクを取得すると、マーチャント・ブラウザ106は、接続を完了する前に認証局120と決済端末102のSSL証明書を検証する。この時点で、1つまたは複数の実施形態では、システムは、決済取引を処理するように構成されている。
【0041】
例えば、図1Iに示されるように、様々な実施形態において、決済端末102は、セキュアなTCP/IP(HTTPS)ならびに決済処理サービス114を介してマーチャント・ブラウザ106に動作可能に接続される。特定の実施形態では、マーチャント・ブラウザ106は、SaaSベンダ108にも動作可能に接続される。この例では、幾つかの実施形態では、決済端末を介して決済取引が開始されると、決済端末102は、決済取引を決済処理サービス114に送信する。少なくとも1つの実施形態では、決済処理サービス114は、承認または否認応答を決済端末102に送り返す。これらの実施形態では、決済端末102は、決済処理サービス114から受信した応答に基づいて、JavaScript SDK205を用いてマーチャント・ブラウザ106に応答を送信する。特定の実施形態では、マーチャント・ブラウザ106は、決済処理サービス114から受信した応答でSaaSベンダ108を更新する。
【0042】
例示的なアーキテクチャ
システムコンポーネント
次に図2を参照すると、本開示の一実施形態に従った、システム環境の例示的なコンポーネント図が示されている。上述の様々な実施形態では、システムは、SaaSベンダ108と、端末管理ソフトウェア(「terminal management software:TMS」)110と、を含む。幾つかの実施形態において、システムは、決済端末102がマーチャント・ブラウザ106とセキュアに通信できるように、TCP/IPを用いた決済処理及び通信を可能にするカスタムTCP/IP決済アーキテクチャ203を含む。少なくとも1つの実施形態では、カスタムTCP/IP決済アーキテクチャ203は、決済処理サービス114、IPレジストリサービス116、及びDNSサービス118を含む。様々な実施形態において、カスタムTCP/IP決済アーキテクチャ203の1つまたは複数のコンポーネントは、プロセッサ、データベース、サーバ、及び他の計算要素を含み得る。
【0043】
特定の実施形態では、システムはまた、マーチャントによって維持される複数のデバイスの相互接続されたネットワークを可能にするマーチャントのローカルエリアネットワーク(「LAN」)を含む。特定の実施形態では、マーチャントのLAN201は、決済端末102及びマーチャント・ブラウザ106を含む。様々な実施形態において、マーチャントのLAN201は、有線(例えば、イーサネット、USBなど)または無線(例えば、Wi-Fi、ブルートゥースなど)接続を介してカスタムTCP/IP決済アーキテクチャに接続されてもよい。一つまたは複数の実施形態では、マーチャントのLAN201は、有線(イーサネット、USBなど)または無線(例えば、Wi-Fi、ブルートゥースなど)接続を介してSaaSベンダ108及び/またはTMS110に接続されてもよい。特定の実施形態では、マーチャントのLAN203の1つまたは複数のコンポーネントは、プロセッサ、データベース、サーバ、及び他の計算要素を含み得る。少なくとも1つの実施形態では、上述したように、マーチャント・ブラウザ106は、JavaScript SDK205を含む。
【0044】
様々な実施形態によれば、JavaScript SDK205は、決済端末102のECR APIエンドポイントと通信し、決済端末102のスプーフドメイン名を計算することを担当し得る。一実施形態では、JavaScript SDK205は、すべての機能及びオブジェクトがJavaScript SDK205内に含まれるように、自給式ライブラリ(self-sufficient library)を含む。特定の実施形態では、JavaScript SDK205は、fluent関数コール(function call)をサポートし、その結果、関数は、成功および失敗のコールバックを有するオブジェクトを返すことができる。少なくとも1つの実施形態では、JavaScript SDK205は、同じHTMLページ上で複数の決済端末102をサポートし得る。様々な実施形態において、JavaScript SDK205は、任意の適切なウェブブラウザ(例えば、グーグルクロム(登録商標)、インターネットエクスプローラ(登録商標)、マイクロソフトエッジ(登録商標)、ファイアフォックス(登録商標)、サファリ(登録商標)など)で動作する。幾つかの実施形態では、JavaScript SDKの機能は、スタンドアロンアプリケーション(例えば、マーチャント・ブラウザ及びIPレジストリサービス及び/またはDNSサーバとインタフェースするスタンドアロンアプリケーション)によって実行/完了され得る。さらなる実施形態では、JavaScript SDKの機能は、例えば、Node.jsなどの1つまたは複数のランタイム環境で実行/完了されてもよい。
【0045】
サーバ/コンピューティングシステム
上記から、本明細書で説明されるプロセスの様々な態様は、システムの複数の部分を形成する複数のコンピュータシステム上で実行される複数のソフトウェアプロセスであることを理解されたい。従って、本明細書に記載されるシステムの様々な実施形態は、概して、様々なコンピュータハードウェアコンポーネントを含む特別に構成されたコンピュータとして具体化され、多くの場合、本明細書にさらに詳細に説明されるように、従来のまたは既知のコンピュータ、プロセス等と比較して、重要な追加の特徴を有することが理解されるであろう。本開示の範囲内の実施形態はまた、複数のコンピュータ実行可能命令または複数のデータ構造を搬送するかまたは有するためのコンピュータ可読媒体を含む。そのようなコンピュータ可読媒体は、コンピュータによってアクセス可能であるか、または通信ネットワークを介してダウンロード可能な任意の利用可能な媒体であり得る。一例として、限定するものではないが、このようなコンピュータ可読媒体は、RAM、ROM、フラッシュメモリ、EEPROM、CD-ROM、DVD、または他の光ディスク記憶装置、磁気ディスク記憶装置、ソリッドステートドライブ(solid state drives : SSDs)、他のデータ記憶装置、セキュアデジタル(secure digital : SD)、フラッシュメモリ、メモリスティックなどの任意のタイプの取外し可能な不揮発性メモリ、またはコンピュータ実行可能な命令またはデータ構造の形態でコンピュータプログラムコードを転送または記憶するために使用することができ、コンピュータによってアクセス可能な任意の他の媒体を含み得る。
【0046】
ネットワークまたは別の通信接続(有線、無線、または有線または無線の組み合わせ)を介して情報がコンピュータに転送または提供されると、コンピュータは、その接続をコンピュータ可読媒体として適切に認識する。従って、そのような接続は、適切にコンピュータ可読媒体と呼ばれ、コンピュータ可読媒体とみなされる。上記した組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。コンピュータ実行可能命令は、例えば、コンピュータに特定の機能または1群の機能を実行させる命令及びデータを含む。
【0047】
当業者は、本開示の態様が実装され得る適切なコンピューティング環境の特徴及び態様を理解するであろう。必須ではないが、特許請求の範囲に記載されたシステムの幾つかの実施形態は、先に説明したように、ネットワーク化された環境においてコンピュータによって実行されるプログラムモジュールまたはエンジンなどのコンピュータ実行可能命令の文脈で説明され得る。そのようなプログラムモジュールは、フローチャート、シーケンス図、例示的な画面表示、及びそのようなコンピュータプログラムモジュールを作成及び使用する方法を通信するために当業者によって使用される他の技術によって、しばしば反映及び示される。概して、プログラムモジュールは、コンピュータ内で特定のタスクを実行するか、または特定の定義されたデータタイプを実装するローカルまたはリモートなどの他のコンピュータに対するルーチン、プログラム、関数、オブジェクト、コンポーネント、データ構造、アプリケーションプログラミングインタフェース(application programming interface : API)コールを含む。コンピュータ実行可能命令、関連するデータ構造及び/またはスキーマ、及びプログラムモジュールは、本明細書で開示される方法のステップを実行するためのプログラムコードの複数の例を示す。そのような実行可能な命令または関連するデータ構造の特定のシーケンスは、そのようなステップで説明される機能を可能にするための対応する複数の動作の例を示す。
【0048】
当業者はまた、特許請求の範囲に記載された及び/または説明されたシステム及び方法が、パーソナルコンピュータ、スマートフォン、タブレット、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家電製品、ネットワーク化されたPC、ミニコンピュータ、メインフレームコンピュータなどを含む多くのタイプのコンピュータシステム構成を有するネットワークコンピューティング環境において実施され得ることを理解するであろう。特許請求の範囲に記載されたシステムの実施形態は、複数のタスクが、(ハードワイヤードリンク、ワイヤレスリンク、またはハードワイヤードリンクとワイヤレスリンクの組み合わせによって)通信ネットワークを介してリンクされたローカル処理デバイス及びリモート処理デバイスによって実行される分散コンピューティング環境において実施される。分散コンピューティング環境では、複数のプログラムモジュールは、ローカルとリモートの両方のメモリ記憶装置に配置され得る。
【0049】
説明されていない動作の様々な態様を具体化するための例示的なシステムは、処理ユニット、システムメモリ、及びシステムメモリを含む様々なシステムコンポーネントを処理ユニットに結合するシステムバスを含むコンピューティングデバイスを含む。コンピュータは、典型的には、データを読み書きするための1つ以上のデータ記憶装置を含む。データ記憶装置は、コンピュータによって実行可能な命令、データ構造、プログラムモジュール、及びコンピュータのためのその他のデータの不揮発性記憶装置を提供する。
【0050】
本明細書で説明される機能を具体化するコンピュータプログラムコードは、典型的には、データ記憶装置に格納される1つまたは複数のプログラムモジュールを含む。このプログラムコードは、当業者に知られているように、典型的には、オペレーティングシステム、1つまたは複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータを含む。ユーザは、キーボード、タッチスクリーン、ポインティングデバイス、スクリプト言語で記述されたコンピュータプログラムコードを含むスクリプト、またはマイクなどの他の入力デバイス(図示せず)を介して、コンピュータにコマンドと情報を入力できる。これら及びその他の入力デバイスは、多くの場合、既知の電気接続、光学接続、または無線接続を介して処理ユニットに接続される。
【0051】
説明したプロセスの多くの態様に影響を与えるコンピュータは、典型的には、以下にさらに説明する1つまたは複数のリモートコンピュータまたはデータソースへの論理接続を使用して、ネットワーク化された環境において動作する。リモートコンピュータは、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の共通ネットワークノードとすることができ、典型的には、システムが具体化されるメインコンピュータシステムに関して上述した要素の多くまたは全てを含む。複数のコンピュータ間の論理接続は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、仮想ネットワーク(WANまたはLAN)、及び無線LAN(WLAN)を含み、これらは明細書において例として示されているが、これらに限定されるものではない。このようなネットワーク環境は、オフィス全体または企業全体のコンピュータネットワーク、イントラネット、及びインターネットで一般的である。
【0052】
LANまたはWLANネットワーク環境で使用される場合、システムの態様を具体化するコンピュータシステムは、ネットワークインタフェースまたはアダプタを介してローカルネットワークに接続される。WANまたはWLANネットワーク環境で使用される場合、コンピュータは、モデム、ワイヤレスリンク、またはインターネットなどの広域ネットワーク上で通信を確立するための他のメカニズムを含んでもよい。ネットワーク化された環境では、コンピュータに関連して示されたプログラムモジュールまたはその一部は、遠隔データ記憶装置に記憶されてもよい。説明または図示されたネットワーク接続は例示的なものであり、広域ネットワークまたはインターネットを介して通信を確立する他の機構を使用してもよいことが理解されよう。
【0053】
種々の態様が好ましい実施形態に関連して説明されてきたが、特許請求の範囲に記載されたシステムの追加の態様、特徴、及び方法は、当業者によって、本明細書の説明から容易に識別できるであろう。本明細書に記載されたもの以外の開示及び特許請求の範囲に記載されたシステムの多くの実施形態及び適応、ならびに多くの変形、改変、及び同等の構成及び方法は、特許請求の範囲の内容または範囲から逸脱することなく、本開示及びその前述の説明から明らかになるか、または本開示及びその説明によって合理的に示唆されるであろう。さらに、本明細書に記載され、特許請求の範囲に記載されている様々なプロセスの複数のステップの任意のシーケンス及び/または時間的順序は、特許請求の範囲に記載されているシステムを実行するために考えられる最良のモードであると考えられるものである。様々なプロセスの複数のステップは、好ましいシーケンスまたは時間的順序であるとして示され、説明されてもよいが、そのようなプロセスの複数のステップは、特定の意図された結果を達成するためのそのような特定の指示がない限り、特定のシーケンスまたは順序で実行されることに限定されないことも理解されたい。多くの場合、そのようなプロセスの複数のステップは、様々な異なるシーケンス及び順序で実施され得るが、依然として特許請求の範囲に記載されたシステムの範囲内にある。さらに、幾つかのステップは、同時に、同じ期間に、または他のステップと同期して実施されてもよい。
【0054】
例示的なプロセス
例示的なJavaScript SDKプロセス
図3は、本開示の一実施形態に従った、例示的なJavaScript SDK(例えば、JavaScript SDK205)プロセス300の例示的なフローチャートを例示する。当業者によって理解されるように、図3に示されるステップ及びプロセス(及びここに示され説明されている他のすべてのフローチャート及びシーケンス図)は、同時かつ連続的に実行することができ、典型的には非同期であり、独立しており、必ずしも示される順序で実行されるわけではない。本明細書の説明から理解されるように、図3に示されるような複数のステップは、JavaScript SDK、マーチャント・ブラウザ(例えば、JavaScript SDKと組み合わせて)及び/またはシステムの他のコンポーネントによって実行され得る。
【0055】
一実施形態では、図3に示すように、例示的なプロセスはステップ302で始まり、JavaScript SDKが、マーチャント・ブラウザにインストールされる。様々な実施形態において、マーチャント・ブラウザは、デスクトップコンピュータ、タブレットコンピュータ、モバイルデバイス、または他の同様の計算デバイスであり得る電子キャッシュレジスタ(electronic cash register : ECR)に含まれるか、またはそれ上で実行され得る。
【0056】
ステップ304で、JavaScript SDKは、マーチャント・ブラウザまたは他のシステムコンポーネントから決済端末の端末識別番号などの固有の識別子を受信する。一実施形態では、システムは、SaaSベンダから固有の識別子を取得するように構成される。様々な実施形態において、決済端末の固有の識別子は、ECRに格納され、マーチャント・ブラウザを介してアクセス可能であってもよい。特定の実施形態では、決済端末の固有の識別子は、リモートデータベースに格納されてもよい。
【0057】
次にステップ306に移ると、JavaScript SDKは、決済端末の固有の識別子をIPレジストリサービスに送信し、代わりに、IPレジストリサービスからの決済端末のIPアドレス及びリスニングポートを要求する。ステップ308で、システムは、IPレジストリサービスから調整された決済端末のIPアドレス及びリスニングポートを受信する。
【0058】
ステップ310で、JavaScript SDKは、決済端末のドメイン名が決済端末に割り当てられたSSL証明書のドメイン名と一致するように、決済端末のスプーフドメイン名を計算するように構成される。一実施形態では、決済端末の調整されたIPアドレスおよびリスニングポートを受信した後に、システムは、決済端末に割り当てられたドメイン名のルートを、すべての小数点を取り除いた決済端末の調整されたIPアドレスと組み合わせることによって、決済端末のスプーフドメイン名を計算する(例えば、192.168.1.100のIPアドレスおよびpaymentterminal.comのルートドメイン名が、192168001100.paymentterminal.comに変換される)。特定の実施形態では、システムは、英数字の任意の適切な組み合わせを使用することによって、決済端末のスプーフドメイン名を計算してもよい。
【0059】
ステップ312において、JavaScript SDKは、ステップ310で上記した計算されたスプーフドメイン名を使用して、決済端末とのセキュアな接続要求を開始する。様々な実施形態において、セキュアな接続要求は、TCP/IPプロトコルを用いて開始される。少なくとも1つの実施形態では、セキュアな接続要求は、HTTPS要求である。理解されるように、ステップ312において開始されたセキュアな接続要求は、ルートドメイン名(例えば、paymentterminal.com)のドメイン登録会社(例えば、GoDaddy.com(登録商標))にルーティングされる。様々な実施形態では、ドメイン登録会社は、ここでさらに説明するように、カスタムDNSサービスを指すAネーム・サーバ・レコードを以前に作成したマーチャントに基づいて、要求をカスタムDNSサービスにルーティングする。この説明のために、Aネーム・サーバ・レコードは、サブドメインを1組のネームサーバに委任するように用いられ、複数のドメイン名を対応するIPアドレスにマッピングすることに特化している。したがって、この例では、ルートドメイン「paymentterminal.com」を含む任意のウェブアドレスが、カスタムDNSサービスにルーティングされ、ウェブアドレスに対応するIPアドレスが検索され得る。
【0060】
ステップ314において、JavaScript SDKは、カスタムDNSサービスから決済端末のIPアドレスを受信する(例えば、カスタムDNSサービスは、192168001100.paymentterminal.comを受信し、192.168.1.100を返す)。一実施形態では、システムは、決済端末のIPアドレスを一時的な記憶場所(例えば、キャッシュ)に格納するように構成される。
【0061】
ステップ316において、JavaScript SDKは、決済端末のIPアドレスを使用して決済端末に直接的に、ステップ312で開始されたセキュアな接続要求をルーティングするように構成される。
【0062】
様々な実施形態において、ステップ318において、マーチャント・ブラウザは、(幾つかの実施形態では、JavaScript SDKを用いて)決済端末のドメイン名をSSL証明書に割り当てられたドメイン名と照合することによって、決済端末のセキュリティ証明書を検証する。特定の実施形態では、決済端末のドメイン名がSSL証明書に割り当てられたドメイン名と一致する場合、セキュアなSSL「ハンドシェイク」が発生し、マーチャント・ブラウザと決済端末との間で通信の暗号化チャネルをオープンする(opened)。さまざまな実施形態において、セキュアなSSLハンドシェイクを取得すると、システムは、事前認証機関を使用して決済端末のセキュリティ証明書を検証し、提示されたSSL証明書を確認し、その真正性を検証する。
【0063】
例示的なIPレジストリプロセス
図4は、本開示の一実施形態に従った、例示的なIPレジストリプロセス400の例示的なフローチャートを例示する。様々な実施形態において、例示的なプロセスはステップ402で始まり、IPレジストリサービスは、セキュリティトークン(security token)を受信する。この説明の目的上、セキュリティトークンは、1回だけ使用する(single-use)ログインキーを生成するソフトウェア構成である。様々な実施形態では、セキュリティトークンは、システムが決済端末と通信できるように、決済端末へのアクセスを許可するように動作可能であってもよい。特定の実施形態では、セキュリティトークンは、決済端末、マーチャント・ブラウザ、またはシステムの他の動作可能に接続されたコンポーネントから受信し得る。
【0064】
ステップ404において、IPレジストリは、決済端末の構成情報を受信するように構成される。1つまたは複数の実施形態において、システムは、マーチャントから構成情報を受け取ってもよい。様々な実施形態では、システムは、決済端末、端末管理ソフトウェア、マーチャント・ブラウザ、その他のコンポーネントから構成情報を受信してもよい。特定の実施形態では、構成情報は、端末識別番号、シリアル番号、他の固有の識別子、MACアドレス、バージョン番号、デバイスタイプ、及び他の同様の情報を含み得る。1つまたは複数の実施形態において、構成情報は、ローカルデータベース及び/またはリモートデータベースに格納され得る。
【0065】
ステップ406において、IPレジストリは、決済端末から決済端末のIPアドレス及びリスニングポートを受信し、IPアドレス及びリスニングポートは、決済端末の登録情報とともに格納されるか、そうでなければ決済端末の登録情報と照合される。1つまたは複数の実施形態において、システムは、決済端末からIPアドレス及びリスニングポートを受信する。一実施形態では、システムは、ステップ402において取得されたセキュリティトークンで認証した後、決済端末からIPアドレスを受信する。特定の実施形態では、システムは、TMS、マーチャント・ブラウザ、または他の適切なコンポーネントからIPアドレス及びリスニングポートを受信し得る。一実施形態では、IPアドレス及びリスニングポートは、ローカルデータベースに格納され得る。別の実施形態では、IPアドレス及びリスニングポートは、リモートデータベースに格納されてもよい。
【0066】
ステップ408において、IPレジストリサービスは、ステップ406において受信した決済端末のIPアドレスに基づいて、決済端末の調整されたIPアドレスを計算するように構成される。1つまたは複数の実施形態において、ステップ406において受信したIPアドレスが12個の整数を含まない場合、IPアドレスの各小数点の前後の各部分に3つの整数が含まれるように、IPレジストリサービスは、受信したIPアドレスを調整する。様々な実施形態において、IPレジストリサービスは、3つの整数が各部分に含まれるまで、3つの整数を含まない各部分に左から右にゼロを追加することによって受信したIPアドレスを調整するように構成される(例えば、192.168.1.100のIPアドレスは、192.168.001.100に調整される)。
【0067】
ステップ410において、IPレジストリは、JavaScript SDK及び/またはマーチャント・ブラウザから決済端末の端末識別番号(または他の固有の識別子)を受信するように構成される。様々な実施形態において、ステップ412で、IPレジストリは、受信した端末識別番号を、受信した端末識別番号に関連付けられた決済端末に対して照合するように構成される。特定の実施形態では、端末識別番号は、対応する決済端末のIPアドレス、MACアドレス、及びリスニングポートとともにテーブルに格納される。1つまたは複数の実施形態では、システムは、データベースクエリ(database query)または他の適切な検索方法を実行して、受信した端末識別番号に関連付けられたIPアドレス及びリスニングポートを特定し得る。
【0068】
ステップ410において端末識別番号を受信したことに応答して、ステップ412において関連するIPアドレス及びリスニングポートを特定すると、様々な実施形態では、ステップ414において、IPレジストリは、ステップ408において計算された調整済みのIPアドレスを送信し、決済端末のリスニングポートをJavaScript SDK及び/またはマーチャント・ブラウザに送り返す。
【0069】
例示的なカスタムDNSサービスプロセス
次に図5を参照すると、本開示の一実施形態に従った、例示的なカスタムDNSサービスプロセス500の例示的なフローチャートが示されている。理解されるように、スプーフドメイン名(例えば、192168001100.paymentterminal.com)を用いて開始されたセキュアな接続要求は、ルートドメイン名(例えば、paymentterminal.com)のドメイン登録会社(例えば、GoDaddy.com(登録商標))にルーティングされる。特定の実施形態では、カスタムDNSサービスが、スプーフドメイン名のルーティング先を決定するように、ドメイン登録会社は、カスタムDNSサービスを指すAネーム・サーバ・レコードを以前に作成したマーチャントに基づいて、要求をカスタムDNSサービスにルーティングする。1つまたは複数の実施形態において、システムによってホストされるネームサーバは、スプーフドメイン名に基づいて、決済端末のIPアドレスを計算する。
【0070】
様々な実施形態では、例示的なプロセスはステップ502で始まり、DNSサービスは、JavaScript SDKから決済端末のスプーフドメイン名を受信するように構成される。様々な実施形態において、スプーフドメイン名は、文字、数字、または記号を含んでもよい。特定の実施形態において、スプーフドメイン名は、決済端末のIPアドレスに類似するパターンを含み得る。
【0071】
ステップ504において、DNSサービスは、システムのネームサーバに基づいて、決済端末のスプーフドメイン名を決済端末のIPアドレスに変換する。ネームサーバは、上述したように決済端末のドメイン名を決済端末のIPアドレスにマッピングする。本明細書において説明されるように、決済端末のIPアドレスは、スプーフドメイン名に含まれ得る。たとえば、IPアドレスはxxxであり、スプーフドメイン名はxxx.yyy.comであり得る。この例を続けて、システムは、ルートドメイン名(たとえば、yyy.com)を削除することによって、スプーフドメイン名(たとえば、xxx.yyy.com)をIPアドレス(たとえば、xxx)に変換する。特定の実施形態において、システムは、3つまたは4つの整数ごとなど、特定の間隔で区切り(例えば、小数、ピリオド、コロン、セミコロンなど)を追加し得る。
【0072】
ステップ508において、DNSサービスは、決済端末のIPアドレスをJavaScript SDKに送り返すように構成される。
DNSサービスプロセス500は、様々な実施形態において、マーチャント・ブラウザが決済端末に割り当てられたスプーフドメイン名を用いて決済端末を特定することを可能にするメカニズムを提供する。特定の実施形態では、DNSサービスプロセス500は、決済端末のSSL証明書に一致し且つ依然として決済端末にマッピングされているスプーフドメイン名を用いた、SaaSベンダーソフトウェアを実行するマーチャント・ブラウザと、決済端末との間のセキュアなTCP/IP接続を可能にする。
【0073】
1つまたは複数の実施形態において、DNSサービスは、上述したように決済端末のIPアドレスを計算する(例えば、DNSサービスは、任意のデータベースなどのIPアドレスを検索しない)。少なくとも1つの実施形態では、DNSサービス機能は、本明細書において説明されるIPレジストリサービスと組み合わされる。理解されるように、DNSサービスとIPレジストリサービスの機能が組み合わされる実施形態では、システムは、ドメイン名に追加された事前設定値に基づいて、決済端末のIPアドレスを検索し(look up)得る(例えば、事前設定値及びIPアドレスは、IPレジストリサービスの一部としてデータベースに格納されるため)。これらの実施形態では、決済端末のスプーフドメイン名は、ドメイン名に付けられる任意の適切な値(たとえば、固有の識別子+ドメイン名)を含み、システムは、決済端末の対応するIPアドレスを検索することによって、スプーフドメイン名を受信したときに決済端末のIPアドレスを返すことができる。
【0074】
代替実施形態
システムの代替実施形態は、幾つかの点で、上記した様々なコンポーネントに類似する特徴を備えてもよい。これらの代替実施形態の選択された特徴的な特徴を以下に説明する。
【0075】
追加のアプリケーション
電子キャッシュレジスタ用のSaaSアプリケーションに加えて、本開示は、顧客関係管理アプリケーション、ファイルおよびデータ共有アプリケーション、財務管理アプリケーション、メッセージングアプリケーション、および他の同様のソフトウェアアプリケーションを含むがこれらに限定されない、他の非互換ハードウェアデバイスへのセキュアな接続を必要とする他のSaaSアプリケーションを企画する。
【0076】
さらに、1つまたは複数の実施形態において、システムは、ソフトウェアコンポーネントおよび/またはミドルウェア、例えば、オペレーティングシステムまたはデータベースとアプリケーションとの間のブリッジとして機能するソフトウェアを含み得る。これらの実施形態では、ソフトウェアコンポーネントおよび/またはミドルウェアは、明細書において説明されるシステム(例えば、IPレジストリサービス及び/又はDNSサービス)と通信して、決済端末および他の「IoT(Internet of Things)」デバイスを含むが、これらに限定されない、様々なデバイスとのTCP/IPプロトコルを用いたセキュアな接続を生成し得る。ミドルウェアの複数の例は、トランザクション処理モニタ、リモートコール・プロシージャ、メッセージ・キュー、自動バックアップシステムなどを含むが、これらに限定されない。
【0077】
追加のハードウェアコンポーネント
この開示は、決済端末に限定されない。動的IPアドレスを使用し、そうでなければ非互換性のSaaSアプリケーションへのTCP/IPプロトコルを用いたセキュアな接続を必要とする他のハードウェアコンポーネントまたはデバイスが企画され、これには、バーコードスキャナ、スマートフォンおよび他のスマートデバイス、タブレットコンピュータ、デスクトップコンピュータ、ウェアラブルデバイス、データ取得デバイス、内部ネットワーク上のサーバ、および任意の他のブラウザ対応および/または「IoT(Internet of Things)」デバイスが含まれるが、これらに限定されない。理解されるように、システムは、ネットワーク接続された任意のデバイスを用いて機能し、特定の実施形態では、HTTPS APIを公開し得る。
【0078】
さらに、本開示は、デバイスの発見、および複数のブラウザ対応および/またはIoTデバイス間のおよびセキュアな接続を意図している。これらの実施形態では、IPレジストリサービスおよびDNSサービスはローカルネットワークにインストールされて、このようなデバイス間接続を可能にする。
【0079】
追加の側面
次に、本システム及び方法の様々な態様について説明する。以下の複数の態様のいずれかが、以下に記載される他の態様または本明細書に記載される特徴を組み込み、含むことができることは、当業者によって理解されるであろう。従って、以下の複数の態様は、態様の任意の組み合わせを含むと理解されるべきであり、以下に提示される組み合わせに限定されるべきではない。例えば、第2の態様は第1の態様のIPレジストリサービスを含むが、第16の態様、第1の態様、または第42の態様の特徴も含み得る。
【0080】
第1の態様に従った、様々な実施形態におけるシステム及び方法は、決済端末とマーチャント・コンピューティングシステムとの間のセキュアな通信を可能にするTCP/IPアーキテクチャを含み、TCP/IPアーキテクチャは、1つまたは複数のプロセッサを含むIPレジストリサービスであって、IPレジストリサービスは、ネットワークを介して決済端末及びマーチャント・ブラウザと動作可能に通信し、IPレジストリサービスは、決済端末から、決済端末に関連付けられたIPアドレス、ポート、固有の識別子を受信すること、マーチャント・ブラウザから、決済端末の固有の識別子を受信すること、固有の識別子を受信したことに応答して、マーチャント・ブラウザがIPアドレスおよびポートを用いてTCP/IPプロトコルで決済端末と通信できるように、決済端末のIPアドレスとポートをマーチャント・ブラウザに送信すること、を実行する、IPレジストリサービスと、DNS(domain name system)であって、決済端末のIPアドレスおよびルートドメイン名を含むウェブアドレスのDNSルックアップ要求をマーチャント・ブラウザから受信すること、ウェブアドレスのDNSルックアップ要求を受信したことに応答して、ルートドメイン名を削除することによって、ウェブアドレスを決済端末のIPアドレスに変換すること、マーチャント・ブラウザがHTTPSプロトコルを用いて決済端末と通信できるように、決済端末のIPアドレスをマーチャント・ブラウザに送信すること、を実行するDNSと、を備える。
【0081】
第2の態様に従った、第1の態様または任意の他の態様のTCP/IPアーキテクチャまたは方法において、DNSは、ルートドメイン名を除去し、IPアドレスを再フォーマットすることによって、ウェブアドレスを決済端末のIPアドレスに変換する。
【0082】
第3の態様に従った、第2の態様または任意の他の態様のTCP/IPアーキテクチャまたは方法において、DNSは、IPアドレスに小数点を挿入することによって、IPアドレスを再フォーマットする。
【0083】
第4の態様に従った、第3の態様または任意の他の態様のTCP/IPアーキテクチャまたは方法において、ウェブアドレスは、調整されたフォーマットのIPアドレスを含む。
【0084】
第5の態様に従った、第4の態様または任意の他の態様のTCP/IPアーキテクチャまたは方法において、IPアドレスの調整されたフォーマットは、任意の小数点のないIPアドレスを含む。
【0085】
第6の態様に従った、第5の態様または任意の他の態様のTCP/IPアーキテクチャまたは方法において、IPレジストリサービスは、決済端末のIPアドレスをルートドメイン名と組み合わせることによって、ウェブアドレスを作成する。
【0086】
第7の態様に従った、第6の態様または任意の他の態様のTCP/IPアーキテクチャまたは方法において、マーチャント・ブラウザは、決済端末に関連付けられたセキュリティ証明書およびウェブアドレスの真正性の検証を認証局に要求する。
【0087】
第8の態様に従った、第7の態様または任意の他の態様のTCP/IPアーキテクチャまたは方法において、マーチャント・ブラウザは、セキュリティ証明書の真正性の検証を受信すると、HTTPSプロトコルを用いて決済端末と通信する。
【0088】
第9の態様に従った、第8の態様または任意の他の態様のTCP/IPアーキテクチャまたは方法において、IPレジストリサービスおよびDNSは、動作可能に接続されている。
【0089】
第10の態様に従った、第9の態様または任意の他の態様のTCP/IPアーキテクチャまたは方法において、決済処理システムをさらに備える。
第11の態様に従った、第10の態様または任意の他の態様のTCP/IPアーキテクチャまたは方法において、決済処理システムは、暗号化された決済ペイロードを決済端末から受信すること、暗号化された決済ペイロードが侵害されたかどうかを判定すること、決済ペイロードが侵害されていないと判定すると、暗号化された決済ペイロードを復号化すること、を実行する。
【0090】
第12の態様に従った、様々な実施形態におけるシステム及び方法は、コンピュータによって実行される方法を含み、該方法は、IPレジストリサービスにおいて、決済端末から、決済端末に関連付けられたIPアドレス、ポート、固有の識別子を受信すること、IPレジストリサービスにおいて、マーチャント・ブラウザから、決済端末に関連付けられた固有の識別子を受信すること、固有の識別子を受信したことに応答して、マーチャント・ブラウザがIPアドレスおよびポートを用いてTCP/IPプロトコルで決済端末と通信できるように、決済端末のIPアドレスおよびポートをマーチャント・ブラウザに送信すること、DNS(domain name system)において、決済端末のIPアドレスおよびルートドメイン名を含むウェブアドレスのDNSルックアップ要求をマーチャント・ブラウザから受信すること、ウェブアドレスのDNSルックアップ要求を受信したことに応答して、DNSにおいて、ルートドメイン名を削除することによって、ウェブアドレスを決済端末のIPアドレスに変換すること、DNSが、マーチャント・ブラウザがHTTPSプロトコルを用いて決済端末と通信できるように、決済端末のIPアドレスをマーチャント・ブラウザに送信すること、を備える。
【0091】
第13の態様に従った、第12の態様または任意の他の態様のシステムまたは方法において、DNSは、ルートドメイン名を除去し、IPアドレスを再フォーマットすることによって、ウェブアドレスを決済端末のIPアドレスに変換する。
【0092】
第14の態様に従った、第13の態様または任意の他の態様のシステムまたは方法において、DNSは、IPアドレスに小数点またはコロンを挿入することによって、IPアドレスを再フォーマットする。
【0093】
第15の態様に従った、第14の態様または任意の他の態様のシステムまたは方法において、ウェブアドレスは、調整されたフォーマットのIPアドレスを含む。
第16の態様に従った、第15の態様または任意の他の態様のシステムまたは方法において、IPアドレスの調整されたフォーマットは、任意の小数点またはコロンのないIPアドレスを含む。
【0094】
第17の態様に従った、第16の態様または任意の他の態様のシステムまたは方法において、IPレジストリサービスは、決済端末のIPアドレスをルートドメイン名と組み合わせることによって、ウェブアドレスを作成する。
【0095】
第18の態様に従った、第17の態様または任意の他の態様のシステムまたは方法において、マーチャント・ブラウザは、決済端末に関連付けられたセキュリティ証明書およびウェブアドレスの真正性の検証を認証局に要求する。
【0096】
第19の態様に従った、第18の態様または任意の他の態様のシステムまたは方法において、マーチャント・ブラウザは、セキュリティ証明書の真正性の検証を受信すると、HTTPSプロトコルを用いて決済端末と通信する。
【0097】
第20の態様に従った、第19の態様または任意の他の態様のシステムまたは方法において、IPレジストリサービスおよびDNSは、動作可能に接続されている。
第21の態様に従った、様々な実施形態におけるシステム及び方法は、HTTPS/TLS対応デバイスとローカルネットワーク内のソフトウェアコンポーネントとの間のセキュアな通信を可能にするTCP/IPアーキテクチャを含み、該TCP/IPアーキテクチャは、1つまたは複数のプロセッサを含むIPレジストリサービスであって、IPレジストリサービスは、ネットワークを介してHTTPS/TLS対応デバイスおよびソフトウェアコンポーネントと動作可能に通信し、IPレジストリサービスは、HTTPS/TLS対応デバイスから、HTTPS/TLS対応デバイスに関連付けられたIPアドレス、ポート、固有の識別子を受信すること、ソフトウェアコンポーネントから、HTTPS/TLS対応デバイスの固有の識別子を受信すること、固有の識別子を受信したことに応答して、ソフトウェアコンポーネントがIPアドレス及びポートを用いてTCP/IPプロトコルでHTTPS/TLS対応デバイスと通信できるように、HTTPS/TLS対応デバイスのIPアドレス及びポートをソフトウェアコンポーネントに送信すること、を実行する、IPレジストリサービスと、DNS(domain name system)であって、HTTPS/TLS対応デバイスのIPアドレスおよびルートドメイン名を含むウェブアドレスのDNSルックアップ要求をソフトウェアコンポーネントから受信すること、ウェブアドレスのDNSルックアップ要求を受信したことに応答して、ルートドメイン名を削除することによって、ウェブアドレスをHTTPS/TLS対応デバイスのIPアドレスに変換すること、ソフトウェアコンポーネントがHTTPSプロトコルでHTTPS/TLS対応デバイスと通信できるように、HTTPS/TLS対応デバイスのIPアドレスをソフトウェアコンポーネントに送信すること、を実行するDNSと、を備える。
【0098】
第22の態様に従った、第21の態様または任意の他の態様のTCP/IPアーキテクチャまたは方法において、ソフトウェアコンポーネントは、ブラウザと通信するミドルウェアである。
【0099】
第23の態様に従った、第22の態様または任意の他の態様のTCP/IPアーキテクチャまたは方法において、ソフトウェアコンポーネントは、ブラウザにプラグインとしてインストールされたJavaScript SDKである。
【0100】
第24の態様に従った、第23の態様または任意の他の態様のTCP/IPアーキテクチャまたは方法において、ソフトウェアコンポーネントは、1つまたは複数のIoTデバイスと接続するためのサードパーティソフトウェアである。
【0101】
第25の態様に従った、様々な実施形態におけるシステム及び方法は、方法を含み、該方法は、HTTPS/TLS対応デバイスから、HTTPS/TLS対応デバイスに関連付けられたIPアドレス、ポート、固有の識別子を受信すること、ソフトウェアコンポーネントから、HTTPS/TLS対応デバイスの固有の識別子を受信すること、固有の識別子を受信したことに応答して、ブラウザがIPアドレス及びポートを用いてTCP/IPプロトコルでHTTPS/TLS対応デバイスと通信できるように、HTTPS/TLS対応デバイスのIPアドレス及びポートをソフトウェアコンポーネントに送信すること、HTTPS/TLS対応デバイスのIPアドレスおよびルートドメイン名を含むウェブアドレスのDNSルックアップ要求をブラウザから受信すること、ウェブアドレスのDNSルックアップ要求を受信したことに応答して、ルートドメイン名を削除することによって、ウェブアドレスをHTTPS/TLS対応デバイスのIPアドレスに変換すること、ソフトウェアコンポーネントがHTTPSプロトコルでHTTPS/TLS対応デバイスと通信できるように、HTTPS/TLS対応デバイスのIPアドレスをブラウザに送信すること、を備える。
【0102】
第26の態様に従った、第25の態様または任意の他の態様のシステムまたは方法において、ソフトウェアコンポーネントは、ブラウザと通信するミドルウェアである。
第27の態様に従った、第26の態様または任意の他の態様のシステムまたは方法において、ソフトウェアコンポーネントは、ブラウザ上にプラグインとしてインストールされたJavaScript SDKである。
【0103】
第28の態様に従った、第27の態様または任意の他の態様のシステムまたは方法において、ソフトウェアコンポーネントは、1つまたは複数のIoTデバイスと接続するためのサードパーティソフトウェアである。
【0104】
第29の態様に従った、様々な実施形態におけるシステムおよび方法は、システムを含み、該システムは、IPレジストリサービスを含み、IPレジストリサービスは、ブラウザ対応決済端末およびマーチャント・ブラウザと動作可能に通信し、IPレジストリサービスは、ブラウザ対応決済端末から、ブラウザ対応決済端末のローカルIPアドレス、ポート、シリアル番号を受信すること、マーチャント・ブラウザから、ブラウザ対応決済端末のシリアル番号を受信すること、シリアル番号を受信したことに応答して、マーチャント・ブラウザがIPアドレス及びポートを用いてTCP/IPプロトコルでブラウザ対応決済端末と通信できるように、ブラウザ対応決済端末のIPアドレス及びポートをマーチャント・ブラウザに送信すること、を行うように構成される。
【0105】
第30の態様に従った、様々な実施形態におけるシステムおよび方法は、サーバを含み、該サーバは、DNS(domain name system)を含み、該DNSは、決済端末のIPアドレスを含むウェブアドレスのDNSルックアップ要求をマーチャント・ブラウザから受信することであって、マーチャント・ブラウザは、決済端末のIPアドレスをウェブアドレスに変換する、受信すること、ウェブアドレスのDNSルックアップ要求を受信したことに応答して、ウェブアドレスを決済端末のIPアドレスに変換すること、決済端末のIPアドレスをマーチャント・ブラウザのブラウザに送信すること、を実行する。
【0106】
第31の態様に従った、様々な実施形態におけるシステムおよび方法は、システムを含み、該システムは、IPレジストリサービスを含むコンピュータサーバであって、IPレジストリサービスは、ブラウザ対応決済端末及びマーチャント・ブラウザと動作可能に通信し、IPレジストリサービスは、ブラウザ対応決済端末から、ブラウザ対応決済端末のローカルIPアドレス、ポート、シリアル番号を受信すること、マーチャント・ブラウザから、ブラウザ対応決済端末のシリアル番号を受信すること、シリアル番号を受信したことに応答して、マーチャント・ブラウザがIPアドレス及びポートを用いてTCP/IPプロトコルでブラウザ対応決済端末と通信できるように、ブラウザ対応決済端末のIPアドレス及びポートをマーチャント・ブラウザに送信すること、を行うように構成される、コンピュータサーバと、DNS(domain name system)であって、決済端末のIPアドレスを含むウェブアドレスのDNSルックアップ要求をマーチャント・ブラウザから受信することであって、マーチャント・ブラウザは、決済端末のIPアドレスをウェブアドレスに変換する、受信すること、ウェブアドレスのDNSルックアップ要求を受信したことに応答して、ウェブアドレスを決済端末のIPアドレスに変換すること、決済端末のIPアドレスをマーチャント・ブラウザのブラウザに送信すること、を実行するDNSと、を含む。
【0107】
第32の態様に従った、様々な実施形態におけるシステムおよび方法は、システムを含み、該システムは、マーチャント・ブラウザおよびIPレジストリサービスに動作可能に接続された実行可能なコンピュータプログラムと、DNSサービスと、決済端末と、を含み、実行可能なコンピュータプログラムは、決済端末に関連付けられた固有の識別子を受信すること、固有の識別子をIPレジストリサービスに送信すること、IPレジストリサービスに決済端末のIPアドレス及びリスニングポートを要求すること、IPレジストリサービスから決済端末のIPアドレス及びリスニングポートを受信すること、IPレジストリサービスから決済端末のIPアドレス及びリスニングを受信すると、決済端末のスプーフドメイン名を計算すること、決済端末へのセキュアな接続要求を開始すること、DNSサービスから決済端末のIPアドレスを受信すること、DNSサービスから決済端末のIPアドレスを受信すると、セキュアな接続要求を決済端末に直接ルーティングすること、決済端末のセキュリティ証明書を検証すること、決済端末に接続すること、を実行するように構成される。
【0108】
第33の態様に従った、第32の態様または任意の他の態様のシステムまたは方法において、マーチャント・ブラウザは、電子キャッシュレジスタである。
第34の態様に従った、第33の態様または任意の他の態様のシステムまたは方法において、実行可能なコンピュータコードは、無線を介して決済端末に動作可能に接続される。
【0109】
第35の態様に従った、第34の態様または任意の他の態様のシステムまたは方法において、無線は、ブルートゥースデバイスを含む。
第36の態様に従った、第35の態様または任意の他の態様のシステムまたは方法において、実行可能なコンピュータプログラムは、マーチャント・ブラウザへのプラグインとしてインストールされたJavaScript SDKである。
【0110】
第37の態様に従った、第36の態様または任意の他の態様のシステムまたは方法において、実行可能なコンピュータプログラムは、マーチャント・ブラウザ、IPレジストリサービス、DNSサービス、および決済端末に通信可能に接続されるミドルウェアである。
【0111】
第38の態様に従った、第37の態様または任意の他の態様のシステムまたは方法において、決済端末へのセキュアな接続要求は、トランスポート層セキュリティ(「TLS(transport layer security)」)プロトコルを用いて開始される。
【0112】
第39の態様に従った、様々な実施形態におけるシステムおよび方法は、方法を含み、該方法は、決済端末に関連付けられた固有の識別子を受信すること、固有の識別子をIPレジストリサービスに送信すること、IPレジストリサービスに決済端末のIPアドレス及びリスニングポートを要求すること、IPレジストリサービスから決済端末のIPアドレス及びリスニングポートを受信すること、IPレジストリサービスから決済端末のIPアドレス及びリスニングを受信すると、決済端末のスプーフドメイン名を計算すること、決済端末へのセキュアな接続要求を開始すること、DNSサービスから決済端末のIPアドレスを受信すること、DNSサービスから決済端末のIPアドレスを受信すると、セキュアな接続要求を決済端末に直接ルーティングすること、決済端末のセキュリティ証明書を検証すること、決済端末に接続すること、を含む。
【0113】
第40の態様に従った、様々な実施形態におけるシステムおよび方法は、システムを含み、該システムは、マーチャント・ブラウザおよびIPレジストリサービスに動作可能に接続された実行可能なコンピュータプログラムと、DNSサービスと、決済端末と、を含み、実行可能なコンピュータプログラムは、決済端末に関連付けられた固有の識別子を受信すること、固有の識別子をIPレジストリサービスに送信すること、IPレジストリサービスに決済端末のIPアドレス及びリスニングポートを要求すること、IPレジストリサービスから決済端末のIPアドレス、リスニングポートおよびスプーフドメイン名を受信すること、決済端末へのセキュアな接続要求を開始すること、DNSサービスから決済端末のIPアドレスを受信すること、DNSサービスから決済端末のIPアドレスを受信すると、セキュアな接続要求を決済端末に直接ルーティングすること、決済端末のセキュリティ証明書を検証すること、決済端末に接続すること、を実行するように構成される。
【0114】
第41の態様に従った、様々な実施形態におけるシステムおよび方法は、システムを含み、該システムは、マーチャント・ブラウザおよびIPレジストリサービスに動作可能に接続された実行可能なコンピュータプログラムと、DNSサービスと、決済端末と、を含み、実行可能なコンピュータプログラムは、決済端末に関連付けられた固有の識別子を受信すること、固有の識別子をIPレジストリサービスに送信すること、IPレジストリサービスに決済端末のIPアドレス及びリスニングポートを要求すること、IPレジストリサービスから決済端末のIPアドレス、リスニングポートおよびスプーフドメイン名を受信すること、決済端末のIPアドレスおよびリスニングポートをIPレジストリサービスから受信すると、マーチャント・ブラウザがIPアドレス、リスニングポートおよびスプーフドメイン名を用いてHTTPSプロトコルで決済端末に接続できるように、決済端末のIPアドレス、リスニングポートおよびスプーフドメイン名をマーチャント・ブラウザに送信すること、を実行するように構成される。
【0115】
第42の態様に従った、様々な実施形態におけるシステムおよび方法は、方法を含み、該方法は、決済端末に関連付けられた固有の識別子を受信すること、固有の識別子をIPレジストリサービスに送信すること、IPレジストリサービスに決済端末のIPアドレス及びリスニングポートを要求すること、IPレジストリサービスから決済端末のIPアドレス、リスニングポートおよびスプーフドメイン名を受信すること、決済端末のIPアドレスおよびリスニングポートをIPレジストリサービスから受信すると、マーチャント・ブラウザがIPアドレス、リスニングポートおよびスプーフドメイン名を用いてHTTPSプロトコルで決済端末に接続できるように、決済端末のIPアドレス、リスニングポートおよびスプーフドメイン名をマーチャント・ブラウザに送信すること、を実行するように構成される。
【0116】
結論
本開示の態様、特徴、及び利点は、本明細書において開示される情報から明らかになるであろう。開示されたシステム及び方法に対する変更及び修正は、開示された新規な概念の精神及び範囲から逸脱することなく実施することができる。
【0117】
それでもなお、本開示の範囲の限定は参照により援用される証拠物件又は出願において開示された情報によって意図されないことが理解されるであろう。説明または例示された実施形態の変更及びさらなる修正、及び明細書に例示された本開示の原理のさらなる適用は、本開示が関連する当業者によって通常行われるように企図される。特定の企業(例えば、PAX(登録商標))によって製造された様々なブランド名とデバイスが、(証拠物件を含む)本出願に含まれている。理解されるように、これらのデバイスは例示にすぎず、同様の機能を備えた他のデバイスは、本明細書において開示されるシステム及び方法の一部として企図される。
【0118】
例示的な実施形態の前述した説明は、単に例示および説明の目的で提示されており、網羅的であること、または開示された正確な形態に本システムおよび方法を限定することは意図されていない。上記した教示に照らして、多くの修正及び変更が可能である。
【0119】
当業者が本開示及び種々の実施形態を使用することを可能にするように、本開示の原理及びそれらの実際の用途を説明するために、実施形態を選んで記載し、種々の変更形態が、意図される特定の使用に適している。本開示の主旨及び範囲から逸脱することなく、本開示が属する分野の当業者には代替的な実施形態が明らかであろう。したがって、本開示の範囲は、上記の記載及び上記の記載において記載されている例示的な実施形態ではなく、添付の特許請求の範囲によって規定される。
図1A
図1B
図1C
図1D
図1E
図1F
図1G
図1H
図1I
図2
図3
図4
図5