(57)【要約】  システム、方法、およびコンピュータプログラム製品は、従来のアプリケーションストアからモバイルデバイスにアプリケーションパッケージをダウンロードする。アプリケーションパッケージは、モバイルデバイス(たとえば、AndroidまたはiOSオペレーティングシステムを実行しているタブレットコンピュータ、スマートフォン等)上で実行される第1のアプリケーションと、ルータ上で実行するための第2のアプリケーションとの、2つのアプリケーションを含み得る。ユーザが第1のアプリケーションをダウンロードしてモバイルデバイス上で実行すると、第1のアプリケーションは、ルータが存在するかどうかを決定(たとえば、モバイルデバイスがルータに接続されているかどうかを決定)して、存在する場合、第2のアプリケーションをルータにダウンロードする。第2のアプリケーションは、ルータアプリケーション自体でもよく、ルータ上で実行されると、ルータアプリケーションをルータにダウンロードするアプリケーションでもよい。あるいは、第1のアプリケーションは、ルータにルータアプリケーションをダウンロードさせるコマンドを発行することができる。
2017507396.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションをルータに提供するための方法であって、
デバイスによって第1のアプリケーションソースからアプリケーションパッケージを受信するステップであって、前記アプリケーションパッケージが、前記デバイス上で実行するための第1のアプリケーションを含むステップと、
前記デバイスによって前記第1のアプリケーションを実行するステップとを備え、
前記第1のアプリケーションがルータアプリケーションを前記ルータへダウンロードさせる、方法。
【請求項２】
前記第1のアプリケーションが第1のオペレーティングシステム上で実行可能であり、前記ルータアプリケーションが前記第1のオペレーティングシステムとは異なる第2のオペレーティングシステム上で実行可能である、請求項1に記載の方法。
【請求項３】
前記アプリケーションパッケージが前記ルータアプリケーションを含み、前記ルータアプリケーションを前記デバイスから前記ルータにダウンロードするステップをさらに備える、請求項1に記載の方法。
【請求項４】
前記アプリケーションパッケージが前記ルータ上で実行するための第2のアプリケーションを含み、前記第2のアプリケーションを前記デバイスから前記ルータにダウンロードするステップをさらに備え、前記第2のアプリケーションが、前記ルータ上で実行されると、前記ルータアプリケーションを前記ルータにダウンロードする、請求項1に記載の方法。
【請求項５】
前記第1のアプリケーションが、前記ルータアプリケーション用のソースを指定するロケーションデータを前記ルータに通信して、前記ルータが前記ソースから前記ルータアプリケーションをダウンロードする、請求項1に記載の方法。
【請求項６】
前記ルータ用のルータタイプを決定するステップと、
前記ルータタイプに少なくとも部分的に基づいて前記ルータアプリケーションを決定するステップと
をさらに備える、請求項1に記載の方法。
【請求項７】
前記デバイスを前記ルータアプリケーションに関連付けるステップと、
前記ルータアプリケーションへのアクセスを前記デバイスに制限するステップと
をさらに備える、請求項1に記載の方法。
【請求項８】
前記第1のアプリケーションによって、前記ルータアプリケーションが前記ルータ上に存在しないと決定するステップをさらに備え、前記第1のアプリケーションが、前記ルータアプリケーションが前記ルータ上に存在しないと決定するステップに応答して、前記ルータアプリケーションを前記ルータへダウンロードさせる、請求項1に記載の方法。
【請求項９】
前記第1のアプリケーションによって前記ルータアプリケーションを構成するステップをさらに備える、請求項1に記載の方法。
【請求項１０】
アプリケーションをルータに提供するための方法であって、
前記ルータ上で実行するためのルータアプリケーションをルータアプリケーションソースから受信するステップであって、前記ルータアプリケーションの受信が、アプリケーションソースから第1のアプリケーションをデバイスが受信することに応答するとともに、前記デバイスによる前記第1のアプリケーションの実行にさらに応答するステップと、
前記第1のアプリケーションから、前記ルータアプリケーション用の構成データを受信するステップと
を備える、方法。
【請求項１１】
前記ルータアプリケーションがアプリケーションパッケージに含まれ、前記デバイスから前記ルータアプリケーションを受信するステップをさらに備える、請求項10に記載の方法。
【請求項１２】
前記ルータ上で実行するための第2のアプリケーションを受信するステップをさらに備え、前記第2のアプリケーションが前記ルータアプリケーションを前記ルータにダウンロードする、請求項10に記載の方法。
【請求項１３】
前記デバイスから、前記ルータアプリケーション用のソースを指定するロケーションデータを受信するステップと、
前記ルータによって、前記ソースから前記ルータアプリケーションをダウンロードするステップと
をさらに備える、請求項10に記載の方法。
【請求項１４】
前記デバイスを前記ルータアプリケーションに関連付けるステップと、
前記ルータアプリケーションへのアクセスを前記デバイスに制限するステップと
をさらに備える、請求項10に記載の方法。
【請求項１５】
前記デバイスから前記ルータアプリケーション用の構成データを受信するステップをさらに備える、請求項10に記載の方法。
【請求項１６】
アプリケーションをルータに提供するための方法であって、
アプリケーションストアによって、デバイスにアプリケーションパッケージを求める要求を受信するステップであって、前記アプリケーションパッケージが、前記デバイス上で実行するための第1のアプリケーションを含むステップと、
前記アプリケーションパッケージを前記デバイスに送信するステップとを備え、
前記第1のアプリケーションが、ルータアプリケーションを前記ルータへダウンロードさせるように構成されている、方法。
【請求項１７】
前記アプリケーションパッケージが前記ルータアプリケーションを含み、前記第1のアプリケーションが前記ルータアプリケーションを前記ルータにダウンロードするように構成されている、請求項16に記載の方法。
【請求項１８】
前記アプリケーションパッケージが、前記ルータ上で実行するための第2のアプリケーションを含み、前記第1のアプリケーションが前記第2のアプリケーションを前記ルータにダウンロードするように構成され、前記第2のアプリケーションが前記ルータアプリケーションを前記ルータにダウンロードする、請求項16に記載の方法。
【請求項１９】
前記第1のアプリケーションが、前記ルータアプリケーション用のソースを指定するロケーションデータを前記ルータに通信するように構成されている、請求項16に記載の方法。
【請求項２０】
前記第1のアプリケーションが、前記ルータアプリケーション用の構成データを提供するためのユーザインターフェースを提示するように動作可能である、請求項16に記載の方法。
【請求項２１】
装置であって、
プロセッサと、
機械使用可能プログラムコードを組み入れた機械可読記憶媒体とを備え、前記機械使用可能プログラムコードが、前記プロセッサによって、前記装置に、
第1のアプリケーションソースからアプリケーションパッケージを受信することであって、前記アプリケーションパッケージが、前記装置上で実行するための第1のアプリケーションを含む、ことと、
前記第1のアプリケーションを実行することであって、前記第1のアプリケーションがルータアプリケーションをルータへダウンロードさせる、ことと
を行わせるように実行可能である、装置。
【請求項２２】
前記第1のアプリケーションが、前記プロセッサによって実行される第1のオペレーティングシステム上で実行可能であり、前記ルータアプリケーションが、前記第1のオペレーティングシステムとは異なる第2のオペレーティングシステム上で実行可能である、請求項21に記載の装置。
【請求項２３】
前記アプリケーションパッケージが前記ルータアプリケーションを含み、前記第1のアプリケーションが前記ルータアプリケーションを前記ルータにダウンロードする、請求項21に記載の装置。
【請求項２４】
前記アプリケーションパッケージが前記ルータ上で実行するための第2のアプリケーションを含み、前記第1のアプリケーションが前記第2のアプリケーションを前記ルータにダウンロードし、前記第2のアプリケーションが、前記ルータ上で実行されると、前記ルータアプリケーションを前記ルータにダウンロードする、請求項21に記載の装置。
【請求項２５】
前記第1のアプリケーションが、前記ルータアプリケーション用のソースを指定するロケーションデータを前記ルータに通信し、前記ルータが前記ソースから前記ルータアプリケーションをダウンロードする、請求項21に記載の装置。
【請求項２６】
前記機械使用可能プログラムコードが、前記装置に、
前記ルータ用のルータタイプを決定させ、
前記ルータタイプに少なくとも部分的に基づいて前記ルータアプリケーションを決定させる
ための機械使用可能プログラムコードをさらに含む、請求項21に記載の装置。
【請求項２７】
前記第1のアプリケーションが、前記ルータアプリケーションを構成するためのユーザインターフェースを含む、請求項21に記載の装置。
【請求項２８】
ルータであって、
プロセッサと、
機械使用可能プログラムコードを組み入れた機械可読記憶媒体とを備え、前記機械使用可能プログラムコードが、前記プロセッサによって、前記ルータに、
ルータアプリケーションソースからルータアプリケーションを受信することであって、前記ルータアプリケーションの受信が、前記ルータに通信可能に結合されたデバイスがアプリケーションソースから第1のアプリケーションを受信することに応答するとともに、前記デバイスによる前記第1のアプリケーションの実行にさらに応答する、ことと、
前記第1のアプリケーションから、前記ルータアプリケーション用の構成データを受信することと
を行わせるように実行可能である、ルータ。
【請求項２９】
前記ルータアプリケーションがアプリケーションパッケージに含まれ、前記機械使用可能プログラムコードが、前記ルータに、前記デバイスから前記ルータアプリケーションを受信させるための機械使用可能プログラムコードをさらに含む、請求項28に記載のルータ。
【請求項３０】
前記機械使用可能プログラムコードが、前記ルータに、第2のアプリケーションを受信させるための機械使用可能プログラムコードをさらに含み、前記第2のアプリケーションが前記ルータアプリケーションを前記ルータにダウンロードする、請求項28に記載のルータ。
【請求項３１】
前記機械使用可能プログラムコードが、前記ルータに、
前記ルータアプリケーション用のソースを指定するロケーションデータを前記デバイスから受信させ、
前記ソースから前記ルータアプリケーションをダウンロードさせる
ための機械使用可能プログラムコードをさらに含む、請求項28に記載のルータ。
【請求項３２】
前記機械使用可能プログラムコードが、前記ルータに、
前記デバイスを前記ルータアプリケーションに関連付けさせて、
前記ルータアプリケーションへのアクセスを前記デバイスに制限させる
ための機械使用可能プログラムコードをさらに含む、請求項28に記載のルータ。
【請求項３３】
アプリケーションパッケージを記憶した機械可読記憶媒体であって、前記アプリケーションパッケージが、デバイスアプリケーションとルータアプリケーションとを含み、前記デバイスアプリケーションが、第1のプロセッサによって実行されると、前記第1のプロセッサに、前記ルータアプリケーションをルータへダウンロードさせる第1のプログラム製品を備える、機械可読記憶媒体。
【請求項３４】
前記デバイスアプリケーションが第1のオペレーティングシステム上で実行可能であり、前記ルータアプリケーションが前記第1のオペレーティングシステムとは異なる第2のオペレーティングシステム上で実行可能である、請求項33に記載の機械可読記憶媒体。
【請求項３５】
前記ルータアプリケーションが、第2のプロセッサによって実行されると、前記第2のプロセッサに、
前記デバイスアプリケーションを実行しているデバイスを前記ルータアプリケーションに関連付けるステップと、
前記ルータアプリケーションへのアクセスを前記デバイスに制限するステップと
を備える動作を実行させる第2のプログラム製品を含む、請求項33に記載の機械可読記憶媒体。
【請求項３６】
プロセッサによって実行されると、前記プロセッサに、
ルータ上で実行するためのルータアプリケーションをルータアプリケーションソースから受信するステップであって、前記ルータアプリケーションの受信が、アプリケーションソースから第1のアプリケーションをデバイスが受信することに応答するとともに、前記デバイスによる前記第1のアプリケーションの実行にさらに応答するステップと、
前記第1のアプリケーションから、前記ルータアプリケーション用の構成データを受信するステップと
を備える動作を実行させるプログラム製品を記憶した、1つまたは複数の機械可読媒体。
【請求項３７】
前記ルータアプリケーションがアプリケーションパッケージに含まれ、前記動作が、前記デバイスから前記ルータアプリケーションを受信するステップをさらに備える、請求項36に記載の1つまたは複数の機械可読媒体。
【請求項３８】
前記動作が、
前記デバイスから、前記ルータアプリケーション用のソースを指定するロケーションデータを受信するステップと、
前記ルータによって、前記ソースから前記ルータアプリケーションをダウンロードするステップと
をさらに備える、請求項36に記載の1つまたは複数の機械可読媒体。
【請求項３９】
前記動作が、
前記デバイスを前記ルータアプリケーションに関連付けるステップと、
前記デバイスに前記ルータアプリケーションへのアクセスを制限するステップと
をさらに備える、請求項36に記載の1つまたは複数の機械可読媒体。
【請求項４０】
前記動作が、前記デバイスから前記ルータアプリケーション用の構成データを受信するステップをさらに備える、請求項36に記載の1つまたは複数の機械可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、2014年1月9日に出願された米国特許出願第14/151,557号の優先権利益を主張する。
【０００２】
本発明の主題の実施形態は、一般にコンピュータの分野に関し、より詳細には、ルータアプリケーション用の分散機構に関する。
【背景技術】
【０００３】
ルータがより強力になるにつれて、サードパーティネットワーキングアプリケーションを実行する能力がより魅力的になってきている。たとえば、ペアレンタルコントロールアプリケーションおよびウイルススキャニングアプリケーションなどのアプリケーションがルータ上で実行され得る。そのようなアプリケーションで強化されたルータは、従来のルータによってこれまで実行されてきた機能に加えて機能を実行するため、「スマートゲートウェイ」と呼ばれ得る。ルータ用のアプリケーションは、典型的に、ルータの製造者またはベンダから入手される。たとえば、ルータ用のアプリケーションは、ルータのベンダによって維持されるアプリケーションストアから入手され得る。アプリケーションストアの急増は、彼らのルータ用のアプリケーションを入手することを望むルータの所有者にとって、混乱や他の困難につながる場合がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
ルータアプリケーションの分散機構を実装するために、様々な実施形態が開示される。一実施形態では、アプリケーションパッケージは、第1のアプリケーションソースからデバイスによって受信される。アプリケーションパッケージは、デバイス上で実行するためのデバイスアプリケーションを含む。デバイスアプリケーションを実行すると、デバイスアプリケーションが、ルータアプリケーションをルータへダウンロードさせる。
【０００５】
いくつかの実施形態では、アプリケーションをルータに提供するための方法は、デバイスによって第1のアプリケーションソースからアプリケーションパッケージを受信するステップであって、アプリケーションパッケージが、デバイス上で実行するための第1のアプリケーションを含むステップと、デバイスによって第1のアプリケーションを実行するステップとを備え、第1のアプリケーションは、ルータアプリケーションがルータにダウンロードされるようにする。
【０００６】
いくつかの実施形態では、第1のアプリケーションは第1のオペレーティングシステム上で実行可能であり、ルータアプリケーションは第1のオペレーティングシステムとは異なる第2のオペレーティングシステム上で実行可能である。
【０００７】
いくつかの実施形態では、アプリケーションパッケージはルータアプリケーションを含み、本方法は、ルータアプリケーションをデバイスからルータにダウンロードするステップをさらに備える。
【０００８】
いくつかの実施形態では、アプリケーションパッケージはルータ上で実行するための第2のアプリケーションを含み、本方法は、第2のアプリケーションをデバイスからルータにダウンロードするステップをさらに備え、第2のアプリケーションは、ルータ上で実行されると、ルータアプリケーションをルータにダウンロードする。
【０００９】
いくつかの実施形態では、第1のアプリケーションは、ルータアプリケーション用のソースを指定するロケーションデータをルータに通信して、ルータはソースからルータアプリケーションをダウンロードする。
【００１０】
いくつかの実施形態では、本方法は、ルータ用のルータタイプを決定するステップと、ルータタイプに少なくとも部分的に基づいてルータアプリケーションを決定するステップとをさらに備える。
【００１１】
いくつかの実施形態では、本方法は、デバイスをルータアプリケーションに関連付けるステップと、ルータアプリケーションへのアクセスをデバイスに制限するステップとをさらに備える。
【００１２】
いくつかの実施形態では、本方法は、第1のアプリケーションによって、ルータアプリケーションはルータ上に存在しないと決定するステップをさらに備える。第1のアプリケーションは、ルータアプリケーションがルータ上に存在しないと決定するステップに応答して、ルータアプリケーションをルータへダウンロードさせる。
【００１３】
いくつかの実施形態では、本方法は、第1のアプリケーションによってルータアプリケーションを構成するステップをさらに備える。
【００１４】
いくつかの実施形態では、アプリケーションをルータに提供するための方法は、ルータ上で実行するためのルータアプリケーションをルータアプリケーションソースから受信するステップであって、ルータアプリケーションの受信が、アプリケーションソースから第1のアプリケーションを受信するデバイスに応答し、デバイスによる第1のアプリケーションの実行にさらに応答するステップと、第1のアプリケーションから、ルータアプリケーション用の構成データを受信するステップとを備える。
【００１５】
いくつかの実施形態では、ルータアプリケーションはアプリケーションパッケージに含まれ、本方法は、デバイスからルータアプリケーションを受信するステップをさらに備える。
【００１６】
いくつかの実施形態では、本方法は、ルータ上で実行するための第2のアプリケーションを受信するステップをさらに備え、第2のアプリケーションはルータアプリケーションをルータにダウンロードする。
【００１７】
いくつかの実施形態では、本方法は、デバイスから、ルータアプリケーション用のソースを指定するロケーションデータを受信するステップと、ルータによって、ソースからルータアプリケーションをダウンロードするステップとをさらに備える。
【００１８】
いくつかの実施形態では、本方法は、デバイスをルータアプリケーションに関連付けるステップと、ルータアプリケーションへのアクセスをデバイスに制限するステップとをさらに備える。
【００１９】
いくつかの実施形態では、本方法は、デバイスからルータアプリケーション用の構成データを受信するステップをさらに備える。
【００２０】
いくつかの実施形態では、アプリケーションをルータに提供するための方法は、アプリケーションストアによって、デバイスにアプリケーションパッケージを求める要求を受信するステップであって、アプリケーションパッケージが、デバイス上で実行するための第1のアプリケーションを含むステップと、アプリケーションパッケージをデバイスに送信するステップとを備え、第1のアプリケーションは、ルータアプリケーションをルータへダウンロードさせるように構成されている。
【００２１】
いくつかの実施形態では、アプリケーションパッケージはルータアプリケーションを含み、第1のアプリケーションはルータアプリケーションをルータにダウンロードするように構成されている。
【００２２】
いくつかの実施形態では、アプリケーションパッケージは、ルータ上で実行するための第2のアプリケーションを含み、第1のアプリケーションは第2のアプリケーションをルータにダウンロードするように構成され、第2のアプリケーションはルータアプリケーションをルータにダウンロードする。
【００２３】
いくつかの実施形態では、第1のアプリケーションは、ルータアプリケーション用のソースを指定するロケーションデータをルータに通信するように構成されている。
【００２４】
いくつかの実施形態では、第1のアプリケーションは、ルータアプリケーション用の構成データを提供するためのユーザインターフェースを提示するように動作可能である。
【００２５】
いくつかの実施形態では、装置は、プロセッサと、機械使用可能プログラムコードを組み入れた機械可読記憶媒体とを備え、機械使用可能プログラムコードは、プロセッサによって、装置に、第1のアプリケーションソースからアプリケーションパッケージを受信させて、アプリケーションパッケージは、装置上で実行するための第1のアプリケーションを含み、第1のアプリケーションを実行させるように実行可能であり、第1のアプリケーションはルータアプリケーションをルータへダウンロードさせる。
【００２６】
いくつかの実施形態では、第1のアプリケーションは、プロセッサによって実行される第1のオペレーティングシステム上で実行可能であり、ルータアプリケーションは、第1のオペレーティングシステムとは異なる第2のオペレーティングシステム上で実行可能である。
【００２７】
いくつかの実施形態では、アプリケーションパッケージはルータアプリケーションを含み、第1のアプリケーションはルータアプリケーションをルータにダウンロードする。
【００２８】
いくつかの実施形態では、アプリケーションパッケージはルータ上で実行するための第2のアプリケーションを含み、第1のアプリケーションは第2のアプリケーションをルータにダウンロードして、第2のアプリケーションは、ルータ上で実行されると、ルータアプリケーションをルータにダウンロードする。
【００２９】
いくつかの実施形態では、第1のアプリケーションは、ルータアプリケーション用のソースを指定するロケーションデータをルータに通信して、ルータはソースからルータアプリケーションをダウンロードする。
【００３０】
いくつかの実施形態では、機械使用可能プログラムコードは、装置にルータ用のルータタイプを決定させて、ルータタイプに少なくとも部分的に基づいてルータアプリケーションを決定させるための機械使用可能プログラムコードをさらに含む。
【００３１】
いくつかの実施形態では、第1のアプリケーションは、ルータアプリケーションを構成するためのユーザインターフェースを含む。
【００３２】
いくつかの実施形態では、ルータは、プロセッサと、機械使用可能プログラムコードを組み入れた機械可読記憶媒体とを備え、機械使用可能プログラムコードは、プロセッサによって、ルータに、ルータアプリケーションソースからルータアプリケーションを受信させて、ルータアプリケーションの受信は、アプリケーションソースから第1のアプリケーションを受信するルータに通信可能に結合されたデバイスに応答し、デバイスによる第1のアプリケーションの実行にさらに応答し、第1のアプリケーションから、ルータアプリケーション用の構成データを受信させるように実行可能である。
【００３３】
いくつかの実施形態では、ルータアプリケーションはアプリケーションパッケージに含まれ、機械使用可能プログラムコードは、ルータに、デバイスからルータアプリケーションを受信させるための機械使用可能プログラムコードをさらに含む。
【００３４】
いくつかの実施形態では、機械使用可能プログラムコードは、ルータに第2のアプリケーションを受信させるための機械使用可能プログラムコードをさらに含み、第2のアプリケーションは、ルータアプリケーションをルータにダウンロードする。
【００３５】
いくつかの実施形態では、機械使用可能プログラムコードは、ルータに、ルータアプリケーション用のソースを指定するロケーションデータをデバイスから受信させて、ソースからルータアプリケーションをダウンロードさせるための機械使用可能プログラムコードをさらに含む。
【００３６】
いくつかの実施形態では、機械使用可能プログラムコードは、ルータに、デバイスをルータアプリケーションに関連付けさせて、ルータアプリケーションへのアクセスをデバイスに制限させるための機械使用可能プログラムコードをさらに含む。
【００３７】
いくつかの実施形態では、機械可読記憶媒体はアプリケーションパッケージを記憶し、アプリケーションパッケージは、デバイスアプリケーションとルータアプリケーションとを含む。デバイスアプリケーションは、第1のプロセッサによって実行されると、第1のプロセッサに、ルータアプリケーションをルータへダウンロードさせる第1のプログラム製品を備える。
【００３８】
いくつかの実施形態では、デバイスアプリケーションは第1のオペレーティングシステム上で実行可能であり、ルータアプリケーションは第1のオペレーティングシステムとは異なる第2のオペレーティングシステム上で実行可能である。
【００３９】
いくつかの実施形態では、ルータアプリケーションは、第2のプロセッサによって実行されると、第2のプロセッサに、デバイスアプリケーションを実行しているデバイスをルータアプリケーションに関連付けるステップと、ルータアプリケーションへのアクセスをデバイスに制限するステップとを備える動作を実行させる第2のプログラム製品を含む。
【００４０】
いくつかの実施形態では、1つまたは複数の機械可読媒体は、プロセッサによって実行されると、プロセッサに、ルータ上で実行するためのルータアプリケーションをルータアプリケーションソースから受信するステップであって、ルータアプリケーションの受信が、アプリケーションソースから第1のアプリケーションをデバイスが受信することに応答するとともに、デバイスによる第1のアプリケーションの実行にさらに応答するステップと、第1のアプリケーションから、ルータアプリケーション用の構成データを受信するステップとを備える動作を実行させるプログラム製品を記憶している。
【００４１】
いくつかの実施形態では、ルータアプリケーションはアプリケーションパッケージに含まれ、動作は、デバイスからルータアプリケーションを受信するステップをさらに備える。
【００４２】
いくつかの実施形態では、動作は、デバイスから、ルータアプリケーション用のソースを指定するロケーションデータを受信するステップと、ルータによって、ソースからルータアプリケーションをダウンロードするステップとをさらに備える。
【００４３】
いくつかの実施形態では、動作は、デバイスをルータアプリケーションに関連付けるステップと、デバイスにルータアプリケーションへのアクセスを制限するステップとをさらに備える。
【００４４】
いくつかの実施形態では、動作は、デバイスからルータアプリケーション用の構成データを受信するステップをさらに備える。
【００４５】
添付の図面を参照することによって、本実施形態はより良く理解され、多くの目的、特徴、および利点が当業者に明らかにされよう。
【図面の簡単な説明】
【００４６】
【図１】いくつかの実施形態による、アプリケーションをルータに提供するためのシステムを示すブロック図である。
【図２Ａ】いくつかの実施形態による、アプリケーションパッケージを示すブロック図である。
【図２Ｂ】いくつかの実施形態による、アプリケーションパッケージを示すブロック図である。
【図２Ｃ】いくつかの実施形態による、アプリケーションパッケージを示すブロック図である。
【図３】いくつかの実施形態による、アプリケーションをルータに提供するための方法を示す流れ図である。
【図４】いくつかの実施形態による、アプリケーションをルータに提供するための動作のシーケンスを示すシーケンス図である。
【図５】いくつかの実施形態による、アプリケーションをルータに提供するための動作のシーケンスを示すシーケンス図である。
【図６】いくつかの実施形態による、アプリケーションをルータに提供するための動作のシーケンスを示すシーケンス図である。
【図７】ルータアプリケーション分散機構を実装するための電子デバイスの一実施形態の例示的なブロック図である。
【発明を実施するための形態】
【００４７】
以下の記述は、例示的なシステム、方法、技法、命令シーケンス、および本発明の主題の技法を具体化するコンピュータプログラム製品を含む。しかしながら、記載される実施形態は、これらの特定の詳細なしに実施され得ることを理解される。たとえば、実施例はアプリケーションストアからアプリケーションパッケージを受信しているモバイルデバイスを参照するが、デスクトップまたはサーバコンピュータなどの他のタイプのデバイスもまた、アプリケーションストアからアプリケーションパッケージを受信することができる。他の例では、説明を不明瞭にしないために、よく知られている命令インスタンス、プロトコル、構造、および技法は、詳細に示されていない。
【００４８】
実施形態は、ルータアプリケーション用の分散機構を含む。アプリケーションパッケージは、従来のアプリケーションストアからモバイルデバイスにダウンロードされ得る。アプリケーションパッケージは2つのアプリケーションを含み得る。第1のアプリケーションは、モバイルデバイス(たとえば、Android(商標)またはiOSオペレーティングシステムを実行しているタブレットコンピュータ、スマートフォン等)上で実行され得、第2のアプリケーションは、ルータ上で実行するためのルータアプリケーションであり得、ルータは、モバイルデバイスとは異なるオペレーティングシステムを実行し得る。ユーザが第1のアプリケーションをダウンロードしてモバイルデバイス上で実行すると、第1のアプリケーションは、ルータが存在するかどうかを決定(たとえば、モバイルデバイスがルータに接続されているかどうかを決定)して、存在する場合は、第2のアプリケーションをルータにダウンロードする。第2のアプリケーションは、ルータアプリケーション自体でもよく、ルータ上で実行されるとルータアプリケーションをルータにダウンロードする小さいアプリケーションでもよい。あるいは、第1のアプリケーションは、ルータへルータアプリケーションをダウンロードさせるコマンドを発行することができる。
【００４９】
図1は、いくつかの実施形態による、アプリケーションをルータに提供するためのシステム100を示すブロック図である。システム100は、アプリケーションストア102、ルータ112を含み、またモバイルデバイス110、リモートデバイス118、またはルータアプリケーションソース116のうちの1つまたは複数を含み得る。システム100の構成要素を通信可能に結合するために、様々なネットワーク技術が使用され得る。たとえば、ルータ112は、ネットワーク106を介してデバイス110と通信するために、ワイヤードネットワーキング機能とワイヤレスネットワーキング機能のいずれかまたは両方を含み得る。ワイヤレスネットワークの例には、ワイヤレスローカルエリアネットワーク(WLAN)、BLUETOOTH(登録商標)(以下では「Bluetooth(登録商標)」)、ワールドワイドインターオペラビリティーフォーマイクロウェーブアクセス(WiMAX)、ZigBee(登録商標)等がある。ワイヤードネットワークの例には、Ethernetおよび電力線通信ネットワークが含まれる。本明細書に記載の実施形態は、任意の特定のワイヤードまたはワイヤレスネットワーク技術に限定されない。
【００５０】
モバイルデバイス110は、任意のタイプのモバイルコンピューティングデバイスであり得る。いくつかの実施形態では、デバイス110はスマートフォンなどのモバイル電話であり得る。代替実施形態では、モバイルデバイス110は、タブレットコンピュータでもよく、ラップトップコンピュータでもよい。本実施形態は、任意の特定のタイプのモバイルデバイスに限定されない。
【００５１】
モバイルデバイス110は、アプリケーションストア102と通信するように構成され得る。アプリケーションストア102はアプリケーションをモバイルデバイスに提供する。いくつかの実施形態では、アプリケーションストア102は、ルータ112上で実行しているオペレーティングシステムとは異なり得る特定のタイプのデバイスまたは特定のオペレーティングシステムに特有のアプリケーションを提供するように構成されたコンピュータシステムであり得る。たとえば、Google(登録商標) Play Storeは、Androidオペレーティングシステムを実行しているデバイス(スマートフォン、タブレットコンピュータ等)に特有のアプリケーションを提供する。同様にApple Computer, Inc.のApp Store(登録商標)は、iOSオペレーティングシステムを実行するスマートフォンのApple(登録商標)iPhone(登録商標)シリーズ、およびタブレットコンピュータのiPad(登録商標)シリーズに特有のアプリケーションを提供する。
【００５２】
モバイルデバイス110は、モバイルデバイス110にとって利用可能なネットワーキング技術のいずれかを使用して、アプリケーションストア102と通信することができる。たとえば、モバイルデバイス110は、ルータ112と確立されたワイヤレス接続120(たとえば、IEEE 802.11ワイヤレス接続)を介してアプリケーションストアと通信することができる。あるいは、モバイルデバイス110は、セルラー通信サービスプロバイダによって提供される3G(第3世代)または4G LTE(第4世代ロングタームエボリューション)接続122を介して、アプリケーションストア102と通信することができる。
【００５３】
いくつかの実施形態では、モバイルデバイス110は、アプリケーションストア102と対話するためのユーザインターフェースを提供することができる。ユーザインターフェースは、ユーザが、アプリケーションストア102からアプリケーションパッケージ104を選択してダウンロードするための機能を提供することができる。アプリケーションパッケージは、モバイルデバイス110上で実行するためのデバイスアプリケーション124を含み得る。デバイスアプリケーション124は、実行されると、ルータアプリケーションをルータ112へダウンロードさせる。ルータアプリケーションは、ファイアウォールアプリケーション、ペアレンタルコントロールアプリケーション、またはルータ112上で実行可能な他の任意のアプリケーションであり得る。ルータアプリケーションは、アプリケーションパッケージ104の一部として含まれ得る。あるいは、ルータアプリケーションは、モバイルデバイス110へのアプリケーションパッケージ104のダウンロードとは別に、アプリケーションストア102からダウンロードされ得る。たとえば、デバイスアプリケーション124は、アプリケーションストア102からルータアプリケーションを取得するようにルータ112に指示するコマンドをルータ112に発行することができる。さらに、ルータアプリケーションは、ルータアプリケーションソース116からルータ112にダウンロードされ得る。たとえば、ルータアプリケーションソース116は、ルータ112の製造者によって維持される、インターネットを通じて利用可能なダウンロードサイトであり得る。
【００５４】
いくつかの実施形態では、インストーラ114は、ダウンロードされたルータアプリケーションを受信して、それをルータ112上にインストールすることができる。代替実施形態では、インストーラ114は、ルータアプリケーションを指定して、ルータアプリケーションをダウンロードしてインストールするようインストーラ114に命令するコマンドを、モバイルデバイス110から受信することができる。
【００５５】
ルータ112は、ルータアプリケーションを構成するためのユーザインターフェースを有しない場合がある。デバイスアプリケーション124は、構成インターフェース126を含み得る。構成インターフェース126は、ルータアプリケーションに構成パラメータを提供することができるユーザインターフェースを提供する。たとえば、ファイアウォールルータアプリケーションの場合、構成インターフェース126は、ファイアウォールルータアプリケーションのルールおよび設定を提供するために使用され得る。同様に、ペアレンタルコントロールルータアプリケーションの場合、構成インターフェース126は、コンテンツをフィルタリングするか、ルータ112を通じてネットワークサイトにアクセスが提供されるかどうかを決定するために、ペアレンタルコントロールルータアプリケーションによって使用される構成パラメータを提供するために使用され得る。
【００５６】
モバイルデバイス110に関して上述したものと同様の方法でルータ112にアプリケーションを提供するために、モバイルデバイス110に加えて、リモートデバイス118が使用され得る。リモートデバイス118は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン等を含む、任意のタイプのコンピュータシステムであり得る。リモートデバイス118はまた、デバイスアプリケーション124を含むアプリケーションパッケージをダウンロードするために、アプリケーションストア102とインターフェースすることができる。デバイスアプリケーションは、ルータアプリケーションをルータ112へダウンロードさせるために、リモートデバイス118上で実行することができる。リモートデバイスは、遠隔に、すなわちインターネットなどのネットワークを介してルータ112にアクセスするために使用され得る。いくつかの実施形態では、リモートデバイス118は、ルータアプリケーションをルータ112にダウンロードする際、またはルータ112を構成する際に、ルータ112への安全なネットワークトンネルを作成することができる。
【００５７】
上述のシステムの動作に関するさらなる詳細は、以下で提供される。
【００５８】
図2A〜図2Cは、いくつかの実施形態による、アプリケーションパッケージを示すブロック図である。図2Aは、アプリケーションパッケージ104が、デバイスアプリケーション124とルータアプリケーション204との両方を含む実施形態を示している。そのような実施形態では、アプリケーションパッケージ104がモバイルデバイス110にダウンロードされ得る。モバイルデバイス110がデバイスアプリケーション124を実行すると、ルータアプリケーション204がアプリケーションパッケージ104から抽出されて、ルータ112にダウンロードされ得る。上述のように、デバイスアプリケーション124は、モバイルデバイス110のオペレーティングシステム上で実行するように設計され得、ルータアプリケーション204は、モバイルデバイス110上で実行しているオペレーティングシステムとは異なり得るルータ112のオペレーティングシステム上で実行するように設計され得る。
【００５９】
図2Bは、アプリケーションパッケージ104が、デバイスアプリケーション124とルータアプリケーションダウンローダ206とを含む実施形態を示している。そのような実施形態では、アプリケーションパッケージ104は、モバイルデバイス110にダウンロードされ得る。モバイルデバイス110がデバイスアプリケーション124を実行すると、ルータアプリケーションダウンローダ206がアプリケーションパッケージ104から抽出されて、ルータ112にダウンロードされ得る。ルータアプリケーションダウンローダ206は、様々なルータ特性を決定するためにルータ112上で実行して、ルータにとって適切なルータアプリケーションを選択してダウンロードするためにルータ特性を使用するアプリケーションであり得る。たとえば、ルータアプリケーションダウンローダ206は、ルータ112の製造者、タイプ、およびバージョンにとって適切なルータアプリケーションがダウンロードされ得るように、ルータ112の製造者、タイプ、およびバージョン情報のうちの1つまたは複数の組合せを決定することができる。ルータ112からの他の情報は、適切なルータアプリケーションを決定するために使用され得る。たとえば、プロセッサタイプなどのルータ112のオペレーティングシステムまたはハードウェア情報は、ルータ112の適切なルータアプリケーションを決定するために使用され得る。
【００６０】
図2Cは、アプリケーションパッケージ104がデバイスアプリケーション124を含む実施形態を示している。デバイスアプリケーション124は、ルータアプリケーション用のソースを識別するルータアプリケーションロケーションデータ208を含む。たとえば、ルータアプリケーションロケーションデータ208は、ウェブサイト、サーバサイト、またはルータアプリケーションが利用可能な他のロケーションを識別する統一資源ロケータ(URL)を含み得る。モバイルデバイス110がデバイスアプリケーション124を実行すると、ルータアプリケーションロケーションデータ208は、デバイスアプリケーション124からルータ112に通信されて、ルータ112に、ルータアプリケーションロケーションデータ208に示されるソースからルータアプリケーションを取得するよう通知する。たとえば、デバイスアプリケーション124は、ルータアプリケーションロケーションデータ208をインストーラ114に通信することができ、インストーラ114は、ルータアプリケーションをダウンロードしてインストールするためにロケーション情報を使用する。
【００６１】
図3は、いくつかの実施形態による、アプリケーションをルータに提供するための方法300を示す流れ図である。方法300は、ブロック302で、アプリケーションストアからアプリケーションパッケージを受信するステップから開始する。上述のように、アプリケーションパッケージは、モバイルデバイス110などのデバイス上で実行するためのデバイスアプリケーションを含む。いくつかの実施形態では、アプリケーションパッケージは、所望のルータアプリケーションおよびルータタイプに基づいてユーザによって選択され得る。選択に応答して、アプリケーションパッケージがユーザのデバイスにダウンロードされる。
【００６２】
ブロック304で、デバイス上でデバイスアプリケーションが実行される。
【００６３】
ブロック306で、いくつかの実施形態では、デバイスアプリケーションが、所望のルータアプリケーションがルータ上にすでに存在するかどうかを決定する。決定は、ルータアプリケーションがルータ上にまったく存在しないと決定するステップを含み得る。あるいは、決定は、ルータアプリケーションがルータ上にインストールされているが、現在インストールされているルータアプリケーションのバージョンは、所望のルータアプリケーションのバージョンと同じではないと決定するステップを含み得る。たとえば、ルータ上で実行するために現在利用可能なルータアプリケーションのバージョンは古いバージョンであり得、所望のバージョンはルータアプリケーションの最新リリースであり得る。
【００６４】
ブロック308で、所望のルータアプリケーションがルータ上に存在しない(または、ルータアプリケーションの所望のバージョンが存在しない)場合、デバイスアプリケーションは、ルータアプリケーションをルータへダウンロードさせる。いくつかの実施形態では、ルータアプリケーションは、アプリケーションストアからダウンロードされたデバイスアプリケーションと同じアプリケーションパッケージに含まれ得る。そのような実施形態では、デバイスアプリケーションは、ルータアプリケーションをアプリケーションパッケージから抽出させて、ルータへダウンロードさせ得る。代替実施形態では、デバイスアプリケーションは、ルータアプリケーションをダウンロードするようにルータに指示するコマンドをルータに発行することができる。デバイスアプリケーションは、ルータアプリケーションを取得するためにルータが使用するためのソースを供給することができる。
【００６５】
いくつかの実施形態では、ルータアプリケーションがダウンロードまたはインストールされる前に、デバイスアプリケーションがルータアプリケーションをルータへダウンロードおよびインストールさせることを認可されているかどうかを決定するために、デバイスアプリケーションを実行しているデバイスの真正性と認可がチェックされ得る。認証と認可は、ワイヤレスネットワークセキュリティパラメータを使用して決定され得る。そのような実施形態では、デバイスが安全なワイヤレスネットワークに成功裏に接続されるという事実は、デバイスがルータアプリケーションをルータへダウンロードさせるための真正性および認可を決定するために十分であると考えられる。代替実施形態では、ルータアプリケーションをルータへダウンロードさせるためにデバイスアプリケーションは真正であり認可されていると決定するために、ユーザ名とパスワードの組合せ、またはセキュリティ証明書などの他の機構が使用され得る。
【００６６】
ブロック310で、いくつかの実施形態では、デバイスアプリケーションは、新たにインストールされたルータアプリケーションの構成パラメータを供給するために使用され得る構成インターフェースを提示する。たとえば、ウイルススキャニングルータアプリケーションは、実行されるべきスキャニングのレベルを指定する構成パラメータ、または、スキャンされるべきファイルタイプ、パケットタイプ等を指定する構成パラメータを利用することができる。デバイスアプリケーションによって提示される構成インターフェースは、ルータアプリケーションのそのような構成パラメータを提供するために使用され得る。
【００６７】
デバイスアプリケーションがリモートデバイス上で実行され、インターネットなどのパブリックネットワークを介してルータと通信することができる実施形態では、リモートデバイスとルータとの間に安全なネットワークトンネルが確立され得る。安全なネットワークトンネルは、ルータアプリケーションをルータにダウンロードするための安全な機構を提供する。さらに、安全なネットワークトンネルは、悪意のあるユーザがそのような情報を傍受することを防止できるように、構成パラメータとパスワードとの安全な送信を提供する。安全なネットワークトンネリングプロトコルの例には、仮想プライベートネットワーク(VPN)とセキュアシェル(SSH)トンネリングプロトコルがある。
【００６８】
デバイスアプリケーションがルータアプリケーションをルータにダウンロードすることを認可されるかどうかを決定するために使用され得るセキュリティパラメータに加えて、ルータアプリケーション自体が、ルータアプリケーションへのアクセスを制限するためにセキュリティ機構を含み得る。いくつかの実施形態では、ルータアプリケーションは、有効なユーザ名およびパスワードの入力を要求することによって、アプリケーションへのアクセスを制限することができる。代替実施形態では、ルータアプリケーションは、ルータアプリケーションをルータへダウンロードさせたモバイルデバイスにルータアプリケーションへのアクセスを制限することができる。たとえば、ルータアプリケーションは、ルータアプリケーションをルータへダウンロードさせたデバイスの識別情報を記憶することができる。いくつかの実施形態では、識別情報はモバイルデバイスの媒体アクセス制御(MAC)アドレスであり得る。ルータは、ルータアプリケーションへのアクセスをモバイルデバイスに制限するために、識別情報を使用することができる。たとえば、ルータは、ルータアプリケーションへのアクセスを求めるデバイスのMACアドレスが、元々ルータアプリケーションをルータへダウンロードさせたモバイルデバイスのアドレスと一致しない場合、デバイスへのアクセスを拒否することができる。
【００６９】
図4〜図6は、実施形態による、アプリケーションをルータに提供するための動作の例示的なシーケンスを示すシーケンス図である。本開示の利益を有する当業者によって理解されるように、以下の例は動作の可能なシーケンスにすぎず、その変形および他のシーケンスが可能であり、本開示の範囲内である。
【００７０】
図4は、アプリケーションストア102からモバイルデバイス110によって受信されるアプリケーションパッケージ104がデバイスアプリケーション124とルータアプリケーション204とを含む、動作400のシーケンスを示している。動作の例示的なシーケンスは動作402から開始し、モバイルデバイス110はルータアプリケーションのアプリケーションストア102にクエリを発行する。いくつかの実施形態では、クエリは、ユーザが所望するルータアプリケーションのタイプを説明するパラメータなどのユーザが提供したパラメータを含み得る。いくつかの実施形態では、ルータタイプはまた、クエリ結果をルータタイプと互換性があるルータアプリケーションに制限するために、クエリに含まれ得る。いくつかの実施形態では、ルータタイプパラメータはユーザによって提供され得る。代替実施形態では、モバイルデバイス110は、ルータ112にそのルータタイプを問い合わせることもでき、モバイルデバイス110にとって利用可能な接続情報からルータタイプを決定することもできる。
【００７１】
動作404で、アプリケーションストア102は、動作402からのクエリの結果を返す。クエリ結果は、クエリの一部として受信されたクエリパラメータを満たすアプリケーションのリストを備え得る。
【００７２】
動作406で、モバイルデバイス110は、アプリケーションから、動作404で提供されたクエリ結果におけるルータアプリケーションの選択を受信する。たとえば、ユーザは、クエリ結果を表示して、クエリ結果のうちの1つまたは複数の選択するための選択機構を提供するモバイルデバイス110上で提供されたユーザインターフェースを介してアプリケーションの選択を提供することができる。
【００７３】
動作408で、選択を受信するステップに応答して、アプリケーションストア102は、選択されたルータアプリケーションに対応するアプリケーションパッケージをモバイルデバイス110にダウンロードする。図4に示される例では、アプリケーションパッケージは、デバイスアプリケーション124と選択されたルータアプリケーション204との両方を含む、図2Aを参照して説明されたようなアプリケーションパッケージであり得る。
【００７４】
ダウンロードの完了後、ユーザは、モバイルデバイス110上で実行するためのデバイスアプリケーション124を選択することができる。ユーザの選択に応答して、モバイルデバイス110は、デバイスアプリケーションの実行を開始することができる。デバイスアプリケーション124は、ルータ112に通信可能に結合されている(たとえば、それはルータ112の範囲内であり、ルータ112とのネットワーク接続を確立している)ことを検出することができる。動作410で、デバイスアプリケーション124は、ルータ112にルータアプリケーション204をダウンロードすることができる。ルータアプリケーション204がルータ112にダウンロードされた後、ルータアプリケーション204がルータ112にインストールされて、実行を開始することができる。
【００７５】
いくつかの実施形態では、動作412で、デバイスアプリケーション124は、ユーザがルータアプリケーション204の構成パラメータを提供することを可能にするユーザインターフェースを提示することができる。代替実施形態では、構成パラメータが取り出されて、ユーザの介入なしにルータアプリケーション204に提供され得る。たとえば、デバイスアプリケーション124は、アプリケーションパッケージ104の一部として含まれる構成ファイルから構成パラメータを受信することができる。あるいは、構成ファイルは、モバイルデバイス110から、またはルータ112から読み出され得る。
【００７６】
図5は、アプリケーションストア102からモバイルデバイス110によって受信されたアプリケーションパッケージ104がデバイスアプリケーション124を含むが、ルータアプリケーションを含まない、動作500のシーケンスを示している。動作502、504、506、および508は、図4を参照して上述した動作402、404、406、および408と同じである。
【００７７】
動作510で、デバイスアプリケーション124は、ルータアプリケーション204を取り出すようにルータ112に指示するコマンドをルータ112に発行する。コマンドは、取り出されるべきルータアプリケーションを識別するパラメータを含み得る。
【００７８】
動作512で、ルータ112は、アプリケーションストア102にルータアプリケーション204を要求する。
【００７９】
動作514で、要求されたルータアプリケーション204が、アプリケーションストア102からルータ112にダウンロードされる。ルータアプリケーション204がルータ112にダウンロードされた後、ルータアプリケーションがルータ112にインストールされて、実行を開始することができる。
【００８０】
いくつかの実施形態では、動作516で、デバイスアプリケーション124は、ユーザがルータアプリケーション204の構成パラメータを提供することを可能にするユーザインターフェースを提示することができる。代替実施形態では、構成パラメータが取り出されて、ユーザの介入なしにルータアプリケーションに提供され得る。たとえば、デバイスアプリケーション124は、アプリケーションパッケージ104の一部として含まれる構成ファイルから構成パラメータを受信することができる。あるいは、構成ファイルは、モバイルデバイス110から、またはルータ112から読み出され得る。
【００８１】
図6は、アプリケーションストア102からモバイルデバイス110によって受信されたアプリケーションパッケージ104がデバイスアプリケーション124を含み、デバイスアプリケーション124が、ルータアプリケーション204用のソースを識別するデータを含む、またはそれへのアクセスを有する、動作600のシーケンスを示している。図6に示される例の目的で、アプリケーションパッケージは、図2Cを参照して説明されたようなアプリケーションパッケージであり得る。動作602、604、606、および608は、図4を参照して上述した動作402、404、406、および408と同じである。
【００８２】
動作610で、デバイスアプリケーションは、ルータアプリケーション204用のソースを識別する情報をルータ112に送信する。上述のように、ソースロケーションは、ルータアプリケーション204をルータ112に提供することができるウェブサイトまたはサーバを識別するURLであり得る。
【００８３】
動作612で、ルータ112は、ルータアプリケーションソース116を識別するためにソースロケーション情報を使用して、ルータアプリケーション204を求める要求をルータアプリケーションソース116に発行する。
【００８４】
動作614で、ルータアプリケーションソース116は、ルータアプリケーション204をルータ112にダウンロードする。次いで、ルータ112は、ルータアプリケーション204をインストールして、その実行を開始することができる。
【００８５】
いくつかの実施形態では、動作616で、デバイスアプリケーション124は、ユーザがルータアプリケーション204の構成パラメータを提供することを可能にするユーザインターフェースを提示することができる。代替実施形態では、構成パラメータが取り出されて、ユーザの介入なしにルータアプリケーションに提供され得る。たとえば、デバイスアプリケーション124は、アプリケーションパッケージ104の一部として含まれる構成ファイルから構成パラメータを受信することができる。あるいは、構成ファイルは、モバイルデバイス110から、またはルータ112から読み出され得る。
【００８６】
実施形態は、完全なハードウェア実施形態、完全なソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、または、本明細書ではすべて一般的に「回路」、「モジュール」、または「システム」と呼ばれ得るソフトウェアとハードウェアの態様を組み合わせた実施形態の形をとることができる。さらに、本発明の主題の実施形態は、コンピュータ使用可能プログラムコードを媒体に具体化した、いかなる有形の表現媒体においても具体化されるコンピュータプログラム製品の形をとることができる。説明される実施形態は、考えられるすべての変形が本明細書に列挙されているとは限らないので、現在説明されているか否かに関わらず、実施形態による処理を実行するために、コンピュータシステム(または他の電子デバイス)をプログラムするために使用され得る命令を記憶した機械可読媒体を含み得るコンピュータプログラム製品またはソフトウェアとして提供され得る。機械可読媒体は、機械(たとえば、コンピュータ)によって可読の形(たとえば、ソフトウェア、処理アプリケーション)で情報を記憶または送信するための任意の機構を含む。機械可読媒体とは、これらに限定されないが、磁気記憶媒体(たとえば、フロッピーディスケット)、光記憶媒体(たとえば、CD-ROM)、光磁気記憶媒体、読出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラマブルメモリ(たとえば、EPROMおよびEEPROM)、フラッシュメモリ、または電子命令を記憶するために適した他のタイプの媒体を含み得る。さらに、実施形態は、電気的、光学的、音響的、または他の形態の伝播信号(たとえば、搬送波、赤外線信号、デジタル信号等)、あるいはワイヤライン、ワイヤレス、または他の通信媒体に具体化され得る。
【００８７】
本実施形態の動作を実行するためのコンピュータプログラムコードは、Java(登録商標)、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語、または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれ得る。プログラムコードは、完全にユーザのコンピュータで、一部をユーザのコンピュータで、スタンドアロンソフトウェアパッケージとして、一部をユーザのコンピュータで、および一部をリモートコンピュータで、または完全にリモートコンピュータもしくはサーバで、実行することができる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、またはワイドエリアネットワーク(WAN)など、任意のタイプのネットワークを介して、ユーザのコンピュータに接続されることが可能である、または(たとえば、インターネットサービスプロバイダを使用してインターネットを介して)外部コンピュータに接続されることが可能である。
【００８８】
図7は、本開示の様々な実施形態によるルータ分散機構を含む、電子デバイス700の一実施形態の例示的なブロック図である。いくつかの実装形態では、電子デバイス700は、ラップトップコンピュータ、ネットブック、モバイルフォン、電力線通信デバイス、携帯情報端末(PDA)、または他の電子システムの1つであり得る。電子デバイス700は、(場合により、複数のプロセッサ、複数のコア、複数のノードを含む、および/またはマルチスレッド等を実装する)プロセッサユニット702を含む。電子デバイス700はメモリユニット706を含む。メモリユニット706は、システムメモリ(たとえば、キャッシュ、SRAM、DRAM、ゼロキャパシタRAM、ツイントランジスタRAM、eDRAM、EDO RAM、DDR RAM、EEPROM、NRAM、RRAM(登録商標)、SONOS、PRAM等の1つもしくは複数)でもよく、すでに上述した考えられる機械可読媒体の実現のうちのいずれか1つもしくは複数でもよい。電子デバイス700はまた、バス710(たとえば、PCI、ISA、PCI-Express、HyperTransport(登録商標)、InfiniBand(登録商標)、NuBus、AHB、AXI等)と、ワイヤレスネットワークインターフェース(たとえば、WLANインターフェース、Bluetooth(登録商標)インターフェース、WiMAXインターフェース、ZigBee(登録商標)インターフェース、ワイヤレスUSBインターフェース等)またはワイヤードネットワークインターフェースの少なくとも1つであり得るネットワークインターフェース704とを含む。例示的な一実施形態では、第1のネットワークインターフェース704は、IEEE 802.11a、802.11b、802.11g、802.11n、または802.11acプロトコルを使用することが可能な2.4GHzまたは5GHzワイヤレスインターフェースを備え得る。電子デバイス700はまた、アプリケーション712を含む。アプリケーション712は、ネットワークインターフェース704を介してデバイス700にダウンロードされ得る。
【００８９】
デバイス700がモバイルデバイスまたは他のコンピューティングデバイスである実装形態では、アプリケーション712は、ネットワークインターフェース704を介してダウンロードされ得る、およびプロセッサユニット702によって実行され得るデバイスアプリケーション124であり得る。図1〜図6において上述されたように、デバイスアプリケーションは、ルータアプリケーションをルータデバイスにダウンロードするために上述の機能を含み得る。さらに、電子デバイス700はディスプレイユニット(図示せず)を含み得る。ディスプレイユニットは、アプリケーションパッケージを選択するための、およびデバイスアプリケーション124を通じてルータアプリケーション204を構成するためのユーザインターフェースを提供するために使用され得る。
【００９０】
デバイス700がルータ112である実装形態では、アプリケーション712は、プロセッサユニット702によって実行するためにネットワークインターフェース704を介してダウンロードされ得るルータアプリケーション204であり得る。さらに、デバイス700は、プロセッサユニット702によって実行され得るインストーラ114を含み得る。
【００９１】
さらに、実現は、図7には示されていない、より少数の、または追加の構成要素(たとえば、ビデオカード、オーディオカード、追加のネットワークインターフェース、周辺デバイス等)を含み得る。プロセッサユニット702、メモリユニット706、およびネットワークインターフェース704は、バス710に結合される。バス710に結合されて示されているが、メモリユニット706は、プロセッサユニット702に結合され得る。
【００９２】
実施形態は、様々な実装形態および活用を参照して説明されているが、これらの実施形態は例示であり、本発明の主題の範囲はそれらに限定されるものではないことが理解される。一般に、本明細書に記載されるようなルータアプリケーションをルータに提供するための技法は、任意のハードウェアシステムと一致する施設を用いて実装され得る。多くの変形、修正、追加、および改良が可能である。
【００９３】
単一の例として本明細書に記載する構成要素、動作、または構造には、複数の例が提供され得る。結局、様々な構成要素、動作、およびデータストア間の境界はいささか任意であり、特定の動作は、特定の例示的構成の文脈で示される。機能の他の割当てが想定され、本発明の主題の範囲内に含まれ得る。一般に、例示的な構成において別個の構成要素として提示される構造および機能は、結合された構造または構成要素として実装され得る。同様に、単一の構成要素として提示される構造および機能は、別個の構成要素として実装され得る。これらのおよび他の変形、変更、追加、および改善は、本発明の主題の範囲内に含まれ得る。
【符号の説明】
【００９４】
100  システム
102  アプリケーションストア
104  アプリケーションパッケージ
106  ネットワーク
110  モバイルデバイス
112  ルータ
114  インストーラ
116  ルータアプリケーションソース
118  リモートデバイス
120  ワイヤレス接続
122  3Gまたは4G接続
124  デバイスアプリケーション
126  構成インターフェース
204  ルータアプリケーション
206  ルータアプリケーションダウンローダ
208  ルータアプリケーションロケーションデータ
402  APPクエリ
404  結果
406  選択
408  選択されたAPPをダウンロードする
410  ダウンロードルータAPP
412  構成ルータAPP
702  プロセッサユニット
704  ネットワークインターフェース
706  メモリユニット
710  バス
712  アプリケーション
【図１】
2017507396.tif 000003
【図２Ａ】
2017507396.tif 000004
【図２Ｂ】
2017507396.tif 000005
【図２Ｃ】
2017507396.tif 000006
【図３】
2017507396.tif 000007
【図４】
2017507396.tif 000008
【図５】
2017507396.tif 000009
【図６】
2017507396.tif 000010
【図７】
2017507396.tif 000011
【手続補正書】
【提出日】平成28年7月12日(2016.7.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アプリケーションをルータに提供するための方法であって、
デバイスによって第1のアプリケーションソースからアプリケーションパッケージを受信するステップであって、前記アプリケーションパッケージが、前記デバイス上で実行するための第1のアプリケーションを含むステップと、
前記デバイスによって前記第1のアプリケーションを実行するステップとを備え、
前記第1のアプリケーションが、
ルータアプリケーションが前記ルータ上に存在するかどうかを決定し、
前記ルータアプリケーションが前記ルータ上に存在することに応答して、構成データを前記ルータアプリケーションに提供するためのユーザインターフェースを提示し、
前記ルータアプリケーションが前記ルータ上に存在していないことに応答して、前記ルータアプリケーションを前記ルータへダウンロードさせる
ように構成されている、方法。
【請求項２】
前記第1のアプリケーションが第1のオペレーティングシステム上で実行可能であり、前記ルータアプリケーションが前記第1のオペレーティングシステムとは異なる第2のオペレーティングシステム上で実行可能である、請求項1に記載の方法。
【請求項３】
前記アプリケーションパッケージが前記ルータアプリケーションを含み、前記ルータアプリケーションを前記デバイスから前記ルータにダウンロードするステップをさらに備える、請求項1に記載の方法。
【請求項４】
前記アプリケーションパッケージが前記ルータ上で実行するための第2のアプリケーションを含み、前記第2のアプリケーションを前記デバイスから前記ルータにダウンロードするステップをさらに備え、前記第2のアプリケーションが、前記ルータ上で実行されると、前記ルータアプリケーションを前記ルータにダウンロードする、請求項1に記載の方法。
【請求項５】
前記第1のアプリケーションが、前記ルータアプリケーション用のソースを指定するロケーションデータを前記ルータに通信して、前記ルータが前記ソースから前記ルータアプリケーションをダウンロードする、請求項1に記載の方法。
【請求項６】
前記ルータ用のルータタイプを決定するステップと、
前記ルータタイプに少なくとも部分的に基づいて前記ルータアプリケーションを決定するステップと
をさらに備える、請求項1に記載の方法。
【請求項７】
前記デバイスを前記ルータアプリケーションに関連付けるステップと、
前記ルータアプリケーションへのアクセスを前記デバイスに制限するステップと
をさらに備える、請求項1に記載の方法。
【請求項８】
アプリケーションをルータに提供するための方法であって、
前記ルータ上で実行するためのルータアプリケーションをルータアプリケーションソースから受信するステップであって、前記ルータアプリケーションの受信が、アプリケーションソースから第1のアプリケーションをデバイスが受信することに応答するとともに、前記デバイスによる前記第1のアプリケーションの実行にさらに応答するステップと、
前記第1のアプリケーションから、前記ルータアプリケーション用の構成データを受信するステップと、
前記デバイスを前記ルータアプリケーションに関連付けるステップと、
前記ルータアプリケーションへのアクセスを前記デバイスに制限するステップと
を備える、方法。
【請求項９】
前記ルータアプリケーションがアプリケーションパッケージに含まれ、前記デバイスから前記ルータアプリケーションを受信するステップをさらに備える、請求項8に記載の方法。
【請求項１０】
前記ルータ上で実行するための第2のアプリケーションを受信するステップをさらに備え、前記第2のアプリケーションが前記ルータアプリケーションを前記ルータにダウンロードする、請求項8に記載の方法。
【請求項１１】
前記デバイスから、前記ルータアプリケーション用のソースを指定するロケーションデータを受信するステップと、
前記ルータによって、前記ソースから前記ルータアプリケーションをダウンロードするステップと
をさらに備える、請求項8に記載の方法。
【請求項１２】
前記デバイスから前記ルータアプリケーション用の構成データを受信するステップをさらに備える、請求項8に記載の方法。
【請求項１３】
アプリケーションをルータに提供するための方法であって、
アプリケーションストアによって、デバイスにアプリケーションパッケージを求める要求を受信するステップであって、前記アプリケーションパッケージが、前記デバイス上で実行するための第1のアプリケーションを含むステップと、
前記アプリケーションパッケージを前記デバイスに送信するステップとを備え、
前記第1のアプリケーションが、
ルータアプリケーションが前記ルータ上に存在するかどうかを決定するステップと、
前記ルータアプリケーションが前記ルータ上に存在していると決定することに応答して、構成データを前記ルータアプリケーションに提供するためのユーザインターフェースを提示するステップと、
前記ルータアプリケーションが前記ルータ上に存在しないと決定することに応答して、前記ルータアプリケーションを前記ルータへダウンロードさせるステップと
を含む動作を実行するように構成されている、方法。
【請求項１４】
前記アプリケーションパッケージが前記ルータアプリケーションを含み、前記第1のアプリケーションが前記ルータアプリケーションを前記ルータにダウンロードするように構成されている、請求項13に記載の方法。
【請求項１５】
前記アプリケーションパッケージが、前記ルータ上で実行するための第2のアプリケーションを含み、前記第1のアプリケーションが前記第2のアプリケーションを前記ルータにダウンロードするように構成され、前記第2のアプリケーションが前記ルータアプリケーションを前記ルータにダウンロードする、請求項13に記載の方法。
【請求項１６】
前記第1のアプリケーションが、前記ルータアプリケーション用のソースを指定するロケーションデータを前記ルータに通信するように構成されている、請求項13に記載の方法。
【請求項１７】
装置であって、
プロセッサと、
機械使用可能プログラムコードを組み入れた機械可読記憶媒体とを備え、前記機械使用可能プログラムコードが、前記プロセッサによって、前記装置に、
第1のアプリケーションソースからアプリケーションパッケージを受信することであって、前記アプリケーションパッケージが、前記装置上で実行するための第1のアプリケーションを含む、ことと、
前記第1のアプリケーションを実行することであって、前記第1のアプリケーションが、
ルータアプリケーションがルータ上に存在するかどうかを決定し、
前記ルータアプリケーションが前記ルータ上に存在するという決定に応答して、構成データを前記ルータアプリケーションに提供するためのユーザインターフェースを提示し、
前記ルータアプリケーションが前記ルータ上に存在しないという決定に応答して、前記ルータアプリケーションを前記ルータへダウンロードさせる
ように構成されている、ことと
を行わせるように実行可能である、装置。
【請求項１８】
前記第1のアプリケーションが、前記プロセッサによって実行される第1のオペレーティングシステム上で実行可能であり、前記ルータアプリケーションが、前記第1のオペレーティングシステムとは異なる第2のオペレーティングシステム上で実行可能である、請求項17に記載の装置。
【請求項１９】
前記アプリケーションパッケージが前記ルータアプリケーションを含み、前記第1のアプリケーションが前記ルータアプリケーションを前記ルータにダウンロードする、請求項17に記載の装置。
【請求項２０】
前記アプリケーションパッケージが前記ルータ上で実行するための第2のアプリケーションを含み、前記第1のアプリケーションが前記第2のアプリケーションを前記ルータにダウンロードし、前記第2のアプリケーションが、前記ルータ上で実行されると、前記ルータアプリケーションを前記ルータにダウンロードする、請求項17に記載の装置。
【請求項２１】
前記第1のアプリケーションが、前記ルータアプリケーション用のソースを指定するロケーションデータを前記ルータに通信し、前記ルータが前記ソースから前記ルータアプリケーションをダウンロードする、請求項17に記載の装置。
【請求項２２】
前記機械使用可能プログラムコードが、前記装置に、
前記ルータ用のルータタイプを決定させ、
前記ルータタイプに少なくとも部分的に基づいて前記ルータアプリケーションを決定させる
ための機械使用可能プログラムコードをさらに含む、請求項17に記載の装置。
【請求項２３】
ルータであって、
プロセッサと、
機械使用可能プログラムコードを組み入れた機械可読記憶媒体とを備え、前記機械使用可能プログラムコードが、前記プロセッサによって、前記ルータに、
ルータアプリケーションソースからルータアプリケーションを受信することであって、前記ルータアプリケーションの受信が、前記ルータに通信可能に結合されたデバイスがアプリケーションソースから第1のアプリケーションを受信することに応答するとともに、前記デバイスによる前記第1のアプリケーションの実行にさらに応答する、ことと、
前記第1のアプリケーションから、前記ルータアプリケーション用の構成データを受信することと、
前記デバイスを前記ルータアプリケーションに関連付けることと、
前記ルータアプリケーションへのアクセスを前記デバイスに制限することと
を行わせるように実行可能である、ルータ。
【請求項２４】
前記ルータアプリケーションがアプリケーションパッケージに含まれ、前記機械使用可能プログラムコードが、前記ルータに、前記デバイスから前記ルータアプリケーションを受信させるための機械使用可能プログラムコードをさらに含む、請求項23に記載のルータ。
【請求項２５】
前記機械使用可能プログラムコードが、前記ルータに、第2のアプリケーションを受信させるための機械使用可能プログラムコードをさらに含み、前記第2のアプリケーションが前記ルータアプリケーションを前記ルータにダウンロードする、請求項23に記載のルータ。
【請求項２６】
前記機械使用可能プログラムコードが、前記ルータに、
前記ルータアプリケーション用のソースを指定するロケーションデータを前記デバイスから受信させ、
前記ソースから前記ルータアプリケーションをダウンロードさせる
ための機械使用可能プログラムコードをさらに含む、請求項23に記載のルータ。
【請求項２７】
アプリケーションパッケージを記憶した機械可読記憶媒体であって、前記アプリケーションパッケージが、デバイスアプリケーションとルータアプリケーションとを含み、前記デバイスアプリケーションが、デバイスの第1のプロセッサによって実行されると、前記デバイスに、
前記ルータアプリケーションがルータ上に存在するかどうかを決定させ、
前記ルータアプリケーションが前記ルータ上に存在するという決定に応答して、構成データを前記ルータアプリケーションに提供するためのユーザインターフェースを提示させ、
前記ルータアプリケーションが前記ルータ上に存在しないという決定に応答して、前記ルータアプリケーションを前記ルータへダウンロードさせる、
第1のプログラムを備える、機械可読記憶媒体。
【請求項２８】
前記デバイスアプリケーションが第1のオペレーティングシステム上で実行可能であり、前記ルータアプリケーションが前記第1のオペレーティングシステムとは異なる第2のオペレーティングシステム上で実行可能である、請求項27に記載の機械可読記憶媒体。
【請求項２９】
前記ルータアプリケーションが、第2のプロセッサによって実行されると、前記第2のプロセッサに、
前記デバイスを前記ルータアプリケーションに関連付けるステップと、
前記ルータアプリケーションへのアクセスを前記デバイスに制限するステップと
を備える動作を実行させる第2のプログラムを含む、請求項27に記載の機械可読記憶媒体。
【請求項３０】
プロセッサによって実行されると、前記プロセッサに、
ルータ上で実行するためのルータアプリケーションをルータアプリケーションソースから受信するステップであって、前記ルータアプリケーションの受信が、アプリケーションソースから第1のアプリケーションをデバイスが受信することに応答するとともに、前記デバイスによる前記第1のアプリケーションの実行にさらに応答するステップと、
前記第1のアプリケーションから、前記ルータアプリケーション用の構成データを受信するステップと、
前記デバイスを前記ルータアプリケーションに関連付けるステップと、
前記デバイスに前記ルータアプリケーションへのアクセスを制限するステップと
を備える動作を実行させるプログラムを記憶した、機械可読記憶媒体。
【請求項３１】
前記ルータアプリケーションがアプリケーションパッケージに含まれ、前記動作が、前記デバイスから前記ルータアプリケーションを受信するステップをさらに備える、請求項30に記載の機械可読記憶媒体。
【請求項３２】
前記動作が、
前記デバイスから、前記ルータアプリケーション用のソースを指定するロケーションデータを受信するステップと、
前記ルータによって、前記ソースから前記ルータアプリケーションをダウンロードするステップと
をさらに備える、請求項30に記載の機械可読記憶媒体。
【請求項３３】
前記動作が、前記デバイスから前記ルータアプリケーション用の構成データを受信するステップをさらに備える、請求項30に記載の機械可読記憶媒体。
【国際調査報告】
2017507396.tif 000012
2017507396.tif 000013