(57)【要約】【課題】様々な機器に対してプログラムを実行させることができる。【解決手段】本発明の代表的な形態は、プロセッサ、メモリ及びインタフェースを備える一つ以上の機器へプログラムを配付する管理計算機におけるプログラム配付方法であって、前記プログラムの実行に必要な条件を示すプログラム要求情報を記憶するステップと、前記プログラムの実行を制御するプログラム実行制御部が、当該プログラムの配付先となる機器に備わるか否かを判定するステップと、前記プログラム実行制御部を備えない機器に前記プログラムを配付する場合には、前記プログラム要求情報に基づいて、当該配付されるプログラムを改変するステップと、を含むことを特徴とする。【選択図】図１
2008009715.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ、メモリ及びインタフェースを備える一つ以上の機器へプログラムを配付する管理計算機におけるプログラム配付方法であって、
前記プログラムの実行に必要な条件を示すプログラム要求情報を記憶するステップと、
前記プログラムの実行を制御するプログラム実行制御部が、当該プログラムの配付先となる機器に備わるか否かを判定するステップと、
前記プログラム実行制御部を備えない機器に前記プログラムを配付する場合には、前記プログラム要求情報に基づいて、当該配付されるプログラムを改変するステップと、を含むことを特徴とするプログラム配付方法。
【請求項２】
更に、前記プログラム実行制御部を備える機器に前記プログラムを配付する場合には、前記プログラム要求情報を前記プログラムと併せて配付するステップを含むことを特徴とする請求項１に記載のプログラム配付方法。
【請求項３】
前記プログラムを改変するステップは、同時に実行されるプログラムの組み合わせを制御するコードを、前記配付されるプログラムに追加することを特徴とする請求項１に記載のプログラム配付方法。
【請求項４】
前記プログラムを改変するステップは、前記機器のリソースに応じてプログラムの実行を制御するコードを、前記配付されるプログラムに追加することを特徴とする請求項１に記載のプログラム配付方法。
【請求項５】
前記プログラムを改変するステップは、所定の条件を満たすとプログラムの実行を停止するコードを、前記配付されるプログラムに追加することを特徴とする請求項１に記載のプログラム配付方法。
【請求項６】
プロセッサ、メモリ及びインタフェースを備える一つ以上の機器と、前記機器へプログラムを配付する管理計算機と、を備える計算機システムにおいて、
前記管理計算機は、
前記プログラムの実行に必要な条件を示すプログラム要求情報を記憶し、
前記プログラムの実行を制御するプログラム実行制御部が、当該プログラムの配付先となる機器に備わるか否かを判定し、
前記プログラム実行制御部を備えない機器に前記プログラムを配付する場合には、前記プログラム要求情報に基づいて、当該配付されるプログラムを改変することを特徴とする計算機システム。
【請求項７】
前記管理計算機は、前記プログラム実行制御部を備える機器に前記プログラムを配付する場合には、前記プログラム要求情報を前記プログラムと併せて配付することを特徴とする請求項６に記載の計算機システム。
【請求項８】
前記管理計算機は、同時に実行されるプログラムの組み合わせを制御するコードを、前記配付されるプログラムに追加することによって、当該配付されるプログラムを改変することを特徴とする請求項６に記載の計算機システム。
【請求項９】
前記管理計算機は、前記機器のリソースに応じてプログラムの実行を制御するコードを、前記配付されるプログラムに追加することによって、当該配付されるプログラムを改変することを特徴とする請求項６に記載の計算機システム。
【請求項１０】
前記管理計算機は、所定の条件を満たすとプログラムの実行を停止するコードを、前記配付されるプログラムに追加することによって、当該配付されるプログラムを改変することを特徴とする請求項６に記載の計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一つ以上の機器及び管理計算機を備える計算機システムに関し、特に、機器へプログラムを配付する技術に関する。
【背景技術】
【０００２】
近年、携帯電話及び情報家電などを含む組込機器の高機能化が進んでいる。そのため、組込機器では、パソコンと同様に、プログラムの追加及び更新が行われる。プログラムの追加及び更新の管理は、ユーザの負担が大きい。そこで、追加又は更新されるプログラムを一括管理するシステムが知られている。具体的には、当該システムに備わる管理サーバが、ネットワークを介して接続されている多数の機器に対して、プログラムの追加及び更新を行う。
【０００３】
一方、組込機器は、パソコンと同様に、複数のプログラムを同時に実行する。このとき、同時に実行されるプログラム間で、組込機器のリソースの競合が生じる。組込機器のリソースは、例えば、メモリ、ＣＰＵ又はネットワーク接続リソース等である。そこで、この問題を解決するための技術として、リソース管理機能が特許文献１に開示されている。リソース管理機能は、複数のプログラムによる機器のリソースの競合を調停する。
【０００４】
また、組込機器は種類が多い。更に、組込機器の構成（メモリ量及び周辺機器の有無など）は、それぞれ異なる。そのため、組込機器へ更新又は追加されるプログラムの管理は、負担が大きい。
【０００５】
一つのサービスが様々な機器で利用されるには、機器ごとにカスタマイズされた多数のプログラムが必要となる。又は、一つのプログラムを様々な機器に対応するように設定しておく必要がある。いずれの場合であっても、プログラムの開発コスト及び管理コストが増加する。
【０００６】
特許文献２には、プログラムを配付する際に配付先となる機器の環境に応じてプログラムをカスタマイズするシステムが開示されている。配付先の機器でプログラムが実行されるには、プログラムの設定項目が適切な値に設定される必要がある。設定項目は、サーバのアドレス、ユーザＩＤ及びデータベースの指定等を含む。特許文献２の技術では、配付先となる機器ごとに適切な値が管理される。そして、プログラム配付時に、管理されている値が、所定の設定項目に自動的に設定される。これによって、カスタマイズ作業が簡便化される。
【０００７】
一方、特定のプログラムが特定の機器で実行された場合にのみ障害が発生することがある。この場合、プログラムの提供者は、原因究明及びプログラム修正を行う。更に、プログラムの提供者は、プログラムの修正を完了するまでは、障害が発生した機器のユーザに対し、当該特定のプログラムの不使用を指示する。
【特許文献１】特開２００６−３１２０３号公報
【特許文献２】特開２００２−４９４８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、前述した従来技術には、問題がある。
【０００９】
特許文献１に開示されているリソース管理機能を実現するには、機器は、プログラム間の競合を調停する機能を持つ高度なプログラム実行制御手段を備える必要がある。そのため、機器の製造コストが増大する。よって、すべての機器に対してリソース管理機能を適用することは困難である。
【００１０】
また、特許文献２に開示されている技術では、プログラムのカスタマイズを用意された設定項目の範囲内でしか行えない。すなわち、プログラムが様々な機器で実行されるには、様々な機器に対応するプログラム及び設定項目が予め準備されている必要がある。したがって、プログラムの開発コストの削減にはならない。
【００１１】
また、特許文献１及び特許文献２には、障害発生時におけるプログラムの利用を制限する方法については開示されていない。プログラムの提供者は、文書等によって、機器のユーザへプログラムの不使用を指示するしかなかった。そのため、プログラムの不使用を徹底させることは困難であった。
【００１２】
本発明は、前述した問題点に鑑みてなされたものであって、様々な機器に対してプログラムを実行させる管理計算機を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の代表的な形態は、プロセッサ、メモリ及びインタフェースを備える一つ以上の機器へプログラムを配付する管理計算機におけるプログラム配付方法であって、前記プログラムの実行に必要な条件を示すプログラム要求情報を記憶するステップと、前記プログラムの実行を制御するプログラム実行制御部が、当該プログラムの配付先となる機器に備わるか否かを判定するステップと、前記プログラム実行制御部を備えない機器に前記プログラムを配付する場合には、前記プログラム要求情報に基づいて、当該配付されるプログラムを改変するステップと、を含むことを特徴とする。
【発明の効果】
【００１４】
本発明の代表的な形態によれば、様々な機器に対してプログラムを実行させることができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を図面を参照して説明する。
【００１６】
図１は、本発明の実施の形態の計算機システムの構成のブロック図である。
【００１７】
計算機システムは、管理サーバ１、機器２、機器３及びネットワーク４を備える。機器２及び機器３は、それぞれ一つずつ図示されているが、当該計算機システムに複数備わっていてもよい。
【００１８】
ネットワーク４は、管理サーバ１、機器２及び機器３を相互に接続する。
【００１９】
管理サーバ１は、機器２及び機器３にプログラムを配付する計算機である。具体的には、管理サーバ１は、ＣＰＵ１１、通信装置１２、一次記憶装置１３及び二次記憶装置１４を備える。
【００２０】
通信装置１２は、ネットワーク４を介して外部の装置と接続する。具体的には、通信装置１２は、ネットワーク４を介して、機器２及び機器３と接続する。
【００２１】
二次記憶装置１４は、各種情報を記憶する。具体的には、二次記憶装置１４は、機器管理情報１４１、プログラム１４２、プログラム要求情報１４３及び要求確認コード１４４を記憶する。
【００２２】
機器管理情報１４１は、管理サーバ１と接続されている機器２及び３の構成に関する情報を示す。なお、機器管理情報１４１については、図２で詳細を説明する。
【００２３】
プログラム１４２は、管理サーバ１と接続されている機器２及び３に配付されるものである。なお、プログラム１４２は、機器３に配付される場合、改変される。
【００２４】
プログラム要求情報１４３は、プログラム１４２の実行に必要な条件を示す。なお、プログラム要求情報１４３については、図３で詳細を説明する。
【００２５】
要求確認コード１４４は、プログラム１４２の実行条件を確認するためのコードである。なお、要求確認コード１４４については、図４Ａから図４Ｆで詳細を説明する。
【００２６】
一次記憶装置１３は、ＣＰＵ１１によって実行されるプログラム及びＣＰＵ１１によって必要とされる情報等を記憶する。具体的には、一次記憶装置１３は、ＯＳ１３１、機器構成管理部１３２、プログラム配付管理部１３３及びコード改変部１３４を記憶する。
【００２７】
ＯＳ１３１は、管理サーバ１の処理の全体を制御する。機器構成管理部１３２は、当該管理サーバ１と接続されている機器２及び３の構成に関する情報を受信する。そして、機器構成管理部１３２は、受信した情報を、機器管理情報１４１に格納する。
【００２８】
コード改変部１３４は、プログラム要求情報１４３を参照して、プログラム１４２を改変する。これによって、コード改変部１３４は、改変済プログラム３３３を生成する。
【００２９】
プログラム配付管理部１３３は、機器２及び機器３へのプログラム１４２の配付を管理する。具体的には、プログラム配付管理部１３３は、プログラム１４２、プログラム要求情報１４３及び要求確認コード１４４を機器２へ配付する。また、プログラム配付管理部１３３は、改変済プログラム３３３及び要求確認コード１４４を機器３へ配付する。
【００３０】
ＣＰＵ１１は、一次記憶装置１３に記憶されるプログラムを実行することによって、各種処理を行う。具体的には、ＣＰＵ１１は、一時記憶装置１３に記憶されるプログラムを実行することによって、機器構成管理部１３２、プログラム配付管理部１３３及びコード改変部１３４を実現する。
【００３１】
機器２は、ＣＰＵ２１、通信装置２２、記憶装置２３及びＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）装置２４を備える。通信装置２２は、ネットワーク４を介して管理サーバ１と接続する。
【００３２】
ＣＰＵ２１は、記憶装置２３に記憶されるプログラムを実行することによって、各種処理を行う。記憶装置２３は、ＣＰＵ２１によって実行されるプログラム及びＣＰＵ２１によって必要とされる情報等を記憶する。具体的には、記憶装置２３は、ＯＳ２３１、機器管理部２３２、プログラム実行制御部２３６、プログラム１４２、プログラム要求情報１４３及び要求確認コード１４４を記憶する。
【００３３】
ＯＳ２３１は、機器２の処理の全体を制御する。
【００３４】
機器管理部２３２は、機器２の構成に関する情報を収集する。そして、機器管理部２３２は、収集した情報を、管理サーバ１の機器構成管理部１３２に送信する。また、機器管理部２３２は、プログラム１４２、プログラム要求情報１４３及び要求確認コード１４４を管理サーバ１から受信する。そして、機器管理部２３２は、受信したプログラム１４２、プログラム要求情報１４３及び要求確認コード１４４を記憶装置２３に格納する。
【００３５】
プログラム実行制御部２３６は、プログラム要求情報１４３を参照して、プログラム１４２の実行を制御する。
【００３６】
プログラム１４２、プログラム要求情報１４３及び要求確認コード１４４は、管理サーバ１によって配付されたものである。よって、プログラム１４２、プログラム要求情報１４３及び要求確認コード１４４は、管理サーバ１に備わる二次記憶装置１４に記憶されているものと同一である。
【００３７】
ＧＰＳ装置２４は、当該機器２の位置情報を取得する。但し、機器２は、ＧＰＳ装置２４を備えても備えなくてもよい。また、機器２は、ＧＰＳ装置２４以外の周辺機器を備えてもよい。機器２に備わる周辺機器は、例えば、カードリーダ装置、表示装置、入力装置、ＣＤドライブ又はＤＶＤドライブ等である。
【００３８】
機器３は、ＣＰＵ３１、通信装置３２及び記憶装置３３を備える。通信装置３２は、ネットワーク４を介して管理サーバ１と接続する。
【００３９】
ＣＰＵ３１は、記憶装置３３に記憶されるプログラムを実行することによって、各種処理を行う。記憶装置３３は、ＣＰＵ３１によって実行されるプログラム及びＣＰＵ３１によって必要とされる情報等を記憶する。具体的には、記憶装置３３は、ＯＳ３３１、機器管理部３３２、改変済プログラム３３３及び要求確認コード１４４を記憶する。
【００４０】
ＯＳ３３１は、機器３の処理の全体を制御する。
【００４１】
機器管理部３３２は、機器３の構成に関する情報を収集する。そして、機器管理部３３２は、収集した情報を、管理サーバ１の機器構成管理部１３２に送信する。また、機器管理部３３２は、改変済プログラム３３３及び要求確認コード１４４を管理サーバ１から受信する。そして、機器管理部３３２は、受信した改変済プログラム３３３及び要求確認コード１４４を記憶装置３３に格納する。
【００４２】
改変済プログラム３３３は、管理サーバ１によって改変されたプログラム１４２である。
【００４３】
要求確認コード１４４は、管理サーバ１によって配付されたものである。よって、要求確認コード１４４は、管理サーバ１に備わる二次記憶装置１４に記憶されているものと同一である。
【００４４】
なお、機器３は、周辺機器を備えてもよい。機器３に備わる周辺機器は、例えば、ＧＰＳ装置、カードリーダ装置、表示装置、入力装置、ＣＤドライブ又はＤＶＤドライブ等である。
【００４５】
機器２及び３は、ＣＰＵを備え、プログラムを実行するものであれば、何でもよい。例えば、機器２及び３は、携帯電話、携帯情報端末（ＰＤＡ：Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、カーナビ、ＨＤＤレコーダ又はデジタルテレビ等である。
【００４６】
図２は、本発明の実施の形態の管理サーバ１に記憶される機器管理情報１４１の構成図である。
【００４７】
機器管理情報１４１は、機器ＩＤ１４１１、プログラム実行制御部の有無１４１２、ＣＰＵ性能１４１３、メモリ量１４１４、通信速度１４１５及び周辺機器１４１６を含む。
【００４８】
機器ＩＤ１４１１は、管理サーバ１に接続される機器２又は３の一意な識別子である。プログラム実行制御部の有無１４１２は、当該レコードの機器ＩＤ１４１１によって識別される機器２又は３がプログラム実行制御部２３６を備えるか否かを示す。
【００４９】
ＣＰＵ性能１４１３は、当該レコードの機器ＩＤ１４１１によって識別される機器２又は３に備わるＣＰＵ２１又は３１の性能量である。メモリ量１４１４は、当該レコードの機器ＩＤ１４１１によって識別される機器２又は３に備わる記憶装置２３又は３３の記憶容量である。通信速度１４１５は、当該レコードの機器ＩＤ１４１１によって識別される機器２又は３に備わる通信装置２２又は３２の単位時間当たりのデータ転送量である。
【００５０】
周辺機器１４１６は、当該レコードの機器ＩＤ１４１１によって識別される機器２又は３に備わる周辺機器の種類を示す。なお、機器２又は３が周辺機器を備えない場合、周辺機器１４１６には「なし」が格納される。
【００５１】
次に、機器管理情報１４１の生成処理について説明する。
【００５２】
管理サーバ１は、接続されている機器２及び３から、当該機器２及び３の構成に関する情報を取得する。機器２又は３の構成に関する情報は、プログラム実行制御部２３６の有無、ＣＰＵ２１又は３１の性能量、記憶装置２３又は３３の記憶容量、通信装置２２又は３２の単位時間当たりのデータ転送量、及び当該機器２又は３に備わる周辺機器の種類を含む。
【００５３】
次に、管理サーバ１は、取得した機器２及び３の構成に関する情報に基づいて、機器管理情報１４１を生成する。
【００５４】
具体的には、管理サーバ１は、構成に関する情報の取得元である機器２又は３の識別子を、機器管理情報１４１の機器ＩＤ１４１１に格納する。次に、管理サーバ１は、取得したプログラム実行制御部２３６の有無を、機器管理情報１４１のプログラム実行制御部の有無１４１２に格納する。次に、管理サーバ１は、取得したＣＰＵ２１又は３１の性能量を、機器管理情報１４１のＣＰＵ性能１４１３に格納する。
【００５５】
次に、管理サーバ１は、取得した記憶装置２３又は３３の記憶容量を、機器管理情報１４１のメモリ量１４１４に格納する。次に、管理サーバ１は、取得した通信装置２２又は３２の単位時間当たりのデータ転送量を、機器管理情報１４１の通信速度１４１５に格納する。次に、管理サーバ１は、取得した周辺機器の種類を、機器管理情報１４１の周辺機器１４１６に格納する。
【００５６】
図３は、本発明の実施の形態の管理サーバ１に記憶されるプログラム要求情報１４３の構成図である。
【００５７】
プログラム要求情報１４３は、プログラム１４２ごとに存在する。そのため、管理サーバ１は、プログラム１４２と同数のプログラム要求情報１４３を記憶する。本説明図は、プログラムＡ１４２に対応するプログラム要求情報１４３である。
【００５８】
プログラム要求情報１４３は、項番１４３１、場合１４３２、種類１４３３、内容１４３４及び要求確認コードＩＤ１４３５を記憶する。
【００５９】
項番１４３１は、当該プログラム要求情報１４３に含まれるレコードの一意な識別子である。場合１４３２は、当該レコードに該当する時点を示す。種類１４３３は、当該レコードの場合１４３２に対応する時点において、当該プログラム１４２を実行する機器２又は３に要求される条件の種類を示す。
【００６０】
内容１４３４は、当該レコードの場合１４３２に対応する時点において、当該プログラム１４２を実行する機器２又は３に要求される条件値である。なお、内容１４３４は、当該レコードの要求確認コードＩＤ１４３５によって識別される要求確認コード１４４の変数ｘに代入される。
【００６１】
要求確認コードＩＤ１４３５は、当該レコードの場合１４３２に対応する時点において、機器２又は３によって実行される要求確認コードの一意な識別子である。
【００６２】
項番１４３１の「１」によって識別されるレコードによると、機器２又３は、プログラムＡ１４２の起動時に、プログラムＢ１４２を実行している必要がある。また、項番１４３１の「２」によって識別されるレコードによると、機器２又３は、プログラムＡ１４２の起動時に、プログラムＣ１４２を実行していてはならない。
【００６３】
また、項番１４３１の「３」によって識別されるレコードによると、プログラムＡ１４２の起動時に、「１６ＭＢ」以上の空きメモリ量が必要とされる。空きメモリ量は、機器２又は３に備わる記憶装置２３又は３３の記憶容量のうち、プログラム１４２の実行のために利用可能な記憶容量である。すなわち、空きメモリ量は、機器２又は３に備わる記憶装置２３又は３３の記憶容量から、現在利用されている記憶容量及び作業用に確保されている記憶容量を引いた値となる。
【００６４】
また、項番１４３１の「４」によって識別されるレコードによると、機能Ｘの呼出時に、「２４ＭＢ」以上の空きメモリ量が必要とされる。また、項番１４３１の「５」によって識別されるレコードによると、機器２又３は、機能Ｘの呼出時に、ＧＰＳ装置２４を備える必要がある。
【００６５】
また、項番１４３１の「６」によって識別されるレコードによると、機能Ｙの呼出時に、「５Ｍｂｐｓ」以上の利用可能な通信速度が必要とされる。利用可能な通信速度は、機器２又は３に備わる通信装置２２又は３２の単位時間当たりのデータ転送量のうち、プログラム１４２の実行のために利用可能なデータ転送量である。すなわち、利用可能な通信速度は、通信装置２２又は３２の通信速度の最大値から、実行中のプログラムによって利用されている通信速度を引いた値となる。
【００６６】
また、項番１４３１の「７」によって識別されるレコードによると、機能Ｙの呼出時に、「１０ＭＩＰＳ」以上の利用可能なＣＰＵ性能が必要とされる。利用可能なＣＰＵ性能は、機器２又は３に備わるＣＰＵ２１又は３１の性能量のうち、プログラム１４２の実行のために利用可能な性能量である。すなわち、利用可能なＣＰＵ性能は、ＣＰＵ２１又は３１の性能量の最大値から、実行中のプログラムによって利用されている性能量を引いた値となる。
【００６７】
また、項番１４３１の「８」によって識別されるレコードによると、機能ＩＤの「３」によって識別される機器３は、機能Ｚの呼び出しが禁止されている。
【００６８】
図４Ａは、本発明の実施の形態の管理サーバ１に記憶される要求確認コード１４４Ａの説明図である。
【００６９】
図４Ａの要求確認コード１４４Ａは、要求確認コードＩＤの「１４４Ａ」によって識別される。要求確認コード１４４Ａは、機器２又は３がプログラムｘ１４２を実行中であるか否かを判定する。機器２又は３がプログラムｘ１４２を実行中の場合、要求確認コード１４４Ａは、「ｔｒｕｅ」を返す。一方、機器２又は３がプログラムｘ１４２を実行中でない場合、要求確認コード１４４Ａは、「ｆａｌｓｅ」を返す。
【００７０】
図４Ｂは、本発明の実施の形態の管理サーバ１に記憶される要求確認コード１４４Ｂの説明図である。
【００７１】
図４Ｂの要求確認コード１４４Ｂは、要求確認コードＩＤの「１４４Ｂ」によって識別される。要求確認コード１４４Ｂは、機器２又は３の空きメモリが「ｘ」以上であるか否かを判定する。空きメモリが「ｘ」以上の場合、要求確認コード１４４Ｂは、「ｔｒｕｅ」を返す。一方、空きメモリが「ｘ」より小さい場合、要求確認コード１４４Ｂは、「ｆａｌｓｅ」を返す。
【００７２】
図４Ｃは、本発明の実施の形態の管理サーバ１に記憶される要求確認コード１４４Ｃの説明図である。
【００７３】
図４Ｃの要求確認コード１４４Ｃは、要求確認コードＩＤの「１４４Ｃ」によって識別される。要求確認コード１４４Ｃは、機器２又は３が周辺機器ｘを備えるか否かを判定する。機器２又は３が周辺機器ｘを備える場合、要求確認コード１４４Ｃは、「ｔｒｕｅ」を返す。一方、機器２又は３が周辺機器ｘを備えない場合、要求確認コード１４４Ｃは、「ｆａｌｓｅ」を返す。
【００７４】
図４Ｄは、本発明の実施の形態の管理サーバ１に記憶される要求確認コード１４４Ｄの説明図である。
【００７５】
図４Ｄの要求確認コード１４４Ｄは、要求確認コードＩＤの「１４４Ｄ」によって識別される。要求確認コード１４４Ｄは、機器２又は３の利用可能な通信速度が「ｘ」以上であるか否かを判定する。利用可能な通信速度が「ｘ」以上の場合、要求確認コード１４４Ｄは、「ｔｒｕｅ」を返す。一方、利用可能な通信速度が「ｘ」より小さい場合、要求確認コード１４４Ｄは、「ｆａｌｓｅ」を返す。
【００７６】
図４Ｅは、本発明の実施の形態の管理サーバ１に記憶される要求確認コード１４４Ｅの説明図である。
【００７７】
図４Ｅの要求確認コード１４４Ｅは、要求確認コードＩＤの「１４４Ｅ」によって識別される。要求確認コード１４４Ｅは、機器２又は３の利用可能なＣＰＵ性能が「ｘ」以上であるか否かを判定する。利用可能なＣＰＵ性能が「ｘ」以上の場合、要求確認コード１４４Ｅは、「ｔｒｕｅ」を返す。一方、利用可能なＣＰＵ性能が「ｘ」より小さい場合、要求確認コード１４４Ｅは、「ｆａｌｓｅ」を返す。
【００７８】
図４Ｆは、本発明の実施の形態の管理サーバ１に記憶される要求確認コード１４４Ｆの説明図である。
【００７９】
図４Ｆの要求確認コード１４４Ｆは、要求確認コードＩＤの「１４４Ｆ」によって識別される。要求確認コード１４４Ｆは、機器２又は３に付与されている機器ＩＤが「ｘ」であるか否かを判定する。機器ＩＤが「ｘ」の場合、要求確認コード１４４Ｆは、「ｔｒｕｅ」を返す。一方、機器ＩＤが「ｘ」でない場合、要求確認コード１４４Ｆは、「ｆａｌｓｅ」を返す。
【００８０】
図５は、本発明の実施の形態の管理サーバ１によって配付されるプログラムＡ１４２の説明図である。
【００８１】
プログラムＡ１４２は、起動処理、機能Ｘの処理、機能Ｙの処理及び機能Ｚの処理を含む。
【００８２】
図６は、本発明の実施の形態の管理サーバ１によって配付される改変済プログラムＡ３３３の説明図である。
【００８３】
改変済プログラムＡ３３３は、プログラムＡ１４２が管理サーバ１によって改変されたものである。よって、改変済プログラムＡ３３３は、プログラムＡ１４２と同様に、起動処理、機能Ｘの処理、機能Ｙの処理及び機能Ｚの処理を含む。
【００８４】
また、改変済プログラムＡ３３３は、位置３３３１〜３３３４を含む。
【００８５】
それぞれの位置３３３１〜３３３４には、プログラムＡ１４２に対応するプログラム要求情報１４３に基づいてコードが挿入される。なお、コードの挿入については、図９で詳細を説明する。
【００８６】
位置３３３１は、プログラム要求情報１４３の場合１４３２に「起動時」が格納されるレコードに対応する。そのため、位置３３３１は、プログラムＡ１４２の起動時において最初に呼び出される関数であるｍａｉｎの先頭部分となる。「ｒｕｎｎｉｎｇ（Ｂ）の戻り値がｆａｌｓｅ」、「ｒｕｎｎｉｎｇ（Ｃ）の戻り値がｔｒｕｅ」及び「ｆｒｅｅ＿ｍｅｍｏｒｙ（１６）の戻り値がｆａｌｓｅ」の条件のうち少なくとも一つが充足されると、位置３３３１に挿入されているコードは、エラーメッセージを表示し、プログラムＡ１４２を終了する。
【００８７】
位置３３３２は、プログラム要求情報１４３の場合１４３２に「機能Ｘ呼出時」が格納されるレコードに対応する。そのため、位置３３３２は、機能Ｘの処理を行う関数の先頭部分となる。「ｆｒｅｅ＿ｍｅｍｏｒｙ（２４）の戻り値がｆａｌｓｅ」及び「ｃｏｎｎｅｃｔｅｄ（ＧＰＳ）の戻り値がｆａｌｓｅ」の条件のうち少なくとも一つが充足されると、位置３３３２に挿入されているコードは、エラーメッセージを表示し、機能Ｘの処理を終了する。
【００８８】
位置３３３３は、プログラム要求情報１４３の場合１４３２に「機能Ｙ呼出時」が格納されるレコードに対応する。そのため、位置３３３３は、機能Ｙの処理を行う関数の先頭部分となる。「ｎｅｔｗｏｒｋ＿ｓｐｅｅｄ（５）の戻り値がｆａｌｓｅ」「ｃｐｕ＿ｐｏｗｅｒ（１０）の戻り値がｆａｌｓｅ」の条件のうち少なくとも一つが充足されると、位置３３３３に挿入されているコードは、エラーメッセージを表示し、機能Ｙの処理を終了する。
【００８９】
位置３３３４は、プログラム要求情報１４３の場合１４３２に「機能Ｚ呼出時」が格納されるレコードに対応する。そのため、位置３３３４は、機能Ｚの処理を行う関数の先頭部分となる。「ｄｅｖｉｃｅ＿ｉｄ（３）の戻り値がｔｒｕｅ」の条件が充足されると、位置３３３４に挿入されているコードは、エラーメッセージを表示し、機能Ｚの処理を終了する。
【００９０】
以下、本発明の実施の形態の計算機システムの処理を説明する。
【００９１】
図７は、本発明の実施の形態の管理サーバ１によって実行されるプログラム配付処理のフローチャートである。
【００９２】
ここでは、管理サーバ１が、プログラムＡ１４２を機器２又は３に配付する場合を説明する。
【００９３】
まず、管理サーバ１は、配付先となる機器２又は３がプログラムＡ１４２を起動可能（実行可能）であるか否かを判定する（Ｓ１２）。
【００９４】
具体的には、管理サーバ１は、プログラム要求情報１４３の場合１４３２に「起動時」が格納されているすべてのレコードを、プログラムＡ１４２に対応するプログラム要求情報１４３から選択する。ここでは、管理サーバ１は、項番１４３１の「１」によって識別されるレコード、項番１４３１の「２」によって識別されるレコード及び項番１４３１の「３」によって識別されるレコードを選択する。
【００９５】
次に、管理サーバ１は、選択したレコードから、種類１４３３、内容１４３４及び要求確認コードＩＤ１４３５を抽出する。次に、管理サーバ１は、抽出した種類１４３３、内容１４３４及び要求確認コードＩＤ１４３５に基づいて、配付先となる機器２又は３がプログラムＡ１４２を起動可能であるか否かを判定する。
【００９６】
例えば、管理サーバ１は、配付先となる機器２又は３がプログラムＢ１４２を実行中であるか否かを判定する。配付先となる機器２又は３がプログラムＢ１４２を実行中でない場合、管理サーバ１は、配付先となる機器２又は３がプログラムＡ１４２を起動できないと判定する。
【００９７】
一方、配付先となる機器２又は３がプログラムＢ１４２を実行中の場合、管理サーバ１は、配付先となる機器２又は３がプログラムＣ１４２を実行中であるか否かを判定する。配付先となる機器２又は３がプログラムＣ１４２を実行中の場合、管理サーバ１は、配付先となる機器２又は３がプログラムＡ１４２を起動できないと判定する。
【００９８】
一方、配付先となる機器２又は３がプログラムＢ１４２を実行中の場合、管理サーバ１は、配付先となる機器２又は３の空きメモリ量が「１６ＭＢ」以上であるか否かを判定する。配付先となる機器２又は３の空きメモリ量が「１６ＭＢ」より小さい場合、管理サーバ１は、配付先となる機器２又は３がプログラムＡ１４２を起動できないと判定する。一方、配付先となる機器２又は３の空きメモリ量が「１６ＭＢ」以上の場合、管理サーバ１は、配付先となる機器２又は３がプログラムＡ１４２を起動可能であると判定する。
【００９９】
配付先となる機器２又は３がプログラムＡ１４２を起動できない場合、管理サーバ１は、プログラム配付処理を終了する。
【０１００】
一方、配付先となる機器２又は３がプログラムＡ１４２を起動できる場合、管理サーバ１は、配付先となる機器２又は３がプログラム実行制御部２３６を備えるか否かを判定する（Ｓ１３）。
【０１０１】
具体的には、管理サーバ１は、配付先となる機器２又は３の識別子と機器管理情報１４１の機器ＩＤ１４１１とが一致するレコードを、機器管理情報１４１から選択する。次に、管理サーバ１は、選択したレコードから、プログラム実行制御部の有無１４１２を抽出する。
【０１０２】
抽出したプログラム実行制御部の有無１４１２に「有」が格納されていると、管理サーバ１は、配付先となる機器２又は３がプログラム実行制御部２３６を備えると判定する。一方、抽出したプログラム実行制御部の有無１４１２に「無」が格納されていると、管理サーバ１は、配付先となる機器２又は３がプログラム実行制御部２３６を備えていないと判定する。
【０１０３】
なお、本実施の形態では、機器２は、プログラム実行制御部２３６を備える。一方、機器３は、プログラム実行制御部２３６を備えない。
【０１０４】
配付先となる機器２がプログラム実行制御部２３６を備える場合（配付先が機器２の場合）、管理サーバ１は、プログラムＡ１４２及びプログラムＡ１４２に対応するプログラム要求情報１４３を、機器２に配付する（Ｓ１４）。
【０１０５】
このとき、管理サーバ１は、プログラムＡ１４２に対応する要求確認コード１４４を併せて配付してもよい。具体的には、管理サーバ１は、プログラムＡ１４２に対応するプログラム要求情報１４３のすべてのレコードから、要求確認コードＩＤ１４３５を抽出する。次に、管理サーバ１は、抽出した要求確認コードＩＤ１４３５によって識別される要求確認コード１４４を併せて配付する。
【０１０６】
そして、管理サーバ１は、プログラム配付処理を終了する。
【０１０７】
一方、配付先となる機器３がプログラム実行制御部２３６を備えない場合（配付先が機器３の場合）、管理サーバ１は、プログラムＡ１４２を改変することによって、改変済プログラムＡ３３３を作成する（Ｓ１５）。プログラムＡ１４２の改変処理については、図９で詳細を説明する。
【０１０８】
次に、管理サーバ１は、作成した改変済プログラムＡ３３３及びプログラムＡ１４２に対応する要求確認コード１４４を、機器３に配付する。そして、管理サーバ１は、プログラム配付処理を終了する。
【０１０９】
図８は、本発明の実施の形態の機器２によって実行されるプログラム実行処理のフローチャートである。
【０１１０】
ここでは、機器２が、プログラムＡ１４２を実行する場合を説明する。
【０１１１】
機器２のＯＳ２３１は、プログラムＡ１４２の実行要求をユーザから受けると、当該プログラム実行処理を開始する。
【０１１２】
まず、ＯＳ２３１は、プログラムＡ１４２を起動すると共に、当該プログラムＡ１４２に対応する情報をプログラム実行制御部２３６へ与える。なお、プログラムＡ１４２に対応する情報は、プログラム要求情報１４３及び要求確認コード１４４を含む。
【０１１３】
すると、プログラム実行制御部２３６は、プログラムＡ１４２の実行状況の監視を開始する（Ｓ２１）。次に、プログラム実行制御部２３６は、プログラムＡ１４２の実行状況がプログラム要求情報１４３の場合１４３２のいずれかに該当するか否かを判定する（Ｓ２２）。
【０１１４】
プログラムＡ１４２の実行状況が場合１４３２のいずれにも該当しない場合、プログラム実行制御部２３６は、プログラムＡ１４２の処理をそのまま継続させる（Ｓ２３）。次に、プログラム実行制御部２３６は、プログラムＡ１４２の処理が終了したか否かを判定する（Ｓ２４）。
【０１１５】
プログラムＡ１４２の処理が終了していない場合、プログラム実行制御部２３６は、ステップＳ２２に戻り、当該プログラム実行処理を繰り返す。
【０１１６】
一方、プログラムＡ１４２の処理が終了していると、プログラム実行制御部２３６は、当該プログラム実行処理を終了する。
【０１１７】
一方、プログラムＡ１４２の実行状況が場合１４３２のいずれかに該当する場合、プログラム実行制御部２３６は、プログラムＡ１４２の実行状況とプログラム要求情報１４３の場合１４３２とが一致するすべてのレコードを、プログラム要求情報１４３から選択する。
【０１１８】
例えば、プログラムＡ１４２の実行状況が起動時であれば、プログラム実行制御部２３６は、項番１４３１の「１」によって識別されるレコード、項番１４３１の「２」によって識別されるレコード及び項番１４３１の「３」によって識別されるレコードを、プログラム要求情報１４３から選択する。
【０１１９】
次に、プログラム実行制御部２３６は、選択したレコードから、種類１４３３、内容１４３４及び要求確認コードＩＤ１４３５を抽出する。次に、プログラム実行制御部２３６は、抽出した種類１４３３が、依存プログラム、競合プログラム、メモリ量、周辺機器、通信速度、ＣＰＵ性能又は禁止のいずれであるかを判定する。
【０１２０】
抽出された種類１４３３が依存プログラムであると（Ｓ２５）、プログラム実行制御部２３６は、抽出された内容１４３４に対応するプログラムＢ１４２が実行中であるか否かを判定する。
【０１２１】
具体的には、プログラム実行制御部２３６は、抽出した要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ａを起動する。すると、要求確認コード１４４Ａは、プログラム実行制御部２３６によって抽出された内容１４３４の「Ｂ」を、変数ｘに代入する。そして、要求確認コード１４４Ａは、当該機器２がプログラムＢ１４２を実行中であるか否かを判定する。機器２がプログラムＢ１４２を実行中の場合、要求確認コード１４４Ａは、「ｔｒｕｅ」をプログラム実行制御部２３６に返す。一方、機器２がプログラムＢ１４２を実行中でない場合、要求確認コード１４４Ａは、「ｆａｌｓｅ」をプログラム実行制御部２３６に返す。
【０１２２】
プログラム実行制御部２３６は、「ｔｒｕｅ」を受けると、抽出された内容１４３４に対応するプログラムＢ１４２が実行中であると判定する。よって、プログラム実行制御部２３６は、プログラムＡ１４２の処理をそのまま継続させる。そして、プログラム実行制御部２３６は、ステップＳ２４に進む。
【０１２３】
一方、プログラム実行制御部２３６は、「ｆａｌｓｅ」を受けると、抽出された内容１４３４に対応するプログラムＢ１４２が実行中でないと判定する。よって、プログラム実行制御部２３６は、プログラムＡ１４２の処理を中断させる。そして、プログラム実行制御部２３６は、ステップＳ２４に進む。
【０１２４】
一方、抽出された種類１４３３が競合プログラムであると（Ｓ２６）、プログラム実行制御部２３６は、抽出された内容１４３４に対応するプログラムＣ１４２が実行中であるか否かを判定する。
【０１２５】
具体的には、プログラム実行制御部２３６は、抽出した要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ａを起動する。すると、要求確認コード１４４Ａは、プログラム実行制御部２３６によって抽出された内容１４３４の「Ｃ」を、変数ｘに代入する。そして、要求確認コード１４４Ａは、当該機器２がプログラムＣ１４２を実行中であるか否かを判定する。機器２がプログラムＣ１４２を実行中の場合、要求確認コード１４４Ａは、「ｔｒｕｅ」をプログラム実行制御部２３６に返す。一方、機器２がプログラムＣ１４２を実行中でない場合、要求確認コード１４４Ａは、「ｆａｌｓｅ」をプログラム実行制御部２３６に返す。
【０１２６】
プログラム実行制御部２３６は、「ｆａｌｓｅ」を受けると、抽出された内容１４３４に対応するプログラムＣ１４２が実行中でないと判定する。よって、プログラム実行制御部２３６は、プログラムＡ１４２の処理をそのまま継続させる。そして、プログラム実行制御部２３６は、ステップＳ２４に進む。
【０１２７】
一方、プログラム実行制御部２３６は、「ｔｒｕｅ」を受けると、抽出された内容１４３４に対応するプログラムＣ１４２が実行中であると判定する。よって、プログラム実行制御部２３６は、プログラムＡ１４２の処理を中断させる。そして、プログラム実行制御部２３６は、ステップＳ２４に進む。
【０１２８】
一方、抽出された種類１４３３がメモリ量であると（Ｓ２７）、プログラム実行制御部２３６は、抽出された内容１４３４の「１６ＭＢ」以上の空きメモリが機器２に存在するか否かを判定する。
【０１２９】
具体的には、プログラム実行制御部２３６は、抽出した要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ｂを起動する。すると、要求確認コード１４４Ｂは、プログラム実行制御部２３６によって抽出された内容１４３４の「１６ＭＢ」を、変数ｘに代入する。そして、要求確認コード１４４Ｂは、機器２の空きメモリが「１６ＭＢ」以上であるか否かを判定する。空きメモリが「１６ＭＢ」以上の場合、要求確認コード１４４Ｂは、「ｔｒｕｅ」をプログラム実行制御部２３６に返す。一方、空きメモリが「１６ＭＢ」より小さい場合、要求確認コード１４４Ｂは、「ｆａｌｓｅ」をプログラム実行制御部２３６に返す。
【０１３０】
プログラム実行制御部２３６は、「ｔｒｕｅ」を受けると、抽出された内容１４３４の「１６ＭＢ」以上の空きメモリが機器２に存在すると判定する。よって、プログラム実行制御部２３６は、プログラムＡ１４２の処理をそのまま継続させる。そして、プログラム実行制御部２３６は、ステップＳ２４に進む。
【０１３１】
一方、プログラム実行制御部２３６は、「ｆａｌｓｅ」を受けると、抽出された内容１４３４の「１６ＭＢ」以上の空きメモリが機器２に存在しないと判定する。よって、プログラム実行制御部２３６は、プログラムＡ１４２の処理を中断させる。そして、プログラム実行制御部２３６は、ステップＳ２４に進む。
【０１３２】
一方、抽出された種類１４３３が周辺機器であると（Ｓ２８）、プログラム実行制御部２３６は、抽出された内容１４３４の「ＧＰＳ装置」を機器２が備えるか否かを判定する。
【０１３３】
具体的には、プログラム実行制御部２３６は、抽出した要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ｃを起動する。すると、要求確認コード１４４Ｃは、プログラム実行制御部２３６によって抽出された内容１４３４の「ＧＰＳ装置」を、変数ｘに代入する。そして、要求確認コード１４４Ｃは、機器２がＧＰＳ装置２４を備えるか否かを判定する。機器２がＧＰＳ装置２４を備える場合、要求確認コード１４４Ｃは、「ｔｒｕｅ」をプログラム実行制御部２３６に返す。一方、機器２がＧＰＳ装置２４を備えない場合、要求確認コード１４４Ｃは、「ｆａｌｓｅ」をプログラム実行制御部２３６に返す。
【０１３４】
プログラム実行制御部２３６は、「ｔｒｕｅ」を受けると、抽出された内容１４３４の「ＧＰＳ装置」を機器２が備えると判定する。よって、プログラム実行制御部２３６は、プログラムＡ１４２の処理をそのまま継続させる。そして、プログラム実行制御部２３６は、ステップＳ２４に進む。
【０１３５】
一方、プログラム実行制御部２３６は、「ｆａｌｓｅ」を受けると、抽出された内容１４３４の「ＧＰＳ装置」を機器２が備えないと判定する。よって、プログラム実行制御部２３６は、プログラムＡ１４２の処理を中断させる。そして、プログラム実行制御部２３６は、ステップＳ２４に進む。
【０１３６】
一方、抽出された種類１４３３が通信速度であると（Ｓ２９）、プログラム実行制御部２３６は、抽出された内容１４３４の「５Ｍｂｐｓ」以上の利用可能な通信速度を機器２が提供できるか否かを判定する。
【０１３７】
具体的には、プログラム実行制御部２３６は、抽出した要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ｄを起動する。すると、要求確認コード１４４Ｄは、プログラム実行制御部２３６によって抽出された内容１４３４の「５Ｍｂｐｓ」を、変数ｘに代入する。そして、要求確認コード１４４Ｄは、機器２の利用可能な通信速度が「５Ｍｂｐｓ」以上であるか否かを判定する。利用可能な通信速度が「５Ｍｂｐｓ」以上の場合、要求確認コード１４４Ｄは、「ｔｒｕｅ」をプログラム実行制御部２３６に返す。一方、利用可能な通信速度が「５Ｍｂｐｓ」より小さい場合、要求確認コード１４４Ｄは、「ｆａｌｓｅ」をプログラム実行制御部２３６に返す。
【０１３８】
プログラム実行制御部２３６は、「ｔｒｕｅ」を受けると、抽出された内容１４３４の「５Ｍｂｐｓ」以上の利用可能な通信速度を機器２が提供できると判定する。よって、プログラム実行制御部２３６は、プログラムＡ１４２の処理をそのまま継続させる。そして、プログラム実行制御部２３６は、ステップＳ２４に進む。
【０１３９】
一方、プログラム実行制御部２３６は、「ｆａｌｓｅ」を受けると、抽出された内容１４３４の「５Ｍｂｐｓ」以上の利用可能な通信速度を機器２が提供できないと判定する。よって、プログラム実行制御部２３６は、プログラムＡ１４２の処理を中断させる。そして、プログラム実行制御部２３６は、ステップＳ２４に進む。
【０１４０】
一方、抽出された種類１４３３がＣＰＵ性能であると（Ｓ３０）、プログラム実行制御部２３６は、抽出された内容１４３４の「１０ＭＩＰＳ」以上の利用可能なＣＰＵ性能を機器２が提供できるか否かを判定する。
【０１４１】
具体的には、プログラム実行制御部２３６は、抽出した要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ｅを起動する。すると、要求確認コード１４４Ｅは、プログラム実行制御部２３６によって抽出された内容１４３４の「１０ＭＩＰＳ」を、変数ｘに代入する。そして、要求確認コード１４４Ｅは、機器２の利用可能なＣＰＵ性能が「１０ＭＩＰＳ」以上であるか否かを判定する。利用可能なＣＰＵ性能が「１０ＭＩＰＳ」以上の場合、要求確認コード１４４Ｅは、「ｔｒｕｅ」をプログラム実行制御部２３６に返す。一方、利用可能なＣＰＵ性能が「１０ＭＩＰＳ」より小さい場合、要求確認コード１４４Ｅは、「ｆａｌｓｅ」をプログラム実行制御部２３６に返す。
【０１４２】
プログラム実行制御部２３６は、「ｔｒｕｅ」を受けると、抽出された内容１４３４の「１０ＭＩＰＳ」以上の利用可能なＣＰＵ性能を機器２が提供できると判定する。よって、プログラム実行制御部２３６は、プログラムＡ１４２の処理をそのまま継続させる。そして、プログラム実行制御部２３６は、ステップＳ２４に進む。
【０１４３】
一方、プログラム実行制御部２３６は、「ｆａｌｓｅ」を受けると、抽出された内容１４３４の「１０ＭＩＰＳ」以上の利用可能なＣＰＵ性能を機器２が提供できないと判定する。よって、プログラム実行制御部２３６は、プログラムＡ１４２の処理を中断させる。そして、プログラム実行制御部２３６は、ステップＳ２４に進む。
【０１４４】
一方、抽出された種類１４３３が禁止であると（Ｓ３１）、プログラム実行制御部２３６は、抽出された内容１４３４の「３」によって機器２が識別されるか否かを判定する。
【０１４５】
具体的には、プログラム実行制御部２３６は、抽出した要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ｆを起動する。すると、要求確認コード１４４Ｆは、プログラム実行制御部２３６によって抽出された内容１４３４の「３」を、変数ｘに代入する。そして、要求確認コード１４４Ｆは、機器２に付与されている機器ＩＤが「３」であるか否かを判定する。機器ＩＤが「３」の場合、要求確認コード１４４Ｆは、「ｔｒｕｅ」をプログラム実行制御部２３６に返す。一方、機器ＩＤが「３」でない場合、要求確認コード１４４Ｆは、「ｆａｌｓｅ」をプログラム実行制御部２３６に返す。
【０１４６】
プログラム実行制御部２３６は、「ｆａｌｓｅ」を受けると、抽出された内容１４３４の「３」によって機器２が識別されないと判定する。よって、プログラム実行制御部２３６は、プログラムＡ１４２の処理をそのまま継続させる。そして、プログラム実行制御部２３６は、ステップＳ２４に進む。
【０１４７】
一方、プログラム実行制御部２３６は、「ｔｒｕｅ」を受けると、抽出された内容１４３４の「３」によって機器２が識別されると判定する。よって、プログラム実行制御部２３６は、プログラムＡ１４２の処理を中断させる。そして、プログラム実行制御部２３６は、ステップＳ２４に進む。
【０１４８】
以上のように、プログラム実行制御部２３６は、プログラムＡ１４２の実行状況を監視し、プログラムＡ１４２の実行を制御する。
【０１４９】
図９は、本発明の実施の形態の管理サーバ１によって実行されるプログラム改変処理のフローチャートである。
【０１５０】
プログラム改変処理は、プログラム配付処理（図７）のステップＳ１５において実行される。
【０１５１】
ここでは、管理サーバ１が、プログラムＡ１４２（図５）を、改変済プログラムＡ３３３（図６）に改変する場合を説明する。
【０１５２】
まず、管理サーバ１は、プログラムＡ１４２に対応するプログラム要求情報１４３に含まれるすべてのレコードを、処理したか否かを判定する（Ｓ１５１）。すべてのレコードが処理された場合、管理サーバ１は、当該プログラム改変処理を終了する。
【０１５３】
一方、すべてのレコードが処理されていない場合、管理サーバ１は、プログラムＡ１４２に対応するプログラム要求情報１４３から、未処理のレコードを一つ選択する（Ｓ１５２）。
【０１５４】
次に、管理サーバ１は、選択したレコードから、場合１４３２、種類１４３３、内容１４３４及び要求確認コードＩＤ１４３５を抽出する。次に、管理サーバ１は、抽出した種類１４３３が、依存プログラム、競合プログラム、メモリ量、周辺機器、通信速度、ＣＰＵ性能又は禁止のいずれであるかを判定する。
【０１５５】
抽出された種類１４３３が依存プログラムであると（Ｓ１５３）、管理サーバ１は、抽出された場合１４３２の「起動時」に対応する位置３３３１を、プログラムＡ１４２の中から特定する。次に、管理サーバ１は、特定した位置３３３１に、抽出された内容１４３４に対応するプログラムＢ１４２が実行中であることを確認するコードを挿入する。そして、管理サーバ１は、ステップＳ１５１に戻る。
【０１５６】
当該挿入されたコードは、抽出された要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ａ（関数ｒｕｎｎｉｎｇ）を実行させる。次に、当該挿入されたコードは、抽出された要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ａから結果を受け取る。受け取った結果が「ｆａｌｓｅ」であれば、当該挿入されたコードは、エラーメッセージの表示及び当該プログラムＡ１４２の処理の中断を指示する。
【０１５７】
一方、抽出された種類１４３３が競合プログラムであると（Ｓ１５４）、管理サーバ１は、抽出された場合１４３２の「起動時」に対応する位置３３３１を、プログラムＡ１４２の中から特定する。次に、管理サーバ１は、特定した位置３３３１に、抽出された内容１４３４に対応するプログラムＣ１４２が実行中でないことを確認するコードを挿入する。そして、管理サーバ１は、ステップＳ１５１に戻る。
【０１５８】
当該挿入されたコードは、抽出された要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ａ（関数ｒｕｎｎｉｎｇ）を実行させる。次に、当該挿入されたコードは、抽出された要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ａから結果を受け取る。受け取った結果が「ｔｒｕｅ」であれば、当該挿入されたコードは、エラーメッセージの表示及び当該プログラムＡ１４２の処理の中断を指示する。
【０１５９】
一方、抽出された種類１４３３がメモリ量であると（Ｓ１５５）、管理サーバ１は、抽出された場合１４３２の「起動時」に対応する位置３３３１を、プログラムＡ１４２の中から特定する。次に、管理サーバ１は、特定した位置３３３１に、抽出された内容１４３４の「１６ＭＢ」以上の空きメモリが機器３に存在することを確認するコードを挿入する。そして、管理サーバ１は、ステップＳ１５１に戻る。
【０１６０】
当該挿入されたコードは、抽出された要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ｂ（関数ｆｒｅｅ＿ｍｅｍｏｒｙ）を実行させる。次に、当該挿入されたコードは、抽出された要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ｂから結果を受け取る。受け取った結果が「ｆａｌｓｅ」であれば、当該挿入されたコードは、エラーメッセージの表示及び当該プログラムＡ１４２の処理の中断を指示する。
【０１６１】
一方、抽出された種類１４３３が周辺機器であると（Ｓ１５６）、管理サーバ１は、抽出された場合１４３２の「機能Ｘ呼出時」に対応する位置３３３２を、プログラムＡ１４２の中から特定する。次に、管理サーバ１は、特定した位置３３３２に、抽出された内容１４３４の「ＧＰＳ装置」を機器３が備えることを確認するコードを挿入する。そして、管理サーバ１は、ステップＳ１５１に戻る。
【０１６２】
当該挿入されたコードは、抽出された要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ｃ（関数ｃｏｎｎｅｃｔｅｄ）を実行させる。次に、当該挿入されたコードは、抽出された要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ｃから結果を受け取る。受け取った結果が「ｆａｌｓｅ」であれば、当該挿入されたコードは、エラーメッセージの表示及び当該プログラムＡ１４２の処理の中断を指示する。
【０１６３】
一方、抽出された種類１４３３が通信速度であると（Ｓ１５７）、管理サーバ１は、抽出された場合１４３２の「機能Ｙ呼出時」に対応する位置３３３３を、プログラムＡ１４２の中から特定する。次に、管理サーバ１は、特定した位置３３３３に、抽出された内容１４３４の「５Ｍｂｐｓ」以上の利用可能な通信速度を機器３が提供できることを確認するコードを挿入する。そして、管理サーバ１は、ステップＳ１５１に戻る。
【０１６４】
当該挿入されたコードは、抽出された要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ｄ（関数ｎｅｔｗｏｒｋ＿ｓｐｅｅｄ）を実行させる。次に、当該挿入されたコードは、抽出された要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ｄから結果を受け取る。受け取った結果が「ｆａｌｓｅ」であれば、当該挿入されたコードは、エラーメッセージの表示及び当該プログラムＡ１４２の処理の中断を指示する。
【０１６５】
一方、抽出された種類１４３３がＣＰＵ性能であると（Ｓ１５８）、管理サーバ１は、抽出された場合１４３２の「機能Ｙ呼出時」に対応する位置３３３３を、プログラムＡ１４２の中から特定する。次に、管理サーバ１は、特定した位置３３３３に、抽出された内容１４３４の「１０ＭＩＰＳ」以上の利用可能なＣＰＵ性能を機器３が提供できることを確認するコードを挿入する。そして、管理サーバ１は、ステップＳ１５１に戻る。
【０１６６】
当該挿入されたコードは、抽出された要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ｅ（関数ｃｐｕ＿ｐｏｗｅｒ）を実行させる。次に、当該挿入されたコードは、抽出された要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ｅから結果を受け取る。受け取った結果が「ｆａｌｓｅ」であれば、当該挿入されたコードは、エラーメッセージの表示及び当該プログラムＡ１４２の処理の中断を指示する。
【０１６７】
一方、抽出された種類１４３３が禁止であると（Ｓ１５９）、管理サーバ１は、抽出された場合１４３２の「機能Ｚ呼出時」に対応する位置３３３４を、プログラムＡ１４２の中から特定する。次に、管理サーバ１は、特定した位置３３３４に、抽出された内容１４３４の「３」によって機器３が識別されないことを確認するコードを挿入する。そして、管理サーバ１は、ステップＳ１５１に戻る。
【０１６８】
当該挿入されたコードは、抽出された要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ｆ（関数ｄｅｖｉｃｅ＿ｉｄ）を実行させる。次に、当該挿入されたコードは、抽出された要求確認コードＩＤ１４３５によって識別される要求確認コード１４４Ｆから結果を受け取る。受け取った結果が「ｔｒｕｅ」であれば、当該挿入されたコードは、エラーメッセージの表示及び当該プログラムＡ１４２の処理の中断を指示する。
【０１６９】
以上のように、管理サーバ１は、プログラム要求情報１４３に基づいて、プログラム１４２を改変済プログラム３３３に改変する。
【０１７０】
図１０は、本発明の実施の形態の機器３によって実行される改変済プログラム実行処理のフローチャートである。
【０１７１】
ここでは、機器３が、改変済プログラムＡ３３３を実行する場合を説明する。
【０１７２】
機器３のＯＳ３３１は、改変済プログラムＡ３３３の実行要求をユーザから受けると、当該改変済プログラム実行処理を開始する。
【０１７３】
まず、ＯＳ３３１は、改変済プログラムＡ３３３を起動する（Ｓ３１）。次に、ＯＳ３３１は、起動された改変済プログラムＡ３３３の処理をそのまま継続させる（Ｓ３２）。
【０１７４】
次に、ＯＳ３３１は、改変済プログラムＡ３３３の処理が終了したか否かを判定する（Ｓ３３）。改変済プログラムＡ３３３の処理が終了していない場合、ＯＳ３３１は、ステップＳ３２に戻る。
【０１７５】
一方、改変済プログラムＡ３３３の処理が終了している場合、ＯＳ３３１は、当該改変済プログラム実行処理を終了する。
【０１７６】
以上のように、機器３は、改変済プログラム３３３を実行するので、プログラム実行制御部２３６を備える必要がない。つまり、機器３は、配付された改変済プログラム３３３を実行するだけで、プログラムの実行が制御される。
【０１７７】
そのため、本実施の形態の計算機システムでは、機器２又は３がプログラム実行制御部２３６を備えるか否かに関わらず、プログラムの実行が制御される。よって、管理サーバ１は、すべての機器２及び３に対して、プログラムの機能の制限を徹底させることができる。
【図面の簡単な説明】
【０１７８】
【図１】本発明の実施の形態の計算機システムの構成のブロック図である。
【図２】本発明の実施の形態の管理サーバに記憶される機器管理情報の構成図である。
【図３】本発明の実施の形態の管理サーバに記憶されるプログラム要求情報の構成図である。
【図４Ａ】本発明の実施の形態の管理サーバに記憶される要求確認コードの説明図である。
【図４Ｂ】本発明の実施の形態の管理サーバに記憶される要求確認コードの説明図である。
【図４Ｃ】本発明の実施の形態の管理サーバに記憶される要求確認コードの説明図である。
【図４Ｄ】本発明の実施の形態の管理サーバに記憶される要求確認コードの説明図である。
【図４Ｅ】本発明の実施の形態の管理サーバに記憶される要求確認コードの説明図である。
【図４Ｆ】本発明の実施の形態の管理サーバに記憶される要求確認コードの説明図である。
【図５】本発明の実施の形態の管理サーバによって配付されるプログラムの説明図である。
【図６】本発明の実施の形態の管理サーバによって配付される改変済プログラムの説明図である。
【図７】本発明の実施の形態の管理サーバによって実行されるプログラム配付処理のフローチャートである。
【図８】本発明の実施の形態の機器によって実行されるプログラム実行処理のフローチャートである。
【図９】本発明の実施の形態の管理サーバによって実行されるプログラム改変処理のフローチャートである。
【図１０】本発明の実施の形態の機器によって実行される改変済プログラム実行処理のフローチャートである。
【符号の説明】
【０１７９】
１  管理サーバ
２  機器
３  機器
４  ネットワーク
１１  ＣＰＵ
１２  通信装置
１３  一次記憶装置
１４  二次記憶装置
２１  ＣＰＵ
２２  通信装置
２３  記憶装置
２４  ＧＰＳ装置
３１  ＣＰＵ
３２  通信装置
３３  記憶装置
１３１  ＯＳ
１３２  機器構成管理部
１３３  プログラム配付管理部
１３４  コード改変部
１４１  機器管理情報
１４２  プログラム
１４３  プログラム要求情報
１４４  要求確認コード
２３１  ＯＳ
２３２  機器管理部
２３６  プログラム実行制御部
３３１  ＯＳ
３３２  機器管理部
３３３  改変済プログラム
【図１】
2008009715.tif 000003
【図２】
2008009715.tif 000004
【図３】
2008009715.tif 000005
【図４Ａ】
2008009715.tif 000006
【図４Ｂ】
2008009715.tif 000007
【図４Ｃ】
2008009715.tif 000008
【図４Ｄ】
2008009715.tif 000009
【図４Ｅ】
2008009715.tif 000010
【図４Ｆ】
2008009715.tif 000011
【図５】
2008009715.tif 000012
【図６】
2008009715.tif 000013
【図７】
2008009715.tif 000014
【図８】
2008009715.tif 000015
【図９】
2008009715.tif 000016
【図１０】
2008009715.tif 000017