Cloud computing system, server computer, device connection method, and storage medium

A cloud computing system includes an initial request reception unit, a request reception unit, and a transmission unit. The initial request reception unit receives a connection request from a device. In a case where the device has tried to access a request reception unit, the request reception unit receives a service usage request and service identification information from the device and determines whether a back-end processing unit is present that both corresponds to the device and is configured to execute the service. If present, a service utilization preparation completion screen is transmitted to the device. If not present, an instance generation instruction is sent to a management unit and instruction to launch an instance generated to execute the service is sent. After the instance is launched and the back-end processing unit is realized, the service utilization preparation completion screen is transmitted to the device.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a cloud computing system, a server computer, a device connection method, and a storage medium.

2. Description of the Related Art

A content management system is widely known and used as an Internet-based management system. The content management system enables a user of each client computer to access a web site of a server computer via the Internet and select a content to browse on the web site. The content management system transmits a selected content to the server computer. The server computer processes the received content so that the content can be displayed on the client computer.

A cloud computing system and a “Software as a Service” (SaaS) are recent techniques usable when the server computer performs various processing.

The cloud computing system has the capability of simultaneously processing various requests received from numerous clients by discretely executing data conversion and data processing using virtualized computing resources.

As discussed in Japanese Patent Application Laid-Open No. 2009-237859, there is a conventional method for managing virtualized computing resources. The conventional managing method includes measuring a load of processing to be executed on a virtualized computer, and recording processing load information. The conventional method further includes measuring load information at launching timing of the processing as well as load information at termination timing of the processing, and recording the obtained processing launching/termination load information. The method further includes changing the state of a virtualized computing resource based on the obtained load information.

However, for example, in a case where an image forming apparatus is newly connected to the cloud computing system to provide a network printing system, it is important to determine an effective allocation of the computing resources to provide a useful network printing system. In this case, to connect the newly added device to the cloud computing system, an administrator is required to set a connection destination at a setup location of the device. In general, the administrator manually allocates a computing resource to the newly added device. Thus, the preliminary setting work requires a significant amount of time and labor.

SUMMARY OF THE INVENTION

The present invention is directed to a technique capable of reducing time and labor required before a service becomes available at a device newly added to a cloud computing system and capable of improving easiness in installing the device.

According to an aspect of the present invention, a cloud computing system includes a group of server computers and further includes an initial request reception unit configured to receive a connection request from a device configured to transmit the connection request, a service usage request, and service identification information, wherein the initial request reception unit includes a notification unit configured to notify the device of information required to identify a request reception unit configured to receive a service usage request; a request reception unit configured, in a case where the device has tried to access the request reception unit based on the information required to identify a request reception unit, to receive a service usage request and service identification information transmitted from the device, wherein the request reception unit includes a determination unit configured to determine, based on the received service identification information, whether a back-end processing unit is present that both corresponds to the device and is configured to execute the service; and a transmission unit configured, in a case where the determination unit determines that a back-end processing unit that both corresponds to the device and is configured to execute the service is present, to transmit a service utilization preparation completion screen to the device without instructing generation of an instance that can realize the back-end processing unit and, in a case where the determination unit determines that a back-end processing unit that both corresponds to the device and is configured to execute the service is not present, to send an instance generation instruction to a management unit configured to manage instances and to further send an instruction to launch an instance generated to execute the service, wherein after the instance is launched and the back-end processing unit is realized, the transmission unit further is configured to transmit the service utilization preparation completion screen to the device.

DESCRIPTION OF THE EMBODIMENTS

Each device constituting a network printing system according to a first exemplary embodiment is described below in detail with reference toFIG. 1.FIG. 1illustrates an example of a system configuration of the network printing system.

The network printing system illustrated inFIG. 1includes a server computer group102, an image forming apparatus103, and a client computer104, which are connected to each other via a network100.

The network100is a communication circuit that enables each of the above-described devices to transmit and receive information to and from another one of the above-described devices. Internet101is a communication circuit that enables each of the above-described apparatuses to communicate with another apparatus beyond the firewall. More specifically, the image forming apparatus103and the client computer104belong to the same network100and can communicate, beyond the firewall, with the server computer group102that belongs to another network100via the Internet101.

Each of the above-described networks100and the Internet101is, for example, a wired or wireless communication network capable of supporting the TCP/IP protocols. In the first exemplary embodiment, the server computer group102includes a plurality of server computers, although a single server is illustrated inFIG. 1. The network printing system is an example of the cloud computing system.

Next, an internal configuration of each apparatus that constitutes the network printing system illustrated inFIG. 1is described below in detail. First, the internal configuration of the image forming apparatus103is described below with reference toFIG. 2.FIG. 2illustrates an example of a hardware configuration of the image forming apparatus103.

The image forming apparatus103includes an image processing unit201, a printing unit202, and a reading unit203. The image processing unit201includes a central processing unit (CPU)204, a direct storage unit205, an indirect storage unit206, a user interface207, and an external interface208.

The CPU204can execute a predetermined program and is functionally operable as a unit configured to instruct various controls of the image forming apparatus103. The direct storage unit205is a work memory to be used when the CPU204executes a program. The program to be executed by the CPU204is loaded into the direct storage unit205.

The direct storage unit205can be realized by a random access memory (RAM). The indirect storage unit206stores various programs including application programs and a platform program.

Various programs stored in the indirect storage unit206can be loaded into the direct storage unit205when the CPU204executes each program. The indirect storage unit206can be realized by a solid state drive (SSD) or a hard disc drive (HDD). In the present exemplary embodiment, the CPU204can be constituted by a multi-processor.

The platform is described below in detail. If the platform is realized, a new application uniquely developed by an end-user can be executed by the image forming apparatus103. Further, customizing an operation screen of the image forming apparatus103becomes feasible.

An example method for realizing the platform is described. The CPU204moves the platform program stored in the indirect storage unit206to the direct storage unit205. Upon completion of the movement of the platform program, the CPU204can execute the platform program.

In the present exemplary embodiment, an operation of the CPU204for executing the platform program is referred to as “launching the platform.” The platform can operate on the firmware of the image forming apparatus103. The platform program can provide an environment for executing an application program described in an object-oriented manner.

An example method for executing an application program on the platform is described below in detail. In the present exemplary embodiment, print software is constantly operating on the platform to accept a print request. For example, the print software can receive print data from an external device accessible via the network according to appropriate communication protocol, such as Hyper Text Transfer Protocol (HTTP).

The print software transmits the received print data to the firmware. The firmware starts print data processing based on the received print data. If the print data does not require any processing to be performed before starting the print processing, the firmware can skip preliminary print data processing. As described above, when the platform executes the application program, a control to be performed by the image forming apparatus103can be realized.

An example method for executing the application program is described below. The platform, if it is launched, moves the application program stored in the indirect storage unit206to the direct storage unit205. Upon completion of the movement of the application program, the platform can execute the application program. Then, the platform starts executing the application program.

In the present exemplary embodiment, the above-described function of the platform that can be provided by executing the application program is referred to as “platform application.” Further, the platform can partly perform each processing of the flowchart described in the present exemplary embodiment.

The user interface207is a unit configured to accept a processing request from a user. For example, the user interface207can accept, via a keyboard and a mouse, a signal that represents an instruction input by a user.

The external interface208can receive data from an external device, and can transmit data to an external device. For example, the external device is an external storage device, such as an external HDD or an external USB memory, or a separate device, such as a host computer or an image forming apparatus, accessible via the network.

The image forming apparatus103can communicate with the client computer104and the server computer group102via the network100and the Internet101.

Next, an internal configuration of an information processing apparatus, which is represented by the server computer group102and the client computer104, is described below with reference toFIG. 3.FIG. 3is a block diagram illustrating an example of a hardware configuration of the information processing apparatus. The information processing apparatus includes a CPU301, a direct storage unit302, an indirect storage unit303, a user interface304, and an external interface305.

The user interface304is a unit configured to accept a processing request from a user. For example, the user interface304can accept, via a keyboard and a mouse, a signal that represents an instruction input by a user.

The CPU301can execute a predetermined program and is functionally operable as a unit configured to instruct various controls of the information processing apparatus. The direct storage unit302is a work memory to be used when the CPU301executes a program. The program to be executed by the CPU301is loaded into the direct storage unit302. The direct storage unit302can be constituted by a RAM.

The indirect storage unit303stores various programs including application programs and an operating system (OS). Various programs stored in the indirect storage unit303can be moved to the direct storage unit302when the CPU301executes each program. The indirect storage unit303can be constituted by a ROM, or a HDD. The external interface305is connected to the network100so that the information processing apparatus can communicate with an external device accessible via the network100.

Next, various functions of respective apparatuses that constitute the network printing system according to the present exemplary embodiment are described below in detail with reference toFIG. 4.FIG. 4is a block diagram illustrating an example of a functional configuration (software configuration) of respective apparatuses that constitute the network printing system.

First, functions of the server computer group102are described below. The server computer group102includes a request reception unit401, a back-end processing unit402, a table storage service403, a blob storage service404, and a queue storage service405.

In the present exemplary embodiment, at least one server computer including the request reception unit401, exists. Further, at least one server computer, including the back-end processing unit402, exists. Further, at least one server computer including functions of the table storage service403, the blob storage service404, and the queue storage service405, exists.

The request reception unit401can accept a processing request transmitted from the client computer104or the image forming apparatus103. The back-end processing unit402can perform processing in response to each processing request using a processing program.

More specifically, to realize the back-end processing unit402, the CPU301executes the processing program that can be loaded into a memory of the server computer that executes the back-end processing unit402. To realize the request reception unit401and the back-end processing unit402, the CPU301executes a request reception program or a back-end processing program that can be loaded into the direct storage unit302from the indirect storage unit303illustrated inFIG. 3.

The table storage service403is functionally operable to store data, such as path information of a module to be used by the back-end processing unit402. To realize the table storage service403, the CPU301executes a table storage service program loaded into the direct storage unit302from the indirect storage unit303illustrated inFIG. 3. Further, the data can be stored in the indirect storage unit303.

The blob storage service404is functionally operable to store various data including a module to be used by the back-end processing unit402. To realize the blob storage service404, the CPU301executes a blob storage service program loaded into the direct storage unit302from the indirect storage unit303illustrated inFIG. 3. Further, the data can be stored in the indirect storage unit303.

The queue storage service405has the following functions. First, the queue storage service405is functionally operable to enable the request reception unit401and the back-end processing unit402to perform asynchronous data communications. Second, the queue storage service405is functionally operable to bring a queue message added to a queue into an invisible state or into a visible state.

The first function of the queue storage service405is described below. The request reception unit401and the back-end processing unit402can communicate with each other according to the following method. First, if the request reception unit401receives a processing request from a user, the request reception unit401creates a ticket (which is referred to as queue message) according to the processing request received from the user. The queue message is stored in a queue by the request reception unit401.

The back-end processing unit402acquires the queue message from the queue. The back-end processing unit402processes the processing request received from the user with reference to the acquired queue message. Thus, the processing request received from the user is solved. As described above, the request reception unit401and the back-end processing unit402can perform asynchronous communications using the queue storage service405. The first function is described below in more detail. The second function is also described below.

To realize the queue storage service405, the CPU301executes a queue storage service program that can be loaded into the direct storage unit302from the indirect storage unit303illustrated inFIG. 3. Further, the data can be stored in the indirect storage unit303.

In addition to the foregoing description, functions of the server computer group102are described below in more detail.

A document server has the following functions. The document server is functionally operable as a document repository. The document repository can be realized by the indirect storage unit303illustrated inFIG. 3. For example, the document repository stores contents of a print instruction entered by a user via the client computer104or the image forming apparatus103. The contents stored in the document repository include the following contents in addition to preliminarily stored contents.

In the present exemplary embodiment, a user can generate contents, via a browser406, using an application operable on the server computer group102. Thus, the user can easily obtain a print product based on contents generated using an application operable on the server computer group102, without installing any application on the client computer104.

The above-described applications operable on the server computer group102are various applications that include a document creation application, an image forming application, and a form management application. These applications are stored in the indirect storage unit303illustrated inFIG. 4. If execution of an application is instructed, the application can be loaded into the direct storage unit302from the indirect storage unit303and executed by the CPU301.

Next, the image forming apparatus103is described below in detail. The image forming apparatus103includes two functions of a device browser408and a platform application407. The device browser408is functionally operable to enable users to browse data and information stored in a device accessible via the network100.

To realize the device browser408, the CPU204executes a device browser program that can be loaded into the direct storage unit205from the indirect storage unit206illustrated inFIG. 2. Further, users can instruct printing of content via the device browser408. The device browser408is, for example, a web browser.

The platform application407is capable of providing various services. The platform application407can be realized by an application program operable on the platform.

In the present exemplary embodiment, the platform application407can provide a print software service. As described above, the print software service can transmit received print data to the firmware. Further, the print software service requests the request reception unit401to confirm whether the generation of print data has been completed. In this case, the print software service performs the above-described confirmation processing based on a job ID generated by the request reception unit401.

Next, the client computer104is described below in detail. The client computer104is functionally operable as the browser406. The browser406enables users to browse data and information stored in a device accessible via the network100. To realize the browser406, the CPU301executes a browser program that can be loaded into the direct storage unit302from the indirect storage unit303illustrated inFIG. 3. The browser406is, for example, a web browser.

Respective apparatuses that constitute the network printing system according to the present exemplary embodiment have the above-described functions.

Next, a platform system of the server computer group102is described below in detail with reference toFIG. 5.FIG. 5illustrates an example of a functional configuration of the server computer group102.

A physical hardware resource in the server computer group102can be used to constitute a platform of the server computer group102. A platform user of the server computer group102can use the physical hardware resource of the server computer group102as a computing resource.

The platform system (i.e., an operating system) of the server computer group102has various functions, including virtual machines501and502, a fabric controller503, a load balancer504, a queue storage service505, a table storage service506, and a blob storage service507.

The platform system operable on the server computer group102includes a plurality of virtual machines501and502. Each virtual machine is a logical computer that can be obtained by dividing the server computer group102(i.e., a physical device) using a virtualization technique. Each virtual machine can perform various operations according to an independent operating system.

Each logical computer can be counted as one “instance.” In the present exemplary embodiment, one virtual machine (i.e., the number of instances=1) operates on one server computer that constitutes the server computer group102.

The virtual machine501includes a request reception unit (Web Role Instance)509and a request reception unit agent (Agent)510. The request reception unit509can receive, via the load balancer504, a processing request entered by a user. Further, the request reception unit509can transmit, via the queue storage service505, the processing request to a back-end processing unit511.

To secure higher availability of the request reception unit509, a request from an external network (i.e., HTTP based communication in the present exemplary embodiment) is performed via the load balancer504that is positioned outside of the virtual machine501. The load balancer504can integrally manage requests received from the external network and selectively transfer respective requests to a plurality of virtual machines each including a request reception unit having a comparable function.

The request reception unit agent510can collect various types of information, including the usage status of the virtual machine501, the operational state of the request reception unit509, the resource usage status of the virtual machine501, and the error of the request reception unit509. The request reception unit agent510can periodically transmit the collected information to the fabric controller503.

The fabric controller503manages each instance in the request reception unit509and the back-end processing unit511. Therefore, expandability and availability of each instance can be assured.

For example, it is assumed that a specific instance has stopped due to a server failure in the request reception unit509or the back-end processing unit511. In this case, the fabric controller503cannot receive notifications periodically sent from the request reception unit agent510and the back-end processing unit agent512.

If the fabric controller503cannot receive a periodic notification, the fabric controller503instructs the virtual machine to transfer the processing to a new instance. As a result, the present exemplary embodiment can maintain the number of instances that are executing the processing at a predetermined level, and can prevent the processing from being delayed.

Further, the request reception unit509of the virtual machine501can instruct the fabric controller503to generate and launch an instance of the back-end processing unit511of the virtual machine502, as described below in more detail.

The virtual machine502includes the back-end processing unit (WorkerRole Instance)511and the back-end processing unit agent (Agent)512. The back-end processing unit511can receive a processing request from the request reception unit509via the queue storage service505.

The back-end processing unit511can execute the processing request received from the request reception unit509via the queue storage service505. Further, the back-end processing unit511is capable of performing scale-out processing to increase the number of virtual machines502and the number of instances in the back-end processing unit511.

If the number of instances in the back-end processing unit511increases, the data processing amount per back-end processing unit decreases. Thus, the back-end processing unit511can quickly return a result responding to the processing request received from the user.

The queue storage service505can provide a service for enabling the request reception unit509and the back-end processing unit511to perform asynchronous data communications. The request reception unit509and the back-end processing unit511send various instructions to the queue storage service505to perform asynchronous data communications, as described below in detail.

A queue message addition instruction is an example instruction supplied from the request reception unit509to the queue storage service505. A queue message acquisition instruction and a queue message deletion instruction are example instructions supplied from the back-end processing unit511to the queue storage service505.

The request reception unit509and the back-end processing unit511perform sequential operations for asynchronously data communications in the following manner.

The request reception unit509generates a queue message according to a processing request received from the user, and transmits an addition instruction to the queue storage service505. If the queue storage service505receives the addition instruction, the queue storage service505adds the queue message to a queue.

The back-end processing unit511sends an acquisition instruction to the queue storage service505to acquire the queue message. If the queue storage service405receives the acquisition instruction, the queue storage service405returns the queue message, a message ID uniquely allocated to each queue message, and a job ID, as a response to the acquisition instruction, to the back-end processing unit511.

The message ID is unique information allocated to each queue message (i.e., information identifying each queue message). When the back-end processing unit511has completed the processing, the back-end processing unit511can use the message ID to instruct deletion of the queue message.

The job ID can be referred to as information capable of uniquely identifying the content to be actually processed. If the back-end processing unit511completes the processing request, the back-end processing unit511instructs the queue storage service505to delete the queue message corresponding to the received ID. If the queue storage service505receives the deletion instruction, the queue storage service505deletes the queue message corresponding to the reception ID instructed by the back-end processing unit511from the queue. Thus, the present exemplary embodiment can prevent the same queue message from being redundantly processed by a back-end processing unit511other than the back-end processing unit511having output the deletion instruction.

Further, the queue storage service505is functionally operable to bring a queue message added to a queue into an invisible state or into a visible state. The invisible state indicates that, if acquisition of a queue message added to a queue is requested by the back-end processing unit511, the queue storage service505does not deliver any queue message to the back-end processing unit511.

If the back-end processing unit511acquires a queue message from a queue, the queue storage service505brings the acquired queue message into an invisible state. The visible state indicates that, if acquisition of a queue message added to a queue is requested by the back-end processing unit511, the queue storage service505delivers the queue message to the back-end processing unit511.

The queue message acquired by the back-end processing unit511and brought into the invisible state, if a processing result is not returned from the back-end processing unit511that is currently performing the processing, is automatically brought into a visible state by the queue storage service405. Thus, a retrial of the processing is automatically executed even when the back-end processing unit511abnormally terminates the processing and cannot continue the processing.

The table storage service506can provide a storage that can be used to store data. The table storage service506can store each data as a simple combination of entity and type information property. Each table stores properties of PartitionKey columns and RowKey columns. Each entity in the table can be identified with a combination of PartitionKey and RowKey as a key.

The blob storage service507can provide a storage that can be used to store data. The blob storage service507can provide a function of storing an assembly of binary data. The blob storage service507stores a module, as binary data, to be used by the back-end processing unit511in the present exemplary embodiment.

Next, an example distribution to an individual request reception unit according to the present exemplary embodiment, which can be performed by the request reception unit, is described below.

FIG. 6is a block diagram illustrating an example of a configuration of the request reception unit401. An initial request reception unit601can accept a processing request transmitted from the image forming apparatus103. Then, the initial request reception unit601sends a redirect statement to the individual request reception unit602according to information illustrated inFIG. 7AandFIG. 7B. The individual request reception unit602is functionally operable to accept a processing request transmitted from the image forming apparatus103.

FIG. 7Aillustrates an example of a device registration table. The device registration table can be stored in the table storage service506. The browser406of the client computer104registers the device registration table beforehand in the table storage service403to identify a service of each individual request reception unit used by each image forming apparatus103.

The device registration table illustrated inFIG. 7Aincludes a device_id701(i.e., one of the PartitionKey columns) that represents a unique identifier of each image forming apparatus103connected to the network printing system according to the present exemplary embodiment. The device registration table illustrated inFIG. 7Afurther includes a site_id702(i.e., one of the RowKey columns) that represents an identifier of the individual request reception unit602in the network printing system according to the present exemplary embodiment.

The device registration table illustrated inFIG. 7Afurther includes a service_id703that represents an identifier of each service that can be used by the image forming apparatus103in the network printing system according to the present exemplary embodiment. According to the example illustrated inFIG. 7A, each record can be defined by values of respective items701to703. For example, in the first row of the device registration table, the device_id701is “dev_a_sr8rIheJmCd6npd”, the site_id702is “site—0001”, and the service_id703is “print.”

FIG. 7Billustrates an example of an individual request reception unit management table. The individual request reception unit management table can be stored in the table storage service506. The browser406of the client computer104registers the individual request reception unit management table beforehand in the table storage service403to identify URI of each individual request reception unit in relation to each site_id.

The individual request reception unit management table illustrated inFIG. 7Bincludes a pertition_key711that stores a fixed value “site.” The individual request reception unit management table further includes a site_id712(i.e., one of the RowKey columns) that represents an identifier of the individual request reception unit602. In this respect, the site_id712is similar to the above-described site_id702. The individual request reception unit management table further includes a URI713that represents URI of the individual request reception unit602relating to the site_id712. According to the example illustrated inFIG. 7B, each record can be defined by values of respective items711to713. For example, in the first row of the individual request reception unit management table, the pertition_key711is “site”, the site_id712is “site 0001”, and the URI713is “http://server01.”

FIG. 7Cillustrates an example of a service instance management table. The service instance management table illustrated inFIG. 7Ccan be stored in the table storage service506. The service instance management table is provided for each individual request reception unit602to manage the number of instances with respect to the WorkerRole instance511of the back-end processing unit402that provides a service corresponding to the model of each image forming apparatus103.

The service instance management table illustrated inFIG. 7Cincludes a model_id721(i.e., one of the PartitionKey columns) that represents a model identifier of each image forming apparatus103. The service instance management table illustrated inFIG. 7Cfurther includes a service_id722(i.e., one of the RowKey columns) that represents an identifier of each service that can be used by the image forming apparatus103. In this respect, the service_id722is similar to the above-described service_id703.

The service instance management table illustrated inFIG. 7Cincludes an instance723that represents the number of instances with respect to the WorkerRole instance511of the back-end processing unit402that provides services dedicated to the model of each image forming apparatus103. According to the example illustrated inFIG. 7C, each record can be defined by values of respective items721to723. For example, in the first row of the service instance management table, the model_id721is “model_a0001”, the service_id722is “print”, and the instance723is “1.”

FIG. 7Dillustrates an example of a module path management table. The module path management table can be stored in the table storage service506. The browser406of the client computer104registers the module path management table beforehand in the table storage service403to manage a path (storage location) of a module loaded by the WorkerRole instance511of the back-end processing unit402that provides services corresponding to the model of each image forming apparatus103.

The module path management table illustrated inFIG. 7Dincludes a model_id731(i.e., one of the PartitionKey columns) that represents a model identifier of each image forming apparatus103. In this respect, the model_id731is similar to the above-described model_id721. The module path management table illustrated inFIG. 7Dfurther includes a service_id732(i.e., one of the RowKey columns) that represents an identifier of each service that can be used by the image forming apparatus103. In this respect, the service_id732is similar to the above-described service_id703.

The module path management table illustrated inFIG. 7Dincludes a path733that represents a path (storage location) of a module loaded by the WorkerRole instance511of the back-end processing unit402that provides services corresponding to the model of each image forming apparatus103. The path is a storage location on the blob storage service404. The entity of the module is stored on the blob storage service404.

According to the example illustrated inFIG. 7D, each record can be defined by values of respective items731to733. For example, in the first row of the module path management table, the model_id731is “model_a0001”, the service_id732is “print”, and the path733is “lib/print/a0001.”

FIG. 8illustrates an example of a setting file for the image forming apparatus103. The setting file illustrated inFIG. 8can be stored in the indirect storage unit206of the image forming apparatus103. One of setting values is URI information of a connection destination to be connected when the image forming apparatus103uses a service of the present exemplary embodiment. According to the example illustrated inFIG. 8, a setting item “Connect_URI”801is the connection destination URI. A setting value of the connection destination URI is “http://server/first.”

FIG. 9illustrates an example of an http header to be transmitted from the image forming apparatus103to the URI defined by the setting value of the connection destination URI801illustrated inFIG. 8. The device browser408of the image forming apparatus103outputs the http header, and the initial request reception unit601of the request reception unit401receives the http header.

The http header includes information indicating a device ID901. The device ID901is uniquely allocated to each image forming apparatus103and can be stored in the indirect storage unit206of the image forming apparatus103. In the present exemplary embodiment, an item “X-device-id” represents the device ID901. An example value of the item “X-device-id” is “dev_a_sr8rIheJmCd6npd.”

Next, an example processing flow of the image forming apparatus103that accesses the request reception unit401to use a service (an example of a device connection method for connecting a device to a cloud computing system that includes a group of server computers) is described below with reference toFIG. 10.FIG. 10is a flowchart illustrating an example of processing to be performed by the image forming apparatus103that accesses the request reception unit401and starts using a service.

In step S1001, the device browser408of the image forming apparatus103accesses the initial request reception unit601of the request reception unit401according to a setting value of the connection destination URI801described with reference toFIG. 8. Then, the device browser408transmits the device ID901described with reference toFIG. 9in addition to a connection request. The connection destination URI801and the device ID901can be acquired from the indirect storage unit206of the image forming apparatus103when the device browser408is launched. In step S1002, the initial request reception unit601receives the connection request transmitted in step S1001, and acquires the device ID901.

In step S1003, the initial request reception unit601determines whether the device ID901acquired in step S1002coincides with any one of IDs in the device registration table described with reference toFIG. 7A. If the determination result in step S1003is No, the initial request reception unit601determines that the image forming apparatus103is not registered. Then, in step S1004, the initial request reception unit601transmits an unregistration screen to the device browser408of the image forming apparatus103. If the determination result in step S1003is Yes, the initial request reception unit601determines that the image forming apparatus103is already registered and the processing proceeds to step S1005.

In step S1005, the initial request reception unit601acquires ID of the individual request reception unit602and a usable service ID from the device registration table described with reference toFIG. 7A. Further, the initial request reception unit601acquires a corresponding URI from the individual request reception unit management table illustrated inFIG. 7B. The initial request reception unit601sends a redirect statement including the usable service ID to the device browser408of the image forming apparatus103. In the present exemplary embodiment, the service ID is an example of service identification information to be required to identify each service.

In step S1006, the device browser408of the image forming apparatus103reads a model ID of the image forming apparatus103from the indirect storage unit206, and transmits the readout model ID together with the usable service ID redirected in step S1005to the individual request reception unit602(i.e., redirect destination). The model ID is, for example, an example of configuration information or model information.

In step S1007, the individual request reception unit602receives the model ID and the service ID transmitted in step S1006.

In step S1008, the individual request reception unit602determines whether a corresponding service instance is already present in the service instance management table (i.e., a table to be used to manage the number of services) described with reference toFIG. 7Cbased on the model ID and the service ID received in step S1007.

If the determination result in step S1008is Yes, then in step S1009, the individual request reception unit602determines that generation of a new instance is not required, and transmits a preparation completion screen to the device browser408of the image forming apparatus103. As a result of the above-described processing, the image forming apparatus103can use the registration completed service.

If the determination result in step S1008is No, then in step S1010, the individual request reception unit602determines that generation of a new instance is required, and instructs the fabric controller503to generate the WorkerRole instance511(i.e., the entity of the back-end processing unit402). An example of an instance generation instruction is described below.

In step S1011, the individual request reception unit602outputs an instruction to launch the WorkerRole instance511(i.e., the entity of the back-end processing unit402) generated by the fabric controller503. An example of an instance launching instruction is described below.

In step S1012, the individual request reception unit602waits until the instructed launching of the WorkerRole instance511is completed.

In step S1013, the individual request reception unit602causes the fabric controller503to determine whether the instructed launching of the WorkerRole instance511has been completed.

If the determination result in step S1013is No, it indicates that the instructed launching of the WorkerRole instance511is not yet completed. Therefore, the processing returns to step S1012in which the individual request reception unit602waits until the instructed launching of the WorkerRole instance511is completed. If the determination result in step S1013is Yes, it indicates that the instructed launching of the WorkerRole instance511is already completed. Therefore, in step S1014, the individual request reception unit602transmits the preparation completion screen to the device browser408of the image forming apparatus103.

As a result of the above-described processing, the image forming apparatus103can use the registration completed service. The preparation completion screen is an example of a usage preparation completion screen.

Next, example processing that can be performed by the individual request reception unit602, which causes the fabric controller503to generate the WorkerRole instance511(i.e., the entity of the back-end processing unit402), is described below with reference toFIG. 11A,FIG. 11B, andFIG. 12.

FIG. 11Aillustrates an example of a configuration file that can be stored by the back-end processing unit402. The configuration file is stored in the indirect storage unit303of a server computer that executes the back-end processing unit402. The configuration file illustrated inFIG. 11Aincludes setting items of the back-end processing unit402. According to an illustrated item1101, an example setting item is “ModuleKey.”

FIG. 11Billustrates an example of a setting file that can be stored in the back-end processing unit402. The setting file is stored in the indirect storage unit303of a server computer that executes the back-end processing unit402. The setting file illustrated inFIG. 11Bincludes an example value of the setting item of the back-end processing unit402described with reference toFIG. 11A. According to an illustrated item1102, an example setting value of the item “ModuleKey” is “model_a0001|print.”

FIG. 12is a flowchart illustrating an example of processing for generating the WorkerRole instance511(i.e., the processing to be performed in step S1010illustrated inFIG. 10).

In step S1201, the individual request reception unit602sends a generation instruction of the WorkerRole instance511to the fabric controller503. In response to the received instruction, the fabric controller503generates a corresponding (e.g., Print or Scan) WorkerRole instance511of the back-end processing unit402as a subordinate instance belonging to the individual request reception unit602that has output the generation instruction. In other words, the fabric controller503generates a corresponding virtual machine502.

In step S1202, the individual request reception unit602causes the fabric controller503to update a setting file of the generated back-end processing unit402. More specifically, the individual request reception unit602writes a value of the “ModuleKey” into the setting file (seeFIG. 11B).

In step S1203, the individual request reception unit602causes the fabric controller503to store the setting file updated in step S1202. Generation of the WorkerRole instance511can be realized though the above-described processing.

FIG. 13is a flowchart illustrating an example of processing for launching the WorkerRole instance511(i.e., the processing to be performed in step S1011illustrated inFIG. 10).

If the instance generation processing illustrated inFIG. 12is terminated, then in step S1301, the fabric controller503instructs the launching of the WorkerRole instance511.

In step S1302, the WorkerRole instance511(i.e., the instance having been instructed to launch in step S1301) reads the configuration file described with reference toFIG. 11Aand the setting file described with reference toFIG. 11B.

In the present exemplary embodiment, the WorkerRole instance511reads the setting value of the “ModuleKey” from the setting file and acquires information indicating a path that stores a corresponding module from the module path management table described with reference toFIG. 7D.

Further, the WorkerRole instance511reads a module included in the path information acquired from the blob storage service404, and loads the readout module.

In step S1303, the fabric controller503detects launching completion of the WorkerRole instance511.

FIG. 14Aillustrates an example of the preparation completion screen, which notifies usage preparation completion of the service, to be displayed after the image forming apparatus103is successfully connected to the network printing system. The preparation completion screen illustrated inFIG. 14Acan be displayed on the device browser408of the image forming apparatus103according to the present exemplary embodiment.

The preparation completion screen illustrated inFIG. 14Aincludes a field1401of a message that notifies a user of completion of the service registration. A button1402can be displayed on the device browser408of the image forming apparatus103. If a user operation is accepted, the device browser408goes back to the previous screen.

FIG. 14Billustrates an example of an unregistration notification screen, which notifies incompletion of the service usage registration with respect to the image forming apparatus103, to be displayed after the image forming apparatus103is connected to the network printing system. More specifically, the unregistration notification screen is usable when the intended service is not present in the device registration table illustrated inFIG. 7A. The unregistration notification screen illustrated inFIG. 14Bcan be displayed on the device browser408of the image forming apparatus103according to the present exemplary embodiment.

The unregistration notification screen illustrated inFIG. 14Bincludes a field1411of an error message that notifies a user of incomplete registration of the service. A button1412can be displayed on the device browser408of the image forming apparatus103. If a user operation is accepted, the device browser408goes back to the previous screen.

Through the above-described processing, the back-end processing unit402can be automatically generated and launched when an image forming apparatus103is newly added to the network printing system. Therefore, the present exemplary embodiment can reduce the time and labor required before the network printing system becomes available, and can improve the easiness in installation.

In a second exemplary embodiment, the network printing system performs replacement processing for newly adding an image forming apparatus103to the system. The replacement processing includes deleting the WorkerRole instance511that corresponds to a replacement target (i.e., the image forming apparatus103to be replaced) after a WorkerRole instance511corresponding to the newly added image forming apparatus103is generated and launched.

FIG. 15illustrates an example of a replacement information added device registration table. The replacement information added device registration table can be stored in the table storage service506. The table illustrated inFIG. 15is similar to the table illustrated inFIG. 7A. The browser406of the client computer104registers the replacement information added device registration table beforehand in the table storage service403to identify a service of each individual request reception unit used by each image forming apparatus103.

In addition, information indicating a replacement of the image forming apparatus103is registered in the replacement information added device registration table.

The replacement information added device registration table illustrated inFIG. 15includes a device_id1501(i.e., one of the PartitionKey columns) that represents a unique identifier of each image forming apparatus103connected to the network printing system according to the present exemplary embodiment. The replacement information added device registration table illustrated inFIG. 15further includes a site_id1502(i.e., one of the RowKey columns) that represents an identifier of the individual request reception unit602in the network printing system according to the present exemplary embodiment.

The replacement information added device registration table illustrated inFIG. 15further includes a service_id1503that represents an identifier of each service that can be used by the image forming apparatus103in the network printing system according to the present exemplary embodiment. The items1501to1503are similar to the above-described items701to703described with reference toFIG. 7A.

The replacement information added device registration table illustrated inFIG. 15further includes a replace_device_id1504that represents an identifier of a target image forming apparatus103to be replaced. The replacement information added device registration table illustrated inFIG. 15further includes a replace_model_id1505that represents a model ID of the target image forming apparatus103to be replaced. If an image forming apparatus103is simply added to the network printing system without performing any replacement, data input in the items1504and1505can be omitted.

According to the example illustrated inFIG. 15, each record can be defined by values of respective items1501to1505. For example, in the first row of the replacement information added device registration table, the device_id1501is “dev_a_sr8rIheJmCd6npd”, the site_id1502is “site—0001”, and the service_id1503is “print.” Further, the replace_device_id1504is “dev_old00001” and the replace_model_id is “model_old0001.”

FIG. 16is a flowchart illustrating an example of processing for generating and launching a WorkerRole instance511corresponding to a newly added image forming apparatus103and deleting a WorkerRole instance511to be replaced. The processing to be performed according to the present exemplary embodiment is different from the processing described in the first exemplary embodiment in that the replacement processing is performed after a new WorkerRole instance511is launched. Processing to be performed in step S1601to step S1613is similar to the processing performed in step S1001to step S1013illustrated inFIG. 10.

If the determination result in step S1613is Yes, it indicates that the WorkerRole instance511has already launched. Thus, in step S1614, the individual request reception unit602determines whether there is any replacement information in the replacement information added device registration table described with reference toFIG. 15. If the determination result in step S1614is No, it indicates that there is not any target to be replaced. Thus, the processing proceeds to step S1616, in which the individual request reception unit602transmits the preparation completion screen described with reference toFIG. 14Ato the device browser408of the image forming apparatus103. As a result of the above-described processing, the service becomes usable in the image forming apparatus103.

If the determination result in step S1614is Yes, it is confirmed that there is a WorkerRole instance511to be replaced (i.e., replacement target). Thus, in step S1615, the individual request reception unit602causes the fabric controller503to reduce the number of instances with respect to the WorkerRole instance511. More specifically, in step S1615, the individual request reception unit602reads the setting file of the back-end processing unit402to be replaced, via the fabric controller503, and decreases the value of the setting item “Instances_Count” in decrements of one.

Further, in a case where the previous value of the setting item “Instances_Count” is “1”, the individual request reception unit602requests the fabric controller503to deactivate the corresponding back-end processing unit402. After the deletion processing in step S1615is completed, the processing proceeds to step S1616.

Through the above-described processing, in the present exemplary embodiment, the back-end processing unit402can be automatically generated and launched even when the image forming apparatus103that constitutes the network printing system is replaced. Therefore, the present exemplary embodiment can reduce the time and labor required before the network printing system becomes available, and can improve the easiness in installation.

In a third exemplary embodiment, the network printing system deregisters the image forming apparatus103and deletes a corresponding WorkerRole instance511of the back-end processing unit402.

FIG. 17Aillustrates an example of a deregistration screen that can be displayed on the device browser408of the image forming apparatus103. The deregistration screen illustrated inFIG. 17Aincludes a field1701of a message that requests a user to select a service to be deregistered. The deregistration screen illustrated inFIG. 17Afurther includes a drop-down list1702that can display currently available services relating to the image forming apparatus103, which are registered in the network printing system. The drop-down list1702enables a user to select a service to be deregistered.

The deregistration screen illustrated inFIG. 17Afurther includes a button1703that can be displayed on the device browser408of the image forming apparatus103. If a user operation on the button1703is accepted, the device browser408transmits a deregistration request to the initial request reception unit601.

FIG. 17Billustrates an example of a deregistration completion screen that can be displayed on the device browser408of the image forming apparatus103. The deregistration completion screen illustrated inFIG. 17Bincludes a field1711of a message that notifies a user of completion of the service deregistration. The deregistration completion screen illustrated inFIG. 17Bfurther includes a label1712that represents a deregistration completed service. A button1713can be displayed on the device browser408of the image forming apparatus103. If a user operation is accepted, the device browser408goes back to the previous screen.

Subsequent processing is described below with reference toFIG. 18.FIG. 18is a flowchart illustrating an example of processing for deleting and deregistering a corresponding WorkerRole instance511of the back-end processing unit402in response to a service deregistration request received from the image forming apparatus103.

In step S1801, the device browser408of the image forming apparatus103transmits the deregistration request to the initial request reception unit601according to the deregistration screen described with reference toFIG. 17A. The deregistration request includes a device ID and a model ID of the image forming apparatus103together with the service ID selected in the drop-down list1702illustrated inFIG. 17A. The deregistration request is an example of a disconnection request.

In step S1802, the initial request reception unit601receives the deregistration request transmitted in step S1801.

In step S1803, the initial request reception unit601acquires a record that coincides with the device ID and the service ID received in step S1802from the device registration table described with reference toFIG. 7A. Further, the initial request reception unit601acquires URI of the corresponding individual request reception unit602from the individual request reception unit management table described with reference toFIG. 7B. Further, the initial request reception unit601again transmits the deregistration request to the individual request reception unit602corresponding to the acquired URI.

In step S1804, the individual request reception unit602receives the deregistration request transmitted in step S1803.

In step S1805, the individual request reception unit602transmits a deregistration-in-progress message, via the initial request reception unit601, to the device browser408of the image forming apparatus103. Through the above-described processing, a message informing that the deregistration processing is currently in progress can be displayed on the screen described with reference toFIG. 17A.

In step S1806, the individual request reception unit602identifies a coincident back-end processing unit402from the service instance management table described with reference toFIG. 7Cbased on the model ID and the service ID included in the deregistration request received in step S1804. Further, the individual request reception unit602causes the fabric controller503to decrease the number of instances in decrements of one with respect to the coincident back-end processing unit.

More specifically, the individual request reception unit602causes the fabric controller503to decrease the setting value of the number of instances in decrements of one with respect to the WorkerRole instance511, in the setting file of the back-end processing unit402described with reference toFIG. 11B. The fabric controller503stores the updated setting value.

In step S1807, the individual request reception unit602causes the fabric controller503to deactivate the WorkerRole instance511of the back-end processing unit402whose setting has been changed in step S1806.

In step S1808, the individual request reception unit602causes the fabric controller503to wait for the deactivation of the WorkerRole instance511of the back-end processing unit402that has been instructed to be deactivated in step S1807.

In step S1809, the individual request reception unit602causes the fabric controller503to determine whether the deactivation of the WorkerRole instance511of the back-end processing unit402has been completed.

If the determination result in step S1809is No, the processing returns to step S1808. The individual request reception unit602further waits for the termination of the WorkerRole instance511of the back-end processing unit402. If the determination result in step S1809is Yes, the individual request reception unit602determines that deletion of the WorkerRole instance511of the back-end processing unit402has been completed. Thus, the processing proceeds to step S1810.

In step S1810, the individual request reception unit602transmits a message informing deletion completion and deregistration completion with respect to the WorkerRole instance511of the back-end processing unit402, via the initial request reception unit601, to the device browser408of the image forming apparatus103.

In step S1811, the device browser408of the image forming apparatus103receives the deregistration completion message transmitted in step S1810.

In step S1812, the device browser408of the image forming apparatus103displays the deregistration completion screen described with reference toFIG. 17B.

In step S1813, the individual request reception unit602transmits the device ID and the service ID included in the deregistration request received in step S1804to the initial request reception unit601. The individual request reception unit602requests the initial request reception unit601to update the device registration table described with reference toFIG. 7A.

In step S1814, the initial request reception unit601receives the device ID and the service ID transmitted in step S1813, and identifies a record that coincides with the device registration table described with reference toFIG. 7A. Then, the initial request reception unit601deletes a service ID that coincides with the received service ID from the column of the service_id703. Then, the initial request reception unit601stores the updated information.

Through the above-described processing, in the present exemplary embodiment, the back-end processing unit402can be automatically deleted even when the image forming apparatus103is deregistered from the network printing system. Therefore, the present exemplary embodiment can reduce the time and labor required in management, and can improve the easiness in maintenance.

In a fourth exemplary embodiment, the network printing system uses a license management server to perform the service registration confirmation processing performed in step S1003, which has been described in the first exemplary embodiment.

The network printing system according to the present exemplary embodiment additionally includes the license management server. The license management server has an internal configuration similar to that of the information processing apparatus described with reference toFIG. 3. The license management server has a table similar to the device registration table described with reference toFIG. 7A.

In the present exemplary embodiment, the initial request reception unit601causes the license management server to execute processing for confirming whether registration of the image forming apparatus103is completed.

More specifically, the initial request reception unit601receives a device ID transmitted from the image forming apparatus103. Subsequently, the initial request reception unit601causes the license management server to confirm whether the received device ID is already registered. For example, to realize the confirmation processing, the initial request reception unit601can transmit the device ID to the license management server via a web service and receive a response indicating a confirmed registration result.

Subsequently, if the initial request reception unit601determines that the registration is not yet completed based on the result returned from the license management server, the initial request reception unit601transmits the unregistration notification screen to the device browser408of the image forming apparatus103. If the initial request reception unit601determines that the registration is already completed, the processing proceeds to step S1005and subsequent steps illustrated inFIG. 10.

Through the above-described processing, in the present exemplary embodiment, the back-end processing unit402can be automatically generated and launched by using the license management server when an image forming apparatus103is newly added to the network printing system. Therefore, the present exemplary embodiment can reduce the time and labor required before the network printing system becomes available, and can improve the easiness in installation.

In a fifth exemplary embodiment, an alternative back-end processing unit is temporarily used until the image forming apparatus103is connected to the network printing system and the individual request reception unit602completes generation and launching of a corresponding WorkerRole instance511of the back-end processing unit402. The alternative back-end processing unit according to the fifth exemplary embodiment is usable, for example, in a case where there is any other type (model) of image forming apparatus103that can provide a similar or comparable service.

FIG. 19illustrates an example of an alternative service management table that can be used when an alternative back-end processing unit is temporarily used. The alternative service management table can be stored in the table storage service506. The alternative service management table can be held by each individual request reception unit602.

The alternative service management table illustrated inFIG. 19includes a model_id2101(i.e., one of the PartitionKey columns) that represents a model ID of the WorkerRole instance511corresponding to a newly added image forming apparatus103whose launching processing is not yet completed. The alternative service management table illustrated inFIG. 19further includes a service_id2102(i.e., one the RowKey columns) that represents a service ID of the WorkerRole instance511corresponding to the newly added image forming apparatus103whose launching processing is not yet completed. The alternative service management table illustrated inFIG. 19further includes an alt_model2103that represents an alternative model_id of the model_id2101.

FIG. 20is a flowchart illustrating an example of processing for generating and launching a WorkerRole instance511corresponding to a newly added image forming apparatus103and temporarily using an alternative WorkerRole instance511until the launching processing is completed. Processing to be performed in steps S2201to S2209is similar to the processing performed in steps S1001to S1009illustrated inFIG. 10.

If the determination result in step S2208is No, the processing proceeds to step S2210. In step S2210, the individual request reception unit602notifies the image forming apparatus103of the presence of an alternative back-end processing unit402. More specifically, the individual request reception unit602transmits the screen illustrated inFIG. 14Ato the device browser408of the image forming apparatus103, and notifies a current situation with a message “an alternative service is usable.”

Subsequently, until launching of the WorkerRole instance511is completed, a service having the service_id2102identified by the alternative model ID (alt_model2103) corresponding to the model_id2101illustrated inFIG. 19becomes usable. In the present exemplary embodiment, the alternative back-end processing unit402is an example of an alternative instance.

Processing to be performed in step S2211to2214is similar to the processing performed in steps S1010to S1013described with reference toFIG. 10.

In step S2215, based on the fact that the WorkerRole instance511has been launched, the individual request reception unit602transmits the preparation completion screen described with reference toFIG. 14Ato the device browser408of the image forming apparatus103. Then, the individual request reception unit602notifies a current situation with a message “the service is usable.” Subsequently, the image forming apparatus103can use a registration completed service that corresponds to the model_id721and the service_id722described with reference toFIG. 7C.

Through the above-described processing, in the present exemplary embodiment, the alternative service is available until the back-end processing unit is automatically generated and launched when an image forming apparatus103is newly added to the network printing system. Accordingly, the present exemplary embodiment can reduce a waiting time required before the network printing system becomes usable, and therefore can improve the convenience.

Further, embodiments can be realized by executing the following processing. More specifically, example processing includes supplying a software program capable of realizing functions according to the above-described exemplary embodiments via a network or an appropriate storage medium to a system or an apparatus, and causing a computer (or CPU or micro-processing unit (MPU)) of the system or the apparatus to read and execute the supplied program.

Each of the above-described exemplary embodiments can reduce the time and labor required before a device newly added to a cloud computing system becomes available and can improve the easiness in installing the device.

The present invention is not limited to the above-described exemplary embodiments. Each of the above-described exemplary embodiments can be modified and changed appropriately in various ways within the scope of the present invention defined by the following claims.

For example, in the above-described present exemplary embodiments, the image forming apparatus has been described as an example of the device added to the cloud computing system. However, the device added to the cloud computing system is not limited to the image forming apparatus.

Aspects of the embodiments can also be realized by a computer of a system or apparatus (or devices such as a CPU or MPU) that reads out and executes a program recorded on a memory device to perform the functions of the above-described embodiments, and by a method, the steps of which are performed by a computer of a system or apparatus by, for example, reading out and executing a program recorded on a memory device to perform the functions of the above-described embodiments. For this purpose, the program is provided to the computer for example via a network or from a recording medium of various types serving as the memory device (e.g., computer-readable medium). In such a case, the system or apparatus, and the recording medium where the program is stored, are included as being within the scope of the present invention. In an example, a computer-readable medium may store a program that causes a device, computer server, and/or a cloud computing system to perform a method described herein. In another example, a central processing unit (CPU) may be configured to control at least one unit utilized in a method or apparatus described herein.

This application claims priority from Japanese Patent Application No. 2010-121962 filed May 27, 2010, which is hereby incorporated by reference herein in its entirety.