(57)【要約】【課題】送信時間の短縮化を実現させることができる上、ソフトウェアの差分から最新バージョンのソフトウェアを容易に生成することができる端末装置およびソフトウェア書き換えプログラムを提供する。【解決手段】制御装置のソフトウェアを書き換えるソフトウェア書き換えシステムに用いる端末装置は、制御装置で実行可能なバイナリー形式のオブジェクトコードを生成するためのテキスト形式のソースコードを記憶する記憶部を備え、記憶部に記憶された、現行のオブジェクトコードに対応するソースコードに対する差分のソースコードである差分ソースコードを取得し、取得した差分ソースコードおよび記憶部に記憶されたソースコードから最新のソースコードを生成し、生成した最新のソースコードを最新のオブジェクトコードに変換し、変換した最新のオブジェクトコードを制御装置に送信する。【選択図】図６
2017156937.tif 000002
【特許請求の範囲】
【請求項１】
制御装置のソフトウェアを書き換えるソフトウェア書き換えシステムに用いる端末装置であって、
前記制御装置で実行可能なバイナリー形式のオブジェクトコードを生成するためのテキスト形式のソースコードを記憶する記憶部を備え、
前記記憶部に記憶された、現行の前記オブジェクトコードに対応するソースコードに対する差分のソースコードである差分ソースコードを取得し、取得した前記差分ソースコードおよび前記記憶部に記憶された前記ソースコードから最新のソースコードを生成し、生成した前記最新のソースコードを最新の前記オブジェクトコードに変換し、変換した前記最新のオブジェクトコードを前記制御装置に送信することを特徴とする端末装置。
【請求項２】
請求項１に記載の端末装置であって、
前記制御装置は、移動体に搭載されていることを特徴とする端末装置。
【請求項３】
請求項２に記載の端末装置であって、
前記移動体に設けられ、
前記移動体とは他の移動体と短距離無線通信網を介して通信する短距離無線通信部を備えていることを特徴とする端末装置。
【請求項４】
請求項３に記載の端末装置であって、
前記最新のオブジェクトコードを、自身の移動体における前記制御装置に送信する、および／または、前記他の移動体に前記短距離無線通信部および前記短距離無線通信網を介して送信することを特徴とする端末装置。
【請求項５】
請求項３または請求項４に記載の端末装置であって、
前記他の移動体は、請求項１または請求項２に記載の端末装置を備え、
前記差分ソースコードを前記他の移動体に前記短距離無線通信部および前記短距離無線通信網を介して送信することを特徴とする端末装置。
【請求項６】
請求項１に記載の端末装置であって、
前記制御装置は、電機機器に搭載されており、
当該端末装置は、多機能通信携帯端末装置として機能し、
前記電機機器と短距離無線通信網を介して通信する短距離無線通信部を備えていることを特徴とする端末装置。
【請求項７】
請求項６に記載の端末装置であって、
前記最新のオブジェクトコードを前記電機機器に前記短距離無線通信部および前記短距離無線通信網を介して送信することを特徴とする端末装置。
【請求項８】
請求項６または請求項７に記載の端末装置であって、
前記電機機器は、請求項２から請求項４までのいずれか１つに記載の端末装置を備え、
前記差分ソースコードを前記電機機器に前記短距離無線通信部および前記短距離無線通信網を介して送信することを特徴とする端末装置。
【請求項９】
制御装置のソフトウェアを書き換えるソフトウェア書き換えシステムに用いる端末装置のソフトウェア書き換えプログラムであって、
前記端末装置は、前記制御装置で実行可能なバイナリー形式のオブジェクトコードを生成するためのテキスト形式のソースコードを記憶する記憶部と、コンピュータとを備え、
前記記憶部に記憶された、現行の前記オブジェクトコードに対応するソースコードに対する差分のソースコードである差分ソースコードを取得する取得制御ステップと、
前記取得制御ステップにて取得した前記差分ソースコードおよび前記記憶部に記憶された前記ソースコードから最新のソースコードを生成する生成制御ステップと、
前記生成制御ステップにて生成した前記最新のソースコードを最新の前記オブジェクトコードに変換する変換制御ステップと、
前記変換制御ステップにて変換した前記最新のオブジェクトコードを前記制御装置に送信する送信制御ステップと
を含むステップを前記コンピュータに実行させることを特徴とするソフトウェア書き換えプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置（例えば作業機や船舶等の移動体に搭載された制御装置）のソフトウェアを書き換えるソフトウェア書き換えシステムに用いる端末装置およびソフトウェア書き換えプログラムに関する。
【背景技術】
【０００２】
制御装置のソフトウェアを書き換えるソフトウェア書き換えシステムとして、例えば、制御装置のソフトウェアを更新するための更新用ソフトウェアを端末装置により取得し、取得した更新用ソフトウェアに基づいて制御装置のソフトウェアを書き換えるものがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１９８１５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このように、取得した更新用ソフトウェアを用いて制御装置のソフトウェアを書き換えるソフトウェア書き換えシステムにおいて、制御装置のソフトウェアを書き換える際には、ソフトウェアの全部のデータを端末装置に送信すると、端末装置に制御装置のソフトウェアを送信するための送信時間を要するという不都合がある。このことは、通信コストが高額、通信速度が遅い、といった十分な通信インフラが整っていない地域において、特に、顕著となる。
【０００５】
この点に関し、特許文献１は、第１のバージョンのプログラム（ソフトウェア）を格納する第１格納部と、第１のバージョンと同じ又は第１のバージョンよりも新しいバージョンである第２のバージョンのプログラムを格納する第２格納部と、第２のバージョンのプログラムと第２のバージョンのプログラムよりもバージョンが新しい第３のバージョンのプログラムとの差分を取得する取得部と、第２格納部に格納される第２のバージョンのプログラムと取得部によって取得した差分とから第３のバージョンのプログラムを生成し、生成した第３のバージョンのプログラムを第１格納部に格納する更新部とを備える構成を開示している。
【０００６】
しかしながら、特許文献１には、プログラム（ソフトウェア）の差分がどのようなもので、その差分から生成した最新バージョンのソフトウェアがどのようなものかが記載されておらず、かかる記載だけでは、ソフトウェアの差分から最新バージョンのソフトウェアを生成することが困難である。
【０００７】
そこで、本発明は、制御装置のソフトウェアを書き換えるソフトウェア書き換えシステムに用いる端末装置であって、ソフトウェアの差分を用いて送信時間の短縮化を実現させることができる上、ソフトウェアの差分から最新バージョンのソフトウェアを容易に生成することができる端末装置およびソフトウェア書き換えプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
前記課題を解決するために、次の端末装置およびソフトウェア書き換えプログラムを提供する。
【０００９】
（１）端末装置
本発明に係る端末装置は、制御装置のソフトウェアを書き換えるソフトウェア書き換えシステムに用いる端末装置であって、前記制御装置で実行可能なバイナリー形式のオブジェクトコードを生成するためのテキスト形式のソースコードを記憶する記憶部を備え、前記記憶部に記憶された、現行の前記オブジェクトコードに対応するソースコードに対する差分のソースコードである差分ソースコードを取得し、取得した前記差分ソースコードおよび前記記憶部に記憶された前記ソースコードから最新のソースコードを生成し、生成した前記最新のソースコードを最新の前記オブジェクトコードに変換し、変換した前記最新のオブジェクトコードを前記制御装置に送信することを特徴とする。
【００１０】
（２）ソフトウェア書き換えプログラム
本発明に係るソフトウェア書き換えプログラムは、制御装置のソフトウェアを書き換えるソフトウェア書き換えシステムに用いる端末装置のソフトウェア書き換えプログラムであって、前記端末装置は、前記制御装置で実行可能なバイナリー形式のオブジェクトコードを生成するためのテキスト形式のソースコードを記憶する記憶部と、コンピュータとを備え、前記記憶部に記憶された、現行の前記オブジェクトコードに対応するソースコードに対する差分のソースコードである差分ソースコードを取得する取得制御ステップと、前記取得制御ステップにて取得した前記差分ソースコードおよび前記記憶部に記憶された前記ソースコードから最新のソースコードを生成する生成制御ステップと、前記生成制御ステップにて生成した前記最新のソースコードを最新の前記オブジェクトコードに変換する変換制御ステップと、前記変換制御ステップにて変換した前記最新のオブジェクトコードを前記制御装置に送信する送信制御ステップとを含むステップを前記コンピュータに実行させることを特徴とする。
【００１１】
ここで、前記「テキスト形式のソースコード」とは、文字コードを使用して人間が認識可能な状態で記述されているプログラム言語（例えばＣ言語など非マシン言語）をいう。また、前記「バイナリー形式のオブジェクトコード」とは、バイナリコードを使用して前記制御装置が実行可能な状態で構成されているマシン言語をいう。
【００１２】
本発明に係る端末装置および本発明に係るソフトウェア書き換えプログラムにおいて、前記制御装置は、移動体に搭載されている態様を例示できる。
【００１３】
本発明に係る端末装置において、前記移動体に設けられ、前記移動体とは他の移動体と短距離無線通信網を介して通信する短距離無線通信部を備えている態様を例示できる。また、本発明に係るソフトウェア書き換えプログラムにおいて、前記端末装置は、前記移動体に設けられ、前記移動体とは他の移動体と短距離無線通信網を介して通信する短距離無線通信部を備えている態様を例示できる。
【００１４】
本発明に係る端末装置において、前記最新のオブジェクトコードを、自身の移動体における前記制御装置に送信する、および／または、前記他の移動体に前記短距離無線通信部および前記短距離無線通信網を介して送信する態様を例示できる。また、本発明に係るソフトウェア書き換えプログラムにおいて、前記送信制御ステップでは、前記最新のオブジェクトコードを、自身の移動体における前記制御装置に送信する、および／または、前記他の移動体に前記短距離無線通信部および前記短距離無線通信網を介して送信する態様を例示できる。
【００１５】
本発明に係る端末装置において、前記他の移動体は、前記本発明に係る端末装置を備え、前記差分ソースコードを前記他の移動体に前記短距離無線通信部および前記短距離無線通信網を介して送信する態様を例示できる。また、本発明に係るソフトウェア書き換えプログラムにおいて、前記他の移動体は、前記本発明に係る端末装置を備え、前記送信制御ステップでは、前記差分ソースコードを前記他の移動体に前記短距離無線通信部および前記短距離無線通信網を介して送信する態様を例示できる。
【００１６】
本発明に係る端末装置において、前記制御装置は、電機機器に搭載されており、当該端末装置は、多機能通信携帯端末装置として機能し、前記電機機器と短距離無線通信網を介して通信する短距離無線通信部を備えている態様を例示できる。また、本発明に係るソフトウェア書き換えプログラムにおいて、前記制御装置は、電機機器に搭載されており、前記端末装置は、多機能通信携帯端末装置として機能し、前記電機機器と短距離無線通信網を介して通信する短距離無線通信部を備えている態様を例示できる。
【００１７】
本発明に係る端末装置において、前記最新のオブジェクトコードを前記電機機器に前記短距離無線通信部および前記短距離無線通信網を介して送信する態様を例示できる。また、本発明に係るソフトウェア書き換えプログラムにおいて、前記送信制御ステップでは、前記最新のオブジェクトコードを前記電機機器に前記短距離無線通信部および前記短距離無線通信網を介して送信する態様を例示できる。
【００１８】
本発明に係る端末装置において、前記電機機器は、前記本発明に係る端末装置を備え、前記差分ソースコードを前記電機機器に前記短距離無線通信部および前記短距離無線通信網を介して送信する態様を例示できる。また、本発明に係るソフトウェア書き換えプログラムにおいて、前記電機機器は、前記本発明に係る端末装置を備え、前記送信制御ステップでは、前記差分ソースコードを前記電機機器に前記短距離無線通信部および前記短距離無線通信網を介して送信する態様を例示できる。
【発明の効果】
【００１９】
本発明によると、ソフトウェアの差分を用いて送信時間の短縮化を実現させることができる上、ソフトウェアの差分から最新バージョンのソフトウェアを容易に生成することができる。
【図面の簡単な説明】
【００２０】
【図１】第１実施形態に係るソフトウェア書き換えシステムの一例を模式的に示す概略構成図であって、複数の移動体のうちの配信元になり得る何れかの移動体に設けられた専用の端末装置とサーバとが広域通信網を介して通信している状態を示す模式図である。
【図２】図１に示すソフトウェア書き換えシステムにおいて、サーバと通信した専用の端末装置と配信元になり得る他の専用の端末装置とが短距離無線通信網を介して通信している状態を示す模式図である。
【図３】図１に示すソフトウェア書き換えシステムにおいて、サーバと通信した専用の端末装置と実質的に配信元になれない他の専用の端末装置とが短距離無線通信網を介して通信している状態を示す模式図である。
【図４】サーバに備えられた記憶部における機種情報管理データベースのデータ構造の一例を示す模式図である。
【図５】サーバに備えられた記憶部における更新用ソフトウェア管理データベースのデータ構造の一例を示す模式図ある。
【図６】サーバに備えられた記憶部における更新用ソフトウェア保存データベースのデータ構造の一例を示す模式図ある。
【図７】端末装置における記憶部において制御装置の現在のバージョンのソフトウェアが登録されている状態のデータ構造の一例を示す模式図ある。
【図８】端末装置（配信元）における記憶部において制御装置のソースコードが登録されている状態のデータ構造の一例を示す模式図ある。
【図９】図１から図３に示す専用の端末装置（配信元）のソフトウェア構成の一例を示すブロック図である。
【図１０】図４に示す機種情報管理データベースにおいてエリア情報を追加したデータ構造の一例を示す模式図である。
【図１１】サーバに備えられた記憶部における更新用ソフトウェア格納データベースを構成するエリア情報管理データベースのデータ構造の一例を示す模式図である。
【図１２】第２実施形態に係るソフトウェア書き換えシステムの一例を模式的に示す概略構成図であって、汎用の端末装置が広域通信網を介してサーバと通信している状態を示す模式図である。
【図１３】図１２に示すソフトウェア書き換えシステムにおいて、サーバと通信した汎用の端末装置が短距離無線通信網を介して配信元になり得る専用の端末装置と通信している状態を示す模式図である。
【図１４】図１２に示すソフトウェア書き換えシステムにおいて、サーバと通信した汎用の端末装置が短距離無線通信網を介して実質的に配信元になれない専用の端末装置と通信している状態を示す模式図である。
【図１５】図１２から図１４に示す汎用の端末装置のソフトウェア構成の一例を示すブロック図である。
【図１６】サーバと専用の端末装置（配信元）および／または汎用の端末装置とが広域通信網を介して通信している例（ダウンロード処理の一例）を示すフローチャーである。
【図１７】サーバと通信した専用の端末装置（配信元）および／または汎用の端末装置と専用の端末装置（配信元）とが短距離無線通信網を介して通信している例（配信処理の一例）を示すフローチャートである。
【図１８】サーバと通信した専用の端末装置（配信元）および／または汎用の端末装置と専用の端末装置（非配信元）とが短距離無線通信網を介して通信している例（配信処理の他の例）を示すフローチャートである。
【図１９】図１から図１１に示す第１実施形態のソフトウェア書き換えシステムにおけるソフトウェア書き換え処理の一例を示すフローチャートであって、その前半部分の処理例を示す例である。
【図２０】図１から図１１に示す第１実施形態のソフトウェア書き換えシステムにおけるソフトウェア書き換え処理の一例を示すフローチャートであって、その後半部分の処理例を示す例である。
【発明を実施するための形態】
【００２１】
以下、本発明に係る実施の形態について電機機器の一例である移動体としてコンバイン、耕耘機や田植機等の農業作業機といった走行作業機を例にとって図面を参照しながら説明する。
【００２２】
［第１実施形態］
図１から図３は、第１実施形態に係るソフトウェア書き換えシステム１００の一例を模式的に示す概略構成図である。
【００２３】
図１は、複数の移動体１１０（１）〜１１０（ｎ）（ｎは２以上の整数）のうちの配信元になり得る何れかの移動体１１０（１）に設けられた専用の端末装置２００（１）とサーバ１３０とが広域通信網ＷＮを介して通信している状態を示す模式図である。図２は、図１に示すソフトウェア書き換えシステム１００において、サーバ１３０と通信した専用の端末装置２００（１）と配信元になり得る他の専用の端末装置２００（２）とが短距離無線通信網ＬＮを介して通信している状態を示す模式図である。図３は、図１に示すソフトウェア書き換えシステム１００において、サーバ１３０と通信した専用の端末装置２００（１）と実質的に配信元になれない他の専用の端末装置２００（３）とが短距離無線通信網ＬＮを介して通信している状態を示す模式図である。
【００２４】
また、図４は、サーバ１３０に備えられた記憶部１３３における更新用ソフトウェア格納データベースＤＢを構成する機種情報管理データベースＤＢ１のデータ構造の一例を示す模式図である。図５は、サーバ１３０に備えられた記憶部１３３における更新用ソフトウェア格納データベースＤＢを構成する更新用ソフトウェア管理データベースＤＢ２のデータ構造の一例を示す模式図ある。図６は、サーバ１３０に備えられた記憶部１３３における更新用ソフトウェア格納データベースＤＢを構成する更新用ソフトウェア保存データベースＤＢ３のデータ構造の一例を示す模式図ある。図７は、端末装置２００（ｉ）における記憶部２３０において制御装置１１３（１）〜１１３（ｍ）（ｍは１または２以上の整数）の現在のバージョンＶＲのソフトウェアＦＷ（ＦＷ１〜ＦＷｍ）が登録されている状態のデータ構造の一例を示す模式図ある。また、図８は、端末装置２００（１），２００（２）（配信元）における記憶部２３０において制御装置１１３（１）〜１１３（ｍ）のソースコードＳＣが登録されている状態のデータ構造の一例を示す模式図ある。
【００２５】
図１から図３に示すソフトウェア書き換えシステム１００は、複数の移動体１１０（１）〜１１０（ｎ）（例えば走行作業機や船舶）（図１から図３参照）に搭載された制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷを書き換えるシステムである。この例では、制御装置１１３（１）〜１１３（ｍ）は、電子制御装置（ＥＣＵ：Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）とされ、移動体１１０（１）〜１１０（ｎ）に搭載されている。ソフトウェアＦＷは、ファームウェアとされている。
【００２６】
ソフトウェア書き換えシステム１００は、複数の移動体１１０（１）〜１１０（ｎ）と、複数の移動体１１０（１）〜１１０（ｎ）に設けられた専用の端末装置２００（１）〜２００（ｎ）と、端末装置２００（１）〜２００（ｎ）に広域通信網ＷＮ（図１参照）を介して接続されるサーバ１３０（図１参照）とを備えている。
【００２７】
この例では、サーバ１３０は、大型の情報機器（具体的には所定の場所に設置される据え置き型のコンピュータ）とされている。但し、それに限定されるものではなく、サーバ１３０として、更新用ソフトウェア格納データベースＤＢを格納可能な情報機器〔例えば、更新用ソフトウェア格納データベースＤＢが必要とするデータ容量を確保することが可能な記憶部を備えた小型の情報機器、具体的には、移動体１１０（１），１１０（２）に設けられる専用の端末装置２００（１），２００（２）や、後述する携帯型の汎用の端末装置３００〕を用いてもよい。
【００２８】
端末装置２００（１）〜（ｎ）において、他の端末装置に対して配信元になり得る少なくとも１台の端末装置を含んでいる。端末装置２００（１）〜（ｎ）において、他の端末装置に対して実質的に配信元になれない端末装置を含んでいてもよい。
【００２９】
なお、「他の端末装置に対して実質的に配信元になれない端末装置」とは、相手先が同一機種の移動体であれば、配信元になれるものの、相手先が異なる機種の場合には、配信元になれない端末装置、すなわち、自機以外（相手先）の機種情報ＭＩおよび機種情報ＭＩに関連付けられた更新用ソフトウェアＷＦＷ（図４から図６参照）を有していない端末装置という。
【００３０】
以下では、他の端末装置に対して配信元になり得る端末装置を端末装置２００（１），２００（２）（配信元）とし、他の端末装置に対して実質的に配信元になれない端末装置を端末装置２００（３）〜２００（ｎ）（非配信元）として説明する。
【００３１】
端末装置２００（１）（配信元）は、制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷを更新するための更新用ソフトウェアＷＦＷのサーバ１３０からの配信先になることができると共に、他の端末装置２００（２）〜２００（ｎ）に対して配信元になることができる。同様に、端末装置２００（２）（配信元）は、更新用ソフトウェアＷＦＷのサーバ１３０からの配信先になることができると共に、他の端末装置２００（１），２００（３）〜２００（ｎ）に対して配信元になることができる。
【００３２】
詳しくは、端末装置２００（１），２００（２）（配信元）は、サーバ１３０から更新用ソフトウェア格納データベースＤＢ（図４から図６参照）における更新用ソフトウェアＷＦＷを広域通信網ＷＮおよび広域通信部２２０を介して受信する。
【００３３】
ここで、サーバ１３０から受信した更新用ソフトウェアＷＦＷがどのようなものかは、後ほど詳しく説明する。
【００３４】
端末装置２００（１）（配信元）は、サーバ１３０から受信した更新用ソフトウェアＷＦＷを記憶部２３０に記憶し、記憶部２３０に記憶した更新用ソフトウェアＷＦＷを他の端末装置２００（２）〜２００（ｎ）のうち短距離無線通信範囲内で通信可能な他の端末装置に対して短距離無線通信部２４０および短距離無線通信網ＬＮを介して送信する。
【００３５】
同様に、端末装置２００（２）（配信元）は、サーバ１３０から受信した更新用ソフトウェアＷＦＷを記憶部２３０に記憶し、記憶部２３０に記憶した更新用ソフトウェアＷＦＷを他の端末装置２００（１），２００（３）〜２００（ｎ）のうち短距離無線通信範囲内で通信可能な他の端末装置に対して短距離無線通信部２４０および短距離無線通信網ＬＮを介して送信する。
【００３６】
さらに詳しくは、端末装置２００（１）（配信元）は、他の端末装置２００（２）〜２００（ｎ）のうち短距離無線通信範囲内で短距離無線通信部２４０および短距離無線通信網ＬＮを介して通信可能な他の端末装置に対して無作為に通信を確立する。端末装置２００（１）（配信元）は、通信を確立した他の端末装置２００（２）〜２００（ｎ）と認証して他の端末装置２００（２）〜２００（ｎ）のうち端末装置２００（１）（配信元）の記憶部２３０に記憶した機種情報ＭＩ（図４参照）に対応する相手先の端末装置２００（ｉ）（ｉは１〜ｎまでの整数であって相手先の端末装置の添え字番号に対応する値）に対して端末装置２００（１）（配信元）の記憶部２３０に記憶した更新用ソフトウェアＷＦＷを送信する。
【００３７】
同様に、端末装置２００（２）（配信元）は、他の端末装置２００（１），２００（３）〜２００（ｎ）のうち短距離無線通信範囲内で短距離無線通信部２４０および短距離無線通信網ＬＮを介して通信可能な他の端末装置に対して無作為に通信を確立する。端末装置２００（２）（配信元）は、通信を確立した他の端末装置２００（１），２００（３）〜２００（ｎ）のうち端末装置２００（２）（配信元）の記憶部２３０に記憶した機種情報ＭＩ（図４参照）に対応する相手先の端末装置２００（ｉ）に対して端末装置２００（２）（配信元）の記憶部２３０に記憶した更新用ソフトウェアＷＦＷを送信する。
【００３８】
ここで、相手先の端末装置２００（ｉ）に送信する更新用ソフトウェアＷＦＷがどのようなものかは、後ほど詳しく説明する。
【００３９】
図１から図３に示すように、サーバ１３０（図１参照）は、この例では、移動体１１０（１）〜１１０（ｎ）に対して遠く離れた位置にある遠隔監視センター１２０（図１参照）に配置されており、移動体１１０（１）〜１１０（ｎ）に搭載された制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷに関する情報を蓄積するようになっている。
【００４０】
詳しくは、端末装置２００（１）〜２００（ｎ）およびサーバ１３０は、それぞれ、広域通信部２２０，１３２（具体的には広域通信インタフェース）を有し、広域通信網ＷＮ（図１参照）を介して互いの広域通信部２２０，１３２で接続されることで、端末装置２００（１）〜２００（ｎ）とサーバ１３０との間で情報の送受信を行うことが可能とされている。これにより、サーバ１３０は、遠隔監視センター１２０で利用者により移動体１１０（１）〜１１０（ｎ）を遠隔監視できるようになっている。端末装置２００（１）〜２００（ｎ）は、この例では遠隔監視端末装置とされている。なお、場合によっては、端末装置２００（３）〜２００（ｎ）には、広域通信部２２０が設けられていなくてもよい。
【００４１】
また、サーバ１３０は、移動体１１０（１）〜１１０（ｎ）における制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷに関する情報を移動体１１０（１），１１０（２）における端末装置２００（１），２００（２）（配信元）に送信できるようになっている。一方、移動体１１０（１），１１０（２）における端末装置２００（１），２００（２）（配信元）は、移動体１１０（１）〜１１０（ｎ）における制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷに関する情報をサーバ１３０から受信できるようになっている。
【００４２】
ここで、広域通信網ＷＮは、有線通信網でもよいし、無線通信網（所謂モバイル通信規格による無線通信網）でもよく、有線通信網および無線通信網を組み合わせたものであってもよい。広域通信網ＷＮとしては、代表的には、電気通信事業者が提供する公衆回線網であって、固定電話機や携帯電話機等の端末機同士を通信させる公衆回線網を挙げることができる。
【００４３】
移動体１１０（１）〜１１０（ｎ）は、１つまたは複数（ここでは複数）の作業部〔１１１（１）〜１１１（ｍ）〕〜〔１１１（１）〜１１１（ｍ）〕（図１から図３参照）と、端末装置２００（１）〜２００（ｎ）とを備えている。ここで、作業部１１１（１）〜１１１（ｍ）としては、例えば、農業作業機がコンバインである場合には、走行作業部、刈り取り作業部、脱穀作業部等を挙げることができる。
【００４４】
各作業部１１１（１）〜１１１（ｍ）には、制御装置１１３（１）〜１１３（ｍ）が設けられている。制御装置１１３（１）〜１１３（ｍ）は、各種アクチュエータ（図示せず）に対して指令し、各作業部１１１（１）〜１１１（ｍ）への運転状態を適切に制御する。制御装置１１３（１）〜１１３（ｍ）は、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）規格等の通信規格に基づいて互いにデータ転送されるようになっている。
【００４５】
詳しくは、各制御装置１１３（１）〜１１３（ｍ）は、各作業部１１１（１）〜１１１（ｍ）での各種センサにて検出した検出値情報（信号）および各種スイッチのオン・オフ情報に基づいて各作業部１１１（１）〜１１１（ｍ）への運転状態を作動制御する。また、各制御装置１１３（１）〜１１３（ｍ）は、移動体１１０の故障等の異常が発生したか否かの異常発生の有無を適宜判断し、異常が発生した場合には、該異常に応じたエラー情報（具体的にはエラーコード）を生成する。
【００４６】
作業部１１１（１）〜１１１（ｍ）のうちのエンジン（図示せず）を作動させる作業部１１１は、エンジンと、エンジンの回転数や負荷状態などを監視し、最適な噴射圧力や噴射時期を燃料システムに指示してエンジン全体を制御する制御装置１１３と、発電機（図示せず）と、起動スイッチＳＷとを備えており、バッテリーＢＴが搭載されている。そして、エンジン全体を制御する制御装置１１３は、エンジンを作動させる作業部１１１の作動制御の他、運転開始／休止の操作や、エンジンの駆動による運転状態の制御が行われるようになっている。
【００４７】
なお、エンジンを作動させる作業部１１１のエンジンの稼動状態において、発電機から供給される電力によってバッテリーＢＴの充電が適宜行われるようになっている。
【００４８】
起動スイッチＳＷは、電源オン状態と電源オフ状態とを選択的に切り替える切り替えスイッチとされている。ここで、電源オン状態は、バッテリーＢＴから制御部２１０および制御装置１１３（１）〜１１３（ｍ）へ電力を供給する状態とされる。電源オフ状態は、バッテリーＢＴから制御部２１０および制御装置１１３（１）〜１１３（ｍ）への電力供給を遮断する状態とされる。
【００４９】
詳しくは、バッテリーＢＴは、制御部２１０に接続された電源接続ラインＬ１および制御装置１１３（１）〜１１３（ｍ）に接続された電源接続ラインＬ２の双方に起動スイッチＳＷを介して接続されている。
【００５０】
この例では、起動スイッチＳＷは、所謂キースイッチと呼ばれるスイッチであり、「ＯＮ」端子は、電源接続ラインＬ１，Ｌ２の接続端子である。「ＯＦＦ」端子は、起動スイッチＳＷがオフ状態のときの端子である。
【００５１】
なお、起動スイッチＳＷのオン状態およびオフ状態に関わらず、バッテリーＢＴと電源制御部２６０とが電源接続ラインＬ３を介して接続されている。
【００５２】
〔サーバ〕
図１に示すように、サーバ１３０は、制御部１３１と、広域通信部１３２と、記憶部１３３とを備えている。
【００５３】
（制御部）
制御部１３１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等のいわゆるコンピュータからなる処理装置１３１ａと、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性メモリを含むメモリ装置１３１ｂとを有している。
【００５４】
制御部１３１は、処理装置１３１ａがメモリ装置１３１ｂのＲＯＭに予め格納された制御プログラムをメモリ装置１３１ｂのＲＡＭ上にロードして実行することにより、各種構成要素の作動制御を行うようになっている。
【００５５】
本実施の形態では、制御部１３１は、通信時におけるデータの送受信、各種の入出力制御および演算処理の制御を行う。
【００５６】
（広域通信部）
広域通信部１３２は、制御部１３１のデータラインに電気的に接続されている。広域通信部１３２は、制御部１３１の指示の下、移動体１１０（１）〜１１０（ｎ）における端末装置２００（１）〜２００（ｎ）の広域通信部２２０（図１から図３参照）と同一の通信プロトコル（通信規約）で通信可能とされている。通信時に送受信されるデータは、通信プロトコルに従うように広域通信部１３２で変換される。広域通信部１３２は、記憶部１３３に記録された移動体１１０（１）〜１１０（ｎ）における制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷに関する情報を移動体１１０（１）〜１１０（ｎ）〔この例では移動体１１０（１），１１０（２）〕における端末装置２００（１）〜２００（ｎ）〔この例では端末装置２００（１），２００（２）〕に送信する。
【００５７】
（記憶部）
記憶部１３３は、制御部１３１のデータラインに電気的に接続されている。記憶部１３３は、制御部１３１の指示の下、情報が書き込み制御および読み出し制御される。記憶部１３３は、この例では、フラッシュメモリ、ハードディスク装置等の大容量記憶装置とされている。
【００５８】
記憶部１３３には、更新用ソフトウェア格納データベースＤＢが格納されている。
【００５９】
ところで、相手先の移動体１１０（ｉ）の種類（例えば走行作業機や船舶）が異なれば、当然のことながら相手先の移動体１１０（ｉ）に搭載された制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷは異なる場合がある。また、相手先の移動体１１０（ｉ）が同種のものであっても、互いに異なる機種の移動体１１０（ｉ）に搭載された制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷは異なる場合がある。従って、相手先の移動体１１０（ｉ）に搭載された制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷに対して、記憶部２３０に記憶した更新用ソフトウェアＷＦＷが異なっている場合には、相手先の移動体１１０（ｉ）において制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷを書き換えることができない。
【００６０】
かかる観点から、更新用ソフトウェア格納データベースＤＢは、移動体１１０（１）〜１１０（ｎ）の機種情報ＭＩ（図４から図６参照）に関連付けられた更新用ソフトウェアＷＦＷを格納している。また、更新用ソフトウェア格納データベースＤＢは、更新用ソフトウェアＷＦＷの更新情報ＲＩ（図５参照）を格納している。
【００６１】
本実施の形態では、更新用ソフトウェア格納データベースＤＢは、機種情報管理データベースＤＢ１（図４参照）、更新用ソフトウェア管理データベースＤＢ２（図５参照）および更新用ソフトウェア保存データベースＤＢ３（図６参照）を備えている。なお、エリア情報管理データベースＤＢ４については、後述する。
【００６２】
図４に示すように、機種情報管理データベースＤＢ１は、移動体１１０（１）〜１１０（ｎ）の機種情報ＭＩを記憶している。
【００６３】
詳しくは、機種情報管理データベースＤＢ１には、移動体１１０（１）〜１１０（ｎ）の種類ＭＴと、移動体１１０（１）〜１１０（ｎ）の機種コードＭＣとが登録されている。具体的には、機種情報管理データベースＤＢ１には、移動体１１０（１）〜１１０（ｎ）のメーカーが製造している全ての種類ＭＴ（例えば走行作業機や船舶）の移動体１１０（１）〜１１０（ｎ）の全機種の機種コードＭＣが登録されている。
【００６４】
そして、新しい機種が開発された場合には、機種情報管理データベースＤＢ１において、随時、移動体１１０の種類ＭＴ、機種コードＭＣが登録される。
【００６５】
図５に示すように、更新用ソフトウェア管理データベースＤＢ２は、移動体１１０（１）〜１１０（ｎ）おける制御装置１１３（１）〜１１３（ｍ）（この例ではＥＣＵ）の更新用ソフトウェアコードＷＦＷＣ（この例では更新用ファームウェアコード）を記憶している。
【００６６】
詳しくは、更新用ソフトウェア管理データベースＤＢ２には、移動体１１０（１）〜１１０（ｎ）の種類ＭＴと、移動体１１０（１）〜１１０（ｎ）の機種コードＭＣと、制御装置１１３（１）〜１１３（ｍ）の制御装置コードＣＣ（この例ＥＣＵ記号および／または番号）と、更新情報ＲＩ（バージョンＶＲおよび／または年月日時刻ＹＭＤＴ）に関連付けられた更新用ソフトウェアコードＷＦＷＣとが登録されている。具体的には、更新用ソフトウェア管理データベースＤＢ２には、移動体１１０（１）〜１１０（ｎ）のメーカーが製造している全ての種類ＭＴ（例えば走行作業機や船舶）の移動体１１０（１）〜１１０（ｎ）の全機種の機種コードＭＣ並びに移動体１１０（１）〜１１０（ｎ）における制御装置１１３（１）〜１１３（ｍ）の制御装置コードＣＣおよび更新情報ＲＩに関連付けられた更新用ソフトウェアコードＷＦＷＣが登録されている。
【００６７】
そして、新しい機種が開発された場合には、更新用ソフトウェア管理データベースＤＢ２において、随時、移動体１１０の種類ＭＴ、機種コードＭＣ、制御装置コードＣＣおよび更新情報ＲＩに関連付けられた更新用ソフトウェアコードＷＦＷＣが登録され、さらに、新しいバージョンのソフトウェアＦＷが開発された場合には、更新用ソフトウェア管理データベースＤＢ２において、随時、更新情報ＲＩおよび更新情報ＲＩに関連付けられた更新用ソフトウェアコードＷＦＷＣを更新する。
【００６８】
図６に示すように、更新用ソフトウェア保存データベースＤＢ３は、更新用ソフトウェアＷＦＷの最新バージョンの旧バージョンに対する差分のソースコードである差分ソースコードＤＳＣを記憶している。
【００６９】
ここで、最新バージョンの旧バージョンに対する差分とは、ソフトウェアＦＷの最新バージョンのソースコードＳＣと、旧バージョン（旧バージョンが復数存在する場合、最も旧いバージョンから最新バージョンの一つ前の各旧バージョン）との差分をいい、例えば、市場にバージョン１．０およびバージョン１．１があり、最新バージョンがバージョン１．２とすると、最新バージョンの旧バージョンに対する差分は、最新バージョン１．２と旧バージョン１．０との差分と、最新バージョン１．２と旧バージョン１．１との差分との２つの差分となる。なお、旧バージョンが３つ以上の場合も同様である。
【００７０】
詳しくは、更新用ソフトウェア保存データベースＤＢ３には、更新用ソフトウェアコードＷＦＷＣと、更新用ソフトウェアコードＷＦＷＣに関連付けられた差分ソースコードＤＳＣとが登録されている。具体的には、更新用ソフトウェア保存データベースＤＢ３には、移動体１１０（１）〜１１０（ｎ）のメーカーが製造している全ての種類ＭＴ（例えば走行作業機や船舶）の移動体１１０（１）〜１１０（ｎ）の全機種の差分ソースコードＤＳＣが登録されている。
【００７１】
そして、新しい機種が開発された場合および新しいバージョンのソフトウェアＦＷが開発された場合には、更新用ソフトウェア保存データベースＤＢ３において、随時、更新用ソフトウェアコードＷＦＷＣおよび更新用ソフトウェアコードＷＦＷＣに関連付けられた差分ソースコードＤＳＣが登録される。
【００７２】
また、移動体１１０（１）〜１１０（ｎ）における端末装置２００（１）〜２００（ｎ）の記憶部２３０には、機種情報ＭＩおよび制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷのバージョンＶＲ等の更新情報ＲＩが登録されている。
【００７３】
詳しくは、図７に示すように、端末装置２００（１）〜２００（ｎ）における記憶部２３０には、機種情報ＭＩ（この例では機種コードＭＣの一例）、制御装置コードＣＣおよび制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷの更新情報ＲＩ（この例では現在のバージョンＶＲ）が、端末識別情報ＩＤおよびエリア情報ＡＲに関連付けられて登録されている。なお、記憶部２３０において、機種情報ＭＩとして、この例では、機種コードＭＣが登録されているが、機種コードＭＣに加えて移動体１１０（１）〜１１０（ｎ）の種類ＭＴが登録されていてもよい。また、更新情報ＲＩとして、この例では、現在のバージョンＶＲが登録されているが、現在のバージョンＶＲに代えて或いは加えて現在のバージョンＶＲを更新した年月日時刻ＹＭＤＴが登録されていてもよい。
【００７４】
また、移動体１１０（１）〜１１０（ｎ）における端末装置２００（１）〜２００（ｎ）の記憶部２３０には、制御装置１１３（１）〜１１３（ｍ）で実行可能なバイナリー形式のオブジェクトコードＯＣ（ソフトウェアＦＷ）を生成するためのテキスト形式のソースコードＳＣが記憶されている。ここで、テキスト形式のソースコードＳＣは、文字コードを使用して人間が認識可能な状態で記述されているプログラム言語（例えばＣ言語など非マシン言語）である。また、バイナリー形式のオブジェクトコードＯＣは、バイナリコードを使用して制御装置１１３（１）〜１１３（ｍ）が実行可能な状態で構成されているマシン言語である。オブジェクトコードＯＣは、ソースコードＳＣから変換（所謂コンパイルまたはアセンブル）されたものである。
【００７５】
詳しくは、図８に示すように、端末装置２００（１），２００（２）（配信元）における記憶部２３０には、機種情報ＭＩ（この例では機種コードＭＣの一例）、制御装置コードＣＣ、制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷの更新情報ＲＩ（この例では現在のバージョンＶＲ）およびソースコードＳＣが、端末識別情報ＩＤおよびエリア情報ＡＲに関連付けられて登録されている。なお、記憶部２３０において、機種情報ＭＩとして、この例では、機種コードＭＣが登録されているが、機種コードＭＣに加えて移動体１１０（１）〜１１０（ｎ）の種類ＭＴが登録されていてもよい。また、更新情報ＲＩとして、この例では、現在のバージョンＶＲが登録されているが、現在のバージョンＶＲに代えて或いは加えて現在のバージョンＶＲを更新した年月日時刻ＹＭＤＴが登録されていてもよい。また、図８に示すソースコードＳＣにおいて、端末装置２００（３）〜２００（ｎ）（非配信元）の場合は、自身の移動体１１０（３）〜１１０（ｎ）における制御装置１１３（１）〜１１３（ｍ）のソースコードＳＣ〜ＳＣのみを有することができる。
【００７６】
〔専用の端末装置（配信元）〕
次に、専用の端末装置２００（１），２００（２）（配信元）のシステム構成について図１から図３を参照しながら以下に説明する。
【００７７】
−専用の端末装置（配信元）のハードウェア構成−
図１から図３に示すように、端末装置２００（１），２００（２）（配信元）は、制御部２１０（コンピュータの一例）と、広域通信部２２０と、記憶部２３０と、短距離無線通信部２４０と、信号通信部２５０と、電源制御部２６０とを備えている。
【００７８】
（制御部）
制御部２１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等のいわゆるコンピュータからなる処理装置２１０ａと、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性メモリを含むメモリ装置２１０ｂとを有している。
【００７９】
制御部２１０は、記憶部２３０に予め格納（インストール）されたソフトウェア書き換えプログラムＰＰ（後述する図９参照）等のプログラムを実行することによって、制御部２１０に必要な各種の機能を実現するように構成されている。詳しくは、制御部２１０は、処理装置２１０ａが記憶部２３０に予め格納されたソフトウェア書き換えプログラムＰＰ等のプログラムをメモリ装置２１０ｂのＲＡＭ上にロードして実行することにより、各種の処理を行うようになっている。メモリ装置２１０ｂのＲＡＭは、制御部２１０に対して作業用のワークエリアを提供する。
【００８０】
本実施の形態では、制御部２１０は、通信時におけるデータの送受信、各種の入出力制御および演算処理の制御を行う。
【００８１】
（広域通信部）
広域通信部２２０は、制御部２１０のデータラインに電気的に接続されている。広域通信部２２０は、制御部２１０の指示の下、サーバ１３０の広域通信部１３２（図１参照）と同一の通信プロトコル（通信規約）で通信可能とされている。通信時に送受信されるデータは、通信プロトコルに従うように広域通信部２２０で変換される。広域通信部２２０は、サーバ１３０の記憶部１３３に記録された移動体１１０（１）〜１１０（ｎ）における制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷに関する情報をサーバ１３０から受信する。
【００８２】
（記憶部）
記憶部２３０は、制御部２１０のデータラインに電気的に接続されている。記憶部２３０は、制御部２１０の指示の下、情報が書き込み制御および読み出し制御される。記憶部２３０は、この例では、フラッシュメモリ等の大容量記憶装置とされている。
【００８３】
記憶部２３０には、機種情報管理データベースＤＢ１、更新用ソフトウェア管理データベースＤＢ２および更新用ソフトウェア保存データベースＤＢ３が格納される。
【００８４】
機種情報管理データベースＤＢ１、更新用ソフトウェア管理データベースＤＢ２および更新用ソフトウェア保存データベースＤＢ３のデータ構造は、図４から図６に示すサーバ１３０における記憶部１３３に格納された機種情報管理データベースＤＢ１、更新用ソフトウェア管理データベースＤＢ２および更新用ソフトウェア保存データベースＤＢ３と同様のものであり、ここでは説明を省略する。
【００８５】
（短距離無線通信部）
端末装置２００（１）（配信元）における短距離無線通信部２４０は、端末装置２００（２）（配信元）および端末装置２００（３）〜２００（ｎ）（非配信元）における短距離無線通信部２４０と短距離無線通信を行う。また、端末装置２００（２）（配信元）における短距離無線通信部２４０は、端末装置２００（１）（配信元）および端末装置２００（３）〜２００（ｎ）（非配信元）における短距離無線通信部２４０と短距離無線通信を行う。
【００８６】
ここで、短距離無線通信としては、数メートルから１００メートル程度の短距離で通信を行う無線通信を例示でき、例えば、数十メートル〜１００メートル程度の短距離で通信を行う無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）通信や、数メートル〜数十メートル程度の短距離で通信を行う無線ＰＡＮ（Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）通信を挙げることができる。
【００８７】
無線ＬＡＮ通信としては、例えば、ＷｉＦｉ（登録商標）規格に代表されるＩＥＥＥ８０２．１１規格の無線ＬＡＮ通信を挙げることができる。無線ＰＡＮ通信としては、例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）規格に代表されるＩＥＥＥ８０２．１５規格の無線ＰＡＮ通信を挙げることができる。この例では、短距離無線通信部２４０は、ＩＥＥＥ８０２．１１規格の無線ＬＡＮ通信を行うようになっている。
【００８８】
（信号通信部）
信号通信部２５０は、作業部１１１（１）〜１１１（ｍ）における制御装置１１３（１）〜１１３（ｍ）とＣＡＮ規格等の通信規格による通信を行って情報のやりとりを行う。
【００８９】
（電源制御部）
電源制御部２６０は、制御部２１０に電力を供給する。本実施の形態では、電源制御部２６０は、起動スイッチＳＷのオフ状態およびオン状態に関わらず、バッテリーＢＴに接続されている。具体的には、電源制御部２６０の入力側電源ライン（図示せず）とバッテリーＢＴとが電源接続ラインＬ３によって接続されている。これにより、電源制御部２６０は、バッテリーＢＴからの電力が常時供給されるようになっている。
【００９０】
また、制御部２１０は、バッテリーＢＴからの電力が電源制御部２６０から供給されるようになっている。
【００９１】
−専用の端末装置（配信元）のソフトウェア構成−
図９は、図１から図３に示す専用の端末装置２００（１），２００（２）（配信元）のソフトウェア構成の一例を示すブロック図である。
【００９２】
図９に示すように、制御部２１０は、受信制御手段Ｑ１と、記憶制御手段Ｑ２と、書き換え制御手段Ｑ３と、送信制御手段Ｑ４とを備える手段として機能する。すなわち、ソフトウェア書き換えプログラムＰＰは、受信制御手段Ｑ１に対応する受信制御ステップと、記憶制御手段Ｑ２に対応する記憶制御ステップと、書き換え制御手段Ｑ３に対応する書き換え制御ステップと、送信制御手段Ｑ４に対応する送信制御ステップとを含むステップを制御部２１０に実行させる。
【００９３】
（受信制御ステップ）
受信制御ステップでは、制御部２１０は、差分ソースコードＤＳＣを格納した更新用ソフトウェア保存データベースＤＢ３を備えたサーバ１３０から更新用ソフトウェア保存データベースＤＢ３における差分ソースコードＤＳＣを広域通信網ＷＮおよび広域通信部２２０を介して受信する。
【００９４】
詳しくは、受信制御手段Ｑ１は、取得制御手段Ｑ１１を備える。すなわち、受信制御ステップは、取得制御手段Ｑ１１に対応する取得制御ステップを含んでいる。
【００９５】
取得制御ステップでは、制御部２１０は、記憶部２３０に記憶された、現行のオブジェクトコードＯＣに対応するソースコードＳＣに対する差分ソースコードＤＳＣを取得する。すなわち、制御部２１０は、最新バージョンのオブジェクトコードＮＯＣに対応する最新バージョンのソースコードＮＳＣと、記憶部２３０に記憶された現行バージョンのソースコードＳＣとの差分ソースコードＤＳＣを取得する。
【００９６】
制御部２１０は、サーバ１３０から更新用ソフトウェア格納データベースＤＢにおける機種情報ＭＩおよび機種情報ＭＩに関連付けられた差分ソースコードＤＳＣを広域通信網ＷＮおよび広域通信部２２０を介して受信する。本実施の形態では、制御部２１０は、記憶部２３０において、移動体１１０（１）〜１１０（ｎ）の機種情報ＭＩを格納した機種情報管理データベースＤＢ１、移動体１１０（１）〜１１０（ｎ）の機種情報ＭＩに関連付けられた更新用ソフトウェアコードＷＦＷＣを制御装置コードＣＣと共に格納した更新用ソフトウェア管理データベースＤＢ２、および、更新用ソフトウェアコードＷＦＷＣに関連付けられた差分ソースコードＤＳＣを格納した更新用ソフトウェア保存データベースＤＢ３を備えたサーバ１３０から機種情報ＭＩおよび機種情報ＭＩに関連付けられた差分ソースコードＤＳＣを広域通信網ＷＮおよび広域通信部２２０を介して受信する。
【００９７】
さらに詳しくは、制御部２１０は、サーバ１３０から更新用ソフトウェア格納データベースＤＢにおける差分ソースコードＤＳＣおよび差分ソースコードＤＳＣの更新情報ＲＩを広域通信網ＷＮおよび広域通信部２２０を介して受信する。本実施の形態では、制御部２１０は、サーバ１３０から更新用ソフトウェアコードＷＦＷＣおよび更新用ソフトウェアコードＷＦＷＣの更新情報ＲＩを広域通信網ＷＮおよび広域通信部２２０を介して受信する。
【００９８】
（記憶制御ステップ）
記憶制御ステップでは、制御部２１０は、サーバ１３０から受信した差分ソースコードＤＳＣを記憶部２３０に記憶する。
【００９９】
詳しくは、制御部２１０は、サーバ１３０から受信した機種情報ＭＩおよび機種情報ＭＩに関連付けられた差分ソースコードＤＳＣを記憶部２３０に記憶する。本実施の形態では、制御部２１０は、記憶部２３０において、サーバ１３０から受信した機種情報ＭＩを機種情報管理データベースＤＢ１に記憶し、サーバ１３０から受信した更新用ソフトウェアコードＷＦＷＣを機種情報ＭＩに関連付けて制御装置コードＣＣと共に更新用ソフトウェア管理データベースＤＢ２に記憶し、サーバ１３０から受信した差分ソースコードＤＳＣを更新用ソフトウェアコードＷＦＷＣに関連付けて更新用ソフトウェア保存データベースＤＢ３に記憶する。
【０１００】
さらに詳しくは、制御部２１０は、サーバ１３０から受信した差分ソースコードＤＳＣおよび更新用ソフトウェアＷＦＷの更新情報ＲＩを記憶部２３０に記憶する。本実施の形態では、制御部２１０は、サーバ１３０から受信した更新用ソフトウェアコードＷＦＷＣおよび更新用ソフトウェアコードＷＦＷＣの更新情報ＲＩを更新用ソフトウェア管理データベースＤＢ２に記憶する。制御部２１０は、サーバ１３０から受信した更新用ソフトウェアコードＷＦＷＣおよび更新用ソフトウェアコードＷＦＷＣの差分ソースコードＤＳＣを更新用ソフトウェア保存データベースＤＢ３に記憶する。
【０１０１】
（書き換え制御ステップ）
端末装置２００（１），２００（２）（配信元）は、移動体１１０（１），１１０（２）に設けられている。
【０１０２】
書き換え制御手段Ｑ３は、生成制御手段Ｑ３１と、変換制御手段Ｑ３２（所謂コンパイラまたはアセンブラ）とを備える。すなわち、書き換え制御ステップは、生成制御手段３１に対応する生成制御ステップと、変換制御手段Ｑ３２に対応する変換制御ステップとを含んでいる。
【０１０３】
生成制御ステップでは、制御部２１０は、取得制御ステップにて取得した差分ソースコードＤＳＣ、および、記憶部２３０に記憶された現行のソースコードＳＣ〜ＳＣのうち取得した差分ソースコードＤＳＣに対応する現行のソースコードＳＣから最新のソースコードＮＳＣを生成する。
【０１０４】
変換制御ステップでは、制御部２１０は、生成制御ステップにて生成した最新のソースコードＮＳＣを最新のオブジェクトコードＮＯＣに変換する。
【０１０５】
詳しくは、書き換え制御ステップでは、制御部２１０は、記憶部２３０に記憶した差分ソースコードＤＳＣのうち相手先の移動体１１０（ｉ）の機種情報ＭＩに対応する差分ソースコードＤＳＣを特定し、特定した差分ソースコードＤＳＣおよび相手先の移動体１１０（ｉ）における記憶部２３０に記憶された現行のソースコードＳＣから相手先の移動体１１０（ｉ）に搭載された制御装置１１３（１）〜１１３（ｍ）の最新のソースコードＮＳＣを生成し（生成制御ステップ）、生成した最新のソースコードＮＳＣを最新のオブジェクトコードＮＯＣに変換（所謂コンパイルまたはアセンブル）する（変換制御ステップ）。後述する送信制御ステップにおいて、制御部２１０は、変換した最新のオブジェクトコードＮＯＣを相手先の移動体１１０（ｉ）に搭載された制御装置１１３（１）〜１１３（ｍ）に送信する。そして、相手先の移動体１１０（ｉ）において、端末装置（ｉ）または制御装置１１３（１）〜１１３（ｍ）は、最新のオブジェクトコードＮＯＣを最新のソフトウェアＦＷとして書き換える。
【０１０６】
また、書き換え制御ステップでは、制御部２１０は、記憶部２３０に記憶した差分ソースコードＤＳＣのうち自身の移動体１１０（１），１１０（２）の機種情報ＭＩに対応する差分ソースコードＤＳＣを特定し、特定した差分ソースコードＤＳＣおよび自身の移動体１１０（１），１１０（２）における記憶部２３０に記憶された現行のソースコードＳＣから自身の移動体１１０（１），１１０（２）に搭載された制御装置１１３（１）〜１１３（ｍ）の最新のソースコードＮＳＣを生成し（生成制御ステップ）、生成した最新のソースコードＮＳＣを最新のオブジェクトコードＮＯＣに変換（所謂コンパイルまたはアセンブル）する（変換制御ステップ）。送信制御ステップにおいて、制御部２１０は、変換した最新のオブジェクトコードＮＯＣを自身の移動体１１０（１），１１０（２）に搭載された制御装置１１３（１）〜１１３（ｍ）に送信する。そして、自身の移動体１１０（１），１１０（２）において、端末装置（ｉ）または制御装置１１３（１）〜１１３（ｍ）は、最新のオブジェクトコードＮＯＣを最新のソフトウェアＦＷとして書き換える。
【０１０７】
なお、専用の端末装置２００（２）（配信元）は、端末装置２００（１）（配信元）から最新のオブジェクトコードＮＯＣを受信してもよいし、生成制御手段Ｑ３１および変換制御手段Ｑ３２を有することから、制御装置１１３（１）〜１１３（ｍ）のソースコードＳＣ〜ＳＣ、差分ソースコードＤＳＣを受信してもよい。また、同様に、専用の端末装置２００（１）（配信元）は、端末装置２００（２）（配信元）から最新のオブジェクトコードＮＯＣを受信してもよいし、生成制御手段Ｑ３１および変換制御手段Ｑ３２を有することから、制御装置１１３（１）〜１１３（ｍ）のソースコードＳＣ〜ＳＣ、差分ソースコードＤＳＣを受信してもよい。
【０１０８】
（送信制御ステップ）
送信制御ステップでは、制御部２１０は、差分ソースコードＤＳＣを用いて変換した最新のオブジェクトコードＮＯＣを、他の移動体１１０（ｉ）に短距離無線通信部２４０および短距離無線通信網ＬＮを介して送信する、および／または、自身の移動体１１０（１），１１０（２）における制御装置１１３（１）〜１１３（ｍ）に送信する。
【０１０９】
また、送信制御ステップでは、制御部２１０は、記憶部２３０に記憶した差分ソースコードＤＳＣを移動体１１０（２），１１０（１）（配信元）に短距離無線通信部２４０および短距離無線通信網ＬＮを介して送信する。
【０１１０】
詳しくは、制御部２１０は、記憶部２３０に記憶した機種情報ＭＩのうち相手先の移動体１１０（ｉ）の機種情報ＭＩを特定し、記憶部２３０に記憶した差分ソースコードＤＳＣ〜ＤＳＣのうち相手先の移動体１１０（ｉ）の機種情報ＭＩに対応する差分ソースコードＤＳＣ、または、差分ソースコードＤＳＣを用いて変換した最新のオブジェクトコードＮＯＣを相手先の移動体１１０（ｉ）に短距離無線通信部２４０および短距離無線通信網ＬＮを介して送信する。本実施の形態では、制御部２１０は、機種情報管理データベースＤＢ１に記憶した機種情報ＭＩのうち相手先の移動体１１０（ｉ）の機種情報ＭＩを特定する。このとき、制御部２１０は、相手先の移動体１１０（ｉ）とは通信状態となっており、相手先の移動体１１０（ｉ）の機種情報ＭＩを取得している。また、制御部２１０は、更新用ソフトウェア管理データベースＤＢ２に記憶した更新用ソフトウェアコードＷＦＷＣのうち特定した相手先の移動体１１０（ｉ）の機種情報ＭＩに対応する更新用ソフトウェアコードＷＦＷＣを特定する。そして、制御部２１０は、更新用ソフトウェア保存データベースＤＢ３に記憶した差分ソースコードＤＳＣのうち特定した更新用ソフトウェアコードＷＦＷＣに対応する差分ソースコードＤＳＣを相手先の移動体１１０（ｉ）に短距離無線通信部２４０および短距離無線通信網ＬＮを介して送信する。
【０１１１】
ここで、制御部２１０は、差分ソースコードＤＳＣを相手先の移動体１１０（ｉ）に送信するに先立って、記憶部２３０に記憶した差分ソースコードＤＳＣの更新情報ＲＩを相手先の移動体１１０（ｉ）に短距離無線通信部２４０および短距離無線通信網ＬＮを介して送信してもよい。
【０１１２】
こうすることで、相手先の移動体１１０（ｉ）において、制御装置１１３（１）〜１１３（ｍ）の書き換え前のソフトウェアＦＷのバージョンＶＲ等の更新情報ＲＩと更新用ソフトウェアＷＦＷのバージョンＶＲ等の更新情報ＲＩとを照合し、制御装置１１３（１）〜１１３（ｍ）の書き換え前のソフトウェアＦＷが最新のものか否かを判断し、最新のものではないと判断した場合には、端末装置２００（１）（配信元）または端末装置２００（２）（配信元）に差分ソースコードＤＳＣを要求する一方、最新のものであると判断した場合には、端末装置２００（１）（配信元）または端末装置２００（２）（配信元）に差分ソースコードＤＳＣを要求しないようにすることができる。これにより、差分ソースコードＤＳＣを相手先の移動体１１０（ｉ）に送信する前に、相手先の移動体１１０（ｉ）において、事前に制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷが最新のものか否かを認識することができ、従って、差分ソースコードＤＳＣの相手先の移動体１１０（ｉ）への無駄な送信動作を省くことができる。
【０１１３】
また、制御部２１０は、差分ソースコードＤＳＣを相手先の移動体１１０（ｉ）に送信するに先立って、相手先の移動体１１０（ｉ）における制御装置１１３（１）〜１１３（ｍ）の書き換え前のソフトウェアＦＷの更新情報ＲＩを相手先の移動体１１０（ｉ）から受信し、受信したソフトウェアＦＷのバージョンＶＲ等の更新情報ＲＩと記憶部２３０に記憶した差分ソースコードＤＳＣのバージョンＶＲ等の更新情報ＲＩとを照合し、制御装置１１３（１）〜１１３（ｍ）の書き換え前のソフトウェアＦＷが最新のものか否かを判断し、最新のものではないと判断した場合には、相手先の移動体１１０（ｉ）に差分ソースコードＤＳＣを送信する一方、最新のものであると判断した場合には、相手先の移動体１１０（ｉ）に差分ソースコードＤＳＣを送信しないようにする。
【０１１４】
こうすることで、更新用ソフトウェアＷＦＷを相手先の移動体１１０（ｉ）に送信する前に、端末装置２００（１）（配信元）または端末装置２００（２）（配信元）において、事前に制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷが最新のものか否かを認識することができ、従って、差分ソースコードＤＳＣの相手先の移動体１１０（ｉ）への無駄な送信動作を省くことができる。
【０１１５】
ところで、全種類の移動体１１０（１）〜１１０（ｎ）、全機種の移動体１１０（１）〜１１０（ｎ）に対して機種情報ＭＩに関連付けられた差分ソースコードＤＳＣを記憶部２３０に記憶すると、それだけデータ量、ひいては記憶部２３０の記憶容量および通信時間が大きくなる。
【０１１６】
かかる観点から、更新用ソフトウェア格納データベースＤＢは、移動体１１０（１）〜１１０（ｎ）の管轄エリアを示すエリア情報ＡＲ（後述する図１０および図１１参照）を端末装置２００（１），２００（２）（配信元）の端末識別情報ＩＤ（図１１参照）に関連付けて格納している。ここで、端末装置２００（１）〜２００（ｎ）の端末識別情報ＩＤとしては、端末装置２００（１）〜２００（ｎ）を一意に区別できるものであれば、何れのものであってもよく、それには限定されないが、シリアル番号や電話番号を例示できる。
【０１１７】
図１０は、図４に示す機種情報管理データベースＤＢ１においてエリア情報ＡＲを追加したデータ構造の一例を示す模式図である。図１１は、サーバ１３０に備えられた記憶部１３３における更新用ソフトウェア格納データベースＤＢを構成するエリア情報管理データベースＤＢ４のデータ構造の一例を示す模式図である。
【０１１８】
更新用ソフトウェア格納データベースＤＢは、移動体１１０（１）〜１１０（ｎ）の管轄エリアを示すエリア情報ＡＲを端末装置２００（１），２００（２）（配信元）の端末識別情報ＩＤに関連付けて格納している。
【０１１９】
本実施の形態では、更新用ソフトウェア格納データベースＤＢは、エリア情報管理データベースＤＢ４をさらに備えている。また、図４に示す機種情報管理データベースＤＢ１においてエリア情報ＡＲが追加されている。
【０１２０】
エリア情報管理データベースＤＢ４には、端末装置２００（１），２００（２）の端末識別情報ＩＤ（配信元）と、エリア情報ＡＲと、端末装置２００（１），２００（２）（配信元）に対して登録された端末装置〔２００（２）〜２００（ｎ）〕，〔２００（１），２００（３）〜２００（ｎ）〕の端末識別情報ＲＩＤと、機種コードＭＣとが登録されている。
【０１２１】
ここで、エリア情報管理データベースＤＢ４において、端末装置２００（１）〜２００（ｎ）の移動体１１０（１）〜１１０（ｎ）における最新バージョンの更新有無ＲＶＲは、制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷが最新バージョンに更新されていないときには「更新無」（具体的にはフラグ「０」）を記録している。そして、サーバ１３０は、最新バージョンに更新されると、更新された端末装置２００（ｉ）から最新バージョンに更新された旨の情報を受信し、更新された端末装置２００（ｉ）の移動体１１０（ｉ）の機種コードＭＣに対応する最新バージョンの更新有無ＲＶＲを「更新有」（具体的にはフラグ「１」）にする。
【０１２２】
なお、サーバ１３０および／または端末装置２００（１），２００（２）（配信元）は、エリア情報管理データベースＤＢ４の機種コードＭＣ（例えばＷＲＫ１）に対して最新バージョンの更新有無ＲＶＲが全て「更新有」となった場合には、更新用ソフトウェア保存データベースＤＢ３において、全て「更新有」となった機種コードＭＣ（例えばＷＲＫ１）に対応する差分ソースコードＤＳＣを削除するようにしてもよい。
【０１２３】
そして、新しいバージョンのソフトウェアＦＷが開発された場合には、エリア情報管理データベースＤＢ４において、随時、最新バージョンの更新有無ＲＶＲを「更新無」（具体的にはフラグ「０」）にする（リセットする）。
【０１２４】
受信制御ステップでは、制御部２１０は、サーバ１３０から更新用ソフトウェア格納データベースＤＢにおける端末装置２００（１），２００（２）（配信元）の端末識別情報ＩＤに関連付けられたエリア情報ＡＲの機種情報ＭＩおよび機種情報ＭＩに関連付けられた差分ソースコードＤＳＣを広域通信網ＷＮおよび広域通信部２２０を介して受信する。本実施の形態では、制御部２１０は、サーバ１３０から端末装置２００（１），２００（２）（配信元）の端末識別情報ＩＤに関連付けられたエリア情報ＡＲの機種情報ＭＩおよび機種情報ＭＩに関連付けられた差分ソースコードＤＳＣを広域通信網ＷＮおよび広域通信部２２０を介して受信する。
【０１２５】
記憶制御ステップでは、制御部２１０は、サーバ１３０から受信したエリア情報ＡＲの機種情報ＭＩおよび機種情報ＭＩに関連付けられた差分ソースコードＤＳＣを記憶部２３０に記憶する。本実施の形態では、制御部２１０は、記憶部２３０において、サーバ１３０から受信した端末装置２００（１），２００（２）（配信元）の端末識別情報ＩＤに関連付けられたエリア情報ＡＲの機種情報ＭＩを機種情報管理データベースＤＢ１（図１０参照）に記憶し、サーバ１３０から受信した更新用ソフトウェアコードＷＦＷＣを機種情報ＭＩに関連付けて制御装置コードＣＣと共に更新用ソフトウェア管理データベースＤＢ２（図５参照）に記憶し、サーバ１３０から受信した差分ソースコードＤＳＣを更新用ソフトウェアコードＷＦＷＣに関連付けて更新用ソフトウェア保存データベースＤＢ３（図６参照）に記憶する。本構成によって制御部２１０は、自身と同一のエリア情報ＡＲを有する機種に関連する更新用ソフトウェアＷＦＷを選択的に記憶することが可能となる。
【０１２６】
〔専用の端末装置（非配信元）〕
図３に示すように、端末装置２００（３）〜２００（ｎ）（非配信元）は、端末装置２００（１），２００（２）（配信元）において、他の移動体１１０（ｉ）の機種情報ＭＩを持たない差分ソースコードＤＳＣを有している。詳しくは、端末装置２００（３）〜２００（ｎ）（非配信元）は、更新用ソフトウェア管理データベースＤＢ２、および、他の移動体１１０（ｉ）の機種情報ＭＩを持たない差分ソースコードＤＳＣを格納した更新用ソフトウェア保存データベースＤＢ３を有しているものの、機種情報管理データベースＤＢ１およびエリア情報管理データベースＤＢ４は有していない。
【０１２７】
［第２実施形態］
図１２から図１４は、第２実施形態に係るソフトウェア書き換えシステム１００の一例を模式的に示す概略構成図である。
【０１２８】
図１２は、汎用の端末装置３００が広域通信網ＷＮを介してサーバ１３０と通信している状態を示す模式図である。図１３は、図１２に示すソフトウェア書き換えシステム１００において、サーバ１３０と通信した汎用の端末装置３００が短距離無線通信網ＬＮを介して配信元になり得る専用の端末装置２００（１）と通信している状態を示す模式図である。図１４は、図１２に示すソフトウェア書き換えシステム１００において、サーバ１３０と通信した汎用の端末装置３００が短距離無線通信網ＬＮを介して実質的に配信元になれない専用の端末装置２００（３）と通信している状態を示す模式図である。
【０１２９】
第２実施形態に係るソフトウェア書き換えシステム１００は、第１実施形態に係るソフトウェア書き換えシステム１００において、汎用の端末装置３００を備えたものである。
【０１３０】
次に、汎用の端末装置３００のシステム構成について図１２から図１４を参照しながら以下に説明する。
【０１３１】
〔汎用の端末装置〕
−汎用の端末装置のハードウェア構成−
図１２から図１４に示すように、端末装置３００は、制御部３１０（コンピュータの一例）と、広域通信部３２０と、記憶部３３０と、短距離無線通信部３４０と、ユーザインタフェース部３５０とを備えている。なお、端末装置３００は、複数あってもよい。
【０１３２】
ここで、汎用の端末装置３００は、例えば、タブレット型コンピュータやスマートフォン等の多機能通信携帯端末装置とされている。端末装置２００（１）〜２００（ｎ）の端末識別情報ＩＤとしては、端末装置２００（１）〜２００（ｎ）を一意に区別できるものであれば、何れのものであってもよく、それには限定されないが、シリアル番号、国際移動体装置識別番号（ＩＭＥＩ：Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｍｏｂｉｌｅ  Ｅｑｕｉｐｍｅｎｔ  Ｉｄｅｎｔｉｆｉｅｒ番号）や電話番号を例示できる。
【０１３３】
（制御部）
制御部３１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等のいわゆるコンピュータからなる処理装置３１０ａと、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性メモリを含むメモリ装置３１０ｂとを有している。
【０１３４】
制御部３１０は、記憶部３３０に予め格納（インストール）されたソフトウェア書き換えプログラムＰＰ等のプログラムを実行することによって、制御部３１０に必要な各種の機能を実現するように構成されている。詳しくは、制御部３１０は、処理装置３１０ａが記憶部３３０に予め格納されたソフトウェア書き換えプログラムＰＰ等のプログラムをメモリ装置３１０ｂのＲＡＭ上にロードして実行することにより、各種の処理を行うようになっている。メモリ装置３１０ｂのＲＡＭは、制御部３１０に対して作業用のワークエリアを提供する。
【０１３５】
本実施の形態では、制御部３１０は、通信時におけるデータの送受信、各種の入出力制御および演算処理の制御を行う。
【０１３６】
（広域通信部）
広域通信部３２０は、制御部３１０のデータラインに電気的に接続されている。広域通信部３２０は、制御部３１０の指示の下、サーバ１３０の広域通信部１３２（図１２参照）と同一の通信プロトコル（通信規約）で通信可能とされている。通信時に送受信されるデータは、通信プロトコルに従うように広域通信部３２０で変換される。広域通信部３２０は、サーバ１３０の記憶部１３３に記録された移動体１１０（１）〜１１０（ｎ）における制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷに関する情報をサーバ１３０から受信する。
【０１３７】
（記憶部）
記憶部３３０は、制御部３１０のデータラインに電気的に接続されている。記憶部３３０は、制御部３１０の指示の下、情報が書き込み制御および読み出し制御される。記憶部３３０は、この例では、フラッシュメモリ等の大容量記憶装置とされている。ここで、記憶部３３０には、ソフトウェア書き換えプログラムＰＰが予め格納（インストール）される。
【０１３８】
なお、ソフトウェア書き換えプログラムＰＰは、この例では、タブレット型コンピュータやスマートフォン等の多機能通信携帯端末装置等に用いられるプログラム、所謂アプリと称されるものであり、図示しないプログラムサーバからインターネット等の通信手段を介してダウンロードされたものである。
【０１３９】
記憶部３３０には、機種情報管理データベースＤＢ１、更新用ソフトウェア管理データベースＤＢ２および更新用ソフトウェア保存データベースＤＢ３が格納される。
【０１４０】
機種情報管理データベースＤＢ１、更新用ソフトウェア管理データベースＤＢ２および更新用ソフトウェア保存データベースＤＢ３のデータ構造は、図４から図６に示すサーバ１３０における記憶部１３３に格納された機種情報管理データベースＤＢ１、更新用ソフトウェア管理データベースＤＢ２および更新用ソフトウェア保存データベースＤＢ３と同様のものであり、ここでは説明を省略する。
【０１４１】
（短距離無線通信部）
端末装置３００における短距離無線通信部３４０は、端末装置２００（１）〜２００（ｎ）における短距離無線通信部２４０と短距離無線通信を行う。
【０１４２】
（ユーザインタフェース部）
ユーザインタフェース部３５０は、ディスプレイ装置等の出力装置やタッチパネル等の入力装置を含んでいる。ユーザインタフェース部３５０では、典型的には、ソフトウェア書き換えプログラムＰＰの起動制御や、進捗情報の表示などが可能である。
【０１４３】
−汎用の端末装置のソフトウェア構成−
図１５は、図１２から図１４に示す汎用の端末装置３００のソフトウェア構成の一例を示すブロック図である。
【０１４４】
図１５に示すように、制御部３１０は、受信制御手段Ｑ１と、記憶制御手段Ｑ２と、書き換え制御手段Ｑ３と、送信制御手段Ｑ４とを備える手段として機能する。すなわち、ソフトウェア書き換えプログラムＰＰは、受信制御手段Ｑ１に対応する受信制御ステップと、記憶制御手段Ｑ２に対応する記憶制御ステップと、書き換え制御手段Ｑ３に対応する書き換え制御ステップと、送信制御手段Ｑ４に対応する送信制御ステップとを含むステップを制御部３１０に実行させる。
【０１４５】
送信制御ステップでは、制御部３１０は、最新のオブジェクトコードＮＯＣを生成制御手段Ｑ３１および変換制御手段Ｑ３２を有するか否かに関わらず移動体１１０（１）〜１１０（ｎ）に短距離無線通信部３４０および短距離無線通信網ＬＮを介して送信する。
【０１４６】
送信制御ステップでは、制御部３１０は、差分ソースコードＤＳＣを生成制御手段Ｑ３１および変換制御手段Ｑ３２を有する移動体１１０（１），１１０（２）に短距離無線通信部３４０および短距離無線通信網ＬＮを介して送信する。
【０１４７】
なお、これ以外の制御部３１０で行う受信制御ステップおよび記憶制御ステップの処理は、前述した専用の端末装置２００（１），２００（２）における制御部２１０の受信制御ステップおよび記憶制御ステップの処理と同様であり、ここでは説明を省略する。
【０１４８】
また、第１実施形態に係るソフトウェア書き換えシステム１００の構成と、第２実施形態に係るソフトウェア書き換えシステム１００の構成とを組み合わせてもよい。
【０１４９】
［ソフトウェア書き換えシステムにおけるソフトウェア書き換え処理］
次に、ソフトウェア書き換えシステム１００におけるソフトウェア書き換え処理の一例について図１６から図２０を参照しながら以下に説明する。
【０１５０】
図１６は、サーバ１３０と専用の端末装置２００（１），２００（２）（配信元）および／または汎用の端末装置３００とが広域通信網ＷＮを介して通信している例（ダウンロード処理の一例）を示すフローチャーである。図１７は、サーバ１３０と通信した専用の端末装置２００（１），２００（２）（配信元）および／または汎用の端末装置３００と専用の端末装置２００（２），２００（１）（配信元）が短距離無線通信網ＬＮを介して通信している例（配信処理の一例）を示すフローチャートである。また、図１８は、サーバ１３０と通信した専用の端末装置２００（１），２００（２）（配信元）および／または汎用の端末装置３００と専用の端末装置２００（３）〜２００（ｎ）（非配信元）とが短距離無線通信網ＬＮを介して通信している例（配信処理の他の例）を示すフローチャートである。
【０１５１】
なお、図１６および図１７に示す処理例では、エリア情報管理データベースＤＢ４（図１１参照）の端末装置２００（１），２００（２）（配信元）の端末識別情報ＩＤに関連付けられたエリア情報ＡＲを追加した機種情報管理データベースＤＢ１（図１０参照）を用いた場合を例にとって説明する。
【０１５２】
−図１６に示すダウンロード処理の処理例−
図１６に示すソフトウェア書き換え処理のフローチャートでは、先ず、サーバ１３０における制御部１３１は、広域通信部１３２から広域通信網ＷＮを介して専用の端末装置２００（１），２００（２）（配信元）および／または汎用の端末装置３００（以下、単に端末装置２００，３００ということがある。）と通信を確立し（ステップＳｓ１）、端末装置２００，３００からの通信を待ち受けて（ステップＳｓ２）、端末装置２００，３００からの応答があるまで（ステップＳｓ２：Ｎｏ）待機する。
【０１５３】
一方、端末装置２００，３００における制御部２１０，３１０は、十分な通信インフラが整っている地域において、広域通信部２２０，３２０から広域通信網ＷＮを介してサーバ１３０と通信を確立し（ステップＳｔ１１）、サーバ１３０からの通信を待ち受けて（Ｓｔ１２）、サーバ１３０からの応答があるまで（ステップＳｔ１２：Ｎｏ）待機する。
【０１５４】
次に、サーバ１３０における制御部１３１は、端末装置２００，３００からの応答があると（ステップＳｓ２：Ｙｅｓ）、端末装置２００，３００の端末識別情報ＩＤに関連付けられたエリア情報ＡＲの移動体１１０の機種情報ＭＩおよび更新用ソフトウェアＷＦＷの更新情報ＲＩについて端末装置２００，３００と同期し（ステップＳｓ３）、更新用ソフトウェアＷＦＷを含む情報を端末装置２００，３００に送信する（ステップＳｓ４）。
【０１５５】
詳しくは、サーバ１３０における制御部１３１は、端末装置２００（１），２００（２）（配信元）の端末識別情報ＩＤを受信し、記憶部１３３から、端末装置２００（１），２００（２）（配信元）の端末識別情報ＩＤに関連付けられたエリア情報ＡＲ（例えば端末識別情報ＩＤが＃７７７７の場合、エリア情報がＡ４：図１１参照）の機種情報ＭＩ（例えばエリア情報がＡ４の場合、機種コードがＢＴ１，…：図１０参照）および機種情報ＭＩに関連付けられた更新用ソフトウェアＷＦＷ（例えば機種コードがＢＴ１，…の場合、更新用ソフトウェアコードＢＴ１ＥＣＵ１ＦＷ１，…：図５参照の差分ソースコードＢＴ１ＥＣＵ１ＦＷ１０＿１１．ＴＸＴ，…：図６参照）を読み出し、これらの情報を広域通信網ＷＮおよび広域通信部２２０を介して端末装置２００（１），２００（２）（配信元）へ送信する。
【０１５６】
すなわち、サーバ１３０における制御部１３１は、エリア情報ＡＲに対応するデータを格納した機種情報管理データベースＤＢ１、更新用ソフトウェア管理データベースＤＢ２および更新用ソフトウェア保存データベースＤＢ３を広域通信網ＷＮおよび広域通信部２２０を介して端末装置２００（１），２００（２）（配信元）へ送信する。
【０１５７】
一方、端末装置２００，３００における制御部２１０，３１０は、サーバ１３０からの応答があると（ステップＳｔ１２：Ｙｅｓ）、端末装置２００，３００の端末識別情報ＩＤに関連付けられたエリア情報ＡＲの移動体１１０の機種情報ＭＩおよび更新用ソフトウェアＷＦＷの更新情報ＲＩについてサーバ１３０と同期し（ステップＳｔ１３）、個々の移動体１１０について制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷが最新のもの（例えば最新バージョンまたは最新年月日時刻のもの）でない場合には（ステップＳｔ１４：Ｎｏ）、更新用ソフトウェアＷＦＷを含む情報を受信し（ステップＳｔ１５）、受信した情報を記憶部２３０，３３０に記憶する。
【０１５８】
詳しくは、端末装置２００，３００における制御部２１０，３１０は、サーバ１３０から端末装置２００（１），２００（２）（配信元）の端末識別情報ＩＤに関連付けられたエリア情報ＡＲ（例えば端末識別情報ＩＤが＃７７７７の場合、エリア情報がＡ４：図１１参照）の機種情報ＭＩ（例えばエリア情報がＡ４の場合、機種コードがＢＴ１，…：図１０参照）および機種情報ＭＩに関連付けられた更新用ソフトウェアＷＦＷ（例えば機種コードがＢＴ１，…の場合、更新用ソフトウェアコードＢＴ１ＥＣＵ１ＦＷ１，…：図５参照の差分ソースコードＢＴ１ＥＣＵ１ＦＷ１０＿１１．ＴＸＴ，…：図６参照）を広域通信網ＷＮおよび広域通信部２２０を介して受信し、受信した情報を記憶部２３０，３３０に記憶する。
【０１５９】
すなわち、端末装置２００，３００における制御部２１０，３１０は、エリア情報ＡＲに対応するデータを格納した機種情報管理データベースＤＢ１、更新用ソフトウェア管理データベースＤＢ２および更新用ソフトウェア保存データベースＤＢ３を広域通信網ＷＮおよび広域通信部２２０を介してサーバ１３０から受信（ダウンロード）し、受信した情報を記憶部２３０，３３０に記憶する。
【０１６０】
そして、ダウンロード先の移動体１１０（１），１１０（２）では、自身の端末装置２００（１），２００（２）において、制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷが最新のもの（例えば最新バージョンまたは最新年月日時刻のもの）でない場合には、制御部２１０又は自身に搭載されている制御装置１１３（１）〜１１３（ｍ）は、更新用ソフトウェアＷＦＷに基づいて制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷを書き換える。
【０１６１】
−図１７および図１８に示す配信処理の処理例−
図１７および図１８に示すソフトウェア書き換え処理のフローチャートでは、先ず、専用の端末装置２００（１），２００（２）（配信元）および／または汎用の端末装置３００における制御部２１０，３１０（図１７および図１８中の左側参照）は、短距離無線通信網ＬＮが設置されている地域において、短距離無線通信部２４０，３４０から短距離無線通信網ＬＮを介して専用の端末装置２００（２），２００（１）（配信元）（図１７参照）および専用の端末装置２００（３）〜２００（ｎ）（非配信元）（図１８参照）と通信を確立し（ステップＳｔ２１）、サーバ１３０からの通信を待ち受けて（Ｓｔ２２）、サーバ１３０からの応答があるまで（ステップＳｔ２２：Ｎｏ）待機する。
【０１６２】
一方、専用の端末装置２００（２），２００（１）（配信元）および専用の端末装置２００（３）〜２００（ｎ）（非配信元）における制御部２１０（図１７および図１８中の右側参照）は、短距離無線通信部２４０，３４０から短距離無線通信網ＬＮを介して専用の端末装置２００（１），２００（２）（配信元）および／または汎用の端末装置３００と通信を確立し（ステップＳｔ３１）、サーバ１３０からの通信を待ち受けて（Ｓｔ３２）、サーバ１３０からの応答があるまで（ステップＳｔ３２：Ｎｏ）待機する。
【０１６３】
次に、専用の端末装置２００（１），２００（２）（配信元）および／または汎用の端末装置３００における制御部２１０，３１０（図１７および図１８中の左側参照）は、専用の端末装置２００（２），２００（１）（配信元）および専用の端末装置２００（３）〜２００（ｎ）（非配信元）からの応答があると（ステップＳｓ２２：Ｙｅｓ）、移動体１１０の機種情報ＭＩおよび更新用ソフトウェアＷＦＷの更新情報ＲＩについて専用の端末装置２００（２），２００（１）（配信元）および専用の端末装置２００（３）〜２００（ｎ）（非配信元）と同期し（ステップＳｓ２３）、更新用ソフトウェアＷＦＷを含む情報を送信する（ステップＳｓ２４）。
【０１６４】
詳しくは、専用の端末装置２００（１），２００（２）（配信元）および／または汎用の端末装置３００における制御部２１０，３１０は、記憶部２３０，３３０から、機種情報ＭＩおよび機種情報ＭＩに関連付けられた更新用ソフトウェアＷＦＷを読み出し、これらの情報を短距離無線通信網ＬＮおよび短距離無線通信部２４０，３４０を介して専用の端末装置２００（２），２００（１）（配信元）および専用の端末装置２００（３）〜２００（ｎ）（非配信元）へ送信する。
【０１６５】
すなわち、専用の端末装置２００（１），２００（２）（配信元）および／または汎用の端末装置３００における制御部２１０，３１０（図１７参照）は、機種情報管理データベースＤＢ１、更新用ソフトウェア管理データベースＤＢ２および更新用ソフトウェア保存データベースＤＢ３を短距離無線通信網ＬＮおよび短距離無線通信部２４０，３４０を介して専用の端末装置２００（２），２００（１）（配信元）へ送信する。また、専用の端末装置２００（１），２００（２）（配信元）および／または汎用の端末装置３００における制御部２１０，３１０（図１８参照）は、更新用ソフトウェア管理データベースＤＢ２および更新用ソフトウェア保存データベースＤＢ３を短距離無線通信網ＬＮおよび短距離無線通信部２４０，３４０を介して専用の端末装置２００（３）〜２００（ｎ）（非配信元）へ送信する。
【０１６６】
一方、専用の端末装置２００（２），２００（１）（配信元）および専用の端末装置２００（３）〜２００（ｎ）（非配信元）における制御部２１０（図１７および図１８中の右側参照）は、専用の端末装置２００（１），２００（２）（配信元）および／または汎用の端末装置３００からの応答があると（ステップＳｔ３２：Ｙｅｓ）、移動体１１０（１）〜１１０（ｎ）の機種情報ＭＩおよび更新用ソフトウェアＷＦＷの更新情報ＲＩについて専用の端末装置２００（１），２００（２）（配信元）および／または汎用の端末装置３００と同期し（ステップＳｔ３３）、制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷが最新のもの（例えば最新バージョンまたは最新年月日時刻のもの）でない場合には（ステップＳｔ３４：Ｎｏ）、更新用ソフトウェアＷＦＷを含む情報を受信し（ステップＳｔ３５）、受信した情報を記憶部２３０に記憶する。
【０１６７】
詳しくは、専用の端末装置２００（２），２００（１）（配信元）（図１７参照）は、専用の端末装置２００（１），２００（２）（配信元）および／または汎用の端末装置３００から機種情報ＭＩおよび機種情報ＭＩに関連付けられた更新用ソフトウェアＷＦＷを短距離無線通信網ＬＮおよび短距離無線通信部２４０，３４０を介して受信し、受信した情報を記憶部２３０に記憶する。また、専用の端末装置２００（３）〜２００（ｎ）（非配信元）は、専用の端末装置２００（１），２００（２）（配信元）および／または汎用の端末装置３００から更新用ソフトウェアＷＦＷを短距離無線通信網ＬＮおよび短距離無線通信部２４０，３４０を介して受信し、受信した情報を記憶部２３０に記憶する。
【０１６８】
すなわち、専用の端末装置２００（２），２００（１）（配信元）（図１７参照）は、機種情報管理データベースＤＢ１、更新用ソフトウェア管理データベースＤＢ２および更新用ソフトウェア保存データベースＤＢ３を記憶部２３０に記憶する。また、専用の端末装置２００（３）〜２００（ｎ）（非配信元）は、更新用ソフトウェア管理データベースＤＢ２および更新用ソフトウェア保存データベースＤＢ３を記憶部２３０に記憶する。
【０１６９】
そして、配信先の移動体１１０（１）〜１１０（ｎ）では、端末装置２００（１）〜２００（ｎ）において、制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷが最新のもの（例えば最新バージョンまたは最新年月日時刻のもの）でない場合には、制御部２１０又は移動体１１０（１）〜１１０（ｎ）に搭載されている制御装置１１３（１）〜１１３（ｍ）は、更新用ソフトウェアＷＦＷに基づいて制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷを書き換える。
【０１７０】
図１９および図２０は、図１から図１１に示す第１実施形態のソフトウェア書き換えシステム１００におけるソフトウェア書き換え処理の一例を示すフローチャートである。図１９は、その前半部分の処理例を示しており、図２０は、その後半部分の処理例を示している。
【０１７１】
図１９および図２０に示す処理例では、サーバ１３０を据え置き型のコンピュータとし、専用の端末装置２００（１）（配信元）において最新のオブジェクトコードＮＯＣを生成し、生成した最新のオブジェクトコードＮＯＣを用いて移動体１１０（１）の自身に搭載されている制御装置１１３に対してソフトウェアＦＷを書き換える場合を例にとって説明する。
【０１７２】
図１９に示すように、先ず、ステップＳ１では、制御装置１１３の開発者は、制御装置１１３のソフトウェアＦＷの最新バージョンのソースコードＳＣをサーバ１３０に登録操作を行い、ステップＳ１．１では、サーバ１３０は、登録操作されたソフトウェアＦＷのソースコードＳＣを記憶部１３３に保管する。このとき、サーバ１３０は、ソースコードＳＣが不正な場合には、記憶部１３３に保管しない。
【０１７３】
次に、ステップＳ１．２では、サーバ１３０は、登録したソフトウェアＦＷのソースコードＳＣおよび過去の１又は複数の旧バージョンのソースコードＳＣから最新バージョンの旧バージョンに対する差分ソースコードＤＳＣを生成し、生成した差分ソースコードＤＳＣを更新用ソフトウェア保存データベースＤＢ３に保管する。
【０１７４】
次に、ステップＳ２では、サーバ１３０の管理者、システムは、制御装置１１３のソフトウェアＦＷを最新バージョンのソフトウェアＦＷに書き換えるようにサーバ１３０に指示する。
【０１７５】
次に、ステップＳ２．１では、サーバ１３０は、サーバ１３０の管理者、システムからの書き換え指示に対する状態を管理し、ステップＳ２．２では、サーバ１３０は、端末装置２００（１）への接続を要求する。このとき、サーバ１３０は、端末装置２００（１）への接続要求に対し、端末装置２００（１）から接続がない場合、リトライを行う。また、サーバ１３０は、一定回数リトライしても端末装置２００（１）からの接続がない場合は、書き換え動作を一時中断し、端末装置２００（１）からサーバ１３０に起動したことが伝えられたとき、再度接続要求を行う。
【０１７６】
次に、ステップＳ２．２．１では、端末装置２００（１）は、サーバ１３０からの接続要求に対し、接続を実施する。このとき、端末装置２００（１）は、一定時間以内にサーバ１３０から肯定応答がない場合、リトライを行う。端末装置２００（１）は、一定回数リトライしてもサーバ１３０から肯定応答がない場合、接続を終了する。また、端末装置２００（１）は、サーバ１３０から否定応答が返された場合、接続を終了する。
【０１７７】
また、ステップＳ２．２．１では、サーバ１３０は、端末装置２００（１）からの接続に対し、肯定応答する。このとき、サーバ１３０は、不正な端末装置から接続された場合、応答しない。
【０１７８】
次に、ステップＳ３では、端末装置２００（１）は、制御装置１１３に差分ソースコードＤＳＣの送付指示を送信する。このとき、端末装置２００（１）は、制御装置１１３からソフトウェアＦＷのバージョンＶＲが送信されない場合、もしくは、制御装置１１３から不正なソフトウェアのバージョンが送信された場合、サーバ１３０との接続を終了する。
【０１７９】
また、ステップＳ３では、制御装置１１３は、端末装置２００（１）にソフトウェアＦＷのバージョンＶＲを送信（ソフトウェアＦＷの送付指示を応答）する。このとき、制御装置１１３は、不正な端末装置からの指示には応答しない。
【０１８０】
次に、ステップＳ４では、端末装置２００（１）は、サーバ１３０に制御装置１１３のソフトウェアＦＷのバージョンＶＲを送信する。このとき、端末装置２００（１）は、一定時間以内にサーバ１３０から肯定応答がない場合、リトライを行う。端末装置２００（１）は、一定回数リトライしてもサーバ１３０から肯定応答がない場合、サーバ１３０との接続を終了する。また、端末装置２００（１）は、サーバ１３０から否定応答が返された場合、サーバ１３０との接続を終了する。
【０１８１】
また、ステップＳ４では、サーバ１３０は、端末装置２００（１）からのソフトウェアＦＷのバージョンＶＲの送信に対し、肯定応答する。このとき、サーバ１３０は、受信したソフトウェアＦＷのバージョンＶＲが不正な場合、否定応答する。また、サーバ１３０は、一定時間以内に端末装置２００（１）からソフトウェアＦＷのバージョンＶＲが送信されない場合、端末装置２００（１）との接続を終了する。
【０１８２】
次に、ステップＳ２．３では、サーバ１３０は、保有する差分ソースコードＤＳＣから、端末装置２００（１）に送信するものを選択する。
【０１８３】
次に、ステップＳ２．４では、サーバ１３０は、差分ソースコードＤＳＣを、書き換え先の制御装置１１３が紐付いている端末装置２００（１）へ送信する。このとき、サーバ１３０は、一定時間以内に端末装置２００（１）から肯定応答がない場合、リトライを行う。サーバ１３０は、一定回数リトライしても端末装置２００（１）から肯定応答がない場合、書き換え動作を断念する（書き換え状態：失敗とする）。また、サーバ１３０は、端末装置２００（１）から否定応答が返された場合、書き換え動作を断念する（書き換え状態：失敗とする）。
【０１８４】
次に、ステップＳ２．４．１では、端末装置２００（１）は、サーバ１３０から送信された差分ソースコードＤＳＣを自身が保有するソースコードＳＣに反映させ、最新のソースコードＮＳＣを生成する。このとき、端末装置２００（１）は、一定時間以内にサーバ１３０から差分ソースコードＤＳＣが送信されない場合、サーバ１３０との接続を終了する。
【０１８５】
次に、ステップＳ２．４．２では、端末装置２００（１）は、生成した最新のソースコードＮＳＣを最新のオブジェクトコードＮＯＣに変換し（この例ではコンパイルし）、最新のオブジェクトコードＮＯＣを生成する。このとき、端末装置２００（１）は、変換結果（この例ではコンパイル結果）が不可（ＮＧ）の場合、サーバ１３０へ否定応答する。
【０１８６】
また、ステップＳ２．４では、端末装置２００（１）は、サーバ１３０からの差分ソースコードＤＳＣの送信に対し、肯定応答する。このとき、端末装置２００（１）は、変換結果（この例ではコンパイル結果）が不可（ＮＧ）の場合、サーバ１３０へ否定応答する。
【０１８７】
図２０に示すように、次に、ステップＳ２．５では、サーバ１３０は、端末装置２００（１）への接続終了を指示する。このとき、サーバ１３０は、一定時間以内に端末装置２００（１）から応答がない場合、通信を終了する。
【０１８８】
また、ステップＳ２．５では、端末装置２００（１）は、サーバ１３０からの接続終了の指示に対し、肯定応答する。
【０１８９】
次に、ステップＳ２．６では、サーバ１３０は、サーバ１３０の管理者、システムからの書き換え指示に対する状態を管理する。
【０１９０】
次に、ステップＳ５では、端末装置２００（１）は、制御装置１１３に書き換え指示を送信する。このとき、端末装置２００（１）は、一定時間以内に制御装置１１３から肯定応答がない場合、リトライを行う。端末装置２００（１）は、一定回数リトライしても制御装置１１３から肯定応答がない場合、書き換えを断念し、書き換え失敗をサーバ１３０に連絡する。また、端末装置２００（１）は、書き換え指示に対し、否定応答が返された場合、書き換えを断念し、書き換え失敗をサーバ１３０に連絡する。サーバ１３０は、書き換え失敗の連絡を受けると、エリア情報管理データベースＤＢ４における最新バージョンの更新有無ＲＶＲ（図１１参照）を「更新無」（具体的にはフラグ「０」）にする。
【０１９１】
また、ステップＳ５では、制御装置１１３は、端末装置２００（１）からの書き換え指示に対し、肯定応答する。このとき、制御装置１１３は、不正な端末装置からの指示には応答しない。
【０１９２】
次に、ステップＳ６では、端末装置２００（１）は、制御装置１１３に、生成した最新のオブジェクトコードＮＯＣを送信する。このとき、端末装置２００（１）は、制御装置１１３から否定応答を返された場合、書き換え失敗をサーバ１３０に連絡する。サーバ１３０は、書き換え失敗の連絡を受けると、エリア情報管理データベースＤＢ４における最新バージョンの更新有無ＲＶＲ（図１１参照）を「更新無」（具体的にはフラグ「０」）にする。
【０１９３】
次に、ステップＳ６．１では、制御装置１１３は、端末装置２００（１）から送信されてきた最新のオブジェクトコードＮＯＣを書き換える。このとき、制御装置１１３は、最新のオブジェクトコードＮＯＣの書き換えに失敗した場合は、否定応答を返す。
【０１９４】
また、ステップＳ６では、制御装置１１３は、端末装置２００（１）からの最新のオブジェクトコードＮＯＣの送信に対し、肯定応答する。このとき、制御装置１１３は、不正な端末装置からの指示には応答しない。また、制御装置１１３は、最新のオブジェクトコードＮＯＣの書き換えに失敗した場合は、否定応答を返す。
【０１９５】
次に、ステップＳ７では、端末装置２００（１）は、サーバ１３０との接続を実施する。このとき、端末装置２００（１）は、一定時間以内にサーバ１３０から肯定応答がない場合、リトライを行う。端末装置２００（１）は、一定回数リトライしてもサーバ１３０から肯定応答がない場合、サーバ１３０との接続を終了する。また、端末装置２００（１）は、サーバ１３０から否定応答が返された場合、サーバ１３０との接続を終了する。
【０１９６】
また、ステップＳ７では、サーバ１３０は、端末装置２００（１）からの接続に対し、肯定応答する。このとき、サーバ１３０は、不正な端末装置から接続された場合、応答しない。
【０１９７】
次に、ステップＳ８では、端末装置２００（１）は、書き換え完了をサーバ１３０に連絡する。サーバ１３０は、書き換え完了の連絡を受けると、エリア情報管理データベースＤＢ４における最新バージョンの更新有無ＲＶＲ（図１１参照）を「更新有」（具体的にはフラグ「１」）にする。このとき、端末装置２００（１）は、書き換えに失敗した場合は、書き換え失敗をサーバ１３０に連絡する。サーバ１３０は、書き換え失敗の連絡を受けると、エリア情報管理データベースＤＢ４における最新バージョンの更新有無ＲＶＲ（図１１参照）を「更新無」（具体的にはフラグ「０」）にする。
【０１９８】
次に、ステップＳ８．１では、サーバ１３０は、サーバ１３０の管理者、システムからの書き換え指示に対する状態を管理する。
【０１９９】
また、ステップＳ８では、サーバ１３０は、端末装置２００（１）からの書き換え完了連絡に対し、肯定応答する。このとき、サーバ１３０は、端末装置２００（１）からの書き換え完了連絡が不正だった場合、書き換え状態を失敗とし、否定応答を返す。
【０２００】
次に、ステップＳ９では、サーバ１３０は、端末装置２００（１）への接続終了を指示する。このとき、サーバ１３０は、一定時間以内に端末装置２００（１）から応答がない場合、通信を終了する。
【０２０１】
また、ステップＳ９では、端末装置２００（１）は、サーバ１３０からの接続終了の指示に対し、肯定応答する。
【０２０２】
なお、以上説明した処理例では、最新のオブジェクトコードＮＯＣの制御装置１１３への書き換えを、端末装置２００（１）の移動体１１０（１）における制御装置１１３に行ったが、それに代えて或いは加えて、端末装置２００（１）と短距離無線通信を行って他の端末装置２００（２）〜２００（ｎ）の移動体１１０（２）〜１１０（ｎ）における制御装置１１３に行ってもよい。また、専用の端末装置２００（１）に代えて或いは加えて汎用の端末装置３００を用いてもよい。汎用の端末装置３００を用いる場合、移動体１１０（１）〜１１０（ｎ）における制御装置１１３のオブジェクトコードＯＣを最新のオブジェクトコードＮＯＣに書き換えることができる。複数の制御装置１１３（１）〜１１３（ｍ）に対しても同様にソフトウェアＦＷの書き換え処理を行うことができる。また、オブジェクトコードＮＯＣに代えて他の端末装置２００（２）（配信元）に差分ソースコードＤＳＣを送信してもよい。また、サーバ１３０と広域通信を行った端末装置を、専用の端末装置２００（１）（配信元）としたが、専用の端末装置２００（２）（配信元）としてもよい。また、サーバ１３０を据え置き型としたが、専用の端末装置２００（１），２００（２）および／または汎用の端末装置３００としてもよい。
【０２０３】
（本実施の形態について）
本実施の形態［第１実施形態に係る端末装置２００（１），２００（２）および第２実施形態に係る端末装置３００］によれば、差分ソースコードＤＳＣを用いるので、送信時間〔この例ではサーバ１３０から端末装置２００（１）〜２００（ｎ）に制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷを送信するための送信時間〕の短縮化を実現させることができる。しかも、差分ソースコードＤＳＣおよび現行のソースコードＳＣから最新のソースコードＮＳＣを生成し、生成した最新のソースコードＮＳＣを最新のオブジェクトコードＮＯＣに変換し、変換した最新のオブジェクトコードＮＯＣを制御装置１１３〜１１３に送信するので、ソフトウェアＦＷの差分から最新バージョンのソフトウェアＦＷを容易に生成することができ、これにより、制御装置１１３〜１１３で最新バージョンのソフトウェアＦＷを確実に実行することが可能となる。
【０２０４】
また、制御装置１１３〜１１３は、移動体１１０（１）〜１１０（ｎ）に搭載されていることで、送信時間〔この例ではサーバ１３０から端末装置２００（１）〜２００（ｎ）に移動体１１０（１）〜１１０（ｎ）に搭載された制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷを送信するための送信時間〕の短縮化を実現させることができる。しかも、変換した最新のオブジェクトコードＮＯＣを制御装置１１３〜１１３に送信するので、ソフトウェアＦＷの差分から最新バージョンのソフトウェアＦＷを容易に生成することができ、これにより、移動体１１０（１）〜１１０（ｎ）に搭載された制御装置１１３〜１１３で最新バージョンのソフトウェアＦＷを確実に実行することが可能となる。
【０２０５】
第１実施形態〔この例では移動体に設けられた専用の端末装置２００（１），２００（２）〕では、移動体１１０（１），１１０（２）に設けられ、移動体１１０（１），１１０（２）とは他の移動体［この例では〔１１０（２）〜１１０（ｎ）〕，〔１１０（１），１１０（３）〜１１０（ｎ）〕］と短距離無線通信網ＬＮを介して通信する短距離無線通信部２４０を備えていることで、短距離無線通信網ＬＮの通信範囲において移動体１１０（１）〜１１０（ｎ）に搭載された制御装置１１３〜１１３のソフトウェアＦＷを容易に書き換えることができる。
【０２０６】
第１実施形態〔この例では移動体に設けられた専用の端末装置２００（１），２００（２）〕では、最新のオブジェクトコードＮＯＣを自身の移動体〔この例では１１０（１），１１０（２）〕における制御装置１１３（１）〜１１３（ｍ）に送信することで、最新バージョンのソフトウェアＦＷに基づいて、自身の移動体〔この例では１１０（１），１１０（２）〕に搭載されている制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷを書き換えて最新のものに容易に更新することができる。これにより、自身の移動体〔この例では１１０（１），１１０（２）〕における制御装置１１３（１）〜１１３（ｍ）で最新バージョンのソフトウェアを確実に実行することができる。
【０２０７】
また、第１実施形態〔この例では移動体に設けられた専用の端末装置２００（１），２００（２）〕では、最新のオブジェクトコードＮＯＣを他の移動体１１０［この例では〔１１０（２）〜１１０（ｎ）〕，〔１１０（１），１１０（３）〜１１０（ｎ）〕］に短距離無線通信部２４０および短距離無線通信網ＬＮを介して送信することで、該他の移動体に搭載された制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷを書き換えて最新のものに容易に更新することができる。これにより、該他の移動体に搭載された制御装置１１３（１）〜１１３（ｍ）で最新バージョンのソフトウェアを確実に実行することができる。
【０２０８】
また、第１実施形態〔この例では移動体に設けられた専用の端末装置２００（１），２００（２）〕では、差分ソースコードＤＳＣを当該移動体〔この例では１１０（１），１１０（２）〕（配信元）から他の移動体〔この例では１１０（２），１１０（１）〕に短距離無線通信部２４０および短距離無線通信網ＬＮを介して送信することで、他の移動体〔この例では１１０（２），１１０（１）〕の端末装置〔この例では２００（２），２００（１）〕で送信されてきた差分ソースコードＤＳＣから最新のオブジェクトコードＮＯＣを生成することができ、それだけ当該端末装置と他の端末装置との間で通信時間を短縮化させることができる。
【０２０９】
第２実施形態（この例では多機能通信携帯端末装置の汎用の端末装置３００）では、端末装置３００が多機能通信携帯端末装置として機能し、電機機器〔この例では移動体１１０（１）〜１１０（ｎ）〕と短距離無線通信網ＬＮを介して通信する短距離無線通信部３４０を備えていることで、端末装置３００として、一般に普及している汎用の端末装置、例えば、タブレット型コンピュータやスマートフォン等の多機能通信携帯端末装置を用いることができ、これにより、電機機器に搭載されている制御装置１１３（１）〜１１３（ｍ）のソフトウェアに対する書き換え作業の利便性を向上させることができる。
【０２１０】
また、第２実施形態（この例では多機能通信携帯端末装置の汎用の端末装置３００）では、最新のオブジェクトコードＮＯＣを電機機器に短距離無線通信部３４０および短距離無線通信網ＬＮを介して送信することで、電機機器に搭載された制御装置１１３（１）〜１１３（ｍ）のソフトウェアＦＷを書き換えて最新のものに容易に更新することができる。これにより、電機機器に搭載された制御装置１１３（１）〜１１３（ｍ）で最新バージョンのソフトウェアを確実に実行することができる。
【０２１１】
また、第２実施形態（この例では多機能通信携帯端末装置の汎用の端末装置３００）では、差分ソースコードＤＳＣを生成制御手段Ｑ３１および変換制御手段Ｑ３２を有する電機機器〔この例では移動体１１０（２），１１０（１）〕に短距離無線通信部２４０および短距離無線通信網ＬＮを介して送信することで、電機機器〔この例では移動体１１０（２），１１０（１）〕の端末装置〔この例では２００（２），２００（１）〕（配信元）で送信されてきた差分ソースコードＤＳＣから最新のオブジェクトコードＮＯＣを生成することができ、それだけ当該端末装置と他の端末装置との間で通信時間を短縮化させることができる。
【０２１２】
なお、専用の端末装置２００（１），２００（２）（配信元）および汎用の端末装置３００において、記憶部２３０，３３０に記憶容量に余裕がある場合には、サーバ１３０は、エリア情報ＡＲを含む全てのデータの機種情報管理データベースＤＢ１、更新用ソフトウェア管理データベースＤＢ２、更新用ソフトウェア保存データベースＤＢ３およびエリア情報管理データベースＤＢ４を専用の端末装置２００（１），２００（２）（配信元）および汎用の端末装置３００に送信し、端末装置２００（１），２００（２），３００は、これらのデータベースを記憶部２３０に記憶するようにしてもよい。こうすることで、端末装置２００（１），２００（２），３００は、サーバ１３０になり得る。
【０２１３】
（他の実施の形態について）
本実施の形態に係るソフトウェア書き換えシステム１００において、移動体１１０として、コンバイン、耕耘機や田植機等の農業作業機といった走行作業機に適用したが、それに限定されるものではなく、トラクター、ショベルカー、ホイルローダやキャリヤ等の建設作業機といった走行作業機や、プレジャーボート、漁船といった船舶等にも好適に適用することができる。
【０２１４】
また、移動体１１０（１）〜１１０（ｎ）において、１つの作業部１１１に対して１つの制御装置１１３を設けたが、１つの作業部１１１に対して複数の制御装置１１３を設けるようにしてもよい。
【０２１５】
また、電機機器としては、前記した移動体の態様の他、例えば、発電機などの電力設備に用いられる電機機器などを挙げることができる。
【０２１６】
本発明は、以上説明した実施の形態に限定されるものではなく、他のいろいろな形で実施することができる。そのため、かかる実施の形態はあらゆる点で単なる例示にすぎず、限定的に解釈してはならない。本発明の範囲は請求の範囲によって示すものであって、明細書本文には、なんら拘束されない。さらに、請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【符号の説明】
【０２１７】
１００    ソフトウェア書き換えシステム
１１０    移動体（電機機器の一例）
１１１    作業部
１１３    制御装置
１２０    遠隔監視センター
１３０    サーバ
１３１    制御部
１３１ａ  処理装置
１３１ｂ  メモリ装置
１３２    広域通信部
１３３    記憶部
２００    専用の端末装置
２１０    制御部
２１０ａ  処理装置
２１０ｂ  メモリ装置
２２０    広域通信部
２３０    記憶部
２４０    短距離無線通信部
２５０    信号通信部
２６０    電源制御部
３００    汎用の端末装置
３１０    制御部
３１０ａ  処理装置
３１０ｂ  メモリ装置
３２０    広域通信部
３３０    記憶部
３４０    短距離無線通信部
３５０    ユーザインタフェース部
ＡＲ      エリア情報
ＢＴ      バッテリー
ＣＣ      制御装置コード
ＤＢ      更新用ソフトウェア格納データベース
ＤＢ１    機種情報管理データベース
ＤＢ２    更新用ソフトウェア管理データベース
ＤＢ３    更新用ソフトウェア保存データベース
ＤＢ４    エリア情報管理データベース
ＤＳＣ    差分ソースコード
ＦＷ      ソフトウェア
ＩＤ      端末識別情報
ＬＮ      短距離無線通信網
ＭＣ      機種コード
ＭＩ      機種情報
ＭＴ      移動体の種類
ＮＯＣ    最新のオブジェクトコード
ＮＳＣ    最新のソースコード
ＯＣ      オブジェクトコード
ＰＰ      ソフトウェア更新用プログラム
Ｑ１      受信制御手段
Ｑ１１    取得制御手段
Ｑ２      記憶制御手段
Ｑ３      書き換え制御手段
Ｑ３１    生成制御手段
Ｑ３２    変換制御手段
Ｑ４      送信制御手段
ＲＩ      更新情報
ＲＩＤ    登録された端末識別情報
ＲＶＲ    最新バージョンの更新有無
ＳＣ      ソースコード
ＳＷ      起動スイッチ
ＶＲ      バージョン
ＷＦＷ    更新用ソフトウェア
ＷＦＷＣ  更新用ソフトウェアコード
ＷＮ      広域通信網
【図１】
2017156937.tif 000003
【図２】
2017156937.tif 000004
【図３】
2017156937.tif 000005
【図４】
2017156937.tif 000006
【図５】
2017156937.tif 000007
【図６】
2017156937.tif 000008
【図７】
2017156937.tif 000009
【図８】
2017156937.tif 000010
【図９】
2017156937.tif 000011
【図１０】
2017156937.tif 000012
【図１１】
2017156937.tif 000013
【図１２】
2017156937.tif 000014
【図１３】
2017156937.tif 000015
【図１４】
2017156937.tif 000016
【図１５】
2017156937.tif 000017
【図１６】
2017156937.tif 000018
【図１７】
2017156937.tif 000019
【図１８】
2017156937.tif 000020
【図１９】
2017156937.tif 000021
【図２０】
2017156937.tif 000022