(57)【要約】【課題】プログラムを実行する際に処理装置において不正な処理が行われるのを防止する。【解決手段】複合機１に、ユーザごとにプログラムＰＧについての使用の許否を示す使用許否情報７５を記憶するデータベース１０６と、ユーザが複合機１に対して実行させたい処理の指定を受け付けるタッチパネルと、その指定に係る処理を複合機１に実行させるためのプログラムＰＧの使用がその指定を行ったユーザに対して認められているか否かを、そのユーザの使用許否情報７５に基づいて判別するＡＰＩコール制御部１０２と、使用が認められると判別された場合はそのプログラムＰＧに従って処理を実行するように処理実行部１０１を制御し、認められていないと判別された場合はそのプログラムＰＧに基づく処理を行わないように処理実行部１０１を制御する、ＡＰＩ管理部１０３と、を設ける。【選択図】図３
2005094079.tif 000002
【特許請求の範囲】
【請求項１】
スキャン、印刷、コピー、ＦＡＸの送受信、ファイルの送受信、およびドキュメント管理をそれぞれ行う複数の処理手段のうち少なくとも２つの処理手段を有する複合機であって、
前記処理手段に処理を実行させるためのプログラムについての使用の許否を示す使用許否情報をユーザごとに記憶する使用許否情報記憶手段と、
ユーザが前記処理手段に対して実行させたい処理の指定を受け付ける指定受付手段と、
前記指定に係る処理を前記処理手段に実行させるための前記プログラムの使用が当該指定を行ったユーザに対して認められているか否かを当該ユーザの前記使用許否情報に基づいて判別する使用許否判別手段と、
前記使用許否判別手段によって前記プログラムの使用が認められていると判別された場合は当該プログラムに従って処理を実行するように前記処理手段を制御し、認められていないと判別された場合は当該プログラムに基づく処理を行わないように前記処理手段を制御する、制御手段と、
を有することを特徴とする複合機。
【請求項２】
スキャン、印刷、コピー、ＦＡＸの送受信、ファイルの送受信、およびドキュメント管理をそれぞれ行う複数の処理手段のうち少なくとも２つの処理手段を有する複合機であって、
前記処理手段が有する機能についての使用の許否を示す使用許否情報をユーザごとに記憶する使用許否情報記憶手段と、
ユーザが前記処理手段に対して実行させたい処理の指定を受け付ける指定受付手段と、
前記指定に係る処理を前記処理手段に実行させるための前記プログラムに含まれるコードに対応する前記機能の使用が当該指定を行ったユーザに対して認められているか否かを当該ユーザの前記使用許否情報に基づいて判別する使用許否判別手段と、
前記プログラムに含まれるコードに対応する前記機能の使用が認められていると前記使用許否判別手段によって判別された場合は当該機能を呼び出して処理を実行するように前記処理手段を制御し、認められていないと判別された場合は当該プログラムに基づく処理を中止するように前記処理手段を制御する、制御手段と、
を有することを特徴とする複合機。
【請求項３】
前記指定に係る処理を前記処理手段に実行させるための前記プログラムに含まれるコードに対応する前記機能が所定のデータの更新を行うものである場合に、当該更新を行ってもよいか否かの選択を受け付ける選択受付手段を有し、
前記制御手段は、前記指定に係る処理を前記処理手段に実行させるための前記プログラムに含まれるコードに対応する前記機能が所定のデータの更新を行うものでありかつ前記選択受付手段によって当該更新を行ってもよい旨が受け付けられた場合は当該機能を呼び出して処理を実行するように前記処理手段を制御し、そうでない場合は当該機能を呼び出して処理を実行するのを中止するように前記処理手段を制御する、
請求項２記載の複合機。
【請求項４】
スキャン、印刷、コピー、ＦＡＸの送受信、ファイルの送受信、およびドキュメント管理をそれぞれ行う複数の処理手段のうち少なくとも２つの処理手段を有する複合機であって、
前記処理手段に処理を実行させるためのプログラムの中に記述される、前記処理手段が有する機能を呼び出すためのコードについての、使用の許否を示す、使用許否情報をユーザごとに記憶する、使用許否情報記憶手段と、
ユーザが前記処理手段に対して実行させたい処理の指定を受け付ける指定受付手段と、
前記指定に係る処理を前記処理手段に実行させるための前記プログラムに含まれるコードの使用が当該指定を行ったユーザに対して認められているか否かを当該ユーザの前記使用許否情報に基づいて判別する使用許否判別手段と、
前記プログラムに含まれるコードの使用が認められていると前記使用許否情報記憶手段によって判別された場合は当該コードに対応する前記機能を呼び出して処理を実行するように前記処理手段を制御し、認められていないと判別された場合は当該プログラムに基づく処理を中止するように前記処理手段を制御する、制御手段と、
を有することを特徴とする複合機。
【請求項５】
スキャン、印刷、コピー、ＦＡＸの送受信、ファイルの送受信、およびドキュメント管理をそれぞれ行う複数の処理手段のうち少なくとも２つの処理手段を有する１台または複数台の複合機とサーバとがネットワークを介して互いに接続されるように構成されたネットワークシステムであって、
前記サーバには、
前記処理手段に処理を実行させるためのプログラムについての使用の許否を示す使用許否情報をユーザごとに記憶する使用許否情報記憶手段と、
要求されたユーザの前記使用許否情報を要求元の前記複合機に送信する送信手段と、が設けられ、
前記複合機には、
当該複合機のユーザの前記使用許否情報を前記サーバより取得する使用許否情報取得手段と、
当該複合機のユーザに対して使用が認められている前記プログラムを識別する識別情報を、前記使用許否情報取得手段によって取得された当該ユーザの前記使用許否情報に基づいて表示する表示手段と、
前記表示手段によって表示された前記識別情報の中から当該複合機のユーザが選択した識別情報に対応する前記プログラムに従って処理を実行するように前記処理手段を制御する制御手段と、設けられ、
てなることを特徴とするネットワークシステム。
【請求項６】
スキャン、印刷、コピー、ＦＡＸの送受信、ファイルの送受信、およびドキュメント管理をそれぞれ行う複数の処理手段のうち少なくとも２つの処理手段を有する１台または複数台の複合機とサーバとがネットワークを介して互いに接続されるように構成されたネットワークシステムであって、
前記サーバには、
前記処理手段が有する機能についての使用の許否を示す使用許否情報をユーザごとに記憶する使用許否情報記憶手段と、
要求されたユーザの前記使用許否情報を要求元の前記複合機に送信する送信手段と、が設けられ、
前記複合機には、
当該複合機のユーザの前記使用許否情報を前記サーバより取得する使用許否情報取得手段と、
当該複合機のユーザが前記処理手段に対して実行させたい処理の指定を受け付ける指定受付手段と、
前記指定に係る処理を前記処理手段に実行させるための前記プログラムに含まれるコードに対応する前記機能の使用が当該指定を行ったユーザに対して認められているか否かを、前記使用許否情報取得手段によって取得された当該ユーザの前記使用許否情報に基づいて判別する使用許否判別手段と、
前記プログラムに含まれるコードに対応する前記機能の使用が認められていると前記使用許否判別手段によって判別された場合は当該機能を呼び出して処理を実行するように前記処理手段を制御し、認められていないと判別された場合は当該プログラムに基づく処理を中止するように前記処理手段を制御する、制御手段と、が設けられ、
てなることを特徴とするネットワークシステム。
【請求項７】
前記複合機には、
前記指定に係る処理を前記処理手段に実行させるための前記プログラムに含まれるコードに対応する前記機能が所定のデータの更新を行うものである場合に、当該更新を行ってもよいか否かの選択を受け付ける選択受付手段が設けられ、
前記制御手段は、前記指定に係る処理を前記処理手段に実行させるための前記プログラムに含まれるコードに対応する前記機能が所定のデータの更新を行うものでありかつ前記選択受付手段によって当該更新を行ってもよい旨が受け付けられた場合は当該機能を呼び出して処理を実行するように前記処理手段を制御し、そうでない場合は当該更新を中止するように前記処理手段を制御する、
請求項６記載のネットワークシステム。
【請求項８】
スキャン、印刷、コピー、ＦＡＸの送受信、ファイルの送受信、およびドキュメント管理をそれぞれ行う複数の処理手段のうち少なくとも２つの処理手段を有する１台または複数台の複合機とサーバとがネットワークを介して互いに接続されるように構成されたネットワークシステムであって、
前記サーバには、
前記処理手段に処理を実行させるためのプログラムの中に記述される、前記処理手段が有する機能を呼び出すためのコードについての、使用の許否を示す、使用許否情報をユーザごとに記憶する、使用許否情報記憶手段と、
要求されたユーザの前記使用許否情報を要求元の前記複合機に送信する送信手段と、が設けられ、
前記複合機には、
当該複合機のユーザの前記使用許否情報を前記サーバより取得する使用許否情報取得手段と、
当該複合機のユーザが前記処理手段に対して実行させたい処理の指定を受け付ける指定受付手段と、
前記指定に係る処理を前記処理手段に実行させるための前記プログラムに含まれるコードの使用が当該指定を行ったユーザに対して認められているか否かを、前記使用許否情報取得手段によって取得された当該ユーザの前記使用許否情報に基づいて判別する使用許否判別手段と、
前記プログラムに含まれるコードの使用が認められていると前記使用許否情報記憶手段によって判別された場合は当該コードに対応する前記機能を呼び出して処理を実行するように前記処理手段を制御し、認められていないと判別された場合は当該プログラムに基づく処理を中止するように前記処理手段を制御する、制御手段と、が設けられ、
てなることを特徴とするネットワークシステム。
【請求項９】
スキャン、印刷、コピー、ＦＡＸの送受信、ファイルの送受信、およびドキュメント管理をそれぞれ行う複数の処理手段のうち少なくとも２つの処理手段を有する複合機を制御する制御方法であって、
前記処理手段に処理を実行させるためのプログラムについての使用の許否を示す使用許否情報をユーザごとに予め使用許否情報記憶手段に記憶させておき、
前記処理手段に対して実行させたい処理の指定を当該複合機のユーザより受け付け、
前記指定に係る処理を前記処理手段に実行させるための前記プログラムの使用が当該指定を行ったユーザに対して認められているか否かを当該ユーザの前記使用許否情報に基づいて判別し、
前記プログラムの使用が認められていると判別された場合は当該プログラムに従って処理を実行するように前記処理手段を制御し、認められていないと判別された場合は当該プログラムに基づく処理を行わないように前記処理手段を制御する、
ことを特徴とする制御方法。
【請求項１０】
スキャン、印刷、コピー、ＦＡＸの送受信、ファイルの送受信、およびドキュメント管理をそれぞれ行う複数の処理手段のうち少なくとも２つの処理手段を有する複合機を制御する制御方法であって、
当該複合機のユーザの、前記処理手段が有する機能についての使用の許否を示す使用許否情報をメモリにロードし、
前記処理手段に対して実行させたい処理の指定を前記ユーザより受け付け、
前記指定に係る処理を前記処理手段に実行させるための前記プログラムに含まれるコードに対応する前記機能の使用が前記ユーザに対して認められているか否かを当該ユーザの前記使用許否情報に基づいて判別し、
前記プログラムに含まれるコードに対応する前記機能の使用が認められていると判別された場合は当該機能を呼び出して処理を実行するように前記処理手段を制御し、認められていないと判別された場合は当該プログラムに基づく処理を中止するように前記処理手段を制御する、
ことを特徴とする制御方法。
【請求項１１】
スキャン、印刷、コピー、ＦＡＸの送受信、ファイルの送受信、およびドキュメント管理をそれぞれ行う複数の処理手段のうち少なくとも２つの処理手段を備えた複合機に用いられる制御プログラムであって、
当該複合機のユーザの、前記処理手段に処理を実行させるためのプログラムについての使用の許否を示す使用許否情報を取得する処理と、
前記処理手段に対して実行させたい処理の指定を前記ユーザより受け付ける処理と、
前記指定に係る処理を前記処理手段に実行させるための前記プログラムの使用が前記ユーザに対して認められているか否かを当該ユーザの前記使用許否情報に基づいて判別する処理と、
前記プログラムの使用が認められていると判別された場合は当該プログラムに従って処理を実行するように前記処理手段を制御し、認められていないと判別された場合は当該プログラムに基づく処理を行わないように前記処理手段を制御する処理と、
を複合機に実行させるための制御プログラム。
【請求項１２】
スキャン、印刷、コピー、ＦＡＸの送受信、ファイルの送受信、およびドキュメント管理をそれぞれ行う複数の処理手段のうち少なくとも２つの処理手段を備えた複合機に用いられる制御プログラムであって、
当該複合機のユーザの、前記処理手段が有する機能についての使用の許否を示す使用許否情報をメモリにロードする処理と、
前記処理手段に対して実行させたい処理の指定を前記ユーザより受け付ける処理と、
前記指定に係る処理を前記処理手段に実行させるための前記プログラムに含まれるコードに対応する前記機能の使用が前記ユーザに対して認められているか否かを当該ユーザの前記使用許否情報に基づいて判別する処理と、
前記プログラムに含まれるコードに対応する前記機能の使用が認められていると判別された場合は当該機能を呼び出して処理を実行するように前記処理手段を制御し、認められていないと判別された場合は当該プログラムに基づく処理を中止するように前記処理手段を制御する処理と、
を複合機に実行させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダウンロードするなどして得たプログラムに従って処理を実行する複合機などの処理装置およびその制御方法などに関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータおよびワークステーションなどの装置だけでなく、様々な装置に高性能なＡＰＩ（Application Program Interface）を有するＯＳ（Operating System）が採用されている。例えば、コピー、プリンタ、スキャナ、ＦＡＸ、またはドキュメントサーバなどの機能を集約した複合機（ＭＦＰ）などの装置にも、このようなＯＳが採用されている。
【０００３】
ＡＰＩの性能が低かった頃は、これらの装置の機能拡張を行いまたは応用的な処理を行うためのプログラムを作成することは難しくかつ手間が掛かった。装置の構造を理解し、機械語などの言語を用いてプログラムをコーディングしなければならなかったからである。
【０００４】
しかし、高性能なＡＰＩが採用されるようになってからは、予め用意されているＡＰＩ関数をコールするだけで種々の機能を呼び出して処理を行うことができるようになった。これにより、従来よりも容易にプログラミングが行われるようになった。
【０００５】
したがって、今後、これらの装置の機能拡張を行いまたは応用的な処理を行うためのプログラムおよびこれらのプログラムを作成し提供するサービス提供者が増えると予測される。このことは、ユーザにとって、装置をより便利に使用することができるようになるという利点があるが、その一方で、不正な処理を実行しユーザに損害をもたらす欠陥のあるプログラムや悪意のあるプログラムが流通しやすくなるという問題点もある。
【０００６】
また、システム管理者だけが入手して使用すべきである、重要なデータや装置のシステムの設定などを更新するプログラムも、容易に作成され流通されると予測される。そうすると、本来使用すべきでないユーザがこのようなプログラムを入手し、誤った操作を行って重要なデータを紛失したり装置を故障させたりしてしまうおそれがある。
【０００７】
このような問題点があるので、装置でプログラムを実行する際に、何らかのチェックを行う必要がある。
【０００８】
特許文献１に記載される発明は、端末装置にアプリケーションプログラムをダウンロードしようと際に、その端末装置のユーザが本人であるか否かの認証を行う。そして、認証されたときのみそのアプリケーションプログラムをダウンロードする。特許文献２、３に記載される発明も、特許文献１に記載される発明と同様に、ユーザが本人であると認証されたときに、ダウンロードなど所定の処理を実行する。
【０００９】
ところが、これらの従来の発明は、いずれも、プログラムを使用するユーザが本人であるか否かのチェック（認証）をプログラムの提供者が行っているに過ぎない。ユーザ側の装置では、実行しようとするプログラムが不正な動作をするか否かについて知ることはできない。
【特許文献１】特開２００２−１６９６２１号公報
【特許文献２】特開２００２−１３２７２６号公報
【特許文献３】特開２００１−１０３２７０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、上述の問題点に鑑み、プログラムを実行する際に処理装置において不正な処理が行われるのを防止することを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係る複合機は、スキャン、印刷、コピー、ＦＡＸの送受信、ファイルの送受信、およびドキュメント管理をそれぞれ行う複数の処理手段のうち少なくとも２つの処理手段を有する複合機であって、前記処理手段に処理を実行させるためのプログラムについての使用の許否を示す使用許否情報をユーザごとに記憶する使用許否情報記憶手段と、ユーザが前記処理手段に対して実行させたい処理の指定を受け付ける指定受付手段と、前記指定に係る処理を前記処理手段に実行させるための前記プログラムの使用が当該指定を行ったユーザに対して認められているか否かを当該ユーザの前記使用許否情報に基づいて判別する使用許否判別手段と、前記使用許否判別手段によって前記プログラムの使用が認められていると判別された場合は当該プログラムに従って処理を実行するように前記処理手段を制御し、認められていないと判別された場合は当該プログラムに基づく処理を行わないよう前記処理手段を制御する、制御手段と、を有することを特徴とする。
【００１２】
または、前記使用許否情報記憶手段は、前記処理手段が有する機能についての使用の許否を示す使用許否情報をユーザごとに記憶し、前記使用許否判別手段は、前記指定に係る処理を前記処理手段に実行させるための前記プログラムに含まれるコードに対応する前記機能の使用が当該指定を行ったユーザに対して認められているか否かを当該ユーザの前記使用許否情報に基づいて判別し、前記制御手段は、前記プログラムに含まれるコードに対応する前記機能の使用が認められていると前記使用許否判別手段によって判別された場合は当該機能を呼び出して処理を実行するように前記処理手段を制御し、認められていないと判別された場合は当該プログラムに基づく処理を中止するように前記処理手段を制御する。
【００１３】
または、前記使用許否情報記憶手段は、前記処理手段に処理を実行させるためのプログラムの中に記述される、前記処理手段が有する機能を呼び出すためのコードについての、使用の許否を示す、使用許否情報をユーザごとに記憶し、前記使用許否判別手段は、前記指定に係る処理を前記処理手段に実行させるための前記プログラムに含まれるコードの使用が当該指定を行ったユーザに対して認められているか否かを当該ユーザの前記使用許否情報に基づいて判別し、前記制御手段は、前記プログラムに含まれるコードの使用が認められていると前記使用許否情報記憶手段によって判別された場合は当該コードに対応する前記機能を呼び出して処理を実行するように前記処理手段を制御し、認められていないと判別された場合は当該プログラムに基づく処理を中止するように前記処理手段を制御する。
【００１４】
前記使用許否情報記憶手段を、当該複写機とは別の装置に設けてもよい。
【発明の効果】
【００１５】
本発明によると、プログラムを実行する際に複合機において不正な処理が行われるのを防止することができる。
【発明を実施するための最良の形態】
【００１６】
図１はプログラム共用システム１００の全体構成の例を示す図、図２は複合機１のハードウェア構成の例を示す図、図３は複合機１の機能的構成の例を示す図、図４はプログラムサーバ３の機能的構成の例を示す図、図５は認証サーバ２の機能的構成の例を示す図、図６は使用許否情報７５の内容の例を示す図、図７はメニュー選択画面ＨＧ１の例を示す図、図８は処理中止通知画面ＨＧ２の例を示す図、図９は処理続行選択画面ＨＧ３の例を示す図である。
【００１７】
プログラム共用システム１００は、図１に示すように、複合機１、認証サーバ２、およびプログラムサーバ３などによって構成される。これらの装置は、ネットワーク４を介して互いに接続可能である。プログラム共用システム１００の中に複合機１およびプログラムサーバ３を複数台設けることもできる。ネットワーク４として、インターネット、イントラネット、公衆回線、または専用線などが用いられる。通信プロトコルとして、ＴＣＰ／ＩＰ、ＦＴＰ、またはＨＴＴＰなどが用いられる。
【００１８】
複合機１は、複写機、プリンタ、スキャナ、ＦＡＸ、またはドキュメントサーバなどの機能を集約した装置であり、ＭＦＰ（Multi Function Peripherals）と呼ばれることもある。この複合機１は、図２に示すように、ＣＰＵ１ａ、ＲＡＭ１ｂ、ＲＯＭ１ｃ、制御用回路１ｄ、不揮発性メモリ１ｅ、磁気記憶装置（ＨＤＤ）１ｆ、印刷装置１ｇ、スキャナ１ｈ、タッチパネル１ｊ、および通信装置１ｋなどによって構成される。
【００１９】
通信装置１ｋは、認証サーバ２、プログラムサーバ３、またはプログラム共用システム１００の外部のＦＡＸ端末またはパーソナルコンピュータなど（以下、「外部端末装置６」と記載する。）とデータのやり取りを行うための装置である。制御用回路１ｄは、複合機１を構成するこれらの各部の制御を行うための回路である。
【００２０】
不揮発性メモリ１ｅは、ＥＥＰＲＯＭまたはフラッシュメモリなどのように書換え可能であってかつ不揮発性のメモリである。ＲＯＭ１ｃは、読出し専用のメモリである。一般に、ＲＯＭは不揮発性メモリに含まれるが、本実施形態では、ＥＥＰＲＯＭまたはフラッシュメモリなどとＲＯＭとを区別し、前者を「不揮発性メモリ１ｅ」と記載し後者を「ＲＯＭ１ｃ」と記載する。
【００２１】
磁気記憶装置１ｆには、図３に示すような処理実行部１０１、ＡＰＩコール制御部１０２、ＡＰＩ管理部１０３、プログラム取得部１０４、使用許否情報取得部１０５、使用許否情報データベース１０６、およびユーザ確認部１０７などの各機能を実現するためのプログラムおよびデータが、ＯＳ（オペレーティングシステム）としてインストールされている。つまり、これらの機能によって、複合機１の中核的な部分であるＭＦＰコア部１２が形成される。
【００２２】
その他、磁気記憶装置１ｆには、アドレス帳データベースＤＢ１、画像データベースＤＢ２、および課金情報データベースＤＢ３などが記憶されている。アドレス帳データベースＤＢ１には、複合機１を使用するユーザＭＵまたはその取引相手などの氏名、会社名、住所、電話番号、ＦＡＸ番号、または電子メールアドレスなどを示す個人情報７２が格納される。画像データベースＤＢ２には、外部端末装置６より受信した画像データまたはスキャナ１ｈで読み取った画像データなどが格納される。課金情報データベースＤＢ３には、複合機１の使用に対する課金処理に必要な情報、例えば、ユーザＭＵごとの複合機１の使用状況などに関する情報が格納される。
【００２３】
磁気記憶装置１ｆに記憶されているこれらのプログラムまたはデータの一部または全部を、ＲＯＭ１ｃまたは不揮発性メモリ１ｅに記憶させておいてもよい。または、図３に示す機能の一部または全部を、プロセッサ（制御用回路１ｄ）によって実現するようにしてもよい。これらのプログラムまたはデータは必要に応じてＲＡＭ１ｂにロードされ、ＣＰＵ１ａによってプログラムが実行される。
【００２４】
プログラムサーバ３は、図４に示すような外部通信部３０１、データ管理部３０２、およびプログラムデータベース３０３などによって構成され、複合機１によって実行可能なアプリケーションプログラム（以下、単に「プログラムＰＧ」と記載する。）を記憶し、複合機１からの要求に応じてネットワーク４を介してプログラムＰＧを付与する処理を行う。プログラムサーバ３は、複合機１の製造元（メーカ）、その代理店（ディーラ）、またはいわゆるサードパーティなどによって運営される。
【００２５】
作成者ＣＲは、作成したプログラムＰＧを複合機１のユーザＭＵに使用してもらいたい場合は、ネットワーク４を介してそのプログラムＰＧをプログラムサーバ３にアップロードすることにより公開する。複合機１のユーザＭＵは、プログラムサーバ３にアクセスし、そのプログラムＰＧを複合機１にダウンロードして使用することができる。
【００２６】
認証サーバ２は、図５に示すような外部通信部２０１、データ管理部２０２、および使用許否情報データベース２０３などによって構成され、使用許否情報７５の管理を行っている。認証サーバ２は、複合機１のメーカが運営してもよいし、複合機１の管理者が運営してもよい。使用許否情報７５の内容については、後に説明する。
【００２７】
認証サーバ２およびプログラムサーバ３として、ＦＴＰサーバまたはＨＴＴＰサーバなどのデータ送信の機能を有するサーバ機が用いられる。
【００２８】
以下、図３〜図５に示す複合機１、認証サーバ２、およびプログラムサーバ３の各部について説明する。
【００２９】
図３の処理実行部１０１は、メモリ制御部１２１、不揮発性メモリ制御部１２２、タッチパネル制御部１２３、スキャナ制御部１２４、外部通信部１２５、画像制御部１２６、ＨＤＤ制御部１２７、エンジン制御部１２８、およびジョブ管理部１２９などによって構成され、複合機１を構成するハードウェアの制御および画像処理などを行う。
【００３０】
メモリ制御部１２１は、ＲＡＭ１ｂ（図２参照）の制御を行う。例えば、ＲＡＭ１ｂへのデータの書込み、ＲＡＭ１ｂに格納されているデータの読出し、およびメモリ空間の管理などを行う。不揮発性メモリ制御部１２２は、不揮発性メモリ１ｅへのデータの書込みおよびＲＯＭ１ｃまたは不揮発性メモリ１ｅに格納されているデータの読出しなどを行う。
【００３１】
タッチパネル制御部１２３は、例えば図７、図８、図９に示すような操作画面または設定画面などの表示およびユーザＭＵが触れたタッチパネル１ｊの位置の判別などを行う。つまり、ユーザインタフェースに関する処理を行う。
【００３２】
スキャナ制御部１２４は、原稿台にセットされた原稿の画像をスキャナ１ｈに読み取らせるなど、スキャナ１ｈを制御して画像データを取得するための処理を行う。外部通信部１２５は、通信装置１ｋを制御し、認証サーバ２、プログラムサーバ３、または外部端末装置６などとデータの送受信を行うための処理を行う。
【００３３】
画像制御部１２６は、外部端末装置６などから取得された画像データ、磁気記憶装置１ｆに記憶されている画像データ、またはスキャナ１ｈによって読み取られた画像の画像データなどに対して、解像度の変更、画像サイズの拡大または縮小、色補正、傾き補正、裏写補正、または網点補正などの画像処理を行う。
【００３４】
ＨＤＤ制御部１２７は、磁気記憶装置１ｆに記憶されているプログラムおよびデータを読み出し、または取得されたプログラムおよびデータを磁気記憶装置１ｆの所定の領域（データベースまたはディレクトリなど）に格納する処理を行う。
【００３５】
エンジン制御部１２８は、スキャナ１ｈまたは通信装置１ｋによって取得された画像データまたは画像制御部１２６によって画像処理が施された画像データなどに基づいて画像の印刷を行うように印刷装置１ｇを制御する。
【００３６】
ジョブ管理部１２９は、複合機１において生じたジョブを処理する順序などの管理を行う。ジョブの種類として、例えば、データをＦＡＸまたは電子メールなどによって外部端末装置６に送信するジョブ、画像データに基づいて印刷を行うジョブ、原稿のスキャンを行うジョブなどがある。
【００３７】
ＡＰＩ管理部１０３は、処理実行部１０１を構成する各部、プログラム取得部１０４、使用許否情報取得部１０５、およびの使用許否情報データベース１０６が有する各機能を呼び出すためのＡＰＩ（Application Program Interface）の管理を行う。ＡＰＩ管理部１０３は、これらの機能の内容をそれぞれ関数（ファンクション）として定め、「ＧｅｔＡｄｄｒｅｓｓＩｔｅｍ（）」のような関数名を付して管理を行っている。以下、このような関数を「ＡＰＩ関数」と記載する。
【００３８】
複合機１には、磁気記憶装置１ｆへのデータの書込み、ステータスの取得、アドレス帳（個人情報７２）の取得、個人情報７２などのデータの磁気記憶装置１ｆへの書込み、管理者用の設定データの取得、ＦＡＸの送信、電子メールの送信、プリントジョブの制御、およびデータのダウンロードなどの処理を行うための多数のＡＰＩ関数が用意されている。
【００３９】
作成者ＣＲは、このＡＰＩを使用してプログラムＰＧの作成を容易に行うことができる。すなわち、呼び出したい（コールしたい）機能がある場合は、その機能に対応するＡＰＩ関数をプログラムＰＧの中に記述すればよい。この場合に、必要に応じてＡＰＩ関数の括弧内にパラメータを記述することができる。
【００４０】
図５の使用許否情報データベース２０３には、プログラム共用システム１００の中に設けられた複合機１を使用するユーザＭＵごとの使用許否情報７５（７５１、７５２、…）が格納されている。この使用許否情報７５は、図６に示すように、ユーザ情報７５ａ、使用可能デバイス情報７５ｂ、および使用可能プログラム情報７５ｃなどによって構成される。
【００４１】
使用許否情報７５のユーザ情報７５ａには、そのユーザＭＵのユーザ名、そのユーザＭＵを識別するユーザＩＤ、およびそのユーザＭＵが正規のユーザであるか否かの認証を行う際に用いるパスワードが含まれる。使用可能デバイス情報７５ｂは、プログラム共用システム１００の中に設けられた複合機、パーソナルコンピュータ、またはワークステーションなどの装置（デバイス）のうち、ユーザＭＵが使用することができるものを示している。
【００４２】
使用可能プログラム情報７５ｃは、これらのデバイスで実行可能なプログラムＰＧのうち、そのユーザＭＵが使用することができるプログラムのプログラム名（以下、「使用可能プログラム」と記載することがある。）を示している。さらに、使用可能プログラム情報７５ｃは、そのユーザＭＵがその使用可能プログラムを使用するに当たって使用すること（呼び出すこと）ができる機能のＡＰＩ関数の一覧を使用可能ＡＰＩリストＵＬとして示している。つまり、この使用可能プログラム情報７５ｃによると、たとえ、使用しようとするプログラムＰＧがそのユーザＭＵに許可されていたとしても、使用可能ＡＰＩリストＵＬに含まれないＡＰＩ関数に基づいて処理が実行されようとすると、そのプログラムＰＧに基づく処理が途中で中止されることになる。
【００４３】
使用許否情報７５の設定は、複合機に関する技術やセキュリティなどに詳しい者（例えば、複合機１の管理者）が行うのが望ましい。使用許否情報７５のないユーザＭＵは、複合機１の管理者などに対して、自分の氏名などを伝え、使用許否情報７５を発行して使用許否情報データベース２０３に登録してもらうように要求する。要求された管理者は、ユーザＭＵの技術的知識や信頼性などに応じてそのユーザＭＵに対して与えるアクセス権を決定し、使用許否情報７５の使用可能デバイス情報７５ｂおよび使用可能プログラム情報７５ｃの設定を行う。
【００４４】
使用許否情報取得部１０５は、複合機１を使用するユーザＭＵの使用許否情報７５を認証サーバ２より取得し、これを使用許否情報データベース１０６に格納する処理を行う。使用許否情報７５の取得は、次のような手順で行われる。複合機１を使用するユーザＭＵは、まず、図２のタッチパネル１ｊに表示されたログオン画面に対して自分のユーザＩＤおよびパスワードを入力する。入力されたユーザＩＤおよびパスワードは認証サーバ２に送信され、これにより使用許否情報７５の要求がなされる。
【００４５】
すると、認証サーバ２において、図５のデータ管理部２０２は、使用許否情報データベース２０３に格納されている使用許否情報７５の中からそのユーザＩＤおよびパスワードと一致するユーザ情報７５ａを有するものを抽出する。抽出された使用許否情報７５の使用可能デバイス情報７５ｂの中に要求元の複合機１のデバイス名が示されているか否かをチェックする。そして、そのデバイス名が示されている場合は、外部通信部２０１は、抽出された使用許否情報７５を要求元の複合機１に送信する。これにより、ユーザＭＵの複合機１へのログオンが完了する。
【００４６】
使用許否情報７５が抽出されなかった場合またはその複合機１のデバイス名が示されていなかった場合は、そのユーザＭＵに複合機１の使用権限が与えられていない旨を通知する。この場合は、ユーザＭＵは複合機１にログオンすることができず、複合機１の使用が認められない。
【００４７】
図４のプログラムサーバ３のプログラムデータベース３０３には、作成者ＣＲが作成したプログラムＰＧがプログラムファイル７３として格納されている。これらのプログラムＰＧは、複合機１にダウンロードされて使用される。
【００４８】
図３のプログラム取得部１０４は、必要に応じてプログラムサーバ３よりプログラムＰＧをダウンロードし、ＲＡＭ１ｂ、不揮発性メモリ１ｅ、または磁気記憶装置１ｆなどの記憶媒体に格納する処理を行う。例えば、複合機１を拡張する場合に、そのための新たなプログラムＰＧをプログラムサーバ３よりダウンロードする。
【００４９】
または、複合機１のユーザＭＵが図７のメニュー選択画面ＨＧ１の中から所望する処理（ジョブの種類）に対応するボタンをタッチして選択したときに、その処理を実行するために必要なプログラムＰＧが複合機１に保存されていなければ、これをプログラムサーバ３よりダウンロードする。このために、各ボタンには、それに対応する処理を実行するために必要なプログラムＰＧの保存場所（複合機１内のディレクトリまたはプログラムサーバ３のＵＲＬなど）およびプログラムＰＧに係るプログラムファイル７３のファイル名が対応付けられている。各ボタンの枠内には、そのボタンが選択されたときに起動されるプログラムＰＧをユーザが識別できるように、「ＦＡＸ送信」のような処理内容の簡単な説明またはプログラム名が表示される。
【００５０】
メニュー選択画面ＨＧ１に表示されるボタンは、ログオンしたユーザＭＵに対して使用が許可されているプログラム（図６の使用可能プログラム情報７５ｃ参照）に対応するものだけである。許可されていないプログラムに対応するボタンは表示されない。
【００５１】
複合機１では、ログオンしたユーザＭＵが図７のメニュー選択画面ＨＧ１よりいずれかのボタンを選択すると、そのボタンに対応する処理のためのプログラムＰＧが実行される。ログオンできなかったユーザＭＵは、複合機１に処理を実行させることはできない。プログラムＰＧに基づく処理は、次のような手順で行われる。
【００５２】
図３のＡＰＩコール制御部１０２は、これから起動しようとするプログラムＰＧのプログラム名が、ユーザＭＵの使用許否情報７５の中に示されているか否かをチェックする。示されていない場合は、ユーザＭＵにはそのプログラムＰＧの使用権限が与えられていないものとして、そのプログラムＰＧの起動を行わない。示されている場合は、そのプログラムＰＧに記述されているコードに基づいて順次処理を実行する。なお、メニュー選択画面ＨＧ１には、使用可能なプログラムＰＧのボタンだけが表示されるので、係るチェックを省略してもよい。
【００５３】
ＡＰＩコール制御部１０２は、プログラムＰＧに基づく一連の処理中に、次の実行しようとする処理のコード（処理コード）がＡＰＩ関数である場合は、そのＡＰＩ関数がそのユーザＭＵに対して使用が許可されているか否かをチェックする。具体的には、そのユーザＭＵの使用許否情報７５内のそのプログラムＰＧの使用可能ＡＰＩリストＵＬの中に、そのＡＰＩ関数が示されているか否かをチェックする。
【００５４】
許可されている場合すなわちそのＡＰＩ関数が示されている場合は、ＡＰＩコール制御部１０２は、そのＡＰＩ関数に対応する機能をコールして所定の処理を実行するようにＡＰＩ管理部１０３に対して指令を与える。ＡＰＩ管理部１０３は、係る指令および必要に応じて指定されたパラメータに基づいて処理実行部１０１を制御する。
【００５５】
許可されていない場合は、そのＡＰＩ関数をコールせず、そのプログラムＰＧによる処理を中止する。そして、許可されていない不正な処理を実行しようとした旨のエラーメッセージを、図８に示す処理中止通知画面ＨＧ２のように、タッチパネル１ｊに表示させる。または、係るＡＰＩ関数に対応する機能を呼び出して処理を継続してもよいか否かをユーザＭＵに選択させるようにしてもよい。
【００５６】
次の処理コードがＡＰＩ関数でない場合は、ＡＰＩを介さずに直接複合機１の各部に指令が与えられる。このようにして、図２に示す複合機１の各ユニットによる処理が行われる。
【００５７】
ＡＰＩ関数に対応する機能をコールして処理を実行する際に、所定のデータを更新しまたは所定の記憶領域にデータを追加する必要が生じることがある。例えば、アドレス帳（個人情報７２）の内容を修正しまたは削除し、またはアドレス帳データベースＤＢ１に個人情報７２を追加する場合などである。このような場合は、ユーザ確認部１０７は、更新などの処理を行ってもよいか否かをユーザＭＵに対して確認する。
【００５８】
すなわち、図９に示すような処理続行選択画面ＨＧ３をタッチパネル１ｊ（図２参照）に表示させる。そして、「続行」ボタンが選択された場合は、更新などの処理を行うようにＡＰＩ管理部１０３に指令する。「破棄」ボタンが選択された場合は、プログラムＰＧに基づく処理を中止する。または、その更新などの処理をスキップし、残りの処理を継続する。
【００５９】
図１０はプログラムＰＧを実行する際のプログラム共用システム１００の処理の流れの例を説明するフローチャート、図１１は使用許否情報の取得処理の流れの例を説明するフローチャート、図１２はプログラムの準備処理の流れの例を説明するフローチャート、図１３はＡＰＩ処理の流れの例を説明するフローチャート、図１４はプログラムファイル７３の構成およびアドレス帳管理プログラムの処理内容の例を示す図、図１５はプログラムファイル７３の構成および画像処理プログラムの処理内容の例を示す図である。なお、図１０〜図１３に示す各処理は、各装置の磁気記憶装置またはＲＯＭなどに格納されたプログラムをＣＰＵにより実行することによって実現される。
【００６０】
次に、プログラムＰＧに基づいて処理を実行する際のプログラム共用システム１００の各装置の処理の流れを、フローチャートを参照して説明する。
【００６１】
ユーザＭＵは、これから使用する複合機１に対して自分のユーザＩＤおよびパスワードを入力する（＃１）。複合機１は、そのユーザＭＵの使用許否情報７５を図１１に示す手順で取得する（＃２）。
【００６２】
図１１において、複合機１は、入力されたユーザＩＤおよびパスワードを認証サーバ２に対して送信し、使用許否情報７５を要求する（＃２１）。認証サーバ２は、送信されてきたユーザＩＤと同じユーザＩＤを有する使用許否情報７５を使用許否情報データベース２０３（図５参照）より検索し抽出する（＃２２）。
【００６３】
使用許否情報７５が抽出された場合は（＃２３でＹｅｓ）、送信されてきたパスワードと抽出された使用許否情報７５に示されるパスワードとが一致するか否か、および要求元の複合機１のデバイス名がその使用許否情報７５の使用可能デバイス情報７５ｂに示されているか否かを判別する（＃２４）。パスワードが一致しかつデバイス名が示される場合は（＃２４でＹｅｓ）、そのユーザＭＵが正しいユーザでありかつ複合機１の使用権限を有するものであると認証し、その使用許否情報７５を要求元の複合機１に送信する（＃２５）。複合機１は、送信されてきた使用許否情報７５を図３の使用許否情報データベース１０６に格納（配置）する（＃２６）。これにより、ユーザＭＵのログオンが完了する。
【００６４】
使用許否情報７５が抽出されなかった場合（＃２３でＮｏ）、パスワードが一致しなかった場合、または複合機１のデバイス名が示されていなかった場合は（＃２４でＮｏ）、認証サーバ２は、ユーザＭＵに対して複合機１の使用権限が与えられていない旨を複合機１に通知する。複合機１は、その旨をタッチパネル１ｊ（図２参照）に表示する（＃２７）。ユーザＭＵは、複合機１にログオンすることができず、複合機１を使用することができない。
【００６５】
図１０に戻って、複合機１は、ログオンしたユーザＭＵの使用許否情報７５に基づいて、そのユーザＭＵが使用可能な処理（ジョブの種類）の一覧をメニュー選択画面ＨＧ１（図７参照）として表示する。この中から所望のボタンが選択されると（＃３）、１つのジョブが発生し、そのジョブの処理を実行するのに必要なプログラムＰＧを、図１２に示すような手順で取得する（＃４）。
【００６６】
図１２において、複合機１は、すでに必要なプログラムＰＧを磁気記憶装置１ｆまたは不揮発性メモリ１ｅなどに有している場合は（＃４１でＹｅｓ）、これらの記録媒体からプログラムＰＧを読み出す（＃４２）。記録媒体に必要なプログラムＰＧが保存されていない場合は（＃４１でＮｏ）、プログラムサーバ３に対してそのプログラムＰＧを要求し（＃４３）、ダウンロードする（＃４４）。
【００６７】
図１０に戻って、複合機１は、プログラムＰＧおよびそのプログラムＰＧの使用可能ＡＰＩリストＵＬを図２のＲＡＭ１ｂにロードするなどして、ユーザＭＵが所望する処理を開始するための初期化を行う（＃５）。ユーザＭＵは、必要に応じて詳細な設定を行う（＃６）。例えば、コピーの枚数、ＦＡＸの送信先、または画像サイズの拡大率などについて設定する。
【００６８】
プログラムＰＧに記述されている最初の処理コードがＡＰＩ関数であるか否かを判別する（＃７）。
【００６９】
ＡＰＩ関数でない場合は（＃７でＮｏ）、ＡＰＩを介さずにすなわちＡＰＩコールを行わずに、処理コードで指示される通りの処理を実行するように複合機１の各部に対して直接的に指令する（＃９）。ＡＰＩ関数である場合は（＃７でＹｅｓ）、ＡＰＩを介して図１３に示すような手順で処理を行う（＃８）。
【００７０】
図１３において、使用許否情報７５（図６参照）内のそのプログラムＰＧについての使用可能ＡＰＩリストＵＬの中にそのＡＰＩ関数が示されているか否かを検索する（＃８１）。
【００７１】
そのＡＰＩ関数が示されている場合はそのＡＰＩ関数の使用が許可されているものと判別し（＃８２でＹｅｓ）、そのＡＰＩ関数に対応する機能を呼び出して処理を実行するためのＡＰＩコールを行う（＃８６）。ただし、そのＡＰＩ関数が所定のデータを更新しまたは所定の記憶領域にデータを追加する機能を呼び出すものである場合は（＃８３でＹｅｓ）、ＡＰＩコールを行う前に予め、図９に示す処理続行選択画面ＨＧ３を表示してユーザＭＵに処理の実行の可否の確認を求める（＃８４）。そして、「続行」ボタンが押された場合に（＃８５でＹｅｓ）、ＡＰＩコールを行う（＃８６）。「破棄」ボタンが押された場合は（＃８６でＮｏ）、プログラムＰＧに基づく処理を中止し（＃８８）、その旨を図８の処理中止通知画面ＨＧ２のように表示する（＃８９）。または、そのＡＰＩ関数に基づく処理をスキップし、残りの処理コードに基づいて処理を継続するようにしてもよい。
【００７２】
一方、使用可能ＡＰＩリストＵＬの中にそのＡＰＩ関数が示されていない場合は（＃８２でＮｏ）、そのＡＰＩ関数の使用が許可されていないものと判別し、プログラムＰＧに基づく処理を中止する（＃８７）。この場合に、ユーザＭＵの指示に従って、強制的にその処理を実行するようにしてもよいし（＃８６）、これをスキップして残りの処理コードに基づいて処理を継続するようにしてもよい。
【００７３】
図１０に戻って、プログラムＰＧに記述される２番目以降の処理コードについても、全処理が完了するまで（＃１０でＹｅｓ）、上に説明した手順で順次処理を行う。
【００７４】
図１３で説明した手順によると、図１４に示すプログラムＰＧ１および図１５に示すプログラムＰＧ２は、次のように実行される。なお、図１４および図１５において、処理を示す枠として実線の枠と点線の枠とがあるが、前者はその処理を実行するための処理コードがＡＰＩ関数を使用してコーディングされていることを意味し、後者はＡＰＩ関数を使用することなくその処理を実行するためのコーディングが行われていることを意味する。
【００７５】
図１４に示すプログラムＰＧ１は、アドレス帳データベースＤＢ１（図２参照）に格納されている個人情報７２すなわちアドレス帳を管理するアドレス帳管理プログラムである。このプログラムＰＧ１によると、ユーザＭＵが指定した個人情報７２を外部端末装置６に送信する処理および外部端末装置６より受信した個人情報７２をアドレス帳データベースＤＢ１に追加する処理を行うことができる。
【００７６】
複合機１のユーザＭＵが、ある人物の個人情報７２を外部端末装置６に送信するように依頼されたとする。ユーザＭＵは、図７のメニュー選択画面ＨＧ１の中から送信処理に対応するボタン（例えば、「データ転送」ボタン）をタッチしてプログラムＰＧを起動させ、その人物の名前および外部端末装置６の電子メールアドレスまたはネットワーク上のアドレスなどを指定する。すると、複合機１は、プログラムＰＧに従って、次のように処理を行う。
【００７７】
抽出処理のＡＰＩ関数に対応する機能をコールし、アドレス帳データベースＤＢ１よりその人物の個人情報７２を抽出する（＃１０１）。次に変換処理を実行し、抽出された個人情報７２を、複合機１で採用されるフォーマット（以下、「標準フォーマット」と記載する。）から相手先に対応したフォーマット（例えば、表計算ソフトのフォーマットなど）に変換する（＃１０２）。ただし、この処理は、点線の枠で示されている（すなわちＡＰＩ関数に依らない）ので、ＡＰＩを介さずに行われる。そして、送信処理のＡＰＩ関数に対応する機能をコールし、変換された個人情報７２を外部端末装置６に送信する（＃１０３）。
【００７８】
また、個人情報７２が複合機１に送信されてくると、受信処理のＡＰＩ関数に対応する機能をコールし、これを所定の記憶領域に格納する（＃１０４）。受信した個人情報７２が標準フォーマットでない場合は、逆変換処理を実行し、標準フォーマットに変換する（＃１０５）。そして、書込み処理のＡＰＩ関数に対応する機能をコールし、必要に応じて逆変換処理が施された個人情報７２を、アドレス帳データベースＤＢ１に登録する（＃１０６）。ただし、登録の前に、図９に示す処理続行選択画面ＨＧ３を表示し、登録を行ってもよいか否かの確認をユーザＭＵに対して求める（図１３の＃８４、＃８５に対応）。
【００７９】
図１５に示すプログラムＰＧ２は、端末装置より画像データを受信し画像処理などを行う画像処理プログラムである。プログラムＰＧ２の起動中に、画像ファイルが複合機１に送信されてくると、受信処理のＡＰＩ関数に対応する機能をコールし、これを所定の記憶領域に格納する（＃１１１）。
【００８０】
その画像ファイルが複合機１に対応していないフォーマット（例えば、ＪＰＥＧまたはＰＤＦなど）である場合は、変換処理を実行し、標準フォーマット（例えばＰＣＬなどのページ記述言語のフォーマット）に変換する（＃１１２）。画像生成処理のＡＰＩ関数に対応する機能をコールし、画像ファイルをビットマップのデータに変換する（＃１１３）。出力モードとして「印刷」が設定されている場合は、印刷処理のＡＰＩ関数に対応する機能をコールし、ビットマップのデータに基づいて画像を用紙に印刷する（＃１１４）。出力モードとして「ＨＤＤ」が設定されている場合は、書込み処理のＡＰＩ関数に対応する機能をコールし、ビットマップのデータを磁気記憶装置１ｆの画像データベースＤＢ２（図２参照）に保存する（＃１１５）。ただし、画像データベースＤＢ２への保存の前に、登録を行ってもよいか否かの確認をユーザＭＵに対して求める（図１３の＃８４、＃８５に対応）。
【００８１】
図１４および図１５の各処理のうち、ＡＰＩ関数に対応する機能をコールするものについては、その処理の実行前に、不正な処理でないか否かのチェックを行う（図１３の＃８２に対応）。
【００８２】
本実施形態によると、使用許否情報７５によってユーザのレベルに応じたプログラムＰＧおよび複合機１の使用の制限を行うことにより、複合機１において不正な処理が行われるのを防止することができる。さらに、プログラムＰＧの実行中にユーザに対して許可されないコードが見つかった場合は、処理を中止または中断する。よって、不正な処理が行われるのをより確実に防止することができる。
【００８３】
本実施形態では、図６に示す使用可能プログラム情報７５ｃには、ユーザＭＵに対して使用（呼出し）を許可する機能のＡＰＩ関数を記述（設定）したが、使用を禁止する機能のＡＰＩ関数を記述するようにしてもよい。または、使用を許可する機能、ユーザが呼び出してもよいと指示した場合に使用できる機能、およびユーザの意思に関わらず使用を禁止する機能、などの種類に各機能を分類することによって、許否の設定を行ってもよい。
【００８４】
プログラムＰＧに不正なコードすなわち作成者ＣＲに対して許可されていない機能を呼び出すＡＰＩ関数が含まれていないかどうかのチェックを、プログラムＰＧに含まれるコードごとの処理の前に行うのではなく、プログラムＰＧの起動前に一括して行うようにしてもよい。または、コードごとの処理の前およびプログラムＰＧの起動前の両方においてチェックを行うようにしてもよい。
【００８５】
本実施形態では、図６に示すように使用可能ＡＰＩリストＵＬをプログラムＰＧごとに設けたが、１つの使用可能ＡＰＩリストＵＬを複数のプログラムＰＧで共用するようにしてもよい。プログラム共用システム１００を使用するユーザＭＵのうち、使用可能なプログラムＰＧ、これらのプログラムＰＧの中の使用可能なＡＰＩ関数、および使用可能なデバイスが互いに同じである複数のユーザＭＵについては、１つの使用許否情報７５を共用するようにしてもよい。
【００８６】
本実施形態では、図７のメニュー選択画面ＨＧ１には、ログオンしたユーザに許可されていないプログラムＰＧを起動するためのボタンも表示しないようにしたが、これを表示するようにしてもよい。この場合は、係るボタンはグレー表示し、係るボタンが選択されてもそのプログラムＰＧの使用権限（実行権限）がない旨を出力して知らせるようにする。使用権限の有無は、そのユーザの使用許否情報７５によって判別することができる。
【００８７】
使用許否情報７５は、ＸＭＬ（Extensible Markup Language）などの言語によって記述するようにしてもよい。または、ＭＩＢ（Management Information Base）に登録しておいてもよい。
【００８８】
図１４および図１５に示すプログラムＰＧ１、ＰＧ２以外のプログラムＰＧに従って処理を行う複合機１にも、本発明を適用することができる。
【００８９】
例えば、多数の勤労者が仕事のために集まる場所（企業またはテナントビルなど）の共用スペースに設置する複合機１の場合は、次のようにして本発明を適用することができる。
【００９０】
複合機１に、複合機１の使用料の課金処理を行うための様々な機能（ファンクション）を呼び出すことができるＡＰＩを設けておく。すなわち、コピーの枚数、ＦＡＸの送信回数、またはスキャナの使用回数などのカウント数（カウンタ値）をユーザまたはその所属ごとに図２の課金情報データベースＤＢ３に記録するＡＰＩ関数、課金情報データベースＤＢ３の内容を参照するＡＰＩ関数、カウントを行う際のルールを参照するためのＡＰＩ関数、取得したカウンタ値を外部の課金サーバ５（図１参照）に送信するＡＰＩ関数、および各ユーザが複合機１を使用した際に発生したジョブにどのような設定がなされていたのか（例えば、両面印刷、２ｉｎ１（ツー・イン・ワン）印刷、カラー印刷など）を示す設定値またはページごとの情報などを取得するためのＡＰＩ関数などを、予め定義しておく。
【００９１】
複合機１のメーカまたはディーラは、このようなＡＰＩを用いて新たな拡張機能を実現するためのプログラムＰＧを作成し、または配付済みのプログラムＰＧを改良しまたはバグを修正し、プログラムサーバ３でそのプログラムＰＧを公開することによって、複合機１の販売先（顧客）に提供する。例えば、参照したカウンタ値に基づいてユーザごとの使用状況のリストの作成を行い、作成したリストを一定間隔で（例えた一週間ごとに）企業の総務部門またはテナントビルの管理人などの課金サーバ５に送信するなどの処理を行うためのプログラムＰＧを提供する。一方、複合機１の管理者は、各ユーザの使用許否情報７５をそのユーザの技術力、信頼性、または仕事上のポジションなどに応じて設定し直す。
【００９２】
ＡＰＩを有する装置であれば、パーソナルコンピュータ、ワークステーション、ＰＤＡ（Personal Digital Assistant）、携帯電話端末、およびインターネット機能を有する家庭用電化製品（いわゆる情報家電）など、複合機（ＭＦＰ）以外の装置にも本発明を適用することも可能である。
【００９３】
その他、プログラム共用システム１００、複合機１、認証サーバ２、プログラムサーバ３の全体または各部の構成、処理内容、処理順序などは、本発明の趣旨に沿って適宜変更することができる。
【産業上の利用可能性】
【００９４】
本発明は、オペレーティングシステムを有する装置においてソフトウェア（プログラム）による機能拡張を安全に行うために特に有効に用いられる。
【図面の簡単な説明】
【００９５】
【図１】プログラム共用システムの全体構成の例を示す図である。
【図２】複合機のハードウェア構成の例を示す図である。
【図３】複合機の機能的構成の例を示す図である。
【図４】プログラムサーバの機能的構成の例を示す図である。
【図５】認証サーバの機能的構成の例を示す図である。
【図６】使用許否情報の内容の例を示す図である。
【図７】メニュー選択画面の例を示す図である。
【図８】処理中止通知画面の例を示す図である。
【図９】処理続行選択画面の例を示す図である。
【図１０】プログラムを実行する際のプログラム共用システムの処理の流れの例を説明するフローチャートである。
【図１１】使用許否情報の取得処理の流れの例を説明するフローチャートである。
【図１２】プログラムの準備処理の流れの例を説明するフローチャートである。
【図１３】ＡＰＩ処理の流れの例を説明するフローチャートである。
【図１４】プログラムファイルの構成およびアドレス帳管理プログラムの処理内容の例を示す図である。
【図１５】プログラムファイルの構成および画像処理プログラムの処理内容の例を示す図である。
【符号の説明】
【００９６】
１  複合機
２  認証サーバ（サーバ）
７５  使用許否情報
１００  プログラム共用システム（ネットワークシステム）
１０２  ＡＰＩコール制御部（使用許否判別手段）
１０３  ＡＰＩ管理部（制御手段）
１０５  使用許否情報取得部（使用許否情報取得手段）
１０６  使用許否情報データベース（使用許否情報記憶手段）
１０７  ユーザ確認部（選択受付手段）
１２１〜１２９  処理手段
１ｊ  タッチパネル（指定受付手段、表示手段、選択受付手段）
２０１  外部通信部（送信手段）
２０２  データ管理部（使用許否判別手段）
２０３  使用許否情報データベース（使用許否情報取得手段）
【図１】
2005094079.tif 000003
【図２】
2005094079.tif 000004
【図３】
2005094079.tif 000005
【図４】
2005094079.tif 000006
【図５】
2005094079.tif 000007
【図６】
2005094079.tif 000008
【図７】
2005094079.tif 000009
【図８】
2005094079.tif 000010
【図９】
2005094079.tif 000011
【図１０】
2005094079.tif 000012
【図１１】
2005094079.tif 000013
【図１２】
2005094079.tif 000014
【図１３】
2005094079.tif 000015
【図１４】
2005094079.tif 000016
【図１５】
2005094079.tif 000017