Service delivery system and service delivery method
The service provision system addresses conflicting attribute data updates by using priority information to synchronize devices, ensuring consistent data across systems.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- FUJIFILM BUSINESS INNOVATION CORP
- Filing Date
- 2022-07-01
- Publication Date
- 2026-07-22
AI Technical Summary
When different devices individually holding the same attribute data receive conflicting changes, it is unclear which device's changes should take priority for updating the attribute data.
A service provision system that includes first and second attribute data, with priority information to determine which data to update, and synchronizes these data via connections, ensuring consistent updates based on predefined settings and timing.
The system effectively resolves conflicts by determining the preferred attribute data for synchronization, allowing devices to maintain consistent attribute data even with simultaneous changes.
Smart Images

Figure 0007893069000001 
Figure 0007893069000002 
Figure 0007893069000003
Abstract
Description
Technical Field
[0001] This disclosure relates to a service providing system , and service provision methods and is related to it.
Background Art
[0002] Patent Document 1 discloses a system including a plurality of client terminals and a reception service system that receives data from the plurality of client terminals. The reception service system includes reception means for receiving data from the plurality of client terminals, and first transmission means for transmitting a first transmission rule to a predetermined client terminal among the plurality of client terminals when a data amount exceeding a predetermined value is transmitted from the predetermined client terminal per unit time. Each of the plurality of client terminals includes second transmission means for transmitting data related to an event occurring in the client terminal to the reception means, and holding means for holding the first transmission rule transmitted by the first transmission means. The second transmission means does not transmit at least a part of the data related to the event occurring in the client terminal to the reception means so that the data amount transmitted per unit time becomes not more than a predetermined value according to the held first transmission rule.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] When different devices, each individually holding the same attribute data, accept changes to that attribute data, if the attribute data is changed in one device, the attribute data in the other device is synchronized so that it matches the attribute data updated in the other device.
[0005] However, if different settings are applied to the same attribute data at the same time in each device, it can be unclear which device's changes should take priority and be reflected in the attribute data held by each device.
[0006] This disclosure aims to provide a service provision system that can determine which device's changes should be used to update the attribute data held by each device, even if each device, which individually holds the same attribute data, receives different settings for the same attribute data at the same time. [Means for solving the problem]
[0007] The service provision system according to the first embodiment has first attribute data including status information about the device and setting information about the functions provided by the device, and when it receives a change instruction from a user for the first attribute data, it updates the first attribute data to the content instructed by the change instruction, and the first device synchronizes with a second device having second attribute data corresponding to the first attribute data via a first connection so that the content of the second attribute data becomes the same as the content of the updated first attribute data, and when it receives a change instruction from a user for the second attribute data, it updates the second attribute data to the content instructed by the change instruction, and the first device, The system includes a second device that synchronizes via a first connection so that the content of the first attribute data is the same as the content of the updated second attribute data, and if the content of the first attribute data and the second attribute data updated by the change instruction received by the first device or the second device before synchronization are different, the system identifies the preferred attribute data by referring to priority information that defines which of the first attribute data and the second attribute data takes precedence, and the first device and the second device synchronize via the first connection so that both the first attribute data and the second attribute data are updated to the content of the preferred attribute data.
[0008] The service provision system according to the second embodiment is information that defines, for each attribute data, a first setting that prioritizes the first attribute data, a second setting that prioritizes the second attribute data, a third setting that prioritizes the attribute data whose change instruction was received earlier, a fourth setting that prioritizes the attribute data whose change instruction was received later, a fifth setting that prohibits updating using the first attribute data, or a sixth setting that prohibits updating using the second attribute data.
[0009] In the service provision system according to the third embodiment, the fifth setting is defined for attribute data relating to the network to which the first device is connected, and the sixth setting is defined for attribute data relating to the hardware configuration of the first device, in the service provision system according to the second embodiment.
[0010] In the service provision system according to the fourth embodiment, the first device and the second device synchronize the first attribute data and the second attribute data during synchronization periods that are started at predetermined intervals.
[0011] In the fifth aspect of the service provision system, if the first device and the second device are unable to synchronize the first attribute data and the second attribute data during the synchronization period, they will not attempt to synchronize the first attribute data and the second attribute data again during the synchronization period in which the synchronization failed, but will instead synchronize the first attribute data and the second attribute data during the next synchronization period.
[0012] In the sixth aspect of the service provision system, the first and second devices adjust the synchronization timing of the first attribute data and the second attribute data by referring to update information that specifies the timing of synchronization for each attribute data.
[0013] The service provision system according to the seventh embodiment is a service provision system according to the first embodiment, wherein the first device is connected by a second connection to a service component on a network that receives execution instructions for the functions provided by the first device, and includes a cooperation unit that cooperates with the second device, and the first device and the second device acquire the first attribute data or the second attribute data through the second connection with respect to attribute data of a predetermined type, and synchronize the first attribute data and the second attribute data.
[0014] In the service provision system relating to the eighth aspect, the attribute data of the predetermined type is attribute data whose data size is equal to or greater than the specified size, as described in the service provision system relating to the seventh aspect.
[0015] In the service provision system according to the ninth embodiment, the first device transmits the first attribute data to the second device through the second connection before updating the first attribute data to the content instructed by the change instruction, and updates the first attribute data if the determination result for the first attribute data received from the second device through the first connection in conjunction with the synchronization performed between the first device and the second device is that the update is permitted.
[0016] In the service provision system according to the tenth embodiment, the first device transmits the first attribute data to the second device through the second connection, and updates the first attribute data based on the setting information for the first attribute data received from the second device through the first connection.
[0017] In the service provision system according to the 11th embodiment, in the service provision system according to the 7th embodiment, the first device and the second device synchronize the first attribute data and the second attribute data through the first connection when the contents of the first attribute data and the second attribute data differ for attributes whose update priority is lower than a predetermined standard, and synchronize the first attribute data and the second attribute data through the second connection when the contents of the first attribute data and the second attribute data differ for attributes whose update priority is equal to or higher than the predetermined standard. [Effects of the Invention]
[0018] According to the first embodiment, even if each device, which individually holds the same attribute data, receives different settings for the same attribute data at the same time, it is possible to determine which device's changes should be used to update the attribute data held by each device.
[0019] According to the second embodiment, the user can set which attribute data will take precedence in the event of a conflict.
[0020] According to the third aspect, there is an effect that even if the user does not set priority information, priority attribute data can be automatically set according to the type of attribute data.
[0021] According to the fourth aspect, there is an effect that even if the synchronization between the first attribute data and the second attribute data fails, synchronization can be performed in another synchronization period.
[0022] According to the fifth aspect, there is an effect that it is possible to prevent a situation where the synchronization process is not completed by the start of the next synchronization period due to a retry of synchronization.
[0023] According to the sixth aspect, there is an effect that the synchronization between the first attribute data and the second attribute data can be performed at a timing according to the characteristics of the attribute data. [[ID=According to the 11th embodiment, the higher the priority of the attribute, the shorter the time required for synchronization. [Brief explanation of the drawing]
[0029] [Figure 1] This figure shows an example of the system configuration of a service provision system. [Figure 2] This figure shows examples of the functional configurations of the shadow component and the image forming apparatus. [Figure 3] This is a diagram showing an example of an RD configuration. [Figure 4] This figure shows an example of the main components of the electrical system of a computer that makes up an SC (Screen Control Unit). [Figure 5] This figure shows an example of the main components of the electrical system of an image forming apparatus. [Figure 6] This flowchart shows an example of the synchronization process performed by the CPU of the image forming apparatus and the CPU of the computer that constitutes the SC when a neighboring user updates an attribute value. [Figure 7] This sequence diagram shows an example of the data flow within a RD when a neighboring user updates an attribute value. [Figure 8] This flowchart shows an example of the synchronization process flow performed by the CPU of the image forming apparatus and the CPU of the computer that constitutes the SC when a remote user updates an attribute value. [Figure 9] This figure shows an example of a conflict occurring. [Figure 10] This flowchart shows an example of the synchronization process flow performed by the CPU of the image forming apparatus and the CPU of the computer that constitutes the SC when a conflict occurs. [Figure 11A] This sequence diagram shows an example of the initial data flow within a RD when a conflict occurs. [Figure 11B] This sequence diagram shows an example of the data flow in the latter half of a RD when a conflict occurs. [Figure 12] This figure shows an example of a priority list. [Figure 13] This diagram shows examples of update priority categories. [Figure 14] This flowchart shows an example of the flow of setting processes executed by the CPU of the image forming apparatus and the CPU of the computer that constitutes the SC when a remote user sets attribute values. [Figure 15] This sequence diagram shows an example of the data flow in a remote user-initiated configuration process. [Figure 16] This flowchart shows an example of the flow of setting processes executed by the CPU of the image forming apparatus and the CPU of the computer that makes up the SC when a neighboring user sets attribute values. [Figure 17] This sequence diagram shows an example of the data flow in a configuration process initiated by a nearby user. [Figure 18] This sequence diagram shows an example of the data flow when executing a print function using a print service. [Modes for carrying out the invention]
[0030] The embodiments of this disclosure will be described below with reference to the drawings. The same reference numerals are used throughout the drawings for the same components and processes, and redundant explanations are omitted.
[0031] Figure 1 is a diagram showing an example of the system configuration of the service provision system 1 according to this embodiment. As shown in Figure 1, the service provision system 1 is a system that includes a user terminal 10, a shadow component 20, and an image forming apparatus 30, and provides a service to the user using the image forming apparatus 30.
[0032] User terminal 10 is, for example, an information device located at location A, and is operated by a user utilizing service provision system 1. Specifically, user terminal 10 is an information device equipped with data input / output functions, data processing functions, and communication functions, such as a computer, smartphone, tablet device, or wearable device. User terminal 10 may be either a portable information device whose usage location changes, or a fixed information device whose usage location is predetermined.
[0033] An example of the first apparatus relating to this disclosure, the image forming apparatus 30, is an apparatus that performs image-related data processing according to user instructions. Image-related data processing includes, for example, a scanning function that reads the contents written on paper media such as documents as image data, a copying function that reproduces the contents of the image data of the document acquired by the scanning function as an image on paper media, and a printing function that forms an image on paper media based on image data specified in advance by the user.
[0034] The image forming apparatus 30 maintains attribute data regarding various functions it possesses. Attribute data is a collection of attributes that represent the state of the image forming apparatus 30 and the settings that define the operation of the image forming apparatus 30, and attributes are represented by a combination of attribute items and values. An attribute item is an identifier used to identify what value of the image forming apparatus 30 it represents, such as an IP address or the remaining amount of paper stored in the image forming apparatus 20. In other words, the "attribute" in this disclosure refers to any one combination of attribute items and values.
[0035] The image forming apparatus 30 is installed in a remote location (for example, the workplace; shown as "Location B" in the example in Figure 1) that is different from location A (for example, the user's home) where the user operates the user terminal 10.
[0036] Therefore, when a user at location B (hereinafter referred to as a "nearby user") uses a service utilizing the image forming apparatus 30, the nearby user can give instructions to the image forming apparatus 30 by touching and operating the control panel of the image forming apparatus 30. However, when a user at location A (hereinafter referred to as a "remote user") uses a service utilizing the image forming apparatus 30, it is not practical for the remote user to travel to location B and operate the image forming apparatus 30.
[0037] Therefore, a shadow component 20 is provided on the internet 2, which is an example of a network, so that remote users can use the image forming apparatus 30 from location A. Hereafter, remote users and nearby users may be collectively referred to as "users".
[0038] The shadow component 20 is a server built using a cloud service provided over the Internet 2, for example, and is connected to the user terminal 10 via a communication line 3. It is also connected to the image forming apparatus 30 via a communication line 3, through a firewall 4 that accommodates the LAN (Local Area Network) 5 connected to the image forming apparatus 30.
[0039] These shadow components 20 include metadata 24 that holds status information of the image forming apparatus 30, as well as attribute data of the image forming apparatus 30, such as the apparatus configuration of the image forming apparatus 30 and setting values that define the operation of the image forming apparatus 30. The metadata 24 is a dataset containing attribute data.
[0040] In other words, the shadow component 20 holds the same attribute data as the image forming apparatus 30 installed at location B as metadata 24.
[0041] Therefore, a remote user can virtually operate the image forming apparatus 30 installed at location B by issuing instructions to the shadow component 20 from the user terminal 10 and confirming the response from the shadow component 20 to the instructions via the user terminal 10.
[0042] Attribute data is data represented by a combination of attribute items and values, and attribute data including the state information and setting information of the image forming apparatus 30 is an example of first attribute data. On the other hand, metadata 24 managed by the shadow component 20 is an example of second attribute data, and is synchronization data performed with the first attribute data, which is the attribute data of the image forming apparatus 30.
[0043] Furthermore, there are no restrictions on the connection configuration of communication line 3 and LAN 5 in the service provision system 1; it may be wired, wireless, or a combination of wired and wireless connections. Also, communication line 3 may be, for example, a dedicated line or a VPN (Virtual Private Network) line.
[0044] Furthermore, in order to prevent the image forming apparatus 30 from receiving unauthorized access from the Internet 2, the firewall 4 is configured to not accept any data from the Internet 2 other than responses to requests sent from the image forming apparatus 30.
[0045] Figure 2 shows examples of the functional configurations of the shadow component 20 (hereinafter referred to as "SC20") and the image forming apparatus 30, which are implemented using cloud services, as well as examples of cooperation between functional blocks.
[0046] The cloud service is provided with a cloud service interface (IF) 6, which first receives instructions from remote users transmitted through the user terminal 10, converts the received instructions into the instruction format used by the shadow component 20, and then forwards them to the shadow component 20. At the same time, it connects to a service instance 25, described later, that corresponds to the service used by the remote user, and sends the processing status and results of the service to the user terminal 10. In other words, the cloud service interface 6 functions as an interface connecting the user terminal 10 and SC20.
[0047] Thus, when a remote user wishes to use the functions provided in the image forming apparatus 30, the interface specifications of the SC20 can be kept confidential by connecting the user terminal 10 to the cloud service IF6 instead of directly to the SC20. If an employee of the developer of the image forming apparatus 30 uses the service provision system 1 as a remote user, the user terminal 10 may be connected directly to the SC20 without going through the cloud service IF6.
[0048] SC20 includes, for example, services 21, digital shadow (DS) 22, and RD (Real Device) management 23, and DS22 further includes metadata 24.
[0049] Service 21 is a component that contains design information defining the functions of the image forming apparatus 30. If the image forming apparatus 30 has multiple functions, such as a scanning function, a printing function, and an attribute setting function, there is a Service 21 corresponding to each function. Hereafter, when describing services 21 separately, they will be expressed as "Service A" and "Service B" without adding the code "21" to the end.
[0050] DS22 is a component that works in conjunction with Service 21 and RD Management 23 to perform processing according to the requested instructions.
[0051] RD Management 23 is a component that verifies the authenticity of RD32. RD32 is the interface between the image forming apparatus 30 and DS22 when SC20 works with the image forming apparatus 30 to provide the functions provided in the image forming apparatus 30 as service 21 to a user who has requested the service. RD Management 23 determines whether the connected image forming apparatus 30 is a pre-registered, legitimate image forming apparatus 30. If the connected image forming apparatus 30 is not a legitimate image forming apparatus 30, RD Management 23 prevents the connection between SC20 and the image forming apparatus 30, thereby improving the security performance of the service provision system 1.
[0052] The metadata 24 managed by DS22 is a collection of attribute items and values that are synchronized between SC20 and the image forming apparatus 30. Synchronization of attribute data is the process of mutually notifying each other of the values of attribute items so that even if the value of an attribute item is updated in at least one of SC20 and the image forming apparatus 30, the attribute item will maintain the same value. The metadata 24 contains the values of attribute items that have been designated in advance as targets for synchronization (hereinafter referred to as "synchronized attribute items") from the attribute data of the image forming apparatus 30. The value of an attribute item is the value associated with the attribute item, and the value of an attribute item can include numbers and strings. The attribute items to be synchronized may include all attribute items included in the attribute data, or they may be predetermined attribute items. They may also include attribute items whose values have been changed during a predetermined period or newly set attribute items.
[0053] A service instance 25 is a component that represents the actual service 21, is associated with each service 21, and is deployed on the cloud service. Specifically, a service instance 25 is a component that has an interface to receive instructions regarding the functions of the image forming apparatus 30 and executes processing according to the design information defined in service 21.
[0054] In Figure 2, the service instance 25 representing the entity of service A is called service A instance 25, and the service instance 25 representing the entity of service B is called service B instance 25. Note that "service instance 25" is a general term for the components representing the entities of service 21, used when it is not necessary to explain each separately, such as service A instance 25 and service B instance 25. In the example in Figure 2, only the connection between cloud service IF6 and service B instance 25 is shown, but cloud service IF6 and service A instance 25 may also be connected as needed.
[0055] Thus, since the service instance 25 is a component that actually performs the functions defined by the associated service 21, and the service 21 and the service instance 25 are closely linked, the service 21 and the service instance 25 are sometimes simply referred to as "service 21" together, to the extent that it does not cause misunderstanding in the explanation. Therefore, service 21, which performs the functions of the image forming apparatus 30 on a cloud service, is an example of a service component.
[0056] On the other hand, the image forming apparatus 30 associated with SC20 includes, for example, an agent 31, an RD 32, and a system 33.
[0057] Agent 31 is a component that provides the functions of the image forming apparatus 30 to external parties, and more specifically, it is a component that works in conjunction with the service instance 25 to provide functions to the user. Agent 31 and the service instance 25 are associated with each type of function.
[0058] For example, a service A instance 25 that provides function A defined by service A is associated with agent A that provides function A, and a service B instance 25 that provides function B defined by service B is associated with agent B that provides function B. In other words, from the perspective of service instance 25, agent 31 can be considered a client that processes function execution requests received by service 21 in cooperation with service 21. Therefore, agent 31 is an example of a cooperation unit.
[0059] As an example, we will describe the service 21 as having pre-existing agent identification information to uniquely identify the agent 31 that performs the function associated with the service 21, but the method of managing agent identification information is not limited to this. For example, the service 21 may only have information indicating the type of function it performs, and the DS22 may associate agent identification information based on this type of information.
[0060] As shown above, when describing Agent 31 separately for each function, it is expressed as "Agent A" and "Agent B" without adding the code "31" to the end.
[0061] As previously explained, RD32 functions as an interface with DS22 when SC20 cooperates with the image forming apparatus 30 to provide the functions provided by the image forming apparatus 30 to the user as a service 21. Specifically, RD32 functions as an interface for synchronizing attribute data with SC20 and also ensures the authenticity of the image forming apparatus 30. For this reason, RD32 is connected to DS22 and RD management 23 of SC20, respectively, and is connected to the respective agents 31 and system 33 within the image forming apparatus 30.
[0062] System 33 manages all attribute items in the image forming apparatus 30, refers to the attribute items it manages, and controls the execution of functions provided by the image forming apparatus 30 in cooperation with each agent 31 and RD32.
[0063] Next, the configuration of RD32 will be described. Figure 3 shows an example of the RD32 configuration. RD32 includes an internal RD301, an authenticity unit 302, a term generation unit 303, an arbiter 304, a timer 305, a resource 306, a connector 307, an HTTP client 308, a key manager 309, a TPM (Trusted Platform Module) driver 310, and a core service IF311.
[0064] The internal RD301 works in conjunction with the term generation unit 303, arbiter 304, and connector 307 to perform attribute data synchronization processing.
[0065] The term generation unit 303 controls the start timing of the synchronization period for synchronizing attribute data with SC20, and manages information regarding each attribute data to be synchronized with SC20, as well as information regarding attribute items updated by a nearby user operating the image forming apparatus 30.
[0066] Therefore, the term generation unit 303 includes a synchronization attribute list 312 and upstream updates 313.
[0067] The synchronization attribute list 312 is a list that defines the attribute items to be synchronized among the attribute items included in the image forming apparatus 30. The upstream updates 313 is a buffer for temporarily storing information about attribute items updated by a neighboring user operating the image forming apparatus 30 until the attribute data is synchronized with the SC20.
[0068] A timer 305 is connected to the term generation unit 303, and the timer 305 notifies the term generation unit 303 of a timeout every predetermined period of time. The term generation unit 303 starts synchronizing attribute data triggered by the timeout notification from the timer 305. In addition, a resource 306 is connected to the term generation unit 303, which associates the current value with each attribute item in the image forming apparatus 30. The resource 306 updates the value of the attribute item for which a change instruction has been issued.
[0069] Meanwhile, Arbiter 304 verifies whether the values of the attribute items for which a change has been requested conform to predetermined rules. For this reason, Arbiter 304 includes validator 314 and downstream updates 315.
[0070] The validator314 evaluates the validity of the value of the attribute item for which a change has been requested, determining whether the value falls within a predetermined normal range.
[0071] Downstream updates315 is a buffer for temporarily storing information about updated attribute items until SC20 and the attribute data are synchronized.
[0072] Resource 306 is connected to Arbiter 304, and Arbiter 304 accesses Resource 306 to update the values of the attribute items for which a change has been requested.
[0073] Furthermore, the internal RD301 is connected to the connector 307 to synchronize attribute data with the SC20. The connector 307 encodes the data to be sent from the image forming apparatus 30 to the SC20 (for example, notification data that notifies the DS22 of the start of the synchronization period) into data in a format such as JSON, and sends the encoded data to the DS22 as an HTTP request via the HTTP client 308.
[0074] Conversely, the HTTP client 308 receives the data sent by DS22 as a response to the aforementioned HTTP request to DS22 and forwards it to the internal RD301.
[0075] Furthermore, the RD32 uses the authenticity authentication unit 302 to manage whether the connected SC20 is a genuine SC20.
[0076] Therefore, the authenticity authentication unit 302 is connected to a key manager 309 and a connector 307. The key manager 309 generates a key pair, the TPM driver 310 holds the generated key pair, and one of the generated keys is sent to the RD management 23 via the connector 307. If the key received from the image forming apparatus 30 matches a key that has been registered in advance, the RD management 23 determines that the connected image forming apparatus 30 is a legitimate image forming apparatus 30 and sends a token to the authenticity authentication unit 302.
[0077] From this point forward, each piece of data transmitted and received between SC20 and the image forming apparatus 30 is accompanied by a token notified to the authenticity authentication unit 302 by RD management 23. The token attached to the data allows SC20 and the image forming apparatus 30 to mutually determine whether the data sender is a legitimate party that has been previously authenticated.
[0078] Furthermore, each agent 31 and RD32 are connected to each other via the core service IF311.
[0079] The SC20 and image forming apparatus 30 described above can be configured using computers 40 and 50, respectively.
[0080] Figure 4 shows an example of the main components of the electrical system of the computer 40 that makes up SC20.
[0081] Computer 40, an example of a second device, includes a CPU (Central Processing Unit) 41, an example of a processor responsible for processing each component of the SC20 shown in Figure 2; a ROM (Read Only Memory) 42 that stores the startup program (Basic Input Output System: BIOS) that performs the startup process of computer 40; a RAM (Random Access Memory) 43 used as a temporary workspace for the CPU 41; a non-volatile memory 44; and an input / output interface (I / O) 45. The CPU 41, ROM 42, RAM 43, non-volatile memory 44, and I / O 45 are connected to each other via a bus 46.
[0082] Non-volatile memory 44 is an example of a storage device that maintains stored information even when the power supplied to it is cut off. For example, semiconductor memory is used, but a hard disk may also be used. For example, data that needs to be retained even when the power to the computer 40 is cut off, such as metadata 24, is stored in the non-volatile memory 44. Therefore, the non-volatile memory 44 stores, for example, an information processing program that enables the computer 40 to function as SC20.
[0083] For example, a communication unit 11, an input unit 12, and a display unit 13 are connected to I / O 45.
[0084] The communication unit 11 is connected to the communication line 3 and is equipped with a communication protocol for exchanging data with the user terminal 10 and the image forming apparatus 30.
[0085] The input unit 12 is a unit that receives operations from an administrator managing the cloud service and notifies the CPU 41, and includes, for example, buttons, touch panels, keyboards, mice, and pointing devices.
[0086] The display unit 13 is an example of a unit that visually displays information processed by the CPU 41, and includes, for example, a liquid crystal display and an organic EL (Electro-Luminescence) display.
[0087] On the other hand, Figure 5 shows an example of the main components of the electrical system of the image forming apparatus 30 configured using the computer 50.
[0088] The computer 50 includes a CPU 51, which is an example of a processor that executes the processing of each component of the image forming apparatus 30 shown in Figure 2 and controls the system 33; a ROM 52 that stores the BIOS for the startup process of the computer 50; a RAM 53 used as a temporary workspace for the CPU 51; a non-volatile memory 54; and an I / O 55. The CPU 51, ROM 52, RAM 53, non-volatile memory 54, and I / O 55 are connected to each other via a bus 56.
[0089] For example, data that needs to be retained even when the power to the image forming apparatus 30 is cut off, such as the image forming program that makes resource 306 or computer 50 function as the image forming apparatus 30, is stored in the non-volatile memory 54.
[0090] For example, the communication unit 11, input unit 12, display unit 13, scan unit 14, and image forming unit 15 are connected to I / O 55.
[0091] The scanning unit 14 is a unit that reads the contents of a document transported on a transport document reading glass (not shown) using an optical reading device (not shown) and converts it into image data.
[0092] The image forming unit 15 is a unit that forms an image represented by image data onto a paper medium using colorants. There are no restrictions on the type of image forming method used in the image forming unit 15; it may be an electrophotographic method or an inkjet method.
[0093] Naturally, the units connected to computer 40 and computer 50 are not limited to those shown in Figures 4 and 5. Any necessary units can be selected and connected to computer 40 and computer 50.
[0094] Next, the synchronization process for attribute data in the service provision system 1 will be explained. Figure 6 is a flowchart showing an example of the synchronization process flow executed by the CPU 51 of the image forming apparatus 30 and the CPU 41 of the computer 40 that constitutes SC20 when a nearby user operates the input unit 12 of the image forming apparatus 30 and issues a change instruction to update the value of an attribute item to be synchronized.
[0095] The image forming program for the image forming apparatus 30, which defines the synchronization process, is pre-stored in, for example, the non-volatile memory 54 of the image forming apparatus 30. The CPU 51 of the image forming apparatus 30 reads the image forming program stored in the non-volatile memory 54 and executes the synchronization process. The image forming program is an example of an apparatus program that performs the functions of the image forming apparatus 30.
[0096] Furthermore, the server program of computer 40 that defines the synchronization process is pre-stored, for example, in the non-volatile memory 44 of computer 40. The CPU 41 of computer 40 reads the server program stored in the non-volatile memory 44 and executes the synchronization process.
[0097] It should be assumed that the authenticity of RD32 is guaranteed by SC20 before the synchronization process.
[0098] Here, in order to explain the synchronization process flow shown in Figure 6 more clearly, we will refer to Figure 7. Figure 7 is a sequence diagram showing an example of the data flow inside the RD32 shown in Figure 3 when the synchronization process shown in Figure 6 is executed. The input unit 12 in Figure 7 represents the input unit 12 of the image forming apparatus 30.
[0099] When a nearby user operates the input unit 12 of the image forming apparatus 30 to set the value of the attribute item to be synchronized to a new value (Figure 7: F10), in step S10, resource 306 updates the attribute item whose value has been changed to the new value.
[0100] When resource 306 updates the value of an attribute item, it sends an update notification to term generation unit 303 to inform it that the value of the attribute item has been updated (Figure 7: F20).
[0101] When the term generation unit 303 receives an update notification, it registers that an update has been performed internally (Figure 7: F30), and stores the updated new value, i.e., the setting value and timestamp, associated with the update identification information that uniquely identifies the updated attribute item in the upstream updates 313 (Figure 7: F40).
[0102] The timestamp is an example of time information representing the time when the instruction to change the value of an attribute item was received from the input unit 12, and is associated with each updated attribute item.
[0103] In step S20 of Figure 6, the term generation unit 303 determines whether a term has started. A "term" represents the synchronization period of attribute data between SC20 and the image forming apparatus 30. The term generation unit 303 starts a term triggered by a timeout notification from the timer 305, which times out at predetermined intervals. Therefore, if the term generation unit 303 has not received a timeout notification from the timer 305, it determines that the next term has not yet started and monitors for timeout notifications while repeatedly executing step S20. On the other hand, if the term generation unit 303 receives a timeout notification from the timer 305 (Figure 7: F50), it determines that a term has started (Figure 7: F60) and proceeds to step S30.
[0104] When the term begins, in step S30, the internal RD301 sends a connection request to DS22 in order to connect RD32 and DS22 (Figure 7: F70). Specifically, the connection request from the internal RD301 is notified to the HTTP client 308, and the HTTP client 308 initiates the HTTPS connection (Figure 7: F80).
[0105] In response to this, in step S110, DS22 detects that a connection request has been made from RD32.
[0106] Upon detection of a connection request, in step S40 of Figure 6, the HTTP client 308 and DS22 establish a link by executing a predetermined connection sequence. A "link" is a communication channel established within the communication line 3. Hereafter, the link connecting DS22 and RD32 will be referred to as a "synchronous connection".
[0107] The DS22 recognizes that a term has started when a synchronous connection has been established (Figure 7: F90).
[0108] Meanwhile, after the start of a term, the term generation unit 303 generates update information by referring to the information stored in the upstream updates 313 (Figure 7: F100).
[0109] Update information refers to an example of attribute data that includes the values at the start of the term for each attribute item that has been updated since the start of the previous term, among the attribute items targeted for synchronization. The term generation unit 303 associates a timestamp stored in the upstream updates 313 with each attribute item whose value has been updated. In addition, the term generation unit 303 adds term identification information that uniquely identifies each term and the start time of transmission of the update information to the update information in order to manage which attribute item's value was updated in which term.
[0110] Then, in step S50 of Figure 6, the internal RD301 transmits the generated update information to DS22 (Figure 7: F110). In this case, the update information is encoded by the connector 307 (Figure 7: F120), and the HTTP client 308 performs HTTPS transmission (Figure 7: F130).
[0111] In response to this, in step S120 of Figure 6, DS22 receives update information from RD32.
[0112] In step S130, DS22 updates the values of the metadata 24 corresponding to the attribute items included in the metadata 24 that were notified of updates by the update information received in step S120 (Figure 7: F140). As a result, the values of the synchronized attribute items in SC20 and the image forming apparatus 30 are set to the same values, and an image forming apparatus 30 reflecting the attribute data of the image forming apparatus 30 at the start of the term is created on the cloud service.
[0113] As the attribute data synchronization is completed as described above, in step S140, DS22 sends an update completion message to RD32 indicating that the attribute data synchronization has been completed (Figure 7: F150).
[0114] In response, in step S60 of Figure 6, the HTTP client 308 receives the update completion notification (Figure 7: F160) and notifies the internal RD301 that it has received the update completion notification from DS22.
[0115] When internal RD301 accepts that the update is complete, it deletes the information about the updated attribute items stored in upstream updates313.
[0116] Furthermore, since the synchronization of attribute data is complete, in step S70, the internal RD301 executes term termination processing (Figure 7: F170). Specifically, the internal RD301 requests the disconnection of the synchronization connection, and the disconnection request from the internal RD301 is notified to the HTTP client 308, which then initiates HTTPS disconnection (Figure 7: F180).
[0117] In response to this, in step S150 of Figure 6, DS22 detects that a disconnection request has been made from RD32.
[0118] Upon detection of a disconnection request, in step S80 of Figure 6, the HTTP client 308 and DS22 execute a predetermined disconnection sequence to disconnect the synchronous connection. The internal RD301 and DS22 recognize that the term has ended due to the disconnection of the synchronous connection (Figure 7: F190 and F200). Thus, the synchronization process within one term shown in Figure 6 is completed.
[0119] Furthermore, if the value of at least one attribute item is updated within a term, RD32 will not synchronize the attribute data including the updated attribute item within the currently running term, but will instead synchronize the attribute data including the attribute item updated during the previous term in the next term.
[0120] Furthermore, if attribute data synchronization fails because a synchronous connection could not be established in step S40 of Figure 6 due to a communication failure or other reason, RD32 terminates the synchronization process without executing another connection request within the same term to re-establish the synchronous connection. Therefore, the information of attribute items that could not be synchronized remains in upstream updates313 without being deleted.
[0121] Then, in the next term when the synchronization connection is established, RD32 sends update information for all attribute items that have not yet been synchronized and are still stored in upstream updates313 to DS22, and synchronizes the attribute data between DS22 and RD32.
[0122] Next, we will explain the synchronization process when the value of an attribute item targeted for synchronization is updated in SC20.
[0123] Figure 8 is a flowchart illustrating an example of the synchronization process flow executed by the CPU 51 of the image forming apparatus 30 and the CPU 41 of the computer 40 that constitutes the SC20 when a remote user issues a change instruction from the user terminal 10 to the SC20 to update the value of an attribute item to be synchronized.
[0124] The difference between the synchronization process shown in Figure 8 and the synchronization process shown in Figure 6 is that step S10 is removed from the RD32 process, while step S100 is added to the DS22 process, steps S50 and S60 are replaced by steps S42, S44 and S46, and steps S120 to S140 are replaced by steps S135 and S145.
[0125] Furthermore, the data flow within RD32 during the synchronization process when the value of an attribute item targeted for synchronization in SC20 is updated can be inferred from the sequence diagram shown in Figure 7, so its illustration is omitted here.
[0126] When a remote user operates the user terminal 10 and issues a change instruction to set the value of a synchronized attribute item to a new value, in step S100, DS22 updates the attribute item whose value has been changed to the new value.
[0127] Subsequently, when a term is started in RD32, a synchronous connection is established between DS22 and RD32. Therefore, in step S135, DS22 sends update information for attribute items that have been updated up to the start of the term to DS22. DS22 adds a timestamp to each updated attribute item, and also adds term identification information and the start time of the update information transmission to the update information.
[0128] In response to this, in step S42, RD32 receives update information from DS22.
[0129] In step S44, RD32 updates the value of the attribute item whose update was notified by the update information received in step S42 to the value specified in the update information. As a result, the value of the attribute item updated by SC20 is reflected in the attribute data of the image forming apparatus 30.
[0130] As the synchronization of attribute data is completed as described above, in step S46, RD32 sends a message to DS22 indicating that the update is complete.
[0131] In response to this, in step S145, DS22 receives a notification that the update is complete, and RD32 recognizes that the synchronization of attribute data has been completed.
[0132] Subsequently, as explained in the synchronization process in Figure 6, the synchronization connection is disconnected when RD32 requests to disconnect the synchronization connection, and the synchronization process shown in Figure 8 ends when one term is completed.
[0133] Similar to the processing of RD32, even if DS22 receives a change instruction from the user terminal 10 within a term, it does not synchronize attribute data including attribute items updated by the change instruction within the currently executing term, but rather synchronizes attribute data including attribute items updated during the previous term in the next term.
[0134] Furthermore, if attribute data synchronization fails because a synchronous connection could not be established in step S40 of Figure 8 due to a communication failure or other reasons, DS22 will synchronize the attribute data in the next term. Therefore, DS22 will retain the information of the updated attribute items that could not be synchronized without deleting them, and will delete them after receiving confirmation of update completion in step S145.
[0135] Next, we will explain the synchronization process when the values of the attribute items to be synchronized are updated in both the SC20 and the image forming apparatus 30.
[0136] Because remote users and nearby users can individually update the values of attribute items, different values may be set for the same attribute item. This situation, where the content of the attribute item change instructions received by the SC20 and the image forming apparatus 30 for the same attribute item differs, or where processing according to the instructions results in a contradictory situation, is called a "conflict."
[0137] Figure 9 illustrates an example of a conflict. For example, suppose there are three attribute items to be synchronized: attribute #1, attribute #2, and attribute #3, and their values are synchronized to "A", "B", and "C", respectively. Under these conditions, if, before the start of a term, RD32 updates attribute #2 to "B2" and attribute #3 to "C1", and then DS22 updates attribute #2 to "B1", a problem arises in deciding whether to use the value updated by DS22 or RD32 as the value of attribute #2. Therefore, the synchronization process when a conflict occurs will be explained below.
[0138] Figure 10 is a flowchart showing an example of the synchronization process flow executed by the CPU 51 of the image forming apparatus 30 and the CPU 41 of the computer 40 that constitutes SC20 when a conflict occurs.
[0139] The difference between the synchronization process shown in Figure 10 and the synchronization process shown in Figure 8 is that steps S10 and S50 are added to the RD32 process, and steps S120, S122, and S124 are added to the RD32 process.
[0140] Here, in order to explain the synchronization process flow shown in Figure 10 more clearly, we will refer to Figures 11A and 11B. Figures 11A and 11B are sequence diagrams showing an example of the data flow inside the RD32 shown in Figure 3 when the synchronization process shown in Figure 10 is executed. The input unit 12 in Figures 11A and 11B represents the input unit 12 of the image forming apparatus 30. Note that the parts of Figures 11A and 11B that have already been explained in Figure 7 will be omitted from the explanation.
[0141] When the image forming apparatus 30 receives an instruction from a nearby user to change the value of a desired attribute item, in step S10, the resource 306 updates the attribute item whose value is to be changed to the new value.
[0142] Furthermore, when SC20 receives a command from a remote user via the user terminal 10 to change the value of an attribute item, in step S100, DS22 updates the attribute item whose value is to be changed to the new value.
[0143] As already explained in the synchronization process in Figure 6, when a term is started in RD32, a synchronization connection is established between DS22 and RD32, and in step S120, DS22 receives update information from RD32 and executes step S122.
[0144] In step S122, DS22 performs a conflict determination to determine whether a conflict has occurred for each attribute item included in the update information received in step S120 (Figure 11A:F300).
[0145] This reveals that, in the example shown in Figure 9, a conflict occurs in attribute #2, but not in attribute #3.
[0146] Therefore, in step S124, DS22 updates the values of the attribute items in metadata 24 according to the determination result (Figure 11A:F310). Specifically, for attribute items where no conflict has occurred, the values of the attribute items are updated according to the update information received in step S120.
[0147] On the other hand, for attribute items where a conflict occurs, DS22 determines, for example, whether to set the value updated by DS22 or the value updated by RD32 as the value of that attribute item, according to the contents of the priority table 26 which is pre-stored in the non-volatile memory 44 of the computer 40.
[0148] Figure 12 shows an example of the priority table 26. As shown in Figure 12, the priority table 26 pre-defines the possible values for each attribute item, as well as priority information indicating which update information to prioritize: the update information received from the user terminal 10 or the update information received from RD32.
[0149] In Figure 12, the attribute item "TLS (Transport Layer Security) setting" can take the values "Disabled" or "Enabled," and the priority information can be set to "DS Priority," "RD Priority," "Timestamp," and "RD Fixed." The "○" symbol in the priority table 26 shown in Figure 12 indicates that the item is set. Therefore, in the case of the attribute item "TLS setting" in Figure 12, the current value is set to "Enabled" and the priority information is set to "DS Priority."
[0150] If DS22 determines that a conflict has occurred in the attribute field "TLS Settings," it refers to the priority information for the attribute field "TLS Settings" in priority table 26. If "DS Priority" is set as the priority information for the attribute field "TLS Settings," the value of the attribute field "TLS Settings" updated by DS22 takes precedence.
[0151] Furthermore, if "RD Priority" is set as the priority information for the attribute item "TLS Settings," the value of the attribute item "TLS Settings" updated by RD32 will take precedence. If "Timestamp" is set as the priority information for the attribute item "TLS Settings," the value of the attribute item "TLS Settings" updated by DS22 and the value of the attribute item "TLS Settings" updated by RD32 that is associated with a relatively older time (i.e., the value of the "TLS Settings" that received the change instruction earlier) will take precedence.
[0152] If the priority information for the attribute item "TLS setting" is set to "RD fixed," remote users are prohibited from updating the value of the attribute item "TLS setting." In other words, this indicates that the value of this attribute item can only be changed from the image forming apparatus 30. Also, if the priority information for the attribute item "TLS setting" is set to "DS fixed," nearby users are prohibited from updating the value of the attribute item "TLS setting" from the image forming apparatus 30. In other words, this indicates that the value of this attribute item can only be changed from the user terminal 10.
[0153] Network administrators who manage service provision system 1 tend to perform their work via the internet 2 in many cases. Therefore, it is preferable to set network attribute items managed by the network administrator, such as IP addresses, to "DS priority" or "DS fixed". If IP addresses are set to be assigned by a DHCP server, each device connected to LAN 5 will be assigned a different IP address. However, if the IP address is changed or set on the image forming apparatus 30, a problem may occur where the same IP address is set for other devices connected to LAN 5.
[0154] Furthermore, hardware changes and consumable replenishment in the image forming apparatus 30, such as adding a finisher or replenishing paper, cannot be performed via the Internet 2. Therefore, it is preferable to set attribute items representing the physical configuration and physical state of the image forming apparatus 30 to "RD fixed".
[0155] For example, in the case of an attribute item where a conflict occurs, such as attribute #2 in Figure 9, if the priority information is set to "DS priority" and "DS fixed", the value of attribute #2 will be updated to "B1". If the priority information is set to "RD priority", "timestamp", and "RD fixed", the value of attribute #2 will be updated to "B2".
[0156] In other words, "RD Priority" is an example of the first setting, "DS Priority" is an example of the second setting, "Timestamp" is an example of the third setting, "DS Fixed" is an example of the fifth setting, and "RD Fixed" is an example of the sixth setting.
[0157] Note that priority information is not limited to the examples above. For example, among attribute items whose values were updated in DS22 and attribute items whose values were updated in RD32, priority information may be set to prioritize the attribute item to which the timestamp representing a relatively newer time is associated, i.e., the attribute item whose change instruction was received later. Prioritizing the value of the attribute item whose change instruction was received later is an example of the fourth setting.
[0158] In this way, if the value of an attribute item updated in DS22 based on the priority information in priority table 26 takes precedence, then different values will be set for that attribute item in SC20 and the image forming apparatus 30. For example, in the example in Figure 9, if the value of attribute #2 is set to "B1" due to conflict detection, the value of attribute #2 in SC20 will be "B1" and the value of attribute #2 in the image forming apparatus 30 will be "B2", resulting in a state of synchronization failure.
[0159] Therefore, in step S135 of Figure 10, DS22 sends update information to RD32 for the attribute item among the conflicting attribute items that has been set to the value updated by DS22 (Figure 11A:F320).
[0160] In response, in step S42 of Figure 10, the HTTP client 308 of RD32 receives the update information (Figure 11A:F330) and notifies the internal RD301 that it has received the update information from DS22. Upon receiving notification of the receipt of the update information, the internal RD301 starts updating the attribute data in the image forming apparatus 30 (Figure 11A:F340).
[0161] In step S44 of Figure 10, the internal RD301 stores the update information received in step S42 in the downstream updates315 (see Figure 3) (Figure 11B:F350). Once the update information is stored in the downstream updates315, the arbiter304 evaluates the validity of the update information (Figure 11B:F360), and if the content of the update information is valid, it updates the values of the attribute items notified in the update information in resource306 to the values notified in the update information (Figures 11B:F370 and F380).
[0162] In step S44, the attribute data stored in SC20 and the image forming apparatus 30 are synchronized, so in step S46, the internal RD301 sends a message to DS22 indicating that the update is complete (Figure 11B:F390). The message is encoded by the connector 307 (Figure 11B:F400), and the HTTP client 308 sends it to DS22 via HTTPS (Figure 11B:F410).
[0163] In response to this, in step S145 of Figure 10, DS22 receives an update completion notification from RD32. From there, it performs the same processing as the synchronization process from step S70 shown in Figure 6 to disconnect the synchronization connection and terminate the synchronization process shown in Figure 10. Note that the sequences F430 to F460 in Figure 11B are the same as the sequences F170 to F200 in Figure 7, so their explanation is omitted.
[0164] Thus, according to the service provision system 1 of this embodiment, when a conflict occurs during the synchronization of attribute data between SC20 and the image forming apparatus 30, the system determines which value of the attribute item updated by DS22 or the attribute item updated by RD32 will take precedence, according to the content of the priority information specified in the priority table 26, and performs a synchronization process to set the value of the conflicting attribute item to the value of the prioritized one.
[0165] The above example illustrates how attribute item values updated in DS22 and RD32 are synchronized in the next starting term. However, the timing of attribute data synchronization is not limited to this. For example, DS22 and RD32 may be configured to synchronize at different times for each attribute item, depending on the characteristics of the attribute item.
[0166] Figure 13 shows an example of how each attribute item managed by DS22 and RD32 is categorized according to its update priority.
[0167] As shown in Figure 13, each attribute item is categorized into update priorities, such as priority 1, priority 2, and priority 3.
[0168] Of these, attribute items belonging to priority 1 are those that will be synchronized in the next term after the update has been performed, as explained above. Attribute items belonging to priority 2 are those that will be synchronized in the next term after the computer 40 or image forming apparatus 30 that constitutes SC20 has been restarted. Attribute items belonging to priority 3 are those that will be synchronized in the next term after the synchronization instruction has been received, or after a predetermined date and time has elapsed.
[0169] Priority 1 includes attribute items that require notification as quickly as possible when a value has been updated between the SC20 and the image forming apparatus 30, such as the IP address or toner level. Priority 2 includes attribute items that require the power to be turned off and then on again to change the status, such as adding a finisher or adding a network card. Priority 3 includes attribute items that are required after a predetermined task with a specified date and time or period, such as changing the job log or authentication mode.
[0170] Up to this point, we have described the synchronization process of the service provision system 1, but it is not necessary to set all attribute items in the image forming apparatus 30 as attribute items to be synchronized. For example, as the data size of an attribute item increases, the time and load required for synchronization increase, which may put a burden on at least one of the CPUs 41 of the computer 40 and 51 of the image forming apparatus 30. Therefore, if the values of multiple attribute items whose data size exceeds a predetermined size that puts a burden on at least one of the CPUs 41 of the computer 40 and 51 of the image forming apparatus 30 are updated, and each of these attribute items is synchronized in the same term, the load in that term may temporarily increase, which may affect other processes.
[0171] Therefore, attribute items with a data size exceeding the specified size may not be set as attribute items to be synchronized, and their values may be updated individually regardless of the synchronization process in each term.
[0172] In the following sections, we will explain the process when a remote user performs a function of the image forming apparatus 30, using the setting function, which allows users to individually set attribute item values from the user terminal 10, as an example.
[0173] Figure 14 is a flowchart illustrating an example of the setting process executed by the CPU 51 of the image forming apparatus 30 and the CPU 41 of the computer 40 that constitutes the SC20 when a remote user operates the user terminal 10 and issues a setting instruction to set the value of an attribute item. The setting process to set a value for an attribute item is an example of a function provided by the image forming apparatus 30.
[0174] The image forming program for the image forming apparatus 30, which defines the setting process, is pre-stored in, for example, the non-volatile memory 54 of the image forming apparatus 30. The CPU 51 of the image forming apparatus 30 reads the image forming program stored in the non-volatile memory 54 and executes the setting process.
[0175] Furthermore, the server program of computer 40 that defines the configuration process is pre-stored, for example, in the non-volatile memory 44 of computer 40. The CPU 41 of computer 40 reads the server program stored in the non-volatile memory 44 and executes the configuration process.
[0176] To facilitate understanding of the data flow during the configuration process, we will refer to Figure 15 as needed during the explanation. Furthermore, since the operation of the functional blocks within the RD32 has already been explained using Figures 7, 11A, and 11B, the operation of the functional blocks constituting the RD32 will be described hereafter as an operation primarily involving the RD32.
[0177] In step S200 of Figure 14, when service 21 receives a setting instruction for a desired attribute item from user terminal 10 (Figure 15: (1)), it reflects the setting value of the attribute item specified by the setting instruction in the priority table 26 (Figure 15: (2)). For example, if service 21 receives a setting instruction to set the value of the attribute item "TLS setting" to "enabled" and "DS priority", service 21 sets the value of "TLS setting" to "enabled" and the priority information to "DS priority" in the priority table 26 shown in Figure 12.
[0178] Subsequently, service 21 notifies the DS job management unit 27 that it has updated the priority table 26, along with information to identify an agent that will perform the function instructed from the user terminal 10 in cooperation with service 21 on the image forming apparatus 30, i.e., agent identification information (Figure 15: (3)).
[0179] In step S210, the DS job management unit 27 receives an update notification of the priority table 26 from the service 21 and creates a DS job. A DS job is information that represents the content of an instruction and is managed by the DS job management unit 27. That is, a DS job is generated in the DS job management unit 27 each time an instruction is received from the user terminal 10, and a job number that identifies the DS job is associated with each DS job. The job number is an example of identification information that identifies an instruction. Then, the DS job management unit 27 refers to the DS job and requests the DS 22 to send a message to the RD 32 notifying that an instruction (in this case, an instruction to set the value of an attribute item) has been received from the user terminal 10 (Figure 15: (4)). As a result, the message is registered in the DS 22. Hereafter, a message that notifies the RD 32 from the DS 22 that a request to execute a function of the image forming apparatus 30 has been received, such as an instruction to set the value of an attribute item, will be called a DS message.
[0180] The DS message is further enhanced by DS22 with access information necessary for connecting to service 21, which receives instructions from user terminal 10 via agent 31, agent identification information notified by service 21, and the job number of the DS job that requested the transmission of the DS message. An example of access information is a URL, which is location information that identifies service 21. Alternatively, the access information may include an access token, which is connection permission information issued by service 21 that grants access.
[0181] In the image forming apparatus 30, DS22 sends a created DS message to RD32 in order to set the attribute item targeted by the setting instruction to the specified value. However, as shown in Figure 1, a firewall 4 is installed on the communication line 3 connecting SC20 and the image forming apparatus 30, so DS22 sends the DS message to RD32 in the form of a response to a request from RD32. In other words, DS22 and RD32 perform polling communication initiated by RD32.
[0182] Between DS22 and RD32, synchronization is performed via a synchronous connection at predetermined intervals. Therefore, RD32 polls to check for the presence of DS messages during the term, and if DS22 sends a DS message in response, RD32 can obtain the DS message.
[0183] Therefore, in step S220 of Figure 14, DS22 determines whether or not the term has started. If the term has not started, the process in step S220 is repeatedly executed to monitor for the term to start. If the term has started, the process proceeds to step S230.
[0184] During the term, polling is performed via the synchronous connection to check for the presence of DS messages from RD32. Therefore, in step S230, DS22 sends registered DS messages to RD32 as a response to the polling from RD32 (Figure 15: (5)). The synchronous connection to which DS messages are sent is an example of the first connection.
[0185] In response to this, in step S320, RD32 receives a DS message from DS22.
[0186] If agent identification information is attached to the DS message, in step S330, RD32 identifies agent 31, represented by the agent identification information, as the recipient of the DS message obtained from DS22.
[0187] In step S340, RD32 distributes the DS message obtained from DS22 to the agent 31 identified in step S330 (Figure 15: (6)). In this embodiment, RD32 distributes the DS message to the agent 31 that configures network attributes.
[0188] In step S350, agent 31, upon receiving the DS message, refers to the access information attached to the DS message and connects to the recipient of the URL represented by the access information via the Internet 2. In this case, agent 31 may also send an access token to service 21 included in the DS message. This connects service 21, which has received a function execution instruction from user terminal 10, with agent 31, which executes the instructed function in image forming apparatus 30. The link connecting service 21 and agent 31 in this way is called a "service connection". A service connection is an example of a second connection, and by setting a port for bidirectional communication on firewall 4, bidirectional communication is performed, allowing data to be sent from both service 21 and agent 31 at any time.
[0189] Furthermore, when Agent 31 connects to Service 21 based on the received DS message, it establishes a link connecting Agent 31 itself and DS22 in order to notify the DS job corresponding to the DS message of its processing status. This link connecting Agent 31 and DS22 is called a "status notification connection". The status notification connection is an example of a third type of connection, and due to the settings of Firewall 4, it is a unidirectional communication where data transmission is only permitted from Agent 31 to DS22. However, the status notification connection can also be made bidirectional by the settings of Firewall 4. Agent 31 can identify the DS22 to connect to by referring to the URL of DS22 that has been stored in the non-volatile memory 54 in advance. Here, Agent 31 notifies DS22 of the status information that "a connection with Service 21 has been established" via the status notification connection link (Figure 15: (7)). In this case, Agent 31 adds the job number that was attached to the DS message received by Agent 31 to the status information.
[0190] In step S360, agent 31 requests configuration information from service 21, which is connected via service connection, using user terminal 10, including information on which attribute items the remote user has set to what values (Figure 15: (8)).
[0191] In response to this, in step S240, service 21 receives a request for configuration information, and in step S250, service 21 sends the configuration information to agent 31, which is connected via the service connection, i.e., the source of the request for configuration information (Figure 15: (9)).
[0192] In step S370, when agent 31 receives configuration information, in step S380, it updates the value of the attribute item based on the content of the received configuration information. As a result, the value of the attribute item "TLS setting" in the image forming apparatus 30 is set to "enabled" and "DS priority" (Figure 15: (10)).
[0193] Having completed the process instructed by the DS message (in this case, setting attribute items), in step S390, agent 31 sends a completion notification to DS22, which is connected via a status notification connection, notifying that the process instructed by the DS message has been completed (Figure 15: (11)). In this case, agent 31 adds the job number that was attached to the DS message received by agent 31 to the completion notification.
[0194] In step S260, DS22 receives a completion notification and notifies the DS job management unit 27. Upon receiving the completion notification, the DS job management unit 27 considers the DS job associated with the job number attached to the completion notification to be completed. This completes the setup process shown in Figure 14.
[0195] As described above, according to the service provision system 1 of this embodiment, when a user terminal 10 executes a function of the image forming apparatus 30, the DS22 receives a function execution instruction from the user terminal 10 through service 21, and transmits a DS message to RD32 via synchronous connection indicating that it has received a function execution instruction from the user terminal 10. Upon receiving the DS message, RD32 distributes the DS message to an agent 31 that executes the function received by service 21 in cooperation with service 21. The agent 31, upon receiving the DS message, inquires about the execution details from service 21, which received the function execution instruction, via service connection, and executes the instructed function according to the execution details obtained from service 21. The agent 31 notifies DS22 of the processing status via status notification connection. Therefore, the processing requested by the remote user through service 21 is executed in the image forming apparatus 30.
[0196] Figure 14 illustrates the setting process when a remote user operates the user terminal 10 to issue a setting instruction to set the values of attribute items in the image forming apparatus 30. However, a nearby user may also set the values of attribute items from the image forming apparatus 30.
[0197] Therefore, the following describes the process when a nearby user executes a function of the image forming apparatus 30, using the setting function of setting values for attribute items from the image forming apparatus 30 as an example. Specifically, we will describe an example where the value of an attribute item set from the image forming apparatus 30 conflicts with that of SC20.
[0198] Figure 16 is a flowchart showing an example of the setting process executed by the CPU 51 of the image forming apparatus 30 and the CPU 41 of the computer 40 that constitutes SC20 when a nearby user operates the image forming apparatus 30 and issues a setting instruction to set the value of an attribute item of the image forming apparatus 30 that requires verification of the set value.
[0199] To facilitate understanding of the data flow during the configuration process, we will refer to Figure 17 as needed during the explanation. Furthermore, since the operation of the functional blocks within RD32 has already been explained using Figures 7, 11A, and 11B, the operation of the functional blocks constituting RD32 in the configuration process example shown in Figure 16 will also be explained as an operation primarily driven by RD32. It will be assumed that a "service connection" has already been established between agent 31 and service 21.
[0200] In step S300 in Figure 16, when a neighboring user sets the value of an attribute item (Figure 17: (1)), the system 33 updates the value of the attribute item with the set value. When the value of an attribute item is set, the agent 31, which is responsible for the value setting function, detects that a value has been set for the attribute item (Figure 17: (2)), and generates setting information that includes information about which attribute items the neighboring user set and to what value. Naturally, setting the value of an attribute item includes changing the value of the attribute item.
[0201] In step S310, agent 31 transmits configuration information to service 21 through a service connection established with service 21, which provides services to remote users in cooperation with the functions of the image forming apparatus 30, together with agent 31. The agent identification number of agent 31 that transmitted the configuration information is appended to the configuration information transmitted from agent 31. If a service connection has not been established, agent 31 establishes a service connection with service 21, which accepts setting instructions for attribute item values from the user terminal 10. The URL of service 21 associated with each agent 31 may be, for example, a URL pre-configured by the network administrator or a URL instructed by the network administrator each time a service connection is established. If agent 31 has previously established a service connection with service 21, for example, a URL stored in the non-volatile memory 54 as history information may be used.
[0202] In response, in step S202, service 21 receives configuration information from agent 31. Upon receiving the configuration information, service 21 refers to priority table 26 for the values of the attribute items represented by the configuration information.
[0203] As an example, suppose the attribute item "TLS Settings" in metadata 24 has a value of "Enabled," but the configuration information includes information to set the value of "TLS Settings" to "Disabled." On the other hand, referring to priority table 26, suppose the priority information for the attribute item "TLS Settings" is set to "DS Fixed." In this case, setting the value of the attribute item by a neighboring user is prohibited, resulting in a high-priority conflict. Furthermore, referring to the update priority classification shown in Figure 13, it can be seen that "TLS Settings" has a priority of "Priority 1: [Set in the next term]."
[0204] Thus, in step S204, service 21 performs a conflict determination to determine whether or not a conflict has occurred with respect to the configuration information received from agent 31 (Figure 17: (4)). If a conflict is detected, in step S206, service 21 sends a conflict notification via the Internet 2 to the user terminal 10 used by the network administrator, notifying that a conflict has occurred and the priority of the attribute item in which the conflict occurred. This allows the network administrator to know that an operation not permitted by the service provision system 1 has been performed. In the example above, service 21 notifies that "TLS setting," an example of an attribute item in the image forming apparatus 30, has been changed to "disabled" on the image forming apparatus 30 side, and that the attribute item in which the conflict occurred has high priority and requires immediate attention.
[0205] If a conflict occurs where the metadata managed by SC20 and the attribute item values of the image forming apparatus 30 do not match, service 21 must execute a process to set the value of the attribute item in the image forming apparatus 30 where the conflict occurred to the correct value. In the example above, although the value of the attribute item "TLS setting" in the image forming apparatus 30 is set to "disabled", the value of the attribute item "TLS setting" in the metadata managed by SC20 remains "enabled", so it is necessary to set the value of the attribute item "TLS setting" in the image forming apparatus 30 to "disabled".
[0206] Therefore, in step S210, the DS job management unit 27 receives a setting instruction from service 21 and creates a DS job to set the value of the specified attribute item (Figure 15: (6)). Then, the DS job management unit 27 requests DS22 to send a DS message to notify RD32 that an instruction to set the value of the attribute item has been received (Figure 17: (7)).
[0207] In step S220, DS22 determines whether or not the term has started. If the term has not started, it repeatedly executes the process in step S220 to monitor for the term to start. If the term has started, it proceeds to step S230.
[0208] In step S230, DS22 sends the registered DS message to RD32 as a response to the polling from RD32 (Figure 17: (8)).
[0209] The DS message sent from DS22 to RD32 only needs to include the agent identification information of agent 31 that sent the configuration information and the job number of the DS job that requested the sending of the DS message.
[0210] In response, RD32 executes the process described in steps S320 to S340 of Figure 14, and a DS message is delivered to agent 31, which has detected that an operation to set the value of an attribute item has been performed (Figure 17: (9)).
[0211] Upon receiving the DS message, agent 31 executes the process described in steps S350 to S380 of Figure 14, notifying the DS job of the processing status through the status notification connection established with DS22 (Figure 17: (10)), and obtains setting information for the attribute items where a conflict occurred from service 21 through the service connection established with service 21, and updates the values of the attribute items of the image forming apparatus 30 based on the setting information (Figure 17: (11) and (12)). After completing the instructed processing, agent 31 executes the process described in step S390 of Figure 14 and sends a completion notification to DS22 (Figure 17: (13)).
[0212] Therefore, the value of the attribute item "TLS setting," which was set to "disabled" in the image forming apparatus 30, is returned to "enabled," and the value of the attribute item "TLS setting" in the metadata 24 matches the value of the attribute item "TLS setting" in the image forming apparatus 30. With this, the setting process shown in Figure 16 is completed.
[0213] Furthermore, if agent 31 receives a DS message from service 21 that sent the configuration information, it may consider that a conflict has occurred and, without requesting configuration information from service 21, may revert the value of the attribute item set in step S300 back to its original value before the setting. Also, in the above example, in step S210 of Figure 16, service 21 requested the DS job management unit 27 to create a DS job that sets the value of the specified attribute item. However, service 21 may also directly send an instruction to agent 31 to set the value of the attribute item through the service connection, causing agent 31 to change the setting.
[0214] Thus, according to the service provision system 1 of this embodiment, depending on the function instructed to be executed from the image forming apparatus 30, the necessary information is notified to the SC20 via the service connection, regardless of the term.
[0215] Furthermore, there are services 21 on the cloud service that are not included in SC20. The service provision system 1 according to this embodiment can provide the functions of the image forming apparatus 30 over the Internet 2 by utilizing not only the services 21 included in SC20 provided by the developer of the image forming apparatus 30 (referred to as "native services 21"), but also services 21 provided by third parties (referred to as "external services 21").
[0216] Up to this point, we have described the synchronization and configuration processes of the service provision system 1. However, the services 21 provided by SC20 as a cloud service also include services such as printing image data specified by a remote user using the image forming apparatus 30.
[0217] When the service 21 receives image data to be printed from a remote user, the SC20 notifies the image forming apparatus 30 that it has received the image data and performs the printing process in cooperation with the image forming apparatus 30.
[0218] Here, as an example, we will describe the processing in the service provision system 1 when printing image data using a third-party service 21.
[0219] Figure 18 is a sequence diagram showing an example of the data flow in the service provision system 1 when image data is received from the user terminal 10. As an example, an external service 21 is used for the service 21 that receives image data from the user terminal 10 (referred to as "print service 21"), but a native service 21 may also be used.
[0220] When a remote user sends image data from user terminal 10 to print service 21 (Figure 18: (1)), the print service 21 registers the image data in association with the user ID of the remote user who sent the image data. The user ID is identification information that is issued in advance to each user to identify them when they first use the service provision system 1.
[0221] When the print service 21 that registered the image data notifies the DS job management unit 27 that it has received an instruction to register the image data, the DS job management unit 27 creates a DS job (Figure 18: (2)).
[0222] Then, the DS job management unit 27 requests DS22 to send a DS message to RD32 notifying it that image data has been registered (Figure 18: (3)). As already explained, the DS message includes access information to the print service 21 where the image data is registered, agent identification information to execute the print function, and the job number of the DS job that manages the printing process of the registered image data.
[0223] RD32 obtains DS messages from DS22 through polling performed during the term (Figure 18: (4)), and delivers DS messages to agent 31, which is represented by the agent identification information attached to the DS message (Figure 18: (5)).
[0224] Upon receiving the DS message, agent 31 refers to the access information attached to the DS message and establishes a service connection with the print service 21 (Figure 18: (6)).
[0225] Then, the remote user who registered the image data from the user terminal 10 to the print service 21 moves to the location where the image forming apparatus 30 is installed, and this time, as a nearby user, enters their own user ID into the input unit 12 of the image forming apparatus 30 (referred to as "user authentication"). As a result, the image forming apparatus 30 performs user authentication, and if the entered user ID is registered in advance, the image forming apparatus 30 continues to accept operations from the input unit 12 (Figure 18: (7)).
[0226] If the image forming apparatus 30 successfully authenticates the user, it displays a list of functions available on the image forming apparatus 30 on the display unit 13. When a nearby user selects a function from the list of available functions (in this case, the user selects the print function using the print service 21), the RD32 notifies the agent 31 that executes the function of the print service 21 of a print command with the user ID of the nearby user currently operating the function added (Figure 18: (8)).
[0227] Upon receiving a print command, agent 31 obtains a list of image data associated with the user ID attached to the print command from the print service 21 via the service connection (Figure 18: (9)), and displays it on the display unit 13 of the image forming apparatus 30.
[0228] When a nearby user selects an image file to print from a list of image files, RD32 notifies agent 31, which performs the functions of the print service 21, of the selected image file (Figure 18: (10)).
[0229] When Agent 31 receives a selection instruction, it retrieves the selected image data from the print service 21 via the service connection (Figure 18: (11)) and prints the retrieved image data. After Agent 31 finishes printing the image data, it sends a print completion notification to DS22 via the status notification connection (Figure 18: (12)), and the DS job managing the printing of the image data disappears. As previously explained, Agent 31, having established a service connection with the print service 21, may also establish a status notification connection with DS22 and notify it of the status information that "a connection with the print service 21 has been established."
[0230] Thus, when printing image data using the print service 21, it is preferable that the image forming apparatus 30 has completed preparations for acquiring image data already registered in the print service 21 once user authentication of a nearby user is successful. Therefore, it is preferable that a service connection between the print service 21 and the agent 31 is established before user authentication of a nearby user is performed in the image forming apparatus 30.
[0231] Although the configuration of the service provision system 1 has been described using an example of the image forming apparatus 30 performing its functions, the devices to which the service provision system 1 provides functions are not limited to the image forming apparatus 30. For example, any device that can connect to the internet 2 and whose operation can be changed according to user instructions, such as surveillance cameras, home appliances, and mobile devices like vehicles, can be applied to the service provision system 1.
[0232] Although one aspect of the service provision system 1 has been described above using embodiments, the disclosed form of the service provision system 1 is merely an example, and the form of the service provision system 1 is not limited to the scope described in the embodiments. Various modifications or improvements can be made to the embodiments without departing from the gist of this disclosure, and such modified or improved forms are also included within the technical scope of the disclosure. For example, without departing from the gist of this disclosure, the internal order of the synchronization process shown in Figures 6, 8, and 10, and the setting process shown in Figures 14 and 16, may be changed.
[0233] For example, in Figure 17, a DS job is generated to resolve the conflict, and the conflict in the attribute item values is resolved by delivering DS messages via a synchronous connection, which is a path where communication takes place periodically according to the synchronization interval. However, various information may also be transmitted using a service connection, which is a path that immediately communicates without delay as soon as the SC20 is notified of the changed attribute item values in RD30. In this case, the setting information is sent to the image forming apparatus more quickly than when using a synchronous connection.
[0234] Furthermore, in the examples shown in Figures 16 and 17, the values of attribute items set by neighboring users are reflected in the system 33 and then notified to the SC20 of the set attribute item values. However, the values of attribute items set by neighboring users may be temporarily held without being reflected in the system 33. The held settings are notified to the SC20 side from agent 31 via the service connection. Subsequent processing is as already described, with service 21 making a determination based on the priority table 26, and the image forming apparatus 30 receiving the determination result of service 21 via the synchronous connection. Agent 31 may only reflect the values of attribute items set by neighboring users in the system 33 if the determination result received from SC20 is an update permission indicating that it is OK to update the values of the attribute items.
[0235] Furthermore, in the examples shown in Figures 15 to 17, setting information is notified between the image forming apparatus 30 and SC20 via a service connection, but setting information may also be notified using only a synchronous connection without using communication via a service connection.
[0236] Furthermore, in the examples shown in Figures 15 and 17, the SC20 holds the priority table 26, but the image forming apparatus 30 may also hold the same priority table 26 as the SC20. If the image forming apparatus 30 holds the priority table 26, it can identify which data takes precedence over the SC20. Therefore, the image forming apparatus 30 may temporarily hold the acceptance of setting information where the priority information is set to "DS priority" or "timestamp priority" and process it after the synchronization process is executed. Also, if the image forming apparatus 30 receives setting information where the priority information is set to "DS fixed," it may terminate processing without reflecting the setting information in the system 33. Also, if the image forming apparatus 30 receives setting information where the priority information is set to "RD priority" or "RD fixed," it may immediately reflect the setting information in the system 33. Since the priority list 26 may be changed, each time a change is made, the priority list 26 is transmitted from SC20 to the image forming apparatus 30 using a synchronous connection or service connection to ensure that the identity of the priority list 26 is maintained between SC20 and the image forming apparatus 30.
[0237] Furthermore, in the embodiments, an example of a configuration in which each process is implemented in software has been described. However, the processes equivalent to those shown in the flowcharts in Figures 6, 8, 10, 14, and 16 may also be processed in hardware. In this case, processing speed can be increased compared to the case in which each process is implemented in software.
[0238] In the embodiments described above, the term "processor" refers to a broad type of processor, including general-purpose processors (e.g., CPU 41, 51) and dedicated processors (e.g., GPU: Graphics Processing Unit, ASIC: Application Specific Integrated Circuit, FPGA: Field Programmable Gate Array, programmable logic device, etc.).
[0239] Furthermore, the operation of the processor in the above embodiment may not be performed by a single processor, but may be performed by multiple processors located in physically separate locations working together. Also, the order of the processor operations is not limited to the order described in the above embodiment, but may be changed as appropriate.
[0240] In the embodiments described above, an example was given in which the program is stored in non-volatile memories 44 and 54, but the storage location of the program is not limited to non-volatile memories 44 and 54. The program of this disclosure can also be provided in a form recorded on a storage medium readable by computers 40 and 50. For example, the program may be provided in a form recorded on an optical disc such as a CD-ROM (Compact Disk Read Only Memory) or DVD-ROM (Digital Versatile Disk Read Only Memory). Alternatively, the program may be provided in a form recorded on a portable semiconductor memory such as a USB (Universal Serial Bus) memory or a memory card. Furthermore, the program may be provided in a form recorded on ROMs 42 and 52. ROMs 42 and 52, non-volatile memory 44 and 54, CD-ROM, DVD-ROM, USB, and memory card are examples of non-transitory storage media.
[0241] Furthermore, the image forming apparatus 30 and the computer 40 may download programs from external devices (not shown) via the Internet 2 and store the downloaded programs in their storage devices. In this case, the CPU 51 of the image forming apparatus 30 reads the image forming program downloaded from the external device from its storage device and executes various processes, and the CPU 41 of the computer 40 reads the server program downloaded from the external device from its storage device and executes various processes.
[0242] The following are additional notes relating to the technology described herein.
[0243] (((1))) A first device has first attribute data that includes status information about itself and setting information about the functions it has, and when it receives a change instruction from a user for the first attribute data, it updates the first attribute data to the content instructed by the change instruction, and a second device that has second attribute data corresponding to the first attribute data synchronizes with the first connection so that the content of the second attribute data is the same as the content of the updated first attribute data, When the user requests a change to the second attribute data, the second device updates the second attribute data to the content specified in the change request, and synchronizes the first attribute data with the first connection so that the content of the first attribute data is the same as the content of the updated second attribute data. Equipped with, If the contents of the first attribute data and the second attribute data differ as updated by the change instruction received by the first or second device before synchronization, the priority information that specifies which of the first and second attribute data takes precedence is referenced to identify the preferred attribute data, and the first and second devices synchronize through the first connection so that both the first and second attribute data are updated to the contents of the preferred attribute data. Service delivery system.
[0244] (((2))) The aforementioned priority information is information that defines, for each attribute data, a first setting that prioritizes the first attribute data, a second setting that prioritizes the second attribute data, a third setting that prioritizes the attribute data whose change instruction was received earlier, a fourth setting that prioritizes the attribute data whose change instruction was received later, a fifth setting that prohibits updating using the first attribute data, or a sixth setting that prohibits updating using the second attribute data. The service provision system described in (((1))).
[0245] (((3))) The fifth setting is defined for attribute data relating to the network to which the first device is connected, and the sixth setting is defined for attribute data relating to the hardware configuration of the first device. The service provision system described in (((2))).
[0246] (((4))) The first and second devices synchronize the first attribute data and the second attribute data during synchronization periods that are started at predetermined intervals. A service provision system as described in any of (((1))) to (((3))).
[0247] (((5))) If the first and second devices are unable to synchronize the first attribute data and the second attribute data during the synchronization period, they will not attempt to synchronize the first attribute data and the second attribute data again during the synchronization period in which the synchronization failed, but will instead synchronize the first attribute data and the second attribute data during the next synchronization period. The service provision system described in (((4))).
[0248] (((6))) The first and second devices adjust the synchronization timing of the first attribute data and the second attribute data by referring to update information that specifies the timing of synchronization for each attribute data. A service provision system as described in any of (((1))) to (((5))).
[0249] (((7))) The first device is connected via a second connection to a service component on a network that receives execution instructions for the functions of the first device, and includes a cooperation unit that cooperates with the second device. The first and second devices acquire the first attribute data or the second attribute data through the second connection with respect to a predetermined type of attribute data, and synchronize the first attribute data and the second attribute data. A service provision system as described in any of (((1))) to (((6))).
[0250] (((8))) The aforementioned predetermined type of attribute data is attribute data whose data size is greater than or equal to a specified size. The service provision system described in (((7))).
[0251] (((9))) Before updating the first attribute data to the content specified by the change instruction, the first device transmits the first attribute data to the second device through the second connection, and updates the first attribute data if the determination result for the first attribute data received from the second device through the first connection in conjunction with the synchronization performed between the first and second devices is that the update is permitted. The service provision system described in (((7))).
[0252] (((10))) The first device transmits the first attribute data to the second device through the second connection and updates the first attribute data based on the setting information for the first attribute data received from the second device through the first connection. The service provision system described in (((7))).
[0253] (((11))) The first and second devices synchronize the first and second attribute data through the first connection if the content of the first and second attribute data differs for attributes whose update priority is lower than a preset criterion, and synchronize the first and second attribute data through the second connection if the content of the first and second attribute data differs for attributes whose update priority is equal to or higher than the preset criterion. The service provision system according to claim 7.
[0254] According to (((1))), even if each device that individually holds the same attribute data receives different settings for the same attribute data at the same time, it is possible to determine which device's changes should be used to update the attribute data held by each device.
[0255] According to (((2))), this has the effect of allowing the user to set which attribute data will take precedence in the event of a conflict.
[0256] According to (((3))), this has the effect of automatically setting the preferred attribute data according to the type of attribute data, even if the user does not set the preference information.
[0257] According to (((4))), even if the synchronization of the first attribute data and the second attribute data fails, it has the effect that they can be synchronized in a different synchronization period.
[0258] According to (((5))), the effect is that retrying synchronization prevents a situation from occurring where the synchronization process is not completed by the start of the next synchronization period.
[0259] According to (((6))), this has the effect of being able to synchronize the first attribute data and the second attribute data at a timing appropriate to the characteristics of the attribute data.
[0260] According to (((7))), this has the effect of allowing synchronization of the first attribute data and the second attribute data even outside of the synchronization period.
[0261] According to (((8))), this has the effect of reducing the load on the synchronization period associated with updating attribute data, compared to only allowing attribute data synchronization during the synchronization period.
[0262] According to ((9)), when the second attribute data is not updated to the content of the first attribute data in the second device, the first device can shorten the period during which it operates with settings different from the content of the second attribute data, rather than updating the first attribute data to the content indicated by the change instruction and then transmitting the first attribute data to the second device.
[0263] According to ((10)), even when the first connection cannot be established, information can be transmitted from the first device to the second device.
[0264] According to ((11)), the higher the priority of the attribute, the shorter the time required for synchronization.
Explanation of Signs
[0265] Fig. 1 Service providing system Fig. 2 Internet Fig. 3 Communication line Fig. 4 Firewall Fig. 5 LAN Fig. 6 Cloud service IF Fig. 10 User terminal Fig. 11 Communication unit Fig. 12 Input unit Fig. 13 Display unit Fig. 14 Scanner unit Fig. 15 Image forming unit Fig. 20 Shadow component (SC) Fig. 21 Service (external service, print service, native service) Fig. 22 DS Fig. 23 RD management Fig. 24 Metadata Fig. 25 Service instance Fig. 26 Priority table Fig. 27 DS job management unit Fig. 30 Image forming apparatus Fig. 31 Agent Fig. 32 RD Fig. 33 System 40(50) Computer 41(51) CPU 42(52) ROM 43(53) RAM 44(54) Non-volatile memory 46(56) Bus 301 Internal RD 302 Authentication Department 303 Term generation unit 304 Arbiter 305 Timer 306 resources 307 Connector 308 HTTP Client 309 Key Manager 310 TPM Driver 311 Core Services IF 312 Synchronization attribute list 313 upstream updates 314 validators 315 Downstream Updates
Claims
1. A first device has first attribute data that includes status information about itself and setting information about the functions it has, and when it receives a change instruction from a user for the first attribute data, it updates the first attribute data to the content instructed by the change instruction, and a second device that has second attribute data corresponding to the first attribute data, and synchronizes the second attribute data with the first connection so that the content of the second attribute data is the same as the content of the updated first attribute data, When the user requests a change to the second attribute data, the second device updates the second attribute data to the content specified in the change request, and synchronizes the first attribute data with the first connection so that the content of the first attribute data is the same as the content of the updated second attribute data. Equipped with, If the contents of the first attribute data and the second attribute data updated by the change instruction received by the first or second device before synchronization are different, the first and second devices identify the preferred attribute data by referring to priority information which specifies which of the first and second attribute data takes precedence, and which specifies a first setting to prioritize the first attribute data, a second setting to prioritize the second attribute data, a third setting to prioritize the attribute data whose change instruction was received earlier, a fourth setting to prioritize the attribute data whose change instruction was received later, a fifth setting to prohibit updating by the first attribute data, or a sixth setting to prohibit updating by the second attribute data, for each attribute data, and the first and second devices synchronize through the first connection so that both the first and second attribute data are updated to the contents of the preferred attribute data. Service delivery system.
2. The fifth setting is defined for attribute data relating to the network to which the first device is connected, and the sixth setting is defined for attribute data relating to the hardware configuration of the first device. The service provision system according to claim 1.
3. A first device having first attribute data including status information relating to the device and setting information relating to the functions provided by the device, and when it receives a change instruction from a user for the first attribute data, it updates the first attribute data to the content instructed by the change instruction, and a second device having second attribute data corresponding to the first attribute data, which synchronizes via a first connection so that the content of the second attribute data is the same as the content of the updated first attribute data, When the user requests a change to the second attribute data, the second device updates the second attribute data to the content specified in the change request, and synchronizes the first attribute data with the first connection so that the content of the first attribute data is the same as the content of the updated second attribute data. Equipped with, If the contents of the first attribute data and the second attribute data differ as updated by the change instruction received by the first or second device before synchronization, the priority information defining which of the first and second attribute data takes precedence is referenced to identify the preferred attribute data, and during synchronization periods that begin at predetermined intervals, the first and second devices synchronize through the first connection so that both the first and second attribute data are updated to the contents of the preferred attribute data. If the first and second devices are unable to synchronize the first and second attribute data during the synchronization period, they do not attempt to synchronize the first and second attribute data again during the synchronization period in which synchronization failed, but instead synchronize the first and second attribute data during the next synchronization period. Service delivery system.
4. A first device having first attribute data including status information about itself and setting information about the functions it has, and when it receives a change instruction from a user for the first attribute data, it updates the first attribute data to the content instructed by the change instruction, and a second device having second attribute data corresponding to the first attribute data, which synchronizes via a first connection so that the content of the second attribute data is the same as the content of the updated first attribute data, When the user requests a change to the second attribute data, the second device updates the second attribute data to the content specified in the change request, and synchronizes the first attribute data with the first connection so that the content of the first attribute data is the same as the content of the updated second attribute data. Equipped with, If the contents of the first attribute data and the second attribute data differ as updated by the change instruction received by the first or second device before synchronization, the priority information that specifies which of the first and second attribute data takes precedence is used to identify the preferred attribute data, and the first and second devices synchronize through the first connection so that both the first and second attribute data are updated to the contents of the preferred attribute data, and the synchronization timing of the first and second attribute data is adjusted by referring to the update information that specifies the timing of synchronization for each attribute data. Service delivery system.
5. A first device having first attribute data including status information about itself and setting information about the functions provided by itself, and when it receives a change instruction from a user for the first attribute data, it updates the first attribute data to the content instructed by the change instruction, and a second device having second attribute data corresponding to the first attribute data, which synchronizes via a first connection so that the content of the second attribute data is the same as the content of the updated first attribute data, When the user requests a change to the second attribute data, the second device updates the second attribute data to the content specified in the change request, and synchronizes the first attribute data with the first connection so that the content of the first attribute data is the same as the content of the updated second attribute data. Equipped with, The first device is connected via a second connection to a service component on a network that receives execution instructions for the functions of the first device, and includes a cooperation unit that cooperates with the second device. If the contents of the first attribute data and the second attribute data differ as updated by the change instruction received by the first or second device before synchronization, the priority information specifying which of the first and second attribute data takes precedence is referenced to identify the preferred attribute data, the first and second devices synchronize through the first connection so that both the first and second attribute data are updated to the contents of the preferred attribute data, the first and second devices acquire the first or second attribute data through the second connection with respect to a predetermined type of attribute data, and synchronize the first and second attribute data. Service delivery system.
6. The aforementioned predetermined type of attribute data is attribute data whose data size is greater than or equal to a specified size. The service provision system according to claim 5.
7. Before updating the first attribute data to the content specified by the change instruction, the first device transmits the first attribute data to the second device through the second connection, and updates the first attribute data if the determination result for the first attribute data received from the second device through the first connection in conjunction with the synchronization performed between the first and second devices is that the update is permitted. The service provision system according to claim 5.
8. The first device transmits the first attribute data to the second device through the second connection and updates the first attribute data based on the setting information for the first attribute data received from the second device through the first connection. The service provision system according to claim 5.
9. The first and second devices synchronize the first and second attribute data through the first connection if the content of the first and second attribute data differs for attributes whose update priority is lower than a preset criterion, and synchronize the first and second attribute data through the second connection if the content of the first and second attribute data differs for attributes whose update priority is equal to or higher than the preset criterion. The service provision system according to claim 5.
10. When a first device having first attribute data including state information about itself and setting information about the functions provided by itself receives a change instruction from a user for the first attribute data, it updates the first attribute data to the content instructed by the change instruction, and a second device having second attribute data corresponding to the first attribute data synchronizes the content of the second attribute data with the first connection so that the content of the second attribute data is the same as the content of the updated first attribute data. When the second device receives a user instruction to change the second attribute data, it updates the second attribute data to the content specified in the instruction, and the first device synchronizes the first attribute data via the first connection so that the content of the first attribute data is the same as the content of the updated second attribute data. If the contents of the first attribute data and the second attribute data updated by the change instructions received by the first or second device before synchronization are different, the computer identifies the preferred attribute data by referring to priority information which specifies which of the first and second attribute data takes precedence, and which specifies a first setting to prioritize the first attribute data, a second setting to prioritize the second attribute data, a third setting to prioritize the attribute data whose change instruction was received earlier, a fourth setting to prioritize the attribute data whose change instruction was received later, a fifth setting to prohibit updating by the first attribute data, or a sixth setting to prohibit updating by the second attribute data, for each attribute data, and the computer executes a process to synchronize the first and second devices through the first connection so that both the first and second attribute data are updated to the contents of the preferred attribute data. Method of providing services.
11. When a first device having first attribute data including state information about itself and setting information about the functions provided by itself receives a change instruction from a user for the first attribute data, it updates the first attribute data to the content instructed by the change instruction, and a second device having second attribute data corresponding to the first attribute data synchronizes the content of the second attribute data with the first connection so that the content of the second attribute data is the same as the content of the updated first attribute data. When the second device receives a user instruction to change the second attribute data, it updates the second attribute data to the content specified in the instruction, and the first device synchronizes the first attribute data via the first connection so that the content of the first attribute data is the same as the content of the updated second attribute data. If the contents of the first attribute data and the second attribute data differ as updated by the change instruction received by the first or second device before synchronization, the computer identifies the preferred attribute data by referring to priority information that specifies which of the first and second attribute data takes precedence, and synchronizes the first and second devices through the first connection during a synchronization period that starts at predetermined intervals, so that both the first and second attribute data are updated to the contents of the preferred attribute data. If the first and second devices are unable to synchronize the first and second attribute data during the synchronization period, the computer executes a process to synchronize the first and second attribute data in the next synchronization period without attempting to synchronize the first and second attribute data again during the synchronization period in which synchronization failed. Method of providing services.
12. When a first device having first attribute data including state information about itself and setting information about the functions provided by itself receives a change instruction from a user for the first attribute data, it updates the first attribute data to the content instructed by the change instruction, and a second device having second attribute data corresponding to the first attribute data synchronizes the content of the second attribute data with the first connection so that the content of the second attribute data is the same as the content of the updated first attribute data. When the second device receives a user instruction to change the second attribute data, it updates the second attribute data to the content specified in the instruction, and the first device synchronizes the first attribute data via the first connection so that the content of the first attribute data is the same as the content of the updated second attribute data. If the contents of the first attribute data and the second attribute data differ as updated by the change instruction received by the first or second device before synchronization, the computer identifies the preferred attribute data by referring to priority information that specifies which of the first and second attribute data takes precedence, and synchronizes the first and second devices through the first connection so that both the first and second attribute data are updated to the contents of the preferred attribute data. The computer then performs a process to adjust the synchronization timing of the first and second attribute data by referring to update information that specifies the timing of synchronization for each attribute data. Method of providing services.
13. When a first device having first attribute data including status information about itself and setting information about the functions provided by itself receives a change instruction from a user for the first attribute data, it updates the first attribute data to the content instructed by the change instruction, and a second device having second attribute data corresponding to the first attribute data synchronizes the content of the second attribute data with the first connection so that the content of the second attribute data is the same as the content of the updated first attribute data. When the second device receives a user instruction to change the second attribute data, it updates the second attribute data to the content specified in the instruction, and the first device synchronizes the first attribute data via the first connection so that the content of the first attribute data is the same as the content of the updated second attribute data. The first device connects to a service component on the network that receives execution instructions for the functions provided by the first device via a second connection, and cooperates with the second device. If the contents of the first attribute data and the second attribute data differ as updated by the change instruction received by the first or second device before synchronization, the computer identifies the preferred attribute data by referring to priority information that specifies which of the first and second attribute data takes precedence, the first and second devices synchronize through the first connection so that both the first and second attribute data are updated to the contents of the preferred attribute data, and the first and second devices acquire the first or second attribute data through the second connection with respect to a predetermined type of attribute data, and the computer executes a process to synchronize the first and second attribute data. Method of providing services.