JP2018120537A - 情報処理システム、情報処理ステムの制御方法およびそのプログラム。 - Google Patents

情報処理システム、情報処理ステムの制御方法およびそのプログラム。 Download PDF

Info

Publication number
JP2018120537A
JP2018120537A JP2017013241A JP2017013241A JP2018120537A JP 2018120537 A JP2018120537 A JP 2018120537A JP 2017013241 A JP2017013241 A JP 2017013241A JP 2017013241 A JP2017013241 A JP 2017013241A JP 2018120537 A JP2018120537 A JP 2018120537A
Authority
JP
Japan
Prior art keywords
tenant
message
receiving
child
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017013241A
Other languages
English (en)
Other versions
JP6584440B2 (ja
Inventor
克也 坂井
Katsuya Sakai
克也 坂井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2017013241A priority Critical patent/JP6584440B2/ja
Priority to KR1020180006826A priority patent/KR102235992B1/ko
Priority to US15/878,198 priority patent/US10466942B2/en
Priority to EP18153682.2A priority patent/EP3355183A1/en
Priority to CN201810076847.6A priority patent/CN108366101B/zh
Publication of JP2018120537A publication Critical patent/JP2018120537A/ja
Application granted granted Critical
Publication of JP6584440B2 publication Critical patent/JP6584440B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/123Software or firmware update, e.g. device firmware management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1205Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1287Remote printer device, e.g. being remote from client or server via internet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00204Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
    • H04N1/00244Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server with a server, e.g. an internet server

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】トップダウン型の指示を行うシステムにおいて、中間層における装置でのメッセージ処理プロセスを容易にする。【解決手段】情報伝達の階層構造に対応させてトピックも階層化しパブリッシュ/サブスクライブ型のメッセージ通信により情報伝達を行う。情報伝達の階層構造にあわせてサブスクライバ/パブリッシャを用意してメッセージ通信するが、承認プロセスが不要な場合はシステムがメッセージ通信を代行する。【選択図】図5

Description

本発明はネットワークに接続されている2つの装置間のデータ送受信に関しそのデータを仲介する情報処理システム、情報処理システムの制御方法および損プログラムに関する。
企業内のコンピュータへの更新ソフトウェアの配信を管理するためにアップデートサーバを階層化する技術が特許文献1で知られている。特許文献1は、ルート配信サーバと少なくとも1つの子配信サーバとを備え、各ルート配信サーバは子配信サーバに対して親サーバとして機能することができるような構成をとる。このため、各階層の配信サーバにて配信ポリシーを決めることで、各階層でのソフトウェア配信を制御できるようになる。
特開2005−259114号公報
しかしながら特許文献1の技術では、配信されるデータの配信可否を判断したい管理者が複数いた場合、それぞれの管理者が更新サーバを構築することになるためコストが増大する虞、および/または配信システムの構築が容易ではない虞があった。本願発明では、トップダウン型の指示を行うシステムにおいて、中間層における装置でのメッセージ処理プロセスを容易にすることを目的とする。
本願発明の課題を解決する情報処理システムは、テナントの作成指示に従い前記テナントが作成されたことに応じて、前記テナントと他のテナントとの階層関係を反映したメッセージ属性を生成する生成手段と、生成された前記メッセージ属性を設定する設定手段と、特定のテナントからメッセージを受信する受信手段と、前記設定手段により設定された子テナントのメッセージ属性を基に、前記特定のテナントの直下に配置された前記子テナントに対し受信された前記メッセージを送信する送信手段を有することを特徴とする。
トップダウン型の指示を行うシステムにおいて、中間層における装置でのメッセージ処理プロセスを容易にすることが可能となる。
システム構成を示す図 システム構成要素のハードウェア構成を示すブロック図 ソフトウェアモジュールを示す図 更新システム上で管理される各テナント/デバイス情報の例 テナント部を追加する際の処理手順を示すシーケンス 画像形成装置を追加する際の処理手順を示すシーケンス 承認プロセスの要否を変更する際の処理手順を示すシーケンス 新バージョン適用要求を画像形成装置に通知する際のシーケンス 画像形成装置の処理結果を受け取る際のシーケンス ファームウェア更新に関連する操作画面の例
[実施例1]
実施例1では、印刷機能を有するMFP(Multi−Function−Peripheral)を例に本願発明の解決手段を説明する。近年、MFPを始めとするエンタープライズ向けデバイスは、バグ修正や機能追加等で一度市場に出た後も継続的にファームウェアが更新されるようになっている。このようなエンタープライズ向けデバイスは、デバイス製造会社(ファームウェア提供元)と利用者の関係の中間に、販売会社、ディーラーのサポート担当者および企業のデバイス管理者などのデバイス管理責任者が介在することが多い。よって、デバイスのファームウェアを更新する際も、デバイス利用者個人のみの判断で決まるのではなく、その間に存在する各責任者の承認の後に更新を実施することが望ましい。
例えば、デバイス製造会社からセキュリティ関連のファームウェアの更新バージョンがリリースされた場合を考える。販売会社としてはサポート体制が整うまでは更新を行わせたくない為、すぐには顧客に対して更新バージョンをリリースしたくない。また、顧客企業の管理者としては、社内システムとの連携で問題が発生しないことが確認できるまではファームウェアを更新させたくない。このため、デバイス製造会社がリリースしたファームウェアは、販売会社および顧客企業の承認後に実際にデバイスに適用されることになる。しかしながら、先に述べた様に配信システムの構築が容易ではない虞があり、承認プロセスの実現には非常に手間がかかる。
次に、上述した課題を解決するのに適した実施形態について図面を用いて説明する。本実施形態に係る画像形成装置のファームウェア更新システムは、図1に示すような構成のネットワーク上に実現される。100はWide Area Network(WAN100)である。101は、各構成要素を接続するLocal Area Network(LAN101)である。
ブローカ200は、MQTTと呼ばれる通信プロトコルを用いたデータ通信を行うためのサーバである。MQTTは、パブリッシュ/サブスクライブモデルにてメッセージと呼ばれるデータを送受信する通信プロトコルである。パブリッシュ/サブスクライブモデルは、メッセージ送信者(以下、パブリッシャと呼ぶ)からメッセージ受信者(以下、サブスクライバと呼ぶ)に対して、メッセージ仲介者(ブローカ200)を介してメッセージを配信するモデルである。サブスクライバは、予め受信したいメッセージ属性(以下、トピックと呼ぶ)をブローカに設定(以下、サブスクライブと呼ぶ)しておく。ブローカにより設定された後、サブスクライバはブローカ200とインターネットを介して確立したネットワークセッションを維持し続ける必要がある。無論、常にネットワークセッションを維持し続ける必要はないが、リアルタイムでメッセージを処理したい場合は高頻度でブローカ200とネットワーク接続する必要がある。パブリッシャがトピックを指定してブローカに対してメッセージを送信すると、ブローカはそのトピックをサブスクライブしているサブスクライバに対してメッセージを配信する。
トピックは、分離文字(”/”)を使用して階層構造で表現することができる。また、サブスクライブ時のトピックには特殊文字(ワイルドカード)を含めることで、一度に複数のトピックへのサブスクライブが可能である。例えば、“/foo/#”というトピックをサブスクライブしておくと、“/foo/bar“や”/foo/bar/baz”などのトピックにパブリッシュされたメッセージを受信可能である。また、サブスクライバがサブスクライブしているトピックについてのメッセージの受信を止めたい場合は、購読解除(以下、アンサブスクライブと呼ぶ)することもできる。購買解読するために、サブスクライバはブローカ200とインターネットを介して確立したネットワークセッションを切断する必要がある。サブスクライバはネットワークセッションを切断することでトピックにパブリッシュされたメッセージを受信できなくなる。トピックをサブスクライブするサブスクライバ―がいない場合、トピックを削除して設定を解除することも可能である。
ブローカ200は、トピック毎に最後にパブリッシュされたメッセージを保持しておき、新たなサブスクライバが追加された時に最後にパブリッシュされたメッセージを追加されたサブスクライバに送信する機能(以下、リテインと呼ぶ)も備える。これによりサブスクライバはサブスクライブした時点での最新の情報を取得することが可能となっている。なお、実施例1ではMQTTを前提としたシステムになっているが、ブローカ200のような仲介装置を用い、データを送信する装置とデータを最終的に受信する装置の2点間の装置におけるデータ送受信を実現するデータ通信プロトコルであれば何でも良い。
更新管理サーバ300は、ファームウェア更新に関わるメッセージを制御するためのサーバである。更新管理サーバ300は、画像形成装置500の販売やサポートを行っている販売会社/ディーラーや、画像形成装置を導入している顧客企業と言ったテナント毎にテナント部720を備えている。テナント部720は、各販売会社や顧客企業の管理者からの承認指示を受けてファームウェア更新に関するメッセージ処理を行う機能であり、端末400などからの指示を受け更新管理サーバ300内で動的に実現される機能である。承認プロセスが不要な販売会社や顧客企業については、対応するテナント部で処理を行わずに更新管理サーバ300内の別のソフトウェア機能がメッセージ処理を代行する。なお、実施例1においては更新管理サーバ300内にテナント部720を配置し、販売会社や顧客企業からの承認プロセスを行う構成としているが、別のサーバを立てテナント部で行う処理を実行する構成としてもよい。その別のサーバが既存のサーバであればサーバ構築のコスト面の課題は解消することになり、ブローカ200を利用することで承認プロセスも容易に可能となる。
400aおよび400bはPCやスマートフォンに代表される情報端末でありWebブラウザ401が組み込まれている。デバイス製造会社や販売会社などのファームウェア更新担当者は、Webブラウザ401を利用して、更新管理サーバ300に対して指示を出す。400aはデバイス製造会社および販売会社の担当者が利用する端末の接続の例であり、400bは、画像形成装置500を利用している顧客企業の担当者が利用する端末の接続の例である。この例はあくまで一例であり、ネットワーク通信可能な状態で接続されていればどこに存在しても良い。そのため、以降の説明では400aと400bを区別せずに端末400として説明する。また、実施例1では更新管理サーバ300への指示をWebブラウザ401を介して行う構成としているが、専用のアプリケーションを利用する構成でもよい。
500は、MFPと言った画像形成装置である。画像形成装置500は、ブローカ200からファームウェアの更新指示を受けると、受信した情報に基づいて自動的にファームウェアを更新する機能を備える。
ブローカ200および更新管理サーバ300は1台の情報処理装置で構成されているように図1では図示されているが、複数台の情報処理装置でブローカ200および更新管理サーバ300を構成する形態も考えられる。本願発明で情報処理システムと称した場合、1台、または複数台の情報処理装置で構成されたシステムを示すものとする。
図2は、ブローカ200、更新管理サーバ300、端末400、画像形成装置500のハードウェア構成の一例を示す図である。図2(a)に示されるハードウェアブロック図は、PC等の一般的な情報処理装置のハードウェアブロック図に相当するものとし、本実施形態の各サーバ及び端末には一般的な情報処理装置のハードウェア構成を適用できる。
以下、図2(a)のハードウェア構成を、ブローカ200のハードウェア構成とした場合を例に説明する。CPU201は、ROM203或いはハードディスク(HD)等の外部記憶装置211からRAM202にロードされたOSやアプリケーション等のプログラムを実行し、システムバス204に接続される各ブロックを制御する。本願発明におけるOSとはコンピュータ上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをOSと呼ぶ。RAM202は、CPU201の主メモリ、ワークエリア等として機能する。
キーボードコントローラ(KBC)205は、キーボード209や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)206は、CRTディスプレイ210の表示を制御する。ディスクコントローラ(DKC)207は、各種データを記憶するハードディスク(HD)等の外部記憶装置211におけるデータアクセスを制御する。ネットワークコントローラ(NC)208は、WAN100、LAN101、もしくは公衆回線を介して接続された他の機器との通信制御処理を実行する。後述する説明においては、特に断りのない限り、ブローカ200における実行のハード上の主体はCPU201であるものとする。そして、CPU201が外部記憶装置211等に記憶されているアプリケーションプログラムを実行することにより、後述するブローカ200のソフトウェア構成及びシーケンス図におけるブローカ200の処理が実現される。
更新管理サーバ300、端末400のハードウェア構成についても上述した図2(a)の通りである。即ち、それぞれのCPU201がそれぞれの外部記憶装置211等に記憶されているアプリケーションプログラムを実行することにより、それぞれの後述するソフトウェア構成及びシーケンス図における処理が実現される。
図2(b)は画像形成装置500のハードウェア構成を示す。上述した図2(a)とほぼ同様の構成であるため差分だけを説明する。画像形成装置500は、キーボードコントローラ(KBC)205やCRTコントローラ(CRTC)206を備えず、スキャナI/F制御部230、プリンタI/F制御部231、パネル制御部232を備える。スキャナI/F制御部230は、原稿からの画像データ入力を行うためにスキャナ233を制御する。スキャナ233は、原稿を読み込み画像データを生成するためのデバイスである。
プリンタI/F制御部231は、画像データを印刷するためにプリンタ234を制御する。プリンタ234は、画像データを紙に出力するためのデバイスである。パネル制御部232は、操作パネル235を制御し、各種情報の表示、ユーザからの指示入力を受ける。操作パネル235は、ディスプレイ、タッチパネル、ハードキーから構成され、各種設定画面を表示したり、ユーザからの指示を受けたりするためのデバイスである。画像形成装置500においても実行のハード上の主体はCPU201である。CPU201が、外部記憶装置211に記憶されているファームウェアやアプリケーションプログラムなどを実行することにより、後述する画像形成装置のソフトウェア構成およびシーケンス図における画像形成装置500の処理が実行される。
図3は、実施例1に係るブローカ200、更新管理サーバ300および画像形成装置500のそれぞれのソフトウェア構成を示す図である。各々がこれらソフトウェア構成に含まれる各種モジュールを実行することでサービスや機能を提供する。本実施形態におけるファームウェア更新システム内の各構成要素が有するソフトウェア構成に含まれる各種モジュールは、各装置のCPU201がRAM202にロードされたソフトウェアプログラムを実行する事で実現される。
ブローカ200は、MQTTサーバモジュール600を備える。MQTTサーバモジュール600は、パブリッシャからパブリッシュされたメッセージを受信し、受信されたメッセージをサブスクライバに配信するモジュールである。実施例1においては、更新管理部700、テナント部720および画像形成装置500のそれぞれがパブリッシャおよびサブスクライバとして機能する。また、実施例1において、MQTTサーバモジュール600は更新管理サーバ300からの要求に従いサブスクライブし、かつパブリッシュするために必要なトークンの発行も行う。ここで発行されるトークンは、ユーザが認証されているか否かを検証するためのトークンである。サブスクライブやパブリッシュされた際にこのトークンを検証することで第三者によって不正にサブスクライブされたりパブリッシュされたりすることを防ぐことができる。
更新管理サーバ300は、更新管理部700、テナント部720を備える。更新管理部700は、デバイス製造会社の担当者が端末400から送信したファームウェア更新の通知を受け、ブローカ200を介して各テナント部や画像形成装置に通知する制御を行う役割を担う。更新管理部700は、MQTT通信モジュール701、テナント管理モジュール702および認証モジュール703から構成される。MQTT通信モジュール701は、ブローカ200に対してパブリッシュすることで他のテナントまたは画像形成装置500へメッセージを送信する。また、MQTT通信モジュール701は、ブローカ200に対してサブスクライブすることで他のテナントまたは画像形成装置500からのメッセージを受信も行う。
テナント管理モジュール702は、販売会社や顧客企業の追加や削除にあわせて、それぞれに対応するテナント部720の生成や削除を行う。また、各テナントにおいてファームウェア更新時の承認を必要とするか否かの情報の管理も行う。さらに、管理者が端末から送信したファームウェア更新の通知を受信し、テナント部に更新のメッセージを通知するためにMQTT通信モジュール701を介してブローカ200にメッセージをパブリッシュする機能を備える。また、各テナント部での承認が不要な場合には、各テナント部に代わりメッセージ処理を代行する機能も備える。承認の要不要は動的に切り替えることができる。認証モジュール703は、処理の要求元ユーザの認証を行う機能を備える。実施例1では、認証モジュール703がユーザIDとパスワードを受け取って認証することを想定しているが、これに限らず生体情報等様々な認証情報を用いて認証することができる。
テナント部720は、販売会社や顧客企業の承認指示を受けてメッセージ処理を行うためのものであり、MQTT通信モジュール721、テナント処理実行モジュール722を備える。MQTT通信モジュール721は、ブローカ200に対してパブリッシュすることで他のテナントまたは画像形成装置500へメッセージを送信する。また、MQTT通信モジュール721は、ブローカ200に対してサブスクライブすることで他のテナントまたは画像形成装置500からのメッセージを受信する。テナント処理実行モジュール722は、販売会社や顧客企業の担当者に対してファームウェア更新の承認画面を提供する他、承認画面で承認指示された場合に承認プロセスを行う。また、テナント処理実行モジュール722はMQTT通信モジュール721を介してブローカ200経由で各種メッセージ通信を行う。
画像形成装置500は、MQTT通信モジュール800およびファームウェア更新モジュール801を備える。MQTT通信モジュール800は、ブローカ200に対してパブリッシュすることで他のテナントまたは画像形成装置500へメッセージを送信する。また、MQTT通信モジュール800は、ブローカ200に対してサブスクライブすることで他のテナントまたは画像形成装置500からのメッセージを受信する。ファームウェア更新モジュール801は、MQTT通信モジュール800経由でファームウェア更新メッセージを受け、ファームウェアの更新する機能を備える。また、ファームウェアを更新後に更新結果を送信する機能も備える。以上、本願発明を実施する上で必要となるソフトウェア機能になる。
次に、テナント管理モジュール702が管理する各テナント部の情報(以下、テナント情報と呼ぶ)について図4を用いて説明する。テナント情報はツリー構造で管理され、実際の販売会社や顧客企業の階層関係を反映した構造で管理される。実施例1では、デバイス製造会社の下に2つの販売会社が存在し、1つ目の販売会社の下には1つの顧客企業が存在し、2つ目の販売会社の下には1つのディーラーが存在し、さらにディーラーの下に顧客企業が存在する例を想定している。図4はその階層関係をツリー構造で表現した図である。例えば、デバイス製造会社は販売会社の親テナントであり、その販売会社はデバイス製造会社の子テナントの関係にある。同様に、2つ目の販売会社はディーラーの親テナントであり、ディーラーは販売会社の子テナントとなる。
900はルートノードでありテナント情報を管理するための一番大元の情報であり、デバイス製造会社の階層に対応する。ルートノード900は、ID901、要求送信用トピック902、子ノード数903、ノード904の各情報を含む。ID901は、ノードを識別するための識別子である。要求送信用トピック902は、更新管理部700がデバイス製造会社の端末400からバージョン更新の要求を受けた時に、メッセージをパブリッシュする際に指定するトピックを示す。子ノード数903は、ルートノード900の直下に位置するテナントの数を示す。前述のように図4は2つの販売会社が存在する例であるため、ルートノードの下にはそれぞれの販売会社に対応する2つのテナント部が存在している。ノード904は、ルートノードの下に位置する各テナントのテナント情報を格納したノードへのポインタの配列を保持している。
1000、1010、1020、1030、1040はテナント情報を格納したノードである。ID1001はテナント情報を格納したノードを識別するための識別子である。要求受信用トピック1002は、ブローカ200からファームウェア更新の要求メッセージを受けるためのトピックであり、テナント部はこのトピックに対してサブスクライブを行う。このトピックは、自テナントの一階層上の直上にあるテナントを指定するトピックパスになっている。即ち、子テナントのテナント情報には直上にあるテナントからのメッセージをサブスクライブするための情報が含まれることになる。
要求送信用トピック1003は、ファームウェア更新の要求を承認した後に、ファームウェア更新要求メッセージをパブリッシュする際に指定するトピックを示す。このトピックは、自テナントに相当するトピックパスになっている。このようなトピックパスにパブリッシュ/サブスクライブする構成を採ることにより、自分に対応するパスにパブリッシュすることで自分の配下に位置するテナント部を送信先としメッセージを配信することが可能となる。これにより、自テナントの直下に配置されたテナント部に対してメッセージを送信することが可能になる。
応答受信用トピック1004は、ファームウェア更新の要求を受けた画像形成装置500の処理結果を受信するためのトピックである。このトピックは自テナントに対応するトピックパスより下のパスについてワイルドカードを指定するようになっている。そのため、自テナントの配下にある画像形成装置全ての処理結果を受信できるようになっている。
承認要否情報1005は、そのテナント部に対応する会社がファームウェア更新の要求に対して承認プロセスを必要とするか否かを示す情報である。この情報がtrueである場合、テナント部はファームウェア更新通知メッセージを自ら受信し、テナント部に対応する会社の担当者からのファームウェア更新許可の指示を受け、下の階層にファームウェア更新通知を送信するように制御する。
一方、承認要否情報1005がfalseである場合、テナント部ではファームウェア更新要求に関する処理を行わず、更新管理サーバ300の更新管理部700が代理で処理を行うようになる。子ノード数1006は、そのテナントの直下に位置するテナントの数を示す。前述したように2つの販売会社の下にはそれぞれ顧客企業とディーラーが存在する前提である。よって図4で示した例では、/system/sales1の下に/system/sales1/customer1が存在し、/system/sales2の下に/system/sales2/dealer1が存在するという構造になり、テナント間の階層関係はトピックパスに反映される形となる。
ノード1007は、そのテナントの直下に位置するテナントのテナント情報を格納したノードへのポインタの配列が格納される。実施例1においては、販売会社の下に顧客企業が存在する構成および販売会社の下にディーラーがいてさらにその下に顧客企業が存在する構成の例を示している。しかしながら、テナントの構成は図示したテナントに限られるものではなく、また、図示した階層構造よりさらに深い階層構造になっていてもよい。
図5は、更新管理サーバ300においてテナント部を追加する際のシーケンスを示した図である。図5(a)は、そのテナント部に対応する会社にて承認プロセスを行う場合のシーケンスであり、その会社の上位の会社の管理者が端末400において更新管理サーバ300にテナント部の追加を指示した場合のフローを示している。デバイス製造会社が販売会社に対応するテナント部を追加する場合や、販売会社が顧客企業に対応するテナント部を追加する場合などが該当する。以下ではデバイス製造会社が販売会社に対応するテナント部(/system/sales1)を追加する場合を例に説明する。
まず、デバイス製造会社の担当者が端末400上のWebブラウザ401にてユーザIDとパスワードを入力すると、S1.1にてWebブラウザ401は入力された情報を認証モジュール703に送信する。実施例1では、認証のための情報としてユーザIDとパスワードを用いるが、生体情報など他の情報を利用するようにしてもよい。認証モジュール703は端末400からユーザIDとパスワードを受け取ると、S1.2にて受信したユーザIDとパスワード情報を照合し認証処理を行う。
認証に成功するとS1.3にて端末400はテナント管理モジュール702に対してテナント追加要求を送信する。テナント追加要求には、テナントの親のID、追加したいテナントのIDおよび承認要否情報を含む。ここでは、デバイス製造会社が販売会社(“/system/sales1”)を追加する想定であるため、親のIDとして”/system”を、追加したいテナントのIDとして”/system/sales1”を送信する。また、図5(a)は販売会社にて承認プロセスを行う場合のシーケンスであるため、承認要否情報として”true”を送信する。テナント管理モジュール702は、S1.4にて端末400からテナントの作成指示を受けるとテナント部を生成する。
テナント部の生成に成功するとテナント管理モジュール702は、S1.5にて既存のテナント情報の更新を行う。具体的にはS1.4で受け取った情報を基に図4で示したテナント情報を保持するノードを生成して、親ノードの下に追加する。テナント情報の更新が完了するとテナント管理モジュール702は、S1.6にて、S1.4で生成したテナント部のテナント処理実行モジュール722に対して初期化要求を出す。この際、初期化要求とともにS1.5で生成したテナント情報および、承認要否情報として“true”も通知する。
テナント処理実行モジュール722は、テナント初期化要求を受け取るとS1.7にてMQTTサーバモジュール600に対してトークン取得要求を出す。MQTTサーバモジュール600はトークン取得要求を受け取るとトークンを作成し、S1.8にてテナント処理実行モジュール722に送信する。
テナント処理実行モジュール722は、受信した要否情報が“true”であるため、トークンを受信するとS1.9にてMQTT通信モジュール721のサブスクライブ要求APIを呼び出す。この際、S1.6で受信したテナント情報に含まれる要求受信用トピックを指定する。MQTT通信モジュール721は、サブスクライブ要求APIが呼び出されるとS1.10にてMQTTサーバモジュール600に対してサブスクライブ要求を送信する。この時、S1.8で受信したトークンを一緒に送信する。MQTTサーバモジュール600はサブスクライブ要求およびトークンを受信すると、S1.11にて受信したトークンを検証し、検証に成功したら要求受信用トピックを設定する。
要求受信用のサブスクライブ処理が完了したら、次にテナント処理実行モジュール722は、画像形成装置の処理結果を受け取るためにS1.12にて再度MQTT通信モジュール721のサブスクライブ要求APIを呼び出す。この際、S1.6で受信したテナント情報に含まれる応答受信用トピックを指定する。MQTT通信モジュール721は、サブスクライブ要求APIが呼び出されるとS1.13にてMQTTサーバモジュール600に対してサブスクライブ要求を送信する。この時、S1.8で受信したトークンを一緒に送信する。MQTTサーバモジュール600はサブスクライブ要求およびトークンを受信すると、S1.14にて受信トークンを検証し、検証に成功したら要求応答用トピックを設定。なお、実施例1では必ず応答受信用のサブスクライブを行う構成となっているが、S1.3で処理結果を受信するか否かも指定するようにして応答受信用のサブスクライブを行わないようにしても良い。その場合はS1.12〜S1.14のステップは省略される。
図5(b)は、テナントにおける承認が不要な場合のシーケンスであり、管理者が端末400において更新管理サーバ300にテナントの追加を指示した場合のフローを示している。図5(a)と同様の処理が多いため差分のみを詳細に説明する。S2.1、S2.2は図5(a)S1.1、S1.2と同様である。認証が成功するとS2.3にて端末400はテナント管理モジュール702に対してテナント追加要求を送信する。この際、テナント追加要求に含まれる承認要否情報として”false”を指定する。S2.4〜S2.8までの処理は図5(a)S1.4〜S1.8と承認要否情報が“false”である事を除き同様である。
S2.8にてテナント処理実行モジュール722はトークンを受信すると、受信した承認要否情報が”false”であるため、要求受信用のサブスクライブを行わない。そしてS2.9にてMQTT通信モジュール721のサブスクライブ要求APIを呼び出す。この際、S2.6で受信したテナント情報に含まれる応答受信用トピックを指定する。MQTT通信モジュール721はサブスクライブ要求APIが呼び出されると、S2.10にてMQTTサーバモジュール600に対してサブスクライブ要求を送信する。この際、S2.8で受信したトークンも送信する。MQTTサーバモジュール600は、サブスクライブ要求およびトークンを受信すると、S2.11にて受信したトークンを検証し、検証に成功したら応答受信用トピックを設定する。なお、テナント部にて処理結果を受信したくない場合は、S2.7、S2.8、S2.9、S2.10、S2.11の各ステップは省略可能である。
テナント部初期化が完了するとテナント管理モジュール702は、受信した承認要否情報が”false”であるため、以下の処理を実施する事でテナント部720のテナント処理実行モジュール722に変わって要求受信のサブスクライブを行う。S2.12にてMQTTサーバモジュール600に対してトークン取得要求を出す。MQTTサーバモジュール600はトークン取得要求を受け取ると、S2.13にてトークンを作成し、作成したトークンをテナント管理モジュール702に送信する。テナント管理モジュール702はトークンを受信すると、S2.14にてMQTT通信モジュール701のサブスクライブ要求APIを呼び出す。この際、S2.5で作成したテナント情報を参照し要求受信用トピックの情報を指定する。MQTT通信モジュール701は、サブスクライブ要求APIが呼び出されるとS2.15にてMQTTサーバモジュール600に対してサブスクライブ要求を送信する。この時、S2.13で受信したトークンを一緒に送信する。MQTTサーバモジュール600はサブスクライブ要求およびトークンを受信すると、S2.16にて受信したトークンを検証し、検証に成功したら要求受信用トピックの設定を行う。
このように、テナント部を作成した更新管理部700、即ち図4におけるルートノードに相当する装置が作成されたテナント部に代わりサブスクライブすることも可能である。ルートノードに相当する装置をルートシステムと称し、ルートシステムは作成されたテナントに相当する会社の承認の基、承認プロセスを代行することが可能になる。なお、この場合の承認プロセスは自動的に承認される形態であっても良い。
なお、サブスクライブ処理が完了すると、MQTTサーバモジュール600のリテイン機能によりサブスクライブされたトピックに関するその時点の最新のメッセージをMQTT通信モジュールに対して送信する場合がある。S1.11後に最新メッセージをMQTT通信モジュール721に送信する場合の処理については図8のS6.4以降の処理と同様になる。また、S2.16後に最新メッセージをMQTT通信モジュール701に送信する場合の処理については図8のS6.11以降の処理と同様になる。さらに、S1.14およびS2.11後に最新メッセージをMQTT通信モジュール721に送信する場合の処理については図9のS7.4以降の処理と同様になる。夫々の詳細な説明は後述する。
図6は、画像形成装置500をファームウェア更新システムの対象に追加する際のシーケンスを示した図である。S3.1にて顧客企業の管理者が画像形成装置500のWeb設定ページを操作すると、Webブラウザ401はファームウェア更新モジュール801に対してファーム自動更新要求を送信する。このファーム自動更新要求には、Webブラウザ上で入力された顧客IDの情報が含まれる。顧客IDは、画像形成装置500を操作する顧客の顧客テナントに割り当てられるIDであり、図4で示す1040のように最も階層が低い顧客テナントのIDに相当する。これを指定することで画像形成装置500は最も階層が低いテナントからのメッセージをサブスクライブすることが可能になる。ファーム自動更新要求を受け取ると画像形成装置500のファームウェア更新モジュール801はS3.2にて認証モジュール703に対して認証情報を送信する。ここでは認証情報として画像形成装置内に事前に組み込まれたIDとパスワードを送付することとする。認証モジュール703は、認証情報を受け取るとS3.3にて認証処理を行う。実施例1では説明を簡略化するために単純なIDとパスワードによる認証を行うようになっているが、もちろんこれ以外の認証方式を採用してもよい。
認証が成功するとS3.4にてファームウェア更新モジュール801はテナント管理モジュール702に対してサブスクライブ情報取得要求を出す。サイブスクライブ情報取得要求には、S3.1で受信した顧客IDの情報も含まれるものとする。テナント管理モジュール702はサブスクライブ情報取得要求を受信すると、S3.5にて画像形成装置500がサブスクライブすべきトピックを特定する。具体的には、図4で示したテナント情報の中の指定された顧客IDに対応するテナント情報ノードに含まれる要求送信用トピック1003の情報をサブスクライブすべきトピックと判断する。
トピックパスの特定が完了したら、テナント管理モジュール702はS3.6にてMQTTサーバモジュール600に対し、画像形成装置がサブスクライブを行うためのトークン取得要求を送信する。MQTTサーバモジュールはトークン取得要求を受けるとS3.7にてトークンを生成し、生成したトークンをテナント管理モジュール702に送信する。テナント管理モジュール702はトークンを受信するとS3.8にて画像形成装置がサブスクライブすべきトピック情報およびサブスクライブに必要なトークンをファームウェア更新モジュール801に送信する。
ファームウェア更新モジュール801は、トピック情報およびトークンを受信するとS3.9にてMQTT通信モジュール800のサブスクライブ要求APIを呼び出す。MQTT通信モジュール800はサブスクライブ要求APIが呼び出されると、S3.10にてMQTTサーバモジュール600に対してサブスクライブ要求を送信する。この時、S3.8で受信したトピックを指定し、トークンも一緒に送信する。MQTTサーバモジュール600はサブスクライブ要求およびトークンを受信すると、S3.11にて、受信したトークンを検証し検証に成功したらサブスクライブ処理を行う。
なお、サブスクライブ処理が完了すると、MQTTサーバモジュール600のリテイン機能によりサブスクライブされたトピックに関するその時点の最新のメッセージをMQTT通信モジュール800に対して送信する場合がある。この時の処理は、図8のS6.15以降の処理と同じであるためここでの説明は割愛する。このようにテナント部での承認要否情報によってサブスクライブをする主体を動的に切り替えることにより、承認プロセスが不要な場合にはテナント部に余計なメッセージを通知することなくシステム部が処理を代行することができるようになる。
図7は、販売会社や顧客企業におけるファームウェア更新において、承認プロセスの有無を切り替える際のシーケンスを示した図である。図7(a)は、テナント部で承認プロセスを行わずルートシステムで承認プロセスを行っている状態から、テナント部で承認プロセスを行う状態に変更する場合のシーケンスである。
まず、販売会社、ディーラーもしくは顧客企業の担当者が端末400上のWebブラウザ401にて認証情報を入力すると、S4.1にてWebブラウザ401は、認証モジュール703に認証情報を送信する。ここでは認証情報としてユーザIDとパスワードを送信するものとする。認証モジュール703は、端末400からユーザIDとパスワードを受け取ると、S4.2にて受信したユーザIDとパスワード情報を照合し認証処理を行う。
認証に成功するとS4.3にてWebブラウザは、担当者の操作を受けてテナント処理実行モジュール722に対して承認フローの追加要求を送信する。テナント処理実行モジュール722は承認フロー追加要求を受信するとS4.4にて、テナント管理モジュール702に対して承認フロー追加要求を出す。承認フロー追加要求を受信すると、S4.5にてテナント管理モジュール702はMQTTサーバモジュール600に対し、MQTTサーバモジュールを利用するためのトークン発行要求を送信する。MQTTサーバモジュール600はトークン発行要求を受信すると、トークンを発行しS4.6にてテナント管理モジュール702に対して発行したトークンを送信する。
テナント管理モジュール702はトークンを受信するとS4.7にてMQTT通信モジュール701のアンサブスクライブ要求APIを呼び出す。MQTT通信モジュール701はアンサブスクライブ要求APIが呼び出されたら、S4.8にてMQTTサーバモジュール600に対してアンサブスクライブ要求を送信する。MQTTサーバモジュール600は、アンサブスクライブ要求を受信すると、S4.9にてトークンの検証を行い、アンサブスクライブ処理を実行する。アンサブスクライブ処理が完了するとテナント管理モジュール702はS4.10にてテナント情報の更新を行う。具体的には、図4の承認要否情報をfalseに設定する。
テナント情報の更新が完了すると、S4.11にてテナント管理モジュール702はテナント処理実行モジュール722に対してS4.6で受信したトークンを送信する。テナント処理実行モジュール722は、トークンを受信すると、S4.12にてMQTT通信モジュール721のサブスクライブ要求APIを呼び出す。この際、テナント情報に含まれる要求受信用トピックを指定する。即ち、親テナントを指定するトピックパスの指定となる。MQTT通信モジュール721はサブスクライブ要求APIが呼び出されるとS4.13にて、MQTTサーバモジュール600に対してサブスクライブ要求と、S4.11にて受信したトークンを送信する。MQTTサーバモジュール600は、サブスクライブ要求およびトークンを受信すると、S4.14にてトークンの検証を行い、検証に成功したら要求受信用トピックの設定を行う。なお、S4.14のサブスクライブ処理完了後にリテイン機能によりMQTTサーバモジュール600からMQTT通信モジュール721に最新のメッセージが送信されることがあるが、図8のS6.4以降の処理と同様になるため、ここでの説明は割愛する。
図7(b)は、テナント部で承認プロセスを行う状態から、テナント部で承認プロセスを行わずルートシステムで承認プロセスを行う状態に変更する場合のシーケンスである。S5.1、S5.2の処理はS4.1、S4.2と同様であるため説明を割愛する。
認証に成功するとS5.3にてWebブラウザは担当者の操作を受けてテナント処理実行モジュール722に対して承認フローの削除要求を出す。テナント処理実行モジュール722は承認フロー削除要求を受信するとS5.4にて、テナント管理モジュール702に対して承認フロー削除要求を出す。承認フロー削除要求を受信すると、S5.5にてテナント管理モジュール702はMQTTサーバモジュール600に対し、MQTTサーバモジュールを利用するためのトークン発行要求を送信する。MQTTサーバモジュール600はトークン発行要求を受信すると、トークンを発行しS5.6にてテナント管理モジュール702に対して発行したトークンを送信する。テナント管理モジュール702はトークンを受信するとS5.7にてテナント処理実行モジュール722に対してトークンを送信する。
テナント処理実行モジュール722はトークンを受信するとS5.8にてMQTT通信モジュール721のアンサブスクライブ要求APIを呼び出す。MQTT通信モジュール721は、アンサブスクライブ要求APIが呼び出されるとS5.9にてMQTTサーバモジュール600に対してアンサブスクライブ要求を送信する。この際、S5.7で受信したトークンもあわせて送信する。MQTTサーバモジュール600は、アンサブスクライブ要求およびトークンを受信するとS5.10にてトークンの検証を行い、検証に成功した場合に要求受信用の設定を削除しアンサブスクライブ処理が完了する。アンサブスクライブ処理が完了するとテナント処理実行モジュール722は、S5.11にてテナント管理モジュール702に対してアンサブスクライブ完了通知を送信する。
テナント管理モジュール702は、アンサブスクライブ完了通知を受信すると、S5.12にてMQTT通信モジュール701のサブスクライブAPIを呼び出す。この際、テナント情報に含まれる要求受信用トピックを指定する。この際の要求受信用トピックのトピックパスは、アンサブスクライブした子テナントに対する親テナントへのトピックパスである。MQTT通信モジュール701はサブスクライブAPIが呼び出されるとS5.13にてMQTTサーバモジュール600に対してサブスクライブ要求を送信する。この際、S5.6で受信したトークンをあわせて送信する。
MQTTサーバモジュール600はサブスクライブ要求およびトークンを受信するとS5.14にてトークンの検証を行い、検証に成功した場合はサブスクライブ処理を実行する。サブスクライブ処理が完了するとテナント管理モジュール702はS5.15にてテナント情報を更新する。具体的には、テナント情報の中の承認プロセスの要否情報をfalseに書き換える。なお、S5.14のサブスクライブ処理完了後にリテイン機能により最新のメッセージがMQTTサーバモジュール600からMQTT通信モジュール701に送信されることがあるが、図8のS6.11以降の処理と同様になるため、ここでの説明は割愛する。このように要求を受けて動的にサブスクライブを実行する主体を切り替えることができるようにすることにより柔軟に承認フローを変更することが可能になる。
図8は、デバイス製造会社の担当者がファームウェア更新情報を更新システムに通知した場合に、更新通知が画像形成装置に送信されるまでの処理の流れを示したシーケンスである。なお、このシーケンスは図4における1000および1010に対応するテナント部だけが存在する場合の情報通知の例となっている。
デバイス製造会社の担当者が端末400上のWebブラウザ401上でファームの更新情報を入力すると、S6.1にてWebブラウザ401はテナント管理モジュール702に対してファーム更新通知を送信する。テナント管理モジュール702は、ファーム更新通知を受信するとS6.2にてMQTT通信モジュール701のパブリッシュAPIを呼び出す。この際、ルートノードに含まれる要求送信用トピックを指定する。パブリッシュするメッセージの内容は、ファームウェアの更新情報が記載されたURLである。このURLにアクセスすることでファームウェアのバージョンや更新内容やファームウェアの入手先などの詳細情報を取得することができる。なお、実施例1においては、メッセージとしてURLを送信し、URLを基に詳細情報を取得するような構成としているが、メッセージ自体に詳細情報を埋め込むような構成としてもよい。メッセージの形式はこの形態に限定されるものではなく、ファームの更新に関係なく任意の情報を含めることも可能である。
MQTT通信モジュール701はパブリッシュ要求APIを呼び出されると、S6.3にてMQTTサーバモジュール600に対してパブリッシュ要求を送信する。MQTTサーバモジュール600はパブリッシュ要求を受信すると、トピックをサブスクライブしているテナント部のMQTT通信モジュール721に対してメッセージ(URL情報)を送信する。MQTT通信モジュール721はメッセージ(URL情報)を受信すると、S6.5にてテナント処理実行モジュール722に対してメッセージ(URL情報)を通知する。URL情報の通知を受けるとテナント処理実行モジュール722は、S6.6にてURLからファームウェアの更新情報を取得して管理者向けにWebブラウザからアクセス可能なファームウェア更新確認ページ1100を生成する。実施例1においては、ここでWebページ生成しか行なっていないが、リアルタイムに担当者に情報を通知するためにメールを送信するようにしてもよい。
図10(a)は、ファームウェア更新確認ページ1100の一例を示す図である。1101はバージョン情報であり、S6.5にて受信したURLから取得した情報を表示している。1102は、バージョン1101にて更新された内容の情報が表示される領域である。この情報の内容もS6.5にて受信したURLにアクセスすることで取得できる。1103は許可ボタンであり、押下すると更新許可を指示するためのボタンである。1104は拒否ボタンでありファームウェアの更新をせずにファームウェア更新確認ページを閉じる。拒否ボタン1104が押下された場合は、S6.7以降の処理が行われないためファームウェア更新通知が配下のテナント部や画像形成装置に通知されずファームウェアの更新が行われないことになる。担当者がファームウェア更新確認ページにアクセスして許可ボタン1103を押すと、Webブラウザ401はS6.7にてテナント処理実行モジュール722に対して更新許可通知を送信する。
テナント処理実行モジュール722は、更新許可通知を受信すると、S6.8にてファームウェア更新確認ページを削除する。なお、本実施形態ではページを削除してアクセス出来ないようにしているが、ページの内容を書き変えるだけでもよい。Webページの削除が完了するとS6.9にてテナント処理実行モジュール722はMQTT通信モジュール721のパブリッシュ要求APIを呼び出す。この際、テナント情報に含まれる要求送信用トピックを指定する。メッセージの本体はS6.5にて受信した内容(URL情報)をそのまま指定することとするが、メッセージを処理したテナント部がS6.5にて受信した内容を基に新たなメッセージを生成する他、メッセージに情報を追加、メッセージから情報を削除しても良い。
MQTT通信モジュール721はパブリッシュAPIが呼び出されると、S6.10にてMQTTサーバモジュール600に対してパブリッシュ要求を送信する。MQTTサーバモジュール600はパブリッシュ要求を受信すると、指定されたトピックをサブスクライブしているサブスクライバにメッセージを送信する。1010のテナント部は承認プロセスを不要としているため、ルートシステム内のテナント管理モジュール702が1010のテナントの代わりにサブスクライブをしている。よってMQTTサーバモジュール600は、S6.11にて更新管理部700に含まれるMQTT通信モジュール701に対してメッセージを送信する。
MQTT通信モジュール701はメッセージを受信すると、S6.12にてテナント管理モジュール702に対して受信したメッセージを通知する。テナント管理モジュール702は、メッセージの通知を受けると、1010のテナントの処理を代行するためS6.13にてMQTT通信モジュール701のパブリッシュAPIを呼び出す。この時、1010のテナント情報に含まれる要求送信用トピックを指定する。なお、ルートシステムが代行する場合はメッセージ処理、今回の場合は承認プロセスが不要になるため、メッセージの内容に関わらずパブリッシュを行うようになっている。MQTT通信モジュール701は、パブリッシュAPIを呼び出されるとS6.14にてMQTTサーバモジュール600に対してパブリッシュ要求を送信する。
MQTTサーバモジュール600はパブリッシュ要求を受信すると指定されたトピックをサブスクライブしているサブスクライバにメッセージを送信する。ここでは1台の画像形成装置が1010の顧客企業の管理下に存在していた場合のシーケンスを想定している。よって、MQTTサーバモジュール600はS6.15にて画像形成装置500のMQTT通信モジュール800に対してメッセージ(URL情報)を送信する。画像形成装置500が複数台あれば、夫々の画像形成装置が図6で示したフローに従いテナント部からメッセージをサブスクライブしていることになっているので、MQTTサーバモジュール600は複数台の画像形成装置へメッセージを送信することになる。
MQTT通信モジュール800はメッセージを受信すると、ファームウェア更新モジュール801に対してメッセージ(URL情報)を通知する。ファームウェア更新モジュール801はメッセージを受信すると、S6.17にて受け取ったURLからファームウェアのダウンロード先を取得する。そして、ファームウェアをダウンロードしてファームウェアの更新を行う。
この例では、販売会社において承認プロセスを必要としていたため、更新通知のメッセージがテナント部720に通知されテナント部において承認に関する処理が行われていた。しかし全テナント部において承認プロセスを行わない設定になっている場合には、テナント部を一切介さずに更新管理部700の処理だけで画像形成装置に対してメッセージが伝達されることになる。逆に、全テナント部において承認が必要な設定になっている場合、更新管理部700は、S6.3でのパブリッシュを行った後はメッセージ処理を一切行わず、各テナント部720のメッセージ処理によって画像形成装置へメッセージが送信されることになる。
図9は、ファームウェア更新の結果を各テナント部に通知する際のシーケンスを示した図である。図4に示したテナント構成である場合に、/system/sales1/customer1の顧客企業にある画像形成装置のファームウェアを更新した場合を例に説明を行う。なお、1000〜1040の各テナント部は応答受信用トピックをサブスクライブしている前提である。
まずファームウェア更新モジュール801がS7.1にてファームウェア更新を行う。ファームウェアの更新が完了すると、S7.2にてMQTT通信モジュール800のパブリッシュAPIを呼び出す。この際のトピックとしては画像形成装置が存在する階層を示すトピックを指定するが、画像形成装置はテナントではないため図4に示すテナントのようにテナント情報として管理されているわけではない。画像形成装置500は顧客が所有するので最下層のテナントを指定するトピックパスの更に下に位置することになる。よって、この例では”/response/version/system/sales1/customer1/device1”を指定する。
処理結果を通知するためのメッセージの内容は、更新バージョン、更新日時、処理結果コードを含む。更新バージョンは更新されたファームウェアのバージョンであり、更新日時はファームウェアを更新した日時である。処理結果コードは、処理結果を示す定数であり、1が成功、0が失敗と定義する。なお、結果として返す情報はこれに限られるものではなく、処理結果の詳細情報が格納されたサーバのURL情報などを通知するようにしてもよい。
MQTT通信モジュール800はパブリッシュAPIが呼び出されると、S7.3にてMQTTサーバモジュール600に対してパブリッシュ要求を送信する。MQTTサーバモジュール600はパブリッシュ要求を受信すると、トピックをサブスクライブしているサブスクライバに対してメッセージを送信する(S7.4、S7.4‘)。この例では1000および1010のテナント部がサブスクライブしているトピックに合致するため、1000および1010のテナント部のMQTT通信モジュールにメッセージを送信する。これは、各テナント部がブローカ200に設定した応答受信用トピックにおいて、自テナント以下のトピックパスにワイルドカードを指定したことで条件に合致し、メッセージが送信されることを意味する。
それぞれのテナント部のMQTT通信モジュール721はメッセージを受信すると、テナント処理実行モジュール722にメッセージの内容を通知する(S7.5、S7.5‘)。テナント処理実行モジュール722は、メッセージ通知を受けるとデバイス情報確認ページの情報を更新する(S7.6、S7.6‘)。図10(b)はデバイス情報確認画面1200の一例である。1201はデバイス情報リスト表示領域であり、そのテナントの管理下にある画像形成装置のリストが表示される。リストの内容としてはデバイス名称およびバージョンおよびファーム更新日時である。各会社の担当者はこのデバイス情報確認画面1200を確認することでいつどのようなファームウェアに更新されたかを把握することができる。なお、本実施形態では結果をWebブラウザで表示可能なWebページに表示するのみであるが、メールで通知を行うなどの処理を行ってもよい。このように、更新要求とは別のトピックを用いて処理結果に関するメッセージを受信するような構成にすることにより、各階層において関係する画像形成装置の処理結果だけを各階層において同時に受信することが可能になる。
以上、説明してきたように、販売会社やディーラーや顧客企業の関係をトピックパスの階層に対応させて管理している。そして、自テナントの一つ上の階層に対応するトピックにサブスクライブし、自点との階層に対応するトピックにパブリッシュすることにより、自テナントの関係者だけに効率的に情報伝達を行うことが可能になる。また、ルートシステム部がテナント部の代わりにメッセージの送信処理を代行するような構成に動的に切り替えられるようにすることで更に容易に承認フローの追加や削除を行うことが可能になる。さらには、処理要求用のトピックとは別に応答通知用のトピックを定義することにより承認プロセスの有無に関わらず処理結果を受信することが可能になる。
[その他の実施例]
実施例1はファームウェア配信のユースケースを例に説明したが、本特許はこの用途に限られるものではなく、例えば設定配信やアプリケーション配信などを始めとするあらゆるトップダウン型の指示による情報伝達に適用可能である。
実施例1はエンタープライズ向けデバイスの代表であるMFPを例に説明したが、デバイスの使用目的がホーム向けであったとしても本願発明は適用可能であり、プリンタに限られるモノでもない。本願発明は如何なデバイスが対象であっても、適用可能な構成である。
また、各会社の管理者が端末400を用いて更新管理サーバ300にテナント部720を作成したが、更新管理サーバ300ではない別のサーバにテナント部720を作成する形態であってもよい。その場合であっても、図4の階層構造でテナント管理がなされていればブローカ200とテナント部720によるメッセージ送受信が可能になる。
200 ブローカ
300 更新管理サーバ
400 端末
500 画像形成装置
600 MQTTサーバモジュール
700 更新管理部
720 テナント部
800 MQTT通信モジュール
801 ファームウェア更新モジュール

Claims (10)

  1. テナントの作成指示に従い前記テナントが作成されたことに応じて、前記テナントと他のテナントとの階層関係を反映したメッセージ属性を生成する生成手段と、
    生成された前記メッセージ属性を設定する設定手段と、
    特定のテナントからメッセージを受信する受信手段と、
    前記設定手段により設定された子テナントのメッセージ属性を基に、前記特定のテナントの直下に配置された前記子テナントに対し受信された前記メッセージを送信する送信手段と、を有する情報処理システム。
  2. 前記受信手段は、前記メッセージを受信した前記子テナントによって更に送信されたメッセージを処理する情報処理装置から処理結果のメッセージを受信し、
    前記送信手段は、前記設定手段により設定されている前記子テナントのメッセージ属性を基に、前記子テナントに対し前記処理結果のメッセージを送信することを特徴とする請求項1に記載の情報処理システム。
  3. 前記設定手段は、メッセージを受信するための要求受信用のメッセージ属性と、処理結果に関するメッセージを受信するための応答受信用のメッセージ属性の2つのメッセージ属性を設定し、
    前記送信手段は、前記子テナントの要求受信用のメッセージ属性を基に、前記特定のテナントの直下に配置された前記子テナントに対し受信された前記メッセージを送信し、前記子テナントの応答受信用のメッセージ属性を基に、前記子テナントに対し前記処理結果のメッセージを送信することを特徴とする請求項2に記載の情報処理システム。
  4. 前記受信手段が前記処理結果のメッセージを受信した場合、前記送信手段は、前記設定手段により設定された前記応答受信用のメッセージ属性を基に、前記子テナントおよび前記特定のテナントを含む前記子テナントより上に配置された複数のテナントに対して前記処理結果のメッセージを送信することを特徴とする請求項3に記載の情報処理システム。
  5. 前記送信手段は、前記設定手段により設定された前記応答受信用のメッセージ属性の内、パスにワイルドカードを指定し前記処理結果のメッセージを受信するための複数のメッセージ属性を基に、前記子テナントおよび前記特定のテナントを含む前記子テナントより上に配置された複数のテナントに対して前記処理結果のメッセージを送信することを特徴とする請求項4に記載の情報処理システム。
  6. 前記設定手段が設定するメッセージ属性はテナント間の階層関係をパスで表現しており、前記メッセージ属性が示す前記メッセージの送信先はパスで指定されていることを特徴とする請求項1乃至5の何れか1項に記載の情報処理システム。
  7. 前記設定手段は、前記作成指示に従い作成された前記テナントに代わりルートシステムでメッセージを処理することが指定された場合、前記ルートシステムからメッセージ属性を受け付けて設定し、
    前記送信手段は、前記設定手段により設定された子テナントのメッセージ属性を基に、前記子テナントに代わり前記メッセージ属性の設定を要求した前記ルートシステムに対し受信された前記メッセージを送信する請求項1乃至6の何れか1項に記載の情報処理システム。
  8. 前記設定手段は、前記作成指示に従い作成された前記テナントに代わりルートシステムでメッセージを処理することをメッセージ属性が設定された後に指定された場合、前記テナントにより既に設定されているメッセージ属性を削除し、前記ルートシステムからメッセージ属性を受け付けて設定することを特徴とする請求項7に記載の情報処理システム。
  9. テナントの作成指示に従い前記テナントが作成されたことに応じて、前記テナントと他のテナントとの階層関係を反映したメッセージ属性を生成する生成ステップと、
    生成された前記メッセージ属性を設定する設定ステップと、
    特定のテナントからメッセージを受信する受信ステップと、
    前記設定ステップにおいて設定された子テナントのメッセージ属性を基に、前記特定のテナントの直下に配置された前記子テナントに対し受信された前記メッセージを送信する送信ステップと、を含む情報処理システムの制御方法。
  10. テナントの作成指示に従い前記テナントが作成されたことに応じて、前記テナントと他のテナントとの階層関係を反映したメッセージ属性を生成する生成ステップと、
    生成された前記メッセージ属性を設定する設定ステップと、
    特定のテナントからメッセージを受信する受信ステップと、
    前記設定ステップにおいて設定された子テナントのメッセージ属性を基に、前記特定のテナントの直下に配置された前記子テナントに対し受信された前記メッセージを送信する送信ステップと、を含む情報処理システムで実行されるプログラム。
JP2017013241A 2017-01-27 2017-01-27 情報処理システム、情報処理ステムの制御方法およびそのプログラム。 Active JP6584440B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2017013241A JP6584440B2 (ja) 2017-01-27 2017-01-27 情報処理システム、情報処理ステムの制御方法およびそのプログラム。
KR1020180006826A KR102235992B1 (ko) 2017-01-27 2018-01-19 정보 처리 시스템, 정보 처리 시스템의 제어방법 및 프로그램
US15/878,198 US10466942B2 (en) 2017-01-27 2018-01-23 Information processing system, method for controlling information processing system, and storage medium
EP18153682.2A EP3355183A1 (en) 2017-01-27 2018-01-26 System and method to distribute firmware updates in a hierarchical network structure using a publish/subscribe message broker
CN201810076847.6A CN108366101B (zh) 2017-01-27 2018-01-26 信息处理系统、信息处理系统的控制方法和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017013241A JP6584440B2 (ja) 2017-01-27 2017-01-27 情報処理システム、情報処理ステムの制御方法およびそのプログラム。

Publications (2)

Publication Number Publication Date
JP2018120537A true JP2018120537A (ja) 2018-08-02
JP6584440B2 JP6584440B2 (ja) 2019-10-02

Family

ID=61226363

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017013241A Active JP6584440B2 (ja) 2017-01-27 2017-01-27 情報処理システム、情報処理ステムの制御方法およびそのプログラム。

Country Status (5)

Country Link
US (1) US10466942B2 (ja)
EP (1) EP3355183A1 (ja)
JP (1) JP6584440B2 (ja)
KR (1) KR102235992B1 (ja)
CN (1) CN108366101B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10810147B1 (en) * 2019-03-25 2020-10-20 EMC IP Holding Company LLC Type-based message bus with message type hierarches for non-object oriented applications
US11871231B2 (en) 2020-11-25 2024-01-09 Ricoh Company, Ltd. Apparatus management system, management target apparatus, and management method

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10033898B2 (en) 2016-03-17 2018-07-24 Ricoh Company, Ltd. Information processing system, image forming apparatus, and method of processing information
JP6733479B2 (ja) * 2016-03-17 2020-07-29 株式会社リコー 情報処理システム、情報処理装置、画像形成装置、情報処理方法およびプログラム
EP3864795A4 (en) 2018-10-10 2022-05-11 Alibaba Group Holding Limited AUTHENTICATION AND AUTHORIZATION FOR A CLOUD FILE SYSTEM
CN110839061B (zh) * 2019-10-16 2020-11-06 北京达佳互联信息技术有限公司 数据分发方法、装置及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06318950A (ja) * 1993-05-10 1994-11-15 Pfu Ltd ツリー構造ネットワークの制御方式
JPH088951A (ja) * 1994-06-15 1996-01-12 Mitsubishi Electric Corp ネットワ−ク管理システム
WO2006112381A1 (ja) * 2005-04-14 2006-10-26 Matsushita Electric Industrial Co., Ltd. サーバ装置、情報通知方法、および情報通知システム
JP2008141361A (ja) * 2006-11-30 2008-06-19 Hitachi Ltd データ配信方法、データ配信システム及びノード装置
US20090228563A1 (en) * 2008-03-05 2009-09-10 Jones Gareth E Publish/subscribe message broker
JP2011150618A (ja) * 2010-01-25 2011-08-04 Cellius Inc サーバシステム、クライアント装置、プログラム、及び情報記憶媒体
WO2016014516A1 (en) * 2014-07-21 2016-01-28 Convida Wireless, Llc Service layer interworking using mqtt protocol

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366469A (ja) * 2001-06-06 2002-12-20 Hitachi Ltd ネットワーク装置、ネットワークシステム及びネットワーク装置のソフトウェア更新方法
GB0311260D0 (en) 2003-05-16 2003-06-18 Ibm Publish/subscribe messaging system
US7853609B2 (en) 2004-03-12 2010-12-14 Microsoft Corporation Update distribution system architecture and method for distributing software
US9112891B2 (en) 2007-02-02 2015-08-18 Sharp Laboratories Of America, Inc. Remote firmware management for electronic devices
US20110055355A1 (en) * 2009-08-21 2011-03-03 Samsung Electronics Co., Ltd. Application downloading method, application providing method, user terminal using the same
US20110289496A1 (en) 2010-05-18 2011-11-24 North End Technologies, Inc. Method & apparatus for load balancing software update across a plurality of publish/subscribe capable client devices
JP5803886B2 (ja) * 2012-11-28 2015-11-04 コニカミノルタ株式会社 画像形成装置およびプログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06318950A (ja) * 1993-05-10 1994-11-15 Pfu Ltd ツリー構造ネットワークの制御方式
JPH088951A (ja) * 1994-06-15 1996-01-12 Mitsubishi Electric Corp ネットワ−ク管理システム
WO2006112381A1 (ja) * 2005-04-14 2006-10-26 Matsushita Electric Industrial Co., Ltd. サーバ装置、情報通知方法、および情報通知システム
JP2008141361A (ja) * 2006-11-30 2008-06-19 Hitachi Ltd データ配信方法、データ配信システム及びノード装置
US20090228563A1 (en) * 2008-03-05 2009-09-10 Jones Gareth E Publish/subscribe message broker
JP2011150618A (ja) * 2010-01-25 2011-08-04 Cellius Inc サーバシステム、クライアント装置、プログラム、及び情報記憶媒体
WO2016014516A1 (en) * 2014-07-21 2016-01-28 Convida Wireless, Llc Service layer interworking using mqtt protocol

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10810147B1 (en) * 2019-03-25 2020-10-20 EMC IP Holding Company LLC Type-based message bus with message type hierarches for non-object oriented applications
US11871231B2 (en) 2020-11-25 2024-01-09 Ricoh Company, Ltd. Apparatus management system, management target apparatus, and management method

Also Published As

Publication number Publication date
CN108366101B (zh) 2021-05-25
CN108366101A (zh) 2018-08-03
JP6584440B2 (ja) 2019-10-02
KR102235992B1 (ko) 2021-04-05
EP3355183A1 (en) 2018-08-01
KR20180088583A (ko) 2018-08-06
US20180217786A1 (en) 2018-08-02
US10466942B2 (en) 2019-11-05

Similar Documents

Publication Publication Date Title
JP6584440B2 (ja) 情報処理システム、情報処理ステムの制御方法およびそのプログラム。
US11501057B2 (en) Enabling file attachments in calendar events
US9288213B2 (en) System and service providing apparatus
US8463813B2 (en) Individualized data sharing
US20060248182A1 (en) Formatted and/or tunable QoS data publication, subscription, and/or distribution including dynamic network formation
US20110099380A1 (en) System and Method of Controlling Access to Information Content Transmitted Over Communication Network
JP2013029994A (ja) サーバー装置、情報処理方法及びプログラム
JP2015069347A (ja) ネットワークシステム、管理サーバシステム、制御方法及びプログラム
JP2024060071A (ja) デバイス管理装置の制御方法及びプログラム
JP2014194800A (ja) 文書配布方法
JP6597202B2 (ja) 情報処理装置、情報処理システム、情報処理方法及びプログラム
JP2015026231A (ja) サービス提供システム、画像提供方法及びプログラム
JP6237868B2 (ja) クラウドサービス提供システム及びクラウドサービス提供方法
JP2023128540A (ja) サーバ、および、コンピュータプログラム
JP2009122953A (ja) 属性情報開示システム、属性情報開示方法および属性情報開示プログラム
JP2008065814A (ja) 情報アクセス制御方法
JP7225677B2 (ja) 情報処理装置およびプログラム
KR20190019317A (ko) 사용자 수요 기반의 SaaS 결합 서비스 플랫폼에서의 인증 서버 및 인증 방법
JP6383293B2 (ja) 認証システム
JP6128958B2 (ja) 情報処理サーバーシステム、制御方法、およびプログラム
JP7243144B2 (ja) 端末装置、認証支援装置及びプログラム
JP7171458B2 (ja) シナリオ実行システム、管理装置、シナリオ実行管理方法及びプログラム
JP5377616B2 (ja) 情報流通システムとそのアクセス制御方法
JP2015146147A (ja) サービス提供システム、情報処理装置、画像提供方法及びプログラム
WO2023230035A1 (en) Techniques for providing security-related information

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171027

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180806

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190327

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190903

R151 Written notification of patent or utility model registration

Ref document number: 6584440

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151