Detailed Description
The technical solutions in the embodiments of the present disclosure will be clearly and completely described below with reference to the drawings in the embodiments of the present disclosure, and it is obvious that the described embodiments are only a part of the embodiments of the present disclosure, and not all of the embodiments. All other embodiments obtained by a person skilled in the art based on the embodiments in the present specification without any inventive step should fall within the scope of protection of the present specification.
For the convenience of those skilled in the art to understand the technical solutions in the embodiments of the present specification, the following description will first describe a technical environment for implementing the technical solutions.
The distributed transaction may include a plurality of branch transactions. The subject involved in a distributed transaction may include an initiator and a participant. The initiator and participant may each be located on different nodes of different distributed systems. The initiator may be used to initiate and manage distributed transactions. The subject involved in a distributed transaction may include an initiator. Participants may be used to process branch transactions in a distributed transaction. A subject involved in a distributed transaction may include multiple participants.
Distributed transactions are typically Atomicity (Atomicity). That is, the individual branch transactions that make up the distributed transaction either all commit or all rollback. To ensure atomicity of a distributed transaction, the processing of the distributed transaction may include two phases. In the first phase, the initiator may send a pre-processing instruction to each participant to confirm whether each participant can complete the branch transaction for which it is responsible. Each participant may receive preprocessing instructions; whether the branch transaction can be completed by the device can be checked; if yes, corresponding preprocessing operation can be executed, and response information of successful processing can be fed back; if not, the response information of the processing failure can be fed back. In the second stage, if the response information fed back by each participant is response information processed successfully, the initiator may send a commit instruction to each participant. Each participant may receive a commit instruction; a corresponding commit operation may be performed. If the response information fed back by any one or more participants is the response information with processing failure, the initiator can send a rollback instruction to each participant. Each participant may receive a rollback instruction; a corresponding rollback operation may be performed.
Reversible operation generally refers to an operation that can be performed in reverse to return to the starting point. An irreversible operation generally refers to an operation that cannot be performed in reverse to return to the starting point. In particular in a distributed transaction, each participant may resolve the branch transaction for which it is responsible into multiple business operations. The plurality of business operations may include reversible operations and irreversible operations. In the first stage, after receiving the preprocessing instruction, the participant can check whether the participant can complete the branch transaction; if yes, reversible operation in the plurality of business operations can be executed. In a second phase, the participant, upon receiving the commit instruction, may perform an irreversible operation of the plurality of business operations to effect the commit of the branch transaction. Alternatively, in the second phase, after receiving the rollback instruction, the participant may reverse the reversible operations that were performed in the first phase to implement the rollback of the branch transaction. For example, the branch transaction for which the participant is responsible may include transferring 100 elements from the A account to the B account. Then the participant may resolve the branch transaction into a business operation of locking the a account, deducting 100 from the a account, adding 100 to the B account, etc. The business operation of locking the account A and the business operation of deducting 100 yuan from the account A are reversible operations respectively; and adding 100 yuan to the business operation of the B account into an irreversible operation.
In the process of distributed transaction, the phenomenon that the participant cannot roll back or commit due to network timeout and other factors is called transaction suspension. For example, in the processing process of the distributed transaction, due to a temporary network failure, a preprocessing instruction sent by an initiator to a certain participant is delayed to cause a timeout, and then the initiator sends a rollback instruction to each participant. The participant may receive a rollback instruction; a rollback operation may be performed. The participant receives the preprocessing instruction again subsequently due to the network recovery, and then can execute the corresponding preprocessing operation. But the initiator considers the distributed transaction process to have ended and will not send any more commit or rollback instructions to that participant. Such that the participant will always be in a state of waiting to receive a commit instruction or a rollback instruction to generate a transaction pending.
Please refer to fig. 1 and fig. 2 together. The embodiment of the specification provides a data processing method. The data processing method can be applied to a data processing platform. The data processing platform may include an internal business system and an external business system. The internal business system can be implemented based on a distributed transaction technology, and particularly can comprise an initiator and a plurality of participants. The external business system may be implemented based on techniques other than distributed transaction techniques. The external service system may specifically be one server, and may also be a server cluster including a plurality of servers. At least one participant in the internal business system may communicate with the external business system. The external business system is thus able to access the internal business system and may be responsible for one or more branch transactions in the distributed transaction. For convenience of description, a participant in the internal business system that can communicate with the external business system may be referred to as a first participant; the other participants in the internal business system except the first participant may be referred to as second participants.
The data processing method may include the following steps.
Step S101: the initiator sends preprocessing instructions to the first participant and the second participant.
In this embodiment, the initiator may send preprocessing instructions to the first participant and the second participant, respectively, during a first phase of the transaction process.
Step S102: the first participant receives the preprocessing instruction and sends a first service processing request to an external service system.
In this embodiment, the first participant may receive the preprocessing instruction; a first service processing request may be sent to the external service system; the first service processing request may carry a transaction identifier and a preprocessing identifier. The transaction identification may be used to uniquely identify the transaction in the internal business system and the external business system. The pre-processing identification may be used to identify that the transaction process is in the first phase.
In an implementation manner of this embodiment, the first service processing request may also carry other parameters, for example, service parameters. The business parameters may be the same or different depending on the branch transactions for which the external business system is responsible. For example, the branch transaction for which the external business system is responsible may be a transfer. The service parameters may include the account identification of the transferred account, the transfer amount, and the like.
Step S103: and the external service system receives the first service processing request and detects whether the transaction identifier exists in the suspension-proof transaction identifier set.
In this embodiment, the external service system may receive the first service processing request; it may be detected whether the transaction identity is present in a set of anti-dangling transaction identities. The hanging-proof transaction identifier set may be preset by a developer in the external service system, and specifically may include at least one transaction identifier. The anti-dangling transaction identification set can be implemented by a data table, a linear table, a queue, a stack, a graph or the like.
In an implementation manner of this embodiment, the transaction identifier in the suspension-proof transaction identifier set may have a state attribute. The value of the state attribute may be used to indicate a phase in which the transaction identifier is added to the set of anti-pended transaction identifiers, and specifically may include a "first phase" and a "rollback phase". The state attribute value "first phase" may be used to indicate that the transaction identifier is added to the set of anti-dangling transaction identifiers in the first phase; the state attribute value "rollback phase" may be used to indicate that the transaction identification was added to the set of anti-pended transaction identifications during the rollback phase. It will be understood by those skilled in the art that the "first stage" and "rollback stage" are just one nomenclature used for convenience of description, and any implementation having other names but whose functions are equivalent to those in the embodiments of the present specification is within the scope of the present application. In this way, in this embodiment, the external service system may detect whether the transaction identifier with the state attribute value of "first phase" exists in the suspension-preventing transaction identifier set.
Step S104: the external business system ends the transaction process.
In this embodiment, if the transaction pends, the external service system considers that the external service system has already executed the preprocessing operation, and does not need to execute the preprocessing operation again, so that the whole transaction processing process can be ended, thereby avoiding the occurrence of transaction pendants.
In an implementation manner of this embodiment, if the response information exists, the external service system may further feed back response information of processing failure to the first participant. The first participant can receive response information of processing failure fed back by an external business system; response information of processing failure may be fed back to the initiator.
Step S105: the external service system executes corresponding preprocessing operation based on the preprocessing identification; and feeding back response information of successful processing to the first participant.
In this embodiment, if not, the external service system may execute a corresponding preprocessing operation based on the preprocessing identifier; response information of successful processing may be fed back to the first participant. The preprocessing operation may comprise a reversible operation. The preprocessing operations may be the same or different depending on the branch transactions for which the external business system is responsible. For example, the branch transaction for which the external business system is responsible may be a transfer. The preprocessing operations may then include a business operation to lock the roll-out account, and a business operation to deduct the transfer amount from the roll-out account.
In an implementation manner of this embodiment, if the transaction identifier does not exist, the external service system may further add the transaction identifier to the suspension-prevention transaction identifier set to indicate that the external service system has performed the preprocessing operation. Further, the transaction identifier in the set of anti-dangling transaction identifiers may have a state attribute. In this way, the external business system may add the transaction identifier to the set of anti-dangling transaction identifiers, and may set the attribute value of the transaction identifier to "first phase" in the set of anti-dangling transaction identifiers.
In an implementation manner of this embodiment, if the external service system does not exist, the external service system may further check whether the external service system can complete the branch transaction; if yes, executing corresponding preprocessing operation based on the preprocessing identification; response information of successful processing can be fed back to the first participant; if not, response information of processing failure can be fed back to the first participant. The process of the external business system verification may be the same or different depending on the difference in branch transactions for which the external business system is responsible. For example, the branch transaction for which the external business system is responsible may be a transfer. Then the external transaction system may verify that the balance of the transferred account is greater than or equal to the transfer amount.
Step S106: and the first participant receives the response information of successful processing and feeds back the response information of successful processing to the initiator.
Step S107: the second participant receives the preprocessing instruction and checks whether it can complete the branch transaction.
Step S108: the second participant executes corresponding preprocessing operation and feeds back response information of successful processing to the initiator.
Step S109: the second participant feeds back response information of processing failure to the initiator.
In this embodiment, the second participant may receive the preprocessing instruction; whether the branch transaction can be completed by the device can be checked; if yes, corresponding preprocessing operation can be executed, and response information of successful processing can be fed back to the initiator; if not, response information of processing failure can be fed back to the initiator. The process of the second participant verifying whether itself can complete the branch transaction and the process of performing the preprocessing operation may be similar to the process of the external business system verifying whether itself can complete the branch transaction and the process of performing the preprocessing operation. Both of which can be explained with reference to the drawings and will not be described in detail herein.
Step S110: and the initiator receives the response information and detects whether the received response information is response information which is processed successfully.
Step S111: the initiator sends a commit instruction to the first participant and the second participant.
In this embodiment, the initiator may receive response information fed back by the first participant and the second participant, and may detect whether the received response information is response information with successful processing. If yes, in the second stage of the transaction processing process, the initiator considers that the transaction has a commit condition; a commit instruction may be sent to the first participant and the second participant, respectively.
Step S112: and the first participant receives the submission instruction and sends a second service processing request to the external service system.
In this embodiment, the second service processing request may carry a transaction identifier and a commit identifier. The transaction identifier carried in the second service processing request may be the same as the transaction identifier carried in the first service processing request. The commit identifier may be used to identify that the transaction process is in a commit phase. In an implementation manner of this embodiment, the second service processing request may also carry other parameters, for example, service parameters. For detailed description of the service parameter, reference may be made to the foregoing step S102, which is not described herein again.
Step S113: and the external service system receives the second service processing request and executes corresponding submission operation based on the submission identifier.
In this embodiment, the external service system may receive the second service processing request; based on the commit identifier, a corresponding commit operation may be performed, and the entire transaction process may be ended. The commit operation may comprise an irreversible operation. The commit operation may be the same or different depending on the branch transaction for which the external business system is responsible. For example, the branch transaction for which the external business system is responsible may be a transfer. The commit operation may then include a business operation that adds the transfer amount to the transferred account.
Step S114: the second participant receives the commit instruction and performs a corresponding commit operation.
In this embodiment, the process of the second participant performing the commit operation may be similar to the process of the external business system performing the commit operation. Both of which can be explained with reference to the drawings and will not be described in detail herein.
Step S115: the initiator sends a rollback instruction to the first participant and the second participant.
In this embodiment, the initiator may receive response information fed back by the first participant and the second participant, and may detect whether the received response information is response information with successful processing. If not, in the second stage of the transaction processing process, the initiator considers that the transaction does not have the submission condition; a rollback instruction may be sent to the first participant and the second participant, respectively.
Step S116: and the first participant receives the rollback instruction and sends a third service processing request to the external service system.
In this embodiment, the third service processing request may carry a transaction identifier and a rollback identifier. The transaction identifier carried in the third service processing request may be the same as the transaction identifier carried in the first service processing request. The rollback identification may be used to identify that the transaction process is in a rollback phase. In an implementation manner of this embodiment, the third service processing request may also carry other parameters, for example, service parameters. For detailed description of the service parameter, reference may be made to the foregoing step S102, which is not described herein again.
Step S117: and the external service system receives the third service processing request and detects whether the transaction identifier exists in the suspension-preventing transaction identifier set.
In this embodiment, the external service system may receive the third service processing request; it may be detected whether the transaction identity is present in a set of anti-dangling transaction identities.
In an implementation manner of this embodiment, the transaction identifier in the suspension-proof transaction identifier set may have a state attribute. In this way, the external service system may detect whether the transaction identifier with the state attribute value of "rollback phase" exists in the suspensionproof transaction identifier set.
Step S118: the external business system reverses the execution of the preprocessing operation to implement rollback.
In this embodiment, if present, the external system may reverse the pre-processing operation to implement rollback. The rollback operation may be the same or different depending on the branch transaction for which the external business system is responsible. For example, the branch transaction for which the external business system is responsible may be a transfer. The preprocessing operations may include a business operation to lock the roll-out account, a business operation to deduct a transfer amount from the roll-out account, and the like. The rollback operation may then include a business operation that adds the transfer amount to the roll-out account, a business operation that unlocks the roll-out account, and so on.
Step S119: the external business system performs a null rollback operation.
In this embodiment, if the first service processing request is not received, the external service system may determine that the first service processing request has not been received from the first participant due to a network timeout or the like, and may perform a rollback operation.
In an implementation manner of this embodiment, if the transaction identifier does not exist, the external service system may add the transaction identifier to the suspension-prevention transaction identifier set. Therefore, after receiving the first service processing request from the first participant in the subsequent process, the external service system does not execute the preprocessing operation, but can directly end the whole transaction processing process, thereby avoiding the generation of transaction suspension. Further, the transaction identifier in the set of anti-dangling transaction identifiers may have a state attribute. In this way, the external business system may add the transaction identifier to the set of anti-dangling transaction identifiers, and may set the attribute value of the transaction identifier to "rollback phase" in the set of anti-dangling transaction identifiers.
Step S120: and the second participant receives the rollback instruction and executes corresponding rollback operation.
In this embodiment, the process of the second participant performing the rollback operation may be similar to the process of the external business system performing the rollback operation. Both of which can be explained with reference to the drawings and will not be described in detail herein.
In this embodiment, the participant may send a service processing request to the external service system. The external service system can receive the service processing request; business operations can be performed; the business operations may include preprocessing operations, commit operations, rollback operations, and the like. The participants may be affiliated with an internal business system. The internal business system may be a distributed transaction system. The external business system may be a non-distributed transaction system. Therefore, based on the participants in the distributed transaction system, the business interfacing between the distributed transaction system and the non-distributed transaction system can be realized.
Please refer to fig. 3. The embodiment of the specification also provides another data processing method. The data processing method may include the following steps.
Step S20: after receiving the preprocessing instruction, the participant sends a service processing request to an external service system.
In the present embodiment, the participant can refer to the explanation with respect to the first participant in the foregoing embodiments. The service processing request may be explained with reference to the first service processing request in the foregoing embodiment. Specifically, the service processing request may carry a transaction identifier and a preprocessing identifier. Of course, the service processing request may also carry other parameters, such as service parameters.
Step S22: and the external service system receives the service processing request, and executes corresponding preprocessing operation based on the preprocessing identification under the condition that the transaction identification does not exist in the suspension-proof transaction identification set.
In this embodiment, the suspension-preventing transaction identifier set may be preset by a developer in the external service system, and specifically may include at least one transaction identifier. The anti-dangling transaction identification set can be implemented by a data table, a linear table, a queue, a stack, a graph or the like. The external service system may receive the service processing request; whether the transaction identifier exists in the anti-hanging transaction identifier set can be detected; if not, executing corresponding preprocessing operation based on the preprocessing identification; if so, the entire transaction process may end. The preprocessing operation may comprise a reversible operation.
In an implementation manner of this embodiment, if the transaction identifier does not exist, the external service system may further add the transaction identifier to the suspension-preventing transaction identifier set.
In an implementation manner of this embodiment, if the response information does not exist, the external service system may further feed back response information that processing is successful to the participant.
In an implementation manner of this embodiment, if the external service system does not exist, the external service system may further check whether the external service system can complete the branch transaction; if yes, executing corresponding preprocessing operation based on the preprocessing identification; response information of successful processing can be fed back to the first participant; if not, response information of processing failure can be fed back to the first participant.
In an implementation manner of this embodiment, if the response information exists, the external business system may further feed back response information of processing failure to the participant.
In an implementation manner of this embodiment, the transaction identifier in the suspension-proof transaction identifier set may have a state attribute. The value of the state attribute may be used to indicate a phase in which the transaction identifier is added to the set of anti-pended transaction identifiers, and specifically may include a "first phase" and a "rollback phase". Thus, the external service system can detect whether the transaction identifier with the state attribute value of "first stage" exists in the suspension-preventing transaction identifier set; if not, executing corresponding preprocessing operation based on the preprocessing identification; if so, the entire transaction process may end.
In this embodiment, the participant may send a service processing request to the external service system. The external service system can receive the service processing request; a preprocessing operation may be performed. The participants may be affiliated with an internal business system. The internal business system may be a distributed transaction system. The external business system may be a non-distributed transaction system. Thus, based on the participants in the distributed transaction system, the external business system can start the first processing stage of the transaction.
The embodiment corresponding to fig. 3 may form another data processing method with the external service system as the main body. Please refer to fig. 4. The data processing method may include the following steps.
Step S30: a service processing request is received.
Step S32: and executing corresponding preprocessing operation based on the preprocessing identification under the condition that the transaction identification does not exist in the suspension-proof transaction identification set.
Please refer to fig. 5. The embodiment of the specification also provides another data processing method. The data processing method may include the following steps.
Step S40: after receiving the submit instruction, the participant sends a business processing request to the external business system.
In the present embodiment, the participant can refer to the explanation with respect to the first participant in the foregoing embodiments. The service processing request may be explained with reference to the second service processing request in the foregoing embodiment. Specifically, the service processing request may carry a transaction identifier and a commit identifier. Of course, the service processing request may also carry other parameters, such as service parameters.
Step S42: and the external service system receives the service processing request and executes corresponding submission operation based on the submission identifier.
In this embodiment, the external service system may receive the service processing request; based on the commit identifier, a corresponding commit operation may be performed, and the entire transaction process may be ended. The commit operation may comprise an irreversible operation.
In this embodiment, the participant may send a service processing request to the external service system. The external service system can receive the service processing request; a commit operation may be performed. The participants may be affiliated with an internal business system. The internal business system may be a distributed transaction system. The external business system may be a non-distributed transaction system. Thus, based on the participants in the distributed transaction system, the external business system can start the commit phase of the transaction.
The embodiment corresponding to fig. 5 may form another data processing method with the external service system as the main body. Please refer to fig. 6. The data processing method may include the following steps.
Step S50: a service processing request is received.
Step S52: and executing corresponding submission operation based on the submission identification.
Please refer to fig. 7. The embodiment of the specification also provides another data processing method. The data processing method may include the following steps.
Step S60: after receiving the rollback instruction, the participant sends a service processing request to the external service system.
In the present embodiment, the participant can refer to the explanation with respect to the first participant in the foregoing embodiments. The service processing request may be explained with reference to the third service processing request in the foregoing embodiment. Specifically, the service processing request may carry a transaction identifier and a rollback identifier. Of course, the service processing request may also carry other parameters, such as service parameters.
Step S62: the external service system receives the service processing request; and executing corresponding rollback operation based on the rollback identification.
In this embodiment, the external service system may receive the service processing request; a corresponding rollback operation may be performed based on the rollback identification. Specifically, the external service system may detect whether the transaction identifier exists in the suspension-prevention transaction identifier set; if so, the pre-processing operation may be performed in reverse to implement rollback; if not, a rollback operation may be performed.
In an implementation manner of this embodiment, if the transaction identifier does not exist, the external service system may add the transaction identifier to the suspension-prevention transaction identifier set.
In this embodiment, the participant may send a service processing request to the external service system. The external service system can receive the service processing request; a rollback operation may be performed. The participants may be affiliated with an internal business system. The internal business system may be a distributed transaction system. The external business system may be a non-distributed transaction system. Thus, based on the participants in the distributed transaction system, the external business system can start the rollback phase of the transaction.
The embodiment corresponding to fig. 7 may form another data processing method with the external service system as the main body. Please refer to fig. 8. The data processing method may include the following steps.
Step S70: a service processing request is received.
Step S72: and executing corresponding rollback operation based on the rollback identification.
Please refer to fig. 9. The embodiment of the specification provides a server. The server may include the following unit modules.
A receiving unit, configured to receive a service processing request; the service processing request carries a transaction identifier and a preprocessing identifier;
and the execution unit is used for executing corresponding preprocessing operation based on the preprocessing identification under the condition that the transaction identification does not exist in the suspension-proof transaction identification set.
Please refer to fig. 10. The embodiment of the specification also provides another server. The server may include a communication component and a processor.
In this embodiment, the communication component includes, but is not limited to, a wired network card, a wireless network card, a bluetooth module, an infrared transceiver module, an ultra-wideband communication module, a zigbee protocol communication module, and the like. The communication component may be used to establish a communication connection and perform data transmission.
In this embodiment, the processor may be implemented in any suitable manner. For example, the processor may take the form of, for example, a microprocessor or processor and a computer-readable medium that stores computer-readable program code (e.g., software or firmware) executable by the (micro) processor, logic gates, switches, an Application Specific Integrated Circuit (ASIC), a programmable logic controller, an embedded microcontroller, and so forth. The processor may be configured to control the communication component to receive a service processing request; the service processing request carries a transaction identifier and a preprocessing identifier; and executing corresponding preprocessing operation based on the preprocessing identification under the condition that the transaction identification does not exist in the suspension-proof transaction identification set.
Please refer to fig. 9. The embodiment of the specification also provides another server. The server may include the following unit modules.
A receiving unit, configured to receive a service processing request; the service processing request carries a submission identifier;
and the execution unit is used for executing corresponding submission operation based on the submission identification.
Please refer to fig. 10. The embodiment of the specification also provides another server. The server may include a communication component and a processor.
In this embodiment, the communication component includes, but is not limited to, a wired network card, a wireless network card, a bluetooth module, an infrared transceiver module, an ultra-wideband communication module, a zigbee protocol communication module, and the like. The communication component may be used to establish a communication connection and perform data transmission.
In this embodiment, the processor may be implemented in any suitable manner. For example, the processor may take the form of, for example, a microprocessor or processor and a computer-readable medium that stores computer-readable program code (e.g., software or firmware) executable by the (micro) processor, logic gates, switches, an Application Specific Integrated Circuit (ASIC), a programmable logic controller, an embedded microcontroller, and so forth. The processor may be configured to control the communication component to receive a service processing request; the service processing request carries a submission identifier; and executing corresponding submission operation based on the submission identification.
Please refer to fig. 9. The embodiment of the specification also provides another server. The server may include the following unit modules.
A receiving unit, configured to receive a service processing request; the service processing request carries a rollback identifier;
and the execution unit is used for executing corresponding rollback operation based on the rollback identification.
Please refer to fig. 10. The embodiment of the specification also provides another server. The server may include a communication component and a processor.
In this embodiment, the communication component includes, but is not limited to, a wired network card, a wireless network card, a bluetooth module, an infrared transceiver module, an ultra-wideband communication module, a zigbee protocol communication module, and the like. The communication component may be used to establish a communication connection and perform data transmission.
In this embodiment, the processor may be implemented in any suitable manner. For example, the processor may take the form of, for example, a microprocessor or processor and a computer-readable medium that stores computer-readable program code (e.g., software or firmware) executable by the (micro) processor, logic gates, switches, an Application Specific Integrated Circuit (ASIC), a programmable logic controller, an embedded microcontroller, and so forth. The processor may be configured to control the communication component to receive a service processing request; the service processing request carries a rollback identifier; and executing corresponding rollback operation based on the rollback identification.
It should be noted that, in the present specification, each embodiment is described in a progressive manner, and the same and similar parts among the embodiments are referred to each other, and each embodiment focuses on the differences from the other embodiments. In particular, for the server embodiment, since it is basically similar to the data processing method embodiment, the description is relatively simple, and for relevant points, reference may be made to partial description of the data processing method embodiment.
In addition, it should be understood by those skilled in the art that after reading this specification, there is no need for inventive faculty to conceive of any combination of some or all of the embodiments recited in this document, which combinations are also within the scope of the disclosure and protection of this application.
In the 90 s of the 20 th century, improvements in a technology could clearly distinguish between improvements in hardware (e.g., improvements in circuit structures such as diodes, transistors, switches, etc.) and improvements in software (improvements in process flow). However, as technology advances, many of today's process flow improvements have been seen as direct improvements in hardware circuit architecture. Designers almost always obtain the corresponding hardware circuit structure by programming an improved method flow into the hardware circuit. Thus, it cannot be said that an improvement in the process flow cannot be realized by hardware physical modules. For example, a Programmable Logic Device (PLD), such as a Field Programmable Gate Array (FPGA), is an integrated circuit whose Logic functions are determined by programming the Device by a user. A digital system is "integrated" on a PLD by the designer's own programming without requiring the chip manufacturer to design and fabricate a dedicated integrated circuit chip 2. Furthermore, nowadays, instead of manually making an Integrated Circuit chip, such Programming is often implemented by "logic compiler" software, which is similar to a software compiler used in program development and writing, but the original code before compiling is also written by a specific Programming Language, which is called Hardware Description Language (HDL), and HDL is not only one but many, such as abel (advanced Boolean Expression Language), ahdl (alternate Language Description Language), traffic, pl (core unified Programming Language), HDCal, JHDL (Java Hardware Description Language), langue, Lola, HDL, laspam, hardbyscript Description Language (vhr Description Language), and the like, which are currently used by Hardware compiler-software (Hardware Description Language-software). It will also be apparent to those skilled in the art that hardware circuitry that implements the logical method flows can be readily obtained by merely slightly programming the method flows into an integrated circuit using the hardware description languages described above.
The systems, devices, modules or units illustrated in the above embodiments may be implemented by a computer chip or an entity, or by a product with certain functions. One typical implementation device is a computer. In particular, the computer may be, for example, a personal computer, a laptop computer, a cellular telephone, a camera phone, a smartphone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
From the above description of the embodiments, it is clear to those skilled in the art that the present specification can be implemented by software plus a necessary general hardware platform. Based on such understanding, the technical solutions of the present specification may be essentially or partially implemented in the form of software products, which may be stored in a storage medium, such as ROM/RAM, magnetic disk, optical disk, etc., and include instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to execute the methods described in the embodiments or some parts of the embodiments of the present specification.
The description is operational with numerous general purpose or special purpose computing system environments or configurations. For example: personal computers, server computers, hand-held or portable devices, tablet-type devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
This description may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The specification may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
While the specification has been described with examples, those skilled in the art will appreciate that there are numerous variations and permutations of the specification that do not depart from the spirit of the specification, and it is intended that the appended claims include such variations and modifications that do not depart from the spirit of the specification.