以下、本発明を実施するための形態について図面を用いて説明する。
(実施例1)
[システムの全体構成]
図1は、ネットワーク機器のFWの更新などを制御するための管理システムの全体構成を示す模式図である。
図1において、101は、配信サーバーやFWのストレージサービスサーバーなどを含む配信システムである。111は、ネットワーク機器の一例である複合機(MFP)である。121、122は、クライアント端末である。131〜133は、ネットワークである。図において、MFP111、クライアント端末121、122は、ネットワーク131〜134に複数台接続されていることを想定している。
配信システム101は、配信サーバーとしてのサーバーコンピュータを含む。配信システム101は、ネットワーク機器向けのFWのバージョン管理や、配信指示などを行う。MFP111は、Multifunction Printerである。MFP111は、顧客のオフィス等に設置されている。
クライアント端末121、122は、例えば、デスクトップパソコン、ノートパソコンであり、Webブラウザを実行する環境が内蔵されている。クライアント端末121は、MFPのメーカーの機器管理の部門のクライアント端末を示しており、配信システム101に新しいFWの登録などを行うための端末である。クライアント端末122は、MFPの販売会社に所属するオペレータが利用するクライアント端末を示しており、MFP初期設置用のアプリケーションが内蔵されている。
ネットワーク131〜134は、インターネット等のLAN、WAN、電話回線、専用デジタル回線、ATM、フレームリレー回線、ケーブルテレビ回線、データ放送用無線回線などのいずれかである。またこれらの組み合わせにより実現される、いわゆる通信ネットワークである。
[サーバーコンピュータおよびクライアント端末のハードウェア構成]
図2は、本発明の実施形態に係る配信システム101内の配信サーバー、クライアント端末121、122のハードウェア構成例を示している。本実施形態のサーバーコンピュータおよびクライアント端末は、図2に示すような一般的なコンピュータのハードウェア構成を適用できる。
図2は、一般的なコンピュータのハードウェア構成図である。CPU201は、メモリ(ROM203やRAM202)にロードされたOSやアプリケーション等のプログラムを実行する。ここで、OSとはコンピュータ上で稼働するオペレーティングシステムの略語である。後述する各フローチャートの処理は、このCPU201により実行されるプログラムによって実現される。すなわち、該プログラムは、コンピュータを、後述するフローチャートの各処理を実行する各処理部として機能させる。RAM202は、CPU201の主メモリであり、ワークエリア等として機能する。キーボードコントローラ204は、キーボード208や図示しないマウスなどのポインティングデバイスからのキー入力やポイント入力などを制御する。ディスプレイコントローラ205は、表示用デバイスであるディスプレイ209の表示を制御する。ディスクコントローラ206は、各種データを記憶する外部記憶装置であるハードディスク(HD)210へのデータアクセスを制御する。NIC207は、ネットワークインターフェース(以下、インタフェースを「IF」と略す)であり、ネットワーク131、133、134を介して接続された他の機器との通信制御処理を実行する。ハードディスク(HD)210には、OS、アプリケーション、サービス群のプログラム等が格納されると共に、OSによりファイルシステムが構築され、OSの管理下で各種ファイルが格納される。211は、相互接続バスであり、CPU201により各ブロック間の通信を仲介する。
[MFPのハードウェア構成]
図3は、MFP111のハードウェア構成例である。
MFP111は、コントローラ310と、プリンタ301、スキャナ302、操作部303から構成される。コントローラ310は、CPU311、RAM312、HDD313、ネットワークIF314、プリンタIF315、スキャナIF316、FAXIF319、操作部IF317、拡張IF318から構成される。CPU311は、RAM312、HDD313、ネットワークIF314、プリンタIF315、スキャナIF316、FAXIF319、操作部IF317、拡張IF318との間で、データを授受することが可能である。また、CPU311は、HDD313から読みだしたMFPのFWのプログラムをRAM312に展開し、展開したRAM312に記憶されたプログラムを実行する。
HDD313には、CPU311で実行可能なMFPのFWのプログラムや、デバイスで使用する設定値、ユーザーから依頼された処理に関するデータ等を記憶しておくことが可能である。RAM312は、HDD313に記憶されたMFPのFWのプログラムを展開してCPU311から読みだし可能とし、プログラムの実行に必要な各種のデータを記憶しておくことが可能である。
ネットワークインターフェース314は、ネットワーク132を通じて、MFPとネットワーク通信を行うためのインターフェース(以降、IF)である。データ受信を行ったことをCPU311に伝達すると共に、CPU311からの指示に基づき、RAM312上のデータをネットワーク132に送信する。プリンタIF315は、CPU311から送信された画像データをプリンタ301に送信するIFである。また、プリンタ301から受信したプリンタの状態をCPU311に伝達する。スキャナIF316は、CPU311から送信された画像読み取り指示をスキャナ302に送信するIFである。また、スキャナ302から受信した画像データをCPU311に通知する。FAXIF319は、CPU311から送信された画像データを、電話番号などのFAX送信先の情報と共に、FAX304に送信するIFである。また、FAX304から受信した画像データを、電話番号などのFAX送信元の情報と共に、CPU311に伝達する。操作部IF317は、操作部303から入力されたユーザーからの指示をCPU311に伝達するIFである。また、ユーザーが操作するための画面情報を操作部303に伝達する。
プリンタ301は、プリンタIF315から受信した画像データを用紙に印刷する。また、プリンタの状態をプリンタIF315に伝達する。スキャナ302は、スキャナIF316から受信した画像読み取り指示に従って、スキャナに置かれた用紙を読み取りデジタルデータ化してスキャナIF316に伝達する。また、スキャナの状態をスキャナIF316に伝達する。FAX304は、図示しない電話通信網やFAX通信網と接続されている。FAX304は、FAXIF319から受信した画像データを同じく受信したFAX送信先の情報に基づき、FAX送信する。また、FAX受信した画像データを、その送信元の情報と共に、FAXIF319に伝達する。更に、FAXの状態を、FAXIF319に伝達する。操作部303は、MFP111をユーザーから操作することを可能にする。例えばタッチパネルを有する液晶画面を具備し、ユーザーに操作画面を提供すると共に、ユーザーからの操作を受け付ける。拡張IF318は、画像形成装置101に外部機器を接続することを可能とするIFである。例えば、USB(Universal Serial Bus)形式のIFを具備し、USBメモリなどの可搬性のある外部記憶装置を接続してデータの読み取り、書き込みを行うことが可能である。
[初期設定用アプリケーションのFW構成設定ユーザーインターフェース]
図4は、本発明のクライアント端末122で動作する初期設定用アプリケーションのFW構成の設定を行うためのユーザーインターフェース(以降、UI)の一例である。
初期設定用アプリケーションは、MFPの初期設置の際に必要な各種パラメータを、オペレータにより指定された設定値に基づき、初期設置用の構成ファイルに出力するアプリケーションである。出力された初期設置用の構成ファイルは、USBメモリなどの外部記憶装置に保存される。初期設定用アプリケーションは、RAM202にロードされ、CPU201により実行される。初期設定用アプリケーションのオペレータは、MFPの初期設置を行うサービスエンジニア、または、初期設置設定を専業とするバックオフィスメンバーなどである。オペレータは、初期設定用アプリケーションのUIで設置先の顧客に合わせた設定パラメータを入力する。設定パラメータは、事前に準備されたパラメータシートに記載されており、オペレータは、その記載に基づいて入力を行う。設置先の顧客に合わせたパラメータシートの事前作成は、設置ミスが発生しないよう、作成担当者により慎重に行われる。
FW構成設定UIは、特にFW構成の設定パラメータを入力するUIである。FW構成設定UI401において、オペレータは、MFPに設定するFWを指定し、そのFWを事前ダウンロードするか、設置時にダウンロードするかを選択する。MFPに設定するFWを指定するために、オペレータは、配信サーバーにアカウントを有する必要がある。
412〜415は、配信サーバーに登録されているFWグループを指定するUIである。FWグループとは、MFPのFWを構成するFWコンポーネントの集合である。FWコンポーネント毎に、一つのコンテンツファイルが存在する。MFPの機種、かつ、FWバージョン毎にユニークなFWグループが、配信サーバーに登録される。デバイス商品名、デバイスシリアル番号のいずれかを指定し、ファームウェアグループを指定することで、配信サーバーからダウンロードするFWグループを一意に特定できる。かつ、販売地域コードを指定することにより、該当のFWグループが、その販売地域に対して公開されているFWグループであり、ダウンロード可能か否かを判別できる。
411は、配信サーバーのログインを行うアカウントを指定するグループボックスである。グループボックス411は、ログインIDを入力するエディットボックス421と、ログインパスワードを入力するエディットボックス422、および、ログインボタン423を持つ。ログインボタン423が押下された際、初期設定用アプリケーションは、ログインIDエディットボックス421、ログインパスワードエディットボックス422にそれぞれ入力されたID、パスワードをリクエストパラメータに設定して、配信システム101に認証リクエストを送信する。配信システム101は、受信した認証リクエストのリクエストパラメータに設定されたID、パスワードを基にユーザーアカウントの認証を行う。認証成功の場合、認証IDと、該当のユーザーアカウントに割り当てられた販売地域コードをレスポンスとして返す。初期設定用アプリケーションは、配信システム101からレスポンスとして受け取った認証IDと販売地域コードを保持すると共に、受け取った販売地域コードの値を412の販売地域コードテキストボックスに表示する。
412は、配信システム101からレスポンスとして受け取った販売地域コードを表示するテキストボックスである。配信システム101からレスポンスとして受け取った販売地域コードは、ユーザーアカウントに割り当てられた販売地域コードである。ユーザーアカウントに割り当てられた販売地域コードとは、そのユーザーアカウントが属する販売地域の地域コードである。販売地域毎に、公開されているFWグループが異なる。
413、414は、デバイス商品名、デバイスシリアル番号のいずれかを指定するラジオボタンである。デバイス商品名のラジオボタン413が選択された際、エディットボックス424に入力されたデバイス商品名の文字列が、配信システム101でのFWグループの特定に利用される。デバイス商品名は、エディットボックス424に直接入力するか、検索ボタン426を押下した際に別途表示されるデバイス商品名検索ボックスで検索した結果から選択する。デバイス商品名検索ボックスでの検索は、ユーザーアカウントの情報に基づき、配信システム101により実行される。初期設定用アプリケーションは、デバイス商品名検索のリクエストを配信システム101に送信する際、認証IDを共に送出する。配信システム101は、認証IDを基に、該当のユーザーアカウントで参照可能なデバイス商品名の一覧を初期設定用アプリケーションにデバイス商品名検索のレスポンスとして返す。デバイス商品名は、FWグループとは別に、デバイス商品登録として、デバイスシリアル番号と紐付けられて配信システム101に登録されている。
デバイスシリアル番号のラジオボタン414が選択された際には、エディットボックス425に入力されたデバイスシリアル番号の文字列が、配信システム101でのFWグループの特定に利用される。デバイスシリアル番号は、エディットボックス425に直接入力する。
415は、FWグループのバージョンを指定するエディットボックスである。FWグループのバージョンは、直接入力するか、検索ボタン427を押下した際に別途表示されるFWグループバージョン検索ボックスで検索した結果から選択する。FWグループバージョン検索ボックスでの検索は、ユーザーアカウントの情報に基づき、FW配信システム101により実行される。配信システム101は、初期設定用アプリケーションからFWグループバージョン検索のリクエストと共に受け取った認証IDに割り当てられたユーザーアカウントでダウンロード可能なFWグループバージョンの一覧を初期設定用アプリケーションにレスポンスとして返す。
416は、FWのダウンロードタイミングを選択するラジオボタンである。FWのダウンロードタイミングとして、事前ダウンロードか、設置時ダウンロードのいずれかを選択することが出来る。事前ダウンロードは、初期設定用アプリケーションで配信システム101からFWグループをダウンロードする。設置時ダウンロードは、MFP111の顧客のオフィス環境などへの初期設置時に、MFP111で配信システム101からFWグループをダウンロードする。
事前ダウンロード428が選択されている場合、次へボタン432が押下された段階で、初期設定用アプリケーションは、413〜415で指定された値と認証IDをリクエストパラメータに設定し、配信システム101に、FWグループおよびFW管理ファイルの一括ダウンロードリクエストを行う。この際の配信システム101における処理については、図12を用いて後述する。配信システム101から一括ダウンロードされるFWグループのファイルとは、そのFWグループを構成する各FWコンポーネントのファイルをZIP形式などでアーカイブしたファイルである。また、一括ダウンロードされるFW管理ファイルとは、FWグループを構成する各FWコンポーネントの情報を記載したファイルである。FW登録者が、FW登録の際に、規定のフォーマットに従って記述し、FWグループと共に登録したファイルである。更にまた、FWコンポーネントの情報とは、タイプ名、バージョン、コンポーネントのファイル名など、FWコンポーネント毎に一意な情報である。FWコンポーネントのタイプ名は、FWコンポーネントを識別する略称であり、FWグループ内で一意の情報である。
一方、設置時ダウンロード429が選択されている場合、次へボタン432が押下された段階で、初期設定用アプリケーションは、413〜415で指定された値と認証IDをリクエストパラメータに設定し、配信システム101に、FWグループ存在確認のリクエストを行う。FWグループ存在確認のリクエストを受けた配信システム101は、413〜415で指定された値に該当するFWグループが存在し、かつ、該当のFWグループが、該当の認証IDのユーザーアカウントに紐付けられた販売地域コードの地域からダウンロード可能かを判定する。その判定結果を、OK/NGのレスポンスとして返す。
431は、戻るボタンであり、初期設定用アプリケーションのFW構成設定UIの前の初期設置設定画面に遷移する。例えば、MFPのアップデーターのスケジュール設定を行うアップデーター設定UIなどに遷移する。
432は、次へボタンであり、事前ダウンロード428が選択されている場合、配信システム101のレスポンスとして受け取ったFWグループのアーカイブファイル、および、FW管理ファイルを、USBメモリに書きこむ。また、それらFWグループのアーカイブファイル、および、FW管理ファイルのUSBメモリ上のパスを、初期設置用の構成ファイルに書き込む。例えば、以下のようなFW初期構成セクションの情報を、初期設定用アプリケーションは、構成ファイルに書き込む。
[FW_INITIAL_CONFIGURATION]
FW_AUTO_CONFIGURATION=YES
FW_PRIOR_DOWNLOAD=YES
FW_ARCHIVE_FILE={USBメモリ上のFWグループのアーカイブファイルのパス}
FW_MANAGEMENT_FILE={USBメモリ上のFW管理ファイルのパス}
一方、設置時ダウンロード429が選択されている場合、配信システム101から受け取ったFWグループ存在確認のリクエストの結果がOKであれば、415に設定されているFWグループのバージョンの情報を構成ファイルに書き込む。例えば、以下のようなFW初期構成セクションの情報を、初期設定用アプリケーションは、構成ファイルに書き込む。
[FW_INITIAL_CONFIGURATION]
FW_AUTO_CONFIGURATION=YES
FW_PRIOR_DOWNLOAD=NO
FW_GROUP_VERSION=2.0
また、FWグループ存在確認のリクエストの結果がNGであれば、初期設定用アプリケーションは、エラー表示を行い、FW構成設定UI401の画面に留まる。
433は、スキップボタンであり、FW構成設定UIでFW構成設定をせず、初期設定用アプリケーションの次の初期設置設定画面に進む。例えば、MFPで有効にする組み込みアプリを設定する組み込みアプリ設定Uなどに遷移する。FW構成設定をスキップする場合、初期設定用アプリケーションは、構成ファイルに、以下のようなFW初期構成セクションの情報を書き込む。
[FW_INITIAL_CONFIGURATION]
FW_AUTO_CONFIGURATION=NO
[MFPのFW更新ソフトウエア構成]
図5は、本発明のMFP111のFW更新に関わるソフトウェアモジュール構成を示すブロック図である。
図5において、501はアップデーター、551は構成アプリケーションである。アップデーター501は、MFP111のFWを更新するソフトウェアモジュールである。構成アプリケーション551は、構成ファイルに基づき、MFP111のFWを更新するソフトウェアモジュールである。
591は、デバイス情報保持領域である。デバイス情報保持領域591は、MFP111の基本デバイス情報を保持する。基本デバイス情報とは、デバイスシリアル番号、デバイス地域コードなどデバイス固有の情報である。デバイス地域コードとは、MFP111の販売地域毎に固有に設定される地域コードである。「JP」「US」など、前述の配信システム101のユーザーアカウントが属する販売地域の販売地域コードと同一の識別子が用いられる。592は、一時作業領域である。アップデーター501、構成アプリケーション551などのMFP111の各モジュールが一時的な作業領域として使用する領域である。デバイス情報保持領域591、および、一時作業領域592は、MFP111のハードディスク313上に確保されたMFP111の共通データを保存するための領域である。デバイス情報保持領域591は、DBテーブルとしてハードディスク313上に構築され、一時作業領域592は、ファイルシステムのディレクトリとしてハードディスク313上に構築される。
アップデーター501において、502は、メイン制御部である。メイン制御部502は、MFP111のアップデーターにおける中心的な処理部である。図5に示す他のアップデーター関連のソフトウェアモジュールと連携して、FW更新に関わる各種処理を実行する。
503は、通信部である。通信部503は、NIC207を介して、配信システム101とHTTPによる通信を行う。504は、UI部である。操作部303に、FW更新用のUIを表示し、サービスエンジニアまたはエンドユーザーからのFW更新の要求を、操作部IF317を介して、受け取る。または、定期的にFWの自動更新を実行するスケジュール設定の要求を受け取る。511は、MFP111の各モジュールのFW更新を実行する更新部である。513は、IF部である。メイン制御部502に制御される更新部511は、IF部513を介して、MFP111の各モジュールのFW更新を行う。また、IF部513は、後述の構成アプリケーション551からのFW更新の依頼を受け取り、メイン制御部502に伝える。また、デバイス情報保持領域591、一時作業領域592などのMFP111の共通データ領域へのアクセスを行う。
521は、現在FW情報保持領域である。現在のFWグループの情報として、MFP111のFWコンポーネントの構成情報を一纏めにして保持する。メイン制御部502が、MFP111のFWコンポーネントの構成情報を取得して、それらの情報を一纏めに、現在FWグループの情報として格納する。メイン制御部502は、更新部511により新しいFWに更新した際にも、現在FW情報保持領域521の情報を更新する。すなわち、メイン制御部502が、更新部511により新しいFWに更新した後、IF部513を介して、最新のFWコンポーネントの構成情報をMFP111の各モジュールから再取得し、その情報に基づき、現在FW情報保持領域521の情報を再設定する。
現在FW情報保持領域521に格納される各FWコンポーネントの構成情報は、FWコンポーネントのタイプ名、バージョン、コンポーネントのファイル名である。これは、後述の配信システム101のFWコンポーネント情報テーブル802に格納される値と類似である。すなわち、MFP111の現在FW情報保持領域521は、配信システム101のFWコンポーネント情報テーブル802と類似のテーブルから構成される。
522は、更新FW情報保持領域である。メイン制御部502が、通信部503を介して、配信システム101から受信した更新FWのFWコンポーネント情報を一時的に保持する。現在FW情報保持領域521、更新FW情報保持領域522は、いずれもDBテーブルとしてハードディスク313上に構築される。
次に、構成アプリケーション551に関して説明する。構成アプリケーション551において、551は、メイン制御部である。メイン制御部552は、MFP111の構成アプリケーションにおける中心的な処理部である。図5に示す他の初期構成関連のソフトウェアモジュールと連携して、FW更新を含む各種設定処理を実行する。
553は、通信部である。通信部553は、NIC207を介して、配信システム101とHTTPによる通信を行う。554は、UI部である。操作部303に、初期構成用のUIを表示し、サービスエンジニアからの要求を、操作部IF317を介して、受け取る。また、初期構成の進行状況をUIに表示する。
555は、構成ファイル読込部である。拡張IF318に接続されたUSBメモリに保存された構成ファイルを読み込み、そのデータをメイン制御部552に伝える。561は、構成ファイルのデータを解釈し、その解釈した設定値に基づき、MFP111の各モジュールの初期構成を実行する初期構成部である。メイン制御部552に制御される初期構成部561は、構成ファイルの設定値に基づき、IF部563を介して、MFP111の各モジュールの初期構成を行う。FWの初期構成を行う場合には、IF部563を介して、アップデーター501のIF部513を呼び出し、FWの更新をメイン制御部502に依頼する。また、アップデーター501からFWの更新結果を受け取る。更に、また、デバイス情報保持領域591、一時作業領域592などのMFP111の共通データ領域へのアクセスを行う。
571は、設定結果保持領域である。初期構成の実行結果が保存される。初期構成部561は、メイン制御部552による制御の元、MFP111の各モジュールの初期構成を行った際、その結果を設定結果保持領域571に保存する。初期設定の成功、失敗、設定内容、エラー内容などが保存される。
設定結果保持領域571は、DBテーブルとしてハードディスク313上に構築される。
[MFPのアップデーターへの操作に応じたFWの更新処理]
図6は、MFP111のアップデーター501による、ユーザー操作によるFW更新指示を受けた際の動作を示すフローチャートである。本処理は、MFPの初期設置後に、顧客環境でMFPが運用されているときに行われるエンドユーザーまたはサービスエンジニアの操作で実行されるアップデーター501によるFW更新の処理を示す。
なお、本処理は、CPU311によりアプリケーションプログラムであるアップデーター501を実行することで実現される処理である。ここでは、アップデーター501を処理の主体として説明する。
本発明のMFP111のアップデーター501によるFW更新は、次の3ステップで行われる。
1.配信サーバーへの適用可能FW確認
2.配信サーバーからのFWダウンロード
3.ダウンロードFW適用
以下、上記FW更新ステップ1〜3に関して、順に説明する。
図6(a)は、FW更新のステップ1に係る動作を示すフローチャートである。
S601において、MFP111のアップデーター501のメイン制御部502は、UI部504を介して、ユーザー操作によるFW更新の要求を検知した際、以下を実施する。
S602において、メイン制御部502は、FW更新の要求を行ったオペレータ区分を特定する。オペレータ区分の特定とは、操作を行ったユーザーが、エンドユーザーなのか、サービスエンジニアなのかを特定することである。オペレータ区分は、UI部504が操作部303に表示中のUIが、エンドユーザー向けのUIなのか、サービスエンジニア向けのUIなのかで判定される。メイン制御部502は、エンドユーザー向けのUIでFW更新の要求が行われた際、オペレータは、エンドユーザーであると判定する。同様に、サービスエンジニア向けのUIでFW更新の要求が行われた際、オペレータは、サービスエンジニア向けであると判定する。
S603において、メイン制御部502は、IF部513を介して、デバイス情報保持領域591からMFP111のデバイスシリアル番号の情報を取得する。S604において、メイン制御部502は、現在FW情報保持領域521から、現在のFWグループの情報を取得する。現在FWグループの情報として、MFP111のFWコンポーネントの現在の構成情報を取得する。FWコンポーネントの構成情報とは、タイプ名、バージョン、コンポーネントのファイル名の情報である。
S605において、メイン制御部502は、適用可能FWリクエストを、通信部503を介して、配信システム101に送信する。適用可能FWリクエストのリクエストパラメータとして、オペレータ区分、デバイスシリアル番号、現在FWグループの情報を設定する。S606において、メイン制御部502は、適用可能FWリクエストに対する配信システム101のレスポンスを待つ。S606で適用可能FWリクエストに対する配信システム101のレスポンスを受け取った際、メイン制御部502は、S607の処理に進む。
S607において、メイン制御部502は、配信システム101のレスポンスパラメータに、適用可能なFWグループバージョンの情報が一つ以上存在するか否かを確認する。配信システム101のレスポンスパラメータに、適用可能なFWグループバージョンの情報が一つ以上存在する場合、メイン制御部502は、S608の処理に進む。S608において、メイン制御部502は、UI部504を介して、配信システム101から受け取った適用可能なFWグループバージョンから適用するFWグループバージョンをユーザーに選択させるUIを、操作部303に表示する。
一方、S607において、配信システム101のレスポンスパラメータに、適用可能なFWグループバージョンの情報が一つも存在しない場合、メイン制御部502は、S609の処理に進む。S609において、メイン制御部502は、配信システム101のレスポンスパラメータに含まれるエラーコードに基づき、エラーメッセージを生成し、UI部504を介して、操作部303にエラー表示を行う。
図6(b)は、FW更新のステップ2及び3に係る動作を示すフローチャートである。
MFP111のアップデーター501のメイン制御部502は、図6(a)のフローチャートS608で操作部303に表示した適用可能なFWグループバージョンの選択UIにおいて、ユーザー操作によるFWグループバージョンの選択が行われた際、以下を実行する。
図6(b)のS611において、メイン制御部502は、UI部504を介して、適用可能なFWグループバージョンの選択操作を検知する。
S612において、メイン制御部502は、選択されたFWグループバージョンに基づき、配信システム101にFWグループに対するFW情報取得リクエストを行う。FW情報取得リクエストのリクエストパラメータには、デバイスシリアル番号と、FWグループバージョンをセットする。S613において、メイン制御部502は、配信システム101からのFW情報取得リクエストに対するレスポンスを待つ。S613において、配信システム101からのレスポンスを受け取った際、メイン制御部502は、S614に進む。S614において、メイン制御部502は、FW情報取得リクエストのレスポンスとして受け取ったFWグループのFWコンポーネントの情報、および、各FWコンポーネントのダウンロード情報を更新FW情報保持領域522に保存する。FWコンポーネントの情報とは、前述の通り、タイプ名、バージョン、コンポーネントのファイル名である。FWコンポーネントのダウンロード情報とは、FWコンポーネントのファイルをダウンロードするためのURLの情報である。S615において、メイン制御部502は、更新FW情報保持領域522に保存されるFWコンポーネントの情報と、現在FW情報保持領域521に保存される現在FWグループの情報とを突き合わせ、更新対象の現在FWのFWコンポーネントを特定する。
更新対象のFWコンポーネントの特定は、メイン制御部502により、以下のように行われる。
1.更新FW情報保持領域522に保存されるFWコンポーネントのタイプ名に一致するタイプ名が、現在FW情報保持領域521に存在するか否かを確認する。
2.一致するタイプ名が現在FW情報保持領域521に存在する場合、該当のFWコンポーネントのバージョン情報の突き合わせを行う。
3.更新FW情報保持領域522に保存されるFWコンポーネントのバージョンが、現在FW情報保持領域521に存在するFWコンポーネントのバージョンより高い場合、該当のタイプ名を更新対象のFWコンポーネントと判断する。
4.更新FW情報保持領域522に保存される全てのFWコンポーネントの情報に関して、上記1〜3を行い、更新対象の現在FWのFWコンポーネントのタイプ名を特定する。
S616において、メイン制御部502は、更新対象として特定したFWコンポーネントに関し、そのコンテンツのダウンロードリクエストを配信システム101に送信する。メイン制御部502によるFWダウンロードリクエストは、更新FW情報保持領域522に保存される、各FWコンポーネントのダウンロード情報に従い、行われる。S617において、メイン制御部502は、配信システム101からのFWダウンロードリクエストに対するレスポンスを待つ。S617において、配信システム101からのレスポンスを受け取った際、メイン制御部502は、S618に進む。S618において、メイン制御部502は、FWダウンロードリクエストのレスポンスとして受け取った各FWコンポーネントのコンテンツをファイル化して、一時作業領域592に格納する。
S619において、メイン制御部502は、MFP111の各モジュールのFW更新処理を行う。メイン制御部502は、更新部511にFWの更新指示を行うことにより、MFP111の各モジュールのFW更新処理を行う。メイン制御部502は、更新部511に更新対象のFWコンポーネントのタイプ名のリストと、更新FW情報保持領域522に保存した各FWコンポーネントの情報、および、一時作業領域592に格納した各FWコンポーネントのファイル情報を、更新指示のパラメータとして渡す。
FWの更新指示を受けた更新部511は、以下のように、MFP111の各モジュールのFW更新を行う。
1.更新対象のFWコンポーネントのタイプ名のファイル名の情報を更新FW情報保持領域522から取得する。
2.取得したファイル名のファイルを一時作業領域592から取得する。
3.一時作業領域592から取得したダウンロードファイルで、MFP111の各モジュールのFWコンポーネントを置き換える。
4.FWコンポーネントのファイル置き換えによるFWの更新が正常終了、または、エラー終了したことを、個々のFWコンポーネント単位で、メイン制御部502に通知する。
5.更新指示のパラメータとして渡されたタイプ名のリストに載ったすべてのタイプ名に関し、上記1〜4を実施する。
S620において、メイン制御部502は、FW更新処理結果の成功/失敗と、更新後の現在FWグループの情報を、デバイスシリアル番号の情報と共に、FW更新結果通知リクエストとして、配信システム101に送信する。尚、更新部511によるMFP111のFWコンポーネントのファイル置き換えが一つでも失敗した場合、メイン制御部502は、FW更新処理結果に失敗したと見なす。S621において、メイン制御部502は、配信システム101からのFW更新結果通知リクエストに対するレスポンスを待って、処理を終了する。
以上が、MFPの初期設置後に、顧客環境でMFPが運用されているときに行われるエンドユーザーまたはサービスエンジニアの操作で実行されるアップデーター501によるFW更新の処理である。
[MFPのFWの初期構成実行時の処理]
次に、MFPの初期設置時の構成アプリケーション551によるFW更新の処理について説明する。
図7は、MFP111の構成アプリケーション551による、FWの初期構成の動作を示すフローチャートである。構成アプリケーション551は、拡張I/F318にUSBメモリが接続された際に、CPU311により実行され、起動される。
ここで、図7(a)は、起動された構成アプリケーション551(のメイン制御部552)を処理の主体として説明する。
S701において、構成アプリケーション551のメイン制御部552は、構成ファイル読込部555を介して、接続されたUSBメモリのファイル情報を読み取る。そして、USBメモリ内に、初期設置用の構成ファイルが格納されているか否かを確認する。S702において、メイン制御部552は、USBメモリ内に、構成ファイルが格納されていないと判定した場合、処理を終了する。同じく、S702において、メイン制御部552は、USBメモリ内に、構成ファイルが格納されていると判定した場合、S703に進む。S703において、メイン制御部552は、構成ファイル読込部555を介して、USBメモリから構成ファイルのデータを読み込む。
S704において、メイン制御部552は、読み込んだ構成ファイルのデータを順に初期構成部561に渡し、その構成ファイルの設定値に基づき、MFP111の各モジュールの初期構成を行う。
具体的には、メイン制御部552は、以下のように、MFP111の各モジュールの初期構成を行う。
(7A−1)メイン制御部552は読み込んだ構成ファイルのデータを順次、初期構成部561に渡していく。
(7A−2)初期構成部561は、メイン制御部552から渡された構成ファイルのデータを基に、設定値を解釈する。
(7A−3)初期構成部561は、その解釈した設定値に基づき、構成アプリケーション551のIF部563を介して、MFP111の各モジュールの初期構成を行う。
(7A−4)初期構成部561は、構成アプリケーション551のIF部563を介して行った、MFP111の各モジュールの初期構成の実行結果を、順次、設定結果保持領域571に保存する。
メイン制御部552は、構成ファイルの設定値に基づく、MFP111の各モジュールの初期構成の終了後、S705に進む。S705において、メイン制御部552は、MFP111の各モジュールの初期構成の実行結果を設定結果保持領域571から取得し、ログファイルとして、拡張IF318を介して、USBメモリに書き込み、処理を終了する。
図7(b)は、本発明のMFP111の構成アプリケーション551によるFW更新の動作を示すフローチャートである。
具体的には、S704の(7A−3)において、構成ファイルのFW構成設定のデータに基づき、初期構成部561がMFP111のFWの初期構成を行う際の動作を示すフローチャートである。更に具体的には、前述の構成ファイルの例で言うと、FW初期構成セクション([FW_INITIAL_CONFIGURATION])のデータを解釈して、MFP111の初期構成を行う際のフローチャートである。
S751において、初期構成部561は、構成ファイルのFW自動構成の設定値を基に、処理を分岐する。具体的には、S751において、FW初期構成セクションにFW自動構成の実行を示す設定がある場合、S752に進む。前述の構成ファイルの例で言うと、以下のエントリがFW初期構成セクションにある場合、S752に進む。
・FW_AUTO_CONFIGURATION=YES
同様に、S751において、FW初期構成セクションにFW自動構成を実行しないことを示す設定がある場合、S771に進む。前述の構成ファイルの例で言うと、以下のエントリがFW初期構成セクションにある場合、S771に進む。
・FW_AUTO_CONFIGURATION=NO
S752において、初期構成部561は、構成ファイルのFW事前ダウンロードの設定値を基に、更に処理を分岐する。具体的には、S752において、FW初期構成セクションにFW事前ダウンロード実行済みを示す設定がある場合、S753に進む。前述の構成ファイルの例で言うと、以下のエントリがFW初期構成セクションにある場合、S753に進む。
・FW_PRIOR_DOWNLOAD=YES
同様に、S752において、FW初期構成セクションに設置時ダウンロードの設定がある場合、初期構成部561は、S761に進む。前述の構成ファイルの例で言うと、以下のエントリがFW初期構成セクションにある場合、S761に進む。
・FW_PRIOR_DOWNLOAD=NO
S753において、初期構成部561は、FWグループのアーカイブファイル、および、FW管理ファイルのUSBメモリ上のパスを、FW初期構成セクションから読み取る。前述の構成ファイルの例で言うと、FW初期構成セクションの以下のエントリから該当の値を読み取る。
・FW_ARCHIVE_FILE={USBメモリ上のFWグループのアーカイブファイルのパス}
・FW_MANAGEMENT_FILE={USBメモリ上のFW管理ファイルのパス}
S754において、初期構成部561は、FW初期構成セクションから読み取ったFWグループのアーカイブファイルのパス情報を基に、構成ファイル読込部555を介して、USBメモリからFWグループのアーカイブファイルを読み込む。S755において、初期構成部561は、USBメモリから読み込んだFWグループのアーカイブデータを展開し、個々のFWコンポーネントのコンテンツ毎にファイル化する。初期構成部561は、ファイル化したFWコンポーネントを、IF部563を介して、一時作業領域592に格納する。S756において、初期構成部561は、FW初期構成セクションから読み取ったFW管理ファイルのパス情報を基に、USBメモリからFW管理ファイルを読み込み、一時作業領域592にコピーする。
S757において、初期構成部561は、アップデーター501のIF部513を呼び出し、一時作業領域592に格納したFW管理ファイルのパス情報をパラメータに指定して、FW更新の依頼を行う。
S758において、初期構成部561は、アップデーター501からのFW更新結果の通知を待つ。初期構成部561は、構成アプリケーション551のIF部563を介して、アップデーター501から、FW更新結果の通知を受け取った際、MFP111のFWの初期構成のフローチャートの処理を終了する。処理終了後、初期構成部561は、前記(7A−4)を実行する。すなわち、FW初期構成の実行結果を、設定結果保持領域571に保存する。
S761において、初期構成部561は、FWグループのバージョンを、FW初期構成セクションから読み取る。前述の構成ファイルの例で言うと、FW初期構成セクションの以下のエントリから該当の値を読み取る。
・FW_GROUP_VERSION=2.0
S762において、初期構成部561は、IF部を介して、MFP111のデバイス情報保持領域591から、デバイスシリアル番号、および、デバイス地域コードの値を取得する。S763において、初期構成部561は、配信システム101に、FWグループおよびFW管理ファイルの一括ダウンロードリクエストを行う。リクエストパラメータには、構成ファイルから読み込んだFWグループのバージョンと、デバイス情報保持領域591から取得したMFPのデバイスシリアル番号、MFPのデバイス地域コードの値を設定して、リクエストを行う。
S764において、初期構成部561は、FW一括ダウンロードリクエストに対する配信システム101からのレスポンスを待つ。初期構成部561は、配信システム101からFW一括ダウンロードリクエストに対するレスポンスを受け取った際、S765に進む。S765において、初期構成部561は、配信システム101からFW一括ダウンロードリクエストのレスポンスとして受け取ったFWグループのアーカイブファイル、および、FW管理ファイルを、一時作業領域592に格納する。S766において、初期構成部561は、FWグループのアーカイブデータに関しては、アーカイブデータを展開し、個々のFWコンポーネントのコンテンツ毎にファイル化した上で、一時作業領域592に格納する。S766の実行後、初期構成部561は、S757の処理に進む。
S771において、初期構成部561は、MFPのアップデーターによるFW更新を行うか否かの問い合わせを、UI部554を介して、MFP111の操作部303に表示する。S772において、初期構成部561は、MFP111の操作部303での入力を待つ。S772において、初期構成部561は、UI部554を介して、操作部303での入力を受け取った際、入力結果が、MFPのアップデーターによるFW更新の指示であれば、S773に進む。一方、S772において、操作部303での入力結果が、MFPのアップデーターによるFW更新を行わない指示であれば、初期構成部561は、MFP111のFWの初期構成のフローチャートの処理を終了する。処理終了後、初期構成部561は、前記(7A−4)を実行する。
S773において、初期構成部561は、アップデーター501のIF部513を呼び出し、FW管理ファイルのパラメータ指定なしで、FW更新の依頼を行う。S773の実行後、初期構成部561は、S758の処理に進む。
以上が、図7(b)の本発明のMFP111の構成アプリケーション551によるFW更新の動作を示すフローチャートである。
[構成アプリケーションによりFW更新指示を受けた際のアップデーターの処理]
次に、MFP111で、構成アプリケーション551からの呼び出しに応じたアップデーター501によるFW更新の処理について説明する。
図8は、MFP111のアップデーター501が、IF部513を介してFW更新の依頼を受け取った際の動作を示すフローチャートである。アップデーター501のメイン制御部502は、IF部513を介して、FW更新の要求を受信した際、以下の処理を実施する。
S801において、メイン制御部502は、IF部513を介して受信したFW更新の要求パラメータに、FW管理ファイルのパス情報が指定されているか否かを判断する。S801において、FW更新の要求パラメータに、FW管理ファイルのパス情報が指定されていれば、メイン制御部502は、S802に進む。
S802において、メイン制御部502は、FW更新の要求パラメータで指定されたFW管理ファイルのパス情報を基に、一時作業領域592から、FW管理ファイルを読み込む。S803において、メイン制御部502は、読み込んだFW管理ファイルの情報を基に、MFP111の各モジュールのFW更新をバージョン条件なしで行う。メイン制御部502は、更新部511にバージョン条件なしでのFW更新の指示を行うことにより、MFP111の各モジュールのFWをバージョン条件なしで更新する。メイン制御部502は、更新部511に、読み込んだFW管理ファイルの情報を、バージョン条件なしでのFW更新処理のパラメータとして渡す。
FW管理ファイルの情報と共にバージョン条件なしでのFWの更新指示を受けた更新部511は、以下のように、MFP111の各モジュールのFW更新を行う。
1.MFP111のFWコンポーネントの現在の構成情報を、現在FW情報保持領域521から取得する。
2.FW管理ファイルのFWコンポーネント情報のタイプ名と一致するタイプ名を持つ現在FWのFWコンポーネントを更新対象としてリストアップする。
3.更新対象としてリストアップしたFWコンポーネントのファイル名の情報をFW管理ファイルから取得する。
4.取得したファイル名のファイルの実体を、一時作業領域592から取得する。ファイルの実体は、前記図7(b)の構成アプリケーション551によるフローチャートS755、または、S766の処理で一時作業領域592に格納されている。
5.一時作業領域592から取得したファイルで、MFP111の各モジュールのFWコンポーネントを置き換える。尚、FWコンポーネントのファイルの置き換えの際、FWコンポーネントの現在のバージョン情報に関する比較は行わない。
6.FWコンポーネントのファイル置き換えによるFWの更新が正常終了、または、エラー終了したことを、個々のFWコンポーネント単位で、メイン制御部502に通知する。
S803の実行後、本処理を終了する。
一方、S801において、FW更新の要求パラメータにFW管理ファイルのパス情報が指定されていなければ、メイン制御部502は、前記図6(a)のS603から処理を開始する。
上記の通り、FW初期構成セクションにFW自動構成を実行することを示す設定がある場合、構成アプリケーション551により呼び出されたアップデーター501のFW更新は、非常に単純な処理で行われる。すなわち、配信サーバーとの間の頻繁なリクエスト、レスポンスは必要なく、また、サービスエンジニアなどによる操作部303でのUI操作の手間も必要ない。そのため、サービスエンジニアの力量が低い場合であっても、初期設置時に適切にFWの更新を行うことが出来る。また、サービスエンジニアによる初期設置時のFW適用ミスを抑制することが出来る。
また、初期設置時においても、配信サーバーから受け取った適用可能なFWのリストの中から、適宜、FWを選択して適用することが出来る。そのため、サービスエンジニアに力量を考慮して、FW自動構成を実行することを示す事前設定を省略したうえで、初期設置の作業も行うことが出来る。
[配信システムのソフトウエア構成]
図9は、本発明の配信システム101のソフトウェアモジュールの構成を示すブロック図である。
図9において、メイン制御部902は、配信システム101の配信サーバー上のモジュールであって、配信システム101における中心的な処理部である。図9に示す他のソフトウェアモジュールと連携して、FW登録、および、FW配信に関わる各種処理を実行する。図9で示す各保持領域については、配信システム101内の配信サーバー、そのほかのストレージサーバーのいずれかにより提供される。
例えば、前述のクライアント端末122、MFP111からの以下のリクエストを処理する。
(1)クライアント端末122の初期設定用アプリケーションからの以下のリクエスト
・認証リクエスト
・デバイス商品名検索のリクエスト
・FWグループバージョン検索のリクエスト
・FWグループおよびFW管理ファイルの一括ダウンロードリクエスト
・FWグループ存在確認のリクエスト
(2)MFP111のアップデーター501からの以下のリクエスト
・適用可能FWリクエスト
・FW情報取得リクエスト
・FWダウンロードリクエスト
・FW更新結果通知リクエスト
(3)MFP111の構成アプリケーション551からの以下のリクエスト
・FWグループおよびFW管理ファイルの一括ダウンロードリクエスト
通信部903は、NIC207を介して、MFPデバイス111、クライアント端末121のWebブラウザ、および、クライアント端末122の初期設定用アプリケーションとHTTPによる通信を行う。904は、クライアントUI生成部であり、クライアント端末121のWebブラウザからのリクエストに応じて、UI表示用のHTMLデータを生成する。FW登録UIなどを生成する。メイン制御部902は、通信部903を介して、クライアント端末121のWebブラウザからリクエストを受けた際、リクエストの内容に応じて、クライアントUI生成部904を用いてUIを生成する。
932は、FW情報保持領域である。FW情報保持領域932には、FW登録UIで登録されたFWグループに関するFW種別、FWグループ名、FWグループバージョン、デバイス商品名、アップデート対象バージョン、FW公開地域コードの情報が保持される。
メイン制御部902は、通信部903を介して、クライアント端末121のWebブラウザからFWグループ名、FWグループバージョン、デバイス商品名、アップデート対象バージョンの検索リクエストを受けた際、該当の情報をFW情報保持領域932から検索して、クライアント端末121に返す。
また、メイン制御部902は、通信部903を介して、クライアント端末121のWebブラウザからFW登録リクエストを受けた際、リクエストパラメータに設定されたFW種別、FWグループ名、FWグループバージョン、デバイス商品名、アップデート対象バージョン、FW公開地域コードの情報をFW情報保持領域932に格納する。更に、また、メイン制御部902は、FW登録リクエストのリクエストパラメータに含まれるFW管理ファイルのコンテンツを分解し、FWコンポーネント情報として、同じくFW情報保持領域932に格納する。
934は、FW実体保持領域である。FW実体保持領域934には、FW登録UIからアップロードされたFWコンポーネントのコンテンツがファイル単位で保持される。メイン制御部902は、通信部903を介して、クライアント端末121のWebブラウザからFW登録リクエストを受けた際、リクエストパラメータに含まれる各FWコンポーネントのコンテンツをファイル化して、FW実体保持領域934に格納する。メイン制御部902は、リクエストパラメータに含まれるFWコンポーネントがアーカイブファイルのデータであった場合、アーカイブデータを展開し、個々のFWコンポーネントのコンテンツにファイル化して、FW実体保持領域934に格納する。
931は、デバイス商品情報保持領域である。デバイス商品情報保持領域931には、デバイス商品名と、それに対応するデバイスシリアル番号の範囲(以下、「機番データバンド」と呼ぶ)、および、デバイス商品種別が保持される。メイン制御部902は、通信部903を介して、クライアント端末121のWebブラウザからデバイス商品情報登録リクエストを受けた際、リクエストパラメータに設定されたデバイス商品種別、デバイス商品情報名、機番データバンドの情報をデバイス商品情報保持領域931に格納する。
935は、FW更新結果保持領域である。FW更新結果保持領域935には、MFP111でのFW更新処理結果の成功/失敗と、更新後の現在FWグループの情報が、デバイスシリアル番号と紐付けて保持される。MFP111のアップデーター501からのFW更新結果通知リクエストにより受信した情報が保持される。
933は、アカウント情報保持領域である。アカウント情報保持領域933には、配信サーバーを利用可能なユーザーアカウントの情報が登録されている。ユーザーアカウントの情報とは、ユーザーID、パスワード、該当のユーザーが属する販売地域の販売地域コードの情報である。認証リクエストを受信した際、メイン制御部902は、アカウント情報保持領域933の情報に基づいて、ユーザーアカウントの認証を行う。936は、認証ID保持領域である。認証ID保持領域936には、ユーザーアカウントの認証に成功した際に、メイン制御部902が発行する認証IDが保持される。認証IDには、認証に成功したユーザーアカウントの情報が紐付けられて保持される。また、認証IDは、一定期間有効な情報として、メイン制御部902により保持される。
デバイス商品情報保持領域931、FW情報保持領域932、アカウント情報保持領域933、FW実体保持領域934、FW更新結果保持領域935、認証ID保持領域936は、配信システム101のハードディスク210上に確保された永続的なデータを保存するための領域であり、メイン制御部902よって管理される。デバイス商品情報保持領域931、FW情報保持領域932、アカウント情報保持領域933、FW更新結果保持領域935、認証ID保持領域936は、DBテーブルとして構築され、FW実体保持領域934は、ファイルシステム上のディレクトリとして構築される。
[配信サーバーのFW情報保持領域のデータ構造]
図10は、配信システム101のFW情報保持領域932のデータ構造を示す模式図である。FW情報保持領域932は、図10に示すように、2つのテーブルから構成される。図10(a)の1001は、FWグループ情報テーブルである。図10(b)の1002は、FWコンポーネント情報テーブルである。
図10(a)において、FWグループ情報テーブル1001は、主に、FW種別、FWグループ名、FWグループバージョン、デバイス商品名、アップデート対象バージョンの情報を保持する。
FWグループ情報テーブル1001において、1011は、FWグループIDの値を格納する列である。FWグループID列1011に格納されるFWグループIDは、メイン制御部902が新規FWグループを登録する際、FWグループ毎に一意に付与する値である。
1012は、FW種別を格納する列である。値として、1または2が格納される。値1は、FW種別がMFPであることを示す。値2は、FW種別がアクセサリーであることを示す。1013は、FWグループ名の値を格納する列である。FWグループ名は、FWグループバージョンが異なる前提で重複する。1014は、FWグループバージョンの値を格納する列である。
FWグループ名列1013とFWグループバージョン列1014の組み合わせは、FWグループ情報テーブルで一意であり、FWグループ情報テーブルの主キーとなる。
1015は、デバイス商品名の値を格納する列である。カンマ区切りで複数のデバイス商品名の値が保持される。一つのFWグループに複数のデバイス商品名が対応付け可能なデータ構造となっている。
1016は、アップデート対象バージョンの値を格納する列である。セミコロン区切りでアップデート対象のFWグループが複数保持される。また、セミコロンで区切られたFWグループ毎に、カンマ区切りで複数のアップデート対象バージョンが保持される。例えば、「MFP ABC123 Series、1.0、1.1、1.2、1.3;MFP DEF456 Series、1.0、1.1」の値を該当の列に持つFWグループの場合、次のようになる。FWグループ「MFP ABC123 Series」のバージョン「1.0」、「1.1」、「1.2」、「1.3」からアップデート可能である。また、FWグループ「MFP DEF456 Series」のバージョン「1.0」、「1.1」からアップデート可能である。
1017は、登録日の値を格納する列である。メイン制御部902が該当の行のFWグループを登録した日時を設定する。
1018は、FW公開地域コードの値を格納する列である。FW公開地域コードとは、該当のFWグループを公開するMFPの販売地域を示す販売地域コードのことである。「JP」「US」など、本発明のFW更新システムであらかじめ決められた販売地域コードの識別子が決められている。FW公開地域コード列1018には、カンマ区切りで複数の販売地域コードの値が保持される。
図10(b)において、FWコンポーネント情報テーブル1002は、主に、FW管理ファイルのデータに基づく、FWコンポーネント情報を保持する。
FWコンポーネント情報テーブル1002において、1051は、FWコンポーネントIDの値を格納する列である。FWコンポーネントIDは、メイン制御部902が新規FWコンポーネントを登録する際、FWコンポーネント毎に一意に付与する値である。1052は、FWグループIDの値を格納する列である。FWコンポーネントが属するFWグループのFWグループIDが格納される。FWグループ情報テーブル1001のFWグループID列1011に格納される値と同一の値が格納される。
1053は、FWのタイプ名の値を格納する列である。タイプ名は、FWコンポーネントを識別する略称である。タイプ名は、FWグループ内で一意である。メイン制御部902が、FWグループ間でコンポーネント毎のバージョンを比較する際には、タイプ名毎に、バージョンの比較を行う。1054は、FWコンポーネントのバージョンの値を格納する列である。FWコンポーネントのバージョンは、大小比較が可能なよう、数値で設定される。
1055は、FWコンポーネントのファイル名の値を格納する列である。FWコンポーネントの実体となるFWコンポーネントファイルは、FW実体保持領域934に保持される。FWコンポーネントファイルは、コンポーネント毎、および、コンポーネントのバージョン毎に一意な名前が付与される。各FWコンポーネントファイルは、メイン制御部902よって、FW実体保持領域934において管理される。
[配信サーバーのデバイス商品情報保持領域のデータ構造]
図11は、配信システム101のデバイス商品情報保持領域931のデータ構造を示す模式図である。デバイス商品情報保持領域931は、図11に示すように、デバイス商品情報テーブル1101から構成される。デバイス商品情報テーブル1101は、デバイス商品種別、デバイス商品情報名、機番データバンドの情報を保持する。
図11において、1111は、デバイス商品IDの値を格納する列である。デバイス商品ID列1111に格納されるデバイス商品IDは、メイン制御部902が新規デバイス商品を登録する際、デバイス商品毎に一意に付与する値である。1112は、デバイス商品種別の値を格納する列である。値として、1または2が格納される。値1は、デバイス商品種別がMFPであることを示す。値2は、デバイス商品種別がアクセサリーであることを示す。1113は、デバイス商品情報名の値を格納する列である。1114は、機番データバンドを格納する列である。カンマ区切りで機番データバンドの型式、開始値、終了値の3つの値を格納する。例えば、型式が「MFPAAA」、開始値が「00000」、終了値が「49999」の場合、機番データバンドは、「MFPAAA00000〜MFPAAA49999」となる。機番データバンドの範囲内のデバイスシリアル番号を持つデバイスは、該当のデバイス商品情報のデバイス商品であることを表す。1115は、登録日の値を格納する列である。メイン制御部902が該当の行のデバイス商品を登録した日時を設定する。
[配信システム101の一括ダウンロードリクエスト受信時の処理]
図12は、配信システム101の一括ダウンロードリクエスト受信時の動作を示すフローチャートである。配信システム101は、一括ダウンロードリクエストを、クライアント端末122の初期設定用アプリケーション、または、MFP111の構成アプリケーション551から受け取ることになる。配信システム101のメイン制御部902は、通信部903を介して、一括ダウンロードリクエストを受けた際、以下を実行する。
S1201において、メイン制御部902は、リクエストパラメータに認証用の識別情報である認証IDが含まれているか否かを判定する。S1201において、認証IDが含まれている場合、S1202に進む。一方、S1201において、認証IDが含まれていない場合は、S1252に進む。
S1202において、メイン制御部902は、リクエストパラメータに認証IDが含まれている場合、クライアント端末122の初期設定用アプリケーションからの一括ダウンロードリクエストであると判断する。S1252において、メイン制御部902は、リクエストパラメータに認証IDが含まれていない場合、MFP111の構成アプリケーション551からの一括ダウンロードリクエストであると判断する。メイン制御部902は、S1202、S1252での判断後、それぞれ、S1203、S1253に進む。
S1203において、メイン制御部902は、認証処理として、リクエストパラメータに含まれている認証IDが適切な認証IDか否かを判定する。適切な認証IDか否かの判定は、認証ID保持領域936に、該当の認証IDが保持されているか否かで判定する。S1203において、リクエストパラメータに含まれている認証IDが適切であると判定した場合、認証に成功したとして、メイン制御部902は、S1204に進む。S1203において、リクエストパラメータに含まれている認証IDが適切な認証IDではないと判定した場合、メイン制御部902は、S1221に進む。S1221において、メイン制御部902は、一括ダウンロードリクエストのレスポンスとして、認証エラーを返して、処理を終了する。
S1204において、メイン制御部902は、認証IDから販売地域コードを特定する。販売地域コードの特定は、認証ID保持領域936から該当の認証IDに紐付けられたユーザーアカウントの情報を取得し、そのユーザーアカウントが属する販売地域の販売地域コードの情報をアカウント情報保持領域933から取得することによって行う。
S1205において、メイン制御部902は、リクエストパラメータに、デバイスシリアル番号の情報が含まれているか否かを判定する。S1205において、リクエストパラメータにデバイスシリアル番号の情報が含まれていると判定した場合、メイン制御部902は、S1206に進む。S1206において、メイン制御部902は、リクエストパラメータに含まれるデバイスシリアル番号からデバイス商品名を特定する。デバイス商品名の特定は、デバイス商品情報保持領域931のデバイス商品情報テーブル1101から、機番データバンド列1114の値の機番データバンド範囲に、該当のデバイスシリアル番号を包含する行を検索することによって行う。該当のデバイスシリアル番号を包含する行のデバイス商品名列1113の値が特定されるデバイス商品名である。一方、S1205において、リクエストパラメータにデバイスシリアル番号の情報が含まれていないと判定した場合、メイン制御部902は、S1231に進む。
S1231において、メイン制御部902は、リクエストパラメータにデバイス商品名の情報が含まれているか否かを判定する。S1231において、リクエストパラメータにデバイス商品名の情報が含まれていると判定した場合、メイン制御部902は、S1207に進む。一方、S1231において、リクエストパラメータにデバイス商品名の情報が含まれていないと判定した場合、メイン制御部902は、S1232に進む。
S1232において、メイン制御部902は、一括ダウンロードリクエストのレスポンスとして、パラメータ不正のエラーを返して、処理を終了する。
S1207において、メイン制御部902は、リクエストパラメータにFWグループバージョンの情報が含まれているか否かを判定する。S1207において、リクエストパラメータにFWグループバージョンの情報が含まれていると判定した場合、メイン制御部902は、S1208に進む。
S1208において、メイン制御部902は、S1206またはS1231で特定したデバイス商品名と、リクエストパラメータに含まれるFWグループバージョン、および、S1204または後述のS1254で特定した販売地域コードの情報からFWグループを特定する。FWグループの特定は、FWグループ情報テーブル1001のデバイス商品名列1015、FWグループバージョン列1014、および、FW公開地域コード列1018に、該当のデバイス商品名と、該当のFWグループバージョン、および、該当の販売地域コードをそれぞれ持つ行を検索することによって行う。該当のデバイス商品名、該当のFWグループバージョン、および、該当の販売地域コードを持つ行のFWグループID列1011の値が特定されたFWグループとなる。一方、S1207において、リクエストパラメータにFWグループバージョンの情報が含まれていないと判定した場合、メイン制御部902は、S1241に進む。
S1241において、メイン制御部902は、リクエストパラメータにFWグループバージョンの情報が含まれていない場合、S1206またはS1231で特定したデバイス商品名のデバイスに適用可能な最新のFWグループを特定する。デバイス商品名のデバイスに適用可能な最新のFWグループの特定は、FWグループ情報テーブル1001から、S1206またはS1231で特定したデバイス商品名と、S1204または後述のS1254で特定した販売地域コードを持つ行を検索することによって行う。該当のデバイス商品名と、該当の販売地域コードをFWグループ情報テーブル1001のデバイス商品名列1015、FW公開地域コード列1018に持つ行の中で、FWグループバージョン列1014の値が最も高いものが最新のFWグループである。該当の行のFWグループID列1011の値を、S1206またはS1231で特定したデバイス商品名のデバイスに適用可能な最新のFWグループとして特定する。S1241の実行後、メイン制御部902は、S1209に進む。
S1209において、メイン制御部902は、FWグループの特定に成功したか否かを判定する。必要な条件に該当する行が、FWグループ情報テーブル1001に見当たらない場合、FWグループの特定に失敗となる。S1209において、FWグループの特定に成功した場合、メイン制御部902は、S1210に進む。S1209において、FWグループの特定に失敗した場合、メイン制御部902は、S1261に進む。S1261において、メイン制御部902は、一括ダウンロードリクエストのレスポンスとして、FWグループ未検出エラーを返して、処理を終了する。尚、リクエストパラメータにデバイス地域コードが設定されている場合、そのデバイス地域コードが不正の場合にも、FWグループ未検出エラーとなる。
S1210において、メイン制御部902は、S1208またはS1241で特定したFWグループに関し、そのFWグループを構成するFWコンポーネントの情報をリストアップする。FWグループを構成するFWコンポーネントの情報は、FWコンポーネント情報テーブル1002から取得し、リストアップする。メイン制御部902は、FWコンポーネント情報テーブル1002において、FWグループID列1052に、S1208またはS1241で特定したFWグループID値を持つ行を検索する。検索にヒットした行のFWコンポーネントID列1051の値が、FWグループを構成するFWコンポーネントの情報である。
S1211において、メイン制御部902は、FWグループを構成するFWコンポーネントのファイルをアーカイブし、FWグループのアーカイブファイルを作成する。メイン制御部902は、FWグループのアーカイブファイルの作成は、以下のように行う。すなわち、S1210でリストアップしたFWグループを構成するFWコンポーネントに関し、FWコンポーネント情報テーブル1002のFWコンポーネントファイル名列1055の値を参照する。そのファイル名に合致するFWコンポーネントファイルを、FW実体保持領域934から収集する。その収集したFWコンポーネントファイルを、一つのFWグループのファイルとして、アーカイブしていく。
S1212において、メイン制御部902は、FWグループのFW管理ファイルを生成する。FW管理ファイルは、前述の通り、FW登録リクエストの際にリクエストパラメータで指定されるファイルである。その情報は、FW登録の際に、配信システム101により、FWグループ情報テーブル1001、および、FWコンポーネント情報テーブル1002に分解されて保持されている。メイン制御部902は、それらの情報を該当のFWグループに関して再構成することによって、そのFWグループのFW登録の際に受け取ったFW管理ファイルを再生する。
S1213において、メイン制御部902は、S1211で作成したアーカイブファイルおよび、S1212で生成したFW管理ファイルをレスポンスパラメータに設定して、リクエスト先にレスポンスを返す。その後、配信システム101は、処理を終了する。前述した通り、ここでの処理で、初期設定用アプリケーションに対して応答されたFW管理ファイルなどの情報は、USBメモリ上の初期設置用の構成ファイルとして、書き込まれることになる。
S1253において、メイン制御部902は、リクエストパラメータに、デバイス地域コードの情報、および、デバイスシリアル番号の情報が含まれているか否かを判定する。S1253において、リクエストパラメータにデバイス地域コードの情報、および、デバイスシリアル番号の情報が含まれていると判定した場合、メイン制御部902は、S1254に進む。S1254において、メイン制御部902は、リクエストパラメータに含まれるデバイス地域コードの値を、デバイスの販売地域コードとして特定する。その後、メイン制御部902は、S1206に進む。一方、S1253において、リクエストパラメータにデバイス地域コードの情報、または、デバイスシリアル番号の情報が含まれていないと判定した場合、メイン制御部902は、S1232に進む。すなわち、パラメータ不正のエラーをレスポンスとして返して、処理を終了する。
上記の通り、配信システム101のメイン制御部902は、一括ダウンロードリクエストのリクエストパラメータに認証IDが含まれているか否かにより、リクエスト元が、クライアント端末と、FWの適用対象となるネットワーク機器(MFP)とのどちらかであるかを判断する。配信システム101のメイン制御部902は、この判断結果を、例えば、一括ダウンロードリクエストのリクエスト先としてレポート情報に出力したり、実行ログファイルに書き込んだりする。レポート情報は、例えば、一括ダウンロードリクエストのクライアント種別の集計に利用される。また、実行ログファイルは、例えば、一括ダウンロードに伴うサーバーまたはクライアント側のトラブル発生時に、障害状況の分析のために利用される。
(他の実施例)
本発明は、上述した実施形態を適宜組み合わせることにより構成された装置あるいはシステムやその方法も含まれるものとする。
ここで、本発明は、上述した実施形態の機能を実現する1以上のソフトウェア(プログラム)を実行する主体となる装置あるいはシステムである。また、その装置あるいはシステムで実行される上述した実施形態を実現するための方法も本発明の一つである。また、そのプログラムは、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給され、そのシステム或いは装置の1以上のコンピュータ(CPUやMPU等)によりそのプログラムが読み出され、実行される。つまり、本発明の一つとして、さらにそのプログラム自体、あるいは該プログラムを格納したコンピュータにより読み取り可能な各種記憶媒体も含むものとする。また、上述した実施形態の機能を実現する回路(例えば、ASIC)によっても、本発明は実現可能である。