(57)【要約】【課題】  新たなプログラム構成の下で装置を動作させようとする際、装置が正しく動作しなくなる事態を回避する。【解決手段】  ＣＰＵ１０２は、リソースを割当ててアプリケーションプログラムを起動する際、割当てようとするリソースが、起動済みのアプリケーションプログラムに割当てたリソースと競合するか否か判定し、競合すると判定した場合には、過去に正常に起動した時のログデータを読み出す。ＣＰＵ１０２は、ログデータを読み出すと、該ログデータに含まれている特定データと、該ログデータに含まれているリソースデータとを用いてアプリケーションプログラムを起動する。【選択図】        図４
2005108139.tif 000002
【特許請求の範囲】
【請求項１】
複数のアプリケーションプログラムと、起動されるアプリケーションプログラムを特定する特定データと、前記特定データで特定されるアプリケーションプログラムに割当てるリソースを示すリソースデータとを記憶する第１記憶手段と、
前記第１記憶手段に記憶されている特定データとリソースデータとを読み出し、該特定データで特定されるアプリケーションプログラムに、該リソースデータが示すリソースを割当てて起動する起動手段と、
前記第１記憶手段に記憶されている特定データが全て読み出され、読み出された特定データで特定されるアプリケーションプログラムが全て前記起動手段により起動された場合、前記第１記憶手段に記憶されている特定データとリソースデータとをログデータとして記憶する第２記憶手段と
を具備し、
前記起動手段は、起動するアプリケーションプログラムに割当てるリソースが、起動済みのアプリケーションプログラムに割当てたリソースと競合するか否か判定し、競合すると判定した場合には、実行中のアプリケーションプログラムを終了して該アプリケーションプログラムに割当てたリソースを解放し、前記第２記憶手段に記憶されているログデータを読み出し、該ログデータに含まれている特定データおよびリソースデータを用いて、アプリケーションプログラムを起動すること
を特徴とする情報処理装置。
【請求項２】
前記特定データと前記リソースデータとを記憶したモジュールを装着するための装着手段を有し、
前記起動手段は、前記モジュールが前記装着手段に装着されている場合には、前記モジュールから前記特定データと前記リソースデータとを読み出し、該特定データで特定されるアプリケーションプログラムに、該リソースデータが示すリソースを割当てて起動し、
前記第２記憶手段は、前記モジュールに記憶されている特定データが全て読み出され、読み出された特定データで特定されるアプリケーションプログラムが全て前記起動手段により起動された場合、前記モジュールに記憶されている特定データとリソースデータとをログデータとして記憶すること
を特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記起動手段は、前記モジュールから読み出した特定データで特定されるアプリケーションプログラムが前記第１記憶手段に記憶されていない場合、該アプリケーションプログラムを通信網を介して取得すること
を特徴とする請求項２に記載の情報処理装置。
【請求項４】
表示部と、
外部からの入力を受け付ける入力手段とを有し、
前記起動手段は、起動するアプリケーションプログラムに割当てるリソースが、起動済みのアプリケーションプログラムに割当てたリソースと競合するか否か判定し、競合すると判定した場合、リソースデータの入力を促すメッセージを前記表示部に表示させ、リソースデータが前記入力手段に入力された場合、前記入力手段が受け取ったリソースデータが示すリソースを、起動するアプリケーションプログラムに割当てて起動すること
を特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記起動手段は、起動するアプリケーションプログラムに割当てるリソースが、起動済みのアプリケーションプログラムに割当てたリソースと競合するか否か判定し、競合すると判定した場合、前記第１記憶手段が記憶しているリソースデータを前記表示部に表示させ、変更するリソースデータを特定する指示と、リソースデータとが前記入力手段に入力された場合、特定されたリソースデータを、入力されたリソースデータで上書きして前記第１記憶手段に記憶させ、実行中のアプリケーションプログラムを終了して該アプリケーションプログラムに割当てたリソースを解放し、前記第１記憶手段に記憶されている特定データとリソースデータとを読み出し、該特定データで特定されるアプリケーションプログラムに、該リソースデータが示すリソースを割当てて起動すること
を特徴とする請求項４に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、起動させるプログラムを替えることにより機能の追加や変更を行う技術に関する。
【背景技術】
【０００２】
プリンタやコピー機、ファクシミリ装置、またはこれらの装置の機能を併せ持つ複合機と呼ばれる装置においては、制御プログラムや各機能を実現するためのアプリケーションプログラムはＲＯＭ（Read Only Memory）に記憶されていたため、プログラムの不具合の修正や、機能追加などを行う際には、装置の構成を熟知した作業者によるＲＯＭの交換作業を必要としていた。
しかしながら、近年、これらの装置においても、サーバ装置から通信ネットワークを介してプログラムをダウンロードし、このプログラムを書き換え可能な記録媒体に記録させる技術が提案され（例えば、特許文献１、特許文献２参照）、ＲＯＭの交換作業という大がかりな作業を必要とすることなく、容易にプログラムの変更や追加を行うことが可能となっている。
【特許文献１】特開２００２−１６９６２１号公報
【特許文献２】特開２００２−２０７６０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、個々の機能毎にアプリケーションプログラムを備える構成においては、アプリケーションプログラムを実行するために、各機能に係わるパラメータの設定が必要なものがある。このような構成において、プログラムの構成を変更したり、新たにプログラムを追加する場合、機能を実現し正常に動作させるためにはパラメータの設定に注意を払う必要がある。
【０００４】
例えば、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）に従った通信を行う機能の場合、通信を行うためのパラメータとして、ポート番号の設定を要する場合があるが、ＴＣＰ／ＩＰに従った通信を行うアプリケーションプログラムが複数ある場合、ポート番号の競合が発生しないようにアプリケーションプログラム毎にパラメータの設定を行わないと、機能が実現せず、正しく動作しないという問題が生じ得る。
【０００５】
特許文献１および特許文献２には、新しいプログラム構成で装置を起動させるために、アプリケーションプログラムをダウンロードする技術についての記載がある。しかしながら、その後、ダウンロードしたプログラムを起動させたことにより、装置が正しく動作しなくなるという事態を回避する技術については記載がなく、上述した問題を解決することはできない。
【０００６】
本発明は、上述した背景の下になされたものであり、新たなプログラム構成の下で装置を動作させようとする際、装置が正しく動作しなくなる事態を回避する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、複数のアプリケーションプログラムと、起動されるアプリケーションプログラムを特定する特定データと、前記特定データで特定されるアプリケーションプログラムに割当てるリソースを示すリソースデータとを記憶する第１記憶手段と、前記第１記憶手段に記憶されている特定データとリソースデータとを読み出し、該特定データで特定されるアプリケーションプログラムに、該リソースデータが示すリソースを割当てて起動する起動手段と、前記第１記憶手段に記憶されている特定データが全て読み出され、読み出された特定データで特定されるアプリケーションプログラムが全て前記起動手段により起動された場合、前記第１記憶手段に記憶されている特定データとリソースデータとをログデータとして記憶する第２記憶手段とを具備し、前記起動手段は、起動するアプリケーションプログラムに割当てるリソースが、起動済みのアプリケーションプログラムに割当てたリソースと競合するか否か判定し、競合すると判定した場合には、実行中のアプリケーションプログラムを終了して該アプリケーションプログラムに割当てたリソースを解放し、前記第２記憶手段に記憶されているログデータを読み出し、該ログデータに含まれている特定データおよびリソースデータを用いて、アプリケーションプログラムを起動することを特徴とする情報処理装置を提供する。
【０００８】
本発明によれば、第１記憶手段に記憶されている特定データが全て読み出され、読み出された特定データで特定されるアプリケーションプログラムが全て前記起動手段により起動された場合、前記第１記憶手段に記憶されている特定データとリソースデータとがログデータとして記憶される。情報処理装置は、アプリケーションプログラムを起動する際に、起動するアプリケーションプログラムに割当てるリソースが、起動済みのアプリケーションプログラムに割当てたリソースと競合するか否かを判定し、競合すると判定した場合には、実行中のアプリケーションプログラムを終了して該アプリケーションプログラムに割当てたリソースを解放し、ログデータを読み出し、該ログデータに含まれている特定データおよびリソースデータを用いてアプリケーションプログラムを再起動する。
【発明の効果】
【０００９】
本発明によれば、新たなプログラム構成の下で装置を動作させようとする際、装置が正しく動作しなくなる事態を回避することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照しつつ本発明を実施するための最良の形態について説明する。
【００１１】
［Ａ．構成］
［Ａ−１．全体構成］
図１は、本発明の実施形態に係わる通信システムの構成を例示する図である。イントラネット６００は、例えば、企業内に設けられた通信ネットワークであり、複合機１００、ＰＣ（Personal Computer）７００、ファイアウォールサーバ装置４００などが接続されている。ファイアウォールサーバ装置４００は、インターネット５００に接続されており、イントラネット６００に接続された装置とインターネット５００に接続された装置との間で行われる不正な通信を防ぐ機能を有している。
【００１２】
複合機１００は、プリンタ装置、複写機およびファクシミリ装置などが有する機能を併せ持つ装置である。複合機１００は、各種機能を実現させるためのアプリケーションプログラムを機能毎に記憶しており、このアプリケーションプログラムを実行することにより、受信したデータに従って印刷を行う機能や、ファクシミリ装置としての機能など、種々の機能が実現し、情報を処理する情報処理装置として機能する。また、複合機１００は、イントラネット６００を介してＰＣ７００と通信を行うことや、イントラネット６００、ファイアウォールサーバ装置４００およびインターネット５００を介してサーバ装置３００と通信を行うことが可能となっている。また、複合機１００は、ＩＣカード２００を装着するインターフェースを具備しており、ＩＣカード２００が記憶している情報に従って、アプリケーションプログラムを起動する機能を有している。
【００１３】
ＩＣカード２００は、例えば、ＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）などの不揮発性メモリを具備しており、構成情報やリソース情報を記憶する。構成情報とは、複合機１００に実行させるアプリケーションプログラムに関する情報であり、リソース情報とは、アプリケーションプログラムを実行する際に必要となる情報である。構成情報およびリソース情報の詳細については、後に説明する。
【００１４】
サーバ装置３００は、インターネット５００に接続されており、複合機１００が実行可能な各種プログラムを記憶している。サーバ装置３００は、記憶しているプログラムをクライアントとなる装置へ送信する機能を有しており、複合機１００からの要求に応じて、記憶しているプログラムを複合機１００へ送信する。
【００１５】
ＩＣカードリーダ８００は、ＩＣカード２００が記憶しているデータの読み出しと、ＩＣカード２００へのデータの書込みを行うインターフェースとしての機能を具備しており、ＰＣ７００に接続されている。
ＰＣ７００は、パーソナルコンピュータ装置であり、ＣＰＵ（Central Processing Unit）、ＲＯＭ、ＲＡＭ（Random Access Memory）、ハードディスク装置などの記憶装置、通信インターフェースなどを具備している。ＰＣ７００は、ＩＣカードリーダ８００を制御するアプリケーションプログラムを記憶しており、このプログラムを実行することにより、ＩＣカード２００が記憶しているデータを読み出したり、ＩＣカード２００へデータを書き込むことが可能となる。
【００１６】
［Ａ−２．ＩＣカード２００の構成］
ＩＣカード２００は、構成情報を格納する構成情報テーブルＴＢ１Ａと、リソース情報を格納するリソース情報テーブルＴＢ２Ａを記憶している。
【００１７】
まず、構成情報テーブルＴＢ１Ａについて説明する。図２は、ＩＣカード２００が記憶している構成情報テーブルＴＢ１Ａのフォーマットを例示する図である。
プログラムフィールドには、複合機１００に実行させるアプリケーションプログラムのファイル名を示すデータが格納される。格納先フィールドにはＵＲＬ（Uniform Resource Locator）が格納される。このＵＲＬは、プログラムフィールドに格納されているファイル名で特定されるプログラムのダウンロード元となる場所を示す。許諾フィールドには、アプリケーションプログラムを実行することが許可されているか否かを示すデータが格納される。例えば、図２において、許諾フィールドに格納される「有り」というデータは、プログラムを実行することが許可されていることを示し、「なし」というデータは、プログラムを実行することが許可されていないことを示す。また、「試用」というデータは、機能の一部が制限されるが、プログラムを実行することが許可されていることを示す。有効期限フィールドには、アプリケーションプログラムを使用することができる期限を示すデータが格納される。例えば、図２において、ファイル名が「print」であるプログラムは、「2003/12/19」、即ち、２００３年１２月１９日まで使用することが可能であることを示している。処理フィールドには、アプリケーションプログラムの有効期限が過ぎた場合にＣＰＵ１０２が行う処理を示すデータが格納される。例えば、図２において、「停止」は、実行中のアプリケーションプログラムを停止させることを示し、「削除」は、実行中のアプリケーションプログラムを停止させ、ＮＶＲＡＭ１０５に記憶されているアプリケーションプログラムを消去することを示している。状態フィールドには、アプリケーションプログラムが、起動されているか否かを示すデータが格納される。例えば、アプリケーションプログラムが起動された場合には「起動」が格納され、プログラムが起動されていない場合には「停止」が格納される。
【００１８】
次にリソース情報テーブルＴＢ２Ａについて説明する。図３は、ＩＣカード２００が記憶しているリソース情報テーブルＴＢ２Ａのファーマットを例示する図である。リソース割当てフィールドには、アプリケーションプログラムを実行する際に必要となるデータ、具体的には、アプリケーションに割当てるハードウェア資源やソフトウェア資源、即ちリソースを示すデータが格納される。
例えば、図３に示した「hd:hd0/spl1」というデータの場合、アプリケーションにハードディスク装置hd0のspl1フォルダを割り当てることを示している。また「mem:20MB」というデータの場合、アプリケーションの作業用として２０メガバイトのメモリ領域を割当てることを示している。また、「hd:hd1,mem:10MB,tcp:80;8000」というデータの場合、「tcp:80;8000」は、クライアントからの要求を受信するためのポート番号としてＴＣＰの８０番と８０００番を割り当てることを示している。また、「iit:iit1」というデータの場合、「iit」は、「image input terminal」を示し、画像の入力装置としてiit1のイメージスキャナを割り当てることを示している。また、「iot:iot1」というデータの場合、「iot」は、「image output terminal」を示し、画像の出力装置としてiot1のプリンタを割り当てることを示している。また、「font:fontset1」というデータの場合、アプリケーションが文字を処理する際に使用するフォントとして、複合機１００が記憶しているフォントのうち「fontset1」で特定されるフォントを割り当てることを示している。
【００１９】
［Ａ−３．複合機１００の構成］
次に、複合機１００の構成について説明する。図４は、複合機１００のハードウェア構成のうち、本発明に係わる部分の構成を示したブロック図である。図４に示したように、複合機１００の各部は、バス１０１に接続されており、このバス１０１を介して各部間でデータの授受を行う。
【００２０】
通信部１０６は、イントラネット６００を使用して通信を行う通信インターフェースとしての機能を有しており、通信線（図示略）によりイントラネット６００に接続されている。通信部１０６は、ＣＰＵ１０２の制御の下、イントラネット６００から送られたデータをＣＰＵ１０２へ供給し、ＣＰＵ１０２からバス１０１を介して供給されたデータをイントラネット６００へ送出する。また、通信部１０６は、図示を省略した電話網を使用してファクシミリ通信を行う通信インターフェースとしての機能も有しており、ＣＰＵ１０２の制御の下、電話網から送られたデータをＣＰＵ１０２へ供給し、ＣＰＵ１０２からバス１０１を介して供給されたデータを電話網へ送出してファクシミリ通信を行う。
【００２１】
ユーザインターフェース部１０７（以下、Ｕ／Ｉ部１０７と称する）は、液晶ディスプレイおよび透明なタッチパネル（いずれも図示略）を具備している。液晶ディスプレイは、ＣＰＵ１０２の制御の下、文字やグラフィック画面、メニュー画面などを表示する。タッチパネルは、液晶ディスプレイを覆うように設置されており、複合機１００の使用者がタッチパネルに触れると、使用者が触れたタッチパネル上の位置を検知し、触れた位置を示す信号をＣＰＵ１０２へ供給する。
ＩＣカードＩ／Ｆ部１１０は、ＩＣカード２００が記憶しているデータの読み出しと、ＩＣカード２００へのデータの書込みを行うインターフェースとしての機能を具備している。
【００２２】
ページメモリ１０８は、例えばＲＡＭであり、文書を印刷する際に、文書を示すデータを記憶する。印刷部１０９は、印刷用紙を保持する用紙トレイと、印刷用紙に印刷を行う印刷機構を具備しており、ＣＰＵ１０２の制御の下、ページメモリ１０８に記憶されているデータに従って印刷を行う。印刷部１０９は印刷を終了すると、印刷が行われた用紙を排出する。画像入力部１１２は、例えば、イメージスキャナを具備しており、ＣＰＵ１０２の制御の下、イメージスキャナに載置された文書を読み取り、読み取った文書を示す画像データを生成する。
【００２３】
ＮＶＲＡＭ（Non Volatile Random Access Memory）１０５は、データを永続的に記憶することができるメモリであり、電気的にデータやプログラムの消去および書き込みをすることができる。ＮＶＲＡＭ１０５は、複合機１００の各部を制御する機能を実現するＯＳ（Operating System）プログラム、制御プログラム、およびサーバ装置３００からダウンロードしたプログラムなどを記憶する。
【００２４】
ハードディスク装置１１１は、ＣＰＵ１０２が複合機１００の各部を制御する際に使用する各種データを記憶する。また、ハードディスク装置１１１は、構成情報テーブルＴＢ１Ｂと、リソース情報テーブルＴＢ２Ｂを記憶する。なお、本実施形態では、複合機１００は一つのハードディスク装置１１１のみを有しているが、複数のハードディスク装置を具備し、ハードディスク装置を識別する番号を個々のハードディスク装置に付与し、複数のハードディスク装置を使い分けるようにしてもよい。また、ＮＶＲＡＭ１０５が記憶しているプログラムをハードディスク装置１１１に記憶させるようにしてもよい。
【００２５】
図５は、ハードディスク装置１１１が記憶している構成情報テーブルＴＢ１Ｂのフォーマットを例示する図である。プログラムフィールドには、ＣＰＵ１０２に実行させるアプリケーションプログラムのファイル名を示す情報が格納される。許諾フィールド、有効期限フィールド、処理フィールドおよび状態フィールドには、各々、構成情報テーブルＴＢ１Ａと同様のデータが格納される。
【００２６】
図６は、ハードディスク装置１１１が記憶しているリソース情報テーブルＴＢ２Ｂのフォーマットを例示する図である。ハードディスク装置１１１が記憶しているリソース情報テーブルＴＢ２Ｂには、リソース情報テーブルＴＢ２Ａと同様に、アプリケーションに割当てるハードウェア資源やソフトウェア資源を示すデータが格納される。
【００２７】
ＲＯＭ１０３は、例えば、ＩＰＬ（Initial Program Loader）と呼ばれるプログラムを記憶している。ＣＰＵ１０２は、図示を省略した電源から電力が供給されると、ＲＯＭ１０３からＩＰＬを読み出して実行する。ＣＰＵ１０２は、ＩＰＬを実行すると、ＮＶＲＡＭ１０５からＯＳソフトウェアを読み出して起動し、ＲＡＭ１０４を作業エリアとして複合機１００の各部の制御を行う。また、ＣＰＵ１０２がＯＳソフトウェアを起動すると、日時をカウントする機能が実現し、日付を示すデータおよび時刻を示すデータがＲＡＭ１０４に格納される。
【００２８】
ＣＰＵ１０２は、ＯＳソフトウェアを起動した後、制御プログラムをＮＶＲＡＭ１０５から読み出して起動する。ＣＰＵ１０２が、制御プログラムを起動すると、構成情報およびリソース情報に従って、アプリケーションプログラムを実行する機能が実現する。制御プログラムを起動したＣＰＵ１０２は、ＩＣカード２００が、ＩＣカードＩ／Ｆ部１１０に装着されているか否かを判断する。ＣＰＵ１０２は、ＩＣカード２００が装着されていると判断した場合には、ＩＣカード２００に記憶されている構成情報およびリソース情報に従って、アプリケーションプログラムを起動し、ＩＣカード２００が装着されていないと判断した場合には、ハードディスク装置１１１が記憶している構成情報およびリソース情報に従って、アプリケーションプログラムを起動する。
【００２９】
また、ＣＰＵ１０２が制御プログラムを起動すると、アプリケーションプログラムを試用モードで起動する機能が実現する。試用モードで起動することが可能なプログラムは、試用モードで起動された時に行う処理の流れが予めプログラミングされており、起動時に引数として、試用モードであることを示すパラメータを受け取ると、プログラムを起動することにより実現する機能を制限する。
【００３０】
また、ＣＰＵ１０２が制御プログラムを起動すると、アプリケーションプログラムをサーバ装置３００からダウンロードする機能が実現する。ＣＰＵ１０２は、構成情報テーブルＴＢ１Ａに格納されているファイル名で特定されるアプリケーションプログラムを、ＮＶＲＡＭ１０５が記憶していないと判断すると、格納先データを参照し、サーバ装置３００からアプリケーションプログラムをダウンロードする。
【００３１】
また、ＣＰＵ１０２が制御プログラムを起動すると、アプリケーションプログラムを正常に起動できなかった場合に、過去に正常に動作した時の構成情報およびリソース情報に従って複合機１００を動作させる機能が実現する。
また、ＣＰＵ１０２が制御プログラムを起動すると、リソースの競合を監視する機能、即ち、ＴＣＰ／ＩＰに従った通信を行う際に試用するポート番号の競合や、アプリケーションが作業用の領域として使用するメモリの不足を監視する機能が実現する。
制御プログラムを実行したＣＰＵ１０２は、アプリケーションプログラムを起動した際、ポート番号の競合やメモリの不足が生じていない場合には、正常に起動したことを示すステータス情報を生成し、ポート番号の競合やメモリの不足が生じた場合には、アプリケーションの起動を停止し、正常に起動しなかったことを示すステータス情報を生成する。
【００３２】
［Ｂ．動作］
次に、本実施形態の動作について説明する。なお、以下の説明においては、まず、ＣＰＵ１０２が、ハードディスク装置１１１に記憶されている構成情報およびリソース情報に従ってアプリケーションプログラムの起動を試みる場合を想定して動作の説明を行い、次に、ＣＰＵ１０２がＩＣカード２００に記憶されている構成情報およびリソース情報に従ってアプリケーションプログラムの起動を試みる場合を想定して動作の説明を行う。
【００３３】
［Ｂ−１．ＩＣカード２００が複合機１００に装着されていない時の動作］
まず、ＩＣカード２００がＩＣカードＩ／Ｆ部１１０に装着されていない時の複合機１００の動作について説明する。なお、以下の説明においては、日付を示すデータ「2003/12/18」がＲＡＭ１０４に格納されている場合を想定して、以下の説明を行う。また、以下の説明においては、複合機１００のハードディスク装置１１１は、図７に例示した構成情報テーブルＴＢ１Ｂおよび図８に例示したリソース情報テーブルＴＢ２Ｂを記憶している場合を想定して、以下の説明を行う。
【００３４】
複合機１００の電源が入れられ、図示を省略した電源からＣＰＵ１０２に電力が供給されると、ＣＰＵ１０２は、ＩＰＬを起動した後、ＮＶＲＡＭ１０５からＯＳソフトウェアを読み出して起動する。ＣＰＵ１０２は、ＯＳソフトウェアを起動した後、ＮＶＲＡＭ１０５から制御プログラムを読み出して起動する。ＣＰＵ１０２は制御プログラムを起動すると、ＩＣカードＩ／Ｆ部１１０を制御し、ＩＣカード２００がＩＣカードＩ／Ｆ部１１０に装着されているか否かを判断する（図９：ステップＳＡ１）。
【００３５】
ＣＰＵ１０２は、ＩＣカード２００が装着されていないと判断すると（ステップＳＡ１；ＮＯ）、まず、ＲＡＭ１０４から現在の日付を示すデータ「2003/12/18」を読み出す（ステップＳＡ２）。次に、ＣＰＵ１０２は、複合機１００にＩＣカード２００が装着されていないため、ハードディスク装置１１１が記憶している構成情報テーブルＴＢ１Ｂにおいて、レコード番号「１」のレコードに格納されているデータ、即ち、ファイル名「print」、許諾データ「試用」、有効期限データ「2003/12/19」、処理データ「削除」および状態データ「停止」を読み出す（ステップＳＡ３）。
【００３６】
次にＣＰＵ１０２は、日付を示すデータと、有効期限データおよび許諾データとを用いて、読み出したファイル名で特定されるアプリケーションプログラムを起動することが許可されているか否かを判断する（ステップＳＡ４）。具体的には、許諾データが「有り」であり、有効期限データが「なし」である場合、または許諾データが「有り」または「試用」であり、且つ、有効期限データが示す日付がＲＡＭ１０４から読み出した日付データが示す日付より後の日付である場合には、読み出したファイル名で特定されるプログラムの起動が許可されていると判断する。また、許諾データが「無し」の場合、または、許諾データが「有り」または「試用」であり、且つ、有効期限データが示す日付がＲＡＭ１０４から取得した日付データが示す日付より前の日付である場合には、読み出したファイル名で特定されるプログラムの起動が許可されていないと判断する。
構成情報テーブルＴＢ１Ｂから読み出したデータの場合、許諾データが「試用」であり、有効期限データが示す日付「2003/12/19」がＲＡＭ１０４から読み出した日付データが示す日付「2003/12/18」より後の日付なので、ＣＰＵ１０２は、読み出したファイル名で特定されるプログラムの起動が許可されていると判断する（ステップＳＡ４；ＹＥＳ）。
【００３７】
ＣＰＵ１０２は、ステップＳＡ４でＹＥＳと判断すると、読み出したファイル名で特定されるプログラムをＮＶＲＡＭ１０５から読み出す（ステップＳＡ５）。この後、ＣＰＵ１０２は、ＩＣカード２００が複合機１００に装着されていないため、レコード番号が「１」であるレコードに格納されているリソース情報「hd:/hd0,mem:80MB,font:/fontset1,iot:/iot1」を、リソース情報テーブルＴＢ２Ｂから読み出す（ステップＳＡ６）。
【００３８】
次にＣＰＵ１０２は、読み出した許諾データが「試用」であるか否かを判断する（ステップＳＡ７）。読み出した許諾データは「試用」であるので（ステップＳＡ７；ＹＥＳ）、ＣＰＵ１０２は、試用モードで起動することを示す旨のパラメータと、リソース情報とを引数として、読み出したプログラムを起動する（ステップＳＡ９）。ＣＰＵ１０２は、リソース情報が「hd:/hd0,mem:80MB,font:/fontset1,iot:/iot1」であるので、ハードディスク装置１１１の/hd0を、アプリケーションプログラムの作業領域としてメモリ「８０ＭＢ」を割当てる。また、アプリケーションが文字を処理する際に使用するフォントとして、複合機１００が記憶しているフォントのうち「fontset1」で特定されるフォントを割当て、アプリケーションが画像の出力処理を行う際に使用するハードウェア資源として、印刷部１０９の/iot1を割当てる。
【００３９】
ＣＰＵ１０２は、アプリケーションプログラムを起動すると、引数としたリソース情報でアプリケーションプログラムが正常に起動したか否かを示すステータス情報を生成し、このステータス情報をＲＡＭ１０４に記憶させる（ステップＳＡ１０）。具体的には、ポート番号の競合やメモリの不足が生じていない場合には、ステータス情報として「正常」を生成し、ポート番号の競合やメモリの不足が生じた場合には、ステータス情報として「異常」を生成する。この時点では、他のアプリケーションプログラムはまだ起動されておらず、ポート番号の競合やメモリの不足が生じていないので、ＣＰＵ１０２は、ステータス情報として「正常」を生成する。
【００４０】
この後、ＣＰＵ１０２は、起動したプログラムのファイル名「print」と、ステータス情報「正常」と、起動した日付を示すデータ「2003/12/18」とを対応付け、起動成否データとしてハードディスク装置１１１に記憶させる（ステップＳＡ１１）。次にＣＰＵ１０２は、ステータス情報に応じて、構成情報テーブルＴＢ１Ｂの状態データを書き換える。具体的には、読み出したプログラムが正常に起動された場合には、構成情報テーブルＴＢ１Ｂの状態データを「起動」に書き換え、読み出したプログラムが正常に起動されなかった場合には、構成情報テーブルＴＢ１Ｂの状態データを「停止」とする（ステップＳＡ１２）。ＣＰＵ１０２は、ファイル名が「print」であるアプリケーションプログラムを正常に起動したので、構成情報テーブルＴＢ１Ｂのデータのうち、レコード番号が「１」のレコードの状態データを「起動」に書き換える。
【００４１】
次にＣＰＵ１０２は、生成したステータス情報を参照し、アプリケーションプログラムが正常に起動したか否かを判断する（ステップＳＡ１３）。前述したようにＣＰＵ１０２は、アプリケーションプログラムを正常に起動したので、ステップＳＡ１３でＹＥＳと判断する。次に、ＣＰＵ１０２は、構成情報テーブルＴＢ１Ｂに格納されているレコードを全て読み出したか否かを判断する（ステップＳＡ１４）。図７に示したように、ステップＳＡ３で読み出したレコードの次のレコード（レコード番号「２」のレコード）には、データが格納されているため、ＣＰＵ１０２は、ステップＳＡ１４でＹＥＳと判断し、読み出したレコードの次のレコードに格納されているデータ（レコード番号「２」のレコードに格納されているデータ）を、構成情報テーブルＴＢ１Ｂから読み出し（ステップＳＡ１５）、ステップＳＡ４へ戻る。
【００４２】
ＣＰＵ１０２は、レコード番号が「２」のレコードに格納されているデータ、即ち、ファイル名「wbsvc1」、許諾データ「有り」、有効期限データ「なし」、処理データ「停止」および状態データ「停止」を読み出すと、アプリケーションプログラムを起動することが許可されているか否かを判断する（ステップＳＡ４）。読み出したデータの場合、許諾データが「有り」であり、有効期限データが「無し」であるので、ＣＰＵ１０２は、読み出したファイル名で特定されるプログラムの起動が許可されていると判断する（ステップＳＡ４；ＹＥＳ）。ＣＰＵ１０２は、ステップＳＡ４でＹＥＳと判断すると、読み出したファイル名で特定されるプログラムをＮＶＲＡＭ１０５から読み出す（ステップＳＡ５）。この後、ＣＰＵ１０２は、レコード番号が「２」であるレコードに格納されているリソース情報「hd:/hd0,mem:100MB,tcp:80;8000,iit:iit1,iot:iot1」を、リソース情報テーブルＴＢ２Ｂから読み出す（ステップＳＡ６）。
【００４３】
次にＣＰＵ１０２は、読み出した許諾データが「試用」であるか否かを判断する（ステップＳＡ７）。読み出した許諾データは「試用」ではないので（ステップＳＡ７；ＮＯ）、ＣＰＵ１０２は、リソース情報を引数として、読み出したプログラムを起動する（ステップＳＡ９）。ＣＰＵ１０２は、リソース情報が「hd:/hd0,mem:100MB,tcp:80;8000,iit:iit1,iot:iot1」であるので、ハードディスク装置１１１の/hd0を、アプリケーションプログラムの作業領域としてメモリ「１００ＭＢ」を割当てる。また、クライアントからの要求受信待ちポート番号としてＴＣＰの「８０」と「８０００」を割当てる。また、画像の入力を行うハードウェア資源として画像入力部１１２が具備するイメージスキャナ/iit1を割当て、画像の出力を行うハードウェア資源として印刷部１０９の/iot1を割当てる。
【００４４】
ＣＰＵ１０２は、アプリケーションプログラムを起動すると、引数としたリソース情報でアプリケーションプログラムが正常に起動したか否かを示すステータス情報を生成し、このステータス情報をＲＡＭ１０４に記憶させる（ステップＳＡ１０）。ＣＰＵ１０２は、先に起動したアプリケーションプログラムにはポート番号を割当てておらず、ポート番号の競合が発生しないので、ステータス情報として「正常」を生成する。
【００４５】
この後、ＣＰＵ１０２は、起動したプログラムのファイル名「wbsvc1」と、ステータス情報「正常」と、起動した日付を示すデータ「2003/12/18」とを対応付け、起動成否データとしてハードディスク装置１１１に記憶させる（ステップＳＡ１１）。次にＣＰＵ１０２は、ステータス情報に応じて、構成情報テーブルＴＢ１Ｂの状態データを書き換える（ステップＳＡ１２）。ＣＰＵ１０２は、ファイル名が「wbsvc1」であるアプリケーションプログラムを正常に起動したので、構成情報テーブルＴＢ１Ｂのデータのうち、レコード番号が「２」のレコードの状態データを「起動」に書き換える。
【００４６】
次にＣＰＵ１０２は、ステータス情報を参照し、アプリケーションプログラムが正常に起動したか否かを判断する（ステップＳＡ１３）。前述したようにＣＰＵ１０２は、アプリケーションプログラムを正常に起動したので、ステップＳＡ１３でＹＥＳと判断し、次に、構成情報テーブルＴＢ１Ｂに格納されているレコードを全て読み出したか否かを判断する（ステップＳＡ１４）。図７に示したように、構成情報テーブルＴＢ１Ｂにおいて、次のレコード、即ち、レコード番号が「３」であるレコードにはデータが格納されていないので、ＣＰＵ１０２は、構成情報テーブルＴＢ１Ｂに格納されているデータを全て読み出したと判断する（ステップＳＡ１４；ＹＥＳ）。
【００４７】
ＣＰＵ１０２は、ステップＳＡ１４でＹＥＳと判断すると、構成情報テーブルＴＢ１Ｂと、リソース情報テーブルＴＢ２Ｂと、日付を示すデータ「2003/12/18」とを対応付けて、ログデータとしてハードディスク装置１１１に記憶する（ステップＳＡ１６）。
【００４８】
この後、ＣＰＵ１０２は制御プログラムの実行を終了し、次に図１０に例示した処理を実行する。ＣＰＵ１０２は、通信部１０６が、文書を示すデータと、このデータで示される文書を印刷する旨の指示を受信した場合には（ステップＳＢ１；ＹＥＳ）、文書を印刷する機能を実現しているアプリケーションにより受信したデータを処理し、印刷部１０９を制御して、受信したデータが示す文書を印刷する（ステップＳＢ３）。ＣＰＵ１０２は、Ｕ／Ｉ部１０７が操作され、構成情報またはリソース情報を変更する旨の指示が入力された場合には（ステップＳＢ１；ＹＥＳ）、構成情報またはリソース情報を変更するためのメニュー画面を表示し、使用者が入力した操作に応じて、構成情報またはリソース情報を変更する（ステップＳＢ３）。また、ＣＰＵ１０２は、ＩＣカード２００がＩＣカードＩ／Ｆ部１１０に装着された場合には（ステップＳＢ１；ＹＥＳ）、制御プログラムを起動し、図７に例示した処理を実行する（ステップＳＢ２）。
【００４９】
［Ｂ−２．ＩＣカード２００が複合機１００に装着された時の動作］
次に、複合機１００にＩＣカード２００が装着された際の動作について説明する。なお、以下の説明においては、上述した動作が既に行われている場合を想定する。また、以下の説明においては、ＩＣカード２００を複合機１００に装着した時、日付を示すデータとして「2003/12/20」がＲＡＭ１０４に記憶されている場合を想定する。また、以下の説明においては、複合機１００の管理者がＰＣ７００を操作し、ＩＣカード２００に、図１１に示した構成情報と、図１２に示したリソース情報とを記憶させた場合を想定する。
【００５０】
ＣＰＵ１０２は、ＩＣカード２００がＩＣカードＩ／Ｆ部１１０に装着されると（ステップＳＢ１；ＹＥＳ）、制御プログラムを起動する（ステップＳＢ２）。ＣＰＵ１０２は、制御プログラムを起動すると、ＩＣカードＩ／Ｆ部１１０を制御し、ＩＣカード２００がＩＣカードＩ／Ｆ部１１０に装着されているか否かを判断する（図９：ステップＳＡ１）。ＣＰＵ１０２は、ステップＳＡ２でＹＥＳと判断すると、図９に例示した処理を行う（ステップＳＡ１７）。
【００５１】
まず、ＣＰＵ１０２は、ＩＣカードＩ／Ｆ部１１０を制御し、ＩＣカード２００が記憶している構成情報テーブルＴＢ１Ａのプログラムフィールドに格納されているファイル名を全て読み出す（ステップＳＣ１）。次に、ＣＰＵ１０２は、ハードディスク装置１１１が記憶している構成情報テーブルＴＢ１Ｂのプログラムフィールドに格納されているファイル名を全て読み出し、構成情報テーブルＴＢ１Ａから読み出したファイル名と比較する（ステップＳＣ２）。この比較の結果、構成情報テーブルＴＢ１Ａに格納されているファイル名のうち、構成情報テーブルＴＢ１Ｂに格納されていないファイル名がある場合には（ステップＳＣ３；ＹＥＳ）、このファイル名で特定されるアプリケーションプログラムをダウンロードする必要があるとして、このファイル名の格納先を示すＵＲＬを構成情報テーブルＴＢ１Ａから読み出す。図１１に示したように、構成情報テーブルＴＢ１Ａには、構成情報テーブルＴＢ１Ｂに格納されていないファイル名「wbsvc2」があるので、ＣＰＵ１０２は、このファイル名に対応付けて格納されているＵＲＬ「https://dl.xxx.co.jp/apl/websvc2.bin」を読み出す（ステップＳＣ４）。
【００５２】
ＣＰＵ１０２は、ＵＲＬを読み出すと、このＵＲＬをパラメータとして含む、プログラムの要求メッセージを送信する（ステップＳＣ５）。この要求メッセージは、イントラネット６００、ファイアウォールサーバ装置４００およびインターネット５００を介して、サーバ装置３００に送信される。サーバ装置３００は、要求メッセージを受信すると、このメッセージにパラメータとして含まれているＵＲＬで特定されるプログラムを読み出し、読み出したプログラムを含む応答メッセージを生成して、この応答メッセージをＰＣ７００を宛先として送信する。この応答メッセージが複合機１００の通信部１０６にて受信されると、ＣＰＵ１０２は、この応答メッセージに含まれているプログラムを抽出し、抽出したプログラムをＮＶＲＡＭ１０５に記憶させる（ステップＳＣ６）。
【００５３】
この後、ＣＰＵ１０２は、ステップＳＡ２に戻り、ＲＡＭ１０４から現在の日付を示すデータ「2003/12/20」を読み出す。次にＣＰＵ１０２は、ＩＣカード２００がＩＣカードＩ／Ｆ部１１０に装着されているので、ＩＣカード２００が記憶している構成情報テーブルＴＢ１Ａにおいて、レコード番号「１」のレコードに格納されているデータ、即ち、ファイル名「print」、許諾データ「試用」、有効期限データ「2003/12/19」、処理データ「削除」および状態データ「停止」を読み出す（ステップＳＡ３）。
【００５４】
次にＣＰＵ１０２は、読み出したファイル名で特定されるアプリケーションプログラムを起動することが許可されているか否かを判断する（ステップＳＡ４）。構成情報テーブルＴＢ１Ａから読み出したデータの場合、許諾データが「有り」であり、有効期限データが示す日付「2003/12/19」がＲＡＭ１０４から読み出した日付データが示す日付「2003/12/20」より前の日付なので、ＣＰＵ１０２は、読み出したファイル名で特定されるプログラムの起動が許可されていないと判断する（ステップＳＡ４；ＮＯ）。
【００５５】
ＣＰＵ１０２は、ステップＳＡ４でＮＯと判断すると、図１４に示した処理を行い、起動が許可されていないプログラムを停止または削除するか否かを判断する（ステップＳＡ１８）。ＣＰＵ１０２は、構成情報テーブルＴＢ１Ｂを参照し、起動が許可されていないと判断したアプリケーションプログラムが実行中であるか否かを判断する（ステップＳＤ１）。読み出したファイル名「print」に対応付けて、構成情報テーブルＴＢ１Ｂに格納されている状態データは、上述した動作により「起動」となっているので、ＣＰＵ１０２は、起動が許可されていないと判断したアプリケーションプログラムが実行中であると判断する（ステップＳＤ１；ＹＥＳ）。ＣＰＵ１０２は、ステップＳＤ１でＹＥＳと判断すると、プログラム「print」の実行を停止する（ステップＳＤ２）。
【００５６】
次にＣＰＵ１０２は、構成情報テーブルＴＢ１Ａから読み出した処理データを用い、起動が許可されていないと判断したアプリケーションプログラムをＮＶＲＡＭ１０５から消去するか否かを判断する（ステップＳＤ３）。構成情報テーブルＴＢ１Ａから読み出した処理データは「削除」であるので、ＣＰＵ１０２は、ステップＳＤ３でＹＥＳと判断し、ファイル名が「print」であるアプリケーションプログラムをＮＶＲＡＭ１０５から消去する（ステップＳＤ４）。ＣＰＵ１０２は、図１４に示した処理を終了すると、ステップＳＡ１４の処理を行う。
【００５７】
ＣＰＵ１０２は、ステップＳＡ１４において、構成情報テーブルＴＢ１Ａに格納されているレコードを全て読み出したか否かを判断する。図７に示したように、ステップＳＡ３で読み出したレコードの次のレコード（レコード番号「２」のレコード）には、データが格納されているため、ＣＰＵ１０２は、ステップＳＡ１４でＹＥＳと判断し、読み出したレコードの次のレコードに格納されているデータ（レコード番号「２」のレコードに格納されているデータ）を、構成情報テーブルＴＢ１Ａから読み出し（ステップＳＡ１５）、ステップＳＡ４へ戻る。
【００５８】
次にＣＰＵ１０２は、レコード番号が「２」のレコードに格納されているデータ、即ち、ファイル名「wbsvc1」、許諾データ「有り」、有効期限データ「なし」、処理データ「停止」および状態データ「停止」を読み出すと、アプリケーションプログラムを起動することが許可されているか否かを判断する（ステップＳＡ４）。読み出したデータの場合、許諾データが「有り」であり、有効期限データが「無し」であるので、ＣＰＵ１０２は、読み出したファイル名で特定されるプログラムの起動が許可されていると判断する（ステップＳＡ４；ＹＥＳ）。ＣＰＵ１０２は、ステップＳＡ４でＹＥＳと判断すると、読み出したファイル名で特定されるプログラムをＮＶＲＡＭ１０５から読み出す（ステップＳＡ５）。この後、ＣＰＵ１０２は、レコード番号が「２」であるレコードに格納されているリソース情報「hd:/hd0,mem:100MB,tcp:80;8000,iit:iit1,iot:iot1」を、リソース情報テーブルＴＢ２Ｂから読み出す（ステップＳＡ６）。
【００５９】
次にＣＰＵ１０２は、読み出した許諾データが「試用」であるか否かを判断する（ステップＳＡ７）。読み出した許諾データは「試用」ではないので（ステップＳＡ７；ＮＯ）、ＣＰＵ１０２は、リソース情報を引数として、読み出したプログラムを起動する（ステップＳＡ９）。ＣＰＵ１０２は、リソース情報が「hd:/hd0,mem:100MB,tcp:80;8000,iit:iit1,iot:iot1」であるので、ハードディスク装置１１１の/hd0を、アプリケーションプログラムの作業領域としてメモリ「１００ＭＢ」を割当てる。また、クライアントからの要求受信待ちポート番号としてＴＣＰの「８０」と「８０００」を割当てる。また、画像の入力を行うハードウェア資源として画像入力部１１２が具備するイメージスキャナ/iit1を割当て、画像の出力を行うハードウェア資源として印刷部１０９の/iot1を割当てる。
【００６０】
ＣＰＵ１０２は、アプリケーションプログラムを起動すると、引数としたリソース情報でアプリケーションプログラムが正常に起動したか否かを示すステータス情報を生成し、このステータス情報をＲＡＭ１０４に記憶させる（ステップＳＡ１０）。ＣＰＵ１０２は、先にアプリケーションプログラム起動しておらず、他のアプリケーションにはポート番号を割当てていないので、ステータス情報として「正常」を生成する。
【００６１】
この後、ＣＰＵ１０２は、起動したプログラムのファイル名「wbsvc1」と、ステータス情報「正常」と、起動した日付を示すデータ「2003/12/20」とを対応付け、起動成否データとしてハードディスク装置１１１に記憶させる（ステップＳＡ１１）。次にＣＰＵ１０２は、ステータス情報に応じて、構成情報テーブルＴＢ１Ａの状態データを書き換える（ステップＳＡ１２）。本動作例において、ＣＰＵ１０２は、ファイル名が「wbsvc1」であるアプリケーションプログラムを正常に起動したので、構成情報テーブルＴＢ１Ａのデータのうち、レコード番号が「２」のレコードの状態データを「起動」に書き換える。
【００６２】
次に、ＣＰＵ１０２は、構成情報テーブルＴＢ１Ａに格納されているレコードを全て読み出したか否かを判断する（ステップＳＡ１４）。図７に示したように、ステップＳＡ３で読み出したレコードの次のレコード（レコード番号「３」のレコード）には、データが格納されているため、ＣＰＵ１０２は、ステップＳＡ１４でＹＥＳと判断し、読み出したレコードの次のレコードに格納されているデータ（レコード番号「３」のレコードに格納されているデータ）を、構成情報テーブルＴＢ１Ａから読み出し（ステップＳＡ１５）、ステップＳＡ４へ戻る。
【００６３】
次にＣＰＵ１０２は、レコード番号が「３」のレコードに格納されているデータ、即ち、ファイル名「wbsvc2」、許諾データ「有り」、有効期限データ「なし」、処理データ「停止」および状態データ「停止」を読み出すと、アプリケーションプログラムを起動することが許可されているか否かを判断する（ステップＳＡ４）。読み出したデータの場合、許諾データが「有り」であり、有効期限データが「無し」であるので、ＣＰＵ１０２は、読み出したファイル名で特定されるプログラムの起動が許可されていると判断する（ステップＳＡ４；ＹＥＳ）。ＣＰＵ１０２は、ステップＳＡ４でＹＥＳと判断すると、読み出したファイル名で特定されるプログラムをＮＶＲＡＭ１０５から読み出す（ステップＳＡ５）。この後、ＣＰＵ１０２は、レコード番号が「３」であるレコードに格納されているリソース情報「hd:/hd0,mem:50MB,tcp:80;8000,iit:iit1,iot:iot1」を、リソース情報テーブルＴＢ２Ａから読み出す（ステップＳＡ６）。
【００６４】
次にＣＰＵ１０２は、読み出した許諾データが「試用」であるか否かを判断する（ステップＳＡ７）。読み出した許諾データは「試用」ではないので（ステップＳＡ７；ＮＯ）、ＣＰＵ１０２は、リソース情報を引数として、読み出したプログラムを起動する（ステップＳＡ９）。ＣＰＵ１０２は、リソース情報が「hd:/hd0,mem:50MB,tcp:80;8000,iit:iit1,iot:iot1」であるので、ハードディスク装置１１１の/hd0を、アプリケーションプログラムの作業領域としてメモリ「５０ＭＢ」を割当てる。また、クライアントからの要求受信待ちポート番号としてＴＣＰの「８０」と「８０００」を割当てる。また、画像の入力を行うハードウェア資源として画像入力部１１２が具備するイメージスキャナ/iit1を割当て、画像の出力を行うハードウェア資源として印刷部１０９の/iot1を割当てる。
【００６５】
ＣＰＵ１０２は、アプリケーションプログラムを起動すると、引数としたリソース情報でアプリケーションプログラムが正常に起動したか否かを示すステータス情報を生成し、このステータス情報をＲＡＭ１０４に記憶させる（ステップＳＡ１０）。ＣＰＵ１０２は、クライアントからの要求受信ポート番号としてＴＣＰの「８０」と「８０００」を割当てて起動しようとする。しかしながら、ポート番号「８０」と「８０００」は、ファイル名が「wbsvc1」であるアプリケーションプログラムに割当てたので、ＣＰＵ１０２は、アプリケーションプログラムを起動すると、ポート番号が競合して異常が発生すると判断し、ステータス情報として「異常」を生成し、プログラムの起動を中止する。
【００６６】
この後、ＣＰＵ１０２は、起動を試みたプログラムのファイル名「wbsvc2」と、ステータス情報「異常」と、起動を試みた日付を示すデータ「2003/12/20」とを対応付け、起動成否データとしてハードディスク装置１１１に記憶させる（ステップＳＡ１１）。次にＣＰＵ１０２は、ステータス情報に応じて、構成情報テーブルＴＢ１Ａの状態データを書き換える（ステップＳＡ１２）。ＣＰＵ１０２は、アプリケーションプログラムを起動していないので、状態データは「停止」に書き換えられる。
【００６７】
次にＣＰＵ１０２は、ステータス情報を参照し、アプリケーションプログラムが正常に起動したか否かを判断する（ステップＳＡ１３）。前述したようにＣＰＵ１０２は、アプリケーションプログラムを起動していないので、ステップＳＡ１３でＮＯと判断し、図１５に例示した処理を行う。
まず、ＣＰＵ１０２は、Ｕ／Ｉ部１０７が具備する液晶ディスプレイを制御し、アプリケーションプログラムの起動を停止したことを示すメッセージを表示する（ステップＳＥ１）。次にＣＰＵ１０２は、ＩＣカード２００が記憶している構成情報およびリソース情報と、ハードディスク装置１１１が記憶している、正常に起動した時のログデータ、即ち、正常に起動した時の構成情報およびリソース情報とを比較し、ＩＣカード２００が記憶している構成情報およびリソース情報と、同じ構成情報およびリソース情報で過去に起動したことがあるか否かを判断する（ステップＳＥ２）。
ＩＣカード２００が記憶している構成情報およびリソース情報と同じ構成情報およびリソース情報とがログデータとしてハードディスク装置１１１に記憶されていない場合（ステップＳＥ２；ＮＯ）、ＣＰＵ１０２は、アプリケーションプログラムを正常に起動できなかった理由がリソース情報によるものではないとする。ＣＰＵ１０２は、Ｕ／Ｉ部１０７の液晶ディスプレイを制御し、アプリケーションプログラムを正常に起動できなかった理由がリソース情報によるものではないことを表示する（ステップＳＥ３）。
【００６８】
本動作例においては、ハードディスク装置１１１には、ＩＣカード２００が複合機１００に装着されていない時の動作により記憶された構成情報およびリソース情報しか記憶されていないため、ＣＰＵ１０２は、構成情報テーブルＴＢ１Ａに格納されている構成情報と同じ構成情報で過去に起動したことがないと判断する（ステップＳＥ２；ＹＥＳ）。ＣＰＵ１０２は、ステップＳＥ２でＹＥＳと判断すると、Ｕ／Ｉ部１０７の液晶ディスプレイを制御し、図１６に例示した画面を表示して、過去に正常に起動した時の構成情報およびリソース情報で複合機１００を動作させるか、ＩＣカード２００の構成情報およびリソース情報を変更するかを、複合機１００の使用者に選択させる（ステップＳＥ４）。
【００６９】
複合機１００の使用者が、Ｕ／Ｉ部１０７が具備するタッチパネルを操作し、過去に正常に起動した時の構成情報およびリソース情報で複合機１００を動作させることを選択すると（ステップＳＥ４；ＹＥＳ）、ＣＰＵ１０２は、Ｕ／Ｉ部１０７が具備する液晶ディスプレイを制御し、図１７に例示したように、過去に正常に起動した構成情報およびリソース情報の一覧画面を表示し、過去に正常に起動した構成情報を使用者に選択させる（ステップＳＥ５）。
【００７０】
複合機１００の使用者によりＵ／Ｉ部１０７が具備するタッチパネルが操作され、過去に正常に起動した時の構成情報およびリソース情報とが選択されると（ステップＳＥ６；ＹＥＳ）、ＣＰＵ１０２は、選択された構成情報およびリソース情報とを、新たに、構成情報テーブルＴＢ１Ｂ、リソース情報テーブルＴＢ２Ｂとして記憶する。この後、ＣＰＵ１０２は、実行中のアプリケーションプログラムを終了し、終了したアプリケーションプログラムに割当てたリソースを解放して（ステップＳＥ９）、ステップＳＡ２に戻り、ＩＣカード２００が記憶している構成情報およびリソース情報ではなく、ハードディスク装置１１１に新たに記憶した構成情報およびリソース情報に従って、アプリケーションプログラムを起動させる。新たに記憶した構成情報およびリソース情報は、過去に正常に起動した時の情報なので、ＣＰＵ１０２は、アプリケーションプログラムを正常に起動することができる。
【００７１】
図１６に示した画面が表示されている状態において、複合機１００の使用者が、Ｕ／Ｉ部１０７が具備するタッチパネルを操作し、ＩＣカード２００の構成情報およびリソース情報を変更することを選択すると（ステップＳＥ４；ＮＯ）、ＣＰＵ１０２は、Ｕ／Ｉ部１０７が具備する液晶ディスプレイを制御し、ＩＣカード２００が記憶している構成情報およびリソース情報を表示する。複合機１００の使用者がＵ／Ｉ部１０７を操作し、表示された構成情報またはリソース情報を変更する旨の操作が行われると、ＣＰＵ１０２は、変更された情報を構成情報テーブルＴＢ１Ａとリソース情報テーブルＴＢ２Ａとに格納する（ステップＳＥ７）。
この後、Ｕ／Ｉ部１０７が具備するタッチパネルが操作され、アプリケーションプログラムの再起動を指示する旨の操作が行われると（ステップＳＥ８；ＹＥＳ）、ＣＰＵ１０２は、変更された構成情報およびリソース情報で、アプリケーションプログラムを起動させることを試みる。
なお、修正された構成情報およびリソース情報でアプリケーションプログラムを再起動させる際、複数のレコードの構成情報とリソース情報が修正されている場合には、ＣＰＵ１０２は、実行中のアプリケーションプログラムを終了し、終了したアプリケーションプログラムに割当てたリソースを解放して、ステップＳＡ２に戻るようにしてもよい。また、一部の構成情報やリソース情報のみが修正されている場合には、修正された構成情報やリソース情報が格納されているレコードのみを読み出して、アプリケーションプログラムを起動させることを試みるようにしてもよい。
また、ステップＳＥ７において、ＩＣカード２００が記憶している情報を表示させる際、リソース情報のみを表示させるようにしてもよい。これは、リソースの競合を確認し、リソース情報を変更するためであれば、リソース情報だけでも足りるからである。
このように、本実施形態によれば、アプリケーションプログラムを起動する際、構成情報やリソース情報が原因でアプリケーションプログラムを起動できなかった場合でも、複合機１００の使用者は、構成情報やリソース情報を修正できるため、装置が正しく動作しなくなるという事態を回避することができる。
また、本実施形態によれば、ＩＣカード２００に構成情報およびリソース情報を記憶させ、この構成情報とリソース情報とで複合機１００にアプリケーションプログラムを起動させる。複合機１００などの装置は、マウスやキーボードを具備していないため、記憶している構成情報やリソースデータの入力や変更などが容易に行えない。しかしながら、ＩＣカード２００においては、ＰＣ７００とＩＣカードリーダ８００とを用いることにより、構成情報やリソースデータを容易に変更することができるので、起動させるアプリケーションプログラムを容易に変更することができる。
【００７２】
［Ｃ．変形例］
以上、本発明の一実施形態について説明したが、本発明は上述した実施形態に限定されることなく、他の様々な形態で実施可能である。例えば、上述の実施形態を以下のように変形して本発明を実施してもよい。
【００７３】
上述した実施形態では、ＩＣカード２００が構成情報およびリソース情報を記憶しているが、構成情報およびリソース情報を記憶するのは、ＩＣカード２００に限定されるものではない。コンピュータ装置によりデータの読み出しおよび書込みをすることが可能な記録媒体であれば、フレキシブルディスクやＣＤ−ＲＷ（Compact Disk ReWritable）など、他の記録媒体であってもよい。
【００７４】
構成情報およびリソース情報に従ってアプリケーションプログラムを起動するのは、上述した複合機１００に限定されるものではなく、例えば、ＡＶ（Audio Visual）機器や家電製品などの装置であってもよい。
【００７５】
上述した実施形態では、構成情報とリソース情報は、個々に構成情報テーブルとリソース情報テーブルに格納しているが、リソース割当てフィールドを構成情報テーブルに設け、一つのテーブルに構成情報とリソース情報とを格納するようにしてもよい。
【００７６】
ＰＣ７００において、制御プログラムを実行することにより行われる処理をシミュレートするプログラムを実行させ、ＩＣカード２００を複合機１００に装着する前に、複合機１００の動作に近い形で構成情報およびリソース情報をチェックするようにしてもよい。
【００７７】
上述した実施形態では、ログデータはハードディスク装置１１１に複数記憶されるが、最新のログデータのみをハードディスク装置１１１に記憶させるようにしてもよい。
【００７８】
構成情報テーブルＴＢ１Ｂには、プログラム名のみを格納するようにし、プログラムの起動が許可されているか否かを判定せずに、プログラムを起動させるようにしてもよい。
【００７９】
上述した実施形態では、ＣＰＵ１０２は、リソースの競合を監視する際、ポート番号やメモリなどのリソースを監視しているが、監視するリソースは、これらに限定されるものではない。例えば、画像入力部１１２が具備するイメージスキャナなどの入力装置や印刷部１０９などの出力装置、外部の装置との通信に使用する入出力端子など、他のリソースの競合も監視するようにしてもよい。
【図面の簡単な説明】
【００８０】
【図１】本発明の一実施形態に係る通信システムの全体構成を例示する図である。
【図２】ＩＣカード２００が記憶している構成情報テーブルＴＢ１Ａのフォーマットを例示する図である。
【図３】ＩＣカード２００が記憶しているリソース情報テーブルＴＢ２Ａのフォーマットを例示する図である。
【図４】複合機１００のハードウェア構成を例示するブロック図である。
【図５】ハードディスク装置１１１が記憶している構成情報テーブルＴＢ１Ｂのフォーマットを例示する図である。
【図６】ハードディスク装置１１１が記憶しているリソース情報テーブルＴＢ２Ｂのフォーマットを例示する図である。
【図７】ハードディスク装置１１１が記憶している構成情報テーブルＴＢ１Ｂのフォーマットを例示する図である。
【図８】ハードディスク装置１１１が記憶しているリソース情報テーブルＴＢ２Ｂのフォーマットを例示する図である。
【図９】ＣＰＵ１０２が行う処理の流れを例示するフローチャートである。
【図１０】ＣＰＵ１０２が行う処理の流れを例示するフローチャートである。
【図１１】ＩＣカード２００が記憶している構成情報を例示する図である。
【図１２】ＩＣカード２００が記憶しているリソース情報を例示する図である。
【図１３】ＣＰＵ１０２が行う処理の流れを例示するフローチャートである。
【図１４】ＣＰＵ１０２が行う処理の流れを例示するフローチャートである。
【図１５】ＣＰＵ１０２が行う処理の流れを例示するフローチャートである。
【図１６】Ｕ／Ｉ部１０７に表示される画面を例示する図である。
【図１７】Ｕ／Ｉ部１０７に表示される画面を例示する図である。
【符号の説明】
【００８１】
１００・・・複合機、１０１・・・バス、１０２・・・ＣＰＵ、１０３・・・ＲＯＭ、１０４・・・ＲＡＭ、１０５・・・ＮＶＲＡＭ、１０６・・・通信部、１０７・・・Ｕ／Ｉ部、１０８・・・ページメモリ、１０９・・・印刷部、１１０・・・ＩＣカードＩ／Ｆ部、１１１・・・ハードディスク装置、２００・・・ＩＣカード、３００・・・サーバ装置、４００・・・ファイアウォールサーバ装置、５００・・・インターネット、６００・・・イントラネット、７００・・・ＰＣ、８００・・・ＩＣカードリーダ、ＴＢ１Ａ・・・構成情報テーブル、ＴＢ２Ａ・・・リソース情報テーブル、ＴＢ１Ｂ・・・構成情報テーブル、ＴＢ２Ｂ・・・リソース情報テーブル。
【図１】
2005108139.tif 000003
【図２】
2005108139.tif 000004
【図３】
2005108139.tif 000005
【図４】
2005108139.tif 000006
【図５】
2005108139.tif 000007
【図６】
2005108139.tif 000008
【図７】
2005108139.tif 000009
【図８】
2005108139.tif 000010
【図９】
2005108139.tif 000011
【図１０】
2005108139.tif 000012
【図１１】
2005108139.tif 000013
【図１２】
2005108139.tif 000014
【図１３】
2005108139.tif 000015
【図１４】
2005108139.tif 000016
【図１５】
2005108139.tif 000017
【図１６】
2005108139.tif 000018
【図１７】
2005108139.tif 000019