WO2019035469A1 - ジョブ管理システム - Google Patents
ジョブ管理システム Download PDFInfo
- Publication number
- WO2019035469A1 WO2019035469A1 PCT/JP2018/030395 JP2018030395W WO2019035469A1 WO 2019035469 A1 WO2019035469 A1 WO 2019035469A1 JP 2018030395 W JP2018030395 W JP 2018030395W WO 2019035469 A1 WO2019035469 A1 WO 2019035469A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- job
- user terminal
- notification
- node device
- node devices
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 33
- 230000008569 process Effects 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims description 31
- 230000015572 biosynthetic process Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 description 48
- 238000007726 management method Methods 0.000 description 26
- 238000013500 data storage Methods 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 14
- 230000004044 response Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012946 outsourcing Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000012358 sourcing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
Definitions
- the present invention relates to a job management system, and is particularly suitable for use in a system for managing a service for requesting and executing a job relating to computer resource utilization via a network.
- Patent Documents 1 to 3 Conventionally, a system for managing allocation of computer resources is known (see, for example, Patent Documents 1 to 3).
- a plurality of batch systems are distributed as peers in P2P, and the batch systems are linked to share information. Then, by propagating the information of the job in each batch system to each other in the batch system, the computer resource of the spare batch system to execute the job is determined, and the job of the busy batch system is input to the spare batch system.
- the computer resource distribution system described in Patent Document 2 is capable of accommodating surplus resources among a plurality of services, and capable of reducing the maintenance cost of the surplus resources.
- the standby computer resource has at least a dead standby state where no application is installed, and by sharing the computer resource in the dead standby state by a plurality of services or a plurality of users, the utilization rate of the idle computer resource is reduced. Achieve improvements and server consolidation.
- load prediction is performed using past operation history for each service, secured from surplus services, and idle computer resources maintained are input according to the prediction result.
- the computer resource management system described in Patent Document 3 divides and manages computer resources used in execution of processing into a dedicated pool and a shared pool. Specifically, the minimum required number of computer resources reserved for execution of processing and the maximum required number of inputs are received and stored in memory, and the lower limit value of computer resource performance and payment The input of the upper limit value of the possible money amount is received and stored in the memory, and reservation of computer resources is allocated to the exclusive pool and the shared pool according to the minimum required number and the maximum required number.
- Patent Documents 1 and 2 automatically assign jobs to computer resources that satisfy certain conditions, and are not suitable for on-demand outsourcing of computer resource utilization and crowdsourcing. is there.
- reservation of computer resources is allocated with the upper limit of the amount of money that can be paid as one of the conditions, but nothing is said about the process of actual payment.
- Patent Document 4 describes that a job is requested via SNS
- Patent Document 5 describes that payment of remuneration is performed via SNS.
- information of a user profile registered from the user includes, as one of the categories according to the purpose that can be registered, the category of the user who is searching for a job and the category of the user who provides the job. Perform matching based on
- the social payment device described in Patent Document 5 is a system configured to facilitate electronic payment through SNS. Specifically, upon receipt of a payment order from the user via the network interface, the user is instructed to specify the friend who will receive the payment, the source of payment for the payment and the amount of payment, and generates a redemption code for the payment Inform friends of payment and redemption codes via a network interface.
- the present invention has been made to solve such a problem, and it is consistent from the job request to the payment of compensation for the service for requesting and executing the job concerning computer resource utilization via the network.
- the purpose is to provide a mechanism to manage securely on the network.
- a job management system comprises a plurality of node devices configured to share information with each other on a network in cooperation and a plurality of node devices each having computer resources. And a plurality of user terminals connected to one of the plurality of user terminals that can request a job or execute a job.
- a plurality of node devices relates to a series of processes from request of a job performed in one user terminal to execution of a job performed using a computer resource in another user terminal to payment of a reward for job execution
- the notification transmitted to one of the node devices from each of one user terminal and another user terminal is distributed and stored as history information.
- the requester and the contractor in a series of processes from the request of the job to the payment of the reward for the execution regarding the service for requesting and executing the job regarding the computer resource utilization via the network And bi-directional notifications made between them are distributed and stored in a plurality of node devices as history information. Since this history information is shared by a plurality of node devices, even if the history information stored in one node device is falsified, the falsification is performed from the difference with the history information stored in another node device. You can easily verify what has been done. Therefore, according to the present invention, it is possible to consistently manage securely on the network from request of a job relating to utilization of computer resources to payment of compensation for execution based on sharing of history information which is difficult to falsify.
- FIG. 1 is a diagram showing an example of the overall configuration of a job management system according to the present embodiment. It is a block diagram which shows the function structural example of the node apparatus by this embodiment, and a user terminal. It is a figure showing the flow of a series of processes performed using the job management system by this embodiment. It is a flowchart which shows the flow of a process of the part of step S1 shown in FIG. 3 in detail. It is a flowchart which shows the flow of a process of the part of step S2 shown in FIG. 3 in detail. It is a flowchart which shows the flow of a process of the part of step S3 shown in FIG. 3 in detail. It is a flowchart which shows the flow of a process of the part of step S4 shown in FIG. 3 in detail.
- FIG. 1 is a diagram showing an example of the overall configuration of a job management system according to the present embodiment.
- the job management system according to this embodiment is a system that manages a service for requesting and executing a job related to computer resource utilization via a network.
- a node device 100 when any one of a plurality of node devices is not particularly distinguished, it is simply referred to as a node device 100.
- user terminals 200A, 200B, 200C or user terminal 200 when any one of a plurality of user terminals is not particularly distinguished, it is simply referred to as user terminals 200A, 200B, 200C or user terminal 200.
- the plurality of node devices 100 cooperate with each other on the network to share information with each other.
- Each node device 100 includes a management control unit (implemented by a program) as a functional configuration that manages mutual cooperation.
- the management control unit of each node device 100 holds instance information of each node device 100 in cooperation as a list, and it becomes possible to grasp which node devices 100 are in cooperation by this list. ing.
- the management control unit that any one of the plurality of node devices 100 has has a function of controlling the management control unit of each node device 100.
- a management control unit having this overall function is referred to as a "master management control unit”.
- the master management control unit acquires instance information from the added node device and adds it to the list, and adds the list after addition to all the node devices 100 ( The cooperation is updated by distributing to the existing node device 100 and the newly added node device 100).
- the management control unit of the added node device 100 transmits its own instance information to the master management control unit.
- the master management control unit receives this instance information, it updates the list by adding new instance information to the list managed by itself. Then, the master management control unit newly adds the node device 100 to cooperation by transmitting the updated list to the management control unit of the newly added node device 100.
- the master management control unit also notifies that the new node device 100 has joined the collaboration by distributing the updated list to the management control unit of the existing node device 100.
- the node device 100 newly participating in the cooperation is rapidly propagated to all the node devices 100, and the notification (details will be described later) transmitted from the added node device 100 is processed without omission. Will be able to
- Each of the plurality of user terminals 200 has a computer resource and is connected to any one of the plurality of nodes 100, and can execute a job request or a job execution.
- a plurality of user terminals 200A- 1 , 200A- 2 , and 200A- 3 are connected to the node device 100A.
- the plurality of user terminals 200B- 1 , 200B- 2 , and 200B- 3 are connected to the node device 100B.
- the plurality of user terminals 200C- 1 , 200C- 2 , and 200C- 3 are connected to the node device 100C.
- the node device 100A and the plurality of user terminals 200A -1 , 200A -2 , and 200A -3 connected thereto are referred to as a group A.
- the node device 100B and connected thereto a plurality of user terminals 200B -1, 200B -2, 200B -3 to group B, the node device 100C and which is to connect a plurality of user terminals 200C -1, 200C - 2 , 200C- 3 will be referred to as group C.
- the node device 100 is, for example, a server that provides an SNS (social network service). That is, the node device 100A of the group A provides the SNS to the user terminal 200A of the group A. As a result, the plurality of user terminals 200A belonging to the group A can view and acquire post information and comment information provided to the node device 100A from each of them.
- SNS social network service
- the node device 100B of group B provides the SNS to the user terminal 200B of group B.
- the plurality of user terminals 200B belonging to the group B can view and acquire post information and comment information provided to the node device 100B from each of them.
- the node device 100C of the group C provides the SNS to the user terminal 200C of the group C.
- the plurality of user terminals 200C belonging to the group C can view and acquire post information and comment information provided to the node device 100C from each of them.
- post information and comment information provided from the user terminals 200A, 200B, and 200C to the node devices 100A, 100B, and 100C are shared by the plurality of node devices 100A, 100B, and 100C in cooperation with one another. Ru.
- post information and comment information provided from a user terminal 200 of a certain group can be viewed and acquired from user terminals 200 of other groups.
- posting information or comment information is posted from the user terminal 200 to the node device 100, it is possible to specify whether or not sharing of the posting information or the comment information is permitted among a plurality of node devices 100A, 100B, 100C. Good.
- the job management system of the present embodiment further includes a server 300 for providing a job execution result to the user terminal 200 that has made a job request from the user terminal 200 that has received a job request.
- the server 300 is not configured to share information with each other in cooperation with the plurality of node devices 100 over the network.
- notifications concerning jobs are mutually notified via the node devices 100B and 100C, and the job execution result is stored in the server 300. It illustrates the case provided through.
- the notification about the job is a notification related to a series of processes from the request of the job to the payment of the reward.
- the tamper resistance is enhanced, and the execution result of the job itself can be exchanged between the parties alone.
- the plurality of node devices 100A, 100B, and 100C can use other user terminals (for example, the group C user terminal 200C) from the job request performed in one user terminal (for example, the user terminal 200B -3 in group B).
- the group C user terminal 200C for example, the group C user terminal 200C
- the node devices 100B and 100C It distributes and saves notifications sent as history information.
- the notification is shared by the plurality of node devices 100A, 100B, and 100C by providing the notification to the node device 100 from the user terminal 200 similarly to the post information of the SNS, and from the plurality of user terminals 200A, 200B, and 200C. It becomes a state that can be read and obtained.
- notifications to be distributed and stored in the plurality of node devices 100 are as follows.
- the plurality of node devices 100 distribute and save each of these notifications as history information in association with predetermined identification information (for example, a request ID generated at the time of a request).
- predetermined identification information for example, a request ID generated at the time of a request.
- Notification of job request sent from one user terminal to any node device job request notification sent from user terminal 200B- 3 of group B to node device 100B in the example of FIG. 1
- Notification of job contract transmitted from any other user terminal to any node device in the example of FIG. 1, job contract notification transmitted from the user terminal 200C- 3 of group C to the node device 100C
- Notification of execution result of job transmitted from any other user terminal to any node device in the example of FIG.
- a job request notification is transmitted from the user terminal 200B- 3 to the node device 100B, this is distributed and stored in the plurality of node devices 100A, 100B, and 100C.
- the job request notification can be viewed and acquired from the plurality of user terminals 200A, 200B, and 200C.
- the user of the user terminal 200C- 3 who accessed the node device 100C and browsed and acquired the job request notice decides to execute the job, and the job from the user terminal 200C- 3 to the node device 100C You have sent a contract notice.
- a job contract notification is transmitted from the user terminal 200C- 3 to the node device 100C, this is distributed and stored in the plurality of node devices 100A, 100B, 100C. As a result, the job contract notification can be read and obtained from the plurality of user terminals 200A, 200B, and 200C.
- the user of the user terminal 200B- 3 can grasp that there is a user who is contracted to execute the requested job by accessing the node device 100B and viewing and acquiring the job contract notification.
- the user terminal 200C- 3 executes the contracted job using its own computer resource.
- the execution result with provided from the user terminal 200C -3 to server 300 execution result notification from the user terminal 200C -3 to the node device 100C is transmitted.
- the execution result notifications transmitted to the node device 100C are distributed and stored in the plurality of node devices 100A, 100B, and 100C. As a result, the execution result notification can be viewed and acquired from the plurality of user terminals 200A, 200B, and 200C.
- the user of the user terminal 200B- 3 can grasp that execution of the requested job has been completed by accessing the node device 100B and viewing and acquiring an execution result notification. In response to this, the user terminal 200B- 3 accesses the server 300 to receive the job execution result. Further, the user terminal 200B- 3 transmits a reward payment notice to the node device 100B.
- the remuneration payment notification transmitted to the node device 100B is distributed and stored in the plurality of node devices 100A, 100B, and 100C. As a result, it becomes possible to view and obtain the compensation payment notice from the plurality of user terminals 200A, 200B, 200C.
- the user of the user terminal 200C- 3 can confirm the payment of the reward by accessing the node device 100C and viewing and acquiring the payment notice of the payment.
- FIG. 2 is a block diagram showing an example of the functional configuration of the node device 100 and the user terminal 200 according to the present embodiment.
- the functional configuration of the user terminal 200B- 3 that requests a job and the user terminal 200C- 3 that executes a job is shown as a representative.
- the node device although the functional configuration of the node devices 100B and 100C to which the user terminals 200B- 3 and 200C- 3 are connected is representatively shown, the node device 100A is configured in the same manner.
- the user terminal 200B -3 shows only the functional configuration related to the case where the requester of the job, there is a case where the user terminal 200B -3 is contracting side of the job.
- the user terminal 200B- 3 actually includes the functional configuration illustrated for the user terminal 200C- 3 .
- the user terminal 200C- 3 only the functional configuration related to the contract side of the job is illustrated, but the user terminal 200C- 3 may be the requester of the job. Therefore, the user terminal 200C- 3 actually includes the functional configuration illustrated for the user terminal 200B- 3 .
- the node devices 100B and 100C each include a node communication unit 11, a consensus processing unit 12, a storage control unit 13, and a read control unit 14 as the functional configuration.
- the node devices 100B and 100C also include a data storage unit 15 as a storage medium.
- Each of the functional blocks 11 to 14 can be configured by any of hardware, DSP (Digital Signal Processor), and software.
- DSP Digital Signal Processor
- each of the functional blocks 11 to 14 actually comprises a CPU, a RAM, a ROM and the like of a computer, and a program stored in a storage medium such as a RAM, a ROM, a hard disk or a semiconductor memory Is realized by operating.
- the user terminal 200B- 3 of group B which is the job requester, has the terminal communication unit 21, the key generation unit 22, the job request notification generation unit 23, the job contract notification decryption unit 24, and the execution result notification as its functional configuration.
- An acquisition unit 25, a compensation payment notification generation unit 26 and an execution result reception unit 27 are provided.
- Each of these functional blocks 21 to 27 can be configured by either hardware, DSP, or software.
- each of the functional blocks 21 to 27 actually comprises a CPU, a RAM, a ROM and the like of a computer, and a program stored in a storage medium such as a RAM, a ROM, a hard disk or a semiconductor memory Is realized by operating.
- each of these functional blocks 31 to 37 can be configured by either hardware, DSP, or software.
- each of the functional blocks 31 to 37 is actually configured to include a CPU, a RAM, a ROM, etc. of a computer, and a program stored in a storage medium such as a RAM, a ROM, a hard disk or a semiconductor memory Is realized by operating.
- the node communication unit 11 of the node device 100B belonging to the group B mutually communicates with the terminal communication unit 21 of the user terminal 200B- 3 belonging to the same group B.
- the node communication unit 11 of the node device 100C belonging to the group C mutually communicates with the terminal communication unit 31 of the user terminal 200C- 3 belonging to the same group C.
- the node communication unit 11 and the terminal communication units 21 and 31 have a function of exchanging data via a communication network such as the Internet.
- the key generation unit 22 of the user terminal 200B- 3 generates a public key and a secret key.
- a known technique can be applied to key generation.
- the public key and the secret key generated by the key generation unit 22 are stored in a storage unit (not shown).
- Job request notification generating unit 23 of the user terminal 200B -3 through the user terminal operation by a user terminal 200B -3, generates a job request notification described above.
- the job request notification includes information such as a request ID, the content of the requested job, the condition required for job execution, and the public key generated by the key generation unit 22.
- the job request notification generated by the job request notification generation unit 23 is transmitted by the terminal communication unit 21 to the node device 100B.
- the job request notification sent to the node device 100B is also distributed and stored in the node device 100C. Job request notification stored in the node device 100C, through access from the user terminal 200C -3 to the node device 100C, it is transmitted to the terminal communication unit 31 of the user terminal 200C -3.
- Job Contracting notification generating unit 32 of the user terminal 200C -3 through the user terminal operation by a user terminal 200C -3, generates a job contract notification described above.
- the job contract notification includes the request ID included in the job request notification received by the terminal communication unit 31, the connection destination information (URL information) of the server 300 used to provide the execution result of the job, and the like.
- the job contract notification encryption unit 33 includes the connection destination information of the server 300 in the job request notification received by the terminal communication unit 31. Encrypt with your public key.
- the job contract notification in which the connection destination information is encrypted is transmitted by the terminal communication unit 31 to the node device 100C.
- the job contract notification transmitted to the node device 100C is distributed and stored also in the node device 100B.
- Job contract notification stored in the node device 100B through the access from the user terminal 200B -3 to the node device 100B, and transmitted to the terminal communication unit 21 of the user terminal 200B -3.
- the job contract notification for the job request notification transmitted from the user terminal 200B- 3 can be identified by the request ID.
- the job contract notice decryption unit 24 of the user terminal 200B- 3 decrypts the encrypted connection destination information included in the job contract notice received by the terminal communication unit 21 with the secret key generated by the key generation unit 22. Turn The decrypted connection destination information is used when the user terminal 200B- 3 accesses the server 300 in order to receive the execution result of the job provided from the user terminal 200C- 3 to the server 300.
- the job execution unit 34 of the user terminal 200C- 3 executes the contracted job using its own computer resource.
- the execution result notification generation unit 35 generates the above-described execution result notification through the terminal operation of the user of the user terminal 200C- 3 .
- the execution result notification includes information such as the request ID described above and a hash value obtained by hashing the execution result of the job.
- the hash value of the execution result is not essential information.
- the reason for including the hash value of the execution result in the execution result notification is to publicly record the evidence for the node device 100 in which the information is shared.
- the execution result notification generated by the execution result notification generation unit 35 is transmitted by the terminal communication unit 31 to the node device 100C.
- the execution result notifications transmitted to the node device 100C are distributed and stored also in the node device 100B.
- Execution result notification stored in the node device 100B through the access from the user terminal 200B -3 to the node device 100B, and transmitted to the terminal communication unit 21 of the user terminal 200B -3. Note that it is possible to identify by the request ID that it is an execution result notification for the job request notification transmitted from the user terminal 200B- 3 .
- the execution result notification acquisition unit 25 acquires the execution result notification received by the terminal communication unit 21.
- the execution result providing unit 36 of the user terminal 200C- 3 provides the server 300 with the job execution result of the job execution unit 34. Further, the execution result receiving unit 27 of the user terminal 200B- 3 accesses the server 300 using the connection time information decrypted by the job contract notification decryption unit 24, and receives the job execution result from the server 300.
- Fee Payment notification generator 26 of the user terminal 200B -3 through the user terminal operation by a user terminal 200B -3, generates a compensation payment notification as described above.
- the remuneration payment notice contains information such as the request ID described above, the remittance destination of the remuneration, and the remuneration amount.
- the payment remittance destination is, for example, information indicating a remittance destination of virtual currency.
- the remuneration payment notice generated by the remuneration payment notice generation unit 26 is transmitted by the terminal communication unit 21 to the node device 100B.
- the remuneration payment notification transmitted to the node device 100B is also distributedly stored in the node device 100C.
- the compensation payment notification acquisition unit 37 acquires the compensation payment notification received by the terminal communication unit 31.
- the consensus processing unit 12 of the node devices 100B and 100C performs an agreement forming process for sharing the respective notifications transmitted from the user terminals 200B- 3 and 200C- 3 among the plurality of node devices 100A, 100B and 100C. That is, the consensus processing unit 12 of the node device 100B sends the job request notification sent from the user terminal 200B- 3 to the other node devices 100A and 100C, and performs predetermined agreement formation processing. In addition, the consensus processing unit 12 of the node device 100B sends the remuneration payment notification transmitted from the user terminal 200B- 3 to the other node devices 100A and 100C, and performs predetermined agreement formation processing.
- the node device 100C consensus processing unit 12 transmits the job contract notification transmitted from the user terminal 200C- 3 to the other node devices 100A and 100B, and performs predetermined agreement formation processing.
- the consensus processing unit 12 of the node device 100C transmits an execution result notification transmitted from the user terminal 200C- 3 to the other node devices 100A and 100B, and performs predetermined agreement formation processing.
- a well-known consensus algorithm can be used as the consensus formation process performed by the consensus processing unit 12.
- the consensus processing unit 12 verifies the legitimacy of each notification transmitted from the user terminals 200B- 3 and 200C- 3 by performing an agreement formation process using a consensus algorithm of PBFT (Practical Byzantine Fault Tolerance).
- PBFT Practice Byzantine Fault Tolerance
- the consensus algorithm used in the consensus processing unit 12 is not limited to PBFT.
- other consensus algorithms such as Proof of Work, Proof of Stake, Paxos, Raft, Sieve, etc. may be used.
- the storage control unit 13 stores each notification in the data storage unit 15 provided for each of the plurality of node devices 100A, 100B, and 100C only when the consensus processing unit 12 makes an agreement. As a result, only the notifications agreed upon in the plurality of node devices 100A, 100B, and 100C are distributed and stored as history information of a series of processes from the job execution request to the payment of the reward.
- the read control unit 14 reads out the corresponding notification from the data storage unit 15 in response to the notification acquisition request sent from the user terminal 200, and supplies the read notification to the node communication unit 11.
- the node communication unit 11 transmits the notification read from the data storage unit 15 by the read control unit 14 to the user terminal 200 of the request source.
- FIG. 3 is a diagram showing a flow of a series of processes performed using the job management system according to the present embodiment configured as described above. Note that FIG. 3 shows a large flow of the entire exchange performed between the user terminal 200B- 3 on the request side and the user terminal 200C- 3 on the contract side, and the consensus performed in the node device 100 is shown. The process, the storage control process, the execution of a job in the user terminal 200C- 3 on the contract side, and the like are not shown.
- a job request notification is transmitted from the user terminal 200B- 3 on the request side to the user terminal 200C- 3 on the contract side (step S1).
- the transmission of the job request notification is actually transmission from the user terminal 200B- 3 to the node device 100B, distributed storage between the node devices 100B and 100C, and the node device 100C to the user terminal 200C- 3, as described above. It is done by sending to.
- the job request notification contains a public key.
- a job contract notification is transmitted from the user terminal 200C- 3 on the contract side to the user terminal 200B- 3 on the request side (step S2).
- the transmission of the job contract notification is actually, as described above, transmission from the user terminal 200C- 3 to the node device 100C, distributed storage between the node devices 100B and 100C, and from the node device 100B to the user terminal 200B- 3. It is done by sending to.
- the job contract notification includes connection destination information encrypted by the public key.
- the user terminal 200B- 3 accesses the server 300 to establish a connection, and the user terminal 200C- 3 also makes a server connection. By accessing 300 and establishing a connection, the execution result of the job in the user terminal 200C- 3 can be exchanged via the server 300.
- communication with the server 300 is established after step S2, but may be after step S3.
- an execution result notification is transmitted from the user terminal 200C- 3 on the contract side to the user terminal 200B- 3 on the request side (step S3).
- the transmission of the execution result notification is actually transmission from the user terminal 200C- 3 to the node device 100C, distributed storage between the node devices 100B and 100C, and transmission from the node device 100B to the user terminal 200B- 3 as described above. It is done by sending to.
- the request-side user terminal 200B- 3 that has confirmed the execution result notification transmits a reward payment notification to the contract-side user terminal 200C- 3 (step S4).
- the transmission of the remuneration payment notification is actually transmission from the user terminal 200B- 3 to the node device 100B, distributed storage between the node devices 100B and 100C, and the node device 100C to the user terminal 200C- 3, as described above. It is done by sending to.
- FIG. 4 is a flowchart showing in detail the process flow of the part of step S1 shown in FIG.
- the key generation unit 22 of the user terminal 200B- 3 generates the public key and the secret key through the terminal operation by the user (step S1-1).
- the job request notification generation unit 23 generates a job request notification including the public key generated by the key generation unit 22 (step S1-2), and the terminal communication unit 21 generates the job request notification in the node device 100B. (Step S1-3).
- the consensus processing unit 12 performs the received job request notification on a plurality of nodes.
- a consensus forming process is performed to share the entire apparatuses 100A to 100C (step S1-5).
- the storage control unit 13 determines whether the consensus formation by the consensus processing unit 12 is successful (step S1-6), and stores the job request notification in the data storage unit 15 only when the agreement is formed. (Step S1-7). At this time, the job request notification is also stored in the data storage unit 15 of the other node devices 100A and 100C.
- the user of the user terminal 200C- 3 accesses the node device 100C, browses the contents of the job request notification, and decides to undertake the job.
- the terminal communication unit 31 transmits a job request notification acquisition request to the node device 100C through the terminal operation by the user (step S1-8).
- the read control unit 14 reads the job request notification from the data storage unit 15, and the node communication unit 11 reads it. It transmits to the user terminal 200C- 3 (step S1-10). In response to this, the terminal communication unit 31 of the user terminal 200C- 3 receives the job request notification transmitted from the node device 100C (step S1-11). Thus, the transmission of the job request notification from the user terminal 200B- 3 to the user terminal 200C- 3 is completed.
- FIG. 5 is a flowchart showing in detail the process flow of the portion of step S2 shown in FIG.
- the job contract notification generation unit 32 of the user terminal 200C- 3 generates a job contract notification including connection destination information for the server 300 through the terminal operation by the user (step S2-1).
- the job contract notification encryption unit 33 encrypts the connection destination information (step S2-2).
- the terminal communication unit 31 transmits the job contract notification generated as described above to the node device 100C (step S2-3).
- the consensus processing unit 12 executes the received job contract notification to a plurality of nodes.
- a consensus forming process is performed to share the entire apparatuses 100A to 100C (step S2-5).
- the storage control unit 13 determines whether or not the consensus formation by the consensus processing unit 12 is successful (step S2-6), and stores the job contract notification in the data storage unit 15 only when the agreement is formed. (Step S2-7). At this time, the job contract notification is also stored in the data storage unit 15 of the other node devices 100A and 100B.
- the user of the user terminal 200B- 3 accesses the node device 100B to confirm the request ID of the job contract notification. Then, the terminal communication unit 21 transmits a job contract notification acquisition request to the node device 100B through the terminal operation by the user (step S2-8).
- the read control unit 14 reads the job contract notification from the data storage unit 15, and the node communication unit 11 reads it. It transmits to the user terminal 200B- 3 (step S2-10).
- the terminal communication unit 21 of the user terminal 200B- 3 receives the job contract notification transmitted from the node device 100B (step S2-11). Then, the job contract notice decryption unit 24 decrypts the connection destination information included in the job contract notice (step S2-12). Thus, the transmission of the job contract notification from the user terminal 200C- 3 to the user terminal 200B- 3 is completed.
- FIG. 6 is a flowchart showing in detail the process flow of the portion of step S3 shown in FIG.
- the execution result notification generation unit 35 of the user terminal 200C- 3 generates an execution result notification through the terminal operation by the user (step S3-1).
- the terminal communication unit 31 transmits the execution result notification generated by the execution result notification generation unit 35 to the node device 100C (step S3-2).
- the consensus processing unit 12 executes the received execution result notification to a plurality of nodes.
- a consensus forming process is performed to share the entire apparatuses 100A to 100C (step S3-4).
- the storage control unit 13 determines whether or not the consensus formation by the consensus processing unit 12 is successful (step S3-5), and causes the data storage unit 15 to store an execution result notification only when the agreement is formed. (Step S3-6). At this time, the execution result notification is also stored in the data storage unit 15 of the other node devices 100A and 100B.
- the user of the user terminal 200B- 3 accesses the node device 100B and confirms the request ID of the execution result notification. Then, through the terminal operation by the user, the terminal communication unit 21 transmits an acquisition request for an execution result notification to the node device 100B (step S3-7).
- the read control unit 14 reads the execution result notification from the data storage unit 15, and the node communication unit 11 reads it. It transmits to the user terminal 200B- 3 (step S3-9).
- the terminal communication unit 21 of the user terminal 200B- 3 receives the execution result notification transmitted from the node device 100B, and the execution result notification acquiring unit 25 acquires this (step S3-10).
- the transmission of the execution result notification from the user terminal 200C- 3 to the user terminal 200B- 3 is completed.
- FIG. 7 is a flowchart showing in detail the process flow of the part of step S4 shown in FIG.
- the reward payment notification generation unit 26 notifies the reward payment notification through the terminal operation by the user. Generate (step S4-1). Then, the terminal communication unit 21 transmits the compensation payment notification generated by the compensation payment notification generation unit 26 to the node device 100B (step S4-2).
- the user of the user terminal 200B- 3 When the user of the user terminal 200B- 3 generates a compensation payment notification, in addition to the execution result notification, the history of a series of communication including the job request notification and the job contract notification may be confirmed. That is, after confirming that there is no tampering or the like in the series of communication history, it is possible to generate the remuneration payment notification by the remuneration payment notification generation unit 26 through the terminal operation by the user.
- the consensus processing unit 12 transmits the received reward payment notification to a plurality of nodes.
- a consensus forming process is performed to share the entire apparatuses 100A to 100C (step S4-4).
- the storage control unit 13 determines whether the consensus formation by the consensus processing unit 12 is successful (step S4-5), and causes the data storage unit 15 to store the reward payment notification only when the agreement is formed. (Step S4-6). At this time, the remuneration payment notice is also stored in the data storage unit 15 of the other node devices 100A and 100C.
- the user of the user terminal 200C- 3 accesses the node device 100C and browses the content of the remuneration payment notification. Then, through the terminal operation by the user, the terminal communication unit 31 transmits an acquisition request for the remuneration payment notification to the node device 100C (step S4-7).
- the read control unit 14 reads the compensation payment notification from the data storage unit 15, and the node communication unit 11 It transmits to the user terminal 200C- 3 (step S4-9).
- the terminal communication unit 31 of the user terminal 200C- 3 receives the compensation payment notification transmitted from the node device 100C, and the compensation payment notification acquiring unit 37 acquires this notification (step S4-10).
- the transmission of the remuneration payment notification from the user terminal 200B- 3 to the user terminal 200C- 3 is completed.
- the plurality of node devices 100 configured to share information with each other on the network in cooperation with each other and the plurality of nodes 100 connected to any of the plurality of nodes 100
- a plurality of node devices each including a user terminal 200 and a notification transmitted to the node device 100 from each of the requesting user terminal 200 and the contracting user terminal 200 regarding a series of processes from request of job to payment of remuneration It is distributed to 100 as history information.
- the request side and the contract side And bi-directional notifications performed between the above are distributed and stored in the plurality of node devices 100 as history information. Since this history information is shared by a plurality of node devices 100, even if the history information stored in one node device is falsified, the falsification is made from the difference with the history information stored in another node device. It can be easily verified what has been done. Therefore, according to the present embodiment, it is possible to consistently manage safely on the network from request of a job relating to use of computer resources to payment of compensation for execution based on sharing of history information that is difficult to falsify.
- the consensus processing unit 12 is not an essential component in the present invention.
- the calculation result is preferably encrypted by the public key included in the job request notification.
- the said embodiment demonstrated the example which is a server in which the node apparatus 100 provides SNS, this invention is not limited to this. Any one can be used as the node device 100 according to the present embodiment as long as it has a function of connecting a plurality of user terminals 200 under the control and sharing information among the node devices 100 in cooperation with each other.
- this invention is not limited to this.
- it may be payment of remuneration in electronic money or ordinary currency.
- payee information such as a bank transfer account may be included in the job contract notification or the execution result notification.
- each user terminal 200 which belongs in a group acquires each notification only from the node apparatus 100 of the same group
- this invention is not limited to this. That is, each user terminal 200 may be able to obtain the notification not only from the node devices 100 in the same group but also from the node devices 100 in other groups.
- the node device 100A of group A and the group The execution result notification is also acquired from at least one of the C node devices 100C. Since the node devices 100A, 100B, and 100C in each group cooperate with each other, when an acquisition request for an execution result notification is transmitted from the user terminal 200B- 3 in group B to the node device 100B, the acquisition request is sent to the group A , C, and can transmit an execution result notification from the node devices 100A, 100C to the user terminal 200B- 3 via the node device 100B.
- the user of the user terminal 200B- 3 confirms that the execution result notifications distributedly stored in the respective node devices 100A, 100B, and 100C match, that is, that they are not falsified. , Can generate compensation payment notices. The same applies to notifications other than the execution result notification.
- each node device 100 including itself is transferred to another node device 100 by transferring the notification acquisition request to another node device 100.
- Notifications may be obtained from the node device 100 and automatically verified whether they match. Then, the result of the verification may be transmitted to the user terminal 200 of the transmission source of the notification acquisition request.
- any of the above-described embodiments is merely an example of embodying the present invention, and the technical scope of the present invention should not be interpreted in a limited manner. That is, the present invention can be implemented in various forms without departing from the scope or main features of the present invention.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Tourism & Hospitality (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Primary Health Care (AREA)
- Marketing (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
ネットワーク上で連携して互いに情報を共有するようになされた複数のノード装置100と、複数のノード100の何れかと接続されたユーザ端末200とを備え、複数のノード装置100は、ジョブの依頼から報酬の支払いまでの一連のプロセスに関して、依頼側のユーザ端末および請負側のユーザ端末のそれぞれから何れかのノード装置に送信される通知を履歴情報として分散保存することにより、改ざんが困難な履歴情報の共有をベースとして、計算機リソース利用に関するジョブの依頼から実行に対する報酬の支払いまでを一貫してネットワーク上で安全に管理することができるようにする。
Description
本発明は、ジョブ管理システムに関し、特に、計算機リソース利用に関するジョブをネットワーク経由で依頼して実行するサービスの管理を行うシステムに用いて好適なものである。
近年、企業における必要経費の削減等を目的として、業務のアウトソーシング化が進んでいる。コンピュータを使って行う業務に関しては、必要な計算機リソース(CPU、GPU、メモリ、ストレージ等)を必要なときに使用し、使用量に応じて料金を支払うといった、計算機リソース利用の「オンデマンド型のアウトソーシング」が進みつつある。また、不特定多数の人の寄与を募り、必要とするサービスを取得する「クラウドソーシング」も浸透しつつある。
従来、計算機リソースの割り当てを管理するシステムが知られている(例えば、特許文献1~3参照)。特許文献1に記載のジョブ管理装置では、複数のバッチシステムをP2Pにおけるピアとして分散し、それらバッチシステムを連携させて情報を共有化する。そして、各バッチシステムにおけるジョブの情報を相互のバッチシステムで伝播させることにより、ジョブを実行させる暇なバッチシステムの計算機リソースを決定し、多忙なバッチシステムのジョブを暇なバッチシステムに投入する。
特許文献2に記載の計算機リソース分配システムは、複数のサービス間で余剰のリソースを融通でき、余剰リソースの維持コストを低減できるようにしたものである。具体的には、待機系計算機リソースは、少なくともアプリケーションがインストールされていないデッドスタンバイ状態を持ち、このデッドスタンバイ状態の計算機リソースを複数サービスや複数ユーザで共有することで、遊休計算機リソースの使用率の向上やサーバ統合を実現する。また、個々のサービスに関し過去の稼動履歴を用いて負荷予測を行い、余剰のでるサービスから確保して、維持している遊休計算機リソースを予測結果に応じて投入する。
特許文献3に記載の計算機リソース管理システムは、処理の実行の際に用いられる計算機リソースを専有プールと共有プールとに分けて管理する。具体的には、処理の実行のために予約される計算機リソースの台数として最低限必要な台数および最大で必要な台数の入力を受け付けてメモリに格納するとともに、計算機リソースの性能の下限値や支払い可能な金額の上限値等の入力を受け付けてメモリに格納し、最低限必要な台数および最大で必要な台数に応じて専有プールと共有プールに計算機リソースの予約を割り振るものである。
しかしながら、上記特許文献1,2に記載のシステムは、一定の条件を満たす計算機リソースにジョブを自動的に割り当てるものであり、計算機リソース利用のオンデマンド型アウトソーシングやクラウドソーシングに活用するには不適である。一方、上記特許文献3に記載システムでは、支払い可能な金額の上限値を条件の1つとして計算機リソースの予約を割り振るものであるが、実際の支払いのプロセスについては何ら記載されていない。
これに対し、特許文献4には、SNSを介してジョブを依頼することが記載され、特許文献5には、SNSを介して報酬の支払いを行うことが記載されている。特許文献4に記載のマッチングシステムでは、登録可能な目的別のカテゴリの1つとして、仕事を探しているユーザのカテゴリおよび仕事を提供するユーザのカテゴリを含み、ユーザから登録されたユーザプロファイルの情報をもとにマッチングを行う。
特許文献5に記載のソーシャル支払装置は、SNSを通して、電子支払を促進するように構成されたシステムである。具体的には、ネットワークインターフェースを介してユーザから支払命令を受信すると、支払を受領するフレンド、支払の資金源および支払の額を指定するようにユーザに指示するとともに、支払に関する償還コードを生成し、ネットワークインターフェースを介して支払および償還コードをフレンドに通知する。
しかしながら、計算機リソース利用に関するジョブをネットワーク経由で依頼して実行する場合に、ジョブの依頼から実行に対する報酬の支払いまでを一貫してネットワーク上で管理する仕組みは提供されていない。
本発明は、このような問題を解決するために成されたものであり、計算機リソース利用に関するジョブをネットワーク経由で依頼して実行するサービスに関して、ジョブの依頼から実行に対する報酬の支払いまでを一貫してネットワーク上で安全に管理する仕組みを提供することを目的とする。
上記した課題を解決するために、本発明のジョブ管理システムは、ネットワーク上で連携して互いに情報を共有するようになされた複数のノード装置と、それぞれが計算機リソースを持ち、複数のノード装置の何れかと接続されて、ジョブの依頼またはジョブの実行を行い得る複数のユーザ端末とを備える。複数のノード装置は、一のユーザ端末において行われるジョブの依頼から、他のユーザ端末において計算機リソースを利用して行われるジョブの実行を経て、ジョブの実行に対する報酬の支払いまでの一連のプロセスに関して、一のユーザ端末および他のユーザ端末のそれぞれから何れかのノード装置に送信される通知を履歴情報として分散保存する。
上記のように構成した本発明によれば、計算機リソース利用に関するジョブをネットワーク経由で依頼して実行するサービスに関して、ジョブの依頼から実行に対する報酬の支払いまでの一連のプロセスにおいて、依頼側と請負側との間で行われる双方向の通知が履歴情報として、複数のノード装置に分散して保存される。この履歴情報は複数のノード装置で共有されるので、1つのノード装置に保存されている履歴情報が改ざんされても、他のノード装置に保存されている履歴情報との違いから、改ざんが行われたことを容易に検証することができる。よって、本発明によれば、改ざんが困難な履歴情報の共有をベースとして、計算機リソース利用に関するジョブの依頼から実行に対する報酬の支払いまでを一貫してネットワーク上で安全に管理することができる。
以下、本発明の一実施形態を図面に基づいて説明する。図1は、本実施形態によるジョブ管理システムの全体構成例を示す図である。本実施形態のジョブ管理システムは、計算機リソース利用に関するジョブをネットワーク経由で依頼して実行するサービスの管理を行うシステムである。
図1に示すように、本実施形態のジョブ管理システムは、複数のノード装置100A,100B,100C・・・と、複数のユーザ端末200A-1,200A-2,200A-3・・・,200B-1,200B-2,200B-3・・・,200C-1,200C-2,200C-3・・・とを備えている。なお、以下の説明において、複数のノード装置の中の何れかを特に区別しないときは、単にノード装置100と記す。また、複数のユーザ端末の中の何れかを特に区別しないときは、単にユーザ端末200A,200B,200Cまたはユーザ端末200と記す。
複数のノード装置100は、ネットワーク上で連携して互いに情報を共有するようになされている。各ノード装置100は、互いの連携を管理する機能構成として管理制御部(プログラムにより実装される)を有している。各ノード装置100の管理制御部はそれぞれ、連携している各ノード装置100のインスタンス情報をリストをとして保持しており、このリストによって、どのノード装置100が連携されているのかを把握可能になっている。
複数のノード装置100のうち、何れか1つが有する管理制御部は、各ノード装置100の管理制御部を統括する機能を持つ。以下、この統括機能を有する管理制御部を「マスター管理制御部」と呼ぶ。マスター管理制御部は、連携の中に新たに追加されるノード装置があると、当該追加されたノード装置からインスタンスの情報を取得してリストに追加し、追加後のリストを全ノード装置100(既存のノード装置100および新たに追加されたノード装置100)に配信することにより、連携を更新する。
すなわち、新しいインスタンスを立ててノード装置100が追加されると、当該追加されたノード装置100の管理制御部は、自身のインスタンス情報をマスター管理制御部に送信する。マスター管理制御部は、このインスタンス情報を受けると、自身が管理しているリストに新規のインスタンス情報を追加することにより、リストを更新する。そして、マスター管理制御部は、更新したリストを、新たに追加されたノード装置100の管理制御部に送信することより、当該ノード装置100を新たに連携に加える。また、マスター管理制御部は、更新したリストを既存のノード装置100の管理制御部にも配信することにより、新たなノード装置100が連携に加わったことを知らせる。
以上により、新たに連携に参加したノード装置100(新規のインスタンス)をいち早く全てのノード装置100に伝搬させ、追加されたノード装置100から送信される通知(詳細は後述する)を漏れなく処理することができるようになる。
また、複数のユーザ端末200は、それぞれが計算機リソースを持ち、複数のノード100の何れかと接続されて、ジョブの依頼またはジョブの実行を行い得るものである。図1の例において、複数のユーザ端末200A-1,200A-2,200A-3は、ノード装置100Aに接続されている。複数のユーザ端末200B-1,200B-2,200B-3は、ノード装置100Bに接続されている。複数のユーザ端末200C-1,200C-2,200C-3は、ノード装置100Cに接続されている。
以下では、説明の便宜上、ノード装置100Aおよびこれに接続された複数のユーザ端末200A-1,200A-2,200A-3をグループAと称する。同様に、ノード装置100Bおよびこれに接続された複数のユーザ端末200B-1,200B-2,200B-3をグループB、ノード装置100Cおよびこれに接続された複数のユーザ端末200C-1,200C-2,200C-3をグループCと称するものとする。
ノード装置100は、例えばSNS(ソーシャル・ネットワーク・サービス)を提供するサーバである。すなわち、グループAのノード装置100Aは、グループAのユーザ端末200Aに対してSNSを提供する。これにより、グループAに属する複数のユーザ端末200Aは、それぞれからノード装置100Aに提供される投稿情報やコメント情報などを閲覧および取得することが可能となっている。
同様に、グループBのノード装置100Bは、グループBのユーザ端末200Bに対してSNSを提供する。これにより、グループBに属する複数のユーザ端末200Bは、それぞれからノード装置100Bに提供される投稿情報やコメント情報などを閲覧および取得することが可能となっている。また、グループCのノード装置100Cは、グループCのユーザ端末200Cに対してSNSを提供する。これにより、グループCに属する複数のユーザ端末200Cは、それぞれからノード装置100Cに提供される投稿情報やコメント情報などを閲覧および取得することが可能となっている。
各ユーザ端末200A,200B,200Cから各ノード装置100A,100B,100Cに提供される投稿情報やコメント情報は、上述したように、互いに連携している複数のノード装置100A,100B,100Cで共有される。これにより、あるグループのユーザ端末200から提供された投稿情報やコメント情報は、他のグループのユーザ端末200からも閲覧および取得すること可能である。なお、ユーザ端末200からノード装置100に投稿情報やコメント情報を投稿する際に、それが複数のノード装置100A,100B,100Cで共有されることを許可するか否かを指定できるようにしてもよい。
本実施形態のジョブ管理システムは、ジョブの依頼を受けたユーザ端末200からジョブの依頼を行ったユーザ端末200に対してジョブの実行結果を提供するためのサーバ300を更に備えている。このサーバ300は、ネットワーク上で複数のノード装置100と連携して互いに情報を共有するようには構成されていない。
図1では、グループBのユーザ端末200B-3とグループCのユーザ端末200C-3との間で、ノード装置100B,100Cを介してジョブに関する通知を相互に行い、ジョブの実行結果をサーバ300を介して提供するケースを図示している。ジョブに関する通知は、ジョブの依頼から報酬の支払いまでの一連のプロセスに関連する通知である。本実施形態では、一連の通知については複数のノード装置100で共有することによって改ざん不能性を高め、ジョブの実行結果そのものは当事者どうしのみで授受できるようにしている。
すなわち、複数のノード装置100A,100B,100Cは、一のユーザ端末(例えば、グループBのユーザ端末200B-3)において行われるジョブの依頼から、他のユーザ端末(例えば、グループCのユーザ端末200C-3)において計算機リソースを利用して行われるジョブの実行を経て、ジョブの実行に対する報酬の支払いまでの一連のプロセスに関して、一のユーザ端末および他のユーザ端末のそれぞれからノード装置100B,100Cに送信される通知を履歴情報として分散保存する。ここで、通知をSNSの投稿情報と同様にユーザ端末200からノード装置100に提供することにより、通知が複数のノード装置100A,100B,100Cで共有され、複数のユーザ端末200A,200B,200Cから閲覧および取得可能な状態となる。
複数のノード装置100において分散保存する通知は、具体的には以下の通りである。複数のノード装置100は、これらの各通知を、所定の識別情報(例えば、依頼時に生成する依頼ID)に関連付けて履歴情報として分散保存する。
1.一のユーザ端末から何れかのノード装置に送信されるジョブの依頼の通知(図1の例では、グループBのユーザ端末200B-3からノード装置100Bに送信されるジョブ依頼通知)
2.他のユーザ端末から何れかのノード装置に送信されるジョブの請負の通知(図1の例では、グループCのユーザ端末200C-3からノード装置100Cに送信されるジョブ請負通知)
3.他のユーザ端末から何れかのノード装置に送信されるジョブの実行結果の通知(図1の例では、グループCのユーザ端末200C-3からノード装置100Cに送信される実行結果通知)
4.一のユーザ端末から何れかのノード装置に送信される報酬の支払いに関する通知(図1の例では、グループBのユーザ端末200B-3からノード装置100Bに送信される報酬支払通知)
1.一のユーザ端末から何れかのノード装置に送信されるジョブの依頼の通知(図1の例では、グループBのユーザ端末200B-3からノード装置100Bに送信されるジョブ依頼通知)
2.他のユーザ端末から何れかのノード装置に送信されるジョブの請負の通知(図1の例では、グループCのユーザ端末200C-3からノード装置100Cに送信されるジョブ請負通知)
3.他のユーザ端末から何れかのノード装置に送信されるジョブの実行結果の通知(図1の例では、グループCのユーザ端末200C-3からノード装置100Cに送信される実行結果通知)
4.一のユーザ端末から何れかのノード装置に送信される報酬の支払いに関する通知(図1の例では、グループBのユーザ端末200B-3からノード装置100Bに送信される報酬支払通知)
すなわち、まず、ユーザ端末200B-3からノード装置100Bにジョブ依頼通知が送信されると、これが複数のノード装置100A,100B,100Cに分散保存される。これにより、そのジョブ依頼通知を複数のユーザ端末200A,200B,200Cから閲覧および取得可能な状態となる。図1の例では、ノード装置100Cにアクセスしてジョブ依頼通知を閲覧および取得したユーザ端末200C-3のユーザが、そのジョブを実行することを決め、ユーザ端末200C-3からノード装置100Cにジョブ請負通知を送信している。
ユーザ端末200C-3からノード装置100Cにジョブ請負通知が送信されると、これが複数のノード装置100A,100B,100Cに分散保存される。これにより、そのジョブ請負通知を複数のユーザ端末200A,200B,200Cから閲覧および取得可能な状態となる。ユーザ端末200B-3のユーザは、ノード装置100Bにアクセスしてジョブ請負通知を閲覧および取得することにより、依頼したジョブの実行を請け負ってくれるユーザがいることを把握することができる。
ユーザ端末200C-3では、自身の計算機リソースを使用して、請け負ったジョブを実行する。ユーザ端末200C-3でジョブの実行が完了すると、その実行結果がユーザ端末200C-3からサーバ300に提供されるとともに、ユーザ端末200C-3からノード装置100Cに実行結果通知が送信される。ノード装置100Cに送信された実行結果通知は、複数のノード装置100A,100B,100Cに分散保存される。これにより、その実行結果通知を複数のユーザ端末200A,200B,200Cから閲覧および取得可能な状態となる。
ユーザ端末200B-3のユーザは、ノード装置100Bにアクセスして実行結果通知を閲覧および取得することにより、依頼したジョブの実行が完了したことを把握することができる。これに応じて、ユーザ端末200B-3からサーバ300にアクセスしてジョブの実行結果を受領する。また、ユーザ端末200B-3からノード装置100Bに報酬支払通知を送信する。
ノード装置100Bに送信された報酬支払通知は、複数のノード装置100A,100B,100Cに分散保存される。これにより、その報酬支払通知を複数のユーザ端末200A,200B,200Cから閲覧および取得可能な状態となる。ユーザ端末200C-3のユーザは、ノード装置100Cにアクセスして報酬支払通知を閲覧および取得することにより、報酬の支払いを確認することができる。
図2は、本実施形態によるノード装置100およびユーザ端末200の機能構成例を示すブロック図である。ここでは、ユーザ端末に関しては、ジョブの依頼を行うユーザ端末200B-3と、ジョブを実行するユーザ端末200C-3の機能構成を代表して示している。また、ノード装置に関しては、ユーザ端末200B-3,200C-3が接続されるノード装置100B,Cの機能構成を代表して示しているが、ノード装置100Aも同様に構成されている。
なお、ユーザ端末200B-3については、ジョブの依頼側となる場合に関連する機能構成のみを図示しているが、ユーザ端末200B-3がジョブの請負側になる場合もある。よって、ユーザ端末200B-3は、ユーザ端末200C-3について図示する機能構成も実際には備えている。同様に、ユーザ端末200C-3については、ジョブの請負側となる場合に関連する機能構成のみを図示しているが、ユーザ端末200C-3がジョブの依頼側になる場合もある。よって、ユーザ端末200C-3は、ユーザ端末200B-3について図示する機能構成も実際には備えている。
図2に示すように、ノード装置100B,100Cは、その機能構成として、ノード通信部11、コンセンサス処理部12、記憶制御部13および読出制御部14を備えている。また、ノード装置100B,100Cは、記憶媒体として、データ記憶部15を備えている。上記各機能ブロック11~14は、ハードウェア、DSP(Digital Signal Processor)、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック11~14は、実際にはコンピュータのCPU、RAM、ROMなどを備えて構成され、RAMやROM、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。
また、ジョブの依頼側となるグループBのユーザ端末200B-3は、その機能構成として、端末通信部21、鍵生成部22、ジョブ依頼通知生成部23、ジョブ請負通知復号部24、実行結果通知取得部25、報酬支払通知生成部26および実行結果受領部27を備えている。これらの各機能ブロック21~27は、ハードウェア、DSP、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック21~27は、実際にはコンピュータのCPU、RAM、ROMなどを備えて構成され、RAMやROM、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。
また、ジョブの請負側となるグループCのユーザ端末200C-3は、その機能構成として、端末通信部31、ジョブ請負通知生成部32、ジョブ請負通知暗号化部33、ジョブ実行部34、実行結果通知生成部35、実行結果提供部36および報酬支払通知取得部37を備えている。これらの各機能ブロック31~37は、ハードウェア、DSP、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック31~37は、実際にはコンピュータのCPU、RAM、ROMなどを備えて構成され、RAMやROM、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。
グループBに属するノード装置100Bのノード通信部11は、同じグループBに属するユーザ端末200B-3の端末通信部21と相互に通信を行う。グループCに属するノード装置100Cのノード通信部11は、同じグループCに属するユーザ端末200C-3の端末通信部31と相互に通信を行う。ノード通信部11および端末通信部21,31は、インターネット等の通信ネットワークを介してデータのやり取りを行う機能を有するものである。
ユーザ端末200B-3の鍵生成部22は、公開鍵および秘密鍵を生成する。なお、鍵の生成には公知の技術を適用することが可能である。鍵生成部22により生成された公開鍵および秘密鍵は、図示しない記憶部に記憶される。
ユーザ端末200B-3のジョブ依頼通知生成部23は、ユーザ端末200B-3のユーザによる端末操作を通じて、上述したジョブ依頼通知を生成する。ジョブ依頼通知は、依頼ID、依頼するジョブの内容、ジョブの実行に関して要求される条件、鍵生成部22により生成された公開鍵などの情報を含んでいる。ジョブ依頼通知生成部23により生成されたジョブ依頼通知は、端末通信部21によりノード装置100Bに送信される。ノード装置100Bに送信されたジョブ依頼通知は、ノード装置100Cにも分散保存される。ノード装置100Cに保存されたジョブ依頼通知は、ユーザ端末200C-3からノード装置100Cへのアクセスを通じて、ユーザ端末200C-3の端末通信部31へ送信される。
ユーザ端末200C-3のジョブ請負通知生成部32は、ユーザ端末200C-3のユーザによる端末操作を通じて、上述したジョブ請負通知を生成する。ジョブ請負通知は、端末通信部31が受信したジョブ依頼通知に含まれている依頼ID、ジョブの実行結果を提供するために使用するサーバ300の接続先情報(URL情報)などを含む。ジョブ請負通知暗号化部33は、ジョブ請負通知生成部32により生成されたジョブ請負通知に含まれる情報のうち、サーバ300の接続先情報を、端末通信部31が受信したジョブ依頼通知に含まれている公開鍵で暗号化する。
接続先情報が暗号化されたジョブ請負通知は、端末通信部31によりノード装置100Cに送信される。ノード装置100Cに送信されたジョブ請負通知は、ノード装置100Bにも分散保存される。ノード装置100Bに保存されたジョブ請負通知は、ユーザ端末200B-3からノード装置100Bへのアクセスを通じて、ユーザ端末200B-3の端末通信部21へ送信される。なお、ユーザ端末200B-3から送信したジョブ依頼通知に対するジョブ請負通知であることは、依頼IDにより識別することが可能である。
ユーザ端末200B-3のジョブ請負通知復号部24は、端末通信部21で受信したジョブ請負通知に含まれている暗号化済みの接続先情報を、鍵生成部22により生成された秘密鍵で復号化する。復号化した接続先情報は、ユーザ端末200C-3からサーバ300に提供されるジョブの実行結果を受け取るために、ユーザ端末200B-3からサーバ300へアクセスする際に利用される。
ユーザ端末200C-3のジョブ実行部34は、自身の計算機リソースを使用して、請け負ったジョブを実行する。実行結果通知生成部35は、ユーザ端末200C-3のユーザによる端末操作を通じて、上述した実行結果通知を生成する。実行結果通知は、上述の依頼ID、ジョブの実行結果をハッシュ化したハッシュ値などの情報を含む。なお、ジョブの実行結果はサーバ300に提供されるので、実行結果のハッシュ値は必須の情報ではない。実行結果通知に実行結果のハッシュ値を含めるのは、情報が共有されるノード装置100に対して公的に証拠を記録するためである。
実行結果通知生成部35により生成された実行結果通知は、端末通信部31によりノード装置100Cに送信される。ノード装置100Cに送信された実行結果通知は、ノード装置100Bにも分散保存される。ノード装置100Bに保存された実行結果通知は、ユーザ端末200B-3からノード装置100Bへのアクセスを通じて、ユーザ端末200B-3の端末通信部21へ送信される。なお、ユーザ端末200B-3から送信したジョブ依頼通知に対する実行結果通知であることは、依頼IDにより識別することが可能である。実行結果通知取得部25は、端末通信部21にて受信した実行結果通知を取得する。
ユーザ端末200C-3の実行結果提供部36は、ジョブ実行部34によるジョブの実行結果をサーバ300に提供する。また、ユーザ端末200B-3の実行結果受領部27は、ジョブ請負通知復号部24により復号化された接続際情報を使用してサーバ300にアクセスし、ジョブの実行結果をサーバ300から受領する。
ユーザ端末200B-3の報酬支払通知生成部26は、ユーザ端末200B-3のユーザによる端末操作を通じて、上述した報酬支払通知を生成する。報酬支払通知は、上述の依頼ID、報酬の送金先、報酬金額などの情報を含んでいる。報酬の送金先とは、例えば、仮想通貨の送金先を示す情報である。
報酬支払通知生成部26により生成された報酬支払通知は、端末通信部21によりノード装置100Bに送信される。ノード装置100Bに送信された報酬支払通知は、ノード装置100Cにも分散保存される。ノード装置100Cに保存された報酬支払通知は、ユーザ端末200C-3からノード装置100Cへのアクセスを通じて、ユーザ端末200C-3の端末通信部31へ送信される。なお、ユーザ端末200B-3から送信したジョブ依頼通知に対する報酬支払通知であることは、依頼IDにより識別することが可能である。報酬支払通知取得部37は、端末通信部31にて受信した報酬支払通知を取得する。
ノード装置100B,100Cのコンセンサス処理部12は、ユーザ端末200B-3,200C-3から送信される各通知を複数のノード装置100A,100B,100Cの全体で共有するための合意形成処理を行う。すなわち、ノード装置100Bのコンセンサス処理部12は、ユーザ端末200B-3から送信されるジョブ依頼通知を他のノード装置100A,100Cに送信し、所定の合意形成処理を行う。また、ノード装置100Bのコンセンサス処理部12は、ユーザ端末200B-3から送信される報酬支払通知を他のノード装置100A,100Cに送信し、所定の合意形成処理を行う。
同様に、ノード装置100Cコンセンサス処理部12は、ユーザ端末200C-3から送信されるジョブ請負通知を他のノード装置100A,100Bに送信し、所定の合意形成処理を行う。また、ノード装置100Cのコンセンサス処理部12は、ユーザ端末200C-3から送信される実行結果通知を他のノード装置100A,100Bに送信し、所定の合意形成処理を行う。
コンセンサス処理部12が行う合意形成処理として、公知のコンセンサスアルゴリズムを用いることが可能である。例えば、コンセンサス処理部12は、PBFT(Practical Byzantine Fault Tolerance)のコンセンサスアルゴリズムを用いて合意形成処理を行うことにより、ユーザ端末200B-3,200C-3から送信される各通知の正当性を検証する。なお、コンセンサス処理部12で用いるコンセンサスアルゴリズムは、PBFTに限らない。例えば、Proof of Work、Proof of Stake、Paxos、Raft、Sieveなどの他のコンセンサスアルゴリズムを用いてもよい。
記憶制御部13は、コンセンサス処理部12により合意形成された場合にのみ、複数のノード装置100A,100B,100Cがそれぞれ備えるデータ記憶部15に各通知を記憶させる。これにより、複数のノード装置100A,100B,100Cにおいて合意形成された各通知のみが、ジョブ実行の依頼から報酬の支払いまでの一連のプロセスの履歴情報として分散して保存される。
読出制御部14は、ユーザ端末200から送られてくる通知の取得要求に応じて、該当する通知をデータ記憶部15から読み出して、ノード通信部11に供給する。ノード通信部11は、読出制御部14によりデータ記憶部15から読み出された通知を、要求元のユーザ端末200に送信する。
図3は、上記のように構成した本実施形態によるジョブ管理システムを利用して行われる一連のプロセスの流れを示す図である。なお、図3では、依頼側であるユーザ端末200B-3と請負側であるユーザ端末200C-3との間で行われるやり取りの全体の大きな流れを示しており、ノード装置100において実行されるコンセンサス処理や記憶制御処理、請負側であるユーザ端末200C-3におけるジョブの実行などについては図示を省略している。
まず、依頼側のユーザ端末200B-3から請負側のユーザ端末200C-3にジョブ依頼通知を送信する(ステップS1)。このジョブ依頼通知の送信は、実際には、上述したように、ユーザ端末200B-3からノード装置100Bへの送信、ノード装置100B,100C間での分散保存、ノード装置100Cからユーザ端末200C-3への送信によって行われる。このジョブ依頼通知の中には、公開鍵が含まれている。
次に、請負側のユーザ端末200C-3から依頼側のユーザ端末200B-3にジョブ請負通知を送信する(ステップS2)。このジョブ請負通知の送信は、実際には、上述したように、ユーザ端末200C-3からノード装置100Cへの送信、ノード装置100B,100C間での分散保存、ノード装置100Bからユーザ端末200B-3への送信によって行われる。このジョブ請負通知の中には、公開鍵によって暗号化された接続先情報が含まれている。
なお、ユーザ端末200B-3がジョブ請負通知を受信して接続先情報を復号化した後は、ユーザ端末200B-3からサーバ300にアクセスして接続を確立させ、ユーザ端末200C-3からもサーバ300にアクセスして接続を確立させることにより、ユーザ端末200C-3でのジョブの実行結果を、サーバ300を介して授受できる状態となる。図3では、ステップS2の後にサーバ300との通信を確立させているが、ステップS3の後でもよい。
その後、請負側のユーザ端末200C-3から依頼側のユーザ端末200B-3に実行結果通知を送信する(ステップS3)。この実行結果通知の送信は、実際には、上述したように、ユーザ端末200C-3からノード装置100Cへの送信、ノード装置100B,100C間での分散保存、ノード装置100Bからユーザ端末200B-3への送信によって行われる。
実行結果通知を確認した依頼側のユーザ端末200B-3は、請負側のユーザ端末200C-3に報酬支払通知を送信する(ステップS4)。この報酬支払通知の送信は、実際には、上述したように、ユーザ端末200B-3からノード装置100Bへの送信、ノード装置100B,100C間での分散保存、ノード装置100Cからユーザ端末200C-3への送信によって行われる。
図4は、図3に示したステップS1の部分の処理の流れを詳細に示すフローチャートである。まず、ユーザによる端末操作を通じて、ユーザ端末200B-3の鍵生成部22が公開鍵および秘密鍵を生成する(ステップS1-1)。次いで、ジョブ依頼通知生成部23が、鍵生成部22により生成された公開鍵を含むジョブ依頼通知を生成し(ステップS1-2)、生成されたジョブ依頼通知を端末通信部21がノード装置100Bに送信する(ステップS1-3)。
ノード装置100Bでは、ユーザ端末200B-3から送信されてきたジョブ依頼通知をノード通信部11が受信すると(ステップS1-4)、コンセンサス処理部12が、当該受信されたジョブ依頼通知を複数のノード装置100A~100Cの全体で共有するための合意形成処理を行う(ステップS1-5)。
次いで、記憶制御部13は、コンセンサス処理部12による合意形成が成功したか否かを判定し(ステップS1-6)、合意形成された場合にのみ、データ記憶部15にジョブ依頼通知を記憶させる(ステップS1-7)。このとき、ジョブ依頼通知は、他のノード装置100A,100Cのデータ記憶部15にも記憶される。
一方、ユーザ端末200C-3のユーザは、ノード装置100Cにアクセスしてジョブ依頼通知の内容を閲覧し、そのジョブの実行を請け負うことを決める。この場合、端末通信部31は、ユーザによる端末操作を通じて、ジョブ依頼通知の取得要求をノード装置100Cに送信する(ステップS1-8)。
ノード装置100Cでは、ジョブ依頼通知の取得要求をユーザ端末200C-3から受信すると(ステップS1-9)、読出制御部14がジョブ依頼通知をデータ記憶部15から読み出し、これをノード通信部11がユーザ端末200C-3に送信する(ステップS1-10)。これに応じて、ユーザ端末200C-3の端末通信部31は、ノード装置100Cから送信されてきたジョブ依頼通知を受信する(ステップS1-11)。以上により、ユーザ端末200B-3からユーザ端末200C-3へのジョブ依頼通知の送信が完了する。
図5は、図3に示したステップS2の部分の処理の流れを詳細に示すフローチャートである。まず、ユーザによる端末操作を通じて、ユーザ端末200C-3のジョブ請負通知生成部32が、サーバ300への接続先情報を含むジョブ請負通知を生成する(ステップS2-1)。次いで、ジョブ請負通知暗号化部33が、接続先情報を暗号化する(ステップS2-2)。そして、以上のようにして生成されたジョブ請負通知を、端末通信部31がノード装置100Cに送信する(ステップS2-3)。
ノード装置100Cでは、ユーザ端末200C-3から送信されてきたジョブ請負通知をノード通信部11が受信すると(ステップS2-4)、コンセンサス処理部12が、当該受信されたジョブ請負通知を複数のノード装置100A~100Cの全体で共有するための合意形成処理を行う(ステップS2-5)。
次いで、記憶制御部13は、コンセンサス処理部12による合意形成が成功したか否かを判定し(ステップS2-6)、合意形成された場合にのみ、データ記憶部15にジョブ請負通知を記憶させる(ステップS2-7)。このとき、ジョブ請負通知は、他のノード装置100A,100Bのデータ記憶部15にも記憶される。
一方、ユーザ端末200B-3のユーザは、ノード装置100Bにアクセスしてジョブ請負通知の依頼IDを確認する。そして、ユーザによる端末操作を通じて、端末通信部21がジョブ請負通知の取得要求をノード装置100Bに送信する(ステップS2-8)。
ノード装置100Bでは、ジョブ請負通知の取得要求をユーザ端末200B-3から受信すると(ステップS2-9)、読出制御部14がジョブ請負通知をデータ記憶部15から読み出し、これをノード通信部11がユーザ端末200B-3に送信する(ステップS2-10)。
これに応じて、ユーザ端末200B-3の端末通信部21は、ノード装置100Bから送信されてきたジョブ請負通知を受信する(ステップS2-11)。そして、ジョブ請負通知復号部24がジョブ請負通知に含まれる接続先情報を復号化する(ステップS2-12)。以上により、ユーザ端末200C-3からユーザ端末200B-3へのジョブ請負通知の送信が完了する。
図6は、図3に示したステップS3の部分の処理の流れを詳細に示すフローチャートである。まず、ユーザによる端末操作を通じて、ユーザ端末200C-3の実行結果通知生成部35が、実行結果通知を生成する(ステップS3-1)。そして、実行結果通知生成部35により生成された実行結果通知を、端末通信部31がノード装置100Cに送信する(ステップS3-2)。
ノード装置100Cでは、ユーザ端末200C-3から送信されてきた実行結果通知をノード通信部11が受信すると(ステップS3-3)、コンセンサス処理部12が、当該受信された実行結果通知を複数のノード装置100A~100Cの全体で共有するための合意形成処理を行う(ステップS3-4)。
次いで、記憶制御部13は、コンセンサス処理部12による合意形成が成功したか否かを判定し(ステップS3-5)、合意形成された場合にのみ、データ記憶部15に実行結果通知を記憶させる(ステップS3-6)。このとき、実行結果通知は、他のノード装置100A,100Bのデータ記憶部15にも記憶される。
一方、ユーザ端末200B-3のユーザは、ノード装置100Bにアクセスして実行結果通知の依頼IDを確認する。そして、ユーザによる端末操作を通じて、端末通信部21が実行結果通知の取得要求をノード装置100Bに送信する(ステップS3-7)。
ノード装置100Bでは、実行結果通知の取得要求をユーザ端末200B-3から受信すると(ステップS3-8)、読出制御部14が実行結果通知をデータ記憶部15から読み出し、これをノード通信部11がユーザ端末200B-3に送信する(ステップS3-9)。これに応じて、ユーザ端末200B-3の端末通信部21は、ノード装置100Bから送信されてきた実行結果通知を受信し、これを実行結果通知取得部25が取得する(ステップS3-10)。以上により、ユーザ端末200C-3からユーザ端末200B-3への実行結果通知の送信が完了する。
図7は、図3に示したステップS4の部分の処理の流れを詳細に示すフローチャートである。まず、ユーザ端末200B-3のユーザが、図6のように受信した実行結果通知の確認によってジョブの実行完了を把握した場合、ユーザによる端末操作を通じて、報酬支払通知生成部26が報酬支払通知を生成する(ステップS4-1)。そして、報酬支払通知生成部26により生成された報酬支払通知を、端末通信部21がノード装置100Bに送信する(ステップS4-2)。
なお、ユーザ端末200B-3のユーザが報酬支払通知を生成する際、実行結果通知に加えて、ジョブ依頼通知およびジョブ請負通知を含めた一連の通信の履歴を確認するようにしてもよい。すなわち、一連の通信の履歴に改ざん等の不正がないことを確認した上で、ユーザによる端末操作を通じて、報酬支払通知生成部26により報酬支払通知を生成するようにすることが可能である。
ノード装置100Bでは、ユーザ端末200B-3から送信されてきた報酬支払通知をノード通信部11が受信すると(ステップS4-3)、コンセンサス処理部12が、当該受信された報酬支払通知を複数のノード装置100A~100Cの全体で共有するための合意形成処理を行う(ステップS4-4)。
次いで、記憶制御部13は、コンセンサス処理部12による合意形成が成功したか否かを判定し(ステップS4-5)、合意形成された場合にのみ、データ記憶部15に報酬支払通知を記憶させる(ステップS4-6)。このとき、報酬支払通知は、他のノード装置100A,100Cのデータ記憶部15にも記憶される。
一方、ユーザ端末200C-3のユーザは、ノード装置100Cにアクセスして報酬支払通知の内容を閲覧する。そして、ユーザによる端末操作を通じて、端末通信部31が報酬支払通知の取得要求をノード装置100Cに送信する(ステップS4-7)。
ノード装置100Cでは、報酬支払通知の取得要求をユーザ端末200C-3から受信すると(ステップS4-8)、読出制御部14が報酬支払通知をデータ記憶部15から読み出し、これをノード通信部11がユーザ端末200C-3に送信する(ステップS4-9)。これに応じて、ユーザ端末200C-3の端末通信部31は、ノード装置100Cから送信されてきた報酬支払通知を受信し、これを報酬支払通知取得部37が取得する(ステップS4-10)。以上により、ユーザ端末200B-3からユーザ端末200C-3への報酬支払通知の送信が完了する。
以上詳しく説明したように、本実施形態のジョブ管理システムは、ネットワーク上で連携して互いに情報を共有するようになされた複数のノード装置100と、複数のノード100の何れかと接続された複数のユーザ端末200とを備え、ジョブの依頼から報酬の支払いまでの一連のプロセスに関して、依頼側のユーザ端末200および請負側のユーザ端末200のそれぞれからノード装置100に送信される通知を複数のノード装置100に履歴情報として分散保存するようにしている。
このように構成した本実施形態によれば、計算機リソース利用に関するジョブをネットワーク経由で依頼して実行するサービスに関して、ジョブの依頼から実行に対する報酬の支払いまでの一連のプロセスにおいて、依頼側と請負側との間で行われる双方向の通知が履歴情報として、複数のノード装置100に分散して保存される。この履歴情報は複数のノード装置100で共有されるので、1つのノード装置に保存されている履歴情報が改ざんされても、他のノード装置に保存されている履歴情報との違いから、改ざんが行われたことを容易に検証することができる。よって、本実施形態によれば、改ざんが困難な履歴情報の共有をベースとして、計算機リソース利用に関するジョブの依頼から実行に対する報酬の支払いまでを一貫してネットワーク上で安全に管理することができる。
また、上記実施形態では、ノード装置100におけるコンセンサス処理部12によって合意形成がとれた通知のみをデータ記憶部15に記憶させているので、各通知の改ざん不能性をより高めることができる。なお、このようにコンセンサス処理を行うことがより好ましいが、本発明においてコンセンサス処理部12は必須の構成ではない。
なお、ブロックチェーン技術を用いてコンセンサス処理を行うとともに、ブロック内に各通知を保存するようにすることにより、各通知の改ざん不能性を更に向上させることが可能である。
上記実施形態では、ジョブの実行結果を、互いに連携している複数のノード装置100以外のサーバ300を介して授受する例について説明したが、ノード装置100を介して授受するようにしてもよい。この場合、計算結果は、ジョブ依頼通知に含まれている公開鍵によって暗号化するのが好ましい。
また、上記実施形態では、ノード装置100がSNSを提供するサーバである例について説明したが、本発明はこれに限定されない。配下に複数のユーザ端末200を接続するとともに、ノード装置100間で互いに連携して情報を共有する機能を有するものであれば、何れも本実施形態のノード装置100として用いることが可能である。
また、上記実施形態では、報酬の支払いを仮想通貨によって行う例について説明したが、本発明はこれに限定されない。例えば、電子マネーあるいは通常の通貨による報酬の支払いとしてもよい。通常の通貨による報酬の支払いとする場合、銀行振込口座等の支払先情報をジョブ請負通知または実行結果通知に含めるようにしてよい。
また、上記実施形態では、グループ内に属する各ユーザ端末200は、同じグループのノード装置100のみから各通知を取得する例について説明したが、本発明はこれに限定されない。すなわち、各ユーザ端末200が、同じグループのノード装置100だけでなく、他のグループのノード装置100からも通知を取得できるようにしてもよい。
例えば、グループBのユーザ端末200B-3が実行結果通知をノード装置100から取得する際に、グループBのノード装置100Bから実行結果通知を取得することに加えて、グループAのノード装置100AおよびグループCのノード装置100Cの少なくとも一方からも実行結果通知を取得する。各グループのノード装置100A,100B,100Cは互いに連携しているので、グループBのユーザ端末200B-3から実行結果通知の取得要求がノード装置100Bに送信されたときに、その取得要求をグループA,Cのノード装置100A,100Cに転送し、ノード装置100A,100Cからノード装置100Bを介してユーザ端末200B-3に実行結果通知を送信することが可能である。
このようにすれば、ユーザ端末200B-3のユーザは、各ノード装置100A,100B,100Cに分散保存されている実行結果通知が一致していること、つまり改ざんされていないことを確認した上で、報酬支払通知の生成を行うことができる。実行結果通知以外の他の通知についても同様である。
また、一のノード装置100が一のユーザ端末200から通知取得要求を取得したときに、その通知取得要求を他のノード装置100に転送することにより、一のノード装置100が自身も含めて各ノード装置100から通知を取得し、それらが一致しているか否かを自動的に検証するようにしてもよい。そして、検証の結果を、通知取得要求の送信元のユーザ端末200に送信するようにしてもよい。
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
12 コンセンサス処理部
13 記憶制御部
14 読出制御部
15 データ記憶部
22 鍵生成部
23 ジョブ依頼通知生成部
24 ジョブ請負通知復号部
25 実行結果通知取得部
26 報酬支払通知生成部
27 実行結果受領部
32 ジョブ請負通知生成部
33 ジョブ請負通知暗号化部
34 ジョブ実行部
35 実行結果通知生成部
36 実行結果提供部
37 報酬支払通知取得部
100 ノード装置
200 ユーザ端末
300 サーバ
13 記憶制御部
14 読出制御部
15 データ記憶部
22 鍵生成部
23 ジョブ依頼通知生成部
24 ジョブ請負通知復号部
25 実行結果通知取得部
26 報酬支払通知生成部
27 実行結果受領部
32 ジョブ請負通知生成部
33 ジョブ請負通知暗号化部
34 ジョブ実行部
35 実行結果通知生成部
36 実行結果提供部
37 報酬支払通知取得部
100 ノード装置
200 ユーザ端末
300 サーバ
Claims (7)
- 計算機リソース利用に関するジョブをネットワーク経由で依頼して実行するサービスの管理を行うシステムであって、
ネットワーク上で連携して互いに情報を共有するようになされた複数のノード装置と、
それぞれが上記計算機リソースを持ち、上記複数のノード装置の何れかと接続されて、上記ジョブの依頼または上記ジョブの実行を行い得る複数のユーザ端末とを備え、
上記複数のノード装置は、一のユーザ端末において行われる上記ジョブの依頼から、他のユーザ端末において上記計算機リソースを利用して行われる上記ジョブの実行を経て、上記ジョブの実行に対する報酬の支払いまでの一連のプロセスに関して、上記一のユーザ端末および上記他のユーザ端末のそれぞれから何れかのノード装置に送信される通知を履歴情報として分散保存することを特徴とするジョブ管理システム。 - 上記複数のノード装置は、上記一のユーザ端末から何れかのノード装置に送信される上記ジョブ依頼通知、上記他のユーザ端末から何れかのノード装置に送信される上記ジョブ請負通知、上記他のユーザ端末から何れかのノード装置に送信される上記ジョブの実行結果通知、および、上記一のユーザ端末から何れかのノード装置に送信される上記報酬支払通知を、所定の識別情報に関連付けて上記履歴情報として分散保存することを特徴とする請求項1に記載のジョブ管理システム。
- 上記一のユーザ端末から何れかのノード装置に送信される上記ジョブ依頼通知は公開鍵を含み、
上記他のユーザ端末から何れかのノード装置に送信される通知の少なくとも一部は、上記公開鍵によって暗号化されることを特徴とする請求項2に記載のジョブ管理システム。
- 上記他のユーザ端末から何れかのノード装置に送信される上記ジョブ請負通知は、上記ジョブの実行結果を提供するためのサーバに対する接続先情報を含み、
上記他のユーザ端末は、上記ジョブの実行結果を上記サーバに提供し、
上記一のユーザ端末は、上記ジョブ請負通知に含まれる上記接続先情報をもとに上記サーバにアクセスし、上記ジョブの実行結果を取得する
ことを特徴とする請求項2に記載のジョブ管理システム。 - 上記一のユーザ端末から何れかのノード装置に送信される上記ジョブ依頼通知は公開鍵を含み、
上記ジョブ請負通知に含まれる上記接続先情報は、上記公開鍵によって暗号化されることを特徴とする請求項4に記載のジョブ管理システム。 - 上記複数のノード装置は、
上記一のユーザ端末または上記他のユーザ端末から何れかのノード装置に送信される通知について、上記複数のノード装置の全体で上記通知を共有するための合意形成処理を行うコンセンサス処理部と、
上記コンセンサス処理部により合意形成された通知のみを上記履歴情報として記憶するように制御する記憶制御部とを備えたことを特徴とする請求項1~5の何れか1項に記載のジョブ管理システム。 - 上記複数のノード装置は、連携している各ノード装置のインスタンス情報をリストとして保持することによって互いの連携を管理する管理制御部を備え、当該複数のノード装置の何れか1つが有する管理制御部は、各ノード装置の管理制御部を統括する機能を持つマスター管理制御部であり、
上記マスター管理制御部は、新たに追加されるノード装置の管理制御部からインスタンス情報を取得して上記リストに追加し、追加後のリストを全ノード装置の管理制御部に配信することにより、連携を更新する処理を実行することを特徴とする請求項1~3の何れか1項に記載のジョブ管理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017158227A JP2019036218A (ja) | 2017-08-18 | 2017-08-18 | ジョブ管理システム |
JP2017-158227 | 2017-08-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019035469A1 true WO2019035469A1 (ja) | 2019-02-21 |
Family
ID=65362183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/030395 WO2019035469A1 (ja) | 2017-08-18 | 2018-08-16 | ジョブ管理システム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2019036218A (ja) |
WO (1) | WO2019035469A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7102459B2 (ja) * | 2020-02-28 | 2022-07-19 | 株式会社リコー | 提供者端末、ネットワークシステム、サービス提供方法およびプログラム |
JP7504401B2 (ja) | 2020-12-02 | 2024-06-24 | Zerobillbank Japan株式会社 | 作業管理方法、情報処理端末、及びプログラム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001318888A (ja) * | 2000-05-11 | 2001-11-16 | Hitachi Ltd | 計算システム |
JP2010232782A (ja) * | 2009-03-26 | 2010-10-14 | Brother Ind Ltd | コンテンツ配信システム、ノード装置、サーバ装置、コンテンツ配信方法、コンテンツ中継処理プログラム及びスケジュール生成処理プログラム |
JP2011154531A (ja) * | 2010-01-27 | 2011-08-11 | Nomura Research Institute Ltd | クラウドコンピューティングシステム |
JP2015511421A (ja) * | 2012-01-17 | 2015-04-16 | 中▲興▼通▲訊▼股▲フン▼有限公司 | 遠隔ネットワーク管理システム及びその操作方法 |
JP2016081134A (ja) * | 2014-10-10 | 2016-05-16 | 山下 健一 | 広告閲覧促進システム、情報処理方法及びプログラム |
-
2017
- 2017-08-18 JP JP2017158227A patent/JP2019036218A/ja active Pending
-
2018
- 2018-08-16 WO PCT/JP2018/030395 patent/WO2019035469A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001318888A (ja) * | 2000-05-11 | 2001-11-16 | Hitachi Ltd | 計算システム |
JP2010232782A (ja) * | 2009-03-26 | 2010-10-14 | Brother Ind Ltd | コンテンツ配信システム、ノード装置、サーバ装置、コンテンツ配信方法、コンテンツ中継処理プログラム及びスケジュール生成処理プログラム |
JP2011154531A (ja) * | 2010-01-27 | 2011-08-11 | Nomura Research Institute Ltd | クラウドコンピューティングシステム |
JP2015511421A (ja) * | 2012-01-17 | 2015-04-16 | 中▲興▼通▲訊▼股▲フン▼有限公司 | 遠隔ネットワーク管理システム及びその操作方法 |
JP2016081134A (ja) * | 2014-10-10 | 2016-05-16 | 山下 健一 | 広告閲覧促進システム、情報処理方法及びプログラム |
Non-Patent Citations (1)
Title |
---|
"Blockchain, IoT revolutionist", NIKKEI ELECTRONICS, 20 July 2017 (2017-07-20), pages 30, ISSN: 0385-1680 * |
Also Published As
Publication number | Publication date |
---|---|
JP2019036218A (ja) | 2019-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pal et al. | On the integration of blockchain to the internet of things for enabling access right delegation | |
US11348097B2 (en) | Digital contracts in blockchain environments | |
CN109522735B (zh) | 一种基于智能合约的数据权限验证方法及装置 | |
Barmouta et al. | Gridbank: A grid accounting services architecture (gasa) for distributed systems sharing and integration | |
US8935747B2 (en) | Access right management system, access right management method, and access right management program | |
Belenkiy et al. | Making p2p accountable without losing privacy | |
US10628807B2 (en) | Techniques for transaction management | |
KR102569409B1 (ko) | 가상 분산 원장 네트워크를 위한 시스템 및 방법 | |
JP7090903B2 (ja) | 情報処理システム、データ提供方法、および情報処理システムの製造方法 | |
CN112231741B (zh) | 基于区块链系统的数据处理方法、装置、介质及电子设备 | |
Abadi et al. | Anylog: a grand unification of the internet of things | |
JP2021175193A (ja) | データオーナシッププラットフォーム用のマルチキャスト暗号化スキーム | |
WO2019186978A1 (ja) | 電子取引システム、取引サーバ、検証サーバ、電子取引方法及びプログラム | |
Liu et al. | The barriers to overthrowing internet feudalism | |
JP7174300B2 (ja) | コンテンツ利用システム、許諾端末、閲覧端末、配信端末、および、コンテンツ利用プログラム | |
WO2019035469A1 (ja) | ジョブ管理システム | |
US12081653B2 (en) | Systems and methods for providing secure, encrypted communications across distributed computer networks by coordinating cryptography-based digital repositories in order to perform blockchain operations in decentralized applications | |
US20230246817A1 (en) | Systems and methods for generating secure, encrypted communications across distributed computer networks for authorizing use of cryptography-based digital repositories in order to perform blockchain operations in decentralized applications | |
Cai et al. | Socialchain: Decoupling social data and applications to return your data ownership | |
JP7074319B2 (ja) | 正当性管理システム、正当性管理方法及びプログラム | |
CN114641967A (zh) | 区块链交易的回调机制 | |
KR102193890B1 (ko) | 블록체인에 기반한, 분산형 컴퓨팅 자원 공유 시스템 상에서의 워킹 그룹별 동일한 키를 사용하는 보안 통신 제공 방법 | |
KR102176128B1 (ko) | 블록체인에 기반한, 분산형 컴퓨팅 자원 공유 시스템 상에서의 보안 통신 제공 방법 | |
JP7327781B2 (ja) | マッチング支援装置、マッチング支援方法、コンピュータプログラム及び記録媒体 | |
KR20220076486A (ko) | 블록체인 트랜잭션들을 위한 콜-백 메커니즘들 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18846282 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18846282 Country of ref document: EP Kind code of ref document: A1 |