KR20180088583A - 정보 처리 시스템, 정보 처리 시스템의 제어방법 및 프로그램 - Google Patents

정보 처리 시스템, 정보 처리 시스템의 제어방법 및 프로그램 Download PDF

Info

Publication number
KR20180088583A
KR20180088583A KR1020180006826A KR20180006826A KR20180088583A KR 20180088583 A KR20180088583 A KR 20180088583A KR 1020180006826 A KR1020180006826 A KR 1020180006826A KR 20180006826 A KR20180006826 A KR 20180006826A KR 20180088583 A KR20180088583 A KR 20180088583A
Authority
KR
South Korea
Prior art keywords
tenant
message
processing
module
attribute
Prior art date
Application number
KR1020180006826A
Other languages
English (en)
Other versions
KR102235992B1 (ko
Inventor
카츠야 사카이
Original Assignee
캐논 가부시끼가이샤
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 캐논 가부시끼가이샤 filed Critical 캐논 가부시끼가이샤
Publication of KR20180088583A publication Critical patent/KR20180088583A/ko
Application granted granted Critical
Publication of KR102235992B1 publication Critical patent/KR102235992B1/ko

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/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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
    • 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
    • H04L67/2814
    • 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
    • H04L67/32
    • 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

정보 처리 시스템은, 설정 수단에 의해 설정된 자 테넌트의 메시지 속성을 기초로, 특정한 테넌트의 바로 아래에 배치된 자 테넌트에 대해 수신된 메시지를 송신한다.

Description

정보 처리 시스템, 정보 처리 시스템의 제어방법 및 프로그램{INFORMATION PROCESSING SYSTEM, METHOD FOR CONTROLLING INFORMATION PROCESSING SYSTEM, AND PROGRAM}
본 발명은 네트워크에 접속되어 있는 2개의 장치 사이에서 송수신되는 데이터를 중개하는 정보 처리 시스템, 정보 처리 시스템의 제어방법 및 프로그램에 관한 것이다.
기업내의 컴퓨터에의 갱신 소프트웨어의 분배를 관리하기 위해서 업데이트 서버를 계층화하는 기술이 일본국 특개 2005-259114호 공보에서 알려져 있다. 일본국 특개 2005-259114호 공보에 개시된 기술은, 루트 분배 서버와 적어도 1개의 자(child) 분배 서버를 구비하고, 각 루트 분배 서버는 자 분배 서버에 대해 친(parent) 서버로서 기능할 수 있도록 구성되어 있다. 이 때문에, 이 기술은, 각 계층의 분배 서버에서 분배 팔러시를 결정함으로써, 각 계층에서의 소프트웨어 분배를 제어할 수 있게 한다.
본 발명의 일면에 따르면, 정보 처리 시스템은, 테넌트(tenant)의 작성 지시에 따른 상기 테넌트의 작성에 따라, 상기 테넌트와 다른 테넌트 사이의 계층 관계를 반영한 메시지 속성을 생성하도록 구성된 생성부와, 생성된 상기 메시지 속성을 설정하도록 구성된 설정부와, 특정한 테넌트로부터 메시지를 수신하도록 구성된 수신부와, 상기 설정부에 의해 설정된 자 테넌트의 메시지 속성을 기초로, 상기 특정한 테넌트의 바로 아래에 배치된 상기 자 테넌트에 대해 수신된 상기 메시지를 송신하도록 구성된 송신부를 구비한다.
본 발명의 또 다른 특징은 첨부도면을 참조하여 주어지는 이하의 실시형태의 상세한 설명으로부터 명백해질 것이다.
도 1은 시스템 구성을 도시한 도면이다.
도 2a 및 도 2b는 시스템 구성요소의 하드웨어 구성을 나타내는 블록도이다.
도 3은 소프트웨어 모듈을 도시한 도면이다.
도 4는 갱신 시스템 상에서 관리되는 각 테넌트/디바이스 정보의 예이다.
도 5a 및 도 5b는 테넌트부를 추가할 때의 처리 절차를 나타내는 시퀀스이다.
도 6은 화상 형성장치를 추가할 때 실행되는 처리 절차를 나타내는 시퀀스이다.
도 7a 및 도 7b는 승인 프로세스의 필요 또는 불필요를 변경할 때의 처리 절차를 나타내는 시퀀스이다.
도 8은 신 버전 적용 요구를 화상 형성장치에 통지할 때의 시퀀스이다.
도 9는 펌웨어 갱신의 결과를 각 테넌트부에 통지할 때의 시퀀스를 나타낸 도면이다.
도 10a 및 도 10b는 펌웨어 갱신에 관련되는 조작 화면의 예이다.
송신될 데이터의 분배 가부를 판단하고 싶은 관리자가 복수 있었을 경우, 일본국 특개 2005-259114호 공보에 기재된 기술은, 각각의 관리자가 갱신 서버를 구축하는 것이므로, 비용이 증대할 우려, 및/또는 분배 시스템의 구축이 용이하지 않을 우려가 있었다. 본 발명은, 톱다운 방식으로의 지시를 행하는 시스템에 있어서, 중간층에 있어서의 장치에서의 메시지 처리 프로세스를 용이하게 하는 것을 목적으로 한다.
이하의 설명에서는, 실시예 1을 설명한다. 실시예 1에서는, 인쇄 기능을 갖는 복합기(MFP)를 예로 들어 본 발명의 해결책을 설명한다. 최근, MFP을 포함하는 엔터프라이즈 대상 디바이스는, 버그 수정, 기능 추가 등으로 인해 한번 시장에 나간 후에도 계속적으로 펌웨어가 갱신되게 처리되어 왔다. 이러한 엔터프라이즈 대상 디바이스에 대해서는, 디바이스 제조 회사(펌웨어 제공원)와 이용자의 관계의 중간에, 판매 회사 또는 딜러의 서포트 담당자 및 기업의 디바이스 관리자 등의 디바이스 관리 책임자가 개재하는 일이 많다. 따라서, 디바이스의 펌웨어를 갱신할 때, 디바이스 이용자 개인 만에 의해 행해진 판단에만 결정되는 것이 아니고, 그 사이에 존재하는 각 책임자의 승인 후에 펌웨어를 갱신하는 것이 바람직하다.
예를 들면, 디바이스 제조 회사로부터 시큐리티 관련의 펌웨어의 갱신 버전이 릴리스되었을 경우를 생각하면, 이 경우에 다음과 같은 상황이 일어날 수도 있다. 판매 회사는 서포트 체제가 갖추어질 때까지는 갱신을 행하고 싶지 않기 때문에, 곧바로 고객에 대해 갱신 버전을 릴리스하고 싶지 않다. 또한, 고객기업의 관리자는, 사내 시스템과의 연계로 문제가 발생하지 않는 것을 확인할 수 있을 때까지는 펌웨어를 갱신시키고 싶지 않다. 이 때문에, 디바이스 제조 회사가 릴리스한 펌웨어는, 판매 회사 및 고객기업의 승인후에 실제로 디바이스에 적용되게 된다. 그렇지만, 앞서 서술한 것과 같이 분배 시스템의 구축이 용이하지 않을 우려가 있어, 승인 프로세스의 실현에는 많은 시간과 인력이 든다.
다음에, 전술한 과제를 해결하는데 적합한 실시형태에 대해서 도면을 참조하여 설명한다. 본 실시형태에 따른 화상 형성장치의 펌웨어 갱신 시스템은, 도 1에 나타낸 것과 같은 구성의 네트워크 상에서 실현된다. 네트워크는 와이드 에어리어 네트워크(WAN)를 포함한다. 네트워크는 각 구성요소를 접속하는 로컬 에어리어 네트워크(LAN(101))를 더 포함한다.
브로커(200)는, Message Queue Telemetry Transport(MQTT)로 불리는 통신 프로토콜을 사용한 데이터 통신을 행하기 위한 서버다. MQTT(MQ Telemetry Transport 또는 Message Queuing Telemetry Transport)는, ISO(International Organization for Standardization) 표준(ISO/IEC PRF 20922)의 퍼블리시-서브스크라이브 기반의 메시징 프로토콜이다. 이것은 TCP/IP 프로토콜 위에서 동작한다. 퍼블리시/서브스크라이브 모델은, 메시지 송신자(이하, 퍼블리셔라고 부른다)로부터 메시지 수신자(이하, 서브스크라이버로 부른다)에 대하여, 메시지 중개자(브로커(200))를 거쳐 메시지를 분배하는 모델이다. 서브스크라이버는, 미리 서브스크라이버가 수신하고 싶은 메시지 속성(이하, 토픽(topic)으로 부른다)을 브로커에 설정(이하, 서브스크라이브로 부른다)한다. 토픽이 브로커에 의해 설정된 후, 서브스크라이버는 브로커(200)와 인터넷을 거쳐 확립한 네트워크 세션을 계속해서 유지할 필요가 있다. 서브스크라이버가 항상 네트워크 세션을 계속해서 유지할 필요는 없지만, 실시간으로 메시지를 처리하고 싶은 경우에는 고빈도로 브로커(200)와 네트워크 접속할 필요가 있다. 퍼블리셔가 토픽을 지정해서 브로커(200)에 대해 메시지를 송신하면, 브로커(200)는 그 토픽을 서브스크라이브하고 있는 서브스크라이버에 대해 메시지를 분배한다.
토픽은, 분리 문자("/")를 사용해서 계층구조의 형태로 표현할 수 있다. 또한, 서브스크라이브시의 토픽에는 특수문자(와일드 카드)를 포함시킴으로써, 한번에 복수의 토픽에 서브스크라이버가 서브스크라이브가 가능하다. 예를 들면, "/foo/#"이라고 하는 토픽을 미리 서브스크라이브하면, "/foo/bar"와 "/foo/bar/baz" 등의 토픽에 퍼블리시된 메시지를 서브스크라이버가 수신가능하다. 또한, 서브스크라이버가 서브스크라이브하고 있는 토픽에 관한 메시지의 수신을 멈추고 싶은 경우에는, 서브스크라이버가 구독 해제(이하, 언서브스크라이브로 부른다)할 수도 있다. 서브스크라이버는 구독 해제를 하기 위해서 브로커(200)와 인터넷을 거쳐 확립한 네트워크 세션을 절단할 필요가 있다. 서브스크라이버는 네트워크 세션을 절단함으로써 토픽에 퍼블리시된 메시지를 수신할 수 없게 된다. 토픽을 서브스크라이브하는 서브스크라이버가 없을 경우, 브로커(200)가 토픽을 삭제해서 설정을 해제하는 것도 가능하다.
브로커(200)는, 토픽마다 최후에 퍼블리시된 메시지를 유지하고, 새로운 서브스크라이버가 추가되었을 때, 최후에 퍼블리시된 메시지를 추가된 서브스크라이버에 송신하는 기능(이하, 리테인(retain)으로 부른다)도 구비한다. 이와 같은 기능에 따라 서브스크라이버는 서브스크라이브 개시 시점에서 최신의 정보를 취득하는 것이 가능하다. 실시예 1에서는, MQTT에 근거하여 통신을 행하는 것을 가정하여 펌웨어 갱신 시스템을 구성하지만, 브로커(200)와 같은 중개 장치를 사용하여, 2점의 장치들, 즉 데이터를 송신하는 장치와 데이터를 최종적으로 수신하는 장치 사이에서 데이터 송수신을 실현하는 어떤 데이터 통신 프로토콜을 사용해도 된다.
갱신 관리 서버(300)는, 펌웨어 갱신에 관한 메시지를 제어하기 위한 서버다. 갱신 관리 서버(300)는, 화상 형성장치(500)의 판매와 서포트를 행하고 있는 판매 회사/딜러와, 화상 형성장치를 도입하고 있는 고객기업 등의 테넌트마다 테넌트부(720)를 구비하고 있다. 테넌트부(720)는, 각 판매 회사와 고객기업의 관리자로부터의 승인 지시에 응답하여 펌웨어 갱신에 관한 메시지 처리를 행하는 기능이며, 단말(400) 등으로부터의 지시에 응답하여 갱신 관리 서버(300) 내에서 동적으로 실현되는 기능이다. 승인 프로세스가 불필요한 판매 회사와 고객기업에 대해서는, 대응하는 테넌트부(720)에 의해 메시지 처리를 행하지 않고, 그 대신에 갱신 관리 서버(300) 내의 다른 소프트웨어 기능에 의해 메시지 처리를 행한다. 실시예 1에 있어서는, 갱신 관리 서버(300) 내부에 테넌트부(720)를 배치하고, 판매 회사나 고객기업으로부터의 승인 프로세스를 처리하도록 펌웨어 갱신 시스템이 구성되어 있지만, 다른 서버를 수립하여 테넌트부(720)에서 행하는 처리를 실행하도록 하는 구성으로 해도 된다. 이와 같은 다른 서버가 기존의 서버이면, 이와 같은 구성은 서버 구축의 비용면의 과제를 해소하고, 브로커(200)를 이용함으로써 승인 프로세스도 용이하게 한다.
정보 단말 4000a 및 400b는 퍼스널 컴퓨터(PC)나 스마트 폰으로 대표되는 단말이며 웹 브라우저(401)가 각각 내장되어 있다. 디바이스 제조 회사. 판매 회사 등의 펌웨어 갱신 담당자는, 웹 브라우저(401)를 이용하여, 갱신 관리 서버(300)에 대해 지시를 내린다. 정보 단말 400a는 디바이스 제조 회사나 판매 회사의 담당자가 이용하는 단말의 접속의 예이며, 정보 단말 400b는, 화상 형성장치(500)를 이용하고 있는 고객기업의 담당자가 이용하는 단말의 접속의 예다. 이 예는 어디까지나 일례이며, 네트워크를 거쳐 통신가능한 상태에서 접속되어 있으면 정보 단말 4000a 및 400b는 어디에 위치해도 된다. 그 때문에, 이후의 설명에서는, 정보 단말 400a와 400b를 구별하지 않고 단말(400)로서 설명한다. 또한, 실시예 1에서는, 갱신 관리 서버(300)에 웹 브라우저(401)를 거쳐 지시를 내리도록 펌웨어 갱신 시스템을 구성으로 하고 있지만, 전용의 어플리케이션을 이용하도록 구성하여도 된다.
화상 형성장치(500)는, 예를 들어, MFP이다. 화상 형성장치(500)는, 브로커(200)로부터 펌웨어의 갱신 지시를 받으면, 수신한 정보에 근거하여 자동적으로 펌웨어를 갱신하는 기능을 갖는다.
브로커(200) 및 갱신 관리 서버(300)는 도 1에서는 1대의 정보 처리장치를 사용하여 각각 구성되어 있는 것 같이 도시하고 있지만, 복수대의 정보 처리장치를 사용하여 브로커(200) 및 갱신 관리 서버(300)가 구성되도록 펌웨어 갱신 시스템을 구성하는 것도 가능하다. 본 발명에서 용어 "정보 처리 시스템"을 사용한 경우, 1대의 정보 처리장치, 또는 복수대의 정보 처리장치를 사용하여 접속된 시스템을 나타내는 것으로 한다.
도 2a 및 도 2b는, 브로커(200), 갱신 관리 서버(300), 단말(400), 화상 형성장치(500)의 하드웨어 구성의 일례를 도시한 도면이다. 도 2a에 표시되는 하드웨어 블럭도는, PC 등의 일반적인 정보 처리장치의 하드웨어 블럭도에 해당하는 것으로 가정하고, 본 실시형태에 따른 각 서버 및 단말에는 일반적인 정보 처리장치의 하드웨어 구성을 적용할 수 있는 것으로 가정한다.
이하의 설명에서, 도 2a의 하드웨어 구성을, 이 구성이 브로커(200)의 하드웨어 구성을 나타내는 것을 가정하여 예로 들어 설명한다. 중앙처리장치(CPU)(201)는, 판독 전용 메모리(ROM)(203) 또는 하드디스크(HD) 등의 외부 기억장치(211)로부터 랜덤 액세스 메모리(RAM)(202)에 로드된 오퍼레이팅 시스템(OS)과 어플리케이션 등의 프로그램을 실행하여, 시스템 버스(204)에 접속되는 각 블록을 제어한다. 본 발명에 있어서의 OS는 컴퓨터 상에서 가동하는 오퍼레이팅 시스템의 약어이며, 이하 오퍼레이팅 시스템을 OS로 부른다. RAM(202)은, CPU(201)의 주메모리, 워크 에어리어 등으로서 기능한다.
키보드 콘트롤러(KBC)(205)는, 키보드(209)나 미도시된 포인팅 디바이스로부터의 키 입력을 제어한다. 음극선관(CRT) 콘트롤러(CRTC)(206)는, CRT 디스플레이(210)의 표시를 제어한다. 디스크 콘트롤러(DKC)(207)는, 각종 데이터를 기억하는 하드디스크(HD) 등의 외부 기억장치(211)에 있어서의 데이터 액세스를 제어한다. 네트워크 콘트롤러(NC)(208)는, WAN(100), LAN(101),혹은 공중회선을 거쳐 접속된 다른 기기와의 통신제어처리를 실행한다. 후술하는 설명에 있어서는, 특별히 기재하지 않는 한, 브로커(200)에 있어서의 실행의 하드상의 주체는 CPU(201)인 것으로 가정한다. 그리고, CPU(201)이 외부 기억장치(211) 등에 기억되어 있는 어플리케이션 프로그램을 실행함으로써, 후술하는 브로커(200)의 소프트웨어 구성 및 시퀀스 도에 도시한 브로커(200)의 처리가 실현된다.
갱신 관리 서버(300) 및 단말(400)의 하드웨어 구성에 대해서도 전술한 도 2a에서 설명한 같이 구성된다. 즉, 각각의 CPU(201)이 각각의 외부 기억장치(211) 등에 기억되어 있는 어플리케이션 프로그램을 실행함으로써, 각각의 후술하는 소프트웨어 구성 및 시퀀스 도에 있어서의 각각의 처리 절차가 실현된다.
도 2b는 화상 형성장치(500)의 하드웨어 구성을 나타낸다. 이 구성은 전술한 도 2a에 나타낸 구성과 거의 유사하기 때문에, 도 2a에 도시된 구성과의 차분만에 초점을 맞추어 설명한다. 화상 형성장치(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)에 있어서도 실행의 하드웨어 상의 주체는 CPU(201)이다. CPU(201)이, 외부 기억장치(211)에 기억되어 있는 펌웨어나 어플리케이션 프로그램 등을 실행함으로써, 후술하는 화상 형성장치(500)의 소프트웨어 구성 및 시퀀스 도에 있어서의 화상 형성장치(500)의 처리가 실행된다.
도 3은, 실시예 1에 따른 브로커(200), 갱신 관리 서버(300) 및 화상 형성장치(500)의 각각의 소프트웨어 구성을 도시한 도면이다. 각각이 이들 소프트웨어 구성에 포함되는 각종 모듈을 실행함으로써 서비스와 기능을 제공한다. 본 실시형태에 따른 펌웨어 갱신 시스템 내의 각 구성요소가 갖는 소프트웨어 구성에 포함되는 각종 모듈은, 각장치의 CPU(201)이 RAM(202)에 로드된 소프트웨어 프로그램을 실행하는 것으로 실현된다.
브로커(200)는, MQTT 서버 모듈(600)을 구비한다. MQTT 서버 모듈(600)은, 퍼블리셔로부터 퍼블리시된 메시지를 수신하고, 수신된 메시지를 서브스크라이버에 송신하는 모듈이다. 실시예 1에 있어서는, 갱신 관리부(700), 테넌트부(720)및 화상 형성장치(500)의 각각이 퍼블리셔 및 서브스크라이버로서 기능한다. 또한, 실시예 1에 있어서, MQTT 서버 모듈(600)은 갱신 관리 서버(300)로부터의 요구에 따라 메시지를 서브스크라이브하고, 또한 퍼블리시하기 위해서 필요한 토큰의 발행도 행한다. 여기에서 발행되는 토큰은, 유저가 인증되어 있는지 아닌지를 검증하기 위한 토큰이다. 메시지가 서브스크라이브나 퍼블리시되었을 때에 이 토큰을 검증함으로써 제3자에 의해 부정으로 메시지가 서브스크라이브되거나 퍼블리시되는 것을 막을 수 있다.
갱신 관리 서버(300)는, 갱신 관리부(700) 및 테넌트부(720)를 구비한다. 갱신 관리부(700)는, 디바이스 제조 회사의 담당자가 단말(400)로부터 송신한 펌웨어 갱신의 통지를 받고, 브로커(200)를 거쳐 각 테넌트부(720)나 화상 형성장치(500)에 통지를 송신하도록 제어를 행하는 역할을 담당한다. 갱신 관리부(700)는, MQTT 통신 모듈(701), 테넌트 관리 모듈(702)및 인증 모듈(703)로 구성된다. MQTT 통신 모듈(701)은, 브로커(200)에 대해 메시지를 퍼블리시함으로써 다른 테넌트 또는 화상 형성장치(500)에 메시지를 송신한다. 또한, MQTT 통신 모듈(701)은, 브로커(200)에 대해 서브스크라이브함으로써 다른 테넌트 또는 화상 형성장치(500)로부터의 메시지를 수신도 행한다.
테넌트 관리 모듈(702)은, 판매 회사와 고객기업의 추가나 삭제에 따라, 각각에 대응하는 테넌트부(720)의 생성이나 삭제를 행한다. 또한, 테넌트 관리 모듈(702)은, 각 테넌트에 있어서 펌웨어 갱신시의 승인을 필요로 하는지 아닌지의 정보의 관리도 행한다. 더구나, 테넌트 관리 모듈(702)은, 관리자가 단말로부터 송신한 펌웨어 갱신의 통지를 수신하고, 테넌트부(720)에 갱신의 메시지를 통지하기 위해서 MQTT 통신 모듈(701)을 거쳐 브로커(200)에 메시지를 퍼블리시하는 기능을 갖춘다. 또한, 테넌트 관리 모듈(702)은, 각 테넌트부(720)에 의한 승인이 불필요한 경우에는, 각 테넌트부(720)를 대신하여 메시지 처리를 행하는 대행하는 기능도 구비한다. 승인이 필요한지 불필요한지는 동적으로 전환될 수 있다. 인증 모듈(703)은, 처리의 요구원인 유저의 인증을 행하는 기능을 갖춘다. 실시예 1에서는, 인증 모듈(703)이 유저 identification(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) 경유로 펌웨어 갱신 메시지를 받고, 펌웨어를 갱신하는 기능을 갖춘다. 또한, 펌웨어 갱신 모듈(801)은, 펌웨어를 갱신후에 갱신 결과를 송신하는 기능도 구비한다. 이들 구성요소는 본 실시형태를 실시하는데 필요하게 되는 소프트웨어 기능으로서의 역할을 한다.
다음에, 테넌트 관리 모듈(702)이 관리하는 각 테넌트부의 정보(이하, 테넌트 정보로 부른다)에 대해서 도 4를 참조하여 설명한다. 테넌트 정보는 트리구조하에서 관리되고, 실제의 판매 회사와 고객기업의 계층 관계를 반영한 구조하에서 관리된다. 실시예 1에서는, 디바이스 제조 회사의 아래에 2개의 판매 회사가 존재하고, 첫번째 판매 회사 밑에는 1개의 고객기업이 존재하고, 두번째 판매 회사 밑에는 1개의 딜러가 존재하고, 딜러 밑에 고객기업이 더 존재하는 계층 관계를 예로 들어 테넌트가 존재하는 것으로 상정하고 있다. 도 4는 그 계층 관계를 트리구조로 표현한 도면이다. 예를 들면, 디바이스 제조 회사는 판매 회사의 친 테넌트이며, 그 판매 회사는 디바이스 제조 회사의 자 테넌트의 관계에 디바이스 제조 회사와 판매 회사가 있다. 마찬가지로, 두번째 판매 회사는 딜러의 친 테넌트에 해당하고, 딜러는 판매 회사의 자 테넌트에 해당한다.
루트 노드(900)는 테넌트 정보를 관리하기 위한 가장 주된 소스 정보이며, 디바이스 제조 회사의 계층에 대응한다. 루트 노드(900)는, ID(901), 요구 송신용 토픽(902), 자 노드 수(903), 노드(904)의 각 정보를 포함한다. ID(901)은, 노드를 식별하기 위한 식별자다. 요구 송신용 토픽(902)은, 갱신 관리부(700)가 디바이스 제조 회사의 단말(400)로부터 버전 갱신의 요구를 받았을 때에 메시지를 퍼블리시할 때에 지정하는 토픽을 나타낸다. 자 노드 수(903)는, 루트 노드(900)의 바로 아래에 위치하는 테넌트의 수를 나타낸다. 상기한 바와 같이 도 4는 2개의 판매 회사가 존재하는 예를 나타내기 때문에, 루트 노드(900) 밑에는 각각의 판매 회사에 대응하는 2개의 테넌트부(720)가 존재하고 있다. 노드(904)는, 루트 노드(900) 밑에 위치하는 각 테넌트의 테넌트 정보를 격납한 노드를 가리키는 포인터의 배열을 유지하고 있다.
노드 1000, 1010, 1020, 1030, 1040은 테넌트 정보를 격납한다. ID(1001)은 테넌트 정보를 격납한 노드를 식별하기 위한 식별자다. 요구 수신용 토픽(1002)은, 브로커(200)로부터 펌웨어 갱신의 요구 메시지를 받기 위한 토픽이며, 테넌트부(720)는 이 토픽에 대해 서브스크라이브를 행한다. 이 토픽은, 이 테넌트 자신의 1계층 위, 즉 바로 위에 놓인 테넌트를 지정하는 토픽 패스로 표현되어 있다. 이것은, 자 테넌트의 테넌트 정보는 이 테넌트 자체의 바로 위에 놓인 테넌트로부터의 메시지를 서브스크라이브하기 위한 정보를 포함한다는 것을 의미한다.
요구 송신용 토픽(1003)은, 펌웨어 갱신의 요구를 승인한 후에, 펌웨어 갱신 요구 메시지를 퍼블리시할 때에 지정하는 토픽을 나타낸다. 이 토픽은, 이 테넌트 자체에 해당하는 토픽 패스로서 표현되어 있다. 이러한 토픽 패스에 메시지를 퍼블리시하고 이 토픽 패스에 서브스크라이브하는 구성을 채용하는 것에 의해, 이 테넌트 자신에게 대응하는 패스에 메시지를 퍼블리시함으로써 이 테넌트 자신 아래에 위치하는 테넌트부(720)를 송신처로 의도하면서 테넌트가 메시지를 송신하는 것이 가능해 진다. 이와 같은 분배에 따라, 테넌트가 이 테넌트 자신의 바로 아래에 배치된 테넌트부(720)에 대해 메시지를 송신하는 것이 가능하게 된다.
응답 수신용 토픽(1004)은, 펌웨어 갱신의 요구를 받은 화상 형성장치(500)의 처리 결과를 수신하기 위한 토픽이다. 이 토픽은 이 테넌트 자신에게 대응하는 토픽 패스를 뒤따르는 패스에 대해 와일드 카드를 지정하도록 준비되어 있다. 그 때문에, 이와 같은 토픽에 의해, 테넌트가 이 테넌트 지신의 아래 배치된 화상 형성장치(500) 모두의 처리 결과를 수신할 수 있게 된다.
승인 필요/불필요 정보(1005)는, 이 테넌트부(720)에 대응하는 회사가 펌웨어 갱신의 요구에 대해 승인 프로세스를 필요로 할 것인지 아닌지를 나타내는 정보다. 이 정보가 참(true)으로 설정된 경우, 테넌트부(720)는 펌웨어 갱신 통지 메시지를 스스로 수신하고, 테넌트부(720)에 대응하는 회사의 담당자로부터의 펌웨어 갱신 허가의 지시를 받고, 아래의 계층에 펌웨어 갱신 통지를 송신하도록 제어를 행한다.
한편, 승인 필요/불필요 정보(1005)가 거짓(false)으로 설정된 경우, 이와 같은 설정은, 테넌트부(720)가 펌웨어 갱신 요구에 관한 처리를 행하지 않고, 갱신 관리 서버(300)의 갱신 관리부(700)가 그 대신에 처리를 행하게 한다. 자 노드 수(1006)는, 이 테넌트의 바로 아래에 위치하는 테넌트의 수를 나타낸다. 전술한 바와 같이, 2개의 판매 회사 밑에는 각각 고객기업과 딜러가 존재한다고 가정하여 이 구조가 구성된다. 따라서 도 4에서 나타낸 예에서는, "/system/sales1" 밑에 "/system/sales1/customer1"이 존재하고, "/system/sales2" 밑에 "/system/sales2/dealer1"이 존재하도록 트리 구조가 구성되고, 테넌트간의 계층 관계는 토픽 패스에 반영되는 형태가 된다.
노드(1007)는, 이 테넌트의 바로 아래에 위치하는 테넌트의 테넌트 정보를 격납한 노드를 가리키는 포인터의 배열을 격납한다. 실시예 1에 있어서는, 도 4는 판매 회사 밑에 고객기업이 존재하는 구성 및 판매 회사 밑에 딜러가 존재하고 더구나 이 딜러 아래에 고객기업이 더 존재하는 구성의 예를 나타내고 있다. 그렇지만, 테넌트의 구성은 도시한 테넌트에 한정되는 것은 아니고, 또한, 도시한 계층구조보다 더 깊은 계층구조로 구성되어 있어도 된다.
도 5a 및 도 5b는, 갱신 관리 서버(300)가 테넌트부(720)를 추가할 때의 시퀀스를 나타낸 도면이다. 도 5a는, 이 테넌트부(720)에 대응하는 회사가 승인 프로세스를 행할 경우의 시퀀스를 나타내며, 이 회사의 상위에 놓인 회사의 관리자가 단말(400)에 있어서 갱신 관리 서버(300)에 테넌트부(720) 추가를 지시를 내린 경우의 플로우를 나타내고 있다. 이와 같은 시퀀스는, 예를 들어, 디바이스 제조 회사가 판매 회사에 대응하는 테넌트부(720)를 추가할 경우나, 판매 회사가 고객기업에 대응하는 테넌트부(720)를 추가할 경우에 적용된다. 이하에서는, 디바이스 제조 회사가 판매 회사에 대응하는 테넌트부(720)(/system/sales1)를 추가하는 예를 참조하여 이 시퀀스를 설명한다.
우선, 디바이스 제조 회사의 담당자가 단말(400) 상의 웹 브라우저(401)에서 유저 ID와 패스워드를 입력하면, 스텝 S1.1에서, 웹 브라우저(401)는 입력된 정보를 인증 모듈(703)에 송신한다. 실시예 1에서는, 인증을 위한 정보로서 유저 ID와 패스워드를 사용하지만, 생체정보 등 다른 정보를 이용하도록 인증 모듈(703)을 구성하여도 된다. 인증 모듈(703)은, 단말(400)로부터 유저 ID와 패스워드를 받으면, 스텝 S1.2에서, 수신한 유저 ID와 패스워드 정보를 대조해 인증 처리를 행한다.
인증에 성공하면, 스텝 S1.3에서, 단말(400)은 테넌트 관리 모듈(702)에 대해 테넌트 추가 요구를 송신한다. 테넌트 추가 요구는, 테넌트의 부모의 ID, 추가하도록 요구된 테넌트의 ID 및 승인 필요/불필요 정보를 포함한다. 본 실시예는, 디바이스 제조 회사가 판매 회사("/system/sales1")를 추가하는 것을 상정한 시퀀스를 나타내기 때문에, 단말(400)은 부모의 ID로서 "/system"을, 추가하도록 요구된 테넌트의 ID로서 "/system/sales1"을 송신한다. 또한, 도 5a는 판매 회사가 승인 프로세스를 행할 경우의 시퀀스를 나타내기 때문에, 단말(400)은 승인 필요/불필요 정보로서 "true"을 송신한다. 테넌트 관리 모듈(702)은, 스텝 S1.4에서, 단말(400)로부터 테넌트의 작성 지시를 받으면 테넌트부(720)를 생성한다.
테넌트부(720)의 생성에 성공하면, 테넌트 관리 모듈(702)은, 스텝 S1.5에서, 기존의 테넌트 정보의 갱신을 행한다. 구체적으로는, 테넌트 관리 모듈(702)은, 스텝 S1.4에서 받은 정보를 기초로 도 4에 나타낸 테넌트 정보를 유지하는 노드 1000을 생성하고, 생성된 노드 1000을 친 노드 밑에 추가한다. 테넌트 정보의 갱신이 완료하면, 테넌트 관리 모듈(702)은, 스텝 S1.6에서, 스텝 S1.4에서 생성한 테넌트부(720)의 테넌트 처리 실행 모듈(722)에 대해 초기화 요구를 발행한다. 이때, 테넌트 관리 모듈(702)은, 초기화 요구와 함께 스텝 S1.5에서 생성한 테넌트 정보 및, 승인 필요/불필요 정보로서 "true"도 테넌트 처리 실행 모듈(722)에게 통지한다.
테넌트 처리 실행 모듈(722)은, 테넌트 초기화 요구를 받으면, 스텝 S1.7에서, MQTT 서버 모듈(600)에 대해 토큰 취득 요구를 발행한다. MQTT 서버 모듈(600)은 토큰 취득 요구를 받으면, 토큰을 작성한다. 그후, 스텝 S1.8에서, MQTT 서버 모듈(600)은 테넌트 처리 실행 모듈(722)에 토큰을 송신한다.
테넌트 처리 실행 모듈(722)은, 수신한 필요/불필요 정보가 "true"를 나타내기 때문에, 토큰을 수신하면, 스텝 S1.9에서, MQTT 통신 모듈(721)의 서브스크라이브 요구 어플리케이션 프로그래밍 인터페이스(API)를 호출한다. 이때, 테넌트 처리 실행 모듈(722)은, 스텝 S1.6에서 수신한 테넌트 정보에 포함되는 요구 수신용 토픽(1002)을 지정한다. MQTT 통신 모듈(721)은, 서브스크라이브 요구 API가 호출되면, 스텝 S1.10에서, MQTT 서버 모듈(600)에 대해 서브스크라이브 요구를 송신한다. 이때, MQTT 통신 모듈(721)은, 스텝 S1.8에서 수신한 토큰을 함께 송신한다. MQTT 서버 모듈(600)은, 서브스크라이브 요구 및 토큰을 수신하면, 스텝 S1.11에서, 수신한 토큰을 검증하고, 검증에 성공하면 요구 수신용 토픽(1002)을 설정한다.
요구 수신용의 서브스크라이브 처리가 완료하면, 다음에, 테넌트 처리 실행 모듈(722)은, 화상 형성장치(500)의 처리 결과를 받기 위해서, 스텝 S1.12에서, 다시 MQTT 통신 모듈(721)의 서브스크라이브 요구 API를 호출한다. 이때, 테넌트 처리 실행 모듈(722)은, 스텝 S1.6에서 수신한 테넌트 정보에 포함되는 응답 수신용 토픽(1004)을 지정한다. MQTT 통신 모듈(721)은, 서브스크라이브 요구 API가 호출되면, 스텝 S1.13에서, MQTT 서버 모듈(600)에 대해 서브스크라이브 요구를 송신한다. 이때, MQTT 통신 모듈(721)은, 스텝 S1.8에서 수신한 토큰을 함께 송신한다. MQTT 서버 모듈(600)은, 서브스크라이브 요구 및 토큰을 수신하면, 스텝 S1.14에서, 수신 토큰을 검증하고, 검증에 성공하면 요구 응답용 토픽(1004)을 설정한다. 이때, 실시예 1에서는, 테넌트부(720)가 반드시 응답 수신용의 서브스크라이브를 행하도록 펌웨어 갱신 시스템이 구성되어 있지만, 스텝 S1.3에서 처리 결과를 수신할 것인지 아닌지도 지정하고 테넌트부(720)가 응답 수신용의 서브스크라이브를 행하지 않도록 구성해도 된다. 이 경우는, 스텝 S1.12 내지 S1.14는 생략된다.
도 5b는, 테넌트에 의한 승인이 불필요한 경우의 시퀀스를 나타내고, 관리자가 단말(400)에 있어서 갱신 관리 서버(300)에게 테넌트의 추가를 지시했을 경우의 플로우를 나타내고 있다. 이 시퀀스는 도 5a와 유사한 처리 절치를 많이 포함하기 때문에, 차분만을 상세하게 설명한다. 스텝 S2.1 및 스텝 S2.2는 도 5a의 스텝 S1.1 및 스텝 S1.2와 유사하다. 인증이 성공하면, 스텝 S2.3에서, 단말(400)은 테넌트 관리 모듈(702)에 대해 테넌트 추가 요구를 송신한다. 이때, 단말(400)은 테넌트 추가 요구에 포함되는 승인 필요/불필요 정보로서 "false"을 지정한다. 스텝 S2.4 내지 스텝 S2.8의 처리는 도 5a의 스텝 S1.4 내지 스텝 S1.8과 승인 필요/불필요 정보로서 "false"가 제정된 것을 제외하고는 유사하다.
스텝 S2.8에서, 테넌트 처리 실행 모듈(722)은 토큰을 수신하지만, 수신한 승인 필요/불필요 정보가 "false"이기 때문에, 요구 수신용의 서브스크라이브를 행하지 않는다. 그리고, 스텝 S2.9에서, 테넌트 처리 실행 모듈(722)은 MQTT 통신 모듈(721)의 서브스크라이브 요구 API를 호출한다. 이때, 테넌트 처리 실행 모듈(722)은 스텝 S2.6에서 수신한 테넌트 정보에 포함되는 응답 수신용 토픽(1004)을 지정한다. MQTT 통신 모듈(721)은 서브스크라이브 요구 API가 호출되면, 스텝 S2.10에서 MQTT 서버 모듈(600)에 대해 서브스크라이브 요구를 송신한다. 이때, MQTT 통신 모듈(721)은 스텝 S2.8에서 수신한 토큰도 송신한다. MQTT 서버 모듈(600)은, 서브스크라이브 요구 및 토큰을 수신하면, 스텝 S2.11에서 수신한 토큰을 검증하고, 검증에 성공하면 응답 수신용 토픽(1004)을 설정한다. 테넌트부(720)에서 처리 결과를 수신하고 싶지 않은 경우에는, 스텝 S2.7, 스텝 S2.8, 스텝 S2.9, 스텝 S2.10, 스텝 S2.11의 각 스텝은 생략가능하다.
테넌트부(720)의 초기화가 완료하면 테넌트 관리 모듈(702)은, 수신한 승인 필요/불필요 정보가 "false"를 나타내기 때문에, 이하의 처리를 실시함으로써 테넌트부(720)의 테넌트 처리 실행 모듈(722) 대신에 요구 수신의 서브스크라이브를 행한다. 스텝 S2.12에서 테넌트 관리 모듈(702)은 MQTT 서버 모듈(600)에 대해 토큰 취득 요구를 발행한다. MQTT 서버 모듈(600)은 토큰 취득 요구를 받으면, 스텝 S2.13에서 토큰을 작성하고, 작성한 토큰을 테넌트 관리 모듈(702)에 송신한다. 테넌트 관리 모듈(702)은 토큰을 수신하면, 스텝 S2.14에서 MQTT 통신 모듈(701)의 서브스크라이브 요구 API를 호출한다. 이때, 테넌트 관리 모듈(702)은 스텝 S2.5에서 작성한 테넌트 정보를 참조해 요구 수신용 토픽(1002)의 정보를 지정한다. MQTT 통신 모듈(701)은, 서브스크라이브 요구 API가 호출되면 스텝 S2.15에서 MQTT 서버 모듈(600)에 대해 서브스크라이브 요구를 송신한다. 이때, MQTT 통신 모듈(701)은, 스텝 S2.13에서 수신한 토큰을 함께 송신한다. MQTT 서버 모듈(600)은 서브스크라이브 요구 및 토큰을 수신하면, 스텝 S2.16에서 수신한 토큰을 검증하고, 검증에 성공하면 요구 수신용 토픽(1002)의 설정을 행한다.
이렇게, 테넌트부(720)를 작성한 갱신 관리부(700), 즉 도 4에 도시된 루트 노드(900)에 해당하는 장치가 작성된 테넌트부(7200을 대신하여 서브스크라이브하는 것도 가능하다. 루트 노드(900)에 해당하는 장치를 루트 시스템으로 칭하고, 상기한 처리는 루트 시스템이 작성된 테넌트에 해당하는 회사에 의한 승인을 기초로, 테넌트 대신에 승인 프로세스를 행할 수 있게 한다. 이 경우의 승인 프로세스는 자동적으로 승인되는 형태이어도 된다.
서브스크라이브 처리가 완료한 후, MQTT 서버 모듈(600)의 리테인 기능에 의해 서브스크라이브된 토픽에 관한 그 시점의 최신의 메시지를 MQTT 통신 모듈(721)에 대해 송신될 수도 있다. 스텝 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)의 웹 설정 페이지를 조작하면, 웹 브라우저(401)는 펌웨어 갱신 모듈(801)에 대해 펌웨어 자동갱신 요구를 송신한다. 이 펌웨어 자동갱신 요구는, 웹 브라우저(401) 상에서 입력된 고객 ID의 정보를 포함한다. 고객 ID는, 화상 형성장치(500)를 조작하는 고객의 고객 테넌트에게 할당되는 ID이며, 도 4에서 나타내는 1040과 같이 가장 계층이 낮은 고객 테넌트의 ID에 해당한다. 이와 같은 ID를 지정함으로써 화상 형성장치(500)는 가장 계층이 낮은 테넌트로부터의 메시지를 서브스크라이브하는 것이 가능하게 된다. 펌웨어 자동갱신 요구를 받으면 화상 형성장치(500)의 펌웨어 갱신 모듈(801)은 스텝 S3.2에서 인증 모듈(703)에 대해 인증 정보를 송신한다. 여기에서는 펌웨어 갱신 모듈(801)이 인증 정보로서 화상 형성장치 내에 사전에 설정된 ID와 패스워드를 송신하는 것으로 가정한다. 인증 모듈(703)은, 인증 정보를 받으면 스텝 S3.3에서 인증 처리를 행한다. 실시예 1에서는 설명을 간략화하기 위해서 인증 모듈(703)이 단순한 ID와 패스워드를 사용한 인증을 행하는 것으로 가정하지만, 물론 이외의 인증 방식을 채용해도 된다.
인증이 성공하면 스텝 S3.4에서 펌웨어 갱신 모듈(801)은 테넌트 관리 모듈(702)에 대해 서브스크라이브 정보 취득 요구를 발행한다. 서브스크라이브 정보 취득 요구에는, 스텝 S3.1에서 수신한 고객 ID의 정보도 포함되는 것으로 가정한다. 테넌트 관리 모듈(702)은 서브스크라이브 정보 취득 요구를 수신하면, 스텝 S3.5에서 화상 형성장치(500)가 서브스크라이브해야 할 토픽을 특정한다. 구체적으로는, 테넌트 관리 모듈(702)은 도 4에서 나타낸 테넌트 정보 중의 지정된 고객 ID에 대응하는 테넌트 정보 노드에 포함되는 요구 송신용 토픽(1003)의 정보를 화상 형성장치(500)이가 서브스크라이브 해야 할 토픽이라고 판단한다.
토픽 패스의 특정이 완료하면, 테넌트 관리 모듈(702)은 스텝 S3.6에서 MQTT 서버 모듈(600)에 대하여, 화상 형성장치(500)가 서브스크라이브를 행하기 위한 토큰 취득 요구를 송신한다. MQTT 서버 모듈(600)은 토큰 취득 요구를 받으면 스텝 S3.7에서 토큰을 생성하고, 생성한 토큰을 테넌트 관리 모듈(702)에 송신한다. 테넌트 관리 모듈(702)은 토큰을 수신하면 스텝 S3.8에서 화상 형성장치(500)가 서브스크라이브해야 할 토픽 정보 및 서브스크라이브에 필요한 토큰을 펌웨어 갱신 모듈(801)에 송신한다.
펌웨어 갱신 모듈(801)은, 토픽 정보 및 토큰을 수신하면 스텝 S3.9에서 MQTT 통신 모듈(800)의 서브스크라이브 요구 API를 호출한다. MQTT 통신 모듈(800)은 서브스크라이브 요구 API가 호출되면, 스텝 S3.10에서 MQTT 서버 모듈(600)에 대해 서브스크라이브 요구를 송신한다. 이때, MQTT 통신 모듈(800)은 스텝 S3.8에서 수신한 토픽을 지정하고, 토큰도 함께 송신한다. MQTT 서버 모듈(600)은 서브스크라이브 요구 및 토큰을 수신하면, 스텝 S3.11에서, 수신한 토큰을 검증해 검증에 성공하면 서브스크라이브 처리를 행한다.
서브스크라이브 처리가 완료한 후, MQTT 서버 모듈(600)의 리테인 기능에 의해 서브스크라이브된 토픽에 관한 그 시점의 최신의 메시지를 MQTT 통신 모듈(800)에 대해 송신할 수도 있다. 이때의 처리는, 도 8의 S6.15 이후의 스텝의 처리와 유사하기 때문에 여기에서의 설명은 생략한다. 이렇게 테넌트부(720)에서의 승인 필요/불필요 정보에 따라 서브스크라이브를 하는 주체를 동적으로 전환하는 것에 의해, 승인 프로세스가 불필요한 경우에는 테넌트부(720)에 쓸데 없는 메시지를 통지하지 않고 시스템부가 테넌트부(720) 대신에 처리를 행할 수 있게 된다.
도 7a 및 도 7b는, 판매 회사나 고객기업에 있어서의 펌웨어 갱신에 있어서, 승인 프로세스의 필요/불필요를 바꿀 때의 시퀀스를 나타낸 도면이다. 도 7a는, 테넌트부(720)에서 승인 프로세스를 행하지 않고 루트 시스템에서 승인 프로세스를 행하고 있는 상태로부터, 테넌트부(720)에서 승인 프로세스를 행하는 상태로 승인 프로세서의 필요/불필요를 변경할 경우의 시퀀스를 나타낸 것이다.
우선, 판매 회사, 딜러 혹은 고객기업의 담당자가 단말(400) 상의 웹 브라우저(401)에서 인증 정보를 입력하면, 스텝 S4.1에서 웹 브라우저(401)는, 인증 모듈(703)에 인증 정보를 송신한다. 본 실시예에서는, 웹 브라우저(401)가 인증 정보로서 유저 ID와 패스워드를 송신하는 것으로 가정한다. 인증 모듈(703)은, 단말(400)로부터 유저 ID와 패스워드를 받으면, 스텝 S4.2에서 수신한 유저 ID와 패스워드 정보를 대조해 인증 처리를 행한다.
인증에 성공하면 스텝 S4.3에서 웹 브라우저(401)는, 담당자의 조작에 응답하여 테넌트 처리 실행 모듈(722)에 대해 승인 플로우의 추가 요구를 송신한다. 테넌트 처리 실행 모듈(722)은 승인 플로우 추가 요구를 수신하면 스텝 S4.4에서, 테넌트 관리 모듈(702)에 대해 승인 플로우 추가 요구를 발행한다. 승인 플로우 추가 요구를 수신하면, 스텝 S4.5에서 테넌트 관리 모듈(702)은 MQTT 서버 모듈(600)에 대하여, MQTT 서버 모듈을 이용하기 위한 토큰 발행 요구를 송신한다. MQTT 서버 모듈(600)은 토큰 발행 요구를 수신하면, 토큰을 발행한다. 그후, 스텝 S4.6에서 MQTT 서버 모듈(600)은 테넌트 관리 모듈(702)에 대해 발행한 토큰을 송신한다.
테넌트 관리 모듈(702)은 토큰을 수신하면 스텝 S4.7에서 MQTT 통신 모듈(701)의 언서브스크라이브 요구 API를 호출한다. MQTT 통신 모듈(701)은 언서브스크라이브 요구 API가 호출되면, 스텝 S4.8에서 MQTT 서버 모듈(600)에 대해 언서브스크라이브 요구를 송신한다. MQTT 서버 모듈(600)은, 언서브스크라이브 요구를 수신하면, 스텝 S4.9에서 토큰의 검증을 행하고, 언서브스크라이브 처리를 실행한다. 언서브스크라이브 처리가 완료하면 테넌트 관리 모듈(702)은 스텝 S4.10에서 테넌트 정보의 갱신을 행한다. 구체적으로는, 테넌트 관리 모듈(702)은 도 4의 승인 필요/불필요 정보(1005)를 false로 설정한다.
테넌트 정보의 갱신이 완료하면, 스텝 S4.11에서 테넌트 관리 모듈(702)은 테넌트 처리 실행 모듈(722)에 대해 스텝 S4.6에서 수신한 토큰을 송신한다. 테넌트 처리 실행 모듈(722)은, 토큰을 수신하면, 스텝 S4.12에서 MQTT 통신 모듈(721)의 서브스크라이브 요구 API를 호출한다. 이때, 테넌트 처리 실행 모듈(722)은, 테넌트 정보에 포함되는 요구 수신용 토픽(1002)을 지정한다. 즉, 테넌트 처리 실행 모듈(722)은, 친 테넌트를 지정하는 토픽 패스를 지정한다. MQTT 통신 모듈(721)은 서브스크라이브 요구 API가 호출되면 스텝 S4.13에서, MQTT 서버 모듈(600)에 대해 서브스크라이브 요구와, 스텝 S4.11에서 수신한 토큰을 송신한다. MQTT 서버 모듈(600)은, 서브스크라이브 요구 및 토큰을 수신하면, 스텝 S4.14에서 토큰의 검증을 행하고, 검증에 성공하면 요구 수신용 토픽(1002)의 설정을 행한다. 스텝 S4.14의 서브스크라이브 처리 완료후에, 리테인 기능에 의해 MQTT 서버 모듈(600)로부터 MQTT 통신 모듈(721)에 최신의 메시지가 송신되는 일이 있지만, 이때의 처리는 도 8의 S6.4 이후의 스텝의 처리와 유사하기 때문에, 여기에서의 설명은 생략한다.
도 7b는, 테넌트부(720)에서 승인 프로세스를 행하는 상태로부터, 테넌트부(720)에서 승인 프로세스를 행하지 않고 루트 시스템에서 승인 프로세스를 행하는 상태로 승인 프로세서의 필요/불필요를 변경할 경우의 시퀀스다. 스텝 S5.1 및 S5.2의 처리는 스텝 S4.1 및 S4.2와 유사하기 때문에 여기에서는 설명을 생략한다.
인증에 성공하면 스텝 S5.3에서 웹 브라우저(401)는 담당자의 조작에 응답하여 테넌트 처리 실행 모듈(722)에 대해 승인 플로우의 삭제 요구를 발행한다. 테넌트 처리 실행 모듈(722)은 승인 플로우 삭제 요구를 수신하면 스텝 S5.4에서, 테넌트 관리 모듈(702)에 대해 승인 플로우 삭제 요구를 발행한다. 승인 플로우 삭제 요구를 수신하면, 스텝 S5.5에서 테넌트 관리 모듈(702)은 MQTT 서버 모듈(600)에 대하여, MQTT 서버 모듈(600)을 이용하기 위한 토큰 발행 요구를 송신한다. MQTT 서버 모듈(600)은 토큰 발행 요구를 수신하면, 토큰을 발행한다. 그후, 스텝 S5.6에서 MQTT 서버 모듈(600)은 테넌트 관리 모듈(702)에 대해 발행한 토큰을 송신한다. 테넌트 관리 모듈(702)은 토큰을 수신하면 스텝 S5.7에서 테넌트 처리 실행 모듈(722)에 대해 토큰을 송신한다.
테넌트 처리 실행 모듈(722)은 토큰을 수신하면 스텝 S5.8에서 MQTT 통신 모듈(721)의 언서브스크라이브 요구 API를 호출한다. MQTT 통신 모듈(721)은, 언서브스크라이브 요구 API가 호출되면 스텝 S5.9에서 MQTT 서버 모듈(600)에 대해 언서브스크라이브 요구를 송신한다. 이때, MQTT 통신 모듈(721)은, 스텝 S5.7에서 수신한 토큰도 함께 송신한다. MQTT 서버 모듈(600)은, 언서브스크라이브 요구 및 토큰을 수신하면 스텝 S5.10에서 토큰의 검증을 행하고, 검증에 성공했을 경우에 요구 수신용의 설정을 삭제함으로써, 언서브스크라이브 처리가 완료한다. 언서브스크라이브처리가 완료하면 테넌트 처리 실행 모듈(722)은, 스텝 S5.11에서 테넌트 관리 모듈(702)에 대해 언서브스크라이브 완료 통지를 송신한다.
테넌트 관리 모듈(702)은, 언서브스크라이브 완료 통지를 수신하면, 스텝 S5.12에서 MQTT 통신 모듈(701)의 서브스크라이브 API를 호출한다. 이때, 테넌트 관리 모듈(702)은, 테넌트 정보에 포함되는 요구 수신용 토픽(1002)을 지정한다. 이때의 요구 수신용 토픽(1002)의 토픽 패스는, 언서브스크라이브한 자 테넌트에 대한 친 테넌트에의 토픽 패스다. MQTT 통신 모듈(701)은 서브스크라이브 API가 호출되면 스텝 S5.13에서 MQTT 서버 모듈(600)에 대해 서브스크라이브 요구를 송신한다. 이때, MQTT 통신 모듈(701)은 스텝 S5.6에서 수신한 토큰을 함께 송신한다.
MQTT 서버 모듈(600)은 서브스크라이브 요구 및 토큰을 수신하면 스텝 S5.14에서 토큰의 검증을 행하고, 검증에 성공한 경우에는 서브스크라이브 처리를 실행한다. 서브스크라이브 처리가 완료하면 테넌트 관리 모듈(702)은 스텝 S5.15에서 테넌트 정보를 갱신한다. 구체적으로는, 테넌트 관리 모듈(702)은 테넌트 정보 중의 승인 프로세스의 필요/불필요 정보를 false로 오버라이트한다. 스텝 S5.14의 서브스크라이브 처리 완료후에 리테인 기능에 의해 최신의 메시지가 MQTT 서버 모듈(600)로부터 MQTT 통신 모듈(701)에 송신되는 일이 있지만, 이때의 처리는 도 8의 스텝 S6.11 이후의 스텝의 유사하기 때문에, 여기에서의 설명은 생략한다. 본 처리에 의해, 갱신 관리부(700)가 이렇게 요구에 응답하여 동적으로 서브스크라이브를 실행하는 주체를 전환함으로써, 펌웨어 갱신 시스템이 유연하게 승인 플로우를 변경할 수 있도록 할 수 있다.
도 8은, 디바이스 제조 회사의 담당자가 펌웨어 갱신 정보를 갱신 시스템에 통지했을 경우에, 갱신 통지가 화상 형성장치(500)에 송신될 때까지의 처리의 흐름을 나타낸 시퀀스다. 이 시퀀스는 도 4에 도시된 노드 1000 및 1010에 대응하는 테넌트부(720)만 존재할 경우의 정보통지를 예로 들어 나타낸 것이다.
디바이스 제조 회사의 담당자가 단말(400) 상의 웹 브라우저(401) 상에서 펌의 갱신 정보를 입력하면, 스텝 S6.1에서 웹 브라우저(401)는 테넌트 관리 모듈(702)에 대해 펌웨어 갱신 통지를 송신한다. 테넌트 관리 모듈(702)은, 펌웨어 갱신 통지를 수신하면 스텝 S6.2에서 MQTT 통신 모듈(701)의 퍼블리시 API를 호출한다. 이때, 테넌트 관리 모듈(702)은, 루트 노드(900)에 포함되는 요구 송신용 토픽(902)을 지정한다. 퍼블리시할 메시지의 내용은, 펌웨어의 갱신 정보가 기재된 Uniform Resource Locator(URL)이다. 이 URL에 액세스함으로써 펌웨어의 버전 및 갱신 내용과 펌웨어의 입수처 등의 상세정보를 취득할 수 있다. 실시예 1에 있어서는, 메시지로서 URL을 송신하고, URL을 기초로 상세정보를 취득하도록 펌웨어 갱신 시스템을 구성하고 있지만, 메시지 자체에 상세정보를 매립하도록 하는 구성으로 해도 된다. 메시지의 형식은 이 형태에 한정되는 것은 아니고, 펌웨어의 갱신에 관계없이 임의의 정보를 포함할 수도 있다.
MQTT 통신 모듈(701)은 퍼블리시요구 API를 호출받으면, 스텝 S6.3에서 MQTT 서버 모듈(600)에 대해 퍼블리시 요구를 송신한다. MQTT 서버 모듈(600)은 퍼블리시 요구를 수신하면, 토픽을 서브스크라이브하고 있는 테넌트부(720)의 MQTT 통신 모듈(721)에 대해 메시지(URL 정보)를 송신한다. MQTT 통신 모듈(721)은 메시지(URL 정보)를 수신하면, 스텝 S6.5에서 테넌트 처리 실행 모듈(722)에 대해 메시지(URL 정보)를 통지한다. URL 정보의 통지를 받으면 테넌트 처리 실행 모듈(722)은, 스텝 S6.6에서 URL로부터 펌웨어의 갱신 정보를 취득해서 관리자용 웹 브라우저(401)로부터 액세스가능한 펌웨어 갱신 확인 페이지(1100)를 생성한다. 실시예 1에 있어서는, 이때 테넌트 처리 실행 모듈(722)은 웹 페이지 생성만 생성하지만, 실시간으로 담당자에게 정보를 통지하기 위해서 e-메일을 송신하도록 구성하여도 된다.
도 10a는, 펌웨어 갱신 확인 페이지(1100)의 일례를 도시한 도면이다. 버전 정보(1101)는 스텝 S6.5에서 수신한 URL로부터 취득한 정보를 표시하고 있다. 영역(1102)은, 버전(1101)에서 갱신된 내용을 나타내는 정보가 표시된다. 이 정보의 내용도 스텝 S6.5에서 수신한 URL에 액세스함으로써 취득할 수 있다. 허가 버튼(1103)은 누르면 갱신 허가를 지시하기 위한 버튼이다. 거부 버튼(1104)은 펌웨어의 갱신을 하지 않고 펌웨어 갱신 확인 페이지(1100)를 닫기 위해 사용된다. 거부 버튼(1104)이 눌러진 경우에는, 스텝 S6.7 이후의 스텝의 처리가 행해지지 않는데, 이것은 펌웨어 갱신 통지가 테넌트부(720)와 이 테넌트부(720) 아래 놓인 화상 형성장치(500)에 통지되지 않아 펌웨어의 갱신이 행해지지 않는다는 것을 의미한다. 담당자가 펌웨어 갱신 확인 페이지(1100)에 액세스해서 허가 버튼(1103)을 누르면, 웹 브라우저(401)는 스텝 S6.7에서 테넌트 처리 실행 모듈(722)에 대해 갱신 허가 통지를 송신한다.
테넌트 처리 실행 모듈(722)은, 갱신 허가 통지를 수신하면, 스텝 S6.8에서 펌웨어 갱신 확인 페이지(1100)를 삭제한다. 본 실시예에서는 테넌트 처리 실행 모듈(722)이 페이지(1100)를 삭제해서 페이지(1100)를 액세스할 수 없도록 하고 있지만, 페이지(1100)의 내용을 오버라이트하는 것 만으로도 된다. 웹 페이지(1100)의 삭제가 완료하면 스텝 S6.9에서 테넌트 처리 실행 모듈(722)은 MQTT 통신 모듈(721)의 퍼블리시 요구 API를 호출한다. 이때, 테넌트 처리 실행 모듈(722)은 테넌트 정보에 포함되는 요구 송신용 토픽(1003)을 지정한다. 메시지의 본체는 스텝 S6.5에서 수신한 내용(URL 정보)을 그대로 지정하는 것으로 생성되는 것으로 가정하지만, 메시지를 처리한 테넌트부(720)가 스텝 S6.5에서 수신한 내용을 기초로 새로운 메시지를 생성하는 것 이외에, 메시지에 정보를 추가하거나 메시지로부터 정보를 삭제해서 생성해도 된다.
MQTT 통신 모듈(721)은 퍼블리시 API가 호출되면, 스텝 S6.10에서 MQTT 서버 모듈(600)에 대해 퍼블리시 요구를 송신한다. MQTT 서버 모듈(600)은 퍼블리시 요구를 수신하면, 지정된 토픽을 서브스크라이브하고 있는 서브스크라이버에 메시지를 송신한다. 노드 1010에 해당하는 테넌트부(720)는 승인 프로세스를 필요로 하지 않으므로, 루트 시스템 내의 테넌트 관리 모듈(702)이 노드 1010에 해당하는 테넌트 대신에 서브스크라이브를 하고 있다. 따라서, MQTT 서버 모듈(600)은, 스텝 S6.11에서 갱신 관리부(700)에 포함되는 MQTT 통신 모듈(701)에 대해 메시지를 송신한다.
MQTT 통신 모듈(701)은 메시지를 수신하면, 스텝 S6.12에서 테넌트 관리 모듈(702)에 대해 수신한 메시지를 통지한다. 테넌트 관리 모듈(702)은, 메시지의 통지를 받으면, 스텝 S6.13에서 노드 1010에 해당하는 테넌트의 처리를 대행하기 위해서 MQTT 통신 모듈(701)의 퍼블리시 API를 호출한다. 이때, 테넌트 관리 모듈(702)은, 노드 1010의 테넌트 정보에 포함되는 요구 송신용 토픽(1003)을 지정한다. 테넌트 대신에 루트 시스템이 처리를 행하는 경우에는 메시지 처리, 즉 이 경우에는 승인 프로세스가 불필요하게 되기 때문에, 메시지의 내용에 상관없이 메시지가 퍼블리시되게 되어 있다. MQTT 통신 모듈(701)은, 퍼블리시 API를 호출되면 스텝 S6.14에서 MQTT 서버 모듈(600)에 대해 퍼블리시 요구를 송신한다.
MQTT 서버 모듈(600)은 퍼블리시 요구를 수신하면 지정된 토픽을 서브스크라이브하고 있는 서브스크라이버에 메시지를 송신한다. 본 실시예는 1대의 화상 형성장치(500)가 노드 1010에 해당하는 고객기업의 관리하에 존재하고 있는 경우의 시퀀스를 상정하고 있다. 따라서, MQTT 서버 모듈(600)은 스텝 S6.15에서 화상 형성장치(500)의 MQTT 통신 모듈(800)에 대해 메시지(URL 정보)를 송신한다. 화상 형성장치(500)가 복수대 존재하는 경우에는, 각각의 화상 형성장치(500)가 도 6에서 나타낸 플로우에 따라 테넌트부(720)로부터 메시지를 서브스크라이브하게 되어 있는데, 이것은 MQTT 서버 모듈(600)이 복수대의 화상 형성장치(500)에 메시지를 송신한다는 것을 의미한다.
MQTT 통신 모듈(800)은 메시지를 수신하면, 펌웨어 갱신 모듈(801)에 대해 메시지(URL 정보)를 통지한다. 펌웨어 갱신 모듈(801)은 메시지를 수신하면, 스텝 S6.17에서 받은 URL로부터 펌웨어의 다운로드 처를 취득한다. 그리고, 펌웨어 갱신 모듈(801)은 펌웨어를 다운로드해서 펌웨어의 갱신을 행한다.
본 실시예에서는, 판매 회사에 있어서 승인 프로세스를 필요한 것으로 설정하고 있기 때문에, 갱신 통지의 메시지가 테넌트부(720)에 통지되어 테넌트부(720)에 의해 승인에 관한 처리가 행해지고 있었다. 그러나, 전체 테넌트부(720)에 있어서 승인 프로세스를 행하지 않도록 설정한 경우에는, 테넌트부(720)를 일체 거치지 않고 갱신 관리부(700)에 의해 행해진 처리만으로 화상 형성장치(500)에 대해 메시지가 전달된다. 반대로, 전체 테넌트부(720)에 있어서 승인이 필요한 것으로 설정되어 있을 경우, 갱신 관리부(700)가 스텝 S6.3에서 메시지의 퍼블리시를 행한 후에는 메시지 처리를 일체 행하지 않고, 각 테넌트부(720)에서 행해진 메시지 처리에 의해 화상 형성장치(500)에 메시지가 송신된다.
도 9는, 펌웨어 갱신의 결과를 각 테넌트부(720)에 통지할 때의 시퀀스를 나타낸 도면이다. 도 4에 나타낸 테넌트 구성일 경우에, "/system/sales1/customer1"의 고객기업에서 설정된 화상 형성장치(500)의 펌웨어를 갱신했을 경우의 예를 참조하여 본 시퀀스의 설명을 행한다. 이때, 노드 1000 내지 1040에 해당하는 각 테넌트부(720)가 응답 수신용 토픽(1004)을 서브스크라이브하고 있는 것을 가정하여 본 시퀀스를 설명한다.
우선 스텝 S7.1에서 펌웨어 갱신 모듈(801)이 펌웨어 갱신을 행한다. 펌웨어의 갱신이 완료하면, 스텝 S7.2에서 펌웨어 갱신 모듈(801)이 MQTT 통신 모듈(800)의 퍼블리시 API를 호출한다. 펌웨어 갱신 모듈(801)은 이때의 토픽으로서 화상 형성장치(500)가 배치되는 계층을 나타내는 토픽을 지정하지만, 화상 형성장치(500)는 테넌트가 아니기 때문에 도 4에 나타내는 테넌트와 달리 테넌트 정보로서 관리되고 있는 것은 아니다. 화상 형성장치(500)는 고객이 소유하므로 최하층에 있는 테넌트를 지정하는 토픽 패스의 더 아래에 위치하게 된다. 따라서, 이 예에서는 펌웨어 갱신 모듈(801)이 "/response/version/system/sales1/customer1/device1"을 지정한다.
처리 결과를 테넌트부(720)에 통지하기 위한 메시지의 내용은, 갱신 버전, 갱신 일시 및 처리 결과 코드를 포함한다. 갱신 버전은 갱신된 펌웨어의 버전이며, 갱신 일시는 펌웨어를 갱신한 일시다. 처리 결과 코드는, 처리 결과를 나타내는 상수이며, 1 및 2가 각각 성공과 실패를 나타내도록 정의한다. 결과로서 반환되는 정보는 이 예에 한정되는 것은 아니고, 펌웨어 갱신 모듈(801)은 처리 결과의 상세정보가 격납된 서버의 URL 정보 등을 테넌트(720)에 통지하도록 구성하여도 된다.
MQTT 통신 모듈(800)은 퍼블리시 API가 호출되면, 스텝 S7.3에서 MQTT 서버 모듈(600)에 대해 퍼블리시 요구를 송신한다. MQTT 서버 모듈(600)은 퍼블리시 요구를 수신하면, 스텝 S7.4 및 S7.4'에서 토픽을 서브스크라이브하고 있는 서브스크라이버에 대해 메시지를 송신한다. 이 예에서는 노드 1000 및 1010에 해당하는 테넌트부(720)가 토픽을 서브스크라이브하고 있는 서브스크라이버와 일치하기 때문에, MQTT 서버 모듈(600)은 노드 1000 및 1010에 해당하는 테넌트부(720) 각각의 MQTT 통신 모듈(721)에 메시지를 송신한다. 이것은, 각 테넌트부(720)가 브로커(200)에 설정한 응답 수신용 토픽(1004)에 있어서 이 테넌트 자신을 뒤따르는 토픽 패스에 와일드 카드가 지정되기 때문에 조건에 일치하여, 메시지가 송신된다는 것을 의미한다.
각각의 테넌트부(720)의 MQTT 통신 모듈(721)은 메시지를 수신하면, 스텝 S7.5 및 S7.5'에서 테넌트 처리 실행 모듈(722)에 메시지의 내용을 통지한다. 테넌트 처리 실행 모듈(722)은, 메시지 통지를 받으면 스텝 S7.6 및 S7.6'에서 디바이스 정보 확인 페이지의 정보를 갱신한다. 도 10b는 디바이스 정보 확인 화면(1200)의 일례다. 디바이스 정보 리스트 표시 영역(1201)은 이 테넌트의 관리하에 있는 화상 형성장치(500)의 리스트를 표시한다. 리스트의 내용으로서는 디바이스 명칭, 버전 및 펌웨어 갱신 일시다. 각회사의 담당자는 이 디바이스 정보 확인 화면(1200)을 확인함으로써 언제 펌웨어가 갱신되고 어떤 종류의 펌웨어로 펌웨어가 갱신되었는지를 파악할 수 있다. 본 실시예에서는, 테넌트 처리 실행 모듈(722)은, 결과를 웹 브라우저(401)에서 표시가능한 웹 페이지에 표시할 뿐이지만, e-메일을 사용하여 담담자에게 통지를 행하는 것 등의 처리를 행해도 된다. 이렇게, 테넌트부(720)가 갱신 요구와는 다른 토픽을 사용해서 처리 결과에 관한 메시지를 수신하도록 구성되어, 각 계층에 있어서 관련되는 화상 형성장치(500)의 처리 결과만을 각 계층에 있는 테넌트부(720)가 동시에 수신할 수 있게 된다.
상기한 것 같이, 펌웨어 갱신 시스템은 판매 회사, 딜러 및 고객기업의 관계를 토픽 패스의 계층에 대응시켜서 관리하고 있다. 그리고, 펌웨어 갱신 시스템은, 이 테넌트 자신의 한 개 위의 계층에 대응하는 토픽에 서브스크라이브하고, 이 테넌트 자신의 계층에 대응하는 토픽에 정보를 퍼블리시함으로써, 이 테넌트 자신과의 관계자에만 테넌트가 효율적으로 정보전달을 행하는 것을 가능하게 한다. 또한, 펌웨어 갱신 시스템은, 루트 시스템부가 테넌트부(720) 대신에 메시지의 송신 처리를 행하도록 하는 구성으로 구성을 동적으로 전환할 수 있도록 구성됨으로써, 더욱 용이하게 승인 프로세서의 추가나 삭제를 가능하게 된다. 더구나, 펌웨어 갱신 시스템은 처리 요구용의 토픽과는 별도로 응답 통지용의 토픽을 정의함으로써, 승인 프로세스가 설정되어 있는지에 상관없이 테넌트가 처리 결과를 수신하는 것이 가능하게 된다.
기타 실시형태
실시예 1을 펌웨어 분배의 유스 케이스를 예로 들어 설명하였지만, 본 발명의 범위는 이 용도에 한정되는 것은 아니다. 본 발명은, 설정 분배와 어플리케이션 분배를 포함하여, 톱다운 방식으로 발행된 지시에 따라 정보를 전달하는 다양한 방법에 적용가능하다.
실시예 1은 엔터프라이즈 대상 디바이스를 대표하는 복합기를 예로 들어 설명하였지만, 본 발명은 홈 대상인 경우에도 디바이스에 적용가능하다. 본 발명의 적용은 프린터에 한정되는 것은 아니다. 본 발명은 모든 디바이스에 적용가능하다.
전술한 실시예에서는, 각회사의 관리자가 단말(400)을 사용해서 갱신 관리 서버(300)에서 테넌트부(720)를 작성했지만, 갱신 관리 서버(300)가 아닌 다른 서버에서 테넌트부(720)를 작성하도록 구성해도 된다. 그 경우에도, 도 4의 계층구조에서 테넌트 관리가 행해지고 있으면 브로커(200)와 테넌트부(720) 사이에서 메시지 송수신이 가능하다.
본 발명의 실시형태는, 본 발명의 전술한 실시형태(들)의 1개 이상의 기능을 수행하기 위해 기억매체('비일시적인 컴퓨터 판독가능한 기억매체'로서 더 상세히 언급해도 된다)에 기록된 컴퓨터 실행가능한 명령(예를 들어, 1개 이상의 프로그램)을 판독하여 실행하거나 및/또는 전술한 실시예(들)의 1개 이상의 기능을 수행하는 1개 이상의 회로(예를 들어, 주문형 반도체 회로(ASIC)를 포함하는 시스템 또는 장치의 컴퓨터나, 예를 들면, 전술한 실시형태(들)의 1개 이상의 기능을 수행하기 위해 기억매체로부터 컴퓨터 실행가능한 명령을 판독하여 실행함으로써, 시스템 또는 장치의 컴퓨터에 의해 수행되는 방법에 의해 구현될 수도 있다. 컴퓨터는, 1개 이상의 중앙처리장치(CPU), 마이크로 처리장치(MPU) 또는 기타 회로를 구비하고, 별개의 컴퓨터들의 네트워크 또는 별개의 컴퓨터 프로세서들을 구비해도 된다. 컴퓨터 실행가능한 명령은, 예를 들어, 기억매체의 네트워크로부터 컴퓨터로 주어져도 된다. 기록매체는, 예를 들면, 1개 이상의 하드디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 분산 컴퓨팅 시스템의 스토리지, 광 디스크(콤팩트 디스크(CD), 디지털 다기능 디스크(DVD), 또는 블루레이 디스크(BD)TM 등), 플래시 메모리소자, 메모리 카드 등을 구비해도 된다.
본 발명은, 상기한 실시형태의 1개 이상의 기능을 실현하는 프로그램을, 네트워크 또는 기억매체를 개입하여 시스템 혹은 장치에 공급하고, 그 시스템 혹은 장치의 컴퓨터에 있어서 1개 이상의 프로세서가 프로그램을 읽어 실행하는 처리에서도 실행가능하다. 또한, 1개 이상의 기능을 실현하는 회로(예를 들어, ASIC)에 의해서도 실행가능하다.
예시적인 실시형태들을 참조하여 본 발명을 설명하였지만, 본 발명이 이러한 실시형태에 한정되지 않는다는 것은 자명하다. 이하의 청구범위의 보호범위는 가장 넓게 해석되어 모든 변형, 동등물 구조 및 기능을 포괄하여야 한다.

Claims (10)

  1. 테넌트의 작성 지시에 따른 상기 테넌트의 작성에 따라, 상기 테넌트와 다른 테넌트 사이의 계층 관계를 반영한 메시지 속성을 생성하는 생성 수단과,
    생성된 상기 메시지 속성을 설정하는 설정 수단과,
    특정한 테넌트로부터 메시지를 수신하는 수신 수단과,
    상기 설정 수단에 의해 설정된 자 테넌트의 메시지 속성을 기초로, 상기 특정한 테넌트의 바로 아래에 배치된 상기 자 테넌트에 대해 수신된 상기 메시지를 송신하는 송신 수단을 구비한 정보 처리 시스템.
  2. 제 1항에 있어서,
    상기 수신 수단은, 상기 메시지를 수신한 상기 자 테넌트로부터 더 송신된 메시지를 처리하는 정보 처리장치로부터 처리 결과를 나타내는 메시지를 수신하고,
    상기 송신 수단은, 상기 설정 수단에 의해 설정되어 있는 상기 자 테넌트의 메시지 속성을 기초로, 상기 자 테넌트에 대해 상기 처리 결과를 나타내는 메시지를 송신하는 정보 처리 시스템.
  3. 제 1항 또는 제 2항에 있어서,
    상기 설정 수단은, 2개의 메시지 속성, 즉 메시지를 수신하기 위한 요구 수신용의 메시지 속성과, 처리 결과에 관한 메시지를 수신하기 위한 응답 수신용의 메시지 속성을 설정하고,
    상기 송신 수단은, 상기 자 테넌트의 요구 수신용의 메시지 속성을 기초로, 상기 특정한 테넌트의 바로 아래에 배치된 상기 자 테넌트에 대해 수신된 메시지를 송신하고, 상기 자 테넌트의 응답 수신용의 메시지 속성을 기초로, 상기 자 테넌트에 대해 상기 처리 결과를 나타내는 메시지를 송신하는 정보 처리 시스템.
  4. 제 3항에 있어서,
    상기 수신 수단이 상기 처리 결과를 나타내는 메시지를 수신하는 경우, 상기 송신 수단은, 상기 설정 수단에 의해 설정된 상기 응답 수신용의 메시지 속성을 기초로, 상기 자 테넌트와, 상기 자 테넌트 위에 배치되고 상기 특정한 테넌트를 포함하는 복수의 테넌트에 대해, 상기 처리 결과를 나타내는 메시지를 송신하는 정보 처리 시스템.
  5. 제 4항에 있어서,
    상기 송신 수단은, 상기 설정 수단에 의해 설정된 각각의 상기 응답 수신용의 메시지 속성인 메시지 속성 중에서, 패스에 지정된 와일드 카드를 포함하고 상기 처리 결과를 나타내는 메시지를 수신하기 위해 사용되는 복수의 메시지 속성을 기초로, 상기 자 테넌트와, 상기 자 테넌트 위에 배치되고 상기 특정한 테넌트를 포함하는 복수의 테넌트에 대해 상기 처리 결과를 나타내는 메시지를 송신하는 정보 처리 시스템.
  6. 제 1항 또는 제 2항에 있어서,
    상기 설정 수단에 의해 설정된 메시지 속성은 테넌트들 사이의 계층 관계를 패스로 표현하고, 메시지 속성이 나타내는 메시지의 송신처가 패스에 지정되는 정보 처리 시스템.
  7. 제 1항 또는 제 2항에 있어서,
    상기 설정 수단은, 상기 작성 지시에 따라 작성된 테넌트 대신에 루트 시스템에 의한 메시지의 처리가 지정된 경우, 상기 루트 시스템으로부터 메시지 속성을 수신해서 수신된 메시지 속성을 설정하고,
    상기 송신 수단은, 상기 설정 수단에 의해 설정된 상기 자 테넌트의 메시지 속성을 기초로, 상기 자 테넌트 대신에 메시지 속성의 설정을 요구한 상기 루트 시스템에 대해 수신된 메시지를 송신하는 정보 처리 시스템.
  8. 제 7항에 있어서,
    상기 설정 수단은, 상기 작성 지시에 따라 작성된 테넌트 대신에 상기 루트 시스템에 의한 메시지의 처리가 메시지 속성이 설정된 후에 지정된 경우, 테넌트에 의해 이미 설정된 메시지 속성을 삭제하고, 상기 루트 시스템으로부터 메시지 속성을 수신해서 수신된 메시지 속성을 설정하는 정보 처리 시스템.
  9. 테넌트의 작성 지시에 따른 상기 테넌트의 작성에 따라, 상기 테넌트와 다른 테넌트 사이의 계층 관계를 반영한 메시지 속성을 생성하는 단계와,
    생성된 상기 메시지 속성을 설정하는 단계와,
    특정한 테넌트로부터 메시지를 수신하는 단계와,
    상기 설정 단계에서 설정된 자 테넌트의 메시지 속성을 기초로, 상기 특정한 테넌트의 바로 아래에 배치된 상기 자 테넌트에 대해 수신된 상기 메시지를 송신하는 단계를 포함하는 정보 처리 시스템의 제어방법.
  10. 테넌트의 작성 지시에 따른 상기 테넌트의 작성에 따라, 상기 테넌트와 다른 테넌트 사이의 계층 관계를 반영한 메시지 속성을 생성하는 단계와,
    생성된 상기 메시지 속성을 설정하는 단계와,
    특정한 테넌트로부터 메시지를 수신하는 단계와,
    상기 설정 단계에서 설정된 자 테넌트의 메시지 속성을 기초로, 상기 특정한 테넌트의 바로 아래에 배치된 상기 자 테넌트에 대해 수신된 상기 메시지를 송신하는 단계를 포함하는 정보 처리 시스템에 의해 실행되는, 매체 위에 기억된 프로그램.
KR1020180006826A 2017-01-27 2018-01-19 정보 처리 시스템, 정보 처리 시스템의 제어방법 및 프로그램 KR102235992B1 (ko)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
KR20180088583A true KR20180088583A (ko) 2018-08-06
KR102235992B1 KR102235992B1 (ko) 2021-04-05

Family

ID=61226363

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180006826A KR102235992B1 (ko) 2017-01-27 2018-01-19 정보 처리 시스템, 정보 처리 시스템의 제어방법 및 프로그램

Country Status (5)

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

Families Citing this family (6)

* 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 株式会社リコー 情報処理システム、情報処理装置、画像形成装置、情報処理方法およびプログラム
CN113039745B (zh) * 2018-10-10 2023-04-14 阿里巴巴集团控股有限公司 文件系统服务器、应用于其中的方法、计算机可读介质
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
CN110839061B (zh) * 2019-10-16 2020-11-06 北京达佳互联信息技术有限公司 数据分发方法、装置及存储介质
JP2022083766A (ja) 2020-11-25 2022-06-06 株式会社リコー 装置管理システム、管理対象装置、管理対象実行方法及びプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050021843A1 (en) * 2003-05-16 2005-01-27 International Business Machines Corporation Publish/subscribe messaging system
KR20050091999A (ko) * 2004-03-12 2005-09-16 마이크로소프트 코포레이션 소프트웨어를 배포하는 업데이트 배포 시스템 아키텍처 및방법
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
US20140146359A1 (en) * 2012-11-28 2014-05-29 Konica Minolta, Inc. Image forming apparatus and recording medium
US9112891B2 (en) * 2007-02-02 2015-08-18 Sharp Laboratories Of America, Inc. Remote firmware management for electronic devices

Family Cites Families (9)

* 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 ツリー構造ネットワークの制御方式
JP3183044B2 (ja) * 1994-06-15 2001-07-03 三菱電機株式会社 ネットワ−ク管理システム
JP2002366469A (ja) * 2001-06-06 2002-12-20 Hitachi Ltd ネットワーク装置、ネットワークシステム及びネットワーク装置のソフトウェア更新方法
US8341261B2 (en) * 2005-04-14 2012-12-25 Panasonic Corporation Server device, information report method, and information report system
JP2008141361A (ja) * 2006-11-30 2008-06-19 Hitachi Ltd データ配信方法、データ配信システム及びノード装置
US8140630B2 (en) * 2008-03-05 2012-03-20 International Business Machines Corporation Publish/subscribe message broker for message sequences
JP5921060B2 (ja) * 2009-08-21 2016-05-24 三星電子株式会社Samsung Electronics Co.,Ltd. アプリケーションダウンロードサービス方法、アプリケーション提供サービス方法、及びこれを適用したユーザ端末機
JP2011150618A (ja) * 2010-01-25 2011-08-04 Cellius Inc サーバシステム、クライアント装置、プログラム、及び情報記憶媒体
CN106797391B (zh) * 2014-07-21 2020-05-19 康维达无线有限责任公司 使用mqtt协议的服务层交互工作

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050021843A1 (en) * 2003-05-16 2005-01-27 International Business Machines Corporation Publish/subscribe messaging system
KR20050091999A (ko) * 2004-03-12 2005-09-16 마이크로소프트 코포레이션 소프트웨어를 배포하는 업데이트 배포 시스템 아키텍처 및방법
US9112891B2 (en) * 2007-02-02 2015-08-18 Sharp Laboratories Of America, Inc. Remote firmware management for electronic devices
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
US20140146359A1 (en) * 2012-11-28 2014-05-29 Konica Minolta, Inc. Image forming apparatus and recording medium

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102235992B1 (ko) 정보 처리 시스템, 정보 처리 시스템의 제어방법 및 프로그램
US9430637B2 (en) Service providing system and information gathering method
JP4876170B2 (ja) グリッド・システムにおいてセキュリティ強制を追跡するシステムおよび方法
JP5429912B2 (ja) 認証システム、認証サーバ、サービス提供サーバ、認証方法、及びプログラム
US20080215675A1 (en) Method and system for secured syndication of applications and applications' data
US9164710B2 (en) Service providing system and service providing method
CN108427703A (zh) 提供对存储在数据存储系统的数据文件访问的系统和方法
US9696948B2 (en) Printing system, printing service apparatus, image forming apparatus, control method, and storage medium
US20180240130A1 (en) System, information management method, and information processing apparatus
US20140123240A1 (en) System and service providing apparatus
US20060224623A1 (en) Computer status monitoring and support
CN105659558A (zh) 具有单一、灵活、可插拔OAuth服务器的多个资源服务器和OAuth保护的RESTful OAuth同意管理服务,以及对OAuth服务的移动应用单点登录
CN102947797A (zh) 使用横向扩展目录特征的在线服务访问控制
JP2014146320A (ja) マルチポイント公開シンジケートシステム
US20110099380A1 (en) System and Method of Controlling Access to Information Content Transmitted Over Communication Network
US11063922B2 (en) Virtual content repository
US8705062B2 (en) Quotas in distributed scan management systems
CN111680328A (zh) 一种数据处理方法、装置、服务器及计算机可读存储介质
US20050289642A1 (en) Using web services for online permissions
JP6237868B2 (ja) クラウドサービス提供システム及びクラウドサービス提供方法
US8352553B2 (en) Electronic mail connector
Gulabani Practical Amazon EC2, SQS, Kinesis, and S3
US20230208986A1 (en) Mediation server and non-transitory computer-readable medium storing computer-readable instructions for mediation server
JP2024049664A (ja) 情報処理装置及び情報処理方法
WO2023230035A1 (en) Techniques for providing security-related information

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant