(57)【特許請求の範囲】
【請求項１】
自装置を制御するために動作する複数の制御プログラムの各々とその動作時刻とを関連付けた動作時刻情報を記憶する記憶手段と、
前記記憶手段に記憶された前記動作時刻情報に基づいて、前記複数の制御プログラムの動作スケジュールを表すスケジュール情報を生成する生成手段と、
前記記憶手段に記憶された前記動作時刻情報に基づいて、前記複数の制御プログラムのうちの判定対象の制御プログラムの動作時刻と、当該判定対象の制御プログラムの動作時刻から遡って初めて見つかった前記複数の制御プログラムのうちの自装置の電源をオフする制御プログラムの動作時刻との間に、自装置の電源をオンする制御プログラムの動作時刻がないと判定することにより、当該判定対象の制御プログラムが動作しないことを決定する決定手段と、
前記生成手段により生成された前記スケジュール情報と、前記決定手段により決定された前記判定対象の制御プログラムが動作しないことを明示する標識を当該スケジュール情報に付加するための付加情報とを出力する出力手段と
を備えたことを特徴とするスケジュール生成装置。
【請求項２】
前記複数の制御プログラムのうちの一の制御プログラムと動作が両立しない他の制御プログラムを変換するためのプログラムコードであって当該一の制御プログラムと動作が両立しない状態を回避するための動作を記述したプログラムコードである変換コードを抽出する抽出手段を更に備え、
前記出力手段は、前記抽出手段により抽出された前記変換コードを更に出力することを特徴とする請求項１記載のスケジュール生成装置。
【請求項３】
前記決定手段は、前記複数の制御プログラムの各々が使用する資源を特定する情報に更に基づいて、前記判定対象の制御プログラムが動作しないことを決定することを特徴とする請求項１又は請求項２に記載のスケジュール生成装置。
【請求項４】
前記複数の制御プログラムのうちの自装置に既に組み込まれた第１の制御プログラムとその動作時刻とを関連付けた第１の動作時刻情報を前記記憶手段から取得し、自装置に新たに組み込むものとして指定された第２の制御プログラムとその動作時刻とを関連付けた第２の動作時刻情報を外部から取得する取得手段と、
前記取得手段により取得された前記第１の動作時刻情報及び前記第２の動作時刻情報に基づいて、前記第２の制御プログラムの動作が制限されるかどうかを判定する判定手段とを更に備え、
前記出力手段は、前記判定手段による判定結果を更に出力することを特徴とする請求項１又は請求項２に記載のスケジュール生成装置。
【請求項５】
前記判定手段は、前記第１の制御プログラムが使用する資源を特定する情報と、前記第２の制御プログラムが使用する資源を特定する情報とに更に基づいて、当該第２の制御プログラムの動作が制限されるかどうかを判定することを特徴とする請求項４記載のスケジュール生成装置。
【請求項６】
前記出力手段は、前記判定手段により前記第２の制御プログラムの動作が制限されると判定された場合に、当該第２の制御プログラムの動作の制限を解除するものとして予め定められたプログラムコードを出力することを特徴とする請求項４記載のスケジュール生成装置。
【請求項７】
自装置の電源の投入及び遮断を管理する電源管理手段と、
外部から入力された画像データに基づいて画像処理を行う画像処理手段と、
前記電源管理手段を制御するために動作する制御プログラムと前記画像処理手段を制御するために動作する制御プログラムとを含む複数の制御プログラムの各々とその動作時刻とを関連付けた動作時刻情報を記憶する記憶手段と、
前記記憶手段に記憶された前記動作時刻情報に基づいて、前記複数の制御プログラムの動作スケジュールを表すスケジュール情報を生成する生成手段と、
前記記憶手段に記憶された前記動作時刻情報に基づいて、前記画像処理手段を制御するために動作する制御プログラムのうちの判定対象の制御プログラムの動作時刻と、当該判定対象の制御プログラムの動作時刻から遡って初めて見つかった前記電源管理手段を制御するために動作する制御プログラムのうちの自装置の電源をオフする制御プログラムの動作時刻との間に、自装置の電源をオンする制御プログラムの動作時刻がないと判定することにより、当該判定対象の制御プログラムが動作しないことを決定する決定手段と、
前記生成手段により生成された前記スケジュール情報と、前記決定手段により決定された前記判定対象の制御プログラムが動作しないことを明示する標識を当該スケジュール情報に付加するための付加情報とを出力する出力手段と
を備えたことを特徴とする画像処理装置。
【請求項８】
前記複数の制御プログラムのうちの一の制御プログラムと動作が両立しない他の制御プログラムを変換するためのプログラムコードであって当該一の制御プログラムと動作が両立しない状態を回避するための動作を記述したプログラムコードである変換コードを抽出する抽出手段を更に備え、
前記出力手段は、前記抽出手段により抽出された前記変換コードを更に出力することを特徴とする請求項７記載の画像処理装置。
【請求項９】
自装置を制御するために動作する複数の制御プログラムを実行するプログラム実行装置と、
前記プログラム実行装置に前記複数の制御プログラムを送信するプログラム送信装置と
を備え、
前記プログラム実行装置は、
前記複数の制御プログラムの各々とその動作時刻とを関連付けた動作時刻情報を記憶する記憶手段と、
前記記憶手段に記憶された前記動作時刻情報に基づいて、前記複数の制御プログラムの動作スケジュールを表すスケジュール情報を生成する生成手段と、
前記記憶手段に記憶された前記動作時刻情報に基づいて、前記複数の制御プログラムのうちの判定対象の制御プログラムの動作時刻と、当該判定対象の制御プログラムの動作時刻から遡って初めて見つかった前記複数の制御プログラムのうちの自装置の電源をオフする制御プログラムの動作時刻との間に、自装置の電源をオンする制御プログラムの動作時刻がないと判定することにより、当該判定対象の制御プログラムが動作しないことを決定する決定手段と、
前記生成手段により生成された前記スケジュール情報と、前記決定手段により決定された前記判定対象の制御プログラムが動作しないことを明示する標識を当該スケジュール情報に付加するための付加情報とを前記プログラム送信装置に送信する送信手段と
を備えたことを特徴とするコンピュータシステム。
【請求項１０】
前記複数の制御プログラムのうちの一の制御プログラムと動作が両立しない他の制御プログラムを変換するためのプログラムコードであって当該一の制御プログラムと動作が両立しない状態を回避するための動作を記述したプログラムコードである変換コードを抽出する抽出手段を更に備え、
前記出力手段は、前記抽出手段により抽出された前記変換コードを更に出力することを特徴とする請求項９記載のコンピュータシステム。
【請求項１１】
前記プログラム送信装置は、
前記複数の制御プログラムのうちの前記プログラム実行装置に既に組み込まれた第１の制御プログラムとその動作時刻とを関連付けた第１の動作時刻情報を当該プログラム実行装置から受信する受信手段と、
前記プログラム実行装置に新たに組み込むものとして指定された第２の制御プログラムとその動作時刻とを関連付けた第２の動作時刻情報を外部から受け付ける受付手段と、
前記受信手段により受信した前記第１の動作時刻情報と、前記受付手段により受け付けた前記第２の動作時刻情報とに基づいて、前記第２の制御プログラムの動作が制限されるかどうかを判定する判定手段と、
前記判定手段による判定結果を表示する表示手段と
を備えたことを特徴とする請求項９又は請求項１０に記載のコンピュータシステム。
【請求項１２】
コンピュータに、
自装置を制御するために動作する複数の制御プログラムの各々とその動作時刻とを関連付けた動作時刻情報を記憶した記憶装置から、当該動作時刻情報を読み出す機能と、
読み出された前記動作時刻情報に基づいて、前記複数の制御プログラムの動作スケジュールを表すスケジュール情報を生成する機能と、
読み出された前記動作時刻情報に基づいて、前記複数の制御プログラムのうちの判定対象の制御プログラムの動作時刻と、当該判定対象の制御プログラムの動作時刻から遡って初めて見つかった前記複数の制御プログラムのうちの自装置の電源をオフする制御プログラムの動作時刻との間に、自装置の電源をオンする制御プログラムの動作時刻がないと判定することにより、当該判定対象の制御プログラムが動作しないことを決定する機能と、
生成された前記スケジュール情報と、決定された前記判定対象の制御プログラムが動作しないことを明示する標識を当該スケジュール情報に付加するための付加情報とを出力する機能と
を実現させるためのプログラム。
【請求項１３】
前記コンピュータに、
前記複数の制御プログラムのうちの一の制御プログラムと動作が両立しない他の制御プログラムを変換するためのプログラムコードであって当該一の制御プログラムと動作が両立しない状態を回避するための動作を記述したプログラムコードである変換コードを抽出する機能を更に実現させ、
前記出力する機能は、抽出された前記変換コードを更に出力することを特徴とする請求項１２記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スケジュール生成装置、画像処理装置、コンピュータシステム、プログラムに関する。
【背景技術】
【０００２】
複数の情報処理リソースの処理状況を互いに連動させて表示する情報処理装置が知られている（例えば、特許文献１参照）。この特許文献１では、リソースを用いて実行するジョブを受け付け、そのジョブに関わるタスクを各リソースに割り付けて実行させ、リソースごとに見積もったタスクの残り処理時間に基づいて、リソースごとにタスクをスケジューリングすると共に、リソースのスケジュールを互いに時間的に対応させて表示している。
【特許文献１】特開２００６−２５４０７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ここで、一般に、装置を制御する複数の制御プログラムの動作スケジュールにおいて、他の制御プログラムと動作が両立しない制御プログラムを知ることはできなかった。
本発明の目的は、装置を制御する複数の制御プログラムの動作スケジュールを、他の制御プログラムと動作が両立しない制御プログラムを明示した形で提示することにある。
【課題を解決するための手段】
【０００４】
請求項１に記載の発明は、自装置を制御するために動作する複数の制御プログラムの各々とその動作時刻とを関連付けた動作時刻情報を記憶する記憶手段と、前記記憶手段に記憶された前記動作時刻情報に基づいて、前記複数の制御プログラムの動作スケジュールを表すスケジュール情報を生成する生成手段と、前記記憶手段に記憶された前記動作時刻情報に基づいて、前記複数の制御プログラムのうちの判定対象の制御プログラムの動作時刻と、当該判定対象の制御プログラムの動作時刻から遡って初めて見つかった前記複数の制御プログラムのうちの自装置の電源をオフする制御プログラムの動作時刻との間に、自装置の電源をオンする制御プログラムの動作時刻がないと判定することにより、当該判定対象の制御プログラムが動作しないことを決定する決定手段と、前記生成手段により生成された前記スケジュール情報と、前記決定手段により決定された前記判定対象の制御プログラムが動作しないことを明示する標識を当該スケジュール情報に付加するための付加情報とを出力する出力手段とを備えたことを特徴とするスケジュール生成装置である。
請求項２に記載の発明は、前記複数の制御プログラムのうちの一の制御プログラムと動作が両立しない他の制御プログラムを変換するためのプログラムコードであって当該一の制御プログラムと動作が両立しない状態を回避するための動作を記述したプログラムコードである変換コードを抽出する抽出手段を更に備え、前記出力手段は、前記抽出手段により抽出された前記変換コードを更に出力することを特徴とする請求項１記載のスケジュール生成装置である。
請求項３に記載の発明は、前記決定手段は、前記複数の制御プログラムの各々が使用する資源を特定する情報に更に基づいて、前記判定対象の制御プログラムが動作しないことを決定することを特徴とする請求項１又は請求項２に記載のスケジュール生成装置である。
請求項４に記載の発明は、前記複数の制御プログラムのうちの自装置に既に組み込まれた第１の制御プログラムとその動作時刻とを関連付けた第１の動作時刻情報を前記記憶手段から取得し、自装置に新たに組み込むものとして指定された第２の制御プログラムとその動作時刻とを関連付けた第２の動作時刻情報を外部から取得する取得手段と、前記取得手段により取得された前記第１の動作時刻情報及び前記第２の動作時刻情報に基づいて、前記第２の制御プログラムの動作が制限されるかどうかを判定する判定手段とを更に備え、前記出力手段は、前記判定手段による判定結果を更に出力することを特徴とする請求項１又は請求項２に記載のスケジュール生成装置である。
請求項５に記載の発明は、前記判定手段は、前記第１の制御プログラムが使用する資源を特定する情報と、前記第２の制御プログラムが使用する資源を特定する情報とに更に基づいて、当該第２の制御プログラムの動作が制限されるかどうかを判定することを特徴とする請求項４記載のスケジュール生成装置である。
請求項６に記載の発明は、前記出力手段は、前記判定手段により前記第２の制御プログラムの動作が制限されると判定された場合に、当該第２の制御プログラムの動作の制限を解除するものとして予め定められたプログラムコードを出力することを特徴とする請求項４記載のスケジュール生成装置である。
請求項７に記載の発明は、自装置の電源の投入及び遮断を管理する電源管理手段と、外部から入力された画像データに基づいて画像処理を行う画像処理手段と、前記電源管理手段を制御するために動作する制御プログラムと前記画像処理手段を制御するために動作する制御プログラムとを含む複数の制御プログラムの各々とその動作時刻とを関連付けた動作時刻情報を記憶する記憶手段と、前記記憶手段に記憶された前記動作時刻情報に基づいて、前記複数の制御プログラムの動作スケジュールを表すスケジュール情報を生成する生成手段と、前記記憶手段に記憶された前記動作時刻情報に基づいて、前記画像処理手段を制御するために動作する制御プログラムのうちの判定対象の制御プログラムの動作時刻と、当該判定対象の制御プログラムの動作時刻から遡って初めて見つかった前記電源管理手段を制御するために動作する制御プログラムのうちの自装置の電源をオフする制御プログラムの動作時刻との間に、自装置の電源をオンする制御プログラムの動作時刻がないと判定することにより、当該判定対象の制御プログラムが動作しないことを決定する決定手段と、前記生成手段により生成された前記スケジュール情報と、前記決定手段により決定された前記判定対象の制御プログラムが動作しないことを明示する標識を当該スケジュール情報に付加するための付加情報とを出力する出力手段とを備えたことを特徴とする画像処理装置である。
請求項８に記載の発明は、前記複数の制御プログラムのうちの一の制御プログラムと動作が両立しない他の制御プログラムを変換するためのプログラムコードであって当該一の制御プログラムと動作が両立しない状態を回避するための動作を記述したプログラムコードである変換コードを抽出する抽出手段を更に備え、前記出力手段は、前記抽出手段により抽出された前記変換コードを更に出力することを特徴とする請求項７記載の画像処理装置である。
請求項９に記載の発明は、自装置を制御するために動作する複数の制御プログラムを実行するプログラム実行装置と、前記プログラム実行装置に前記複数の制御プログラムを送信するプログラム送信装置とを備え、前記プログラム実行装置は、前記複数の制御プログラムの各々とその動作時刻とを関連付けた動作時刻情報を記憶する記憶手段と、前記記憶手段に記憶された前記動作時刻情報に基づいて、前記複数の制御プログラムの動作スケジュールを表すスケジュール情報を生成する生成手段と、前記記憶手段に記憶された前記動作時刻情報に基づいて、前記複数の制御プログラムのうちの判定対象の制御プログラムの動作時刻と、当該判定対象の制御プログラムの動作時刻から遡って初めて見つかった前記複数の制御プログラムのうちの自装置の電源をオフする制御プログラムの動作時刻との間に、自装置の電源をオンする制御プログラムの動作時刻がないと判定することにより、当該判定対象の制御プログラムが動作しないことを決定する決定手段と、前記生成手段により生成された前記スケジュール情報と、前記決定手段により決定された前記判定対象の制御プログラムが動作しないことを明示する標識を当該スケジュール情報に付加するための付加情報とを前記プログラム送信装置に送信する送信手段とを備えたことを特徴とするコンピュータシステムである。
請求項１０に記載の発明は、前記複数の制御プログラムのうちの一の制御プログラムと動作が両立しない他の制御プログラムを変換するためのプログラムコードであって当該一の制御プログラムと動作が両立しない状態を回避するための動作を記述したプログラムコードである変換コードを抽出する抽出手段を更に備え、前記出力手段は、前記抽出手段により抽出された前記変換コードを更に出力することを特徴とする請求項９記載のコンピュータシステムである。
請求項１１に記載の発明は、前記プログラム送信装置は、前記複数の制御プログラムのうちの前記プログラム実行装置に既に組み込まれた第１の制御プログラムとその動作時刻とを関連付けた第１の動作時刻情報を当該プログラム実行装置から受信する受信手段と、前記プログラム実行装置に新たに組み込むものとして指定された第２の制御プログラムとその動作時刻とを関連付けた第２の動作時刻情報を外部から受け付ける受付手段と、前記受信手段により受信した前記第１の動作時刻情報と、前記受付手段により受け付けた前記第２の動作時刻情報とに基づいて、前記第２の制御プログラムの動作が制限されるかどうかを判定する判定手段と、前記判定手段による判定結果を表示する表示手段とを備えたことを特徴とする請求項９又は請求項１０に記載のコンピュータシステムである。
請求項１２に記載の発明は、コンピュータに、自装置を制御するために動作する複数の制御プログラムの各々とその動作時刻とを関連付けた動作時刻情報を記憶した記憶装置から、当該動作時刻情報を読み出す機能と、読み出された前記動作時刻情報に基づいて、前記複数の制御プログラムの動作スケジュールを表すスケジュール情報を生成する機能と、読み出された前記動作時刻情報に基づいて、前記複数の制御プログラムのうちの判定対象の制御プログラムの動作時刻と、当該判定対象の制御プログラムの動作時刻から遡って初めて見つかった前記複数の制御プログラムのうちの自装置の電源をオフする制御プログラムの動作時刻との間に、自装置の電源をオンする制御プログラムの動作時刻がないと判定することにより、当該判定対象の制御プログラムが動作しないことを決定する機能と、生成された前記スケジュール情報と、決定された前記判定対象の制御プログラムが動作しないことを明示する標識を当該スケジュール情報に付加するための付加情報とを出力する機能とを実現させるためのプログラムである。
請求項１３に記載の発明は、前記コンピュータに、前記複数の制御プログラムのうちの一の制御プログラムと動作が両立しない他の制御プログラムを変換するためのプログラムコードであって当該一の制御プログラムと動作が両立しない状態を回避するための動作を記述したプログラムコードである変換コードを抽出する機能を更に実現させ、前記出力する機能は、抽出された前記変換コードを更に出力することを特徴とする請求項１２記載のプログラムである。
【発明の効果】
【０００５】
請求項１の発明によれば、装置を制御する複数の制御プログラムの動作スケジュールを、他の制御プログラムと動作が両立しない制御プログラムを明示した形で提示することができる。
請求項３の発明によれば、装置を制御する複数の制御プログラムの動作スケジュールを、使用する資源の観点から他の制御プログラムと動作が両立しない制御プログラムを明示した形で提示することができる。
請求項４の発明によれば、装置に新たに制御プログラムを組み込むに当たり、その制御プログラムの動作が装置に既に組み込まれた制御プログラムによって制限されないかを検査することができる。
請求項５の発明によれば、装置に新たに制御プログラムを組み込むに当たり、使用する資源の観点からその制御プログラムの動作が装置に既に組み込まれた制御プログラムによって制限されないかを検査することができる。
請求項６の発明によれば、装置に新たに制御プログラムを組み込むに当たってその制御プログラムの動作が装置に既に組み込まれた制御プログラムによって制限されることが分かった場合に、制限を解除するためのプログラムコードを提示することができる。
請求項７の発明によれば、装置を制御する複数の制御プログラムの動作スケジュールを、他の制御プログラムと動作が両立しない制御プログラムを明示した形で提示することができる。
請求項９の発明によれば、装置を制御する複数の制御プログラムの動作スケジュールを、他の制御プログラムと動作が両立しない制御プログラムを明示した形で提示することができる。
請求項１１の発明によれば、装置に新たに制御プログラムを組み込むに当たり、その制御プログラムの動作が装置に既に組み込まれた制御プログラムによって制限されないかを検査することができる。
請求項１２の発明によれば、装置を制御する複数の制御プログラムの動作スケジュールを、他の制御プログラムと動作が両立しない制御プログラムを明示した形で提示することができる。
【発明を実施するための最良の形態】
【０００６】
以下、添付図面を参照して、本発明を実施するための最良の形態（以下、「実施の形態」という）について詳細に説明する。
図１は、本実施の形態が適用されるコンピュータシステムの構成を示している。
図示するように、このコンピュータシステムは、画像処理装置１０と、端末装置２０とが、ネットワーク８０で接続されることにより構成されている。
【０００７】
このうち、画像処理装置１０は、端末装置２０からネットワーク８０を介して入力された情報や、直接メディアを挿入したり紙文書をスキャンしたりすることで得られた情報に基づいて、画像処理を行う装置である。例えば、プリンタであり、この観点からは画像形成装置として捉えることができる。また、スキャナであってもよく、この観点からは画像読取装置として捉えることもできる。更に、ファクシミリであってもよく、この観点からは画像送信装置又は画像受信装置として捉えることもできる。
【０００８】
また、端末装置２０は、文書の印刷や文書のファクシミリ送信等を画像処理装置１０に指示する装置であり、ＰＣ（Personal Computer）が例示される。尚、端末装置２０は、ウェブブラウザを有することもでき、その場合は、画像処理装置１０の各種設定をウェブブラウザから行うことができる。
更に、ネットワーク８０は、ＬＡＮ（Local Area Network）であってもよいし、インターネットであってもよい。
【０００９】
ところで、近年、画像処理装置１０を利用するためのスクリプトを端末装置２０のような外部で作成し、画像処理装置１０にインストールできるようになっている。このように外部で作成するスクリプトは、一般的なスクリプト言語で記述され、画像処理装置１０の機能を使うためのインターフェイスを簡単な言語で記述することによりその機能を利用できるようにするものである。
【００１０】
また、スクリプトは、決められた日時に自動的に実行することも可能である。この場合、画像処理装置１０の限られたリソースを複数のスクリプトが使用しようとする状態（以下、「リソース競合」という）が生じることがある。また、例えば、スクリプト作成者Ｘが画像処理装置１０で１時３０分に動作することを期待するスクリプトを作成し登録したが、スクリプト作成者Ｙが画像処理装置１０を０時にシャットダウンして６時に自動起動するスクリプトを作成し登録するかもしれない。このようなスクリプトが作成され登録されると、スクリプト作成者Ｘが登録したスクリプトが実行日時の関係で動作しないという状態（以下、「日時競合」という）が生じてしまう。
一方で、スクリプトは一般的なスクリプト言語を用いて作成されるため、ユーザが記述したコードは、その記述の仕方によってリソース競合を回避できる場合もある。
【００１１】
そこで、本実施の形態では、画像処理装置１０にインストールされたスクリプトとその実行日時から自動的にスケジュール表を作成してユーザに提示する。
また、端末装置２０から画像処理装置１０にスクリプトをインストールするときにリソース競合が発生するか否かを検査する。
更に、リソース競合によって動作しないスクリプトを検出し、ユーザに通知する。
更にまた、コードの記述の仕方によってリソース競合を回避できる場合には、スクリプトのインストール時に、ユーザに対し、予め用意したコードのテンプレートを用いたコード変換を促す。
【００１２】
次に、本実施の形態における画像処理装置１０及び端末装置２０の機能構成について詳細に説明する。
図２は、画像処理装置１０及び端末装置２０の機能構成例を示したブロック図である。
まず、画像処理装置１０の機能構成について説明する。尚、本実施の形態において、画像処理装置１０は、プログラム実行装置の一例である。
図示するように、本実施の形態における画像処理装置１０は、実行日時情報記憶部１１と、実行日時情報管理部１２と、スケジュール情報記憶部１３と、スケジュール情報管理部１４と、送信部１５と、受信部１６と、スクリプト解析部１７と、スクリプト記憶部１８と、スクリプト管理部１９とを備える。このうち、スクリプト解析部１７は、使用リソース情報記憶部１７ａと、競合判定部１７ｂと、コード変換情報記憶部１７ｃと、変換コード抽出部１７ｄとを備える。また、画像処理装置１０は、スクリプト実行部３１と、電源管理部３２と、画像処理部３３とを備える。尚、これらのうち、実行日時情報記憶部１１、スケジュール情報記憶部１３、使用リソース情報記憶部１７ａ、コード変換情報記憶部１７ｃ、スクリプト記憶部１８は、例えばＨＤＤにより実現される。また、実行日時情報管理部１２、スケジュール情報管理部１４、送信部１５、受信部１６、競合判定部１７ｂ、変換コード抽出部１７ｄ、スクリプト管理部１９、スクリプト実行部３１の各機能は、ＣＰＵがＲＯＭに記憶されたプログラムをＲＡＭに読み込んで実行することにより、実現される。
【００１３】
実行日時情報記憶部１１は、スクリプトの識別情報とスクリプトの実行日時との対応情報である実行日時情報を記憶する。スクリプトの識別情報は、スクリプトを一意に識別する情報であれば、如何なる情報であってもよいが、以下では、スクリプト名を用いるものとする。本実施の形態では、制御プログラムの一例として、スクリプトを用い、動作時刻情報の一例として、実行日時情報を用いている。また、動作時刻情報を記憶する記憶手段の一例として、実行日時情報記憶部１１を設けている。
実行日時情報管理部１２は、実行日時情報記憶部１１への実行日時情報の新規登録、実行日時情報記憶部１１に記憶された実行日時情報の更新や読出し等を行う。本実施の形態では、動作時刻情報を取得する取得手段の一例として、実行日時情報管理部１２を設けている。
【００１４】
スケジュール情報記憶部１３は、全てのスクリプトの自動実行のスケジュール表を記憶する。
スケジュール情報管理部１４は、スケジュール表の生成、生成したスケジュール表のスケジュール情報記憶部１３への新規登録、スケジュール情報記憶部１３に記憶されたスケジュール表の更新や読出し等を行う。本実施の形態では、スケジュール情報の一例として、スケジュール表を用いており、スケジュール情報を生成する生成手段の一例として、スケジュール情報管理部１４を設けている。
【００１５】
送信部１５は、スケジュール情報記憶部１３に記憶されたスケジュール表、スクリプト解析部１７によるスクリプト解析結果を端末装置２０に送信する。ここで、スケジュール表は、競合判定部１７ｂにおける競合判定で判明した他のスクリプトと競合するスクリプトを明示するマークが付加された形で送信する。本実施の形態では、動作が両立しない制御プログラムの組み合わせに含まれる少なくとも１つの制御プログラムを明示する標識の一例として、マークを用いており、スケジュール情報と標識をスケジュール情報に付加するための付加情報とを出力する出力手段の一例として、また、スケジュール情報と標識をスケジュール情報に付加するための付加情報とを送信する送信手段の一例として、送信部１５を設けている。
受信部１６は、アップロードの開始メッセージ（スケジュール表の送付指示）、スクリプト解析指示、スクリプトインストール指示を端末装置２０から受信する。
【００１６】
スクリプト解析部１７は、ＣＰＵがＲＯＭに記憶されたプログラムのうち特にスクリプト解析エンジンと呼ばれるプログラムをＲＡＭに読み込んで実行することにより、仮想的に実現される機能である。ここで、スクリプト解析エンジンは、スクリプトを解析する処理をコンピュータに実行させるプログラムであるが、以下に述べる使用リソース情報やコード変換情報を例えばＨＤＤに展開する処理もコンピュータに実行させる。
使用リソース情報記憶部１７ａは、スクリプトに記述されるインターフェイスとそのインターフェイスで使用される画像処理装置１０のリソース（資源）との対応情報である使用リソース情報を記憶する。
競合判定部１７ｂは、スクリプトの実行日時に基づく競合である日時競合や、スクリプトが利用するリソースに基づく競合であるリソース競合の発生を検知する。ここで、日時競合やリソース競合の発生の検知は、既にインストールされており自動実行がスケジュールされているスクリプトについて行われる場合と、インストールしようとしているスクリプトについてインストール前に行われる場合とがある。本実施の形態では、動作が両立しない制御プログラムの組み合わせを決定する決定手段の一例として、また、自装置に新たに組み込むものとして指定された制御プログラムの動作が制限されるかどうかを判定する判定手段の一例として、競合判定部１７ｂを設けている。
コード変換情報記憶部１７ｃは、ユーザが作成したコードとそのコードを変換するために予め用意したコードのテンプレート（変換コード）との対応情報であるコード変換情報を記憶する。
変換コード抽出部１７ｄは、スクリプトの解析時に、リソース競合を回避するための変換コードをコード変換情報記憶部１７ｃから抽出する。
【００１７】
スクリプト記憶部１８は、ユーザが作成しインストールされたスクリプトを記憶する。
スクリプト管理部１９は、スクリプト記憶部１８へのスクリプトの新規登録、スクリプト記憶部１８に記憶されたスクリプトの読出し等を行う。
【００１８】
スクリプト実行部３１は、スクリプト記憶部１８に記憶されたスクリプトを、実行日時情報記憶部１１に記憶された実行日時情報に基づいて、指定した日時に動作させる。
電源管理部３２は、スクリプト実行部３１により自動実行されるスクリプトによる制御の対象であり、電源のオン／オフ（投入及び遮断）や、節電モードへの移行等を管理する。
画像処理部３３は、電源管理部３２と同様、スクリプト実行部３１により自動実行されるスクリプトによる制御の対象であり、外部から入力された画像データに基づいて画像処理を行う。ここで、画像処理としては、スキャナによる画像読取り、例えば電子写真方式を用いた画像形成、ファクシミリ機構による画像送信や画像受信が考えられる。
【００１９】
次に、端末装置２０の機能構成について説明する。
図示するように、本実施の形態における端末装置２０は、送信部２５と、受信部２６と、操作受付部２７と、表示部２８とを備える。尚、これらの各機能は、ＣＰＵがＲＯＭに記憶されたプログラムをＲＡＭに読み込んで実行することにより、実現される。
【００２０】
送信部２５は、アップロードの開始メッセージ（スケジュール表の送付指示）、スクリプト解析指示、スクリプトインストール指示を画像処理装置１０に送信する。
受信部２６は、スケジュール表やスクリプト解析結果を画像処理装置１０から受信する。ここで、スケジュール表は、他のスクリプトと競合するスクリプトを明示するマークが付加された形で受信する。
操作受付部２７は、アップロード開始、スクリプト解析、スクリプトの実行日時やコードの変更、アップロード実行に関するユーザ操作を受け付ける。
表示部２８は、受信部２６が受信したスケジュール表やスクリプト解析結果をディスプレイに表示する。
【００２１】
次に、実行日時情報記憶部１１に記憶された実行日時情報、使用リソース情報記憶部１７ａに記憶された使用リソース情報、コード変換情報記憶部１７ｃに記憶されたコード変換情報について具体的に説明する。
図３は、実行日時情報の具体例を示した図である。
図示するように、実行日時情報は、スクリプト名と、開始日時と、終了日時と、繰り返しとを対応付けたものになっている。
スクリプト名は、前述の通り、スクリプトを一意に識別する識別情報の一例である。
開始日時は、スクリプトの動作を開始する日時であり、終了日時は、スクリプトの動作を終了する日時である。例えば、「節電」のように節電モードを継続的に維持するといったスクリプトもあるので、開始日時及び終了日時を設けている。これに対し、電源オン、電源オフ、画像処理に関する各種動作は、ある瞬間に開始することのみが指定される動作である。従って、このような動作を行うスクリプトについては、例えば、開始日時のみに日時を設定したり、開始日時及び終了日時に同じ日時を設定したりすればよい。
また、繰り返しには、スクリプトが毎日動作するのか、毎週動作するのか等が設定される。
尚、実行日時情報には、各スクリプトの使用リソースの情報を含めてもよい。後述する動作では、競合判定部１７ｂがリソース競合の判定を行う際に各スクリプトの使用リソースの情報を取得するが、これを事前に取得し、実行日時情報に含めて記憶してもよい。
【００２２】
図４は、使用リソース情報の具体例を示した図である。
図示するように、使用リソース情報は、インターフェイス（図では「Ｉ／Ｆ」と表記）と、使用リソースとを対応付けたものになっている。
インターフェイスは、前述の通り、画像処理装置１０の機能を使うための関数である。
使用リソースは、インターフェイスが呼び出されたときに使用される画像処理装置１０のリソースである。
図には、一例として、インターフェイス「ｃｏｐｙ」は、画像読取部及び画像形成部をリソースとして使用し、インターフェイス「ｓｃａｎ」は、画像読取部をリソースとして使用することを示している。
【００２３】
図５は、コード変換情報の具体例を示した図である。
図示するように、コード変換情報は、ユーザ作成コードと、変換コードとを対応付けたものになっている。
ユーザ作成コードは、ユーザが最初に作成したスクリプトにおいて記述したコードである。
変換コードは、ユーザ作成コードに基づくリソース競合を回避するために予め用意されたコードのテンプレートである。
図には、一例として、スキャナでスキャンするという動作を意味するコードを２つの変換コードの何れかで置き換えることでリソース競合を回避できることを示している。尚、２つの変換コードのうち、１行目の変換コードは、スキャナが使用中であった場合にスキャナが空くまで無制限に待つという動作を意味するコードであり、２行目の変換コードは、スキャナが使用中であった場合にスキャナが空くまで１０分を限度として待つという動作を意味するコードである。
【００２４】
次いで、本実施の形態における画像処理装置１０及び端末装置２０の動作について詳細に説明する。
まず、端末装置２０が画像処理装置１０にスクリプトをアップロードするときの画像処理装置１０と端末装置２０の情報交換の流れについて説明する。
図６は、このときの情報交換の流れを示したシーケンス図である。
端末装置２０では、まず、ユーザが作成したスクリプトを画像処理装置１０にアップロードする手続きを開始する操作を行う。すると、操作受付部２７が、その操作を受け付け、送信部２５に伝える（ステップ２０１）。そして、送信部２５が、アップロードの開始メッセージを画像処理装置１０に送信する（ステップ２０２）。
【００２５】
これにより、画像処理装置１０では、受信部１６が、アップロードの開始メッセージを受信し、実行日時情報管理部１２に伝える（ステップ１０１）。すると、実行日時情報管理部１２は、実行日時情報記憶部１１に記憶された既にインストールされているスクリプトに関する実行日時情報を読み出し、競合判定部１７ｂ及びスケジュール情報管理部１４に渡す（ステップ１０２）。
そして、競合判定部１７ｂは、実行日時情報管理部１２から渡された実行日時情報に基づいて、既にインストールされているスクリプトについて、スクリプト間で競合が発生していないかどうかを判定する競合判定処理を行う（ステップ１０３）。尚、競合判定処理の詳細は後述する。
また、スケジュール情報管理部１４は、実行日時情報管理部１２から渡された実行日時情報に基づいてスケジュール表を生成し、競合判定部１７ｂによる競合判定処理の結果を反映させてスケジュール情報記憶部１３に記憶する（ステップ１０４）。その後、このスケジュール表は送信部１５に送信され、送信部１５が、スケジュール表を端末装置２０に送信する（ステップ１０５）。
【００２６】
これにより、端末装置２０では、受信部２６が、競合判定処理の結果が反映されたスケジュール表を受信する（ステップ２０３）。そして、表示部２８が、スケジュール表をディスプレイに表示する（ステップ２０４）。
【００２７】
その後、ユーザは、スケジュール表を見ながら自分が作成したスクリプトをアップロードして競合が発生しないかどうか検討する。但し、スケジュール表にスクリプト名とその実行日時しか表示しないような場合には、実際にスクリプトをアップロードしてリソース競合が発生しないかどうかが一見して分からないこともある。また、スケジュール表を入手した時点における画像処理装置１０のインストール状況を考えれば競合が発生しないような場合でも、その後のインストール状況の変化により、実際にスクリプトをアップロードすると競合が発生することも考えられる。
そこで、本実施の形態では、ユーザがアップロードしようとするスクリプトとその時点で画像処理装置１０にインストールされているスクリプトとの間に競合が発生しないかのスクリプト解析を、アップロード前に画像処理装置１０が行うようにしている。
【００２８】
このようなスクリプト解析を依頼する場合、ユーザは、例えば、端末装置２０に表示された画面上でスクリプト解析を選択する操作を行う。すると、操作受付部２７が、その操作を受け付け、スクリプト及びその実行日時を送信部２５に受け渡す（ステップ２０５）。そして、送信部２５が、スクリプト及びその実行日時を伴うスクリプト解析指示を画像処理装置１０に送信する（ステップ２０６）。
【００２９】
これにより、画像処理装置１０では、受信部１６が、スクリプト解析指示を受信し、スクリプト及びその実行日時を実行日時情報管理部１２に受け渡す（ステップ１０６）。すると、実行日時情報管理部１２は、実行日時情報記憶部１１から実行日時情報を読み出して、ステップ１０６で受け取ったスクリプト及び実行日時情報と共に競合判定部１７ｂに渡し、競合判定部１７ｂは、実行日時情報管理部１２から渡された実行日時情報等に基づいて、これからインストールされるスクリプトと、既にインストールされているスクリプトの間で競合が発生していないかどうかを判定する競合判定処理を行う（ステップ１０７）。尚、競合判定処理の詳細は後述する。
その後、変換コード抽出部１７ｄが、リソース競合を回避してスクリプトが動作するよう、ユーザ作成コードを変換するために予め用意した変換コードを抽出する変換コード抽出処理を行い、競合判定の結果及び変換コードをスクリプト解析結果として送信部１５に受け渡す（ステップ１０８）。尚、変換コード抽出処理の詳細も後述する。そして、送信部１５は、スクリプト解析結果を端末装置２０に送信する（ステップ１０９）。
【００３０】
これにより、端末装置２０では、受信部２６が、スクリプト解析結果を受信し、表示部２８に受け渡す（ステップ２０７）。そして、表示部２８が、スクリプト解析結果をディスプレイに表示して、スクリプト作成者に通知する（ステップ２０８）。
【００３１】
ユーザは、ここで表示されたスクリプト解析結果を見て、スクリプトの実行日時を変更する操作、又は、変換コードを用いてスクリプトのコードを変更する操作を行う。すると、操作受付部２７が、その操作を受け付ける（ステップ２０９）。そして、変更後のスクリプト及びその実行日時をアップロードする場合、ユーザは、例えば、端末装置２０に表示された画面上でアップロードを選択する操作を行う。すると、操作受付部２７が、その操作を受け付け、変更後のスクリプト及びその実行日時を送信部２５に受け渡す（ステップ２１０）。そして、送信部２５は、変更後のスクリプト及びその実行日時を伴うスクリプトインストール指示を画像処理装置１０に送信する（ステップ２１１）。
【００３２】
これにより、画像処理装置１０では、受信部１６が、スクリプトインストール指示を受信し、スクリプトをスクリプト管理部１９に、スクリプト名と実行日時との対応を実行日時情報管理部１２に受け渡す（ステップ１１０）。そして、スクリプトを受け渡されたスクリプト管理部１９は、スクリプト記憶部１８にスクリプトを記憶する（ステップ１１１）。また、スクリプト名と実行日時との対応を受け渡された実行日時情報管理部１２は、スクリプト名と実行日時との対応を実行日時情報として実行日時情報記憶部１１に記憶する（ステップ１１２）。
【００３３】
ここで、この動作において端末装置２０に表示される画面例について説明する。
図７は、図６のステップ２０４で表示される画面の第１の例である。
この画面には、スクリプトＡ〜Ｄが、YYYY年MM月DD日の何時に如何なる動作を行うかを示したスケジュール表が表示されている。そして、このスケジュール表では、画像処理装置１０に対し、スクリプトＣが２時に電源オフし、スクリプトＤが６時半に電源オンすることが設定されているにも関わらず、スクリプトＢが３時にファクシミリ送信を行うことが設定されている。この場合、競合判定処理を行うことにより、このファクシミリ送信は動作しないことが分かるため、そのことを示すマーク４１が表示されている。
【００３４】
図８は、図６のステップ２０４で表示される画面の第２の例である。
この画面には、複数のスクリプトが、YYYY年MM月の何日の何時に如何なる動作を行うかを示したスケジュール表が表示されている。そして、このスケジュール表では、画像処理装置１０が、YYYY年MM月５日の２３時に電源オフし、YYYY年MM月７日の６時に電源オンすることが設定されているにも関わらず、YYYY年MM月６日の７時にファクシミリ送信を行うことが設定されている。この場合、競合判定処理を行うことにより、このファクシミリ送信は動作しないことが分かるため、そのことを示すマーク４２が表示されている。
【００３５】
尚、図７及び図８では、日時競合が発生した場合にマークを表示することのみを示したが、リソース競合が発生した場合にマークを表示するようにしてもよい。その場合、具体的にどのリソースで競合が発生しているかを、マーク４１、４２の中にリソースを表す絵を表示することで表現するようにするとよい。
【００３６】
図９は、図６のステップ２０５又はステップ２１０で選択操作を行う際に表示される画面の例である。
この画面では、スクリプト名入力欄５１に「節電」と入力されており、節電モードへの移行を行うスクリプトをアップロードしようとしていることが分かる。
また、この画面において、開始日時設定欄５２及び終了日時設定欄５３には、YYYY年MM月DD日HH時MM分と設定されている。但し、この画面が、例えば、図８のYYYY年MM月７日の欄の「新規」というリンク文字列４３をクリックしたときに表示される画面であるとすると、開始日時設定欄５２にはYYYY年MM月７日H1時M1分と設定され、終了日時設定欄５３にはYYYY年MM月７日H2時M2分と設定されることになる。即ち、YYYY年MM月７日のH1時M1分からH2時M2分まで節電モードを維持する動作を行うことが設定される。
更に、繰り返し設定欄５４には、「毎日」と設定されている。これは、開始日時設定欄５２及び終了日時設定欄５３に対する設定にかかわらず、毎日H1時M1分からH2時M2分まで節電モードを維持する動作を行うことを意味する。
【００３７】
また、この画面の右上のスクリプト設定欄５５には、スクリプトの所在が設定される。
更に、ボタン５６はスクリプトの内容を参照するためのボタン、ボタン５７はステップ２０５でスクリプト解析を指示するためのボタン、ボタン５８はステップ２１０でスクリプトのアップロードを指示するためのボタンである。
【００３８】
次に、図６のステップ１０３、ステップ１０７、ステップ１０８の動作をより詳細に説明する。
図１０は、図６のステップ１０３又はステップ１０７における競合判定処理の流れを詳細に示したフローチャートである。尚、一般には、１つのスクリプトに複数のインターフェイスが記述されることがあるが、ここでは簡単のために１つのスクリプトには１つのインターフェイスのみが記述されることとする。また、「節電」のように動作が一定期間継続するような場合は、開始日時及び終了日時に異なる日時が設定されるが、ここでは簡単のために一定時間継続するような動作は考えないものとする。つまり、例えば、ある瞬間に開始される動作のみを考え、その動作が開始される日時を「実行日時」と呼ぶことにする。
【００３９】
まず、競合判定部１７ｂは、競合が発生することにより動作しなくなるかどうかを判定する対象のスクリプト（以下、「判定対象スクリプト」という）及びその実行日時を取得する（ステップ１２１）。図６のステップ１０３の場合であれば、既にインストールされた複数のスクリプトの中から何らかの基準で選択された１つのスクリプトが判定対象スクリプトとなる。具体的には、スクリプト記憶部１８に記憶されたスクリプトをスクリプト管理部１９を介して取得し、実行日時情報記憶部１１に記憶されたそのスクリプトの実行日時を実行日時情報管理部１２を介して取得する。そして、幾つかの判定対象スクリプトについて、これから述べる動作を繰り返し行えばよい。また、図６のステップ１０７の場合であれば、新たにインストールされるスクリプトが判定対象スクリプトとなる。具体的には、受信部１６が受信したスクリプト及びその実行日時を実行日時情報管理部１２を介して取得する。
【００４０】
次に、競合判定部１７ｂは、判定対象スクリプトとの間で競合が発生するかという点で比較する対象のスクリプト（以下、「比較対象スクリプト」という）を読み出して、以下に述べる競合判定を行う。
ここで、先に述べた通り、競合には、日時競合とリソース競合とがある。従って、競合判定もこれらの２つの種類の競合について行う。
【００４１】
第一に、競合判定部１７ｂは、日時競合の判定を行う。尚、ここでは、電源をオフするスクリプトの実行日時から電源をオンするスクリプトの実行日時までの間に画像処理を行うスクリプトの実行日時がある状態のみを、日時競合として考えるものとする。
この場合、競合判定部１７ｂは、まず、判定対象スクリプトの実行日時よりも１つ前の実行日時が指定された比較対象スクリプトを読み出す（ステップ１２２）。具体的には、実行日時情報記憶部１１に記憶された実行日時情報を参照して、判定対象スクリプトの実行日時よりも早くかつ最も近い実行日時が対応付けられたスクリプトを特定し、スクリプト記憶部１８に記憶されたスクリプトの中からこのスクリプトを読み出す。
次いで、競合判定部１７ｂは、比較対象スクリプトの内容を解析し、電源をオフする動作を表すインターフェイスが記述されているかどうかを判定する（ステップ１２３）。その結果、電源をオフする動作を表すインターフェイスが記述されていなければ、更に１つ前の実行日時が指定された比較対象スクリプトが他にあるかどうかを判定する（ステップ１２４）。そして、そのような比較対象スクリプトがあれば、その比較対象スクリプトについて、ステップ１２２〜１２３を繰り返す。また、そのような比較対象スクリプトがなければ、リソース競合の判定処理に移る。
【００４２】
一方、ステップ１２３で電源をオフする動作を表すインターフェイスが記述されていると判定されれば、競合判定部１７ｂは、その比較対象スクリプトの実行日時の次の実行日時が指定された比較対象スクリプトを読み出す（ステップ１２５）。具体的には、実行日時情報記憶部１１に記憶された実行日時情報を参照して、電源をオフする動作を表すインターフェイスが記述された比較対象スクリプトの実行日時よりも遅くかつ最も近い実行日時が対応付けられたスクリプトを特定し、スクリプト記憶部１８に記憶されたスクリプトの中からこのスクリプトを読み出す。
【００４３】
その後、競合判定部１７ｂは、読み出した比較対象スクリプトの実行日時が判定対象スクリプトの実行日時よりも後であるかどうかを判定する（ステップ１２６）。そして、後でなければ、比較対象スクリプトの内容を解析し、電源をオンする動作を表すインターフェイスが記述されているかどうかを判定する（ステップ１２７）。その結果、電源をオンする動作を表すインターフェイスが記述されていなければ、更に１つ後の実行日時が指定された比較対象スクリプトについて、ステップ１２５〜１２７を繰り返す。一方、電源をオンする動作を表すインターフェイスが記述されていれば、リソース競合の判定処理に移る。
また、ステップ１２６で比較対象スクリプトの実行日時が判定対象スクリプトの実行日時よりも後であると判定されれば、競合判定結果に電源がオフされる日時をセットし（ステップ１２８）、処理を終了する。
【００４４】
即ち、この日時競合の判定処理では、判定対象スクリプトの実行日時から遡って、電源をオフするスクリプトを探し、そのようなスクリプトが見つからなければ、判定対象スクリプトの実行日時において電源はオンになっているので、日時競合は発生しないと判定する。
また、電源をオフするスクリプトが見つかれば、今度は逆にそのスクリプトの実行日時から判定対象スクリプトの実行日時までの間で電源をオンするスクリプトを探す。そして、電源をオンするスクリプトが見つかれば、一旦電源がオフされた後にオンされて判定対象スクリプトが動作することになるので、日時競合は発生しないと判定する。また、電源をオンするスクリプトが見つからなければ、判定対象スクリプトの実行日時において電源はオフになっているので、日時競合が発生すると判定する。
【００４５】
第二に、競合判定部１７ｂは、リソース競合の判定を行う。
この場合、競合判定部１７ｂは、まず、判定対象スクリプトの実行日時の近傍の実行日時が指定された比較対象スクリプトを読み出す（ステップ１２９）。具体的には、実行日時情報記憶部１１に記憶された実行日時情報を参照して、判定対象スクリプトの実行日時の前後の予め定められた時間内の実行日時が対応付けられたスクリプトを特定し、スクリプト記憶部１８に記憶されたスクリプトの中からこのスクリプトを読み出す。
次いで、競合判定部１７ｂは、判定対象スクリプトの使用リソースを特定する（ステップ１３０）。具体的には、判定対象スクリプトに記述されたインターフェイスをキーとして使用リソース情報記憶部１７ａを検索し、使用リソースの情報を取得する。また、競合判定部１７ｂは、比較対象スクリプトの使用リソースを特定する（ステップ１３１）。具体的には、比較対象スクリプトに記述されたインターフェイスをキーとして使用リソース情報記憶部１７ａを検索し、使用リソースの情報を取得する。
【００４６】
その後、競合判定部１７ｂは、ステップ１３０で特定した使用リソースと、ステップ１３１で特定した使用リソースとの間に、重複部分があるかどうかを判定する（ステップ１３２）。その結果、重複部分がないと判定された場合は、判定対象スクリプトの実行日時の近傍の実行日時が指定された比較対象スクリプトが他にあるかどうかを判定する（ステップ１３３）。そして、そのような比較対象スクリプトが他にあれば、その比較対象スクリプトについて、ステップ１２９〜１３２を繰り返す。また、そのような比較対象スクリプトが他になければ、処理を終了する。
一方、ステップ１３２で重複部分があると判定された場合は、競合判定結果にインターフェイスと使用リソースとの対応情報をセットし（ステップ１３４）、処理を終了する。
【００４７】
即ち、このリソース競合の判定処理では、判定対象スクリプトの実行日時の近傍の実行日時が指定されたスクリプトの中で、判定対象スクリプトが使用するリソースと同じリソースを使用するスクリプトを探す。そして、同じリソースを使用するスクリプトが見つかれば、リソース競合が発生すると判定する。
【００４８】
図１１は、図６のステップ１０８における変換コード抽出処理の流れを詳細に示したフローチャートである。
まず、変換コード抽出部１７ｄは、競合判定部１７ｂから競合判定結果を受け取る（ステップ１４１）。そして、競合判定結果に情報がセットされているかどうかを判定し（ステップ１４２）、情報がセットされていなければ、競合が発生していない旨を送信部１５に出力する（ステップ１４３）。
【００４９】
また、競合判定結果に情報がセットされていれば、変換コード抽出部１７ｄは、その情報が、図１０のステップ１３４でセットされたインターフェイスと使用リソースとの対応情報であるかどうかを判定する（ステップ１４４）。
その結果、インターフェイスと使用リソースとの対応情報であれば、変換コード抽出部１７ｄは、インターフェイスをキーとしてコード変換情報記憶部１７ｃを検索し、変換コードを抽出する（ステップ１４５）。例えば、図５の場合、明示していないが、ユーザ作成コードにインターフェイス「ｓｃａｎ」が紐付けられており、インターフェイス「ｓｃａｎ」をキーとして、図示する２種類の変換コードが抽出される。そして、リソース競合が発生している旨と、競合するリソースの情報と、変換コードとを送信部１５に出力する（ステップ１４６）。
【００５０】
一方、インターフェイスと使用リソースとの対応情報でなければ、つまり、図１０のステップ１２８でセットされた電源オフの日時であれば、日時競合が発生している旨と、電源オフされる日時の情報とを送信部１５に出力する（ステップ１４７）。
【００５１】
以上により、本実施の形態の動作は終了する。
ところで、本実施の形態では、画像処理装置１０でスクリプト解析を行ったが、画像処理装置１０から端末装置２０へスクリプト解析エンジンを送付し、端末装置２０でスクリプト解析を行うようにしてもよい。即ち、図２のスクリプト解析部１７を端末装置２０内で実現するようにしてもよい。この場合は、動作時刻情報を受信する受信手段の一例として、受信部２６を設けたことになり、動作時刻情報を受け付ける受付手段の一例として、操作受付部２７を設けたことになり、プログラム実行装置に組み込むものとして指定された制御プログラムの動作が制限されるかどうかを判定する判定手段の一例として、競合判定部を設けたことになり、判定手段による判定結果を表示する表示手段の一例として、表示部２８を設けたことになる。
【００５２】
また、本実施の形態では、画像処理装置１０へのスクリプトのインストールを端末装置２０から行い、画像処理装置１０で生成されたスケジュール表や画像処理装置１０におけるスクリプト解析の結果を端末装置２０に送信して表示するようにしたが、このような態様には限られない。例えば、画像処理装置１０に設けられた操作パネルからスクリプトのインストールを指示し、画像処理装置１０に設けられたディスプレイにスケジュール表やスクリプト解析の結果を表示するようにしてもよい。
【００５３】
更に、本実施の形態では、端末装置２０からアップロードの開始メッセージを受信すると、画像処理装置１０はスケジュール表を送付するようにしたが、このスケジュール表の送付タイミングもこれには限らない。例えば、ユーザが新たなスクリプトのインストールが完了した時点で、その完了報告としてスケジュール表を送付するようにしてもよい。或いは、スクリプトに対して指定された実行日時の前にスケジュール表を送付し、ユーザがスクリプトの実行日時をその時点で変更できるようにすることも考えられる。
【００５４】
更にまた、本実施の形態の変形例としては、次のような構成も考えられる。
第一に、画像処理装置１０のディスプレイにスケジュール表を表示する場合に、画像処理装置１０へのログイン情報に基づいて、ログインしたユーザが登録したスクリプトに関するスケジュール表を表示する、といった構成である。
第二に、画像処理装置１０にスクリプトをインストールした際のユーザ情報に基づいて、スクリプトにリソース競合が発生した場合にはそのユーザに通知する、といった構成である。
第三に、スクリプトがリソース競合を生じさせそうな場合に、スケジュール表にその旨を表示する、といった構成である。例えば、新たなスクリプトをインストールしようとするときにこのような表示を行うことが考えられる。
第四に、スクリプトがリソース競合を生じさせた場合に、画像処理装置１０が、何れかのスクリプトに対して、リソース競合を回避するための処理を自動的に行う、といった構成である。
【００５５】
尚、本実施の形態では、スクリプトとは別に実行日時を指定したが、スクリプト中に実行日時の指定を記述してもよい。この場合は、スクリプト中の実行日時が上記実施の形態における実行日時に相当し、スクリプト中の動作の記述が上記実施の形態におけるスクリプトに相当することになる。
また、本実施の形態では、スクリプトを処理対象として説明したが、一般的なプログラムを処理対象としてもよい。
【００５６】
ところで、本実施の形態では、画像処理装置１０がスケジュール表を生成して出力し、画像処理装置１０又は端末装置２０がスクリプト解析を行うことを前提とした。しかしながら、画像処理装置１０で行われる処理、及び、端末装置２０で行われる処理は、汎用のコンピュータで行うようにしてもよい。
そこで、これらの処理をコンピュータ９０で行うものとして、コンピュータ９０のハードウェア構成について説明する。
【００５７】
図１２は、コンピュータ９０のハードウェア構成を示した図である。
図示するように、コンピュータ９０は、演算手段であるＣＰＵ（Central Processing Unit）９１と、記憶手段であるメインメモリ９２及び磁気ディスク装置（ＨＤＤ：Hard Disk Drive）９３とを備える。ここで、ＣＰＵ９１は、ＯＳ（Operating System）やアプリケーション等の各種ソフトウェアを実行し、上述した各機能を実現する。また、メインメモリ９２は、各種ソフトウェアやその実行に用いるデータ等を記憶する記憶領域であり、磁気ディスク装置９３は、各種ソフトウェアに対する入力データや各種ソフトウェアからの出力データ等を記憶する記憶領域である。
更に、コンピュータ９０は、外部との通信を行うための通信Ｉ／Ｆ９４と、ビデオメモリやディスプレイ等からなる表示機構９５と、キーボードやマウス等の入力デバイス９６とを備える。
【００５８】
尚、本実施の形態を実現するプログラムは、通信手段により提供することはもちろん、ＣＤ−ＲＯＭ等の記録媒体に格納して提供するようにしてもよい。
【図面の簡単な説明】
【００５９】
【図１】本発明の実施の形態が適用されるシステムの構成を示した図である。
【図２】本発明の実施の形態における画像処理装置及び端末装置の機能構成例を示した図である。
【図３】本発明の実施の形態で用いられる実行日時情報の例を示した図である。
【図４】本発明の実施の形態で用いられる使用リソース情報の例を示した図である。
【図５】本発明の実施の形態で用いられるコード変換情報の例を示した図である。
【図６】本発明の実施の形態における画像処理装置と端末装置の間の情報交換の流れを示したシーケンス図である。
【図７】本発明の実施の形態で表示されるスケジュール表の例である。
【図８】本発明の実施の形態で表示されるスケジュール表の例である。
【図９】本発明の実施の形態で表示されるスクリプト解析やアップロードの指示を行うための画面を示した図である。
【図１０】本発明の実施の形態における競合判定部の動作例を示したフローチャートである。
【図１１】本発明の実施の形態における変換コード抽出部の動作例を示したフローチャートである。
【図１２】本発明の実施の形態を実現可能なコンピュータのハードウェア構成図である。
【符号の説明】
【００６０】
１０…画像処理装置、１１…実行日時情報記憶部、１２…実行日時情報管理部、１３…スケジュール情報記憶部、１４…スケジュール情報管理部、１５，２５…送信部、１６，２６…受信部、１７…スクリプト解析部、１８…スクリプト記憶部、１９…スクリプト管理部、２０…端末装置、２７…操作受付部、２８…表示部
【図１】
0005309830.tif 000002
【図２】
0005309830.tif 000003
【図３】
0005309830.tif 000004
【図４】
0005309830.tif 000005
【図５】
0005309830.tif 000006
【図６】
0005309830.tif 000007
【図７】
0005309830.tif 000008
【図８】
0005309830.tif 000009
【図９】
0005309830.tif 000010
【図１０】
0005309830.tif 000011
【図１１】
0005309830.tif 000012
【図１２】
0005309830.tif 000013