CN108366101A - 信息处理系统、信息处理系统的控制方法和存储介质 - Google Patents
信息处理系统、信息处理系统的控制方法和存储介质 Download PDFInfo
- Publication number
- CN108366101A CN108366101A CN201810076847.6A CN201810076847A CN108366101A CN 108366101 A CN108366101 A CN 108366101A CN 201810076847 A CN201810076847 A CN 201810076847A CN 108366101 A CN108366101 A CN 108366101A
- Authority
- CN
- China
- Prior art keywords
- tenant
- message
- sub
- sent
- attributes
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1229—Printer resources management or printer maintenance, e.g. device status, power levels
- G06F3/123—Software or firmware update, e.g. device firmware management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1204—Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1205—Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
- G06F3/1287—Remote printer device, e.g. being remote from client or server via internet
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
- G06F3/1288—Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00127—Connection 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/00204—Connection 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/00244—Connection 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种信息处理系统、信息处理系统的控制方法和存储介质。该信息处理系统基于由设置单元设置的子租户的消息属性将所接收到的消息发送给在特定租户的紧挨着的下层设置的子租户。
Description
技术领域
本发明涉及一种用于对在连接到网络的两个装置之间发送/接收的数据进行中继的信息处理系统、信息处理系统的控制方法和存储介质。
背景技术
通过日本特开2005-259114号公报,已知一种用于将用于管理更新软件的分发的更新服务器层级化到公司中的计算机的技术。日本特开2005-259114号公报中讨论的技术以这样的方式构造,即提供根分发服务器和至少一个子分发服务器,并且各个根分发服务器可以用作子分发服务器的父服务器。因此,该技术使得可以通过确定各个层级(hierarchical)的层的分发服务器的分发策略来控制各个层级的层的软件分发。
发明内容
根据本发明的一个方面,一种信息处理系统包括:生成单元,其被构造为根据租户的生成来生成反映租户与其他租户之间的层级关系的消息属性,所述租户是按照生成租户的指令而生成的;设置单元,其被构造为设置所生成的消息属性;接收单元,其被构造为从特定租户接收消息;以及发送单元,其被构造为基于由设置单元设置的子租户的消息属性将所接收到的消息发送给在所述特定租户的紧挨着的下层设置的子租户。
根据下面参照附图对示例性实施例的描述,本发明的其他特征将变得清楚。
附图说明
图1例示了系统构造。
图2A和图2B是例示系统组件的硬件构造的框图。
图3例示了软件模块。
图4例示了在更新系统上管理的各个租户(tenant)/设备信息的示例。
图5A和图5B例示了指示当添加租户单元时执行的处理过程的序列。
图6例示了指示当添加图像形成装置时执行的处理过程的序列。
图7A和图7B例示了指示当批准过程的需要或不需要改变时的处理过程的序列。
图8例示了当向图像形成装置通知新版本采用请求时的序列。
图9例示了当向各个租户单元通知固件更新的结果时的序列。
图10A和图10B例示了关于固件更新的操作画面的示例。
具体实施方式
在存在想要确定要分发的数据是否可以被分发的多个管理员的情况下,日本特开2005-259114号公报中所讨论的技术导致各个管理员对更新服务器的构建,从而提高了成本增加的可能性和/或难以构建分发系统的可能性。本发明旨在使在以自顶向下方式发出指令的系统中的中间层装置上的消息处理过程方便。
在以下描述中,将描述第一示例性实施例。在第一示例性实施例中,将通过示例的方式基于具有打印功能的多功能外围设备(MFP)来描述根据本发明的解决方案。近年来,包括MFP在内的针对企业的设备以这样的方式被处理,使得即使在已经被投放市场之后,因修正错误、增加功能等,其固件也不断更新。对于这样的针对企业的设备,销售公司或经销商中的负责支持的人员和负责设备管理的人员(例如公司中的设备管理员)经常介入设备制造商(固件的提供者)与用户之间的关系中。因此,当更新设备的固件时,期望在其间存在的各个负责人员批准之后更新固件,而不遵循仅由设备用户个人作出的确定。
例如,假设安全相关固件的更新版本从设备制造商发行,在这种情况下可能出现以下情况。销售公司不希望在支持系统到位之前使用更新,因此不希望尽快向客户发行更新的版本。此外,客户公司的管理员在他/她可以确认与公司内部系统的协作不会出现问题之前,不希望更新固件。这会导致在销售公司和客户公司批准之后实际采用从设备制造商为设备发行的固件。然而,如上所述,分发系统的构建可能是困难的,因此实现批准过程需要大量的时间和劳动。
接下来,将参照附图描述适合于解决上述问题的示例性实施例。根据本示例性实施例的图像形成装置的固件更新系统在如图1所例示的构造的网络中实现。网络包括广域网100(WAN 100)。网络还包括将分立组件彼此连接的局域网101(LAN 101)。
代理200是用于使用称为消息队列遥测传输(MQTT)的通信协议来实施数据通信的服务器。MQTT(MQ遥测传输或消息队列遥测传输)是一种基于发布-订阅的消息传递协议的ISO(国际标准化组织)标准(ISO/IEC PRF 20922)。它在TCP/IP协议的基础上工作。发布/订阅模型是经由消息中介器(代理200)将消息从消息发送器(在下文中被称为发布者)分发给消息接收器(在下文中被称为订阅者)的模型。订阅者将订阅者想要接收到的消息属性(以下称为“主题”)预先设置给代理200(以下称为“订阅”)。在由代理设置主题之后,订阅者需要继续维持经由互联网与代理200建立的网络会话。如果订阅者想要实时处理消息,则他不一定需要不断地继续维持网络会话,而需要经由网络高度频繁地连接到代理200。当发布者指定主题并将该消息发送给代理200时,代理200将该消息分发给订阅该主题的订阅者。
可以使用分隔字符(“/”)以层级结构的形式表达主题。此外,在订阅时向主题添加特殊字符(通配符)使得订阅者可以一次订阅多个主题。例如,预先订阅主题“/foo/#”使得订阅者可以接收发布到诸如“/foo/bar”和“foo/bar/baz”之类的主题的消息。此外,当想要停止接收关于订阅者订阅的主题的消息时,订阅者也可以取消订阅(以下称为退订(unsubscribe))。订阅者需要断开经由因特网与代理200建立的网络会话以取消订阅。在断开网络会话之后,订阅者不能再接收发布给该主题的消息。如果没有订阅者订阅该话题,则代理200甚至可以删除该话题并取消该设置。
代理200还具有保有或保持针对各个主题最后发布的消息的功能,并且当添加新的订阅者时,将最后发布的消息发送到添加的订阅者(以下称为保留)。该功能使得订阅者可以从订阅开始时获取最新信息。在第一示例性实施例中,固件更新系统是在如下假设下构建:通信是基于MQTT实施的,但是可以采用使用代理200那样的中介装置的任何数据通信协议,并且实现处于两个点的装置(即,发送数据的装置和最终接收数据的装置)之间的数据发送/接收。
更新管理服务器300是用于控制关于固件更新的消息的服务器。更新管理服务器300包括各个租户的租户单元720,例如,销售并支持图像形成装置500的销售公司/经销商,以及引入图像形成装置500的客户公司。租户单元720具有响应于来自各销售公司和客户公司的管理员的批准指令处理关于固件更新的消息的功能,并且具有响应于来自终端400等的指令而在更新管理服务器300中动态实现的功能。关于不需要批准过程的销售公司和客户公司,消息不由对应的租户单元720处理,而是由更新管理服务器300中的其他软件功能处理。在第一示例性实施例中,固件更新系统以这样的方式被构造:使得租户单元720被设置在更新管理服务器300中并处理来自销售公司或客户公司的批准过程,但是也可以以这样的方式构造:使得不同的服务器被设立并进行应该由租户单元720进行的处理。如果这个不同的服务器是现有的服务器,则该构造使得解决在服务器构建的成本方面的问题,并且还通过使用代理200使批准过程方便。
信息终端400a和400b是以个人计算机(PC)或智能电话为代表的终端,并且各个都包括内置的网页浏览器401。设备制造商、销售公司等中负责固件更新的人员通过使用网页浏览器401向更新管理服务器300发出指令。信息终端400a是由设备制造商或销售公司中的负责人员所使用的终端的连接的一个示例,并且,信息终端400b是由使用图像形成装置500的客户公司的负责人员所使用的终端的连接的一个示例。该示例仅为一个示例,并且,信息终端400a和400b可以位于任何地方,只要它们在经由网络可通信的状态下连接即可。因此,在下面的描述中,信息终端400a和400b将被描述为终端400,而不区分彼此。此外,在第一示例性实施例中,固件更新系统以这样的方式被构造:使得该指令经由网络浏览器401被发出到更新管理服务器300,但是,固件更新系统也可以被构造为使用专用应用。
图像形成装置500例如是MFP。图像形成装置500具有在从代理200接收到更新固件的指令时,基于接收到的信息自动更新固件的功能。
代理200和更新管理服务器300被例示为分别使用图1中的一个信息处理装置来构建,但是固件更新系统也可以这样的方式来构造:代理200和更新管理服务器300各自利用多个信息处理装置来构建。当在本公开中使用术语“信息处理系统”时,该术语应当指的是使用一个信息处理装置或多个信息处理装置构建的系统。
图2A和图2B例示代理200、更新管理服务器300、终端400和图像形成装置500的硬件构造的一个示例。假设图2A中例示的硬件框图对应于诸如PC等的常用的信息处理装置的硬件框图,并且,常用的信息处理装置的硬件构造可以适用于根据本示例性实施例的服务器和终端中的各个。
在以下描述中,将以示例的方式假设该构造指示代理200的硬件构造来描述图2A中所例示的硬件构造。中央处理单元(CPU)201执行诸如从诸如只读存储器(ROM)203或硬盘(HD)等的外部存储设备211加载到随机存取存储器(RAM)202的操作系统(OS)和应用程序,由此控制连接到系统总线204的各个块。本公开中的OS是在计算机上运行的操作系统的缩写,并且操作系统在下文中将被称为OS。RAM 202用作CPU 201的主存储器、工作区域等。
键盘控制器(KBC)205控制来自键盘(KB)209或未例示的指向设备的键输入。阴极射线管(CRT)控制器(CRTC)206控制CRT显示器210上的显示。盘控制器(DKC)207控制对存储各种数据的诸如HD等的外部存储设备211中的数据的访问。网络控制器(NC)208进行用于控制与经由WAN 100、LAN 101或公共线路连接的其他装置的通信的处理。在下面将提供的描述中,除非特别指出,假定CPU 201是实际上在代理200中参与执行的硬件。然后,通过由CPU201执行存储在外部存储设备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包括显示器、触摸面板和硬件按键,并且是用于显示各种设置画面并接收来自用户的指令的设备。CPU 201还用作实际上在图像形成装置500中参与执行的硬件。图像形成装置500的软件构造和下面将描述的序列图中所例示的图像形成装置500的处理通过由CPU 201执行存储在外部存储设备211中的固件、应用程序等来实现。
图3例示根据第一示例性实施例的代理200、更新管理服务器300和图像形成装置500的各软件构造。它们中的各个通过执行包括在这些软件构造中的各种模块来提供服务和功能。包括在由根据本示例性实施例的固件更新系统中的各个组件所保持的软件构造中的各种模块,通过由各个装置的CPU 201执行加载到RAM 202中的软件程序来实现。
代理200包括MQTT服务器模块600。MQTT服务器模块600是接收从发布者发布的消息并将接收到的消息分发给订阅者的模块。在第一示例性实施例中,更新管理单元700、租户单元720和图像形成装置500中的各个用作发布者和订阅者。此外,在第一示例性实施例中,MQTT服务器模块600还根据来自更新管理服务器300的请求发出订阅和发布消息所需的令牌。这里发出的令牌是用于验证用户是否被授权的令牌。在订阅或发布消息时验证令牌可防止消息被第三方未经授权地订阅或发布。
更新管理服务器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具有从终端400接收由管理员发送的固件更新的通知,并且经由MQTT通信模块701向代理200发布消息以向租户单元720通知更新消息的功能。此外,租户管理模块702还具有这样的功能:如果不需要各个租户单元720的批准,则代替各个租户单元720以替代租户单元720进行消息处理。是否需要批准可以动态切换。认证模块703具有对作为处理的请求源的用户进行认证的功能。在第一示例性实施例中,假设认证模块703通过接收用户标识(ID)和密码来对用户进行认证,但不限于此,并且可以使用诸如生物信息等的各种认证信息来对用户进行认证。
配设租户单元720以响应来自销售公司或客户公司的批准指令来进行消息处理,并且租户单元720包括MQTT通信模块721和租户处理执行模块722。MQTT通信模块721通过将消息发布给代理200来发送消息给其他租户或图像形成装置500。此外,MQTT通信模块721通过订阅代理200从其他租户或图像形成装置500接收消息。此外,租户处理执行模块722向销售公司或客户公司的负责人员提供用于批准固件更新的画面,并且如果在批准画面上发出批准指令,则还进行批准过程。此外,租户处理执行模块722借助代理200的中介,经由MQTT通信模块721实施各种消息通信。
图像形成装置500包括MQTT通信模块800和固件更新模块801。MQTT通信模块800通过将消息发布给代理200来发送消息给其他租户或其他图像形成装置500。此外,MQTT通信模块800通过订阅代理200从其他租户或其他图像形成装置500接收消息。固件更新模块801具有经由MQTT通信模块800接收固件更新消息并更新固件的功能。此外,固件更新模块801还具有在更新固件之后发送更新结果的功能。这些组件充当实现本示例性实施例所需的软件功能。
接下来,将参照图4来描述由租户管理模块702管理的各个租户单元720的信息(在下文中称为租户信息)。租户信息在树结构下被管理,并且是在反映销售公司与客户公司之间的实际层级关系的结构下被管理。在第一示例性实施例中,以示例的方式假设租户处于这样的层级关系:在设备制造商的下层有两个销售公司,在第一销售公司的下层有一个客户公司,在第二销售公司的下层有一个经销商,并且,在经销商的下层还有一个客户公司。图4将这种层级关系表示为树结构。例如,设备制造商和销售公司之间的关系是,设备制造商是销售公司的父租户,这些销售公司是设备制造商的子租户。类似地,第二销售公司对应于经销商的父租户,并且经销商对应于销售公司的子租户。
根节点900是用于管理租户信息的最根部的源信息,并且对应于设备制造商的层级的层。根节点900包括ID 901、请求发送主题902、子节点数903和节点904中的各个的信息。ID 901是用于识别节点的标识符。请求发送主题902指示更新管理单元700在从设备制造商的终端400接收到更新版本的请求时发布消息时指定的主题。子节点数903表示位于根节点900的紧挨着的下层(immediately below)的租户的数量。由于图4例示了如上所述有两个销售公司的示例,所以在根节点900下层有分别与销售公司对应的两个租户单元720。节点904保持指针的阵列,该指针指向在存储位于根节点900下层的各个租户的租户信息的节点。
节点1000、1010、1020、1030和1040中存储租户信息。ID 1001是用于识别存储有租户信息的节点的标识符。请求接收主题1002是用于从代理200接收请求固件更新的消息的主题,并且租户单元720订阅该主题。该主题被表示为指定位于该租户本身的上一层(即,该租户本身的紧挨着的上层(immediately above))的租户的主题路径。这意味着,子租户的租户信息包含用于订阅来自位于该租户本身紧挨着的上层的租户的消息的信息。
请求发送主题1003指示在更新固件请求被批准之后发布固件更新请求消息时指定的主题。此主题被表示为与此租户本身相对应的主题路径。采用将消息发布到主题路径并订阅主题路径的这种构造,使得租户可以通过将消息发布到与该租户本身相对应的路径,在意图将位于该租户本身的下层的租户单元720作为发送目的地的同时分发消息。这种分发使得租户可以将消息发送给该租户本身的紧挨着的下层的租户单元720。
响应接收主题1004是用于对接收到更新固件的请求的图像形成装置500的处理结果进行接收的主题。以这样的方式准备该主题:关于与此租户本身相对应的主题路径之后的路径,指定通配符。因此,该主题使得租户可以接收位于该租户本身的下层的所有图像形成装置500的处理结果。
批准需要/不需要信息1005是指示与该租户单元720对应的公司对于更新固件的请求是否需要批准过程的信息。如果该信息被设置为真,则租户单元720进行控制以独自接收固件更新通知消息,接收来自与租户单元720对应的公司的负责人员的许可固件更新的指令,并且将固件更新通知发送到下一层级的层。
另一方面,如果批准需要/不需要信息1005被设置为假,则该设置使租户单元720不进行与固件更新请求有关的处理并使更新管理服务器300的更新管理单元700替代租户单元720进行处理。子节点数1006指示位于该租户的紧挨着的下层的租户的数量。如上所述,假设在两个销售公司的下层分别有客户公司和经销商来构建本结构。因此,在图4所例示的示例中,以这样的方式构成树结构:在“/system/sales1”的下层有“/system/sales1/customer1”,在“/system/sales2”的下层有“/system/sales2/dealer1”,并且以这样的形式准备树结构:在主题路径中反映出租户间的层级关系。
节点1007中存储指针的阵列,该指针指向存储位于该租户的紧挨着的下层的租户的租户信息的节点。在第一示例性实施例中,图4例示了在销售公司的下层有客户公司的结构的示例,以及在销售公司的下层有经销商并在该经销商的下层还有客户公司的结构的示例。然而,租户的结构并不限于例示的租户,而且,可以进一步被构成为比例示的层级结构更深层次的层级结构。
图5A和图5B例示了更新管理服务器300添加租户单元720时的序列。图5A例示了在与该租户单元720相对应的公司进行批准过程的情况下的序列,并且指示当位于该公司上层的公司中的管理员在终端400上发出将租户单元720添加到更新管理服务器300的指令时的流程。例如,当设备制造商添加与销售公司对应的租户单元720时或者当销售公司添加与客户公司对应的租户单元720时,应用该序列。在以下描述中,将参照设备制造商添加与销售公司(/system/sales1)相对应的租户单元720的示例来描述该序列。
首先,当设备制造商的负责人员在终端400上的网页浏览器401中输入用户ID和密码时,在步骤S1.1,网页浏览器401将输入的信息发送到认证模块703。在第一示例性实施例中,用户ID和密码被用作用于认证的信息,但是认证模块703可以被构造为使用诸如生物信息等的其他信息。一旦从终端400接收到用户ID和密码,在步骤S1.2中,认证模块703就通过检查所接收的用户ID和密码信息来进行认证处理。
如果认证成功,则在步骤S1.3,终端400向租户管理模块702发送租户添加请求。租户添加请求中包含租户的父的ID、请求要添加的租户的ID、以及批准需要/不需要信息。由于本示例指示假设设备制造商添加销售公司(“/system/sales1”)的序列,所以终端400发送“/system”作为父的ID和“/system/sales1”作为请求要添加的租户的ID。此外,由于图5A例示了在销售公司进行批准过程的情况下的序列,所以终端400发送“真”作为批准需要/不需要信息。在步骤S1.4中,租户管理模块702在从终端400接收到生成租户的指令时生成租户单元720。
如果生成租户单元720成功,则在步骤S1.5中,租户管理模块702更新现有租户信息。更具体地,租户管理模块702基于在步骤S1.4中接收到的信息来生成保持图4例示的租户信息的节点1000,并将生成的节点1000添加到父节点的下层。在完成租户信息的更新之后,在步骤S1.6中,租户管理模块702向在步骤S1.4中生成的租户单元720的租户处理执行模块722发出初始化请求。此时,租户管理模块702还将在步骤S1.5中生成的租户信息和作为批准需要/不需要信息的“真”与初始化请求一起通知给租户处理执行模块722。
在接收到租户初始化请求后,在步骤S1.7中,租户处理执行模块722向MQTT服务器模块600发出令牌获取请求。当接收到令牌获取请求时,MQTT服务器模块600生成令牌。然后,在步骤S1.8中,MQTT服务器模块600将令牌发送给租户处理执行模块722。
一旦接收到令牌,在步骤S1.9中,由于接收到的需要/不需要信息指示“真”,所以租户处理执行模块722调用MQTT通信模块721的订阅请求应用编程接口(API)。此时,租户处理执行模块722指定在步骤S1.6中接收到的租户信息中包含的请求接收主题1002。当调用订阅请求API时,在步骤S1.10中,MQTT通信模块721将订阅请求发送到MQTT服务器模块600。此时,MQTT通信模块721将订阅请求与在步骤S1.8中接收到的令牌一起发送。一旦接收到订阅请求和令牌,在步骤S1.11中,MQTT服务器模块600就验证接收到的令牌,并且如果验证成功则设置请求接收主题1002。
在完成用于请求接收的订阅处理后,接下来,在步骤S1.12中,租户处理执行模块722再次调用MQTT通信模块721的订阅请求API以接收图像形成装置500的处理结果。此时,租户处理执行模块722指定在步骤S1.6中接收到的租户信息中包含的响应接收主题1004。当调用订阅请求API时,在步骤S1.13中,MQTT通信模块721将订阅请求发送到MQTT服务器模块600。此时,MQTT通信模块721将订阅请求与在步骤S1.8中接收到的令牌一起发送。一旦接收到订阅请求和令牌,在步骤S1.14中,MQTT服务器模块600就验证接收到的令牌,并且如果验证成功则设置响应接收主题1004。在第一示例性实施例中,以这样的方式来构造固件更新系统:租户单元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将“假”指定为包含在租户添加请求中的批准需要/不需要信息。除了被指定为批准需要/不需要信息的“假”之外,从步骤S2.4到S2.8的处理类似于图5A中例示的步骤S1.4到S1.8。
在步骤S2.8中,租户处理执行模块722接收令牌,但是由于接收到的批准需要/不需要信息指示“假”,所以不订阅请求接收。然后,在步骤S2.9中,租户处理执行模块722调用MQTT通信模块721的订阅请求API。此时,租户处理执行模块722指定在步骤S2.6中接收到的租户信息中包含的响应接收主题1004。当订阅请求API被调用时,在步骤S2.10中,MQTT通信模块721向MQTT服务器模块600发送订阅请求。此时,MQTT通信模块721还发送在步骤S2.8中接收到的令牌。在接收到订阅请求和令牌之后,在步骤S2.11中,MQTT服务器模块600验证接收到的令牌,并且如果验证成功则设置响应接收主题1004。在不希望处理结果被租户单元720接收的情况下,可以省略步骤S2.7、S2.8、S2.9、S2.10和S2.11中的各个。
在完成租户单元720的初始化之后,因为接收到的批准需要/不需要信息指示“假”,所以租户管理模块702通过进行以下处理来代替租户单元720的租户处理执行模块722订阅请求接收。在步骤S2.12中,租户管理模块702向MQTT服务器模块600发出令牌获取请求。一旦接收到令牌获取请求,在步骤S2.13中,MQTT服务器模块600就生成令牌,并将所生成的令牌发送到租户管理模块702。一旦接收到令牌,在步骤S2.14中,租户管理模块702就调用MQTT通信模块701的订阅请求API。此时,租户管理模块702通过参照在步骤S2.5中生成的租户信息指定请求接收主题1002的信息。当调用订阅请求API时,在步骤S2.15中,MQTT通信模块701向MQTT服务器模块600发送订阅请求。此时,MQTT通信模块701将订阅请求与在步骤S2.13中接收到的令牌一起发送。一旦接收到订阅请求和令牌,在步骤S2.16中,MQTT服务器模块600就验证接收到的令牌,并且如果验证成功则设置请求接收主题1002。
以这种方式,生成了租户单元720的更新管理单元700(即,与图4例示的根节点900相对应的装置)也可以代替所生成的租户单元720进行订阅。将对应于根节点900的装置称为根系统,并且上述处理使得根系统可以基于与所生成的租户相对应的公司的批准来代替租户执行批准过程。在这种情况下的批准过程可以被布置为自动批准。
在订阅处理完成之后,由于MQTT服务器模块600的保留功能,关于订阅的主题的当时最新消息可以被发送到MQTT通信模块721或701。当在步骤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可以订阅来自最低层级的层的租户的消息。一旦接收到固件自动更新请求,在步骤S3.2中,图像形成装置500的固件更新模块801就将认证信息发送到认证模块703。假设固件更新模块801此时发送在图像形成装置500中预先设置的ID和密码作为认证信息。一旦接收到认证信息,在步骤S3.3中,认证模块703进行认证处理。为了简化描述,在第一示例性实施例中假设认证模块703使用ID和密码来实施简单认证,但是不用说,认证模块703可以使用除此之外的认证方法。
如果认证成功,则在步骤S3.4中,固件更新模块801向租户管理模块702发出订阅信息获取请求。假设订阅信息获取请求还包含步骤S3.1中接收到的客户ID的信息。一旦接收到订阅信息获取请求,在步骤S3.5中,租户管理模块702就指定图像形成装置500将要订阅的主题。更具体地,租户管理模块702确定图4例示的租户信息当中的与指定的客户ID相对应的租户信息节点中包含的请求发送主题1003的信息是图像形成装置500要订阅的主题。
在完成指定主题路径之后,在步骤S3.6中,租户管理模块702向MQTT服务器模块600发送令牌获取请求以使图像形成装置500进行订阅。一旦接收到令牌获取请求,在步骤S3.7中,MQTT服务器模块600生成令牌,并将生成的令牌发送给租户管理模块702。一旦接收到令牌,在步骤S3.8中,租户管理模块702向固件更新模块801发送图像形成装置500将要订阅的主题的信息和订阅所需的令牌。
一旦接收到主题信息和令牌,在步骤S3.9中,固件更新模块801调用MQTT通信模块800的订阅请求API。当调用订阅请求API时,在步骤S3.10中,MQTT通信模块800向MQTT服务器模块600发送订阅请求。此时,MQTT通信模块800指定在步骤S3.8中接收到的主题,并且将令牌与订阅请求一起发送。一旦接收到订阅请求和令牌,在步骤S3.11中,MQTT服务器模块600就验证接收到的令牌,并且如果验证成功则进行订阅处理。
在订阅处理完成之后,由于MQTT服务器模块600的保留功能,关于订阅的主题的当时最新消息可被发送到MQTT通信模块800。此时的处理类似于图8中例示的步骤S6.15及其后续步骤中的处理,因此这里将省略其描述。以这种方式根据在租户单元720处的批准需要/不需要信息来动态地切换哪个组件订阅,使得系统单元可以在不需要批准过程的情况下代替租户单元720执行处理,而无需向租户单元720通知不需要的消息。
图7A和图7B例示了在销售公司或客户公司的固件更新中切换批准过程的需要/不需要时的序列。图7A例示了在批准过程的需要/不需要从由根系统进行批准过程而不需要租户单元720进行的状态改变为由租户单元720进行批准过程的状态的情况下的序列。
首先,当销售公司、经销商或客户公司的负责人员在终端400上的网页浏览器401上输入认证信息时,在步骤S4.1中,网页浏览器401将认证信息发送到认证模块703。在本示例中,假设网络浏览器401发送用户ID和密码作为认证信息。一旦从终端400接收到用户ID和密码,在步骤S4.2中,认证模块703就通过检查所接收的用户ID和密码信息来进行认证处理。
如果认证成功,则在步骤S4.3中,网页浏览器401响应于负责人员的操作向租户处理执行模块722发送添加批准流程的请求。一旦接收到批准流程添加请求,在步骤S4.4中,租户处理执行模块722向租户管理模块702发出批准流程添加请求。一旦接收到批准流程添加请求,在步骤S4.5中,租户管理模块702就将用于使用MQTT服务器模块600的令牌发出请求发送到MQTT服务器模块600。一旦接收到令牌发出请求,MQTT服务器模块600就发出令牌。然后,在步骤S4.6中,MQTT服务器模块600将所发出的令牌发送给租户管理模块702。
一旦接收到令牌,在步骤S4.7中,租户管理模块702调用MQTT通信模块701的退订请求API。当调用退订请求API时,在步骤S4.8中,MQTT通信模块701将退订请求发送到MQTT服务器模块600。一旦接收到退订请求,在步骤S4.9中,MQTT服务器模块600就验证令牌,并进行退订处理。一旦完成退订处理,在步骤S4.10中,租户管理模块702更新租户信息。更具体地,租户管理模块702将图4例示的批准需要/不需要信息1005设置为假。
一旦完成租户信息的更新,在步骤S4.11中,租户管理模块702就将在步骤S4.6中接收到的令牌发送给租户处理执行模块722。一旦接收到令牌,在步骤S4.12中,租户处理执行模块722就调用MQTT通信模块721的订阅请求API。此时,租户处理执行模块722指定包含在租户信息中的请求接收主题1002。换句话说,租户处理执行模块722对指定父租户的主题路径进行指定。当调用订阅请求API时,在步骤S4.13中,MQTT通信模块721将订阅请求和在步骤S4.11中接收到的令牌发送给MQTT服务器模块60。一旦接收到订阅请求和令牌,在步骤S4.14中,MQTT服务器模块600验证令牌,并且如果验证成功则设置请求接收主题1002。在完成了步骤S4.14中的订阅处理之后,由于保留功能,可以将最新的消息从MQTT服务器模块600发送到MQTT通信模块721,而此时的处理类似于图8例示的步骤S6及其后续步骤中的处理,因此这里将省略其描述。
图7B例示了在批准过程的需要/不需要从租户单元720进行批准过程的状态改变为由根系统进行批准过程而不由租户单元720执行的状态的情况下的序列。步骤S5.1和S5.2中的处理类似于步骤S4.1和S4.2,因此这里将省略其描述。
如果认证成功,则在步骤S5.3中,网页浏览器401响应于负责人员的操作向租户处理执行模块722发出删除批准流程的请求。一旦接收到批准流程删除请求,在步骤S5.4中,租户处理执行模块722向租户管理模块702发出批准流程删除请求。一旦接收到批准流程删除请求,在步骤S5.5中,租户管理模块702就将用于使用MQTT服务器模块600的令牌发出请求发送到MQTT服务器模块600。一旦接收到令牌发出请求,MQTT服务器模块600就发出令牌。然后,在步骤S5.6中,MQTT服务器模块600将所发出的令牌发送给租户管理模块702。一旦接收到令牌,在步骤S5.7中,租户管理模块702就将令牌发送给租户处理执行模块722。
一旦接收到令牌,在步骤S5.8中,租户处理执行模块722调用MQTT通信模块721的退订请求API。当调用退订请求API时,在步骤S5.9中,MQTT通信模块721将退订请求发送到MQTT服务器模块600。此时,MQTT通信模块721将将退订请求与在步骤S5.7中接收到的令牌一起发送。一旦接收到退订请求和令牌,在步骤S5.10中,MQTT服务器模块600验证令牌,并且如果验证成功则删除用于请求接收的设置,由此完成退订处理。一旦完成退订处理,在步骤S5.11中,租户处理执行模块722向租户管理模块702发送退订完成通知。
一旦接收到退订完成通知,在步骤S5.12中,租户管理模块702调用MQTT通信模块701的订阅请求API。此时,租户管理模块702指定包含在租户信息中的请求接收主题1002。此时请求接收主题1002的主题路径是父租户相对于退订的子租户的主题路径。当调用订阅请求API时,在步骤S5.13中,MQTT通信模块701向MQTT服务器模块600发送订阅请求。此时,MQTT通信模块701将订阅请求与在步骤S2.13中接收到的令牌一起发送。
一旦接收到订阅请求和令牌,在步骤S5.14中,MQTT服务器模块600就验证令牌,并且如果验证成功则进行订阅处理。一旦完成订阅处理,在步骤S5.15中,租户管理模块702更新租户信息。更具体地,租户管理模块702用假来改写租户信息中的批准需要/不需要信息1005。在完成了步骤S5.14中的订阅处理之后,由于保留功能,可以将最新的消息从MQTT服务器模块600发送到MQTT通信模块701,而此时的处理类似于图8例示的步骤S6.11及其后续步骤中的处理,因此这里将省略其描述。本处理使得更新管理单元700可以以这种方式响应于请求动态地切换哪个组件订阅,由此使得固件更新系统可以灵活地改变批准流程。
图8例示表示当设备制造商的负责人员向更新系统通知固件更新信息时,直到更新通知被发送到图像形成装置500的处理流程的序列。以示例的方式,该序列表示在仅存在与图4例示的节点1000和1010对应的租户单元720的情况下的信息通知。
当设备制造商的负责人员在终端400上的网页浏览器401上输入固件的更新信息时,在步骤S6.1中,网页浏览器401将固件更新通知发送给租户管理模块702。一旦接收到固件更新通知,在步骤S6.2中,租户管理模块702就调用MQTT通信模块701的发布API。此时,租户管理模块702指定包含在根节点900中的请求发送主题902。要发布的消息的内容是写入固件的更新信息的统一资源定位符(URL)。通过访问该URL可以获取诸如固件的版本和更新内容以及固件可用的位置等的详细信息。在第一示例性实施例中,以这样的方式构造固件更新系统:将URL作为消息发送,并且基于URL获取详细信息,但是,也可以以这样的方式构造固件更新系统:使得详细信息被嵌入到消息本身。消息的格式不限于这个示例,也可以包含与固件更新无关的任意信息。
当调用发布请求API时,在步骤S6.3中,MQTT通信模块701向MQTT服务器模块600发送发布请求。一旦接收到发布请求,MQTT服务器模块600将消息(URL信息)发送到订阅该主题的租户单元720的MQTT通信模块721。一旦接收到消息(URL信息),在步骤S6.5中,MQTT通信模块721向租户处理执行模块722通知该消息(URL信息)。一旦被通知了URL信息,在步骤S6.6中,租户处理执行模块722从URL中获取固件的更新信息,并且生成管理员可从网页浏览器401访问的固件更新确认页面1100。在第一示例性实施例中,租户处理执行模块722此时仅生成网页,但可被构造为实时发送用于向负责人员通知该信息的电子邮件。
图10A例示了固件更新确认页面1100的一个示例。版本信息1101指示从在步骤S6.5中接收的URL所获取的信息。区域1102被呈现以显示指示在版本1101中更新的内容的信息。该信息的内容也可以通过访问在步骤S6.5中接收到的URL来获取。许可按钮1103是用于通过按下许可按钮1103来发出许可更新的指令的按钮。拒绝按钮1104用于在不更新固件的情况下关闭固件更新确认页面1100。如果按下拒绝按钮1104,则不进行步骤S6.7及其后续步骤的处理,这意味着位于该租户单元720下层的租户单元720和图像形成装置500不被通知固件更新通知,并且固件不会更新。如果负责人员访问固件更新确认页面1100并按下许可按钮1103,则在步骤S6.7,网络浏览器401向租户处理执行模块722发送更新许可通知。
一旦接收到更新许可通知,在步骤S6.8中,租户处理执行模块722删除固件更新确认页面1100。在本示例性实施例中,租户处理执行模块722删除页面1100,使得页面1100不能被访问,但是可以仅改写页面1100的内容。一旦完成网页1100的删除,在步骤S6.9中,租户处理执行模块722就调用MQTT通信模块721的发布请求API。此时,租户处理执行模块722指定租户信息中包含的请求发送主题1003。假设消息的主体是通过直接指定在步骤S6.5中接收到的内容(URL信息)而创建的,但是,除了基于处理了消息的租户单元720在步骤S6.5中接收到的内容生成新的消息之外,还可以通过向消息添加信息或者从消息中删除信息来创建。
当调用发布API时,在步骤S6.10中,MQTT通信模块721向MQTT服务器模块600发送发布请求。一旦接收到发布请求,MQTT服务器模块600就将消息发送给订阅指定的主题的订阅者。由于与节点1010对应的租户单元720不需要批准过程,因此根系统中的租户管理模块702代替对应于节点1010的租户订阅。因此,在步骤S6.11中,MQTT服务器模块600将消息发送到包括在更新管理单元700中的MQTT通信模块701。
一旦接收到该消息,在步骤S6.12中,MQTT通信模块701向租户管理模块702通知接收到的消息。一旦被通知该消息,在步骤S6.13中,租户管理模块702调用MQTT通信模块701的发布API来代替它对与节点1010相对应的租户进行处理。此时,租户管理模块702指定包含在节点1010的租户信息中的请求发送主题1003。在根系统代替租户进行处理的情况下,消息处理(即这种情况下的批准过程)变得不必要,因此不管消息的内容如何都应该发布消息。当调用发布API时,在步骤S6.14中,MQTT通信模块701向MQTT服务器模块600发送发布请求。
一旦接收到发布请求,MQTT服务器模块600将消息发送给订阅指定主题的订阅者。假设本示例表示当与节点1010对应的客户公司的管理下存在一个图像形成装置500时的序列。因此,在步骤S6.15中,MQTT服务器模块600将消息(URL信息)发送给图像形成装置500的MQTT通信模块800。在存在多个图像形成装置500的情况下,各个图像形成装置500应该根据图6例示的流程从租户单元720订阅消息,这意味着MQTT服务器模块600将消息发送给多个图像形成装置500。
一旦接收到该消息,MQTT通信模块800就向固件更新模块801通知该消息(URL信息)。一旦接收到该消息,在步骤S6.17中,固件更新模块801就从接收到的URL获取固件下载到的位置。然后,固件更新模块801下载固件并更新固件。
在本示例中,在销售公司处将批准过程设置为需要,因此向租户单元720通知更新通知的消息,并且由租户单元720进行与批准有关的处理。然而,在所有的租户单元720处将批准过程设置为不进行的情况下,仅根据更新管理单元700进行的处理,将消息发送到图像形成装置500,而根本没有租户单元720的介入。相反,在所有租户单元720处将批准过程都设置为需要的情况下,根据由各个租户单元720进行的消息处理,将消息发送到图像形成装置500,而根本无需更新管理单元700在步骤S6.3中发布消息之后进行消息处理。
图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由客户拥有,这导致图像形成装置500定位在指定最低层级的层的租户的主题路径的更下层。因此,在该示例中,固件更新模块801指定“/response/version/system/sales1/customer1/device1”。
用于向租户单元720通知处理结果的消息的内容包含更新版本,更新日期和时间以及处理结果代码。更新版本是更新的固件的版本、更新日期和时间是更新固件时的日期和时间。处理结果代码是指示处理结果的常数,并且以1和0分别表示成功和失败的这种方式定义。作为结果返回的信息不限于该示例,并且固件更新模块801可以被构造为向租户单元720通知例如存储有处理结果的详细信息的服务器的URL信息。
当调用发布API时,在步骤S7.3中,MQTT通信模块800向MQTT服务器模块600发送发布请求。一旦接收到发布请求,在步骤S7.4和S7.4'中,MQTT服务器模块600就将消息发送给订阅该主题的订阅者。在本示例中,对应于节点1000和1010的租户单元720与订阅该主题的订阅者相匹配,使得MQTT服务器模块600将该消息发送到与节点1000和1010对应的各个租户单元720的MQTT通信模块721。这意味着因为在设置给代理200的响应接收主题1004中在该租户本身之后的主题路径中指定了通配符,所以各个租户单元720匹配该条件,因此向各个租户单元720发送消息。
一旦接收到该消息,在步骤7.5和S7.5'中,各个租户单元720的MQTT通信模块721就向租户处理执行模块722通知该消息的内容。一旦被通知该消息,在步骤S7.6和S7.6'中,租户处理执行模块722更新设备信息确认页面中的信息。图10B例示了设备信息确认画面1200的一个示例。设备信息列表显示区域1201被呈现以显示在该租户的管理下的图像形成装置500的列表。列表的内容包括设备名称、版本和固件更新日期和时间。各个公司的负责人员可以通过确认该设备信息确认画面1200来识别固件何时被更新以及固件更新为什么类型的固件。在本示例性实施例中,租户处理执行模块722仅在网页浏览器401上可显示的网页上显示结果,但是可以进行诸如使用电子邮件通知负责人员等的处理。以这种方式,租户单元720被构造为使用与更新请求不同的主题来接收关于处理结果的消息,这使得各个层级的层的租户单元720能够同时只接收各个层级的层处的图像形成装置500的处理结果。
以上述方式,固件更新系统管理与主题路径中的层级的层相关联的销售公司、经销商和客户公司间的关系。然后,固件更新系统使得租户能够通过订阅与该租户本身之上的一层的层级的层相对应的主题,并将该信息发布给与该租户本身的层级的层相对应的主题,将信息仅有效地发送给与该租户本身相关的一方。此外,固件更新系统以这样的方式被构造:可以动态地将结构切换到根系统单元代替租户单元720进行用于发送消息的处理的结构,由此使得可以更容易地添加或删除批准过程。此外,固件更新系统将响应通知的主题与处理请求的主题分离地定义,这使得租户能够接收处理结果,而不管是否由此设置执行批准过程。
其它实施例
尽管以上以固件分发的使用情况为例描述了第一示例性实施例,但是应该注意,本发明的范围不限于该应用。本发明还可以应用于根据以自上而下的方式发出的指令而发送信息的各种方式,其包括设置分发和应用分发。
尽管以上使用针对企业的设备为代表的多功能外围设备为例来描述第一示例性实施例,但是即使在针对家庭使用时,本发明也适用于该设备。本发明的应用不限于打印机。本发明适用于任何设备。
在上述示例性实施例中,各个公司的管理员使用终端400在更新管理服务器300中生成租户单元720,该构造可以使得租户单元720在不同于更新管理服务器300的其他服务器中生成。即使在这样的情况下,只要在图4例示的层级结构中进行租户管理,就可以在代理200和租户单元720之间发送和接收消息。
还可以通过读出并执行记录在存储介质(也可更完整地称为“非暂时性计算机可读存储介质”)上的计算机可执行指令(例如,一个或更多个程序)以执行上述实施例中的一个或更多个的功能,和/或包括用于执行上述实施例中的一个或更多个的功能的一个或更多个电路(例如,专用集成电路(ASIC))的系统或装置的计算机,来实现本发明的实施例,并且,可以利用通过由系统或装置的计算机例如读出并执行来自存储介质的计算机可执行指令以执行上述实施例中的一个或更多个的功能,并且/或者控制一个或更多个电路以执行上述实施例中的一个或更多个的功能的方法,来实现本发明的实施例。计算机可以包括一个或更多个处理器(例如,中央处理单元(CPU)、微处理单元(MPU)),并且可以包括分开的计算机或分开的处理器的网络,以读出并执行计算机可执行指令。计算机可执行指令可以例如从网络或存储介质被提供给计算机。存储介质可以包括例如硬盘、随机存取存储器(RAM)、只读存储器(ROM)、分布式计算系统的存储器、光盘(诸如压缩光盘(CD)、数字通用光盘(DVD)或蓝光光盘(BD)TM)、闪存装置以及存储卡等中的一个或更多个。
本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给系统或装置,该系统或装置的计算机或是中央处理单元(CPU)、微处理单元(MPU)读出并执行程序的方法。
虽然针对示例性实施例描述了本发明,但是,应该理解,本发明不限于公开的示例性实施例。权利要求的范围应当被赋予最宽的解释,以涵盖所有这类变型例以及等同的结构和功能。
Claims (10)
1.一种信息处理系统,包括:
生成部,其用于根据租户的生成来生成反映租户与其他租户之间的层级关系的消息属性,所述租户是按照生成租户的指令而生成的;
设置部,其用于设置所生成的消息属性;
接收部,其用于从特定租户接收消息;以及
发送部,其用于基于由设置部设置的子租户的消息属性将所接收到的消息发送给在所述特定租户的紧挨着的下层设置的子租户。
2.根据权利要求1所述的信息处理系统,其中,接收部从信息处理装置接收指示处理结果的消息,该信息处理装置处理从接收到消息的子租户进一步发送的消息,并且
其中,发送部基于由设置部设置的子租户的消息属性将指示处理结果的消息发送给子租户。
3.根据权利要求1或2所述的信息处理系统,其中,设置部设置两个消息属性,即,用于接收消息的请求接收消息属性和用于接收关于处理结果的消息的响应接收消息属性,并且
其中,发送部基于子租户的请求接收消息属性将所接收到的消息发送给在所述特定租户的紧挨着的下层设置的子租户,并且基于子租户的响应接收消息属性将指示处理结果的消息发送给子租户。
4.根据权利要求3所述的信息处理系统,其中,当接收部接收到指示处理结果的消息时,发送部基于由设置部设置的响应接收消息属性将指示处理结果的消息发送给子租户和设置在子租户的上层且包括所述特定租户的多个租户。
5.根据权利要求4所述的信息处理系统,其中,发送部基于作为由设置部设置的各个响应接收消息属性的消息属性当中的多个消息属性,将指示处理结果的消息发送给子租户和设置在子租户的上层且包括所述特定租户的多个租户,所述多个消息属性包括在路径中指定且用于接收指示处理结果的消息的通配符。
6.根据权利要求1所述的信息处理系统,其中,由设置部设置的消息属性表示作为路径的、租户之间的层级关系,并且由消息属性指示的、消息的发送目的地是在所述路径中指定的。
7.根据权利要求1所述的信息处理系统,其中,如果指定了由根系统代替按照生成指令生成的租户处理消息,则设置部从根系统接收消息属性并设置所接收到的消息属性,并且
其中,发送部基于由设置部设置的子租户的消息属性,将所接收到的消息发送到代替子租户请求了设置消息属性的根系统。
8.根据权利要求7所述的信息处理系统,其中,如果在设置了消息属性之后指定了由根系统代替按照生成指令生成的租户处理消息,则设置部删除已经由租户设置的消息属性,并且从根系统接收消息属性并设置所接收到的消息属性。
9.一种信息处理系统的控制方法,所述控制方法包括:
生成步骤,根据租户的生成来生成反映租户与其他租户之间的层级关系的消息属性,所述租户是按照生成租户的指令而生成的;
设置步骤,设置所生成的消息属性;
接收步骤,从特定租户接收消息;以及
发送步骤,基于设置步骤中设置的子租户的消息属性将所接收到的消息发送给在所述特定租户的紧挨着的下层设置的子租户。
10.一种存储要由信息处理系统执行的程序的存储介质,所述程序包括:
生成步骤,根据租户的生成来生成反映租户与其他租户之间的层级关系的消息属性,所述租户是按照生成租户的指令而生成的;
设置步骤,设置所生成的消息属性;
接收步骤,从特定租户接收消息;以及
发送步骤,基于设置步骤中设置的子租户的消息属性将所接收到的消息发送给在所述特定租户的紧挨着的下层设置的子租户。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-013241 | 2017-01-27 | ||
JP2017013241A JP6584440B2 (ja) | 2017-01-27 | 2017-01-27 | 情報処理システム、情報処理ステムの制御方法およびそのプログラム。 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108366101A true CN108366101A (zh) | 2018-08-03 |
CN108366101B CN108366101B (zh) | 2021-05-25 |
Family
ID=61226363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810076847.6A Active CN108366101B (zh) | 2017-01-27 | 2018-01-26 | 信息处理系统、信息处理系统的控制方法和存储介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10466942B2 (zh) |
EP (1) | EP3355183A1 (zh) |
JP (1) | JP6584440B2 (zh) |
KR (1) | KR102235992B1 (zh) |
CN (1) | CN108366101B (zh) |
Families Citing this family (6)
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 (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020188937A1 (en) * | 2001-06-06 | 2002-12-12 | Hitachi, Ltd. | Network apparatus, network system and software updating method for network apparatus |
EP1575244A2 (en) * | 2004-03-12 | 2005-09-14 | Microsoft Corporation | Update distribution system architecture and method for distributing software |
CN101997908A (zh) * | 2009-08-21 | 2011-03-30 | 三星电子株式会社 | 应用程序下载方法、应用程序提供方法、用其的用户终端 |
US20140146359A1 (en) * | 2012-11-28 | 2014-05-29 | Konica Minolta, Inc. | Image forming apparatus and recording medium |
Family Cites Families (10)
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 | 三菱電機株式会社 | ネットワ−ク管理システム |
GB0311260D0 (en) | 2003-05-16 | 2003-06-18 | Ibm | Publish/subscribe messaging system |
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 | データ配信方法、データ配信システム及びノード装置 |
US9112891B2 (en) | 2007-02-02 | 2015-08-18 | Sharp Laboratories Of America, Inc. | Remote firmware management for electronic devices |
US8140630B2 (en) * | 2008-03-05 | 2012-03-20 | International Business Machines Corporation | Publish/subscribe message broker for message sequences |
JP2011150618A (ja) * | 2010-01-25 | 2011-08-04 | Cellius Inc | サーバシステム、クライアント装置、プログラム、及び情報記憶媒体 |
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 |
WO2016014516A1 (en) * | 2014-07-21 | 2016-01-28 | Convida Wireless, Llc | Service layer interworking using mqtt protocol |
-
2017
- 2017-01-27 JP JP2017013241A patent/JP6584440B2/ja active Active
-
2018
- 2018-01-19 KR KR1020180006826A patent/KR102235992B1/ko active IP Right Grant
- 2018-01-23 US US15/878,198 patent/US10466942B2/en active Active
- 2018-01-26 EP EP18153682.2A patent/EP3355183A1/en not_active Withdrawn
- 2018-01-26 CN CN201810076847.6A patent/CN108366101B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020188937A1 (en) * | 2001-06-06 | 2002-12-12 | Hitachi, Ltd. | Network apparatus, network system and software updating method for network apparatus |
EP1575244A2 (en) * | 2004-03-12 | 2005-09-14 | Microsoft Corporation | Update distribution system architecture and method for distributing software |
CN101997908A (zh) * | 2009-08-21 | 2011-03-30 | 三星电子株式会社 | 应用程序下载方法、应用程序提供方法、用其的用户终端 |
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 |
JP2018120537A (ja) | 2018-08-02 |
JP6584440B2 (ja) | 2019-10-02 |
US20180217786A1 (en) | 2018-08-02 |
US10466942B2 (en) | 2019-11-05 |
KR20180088583A (ko) | 2018-08-06 |
KR102235992B1 (ko) | 2021-04-05 |
EP3355183A1 (en) | 2018-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108366101A (zh) | 信息处理系统、信息处理系统的控制方法和存储介质 | |
US9483281B2 (en) | Methods, systems, and computer readable mediums for updating components in a converged infrastructure system | |
US11164144B2 (en) | Radio frequency identification system | |
US7191237B2 (en) | Automatic registration of receiving device on a remote printing application | |
CN108710528A (zh) | 桌面云虚拟机的访问、控制方法、装置、设备及存储介质 | |
CN104517055B (zh) | 能够应用安全策略的图像处理装置及其控制方法 | |
JP2014219962A (ja) | セキュリティ管理システム、入力装置、セキュリティ管理方法およびプログラム | |
CN113064600B (zh) | 部署应用的方法和装置 | |
CN105930249B (zh) | 应用监控方法和装置 | |
US8161100B1 (en) | Self-service provisioning for multi-channel applications | |
CN109804599B (zh) | 一种服务器的操作方法及服务器 | |
JP2010257180A (ja) | バージョン管理システム、装置、方法及びプログラム | |
US20220164675A1 (en) | Radio frequency identification system | |
US20180341440A1 (en) | System and method for allowing cloud communication for non-cloud enabled printers and other devices | |
US11262956B2 (en) | Communication system, server system, and terminal apparatus | |
JP6106998B2 (ja) | サービス提供システム、管理装置、サービス提供方法、及び、プログラム | |
JP2019053337A (ja) | 予約代行システム、予約代行方法および予約代行プログラム | |
JP2010205184A (ja) | 業務管理装置、業務管理方法、業務管理処理用プログラム | |
JP2002222236A (ja) | 製品情報提供装置、製品情報の提供方法、そのためのプログラムおよび記録媒体 | |
US12095775B1 (en) | Exchange interconnection using an interconnection token | |
JP7402290B1 (ja) | マルチテナントシステム、サービス提供方法、及びプログラム | |
JP7243144B2 (ja) | 端末装置、認証支援装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |