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