This application claim priority from Chinese Patent Application Number CN201610134634.5, filed on Mar. 9, 2016 at the State Intellectual Property Office, China, titled “DATA MOVEMENT AMONG DISTRIBUTED DATA CENTERS” the contents of which is herein incorporated by reference in its entirety.
Embodiments of the present disclosure generally relate to data movement, and more specifically relate to a method and apparatus for data movement among distributed data centers.
The concepts of cloud computing and a third platform have been rapidly accepted worldwide. Many enterprises have migrated their infrastructure or services to third platforms. These services are supported by large data centers, while such data centers are always geographically distributed. Therefore, an efficient and reliable data movement mechanism between these geographically distributed data centers is essential for providing high data mobility and availability, as well as a predictable data service level. Data movement between geographically distributed data centers faces the following challenges: firstly, the data amount to be distributed can be tremendous; secondly, network connection between these data centers can have a limited bandwidth and is unstable; thirdly, the data to be distributed possibly have various types, e.g., a file, a data block, and/or an object, etc.
However, conventional solutions cannot solve these problems well. First, data distribution tools of many conventional data centers require a 1:1:1 mapping topology when moving data among a plurality of data centers. If the number of data centers is more than 5, the topology configuration will become very complex. However, data centers on third platforms require a flexible data movement mechanism, where the topology of the network connection between data centers is adaptive, such that the data center can dynamically join or leave the network, with no requirement for complex pre-configuration or cumbersome runtime coordination. Secondly, the conventional data movement solutions can only work for data centers whose in-between distances are at Metro or National Levels. Due to unstable and low-bandwidth network connections, the conventional data movement solutions cannot be utilized for reliable and efficient data movement at the global level. Thirdly, the conventional data movement and synchronization tools for data centers usually can only support block-based storage. The data synchronization tools for upper applications built on data centers are usually file-based. However, there are usually three types of data storage: file-based, block-based, and object-based. The conventional solutions lack a function and mechanism of moving data between different types of storage devices. Fourthly, the conventional technical solutions usually do not support a plurality of servers across different data centers to collaborate on extremely large-scale data computing.
Therefore, a more efficient and reliable data movement solution is needed in the art to solve the problems above.
Objectives of embodiments of the present disclosure intend to provide a method and apparatus for data movement among distributed data centers so as to solve the problems above.
According to a first aspect of the present disclosure, there is provided a method for data movement among distributed data centers in a peer network, comprising: reducing an amount of data to be moved by pre-processing the data; generating a torrent file for the data; distributing the torrent file to a peer data center, and in response to receiving a data request from the peer data center, transmitting a segment of the data to the peer data center.
In some embodiments, the pre-processing the data comprises: de-duplicating and compressing the data.
In some embodiments, the generating a torrent file for the data comprises: segmenting the data into a plurality of segments of an equal length, the segment being included in the plurality of segments; determining a hash value for the segment; and writing an index and the hash value for the segment into the torrent file.
In some embodiments, the torrent file includes configuration information related to the data, and the generating a torrent file for the data comprises: generating the configuration information related to the data; and writing the configuration information into the torrent file.
In some embodiments, the generating the configuration information related to the data comprises: determining one or more candidates for the configuration information; determining a cost for each of the one or more candidates; and selecting, from the one or more candidates, a candidate with the lowest cost as the configuration information related to the data.
In some embodiments, the distributing the torrent file to a peer data center comprises: distributing the torrent file to the peer data center via a torrent server with a reliable network protocol.
In some embodiments, the data includes a file, and the transmitting a segment of the data to the peer data center comprises: segmenting the file into a plurality of segments of an equal length, the segment being included in the plurality of segments; and transmitting the segment of the file to the peer data center.
In some embodiments, the data includes a data block, and the transmitting a segment of the data to the peer data center comprises: transmitting the data block to the peer data center.
In some embodiments, the data includes an object, and the transmitting a segment of the data to the peer data center comprises: transmitting the object to the peer data center.
According to a second aspect of the present disclosure, there is provided a method for data movement among distributed data centers in a peer network, comprising: receiving a torrent file from a source data center; transmitting a first data request for a segment of data associated with the torrent file to a first peer data center connected to the source data center, receiving the segment of the data from the first peer data center; and in response to receiving a plurality of segments of the data, combining the plurality of segments into the data, the segment being included in the plurality of segments.
In some embodiments, the receiving a torrent file from a source data center comprises: receiving the torrent file from the source data center via a torrent server with a reliable network protocol.
In some embodiments, the first peer data center includes the source data center.
In some embodiments, the torrent file includes configuration information related to the data, and the transmitting a first data request comprises: transmitting the first data request for the data to the first peer data center based on the configuration information.
In some embodiments, the receiving the segment of the data from the first peer data center comprises: in response to receiving the segment of the data, determining a first hash value of the segment; comparing a first hash value with a second hash value corresponding to the segment, the second hash value being included in the torrent file; saving the segment in response to the first hash value being equal to the second hash value; and transmitting a second data request for the segment to a second peer data center in response to the first hash value being unequal to the second hash value.
In some embodiments, the data includes a file, and the receiving the segment of the data from the first peer data center comprises: receiving the segment of the file from the first peer data center.
In some embodiments, the combining the plurality of segments into the data comprises: in response to receiving a plurality of segments of the file, obtaining the file by sequentially concatenating the plurality of segments of the file.
In some embodiments, the data includes a first data block, and the receiving the segment of the data from the first peer data center comprises: receiving the first data block from the first peer data center.
In some embodiments, the combining the plurality of segments into the data comprises: in response to receiving the first data block, writing content of the first data block back into a second data block corresponding to the first data block.
In some embodiments, the data includes an object, and the receiving the segment of the data from the first peer data center comprises: receiving the object from the first peer data center.
In some embodiments, the method further comprises: in response to disconnection from the first peer data center, establishing a connection with a third peer data center so as to transmit a third data request for the data to the third peer data center.
In some embodiments, the method further comprises: in response to a fourth data request from a fourth peer data center, transmitting the segment of the data to the fourth peer data center.
According to a third aspect of the present disclosure, there is provided an apparatus for data movement among distributed data centers in a peer network, comprising: a pre-processing module configured to reduce an amount of data to be moved by pre-processing the data; a torrent file generating module configured to generate a torrent file for the data; a torrent file distributing module configured to distribute the torrent file to a peer data center; and a first data transmitting module configured to, in response to receiving a data request from the peer data center, transmit a segment of the data to the peer data center.
In some embodiments, the pre-processing module is further configured to: de-duplicate and compress the data.
In some embodiments, the torrent file generating module is further configured to: segment the data into a plurality of segments of an equal length, the segment being included in the plurality of segments; determine a hash value for the segment; and write an index and the hash value for the segment into the torrent file.
In some embodiments, the torrent file includes configuration information related to the data, and the torrent file generating module is further configured to: generate the configuration information related to the data; and write the configuration information into the torrent file.
In some embodiments, the generating the configuration information related to the data comprises: determining one or more candidates for the configuration information; determining a cost for each of the one or more candidates; and selecting, from the one or more candidates, a candidate with the lowest cost as the configuration information related to the data.
In some embodiments, the torrent file distributing module is further configured to: distribute the torrent file to the peer data center via a torrent server with a reliable network protocol.
In some embodiments, the data includes a file, and the first data transmitting module is further configured to: segment the file into a plurality of segments of an equal length, the segment being included in the plurality of segments; and transmit the segment of the file to the peer data center.
In some embodiments, the data includes a data block, and the first data transmitting module is further configured to: transmit the data block to the peer data center.
In some embodiments, the data includes an object, and the first data transmitting module is further configured to: transmit the object to the peer data center.
According to a fourth aspect of the present disclosure, there is provided an apparatus for data movement among distributed data centers in a peer network, comprising: a torrent file receiving module configured to receive a torrent file from a source data center, a request transmitting module configured to transmit a first data request for a segment of data associated with the torrent file to a first peer data center connected to the source data center; a data receiving module configured to receive the segment of the data from the first peer data center, and a data combining module configured to, in response to receiving a plurality of segments of the data, combine the plurality of segments into the data, the segment being included in the plurality of segments.
In some embodiments, the data receiving module is further configured to: receive the torrent file from the source data center via a torrent server with a reliable network protocol.
In some embodiments, the first peer data center includes the source data center.
In some embodiments, the torrent file includes configuration information related to the data, and the request transmitting module is further configured to: transmit the first data request for the data to the first peer data center based on the configuration information.
In some embodiments, the data receiving module is further configured to: in response to receiving the segment of the data, determine a first hash value of the segment; compare a first hash value with a second hash value corresponding to the segment, the second hash value being included in the torrent file; save the segment in response to the first hash value being equal to the second hash value; and transmit a second data request for the segment to a second peer data center in response to the first hash value being unequal to the second hash value.
In some embodiments, the data includes a file, and the data receiving module is further configured to: receive the segment of the file from the first peer data center.
In some embodiments, the data combining module is further configured to: in response to receiving a plurality of segments of the file, obtain the file by sequentially concatenating the plurality of segments of the file.
In some embodiments, the data includes a first data block, and the data receiving module is further configured to: receive the data block from the first peer data center.
In some embodiments, the data combining module is further configured to: in response to receiving the first data block, write content of the first data block back into a second data block corresponding to the first data block.
In some embodiments, the data includes an object, and the data receiving module is further configured to: receive the object from the first peer data center.
In some embodiments, the apparatus further comprises: a network connection module configured to, in response to disconnection from the first peer data center, establish a connection with a third peer data center so as to transmit a third data request for the data to the third peer data center.
In some embodiments, the apparatus further comprises: a second data transmitting module configured to, in response to a fourth data request from a fourth peer data center, transmit the segment of the data to the fourth peer data center.
According to a fifth aspect of the present disclosure, there is provided a computer program product for data processing, the computer program product being tangibly stored on a non-transient computer readable medium and comprising machine-executable instructions, the machine-executable instructions, when being executed, causing a machine to execute any method step in the methods.
Compared with the prior art, the embodiments of the present disclosure can realize reliable and fast data movement among distributed data centers over an unreliable and low-bandwidth network, can support an adaptive network topology among distributed data centers without complex pre-configuration or cumbersome runtime coordination, can support different types of data storage, and facilitates coordinated cloud computing and data aggregation among distributed data centers.
The above and other objectives, features and advantages of the embodiments of the present disclosure will become easily understood by reading the detailed depiction below with reference to the accompanying drawings. Several embodiments of the present disclosure are illustrated in an exemplary, but not limitative, manner in the drawings, in which:
Throughout the drawings, the same or corresponding reference numerals represent the same or corresponding parts.
Hereinafter, various exemplary embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. It should be noted that these drawings and depictions only serve as exemplary embodiments. It should be pointed out that alternative embodiments of the structures and methods disclosed here are easily envisaged according to the subsequent description and may be used without departing from the principle as sought to be protected by the present disclosure.
It should be understood that these exemplary embodiments are provided only to enable those skilled in the art to better understand and then further implement the present disclosure, not for limiting the scope of the present disclosure in any manner.
The terms “comprise,” “include” and similar terms used here should be understood as open terms, i.e., “comprising/including, but not limited to.” The term “based on” refers to “at least partially based on.” The term “one embodiment” indicates “at least one embodiment”; the term “another embodiment” indicates “at least one further embodiments.” Relevant definitions of other terms will be provided in the description below.
Hereinafter, a technical solution of determining a physical position of a device according to the embodiments of the present disclosure will be described in detail with reference to the accompanying drawings.
As mentioned above, in order to implement reliable and fast data movement among distributed data centers, embodiments of the present disclosure provide a scheme of peer-to-peer (P2P) data movement. This scheme may be used to build a global virtual data center so as to share and reposition data transparently in a worldwide scope.
At S201, pre-processing is performed on data to be moved so as to reduce an amount of the data. In some embodiments of the present disclosure, for example, the data center 1101 (e.g., its P2P proxy 1301) may perform de-duplication and compression to the data to be move so as to reduce the amount of the data to be moved.
The method 200 proceeds to S202. At S202, a torrent file is generated for the data. In some embodiments of the present disclosure, the torrent file for the data may be generated by the data center 1101 (e.g., its P2P proxy 1301). For example, a process of generating a seed file may comprise: segmenting the data into a plurality of segments of an equal length; determining a hash value for each of the plurality of segments; and writing an index and a hash value of the segment into the torrent file.
In some embodiments, the torrent file may also comprise configuration information associated with the data to be moved. The configuration information may include information associated with data placement and relocation, such as how to place the data to be moved into a plurality of remote data centers so as to achieve an optimal performance (e.g., high availability (HA) and a Service Level Agreement (SLA), etc.). In some embodiments of the present disclosure, for example, the configuration information associated with the data may be generated by the data center 1101 (e.g., its P2P proxy 1301) which may also write the configuration information into the torrent file. Additionally or alternatively, the configuration information associated with the data to be moved may be generated in a cost-based manner. For example,
Return to
The method 200 proceeds to step S204. At S204, in response to receiving the data request from the peer data center, the segment of the data is transmitted to the peer data center.
In some embodiments of the present disclosure, the data to be moved may comprise at least three types: file-based data, data block-based data, and object-based data. When the data to be moved is a file, the file may be segmented into a plurality of segments of equal length and each of the segments is regarded as a basic unit for data transmission. When the data to be moved is a data block, each data block may be regarded as a basic unit for data transmission. When the data to be moved is an object, each object may be regarded as a basic unit for data transmission, or for example, for a larger object, the object may be segmented into a plurality of segments of equal length and each of the segments of the object may be regarded as a basic unit for data transmission. In this way, the embodiments of the present disclosure can support data storage of different types.
As mentioned above, the data center 1101 may distribute a torrent file (S203 of
The method 400 proceeds to step S402. At S402, based on the torrent file, a data request for a segment of data associated with the torrent file is transmitted to a peer data center that have established a connection with the source data center. For example, the data center 1102 (e.g., its P2P proxy 1302) may transmit a data request to the data centers 1101, 1105 (e.g., their corresponding P2P proxies 1301, 1304) which have established connections with the data center 1102, so as to obtain one or more segments of the data associated with the torrent file. In some embodiments of the present disclosure, the torrent file may include configuration information associated with data to be moved, where the configuration information may include information associated with data placement and relocation, such as how to place the data to be moved into a plurality of remote data centers to achieve an optimal performance (e.g., a high availability (HA) and a Service Level Protocol (SLA), etc.). When the data center 1102 obtains the torrent file, the data center 1102 may obtain the configuration information (for example, including a placement scheme of the data) associated with the data to be moved from the torrent file, such that a data request for corresponding data may be transmitted based on the configuration information. For example, if the configuration information indicates that the data should be placed into one or more data centers including the data center 1102, the data center 1102 may transmit a data request for the corresponding data; while if the configuration information does not indicate that the data should be placed in the data center 1102, the data center 1102 may not transmit the data request for the corresponding data.
The method 400 proceeds to S403. At S403, the segment of the data is received from the peer data center. For example, in response to the configuration information included in the torrent file indicating that the data should be placed in the data center 1102 (e.g., its P2P proxy 1302), a data request may be transmitted to data centers 1101, 1104 and so on (e.g., their corresponding P2P proxies 1301, 1304, etc.) that have established connections with the data center 1102, and one or more segments of the data are received from the data centers 1101, 1104 and so on. In some embodiments of the present disclosure, the data center 1102 may verify the received one or more segments according to the torrent file. For example, step S403 may also comprise: in response to receiving the segment of the data, determining a first hash value of the segment; comparing the first hash value with a second hash value corresponding to the segment, the second hash value being included in the torrent file; in response to the first hash value being equal to the second hash value, saving the segment; in response to the first hash value being unequal to the second hash value, transmitting a data request to one or more peer data centers to re-obtain the segment.
Additionally, according to the principle of P2P network, besides receiving one or more segments of the data from one or more peer data centers, in response to a data request from a further peer data center (e.g., data center 1103), the data center 1102 may also transmit the one or more segments of the data to the further peer data center.
The method 400 proceeds to step S404. At S404, in response to receiving a plurality of segments of the data, the plurality of segments are combined into the data. For example, after the P2P proxy 1302 of the data center 1102 receives all of the segments of the data, the P2P proxy 1302 may re-combine all of the segments of the data into the original data according to the torrent file.
In some embodiments of the present disclosure, the data received by the data center may include at least three types: file-based data, data block-based data, and object-based data. When the received data is file-based data, the file may have been segmented into a plurality of segments of an equal length in the source data center and each of the segments is regarded as a basic unit for data transmission. Therefore, in response to receiving all of the segments of the file, all of the segments may be sequentially concatenated to obtain the original file. When the received data is a data block, the data block may be regarded as a basic unit for data transmission. Therefore, in response to receiving the data block, content of the data block may be written back to a corresponding data block. When the received data is object-based data, for example, for a larger object, the object may have been segmented into a plurality of segments of equal length by the source data center and each of the segments of the object may be regarded as a basic unit for data transmission. Therefore, in response to receiving all of the segments of the object, all of the segments may be re-combined into the original object. In this way, embodiments of the present disclosure can support data storage of different types.
Because network connections between different data centers might be intermittent or unstable, the connection between two data centers might be lost at any time. For example, as shown in
In a practical scenario, the data to be moved might be modified during the movement process. The embodiments of the present disclosure can provide a solution for the data being modified during the movement process.
In practical scenarios, the embodiments of the present disclosure may also implement coordinated cloud computation among distributed data centers.
In addition, the embodiments of the present disclosure may also be applied to a scenario of data aggregation. For example, a plurality of small satellite data centers may exist at different positions to serve different users, respectively. Additionally, there may also exist a central data center that holds all of the complete data. The satellite data centers may periodically transmit data to the central data center with the P2P data movement mechanism according to embodiments of the present disclosure, for analysis and/or archiving. Therefore, the data aggregation among distributed data centers can be implemented with the embodiments of the present disclosure.
In some embodiments, the pre-processing module 701 may be further configured to de-duplicate and compress the data.
In some embodiments, the torrent file generating module 702 may be further configured to: segment the data into a plurality of segments of an equal length, the segment being included in the plurality of segments; determine a hash value for the segment; and write an index and the hash value for the segment into the torrent file.
In some embodiments, the torrent file may include configuration information related to the data, and the torrent file generating module 702 is further configured to: generate the configuration information related to the data; and write the configuration information into the torrent file. Specifically, the generating the configuration information related to the data may comprise: determining one or more candidates for the configuration information; determining a cost for each of the one or more candidates; and selecting, from the one or more candidates, a candidate with the lowest cost as the configuration information related to the data.
In some embodiments, the torrent file distributing module 703 may be further configured to: distribute the torrent file to the peer data center via a torrent server with a reliable network protocol.
In some embodiments, the data may include a file, and the first data transmitting module 704 may be further configured to: segment the file into a plurality of segments of an equal length, the segment being included in the plurality of segments; and transmit the segment of the file to the peer data center.
In some embodiments, the data may include a data block, and the first data transmitting module 704 may be further configured to: transmit the data block to the peer data center.
In some embodiments, the data may comprise an object, and wherein the first data transmitting module 704 may be further configured to: transmit the object to the peer data center.
For the sake of clarity,
In some embodiments, the data receiving module 803 may be further configured to: receive the torrent file from the source data center via a torrent server with a reliable network protocol.
In some embodiments, the first peer data center includes the source data center.
In some embodiments, the torrent file may include configuration information related to the data, and the request transmitting module 803 may be further configured to: transmit the first data request for the data to the first peer data center based on the configuration information.
In some embodiments, the data receiving module 803 may be further configured to: in response to receiving the segment of the data, determine a first hash value of the segment; compare a first hash value with a second hash value corresponding to the segment, the second hash value being included in the torrent file; save the segment in response to the first hash value being equal to the second hash value; and transmit a second data request for the segment to a second peer data center in response to the first hash value being unequal to the second hash value.
In some embodiments, the data may include a file, and the data receiving module 803 may be further configured to: receive the segment of the file from the first peer data center. The data combining module 804 may be further configured to: in response to receiving a plurality of segments of the file, obtain the file by sequentially concatenating the plurality of segments of the file.
In some embodiments, the data may include a data block, and the data receiving module 803 may be further configured to: receive the data block from the first peer data center. The data combining module 804 may be further configured to: in response to receiving the first data block, write content of the first data block back into a second data block corresponding to the first data block.
In some embodiments, the data may include an object, and the data receiving module 803 may be further configured to: receive the object from the first peer data center.
In some embodiments, the apparatus 800 may further comprise: a network connection module configured to, in response to disconnection from the first peer data center, establish a connection with a third peer data center so as to transmit a third data request for the data to the third peer data center.
In some embodiments, the apparatus 800 may also comprise: a second data transmitting module configured to, in response to a fourth data request from a fourth peer data center, transmit the segment of the data to the fourth peer data center.
For the sake of clarity,
Hereinafter refer to
The following components in the device 900 are connected to the I/O interface 905: an input 906 such as a keyboard, a mouse and the like; an output unit 907 including various kinds of displays and a loudspeaker, etc.; a memory unit 908 including a magnetic disk, an optical disk, and etc.; a communication unit 909 including a network card, a modem, and a wireless communication transceiver, etc. The communication unit 909 allows the device 900 to exchange information/data with other devices through a computer network such as the Internet and/or various kinds of telecommunications networks.
Various processes and processing described above, e.g., at least one of method 200, method 300, and method 400, may be executed by the processing unit 901. For example, in some embodiments, at least one of the method 200, method 300, and method 400 may be implemented as a computer software program that is tangibly embodied on a machine readable medium, e.g., the storage unit 908. In some embodiments, part or all of the computer programs may be loaded and/or mounted onto the device 900 via ROM 902 and/or communication unit 909. When the computer program is loaded to the RAM 903 and executed by the CPU 901, one or more steps of the at least one of the method 200, method 300, and method 400 as described above may be executed.
In view of the above, embodiments of the present disclosure provide a method and apparatus for data movement among distributed data centers. Compared with the prior art, the embodiments of the present disclosure can realize reliable and fast data movement among distributed data centers over an unreliable and low-bandwidth network, can support an adaptive network topology among distributed data centers without complex pre-configuration or cumbersome runtime coordination, can support different types of data storage, and facilitates coordinated cloud computing and data aggregation among distributed data centers.
Generally, various exemplary embodiments of the present disclosure may be implemented in hardware or specific circuits, software, logic, or any combination thereof. Some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software that may be executed by a controller, a microprocessor or other computing device. When various aspects of the embodiments of the present disclosure are illustrated or described as block diagrams, flowcharts or represented by some other diagrams, it should be understood that the blocks, apparatuses, systems, technologies or methods described here may be implemented as non-limitative examples on hardware, software, firmware, specific circuit or logic, general hardware or controller or other computing device or some combinations thereof.
Moreover, various blocks in the flowcharts may be regarded as method steps, and/or operations generated by execution of the computer program codes, and/or understood as a plurality of coupled logic circuit elements executing relevant functions. For example, the embodiments of the present disclosure include a computer program product that includes a computer program tangibly embodied on the machine readable medium, the computer program including program codes configured to execute the methods described above.
In the context of the present disclosure, the machine-readable medium may be any tangible medium including or storing programs for or related to an instruction executing system, apparatus, or device. The machine readable medium may be a computer readable signal medium or a machine readable storage medium. The machine readable medium may include, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared or semiconductor system, apparatus or device, or any appropriate combination thereof. More detailed examples of the machine readable storage medium comprise an electric connection with one or more wires, a portable computer magnetic disk, s hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical storage device, a magnetic storage device, or any appropriate combination thereof.
The computer program codes for implementing the methods of the present disclosure may be compiled using one or more programming languages. These computer program codes may be provided to a processor of a general computer, a specific computer, or other programmable data processing device, such that the program codes, when being executed by the computer or other programmable data processing devices, cause the functions/operations prescribed in the flowcharts and/or block diagrams to be executed. The program codes may be executed completely on the computer, partially on the computer, as an independent software package, partially on the computer while partially on the remote computer, or completely on a remote computer or server.
In addition, although the operations are depicted in a specific sequence, it should not be understood to require such operations to be performed in the specific sequence as shown or in a successive order, or all of the shown operations to be executed, so as to obtain a desired result. In some circumstances, multi-task or parallel processing will be beneficial. Likewise, although the discussion above includes some specific implementation details, it should not be construed as limiting the scope of any invention or claims, but should be construed as a depiction of a specific embodiment of the specific invention. Some features described in contexts of separate embodiments in the present specification may also be integrally implemented in a single embodiment. On the contrary, various features described in the context of a single embodiment may also be separately implemented in a plurality of embodiments in any appropriate sub-combination of embodiments.
Various modifications and changes to the exemplary embodiments of the present disclosure as described above will become apparent to those skilled in the art in a relevant technical field when viewing the above depictions in conjunction with the accompanying drawings. Any and all modifications still fall within the scope of exemplary embodiments that are non-limitative. In addition, the above description and drawings have heuristic benefits, and those skilled in the art associated with these embodiments of the present disclosure will envisage other embodiments of the present disclosure explained here.
It will be understood that embodiments of the present disclosure are not limited to the specific embodiments as disclosed here, and modifications as well as other embodiments should be all included within the scope of the appended claims. Although specific terms are used here, they are only used in general and descriptive senses, not for limiting intentions.
Number | Date | Country | Kind |
---|---|---|---|
CN201610134634.5 | Mar 2016 | CN | national |