(57)【要約】  本開示は、アドミニストレータシステムにおいて、テレメトリデータを包含するメッセージをパラレル及びスケーラブル処理するためのシステム及び方法に関する。このアドミニストレータシステムは、短時間に多くのディスペンサマシンからテレメトリデータを包含する多数のメッセージを受信することができる。それらのメッセージを受信及び処理するために、本開示のシステム及び方法は、メッセージキューアを提供し、複数のキュー、及びその複数のキューの各々の異なるスレッド若しくはプロセス内のメッセージ（又は少なくともメッセージ内のテレメトリデータ）をキューに入れる。各スレッド又はプロセスは、その割り当てられたキューからメッセージを順番に引き出し、メッセージのテレメトリデータを処理する。スレッド又はプロセスは、アドミニストレータシステムの１つ以上の中央処理装置コア上で実行することができる。この設定により、メッセージ処理のスループットに関する水平方向のスケーリングが可能となる。
2019517961.tif 000002
【特許請求の範囲】
【請求項１】
アドミニストレータコントローラであって、
メッセージキューアであって、
ディスペンサマシンからコンピュータネットワークを介して受信されたウェブサービスメッセージを保存するように構成された複数のキューであって、前記複数のキューの数が、前記ディスペンサマシンの数より少ない、複数のキューと、
前記ウェブサービスメッセージが受信されるディスペンサマシンに基づいて、前記コンピュータネットワークを介して受信された前記ウェブサービスメッセージのうちの１つを前記複数のキューのうちの１つ内に配置するように構成されたマッパーと、を含む、メッセージキューアと、
複数のスレッドのうちの異なる１つを前記複数のキューの各々に割り当て、前記複数のメッセージキューに保存された前記ウェブサービスメッセージに包含されるテレメトリデータを処理するように構成されたアドミニストレータウェブサービスプロバイダであって、前記複数のスレッドが、２つ以上の中央処理装置（ＣＰＵ）コア上で実行するように構成されている、アドミニストレータウェブサービスプロバイダと、を備える、アドミニストレータコントローラ。
【請求項２】
前記マッパーは、前記ウェブサービスメッセージが受信される前記ディスペンサマシンに基づいて、前記ウェブサービスメッセージ内のディスペンサマシン識別子のハッシュを実行することによって、前記コンピュータネットワークを介して受信された前記ウェブサービスメッセージを前記複数のキューのうちの前記１つに配置するように構成されている、請求項１に記載のアドミニストレータコントローラ。
【請求項３】
前記ディスペンサマシン識別子の前記ハッシュのハッシュ値が、前記複数のキューのうちの前記１つに対応する、請求項１に記載のアドミニストレータコントローラ。
【請求項４】
前記マッパーは、前記ウェブサービスメッセージが前記複数のキューのうちの前記１つの前記ディスペンサマシンにより生成された他のウェブサービスメッセージに対して、前記ディスペンサマシンにおいていつ生成されたかに基づいて、前記コンピュータネットワークを介して受信された前記ウェブサービスメッセージを前記複数のキューのうちの前記１つに配置するように更に構成されている、請求項１に記載のアドミニストレータコントローラ。
【請求項５】
前記複数のスレッドが、前記テレメトリデータをデータベース中に配置することにより前記複数のメッセージキュー内に保存された前記ウェブサービスメッセージ内に包含される前記テレメトリデータを処理するように構成されている、請求項１に記載のアドミニストレータコントローラ。
【請求項６】
前記複数のスレッドが、前記ディスペンサマシンへの材料の配給、又は前記ディスペンサマシンの保守を支援するために、前記複数のメッセージキュー内に保存された前記ウェブサービスメッセージ内に包含される前記テレメトリデータを処理するように構成されている、請求項１に記載のアドミニストレータコントローラ。
【請求項７】
前記注出マシンが、飲料を注出する、請求項１に記載のアドミニストレータコントローラ。
【請求項８】
前記コンピュータネットワークが、インターネットである、請求項１に記載のアドミニストレータコントローラ。
【請求項９】
コンピュータネットワークを介して受信されたウェブサービスメッセージを、前記ウェブサービスメッセージが受信されるディスペンサマシンに基づいて、複数のキューのうちの１つに配置することと、
前記ウェブサービスメッセージが、前記複数のキューのうちの前記１つの前記ディスペンサマシンにより生成された他のウェブサービスメッセージに対して、前記ディスペンサマシンにおいていつ生成されたかに基づいて、
前記複数のメッセージキュー内のウェブサービスメッセージ内に包含されるテレメトリデータを処理するために、複数のスレッドのうちの別の１つを前記複数のキューの各々に割り当てる前記ディスペンサマシンにおいて、
前記複数のスレッドが、２つ以上の中央処理装置（ＣＰＵ）コア上で実行するように構成されている、方法。
【請求項１０】
前記ウェブサービスメッセージが受信される前記ディスペンサマシンに基づいて、前記コンピュータネットワークを介して受信された前記ウェブサービスメッセージを前記複数のキューのうちの前記１つに配置することが、
前記ウェブサービスメッセージ内のディスペンサマシン識別子のハッシュを実行することを含む、請求項９に記載の方法。
【請求項１１】
前記ディスペンサマシン識別子の前記ハッシュのハッシュ値が、前記複数のキューのうちの前記１つに対応する、請求項９に記載の方法。
【請求項１２】
前記複数のスレッドが、前記テレメトリデータをデータベースの中に配置することによって前記複数のメッセージキュー内の前記ウェブサービスメッセージ内に包含される前記テレメトリデータを処理するように構成されている、請求項９に記載の方法。
【請求項１３】
前記複数のスレッドが、ディスペンサマシンへの材料の配給、又は前記ディスペンサマシンの保守を支援するために、前記複数のメッセージキュー内の前記ウェブサービスメッセージ内に包含される前記テレメトリデータを処理するように構成されている、請求項９に記載の方法。
【請求項１４】
注出マシンが、飲料を注出する、請求項９に記載の方法。
【請求項１５】
前記コンピュータネットワークが、インターネットである、請求項９に記載の方法。
【請求項１６】
アドミニストレータコントローラであって、
メッセージキューアであって、
ディスペンサマシンからコンピュータネットワークを介して受信されたウェブサービスメッセージを保存するように構成された複数のキューと、
前記ウェブサービスメッセージが受信されるディスペンサマシンに基づいて、かつ前記ウェブサービスメッセージが、前記複数のキューのうちの１つの前記ディスペンサマシンにより生成された他のウェブサービスメッセージに対して、前記ディスペンサマシンにおいていつ生成されたかに基づいて、前記コンピュータネットワークを介して受信された前記ウェブサービスメッセージのうちの１つを前記複数のキューのうちの前記１つに配置するように構成されたマッパーと、を含む、メッセージキューアと、
複数のスレッドのうちの別の１つを前記複数のキューの各々に割り当て、前記複数のメッセージキュー内に保存されたウェブサービスメッセージ内に包含されるテレメトリデータを処理するように構成されたアドミニストレータウェブサービスプロバイダであって、前記複数のスレッドが、２つ以上の中央処理装置（ＣＰＵ）コア上で実行するように構成されている、アドミニストレータウェブサービスプロバイダと、を備える、アドミニストレータコントローラ。
【請求項１７】
前記マッパーは、前記ウェブサービスメッセージが前記ウェブサービスメッセージ内のディスペンサマシン識別子のハッシュを実行することにより受信される前記ディスペンサマシンに基づいて、前記コンピュータネットワークを介して受信された前記ウェブサービスメッセージを前記複数のキューのうちの前記１つの中に配置するように構成されている、請求項１６に記載のアドミニストレータコントローラ。
【請求項１８】
前記ディスペンサマシン識別子の前記ハッシュのハッシュ値が、前記複数のキューのうちの前記１つに対応する、請求項１６に記載のアドミニストレータコントローラ。
【請求項１９】
前記複数のスレッドが、前記テレメトリデータをデータベース中に配置することにより前記複数のメッセージキュー内に保存された前記ウェブサービスメッセージ内に包含される前記テレメトリデータを処理するように構成されている、請求項１６に記載のアドミニストレータコントローラ。
【請求項２０】
前記複数のスレッドが、前記ディスペンサマシンへの材料の配給、又は前記ディスペンサマシンの保守を支援するために、前記複数のメッセージキュー内に保存された前記ウェブサービスメッセージ内に包含される前記テレメトリデータを処理するように構成されている、請求項１６に記載のアドミニストレータコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
記載される実施形態は、概して、接続された注出マシンを含む接続されたマシンに関する。
【背景技術】
【０００２】
飲料ディスペンサは、レストラン、カフェテリア、劇場、並びに他の娯楽及び／又は食品サービス会場などの様々な場所で顧客に飲料を注出するのに使用される。従来の飲料ディスペンサは、注出可能な限られた数の飲料タイプ（例えば、６〜１０タイプ）を提供し、高度な特徴を何ら提供しない。より新規な飲料ディスペンサは、主に、これらのディスペンサが注出ヘッド毎に１つ又は２つの飲料タイプを提供するということにもはや機械的に限定されないという事実により、実質的により多く数の飲料タイプ及び組み合わせを提供することができる。例えば、より新規な飲料ディスペンサは、単一の注出ヘッドを使用して、最大１０００種の異なる飲料タイプ及び組み合わせを提供することができる。
【０００３】
組み合わせとは、自動的に混合され、単一の注出ヘッドから注出され得る、提供される飲料タイプの混合物を指し、これは、より新規な飲料ディスペンサにより提供される１つの高度な特徴を表す。注出される組み合わせは、例えば、飲料ディスペンサにおいて顧客が選択した、提供される飲料タイプの個人的な組み合わせ、又は飲料ディスペンサにおいて、選択肢として顧客が利用可能な予め決められたいくつかの組み合わせのうちの１つとすることができる。
【０００４】
利用可能な飲料選択肢の数、及び他の革新的な特徴に関して高度化が進むに従い、会場のオーナー及び／又は操作者が、高度な飲料ディスペンサをコンピュータネットワークを介してアドミニストレータシステムに接続し、その高度な飲料ディスペンサがアドミニストレータシステムにテレメトリデータを提供することを可能にすることが望ましい場合がある。テレメトリデータは、例えば、消費量（例えば、高度な飲料ディスペンサにおいて消費される各飲料タイプ及び組み合わせの量）、並びに状態（例えば、高度な飲料ディスペンサにおける原材料及び／又は供給物の現在の量）に関する高度な飲料ディスペンサにおいて収集されるデータを含むことができる。このアドミニストレータシステムは、テレメトリデータを使用して、例えば、高度な飲料ディスペンサに関連する操作、保守、及び／又は全体的な物流管理を向上させることができる。
【０００５】
更に、同じ理由で、缶／瓶入り飲料、軽食、及び／又は他の品物を販売するマシンなどの他のタイプのディスペンサマシンを、コンピュータネットワークを介してアドミニストレータシステムに接続することが更に望ましい場合がある。これらのディスペンサマシンは、自動販売機と呼ばれることが多い。
【図面の簡単な説明】
【０００６】
本明細書中に組み込まれ、本明細書の一部を形成する添付図面は、本開示を例示し、説明と共に本開示の原理を説明し、かつ関連技術における熟練者が本開示を作製し、使用することを可能にする役割を更に果たす。
【０００７】
【図１】本開示の実施形態に基づいた、飲料ディスペンサの正面斜視図である。
【０００８】
【図２】本開示の実施形態に基づいた、飲料ディスペンサのブロック図である。
【０００９】
【図３】本開示の実施形態に基づいた、コンピュータネットワークを介してテレメトリデータを提供するためのシステムを示す図である。
【００１０】
【図４】本開示の実施形態に基づいた、コンピュータネットワークを介してテレメトリデータをセキュアに提供するためのシステムを示す図である。
【００１１】
【図５】本開示の実施形態に基づいた、テレメトリデータを包含するウェブサービス要求メッセージを収集し、コンピュータネットワークを介してアドミニストレータコントローラにセキュアに送信するための方法のフローチャートである。
【００１２】
【図６】本開示の実施形態に基づいた、ハートビートメッセージを生成し、コンピュータネットワークを介してアドミニストレータコントローラに送信するための方法のフローチャートである。
【００１３】
【図７】本開示の実施形態に基づいた、テレメトリデータを包含するウェブサービスメッセージをディスペンサコントローラからセキュアに受信及び処理するための方法のフローチャートである。
【００１４】
【図８】本開示の実施形態に基づいた、テレメトリデータを包含するメッセージをパラレル及びスケーラブル処理するためのアドミニストレータコントローラを例示する図である。
【００１５】
【図９】本開示の実施形態に基づいた、ウェブサービスメッセージをディスペンサコントローラから受信及び処理するための方法のフローチャートを例示する図である。
【００１６】
【図１０】本開示の態様を実施するのに使用されることができる一例のコンピュータシステムのブロック図である。
【００１７】
本開示は、添付図面を参照して説明される。構成要素が最初に現れた図面では、対応する参照番号中の左端の数字（複数可）によって、代表して表示されている。
【発明を実施するための形態】
【００１８】
本開示は、これ以降、添付図面に例示された本開示の実施形態を参照して詳細に説明される。「一実施形態」、「実施形態」、「例示的な実施形態」等の表現は、記載された実施形態が、特定の特徴、構造、又は特性を含み得るが、あらゆる実施形態が、必ずしも、その特定の特徴、構造、又は特性を含み得るわけではない。更に、このような句は、必ずしも同一の実施形態に言及するものではない。更に、特定の特徴、構造、又は特性が実施形態に関連して記載されるとき、明確に記載されているかどうかに関わりなく他の実施形態に関連するかかる特徴、構造、又は特性に影響を与えることは、当業者の知見内であることが提示される。
１．概要
【００１９】
ディスペンサマシンがコンピュータネットワークを介してアドミニストレータシステムにテレメトリデータを提供することを可能にするため、そのアドミニストレータシステムは、ウェブサービスをディスペンサマシンに露出することができる。ウェブサービスは、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、拡張マークアップ言語（ＸＭＬ）、及びＪａｖａＳｃｒｉｐｔ（登録商標）対象表記（ＪＳＯＮ）を使ったクライアントとサーバとの間でコンピュータネットワークを介してメッセージを交換することが可能なメッセージングフレームワークである。一般的に、２つのタイプのメッセージ、すなわち、要求メッセージ及び応答メッセージが交換される。クライアントは、要求メッセージをコンピュータネットワークを介して、ウェブサービスを露出しているサーバに送信する。要求メッセージは、引数及び要求を符号化し、その引数と共にサーバにおいて動作を実行（又はサブルーチンを実行）する。引数と共に動作を実行した後、ホストは、コンピュータネットワークを介して、動作結果と一緒にクライアントに応答メッセージを返信することができる。
【００２０】
ウェブサービスは、階層化アーキテクチャを有し、典型的には、最下層から最上層まで、少なくともネットワーク層、トランスポート層、及びパッケージング層を含む。ネットワーク層は、データがどのようにアドレス指定され、送信され、コンピュータネットワークを介してルーティングされるべきかなどの、ウェブサービスの最も基本的な通信ニーズを規定する。トランスポート層は、ネットワーク層の上位においてアプリケーション間通信を可能にする役割を担当し、例えば、ＨＴＴＰなどの技術を含む。パッケージング層は、トランスポート層によりネットワークを介して送信される前にパッケージされるべきフォーマットデータを規定する。シンプルオブジェクトアクセスプロトコル（ＳＯＡＰ）及びリプレゼンテイショナルステイトトランスファ（ＲＥＳＴ）は、最も一般的なパッケージングフォーマットのうちの２つである。ＳＯＡＰは、上述の要求及び応答メッセージを構成するためのＸＭＬベースのエンベロープを定義する。ＲＥＳＴは、要求及び応答メッセージを構成するためのエンベロープとして多種多様な機械可読フォーマットを使用することができ、ＸＭＬ及びＪＳＯＮを含む。
【００２１】
ウェブサービスアーキテクチャの各層は、メッセージの完全性、認証、認可、及び秘匿性などのセキュリティの懸案に特に対処しない。その結果、コンピュータネットワークを介してディスペンサマシン接続をアドミニストレータシステムに提供するウェブサービスを露出することは、アドミニストレータシステム及びウェブサービスメッセージにコンピュータネットワーク接続の他の非認可ユーザ及び装置を不必要に提供し得る。
【００２２】
本開示は、コンピュータネットワーク上に露出されたウェブサービスを介してアドミニストレータシステムにディスペンサマシンのテレメトリデータをセキュアに提供するためのシステム及び方法に関する。露出されたウェブサービスをセキュリティ保護するため、本開示のシステム及び方法は、メッセージの完全性、認証、認可、及び秘匿性のうちの１つ以上を提供することができるディスペンサマシン及びアドミニストレータシステムにおけるセキュアなゲートウェイを提供する。このセキュアなゲートウェイは、ディスペンサマシン及びアドミニストレータシステムにおいて要求及び応答メッセージをそれぞれ創出するアプリケーションから分離して実装される。セキュアなゲートウェイは、要求及び応答メッセージを創出するアプリケーションから分離して実装されるため、要求及び応答メッセージを創出するアプリケーションは、メッセージのセキュリティを考慮することなく創出及び変更されることができる。
【００２３】
本開示は、更に、アドミニストレータシステムにおいてテレメトリデータを包含するウェブサービスメッセージのパラレル及びスケーラブル処理をするためのシステム及び方法に関する。アドミニストレータシステムは、短い時間内に多数のディスペンサマシンからテレメトリデータを包含する非常に多くのウェブサービスメッセージを受信することができる。それらのウェブサービスメッセージを受信及び処理するため、本開示のシステム及び方法は、メッセージキューアを提供し、そのウェブサービスメッセージ（又はウェブサービスメッセージ内の少なくともテレメトリデータ）を複数のキュー、及びその複数のキューの各々の異なるスレッド又はプロセス（「スレッド」）に登録する。ウェブサービスメッセージが、割り当てられたキュー内に保存されている順番で、各スレッドは、その割り当てられたキューからウェブサービスメッセージを引き出し、そのウェブサービスメッセージのテレメトリデータを処理することができる。スレッドは、アドミニストレータシステムにおいて、１つ以上の中央処理装置（ＣＰＵ）コア上で実行することができる。この設定により、ウェブサービスメッセージ処理のスループットに関する水平方向のスケーリングが可能になる。例えば、ウェブサービスメッセージ処理のスループットを向上させるため、ＣＰＵコアの数を増やし、かつ／又はキューの数（並びに、それに呼応して、それらのキューに割り当てられたスレッドの数）を増やすことができる。
【００２４】
アドミニストレータシステムにおいてテレメトリデータを包含するウェブサービスメッセージのパラレル及びスケーラブル処理をするためのシステム及び方法は、ウェブサービスメッセージがそれらのそれぞれのディスペンサマシンにおいて生成される順番に処理されることを更に保証することができる。このことは、例えば、ディスペンサマシンの保守及び運用に関係する判断が、変更前のテレメトリデータに基づいてなされていないことを保証するのに役立ち得る。
【００２５】
そのような順序付けられたウェブサービスメッセージ処理機能を提供するため、メッセージキューアは、ウェブサービスメッセージが受信された送信元のディスペンサマシンに基づいて、複数のキューのうちの１つ内にテレメトリデータを包含するウェブサービスメッセージを配置することができる。例えば、メッセージキューアは、ウェブサービスメッセージ内に含まれたディスペンサマシン識別子を使用して、そのウェブサービスメッセージを複数のキューのうちの特定の１つにマッピングすることができ、その結果、ディスペンサマシンからのウェブサービスメッセージが同じキュー内に配置される。更に、一旦メッセージキューアが、ウェブサービスメッセージを配置すべき複数のキューのうちの特定の１つを決定すると、メッセージキューアは、ウェブサービスメッセージがディスペンサマシンにおいていつ生成されたかに基づいて、そのウェブサービスメッセージをキューの特定の位置に挿入することができる。例えば、メッセージキューアは、ウェブサービスメッセージ連続番号又はウェブサービスメッセージ内に含まれたタイムスタンプを使用して、特定の位置にあるウェブサービスメッセージをキュー内に挿入することができ、その結果、キュー内のウェブサービスメッセージは、ウェブサービスメッセージが生成された順番で保存される。
【００２６】
本開示のこれら及び他の特徴を更に記載する前に、本開示の実施形態が機能することができる例示的な動作環境が、次項で提供される。
２．例示的な動作環境
【００２７】
図１は、本開示の実施形態が実施されることができるディスペンサ１００を示す。ディスペンサ１００は、本体１０８に結合されたベース１０２を備えることができる。ベース１０２は、本体１０８を直立の位置に支持する役割を果たすことができる。ベース１０２は、注出場所１０６と共に雫受け１０４を備えることができ、この注出場所は、雫受け１０４により占有される領域内に配置されている。ユーザ（例えば、顧客）は、注出場所１０６にユーザのカップを置き、ユーザの望みの飲料を受け取ることができる。
【００２８】
本体１０８は、ユーザから命令を受信するためのユーザインターフェース１１０を備えることができる。ユーザインターフェース１１０は、ユーザに情報を表示し、かつ／又はユーザからの命令を受信するように構成された表示スクリーン１１２を備えることができる。表示スクリーン１１２は、液晶表示器（ＬＣＤ）タッチスクリーン、又は発光ダイオード（ＬＥＤ）タッチスクリーンなどのタッチスクリーンとすることができる。ユーザは、飲料の注出を起動することができ、例えば、ユーザインターフェース１１０とやり取りすることによってユーザが望む飲料を選択すると、その飲料はディスペンサ１００により注出される。
【００２９】
図２は、本開示の実施形態に基づいた、図１のディスペンサ１００などのディスペンサのコンポーネントのブロック図２００を示す。ブロック図２００は、２０１６年２月５日に出願された米国特許出願第１５／０１６，４６６号に記載された垂直注出マニホールドのうちの１つなどの注出マニホールド２１０を含むことができ、その出願は、その全体において参照により本明細書に組み込まれる。
【００３０】
ブロック図２００は、１つ以上のベース液ソース２３０を含むことができる。ベース液ソース２３０は、以下に限定されないが、水道水ソース（例えば、水道管）及び炭酸水ソース（例えば、炭酸水槽又はカーボネータ）とすることができる。ベース液ソース２３０は、ベース液送達管２３４を介して注出マニホールド２１０に結合されることができる。ベース液送達管２３４と連通するバルブ／ポンプ２３５は、ベース液送達管２３４を通って注出マニホールド２１０の中へ流れるベース液の流量を制御するように構成されることができる。
【００３１】
ブロック図２００は、１つ以上の原材料ソース２４０を含むことができる。原材料ソース２４０は、複数の原材料２４２（２４２−１〜２４２−ｎ）を含むことができる。原材料２４２としては、以下に限定されないが、甘味料（例えば、砂糖又は人工甘味料）、シロップ、又は香味料（例えば、コーラシロップ若しくは香味料、ブランド炭酸シロップ若しくは香味料（例えば、Ｍｏｕｎｔａｉｎ  Ｄｅｗ（登録商標）又はＳｉｅｒｒａ  Ｍｉｓｔ（登録商標））、オレンジ香味料、ライム香味料、チェリー香味料、お茶香味料等）、又は他の液体添加物（例えば、ビタミン、酸類（例えば、クエン酸）、塩類、又は着色剤）を挙げることができる。原材料２４２は、以下に限定されないが、カートリッジ又はバッグなどの容器内にパッケージングされることができる。各原材料２４２は、原材料送達管２４４を介してディスペンサ２１０に送達されることができる。原材料送達管２４４と連通するバルブ／ポンプ２４５は、原材料送達管２４４を通って注出マニホールド２１０の中へ流れる原材料の流量を制御するように構成されることができる。
【００３２】
ディスペンサコントローラ２２０が、図１のユーザインターフェース１１０などのユーザインターフェースからの命令を制御及び受信するように構成されることができる。ディスペンサコントローラ２２０は、例えば、ユーザインターフェースから受信された命令に基づいて、ブロック図２００により表されたディスペンサの動作を制御するように構成されることができる。例えば、ディスペンサコントローラ２２０は、飲料タイプ又は組み合わせの注出を制御することができ、それらの両方が、ベース液と、注出マニホールド２１０からの１つ以上の原材料２４２との混合物とすることができる。ディスペンサコントローラ２２０は、バルブ／ポンプ２３５を制御することによって、ベース液ソース２３０からのベース液の流量を制御することができる。ディスペンサコントローラ２２０は、また、バルブ／ポンプ２４５を制御することによって、原材料ソース２４０からの原材料２４２の流量を制御することもできる。バルブ／ポンプ２４５を制御することによって、ディスペンサコントローラ２２０は、原材料管２４４内部の原材料２４２の圧力を制御することができる。
【００３３】
いくつかの実施形態では、ディスペンサコントローラ２２０は、センサ２２７を含むことができ、かつ／又はそのセンサを読み取るように構成されることができる。センサ２２７は、ベース液送達管２３４内部のベース液の圧力を監視し、かつ／又は原材料送達管２４４内部の原材料の圧力を監視するための圧力センサを含むことができる。センサ２２７は、また、送達管２３４及び２４４内部のベース液及び原材料の流量をそれぞれ測定し、かつ／又は注出マニホールド２１０内部の均一な流量の程度を測定するための流量センサ（例えば、フローメータ）も含むことができる。いくつかの実施形態では、センサ２２７は、原材料ソース２４０内に残っている各原材料２４２の量を測定するための液面センサを含むことができる。
【００３４】
また、センサ２２７は、以下のものに限定されないが、（１）炭酸ガスタンクのレベル（例えば、１つ、２つ、又は３つ以上の炭酸ガスレギュレータ）；（２）水に炭酸ガスを含ませるように構成されたカーボネータの炭酸化ヘッドの圧力；（３）ベース液及び／又は原材料２４２が貯蔵された部屋（例えば、奥の部屋）の周囲温度（それによって、１つ以上のベース液及び／又は原材料２４２が、予め決められた温度レベルに、又は予め決められた温度範囲内に維持されているかどうかを監視する）；（４）ベース液と関連付けられた水の濾過装置パラメータ（例えば、水圧、フィルタ上の差圧）；（５）ベース液と関連付けられた水又は炭酸水のｐＨ；（６）原材料２４２のうちの１つが収容されている原材料容器の有効期限（例えば、原材料容器内部に関連付けられたバーコードを読み取ることによって）、を監視するように構成されたセンサも含むことができる。センサ２２７は、ディスペンサコントローラ２２０に有線又は無線ネットワークを介して信号を送信するように構成されることができる。ディスペンサコントローラ２２０は、センサ２２７により収集されたデータ（例えば、圧力及び流量の値）に基づいて、ブロック図２００により表されたディスペンサの動作を制御するように構成されることができる。
【００３５】
いくつかの実施形態では、ディスペンサコントローラ２２０は、埋込式コンピュータ２２４を更に含むことができる。いくつかの実施形態では、埋込式コンピュータ２２４は、（１）注出マニホールド２１０により注出された飲料タイプ及び組み合わせの量、（２）原材料ソース２４０内に残っている原材料２４２の量、（３）ディスペンサマシンのユーザインターフェースから収集されたユーザ識別コード、並びに（４）上述のセンサ２２７からの他のデータ（例えば、流量データ、ベース液及び／又は原材料２４２が貯蔵されている部屋の周囲温度、炭酸ガスタンクのレベル、炭酸化ヘッドの圧力、水の濾過装置パラメータ等）を含むディスペンサテレメトリデータを収集することができる。いくつかの実施形態では、埋込式コンピュータ２２４は、ディスペンサテレメトリデータを記憶し、そのディスペンサテレメトリデータを、インターネットのようなコンピュータネットワークを介して、アドミニストレータシステムのコントローラに送信することができる。アドミニストレーションコントローラは、ブロック図２００により表されたディスペンサの操作者、又はブロック図２００により表されたディスペンサの動作と関連付けられた他のいくつかのエンティティによって提供及び／又は管理されることができる。
【００３６】
いくつかの実施形態では、保存されたテレメトリデータ（例えば、注出マニホールド２１０により注出された飲料タイプ及び組み合わせの量に関する情報）の全部又は一部が、アドミニストレータコントローラに定期的に送信されることができる。いくつかの実施形態では、保存されたテレメトリデータ（例えば、上述のセンサ２２７からの他のデータ）の全部又は一部が、その保存されたテレメトリデータと関連付けられたアラートレベル又は閾値レベルに基づいて、アドミニストレータコントローラに送信されることができる。例えば、ベース液及び／又は原材料２４２が貯蔵された部屋の周囲温度に関する保存されたテレメトリデータは、その部屋の周囲温度が、許容温度範囲の外側又はほぼ外側の予め決められた特定の閾値を超えるときに、アドミニストレーションコントローラに送信されることができる。別の例では、炭酸ガスタンクのレベルに関する保存されたテレメトリデータは、炭酸ガスタンクのレベルが低いか、又は空の状態を示す予め決められた特定の閾値を超えるときに、アドミニストレータコントローラに送信されることができる。
【００３７】
いくつかの実施形態では、アドミニストレータコントローラは、テレメトリデータを使用して、ブロック図２００により表されたディスペンサへの原材料の配給、及び／又はブロック図２００により表されたディスペンサの保守を支援することができる。いくつかの実施形態では、アドミニストレータコントローラは、テレメトリデータを使用して、ユーザの嗜好及び消費データ（例えば、マニホールド２１０により注出された飲料のタイプ及び量）を追跡することができ、これらの嗜好及び消費データはブロック図２００により表されたディスペンサと関係するので、それらは分析され、消費者傾向を予測し、かつ／又は将来のビジネス判断を支援することができる。他の実施形態では、アドミニストレータコントローラは、テレメトリデータを使用して、ディスペンサマシン保守作業、顧客満足度を向上させ、かつ／又はディスペンサマシンにおける部品故障を予測し、かつ／又はディスペンサマシンの予防保守サービスをスケジュールに組み込むことができる。
３．セキュアなゲートウェイ
【００３８】
ディスペンサマシンがコンピュータネットワークを介してアドミニストレータシステムのコントローラにテレメトリデータを提供することを可能にするため、アドミニストレータコントローラは、ウェブサービスをディスペンサマシンに露出することができる。上述したように、ウェブサービスは、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、拡張マークアップ言語（ＸＭＬ）、及びＪａｖａＳｃｒｉｐｔ（登録商標）対象表記（ＪＳＯＮ）などのインターネット技術を使って、クライアントとサーバとの間のコンピュータネットワークを介してメッセージを交換することが可能なメッセージングフレームワークである。一般的に、２つのタイプのメッセージ、すなわち、要求メッセージ及び応答メッセージが交換される。クライアントは、要求メッセージを、コンピュータネットワークを介して、ウェブサービスを露出しているサーバに送出する。要求メッセージは、引数及び要求を符号化し、その引数と共にサーバにおいて動作を実行する（又はサブルーチンを実行する）。引数と共に動作を実行した後、ホストは、コンピュータネットワークを介して、動作結果と一緒にクライアントに応答メッセージを返信することができる。
【００３９】
図３は、本開示の実施形態に基づいた、露出されたウェブサービスを使ってコンピュータネットワークを介したテレメトリデータを提供するためのシステム３００を例示する。システム３００は、アドミニストレータコントローラ３０２及びディスペンサコントローラ２２０を備え、そのディスペンサコントローラは、図２に関して上述された。ディスペンサコントローラ２２０は、例として提供されており、これに限定されない。他のディスペンサコントローラ（例えば、異なるディスペンサマシンに実装されているディスペンサコントローラ）は、当業者により理解されるように、本開示の範囲及び趣旨から逸脱することなくシステム３００内で使用されることができる。
【００４０】
動作中、アドミニストレータコントローラ３０２のウェブサービスプロバイダ（ＷＳ−プロバイダ）３０４は、ウェブサービスを露出し、そのウェブサービスは、ディスペンサコントローラ２２０のウェブサービスクライアント（ＷＳ−クライアント）３０６がインターネットなどのコンピュータネットワーク３０８を介してアドミニストレータコントローラ３０２にテレメトリデータを提供するのを可能にする。テレメトリデータは、図２に関して上述されたように、センサ２２７から収集されたデータ、並びに他のセンサ、及び／又はディスペンサコントローラ２２０が実装されているディスペンサマシンの周辺装置から収集された他のデータを含むことができる。
【００４１】
ＷＳ−クライアント３０６は、Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（ＳＯＡＰ）、ＲＥｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ（ＲＥＳＴ）、又は他のいくつかのパッケージングフォーマットに従ってフォーマットされるようなウェブサービス要求メッセージ３１０内にテレメトリデータをパッケージングすることができる。ウェブサービス要求メッセージ３１０は、省略可能なヘッダ３１４及び本体３１６を包含するエンベロープ３１２を含むことができる。ヘッダ３１４は、使用時に、１つ以上の情報ブロックを含むことができ、それらのブロックは、メッセージが１つ以上の受信エンティティによってどのように処理されるべきかを指定する。本体３１６は、１つ以上の引数、及び１つ以上の引数を用いてＷＳ−プロバイダ３０４において動作を実行する（又はサブルーチンを実行する）ための要求として、テレメトリデータを含むことができる。このテレメトリデータ、及びその動作を実行するための要求は、ＸＭＬ又はＪＳＯＮの構文規則で本体３１６内に記述されることができる。また、その動作を実行するための要求は、一意リソース識別子（ＵＲＩ）として含むような、かなり多数の形式で本体３１６の外部においても記述されることができる。
【００４２】
ＷＳ−クライアント３０６がウェブサービス要求メッセージ３１０内で動作を実行するためにテレメトリデータ及び要求をパッケージングした後、ＷＳ−クライアント３０６は、コンピュータネットワーク３０８を介してウェブサービス要求メッセージ３１０を送信することができる。一実施形態では、ＷＳ−クライアント３０６は、ＨＴＴＰ又はＨＴＴＰセキュア（ＨＴＴＰＳ）を使ってコンピュータネットワーク３０８を介したウェブサービス要求メッセージ３１０を送信することができる。
【００４３】
ＷＳ−プロバイダ３０４は、コンピュータネットワーク３０８を介して、ＷＳ−クライアント３０６からウェブサービス要求メッセージ３１０を受信し、そしてウェブサービス要求メッセージ３１０を展開して、１つ以上の引数と共に動作を実行するため、テレメトリデータ及び要求を含む１つ以上の引数を復元する。ＷＳ−プロバイダ３０４は、テレメトリデータを含む１つ以上の引数と共にその動作を実質的に実行し、そして、必要に応じてその動作の結果をウェブサービス応答メッセージ３１８の中にパッケージングする。
その動作には、例えば、テレメトリデータを構文解析すること、及びテレメトリデータの様々な値をデータベースに入力することを含めることができる。データベース中のデータは、その後、使用され、ディスペンサマシンへの原材料の配給、及び／又はディスペンサマシンの保守を支援することができる。いくつかの実施形態では、データベース内のデータを使用して、ユーザの嗜好及び消費データ（例えば、ディスペンサマシンにより注出された飲料のタイプ及び量）を追跡することができ、これらの嗜好及び消費データがディスペンサマシンと関連するので、それらは分析され、消費者傾向を予測し、かつ／又は将来のビジネス判断を支援することができる。他の実施形態では、データベース内のデータを使用して、ディスペンサマシン保守作業、顧客満足度を向上させ、かつ／又はディスペンサマシンにおける部品故障を予測し、かつ／又はディスペンサマシンの予防保守サービスをスケジュールに組み込むことができる。
【００４４】
ウェブサービス要求メッセージ３１０と同様に、ＷＳ−プロバイダ３０４は、ＳＯＡＰ、ＲＥＳＴ、又は他のいくつかのパッケージングフォーマットに従ってウェブサービス応答メッセージ３１８をフォーマットすることができる。ウェブサービス応答メッセージ３１８は、省略可能なヘッダ３２２及び本体３２４を包含するエンベロープ３２０を含むことができる。ヘッダ３２２は、使用時に、１つ以上の情報ブロックを含むことができ、それらのブロックは、メッセージが１つ以上の受信エンティティによってどのように処理されるべきかを指定する。本体３２４は、その動作の結果を含むことができる。その動作の結果は、ＸＭＬ又はＪＳＯＮの構文規則で本体３２４内に記述されることができる。
【００４５】
ＷＳ−プロバイダ３０４がウェブサービス応答メッセージ３１８内に動作結果をパッケージングした後、ＷＳ−プロバイダ３０４は、コンピュータネットワーク３０８を介してウェブサービス応答メッセージ３１８を送信することができる。一実施形態では、ＷＳ−プロバイダ３０４は、ＨＴＴＰ又はＨＴＴＰＳを使ってコンピュータネットワーク３０８を介したウェブサービス応答メッセージ３１８を送信する。
【００４６】
多連ディスペンサ、及びディスペンサコントローラ２２０以外のディスペンサコントローラは、ウェブサービス要求メッセージをアドミニストレータコントローラ３０２に送信することができることに注意されたい。これらのウェブサービス要求メッセージは、上述のように、ウェブサービス要求メッセージ３１０と同様に処理されることができるが、異なる動作又はサブルーチンを実行するための異なるデータ（例えば、テレメトリデータ以外）、及び／又は要求を含んでもよい。
【００４７】
ＷＳ−プロバイダ３０４により露出されたウェブサービス、及び一般的なウェブサービスに伴う１つの課題は、ウェブサービスの階層化アーキテクチャが、メッセージの完全性、認証、認可、及び秘匿性などのセキュリティの懸案に特に対処しないことである。その結果、コンピュータネットワーク３０８を介してディスペンサコントローラ２２０及び他のディスペンサコントローラ接続をアドミニストレータコントローラ３０２に申し出るウェブサービスを露出することは、アドミニストレータコントローラ３０２、並びにウェブサービス要求及び応答メッセージ３１０及び３１８に、コンピュータネットワーク３０８の他の非認可ユーザ及び装置の接続を提供可能とすることであり、好ましくない。
【００４８】
露出されたウェブサービスをセキュリティ保護するため、セキュアなゲートウェイが、ディスペンサコントローラ２２０及びアドミニストレータコントローラ３０２において提供され、メッセージの完全性、認証、認可、及び秘匿性のうちの１つ以上を提供することができる。このセキュアなゲートウェイは、ディスペンサコントローラ２２０及びアドミニストレータコントローラ３０２のそれぞれにおいて、要求及び応答メッセージを創出するアプリケーションから分離して、すなわち、ＷＳ−クライアント３０６及びＷＳ−プロバイダ３０４から分離して、実装されることができる。セキュアなゲートウェイは、ＷＳ−クライアント３０６及びＷＳ−プロバイダ３０４から分離して実装されるため、これらのアプリケーションは、メッセージのセキュリティを考慮することなく創出及び変更されることができ、これらのアプリケーションは、セキュアなゲートウェイにより透過的に取り扱われることができる。
【００４９】
図４は、本開示の実施形態に基づいた、そのようなシステム４００を例示する。特に、システム４００は、前述した図３のシステム３００と同じ基本的な構成を有し、同じ基本的な方法で動作する。しかしながら、図４のシステム４００中のディスペンサコントローラ２２０及びアドミニストレータコントローラ３０２は、それぞれ、セキュアなゲートウェイを更に含む。より詳細には、ディスペンサコントローラ２２０は、ディスペンサウェブサービスゲートウェイ（ディスペンサＷＳ−ゲートウェイ）４０２を更に含み、アドミニストレータコントローラ３０２は、アドミニストレータウェブサービスゲートウェイ（アドミニストレータＷＳ−ゲートウェイ）４０４を更に含む。
【００５０】
動作中、ディスペンサＷＳ−ゲートウェイ４０２は、ウェブサービス要求メッセージ３１０がコンピュータネットワーク３０８を介してアドミニストレータコントローラ３０２に送信される前に、ディスペンサＷＳ−クライアント３０６により生成されたウェブサービス要求メッセージ３１０を傍受するように構成されている。一実施形態では、ＷＳ−ゲートウェイ４０２は、ＨＴＴＰ要求メッセージの本体内にウェブサービス要求メッセージ３１０を包含するＨＴＴＰ要求メッセージを傍受するように構成されたＨＴＴＰプロキシサーバとして実装されている。
【００５１】
一旦、ディスペンサＷＳ−ゲートウェイ４０２がウェブサービス要求メッセージ３１０を傍受すると、ディスペンサＷＳ−ゲートウェイ４０２は、ウェブサービス要求メッセージ３１０の本体３１６内のテレメトリデータ（又は他のデータ）の全部又は少なくとも一部を暗号化し、デジタル署名を生成することができる。ディスペンサＷＳ−ゲートウェイ４０２は、そのデジタル署名をウェブサービス要求メッセージ３１６のヘッダ３１４の中に挿入することができる。アドミニストレータコントローラ３０２は、デジタル署名を使用してテレメトリデータ（又はテレメトリデータの少なくとも一部、及び／又は署名された他のデータ）を認証する、すなわちテレメトリデータがディスペンサコントローラ２２０からもたらされたことを証明することができる。
【００５２】
一実施形態では、ディスペンサＷＳ−ゲートウェイ４０２は、ディスペンサコントローラ２２０と関連付けられた秘密鍵を使って、ウェブサービス要求メッセージ３１６の本体３１６内のテレメトリデータ（又は他のデータ）の全部、又は少なくとも一部を暗号化することができる。このディスペンサコントローラ２２０と関連付けられた秘密鍵は、秘密鍵及び公開鍵を含む非対称暗号鍵ペアの一部である。公開鍵は、アドミニストレータコントローラ３０２により公開又は秘匿されることができ、これに対して、秘密鍵は、ディスペンサコントローラ２２０により秘匿され、配布されない。アドミニストレータコントローラ３０２は、ディスペンサコントローラ２２０と関連付けられた公開鍵を使用してデジタル署名を検証することができる（例えば、暗号解読を通じて）。その検証が成功した場合、秘密鍵を使って暗号化されたデータだけが公開鍵を使用して暗号解読されることができることから、アドミニストレータコントローラ３０２は、ディスペンサコントローラ２２０と関連付けられた秘密鍵が、デジタル署名の生成に使用されるテレメトリデータの暗号化に使用されたことを確信することができる。
【００５３】
別の実施形態では、テレメトリデータを直接暗号化するのではなく、ディスペンサＷＳ−ゲートウェイ４０２が、ディスペンサコントローラ２２０と関連付けられた秘密鍵を使って、テレメトリデータの一方向ハッシュから得られるメッセージダイジェストを暗号化することができる。この一方向ハッシュを使用して、テレメトリデータの完全性を保証し、かつ／又はデジタル署名を生成するのに必要な処理時間を短縮することができる。
【００５４】
一旦、ディスペンサＷＳ−ゲートウェイ４０２がウェブサービス要求メッセージ３０６を傍受すると、ディスペンサＷＳ−ゲートウェイ４０２は、ウェブサービス要求メッセージ３１０の本体３１６内のテレメトリデータ（又は他のデータ）の全部又は少なくとも一部を更に暗号化し、テレメトリデータがコンピュータネットワーク３０８をわたるときに、テレメトリデータの秘匿性を保証することができる。テレメトリデータを暗号化した後、ディスペンサＷＳ−ゲートウェイ４０２は、暗号化されたテレメトリデータを、ウェブサービス要求メッセージ３１６の本体３１６の中に再挿入することができる。
【００５５】
一実施形態では、ディスペンサＷＳ−ゲートウェイ４０２は、アドミニストレータコントローラ３０２と関連付けられた公開鍵を使って、ウェブサービス要求メッセージ３１６の本体３１６内のテレメトリデータ（又は他のデータ）の全部、又は少なくとも一部を暗号化することができる。ディスペンサコントローラ２２０と関連付けられた公開鍵と同様に、アドミニストレータコントローラ３０２と関連付けられた公開鍵は、公開鍵及び秘密鍵を含む非対称暗号鍵ペアの一部である。公開鍵は、自由に公開及び配付され、これに対して、秘密鍵は、アドミニストレータコントローラ３０２により秘匿され、配布されない。
【００５６】
別の実施形態では、ディスペンサＷＳ−ゲートウェイ４０２は、対称鍵を使って、ウェブサービス要求メッセージ３１６の本体３１６内のテレメトリデータ（又は他のデータ）の全部、又は少なくとも一部を暗号化することができる。ディスペンサＷＳ−ゲートウェイ４０２は、アドミニストレータコントローラ３０２と関連付けられた公開鍵を有する対称鍵を暗号化し、ウェブサービス要求メッセージ３１０のヘッダ３１４又は本体３１６内にその対称鍵を挿入することができる。
【００５７】
ディスペンサＷＳ−ゲートウェイ４０２が、デジタル署名を挿入し、かつ／又は本体３１６内のテレメトリデータを暗号化した後、ディスペンサＷＳ−ゲートウェイ４０２は、例えば、ＨＴＴＰ又はＨＴＴＰＳを使って、コンピュータネットワーク３０８を介してウェブサービス要求メッセージ３１０を送信することができる。アドミニストレータＷＳ−ゲートウェイ４０４は、コンピュータネットワーク３０８を介してウェブサービス要求メッセージ３１０を受信し、テレメトリデータの暗号解読、テレメトリデータの認証、及び、ディスペンサコントローラ２２０がウェブサービス要求メッセージ３１０内で要求された動作（又は要求されたサブルーチン）を実行するように認可されるかどうかの判定、のうちの１つ以上を実行するように構成されている。
【００５８】
ウェブサービス要求メッセージ３１０の本体３１６内のテレメトリデータ（又は他のデータ）が、アドミニストレータコントローラ３０２と関連付けられた公開鍵を使って暗号化された場合、アドミニストレータＷＳ−ゲートウェイ４０４は、アドミニストレータコントローラ３０２と関連付けられた秘密鍵を使って、暗号化されたテレメトリデータを暗号解読することができる。ウェブサービス要求メッセージ３１０の本体３１６内のテレメトリデータ（又は他のデータ）が、上述のように、対称鍵を使って暗号化された場合、アドミニストレータＷＳ−ゲートウェイ４０４は、ウェブサービス要求メッセージ３１０のヘッダ３１４又は本体３１６からの暗号化された対称鍵の複製を取得し、アドミニストレータコントローラ３０２と関連付けられた秘密鍵を使ってその対称鍵を暗号解読し、次いで、暗号解読された対称鍵を使用して、暗号化されたテレメトリデータを暗号解読することができる。一旦暗号解読されると、アドミニストレータＷＳ−ゲートウェイ４０４は、ウェブサービス要求メッセージ３１０内の暗号化されたテレメトリデータを、暗号解読されたテレメトリデータに置き換えることができる。
【００５９】
認証が実行され得る場合、アドミニストレータＷＳ−ゲートウェイ４０４は、ウェブサービス要求メッセージ３１０のヘッダ３１４内のデジタル署名を注出し、ディスペンサコントローラ２２０と関連付けられた公開鍵を使ってそのデジタル署名を暗号解読することができる。次いで、デジタル署名を創出するように署名されたテレメトリデータ（又は他のデータ）は、ウェブサービス要求メッセージ３１０の本体３１６内のテレメトリデータと比較され、そのテレメトリデータがディスペンサコントローラ２２０からもたらされたことを認証することができる。ディスペンサＷＳ−ゲートウェイ４０２が、ウェブサービス要求メッセージ３１０の本体３１６内のテレメトリデータ（又は他のデータ）の一方向ハッシュからデジタル署名を創出した例では、アドミニストレータＷＳ−ゲートウェイ４０４は、本体３１６内のテレメトリデータを、暗号解読されたデジタル署名と比較する前に、本体３１６内のテレメトリデータの同じ一方向ハッシュを実行することができる。
【００６０】
認可が実行され得る場合、アドミニストレータＷＳ−ゲートウェイ４０４は、ディスペンサコントローラ２２０が、ウェブサービス要求メッセージ３１０内で要求されたウェブサービスサブルーチンを使用するように認可されるかどうかを判定することができる。一実施形態では、アドミニストレータＷＳ−ゲートウェイ４０４は、ウェブサービス要求メッセージ３１０内の要求された動作を実行するように認可されるディスペンサコントローラ及び／又はディスペンサのリストをチェックすることができる。ディスペンサコントローラ２２０、又はディスペンサコントローラ２２０が実装されているディスペンサが、リストに載っている場合、アドミニストレータＷＳ−ゲートウェイ４０４は、処理するため、ウェブサービス要求メッセージ３１０をアドミニストレータＷＳ−プロバイダ３０４に通過させることができる。これに対して、ディスペンサコントローラ２２０、又はディスペンサコントローラ２２０が実装されているディスペンサが、リストに載っていない場合、アドミニストレータＷＳ−ゲートウェイ４０４は、ウェブサービス要求メッセージ３１０を廃棄し、ウェブサービス要求メッセージ３１０がアドミニストレータＷＳ−プロバイダ３０４によって処理されるのを防止することができる。
【００６１】
別の実施形態では、認可が実行され得る場合、アドミニストレータＷＳ−ゲートウェイ４０４は、ウェブサービスが、公開されたウェブサービスの設定可能なリストに基づいて、公開されるかどうかを判定することができる。認可が実行されない場合、ディスペンサマシンによる非公開ウェブサービスのウェブサービス呼び出しは、拒否及び廃棄されることができる。このメカニズムにより任意の非公開ウェブサービスを保護し、このメカニズムを使用して、いかなる理由に対しても、どんな時にも、ウェブサービスをサービス中止にすることができる。
【００６２】
アドミニストレータＷＳ−ゲートウェイ４０４からウェブサービス要求メッセージ３１０を受信した後（暗号解読されたテレメトリデータに置き換えられた、本体３１６内の任意の暗号化されたテレメトリデータと共に）、アドミニストレータコントローラ３０２は、図３に関して上述したように、ウェブサービス要求メッセージ３１０を処理することができる。アドミニストレータＷＳ−ゲートウェイ４０４及びディスペンサＷＳ−ゲートウェイ４０２は、上述したように、それぞれ、他のゲートウェイの機能を実行し、ウェブサービス要求メッセージ３１０と同様のウェブサービス応答メッセージ３１８をセキュリティ保護することができることに注意されたい。
【００６３】
一実施形態では、ディスペンサコントローラ２２０により送信されたすべてのウェブサービス要求メッセージが、必ずしもディスペンサＷＳ−ゲートウェイ４０２により署名及び／又は暗号化される必要はない。ディスペンサＷＳ−ゲートウェイ４０２により署名及び／又は暗号化されないようなかかるメッセージは、「帯域外」に送信されると言われ、これに対して、署名及び／又は暗号化されるメッセージは、「帯域内」に送信されると言われることがある。
【００６４】
例えば、「ハートビート」メッセージは、ディスペンサＷＳ−クライアント３０６又はディスペンサＷＳ−ゲートウェイ４０２のどちらか一方により生成され、ディスペンサＷＳ−ゲートウェイ４０２によりコンピュータネットワーク３０８を介してアドミニストレータコントローラ３０２に帯域外で送信されることができる。これらのハートビートメッセージは、ディスペンサコントローラ２２０（又はディスペンサコントローラ２２０が実装されているディスペンサ）が存在し、かつ利用可能であるようなアドミニストレータコントローラ３０２に定期的に、又は反復ベースで信号を送信されることができる。
【００６５】
ここで、図５を参照すると、本開示の実施形態に基づいた、テレメトリデータを収集し、コンピュータネットワークを介してディスペンサマシンからアドミニストレータコントローラにそのテレメトリデータを包含するウェブサービス要求メッセージをセキュアに送信するための方法であるフローチャート５００が例示されている。フローチャート５００の方法は、上述したように、また図４で例示したように、ディスペンサＷＳ−クライアント３０６及びディスペンサＷＳ−ゲートウェイ４０２により実施されることができる。ただし、この方法は、他のディスペンサＷＳ−クライアント及びディスペンサＷＳ−ゲートウェイによってもなお実施されることができることに注意されたい。これらのアプリケーションの各々により実行されるフローチャート５００のステップは、図５にラベルで表示されている。フローチャート５００のいくつかのステップは、必ずしも図５に示した順番どおりに生じさせる必要はないことに、更に注意されたい。
【００６６】
フローチャート５００の方法は、ステップ５０２から開始する。ステップ５０２において、ディスペンサマシンのテレメトリデータが収集される。テレメトリデータとしては、例えば、消費量（例えば、ディスペンサマシンで消費された各品目の量）及びステータス（例えば、ディスペンサマシンにおける原材料、供給物、及び／又は品目の現在量）に関してディスペンサマシンで収集されたデータが挙げられ得る。また、テレメトリデータとしては、図２に関して上述した特定のタイプのデータも含まれ得る。
【００６７】
ステップ５０２においてテレメトリデータを収集した後、フローチャート５００の方法は、ステップ５０４に進む。ステップ５０４において、ウェブサービス要求メッセージが、テレメトリデータ、及び引数とするテレメトリデータと共に動作を実行する（又はサブルーチンを実行する）ような要求を備えた、図４に示すアドミニストレータコントローラ３０２などのアドミニストレータコントローラに送信される。このウェブサービス要求メッセージは、ＳＯＡＰ、ＲＥＳＴ、又は他のいくつかのパッケージングフォーマットに従ってパッケージングされることができる。ウェブサービス要求メッセージは、省略可能なヘッダ、及び本体を包含するエンベロープを含むことができる。このヘッダは、使用時に、１つ以上の情報ブロックを含むことができ、それらのブロックは、メッセージが１つ以上の受信エンティティによってどのように処理されるべきかを指定する。このテレメトリ、及びその動作を実行するための要求は、ＸＭＬ又はＪＳＯＮの構文規則で本体内に記述されることができる。また、その動作を実行するための要求は、本体の外部においても記述されることができる。
【００６８】
ステップ５０４の後、フローチャート５００の方法は、ステップ５０６に進む。ステップ５０６において、ウェブサービス要求メッセージは、インターネットなどのコンピュータネットワークを介してアドミニストレータコントローラに送信される前に傍受される。ＨＴＴＰプロキシを使用して、ウェブサービス要求メッセージを傍受することができる。
【００６９】
ステップ５０６の後、フローチャート５００の方法は、ステップ５０８に進む。ステップ５０８において、傍受されたウェブサービス要求メッセージ内のテレメトリデータは、テレメトリデータの暗号化、又はテレメトリデータの一方向ハッシュの暗号化によって、必要に応じて署名される。テレメトリデータ、又はテレメトリデータの一方向ハッシュは、ディスペンサマシンと関連付けられた秘密鍵を使って署名されることができる。その結果得られたデジタル署名は、ウェブサービス要求メッセージのヘッダに挿入されることができる。
【００７０】
ステップ５０８の後、フローチャート５００の方法は、ステップ５１０に進む。ステップ５１０において、ウェブサービス要求メッセージの本体内のテレメトリデータは、必要に応じて暗号化される。テレメトリデータは、アドミニストレータコントローラと関連付けられた公開鍵、又は対称鍵を使って暗号化されることができる。対称鍵を使用してテレメトリデータを暗号化する場合、対称鍵は、アドミニストレータコントローラと関連付けられた公開鍵を使って暗号化され、アドミニストレータコントローラがその暗号化されたテレメトリデータを暗号解読することが可能となるように、ウェブサービス要求メッセージのヘッダ又は本体内に挿入されることができる。
【００７１】
ステップ５１０の後、フローチャート５００の方法は、ステップ５１２に進む。ステップ５１２において、ウェブサービス要求メッセージは、コンピュータネットワークを介してアドミニストレータコントローラに送信される。ウェブサービス要求メッセージは、ＨＴＴＰ又はＨＴＴＰＳを使って、コンピュータネットワークを介して送信されることができる。
【００７２】
ここで、図６を参照すると、本開示の実施形態に基づいた、ハートビートメッセージを生成し、コンピュータネットワークを介してディスペンサコントローラからアドミニストレータコントローラにそのハートビートメッセージを送信するための方法のフローチャート６００が例示されている。フローチャート６００の方法は、上述したように、また図４で例示したように、ディスペンサＷＳ−クライアント３０６又はディスペンサＷＳ−ゲートウェイ４０２により実施されることができる。ただし、この方法は、他のディスペンサＷＳ−クライアント又はディスペンサＷＳ−ゲートウェイによってもなお実施されることができる。
【００７３】
フローチャート６００の方法は、ステップ６０２から開始する。ステップ６０２において、ハートビートメッセージが生成される。このハートビートメッセージは、ディスペンサコントローラ、及び／又はそのディスペンサコントローラが実装されるディスペンサマシンのハードウェア識別子などの識別子を含むことができる。
【００７４】
ステップ６０２の後、フローチャート６００の方法は、ステップ６０４に進む。ステップ６０４において、ハートビートメッセージは、インターネットなどのコンピュータネットワークを介してアドミニストレータコントローラに「帯域外」で送信される。「帯域外」で送信されるメッセージは、送信される前に、アプリケーションレベルにおいて署名及び／又は暗号化されない。ハートビートメッセージは、ディスペンサコントローラ（又はディスペンサコントローラが実装されているディスペンサ）が存在し、かつ利用可能であるようなアドミニストレータコントローラに定期的に、又は反復ベースで信号を生成及び送信されることができる。
【００７５】
ここで、図７を参照すると、本開示の実施形態に基づいた、アドミニストレータコントローラにおいてディスペンサコントローラからのテレメトリデータを包含するウェブサービス要求メッセージをセキュアに受信及び処理するための方法のフローチャート７００が例示されている。フローチャート７００の方法は、上述したように、また図４で例示したように、アドミニストレータＷＳ−ゲートウェイ４０４及びアドミニストレータＷＳ−プロバイダ３０４により実施されることができる。ただし、この方法は、他のアドミニストレータＷＳ−ゲートウェイ及びアドミニストレータＷＳ−プロバイダによってもなお実施されることができることに注意されたい。これらのアプリケーションの各々により実行されるフローチャート７００のステップは、図７にラベルで表示されている。フローチャート７００のいくつかのステップは、必ずしも図７に示した順番どおりに生じさせる必要はないことに、更に注意されたい。
【００７６】
フローチャート７００の方法は、ステップ７０２から開始する。ステップ７０２において、ウェブサービス要求メッセージが、インターネットなどのコンピュータネットワークを介してディスペンサマシンから受信される。
【００７７】
ステップ７０２の後、フローチャート７００の方法は、ステップ７０４に進む。ステップ７０４において、メッセージは、そのメッセージがハートビートメッセージであるかどうかを判定するために検査される。メッセージがハートビートメッセージである場合、フローチャート７００の方法は、ステップ７１４に進み、ハートビートメッセージが処理される。メッセージがハートビートメッセージでない場合、フローチャート７００の方法は、ステップ７０６に進む。
【００７８】
ステップ７０６において、ウェブサービス要求メッセージの本体内の暗号化されたテレメトリデータが、暗号解読される。テレメトリデータは、アドミニストレータコントローラと関連付けられた秘密鍵を使って、又はウェブサービス要求メッセージのヘッダ又は本体内に含まれた対称鍵を使って、暗号解読されることができる。
【００７９】
ステップ７０６の後、フローチャート７００の方法は、ステップ７０８に進む。ステップ７０８において、テレメトリデータの真正性が検証される。具体的には、ウェブサービス要求メッセージのヘッダ内のデジタル署名が抽出され、ディスペンサコントローラと関連付けられた公開鍵を使って暗号解読される。次いで、デジタル署名を創出するように署名されたテレメトリデータは、ウェブサービス要求メッセージの本体内のテレメトリデータと比較され、そのテレメトリデータがディスペンサコントローラからもたらされたことを認証することができる。デジタル署名がウェブサービス要求メッセージの本体内のテレメトリデータの一方向ハッシュから創出された例では、本体内のテレメトリデータの同じ一方向ハッシュが、本体内のテレメトリデータを、暗号解読されたデジタル署名と比較する前に、実行されることができる。テレメトリデータが、その比較（すなわち、不一致）に基づいて真正ではないと判定された場合、フローチャート７００の方法は、ウェブサービス要求メッセージが拒否されるステップ７１０に進む。これに対して、テレメトリデータが、その比較（すなわち、一致）に基づいて真正であると判定された場合、フローチャート７００の方法は、ステップ７１２に進む。
【００８０】
ステップ７１２において、ディスペンサコントローラが、ウェブサービス要求メッセージ内で動作（又はサブルーチン）を実行するためにウェブサービスを使用することを認可されるかどうかについて判定がなされる。一実施形態では、ウェブサービス要求メッセージ内で要求されたウェブサービスサブルーチンを使用するように認可されるディスペンサコントローラ及び／又はディスペンサのリストがチェックされる。ディスペンサコントローラ、又はディスペンサコントローラが実装されているディスペンサが、リストに載っていない場合、フローチャート７００の方法は、ウェブサービス要求メッセージが拒否されるステップ７１０に進む。これに対して、ディスペンサコントローラ、又はディスペンサコントローラが実装されているディスペンサが、リストに載っている場合、フローチャート７００の方法は、ウェブサービス要求メッセージが処理される（例えば、図３に関して上述したように）ステップ７１４に進む。
４．テレメトリデータのパラレル及びスケーラブル処理
【００８１】
上述したように、１つのアドミニストレータシステムに数千台若しくは数十万台又はそれを超えるディスペンサマシン、及び／又は他のタイプのマシンが接続され得る場合、並びにこれらのマシンのすべてが、アドミニストレータシステムにテレメトリデータを同時に送信し得る場合、膨大なウェブサービスメッセージを受信し、かつ迅速に処理することができるアドミニストレータシステムの更なるニーズが存在する。加えて、複数のマシンがアドミニストレータシステムと接続又は切断される効率的な方法でスケール変更することが可能なスループットを有するようなアドミニストレータシステムを提供することへの更なるニーズが存在する。
【００８２】
図８は、本開示の実施形態に基づいた、テレメトリデータを包含するメッセージをパラレル及びスケーラブル処理するためのアドミニストレータコントローラ８００を例示している。アドミニストレータコントローラ８００は、上述した図４のアドミニストレータコントローラ３０２と同じ基本的な構成を有し、かつ同じ基本的な方法で動作する。ただし、アドミニストレータコントローラ８００は、メッセージキューア８０２を更に含む。アドミニストレータＷＳ−ゲートウェイ４０４が、アドミニストレータコントローラ８００内において取捨選択できるコンポーネントであることに注意されたい。
【００８３】
動作中、ディスペンサマシンからのテレメトリデータを包含するウェブサービスメッセージは、上述したように、最初にアドミニストレータＷＳ−ゲートウェイ４０４によって受信及び処理される。アドミニストレータＷＳ−ゲートウェイ４０４によって処理された後、ウェブサービスメッセージは、メッセージキューア８０２に伝えられる。
【００８４】
メッセージキューア８０２は、マッパー８０４及び複数のキュー８０６を含む。マッパー８０４は、各ウェブサービスメッセージをキュー８０６のそれぞれの１つにマッピング又は配置するように構成されている。キュー８０６は、メモリ内にウェブサービスメッセージを保存するために使用されるデータ構造である。
【００８５】
キュー８０６内に保存されたウェブサービスメッセージを処理するため、アドミニストレータＷＳ−プロバイダ３０４は、複数のスレッド又はプロセス（「スレッド」）８０８を含む。スレッド８０８のうちの別の１つは、各キュー８０６に割り当てられることができる。各スレッド８０８は、ウェブサービスメッセージが、その割り当てられたキュー８０６内に保存された順番で、その割り当てられたキュー８０６からウェブサービスメッセージを引き出し、ウェブサービスメッセージのテレメトリデータを処理することができる。
【００８６】
スレッド８０８によるテレメトリデータの処理は、例えば、テレメトリデータを構文解析すること、及びテレメトリデータの様々な値をデータベースに入力することを含むことができる。その後、データベース内のデータは、使用され、ディスペンサマシンへの材料（例えば、原材料）の配給、及び／又はディスペンサマシンの保守を支援することができる。いくつかの実施形態では、データベース内のデータを使用して、ユーザの嗜好及び消費データ（例えば、ディスペンサマシンにより注出された飲料のタイプ及び量）を追跡することができ、これらの嗜好及び消費データがディスペンサマシンと関連するため、それらは分析され、消費者傾向を予測し、かつ／又は将来のビジネス判断を支援することができる。他の実施形態では、データベース内のデータを使用して、ディスペンサマシン保守作業、顧客満足度を向上させ、かつ／又はディスペンサマシンにおける部品故障を予測し、かつ／又はディスペンサマシンの予防保守サービスをスケジュールに組み込むことができる。
【００８７】
スレッド８０８は、アドミニストレータコントローラ８１０における中央処理装置（ＣＰＵ）コア８１０又は仮想コア上で実行することができる。コア８１０は、１つ以上のサーバ内、又はそれらのサーバを横断的に実装されることができる。コア８１０の数に基づいて、少なくともいくつかのスレッド８０８は、ウェブサービスメッセージが処理されるスループットを向上させるように、パラレルに実行することができる。メッセージ処理のスループットを更に向上させるため、コア８１０の数を増やすことができ、かつ／又はキュー８０６の数（また、それに呼応して、キュー８０６に割り当てられるスレッド８０８の数）を増やすことができる。そのような増加は、ウェブサービスメッセージをアドミニストレータコントローラ８００に送信するディスペンサマシンの数の増加に応じてなされることができる。
【００８８】
マッパー８０４は、ウェブサービスメッセージがそれらのそれぞれのディスペンサマシンで生成された順番に処理されることを保証するように更に構成されることができる。このことは、例えば、ディスペンサマシンの保守及び動作に関する判断が、変更前の古いテレメトリデータ、又は非時系列的な順番のテレメトリデータに基づいて行われていないことを保証するのに役立ち得る。
【００８９】
順番が付けられたかかるメッセージ処理機能を提供するため、マッパー８０４は、そのメッセージが受信された送信元のディスペンサマシンに基づいて、テレメトリデータを包含するウェブサービスメッセージをキュー８０６のうちの１つ中に配置することができる。例えば、マッパー８０４は、ウェブサービスメッセージ内に含まれるディスペンサマシン識別子を使用して、そのウェブサービスメッセージをキュー８０６のうちの特定の１つにマッピングすることができ、その結果、ディスペンサマシンからのメッセージは、同じキュー内に配置され、従って同じスレッド８０８により処理される。
【００９０】
キュー８０６の数、及びスレッド８０８の数は、通常、ウェブサービスメッセージをアドミニストレータコントローラ８００に送信するディスペンサマシンの数よりもはるかに少ない。かかるシナリオにおいて、マッパー８０４は、ハッシュ関数を使用して、そのウェブサービスメッセージをキュー８０６のうちの特定の１つにマッピングすることができる。より具体的には、マッパー８０４は、ハッシュ関数を使用してウェブサービスメッセージ内に含まれるディスペンサマシン識別子をハッシュし、その結果得られたハッシュ値を使用してウェブサービスメッセージをキュー８０６のうちの特定の１つに割り当てることができる。
【００９１】
一旦、マッパー８０４が、ウェブサービスメッセージを配置するためのキュー８０６のうちの特定の１つを決定すると、マッパー８０４は、そのメッセージがディスペンサマシンにおいていつ生成されたかに基づいて、ウェブサービスメッセージをキューの特定の位置に挿入することができる。例えば、マッパー８０４は、ウェブサービスメッセージ内に含まれるメッセージ一連番号又はタイムスタンプを使用して、そのメッセージをキュー内の特定の位置に挿入することができ、その結果、キュー内のウェブサービスメッセージは、そのメッセージが生成された順番に保存される。
【００９２】
ここで、図９を参照すると、本開示の実施形態に基づいた、ディスペンサマシンからのウェブサービスメッセージを受信及び処理するための方法であるフローチャート９００が例示されている。フローチャート９００の方法は、上述したように、また図８で例示したように、アドミニストレータコントローラ８００により実施されることができる。ただし、この方法は、他のアドミニストレータコントローラによってもなお実施されることができることに注意されたい。フローチャート９００のいくつかのステップは、取捨選択可能であり、また必ずしも図９に示した順番どおりに生じさせる必要はないことに、更に注意されたい。
【００９３】
フローチャート９００の方法は、ステップ９０２から開始する。ステップ９０２において、ウェブサービスメッセージが、インターネットなどのコンピュータネットワークを介してディスペンサマシンから受信される。
【００９４】
ステップ９０２の後、フローチャート９００の方法は、ステップ９０４に進む。ステップ９０４において、ウェブサービスメッセージ内のディスペンサマシン識別子のハッシュが実行される。
【００９５】
ステップ９０４の後、フローチャート９００の方法は、ステップ９０６に進む。ステップ９０６において、複数のキューのうちの１つが、ディスペンサマシン識別子のハッシュの、その結果得られたハッシュ値に基づいて、識別される。同じハッシュ値が、同じディスペンサマシン識別子の場合に毎回生成されるため、ディスペンサマシンから受信されたウェブサービスメッセージは、同じキューに配置されることになる。
【００９６】
ステップ９０６の後、フローチャート９００の方法は、ステップ９０８に進む。ステップ９０８において、ウェブサービスメッセージは、そのウェブサービスメッセージがディスペンサマシンにおいていつ生成されたかに基づいて決定された位置における識別されたキューの中に配置される。例えば、ウェブサービスメッセージ内に含まれるメッセージ一連番号又はタイムスタンプを使用して、そのメッセージをキュー内の特定の位置に挿入することができ、その結果、キュー内のウェブサービスメッセージは、そのメッセージがディスペンサマシンにおいて生成された順番で保存される。
【００９７】
ステップ９０８の後、フローチャート９００の方法は、ステップ９１０に進む。ステップ９１０において、ウェブサービスメッセージは、そのウェブサービスメッセージが内部に保存されたキューに割り当てられた複数のスレッドのうちの１つを使って処理される。
５．コンピュータシステム実施例
【００９８】
本明細書に記載したように、本開示の様々な基本要素及び特徴は、アナログ及び／又はデジタル回路を使ったハードウェアで、１つ以上の汎用又は特定用途向けプロセッサによる命令の実行を介したソフトウェアで、又はハードウェア及びソフトウェアの組み合わせとして実施することができることは、関連技術分野（複数可）における熟練者にとって明らかであろう。
【００９９】
コンピュータシステムに関する以下の記載は、完全性を図るために提供されている。本開示の実施形態は、ハードウェアで、又はハードウェア及びソフトウェアの組み合わせとして実施されることができる。その結果、本開示の実施形態は、コンピュータシステム又は他の処理システムの環境内で実施されることができる。かかるコンピュータシステム１０００の一例が、図１０に示されている。図３、４、及び８に示したブロックは、１つ以上のコンピュータシステム１０００上で実行することができる。更に、図５〜７、及び９に示した方法の各ステップは、１つ以上のコンピュータシステム１０００上で実施されることができる。
【０１００】
コンピュータシステム１０００は、プロセッサ１００４などの１つ以上のプロセッサを含む。プロセッサ１００４は、特定用途プロセッサ又は汎用プロセッサとすることができる。プロセッサ１００４は、通信インフラストラクチャ１００２（例えば、バス又はネットワーク）に接続される。様々なソフトウェア実施態様が、この例示的なコンピュータシステムに関して記載されている。この説明を読んだ後に、他のコンピュータシステム及び／又はコンピュータアーキテクチャを使って本開示を実施する方法は、関連技術分野（複数可）における熟練者にとって明らかとなるであろう。
【０１０１】
また、コンピュータシステム１０００は、メインメモリ１００６（例えば、図３，４、及び８に示したブロック、並びに／又は図５〜７、及び９のステップを少なくとも一部分において実施するようなコンピュータプログラム又は他の命令を保存するための）、好ましくはランダムアクセスメモリ（ＲＡＭ）も含んでもよく、また二次メモリ１００８も含んでもよい。二次メモリ１００８は、例えば、フロッピーディスクドライブ、磁気テープ装置、光ディスク装置、又はその同類のものを代表とする、ハードディスクドライブ１０１０及び／又はリムーバブル記憶装置１０１２を含んでもよい。リムーバブル記憶装置１０１２は、よく知られた方法により、リムーバブル記憶ユニット８１６から読み出し、かつ／又はそれに書き込むことができる。リムーバブル記憶ユニット１０１６は、フロッピーディスク、磁気テープ、光ディスク、又はその同類のものを代表とし、リムーバブル記憶装置１０１２によって読み込まれ、書き込まれる。当業者には理解されるように、リムーバブル記憶ユニット１０１６は、コンピュータソフトウェア及び／又はデータを内部に記憶したコンピュータ利用可能な記憶媒体を含む。
【０１０２】
別の実施態様では、二次メモリ１００８は、コンピュータプログラム又は他の命令（例えば、図３，４、及び８に示したブロック、並びに／又は図５〜７、及び９のステップを少なくとも一部分において実施するようなコンピュータプログラム又は他の命令）が、コンピュータシステム１０００の中にロードされるのを可能にする同様な手段を含んでもよい。かかる手段は、例えば、リムーバブル記憶ユニット１０１８及びインターフェース１０１４を含んでもよい。かかる手段の例としては、プログラムカートリッジ及びカートリッジインターフェース（ビデオゲーム装置で見出されるものなど）、リムーバブルメモリチップ（ＥＰＲＯＭ、又はＰＲＯＭなど）及び関連するソケット、サムドライブ及びＵＳＢポート、並びにソフトウェア及びデータがリムーバブル記憶ユニット１０１８からコンピュータシステム１０００への転送を可能にする他のリムーバブル記憶ユニット１０１８及びインターフェース１０１４が挙げられる。
【０１０３】
また、コンピュータシステム１０００は、通信インターフェース１０２０を含んでもよい。通信インターフェース１０２０により、ソフトウェア（例えば、図３，４、及び８に示したブロック、並びに／又は図５〜７、及び９のステップを実施するために使用されるソフトウェア）及びデータが、コンピュータシステム１０００と外部装置との間を転送されるのを可能にする。通信インターフェース１０２０の例としては、モデム、ネットワークインターフェース（イーサネット（登録商標）カードなど）、通信ポート、ＰＣＭＣＩＡスロット、及びカードなどが挙げられる。通信インターフェース１０２０を介して転送されるソフトウェア及びデータの形式は、電子的、電磁的、光学的な信号、又は通信インターフェース１０２０により受信可能な他の信号である。これらの信号は、通信経路１０２２を介して通信インターフェース８２０に提供される。通信経路１０２２は、信号を搬送し、ワイヤ又はケーブル、光ファイバ、電話回線、携帯電話回線、ＲＦ回線、及び他の通信チャネルを使って実装されてもよい。
【０１０４】
本明細書で用いられているように、用語「コンピュータプログラム媒体」及び「コンピュータ可読媒体」は、一般に、リムーバブル記憶ユニット１０１６及び１０１８、又はハードディスクドライブ１０１０に取り付けられたハードディスクなどの有形記憶媒体を指すのに用いられている。これらのコンピュータプログラム製品は、ソフトウェア（例えば、図３，４、及び８に示したブロック、並びに／又は図５〜７、及び９のステップを実施するために使用されるソフトウェア）をコンピュータシステム１０００に提供するための手段である。
【０１０５】
コンピュータプログラム（また、コンピュータ制御ロジックとも呼ばれる）は、メインメモリ１００６及び／又は二次メモリ１００８内に格納される。また、コンピュータプログラムは、通信インターフェース１０２０を介して受信されてもよい。本明細書に記載したように、かかるコンピュータプログラムは、実行時に、コンピュータシステム１０００が本開示を実施することを可能にする。特に、このコンピュータプログラムは、実行時に、プロセッサ１００４が、本明細書に記載された任意の方法などの本開示のプロセスを実施することを可能にする。したがって、かかるコンピュータプログラムは、コンピュータシステム１０００のコントローラを代表している。本開示がソフトウェアを使って実施される場合、そのソフトウェアは、コンピュータプログラム製品内に格納され、リムーバブル記憶装置１０１２、インターフェース１０１４、又は通信インターフェース１０２０を使ってコンピュータシステム１０００にロードされることができる。
【０１０６】
別の実施形態では、本開示の特徴は、例えば、特定用途向け集積回路（ＡＳＩＣ）及びゲートアレイなどのハードウェアコンポーネントを使ってハードウェア内に最初に実装される。また、本明細書に記載された機能を実行するためにハードウェア最新鋭マシンを実装することは、当業者にとって明らかであろう。
６．結論
【０１０７】
特定の機能及び関係性の実施を表す機能的な構成ブロックを用いて、様々な実施形態を上記で説明してきた。これらの機能的な基礎的要素の境界は、説明の便宜上、本明細書において任意に定義されている。特定の機能及びこれらの関係が適切に行われる限り、代替の境界を定義することができる。
【０１０８】
特定の実施形態に関する前述の説明が、本開示の一般的な性質をあまりに完全に明らかにしたため、別の人々が、当業者の知識を適用することにより、必要以上の実験をすることなく、本開示の全般的な概念から逸脱することなく、かかる特定の実施形態を事前に修正し、かつ／又は様々なアプリケーションに適合させることができる。したがって、そのような適合及び修正は、本明細書に提示された教示及び指導に基づいて、開示された実施形態の等価物の意味及び範囲内にあることが意図される。本明細書の表現法又は用語法は、説明を目的とするものであって、限定するものではないことを理解されたく、従って、本明細書の用語法又は表現法は、教示及び指導の観点から当業者によって解釈されるべきである。
【図１】
2019517961.tif 000003
【図２】
2019517961.tif 000004
【図３】
2019517961.tif 000005
【図４】
2019517961.tif 000006
【図５】
2019517961.tif 000007
【図６】
2019517961.tif 000008
【図７】
2019517961.tif 000009
【図８】
2019517961.tif 000010
【図９】
2019517961.tif 000011
【図１０】
2019517961.tif 000012
【国際調査報告】
2019517961.tif 000013