Data flow pushing method and device, equipment, storage medium and program product
By detecting the existence of the global domain name system configuration file and using network identity identification instructions to determine the target address, the difficulties faced by the streaming platform in the domain name system configuration and resolution process are solved, and the streaming capability is improved.
Patent Information
- Application Number
- CN202510906848.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-07-01
- Publication Date
- 2025-09-19
AI Technical Summary
Existing streaming platforms have difficulties and limitations in the domain name system configuration and resolution process, which affects the improvement of streaming capabilities.
By detecting whether the global domain name system configuration file is maintained, if it does not exist, the domain name system information of the target network identity is read based on the network identity identification instruction, the target address is determined, and the push flow component of the target address is used to push the data to the target device.
This approach can reduce the configuration difficulty and modification restrictions of the domain name system, allowing the streaming platform to complete the resolution of the domain name system more flexibly and with higher quality, thereby improving streaming capabilities.
Smart Images

Figure CN120676047A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of computer technology, specifically to artificial intelligence technologies such as streaming media technology, data transmission and cloud services, and more particularly to methods, devices, electronic devices, computer-readable storage media and computer program products for streaming data. Background Art
[0002] With the development of society and computer technology, cloud computing technology, as an emerging computing model, has been widely used in various scenarios in order to better provide computing resources to users and enable them to use computing resources more conveniently and at low cost.
[0003] For example, in the gaming sector, the game client can be run on a cloud server. The cloud gaming application provided by the streaming platform then facilitates real-time streaming between the user's terminal device and the game manufacturer's server. This allows users to experience gaming beyond the hardware limitations of their terminal devices. Therefore, the application scenarios of cloud computing and the user's cloud computing experience are closely related to the performance of the streaming platform.
[0004] Therefore, how to improve the streaming capabilities of streaming platforms is worthy of attention and an urgent need. Summary of the Invention
[0005] The embodiments of the present disclosure provide a method, apparatus, electronic device, computer-readable storage medium, and computer program product for streaming data.
[0006] In a first aspect, an embodiment of the present disclosure proposes a method for streaming data, comprising: in response to receiving a data streaming request from a target application, detecting whether a global domain name system configuration file is maintained; in response to the absence of a global domain name system configuration file, reading the domain name system information recorded in the target network identity based on a network identity identification instruction, and determining a target address; directing the streaming data to be pushed uploaded by the target application to the target address, and using the streaming component of the target address to push the streaming data to the target device indicated by the target application.
[0007] In the second aspect, an embodiment of the present disclosure proposes a device for streaming data, including: a configuration file detection unit, configured to detect whether a global domain name system configuration file is maintained in response to receiving a data streaming request from a target application; a first target address determination unit, configured to read the domain name system information recorded by the target network identity based on a network identity identification instruction in response to the absence of a global domain name system configuration file, and determine the target address; a data streaming unit, configured to direct the streaming data to be pushed uploaded by the target application to the target address, and use the streaming component of the target address to push the streaming data to the target device indicated by the target application.
[0008] In a third aspect, an embodiment of the present disclosure provides an electronic device comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can implement the method for streaming data as described in any implementation method in the first aspect when executing the instructions.
[0009] In a fourth aspect, an embodiment of the present disclosure provides a non-transitory computer-readable storage medium storing computer instructions, which are used to enable a computer to implement the method for streaming data as described in any implementation manner in the first aspect when executed.
[0010] In a fifth aspect, an embodiment of the present disclosure provides a computer program product including a computer program, which, when executed by a processor, can implement the method for streaming data as described in any implementation manner in the first aspect.
[0011] The method, apparatus, electronic device, computer-readable storage medium, and computer program product for streaming data provided by the embodiments of the present disclosure first detect whether a global domain name system configuration file is maintained in response to receiving a data streaming request from a target application; then, in response to the absence of a global domain name system configuration file, read the domain name system information recorded in the target network identity based on a network identity identification instruction to determine a target address; finally, direct the streaming data to be pushed uploaded by the target application to the target address, and use the streaming component of the target address to push the streaming data to the target device indicated by the target application.
[0012] The present disclosure can reduce the configuration difficulty and modification restrictions of the domain name system, so that the streaming platform can complete the resolution of the domain name system more flexibly and with higher quality, thereby improving the streaming capability of the streaming platform.
[0013] It should be understood that the contents described in this section are not intended to identify the key or important features of the embodiments of the present disclosure, nor are they intended to limit the scope of the present disclosure. Other features of the present disclosure will become readily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Other features, objects and advantages of the present disclosure will become more apparent from a reading of the detailed description of non-limiting embodiments made with reference to the following drawings: Figure 1 is an exemplary system architecture in which the present disclosure may be applied; Figure 2 A flowchart of a process for streaming data provided by an embodiment of the present disclosure; Figure 3A flowchart of another process for streaming data provided by an embodiment of the present disclosure; Figure 4 A flowchart of another process for streaming data provided by an embodiment of the present disclosure; Figure 5 A flowchart illustrating a process of streaming data implemented in an application scenario provided by an embodiment of the present disclosure; Figure 6 A structural block diagram of a device for streaming data provided by an embodiment of the present disclosure; Figure 7 A schematic diagram of the structure of an electronic device suitable for executing a method for streaming data provided by an embodiment of the present disclosure. DETAILED DESCRIPTION
[0015] The following description of exemplary embodiments of the present disclosure is made in conjunction with the accompanying drawings, including various details of the embodiments of the present disclosure to facilitate understanding, which should be considered as merely exemplary. Therefore, it should be recognized by those skilled in the art that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of the present disclosure. Similarly, for the sake of clarity and conciseness, descriptions of well-known functions and structures are omitted in the following description. It should be noted that the embodiments in the present disclosure and the features in the embodiments can be combined with each other unless there is a conflict.
[0016] In addition, the acquisition, storage, use, processing, transportation, provision and disclosure of user personal information involved in the technical solutions involved in this disclosure (for example, the data to be pushed later in this disclosure may include user personal information according to different scenarios and needs) are in compliance with the relevant laws and regulations and do not violate public order and good morals.
[0017] Figure 1 An exemplary system architecture 100 is shown to which embodiments of the method, apparatus, electronic device, and computer-readable storage medium for streaming data disclosed herein may be applied.
[0018] like Figure 1 As shown, system architecture 100 may include terminal devices 101, 102, 103, a network 104, and a server 105. Network 104 is a medium for providing communication links between terminal devices 101, 102, 103 and server 105. Network 104 may include various connection types, such as wired or wireless communication links or fiber optic cables.
[0019] Users can use terminal devices 101, 102, and 103 to interact with server 105 via network 104 to receive or send messages, etc. Various applications for enabling information communication between the terminal devices 101, 102, and 103 and server 105 can be installed, such as cloud service applications, online live broadcast applications, and instant messaging applications.
[0020] Terminal devices 101, 102, 103 and server 105 can be either hardware or software. When terminal devices 101, 102, 103 are hardware, they can be various electronic devices with display screens, including but not limited to smartphones, tablet computers, laptop computers, and desktop computers. When terminal devices 101, 102, 103 are software, they can be installed in the electronic devices listed above. They can be implemented as multiple software or software modules, or as a single software or software module, and are not specifically limited here. When server 105 is hardware, it can be implemented as a distributed server cluster consisting of multiple servers, or as a single server. When the server is software, it can be implemented as multiple software or software modules, or as a single software or software module, and are not specifically limited here.
[0021] The server 105 can provide various services through various built-in applications. Taking cloud service applications that can provide cloud computing and cloud services as an example, the server 105 can achieve the following effects when running the cloud service application: First, if the server 105 receives a data streaming request from a target application (for example, the target application can be a specific game application or game client running in the above-mentioned cloud service application), it can respond to it and detect whether a global domain name system configuration file is maintained; then, in response to the absence of a global domain name system configuration file, the server 105 reads the domain name system information recorded in the target network identity based on the network identity identification instruction and determines the target address; finally, the server 105 directs the to-be-pushed streaming data uploaded by the target application to the target address, and uses the streaming component of the target address to push the to-be-pushed streaming data to the target device indicated by the target application.
[0022] Typically, the target device, depending on the data flow direction, can be terminal devices 101, 102, 103 or other devices not shown in the figure, such as the game server provided by the aforementioned game manufacturer. For example, in this example, if the streaming data to be pushed is collected from terminal devices 101, 102, 103, the target device can be, for example, the aforementioned game server. If the streaming data to be pushed is provided by the game manufacturer or game server, the target device can also be terminal devices 101, 102, 103.
[0023] Because cloud services and streaming require a significant amount of computing resources and significant computational power, the methods for streaming data provided in the subsequent embodiments of this disclosure are generally performed by a server 105 possessing significant computing power and resources. Accordingly, the apparatus for streaming data is generally also located within server 105. However, it should also be noted that, if terminal devices 101, 102, and 103 also possess sufficient computing power and resources, terminal devices 101, 102, and 103 may also utilize cloud service applications installed thereon to perform the various computations previously assigned to server 105, thereby outputting the same results as server 105. In particular, in the presence of multiple terminal devices with varying computing power, if the cloud service application determines that the terminal device it is in possession of possesses significant computing power and a significant amount of remaining computing resources, it may allow the terminal device to perform the aforementioned computations, thereby appropriately alleviating the computational pressure on server 105. Accordingly, the apparatus for streaming data may also be at least partially located within terminal devices 101, 102, and 103.
[0024] It should be understood that Figure 1 The number of terminal devices, networks and servers in the embodiment is merely illustrative. Any number of terminal devices, networks and servers may be provided as required.
[0025] Please refer to Figure 2 , Figure 2 A flowchart of a process for streaming data provided by an embodiment of the present disclosure includes process 200.
[0026] Process 200 includes the following steps: Step 201: In response to receiving a data streaming request from a target application, detecting whether a global domain name system configuration file is maintained; In the embodiment of the present disclosure, this step is intended to be performed by the execution subject of the method for pushing stream data (for example Figure 1 The server 105 shown in FIG. 1 responds upon receiving a data streaming request from a target application.
[0027] In some scenarios, the process of "providing a data push request" can also be directly implemented by the target application by providing "stream data to be pushed." For example, based on pre-configuration, the execution entity can directly consider that it has received (received) a data push request from the target application when it detects that the target application has generated the stream data to be pushed and provides the stream data to the execution entity. Alternatively, based on pre-configuration, at certain intervals or when a certain amount of data (for example, a target number of video frames) has accumulated, the execution entity will consider that the target application has provided a data push request, and then pull the data within this time period or the accumulated data as the stream data to be pushed to perform subsequent push actions. This simplifies the configuration requirements for the target application (for example, the target application does not need to frequently and repeatedly issue requests in the form of instructions to the execution entity).
[0028] For example, in a cloud gaming scenario, if the target application installed as a "game application" in the execution entity expects to return game content to the user (for example, the game content returned by the game server), the game server can use the target application to send a data streaming request to the execution entity to request the execution entity to return the data to be streamed (that is, the game content that the game server expects to return) to the target device, such as the terminal device 101, 102, 103 used by the user.
[0029] Although some data flows may be referred to as "pull flows" in some scenarios, for ease of understanding, this article uses "push flows" to describe them uniformly.
[0030] Similarly, if a user wishes to upload live streaming or gaming content (for example, a user-provided live video stream), they can similarly send a data push request and the data to be pushed to the execution entity through the target application. The execution entity then delivers this content to the corresponding gaming or live streaming server for processing. Thus, through this communication and interaction, users can leverage the execution entity to achieve "cloud gaming" and "live streaming."
[0031] In a live broadcast scenario, for example, the execution entity can also similarly push the video stream collected by the target application, such as the video stream that the user expects to upload, to the server as the data to be recommended, so as to provide live broadcast content to the platform and other users.
[0032] In some embodiments, an application, such as a "game," may not actually require a game server to provide interactive data. For example, the "game" (application) may actually be running within an execution entity of the aforementioned method or process for streaming data. In such a case, the execution entity can, based on the data, such as images and sound effects, obtained by executing and running the corresponding application of the "game," provide this content to devices used by users, such as terminal devices 101, 102, and 103, in a streaming manner, allowing users to interact using, for example, the execution entity's computing resources.
[0033] In this step, after responding, the executing entity may choose to detect whether a global DNS configuration file is maintained. For example, the executing entity may determine whether such a global DNS configuration file is maintained locally by performing a local scan, or may query an external storage device independent of the executing entity for whether such a global DNS configuration file is maintained.
[0034] The global domain name system configuration file can be used by the execution subject to determine the internal location to which the to-be-pushed stream data corresponding to the data push request needs to be directed based on the specific domain name system information recorded therein.
[0035] Accordingly, the global DNS configuration file can record one or more candidate DNS information. For ease of understanding, the candidate DNS information will be referred to as candidate DNS information or candidate DNS information. Accordingly, the global DNS configuration file can also be referred to as the global DNS configuration file.
[0036] The candidate DNS information can be used to record and provide the (internal) addresses of the streaming components. This allows the execution entity to determine which candidate DNS information to use and then resolve the candidate DNS information to obtain the (internal) addresses corresponding to the streaming components it desires to use.
[0037] Then, the execution subject directs the to-be-pushed stream data to the streaming component by directing the to-be-pushed stream data to the address, so as to realize subsequent streaming.
[0038] For example, the candidate DNS information can record the domain name of the target device (e.g., terminal devices 101, 102, 103 used by the user, or a game server, live streaming server, etc., depending on the scenario) that is the streaming destination for the streaming data, as well as the internal address of the streaming component used to stream to the target device. This allows the target application to provide a domain name, and the execution entity can search for the corresponding streaming component based on the domain name and determine the (internal) address of the streaming component based on the resolution result of the candidate DNS information.
[0039] Depending on different scenarios and requirements, a streaming component may have one or more of the following functions: authentication (for example, determining whether a data streaming request comes from an authorized user or device), streaming media management, configuration update, data stream push to external devices, data traffic management, resolution and bitrate adjustment, etc. For example, the streaming component may be a multifunctional component integrating multiple functions, or a corresponding streaming component may be configured for one or more specific functions, so that these functions can be integrated into a set of streaming components later.
[0040] In the embodiments of the present disclosure, the global DNS configuration file can be used by the execution entity to process data streaming requests from various applications. For example, if the execution entity can provide cloud gaming or live streaming services through cloud gaming applications or live streaming applications, the execution entity can use the candidate DNS information recorded in the global DNS configuration file to find the address and streaming components for the data streaming requests sent by the cloud gaming applications or live streaming applications.
[0041] For different applications, the execution entities can "globally" use the global DNS configuration file to respond to their data streaming requests and find the addresses of the required streaming components for them.
[0042] Therefore, using such a global DNS configuration file that can be used globally by various applications can achieve centralized management of various applications and addresses, and can simplify DNS configuration management and maintenance. For example, the global DNS configuration file can be a Resolv.conf file.
[0043] Next, if the execution subject determines in this step that the global domain name system configuration file is not maintained or does not exist, it chooses to continue to execute step 202.
[0044] Step 202: In response to the absence of a global DNS configuration file, the DNS information recorded in the target network identity is read based on the network identity identification instruction to determine the target address; In an embodiment of the present disclosure, if the executing entity does not detect that a global DNS configuration file is maintained or does not exist in the above step 201, the executing entity can respond to this by selecting to execute a (pre-configured) network identity identification instruction to search for a target network identity from the network identity (NetID) and to search and determine the target address by reading the domain name system information recorded in the target network identity.
[0045] A network identity can be configured with the streaming component to record and maintain its Domain Name System (DNS) information. Accordingly, after the execution entity finds the streaming component, it can execute a network identity recognition instruction to obtain the target network identity corresponding to the streaming component. The execution entity then parses the DNS information associated with the target network identity to determine the target address currently being used by the streaming component.
[0046] The network identity identification instruction may have different forms in different system environments. For example, in an Android environment, the network identity identification instruction may be a Dumpsys instruction.
[0047] Step 203: Direct the stream data to be pushed uploaded by the target application to the target address, and use the stream pushing component of the target address to push the stream data to the target device indicated by the target application.
[0048] In an embodiment of the present disclosure, this step is intended to determine the target address based on the above step 202, and then, based on the target address, the execution entity will direct the to-be-pushed data uploaded by the target application corresponding to the data push request sent by the target application to the target address.
[0049] Accordingly, after the direction is completed, the execution entity can use the streaming component of the target address to process the streaming data to be pushed (for example, complete authentication, etc.) and push the streaming data to the target device indicated by the target application to realize the streaming service and cloud service of the execution entity.
[0050] The method for streaming data provided by the embodiment of the present disclosure first detects whether a global domain name system configuration file is maintained in response to receiving a data streaming request from a target application; then, in response to the absence of a global domain name system configuration file, the domain name system information recorded in the target network identity is read based on the network identity identification instruction to determine the target address; finally, the streaming data to be pushed uploaded by the target application is directed to the target address, and the streaming component of the target address is used to push the streaming data to the target device indicated by the target application. In this way, the configuration difficulty and modification restrictions of the domain name system can be reduced (for example, part of the content in the global DNS configuration file can be flexibly modified without worrying about "global failure" due to such local modifications), so that the streaming platform can complete the resolution of the domain name system more flexibly and with higher quality, thereby improving the streaming capability of the streaming platform.
[0051] In some embodiments, a global DNS configuration file may also be configured, or the execution entity may also detect the global DNS configuration file. For example, in step 201 above, the execution entity detects and determines the existence of the global DNS configuration file. Because the global DNS configuration file can be used "globally," in this case, the execution entity can also use the global DNS configuration file to find and determine the target address expected by the target application.
[0052] However, in such a case, considering that multiple candidate DNS information may be maintained in the global DNS configuration file in order to meet the usage requirements of different applications, in order to avoid reading and recognition errors caused by, for example, the global DNS configuration file configuring multiple candidate domain name system information (for example, because the candidate domain name system information at the first position in the sequence is unexpectedly used, the candidate domain name system information that should actually be used, such as the second or third position in the sequence, is not read), in such a case, the execution entity may first choose to read the number of candidate domain name system information included in the global domain name system configuration file.
[0053] Accordingly, if the number of candidate domain name system information is 1, that is, only one candidate DNS information is maintained in the global DNS configuration file, the execution entity can choose to utilize and resolve the only candidate DNS information to efficiently determine the target address using the global DNS configuration file.
[0054] In some optional implementations of this embodiment, in order to avoid the situation where the only candidate DNS information is also "wrong", that is, the global DNS configuration file does not actually maintain or record the candidate DNS information that can be used this time, the execution entity can choose to test the target address first to determine whether it is correct when using the target address resolved by the only candidate DNS information for streaming.
[0055] For easier understanding, you can also refer to Figure 3 . Figure 3 A flowchart of another process for streaming data provided by an embodiment of the present disclosure, including process 300.
[0056] The process 300 specifically includes the following steps: Step 301: In response to receiving a data streaming request from a target application, detecting whether a global domain name system configuration file is maintained; The implementation process of this step is similar to step 201 discussed above. For the same parts, please refer to the corresponding parts of the previous embodiment and will not be repeated here.
[0057] Step 302: In response to the existence of a global DNS configuration file, read the number of candidate DNS information included in the global DNS configuration file; Specifically, in this step, if the execution entity detects that there is a global DNS configuration file, the execution entity may read the number of candidate DNS information included in the global DNS configuration file, for example, reading out the number of one or more candidate DNS information included therein.
[0058] In some cases, if the number of candidate DNS information is 0, the execution entity may select, for example, the implementation method of step 202 described above in a manner similar to when there is no global DNS configuration file, which will not be described in detail here.
[0059] Next, if the number is 1, that is, the global domain name system configuration file and the global DNS configuration file only include a unique piece of candidate domain name system information and candidate DNS information, the execution entity may respond thereto and continue to execute step 303 .
[0060] Step 303: Determine the target address based on the candidate domain name system information; Specifically, if the number of candidate DNS information included in the global DNS configuration file is 1, the execution entity may parse the candidate DNS information to read out the “target address” as discussed above.
[0061] Step 304: Send a first test data stream to the target address; Specifically, the execution entity can send a first test data stream to the "target address" for "testing." Accordingly, through this first test data stream, the execution entity can use the streaming component corresponding to the target address to test-stream the "first test data stream" to determine the first streaming destination corresponding to the streaming component.
[0062] For example, based on a communication instruction or a pre-configuration, the streaming component corresponding to the target address can perform a streaming action accordingly after receiving the first test data stream.
[0063] In some embodiments, the function of the first test data stream can be to instruct the streaming component to stream it, and to control and instruct the "device" corresponding to the first streaming destination to return the corresponding first identity information after receiving the first test data stream, so that the execution subject can understand what the "device" is through the first identity information, that is, what the "device" corresponding to the first streaming destination is specifically.
[0064] In some embodiments, in combination with different requirements, the first test data stream can also be used to test the link communication status between the streaming component and the first streaming destination, etc.
[0065] Step 305: Determine a first streaming destination corresponding to a target address based on the first identity information fed back for the first test data stream; Specifically, based on the above-mentioned step 304, after the execution entity provides the first test data stream to the target address, the data to be pushed corresponding to the target address can be pushed to the first push destination, requesting the "device" corresponding to the first push destination to return the first identity information. Accordingly, if the first identity information is returned, the execution entity can determine the first push destination corresponding to the target address based on the first identity information fed back for the first test data stream, or more specifically, understand the specific "device" serving as the first push destination.
[0066] Next, if the first streaming destination is the target device indicated by the target application, that is, the "device" corresponding to the first streaming destination is the target device expected by the target application, the execution entity can respond to this and determine that the only candidate DNS information is available and correct. Then, the execution entity chooses to continue to step 306.
[0067] Step 306: Direct the stream data to be pushed uploaded by the target application to the target address, and use the stream pushing component of the target address to push the stream data to the target device indicated by the target application.
[0068] Specifically, if the executing entity determines in the above step 305 that the first streaming destination is the target device indicated by the target application, then in response, it can choose to direct the streaming data uploaded by the target application to the target address, and use the streaming component of the target address to push the streaming data to the target device indicated by the target application.
[0069] Therefore, in this way, the accurate use of the global domain name system configuration file can be further guaranteed to avoid streaming errors caused by selecting and loading incorrect (candidate) DNS information.
[0070] In some optional implementations of this embodiment, if the first streaming destination determined in the above step 305 is not the target device indicated by the target application, the execution entity may also respond to this and still choose to read the domain name system information recorded by the target network identity based on the network identity identification instruction to re-determine and select the target address (that is, this situation can be regarded as the absence of a global DNS configuration file).
[0071] Accordingly, the above process 300 may further include step 307. Step 307 may be executed by the executed entity if the first streaming destination determined in step 305 is not the target device indicated by the target application. That is, if the first streaming destination determined in step 305 is not the target device indicated by the target application, the executing entity may, in response, choose to execute step 307 instead of step 306.
[0072] Step 307: Based on the network identity identification instruction, read the domain name system information recorded in the target network identity and re-determine the target address.
[0073] Specifically, in this case, the execution entity can be understood as "deeming" that the "global DNS configuration file" is missing and has not been read. Accordingly, the execution entity can read the domain name system information recorded by the target network identity based on the network identity identification instruction in the manner discussed in step 202 above to determine the target address.
[0074] Step 308: Direct the stream data to be pushed uploaded by the target application to the re-determined target address, and use the stream pushing component of the re-determined target address to push the stream data to the target device indicated by the target application.
[0075] Specifically, after the target address is re-determined based on step 307, the execution entity can actually select the re-determined target address to complete the subsequent direction and use the corresponding streaming component. For example, the execution entity can direct the data to be streamed to the re-determined target address and use the streaming component corresponding to the re-determined target address to perform the streaming.
[0076] As a result, even if there is a global domain name system configuration file, it can still be pushed even if it is unavailable due to errors in recording or documentation, thereby improving the stability and reliability of the push process.
[0077] In some embodiments, when the global DNS configuration file includes more than two candidate DNS information, the above-mentioned identification and reading errors can also be avoided by maintaining the domain name system information selection rules and the DNS information selection rules.
[0078] Accordingly, in such a case, the executing entity can respond to the case where the number of candidate DNS information is greater than 1, that is, when the number of candidate DNS information read in the above step 302 is greater than 1, and detect whether a domain name system information selection rule is maintained for the target application.
[0079] For example, such a domain name system information selection rule may record the candidate DNS information that the target application expects to select and use, such as the number of the candidate DNS information in the global DNS configuration file, the key characters that the candidate DNS information should include, etc.
[0080] Accordingly, through the domain name system information selection rule, the execution entity can select the "target domain name system information" that can be expected to be used by the target application from at least two candidate DNS information (that is, the candidate domain name system information corresponding to the domain name system information selection rule and indicated by the domain name system information selection rule).
[0081] Then, the execution entity determines the target address based on the target domain name system information.
[0082] Therefore, through the domain name system information selection rules, even if there are multiple candidate DNS information in the global DNS configuration file, the target application can still use the global DNS configuration file to match and determine the corresponding target DNS information, so that the global DNS configuration file will not reduce its utilization value simply because at least two candidate DNS information are configured.
[0083] However, in some embodiments, the above-mentioned domain name system information selection rules may not be maintained in advance. In such a case, if the global DNS configuration file includes more than two candidate DNS information, the execution entity can execute the policy differently based on the actual number of candidate DNS information included in the global DNS configuration file.
[0084] For example, the executing entity can choose, based on the actual number of candidate DNS information, whether to find and determine the target address that can be utilized through the above-mentioned test method, or to find and determine the target address by reading the domain name system information recorded by the target network identity based on the network identity identification instruction.
[0085] For example, the execution entity may compare the actual number of candidate DNS information with a quantity threshold (since such a situation actually only occurs when there are at least two candidate DNS information, the quantity threshold is greater than 1). The quantity threshold may be determined based on the estimated computing resource usage, determination efficiency, and waiting time of the test. For example, taking determination efficiency as an example, if the number of candidate DNS information is less than or equal to the quantity threshold, determining the target address by testing can have a higher determination efficiency, while when the number of candidate DNS information is greater than the quantity threshold, reading the domain name system information recorded by the target network identity based on the network identity identification instruction can have a higher determination efficiency.
[0086] For easier understanding, you can also refer to Figure 4 . Figure 4 A flowchart of another process for streaming data provided by an embodiment of the present disclosure includes process 400.
[0087] The process 400 specifically includes the following steps: Step 401: In response to receiving a data streaming request from a target application, detecting whether a global domain name system configuration file is maintained; Step 402: In response to the existence of a global DNS configuration file, read the number of candidate DNS information included in the global DNS configuration file; The implementation process of the above steps 401-402 is similar to the steps 301 and 302 discussed above. For the same parts, please refer to the corresponding parts of the previous embodiment and will not be repeated here.
[0088] Next, if the number of candidate domain name system information and candidate DNS information is greater than 1, the execution entity may respond thereto and continue to execute step 403 .
[0089] Step 403: Check whether a domain name system information selection rule is maintained for the target application; Specifically, as discussed above, if it is detected in step 402 that the number of candidate DNS information included in the global DNS configuration file is greater than 1, the execution entity may choose to perform this step to detect whether a domain name system information selection rule utilizing the global DNS configuration file is maintained for the target application.
[0090] Next, if there is no domain name system information selection rule, and the number of candidate domain name system information and candidate DNS information determined in step 402 is less than or equal to the aforementioned quantity threshold, the execution entity may choose to execute step 404 .
[0091] Step 404: Send a second test data stream to each candidate address corresponding to each candidate domain name system information; Specifically, if there is no domain name system information selection rule and the number of candidate DNS information is less than or equal to the above-mentioned quantity threshold, the execution entity can respond to this and choose to send a second test data stream to the candidate address corresponding to each candidate DNS information respectively, so as to use the second test data stream to test the corresponding candidate address resolved by each candidate DNS information similarly to the first test data stream, so as to test the second streaming destination corresponding to each of these candidate addresses.
[0092] Step 405: Determine that each candidate address corresponds to a second streaming destination based on the second identity information fed back for the second test data stream; Specifically, as discussed above with respect to the first test data stream, for the second test data stream, the execution entity can also determine the second streaming destination corresponding to each candidate address based on the second identity information fed back by each candidate address for the second test data stream. In other words, it determines the "device" to which each candidate address corresponds to which the stream is streamed.
[0093] Accordingly, after determining the second streaming destinations, if the second streaming destinations include the target second streaming destination of the target device indicated by the target application, the execution subject may choose to continue executing step 406 in response thereto.
[0094] Step 406: The candidate address corresponding to the target second streaming destination is used as the target address; Specifically, if the target second streaming destination exists, the execution entity may use the candidate address corresponding to the target second streaming destination, that is, the candidate address that can stream to the target second streaming destination, as the target address.
[0095] As a result, the "testing" method has better efficiency and computing resource usage. The execution entity uses "testing" to determine the (candidate) DNS information that can be used and can resolve the correct target address from at least two candidate DNS information.
[0096] Step 407: Direct the stream data to be pushed uploaded by the target application to the target address, and use the stream pushing component of the target address to push the stream data to the target device indicated by the target application.
[0097] The implementation process of this step is similar to step 203 discussed above. For the same content, please refer to the corresponding part of the previous embodiment and will not be repeated here.
[0098] In some optional implementations of this embodiment, process 400 may further include step 408. Step 408 may be executed by the execution subject after step 403 if there is no domain name system information selection rule and the number of candidate DNS information determined in step 402 is greater than the aforementioned number threshold.
[0099] That is, if there is no domain name system information selection rule, and the number of candidate DNS information determined in step 402 is greater than the above threshold, the execution entity may choose to execute step 408 instead of step 404 in response thereto.
[0100] Step 408: Based on the network identity identification instruction, read the domain name system information recorded in the target network identity to determine the target address.
[0101] Specifically, as discussed above, if using a network identity identification instruction to read the domain name system information recorded by the target network identity to find and determine the target address may be more efficient and use less computing resources, the execution entity may choose to determine the target address in this manner. The process of determining the target address in this manner is similar to step 202 discussed above. For the same content, please refer to the corresponding part of the previous embodiment and will not be repeated here.
[0102] Then, after completing step 408, the execution subject can jump to step 407 to use the "target address" to complete subsequent steps and actions, which will not be repeated here.
[0103] In some optional implementations of this embodiment, regardless of whether the execution entity uses testing or reads the domain name system information recorded by the target network identity based on network identity identification instructions to find and determine the target address, the execution entity can add the target address to the global domain name system configuration file and maintain domain name system information selection rules for the target application based on the correspondence between the target address and the target device.
[0104] As a result, the domain name system information selection rules found and determined this time can be directly used to find and determine the target address for the target application, thereby improving the overall target address query and matching efficiency.
[0105] To deepen understanding, this disclosure also provides a specific implementation solution in combination with a specific application scenario. For this, please refer to Figure 5 . Figure 5 A flowchart of a process for streaming data implemented in an application scenario provided by an embodiment of the present disclosure includes process 500 .
[0106] For easier understanding, you can also combine Figure 1 The exemplary system architecture 100 is shown, and the process 500 is discussed together. For example, the process 500 may be performed by a server 105 as a "cloud server" that loads a target application, such as a (cloud) gaming application. The server 105 can generate to-be-pushed streaming data 515 by executing a target application 510 (for example, the target application 510 may be a "cloud gaming application" that provides a running container for the "gaming application" and transmits the game content generated by the "gaming application" to the user), and ultimately push the to-be-pushed streaming data 515 to, for example, a terminal device 101 used by the user.
[0107] In process 500, as discussed above, the configuration execution subject may be selected to consider that the target application 510 has issued a "data streaming request" to it after the target application 510 generates and produces the data to be streamed (eg, game screen, etc.).
[0108] For example, in process 500, if the target application 510 executes S501 to generate the streaming data 515 to be pushed, the server 105 can "think" that the target application 510 "issued a data streaming request", and the server 105 can respond to this and execute S502 to detect whether the global domain name system configuration file 520 is maintained.
[0109] Next, if the server 105 does not detect and maintain a global DNS configuration file, the server 105 may choose to execute S503 , read the DNS information recorded in the target network identity based on the network identity identification instruction, and determine the target address 530 .
[0110] If the server 105 detects that a global DNS configuration file (eg, the global DNS configuration file 520 ) is maintained, the server 105 may choose to execute S504 to determine the target address 530 based on the global DNS configuration file 520 .
[0111] Accordingly, after obtaining the target address 530 , the server 105 may continue to execute S505 to direct the to-be-pushed stream data 515 to the target address 530 , and finally push the to-be-pushed stream data to the terminal device 101 using the stream pushing component of the target address 530 .
[0112] In this way, the purpose of providing the content generated by the target application 510 to the terminal device 101 used by the user is achieved.
[0113] Further references Figure 6 As an implementation of the methods shown in the above figures, the present disclosure provides an embodiment of a device for streaming data. Figure 2Corresponding to the method embodiment shown, the device can be specifically applied to various electronic devices.
[0114] like Figure 6 As shown, the apparatus 600 for streaming data in this embodiment may include: a configuration file detection unit 601, a first target address determination unit 602, and a data streaming unit 603. The configuration file detection unit 601 is configured to detect whether a global domain name system configuration file is maintained in response to receiving a data streaming request from a target application; the first target address determination unit 602 is configured to read the domain name system information recorded in the target network identity based on the network identity identification instruction in response to the absence of a global domain name system configuration file, and determine the target address; the data streaming unit 603 is configured to direct the streaming data to be pushed uploaded by the target application to the target address, and use the streaming component of the target address to push the streaming data to the target device indicated by the target application.
[0115] In this embodiment, in the apparatus for streaming data 600, the specific processing of the configuration file detection unit 601, the first target address determination unit 602 and the data streaming unit 603 and the technical effects thereof can be referred to in the respective Figure 2 The relevant descriptions of steps 201-203 in the corresponding embodiment are not repeated here.
[0116] In some optional implementations of this embodiment, the device 600 also includes: a candidate domain name system information quantity detection unit, configured to read the quantity of candidate domain name system information included in the global domain name system configuration file in response to the existence of the global domain name system configuration file; a second target address determination unit, configured to determine the target address based on the candidate domain name system information in response to the quantity of candidate domain name system information being 1.
[0117] In some optional implementations of this embodiment, the data push stream unit 603 includes: a test data stream sending subunit, configured to send a first test data stream to a target address; a push stream destination determination subunit, configured to determine a first push stream destination corresponding to the target address based on the first identity information fed back for the first test data stream; a data push stream subunit, configured to direct the to-be-pushed stream data uploaded by the target application to the target address in response to the first push stream destination being the target device indicated by the target application, and use the push stream component of the target address to push the to-be-pushed stream data to the target device indicated by the target application.
[0118] In some optional implementations of this embodiment, the device 600 also includes: a third target address determination unit, which is configured to read the domain name system information recorded in the target network identity based on the network identity identification instruction in response to the first streaming destination not being the target device indicated by the target application, and re-determine the target address.
[0119] In some optional implementations of this embodiment, the device 600 also includes: a selection rule detection unit, configured to detect whether a domain name system information selection rule is maintained for the target application in response to the number of candidate domain name system information being greater than 1; a target domain name system information determination unit, configured to determine the target domain name system information from the global domain name system configuration file based on the domain name system information selection rule in response to the domain name system information selection rule being maintained for the target application; and a fourth target address determination unit, configured to determine the target address based on the target domain name system information.
[0120] In some optional implementations of this embodiment, the device 600 also includes: a candidate address testing unit, configured to send a second test data stream to each candidate address corresponding to the candidate domain name system information in response to the fact that no domain name system information selection rule is maintained for the target application and the number of candidate domain name system information is less than or equal to a quantity threshold, wherein the quantity threshold is greater than 1; a streaming destination determination unit, configured to determine the second streaming destination corresponding to each candidate address based on the second identity information fed back for the second test data stream; a fifth target address determination unit, configured to use the candidate address corresponding to the target second streaming destination as the target address in response to the target second streaming destination being the target device indicated by the target application.
[0121] In some optional implementations of this embodiment, the device 600 also includes: a target address update unit, configured to, in response to the fact that no domain name system information selection rule is maintained for the target application and the number of candidate domain name system information is greater than a quantity threshold, read the domain name system information recorded in the target network identity based on the network identity identification instruction to determine the target address.
[0122] In some optional implementations of this embodiment, the apparatus 600 further includes: a domain name system information selection rule maintenance unit configured to:
[0123] This embodiment exists as an apparatus embodiment corresponding to the above-mentioned method embodiment. The apparatus for streaming data provided by this embodiment can reduce the configuration difficulty and modification restrictions of the domain name system, so that the streaming platform can complete the resolution of the domain name system more flexibly and with higher quality, thereby improving the streaming capability of the streaming platform.
[0124] According to an embodiment of the present disclosure, the present disclosure also provides an electronic device, a readable storage medium, and a computer program product.
[0125] Figure 6 A schematic block diagram of an example electronic device 600 that can be used to implement embodiments of the present disclosure is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital assistants, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are provided as examples only and are not intended to limit the implementation of the present disclosure described and / or claimed herein.
[0126] like Figure 7 As shown, device 700 includes a computing unit 701, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 702 or a computer program loaded from a storage unit 708 into a random access memory (RAM) 703. RAM 703 may also store various programs and data required for the operation of device 700. Computing unit 701, ROM 702, and RAM 703 are connected to each other via a bus 704. An input / output (I / O) interface 705 is also connected to bus 704.
[0127] Various components in device 700 are connected to I / O interface 705, including an input unit 706, such as a keyboard, mouse, etc.; an output unit 707, such as various types of displays, speakers, etc.; a storage unit 708, such as a magnetic disk, optical disk, etc.; and a communication unit 709, such as a network card, modem, wireless communication transceiver, etc. The communication unit 709 allows device 700 to exchange information / data with other devices via a computer network such as the Internet and / or various telecommunication networks.
[0128] The computing unit 701 can be any general-purpose and / or specialized processing component with processing and computing capabilities. Some examples of the computing unit 701 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various specialized artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 701 performs the various methods and processes described above, such as the method for streaming data. For example, in some embodiments, the method for streaming data can be implemented as a computer software program tangibly embodied in a machine-readable medium, such as the storage unit 708. In some embodiments, part or all of the computer program can be loaded and / or installed onto the device 700 via the ROM 702 and / or the communication unit 709. When the computer program is loaded into the RAM 703 and executed by the computing unit 701, one or more steps of the method for streaming data described above can be performed. Alternatively, in other embodiments, the computing unit 701 can be configured to perform the method for streaming data through any other suitable means (e.g., via firmware).
[0129] Various embodiments of the systems and techniques described above can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), system-on-chip systems (SOCs), programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments can include being implemented in one or more computer programs that are executable and / or interpreted on a programmable system that includes at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.
[0130] The program code for implementing the method of the present disclosure can be written in any combination of one or more programming languages. These program codes can be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing device so that when the program code is executed by the processor or controller, the functions / operations specified in the flow chart and / or block diagram are implemented. The program code can be executed entirely on the machine, partially on the machine, as a stand-alone software package, partially on the machine and partially on a remote machine, or entirely on a remote machine or server.
[0131] In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of machine-readable storage media may include an electrical connection based on one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), optical fibers, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0132] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, voice input, or tactile input).
[0133] The systems and techniques described herein can be implemented in a computing system that includes back-end components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes front-end components (e.g., a user computer with a graphical user interface or a web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such back-end components, middleware components, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the Internet.
[0134] A computer system may include clients and servers. The clients and servers are typically remote from each other and typically interact via a communication network. This client-server relationship arises through computer programs running on the respective computers, creating a client-server relationship. The server may be a cloud server, also known as a cloud computing server or cloud host. This server is a host product within the cloud computing service ecosystem that addresses the management difficulties and limited scalability of traditional physical hosts and virtual private server (VPS) services. Servers can also be classified as distributed system servers or servers integrated with blockchain.
[0135] According to the technical solution of the embodiment of the present disclosure, first, in response to receiving a data push stream request from a target application, it is detected whether a global domain name system configuration file is maintained; then, in response to the absence of a global domain name system configuration file, based on the network identity identification instruction, the domain name system information recorded in the target network identity is read to determine the target address; finally, the data to be pushed uploaded by the target application is directed to the target address, and the push stream component of the target address is used to push the data to be pushed to the target device indicated by the target application. In this way, the configuration difficulty and modification restrictions of the domain name system can be reduced, so that the push stream platform can complete the resolution of the domain name system more flexibly and with higher quality, thereby improving the push stream capability of the push stream platform.
[0136] It should be understood that the various forms of processes shown above can be used to reorder, add, or delete steps. For example, the steps described in this disclosure can be performed in parallel, sequentially, or in a different order, as long as the desired results of the technical solutions provided by this disclosure can be achieved. This is not limited herein.
[0137] The above specific embodiments do not constitute a limitation on the scope of protection of this disclosure. Those skilled in the art will appreciate that various modifications, combinations, sub-combinations, and substitutions may be made based on design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this disclosure shall be included within the scope of protection of this disclosure.
Claims
1. A method for streaming data, comprising: In response to receiving a data streaming request from a target application, detecting whether a global domain name system configuration file is maintained; In response to the absence of the global domain name system configuration file, based on the network identity identification instruction, reading the domain name system information recorded by the target network identity to determine the target address; The stream data to be pushed uploaded by the target application is directed to the target address, and the stream pushing component of the target address is used to push the stream data to the target device indicated by the target application.
2. The method according to claim 1, further comprising: In response to the existence of the global domain name system configuration file, reading the number of candidate domain name system information included in the global domain name system configuration file; In response to the number of the candidate domain name system information being 1, the target address is determined based on the candidate domain name system information.
3. The method according to claim 2, wherein: Directing the to-be-pushed stream data uploaded by the target application to the target address, and using the stream pushing component of the target address to push the to-be-pushed stream data to the target device indicated by the target application, includes: Sending a first test data stream to the target address; Determining a first streaming destination corresponding to the target address based on the first identity information fed back for the first test data stream; In response to the first streaming destination being the target device indicated by the target application, the streaming data to be pushed uploaded by the target application is directed to the target address, and the streaming component of the target address is used to push the streaming data to the target device indicated by the target application.
4. The method according to claim 3, further comprising: In response to the first streaming destination not being the target device indicated by the target application, the domain name system information recorded in the target network identity is read based on the network identity identification instruction, and the target address is re-determined.
5. The method according to claim 2, further comprising: In response to the number of the candidate DNS information being greater than 1, detecting whether a DNS information selection rule is maintained for the target application; In response to maintaining the domain name system information selection rule for the target application, determining target domain name system information from the global domain name system configuration file based on the domain name system information selection rule; The target address is determined based on the target domain name system information.
6. The method according to claim 5, further comprising: In response to the DNS information selection rule not being maintained for the target application, and the number of the candidate DNS information being less than or equal to a number threshold, sending a second test data stream to each candidate address corresponding to each candidate DNS information, wherein the number threshold is greater than 1; Determining, based on the second identity information fed back regarding the second test data stream, that each candidate address corresponds to a second streaming destination; In response to the target second streaming destination being the target device indicated by the target application, a candidate address corresponding to the target second streaming destination is used as the target address.
7. The method according to claim 6, further comprising: In response to the fact that the domain name system information selection rule is not maintained for the target application and the number of the candidate domain name system information is greater than the number threshold, based on the network identity identification instruction, the domain name system information recorded in the target network identity is read to determine the target address.
8. The method according to claim 6 or 7, further comprising: The target address is added to the global domain name system configuration file, and based on the correspondence between the target address and the target device, the domain name system information selection rule is maintained for the target application.
9. A device for streaming data, comprising: a configuration file detection unit configured to detect whether a global domain name system configuration file is maintained in response to receiving a data streaming request from a target application; a first target address determining unit configured to, in response to the absence of the global domain name system configuration file, read the domain name system information recorded by the target network identity based on the network identity identification instruction to determine the target address; The data streaming unit is configured to direct the streaming data to be pushed uploaded by the target application to the target address, and use the streaming component of the target address to push the streaming data to the target device indicated by the target application.
10. An electronic device comprising: at least one processor; as well as a memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute the method for streaming data according to any one of claims 1 to 8.
11. A non-transitory computer-readable storage medium storing computer instructions, wherein the computer instructions are used to cause the computer to execute the method for streaming data according to any one of claims 1 to 8.
12. A computer program product, comprising a computer program, wherein when executed by a processor, the computer program implements the method for streaming data according to any one of claims 1 to 8.