(57)【要約】      （修正有）【課題】  複数のプログラムを取得して実行する際に、通信方式に不整合があると、プログラム間で通信ができなかった。【解決手段】  プログラム取得部１０１が、プログラム格納装置１５０から複数のプログラムを取得し、プログラム実行部１０２が、取得したプログラムを実行する。これら複数のプログラムが相互に通信する際の通信方式の不整合を、通信方式不整合検出部３０４が検出すると、通信方式変換部２０３がそれら複数のプログラムが相互に通信する際の通信方式を変換するか、または、プログラム取得部１０２がプログラムを再取得するので、複数のプログラムを相互に通信させることが可能となる。【選択図】  図４
2006164191.tif 000002
【特許請求の範囲】
【請求項１】
通信媒体を介してプログラム格納装置からプログラムを取得して実行するプログラム取得実行装置であって、
プログラム格納装置からプログラムを取得するプログラム取得部と、
該プログラム取得部が取得したプログラムを実行するプログラム実行部と、
該プログラム実行部が実行する複数のプログラムが相互に通信する際の通信方式を変換する通信方式変換部とを備えた、
ことを特徴とするプログラム取得実行装置。
【請求項２】
通信媒体を介してプログラム格納装置からプログラムを取得して実行するプログラム取得実行装置であって、
プログラム格納装置からプログラムを取得するプログラム取得部と、
該プログラム取得部が取得したプログラムを実行するプログラム実行部と、
該プログラム実行部が実行する複数のプログラムが相互に通信する際の通信方式の不整合を検出する通信方式不整合検出部とを備えた、
ことを特徴とするプログラム取得実行装置。
【請求項３】
請求項２に記載のプログラム取得実行装置において、
前記通信方式不整合検出部が通信方式の不整合を検出した場合には、前記プログラム取得部はプログラムを再取得する、
ことを特徴とするプログラム取得実行装置。
【請求項４】
請求項２または請求項３に記載のプログラム取得実行装置において、
前記通信方式不整合検出部が通信方式の不整合を検出した場合に、前記プログラム実行部が実行する複数のプログラムが相互に通信する際の通信方式を変換する通信方式変換部をさらに備えた、
ことを特徴とするプログラム取得実行装置。
【請求項５】
請求項３または請求項４に記載のプログラム取得実行装置において、
前記プログラム取得部が再取得するプログラムが用いるべき、整合の取れた通信方式を決定する整合通信方式決定部をさらに備え、
前記プログラム取得部は、前記整合通信方式決定部が決定した通信方式を用いるプログラムを再取得する、
ことを特徴とするプログラム取得実行装置。
【請求項６】
請求項５に記載のプログラム取得実行装置において、
前記整合通信方式決定部は、前記プログラム取得部が既に取得しているプログラムが用いている通信方式の中から、整合の取れた通信方式を決定する、
ことを特徴とするプログラム取得実行装置。
【請求項７】
請求項５に記載のプログラム取得実行装置において、
前記整合通信方式決定部は、一個または複数の前記プログラム格納装置から再取得可能なプログラムが用いている通信方式の中から、整合の取れた通信方式を決定する、
ことを特徴とするプログラム取得実行装置。
【請求項８】
請求項５ないし請求項７のいずれかに記載のプログラム取得実行装置において、
前記整合通信方式決定部は、整合の取れた通信方式の候補の中から、最も新しい通信方式を選択し、整合の取れた通信方式として決定する、
ことを特徴とするプログラム取得実行装置。
【請求項９】
請求項５ないし請求項７のいずれかに記載のプログラム取得実行装置において、
前記整合通信方式決定部は、整合の取れた通信方式の候補の中から、前記プログラム取得部がプログラムを再取得する際のコストが最も安価となるような通信方式を選択し、整合の取れた通信方式として決定する、
ことを特徴とするプログラム取得実行装置。
【請求項１０】
請求項５ないし請求項９のいずれかに記載のプログラム取得実行装置において、
前記整合通信方式決定部は、
前記プログラム取得部が、前記整合通信方式決定部が決定した整合の取れた通信方式を用いるプログラムの取得に失敗した際に、整合の取れた通信方式を再決定し、前記プログラム取得部は、前記整合通信方式決定部が再決定した通信方式を用いるプログラムを再取得する、
ことを特徴とするプログラム取得実行装置。
【請求項１１】
請求項５ないし請求項１０のいずれかに記載のプログラム取得実行装置において、
前記通信方式決定部が整合の取れた通信方式を決定する方法を指示する通信方式決定方法指示部をさらに備え、
前記通信方式決定部は、前記通信方式決定方法指示部によって指示された方法で整合の取れた通信方式を決定する、
ことを特徴とするプログラム取得実行装置。
【請求項１２】
請求項５ないし請求項１１のいずれかに記載のプログラム取得実行装置において、
前記プログラム取得部は、前記通信方式不整合検出部が通信方式の不整合を検出したプログラムのみを再取得する、
ことを特徴とするプログラム取得実行装置。
【請求項１３】
請求項５ないし請求項１１のいずれかに記載のプログラム取得実行装置において、
前記プログラム取得部は、前記プログラム実行部が実行するのに必要な全てのプログラムを再取得する、
ことを特徴とするプログラム取得実行装置。
【請求項１４】
請求項５ないし請求項１３のいずれかに記載のプログラム取得実行装置において、
前記プログラム取得部は、プログラムのうち、前記通信方式不整合検出部が検出した通信方式の不整合が存在する部分のみを再取得する、
ことを特徴とするプログラム取得実行装置。
【請求項１５】
請求項１または請求項４ないし請求項１４のいずれかに記載のプログラム取得実行装置において、
前記通信方式変換部は、通信方式の変換を行う変換プログラムを実行することによって通信方式を変換し、
前記プログラム取得部は、前記通信方式変換部が実行する変換プログラムを取得する、
ことを特徴とするプログラム取得実行装置。
【請求項１６】
請求項１または請求項４ないし請求項１５のいずれかに記載のプログラム取得実行装置において、
前記通信方式変換部が通信方式を変換する方法を指示する通信方式変換方法指示部を備え、
前記通信方式変換部は、前記通信方式変換方法指示部によって指示された方法で通信方式を変換する、
ことを特徴とするプログラム取得実行装置。
【請求項１７】
請求項１ないし請求項１６のいずれかに記載のプログラム取得実行装置において、
前記プログラム取得部がプログラムを取得する方法を指示するプログラム取得方法指示部を備え、
前記プログラム取得部は、前記プログラム取得方法指示部によって指示された方法でプログラムを取得する、
ことを特徴とするプログラム取得実行装置。
【請求項１８】
請求項２ないし請求項１７のいずれかに記載のプログラム取得実行装置において、
前記通信方式不整合検出部は、前記プログラム実行部がプログラムの実行を開始する前に、通信方式の不整合を検出する、
ことを特徴とするプログラム取得実行装置。
【請求項１９】
請求項２ないし請求項１７のいずれかに記載のプログラム取得実行装置において、
前記通信方式不整合検出部は、前記プログラム実行部がプログラムを実行中のときに、逐次通信方式の不整合を検出する、
ことを特徴とするプログラム取得実行装置。
【請求項２０】
請求項３ないし１９のいずれかに記載のプログラム取得実行装置において、
前記プログラム取得部が再取得する対象となっているプログラムまたはプログラムの一部を格納するプログラム格納部をさらに備え、
前記プログラム実行部は、前記プログラム取得部が再取得したプログラムまたはプログラムの一部を実行した後、再び前記プログラム格納部が格納しているプログラムを実行する、
ことを特徴とするプログラム取得実行装置。
【請求項２１】
通信媒体を介してプログラム格納装置からプログラムを取得して実行するプログラム取得実行方法であって、
プログラム格納装置からプログラムを取得するプログラム取得工程と、
該プログラム取得工程により取得したプログラムを実行するプログラム実行工程と、
該プログラム実行工程が実行する複数のプログラムが相互に通信する際の通信方式を変換する通信方式変換工程とを含む、
ことを特徴とするプログラム取得実行方法。
【請求項２２】
通信媒体を介してプログラム格納装置からプログラムを取得して実行するプログラム取得実行方法であって、
プログラム格納装置からプログラムを取得するプログラム取得工程と、
該プログラム取得工程が取得したプログラムを実行するプログラム実行工程と、
該プログラム実行工程が実行する複数のプログラムが相互に通信する際の通信方式の不整合を検出する通信方式不整合検出工程とを含む、
ことを特徴とするプログラム取得実行方法。
【請求項２３】
コンピュータに、通信媒体を介してプログラム格納装置からプログラムを取得して実行させるプログラム取得実行方法を実行させるプログラムを記録した媒体であって、
前記プログラム取得実行方法は、
プログラム格納装置からプログラムを取得するプログラム取得工程と、
該プログラム取得工程により取得したプログラムを実行するプログラム実行工程と、
該プログラム実行工程が実行する複数のプログラムが相互に通信する際の通信方式を変換する通信方式変換工程とを含む、
ことを特徴とするプログラム取得実行プログラム記録媒体。
【請求項２４】
コンピュータに、通信媒体を介してプログラム格納装置からプログラムを取得して実行させるプログラム取得実行方法を実行させるプログラムを記録した媒体であって、
前記プログラム取得実行方法は、
プログラム格納装置からプログラムを取得するプログラム取得工程と、
該プログラム取得工程が取得したプログラムを実行するプログラム実行工程と、
該プログラム実行工程が実行する複数のプログラムが相互に通信する際の通信方式の不整合を検出する通信方式不整合検出工程とを含む、
ことを特徴とするプログラム取得実行プログラム記録媒体。
【請求項２５】
コンピュータに、通信媒体を介してプログラム格納装置からプログラムを取得して実行させるプログラム取得実行方法を実行させるプログラムであって、
前記プログラム取得実行方法は、
プログラム格納装置からプログラムを取得するプログラム取得工程と、
該プログラム取得工程により取得したプログラムを実行するプログラム実行工程と、
該プログラム実行工程が実行する複数のプログラムが相互に通信する際の通信方式を変換する通信方式変換工程とを含む、
ことを特徴とするプログラム取得実行プログラム。
【請求項２６】
コンピュータに、通信媒体を介してプログラム格納装置からプログラムを取得して実行させるプログラム取得実行方法を実行させるプログラムであって、
前記プログラム取得実行方法は、
プログラム格納装置からプログラムを取得するプログラム取得工程と、
該プログラム取得工程が取得したプログラムを実行するプログラム実行工程と、
該プログラム実行工程が実行する複数のプログラムが相互に通信する際の通信方式の不整合を検出する通信方式不整合検出工程とを含む、
ことを特徴とするプログラム取得実行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム取得実行装置、プログラム取得実行方法、プログラム取得実行プログラム記録媒体、およびプログラム取得実行プログラムに関するものであり、特に、ネットワークや無線装置等の通信媒体を介してプログラム格納装置からプログラムをダウンロード、アップロードなどにより取得して実行するものの改良を図ったものに関する。
【背景技術】
【０００２】
従来のプログラム取得実行装置としては、当該装置に取得され、実行されるプログラムのＡＰＩ(Application Programming Interface)に新しいバージョンが作られた場合でも、古いバージョンのプログラムを新しいバージョンの装置の上で実行できる、いわゆる上位互換性を実現できるようにするため、新しいバージョンのＡＰＩに古いバージョンのＡＰＩを含める形で新しいバージョンのＡＰＩを規定するよう取り決めているものがあった（例えば、非特許文献１の２.８節"Versioning"参照）。
【０００３】
すなわち、新しいバージョンのＡＰＩは、古いＡＰＩに対し上位互換性を確保するために、古いＡＰＩに関しては仕様を一切変更せず、これに新たなＡＰＩ群を追加することによって、新しいＡＰＩを定義している。
【０００４】
ここで、ＡＰＩとはアプリケーションプログラムから利用できる、オペレーティングシステム（ＯＳ）やプログラミング言語処理系（コンパイラ等）で用意されたライブラリなどの機能の規約に相当するものであり、ファイル制御、ウインドウ制御、画像処理、文字制御などのための機能を有する命令や関数、あるいはそれらを利用するためのプログラム上の手続きを定めた規約として提供されることが多い。
【０００５】
ＡＰＩを使うことでコンピュータソフトウェアが他のソフトウェアと広義の意味で通信し合うことができる。またＡＰＩは、低レベルなハードウエア寄りのソフトウェアと高レベルな人間寄りのソフトウェアとの間の関係をより抽象化するための１つの方法である。
【０００６】
ＡＰＩの目的の一つは、ウィンドウを操作したりアイコンを描画するというような共通して使える機能（関数）を提供することである。このような機能を使えば、プログラマはファイル制御関数やウインドウ制御関数等をその都度コーディングしなくても済む。
【０００７】
図１８（ａ）は、前記非特許文献１に記載された従来のプログラム取得実行装置を示すものである。
【０００８】
図１８（ａ）において、プログラム取得実行装置１００は、プログラム取得部１０１とプログラム実行部１０２とを備えている。
【０００９】
また、プログラム格納装置１５０は、プログラム取得実行装置１００が取得し、実行するためのプログラムを格納する。
【００１０】
プログラム取得部１０１は、一個または複数のプログラム格納装置１５０から、通信路等の通信媒体２００を介して一個または複数のプログラムを取得する。
【００１１】
プログラム実行部１０２は、プログラム取得部１０１が取得した一個または複数のプログラムを実行する。
【００１２】
プログラム取得部１０１が取得するプログラムは、予め決められたＡＰＩに準拠して作成されており、プログラム実行部１０２もまた、それと同じＡＰＩに準拠したプログラムを実行するように構成されている。このため、プログラム取得部１０１が取得したプログラムは、プログラム実行部１０２によって実行することが可能となる。
【００１３】
図１８（ｂ）はこの従来のプログラム取得実行装置の具体的な構成の一例を示すブロック図である。
【００１４】
プログラム取得実行装置としてのコンピュータ１００ａは、ＣＰＵ１００１，ＲＡＭ１００２，ＲＯＭ１００３，および通信インターフェース１００４を有し、これらがバス１００５により互いに接続されている。
【００１５】
また、コンピュータ１００ａとプログラム格納装置としてのファイルサーバ１５０ａとは通信媒体としての通信路２００ａを介して互いに接続されている。
【００１６】
コンピュータ１００ａ内のＣＰＵ１００１はＲＯＭ１００３に記録されたプログラムにより通信インターフェース１００４を制御し、ファイルサーバ１５０ａにコマンドを出力する。
【００１７】
ファイルサーバ１５０ａはこのコマンドにより指定されたプログラムを検索し、検索したプログラムをコンピュータ１００ａに送り出す。
【００１８】
コンピュータ１００ａの通信インターフェース１００４はこのプログラムを受信し、ワークエリアとしてのＲＡＭ１００２に格納する。
ＣＰＵ１００１はＲＯＭ１００３に記録されたＯＳ（Operating  System）等のモニタプログラムの制御のもとで、ファイルサーバより取得したプログラムを実行する。
【００１９】
すなわち、ＣＰＵ１００１，ＲＯＭ１００３，通信インターフェース１００４からなる部分が図１８（ａ）のプログラム取得部１０１に相当する。また、ＣＰＵ１００１，ＲＡＭ１００２，ＲＯＭ１００３からなる部分がプログラム実行部１０２に相当する。
【００２０】
ところで、非特許文献１で開示されている技術を用いた従来のプログラム取得実行装置では、新しいバージョンのＡＰＩに古いバージョンのＡＰＩを含める形で新しいバージョンのＡＰＩを規定するよう取り決めてある。このため、プログラム取得部１０１が取得するプログラムのＡＰＩのバージョンが、プログラム実行部１０２が準拠しているバージョンよりも古いバージョンであったとしても、問題なく実行することができる。
【００２１】
すなわち、単一のプログラムであれば、非特許文献１で開示されている技術を用いることによって、ＡＰＩのバージョンの上位互換性を実現することができる。
【００２２】
図１９はこのようなプログラムを取得し実行する場合の具体的なシステムの構成を、ホームネットワークであるＨＡＶｉ（Home Audio/Video interoperability）を例にとって示す。
【００２３】
この従来例は、プログラム取得実行装置としてのＴＶ受像機１００ｂとプログラム格納装置としてのＶＴＲ１５０ｂとが通信媒体としてのＩＥＥＥ１３９４ケーブル２００ｂを介して互いに接続されている状態を示す。
【００２４】
即ち、このホームネットワークは、ＴＶ受像機１００ｂとＶＴＲ１５０ｂとが互いに協調して動作を行い、ＶＴＲ１５０ｂにより再生した映像ソースをＴＶ受像機１００ｂに表示するものである。
【００２５】
この協調動作を可能にするために、予めＶＴＲ１５０ｂの側にＴＶ受像機１００ｂ用の制御プログラムを機種ごとに用意しておき、ＴＶ受像機１００ｂとＶＴＲ１５０ｂとをＩＥＥＥ１３９４ケーブル２００ｂを介して接続した時点で互いに情報をやりとりし、ＴＶ受像機１００ｂの種類に応じたプログラムをＶＴＲ１５０ｂの側からダウンロードする。
【００２６】
これにより、ＴＶ受像機１００ｂは当該機種に最適な制御プログラムを実行してＶＴＲ１５０ｂと協調動作することが可能となる。
【非特許文献１】"The HAVi Specification Version １.１"、〔オンライン〕、平成１３年５月１５日、HAVi Inc.、〔平成１６年９月２７日検索〕、インターネット＜ http://www.havi.org/memberarea/docs/051501Documents/release-May15-HAVi1.1(clean).pdf ＞
【発明の開示】
【発明が解決しようとする課題】
【００２７】
しかしながら、前記従来の構成では、複数のプログラムを取得しこれらのプログラム同士が互いに他を利用しながら実行する際に、新しいＡＰＩと古いＡＰＩとにそれぞれ準拠したものが混在する場合などでは、新しいバージョンのＡＰＩに準拠したプログラムから、古いバージョンのＡＰＩに準拠したプログラムの機能を利用しようとしても、古いバージョンのＡＰＩしか利用することができない。
【００２８】
すなわち、非特許文献１で開示されている技術を用いることによって、プログラム実行部１０２が新しいバージョンに準拠していた場合には、新しいバージョンのＡＰＩに準拠したプログラムと、古いバージョンのＡＰＩに準拠したプログラムの両者を実行することができる。
【００２９】
しかしながら、或るプログラムが他のプログラムを利用する場合、古いバージョンのＡＰＩに準拠したプログラムは、新しいバージョンのＡＰＩに対応していないため、新しいバージョンのＡＰＩに準拠したプログラムからは、古いバージョンのＡＰＩしか利用できない。
【００３０】
また、利用する相手のプログラムが準拠しているＡＰＩが新しいバージョンか古いバージョンかは、プログラムの実行時にしか分からない。
【００３１】
従って、新しいバージョンに準拠したプログラムは、利用する相手のプログラムごとに、相手のプログラムがどのバージョンのＡＰＩを用いているかをチェックし、相手が用いているＡＰＩを用いて相手の機能を利用しなければならなかった。
【００３２】
このため、複数のプログラムが協調して動作する際に、それらのバージョンの間に不整合があったとしても、できる限りプログラムを実行可能にするためには、全てのプログラムは、他のプログラムの機能を利用する箇所では、自分が用いているＡＰＩよりも古い全てのバージョンのＡＰＩごとに、そのＡＰＩを用いたコードを用意しておく必要があり、プログラムの構造の複雑化とサイズの肥大化を招く、という課題を有していた。
【００３３】
更に、逆に、古いバージョンに準拠したプログラムが新しいバージョンに準拠したプログラムを利用しようとしても、古いバージョンに準拠したプログラムは、新しいバージョンに準拠したプログラムではいかなる機能が追加されているかが事前に判明しておらず、自分よりも新しいバージョンのＡＰＩに対応したコードを用意しておくことは通常不可能なので、自分よりも新しいバージョンのＡＰＩについては、そもそも利用することができない、という課題を有していた。
【００３４】
本発明は、前記従来の課題を解決するためになされたもので、複数のプログラムを取得して協調動作させる際に、それらのプログラムのバージョンの間に不整合があった場合でも、利用する相手のプログラムのバージョンごとに別々のコードを用意することなしに、相手のプログラムを利用でき、また、古いバージョンに準拠したプログラムが新しいバージョンに準拠したプログラムを利用できるプログラム取得実行装置、プログラム取得実行方法、プログラム取得実行プログラム記録媒体、およびプログラム取得実行プログラムを提供することを目的とする。
【００３５】
また、本発明は、単に上述のような複数のプログラム間のＡＰＩのバージョンの不整合を解決するのみに留まらず、複数のプログラム間の通信方式の不整合全般を解決するプログラム取得実行装置、プログラム取得実行方法、プログラム取得実行プログラム記録媒体、およびプログラム取得実行プログラムを提供することを目的とするものである。
【００３６】
すなわち、本発明は、複数のプログラムを取得して協調動作させる際に、それらのプログラムの間の通信方式に不整合があった場合でも、利用する相手のプログラムが使用可能な通信方式の種類ごとに別々のコードを用意することなしに、相手のプログラムを利用できるプログラム取得実行装置、プログラム取得実行方法、プログラム取得実行プログラム記録媒体、およびプログラム取得実行プログラムを提供することを目的とする。
【課題を解決するための手段】
【００３７】
前記従来の課題を解決するために、本発明の請求項１に係るプログラム取得実行装置は、通信媒体を介してプログラム格納装置からプログラムを取得して実行するプログラム取得実行装置であって、プログラム格納装置からプログラムを取得するプログラム取得部と、該プログラム取得部が取得したプログラムを実行するプログラム実行部と、該プログラム実行部が実行する複数のプログラムが相互に通信する際の通信方式を変換する通信方式変換部とを備えたことを特徴とするものである。
【００３８】
本発明の請求項２に係るプログラム取得実行装置は、通信媒体を介してプログラム格納装置からプログラムを取得して実行するプログラム取得実行装置であって、プログラム格納装置からプログラムを取得するプログラム取得部と、該プログラム取得部が取得したプログラムを実行するプログラム実行部と、該プログラム実行部が実行する複数のプログラムが相互に通信する際の通信方式の不整合を検出する通信方式不整合検出部とを備えたことを特徴とするものである。
【００３９】
本発明の請求項３に係るプログラム取得実行装置は、請求項２に記載のプログラム取得実行装置において、前記通信方式不整合検出部が通信方式の不整合を検出した場合には、前記プログラム取得部はプログラムを再取得することを特徴とするものである。
【００４０】
本発明の請求項４に係るプログラム取得実行装置は、請求項２または請求項３に記載のプログラム取得実行装置において、前記通信方式不整合検出部が通信方式の不整合を検出した場合に、前記プログラム実行部が実行する複数のプログラムが相互に通信する際の通信方式を変換する通信方式変換部をさらに備えたことを特徴とするものである。
【００４１】
本発明の請求項５に係るプログラム取得実行装置は、請求項３または請求項４に記載のプログラム取得実行装置において、前記プログラム取得部が再取得するプログラムが用いるべき、整合の取れた通信方式を決定する整合通信方式決定部をさらに備え、前記プログラム取得部は、前記整合通信方式決定部が決定した通信方式を用いるプログラムを再取得することを特徴とするものである。
【００４２】
本発明の請求項６に係るプログラム取得実行装置は、請求項５に記載のプログラム取得実行装置において、前記整合通信方式決定部は、前記プログラム取得部が既に取得しているプログラムが用いている通信方式の中から、整合の取れた通信方式を決定することを特徴とするものである。
【００４３】
本発明の請求項７に係るプログラム取得実行装置は、請求項５に記載のプログラム取得実行装置において、前記整合通信方式決定部は、一個または複数の前記プログラム格納装置から再取得可能なプログラムが用いている通信方式の中から、整合の取れた通信方式を決定することを特徴とするものである。
【００４４】
本発明の請求項８に係るプログラム取得実行装置は、請求項５ないし請求項７のいずれかに記載のプログラム取得実行装置において、前記整合通信方式決定部は、整合の取れた通信方式の候補の中から、最も新しい通信方式を選択し、整合の取れた通信方式として決定することを特徴とするものである。
【００４５】
本発明の請求項９に係るプログラム取得実行装置は、請求項５ないし請求項７のいずれかに記載のプログラム取得実行装置において、前記整合通信方式決定部は、整合の取れた通信方式の候補の中から、前記プログラム取得部がプログラムを再取得する際のコストが最も安価となるような通信方式を選択し、整合の取れた通信方式として決定することを特徴とするものである。
【００４６】
本発明の請求項１０に係るプログラム取得実行装置は、請求項５ないし請求項９のいずれかに記載のプログラム取得実行装置において、前記整合通信方式決定部は、前記プログラム取得部が、前記整合通信方式決定部が決定した整合の取れた通信方式を用いるプログラムの取得に失敗した際に、整合の取れた通信方式を再決定し、前記プログラム取得部は、前記整合通信方式決定部が再決定した通信方式を用いるプログラムを再取得することを特徴とするものである。
【００４７】
本発明の請求項１１に係るプログラム取得実行装置は、請求項５ないし請求項１０のいずれかに記載のプログラム取得実行装置において、前記通信方式決定部が整合の取れた通信方式を決定する方法を指示する通信方式決定方法指示部をさらに備え、前記通信方式決定部は、前記通信方式決定方法指示部によって指示された方法で整合の取れた通信方式を決定することを特徴とするものである。
【００４８】
本発明の請求項１２に係るプログラム取得実行装置は、請求項５ないし請求項１１のいずれかに記載のプログラム取得実行装置において、前記プログラム取得部は、前記通信方式不整合検出部が通信方式の不整合を検出したプログラムのみを再取得することを特徴とするものである
【００４９】
本発明の請求項１３に係るプログラム取得実行装置は、請求項５ないし請求項１１のいずれかに記載のプログラム取得実行装置において、前記プログラム取得部は、前記プログラム実行部が実行するのに必要な全てのプログラムを再取得することを特徴とするものである。
【００５０】
本発明の請求項１４に係るプログラム取得実行装置は、請求項５ないし請求項１３のいずれかに記載のプログラム取得実行装置において、前記プログラム取得部は、プログラムのうち、前記通信方式不整合検出部が検出した通信方式の不整合が存在する部分のみを再取得することを特徴とするものである。
【００５１】
本発明の請求項１５に係るプログラム取得実行装置は、請求項１または請求項４ないし請求項１４のいずれかに記載のプログラム取得実行装置において、前記通信方式変換部は、通信方式の変換を行う変換プログラムを実行することによって通信方式を変換し、前記プログラム取得部は、前記通信方式変換部が実行する変換プログラムを取得することを特徴とするものである。
【００５２】
本発明の請求項１６に係るプログラム取得実行装置は、請求項１または請求項４ないし請求項１５のいずれかに記載のプログラム取得実行装置において、前記通信方式変換部が通信方式を変換する方法を指示する通信方式変換方法指示部を備え、前記通信方式変換部は、前記通信方式変換方法指示部によって指示された方法で通信方式を変換することを特徴とするものである。
【００５３】
本発明の請求項１７に係るプログラム取得実行装置は、請求項１ないし請求項１６のいずれかに記載のプログラム取得実行装置において、前記プログラム取得部がプログラムを取得する方法を指示するプログラム取得方法指示部を備え、前記プログラム取得部は、前記プログラム取得方法指示部によって指示された方法でプログラムを取得することを特徴とするものである。
【００５４】
本発明の請求項１８に係るプログラム取得実行装置は、請求項２ないし請求項１７のいずれかに記載のプログラム取得実行装置において、前記通信方式不整合検出部は、前記プログラム実行部がプログラムの実行を開始する前に、通信方式の不整合を検出することを特徴とするものである。
【００５５】
本発明の請求項１９に係るプログラム取得実行装置は、請求項２ないし請求項１７のいずれかに記載のプログラム取得実行装置において、前記通信方式不整合検出部は、前記プログラム実行部がプログラムを実行中のときに、逐次通信方式の不整合を検出することを特徴とするものである。
【００５６】
本発明の請求項２０に係るプログラム取得実行装置は、請求項３ないし１９のいずれかに記載のプログラム取得実行装置において、前記プログラム取得部が再取得する対象となっているプログラムまたはプログラムの一部を格納するプログラム格納部をさらに備え、前記プログラム実行部は、前記プログラム取得部が再取得したプログラムまたはプログラムの一部を実行した後、再び前記プログラム格納部が格納しているプログラムを実行することを特徴とするものである。
【００５７】
本発明の請求項２１に係るプログラム取得実行方法は、通信媒体を介してプログラム格納装置からプログラムを取得して実行するプログラム取得実行方法であって、プログラム格納装置からプログラムを取得するプログラム取得工程と、該プログラム取得工程により取得したプログラムを実行するプログラム実行工程と、該プログラム実行工程が実行する複数のプログラムが相互に通信する際の通信方式を変換する通信方式変換工程とを含むことを特徴とするものである。
【００５８】
本発明の請求項２２に係るプログラム取得実行方法は、通信媒体を介してプログラム格納装置からプログラムを取得して実行するプログラム取得実行方法であって、プログラム格納装置からプログラムを取得するプログラム取得工程と、該プログラム取得工程が取得したプログラムを実行するプログラム実行工程と、該プログラム実行工程が実行する複数のプログラムが相互に通信する際の通信方式の不整合を検出する通信方式不整合検出工程とを含むことを特徴とするものである。
【００５９】
本発明の請求項２３に係るプログラム取得実行プログラム記録媒体は、コンピュータに、通信媒体を介してプログラム格納装置からプログラムを取得して実行させるプログラム取得実行方法を実行させるプログラムを記録した媒体であって、前記プログラム取得実行方法は、プログラム格納装置からプログラムを取得するプログラム取得工程と、該プログラム取得工程により取得したプログラムを実行するプログラム実行工程と、該プログラム実行工程が実行する複数のプログラムが相互に通信する際の通信方式を変換する通信方式変換工程とを含むことを特徴とするものである。
【００６０】
本発明の請求項２４に係るプログラム取得実行プログラム記録媒体は、コンピュータに、通信媒体を介してプログラム格納装置からプログラムを取得して実行させるプログラム取得実行方法を実行させるプログラムを記録した媒体であって、前記プログラム取得実行方法は、プログラム格納装置からプログラムを取得するプログラム取得工程と、該プログラム取得工程が取得したプログラムを実行するプログラム実行工程と、該プログラム実行工程が実行する複数のプログラムが相互に通信する際の通信方式の不整合を検出する通信方式不整合検出工程とを含むことを特徴とするものである。
【００６１】
本発明の請求項２５に係るプログラム取得実行プログラムは、コンピュータに、通信媒体を介してプログラム格納装置からプログラムを取得して実行させるプログラム取得実行方法を実行させるプログラムであって、前記プログラム取得実行方法は、プログラム格納装置からプログラムを取得するプログラム取得工程と、該プログラム取得工程により取得したプログラムを実行するプログラム実行工程と、該プログラム実行工程が実行する複数のプログラムが相互に通信する際の通信方式を変換する通信方式変換工程とを含むことを特徴とするものである。
【００６２】
本発明の請求項２６に係るプログラム取得実行プログラムは、コンピュータに、通信媒体を介してプログラム格納装置からプログラムを取得して実行させるプログラム取得実行方法を実行させるプログラムであって、前記プログラム取得実行方法は、プログラム格納装置からプログラムを取得するプログラム取得工程と、該プログラム取得工程が取得したプログラムを実行するプログラム実行工程と、該プログラム実行工程が実行する複数のプログラムが相互に通信する際の通信方式の不整合を検出する通信方式不整合検出工程とを含むことを特徴とするものである。
【発明の効果】
【００６３】
請求項１に記載のプログラム取得実行装置によれば、複数のプログラムを取得して協調動作させる際に、前記複数のプログラムが使用可能な通信方式に不整合があった場合でも、前記複数のプログラムが相互に通信する際の通信方式を変換することによって、前記複数のプログラムを相互に通信させることが可能となる。
【００６４】
請求項２に記載のプログラム取得実行装置によれば、複数のプログラムを取得して協調動作させる際に、前記複数のプログラムが使用可能な通信方式に不整合があった場合でも、前記不整合を検出することによって必要な措置を取ることが可能となる。
【００６５】
請求項３に記載のプログラム取得実行装置によれば、請求項２に記載のプログラム取得実行装置による効果に加えて、前記不整合が検出されたプログラムを再取得することによって、前記複数のプログラムを不整合のない組合せで実行させることが可能となる。
【００６６】
請求項４に記載のプログラム取得実行装置によれば、請求項２または請求項３に記載のプログラム取得実行装置による効果に加えて、前記不整合が検出されたプログラムの通信方式を変換することによって、前記複数のプログラムを相互に通信させることが可能となる。
【００６７】
請求項５に記載のプログラム取得実行装置によれば、請求項３または請求項４に記載のプログラム取得実行装置による効果に加えて、前記不整合が検出されたプログラムについて、整合の取れた通信方式を使用するプログラムを再取得することによって、前記複数のプログラムを相互に通信させることが可能となる。
【００６８】
請求項６に記載のプログラム取得実行装置によれば、請求項５に記載のプログラム取得実行装置による効果に加えて、前記複数のプログラムが使用可能な通信方式の中から整合の取れた通信方式を決定し、前記整合の取れた通信方式を使用するプログラムを再取得することによって、前記複数のプログラムを相互に通信させることが可能となる。
【００６９】
請求項７に記載のプログラム取得実行装置によれば、請求項５に記載のプログラム取得実行装置による効果に加えて、プログラム格納装置から再取得可能なプログラムが使用している通信方式の中から、整合の取れた通信方式を決定し、前記整合の取れた通信方式を使用するプログラムを再取得することによって、前記複数のプログラムを相互に通信させることが可能となる。
【００７０】
請求項８に記載のプログラム取得実行装置によれば、請求項５ないし請求項７のいずれかに記載のプログラム取得実行装置による効果に加えて、できる限り新しい通信方式を使用して、前記複数のプログラムを相互に通信させることが可能となる。
【００７１】
請求項９に記載のプログラム取得実行装置によれば、請求項５ないし請求項７のいずれかに記載のプログラム取得実行装置による効果に加えて、前記複数のプログラムを相互に通信させるための再取得の際のコストを、できる限り安価にすることが可能となる。
【００７２】
請求項１０に記載のプログラム取得実行装置によれば、請求項５ないし請求項９のいずれかに記載のプログラム取得実行装置による効果に加えて、整合の取れた通信方式として決定した通信方式を使用するプログラムの再取得に失敗した際でも、整合の取れた通信方式を再決定し、前記再決定した整合の取れた通信方式を使用するプログラムを再取得することによって、前記複数のプログラムを相互に通信させることが可能となる。
【００７３】
請求項１１に記載のプログラム取得実行装置によれば、請求項５ないし請求項１０のいずれかに記載のプログラム取得実行装置による効果に加えて、整合の取れた通信方式を決定する方法をユーザが選択でき、前記ユーザによって選択された方法によって決定した、整合の取れた通信方式を使用するプログラムを再取得することによって、前記複数のプログラムを相互に通信させることが可能となる。
【００７４】
請求項１２に記載のプログラム取得実行装置によれば、請求項５ないし請求項１１のいずれかに記載のプログラム取得実行装置による効果に加えて、前記複数のプログラムの全てではなく、不整合が検出されたプログラムのみを再取得することによって、プログラムの効率的な再取得を実現することが可能となる。
【００７５】
請求項１３に記載のプログラム取得実行装置によれば、請求項５ないし請求項１１のいずれかに記載のプログラム取得実行装置による効果に加えて、前記複数のプログラムの全てを再取得することによって、前記複数のプログラムの一部のみを取得することによる更なる不整合の発生を回避することが可能となる。
【００７６】
請求項１４に記載のプログラム取得実行装置によれば、請求項５ないし請求項１３のいずれかに記載のプログラム取得実行装置による効果に加えて、プログラムのうち、通信方式の不整合が存在する部分のみを部分的に再取得することによって、再取得のコストを更に極小化することが可能となる。
【００７７】
請求項１５に記載のプログラム取得実行装置によれば、請求項１または請求項４ないし請求項１４のいずれかに記載のプログラム取得実行装置による効果に加えて、プログラム格納装置から取得された変換プログラムによって、前記複数のプログラムが相互に通信する際の通信方式を変換することによって、前記複数のプログラムが相互に通信する際の通信方式の変換方法自体の変更が可能となる。
【００７８】
請求項１６に記載のプログラム取得実行装置によれば、請求項１または請求項４ないし請求項１５のいずれかに記載のプログラム取得実行装置による効果に加えて、通信方式を変換する方法をユーザが選択でき、前記ユーザによって選択された方法によって、前記複数のプログラムが相互に通信する際の通信方式を変換することによって、前記複数のプログラムを相互に通信させることが可能となる。
【００７９】
請求項１７に記載のプログラム取得実行装置によれば、請求項１ないし請求項１６のいずれかに記載のプログラム取得実行装置による効果に加えて、プログラムを取得する方法をユーザが選択でき、前記ユーザによって選択された方法によって、不整合が検出されたプログラムを再取得することによって、前記複数のプログラムを相互に通信させることが可能となる。
【００８０】
請求項１８に記載のプログラム取得実行装置によれば、請求項２ないし請求項１７のいずれかに記載のプログラム取得実行装置による効果に加えて、プログラムの実行を開始する前に通信方式の不整合を検出することによって、プログラムの実行中のプログラムの再取得や再実行を回避することが可能となる。
【００８１】
請求項１９に記載のプログラム取得実行装置によれば、請求項２ないし請求項１７のいずれかに記載のプログラム取得実行装置による効果に加えて、プログラムの実行中に、逐次通信方式の不整合を検出することによって、プログラムの実行前の不整合の検出による実行開始の遅れを回避することが可能となる。
【００８２】
請求項２０に記載のプログラム取得実行装置によれば、請求項３ないし請求項１９のいずれかに記載のプログラム取得実行装置による効果に加えて、不整合が検出された元々のプログラムを格納したまま、当該プログラムについて、整合の取れた通信方式を使用するプログラムを再取得して実行することによって、通信方式の不整合を解消した後で、元々のプログラムを実行することが可能となる。
【００８３】
請求項２１に記載のプログラム取得実行方法によれば、複数のプログラムを取得して協調動作させる際に、前記複数のプログラムが使用可能な通信方式に不整合があった場合でも、前記複数のプログラムが相互に通信する際の通信方式を変換することによって、前記複数のプログラムを相互に通信させることが可能となる。
【００８４】
請求項２２に記載のプログラム取得実行方法によれば、複数のプログラムを取得して協調動作させる際に、前記複数のプログラムが使用可能な通信方式に不整合があった場合でも、前記不整合を検出することによって必要な措置を取ることが可能となる。
【００８５】
請求項２３に記載のプログラム取得実行プログラム記録媒体によれば、複数のプログラムを取得して協調動作させる際に、前記複数のプログラムが使用可能な通信方式に不整合があった場合でも、前記複数のプログラムが相互に通信する際の通信方式を変換することによって、前記複数のプログラムを相互に通信させることが可能となる。
【００８６】
請求項２４に記載のプログラム取得実行プログラム記録媒体によれば、複数のプログラムを取得して協調動作させる際に、前記複数のプログラムが使用可能な通信方式に不整合があった場合でも、前記不整合を検出することによって必要な措置を取ることが可能となる。
【００８７】
請求項２５に記載のプログラム取得実行プログラムによれば、複数のプログラムを取得して協調動作させる際に、前記複数のプログラムが使用可能な通信方式に不整合があった場合でも、前記複数のプログラムが相互に通信する際の通信方式を変換することによって、前記複数のプログラムを相互に通信させることが可能となる。
【００８８】
請求項２６に記載のプログラム取得実行プログラムによれば、複数のプログラムを取得して協調動作させる際に、前記複数のプログラムが使用可能な通信方式に不整合があった場合でも、前記不整合を検出することによって必要な措置を取ることが可能となる。
【発明を実施するための最良の形態】
【００８９】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００９０】
（実施の形態１）
図１（ａ）は、本発明の実施の形態１におけるプログラム取得実行装置の構成図である。図１において、図１８（ａ）と同じ構成要素については同じ符号を用い、説明を省略する。
【００９１】
図１（ａ）において、プログラム取得実行装置１００は、図１８（ａ）における構成に加えて、通信方式変換部２０３を備えている。
この通信方式変換部２０３は、ＲＯＭ１００３に記録された通信方式変換プログラムと、ＣＰＵ１００１と、そのワークエリアとなるＲＡＭ１００２とから構成される。
【００９２】
通信方式変換部２０３は、プログラム実行部１０２が実行する複数のプログラムが相互に通信する際の通信方式を変換する。
ここで、通信方式は通信プロトコルの変換のみならず、ＡＰＩの変換を含むものとする。
また、プログラムの通信はプログラム間での関数の呼び出しやプログラム間でのデータのやりとりも含むものとする。
【００９３】
図１（ｂ）ないし図１（ｄ）は図１（ａ）のプログラム取得実行装置の階層構造を示す。
ハードウエア層Ｌ１は図１８（ｂ）に示した通り、ＣＰＵ１００１，ＲＡＭ１００２，ＲＯＭ１００３，および通信インターフェース１００４を有し、これらがバス１００５を介して互いに接続されることで構成されている。
【００９４】
ハードウエア層Ｌ１の上にはリアルタイムＯＳやマルチタスクＯＳ等のＯＳ層Ｌ２が実装され、その上にはＪａｖａ(登録商標）仮想マシン（Virtual Machine；VM）等のインタプリタ層Ｌ３が実装される。インタプリタ層Ｌ３上にはアプリケーション層Ｌ４が実装される。なお、図１（ｃ）に示すようにＯＳ層Ｌ２とインタプリタ層Ｌ３とは階層が逆になっていてもよい。また、図１（ｄ）に示すように、インタプリタ層Ｌ３とアプリケーション層Ｌ４との間にはミドルウエア層Ｌ５が実装されることもある。
【００９５】
ミドルウエアは例えば通信処理やデータベース管理用のプログラム等がこれに該当し、通信処理やデータベース管理等の特定の分野で必ず必要とされる基本的な機能を提供するものである。
そして、ハードウエア層Ｌ１はＣＰＵ１００１，ＲＡＭ１００２，ＲＯＭ１００３，および通信インターフェース１００４からなるハードウエア全体により構成される。
【００９６】
また、ＯＳ層Ｌ２，インタプリタ層Ｌ３，アプリケーション層Ｌ４，ミドルウエア層Ｌ５は、ＲＯＭ１００３に記録されたＯＳ等のモニタプログラム，Ｊａｖａ（登録商標）仮想マシン等のインタプリタ，アプリケーション，ミドルウエアのプログラムによりそれぞれ構成される。 
【００９７】
プログラム取得部１０１は、ＲＯＭ１００３に記録されたモニタプログラムと、ＣＰＵ１００１と、これにより制御される通信インターフェース１００４により構成される。
また、プログラム実行部１０２は、ＲＯＭ１００３に記録されたモニタプログラムと、ＣＰＵ１００１と、そのワークエリアとなるＲＡＭ１００２により構成される。
【００９８】
上記プログラム取得実行装置１００の動作の概略について、図７のフローチャートを参照しながら説明する。
処理開始（ステップＳ１）後、プログラム取得部１０１は、一個または複数のプログラム格納装置１５０から、一個または複数のプログラムを取得する（ステップＳ２）。
【００９９】
なお、プログラム格納装置１５０とプログラム取得実行装置１００との間の通信媒体２００やプログラムの取得方法は本発明の請求の範囲とは無関係であり、本発明の請求の範囲は、プログラム格納装置１５０とプログラム取得実行装置１００との間の通信媒体やプログラムの取得方法によって制限されるものではない。
【０１００】
例えば、具体的な通信媒体としては、有線系であればLAN(Local Area Network)、CATV(Cable TV)網、FTTH(Fiber To The Home)網、固定電話通信網などでもよく、また、無線系であれば赤外線通信インターフェース、bluetooth（商標）、移動体通信網、衛星通信網などでもよく、その種類を問わない。
【０１０１】
プログラム実行部１０２は、プログラム取得部１０１が取得した一個または複数のプログラムを実行する（ステップＳ３）。
通信方式変換部２０３は、プログラム実行部１０２が実行する複数のプログラムが相互に通信する際の通信方式を変換する（ステップＳ４）。
プログラム実行部１０２が実行している一個または複数のプログラムの実行が全て終了したら、処理を終了（ステップＳ６）する。そうでなければ、ステップＳ４を繰り返す（ステップＳ５）。
【０１０２】
なお、本実施の形態では、通信方式変換部２０３は、プログラムの実行が全て終了するまで繰り返し通信方式の変換を行うという例を記述したが、通信方式変換部２０３による通信方式の変換のタイミングは、この例の場合のみに制限されるわけではなく、本発明の請求の範囲は、通信方式変換部２０３による通信方式の変換のタイミングによって制限されるものではない。
【０１０３】
通信方式変換部２０３による通信方式の変換の一例を、図８及び図９を用いて説明する。
図８に、プログラム実行部１０２で実行されるプログラムが用いるＡＰＩの一例を示す。
この例では、プログラム実行部１０２で実行されるプログラムが用いるＡＰＩには、「Version １」及び「Version ２」の二つのバージョンが存在するものとしている。「Version ２」は「Version １」よりも新しいプログラムであり、「Version ２」は「Version １」に対して上位互換性があるものとする。
【０１０４】
即ち、「Version ２」は「Version １」の機能を拡張したものであり、なおかつ「Version １」と互換性がある。例えば、「multiply」と「add」という二つのＡＰＩがあり、「multiply」というＡＰＩは、「Version ２」から追加されたものとしている。
【０１０５】
図８に、図７で示したＡＰＩの一例を用いた場合の、通信方式変換部２０３による通信方式の変換例を示した。
この例では、プログラム実行部１０２で実行されるプログラムとして、「プログラムＡ」及び「プログラムＢ」の二つが存在するとしている。「プログラムＡ」は、図７で示したＡＰＩの例のうち、「Version ２」のＡＰＩを用いて作られており、「プログラムＢ」は、「Version １」のＡＰＩを用いて作られているとする。
【０１０６】
この例のように、「Version ２」のＡＰＩを用いている「プログラムＡ」が、「Version ２」のＡＰＩのみに存在している「multiply」というＡＰＩ要求を「プログラムＢ」に要求した場合、そのままでは、「Version １」のＡＰＩを用いている「プログラムＢ」はこれを解釈実行することができない。
【０１０７】
そこで、通信方式変換部２０３は、「multiply」というＡＰＩ要求を、「Version １」のＡＰＩである「add」というＡＰＩ要求の組合せに変換し、この変換されたＡＰＩ要求を「プログラムＢ」に要求する。これによって、異なるバージョンのＡＰＩを用いて作られている「プログラムＡ」と「プログラムＢ」との間の通信が実現できる。
【０１０８】
通信方式変換部２０３は、例えば図９（ｂ）に示すように、プログラム実行部１０２から送られてきたＡＰＩ要求を解析し、その関数（図９（ａ）の例ではmultiply）とパラメータ（図９（ａ）の例では(5,3)）とを切り分ける（ステップＳ４ａ）。次に、この関数に基づいて図９（ｃ）に示すようなＡＰＩ変換表を検索することで、これを変換可能な下位VersionのＡＰＩ（図９（ａ）の例ではadd）を獲得する（ステップＳ４ｂ）。そして、変換した下位VersionのＡＰＩと図９（ｂ）のステップＳ４ａで得られたパラメータとを用いて下位VersionのＡＰＩ要求を生成し、これを変換結果としてプログラム実行部１０２に返す（ステップＳ４ｃ）。
【０１０９】
このように、通信方式変換部２０３における変換の実行部は、ＡＰＩの変換表を用いて変換を行うＡＰＩの変換プログラムとして記述するなどの実現方法があるが、本発明の請求の範囲は、変換の実行方法によって制限されるものではない。
【０１１０】
なお、この例では、ＡＰＩ要求の内容の表現方法としてＣ言語に似た表現を用いたが、ＡＰＩ要求の内容の表現方法はここで例示した表現のみに制限されるものではなく、また、本発明の請求の範囲は、ＡＰＩ要求の表現方法によって制限されるものではない。
【０１１１】
また、この例では、ＡＰＩのバージョンの不整合、すなわちＡＰＩの新，旧のバージョンが通信する場合を例にとって説明したが、本発明は、複数のプログラム間のＡＰＩのバージョン不整合のみに留まらず、複数のプログラム間の通信方式の不整合全般を解決するものである。
【０１１２】
すなわち、本発明は、複数のプログラムを取得して協調動作させる際に、それらのプログラムの間の通信方式に不整合があった場合でも、利用する相手のプログラムが使用可能な通信方式の種類ごとに別々のコードを用意することなしに、相手のプログラムを利用できるプログラム取得実行装置を提供することが可能である。
【０１１３】
図８のＡＰＩの変換は、例えば図１（ｅ）に示すように、プログラムのヘッダに含まれる、プログラムのバージョンナンバーに基づきＡＰＩの不整合を検出した場合等に行えばよい。
【０１１４】
即ち、図１（ｆ），図１（ｇ）に示すように、互いに通信を行おうとするプログラムファイルＰＦのヘッダＰＨＤの中からバージョンナンバーＰＶＮを取得し（ステップＳ１０１）、バージョンナンバー同士を比較し、これらが一致するか否かを検討し（ステップＳ１０２）、低いバージョンのＡＰＩでは用意されていないＡＰＩを呼び出すか否かを検出し（ステップＳ１０３）、呼び出す場合は高いバージョンのＡＰＩを低いバージョンのＡＰＩに変換する（ステップＳ１０４）。
【０１１５】
図１（ｈ）は、このようなコンピュータがプログラムをダウンロードして実行するシステムの構成例を示し、プログラム取得実行装置としてのコンピュータ１００ａが通信媒体としての通信路２００ａを介してプログラム格納装置としてのファイルサーバ１５０ａにアクセスし、コンピュータ１００ａが指定した所望のプログラムをファイルサーバ１５０ａが検索し、検出したプログラムをデータとして通信路２００ａを介してコンピュータ１００ａに返送し、コンピュータ１００ａがこのプログラムを実行する。
【０１１６】
そして、このようにダウンロードしたプログラムが複数存在し、これらのプログラム同士がプログラム間通信により互いのＡＰＩを呼び出す際、そのＡＰＩのバージョンが異なる場合に上述のような通信方式の変換を行う。
【０１１７】
これにより、本来ならばプログラム間の通信を行うことができず、プログラム同士の協調動作やデータの交換等が不可能であったものが、互いにＡＰＩのバージョンが異なる場合であってもプログラム間通信が可能となり、予め低いバージョンのＡＰＩを用意する必要がなくなり、プログラムの複雑化やプログラムサイズの肥大化を防止することが可能となる。
【０１１８】
また、この場合も上述したように、通信プロトコルが異なる場合にその通信プロトコルを変換することで、プログラム間の通信が可能となるようにしてもよい。
【０１１９】
また、このようなコンピュータや、ＨＡＶｉを始めとする家庭内ネットワーク対応家電機器のみならず、インターネット接続が可能な家電機器や、携帯電話機を始めとする有線・無線の通信網に接続可能な機器、テレビ受信機やラジオ受信機を始めとする放送網に接続可能な機器等において、そのプログラムを自動的にアップデートする場合などでも、本実施の形態を応用することが可能である。
【０１２０】
（実施の形態１の変形例１）
図２（ａ）は、実施の形態１の変形例１による、インターネット接続が可能な携帯電話機のブロック構成を示す。
この携帯電話機１００ｃは、種々の信号処理を行う信号処理部１１０２と、アンテナ１１０１で受信された無線信号Ｎを受信信号として信号処理部１１０２に出力するとともに、信号処理部１１０２にて生成された送信信号を無線信号Ｎとしてアンテナ１１０１から送信する無線通信部１１０３とを有している。
【０１２１】
また、上記携帯電話機１００ｃは、画像表示を行う液晶パネル（ＬＣＤ）等の表示部１１０６と、音声を入力するためのマイク１１０８と、音声信号を再生するスピーカ１１０７と、上記信号処理部１１０２にて処理された画像信号を受け、上記表示部１１０６を、画像信号に基づいて画像表示が行われるよう制御する表示制御部１１０４と、マイク１１０８からの入力音声信号を信号処理部１１０２に出力するとともに、信号処理部１１１２にて処理された音声信号をスピーカ１１０７に出力する音声入出力部１１０５とを有している。
【０１２２】
さらに、この携帯電話機１００ｃは、キーボード１１１０等により入力したメールアドレスにより、他のインターネット接続対応の携帯電話機やパソコン等との間で電子メールのやりとりを可能にするメール処理部１１１３を有しており、キーボード１１１０から入力したメッセージや必要に応じてカメラ部１１１１で撮影した画像ファイルを添付ファイルとして含む電子メールを送受信することが可能である。これはメール処理部１１１３が生成した電子メールデータを無線通信部１１０３により電波として送り出し、無線通信部１１０３で受信した電子メールデータを信号処理部１１０２を介して表示制御部１１０４により、表示部１１０６に電子メールメッセージや添付画像等を映し出すように制御部１１０９が各部の制御を行うことで可能となる。
また、Ｗｅｂ閲覧処理部１１１２は、キーボード１１１０等により入力したＵＲＬ（Uniform Resource Locater）により指定したＷｅｂページ（ホームページ）のデータを無線通信部１１０３を介して図示しないＷｅｂサーバに要求する。Ｗｅｂサーバは要求されたＷｅｂページのデータを返送する。Ｗｅｂ閲覧処理部１１１２はＷｅｂサーバから返送されたＷｅｂページデータを解釈し、表示制御部１１０４により表示部１１０６にＷｅｂページを表示するよう制御部１１０９が各部の制御を行うことで、Ｗｅｂページの閲覧が可能となる。
【０１２３】
また、ＲＯＭ１１１５は、ゲームや電卓等の各種アプリケーションが格納されており、キーボード１１１０等の操作により制御部１１０９がこれを実行する。ＲＡＭ１１１４は制御部１１０９が各種のソフトウエアを実行する際のワークエリア等として使用される。
【０１２４】
このようにインターネット接続可能な携帯電話機１００ｃはその各種機能を、ＣＰＵに相当する制御部１１０９のソフトウエアにより実現しているが、ソフトウエアがＲＯＭに固定されているため、出荷後にバグが発見された場合などは、実機を回収し交換を行う場合が起こり得る。
【０１２５】
そこで、バグをフィックスしたプログラム（以下、更新用プログラムと称す）を携帯電話機に送り、携帯電話機側で手動あるいは自動でアップデートを行うことにより、低コストでバグに対応することが考えられる。その更新用プログラムは出荷時に携帯電話機に格納されているソフトウエアよりも高いバージョンナンバーを有する。
【０１２６】
図２（ｂ）はこのようなアップデートを行う際のソフトウエア更新システムを示すブロック図であり、図２（ｃ）ないし図２（ｉ）はそのソフトウエア更新動作の一例を示すフローチャートである。
【０１２７】
携帯電話機１００ｃと更新用プログラムサーバ１５０ｃとは、基地局２００１およびインターネット２００２からなる通信網２００ｃを介して接続されている。
【０１２８】
まず、図２（ｃ）に示すように、更新用プログラムサーバ１５０ｃは、携帯電話機メーカ側からの更新通知の有無を検出することで、更新用プログラムが用意されたか否かを確認する（ステップＳ２０１）。
【０１２９】
プログラムの更新版が用意されている場合、更新用プログラムサーバ１５０ｃはメーカの更新情報に基づき、その更新用プログラムを蓄積しているデータベースを更新する（ステップＳ２０２）。その後、更新用プログラムサーバ１５０ｃは該当するメーカ，機種の携帯電話機に対しプログラムの更新があった旨を一斉に通知する（ステップＳ２０３）。
【０１３０】
次に、図２（ｄ）に示すように、携帯電話機１００ｃの側では、更新用プログラムサーバからの一斉通知があったか否かを検出し（ステップＳ２１１）、一斉通知が検出された場合、ユーザがプログラムの更新を希望するか否かを検出する（ステップＳ２１２）。
【０１３１】
キーボード操作等によりユーザが更新を希望する旨を入力した場合、携帯電話機１００ｃは更新があったプログラムのリストを更新用プログラムサーバから取得し（ステップＳ２１３）、更新があったプログラムの一覧を、図２（ｅ）に示すように表示部に表示する（ステップＳ２１４）。
【０１３２】
ユーザは表示部に表示された更新プログラムリストを参照し、その中から更新を希望するプログラムをキーボード操作等により指定する（ステップＳ２１５）。図２（ｆ）はユーザが指定したプログラムが反転表示されている状態を示す。
【０１３３】
この操作を繰り返すことでユーザが更新を希望するプログラムを全て指定し終われば（ステップＳ２１６）、携帯電話機１００ｃはメーカ名，機種名，更新希望プログラム名を示したリストを更新用プログラムサーバに送信する（ステップＳ２１７）。図２（ｇ）はこの更新を希望するプログラムのリストＵＬを示し、ＭＫＲは携帯電話機のメーカ名を示すフィールド、ＭＯＤは機種名を示すフィールドである。ＵＰＮは更新を希望するプログラム名を示すフィールドで、可変長もしくは十分な大きさのフィールドを確保すればよい。
【０１３４】
次に、図２（ｈ）に示すように、更新用プログラムサーバ１５０ｃは携帯電話機１００ｃから更新用アクセスがあったか否かを検出し（ステップＳ２２１）、更新用アクセスがあった場合、携帯電話機側から送られたリスト中のメーカ名，機種名，更新希望プログラム名に基づきデータベースを検索し（ステップＳ２２２）、検索されたプログラムを携帯電話機側に返送する（ステップＳ２２３）。
【０１３５】
次に、図２（ｉ）に示すように、携帯電話機１００ｃは更新用プログラムサーバ１５０ｃから更新用プログラムの返送があったか否かを検出し（ステップＳ２３１）、返送されたプログラムがあった場合はこの更新用プログラムを電気的に書き換え可能なＲＯＭに書き込み（ステップＳ２３２）、書き込みが終了した後に必要に応じて自動的に再起動する（ステップＳ２３３）。
【０１３６】
このように、携帯電話機１００ｃは基地局２００１に対しプログラムのアップデートを行う旨のコマンドを送信し、基地局２００１はこれをインターネット２００２を介して更新用プログラムサーバ１５０ｃに送信する。更新用プログラムサーバ１５０ｃはこの携帯電話機１００ｃから受信したコマンドに応じて、携帯電話機１００ｃが使用しているプログラムでアップデートが必要なものを検索する。その検索の対象は、ＯＳ、インタプリタ、ミドルウエア、アプリケーションのいずれもが含まれる。
【０１３７】
そして、更新用プログラムサーバ１５０ｃはアップデートが必要なプログラムを検索すると、その検索された更新用プログラムをインターネット２００２を介して基地局２００１に送信し、基地局２００１はこれを無線電波により携帯電話機１００ｃに返送する。
【０１３８】
携帯電話機１００ｃでは返送された更新用プログラムによりＲＯＭ１１１５を上書きし、必要に応じて再起動を行うことにより、更新されたプログラムを実行することが可能となる。
【０１３９】
しかしながら、個々のプログラムのバグはこの種のアップデートにより解消できたとしても、複数のプログラムが互いに連携して動作するため、互いのＡＰＩのバージョンや通信プロトコルの相違等により、プログラム間の通信が行えないことがある。
【０１４０】
そこで、上述のような通信方式変換部２０３により、バージョンの低いＡＰＩには含まれていないＡＰＩを低いバージョンのＡＰＩに変換したり、プロトコルを変換したりすることで、複数のプログラムが同時に動作する場合にプログラム間の連携を行うことが可能となる。携帯電話機１００ｃの場合、通信方式変換部２０３は、ＲＯＭ１１１５に記憶されたプログラムと、制御部１１０９と、ワークエリアとしてのＲＡＭ１１１４とから構成される。
【０１４１】
このように、本実施の形態１の構成によるプログラム取得実行装置によれば、プログラム実行部１０２が複数のプログラムを取得して協調動作させる際に、前記複数のプログラムが使用可能な通信方式に不整合があった場合でも、通信方式変換部２０３が前記複数のプログラムが相互に通信する際の通信方式を変換することによって、前記複数のプログラムを相互に通信させることが可能となる。
【０１４２】
（実施の形態２）
図３（ａ）は、本発明の実施の形態２におけるプログラム取得実行装置の構成図である。図３（ａ）において、図１８（ａ）と同じ構成要素については同じ符号を用い、説明を省略する。
【０１４３】
図３（ａ）において、プログラム取得実行装置１００は、図１（ａ）の通信方式変換部２０３に代えて通信方式不整合検出部３０４を備えている。
【０１４４】
この通信方式不整合検出部３０４は、ＲＯＭ１００３に記録された通信方式不整合検出プログラムと、ＣＰＵ１００１と、そのワークエリアとなるＲＡＭ１００２とから構成される。
【０１４５】
通信方式不整合検出部３０４は、プログラム実行部１０２が実行する複数のプログラムが相互に通信する際の通信方式の不整合を検出する。
【０１４６】
上記プログラム取得実行装置１００の動作の概略について、図１０のフローチャートを参照しながら説明する。図１０において、ステップＳ１１からステップＳ１３までは、本発明の実施の形態１における、図７で示したフローチャートのステップＳ１からステップＳ３と同様なので、説明を省略する。
【０１４７】
ステップＳ１３の終了後、通信方式不整合検出部３０４は、プログラム実行部１０２が実行する複数のプログラムが相互に通信する際の通信方式の不整合を自動的に検出する（ステップＳ１４）。
【０１４８】
通信方式不整合検出部３０４における通信方式の不整合の検出部としては、図３（ｂ）に示すように、プログラム実行部１０２が実行するプログラムを収録したプログラムファイルＰＦや、図３（ｃ）に示すようにそれらのプログラムが相互に通信し合う際などのデータを収録したデータファイルの、特定の位置（例えばプログラムヘッダＰＨＤ中の一部やデータヘッダＤＨＤの先頭バイトなど）に、通信プロトコルの名称（例えばＴＣＰ／ＩＰ(Transmission Control Protocol/Internet Protocol)やＯＳＩ(Open Systems Interconnection) ）等、通信方式を特定可能な情報を表わす通信方式識別子ＣＩＤを予め埋め込んでおき、それを図１（ｆ）と同様のフローチャートと同様の処理により通信を行うプログラム同士で一致しているか否かをチェックするなどの方法があるが、本発明の請求の範囲は、通信方式の不整合の検出部によって制限されるものではない。
【０１４９】
ステップＳ１４で通信方式の不整合を検出した場合には、ユーザに通知するなど必要な措置を取る（ステップＳ１６）。例えば携帯電話機などでは、表示部に不整合が生じた旨のメッセージ表示を行う。不整合が検出できない場合は、ステップＳ１７に進む（ステップＳ１５）。
【０１５０】
プログラム実行部１０２が実行している一個または複数のプログラムの実行が全て終了したら、処理を終了する（ステップＳ１８）。そうでなければ、ステップＳ１４からステップＳ１７までを繰り返す（ステップＳ１７）。
【０１５１】
このように、本実施の形態２の構成によれば、プログラム実行部１０２が複数のプログラムを取得して協調動作させる際に、前記複数のプログラムが使用可能な通信方式に不整合があった場合でも、通信方式不整合検出部３０４が前記不整合を検出することによって、ユーザへの通知など、必要な措置を採ることが可能となる。
【０１５２】
なお、本実施の形態２では、通信方式不整合検出部３０４は、プログラムの実行が全て終了するまで繰り返し通信方式の不整合の検出を行うという例について記述したが、通信方式不整合検出部３０４による通信方式の不整合の検出のタイミングは、この例の場合のみに制限されるわけではなく、本発明の請求の範囲は、通信方式不整合検出部３０４による通信方式の不整合の検出のタイミングによって制限されるものではない。
【０１５３】
（実施の形態３）
図４は、本発明の実施の形態３におけるプログラム取得実行装置の構成図である。図４において、図１８（ａ）及び図３（ａ）と同じ構成要素については同じ符号を用い、説明を省略する。
【０１５４】
図４において、プログラム取得実行装置１００は、図３（ａ）における構成と、構成要素は同じである。
ただし、図３（ａ）における構成とは異なり、通信方式不整合検出部３０４が通信方式の不整合を検出した場合には、プログラム取得部１０１は、プログラムを再取得する。
【０１５５】
上記プログラム取得実行装置１００の動作の概略について、図１１（ａ）のフローチャートを参照しながら説明する。
図１１（ａ）において、ステップＳ２１からステップＳ２４までは、本発明の実施の形態２における、図１０で示したフローチャートのステップＳ１１からステップＳ１４と同様なので、説明を省略する。
【０１５６】
ステップＳ２４の終了後、ステップＳ２４で通信方式の不整合を検出した場合には、プログラム取得部１０１は、プログラムを再取得し（ステップＳ２６）、ステップＳ２３から処理をやり直す（プログラム実行部１０２がプログラムの再実行を行う）。そうでなければ、ステップＳ２７に進む（ステップＳ２５）。
【０１５７】
プログラム実行部１０２が実行している一個または複数のプログラムの実行が全て終了したら、処理を終了する（ステップＳ２８）。そうでなければ、ステップＳ２４からステップＳ２７までを繰り返す（ステップＳ２７）。
【０１５８】
ここで、ステップＳ２５で検出する不整合がＡＰＩの不整合である場合、ステップＳ２６は例えば図１１（ｂ）に示すように構成できる。
【０１５９】
即ち、不整合を検出した場合、一方のプログラムのＡＰＩのバージョンが他方のプログラムのＡＰＩのバージョンより高いか否かを判定する（ステップＳ２６１）。一方のプログラムが他方のプログラムよりもＡＰＩのバージョンが高い場合、他方のプログラムの更新版を取得する（ステップＳ２６２）。
【０１６０】
その際、更新版を取得できたか否かを判定し（ステップＳ２６３）、取得できた場合は直ちにステップＳ２３に進む。更新版が用意されていない等により取得できない場合は、一方のプログラムのバージョンを他方に合わせるよう、一方のプログラムのバージョンの低い版を取得し（ステップＳ２６４）、ステップＳ２３に進む。
【０１６１】
また、一方のプログラムが他方のプログラムよりもＡＰＩのバージョンが低い場合は、ステップＳ２６５ないしＳ２６７により上記と逆の操作を行う。即ち、一方のプログラムの更新版を取得する（ステップＳ２６５）。その際、更新版を取得できたか否かを判定し（ステップＳ２６６）、取得できた場合は直ちにステップＳ２３に進む。更新版が用意されていない等により取得できない場合は、他方のプログラムのバージョンを一方に合わせるよう、他方のプログラムのバージョンの低い版を取得し（ステップＳ２６７）、ステップＳ２３に進む。
【０１６２】
このように、本実施の形態３の構成によれば、本発明の実施の形態２におけるプログラム取得実行装置による効果に加えて、プログラム取得部１０１が前記不整合の検出されたプログラムを再取得することによって、プログラム実行部１０２が前記複数のプログラムを不整合のない組合せで実行させることが可能となる。
【０１６３】
なお、本実施の形態３では、通信方式不整合検出部３０４が通信方式の不整合を検出した場合には、プログラム取得部１０１がプログラムを再取得し、プログラム実行部１０２がプログラムの再実行を行う例を記述したが、通信方式不整合検出部３０４による通信方式の不整合の検出と、プログラム取得部１０１によるプログラムの再取得と、プログラム実行部１０２によるプログラムの再実行のタイミングは、この例の場合のみに制限されるわけではなく、本発明の請求の範囲は、通信方式不整合検出部３０４による通信方式の不整合の検出と、プログラム取得部１０１によるプログラムの再取得と、プログラム実行部１０２によるプログラムの再実行のタイミングによって制限されるものではない。
【０１６４】
（実施の形態４）
図５は、本発明の実施の形態４におけるプログラム取得実行装置の構成図である。図５において、図１８（ａ）及び図３（ａ）及び図４と同じ構成要素については同じ符号を用い、説明を省略する。
【０１６５】
図５において、プログラム取得実行装置１００は、図１８（ａ）及び図３（ａ）及び図４における構成に加えて、通信方式変換部２０３を備えている。
通信方式変換部２０３は、プログラム実行部１０２が実行する複数のプログラムが相互に通信する際の通信方式を変換する。 
【０１６６】
上記プログラム取得実行装置１００の動作の概略について、図１２のフローチャートを参照しながら説明する。
図１２において、ステップＳ３１からステップＳ３４までは、本発明の実施の形態２における、図１０で示したフローチャートのステップＳ１１からステップＳ１４と同様なので、説明を省略する。
【０１６７】
ステップＳ３４の終了後、ステップＳ３４で通信方式の不整合を検出した場合には、通信方式変換部２０３は、不整合を検出した通信について、プログラム実行部１０２が実行する複数のプログラムが相互に通信する際の通信方式を変換する（ステップＳ３６）。そうでなければ、ステップＳ４０に進む（ステップＳ３５）。
【０１６８】
通信方式不整合検出部３０４は、不整合を検出した通信について、ステップＳ３４と同様にして、プログラム実行部１０２が実行する複数のプログラムが相互に通信する際の通信方式の不整合を検出する（ステップＳ３７）。これにより、通信方式を変換し互いに通信が可能となるはずの場合でも、実際には、通信が不整合になる場合を検出することが可能になる。
【０１６９】
ステップＳ３７の終了後、ステップＳ３８で再び通信方式の不整合を検出した場合には、ステップＳ３９に進む。そうでなければ、ステップＳ４０に進む（ステップＳ３８）。
【０１７０】
ステップＳ３９に進む場合には、プログラム取得部１０１は、プログラムを再取得し、ステップＳ３３から処理をやり直す（プログラム実行部１０２がプログラムの再実行を行う）（ステップＳ３９）。
【０１７１】
ステップＳ４０に進む場合には、プログラム実行部１０２が実行している一個または複数のプログラムの実行が全て終了したら、処理を終了（ステップＳ４１）する。そうでなければ、ステップＳ３４からステップＳ４０までを繰り返す（ステップＳ４０）。
【０１７２】
従って、最初に取得したプログラムが暫定バージョンであり、その後正式バージョンがリリースされた場合等では、暫定バージョンのプログラムは通信方式変換部２０３により通信方式を変換しても他のプログラムと通信を行う際に不整合を生じることがあるが、このような場合に、上述のような処理を行うことにより正式バージョンのプログラムを再取得することで、他のプログラムとの通信方式の不整合を解消することが可能になる。
【０１７３】
このように、本実施の形態４の構成によれば、本発明の実施の形態２及び実施の形態３におけるプログラム取得実行装置による効果に加えて、通信方式変換部２０３が前記複数のプログラムが相互に通信する際の通信方式を変換することによって、前記複数のプログラムを相互に通信させることが可能となる。
【０１７４】
なお、本実施の形態４では、通信方式不整合検出部３０４が通信方式の不整合を検出した場合には、まずは、通信方式変換部２０３が、不整合を検出した通信について、通信方式を変換し、その上で再度、通信方式不整合検出部３０４が通信方式の不整合の検出を行って、再度通信方式の不整合を検出した場合には、プログラム取得部１０１がプログラムを再取得し、プログラム実行部１０２がプログラムの再実行を行うという実施の形態を記述した。
【０１７５】
しかしながら、通信方式不整合検出部３０４による通信方式の不整合の検出と、通信方式変換部２０３による通信方式の変換と、プログラム取得部１０１によるプログラムの再取得と、プログラム実行部１０２によるプログラムの再実行のタイミングは、この例の場合のみに制限されるわけではなく、本発明の請求の範囲は、通信方式不整合検出部３０４による通信方式の不整合の検出と、通信方式変換部２０３による通信方式の変換と、プログラム取得部１０１によるプログラムの再取得と、プログラム実行部１０２によるプログラムの再実行のタイミングによって制限されるものではない。
【０１７６】
（実施の形態５）
図６は、本発明の実施の形態５におけるプログラム取得実行装置の構成図である。図６において、図１８（ａ）及び図３（ａ）ないし図５と同じ構成要素については同じ符号を用い、説明を省略する。
【０１７７】
図６において、プログラム取得実行装置１００は、図１８（ａ）及び図３（ａ）ないし図５における構成に加えて、整合通信方式決定部６０５を備えている。
この整合通信方式決定部６０５は、ＲＯＭ１００３に記録された整合通信方式決定プログラムと、ＣＰＵ１００１と、そのワークエリアとなるＲＡＭ１００２とから構成される。
【０１７８】
整合通信方式決定部６０５は、プログラム取得部１０１が再取得するプログラムが用いるべき、整合の取れた通信方式を決定する。
プログラム取得部１０１は、整合通信方式決定部６０５が決定した通信方式を用いるプログラムを再取得する。
【０１７９】
上記プログラム取得実行装置１００の動作の概略について、図１３（ａ）のフローチャートを参照しながら説明する。図１３（ａ）において、ステップＳ５１からステップＳ５７までは、本発明の実施の形態４における、図１２で示したフローチャートのステップＳ３１からステップＳ３７と同様なので、説明を省略する。
【０１８０】
ステップＳ５７の終了後、ステップＳ５７で再び通信方式の不整合を検出した場合には、ステップＳ５９に進む。そうでなければ、ステップＳ６１に進む（ステップＳ５８）。
ステップＳ５９に進む場合には、整合通信方式決定部６０５は、プログラム取得部１０１が再取得するプログラムが用いるべき、整合の取れた通信方式を決定する（ステップＳ５９）。
【０１８１】
これは例えば、図１３（ｂ）のフローチャートに示されるように、２つのプログラムで使用している通信方式を、図３（ｂ）に示すようにプログラムファイルＰＦのヘッダＰＨＤ中の通信方式識別子ＣＩＤを抽出する等により取得し（ステップＳ５９１）、それぞれのプログラムの通信方式のいずれが上位互換となっているかを検出し（ステップＳ５９２）、上位互換となっている通信方式を検出できた場合は（ステップＳ５９３）、上位互換となっている通信方式を整合のとれた通信方式と決定し（ステップＳ５９４）、ステップＳ５９３にて上位互換となっている通信方式を検出できない場合は、各通信方式のいずれに対しても上位互換となる通信方式を整合のとれた通信方式と決定する（ステップＳ５９５）。
【０１８２】
これは例えば図１３（ｃ）に示すような表を検索することにより上位互換となる通信方式を検出すればよい。なお、この表中の「上位互換性」は数字が大きいほど上位互換であることを示す。
【０１８３】
これにより、例えば、不整合が検出された場合に使用している通信プロトコルがＴＣＰ／ＩＰである場合に整合のとれる通信プロトコルとしてＴＣＰ／ＩＰの上位互換プロトコルであるＯＳＩを通信プロトコルとして決定する等の処理を行う。
【０１８４】
整合通信方式決定部６０５は決定した通信方式を用いるプログラムを通信媒体２０１を介してプログラム格納装置１５０に通知し、プログラム取得実行装置１００はプログラム格納装置１５０が送信するプログラムを、通信媒体２００を介して再取得し、ステップＳ５３から処理をやり直す（プログラム実行部１０２がプログラムの再実行を行う）（ステップＳ６０）。
【０１８５】
ステップＳ６１に進む場合には、プログラム実行部１０２が実行している一個または複数のプログラムの実行が全て終了したら、処理を終了する（ステップＳ６２）。そうでなければ、ステップＳ５４からステップＳ６１までを繰り返す（ステップＳ６１）。
【０１８６】
このように、本実施の形態５の構成によれば、本発明の実施の形態３及び実施の形態４におけるプログラム取得実行装置による効果に加えて、前記不整合が検出されたプログラムについて、整合の取れた通信方式を使用するプログラムを再取得することによって、プログラム実行部１０２が実行する複数のプログラムを相互に通信させることが可能となる。
【０１８７】
なお、本実施の形態５では、通信方式不整合検出部３０４が通信方式の不整合を検出した場合には、まずは、通信方式変換部２０３が、不整合を検出した通信について、通信方式を変換し、その上で再度、通信方式不整合検出部３０４が通信方式の不整合の検出を行って、再度通信方式の不整合を検出した場合には、整合通信方式決定部６０５が整合の取れた通信方式を決定し、プログラム取得部１０１がプログラムを再取得し、プログラム実行部１０２がその通信方式を用いるプログラムの再実行を行うという実施例を記述した。
【０１８８】
しかしながら、通信方式不整合検出部３０４による通信方式の不整合の検出と、通信方式変換部２０３による通信方式の変換と、整合通信方式決定部６０５による通信方式の決定と、プログラム取得部１０１によるプログラムの再取得と、プログラム実行部１０２によるプログラムの再実行のタイミングは、この例の場合のみに制限されるわけではなく、本発明の請求の範囲は、通信方式不整合検出部３０４による通信方式の不整合の検出と、通信方式変換部２０３による通信方式の変換と、整合通信方式決定部６０５による通信方式の決定と、プログラム取得部１０１によるプログラムの再取得と、プログラム実行部１０２によるプログラムの再実行のタイミングによって制限されるものではない。
【０１８９】
（実施の形態６）
本発明の実施の形態６におけるプログラム取得実行装置の構成図は、本発明の実施の形態５におけるプログラム取得実行装置の構成図と同じく、図６である。ただし、一部の構成要素、即ち、整合通信方式決定部６０５の機能が本発明の実施の形態５から拡張されている。
【０１９０】
図６において、本発明の実施の形態５と機能が同じ構成要素については説明を省略する。
図６において、整合通信方式決定部６０５は、プログラム取得部１０１が既に取得しているプログラムが用いている通信方式の中から、整合の取れた通信方式を決定する。
【０１９１】
これは例えば図１３（ｄ）に示すように、プログラム取得部１０１において２つのプログラムを取得する際に通信方式識別子ＣＩＤ等のその通信方式に関する情報も取得してこれを保持しておき、整合通信方式決定部６０５がプログラム取得部１０１から呼び出すことでこれらを取得すればよい（ステップ５９１ａ）。その他の図１３（ｄ）の処理は図１３（ｂ）と同様である。
このように、本実施の形態６の構成によれば、本発明の実施の形態５におけるプログラム取得実行装置による効果に加えて、プログラム実行部１０２が実行する複数のプログラムが使用可能な通信方式の中から整合の取れた通信方式を決定し、前記整合の取れた通信方式を使用するプログラムを再取得することによって、前記複数のプログラムを相互に通信させることが可能となる。
【０１９２】
（実施の形態７）
本発明の実施の形態７におけるプログラム取得実行装置の構成図は、本発明の実施の形態５におけるプログラム取得実行装置の構成図と同じく、図６である。ただし、一部の構成要素、即ち、整合通信方式決定部６０５の機能が実施の形態５から拡張されている。
【０１９３】
図６において、実施の形態５と機能が同じ構成要素については説明を省略する。
図６において、整合通信方式決定部６０５は、一個または複数のプログラム格納装置１５０から再取得可能なプログラムが用いている通信方式の中から、整合の取れた通信方式を決定する。
【０１９４】
これは例えば図１３（ｅ）に示されるように、整合通信方式決定部６０５がプログラム格納装置１５０に格納されている各プログラムからその通信方式に関する情報を取得し（ステップＳ５９１ｂ）、図１３（ｃ）に示す表等を用いて各プログラムの通信方式のいずれが上位互換となっているかを検出すればよい（ステップＳ５９２ｂ）。
【０１９５】
これにより、再取得により置き換えられるプログラムとして予め用意されているプログラムの中から整合のとれた通信方式を決定しているので、整合のとれた通信方式として決定した通信方式を用いるプログラムがプログラム格納装置１５０に存在せず、無駄になることがなくなる。
【０１９６】
このように、本実施の形態７の構成によれば、本発明の実施の形態５におけるプログラム取得実行装置による効果に加えて、プログラム格納装置１５０から再取得可能なプログラムが使用している通信方式の中から、整合の取れた通信方式を決定し、前記整合の取れた通信方式を使用するプログラムを再取得することによって、プログラム実行部１０２が実行する複数のプログラムを相互に通信させることが可能となる。
【０１９７】
（実施の形態８）
本発明の実施の形態８におけるプログラム取得実行装置の構成図は、本発明の実施の形態５ないし７におけるプログラム取得実行装置の構成図と同じく、図６である。ただし、一部の構成要素、即ち、整合通信方式決定部６０５の機能が本発明の実施の形態５ないし７から拡張されている。
【０１９８】
図６において、本発明の実施の形態５ないし７と機能が同じ構成要素については説明を省略する。
図６において、整合通信方式決定部６０５は、整合の取れた通信方式の候補の中から、最も新しい通信方式を選択し、整合の取れた通信方式として決定する。
【０１９９】
これは例えば図１３（ｆ）に示されるように、整合通信方式決定部６０５が整合の取れた通信方式の候補を検出し（ステップＳ５９６ａ）、検出した候補の中から例えば図１３（ｇ）に示すような表を検索することにより最新の通信方式を検出すればよい（ステップＳ５９６ｂ）。なお、この表中の「新しさ」は数字が大きいほど新しいものとする。
【０２００】
このように、本実施の形態８の構成によれば、本発明の実施の形態５ないし７におけるプログラム取得実行装置による効果に加えて、できる限り新しい通信方式を使用して、プログラム実行部１０２が実行する複数のプログラムを相互に通信させることが可能となる。
【０２０１】
（実施の形態９）
本発明の実施の形態９におけるプログラム取得実行装置の構成図は、本発明の実施の形態５ないし７におけるプログラム取得実行装置の構成図と同じく、図６である。ただし、一部の構成要素、即ち整合通信方式決定部６０５の機能が本発明の実施の形態５ないし７から拡張されている。
【０２０２】
図６において、本発明の実施の形態５ないし７と機能が同じ構成要素については説明を省略する。
図６において、整合通信方式決定部６０５は、整合の取れた通信方式の候補の中から、前記プログラム取得部がプログラムを再取得する際のコストが最も安価となるような通信方式を選択し、整合の取れた通信方式として決定する。
【０２０３】
これは例えば図１３（ｈ）に示されるように、整合通信方式決定部６０５が整合の取れた通信方式の候補を検出し（ステップＳ５９６ａ）、検出した候補の中から例えば図１３（ｉ），図１３（ｊ）に示すようにプログラムファイルＰＦのヘッダＰＨＤ中のプログラムサイズ情報ＰＧＳやパケットサイズ情報ＰＫＳを検出し、これらが最小となる通信方式を検出することで実現すればよい（ステップＳ５９６ｃ）。
【０２０４】
このように、本実施の形態９の構成によれば、本発明の実施の形態５ないし７におけるプログラム取得実行装置による効果に加えて、プログラム実行部１０２が実行する複数のプログラムを相互に通信させるための再取得の際のコストを、できる限り安価にすることが可能となる。
【０２０５】
（実施の形態１０）
本発明の実施の形態１０におけるプログラム取得実行装置の構成図は、本発明の実施の形態５ないし９におけるプログラム取得実行装置の構成図と同じく、図６である。ただし、一部の構成要素、即ち整合通信方式決定部６０５の機能が本発明の実施の形態５ないし９から拡張されている。
【０２０６】
図６において、本発明の実施の形態５ないし９と機能が同じ構成要素については説明を省略する。
図６において、整合通信方式決定部６０５は、プログラム取得部１０１が、整合通信方式決定部６０５が決定した整合の取れた通信方式を用いるプログラムの取得に失敗した際に、整合の取れた通信方式を再決定し、プログラム取得部１０１は、整合通信方式決定部６０５が再決定した通信方式を用いるプログラムを再取得する。
【０２０７】
これは、図１３（ｋ）に示されるように、ステップＳ６０によるプログラムの再取得が成功したか否かを検出するステップＳ６３を設け、このステップＳ６３によりプログラムの再取得が成功したか否かを検出し、再取得に失敗した場合は、ステップＳ５９に戻り整合の取れた通信方式を再決定することで実現できる。
この再取得の失敗の通知は、例えばプログラム格納装置１５０が、プログラム取得部１０１からの要求に応じてそのデータベースを検出し、該当するプログラムを検出できなかった場合などにその旨を示すフラグを立てること等により実現できる。
【０２０８】
このように、本実施の形態１０の構成によれば、本発明の実施の形態５ないし９におけるプログラム取得実行装置による効果に加えて、整合の取れた通信方式として決定した通信方式を使用するプログラムの再取得に失敗した際でも、整合の取れた通信方式を再決定し、前記再決定した整合の取れた通信方式を使用するプログラムを再取得することによって、プログラム実行部１０２が実行する複数のプログラムを相互に通信させることが可能となる。
【０２０９】
（実施の形態１１）
図１４（ａ）は、本発明の実施の形態１１におけるプログラム取得実行装置の構成図である。図１４（ａ）において、図１８（ａ）及び図３ないし図６と同じ構成要素については同じ符号を用い、説明を省略する。
【０２１０】
図１４（ａ）において、プログラム取得実行装置１００は、図１８（ａ）及び図３ないし図６における構成に加えて、通信方式決定方法指示部１４０６を備えている。
通信方式決定方法指示部１４０６は、整合通信方式決定部６０５が整合の取れた通信方式を決定する方法をユーザが指示するものである。
【０２１１】
整合通信方式決定部６０５は、通信方式決定方法指示部１４０６によって指示された方法で整合の取れた通信方式を決定する。
これは、図１４（ｂ）に示すように、整合の取れた通信方式を決定する方法をユーザがキーボードやカーソルキー等により予め指示しておき（ステップＳ６４）、通信方式の不整合を検出した場合に（ステップＳ５８）、整合通信方式決定部６０５はこの指示された方法に基づいてプログラム取得部１０１が再取得するプログラムが使用する通信方式を決定する（ステップＳ５９ａ）。
このユーザが指示する、整合のとれた通信方式を決定する方法は、例えば実施の形態８ないし１０のいずれかの方法の他、他の所要の規則に基づいて通信方式を決定すればよい。
【０２１２】
このように、本実施の形態１１の構成によれば、本発明の実施の形態５ないし１０におけるプログラム取得実行装置による効果に加えて、整合の取れた通信方式を決定する方法をユーザが選択でき、前記ユーザによって選択された方法によって決定した、整合の取れた通信方式を使用するプログラムを再取得することによって、プログラム実行部１０２が実行する複数のプログラムを相互に通信させることが可能となる。
【０２１３】
（実施の形態１２）
本発明の実施の形態１２におけるプログラム取得実行装置の構成図は、本発明の実施の形態１１におけるプログラム取得実行装置の構成図と同じく、図１４（ａ）である。ただし、一部の構成要素の機能が本発明の実施の形態５ないし１１から拡張されている。図１４（ａ）において、本発明の実施の形態５ないし１１と機能が同じ構成要素については説明を省略する。
【０２１４】
図１４（ａ）において、プログラム取得部１０１は、通信方式不整合検出部３０４が通信方式の不整合を検出したプログラムのみを再取得する。
これは、図１４（ｃ）に示すように、予めユーザが整合の取れた通信方式を指示しておき（ステップＳ６４）、整合通信方式決定部６０５がユーザの指示に基づいて整合の取れた通信方式を決定した（ステップＳ５９ａ）後、プログラム取得部１０１が、通信方式不整合検出部３０４が不整合を検出したプログラムであって、かつ整合通信方式決定部６０５が決定した通信方式を用いるプログラムのみを再取得することで実現できる（ステップＳ６０ｂ）。
【０２１５】
このように、本実施の形態１２の構成によれば、本発明の実施の形態５ないし１１におけるプログラム取得実行装置による効果に加えて、プログラム実行部１０２が実行する複数のプログラムの全てではなく、不整合が検出されたプログラムのみを再取得することによって、プログラムの効率的な再取得を実現することが可能となる。
【０２１６】
（実施の形態１３）
本発明の実施の形態１３におけるプログラム取得実行装置の構成図は、本発明の実施の形態１１及び実施の形態１２におけるプログラム取得実行装置の構成図と同じく、図１４（ａ）である。ただし、一部の構成要素の機能が本発明の実施の形態５ないし１１から拡張されている。図１４（ａ）において、本発明の実施の形態５ないし１１と機能が同じ構成要素については説明を省略する。
【０２１７】
図１４（ａ）において、プログラム取得部１０１は、実行に必要な全てのプログラムを再取得する。
これは、図１４（ｄ）に示されるように、整合の取れた通信方式を決定する方法をユーザが指示しておき（ステップＳ６４）、整合通信方式決定部６０５がユーザの指定した方法により、整合のとれた通信方式を決定し（ステップＳ５９ａ）、プログラム取得部１０１が、整合通信方式決定部６０５が決定した通信方式を用いるプログラムであって、プログラム実行部１０２が実行に必要な全てのプログラムを再取得することで実現できる（ステップＳ６０ｃ）。
【０２１８】
このように、本実施の形態１３の構成によれば、本発明の実施の形態５ないし１１におけるプログラム取得実行装置による効果に加えて、プログラム実行部１０２が実行する複数のプログラムの全てを再取得することによって、前記複数のプログラムの一部のみを取得することによる更なる不整合の発生を回避することが可能となる。
【０２１９】
（実施の形態１４）
本発明の実施の形態１４におけるプログラム取得実行装置の構成図は、本発明の実施の形態１１ないし１３におけるプログラム取得実行装置の構成図と同じく、図１４（ａ）である。ただし、一部の構成要素、即ち、プログラム取得部１０１の機能が本発明の実施の形態５ないし１３から拡張されている。図１４（ａ）において、本発明の実施の形態５ないし１３と機能が同じ構成要素については説明を省略する。
【０２２０】
図１４（ａ）において、プログラム取得部１０１は、プログラム全体ではなく、プログラムのうち、通信方式不整合検出部３０４が検出した通信方式の不整合が存在する部分のみを再取得する。
【０２２１】
これは図１４（ｅ）に示されるように、整合の取れた通信方式を決定する方法をユーザが指示しておき（ステップＳ６４）、整合通信方式決定部６０５がユーザの指定した方法により、整合のとれた通信方式を決定し（ステップＳ５９ａ）、プログラム取得部１０１が、整合通信方式決定部６０５が決定した通信方式を用いるプログラム中の、通信方式不整合検出部３０４が検出した通信方式の不整合が存在する部分のみを再取得することで実現できる（ステップＳ６０ｄ）。
【０２２２】
この通信方式の不整合が存在する部分のみの取得は、予めプログラムをモジュール単位で作成しておき、モジュールヘッダの情報を参照することで通信に関連するモジュールのみを再取得すること等により実現できる。
【０２２３】
このように、本実施の形態１４の構成によれば、本発明の実施の形態５ないし１３におけるプログラム取得実行装置による効果に加えて、プログラムのうち、通信方式の不整合が存在する部分のみを部分的に再取得することによって、再取得のコストを更に極小化することが可能となる。
【０２２４】
（実施の形態１５）
本発明の実施の形態１５におけるプログラム取得実行装置の構成図は、本発明の実施の形態１１ないし１４におけるプログラム取得実行装置の構成図と同じく、図１４（ａ）である。ただし、一部の構成要素、即ち、通信方式変換部２０３の機能が本発明の実施の形態１または実施の形態４ないし１４から拡張されている。図１４（ａ）において、本発明の実施の形態１または実施の形態４ないし１４と機能が同じ構成要素については説明を省略する。
【０２２５】
図１４（ａ）において、通信方式変換部２０３は、通信方式の変換を行う変換プログラムを実行することによって、通信方式を変換し、プログラム取得部１０１は、通信方式変換部２０３が実行する変換プログラムを取得する。
【０２２６】
これは図１４（ｆ）に示されるように、プログラム取得部１０１が、通信方式変換部２０３が実行する、通信方式の変換を行う変換プログラムを予め取得しておき（ステップＳ５２ｐ）、整合の取れた通信方式を決定する方法をユーザが指示しておき（ステップＳ６４）、通信方式変換部２０３は、ステップＳ５２ｐにおいて取得された変換プログラムを実行することによって通信方式を変換する（ステップＳ５６ａ）ことで実現できる。
【０２２７】
このように、本実施の形態１５の構成によれば、本発明の実施の形態１または実施の形態４ないし１４におけるプログラム取得実行装置による効果に加えて、プログラム格納装置１５０から取得された変換プログラムによって、プログラム実行部１０２が実行する複数のプログラムが相互に通信する際の通信方式を変換することによって、前記複数のプログラムが相互に通信する際の通信方式の変換方法自体の変更が可能となる。
【０２２８】
（実施の形態１６）
図１５（ａ）は、本発明の実施の形態１６におけるプログラム取得実行装置の構成図である。図１５（ａ）において、図１８（ａ）及び図３ないし図６及び図１４（ａ）と同じ構成要素については同じ符号を用い、説明を省略する。
【０２２９】
図１５（ａ）において、プログラム取得実行装置１００は、図１８（ａ）及び図３ないし図６及び図１４（ａ）における構成に加えて、通信方式変換方法指示部１５０７を備えている。 通信方式変換方法指示部１５０７は、通信方式変換部２０３が通信方式を変換する方法を指示させる。 通信方式変換部２０３は、通信方式変換方法指示部１５０７によって指示された方法で通信方式を変換する。
【０２３０】
これは図１５（ｂ）に示すように、予めユーザが通信方式変換部２０３が使用する通信方式変換方法を指示しておき（ステップＳ６５）、通信方式変換部２０３が、不整合を検出した通信に関してプログラム実行部１０２が実行する複数のプログラムが相互に通信する際の通信方法を、ユーザが指定する方法により変換することで実現できる（ステップＳ５６ａ）。
【０２３１】
このように、本実施の形態１６の構成によれば、本発明の実施の形態１または実施の形態４ないし１５におけるプログラム取得実行装置による効果に加えて、通信方式を変換する方法をユーザが選択でき、前記ユーザによって選択された方法によって、プログラム実行部１０２が実行する複数のプログラムが相互に通信する際の通信方式を変換することによって、前記複数のプログラムを相互に通信させることが可能となる。
【０２３２】
（実施の形態１７）
図１６（ａ）は、本発明の実施の形態１７におけるプログラム取得実行装置の構成図である。図１６（ａ）において、図１８（ａ）及び図３ないし図６及び図１４（ａ）及び図１５（ａ）と同じ構成要素については同じ符号を用い、説明を省略する。
【０２３３】
図１６（ａ）において、プログラム取得実行装置１００は、図１８（ａ）及び図３ないし図６及び図１４（ａ）及び図１５（ａ）における構成に加えて、プログラム取得方法指示部１６０８を備えている。
【０２３４】
プログラム取得方法指示部１６０８は、プログラム取得部１０１がプログラムを取得する方法を指示させる。
プログラム取得部１０１は、プログラム取得方法指示部１６０８によって指示された方法でプログラムを取得する。
【０２３５】
これは図１６（ｂ）に示すように、ユーザが予めプログラムを取得する方法を指示しておき（ステップＳ６６）、プログラム取得部１０１が、整合通信方式決定部６０５が決定した通信方式を用いるプログラムをユーザが指定する方法により再取得することにより実現できる（ステップＳ６０ａ）。
【０２３６】
このように、本実施の形態１７の構成によれば、本発明の実施の形態１または実施の形態４ないし１６におけるプログラム取得実行装置による効果に加えて、プログラムを取得する方法をユーザが選択でき、前記ユーザによって選択された方法によって、不整合が検出されたプログラムを再取得することによって、プログラム実行部１０２が実行する複数のプログラムを相互に通信させることが可能となる。
【０２３７】
（実施の形態１８）
本発明の実施の形態１８におけるプログラム取得実行装置の構成図は、本発明の実施の形態１７におけるプログラム取得実行装置の構成図と同じく、図１６（ａ）である。ただし、一部の構成要素の機能が本発明の実施の形態２ないし１７から拡張されている。図１６（ａ）において、本発明の実施の形態２ないし１７と機能が同じ構成要素については説明を省略する。
【０２３８】
図１６（ａ）において、通信方式不整合検出部３０４は、プログラム実行部１０２がプログラムの実行を開始する前に、通信方式の不整合を検出する。
これは図１６（ｃ）に示すように、ユーザが予め整合の取れた通信方式を指定する方法を指示しておき（ステップＳ６４）、通信方式不整合検出部３０４が、プログラム実行部１０２が実行する（ステップＳ５３）前のステップＳ５４ないしＳ６０ａにおいて複数のプログラムが相互に通信する際の通信方式の不整合を全て検出する（ステップＳ５５、Ｓ５８、Ｓ６８）ことにより実現できる。この実行前の不整合の検出は、例えば図３（ｂ），図３（ｃ）に示すようにプログラムファイルＰＦ中の通信方式識別子ＣＩＤを事前に参照することで実現できる。
【０２３９】
このように、本実施の形態１８の構成によれば、本発明の実施の形態２ないし１７におけるプログラム取得実行装置による効果に加えて、プログラムの実行を開始する前に通信方式の不整合を検出することによって、検出された不整合を全て解消した後に初めてプログラムを実行するため、プログラムの実行中のプログラムの再取得や再実行を回避することが可能となる。
【０２４０】
（実施の形態１９）
本発明の実施の形態１９におけるプログラム取得実行装置の構成図は、本発明の実施の形態１７ないし１８におけるプログラム取得実行装置の構成図と同じく、図１６（ａ）である。ただし、一部の構成要素の機能が本発明の実施の形態２ないし１７から拡張されている。図１６（ａ）において、本発明の実施の形態２ないし１７と機能が同じ構成要素については説明を省略する。 図１６（ａ）において、通信方式不整合検出部３０４は、プログラム実行部１０２がプログラムを実行中のときに、逐次通信方式の不整合を検出する。
【０２４１】
これは図１６（ｄ）に示すように、ユーザが予め整合の取れた通信方式を指定する方法を指示しておき（ステップＳ６４）、通信方式不整合検出部３０４が不整合を検出した通信に関し、プログラム実行部１０２が実行（ステップＳ５３ｂ）中の複数のプログラムが相互に通信する際の通信方式の不整合を、ステップＳ５４ないしＳ６０ａにおいてプログラムが実行されるごとに逐次検出することにより実現できる。この実行中の不整合の検出は、例えば図３（ｂ），図３（ｃ）に示すようにプログラムファイルＰＦ中の通信方式識別子ＣＩＤを実行中に参照することで実現できる。
【０２４２】
このように、本実施の形態１９の構成によれば、本発明の実施の形態２ないし１７におけるプログラム取得実行装置による効果に加えて、プログラムの実行中に、プログラムを一行ずつあるいは一部分ずつ実行する度に、逐次通信方式の不整合を検出し、検出された不整合を解消していくことによって、プログラムの実行前の不整合の検出による実行開始の遅れを回避することが可能となる。
【０２４３】
（実施の形態２０）
図１７（ａ）は、本発明の実施の形態２０におけるプログラム取得実行装置の構成図である。図１７（ａ）において、図１８（ａ）及び図３ないし図６及び図１４（ａ）ないし図１６（ａ）と同じ構成要素については同じ符号を用い、説明を省略する。
【０２４４】
図１７（ａ）において、プログラム取得実行装置１００は、図１８及び図３ないし図６及び図１４（ａ）ないし図１６（ａ）における構成に加えて、プログラム格納部１７０９を備えている。
プログラム格納部１７０９は、プログラム取得部１０１が再取得する対象となっているプログラムまたはプログラムの一部を格納する。
プログラム実行部１０２は、プログラム取得部１０１が再取得したプログラムまたはプログラムの一部を実行した後、再びプログラム格納部１７０９が格納しているプログラムを実行する。
【０２４５】
これは図１７（ｂ）に示すフローにより実現できる。即ち、プログラム取得部１０１が、整合通信方式決定部６０５が決定した通信方式を用いるプログラムをユーザが指定する方法により再取得する前に、再取得する対象となっているプログラムまたはその一部をプログラム格納部１７０９に予め格納する（ステップＳ６７）。そしてプログラムを再取得（ステップＳ６０ａ）することにより、ステップＳ５５またはＳ５８における不整合を解消する。その後、プログラム実行部１０２は、プログラム格納部１７０９に格納していた、再取得する対象となっているプログラムまたはその一部を取り出してこれを実行する（ステップＳ６９、Ｓ７０）。
【０２４６】
このように、本実施の形態２０の構成によれば、本発明の実施の形態３ないし１９におけるプログラム取得実行装置による効果に加えて、不整合が検出された元々のプログラムを格納したまま、当該プログラムについて、整合の取れた通信方式を使用するプログラムを再取得して実行することによって、即ち、プログラムを再取得することにより不整合を解消し、元のプログラムでは不整合を生じている部分を無事実行し終われば、一時的に入れ替えていたプログラムを元のプログラムに戻すことによって、通信方式の不整合を解消した後で、元々のプログラムを実行することが可能となる。
【０２４７】
なお、この実施の形態２０では、不整合部分を解消するためにプログラムの再取得を行うようにしたが、不整合の解消はプログラムの変換により行うようにしてもよい。
【０２４８】
また、上記各実施の形態では、プログラム取得実行装置１００として、ＲＡＭのみを書き換え可能な記憶装置として有する機器組み込み型コンピュータを示したが、書き換え可能な記憶装置としてＲＡＭ以外に磁気ディスクドライブや光ディスクドライブ、光磁気ディスクドライブ等の書き換え可能な各種ファイル装置を有するものであってもよい。
【０２４９】
また、上記各実施の形態では、不揮発性記憶装置としてＲＯＭのみを有するものを示したが、ＲＯＭ以外に、ＣＤ-ＲＯＭやＤＶＤ-ＲＯＭ等の書き換え不可なファイル装置を有するものであってもよい。
【０２５０】
また、このような書き換え可能なファイル装置や書き換え不可のファイル装置を有する場合、ＲＯＭに格納していたＯＳ等のモニタプログラムやＪａｖａ（登録商標）仮想マシン等のインタプリタ、ミドルウエアやアプリケーションプログラム等はこれらのファイル装置に格納してもよい。
【０２５１】
また、変形例として、携帯電話機のプログラムの更新を例にとって示したが、上述のような機器組み込み型コンピュータや、ＨＡＶｉを始めとする家庭内ネットワーク対応機器や、インターネット接続が可能な家電機器や、携帯電話機を始めとする有線・無線の通信網に接続可能な機器や、テレビ受信機やラジオ受信機を始めとする放送網に接続可能な機器や、パソコンのプログラムを更新する場合であってもよい。
【０２５２】
また、携帯電話機のプログラムの更新は、同一の通信事業者の携帯電話機を製造する複数のメーカが更新用のシステムを共同運用する場合を示したが、各メーカが独自の更新用システムを運用するようにしてもよく、この場合は、更新希望リストにメーカ名の情報を含ませる必要はない。また、インターネット接続が可能なiモード（登録商標）等の携帯電話機を例にとって示したが、公衆通信網自体を経由してプログラムを配信するなど、インターネット以外の通信媒体を用いて運用するようにしてもよい。さらに、通信媒体２００と通信媒体２０１とを併用するようにしたが、これは時分割等により同一の通信媒体を兼用してもよい。
【０２５３】
また、携帯電話機に通信方式変換部２０３を設ける場合を示したが、通信方式不整合検出部３０４や整合通信方式決定部６０５を設けてもよい。この場合、これら通信方式不整合検出部３０４や整合通信方式決定部６０５もＲＯＭ１１１５に記憶されたプログラムと、制御部１１０９と、ワークエリアとしてのＲＡＭ１１１４とから構成すればよい。
【０２５４】
また、上記各実施の形態ではプログラム取得実行装置を示したが、プログラム取得実行方法として実現してもよく、この場合、プログラム取得部，プログラム実行部，通信方式変換部，通信方式不整合検出部，整合通信方式決定部を、それぞれの機能に相当するプログラム取得工程，プログラム実行工程，通信方式変換工程，通信方式不整合検出工程，整合通信方式決定工程として実現すればよい。
【０２５５】
また、プログラム取得実行プログラムとしてこれらの工程を有するプログラム取得実行方法を実現してもよく、このプログラム取得実行プログラムを記録媒体に記録したプログラム取得実行プログラム記録媒体として実現してもよい。
【０２５６】
また、通信プロトコルの例としてＴＣＰ／ＩＰ，ＯＳＩを示したが、使用可能な通信プロトコルはこれらに限るものではない。
【産業上の利用可能性】
【０２５７】
本発明にかかるプログラム取得実行装置は、ネットワークや無線通信装置等の通信媒体を介してプログラム格納装置から複数のプログラムを取得（ダウンロード、アップロードなど）して実行する際に、それら複数のプログラムの間の通信方式に不整合があった場合でも、他のプログラムを利用できる特徴を有し、ダウンロードあるいはアップロード可能なプログラム間のバージョン不整合やプロトコル不整合を解決する方法として、非常に広い分野への応用が可能である。応用分野に特に制限はないが、例えば、家電製品の組込みソフトウェアのネットワークや無線通信装置等の通信媒体を介しての書き換えや、インターネットブラウザへのアプリケーションのダウンロード等への応用が可能である。
【図面の簡単な説明】
【０２５８】
【図１（ａ）】本発明の実施の形態１におけるプログラム取得実行装置の構成図
【図１（ｂ）】本発明の実施の形態１におけるプログラム取得実行装置の階層構成を示す図
【図１（ｃ）】本発明の実施の形態１におけるプログラム取得実行装置の階層構成を示す図
【図１（ｄ）】本発明の実施の形態１におけるプログラム取得実行装置の階層構成を示す図
【図１（ｅ）】本発明の実施の形態１におけるプログラム取得実行装置のプログラムファイルの構造を示す図
【図１（ｆ）】本発明の実施の形態１におけるプログラム取得実行装置のＡＰＩの変換動作のフローチャートを示す図
【図１（ｇ）】本発明の実施の形態１におけるプログラム取得実行装置のＡＰＩのバージョンの不一致を検出する動作を示す模式図
【図１（ｈ）】本発明の実施の形態１におけるプログラム取得実行装置を含むシステムの構成例を示すブロック図
【図２（ａ）】本発明の実施の形態１の変形例１である携帯電話機の構成例を示すブロック図
【図２（ｂ）】本発明の実施の形態１の変形例である携帯電話機のプログラム更新を行うシステムの構成例を示すブロック図
【図２（ｃ）】図２（ｂ）のサーバの動作のフローチャートを示す図
【図２（ｄ）】図２（ｂ）の携帯電話機の動作のフローチャートを示す図
【図２（ｅ）】図２（ｂ）の携帯電話機が更新用プログラムリストを表示している状態を示す図
【図２（ｆ）】図２（ｂ）の携帯電話機の更新用プログラムリストを選択している状態を示す図
【図２（ｇ）】図２（ｂ）の携帯電話機の更新希望リストのデータ構造の例を示す図
【図２（ｈ）】図２（ｂ）のサーバの動作のフローチャートを示す図
【図２（ｉ）】図２（ｂ）の携帯電話機の動作のフローチャートを示す図
【図３（ａ）】本発明の実施の形態２におけるプログラム取得実行装置の構成図
【図３（ｂ）】本発明の実施の形態２におけるプログラムファイルのデータ構造を示す図
【図３（ｃ）】本発明の実施の形態２におけるデータファイルのデータ構造を示す図
【図４】本発明の実施の形態３におけるプログラム取得実行装置の構成図
【図５】本発明の実施の形態４におけるプログラム取得実行装置の構成図
【図６】本発明の実施の形態５ないし１０におけるプログラム取得実行装置の構成図
【図７】本発明の実施の形態１におけるプログラム取得実行装置の動作の概略のフローチャートを示す図
【図８】本発明の実施の形態１におけるプログラム取得実行装置における、プログラム実行部で実行されるプログラムが用いるＡＰＩの一例を示す図
【図９（ａ）】本発明の実施の形態１におけるプログラム取得実行装置における、通信方式変換部による通信方式の変換例を示す図
【図９（ｂ）】本発明の実施の形態１におけるプログラム取得実行装置の通信方式変換部を通信方式変換プログラムにより構成した場合の構成例を示す図
【図９（ｃ）】本発明の実施の形態１におけるプログラム取得実行装置の通信方式変換部を通信方式変換プログラムにより構成した場合に使用する変換表の一例を示す図
【図１０】本発明の実施の形態２におけるプログラム取得実行装置の動作の概略のフローチャートを示す図
【図１１（ａ）】本発明の実施の形態３におけるプログラム取得実行装置の動作の概略のフローチャートを示す図
【図１１（ｂ）】図１１（ａ）のステップＳ２６のより詳細な処理の一例のフローチャートを示す図
【図１２】本発明の実施の形態４におけるプログラム取得実行装置の動作の概略のフローチャートを示す図
【図１３（ａ）】本発明の実施の形態５におけるプログラム取得実行装置の動作の概略のフローチャートを示す図
【図１３（ｂ）】図１３（ａ）のステップＳ５９のより詳細な処理の一例のフローチャートを示す図
【図１３（ｃ）】図１３（ａ）のステップＳ５９で使用する通信方式の上位互換性の表の一例を示す図
【図１３（ｄ）】本発明の実施の形態６におけるプログラム取得実行装置の処理の詳細なフローチャートを示す図
【図１３（ｅ）】本発明の実施の形態７におけるプログラム取得実行装置の処理の詳細なフローチャートを示す図
【図１３（ｆ）】本発明の実施の形態８におけるプログラム取得実行装置の処理の詳細なフローチャートを示す図
【図１３（ｇ）】本発明の実施の形態８におけるプログラム取得実行装置で使用される通信方式の新しさの表を示す図
【図１３（ｈ）】本発明の実施の形態９におけるプログラム取得実行装置の処理の詳細なフローチャートを示す図
【図１３（ｉ）】図１３（ｈ）のステップＳ５９６ｃで使用するプログラムファイルのデータ構造の他の例を示す図
【図１３（ｊ）】図１３（ｈ）のステップＳ５９６ｃで使用するプログラムファイルのデータ構造の他の例を示す図
【図１３（ｋ）】本発明の実施の形態１０におけるプログラム取得実行装置の動作の概略のフローチャートを示す図
【図１４（ａ）】本発明の実施の形態１１ないし１５におけるプログラム取得実行装置の構成図
【図１４（ｂ）】本発明の実施の形態１１におけるプログラム取得実行装置の動作の概要のフローチャートを示す図
【図１４（ｃ）】本発明の実施の形態１２におけるプログラム取得実行装置の動作の概要のフローチャートを示す図
【図１４（ｄ）】本発明の実施の形態１３におけるプログラム取得実行装置の動作の概要のフローチャートを示す図
【図１４（ｅ）】本発明の実施の形態１４におけるプログラム取得実行装置の動作の概要のフローチャートを示す図
【図１４（ｆ）】本発明の実施の形態１５におけるプログラム取得実行装置の動作の概要のフローチャートを示す図
【図１５（ａ）】本発明の実施の形態１６におけるプログラム取得実行装置の構成図
【図１５（ｂ）】本発明の実施の形態１６におけるプログラム取得実行装置の動作の概要のフローチャートを示す図
【図１６（ａ）】本発明の実施の形態１７ないし１９におけるプログラム取得実行装置の構成図
【図１６（ｂ）】本発明の実施の形態１７におけるプログラム取得実行装置の動作の概要のフローチャートを示す図
【図１６（ｃ）】本発明の実施の形態１８におけるプログラム取得実行装置の動作の概要のフローチャートを示す図
【図１６（ｄ）】本発明の実施の形態１９におけるプログラム取得実行装置の動作の概要のフローチャートを示す図
【図１７（ａ）】本発明の実施の形態２０におけるプログラム取得実行装置の構成図
【図１７（ｂ）】本発明の実施の形態２０におけるプログラム取得実行装置の動作の概要のフローチャートを示す図
【図１８（ａ）】従来のプログラム取得実行装置の構成図
【図１８（ｂ）】従来のプログラム取得実行装置のより具体的な構成を示す図
【図１９】従来のプログラム取得実行装置をホームネットワークに応用した場合の構成例を示す図
【符号の説明】
【０２５９】
１００  プログラム取得実行装置
１０１  プログラム取得部
１０２  プログラム実行部
１５０  プログラム格納装置
２０３  通信方式変換部
３０４  通信方式不整合検出部
６０５  整合通信方式決定部
１４０６  通信方式決定方法指示部
１５０７  通信方式変換方法指示部
１６０８  プログラム取得方法指示部
１７０９  プログラム格納部
【図１（ａ）】
2006164191.tif 000003
【図１（ｂ）】
2006164191.tif 000004
【図１（ｃ）】
2006164191.tif 000005
【図１（ｄ）】
2006164191.tif 000006
【図１（ｅ）】
2006164191.tif 000007
【図１（ｆ）】
2006164191.tif 000008
【図１（ｇ）】
2006164191.tif 000009
【図１（ｈ）】
2006164191.tif 000010
【図２（ａ）】
2006164191.tif 000011
【図２（ｂ）】
2006164191.tif 000012
【図２（ｃ）】
2006164191.tif 000013
【図２（ｄ）】
2006164191.tif 000014
【図２（ｅ）】
2006164191.tif 000015
【図２（ｆ）】
2006164191.tif 000016
【図２（ｇ）】
2006164191.tif 000017
【図２（ｈ）】
2006164191.tif 000018
【図２（ｉ）】
2006164191.tif 000019
【図３（ａ）】
2006164191.tif 000020
【図３（ｂ）】
2006164191.tif 000021
【図３（ｃ）】
2006164191.tif 000022
【図４】
2006164191.tif 000023
【図５】
2006164191.tif 000024
【図６】
2006164191.tif 000025
【図７】
2006164191.tif 000026
【図８】
2006164191.tif 000027
【図９（ａ）】
2006164191.tif 000028
【図９（ｂ）】
2006164191.tif 000029
【図９（ｃ）】
2006164191.tif 000030
【図１０】
2006164191.tif 000031
【図１１（ａ）】
2006164191.tif 000032
【図１１（ｂ）】
2006164191.tif 000033
【図１２】
2006164191.tif 000034
【図１３（ａ）】
2006164191.tif 000035
【図１３（ｂ）】
2006164191.tif 000036
【図１３（ｃ）】
2006164191.tif 000037
【図１３（ｄ）】
2006164191.tif 000038
【図１３（ｅ）】
2006164191.tif 000039
【図１３（ｆ）】
2006164191.tif 000040
【図１３（ｇ）】
2006164191.tif 000041
【図１３（ｈ）】
2006164191.tif 000042
【図１３（ｉ）】
2006164191.tif 000043
【図１３（ｊ）】
2006164191.tif 000044
【図１３（ｋ）】
2006164191.tif 000045
【図１４（ａ）】
2006164191.tif 000046
【図１４（ｂ）】
2006164191.tif 000047
【図１４（ｃ）】
2006164191.tif 000048
【図１４（ｄ）】
2006164191.tif 000049
【図１４（ｅ）】
2006164191.tif 000050
【図１４（ｆ）】
2006164191.tif 000051
【図１５（ａ）】
2006164191.tif 000052
【図１５（ｂ）】
2006164191.tif 000053
【図１６（ａ）】
2006164191.tif 000054
【図１６（ｂ）】
2006164191.tif 000055
【図１６（ｃ）】
2006164191.tif 000056
【図１６（ｄ）】
2006164191.tif 000057
【図１７（ａ）】
2006164191.tif 000058
【図１７（ｂ）】
2006164191.tif 000059
【図１８（ａ）】
2006164191.tif 000060
【図１８（ｂ）】
2006164191.tif 000061
【図１９】
2006164191.tif 000062
【手続補正書】
【提出日】平成17年8月29日(2005.8.29)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
ＡＰＩを使うことでコンピュータソフトウェアは、他のソフトウェアと広義の意味で通信し合うことができる。またＡＰＩは、低レベルなハードウエア寄りのソフトウェアと、高レベルな人間寄りのソフトウェアとの間の関係をより抽象化するための１つの方法である。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
ＡＰＩの目的の一つは、ウィンドウを操作したりアイコンを描画するというような共通して使える機能（関数）を提供することである。このような機能を使えば、プログラマはファイル制御関数や、ウインドウ制御関数等を、その都度コーディングしなくても済む。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
図１８（ｂ）は、この従来のプログラム取得実行装置の具体的な構成の一例を示すブロック図である。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
この従来例は、プログラム取得実行装置としてのＴＶ受像機１００ｂと、プログラム格納装置としてのＶＴＲ１５０ｂとが通信媒体としてのＩＥＥＥ１３９４ケーブル２００ｂを介して互いに接続されている状態を示す。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
しかしながら、前記従来の構成では、複数のプログラムを取得しこれらのプログラム同士が互いに他を利用しながら実行する際に、新しいＡＰＩと古いＡＰＩとにそれぞれ準拠したものが混在する場合などでは、新しいバージョンのＡＰＩに準拠したプログラムから、古いバージョンのＡＰＩに準拠したプログラムが有する機能を利用しようとしても、古いバージョンのＡＰＩしか利用することができない。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００３１
【補正方法】変更
【補正の内容】
【００３１】
従って、新しいバージョンに準拠したプログラムは、利用する相手のプログラムごとに、相手のプログラムがどのバージョンのＡＰＩを用いているかをチェックし、相手が用いているＡＰＩを用いて相手のプログラムが有する機能を利用しなければならなかった。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】変更
【補正の内容】
【００３２】
このため、複数のプログラムが協調して動作する際に、それらのバージョンの間に不整合があったとしても、できる限りプログラムを実行可能にするためには、いずれのプログラムも、他のプログラムの機能を利用する箇所では、各プログラムが用いているＡＰＩよりも古い全てのバージョンのＡＰＩごとに、そのＡＰＩを用いたコードを持っておく必要があり、プログラムの構造の複雑化とサイズの肥大化を招く、という課題を有していた。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００３３
【補正方法】変更
【補正の内容】
【００３３】
更に、逆に、古いバージョンに準拠したプログラムが新しいバージョンに準拠したプログラムを利用しようとしても、古いバージョンに準拠したプログラムは、新しいバージョンに準拠したプログラムにいかなる機能が追加されているかを知ることができず、自分よりも新しいバージョンのＡＰＩに対応したコードを用意しておくことは通常不可能なので、自分よりも新しいバージョンのＡＰＩについては、そもそも利用することができない、という課題を有していた。
【手続補正９】
【補正対象書類名】図面
【補正対象項目名】図１７（ｂ）
【補正方法】変更
【補正の内容】
【図１７（ｂ）】
2006164191.tif 000063