Method for streaming and reproducing applications via a particular telecommunications system, telecommunications network for carrying out the method, and use of a telecommunications network of this type
11533532 · 2022-12-20
Inventors
Cpc classification
H04N21/23424
ELECTRICITY
H04N21/4351
ELECTRICITY
H04N21/2387
ELECTRICITY
H04N21/4384
ELECTRICITY
International classification
H04N21/442
ELECTRICITY
H04N21/647
ELECTRICITY
H04N21/435
ELECTRICITY
H04N21/438
ELECTRICITY
H04N21/234
ELECTRICITY
H04N21/235
ELECTRICITY
H04N21/2387
ELECTRICITY
H04N21/6375
ELECTRICITY
H04N21/63
ELECTRICITY
Abstract
The invention relates to a method for streaming and reproducing applications (apps) via a particular telecommunications system. The invention also relates to a telecommunications network. The invention further relates to the use of a telecommunications network of this type for streaming and reproducing applications (apps) via a particular telecommunications system. The invention furthermore relates to an application which makes it possible to configure the download, installation and updating of data on a terminal such that the whole application is fully executable on the terminal while downloading, installing and updating takes place on the terminal.
Claims
1. A method for streaming and reproducing an application via a telecommunications system, the method comprising: executing the application by at least one streaming server on the at least one streaming server, wherein the at least one streaming server being communicatively connected to a terminal via a connection, the connection being characterized by at least one parameter selected from the group consisting of a number of hops, latency, and bandwidth; wherein the terminal is configured to retrieve the application from the at least one streaming server, wherein the at least one streaming server is configured to provide processing power for setting up a video stream on the terminal and for encoding of the application for reproducing the application on a non-native environment for the application on the terminal; performing, by the at least one streaming server, a transmission of the application from the at least one server to the terminal; decoding, by the terminal, packet-based data representative of the application; recording an input to the application at the terminal in response to the packet-based data being decoded by the terminal; transmitting, by the terminal, the input to the at least one streaming server; registering the input at the at least one streaming server, the input being configured to alter an execution of the application at the at least one streaming server; invoking, at the terminal, a recovery process in response to packet loss having occurred during the transmission to the terminal, the recovery process including: selecting a recovery strategy; sending a request to the at least one streaming server to initialize the recovery strategy; and wherein a source code associated with the method being executed by the telecommunications system includes the following modules: a port asynchronization module including a submodule for sending a broadcast associated with an execution of the port asynchronization module; and a universal port mapper module including a plurality of submodules, the plurality of submodules including: a search submodule configured to search for external addresses and return one or more identifiers associated with any found external address; a router port submodule configured to open a port associated with devices having the one or more identifiers.
2. The method of claim 1, further including streaming the application on the terminal in real time while the application is being downloaded, installed, or updated and closing the stream when files for the application are made available in full on the terminal.
3. The method of claim 1, further including monitoring a streaming of the application via an additional telecommunication test device.
4. The method of claim 3, further including evaluating a quality of the streaming based on a test parameter selected from the group consisting of bandwidth, latency, hops, and packet loss.
5. The method of claim 1, wherein the at least one streaming server is connected to the terminal via a wireless area network (WAN).
6. The method of claim 1, further including effecting the transmission from the at least one streaming server to the terminal via a modified h.264 protocol.
7. The method of claim 1, wherein the method further includes playing back the application via streaming to the terminal independently of a downloading of the application on the terminal.
Description
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10) The client, as a thin client, is used for the transmission of audio/video signals and can typically be deployed on any platform. A streaming server 120 can be in a relationship of 1:n, however, a client can only receive the communication to a particular streaming server 120. Typically, the number of clients per streaming server is not limited by the software but by the corresponding hardware capacities of the GPU of the streaming server 120.
(11) Communication between the streaming server 120 and the client 110A is always initially established via the session management server 130. This performs the initial request of the client 110A to connect to the streaming server and searches for the optimal streaming server 120 for the client 110A. One system can have multiple streaming servers operating in parallel. They also do not always need to be in the same data center or country. After the assignment of a streaming server 120 by the session management server 130 for the client 110A, the streaming server 120 handles the direct communication with the client 110A.
(12) A further element is the content server 195. This server is responsible for the delivery of certain parts in the interactive layer of the client 110A. Among other things, this controls the display of advertising according to the application that is displayed on the thin client. The necessary information is provided to the content server 195 via the session management server 30.
(13) The communication takes place primarily via the Wide Area Network (WAN) 115. This includes various modes of transmission and is not limited to certain sections.
(14)
(15) The Port Authentication Module 230 handles the port authentication and corresponds to the provision of the connection between game stream server 120 and the client 110A. The Control Relay 240 is responsible for XXX. The task of the network relay 250 is to send off the corresponding packages and to manage incoming packets. The recovery module 260 is responsible for answering the corresponding recovery requests of the client 110A.
(16)
(17)
(18) Client Session Manager 410, communicates with the streaming server 120 and the session management server and is initially responsible for the authentication and management of the client.
(19) Network module 420 is responsible for configuring and maintaining the connection. This module also handles the sending and receiving of various packets.
(20) The Controller 430 handles the dispatch of the delivered frames and audio packets as a visual image in the client.
(21) Decode Render Video 440 and Decode Render Audio 450 receive the packets that were previously received from the network module 420 and were forwarded by the controller 430.
(22) The elevator module 460 is responsible for collecting statistical data and transmits this to the session management server. Accordingly, the session management server can also optimize the connection. This results in a feedback, which makes this module very important.
(23) The recovery module 470 evaluates incoming data packets. If a data packet turns out to have errors, the module selects a recovery strategy and, if necessary, requests a new packet from the streaming server or takes other measures to compensate for the loss, without suffering a loss in terms of latency or quality.
(24) The client UI includes the interactive layer and content of the content server 195. This is where the input of the user is captured and sent off to the streaming server 120.
(25)
(26) The Content Administration is used for presetting e.g. the advertising to be displayed within the interactive layer in the client 110. The Content Administration 510 is designed to specify both the frequency as well as the content.
(27) The Content Streaming module 520 handles the playback of the content and is used as a central interface for all clients.
(28)
(29) The application layer 610 reproduces the received frames and is responsible for the visual representation of the application.
(30) On top of the application layer 610 is located the UI layer 620. This layer can be configured individually, but in principle, it is definitively responsible for the input by the user in the client.
(31) In addition to the above-mentioned layers, there is the option to import content from the content server 195. This takes place in the area of the Content Layer 630.
(32)
(33) Once the decision is made, whether Blocking 730, Not Blocking 740, Intrarefresh 750 or Frame Validation 760 has been selected, the recovery request 770 is sent to the streaming server 120. The streaming server accordingly sends a new packet and the task of the recovery module 470 has been completed.
(34)
(35) During the streaming process, a connecting device 900 designed as a connection tester first tests the software to be loaded of the application for the relevant streaming client, for example 110A, while at the same time, in parallel with this, in our case a game is in progress via a gaming install-process. It can also, of course, be a different application. A download device designed as a downloader 1000 downloads the software onto the terminal device, while an installation device 2000 designed as an installer performs the installation at the same time, and an updating device designed as an updater 3000 always ensures that the latest data is available, thus performs a constant update process.
(36) The device apparent from
(37) The telecommunications element 800 thus allows two separate processes, namely the streaming process and the user install process, for example a gaming install process.
(38) The streaming process in the telecommunications element 800 consists of two modules:
(39) Connection tester: responsible for the testing of the connection on the basis of three criteria: Latency, bandwidth and network. In case the connection does not meet the requirements, the streaming client is not started. The threshold values for the three criteria can be flexibly adjusted and tailored to the application.
(40) Streaming client: If the connection tester proves successful, then the streaming client will be started.
(41) By using the streaming technology this streams the application directly into a local window of the terminal, for example into the PC window of a player.
(42) During installation this process handles a plurality of tasks and processes them sequentially. This process is responsible for putting the application locally into an executable state, while it is being streamed. All steps are performed in the background of the system and do not require any input by the player. The streaming process performs the following steps:
(43) Download: The application is downloaded onto the local computer in parallel with the stream.
(44) Installation: The process installs the application in the background. Any required third-party software is also installed.
(45) Updating: The application is updated.
(46) Once these steps are completed, the user can run the application locally after restarting the telecommunications element 800.
(47) The features of the invention disclosed in the description, the claims and those which are apparent from the drawings can be essential to the implementation of the invention both individually and in any desired combinations.
Explanation of Terms
(48) TABLE-US-00002 Application Layer Anwendungsebene Applications-Code Anwendungscode buffering Pufferung Client Ein Client (deutsch “Kunde”, auch clientseitige Anwendung oder Clientanwendung) bezeichnet A client (German “Kunde”, also client-side application or client application) refers to a computer program, which is executed on a terminal of a network and communicates with a central server. Client UI Module Client Benutzeroberfläche Modul Client-Application Client-Anwendung Client-Session Client-Sitzung Cloud Complex of multiple servers in the Internet codec coder-decoder Content Layers Inhaltsebene Content Servers Inhalt-Server Content Streaming Inhalt Streaming Controller Regler Controller Module Regler-Modul decode thread decoding application Decoder-Render Dekodierungs-Ausfuhrer Evaluator evaluation unit Evaluator Modul Evaluierungsmodul Frame validation Frame Überprüfer interactive layer Interaktiv-Ebene Intrarefresh internal refresh/updating Loadbalancing Lastenverteilung Network Module Netzwerk-Modul Not Blocking Nicht-Blockieren Overlay Überlagerung packaging Paketierung Recovery Module Wiederherstellungs-Modul Recovery Strategies Wiederherstellungs-Strategie Render Thread is responsible for the rendering [display] of the application. Scripting script language session handler Sitzungs-Manager shared library Geteilte Bibliotheken Streaming Streaming Streaming-Server Streaming-Server Streaming-Technology Streaming-Technologie Timestamping Describes the allocation of a piece of data to a data packet UDP User Datagram Protocol UI Layer Benutzeroberfläche-Ebene WAN Wide Area Network Web-Apps Web-Applikationen Webcontent Management Web-Inhalt Management
LIST OF CITATIONS
(49) WO 2009/073830 A1 WO 2010/141522 A1 WO 2012/037170 A1 US 2014/0073428 A1 WO 2009/073830 A1 WO 2010/141522 A1 US 2015/018094 A1 WO 2014/186858 A1 Anonymous: “Cloudgaming—Wikipedia, the free encyclopedia”, 24. Jun. 2015 (2015-06-24), XP055268633, found on internet: URL:https://en.wikipedia.orq/w/index.php?title=Cloudqam inq&oldid=668477716 [accessed on 2016-04-26] Section “Types”, 2nd paragraph; page 1