(57)【特許請求の範囲】
【請求項１】
アプリケーションストアシステムであって、
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサに接続されたメモリと
を備え、前記メモリは、コンピュータ実行可能命令を記憶し、前記コンピュータ実行可能命令は前記プロセッサによって実行されると、前記アプリケーションストアシステムに、
第１のコンピューティングデバイス上に分散アプリケーションをインストールさせ、または前記第１のコンピューティングデバイス上の前記分散アプリケーションをアクティブ化するための要求を受信させ、前記第１のコンピューティングデバイスはスマートユーティリティメータを含み、および前記要求は前記スマートユーティリティメータのシリアル番号または一意の識別子を含み、
前記スマートユーティリティメータの前記シリアル番号または前記一意の識別子の少なくとも一部に基づいて、前記分散アプリケーションの適合するバージョンを決定させ、
前記第１のコンピューティングデバイスによる実行のために前記分散アプリケーションの前記適合するバージョンの第１の部分を前記第１のコンピューティングデバイスに提供させ、
前記第１のコンピューティングデバイスとは別の第２のコンピューティングデバイスによる実行のために前記分散アプリケーションの前記適合するバージョンの第２の部分を前記第２のコンピューティングデバイスに提供させ、
前記分散アプリケーションの前記適合するバージョンの前記第１の部分は、前記第２のコンピューティングデバイス上のアプリケーションプログラミングインターフェース（ＡＰＩ）の呼び出しにより、前記分散アプリケーションの前記適合するバージョンの前記第２の部分に、前記分散アプリケーションの前記適合するバージョンの前記第１の部分の処理をオフロードするように構成され、前記分散アプリケーションの前記適合するバージョンの前記第２の部分によるオフロードの処理結果は、前記第１のコンピューティングデバイス上のＡＰＩの呼び出しにより応答され、前記分散アプリケーションの前記適合するバージョンの前記第１の部分は、前記分散アプリケーションの前記適合するバージョンの前記第２の部分と同時に動作するように構成されることを特徴とするアプリケーションストアシステム。
【請求項２】
前記第２のコンピューティングデバイスは、ユーティリティサプライヤサーバ、クラウドコンピューティングリソース、パーソナルコンピュータ、モバイルデバイス、電気自動車充電器、分散された発電源、ホームエリアネットワークデバイス、トランス、アプライアンス、またはインバータを含むことを特徴とする請求項１に記載のアプリケーションストアシステム。
【請求項３】
前記分散アプリケーションの前記適合するバージョンの前記第１の部分は、第１のオペレーティングシステム上で動作するように構成され、および前記分散アプリケーションの前記適合するバージョンの前記第２の部分は、前記第１のオペレーティングシステムとは異なる第２のオペレーティングシステム上で動作するように構成されることを特徴とする請求項１に記載のアプリケーションストアシステム。
【請求項４】
前記分散アプリケーションの前記適合するバージョンの前記第１の部分は、前記分散アプリケーションの前記適合するバージョンの前記第２の部分とインターフェース接続し、および前記分散アプリケーションの前記適合するバージョンの前記第２の部分の機能および／またはデータを利用するように構成されることを特徴とする請求項１に記載のアプリケーションストアシステム。
【請求項５】
前記コンピュータ実行可能命令は前記プロセッサによって実行されると、前記アプリケーションストアシステムに、前記第１のコンピューティングデバイスおよび前記第２のコンピューティングデバイスとは異なる第３のコンピューティングデバイスによる実行のために前記分散アプリケーションの前記適合するバージョンの第３の部分を前記第３のコンピューティングデバイスに提供させることを特徴とする請求項１に記載のアプリケーションストアシステム。
【請求項６】
スマートユーティリティメータであって、
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサに通信可能に接続されたメモリと、
を備え、前記メモリは、前記プロセッサによって実行可能な分散アプリケーションの適合するバージョンの第１の部分およびコンピュータ実行可能命令を記憶し、前記適合するバージョンは、アプリケーションストアシステムによって前記スマートユーティリティメータのシリアル番号または一意の識別子の少なくとも一部に基づいて決定され、前記第１の部分は、前記アプリケーションストアシステムより提供され、前記コンピュータ実行可能命令は前記プロセッサによって実行されると、前記スマートユーティリティメータに、
第１のオペレーティングシステムを使用して、リソースの消費を測定することを含む動作の前記第１の部分を実行させ、
前記第１のオペレーティングシステムとは異なる第２のオペレーティングシステムのリソースを含む遠隔コンピューティングリソースにインストールされた前記分散アプリケーションの前記適合するバージョンの第２の部分と通信させ、前記遠隔コンピューティングリソースに前記分散アプリケーションの前記適合するバージョンの前記第２の部分を実行させ、
前記遠隔コンピューティングリソースから応答を受信させ、前記応答は、前記遠隔コンピューティングリソースによる前記分散アプリケーションの前記適合するバージョンの前記第２の部分の実行の結果を含み、
前記分散アプリケーションの前記適合するバージョンの前記第１の部分は、前記分散アプリケーションの前記適合するバージョンの前記第２の部分のアプリケーションプログラミングインターフェース（ＡＰＩ）の呼び出しにより、前記分散アプリケーションの前記適合するバージョンの前記第２の部分に、前記分散アプリケーションの前記適合するバージョンの前記第１の部分の処理をオフロードするように構成され、前記遠隔コンピューティングリソースからの前記応答は、前記分散アプリケーションの前記適合するバージョンの前記第１の部分のＡＰＩの呼び出しを含み、前記分散アプリケーションの前記適合するバージョンの前記第１の部分は、前記分散アプリケーションの前記適合するバージョンの前記第２の部分と同時に動作するように構成されることを特徴とするスマートユーティリティメータ。
【請求項７】
前記分散アプリケーションの前記適合するバージョンの前記第２の部分は、気象情報、リソース価格情報、リソース需要情報、リソース供給情報、人口統計データ、または検証データを取得することを含むことを特徴とする請求項６に記載のスマートユーティリティメータ。
【請求項８】
前記通信は、前記分散アプリケーションの前記適合するバージョンの前記第２の部分のＡＰＩに対する呼出しを含むことを特徴とする請求項６に記載のスマートユーティリティメータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プラットフォームを通じた分散アプリケーションに関する。
【背景技術】
【０００２】
電気、水道、および天然ガスメータなどのユーティリティメータは、単純にユーティリティ消費を測定し消費測定値を表示する隔離されたデバイスから、ユーティリティ通信ネットワークを介して自動的にリソース消費測定値を報告することができる接続されたデバイスであるいわゆる「スマートメータ」に進化している。そのようなメータは、必要とされる機能を実施するためにますます複雑で専門化されたソフトウェアを利用している。不都合なことに、ソフトウェア更新プロセスは、専用のソフトウェアコードのダウンロードのために構成されたツールを管理者が利用する、難しいプロセスである。かなりの時間がネットワーク専門家によって費やされ、各更新は熟慮および準備を必要とするカスタマイズされたイベントである。
【０００３】
場合によっては、ユーティリティ会社は、ソフトウェアまたは更新がそれらのネットワーク内のデバイスに利用可能であることに気付いていないことさえある。したがって、それらのネットワーク全体にわたりソフトウェアをインストールまたは更新するために、ユーティリティ会社は、まず、適合するソフトウェアがそれらのネットワーク内のデバイスに使用可能であることを知る必要がある。一般的に、コンシューマは、特性を提供するメータ上で動作しているソフトウェアが何であるかを全く意識しておらず、その選択および動作に何ら役割を果たしていない。
【０００４】
ソフトウェアは、インストールされると、スマートメータ上で、計量機能を実施し、ユーティリティの通信ネットワーク内のデバイスに計量データを報告するように設計されている。スマートメータソフトウェアは、ユーティリティの通信ネットワークの外部のデバイスとの通信が制限されている。
【図面の簡単な説明】
【０００５】
詳細な説明が添付図面を参照して示される。図中、参照番号の最も左の数字は、参照番号が最初に出現する図を示す。異なる図における同じ参照番号の使用は、同様または同一の要素を示す。
【０００６】
【図１】１もしくは複数のスマートユーティリティメータ、スマートセンサ、または他のネットワークコンピューティングデバイスへのアプリケーションの分配およびインストールを容易にするために使用することができるユーティリティアプリケーションストアを含む例示的アーキテクチャの概略図である。
【図２】ユーティリティアプリケーションストアにおいて使用可能な複数の「メータ」アプリケーションを提示する例示的ユーザインターフェースの概略図である。
【図３】ユーティリティアプリケーションストアにおいて使用可能な複数の「コンシューマ」アプリケーションを提示する別の例示的ユーザインターフェースの概略図である。
【図４】ユーティリティアプリケーションストアにおいて使用可能な複数の「他の」アプリケーションを提示する例示的ユーザインターフェースの概略図である。
【図５】図１の例示的ユーティリティアプリケーションストアの詳細を示すブロック図である。
【図６】図１の例示的スマートセンサの１つの詳細を示すブロック図である。
【図７】１もしくは複数のユーティリティメータまたは他のスマートセンサ上におけるインストールのために１または複数のアプリケーションを提供するための、ユーティリティアプリケーションストアによって実行され得る例示的方法のフローチャートである。
【図８】１または複数のコンピューティングデバイスに利用可能なアプリケーションの存在をユーザに通知するために使用できる例示的アーキテクチャの概略図である。
【図９Ａ】ユーティリティメータに利用可能なアプリケーションをユーティリティサプライヤ（utility supplier）に通知するために使用され得る例示的通知の概略図である。
【図９Ｂ】顧客のコンピューティングデバイスに利用可能なアプリケーションを顧客に通知するために使用され得る例示的通知の概略図である。
【図９Ｃ】ユーティリティサプライヤコンピューティングデバイスに利用可能なアプリケーションをユーティリティサプライヤに通知するために使用され得る例示的通知の概略図である。
【図１０】１または複数のコンピューティングデバイスに利用可能なアプリケーションの存在をユーザに通知する例示的方法の信号フロー図である。
【図１１】分散されたアプリケーション（以下、分散アプリケーション）の第１の部分がスマートセンサ上にインストールされ、分散アプリケーションの第２の部分が別のコンピューティングデバイス上にインストールされた、例示的アーキテクチャの概略図である。
【図１２】スマートセンサ上で実行可能である分散アプリケーションの部分と対話するコンシューマデバイス上で実行可能な分散アプリケーションの部分の例示的ユーザインターフェースの概略図である。
【図１３】別のコンピューティングデバイス上で実行している分散アプリケーションの第２の部分と対話する分散アプリケーションの第１の部分を実行しているユーティリティメータまたは他のスマートセンサによって実行され得る例示的方法の信号フロー図である。
【発明を実施するための形態】
【０００７】
概観
上記に論じられたように、スマートユーティリティメータのためのソフトウェアは、現在のところ、スマートユーティリティメータの各々の製造者からのみ直接利用可能であり、異なる製造者が異なる方法で利用可能なソフトウェアを作っている。ユーティリティ会社は、現在のところ、それらのユーティリティ通信ネットワークにおけるスマートユーティリティメータおよび他のデバイスのためのソフトウェアをそれらが容易に入手できる集中化された場所を欠いている。また、既存のシステムは、アプリケーションが、それらのスマートユーティリティメータ、コンシューマデバイス、および他のコンピューティングデバイスに利用可能であるときにユーティリティ会社、顧客、および他のユーザに通知するいかなる機構も欠いている。さらにまた、既存のユーティリティスマートメータアプリケーションは、コンシューマコンピューティングデバイス、ユーティリティバックエンドコンピューティングデバイス、および他のウェブサービス上で動作しているアプリケーションと通信し、そのアプリケーションを活用することができない。この特許出願は、１もしくは複数のスマートユーティリティメータまたは他のスマートセンサ上におけるダウンロードおよびインストールのために利用可能なアプリケーションのリポジトリを含む、ユーティリティアプリケーションストアを説明する。用語「スマートセンサ」は、物理パラメータ（たとえば、エネルギー、電力、電圧、力率、温度、ガス圧力、流量など）を測定または感知し、ネットワークを介してこの情報を通信する能力を有する、測定および／または感知機器を意味する。限定ではなく例として、スマートセンサは、ユーティリティメータ（たとえば、電気、水道、またはガスメータ）、リレー、リピータ、スマートグリッドルータ、トランス、または任意のそのようなユーティリティネットワークコンピューティングデバイスを含むことができる。ユーティリティアプリケーションストアは、加えてまたは代わりに、ユーティリティネットワークコンピューティングデバイス以外のコンピューティングデバイス、たとえば、パーソナルコンピュータ（たとえば、デスクトップコンピュータ、ラップトップコンピュータなど）、モバイルデバイス（スマートフォン、タブレットなど）、サーバ、ルータ、またはアクセスポイントなどに利用可能な、アプリケーションを含むことができる。
【０００８】
本明細書で使用される場合、用語「アプリケーション」または「アプリ」は、コンピューティングデバイス上で実行することができる任意のソフトウェアまたはファームウェアを意味する。アプリケーションの例は、限定するものではないが、オペレーティングシステム、オペレーティングシステムに対する更新、ソフトウェアプログラム、ソフトウェアプログラムの更新、ソフトウェアプログラムに対するアドオン、パッチ、プラグイン、ドライバ、ファームウェアイメージ、またはファームウェア更新を含む。
【０００９】
一態様では、ユーティリティアプリケーションストアは、ユーティリティアプリケーションストアから利用可能である複数のアプリケーションを表示するインターフェースを提示するように構成され得る。ユーティリティアプリケーションストアのインターフェースにアクセスすることによって、ユーティリティサプライヤは、単一の要求により、ユーティリティの通信ネットワークにおける複数のユーティリティメータまたは他のスマートセンサ上で１または複数のアプリケーションのインストールまたはアクティブ化を開始することができる。複数のユーティリティメータまたは他のスマートセンサは、ユーティリティの通信ネットワークにおけるユーティリティメータの予め定義されたサブセット（たとえば、特定のモデルのすべてのメータ、特定の地理的領域内のすべてのメータなど）を含むことができる。いくつかの例では、一度に１つのアプリケーションがインストールされ得る。しかしながら、他の例では、複数の異なるアプリケーションがバッチでまたは逐次にインストールされ得る。
【００１０】
別の態様では、ユーティリティアプリケーションストアまたは他のサービスは、ユーティリティメータもしくは他のスマートセンサ、コンシューマコンピューティングデバイス、および／またはユーティリティバックオフィスコンピューティングデバイスに対するアプリケーションの利用可能性の通知を提供するように構成され得る。たとえば、コンシューマコンピューティングデバイス（たとえば、パーソナルコンピュータまたはモバイルデバイス）上にアプリケーションをインストールすることを求める要求を受信すると、ユーティリティアプリケーションストアまたは他のサービスは、コンシューマコンピューティングデバイスのユーザのユーティリティメータに利用可能である関連付けられたアプリケーションを識別することができる。次いで、ユーティリティアプリケーションストアまたは他のサービスは、関連付けられたアプリケーションの利用可能性の通知を、ユーティリティメータにサービスしているユーティリティサプライヤ、および／またはコンシューマコンピューティングデバイスに送ることができる。
【００１１】
さらに別の態様では、ユーティリティアプリケーションストアは、ユーティリティメータまたは他のスマートセンサによって実行されるように構成された第１の部分と、別のコンピューティングデバイス（たとえば、パーソナルコンピュータ、モバイルデバイス、ユーティリティバックオフィスサーバ、またはクラウドサービスなど）によって実行されるように構成された第２の部分とを含むことができる。一例では、スマートユーティリティメータは、メモリに記憶された分散アプリケーションの第１の部分を有することができ、分散アプリケーションの第１の部分は、遠隔コンピューティングリソースにインストールされた分散アプリケーションの第２の部分に、動作の少なくとも部分を実施させるように、スマートユーティリティメータを構成するように１または複数のプロセッサによって実行可能である。
【００１２】
上記の任意またはすべての態様は、本明細書に説明されるようなユーティリティアプリケーションストアによって実施されまたは可能になされる。しかしながら、本明細書に説明されるいくつかの態様は、ユーティリティアプリケーションストアの必要なしに実現されてもよい。多くの例は、従来のユーティリティサプライチェーンの文脈で理解されてよく、ユーティリティ提供会社（たとえばエネルギー生成会社）がリソースをユーティリティ分配会社に供給し、次いでユーティリティ分配会社がリソースを最終顧客に提供する。本明細書に説明される技法は、ユーティリティサプライヤが、ユーティリティ分配会社を通すのではなく直接的にまたは小売業者／ベンダを介してコンシューマにリソースを供給するモデルにも適用する。本明細書で使用される場合、用語「ユーティリティサプライヤ」は、限定するものではないが、ユーティリティ提供会社、ユーティリティ分配会社、スマートシティ、地方自治体、小売業者／ベンダ、協同組合、マイクログリッド、または個人を含む、リソースの任意の提供者または分配者を意味する。
【００１３】
この簡潔な概観は読者の便宜のため提供されるものであり、特許請求の範囲および以下の節を限定することは意図されない。さらに、以下に詳細に説明される技法は、いくつかの方法およびいくつかの文脈で実行され得る。いくつかの例示的な実装形態が、より詳細に後述されるように以下の図面を参照して提供される。しかしながら、以下の実装形態および文脈は多数あるうちの一部にすぎない。
【００１４】
例示的ユーティリティアプリケーションストア
図１は、ユーティリティアプリケーションストア１０２を含む例示的なネットワーク化された環境またはアーキテクチャ１００を示す図である。ユーティリティアプリケーションストアまたは「アプリストア」１０２は、（「スマートセンサ１０６」と総称される）１もしくは複数のユーティリティメータまたは他のスマートセンサ１０６（１）、１０６（２）、１０６（３）、…、１０６（Ｎ）上におけるインストールのために利用可能なアプリケーション１０４のリポジトリを含み、ここで、Ｎは１以上の任意の整数である。図示された例では、スマートセンサ１０６は、自律ルーティングエリア１０８を画成するメッシュネットワークに配置される。しかしながら、他の例では、メータは、スターネットワークまたは他のネットワークトポロジに配置され得る。自律ルーティングエリア１０８のトポロジに関わらず、個々のスマートセンサまたは「ノード」は、ワイヤレス（たとえば、無線周波数）および／または有線（たとえば、電力線通信、Ｅｔｈｅｒｎｅｔ(登録商標)、シリアルなど）接続によって通信することができる。スマートセンサ１０６は、情報（たとえば、リソース消費情報、ネットワークトラフィック情報、気象情報など）を収集し、収集された情報を、インターネットまたはセルラーネットワークなどのような有線またはワイヤレスネットワーク１１２を介してユーティリティサプライヤ１１０に報告するように構成され得る。ネットワーク１１２それ自体は、１もしくは複数の他の有線および／またはワイヤレスネットワークで構成されてよい。図示された例では、スマートセンサ１０６（２）は、自律ルーティングエリア１０８における他のスマートセンサ１０６からネットワーク１１２を介してユーティリティサプライヤ１１０へ通信を中継するために、自律ルーティングエリア１０８のルートまたはエッジノードの役割をする。ユーティリティサプライヤ１１０は、ユーティリティ分配会社を表すことができ、単一の場所または複数の分散された場所に配置され得る１もしくは複数のサーバまたは他のコンピューティングデバイスを含むことができる。他の例では、ユーティリティサプライヤ１１０は、ユーティリティ提供会社（たとえば発電会社）、スマートシティ、地方自治体、小売業者／ベンダ、協同組合、マイクログリッド、個人、またはリソースの任意の他の提供者または分配者であり得る。
【００１５】
アプリストアリポジトリ１０４は、複数の異なるハードウェア製造者によって開発されたスマートセンサ上で動作するように設計されたアプリケーションを含むことができる。アプリストアリポジトリ１０４は、ユーティリティサプライヤ１１０の１もしくは複数のサーバ、コンシューマコンピューティングデバイス１１４、または他のコンピューティングデバイス上で動作するように設計されたアプリケーションを含むこともできる。アプリケーションは、アプリケーションストア１０２を管理するエンティティ、１もしくは複数のユーティリティメータもしくはハードウェア製造者、１もしくは複数のユーティリティサプライヤ、および／または１もしくは複数の独立ソフトウェアベンダによって開発されていることがある。したがって、アプリストア１０２は、ユーティリティ提供者の通信ネットワークにおけるデバイスのすべてに対してユーティリティサプライヤが必要とするすべてのアプリケーションのための中央ソースの役割をすることができる。本出願は「ユーティリティサプライヤの通信ネットワーク」がユーティリティ提供者によって所有または管理されているように説明しているが、他の例では、別個のエンティティが、スマートセンサおよび他のデバイスが通信する通信ネットワークを運営または管理することができる。
【００１６】
図１に戻って参照すると、ユーザ（たとえば、ユーティリティサプライヤ従業員、コンシューマ、または他のユーザ）は、コンピューティングデバイス１１４を使用してユーティリティアプリケーションストア１０２にアクセスすることができる。コンピューティングデバイス１１４上に存在するウェブブラウザまたはアプリストアクライアントプログラムを使用して、ユーザは、ユーティリティアプリケーションストア１０２のウェブサイトまたは他のインターフェース１１６にアクセスすることができる。インターフェース１１６は、アプリストア１０２から利用可能である複数のアプリケーションを提示することができる。図１の例では、インターフェースは複数のタブ１１８を含み、それぞれが、アプリストア１０２から利用可能なアプリケーションの異なるカテゴリを表す。図示された例では、４つのタブ、すなわち、メータアプリ、ユーティリティアプリ、コンシューマアプリ、およびその他が示されている。各タブの選択に応答して、インターフェース１１６は、リストを表示する、または他の形で、アプリケーションの選択されたタブ／カテゴリに対応するアプリケーションを提示する。インターフェース１１６はまた、入力検索語に関連するアプリケーションを選択されたタブ内で検索するために使用され得る検索フィールド１２０を含むことができる。しかしながら、インターフェース１１６は、アプリストア１０２から利用可能であるアプリケーションを提示するために適した任意の他の方法で構成されてもよい。たとえば、単一のインターフェース上で異なるカテゴリのユーザに対する複数のタブを有する代わりに、ユーザの役割に基づいて別個のインターフェースがユーザに提示されてもよい。たとえば、ユーティリティ担当者は、ユーティリティコンピューティングデバイスに対するアプリケーションのみを提示され、コンシューマは、コンシューマコンピューティングデバイスに対するアプリケーションのみを提示されてもよい。
【００１７】
図１では、ユーザは、「メータアプリ（meter apps）」タブを選択しており、また、検索クエリ「１００シリーズ（100 Series）」を入力している。したがって、インターフェース１１６は、検索クエリに関連するスマートメータに対するアプリケーションのリストを表示する。このリストから、ユーザは、１または複数のアプリケーションをインストールまたはアクティブ化するために選択することができる。アプリケーションをインストールすることを選択することにより（たとえば、ダウンロードまたはインストールコントロールの選択により）、ユーザは、ダウンロードを開始する、または他の形で１または複数のデバイス（たとえば、この例ではメータ）へのアプリケーションの送信を引き起こすことができる。アプリケーションをアクティブ化することを選択することにより、ユーザは、ダウンロードを開始する、送信を引き起こす、または、（ロックされているが）１もしくは複数のデバイス上に既にインストールされているアプリケーションをアクティブ化またはロック解除するために使用できる認証情報（credential）（たとえば、キー、パスワードなど）を取得することができる。図示された例では、各アプリケーションは、アプリケーションを「インストール／アクティブ化」するオプションと共に示されている。しかしながら、他の例では、「インストール」と「アクティブ化」のための別個のコントロールが提供されてもよく、インターフェース１１６が、関連するコントロールのみを示してもよい。図示された例では、ユーザは、アプリケーション「ＯＳ２．０：電圧品質アドオン（OS 2.0: Voltage Quality Add-On）」をインストールまたはアクティブ化することを選択している。いくつかの例では、インストールまたはアクティブ化コントロールの選択のみで、インストールまたはアクティブ化を開始するために十分であり得る。しかしながら、他の例では、アプリストア１０２が、インストールまたはアクティブ化コントロールの選択に応答して、アプリケーションを購入するオプションをユーザに与えることができる。
【００１８】
いくつかの実施形態では、インターフェース１１６は、ユーザのデバイス上に、またはユーザが関連付けられたエンティティのデバイス上に、ユーザが現在インストールしているアプリケーションを表示するための別のタブ（図示せず）または他のインターフェースをさらに含むことができる。存在する場合、このタブまたはインターフェースは、ユーザまたはエンティティに関連付けられたデバイスのリストを含むこともでき、および／または、個別にデバイスごとに、デバイスのクラス（たとえば、デバイスタイプ、モデル、シリーズなど）に対応して、もしくは特定の地理的領域内のデバイスに対応するなどして、アプリケーションを更新、アンインストール、非アクティブ化する能力を提供することができる。
【００１９】
図２は、ユーザに提示され、メータアプリケーション「ＯＳ２．０：電力品質アドオン（OS 2.0: Voltage Quality Add-On）」をユーザが購入することを可能にできる例示的インターフェースを示す。図示されるように、ユーザがアプリケーションをインストールまたはアクティブ化することを選択すると（図２の左側）、ユーザがアプリケーションを購入することを可能にする購入インターフェース２００が提示される（図２の右側）。購入インターフェース２００は、様々な情報および／またはコントロールを含むことができる。たとえば、図示された例では、購入インターフェース２００は、アプリケーション「価格／デバイス（price/device）」（この例では０．９９＄として示される）、アプリケーションをインストールするデバイスの数（この場合は１００，０００個のデバイス）をユーザが指定することを可能にする「デバイスの数（No. of Devices）」フィールド、およびアプリケーションがインストールされることになるデバイスのタイプをユーザが指定することを可能にする「デバイスタイプ（Device Type(s)）」コントロールを含む。デバイスタイプコントロールは、ドロップダウンメニューとして示されているが、一連のラジオボタン、チェックボックス、フリーテキスト入力フィールド、またはアプリケーションがインストールされることになる１または複数のデバイスタイプを指定するために使用できる任意の他のコントロールとしてもよい。図示された例では、価格／デバイスがすべてのデバイスタイプについて同じであるが、他の例では、価格／デバイスは、アプリケーションがインストールされることになるデバイスのタイプに応じる（たとえば、ユーティリティメータに対する第１の価格、およびデータコレクタに対する第２の価格）、またはアプリケーションがインストールされることになるデバイスの数に応じる（たとえば、数量割引を反映する）などして、変わることがある。
【００２０】
いくつかの例では、アプリストア１０２は、ユーザまたはユーザのアカウントに関連付けられたデバイスに関する予備知識を有することができる。その場合、デバイスタイプコントロールおよび／またはデバイスの数フィールドは、ユーザまたはユーザアカウントに関連付けられたデバイスのタイプおよび数を事前投入されることができる。たとえば、図１の例では、アプリストアシステム１０２が、ユーティリティサプライヤ１１０と通信する、または他の形で、ユーティリティ通信ネットワークにおけるデバイスのデバイスタイプおよび各タイプの数に関する情報へのアクセスを有する場合、アプリストア１０２は、ユーティリティサプライヤの通信ネットワーク内のどのデバイスが選択されたアプリケーションと適合するかを決定する能力を有することができる。そして、アプリストア１０２は、購入インターフェース２００にそれらのデバイスタイプおよびそのようなデバイスの数を事前投入することができ、それにより、ユーティリティ通信ネットワークにおけるすべての適用可能なデバイスにわたるアプリケーションを購入するプロセスを大幅に簡略化する。
【００２１】
デバイスタイプおよびデバイスの数が指定（または事前投入）された後、購入インターフェース２００は、指定されたデバイス上におけるアプリケーションのインストールに対する総費用（Total Cost）（この場合は９９，０００＄）を表示することができる。購入インターフェース２００はまた、アプリケーションまたは認証情報の好ましい配信方法をユーザが指定することを可能にする「配信方法（Delivery Method）」コントロールを含む。たとえば、図示された例では、ユーザは、アプリケーションもしくは認証情報をユーティリティ通信ネットワークを介してデバイスに直接送信する、またはアプリケーションもしくは認証情報を個々のデバイスへその後に分配されるようにユーティリティサプライヤ１１０へ送信するオプションを与えられる。購入インターフェース２００はまた、ユーザがアプリケーションに対する支払いをどのようにするかを指定することを可能にする「支払い方法（Payment Method）」コントロールを含む。図２では、ユーザは、「アカウントに課金（Charge to Account）」（たとえば、アプリストアまたは第三者の債権者の課金アカウント）、「クレジットカードに課金（Charge to Credit Card）」、および／または「前払い（Prepaid）」のオプションが提示される。前払いオプションは、ユーザがアプリケーションの特定の数またはドル価値に対して事前に支払いをしたことを示すことができる。支払いは、一括払い（たとえば、大量アプリケーション購入）、別の製品を購入するためのクレジット（たとえば、新しいメータの購入による３つの無料アプリケーション）、加入（たとえば、加入による無制限の無料アプリ）、またはサービスもしくは保守契約（たとえば、新しいソフトウェアパッケージの購入による１年間の無料更新およびセキュリティパッチ）などの形態を取っていることがある。次いで、ユーザは、「今すぐ買う（Buy Now）」コントロールを選択することによって購入を完了しインストールまたはアクティブ化を開始することができる。
【００２２】
図３は、ユーザに提示され、コンシューマアプリケーション「電子請求（Electronic Billing）」をユーザが購入することを可能にできる例示的インターフェースを示す。この例では、ユーザは、タブ１１８のうちから「コンシューマアプリ（Consumer Apps）」タブを選択し、検索フィールド１２０に検索語「電気（Electricity）」を入力している。したがって、この例では、インターフェース１１６は、検索語「電気」に関係付けられたコンシューマ向けアプリケーションを表示する。図示されるように、ユーザがアプリケーションをインストールまたはアクティブ化することを選択すると（図３の左側）、ユーザがアプリケーションを購入することを可能にする購入インターフェース３００が提示される（図３の右側）。いくつかの実施形態では、コンシューマアプリケーション用の購入インターフェース３００は、メータアプリケーション用の購入インターフェース２００と同じまたは同様にすることができる。しかしながら、図３の例では、コンシューマアプリケーション用の購入インターフェース３００は、コンシューマユーザの異なる必要性を反映して、いくつかの点で異なる。たとえば、図３に示すように、支払いインターフェース３００は、コンシューマは通常は比較的少量のデバイス上にアプリケーションをインストールすることを反映して、デバイスの数フィールドを省略している。しかしながら、他の変形形態では、支払いインターフェース３００は、図２の支払いインターフェース２００と全く同じように、複数の同じまたは異なるデバイスに対するアプリケーションを購入する能力を含むことができる。別の異なる例として、配信方法コントロールは、コンシューマは通常はそのコンシューマデバイス上でコンテンツをインストールまたはアクティブ化する方法を１つのみ有することを反映して、図３では省略される。さらに他の例では、（たとえばユーザの役割に基づき）ユーザに関係するタブのみがユーザへ表示され得る。たとえば、ユーザがコンシューマである場合、コンシューマタブのみがユーザに示され得る。
【００２３】
支払いインターフェース３００はまた、別のアプリストア（たとえば、ｉＴｕｎｅｓ（登録商標）ストアまたはＡｎｄｒｏｉｄ（登録商標）ストアのような特定のコンシューマデバイスに関連付けられたアプリストア）へのリンク３０２を含むことができる。いくつかの実施形態では、ユーザは、インターフェース３００からアプリケーションに対する支払いをし、次いで、他のアプリストア（たとえば、ｉＴｕｎｅｓ（登録商標）ストアまたはＡｎｄｒｏｉｄ（登録商標）ストア）に移動してアプリケーションをダウンロードすることが可能であり得る。他の実施形態では、ユーザは、リンク３０２を選択して他のアプリストアに移動して、アプリケーションの購入とダウンロードの両方をすることができる。
【００２４】
図４は、ユーザに提示され、「その他（Other）」のコンピューティングデバイスに対するアプリケーション「リピータＷｉＦｉホットスポットアドオン（Repeater WiFi Hotspot Add-On）」をユーザが購入することを可能にできる例示的インターフェースを示す。この例では、ユーザは、タブ１１８のうちから「その他」タブを選択し、検索フィールド１２０に検索語「ＷｉＦｉ」を入力している。したがって、この例では、インターフェース１１６は、検索クエリ「ＷｉＦｉ」に関係付けられたメータおよびコンシューマデバイス以外のコンピューティングデバイスに対するアプリケーションを表示する。図示されるように、ユーザがアプリケーションをインストールまたはアクティブ化することを選択すると（図４の左側）、ユーザがアプリケーションを購入することを可能にする購入インターフェース４００が提示される（図４の右側）。いくつかの実施形態では、他のアプリケーション用の購入インターフェース４００は、メータアプリケーション用の購入インターフェース２００またはコンシューマアプリケーション用の購入インターフェース３００と同じまたは同様にすることができる。したがって、購入インターフェース４００に関するさらなる議論は簡潔にするため省略される。
【００２５】
図４の例では、ユーザ（たとえば、ユーティリティサプライヤ従業員）は、１００個の「Ｘ２５リピータ（X25 Repeaters）」のためのアドオンアプリケーションをアプリケーションごとに４．９９＄で合計４９９＄の価格で購入することを選択する。この例のアプリケーションは、無線周波数（ＲＦ）リピータがＷｉＦｉホットスポットとして機能することを可能にするアドオンを含むことができる。アドオンは、リピータ上にインストールされた別個のアプリケーションであってよく、または、キー、パスワード、もしくはリピータ上に既にインストールされたアプリケーションの機能をロック解除する他の認証情報であってもよい。
【００２６】
例示的ユーティリティアプリケーションストアシステム
図５は、図１の例示的ユーティリティアプリケーションストア１０２をより詳細に示す。ユーティリティアプリケーションストア１０２は、サーバ、サーバのクラスタ、サーバファーム、データセンタ、クラウドコンピューティングリソース、または、スマートセンサおよび他のコンピューティングデバイスに対する複数のアプリケーションを記憶するおよび／もしくはそれらに対するアクセスを提供することができる任意の他のコンピューティングリソースとして構成され、またはそれらのコンピューティングリソースに配置され得る。ユーティリティアプリケーションストア１０２は、１または複数のプロセッサ５００およびメモリ５０２を含むことができる。メモリ５０２は、ユーティリティアプリケーションストア１０２から利用可能である、アプリケーションインデックス５０４および（「アプリケーション５０６」と総称される）複数のアプリケーション５０６（１）、５０６（２）、５０６（３）、…、５０６（Ｍ）を記憶する、アプリケーションリポジトリ１０４を含むことができ、ここで、Ｍは１以上の任意の整数である。アプリケーションインデックス５０４は、トピック、カテゴリ、特徴、または製品などに基づくアプリケーション５０６のリストを含むことができる。アプリケーションリポジトリ１０４はまた、アプリケーション５０６に関連付けられたメタデータを含むことができる。限定ではなく例として、メタデータは、アプリケーションごとに、アプリケーションのカテゴリ（たとえば、メータアプリケーション、コンシューマアプリケーション、他のアプリケーションなど）、アプリケーションのバージョン、ソフトウェアおよび／もしくはハードウェアとのアプリケーションの適合性、アプリケーションに関連付けられたキーワード、アプリケーションの簡単な説明、またはアプリケーションの特徴仕様などを含むことができる。
【００２７】
メモリ５０２はまた、ユーティリティアプリケーションストア１０２の様々な機能を実行するための複数のモジュールを含むことができる。たとえば、アプリケーションストアインターフェースモジュール５０８は、アプリケーションリポジトリ１０４において利用可能なアプリケーションを提示するグラフィカルユーザインターフェース（たとえばインターフェース１１６）を生成するように構成され得る。アプリケーションストアインターフェースモジュール５０８は、たとえば、クライアントコンピューティングデバイスのブラウザによってアクセス可能なウェブサイトに対してインターフェースを公開することによって、インターフェースを１または複数のユーザに利用可能にすることができる。コンピューティングデバイスによってアクセスされると、アプリケーションストアインターフェースモジュール５０８は、コンピューティングデバイスにインターフェースを供して、アプリケーションのインストールまたはアクティブ化を要求するために使用可能なコントロールと共に利用可能な複数のアプリケーションを表示する。
【００２８】
確認モジュール５１０は、１または複数のコンピューティングデバイスとの１または複数のアプリケーションの適合性を確認するように構成され得る。アプリケーションをインストールまたはアクティブ化することを求める要求を受信することに応答して、確認モジュール５１０は、要求されたアプリケーションが要求で指定された各デバイスと適合することを確認することができる。確認モジュール５１０は、デバイス適合性インデックス５１２、アプリケーションインデックス（存在する場合）、および／またはアプリケーションリポジトリ１０４に記憶されたメタデータを参照して、この確認を行うことができる。たとえば、要求は、アプリケーションがインストールされることになるデバイスのそれぞれに対する識別子を含むことができる。その場合、デバイスに対してアプリケーションの適合するバージョンが存在することを確認することは、１または複数のデバイスのそれぞれに対する識別子から、１または複数のデバイスのそれぞれのタイプを決定することと、１または複数のデバイスのそれぞれの決定されたタイプに対してアプリケーションの適合するバージョンが存在するかどうかを決定することとを含む。あるいは、デバイスのタイプは要求に直接指定されてもよい（たとえば、支払いインターフェース２００で指定された各デバイスタイプ）。
【００２９】
加えてまたは代わりに、ユーティリティアプリケーションストア１０２が、ユーティリティ通信ネットワークにおけるデバイスに関する情報へのアクセスを有する場合、それは、利用可能なアプリケーションをユーザに提示する前に、この適合確認を行ってもよい。たとえば、メモリ５０２は、ユーティリティサプライヤ１１０と通信するトポロジモジュール５１４を記憶することができる。トポロジモジュール５１４は、ユーティリティサプライヤの通信ネットワークにおけるデバイスのデバイスタイプ、現在のソフトウェアバージョン、および／または場所に関する情報を保持することができる。あるいは、メモリ５０２は、ユーザが以前に購入したアプリケーションに対するすべてのデバイスタイプの記録、および購入されたアプリケーションのバージョンを保持することができる。いずれの場合も、ユーザは、ユーティリティ自体の通信ネットワークにおけるデバイスに適合するアプリケーションのみを提示され得る。
【００３０】
プロビジョニングモジュール５１６は、たとえば、アプリケーションもしくは認証情報を複数のセグメントに分割すること、アプリケーションもしくは認証情報を圧縮すること、および／またはアプリケーションもしくは認証情報を暗号化することによって、１もしくは複数のスマートセンサまたは他のデバイスへの送信のためにアプリケーションもしくは認証情報を準備するように構成され得る。プロビジョニングモジュール５１６は、（たとえば、プライベートキーもしくはランダムパスワード生成器などに基づいて）認証情報を生成してもよく、または既存の認証情報（たとえば、パスワードもしくは証明書）を提供して要求されたアプリケーションをアクティブ化してもよい。
【００３１】
支払いモジュール５１８は、ユーザがアプリケーションを購入することを可能にするために使用できる支払いインターフェース（たとえば、支払いインターフェース２００、３００、４００など）を提供するように構成され得る。支払いモジュール５１８はまた、支払い情報を受信して処理し、適切な請求情報を生成し、および／または受信された支払いに基づいてユーザアカウント情報を更新するように構成されてもよい。
【００３２】
アプリケーションが購入されると、コントロールモジュール５２０は、（存在する場合）要求に指定された配信方法に従って、アプリケーションまたは認証情報の送信を引き起こすことができる。たとえば、メータアプリケーションの場合、コントロールモジュール５２０は、ユーティリティ通信ネットワークを介して１または複数のスマートセンサへ直接的に送信を開始することができる。あるいは、コントロールモジュール５２０は、個々のスマートセンサへのその後の分配のためにユーティリティサプライヤ１１０または任意の他の指定された送信先への送信を開始することができる。送信を開始することは、アプリケーションストアが送信を実施すること、または、アプリケーションストアが、送信を実行するように別のコンピューティングデバイス（たとえば、図示されない分配コンピューティングデバイス）に指示することを含むことができる。
【００３３】
いくつかの実施形態では、メモリ５０２はまた、ユーティリティメータもしくは他のスマートセンサ、コンシューマコンピューティングデバイス、および／またはユーティリティバックオフィスコンピューティングデバイスに対するアプリケーションの利用可能性の通知を提供するように構成された通知モジュール５２２を含むことができる。通知モジュール５２２およびその機能のさらなる詳細は、「アプリケーション利用可能性の例示的通知」と題された節で後述される。
【００３４】
ユーティリティアプリケーションストア１０２はまた、ユーティリティアプリケーションストア１０２がローカルにまたはネットワーク１１２を介して他のコンピューティングデバイスと通信できるようにするための１または複数の通信接続５２４を含む。通信接続の例は、限定するものではないが、電力線通信（ＰＬＣ）接続、Ｅｔｈｅｒｎｅｔもしくは他の有線ネットワーク接続、セルラー通信接続、またはＲＦ通信接続などを含む。したがって、ユーティリティアプリケーションストア１０２は、特定の通信接続の動作に関連付けられたまたは必要とされる任意の付随的ハードウェア、モジュール、および／またはインターフェースも含む。
【００３５】
例示的スマートセンサ
図６は、個別のスマートセンサ１０６の例示的な詳細を示す図である。上記に論じられたように、スマートセンサは、スマートユーティリティメータ（たとえば、電気メータ、水道メータ、またはガスメータ）、リレー、リピータ、スマートグリッドルータ、トランス、または任意の他のユーティリティネットワークコンピューティングデバイスを含むことができる。スマートセンサ１０６は、ユーティリティアプリケーションストア１０２、ユーティリティサプライヤ１１０、ならびに場合によっては他のコンピューティングデバイス（たとえば、コンシューマコンピューティングデバイス、ユーティリティネットワークコンピューティングデバイス、およびウェブサービスなど）と対話するように構成され得る。前述されたように、いくつかの例では、スマートセンサ１０６は、スマートユーティリティメータを含むことができる。
【００３６】
図６の例に示すように、スマートセンサ１０６は、無線機６０２および処理ユニット６０４を含むことができる。無線機６０２は、自律ルーティングエリア１０８内の他のスマートセンサ１０６、および／またはネットワーク１１２を介する他のコンピューティングデバイスとの双方向ＲＦ通信を提供することができる。処理ユニット６０４は、１もしくは複数のプロセッサ６０６およびメモリ６０８、ならびに／または、特定用途向け集積回路（ＡＳＩＣ）、ゲートアレイ、もしくは他のハードウェアベースの論理デバイスなど他のハードウェアデバイスを含むことができる。メモリ６０８は、オペレーティングシステム（ＯＳ）６１０、および１または複数のアプリケーションを含むことができる。図示された例では、メモリ６０８は、第１のアプリケーション６１２（たとえば、スマートセンサ１０６に提供されるサービスの電圧品質を監視するための電圧品質アプリケーション（Voltage Quality Application））、および第２のアプリケーション６１４（たとえば、ユーザの家庭でインストールされたホームエリアネットワークハブとスマートセンサ１０６がインターフェース接続することを可能にするホームエリアネットワークアプリケーション（Home Area Network Application））を含む。
【００３７】
スマートセンサ１０６がユーティリティメータを含む実施形態において、スマートセンサ１０６は、メータの場所でリソース（たとえば、電気、水、またはガス）の消費データを受信するように構成された計測モジュール６１６を含むことができる。計測モジュール６１６は、無線機６０２を介してＲＦ送信によって中央局１１０に消費データを報告することができる。消費データは、ユーティリティ通信ネットワークを介する送信のための様式またはプロトコルでフォーマット化および／またはパケット化され得る。
【００３８】
無線機６０２に加えて、スマートセンサ１０６は、電力線通信（ＰＬＣ）接続、Ｅｔｈｅｒｎｅｔもしくは他の有線ネットワーク接続、ＲＦ接続、またはセルラー通信接続など、１または複数の他のネットワーク接続６２０を含んでよい。したがって、スマートセンサ１０６は、特定のネットワーク接続の動作に関連付けられたまたは必要とされる任意の付随的ハードウェア、モジュール、および／またはインターフェースも含む。
【００３９】
ＯＳ６１０、第１のアプリケーション６１２、第２のアプリケーション６１４、計測モジュール６１６、さらには無線機６０２のソフトウェア態様は、スマートセンサ１０６によって実行可能であり得るアプリケーションのすべての例である。そのようなアプリケーションは、ユーティリティアプリケーションストア１０２によって／からスマートセンサ１０６上にインストールされ得る。メモリはまた、分散アプリケーション６１８の部分を含むことができ、その他のまたは関係付けられた部分は、他のコンピューティングデバイス（たとえば、ユーティリティアプリケーションストア１０２、中央局１１０、他のスマートセンサ１０６、または他のウェブサービス）によって、共通または補足機能を実施するように実行可能である。分散アプリケーションのさらなる詳細は、「例示的分散アプリケーション」と題された節で後述される。
【００４０】
メモリ５０２および６０８は、１または複数の「モジュール」として構成されたソフトウェア機能を含むように示されている。しかしながら、モジュールは、議論のためにソフトウェアの例示的分割を表すように意図されており、どんなタイプの要件もしくは必要とされる方法、様式、または必要な編成を表すことも意図されていない。したがって、様々な「モジュール」が論じられているが、それらの機能および／または同様の機能は異なるように配置されてもよい（たとえば、より少数のモジュールに統合される、より多数のモジュールに分割されるなど）。
【００４１】
いくつかのコンピューティングデバイス（たとえば、ユーティリティアプリケーションストア１０２およびスマートセンサ１０６）の詳細な例が説明されているが、詳細に説明されていないそのようなコンピューティングデバイスであっても、１または複数のプロセッサ、および、それらが実施するものとして説明される機能を実行するためのプロセッサ実行可能命令を記憶するメモリを含み得ることを理解されたい。いくつかのコンピューティングデバイスは、加えてまたは代わりに、それらが実施するものとして説明される機能の一部または全部を実行するための１または複数のハードウェアコンポーネント（たとえば、特定用途向け集積回路、フィールドプログラマブルゲートアレイ、およびシステムオンチップなど）を含むことができる。
【００４２】
本明細書に説明される様々なメモリは、コンピュータ可読媒体の例であり、ランダムアクセスメモリ（ＲＡＭ）などの揮発性メモリ、および／または読出し専用メモリ（ＲＯＭ）もしくはフラッシュＲＡＭなどの不揮発性メモリの形態を取ることができる。コンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはコンピューティングデバイスの１または複数のプロセッサによって実行される他のデータなどの情報の記憶のために任意の方法または技術で実装された揮発性および不揮発性の着脱可能および着脱不能な媒体を含む。コンピュータ可読媒体の例は、以下に限定されないが、相変化メモリ（ＰＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、他のタイプのランダムアクセスメモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、電気的消去可能プログラマブル読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、もしくは他のメモリ技術、コンパクトディスク読出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、またはコンピューティングデバイスによるアクセスのために情報を記憶するように使用され得る任意の他の非伝送媒体を含む。本明細書で定義される場合、コンピュータ可読媒体は、変調されたデータ信号および搬送波などの通信媒体を含まない。
【００４３】
アプリケーションをインストールまたはアクティブ化する例示的方法
図７は、ユーティリティアプリケーションストア１０２などの第１のコンピューティングリソースによって、１もしくは複数のユーティリティメータまたは他のスマートセンサ上におけるアプリケーションのインストールおよび／またはアクティブ化を容易にするために実施され得る、動作７００の例示的フローを示すフローチャートである。動作７００の例示的フローは、アーキテクチャ１００の例の文脈で図１に示されたデバイスを参照して説明される。しかしながら、動作７００のフローは、アーキテクチャ１００および図１のデバイスと共に使用することに限定されず、他のアーキテクチャおよびデバイスを使用して実行されてもよい。
【００４４】
動作７００のフローは、ブロック７０２で開始して、第１のコンピューティングリソースが、第２のコンピューティングリソースによるダウンロードのために利用可能である複数のアプリケーションを表示するインターフェースを供することができる。いくつかの例では、第１のコンピューティングリソースは、第１のエンティティ（たとえば、アプリケーションストアをホストする会社）によって管理されることができ、第２のコンピューティングリソースは、第１のエンティティとは異なる第２のエンティティ（ユーティリティサプライヤ、コンシューマなど）によって管理されることができる。一例では、第１のコンピューティングリソースは、インストールまたはアクティブ化のために利用可能である複数のアプリケーションを有するアプリケーションストア（たとえばユーティリティアプリケーションストア１０２）の１または複数のサーバを含み、第２のコンピューティングリソースは、パーソナルコンピュータ、モバイルデバイス、ユーティリティメータ読取りデバイス、または他のコンピューティングデバイス（たとえば他のコンピューティングデバイス１１４）を含む。１または複数のスマートセンサ（たとえばスマートセンサ１０６）は、ユーティリティサプライヤの通信ネットワークにおける複数のスマートセンサの予め定義されたサブセット、たとえば、特定のタイプのすべてのスマートセンサ、地理的領域内のすべてのスマートセンサなどを含むことができる。いくつかの実施形態では、スマートセンサの少なくとも一部は、１または複数のスマートユーティリティメータを含むことができる。
【００４５】
７０４では、第１のコンピューティングリソース（たとえばユーティリティアプリケーションストア１０２）は、１または複数のスマートセンサ（たとえば、スマートセンサ１０６のうちの１または複数）上においてアプリケーションをインストールまたはアクティブ化することを求める要求を、第２のコンピューティングリソース（たとえば、コンピューティングデバイス１１４）から受信する。一例では、要求は、インターフェース１１６の「インストール／アクティブ化」コントロールの選択の形態とすることができる。いくつかの例では、アプリケーションは、スマートセンサによって収集された計測データにアクセスする（たとえば、測定データを処理する、利用可能な測定データを作成するなどの）命令を含むことができる。
【００４６】
要求は、１または複数のスマートセンサのそれぞれに対する識別子を含むことができる。いくつかの場合、識別子は、個々のスマートセンサのシリアル番号または一意の識別子であり得る。しかしながら、他の例では、識別子は、モデル名もしくは番号、デバイスのクラスもしくはカテゴリ、またはデバイスタイプの他のインジケータであり得る。７０６では、第１のコンピューティングリソース（たとえばユーティリティアプリケーションストア１０２）は、要求に少なくとも部分的に基づいて１または複数のスマートセンサに対するアプリケーションをアクティブ化するようにアプリケーションまたは認証情報を構成する。１または複数のスマートセンサに対するアプリケーションまたは認証情報を構成することは、たとえば、１または複数のスマートセンサのそれぞれの識別子から、１または複数のスマートセンサのそれぞれに対するアプリケーションの適合するバージョンを決定することを含むことができる。
【００４７】
７０８では、第１のコンピューティングリソース（たとえばユーティリティアプリケーションストア１０２）は、１または複数のスマートセンサ上におけるアプリケーションのインストールまたはアクティブ化に対する価格を提示することができる。価格は、購入インターフェース（たとえば、購入インターフェース２００、３００、または４００）の形態でまたはその一部として提示され得る。７１０では、第１のコンピューティングリソースは、１または複数のスマートセンサ上におけるアプリケーションのインストールまたはアクティブ化のための支払いまたは支払いの同意を受信する。一例では、支払いまたは支払いの同意は、購入インターフェース上の「今すぐ買う」または他の購入コントロールの選択の形態にすることができる。
【００４８】
７１２では、第１のコンピューティングリソース（たとえばユーティリティアプリケーションストア１０２）は、アプリケーションもしくは認証情報を複数のセグメントに分割すること、アプリケーションもしくは認証情報を圧縮すること、および／またはアプリケーションもしくは認証情報を暗号化することによって、１もしくは複数のスマートセンサへの送信のためにアプリケーションもしくは認証情報を準備することができる。特定の分割、圧縮、および／または暗号化動作は、ユーティリティ通信ネットワークおよび選択された配信方法の性質および要件に応じて変わってよい。たとえば、アプリケーションまたは認証情報がユーティリティサプライヤに配信されることになる場合、アプリケーションまたは認証情報が個々のスマートセンサに配信されることになる場合よりも少ない準備動作が必要とされ得る。
【００４９】
７１４では、第１のコンピューティングリソース（たとえばユーティリティアプリケーションストア１０２）は、（たとえば、要求に指定された配信方法、既定の配信方法、ユーザによって事前に指定された配信方法などに基づいて）アプリケーションまたは認証情報をどのように配信するかを決定し、アプリケーション（またはアプリケーションをアクティブ化する認証情報）の１または複数のスマートセンサへの送信を引き起こす。（存在する場合）要求に指定された配信の方法に応じて、アプリケーションまたは認証情報の１または複数のスマートセンサへの送信を引き起こすことは、７１６で、アプリケーションもしくは認証情報を１もしくは複数のスマートセンサに直接送信すること、および／または、７１８で、１もしくは複数のスマートセンサへの配信のために第２のコンピューティングリソース（たとえばコンピューティングデバイス１１４）もしくは別のコンピューティングリソース（たとえばユーティリティサプライヤ１１０）にアプリケーションもしくは認証情報を送信することを含むことができる。一例では、アプリケーションまたは認証情報を１または複数のスマートセンサに送信することは、アプリケーションまたは認証情報を含むメッセージをユーティリティ通信ネットワークを介して１または複数のスマートセンサに送ることを含む。
【００５０】
アプリケーション利用可能性の例示的通知
図８は、様々なユーザが関心を有し得るアプリケーションの存在の通知を提供するために使用できる別の例示的なネットワーク化された環境またはアーキテクチャ８００を示す図である。たとえば、アーキテクチャ８００は、アプリケーションがユーザのデバイスに利用可能であるとき、またはアプリケーションがユーザのデバイスにインストールされたとき、ユーザの通知を可能にする。
【００５１】
図１のアーキテクチャ１００と同様に、アーキテクチャ８００は、１もしくは複数のユーティリティメータまたは他のスマートセンサ１０６上でのインストールのために利用可能なアプリケーションのリポジトリ１０４を有するユーティリティアプリケーションストア１０２を含む。アーキテクチャはまた、ネットワーク１１２を介してユーティリティアプリケーションストア１０２およびスマートセンサ１０６と通信するユーティリティサプライヤ１１０を含む。しかしながら、この例のアーキテクチャ８００は、パーソナルコンピュータまたはモバイルデバイスなどのコンシューマコンピューティングデバイス８０２、および１または複数の他のサービス８０４をも含む。他のサービスは、１または複数のコンピューティングデバイスを表し、データ（たとえば、気象サービス、センサネットワーク、リソース価格データ、現在のリソース需要データなど）またはコンピューティングリソース（たとえば、クラウドストレージもしくは処理リソース、ウェブホスティングリソース、分析処理、計算、検証、認証、支払い処理など）を提供する、ウェブサービスを含むことができる。また、他のサービスは、小売業者、製造者、サプライヤ、ソフトウェア開発者、地方自治体、または様々なコンピューティングデバイスに対するアプリケーションの存在の通知を提供もしくは所望することができる他のエンティティを含むことができる。
【００５２】
アプリストアリポジトリ１０４は、アプリケーション５０６（１）〜５０６（Ｍ）を含むことができ、そのうちのいくつかは、スマートセンサ上で動作するように設計されてよく、そのうちのいくつかは、ユーティリティサプライヤ１１０の１もしくは複数のサーバ、コンシューマコンピューティングデバイス１１４、または他のコンピューティングデバイスもしくは「他のサービス」８０４上で動作するように設計されてよい。アプリケーションは、アプリケーションストア１０２を管理するエンティティ、１もしくは複数のユーティリティメータもしくはハードウェア製造者、１もしくは複数のユーティリティサプライヤ、１もしくは複数の独立ソフトウェアベンダ、および／または１もしくは複数の他のサービス８０４の提供者によって開発されていることがある。
【００５３】
ユーティリティアプリケーションストア１０２が、コンピューティングデバイスから、アプリケーションをインストールすることを求める要求を受信すると、ユーティリティアプリケーションストア１０２は、１または複数の無料アプリケーション（complimentary application）の存在を、要求しているコンピューティングデバイスに通知するように構成され得る。加えてまたは代わりに、ユーティリティアプリケーションストア１０２は、要求されたアプリケーションおよび／または無料アプリケーションの存在を、他のコンピューティングデバイスに通知するように構成され得る。無料アプリケーションは、別のアプリケーションに何らかの形で関係付けられたまたは関連付けられたアプリケーションである。いくつかの例では、無料アプリケーションは、別のアプリケーション（たとえば、無料スマートフォンアプリケーションに投入するためにデータを提供するユーティリティメータのためのアプリケーション）へ／から追加の機能および／またはデータを受信および／または提供するように構成され得る。他の例では、無料アプリケーションは、別のアプリケーションに含まれる特徴に対して類似するまたは補充する特徴を含むアプリケーションとすることができる（たとえば、ユーティリティメータがＷｉＦｉを介してホームエリアネットワークに接続することを可能にするアプリケーションは、ユーティリティメータがＷｉＦｉホットスポットとして機能することを可能にするアプリケーションに対して無料であると考えられ得る）。
【００５４】
図８に戻って参照すると、アプリケーションリポジトリ１０４に記憶されたアプリケーションのいくつかが、無料アプリケーション（たとえば、アプリケーション５０６（１）、５０６（２）、および５０６（３））として指定されている。この補足指定は、たとえば、アプリケーションインデックス５０４、またはアプリケーション５０６に関連付けられたメタデータでなされ得る。したがって、コンピューティングデバイスからの第１のアプリケーション５０６（１）に対する要求を受信すると、ユーティリティアプリケーションストア１０２は、無料アプリケーション５０６（２）および５０６（３）の存在を１または複数の他のコンピューティングデバイスに通知することができる。加えてまたは代わりに、ユーティリティアプリケーションストア１０２は、第１のアプリケーション５０６（１）の存在、および／または第１のアプリケーション５０６（１）が第１のコンピューティングデバイス上にインストールされていることを、１または複数の他のコンピューティングデバイスに通知してもよい。
【００５５】
図９Ａ、９Ｂ、および９Ｃは、アプリケーションの存在を様々なユーザに知らせる、提供され得る３つの例示的通知を示す。
【００５６】
図９Ａは、ユーティリティサプライヤに送られ得る通知９００Ａを示し、通知９００Ａは、それらの顧客の１または複数が自身のパーソナルコンピュータまたはモバイルデバイス上にアプリケーション「環境に優しくなるには？−ユーティリティ管理アプリケーション（How Green Can You Be? - Utility Management Application）」をインストールしたことを、ユーティリティサプライヤに知らせる。通知９００Ａはまた、ユーティリティサプライヤに、顧客がインストールしたアプリケーションを強化できる無料アプリケーションがそれらの顧客のユーティリティメータに利用可能であることを知らせる。たとえば、ユーティリティメータに対するアプリケーションは、アプリケーションプログラミングインターフェース（ＡＰＩ）を含むことができ、顧客のアプリケーションは、ＡＰＩを呼び出して、特定の追加データを取得すること、またはさもなければ顧客に利用可能とならないユーティリティメータの特定の機能を実行することができる。
【００５７】
図示された例では、通知９００Ａはまた、アプリケーションを最近インストールした２人の特定の顧客、ボブ・ジョーンズ（Bob Jones）およびシンディ・ジョンソン（Cindy Johnson）の表示、およびアプリケーションをインストールした顧客の総数を含む。この情報は、図９Ａでは、たとえば、下線を引かれたテキストを選択することにより、追加の情報が利用可能であることを示すために、下線を引かれて示されている。下線を引かれたテキストを選択することによって、ユーティリティサプライヤは、特定の顧客、インストールおよびアプリケーションがインストールされたデバイスの詳細、インストールの数、ならびにインストールの時間などに関する追加の情報を取得することができる。この情報を提供することにより、ユーティリティサプライヤは、メータアプリケーションのインストールから何人の顧客が利益を得るかを決定することができる。
【００５８】
通知９００Ａはまた、アプリケーションの価格を示す価格フィールド、および、ユーザが購入の前にアプリケーションをプレビューすることを可能にするプレビューコントロールを含む。プレビューコントロールは、ユーザがアプリケーションのスクリーンショット、説明、および／またはデモにリンクすることを可能にすることができる。加えてまたは代わりに、プレビューコントロールは、ユーザがアプリケーションのデモまたは試用バージョンをインストールすることを可能にすることができる。図示された「今すぐ買う」ボタンのような購入コントロール９０２は、通知から直接的にユーザがアプリケーションを迅速および容易に購入およびインストールすることを可能にすることができる。加えてまたは代わりに、通知は、アプリケーションをインストールまたはアクティブ化するためにユーティリティアプリケーションストア１０２へのリンク９０４を含むことができる。
【００５９】
図９Ｂは、顧客に送られ得る通知９００Ｂを示し、通知９００Ｂは、彼らのユーティリティサプライヤが顧客のユーティリティメータ上にアプリケーション（たとえば、「ＯＳ２．０：電力品質アドオン（OS 2.0: Power Quality Add-On）」）をインストールしたことを彼らに知らせる。通知は、無料アプリケーションが顧客のパーソナルコンピュータまたはモバイルデバイスに利用可能であることを顧客に通知し、それにより、以前は利用可能でなかった彼らのユーティリティ消費に関する追加の情報を顧客に提供することができる。先の例と同様に、通知９００Ｂはまた、価格フィールドおよびプレビューコントロールを含む。
【００６０】
いくつかの例では、ユーザがパーソナルコンピュータから通知にアクセスしたときなどに、顧客は、直接的に通知からパーソナルコンピュータへアプリケーションを購入、ダウンロード、およびインストールすることが可能であり得る。しかしながら、他の例では、ユーザがスマートフォンまたは他のモバイルデバイスから通知にアクセスしたときなどに、ユーザは、特定のスマートフォンまたはモバイルデバイスのためのアプリケーションストア（たとえば、ｉＴｕｎｅｓ（登録商標）ストアまたはＡｎｄｒｏｉｄ（登録商標）ストア）に移動する必要があり得る。したがって、通知９００Ｂは、アプリケーションが取得され得る１または複数のデバイス専用またはプラットフォーム専用アプリケーションストアへのリンク９０４を含むことができる。
【００６１】
図９Ｃは、１または複数のユーティリティメータ上にアプリケーション「ＯＳ２．０：電圧品質アドオン」をインストールしたユーティリティサプライヤに送られ得る通知９００Ｃを示す。通知はまた、ユーティリティサプライヤに対し、メータアプリケーションのデータおよび機能を活用してそれらの配電網を最適化することができる無料アプリケーションがそれらの中央局サーバに利用可能であることを知らせる。上述の例と同様に、通知９００Ｃは、価格フィールドおよびプレビューコントロールも含む。
【００６２】
上記の図９Ａの例と同様に、通知９００Ｃは、通知から直接的にユーザがアプリケーションを迅速および容易に購入およびインストールすることを可能にすることができる購入コントロール９０２を含むことができる。加えてまたは代わりに、通知９００Ｃは、アプリケーションをインストールまたはアクティブ化するためにユーティリティアプリケーションストア１０２へのリンク９０４を含むことができる。
【００６３】
上記の例では、顧客およびユーティリティサプライヤの各々が、自身のそれぞれのアプリケーションをインストールするための任意の適用可能な価格を支払うことを想定している。他の実施形態では、ユーティリティサプライヤが、コンシューマアプリケーションの支払いを補助することがあり、または、コンシューマが、そのメータ上のアプリケーションのインストールの支払いを補助することがある。すなわち、メータアプリケーションの支払いをしてそれをインストールすることにより、コンシューマアプリケーションが無料で顧客に提供されることが可能なように、メータアプリケーションが価格設定されることがあり、逆も同様である。
【００６４】
図１０は、１または複数のコンピューティングデバイス上のインストールのためのアプリケーションの存在の通知を提供するために使用され得る動作１０００の例示的フローを示す、信号フロー図である。動作１０００の例示的フローは、アーキテクチャ８００の例の文脈で図８に示されたデバイスを参照して説明される。しかしながら、動作１０００のフローは、アーキテクチャ８００および図８のデバイスと共に使用することに限定されず、他のアーキテクチャおよびデバイスを使用して実行されてもよい。
【００６５】
動作１０００のフローは、ブロック１００２で、第１のコンピューティングデバイス（たとえばユーティリティアプリケーションストア１０２）が、第２のコンピューティングデバイス（たとえばコンシューマデバイス８０２）上に第１のアプリケーションをインストールすることを求める要求を受信するとき、開始することができる。１００４では、第１のコンピューティングデバイスは、アプリケーション、アプリケーションをアクティブ化する認証情報、またはアプリケーションを別のサイト（たとえば、クライアント専用アプリケーションストア）からダウンロードするためのリンクを送信することができる。アプリケーション、認証情報、および／またはリンクは、要求するコンピューティングデバイス（たとえばコンシューマデバイス８０２）または別のコンピューティングデバイス（たとえばスマートセンサ１０６）に送信され得る。
【００６６】
第１のコンピューティングデバイスはまた、１００６で、第１のアプリケーションに関連付けられた第２のアプリケーションを識別し、第２のアプリケーションは、第２のコンピューティングデバイスと異なるタイプの第３のコンピューティングデバイス（たとえば、スマートセンサ１０６、ユーティリティサプライヤ１１０、または図示されない別のコンピューティングデバイス）によって実行されるように構成されている。１００８では、第１のコンピューティングデバイスは、第２のアプリケーションの利用可能性の通知を、１または複数のコンピューティングデバイス（たとえば、コンシューマデバイス８０２、コンピューティングデバイス１１４、ユーティリティサプライヤ１１０、または図示されない別のコンピューティングデバイス）に送る。
【００６７】
いくつかの例では、関係付けられた第２のアプリケーションは、第１のアプリケーションに対する追加の機能および／またはデータを受信および／または提供するように構成された無料アプリケーションを含むことができる。すなわち、第１のアプリケーションは、第２のアプリケーションとインターフェース接続して、第２のアプリケーションの機能および／またはデータを利用するように、またはその逆に構成され得る。
【００６８】
図示された例では、第１のコンピューティングデバイスはユーティリティアプリケーションストア１０２を含み、第２のコンピューティングデバイスはコンシューマデバイス８０２を含み、第３のコンピューティングデバイスはスマートセンサ１０６を含む。しかしながら、他の例では、第１、第２、および第３のコンピューティングデバイスは、他のコンピューティングデバイスを含むことがある。たとえば、第３のコンピューティングデバイスが、ユーザまたはユーザアカウントに関連付けられた他のタイプのユーティリティネットワークコンピューティングデバイスを含むことができる。スマートセンサは、ユーティリティネットワークコンピューティングデバイスの一例であるが、ユーティリティネットワークコンピューティングデバイスの他の例は、限定するものではないが、電気自動車充電スタンド、分散された発電源（distributed generation source）、ホームエリアネットワークデバイス、トランス、アプライアンス、またはインバータなどを含む。別の例では、第２のコンピューティングデバイスが、ユーティリティコンピューティングデバイス（たとえばコンピューティングデバイス１１４）を含み、顧客のユーティリティメータ上におけるアプリケーションのインストールを要求することができる。要求を受信すると、ユーティリティアプリケーションストア１０２は、コンシューマのスマートフォン（すなわち、第３のコンピューティングデバイス）に通知を送って、ユーザのスマートフォンに対する無料アプリケーションの存在をユーザに知らせることができる。さらに別の例では、ユーティリティアプリケーションストア１０２以外のコンピューティングデバイスが、無料アプリケーションの通知を提供することができる。
【００６９】
いくつかの例では、通知は、第２のアプリケーションを購入するために使用できるコントロール、第３のコンピューティングデバイス上における第２のアプリケーションのインストールを引き起こすために使用できるコントロール、および／または、コンピューティングデバイスによって第１のアプリケーションがそれからインストール可能であるアプリケーションストアに、アクセスするために使用できるコントロールを含むことができる。図９Ａ、９Ｂ、および９Ｃは、動作１００８で提供され得る３つの例示的通知を示す。しかしながら、数多くの他の通知が、アプリケーションの存在を他のコンピューティングデバイスまたはユーザに通知するために使用され得る。
【００７０】
１０１０では、通知を受信している任意のコンピューティングデバイスが、コンピューティングデバイスのディスプレイ上に通知を提示することができる。図示された例では、コンピューティングデバイス１１４が、通知を提示するものとして示されている。しかしながら、通知を受信している他のコンピューティングデバイス（すなわちコンシューマデバイス８０２および／またはユーティリティサプライヤ１１０）が、加えてまたは代わりに通知を提示することができる。続いて、１０１２で、通知を表示しているコンピューティングデバイスが、ディスプレイ上に提示された通知のコントロールのユーザ選択を受信することができる。コントロールの選択の受信に応答して、１０１４で、コンピューティングデバイス（たとえばコンピューティングデバイス１１４）は、第１のコンピューティングデバイス（たとえばユーティリティアプリケーションストア１０２）が第２のアプリケーションをコンピューティングデバイス（コンピューティングデバイス１１４）または別のコンピューティングデバイス（たとえばスマートセンサ１０６）に送信することを要求することができる。
【００７１】
１０１６では、第１のコンピューティングデバイスは、第２のアプリケーションまたは第２のアプリケーションをアクティブ化する認証情報を、要求しているコンピューティングデバイスに、または図１０に示されるように要求しているデバイス（たとえばスマートセンサ１０６）によって指定されたデバイスに送信することができる。
【００７２】
第１のコンピューティングデバイスはまた、１００６で、第１のアプリケーションおよび／または第２のアプリケーションに関連付けられた第３（または後続）のアプリケーションを識別することもでき、第３のアプリケーションは、第４のコンピューティングデバイス（たとえば、ユーティリティサプライヤ１１０、または図示されない別のコンピューティングデバイス）によって実行されるように構成されている。その場合、１０１０で表示される通知は、第２のアプリケーションと第３のアプリケーションの両方の存在の通知を含んでいてよく、１０１２で受信されるコントロールの選択は、第２のアプリケーションと第３のアプリケーションの両方に適用されていてよい。したがって、通知を表示しているコンピューティングデバイス（たとえばコンピューティングデバイス１１４）は、１０１８で、第１のコンピューティングデバイス（たとえばユーティリティアプリケーションストア１０２）が第３のアプリケーションを別のコンピューティングデバイス（たとえばユーティリティサプライヤ１１０）に送信することをさらに要求する。
【００７３】
１０２０では、第１のコンピューティングデバイスは、第３のアプリケーションまたは第３のアプリケーションをアクティブ化する認証情報を、要求しているデバイス（たとえばユーティリティサプライヤ１１０）によって指定されたデバイスに送信することができる。
【００７４】
例示的分散アプリケーション
図１１は、複数のコンピューティングデバイス間の分散アプリケーションの使用を示す、別の例示的なネットワーク化された環境またはアーキテクチャ１１００を示す図である。たとえば、アーキテクチャ１１００は、複数の異なるデバイスによって実行可能である分散アプリケーションの複数の部分の分配を可能にする。たとえば、分散アプリケーションの第１の部分は、第１のコンピューティングデバイスによって実行されるように構成されることができ、分散アプリケーションの１または複数の追加部分は、第１のコンピューティングデバイスとは別個の１または複数の追加コンピューティングデバイスによって実行されるように構成されることができる。分散アプリケーションの第１の部分は、分散アプリケーションの１または複数の追加部分とインターフェース接続し、分散アプリケーションの１または複数の追加部分の機能および／またはデータを利用するように構成され得る。
【００７５】
いくつかの例では、複数の異なるコンピューティングデバイスの少なくとも一部は、異なるタイプのデバイス、および／または異なるオペレーティングシステムを実行しているデバイスを含む。一例では、第１のコンピューティングデバイスは、スマートユーティリティメータを含み、１または複数の追加のコンピューティングデバイスは、ユーティリティサーバ、クラウドコンピューティングリソース、パーソナルコンピュータ、モバイルデバイス、電気自動車充電器、分散された発電源、ホームエリアネットワークデバイス、トランス、アプライアンス、および／またはインバータを含む。さらなる例では、分散アプリケーションの部分は、スマートユーティリティメータ上で動作することができ、パーソナルコンピュータまたはモバイルデバイス上で動作するアプリケーションの別の部分と通信することができる。スマートユーティリティメータ上で動作している分散アプリケーションの部分は、ユーティリティ消費データにアクセスすることができ、パーソナルコンピュータまたはモバイルデバイス上で動作しているアプリケーションの部分は、コンシューマによってアクセス可能なユーザインターフェースを提供することができる。
【００７６】
図８のアーキテクチャ８００と同様に、アーキテクチャ１１００は、１もしくは複数のユーティリティメータまたは他のスマートセンサ１０６上でのインストールのために利用可能なアプリケーションのリポジトリ１０４を有するユーティリティアプリケーションストア１０２を含む。アーキテクチャはまた、ネットワーク１１２を介してユーティリティアプリケーションストア１０２およびスマートセンサ１０６と通信するユーティリティサプライヤ１１０、コンシューマコンピューティングデバイス８０２、および１もしくは複数の他のサービス８０４を含む。
【００７７】
しかしながら、アーキテクチャ１１００では、ユーティリティアプリケーションストア１０２のアプリケーションリポジトリ１０４は、（「アプリケーション１１０２」と総称される）アプリケーション１１０２（１）、１１０２（２）、１１０２（３）、１１０２（４）、…、１１０２（Ｌ）を含み、Ｌは、１以上の任意の整数である。アプリケーション１１０２は、まとめて分散アプリケーション１１０４を画成するアプリケーションのサブセット１１０２（１）〜１１０２（４）を含む。したがって、アプリケーション１１０２（１）〜１１０２（４）は、分散アプリケーション１１０４の部分であると考えられ得る。分散アプリケーション１１０４の各部分は、独立していくつかの動作を実施するように構成され得る。加えて、分散アプリケーション１１０４の各部分はまた、分散アプリケーションの１または複数の追加部分とインターフェース接続し、分散アプリケーションの１または複数の追加部分の機能および／またはデータを利用するように構成され得る。
【００７８】
アプリケーション１１０２（１）〜１１０２（４）はまた、異なるタイプの複数の異なるデバイス上にインストールされて示されている。たとえば、アプリケーション１１０２（１）、すなわち分散アプリケーションの第１の部分１１０４は、スマートメータ１０６（１）上にインストールされる。アプリケーション１１０２（２）、すなわち分散アプリケーションの第２の部分１１０４は、コンシューマデバイス８０２上にインストールされる。アプリケーション１１０２（３）、すなわち分散アプリケーション１１０４の第３の部分は、ユーティリティサプライヤ１１０上にインストールされる。そして、アプリケーション１１０２（４）、すなわち分散アプリケーション１１０４の第４の部分は、他のサービス８０４上の１つにインストールされる。分散アプリケーション１１０４の部分が動作するこれらの異なるデバイスのそれぞれは、異なるハードウェア、異なるオペレーティングシステム、または異なるソフトウェアもしくはソフトウェアのバージョンなどを含み得る。しかしながら、分散アプリケーション１１０４の様々な部分は、互いに対話し、分散アプリケーションの他の部分のデータおよび／または処理能力を活用することができる。いくつかの例では、分散アプリケーション１１０４の部分間の通信は、特定の機能を実行しおよび／または特定のデータを取得するためにアプリケーションの他の部分によって呼び出され得る分散アプリケーションの１または複数の部分によって提示される１または複数のアプリケーションプログラミングインターフェース（ＡＰＩ）によって可能にされ得る。
【００７９】
図１２は、顧客に彼または彼女の電気消費を知らせる動作を実施するために使用され得る分散アプリケーション１１０４の単純な例を示す。この例では、顧客デバイス８０２上で実行しているアプリケーション１１０２（２）が、アプリケーション１１０２（１）、１１０２（３）、および１１０２（４）のＡＰＩを呼び出すことができる。ＡＰＩ呼出しに応答して、スマートセンサ上で実行しているアプリケーション１１０２（１）が、スマートセンサ１０６（１）が設置された場所の現在のリソース消費データ（たとえば電気使用量）を報告することができる。同様に、中央局１１０上で実行しているアプリケーション１１０２（３）は、顧客または場所の履歴平均リソース消費データ（たとえば電気使用量）を報告することができる。加えてまたは代わりに、アプリケーション１１０２（３）は、顧客の１または複数のピア（peer）（たとえば、近隣の顧客、同様の消費パターンを有する顧客など）に関する消費データを報告してもよい。他のサービス８０４上で実行しているアプリケーション１１０２（４）は、たとえば、現在のリソース価格データを提供することができる。そして、アプリケーション１１０２（２）は、コンシューマデバイス８０２の画面上に、分散アプリケーション１１０４の他の部分から受信されたデータを表示することができる。したがって、分散アプリケーションは、単一ソースによって容易に提供できなかった情報の独自の組み合わせを提供するために、コンシューマデバイスのユーザインターフェース、スマートメータの消費データ、中央局の価格または履歴消費情報、および他のサービスの気象または他の情報を利用する。別の例では、分散アプリケーションは、ユーティリティサプライヤに情報を有利に提供することができる。
【００８０】
図１２は、分散アプリケーションの１つの単純な例にすぎない。分散アプリケーションの概念を使用して数多くの他の例が可能である。いくつかの他の非限定的例が以下に簡潔に説明される。一例では、分散アプリケーションの第１の部分は、ユーティリティメータまたは他のスマートセンサを実行してリソース消費データを収集および処理するように構成され得る。他のコンピューティングリソースと比較して、ユーティリティメータまたはスマートセンサは、メモリおよび／または処理リソースに関していくらか制約されている。ユーティリティメータまたはスマートセンサ上で動作している分散アプリケーションの第１の部分は、ユーティリティサプライヤサーバまたはクラウドコンピューティングリソースのようなより大きな処理能力を有するコンピューティングデバイス上で動作している分散アプリケーションの第２の部分に対して、いくらかの処理動作をオフロードするように構成され得る。この処理責務のオフロードは、定期的にまたは必要に応じて実行され得る。
【００８１】
分散アプリケーションの別の例では、需要応答アプリケーションの第１の部分は中央局で実行することができる。需要応答アプリケーションの第１の部分は、気象サービスに存在するアプリケーションの第２の部分、および／または電気分配場所に存在するアプリケーションの第３の部分からのデータを受信することができる。アプリケーションの第２の部分および第３の部分から受信されたデータは、リソース需要を測定および予測するために第１の部分によって使用され得る。アプリケーションの第１の部分は、アプリケーションの第４の部分とも通信してよく、第４の部分は、１もしくは複数のユーティリティメータ、コントロールポイント、または測定され予測されたリソース需要に基づいて特定の場所におけるユーティリティ消費を調整する他のスマートセンサに存在する。
【００８２】
図１３は、１または複数の分散アプリケーションの部分を実行しているデバイスの間の信号フローを表すことができる動作１３００の例示的フローを示す、信号フロー図である。分散アプリケーションの部分は、複数のコンピューティングデバイス上で同時に動作するように構成され得る。動作１３００の例示的フローは、アーキテクチャ１１００の例の文脈で図１１に示されたデバイスを参照して説明される。しかしながら、動作１３００のフローは、アーキテクチャ１１００および図１１のデバイスと共に使用することに限定されず、他のアーキテクチャおよびデバイスを使用して実行されてもよい。
【００８３】
動作１３００のフローは、ブロック１３０２で、ユーティリティメータまたは他のスマートセンサ１０６などの第１のコンピューティングデバイスが動作の第１の部分（たとえば、リソース消費を測定する）を実施するとき、開始することができる。１３０４では、第１のコンピューティングデバイスが、遠隔コンピューティングリソースにインストールされた分散アプリケーションの第２の部分と通信して、動作の第２の部分の遠隔コンピューティングリソースによる実施を引き起こす。通信は、データの提供および／または処理動作の実施を遠隔コンピューティングリソースに行わせるための、分散アプリケーションの第２の部分または遠隔コンピューティングリソースのＡＰＩに対する呼出しを含むことができる。遠隔コンピューティングリソースは、コンシューマデバイス８０２、ユーティリティサプライヤ１１０、他のコンピューティングサービス８０４、または任意の他のコンピューティングリソースを含むことができる。他のコンピューティングリソースのいくつかの例は、限定するものではないが、ユーティリティサーバ、クラウドコンピューティングリソース、パーソナルコンピュータ、モバイルデバイス、電気自動車充電器、分散された発電源、ホームエリアネットワークデバイス、トランス、アプライアンス、またはインバータを含む。
【００８４】
１３０６では、遠隔コンピューティングリソースが、動作の第２の部分を実施することができる。動作の第２の部分は、広範囲の動作のうちの任意のものを含むことができる。いくつかの非限定的例において、第２の動作は、情報をディスプレイに表示すること、または、気候情報、リソース価格情報、リソース需要情報、リソース供給情報、人口統計データ、もしくは検証データを取得することを含むことができる。加えてまたは代わりに、動作の第２の部分は、処理動作（たとえば、分散アプリケーションの第１の部分のオフロード動作）を実施することを含むことができる。
【００８５】
１３０８では、第１のコンピューティングリソースが、遠隔コンピューティングリソースから応答を受信することができる。応答は、遠隔コンピューティングリソースによる動作の第２の部分の実施の結果（たとえば、分散アプリケーションの第２の部分の実行によって取り出されたデータ、分散アプリケーションの第２の部分の実行の処理結果）を含むことができる。いくつかの例では、結果は、分散アプリケーションの第１の部分、または第１のコンピューティングリソースのオペレーティングシステムのＡＰＩに対する呼出しを含むことができる。いくつかの例では、分散アプリケーションの第１の部分は、分散アプリケーションの第２の部分と同時に動作することができる。
【００８６】
１３１０では、第１のコンピューティングリソースは、動作の第３の部分を実施するために分散アプリケーションの第１の部分を実行することを求める要求を、遠隔コンピューティングリソース（または別の遠隔コンピューティングリソース）から受信することができる。要求は、分散アプリケーションの第１の部分のＡＰＩ、または第１のコンピューティングリソースのオペレーティングシステムのＡＰＩを呼び出すことができる。一例では、第３の動作は、第１のコンピューティングリソース（たとえばスマートセンサ）のメモリまたはレジスタに対して、第１のコンピューティングリソースのメモリまたはレジスタに記憶された１または複数のセンサ測定値を問い合わせることを含むことができる。第１のコンピューティングリソースがユーティリティメータを含む場合では、第１のコンピューティングリソースのメモリに記憶されたセンサ測定値が、たとえば、第１のコンピューティングリソースの計測モジュールからのリソース消費測定値を含むことができる。要求を受信することに応答して、第１のコンピューティングリソースは、１３１２で、分散アプリケーションの第１の部分を実行して、動作の第３の部分を実施することができる。１３１４では、第１のコンピューティングリソースは、第１のアプリケーションの実行の結果を、遠隔コンピューティングリソースにインストールされた分散アプリケーションの第２の部分へ通信することができる。第１のコンピューティングリソースがユーティリティメータを含む例において、結果は、ユーティリティメータの場所に関連付けられたリソース消費データを含むことができる。
【００８７】
図１３は２つのみのコンピューティングデバイスにわたる分散アプリケーションの実行を示しているが、図１３を参照して説明された技法は、３個、４個、またはさらに多いコンピューティングデバイスにわたって動作する分散アプリケーションに容易に拡張され得る。
【００８８】
図７、１０、および１３に示された動作のフローは、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせで実行され得る動作の系列を表すブロックおよび／または矢印の集合として示されている。ブロックが説明される順序は限定として解釈されることを意図されておらず、任意の数の説明された動作は、１または複数の方法または代替的方法を実行するために任意の順序で組み合わせられ得る。加えて、個々の動作は、本明細書に説明される主題の趣旨および範囲から逸脱することなく、動作のフローから省略され得る。ソフトウェアの文脈において、ブロックは、１または複数のプロセッサによって実行されたときに記載された動作を実施するコンピュータ可読命令を表す。ハードウェアの文脈において、ブロックは、記載された動作を実行するように構成された１または複数の回路（たとえば、特定用途向け集積回路−ＡＳＩＣ）を表すことができる。
【００８９】
本出願は特定の構造的特徴および／または方法論的動作を有する実施形態を説明しているが、特許請求の範囲は説明された特定の特徴または動作に必ずしも限定されないことを理解されたい。むしろ、特定の特徴および動作は、本出願の特許請求の範囲の範囲内に入る単に例示のいくつかの実施形態である。
【図１】
0006678577.tif 000002
【図２】
0006678577.tif 000003
【図３】
0006678577.tif 000004
【図４】
0006678577.tif 000005
【図５】
0006678577.tif 000006
【図６】
0006678577.tif 000007
【図７】
0006678577.tif 000008
【図８】
0006678577.tif 000009
【図９Ａ】
0006678577.tif 000010
【図９Ｂ】
0006678577.tif 000011
【図９Ｃ】
0006678577.tif 000012
【図１０】
0006678577.tif 000013
【図１１】
0006678577.tif 000014
【図１２】
0006678577.tif 000015
【図１３】
0006678577.tif 000016