Distributed software system and data transmission method

By employing serialization of data sending nodes and deserialization of data receiving nodes in distributed software systems, combined with localized data dictionaries and publish-subscribe/request-response mechanisms, the maintenance challenges caused by data modification or the access of new nodes in distributed software systems are solved, thereby improving system performance and compatibility.

CN121940445APending Publication Date: 2026-04-28BEIJING KESIRONG NEW TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
BEIJING KESIRONG NEW TECHNOLOGY CO LTD
Filing Date
2025-12-01
Publication Date
2026-04-28

AI Technical Summary

Technical Problem

Existing distributed software systems require global synchronization of code and configuration when data is modified or new nodes are added, which leads to high maintenance difficulty and cost, and affects system performance.

Method used

The target data is serialized by the data sending node to generate a byte array, and then transmitted to the data receiving node for deserialization through the data distribution service. This avoids relying on the encoding and decoding of the data distribution service and uses a local proprietary data dictionary and publish-subscribe or request-response mechanism to determine the data transmission strategy.

Benefits of technology

It reduces the difficulty and cost of system maintenance, improves the performance and compatibility of distributed software systems, and enables efficient, real-time, and flexible combination of data transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121940445A_ABST
    Figure CN121940445A_ABST
Patent Text Reader

Abstract

The invention provides a distributed software system and a data transmission method, and relates to the field of distributed technologies. The distributed software system comprises a plurality of application nodes, the application nodes are matched to achieve the service function of a target application, the application nodes comprise a data sending node and a data receiving node, and the data sending node is used for responding to the detected target data to be transmitted between the data sending node and the data receiving node and sending the target data to the data receiving node. Serializing the target data to obtain a byte array corresponding to the target data, and sending the byte array to the data receiving node based on the data distribution service; and the data receiving node is used for receiving the byte array and performing deserialization processing on the byte array to obtain target data. The distributed software system has good compatibility to the application nodes, the maintenance difficulty and the maintenance cost are reduced, and the overall performance of the system is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of distributed technology, and in particular to a distributed software system and a data transmission method. Background Technology

[0002] In recent years, with the continuous development of technology across various industries, the scale and complexity of application software have been constantly expanding. This has led to lengthy implementation processes, cumbersome configuration modifications and version management, and difficulties in joint debugging and testing during actual software engineering projects. However, with the development of network technology and cloud computing, distributed deployment of application systems has become an effective way to solve these problems. High-performance distributed deployment application systems are built based on modularity and microservices, featuring high cohesion and low coupling. They contain multiple application nodes, which can be software module processes, microservices, or host application software. Distributed software system development is a better solution for developing large-scale application software, and it also enables heterogeneous integration of different hardware and software platforms through business data interaction.

[0003] After distributing application software, the networking between different application nodes and the inter-node data transfer are crucial to the performance of the distributed software system. Current mainstream distributed software systems are generally based on switching networks, using a Data Distribution Service (DDS) to encode and transmit data, enabling inter-node data transfer. The data layer uses Interface Definition Language (IDL) files to generate code to describe the data, and then uses the code generation tools provided by DDS to convert the IDL files into data processing interface code, which is then incorporated into the application software of the distributed software system.

[0004] However, this approach requires global code and configuration synchronization when data is modified due to upgrades or when a new application node with new data structure information is connected at any end of the distributed software system. This makes the distributed software system difficult and costly to maintain, thus affecting the overall performance of the system. Summary of the Invention

[0005] This application provides a distributed software system and a data transmission method to improve the performance of the distributed software system.

[0006] In a first aspect, embodiments of this application provide a distributed software system, including multiple application nodes, which cooperate to implement the business functions of a target application. The multiple nodes include data sending nodes and data receiving nodes, wherein:

[0007] The data sending node is used to respond to the detection of target data to be transmitted between the data receiving node and the data sending node, to serialize the target data to obtain the byte array corresponding to the target data, and to send the byte array to the data receiving node based on the data distribution service;

[0008] The data receiving node is used to receive byte arrays and deserialize them to obtain the target data.

[0009] In one possible implementation, the target data includes at least one data element, which includes a keyword, a data type, and a data value. The target data is serialized to obtain a byte array corresponding to the target data, including:

[0010] For each data element contained in the target data, a keyword sequence corresponding to the data element is generated based on the preset element start identifier and the keyword of the data element; a data type sequence corresponding to the data element is generated based on the data type of the data element and the sorting number of the data element in the target data; and a byte array corresponding to the data element is generated based on the keyword sequence, data type sequence, and data value of the data element.

[0011] The byte arrays corresponding to the data elements contained in the target data are concatenated in the sorted order to obtain the byte array corresponding to the target data.

[0012] In one possible implementation, a localized proprietary data dictionary is built in the application node, which is used to hierarchically cache the association between topics and elements.

[0013] The target data is obtained in the following way: The data sending node detects the first topic in the localized proprietary data dictionary based on the publish-subscribe mechanism, and obtains the target business data transmission policy corresponding to the first topic from the preset data transmission policy library. The data transmission policy library contains business data transmission policies that support multiple characteristics, including real-time performance and integrity. The target data is determined according to the target business data transmission policy.

[0014] The data receiving node receives the byte array, including: responding to start receiving the byte array, determining the first topic corresponding to the byte array based on the publish-subscribe mechanism; obtaining the target business data transmission strategy corresponding to the first topic from the data transmission strategy library, and continuing to receive the byte array by adopting the target business data transmission strategy.

[0015] In one possible implementation, a localized proprietary data dictionary is built in the application node, which is used to hierarchically cache the association between topics and elements.

[0016] The target data is obtained in the following way: Based on the request-response mechanism, the second topic in the request localized proprietary data dictionary is detected, and the target business data transmission strategy corresponding to the second topic is obtained from the preset data transmission strategy library. The data transmission strategy library contains business data transmission strategies that support multiple characteristics, including real-time performance and integrity. The target data is determined according to the target business data transmission strategy.

[0017] The data receiving node receives the byte array, including: responding to start receiving the byte array, determining the second topic corresponding to the byte array based on the request-response mechanism; obtaining the target business data transmission strategy corresponding to the second topic from the data transmission strategy library, and continuing to receive the byte array by adopting the target business data transmission strategy.

[0018] In one possible implementation, the topic types include message type and file type, wherein the business data transmission strategy corresponding to the message type topic supports real-time performance, and the business data transmission strategy corresponding to the file type topic supports integrity.

[0019] In one possible implementation, the correspondence between topics and data transmission policies, as well as the topics and their types, can all be configured according to the configuration information in the configuration file.

[0020] In one possible implementation, the data receiving node is also used for:

[0021] If the target service data transmission strategy supports integrity, during the process of receiving the byte array, it is determined whether the complete byte array has been received within the receiving timeout period corresponding to the target service data transmission strategy.

[0022] If a complete byte array is not received within the receive timeout period corresponding to the target service data transmission policy, the target data will be retransmitted.

[0023] Secondly, embodiments of this application provide a data transmission method applied to a data sending node in a distributed software system as described in the first aspect and / or various possible implementations of the first aspect. The distributed software system further includes a data receiving node corresponding to the data sending node. The data transmission method includes:

[0024] Upon detecting the presence of target data to be transmitted between the data receiving node, the target data is serialized to obtain the corresponding byte array.

[0025] The data distribution service sends a byte array to the data receiving node, which then performs deserialization on the byte array to obtain the target data.

[0026] In one possible implementation, the target data includes at least one data element, which includes a keyword, a data type, and a data value. The target data is serialized to obtain a byte array corresponding to the target data, including:

[0027] For each data element contained in the target data, a keyword sequence corresponding to the data element is generated based on the preset element start identifier and the keyword of the data element; a data type sequence corresponding to the data element is generated based on the data type of the data element and the sorting number of the data element in the target data; and a byte array corresponding to the data element is generated based on the keyword sequence, data type sequence, and data value of the data element.

[0028] The byte arrays corresponding to the data elements contained in the target data are concatenated in the sorted order to obtain the byte array corresponding to the target data.

[0029] Thirdly, embodiments of this application provide a data transmission method applied to a data receiving node in a distributed software system as described in the first aspect and / or various possible implementations of the first aspect. The distributed software system further includes a data sending node corresponding to the data receiving node. The data transmission method includes:

[0030] The receiving data sending node sends a byte array based on the data distribution service. The byte array is obtained by the data sending node in response to the detection of target data to be transmitted between it and the data receiving node, and by serializing the target data.

[0031] The byte array is deserialized to obtain the target data.

[0032] Fourthly, embodiments of this application provide a data transmission apparatus applied to a data sending node in a distributed software system as described in the first aspect and / or various possible implementations of the first aspect. The distributed software system further includes a data receiving node corresponding to the data sending node. The data transmission apparatus includes:

[0033] The serialization module is used to serialize the target data in response to the detection that there is target data to be transmitted between the data receiving node and the target data to obtain the byte array corresponding to the target data.

[0034] The sending module is used to send a byte array to the data receiving node based on the data distribution service. The data receiving node is used to deserialize the byte array to obtain the target data.

[0035] Fifthly, embodiments of this application provide a data transmission apparatus applied to a data receiving node in a distributed software system as described in the first aspect and / or various possible implementations of the first aspect. The distributed software system further includes a data sending node corresponding to the data receiving node. The data transmission apparatus includes:

[0036] The receiving module is used to receive a byte array sent by the data sending node based on the data distribution service. The byte array is obtained by the data sending node in response to the detection of target data to be transmitted between the data sending node and the data receiving node, and by serializing the target data.

[0037] The deserialization module is used to deserialize byte arrays to obtain the target data.

[0038] Sixthly, embodiments of this application provide a data transmission device, including: a memory and a processor;

[0039] The memory stores instructions that the computer executes;

[0040] The processor executes computer execution instructions stored in memory, causing the processor to perform the second aspect and / or various possible implementations of the second aspect as described above.

[0041] In a seventh aspect, embodiments of this application provide a data transmission device, including: a memory and a processor;

[0042] The memory stores instructions that the computer executes;

[0043] The processor executes computer execution instructions stored in memory, causing the processor to perform the third aspect and / or various possible implementations of the third aspect as described above.

[0044] Eighthly, embodiments of this application provide a computer-readable storage medium storing computer-executable instructions, which, when executed, are used to implement the second aspect and / or various possible implementations of the second aspect.

[0045] Ninthly, embodiments of this application provide a computer program product, including a computer program, which, when executed, implements the third aspect and / or various possible implementations of the third aspect.

[0046] The distributed software system and data transmission method provided in this application embodiment include multiple application nodes in the distributed software system. These application nodes cooperate to implement the business functions of the target application. Each node includes a data sending node and a data receiving node. The data sending node responds to the detection of target data to be transmitted between itself and the data receiving node, serializes the target data to obtain a byte array corresponding to the target data, and sends the byte array to the data receiving node based on a data distribution service. The data receiving node receives the byte array and deserializes it to obtain the target data. In the data transmission process provided in this application embodiment, the serialization of the target data no longer depends on the data distribution service. Instead, the data sending node serializes the target data, and the data receiving node performs the deserialization. The data distribution service is only used to forward the byte array of the target data. Therefore, when data is modified due to upgrades or a new application node with new data structure information is connected at any end of the system, the lack of configuration information for the relevant node in the data distribution service will not cause incompatibility issues, reducing maintenance difficulty and cost, and effectively improving the performance of the distributed software system. Attached Figure Description

[0047] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application.

[0048] Figure 1 Schematic diagram of the architecture of the distributed software system provided in the embodiments of this application Figure 1 ;

[0049] Figure 2 The architecture of the distributed software system provided in this application is illustrated in the embodiments. Figure 2 ;

[0050] Figure 3 Schematic diagram of the architecture of the distributed software system provided in the embodiments of this application Figure 3 ;

[0051] Figure 4 This is a schematic diagram illustrating the relationship between application nodes and data elements provided in an embodiment of this application;

[0052] Figure 5 Flowchart of the data transmission method provided in the embodiments of this application Figure 1 ;

[0053] Figure 6 Flowchart of the data transmission method provided in the embodiments of this application Figure 2 ;

[0054] Figure 7Schematic diagram of the structure of the data transmission device provided in the embodiments of this application Figure 1 ;

[0055] Figure 8 Schematic diagram of the data transmission device structure provided in the embodiments of this application Figure 2 ;

[0056] Figure 9 A schematic diagram of the structure of the data transmission device provided in the embodiments of this application.

[0057] The accompanying drawings illustrate specific embodiments of this application, which will be described in more detail below. These drawings and descriptions are not intended to limit the scope of the concept in any way, but rather to illustrate the concept of this application to those skilled in the art through reference to particular embodiments. Detailed Implementation

[0058] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.

[0059] In distributed software systems, the networking of application nodes and the exchange of business data are crucial to the system's performance. Current mainstream distributed software systems are generally based on switching networks, employing methods such as Hypertext Transfer Protocol (HTTP), Remote Procedure Call (RPC), User Datagram Protocol (UDP), WebSocket, DDS, or centralized address services and message queues for distributed business data exchange. The data layer uses Extensible Markup Language (XML), JavaScript Object Notation (JSON), or IDL files to generate code for data description. However, the above methods have the following problems:

[0060] (1) HTTP, RPC, UDP and WebSocket require the specific address and port of the peer during the networking process of application nodes. The initial configuration content is extensive, and as the system nodes change, a lot of detailed configuration work is required when adding or removing nodes in the cluster. This makes it difficult to flexibly expand and modify the system running nodes, which brings difficulties to system maintenance. In addition, UDP is an unreliable transmission.

[0061] (2) While centralized address services and message queues do not require attention to addresses and only focus on message names, the configuration of cluster nodes is handled by a single service, resulting in high complexity and requiring engineers and maintenance personnel to have a high level of understanding of the entire system. Furthermore, while shared memory transmission can improve data throughput and real-time performance when multiple nodes share the same host, achieving adaptive recognition of shared memory and network transmission requires introducing a centralized shared memory service on each host. This increases the complexity of the distributed software system to some extent, and such a distributed software system architecture is not suitable for implementation on micro-projects with only a few application nodes.

[0062] (3) The XML or JSON statements used in the above methods are descriptive languages. Although they can achieve dynamic data conversion, such as the conversion between numbers and characters, there will be communication delays due to frequent conversions when processing application data with high throughput. This also leads to an increase in the time for business data interaction.

[0063] (4) The DDS data interaction method generally uses IDL files to describe business data and utilizes the code generation tool provided by DDS to convert the IDL files into data processing interface code and compile it into the software of the distributed software system. Although this method achieves decentralized dynamic networking, the processing of business data structures depends entirely on the IDL files, and the matching of topics between the publishing end and the subscription end depends on the data types described by the IDL. If any data modification occurs at any end of the distributed software system due to upgrades or the access of a new node with new data structure information, other related nodes need to import the corresponding IDL files and generate code. At the same time, some application layer data reading interfaces need to be modified. For C / C++ languages, recompilation and deployment are also required.

[0064] In summary, high-performance distributed software systems place high demands on dynamic node networking and expansion, data exchange, synchronization, and dynamic customization. In practical implementation, issues such as high-traffic business data congestion, node software iteration upgrades, large system scale, and dynamic node expansion within the system can all degrade overall system performance or even prevent normal operation. These problems become bottlenecks in the development of distributed software systems, negating the inherent advantages of distributed systems. Furthermore, when data modifications occur at any end of a distributed software system due to upgrades or the access of new application nodes with new data structures, significant configuration work is required. Otherwise, application node compatibility cannot be achieved, and the maintenance of the distributed software system becomes difficult and costly, ultimately impacting overall system performance.

[0065] This application uses a data distribution service with decentralized attributes for data interaction between application nodes, reducing the computational complexity of business node networking. At the same time, to solve the problem of the data distribution service's dependence on IDL files, a method combining the transport layer relying on the data distribution service and the application layer relying on dynamic encoding and decoding is adopted to achieve efficient, real-time, and flexible combination of multi-node business data sharing, synchronization, and fast data retrieval in the switching network. It also has high compatibility with the upgrading, modification, and addition of application nodes in the system.

[0066] The technical solution of this application and how the technical solution of this application solves the above-mentioned technical problems are described in detail below with specific embodiments. These specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments. The embodiments of this application will now be described with reference to the accompanying drawings.

[0067] Figure 1 Schematic diagram of the architecture of the distributed software system provided in the embodiments of this application Figure 1 .like Figure 1 As shown, this application embodiment provides a distributed software system 10, including multiple application nodes. These application nodes cooperate to implement the business functions of a target application. The multiple application nodes include a data sending node 101 and a data receiving node 102, wherein:

[0068] The data sending node 101 is used to respond to the detection that there is target data to be transmitted between the data receiving node 102 and the data receiving node 102, to serialize the target data to obtain the byte array corresponding to the target data, and to send the byte array to the data receiving node 102 based on the data distribution service.

[0069] Data receiving node 102 is used to receive byte arrays and deserialize the byte arrays to obtain the target data.

[0070] Specifically, in the data interaction scenario of the distributed software system 10, application nodes can be divided into data sending nodes 101 and data receiving nodes 102. Data sending node 101 is the data producer, and data receiving node 102 is the data consumer. When data sending node 101 detects that there is target data to be transmitted between itself and data receiving node 102, it performs serialization processing on the target data to obtain the corresponding byte array. Each application node establishes its own dedicated data dictionary to store application node-related data. Based on the specific functions of the distributed software system 10, application nodes are divided; for example, application nodes are computing nodes or edge sensing nodes.

[0071] Figure 2 The architecture of the distributed software system provided in this application is illustrated in the embodiments. Figure 2 In one implementation, such as Figure 2 As shown, the distributed software system 10 contains multiple application nodes (hereinafter referred to as nodes). The distributed software system 10 is a decentralized multi-business entity structure. Multiple application nodes can be distributed in the same host or in different hosts. When cross-host application node interaction is required, the application nodes perform data interaction through the host's data interaction interface and exchange network, based on the data distribution service.

[0072] Figure 3 Schematic diagram of the architecture of the distributed software system provided in the embodiments of this application Figure 3 In another implementation, such as Figure 3 As shown, the distributed software system 10 includes multiple application nodes (hereinafter referred to as nodes) and multiple data centers. Data centers are used to store and provide critical data, providing remote data support to other application nodes; they are data producers, meaning they can only act as data sending nodes 101. Application nodes are both data producers and data consumers; that is, they can act as both data sending nodes 101 and data receiving nodes 102. In this case, the distributed software system 10 has a distributed structure with multiple data centers and multiple business entities. Data centers can serve as data sending nodes 101 in this embodiment. Application nodes can achieve cross-host application node or data center data interaction through the host's data interaction interface and the switching network, via data distribution services.

[0073] For example, a unified encoding rule is preset in all application nodes or data centers of the distributed software system 10. When a target data to be transmitted is detected between the data receiving node 102 and the data sending node 101, the data sending node 101 uses the encoding rule to serialize the target data to obtain the byte array corresponding to the target data.

[0074] Correspondingly, after receiving the byte array, the data receiving node 102 performs deserialization processing on the byte array according to the decoding rules corresponding to the preset encoding rules to obtain the target data.

[0075] The transmission of byte arrays is implemented based on a data distribution service. The data distribution service is configured to transmit byte arrays, enabling the forwarding of byte arrays between data sending node 101 and data receiving node 102. The data distribution service is a middleware technology for real-time systems, its core function being to achieve efficient, reliable, and low-latency data transmission and sharing between application nodes in the distributed software system 10. Based on a "publish-subscribe" model, data sending node 101 does not need to know the specific location and number of data receiving nodes 102, and data receiving node 102 does not need to know the data source. It only needs to match data through a unified data topic to automatically receive real-time data that meets the requirements. Simultaneously, it supports flexible Quality of Service (QoS) configuration, allowing customization of parameters such as data transmission reliability, real-time performance, and bandwidth usage according to business scenarios, breaking down data silos and achieving efficient collaboration.

[0076] Meanwhile, an integrated encryption algorithm is supported between the data sending node 101, the data receiving node 102, and the data distribution service to improve the security of data transmission.

[0077] By introducing a data distribution service with decentralized attributes, the computational complexity of application node networking is reduced, and the loss of the entire communication history and bottleneck communication failures are prevented due to single points of failure. Simultaneously, to address the data distribution service's dependency on IDL files, a combined approach is adopted, where the transport layer relies on the data distribution service and the application layer relies on adaptive encoding / decoding. This enables efficient, real-time, and flexible data sharing, synchronization, and rapid data retrieval across multiple nodes in the switching network.

[0078] The distributed software system provided in this application embodiment serializes the target data during data interaction, generating a byte array corresponding to the target data. This array is then sent to the data receiving node using a data distribution service. The receiving node deserializes the byte array to obtain the target data, thus achieving data sharing. In this process, the system no longer relies on the data distribution service for encoding and decoding the target data, and there is no need for complex configuration of the data distribution structure based on the application node's data structure. Therefore, when data is modified due to upgrades or a new application node with new data structure information is connected at any end of the system, the lack of configuration information for the relevant node in the data distribution service will not cause incompatibility issues, effectively improving the performance of the distributed software system.

[0079] In one possible implementation, the target data includes at least one data element, which includes a keyword, a data type, and a data value. The target data is serialized to obtain a byte array corresponding to the target data, including:

[0080] For each data element contained in the target data, a keyword sequence corresponding to the data element is generated based on the preset element start identifier and the keyword of the data element; a data type sequence corresponding to the data element is generated based on the data type of the data element and the sorting number of the data element in the target data; and a byte array corresponding to the data element is generated based on the keyword sequence, data type sequence, and data value of the data element.

[0081] The byte arrays corresponding to the data elements contained in the target data are concatenated in the sorted order to obtain the byte array corresponding to the target data.

[0082] Figure 4 This is a schematic diagram illustrating the relationship between application nodes and data elements provided in an embodiment of this application. For example... Figure 4 As shown, business data in application nodes is stored in units of topics, with each topic containing at least one data element. Element data is represented in the format Key:Type:Value, with types including strings, string arrays, integers, integer arrays, floating-point numbers, and floating-point arrays. The set of data elements corresponding to a topic can be dynamically customized and divided without prior specification. When target data to be transmitted exists, a byte array corresponding to the target data is generated based on preset dynamic encoding rules and the target data's keyword, type, and data value. Depending on the data transmission direction, topics can also be subdivided into publish-type topics and subscribe-type topics.

[0083] For example, during serialization, the "Key," "Type," and "Value" of data elements are serialized step by step according to the order in the set of data elements in memory (i.e., the map container). Strings and arrays do not contain terminators. Data elements in the byte array are truncated using a preset start identifier; for example, truncated as "0x010203...0x010203." Data types can include bool, I64, I32, U64, U32, F64, F32, strings, and their corresponding arrays, etc. The data types are encoded to generate a data type sequence corresponding to the data type. In some implementations, the data type sequence may also include endianness information of the data elements and the sequence number of the data element within the data element data, etc.

[0084] A concrete example is the serialization of a data element with the key "xxxxxxxx", data type U32, and data value "123456789ABCD". The resulting byte array is represented in hexadecimal as: "010203xxxxxxxx010203" + "010500000001" + "123456789ABCD". Here, "010203xxxxxxxxxx010203" is the key sequence, "010500000001" is the data type sequence, specifically including endianness, data type, and data sequence number. 01 indicates little-endian, 05 indicates the data type is "U32", 00000001 indicates this data element is the first data element in the set, and "123456789ABCD" is the data value.

[0085] Based on the above serialization processing method, the dynamic encoding rules of each application node are standardized, preventing decoding failures and achieving fast and efficient encoding and decoding. It should be noted that this method supports application-layer element data types including bool, I64, I32, U64, U32, F64, F32, STR, boolArray, I64Array, I32Array, U64Array, U32Array, F64Array, F32Array, STRArray, and so on.

[0086] In one implementation, the target data to be transmitted can be a file. For file-type target data, the keyword is the filename, the data type is the file type, and the data value is the content contained in the file. The keyword, data type, and data value are serialized to obtain the byte array corresponding to the target data.

[0087] The distributed software system provided in this application embodiment uses a unified dynamic encoding rule for each application node to serialize the target data, achieving fast and efficient encoding and decoding. The data distribution service is used to transmit the serialized byte array. Therefore, the data distribution service no longer depends on the IDL file. Without updating the IDL file and code, nodes can freely add data interfaces with different data structures, improving the compatibility of the distributed software system.

[0088] In one possible implementation, a localized proprietary data dictionary is built in the application node, which is used to hierarchically cache the association between topics and elements.

[0089] The target data is obtained in the following way: The data sending node detects the first topic in the localized proprietary data dictionary based on the publish-subscribe mechanism, and obtains the target business data transmission policy corresponding to the first topic from the preset data transmission policy library. The data transmission policy library contains business data transmission policies that support multiple characteristics, including real-time performance and integrity. The target data is determined according to the target business data transmission policy.

[0090] The data receiving node receives the byte array, including: responding to start receiving the byte array, determining the first topic corresponding to the byte array based on the publish-subscribe mechanism; obtaining the target business data transmission strategy corresponding to the first topic from the data transmission strategy library, and continuing to receive the byte array by adopting the target business data transmission strategy.

[0091] Specifically, each application node creates a dynamic memory block locally to store data related to data interaction, forming a data dictionary. The data dictionary stores discrete data from publish-subscribe or request-response interactions by topic and element. This data is only relevant to the current application node's business and contains no other unrelated data. Data retrieval uses a two-level search method: first searching the topic, then searching the element, facilitating rapid data entry retrieval by the application using a red-black tree structure. Simultaneously, this data is kept synchronized with other nodes through continuous publish-subscribe or request-response interactions. Application-layer topics are mapped to transport-layer topics; that is, the same topic includes both transport-layer byte arrays and application-layer element data, with the application-layer element data constituting the data dictionary.

[0092] The publish-subscribe mechanism is a distributed communication model that uses a data distribution service as middleware to decouple publishers (data sending nodes) and subscribers (data receiving nodes). Publishers don't need to know which subscribers are involved; they simply send data to the middleware categorized by topic. Subscribers also don't need to know which publisher the data comes from; they simply subscribe to topics of interest. When the middleware receives data for a given topic, it automatically pushes the data to all subscribers on that topic. This mechanism supports flexible one-to-many and many-to-many communication, effectively reducing coupling between system components and improving scalability.

[0093] When a data sending node detects the first topic in the published localized proprietary data dictionary, it retrieves the target business data transmission policy corresponding to the first topic from the preset data transmission policy library. The data transmission policy library contains business data transmission policies supporting various characteristics, including real-time performance and completeness. For example, for business data with high real-time requirements that needs to be transmitted quickly and efficiently between application nodes, updated data can be identified as the target data. For business data with high completeness requirements, which needs to provide more comprehensive data content, historical data and updated data can be identified as the target data.

[0094] In one implementation, multiple features may include historical data requirements corresponding to the topic, and whether to transmit historical data can be set directly in the target business data transmission strategy corresponding to the topic.

[0095] In one implementation, transmission-related information such as transmission timeout duration can be determined based on the target service data transmission strategy.

[0096] When the data receiving node receives the byte array corresponding to the first topic, it selects the target business data transmission strategy corresponding to the first topic from the data transmission strategy library and adopts the target business data transmission strategy to continue receiving the byte array. This ensures that the data sending node and the data receiving node use the same business data transmission strategy for data interaction on the same topic, avoiding transmission errors caused by different business data transmission strategies between the data sending node and the data receiving node.

[0097] The distributed software system provided in this application embodiment constructs a localized proprietary data dictionary in the business nodes for hierarchical caching of the relationships between topics and elements. It decouples data sending nodes and data receiving nodes based on a publish-subscribe mechanism, effectively reducing the coupling between system components and improving scalability. During data interaction, data sending nodes and data receiving nodes use the same business data transmission strategy for data interaction on the same topic, avoiding transmission errors caused by differences in business data transmission strategies between data sending and receiving nodes, thus improving the performance of the distributed software system.

[0098] In one possible implementation, a localized proprietary data dictionary is built in the application node, which is used to hierarchically cache the association between topics and elements.

[0099] The target data is obtained in the following way: Based on the request-response mechanism, the second topic in the request localized proprietary data dictionary is detected, and the target business data transmission strategy corresponding to the second topic is obtained from the preset data transmission strategy library. The data transmission strategy library contains business data transmission strategies that support multiple characteristics, including real-time performance and integrity. The target data is determined according to the target business data transmission strategy.

[0100] The data receiving node receives the byte array, including: responding to start receiving the byte array, determining the second topic corresponding to the byte array based on the request-response mechanism; obtaining the target business data transmission strategy corresponding to the second topic from the data transmission strategy library, and continuing to receive the byte array by adopting the target business data transmission strategy.

[0101] The request-response mechanism is a bidirectional communication model, the core of which is the interaction logic of "one party initiating a request, and the other party providing a response." The party initiating the request is called the requester, such as a client or a data receiving node; the party providing the service or data is called the responder, such as a server or a data sending node. The requester actively sends data containing its specific requirements to the responder and waits for a response; after receiving the request, the responder processes the request and returns the corresponding result, such as successful data reception or an error message. This mechanism is characterized by its simple logic and clear interaction.

[0102] In the request-response mechanism, the data receiving node initiates the data interaction process. Upon detecting a request for a topic within its scope, the data sending node responds to the data interaction and determines the target data based on the data transmission strategy corresponding to the topic. The process of determining the target data based on the topic is the same as in the previous embodiment and will not be repeated here.

[0103] When the data receiving node receives the byte array corresponding to the second topic, it selects the target business data transmission strategy corresponding to the second topic from the data transmission strategy library and adopts the target business data transmission strategy to continue receiving the byte array. This ensures that the data sending node and the data receiving node use the same business data transmission strategy for data interaction on the same topic, avoiding transmission errors caused by different business data transmission strategies between the data sending node and the data receiving node.

[0104] The distributed software system provided in this application embodiment enables data interaction between data sending nodes and data receiving nodes based on a request-response mechanism. This mechanism is logically simple and the interaction is clearly defined. Furthermore, during data interaction, the data sending and receiving nodes employ the same business data transmission strategy for data interaction on the same topic. This avoids transmission errors caused by differences in business data transmission strategies between the data sending and receiving nodes, thereby improving the performance of the distributed software system.

[0105] In one possible implementation, the topic types include message type and file type, wherein the business data transmission strategy corresponding to the message type topic supports real-time performance, and the business data transmission strategy corresponding to the file type topic supports integrity.

[0106] Specifically, both message-type topics and file-type topics are based on reliable transmission using the Real-Time Publish-Subscribe Protocol (RTPS). Message-type topics prioritize real-time transmission in their transmission strategy settings, while file-type topics prioritize high bandwidth in their transmission strategy settings.

[0107] The subject of a message type consists of data. The target data to be transmitted during the data interaction process is generally small in size. Transmitting such target data at a faster pace and ensuring real-time transmission can effectively improve the overall performance of the distributed software system.

[0108] File-based topics consist of files. When file content is missing, it may be difficult to parse the file content. Therefore, the business data transmission strategy corresponding to file-based topics should support integrity to ensure the effectiveness of data interaction.

[0109] The distributed software system provided in this application categorizes topics. The business data transmission strategy corresponding to message-type topics supports real-time performance, while the business data transmission strategy corresponding to file-type topics supports integrity. This can improve the performance of the distributed software system while ensuring the data interaction requirements of the distributed software system.

[0110] In one possible implementation, the correspondence between topics and data transmission policies, as well as the topics and their types, can all be configured according to the configuration information in the configuration file.

[0111] The configuration file can be stored in the shared memory of the distributed software system, and all application nodes can read and access it. For ease of use and unified initialization standards, the correspondence between topics and data transmission strategies, topics, and topic types can all be configured according to the configuration information in the configuration file. Each application node initializes and establishes links according to the configuration information. This process is automatically executed when a new application node joins. After execution, the application node is dynamically added to the distributed software system and becomes part of the data sharing space.

[0112] The distributed software system provided in this application uses a configuration file to configure the correspondence between topics and data transmission strategies, topics, and topic types. When a new application node is added, the relevant configuration can be automatically loaded from the configuration file, enabling the dynamic addition of new application nodes and improving the compatibility of the distributed software system.

[0113] In one possible implementation, the data receiving node is also used for:

[0114] If the target service data transmission policy supports integrity, during the process of receiving the byte array, it is determined whether the complete byte array has been received within the receiving timeout period corresponding to the target service data transmission policy; if the complete byte array has not been received within the receiving timeout period corresponding to the target service data transmission policy, the retransmission of the target data is triggered.

[0115] Specifically, assuming the target business data transmission strategy supports integrity, the timeout period can be determined to be a relatively large duration. This timeout duration can be determined based on the network configuration of the distributed software system and the maximum file size to be transmitted, ensuring sufficient integrity for regular file transmission. If a complete byte array is not received within the corresponding timeout period of the target business data transmission strategy, it likely indicates a transmission interruption or error, triggering a retransmission of the target data.

[0116] Optionally, if the target business data transmission strategy supports real-time performance, the timeout duration can be determined to be a relatively short duration. In this case, the timeout duration can be determined based on the network configuration of the distributed software system and the size of the target data of the message type, and is a duration that can meet the real-time transmission requirements of the target data of the message type.

[0117] The distributed software system provided in this application embodiment sets a timeout retransmission mechanism to ensure that the transmission process meets the data integrity requirements when the target business data transmission strategy supports integrity.

[0118] Figure 5 Flowchart of the data transmission method provided in the embodiments of this application Figure 1 .like Figure 5 As shown, this application provides a data transmission method applied to a data sending node in a distributed software system as described in various possible implementations of the above embodiments. The distributed software system further includes a data receiving node corresponding to the data sending node. The data transmission method includes:

[0119] S501, In response to the detection that there is target data to be transmitted between the data receiving node and the target data, the target data is serialized to obtain the byte array corresponding to the target data.

[0120] Specifically, a unified encoding rule is preset in all application nodes or data centers of the distributed software system. When a target data to be transmitted is detected between the data receiving node and the data sending node, the data sending node uses the encoding rule to serialize the target data to obtain the byte array corresponding to the target data.

[0121] S502: Based on the data distribution service, a byte array is sent to the data receiving node, which then performs deserialization on the byte array to obtain the target data.

[0122] Corresponding to the data sending node, after receiving the byte array, the data receiving node deserializes the byte array according to the decoding rules corresponding to the preset encoding rules to obtain the target data.

[0123] The data transmission method provided in this application involves a data sending node serializing the target data to generate a corresponding byte array, which is then sent to a data receiving node using a data distribution service. The data receiving node deserializes the byte array to obtain the target data, thus achieving data sharing. In this process, the data distribution service no longer encodes and decodes the target data, and there is no need for complex configuration of the data distribution structure based on the application node's data structure. Therefore, when data is modified due to upgrades or a new application node with new data structure information is connected at any end of the system, the lack of configuration information for the relevant node in the data distribution service will not cause incompatibility issues, effectively improving the performance of the distributed software system.

[0124] In one possible implementation, the target data includes at least one data element, which includes a keyword, a data type, and a data value. The target data is serialized to obtain a byte array corresponding to the target data, including:

[0125] For each data element contained in the target data, a keyword sequence corresponding to the data element is generated based on the preset element start identifier and the keyword of the data element; a data type sequence corresponding to the data element is generated based on the data type of the data element and the sorting number of the data element in the target data; and a byte array corresponding to the data element is generated based on the keyword sequence, data type sequence, and data value of the data element.

[0126] The byte arrays corresponding to the data elements contained in the target data are concatenated in the sorted order to obtain the byte array corresponding to the target data.

[0127] Specifically, business data in application nodes is stored in units of topics, with each topic containing at least one data element. Element data is represented in the format Key:Type:Value, with types including strings, string arrays, integers, integer arrays, floating-point numbers, and floating-point arrays. The set of data elements corresponding to a topic can be dynamically customized and divided without prior specification. When target data to be transmitted exists, a byte array corresponding to the target data is generated based on preset dynamic encoding rules and the target data's keyword, type, and data value.

[0128] For example, during serialization, the "Key," "Type," and "Value" of data elements are serialized step by step according to the order in the set of data elements in memory (i.e., the map container). Strings and arrays do not contain terminators. Data elements in the byte array are truncated using a preset start identifier; for example, truncated as "0x010203...0x010203." Data types can include bool, I64, I32, U64, U32, F64, F32, strings, and their corresponding arrays, etc. The data types are encoded to generate a data type sequence corresponding to the data type. In some implementations, the data type sequence may also include endianness information of the data elements and the sequence number of the data element within the data element data, etc.

[0129] A concrete example involves serializing a data element with the key "xxxxxxxx", data type U32, and value "123456789ABCD". The byte array representation in hexadecimal is: "010203xxxxxxxx010203" + "010500000001" + "123456789ABCD". Here, "010203xxxxxxxxxx010203" is the key sequence, "010500000001" is the data type sequence, including endianness, data type, and sequence number. 01 indicates little-endian, 05 indicates the data type is "U32", 00000001 indicates this is the first data element in the set, and "123456789ABCD" is the data value.

[0130] Based on the above serialization processing method, the dynamic encoding rules of each application node are standardized, preventing decoding failures and achieving fast and efficient encoding and decoding. It should be noted that this method supports application-layer element data types including bool, I64, I32, U64, U32, F64, F32, STR, boolArray, I64Array, I32Array, U64Array, U32Array, F64Array, F32Array, STRArray, and so on.

[0131] In one implementation, the target data to be transmitted can be a file. For file-type target data, the keyword is the filename, the data type is the file type, and the data value is the content contained in the file. The keyword, data type, and data value are serialized to obtain the byte array corresponding to the target data.

[0132] The data transmission method provided in this application embodiment uses a unified dynamic encoding rule for each application node to serialize the target data, achieving fast and efficient encoding and decoding. The data distribution service is used to transmit the serialized byte array. Therefore, the data distribution service no longer depends on the IDL file. Without updating the IDL file and code, nodes can freely add data interfaces with different data structures, improving the compatibility of the distributed software system.

[0133] Corresponding to the data transmission method in the above embodiments, this application also provides a data transmission method applied to a data receiving node in a distributed software system as described in various possible implementations of the above embodiments. The distributed software system further includes a data sending node corresponding to the data receiving node. Figure 6 Flowchart of the data transmission method provided in the embodiments of this application Figure 2 .like Figure 6 As shown, the data transmission method includes:

[0134] S601, Receive the byte array sent by the data sending node based on the data distribution service. The byte array is obtained by the data sending node in response to the detection that there is target data to be transmitted between it and the data receiving node, and by serializing the target data.

[0135] The process by which the data sending node serializes the target data to obtain the corresponding byte array is the same as in the previous embodiment, and will not be repeated here.

[0136] S602. Deserialize the byte array to obtain the target data.

[0137] For example, the byte array received by the data sending node is represented in hexadecimal as "010203xxxxxxxx010203010500000001123456789ABCD". Using a preset element start identifier, "010203xxxxxxxxxx010203" is determined as the keyword sequence corresponding to the keyword. Based on the length information of the data type sequence, "010500000001" is determined as the data type sequence corresponding to the data type. Specific content includes data endianness, data type, and data sequence number. 01 indicates little-endian, and 05 indicates the data type is "U32". The data between the data type sequence and the next element start identifier is the data value, i.e., "123456789ABCD". Through the above deserialization process, it can be determined that the transmitted data element is a data element with the keyword "xxxxxxxx", data type U32, and data value "123456789ABCD".

[0138] The data transmission method provided in this application embodiment involves a data receiving node deserializing a byte array according to preset decoding rules to obtain the target data, thereby achieving data sharing. In this process, the data distribution service is no longer relied upon for decoding the target data, and there is no need for complex configuration of the data distribution structure based on the application node's data structure. Therefore, when data is modified due to upgrades or a new application node with new data structure information is connected at any end of the system, the lack of configuration information for the relevant node in the data distribution service will not cause incompatibility issues, effectively improving the performance of the distributed software system.

[0139] Figure 7 Schematic diagram of the structure of the data transmission device provided in the embodiments of this application Figure 1 .like Figure 7 As shown, this application provides a data transmission device 70, applied to a data sending node in a distributed software system as described in various possible implementations of the above embodiments. The distributed software system further includes a data receiving node corresponding to the data sending node. The data transmission device 70 includes:

[0140] The serialization module 701 is used to serialize the target data in response to the detection that there is target data to be transmitted between the data receiving node and the data receiving node, so as to obtain the byte array corresponding to the target data.

[0141] The sending module 702 is used to send a byte array to the data receiving node based on the data distribution service. The data receiving node is used to deserialize the byte array to obtain the target data.

[0142] In one possible implementation, the target data includes at least one data element, which includes a keyword, a data type, and a data value. The serialization module 701 is specifically used for:

[0143] For each data element contained in the target data, a keyword sequence corresponding to the data element is generated based on the preset element start identifier and the keyword of the data element; a data type sequence corresponding to the data element is generated based on the data type of the data element and the sorting number of the data element in the target data; and a byte array corresponding to the data element is generated based on the keyword sequence, data type sequence, and data value of the data element.

[0144] The byte arrays corresponding to the data elements contained in the target data are concatenated in the sorted order to obtain the byte array corresponding to the target data.

[0145] Figure 8 Schematic diagram of the data transmission device structure provided in the embodiments of this application Figure 2 .like Figure 8 As shown, this application provides a data transmission device 80, applied to a data receiving node in a distributed software system as described in various possible implementations of the above embodiments. The distributed software system further includes a data sending node corresponding to the data receiving node. The data transmission device 80 includes:

[0146] The receiving module 801 is used to receive a byte array sent by the data sending node based on the data distribution service. The byte array is obtained by the data sending node in response to the detection of target data to be transmitted between the data sending node and the data receiving node, and by serializing the target data.

[0147] The deserialization module 801 is used to deserialize byte arrays to obtain target data.

[0148] The data transmission device provided in this embodiment can execute the method provided in the above method embodiment. Its implementation principle and technical effect are similar, and will not be described in detail here.

[0149] Figure 9 This is a schematic diagram of the structure of a data transmission device provided in an embodiment of this application. Figure 9 As shown, the data transmission device 90 provided in this embodiment includes at least one processor 901 and a memory 902. Optionally, the data transmission device 90 further includes a communication interface 903. The processor 901, memory 902, and communication interface 903 are connected via a communication bus 904.

[0150] In a specific implementation, at least one processor 901 executes computer execution instructions stored in memory 902, causing at least one processor 901 to perform the above-described method.

[0151] The specific implementation process of processor 901 can be found in the above method embodiments, and its implementation principle and technical effect are similar. It will not be repeated here.

[0152] In the above embodiments, it should be understood that the processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), etc. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in this invention can be directly implemented by a hardware processor, or implemented by a combination of hardware and software modules within the processor.

[0153] The memory may include random access memory (RAM) and may also include non-volatile memory (NVM), such as at least one disk storage device.

[0154] The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, the buses shown in the accompanying drawings are not limited to a single bus or a single type of bus.

[0155] This application also provides a computer program product, including a computer program that, when executed, implements the above-described method.

[0156] This application also provides a computer-readable storage medium storing computer-executable instructions, which, when executed, implement the above-described method.

[0157] The aforementioned readable storage medium can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk. The readable storage medium can be any available medium accessible to a general-purpose or special-purpose computer.

[0158] An exemplary readable storage medium is coupled to a processor, enabling the processor to read information from and write information to the readable storage medium. Of course, the readable storage medium can also be a component of the processor. The processor and the readable storage medium can reside in an application-specific integrated circuit (ASIC). Alternatively, the processor and the readable storage medium can exist as discrete components in the device.

[0159] The division of units is merely a logical functional division; in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be indirect coupling or communication connection through some interfaces, devices, or units, and may be electrical, mechanical, or other forms.

[0160] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment, depending on actual needs.

[0161] In addition, the functional units in the various embodiments of the present invention can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.

[0162] If a function is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this invention, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0163] Those skilled in the art will understand that all or part of the steps of the above-described method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When executed, the program performs the steps of the above-described method embodiments; and the aforementioned storage medium includes various media capable of storing program code, such as ROM, RAM, magnetic disks, or optical disks.

[0164] Finally, it should be noted that other embodiments of the invention will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This invention is intended to cover any variations, uses, or adaptations of the invention that follow the general principles of the invention and include common knowledge or customary techniques in the art not disclosed herein, and is not limited to the precise structures described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from its scope. The scope of the invention is limited only by the appended claims.

Claims

1. A distributed software system, characterized in that, It includes multiple application nodes, which cooperate to implement the business functions of the target application. These application nodes include data sending nodes and data receiving nodes, wherein: The data sending node is configured to respond to the detection of target data to be transmitted between itself and the data receiving node, serialize the target data to obtain a byte array corresponding to the target data, and send the byte array to the data receiving node based on the data distribution service; The data receiving node is used to receive the byte array and deserialize the byte array to obtain the target data.

2. The distributed software system according to claim 1, characterized in that, The target data contains at least one data element, the data element including a keyword, a data type, and a data value. The serialization process of the target data to obtain a byte array corresponding to the target data includes: For the data elements contained in the target data, a keyword sequence corresponding to the data element is generated according to the preset element start identifier and the keyword of the data element; a data type sequence corresponding to the data element is generated according to the data type of the data element and the sorting number of the data element in the target data; and a byte array corresponding to the data element is generated according to the keyword sequence, data type sequence and data value of the data element. The byte arrays corresponding to the data elements contained in the target data are concatenated in the sorted order to obtain the byte array corresponding to the target data.

3. The distributed software system according to claim 1, characterized in that, The application node has a localized proprietary data dictionary, which is used for hierarchical caching of the relationship between topics and elements; The target data is obtained in the following way: the data sending node detects the publication of the first topic in the localized proprietary data dictionary based on a publish-subscribe mechanism, and obtains the target business data transmission strategy corresponding to the first topic from a preset data transmission strategy library, wherein the data transmission strategy library contains business data transmission strategies that support multiple characteristics, including real-time performance and integrity; the target data is determined according to the target business data transmission strategy. The data receiving node receives the byte array by: responding to start receiving the byte array; determining a first topic corresponding to the byte array based on a publish-subscribe mechanism; obtaining a target business data transmission strategy corresponding to the first topic from a data transmission strategy library; and continuing to receive the byte array by adopting the target business data transmission strategy.

4. The distributed software system according to claim 1, characterized in that, The application node has a localized proprietary data dictionary, which is used for hierarchical caching of the relationship between topics and elements; The target data is obtained through the following method: based on a request-response mechanism, a request for a second topic in the localized proprietary data dictionary is detected; the target business data transmission strategy corresponding to the second topic is obtained from a preset data transmission strategy library, wherein the data transmission strategy library contains business data transmission strategies that support multiple characteristics, including real-time performance and integrity; the target data is determined according to the target business data transmission strategy. The data receiving node receives the byte array by: responding to start receiving the byte array; determining the second topic corresponding to the byte array based on a request-response mechanism; obtaining the target business data transmission strategy corresponding to the second topic from the data transmission strategy library; and continuing to receive the byte array by adopting the target business data transmission strategy.

5. The distributed software system according to claim 3 or 4, characterized in that, The topic types include message type and file type. The business data transmission strategy corresponding to message type topics supports real-time performance, while the business data transmission strategy corresponding to file type topics supports integrity.

6. The distributed software system according to claim 5, characterized in that, The correspondence between topics and data transmission strategies, as well as the topics themselves and their types, can all be configured according to the configuration information in the configuration file.

7. The distributed software system according to claim 3 or 4, characterized in that, The data receiving node is also used for: If the target service data transmission strategy supports integrity, during the process of receiving the byte array, it is determined whether the complete byte array has been received within the reception timeout period corresponding to the target service data transmission strategy; If the complete byte array is not received within the receive timeout period corresponding to the target service data transmission policy, the retransmission of the target data is triggered.

8. A data transmission method, characterized in that, A data sending node applied in any one of claims 1 to 7, wherein the distributed software system further includes a data receiving node corresponding to the data sending node, and the data transmission method includes: Upon detecting that there is target data to be transmitted between the data receiving node, the target data is serialized to obtain a byte array corresponding to the target data; The data distribution service sends the byte array to the data receiving node, and the data receiving node performs deserialization processing on the byte array to obtain the target data.

9. The data transmission method according to claim 8, characterized in that, The target data contains at least one data element, the data element including a keyword, a data type, and a data value. The serialization process of the target data to obtain a byte array corresponding to the target data includes: For the data elements contained in the target data, a keyword sequence corresponding to the data element is generated according to the preset element start identifier and the keyword of the data element; a data type sequence corresponding to the data element is generated according to the data type of the data element and the sorting number of the data element in the target data; and a byte array corresponding to the data element is generated according to the keyword sequence, data type sequence and data value of the data element. The byte arrays corresponding to the data elements contained in the target data are concatenated in the sorted order to obtain the byte array corresponding to the target data.

10. A data transmission method, characterized in that, A data receiving node applied in a distributed software system as described in any one of claims 1 to 7, wherein the distributed software system further includes a data sending node corresponding to the data receiving node, and the data transmission method includes: The system receives a byte array sent by the data sending node based on the data distribution service. The byte array is obtained by the data sending node in response to detecting that there is target data to be transmitted between it and the data receiving node, and by serializing the target data. The byte array is deserialized to obtain the target data.