(57)【要約】【課題】情報処理装置にインストールするためのアプリケーションプログラムを作成する際のプログラム作成者の作業負担を軽減して効率的なプログラム作成を可能にする。【解決手段】情報処理装置１は、各ユーザに対して個別に設定される機能制限情報２５ａを記憶しており、その機能制限情報２５ａに基づき、複数のユーザの全てが共通して利用可能な機能を除いて情報処理機能の利用を制限するための共通機能制限情報２４を取得する。アプリケーションプログラム８をインストールする際には、それに含まれるコマンドを解析することによって共通機能制限情報２４で制限された機能を利用するか否かを判定し、共通機能制限情報２４によって制限された機能を利用する場合、アプリケーションプログラム８に含まれるコマンドを書き換えることによって共通機能制限情報２４で制限された機能を利用不可能な状態に書き換えてインストールする。【選択図】図４
2011257833.tif 000002
【特許請求の範囲】
【請求項１】
情報処理機能を利用するためのプログラムをインストールして実行する情報処理装置であって、
複数のユーザのそれぞれに対して前記情報処理機能を利用する際の機能制限が設定された機能制限情報を記憶する記憶手段と、
前記機能制限情報に基づき、複数のユーザの全てが共通して利用可能な機能を除いて前記情報処理機能の利用を制限するための共通機能制限情報を取得する取得手段と、
前記プログラムをインストールする際、前記プログラムに含まれるコマンドを解析することによって前記共通機能制限情報で制限された機能を利用するか否かを判定する判定手段と、
前記プログラムが前記共通機能制限情報によって制限された機能を利用する場合、前記プログラムに含まれるコマンドを書き換えることによって前記共通機能制限情報で制限された機能を利用不可能な状態に書き換える書換手段と、
前記書換手段によりコマンドの書き換えられた前記プログラムをインストールするインストール手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
特定のユーザによる指示に基づいて、前記インストール手段によりインストールされた前記プログラムを読み出して実行する実行手段をさらに備え、
前記判定手段は、前記実行手段が前記プログラムを実行する際、前記特定のユーザに対応する前記機能制限情報を読み出し、前記プログラムに含まれるコマンドを解析することによって前記特定のユーザの利用可能な機能が前記書換手段によって利用不可能な状態に書き換えられているか否かを判定し、
前記書換手段は、前記特定のユーザの利用可能な機能が利用不可能な状態に書き換えられている場合、前記プログラムに含まれるコマンドを書き換えることによって前記特定のユーザが利用可能な状態に書き換え、
前記実行手段は、前記書換手段により前記特定のユーザが利用可能な状態にコマンドの書き換えられた前記プログラムを実行することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記記憶手段は、複数のユーザが共通して利用可能な共通記憶領域と、複数のユーザのそれぞれに対して個別に設定された各ユーザ専用のユーザ記憶領域とを有し、
前記インストール手段は、前記書換手段により前記共通機能制限情報で制限された機能を利用不可能な状態に書き換えられた前記プログラムを前記共通記憶領域にインストールし、
前記実行手段は、前記書換手段により前記特定のユーザが利用可能な状態に書き換えられた前記プログラムを前記特定のユーザに対応する前記ユーザ記憶領域に記憶して実行することを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記共通記憶領域には、前記情報処理機能を有効に利用するための機能処理を行うことが定義されたライブラリと、前記情報処理機能を利用せずに前記機能処理に代わるダミー処理を行うことが定義されたダミーライブラリと、が記憶されており、
前記書換手段は、インストール対象である前記プログラムが前記共通機能制限情報によって制限された機能を利用する場合、前記プログラムに含まれる前記ライブラリを実行させるコマンドを、前記ダミーライブラリを実行させるコマンドに書き換えることによって前記共通機能制限情報で制限された機能を利用不可能な状態に書き換えることを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記ユーザ記憶領域には、前記情報処理機能を有効に利用するための機能処理を行うことが定義されたライブラリと、前記情報処理機能を利用せずに前記機能処理に代わるダミー処理を行うことが定義されたダミーライブラリと、が記憶されており、
前記書換手段は、前記特定のユーザの利用可能な機能が利用不可能な状態に書き換えられている場合、前記プログラムに含まれる前記ダミーライブラリを実行させるコマンドを、前記ライブラリを実行させるコマンドに書き換えることによって前記特定のユーザが利用可能な状態に書き換えることを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記記憶手段に記憶されている前記機能制限情報を更新する更新手段を更に備え、
前記書換手段は、前記更新手段によって複数のユーザのうちの少なくとも一のユーザに対応する前記機能制限情報が更新された場合、当該一のユーザに対応する前記ユーザ記憶領域に記憶されている前記プログラムを読み出し、前記更新手段によって更新された前記機能制限情報に基づいて前記プログラムに含まれるコマンドを書き換えることを特徴とする請求項３乃至５のいずれかに記載の情報処理装置。
【請求項７】
情報処理機能を利用するためのプログラムをインストールして実行する情報処理装置であって、
複数のユーザのそれぞれに対して前記情報処理機能を利用する際の機能制限が設定された機能制限情報をユーザごとに設けられたユーザ記憶領域に記憶する記憶手段と、
前記プログラムを特定のユーザの前記ユーザ記憶領域にインストールする際、前記特定のユーザの前記ユーザ記憶領域に記憶された前記機能制限情報を読み出し、前記プログラムに含まれるコマンドを解析することにより前記特定のユーザに対応する前記機能制限情報において制限された機能を利用するか否かを判定する判定手段と、
前記プログラムが前記特定のユーザに対応する前記機能制限情報によって制限された機能を利用する場合、前記プログラムに含まれるコマンドを書き換えることによって前記機能制限情報で制限された機能を利用不可能な状態に書き換える書換手段と、
前記書換手段によりコマンドの書き換えられた前記プログラムを前記特定のユーザの前記ユーザ記憶領域にインストールするインストール手段と、
を備えることを特徴とする情報処理装置。
【請求項８】
前記プログラムは、前記情報処理機能を有効に動作させるための処理手順が定義されたライブラリであることを特徴とする請求項７記載の情報処理装置。
【請求項９】
情報処理機能を利用するためのプログラムをインストールして実行する情報処理方法であって、
複数のユーザのそれぞれに対して前記情報処理機能を利用する際の機能制限が設定された機能制限情報を記憶するステップと、
前記機能制限情報に基づき、複数のユーザの全てが共通して利用可能な機能を除いて前記情報処理機能の利用を制限するための共通機能制限情報を取得するステップと、
前記プログラムをインストールする際、前記プログラムに含まれるコマンドを解析することによって前記共通機能制限情報で制限された機能を利用するか否かを判定するステップと、
前記プログラムが前記共通機能制限情報によって制限された機能を利用する場合、前記プログラムに含まれるコマンドを書き換えることによって前記共通機能制限情報で制限された機能を利用不可能な状態に書き換えるステップと、
前記共通機能制限情報で制限された機能を利用不可能な状態に書き換えられた前記プログラムをインストールするステップと、
を有することを特徴とする情報処理方法。
【請求項１０】
インストールされた前記プログラムを特定のユーザによる実行指示に基づいて読み出すステップと、
前記特定のユーザに対応する前記機能制限情報を読み出し、前記プログラムに含まれるコマンドを解析することによって前記特定のユーザの利用可能な機能が利用不可能な状態に書き換えられているか否かを判定するステップと、
前記特定のユーザの利用可能な機能が利用不可能な状態に書き換えられている場合、前記プログラムに含まれるコマンドを書き換えることによって前記特定のユーザが利用可能な状態に書き換えるステップと、
前記特定のユーザが利用可能な状態にコマンドの書き換えられた前記プログラムを実行するステップと、
を更に有することを特徴とする請求項９記載の情報処理方法。
【請求項１１】
情報処理機能を利用するためのプログラムをインストールして実行する情報処理方法であって、
複数のユーザのそれぞれに対して前記情報処理機能を利用する際の機能制限が設定された機能制限情報をユーザごとに設けられたユーザ記憶領域に記憶するステップと、
前記プログラムを特定のユーザの前記ユーザ記憶領域にインストールする際、前記特定のユーザの前記ユーザ記憶領域に記憶された前記機能制限情報を読み出し、前記プログラムに含まれるコマンドを解析することにより前記特定のユーザに対応する前記機能制限情報において制限された機能を利用するか否かを判定するステップと、
前記プログラムが前記特定のユーザに対応する前記機能制限情報によって制限された機能を利用する場合、前記プログラムに含まれるコマンドを書き換えることによって前記機能制限情報で制限された機能を利用不可能な状態に書き換えるステップと、
前記機能制限情報で制限された機能を利用不可能な状態に書き換えられた前記プログラムを前記特定のユーザの前記ユーザ記憶領域にインストールするステップと、
を有することを特徴とする情報処理方法。
【請求項１２】
情報処理機能を利用するためのプログラムをインストールして実行させるプログラムであって、情報処理装置に、
複数のユーザのそれぞれに対して前記情報処理機能を利用する際の機能制限が設定された機能制限情報を記憶するステップと、
前記機能制限情報に基づき、複数のユーザの全てが共通して利用可能な機能を除いて前記情報処理機能の利用を制限するための共通機能制限情報を取得するステップと、
前記プログラムをインストールする際、前記プログラムに含まれるコマンドを解析することによって前記共通機能制限情報で制限された機能を利用するか否かを判定するステップと、
前記プログラムが前記共通機能制限情報によって制限された機能を利用する場合、前記プログラムに含まれるコマンドを書き換えることによって前記共通機能制限情報で制限された機能を利用不可能な状態に書き換えるステップと、
前記共通機能制限情報で制限された機能を利用不可能な状態に書き換えられた前記プログラムをインストールするステップと、
を実行させることを特徴とするプログラム。
【請求項１３】
前記情報処理装置に、
インストールされた前記プログラムを特定のユーザによる実行指示に基づいて読み出すステップと、
前記特定のユーザに対応する前記機能制限情報を読み出し、前記プログラムに含まれるコマンドを解析することによって前記特定のユーザの利用可能な機能が利用不可能な状態に書き換えられているか否かを判定するステップと、
前記特定のユーザの利用可能な機能が利用不可能な状態に書き換えられている場合、前記プログラムに含まれるコマンドを書き換えることによって前記特定のユーザが利用可能な状態に書き換えるステップと、
前記特定のユーザが利用可能な状態にコマンドの書き換えられた前記プログラムを実行するステップと、
をさらに実行させることを特徴とする請求項１２記載のプログラム。
【請求項１４】
情報処理機能を利用するためのプログラムをインストールして実行させるプログラムであって、情報処理装置に、
複数のユーザのそれぞれに対して前記情報処理機能を利用する際の機能制限が設定された機能制限情報をユーザごとに設けられたユーザ記憶領域に記憶するステップと、
前記プログラムを特定のユーザの前記ユーザ記憶領域にインストールする際、前記特定のユーザの前記ユーザ記憶領域に記憶された前記機能制限情報を読み出し、前記プログラムに含まれるコマンドを解析することにより前記特定のユーザに対応する前記機能制限情報において制限された機能を利用するか否かを判定するステップと、
前記プログラムが前記特定のユーザに対応する前記機能制限情報によって制限された機能を利用する場合、前記プログラムに含まれるコマンドを書き換えることによって前記機能制限情報で制限された機能を利用不可能な状態に書き換えるステップと、
前記機能制限情報で制限された機能を利用不可能な状態に書き換えられた前記プログラムを前記特定のユーザの前記ユーザ記憶領域にインストールするステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法およびプログラムに関し、特に情報処理機能を利用するためのプログラムをインストールして実行するための技術に関する。
【背景技術】
【０００２】
オフィス環境などに設置されるＭＦＰ（Multifunction Peripheral）などのような情報処理装置は、コピー機能、プリンタ機能、スキャン機能、ＦＡＸ機能、メール送信機能といった各種情報処理機能を備えている。従来、この種の情報処理装置には各種情報処理機能を動作させるための標準的なアプリケーションプログラムが予めインストールされており、ユーザが機能の選択操作を行うと、情報処理装置においてその標準的なアプリケーションプログラムが実行され、ユーザによって選択された情報処理機能が動作して指定されたジョブが実行されるようになる。
【０００３】
ところで、近年は、情報処理装置において実行可能なアプレケーションプログラムを多様化してユーザの利便性を向上させるべく、情報処理装置に対して予め搭載されている標準的なアプリケーションプログラムとは異なる種々のアプリケーションプログラムを別途インストールすることができるようになってきている（例えば特許文献１，２）。特に近年は、スクリプト言語などを用いることによって比較的簡単にプログラム開発を行うことが可能である。そのため、例えば情報処理装置のユーザがアプリケーションプログラムを作成して情報処理装置にインストールすることも行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１２９２４６号公報
【特許文献２】特開２００９−９３２２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一方、オフィス環境などに設置される情報処理装置は、情報流出を防止できるようにセキュリティの向上が求められている。そのため、近年の情報処理装置は、ユーザごとに、外部サーバへのアクセスを制限したり、電子メールによるデータ送信を制限したりすることが行われる。このような情報処理装置には、ユーザごとに各種情報処理機能を利用する際の機能制限が設定された機能制限情報が予め登録されている。そしてユーザが情報処理装置にログインすると、情報処理装置は、そのログインユーザに対応した機能制限情報に基づいて各種情報処理機能を利用可能な状態へと移行させるようになっている。
【０００６】
ところが、上述したように例えば情報処理装置のユーザが、各種情報処理機能を動作させるためのアプリケーションプログラムを作成して情報処理装置にインストールする場合、そのアプリケーションプログラムは、ユーザごとに設定される機能制限情報を適切に反映させた状態で各種の処理を実行させるプログラムとして作成される必要がある。そのため、プログラム作成者は、情報処理装置に予め登録されている機能制限情報がどのような情報であるかを十分に考慮しながらプログラムを作成していかなければならない。また、情報処理装置に登録されているユーザごとの機能制限情報は、管理者によって適宜更新される。そのため、情報処理装置にインストールされるアプリケーションプログラムは、情報処理装置に登録されている機能制限情報が更新された場合には、その更新された内容を速やかに且つ適切に反映するようなプログラムとして作成される必要がある。このように従来は、プログラム作成者が情報処理装置にインストールするためのアプリケーションプログラムを作成する際、各種情報処理機能を動作させるための処理手順を構築するだけでなく、ユーザごとに設定される機能制限情報を正確に反映させるための処理手順を構築する必要があり、効率的なプログラム作成が行えないという問題がある。
【０００７】
またプログラム作成者によって作成されたアプリケーションプログラムに欠陥がある場合、機能制限情報によって利用が制限された機能であるにもかかわらず、その機能が利用可能な状態となってしまう可能性がある。これを防止するため、従来は、管理者がプログラム作成者によって作成されたアプリケーションプログラムの試験運用などを行うことによって、アプリケーションプログラムがユーザごとの機能制限情報に基づいて適切な動作を実現するか否かを検証しなければならない。それ故、管理者の作業負担も大きいという問題がある。
【０００８】
そこで本発明は、上記従来の問題点を解決することを目的としてなされたものであり、インストールするためのプログラムを作成する際のプログラム作成者の作業負担を軽減して効率的なプログラム作成を可能にすると共に、管理者による作業負担も軽減するようにした情報処理装置、情報処理方法およびプログラムを提供するものである。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、請求項１にかかる発明は、情報処理機能を利用するためのプログラムをインストールして実行する情報処理装置であって、複数のユーザのそれぞれに対して前記情報処理機能を利用する際の機能制限が設定された機能制限情報を記憶する記憶手段と、前記機能制限情報に基づき、複数のユーザの全てが共通して利用可能な機能を除いて前記情報処理機能の利用を制限するための共通機能制限情報を取得する取得手段と、前記プログラムをインストールする際、前記プログラムに含まれるコマンドを解析することによって前記共通機能制限情報で制限された機能を利用するか否かを判定する判定手段と、前記プログラムが前記共通機能制限情報によって制限された機能を利用する場合、前記プログラムに含まれるコマンドを書き換えることによって前記共通機能制限情報で制限された機能を利用不可能な状態に書き換える書換手段と、前記書換手段によりコマンドの書き換えられた前記プログラムをインストールするインストール手段と、を備えることを特徴とする構成である。
【００１０】
このような構成によれば、情報処理装置にプログラムをインストールする際に、そのプログラムに含まれるコマンドであって、共通機能制限情報で制限された機能を利用するためのコマンドが書き換えられる。そして共通機能制限情報で制限された機能を利用不可能な状態に書き換えられたプログラムがインストールされる。そのため、プログラム作成者は、ユーザごとに設定される機能制限情報や、共通機能制限情報の内容を考慮することなく、プログラムを作成することができるようになる。
【００１１】
請求項２にかかる発明は、請求項１に記載の情報処理装置において、特定のユーザによる指示に基づいて、前記インストール手段によりインストールされた前記プログラムを読み出して実行する実行手段をさらに備え、前記判定手段は、前記実行手段が前記プログラムを実行する際、前記特定のユーザに対応する前記機能制限情報を読み出し、前記プログラムに含まれるコマンドを解析することによって前記特定のユーザの利用可能な機能が前記書換手段によって利用不可能な状態に書き換えられているか否かを判定し、前記書換手段は、前記特定のユーザの利用可能な機能が利用不可能な状態に書き換えられている場合、前記プログラムに含まれるコマンドを書き換えることによって前記特定のユーザが利用可能な状態に書き換え、前記実行手段は、前記書換手段により前記特定のユーザが利用可能な状態にコマンドの書き換えられた前記プログラムを実行することを特徴とする構成である。
【００１２】
このような構成によれば、情報処理装置にインストールされたプログラムを、特定のユーザによる指示に基づいて実行する際、その特定のユーザの利用可能な機能が利用不可能な状態に書き換えられていれば、その特定のユーザが利用可能な状態に書き換えられる。そのため、プログラム作成者は、ユーザごとに設定される機能制限情報の内容を考慮することなく、プログラムを作成することができるようになる。
【００１３】
請求項３にかかる発明は、請求項２に記載の情報処理装置において、前記記憶手段は、複数のユーザが共通して利用可能な共通記憶領域と、複数のユーザのそれぞれに対して個別に設定された各ユーザ専用のユーザ記憶領域とを有し、前記インストール手段は、前記書換手段により前記共通機能制限情報で制限された機能を利用不可能な状態に書き換えられた前記プログラムを前記共通記憶領域にインストールし、前記実行手段は、前記書換手段により前記特定のユーザが利用可能な状態に書き換えられた前記プログラムを前記特定のユーザに対応する前記ユーザ記憶領域に記憶して実行することを特徴とする構成である。
【００１４】
請求項４にかかる発明は、請求項３に記載の情報処理装置において、前記共通記憶領域には、前記情報処理機能を有効に利用するための機能処理を行うことが定義されたライブラリと、前記情報処理機能を利用せずに前記機能処理に代わるダミー処理を行うことが定義されたダミーライブラリと、が記憶されており、前記書換手段は、インストール対象である前記プログラムが前記共通機能制限情報によって制限された機能を利用する場合、前記プログラムに含まれる前記ライブラリを実行させるコマンドを、前記ダミーライブラリを実行させるコマンドに書き換えることによって前記共通機能制限情報で制限された機能を利用不可能な状態に書き換えることを特徴とする構成である。
【００１５】
請求項５にかかる発明は、請求項４に記載の情報処理装置において、前記ユーザ記憶領域には、前記情報処理機能を有効に利用するための機能処理を行うことが定義されたライブラリと、前記情報処理機能を利用せずに前記機能処理に代わるダミー処理を行うことが定義されたダミーライブラリと、が記憶されており、前記書換手段は、前記特定のユーザの利用可能な機能が利用不可能な状態に書き換えられている場合、前記プログラムに含まれる前記ダミーライブラリを実行させるコマンドを、前記ライブラリを実行させるコマンドに書き換えることによって前記特定のユーザが利用可能な状態に書き換えることを特徴とする構成である。
【００１６】
請求項６にかかる発明は、請求項３乃至５のいずれかに記載の情報処理装置において、前記記憶手段に記憶されている前記機能制限情報を更新する更新手段を更に備え、前記書換手段は、前記更新手段によって複数のユーザのうちの少なくとも一のユーザに対応する前記機能制限情報が更新された場合、当該一のユーザに対応する前記ユーザ記憶領域に記憶されている前記プログラムを読み出し、前記更新手段によって更新された前記機能制限情報に基づいて前記プログラムに含まれるコマンドを書き換えることを特徴とする構成である。
【００１７】
請求項７にかかる発明は、情報処理機能を利用するためのプログラムをインストールして実行する情報処理装置であって、複数のユーザのそれぞれに対して前記情報処理機能を利用する際の機能制限が設定された機能制限情報をユーザごとに設けられたユーザ記憶領域に記憶する記憶手段と、前記プログラムを特定のユーザの前記ユーザ記憶領域にインストールする際、前記特定のユーザの前記ユーザ記憶領域に記憶された前記機能制限情報を読み出し、前記プログラムに含まれるコマンドを解析することにより前記特定のユーザに対応する前記機能制限情報において制限された機能を利用するか否かを判定する判定手段と、前記プログラムが前記特定のユーザに対応する前記機能制限情報によって制限された機能を利用する場合、前記プログラムに含まれるコマンドを書き換えることによって前記機能制限情報で制限された機能を利用不可能な状態に書き換える書換手段と、前記書換手段によりコマンドの書き換えられた前記プログラムを前記特定のユーザの前記ユーザ記憶領域にインストールするインストール手段と、を備えることを特徴とする構成である。
【００１８】
請求項８にかかる発明は、請求項７に記載の情報処理装置において、前記プログラムは、前記情報処理機能を有効に動作させるための処理手順が定義されたライブラリであることを特徴とする構成である。
【００１９】
請求項９にかかる発明は、情報処理機能を利用するためのプログラムをインストールして実行する情報処理方法であって、複数のユーザのそれぞれに対して前記情報処理機能を利用する際の機能制限が設定された機能制限情報を記憶するステップと、前記機能制限情報に基づき、複数のユーザの全てが共通して利用可能な機能を除いて前記情報処理機能の利用を制限するための共通機能制限情報を取得するステップと、前記プログラムをインストールする際、前記プログラムに含まれるコマンドを解析することによって前記共通機能制限情報で制限された機能を利用するか否かを判定するステップと、前記プログラムが前記共通機能制限情報によって制限された機能を利用する場合、前記プログラムに含まれるコマンドを書き換えることによって前記共通機能制限情報で制限された機能を利用不可能な状態に書き換えるステップと、前記共通機能制限情報で制限された機能を利用不可能な状態に書き換えられた前記プログラムをインストールするステップと、を有することを特徴とする構成である。
【００２０】
請求項１０にかかる発明は、請求項９に記載の情報処理方法において、インストールされた前記プログラムを特定のユーザによる実行指示に基づいて読み出すステップと、前記特定のユーザに対応する前記機能制限情報を読み出し、前記プログラムに含まれるコマンドを解析することによって前記特定のユーザの利用可能な機能が利用不可能な状態に書き換えられているか否かを判定するステップと、前記特定のユーザの利用可能な機能が利用不可能な状態に書き換えられている場合、前記プログラムに含まれるコマンドを書き換えることによって前記特定のユーザが利用可能な状態に書き換えるステップと、前記特定のユーザが利用可能な状態にコマンドの書き換えられた前記プログラムを実行するステップと、を更に有することを特徴とする構成である。
【００２１】
請求項１１にかかる発明は、情報処理機能を利用するためのプログラムをインストールして実行する情報処理方法であって、複数のユーザのそれぞれに対して前記情報処理機能を利用する際の機能制限が設定された機能制限情報をユーザごとに設けられたユーザ記憶領域に記憶するステップと、前記プログラムを特定のユーザの前記ユーザ記憶領域にインストールする際、前記特定のユーザの前記ユーザ記憶領域に記憶された前記機能制限情報を読み出し、前記プログラムに含まれるコマンドを解析することにより前記特定のユーザに対応する前記機能制限情報において制限された機能を利用するか否かを判定するステップと、前記プログラムが前記特定のユーザに対応する前記機能制限情報によって制限された機能を利用する場合、前記プログラムに含まれるコマンドを書き換えることによって前記機能制限情報で制限された機能を利用不可能な状態に書き換えるステップと、前記機能制限情報で制限された機能を利用不可能な状態に書き換えられた前記プログラムを前記特定のユーザの前記ユーザ記憶領域にインストールするステップと、を有することを特徴とする構成である。
【００２２】
請求項１２にかかる発明は、情報処理機能を利用するためのプログラムをインストールして実行させるプログラムであって、情報処理装置に、複数のユーザのそれぞれに対して前記情報処理機能を利用する際の機能制限が設定された機能制限情報を記憶するステップと、前記機能制限情報に基づき、複数のユーザの全てが共通して利用可能な機能を除いて前記情報処理機能の利用を制限するための共通機能制限情報を取得するステップと、前記プログラムをインストールする際、前記プログラムに含まれるコマンドを解析することによって前記共通機能制限情報で制限された機能を利用するか否かを判定するステップと、前記プログラムが前記共通機能制限情報によって制限された機能を利用する場合、前記プログラムに含まれるコマンドを書き換えることによって前記共通機能制限情報で制限された機能を利用不可能な状態に書き換えるステップと、前記共通機能制限情報で制限された機能を利用不可能な状態に書き換えられた前記プログラムをインストールするステップと、を実行させることを特徴とする構成である。
【００２３】
請求項１３にかかる発明は、請求項１２に記載のプログラムにおいて、前記情報処理装置に、インストールされた前記プログラムを特定のユーザによる実行指示に基づいて読み出すステップと、前記特定のユーザに対応する前記機能制限情報を読み出し、前記プログラムに含まれるコマンドを解析することによって前記特定のユーザの利用可能な機能が利用不可能な状態に書き換えられているか否かを判定するステップと、前記特定のユーザの利用可能な機能が利用不可能な状態に書き換えられている場合、前記プログラムに含まれるコマンドを書き換えることによって前記特定のユーザが利用可能な状態に書き換えるステップと、前記特定のユーザが利用可能な状態にコマンドの書き換えられた前記プログラムを実行するステップと、をさらに実行させることを特徴とする構成である。
【００２４】
請求項１４にかかる発明は、情報処理機能を利用するためのプログラムをインストールして実行させるプログラムであって、情報処理装置に、複数のユーザのそれぞれに対して前記情報処理機能を利用する際の機能制限が設定された機能制限情報をユーザごとに設けられたユーザ記憶領域に記憶するステップと、前記プログラムを特定のユーザの前記ユーザ記憶領域にインストールする際、前記特定のユーザの前記ユーザ記憶領域に記憶された前記機能制限情報を読み出し、前記プログラムに含まれるコマンドを解析することにより前記特定のユーザに対応する前記機能制限情報において制限された機能を利用するか否かを判定するステップと、前記プログラムが前記特定のユーザに対応する前記機能制限情報によって制限された機能を利用する場合、前記プログラムに含まれるコマンドを書き換えることによって前記機能制限情報で制限された機能を利用不可能な状態に書き換えるステップと、前記機能制限情報で制限された機能を利用不可能な状態に書き換えられた前記プログラムを前記特定のユーザの前記ユーザ記憶領域にインストールするステップと、を実行させることを特徴とする構成である。
【発明の効果】
【００２５】
本発明によれば、情報処理装置にインストールするためのプログラムを作成する際のプログラム作成者の作業負担を軽減して効率的なプログラム作成を可能にすると共に、管理者による作業負担も軽減することができるようになる。
【図面の簡単な説明】
【００２６】
【図１】情報処理装置が含まれるネットワーク構成の一例を示す図である。
【図２】情報処理装置のハードウェア構成の一例を示す図である。
【図３】ユーザごとに設定される機能制限情報と各ユーザに共通した共通機能制限情報との関係を示す図である。
【図４】ＣＰＵがアプリケーション管理プログラムを実行することによって実現される機能構成の一例を示すブロック図である。
【図５】アプリケーションプログラムのインストール時における判定部および書換部の動作の一例を示す図である。
【図６】アプリケーションプログラムの実行時における判定部および書換部の動作の一例を示す図である。
【図７】アプリケーションプログラムのインストール時における書き換え処理の一例を示す図である。
【図８】アプリケーションプログラムの実行時における書き換え処理の一例を示す図である。
【図９】第１の実施の形態において情報処理装置で行われる処理手順の一例を示すフローチャートである。
【図１０】インストール処理の詳細な処理手順の一例を示すフローチャートである。
【図１１】アプリケーション実行処理の詳細な処理手順の一例を示すフローチャートである。
【図１２】機能制限情報更新処理の詳細な処理手順の一例を示すフローチャートである。
【図１３】第２の実施の形態において情報処理装置のＣＰＵがライブラリをインストールする際の機能構成の一例を示すブロック図である。
【図１４】ユーザＡのユーザフォルダにインストールされるライブラリの概念を示す図である。
【図１５】ユーザＢのユーザフォルダにインストールされるライブラリの概念を示す図である。
【図１６】ユーザＣのユーザフォルダにインストールされるライブラリの概念を示す図である。
【図１７】第２の実施の形態において情報処理装置のＣＰＵがアプリケーションプログラムをインストールする際および実行する際の機能構成の一例を示すブロック図である。
【図１８】第２の実施の形態における情報処理装置で行われる処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００２７】
以下、本発明に関する好ましい実施形態について図面を参照しつつ詳細に説明する。尚、以下に説明する実施形態において互いに共通する部材には同一符号を付しており、それらについての重複する説明は省略する。
【００２８】
（第１の実施の形態）
図１は、オフィス環境などに設置される情報処理装置１が含まれるネットワーク構成の一例を示す図である。情報処理装置１は、コンピュータ２およびサーバ３に対し、ＬＡＮなどのネットワーク４を介して接続されている。尚、ネットワーク４にはコンピュータ２およびサーバ３以外の装置が接続されていても良い。
【００２９】
情報処理装置１は、例えばＭＦＰ（Multifunction Peripheral）などと呼ばれる装置であり、コピー機能、プリンタ機能、スキャン機能、ＦＡＸ機能、メール送信機能などの複数の情報処理機能（以下、単に「機能」とも言う。）を備えている。これら各機能は、情報処理装置１において予めインストールされているアプリケーションプログラムが実行されることによって作動する。例えば、ユーザがログイン操作を行って情報処理装置１にログインし、情報処理装置１に予めインストールされているアプリケーションプログラムを選択して実行指示を行うことにより、情報処理装置１はユーザによって選択されたアプリケーションプログラムを実行し、そのアプリケーションプログラムに対応する機能を作動させる。
【００３０】
このような情報処理装置１は、例えばコンピュータ２又はサーバ３からネットワーク４経由で送信されるアプリケーションプログラム８を受信し、その受信したアプリケーションプログラム８をインストールするように構成される。このようなアプリケーションプログラム８は、例えば情報処理装置１のユーザやその他のプログラム作成者により、スクリプト言語などを用いて作成されるプログラムである。また、このようなアプリケーションプログラム８は、情報処理装置１に搭載されている複数の情報処理機能のうちの少なくとも１つの機能を動作させるためのプログラムとして作成される。
【００３１】
このようなアプリケーションプログラム８には種々のプログラムがある。その一例を挙げると、スキャン機能を動作させて原稿を読み取った後、メール送信機能を動作させてスキャン機能により得られた画像データを添付した電子メールを特定の送信宛先に送信する処理手順が定められたプログラムがある。情報処理装置１のユーザがそのようなアプリケーションプログラム８を作成して予め情報処理装置１にインストールしておき、情報処理装置１を使用する際にはそのアプリケーションプログラム８を選択して実行指示を行えば、原稿を読み取る動作と電子メールの送信動作とが一連の動作で行われるようになるので、情報処理装置１の利便性が向上する。ただし、アプリケーションプログラム８は、上記例示したものに限られない。また情報処理装置１には、それぞれ異なる複数のアプリケーションプログラム８がインストールされることもある。
【００３２】
図２は、情報処理装置１のハードウェア構成の一例を示す図である。情報処理装置１は、各種プログラムを実行するＣＰＵ１０と、ＣＰＵ１０によるプログラム実行に伴って一時的なデータなどを記憶するメモリ１１と、ユーザが情報処理装置１を操作する際のユーザインタフェースとなる操作パネル１２と、原稿を読み取るスキャナ部１５と、印刷物を出力するプリンタ部１６と、ＦＡＸデータの送受信を行うＦＡＸ部１７と、ネットワーク４に接続するためのネットワークインタフェース１８と、ハードディスク装置などの不揮発性記憶手段で構成された記憶装置１９とを備えており、これら各部がデータバス２０を介して相互にデータの入出力を行う構成である。また操作パネル１２は、ユーザに対して各種情報を表示するための液晶ディスプレイなどで構成される表示部１３と、ユーザによる各種入力操作を受け付ける操作部１４とを備えている。操作部１４は、例えば表示部１３の表示画面上に配置されるタッチパネルキーと、表示画面の周囲に配置される押しボタンキーとを備えている。
【００３３】
記憶装置１９には、情報処理装置１の出荷時に予めインストールされているアプリケーション管理プログラム２１が記憶されている。また記憶装置１９には、情報処理装置１を使用する複数のユーザが共通して利用可能な共通記憶領域である共有フォルダ２２と、複数のユーザのそれぞれに対して個別に設定された各ユーザ専用のユーザ記憶領域であるユーザフォルダ２３とが設けられている。
【００３４】
本実施形態では説明を簡単にするため、ユーザＡ，Ｂ，Ｃの３人のユーザが情報処理装置１のユーザとして登録されている場合を例示する。共有フォルダ２２は、それらユーザＡ，Ｂ，Ｃのそれぞれが自由にアクセス可能な記憶領域となっている。そのため、各ユーザは、共有フォルダ２２に記憶されているプログラム、データ、および情報などにアクセスしてそれらを利用することができる。
【００３５】
ユーザフォルダ２３は、ユーザＡに対応するユーザフォルダ２３ａと、ユーザＢに対応するユーザフォルダ２３ｂと、ユーザＣに対応するユーザフォルダ２３ｃとで構成される。このうち、ユーザフォルダ２３ａは、ユーザＡのみがアクセス可能な記憶領域となっている。そのため、ユーザＡは、ユーザフォルダ２３ａに記憶されているプログラム、データ、および情報などにアクセスしてそれらを自由に利用することができる。これに対し、ユーザＢ，Ｃは、ユーザフォルダ２３ａに記憶されているプログラム、データ、および情報などにアクセスすることはできず、それらを利用することもできない。他のユーザフォルダ２３ｂ，２３ｃについても同様であり、ユーザＢ又はＣだけがアクセス可能な記憶領域となっている。
【００３６】
またユーザフォルダ２３ａ，２３ｂ，２３ｃには、ユーザＡ，Ｂ，Ｃのそれぞれに対応する機能制限情報２５ａ，２５ｂ，２５ｃが記憶されている。これら機能制限情報２５ａ，２５ｂ，２５ｃは、例えば情報処理装置１の管理者によってユーザＡ，Ｂ，Ｃのそれぞれに対して個別に設定される情報であり、情報処理装置１における情報処理機能を利用する際の機能制限が定義された情報である。すなわち、機能制限情報２５ａは、ユーザＡが情報処理装置１の情報処理機能を利用する際の機能制限が定義された情報である。同様に、機能制限情報２５ｂは、ユーザＢが情報処理装置１の情報処理機能を利用する際の機能制限が定義された情報であり、機能制限情報２５ｃは、ユーザＣが情報処理装置１の情報処理機能を利用する際の機能制限が定義された情報である。
【００３７】
また共有フォルダ２２には、各ユーザＡ，Ｂ，Ｃに共通する共通機能制限情報２４が記憶されている。この共通機能制限情報２４は、例えば各ユーザＡ，Ｂ，Ｃに対応する機能制限情報２５ａ，２５ｂ，２５ｃに基づいて自動的に設定される情報であり、各ユーザＡ，Ｂ，Ｃが共有フォルダ２２にアクセスして情報処理装置１における情報処理機能を利用する際の機能制限が定義された情報である。このような共通機能制限情報２４は、複数のユーザＡ，Ｂ，Ｃの全てが共通して利用可能な機能を除いて情報処理装置１の情報処理機能の利用を制限するための情報となっている
【００３８】
図３は、ユーザごとの機能制限情報２５ａ，２５ｂ，２５ｃと各ユーザに共通した共通機能制限情報２４との関係を示す図である。図３に示す例では、ユーザフォルダ２３ａに記憶されるユーザＡの機能制限情報２５ａは、コピー機能、スキャン機能およびメール送信機能のそれぞれが利用可能であることを示す情報となっている。また、ユーザフォルダ２３ｂに記憶されるユーザＢの機能制限情報２５ｂは、コピー機能およびメール送信機能が利用可能であるが、スキャン機能の利用が制限されており、スキャン機能が利用不可能であることを示す情報となっている。さらに、ユーザフォルダ２３ｃに記憶されるユーザＣの機能制限情報２５ｃは、コピー機能およびスキャン機能が利用可能であるが、メール送信機能の利用が制限されており、メール送信機能が利用不可能であることを示す情報となっている。尚、このような機能制限情報２５ａ，２５ｂ，２５ｃには、実際には情報処理装置１に搭載されている複数の情報処理機能のそれぞれについて利用可能又は利用不可能であることを示す情報が設定されるが、図３では説明を簡単にするため、コピー機能、スキャン機能およびメール送信機能の３つの機能のみを示している。
【００３９】
共有フォルダ２２には、上記のような各ユーザＡ，Ｂ，Ｃに対して個別に設定された機能性情報２５ａ，２５ｂ，２５ｃに基づいて生成される共通機能制限情報２４が記憶される。上述したように、共通機能制限情報２４は、複数のユーザＡ，Ｂ，Ｃの全てが共通して利用可能な機能を除いて情報処理装置１の情報処理機能の利用を制限するための情報として生成される。図３の例では、各ユーザＡ，Ｂ，Ｃの機能制限情報２５ａ，２５ｂ，２５ｃを参照すると、全てのユーザＡ，Ｂ，Ｃが共通して利用可能な機能はコピー機能のみである。それ故、共通機能制限情報２４は、コピー機能のみが利用可能であり、それ以外のスキャン機能およびメール送信機能の利用が制限された情報となる。すなわち、共通機能制限情報２４は、スキャン機能およびメール送信機能が利用不可能であることを示す情報となる。
【００４０】
上記のように構成される情報処理装置１は、電源投入時にＣＰＵ１０がアプリケーション管理プログラム２１を読み出して実行する。図４は、ＣＰＵ１０がアプリケーション管理プログラム２１を実行することによって実現されるＣＰＵ１０の機能構成の一例を示すブロック図である。尚、図４では、ユーザＡに対応するユーザフォルダ２３ａのみを示しており、ユーザＢ，Ｃに対応するユーザフォルダ２３ｂ，２３ｃは図示を省略している。
【００４１】
図４に示すように、ＣＰＵ１０は、アプリケーション管理プログラム２１を実行することにより、アプリケーション管理部３０として機能する。このアプリケーション管理部３０は、例えば情報処理装置１に電源が投入されている間、常駐した状態で機能する処理部である。このアプリケーション管理部３０は、図４に示すように、さらに、機能制限管理部３１、インストール部３２、判定部３３、書換部３４および実行部３５として機能する。以下、これら各部について詳しく説明する。
【００４２】
機能制限管理部３１は、各ユーザＡ，Ｂ，Ｃのユーザフォルダ２３ａ，２３ｂ，２３ｃに記憶される機能制限情報２５ａ，２５ｂ，２５ｃを管理する処理部である。例えば、情報処理装置１の管理者が各ユーザＡ，Ｂ，Ｃに対応する機能制限情報２３ａ，２３ｂ，２３ｃを新たに設定した場合、機能制限管理部３１は、管理者による設定操作に基づいて各ユーザＡ，Ｂ，Ｃに対応するユーザフォルダ２３ａ，２３ｂ，２３ｃに機能制限情報２５ａ，２５ｂ，２５ｃを新規に登録する。また機能制限管理部３１は、ユーザフォルダ２３ａ，２３ｂ，２３ｃに機能制限情報２５ａ，２５ｂ，２５ｃを登録すると、それに伴い、共通機能制限情報２４を生成する。そして共通機能制限情報２４を共有フォルダ２２に保存する。
【００４３】
また各ユーザＡ，Ｂ，Ｃに対して予め設定されている機能制限情報２５ａ，２５ｂ，２５ｃは、管理者によって更新されることがある。この場合、機能制限管理部３１は、管理者による更新操作に基づいて更新対象となるユーザを特定し、そのユーザのユーザフォルダに記憶されている機能制限情報を更新する。例えば、管理者がユーザＡの機能制限情報２５ａを更新した場合、機能制限管理部３１は、ユーザフォルダ２３ａの機能制限情報２５ａを更新する。また機能制限管理部３１は、ユーザフォルダ２３ａ，２３ｂ又は２３ｃに記憶されている機能制限情報２５ａ，２５ｂ又は２５ｃを更新した場合、それに伴って、共有フォルダ２２の共通機能制限情報２４を更新する。
【００４４】
このように機能制限管理部３１は、各ユーザＡ，Ｂ，Ｃに対して個別に設定される機能制限情報２５ａ，２５ｂ，２５ｃが更新される都度、それに対応して共有フォルダ２２に記憶される共通機能制限情報２４を更新する。したがって、共有フォルダ２２には、常に、各ユーザＡ，Ｂ，Ｃに対して個別に設定される機能制限情報２５ａ，２５ｂ，２５ｃが反映された共通機能制限情報２４が保持される。
【００４５】
尚、管理者による機能制限情報２５ａ，２５ｂ又は２５ｃの登録操作や更新操作は、情報処理装置１の操作パネル１２に対して直接行われるものであっても良いし、また管理者が使用するコンピュータ２などから遠隔操作で行われるものであっても良い。
【００４６】
次にインストール部３２は、情報処理装置１に対して新たなアプリケーションプログラム８をインストールする処理部である。このインストール部３２は、例えばネットワークインタフェース１８を介して受信するアプリケーションプログラム８を全てのユーザが利用可能なように、共有フォルダ２２にインストールする。インストール部３２は、インストール対象となるアプリケーションプログラム８を取得すると、判定部３３を機能させる。
【００４７】
判定部３３は、アプリケーションプログラムに含まれるコマンドを解析することにより、そのアプリケーションプログラムが共通機能制限情報２４又は機能制限情報２５ａ，２５ｂ，２５ｃで制限された機能を利用するか否かを判定する処理部である。この判定部３３は、アプリケーションプログラム８のインストール時において、インストール対象となるアプリケーションプログラム８に含まれるコマンドを解析することにより、そのアプリケーションプログラム８が共通機能制限情報２４で制限された機能を利用するか否かを判定する。そしてインストール対象であるアプリケーションプログラム８が共通機能制限情報２４で制限された機能を利用する場合、判定部３３は、書換部３４を機能させる。
【００４８】
書換部３４は、アプリケーションプログラムに含まれるコマンドを書き換える処理部である。この書換部３４は、アプリケーションプログラム８のインストール時において、インストール対象となるアプリケーションプログラム８に含まれるコマンドを書き換える。具体的に説明すると、書換部３４は、インストール対象であるアプリケーションプログラム８に含まれるコマンドであって共通機能制限情報２４で制限された機能を利用するためのコマンドを、共通機能制限情報２４で制限された機能を利用しない別のコマンドに書き換える。したがって、インストール対象となるアプリケーションプログラム８は、複数のユーザＡ，Ｂ，Ｃの全てが共通して利用可能な機能だけを利用するプログラムに書き換えられる。
【００４９】
インストール部３２は、上記のようにして書換部３４によりコマンドの書き換えられたアプリケーションプログラム８ａを共有フォルダ２２にインストールする。したがって、共有フォルダ２２にインストールされるアプリケーションプログラム８ａは、複数のユーザＡ，Ｂ，Ｃの全てが共通して利用可能な機能だけを利用することが可能なプログラムとしてインストールされる。
【００５０】
図５は、アプリケーションプログラム８のインストール時における判定部３３および書換部３４の動作の一例を示す図である。ここでは、図５に示すように、インストール対象であるアプリケーションプログラム８が、コピー機能、スキャン機能およびメール送信機能を利用するプログラムである場合を例示する。この場合、判定部３３は、アプリケーションプログラム８を解析することにより、コピー機能、スキャン機能およびメール送信機能の３つの機能を利用するプログラムであることを把握する。そして判定部３３は、共有フォルダ２２に記憶されている共通機能制限情報２４を取得し、アプリケーションプログラム８で利用される機能が共通機能制限情報２４によって制限されている機能であるか否かを判定する。図５の例の場合は、アプリケーションプログラム８で利用されるスキャン機能とメール送信機能とが、共通機能制限情報２４によって制限された機能に該当する。
【００５１】
このような場合、判定部３３に続いて書換部３４が機能し、書換部３４は、アプリケーションプログラム８が共通機能制限情報２４に適合するように、プログラムに含まれるコマンドを書き換える。すなわち、スキャン機能を実行させるためのコマンドを、スキャン機能を実行させない別のコマンドに書き換える。またメール送信機能を実行させるためのコマンドを、メール送信機能を実行させない別のコマンドに書き換える。このような書き換えにより、コピー機能、スキャン機能およびメール送信機能の３つの機能を利用するアプリケーションプログラム８は、そのインストール時にコピー機能のみを利用するアプリケーションプログラム８ａに書き換えられる。そして図５に示すように、スキャン機能とメール送信機能とを利用することができなくなったアプリケーションプログラム８ａが共有フォルダ２２にインストールされる。
【００５２】
尚、判定部３３による判定の結果、インストール対象であるアプリケーションプログラム８が共通機能制限情報２４で制限された機能を利用しない場合、書換部３４によるプログラムの書き換えは行われない。この場合、共有フォルダ２２にインストールされるアプリケーションプログラム８ａは、インストール部３２がインストール対象として取得したアプリケーションプログラム８と同じプログラムとなる。
【００５３】
このようにして共有フォルダ２２にインストールされるアプリケーションプログラム８ａは、各ユーザが選択して実行することができるように操作パネル１２の表示部１３に一覧表示される。具体的に説明すると、アプリケーション管理部３０は、情報処理装置１に誰もログインしていない状態では、操作パネル１２の表示部１３に、ユーザに対してログイン操作を促す画面を表示している。そしてユーザＡ，Ｂ，Ｃのいずれかがログイン操作を行って情報処理装置１にログインすると、アプリケーション管理部３０は、情報処理装置１に予めインストールされているアプリケーションプログラムの中からログインユーザが利用可能なアプリケーションプログラムのリストを作成し、表示部１３に一覧表示する。このとき、アプリケーション管理部３０は、共有フォルダ２２に記憶されているアプリケーションプログラム８ａと、ログインユーザに対応するユーザフォルダ２３に記憶されているアプリケーションプログラムとに基づいてリストを作成し、表示部１３に表示する。したがって、各ユーザＡ，Ｂ，Ｃは、情報処理装置１にログインすることにより、情報処理装置１に予めインストールされている少なくとも１つのアプリケーションプログラムの中から所望のアプリケーションプログラムを選択してその実行を指示することができる。
【００５４】
ログインユーザによるアプリケーションプログラムの実行指示が行われると、アプリケーション管理部３０において実行部３５が機能する。実行部３５は、ログインユーザによって選択されたアプリケーションプログラムを読み出して実行する処理部である。この実行部３５は、ログインユーザによって選択されたアプリケーションプログラムが、共有フォルダ２２に記憶されているアプリケーションプログラム８ａである場合、そのアプリケーションプログラム８ａをログインユーザに対応するユーザフォルダ２３に格納する。このとき、インストール時と同様に、実行部３３は、判定部３３および書換部３４を機能させる。
【００５５】
判定部３３は、共有フォルダ２２に記憶されているアプリケーションプログラム８ａの実行時において、ログインユーザに対応するユーザフォルダ２３に格納されている機能制限情報を取得する。そして判定部３３は、実行対象となるアプリケーションプログラム８ａに含まれるコマンドを解析することにより、ログインユーザによって利用可能な機能が利用不可能な状態に書き換えられているか否かを判定する。そして実行対象であるアプリケーションプログラム８ａにおいて、ログインユーザの利用可能な機能が利用不可能な状態に書き換えられている場合、判定部３３は、書換部３４を機能させる。
【００５６】
書換部３４は、アプリケーションプログラム８ａの実行時において、実行対象となるアプリケーションプログラム８ａに含まれるコマンドを書き換える。具体的に説明すると、書換部３４は、実行対象であるアプリケーションプログラム８ａに含まれるコマンドであって共通機能制限情報２４に従って書き換えられたコマンドを、ログインユーザに対応する機能制限情報に基づいてログインユーザが利用可能な元のコマンドに書き換える。つまり、共有フォルダ２２に記憶されたアプリケーションプログラム８ａは、ログインユーザの指示に基づいて実行されるタイミングで、そのログインユーザが利用可能な機能を利用できる状態に書き換えられる。
【００５７】
実行部３５は、上記のようにして書換部３４によりコマンドの書き換えられたアプリケーションプログラム８ｂをログインユーザに対応するユーザフォルダ２３に保存する。そしてユーザフォルダ２３に保存されたアプリケーションプログラム８ｂを読み出して実行する。
【００５８】
図６は、アプリケーションプログラム８ａの実行時における判定部３３および書換部３４の動作の一例を示す図である。ここでは、図６に示すように、共有フォルダ２２にインストールされたアプリケーションプログラム８ａが、コピー機能、スキャン機能およびメール送信機能の３つの機能のうち、スキャン機能とメール送信機能との２つの機能が利用不可能な状態に書き換えられており、ユーザＡがログインユーザとなってそのアプリケーションプログラム８ａの実行を指示した場合を例示する。
【００５９】
図６に示すように、判定部３３は、アプリケーションプログラム８ａの実行時に、アプリケーションプログラム８ａに含まれるコマンドを解析することにより、コピー機能、スキャン機能およびメール送信機能の３つの機能のうち、スキャン機能とメール送信機能との２つの機能が利用不可能な状態に書き換えられていることを把握する。そして判定部３３は、ユーザＡのユーザフォルダ２３ａに記憶されている機能制限情報２５ａを取得し、アプリケーションプログラム８ａで利用不可能な状態に書き換えられた機能が機能制限情報２５ａによって利用可能とされている機能であるか否かを判定する。図６の例の場合は、アプリケーションプログラム８ａで利用不可能な状態に書き換えられたスキャン機能とメール送信機能とが、ユーザＡの機能制限情報２５ａにおいて利用可能とされている機能に該当する。
【００６０】
このような場合、判定部３３に続いて書換部３４が機能する。そして書換部３４は、アプリケーションプログラム８ａがユーザＡの機能制限情報２５ａに適合するように、プログラムに含まれるコマンドを書き換える。すなわち、スキャン機能を実行させないように書き換えられたコマンドを、元のスキャン機能を実行させるためのコマンドに書き換える。またメール送信機能を実行させないように書き換えられたコマンドを、元のメール送信機能を実行させるためのコマンドに書き換える。このような書き換えによって得られるアプリケーションプログラム８ｂは、ユーザＡの機能制限情報２５ａに対応して、コピー機能、スキャン機能およびメール送信機能の３つの機能を利用することが可能なプログラムとなる。そして、このようなアプリケーションプログラム８ｂは、ユーザＡに対応するユーザフォルダ２３ａに格納される。
【００６１】
尚、判定部３３による判定の結果、実行対象であるアプリケーションプログラム８ａにおいて利用不可能な状態となっている機能が、ログインユーザの機能制限情報において制限されている機能と一致する場合、書換部３４によるプログラムの書き換えは行われない。この場合、ユーザフォルダ２３に保存されるアプリケーションプログラム８ｂは、共有フォルダ２２にインストールされているアプリケーションプログラム８ａと同じプログラムとなる。
【００６２】
そして実行部３５は、ログインユーザのユーザフォルダ２３に保存されたアプリケーションプログラム８ｂを読み出して実行することにより、ログインユーザに対して予め設定された機能制限情報に適合した動作を行うようになる。尚、ログインユーザによって実行指示の与えられたアプリケーションプログラム８ｂが既にログインユーザのユーザフォルダ２３に保存されている場合は、上記のような判定部３３や書換部３４による処理は行う必要がなく、そのログインユーザのユーザフォルダ２３に保存されているアプリケーションプログラム８ｂを読み出してそのまま実行すれば良い。
【００６３】
ここで、判定部３３および書換部３４によるアプリケーションプログラムの書き換えの一例について説明する。図７は、アプリケーションプログラム８のインストール時における書き換えの一例を示す図である。本実施形態では、図７に示すように、共有フォルダ２２に、情報処理装置１の各種情報処理機能を動作させるための具体的な処理手順が定義された複数のライブラリ４０が予め格納されている。例えばライブラリ４０ａは、コピー機能を動作させるためのライブラリである。このライブラリ４０ａには、スキャナ部１５とプリンタ部１６とを連携して動作させるための処理手順が定義されている。またライブラリ４０ｂは、スキャン機能を動作させるためのライブラリである。このライブラリ４０ｂには、スキャナ部１５とネットワークインタフェース１８とを連携して動作させるための処理手順が定義されている。さらにライブラリ４０ｃは、メール送信機能を動作させるためのライブラリである。このライブラリ４０ｃには、ネットワークインタフェース１８を介して電子メールを送信するための処理手順が定義されている。
【００６４】
このようなライブラリ４０ａ，４０ｂ，４０ｃは、アプリケーションプログラムと同様に情報処理装置１において実行されるプログラムの一種であるが、それ単独で実行されるプログラムではない。すなわち、ライブラリ４０ａ，４０ｂ，４０ｃは、情報処理装置１に搭載された各種情報処理機能のうちの特定の機能を動作させるための一部の処理だけを実行するプログラムである。このようなライブラリ４０ａ，４０ｂ，４０ｃは、ＣＰＵ１０で実行されるアプリケーションプログラムによって呼び出されて実行されるようになっている。これにより、ライブラリ４０ａ，４０ｂ，４０ｃによって実現される処理は、アプリケーションプログラムによる全体的な処理の一部に組み込まれ、情報処理装置１はアプリケーションプログラムによって利用される情報処理機能を正常に動作させるようになる。
【００６５】
尚、このようなライブラリ４０は、例えば情報処理装置１に搭載された複数の情報処理機能のそれぞれに対して予め設定され、共有フォルダ２２に保存されている。また、このようなライブラリ４０は、共有フォルダ２２だけでなく、各ユーザのユーザフォルダ２３にも格納されている。
【００６６】
また本実施形態では、図７に示すように、共有フォルダ２２に、複数のライブラリ４０のそれぞれに対応するダミーライブラリ４１が予め格納されている。ダミーライブラリ４１は、情報処理装置１の各種情報処理機能を実際に動作させるためものではなく、それら実際の動作に代わる代替処理が定義されたライブラリである。例えばダミーライブラリ４１ａは、コピー機能に対応するダミーライブラリである。このダミーライブラリ４１ａには、スキャナ部１５やプリンタ部１６を実際に動作させることなく、それに代わる代替処理が定義されている。またダミーライブラリ４１ｂは、スキャン機能に対応するダミーライブラリである。このダミーライブラリ４１ｂには、スキャナ部１５やネットワークインタフェース１８を実際に動作させることなく、それに代わる代替処理が定義されている。さらにダミーライブラリ４１ｃは、メール送信機能に対応するダミーライブラリである。このダミーライブラリ４１ｃには、実際に電子メールを送信することなく、それに代わる代替処理が定義されている。
【００６７】
尚、このようなダミーライブラリ４１は、共有フォルダ２２に格納されるライブラリ４０のそれぞれに対応して設けられる。また、このようなダミーライブラリ４１は、共有フォルダ２２だけでなく、各ユーザのユーザフォルダ２３にも格納されている。
【００６８】
プログラム作成者などが、コピー機能、スキャナ機能およびメール送信機能を利用するアプリケーションプログラム８を作成する場合、上述したライブラリ４０ａ，４０ｂ，４０ｃを呼び出して実行させるようなプログラムが作成される。そのため、情報処理装置１においてインストール対象となるアプリケーションプログラム８には、ライブラリ４０ａ，４０ｂ，４０ｃを呼び出して実行するコマンドが含まれる。特に、アプリケーションプログラム８がスクリプト言語などで作成される場合、各種コマンドはテキスト形式で表記されており、それら各種コマンドの中に、ライブラリ４０ａ，４０ｂ，４０ｃを呼び出して実行するためのコマンドが含まれる。
【００６９】
そのため、判定部３３は、アプリケーションプログラム８のインストール時に、そのアプリケーションプログラム８に含まれるコマンドをライン毎に解析していき、共通機能制限情報２４で規制されている機能を動作させるためのライブラリ４０を呼び出して実行させるライブラリ実行コマンドが含まれているか否かを判定する。その結果、インストール対象であるアプリケーションプログラム８に規制されている機能を動作させるライブラリ実行コマンドが含まれている場合、図７に示すように、書換部３４が、そのライブラリ実行コマンドを、それに対応したダミーライブラリ実行コマンドに書き換える。例えば、アプリケーションプログラム８が共通機能制限情報２４で制限されているスキャン機能およびメール送信機能のそれぞれを動作させるライブラリ実行コマンドを含んでいる場合、書換部３４は、それらのライブラリ実行コマンドをダミーライブラリ実行コマンドに書き換える。この場合、スキャン機能に対応したライブラリ実行コマンドは、スキャン機能に対応したダミーライブラリ実行コマンドに書き換えられ、メール送信機能に対応したライブラリ実行コマンドは、メール送信機能に対応したダミーライブラリ実行コマンドに書き換えられる。
【００７０】
このような書き換え処理により、コピー機能、スキャン機能およびメール送信機能の３つの機能が利用可能なアプリケーションプログラム８は、コピー機能のみが利用可能であってスキャン機能およびメール送信機能の２つの機能が利用不可能な状態に書き換えられたアプリケーションプログラム８ａが生成される。そして上述したようにアプリケーションプログラム８ａは、共有フォルダ２２にインストールされる。
【００７１】
したがって、仮に、実行部３５が、共有フォルダ２２にインストールされたアプリケーションプログラム８ａを読み出してそのまま実行する場合には、全てのユーザが共通して利用可能な機能のみが動作することとなり、それ以外の機能は動作しない。それ故、各ユーザＡ，Ｂ，Ｃは、全てのユーザが共通して利用可能な機能のみを利用することができ、自身が利用できない機能はこの状態でも利用することができない。
【００７２】
ただし、この状態では、各ユーザＡ，Ｂ，Ｃは、自身が利用可能な機能でも利用することができないことがある。そのため、各ユーザＡ，Ｂ，Ｃが情報処理装置１にログインしてアプリケーションプログラム８ａの実行を指示したときには、上述したように書換部３４によってログインユーザの利用可能な機能が利用可能な状態に書き換えられたアプリケーションプログラム８ｂが生成され、そのアプリケーションプログラム８ｂがログインユーザのユーザフォルダ２３に保存される。
【００７３】
図８は、アプリケーションプログラム８ａの実行時における書き換えの一例を示す図である。例えばユーザＡがアプリケーションプログラム８ａの実行を指示した場合、判定部３３は、そのアプリケーションプログラム８ａに含まれるコマンドをライン毎に解析していき、ダミーライブラリ実行コマンドが含まれているか否かを判定する。その結果、ダミーライブラリ実行コマンドが含まれている場合、図８に示すように、書換部３４は、ユーザＡの機能制限情報２５ａに基づいてダミーライブラリ実行コマンドを、それに対応するライブラリ実行コマンドに書き換える。
【００７４】
このような書き換え処理により、コピー機能、スキャン機能およびメール送信機能の３つの機能のうちのスキャン機能およびメール送信機能の２つの機能が利用不可能な状態に書き換えられたアプリケーションプログラム８ａは、スキャン機能およびメール送信機能の２つの機能が利用可能な状態に書き換えられ、ユーザＡの機能制限情報２５ａに適合して３つの機能の全てが利用可能なアプリケーションプログラム８ｂが生成される。そしてこのようなアプリケーションプログラム８ｂは、ユーザＡのユーザフォルダ２３ａに保存される。
【００７５】
したがって、実行部３５が、ユーザフォルダ２３ａに保存されたアプリケーションプログラム８ｂを読み出して実行すると、ユーザＡの利用可能な機能が全て動作することとなり、それ以外の機能は動作しない。それ故、ユーザＡは、管理者によって設定された自身の利用可能な機能を全て正常に利用することができるようになる。
【００７６】
また、ユーザＡのユーザフォルダ２３ａにアプリケーションプログラム８ｂが保存されると、その保存状態は継続される。そのため、ユーザＡがその後再びアプリケーションプログラム８ｂの実行を指示した場合には、上記のような書き換え処理を行う必要はなく、実行部３５は速やかにアプリケーションプログラム８ｂを実行することができる。それ故、アプリケーションプログラム８ｂを実行する際の処理効率が向上する。
【００７７】
また本実施形態では、共有フォルダ２２に保存されたアプリケーションプログラム８ａおよびユーザフォルダ２３に保存されたアプリケーションプログラム８ｂは、共有フォルダ２２に格納されている共通機能制限情報２４又は各ユーザのユーザフォルダ２３に格納されている機能制限情報２５ａ，２５ｂ又は２５ｃが更新されると、必要に応じて再び書き換えられる。すなわち、管理者によって機能制限情報２５ａ，２５ｂ，２５ｃのいずれかを更新する操作が行われると、機能制限管理部３１は、それに応じてユーザフォルダ２３ａ，２３ｂ，２３ｃに格納されている機能制限情報２５ａ，２５ｂ，２５ｃのいずれかを更新する。これに伴い、機能制限管理部３１は、必要に応じて共有フォルダ２２の共通機能制限情報２４を更新する。このように機能制限管理部３１によって機能制限情報２５ａ，２５ｂ，２５ｃ又は共通機能制限情報２４が更新されると、判定部３３および書換部３４が機能する。そして判定部３３は、各ユーザのユーザフォルダ２３に保存されているアプリケーションプログラム８ｂが、管理者によって更新された機能制限情報２５ａ，２５ｂ又は２５ｃに適合するか否かを判定する。また判定部３３は、共有フォルダ２２に保存されているアプリケーションプログラム８ａが共通機能制限情報２４に適合するか否かを判定する。そして書換部３４は、その判定結果に基づいて、ユーザフォルダ２３に保存されているアプリケーションプログラム８ｂ又は共有フォルダ２２に保存されているアプリケーションプログラム８ａを書き換える。これにより、共有フォルダ２２又はユーザフォルダ２３に保存されるアプリケーションプログラム８ａ，８ｂは、各ユーザＡ，Ｂ，Ｃに対して個別に設定される機能制限情報２５ａ，２５ｂ，２５ｃに適合するプログラムとして管理される。
【００７８】
次に情報処理装置１における処理手順について詳しく説明する。図９乃至図１２は、第１の実施の形態における情報処理装置１で行われる処理手順の一例を示すフローチャートである。この処理は、ＣＰＵ１０がアプリケーション管理プログラム２１を起動することによって行われる。つまり、この処理は、ＣＰＵ１０が上述したアプリケーション管理部３０として機能する場合の処理手順である。
【００７９】
ＣＰＵ１０は、アプリケーション管理プログラム２１を起動すると、まず、アプリケーションプログラム８のインストールを行うか否かを判断する（ステップＳ１）。ここでは、例えばネットワーク４を介してコンピュータ２又はサーバ３からアプリケーションプログラム８のインストール指示を受信したか否かが判断される。そしてインストール指示を受信していれば（ステップＳ１でＹＥＳ）、アプリケーションプログラム８のインストール処理を実行する（ステップＳ２）。そしてインストール処理の終了後、ステップＳ３に進む。またインストール指示がない場合（ステップＳ１でＮＯ）、ステップＳ２をスキップして、そのままステップＳ３に進む。
【００８０】
次にＣＰＵ１０は、情報処理装置１にインストールされているアプリケーションプログラムの実行指示をあったか否かを判断する（ステップＳ３）。ここでは、例えば情報処理装置１にログインしたログインユーザが、情報処理装置１にインストールされている一のアプリケーションプログラムを選択して実行指示を行ったか否かが判断される。そしてアプリケーションプログラムの実行指示があれば（ステップＳ３でＹＥＳ）、アプリケーション実行処理を実行する（ステップＳ４）。そしてアプリケーション実行処理の終了後、ステップＳ５に進む。またアプリケーションプログラムの実行指示がない場合（ステップＳ３でＮＯ）、ステップＳ４をスキップして、そのままステップＳ５に進む。
【００８１】
次にＣＰＵ１０は、機能制限情報２５ａ，２５ｂ又は２５ｃを更新するか否かを判断する（ステップＳ５）。ここでは、例えば管理者による機能制限情報２５ａ，２５ｂ又は２５ｃの更新指示が行われたか否かが判断される。そして機能制限情報２５ａ，２５ｂ又は２５ｃの更新を行う場合（ステップＳ５でＹＥＳ）、機能制限情報更新処理を実行する（ステップＳ６）。そして機能制限情報更新処理の終了後、ステップＳ１に戻る。また機能制限情報２５ａ，２５ｂ又は２５ｃの更新を行わない場合（ステップＳ５でＮＯ）、ステップＳ６をスキップして、そのままステップＳ１に戻る。
【００８２】
それ以後、ＣＰＵ１０は上述した処理を繰り返す。したがって、情報処理装置１に電源が投入されると、ＣＰＵ１０は、アプリケーション管理プログラム２１を起動して上記処理を繰り返し実行することになる。そのため、情報処理装置１に電源が投入されている状態で、新規なアプリケーションプログラム８のインストール指示があれば、ＣＰＵ１０はそれに伴ってインストール処理（ステップＳ２）を実行する。またログインユーザによるアプリケーションプログラムの実行指示があれば、ＣＰＵ１０はそれに伴ってアプリケーション実行処理（ステップＳ４）を実行する。さらに、管理者によって機能制限情報２５ａ，２５ｃ又は２５ｃが更新されると、ＣＰＵ１０はそれに伴って機能制限情報更新処理（ステップＳ６）を実行するので、管理者による更新がリアルタイムに反映されることとなる。以下、これらの処理について詳しく説明する。
【００８３】
図１０は、インストール処理（ステップＳ２）の詳細な処理手順の一例を示すフローチャートである。このインストール処理に伴い、ＣＰＵ１０は上述したインストール部３２、判定部３３および書換部３４として機能する。ＣＰＵ１０は、インストール処理を開始すると、まずインストール対象であるアプリケーションプログラム８を取得する（ステップＳ１０）。ここでは、例えばネットワークインタフェース１８がコンピュータ２又はサーバ３から受信したアプリケーションプログラム８がインストール対象として取得される。そしてＣＰＵ１０は、共有フォルダ２２に記憶されている共通機能制限情報２４を取得し（ステップＳ１１）、その後、インストール対象であるアプリケーションプログラム８に含まれるコマンドを解析する（ステップＳ１２）。ここでは、インストール対象であるアプリケーションプログラム８に、共通機能制限情報２４で制限されている機能を利用するためのコマンドが含まれているか否かが解析される。そして共通機能制限情報２４で制限されている機能を利用するためのコマンドが含まれている場合、そのようなコマンドは全て抽出される。
【００８４】
次にＣＰＵ１０は、上記解析結果に基づき、インストール対象であるアプリケーションプログラム８に、共通機能制限情報２４で制限されている機能を利用するためのコマンドが含まれているか否かを判断する（ステップＳ１３）。そして共通機能制限情報２４で制限されている機能を利用するためのコマンドが含まれていれば（ステップＳ１３でＹＥＳ）、そのようなコマンドを全て書き換える（ステップＳ１４）。ここでは、アプリケーションプログラム８に含まれている利用制限された機能を利用するためのコマンド（例えばライブラリ実行コマンド）を、その機能を利用しないコマンド（例えばダミーライブラリ実行コマンド）に書き換える。この書き換えにより、インストール対象として取得されたアプリケーションプログラム８は、共通機能制限情報２４で制限されている機能を利用しないアプリケーションプログラム８ａに書き換えられる。そしてコマンドの書き換えられたアプリケーションプログラム８ａがインストール対象となる。尚、インストール対象であるアプリケーションプログラム８に、共通機能制限情報２４で制限されている機能を利用するためのコマンドが含まれていない場合（ステップＳ１３でＮＯ）、そのアプリケーションプログラム８がそのままインストール対象のアプリケーションプログラム８ａとなる。
【００８５】
次にＣＰＵ１０は、上記のような処理によってインストール対象として得られるアプリケーションプログラム８ａを共有フォルダ２２にインストールする（ステップＳ１５）。これにより、アプリケーションプログラム８ａは、各ユーザＡ，Ｂ，Ｃが共通して利用可能な機能だけを利用可能なプログラムとして共有フォルダ２２にインストールされる。以上で、インストール処理が終了する。
【００８６】
次に図１１は、アプリケーション実行処理（ステップＳ４）の詳細な処理手順の一例を示すフローチャートである。このアプリケーション実行処理に伴い、ＣＰＵ１０は上述した実行部３５、判定部３３および書換部３４として機能する。ＣＰＵ１０は、アプリケーション実行処理を開始すると、まずユーザを特定する（ステップＳ２０）。ここでは、情報処理装置１にログインしているログインユーザが特定される。そしてＣＰＵ１０は、その特定したユーザに対応するユーザフォルダ２３を特定する（ステップＳ２１）。例えばログインユーザがユーザＡである場合、ＣＰＵ１０は、ユーザＡに対応するユーザフォルダ２３ａを特定する。
【００８７】
次にＣＰＵ１０は、その特定したユーザフォルダ２３に実行対象であるアプリケーションプログラム８ｂが保存されていないかどうか確認する（ステップＳ２２）。特定したユーザフォルダ２３にアプリケーションプログラム８ｂが保存されていない場合（ステップＳ２２でＹＥＳ）、ＣＰＵ１０は、その特定したユーザフォルダ２３からログインユーザに対応する機能制限情報２５ａ，２５ｂ又は２５ｃを読み出す（ステップＳ２３）。例えばログインユーザがユーザＡである場合、ここでは、ユーザＡに対応するユーザフォルダ２３ａからユーザＡに対して予め設定されている機能制限情報２５ａが読み出される。
【００８８】
そしてＣＰＵ１０は、共有フォルダ２２から実行対象であるアプリケーションプログラム８ａを読み出し（ステップＳ２４）、そのアプリケーションプログラム８ａに含まれるコマンドを解析する（ステップＳ２５）。ここでは、ログインユーザの機能制限情報２５ａ，２５ｂ又は２５ｃで利用可能となっている機能が、実行対象であるアプリケーションプログラム８ａにおいて利用不可能な状態に書き換えられているか否かが解析される。例えば、ログインユーザの機能制限情報２５ａ，２５ｂ又は２５ｃで利用可能となっている機能に対応するコマンドがダミーライブラリ実行コマンドに書き換えられていれば、そのようなコマンドは全て抽出される。
【００８９】
そしてＣＰＵ１０は、上記解析結果に基づき、実行対象であるアプリケーションプログラム８ａに含まれるコマンドのうち、ログインユーザの機能制限情報２５ａ，２５ｂ又は２５ｃで利用可能となっている機能に対応するコマンドが利用不可能なコマンドに書き換えられているか否かを判断する（ステップＳ２６）。そして利用不可能なコマンドに書き換えられていれば（ステップＳ２６でＹＥＳ）、そのようなコマンドを全て書き換える（ステップＳ２７）。ここでは、アプリケーションプログラム８ａにおいて利用不可能な状態に書き換えられているコマンド（例えばダミーライブラリ実行コマンド）を、ログインユーザの機能制限情報２５ａ，２５ｂ又は２５ｃに基づいて有効に利用可能なコマンド（例えばライブラリ実行コマンド）に書き換える。この書き換えにより、実行対象として共有フォルダ２２から読み出されたアプリケーションプログラム８ａは、ログインユーザの機能制限情報２５ａ，２５ｂ又は２５ｃに基づいてログインユーザが適切に利用可能なアプリケーションプログラム８ｂに書き換えられる。そしてコマンドの書き換えられたアプリケーションプログラム８ｂが実行対象となる。ＣＰＵ１０は、そのアプリケーションプログラム８ｂの実行を開始する前に、そのアプリケーションプログラム８ｂをログインユーザのユーザフォルダ２３に保存する（ステップＳ２８）。
【００９０】
尚、共有フォルダ２２から読み出されたアプリケーションプログラム８ａに、ログインユーザが利用可能な機能であるにもかかわらず、その機能が利用不可能な状態に書き換えられているコマンドが含まれていない場合（ステップＳ２６でＮＯ）、そのアプリケーションプログラム８ａがそのまま実行対象となる。
【００９１】
一方、ステップＳ２２において、ログインユーザのユーザフォルダ２３に既に実行対象であるアプリケーションプログラム８ｂが保存されている場合（ステップＳ２２でＮＯ）、ＣＰＵ１０は、そのユーザフォルダ２３からアプリケーションプログラム８ｂを実行対象として読み出す（ステップＳ２９）。
【００９２】
そしてＣＰＵ１０は、上記のような処理によって実行対象として得られるアプリケーションプログラム８ｂ（又は８ａ）の実行を開始する（ステップＳ３０）。これにより、ログインユーザは、自身に予め設定されている機能制限情報２５ａ，２５ｂ又は２５ｃに対応する機能を利用することができるようになる。例えばログインユーザがユーザＡである場合、ＣＰＵ１０はアプリケーションプログラム８ｂを実行することにより、そのアプリケーションプログラム８ｂに含まれるコピー機能、スキャン機能およびメール送信機能の全ての機能を有効に利用することができるように、情報処理装置１を動作させる。またログインユーザがユーザＢである場合、ＣＰＵ１０はアプリケーションプログラム８ｂを実行することにより、そのアプリケーションプログラム８ｂに含まれるスキャン機能は利用することができないが、他のコピー機能およびメール送信機能は有効に利用することができるように、情報処理装置１を動作させる。さらに、ログインユーザがユーザＣである場合、ＣＰＵ１０はアプリケーションプログラム８ｂを実行することにより、そのアプリケーションプログラム８ｂに含まれるメール送信機能は利用する事ができないが、他のコピー機能およびスキャン機能は有効に利用することができるように、情報処理装置１を動作させる。したがって、このようなアプリケーション実行処理により、情報処理装置１は、管理者によって予め設定されるユーザごとの機能制限情報を適切に反映させた状態で各種の情報処理機能を動作させるようになる。
【００９３】
次に図１２は、機能制限情報更新処理（ステップＳ６）の詳細な処理手順の一例を示すフローチャートである。この機能制限情報更新処理に伴い、ＣＰＵ１０は上述した機能制限管理部３１、判定部３３および書換部３４として機能する。ＣＰＵ１０は、機能制限情報更新処理を開始すると、まず管理者によって入力される機能制限情報２５ａ，２５ｂ又は２５ｃを取得する（ステップＳ４０）。この機能制限情報２５ａ，２５ｂ又は２５ｃには、例えばユーザを特定するための情報が含まれる。そのため、ＣＰＵ１０は、機能制限情報２５ａ，２５ｂ又は２５ｃを取得すると、それに伴い、機能制限情報２５ａ，２５ｂ又は２５ｃの更新対象であるユーザを特定し（ステップＳ４１）、更にその特定したユーザのユーザフォルダ２３を特定する（ステップＳ４２）。そしてＣＰＵ１０は、取得した機能制限情報２５ａ，２５ｂ又は２５ｃを、特定したユーザフォルダ２３に上書き保存することによって機能制限情報２５ａ，２５ｂ又は２５ｃを更新する（ステップＳ４３）。
【００９４】
次にＣＰＵ１０は、特定したユーザフォルダ２３にアプリケーションプログラム８ｂが保存されているか否かを判断する（ステップＳ４４）。ユーザフォルダ２３にアプリケーションプログラム８ｂが保存されている場合（ステップＳ４４でＹＥＳ）、ＣＰＵ１０は、更新した機能制限情報２５ａ，２５ｂ又は２５ｃに基づいて、そのアプリケーションプログラム８ｂに含まれるコマンドを書き換える（ステップＳ４５）。ここでは、例えば、機能制限情報２５ａ，２５ｂ又は２５ｃの更新によって、特定のユーザによる利用可能な機能が追加される場合、アプリケーションプログラム８ｂに含まれるその追加機能に対応するコマンドが、ダミーライブラリ実行コマンドからライブラリ実行コマンドに書き換えられる。これとは反対に、例えば機能制限情報２５ａ，２５ｂ又は２５ｃの更新によって、特定のユーザによる利用可能な機能が削減される場合、アプリケーションプログラム８ｂに含まれるその削減機能に対応するコマンドが、ライブラリ実行コマンドからダミーライブラリ実行コマンドに書き換えられる。尚、ユーザフォルダ２３にアプリケーションプログラム８ｂが保存されていない場合（ステップＳ４４でＮＯ）、ステップＳ４５の処理は行われない。
【００９５】
次にＣＰＵ１０は、共有フォルダ２２から共通機能制限情報２４を読み出す（ステップＳ４６）。そしてユーザフォルダ２３の機能制限情報２５ａ，２５ｂ又は２５ｃを更新したことに伴い、共通機能制限情報２４を更新する必要があるか否かを判断する（ステップＳ４７）。その結果、共通機能制限情報２４を更新する必要がない場合（ステップＳ４７でＮＯ）、機能制限情報更新処理は終了する。
【００９６】
一方、共通機能制限情報２４を更新する必要がある場合（ステップＳ４７でＹＥＳ）、ＣＰＵ１０は、共通機能制限情報２４を更新する（ステップＳ４８）。そして共有フォルダ２２からアプリケーションプログラム８ａを読み出し（ステップＳ４９）、更新された共通機能制限情報２４との整合性を保つために、更新された共通機能制限情報２４に基づいてアプリケーションプログラム８ａに含まれるコマンドを書き換える（ステップＳ５０）。ここでは、例えば、共通機能制限情報２４の更新によって、各ユーザが共通して利用が可能な機能が追加される場合、アプリケーションプログラム８ａに含まれるその追加機能に対応するコマンドが、ダミーライブラリ実行コマンドからライブラリ実行コマンドに書き換えられる。これとは反対に、例えば共通機能制限情報２４の更新によって、各ユーザが共通して利用可能な機能が削減される場合、アプリケーションプログラム８ａに含まれるその削減機能に対応するコマンドが、ライブラリ実行コマンドからダミーライブラリ実行コマンドに書き換えられる。そして機能制限情報更新処理が終了する。
【００９７】
このような機能制限情報更新処理により、複数のユーザＡ，Ｂ，Ｃのいずれかの機能制限情報２５ａ，２５ｂ又は２５ｃが更新されると、それに伴い、共有フォルダ２２又はユーザフォルダ２３に保存されているアプリケーションプログラム８ａ，８ｂが必要に応じて書き換えられる。つまり、情報処理装置１にアプリケーションプログラム８がインストールされた後でも、管理者によって機能制限情報２５ａ，２５ｂ又は２５ｃが更新されると、それに伴い、情報処理装置１に保存されているアプリケーションプログラム８ａ，８ｂは、その更新された機能制限情報２５ａ，２５ｂ又は２５ｃに対応するようにリアルタイムで書き換えられる。そのため、各ユーザＡ，Ｂ，Ｃが情報処理装置１を利用する際には、常に最新の機能制限情報２５ａ，２５ｂおよび２５ｃが適切に反映された状態で各種情報処理機能が動作するようになる。
【００９８】
以上のように本実施形態の情報処理装置１は、プログラム作成者などによって作成されたアプリケーションプログラム８をインストールする際、アプリケーションプログラム８に含まれるコマンドを解析することによって、共通機能制限情報２４で制限された機能を利用するか否かを判定する。そしてアプリケーションプログラム８が共通機能制限情報２４によって制限された機能を利用する場合、そのアプリケーションプログラム８に含まれるコマンドを書き換えることによって共通機能制限情報２４で制限された機能を利用不可能な状態に書き換えてインストールする。したがって、情報処理装置１にインストールされるアプリケーションプログラム８は、複数のユーザＡ，Ｂ，Ｃの全てが共通して利用可能な機能を除いて情報処理装置１に搭載された各種情報処理機能の利用を制限するアプリケーションプログラム８ａとしてインストールされる。
【００９９】
このようなインストール形態によれば、情報処理装置１のユーザやその他のプログラム作成者は、情報処理装置１にインストールするためのアプリケーションプログラム８を作成する際、ユーザごとに設定される機能制限情報２５ａ，２５ｂ，２５ｃがどのような情報であるかを考慮することなく、アプリケーションプログラム８を作成することができるようになる。よって、プログラム作成者などがアプリケーションプログラム８を作成する際の作業負担が著しく軽減されるので、効率的なプログラム作成が可能となり、情報処理装置１の利便性が向上する。また管理者にとっても、プログラム作成者などによって作成されたアプリケーションプログラム８の試験運用などを行う必要がなくなるので、管理者の作業負担も軽減することができるようになる。
【０１００】
また、本実施形態の情報処理装置１は、特定のユーザの指示に基づいて、インストールされたアプリケーションプログラム８ａを実行する際、その特定のユーザに対応する機能制限情報２５ａ，２５ｂ又は２５ｃを読み出し、アプリケーションプログラム８ａに含まれるコマンドを解析することによってその特定のユーザの利用可能な機能が利用不可能な状態に書き換えられているか否かを判定する。そして特定のユーザの利用可能な機能が利用不可能な状態に書き換えられている場合、アプリケーションプログラム８ａに含まれるコマンドを書き換えることによってその特定のユーザが利用可能な状態に書き換えて実行する。したがって、情報処理装置１において実行されるアプリケーションプログラム８ａは、特定のユーザが利用可能な機能の全てが正常に利用できる状態に書き換えられたアプリケーションプログラム８ｂとなって実行される。
【０１０１】
このようなアプリケーション実行形態によれば、情報処理装置１のユーザやその他のプログラム作成者は、情報処理装置１において実行されるアプリケーションプログラム８を作成する際、ユーザごとに設定される機能制限情報２５ａ，２５ｂ，２５ｃがどのような情報であるかを考慮することなく、アプリケーションプログラム８を作成することができるようになる。よって、この場合にも、プログラム作成者などがアプリケーションプログラム８を作成する際の作業負担が著しく軽減されるので、効率的なプログラム作成が可能となり、情報処理装置１の利便性が向上する。また管理者にとっても、プログラム作成者などによって作成されたアプリケーションプログラム８の試験運用などを行う必要がなくなるので、管理者の作業負担も軽減することができるようになる。
【０１０２】
また情報処理装置１は、アプリケーションプログラム８をインストールする際には、共通機能制限情報２４で制限された機能を利用不可能な状態に書き換えたアプリケーションプログラム８ａを共有フォルダ２２にインストールする。共有フォルダ２２は複数のユーザが共通して利用可能な共通記憶領域であるため、共有フォルダ２２にインストールされるアプリケーションプログラム８ａは、複数のユーザのそれぞれが利用できる状態となる。そのため、情報処理装置１に対してインストールを１回だけ行えば、それによって共有フォルダ２２にインストールされるアプリケーションプログラム８ａを各ユーザが自由に利用できるようになる。ただし、共有フォルダ２２にインストールされるアプリケーションプログラム８ａは、複数のユーザＡ，Ｂ，Ｃの全てが共通して利用可能な機能を除いて情報処理装置１に搭載された各種情報処理機能の利用が制限されたプログラムとなる。そのため、情報処理装置１においてアプリケーションプログラム８ａが実行されることにより、各ユーザが利用可能な機能は、自身の機能制限情報２５ａ，２５ｂ，２５ｃで定められた機能と同等或いはそれよりも狭い範囲となる。
【０１０３】
そこで情報処理装置１は、特定のユーザの指示に基づいてアプリケーションプログラム８ａを実行する際には、その特定のユーザが利用可能な状態に書き換えたアプリケーションプログラム８ｂを生成し、そのアプリケーションプログラム８ｂをその特定のユーザに対応するユーザフォルダ２３に記憶して実行するようにしている。ユーザフォルダ２３は、特定のユーザのみがアクセス可能な特定のユーザ専用の記憶領域であるため、他のユーザは特定のユーザのユーザフォルダ２３に記憶されたアプリケーションプログラム８ｂにアクセスすることはできない。それ故、ユーザフォルダ２３に記憶されるアプリケーションプログラム８ｂは、特定のユーザの専用プログラムとなり、特定のユーザに対応した情報処理機能を有効に動作させるようになる。
【０１０４】
（第２の実施の形態）
次に第２の実施の形態について説明する。上述した第１の実施の形態では、プログラム作成者などによって作成されたアプリケーションプログラム８を情報処理装置１にインストールする際に、或いは、情報処理装置１に既にインストールされているアプリケーションプログラム８ａを各ユーザからの最初の実行指示に基づいて実行する際に、それらアプリケーションプログラム８，８ａに含まれるコマンドが書き換えられる。そのため、アプリケーションプログラム８のインストール時、或いは、アプリケーションプログラム８ａの最初の実行時において処理効率が低下する。そこで、この第２の実施の形態では、アプリケーションプログラム８のインストール処理および実行処理を効率的に行うことができるようした構成例について説明する。尚、本実施形態においても、情報処理装置１の主たる構成は、第１の実施の形態で説明したものと同様である。
【０１０５】
第２の実施の形態における情報処理装置１は、各ユーザＡ，Ｂ，Ｃのユーザフォルダ２３ａ，２３ｂ，２３ｃのそれぞれにライブラリ４０をインストールする際に、そのライブラリ４０を書き換える構成である。図１３は、第２の実施の形態において情報処理装置１のＣＰＵ１０がライブラリ４０をインストールする際の機能構成の一例を示すブロック図である。尚、図１３に示す各ブロックは、本実施形態においても、ＣＰＵ１０がアプリケーション管理プログラム２１を実行することによって実現されるものである。また図１３では、各ユーザＡ，Ｂ，Ｃに対応するユーザフォルダ２３ａ，２３ｂ，２３ｃのみを示しており、各ユーザＡ，Ｂ，Ｃが共通して利用する共有フォルダ２２は図示を省略している。
【０１０６】
図１３に示すように、ＣＰＵ１０は、アプリケーション管理プログラム２１を実行することにより、アプリケーション管理部３０として機能する。このアプリケーション管理部３０は、各ユーザＡ，Ｂ，Ｃのユーザフォルダ２３ａ，２３ｂ，２３ｃのそれぞれにライブラリ４０をインストールする際、インストール部３２、判定部３３および書換部３４として機能する。以下、これら各部について詳しく説明する。
【０１０７】
インストール部３２は、ネットワークインタフェース１８を介して情報処理装置１に入力する新たなライブラリ４０を、各ユーザＡ，Ｂ，Ｃのユーザフォルダ２３ａ，２３ｂ，２３ｃにインストールする処理部である。インストール対象となるライブラリ４０は、上述したように、情報処理装置１の各種情報処理機能を動作させるための具体的な処理手順が定義された一種のプログラムであるが、それ単独で実行されるプログラムではなく、情報処理装置１に別途インストールされるアプリケーションプログラムが実行されることによって呼び出されて実行されるプログラムである。そのため、ライブラリ４０には、情報処理装置１の各種情報処理機能を動作させるための具体的な処理手順を実行させるための各種のコマンドが含まれる。インストール部３２は、上記のようなライブラリ４０を取得すると、まず判定部３３を機能させる。
【０１０８】
判定部３３は、ライブラリ４０をインストールする際、各ユーザＡ，Ｂ，Ｃのユーザフォルダ２３ａ，２３ｂ，２３ｃに記憶されている機能制限情報２５ａ，２５ｂ，２５ｃを読み出す。そして判定部３３は、インストール対象となるライブラリ４０に含まれるコマンドを解析することにより、そのライブラリ４０が各ユーザＡ，Ｂ，Ｃに対して設定されている機能制限情報２５ａ，２５ｂ，２５ｃで制限された機能を動作させるためのライブラリを含んでいるか否かを判定する。この判定は、各ユーザＡ，Ｂ，Ｃに対して個別に設定された機能制限情報２５ａ，２５ｂ，２５ｃごとに行われる。そしてインストール対象であるライブラリ４０が各ユーザＡ，Ｂ，Ｃの機能制限情報２５ａ，２５ｂ，２５ｃで制限された機能を利用するライブラリを含んでいる場合、判定部３３は、書換部３４を機能させる。
【０１０９】
書換部３４は、ライブラリ４０に含まれるコマンドを書き換える処理部である。この書換部３４は、ライブラリ４０に含まれるコマンドであって、機能制限情報２５ａ，２５ｂ，２５ｃで制限された機能を動作させるために定義されている処理手順の実行コマンドを、無効なコマンドに書き換える。このような書き換えは、各ユーザＡ，Ｂ，Ｃの機能制限情報２５ａ，２５ｂ，２５ｃのそれぞれに対応するように個別に行われる。したがって、このような書き換えにより、ユーザＡの機能制限情報２５ａに対応するライブラリ４２と、ユーザＢの機能制限情報２５ｂに対応するライブラリ４３と、ユーザＣの機能制限情報２５ｃに対応するライブラリ４４とがそれぞれ個別に生成されることになる。
【０１１０】
インストール部３２は、上記のようにして書換部３４によりコマンドの書き換えられたライブラリ４２，４３，４４を、各ユーザＡ，Ｂ，Ｃのユーザフォルダ２３ａ，２３ｂ，２３ｃのそれぞれにインストールする。つまり、ユーザＡのユーザフォルダ２３ａにはユーザＡの機能制限情報２５ａに対応するライブラリ４２がインストールされ、ユーザＢのユーザフォルダ２３ｂにはユーザＢの機能制限情報２５ｂに対応するライブラリ４３がインストールされ、更にユーザＣのユーザフォルダ２３ｃにはユーザＣの機能制限情報２５ｃに対応するライブラリ４４がインストールされる。
【０１１１】
各ユーザフォルダ２３ａ，２３ｂ，２３ｃにインストールされるライブラリ４２，４３，４４について詳しく説明する。図１４は、ユーザＡのユーザフォルダ２３ａにインストールされるライブラリ４２の概念を示す図である。図１４に示すようにインストール対象であるライブラリ４０は、情報処理装置１の各種情報処理機能を動作させるための複数のライブラリ４０ａ，４０ｂ，４０ｃで構成される。これらライブラリ４０ａ，４０ｂ，４０ｃは、第１の実施の形態で説明したものと同様である。例えば、ライブラリ４０ａはコピー機能を動作させるためのライブラリであり、ライブラリ４０ｂはスキャン機能を動作させるためのライブラリである。またライブラリ４０ｃはメール送信機能を動作させるためのライブラリである。
【０１１２】
これらライブラリ４０ａ，４０ｂ，４０ｃに定義される処理手順はそれぞれの情報処理機能を動作させるためのものである。このような処理手順は、それを実行させるためのコマンドによって定義されている。そのため、各ライブラリ４０ａ，４０ｂ，４０ｃに含まれるコマンドが有効なコマンドであれば、ＣＰＵ１０によって呼び出されて各ライブラリ４０ａ，４０ｂ，４０ｃが実行されると、情報処理装置１において各ライブラリ４０ａ，４０ｂ，４０ｃに対応する情報処理機能が動作する。一方、各ライブラリ４０ａ，４０ｂ，４０ｃに含まれるコマンドが無効なコマンドに書き換えられていれば、ＣＰＵ１０によって呼び出されて各ライブラリ４０ａ，４０ｂ，４０ｃが実行された場合でも、情報処理装置１において各ライブラリ４０ａ，４０ｂ，４０ｃに対応する情報処理機能は動作しないようになる。
【０１１３】
図１４に示すように、ライブラリ４０をユーザＡのユーザフォルダ２３ａにインストールする場合、判定部３３は、ユーザＡの機能制限情報２５ａを読み出す。そして判定部３３は、ライブラリ４０に含まれるライブラリ４０ａ，４０ｂ，４０ｃのそれぞれが、その機能制限情報２５ａで制限された機能を動作させるためのライブラリであるか否かを判断する。図１４の場合、ユーザＡの機能制限情報２５ａにおいてコピー機能、スキャン機能およびメール送信機能の３つの機能の全てが利用可能となっており、ライブラリ４０に含まれるライブラリ４０ａ，４０ｂ，４０ｃのそれぞれが、その機能制限情報２５ａで制限された機能を動作させるためのライブラリに該当しない。そのため、ユーザＡのユーザフォルダ２３ａにインストールされるライブラリ４２は、インストール対象であるライブラリ４０と同じものとなる。すなわち、ユーザフォルダ２３ａにインストールされるライブラリ４２を構成する各ライブラリ４２ａ，４２ｂ，４２ｃは、ライブラリ４０を構成する各ライブラリ４０ａ，４０ｂ，４０ｃと全く同じものとなる。この場合、各ライブラリ４２ａ，４２ｂ，４２ｃに含まれるコマンドが有効なコマンドのままでインストールされるので、ＣＰＵ１０によって呼び出されてそれらのライブラリ４２ａ，４２ｂ，４２ｃが実行されると、情報処理装置１において各ライブラリ４２ａ，４２ｂ，４２ｃに対応する情報処理機能が正常に動作するようになる。
【０１１４】
次に図１５は、ユーザＢのユーザフォルダ２３ｂにインストールされるライブラリ４３の概念を示す図である。図１５に示すように、ライブラリ４０をユーザＢのユーザフォルダ２３ｂにインストールする場合、判定部３３は、ユーザＢの機能制限情報２５ｂを読み出す。そして判定部３３は、ライブラリ４０に含まれるライブラリ４０ａ，４０ｂ，４０ｃのそれぞれが、その機能制限情報２５ｂで制限された機能を動作させるためのライブラリであるか否かを判断する。図１５の場合、ユーザＢの機能制限情報２５ｂにおいてスキャン機能が利用不可となっているため、スキャン機能に対応するライブラリ４０ｂが機能制限情報２５ｂで制限された機能を動作させるためのライブラリに該当する。
【０１１５】
このような場合、書換部３４が機能し、ライブラリ４０ｂに含まれるコマンドを書き換える。すなわち、ライブラリ４０ｂで定義された処理手順を実行させるためのコマンドを無効なコマンドに書き換える。例えば、ライブラリ４０ｂで定義された処理手順を実行させるための有効なコマンドを単なるコメントなどに置き換えることにより、無効なコマンドに書き換える。また処理結果として正常終了したことを示す情報をアプリケーションプログラムに返答するコマンドを新たに追加してもよい。これにより、ライブラリ４０ｂは、ＣＰＵ１０によって実行されてもスキャン機能を動作させるための処理手順は実行されなくなる。尚、図１５の場合、ライブラリ４０ａ，４０ｃは、ユーザＢの利用可能な機能を動作させるためのライブラリであるので、上記のような書き換えは行われない。
【０１１６】
そしてユーザＢのユーザフォルダ２３ｂにインストールされるライブラリ４３は、スキャン機能に対応するライブラリ４３ｂの処理手順が無効となった状態でインストールされる。すなわち、ユーザフォルダ２３ｂにインストールされるライブラリ４３ａ，４３ｃは、インストール対象として取得されたライブラリ４０に含まれるライブラリ４０ａ，４０ｃと同じものとなるが、ライブラリ４３ｂは、ライブラリ４０ｂとは異なるものになる。この場合、ライブラリ４３ａ，４３ｃに含まれるコマンドは有効なコマンドのままでインストールされるので、ＣＰＵ１０によって呼び出されてそれらのライブラリ４３ａ，４３ｃが実行されると、情報処理装置１において各ライブラリ４３ａ，４３ｃに対応する情報処理機能（すなわち、コピー機能とメール送信機能）が正常に動作するようになる。これに対し、ライブラリ４３ｂに含まれるコマンドは無効なコマンドに書き換えられてインストールされるので、ＣＰＵ１０によって呼び出されてそのライブラリ４３ｂが実行された場合でも、情報処理装置１においてライブラリ４３ｂに対応する情報処理機能（すなわち、スキャン機能）は動作しない。
【０１１７】
次に図１６は、ユーザＣのユーザフォルダ２３ｃにインストールされるライブラリ４４の概念を示す図である。図１６に示すように、ライブラリ４０をユーザＣのユーザフォルダ２３ｃにインストールする場合、判定部３３は、ユーザＣの機能制限情報２５ｃを読み出す。そして判定部３３は、ライブラリ４０に含まれるライブラリ４０ａ，４０ｂ，４０ｃのそれぞれが、その機能制限情報２５ｃで制限された機能を動作させるためのライブラリであるか否かを判断する。図１６の場合、ユーザＣの機能制限情報２５ｃにおいてメール送信機能が利用不可となっているため、メール送信機能に対応するライブラリ４０ｃが機能制限情報２５ｃで制限された機能を動作させるためのライブラリに該当する。
【０１１８】
このような場合、書換部３４が機能し、ライブラリ４０ｃに含まれるコマンドを書き換える。すなわち、ライブラリ４０ｃで定義された処理手順を実行させるためのコマンドを無効なコマンドに書き換える。例えば、ライブラリ４０ｃで定義された処理手順を実行させるための有効なコマンドを単なるコメントなどに置き換えることにより、無効なコマンドに書き換える。また処理結果として正常終了したことを示す情報をアプリケーションプログラムに返答するコマンドを新たに追加してもよい。これにより、ライブラリ４０ｃは、ＣＰＵ１０によって実行されてもメール送信機能を動作させるための処理手順は実行されなくなる。尚、図１６の場合、ライブラリ４０ａ，４０ｂは、ユーザＣの利用可能な機能を動作させるためのライブラリであるので、上記のような書き換えは行われない。
【０１１９】
そしてユーザＣのユーザフォルダ２３ｃにインストールされるライブラリ４４は、メール送信機能に対応するライブラリ４４ｃの処理手順が無効となった状態でインストールされる。すなわち、ユーザフォルダ２３ｃにインストールされるライブラリ４４ａ，４４ｂは、インストール対象として取得されたライブラリ４０に含まれるライブラリ４０ａ，４０ｂと同じものとなるが、ライブラリ４４ｃは、ライブラリ４０ｃとは異なるものになる。この場合、ライブラリ４４ａ，４４ｂに含まれるコマンドは有効なコマンドのままでインストールされるので、ＣＰＵ１０によって呼び出されてそれらのライブラリ４４ａ，４４ｂが実行されると、情報処理装置１において各ライブラリ４４ａ，４４ｂに対応する情報処理機能（すなわち、コピー機能とスキャン機能）が正常に動作するようになる。これに対し、ライブラリ４４ｃに含まれるコマンドは無効なコマンドに書き換えられてインストールされるので、ＣＰＵ１０によって呼び出されてそのライブラリ４４ｃが実行された場合でも、情報処理装置１においてライブラリ４４ｃに対応する情報処理機能（すなわち、メール送信機能）は動作しない。
【０１２０】
尚、上記においては、各ユーザＡ，Ｂ，Ｃのユーザフォルダ２３ａ，２３ｂ，２３ｃにライブラリ４０をインストールする場合を例示したが、共有フォルダ２２にライブラリ
４０をインストールする場合も同様である。すなわち、共有フォルダ２２にライブラリ
４０をインストールする場合は、共通機能制限情報２４に適合するようにライブラリ４０に含まれるコマンドが書き換えられる。
【０１２１】
上記のように本実施形態の情報処理装置１は、各ユーザＡ，Ｂ，Ｃのユーザフォルダ２３ａ，２３ｂ，２３ｃにライブラリ４０をインストールする際、各ユーザＡ，Ｂ，Ｃの機能制限情報２５ａ，２５ｂ，２５ｃに適合するようにコマンドを書き換えたライブラリ４２，４３，４４を生成し、それらライブラリ４２，４３，４４をユーザフォルダ２３ａ，２３ｂ，２３ｃのそれぞれに個別にインストールする。そのため、本実施形態では、プログラム作成者などが作成したアプリケーションプログラム８をインストールする際には、アプリケーションプログラム８に含まれるコマンドを書き換える必要がなくなる。また情報処理装置１にインストールされたアプリケーションプログラム８を実行する際にも、アプリケーションプログラム８に含まれるコマンドを書き換える必要がなくなる。
【０１２２】
図１７は、第２の実施の形態において情報処理装置１のＣＰＵ１０がアプリケーションプログラム８をインストールする際および実行する際の機能構成の一例を示すブロック図である。尚、図１７に示す各ブロックは、本実施形態においても、ＣＰＵ１０がアプリケーション管理プログラム２１を実行することによって実現されるものである。また図１７では、各ユーザＡ，Ｂ，Ｃに対応するユーザフォルダ２３ａ，２３ｂ，２３ｃのみを示しており、各ユーザＡ，Ｂ，Ｃが共通して利用する共有フォルダ２２は図示を省略している。
【０１２３】
図１７に示すように、ＣＰＵ１０は、アプリケーション管理プログラム２１を実行することにより、アプリケーション管理部３０として機能する。このアプリケーション管理部３０は、アプリケーションプログラム８を情報処理装置１にインストールする際、インストール部３２として機能する。また、アプリケーション管理部３０は、情報処理装置１にインストールされたアプリケーションプログラム８を実行する際、実行部３５として機能する。
【０１２４】
インストール部３２は、ネットワークインタフェース１８を介して情報処理装置１に入力する新たなアプリケーションプログラム８を、そのままの状態で、各ユーザＡ，Ｂ，Ｃのユーザフォルダ２３ａ，２３ｂ，２３ｃにインストールする。すなわち、本実施形態では、各ユーザＡ，Ｂ，Ｃのユーザフォルダ２３ａ，２３ｂ，２３ｃに対し、同じアプリケーションプログラム８がインストールされる。
【０１２５】
このようなアプリケーションプログラム８には、情報処理装置１に搭載された各種情報処理機能を利用するためのコマンドが含まれている。このコマンドは、第１の実施の形態でも説明したように、各ユーザフォルダ２３ａ，２３ｂ，２３ｃに記憶されているライブラリ４２，４３，４４を呼び出して実行するコマンドとなっている。そして本実施形態では、各ユーザフォルダ２３ａ，２３ｂ，２３ｃに記憶されているライブラリ４２，４３，４４は、ユーザごとの機能制限情報２５ａ，２５ｂ，２５ｃに対応したライブラリに書き換えられている。そのため、アプリケーションプログラム８をインストールする際には第１の実施の形態のように、アプリケーションプログラム８に含まれるコマンドを書き換える必要がなくなり、効率的にインストール処理を行うことが可能になる。
【０１２６】
そしてログインユーザによるアプリケーションプログラム８の実行指示が行われると、アプリケーション管理部３０において実行部３５が機能する。本実施形態の実行部３５は、ログインユーザによって選択されたアプリケーションプログラム８を、そのログインユーザに対応するユーザフォルダ２３ａ，２３ｂ又は２３ｃから読み出し、そのままの状態で実行する。
【０１２７】
例えば、ログインユーザがユーザＡである場合、実行部３５は、ユーザＡのユーザフォルダ２３ａからアプリケーションプログラム８を読み出して実行する。そしてユーザフォルダ２３ａから読み出して実行するアプリケーションプログラム８に、ライブラリ４２を読み出して実行するコマンドが含まれていると、そのコマンドに従って同じユーザフォルダ２３ａからライブラリ４２を読み出して実行する。またログインユーザがユーザＢ又はＣである場合も同様であり、それぞれのユーザフォルダ２３ｂ，２３ｃにインストールされたアプリケーションプログラム８を実行する際には、それぞれのユーザフォルダ２３ｂ，２３ｃに記憶されているライブラリ４３，４４が呼び出されて実行される。
【０１２８】
したがって、実行部３５が、ログインユーザに対応するユーザフォルダ２３ａ，２３ｂ，２３ｃからアプリケーションプログラム８を読み出して実行すると、情報処理装置１はそのログインユーザの機能制限情報２５ａ，２５ｂ又は２５ｃに対応して情報処理機能を動作させる。すなわち、ログインユーザがユーザＡである場合は、コピー機能、スキャン機能およびメール送信機能の３つの機能全てが動作するようになる。またログインユーザがユーザＢである場合は、スキャン機能を除き、コピー機能とメール送信機能との２つの機能が動作するようになる。さらにログインユーザがユーザＣである場合には、メール送信機能を除き、コピー機能とスキャン機能との２つの機能が動作するようになる。
【０１２９】
このように本実施形態では、実行部３５がアプリケーションプログラム８を実行する際には、第１の実施の形態のように、アプリケーションプログラム８に含まれるコマンドを書き換える必要がなくなるので、効率的にアプリケーションプログラム８の実行を開始することができる。
【０１３０】
図１８は、第２の実施の形態における情報処理装置１で行われる処理手順の一例を示すフローチャートであり、特にアプリケーション管理部３０がライブラリ４０をインストールする際の処理手順を示している。ＣＰＵ１０は、この処理を開始すると、インストール対象となるライブラリ４０を取得する（ステップＳ６０）。そしてＣＰＵ１０は、インストール対象となるユーザフォルダ２３を一つ特定する（ステップＳ６１）。そして特定したユーザフォルダ２３から機能制限情報２５ａ，２５ｂ又は２５ｃを読み出し（ステップＳ６２）、その機能制限情報２５ａ，２５ｂ又は２５ｃで制限された機能を利用するライブラリであるか否かを判断する（ステップＳ６３）。その判断の結果、インストール対象であるライブラリ４０が機能制限情報２５ａ，２５ｂ又は２５ｃで制限された機能を利用するライブラリである場合（ステップＳ６３でＹＥＳ）、そのライブラリ４０に定義された処理手順を実行させるためのコマンドを無効なコマンドに書き換える（ステップＳ６４）。尚、インストール対象であるライブラリ４０が機能制限情報２５ａ，２５ｂ又は２５ｃで制限された機能を利用するライブラリでない場合（ステップＳ６３でＮＯ）、コマンドの書き換えは行われない。
【０１３１】
そしてＣＰＵ１０は、インストール対象のライブラリ４０を特定したユーザフォルダ２３にインストールする（ステップＳ６５）。このとき、ステップＳ６４でコマンドの書き換え処理が行われた場合は、そのコマンドの書き換えが行われたライブラリをインストールする。その後、ＣＰＵ１０は、同じライブラリ４０を他のユーザフォルダ２３へもインストールするか否かを判断する（ステップＳ６６）。そして未だインストールされていないユーザフォルダ２３が存在すればステップＳ６１に戻って、上述した処理を繰り返す。一方、各ユーザＡ，Ｂ，Ｃの全てのユーザフォルダ２３に対してライブラリ４０のインストール処理を終了した場合はこの処理を終了する。尚、共有フォルダ２２に対してライブラリ４０をインストールする場合には、共通機能制限情報２４に基づいてライブラリ４０に含まれるコマンドが書き換えられる。
【０１３２】
以上のように本実施形態の情報処理装置１は、プログラムの一種であるライブラリ４０を特定のユーザのユーザフォルダ２３にインストールする際、その特定のユーザのユーザフォルダ２３に記憶された機能制限情報２５ａ，２５ｂ又は２５ｃを読み出し、ライブラリ４０に含まれるコマンドを解析することにより特定のユーザに対応する機能制限情報２５ａ，２５ｂ又は２５ｃにおいて制限された機能を利用するか否かを判定する。インストール対象であるライブラリ４０が特定のユーザに対応する機能制限情報２５ａ，２５ｂ又は２５ｃによって制限された機能を利用する場合、そのライブラリ４０に含まれるコマンドを書き換えることによって機能制限情報２５ａ，２５ｂ又は２５ｃで制限された機能を利用不可能な状態に書き換える。そして機能制限情報２５ａ，２５ｂ又は２５ｃに基づいてコマンドの書き換えられたライブラリを特定のユーザのユーザフォルダ２３にインストールする。
【０１３３】
したがって、本実施形態の情報処理装置１は、予めインストールされたライブラリ４０を呼び出して実行させることにより各種情報処理機能を利用するアプリケーションプログラム８をインストールする際には、そのアプリケーションプログラム８に含まれるコマンドを書き換える必要がなくなる。また情報処理装置１にインストールされたアプリケーションプログラム８を実行する際にも、アプリケーションプログラム８に含まれるコマンドを書き換える必要がなくなる。それ故、アプリケーションプログラム８のインストール時および実行時の処理効率が向上するという利点がある。
【０１３４】
また本実施形態においても、第１の実施の形態と同様に、プログラム作成者などがアプリケーションプログラム８を作成する際の作業負担を軽減することができるので、効率的なプログラム作成が可能となり、情報処理装置１の利便性が向上する。また管理者にとっても、プログラム作成者などによって作成されたアプリケーションプログラム８の試験運用などを行う必要がなくなるので、管理者の作業負担を軽減することもできる。
【０１３５】
また本実施形態においては、管理者が各ユーザＡ，Ｂ，Ｃの機能制限情報２５ａ，２５ｂ，２５ｃを更新すると、それに伴って判定部３４および書換部３５が機能し、各ユーザＡ，Ｂ，Ｃのユーザフォルダ２３ａ，２３ｂ，２３ｃに記憶されているライブラリ４２，４３，４４の書き換えが再び行われる。これにより、管理者によって更新された機能制限情報２５ａ，２５ｂ，２５ｃが、各ユーザフォルダ２３ａ，２３ｂ，２３ｃに記憶されているライブラリ４２，４３，４４に反映されるようになる。
【０１３６】
（変形例）
以上、本発明に関する一実施形態について説明したが、本発明は上述した実施形態に限定されるものではない。すなわち、本発明には、上述した実施形態以外にも種々の変形例が適用可能である。
【０１３７】
例えば上記実施形態では、情報処理装置１の一例として、コピー機能、プリンタ機能、スキャン機能、ＦＡＸ機能、メール送信機能などの複数の情報処理機能を備えたＭＦＰを説明したが、本発明における情報処理装置はこれに限られるものではない。例えば、上記複数の情報処理機能のうちの少なくとも１つの機能を備えた装置であっても良い。またコピー機能、プリンタ機能、スキャン機能、ＦＡＸ機能およびメール送信機能以外の情報処理機能を備えた装置であっても構わない。
【０１３８】
また上述した実施形態では、情報処理装置１は、インストール対象となるプログラムを、ネットワーク４を介して入力する場合を例示したが、必ずしもこれに限られない。例えば、インストール対象となるプログラムが記録された記録媒体から、そのプログラムを読み出してインストールするものであっても良い。
【０１３９】
さらに、上述した実施形態では、ＣＰＵ１０がアプリケーション管理部３０として機能するためのアプリケーション管理プログラム２１は、情報処理装置１に予めインストールされている場合を例示したが、このようなアプリケーション管理プログラム２１は、例えばコンピュータ読み取り可能な記録媒体に記録された状態で取引されるものであっても良い。
【符号の説明】
【０１４０】
１  情報処理装置
８  アプリケーションプログラム
１０  ＣＰＵ
１９  記憶装置（記憶手段）
２２  共有フォルダ（共通記憶領域）
２３（２３ａ，２３ｂ，２３ｃ）  ユーザフォルダ（ユーザ記憶領域）
２４  共通機能制限情報
２５ａ，２５ｂ，２５ｃ  機能制限情報
３２  インストール部（インストール手段）
３３  判定部（判定手段）
３４  書換部（書換手段）
３５  実行部（実行手段）
４０  ライブラリ
４１  ダミーライブラリ
【図１】
2011257833.tif 000003
【図２】
2011257833.tif 000004
【図３】
2011257833.tif 000005
【図４】
2011257833.tif 000006
【図５】
2011257833.tif 000007
【図６】
2011257833.tif 000008
【図７】
2011257833.tif 000009
【図８】
2011257833.tif 000010
【図９】
2011257833.tif 000011
【図１０】
2011257833.tif 000012
【図１１】
2011257833.tif 000013
【図１２】
2011257833.tif 000014
【図１３】
2011257833.tif 000015
【図１４】
2011257833.tif 000016
【図１５】
2011257833.tif 000017
【図１６】
2011257833.tif 000018
【図１７】
2011257833.tif 000019
【図１８】
2011257833.tif 000020