【文献】
高橋 成人,予算別/ハード別に選べる! すぐ楽しめる最適Linux,日経Linux,日本,日経BP社 Nikkei Business Publications,Inc.,2014年 1月 8日,第16巻,第2号,第80−84頁
【文献】
USBクレードル for HTC Desire HD SoftBank 001HT,商品紹介,株式会社ミヤビックス,2011年11月 3日,[online], [平成31年 1月16日検索],URL,https://web.archive.org/web/20111103143919/https://www.miyavix.co.jp/products/smartphone/2207.html
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
本発明の実施の形態について図面を参照しながら説明する。本実施の形態に係る端末制御装置は、次のように充電装置として、あるいは次の充電装置を用いて実現される。本実施の形態の一例において充電装置1は、
図1に例示するように、プラグ部11と、ケーブル部12と、回路部13と、コネクタ部14とを含んで構成される。ここでプラグ部11は、プラグ部筐体110内に収納されている。このプラグ部11は、外部電源(例えば商用電源)に接続される。またコネクタ部14は、例えばUSB(Universal Serial Bus)コネクタであり、端末2に接続される。さらに、本実施の形態の充電装置1は、アクセスポイント3に対して通信可能に接続される。
【0012】
本実施の形態の一例では、プラグ部11は、整流器や変圧器を含み、外部電源から供給される電力に基づき、予め定められた電圧の直流電源として機能し、外部に電力を供給する。ケーブル部12は、プラグ部11と回路部13とを電気的に接続する第1ケーブル部12aと、回路部13とコネクタ部14とを電気的に接続する第2ケーブル部12bとを含んでなる。
【0013】
回路部13は、回路部筐体130内に形成される。この回路部13は、プラグ部11から供給される電力によって駆動される。本実施の形態の一例によると、回路部13は、Linux(登録商標)等のOS(Operating System)を動作させ、当該OS上で各種アプリケーションプログラムを起動可能な制御回路を含んでいる。具体的にこの回路部13は、無線LAN(Local Area Network)等の通信回線を介して情報を送出する通信部131と、プラグ部11から伝達される電力に基づいて、端末2に対して充電用の電力を供給する電力供給部132と、制御部133とを含んでなる。この回路部13の各部については後に詳しく述べる。
【0014】
端末2は、例えばアンドロイドOSを採用した、バッテリにて駆動される携帯端末であり、USBポートを備えてなる。この端末2のバッテリは、USBポートに充電装置1が接続されている間、当該充電装置1から供給される直流電源により充電される。また本実施の形態では、この端末2は、USBポートに接続された充電装置1との間で情報を授受する。
【0015】
アクセスポイント3は、無線LANのアクセスポイントであり、本実施の形態の一例では、ストレージデバイス(フラッシュメモリ等でよい)を備えて、充電装置1が送出した情報を受信し、このストレージデバイス内に記憶する。
【0016】
ここで回路部13の各部構成について述べる。通信部131は、例えば無線LANインタフェースであり、無線にてアクセスポイント3に対して情報を送出する。具体的にこの通信部131はアンテナを備えており、このアンテナは本実施の形態のある例では、プラグ部11とコネクタ14とを電気的に接続するケーブル部12に沿って配される。この例の場合、ケーブル部12aまたはケーブル部12bのいずれかを、放射する信号の波長(例えば2.4GHz帯を用いる無線LANの一例では12.5cm)の1/2または1/4とし、当該ケーブル部12aまたは12b内のUSB信号線(GND線でもよい)をアンテナとして用いてもよい。また別の例では、ケーブル部12aまたは12b内に、USB信号線(GND線でもよい)に平行して、アンテナとなる導線を配してもよい。この場合の導線長さも放射する信号の波長の1/2または1/4とし、回路部13から給電する。
【0017】
電力供給部132は、ケーブル部12aを介してプラグ部11から受け入れた電力を、ケーブル部12bとコネクタ部14とを介して端末2に供給する。具体的には、コネクタ部14がUSBコネクタである場合は、プラグ部11が供給する直流の電力をVBUSを介して端末2へ供給する。
【0018】
またこの電力供給部132は、制御部133に対しても電力を供給する。本実施の形態の制御部133は、
図2にその概略を示すように、プロセッサ136と、記憶部137とを含んで構成される。ここでプロセッサ136は、プログラム制御デバイスであり、電力供給部132からの電力供給を受けて動作を開始し、記憶部137に格納されたプログラムに従って動作する。
【0019】
本実施の形態のある例では、この充電装置1は、本発明の実施の形態に係る端末制御装置そのものとして機能する。この例においてこのプロセッサ136は、端末2に対してバックアップの指示を出力し、当該指示に応答して端末2が出力するバックアップ用の情報(以下、バックアップ情報と呼ぶ)を取得する。またこのプロセッサ136は、当該取得したバックアップ情報を、通信部131に出力し、通信回線を介して送出させる。このプロセッサ136の具体的な処理の内容は後に述べる。
【0020】
記憶部137は、メモリデバイスであり、プロセッサ136によって実行されるプログラムを保持する。このプログラムは、メモリカード等、非一時的(non-transitory)かつコンピュータ可読な記録媒体に格納されて提供され、この記憶部137に格納されたものであってもよい。またこの記憶部137は、プロセッサ136のワークメモリとしても動作する。
【0021】
ここでプロセッサ136は、機能的には、
図3に例示するように、バックアップ情報取得部160と、バックアップ情報送出部161とを基本的に含んで構成される。また、リストア処理部162をさらに含んでもよい。ここでバックアップ情報取得部160は、具体的に端末2がアンドロイドOSによって制御されるものである場合、adb(Android Debug Bridge)ツールを用いてバックアップの指示を行う。
【0022】
すなわち本実施の形態のある例に係るバックアップ情報取得部160は、電力供給部132から電力が供給されるようになると、adb backupコマンドを端末2側に送出する。なおadb backupコマンドには、種々のオプションがあるが、なるべく多くのデータをバックアップするオプションが用いられてもよい。すなわち、adb backup -apk -obb -shared -all -system(アプリケーションのパッケージ(apk)ファイルも、SDカード内のコンテンツも、システムアプリケーションもバックアップし、すべてのアプリケーションを対象としたバックアップを行う趣旨のコマンド)を実行することとしてもよい。またバックアップ情報取得部160は、バックアップの指示に応答して端末2が出力するバックアップ情報を記憶部137に格納する。
【0023】
バックアップ情報送出部161は、当該記憶部137に格納されたバックアップ情報を、通信部131を介してアクセスポイント3宛に送出する。このバックアップ情報送出部161は、アクセスポイント3との間でssh(secure shell)による暗号化通信を行うこととしてもよい。
【0024】
また本実施の形態の一例では、このプロセッサ136は、リストア処理部162として動作し、アクセスポイント3からバックアップ情報を受信して記憶部137に格納し、当該受信したバックアップ情報を、端末2に対してリストアする処理を実行してもよい。この場合リストア処理部162として動作するプロセッサ136は、端末2に対して、記憶部137に格納された情報(ファイル)を指定して、adb restoreコマンドを送出することになる。
【0025】
[動作例]
端末制御装置そのものとして機能する本実施の形態の充電装置1は基本的にこのような構成を備えており、次のように動作する。この充電装置1のプラグ部11が商用電源に接続され、また、コネクタ部12が端末2に接続されると、プラグ部11が商用電源から供給される電力を利用して直流電源として機能し、回路部13が、この直流電源としてのプラグ部11から受け入れた電力を、コネクタ部14を介して端末2へ供給して端末2の充電を行う。
【0026】
またこのとき、回路部13は、プラグ部11から電力の供給を受けて、端末2に対してバックアップの指示を送出する。そして端末2がこのバックアップの指示に応答して出力するバックアップ情報を受け入れた回路部13は、当該受け入れたバックアップ情報を、無線LANを介してアクセスポイント3へ送出する。そしてアクセスポイント3が当該バックアップ情報を受け入れて保持する。
【0027】
このバックアップ情報はさらに、アクセスポイント3から、このアクセスポイント3との間で通信可能に接続されるパーソナルコンピュータや、サーバ装置(インターネットを介して接続される、いわゆるクラウドサーバでもよい)等、外部の機器に送出されて保持されてもよい。このとき、アクセスポイント3は、所定の条件が満足されるまで待機してから、バックアップ情報を外部の機器に送出してもよい。一例では、このアクセスポイント3は、所定の条件として現在時刻が予め設定された時刻になったときに、バックアップ情報を外部の機器に送出する。
【0028】
[バックアップ情報取得の条件]
また、ここでは電力の供給が行われると、バックアップ情報取得部160が端末2に対してバックアップの指示を送出することとしていた(なお、端末2が接続されていないなど、端末2からバックアップの指示等に対する応答がない場合は、予め定めたタイミングごとに繰り返してバックアップの指示を送出してもよい)。
【0029】
しかし本実施の形態では、電力の供給が行われたときにバックアップ情報取得部160が、予め定められたバックアップ開始のための条件を満足するか否かを判断し、条件を満足すると判断したときにバックアップの指示を送出してもよい。この条件は例えば、端末2の充電開始からの時間や、端末2の現在の電池残量に基づくものとすればよい。具体的には、電池残量が70%未満であることを上記条件としてもよい。すなわち、バックアップ情報の取得中に端末2が充電装置1から切離される可能性が低い条件(電池残量が大きくなると、それで十分と判断した利用者が取外す可能性がある)とする。
【0030】
[充電装置をadbサーバとして機能させる例]
また、ここまでの説明では充電装置1がそのまま端末制御装置として機能し、
バックアップの指示を自律的に端末2に対して出力する例について述べたが、本実施の形態はこれに限られるものではない。本発明の実施の形態の別の例に係る端末制御装置は、
図1に例示した構成と同様の構成を備えるが、
図4に機能的に例示するように、充電装置1の回路部13のプロセッサ136がadbサーバプログラムを実行してadbサーバ21として機能し、アクセスポイント3がadbクライアントとして機能して、具体的なadbコマンドの発行はこのアクセスポイント3が実行することとしてもよい。この例では、充電装置1とアクセスポイント3とにより本発明の実施の形態に係る端末制御装置が実現される。この例では、充電装置1はアクセスポイント3からの制御により、バックアップの指示を端末2に対して出力することとなる。
【0031】
adbサーバ21は、adbクライアント22からadbコマンドを受け入れて当該adbコマンドを端末2に出力する。そして端末2から受信した応答を、adbコマンドの受入元であるadbクライアント22に出力する。例えばadbサーバ21である充電装置1は、端末2の一覧を表示するべき旨のadb devicesコマンドを、adbクライアント22であるアクセスポイント3から受信する。すると充電装置1はコネクタ部14を介して接続される端末2を特定する情報(端末2に固有の識別情報等)を、当該コマンドの送信元であるアクセスポイント3に対して送出する。
【0032】
また端末2を特定する情報とともに、例えばバックアップを指示するコマンドadb backupを、アクセスポイント3から受信すると、充電装置1は、コネクタ部14を介して、端末2に対して当該バックアップの指示を出力する。充電装置1は、このバックアップの指示に応答して端末2がバックアップ情報を送出すると、当該バックアップ情報を受信し、アクセスポイント3に対して当該受信したバックアップ情報を、通信回線を介して送出する。
【0033】
[複数の端末に接続される例]
このように、充電装置1がadbサーバとして動作する例では、充電装置1は、さらに、複数の端末2に接続されてもよい。この場合、複数のコネクタ部14が、それぞれ対応するケーブル部12bを介して回路部13に接続されることとなる。
【0034】
本実施の形態のこの例では、adbクライアントとして機能するアクセスポイント3からの指示により、adbサーバとして機能する充電装置1が、接続されている端末2の一覧をアクセスポイント3に提供する。具体的にアクセスポイント3は、adb devicesコマンドを充電装置1に出力し、充電装置1がこのコマンドに応答して、接続されている端末2の一覧を提供する。
【0035】
そしてアクセスポイント3は、adb backupコマンドを当該一覧に含まれる端末2に対して順次発行する。このコマンド(バックアップの指示)は、adbサーバとして動作する充電装置1を介して、対応する端末2に対して送出される。また充電装置1はこのバックアップの指示に対する応答として端末2から得られるバックアップ情報を、アクセスポイント3に対して送出する。
【0036】
アクセスポイント3は、バックアップの指示の送出先となった端末2を特定する情報に関連付けて、充電装置1から得られたバックアップ情報を記憶する。
【0037】
なお、この場合もアクセスポイント3は、バックアップの指示であるadb backupコマンドを発行する前に、当該コマンドの送出先となる端末2について予め定めた条件を満足するか否かを判断し、当該条件を満足すると判断したときにバックアップの指示を送出してもよい。
【0038】
具体的にアクセスポイント3は、バックアップの指示であるadb backupコマンドを発行する前に、例えばadb shellコマンド等を用いて端末2の現在の電池残量を取得し、この電池残量が所定の値の範囲(例えば70%未満)であるときに、上記条件が満足されたとしてadb backupコマンドを発行してもよい。また、ここでの条件は電池残量のほか、現在時刻や、充電開始からの経過時間など種々のものが考えられる。
【0039】
さらにここでの例では、アクセスポイント3が上記条件が満足されるか否かを判断するのではなく、例えばアクセスポイント3から特定の端末2宛にadb backupコマンドを送出するべき旨の指示を受けたadbサーバが、adb backupコマンドを送出する前に、例えばadb shellコマンド等を用いて端末2の現在の電池残量を取得し、この電池残量が所定の値の範囲(例えば70%未満)であるときに、上記条件が満足されたとしてadb backupコマンドを送出してもよい。ここでの条件もまた、電池残量のほか、現在時刻や、充電開始からの経過時間など種々のものが考えられる。
【0040】
[変形例]
また、本実施の形態のここまでの説明の充電装置1では、回路部13がプラグ部11からの電力の供給を受けて動作するものとしていたが、本実施の形態はこれに限られない。すなわち回路部13は、端末2からコネクタ部14を介して電力の供給を受け、この供給された電力により動作してもよい。
【0041】
この場合、回路部13の電力供給部132は、ケーブル部12aを介してプラグ部11から電力が供給されているときには、ケーブル部12bとコネクタ部14とを介して端末2に供給するとともに、制御部133に対しても電力を供給する。また、電力供給部132は、ケーブル部12aを介してプラグ部11から電力が供給されておらず、コネクタ部14に端末2が接続されているときには、端末2から電力の供給を受けるように制御し、端末2から電力の供給が行われるようになると、当該電力を制御部133に対して供給する。このような電力の供給方向の制御については、広く知られた方法を採用できるので、ここでの詳しい説明を省略する。
【0042】
またこの例のように、
(1)プラグ部11から電力が供給される場合と、
(2)端末2からコネクタ部14を介して電力が供給される場合と、
がある場合、制御部133はそれぞれの場合で動作を異ならせてもよい。
【0043】
具体的に(1)プラグ部11から電力が供給される場合には、制御部133のプロセッサ136は、記憶部137に、バックアップ情報が格納されているか否かを調べる。ここでバックアップ情報が記憶部137に格納されていれば、プロセッサ136は、当該バックアップ情報を通信部131に出力して、通信回線を介してアクセスポイント3宛に送出させ、送出が完了したときに記憶部137から当該バックアップ情報を削除する。
【0044】
またプロセッサ136は、バックアップ情報が記憶部137に格納されていなければ、例えば次のように動作する。すなわち充電装置1が、端末制御装置そのものとして機能している場合は、既に述べたように、プロセッサ136が端末2に対してバックアップの指示を出力して、当該指示に応答して端末2が出力するバックアップ情報を取得する。この場合、また端末2からバックアップ情報を取得したときには、プロセッサ136は当該取得したバックアップ情報を通信部131に出力して、通信回線を介してアクセスポイント3宛に送出させる。
【0045】
一方、充電装置1がadbサーバとして機能する場合、つまり充電装置1とアクセスポイント3とにより端末制御装置が実現されている場合は、バックアップ情報が記憶部137に格納されていなければ、プロセッサ136はadbサーバプログラムの実行を開始して、アクセスポイント3からの指示を待機する。
【0046】
そして(2)端末2からコネクタ部14を介して電力が供給される場合、制御部133のプロセッサ136は、例えば次のように動作する。すなわち充電装置1が、端末制御装置そのものとして機能している場合は、端末2に対してバックアップの指示を出力して、当該指示に応答して端末2が出力するバックアップ情報を取得し、この取得したバックアップ情報を記憶部137に格納しておく。そしてその後、プラグ部11から電力が供給されるようになったときに、制御部133のプロセッサ136は、当該記憶部137に格納したバックアップ情報を、通信部131に出力して、通信回線を介してアクセスポイント3宛に送出させる。
【0047】
また充電装置1がadbサーバとして機能する場合、つまり充電装置1とアクセスポイント3とにより端末制御装置が実現されている場合、端末2からコネクタ部14を介して電力の供給を受けるプロセッサ136は、adbサーバプログラムの実行を開始して、アクセスポイント3からの指示を待機し、アクセスポイント3が発行したadbコマンドによりバックアップ情報を取得したときには、当該取得したバックアップ情報を記憶部137に格納しておく。そしてその後、プラグ部11から電力が供給されるようになったときに、制御部133のプロセッサ136は、当該記憶部137に格納したバックアップ情報を、通信部131に出力して、通信回線を介してアクセスポイント3宛に送出させる。
【0048】
さらに(1)プラグ部11から電力が供給される場合にプロセッサ136が端末2に対して出力するバックアップの指示と、(2)端末2からコネクタ部14を介して電力が供給される場合にプロセッサ136が端末2に対して出力するバックアップの指示とは互いに異なっていてもよい。
【0049】
具体的に、(1)プラグ部11から電力が供給される場合にプロセッサ136が端末2に対して出力するバックアップの指示は、なるべく多くのバックアップに係る情報を取得するようにする。すなわち上述の例のように、adb backup -apk -obb -shared -all -system(apkファイルも、SDカード内のコンテンツも、システムアプリケーションもバックアップし、すべてのアプリケーションを対象としたバックアップを行う趣旨のコマンド)を実行する。
【0050】
一方、(2)端末2からコネクタ部14を介して電力が供給される場合にプロセッサ136が端末2に対して出力するバックアップの指示は、プラグ部11から電源が供給されている場合よりも少ない情報量となるように、限られた部分のバックアップ情報を取得するようにしてもよい。例えば、adb backup -system(システムアプリケーションをバックアップする趣旨のコマンド)を実行する。
【0051】
このようにするときには、プラグ部11から電力の供給が開始されたときに、制御部133のプロセッサ136は、記憶部137にバックアップ情報が格納されているか否かを調べ、当該バックアップ情報を、通信部131に出力して、通信回線を介して送出させ、また、それとともに端末2に対してバックアップの指示を出力して、当該指示に応答して端末2が出力するバックアップ情報を取得する。このときに取得するバックアップ情報は、プラグ部11から電力が供給されていなかったときに取得され、記憶部137に格納されているバックアップ情報(その少なくとも一部でもよい)を除くものとする。例えば、この場合のバックアップの指示を行うにあたりプロセッサ136は、adb backup -apk -obb -shared -all(apkファイルも、SDカード内のコンテンツもバックアップし、すべてのアプリケーションを対象としたバックアップを行うが、システムアプリケーションのバックアップは含まない趣旨のコマンド)を実行する。これにより、既に取得されたバックアップ情報については、新たに取得する動作をスキップすることが可能となる。
【0052】
なお、adbコマンドをアクセスポイント3が発行する場合は、充電装置1は、プロセッサ136に対する電力供給が(1)プラグ部11から行われているか、(2)端末2からコネクタ部14を介して行われているかを識別する情報を、アクセスポイント3側に通知しておき、アクセスポイント3がadbコマンドを発行するときに、最後にアクセスポイント3から通知された当該情報を参照し、上述のように、(1)プラグ部11から電力が供給される場合にプロセッサ136が端末2に対して出力するバックアップの指示と、(2)端末2からコネクタ部14を介して電力が供給される場合にプロセッサ136が端末2に対して出力するバックアップの指示とを互いに異ならせるようにすればよい。
【0053】
また、さらに(2)端末2からコネクタ部14を介して電力が供給される場合には、制御部133のプロセッサ136は、何もしないこととしてもよい。
【0054】
[PLC通信を行う例]
さらに本実施の形態のある例では、回路部13とアクセスポイント3との間の通信は無線LANではなく、有線のLANであってもよい。この有線のLANを介した接続は、一般的なイーサネット(登録商標)ケーブルによって行われてもよい。さらに、本実施の形態の別の例では、回路部13は無線LANに代えて、プラグ部11を介して、電源線を利用したネットワーク(いわゆるPLC:Power-Line Communication)技術を用いてアクセスポイント3と通信を行ってもよい。
【0055】
この場合、プラグ部11が接続される電源と同系統の電源(電源ラインを共用する電源)に、アクセスポイント3が接続され、アクセスポイント3もまた、PLC技術による通信が可能となっているものとする。
【0056】
また、ここでは無線LANに代えてPLC技術による通信を用いるものとしたが、無線LANとPLC技術による通信とを所定の条件に基づいて切替えて利用してもよい。一例としては、通常(特に指示がない状態)では回路部13がアクセスポイント3との間で無線LANによる通信を行い、無線LANによる通信のスループットが予め定めたしきい値を下回る場合にPLC技術による通信に切り替えて、アクセスポイント3との通信を行うこととしてもよい。
【0057】
[プラグ部とケーブル部とがUSBコネクタで接続される例]
さらに本実施の形態の一例では、プラグ部11と、ケーブル部12aとがUSBコネクタを介して接続されてもよい。この場合、ケーブル12aは、プラグ部11から切り離され、プラグ部11に代えてパーソナルコンピュータ(PC)に接続されてもよい。
【0058】
この例においては、充電装置1の回路部13は、ケーブル12aを介してプラグ部11に接続されているか否かと、PCに対して接続されているか否かとを検出し、プラグ部11に接続されている場合は既に説明した動作を行い、PCに接続されている場合には、PC側からケーブル12aのUSBコネクタを介して送出される信号を、そのまま、コネクタ部14を介して端末2側に送出し、また端末2側からコネクタ部14を介して入力される信号を、そのままケーブル12aのUSBコネクタを介してPC側へ出力する(adbコマンドの発行や、adbサーバとしての動作を行わない)ようにしてもよい。これにより本実施の形態の充電装置1は、プラグ部11の代わりにPCに接続されたときには、一般的なUSBケーブルと同様に動作することとなる。
【0059】
[筐体を共用する例]
なお、ここまでの説明において、プラグ部11,回路部13,コネクタ部14はそれぞれ別体の筐体に収納され、互いにケーブル部12を用いて接続されることとしていたが、本実施の形態はこれに限られず、プラグ部筐体110と、回路部筐体130とが一体的な筐体であってもよい。また、コネクタ部筐体140に、回路部筐体130が一体的に形成されてもよい。
【0060】
[複数アクセスポイントとの通信]
また本実施の形態では、充電装置1が通信するアクセスポイント3は複数あってもよい。このようにアクセスポイント3が複数用いられる例では、充電装置1は、端末2から、アクセスポイント3ごとに異なる内容のバックアップ情報を取得するようにしてもよい。
【0061】
一例として充電装置1が第1のアクセスポイント3aと、第2のアクセスポイント3bとに接続されている場合、この充電装置1の回路部13は、SDカード内のコンテンツやアプリケーションに係るバックアップ情報を第1のバックアップ情報として取得し、またシステムアプリケーションに係るバックアップ情報を第2のバックアップ情報として取得する。
【0062】
そして回路部13は、第1のバックアップ情報を第1のアクセスポイント3aに送出し、第2のバックアップ情報を第2のアクセスポイント3bに送出する。
【0063】
あるいは、充電装置1の回路部13がadbサーバとして機能する場合、第1のアクセスポイント3aが、SDカード内のコンテンツやアプリケーションに係るバックアップ情報を取得するためのadb backupコマンドを発行し、第2のアクセスポイント3bが、システムアプリケーションに係るバックアップ情報を取得するためのadb backupコマンドを発行するようにしてもよい。
これらの例によると、各アクセスポイント3が、端末2のバックアップ情報を分担して取得することが可能となる。
【0064】
[アクセスポイントが複数のスライスを有する場合]
また本実施の形態では、単体のアクセスポイント3が、自分自身のCPU資源や、バッファ等のストレージ資源、あるいはネットワークの帯域の資源等を、時分割的に利用することで、あたかも複数のアクセスポイント3が設置されているかのように動作してもよい。
【0065】
この例に係るアクセスポイント3は、
図5に例示するように、制御部31、記憶部32、無線通信部33、及び有線通信部34を備えてなる。ここで制御部31はCPU等のプログラム制御デバイスであり、記憶部32に格納されたプログラムに従って動作する。
【0066】
本実施の形態のある例では、この制御部31は、複数のプログラム実行環境を並列的に動作させることのできるホストオペレーティングシステム(ホストOS)の処理を実行している。制御部31は、これにより自分自身のCPU資源や、バッファ等のストレージ資源、あるいはネットワークの帯域の資源等を、これら複数のプログラム実行環境に時分割的に分割して割り当てる。また、各プログラム実行環境では、さらにオペレーティングシステム(ゲストOS)が動作してもよく、当該ゲストOS上で、複数のタスクが時分割的ないし並列的に実行されてもよい。
【0067】
本実施の形態の一例では、制御部31は、ホストOS及びゲストOSとしてlinuxを動作させており、ホストOS上で複数の仮想的なプログラム実行環境を形成する方法として、resource containersの一種である、Linux Containersを用いるものとする。
【0068】
記憶部32は、メモリデバイスまたはディスクデバイスであり、制御部31によって実行されるプログラムを保持する。なお、このプログラムは、非一時的な(Non-transitory)、コンピュータ可読な記録媒体に格納されて提供され、この記憶部32に複写されたものであってもよい。またこの記憶部32は制御部31のワークメモリとしても動作する。
【0069】
無線通信部33は、例えば、一つないし複数の無線LANチップを備えるネットワークカードである。この無線通信部33は、制御部31の制御により、予め定めた方法で複数の通信チャネルを多重化する。この無線通信部33は、802.11nなどの予め定めたプロトコルにて、各通信チャネルを介して、それぞれの通信チャネルで接続された充電装置1や端末2との間で、無線通信を行っている。またこの無線通信部33は、各通信チャネルに対応したバッファ41を備え、ある通信チャネルを介して端末2との間で送受信する情報を、当該通信チャネルに対応するバッファ41に格納する。
【0070】
本実施の形態の一側面では、この無線通信部33は、制御部31が実行するホストOSからの指示を受けて、802.11nによる複数の通信チャネルを、時分割多重化する。この時分割多重は例えば、multiple SSID機能として広く知られている機能と同じようにして実現可能であるので、ここでの詳しい説明は省略する。
【0071】
有線通信部34は、有線通信を行うネットワークカードあり、制御部31から入力される指示に従い、インターネットなど、有線ネットワークを介して他の装置との間での通信を行う。
【0072】
本実施の形態のこの例に係る制御部31は、機能的には
図6に例示するように、ホストOS50と、各通信チャネルに対応して形成される複数のプログラム実行環境60とを含む。また、ホストOS50には、デバイスドライバ51が含まれる。
【0073】
各プログラム実行環境60では、それぞれゲストOS61が実行される。また、各ゲストOS61の制御の下で動作するユーザプログラムとして、端末制御モジュール65と通信制御モジュール66とが実行される。プログラム実行環境を形成する方法としてLinux Containersを用いる場合、各プログラム実行環境60は、ホストOS50上で、それぞれ独立したLXC Guest環境として実現される。
【0074】
ゲストOS61は、一般的な無線通信のためのプロトコルスタックを備える。ここでゲストOS61のプロトコルスタックには、OSI参照モデルにおける上位側の層の処理を行うモジュールからより下位の、データリンク層の処理を行うモジュールまで(MAC(Media Access Control)副層に対応するモジュール)が少なくとも含まれる。一例として、Linuxであれば、nl80211、mac80211、ath9k等を含む。
【0075】
各ゲストOS61は、起動時に新たな通信チャネルの開設(open)をホストOS50に要求する。そして対応する通信チャネルが開設されると、当該対応する通信チャネルにおける物理的な通信路の確保の処理や、競合制御の処理を実行する。またゲストOS61は、ユーザプログラムである端末制御モジュール65との間で、対応する通信チャネルを介して送受信するデータを授受する。さらにゲストOS61は、通信制御モジュール66から入力される指示に従い、対応する通信チャネルにおける通信のパラメータ(後述)を設定する。
【0076】
一例として、このゲストOS61は、対応する通信チャネルの仮想的な無線通信デバイスのインタフェースを、ユーザプログラム側に提供する。具体的にLinuxでは、無線通信デバイスのインタフェースは、wlanp及びmon.wlanp(これらにおいて末尾のpは0から始まる数値)で識別されるデバイスとして仮想化される。そこで、このゲストOS61は、通信チャネルに対する仮想的無線通信デバイスインタフェース(wlan0及びmon.wlan0等)としてユーザプログラム側に提供する。
【0077】
端末制御モジュール65は、それが実行されているプログラム実行環境60に対応する通信チャネルを介して端末2との間で送受される情報を、予めプログラムされた指示に従って処理する。この処理の内容は、一般的にはプログラム実行環境60ごとに異なるものとなる。
【0078】
この端末制御モジュール65がLinux上で動作するものであれば、端末制御モジュール65は端末2との通信においては、他の通信データを処理する一般的なプログラムと同様に、wlan0へアクセスすることとなるが、ここではゲストOS61により、wlan0への書き込みは、対応する通信チャネルを介して送信するデータとして扱われる。同様に、wlan0からの読み出しは、ゲストOS61により、対応する通信チャネルを介して受信したデータの読み出しとして扱われる。つまり仮想的な無線通信デバイスを介して、端末2との間でデータの送受信が行われることとなる。
【0079】
通信制御モジュール66は、対応する通信チャネル(対応通信チャネル)を介した通信において、通信のパラメータを設定する。ここで通信のパラメータには、識別情報(対応通信チャネルがアクセスポイントとして動作する場合のssid等)や、ブロードキャストのためのキー長さ、暗号化処理の有無、暗号化のパラメータ(暗号処理の種類等)が含まれる。この通信制御モジュール66は、例えばLinux等におけるhostapdをそのまま利用できる。この例のようにhostapdである場合、通信制御モジュール66としてのhostapdは、ゲストOS61が提供するインタフェースmon.wlan0を介して通信のパラメータの設定等を行う。
【0080】
ホストOS50のデバイスドライバ51は、無線通信部33を制御する。このデバイスドライバ51は、ゲストOS61からの通信チャネルの開設の要求に応答して、新たに設定する通信チャネルに対応するバッファ55を形成し、無線通信部33に新たな通信チャネルの開設を行わせる。このとき、既に無線通信部33が少なくとも一つの通信チャネルを介した通信を行っているならば、デバイスドライバ51は、予め定めた多重通信方法(例えば時分割多重)により当該通信チャネルでの通信を追加的に開始させる。
【0081】
本実施の形態のある例では、充電装置1の回路部13をadbサーバとして機能させておき、またアクセスポイント3上で実行される各ゲストOS61の環境下の端末制御モジュール65が、それぞれadbクライアントとして動作する。
【0082】
すなわち、この例においても、第1のアクセスポイント3aとして機能するゲストOS61a下の端末制御モジュール65aが、SDカード内のコンテンツやアプリケーションに係るバックアップ情報を取得するためのadb backupコマンドを発行する一方、第2のアクセスポイント3bとして機能するゲストOS61b下の端末制御モジュール65bが、システムアプリケーションに係るバックアップ情報を取得するためのadb backupコマンドを発行するようにしてもよい。
【0083】
[端末の制御を行う例]
さらに本実施の形態の一例では、既に述べたように端末2がアンドロイドOSによって制御され、充電装置1がadbコマンド(端末制御コマンド)の送信元、あるいはadbサーバとして機能する(充電装置1がadbサーバとして機能する場合は、例えばアクセスポイント3側がadbクライアントとして動作する)。
【0084】
従って、充電装置1またはadbクライアントとして機能するアクセスポイント3は、バックアップの指示に係るコマンドadb backupのほか、各種のadbコマンドを端末2側に送出することが可能になる。
【0085】
adbコマンドには、アプリケーションをインストールまたは、アンインストールさせるコマンドや、データを端末2から取得し、あるいは端末2に格納させるコマンド、端末2にインストールされたアプリケーションを起動させるコマンド、端末2を再起動させるコマンド等がある。
【0086】
[アクセスポイントを遠隔から制御する例]
本実施の形態のこの例では、アクセスポイント3内で実行される各ゲストOS61は、それぞれ有線通信部34を介して予め対応づけられた外部の機器(例えばインターネットを介して通信可能に接続される管理者側PCや、サーバ装置等)と通信を行い、当該対応する外部の機器から受信される指示に従って、端末制御モジュール65の動作を制御してもよい。
【0087】
具体的に本実施の形態の一例では、外部の機器の利用者は、アクセスポイント3内で実行される、対応するゲストOS61にログイン(ユーザ名やパスワード等の認証情報が予め知らされているものとする)し、当該ゲストOS61上で、端末制御モジュール65を制御し、所定のadbコマンドを発行(端末2に送信)し、また当該adbコマンドに伴って必要となるデータを送信させる。これにより端末2にアプリケーションをインストールし、または写真や動画等、種々のデータを送信するといったサービスが提供できる。例えば、端末3が携帯電話機等である場合、その携帯電話機としての通信を管理するキャリア(通信事業者)が、端末3に対して必要なソフトウエアをインストールし、あるいはウィルス対策ソフトなどのインストールを行うなど、端末3の遠隔管理が可能となる。
【0088】
また、この例においては、当該adbコマンドを受けた端末2が、当該adbコマンドの実行結果を表す情報を、adbコマンドの送信元である端末制御モジュール65に返信してもよい。この場合、端末制御モジュール65は、外部の機器の利用者に対して、当該返信された情報を提示(利用者側のパーソナルコンピュータに表示させるなど)してもよい。