(57)【特許請求の範囲】
【請求項１】
ファームウェア取得要求と自装置の設置場所に関する情報とを送出する第１の装置と、
前記第１の装置からネットワークを介して前記ファームウェア取得要求と前記設置場所に関する情報とを受け取ると、前記設置場所に関する情報に応じて、第１のファームウェアまたは該第１のファームウェアのうち所定の処理を含まない第２のファームウェアを前記第１の装置に配信する配信装置と
を備え、
前記第１の装置は、
前記配信装置から前記第２のファームウェアを受け取ると、前記第１のファームウェアのうち前記第２のファームウェアに含まれない前記所定の処理を、ネットワークを介して通信可能な代行装置が実行するように制御し、
前記代行装置からの指示に応じて、前記第２のファームウェアに含まれる、自装置に含まれるセンサにアクセスする処理とそのアクセスにより取得したデータを前記代行装置に送信する処理とを実行する
ファームウェア配信システム。
【請求項２】
前記代行装置は、前記第１のファームウェアのうち前記第２のファームウェアに含まれない前記所定の処理を実行すると共に、前記第１の装置に含まれるセンサのデータが必要な場合に前記第１の装置に該データの取得を指示する
請求項１記載のファームウェア配信システム。
【請求項３】
ファームウェア取得要求と自装置の設置場所に関する情報とを送出する第１の装置と、
前記第１の装置からネットワークを介して前記ファームウェア取得要求と前記設置場所に関する情報とを受け取ると、前記設置場所に関する情報に応じて、第１のファームウェアまたは該第１のファームウェアのうち所定の処理を含まない第２のファームウェアを前記第１の装置に配信する配信装置と
を備え、
前記第１の装置は、前記配信装置から前記第２のファームウェアを受け取ると、前記第１のファームウェアのうち前記第２のファームウェアに含まれない前記所定の処理を、ネットワークを介して通信可能な代行装置が実行するように制御し、
前記代行装置は、前記第１のファームウェアのうち前記第２のファームウェアに含まれない前記所定の処理を実行すると共に、前記第１の装置が備えるセンサのデータが必要な場合に前記第１の装置に該データの取得を指示する
ファームウェア配信システム。
【請求項４】
前記第１の装置は、前記配信装置から前記第２のファームウェアを受け取ると、該第２のファームウェアに含まれる、前記代行装置からの指示に応じて自装置に含まれるセンサにアクセスする処理と、そのアクセスにより取得したデータを前記代行装置に送信する処理とを実行する
請求項３記載のファームウェア配信システム。
【請求項５】
前記配信装置は、前記第１の装置の設置場所に関する情報と、該設置場所に応じて前記第１のファームウェアまたは前記第２のファームウェアを、関連付けたファームウェア情報を記憶する記憶手段
を備えた請求項１乃至４のいずれか１項記載のファームウェア配信システム。
【請求項６】
第１の装置は、ファームウェア取得要求と自装置の設置場所に関する情報とを送出し、
配信装置は、前記第１の装置からネットワークを介して前記ファームウェア取得要求と前記設置場所に関する情報とを受け取ると、前記設置場所に関する情報に応じて、第１のファームウェアまたは該第１のファームウェアのうち所定の処理を含まない第２のファームウェアを前記第１の装置に配信し、
前記第１の装置は、前記配信装置から前記第２のファームウェアを受け取ると、前記第１のファームウェアのうち前記第２のファームウェアに含まれない前記所定の処理を、ネットワークを介して通信可能な代行装置が実行するように制御し、
前記第１の装置は、前記代行装置からの指示に応じて、前記第２のファームウェアに含まれる、自装置に含まれるセンサにアクセスする処理とそのアクセスにより取得したデータを前記代行装置に送信する処理とを実行する
ファームウェア配信方法。
【請求項７】
前記代行装置は、前記第１のファームウェアのうち前記第２のファームウェアに含まれない前記所定の処理を実行すると共に、前記第１の装置に含まれるセンサのデータが必要な場合に前記第１の装置に該データの取得を指示する
請求項６記載のファームウェア配信方法。
【請求項８】
第１の装置は、ファームウェア取得要求と自装置の設置場所に関する情報とを送出し、
配信装置は、前記第１の装置からネットワークを介して前記ファームウェア取得要求と前記設置場所に関する情報とを受け取ると、前記設置場所に関する情報に応じて、第１のファームウェアまたは該第１のファームウェアのうち所定の処理を含まない第２のファームウェアを前記第１の装置に配信し、
前記第１の装置は、前記配信装置から前記第２のファームウェアを受け取ると、前記第１のファームウェアのうち前記第２のファームウェアに含まれない前記所定の処理を、ネットワークを介して通信可能な代行装置が実行するように制御し、
前記代行装置は、前記第１のファームウェアのうち前記第２のファームウェアに含まれない前記所定の処理を実行すると共に、前記第１の装置に含まれるセンサのデータが必要な場合に前記第１の装置に該データの取得を指示する
ファームウェア配信方法。
【請求項９】
前記第１の装置は、前記配信装置から前記第２のファームウェアを受け取ると、該第２のファームウェアに含まれる、前記代行装置からの指示に応じて自装置に含まれるセンサにアクセスする処理と、そのアクセスにより取得したデータを前記代行装置に送信する処理とを実行する
請求項８記載のファームウェア配信方法。
【請求項１０】
前記配信装置は、前記第１の装置の設置場所に関する情報と、該設置場所に応じて前記第１のファームウェアまたは前記第２のファームウェアを、関連付けたファームウェア情報を記憶手段に記憶する
請求項６乃至９のいずれか１項記載のファームウェア配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組込装置に対するファームウェアの配信に関する。
【背景技術】
【０００２】
クラウドサービスやビッグデータを活用するサービスの台頭により、様々な機器から情報をサーバに収集し、ユーザに有用な情報を提供するサービスが増えている。例えば、コンピュータのような情報・通信機器だけでなく、様々な物に通信機能を持たせ、インターネットに接続したり相互に通信したりすることにより、自動認識や自動制御、遠隔計測などを行うＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）と呼ばれる仕組みが活用されるようになってきている。
【０００３】
ＩｏＴにおいては、上記のような通信機能を持った機器（以降、「ＩｏＴ機器」とも称する）からは、例えば、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）を用いた位置情報、温度計による温度情報、加速度センサによる加速度や速度、スマートメータによる電力消費量などがサーバに収集される。ＩｏＴでは、これらの膨大なデータを収集すると共に解析して、有用な情報をユーザに提供している。
【０００４】
ＩｏＴ機器のような組込装置では、通常、ハードウェアだけではなく、装置の動作を制御するファームウェアを使用することで、その機能を実現している。この場合、ファームウェアは、組込装置がその機能を果たすための重要なロジックを実装しているケースが多い。
【０００５】
近年、ＩｏＴ機器などの組込装置が様々な場面において広く使われるようになったことに伴い、組込装置において動作しているファームウェアをコピーして解析されることによる、技術流出の問題が指摘されている。
【０００６】
関連する技術として、例えば、特許文献１には、情報処理装置の配置された地域を考慮しない場合と比較して、情報処理装置に適切なサーバ装置からファイルを取得させることのできる管理サーバ用プログラムが開示されている。
【０００７】
また、特許文献２には、故障しているコンピューティングデバイスに常駐しているファームウェアを介して、サービスプロバイダ技術者に、故障しているコンピューティングデバイスの診断、修理および最適化を行わせる技術が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１１−１９７７９１号公報
【特許文献２】特開２０１１−１７５６２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述のように、ＩｏＴ機器などの組込装置においてファームウェアを動作させる場合、ファームウェアをあらかじめ組込装置に書き込んでおき、それをメモリに読み出して実行させる。そのため、組込装置の設置場所によっては、組込装置に書き込まれたファームウェアをコピーして解析されることによって技術流出してしまう虞があるという課題がある。
【００１０】
上述した特許文献１には、通信を行うことが可能なサーバのうち、輸出規制等に応じて、配置された国の複合機に適用することが可能なファームウェアを記憶しているサーバを抽出する技術は開示されるが、設置場所に因って技術流出の虞があるという問題を解決する技術は開示されていない。
【００１１】
また、特許文献２にも、設置場所に因って技術流出の虞があるという問題を解決する技術は開示されていない。
【００１２】
本願発明は、上記課題を鑑みてなされたものであり、装置に関する技術流出を防ぐことができるファームウェア配信システム等を提供することを主要な目的とする。
【課題を解決するための手段】
【００１３】
本発明の第１のファームウェア配信システムは、ファームウェア取得要求と自装置の設置場所に関する情報とを送出する第１の装置と、前記第１の装置からネットワークを介して前記ファームウェア取得要求と前記設置場所に関する情報とを受け取ると、前記設置場所に関する情報に応じて、第１のファームウェアまたは該第１のファームウェアのうち所定の処理を含まない第２のファームウェアを前記第１の装置に配信する配信装置とを備える。
【００１４】
本発明の第１の配信装置は、ネットワークを介して通信可能な第１の装置の設置場所に関する情報と、該設置場所に応じて第１のファームウェアまたは該第１のファームウェアのうち所定の処理を含まない第２のファームウェアとを、関連付けたファームウェア情報を記憶する記憶手段と、ネットワークを介して前記第１の装置からファームウェア取得要求と自装置の設置場所に関する情報とを受け取ると、該受け取った設置場所に関する情報と前記ファームウェア情報とに基づいて、前記第１のファームウェアおよび前記第２のファームウェアのいずれを前記第１の装置に配信するかを決定する決定手段とを備える。
【００１５】
本発明の第１のファームウェア配信方法は、第１の装置が、ファームウェア取得要求と自装置の設置場所に関する情報とを送出し、配信装置が、前記第１の装置からネットワークを介して前記ファームウェア取得要求と前記設置場所に関する情報とを受け取ると、前記設置場所に関する情報に応じて、第１のファームウェアまたは該第１のファームウェアのうち所定の処理を含まない第２のファームウェアを前記第１の装置に配信する。
【００１６】
本発明の第２のファームウェア配信方法は、ネットワークを介して、所定の処理を含まない第２のファームウェアを配信装置から受け取ると、前記所定の処理を、ネットワークを介して通信可能な代行装置が実行するように制御する。
【００１７】
なお同目的は、上記の各構成を有する第２のファームウェア配信方法を、コンピュータによって実現するコンピュータ・プログラム、およびそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【００１８】
本願発明によれば、装置に関する技術流出を防ぐことができるファームウェア配信システム等を提供することができるという効果が得られる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態に係るファームウェア配信システムの構成を示すブロック図である。
【図２】本発明の第２の実施形態に係るファームウェア配信システムの構成を示すブロック図である。
【図３】本発明の第２の実施形態に係るファームウェア配信システムのＦＷ配信装置と組込装置の動作を示す図である。
【図４】本発明の第２の実施形態に係るファームウェア配信システムのＦＷ記憶部に格納された出荷地域情報（ａ）と、ファームウェア情報（ｂ）を示す図である。
【図５】本発明の第２の実施形態に係るファームウェア配信システムの組込装置が代替ファームウェアを受信した場合の動作を示す図である。
【図６】各実施形態に示した装置を実現するハードウエア構成の一例を示す図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【００２１】
第１の実施形態
図１は、本発明の第１の実施形態に係るファームウェア配信システム１の構成を示すブロック図である。図１に示すように、ファームウェア配信システム１は、第１の装置２と、配信装置３とを備える。
【００２２】
第１の装置２は、ファームウェア取得要求と自装置の設置場所に関する情報とを送出する。
【００２３】
配信装置３は、第１の装置２からネットワークを介してファームウェア取得要求と設置場所に関する情報とを受け取ると、設置場所に関する情報に応じて、第１のファームウェアまたは該第１のファームウェアのうち所定の処理を含まない第２のファームウェアを第１の装置２に配信する。
【００２４】
上記構成を採用することにより、本第１の実施形態によれば、第１の装置２の設置場所に応じたファームウェアを配信できるので、装置に関する技術流出を防ぐことができるという効果が得られる。
【００２５】
第２の実施形態
図２は、本発明の第２の実施形態に係るファームウェア配信システム１００の構成を示すブロック図である。ファームウェア配信システム１００は、ＦＷ（ＦｉｒｍＷａｒｅ：ファームウェア）配信装置１１０、ＦＷ代行装置１２０および組込装置１３０が、互いにネットワーク２００を介して通信可能に接続されて構成される。ＦＷ代行装置１２０は、ＦＷ配信装置１１０に含まれてもよい。またネットワーク２００には、ホストコンピュータ１４０が通信可能に接続されていてもよい。
【００２６】
ＦＷ配信装置１１０は、配信ＦＷ決定部１１１、ＦＷ配信部１１２、通信部１１３およびＦＷ記憶部１１４を備える。ＦＷ代行装置１２０は、ＦＷ実行部１２１、通信部１２２を備える。組込装置１３０は、通信部１３１、ＦＷ実行部１３２、メモリ１３３およびデバイス群１３４を備える。ホストコンピュータ１４０は、通信部１４１および処理部１４２を備える。
【００２７】
ＦＷ配信装置１１０、ＦＷ代行装置１２０、組込装置１３０およびホストコンピュータ１４０は、それぞれ、通信部１１３、１２２、１３１および１４１により、互いにネットワーク２００を介して通信を行う。
【００２８】
各装置の構成要素の概要について説明する。
【００２９】
組込装置１３０は、ＩｏＴ機器などであり、例えば、ＧＰＳから位置情報を取得するデバイス、温度計から温度情報を取得するデバイス、監視カメラから画像情報を取得するデバイス、または加速度センサなど、各種情報を取得するデバイス群１３４を含む。組込装置１３０は、第１の装置の一例である。
【００３０】
ＦＷ実行部１３２は、ＦＷ配信装置１１０に対して、自装置の設置場所に関する情報を含むＦＷ配信要求を送信すると共に、そのＦＷ配信要求に応じて受信したＦＷを、メモリ１３３に読み出して実行する。
【００３１】
ＦＷ配信装置１１０は、組込装置１３０に対してファームウェアを配信する装置である。このとき、ＦＷ配信装置１１０は、組込装置１３０の設置場所に応じて、配信するファームウェアを決定する。すなわち、ＦＷ配信装置１１０は、組込装置１３０が技術流出の虞があると判断される地域に設定されている場合と、その虞が無いと判断される地域に設置されている場合とで、異なるファームウェアを配信する。技術流出の虞がある地域に設置された組込装置１３０には、演算処理等のロジックを含むファームウェアを配信しないことで、技術流出を防ぐ。ＦＷ配信装置１１０は、配信装置の一例である。
【００３２】
ＦＷ配信装置１１０のＦＷ配信部１１２は、通信部１１３がネットワーク２００を介して組込装置１３０から取得したＦＷ配信要求を、ＦＷ配信部１１２に通知する。ＦＷ配信部１１２は、ＦＷ配信要求を受けると、それを配信ＦＷ決定部１１１に通知する。配信ＦＷ決定部１１１は、ＦＷ配信要求に含まれる情報に基づいて、ＦＷ記憶部１１４に格納される通常ファームウェアおよび代替ファームウェア（詳細は後述する）のいずれを組込装置１３０に配信するかを決定する。
【００３３】
ＦＷ代行装置１２０は、組込装置１３０と対応付けられており、組込装置１３０に代替ファームウェアが配信された場合に、組込装置１３０のファームウェアにより本来実行される処理を代行する装置である。ＦＷ実行部１２１は、組込装置１３０のファームウェアに基づく処理の実行を代行する。ＦＷ代行装置１２０は、代行装置の一例である。
【００３４】
ホストコンピュータ１４０は、通信部１４１においてＦＷ代行装置１２０または組込装置１３０からデータを受信し、処理部１４２において予め設定された処理を行う。
【００３５】
ＦＷ配信装置１１０およびＦＷ代行装置１２０は、技術流出の虞がない国や地域に配置されており、組込装置１３０は技術流出の虞がない国や地域に配置されているとは限らないとする。
【００３６】
図３は、ＦＷ配信装置１１０と組込装置１３０の動作を示す図である。図３を参照して、ＦＷ配信装置１１０と組込装置１３０の動作について説明する。
【００３７】
組込装置１３０のＦＷ実行部１３２は、起動すると（Ｓ２０１）、通信部１３１からネットワーク２００を介して、自装置の設置場所に関する情報を含むＦＷ配信要求を、ＦＷ配信装置１１０に送信する（Ｓ２０２）。ＦＷ配信装置１１０は、ネットワーク２００を介して通信部１１３においてＦＷ配信要求を受信すると、そのＦＷ配信要求をＦＷ配信部１１２に通知する。
【００３８】
ＦＷ配信部１１２は、ファームウェアの配信要求を検出すると（Ｓ２０３）、配信ＦＷ決定部１１１にファームウェアの決定を指示する。配信ＦＷ決定部１１１は、ＦＷ配信要求に含まれる、送信元の組込装置１３０の設置場所に関する情報に基づいて、配信するファームウェアを決定する（Ｓ２０４）。
【００３９】
このとき、配信ＦＷ決定部１１１は、ＦＷ記憶部１１４に格納された出荷地域情報とファームウェア情報を参照する。図４は、ＦＷ記憶部１１４に格納された出荷地域情報（ａ）と、ファームウェア情報（ｂ）を示す図である。また、ＦＷ記憶部１１４には、ファームウェアの種類に応じたファイル情報（ｃ）も格納される。
【００４０】
ここでは、組込装置１３０は、自装置の設置場所に関する情報として、製品のシリアル番号をＦＷ配信装置１１０に送出した場合について説明する。すなわち、組込装置１３０のシリアル番号ごとに出荷地域を予め決めておき、技術流出の虞の有無に応じて、出荷地域ごとにファームウェアの種類を予め定めておく。
【００４１】
図４（ａ）に示すように、ＦＷ記憶部１１４には、シリアル番号の範囲と、それに対応する出荷地域番号とを含む出荷地域情報が含まれる。ＦＷ記憶部１１４には、また、図４（ｂ）に示すように、出荷地域番号に対応するファームウェアの種類を示す情報が含まれる。さらに、ＦＷ記憶部１１４には、図４（ｃ）に示すように、ファームウェアのプログラムコードが記述されたファイルが格納される。
【００４２】
ここで、ファームウェアの種類には、通常ファームウェアと代替ファームウェアがある。通常ファームウェアとは、第１のファームウェアの一例であって、組込装置１３０の機能を実現するために必要となる機能を全て（またはほぼ全て）実装したファームウェアである。代替ファームウェアは、第２のファームウェアの一例であって、通常ファームウェアのうち所定の処理、例えば演算処理を含まず、センサなどのデバイス群１３４へのアクセス手段など予め決められた最低限の機能のみを実装したファームウェアである。
【００４３】
配信ＦＷ決定部１１１は、ＦＷ配信要求に含まれるシリアル番号に基づいて、通常ファームウェアおよび代替ファームウェアのうち配信するファームウェアを決定する。例えば、シリアル番号「００２０１０」を取得した場合、配信ＦＷ決定部１１１は、出荷地域情報（ａ）から出荷地域番号「３」を読み出す。そして配信ＦＷ決定部１１１は、ファームウェア情報（ｂ）から出荷地域番号「３」に対応するファームウェアの種類として、「代替ファームウェア」を選択する。
【００４４】
続いて、ＦＷ配信部１１２は、配信ＦＷ決定部１１１により選択されたファームウェアのファイル（ここでは、「ファイル２」）を、通信部１１３からネットワーク２００を介して組込装置１３０に配信する（Ｓ２０５）。
【００４５】
組込装置１３０は、通信部１３１においてファームウェアを受信すると（Ｓ２０６）、ＦＷ実行部１３２は、そのファームウェアをメモリ１３３に読み出して実行する（Ｓ２０７）。
【００４６】
組込装置１３０は、通常ファームウェアを受信した場合、その通常ファームウェアにしたがって、組込装置１３０の機能を実現するために必要な処理を単体で実行する。通常ファームウェアにより実行される処理は、一般的なＩｏＴ機器と同様に、センサなどのデバイス群１３４へのアクセスや、演算処理、必要に応じて外部のホストコンピュータ１４０へのデータの受け渡しなどである。
【００４７】
一方、組込装置１３０は、代替ファームウェアを受信した場合、組込装置１３０の機能を実現するために必要な処理は、ＦＷ代行装置１２０が行う。そのため、代替ファームウェアが組込装置１３０に配信された場合には、ＦＷ代行装置１２０と組込装置１３０は、通信を行いながら動作する。
【００４８】
したがって、組込装置１３０に配信される代替ファームウェアには、組込装置１３０がＦＷ代行装置１２０と連携しながら動作する処理が含まれる。また、ＦＷ代行装置１２０は、組込装置１３０と対応付けられており、組込装置１３０において本来実行される演算処理などの処理と、組込装置１３０と連携するための処理（例えばアクセス処理など）を含むプログラムコードが記述されたファイル等を予め保持している。ＦＷ実行部１２１は、組込装置１３０からの指示に応じて、保持しているプログラムコードに基づいて処理を実行する。
【００４９】
図５は、組込装置１３０が代替ファームウェアを受信した場合の動作を示す図である。図５を参照して、組込装置１３０が代替ファームウェアを受信した場合の動作について説明する。
【００５０】
組込装置１３０のＦＷ実行部１３２は、受信した代替ファームウェアにしたがって、処理を実行する（Ｓ３０１）。ＦＷ実行部１３２は、代替ファームウェアの実行において、演算処理など、デバイス群１３４へのアクセス処理以外の、代行が必要な処理（以降、「代行処理」とも称する）を検出した場合（Ｓ３０２においてＹｅｓ）、ＦＷ代行装置１２０に、代行が必要な処理を実行する指示を出す。ＦＷ代行装置１２０は、通信部１２２において上記指示を受けると、ＦＷ実行部１２１にて必要な処理を実行する（Ｓ３０３）。
【００５１】
ＦＷ実行部１２１は、代行処理の実行中に、デバイス群１３４へのアクセス処理を検出した場合（Ｓ３０４においてＹｅｓ）、通信部１２２からネットワーク２００を介して組込装置１３０にデバイス群１３４へのアクセスを指示する。
【００５２】
組込装置１３０は、通信部１３１において上記指示を受け取ると、ＦＷ実行部１３２がＦＷ配信装置１１０から受信していた、デバイス群１３４へのアクセス処理を含む代替ファームウェアを実行する。これにより、ＦＷ実行部１３２は、デバイス群１３４へのアクセスを行い（Ｓ３０５）、デバイス群１３４からデータを取得する（Ｓ３０６）。
【００５３】
ＦＷ実行部１３２は、取得したデータを、代替ファームウェア実行により通信部１３１からＦＷ代行装置１２０に送信する。ＦＷ代行装置１２０のＦＷ実行部１２１は、通信部１２２からデバイス群１３４のデータを取得し（Ｓ３０７）、ＦＷ実行部１２１において、そのデータを用いてプログラムコードに基づく代行処理の実行を続ける（Ｓ３０８）。代行処理の結果、組込装置１３０のデバイス群１３４へのアクセスが必要な場合、ＦＷ実行部１２１は、再度、組込装置１３０にデバイス群１３４へのアクセスを要求してもよい。
【００５４】
ＦＷ実行部１２１は、また、代行処理の実行において、ホストコンピュータ１４０へのアクセス指示、例えばデータの送信処理を検出した場合（Ｓ３０９においてＹｅｓ）、通信部１２２からネットワーク２００を介してホストコンピュータ１４０にデータを送信する。ホストコンピュータ１４０は、受信したデータを用いて処理を実行する（Ｓ３１０）。
【００５５】
なお、ホストコンピュータ１４０にデータへの送信が必要な場合、上述のようにＦＷ代行装置１２０からホストコンピュータ１４０に送信することに限定されない。例えば、ＦＷ代行装置１２０は、組込装置１３０のＦＷ実行部１３２が実行中の代替ファームウェアに、送信するデータをコピーし、ＦＷ実行部１３２が代替ファームウェアを実行することでホストコンピュータ１４０に送信してもよい。
【００５６】
以上のように、本第２の実施形態によれば、組込装置１３０の設置場所に応じて、ＦＷ配信装置１１０は、組込装置１３０の機能を実現するために必要となる機能を全て実装した通常ファームウェア、または、演算処理などは含まず、センサなどのデバイス群１３４へのアクセス処理などの最低限の機能のみを実装した代替ファームウェアを、組込装置１３０に配信する。代替ファームウェアが組込装置１３０に配信された場合、組込装置１３０の機能の実現に必要な機能は、ＦＷ代行装置１２０が行う。
【００５７】
この構成を採用することにより、本第２の実施形態によれば、知的財産保護の観点から設置が難しかった国や地域にも、技術流出を防ぎながら組込装置１３０を設置することができるという効果が得られる。
【００５８】
なお、上記では、予め生成されてＦＷ記憶部１１４に格納された出荷地域情報とファームウェア情報とに基づいて、ファームウェアの種類を決定することを説明したが、これに限定されない。例えば、配信ＦＷ決定部１１１は、ＦＷ配信要求の送信元の組込装置１３０またはネットワーク２００への接続時のアクセスポイントのネットワークアドレスに基づいて、組込装置１３０が出荷された国や地域を特定してもよい。この場合、配信ＦＷ決定部１１１は、国や地域ごとに技術流出の虞があるか否かを予め定めた規定にしたがって、出荷された国や地域に応じた種類のファームウェアを決定してもよい。
【００５９】
あるいは、組込装置１３０のデバイス群１３４に、ＧＰＳなど組込装置１３０の設置場所を検出できるデバイスが含まれている場合、ＦＷ実行部１３２は、予めそのデバイスから位置情報を取得しておいてもよい。そして、ＦＷ実行部１３２は、ＦＷ配信要求と共に、取得した位置情報をＦＷ配信装置１１０に送信してもよい。位置情報は、例えば、組込装置１３０の緯度および経度でもよい。配信ＦＷ決定部１１１は、緯度および経度に応じた技術情報流出の虞の有無を予め定めた規定にしたがって、虞がある場合は代替ファームウェアを、虞がない場合は通常ファームウェアを、それぞれ配信するように決定してもよい。
【００６０】
また、上記では、組込装置１３０の設置後に、通常ファームウェアを配信するか、代替ファームウェアを配信するかを判断することを説明したが、これに限定されない。例えば、組込装置１３０の開発時において、他国で組込装置１３０のハードウェアを製造し、そのファームウェアを国内で開発する際の動作確認などにも適用することが可能である。
【００６１】
ＩｏＴ機器などの組込装置は、装置の回路そのものなど、ハードウェアの開発はコストの安い他国の企業に発注するケースが増えているが、ファームウェアの開発は、ライセンスの問題や、技術流出を防ぐ観点などから、国内の自社拠点で実施するケースが多い。
【００６２】
このようなケースでは、開発中のファームウェアを、実機のハードウェアで評価を行うので、定期的にハードウェアの試作品を輸入して評価を行う方式が一般的である。しかしながら、この場合、以下のような問題が発生する。すなわち、輸入コストがかかったり、評価時に検出したハードウェアの不具合を、ハードウェア開発の発注先へフィードバックするのに時間がかかったりするといった問題である。
【００６３】
したがって、ファームウェア配信システム１００を、このようなケースに適用することで、コストを削減することができる。すなわち、他国で開発中の組込装置１３０のハードウェアを評価する際、ＦＷ配信装置１１０は、組込装置１３０に対して、代替ファームウェアを配信する。
【００６４】
そして、国内に設置したＦＷ代行装置１２０により、上述のような組込装置１３０の通常のファームウェアの処理を実行させる。この動作により、上記問題を解決すると共に、ファームウェアの技術の流出を防ぐことが可能となる。
【００６５】
なお、この場合、組込装置１３０のハードウェアの開発完了後には、ＦＷ実行部１３２は不要となる。したがって、組込装置１３０の出荷時には、通常ファームウェアを書き込んだのちに出荷することになる。
【００６６】
上記実施形態におけるファームウェア配信システム１００において、ＦＷ代行装置１２０および組込装置１３０は、それぞれ１装置ずつ含まれることを説明したが、これに限定されない。ファームウェア配信システム１００には、複数の組込装置１３０が含まれ、それに対応する数のＦＷ代行装置１２０が含まれてもよい。あるいは、複数の組込装置１３０のそれぞれの代行処理をＦＷ代行装置１２０が行ってもよい。
【００６７】
図１、図２に示した配信装置３、ＦＷ配信装置１１０、ＦＷ代行装置１２０の各部は、図６に例示するハードウエア資源において実現される。すなわち、図６に示す構成は、プロセッサ１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１３、外部接続インタフェース１４、記録装置１５および各構成要素を接続するバス１６を備える。
【００６８】
上述した各実施形態では、図６に示すプロセッサ１１が実行する一例として、ＦＷ配信装置１１０、ＦＷ代行装置１２０に対して、上述した機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、プロセッサ１１がＲＡＭ１２に読み出して実行することによって実現する場合について説明した。しかしながら、図１、図２の配信装置３、ＦＷ配信装置１１０、ＦＷ代行装置１２０に示した各ブロックに示す機能は、一部または全部を、ハードウエアとして実現してもよい。
【００６９】
係る供給されたコンピュータ・プログラムは、読み書き可能なメモリ（一時記憶媒体）またはハードディスク装置等のコンピュータ読み取り可能な記憶デバイスに格納すればよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムを表すコード或いは係るコンピュータ・プログラムを格納した記憶媒体によって構成されると捉えることができる。
【００７０】
以上、上述した実施形態を参照して本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、種々の上記開示要素の多様な組み合わせ乃至選択など、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００７１】
１、１００  ファームウェア配信システム
２  第１の装置
３  配信装置
１１０  ＦＷ配信装置
１１１  配信ＦＷ決定部
１１２  ＦＷ配信部
１１３、１２２、１３１、１４１  通信部
１１４  ＦＷ記憶部
１２０  ＦＷ代行装置
１２１  ＦＷ実行部
１３２  ＦＷ実行部
１３３  メモリ
１３４  デバイス群
１４２  処理部
２００  ネットワーク
【図１】
0006701863.tif 000002
【図２】
0006701863.tif 000003
【図３】
0006701863.tif 000004
【図４】
0006701863.tif 000005
【図５】
0006701863.tif 000006
【図６】
0006701863.tif 000007