以下、実施の形態について、図面を参照しながら詳細に説明する。なお、図中同一又は相当部分には同一符号を付す。
(実施の形態1)
図1に、実施の形態1に係る表示システム1の構成を示す。図1に示すように、表示システム1は、組み込み機器10と、外部端末30と、を備える。組み込み機器10と外部端末30とは、通信ネットワークNを介して互いに通信可能に接続されている。通信ネットワークNは、LAN(Local Area Network)、インターネット等のような情報通信網である。
組み込み機器10は、組み込みソフトウェアにより制御される電子機器であって、具体的には、空調機、給湯機、炊飯器、洗濯機、冷蔵庫、テレビ等のような特定用途向けの電子機器である。以下では、組み込み機器10として、空調機を操作するための空調コントローラを例にとって説明する。
図2に示すように、組み込み機器10は、制御部11と、記憶部12と、操作部13と、表示部14と、通信部15と、を備える。これらは、それぞれ、機器側制御部、機器側記憶部、機器側操作部、機器側表示部、及び、機器側通信部と呼ぶこともできる。
制御部11は、CPU(Central Processing Unit)を備える。CPUは、中央処理装置、中央演算装置、プロセッサ、マイクロプロセッサ、マイクロコンピュータ等とも呼び、組み込み機器10の制御に係る処理及び演算を実行する処理部として機能する。制御部11において、CPUは、記憶部12に記憶されているプログラム及びデータを読み出して動作し、組み込み機器10を統括制御する。
記憶部12は、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等を備える。記憶部12は、制御部11が各種処理を行うために使用するプログラム及びデータを記憶する。また、記憶部12は、制御部11が各種処理を行うことにより生成又は取得するデータを記憶する。
操作部13は、ボタン、タッチパッド、タッチパネル等の入力デバイスを備えており、ユーザからの操作入力を受け付ける。ユーザは、操作部13を操作することによって、様々な指示を組み込み機器10に入力することができる。操作部13は、ユーザから入力された指示を受け付けると、受け付けた指示を制御部11に送信する。
表示部14は、LCD(Liquid Crystal Display)パネル、有機EL(Electro-Luminescence)等の表示デバイスを備える。表示部14は、図示しない表示駆動回路によって駆動され、制御部11による制御のもとで様々な画像を表示する。
通信部15は、組み込み機器10の外部の機器と通信するための通信インタフェースを備える。例えば、通信部15は、LAN、USB(Universal Serial Bus)等の周知の通信規格に則って、外部端末30を含む外部の機器と通信する。具体的には、通信部15は、通信ネットワークNを介して外部端末30と通信し、外部端末30からの要求に応答して、記憶部12に記憶された画面データ123を外部端末30に送信する。
次に、記憶部12についてより詳細に説明する。記憶部12は、ファームウェア120を記憶している。ファームウェア120は、組み込み機器10に所望の動作を実行させるための、組み込み機器10に組み込まれたソフトウェアである。ファームウェア120は、ハードウェアと密接に結びついたソフトウェアであって、工場出荷時において、むやみに書き換えられることのない記憶媒体に予め書き込まれた状態で出荷される。ファームウェア120は、物理的には、読み取り専用の不揮発性メモリであるROMに格納される。
記憶部12は、ファームウェア120として、組み込み機器10で使用されるファイルシステム全体のイメージファイルを記憶している。このイメージファイル内に、内蔵ブラウザ121と、Webサーバ122と、画面データ123と、内蔵クッキー124と、が含まれている。
内蔵ブラウザ121は、組み込み機器10に内蔵されたブラウザであって、表示画面を表示部14に表示するためのソフトウェアである。
Webサーバ122は、内蔵ブラウザ121に対して画面の表示を実行させるためのソフトウェアである。Webサーバ122は、内蔵ブラウザ121に画面データ123を配布し、画面データ123に基づく表示画面を表示部14に表示させる。
画面データ123は、表示部14に表示される画像を定めたデータファイルである。画面データ123は、具体的には、HTML(Hyper Text Markup Language)ファイル、JavaScriptファイル、CSS(Cascading Style Sheets)ファイル、画像ファイル等であって、表示部14に表示される画像を予め定められたルールに従って定めている。
内蔵クッキー124は、組み込み機器10に内蔵されたクッキー(Cookie)である。内蔵クッキー124は、内蔵ブラウザ121に固有の設定情報を保存するためのデータファイルであって、内蔵ブラウザ121に固有の設定情報をWeb規格に則って記述している。具体的には、内蔵クッキー124は、表示部14に表示画面が表示される際に使用される設定情報である機器用設定情報を含んでいる。機器用設定情報は、詳しくは後述するように、組み込み機器10用に設定済みの、表示出力用の調整パラメータを定めている。
内蔵クッキー124は、組み込み機器10の工場出荷時においてファームウェア120として生成され、組み込み機器10に内蔵される内蔵ブラウザ121の性能に応じた機器用設定情報が書き込まれる。ファームウェア120のファイルシステム内における内蔵クッキー124の格納場所は既知である。
ファームウェア120内には、内蔵ブラウザ121、Webサーバ122、画面データ123及び内蔵クッキー124に加えて、組み込み機器10により使用される他のアプリケーションソフトウェアも含まれている。このように、記憶部12は、組み込み機器10を制御するソフトウェア一式を、ファームウェア120内に記憶している。
なお、組み込み機器10のソフトウェアを更新するために新しいファームウェア120を作成する際、ファームウェア120内の内蔵クッキー124の設定値を変更することで、工場出荷後も内蔵クッキー124の設定値を変更することができる。また、新しいファームウェア120で組み込み機器10の表示を更新するために、ファームウェア120内の画面データ123を更新する場合、新しい表示に対応する新しいクッキーも必要になる。この場合、ファームウェア120内の内蔵クッキー124も合わせて更新することで、一貫性を保ったまま、工場出荷後の組み込み機器10の画面更新にも対応可能となる。
次に、制御部11についてより詳細に説明する。制御部11は、記憶部12に記憶された画面データ123に基づく表示画面を表示部14に表示する。
具体的に説明すると、組み込み機器10のユーザは、表示部14に画像を表示させることを望む場合、操作部13を操作して、表示の指示を入力する。制御部11は、表示の指示を受け付けた場合、Webサーバ122により、ファームウェア120内の画面データ123を読み込む。そして、制御部11は、読み込んだ画面データ123を内蔵ブラウザ121に配布し、画面データ123により定められる表示画面を内蔵ブラウザ121に表示させる。
一例として、組み込み機器10が空調コントローラである場合、制御部11は、表示画面として、図3に示すような空調の操作画面を表示部14に表示する。ユーザは、このような操作画面を見ながら、空調のオン/オフ、運転モードの切り替え、設定温度及び風量の設定等を入力することができる。
より詳細には、制御部11は、画面データ123に基づく表示画面を、ファームウェア120に含まれる機器用設定情報に従って、表示部14に表示する。ここで、機器用設定情報は、組み込み機器10の表示部14に表示画面が表示される際における設定値を定めた情報であって、内蔵クッキー124に含まれている。
機器用設定情報は、表示部14における表示出力用の調整パラメータを定める。具体的には、機器用設定情報は、調整パラメータとして、(1)表示画面に含まれるアニメーションのフレームレート、及び、(2)表示画面が拡大、縮小又はスクロールされる際におけるイベントの間引き頻度を定める。
(1)アニメーションのフレームレートは、アニメーションにおいて単位時間当たりに処理されるフレーム数、すなわち静止画の枚数を意味する。一般的には、アニメーションのフレームレートは、標準的な液晶画面のリフレッシュレートに合わせて、60Hzに設定されることが多い。しかしながら、組み込み機器10の内蔵ブラウザ121のグラフィックスに関する性能は、一般的な情報機器のブラウザの性能に比べて低い。そのため、一般的な情報機器のブラウザで使用可能なフレームレートは、そのままでは組み込み機器10の内蔵ブラウザ121では使用に耐えない可能性が高い。これを考慮して、機器用設定情報におけるフレームレートは、60Hzよりも低い値に設定される。
(2)表示画面が拡大、縮小又はスクロールされる際におけるイベントの間引き頻度は、表示画面が拡大、縮小又はスクロールされている最中に、表示画面の時間変化をどの程度省略して表示するかの度合いを意味する。一例として、表示画面の拡大、縮小又はスクロールは、画面データ123に含まれるJavaScriptにより実行される。JavaScriptは、ブラウザ上で動作し、Webアプリケーションソフトウェアと呼ばれることがある。以下では、WebアプリケーションソフトウェアをWebアプリと略す。
タッチパネル上でユーザがタッチ操作を行うことにより表示画面の拡大、縮小又はスクロールを行う場合、ユーザがタッチ操作を行う毎に、ブラウザからWebアプリにタッチ入力イベントが通知される。Webアプリは、タッチ入力イベントに応じて、拡大、縮小又はスクロールを行うことをブラウザに指示する。組み込み機器10の内蔵ブラウザ121のグラフィックスに関する性能は、一般的な情報機器のブラウザの性能に比べて低い。そのため、タッチ入力イベントが高い頻度でWebアプリに通知され、その度に拡大、縮小又はスクロールを行うと、内蔵ブラウザ121の処理が追い付かず、使用に耐えないことがある。そのため、組み込み機器10で表示画面が拡大、縮小又はスクロールされる場合、タッチ入力イベントを適度に間引く必要がある。これを考慮して、機器用設定情報における間引き頻度は、相対的に大きい値に設定される。
このように、機器用設定情報は、内蔵ブラウザ121の性能に合わせたフレームレート及び間引き頻度を定める。組み込み機器10の工場出荷時において、このような機器用設定情報を含む内蔵クッキー124を、予めファームウェア120内に保存しておく。制御部11は、内蔵ブラウザ121の起動時において、ファームウェア120内の内蔵クッキー124を読み出して、フレームレート及び間引き頻度を設定する。そして、制御部11は、設定されたフレームレート及び間引き頻度で、表示画面を表示部14に表示する。
図1に戻って、外部端末30は、組み込み機器10の外部の端末装置である。具体的には、外部端末30は、パーソナルコンピュータ、スマートフォン、タブレット端末等のような、ユーザに操作される操作端末である。外部端末30は、通信ネットワークNを介して組み込み機器10と接続されており、組み込み機器10の操作、状態監視等を行うことができる。
図4に示すように、外部端末30は、制御部31と、記憶部32と、操作部33と、表示部34と、通信部35と、を備える。これらは、それぞれ、端末側制御部、端末側記憶部、端末側操作部、端末側表示部、及び、端末側通信部と呼ぶこともできる。
制御部31は、CPUを備える。CPUは、中央処理装置、中央演算装置、プロセッサ、マイクロプロセッサ、マイクロコンピュータ等とも呼び、外部端末30の制御に係る処理及び演算を実行する処理部として機能する。制御部31において、CPUは、記憶部32に記憶されているプログラム及びデータを読み出して動作し、外部端末30を統括制御する。
記憶部32は、ROM、RAM、フラッシュメモリ等を備える。記憶部32は、制御部31が各種処理を行うために使用するプログラム及びデータを記憶する。また、記憶部32は、制御部31が各種処理を行うことにより生成又は取得するデータを記憶する。
操作部33は、ボタン、タッチパッド、タッチパネル等の入力デバイスを備えており、ユーザからの操作入力を受け付ける。ユーザは、操作部33を操作することによって、様々な指示を外部端末30に入力することができる。操作部33は、ユーザから入力された指示を受け付けると、受け付けた指示を制御部31に送信する。
表示部34は、LCDパネル、有機EL等の表示デバイスを備える。表示部34は、図示しない表示駆動回路によって駆動され、制御部31による制御のもとで様々な画像を表示する。
通信部35は、外部端末30の外部の機器と通信するための通信インタフェースを備える。例えば、通信部35は、LAN、USB等の周知の通信規格に則って、組み込み機器10を含む外部の機器と通信する。具体的には、通信部35は、通信ネットワークNを介して組み込み機器10と通信し、組み込み機器10の記憶部12に記憶された画面データ123を取得する。
次に、記憶部32についてより詳細に説明する。記憶部32は、外部ブラウザ321と、外部クッキー322と、を記憶している。
外部ブラウザ321は、外部端末30に内蔵されたブラウザであって、表示画面を表示部34に表示するためのソフトウェアである。
外部クッキー322は、外部端末30に内蔵されたクッキーである。外部クッキー322は、外部ブラウザ321に固有の設定情報を保存するためのデータファイルであって、外部ブラウザ321に固有の設定情報をWeb規格に則って記述している。具体的には、外部クッキー322は、表示部34に表示画面が表示される際に使用される設定情報である端末用設定情報を含んでいる。端末用設定情報は、詳しくは後述するように、表示出力用の調整パラメータを定めている。
外部クッキー322は、外部端末30の工場出荷時には存在せず、表示部34に表示画面が表示された際に生成されて、表示部34に表示画面が表示される毎に更新される。そのため、外部クッキー322は、ファームウェアとしてではなく、更新可能な記憶領域に記憶される。
次に、制御部31についてより詳細に説明する。制御部31は、通信部35により取得された画面データ123に基づく表示画面を表示部34に表示する。
具体的に説明すると、外部端末30のユーザは、表示部34に画像を表示させることを望む場合、操作部33を操作して、表示の指示を入力する。制御部31は、表示の指示を受け付けた場合、通信部35を介して組み込み機器10と通信し、組み込み機器10に対して画面データ123の要求を送信する。組み込み機器10において、通信部15は、外部端末30から画面データ123の要求を受け付けると、要求に対する応答として、記憶部12に記憶された画面データ123を外部端末30に送信する。外部端末30において、制御部31は、組み込み機器10から送信された画面データ123を取得する。
このようにして組み込み機器10から画面データ123を取得すると、制御部31は、取得された画面データ123を外部ブラウザ321に配布し、画面データ123により定められる表示画面を外部ブラウザ321に表示させる。
具体的には、制御部31は、表示画面として、例えば図3に示したような空調の操作画面を表示部34に表示する。ここで、外部端末30で表示される表示画面と組み込み機器10で表示される表示画面とは、同じ画面データ123に基づく表示画面である。そのため、外部端末30の表示部34に表示される表示画面は、後述する機器用設定情報と端末用設定情報との違いを除いて、組み込み機器10の表示部14に表示される表示画面と同じである。このように、外部端末30において、組み込み機器10に記憶されている画面データ123に基づく表示画面を表示することにより、組み込み機器10を直接操作するだけでなく、外部端末30を操作することによっても、組み込み機器10の表示画面を確認することができる。
より詳細には、制御部31は、組み込み機器10から取得された画面データ123に基づく表示画面を、機器用設定情報とは異なる端末用設定情報に従って、表示部34に表示する。ここで、端末用設定情報は、外部端末30の表示部34に表示画面が表示される際における設定値を定めた情報である。
端末用設定情報は、表示部34における表示出力用の調整パラメータを定める。具体的には、端末用設定情報は、機器用設定情報と同様に、調整パラメータとして、(1)表示画面に含まれるアニメーションのフレームレート、及び、(2)表示画面が拡大、縮小又はスクロールされる際におけるイベントの間引き頻度を定める。但し、機器用設定情報が組み込み機器10の内蔵ブラウザ121の性能に合わせた値に設定されていたのに対して、端末用設定情報は、外部端末30の外部ブラウザ321の性能に合わせた値に設定されている。そのため、端末用設定情報により定められるフレームレート及び間引き頻度は、機器用設定情報により定められるフレームレート及び間引き頻度とは異なる。
具体的に説明すると、一般的に、外部端末30の外部ブラウザ321のグラフィックスに関する性能は、組み込み機器10の内蔵ブラウザ121の性能に比べて高いことが想定される。そのため、端末用設定情報により定められるフレームレートは、機器用設定情報により定められるフレームレートよりも高い値に設定される。言い換えると、表示画面にアニメーションが含まれる場合、アニメーションは、組み込み機器10よりも外部端末30の方が高いフレームレートで表示される。また、端末用設定情報により定められる間引き頻度は、機器用設定情報により定められる間引き頻度よりも小さい値に設定される。言い換えると、表示画面が拡大、縮小又はスクロールされる際、外部端末30の方が組み込み機器10よりも間引きが行われずに表示される。
このような端末用設定情報は外部クッキー322にも保存されるが、上述したように、外部端末30の工場出荷時には外部クッキー322は存在しない。そのため、初期起動時には、端末用設定情報は、外部端末30内に存在しない。一方で、端末用設定情報のデフォルト値は、組み込み機器10から取得される画面データ123に含まれている。具体的に説明すると、組み込み機器10の工場出荷時において、画面データ123には、端末用設定情報のデフォルト値として、組み込み機器10に接続されることが想定される外部端末30の性能に応じた設定値が記述される。
端末用設定情報が外部端末30に存在しない場合、制御部31は、組み込み機器10から取得された画面データ123に基づく表示画面を、画面データ123に含まれる端末用設定情報のデフォルト値に従って、表示部34に表示する。具体的に説明すると、制御部31は、初期起動時において外部クッキー322が存在しない場合、組み込み機器10から取得された画面データ123に含まれる端末用設定情報のデフォルト値を読み取る。そして、制御部31は、読み取ったデフォルト値を外部クッキー322として保存する。その上で、制御部31は、外部ブラウザ321の機能により、アニメーションのフレームレート及びイベントの間引き頻度をデフォルト値に設定し、表示画面を表示部34に表示する。
次回以降の表示の際は、外部クッキー322が記憶部32に記憶されている。このように端末用設定情報が外部端末30に存在する場合、制御部31は、組み込み機器10から取得された画面データ123に基づく表示画面を、外部端末30に記憶された端末用設定情報に従って表示する。具体的に説明すると、制御部31は、アニメーションのフレームレート及びイベントの間引き頻度を、外部クッキー322に含まれる設定値に設定し、表示画面を表示部34に表示する。
次に、図5及び図6を参照して、表示システム1により実行される処理の流れについて説明する。
第1に、図5を参照して、組み込み機器10により実行される表示処理について説明する。図5に示す表示処理は、組み込み機器10が正常に動作可能な状態において、制御部11により、適宜繰り返し実行される。
表示処理を開始すると、制御部11は、組み込み機器10のユーザから操作部13を介して表示の指示を受け付けたか否かを判定する(ステップS11)。表示の指示を受け付けていない場合(ステップS11;NO)、制御部11は、ステップS11に留まり、表示の指示を受け付けるまで待機する。
表示の指示を受け付けた場合(ステップS11;YES)、制御部11は、ファームウェア120に含まれる画面データ123を読み込む(ステップS12)。更に、制御部11は、ファームウェア120に含まれる内蔵クッキー124を読み込む(ステップS13)。
画面データ123及び内蔵クッキー124を読み込むと、制御部11は、読み込んだ画面データ123に基づく表示画面を表示部14に表示する(ステップS14)。制御部11は、例えば図3に示した操作画面を、読み込んだ内蔵クッキー124に含まれる機器用設定情報に従って、表示部14に表示する。以上により、図5に示した組み込み機器10の表示処理は終了する。
第2に、図6を参照して、外部端末30により実行される表示処理について説明する。図6に示す表示処理は、外部端末30が正常に動作可能な状態において、制御部31により、適宜繰り返し実行される。
表示処理を開始すると、制御部31は、外部端末30のユーザから操作部33を介して表示の指示を受け付けたか否かを判定する(ステップS31)。表示の指示を受け付けていない場合(ステップS31;NO)、制御部31は、ステップS31に留まり、表示の指示を受け付けるまで待機する。
表示の指示を受け付けた場合(ステップS31;YES)、制御部31は、組み込み機器10から画面データ123を取得する(ステップS32)。具体的に説明すると、制御部31は、通信部35により組み込み機器10と通信し、組み込み機器10の記憶部12に記憶された画面データ123を取得する。
画面データ123を取得すると、制御部31は、外部端末30の記憶部32に外部クッキー322が存在しているか否かを判定する(ステップS33)。外部端末30の初期起動時には、外部クッキー322は存在しないが、2回目以降の起動時には、外部クッキー322は記憶部32に記憶されている。
外部クッキー322が存在していない場合(ステップS33;NO)、制御部31は、取得された画面データ123に含まれる端末用設定情報のデフォルト値を読み込む(ステップS34)。一方で、外部クッキー322が存在している場合(ステップS33;YES)、制御部31は、外部クッキー322を読み込む(ステップS35)。
デフォルト値又は外部クッキー322を読み込むと、制御部31は、取得された画面データ123に基づく表示画面を表示部34に表示する(ステップS36)。制御部11は、例えば図3に示した操作画面を、読み込んだデフォルト値、又は外部クッキー322に含まれる端末用設定情報に従って、表示部34に表示する。
表示画面を表示すると、制御部31は、外部クッキー322を更新する(ステップS37)。具体的に説明すると、制御部31は、ステップS36で表示した表示画面の設定情報を、端末用設定情報として外部クッキー322に保存する。このとき、記憶部32に外部クッキー322が存在しない場合には、制御部31は、外部クッキー322を新たに生成し、ステップS36で表示した表示画面の設定情報を端末用設定情報として外部クッキー322に保存する。以上により、図6に示した外部端末30の表示処理は終了する。
以上説明したように、実施の形態1に係る表示システム1は、組み込み機器10において、画面データ123と、組み込み機器10用に設定済みの機器用設定情報と、を含むファームウェア120を記憶する。そして、組み込み機器10は、画面データ123に基づく表示画面を、機器用設定情報に従って表示する。外部端末30は、組み込み機器10から取得された画面データ123に基づく表示画面を、機器用設定情報とは異なる端末用設定情報に従って表示する。組み込み機器10と外部端末30とで異なる設定情報を用いるため、1つの画面データ123を組み込み機器10と外部端末30との性能に合わせた設定情報で表示することができる。このように、1つの画面データ123で画面表示処理に変化をつけることができるため、組み込み機器10用の画面と外部端末30用の画面とを別々に開発する必要がなくなる。その結果として、画面を二重に開発する労力を軽減することができる。
また、機器用設定情報は、ファームウェア120内に記憶されているため、工場出荷時から簡単に書き換えられない状態で組み込み機器10内に保持される。そのため、組み込み機器10上で表示画面が表示される場合には、性能の劣るブラウザに適した設定情報で表示処理が行われるようにしつつ、外部端末30で表示画面が表示される場合には、外部端末30のブラウザに適した設定情報で表示処理が行われる。これにより、画面の二重開発を必要とせずに、ブラウザの性能差に対応した適切な表示処理を行うことができる。
(実施の形態2)
次に、本開示の実施の形態2について説明する。実施の形態1と同様の構成及び機能については、適宜説明を省略する。
上述した実施の形態1では、機器用設定情報及び端末用設定情報は、アニメーションのフレームレート及びイベントの間引き頻度といった、表示出力用の調整パラメータを定めていた。これに対して、実施の形態2では、機器用設定情報及び端末用設定情報は、高いセキュリティを必要とする機密情報を定める。具体的には、実施の形態2では、機器用設定情報及び端末用設定情報は、ログイン認証済みの認証情報を定める。
一般的に、ブラウザがWebサイトにログイン認証を行う場合、ユーザは、ブラウザの画面でユーザ名及びパスワードを入力する。ユーザからユーザ名及びパスワードが入力されると、ブラウザは、入力されたユーザ名及びパスワードをWebサーバに送信する。Webサーバは、ブラウザから送信されたユーザ名及びパスワードにより認証に成功した場合、ユニークなID値を示すログインクッキーをブラウザに発行する。その後、ブラウザがWebサイトに接続する際、Webサーバにより発行されたログインクッキーのID値をHTTP(Hyper Text Transfer Protocol)ヘッダに指定することで、ログイン認証なしにWebサイトに接続することができる。
実施の形態2では、このようなログインクッキーとして、内蔵クッキー124及び外部クッキー322を使用する。内蔵クッキー124及び外部クッキー322は、ログイン認証済みの認証情報として、ユニークなID値を定める。
組み込み機器10は、工場出荷時において、ログイン認証済みの認証情報であるID値を含む内蔵クッキー124を含むファームウェア120を予め保持しておく。制御部11は、表示の指示を受け付けた場合、ファームウェア120に含まれる画面データ123及び内蔵クッキー124を読み込む。そして、制御部11は、画面データ123に基づく表示画面を、内蔵クッキー124に含まれるログイン認証済みの認証情報に従って、表示部14に表示する。
具体的に説明すると、制御部11は、読み込んだ画面データ123を構成するJavaScriptの機能により、読み込んだ内蔵クッキー124に含まれるID値をHTTPヘッダに設定して、Webサーバ122に送信する。HTTPに正しいID値が設定されている場合、Webサーバ122は、ログイン認証に成功したことを示す応答を返す。
このようにしてログイン認証に成功すると、制御部11は、図3に示した操作画面を、表示部14に表示する。これにより、組み込み機器10を直接操作するユーザは、ユーザ名及びパスワードを入力するというログイン認証の操作をすること無く、組み込み機器10を操作することができる。
一方で、外部端末30において、表示の指示を受け付けた場合、制御部31は、通信ネットワークNによる通信を介して、組み込み機器10から画面データ123を取得する。ここで、外部端末30の初期起動時には外部クッキー322は存在しないため、ログイン認証済みの認証情報は存在しない。また、実施の形態1とは異なり、画面データ123には、端末用設定情報であるログイン認証済みの認証情報のデフォルト値は含まれていない。
このようにログイン認証済みの認証情報が存在しない場合、制御部31は、HTTPヘッダに何も設定せず、そのままWebサーバ122に送信する。この場合、Webサーバ122は、外部端末30に対して、ログイン認証に誘導する。
Webサーバ122からログイン認証に誘導されると、制御部31は、図7に示すログイン認証画面を表示部34に表示する。外部端末30のユーザは、ログイン認証画面において、操作部33を操作してユーザ名とパスワードとを入力することにより、ログイン認証を行う。このようにして、操作部33は、ログイン認証済みの認証情報が外部端末30に存在しない場合、ユーザからログイン認証の操作を受け付ける。
制御部31は、操作部33により受け付けられた操作によりログイン認証に成功した場合、組み込み機器10から取得された画面データ123に基づく表示画面を、表示部34に表示する。具体的には、制御部11は、図3に示した操作画面を、表示部14に表示する。
また、ログイン認証に成功した場合、制御部31は、Webサーバ122から発行されるユニークなID値を、ログイン認証済みの認証情報として、外部クッキー322に保存する。ここで、ID値としてランダムな値が発行されるため、外部クッキー322に含まれるログイン認証済みの認証情報は、内蔵クッキー124に含まれるログイン認証済みの認証情報とは異なる。そのため、内蔵クッキー124に含まれるログイン認証済みの認証情報が、組み込み機器10の外部に流出されないため、セキュリティ上で問題にならない。
次回以降の表示の際は、外部クッキー322が存在する。このように外部クッキー322が存在する場合、制御部31は、組み込み機器10から取得された画面データ123に基づく表示画面を、外部クッキー322に含まれるログイン認証済みの認証情報に従って、表示部14に表示する。これにより、外部端末30を操作するユーザは、2回目以降のログイン認証の際は、ユーザ名及びパスワードを入力すること無く、組み込み機器10を操作することができる。
以上説明したように、実施の形態2に係る表示システム1では、組み込み機器10におけるログイン認証済みの認証情報を、組み込み機器10のファームウェア120内に予め組み込んでおく。これにより、ユーザが組み込み機器10に物理的に接触して直接操作する場合には、ユーザがログイン認証の操作をせずに組み込み機器10を操作することが可能となる。一方で、外部端末30からは、ログイン認証を経由しなければ組み込み機器10の操作ができないようにすることができる。このように、必要とするセキュリティの差に応じて認証処理に変化をつけることができるため、ログイン認証画面を二重に開発する労力を軽減することができる。
また、組み込み機器10の内部に保存されたログイン認証済みの認証情報は、実施の形態1とは異なりそのデフォルト値が画面データ123内に記述されず、組み込み機器10の内部でのみ使用される。そのため、ログイン認証済みの認証情報は通信ネットワークN経由で外部に流出することはなく、高いセキュリティ性を保つことができる。
(実施の形態3)
次に、本開示の実施の形態3について説明する。実施の形態1,2と同様の構成及び機能については、適宜説明を省略する。
上記実施の形態2では、組み込み機器10は、ログイン認証済みの認証情報を含むファームウェア120を記憶していた。しかしながら、ファームウェア120のファイルシステムイメージの形式は一般によく知られているため、ファームウェア120そのものを解析することで、ログイン認証済みの認証情報が知られてしまう可能性がある。そのための対策として、実施の形態3では、組み込み機器10は、ログイン認証済みの認証情報を暗号化して記憶する。
図8に、実施の形態3に係る組み込み機器10の記憶部12の構成を示す。実施の形態3では、記憶部12は、暗号化領域125と、鍵保存領域127と、を含む。暗号化領域125は、ファームウェア120内に含まれる。
暗号化領域125は、暗号鍵128により暗号化された領域である。記憶部12は、暗号化領域125に、内蔵ブラウザ121と、Webサーバ122と、画面データ123と、内蔵クッキー124と、を記憶する。言い換えると、実施の形態3では、ファームウェア120のファイルシステムを、暗号化ファイルシステムとして作成する。
これにより、内蔵クッキー124に含まれる機器用設定情報であるログイン認証済みの認証情報は、暗号化されて記憶部12に記憶される。そのため、ログイン認証済みの認証情報は、暗号鍵128が無いと解析されない状態で組み込み機器10内に保持される。その結果として、セキュリティ性を高めることができる。
また、記憶部12は、起動用ファームウェア126を記憶する。起動用ファームウェア126は、組み込み機器10を起動させるためのファームウェアである。ファームウェア120全体を暗号化すると、組み込み機器10を起動することができなくなる。そのため、起動用ファームウェア126は、ファームウェア120内の暗号化領域125以外の領域に記憶され、暗号化されてない。
ここで、起動用ファームウェア126内に暗号鍵128が含まれると、起動用ファームウェア126そのものを解析することで暗号鍵128を外部から読み取られるおそれがある。そこで、記憶部12は、機密データ用の保存領域として別に設けられた鍵保存領域127に、暗号鍵128を記憶する。起動用ファームウェア126は、組み込み機器10を起動する際に、鍵保存領域127から暗号鍵128を読み取り、暗号化領域125に記憶された内蔵クッキー124を含むデータを復号する。
鍵保存領域127の例として、セキュリティチップが挙げられる。セキュリティチップは、TPM(Trusted Platform Module)とも呼ばれ、耐タンパー性を備え、高いセキュリティを有する。そのため、セキュリティチップに格納されているデータは、外部から読み取ることは難しい。
なお、鍵保存領域127としてセキュリティチップを使用する場合、追加のハードウェアコストが必要となる。一方で、組み込み機器10が採用するCPUによっては、追加のハードウェアなしに、CPUの機能として、機密データを安全に保存する機能を有するものがある。例えば、組み込み機器10のCPUとしてARM(商標)を使用する場合、ARM Trusted Firmwareと呼ばれる機能を利用することができる。ARM Trusted Firmwareは、組み込み機器10内の不揮発メモリに、データを暗号化して格納する機能を有する。このようなデータを暗号化して格納する不揮発性メモリを鍵保存領域127として使用して、暗号鍵128を保存しても良い。
(実施の形態4)
次に、本開示の実施の形態2について説明する。実施の形態1~3と同様の構成及び機能については、適宜説明を省略する。
組み込み機器10で使用するファイルシステムは、一般的に、組み込み機器10の出荷後に不用意にソフトウェアが変更されないように、読み取り専用ファイルシステムを使用することが多い。例えば、組み込み機器10のオペレーティングシステムとしてLinux(登録商標)を採用した場合、読み取り専用ファイルシステムとして、SquashFSが使用される。この場合、内蔵クッキー124に含まれる機器用設定情報を変更することができない。しかしながら、機器用設定情報を、出荷後に変更したいことがある。そこで、実施の形態4では、制御部11は、オーバーレイファイルシステムを用いて、内蔵クッキー124に含まれる機器用設定情報を更新する。
オーバーレイファイルシステムは、読み取り専用のディレクトリツリーの上に読み書き可能なディレクトリツリーを重ねることで、読み取り専用ファイルの更新に対応することが可能な仕組みである。組み込み機器10のオペレーティングシステムとしてLinux(登録商標)を採用した場合、オーバーレイファイルシステムとして、ОverlayFSが挙げられる。
図9に示すように、オーバーレイファイルシステムは、読み取り専用ファイルシステムの上に被せるように存在する。オーバレイファイルファイルシステムは、初期状態では、空の状態となっている。内蔵ブラウザ121がファイルの読み取りを要求すると、上位層のオーバーレイファイルシステムが空である場合、下位層の読み取り専用ファイルシステムに存在する内蔵クッキー124がそのまま返される。
ユーザから操作部13により機器用設定情報を更新する指示が受け付けられると、制御部11は、このようにして読み取り専用ファイルシステムから内蔵クッキー124を読み取る。そして、制御部11は、読み取られた内蔵クッキー124に含まれる機器用設定情報を、ユーザから操作部13により受け付けられた操作に従って更新する。これにより、制御部11は、内蔵クッキー124を更新し、更新後の内蔵クッキー124aを生成する。
更新後の内蔵クッキー124aを保存する場合、図10に示すように、制御部11は、内蔵ブラウザ121により、更新後の内蔵クッキー124aを上位層のオーバーレイファイルシステムに保存する。以降、内蔵ブラウザ121が同じファイルの読み取りを要求すると、下位層の読み取り専用ファイルシステムにある初期状態の内蔵クッキー124ではなく、上位層のオーバーレイファイルシステムにある更新後の内蔵クッキー124aが読み取られる。そのため、内蔵クッキー124が内蔵クッキー124aに更新された後、制御部11は、画面データ123に基づく表示画面を、更新後の内蔵クッキー124aに含まれる機器用設定情報に従って、表示部34に表示する。
なお、更新後の内蔵クッキー124aを工場出荷時の内蔵クッキー124に戻したいときは、上位層のオーバーレイファイルシステムを空の状態にすればよい。上位層のオーバーレイファイルシステムは、RAMディスクとしてメモリ上にのみ存在する場合もあれば、不揮発メモリに存在する場合もある。オーバーレイファイルシステムをRAMディスクに作成した場合は、組み込み機器10の再起動又は電源オフにより、更新後の内蔵クッキー124aが消えるため、工場出荷状態に戻る。
一方で、オーバーレイファイルシステムを不揮発メモリに作成した場合、単純に更新後の内蔵クッキー124aを削除すると、初期の内蔵クッキー124を読み取り専用ファイルシステムに残したまま、初期の内蔵クッキー124が削除されたと扱われる。そのため、オーバーレイファイルシステムを工場出荷状態に戻すには、オーバーレイファイルシステムで用意された専用アプリを使用する。或いは、オーバーレイファイルシステムを組み込み機器10で使用可能にする前、すなわちオーバーレイファイルシステムのマウント前に、オーバーレイファイルシステムとして使用する不揮発メモリの領域をクリアすることで、工場出荷状態に戻る。
なお、オーバーレイファイルシステムに限らず、他の方法で機器用設定情報を更新しても良い。例えば、内蔵ブラウザ121とWebサーバ122と画面データ123とを含む読み取り専用ファイルシステムとは別に、読み書き可能な別のファイルシステムを用意し、内蔵クッキー124は、読み書き可能なファイルシステムに保存してもよい。この方法では、工場出荷時の内蔵クッキー124は書き換えられるため保護されない。
また、画面データ123の1つに、組み込み機器10の設定を行うWeb画面を用意してもよい。そして、組み込み機器10の内蔵ブラウザ121から内蔵クッキー124に含まれる機器用設定情報を変更できるが、外部端末30の外部ブラウザ321からは機器用設定情報を変更できないようにしても良い。そのため、制御部11は、組み込み機器10の設定を行うWeb画面そのものを、外部ブラウザ321で表示しないようにしても良い。或いは、制御部11は、外部ブラウザ321からの接続が検出された場合、組み込み機器10の設定を行うWeb画面のうちの内蔵クッキー124の設定変更に相当する部分を表示しないようにしても良い。更に、制御部11は、内蔵クッキー124を変更する場合、不用意に変更すると動作異常を起こすといった警告を表示しても良い。
(変形例)
以上、実施の形態を説明したが、各実施の形態を組み合わせたり、各実施の形態を適宜、変形、省略したりすることが可能である。
例えば、上記実施の形態では、機器用設定情報及び端末用設定情報は、内蔵クッキー124及び外部クッキー322に保存されて使用された。しかしながら、クッキーの代わりに、ローカルストレージを使用しても、同様の効果を得ることができる。ローカルストレージは、Webの仕様の1つであるHTML5で導入された、ブラウザに固有の情報をブラウザと同一機器に保存する仕組みである。
上記実施の形態1では、機器用設定情報及び端末用設定情報は、表示出力用の調整パラメータとして、アニメーションのフレームレート、及び、イベントの間引き頻度を定めていた。しかしながら、表示出力用の調整パラメータは、これらのうちのいずれか1つのみであっても良いし、これらに限らず、他のパラメータであっても良い。また、上記実施の形態2では、機器用設定情報及び端末用設定情報は、ログイン認証済みの認証情報を定めていたが、ログイン認証済みの認証情報以外の機密情報を定めるものであっても良い。
上記実施の形態では、組み込み機器10は、空調コントローラであった。しかしながら、組み込み機器10は、これに限らず、給湯機、炊飯器、洗濯機、冷蔵庫、テレビ等の電子機器であっても良いし、これらを操作するためのコントローラであっても良い。
上記実施の形態では、制御部11,31において、CPUが記憶部12,32に記憶されたプログラムを実行することによって機能した。しかしながら、制御部11,31は、専用のハードウェアであってもよい。専用のハードウェアとは、例えば単一回路、複合回路、プログラム化されたプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、又は、これらの組み合わせ等である。制御部11,31が専用のハードウェアである場合、各部の機能それぞれを個別のハードウェアで実現してもよいし、各部の機能をまとめて単一のハードウェアで実現してもよい。
また、各部の機能のうち、一部を専用のハードウェアによって実現し、他の一部をソフトウェア又はファームウェアによって実現してもよい。このように、制御部11,31は、ハードウェア、ソフトウェア、ファームウェア、又は、これらの組み合わせによって、上述の各機能を実現することができる。
組み込み機器10及び外部端末30のそれぞれの動作を規定するプログラムを、パーソナルコンピュータ、情報端末装置等の既存のコンピュータに適用することで、当該コンピュータを、組み込み機器10及び外部端末30のそれぞれとして機能させることも可能である。
また、このようなプログラムの配布方法は任意であり、例えば、CD-ROM(Compact Disk ROM)、DVD(Digital Versatile Disk)、MO(Magneto Optical Disk)、メモリカード等のコンピュータ読み取り可能な記録媒体に格納して配布してもよいし、インターネット等の通信ネットワークを介して配布してもよい。
本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、この開示を説明するためのものであり、本開示の範囲を限定するものではない。すなわち、本開示の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして特許請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、この開示の範囲内とみなされる。