Systems, computer implementation methods, computer programs (facilitating requests to approach consensus for service transactions)
A decentralized protocol facilitates consensus among loosely coupled services by allowing individual components to communicate with immediate neighbors, addressing communication delays and costs in distributed transaction systems.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-08-02
- Publication Date
- 2026-04-14
AI Technical Summary
Loosely coupled services in distributed architectures face challenges in achieving consensus on transaction progress without relying on centralized management, leading to communication delays and increased costs.
A decentralized protocol is used for communication between service components, allowing each component to reach consensus with immediate upstream or downstream components, eliminating the need for a centralized manager and reducing communication overhead.
This approach enables rapid and efficient consensus achievement in decentralized environments, reducing storage costs and avoiding reliability issues associated with centralized systems.
Smart Images

Figure 0007845795000001 
Figure 0007845795000002 
Figure 0007845795000003
Abstract
Description
Technical Field
[0001] One or more embodiments described herein relate to reaching a consensus for a transaction request, and more specifically, to facilitating reaching a consensus regarding the progress of a transaction request by utilizing a decentralized protocol.
Background Art
[0002] In modern times, many computing applications, such as cloud-native computing applications, do not exhibit a monolithic architecture. Rather, such computing applications may have a distributed architecture that includes a number of loosely coupled service components for operating one or more services, microservices, or combinations thereof, where the service components can execute individual services, microservices, or combinations thereof, such as containerized individual applications. Loosely coupled services can be attractive due to providing improvements in scalability, flexibility, maintainability, and acceleration of developer productivity compared to utilizing a monolithic architecture. To facilitate requests for transactions that include one or more of these loosely coupled services, a consensus regarding the order to continue or abort a transaction in response to a request may be sought among these one or more services.
Summary of the Invention
Problems to be Solved by the Invention
[0003] Loosely coupled services can be attractive compared to monolithic architectures because they offer improved scalability, flexibility, and maintainability, as well as accelerated developer productivity. To facilitate requests to transactions involving one or more of these loosely coupled services, a consensus may be sought among these one or more services regarding the order in which to continue or abort the transaction in response to the requests.
[0004] The following outline provides a summary to give a basic understanding of one or more embodiments described herein. This outline is not intended to identify any particular embodiment or any key or important element of any claim, define any scope thereof, or any combination thereof. The sole purpose of the outline is to present a simplified form of concepts as a prelude to the more detailed descriptions presented later. One or more embodiments described herein may describe a device, system, computer implementation method, apparatus, computer program product, or combination thereof that can facilitate reaching a consensus regarding the progress of a transaction request involving one or more services. [Means for solving the problem]
[0005] According to one embodiment, the system may include a processor that executes computer executable components stored in memory, the computer executable components including a service component that operates a service of a transaction, the service component approaches a consensus regarding the transaction's requests by communicating with one or more other service components that operate one or more other services immediately upstream or downstream of the service in the transaction.
[0006] According to another embodiment, a computer implementation method may include a service component that operates a service of a transaction, which is a system operably coupled to a processor, and the service component approaches consensus with respect to the request of the transaction, the approaching consensus step includes the service component communicating with one or more other service components that operate one or more other services immediately upstream or downstream of the service in the transaction.
[0007] In yet another embodiment, a computer program product can facilitate a process for consensus regarding the progress of a transaction request, the computer program product includes a computer-readable storage medium in which program instructions are embodied, the program instructions being executable by a processor, causing the processor to perform, with respect to a service component that operates a service of a transaction and is part of a system operably coupled to the processor, the process by the processor of the service component to approach consensus regarding the transaction request, and the process by the processor of the service component to communicate with one or more other service components that operate one or more other services immediately upstream or downstream of the service in the transaction.
[0008] The advantages of such systems, computer implementations, computer program products, or combinations thereof may include, for example, the ability to achieve consensus quickly and efficiently in a decentralized environment without the need for comprehensive management of communications. Long delays in communication between centralized transaction entities, communication entities, or combinations thereof can be eliminated. This can be beneficial, for example, in a decentralized environment that includes one or more clouds, each containing one or more service components participating in end-to-end transactions.
[0009] In one or more embodiments of the above systems, computer program products, methods, or combinations thereof, a service component may approach consensus by communicating with only one or more other service components. The advantage of such systems, computer implementations, computer program products, or combinations thereof may be that any service component avoids comprehensive knowledge of each service component in its set of service components. That is, any service component may avoid sharing knowledge about service components that are not next / previous in performing operations about a transaction. Therefore, failures of trust, security, or a combination thereof in one service component of concern may be limited to knowledge of only the next / previous one or more service components of the service of concern.
[0010] In one or more embodiments of the above system, computer program product, method, or combination thereof, or service component, the service component may approach consensus on a request without comprehensive management of communication between the service component and one or more other service components. The advantage of such a system, computer implementation method, computer program product, or combination thereof may be that consensus is achieved without utilizing comprehensive management of communication. Rather, communication can be managed by each individual service component in the set of service components of the transaction. Additionally, the utilization of processing power and memory for a comprehensive communication manager can also be avoided. Since a centralized transactional entity, communication entity, or combination thereof is not utilized and provides reduced operations on transactions, the high storage and persistence costs in a centralized transactional entity, communication entity, or combination thereof can be avoided. [Brief explanation of the drawing]
[0011] [Figure 1] A block diagram of an example of a non-limiting system that facilitates a process for consensus regarding the progress of transaction requests according to one or more embodiments described herein is shown. [Figure 2] This specification shows a block diagram of the sequence of service components in a transaction according to one or more embodiments described herein.
[0012] [Figure 3] Another block diagram of an example of a non-limiting system, including a dependency topology that facilitates a process for consensus regarding the progress of transaction requests, according to one or more embodiments described herein.
[0013] [Figure 4]Another block diagram of an example of a non-limiting system including a dependency topology that facilitates a process for consensus regarding the progress of a transaction request according to one or more embodiments described herein.
[0014] [Figure 5] A flowchart showing an exemplary consensus facilitation of a transaction provided by the non-limiting system of FIG. 1 according to one or more embodiments described herein.
[0015] [Figure 6] A state diagram that is a flowchart schematically showing examples of possible propagation of messages, the state of a single service, or a combination thereof according to one or more embodiments described herein.
[0016] [Figure 7] A flowchart showing an exemplary consensus facilitation of a transaction having paths that proceed in parallel according to one or more embodiments described herein.
[0017] [Figure 8] Another block diagram of an exemplary consensus facilitation of FIG. 7 according to one or more embodiments described herein.
[0018] [Figure 9] Yet another block diagram of an exemplary consensus facilitation of FIG. 7 according to one or more embodiments described herein.
[0019] [Figure 10] Yet another block diagram of an exemplary consensus facilitation of FIG. 7 according to one or more embodiments described herein.
[0020] [Figure 11]Three exemplary block diagrams of examples of the use of a sidecar to facilitate a process for consensus regarding the progress of a transaction request, according to one or more embodiments described herein.
[0021] [Figure 12] A flowchart of an example of a non-limiting computer-implemented method that can facilitate a process for consensus regarding the progress of a transaction request, according to one or more embodiments described herein.
[0022] [Figure 13] A continuation of the flowchart of FIG. 12 of an example of a non-limiting computer-implemented method that can facilitate a process for consensus regarding the progress of a transaction request, according to one or more embodiments described herein.
[0023] [Figure 14] A block diagram of an example of a non-limiting operating environment in which one or more embodiments described herein can be facilitated.
[0024] [Figure 15] A block diagram of an example of a non-limiting cloud computing environment, according to one or more embodiments described herein.
[0025] [Figure 16] Block diagrams of multiple examples of a non-limiting abstraction model layer, according to one or more embodiments described herein.
Best Mode for Carrying Out the Invention
[0026] The following detailed description is merely exemplary and is not intended to limit embodiments, the use or application of embodiments, or combinations thereof. Further, there is no intention to be bound by any explicit or implicit information presented in the foregoing background or summary sections or in this detailed description section.
[0027] Given the increasing use of transactional microservices or services, it is desirable to provide a method for approaching, ultimately reaching, or a combination thereof, consensus among transactional services, such as those related to transactional requests, rather than the existing use of monolithic architectures. This is especially true when, for example, one or more service components participating in a transaction that run one or more services in a transaction are distributed in a decentralized manner. This distribution can be local, comprehensive, or a combination thereof. That is, the distribution may include service components that run or participate in a transaction that is located on multiple different systems that are decentralized with respect to each other.
[0028] Distributed protocols can be used for decentralized communication to reach consensus among one or more service components participating in a transaction, such as an end-to-end transaction. That is, a transaction can be requested to be executed. Each service component can perform the services of the requested transaction. The various effects of the services performed cannot persist until all other service components involved in the transaction also succeed in performing their respective services, or a combination thereof.
[0029] Distributed protocols can be lightweight. Distributed protocols may eliminate the need to use, rely on, or a combination of a centralized manager to manage reaching consensus on the initial request of a transaction. One or more embodiments of a system, apparatus, computer implementation, or computer program product that can utilize a distributed protocol to facilitate approaching consensus, final consensus, or a combination thereof among multiple decentralized service components participating in a transaction.
[0030] In other words, one or more embodiments may include the execution of communication between one or more service components by one or more service components in a manner that does not utilize comprehensive knowledge of any participant service of all participant services in a transaction. Rather, the protocol may stipulate that one or more service components communicate only with one or more other service components that operate one or more other services immediately upstream or downstream of the service operated by one or more service components in a transaction. That is, for individual service components, communication may be performed only with one or more other service components that operate one or more other services immediately upstream or downstream of the service operated by the individual service component in a transaction, for example, using the same protocol followed by other individual service components participating in the transaction.
[0031] One or more embodiments also do not utilize a centralized log of communications between all participant service components. Instead, each participant service component may maintain its own log of only the communications in which it participated. That is, for individual service components, it may maintain its own persistent log of only the message communications in which it participated, for example, using the same protocol followed for other individual service components participating in a transaction.
[0032] One or more embodiments also do not utilize a centralized transaction, communication entity, or combination thereof, such as a manager, coordinator, controller, or combination thereof, for approaching, reaching, or a combination thereof, a consensus. Rather, each of the one or more participating service components participating in a transaction transmits communications upstream or downstream within the transaction only to one or more other service components that operate one or more other services immediately upstream or downstream of the service operated by the individual in the transaction. Thus, a transaction may include multiple paths (e.g., of one or more service components) extending outward from one another, but local communication control in the manner limited to the immediate upstream or downstream described above may still be possible.
[0033] Furthermore, the overhead of setting up centralized transaction entities, communication entities, or combinations thereof can be eliminated in a primarily decentralized environment of decentralized but loosely coupled service components. Also, long delays in communication between centralized transaction entities, communication entities, or combinations thereof can be eliminated. This can be beneficial in decentralized environments, such as those involving one or more clouds. Additionally, high storage and persistence costs associated with centralized transaction entities, communication entities, or combinations thereof can be avoided because they are not utilized, provide reduced operations with respect to transactions, or are combinations thereof. Furthermore, reliability issues associated with centralized transaction entities, communication entities, or combinations thereof, such as loss, breach, or combination of comprehensive knowledge security of participant service components, can be avoided because they are not utilized, provide reduced operations with respect to transactions, or are combinations thereof.
[0034] Herein, one or more embodiments are described with reference to the drawings. Throughout, similar reference numbers are used to refer to similar elements. Where used herein, both above and below, the term “entity” may refer to a machine, device, smart device, component, hardware, software, human being, or a combination thereof. In the following description, many specific details are given for illustrative purposes in order to provide a more complete understanding of one or more embodiments. However, it is evident that in various cases one or more embodiments can be carried out without these specific details.
[0035] Furthermore, it should be understood that the embodiments illustrated in one or more figures described herein are merely illustrative, and therefore the architecture of the embodiments is not limited to any particular order, connection, combination, or combination of the systems, devices, components or combinations thereof illustrated therein. For example, in one or more embodiments, the non-limiting systems 100, 300, 400 or combinations thereof shown in Figures 1, 3, 4 or combinations thereof, those systems or combinations thereof may further comprise one or more computers, computing-based elements or combinations thereof described herein in relation to an operating environment such as the operating environment 1400 shown in Figure 14. In one or more described embodiments, the computers, computing-based elements or combinations thereof may be used in relation to implementing one or more operations implemented by the systems, devices, components, computers or combinations thereof that are shown, described, or combined in relation to Figures 1, 3, 4 or combinations thereof, other figures described herein or combinations thereof.
[0036] Referring first to Figures 1 and 2 in general, a block diagram of an example of a non-limiting system 100 that facilitates a process for consensus regarding the progress of transaction requests, according to one or more embodiments described herein.
[0037] The non-limiting system 100 may comprise a request acceleration system 102. As shown, the request acceleration system 102 may comprise any suitable type of component, machine, device, facility, apparatus, instrumentation or combination thereof, including a processor, and may enable effective, operable, or combination thereof communication with a wired, wireless, or combination thereof network. All such embodiments are conceived. For example, the request acceleration system 102 may comprise a server device, computing device, general-purpose computer, application-specific computer, quantum computing device (e.g., quantum computer), tablet computing device, handheld device, server-class computing machine database or combination thereof, laptop computer, notebook computer, desktop computer, mobile phone, smartphone, consumer electronics, instrumentation or combination thereof, industrial, commercial, or combination thereof devices, digital assistant, multimedia internet-enabled telephone, multimedia player, other types of devices, computing devices or combination thereof. Similarly, the request acceleration system 102 may be deployed, run, or be in any suitable device, but is not limited to, server devices, computing devices, general-purpose computers, application-specific computers, quantum computing devices (e.g., quantum computers), tablet computing devices, handheld devices, server-class computing machines, databases or combinations thereof, laptop computers, notebook computers, desktop computers, mobile phones, smartphones, consumer electronics, instrumentation or combinations thereof, industrial, commercial or combinations thereof devices, digital assistants, multimedia internet-enabled telephones, multimedia players, other types of devices, computing devices or combinations thereof, or combinations thereof.
[0038] The request facilitation system 102 may be associated with (for example, accessible through) a cloud computing environment. For example, the request facilitation system 102 may be associated with a cloud computing environment 1550 as shown below with reference to Figure 15, one or more functional abstraction layers as shown below with reference to Figure 16 (for example, hardware and software layer 1660, virtualization layer 1670, management layer 1680, workload layer 1690, or a combination thereof), or a combination thereof.
[0039] It should be understood that the operation of the non-restrictive system 100, the request facilitation system 102, or a combination thereof is not limited to the execution of a single transaction, the fulfillment of one request at a time, or a combination thereof. Rather, the operation of the non-restrictive system 100, the request facilitation system 102, or a combination thereof can scale. For example, the non-restrictive system 100, the request facilitation system 102, or a combination thereof may execute one or more transactions, execute one or more other transactions, facilitate consensus on one or more other requests, or facilitate a combination of a combination of a combination thereof, or approach, reach, or a combination of a combination thereof, at least in parallel with the execution of a combination thereof. In one or more embodiments, one or more service components of the non-restrictive system 100, the request facilitation system 102, or a combination thereof may be used to execute two or more transactions containing one or more service components simultaneously. In one or more embodiments, one or more service components of the non-restrictive system 100, the request facilitation system 102, or a combination thereof may be used for communication to facilitate approaching consensus on two or more requests simultaneously.
[0040] The request acceleration system 102 may comprise one or more components, such as memory 104, processor 106, bus 105, service component 107, service component 108, or a combination thereof.
[0041] In general, the request acceleration system 102 can facilitate approaching, reaching, or a combination of reaching a consensus regarding the initial request 103 for the initial service component of a set of service components participating in a transaction. For example, service components 107 and 108 of the request acceleration system 102 may participate in an exemplary transaction 200, which is described in detail below (e.g., Figure 2).
[0042] It should be understood that one or more embodiments described herein are not limited to the use of one or more service components, communications or combinations thereof, by, about, or in any one or more specific transaction types. Rather, all suitable transaction types are conceived, including but not limited to financial, purchase, reservation, medical, information request, or combinations thereof.
[0043] As used herein, the services operated by the service component may be microservices. Additionally, alternatively, or in combination therewith, the service component may include, but not limited to, one or more preferred applications, microapplications, algorithms, programs, data, data libraries, or combinations thereof, in one or more forms. Additionally, alternatively, or in combination therewith, the service component may be containerized or provided in a containerized format.
[0044] One or more aspects of a service component may be used separately, in combination, or in combination thereof. For example, one or more of the memory or processors of the system containing the service components may be used to operate the services. For example, as shown, service component 108 may execute service 108A, and service component 107 may execute service 107A. Service component 108, service component 107, or a combination thereof may utilize processor 106, memory 104, or a combination thereof. Additionally, alternatively, or in combination thereof, processor 106 may execute one or more program instructions to cause the processor to execute service 107A, service 108A, or a combination thereof by the respective service component 107 or service component 108.
[0045] It should be understood that service components, containers, service modes, program instructions, or combinations thereof may be stored in any suitable location, such as system memory, another internal memory, memory, or combinations thereof, other locations outside the system containing the service component, or combinations thereof. For example, service component 108, modes of service component 108, containers of service component 108, program instructions for operating, executing, or combining the service component 108, or combinations thereof may be stored in any suitable location, such as memory 104, another internal memory, external memory, another external location, or combinations thereof. All service modes of any service component may be stored in the same or separate locations. All service modes of any service component may be stored in one or more systems. Service components, containers, service modes, program instructions, or combinations thereof may be accessed by any suitable method by the request acceleration system 102, processor 106, or combinations thereof, such as one or more other connections, such as communication, electric, operable, optical, wired, or wireless connections, or combinations thereof.
[0046] With respect to a transaction, each service component of the transaction's set of service components may operate one or more services of the transaction to facilitate its execution. That is, one or more services may be executed in a predetermined order, a determined order, a selectively determined order, an order determined by an entity, similarly, or a combination thereof. Such an order may include one or more parallel paths, one or more services, or a combination thereof, which may be operated at least partially in parallel with one or more other services of the transaction.
[0047] With respect to already established transactions, such as transaction 200 in Figure 2, one or more service components may have established trust with one another. For example, service components participating in transaction 200 that operate services immediately upstream, downstream, or a combination thereof with respect to each other may have established trust with one another, for example, for providing, receiving, or a combination thereof for communication.
[0048] As shown in Figure 1, one or more service components in a set of service components participating in a transaction may be decentralized with respect to one another. Similarly, one or more systems, for example, a request acceleration system that includes one or more service components in one transaction, may also include one or more service components in another transaction. Alternatively, additionally, or in combination thereof, one or more service components participating in one transaction may participate in one or more other transactions.
[0049] For example, specifically referring to Figure 2, a service component 208 that performs service 208A may be included in transaction 200. Note that the service component 208 shown may consist of a system that is separate from and decentralized with respect to the request acceleration system 102. As shown, service component 208 may consist of the request acceleration system 202. The request acceleration system 202 may be configured non-locally with respect to the request acceleration system 102. That is, the execution of transaction 200 may include services performed by service components that are decentralized with respect to each other. As shown in Figure 2, transaction 200 may be executed by multiple service components (e.g., service components 108, 208, and 107) that can perform multiple services (e.g., services 108A, 208A, and 107A). As shown, transaction 200 proceeds in the downstream direction represented by arrow 220. In other words, the execution of transaction 200 proceeds from service 108A of service component 108 (initial, upstream, or a combination thereof) to service 208A of service component 208, and then to service 107A, the downstream service of service component 107.
[0050] Specifically, referring to the second request acceleration system 202 in Figure 1, it includes a processor 206, memory 204, bus 205, service component 208, and service component 207. Similar to the request acceleration system 102, the second request acceleration system 202 includes one or more service components that operate the services for executing transaction 200 in Figure 2. Thus, as shown above, transaction 200 includes service components, services, or combinations thereof that are decentralized with respect to each other.
[0051] Here, referring to a request acceleration system 102, service components 107, 108, or a combination thereof, services 107A, 108A, or a combination thereof, or one or more operations of a combination thereof that utilize transaction 200, the request acceleration system 102 may receive an initial request 103. It should be understood that the initial request 103 may be related to a specific transaction, for example, a request to execute a specific transaction, including or including such a request. The initial request 103 may be provided in any preferred format, e.g., text format, binary format, another preferred format, or a combination thereof.
[0052] In one or more embodiments, the initial request 103 may be received by the request acceleration system 102 by a component, aspect, or combination thereof of the request acceleration system 102 other than the service components 107 and 108, such as the memory 104, the mail component, the download component, or a combination thereof. In one or more embodiments, the initial request 103 may be received by the service component 107, the service component 108, or a combination thereof. In one or more embodiments, the service component that receives the initial request 103 may be the upstream component that performs the upstream service in the transaction in which the initial request 103 is made.
[0053] A component, service component, system, other aspect, or combination thereof that receives the initial request 103 (for example, initially, indirectly, or a combination thereof) may utilize any one or more aspects of the operating environment, such as the operating environment 1400 (Figure 14), to receive, acquire, or perform a combination thereof. As a non-limiting example, the initial request 103 may be uploaded from HDD 1414, received from memory storage 1452 via WAN 1456, downloaded via WAN 1456 from a node such as cloud computing node 1510 in the cloud computing environment 1550 (Figure 15), or a combination thereof.
[0054] Referring here to the service components 108, 208, and 107 of transaction 200, communication between the service components participating in each transaction may be facilitated, leading to, reaching, or a combination of, a consensus among the service components on how to proceed with the initial request. That is, in order to approach, reach, or a combination of these consensus among the service components, communication may take place between service components 108, 208, and 107 regarding whether to continue or abort the execution of transaction 200 in response to the initial request 103.
[0055] In one or more embodiments, each communication between service components participating in a transaction may include a transaction ID. This can facilitate the confirmation, verification, or combination of confirmation that a communicating service component is a participant in a particular transaction, and therefore, in one or more cases, that one or more received messages are related to that particular transaction.
[0056] One or more communications may be facilitated by one or more service components. For example, communications may be facilitated by wired, wireless means or a combination thereof, including but not limited to utilizing a cellular network, a wide area network (WAN) (e.g., the Internet), a local area network (LAN), or a combination thereof. Suitable wired or wireless technologies for facilitating communications include, but are not limited to, Wireless Fidelity (Wi-Fi®), Global System for Mobile Communications (GSM®), Universal Mobile Telecommunications System (UMTS), Worldwide Interoperability for Microwave Access (WiMAX®), Enhanced General-Purpose Packet Radio Service (Enhanced GPRS), Third Generation Partnership Project (3GPP®) Long-Term Evolution (LTE), Third Generation Partnership Project 2 (3GPP®) This may include Ultra Mobile Broadcast (UMB), High Speed Packet Access (HSPA), Zigbee® and other 802.XX wireless technologies or legacy telecommunications technologies or combinations thereof, Bluetooth®, Session Initiation Protocol (SIP), Zigbee®, RF4CE protocol, Wireless HART protocol, 6LoWPAN (IPv6 on Low Power Wireless Area Networks), Z-Wave, ANT, Ultra Wideband (UWB) standard protocols, other proprietary or combinations thereof, and non-proprietary communication protocols or combinations thereof.
[0057] These communications may be performed, otherwise facilitated, or a combination thereof, according to a decentralized protocol, for example, without the use of any centralized communication manager, controller, or combination thereof. Rather, referring here only to the request facilitation system 102, however with respect to any other system including a service component participating in transaction 200 (e.g., a second request facilitation system 202), one or more service components 108 and 107 of the set of service components performing the services of transaction 200 may individually control, record, or a combination thereof the communications.
[0058] One or more service components 108 and 107 may operate according to a decentralized protocol to approach, reach, or a combination thereof a consensus on the initial request 103 of transaction 200, for example, by communicating with one or more other service components that operate one or more other services immediately upstream or downstream in a transaction to the services performed by service components 108 and 107. That is, service component 108 may communicate with one or more other service components that operate one or more other services immediately upstream or downstream in a transaction to the services performed by service component 108, for example, service component 107. Similarly, service component 107 may communicate with one or more other service components that operate one or more other services immediately upstream or downstream in a transaction to the services performed by service component 107, for example, service component 108. That is, communication may proceed without round-trip communication with a central communication manager, controller, or a combination thereof. Rather, communication may proceed between service components that perform services for a transaction.
[0059] In one or more embodiments, such communication may only occur between service components that perform services for transactions that are immediately downstream, upstream, or a combination thereof of each other. That is, communication does not occur between service components that do not perform services that are immediately downstream, upstream, or a combination thereof of each other. Furthermore, comprehensive management of communication for approaching, reaching, or a combination thereof may not exist for approaching, reaching, or a combination thereof.
[0060] Furthermore, given this protocol concerning communication only between service components that perform services for transactions immediately downstream, upstream, or in combination with each other, comprehensive knowledge of each service component in a set of services can be avoided. That is, a service component can avoid sharing knowledge about service components that are not immediately next, immediately preceding, or in combination with each other in the order of services performed for each service for a transaction. Thus, any failure of trust, security, or a combination thereof in one service component of concern can be limited to knowledge of only one or more service components that communicate with the service component of concern, and that operate services immediately upstream, immediately downstream, or in combination with services operated by the service component of concern, or are in a combination with such services.
[0061] For example, with respect to transaction 200 in Figure 2, service 108A proceeds from service 208A to service 107A and executes transaction 200. Therefore, in the service sequence of transaction 200, only service component 208 is immediately after / before service component 108, only service component 208 is immediately after / before service component 107, and each of service components 108 and 107 is immediately after / before service component 208. Therefore, in order to approach, reach, or combine, a consensus on how to proceed with respect to the initial request 103, service component 108 communicates only with service component 208, service component 208 communicates with both service components 108 and 107 in an upstream and downstream manner, and service component 107 communicates only with service component 208. Service component 108 does not communicate with service component 107 in order to approach, reach, or combine, a consensus on respect to the initial request 103.
[0062] It is understood that it may be conceivable that one or more service components may communicate with one or more non-next / non-previous service components of the transaction's set of service components for one or more purposes other than approaching / reaching a consensus on the initial request 103. For example, in one or more embodiments, after reaching a consensus to sustain (e.g., execute) the transaction, one or more service components may communicate with one or more non-next / non-previous service components of the transaction's set of non-next / non-previous service components to execute the transaction. For example, data may be shared among non-next / non-previous service components for the purpose of such transaction execution.
[0063] It is understood that, in addition, alternatively, or in combination thereof, one or more embodiments may be conceived in which one or more service components in the execution order of a transaction may be skipped, ignored, or a combination thereof for a particular consensus to be reached. Here, for example, a service component that is skipped, ignored, or a combination thereof is omitted from a particular execution of such a transaction. In addition, alternatively, or in combination thereof, it is understood that one or more embodiments may be conceived in which one or more service components of a transaction may communicate with one or more service components that do not perform immediately upstream or downstream services in the transaction. For example, in one or more such embodiments, a central controller may be utilized for a subset of the set of service components of a transaction. Nevertheless, it is understood that, in one or more embodiments, for rapid, efficient, or a combination thereof, all, at least most, or a combination thereof of service components may communicate only with the next / previous service components of the set of service components of each transaction.
[0064] Next, referring to Figure 3, this figure shows a diagram of an example of a non-limiting system 300 that can facilitate a process for consensus regarding the progress of transaction requests, according to one or more embodiments described herein. Repeated descriptions of similar elements or processes or combinations used in each embodiment are omitted for brevity.
[0065] As shown, the non-limiting system 300 includes a plurality of systems (e.g., 3) each which may include one or more service components for performing transaction A (not shown). In one or more embodiments, the three systems may be deployed, run, or be in combination on separate devices shown, e.g., device W, device X, and device Y. Each of devices W, X, and Y may include, or be in combination with, a server device, a computing device, a general-purpose computer, an application-specific computer, a quantum computing device (e.g., a quantum computer), a tablet computing device, a handheld device, a server-class computing machine, a database or a combination thereof, a laptop computer, a notebook computer, a desktop computer, a mobile phone, a smartphone, a consumer electronics product, instrumentation or a combination thereof, an industrial, commercial or a combination thereof device, a digital assistant, a multimedia internet-enabled telephone, a multimedia player, another type of device, a computing device or a combination thereof, or a combination thereof. In one or more embodiments, the three devices W, X, and Y may be decentralized with respect to one another. Therefore, the three devices W, X, and Y can communicate with each other, for example, via a WAN, a cloud environment, or a combination thereof.
[0066] The first request acceleration system 302 may be deployed, executed, or a combination thereof on device W. The second request acceleration system 312 may be deployed, executed, or a combination thereof on device X. The third request acceleration system 322 may be deployed, executed, or a combination thereof on device Y. Any one or more of the three systems may include one or more service components capable of performing one or more services of transaction A. Thus, transaction A may include service components, services, or combinations thereof that are decentralized with respect to each other.
[0067] The first request acceleration system 302 may include, as shown, a processor 306, memory 304, bus 305, service component 308, and a second service component 358. The service component 308 may be constructed, for example, through one or more service modes configured by the service component 308, in order to perform service 308A. The service component 308 may also include a log component 309, which may be configured separately from the service component 308 in one or more other embodiments. The service component 358 may be constructed, for example, through one or more service modes configured by the service component 358, and may perform service 358A. The service component 358 may also include a log component 359, which may be configured separately from the service component 358 in one or more other embodiments.
[0068] As shown, the second request acceleration system 312 may include a processor 316, memory 314, bus 315, and a service component 318. The service component 318 may be constructed, for example, through one or more service modes comprised of the service component 318, and may perform service 318A. The service component 318 may also include a log component 319, but in one or more other embodiments, the log component 319 may be disposed separately from the service component 318.
[0069] As shown, the third request acceleration system 322 may include a processor 326, memory 324, bus 325, and a service component 328. The service component 328 may be constructed, for example, through one or more service modes comprised of the service component 328, and may perform service 328A. The service component 328 may also include a log component 329, but in one or more other embodiments, the log component 329 may be disposed separately from the service component 328.
[0070] Therefore, with respect to transaction A, each of service components 308, 358, and 318 may be included in, participate in, or be part of transaction A. With respect to another transaction B, for example, each of service components 308, 358, 318, and 328 may be comprised of, participate in, or be part of transaction B.
[0071] Here, the processors, memory, and buses of the three request acceleration systems of the non-restrictive system 300 are described. While only the processor 306, memory 304, and bus 305 of the first request acceleration system 302 are described, the description applies equally to similar components of the second request acceleration system 312 and the third request acceleration system 322. It should also be understood that the description applies equally to similar components of the request acceleration system 102 and the request acceleration system 202.
[0072] For example, in one or more embodiments, the request acceleration system 302 may include a processor 306 (e.g., a computer processing unit, a microprocessor, a classical processor, a quantum processor, a similar processor, or a combination thereof). In one or more embodiments, components relating to the request acceleration system 302 described herein, with or without reference to one or more figures of one or more embodiments, may include one or more computer-readable, machine-readable, or combination thereof, writable, executable, or combination thereof components, instructions or combination thereof that can be executed by the processor 306 to accelerate the execution of one or more processes defined by such components, instructions or combination thereof. In one or more embodiments, the processor 306 may include a service component 307, a service component 358, an observation component 354, a protocol management component 356, or a combination thereof.
[0073] In one or more embodiments, the request acceleration system 302 may include a computer-readable memory 304 which can be operablely connected by the processor 306. The memory 304 may store computer-executable instructions that, when executed by the processor 306, cause the processor 306, other components of the request acceleration system 302 (e.g., service component 307, service component 358, observation component 354, protocol management component 356, or a combination thereof), or a combination thereof, to perform one or more actions. In one or more embodiments, the memory 304 may store computer-executable components (e.g., service component 307, service component 358, observation component 354, protocol management component 356, or a combination thereof).
[0074] The request acceleration system 302, its components, or combinations thereof described herein, are coupled to one another via bus 305 in a communicative, electrically, operably, optically, or otherwise, or in combination thereof, and can perform the functions of a non-limiting system 300, the request acceleration system 302, its, its coupled components, or combinations thereof. Bus 305 may include one or more memory buses, memory controllers, peripheral buses, external buses, local buses, quantum buses, or other types of buses or combinations thereof, which may utilize one or more bus architectures. One or more of these examples of bus 305 may be used to implement one or more embodiments described herein.
[0075] In one or more embodiments, the request acceleration system 302 may be coupled (e.g., via a network) to one or more external systems (e.g., request acceleration system 312, request acceleration system 322, or a combination thereof), sources, devices (e.g., classical devices, quantum computing devices, or a combination thereof, communication devices, similar devices, or a combination thereof), or a combination thereof (e.g., in a communicative, electrically, operationally, optically, similarly, or a combination thereof). In one or more embodiments, one or more components of the non-limiting system 300 may reside in the cloud, locally in a local computing environment (e.g., at a desired location), or a combination thereof.
[0076] In addition to the processor 306, memory 304, or combination thereof described above, the request acceleration system 302 may include one or more computer-readable, machine-readable, writable, executable, or combination thereof components, instructions, or combination thereof that, when executed by the processor 306, can accelerate the execution of one or more operations defined by such components, instructions, or combination thereof.
[0077] Each of the log components 309, 359, 319, and 329 may perform one or more logging functions for each individual service (e.g., service components 308, 358, 318, and 328, respectively), which includes the log components 309, 359, 319, and 329. Although separate log components are shown in Figure 3, it will be understood that in one or more other embodiments, one or more log components may rather perform one or more logging functions for two or more service components, such as the same system or local environment.
[0078] Referring here to log component 309, in relation to any of the indicated log components, log component 309 may maintain individual persistent logs for each of one or more service components (e.g., service component 308) of only the message communications in which each individual (e.g., service component 308) participates. For example, log component 309 may generate one or more records of one or more communications, data or a combination thereof, metadata relating to one or more communications, or a combination thereof. These may be stored together in log format, etc. The log may be a matrix, a library, another database, or a combination thereof. One or more records may be stored in any preferred format, such as text, binary, another preferred format, or a combination thereof. The log may be stored in each service component (e.g., service component 308) in each request facilitation system (e.g., request facilitation system 302), in each memory (e.g., memory 304), or any other location inside or outside each request facilitation system, or a combination thereof. The transfer of one or more records to the log may be carried out by any suitable method of communication, whether wired or wireless, including one or more of the methods described above with reference to the transfer of messages / communications for facilitating consensus-building in Figures 1 and 2.
[0079] When a communication error, timeout, or combination thereof occurs in relation to reaching consensus in a transaction involving service component 308, service 308A, or a combination thereof, individual logs may be observed, reviewed, otherwise utilized, or a combination thereof by the request acceleration system 302, service component 308, observation component 354 (details below), non-limiting system 300, or a combination thereof. That is, with respect to one or more requests, votes, final decisions, or combination thereof related to each consensus-reaching, observation, review, or a combination thereof may be facilitated through any suitable computer component, mode, or combination thereof, for purposes such as loading the historical location of a failed, restarted, or combination of service components.
[0080] With respect to one or more additional components of the non-limiting system 300, still referring to Figure 3, one of the request facilitation systems 302, 312, and 322 may include an observation component 354, a protocol management component 356, or a combination thereof. As shown, the request facilitation system 302 may include an observation component 354 and a protocol management component 356. In one or more other embodiments, a service component 308, a service component 358, or a combination thereof may include a protocol management component 356. Similarly, with respect to the request facilitation systems 312 and 322, a service component 318, a service component 328, or a combination thereof may additionally, alternatively, or in combination thereof include a protocol management component 356.
[0081] Regarding the observation component 354, it can facilitate observation by a communication management entity when communication occurs, after communication occurs, or a combination thereof. As shown above, the observation component 354 can be used to facilitate loading, determining, or a combination thereof, the historical location of a service / service component that has failed, been restarted, or a combination thereof. The observation component 354 can similarly monitor communication between service components. Monitoring can be passive, such as observation, recording, or a combination thereof, where there is no interference by one or more service components with the decentralized operation of the decentralized protocol. That is, in one or more embodiments, the observation component 354 can monitor communication between, during, or between any combination thereof of service components of a set of service components participating in a transaction. In one or more embodiments, the observation component 354 can determine whether a consensus has been reached or not for a transaction. For example, the observation component 354 can observe a subset of votes that have been communicated up to that point. A subset of votes may include one or more negative votes, thereby indicating that a consensus has not been reached to commit to the requested transaction. Additionally, alternatively, or in combination, the observation component 354 may, through monitoring, determine, verify, or in combination determine, through monitoring, that communication between service components of a set of service components is restricted to the next / previous service component of the set (e.g., those operating services immediately upstream, downstream, or in combination thereof to each other).
[0082] In one or more embodiments, there may be zero or more observation components, and it is understood that observation of communications relating to one or more service components may not be present in any observation process performed by any one or more such observation components, or a combination thereof.
[0083] Next, with respect to the protocol management component 356, this component may, for example, first forward, push, upload, or otherwise transmit, or a combination thereof, a protocol 350 that provides one or more communication limits, rules, or combinations thereof for reaching consensus according to one or more embodiments described herein, to one or more service components of a set of service components of a transaction. One or more communication limits may include restricting communication messages between service components to the next / previous service component with respect to each other. In one or more embodiments, the protocol 350 may define, facilitate, or a combination thereof for determining which service components are identified as next / previous with respect to each other. In one or more embodiments, the protocol 350 may include a set of program instructions, decisions, or combinations thereof for facilitating the communication of a particular type of message, as shown in the communication diagram 500 of Figure 5, which is described in detail below, for example, requests, votes, final decisions, or combinations thereof. In one or more embodiments, such rules may be shown graphically, such as in the state diagram 600 of Figure 6, which is described in detail below.
[0084] Protocol 350 may be transmitted via any suitable method of communication, whether wired or wireless, including one or more of the methods described above with reference to the transmission of message communications for facilitating consensus with respect to Figures 1 and 2. Additionally, alternatively, or in combination thereof, in one or more embodiments, one or more of the request facilitation systems 302, 312, and 322, service components 308, 358, 318, and 328, or a combination thereof, may already include, be constructed for, or be a combination thereof, operating according to one or more embodiments described herein, request protocol 350, another protocol, or a combination thereof. For example, one or more service components may be constructed separately to operate according to protocol 350, for example, during the initial construction of the service components, and there is no transmission of protocol 350 to one or more service components.
[0085] Referring briefly to Figure 4, this figure shows a diagram of an example of a non-limiting system 400 that can facilitate a process for consensus regarding the progress of transaction requests, according to one or more embodiments described herein. Repeated descriptions of similar elements, processes, or combinations used in each embodiment are omitted for brevity.
[0086] The non-restrictive system 400 is substantially similar to the non-restrictive system 300. Unlike the non-restrictive system 300, it should be understood that a separate system, such as the protocol acceleration system 332, may include an observation component 354, a protocol management component 356, or a combination thereof, along with its respective processor 336, memory 334, and bus 335. That is, in one or more embodiments, it should be understood that the observation component 354, the protocol management component 356, or a combination thereof may be comprised of a system other than the system containing the service components participating in the transaction (e.g., request acceleration systems 302, 312, and 322).
[0087] The protocol acceleration system 332 may be configured in device Z. Device Z may include, or may be, one or more server devices, computing devices, general-purpose computers, application-specific computers, quantum computing devices (e.g., quantum computers), tablet computing devices, handheld devices, server-class computing machines, databases or combinations thereof, laptop computers, notebook computers, desktop computers, mobile phones, smartphones, consumer electronics, instrumentation or combinations thereof, industrial, commercial or combinations thereof devices, digital assistants, multimedia internet-enabled telephones, multimedia players, other types of devices, computing devices or combinations thereof, or combinations thereof. Device Z may be local, decentralized, or a combination thereof with respect to any one or more of devices W, X, Y, or combinations thereof. Communication between device Z and any one or more of devices W, X, Y, or combinations thereof may be by any preferred means, such as a LAN, WAN, cloud environment, or a combination thereof.
[0088] Here, specifically referring to Figure 5 and also Figure 3, the communication flow diagram 500 shows an exemplary flow of communication between the next / previous service components of the set of service components of transaction A, referring to Figure 3. As shown above, transaction A includes service components 308, 358, and 318, respectively. It should be understood that service component 308 may be the initial service receiving the initial request 303. It should be understood that the time dot 502 represents a preferred communication method, and "xid" represents the transaction ID included in each communication.
[0089] As shown above, one or more service components 308, 358, and 318 may communicate messages that may contain one or more requests, votes, or final decisions. Also, as shown above, each of these message types may be text, binary, any other format, or a combination thereof.
[0090] A request (for example, a second request different from the initial request 303 in Figure 3) may be a message that requests the execution of a service by the relevant service component, thereby facilitating the final propagation of the transaction execution. Requests can generally be propagated downstream in a transaction (for example, in the normal direction of transaction execution from left to right in Figure 5). One or more service components may propagate communication of a request to one or more service components of a set of service components that perform one or more services at the furthest downstream end of the transaction (for example, in the direction of service component 318 in Figure 5).
[0091] A vote can be a response to a request and may generally include instructions such as yes / no, proceed / do not proceed, continue / cancel, or a combination thereof. Votes can generally be propagated upstream within a transaction (e.g., in the reverse direction of the normal execution of a transaction, from right to left in Figure 5). One or more service components may propagate one or more vote communications to approve or cancel an initial request or one or more second requests to one or more service components of a set of service components that perform services at the very top of a transaction (e.g., in the direction of service component 308).
[0092] If an intermediate service component, such as service component 358, both sends and receives votes, the intermediate service component can use its individual logs to recognize that it has sent a request downstream and is waiting to receive a vote from a downstream participant service component (e.g., service component 318). Therefore, when the intermediate service component receives a vote from a downstream participant, it can send a combined vote upstream. A combined vote sent by an intermediate service component may be a communication with a single vote, and any no, do not proceed, cancel the vote, or a combination thereof may result in the combined vote also being no, do not proceed, cancel, or a combination thereof. Note that a vote received by an intermediate service component may itself be a combined vote.
[0093] Furthermore, if the voting communication service component is an intermediate service component and is therefore waiting for downstream votes, the voting communication service component may be constructed, for example, via protocol 350, to send votes upstream before receiving votes from downstream, where the self-provided vote is negative (e.g., no, do not proceed, cancel, or a combination thereof). In this way, the propagation of votes can proceed more quickly without waiting for downstream votes that cannot change the result of the combined vote (for example, since a single negative vote is already included in what will become a combined vote). It should also be noted that each vote communicated upstream can be a single vote, whether it is a combined vote or an uncombined negative vote. That is, according to one or more embodiments described herein, the communication of votes generally does not contain more than a single communication. If an early negative vote is communicated upstream, later received downstream votes may be recorded but ignored.
[0094] The final decision is generally propagated downstream from one or more service components (e.g., service component 308 in Figure 5) that perform one or more upstream services to one or more service components (e.g., service component 318 in Figure 5) that perform one or more downstream services. The final decision may be a combined vote of all votes received from downstream participants. That is, an upstream service component may receive a single vote communication that includes either the combined votes of all downstream participants or at least one negative vote from a downstream participant service component. Thus, upon receiving the vote communication, an upstream service component may communicate a single final decision (also referred to herein as “completion”) to each downstream next / previous service component. The same final decision may be propagated to the downstream service components. Any individual service component, upon receiving a positive final decision communication, may begin performing the respective services performed by one of the individual service components in the transaction.
[0095] In one or more other embodiments, one or more additional message types may be used to approach, reach, or a combination thereof for reaching consensus regarding the initial request to a transaction, such as restricting communication to those between the next / previous service components, or in accordance with one or more limitations, rules, or combinations thereof as herein.
[0096] Referring here to Figure 6, the state diagram 600 schematically illustrates an example of the possible propagation of messages, states, or combinations thereof for a single service component according to one or more embodiments described herein. That is, the state diagram 600 relates to a single service component 602 but provides different formats for showing the communication of request, vote, and final decision messages. In the state diagram 600, communication is represented by arrows, and actions performed are represented by circular objects.
[0097] For example, a communication 604 may be sent where the transaction does not include the next / previous downstream service component with respect to service component 602, or where the vote of service component 602 is negative. For example, a timeout 606 may occur if a request is communicated downstream, but the vote communication is not received by service component 602 within the determined time window. It should be understood that the timeout window may be determined by default, selectively by the entity, or a combination thereof, via protocol 350. It should be understood that the length of the timeout window may be specific to the transaction or the type of transaction. It should be understood that the timeout window length may be specific to the type of communication; that is, different communication types such as requests, votes, and final decisions may each utilize different timeout window lengths. As another example, a timeout 608 may occur if the vote communication is sent by service component 602, but the final decision is not received. The progress of reaching consensus in the case of a timeout is further described below with respect to Figures 9 and 10.
[0098] Next, referring to Figure 7, and also to Figure 3, another flowchart, communication diagram 700, also referring to Figure 3, shows an exemplary flow of communication between the next / previous service components of the set of service components of transaction B. As shown above, transaction B includes service components 308, 358, 318, and 328, respectively. Referring to Figure 7, the lower part of communication diagram 600, which includes service components 308, 358, and 318, is identical to communication diagram 500. In addition, communication diagram 600 shows the propagation of communication to approach / reach consensus, and therefore, the propagation of service execution for a transaction can also proceed along two or more parallel paths. That is, the propagation of service execution and communication for transaction B can branch off from service component 308. For example, the initiator (upstream) service component 308 may send request communications to service components 358 and 328, respectively. Request communications may contain, at the end partially different, data, requests, or combinations thereof with respect to a particular service operated by specific service components 358 and 328. Similarly, service component 308 may receive multiple voting communications (e.g., from service components 358 and 328), and multiple request communications may be sent in the same manner.
[0099] Referring now to Figure 8, an additional block diagram is shown that provides an alternative representation of the same propagation of communication, as shown in the communication diagram 700 in Figure 7.
[0100] Referring here to Figures 9 and 10, one or more embodiments described herein for facilitating the process for consensus regarding the progress of a transaction request may also describe one or more errors, timeouts, or combinations thereof in communication regarding reaching consensus. As shown in the communication failure 902 in diagram 900 of Figure 9, if communication is not completed or is logged, etc., as not received by the process for consensus regarding the progress of the completion message of transaction B, the preceding communication 904 that should have prompted the lost, not received, or combination thereof communication 906 may be retransmitted as a retransmitted communication 908. This retransmission may be facilitated by a service component 318 that did not receive communication 906. In one or more embodiments, this retransmission / recommunication may be facilitated after a restart or timeout of the service component 318, the service operated by it, or a combination thereof, and an error may be logged. That is, a failure, error, or combination thereof in a service component, the service operated by it, or a combination thereof may, at least in part, result in a failure to receive a message that is lost, not received, or a combination thereof.
[0101] Additionally, alternatively, or in combination thereof, if retransmitting a communication does not facilitate the reception of a previously lost, unreceived, or a combination thereof, an error message or record may be logged. In one or more embodiments, an error message, which is a fourth type of message as described herein, may be sent from a service component logging the error (e.g., service component 318) to a previous service component (e.g., service component 358) prompting a restart of the previous service component (e.g., service component 358) and a retransmission of one or more of the most recent communications indicated in the individual logs of the previous service component (e.g., service component 358) as having been sent.
[0102] As shown in the communication failure 1002 of diagram 1000 in Figure 10, an error may be caused by a failed or erroneous service component (e.g., service component 358), the service operated by it, or a combination thereof. In the event of a timeout of an erroneous service component 358, the service operated by it, or a combination thereof, the individual logs of the erroneous service component 358 may be used to determine one or more lost, unreceived, or combination thereof communications 1004 and to send in response to one or more repeat communications 1006.
[0103] Next, referring to Figure 11, a sidecar, or other assistant application, program, or combination thereof, may be utilized by any separate service component to offload one or more communications, other operations performed, or combination thereof. Thus, the service component itself may limit the size, memory, or combination thereof used by offloading some implementation logic of a decentralized communication protocol to the sidecar. In one or more embodiments, the sidecar may be a containerized application. In one or more embodiments, the sidecar, or associated container, may be located within the container of each service component that utilizes the sidecar. It should be understood that the sidecar application may be stored in any suitable location regarding the storage of each service component that utilizes the sidecar application.
[0104] In Figure 11, three diagrams 1100, 1130, and 1160 illustrate different uses of a sidecar application. In diagram 1100, a sidecar application may be used to receive and combine voting communications, and to determine and send final decision communications. In diagram 1100, a service component is the initial or initiator service component (e.g., the upstream service component of a transaction). In diagram 1100, a sidecar application may also be used to generate, store, or combine individual communication logs (e.g., local logs) for each service component. In diagram 1130, a sidecar application may be used solely to generate, store, or combine individual communication logs (e.g., local logs) for each service component. In diagram 1160, a sidecar application may be used to generate, store, or combine individual communication logs (e.g., local logs) for each service component. Furthermore, in diagram 1160, the sidecar application may be used to receive, combine, and transmit voting communications. Note that the sidecar application in diagram 1160 is not used to transmit final decision communications.
[0105] Referring here to Figures 12 and 13, these figures together illustrate flowcharts of an example of an example of a non-limiting computer implementation method 1200 that can facilitate a process for consensus regarding the progress of transaction requests, according to one or more embodiments described herein with respect to non-limiting system 300. While computer implementation method 1200 is described with respect to non-limiting system 300, it should be understood that computer implementation method 1200 may also be applicable to non-limiting system 100, non-limiting system 400, or a combination thereof. Furthermore, it should be understood that many of the flow blocks of computer implementation method 1200 are performed with respect to a single service component 308. Nevertheless, computer implementation method 1200 may relate to one or more other services of non-limiting system 300 for a particular transaction. Additionally, the fact that one or more flow blocks relate to a single service component 308 does not negate the fact that each transaction may include one or more additional service components, services, or combinations thereof. Repeated descriptions of similar elements or processes or combinations used in each embodiment are omitted for brevity.
[0106] Referring first to 1202 in Figure 12, the computer implementation method 1200 may include receiving an initial request (e.g., initial request 303) in the initial service component (e.g., service component 308 for transaction A) by a system operably coupled to a processor (e.g., processor 306) (e.g., via a service component 308, a request acceleration system 302, or a combination thereof).
[0107] In 1204, the computer implementation method 1200 may include the system (e.g., via service component 308) transmitting a second request (e.g., a communication request operation for service 308A) to the next / previous service component (e.g., one that performs a service for a transaction immediately downstream of the service performed by service component 308).
[0108] In 1206, the computer implementation method 1200 may include determining a vote (e.g., yes / no) on a request to perform a service (e.g., service 308A) operated by a service component (e.g., service component 308) via the system (e.g., via the service component 308).
[0109] In 1208, the computer implementation method 1200 may include determining whether the system (e.g., service component 308) sends a vote to the next / previous service component (e.g., one that operates a service in a transaction immediately downstream of the service performed by service component 308), or whether to record the vote (e.g., individual logs of service component 308, such as using each log component 309). For example, if service component 308 is the upstream service, no vote is sent, and the method proceeds to block 1212. For example, if the vote of service component 308 is not a vote, the method may proceed to block 1212. For example, if the vote of service component 308 is a yes vote, or if the vote has not yet been received from the downstream participant service to which service component 308 sent the request communication, the method may instead proceed to block 1210.
[0110] In 1210, the computer implementation method 1200 may include waiting for votes (e.g., voting communications) from downstream participants (e.g., service component 358 of transaction A) by the system (e.g., via service component 308).
[0111] In 1212, the computer implementation method 1200 may include transmitting or recording votes (e.g., voting communications or voting decisions) by the system (e.g., via a service component 308, a logging component 309, or a combination thereof).
[0112] In 1214, the computer implementation method 1200 may include determining or receiving a final decision (e.g., a final decision communication) by the system (e.g., via the service component 308). That is, if the service component 308 is an initiator service component, the service component 308 may determine the final decision communication. Alternatively, if the service component 308 is an intermediate service component, the service component 308 may receive the final decision from immediately upstream in a transaction (e.g., transaction A).
[0113] Next, Figure 13 shows an alternative continuation of method 1200, which is partially shown in the flowchart of Figure 12. In Figure 13, method 1200 of Figure 12 is continued and represented by the continuation triangle "B" 1220 shown in each of Figures 12 and 13. For brevity, descriptions of the repetition of similar elements or processes or combinations used in each embodiment are omitted.
[0114] In 1302, the computer implementation method 1200 may include the system (for example, via the service component 308) transmitting a final decision (for example, a final decision communication) downstream in a transaction (for example, transaction A).
[0115] In 1304, the computer implementation method 1200 may include recording one or more communications in which a service component (e.g., service component 308) participates (e.g., transmits or receives in combination) by the system (e.g., via a service component 308, a log component 309, or a combination thereof).
[0116] In 1306, the computer implementation method 1200 may include observing the communication by the system (for example, via the observation component 354).
[0117] In 1308, the computer implementation method 1200 may include the system (for example, via the service component 308) operating a service (e.g., service 308A) to execute at least a portion of a transaction (e.g., transaction A).
[0118] In 1310, the computer implementation method 1200 may include providing the output of a service (e.g., service 308A) that has been performed by the system (e.g., via the service component 308).
[0119] For the sake of brevity, the computer implementation methods provided herein are illustrated, described, or combined as a series of actions. It should be understood and recognized that the innovations of the subject matter are not limited by the actions shown, or the order or combination of actions. For example, actions may occur in one or more sequences, simultaneously, or in combination with other actions not presented or described herein. Furthermore, not all actions shown can be used to implement the computer implementation methods of the described subject matter. In addition, those skilled in the art will understand and recognize that computer implementation methods may alternatively be represented as a series of interrelated states via state diagrams or events. Furthermore, it should be further recognized that the computer implementation methods described hereafter and throughout this specification may be stored in a product to facilitate the transfer and transmission of such computer implementation methods to a computer. Where used herein, the term "product" is intended to encompass computer programs accessible from any computer-readable device or storage medium.
[0120] In summary, one or more embodiments described herein may enable improved execution of consensus-reaching on requests received by a transaction compared to existing techniques. This improved execution may be achieved by restricting communication for approaching, reaching, or a combination thereof to the execution of the next / previous service component of the transaction's set of service components, where the next / previous is a service that operates immediately upstream or downstream of the transaction (for example, a service performed by a communication service). In one or more embodiments, such communication may proceed without utilizing a comprehensive control over the communication. Rather, the communication is controlled by each individual service component of the transaction's set of service components.
[0121] In light of this restricted communication method, comprehensive knowledge of each service component in any service component, other components, or combination thereof can be avoided. That is, the sharing of knowledge about service components other than the next / previous of any service component can be avoided. Thus, failures of trust, security, or a combination thereof in one service component of concern can be limited to knowledge of only the next / previous one or more service components of the service of concern. Additionally, the use of processing power and memory for a comprehensive communication manager can also be avoided.
[0122] In one or more cases, one or more embodiments described herein may enable increased scaling of the execution of one or more transaction consensus, request acceleration, or a combination thereof, in view of the increased execution time, execution quality, or combination thereof of the one or more embodiments described herein compared to existing techniques. Additionally, alternatively, or in combination thereof, the use of the described subject matter may enable a reduction in the cost, complexity, or combination thereof of the systems used to perform transaction consensus, request acceleration, or a combination thereof, at least in view of avoiding the use of a comprehensive communication manager by the described subject matter.
[0123] In practical applications of the request acceleration systems described herein, such systems may be implemented in one or more domains and may enable scaled program execution, such as consensus execution. Indeed, the use of request acceleration systems as described herein may be scalable, for example, a request acceleration system may perform the approach / arrival of at least one consensus for the same or different transactions at least in part in parallel with the approach / arrival of another consensus. Another practical application of one or more embodiments described herein may be the individually controlled execution of one or more execution instructions in one or more service components of a transaction, for example, to perform one or more individually managed communications. In another example, another practical application of one or more embodiments described herein may be the controlled execution of one or more execution instructions to perform one or more operations by one or more service components for operating one or more services having one or more real-world results, such as financial, monetary, reservation, purchase results, or a combination thereof, by one or more real-world computers, computer-aided, accelerated, or a combination thereof devices, or a combination thereof.
[0124] Furthermore, the request acceleration systems described herein may facilitate one or more technical improvements to computers, computer systems, or combinations thereof that operate, include, or are combined with such request acceleration systems. For example, the request acceleration systems described herein may provide individual communication management without utilizing a comprehensive communication manager. In this way, the adoption, use, or combination of reduced memory, time, computing power, or combinations thereof may be facilitated compared to existing techniques. As a result, the request acceleration described herein may facilitate faster, more efficient, or combinations thereof, consensus approach / arrival compared to existing techniques.
[0125] Systems, devices, or combinations thereof, with respect to the interaction between one or more components, are described herein (and further described, or combinations thereof). It should be understood that such systems, components, or combinations thereof may include one or more of those components or subcomponents, specified components, subcomponents, or combinations thereof, additional components, or combinations thereof. Subcomponents may be implemented as components that are not included in a parent component but are communicatively coupled to other components. One or more components, subcomponents, or combinations thereof may be combined into a single component that provides aggregated functionality. Components may interact with one or more other components that are not specifically described herein for the sake of brevity but are known to those skilled in the art.
[0126] It should be understood that one or more embodiments described herein are, in essence, closely related to computer technology, or a combination thereof, and cannot be implemented outside of a computing environment. For example, one or more processes performed by one or more embodiments described herein may provide programs, program instruction execution, or combinations thereof more efficiently and more feasibly than existing systems, techniques, or combinations thereof. Systems, computer implementations, computer program products, or combinations thereof that facilitate the execution of these processes are extremely useful in the field of services, microservices, or combinations thereof, related operations, or combinations thereof, and cannot be implemented equally feasibly by reasonable means outside of a computing environment.
[0127] Furthermore, it should be understood that one or more embodiments described herein may utilize hardware, software, or a combination thereof to solve problems that are inherently highly technical and cannot be performed as a set of mental activities by humans, rather than abstractly (e.g., relating to digital-to-analog conversion, binary retrieval of multiple data, or combinations thereof). For example, a human being, or even thousands of humans, cannot efficiently, accurately, effectively compute digital-to-analog conversion, binary retrieval of multiple data, or combinations thereof, or combinations thereof, in the time that one or more embodiments described herein may facilitate this process. And neither the human mind nor a human being with a pen and paper will electronically compute digital-to-analog conversion, binary retrieval of multiple data, or combinations thereof, as performed by one or more embodiments described herein.
[0128] In one or more embodiments, one or more of the processes described herein may be performed by one or more specialized computers (e.g., specialized processing units, specialized classical computers, specialized quantum computers, specialized hybrid classical / quantum systems, other types of specialized computers, or a combination thereof) to perform defined tasks relating to one or more of the technologies described above. One or more embodiments, components thereof, or combinations thereof described herein may be used to solve new problems arising through the development of the technologies mentioned above, quantum computing systems, cloud computing systems, computer architectures, or the use of other technologies or combinations thereof.
[0129] One or more embodiments described herein may be fully operational in performing one or more other functions (e.g., fully powered on, fully performed, another function, or a combination thereof), while also performing one or more operations described herein.
[0130] Next, referring to Figures 14 to 16, Figures 1 to 13 provide a detailed description of additional context for one or more embodiments described herein.
[0131] Figure 14 and the following description are intended to provide a brief and general description of a preferred operating environment 1400 in which one or more embodiments described herein in Figures 1 to 13 may be implemented. For example, one or more components, other aspects of the embodiments described herein, or combinations thereof may be implemented in or in connection with the operating environment 1400, for example, so as to be accessible therethrough. Furthermore, although one or more embodiments have been described above in the general context of computer executable instructions that can be run on one or more computers, those skilled in the art will recognize that one or more embodiments may also be implemented in combination with other program modules, as a combination of hardware and software, or as such.
[0132] Generally, a program module includes routines, programs, components, data structures, or similar, or combinations thereof, that implement or are combinations thereof, of a particular abstract data type, that perform a particular task. Furthermore, those skilled in the art will understand that the methods of the invention can be implemented using single-processor or multi-processor computer systems, minicomputers, mainframe computers, Internet of Things (IoT) devices, distributed computing systems, as well as other computer system configurations, including personal computers, handheld computing devices, microprocessor-based or programmable consumer electronics, similar, or combinations thereof (each of which may be operably coupled to one or more related devices).
[0133] Computing devices typically include a variety of media, which may include computer-readable storage media, machine-readable storage media, communication media, or combinations thereof. These two terms are used herein to distinguish them from each other as follows: Computer-readable storage media, or machine-readable storage media, can be any available storage media accessible by a computer, and include both volatile and non-volatile media, and removable and non-removable media. For example, but not limited to, computer-readable storage media, machine-readable storage media, or combinations thereof may be implemented in relation to any method or technique for storing information, such as computer-readable, machine-readable, or combinations thereof instructions, program modules, structured data, unstructured data, or combinations thereof.
[0134] Computer-readable storage media may include, but are not limited to, random access memory (RAM), read-only memory (ROM), electro-erasable programmable read-only memory (EEPROM), flash memory, or other memory technologies, compact disk read-only memory (CD-ROM), digital versatile disc (DVD), Blu-ray disc (BD), other optical disc storage, or combinations thereof, magnetic cassettes, magnetic tapes, magnetic disk storage, other magnetic storage devices, or combinations thereof, solid-state drives, or other solid-state storage devices, or other tangible, non-temporary, or combinations thereof media, or combinations thereof that may be used to store desired information. In this regard, the terms “tangible” or “non-temporary” as used herein in relation to storage, memory, or computer-readable media are understood to exclude, as modifiers, temporary signals themselves that merely transmit signals, and do not waive any rights to all standard storage, memory, computer-readable media, or combinations thereof that are not temporary signals themselves that merely transmit signals.
[0135] Computer-readable storage media can be accessed by one or more local or remote computing devices, for example, through access requests, queries, other data retrieval protocols, or a combination thereof, for various operations on the information stored by the media.
[0136] Communication media typically include any information delivery or transport medium that embodies computer-readable instructions, data structures, program modules, or other structured or unstructured data in modulated data signals, such as carrier waves or other transport mechanisms. The term “modulated data signal” or signal refers to a signal that has one or more characteristic sets of signals, or a signal that has been modified in such a way as to encode information in one or more signals. For example, but not limited to, communication media may include wired media, such as wired networks, direct wired connections, wireless media (such as sound, radio frequencies, infrared, other wireless media, or a combination thereof), or a combination thereof.
[0137] Referring again to Figure 14, an exemplary operating environment 1400 for implementing one or more embodiments of the embodiments described herein may include a computer 1402, the computer 1402 including a processing unit 1406, system memory 1404, system bus 1408, or a combination thereof. It should be understood that one or more embodiments of the system memory 1404 or the processing unit 1406 may be applied to non-limiting systems 100, 300, 400, or combinations thereof such as memory 104, 304, 404, or combinations thereof, processors 106, 306, 406, or combinations thereof, or combinations thereof, respectively. It should also be understood that the system memory 1404 may be implemented in combination with, or alternatively to, or in combination with, memory 104, 304, 404, or combinations thereof. Similarly, it should be understood that the processing unit 1406 may be implemented in combination with, or alternatively to, or in combination with, processors 106, 306, 406, or combinations thereof.
[0138] Memory 1404 may store computer-readable, machine-readable, or writable, executable, or combination thereof components, instructions, or combination thereof that can facilitate the execution of operations defined by executable components, instructions, or combination thereof when executed by processing unit 1406 (e.g., classical processor, quantum processor, and similar processor, or combination thereof). For example, memory 1404 may store computer-readable, machine-readable, or combination thereof, writable, executable, or combination thereof components, instructions, or combination thereof that can facilitate the execution of one or more functions described herein relating to the non-limiting systems 100, 300, 400, or combination thereof, request-facilitating systems (such as 102, 202, 302, 402, or combination thereof), or combination thereof, when executed by processing unit 1406, with or without reference to one or more figures of one or more embodiments.
[0139] Memory 1404 may utilize one or more memory architectures, including volatile memory (e.g., random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), similar, or combinations thereof), non-volatile memory (e.g., read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), similar, or combinations thereof), or combinations thereof.
[0140] The processing unit 1406 may include one or more types of processors, electronic circuits (e.g., classical processors, quantum processors, similar processors, or combinations thereof) or combinations thereof that can implement one or more computer-readable, machine-readable, writable, executable, or combinations thereof components, instructions, or combinations thereof, which can be stored in the memory 1404. For example, the processing unit 1406 may perform one or more operations that can be specified by computer-readable, machine-readable, or combinations thereof writable, executable, or combinations thereof components, instructions, or combinations thereof, including but not limited to logic, control, input / output (I / O), arithmetic, and the like. In one or more embodiments, the processing unit 1406 may be one or more commercially available processors. In one or more embodiments, the processing unit 1406 may include one or more central processing units, multicore processors, microprocessors, dual microprocessors, microcontrollers, systems on a chip (SOC), array processors, vector processors, quantum processors, other types of processors, or combinations thereof. An example of the processing unit 1406 may be used to implement one or more embodiments described herein.
[0141] The system bus 1408 may connect system components, including but not limited to system memory 1404, to the processing unit 1406. The system bus 1408 may include one or more types of bus structures that can further interconnect (with or without a memory controller) to a memory bus, peripheral bus, local bus, or a combination thereof, using one or more of various commercially available bus architectures. The system memory 1404 may include ROM 1410, RAM 1412, or a combination thereof. The basic input / output system (BIOS) may be stored in non-volatile memory such as ROM, erasable programmable read-only memory (EPROM), EEPROM, or a combination thereof. The BIOS includes basic routines that help transfer information between elements within the computer 1402, such as during startup. RAM 1412 may include high-speed RAM, such as static RAM for caching data.
[0142] Computer 1402 may include an internal hard disk drive (HDD) 1414 (e.g., EIDE, SATA), one or more external storage devices 1416 (e.g., magnetic floppy disk drive (FDD), memory stick, or flash drive reader, memory card reader, similar, or a combination thereof), a drive 1420 (e.g., a solid-state drive or optical disk drive) or a combination thereof that can read from or write to disks 1422 such as CD-ROM disks, DVDs, BDs, similar, or a combination thereof. Additionally, if a solid-state drive is involved, disks 1422 may not be included unless they are separate. Although the internal HDD 1414 is shown as being located within computer 1402, the internal HDD 1414 may also be configured for external use in a suitable chassis (not shown). Additionally, although not shown in operating environment 1400, a solid-state drive (SSD) may be used in addition to or instead of the HDD 1414. The HDD 1414, external storage device 1416, and drive 1420 can be connected to the system bus 1408, external storage interface 1426, and drive interface 1428, respectively, by the HDD interface 1424. The HDD interface 1424 for external drive implementation may include at least one or both of the Universal Serial Bus (USB) and the IEEE 1394 interface technology. Other external drive connection technologies are within the framework of the embodiments described herein.
[0143] The drive and its associated computer-readable storage medium provide non-volatile storage such as data, data structures, and computer-executable instructions. For computer 1402, the drive and storage medium correspond to the storage of any data in a suitable digital format. While the above description of computer-readable storage medium refers to each type of storage device, those skilled in the art will understand that other types of computer-readable storage medium, currently existing or to be developed in the future, may also be used in the exemplary operating environment, and that any such storage medium may contain computer-executable instructions for performing the methods described herein, or a combination thereof.
[0144] Many program modules may be stored in a drive and RAM 1412 containing an operating system 1430, one or more applications 1432, other program modules 1434, program data 1436, or a combination thereof. All or some of the operating system, applications, modules, data, or combinations thereof may also be cached in RAM 1412. The systems, methods, or combinations thereof described herein may be implemented using one or more commercially available operating systems, combinations of operating systems, or combinations thereof.
[0145] Computer 1402 may optionally include emulation techniques. For example, a hypervisor (not shown) or other intermediates may emulate a hardware environment for operating system 1430, and the emulated hardware may optionally differ from the hardware shown in Figure 14. In relevant embodiments, operating system 1430 may include one virtual machine (VM) from a plurality of VMs hosted on computer 1402. Furthermore, operating system 1430 may provide a Java® runtime environment or a runtime environment such as the .NET framework for application 1432. The runtime environment is a consistent execution environment that can enable application 1432 to run on any operating system that includes the runtime environment. Similarly, operating system 1430 may support containers, and application 1432 may be in the form of a container. A container is a lightweight, standalone, executable package of software that includes, for example, code, runtime, system tools, system libraries, configuration for the application, or a combination thereof.
[0146] Furthermore, computer 1402 may support security modules such as a Trusted Processing Module (TPM). For example, a TPM allows a boot component to hash the next boot component in time and wait for a match of the result against a secure value before loading the next boot component. This process can occur at any layer of computer 1402's code execution stack, for example, at the application execution level, the operating system (OS) kernel level, or a combination thereof, thereby enabling security at any level of code execution.
[0147] An entity may input, transmit, or perform combinations thereof commands, information, or combinations thereof to the computer 1402 through one or more wired / wireless input devices, such as a keyboard 1438, a touch screen 1440, a pointing device such as a mouse 1442, or a combination thereof. Other input devices (not shown) may include microphones, infrared (IR) remote controls, radio frequency (RF) remote controls, other remote controls, or combinations thereof, joysticks, virtual reality controllers, virtual reality headsets, or combinations thereof, gamepads, stylus pens, image input devices such as cameras, gesture sensor input devices, visual motion sensor input devices, emotion or facial expression detection devices, biometric input devices such as fingerprint scanners, iris scanners, or combinations thereof, and similar devices or combinations thereof. These, and other input devices, may be connected to the processing unit 1406 via an input device interface 1444 which can be coupled to the system bus 1408, but may also be connected to other interfaces such as parallel ports, IEEE 1394 serial ports, game ports, USB ports, IR interfaces, Bluetooth interfaces, and similar or a combination thereof.
[0148] Monitor 1446, or other types of display devices, may be connected to the system bus 1408 via an interface such as a video adapter 1448, either alternatively, additionally, or in combination thereof. In addition to Monitor 1446, the computer typically includes other peripheral output devices (not shown), such as speakers, printers, and similar devices, or combinations thereof.
[0149] Computer 1402 may operate in a network environment using logical connections via wired communication, wireless communication, or a combination thereof to one or more remote computers, such as remote computer 1450. Remote computer 1450 may be a workstation, server computer, router, personal computer, portable computer, microprocessor-based entertainment equipment, peer device, other common network node, or a combination thereof, and typically includes many or all of the elements described with respect to computer 1402. However, for the sake of brevity, only memory storage device 1452 is shown. Additionally, alternatively, or in combination thereof, computer 1402 may be coupled (e.g., communicatively, electrically, operationally, optically, and similarly, or in combination thereof) to one or more external systems, sources, devices, or a combination thereof (e.g., classical computing devices, quantum computing devices, or a combination thereof, communication devices, and similar devices, or a combination thereof) via data cables (e.g., High-Definition Multimedia Interface (HDMI®), Standards (RS) 232, Ethernet® cable, and similar, or a combination thereof).
[0150] In one or more embodiments, the network may include, but is not limited to, one or more wired networks, wireless networks, or a combination thereof, including but not limited to cellular networks, wide area networks (WANs) (e.g., the Internet), or local area networks (LANs). For example, one or more embodiments described herein, but not limited to, Wireless Fidelity (Wi-Fi), Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), Worldwide Interoperability for Microwave Access (WiMAX), Enhanced General-Purpose Packet Radio Service (Enhanced GPRS), Third Generation Partnership Project (3GPP) Long-Term Evolution (LTE), Third Generation Partnership Project 2 (3GPP2) Ultra Mobile Broadcast (UMB), High-Speed Packet Access (HSPA), Zigbee, and other 802.X It may communicate with one or more external system sources, devices, or combinations thereof, such as computing devices (and vice versa), using virtually any desired wired or wireless technology, including X wireless technology or legacy telecommunications technology or a combination thereof, BLUETOOTH®, Session Initiation Protocol (SIP), ZIGBEE®, RF4CE protocol, Wireless HART protocol, 6LoWPAN (IPv6 on Low Power Wireless Area Network), Z-Wave, ANT, ultra-wideband (UWB) standard protocols, other proprietary or combinations thereof, non-proprietary communication protocols or combinations thereof.In related examples, one or more embodiments described herein may include hardware (e.g., a central processing unit (CPU), transceivers, decoders, quantum hardware, quantum processors, the like, or a combination thereof), software (e.g., a set of threads, a set of processes, running software, a quantum pulse schedule, a quantum circuit, a quantum gate, the like, or a combination thereof), hardware, software, or a combination thereof that facilitates the communication of information between one or more embodiments described herein and external systems, sources, devices, or a combination thereof (e.g., computing devices, communication devices, the like, or a combination thereof).
[0151] The illustrated logical connections include wired / wireless connections to local area networks (LANs) 1454, larger networks such as wide area networks (WANs) 1456, or a combination thereof. LAN and WAN networking environments can be common in offices and companies and can facilitate enterprise-wide computer networks such as intranets, all of which can be connected to comprehensive communication networks, such as the Internet.
[0152] When used in a LAN networking environment, computer 1402 may be connected to local network 1454 via a wired, wireless, or a combination thereof communication network interface or adapter 1458. Adapter 1458 may facilitate wired, wireless, or a combination thereof communication to LAN 1454. LAN 1454 may also include a wireless access point (AP) deployed on it to communicate with adapter 1458 in wireless mode.
[0153] When used in a WAN networking environment, computer 1402 may include a modem 1460 and may be connected to a communication server on WAN 1456 via means such as the Internet, or other means for establishing communication over WAN 1456, or a combination thereof. The modem 1460, which may be internal, external, or a combination thereof, and wired, wireless, or a combination thereof, may be connected to the system bus 1408 via the input device interface 1444. In a network environment, program modules illustrated with respect to computer 1402 or a part thereof may be stored in the remote memory storage device 1452. The network connections shown are illustrative only, and it should be understood that one or more other means for establishing communication links between computers may be used.
[0154] When used in either a LAN or WAN networking environment, computer 1402 may, in addition to the external storage devices 1416 described above, or in combination thereof, access a cloud storage system or other network-based storage system, such as a network virtual machine that provides one or more aspects of information storage, processing, or a combination thereof. Generally, the connection between computer 1402 and the cloud storage system may be established via LAN 1454 or WAN 1456, respectively, by, for example, an adapter 1458 or a modem 1460. When computer 1402 is connected to the relevant cloud storage system, the external storage interface 1426 may manage the storage provided by the cloud storage system, like other types of external storage, with the assistance of the adapter 1458, modem 1460, or a combination thereof. For example, the external storage interface 1426 may be configured to provide access to the cloud storage source as if the source were physically connected to computer 1402.
[0155] Computer 1402 may be capable of communicating with any wireless device, entity, or combination thereof that is operationally arranged in wireless communication, such as any equipment or location associated with a printer, scanner, desktop, portable computer, or combination thereof, portable data assistant, communications satellite, telephone, or wireless discoverable tag (e.g., kiosk, newsstand, store shelf, similar, or combination thereof), or combination thereof. This may include Wireless Fidelity (Wi-Fi) and Bluetooth wireless technologies. Thus, the communication may be a predefined structure, similar to conventional networks, or simply ad-hoc communication between at least two devices.
[0156] The exemplary embodiments described herein may be implemented in a distributed computing environment (e.g., a cloud computing environment) in which specific tasks are performed by remote processing devices linked through a communication network, such as those shown below with respect to Figure 15. In a distributed computing environment, program modules may reside in local, remote, or a combination thereof memory storage devices.
[0157] For example, one or more embodiments, one or more components thereof, or combinations thereof described herein may perform one or more operations according to one or more embodiments herein by utilizing one or more computing resources of the cloud computing environment 1550 described by reference to one or more functional abstraction layers (e.g., quantum software, the like, or combinations thereof) described below with reference to Figure 15, below with reference to Figure 16, or combinations thereof. For example, one or more of the cloud computing environment 1550, functional abstraction layers 1660, 1670, 1680, 1690, or combinations thereof, or combinations thereof may include one or more classical computing devices (e.g., classical computers, classical processors, virtual machines, servers, the like, or combinations thereof), quantum hardware, quantum software (e.g., quantum computing devices, quantum computers, quantum processors, quantum circuit simulation software, superconducting circuits, the like, or combinations thereof), or combinations thereof, which may be utilized by one or more embodiments, components thereof, or combinations thereof described herein to perform one or more operations according to one or more embodiments herein. For example, one or more embodiments, components, or combinations thereof described herein may utilize one or more classical computing resources, quantum computing resources, or combinations thereof to perform one or more classical mathematical functions, quantum mathematical functions, or combinations thereof, calculations, equations, or combinations thereof, computing, processing scripts, or combinations thereof, algorithms, models (e.g., artificial intelligence (AI) models, machine learning (ML) models, similar models, or combinations thereof), other operations by one or more embodiments described herein, or combinations thereof.
[0158] While one or more embodiments described herein include a detailed description of cloud computing, it should be understood that implementations of the teachings referred to herein are not limited to cloud computing environments. Rather, one or more embodiments described herein can be implemented in conjunction with any other type of computing environment currently known or to be developed in the future.
[0159] Cloud computing is a service delivery model that enables convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processes, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and deployed with minimal management effort or interaction with service providers. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.
[0160] The features are as follows:
[0161] On-demand self-service: Cloud consumers can unilaterally provision computing power, such as server time and network storage, automatically as needed, without requiring human interaction with service providers.
[0162] Broad network access: Functionality is available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin client platforms or thick client platforms (e.g., mobile phones, laptops, and PDAs).
[0163] Resource Pool: A provider's computing resources are pooled and served to multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically allocated and reallocated as needed. Generally, consumers have no control or knowledge of the exact location of the resources provided, but location independence is meaningful in that they may be able to specify location at a higher level of abstraction (e.g., country, state, or data center, or a combination thereof).
[0164] Rapid Flexibility: Capabilities can be provisioned rapidly and flexibly for rapid scale-out, automatically in one or more cases, and quickly released for rapid scale-in. To consumers, the capacity available for provisioning may appear unlimited and can be purchased in any quantity at any time.
[0165] Measured Services: Cloud systems automatically control and optimize resource usage by leveraging measurement capabilities at one or more levels of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, or active user accounts, or a combination thereof). Resource usage can be monitored, controlled, and reported, or a combination thereof, providing transparency to both service providers and consumers of the services being used.
[0166] The service model is as follows:
[0167] Software as a Service (SaaS): The capability offered to consumers is the use of a provider's applications running on cloud infrastructure. These applications are accessible from various client devices through thin client interfaces such as web browsers (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, storage, or individual application capabilities or combinations thereof, with the exception of limited, user-specific application configuration settings.
[0168] Platform as a Service (PaaS): The ability offered to consumers is the ability to deploy applications they have created or acquired, written using programming languages and tools supported by the provider, on a cloud infrastructure. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, or any combination thereof, but they have control over the deployed applications and, in some cases, the applications hosting the environment configuration.
[0169] Infrastructure as a Service (IaaS): The ability provided to consumers is to provision processing, storage, networking, and other fundamental computing resources, or combinations thereof, that enable consumers to deploy and run any software, including operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but have limited control over the operating system, storage, deployed applications, and, in some cases, selected network components (e.g., host firewalls), or combinations thereof.
[0170] The deployment model is as follows:
[0171] Private Cloud: Cloud infrastructure operates solely for a specific organization. It may be managed by the organization or a third party and may reside on or off-site.
[0172] Community Cloud: A cloud infrastructure is shared by multiple organizations and supports a specific community with shared interests (e.g., roles, security requirements, policies, compliance considerations, or a combination thereof). It may be managed by the organization or a third party and may reside on or off-site.
[0173] Public cloud: Cloud infrastructure is made available to the general public or large industry groups and is owned by organizations that sell cloud services.
[0174] Hybrid Cloud: Cloud infrastructure remains a distinct entity, but it is a composite of two or more clouds (private, community, or public) that are joined together by standardization or proprietary technologies (e.g., cloud bursting for load balancing between clouds) that enable data and application portability.
[0175] Cloud computing environments are services focused on statelessness, low coupling, modularity, semantic interoperability, or a combination of these. At the core of cloud computing lies an infrastructure that includes a network of interconnected nodes.
[0176] Furthermore, non-limiting systems 100, 300, 400, or combinations thereof, exemplary operating environments 1400, or combinations thereof may be related to, included in, or combinations thereof with data analysis systems, data processing systems, graph analysis systems, graph processing systems, big data systems, social network systems, speech recognition systems, image recognition systems, graphical modeling systems, bioinformatics systems, data compression systems, artificial intelligence systems, authentication systems, syntactic pattern recognition systems, medical systems, health monitoring systems, network systems, computer network systems, communication systems, router systems, server systems, highly soluble server systems (e.g., Telecom server systems), web server systems, file server systems, data server systems, disk array systems, power insertion board systems, cloud-based systems, and similar systems, or combinations thereof. Accordingly, non-limiting systems 100, 300, 400, or combinations thereof, exemplary operating environments 1400, or combinations thereof may be used to solve essentially highly technical problems that cannot be performed as a set of non-abstract, human mental activities, or combinations thereof, using hardware, software, or combinations thereof.
[0177] Referring here to the details of one or more embodiments shown in Figure 15, an exemplary cloud computing environment 1550 is illustrated. As shown, the cloud computing environment 1550 includes one or more cloud computing nodes 1510 to which local computing devices used by cloud consumers can communicate, such as a personal digital assistant (PDA) or mobile phone 1554A, a desktop computer 1554B, a laptop computer 1554C, an automotive computer system 1554N, or a combination thereof. Not shown in Figure 15, the cloud computing nodes 1510 may further include a quantum platform (e.g., a quantum computer, quantum hardware, quantum software, similar, or a combination thereof) to which local computing devices used by cloud consumers can communicate. The cloud computing nodes 1510 can communicate with each other. The nodes may be physically or virtually grouped (not shown) in one or more networks, such as a private cloud, community cloud, public cloud, or hybrid cloud, or a combination thereof. This enables the cloud computing environment 1550 to provide infrastructure as a service, platform as a service, or software as a service, or a combination thereof, without requiring cloud consumers to maintain resources on their local computing devices. The types of computing devices 1554A-N shown in Figure 15 are for illustrative purposes only, and it should be understood that the cloud computing node 1510 and the cloud computing environment 1550 may communicate with any type of computerized device via any type of network, network addressable connection, or a combination thereof (e.g., using a web browser).
[0178] Referring here to the details of one or more embodiments shown in Figure 16, a set of functional abstraction layers 1600 is shown, such as those provided by the cloud computing environment 1550 (Figure 15). One or more embodiments described herein may relate to (e.g., accessible through) one or more functional abstraction layers (e.g., hardware and software layer 1660, virtualization layer 1670, management layer 1680, workload layer 1690, or a combination thereof) described below with reference to Figure 16. It should be understood in advance that the components, layers, functions, or combinations thereof shown in Figure 16 are for illustrative purposes only and the embodiments described herein are not limited thereto. As illustrated, the following layers, corresponding functions, or combinations thereof are provided:
[0179] The hardware and software layer 1660 may include hardware and software components. Examples of hardware components include a mainframe 1661, a RISC (minimum instruction set computer) architecture-based server 1662, a server 1663, a blade server 1664, a storage device 1665, a network, a network component 1666, or a combination thereof. In one or more embodiments, the software components may include network application server software 1667, quantum platform routing software 1668, quantum software (not shown in Figure 16), or a combination thereof.
[0180] The virtualization layer 1670 may provide an abstraction layer. From the abstraction layer, examples of virtual entities may be provided, namely, virtual servers 1671, virtual storage 1672, virtual networks 1673 including virtual private networks, virtual applications, operating systems 1674, or combinations thereof, virtual clients 1675, or combinations thereof.
[0181] For example, the management layer 1680 may provide the following functions: Resource provisioning 1681 may provide dynamic procurement of computing resources and other resources that can be used to perform tasks within the cloud computing environment. Measurement and pricing 1682 may provide cost tracking as resources are used within the cloud computing environment, billing for the consumption of these resources, invoicing, or a combination thereof. For example, these resources may include one or more application software licenses. Security may provide identity verification for cloud consumers, tasks, or a combination thereof, and protection for data, other resources, or a combination thereof. User (or entity) portal 1683 may provide access to the cloud computing environment for consumers and system administrators. Service level management 1684 may provide allocation, management, or a combination thereof of cloud computing resources to ensure that required service levels are met. Service level agreement (SLA) planning and execution 1685 may provide pre-arrangements and procurement for cloud computing resources where future requirements are anticipated in accordance with SLAs.
[0182] The workload layer 1690 may provide examples of the functionality that a cloud computing environment may utilize. Non-limiting examples of workloads and functions that may be provided from this layer include mapping and navigation 1691, software development and lifecycle management 1692, virtual classroom education delivery 1693, data analysis processing 1694, transaction processing 1695, application transformation software 1696, or a combination thereof.
[0183] The embodiments described herein may relate to one or more systems, methods, apparatus, computer program products, or combinations thereof at any possible level of technical detail of integration. A computer program product may include a computer-readable storage medium (or more media) having computer-readable program instructions for causing a processor to execute aspects of one or more embodiments described herein. The computer-readable storage medium may be a tangible device capable of holding and storing instructions for use by an instruction execution device. The computer-readable storage medium may not be limited to, for example, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any preferred combination thereof. A non-exclusive list of more specific examples of computer-readable storage media may also include portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disks (DVDs), memory sticks, floppy disks, mechanical encoding devices such as punch cards or grooved structures on which instructions are recorded, or any suitable combination of the above. Computer-readable storage media as used herein shall not be construed as transient signals themselves, such as radio waves or other freely transmitted electromagnetic waves or combinations thereof, electromagnetic waves transmitted through waveguides or other transmitting media (e.g., optical pulses passing through fiber optic cables) or combinations thereof, or electrical signals or combinations thereof transmitted through wiring.
[0184] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or to an external computer or external storage device, or a combination thereof, via a network such as the Internet, a local area network, a wide area network, or a wireless network or a combination thereof. The network may include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers or a combination thereof. A network adapter card or network interface in each computing / processing device receives computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing / processing device. Computer-readable program instructions for performing the operation of one or more embodiments described herein may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, source code, object code, or combinations thereof, or combinations thereof, written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk®, C++, or similar, the “C” programming language, similar programming languages, or combinations thereof, or combinations thereof. Computer-readable program instructions may be executed as a whole on a computer, partially on a computer, as a standalone software package, partially on a computer, partially on a remote computer, or a combination thereof, or entirely on a remote computer, server, or combination thereof.In the latter scenario, the remote computer may be connected to the computer through any type of network, including a local area network (LAN), a wide area network (WAN), or a combination thereof, and may be connected to an external computer (for example, via the Internet using an Internet service provider), or a combination thereof. In one or more embodiments, electronic circuits, including, for example, a programmable logic circuit, a field-programmable gate array (FPGA), a programmable logic array (PLA), or a combination thereof, may execute computer-readable program instructions by personalizing the electronic circuit using state information of computer-readable program instructions in order to perform an aspect of one or more embodiments described herein.
[0185] Aspects of one or more embodiments described herein are described with reference to flowcharts, block diagrams, or combinations thereof of methods, apparatus (systems), and computer program products according to one or more embodiments described herein. It will be understood that each block in a flowchart, block diagram, or combination thereof, and combinations of blocks in a flowchart, block diagram, or combination thereof, can be implemented by computer-readable program instructions. These computer-readable program instructions may be provided to a processor or combination of a general-purpose computer, a purpose-specific computer, or other programmable data processing device for creating a machine. Thus, instructions executed via a computer or other programmable data processing device processor may form means for implementing functions / actions specified in a block or combination of blocks in a flowchart or block diagram or combination thereof. These computer-readable program instructions may also be stored in a computer-readable storage medium that can instruct a computer, programmable data processing device, or other device or combination thereof to function in a particular manner. Thus, a computer-readable storage medium storing instructions may include a product containing instructions that can implement the modes of functions / actions specified in a block or combination of blocks in a flowchart or block diagram or combination thereof. Computer-readable program instructions can also be loaded onto a computer, other programmable data processing device, other device, or a combination thereof, thereby causing a series of actions to be executed on the computer, other programmable device, other device, or a combination thereof, creating a computer implementation process in which the instructions executed on the computer, other programmable device, other device, or a combination thereof implement the functions / actions specified in a block or multiple blocks of a flowchart or block diagram or a combination thereof.
[0186] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, operation, or combination thereof of a system, a computer implementable method according to one or more embodiments described herein, a computer program product, or a possible implementation of a combination thereof. In this regard, each block in a flowchart or block diagram may represent a module, segment, a part of instructions, or a combination thereof, containing one or more executable instructions for implementing a specified logical function. In one or more implementations, the functions described in a block may occur in an order other than that shown in the figure. For example, two consecutively shown blocks may be executed substantially simultaneously, depending on the functionality involved, or the blocks may be executed in reverse order, or a combination thereof. It should also be noted that each block, combination of blocks in a block diagram, flowchart, or combination thereof, or combination thereof, may be implemented by a special-purpose hardware-based system that can perform a specified function, action, or combination thereof, and can perform one or more combinations of instructions of special-purpose hardware, computers, or combinations thereof.
[0187] While the subject matter is described above in the general context of computer executable instructions for computer program products running on a computer, multiple computers, or a combination thereof, those skilled in the art will recognize that one or more embodiments described herein may also be implemented in combination with one or more other program modules. Generally, a program module includes routines, programs, components, data structures, and the like, or combinations thereof, that implement or combine a particular abstract data type, or perform a particular task. Furthermore, those skilled in the art will recognize that the computer implementation methods of the present invention may be implemented in other computer system configurations, including single-processor, multi-processor, or combination thereof computer systems, minicomputing devices, mainframe computers, computers, handheld computing devices (e.g., PDAs, telephones), microprocessor-based or programmable consumer or industrial electronics, and the like, or combinations thereof. The embodiments shown may also be implemented in a distributed computing environment where tasks are performed by remote processing devices connected via a communication network. However, embodiments of one or more embodiments described herein may be implemented on a standalone computer, though not all of them. In a distributed computing environment, program modules may reside on both local and remote memory storage devices.
[0188] Where used herein, terms such as “component,” “system,” “platform,” and “interface,” or any combination thereof, may refer to, include, or be a combination thereof a computer-related entity or an entity relating to an operating machine having one or more specific functionalities. Entities described herein may be hardware, a combination of hardware and software, software, or running software. For example, a component may be, but is not limited to, a process running on a processor, a processor, an object, an executable file, a thread of execution, a program, or a computer or a combination thereof. Exemplarily, both an application running on a server and a server may be components. One or more components may exist in a process, thread, or combination thereof of execution, and a component may be localized on one computer, distributed among two or more computers, or a combination thereof. In another example, each component may be executed from various computer-readable media containing various data structures. Components may communicate via local, remote, or a combination thereof, processes, such as signals, that have one or more data packets (for example, data from one component interacting with another component in a network such as the Internet, with a local system, a distributed system, or other systems or a combination thereof via signals). As another example, a component may be a device having inherent functionality provided by a mechanical part operated by an electrical or electronic circuit operated by software, firmware applications or a combination thereof executed by a processor. In such a case, the processor may be inside, outside, or a combination thereof of the device and may execute at least a part of the software, firmware applications or a combination thereof.As yet another example, a component may be a device that provides inherent functionality through electronic components without using mechanical parts, and such electronic components may include a processor, other means, or a combination thereof for running software, firmware, or a combination thereof that provides at least partially the functionality of the electronic components. In one embodiment, a component may emulate an electronic component via, for example, a virtual machine in a cloud computing system.
[0189] In addition, the term “or” is intended to mean an inclusive “or,” not an exclusive “or.” That is, unless otherwise specified or the context makes clear, “X utilizes A or B” is intended to mean either of the natural inclusive substitutions. That is, “X utilizes A or B” is satisfied under any of the aforementioned examples if X utilizes A, X utilizes B, or X utilizes both A and B. Furthermore, the articles “a” and “an” used herein and in the attached claims should generally be interpreted as meaning “one or plural,” unless otherwise specified or the context makes it clear that they refer to a singular noun. Where used herein, the terms “example,” “exemplary,” or any combination thereof are used to mean serving as an example, instance, or illustration. To avoid misunderstanding, the subject matter described herein is not limited to such examples. In addition, any embodiment or design described herein as “example,” “exemplary,” or a combination thereof shall not necessarily be construed as preferable or superior to other embodiments or designs, nor shall it be intended to exclude equivalent exemplary structures and techniques known to those skilled in the art.
[0190] As used herein, the term “processor” may refer to substantially any computing processing unit, device, or combination thereof, including, but not limited to, single-core processors, single processors with software multithreading capability, multi-core processors, multi-core processors with software multithreading capability, multi-core processors with hardware multithreading technology, parallel platforms, parallel platforms with distributed shared memory, or combinations thereof. Additionally, a processor may refer to integrated circuits, application-specific integrated circuits (ASICs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs), programmable logic controllers (PLCs), complex programmable logic devices (CPLDs), discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. Furthermore, processors may utilize nanoscale architectures, such as molecular and quantum dot-based transistors, switches, gates, or combinations thereof, for optimizing space utilization, enhancing the performance of associated equipment, or a combination thereof. Processors may be implemented as combinations of computing processing units.
[0191] In this specification, terms such as “storage,” “data storage,” “data storage,” “database,” and substantially any other information storage component relating to the operation and functionality of a component are used to refer to “memory” or “memory component” entities embodied in a component containing memory. It should be recognized that the memory or memory component or combination thereof described herein may be either volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. By example, and not by limitation, non-volatile memory may include read-only memory (ROM), programmable ROM (PROM), electroprogrammable ROM (EPROM), electro-erasable ROM (EEPROM), flash memory, non-volatile random-access memory (RAM) (e.g., ferroelectric RAM (FeRAM)) or combination thereof. Volatile memory may include RAM that can operate as, for example, external cache memory. As examples, not limitations, RAM may be available in many forms, including synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), extended SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), direct Rambus RAM (DRRAM), direct Rambus dynamic RAM (DRDRAM), Rambus dynamic RAM (RDRAM), or combinations thereof. Additionally, the memory components described herein in the manner in which they are implemented in systems, computers, or combinations thereof are intended to include, but are not limited to, these, any other suitable types of memory or combinations thereof.
[0192] The above descriptions include only examples of systems and computer implementations. Naturally, for the purpose of describing one or more embodiments, it is impossible to describe every conceivable combination of components, computer implementations, or combinations thereof; however, those skilled in the art will recognize that many further combinations, substitutions, or combinations thereof of one or more embodiments are possible. Furthermore, where terms such as “includes,” “has,” and “equipment” are used in the detailed description, claims, appendices, and drawings, such terms are intended to be comprehensive in the same manner as the term “equipment” is interpreted when used as a transitional clause in a claim.
[0193] The descriptions of one or more embodiments are presented for illustrative purposes only and are exclusive, and are not intended to limit the embodiments described herein. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the embodiments described herein. The terms used herein have been selected to best describe the principles of the embodiments, their practical applications, technical improvements to the art found in the industry, or a combination thereof, or to enable those skilled in the art to understand the embodiments described herein, or a combination thereof. (Other possible items) [Item 1] A system comprising a processor that executes computer executable components stored in memory, wherein the computer executable components are Includes service components that operate transaction services, The service component approaches consensus regarding the transaction's request by communicating with one or more other service components that operate one or more other services immediately upstream or downstream of the service in the transaction. system. [Item 2] The system as described in item 1, wherein the service component approaches the consensus by communicating only with the one or more other service components. [Item 3] The system described in item 1, wherein the service component approaches a consensus regarding the request without comprehensive management of communication between the service component and the one or more other service components. [Item 4] The service component is the system described in item 1, which communicates messages including one or more requests, votes, or final decisions. [Item 5] The set of service components that perform the services of the transaction includes at least the service component and the one or more other service components, The service component transmits communications of the request, or of one or more second requests, to one or more service components in the set that perform one or more of the lowest-level services of the transaction. The service component transmits communications of one or more votes to approve or cancel the request, or the one or more second requests, to one or more service components of the set that perform one or more upstream functions of the transaction. The service component transmits the communication of the final decision from the one or more service components of the set that perform the one or more upstream functions to the one or more service components of the set that perform the one or more downstream functions. The system described in item 4. [Item 6] The system described in item 1, wherein the service component includes a log component that maintains individual persistent logs for each individual service component that is a service component, and only for message communications in which the individual service component participates. [Item 7] The system according to any one of items 1 to 6, wherein the computer executable component further includes an observation component that facilitates observation by a management entity of the communication between the service component and the one or more other service components when the communication occurs. [Item 8] A computer implementation method, A service component that operates transaction services and is part of a system that is operablely coupled to a processor, With respect to the transaction request, the service component includes a step towards reaching a consensus, and the step towards reaching a consensus is: A computer implementation method comprising the step of the service component communicating with one or more other service components that operate one or more other services immediately upstream or downstream of the service in the transaction. [Item 9] The computer implementation method according to item 8, further comprising the step of approaching the consensus by having the service component communicate only with the one or more other service components. [Item 10] The computer implementation method according to item 8, further comprising the step of approaching a consensus on the request without comprehensive management of communication between the service component and the one or more other service components. [Item 11] The computer implementation method according to item 8, further comprising a step of the service component communicating one or more messages, including one or more requests, votes, or final decisions. [Item 12] The set of service components that perform the services of the transaction includes at least the service component and the one or more other service components, and the computer implementation method is The steps include: transmitting the request, or the communication of one or more second requests, to one or more service components of the set, which perform one or more downstream services of the transaction by the service component; The steps include: transmitting communications of one or more votes to approve or cancel the request, or the one or more second requests, to one or more service components of the set, which perform one or more upstream functions of the transaction by the service component; The service component transmits the communication of the final decision from the one or more service components of the set, which perform the one or more upstream functions, to the one or more service components of the set, which perform the one or more downstream functions. A computer implementation method as described in item 11, further comprising the above. [Item 13] The computer implementation method according to item 8, further comprising the step of maintaining individual persistent logs for each individual service component that is a service component, for each individual service component that is a service component, only for message communications in which the individual service component participated. [Item 14] The computer implementation method according to any one of items 8 to 13, further comprising the step of facilitating observation by a management entity of the communication between the service component and the one or more other service components when the communication occurs. [Item 15] A computer program that facilitates a process for consensus regarding the progress of transaction requests, wherein the computer program includes embodied program instructions, the program instructions are executable by a processor, and the processor, A service component that operates transaction services and is part of a system operably coupled to the processor, The service component by the processor brings us closer to a consensus regarding the transaction request, and The service component of the processor communicates with one or more other service components that operate one or more other services immediately upstream or downstream of the service in the transaction. A computer program that performs an action. [Item 16] The aforementioned program instructions are further executable by the processor, and the processor, The computer program according to item 15, which causes the service component by the processor to approach the consensus by communicating only with the one or more other service components. [Item 17] The aforementioned program instructions are further executable by the processor, and the processor, The computer program according to item 15, which causes the service component by the processor to approach a consensus on the request without comprehensive management of communication between the service component and the one or more other service components. [Item 18] The aforementioned program instructions are further executable by the processor, and the processor, The computer program according to item 15, which causes the service component of the processor to communicate one or more messages, including one or more requests, votes, or final decisions. [Item 19] The set of service components that perform the services of the transaction includes at least the service component and the one or more other service components, The aforementioned program instructions are further executable by the processor, and the processor, The processor transmits the communication of the request, or one or more second requests, to one or more service components of the set that perform one or more of the lowest-level services of the transaction. The processor transmits communications of one or more votes to approve or abort the request, or the one or more second requests, to one or more service components of the set, which perform one or more of the highest-level functions of the transaction by the service components, and The processor transmits the communication of the final decision from the one or more service components of the set, which perform the one or more upstream functions, to the one or more service components of the set, which perform the one or more downstream functions, via the service components of the set. A computer program described in item 18 that performs the following action. [Item 20] The aforementioned program instructions are further executable by the processor, and the processor, The service component of the processor maintains individual persistent logs for each individual service component, which is a service component, for each individual service component, only for message communications in which that individual service component participated. A computer program that causes the computer to perform the actions described in any one of items 15 to 19.
Claims
1. A system comprising a processor that executes computer executable components stored in memory, wherein the computer executable components are Includes service components that operate transaction services, The service component approaches consensus regarding the transaction's request by communicating with one or more other service components that operate one or more other services immediately upstream or downstream of the service in the transaction. The service component includes a log component that maintains individual persistent logs for each individual service component that is a service component, specifically for message communications in which the individual service component participates. system.
2. The system according to claim 1, wherein the service component approaches the consensus by communicating only with the one or more other service components.
3. The system according to claim 1, wherein the service component approaches a consensus regarding the request without comprehensive management of communication between the service component and the one or more other service components.
4. The system according to claim 1, wherein the service component communicates a message including one or more requests, votes, or final decisions.
5. The set of service components that perform the services of the transaction includes at least the service component and the one or more other service components, The service component transmits communications of the request, or of one or more second requests, to one or more service components in the set that perform one or more of the lowest-level services of the transaction. The service component transmits communications of one or more votes to approve or cancel the request or the one or more second requests to one or more service components of the set that perform one or more upstream functions of the transaction. The service component transmits the communication of the final decision from the one or more service components of the set that perform the one or more upstream functions to the one or more service components of the set that perform the one or more downstream functions. The system according to claim 4.
6. A system comprising a processor that executes computer executable components stored in memory, wherein the computer executable components are Includes service components that operate transaction services, The service component approaches consensus regarding the transaction's request by communicating with one or more other service components that operate one or more other services immediately upstream or downstream of the service in the transaction. The service component communicates a message containing one or more requests, votes, or final decisions. The set of service components that perform the services of the transaction includes at least the service component and the one or more other service components, The service component transmits communications of the request, or of one or more second requests, to one or more service components in the set that perform one or more of the lowest-level services of the transaction. The service component transmits communications of one or more votes to approve or cancel the request or the one or more second requests to one or more service components of the set that perform one or more upstream functions of the transaction. The service component transmits the communication of the final decision from the one or more service components of the set that perform the one or more upstream functions to the one or more service components of the set that perform the one or more downstream functions. system.
7. The system according to any one of claims 1, 2, and 4-6, wherein the computer executable component further includes an observation component that facilitates observation by a management entity of the communication between the service component and the one or more other service components when the communication occurs.
8. A system comprising a processor that executes computer executable components stored in memory, wherein the computer executable components are Includes service components that operate transaction services, The service component approaches consensus regarding the transaction's request by communicating with one or more other service components that operate one or more other services immediately upstream or downstream of the service in the transaction. The computer executable component further includes an observation component that facilitates observation by a management entity of the communication between the service component and the one or more other service components when the communication occurs. system.
9. A computer implementation method, A service component that operates transaction services and is part of a system that is operablely coupled to a processor, With respect to the transaction request, the service component approaches a stage in which it approaches consensus, The service component includes the step of maintaining individual persistent logs for each individual service component that is a service component, for each individual service component that is a service component, only for message communications in which the individual service component participated. The stage of approaching the aforementioned consensus is, A computer implementation method comprising the step of the service component communicating with one or more other service components that operate one or more other services immediately upstream or downstream of the service in the transaction.
10. The computer implementation method according to claim 9, further comprising the step of approaching the consensus by having the service component communicate only with the one or more other service components.
11. The computer implementation method according to claim 9, further comprising the step of approaching a consensus on the request without comprehensive management of communication between the service component and the one or more other service components.
12. The computer implementation method according to claim 9, further comprising the step of communicating one or more messages, including one or more requests, votes, or final decisions, by the service component.
13. The set of service components that perform the service of the transaction includes at least the service component and the one or more other service components, and the computer implementation method is The steps include transmitting the request, or the communication of one or more second requests, to one or more service components of the set, which perform one or more downstream services of the transaction by the service component, A step of transmitting communications of one or more votes to approve or cancel the request, or the one or more second requests, to one or more service components of the set, which perform one or more of the highest-level functions of the transaction by the service component, The service component transmits the communication of the final decision from the one or more service components of the set, which perform the one or more upstream functions, to the one or more service components of the set, which perform the one or more downstream functions. The computer implementation method according to claim 12, further comprising the above.
14. A computer implementation method, A service component that operates transaction services and is part of a system that is operablely coupled to a processor, With respect to the transaction request, the service component approaches a stage in which it approaches consensus, The service component comprises a step of communicating one or more messages, including one or more requests, votes, or final decisions, The stage of approaching the aforementioned consensus is, The service component includes a step of communicating with one or more other service components that operate one or more other services immediately upstream or downstream of the service in the transaction. The set of service components that perform the services of the transaction includes at least the service component and the one or more other service components, The aforementioned computer implementation method is The steps include transmitting the request, or the communication of one or more second requests, to one or more service components of the set, which perform one or more downstream services of the transaction by the service component, A step of transmitting communications of one or more votes to approve or cancel the request, or the one or more second requests, to one or more service components of the set, which perform one or more of the highest-level functions of the transaction by the service component, The service component transmits the communication of the final decision from the one or more service components of the set, which perform the one or more upstream functions, to the one or more service components of the set, which perform the one or more downstream functions. It also has, Computer implementation method.
15. The computer implementation method according to any one of claims 9, 10, and 12-14, further comprising the step of facilitating observation by a management entity of communications between the service component and the one or more other service components when such communications occur.
16. A computer implementation method, A service component that operates transaction services and is part of a system that is operablely coupled to a processor, With respect to the transaction request, the service component includes a step towards reaching a consensus, The stage of approaching the aforementioned consensus is, The service component includes a step of communicating with one or more other service components that operate one or more other services immediately upstream or downstream of the service in the transaction. The aforementioned computer implementation method is A computer implementation method further comprising the step of facilitating observation by a management entity of the communication between the service component and the one or more other service components when the aforementioned communication occurs.
17. A computer program that facilitates a process for consensus regarding the progress of transaction requests, wherein the computer program includes embodied program instructions, the program instructions are executable by a processor, and the processor, A service component that operates transaction services and is part of a system operably coupled to the processor, The service component by the processor brings us closer to a consensus regarding the transaction request, The service component of the processor communicates with one or more other service components that operate one or more other services immediately upstream or downstream of the service in the transaction, The service component of the processor maintains individual persistent logs for each service component, which is a service component, for each individual service component, only for message communications in which that individual service component participated. A computer program that performs an action.
18. The aforementioned program instructions are further executable by the processor, and the processor, The computer program according to claim 17, wherein the service component of the processor is used to approach the consensus by communicating only with the one or more other service components.
19. The aforementioned program instructions are further executable by the processor, and the processor, The computer program according to claim 17, wherein the processor causes the service component to approach a consensus on the request without comprehensive management of communication between the service component and the one or more other service components.
20. The aforementioned program instructions are further executable by the processor, and the processor, The computer program according to claim 17, which causes the service component of the processor to communicate one or more messages, including one or more requests, votes, or final decisions.
21. The set of service components that perform the services of the transaction includes at least the service component and the one or more other service components, The aforementioned program instructions are further executable by the processor, and the processor, The processor transmits the communication of the request, or one or more second requests, to one or more service components of the set that perform one or more of the lowest-level services of the transaction, The processor transmits communications of one or more votes to approve or cancel the request, or the one or more second requests, to one or more service components of the set, which perform one or more top-level functions of the transaction by the service components, and The processor transmits the communication of the final decision from the one or more service components of the set, which perform the one or more upstream functions, to the one or more service components of the set, which perform the one or more downstream functions, via the service components of the set. A computer program according to claim 20 that causes the computer program to perform the following actions.
22. A computer program that facilitates a process for consensus regarding the progress of a transaction request, wherein the computer program includes embodied program instructions, the program instructions are executable by a processor, and the processor, A service component that operates transaction services and is part of a system operably coupled to the processor, The service component by the processor brings us closer to a consensus regarding the transaction request, The service component of the processor communicates with one or more other service components that operate one or more other services immediately upstream or downstream of the service in the transaction, The service component of the processor is configured to communicate one or more messages, including one or more requests, votes, or final decisions. The set of service components that perform the services of the transaction includes at least the service component and the one or more other service components, The aforementioned program instructions are further executable by the processor, and the processor, The processor transmits the communication of the request, or one or more second requests, to one or more service components of the set that perform one or more of the lowest-level services of the transaction by the service component. The processor transmits communications of one or more votes to approve or cancel the request or the one or more second requests to one or more service components of the set, which perform one or more top-level functions of the transaction by the service components of the set. The processor transmits the communication of the final decision from the one or more service components of the set, which perform the one or more upstream functions, to the one or more service components of the set, which perform the one or more downstream functions, via the service components of the set. A computer program that performs an action.
Citation Information
Patent Citations
Systems and methods for virtual distributed ledger networks
WO2020188494A1