(57)【要約】      （修正有）【課題】慎重派、非慎重派など様々なユーザの要請に対応しながら複数台の装置のプログラムを新たなバージョンに更新することのできるプログラム更新管理サーバを提供する。【解決手段】プログラム更新管理サーバ１０は、情報処理装置のプログラムを更新するプログラム更新部２１と、新バージョンのプログラムの実行に伴う不具合発生のリスクを判断するリスク判断部２２を有する。プログラム更新部２１は、新バージョンのプログラムのリスクが所定値未満に下がるまでは、旧バージョンのプログラムで動作する情報処理装置と新バージョンのプログラムで動作する情報処理装置が混在する状態を維持する。【選択図】図２
2019144960.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された複数の情報処理装置におけるプログラムの更新を管理するプログラム更新管理サーバであって、
前記情報処理装置のプログラムを更新するプログラム更新部と、
新バージョンのプログラムの実行に伴う不具合発生のリスクを判断するリスク判断部と、
を有し、
前記プログラム更新部は、新バージョンのプログラムの前記リスクが所定値未満に下がるまでは、旧バージョンのプログラムで動作する情報処理装置と新バージョンのプログラムで動作する情報処理装置とが混在する状態を維持する
ことを特徴とするプログラム更新管理サーバ。
【請求項２】
前記リスク判断部は、前記新バージョンのプログラムで変更された部分がどの機能に係るプログラムであるかに基づいて、前記新バージョンのプログラムの前記リスクを判断する
ことを特徴とする請求項１に記載のプログラム更新管理サーバ。
【請求項３】
前記リスク判断部は、前記新バージョンのプログラムのリリース目的に基づいて、前記新バージョンのプログラムの前記リスクを判断する
ことを特徴とする請求項１または２に記載のプログラム更新管理サーバ。
【請求項４】
旧バージョンのプログラムで動作する情報処理装置と新バージョンのプログラムで動作する情報処理装置の混在比を設定する混在比設定部をさらに有し、
前記プログラム更新部は、前記混在比設定部が設定した混在比に従ってプログラムの更新を行う
ことを特徴とする請求項１乃至３のいずれか１つに記載のプログラム更新管理サーバ。
【請求項５】
前記混在比設定部が設定した混在比になるように、前記複数の情報処理装置の中から、旧バージョンのプログラムで動作する情報処理装置、もしくは新バージョンのプログラムで動作する情報処理装置、を選定する装置選定部をさらに有し、
前記プログラム更新部は、前記装置選定部の選定に従って、プログラムの更新を行う
ことを特徴とする請求項４に記載のプログラム更新管理サーバ。
【請求項６】
前記混在比設定部は、前記複数の情報処理装置のユーザを、前記リスクを容認するレベルでグループ分けした場合のグループ毎のユーザ数の比率を求め、該比率に基づいて、前記混在比を設定する
ことを特徴とする請求項４または５に記載のプログラム更新管理サーバ。
【請求項７】
ユーザを、慎重派と、前記慎重派より前記リスクを容認するレベルが高い非慎重派に分類し、
前記混在比設定部は、前記慎重派のユーザの比率が高いほど、旧バージョンのプログラムで動作する情報処理装置の比率を高く設定する
ことを特徴とする請求項６に記載のプログラム更新管理サーバ。
【請求項８】
前記装置選定部は、前記情報処理装置毎に、グループ毎の利用回数を求め、これに基づいて選定を行う
ことを特徴とする請求項５を引用する請求項６、または請求項５を引用する請求項６を引用する請求項７に記載のプログラム更新管理サーバ。
【請求項９】
ユーザを、慎重派と、前記慎重派より前記リスクを容認するレベルが高い非慎重派に分類し、
前記装置選定部は、非慎重派のユーザによる利用回数が多いもしくは非慎重派のユーザによる利用比率が高い情報処理装置ほど優先して、前記新バージョンのプログラムで動作する情報処理装置に選定する、または慎重派のユーザによる利用回数が多いもしくは慎重派のユーザによる利用比率が高い情報処理装置ほど優先して、前記旧バージョンのプログラムで動作する情報処理装置に選定する
ことを特徴とする請求項８に記載のプログラム更新管理サーバ。
【請求項１０】
前記混在比設定部は、前記複数の情報処理装置で実行されたジョブの実行回数をジョブの種類別に集計し、該集計の結果に基づいて、前記混在比を設定する
ことを特徴とする請求項４または５に記載のプログラム更新管理サーバ。
【請求項１１】
ジョブの種類には、通常ジョブと、該通常ジョブよりも不具合発生時の影響が大きい重要ジョブがあり、
前記混在比設定部は、前記重要ジョブの実行比率が高いほど、旧バージョンのプログラムで動作する情報処理装置の比率を高く設定する
ことを特徴とする請求項１０に記載のプログラム更新管理サーバ。
【請求項１２】
前記装置選定部は、前記情報処理装置毎に、前記ジョブの種類別の実行回数を求め、これに基づいて、前記選定を行う
ことを特徴とする請求項５を引用する請求項１０、または請求項６を引用する請求項１０を引用する請求項１１に記載のプログラム更新管理サーバ。
【請求項１３】
ジョブの種類には、通常ジョブと、該通常ジョブよりも不具合発生時の影響が大きい重要ジョブがあり、
前記装置選定部は、前記通常ジョブの実行回数が多いもしくは実行比率が高い情報処理装置ほど優先して、前記新バージョンのプログラムで動作する情報処理装置に選定する、または、前記重要ジョブの実行回数が多いもしくは実行比率が高い情報処理装置ほど優先して、前記旧バージョンのプログラムで動作する情報処理装置に選定する
ことを特徴とする請求項１２に記載のプログラム更新管理サーバ。
【請求項１４】
一の情報処理装置に対するジョブの設定操作が成された場合に、該設定操作で受け付けたジョブの種類が、前記一の情報処理装置で動作するバージョンのプログラムに適するジョブか否かを判断し、適さないと判断した場合は、前記ジョブの実行に適したバージョンのプログラムで動作する情報処理装置を選定する転送先選定部と、
前記設定操作で受け付けたジョブを前記転送先選定部が選定した情報処理装置に転送して実行させる、もしくは、前記設定操作の情報を前記選定した情報処理装置に転送し、転送先の情報処理装置に前記設定操作の情報に基づいてジョブを新たに生成させる転送部と、
を有する
ことを特徴とする請求項１乃至１３のいずれか１つに記載のプログラム更新管理サーバ。
【請求項１５】
一の情報処理装置に対するジョブの設定操作が成された場合に、該設定操作を行ったユーザの属性を取得し、該ユーザの属性が、前記一の情報処理装置で動作するバージョンのプログラムでジョブを実行するのに適するか否かを判断し、適さないと判断した場合は、前記ユーザの属性に適したバージョンのプログラムで動作する情報処理装置を選定する第２の転送先選定部と、
前記設定操作で受け付けたジョブを前記第２の転送先選定部が選定した情報処理装置に転送して実行させる、もしくは、前記設定操作の情報を前記選定した情報処理装置に転送し、転送先の情報処理装置に前記設定操作の情報に基づいてジョブを新たに生成させる転送部と、
を有する
ことを特徴とする請求項１乃至１３のいずれか１つに記載のプログラム更新管理サーバ。
【請求項１６】
前記情報処理装置を設定操作可能な操作装置の表示部に、前記新バージョンのプログラムで動作する情報処理装置の情報と、前記旧バージョンのプログラムで動作する情報処理装置の情報を表示させる表示制御部をさらに有する
ことを特徴とする請求項１乃至１５のいずれか１つに記載のプログラム更新管理サーバ。
【請求項１７】
前記表示制御部は、
ジョブの設定操作を受け付け中の操作パネルに、
現在設定中のジョブの設定操作を完了させ、該ジョブの設定情報を所望のバージョンのプログラムで動作する情報処理装置に転送する第１選択肢と、
現在設定中の設定操作を完了させずに、所望のバージョンのプログラムで動作する情報処理装置の操作パネルでジョブの設定操作を完了させ、該情報処理装置に該ジョブを実行させる第２選択肢と
を表示させる
ことを特徴とする請求項１６に記載のプログラム更新管理サーバ。
【請求項１８】
ネットワークを介して接続された複数の情報処理装置が接続されたサーバを、請求項１乃至１７のいずれか１つに記載のプログラム更新管理サーバとして機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して接続された情報処理装置のプログラムの更新を管理するプログラム更新サーバおよびプログラムに関する。
【背景技術】
【０００２】
一般に、情報処理装置で使用されるプログラムは、不具合を修正したり、新たな機能を追加したり、現在の機能の性能を向上させたりする等の目的でバージョンアップが行われる。情報処理装置のプログラムを新たなバージョンのプログラムに更新する方法としては、たとえば、オフィス等に設置された複数台の複合機を管理対象とするサーバを設置し、新たなバージョンのプログラムがメーカ等によって該サーバにアップロードされたら、該サーバが管理対象の各複合機の状態を確認し、更新可能な状態の複合機に対してプログラムの更新を順次指示する、といった方法がある。
【０００３】
ところで、新たなバージョンのプログラムには、更新前のプログラムになかった不具合が潜んでいる可能性がある。新たなバージョンのプログラムは、リリース前に動作テストが行われるが、動作テストでは発見し切れずに不具合が残ってしまい、リリース後の運用で不具合が発見されることもある。
【０００４】
そこで、新バージョンのプログラムがリリースされても、該新バージョンへのプログラムの更新は直ぐに行わずに、しばらく保留にしておく装置が提案されている（下記特許文献１参照）。この装置では、新バージョンのプログラムが一定の条件（新バージョンのダウンロード回数が一定以上になった、あるいは、リリースから一定時間が経過した等の条件）を満たしたことを確認してから自装置のプログラムを新バージョンのプログラムに更新する。
【０００５】
また、プログラムを更新する際に、新バージョンのプログラムで装置を試運転できるようにし、試運転の結果、新バージョンのプログラムに完全に移行するか、元のバージョンのプログラムに復旧させるかを選択可能にする技術がある（下記特許文献２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１６−３８６３４号公報
【特許文献２】特開２００３−１２２５７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
オフィス等には、複合機等の情報処理装置が複数台設置されることがある。また、オフィスで働く人の中には、新バージョンのプログラムに潜む不具合の発生を懸念して新バージョンのプログラムへの早期更新を望まない慎重派のユーザもいれば、新バージョンのプログラムへの早期更新を望む非慎重派のユーザもいる。そのため、オフィスにある複数台の装置のプログラムを新バージョンに更新する際には、慎重派と非慎重派の双方の要請に応えつつプログラムを更新することが望まれる。
【０００８】
特許文献１の技術では、新バージョンのプログラムが一定の条件を満たした場合にプログラムの更新が各装置で行われるので、オフィスに複数台の装置があったとしても、その条件が満たされるまではオフィス内の全ての装置が旧バージョンで動作し、条件が満たされた後はオフィス内の全ての装置が同時期に新バージョンに更新される。そのため、更新前は非慎重派のユーザに不満を与え、更新後は慎重派のユーザに不満を与えてしまい、両者のバランスをとってプログラムを更新することはできない。
【０００９】
特許文献２の技術では、装置自体に新旧両方のプログラムを記憶しておき、何れのプログラムに基づいて装置を稼働させるかを切り換えるので、慎重派のユーザが装置を使用する場合は旧バージョンのプログラムに切り替え、非慎重派のユーザが装置を使用する場合は新バージョンのプログラムに切り替える、といったことが可能になる。しかし、プログラムの切り替えには、通常、装置の再起動が必要になり、該再起動には長い時間を要するので、ジョブをタイムリーに実行できなくなる。また、装置の中に新旧両バージョンのプログラムを格納しておく必要があるので、記憶部のメモリ領域が圧迫される。
【００１０】
本発明は、上記の問題を解決しようとするものであり、慎重派、非慎重派など様々なユーザの要請に対応しながら複数台の装置のプログラムを新たなバージョンに更新することのできるプログラム更新管理サーバおよびそのプログラムを提供することを目的としている。
【課題を解決するための手段】
【００１１】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
【００１２】
［１］ネットワークを介して接続された複数の情報処理装置におけるプログラムの更新を管理するプログラム更新管理サーバであって、
前記情報処理装置のプログラムを更新するプログラム更新部と、
新バージョンのプログラムの実行に伴う不具合発生のリスクを判断するリスク判断部と、
を有し、
前記プログラム更新部は、新バージョンのプログラムの前記リスクが所定値未満に下がるまでは、旧バージョンのプログラムで動作する情報処理装置と新バージョンのプログラムで動作する情報処理装置とが混在する状態を維持する
ことを特徴とするプログラム更新管理サーバ。
【００１３】
上記発明では、新バージョンのプログラムがリリースされてから、該新バージョンのプログラムの実行に伴う不具合発生のリスクが所定値未満に下がるまでは、管理対象の複数の情報処理装置を、新バージョンのプログラムで動作する装置と旧バージョンのプログラムで動作する装置が混在する状態に維持する。
【００１４】
［２］前記リスク判断部は、前記新バージョンのプログラムで変更された部分がどの機能に係るプログラムであるかに基づいて、前記新バージョンのプログラムの前記リスクを判断する
ことを特徴とする［１］に記載のプログラム更新管理サーバ。
【００１５】
上記発明では、変更部分の機能により、その機能の実行で不具合が生じた場合の影響（損失）の大小が異なるので、変更部分の機能に基づいてリスクを判断する。
【００１６】
［３］前記リスク判断部は、前記新バージョンのプログラムのリリース目的に基づいて、前記新バージョンのプログラムの前記リスクを判断する
ことを特徴とする［１］または［２］に記載のプログラム更新管理サーバ。
【００１７】
上記発明では、新バージョンのプログラムのリリース目的は不具合解消、品質向上、新機能搭載など様々であり、リリース目的によって変更箇所に対する確認テストのレベルにも差が生じる。そこで、新バージョンのプログラムのリリース目的に基づいてリスクを判断する。
【００１８】
［４］旧バージョンのプログラムで動作する情報処理装置と新バージョンのプログラムで動作する情報処理装置の混在比を設定する混在比設定部をさらに有し、
前記プログラム更新部は、前記混在比設定部が設定した混在比に従ってプログラムの更新を行う
ことを特徴とする［１］乃至［３］のいずれか１つに記載のプログラム更新管理サーバ。
【００１９】
上記発明では、混在期間中の混在比を設定する。
【００２０】
［５］前記混在比設定部が設定した混在比になるように、前記複数の情報処理装置の中から、旧バージョンのプログラムで動作する情報処理装置、もしくは新バージョンのプログラムで動作する情報処理装置、を選定する装置選定部をさらに有し、
前記プログラム更新部は、前記装置選定部の選定に従って、プログラムの更新を行う
ことを特徴とする［４］に記載のプログラム更新管理サーバ。
【００２１】
上記発明では、設定された混在比にするために必要な台数分の新バージョンのプログラムで動作する装置を、どの装置にするかを選定する。
【００２２】
［６］前記混在比設定部は、前記複数の情報処理装置のユーザを、前記リスクを容認するレベルでグループ分けした場合のグループ毎のユーザ数の比率を求め、該比率に基づいて、前記混在比を設定する
ことを特徴とする［４］または［５］に記載のプログラム更新管理サーバ。
【００２３】
上記発明では、ユーザをリスクを容認するレベル別にグループ分けし、その人数比に基づいて混在比を設定する。たとえば、リスクを容認するレベルが高いユーザが多いほど新バージョンのプログラムで動作する装置の比率を高くする。
【００２４】
［７］ユーザを、慎重派と、前記慎重派より前記リスクを容認するレベルが高い非慎重派に分類し、
前記混在比設定部は、前記慎重派のユーザの比率が高いほど、旧バージョンのプログラムで動作する情報処理装置の比率を高く設定する
ことを特徴とする［６］に記載のプログラム更新管理サーバ。
【００２５】
［８］前記装置選定部は、前記情報処理装置毎に、グループ毎の利用回数を求め、これに基づいて選定を行う
ことを特徴とする［５］を引用する［６］または［５］を引用する［６］を引用する［７］に記載のプログラム更新管理サーバ。
【００２６】
上記発明では、各装置の利用回数を、リスクを容認するレベルで分けたグループ毎に集計し、その集計結果に基づいて、新バージョンのプログラムで動作させる装置、もしくは旧バージョンのプログラムで動作させる装置を選定する。
【００２７】
［９］ユーザを、慎重派と、前記慎重派より前記リスクを容認するレベルが高い非慎重派に分類し、
前記装置選定部は、非慎重派のユーザによる利用回数が多いもしくは非慎重派のユーザによる利用比率が高い情報処理装置ほど優先して、前記新バージョンのプログラムで動作する情報処理装置に選定する、または慎重派のユーザによる利用回数が多いもしくは慎重派のユーザによる利用比率が高い情報処理装置ほど優先して、前記旧バージョンのプログラムで動作する情報処理装置に選定する
ことを特徴とする［８］に記載のプログラム更新管理サーバ。
【００２８】
［１０］前記混在比設定部は、前記複数の情報処理装置で実行されたジョブの実行回数をジョブの種類別に集計し、該集計の結果に基づいて、前記混在比を設定する
ことを特徴とする［４］または［５］に記載のプログラム更新管理サーバ。
【００２９】
上記発明では、たとえば、ジョブ全体の実行回数の中で、不具合発生の影響が大きいジョブ種の実行比率が高いほど、旧バージョンのプログラムで動作する装置の混在比を高くする。
【００３０】
［１１］ジョブの種類には、通常ジョブと、該通常ジョブよりも不具合発生時の影響が大きい重要ジョブがあり、
前記混在比設定部は、前記重要ジョブの実行比率が高いほど、旧バージョンのプログラムで動作する情報処理装置の比率を高く設定する
ことを特徴とする［１０］に記載のプログラム更新管理サーバ。
【００３１】
［１２］前記装置選定部は、前記情報処理装置毎に、前記ジョブの種類別の実行回数を求め、これに基づいて、前記選定を行う
ことを特徴とする［５］を引用する［１０］または［６］を引用する［１０］を引用する［１１］に記載のプログラム更新管理サーバ。
【００３２】
［１３］ジョブの種類には、通常ジョブと、該通常ジョブよりも不具合発生時の影響が大きい重要ジョブがあり、
前記装置選定部は、前記通常ジョブの実行回数が多いもしくは実行比率が高い情報処理装置ほど優先して、前記新バージョンのプログラムで動作する情報処理装置に選定する、または、前記重要ジョブの実行回数が多いもしくは実行比率が高い情報処理装置ほど優先して、前記旧バージョンのプログラムで動作する情報処理装置に選定する
ことを特徴とする［１２］に記載のプログラム更新管理サーバ。
【００３３】
［１４］一の情報処理装置に対するジョブの設定操作が成された場合に、該設定操作で受け付けたジョブの種類が、前記一の情報処理装置で動作するバージョンのプログラムに適するジョブか否かを判断し、適さないと判断した場合は、前記ジョブの実行に適したバージョンのプログラムで動作する情報処理装置を選定する転送先選定部と、
前記設定操作で受け付けたジョブを前記転送先選定部が選定した情報処理装置に転送して実行させる、もしくは、前記設定操作の情報を前記選定した情報処理装置に転送し、転送先の情報処理装置に前記設定操作の情報に基づいてジョブを新たに生成させる転送部と、
を有する
ことを特徴とする［１］乃至［１３］のいずれか１つに記載のプログラム更新管理サーバ。
【００３４】
上記発明では、設定されたジョブの実行に適したバージョンのプログラムで動作する装置に、ジョブもしくはジョブの設定情報が転送される。
【００３５】
［１５］一の情報処理装置に対するジョブの設定操作が成された場合に、該設定操作を行ったユーザの属性を取得し、該ユーザの属性が、前記一の情報処理装置で動作するバージョンのプログラムでジョブを実行するのに適するか否かを判断し、適さないと判断した場合は、前記ユーザの属性に適したバージョンのプログラムで動作する情報処理装置を選定する第２の転送先選定部と、
前記設定操作で受け付けたジョブを前記第２の転送先選定部が選定した情報処理装置に転送して実行させる、もしくは、前記設定操作の情報を前記選定した情報処理装置に転送し、転送先の情報処理装置に前記設定操作の情報に基づいてジョブを新たに生成させる転送部と、
を有する
ことを特徴とする［１］乃至［１３］のいずれか１つに記載のプログラム更新管理サーバ。
【００３６】
上記発明では、ジョブを設定したユーザの属性に適したバージョンのプログラムで動作する装置に、ジョブもしくはジョブの設定情報が転送される。
【００３７】
［１６］前記情報処理装置を設定操作可能な操作装置の表示部に、前記新バージョンのプログラムで動作する情報処理装置の情報と、前記旧バージョンのプログラムで動作する情報処理装置の情報を表示させる表示制御部をさらに有する
ことを特徴とする［１］乃至［１５］のいずれか１つに記載のプログラム更新管理サーバ。
【００３８】
［１７］前記表示制御部は、
ジョブの設定操作を受け付け中の操作パネルに、
現在設定中のジョブの設定操作を完了させ、該ジョブの設定情報を所望のバージョンのプログラムで動作する情報処理装置に転送する第１選択肢と、
現在設定中の設定操作を完了させずに、所望のバージョンのプログラムで動作する情報処理装置の操作パネルでジョブの設定操作を完了させ、該情報処理装置に該ジョブを実行させる第２選択肢と
を表示させる
ことを特徴とする［１６］に記載のプログラム更新管理サーバ。
【００３９】
［１８］ネットワークを介して接続された複数の情報処理装置が接続されたサーバを、［１］乃至［１７］のいずれか１つに記載のプログラム更新管理サーバとして機能させるプログラム。
【発明の効果】
【００４０】
本発明に係るプログラム更新管理サーバおよびそのプログラムによれば、慎重派、非慎重派など様々なユーザの要請に対応しながら複数台の装置のプログラムを新たなバージョンに更新することができる。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施の形態に係る情報処理システムの構成例を示す図である。
【図２】本発明の実施の形態に係るプログラム更新管理サーバの概略構成を示すブロック図である。
【図３】本発明の実施の形態に係るプログラム更新管理サーバが管理対象とする情報処理装置の概略構成を示すブロック図である。
【図４】プログラム更新管理サーバが行うプログラムの更新に関する処理を示す流れ図である。
【図５】図４のステップＳ１０２の詳細であって、新バージョンのプログラムで変更された部分がどの機能に係る部分であるかに基づいて混在期間を設定する場合の処理を示す流れ図である。
【図６】図４のステップＳ１０２の詳細であって、新バージョンのプログラムのリリース目的に応じて混在期間を設定する場合の処理を示す流れ図である。
【図７】混在比、更新要否判断処理（図４のステップＳ１０５）の詳細を示す流れ図である。
【図８】混在比、更新要否判断処理（図４のステップＳ１０５）の詳細の他の例を示す流れ図である。
【図９】装置選定処理（図４のステップＳ１０７）の詳細であって、ユーザ層別の利用回数に基づいて装置を選定する処理を示す流れ図である。
【図１０】装置選定処理（図４のステップＳ１０７）の詳細であって、ユーザ層別の利用回数に基づいて装置を選定する処理の他の例を示す流れ図である。
【図１１】装置選定処理（図４のステップＳ１０７）の詳細であって、重要ジョブの実行回数に基づいて装置を選定する処理を示す流れ図である。
【図１２】装置選定処理（図４のステップＳ１０７）の詳細であって、通常ジョブの実行回数に基づいて装置を選定する処理を示す流れ図である。
【図１３】新バージョンのプログラムで動作する情報処理装置の情報と、旧バージョンのプログラムで動作する情報処理装置の情報を表示する画面の一例を示す図である。
【図１４】混在状態にあるときに、操作表示装置等でジョブの設定操作を受けた場合にプログラム更新管理サーバがその操作表示装置等の表示部に表示させる選択画面の一例を示す図である。
【発明を実施するための形態】
【００４２】
以下、図面に基づき本発明の実施の形態を説明する。
【００４３】
図１は、オフィス等で運用される本発明の実施の形態に係る情報処理システム５の構成例を示す図である。情報処理システム５は、ＬＡＮ（Local Area Network）などのネットワーク３に、複数台の情報処理装置３０、プログラムの更新等を管理するプログラム更新管理サーバ１０、任意台数のユーザ端末５０、操作表示装置６０、などを接続して構成される。さらに、情報処理装置３０を動作（稼動）させるプログラムのリリース元のメーカ等に設置された外部装置２がインターネット等の広域ネットワークを介してプログラム更新管理サーバ１０に通信可能に接続されている。
【００４４】
プログラム更新管理サーバ１０は、外部装置２から情報処理装置３０を動作（稼動）させる新たなバージョンのプログラムを受信して保存し、該プログラムを各情報処理装置３０に配信して、各情報処理装置３０のプログラムを新たなバージョンのプログラムに更新する機能を果たすサーバである。
【００４５】
情報処理装置３０は、プログラムに基づいて動作（稼動）する装置であれば任意の装置よいが、ここでは、情報処理装置３０を複合機とする。複合機は、スキャナで原稿を光学的に読み取って得た画像データに基づく画像を記録紙に印刷するコピージョブ、読み取った原稿の画像データをファイル等にして保存する保存ジョブ、読み取った原稿の画像データをファイル等にして外部へ送信する送信ジョブ、ＰＣから受信した印刷データに基づく画像を記録紙に印刷して出力するプリントジョブ、ファクシミリ手順に従って画像データを送受信するＦＡＸジョブなどのジョブを実行する機能を備えている。以後、情報処理装置３０を複合機３０またはＭＦＰとも記す。また、情報処理装置３０は、プログラム更新管理サーバ１０からの指示に従って、自装置を動作（稼動）させるプログラムを新たなバージョンのプログラムに書き換えて更新する機能を備えている。
【００４６】
ユーザ端末５０は、ＰＣ端末等のコンピュータ装置であり、プリンタドライバプログラム等がインストールされて各種のジョブを情報処理装置３０に送信する機能を果たす。
【００４７】
操作表示装置６０は、情報処理装置３０に実行させるジョブの設定操作を受け付けたり、受け付けた操作に基づくジョブの設定情報を情報処理装置３０に送信して該ジョブの実行を指示したりする機能を果たす。操作表示装置６０は、ジョブの受け付け機能等に関するアプリケーションプログラムがインストールされたタブレット等の携帯型情報処理装置であってもよい。
【００４８】
外部装置２は、情報処理装置３０を動作させるプログラムの提供元（メーカ等）が新たなバージョンのプログラムをリリース可能になった場合に、そのことをプログラム更新管理サーバ１０に通知すると共に、新たなバージョンのプログラムをプログラム更新管理サーバ１０にアップロードする。新バージョンのプログラムのリリース目的は各種あるが、たとえば、旧バージョンのプログラムの不具合を解消する、旧バージョンのプログラムに対してジョブの処理速度を改善するなどの品質向上を図る、旧バージョンのプログラムに無い新たな機能を搭載する、などがある。
【００４９】
プログラム更新管理サーバ１０は、外部装置２から新バージョンのプログラムがアップロードされてその通知を受けた場合に、新バージョンのプログラムの実行に伴う不具合発生のリスクを判断し、このリスクのレベルが所定値未満に下がるまで、旧バージョンのプログラムで動作（稼動）する情報処理装置３０と新バージョンのプログラムで動作（稼動）する情報処理装置３０とが混在する状態が維持されるようにプログラムの更新を管理する。
【００５０】
なお、プログラムで動作（稼動）する状態とは、このプログラムに基づいて画像処理装置３０が動作（稼動）する稼動状態のほか、実際に稼働していなくても、仮に稼動状態に復帰したならば、このプログラムで動作（稼動）することになる状態、たとえば、低消費電力状態、スタンバイ状態、休止状態（スリープ状態）などを含む。
【００５１】
プログラム更新管理サーバ１０は、各情報処理装置３０で稼動中のプログラムのバージョンや各情報処理装置３０の稼動状態を管理する。さらに、管理対象の情報処理装置３０を使用する各ユーザの属性、各情報処理装置３０で実行されたジョブの実行履歴などを管理する機能を果たす。
【００５２】
ここでは、ユーザ属性は、慎重派と、プログラムの更新に伴う不具合発生のリスクを容認するレベルが慎重派より高い非慎重派がある。慎重派は、新バージョンのプログラムに潜んでいる不具合の発生を懸念して新バージョンのプログラムへの早期の更新を望まないユーザ層である。非慎重派は、新バージョンのプログラムへの早期更新を望むユーザ層である。
【００５３】
ユーザの属性の登録に関しては、予めユーザ毎に属性の入力を受け付けてそれを登録するようにしてもよいし、過去の利用実績から自動的に推定してもよい。たとえば、前回のバージョンアップ時に、ユーザが旧バージョンの装置を利用した回数と、新バージョンの装置を利用した回数の実績値に基づいて、そのユーザが慎重派か非慎重派かを推定する。
【００５４】
ジョブの実行履歴には、ジョブの種類を示す情報や、そのジョブを実行したユーザの情報なども含まれる。プログラム更新管理サーバ１０は、ジョブの実行履歴に基づいて、ユーザの属性別に装置の利用回数を集計したり、装置毎にジョブ種別のジョブ実行回数を集計したり、装置毎にユーザ層別の利用回数を集計したりする機能を有する。
【００５５】
図２は、本発明の実施の形態に係るプログラム更新管理サーバ１０の概略構成を示すブロック図である。プログラム更新管理サーバ１０は、自装置の動作を統括的に制御する制御部としてのＣＰＵ（Central Processing Unit）１１を有している。ＣＰＵ１１にはバスを通じてＲＯＭ(Read Only Memory)１２、ＲＡＭ(Random Access Memory)１３、不揮発メモリ１４、ハードディスク装置１５、ネットワーク通信部１６、操作パネル１７、時計部１８などが接続されている。
【００５６】
ＣＰＵ１１は、ＯＳ(Operating System)プログラムをベースとし、その上で、ミドルウェアやアプリケーションプログラムなどを実行する。ＲＯＭ１２には、各種のプログラムが格納されており、これらのプログラムに従ってＣＰＵ１１が各種処理を実行することでプログラム更新管理サーバ１０の各機能が実現される。
【００５７】
ＲＡＭ１３は、ＣＰＵ１１がプログラムに基づいて処理を実行する際に各種のデータを一時的に格納するワークメモリなどとして使用される。
【００５８】
不揮発メモリ１４は、電源をオフにしても記憶内容が破壊されないメモリ（フラッシュメモリ）であり、各種設定情報の保存などに使用される。
【００５９】
ハードディスク装置１５は、大容量不揮発の記憶装置であり、各種のプログラムやデータを記憶する。また、ハードディスク装置１５は、外部装置２からアップロードされたプログラムを格納して保存する。ハードディスク装置１５には各バージョンのプログラムに関する情報、各情報処理装置３０で動作するプログラムのバージョンに関する情報、情報処理装置３０を使用するユーザに関する情報、各情報処理装置３０でのジョブの実行履歴などが、管理テーブル等の形式で記憶される。
【００６０】
ネットワーク通信部１６は、ネットワーク３を通じて外部装置２や情報処理装置３０、その他の各種の装置と通信する機能を果たす。
【００６１】
操作パネル１７は、操作部１７ａと表示部１７ｂを備えている。表示部１７ｂは、各種の操作画面、設定画面等を表示する機能を果たす。表示部１７ｂは液晶ディスプレイとそのドライバなどで構成される。操作部１７ａはユーザから各種の操作を受ける機能を果たす。操作部１７ａは、文字、数字、記号等の入力を受けるキーボード等と、表示部１７ｂの表示面上に設けられたタッチスクリーンなどで構成される。タッチスクリーンは、表示部１７ｂの表示面がタッチペンや指などで触れられた座標位置を検出する。
【００６２】
時計部１８は、新バージョンのプログラムがリリース（外部装置２からアップロード）されてからの経過時間を計時する。
【００６３】
プログラム更新管理サーバ１０のＣＰＵ１１はプログラムに基づいて動作することにより、プログラム更新部２１、リスク判断部２２、混在比設定部２３、装置選定部２４、第１の転送先選定部２５、第２の転送先選定部２６、転送部２７、表示制御部２８などの機能を果たす。
【００６４】
プログラム更新部２１は、各情報処理装置３０のプログラム（情報処理装置３０を動作させるプログラム）を更新する。ここでは、プログラム更新部２１は、プログラムの更新指示を情報処理装置３０に送信する。該指示を受けた情報処理装置３０は該当するプログラムをプログラム更新管理サーバ１０からダウンロードして自装置にインストールする。
【００６５】
リスク判断部２２は、新バージョンのプログラムの実行に伴う不具合発生のリスクを判断する。リスクには、不具合が発生する可能性の高低と、不具合が発生した場合の影響の大小が含まれる。リスク判断部２２は、リスクの大きさに応じて、旧バージョンのプログラムで動作する情報処理装置３０と新バージョンのプログラムで動作する情報処理装置３０とが混在する状態を維持する期間である混在期間を設定する。
【００６６】
すなわち、新バージョンのプログラムをリリースしてから不具合が出ることなく時間が経過すればするほど、潜在的な不具合が発生する確率は低くなり、新バージョンのプログラムを使用することのリスクも低下する。そこで、リスク判断部２２は、リリース当初のリスクのレベルを判断し、ここからリスクのレベルが所定値未満に低下するまでに要する期間（混在期間）を推定して設定する。
【００６７】
混在比設定部２３は、旧バージョンのプログラムで動作する情報処理装置３０と新バージョンのプログラムで動作する情報処理装置３０の混在比を設定する。混在比設定部２３は、慎重派と非慎重派のユーザの比率や、不具合発生時の影響が大きいジョブの実行回数の全ジョブ実行回数に占める比率、などに基づいて混在比を導出する。また混在比設定部２３は導出した混在比に応じて、旧バージョンのプログラムで動作させる情報処理装置３０の目標台数と新バージョンのプログラムで動作させる情報処理装置３０の目標台数を算出する。
【００６８】
装置選定部２４は、混在比設定部２３が設定した混在比で新旧バージョンを混在させるに際して、どの装置を新バージョンのプログラムに更新し、どの装置を旧バージョンのプログラムのまま維持するかを決定する。たとえば、慎重派のユーザによる利用回数が多い装置ほど優先して、旧バージョンのプログラムで動作させる装置に選定する。あるいは、不具合発生時の影響が大きいジョブの実行回数が多い（または実行比率が高い）装置ほど優先して、旧バージョンのプログラムで動作させる装置に選定する。
【００６９】
プログラム更新部２１は、混在比設定部２３が設定した混在比になるように、管理対象の複数の情報処理装置３０に対するプログラムの更新を制御する。また、プログラム更新部２１は、装置選定部２４の選定に従ってプログラムの更新を行う。すなわち、装置選定部２４が新バージョンのプログラムで動作する装置に選定した装置のプログラムを新バージョンのプログラムに更新する。
【００７０】
第１の転送先選定部２５は、操作表示装置６０等でいずれか一の情報処理装置３０に対するジョブの設定操作が成された場合に、該設定操作で受け付けたジョブの種類が、該一の情報処理装置３０で動作するバージョンのプログラムに適するジョブか否かを判断し、適さないと判断した場合は、該ジョブの実行に適したバージョンのプログラムで動作する情報処理装置３０を転送先に選定する機能を果たす。たとえば、不具合発生時の影響が大きいジョブが新バージョンのプログラムで動作する装置に投入された場合、このジョブを旧バージョンのプログラムで動作する装置に転送する。
【００７１】
第２の転送先選定部２６は、操作表示装置６０等でいずれか一の情報処理装置３０に対するジョブの設定操作が成された場合に、該設定操作を行ったユーザの属性を取得し、そのユーザの属性が、該一の情報処理装置で動作するバージョンのプログラムでジョブを実行するのに適するか否かを判断し、適さないと判断した場合は、該ユーザの属性に適したバージョンのプログラムで動作する情報処理装置３０を転送先に選定する機能を果たす。たとえば、慎重派のユーザが新バージョンのプログラムで動作する装置にジョブを投入した場合、このジョブを旧バージョンのプログラムで動作する装置に転送する。
【００７２】
転送部２７は、第１の転送先選定部２５または第２の転送先選定部２６が選定した転送先の情報処理装置３０へ、操作表示装置６０等で設定されたジョブを転送して該ジョブを実行させる、もしくは、第１の転送先選定部２５または第２の転送先選定部２６が選定した転送先の情報処理装置３０へ、操作表示装置６０等で受け付けたジョブの設定操作の情報を転送し、転送先の情報処理装置３０に該設定操作の情報に基づいてジョブを新たに生成させて実行させる機能を果たす。
【００７３】
表示制御部２８は、操作表示装置６０などジョブの設定操作を受ける操作パネルの表示部に、新バージョンのプログラムで動作する情報処理装置３０の情報と、旧バージョンのプログラムで動作する情報処理装置３０の情報を表示させる（図１３参照）。また、操作表示装置６０などで受け付けたジョブを希望のバージョンのプログラムで動作する情報処理装置３０に実行させる際の処理方法の選択肢を表示させて選択操作を受ける機能を果たす（図１４参照）。
【００７４】
図３は、情報処理装置３０の概略構成を示すブロック図である。図３に示す情報処理装置３０は複合機である。複合機３０は、自装置の動作を統括的に制御するＣＰＵ３１を有している。ＣＰＵ３１にはバスを通じてＲＯＭ３２、ＲＡＭ３３、不揮発メモリ３４、ハードディスク装置３５、スキャナ部３６、プリンタ部３７、操作パネル３８、画像処理部３９、ファクシミリ通信部４１、ネットワーク通信部４２、認証部４３などが接続されている。
【００７５】
ＣＰＵ３１は、ＯＳプログラムをベースとし、その上で、ミドルウェアやアプリケーションプログラムなどを実行する。ＲＯＭ３２には、各種のプログラムが格納されており、これらのプログラムに従ってＣＰＵ３１が各種処理を実行することで複合機３０の各機能が実現される。
【００７６】
ＲＡＭ３３は、ＣＰＵ３１がプログラムに基づいて処理を実行する際に各種のデータを一時的に格納するワークメモリや画像データを格納する画像メモリなどとして使用される。
【００７７】
不揮発メモリ３４は、電源をオフにしても記憶内容が破壊されないメモリ（フラッシュメモリ）であり、各種設定情報の保存などに使用される。不揮発メモリ３４には、ユーザ認証に使用される認証情報、各ユーザの属性などが記憶される。
【００７８】
ハードディスク装置３５は、大容量不揮発の記憶装置であり、印刷データ、画像データなどのほか各種のプログラムやデータが記憶される。
【００７９】
スキャナ部３６は、原稿を光学的に読み取って画像データを取得する機能を果たす。スキャナ部３６は、例えば、原稿に光を照射する光源と、その反射光を受けて原稿を幅方向に１ライン分読み取るラインイメージセンサと、ライン単位の読取位置を原稿の長さ方向に順次移動させる移動ユニットと、原稿からの反射光をラインイメージセンサに導いて結像させるレンズやミラーなどからなる光学経路と、ラインイメージセンサの出力するアナログ画像信号をデジタルの画像データに変換する変換部などを備えて構成される。
【００８０】
プリンタ部３７は、画像データに応じた画像を記録紙上に画像形成する機能を果たす。ここでは、記録紙の搬送装置と、感光体ドラムと、帯電装置と、レーザーユニットと、現像装置と、転写分離装置と、クリーニング装置と、定着装置とを有し、電子写真プロセスによって画像形成を行う、所謂、レーザープリンタとして構成されている。画像形成は他の方式でもかまわない。
【００８１】
操作パネル３８は、操作部３８ａと表示部３８ｂを備えている。表示部３８ｂは各種の操作画面、設定画面等を表示する機能を果たし、液晶ディスプレイなどで構成される。操作部３８ａはユーザから各種の操作を受けるスタートボタンやテンキーなど各種のハードキーと、表示部３８ｂの表示面に設けられたタッチスクリーンで構成される。操作パネル３８はユーザからジョブの設定操作を受け付ける。
【００８２】
画像処理部３９は、画像の拡大縮小、回転などの処理のほか、印刷データをイメージデータに変換するラスタライズ処理、画像データの圧縮、伸張処理などを行う。
【００８３】
ファクシミリ通信部４１は、ファクシミリ機能を備えた装置と電話回線を通じて画像データを送受信する機能を果たす。
【００８４】
ネットワーク通信部４２は、ネットワークを通じてプログラム更新管理サーバ１０やユーザ端末５０、操作表示装置６０、その他の装置と通信する機能を果たす。
【００８５】
認証部４３は、情報処理装置３０を使用するユーザを認証する。認証方法は、パスワード、指紋、静脈などを用いた任意の方法でよい。
【００８６】
図４は、プログラム更新管理サーバ１０が行うプログラムの更新に関する処理を示す流れ図である。プログラム更新管理サーバ１０は、外部装置２から新バージョンのプログラムがアップロードされてリリース可能になったことを示す更新可能通知が受信されるのを待機する（ステップＳ１０１;Ｎｏ）。
【００８７】
プログラム更新管理サーバ１０のリスク判断部２２は、外部装置２から更新可能通知を受信すると（ステップＳ１０１;Ｙｅｓ）、管理対象の複数の複合機３０を新バージョンのプログラムで動作する装置と旧バージョンのプログラムで動作する装置とが混在する状態に維持する期間である混在期間を、新バージョンのプログラムに内在するリスクのレベルに基づいて、設定する（ステップＳ１０２）。
【００８８】
新バージョンのプログラムをリリースしてから不具合が出ることなく時間が経過すればするほど、潜在的な不具合の発生確率は低くなり、新バージョンのプログラムを使用することのリスクも低下する。そこで、リリース当初のリスクの高さに応じて、そのリスクが所定値未満に低下するまでに要する期間（混在期間）を設定する。ステップＳ１０２の詳細については後述する。
【００８９】
プログラム更新管理サーバ１０は、更新可能通知を受信した時点からの経過時間の計測を、時計部１８を用いて、開始する（ステップＳ１０３）。
【００９０】
さらにプログラム更新管理サーバ１０は、管理テーブルを参照したり各情報処理装置３０に問い合わせたりして、各情報処理装置３０で稼動中のプログラムのバージョンを確認する（ステップＳ１０４）。そして、プログラム更新管理サーバ１０の混在比設定部２３は、新バージョンのプログラムで動作させる装置と旧バージョンのプログラムで動作させる装置との混在比を決定し、この混在比を達成するために、少なくとも１台の装置のプログラムを新バージョンに更新する必要があるか否かの判断を行う（ステップＳ１０５）。
【００９１】
更新の必要がある場合は（ステップＳ１０６;Ｙｅｓ）、新バージョンのプログラムに更新する対象の装置を選定する（ステップＳ１０７）。ステップＳ１０７の装置選定処理の詳細は後述する。
【００９２】
その後、ステップＳ１０７で選定した各装置のプログラムを新バージョンのプログラムに更新して（ステップＳ１０８）、ステップＳ１０９へ移行する。更新の必要が無い場合は（ステップＳ１０６;Ｎｏ）、更新処理を行わずに、ステップＳ１０９へ移行する。
【００９３】
ステップＳ１０９では、ステップＳ１０２で設定した混在期間が経過したか否かを判断する。混在期間が経過していなければ（ステップＳ１０９;Ｎｏ）、不具合発生のリスクがまだ所定値未満に低下していないと判断して、新バージョンのプログラムで動作する装置と旧バージョンのプログラムで動作する装置とが混在する状態を維持する（ステップＳ１１０）。
【００９４】
混在期間が経過したときは（ステップＳ１０９;Ｙｅｓ）、不具合発生のリスクが所定値未満に低下したと判断して、現時点で旧バージョンのプログラムで動作している全ての装置に対して新バージョンのプログラムへの更新指示を送信して（ステップＳ１１１）、本処理を終了する。
【００９５】
次に、混在期間設定処理（図４のステップＳ１０２）の詳細について説明する。
【００９６】
リスク判断部２２は、管理対象の情報処理装置３０を使用する全ユーザの中に占める慎重派のユーザの比率、あるいは、管理対象の情報処理装置３０で過去に実行されたジョブの中で、不具合発生時の影響の大きいジョブの実行比率、等に基づいて混在期間を設定する。
【００９７】
図５は、図４のステップＳ１０２の詳細の一例であって、新バージョンのプログラムで変更された部分がどの機能に係る部分であるかに基づいてリスクを判断して混在期間の長さを設定する場合の処理を示している。新バージョンのプログラムで変更された部分の機能の実行で不具合が起きた場合の影響の大小（不具合発生が許されない程度の大小）に応じて混在期間の長さを設定する。具体的には、不具合発生時の影響が大きいほど、混在期間を長くする。
【００９８】
ここでは、新バージョンのプログラムにおける変更部分が、ＦＡＸ送信機能やScanTo＊＊機能（＊＊は外部の宛先）など、データを外部へ送信する機能、もしくは親展印刷のように高いセキュリティが要求される機能、に係る部分である場合は（ステップＳ２０１；送信機能）、該機能で不具合が発生した場合の影響が極めて大きい（リスクが高い）ので、混在期間を１か月に設定する（ステップＳ２０２）。たとえば、誤送信のような不具合は許されない。
【００９９】
新バージョンのプログラムにおける変更部分が、ScanToBox機能、ScanToUSB機能のように、装置内部にデータを保存する機能に係る部分である場合は（ステップＳ２０１；保存機能）、該機能で不具合が発生した場合の影響が中程度なので、混在期間を２週間に設定する（ステップＳ２０３）。データの誤消去や保存ミスなどの影響は大きいが、誤送信の影響に比べれば小さい。
【０１００】
新バージョンのプログラムにおける変更部分が、通常の印刷機能に係る部分である場合は（ステップＳ２０１；印刷機能）、該機能で不具合が発生した場合の影響は小さい（印刷の失敗は再実行すれば済む）ので、混在期間を１週間に設定する（ステップＳ２０４）。すなわち、不具合発生時の影響（リスク）は、送信機能＞保存機能＞印刷機能であり、これに対応して混在期間の長短を設定する。
【０１０１】
送信機能、保存機能、印刷機能のそれぞれに対応させる混在期間の具体的な値は上記に限定されず適宜に設定すればよい。また管理者等は所定の操作により、混在期間の具体的な設定値を変更することができる。ただし、混在期間の長さは、送信機能＞保存機能＞印刷機能、の関係になければならず、プログラム更新管理サーバ１０は、この関係にない値への設定変更を受け付けない。
【０１０２】
図６は、図４のステップＳ１０２の詳細の他の一例であり、新バージョンのプログラムのリリース目的に応じて混在期間を設定する場合の処理を示している。ここでは、新バージョンのプログラムのリリース目的が、不具合解消であるか、既存機能の品質向上であるか、新たな機能の搭載であるかに応じて、混在期間の長さを設定する。
【０１０３】
リリース目的と、新バージョンのプログラムに不具合が潜んでいる可能性の大小とには、相関がある。すなわち、リリース目的が不具合解消である場合、一般に、変更された部分は限定的であり、かつその不具合が解消されたことの確認テストはリリース前に十分に行われる。従って、不具合解消がリリース目的である場合、新バージョンのプログラムに不具合が潜んでいる可能性は他の場合よい低い。
【０１０４】
リリース目的が既存機能の品質向上（性能アップ）である場合、プログラムの変更量は、新機能の搭載の場合に比べて少ないと考えられるので、不具合の発生確率も新機能搭載に比べて低いと考えられる。以上より、潜在的な不具合の発生確率は、新機能搭載＞品質向上＞不具合解消  の順であると考えられる。
【０１０５】
そこで、図６に示す処理では、新バージョンのプログラムのリリース目的が不具合解消ならば（ステップＳ２１１；不具合解消）、混在期間を３日に設定し（ステップＳ２１２）、リリース目的が品質向上ならば（ステップＳ２１１；品質向上）、混在期間を１週間に設定し（ステップＳ２１３）、リリース目的が新機能搭載ならば（ステップＳ２１１；新機能搭載）、混在期間を２週間に設定する（ステップＳ２１４）。
【０１０６】
各リリース目的に対応させる混在期間の具体的な値は適宜に設定すればよい。また管理者等は所定の操作により、混在期間の具体的な設定値を変更することができる。ただし、混在期間の長さは、新機能搭載＞品質向上＞不具合解消、の関係になければならず、プログラム更新管理サーバ１０は、この関係にない場合には設定変更を受け付けない。
【０１０７】
なお、プログラムが変更された部分の機能と、リリース目的の双方を加味して混在期間を設定してもよい。さらには他の要素に基づいて混在期間を設定してもかまわない。
【０１０８】
次に、図４のステップＳ１０５の処理（混在比、更新要否判断処理）の詳細を説明する。
【０１０９】
図７は、混在比、更新要否判断処理（図４のステップＳ１０５）の詳細を示す流れ図である。プログラム更新管理サーバ１０の混在比設定部２３は、管理対象の複数の情報処理装置３０のユーザの属性を管理テーブルを参照して取得し、慎重派のユーザ数と、非慎重派のユーザ数を算出してその比率を求める（ステップＳ２２１）。
【０１１０】
次に、プログラム更新管理サーバ１０の混在比設定部２３は、ステップＳ２２１で求めた比率に基づいて、新バージョンのプログラムで動作させる装置と旧バージョンのプログラムで動作させる装置の混在比を求める。混在比は、ステップＳ２２１で求めた比率をそのまま混在比としてもよいし、何らかの変換処理を加えて混在比を算出してもよい。たとえば、ステップＳ２２１で求めた比率と混在比との対応関係を予め登録した換算テーブルを用意しておき、この換算テーブルをステップＳ２２１で求めた比率で参照して混在比を求めるようにしてもよい。
【０１１１】
次に、混在比設定部２３は、混在比と管理対象の情報処理装置３０の総台数とから、新バージョンのプログラムで動作させる装置の目標台数と、旧バージョンで動作させる装置の目標台数を算出する（ステップＳ２２３）。
【０１１２】
たとえば、プログラム更新管理サーバ１０が管理対象とする情報処理装置３０の総台数が２０台の場合に、慎重派のユーザが３割、非慎重派のユーザが７割、であれば、
・旧バージョンのプログラムで動作する装置の目標台数は６台
・新バージョンのプログラムで動作する装置の目標台数は１４台
と算出される。
【０１１３】
次に、プログラム更新管理サーバ１０は、管理対象の各情報処理装置３０で現在動作中のプログラムのバージョンを、管理テーブルを参照等して確認し、現時点で新バージョンのプログラムで動作している装置の台数と旧バージョンで動作している装置の台数を確認する（ステップＳ２２４）。
【０１１４】
次に、プログラム更新管理サーバ１０は、ステップＳ２２３で求めた新バージョンのプログラムで動作させる装置の目標台数とステップＳ２２４で求めた新バージョンのプログラムで動作している装置の台数とが一致しているか否かを確認する（ステップＳ２２５）。なお、新バージョンに代えて旧バージョンについて台数を比較してもよい。
【０１１５】
ステップＳ２２５の比較で台数が一致した場合（ステップＳ２２５;Ｙｅｓ）、プログラム更新管理サーバ１０は、管理対象の中に新バージョンのプログラムに更新すべき情報処理装置３０は存在しないと判断して（ステップＳ２２６）、本処理を終了する。ステップＳ２２５の比較で台数が一致しない場合、すなわち、現時点で新バージョンで動作中の装置の台数が新バージョンで動作させる装置の目標台数より少ない場合は（ステップＳ２２５;Ｎｏ）、プログラム更新管理サーバ１０は、管理対象の中に新バージョンのプログラムに更新すべき情報処理装置３０が存在すると判断して（ステップＳ２２７）本処理を終了する。
【０１１６】
図８は、混在比、更新要否判断処理（図４のステップＳ１０５）の他の例の詳細を示す流れ図である。図７の処理では、プログラム更新管理サーバ１０は、ユーザの属性に基づいて混在比を求めたが、図８の処理では、管理対象の複数の情報処理装置３０で過去に実行されたジョブ実行回数に基づいて混在比を算出する。
【０１１７】
詳細には、プログラム更新管理サーバ１０は、管理対象の複数の情報処理装置３０で過去の所定期間に実行されたジョブの実行履歴から、ジョブ種別にジョブ実行回数を集計する。ここでは、送信機能に係るジョブと保存機能に係るジョブを重要ジョブとして、重要ジョブの実行回数とし、それ以外のジョブ（通常ジョブ）の実行回数を集計する（ステップＳ２３１）。
【０１１８】
次に、プログラム更新管理サーバ１０は、ステップＳ２３１で求めた重要ジョブの実行回数と通常ジョブの実行回数の比率に基づいて、新バージョンのプログラムで動作させる装置と旧バージョンのプログラムで動作させる装置との混在比を求める（ステップＳ２３２）。
【０１１９】
その後の処理は、図７に示すステップＳ２２４〜Ｓ２２７と同一であり、図８においても図７と同一のステップ番号を付すことで、重複する説明を省略する。
【０１２０】
次に、図４のステップＳ１０７（装置選定処理）の詳細を説明する。
【０１２１】
図９は、ユーザ層別の装置の利用回数に基づいて装置の選定を行う場合の装置選定処理の流れを示している。プログラム更新管理サーバ１０の装置選定部２４は、管理対象の情報処理装置３０毎に、ユーザ層別の装置の利用回数を集計する（ステップＳ３０１）。ここでは、装置毎に、慎重派のユーザによる装置の利用回数と、非慎重派のユーザによる装置の利用回数を集計する。
【０１２２】
そして、プログラム更新管理サーバ１０の装置選定部２４は、管理対象の複数の情報処理装置３０の中から、慎重派の利用回数が多いものから優先的に旧バージョンのプログラムで動作させる装置に選定する（ステップＳ３０２）。選定した装置の台数が、旧バージョンのプログラムで動作させる装置の目標台数に達したら（ステップＳ３０３;Ｙｅｓ）、本処理を終了する。
【０１２３】
たとえば、プログラム更新管理サーバ１０が管理対象とする情報処理装置３０が２０台あり、混在比から求めた旧バージョンの目標台数が６台、新バージョンの目標台数が１４台であったとする。この場合、慎重派のユーザによる利用頻度の高い上位６台の情報処理装置３０を、旧バージョンのままとし、残りの１４台を新バージョンに更新する対象の装置に特定する。
【０１２４】
図１０は、図４のステップＳ１０７（装置選定処理）の処理の詳細の他の例を示す流れ図である。図１０では、非慎重派の利用回数が多いものから優先的に新バージョンのプログラムで動作させる装置に選定する。
【０１２５】
プログラム更新管理サーバ１０の装置選定部２４は、管理対象の情報処理装置３０毎に、ユーザ層（慎重派、非慎重派）別の装置の利用回数を集計し（ステップＳ３１１）、管理対象の複数の情報処理装置３０の中で、非慎重派の利用回数が多い装置から優先的に新バージョンのプログラムで動作させる装置に選定する（ステップＳ３１２）。プログラム更新管理サーバ１０の装置選定部２４は、選定した装置の台数が、新バージョンのプログラムで動作させる装置の目標台数に達したら（ステップＳ３１３;Ｙｅｓ）、本処理を終了する。
【０１２６】
なお、図９のステップＳ３０２、図１０のステップＳ３１２では、利用回数が多いものから優先的に選定したが、利用比率の高いものから優先的に選定するようにしてもよい。
【０１２７】
図１１は、図４のステップＳ１０７（装置選定処理）の処理の詳細の他の例を示す流れ図である。図１１に示す処理では、プログラム更新管理サーバ１０の装置選定部２４は、ジョブ種毎の実行回数に基づいて装置を選定する。
【０１２８】
プログラム更新管理サーバ１０の装置選定部２４は、管理対象の情報処理装置３０毎に、ジョブ種別にジョブ実行回数を集計する（ステップＳ３２１）。ここでは、ジョブの種別を、不具合が発生した場合の影響度の大小に基づいて２種類に分類して集計する。たとえば、送信機能に係るジョブと保存機能に係るジョブを重要ジョブ、それ以外のジョブを通常ジョブとし、重要ジョブの実行回数と通常ジョブの実行回数を集計する。
【０１２９】
そして、プログラム更新管理サーバ１０の装置選定部２４は、管理対象の複数の情報処理装置３０の中から、重要ジョブの実行回数が多い（もしくは実行比率が高い）装置から優先的に旧バージョンのプログラムで動作させる装置に選定する（ステップＳ３２２）。選定した装置の台数が、旧バージョンのプログラムで動作させる装置の目標台数に達したら（ステップＳ３２３;Ｙｅｓ）、本処理を終了する。
【０１３０】
図１２は、図４のステップＳ１０７（装置選定処理）の処理の詳細の他の例を示す流れ図である。図１１では、不具合発生の影響が大きいジョブ種のジョブ（重要ジョブ）の実行回数が多い（あるいは実行比率が高い）装置から優先的に旧バージョンのプログラムで動作させる装置に選定したが、図１２に示す処理では、影響が小さいジョブ種のジョブ（通常ジョブ）の実行回数が多い（あるいは実行比率が高い）装置から優先的に新バージョンのプログラムで動作させる装置に選定する。
【０１３１】
詳細には、プログラム更新管理サーバ１０の装置選定部２４は、管理対象の情報処理装置３０毎に、ジョブ種毎のジョブ実行回数を集計する（ステップＳ３３１）。ここでは、図１１の場合と同様に、重要ジョブの実行回数と、通常ジョブの実行回数を集計する。そして、管理対象の複数の情報処理装置３０の中から、通常ジョブの実行回数が多い（もしくは実行比率が高い）装置から優先的に新バージョンのプログラムで動作させる装置に選定する（ステップＳ３３２）。プログラム更新管理サーバ１０の装置選定部２４は、選定した装置の台数が、新バージョンのプログラムで動作させる装置の目標台数に達したら（ステップＳ３３３;Ｙｅｓ）、本処理を終了する。
【０１３２】
次に、プログラム更新管理サーバ１０が、新旧バージョンのプログラムで動作する情報処理装置３０の情報を、情報処理装置３０の操作パネル３８や操作表示装置６０の表示部に表示する制御について説明する。
【０１３３】
プログラム更新管理サーバ１０は、管理対象の装置が、旧バージョンのプログラムで動作する装置と新バージョンのプログラムで動作する装置が混在する状態にあるとき、図１３に示すように、新バージョンのプログラムで動作する情報処理装置３０の情報と、旧バージョンのプログラムで動作する情報処理装置３０の情報を表示する。たとえば、情報処理装置３０の操作パネル３８や操作表示装置６０にユーザが近づいたことを検知したとき、あるいはユーザから何らかの操作を受けたときに、該表示を行う。
【０１３４】
図１３は、新バージョンのプログラムで動作する情報処理装置３０としてA001、B001、C001の３台があり、旧バージョンのプログラムで動作する情報処理装置３０としてD001、E001の２台がある旨の情報が操作表示装置６０の表示部に表示された例を示している。
【０１３５】
図１４は、混在状態にあるときに、情報処理装置３０の操作パネル３８や操作表示装置６０でジョブの設定操作を受けた場合に、プログラム更新管理サーバ１０がその操作パネル３８や操作表示装置６０の表示部に表示させる選択画面の一例を示している。
【０１３６】
プログラム更新管理サーバ１０の表示制御部２８は、図１４に示すように、ジョブの設定操作を受け付け中の操作パネル１８や操作表示装置６０の表示部に、現在設定中のジョブの設定操作を完了させ、該ジョブの設定情報を希望するバージョンのプログラムで動作する情報処理装置３０に転送する第１選択肢の選択釦７２と、現在設定中の設定操作を完了させずに、希望するバージョンのプログラムで動作する情報処理装置３０の操作パネルでジョブの設定操作を完了させ、該情報処理装置３０にそのジョブを実行させる第２選択肢の選択釦７３を表示する。
【０１３７】
ユーザから第１選択肢の選択釦７２の選択操作を受けた場合は、この操作パネル（あるいは操作表示装置６０）でジョブの設定操作を完了するまで受け付ける。その後、設定が完了したジョブの実行先となる装置の選択操作を受け付け、選択された装置にジョブの設定情報を転送して該ジョブを実行させる。
【０１３８】
ユーザから第２選択肢の選択釦７３の選択操作を受けた場合は、この操作パネル（あるいは操作表示装置６０）で受け付け途中であったジョブの設定情報を破棄する。ユーザは、希望するバージョンのプログラムで動作する情報処理装置３０に対して初めからジョブの設定操作を行う。もしくは、ジョブの実行先となる装置の選択操作を受け付け、選択された装置に、途中まで受け付けたジョブの設定情報を転送して操作を承継させる。ユーザは転送先の装置でジョブの設定操作の続きを行ってジョブの設定操作を完了させることができる。設定されたジョブはその情報処理装置３０で実行される。
【０１３９】
次に、プログラム更新管理サーバ１０がジョブを転送する動作について説明する。
【０１４０】
プログラム更新管理サーバ１０は、情報処理装置３０に対するジョブの設定操作が情報処理装置３０の操作パネル３８で成された場合や任意の情報処理装置３０に対するジョブの設定操作が操作表示装置６０で成された場合に、該設定操作で受け付けたジョブの種類が、そのジョブの実行先となる情報処理装置３０で動作中のバージョンのプログラムに適する種類のジョブか否かを判断する。そして、適さないと判断した場合は、該ジョブの実行に適したバージョンのプログラムで動作する情報処理装置３０を選定し、該選定した情報処理装置３０にジョブを転送して実行させる。もしくは、設定操作の情報を、選定した情報処理装置３０に転送し、転送先の情報処理装置３０に、該転送した設定操作の情報に基づいてジョブを新たに生成させて、そのジョブを実行させる。
【０１４１】
ここでは、送信機能や保存機能のジョブについては、旧バージョンのプログラムで動作する情報処理装置３０が適すると判断し、新バージョンのプログラムで動作する情報処理装置３０には適さないと判断する。一方、印刷機能のジョブについは、新旧どちらのバージョンのプログラムで動作する情報処理装置３０も適すると判断する。
【０１４２】
たとえば、新バージョンのプログラムで動作する情報処理装置３０をジョブの実行先として送信機能に係るジョブの設定操作が成されたとき、プログラム更新管理サーバ１０は、旧バージョンのプログラムで動作するいずれか１つの情報処理装置３０を転送先に選定し、該選定した装置へ、設定されたジョブもしくはジョブの設定情報を転送する。
【０１４３】
次に、ジョブを投入したユーザの属性（慎重派か否か）に基づいてジョブやジョブの設定情報の転送要否を判断する場合について説明する。プログラム更新管理サーバ１０は、情報処理装置３０に対するジョブの設定操作が情報処理装置３０の操作パネル３８で成された場合や任意の情報処理装置３０に対するジョブの設定操作が操作表示装置６０で成された場合に、該設定操作で受け付けたユーザの属性（慎重派、非慎重派）を取得し、該ユーザの属性が、該設定操作受け付けたジョブの実行先の情報処理装置３０で動作中のバージョンのプログラムに適するか否かを判断する。適さないと判断した場合は、該ユーザの属性に適したバージョンのプログラムで動作する情報処理装置３０を選定する。そして、設定操作で受け付けたジョブを該選定した情報処理装置３０に転送して実行させる、もしくは、設定操作の情報を、選定した情報処理装置３０に転送し、転送先の情報処理装置３０に、該転送した設定操作の情報に基づいてジョブを新たに生成させて、そのジョブを実行させる。
【０１４４】
ここでは、慎重派のユーザには、旧バージョンのプログラムで動作する情報処理装置３０は適すると判断し、新バージョンのプログラムで動作する情報処理装置３０は適さないと判断する。また、非慎重派のユーザには、新バージョンのプログラムで動作する情報処理装置３０は適すると判断し、旧バージョンのプログラムで動作する情報処理装置３０は適さないと判断する。
【０１４５】
たとえば、新バージョンのプログラムで動作する情報処理装置３０をジョブの実行先とするジョブの設定操作が慎重派のユーザによって成されたとき、プログラム更新管理サーバ１０は、現在の実行先の装置は、このユーザの投入したジョブの実行に適さないと判断する。そして、慎重派のユーザに適する装置として旧バージョンのプログラムで動作するいずれか１つの情報処理装置３０を選定し、該選定した装置に、設定されたジョブもしくはジョブの設定情報を転送する。
【０１４６】
ジョブの設定情報の転送やジョブの転送は、プログラム更新管理サーバ１０が転送すべき情報を転送元の装置から取得し、これを転送先の装置へ転送する方法でもよいし、プログラム更新管理サーバ１０が転送元の装置に、転送先の装置へ情報を転送するように指示し、これを受けた転送元の装置が転送先へ直接転送する方法でもよい。
【０１４７】
以上、本発明の実施の形態を図面によって説明してきたが、具体的な構成は実施の形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
【０１４８】
実施の形態では、ユーザの属性に基づいて、慎重派と非慎重派のユーザに分類したが、分類の数や分類の基準はこれに限定されるものではない。たとえば、慎重派、普通派、非慎重派のように３以上のグループに分類してもよい。ジョブの種類についても分類の数等は実施の形態に例示したものに限定されない。ジョブの種類は、不具合発生時の影響の大小を基準に分類されればよい。たとえば、送信機能と非送信機能に分類してもよい。
【０１４９】
実施の形態では、当初に設定した混在比を、混在期間が経過するまで維持するようにしたが、リリース後の経過時間に応じて、あるいはリリース後の不具合の発生状況に応じて、あるいは経過時間と不具合の発生状況に応じて、混在比を変更するようにしてもよい。たとえば、リリース後に不具合が発生することなく所定時間以上が経過したときは新バージョンの台数が増えるように混在比を見直す。リリース後に不具合が発生したときは、旧バージョンの台数が増えるように混在比を見直す。
【０１５０】
なお、プログラム更新管理サーバ１０は、混在期間が経過する前に、旧バージョンのプログラムで動作する情報処理装置３０が１台のみになった場合は、それ以後、混在期間が経過するまで、新バージョンのプログラムに更新する処理を行わない。
【０１５１】
不具合発生のリスクの判断基準は、ジョブの種類、プログラムのリリース目的に限定されるものではない。プログラムが変更されたステップ数などを判断基準としてもよい。
【符号の説明】
【０１５２】
２…外部装置
３…ネットワーク
５…情報処理システム
１０…プログラム更新管理サーバ
１１…ＣＰＵ
１２…ＲＯＭ
１３…ＲＡＭ
１４…不揮発メモリ
１５…ハードディスク装置
１６…ネットワーク通信部
１７…操作パネル
１７ａ…操作部
１７ｂ…表示部
１８…時計部
２１…プログラム更新部
２２…リスク判断部
２３…混在比設定部
２４…装置選定部
２５…第１の転送先選定部
２６…第２の転送先選定部
２７…転送部
２８…表示制御部
３０…情報処理装置
３１…ＣＰＵ
３２…ＲＯＭ
３３…ＲＡＭ
３４…不揮発メモリ
３５…ハードディスク装置
３６…スキャナ部
３７…プリンタ部
３８…操作パネル
３８ａ…操作部
３８ｂ…表示部
３９…画像処理部
４１…ファクシミリ通信部
４２…ネットワーク通信部
４３…認証部
５０…ユーザ端末
６０…操作表示装置
７２…第１選択肢の選択釦
７３…第２選択肢の選択釦
【図１】
2019144960.tif 000003
【図２】
2019144960.tif 000004
【図３】
2019144960.tif 000005
【図４】
2019144960.tif 000006
【図５】
2019144960.tif 000007
【図６】
2019144960.tif 000008
【図７】
2019144960.tif 000009
【図８】
2019144960.tif 000010
【図９】
2019144960.tif 000011
【図１０】
2019144960.tif 000012
【図１１】
2019144960.tif 000013
【図１２】
2019144960.tif 000014
【図１３】
2019144960.tif 000015
【図１４】
2019144960.tif 000016