(57)【要約】【課題】  利用の予約がなされたソフトウェアを適切に保護することができる管理装置、ソフトウェア管理方法、ソフトウェア管理プログラム及び記録媒体の提供を目的とする。【解決手段】  ソフトウェアを管理する管理装置であって、前記ソフトウェアの利用開始時期を伴った前記ソフトウェアの利用予約の要求に基づいて、前記利用予約に係るソフトウェアに対して前記利用予約がなされた旨を示す予約情報の一覧を管理する予約一覧を割り当て、該予約一覧を構成する一の要素として前記予約情報を割り当てる利用予約管理手段を有することにより上記課題を解決する。【選択図】  図３
2005196462.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアを管理する管理装置であって、
前記ソフトウェアの利用開始時期を伴った前記ソフトウェアの利用予約の要求に基づいて、前記利用予約に係るソフトウェアに対して前記利用予約がなされた旨を示す予約情報の一覧を管理する予約一覧を割り当て、該予約一覧を構成する一の要素として前記予約情報を割り当てる利用予約管理手段を有することを特徴とする管理装置。
【請求項２】
前記利用予約管理手段は、前記利用予約を識別する予約識別情報を前記利用予約ごとに割り当て、前記予約識別情報を前記予約情報に含めることを特徴とする請求項１記載の管理装置。
【請求項３】
前記利用予約管理手段は、前記利用予約に係る前記ソフトウェアに既に前記予約一覧が割り当てられている場合は、既に割り当てられている前記予約一覧の要素として前記予約情報を割り当てることを特徴とする請求項１又は２記載の管理装置。
【請求項４】
前記管理装置は複数の前記ソフトウェアを管理し、
前記利用予約管理手段は、前記ソフトウェアごとに前記予約一覧を割り当てることを特徴とする請求項１乃至３いずれか一項記載の管理装置。
【請求項５】
前記利用予約管理手段は、前記ソフトウェアの削除要求に基づいて、該削除要求において削除の対象とされた前記ソフトウェアに対する前記予約一覧を参照して前記ソフトウェアの削除の許否を判断することを特徴とする請求項１乃至４いずれか一項記載の管理装置。
【請求項６】
前記利用予約管理手段は、前記ソフトウェアの削除要求に基づいて、該削除要求において削除の対象とされた前記ソフトウェアに対する前記予約一覧に割り当てられる前記予約情報を参照して前記ソフトウェアの削除の許否を判断することを特徴とする請求項５記載の管理装置。
【請求項７】
前記利用予約管理手段は、前記削除要求において削除の対象とされた前記ソフトウェアに対する前記予約一覧に前記予約情報が少なくとも一つ割り当てられている場合は、該ソフトウェアの削除を許可しないことを特徴とする請求項６記載の管理装置。
【請求項８】
前記利用予約管理手段は、前記予約識別情報と前記ソフトウェアを識別するソフトウェア識別情報とを伴った前記利用予約の解除要求に基づいて、前記ソフトウェア識別情報によって特定される前記ソフトウェアに対する前記予約一覧において前記予約識別情報によって特定される前記予約情報を無効とすることを特徴とする請求項２乃至７いずれか一項記載の管理装置。
【請求項９】
前記利用予約管理手段は、前記予約情報を無効とした結果、前記ソフトウェア識別情報によって特定される前記ソフトウェアに対する前記予約一覧に前記予約情報が一つも割り当てられていない場合は、前記予約一覧を無効とすることを特徴とする請求項８記載の管理装置。
【請求項１０】
前記利用予約管理手段は、前記予約情報を無効とした結果、前記ソフトウェア識別情報によって特定される前記ソフトウェアに対する前記予約一覧に前記予約情報が一つでも割り当てられている場合は、前記予約一覧を無効としないことを特徴とする請求項８又は９記載の管理装置。
【請求項１１】
前記ソフトウェアを利用した所定の処理の所要時間を示す所要時間情報を管理する所要時間管理手段と、
前記利用予約管理手段より指定された時期に前記利用予約管理手段に対して前記利用予約の解除要求を行うタイマー手段とを更に有し、
前記利用予約管理手段は、前記利用予約の要求に基づいて、前記ソフトウェアの利用開始時期と前記所要時間情報とに基づいて算出した時期を前記タイマー手段に対して指定し、前記タイマー手段からの前記利用予約の解除要求に応じて前記利用予約に係る前記予約情報を無効とすることを特徴とする請求項１乃至１０いずれか一項記載の管理装置。
【請求項１２】
前記利用予約は、当該利用予約の要求元を識別する要求元識別情報を伴っており、
前記利用予約管理手段は、前記予約識別情報と共に前記要求元識別情報を前記予約情報に含めることを特徴とする請求項２乃至１１いずれか一項記載の管理装置。
【請求項１３】
前記利用予約管理手段は、前記要求元識別情報と、前記予約識別情報と、前記ソフトウェアを識別するソフトウェア識別情報とを含む前記ソフトウェアの提供要求に基づいて、前記ソフトウェア識別情報によって特定される前記ソフトウェアに対する前記予約一覧において前記予約識別情報によって特定される前記予約情報に含まれている前記要求元識別情報の値と、前記提供要求に含まれている前記要求元識別情報の値とを比較することにより、前記ソフトウェアの提供の許否を判断することを特徴とする請求項１２記載の管理装置。
【請求項１４】
ソフトウェアを管理する管理装置におけるソフトウェア管理方法であって、
前記ソフトウェアの利用開始時期を伴った前記ソフトウェアの利用予約の要求に基づいて、前記利用予約に係るソフトウェアに対して前記利用予約がなされた旨を示す予約情報の一覧を管理する予約一覧を割り当てる予約一覧割り当て手順と、
該予約一覧を構成する一の要素として前記予約情報を割り当てる予約情報割り当て手順とを有することを特徴とするソフトウェア管理方法。
【請求項１５】
前記予約情報割り当て手順は、前記利用予約を識別する予約識別情報を前記利用予約ごとに割り当て、前記予約識別情報を前記予約情報に含めることを特徴とする請求項１４記載のソフトウェア管理方法。
【請求項１６】
前記予約情報割り当て手順は、前記利用予約に係る前記ソフトウェアに既に前記予約一覧が割り当てられている場合は、既に割り当てられている前記予約一覧の要素として前記予約情報を割り当てることを特徴とする請求項１４又は１５記載のソフトウェア管理方法。
【請求項１７】
前記管理装置は複数の前記ソフトウェアを管理し、
前記利用一覧割り当て手順は、前記ソフトウェアごとに前記予約一覧を割り当てることを特徴とする請求項１４乃至１６いずれか一項記載のソフトウェア管理方法。
【請求項１８】
前記ソフトウェアの削除要求に基づいて、該削除要求において削除の対象とされた前記ソフトウェアに対する前記予約一覧を参照して前記ソフトウェアの削除の許否を判断する削除許否判断手順を更に有することを特徴とする請求項１４乃至１７いずれか一項記載のソフトウェア管理方法。
【請求項１９】
前記削除許否判断手順は、前記ソフトウェアの削除要求に基づいて、該削除要求において削除の対象とされた前記ソフトウェアに対する前記予約一覧に割り当てられる前記予約情報を参照して前記ソフトウェアの削除の許否を判断することを特徴とする請求項１８記載のソフトウェア管理方法。
【請求項２０】
前記削除許否判断手順は、前記削除要求において削除の対象とされた前記ソフトウェアに対する前記予約一覧に前記予約情報が少なくとも一つ割り当てられている場合は、該ソフトウェアの削除を許可しないことを特徴とする請求項１９記載のソフトウェア管理方法。
【請求項２１】
前記予約識別情報と前記ソフトウェアを識別するソフトウェア識別情報とを伴った前記利用予約の解除要求に基づいて、前記ソフトウェア識別情報によって特定される前記ソフトウェアに対する前記予約一覧において前記予約識別情報によって特定される前記予約情報を無効とする予約解除手順を更に有することを特徴とする請求項１５乃至２０いずれか一項記載のソフトウェア管理方法。
【請求項２２】
前記予約解除手順は、前記予約情報を無効とした結果、前記ソフトウェア識別情報によって特定される前記ソフトウェアに対する前記予約一覧に前記予約情報が一つも割り当てられていない場合は、前記予約一覧を無効とすることを特徴とする請求項２１記載のソフトウェア管理方法。
【請求項２３】
前記予約解除手順は、前記予約情報を無効とした結果、前記ソフトウェア識別情報によって特定される前記ソフトウェアに対する前記予約一覧に前記予約情報が一つでも割り当てられている場合は、前記予約一覧を無効としないことを特徴とする請求項２１又は２２記載のソフトウェア管理方法。
【請求項２４】
前記利用予約の要求に基づいて、前記ソフトウェアの利用開始時期と、前記ソフトウェアを利用した所定の処理の所要時間とに基づいて当該利用予約の有効期限を算出する有効期限算出手順と、
前記有効期限算出手順において算出された前記有効期限の到来を検知する有効期限検知手順と、
前記有効期限検知手順における前記有効期限の到来の検知に基づいて、前記利用予約に係る前記予約情報を無効とする予約情報無効手順とを有することを特徴とする請求項１４乃至２３いずれか一項記載のソフトウェア管理方法。
【請求項２５】
前記利用予約は、当該利用予約の要求元を識別する要求元識別情報を伴っており、
前記予約情報割り当て手順は、前記予約識別情報と共に前記要求元識別情報を前記予約情報に含めることを特徴とする請求項１５乃至２４いずれか一項記載のソフトウェア管理方法。
【請求項２６】
前記要求元識別情報と、前記予約識別情報と、前記ソフトウェアを識別するソフトウェア識別情報とを含む前記ソフトウェアの提供要求に基づいて、前記ソフトウェア識別情報によって特定される前記ソフトウェアに対する前記予約一覧において前記予約識別情報によって特定される前記予約情報に含まれている前記要求元識別情報の値と、前記提供要求に含まれている前記要求元識別情報の値とを比較することにより、前記ソフトウェアの提供の許否を判断する提供許否判断手順を更に有することを特徴とする請求項２５記載のソフトウェア管理方法。
【請求項２７】
ソフトウェアを管理する管理装置に、
前記ソフトウェアの利用開始時期を伴った前記ソフトウェアの利用予約の要求に基づいて、前記利用予約に係るソフトウェアに対して前記利用予約がなされた旨を示す予約情報の一覧を管理する予約一覧を割り当てる予約一覧割り当て手順と、
該予約一覧を構成する一の要素として前記予約情報を割り当てる予約情報割り当て手順とを実行させるためのソフトウェア管理プログラム。
【請求項２８】
請求項２７記載のソフトウェア管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理装置、ソフトウェア管理方法、ソフトウェア管理プログラム及び記録媒体に関し、特に利用開始時期を伴った利用予約の対象とされるソフトウェアを管理する管理装置、ソフトウェア管理方法、ソフトウェア管理プログラム及び記録媒体に関する。
【背景技術】
【０００２】
ネットワークに接続されているプリンタ、ＦＡＸ等の様々なネットワーク機器のファームウェア等の更新作業を、ネットワークを介した遠隔操作によって可能とするためのシステムが既に提供されている。
【０００３】
図１は、遠隔操作によって機器のファームウェアを更新する手順を説明するための図である。図１において、システム５００は、端末５０１、機器管理サーバ５０２、ファイルサーバ５０３及びネットワーク機器５０４等から構成され、それぞれはＬＡＮ等のネットワークによって接続されているものとする。
【０００４】
端末５０１は、ユーザが直接利用する端末である。機器管理サーバ５０２は、端末５０１からの要求に基づいてネットワーク機器５０４に対してファームウェア等をアップロードするコンピュータである。ファイルサーバ５０３は、各種ファームウェアをファイルとして管理しているコンピュータである。ネットワーク機器５０４は、ファームウェアの更新対象となり得るプリンタ、ＦＡＸ等の機器である。
【０００５】
まず、機器管理サーバ５０２は、ファイルサーバ５０３より必要なファームウェアをダウンロードしておく（Ｓ１１）。
【０００６】
端末５０１から、ネットワーク機器５０４のファームウェアの更新が要求されると（Ｓ１２）、機器管理サーバ５０２は、端末５０１より指定されたファームウェアをネットワーク機器５０４に対してアップロードする（Ｓ１３）。
【０００７】
ファームウェアをアップロードされたネットワーク機器５０４は、アップロードされたファームウェアの更新処理を実行すると、機器自身のリセット処理を実行し、ファームウェアの更新をその後の機器の動作に反映させる（Ｓ１４）。
【０００８】
このように、端末５０１から機器管理サーバ５０２を介してネットワーク機器５０４のファームウェアを簡易に更新させることができる。また、端末５０１からはファイルサーバ５０３から機器管理サーバ５０２にダウンロードされているファームウェアの削除等の保守作業を行うこともできる。
【０００９】
ところで、プリンタ、ＦＡＸ等は、多数のユーザによって共用されているのが一般であるところ、ファームウェアの更新作業はネットワーク機器５０４のリセット（電源のＯＦＦ／ＯＮ）を伴い、その間ネットワーク機器の利用が制限されてしまう。したがって、ファームウェアの更新作業は、ネットワーク機器５０４が頻繁に利用される平日の日中を避け、深夜や休日等に行う必要があった。
【００１０】
しかし、作業を担当するユーザが深夜まで残っていたり、休日出勤したりする必要があるとしたら、ファームウェアの更新作業を簡易に行えるという利益をユーザが十分に享受できているとは言いがたい。
【００１１】
そこで、無人状態におけるファームウェアの更新作業の実行を可能とするために、タイマー機能、スケジュール機能又は予約機能等と一般に呼ばれる機能が機器管理サーバ５０２に実装されるようになった。
【００１２】
すなわち、端末５０１から機器管理サーバ５０２に対し、ファームウェアのアップロードを要求する際（Ｓ１２）に、アップロードの開始時間の指定（予約）を可能とし、機器管理サーバ５０２は、指定された時間にファームウェアのアップロード（Ｓ１３）を開始するというものである。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、一のユーザが機器管理サーバ５０２に対してファームウェアのアップロードを予約した後に、別のユーザによって当該ファームウェアの削除が実行されてしまう可能性がある。機器管理サーバ５０２はネットワーク上に公開されているため複数のユーザよりアクセスが可能であり、当該別のユーザが当該一のユーザによってアップロードの予約が行われていることを知らずに、機器管理サーバ５０２の記憶領域を空ける等の目的で当該ファームウェアを不要なものとして削除してしまうことが考えられるからである。
【００１４】
そうすると、機器管理サーバ５０２が、一のユーザによって予約された時間にファームウェアのアップロードを実行しようとしたときは、アップロードすべきファームウェアを見つけることができずにアップロード処理を実行することができないという問題がある。
【００１５】
このような問題は、ファームウェアのアップロードを目的としたシステムのみならず、タイマー機能、スケジュール機能又は予約機能等によって実行される処理の対象となり、かつ複数のクライアントからアクセスされ得るソフトウェア一般について当てはまる。
【００１６】
本発明は、上記の点に鑑みてなされたものであって、利用の予約がなされたソフトウェアを適切に保護することができる管理装置、ソフトウェア管理方法、ソフトウェア管理プログラム及び記録媒体の提供を目的とする。
【課題を解決するための手段】
【００１７】
そこで上記課題を解決するため、本発明は、ソフトウェアを管理する管理装置であって、前記ソフトウェアの利用開始時期を伴った前記ソフトウェアの利用予約の要求に基づいて、前記利用予約に係るソフトウェアに対して前記利用予約がなされた旨を示す予約情報の一覧を管理する予約一覧を割り当て、該予約一覧を構成する一の要素として前記予約情報を割り当てる利用予約管理手段を有することを特徴とする。
【００１８】
このような管理装置では、利用の予約がなされたソフトウェアについて、利用予約がなされた旨を示す情報を割り当てるため、当該情報に基づいて利用予約の有無を判断することができる。したがって、利用の予約がなされたソフトウェアを適切に保護することができる。
【００１９】
また、上記課題を解決するため、本発明は、上記管理装置におけるソフトウェア管理方法、前記ソフトウェア管理方法を前記ソフトウェア管理装置に実行させるためのソフトウェア管理プログラム、又は前記ソフトウェア管理プログラムを記録した記録媒体としてもよい。
【発明の効果】
【００２０】
本発明によれば、利用の予約がなされたソフトウェアを適切に保護することができる管理装置、ソフトウェア管理方法、ソフトウェア管理プログラム及び記録媒体の提供することができる。
【発明を実施するための最良の形態】
【００２１】
以下、図面に基づいて本発明の実施の形態を説明する。図２は、本発明の実施の形態における機器管理システムのソフトウェアアーキテクチャの例を示す図である。
【００２２】
機器管理システム１は、ネットワークに接続しているＦＡＸ、又はプリンタ等のネットワーク機器のファームウェアの更新作業を、ＰＣ（Personal Computer）、ＰＤＡ（Personal Digital(Data) Assistants）、又は携帯電話等の端末からの遠隔操作によって簡易に行うための機能を提供するシステムである。
【００２３】
図２に示されるように機器管理システム１は、アプリケーション層１１０、サービス層１２０及びネットワーク層１３０等より構成されており、ファイルサーバ２０及び画像形成装置３０とＬＡＮ又はインターネット等のネットワークによって接続されている。
【００２４】
アプリケーション層１１０は、サービス層１２０の提供するサービスを利用する各種アプリケーション（アプリ１１１、アプリ１１２、アプリ１１３等）を含む層である。各種アプリケーションは、Ｗｉｎｄｏｗｓ（登録商標）アプリケーションであってもよいし、Ｗｅｂアプリケーションであってもよい。
【００２５】
サービス層１２０は、ネットワーク機器のファームウェアを更新するための機能をＷｅｂサービスとして提供する層である。本実施の形態においては、サービス層１２０の機能はＳＯＡＰインタフェースとして提供される。したがって、アプリケーション層３０における各アプリケーションは、サービス層１２０の機能をＳＯＡＰのＲＰＣによって呼び出すことが可能であり、アプリケーション層１１０とサービス層１２０との間のネットワーク境界が有る場合でも、アプリケーション層１１０における各種アプリケーション（以下、単に「アプリケーション」という。）の実装を変化させる必要はない。
【００２６】
サービス層１２０は、ソフトウェア管理サービス１２１及び機器管理サービス１２２等より構成される。
【００２７】
ソフトウェア管理サービス１２１は、ネットワーク機器に適用するファームウェアの管理機能を提供するＷｅｂサービスである。機器管理サービス１２２は、ネットワーク機器に関する情報の管理、及びネットワーク機器に対するファームウェアのアップロード等の機能を提供するＷｅｂサービスである。
【００２８】
ネットワーク層１３０は、サービス層１２０に対してファイルサーバ２０やネットワーク機器との通信用のインタフェース（例えば、関数インタフェース）を提供するための層である。
【００２９】
ファイルサーバ２０は、各種ファームウェアを管理しているコンピュータである。すなわち、ソフトウェア管理サービス１２１が管理するファームウェアは、アプリケーションからの要求に基づいて、ファイルサーバ２０よりダウンロードされたものである。
【００３０】
画像形成装置３０は、ネットワーク機器の具体例である。すなわち、画像形成装置３０は、機器管理システム１によってファームウェアを更新される機器である。
【００３１】
図３は、サービス層及びネットワーク層の詳細を説明するための図である。図３に示されるように、サービス層１２０におけるソフトウェア管理サービス１２１は、ファームウェア管理手段１２１１、チケット管理手段１２１２、ファームウェア記憶部１２１３及びチケット管理情報１２１４等から構成される。
【００３２】
ファームウェア管理手段１２１１は、ファームウェアの実体及びファームウェアの属性情報等を管理するものであり、ＨＴＴＰクライアント１３１を介してファイルサーバ２０より各種ファームウェアをダウンロードしたり、アプリケーション層１１０における各種アプリケーションからの要求に応じてファームウェア記憶部１２１３に保存されているファームウェアの実体又はファームウェアの属性情報等の提供や、ファームウェアの削除等を行う。また、ファームウェア管理手段１２１１は、画像形成装置３０にアップロードするファームウェアをアップデート手段１２２２に対して提供する。
【００３３】
なお、ファームウェア管理手段１２１１は、ＳＯＡＰインタフェースによって各種の要求（ファームウェアの削除、提供等）を受け付けることができる。したがって、ファームウェア管理手段１２１１に対するクライアント（アプリ１１１等）は、ファームウェア管理手段１２１１との間におけるネットワーク境界の有無にかかわらず、ファームウェア管理手段１２１１の機能を関数呼び出しによって呼び出すことが可能である。
【００３４】
ファームウェア記憶部１２１３は、ファイルサーバ２０よりダウンロードされたファームウェアが保存されている記憶領域である。なお、ファームウェア記憶部１２１３に保存されているファームウェアは、ファームウェアＩＤによって一意に識別される。詳しくは、各ファームウェアのファームウェアＩＤと各ファームウェアのファームウェア記憶部１２１３におけるパスとの関連付けがファームウェア管理手段１２１１によって管理されている。
【００３５】
チケット管理手段１２１２は、ファームウェア管理手段１２１１が管理するファームウェアに対する利用の予約（利用予約）に関する情報（チケット管理情報１２１４）を管理するものである。チケット管理手段１２１２は、画像形成装置３０にアップロードするファームウェアの利用予約をアップデート手段１２２２から受け付け、その利用予約に基づいて当該ファームウェアの利用が予約された旨を示す情報をチケット管理情報１２１４に登録する（割り当てる）。また、チケット管理手段１２１２は、ファームウェア管理手段１２１１からの問い合わせに応じ、任意のファームウェアの利用予約の有無等について応答する。
【００３６】
機器管理サービス１２２は、機器情報管理手段１２２１、アップデート手段１２２２、タイマー手段１２２３及び機器情報記憶部１２２４等から構成されている。
【００３７】
機器情報管理手段１２２１は、各画像形成装置３０より収集した画像形成装置３０の属性情報（機器情報）を管理するものである。機器情報管理手段１２２１は、アプリケーションからの要求に応じて、機器情報記憶部１２２４に保存されている機器情報の提供や削除等を行う。
【００３８】
機器情報記憶部１２２４は、機器情報管理手段１２２１が各画像形成装置３０より収集した機器情報が保存されている記憶領域である。
【００３９】
アップデート手段１２２２は、アプリケーションからの要求に基づいて、ファームウェア記憶部１２１３に保存されているファームウェアの画像形成装置３０へのアップロードや画像形成装置３０におけるファームウェアの適用処理の待ち合わせ等の一覧の処理（以下、「アップデート処理」という。）の制御を行うものである。
【００４０】
タイマー手段１２２３は、アップデート手段１２２２からの要求において指定された時期にアップデート手段１２２２に対してアップデート処理の開始を促すためのである。
【００４１】
なお、機器情報管理手段１２２１及びアップデート手段１２２２は、ＳＯＡＰインタフェースによって各種の要求を受け付けることができる。したがって、機器情報管理手段１２２１等に対するクライアント（アプリ１１１等）は、機器管理サービス１２２との間におけるネットワーク境界の有無にかかわらず、機器情報管理手段１２２１及びアップデート手段１２２２の機能を関数呼び出しによって呼び出すことが可能である。
【００４２】
一方、ネットワーク層１３０は、ＨＴＴＰクライアント１３１及びＦＴＰクライアント１３２等を含む。
【００４３】
ＨＴＴＰクライアント１３１は、ファイルサーバ２０とＨＴＴＰによる通信を行うためのクライアント機能である。ＨＴＴＰクライアント１３１は、主にファームウェア管理手段１２１がファイルサーバ２０よりファームウェアをダウンロードする際に利用される。
【００４４】
ＦＴＰクライアント１３２は、画像形成装置３０とＦＴＰによる通信を行うためのクライアント機能である。ＦＴＰクライアント１３１は、主にアップデート手段１２２２が画像形成装置３０に対しファームウェアをアップロードする際に利用される。
【００４５】
図４は、本発明の実施の形態における機器管理システムの構成例を示す図である。図４に示されるように本実施の形態における機器管理システム１は、機器管理サーバ１０と、ファイルサーバ２０と、画像形成装置（画像形成装置３１及び画像形成装置３２等）と、端末４０とがＬＡＮ又はインターネット等のネットワーク５０を介して接続されることにより構成されている。
【００４６】
本実施の形態においては、機器管理サーバ１０にアプリケーション層１１０、サービス層１２０及びネットワーク層１３０等が実装されているものとする。その場合、アプリケーション層１１０における各アプリケーション（アプリ２１等）は、例えば、Ｗｅｂアプリケーションとして実装される。当該Ｗｅｂアプリケーションは、端末に対して各種Ｗｅｂページを提供し、そのＷｅｂページ上における入力に基づいて、ファイルサーバ２０からのファームウェアのダウンロードや、画像形成装置３１等に対するファームウェアのアップロード等を実行する。
【００４７】
但し、必ずしもアプリケーション層１１０、サービス層１２０及びネットワーク層１３０を一台のハードウェアに実装する必要はない。例えば、アプリケーション層１１０の各種アプリケーションをＷｉｎｄｏｗｓ（登録商標）アプリケーション等として端末４０に実装するようにしてもよい。
【００４８】
端末４０は、機器管理サーバ１０から提供されるＷｅｂページを表示するためのＷｅｂブラウザを備えたＰＣ（Personal Computer）、ＰＤＡ（Personal Digital(Data) Assistants）、又は携帯電話等の端末であり、機器管理システム１のユーザが、機器管理システム１を利用する際に直接使用する。
【００４９】
次に、機器管理サーバ１０の詳細について説明する。図５は、本発明の実施の形態における機器管理サーバのハードウェア構成例を示す図である。図５の機器管理サーバ１０は、それぞれバスBで相互に接続されているドライブ装置１００と、補助記憶装置１０２と、メモリ装置１０３と、演算処理装置１０４と、インタフェース装置１０５とを有するように構成される。
【００５０】
機器管理サーバ１０での処理を実現する機器管理プログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。機器管理プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、機器管理プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。
【００５１】
補助記憶装置１０２は、インストールされた機器管理プログラムを格納すると共に、必要なファイルやデータ等を格納する。例えば補助記憶装置１０２は、機器管理プログラムの処理に必要な情報等を格納している。
【００５２】
メモリ装置１０３は、機器管理プログラムの起動指示があった場合に、補助記憶装置１０２から機器管理プログラムを読み出して格納する。演算処理装置１０４は、メモリ装置１０３に格納された機器管理プログラムに従って機器管理サーバ１０に係る機能を実行する。インタフェース装置１０５は例えばモデム、ルータ等で構成され、図４のネットワーク５０に接続するために用いられる。
【００５３】
以下、図３の機器管理システム１の処理手順について説明する。図６及び図７は、第一の実施の形態における機器管理システムによるファームウェアの更新処理を説明するためのシーケンス図である。
【００５４】
例えば、ユーザからの指示に基づいて端末４０のＷｅｂブラウザが、アップデート処理の対象とするファームウェア及び画像形成装置を選択させるためのＷｅｂページ（以下、「アップデート指示ページ」という。）の送信を要求すると、その要求に基づいてアプリ１１１が処理を開始する。
【００５５】
ステップＳ１０１において、アプリ１１１は、ファームウェア管理手段１２１１に対して、ファイルサーバ２０より機器管理サーバ１０に既にダウンロードされているファームウェアの一覧情報（以下、「ファームウェア一覧」という。）の提供を要求する。
【００５６】
ステップＳ１０１に続いてステップＳ１０２に進み、ファームウェア管理手段１２１１は、ファームウェア記憶部１２１３に保存されているファームウェアのファイル名の一覧情報に基づいてファームウェア一覧を生成し、当該ファームウェア一覧をアプリ１１１に対して出力する。
【００５７】
すなわち、ファームウェアは、そのファームウェア名をファイル名とするファイルとして保存されているため、そのファイル名の一覧情報は、ファームウェア名の一覧情報となる。なお、ファームウェア名は、当該ファームウェアが適用可能な画像形成装置の機種のモデル名に対応しているため、ファームウェア一覧は、機種の一覧にも該当する。
【００５８】
ステップＳ１０２に続いてステップＳ１０３に進み、アプリ１１１は、機器情報管理手段１２２１に対して、機器管理サーバ１０の管理下にある画像形成装置の一覧情報（以下、「機器一覧」という。）の提供を要求する。
【００５９】
ステップＳ１０３に続いてステップＳ１０４に進み、機器情報管理手段１２２１は、機器情報記憶部１２２４より機器一覧を取得し、当該機器一覧をアプリ１１１に対して出力する。
【００６０】
図８は、機器情報記憶部に管理されている機器一覧の構成例を示す図である。図８に示されるように機器一覧は、機器管理サーバ１０の管理下にある画像形成装置３１等について、ＩＰアドレス、ＭACアドレス及びモデル名等の情報から構成される。図８より、４台の画像形成装置が機器管理サーバ１０の管理下にあり、そのうち３台の画像形成装置の機種は「ＡＡＡ」であり、１台の機種は「ＢＢＢ」であることが分かる。
【００６１】
したがって、図８に示されるような機器一覧が、機器情報管理手段１２２１によってアプリ１１１に対して提供される。
【００６２】
ステップＳ１０４に続いてステップＳ１０５に進み、アプリ１１１は、ファームウェア一覧と機器一覧とに基づいてアップデート指示ページを生成する。アプリ１１１は、アップデート指示ページの生成に際し、ファームウェア一覧のモデル名と機器一覧のモデル名との論理積をとることにより、ファームウェア一覧の中から、機器管理サーバ１０の管理下にある画像形成装置の機種に対応したファームウェアの一覧情報を抽出する。
【００６３】
すなわち、アップデート指示ページは、アップデートの対象とするファームウェアをユーザに選択させるために、ファームウェアの一覧情報を表示する必要がある。ところが、ファームウェア一覧におけるすべてのファームウェアが、機器管理サーバ１０の管理下にある画像形成装置に対応しているものであるとは限らない。機器管理サーバ１０の管理下の画像形成装置の増減等が考えられるところ、かかる増減と同期をとって、ファームウェア記憶部１２１３内のファームウェアの増減が行われているとは限らないからである。
【００６４】
また、機器管理サーバ１０の管理下にある全ての機種に対するファームウェアが、ファームウェア一覧に含まれているとは限らない。当該ファームウェアが、まだファイルサーバ２０からダウンロードされていない場合もあるからである。
【００６５】
したがって、仮に、ファームウェア記憶部１２１３に基づくファームウェア一覧をそのままアップデート指示ページに掲載したとすると、機器管理サーバ１０の管理下にない機種に対するファームウェア、すなわち、アップデート処理の対象となり得ないファームウェアの情報までユーザに提示することにもなり得る。
【００６６】
そこで、かかる事態を回避し、有効なファームウェアの情報のみをユーザに提供するため、アプリ１１１は、ファームウェア一覧の中から機器管理サーバ１０の管理下にある画像形成装置に対応したもののみを抽出し、抽出されたもののみが提示されるようにアップデート指示ページを生成するのである。生成されたアップデート指示ページはアプリ１１１によって端末４０のＷｅｂブラウザに送信され、Ｗｅｂブラウザによって表示される。
【００６７】
なお、図８の機器一覧は、機種ＡＡＡと機種ＢＢＢとの情報によって構成されているため、本実施の形態においては、ファームウェア一覧の中から、機種ＡＡＡ及び機種ＢＢＢに対応するファームウェアが抽出される。ここで抽出されたファームウェアの一覧を以下、「抽出ファームウェア一覧」という。
【００６８】
図９は、アップデート指示ページの表示例を示す図である。図９に示されるように、アップデート指示ページ４１０は、コンボボックス４１１、テーブル４１２、アップデート時期指定領域４１３、及びアップデートボタン４１４等から構成されている。
【００６９】
コンボボックス４１１は、抽出ファームウェア一覧の中から実際にアップデートの対象とするファームウェアを選択するためのものである。初期状態では、抽出ファームウェア一覧における先頭のファームウェア（以下、「先頭ファームウェア」という。）のファームウェア名が表示されている。
【００７０】
テーブル４１２は、コンボボックス４１１において選択されたファームウェアの対応する機種に属する画像形成装置の一覧が表示される領域である。すなわち、コンボボックス４１１において現在選択されているファームウェアと異なるファームウェアを選択すると、新たに選択されたファームウェアの対応する機種に属する画像形成装置の一覧が、テーブル４１２に表示される。また、テーブル４１２において、チェックボタン４１５をチェックすることにより、アップデート処理の対象とする画像形成装置を選択することができる。
【００７１】
アップデート時期指定領域４１３は、アップデート処理を開始するタイミング（時期）を選択させるための領域である。例えば、すぐにアップデート処理を実行するか、又は時間指定によってアップデート処理を実行するかを指定することができる。
【００７２】
アップデートボタン４１４は、アップデート処理の実行の指示を機器管理サーバ１０に対して送信するためのボタンである。
【００７３】
アップデート指示ページ４１０において、アップデート処理の対象とするファームウェア及び画像形成装置（以下、それぞれ「対象ファームウェア」、「対象機器」という。）が選択され、アップデートボタン４１４がクリックされると、端末４０のＷｅｂブラウザより、アプリ１１１に対してアップデート処理の実行要求が送信される。なお、Ｗｅｂブラウザからの要求には、対象機器のＩＰアドレス（以下、「機器アドレス」という。）、対象ファームウェアのファームウェアＩＤ、対象ファームウェアのバージョン情報、及びアップロードを実行する時期（以下、「スケジュール情報」という。）等の情報が含まれている。
【００７４】
ステップＳ１０６に進み、アプリ１１１は、Ｗｅｂブラウザからの要求に基づいて、機器アドレス、ファームウェアＩＤ、対象ファームウェアのバージョン情報及びスケジュール情報等を引数としてアップデート手段１２２２に対してアップデート処理の実行を要求する。
【００７５】
ステップＳ１０６に続いてステップＳ１０７に進み、アップデート手段１２２２は、アップデート処理に先立ってチケット管理手段１２１２に対してファームウェアＩＤを引数として対象ファームウェアの利用の予約（利用予約）を要求する。
【００７６】
ステップＳ１０７に続いてステップＳ１０８に進み、チケット管理手段１２１２は、利用予約の登録処理を実行し、その結果として生成された利用予約を証明するデータ（以下、「チケット」という。）をアップデート手段１２２２に対して出力（発行）する。
【００７７】
図１０は、チケット管理手段による利用予約の登録処理を説明するためのフローチャートである。
【００７８】
まず、ファームウェア記憶部１２１３を参照して対象ファームウェアの存在を確認する（Ｓ１０８ａ）。ファームウェアの存在が確認できたら、対象ファームウェアに対して利用予約の一覧情報（以下、「予約一覧」という。）が関連付けられているか否かを確認する。ここで、予約一覧とは、利用予約ごとに割り当てられる利用予約があった旨（チケットを発行した旨）を示す情報（以下、「予約情報」という。）の一覧を管理するためのデータであり、ファームウェアごとに割り当てられる。なお、各ファームウェアに対して割り当てられた予約一覧の集合が、チケット管理情報１２１４に相当する。
【００７９】
予約一覧は、例えば、配列やリストによって実装することができる。図１１は、予約一覧を配列によって実装した例を示す図である。図１１において、各ファームウェアには配列が関連付けられている。ここで、各配列が予約一覧に該当し、配列の各要素に格納された値が予約情報に該当する。各要素に格納された値は、各利用予約を識別するための情報であり予約ＩＤという。すなわち、第一の実施の形態において予約情報は予約ＩＤのみによって構成されている。
【００８０】
また、図１２は、予約一覧をリストによって実装した例を示す図である。図１２において、各ファームウェアには、リストが関連付けられている。ここで、リスト全体が予約一覧に該当し、リストの各要素に格納された値が「「利用予約があった旨を示す情報」に該当する。
【００８１】
図１１及び図１２において、ファームウェアＤには、配列又はリストが関連付けられていないが、これは、ファームウェアＤについては利用予約が一つもされていないことを示している。なお、各ファームウェアと配列又はリストとの関連付けは、具体的には、ファームウェアを一意に識別する情報、例えば、ファームウェアＩＤ、ファームウェア名又はファームウェアのパスと、配列又はリストとの関連付けとして実装すればよい。
【００８２】
対象ファームウェアに予約一覧が割り当てられていない場合は（例えば、ファームウェアＤのような場合）ステップＳ１０８ｃに進み、予約一覧を生成する（Ｓ１０８ｃ）。予約一覧の生成は、予約一覧を配列によって実装する場合は配列の生成が該等し、リストによって実装する場合は、ルート要素の生成が該等する。ここでルート要素とは、図１２において符号８１、８２又は８３によって示される、先頭の要素に対するアドレスが格納される要素をいう。なお、配列の場合は、すべての要素を当該要素が未使用であることを示す値（例えば「０」）で初期化しておく。
【００８３】
ステップＳ１０８ｂ又はステップＳ１０８ｃに続いてステップＳ１０８ｄに進み、対象ファームウェアの予約一覧に対して予約情報を割り当てる。予約情報の割り当ては、予約一覧を配列によって実装する場合は、未使用の要素のうちの先頭の要素に予約ＩＤを登録することによって行う。また、予約一覧をリストによって実装する場合は、新たな要素を生成し、その要素に予約ＩＤを登録することによって行う。予約ＩＤの値は、例えば、既に登録されている予約ＩＤの中で最大の値をインクリメントしたものとすればよい。
【００８４】
ステップＳ１０８ｄに続いてステップＳ１０８ｅに進み、対象ファームウェアに対するチケットを生成する。
【００８５】
図１３は、チケットのデータ構造の例を示す図である。図１３に示されるように、チケットには対象ファームウェアのファームウェアＩＤと予約ＩＤとが記録される。
【００８６】
ステップＳ１０８ｅに続いてステップＳ１０８ｆに進み、生成したチケットを暗号化し、暗号化されたチケットをアップデート手段１２２２に対して発行する。
【００８７】
これで、対象ファームウェアに対する予約情報（予約ＩＤ）がチケット管理情報１２１４に登録されたことになり、また、利用予約を要求したアップデート手段１２２２は、利用予約に対して発行されたチケットを入手したことになる。
【００８８】
図６に戻る。ステップＳ１０８に続いてステップＳ１０９に進み、アップデート手段１２２２は、タイマー手段１２２３に対してスケジュール情報を引数として、スケジュール情報に示された時期（以下、「アップデート開始時間」という。）に、自分（アップデート手段１２２２）に対してファームウェアのアップデート処理の開始を指示するように要求し（タイマーのセット）、アプリ１１１に対しては、アップデート要求（Ｓ１０６）を受け付けた旨を応答する（Ｓ１１０）。
【００８９】
タイマーをセットされたタイマー手段１２２３は、アップデート開始時間になるまで待機し、アップデート開始時間になるとアップデート手段１２２２に対してファームウェアのアップデート処理の開始を指示する（Ｓ１１１）。
【００９０】
ステップＳ１１１に続いてステップＳ１１２に進み、アップロード手段１２２は、タイマー手段１２２３からの指示に基づいて、ファームウェア管理手段１２１１に対して対象ファームウェアに対するチケットを引数として対象ファームウェアの提供を要求する。
【００９１】
ステップＳ１１２に続いてステップＳ１１３に進み、ファームウェア管理手段１２１１は、チケットを引数として対象ファームウェアのファームウェアＩＤをチケット管理手段１２１２に問い合わせる。ファームウェアＩＤをわざわざチケット管理手段１２１２に問い合わせるのは、チケットはチケット管理手段１２１２によって暗号化されているため、チケットの内容を確認できるのはチケット管理手段１２１２だけであるからであり、また、ファームウェア管理手段１２１１は、提供が要求されている対象ファームウェアを特定するためにファームウェアＩＤを知る必要があるからである。
【００９２】
ステップＳ１１３に続いてステップＳ１１４に進み、チケット管理手段１２１２は、チケットを復号化し、チケットに記録されているファームウェアＩＤをファームウェア管理手段１２１１に対して応答する。なお、ここで、チケット管理手段１２１２が、対象ファームウェアの予約一覧（配列又はリスト）を参照することにより、チケットに対応する予約情報（要素）が確かに存在するか否かを確認するようにしてもよい。
【００９３】
ステップＳ１１４に続いてステップＳ１１５に進み、ファームウェア管理手段１２１１は、ファームウェアＩＤに基づいて対象ファームウェアをファームウェア記憶部１２１３より取得し、取得した対象ファームウェアをアップデート手段１２２２に対して出力する。
【００９４】
ステップＳ１１５に続いてステップＳ１１６（図７）に進み、アップデート手段１２２２が、ＦＴＰクライアント１３２に対して対象ファームウェアのアップロードを要求すると、ＦＴＰクライアント１３２は、対象ファームウェアをｐｕｔコマンドによって対象機器（例えば、画像形成装置３１）に対してアップロードする。
【００９５】
対象機器においては、対象ファームウェアのアップデートが実行され、その処理結果がＦＴＰクライアント１３２を介してアップデート手段１２２２に通知される（Ｓ１１８、Ｓ１１９）。アップデート手段１２２２は、処理結果を機器情報管理手段１２２１に通知し（Ｓ１２０）、処理結果が機器情報管理手段１２２１において管理される。
【００９６】
なお、アップデート指示ページ４１０（図９）において、対象機器として複数の機器が選択されていた場合は、他の対象機器についてもステップＳ１１２からステップＳ１２０までと同様の処理が繰り返される（Ｓ１２１〜Ｓ１２９）。
【００９７】
全ての対象機器に対するアップデート処理が終わると、アップデート手段１２２２は、チケットを引数として対象ファームウェアの利用予約の解除をチケット管理手段１２１２に対して要求する（Ｓ１３０）。
【００９８】
ステップＳ１３１に続いてステップＳ１３１に進み、チケット管理手段１２１２は、提示されたチケットに対応する予約情報を無効とする。
【００９９】
図１４は、チケット管理手段による予約情報の無効化処理を説明するためのフローチャートである。
【０１００】
まず、チケットを復号化し、チケットに記録されているファームウェアＩＤに基づいて対象ファームウェアを特定する（Ｓ１３１ａ）。対象ファームウェアに対する予約一覧より、チケットに記録されている予約ＩＤが格納されている要素を検索し（Ｓ１３１ｂ）、当該要素に格納されている予約情報を無効化する（Ｓ１３１ｃ）。
【０１０１】
ここで、予約情報の無効化は、予約一覧を配列によって実装している場合は、対応する要素の予約ＩＤの値を当該要素が未使用である旨を示す値（例えば「０」）とすればよい。また、予約一覧をリストによって実装している場合は、対応する要素を削除し、リンクの張り直し等を実行すればよい。
【０１０２】
ステップＳ１３１ｃに続いてステップＳ１３１ｄに進み、対象ファームウェアに対して予約情報が存在するか否かを判断する。すなわち、予約一覧を配列によって実装している場合は、例えば、０以外の値を格納している要素が存在するか否かを判断し、リストによって実装している場合は、ルート要素以外に要素が存在するか否かを判断する。
【０１０３】
対象ファームウェアに対してまだ予約情報が存在する場合は処理を終了する。一方、対象ファームウェアに対する予約情報が一つもない場合は、対象ファームウェアに対する予約一覧自体を無効化する。予約一覧の無効化は、予約一覧を配列によって実装している場合は、配列自体の削除が該当し、リストによって実装している場合は、ルート要素の削除が該当する。但し、予約一覧の無効化は必須ではない。すなわち、対象ファームウェアに予約情報が存在しないことが識別できればよく、それは、対象ファームウェアに対する配列又はリストが存在しないことによって表現してもよいし、対象ファームウェアに対する配列又はリストは存在するが、それらの要素が存在しないことによって表現してもよい。
【０１０４】
上述したように、チケット管理手段１２１２によって各ファームウェアの利用予約の有無が管理されている。したがって、ファームウェアの削除要求があった場合等に、当該ファームウェアに対する利用予約の有無に基づいて、削除要求等の許否を判断することができ、利用予約されているファームウェアの削除等を防止することができる。
【０１０５】
例えば、図６のステップＳ１４１において、端末４０とは異なる端末からの要求に基づいて、アプリ１１２がファームウェア管理手段１２１１に対して対象ファームウェアの削除を要求したとする。ファームウェア管理手段１２１１は、ファームウェアＩＤを引数としてチケット管理手段１２１２に対して対象ファームウェアは利用予約されているか否かの確認を要求する（Ｓ１４２）。
【０１０６】
チケット管理手段１２１２は、対象ファームウェアに対する予約一覧を参照し、対象ファームウェアに予約情報が登録されているか否かを確認する。ここでは、既にステップＳ１０８において予約情報が登録されているため、チケット管理手段１２１２は、対象ファームウェアは利用予約されている旨をファームウェア管理手段１２１１に対して応答する（Ｓ１４３）。
【０１０７】
ファームウェア管理手段１２１１は、チケット管理手段１２１２からの応答に基づいて、アプリ１１２に対して対象ファームウェアの削除はできない旨を応答する（Ｓ１４４）。このように、アプリ１１２からの削除要求は却下され、対象ファイルの削除が防止される。
【０１０８】
なお、ステップＳ１４２において対象ファームウェアの利用予約の確認が要求された際に、チケット管理手段１２１２によって実行される処理の詳細について図１５を用いて説明する。図１５は、チケット管理手段による利用予約の確認処理を説明するためのフローチャートである。
【０１０９】
まず、ファームウェアＩＤによって特定される対象ファームウェアの予約一覧はあるかを確認し（Ｓ１４３ａ）、予約一覧（配列又はリスト）が無い場合（Ｓ１４３ａでＮｏ）、又は予約一覧はあっても予約一覧に予約ＩＤが一つも登録されていない場合（Ｓ１４３ｂでＮｏ）は、対象ファームウェアは利用予約されていない旨を応答する（Ｓ１４３ｃ）。一方、対象ファームウェアに予約一覧が関連付けられており（Ｓ１４３ａでＹｅｓ）、予約一覧に一つでも予約ＩＤが登録されている場合（Ｓ１４３ｂでＹｅｓ）は、対象ファームウェアは利用予約されている旨を応答する（Ｓ１４３ｄ）。
【０１１０】
ところで、第一の実施の形態において、チケット管理手段１２１２は、予約ＩＤのみを予約情報として管理している。この場合、それぞれの利用予約がいずれのユーザからの指示に基づいてなされたのかを識別することはできない。したがって、一のユーザからの指示に基づく利用予約が、他のユーザによって不正に解除されてしまうといった事態が発生しうる。そこで、第二の実施の形態として、利用予約に係るユーザを識別できるようにした例を説明する。
【０１１１】
図１６及び図１７は、第二の実施の形態における機器管理システムによるファームウェアの更新処理を説明するためのシーケンス図である。第二の実施の形態における処理の流れは第一の実施の形態におけるものと基本的に同じであるため、ここでは一つ一つのステップは追わずに、相違点に焦点を当てて説明する。
【０１１２】
第二の実施の形態においては、アプリ１１１は、アップデート手段１２２２に対してアップデート処理の実行を要求する際に、アップデート処理の指示を行ったユーザのユーザ名も引数として指定する（Ｓ２０６）。引数に指定するユーザ名は、例えば、アプリ１１１がアップデート指示ページ４１０を端末４０に送信する前に、ユーザ名及びパスワード等のユーザ情報を入力させるためのＷｅｂページ（以下、「ログインページ」という。）を端末４０に送信するようにし、ログインページに入力されたユーザ名を用いても良い。
【０１１３】
アップデート処理の実行を要求されたアップデート手段１２２２は、チケット管理手段１２１２に対して対象ファームウェアの利用予約を要求する際に、ファームウェアＩＤに加えユーザ名を引数に指定する（Ｓ２０７）。
【０１１４】
チケット管理手段１２１２は、対象ファームウェアに対して予約情報を登録するにあたり、予約ＩＤだけでなくユーザ名も予約情報に含めて登録する。したがって、配列によって実装した場合は、予約一覧は図１８のように構成される。
【０１１５】
図１８は、第二の実施の形態において予約一覧を配列によって実装した例を示す図である。図１８に示されるように第二の実施の形態においては、配列の各要素は、予約ＩＤとユーザ名とからなる構造体として構成される。
【０１１６】
また、リストによって実装した場合は、予約一覧は図１９のように構成される。図１９は、第二の実施の形態において予約一覧をリストによって実装した例を示す図である。図１９に示されるようにリストによって実装する場合も、各要素は、予約ＩＤとユーザ名とからなる構造体として構成される。
【０１１７】
但し、ステップＳ２０８においてチケット管理手段１２１２より発行されるチケットに記録される情報は、第一の実施の形態と同様に予約ＩＤと対象ファームウェアのファームウェアＩＤのみである。
【０１１８】
その後、タイマー手段１２２３からのアップデート処理の開始指示に基づいて（Ｓ２１１）アップデート手段１２２２がファームウェア管理手段１２１１に対して対象ファームウェアの提供を要求する際に、チケットと共にユーザ名が引数として指定される（Ｓ２１２）。
【０１１９】
ファームウェア管理手段１２１１が、チケット及びユーザ名を引数として対象ファームウェアのファームウェアＩＤをチケット管理手段１２１２に問い合わせると、チケット管理手段１２１２は、チケット内のファームウェアＩＤをファームウェア管理手段１２１１に対して応答する。この際、チケット管理手段１２１２は、チケットに記録されているファームウェアＩＤによって対象ファームウェアに対する予約一覧（配列又はリスト）を特定し、チケットに記録されている予約ＩＤを当該予約一覧の中から検索することによりチケットに対応する利用予約の有無を確認することができるが、更に、当該予約ＩＤと同じ要素に格納されているユーザ名と引数に指定されたユーザ名とを比較することにより、対象ファームウェアの提供を要求しているユーザが利用予約を行ったユーザであるか否かを確認することができる。
【０１２０】
したがって、例えば、図１７のステップＳ２２１において、対象ファームウェアに対するチケットを不正に入手した他のユーザ（ユーザＢ）からの要求に基づいて、アップデート手段１２２２が対象ファームウェアの提供をファームウェア管理手段１２１１に要求したとする。この場合、ユーザ名として「ユーザＢ」がファームウェア管理手段１２１１に通知され、ファームウェア管理手段１２１１は、「ユーザＢ」を引数に指定してチケット管理手段１２１２に対してファームウェアＩＤの問い合わせを行うことになる。そうすると、チケット管理手段１２１２は、ファームウェアＩＤと予約ＩＤとによって特定された要素に格納されているユーザ名が「ユーザＢ」でないことにより、要求元のユーザが正当なユーザでないことを検出することができ、ファームウェアＩＤの提示を拒否する旨の応答をする（Ｓ２２３）。ファームウェア管理手段１２１１は、チケット管理手段１２１２からの拒否応答に基づいて、ファームウェアの提供を拒否する（Ｓ２２３）。
【０１２１】
また、ステップＳ２２６において、不正ユーザ（ユーザＢ）からの要求に基づいて、利用予約の解除要求がチケット管理手段１２１２になされた場合にも同様に、チケット管理手段１２１２は、解除要求の際に引数に指定されたユーザ名（ユーザＢ）を予約一覧に登録されているユーザ名と比較することにより、当該解除要求に係るユーザは利用予約を行ったユーザではないことを検出し、利用予約の解除を拒否する（Ｓ２２７）。
【０１２２】
このように、第二の実施の形態における予約情報には、ユーザ名も含めて管理され、ファームウェア又は予約情報にアクセスしようとする際にはユーザ名の提示が求められるため、利用予約をしたユーザでないユーザが不正にチケットを入手した場合に、当該不正ユーザによるファームウェアへのアクセスを防止することが可能となる。
【０１２３】
ところで、上記においては、一度チケットが発行されると、利用予約の目的とされていた処理、すなわち、ファームウェアのアップデート処理が完了した後でも、チケットを受け取った側（アップデート手段１２２２）から明示的に利用予約の解除要求がなされない限り当該チケットに基づくファームウェアへのアクセスは許可されてしまう。このような事態の発生はセキュリティ上の観点からも好ましいものではない。そこで、第三の実施の形態として、目的とされる処理の実行に必要な時間が経過した後は予約情報を無効とすることにより、チケットが目的の範囲を超えて長期にわたり有効なものとして扱われるのを防止した例について説明する。
【０１２４】
図２０は、第三の実施の形態におけるソフトウェア管理サービスの構成例を説明するための図である。図２０は、図３よりソフトウェア管理サービス１２１のみを抜き出して表示したものであるが、第三の実施の形態においては、チケット用タイマー手段１２１５及びファームウェアメタ情報テーブル１２１６が構成要素として新たに追加されている。
【０１２５】
チケット用タイマー手段１２１５は、チケットの有効期限を管理するためのものであり、期限管理を要求されたチケットの有効期限が切れた際にその旨をチケット管理手段１２１２に通知する。
【０１２６】
ファームウェアメタ情報テーブル１２１６は、各ファームウェアのメタ情報を管理しているテーブルであるである。
【０１２７】
以下、図２０のソフトウェア管理サービス１２１を有する機器管理システム１の処理手順について説明する。図２１及び図２２は、第三の実施の形態における機器管理システムによるファームウェアの更新処理を説明するためのシーケンス図である。第三の実施の形態においても、第二の実施の形態と同様、第一の実施の形態との相違点に焦点を当てて説明する。
【０１２８】
第三の実施の形態においては、アップデート手段１２２２は、チケット管理手段１２１２に対象ファームウェアの利用予約を行う際に、ファームウェアＩＤに加えて、スケジュール情報とアップデート対象として指定された機器の数（対象機器数）とを引数に指定する（Ｓ３０７）。
【０１２９】
ステップＳ３０７に続いてステップＳ３０８に進み、チケット管理手段１２１２は、ファームウェア管理手段１２１１に対し、ファームウェアＩＤを引数として一台の機器に対する対象ファームウェアのアップデート処理に要する時間（更新所要時間）を問い合わせる。
【０１３０】
ステップＳ３０８に続いてステップＳ３０９に進み、ファームウェア管理手段１２１１は、ファームウェアＩＤに基づいて対象ファームウェアの更新所要時間をファームウェアメタ情報テーブル１２１６より取得し、取得した更新所要時間をチケット管理手段１２１２に対して応答する。
【０１３１】
図２３は、ファームウェアメタ情報テーブルの構成例を示す図である。図２３に示されるように、ファームウェアメタ情報テーブル１２１６は、ファームウェアごとに、ファームウェアＩＤ、ファームウェア名、バージョン、ファームウェアの（ファームウェア記憶部１２１３における）パス、及び更新所要時間等を管理している。
【０１３２】
したがって、ファームウェア管理手段１２１１は、ファームウェアメタ情報テーブル１２１６において対象ファームウェアの更新所要時間として登録されている値をチケット管理手段１２１２に対して応答する。
【０１３３】
ステップＳ３０９に続いてステップＳ３１０に進み、チケット管理手段１２１２は、スケジュール情報と更新所要時間と対象機器数とに基づいてチケットの有効期限（チケットを無効とする時刻）を算出する。すなわち、スケジュール情報は、アップデート処理の開始時期である。したがって、アップデート処理全体の所要時間が分かれば、スケジュール情報に示された時刻に、アップデート処理全体の所要時間を足すことによってアップデート処理の終了時刻を算出でき、アップデート処理全体の所要時間は、機器一台当たりのアップデート処理に要する時間（更新所要時間）に対象機器数を乗ずれば算出できる。なお、安全を見てバッファとしての時間を更に加算するようにしてもよい。
【０１３４】
ステップＳ３１０に続いてステップＳ３１１に進み、チケット管理手段１２１２は、有効期限とチケットとを引数としてチケット用タイマー手段１２１５に対して、有効期限に示された時刻になったら自分（チケット管理手段１２１２）に対してチケットに対応した利用予約の解除を要求するように指示する。
【０１３５】
ステップＳ３１１に続いてステップＳ３１２に進み、上記（Ｓ１０８等）と同様の手順でチケット管理手段１２１２がアップデート手段１２２２に対してチケットを発行すると、アップデート手段１２２２の制御によってアップデート処理が実行される（Ｓ３１３〜Ｓ３２４）。
【０１３６】
一方、有効期限に示された時刻まで、すなわち、アップデート処理全体に必要な時間だけ待機していたチケット用タイマー手段１２１５は、有効期限の到来を検知すると対象ファームウェアの利用予約に対するチケットを引数としてチケット管理手段１２１２に対して当該利用予約の解除を要求すると（Ｓ３２５）、チケット管理手段１２１２は、上述した手順（Ｓ１３１等）と同様に、チケットに対応した予約情報を無効とする。
【０１３７】
したがって、その後に同一のチケットを引数したファームウェアの提供要求がファームウェア管理手段１２１１に対してあったとしても（Ｓ３２７）、ファームウェア管理手段１２１１よりファームウェアＩＤの問い合わせを受けたチケット管理手段１２１２は、当該チケットに対応する予約情報は存在しないことより当該チケットは無効であることを検出することができ（Ｓ３２８、Ｓ３２９）、ファームウェア管理手段１２１１は、ファームウェアの提供を拒否することができる。
【０１３８】
上述したように、第三の実施の形態においては、チケット、すなわち、利用予約の有効期限を管理し、また、有効期限は目的とされている処理に必要な時間に基づいて算出されているため、目的とされている処理の実行を確保しつつ、目的を達したチケットがその後も有効なものとして扱われることを防止することができる。
【０１３９】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【０１４０】
【図１】遠隔操作によって機器のファームウェアを更新する手順を説明するための図である。
【図２】本発明の実施の形態における機器管理システムのソフトウェアアーキテクチャの例を示す図である。
【図３】サービス層及びネットワーク層の詳細を説明するための図である。
【図４】本発明の実施の形態における機器管理システムの構成例を示す図である。
【図５】本発明の実施の形態における機器管理サーバのハードウェア構成例を示す図である。
【図６】第一の実施の形態における機器管理システムによるファームウェアの更新処理を説明するためのシーケンス図である。
【図７】第一の実施の形態における機器管理システムによるファームウェアの更新処理を説明するためのシーケンス図である。
【図８】機器情報記憶部に管理されている機器一覧の構成例を示す図である。
【図９】アップデート指示ページの表示例を示す図である。
【図１０】チケット管理手段による利用予約の登録処理を説明するためのフローチャートである。
【図１１】予約一覧を配列によって実装した例を示す図である。
【図１２】予約一覧をリストによって実装した例を示す図である。
【図１３】チケットのデータ構造の例を示す図である。
【図１４】チケット管理手段による予約情報の無効化処理を説明するためのフローチャートである。
【図１５】チケット管理手段による利用予約の確認処理を説明するためのフローチャートである。
【図１６】第二の実施の形態における機器管理システムによるファームウェアの更新処理を説明するためのシーケンス図である。
【図１７】第二の実施の形態における機器管理システムによるファームウェアの更新処理を説明するためのシーケンス図である。
【図１８】第二の実施の形態において予約一覧を配列によって実装した例を示す図である。
【図１９】第二の実施の形態において予約一覧をリストによって実装した例を示す図である。
【図２０】第三の実施の形態におけるソフトウェア管理サービスの構成例を説明するための図である。
【図２１】第三の実施の形態における機器管理システムによるファームウェアの更新処理を説明するためのシーケンス図である。
【図２２】第三の実施の形態における機器管理システムによるファームウェアの更新処理を説明するためのシーケンス図である。
【図２３】ファームウェアメタ情報テーブルの構成例を示す図である。
【符号の説明】
【０１４１】
１            機器管理システム
１０          機器管理サーバ
２０          ファイルサーバ
３０、３１、３２          画像形成装置
４０          端末
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        演算処理装置
１０５        インタフェース装置
１１０        アプリケーション層
１１１、１１２、１１３        アプリ（アプリケーション）
１２０        サービス層
１２１        ソフトウェア管理サービス
１２２        機器管理サービス
１３０        ネットワーク層
１３１        ＨＴＴＰクライアント
１３２        ＦＴＰクライアント
１２１１      ファームウェア管理手段
１２１２      チケット管理手段
１２１３      ファームウェア記憶部
１２１４      チケット管理情報
１２１５      チケット用タイマー手段
１２１６      ファームウェアメタ情報テーブル
１２２１      機器情報管理手段
１２２２      アップデート手段
１２２３      タイマー手段
１２２４      機器情報記憶部
Ｂ    バス
【図１】
2005196462.tif 000003
【図２】
2005196462.tif 000004
【図３】
2005196462.tif 000005
【図４】
2005196462.tif 000006
【図５】
2005196462.tif 000007
【図６】
2005196462.tif 000008
【図７】
2005196462.tif 000009
【図８】
2005196462.tif 000010
【図９】
2005196462.tif 000011
【図１０】
2005196462.tif 000012
【図１１】
2005196462.tif 000013
【図１２】
2005196462.tif 000014
【図１３】
2005196462.tif 000015
【図１４】
2005196462.tif 000016
【図１５】
2005196462.tif 000017
【図１６】
2005196462.tif 000018
【図１７】
2005196462.tif 000019
【図１８】
2005196462.tif 000020
【図１９】
2005196462.tif 000021
【図２０】
2005196462.tif 000022
【図２１】
2005196462.tif 000023
【図２２】
2005196462.tif 000024
【図２３】
2005196462.tif 000025