(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-02
(45)【発行日】2024-07-10
(54)【発明の名称】管理システム、情報処理装置、管理システムにおける方法、情報処理装置における方法およびプログラム
(51)【国際特許分類】
H04L 67/10 20220101AFI20240703BHJP
G06F 8/65 20180101ALI20240703BHJP
【FI】
H04L67/10
G06F8/65
(21)【出願番号】P 2020136379
(22)【出願日】2020-08-12
【審査請求日】2023-08-03
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】中澤 紀之
【審査官】白井 亮
(56)【参考文献】
【文献】米国特許出願公開第2019/0386923(US,A1)
【文献】特開2020-091825(JP,A)
【文献】特開2012-203719(JP,A)
【文献】特開2019-040344(JP,A)
【文献】米国特許出願公開第2018/0270079(US,A1)
【文献】吉田 晃,活用&選択,日経オープンシステム,日経BP社,2002年04月15日,第109号,第126-135頁
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/10
G06F 8/65
(57)【特許請求の範囲】
【請求項1】
デバイスのソフトウェアを管理するマネージャと、前記マネージャの指示に基づいて前記デバイスとネットワークを介して通信を行うエージェントとして機能する情報処理装置とを含む管理システムであって、
前記マネージャは、前記エージェントに対して、ソフトウェアの更新のための指示を送信する指示手段を有し、
前記情報処理装置は、前記エージェントの機能として、前記マネージャからの指示に基づき、前記情報処理装置で動作するリバースプロキシを示すURL情報を含むソフトウェアの更新要求を前記デバイスに対して送信する送信手段を有し、
前記デバイスにより、前記更新要求に応じて、前記リバースプロキシを示すURL情報に対して該デバイスのデバイス情報が送信されることで、当該デバイス情報が前記情報処理装置を介して前記マネージャに転送される
ことを特徴とする管理システム。
【請求項2】
前記マネージャは、
前記デバイス情報に基づき、前記ソフトウェアの更新ファイルを取得するための更新URL情報を含む応答を、前記リバースプロキシを介して前記デバイスに送信する応答手段をさらに備えることを特徴とする請求項1に記載の管理システム。
【請求項3】
前記マネージャは、
前記エージェントが前記マネージャと同一ホストで動作しているか否かを判定する判定手段と、
前記エージェントが前記マネージャと同一ホストで動作している場合、前記マネージャのURL情報を前記更新URL情報として指定する指定手段と、
を有することを特徴とする請求項2に記載の管理システム。
【請求項4】
前記指定手段は、前記エージェントが前記マネージャと異なるホストで動作している場合、前記エージェントのキャッシュを経由して前記更新ファイルを取得するための前記エージェントのURL情報を前記更新URL情報として指定することを特徴とする請求項3に記載の管理システム。
【請求項5】
前記マネージャは、
前記デバイス情報に基づいて、前記ソフトウェアの更新ファイルを決定する決定手段をさらに有することを特徴とする請求項1乃至4の何れか1項に記載の管理システム。
【請求項6】
前記デバイス情報は、前記デバイスの製品情報及び前記ソフトウェアのバージョン情報を含むことを特徴とする請求項1乃至5の何れか1項に記載の管理システム。
【請求項7】
前記情報処理装置は、
前記ソフトウェアをキャッシュするキャッシュ手段をさらに備えることを特徴とする請求項1乃至6の何れか1項に記載の管理システム。
【請求項8】
デバイスのソフトウェアを管理するマネージャと、前記マネージャの指示に基づいて前記デバイスとネットワークを介して通信を行うエージェントとして機能する情報処理装置とを含む管理システムにおける方法であって、
前記マネージャは、前記エージェントに対して、ソフトウェアの更新のための指示を送信する指示工程を有し、
前記情報処理装置は、前記エージェントの機能として、前記マネージャからの指示に基づき、前記情報処理装置で動作するリバースプロキシを示すURL情報を含むソフトウェアの更新要求を前記デバイスに対して送信する送信工程を有し、
前記デバイスにより、前記更新要求に応じて、前記リバースプロキシを示すURL情報に対して該デバイスのデバイス情報が送信されることで、当該デバイス情報が前記情報処理装置を介して前記マネージャに転送される
ことを特徴とする方法。
【請求項9】
デバイスとネットワークを介して通信を行うエージェントとして機能する情報処理装置であって、
マネージャからのソフトウェアの更新のための指示に基づき、前記エージェントの機能として、前記情報処理装置で動作するリバースプロキシを示すURL情報を含むソフトウェアの更新要求を前記デバイスに対して送信する送信手段を有し、
前記デバイスにより、前記更新要求に応じて、前記リバースプロキシを示すURL情報に対して該デバイスのデバイス情報が送信されることで、当該デバイス情報が前記情報処理装置を介して前記マネージャに転送される
ことを特徴とする情報処理装置。
【請求項10】
前記マネージャにより、前記デバイス情報に基づき、前記ソフトウェアの更新ファイルを取得するための更新URL情報を含む応答が、前記リバースプロキシを介して前記デバイスに送信されることを特徴とする請求項9に記載の情報処理装置。
【請求項11】
デバイスとネットワークを介して通信を行うエージェントとして機能する情報処理装置における方法であって、
マネージャからのソフトウェアの更新のための指示に基づき、前記エージェントの機能として、前記情報処理装置で動作するリバースプロキシを示すURL情報を含むソフトウェアの更新要求を前記デバイスに対して送信する送信工程を有し、
前記デバイスにより、前記更新要求に応じて、前記リバースプロキシを示すURL情報に対して該デバイスのデバイス情報が送信されることで、当該デバイス情報が前記情報処理装置を介して前記マネージャに転送される
ことを特徴とする方法。
【請求項12】
コンピュータを、請求項9または10に記載の情報処理装置の手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、管理システム、情報処理装置、管理システムにおける方法、情報処理装置における方法およびプログラムに関する。
【背景技術】
【0002】
従来、ネットワークを介して接続された複数の画像形成装置(以下、デバイスと呼ぶ)を管理する管理システムが知られている。管理システムは、例えば、様々なプロトコルによる通信を使用してデバイスから情報を取得したり、デバイスに対して処理を指示したりする。デバイスにアプリケーションをインストールしたり、デバイスのファームウェアを更新したりする場合、デバイスに対してアプリケーションやファームウェアを送信する代わりに、デバイスに対してアプリケーションやファームウェアを取得するためのアドレスを指示することがある。この場合、デバイスは、指定されたアドレスからコンテンツを取得する。
【0003】
また、WEBサーバに、複数のクライアントからのアクセスが集中しないようにする技術として、例えば、特許文献1の方法が挙げられる。特許文献1では、中継サーバが、コンテンツキャッシュサーバにコンテンツのキャッシュを指示するとともに、クライアントに対して、WEBサーバ上のコンテンツの所在情報をキャッシュサーバ上の所在情報で置き換えることが開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
管理するデバイスの数が多い場合、管理システムを、全体の管理を行う一台の管理サーバ(マネージャ)と、管理サーバの指示に従ってデバイスに対する処理を実行する複数のエージェントとにより構成することがある。このような構成においてアプリケーションやファームウェアの取得処理が行われる場合、管理サーバはデバイスと直接通信してデバイスに必要な更新ファイルを決定する必要があるが、セキュリティの観点からマネージャとデバイスとの間で直接通信することを制限したい。
【0006】
しかしながら、特許文献1に記載の中継サーバでは、ソフトウェアを管理するマネージャとデバイスとの間の直接の通信を制限することは難しいという課題がある。
【0007】
本発明は、上記の課題に鑑みてなされたものであり、ソフトウェアを管理するマネージャとデバイスとの間の直接の通信を制限するための技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記の目的を達成する本発明に係る管理システムは、 デバイスのソフトウェアを管理するマネージャと、前記マネージャの指示に基づいて前記デバイスとネットワークを介して通信を行うエージェントとして機能する情報処理装置とを含む管理システムであって、
前記マネージャは、前記エージェントに対して、ソフトウェアの更新のための指示を送信する指示手段を有し、
前記情報処理装置は、前記エージェントの機能として、前記マネージャからの指示に基づき、前記情報処理装置で動作するリバースプロキシを示すURL情報を含むソフトウェアの更新要求を前記デバイスに対して送信する送信手段を有し、
前記デバイスにより、前記更新要求に応じて、前記リバースプロキシを示すURL情報に対して該デバイスのデバイス情報が送信されることで、当該デバイス情報が前記情報処理装置を介して前記マネージャに転送される
ことを特徴とする。
【発明の効果】
【0009】
本発明によれば、ソフトウェアを管理するマネージャとデバイスとの間の直接の通信を制限することが可能となる。よって、セキュリティを向上させることができる。
【図面の簡単な説明】
【0010】
【
図1】本願発明の一実施形態に係るシステムの全体構成の例を示す図。
【
図2】本願発明に係る情報処理装置のハードウェア構成の例を示す図。
【
図3A】本願発明に係るマネージャのソフトウェア構成の例を示す図。
【
図3B】本願発明に係るエージェントのソフトウェア構成の例を示す図。
【
図4】本願発明に係るデータ取得処理のフローチャート。
【
図5A】本願発明に係るアプリケーションのインストール処理のシーケンス図。
【
図5B】本願発明に係るアプリケーションのインストール処理(キャッシュ済み)のシーケンス図。
【
図6】本願発明に係るファームウェア更新処理の流れを示すシーケンス図。
【
図7】本願発明に係るファームウェア更新処理においてマネージャが実施する処理の流れを示すフローチャート。
【発明を実施するための形態】
【0011】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0012】
[システム構成]
図1は、本実施形態に係るマネージャ/エージェントシステムが含まれるネットワークシステムの全体の構成の一例を示す図である。ネットワークシステムは、1つの管理サーバ(以下「マネージャ」と記す)101と、複数のエージェント装置(以下「エージェント」記す)102、103を含んで構成されるデバイスの管理システムとして機能する。マネージャ101は、ネットワークデバイス(以下「デバイス」と記す)104~107を管理する。マネージャ101、エージェント102、103、デバイス104~107は、ネットワーク108により相互に通信可能に接続されている。
【0013】
マネージャ101は、情報処理装置にデバイス管理アプリケーションをインストールすることで実現される装置である。エージェントは、情報処理装置にデバイスエージェントアプリケーションをインストールすることで実現される装置である。1台の情報処理装置にデバイス管理アプリケーションとデバイスエージェントアプリケーションとの両方をインストールすることで、該装置でマネージャの機能に加え、エージェントの機能を実現することも可能である。そのような場合には、マネージャは、自装置内のエージェント、およびネットワーク上の他の装置で実現されている1以上のエージェントを介して複数台のデバイスを管理する。
【0014】
以下では、エージェント102はデバイス104、105を監視対象とし、エージェント103はデバイス106、107を監視対象とするものとして説明を行う。そして、以降では、エージェントの代表としてエージェント102を用い、デバイスの代表としてデバイス104を用いて、具体的な説明を行う。なお、他のエージェント及びデバイスも同等の動作を行うものとする。
【0015】
マネージャ101は、エージェント102に対して、デバイス104に対する操作を指示する。エージェント102は、マネージャ101からの指示に従いデバイス104に対して要求を送信する等の処理を行い、その処理結果をマネージャ101に送信する。エージェント102による処理の例としては、デバイス104からの機器情報や稼働情報の取得がある。その他、デバイス104の設定値の変更、デバイス104へのアプリケーションのインストール指示等がある。
【0016】
図1では、エージェントが2台、管理対象のデバイスは4台の構成を示しているが、この数は一例であり、増減してよい。したがって、数万台のデバイスを十数台のエージェントを介して管理する場合であっても、構成や動作は、以下に述べる説明と同様である。
【0017】
また、各機器を通信可能に接続するネットワーク108の構成は特に限定するものでは無い。ネットワーク108は、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などが組み合わされてよく、また、通信規格や有線/無線も問わない。
【0018】
[ハードウェア構成]
図2は、本実施形態に係る、マネージャ101やエージェント102、103として動作可能な情報処理装置のハードウェア構成の一例を示す図である。情報処理装置200は、CPU201、RAM202、ROM203、KBDC204、VC205、DC206、および、NIC207を含んで構成される。CPU201は、システムバス208を介して接続された各部位を総括的に制御する。CPU201は、ROM203や外部記憶装置211に記憶された、或いはネットワーク212を介してダウンロードしたソフトウェア(プログラム)を必要に応じてRAM202にロードして実行することで、各種機能を実現する。
【0019】
RAM202は、揮発性の記憶領域であり、CPU201の主メモリあるいはワークエリアなどとして機能する。外部記憶装置211は、ハードディスク(HD)やソリッドステートドライブ(SSD)等から構成される。外部記憶装置211は、ブートプログラム、オペレーティングシステム(OS)、認証サーバ、認証クライアント等を含む各種のアプリケーション、データベースデータ、ユーザファイル等を記憶する。前述した通り、本実施形態において、マネージャ101として動作する情報処理装置200のCPU201は、デバイス管理アプリケーションプログラムを実行する。また、エージェント102、103として動作する情報処理装置200のCPU201は、エージェントアプリケーションプログラムを実行する。
【0020】
KBDC204は、キーボードコントローラーであり、キーボードやポインティングデバイス等の入力装置209からの入力情報をCPU201に送る。VC205は、ビデオコントローラーであり、LCD等から構成される表示装置210の表示を制御する。DC206は、ディスクコントローラーであり、外部記憶装置211とのアクセスを制御する。NIC207は、通信コントローラーであり、ネットワーク212に接続され、外部装置との通信を制御する。なお、
図2に示す情報処理装置の構成は一例であり、マネージャ101とエージェント102それぞれが動作する情報処理装置の構成が異なっていてもよい。
【0021】
[ソフトウェア構成]
図3Aは、本実施形態に係るマネージャ101のソフトウェア構成の例を示す図である。本実施形態では、マネージャ101として動作する情報処理装置200が、デバイス管理アプリケーションのプログラムを読み出して実行することにより、各部位の機能が実現される。エージェント管理部301は、エージェント102、103に関する情報を管理する。デバイス管理部302は、管理対象であるデバイス104~107に関する情報を管理する。デバイスに関する情報には、デバイスとエージェントとの対応関係の情報を含む。タスク管理部303は、デバイスに対する処理の内容や結果を管理したり、各エージェントに対して各デバイスへの処理を指示したりする。これらの管理情報は、データベース(不図示)に格納される。また、マネージャ101は、各デバイスに提供可能なアプリケーションのプログラムデータを外部記憶装置211にて保持し、その位置情報(格納先)等を管理しているものとする。HTTP/HTTPSサーバ304は、HTTPやHTTPSの通信を用いて、エージェントやデバイスからの要求を受信したり、マネージャ101をユーザが操作するためのWEB UIを提供したりする。
【0022】
ファームウェア管理部305は、デバイスのファームウェアの管理を行う。なお、デバイスはファームウェアのサイズが肥大化しており、デバイスのファームウェアを更新する際に、ファームウェア全体を転送すると、多くのバンド幅と時間を必要とする。これを回避するために、ファームウェア更新用のサーバに接続し、デバイスの現在のファームウェアとの差分ファイルを取得するようにデバイスに指示することが行われている。
【0023】
SOAP HTTP/HTTPSサーバ306は、ファームウェア更新要求のSOAPメッセージを受信し、ファームウェア管理部305内の機能を呼び出し、その結果を要求送信元に返信する。なお、ここでは、HTTP/HTTPSサーバ304と、SOAP HTTP/HTTPSサーバ306とを別の要素として構成しているが、これらの機能を単一のHTTP/HTTPSサーバが提供してもよい。
【0024】
ファームウェア管理部305には、各種デバイスのファームウェアが格納されている。デバイス104は、デバイス情報として、自デバイスの製品情報とファームウェアのバージョン情報と共に、HTTP/HTTPSサーバ304経由で、ファームウェア管理部305の機能を呼び出す。ファームウェア管理部305は、要求中の製品情報とバージョン情報とから、デバイス104のファームウェアを更新するために必要なデータを取得するためのアドレス情報(URL情報)を返信する。デバイス104は、そのアドレスに対して自デバイスの製品情報とファームウェアのバージョン情報とを含むHTTP/HTTPS要求を送信することにより、ファームウェア更新に必要なデータを受信し、自デバイスのファームウェアの更新を行う。
【0025】
図3Bは、本実施形態に係るエージェント102のソフトウェア構成の例を示す図である。本実施形態では、エージェント102として動作する情報処理装置200が、デバイスエージェントアプリケーションのプログラムを読み出して実行することにより、各部位の機能が実現される。タスク実行部310は、マネージャ101からの指示に従い、デバイス104に対する処理を実行した後、その処理結果をマネージャ101に送信する。HTTP/HTTPSサーバ311は、HTTPやHTTPSの通信を用いて、マネージャ101やデバイス104からの要求を受信する。キャッシュ制御部312は、マネージャ101内のコンテンツのキャッシュ機能を提供する。
【0026】
HTTP/HTTPSのリバースプロキシ313は、受信したHTTP要求を、マネージャ101内のSOAP HTTP/HTTPSサーバ306へ送信するとともに、SOAP HTTP/HTTPSサーバ306からの応答を、HTTP要求の送信元に返信する。ここで、HTTP要求は、POSTであり、HTTPの本文はSOAPのXMLメッセージである。
【0027】
[データ取得処理]
図4は、
図3Bに示すエージェント102が備えるキャッシュ制御部312によるデータ取得処理の流れを示すフローチャートである。データ取得処理は、パスが特定の文字列(例えば、「/cache/」)で始まるGETリクエストをHTTP/HTTPSサーバ311が受信した際に、このパスを引数にして呼び出される。パスの例を以下に示す。
【0028】
/cache/applications/ocr.jar
/cache/firmwares/4cb89c08-76a4-4caa-8c9d-2aa1021faac5
また、本実施形態において、エージェント102は、以下の表1に示すテーブル構造によりデータを管理している。
【0029】
【0030】
表1に示すテーブルにおいて、パスは、引数で渡されたパス、即ちHTTP/HTTPSサーバ311が受信したGETリクエストにて指定されたパスを示す。ファイル名は、パスで示されるデータを取得し、エージェント102にて保存した際のファイルのファイル名を示す。最終アクセス日時は、パスを引数にしてデータ取得処理が呼び出された日時を示す。コンテンツタイプは、データの型を示す文字列である。
【0031】
S401にて、キャッシュ制御部312は、引数で渡されたパスで示されるデータが、キャッシュ済みか否かを確認する。ここで、表1に示すテーブルを参照し、引数で渡されたパスが存在する場合はキャッシュ済み、存在しない場合はキャッシュ済みではないと判定される。要求されたデータがキャッシュ済みである場合(S401にてYES)S405へ進み、キャッシュ済みでない場合(S401にてNO)S402へ進む。
【0032】
S402にて、キャッシュ制御部312は、要求されたパスに対応するマネージャ101のURL(Uniform Resource Locator)を作成する。例えば、要求されたパスが「/cache/applications/sso.jar」の場合、作成されるパスは「/public/applications/sso.jar」となる。この様に、要求されたパスの一部の文字列(cache)が、別の文字列(public)で置き換えられる。
【0033】
S403にて、キャッシュ制御部312は、HTTP/HTTPSサーバ311を介して、S402にて作成したURLに対してHTTP或いはHTTPSのGET要求を、マネージャ101のHTTP/HTTPSサーバ304に対して送信する。そして、キャッシュ制御部312は、その要求に対する応答に含まれるデータをファイルに保存する。
【0034】
S404にて、キャッシュ制御部312は、マネージャ101から取得したデータに関するエントリを表1に示すテーブルに追加する。ここでの追加において、コンテンツタイプは、マネージャ101内のHTTP/HTTPSサーバ304からの応答におけるHTTPヘッダにて示されるコンテンツタイプが設定される。
【0035】
S405にて、キャッシュ制御部312は、表1に示すテーブルにおける最終アクセス日時の値を現在日時で更新する。
【0036】
S406にて、キャッシュ制御部312は、表1に示すテーブルのファイル名で示されるファイルのデータと、コンテンツタイプとをHTTP/HTTPSサーバ311に返す。このとき、HTTP/HTTPSサーバ311は、コンテンツタイプの値を、デバイスへの応答のHTTPヘッダに設定し、また、対応するデータを応答の本文に設定する。その後、HTTP/HTTPSサーバ311は、GETリクエストの呼出し元(デバイス)にその応答を返す。
【0037】
[処理シーケンス]
(キャッシュ前)
図5Aは、マネージャ101が、エージェント102に対応付けられたデバイス104に対して、アプリケーションのインストールを指示する際の処理の流れを示すシーケンス図である。本処理シーケンスの開始時点では、エージェント102はインストールするアプリケーションのデータをキャッシュしていないものとする。また、マネージャ101とエージェント102のIPアドレスはそれぞれ、"192.168.10.100"、"192.168.10.200"であるとする。
【0038】
まず、マネージャ101は、エージェント102のHTTP/HTTPSサーバ311に対して、デバイス104に対してアプリケーションのインストールの指示を含む要求を送信する(S501)。ここでの指示には、デバイス104がアプリケーションを取得するためのURL502(例えば、「http://192.168.10.100/public/applications/ocr.jar」)が含まれる。ここでのURLは、マネージャ101が管理するアプリケーションのプログラムデータの格納先を示す。
【0039】
エージェント102のHTTP/HTTPSサーバ311は、マネージャ101からの要求を受信すると、要求された指示を実行するためにタスク実行部310を呼び出す。タスク実行部310は、上記要求に含まれるURL502をエージェント102のキャッシュ用のURL504(例えば、「http://192.168.10.200/cache/applications/ocr.jar」に置換する。ここで、マネージャ101とエージェント102が同じ情報処理装置で動作している場合、上記置換を行わない。同じ情報処理装置で動作している場合とは、即ち、URL502のホストアドレス部分(上記URLのIPアドレス部分に相当)が、エージェント102の動作するホストのアドレスと同じ場合に相当する。
【0040】
次に、タスク実行部310は、デバイス104に対し、要求を送信する(S503)。ここでの要求には、デバイス104が、置換後のURL504を用いてアプリケーションを取得し、インストールするような指示を含む。
【0041】
エージェント102からの要求を受信したデバイス104は、当該要求に含まれるURL504に対して、アプリケーションを取得するための取得要求をエージェント102に対して送信する(S505)。
【0042】
エージェント102のHTTP/HTTPSサーバ311は、デバイス104からの取得要求を受信すると、
図4で説明したデータ取得処理を呼び出す。この時点では、エージェント103は、URL504で示されるデータをキャッシュしていないため、
図4に示した処理に従い、マネージャ101のURLに対して、アプリケーションを取得するための要求を送信する(S506)。ここで、
図4のS402で生成されるURLは、URL502と同じである。
【0043】
マネージャ101のHTTP/HTTPSサーバ304は、URLで要求されたデータ508をエージェント102に返す(S507)。
【0044】
エージェント102のキャッシュ制御部312は、
図4に記載の処理に従って、マネージャ101から取得したデータ508をキャッシュする。更に、エージェント102のHTTP/HTTPSサーバ311は、デバイス104に対してキャッシュしたデータ508を返信することで、ソフトウェアの配信を行う(S510)。その後、デバイス104では、エージェント102から受信したデータ508を用いてアプリケーションのインストールが行われる。そして、本処理シーケンスが終了する。なお、マネージャ101とエージェント102が同じ情報処理装置で動作している場合には、エージェント101において、ソフトウェアのキャッシュ動作を省略してよい。例えば、
図4の処理の開始前にマネージャ101とエージェント102それぞれが動作する情報処理装置を特定し、その特定結果に応じて、
図4の処理の内容を変更してもよい。具体的には、
図4の処理に代えて、エージェント102は、マネージャ101から取得したソフトウェアのデータをそのままデバイス104に転送するように処理してもよい。
【0045】
(キャッシュ後)
図5Bは、
図5Aに示す処理の後に、マネージャ101が、エージェント102に対応付けられたデバイス105に対して、同じアプリケーションのインストールを指示する際の処理の流れを示すシーケンス図である。本処理シーケンスの開始時点では、エージェント102は、
図5Aに示す処理の結果、アプリケーションのデータをキャッシュしていることとなる。
【0046】
S521~S523の処理は、
図5AのS501~S505と同様であるため、説明は省略する。
図5BのS523でデバイス105から送信された要求にて指定されるURLは、
図5AのS505の要求のURL(URL504)と同じである。この要求を受信したエージェント102のHTTP/HTTPSサーバ311は、
図4で説明したデータ取得処理を呼び出す。ここで、URL504に対応するデータ508は
図5AのS506~S507の処理により、すでにエージェント102内にキャッシュされている。
【0047】
エージェント102のキャッシュ制御部312は、キャッシュされたデータ508をHTTP/HTTPSサーバ311によりデバイス105に返信する(S524)。その後、デバイス105では、エージェント102から受信したデータ508を用いてアプリケーションのインストールが行われる。そして、本処理シーケンスが終了する。
【0048】
図5Aおよび
図5Bでは、マネージャ101とエージェント102との間、及び、エージェント102とデバイス104、105との間の通信は、HTTPを使用している。両通信が共にHTTPSを用いて行われてもよい。もしくは、マネージャ101とエージェント102との間の通信を、HTTPSを用いて行い、エージェント102とデバイス104との間の通信を、HTTPを用いて行ってもよい。この場合、URL502とURL504のプロトコル部はいずれも「http」であるが、エージェント102のキャッシュ制御部312が
図4のS402で生成するURLは、URL502のプロトコル部を「https」で置き換えたものとなる。また、通信において、他のプロトコル(例えば、FTP:File Transfer Protocol)が用いられてもよい。
【0049】
図5Aおよび
図5Bでは、デバイス104、105がアプリケーションを取得するためのURLの置き換えを、エージェント102が処理している。この置き換え処理をマネージャ101で実行してもよい。この場合、先ず、マネージャ101は、デバイス104に対応付けられたエージェント102のホストアドレスを取得する。次に、マネージャ101からアプリケーションのデータを取得するためのURL502を、エージェント102のキャッシュ取得用のURL504で置き換える。この場合でも、エージェント102とマネージャ101が同じホスト上で動作する場合は、上記の置き換えは行われない。マネージャ101は、URL504を、
図5AのS501及び
図5BのS521で、エージェント102に送信する。この場合、エージェント102は、URLの置き換えをせず、
図5AのS503及び
図5BのS522で、デバイス104、105に送信する。その後、エージェント102がURL504に基づいてソフトウェアの取得要求をデバイスから受信した際に、対応するソフトウェアがキャッシュされていない場合には、エージェント102は、URL504をマネージャ101のURL502に変換する。そして、URL502を用いてソフトウェアを取得する。以降の処理は、上記と同様であるため、説明を省略する。
【0050】
エージェント102は、表1に示すテーブルのキャッシュ管理情報を定期的にメンテナンスする処理を行ってよい。例えば、テーブルに登録されてから一定の時間が経過したエントリおよびそのデータは削除してよい。具体的には、最終アクセス日時と現在日時とが指定値(例えば、24時間)以上のエントリに関し、そのエントリのファイルパスで示されるエージェント102内のファイルを削除するとともに、表1の対応するエントリを削除する処理を行ってよい。
【0051】
以上説明したように、本実施形態では、エージェントに対してソフトウェアのキャッシュ機能を設ける。これにより、アプリケーションやファームウェアの取得を行う際に、マネージャへのアクセスの集中を回避し、マネージャの負荷を軽減することが可能となる。
【0052】
[処理シーケンス]
続いて、
図6は、マネージャ101が、エージェント102に割り当てられたデバイス104に対して、ファームウェアの更新を指示する場合の処理の流れを示すシーケンス図である。ここで、エージェント102は、デバイス104のファームウェアの更新に必要なデータをキャッシュしていないと仮定する。また、マネージャ101及びエージェント102のIPアドレスはそれぞれ、192.168.10.100及び192.168.10.200であるとする。
【0053】
まず、一連の処理の概要を説明する。デバイスはエージェントに必要なファームウェアを問い合わせる。エージェントは、その問い合わせをマネージャに転送し、マネージャからの応答をデバイスに転送する。その応答の転送によって、マネージャはファームウェアの更新ファイルをエージェントから取得するようにデバイスに指示する。そして、その指示に応じて、デバイスはファームウェアの更新ファイルをエージェントから取得する。その際、エージェントはキャッシュにファームウェアの更新ファイルがある場合はキャッシュ内の更新ファイルをデバイスへ送信する。一方、キャッシュに更新ファイルが存在しない場合には、エージェントはマネージャから更新ファイルを取得してキャッシュに保存した後、更新ファイルをデバイスへ送信する。
【0054】
図6において、マネージャ101は、エージェント102のHTTP/HTTPSサーバ311に対して、デバイス104に対するファームウェアの更新指示を含む要求を送信する(S601)。ここでの指示は、デバイス104がファームウェアの更新を開始するためのマネージャ101内のSOAP HTTP/HTTPSサーバ306のURL602(例えば、「http://192.168.10.100:8080/ws/basic/」)を含む。
【0055】
エージェント102内のHTTP/HTTPSサーバ311は、その要求を受信し、要求された処理を実行するためにタスク実行部310を呼び出す。タスク実行部310は、その要求に含まれるURL602をエージェント102の(エージェント内の)HTTP/HTTPSリバースプロキシ313のURL'604(例えば、「http://192.168.10.200:8080/ws/basic/)に置き換え、ファームウェア更新要求をデバイス104へ送信する(S603)。
【0056】
デバイス104は、その要求を受信し、要求に含まれるURL'604に対して、自デバイスの製品情報とファームウェアのバージョン情報とを含むSOAPメッセージ606を含むHTTP/HTTPS要求を送信する(S605)。
【0057】
エージェント102のHTTP/HTTPSリバースプロキシ313は、この要求を受信すると、要求中のSOAPメッセージ606をそのまま、マネージャ101のSOAP HTTP/HTTPSサーバ306のURL(例えば、「https://192.168.10.100:8443/ws/secure/」)に送信する(S607)。ここで、デバイス104からの要求はHTTPであるが、エージェントとマネージャとの間の通信の機密性を向上させるためにHTTPSプロトコルを使用している。
【0058】
マネージャ101内のSOAP HTTP/HTTPSサーバ306は、その要求を受信し、ファームウェア管理部305のファームウェア更新処理を呼び出す。
【0059】
ここで、
図7は、
図6のステップS607の処理を受けて、マネージャ101内のファームウェア管理部305が実施するファームウェア更新処理の流れを示すフローチャートである。
【0060】
先ず、S701にて、ファームウェア管理部305は、SOAPメッセージに含まれる、デバイス104のデバイスの製品情報とファームウェアのバージョン情報とを取り出す。
【0061】
S702にて、ファームウェア管理部305は、S701で取り出した情報に基づいて、デバイス104のファームウェアの更新に必要なファイルを決定する。
【0062】
次に、S703にて、ファームウェア管理部305は、デバイス104に紐づいたエージェント102の情報を取得する。
【0063】
S704にて、ファームウェア管理部305は、エージェント102がマネージャ101と同じホストで動作しているか否かを確認する。確認の結果、エージェント102とマネージャ101とが同一ホストで動作している場合、S705へ進む。
【0064】
S705にて、ファームウェア管理部305は、マネージャ101のHTTP/HTTPSサーバ304のURLからファイルを取得するためのURLを指定する。URLは例えば「https://192.168.10.100/public/firmwares/ca071592-3a64-4c88-9013-cd28a73a7901」である。
【0065】
一方、エージェント102とマネージャ101とが異なるホストで動作している場合、S706へ進む。
【0066】
S706にて、ファームウェア管理部305は、エージェント102のキャッシュを経由してファイルを取得するためのURLを指定する。ここでのURLは、エージェント102のリバースプロキシのURLであり、例えば「https://192.168.10.200/cache/firmwares/ca071592-3a64-4c88-9013-cd28a73a7901」である。
【0067】
最後に、S707にて、ファームウェア管理部305は、S705又はS706で決定したURL を処理の呼び出し元(デバイス)に返信する。
【0068】
このように、エージェント102とマネージャ101とが同一ホストで動作している場合は、ファームウェアデータの取得に際して、エージェント102のキャッシュ機能を利用せず、異なるホストで動作している場合は、キャッシュ機能を利用する。
【0069】
なお、本実施形態では、エージェントがマネージャと同一ホストで動作しているものとして説明を行う。すなわち、S704でYesとなり、S705へ進み、S707でマネージャのURLを返す。
【0070】
以上で
図7の一連の処理が終了し、
図6に戻る。この時、
図7に示す処理に従って、デバイス104がファームウェアを更新するためのデータを取得するためのURL'' 609が指定されている。URL''609は更新URL情報であり、例えば「https://192.168.10.200/cache/firmwares/ca071592-3a64-4c88-9013-cd28a73a7901」である。
【0071】
そして、マネージャ101は、このURL''609を、S607でのエージェント102のHTTP/HTTPSリバースプロキシ313からの要求の応答として返信する(S608)。
【0072】
エージェント102のHTTP/HTTPSリバースプロキシ313は、この応答を受信する。そして、HTTP/HTTPSリバースプロキシ313は、ファームウェア取得用URL''609を含むこの応答を、そのままデバイス104へ返信する(S610)。
【0073】
デバイス104は、この応答を受信すると、ファームウェアの更新に必要なデータを取得するために、S610で受信した応答中に含まれるURL''609に対してHTTP/HTTPS要求を送信する(S611)。
【0074】
このHTTP/HTTPS要求を受信したエージェント102のHTTP/HTTPSサーバ311は、
図4で説明したデータ取得処理を呼び出す。本シーケンスに係る以降の処理(S612、S613、S615の処理)は、
図5AのS506からS510に記載した処理と同様であるため、説明を省略する。
【0075】
最後に、S615で応答を受信したデバイス104は、応答中に含まれるデータ614を用いて、自デバイスのファームウェアの更新処理を実行する。
【0076】
ここで、エージェント102のキャッシュ制御部312に指定されたデータがキャッシュされている場合は、
図5BのS523からS524に記載の処理が実行され、マネージャ101に対するデータの取得が実行されないことは言うまでもない。以上で
図6の一連のシーケンスが終了する。
【0077】
以上説明したように、
図6のシーケンスによれば、エージェントにマネージャへの問い合わせ要求の転送機能を設け、デバイスに対して問い合わせ先としてエージェントの転送機能のアドレスを指定する。これにより、デバイスとマネージャとの通信を制限することが可能となり、セキュリティを向上させることができる。
【0078】
[変形例]
デバイス104が、HTTPS通信に際して、信頼できない証明書を持つHTTPSサーバとの通信を許可しないように設定されている場合がある。ここでは、マネージャ101のHTTPSサーバは正式に発行された証明書で動作しているが、エージェント102やエージェント103のHTTPSサーバは、マネージャ101との通信の秘匿化が主目的であるため、自己署名証明書で動作しているとする。この場合、エージェントの自己署名証明書をデバイス104に登録しないと、デバイス104からエージェント102へのHTTPS接続を、デバイス104は拒否することになる。
【0079】
このような状況で、デバイス104とHTTPSを使用するように指定された場合、管理システムは、エージェント101のキャッシュ機能やHTTP/HTTPSリバースプロキシ313を使用しないように動作する。
【0080】
具体的には、上記実施形態で説明したうちの以下の処理で、URLの置き換えを実施しない。
【0081】
1.
図5AのS503
2.
図5BのS522
3.
図6のS603
さらに、
図7のS704の判定処理において「デバイスからの通信がHTTPS、或いは、エージェントがマネージャと同一ホストで動作している?」に置き換える。
【0082】
なお、本実施形態では、デバイスのファームウェアの更新を例に説明を行ったが、本発明は広くソフトウェアの更新のためにデバイスが更新ファイルを取得することに適用できることは言うまでもない。
【0083】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0084】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0085】
101...管理サーバ(マネージャ)、102,103...エージェント装置(エージェント)、104~107...デバイス、301...エージェント管理部、302...デバイス管理部、303...タスク管理部、304...HTTP/HTTPSサーバ、305...ファームウェア管理部、306...SOAP HTTP/HTTPSサーバ310...タスク実行部、311...HTTP/HTTPSサーバ、312...キャッシュ制御部、313...HTTP/HTTPSリバースプロキシ