Patent ID: 12192268

DETAILED DESCRIPTION OF THE INVENTION

Below, forms for implementing the invention of the present application will be explained with reference to the attached drawings and the like. However, the following embodiments do not limit the inventions according to the claims, and all of the characteristics that are explained in the following embodiments are not necessarily necessary elements of the present invention. Each of the embodiments of the present invention described below can be implemented solely or as a combination of a plurality of the embodiments or features thereof where necessary or where the combination of elements or features from individual embodiments in a single embodiment is beneficial.

First Embodiment

FIG.1is a diagram showing an example of a configuration of an information processing system in the First Embodiment. The information processing system includes a network100and a network150that are connected via a proxy server130.

The network100is a network implemented by an internet connection, and connects a plurality of management servers110aand110b, a tenant management server115, and a proxy server130to each other. The management servers110aand110bare both server devices for managing and operating different network services (cloud services). The management servers110aand110bare both configured by general information processing apparatuses (computers or the like) that are equipped with each function such as data storage, information processing calculation, and network communication. Alternatively, the management servers110aand110bmay also be realized by cloud computing having functions that are equivalent to those of an information processing apparatus.

In addition, in the following explanation, when explaining matters that are shared by the management servers110aand110b, they will be referred to as the management server110. Note that the number of management servers that are connected to the network100is not limited to two, and there may be three or more.

The tenant management server115is a server apparatus for managing client device and customer information. The management servers110aand110b, which provide each of the network services, provide the network services by sharing the information that the tenant management server115has.

The network150is a network implemented by an intranet connection. The network150is connected to the external network100via the proxy server130, which is installed in order to increase intranet security. In addition, in addition to the proxy server130, client devices120aand120bare connected to the network150. In addition, each of the management servers110aand110band the client devices120aand120bperform the reception and transmission of information via the proxy server130.

The present embodiment explains a case in which the client devices120aand120bare image processing apparatuses (multifunction peripherals) that have multiple types of functions such as, for example, a copy function, a fax function, or the like. The client devices120aand120bboth have the function of notifying the management servers110aand110bof the history of the execution of each type of function, the history of transitioning to and from an energy saving state, the history of transitioning to and from abnormal states such as errors, and the like.

In addition, in the following explanation, when explaining matters that are shared by the client devices120aand120b, they will be referred to as the client device120. The client device120is one example of an information processing apparatus that is able to use a plurality of cloud services that are provided on a network. Note that the number of client devices that are connected to the network150is not limited to two, and there may be three or more.

FIG.2is a diagram showing an example of a hardware configuration of the management server110.FIG.2shows the case in which the management server110is realized as an information processing apparatus such as a regular computer or the like. Note that the hardware configurations of the tenant management server115and the proxy server130are also the same as that of the management server110that is shown inFIG.2, and therefore, all redundant explanations relating to the tenant management server115and the proxy server130will be omitted.

As is shown inFIG.2, the management server110includes a controller unit200, an operating unit209, and a display unit210. The operating unit209is a device that receives operator inputs to the controller unit200, and is configured by, for example, a keyboard, a pointing device, or the like. The display unit210is a device that outputs an operating screen of the controller unit220, and is configured by, for example, a display device such as a liquid crystal display or the like.

The controller unit200has a CPU201, a ROM202, a RAM203, an HDD204, an operating unit I/F205, a display unit I/F206, and a network I/F207. Each element of the controller unit200is connected to each other via a system bus208. Note that CPU is an abbreviation of Central Processing Unit, and ROM is an abbreviation of Read Only Memory. RAM is an abbreviation of Random Access Memory, and HDD is an abbreviation of Hard Disk Drive.

The CPU201activates an OS (Operating System) using a boot program that is saved on the ROM202. The CPU201executes each type of processing by executing an application program that is saved on the HDD204on the OS. The RAM203is used as the primary memory for the CPU201, and a temporary area such as a work area or the like. Note that the HDD204saves the above-described application program, and the data for the settings, histories, and the like.

The operating unit I/F205is an interface that connects the CPU201and the operating unit209, and sends information that has been input from the operating unit209to the CPU201. The display unit I/F206is an interface that connects the CPU201and the display unit210, and outputs the image data to be displayed to the display unit210. The network I/F207is an interface that performs communications with the network100conforming to specific communication protocols. The CPU201executes the transmission and reception of information between each device on the network100via the network I/F207.

FIG.3is a diagram showing an example of a hardware configuration of the client device120. The client device120, which is a multifunction peripheral, has an information processing controller unit301, a printer controller unit302, a scanner controller unit303, a printer304, a scanner305, and an operating unit306.

The information processing controller unit301is a controller that unifies the control of the information processing related to the operations of the client device120. The information processing controller unit301is connected to the printer controller unit302, the scanner controller unit303, and the operating unit306. The operating unit306is configured by, for example, a touch panel that combines an input unit and a display unit.

The printer controller unit302is a controller that controls the printer304. The printer304performs image forming on sheets fed by the paper feed cassette, which is not shown, using a known electrophotographic method based on the image data that has been input via the printer controller unit302.

The scanner controller unit303is a controller that controls the scanner305. The scanner305reads an original document that has been loaded onto it, and generates image data. The image data that has been generated by the scanner305is provided to printing using the printer304, storage on an HDD404, which is to be described below, or transmission to external devices via a network I/F405, which is to be described below.

FIG.4is a diagram showing an example of a hardware configuration of the information processing controller unit301ofFIG.3. The information processing controller unit301has a CPU401, a ROM402, a RAM403, an HDD404, a network I/F405, an operating unit I/F406, an image processing unit407, a device controller I/F408, and a power source management unit409. Each element of the information processing controller unit301is connected to each other via a system bus410.

The CPU401activates an OS using a boot program that is saved on the ROM402. The CPU401executes each type of processing by executing an application program that is saved on the HDD404on the OS. The RAM403is used as the primary memory for the CPU401, and a temporary area such as a working area or the like. Note that the HDD404saves the above-described application program, and data such as the settings, histories, and the like.

The network I/F405is an interface that performs communication with the network150conforming to specific communication protocols. The CPU401executes the reception and transmission of information between each device on the network150via the network I/F405.

The operating unit I/F406is an interface that connects the CPU401and the operating unit306. The operating unit I/F406sends information that has been input by the operating unit306to the CPU401, along with outputting the image data to be displayed to the display panel of the display unit306.

The image processing unit407executes image processing on the images output to the printer304and the images input from the scanner305. The above-described image processing includes, for example, processing such as image rotation, image compression, resolution conversion, color space conversion, gradation conversion, and the like.

The device controller I/F408is connected to the printer controller unit302and the scanner controller unit303. The device controller I/F408performs synchronous/asynchronous conversion of image data.

The power source management unit409executes power source control for the client devices overall. For example, in addition to controlling the on/off states of the power source, the power source management unit409performs control of the transition to the energy saving state, which is a state other than the regular power state, the return to the regular power state from the energy saving state, and the like.

FIG.5is a diagram showing an example of a software configuration of the information processing controller unit301inFIG.3. The program for the software module that is shown inFIG.5is stored on one of the storage units of the RAM403, the HDD404, or the ROM402, and is executed by the CPU401. In addition, because the client device120of the present embodiment is a multifunction peripheral, a software that realizes the scan, print, and each type of function that uses a network and memory storage operates as the software module ofFIG.5.

The information processing controller unit301has a user interface501, a function application502, a job control unit503, a power source control unit504, an error control unit505, a history retention unit506, a counter management unit507, and a configuration information management unit508. In addition, the information processing controller unit301also has a timer notification unit509, an event collection unit510, a message buffer520, a client module540, and an installation navigation application550.

In this context, one pair of message buffers520and client modules540is provided in the client device120per each cloud service of the management server110. The present embodiment explains an example in which message buffers520aand520b, and a client module A540aand a client module B540bare provided in the client device120. In addition, the message buffer520ais a dedicated message buffer that corresponds to the client module A540a, and the message buffer520bis a dedicated message buffer that corresponds to the client module B540b.

The user interface501is a software that handles the function of displaying the screen that the user operates on the operating unit306, and the function of relaying the movements of the user operations to the software.

The function application502is an application program group corresponding to each type of function such as, for example, copying, printing, mail transmission, and the like. The client device120has a plurality of function applications502that corresponds to the number of functions. The function application502operates the application functions of the multifunction peripheral upon user instruction via the operation panel306or data reception via the network I/F405, for example.

The job control unit503is a software that executes jobs by receiving commands from the function application502. For example, when executing a print job, the job control unit503executes printing using the printer304by controlling the printer controller unit302. In addition, for example, when executing a scan job, the job control unit503executes scanning using the scanner305by controlling the scanner controller unit303.

The power source control unit504is, for example, a software that controls the power source management unit409in joint operation with the state of the software in the client device120, and controls the transition between the regular power state and the energy saving state.

The error control unit505is a software that receives notifications about abnormal states that have occurred primarily in the job control unit503, the printer controller unit302, the scanner controller unit303, or the like, and performs control of stopping the entire system, fallback operation commands, or the like.

The history retention unit506is a software that manages the history information in the client device120, and handles the function of summarizing the user operations history, job execution results, error occurrences, and the like then saving these as histories. In addition, the history retention unit506also generates log information that is reserved for use in debugging analysis when a system problem occurs. The data that is generated by the history retention unit506is saved on the HDD404, which a nonvolatile storage medium.

The counter management unit507is a software that manages each type of counter. For example, the counter management unit507manages the count of the number of scanned pages and the number of printed pages that have occurred in the client device120, the count that measures the consumption amount for each type of consumable product such as the number of sheets of paper fed through the device, or the like. In addition, the counter management unit507may also manage the lifetime information for the products, which is calculated based on the above-mentioned consumption amount. The data that is managed by the counter management unit507is stored on the HDD404, which is a nonvolatile storage medium.

The configuration information management unit508is a software for managing the hardware and software configurations that are included in the client device120. For example, the configuration information management unit508manages the configurations of accessories that are externally attached to the client device120such as a paper input and output tray, a finisher, or the like, a list of firmware versions and installed applications, or the like. In addition, the configuration information management unit508also manages settings values that operate the information processing apparatus, and the like. Furthermore, the configuration information management unit508is also able to perform configurational controls such as firmware updates or like, and to execute control of application installation or the like, and settings updates, or the like.

The timer notification unit509generates timers in response to requests from the event collection unit510, and handles the function of notifying the event collection unit510when a set amount of time has passed.

The event collection unit510monitors state transitions that have occurred in modules (501to506) that spontaneously issues events in the client device120. In addition, the event collection unit510standardizes the event formats in order to transmit the monitoring results to the management server110, and saves these on the message buffer520. Note that the message buffer520is constructed on the HDD404, and the standardized events are saved on the HDD404, which is a nonvolatile storage medium.

In addition, the event collection unit510sends requests to the timer notification unit509to set off timers after the set period of time has passed. The event collection unit510, which has received a notification from the timer notification unit509, collects the periodically transmitted events using the timer set-off as a trigger. The counters and configuration information that are managed by the counter management unit507and the configuration information management unit508, and the like can be given as examples of the events that are collected by the event collection unit510. After acquisition, the event collection unit510standardizes the acquired information then saves it on the message buffer520in the same manner as the case in which it functions in an event driven manner.

Note that a generic format such as JSON or the like is used in the event standardization by the event collection unit510. In addition to basic information such as the event name, time of occurrence, the serial number of the client device120, or the like, the event collection unit510is also able to additionally assign various information based on the type of event. This assigned information is gathered by the event collection unit510from the state of each module (501to508) on the client device120, the contents that have been saved in the nonvolatile area of the HDD404, and the like.

The client module540handles the function of reading out the data that was collected by the event collection unit510and saved and on the corresponding message buffer520, and transmitting this to the management server110. One client module540exists per each connected management server110, and in the case in which the device is connected to a plurality of management servers110, a plurality of client modules540are also provided.

The configuration of the client module A540aand the configuration of the client module B540bthat are shown inFIG.5are both the same. Each client module540has an event transmission unit530, a network communications unit531, and a configuration control command unit532. The client module A540ais one example of a first connection unit that performs connection to the cloud service A. The client module B450bis one example of a second connection unit that performs connection to the cloud service B.

The event transmission unit530detects event occurrences by detecting writing to the dedicated message buffers520that have been provided for each client module540, or the like. Upon detecting an event occurrence, the event transmission unit530reads out information from the dedicated message buffer520, and transmits the event to the management server110via the network communications unit531.

The network communications unit531is a software that controls communications with the management server110that corresponds to the client module540via the network I/F405.

The configuration control command unit532is a software that receives commands from the management server110via the network communications unit531, and executes each type of configuration control for the client device120. For example, the configuration control command unit532receives commands from the management server110such as version upgrades for the firmware, application installation and uninstallation, changes to the settings values, and the like. In addition, the configuration control command unit532commands the configuration information management unit508to execute each type of configuration control according to the contents of the command from the management server110. The configuration information management unit508is thereby able to apply the commands from the management server110to the client device120.

The installation navigation application550is a software that handles the function of starting the operations of the client module540, and has an installation navigation UI551, and a client module drive unit552. The installation navigation application550is one example of a connection support unit, and handles the function of supporting the initial connection to the cloud service B, which is performed after the connection to the client service A has been established.

The installation navigation UI551controls the activation of the client module540. The client module drive unit552receives commands from the installation navigation UI551and sends an activation command to the necessary client module540. Note that the client module540that receives the activation command from the client module drive unit552, executes the initial connection to the management server110using the network communications unit531(initial connection processing). Thereby, use of cloud services that are provided by the management server110is thereby started on the client device120.

FIG.6is a diagram showing an example of the operations for when the client device120connects to the management server110athat provides the first cloud service for the first time. InFIGS.6, S601to S606are operations on the client device120. S631to S633are operations of the cloud service A operating on the management server110a. S651to S653are operations on the tenant management server115. Note that the cloud service A is one example of a first cloud service.

In this context, the program that realizes the operations of the client device120is stored on any of the RAM403, the HDD404, or the ROM402, and is executed by the CPU401. In the same manner, the program that realizes the operations of the management server110is stored on any of the RAM203, the HDD204, or the ROM202of the management server110, and is executed by the CPU201of the management server110. In addition, the program that realizes the operations of the tenant management server115is stored on any of the RAM203, the HDD204, or the ROM202of the tenant management server115, and is executed by the CPU201of the tenant management server115. The operation subjects of these programs are also the same in the following explanation.

Firstly, the client device120activates the installation navigation application550in response to a user command (S601). Thereby, an input screen is displayed on the operating unit306of the client device120due to the control of the installation navigation UI551.

The installation navigation UI551receives a user input regarding the authentication information that is necessary to connect to the cloud service from the above-described input screen (S602). Upon receiving the input of the above-described authentication information, the client device120transmits the authentication information to the tenant management server115.

Upon receiving the authentication information from the client device120, the tenant management server115executes authentication processing based on the authentication information (S651). If the authentication processing succeeds, the tenant management server115returns an access token to the client device120to serve as the authentication result. Subsequently, registration processing for the client device120is executed on the tenant management server115, and the serial number, device information, and the like of the client device120are registered on the cloud service (S652). The above-described registration processing is managed by associating customer information relating to the owner of the client device120(the customer), and contract information that shows the contents of the contract with this customer with information that uniquely specifies the client device120(for example an ID). It is thereby possible to specify the cloud services that the client device120is able to use on the tenant management server115.

In contrast, after authentication, the client device120receives the selection input for the cloud service A to serve as the cloud service connection target (S603). Thereupon, the client module drive unit552of the installation navigation application550activates the client module A540a(S604).

In this context, upon installation, by being activated by the installation navigation application550, each client module540registers the local name, the name of the corresponding cloud service, and the like, to the installation navigation application550. In addition, the client module540executes processing to register a callback API that receives commands in the installation navigation application550. The installation navigation application550is thereby able to identify the plurality of client modules540that have been registered and the corresponding cloud services, and it is also able to transmit and control commands relating to these.

Subsequently, the client module A540aexecutes initial connection processing to the cloud service A (S605). During the initial connection processing in S605, an ID that identifies at least the seller or the customer is necessary, and the client module A540atransmits an initial connection request that includes the above-described ID to the cloud service A.

The cloud service A on the management server110areceives the initial connection request and executes connection processing for the client device120(S631). Thereupon, the cloud service A transmits a confirmation request for the registration state to the tenant management server115, and executes processing to confirm the registration state of the client device120(S632).

In contrast, upon receiving a registration state confirmation request, the tenant management server115references the information of the registration contents that are recorded on the tenant management server115. In this context, the information such as the serial number that is the identifier for the client device, and the list of the cloud services that are usable based on the contents of the contract are associated and stored on the tenant management server115to serve as the information for the registration contents. In addition, the tenant management server115determines if the client device120is in a registration state in which it can start the cloud service A based on the contract with the customer (S652). In addition, the tenant server management server115notifies the cloud service A about the registration state confirmation results for the client device120(S653).

In addition, upon receiving the notification of the registration state confirmation results, the cloud service A determines if it is possible to start the service on the client device120based on the above-described notification. In the case in which it is possible to start the service on the client device120, the cloud service A starts communications with the client device120, and transmits a command for processing for the reception of data that depends on the service to be started, or the like to the client device120(S633).

Upon receiving the command for processing from the cloud service A, the client device120starts the necessary communications with the management server110a(S606). The connection between the cloud service A and the client device120is established in the above-described manner.

FIG.7is a diagram showing an example of the operations for when connection to a new cloud service is performed after the processing inFIG.6. InFIGS.7, S701to S705are operations at the client device120. S721to S723are operations of the cloud service A operating on the management server110a. S731to S733are operations of the cloud service B operating on the management server110b. S751to S752are operations on the tenant management server115. Note that the cloud service B is one example of a second cloud service.

Firstly, the management server110a, which is operated by the cloud service A, receives a user input via a user interface (UI), which will be described below. It is assumed that the user performs the selection (designation) of the client device120that operates the cloud service B on this UI (S721). Thereupon, the management server110aexecutes processing on the tenant management server115to acquire the information for the client device120that was designated on the UI (S722).

In contrast, the tenant management server115uses the information acquisition processing of the management server110aas a trigger and references the information from the registration contents that are recorded on the tenant management server115. In addition, the tenant management server115determines if the client device120is in a registration state in which it can start the cloud service B based on the contract with the customer (S751). In the case in which the tenant management server115can start the service on the client device120, the tenant management server115returns the access token and the registration state confirmation results for the client device120to the cloud service A.

Subsequently, the cloud service A transmits the access token and the settings information that is necessary for connection, and an activation command for the client module B540bto the client device120(S723).

The client module A540aof the client device120receives the above-described activation command (S701). Thereupon, the client module A540anotifies the installation navigation application550about the received contents in order to activate the client module B540b(S702). Subsequently, the client module drive unit552activates the client module B540b(S703).

Subsequently, the client module B540executes initial connection processing for the cloud service B (S704). During the initial connection processing in S704, the client module B540breceives all of the necessary parameters for the activation such as the access token, the settings information, and the like, via the management server110a. Due to this, it is possible for the client module B540bto automatically start the connection processing, and to transmit the initial connection request to the cloud service B, which eliminates the user input procedures (authentication input, each type of settings input, and the like) from the client device120.

The cloud service B on the management server110breceives the initial processing request and executes connection processing with the client device120(S731). Thereupon, the cloud service B transmits a registration state confirmation request to the tenant management server115, and executes processing to confirm the registration state of the client device120(S732).

Upon receiving the registration state confirmation request, the tenant management server115references the information of the registration contents that are recorded on the tenant management server115. In addition, the tenant management server115determines if the client device120is in a registration state in which it can start the cloud service B based on the contract with the customer. In addition, the tenant management server115notifies the cloud service B about the registration state conformation results for the client device120(S752).

In addition, upon receiving the notification of the registration state confirmation results, the cloud service B determines if the service can be started on the client device120based on the above-described notification. In the case in which the service can be started on the client device120, the cloud service B starts communications with the client device120, and transmits commands for processing such as the reception of the data that is dependent on the service to be started to the client device120(S733).

Upon receiving the processing commands from the cloud service B, the client device120starts the necessary communications with the management server110b(S705). The connection between the cloud service B and the client device120is established in the above-described manner.

FIG.8is a diagram showing an example of a screen display for a UI that is controlled by the cloud service A. The above-described UI is used when, for example, an input from the user to start the operations of the cloud service B is received on the cloud service A in S721inFIG.7. Note that the module related to the control of the UI that functions on the management server110afunctions as one example of a management unit that manages the connection of the client device120and the cloud service B.

The UI screen inFIG.8may also be displayed on, for example, the display unit210of the management server110a. Alternatively, in the case in which input and output to/from the management server110aare possible using a web-based application, this UI may be provided via a web browser and displayed on the display unit.

The screen800of the UI that is shown inFIG.8can remotely command the client device120, which is associated with a specific customer X, to start the cloud service B using the communications of the cloud service A. The screen800displays the information that shows the start conditions of the cloud service B for each device (client device120) corresponding to the customer X based on the information from the registration contents on the tenant management server115.

Each item such as the serial number, name, firmware version (FW ver), and state of the cloud service B are associated with each client device and displayed row by row on the screen800. InFIG.8, an example is shown in which 5 rows of information for the client device120corresponding to the customer X are displayed on the screen800. The serial number and name are one example of information that identifies the client device120.

In this context, the firmware version information is referenced when determining if it is possible to start the connection processing with the client device120. In addition, one of “no command”, “VUP needed”, “error A”, “error B”, and “connected” is displayed in the state items on the screen800as the connection state with the cloud service A. Below, the state display of the screen800will be explained with reference toFIG.9.

FIG.9is a diagram showing an example of processing for a state display on the screen800of the UI under the control of the cloud service A. Note that the processing inFIG.9is executed with each of the client devices120corresponding to the customer X serving as the processing targets.

Firstly, in S901, when the screen800of the UI is displayed, the cloud service A acquires the information for the registration contents from the tenant management server115. In addition, the cloud service A determines if the client device120, which is the processing target, can activate the client B. For example, the management server110adetermines if the firmware version of the processing target is a version that includes the functions of the client module540b.

In S901, in the case in which the client B can be activated, the processing transitions to S903. In contrast, in the case in which the client B cannot be activated, the processing transitions to S902.

In S902, the cloud service A displays “VUP needed”, which shows that the firmware version needs to be updated, in the state item for the processing target on the screen800of the UI. In this case, the cloud service A performs control to make the “VUP needed” client device120un-selectable when performing the command to start the cloud service B from the screen800of the UI.

In S903, the cloud service A determines if the user has made a connection command to the client device120that is the processing target (has the execution of S723been completed). In the case in which the user has made a connection command, the processing transitions to S905. In contrast, in the case in which the user has not completed a connection command, the processing transitions to S904.

In S904, the cloud service A displays “not connected”, which shows that a connection command for the client B has not been carried out on the client device120that is the processing target, in the state item for the processing target on the screen800of the UI.

In S905, the cloud service A determines if the client module A540ahas received a command. The reception determination can be performed using, for example, the presence or absence of a reception notification from the client module A540a. In the case in which the client module A540ahas received a command, the processing transitions to S907. In contrast, in the case in which the client module A540ahas not received a command, the processing transitions to S906.

In S906, the cloud service A displays “error A”, which shows that the client module A540ahas not received a command, in the state item for the processing target on the screen800of the UI. The error A is one example of a first error. The “error A” message makes it possible to prompt the user to confirm if the client device120is operating normally, and to confirm if the communications state of the client module A540ais normal.

In S907, the cloud service A determines if the client module B540bhas started the processing. The processing start determination can be performed by, for example, the reception of a processing start notification from the client module B540avia the client module A540a. In the case in which the client module B540bhas started the processing, the processing transitions to S909. In contrast, in the case in which the client module B540bhas not started the processing, the processing transitions to S908.

In S908, the cloud service A displays “error B”, which shows that a connection to the client module B540bhas not been established, and the client module B540bis not operating, in the state item for the processing target on the screen800of the UI. The error B is one example of a second error. The “error B” message makes it is possible to prompt the user to confirm if the communications state of the client module B540bis normal.

In S909, the cloud service A displays “connected”, which shows that the client module B540bis operating, in the state item for the processing target on the screen800of the UI. This concludes the explanation of the First Embodiment.

In the First Embodiment, the client module A540areceives settings information including an access token, and a command to start the connection to the cloud service B from the cloud service A, which is already connected (S701). The installation navigation application550activates the client module B540bin response to a command from the cloud service A via the client module A540a(S702, S703). In addition, the client module B540bexecutes the initial connection processing on the cloud service B without receiving an authentication input from the client device120(S704).

In the First Embodiment, when the client device120connects to the cloud service B, it performs transmission of a command, and the settings information to the client module A540aby using the communications path of the cloud service A, to which a connection has already been established. The client module B540bexecutes the initial connection processing in response to the command from the cloud service A, eliminating the authentication input, and the like by using the received settings information. Therefore, according to the First Embodiment, it is possible to improve the efficiency when connecting the client device120to a plurality of cloud services.

Second Embodiment

Next, a Second Embodiment will be explained. Note that in the explanation of each of the following embodiments, the same reference numbers will be used for the elements that are the same as those of the First Embodiment, and all redundant explanations will be omitted.

In the First Embodiment, when the client device120uses a plurality of cloud services at the same time, a command on the communication path to a cloud service that is already connected is used, and a communication path with a new cloud service is established. In relation to this, the Second Embodiment is in a state in which a transition is made from the prior cloud service A to the new cloud service B. During the transition to the new cloud service B, the use of the prior cloud service A is stopped after the connection to the cloud service B is established. In the Second Embodiment, excluding the point that the operations of the client device120inFIG.7(S701to S705) are replaced with those inFIG.10, the configurations and basic operations of each apparatus are the same as those in the First Embodiment.

FIG.10is a diagram showing an example of the operations of the client device120when connection to a new cloud service is performed in the Second Embodiment. The processing of S1001to S1005inFIG.10are the same as the processing for S701to S705inFIG.7, respectively. In the case ofFIG.10, the processing for S1006and after are further executed after S1005. Note that in the step of S1005, the client device120is in a state in which the communications operations of the client module B540bcan be started by using the communication path for the client module A540a.

In S1006, in the client device120, the installation navigation application550is notified that the client module B540has started operating.

In S1007, the instillation navigation application550determines if the contents of the command that was received in S1001include an order to stop the use of the cloud service A (disconnection command). In the case in which a disconnection command for the cloud service A is not included, the client device120ends the processing inFIG.10. In the case in which a disconnection command for the cloud service A is included, the processing transitions to S1008.

In S1008, the instillation navigation application550performs a command to the client module A540ato cut the connection with the cloud service A. Due to this, the client module A540acut the connection to the cloud service A, and subsequent use of the cloud service A is stopped. This concludes the explanation ofFIG.10.

According to the Second Embodiment, in addition to achieving the same effects as the First Embodiment, it is also possible to stop the use of the cloud service A in accordance with a transition to the cloud service B without performing any operations on the client device120.

Third Embodiment

Next, a Third Embodiment will be explained.

In the First Embodiment and the Second Embodiment, a state is assumed in which the client module B540bhas already been installed on the client device120. In these Embodiments, in the case in which the client module B cannot be activated during the preliminary confirmation stage, it is displayed that the firmware version needs to be updated, and control is performed that makes an automatic connection command for the client module B impossible.

However, as will be shown in the following Third Embodiment, the client module B540may be in a state in which it is automatically added by an additional installation. For example, the separate installation of the client module B540bmay be executed when the activation command is received. In the Third Embodiment, excluding the point that the operations of the client device120inFIG.7(S701to S705) will be replaced with those inFIG.11, the configurations and basic operations of each device are the same as those in the First Embodiment.

FIG.11is a diagram showing an example of an operation of the client device120after having received an activation command for the client module B540bin the Third Embodiment. The processing of S1101and S1102inFIG.11are both the same as the processing of S701and S702inFIG.7. In the case ofFIG.11, processing after S1103is further executed after S1102.

In S1103, the installation navigation application550determines if the client module B540bhas been installed on the client device120. In the case in which the client module B has been installed, the processing transitions to S1105. In contrast, in the case in which the client module B has not been installed, the processing transitions to S1104.

In S1104, the client device120executes the installation of the client module B540b. The processing in S1104is realized by, for example, updating the firmware version, additionally installing the client module B, or the like. Specifically, the installation navigation application550downloads the necessary software from an external source due to a command to the configuration control command unit532a, which is included in the client module A. In addition, the installation of the client module B540bis executed by the configuration information management unit508. Subsequently, the processing transitions to S1105.

The processing of S1105to S1107inFIG.11is the same as the processing for each of S703to S705inFIG.7respectively. This concludes the explanation ofFIG.11.

According to the Third Embodiment, in addition to achieving the same effects as the First Embodiment, it is also possible to start the use of the cloud service B by remote control by performing an automatic installation, even in the case in which the client module B540bdoes not exist on the client device120.

Preferred embodiments of the present invention have been explained above. However, the present invention is not limited by these embodiments, and various modifications or alterations can be made within the scope of the summary thereof.

In each of the above-described embodiments, the case of an image processing apparatus (a multifunction peripheral) has been explained as one example of an information processing apparatus that is able to use a plurality of cloud services. However, the present invention is not limited to image processing apparatuses, and may also be widely applied to any network device that can use a plurality of cloud services.

In addition, the present invention can also be applied between a plurality of independent cloud services without sharing the client management. In this case, it is necessary that the client module540has functions for transferring the necessary settings information and commands to the client module drive unit552, and a function to start up based on a command from the client module drive unit552.

The present invention can also be realized using processing in which a program that realizes the functions of one or more of the Embodiments is supplied to a system or a device via a network or a storage medium, and one or more of the processors in the computer of this device or system performs a read out of this program. In addition, the present invention can also be realized by a circuit (for example, an ASIC), that realizes one or more function.

While the present invention has been described with reference to embodiments, it is to be understood that the invention is not limited to the disclosed embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.

This application claims the benefit of Japanese Patent Application No. 2021-139105, filed Aug. 27, 2021 which is hereby incorporated by reference wherein in its entirety.