(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-01
(45)【発行日】2024-03-11
(54)【発明の名称】接続された注出マシンからのテレメトリデータをパラレル及びスケーラブル処理するためのシステム及び方法
(51)【国際特許分類】
B67D 1/08 20060101AFI20240304BHJP
H04L 67/02 20220101ALI20240304BHJP
H04L 41/045 20220101ALI20240304BHJP
【FI】
B67D1/08 Z
H04L67/02
H04L41/045
【外国語出願】
(21)【出願番号】P 2021181020
(22)【出願日】2021-11-05
(62)【分割の表示】P 2018560182の分割
【原出願日】2017-04-28
【審査請求日】2021-12-03
(32)【優先日】2016-05-26
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】591235706
【氏名又は名称】ペプシコ・インク
(74)【代理人】
【識別番号】100106518
【氏名又は名称】松谷 道子
(72)【発明者】
【氏名】ジョージ・シュー・ゴン
【審査官】西山 智宏
(56)【参考文献】
【文献】米国特許第08504691(US,B1)
【文献】米国特許出願公開第2015/0019009(US,A1)
【文献】特表2008-531162(JP,A)
【文献】米国特許出願公開第2015/0315008(US,A1)
【文献】特表2015-519262(JP,A)
【文献】米国特許出願公開第2003/0055589(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B67D 1/08
H04L 67/02
H04L 41/045
(57)【特許請求の範囲】
【請求項1】
アドミニストレータコントローラであって、
(a) 複数のディスペンサマシンからコンピュータネットワークを介して
複数のウェブサービスメッセージを受信し、
前記コンピュータネットワークを介して受信した前記
複数のウェブサービスメッセージがハートビートメッセージと異なることを判断し、
前記
複数のウェブサービスメッセージが前記ハートビートメッセージと異なるという判断に基づいて、前記
複数のウェブサービスメッセージの暗号化されたテレメトリデータを暗号解読するように構成されたアドミニストレータウェブサービスゲートウェイと、
(b) 前記
複数のウェブサービスメッセージを保存するように構成された複数のキューであって、前記複数のキューの数が、前記
複数のディスペンサマシンの数より少ない、複数のキュー
と、
複数のスレッドのうちの異なる
一つを前記複数のキューの各々に割り当て、前記複数の
キューに保存された前記
複数のウェブサービスメッセージに包含される暗号解読されたテレメトリデータを処理するように構成されたアドミニストレータウェブサービスプロバイダと、
を備えるメッセージキューアとを有する、
アドミニストレータコントローラ。
【請求項2】
前記メッセージキューアは
マッパーを含み、
前記マッパーは、前記
複数のウェブサービスメッセージ
のうちの一つウェブサービスメッセージが送信された
前記複数のディスペンサマシン
のそれぞれのディスペンサマシンに基づいて、前記
複数のウェブ
サービスメッセージのうちの
前記一つのウェブサービスメッセージを前記複数のキューのうちの
一つのキューに配置するように
構成されている、請求項1に記載のアドミニストレータコントローラ。
【請求項3】
前記マッパーは、前記ウェブサービスメッセージ内のディスペンサマシン識別子
に対してハッシュ
関数を実行することによって、前記ウェブサービスメッセージを前記複数のキューのうちの前記
一つのキューに配置
してハッシュ値を生成するように構成され、
前記ハッシュ値が、前記複数のキューのうちの前記
一つのキューに対応する、請求項2に記載のアドミニストレータコントローラ。
【請求項4】
前記マッパーは、前記ディスペンサマシンにおいて前記ウェブサービスメッセージがいつ生成されたかに基づいて、前記ウェブサービスメッセージを前記複数のキューのうちの前記
一つのキューに配置するように更に構成されている、請求項2に記載のアドミニストレータコントローラ。
【請求項5】
前記複数のスレッドが、前記暗号解読されたテレメトリデータをデータベース中に配置することにより
、前記複数のキュー内に保存された前記
複数のウェブサービスメッセージ内に包含される前記暗号解読されたテレメトリデータを処理するように構成されている、請求項1に記載のアドミニストレータコントローラ。
【請求項6】
前記複数のスレッドが、前記
複数のディスペンサマシンへの材料の配給、又は前記
複数のディスペンサマシンの保守を支援するために、前記複数のキュー内に保存された前記
複数のウェブサービスメッセージ内に包含される前記暗号解読されたテレメトリデータを処理するように構成されている、請求項1に記載のアドミニストレータコントローラ。
【請求項7】
前記複数のスレッドが、2つ以上の中央処理装置(CPU)コア上で実行するように構成されている、請求項1に記載のアドミニストレータコントローラ。
【請求項8】
複数のディスペンサマシンからコンピュータネットワークを介して
複数のウェブサービスメッセージを受信し、
前記コンピュータネットワークを介して受信された前記
複数のウェブサービスメッセージがハートビートメッセージと異なると判断し、
前記
複数のウェブサービスメッセージが前記ハートビートメッセージと異なるという判断に基づいて、前記
複数のウェブサービスメッセージにおける暗号化されたテレメトリデータを暗号解読し、
前記
複数のウェブサービスメッセージを、前記
複数のディスペンサマシンの数よりも少ない数の複数のキューに格納し、
前記複数のキュー内の前記
複数のウェブサービスメッセージ内に包含される前記暗号解読されたテレメトリデータを処理するために、複数のスレッドのうちの
異なる一つを前記複数のキューの各々に割り当てる、方法。
【請求項9】
前記
複数のウェブサービスメッセージが送信された前記複数のディスペンサマシン
のそれぞれのディスペンサマシンに基づいて、前記
複数のウェブサービスメッセージ
のうちの一つのウェブサービスメッセージを前記複数のキューのうちの
一つのキューに配置する、請求項
8に記載の方法。
【請求項10】
前記
一つのウェブサービスメッセージを前記複数のキューのうちの
前記一つのキューに配置することが、前記
一つのウェブサービスメッセージ内のディスペンサマシン識別子
に対してハッシュ関数を実行してハッシュ値を生成することを含み、
前記ハッシュ値が、前記複数のキューのうちの前記
一つのキューに対応する、請求項9に記載の方法。
【請求項11】
前記
一つのウェブサービスメッセージを前記複数のキューのうちの前記
一つのキューに配置することは、
前記ディスペンサマシンによって前記複数のキューのうちの前記一つのキューにおいて生成された他の複数のウェブサービスメッセージに対して、前記ディスペンサマシンにおいて前記
一つのウェブサービスメッセージがいつ生成されたかに基づいて、前記複数のキューの
うちの前記一つ
のキューに前記
一つのウェブサービスメッセージを配置する
ことを含み、請求項9に記載の方法。
【請求項12】
前記複数のスレッドが、前記暗号解読されたテレメトリデータをデータベースの中に配置することによって、前記複数のキュー内の前記
複数のウェブサービスメッセージ内に包含される前記暗号解読されたテレメトリデータを処理するように構成されている、請求項8に記載の方法。
【請求項13】
前記複数のスレッドが、
前記複数のディスペンサマシンへの材料の配給、又は前記
複数のディスペンサマシンの保守を支援するために、前記複数のキュー内の前記
複数のウェブサービスメッセージ内に包含される前記暗号解読されたテレメトリデータを処理するように構成されている、請求項8に記載の方法。
【請求項14】
前記複数のスレッドが、2つ以上の中央処理装置(CPU)コア上で実行するように構成されている、請求項8に記載の方法。
【請求項15】
非一時的なコンピュータが読み取り可能な媒体であって、
前記媒体は前記媒体内に格納された指示を含み、
前記指示は少なくとも一つのコンピュータデバイスによって実行されると、前記少なくとも一つのコンピュータデバイスに、
複数のディスペンサマシンからコンピュータネットワークを介して
複数のウェブサービスメッセージを受信すること、
前記コンピュータネットワークを介して受信された前記
複数のウェブサービスメッセージがハートビートメッセージと異なると判断すること、
前記
複数のウェブサービスメッセージが前記ハートビートメッセージと異なるという判断に基づいて、前記
複数のウェブサービスメッセージにおける暗号化されたテレメトリデータを暗号解読すること、
前記
複数のウェブサービスメッセージを、前記
複数のディスペンサマシンの数よりも少ない数の複数のキューに格納すること、
前記複数のキュー内の
前記複数のウェブサービスメッセージ内に包含される
暗号解読されたテレメトリデータを処理するために、複数のスレッドのうちの
異なる一つのスレッドを前記複数のキューの各々に割り当てること、を含む処理を実行させる、非一時的なコンピュータが読み取り可能な媒体。
【請求項16】
前記複数のウェブサービスメッセージのうちの一つのウェブサービスメッセージを配置することであって、
前記一つのウェブサービスメッセージが送信された、前記複数のディスペンサマシンのそれぞれのディスペンサマシンに基づいて、
前記複数のウェブサービスメッセージのうちの前記一つのウェブサービスメッセージを前記複数のキューのうちの
一つのキューに配置する、請求項15に記載の非一時的なコンピュータが読み取り可能な媒体。
【請求項17】
前記
一つのウェブサービスメッセージを前記複数のキューのうちの前記
一つのキューに配置することは、
前記
一つのウェブサービスメッセージ内のディスペンサマシン識別子
に対してハッシュ関数を実行してハッシュ値を生成することを含み、
前記ハッシュ値が、前記複数のキューのうちの前記
一つのキューに対応する、請求項16に記載の非一時的なコンピュータが読み取り可能な媒体。
【請求項18】
前記
一つのウェブサービスメッセージを前記複数のキューのうちの前記
一つのキューに配置することは、
前記
一つのディスペンサマシンにおいて前記
一つのウェブサービスメッセージがいつ生成されたかに基づいて、前記複数のキューの
うちの前記一つのキューに前記
一つのウェブサービスメッセージを配置する
ことを含み、請求項16に記載の非一時的なコンピュータが読み取り可能な媒体。
【請求項19】
前記複数のスレッドが、前記テレメトリデータをデータベースの中に配置することによって、前記複数のキュー内の前記
複数のウェブサービスメッセージ内に包含される前記暗号解読されたテレメトリデータを処理するように構成されている、請求項15に記載の非一時的なコンピュータが読み取り可能な媒体。
【請求項20】
前記複数のスレッドが、
前記複数のディスペンサマシンへの材料の配給、又は前記
複数のディスペンサマシンの保守を支援するために、前記複数のキュー内の前記
複数のウェブサービスメッセージ内に包含される前記暗号解読されたテレメトリデータを処理するように構成されている、請求項15に記載の非一時的なコンピュータが読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【0001】
記載される実施形態は、概して、接続された注出マシンを含む接続されたマシンに関する。
【背景技術】
【0002】
飲料ディスペンサは、レストラン、カフェテリア、劇場、並びに他の娯楽及び/又は食品サービス会場などの様々な場所で顧客に飲料を注出するのに使用される。従来の飲料ディスペンサは、注出可能な限られた数の飲料タイプ(例えば、6~10タイプ)を提供し、高度な特徴を何ら提供しない。より新規な飲料ディスペンサは、主に、これらのディスペンサが注出ヘッド毎に1つ又は2つの飲料タイプを提供するということにもはや機械的に限定されないという事実により、実質的により多く数の飲料タイプ及び組み合わせを提供することができる。例えば、より新規な飲料ディスペンサは、単一の注出ヘッドを使用して、最大1000種の異なる飲料タイプ及び組み合わせを提供することができる。
【0003】
組み合わせとは、自動的に混合され、単一の注出ヘッドから注出され得る、提供される飲料タイプの混合物を指し、これは、より新規な飲料ディスペンサにより提供される1つの高度な特徴を表す。注出される組み合わせは、例えば、飲料ディスペンサにおいて顧客が選択した、提供される飲料タイプの個人的な組み合わせ、又は飲料ディスペンサにおいて、選択肢として顧客が利用可能な予め決められたいくつかの組み合わせのうちの1つとすることができる。
【0004】
利用可能な飲料選択肢の数、及び他の革新的な特徴に関して高度化が進むに従い、会場のオーナー及び/又は操作者が、高度な飲料ディスペンサをコンピュータネットワークを介してアドミニストレータシステムに接続し、その高度な飲料ディスペンサがアドミニストレータシステムにテレメトリデータを提供することを可能にすることが望ましい場合がある。テレメトリデータは、例えば、消費量(例えば、高度な飲料ディスペンサにおいて消費される各飲料タイプ及び組み合わせの量)、並びに状態(例えば、高度な飲料ディスペンサにおける原材料及び/又は供給物の現在の量)に関する高度な飲料ディスペンサにおいて収集されるデータを含むことができる。このアドミニストレータシステムは、テレメトリデータを使用して、例えば、高度な飲料ディスペンサに関連する操作、保守、及び/又は全体的な物流管理を向上させることができる。
【0005】
更に、同じ理由で、缶/瓶入り飲料、軽食、及び/又は他の品物を販売するマシンなどの他のタイプのディスペンサマシンを、コンピュータネットワークを介してアドミニストレータシステムに接続することが更に望ましい場合がある。これらのディスペンサマシンは、自動販売機と呼ばれることが多い。
【図面の簡単な説明】
【0006】
本明細書中に組み込まれ、本明細書の一部を形成する添付図面は、本開示を例示し、説明と共に本開示の原理を説明し、かつ関連技術における熟練者が本開示を作製し、使用することを可能にする役割を更に果たす。
【0007】
【
図1】本開示の実施形態に基づいた、飲料ディスペンサの正面斜視図である。
【0008】
【
図2】本開示の実施形態に基づいた、飲料ディスペンサのブロック図である。
【0009】
【
図3】本開示の実施形態に基づいた、コンピュータネットワークを介してテレメトリデータを提供するためのシステムを示す図である。
【0010】
【
図4】本開示の実施形態に基づいた、コンピュータネットワークを介してテレメトリデータをセキュアに提供するためのシステムを示す図である。
【0011】
【
図5】本開示の実施形態に基づいた、テレメトリデータを包含するウェブサービス要求メッセージを収集し、コンピュータネットワークを介してアドミニストレータコントローラにセキュアに送信するための方法のフローチャートである。
【0012】
【
図6】本開示の実施形態に基づいた、ハートビートメッセージを生成し、コンピュータネットワークを介してアドミニストレータコントローラに送信するための方法のフローチャートである。
【0013】
【
図7】本開示の実施形態に基づいた、テレメトリデータを包含するウェブサービスメッセージをディスペンサコントローラからセキュアに受信及び処理するための方法のフローチャートである。
【0014】
【
図8】本開示の実施形態に基づいた、テレメトリデータを包含するメッセージをパラレル及びスケーラブル処理するためのアドミニストレータコントローラを例示する図である。
【0015】
【
図9】本開示の実施形態に基づいた、ウェブサービスメッセージをディスペンサコントローラから受信及び処理するための方法のフローチャートを例示する図である。
【0016】
【
図10】本開示の態様を実施するのに使用されることができる一例のコンピュータシステムのブロック図である。
【0017】
本開示は、添付図面を参照して説明される。構成要素が最初に現れた図面では、対応する参照番号中の左端の数字(複数可)によって、代表して表示されている。
【発明を実施するための形態】
【0018】
本開示は、これ以降、添付図面に例示された本開示の実施形態を参照して詳細に説明される。「一実施形態」、「実施形態」、「例示的な実施形態」等の表現は、記載された実施形態が、特定の特徴、構造、又は特性を含み得るが、あらゆる実施形態が、必ずしも、その特定の特徴、構造、又は特性を含み得るわけではない。更に、このような句は、必ずしも同一の実施形態に言及するものではない。更に、特定の特徴、構造、又は特性が実施形態に関連して記載されるとき、明確に記載されているかどうかに関わりなく他の実施形態に関連するかかる特徴、構造、又は特性に影響を与えることは、当業者の知見内であることが提示される。
1.概要
【0019】
ディスペンサマシンがコンピュータネットワークを介してアドミニストレータシステムにテレメトリデータを提供することを可能にするため、そのアドミニストレータシステムは、ウェブサービスをディスペンサマシンに露出することができる。ウェブサービスは、ハイパーテキスト転送プロトコル(HTTP)、拡張マークアップ言語(XML)、及びJavaScript(登録商標)対象表記(JSON)を使ったクライアントとサーバとの間でコンピュータネットワークを介してメッセージを交換することが可能なメッセージングフレームワークである。一般的に、2つのタイプのメッセージ、すなわち、要求メッセージ及び応答メッセージが交換される。クライアントは、要求メッセージをコンピュータネットワークを介して、ウェブサービスを露出しているサーバに送信する。要求メッセージは、引数及び要求を符号化し、その引数と共にサーバにおいて動作を実行(又はサブルーチンを実行)する。引数と共に動作を実行した後、ホストは、コンピュータネットワークを介して、動作結果と一緒にクライアントに応答メッセージを返信することができる。
【0020】
ウェブサービスは、階層化アーキテクチャを有し、典型的には、最下層から最上層まで、少なくともネットワーク層、トランスポート層、及びパッケージング層を含む。ネットワーク層は、データがどのようにアドレス指定され、送信され、コンピュータネットワークを介してルーティングされるべきかなどの、ウェブサービスの最も基本的な通信ニーズを規定する。トランスポート層は、ネットワーク層の上位においてアプリケーション間通信を可能にする役割を担当し、例えば、HTTPなどの技術を含む。パッケージング層は、トランスポート層によりネットワークを介して送信される前にパッケージされるべきフォーマットデータを規定する。シンプルオブジェクトアクセスプロトコル(SOAP)及びリプレゼンテイショナルステイトトランスファ(REST)は、最も一般的なパッケージングフォーマットのうちの2つである。SOAPは、上述の要求及び応答メッセージを構成するためのXMLベースのエンベロープを定義する。RESTは、要求及び応答メッセージを構成するためのエンベロープとして多種多様な機械可読フォーマットを使用することができ、XML及びJSONを含む。
【0021】
ウェブサービスアーキテクチャの各層は、メッセージの完全性、認証、認可、及び秘匿性などのセキュリティの懸案に特に対処しない。その結果、コンピュータネットワークを介してディスペンサマシン接続をアドミニストレータシステムに提供するウェブサービスを露出することは、アドミニストレータシステム及びウェブサービスメッセージにコンピュータネットワーク接続の他の非認可ユーザ及び装置を不必要に提供し得る。
【0022】
本開示は、コンピュータネットワーク上に露出されたウェブサービスを介してアドミニストレータシステムにディスペンサマシンのテレメトリデータをセキュアに提供するためのシステム及び方法に関する。露出されたウェブサービスをセキュリティ保護するため、本開示のシステム及び方法は、メッセージの完全性、認証、認可、及び秘匿性のうちの1つ以上を提供することができるディスペンサマシン及びアドミニストレータシステムにおけるセキュアなゲートウェイを提供する。このセキュアなゲートウェイは、ディスペンサマシン及びアドミニストレータシステムにおいて要求及び応答メッセージをそれぞれ創出するアプリケーションから分離して実装される。セキュアなゲートウェイは、要求及び応答メッセージを創出するアプリケーションから分離して実装されるため、要求及び応答メッセージを創出するアプリケーションは、メッセージのセキュリティを考慮することなく創出及び変更されることができる。
【0023】
本開示は、更に、アドミニストレータシステムにおいてテレメトリデータを包含するウェブサービスメッセージのパラレル及びスケーラブル処理をするためのシステム及び方法に関する。アドミニストレータシステムは、短い時間内に多数のディスペンサマシンからテレメトリデータを包含する非常に多くのウェブサービスメッセージを受信することができる。それらのウェブサービスメッセージを受信及び処理するため、本開示のシステム及び方法は、メッセージキューアを提供し、そのウェブサービスメッセージ(又はウェブサービスメッセージ内の少なくともテレメトリデータ)を複数のキュー、及びその複数のキューの各々の異なるスレッド又はプロセス(「スレッド」)に登録する。ウェブサービスメッセージが、割り当てられたキュー内に保存されている順番で、各スレッドは、その割り当てられたキューからウェブサービスメッセージを引き出し、そのウェブサービスメッセージのテレメトリデータを処理することができる。スレッドは、アドミニストレータシステムにおいて、1つ以上の中央処理装置(CPU)コア上で実行することができる。この設定により、ウェブサービスメッセージ処理のスループットに関する水平方向のスケーリングが可能になる。例えば、ウェブサービスメッセージ処理のスループットを向上させるため、CPUコアの数を増やし、かつ/又はキューの数(並びに、それに呼応して、それらのキューに割り当てられたスレッドの数)を増やすことができる。
【0024】
アドミニストレータシステムにおいてテレメトリデータを包含するウェブサービスメッセージのパラレル及びスケーラブル処理をするためのシステム及び方法は、ウェブサービスメッセージがそれらのそれぞれのディスペンサマシンにおいて生成される順番に処理されることを更に保証することができる。このことは、例えば、ディスペンサマシンの保守及び運用に関係する判断が、変更前のテレメトリデータに基づいてなされていないことを保証するのに役立ち得る。
【0025】
そのような順序付けられたウェブサービスメッセージ処理機能を提供するため、メッセージキューアは、ウェブサービスメッセージが受信された送信元のディスペンサマシンに基づいて、複数のキューのうちの1つ内にテレメトリデータを包含するウェブサービスメッセージを配置することができる。例えば、メッセージキューアは、ウェブサービスメッセージ内に含まれたディスペンサマシン識別子を使用して、そのウェブサービスメッセージを複数のキューのうちの特定の1つにマッピングすることができ、その結果、ディスペンサマシンからのウェブサービスメッセージが同じキュー内に配置される。更に、一旦メッセージキューアが、ウェブサービスメッセージを配置すべき複数のキューのうちの特定の1つを決定すると、メッセージキューアは、ウェブサービスメッセージがディスペンサマシンにおいていつ生成されたかに基づいて、そのウェブサービスメッセージをキューの特定の位置に挿入することができる。例えば、メッセージキューアは、ウェブサービスメッセージ連続番号又はウェブサービスメッセージ内に含まれたタイムスタンプを使用して、特定の位置にあるウェブサービスメッセージをキュー内に挿入することができ、その結果、キュー内のウェブサービスメッセージは、ウェブサービスメッセージが生成された順番で保存される。
【0026】
本開示のこれら及び他の特徴を更に記載する前に、本開示の実施形態が機能することができる例示的な動作環境が、次項で提供される。
2.例示的な動作環境
【0027】
図1は、本開示の実施形態が実施されることができるディスペンサ100を示す。ディスペンサ100は、本体108に結合されたベース102を備えることができる。ベース102は、本体108を直立の位置に支持する役割を果たすことができる。ベース102は、注出場所106と共に雫受け104を備えることができ、この注出場所は、雫受け104により占有される領域内に配置されている。ユーザ(例えば、顧客)は、注出場所106にユーザのカップを置き、ユーザの望みの飲料を受け取ることができる。
【0028】
本体108は、ユーザから命令を受信するためのユーザインターフェース110を備えることができる。ユーザインターフェース110は、ユーザに情報を表示し、かつ/又はユーザからの命令を受信するように構成された表示スクリーン112を備えることができる。表示スクリーン112は、液晶表示器(LCD)タッチスクリーン、又は発光ダイオード(LED)タッチスクリーンなどのタッチスクリーンとすることができる。ユーザは、飲料の注出を起動することができ、例えば、ユーザインターフェース110とやり取りすることによってユーザが望む飲料を選択すると、その飲料はディスペンサ100により注出される。
【0029】
図2は、本開示の実施形態に基づいた、
図1のディスペンサ100などのディスペンサのコンポーネントのブロック
図200を示す。ブロック
図200は、2016年2月5日に出願された米国特許出願第15/016,466号に記載された垂直注出マニホールドのうちの1つなどの注出マニホールド210を含むことができ、その出願は、その全体において参照により本明細書に組み込まれる。
【0030】
ブロック
図200は、1つ以上のベース液ソース230を含むことができる。ベース液ソース230は、以下に限定されないが、水道水ソース(例えば、水道管)及び炭酸水ソース(例えば、炭酸水槽又はカーボネータ)とすることができる。ベース液ソース230は、ベース液送達管234を介して注出マニホールド210に結合されることができる。ベース液送達管234と連通するバルブ/ポンプ235は、ベース液送達管234を通って注出マニホールド210の中へ流れるベース液の流量を制御するように構成されることができる。
【0031】
ブロック
図200は、1つ以上の原材料ソース240を含むことができる。原材料ソース240は、複数の原材料242(242-1~242-n)を含むことができる。原材料242としては、以下に限定されないが、甘味料(例えば、砂糖又は人工甘味料)、シロップ、又は香味料(例えば、コーラシロップ若しくは香味料、ブランド炭酸シロップ若しくは香味料(例えば、Mountain Dew(登録商標)又はSierra Mist(登録商標))、オレンジ香味料、ライム香味料、チェリー香味料、お茶香味料等)、又は他の液体添加物(例えば、ビタミン、酸類(例えば、クエン酸)、塩類、又は着色剤)を挙げることができる。原材料242は、以下に限定されないが、カートリッジ又はバッグなどの容器内にパッケージングされることができる。各原材料242は、原材料送達管244を介してディスペンサ210に送達されることができる。原材料送達管244と連通するバルブ/ポンプ245は、原材料送達管244を通って注出マニホールド210の中へ流れる原材料の流量を制御するように構成されることができる。
【0032】
ディスペンサコントローラ220が、
図1のユーザインターフェース110などのユーザインターフェースからの命令を制御及び受信するように構成されることができる。ディスペンサコントローラ220は、例えば、ユーザインターフェースから受信された命令に基づいて、ブロック
図200により表されたディスペンサの動作を制御するように構成されることができる。例えば、ディスペンサコントローラ220は、飲料タイプ又は組み合わせの注出を制御することができ、それらの両方が、ベース液と、注出マニホールド210からの1つ以上の原材料242との混合物とすることができる。ディスペンサコントローラ220は、バルブ/ポンプ235を制御することによって、ベース液ソース230からのベース液の流量を制御することができる。ディスペンサコントローラ220は、また、バルブ/ポンプ245を制御することによって、原材料ソース240からの原材料242の流量を制御することもできる。バルブ/ポンプ245を制御することによって、ディスペンサコントローラ220は、原材料管244内部の原材料242の圧力を制御することができる。
【0033】
いくつかの実施形態では、ディスペンサコントローラ220は、センサ227を含むことができ、かつ/又はそのセンサを読み取るように構成されることができる。センサ227は、ベース液送達管234内部のベース液の圧力を監視し、かつ/又は原材料送達管244内部の原材料の圧力を監視するための圧力センサを含むことができる。センサ227は、また、送達管234及び244内部のベース液及び原材料の流量をそれぞれ測定し、かつ/又は注出マニホールド210内部の均一な流量の程度を測定するための流量センサ(例えば、フローメータ)も含むことができる。いくつかの実施形態では、センサ227は、原材料ソース240内に残っている各原材料242の量を測定するための液面センサを含むことができる。
【0034】
また、センサ227は、以下のものに限定されないが、(1)炭酸ガスタンクのレベル(例えば、1つ、2つ、又は3つ以上の炭酸ガスレギュレータ);(2)水に炭酸ガスを含ませるように構成されたカーボネータの炭酸化ヘッドの圧力;(3)ベース液及び/又は原材料242が貯蔵された部屋(例えば、奥の部屋)の周囲温度(それによって、1つ以上のベース液及び/又は原材料242が、予め決められた温度レベルに、又は予め決められた温度範囲内に維持されているかどうかを監視する);(4)ベース液と関連付けられた水の濾過装置パラメータ(例えば、水圧、フィルタ上の差圧);(5)ベース液と関連付けられた水又は炭酸水のpH;(6)原材料242のうちの1つが収容されている原材料容器の有効期限(例えば、原材料容器内部に関連付けられたバーコードを読み取ることによって)、を監視するように構成されたセンサも含むことができる。センサ227は、ディスペンサコントローラ220に有線又は無線ネットワークを介して信号を送信するように構成されることができる。ディスペンサコントローラ220は、センサ227により収集されたデータ(例えば、圧力及び流量の値)に基づいて、ブロック
図200により表されたディスペンサの動作を制御するように構成されることができる。
【0035】
いくつかの実施形態では、ディスペンサコントローラ220は、埋込式コンピュータ224を更に含むことができる。いくつかの実施形態では、埋込式コンピュータ224は、(1)注出マニホールド210により注出された飲料タイプ及び組み合わせの量、(2)原材料ソース240内に残っている原材料242の量、(3)ディスペンサマシンのユーザインターフェースから収集されたユーザ識別コード、並びに(4)上述のセンサ227からの他のデータ(例えば、流量データ、ベース液及び/又は原材料242が貯蔵されている部屋の周囲温度、炭酸ガスタンクのレベル、炭酸化ヘッドの圧力、水の濾過装置パラメータ等)を含むディスペンサテレメトリデータを収集することができる。いくつかの実施形態では、埋込式コンピュータ224は、ディスペンサテレメトリデータを記憶し、そのディスペンサテレメトリデータを、インターネットのようなコンピュータネットワークを介して、アドミニストレータシステムのコントローラに送信することができる。アドミニストレーションコントローラは、ブロック
図200により表されたディスペンサの操作者、又はブロック
図200により表されたディスペンサの動作と関連付けられた他のいくつかのエンティティによって提供及び/又は管理されることができる。
【0036】
いくつかの実施形態では、保存されたテレメトリデータ(例えば、注出マニホールド210により注出された飲料タイプ及び組み合わせの量に関する情報)の全部又は一部が、アドミニストレータコントローラに定期的に送信されることができる。いくつかの実施形態では、保存されたテレメトリデータ(例えば、上述のセンサ227からの他のデータ)の全部又は一部が、その保存されたテレメトリデータと関連付けられたアラートレベル又は閾値レベルに基づいて、アドミニストレータコントローラに送信されることができる。例えば、ベース液及び/又は原材料242が貯蔵された部屋の周囲温度に関する保存されたテレメトリデータは、その部屋の周囲温度が、許容温度範囲の外側又はほぼ外側の予め決められた特定の閾値を超えるときに、アドミニストレーションコントローラに送信されることができる。別の例では、炭酸ガスタンクのレベルに関する保存されたテレメトリデータは、炭酸ガスタンクのレベルが低いか、又は空の状態を示す予め決められた特定の閾値を超えるときに、アドミニストレータコントローラに送信されることができる。
【0037】
いくつかの実施形態では、アドミニストレータコントローラは、テレメトリデータを使用して、ブロック
図200により表されたディスペンサへの原材料の配給、及び/又はブロック
図200により表されたディスペンサの保守を支援することができる。いくつかの実施形態では、アドミニストレータコントローラは、テレメトリデータを使用して、ユーザの嗜好及び消費データ(例えば、マニホールド210により注出された飲料のタイプ及び量)を追跡することができ、これらの嗜好及び消費データはブロック
図200により表されたディスペンサと関係するので、それらは分析され、消費者傾向を予測し、かつ/又は将来のビジネス判断を支援することができる。他の実施形態では、アドミニストレータコントローラは、テレメトリデータを使用して、ディスペンサマシン保守作業、顧客満足度を向上させ、かつ/又はディスペンサマシンにおける部品故障を予測し、かつ/又はディスペンサマシンの予防保守サービスをスケジュールに組み込むことができる。
3.セキュアなゲートウェイ
【0038】
ディスペンサマシンがコンピュータネットワークを介してアドミニストレータシステムのコントローラにテレメトリデータを提供することを可能にするため、アドミニストレータコントローラは、ウェブサービスをディスペンサマシンに露出することができる。上述したように、ウェブサービスは、ハイパーテキスト転送プロトコル(HTTP)、拡張マークアップ言語(XML)、及びJavaScript(登録商標)対象表記(JSON)などのインターネット技術を使って、クライアントとサーバとの間のコンピュータネットワークを介してメッセージを交換することが可能なメッセージングフレームワークである。一般的に、2つのタイプのメッセージ、すなわち、要求メッセージ及び応答メッセージが交換される。クライアントは、要求メッセージを、コンピュータネットワークを介して、ウェブサービスを露出しているサーバに送出する。要求メッセージは、引数及び要求を符号化し、その引数と共にサーバにおいて動作を実行する(又はサブルーチンを実行する)。引数と共に動作を実行した後、ホストは、コンピュータネットワークを介して、動作結果と一緒にクライアントに応答メッセージを返信することができる。
【0039】
図3は、本開示の実施形態に基づいた、露出されたウェブサービスを使ってコンピュータネットワークを介したテレメトリデータを提供するためのシステム300を例示する。システム300は、アドミニストレータコントローラ302及びディスペンサコントローラ220を備え、そのディスペンサコントローラは、
図2に関して上述された。ディスペンサコントローラ220は、例として提供されており、これに限定されない。他のディスペンサコントローラ(例えば、異なるディスペンサマシンに実装されているディスペンサコントローラ)は、当業者により理解されるように、本開示の範囲及び趣旨から逸脱することなくシステム300内で使用されることができる。
【0040】
動作中、アドミニストレータコントローラ302のウェブサービスプロバイダ(WS-プロバイダ)304は、ウェブサービスを露出し、そのウェブサービスは、ディスペンサコントローラ220のウェブサービスクライアント(WS-クライアント)306がインターネットなどのコンピュータネットワーク308を介してアドミニストレータコントローラ302にテレメトリデータを提供するのを可能にする。テレメトリデータは、
図2に関して上述されたように、センサ227から収集されたデータ、並びに他のセンサ、及び/又はディスペンサコントローラ220が実装されているディスペンサマシンの周辺装置から収集された他のデータを含むことができる。
【0041】
WS-クライアント306は、Simple Object Access Protocol(SOAP)、REpresentational State Transfer(REST)、又は他のいくつかのパッケージングフォーマットに従ってフォーマットされるようなウェブサービス要求メッセージ310内にテレメトリデータをパッケージングすることができる。ウェブサービス要求メッセージ310は、省略可能なヘッダ314及び本体316を包含するエンベロープ312を含むことができる。ヘッダ314は、使用時に、1つ以上の情報ブロックを含むことができ、それらのブロックは、メッセージが1つ以上の受信エンティティによってどのように処理されるべきかを指定する。本体316は、1つ以上の引数、及び1つ以上の引数を用いてWS-プロバイダ304において動作を実行する(又はサブルーチンを実行する)ための要求として、テレメトリデータを含むことができる。このテレメトリデータ、及びその動作を実行するための要求は、XML又はJSONの構文規則で本体316内に記述されることができる。また、その動作を実行するための要求は、一意リソース識別子(URI)として含むような、かなり多数の形式で本体316の外部においても記述されることができる。
【0042】
WS-クライアント306がウェブサービス要求メッセージ310内で動作を実行するためにテレメトリデータ及び要求をパッケージングした後、WS-クライアント306は、コンピュータネットワーク308を介してウェブサービス要求メッセージ310を送信することができる。一実施形態では、WS-クライアント306は、HTTP又はHTTPセキュア(HTTPS)を使ってコンピュータネットワーク308を介したウェブサービス要求メッセージ310を送信することができる。
【0043】
WS-プロバイダ304は、コンピュータネットワーク308を介して、WS-クライアント306からウェブサービス要求メッセージ310を受信し、そしてウェブサービス要求メッセージ310を展開して、1つ以上の引数と共に動作を実行するため、テレメトリデータ及び要求を含む1つ以上の引数を復元する。WS-プロバイダ304は、テレメトリデータを含む1つ以上の引数と共にその動作を実質的に実行し、そして、必要に応じてその動作の結果をウェブサービス応答メッセージ318の中にパッケージングする。
その動作には、例えば、テレメトリデータを構文解析すること、及びテレメトリデータの様々な値をデータベースに入力することを含めることができる。データベース中のデータは、その後、使用され、ディスペンサマシンへの原材料の配給、及び/又はディスペンサマシンの保守を支援することができる。いくつかの実施形態では、データベース内のデータを使用して、ユーザの嗜好及び消費データ(例えば、ディスペンサマシンにより注出された飲料のタイプ及び量)を追跡することができ、これらの嗜好及び消費データがディスペンサマシンと関連するので、それらは分析され、消費者傾向を予測し、かつ/又は将来のビジネス判断を支援することができる。他の実施形態では、データベース内のデータを使用して、ディスペンサマシン保守作業、顧客満足度を向上させ、かつ/又はディスペンサマシンにおける部品故障を予測し、かつ/又はディスペンサマシンの予防保守サービスをスケジュールに組み込むことができる。
【0044】
ウェブサービス要求メッセージ310と同様に、WS-プロバイダ304は、SOAP、REST、又は他のいくつかのパッケージングフォーマットに従ってウェブサービス応答メッセージ318をフォーマットすることができる。ウェブサービス応答メッセージ318は、省略可能なヘッダ322及び本体324を包含するエンベロープ320を含むことができる。ヘッダ322は、使用時に、1つ以上の情報ブロックを含むことができ、それらのブロックは、メッセージが1つ以上の受信エンティティによってどのように処理されるべきかを指定する。本体324は、その動作の結果を含むことができる。その動作の結果は、XML又はJSONの構文規則で本体324内に記述されることができる。
【0045】
WS-プロバイダ304がウェブサービス応答メッセージ318内に動作結果をパッケージングした後、WS-プロバイダ304は、コンピュータネットワーク308を介してウェブサービス応答メッセージ318を送信することができる。一実施形態では、WS-プロバイダ304は、HTTP又はHTTPSを使ってコンピュータネットワーク308を介したウェブサービス応答メッセージ318を送信する。
【0046】
多連ディスペンサ、及びディスペンサコントローラ220以外のディスペンサコントローラは、ウェブサービス要求メッセージをアドミニストレータコントローラ302に送信することができることに注意されたい。これらのウェブサービス要求メッセージは、上述のように、ウェブサービス要求メッセージ310と同様に処理されることができるが、異なる動作又はサブルーチンを実行するための異なるデータ(例えば、テレメトリデータ以外)、及び/又は要求を含んでもよい。
【0047】
WS-プロバイダ304により露出されたウェブサービス、及び一般的なウェブサービスに伴う1つの課題は、ウェブサービスの階層化アーキテクチャが、メッセージの完全性、認証、認可、及び秘匿性などのセキュリティの懸案に特に対処しないことである。その結果、コンピュータネットワーク308を介してディスペンサコントローラ220及び他のディスペンサコントローラ接続をアドミニストレータコントローラ302に申し出るウェブサービスを露出することは、アドミニストレータコントローラ302、並びにウェブサービス要求及び応答メッセージ310及び318に、コンピュータネットワーク308の他の非認可ユーザ及び装置の接続を提供可能とすることであり、好ましくない。
【0048】
露出されたウェブサービスをセキュリティ保護するため、セキュアなゲートウェイが、ディスペンサコントローラ220及びアドミニストレータコントローラ302において提供され、メッセージの完全性、認証、認可、及び秘匿性のうちの1つ以上を提供することができる。このセキュアなゲートウェイは、ディスペンサコントローラ220及びアドミニストレータコントローラ302のそれぞれにおいて、要求及び応答メッセージを創出するアプリケーションから分離して、すなわち、WS-クライアント306及びWS-プロバイダ304から分離して、実装されることができる。セキュアなゲートウェイは、WS-クライアント306及びWS-プロバイダ304から分離して実装されるため、これらのアプリケーションは、メッセージのセキュリティを考慮することなく創出及び変更されることができ、これらのアプリケーションは、セキュアなゲートウェイにより透過的に取り扱われることができる。
【0049】
図4は、本開示の実施形態に基づいた、そのようなシステム400を例示する。特に、システム400は、前述した
図3のシステム300と同じ基本的な構成を有し、同じ基本的な方法で動作する。しかしながら、
図4のシステム400中のディスペンサコントローラ220及びアドミニストレータコントローラ302は、それぞれ、セキュアなゲートウェイを更に含む。より詳細には、ディスペンサコントローラ220は、ディスペンサウェブサービスゲートウェイ(ディスペンサWS-ゲートウェイ)402を更に含み、アドミニストレータコントローラ302は、アドミニストレータウェブサービスゲートウェイ(アドミニストレータWS-ゲートウェイ)404を更に含む。
【0050】
動作中、ディスペンサWS-ゲートウェイ402は、ウェブサービス要求メッセージ310がコンピュータネットワーク308を介してアドミニストレータコントローラ302に送信される前に、ディスペンサWS-クライアント306により生成されたウェブサービス要求メッセージ310を傍受するように構成されている。一実施形態では、WS-ゲートウェイ402は、HTTP要求メッセージの本体内にウェブサービス要求メッセージ310を包含するHTTP要求メッセージを傍受するように構成されたHTTPプロキシサーバとして実装されている。
【0051】
一旦、ディスペンサWS-ゲートウェイ402がウェブサービス要求メッセージ310を傍受すると、ディスペンサWS-ゲートウェイ402は、ウェブサービス要求メッセージ310の本体316内のテレメトリデータ(又は他のデータ)の全部又は少なくとも一部を暗号化し、デジタル署名を生成することができる。ディスペンサWS-ゲートウェイ402は、そのデジタル署名をウェブサービス要求メッセージ310のヘッダ314の中に挿入することができる。アドミニストレータコントローラ302は、デジタル署名を使用してテレメトリデータ(又はテレメトリデータの少なくとも一部、及び/又は署名された他のデータ)を認証する、すなわちテレメトリデータがディスペンサコントローラ220からもたらされたことを証明することができる。
【0052】
一実施形態では、ディスペンサWS-ゲートウェイ402は、ディスペンサコントローラ220と関連付けられた秘密鍵を使って、ウェブサービス要求メッセージ310の本体316内のテレメトリデータ(又は他のデータ)の全部、又は少なくとも一部を暗号化することができる。このディスペンサコントローラ220と関連付けられた秘密鍵は、秘密鍵及び公開鍵を含む非対称暗号鍵ペアの一部である。公開鍵は、アドミニストレータコントローラ302により公開又は秘匿されることができ、これに対して、秘密鍵は、ディスペンサコントローラ220により秘匿され、配布されない。アドミニストレータコントローラ302は、ディスペンサコントローラ220と関連付けられた公開鍵を使用してデジタル署名を検証することができる(例えば、暗号解読を通じて)。その検証が成功した場合、秘密鍵を使って暗号化されたデータだけが公開鍵を使用して暗号解読されることができることから、アドミニストレータコントローラ302は、ディスペンサコントローラ220と関連付けられた秘密鍵が、デジタル署名の生成に使用されるテレメトリデータの暗号化に使用されたことを確信することができる。
【0053】
別の実施形態では、テレメトリデータを直接暗号化するのではなく、ディスペンサWS-ゲートウェイ402が、ディスペンサコントローラ220と関連付けられた秘密鍵を使って、テレメトリデータの一方向ハッシュから得られるメッセージダイジェストを暗号化することができる。この一方向ハッシュを使用して、テレメトリデータの完全性を保証し、かつ/又はデジタル署名を生成するのに必要な処理時間を短縮することができる。
【0054】
一旦、ディスペンサWS-ゲートウェイ402がウェブサービス要求メッセージ306を傍受すると、ディスペンサWS-ゲートウェイ402は、ウェブサービス要求メッセージ310の本体316内のテレメトリデータ(又は他のデータ)の全部又は少なくとも一部を更に暗号化し、テレメトリデータがコンピュータネットワーク308をわたるときに、テレメトリデータの秘匿性を保証することができる。テレメトリデータを暗号化した後、ディスペンサWS-ゲートウェイ402は、暗号化されたテレメトリデータを、ウェブサービス要求メッセージ310の本体316の中に再挿入することができる。
【0055】
一実施形態では、ディスペンサWS-ゲートウェイ402は、アドミニストレータコントローラ302と関連付けられた公開鍵を使って、ウェブサービス要求メッセージ310の本体316内のテレメトリデータ(又は他のデータ)の全部、又は少なくとも一部を暗号化することができる。ディスペンサコントローラ220と関連付けられた公開鍵と同様に、アドミニストレータコントローラ302と関連付けられた公開鍵は、公開鍵及び秘密鍵を含む非対称暗号鍵ペアの一部である。公開鍵は、自由に公開及び配付され、これに対して、秘密鍵は、アドミニストレータコントローラ302により秘匿され、配布されない。
【0056】
別の実施形態では、ディスペンサWS-ゲートウェイ402は、対称鍵を使って、ウェブサービス要求メッセージ310の本体316内のテレメトリデータ(又は他のデータ)の全部、又は少なくとも一部を暗号化することができる。ディスペンサWS-ゲートウェイ402は、アドミニストレータコントローラ302と関連付けられた公開鍵を有する対称鍵を暗号化し、ウェブサービス要求メッセージ310のヘッダ314又は本体316内にその対称鍵を挿入することができる。
【0057】
ディスペンサWS-ゲートウェイ402が、デジタル署名を挿入し、かつ/又は本体316内のテレメトリデータを暗号化した後、ディスペンサWS-ゲートウェイ402は、例えば、HTTP又はHTTPSを使って、コンピュータネットワーク308を介してウェブサービス要求メッセージ310を送信することができる。アドミニストレータWS-ゲートウェイ404は、コンピュータネットワーク308を介してウェブサービス要求メッセージ310を受信し、テレメトリデータの暗号解読、テレメトリデータの認証、及び、ディスペンサコントローラ220がウェブサービス要求メッセージ310内で要求された動作(又は要求されたサブルーチン)を実行するように認可されるかどうかの判定、のうちの1つ以上を実行するように構成されている。
【0058】
ウェブサービス要求メッセージ310の本体316内のテレメトリデータ(又は他のデータ)が、アドミニストレータコントローラ302と関連付けられた公開鍵を使って暗号化された場合、アドミニストレータWS-ゲートウェイ404は、アドミニストレータコントローラ302と関連付けられた秘密鍵を使って、暗号化されたテレメトリデータを暗号解読することができる。ウェブサービス要求メッセージ310の本体316内のテレメトリデータ(又は他のデータ)が、上述のように、対称鍵を使って暗号化された場合、アドミニストレータWS-ゲートウェイ404は、ウェブサービス要求メッセージ310のヘッダ314又は本体316からの暗号化された対称鍵の複製を取得し、アドミニストレータコントローラ302と関連付けられた秘密鍵を使ってその対称鍵を暗号解読し、次いで、暗号解読された対称鍵を使用して、暗号化されたテレメトリデータを暗号解読することができる。一旦暗号解読されると、アドミニストレータWS-ゲートウェイ404は、ウェブサービス要求メッセージ310内の暗号化されたテレメトリデータを、暗号解読されたテレメトリデータに置き換えることができる。
【0059】
認証が実行され得る場合、アドミニストレータWS-ゲートウェイ404は、ウェブサービス要求メッセージ310のヘッダ314内のデジタル署名を注出し、ディスペンサコントローラ220と関連付けられた公開鍵を使ってそのデジタル署名を暗号解読することができる。次いで、デジタル署名を創出するように署名されたテレメトリデータ(又は他のデータ)は、ウェブサービス要求メッセージ310の本体316内のテレメトリデータと比較され、そのテレメトリデータがディスペンサコントローラ220からもたらされたことを認証することができる。ディスペンサWS-ゲートウェイ402が、ウェブサービス要求メッセージ310の本体316内のテレメトリデータ(又は他のデータ)の一方向ハッシュからデジタル署名を創出した例では、アドミニストレータWS-ゲートウェイ404は、本体316内のテレメトリデータを、暗号解読されたデジタル署名と比較する前に、本体316内のテレメトリデータの同じ一方向ハッシュを実行することができる。
【0060】
認可が実行され得る場合、アドミニストレータWS-ゲートウェイ404は、ディスペンサコントローラ220が、ウェブサービス要求メッセージ310内で要求されたウェブサービスサブルーチンを使用するように認可されるかどうかを判定することができる。一実施形態では、アドミニストレータWS-ゲートウェイ404は、ウェブサービス要求メッセージ310内の要求された動作を実行するように認可されるディスペンサコントローラ及び/又はディスペンサのリストをチェックすることができる。ディスペンサコントローラ220、又はディスペンサコントローラ220が実装されているディスペンサが、リストに載っている場合、アドミニストレータWS-ゲートウェイ404は、処理するため、ウェブサービス要求メッセージ310をアドミニストレータWS-プロバイダ304に通過させることができる。これに対して、ディスペンサコントローラ220、又はディスペンサコントローラ220が実装されているディスペンサが、リストに載っていない場合、アドミニストレータWS-ゲートウェイ404は、ウェブサービス要求メッセージ310を廃棄し、ウェブサービス要求メッセージ310がアドミニストレータWS-プロバイダ304によって処理されるのを防止することができる。
【0061】
別の実施形態では、認可が実行され得る場合、アドミニストレータWS-ゲートウェイ404は、ウェブサービスが、公開されたウェブサービスの設定可能なリストに基づいて、公開されるかどうかを判定することができる。認可が実行されない場合、ディスペンサマシンによる非公開ウェブサービスのウェブサービス呼び出しは、拒否及び廃棄されることができる。このメカニズムにより任意の非公開ウェブサービスを保護し、このメカニズムを使用して、いかなる理由に対しても、どんな時にも、ウェブサービスをサービス中止にすることができる。
【0062】
アドミニストレータWS-ゲートウェイ404からウェブサービス要求メッセージ310を受信した後(暗号解読されたテレメトリデータに置き換えられた、本体316内の任意の暗号化されたテレメトリデータと共に)、アドミニストレータコントローラ302は、
図3に関して上述したように、ウェブサービス要求メッセージ310を処理することができる。アドミニストレータWS-ゲートウェイ404及びディスペンサWS-ゲートウェイ402は、上述したように、それぞれ、他のゲートウェイの機能を実行し、ウェブサービス要求メッセージ310と同様のウェブサービス応答メッセージ318をセキュリティ保護することができることに注意されたい。
【0063】
一実施形態では、ディスペンサコントローラ220により送信されたすべてのウェブサービス要求メッセージが、必ずしもディスペンサWS-ゲートウェイ402により署名及び/又は暗号化される必要はない。ディスペンサWS-ゲートウェイ402により署名及び/又は暗号化されないようなかかるメッセージは、「帯域外」に送信されると言われ、これに対して、署名及び/又は暗号化されるメッセージは、「帯域内」に送信されると言われることがある。
【0064】
例えば、「ハートビート」メッセージは、ディスペンサWS-クライアント306又はディスペンサWS-ゲートウェイ402のどちらか一方により生成され、ディスペンサWS-ゲートウェイ402によりコンピュータネットワーク308を介してアドミニストレータコントローラ302に帯域外で送信されることができる。これらのハートビートメッセージは、ディスペンサコントローラ220(又はディスペンサコントローラ220が実装されているディスペンサ)が存在し、かつ利用可能であるようなアドミニストレータコントローラ302に定期的に、又は反復ベースで信号を送信されることができる。
【0065】
ここで、
図5を参照すると、本開示の実施形態に基づいた、テレメトリデータを収集し、コンピュータネットワークを介してディスペンサマシンからアドミニストレータコントローラにそのテレメトリデータを包含するウェブサービス要求メッセージをセキュアに送信するための方法であるフローチャート500が例示されている。フローチャート500の方法は、上述したように、また
図4で例示したように、ディスペンサWS-クライアント306及びディスペンサWS-ゲートウェイ402により実施されることができる。ただし、この方法は、他のディスペンサWS-クライアント及びディスペンサWS-ゲートウェイによってもなお実施されることができることに注意されたい。これらのアプリケーションの各々により実行されるフローチャート500のステップは、
図5にラベルで表示されている。フローチャート500のいくつかのステップは、必ずしも
図5に示した順番どおりに生じさせる必要はないことに、更に注意されたい。
【0066】
フローチャート500の方法は、ステップ502から開始する。ステップ502において、ディスペンサマシンのテレメトリデータが収集される。テレメトリデータとしては、例えば、消費量(例えば、ディスペンサマシンで消費された各品目の量)及びステータス(例えば、ディスペンサマシンにおける原材料、供給物、及び/又は品目の現在量)に関してディスペンサマシンで収集されたデータが挙げられ得る。また、テレメトリデータとしては、
図2に関して上述した特定のタイプのデータも含まれ得る。
【0067】
ステップ502においてテレメトリデータを収集した後、フローチャート500の方法は、ステップ504に進む。ステップ504において、ウェブサービス要求メッセージが、テレメトリデータ、及び引数とするテレメトリデータと共に動作を実行する(又はサブルーチンを実行する)ような要求を備えた、
図4に示すアドミニストレータコントローラ302などのアドミニストレータコントローラに送信される。このウェブサービス要求メッセージは、SOAP、REST、又は他のいくつかのパッケージングフォーマットに従ってパッケージングされることができる。ウェブサービス要求メッセージは、省略可能なヘッダ、及び本体を包含するエンベロープを含むことができる。このヘッダは、使用時に、1つ以上の情報ブロックを含むことができ、それらのブロックは、メッセージが1つ以上の受信エンティティによってどのように処理されるべきかを指定する。このテレメトリ、及びその動作を実行するための要求は、XML又はJSONの構文規則で本体内に記述されることができる。また、その動作を実行するための要求は、本体の外部においても記述されることができる。
【0068】
ステップ504の後、フローチャート500の方法は、ステップ506に進む。ステップ506において、ウェブサービス要求メッセージは、インターネットなどのコンピュータネットワークを介してアドミニストレータコントローラに送信される前に傍受される。HTTPプロキシを使用して、ウェブサービス要求メッセージを傍受することができる。
【0069】
ステップ506の後、フローチャート500の方法は、ステップ508に進む。ステップ508において、傍受されたウェブサービス要求メッセージ内のテレメトリデータは、テレメトリデータの暗号化、又はテレメトリデータの一方向ハッシュの暗号化によって、必要に応じて署名される。テレメトリデータ、又はテレメトリデータの一方向ハッシュは、ディスペンサマシンと関連付けられた秘密鍵を使って署名されることができる。その結果得られたデジタル署名は、ウェブサービス要求メッセージのヘッダに挿入されることができる。
【0070】
ステップ508の後、フローチャート500の方法は、ステップ510に進む。ステップ510において、ウェブサービス要求メッセージの本体内のテレメトリデータは、必要に応じて暗号化される。テレメトリデータは、アドミニストレータコントローラと関連付けられた公開鍵、又は対称鍵を使って暗号化されることができる。対称鍵を使用してテレメトリデータを暗号化する場合、対称鍵は、アドミニストレータコントローラと関連付けられた公開鍵を使って暗号化され、アドミニストレータコントローラがその暗号化されたテレメトリデータを暗号解読することが可能となるように、ウェブサービス要求メッセージのヘッダ又は本体内に挿入されることができる。
【0071】
ステップ510の後、フローチャート500の方法は、ステップ512に進む。ステップ512において、ウェブサービス要求メッセージは、コンピュータネットワークを介してアドミニストレータコントローラに送信される。ウェブサービス要求メッセージは、HTTP又はHTTPSを使って、コンピュータネットワークを介して送信されることができる。
【0072】
ここで、
図6を参照すると、本開示の実施形態に基づいた、ハートビートメッセージを生成し、コンピュータネットワークを介してディスペンサコントローラからアドミニストレータコントローラにそのハートビートメッセージを送信するための方法のフローチャート600が例示されている。フローチャート600の方法は、上述したように、また
図4で例示したように、ディスペンサWS-クライアント306又はディスペンサWS-ゲートウェイ402により実施されることができる。ただし、この方法は、他のディスペンサWS-クライアント又はディスペンサWS-ゲートウェイによってもなお実施されることができる。
【0073】
フローチャート600の方法は、ステップ602から開始する。ステップ602において、ハートビートメッセージが生成される。このハートビートメッセージは、ディスペンサコントローラ、及び/又はそのディスペンサコントローラが実装されるディスペンサマシンのハードウェア識別子などの識別子を含むことができる。
【0074】
ステップ602の後、フローチャート600の方法は、ステップ604に進む。ステップ604において、ハートビートメッセージは、インターネットなどのコンピュータネットワークを介してアドミニストレータコントローラに「帯域外」で送信される。「帯域外」で送信されるメッセージは、送信される前に、アプリケーションレベルにおいて署名及び/又は暗号化されない。ハートビートメッセージは、ディスペンサコントローラ(又はディスペンサコントローラが実装されているディスペンサ)が存在し、かつ利用可能であるようなアドミニストレータコントローラに定期的に、又は反復ベースで信号を生成及び送信されることができる。
【0075】
ここで、
図7を参照すると、本開示の実施形態に基づいた、アドミニストレータコントローラにおいてディスペンサコントローラからのテレメトリデータを包含するウェブサービス要求メッセージをセキュアに受信及び処理するための方法のフローチャート700が例示されている。フローチャート700の方法は、上述したように、また
図4で例示したように、アドミニストレータWS-ゲートウェイ404及びアドミニストレータWS-プロバイダ304により実施されることができる。ただし、この方法は、他のアドミニストレータWS-ゲートウェイ及びアドミニストレータWS-プロバイダによってもなお実施されることができることに注意されたい。これらのアプリケーションの各々により実行されるフローチャート700のステップは、
図7にラベルで表示されている。フローチャート700のいくつかのステップは、必ずしも
図7に示した順番どおりに生じさせる必要はないことに、更に注意されたい。
【0076】
フローチャート700の方法は、ステップ702から開始する。ステップ702において、ウェブサービス要求メッセージが、インターネットなどのコンピュータネットワークを介してディスペンサマシンから受信される。
【0077】
ステップ702の後、フローチャート700の方法は、ステップ704に進む。ステップ704において、メッセージは、そのメッセージがハートビートメッセージであるかどうかを判定するために検査される。メッセージがハートビートメッセージである場合、フローチャート700の方法は、ステップ714に進み、ハートビートメッセージが処理される。メッセージがハートビートメッセージでない場合、フローチャート700の方法は、ステップ706に進む。
【0078】
ステップ706において、ウェブサービス要求メッセージの本体内の暗号化されたテレメトリデータが、暗号解読される。テレメトリデータは、アドミニストレータコントローラと関連付けられた秘密鍵を使って、又はウェブサービス要求メッセージのヘッダ又は本体内に含まれた対称鍵を使って、暗号解読されることができる。
【0079】
ステップ706の後、フローチャート700の方法は、ステップ708に進む。ステップ708において、テレメトリデータの真正性が検証される。具体的には、ウェブサービス要求メッセージのヘッダ内のデジタル署名が抽出され、ディスペンサコントローラと関連付けられた公開鍵を使って暗号解読される。次いで、デジタル署名を創出するように署名されたテレメトリデータは、ウェブサービス要求メッセージの本体内のテレメトリデータと比較され、そのテレメトリデータがディスペンサコントローラからもたらされたことを認証することができる。デジタル署名がウェブサービス要求メッセージの本体内のテレメトリデータの一方向ハッシュから創出された例では、本体内のテレメトリデータの同じ一方向ハッシュが、本体内のテレメトリデータを、暗号解読されたデジタル署名と比較する前に、実行されることができる。テレメトリデータが、その比較(すなわち、不一致)に基づいて真正ではないと判定された場合、フローチャート700の方法は、ウェブサービス要求メッセージが拒否されるステップ710に進む。これに対して、テレメトリデータが、その比較(すなわち、一致)に基づいて真正であると判定された場合、フローチャート700の方法は、ステップ712に進む。
【0080】
ステップ712において、ディスペンサコントローラが、ウェブサービス要求メッセージ内で動作(又はサブルーチン)を実行するためにウェブサービスを使用することを認可されるかどうかについて判定がなされる。一実施形態では、ウェブサービス要求メッセージ内で要求されたウェブサービスサブルーチンを使用するように認可されるディスペンサコントローラ及び/又はディスペンサのリストがチェックされる。ディスペンサコントローラ、又はディスペンサコントローラが実装されているディスペンサが、リストに載っていない場合、フローチャート700の方法は、ウェブサービス要求メッセージが拒否されるステップ710に進む。これに対して、ディスペンサコントローラ、又はディスペンサコントローラが実装されているディスペンサが、リストに載っている場合、フローチャート700の方法は、ウェブサービス要求メッセージが処理される(例えば、
図3に関して上述したように)ステップ714に進む。
4.テレメトリデータのパラレル及びスケーラブル処理
【0081】
上述したように、1つのアドミニストレータシステムに数千台若しくは数十万台又はそれを超えるディスペンサマシン、及び/又は他のタイプのマシンが接続され得る場合、並びにこれらのマシンのすべてが、アドミニストレータシステムにテレメトリデータを同時に送信し得る場合、膨大なウェブサービスメッセージを受信し、かつ迅速に処理することができるアドミニストレータシステムの更なるニーズが存在する。加えて、複数のマシンがアドミニストレータシステムと接続又は切断される効率的な方法でスケール変更することが可能なスループットを有するようなアドミニストレータシステムを提供することへの更なるニーズが存在する。
【0082】
図8は、本開示の実施形態に基づいた、テレメトリデータを包含するメッセージをパラレル及びスケーラブル処理するためのアドミニストレータコントローラ800を例示している。アドミニストレータコントローラ800は、上述した
図4のアドミニストレータコントローラ302と同じ基本的な構成を有し、かつ同じ基本的な方法で動作する。ただし、アドミニストレータコントローラ800は、メッセージキューア802を更に含む。アドミニストレータWS-ゲートウェイ404が、アドミニストレータコントローラ800内において取捨選択できるコンポーネントであることに注意されたい。
【0083】
動作中、ディスペンサマシンからのテレメトリデータを包含するウェブサービスメッセージは、上述したように、最初にアドミニストレータWS-ゲートウェイ404によって受信及び処理される。アドミニストレータWS-ゲートウェイ404によって処理された後、ウェブサービスメッセージは、メッセージキューア802に伝えられる。
【0084】
メッセージキューア802は、マッパー804及び複数のキュー806を含む。マッパー804は、各ウェブサービスメッセージをキュー806のそれぞれの1つにマッピング又は配置するように構成されている。キュー806は、メモリ内にウェブサービスメッセージを保存するために使用されるデータ構造である。
【0085】
キュー806内に保存されたウェブサービスメッセージを処理するため、アドミニストレータWS-プロバイダ304は、複数のスレッド又はプロセス(「スレッド」)808を含む。スレッド808のうちの別の1つは、各キュー806に割り当てられることができる。各スレッド808は、ウェブサービスメッセージが、その割り当てられたキュー806内に保存された順番で、その割り当てられたキュー806からウェブサービスメッセージを引き出し、ウェブサービスメッセージのテレメトリデータを処理することができる。
【0086】
スレッド808によるテレメトリデータの処理は、例えば、テレメトリデータを構文解析すること、及びテレメトリデータの様々な値をデータベースに入力することを含むことができる。その後、データベース内のデータは、使用され、ディスペンサマシンへの材料(例えば、原材料)の配給、及び/又はディスペンサマシンの保守を支援することができる。いくつかの実施形態では、データベース内のデータを使用して、ユーザの嗜好及び消費データ(例えば、ディスペンサマシンにより注出された飲料のタイプ及び量)を追跡することができ、これらの嗜好及び消費データがディスペンサマシンと関連するため、それらは分析され、消費者傾向を予測し、かつ/又は将来のビジネス判断を支援することができる。他の実施形態では、データベース内のデータを使用して、ディスペンサマシン保守作業、顧客満足度を向上させ、かつ/又はディスペンサマシンにおける部品故障を予測し、かつ/又はディスペンサマシンの予防保守サービスをスケジュールに組み込むことができる。
【0087】
スレッド808は、アドミニストレータコントローラ800における中央処理装置(CPU)コア810又は仮想コア上で実行することができる。コア810は、1つ以上のサーバ内、又はそれらのサーバを横断的に実装されることができる。コア810の数に基づいて、少なくともいくつかのスレッド808は、ウェブサービスメッセージが処理されるスループットを向上させるように、パラレルに実行することができる。メッセージ処理のスループットを更に向上させるため、コア810の数を増やすことができ、かつ/又はキュー806の数(また、それに呼応して、キュー806に割り当てられるスレッド808の数)を増やすことができる。そのような増加は、ウェブサービスメッセージをアドミニストレータコントローラ800に送信するディスペンサマシンの数の増加に応じてなされることができる。
【0088】
マッパー804は、ウェブサービスメッセージがそれらのそれぞれのディスペンサマシンで生成された順番に処理されることを保証するように更に構成されることができる。このことは、例えば、ディスペンサマシンの保守及び動作に関する判断が、変更前の古いテレメトリデータ、又は非時系列的な順番のテレメトリデータに基づいて行われていないことを保証するのに役立ち得る。
【0089】
順番が付けられたかかるメッセージ処理機能を提供するため、マッパー804は、そのメッセージが受信された送信元のディスペンサマシンに基づいて、テレメトリデータを包含するウェブサービスメッセージをキュー806のうちの1つ中に配置することができる。例えば、マッパー804は、ウェブサービスメッセージ内に含まれるディスペンサマシン識別子を使用して、そのウェブサービスメッセージをキュー806のうちの特定の1つにマッピングすることができ、その結果、ディスペンサマシンからのメッセージは、同じキュー内に配置され、従って同じスレッド808により処理される。
【0090】
キュー806の数、及びスレッド808の数は、通常、ウェブサービスメッセージをアドミニストレータコントローラ800に送信するディスペンサマシンの数よりもはるかに少ない。かかるシナリオにおいて、マッパー804は、ハッシュ関数を使用して、そのウェブサービスメッセージをキュー806のうちの特定の1つにマッピングすることができる。より具体的には、マッパー804は、ハッシュ関数を使用してウェブサービスメッセージ内に含まれるディスペンサマシン識別子をハッシュし、その結果得られたハッシュ値を使用してウェブサービスメッセージをキュー806のうちの特定の1つに割り当てることができる。
【0091】
一旦、マッパー804が、ウェブサービスメッセージを配置するためのキュー806のうちの特定の1つを決定すると、マッパー804は、そのメッセージがディスペンサマシンにおいていつ生成されたかに基づいて、ウェブサービスメッセージをキューの特定の位置に挿入することができる。例えば、マッパー804は、ウェブサービスメッセージ内に含まれるメッセージ一連番号又はタイムスタンプを使用して、そのメッセージをキュー内の特定の位置に挿入することができ、その結果、キュー内のウェブサービスメッセージは、そのメッセージが生成された順番に保存される。
【0092】
ここで、
図9を参照すると、本開示の実施形態に基づいた、ディスペンサマシンからのウェブサービスメッセージを受信及び処理するための方法であるフローチャート900が例示されている。フローチャート900の方法は、上述したように、また
図8で例示したように、アドミニストレータコントローラ800により実施されることができる。ただし、この方法は、他のアドミニストレータコントローラによってもなお実施されることができることに注意されたい。フローチャート900のいくつかのステップは、取捨選択可能であり、また必ずしも
図9に示した順番どおりに生じさせる必要はないことに、更に注意されたい。
【0093】
フローチャート900の方法は、ステップ902から開始する。ステップ902において、ウェブサービスメッセージが、インターネットなどのコンピュータネットワークを介してディスペンサマシンから受信される。
【0094】
ステップ902の後、フローチャート900の方法は、ステップ904に進む。ステップ904において、ウェブサービスメッセージ内のディスペンサマシン識別子のハッシュが実行される。
【0095】
ステップ904の後、フローチャート900の方法は、ステップ906に進む。ステップ906において、複数のキューのうちの1つが、ディスペンサマシン識別子のハッシュの、その結果得られたハッシュ値に基づいて、識別される。同じハッシュ値が、同じディスペンサマシン識別子の場合に毎回生成されるため、ディスペンサマシンから受信されたウェブサービスメッセージは、同じキューに配置されることになる。
【0096】
ステップ906の後、フローチャート900の方法は、ステップ908に進む。ステップ908において、ウェブサービスメッセージは、そのウェブサービスメッセージがディスペンサマシンにおいていつ生成されたかに基づいて決定された位置における識別されたキューの中に配置される。例えば、ウェブサービスメッセージ内に含まれるメッセージ一連番号又はタイムスタンプを使用して、そのメッセージをキュー内の特定の位置に挿入することができ、その結果、キュー内のウェブサービスメッセージは、そのメッセージがディスペンサマシンにおいて生成された順番で保存される。
【0097】
ステップ908の後、フローチャート900の方法は、ステップ910に進む。ステップ910において、ウェブサービスメッセージは、そのウェブサービスメッセージが内部に保存されたキューに割り当てられた複数のスレッドのうちの1つを使って処理される。
5.コンピュータシステム実施例
【0098】
本明細書に記載したように、本開示の様々な基本要素及び特徴は、アナログ及び/又はデジタル回路を使ったハードウェアで、1つ以上の汎用又は特定用途向けプロセッサによる命令の実行を介したソフトウェアで、又はハードウェア及びソフトウェアの組み合わせとして実施することができることは、関連技術分野(複数可)における熟練者にとって明らかであろう。
【0099】
コンピュータシステムに関する以下の記載は、完全性を図るために提供されている。本開示の実施形態は、ハードウェアで、又はハードウェア及びソフトウェアの組み合わせとして実施されることができる。その結果、本開示の実施形態は、コンピュータシステム又は他の処理システムの環境内で実施されることができる。かかるコンピュータシステム1000の一例が、
図10に示されている。
図3、4、及び8に示したブロックは、1つ以上のコンピュータシステム1000上で実行することができる。更に、
図5~7、及び9に示した方法の各ステップは、1つ以上のコンピュータシステム1000上で実施されることができる。
【0100】
コンピュータシステム1000は、プロセッサ1004などの1つ以上のプロセッサを含む。プロセッサ1004は、特定用途プロセッサ又は汎用プロセッサとすることができる。プロセッサ1004は、通信インフラストラクチャ1002(例えば、バス又はネットワーク)に接続される。様々なソフトウェア実施態様が、この例示的なコンピュータシステムに関して記載されている。この説明を読んだ後に、他のコンピュータシステム及び/又はコンピュータアーキテクチャを使って本開示を実施する方法は、関連技術分野(複数可)における熟練者にとって明らかとなるであろう。
【0101】
また、コンピュータシステム1000は、メインメモリ1006(例えば、
図3,4、及び8に示したブロック、並びに/又は
図5~7、及び9のステップを少なくとも一部分において実施するようなコンピュータプログラム又は他の命令を保存するための)、好ましくはランダムアクセスメモリ(RAM)も含んでもよく、また二次メモリ1008も含んでもよい。二次メモリ1008は、例えば、フロッピーディスクドライブ、磁気テープ装置、光ディスク装置、又はその同類のものを代表とする、ハードディスクドライブ1010及び/又はリムーバブル記憶装置1012を含んでもよい。リムーバブル記憶装置1012は、よく知られた方法により、リムーバブル記憶ユニット816から読み出し、かつ/又はそれに書き込むことができる。リムーバブル記憶ユニット1016は、フロッピーディスク、磁気テープ、光ディスク、又はその同類のものを代表とし、リムーバブル記憶装置1012によって読み込まれ、書き込まれる。当業者には理解されるように、リムーバブル記憶ユニット1016は、コンピュータソフトウェア及び/又はデータを内部に記憶したコンピュータ利用可能な記憶媒体を含む。
【0102】
別の実施態様では、二次メモリ1008は、コンピュータプログラム又は他の命令(例えば、
図3,4、及び8に示したブロック、並びに/又は
図5~7、及び9のステップを少なくとも一部分において実施するようなコンピュータプログラム又は他の命令)が、コンピュータシステム1000の中にロードされるのを可能にする同様な手段を含んでもよい。かかる手段は、例えば、リムーバブル記憶ユニット1018及びインターフェース1014を含んでもよい。かかる手段の例としては、プログラムカートリッジ及びカートリッジインターフェース(ビデオゲーム装置で見出されるものなど)、リムーバブルメモリチップ(EPROM、又はPROMなど)及び関連するソケット、サムドライブ及びUSBポート、並びにソフトウェア及びデータがリムーバブル記憶ユニット1018からコンピュータシステム1000への転送を可能にする他のリムーバブル記憶ユニット1018及びインターフェース1014が挙げられる。
【0103】
また、コンピュータシステム1000は、通信インターフェース1020を含んでもよい。通信インターフェース1020により、ソフトウェア(例えば、
図3,4、及び8に示したブロック、並びに/又は
図5~7、及び9のステップを実施するために使用されるソフトウェア)及びデータが、コンピュータシステム1000と外部装置との間を転送されるのを可能にする。通信インターフェース1020の例としては、モデム、ネットワークインターフェース(イーサネット(登録商標)カードなど)、通信ポート、PCMCIAスロット、及びカードなどが挙げられる。通信インターフェース1020を介して転送されるソフトウェア及びデータの形式は、電子的、電磁的、光学的な信号、又は通信インターフェース1020により受信可能な他の信号である。これらの信号は、通信経路1022を介して通信インターフェース820に提供される。通信経路1022は、信号を搬送し、ワイヤ又はケーブル、光ファイバ、電話回線、携帯電話回線、RF回線、及び他の通信チャネルを使って実装されてもよい。
【0104】
本明細書で用いられているように、用語「コンピュータプログラム媒体」及び「コンピュータ可読媒体」は、一般に、リムーバブル記憶ユニット1016及び1018、又はハードディスクドライブ1010に取り付けられたハードディスクなどの有形記憶媒体を指すのに用いられている。これらのコンピュータプログラム製品は、ソフトウェア(例えば、
図3,4、及び8に示したブロック、並びに/又は
図5~7、及び9のステップを実施するために使用されるソフトウェア)をコンピュータシステム1000に提供するための手段である。
【0105】
コンピュータプログラム(また、コンピュータ制御ロジックとも呼ばれる)は、メインメモリ1006及び/又は二次メモリ1008内に格納される。また、コンピュータプログラムは、通信インターフェース1020を介して受信されてもよい。本明細書に記載したように、かかるコンピュータプログラムは、実行時に、コンピュータシステム1000が本開示を実施することを可能にする。特に、このコンピュータプログラムは、実行時に、プロセッサ1004が、本明細書に記載された任意の方法などの本開示のプロセスを実施することを可能にする。したがって、かかるコンピュータプログラムは、コンピュータシステム1000のコントローラを代表している。本開示がソフトウェアを使って実施される場合、そのソフトウェアは、コンピュータプログラム製品内に格納され、リムーバブル記憶装置1012、インターフェース1014、又は通信インターフェース1020を使ってコンピュータシステム1000にロードされることができる。
【0106】
別の実施形態では、本開示の特徴は、例えば、特定用途向け集積回路(ASIC)及びゲートアレイなどのハードウェアコンポーネントを使ってハードウェア内に最初に実装される。また、本明細書に記載された機能を実行するためにハードウェア最新鋭マシンを実装することは、当業者にとって明らかであろう。
6.結論
【0107】
特定の機能及び関係性の実施を表す機能的な構成ブロックを用いて、様々な実施形態を上記で説明してきた。これらの機能的な基礎的要素の境界は、説明の便宜上、本明細書において任意に定義されている。特定の機能及びこれらの関係が適切に行われる限り、代替の境界を定義することができる。
【0108】
特定の実施形態に関する前述の説明が、本開示の一般的な性質をあまりに完全に明らかにしたため、別の人々が、当業者の知識を適用することにより、必要以上の実験をすることなく、本開示の全般的な概念から逸脱することなく、かかる特定の実施形態を事前に修正し、かつ/又は様々なアプリケーションに適合させることができる。したがって、そのような適合及び修正は、本明細書に提示された教示及び指導に基づいて、開示された実施形態の等価物の意味及び範囲内にあることが意図される。本明細書の表現法又は用語法は、説明を目的とするものであって、限定するものではないことを理解されたく、従って、本明細書の用語法又は表現法は、教示及び指導の観点から当業者によって解釈されるべきである。