A cloud game server architecture and operation method thereof

By designing a cloud game server architecture that includes service management modules and multiple GPU servers, the problem that gamers cannot freely choose GPU server configuration is solved, and more stable and flexible game operation is achieved.

CN119406053BActive Publication Date: 2025-03-14PALI (FOSHAN) TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510018715.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-01-07
Publication Date
2025-03-14
Estimated Expiration
2045-01-07

AI Technical Summary

Technical Problem

Existing cloud game providers can only choose a single cloud service provider, and gamers cannot freely choose GPU server configurations provided by different cloud service providers.

Method used

Design a cloud gaming server architecture, including a cloud gaming client, a service management module and multiple GPU servers. The service management module selects the appropriate GPU server based on the configuration information of the game player, and realizes the operation of the game and the mapping of resources through components such as the EC2 management module, the Nginx proxy service module and the turn service module.

Benefits of technology

It enables gamers to freely choose GPU server configurations provided by different cloud service providers, improving the stability and flexibility of game operation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119406053B_ABST
    Figure CN119406053B_ABST
Patent Text Reader

Abstract

The present invention discloses a server architecture of a cloud game and an operation method thereof, and relates to the technical field of cloud games. The server architecture includes a cloud game client, a service management module, and several GPU servers connected in sequence. The GPU server includes an EC2 management module, an Nginx proxy service module, and a signal module. The service management module is used to establish a turn service module and a high-order port. The cloud game client is used to receive the account login information of the game player and the configuration information of the required GPU server, and send it to the service management module. The service management module is used to receive the information sent by the cloud game client, and select the corresponding GPU server according to the configuration information of the GPU server, and establish a connection with the corresponding GPU server at the same time. The present invention can select GPU servers across cloud service providers, so that game players have more choices.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of cloud gaming technology, and in particular to a cloud gaming server architecture and an operating method thereof. Background Art

[0002] With the development of the game industry, games on various hardware platforms emerge in an endless stream. Due to configuration reasons, the hardware devices of some individual users cannot be well adapted to the games they want to play. At this time, the concept of cloud gaming came into being. Cloud gaming enables multiple users to use commonly used smart terminal devices, connect through the network, and run different types of games on the operator's cloud server.

[0003] In the prior art, cloud game providers select a single cloud service provider to provide cloud game services, and game players can only choose the GPU server configuration that the cloud service provider has specified. The GPU server configurations provided by different cloud service providers may vary, but game players cannot choose other cloud service providers to run games.

[0004] How to allow game players to freely choose GPU servers with different configurations provided by different cloud service providers is a problem to be solved by the present invention. Summary of the invention

[0005] In order to solve one of the above-mentioned technical problems, the present invention provides a cloud gaming server architecture and an operation method thereof, so that game players can obtain the optimal GPU server and play the game more stably.

[0006] To solve the above technical problems, the present invention provides the following technical solutions: a cloud game server architecture, comprising a cloud game client, a service management module and several GPU servers connected in sequence, wherein the GPU server comprises an EC2 management module, an Nginx proxy service module and a signal module; the GPU server stores a cloud game program;

[0007] The cloud game client is used to receive the game player's account login information and the required GPU server configuration information, and send the information to the service management module;

[0008] The service management module is used to receive information sent by the cloud game client, select a corresponding GPU server according to the configuration information of the GPU server, establish a connection with the corresponding GPU server, and publish the image ID of the GPU server to the EC2 management module;

[0009] The EC2 management module is used to start the GPU server according to the image ID of the GPU server, and on the GPU server, establish a cloud gaming service according to the image ID of the GPU server, start the Nginx proxy service module, and establish a front-end page service and ice service configuration;

[0010] The cloud gaming service is used to send the public IP of the GPU server to the EC2 management module;

[0011] The EC2 management module is also used to forward the public IP of the received GPU server to the service management module;

[0012] The service management module is also used to establish a turn service module and a high-level port;

[0013] The service management module is also used to map the operating port of the cloud game client to a high-order port, so as to access the cloud game client through the public IP of the GPU server, and then bind the cloud game client to the GPU server;

[0014] The GPU server is also used to receive control instructions from the cloud game program and send the control instructions to the turn service module;

[0015] The turn service module is used to forward the control instructions to the cloud game program;

[0016] The signal module is used to shake hands with the front-end page service and send the game pixel stream to the front-end page service, and the front-end page service forwards the game pixel stream to the Nginx proxy service module;

[0017] The Nginx proxy service module is used to send the pixel stream to the cloud game client;

[0018] The service management module is also used to store the game player's game progress information when the game player exits the game.

[0019] Another object of the present invention is to provide a method for operating a server architecture of a cloud game, which is operated on the above-mentioned server architecture of a cloud game and includes the following steps:

[0020] Step S1: The cloud game client receives the game player's account login information and the required GPU server configuration information, and sends the account login information and the GPU server configuration information to the service management module;

[0021] Step S2: the service management module searches for a GPU server that is adapted to the GPU server configuration information among the GPU servers managed by the service management module according to the GPU server configuration information, and establishes a connection with the adapted GPU server;

[0022] The GPU servers managed by the service management module include GPU servers with different configurations provided by different cloud service providers;

[0023] Step S3: The service management module publishes the image ID of the GPU server to the EC2 management module;

[0024] Step S4, the EC2 management module starts the GPU server according to the image ID of the GPU server;

[0025] Step S5: On the GPU server, the EC2 management module establishes a cloud gaming service according to the image ID of the GPU server;

[0026] Step S6: The cloud gaming service sends the public IP of the GPU server to the EC2 management module; after receiving the public IP of the GPU server, the EC2 management module forwards it to the service management module;

[0027] When a game player accesses the GPU server through the public IP of the GPU server, the service management module maps the running port of the cloud game client to a high-order port, accesses the cloud game client through the public IP of the GPU server, and then binds the cloud game client to the GPU server;

[0028] The service management module sends the stored game player's game progress information to the cloud game client; the cloud game client starts the game according to the game progress information, and the game player enters the game preparation state;

[0029] Step S7, after the EC2 management module establishes the cloud gaming service according to the image ID of the GPU server, it starts the Nginx proxy service module and establishes the front-end page service and ice service configuration;

[0030] Step S8: When the front-end page service has been established and the ice service configuration has changed, establish a turn service module;

[0031] Step S9, running the turn service module, running the cloud game program and the signal module;

[0032] Step S10: After the game player enters the game preparation state, the game player controls the cloud game program according to the game script, and the GPU server continuously receives the control instructions of the cloud game program and sends the control instructions to the turn service module; the turn service module forwards the control instructions to the cloud game program;

[0033] Step S11, the signal module continuously performs handshake connection with the front-end page service, and sends the game pixel stream to the front-end page service, and the front-end page service forwards the game pixel stream to the Nginx proxy service module;

[0034] At the same time, the signal module continuously conducts handshake connections with the cloud game client, and the Nginx proxy service module sends the pixel stream to the cloud game client;

[0035] Step S12: When the game player exits the game, the service management module stores the game player's game progress information.

[0036] Furthermore, the step S11 further includes: during the operation of the cloud game program, the service management module sends a detection signal to the GPU server every 5 seconds. If the GPU server receives the detection signal normally, there is no need to change the GPU server; if the GPU server does not receive the detection signal, it is determined that the GPU server is disconnected, and at this time the service management module continuously sends the detection signal to the GPU server several times;

[0037] If the GPU server does not receive the detection signal once, the service management module continuously sends the detection signal to the GPU server within 3 minutes. If the GPU server receives the detection signal within 3 minutes, there is no need to change the GPU server; if the GPU server does not receive the detection signal within 3 minutes, the cloud service provider is notified that the GPU server needs to be replaced, and the process returns to step S2;

[0038] If the GPU server receives the detection signal at least once, the service management module continuously sends the detection signal to the GPU server within 30 seconds. If the GPU server receives the detection signal within 30 seconds, there is no need to change the GPU server; if the GPU server does not receive the detection signal within 30 seconds, the cloud service provider is notified that the GPU server needs to be restarted; if the restart of the GPU server exceeds 3 minutes, the cloud service provider is notified that the GPU server needs to be replaced and the process returns to step S2.

[0039] Furthermore, the step S2 is specifically as follows:

[0040] Step S21: The service management module receives the account information of the game player, and determines the user type of the game player according to the account information of the game player;

[0041] The user types include: cost-sensitive users, rigid-need users, enterprise users, large online gathering users, and single application users;

[0042] Step S22, the service management module traverses configuration information of all GPU servers connected to it, wherein the GPU server configuration information includes: GPU server surplus A, pricing method M, GPU model T, server location R, cloud service provider C and GPU server hourly price P;

[0043] The service management module calculates the service quality index value K of the game player based on the user type and GPU server configuration information. n ;

[0044] Step S23: In all K n Among the values, select the maximum K n value, according to the maximum K n The value corresponds to the determined pricing method M, GPU model T, server region R, cloud service provider C and GPU server hourly price P, and this is used as the optimal GPU server configuration information;

[0045] Step S24: The service management module allocates the corresponding GPU server to the game player based on the optimal GPU server configuration information.

[0046] Further, the service quality index value K of the game player is calculated n , the calculation formula is:

[0047] K n =[(X1*A m )+(X2*M s )+(X3*T d )+(X4*R g )+(X5*C j )] / (X6*P n );

[0048] Among them, X1, X2, X3, X4, X5 and X6 are weight coefficients, which need to be assigned according to the user type; A m =A1, A2, A3. When the service management module finds that the GPU server surplus that can be provided by a single cloud service provider C is less than or equal to 20, A1 is set to 1 / 3. When the GPU server surplus that can be provided by a single cloud service provider C is greater than 20 and less than 60, A2 is set to 2 / 3. When the GPU server surplus that can be provided by a single cloud service provider C is greater than or equal to 60, A3 is set to 1.

[0049] That is M s =M1, M2, that is, the pricing method M includes preemptible instance M1 and pay-as-you-go M2. Assign values ​​to M1 and M2: M1=1, M2=2 / 3;

[0050] T d For one or more of T1, T2, and T3, that is, the GPU model T includes one or more of T4 model T1, A10 model T2, and V100 model T3, T1, T2, and T3 are assigned values, T1=1, T2=2 / 3, and T3=1 / 3;

[0051] R gis one or more of R1, R2, and R3, that is, the region R where the server is located includes one or more of the first region R1, the second region R2, and the third region R3, and R1, R2, and R3 are assigned values, R1=1, R2=2 / 3, and R3=1 / 3;

[0052] C j is one or more of C1, C2, and C3, that is, the cloud service provider C includes one or more of the first cloud service provider C1, the second cloud service provider C2, and the third cloud service provider C3, and C1, C2, and C3 are assigned values, C1=1, C2=2 / 3, and C3=1 / 3;

[0053] In K n and P n In, K n The number of is determined by the pricing method M, the GPU model T, the server region R, and the number of cloud service providers C. That is, the value of n is the number of pricing methods M * the number of GPU models T * the number of server regions R * the number of cloud service providers C. After the service management module determines a single pricing method M, a single GPU model T, a single server region R, and a single cloud service provider C, the service management module can scan and obtain the corresponding GPU server surplus A. According to the GPU server surplus A, A can be obtained. m In addition, after a single pricing method M, a single GPU model T, a single server location R, and a single cloud service provider C are determined, the hourly price P of the GPU server provided by the single cloud service provider C is also uniquely determined;

[0054] The service management module calculates all K according to all the pricing methods M, GPU models T, server regions R and cloud service providers C. n value;

[0055] In calculating all K n Before setting the value, assign values ​​to X1, X2, X3, X4, X5 and X6 according to the user type, as follows:

[0056] When a user is classified as a cost-sensitive user, X1 is set to 10, X2 is set to 10, X3 is set to 10, X4 is set to 10, X5 is set to 10, and X6 is set to 50, that is, K n =[(10*A m )+(10*M s )+(10*T d )+(10*R g )+(10*C j )] / (50*P n );

[0057] When the user is classified as a rigid demand user, X1 is set to 10, X2 is set to 10, X3 is set to 10, X4 is set to 50, X5 is set to 10, and X6 is set to 10, that is, K n =[(10*A m )+(10*M s )+(10*T d )+(50*R g )+(10*C j )] / (10*P n );

[0058] When a user is classified as an enterprise user, X1 is set to 10, X2 is set to 10, X3 is set to 20, X4 is set to 30, X5 is set to 10, and X6 is set to 10, that is, K n =[(10*A m )+(10*M s )+(20*T d )+(30*R g )+(10*C j )] / (10*P n );

[0059] When the user is classified as a large online gathering user, X1 is set to 40, X2 is set to 10, X3 is set to 15, X4 is set to 15, X5 is set to 10, and X6 is set to 10, that is, K n =[(40*A m )+(10*M s )+(15*T d )+(15*R g )+(10*C j )] / (10*P n );

[0060] When the user is classified as a single application user, X1 is set to 10, X2 is set to 10, X3 is set to 30, X4 is set to 10, X5 is set to 10, and X6 is set to 30, that is, K n =[(10*A m )+(10*M s )+(30*T d )+(10*R g )+(10*C j )] / (30*P n ).

[0061] After adopting the above technical scheme, the present invention has at least the following beneficial effects: the present invention can select GPU servers across cloud service providers, so that game players have more choices; the present invention transmits information through the turn service module, and can flexibly convert information flows of different IP addresses. BRIEF DESCRIPTION OF THE DRAWINGS

[0062] Figure 1 This is a structural diagram of a cloud gaming server architecture according to the present invention. DETAILED DESCRIPTION

[0063] It should be noted that, in the absence of conflict, the embodiments in the present application and the features described in the embodiments may be combined with each other. The present application is further described in detail below in conjunction with the drawings and specific embodiments.

[0064] Embodiment 1, as Figure 1 As shown, this embodiment discloses a cloud game server architecture, including a cloud game client, a service management module and several GPU servers connected in sequence, the GPU server includes an EC2 management module, an Nginx proxy service module and a signal module, and the service management module is used to establish a turn service module and a high-order port.

[0065] The GPU servers are GPU servers with different configurations (e.g., different models of GPUs) provided by different cloud service providers (e.g., Alibaba Cloud, Tencent Cloud, JD Cloud, Huawei Cloud, etc.), and the same cloud game program is stored on each GPU server.

[0066] The cloud game client is used to receive the game player's account login information and the required GPU server configuration information, and send the information (the game player's account login information and the required GPU server configuration information) to the service management module;

[0067] The service management module is used to receive information sent by the cloud game client, select a corresponding GPU server according to the configuration information of the GPU server, and establish a connection with the corresponding GPU server.

[0068] Embodiment 2: This embodiment discloses a method for operating a server architecture of a cloud game, comprising the following steps:

[0069] Step S1: The cloud game client receives the game player's account login information and the required GPU server configuration information, and sends the account login information and the GPU server configuration information to the service management module;

[0070] Step S2: the service management module searches for a GPU server that is adapted to the GPU server configuration information among the GPU servers managed by the service management module according to the GPU server configuration information, and establishes a connection with the adapted GPU server;

[0071] The GPU servers managed by the service management module include GPU servers with different configurations (e.g., different models of GPUs) provided by different cloud service providers (e.g., Alibaba Cloud, Tencent Cloud, JD Cloud, Huawei Cloud, etc.);

[0072] Step S3: The service management module publishes the image ID of the GPU server to the EC2 management module;

[0073] Step S4, the EC2 management module starts the GPU server according to the image ID of the GPU server;

[0074] Step S5: On the GPU server, the EC2 management module establishes a cloud gaming service according to the image ID of the GPU server;

[0075] Step S6: The cloud gaming service sends the public IP of the GPU server to the EC2 management module; after receiving the public IP of the GPU server, the EC2 management module forwards it to the service management module;

[0076] When a game player accesses the GPU server through the public IP of the GPU server, the service management module maps the running port of the cloud game client to the high-order port, automatically achieving end-to-end access to the cloud game client, that is, accessing the cloud game client through the public IP of the GPU server, and then binding the cloud game client to the GPU server;

[0077] The service management module sends the game process information (as described in step S12) stored when the game player quit the game last time to the cloud game client; the cloud game client starts the game according to the game process information, and the game player enters the game preparation state;

[0078] Step S7, after the EC2 management module establishes the cloud gaming service according to the image ID of the GPU server, it starts the Nginx proxy service module and establishes the front-end page service and ice service configuration;

[0079] Step S8: When the front-end page service has been established and the ice service configuration has changed, establish a turn service module;

[0080] Step S9, running the turn service module, running the cloud game program and the signal module;

[0081] Step S10: After the game player enters the game preparation state, the game player controls the cloud game program according to the game script, and the GPU server continuously receives the control instructions of the cloud game program and sends the control instructions to the turn service module; the turn service module forwards the control instructions to the cloud game program;

[0082] Step S11, the signal module continuously performs handshake connection with the front-end page service, and sends the game pixel stream to the front-end page service, and the front-end page service forwards the game pixel stream to the Nginx proxy service module;

[0083] At the same time, the signal module continuously conducts handshake connections with the cloud game client, and the Nginx proxy service module sends the pixel stream to the cloud game client;

[0084] Step S12: When the game player exits the game, the service management module stores the game player's game progress information.

[0085] The step S11 further includes: during the operation of the cloud game program, the service management module sends a detection signal to the GPU server every 5 seconds. If the GPU server receives the detection signal normally, there is no need to change the GPU server; if the GPU server does not receive the detection signal, it is determined that the GPU server is disconnected, and the service management module continuously sends the detection signal to the GPU server several times.

[0086] If the GPU server does not receive the detection signal once, the service management module continuously sends the detection signal to the GPU server within 3 minutes. If the GPU server receives the detection signal within 3 minutes, there is no need to change the GPU server; if the GPU server does not receive the detection signal within 3 minutes, the cloud service provider is notified that the GPU server needs to be replaced, and the process returns to step S2;

[0087] If the GPU server receives the detection signal at least once, the service management module continuously sends the detection signal to the GPU server within 30 seconds. If the GPU server receives the detection signal within 30 seconds, there is no need to change the GPU server; if the GPU server does not receive the detection signal within 30 seconds, the cloud service provider is notified that the GPU server needs to be restarted; if the restart of the GPU server exceeds 3 minutes, the cloud service provider is notified that the GPU server needs to be replaced and the process returns to step S2.

[0088] Wherein, the step S2 is specifically as follows:

[0089] Step S21: The service management module receives the account information of the game player, and determines the user type of the game player according to the account information of the game player;

[0090] The user types include: cost-sensitive users, rigid-need users, enterprise users, large online gathering users, and single application users;

[0091] Step S22, the service management module traverses configuration information of all GPU servers connected to it, wherein the GPU server configuration information includes: GPU server surplus A, pricing method M, GPU model T, server location R, cloud service provider C and GPU server hourly price P;

[0092] The service management module calculates the service quality index value K of the game player based on the user type and GPU server configuration information. n , the calculation formula is:

[0093] K n =[(X1*A m )+(X2*M s )+(X3*T d )+(X4*R g )+(X5*C j )] / (X6*P n ); where X1, X2, X3, X4, X5 and X6 are weight coefficients, and these weights need to be set to specific values ​​according to the user type; in this embodiment, m=1, 2, 3, that is, A m =A1, A2, A3. When the service management module scans that the GPU server surplus that can be provided by a single cloud service provider C is less than or equal to 20 (the surplus is insufficient), A1 is set to 1 / 3. When the GPU server surplus scanned is greater than 20 and less than 60 (the surplus is normal), A2 is set to 2 / 3. When the GPU server surplus scanned is greater than or equal to 60 (the surplus is sufficient), A3 is set to 1. If the GPU server surplus scanned is 0, A=0, and there is no need to calculate the K value. This situation will basically not occur.

[0094] In this embodiment, it is preferred to set s=1, 2, that is, M s =M1, M2, that is, the pricing method M includes preemptible instance M1 and pay-as-you-go M2. Assign values ​​to M1 and M2: M1=1, M2=2 / 3;

[0095] This embodiment T d One or more of T1, T2, and T3, that is, the GPU model T includes one or more of T4 model T1, A10 model T2, and V100 model T3. T1, T2, and T3 are assigned values, T1=1, T2=2 / 3, and T3=1 / 3. If the service management module does not find the GPU model T configured in the cloud server system under the region R where one of the servers of a cloud service provider C is located, T=0, and there is no need to calculate the K value. This situation will basically not occur.

[0096] This embodiment R gis one or more of R1, R2, and R3, that is, the region R where the server is located includes one or more of the first region R1, the second region R2, and the third region R3, and R1, R2, and R3 are assigned values, R1=1, R2=2 / 3, and R3=1 / 3;

[0097] This embodiment C j is one or more of C1, C2, and C3, that is, the cloud service provider C includes one or more of the first cloud service provider C1, the second cloud service provider C2, and the third cloud service provider C3, and C1, C2, and C3 are assigned values, C1=1, C2=2 / 3, and C3=1 / 3;

[0098] In K n and P n In, K n The number of is determined by the pricing method M, the GPU model T, the server region R, and the number of cloud service providers C. That is, the value of n is the number of pricing methods M * the number of GPU models T * the number of server regions R * the number of cloud service providers C. After the service management module determines a single pricing method M, a single GPU model T, a single server region R, and a single cloud service provider C, the service management module can scan and obtain the corresponding GPU server surplus A. According to the GPU server surplus A, A can be obtained. m In addition, after a single pricing method M, a single GPU model T, a single server location R, and a single cloud service provider C are determined, the hourly price P of the GPU server provided by the single cloud service provider C is also uniquely determined;

[0099] The service management module calculates all K according to all the pricing methods M, GPU models T, server regions R and cloud service providers C. n value;

[0100] In calculating all K n Before setting the value, assign values ​​to X1, X2, X3, X4, X5 and X6 according to the user type, as follows:

[0101] When a user is classified as a cost-sensitive user, X1 is set to 10, X2 is set to 10, X3 is set to 10, X4 is set to 10, X5 is set to 10, and X6 is set to 50, that is, K n =[(10*A m )+(10*M s )+(10*T d )+(10*R g )+(10*C j )] / (50*P n );

[0102] When the user is classified as a rigid demand user, X1 is set to 10, X2 is set to 10, X3 is set to 10, X4 is set to 50, X5 is set to 10, and X6 is set to 10, that is, K n =[(10*A m )+(10*M s )+(10*T d )+(50*R g )+(10*C j )] / (10*P n );

[0103] When a user is classified as an enterprise user, X1 is set to 10, X2 is set to 10, X3 is set to 20, X4 is set to 30, X5 is set to 10, and X6 is set to 10, that is, K n =[(10*A m )+(10*M s )+(20*T d )+(30*R g )+(10*C j )] / (10*P n );

[0104] When the user is classified as a large online gathering user, X1 is set to 40, X2 is set to 10, X3 is set to 15, X4 is set to 15, X5 is set to 10, and X6 is set to 10, that is, K n =[(40*A m )+(10*M s )+(15*T d )+(15*R g )+(10*C j )] / (10*P n );

[0105] When the user is classified as a single application user, X1 is set to 10, X2 is set to 10, X3 is set to 30, X4 is set to 10, X5 is set to 10, and X6 is set to 30, that is, K n =[(10*A m )+(10*M s )+(30*T d )+(10*R g )+(10*C j )] / (30*P n );

[0106] Step S23: In all K n Among the values, select the maximum K n value, according to the maximum K nThe value corresponds to the determined pricing method M, GPU model T, server region R, cloud service provider C and GPU server hourly price P, and this is used as the optimal GPU server configuration information;

[0107] For example, if the user type is determined to be an enterprise user, then K n =[(10*A m )+(10*M s )+(20*T d )+(30*R g )+(10*C j )] / (10*P n ), A m =A1, A2, A3, M s =M1, M2 (preemptible instance M1 and pay-as-you-go instance M2), T d =T1, T2 (only two models are set, T4 model T1 and A10 model T2), R g =R1, R2 (in this example, the server region R is selected as the first region R1 and the second region R2), C j =C1, C2 (only two cloud service providers C are set, including the first cloud service provider C1 and the second cloud service provider C2, namely Alibaba Cloud C1 and AWS Cloud C2);

[0108] Assign values ​​at the same time: A1=1 / 3, A2=2 / 3, A3=1, M1=1, M2=2 / 3, T1=1, T2=2 / 3, R1=1, R2=2 / 3, C1=1, C2=2 / 3; n=2*2*2*2=16, that is, K n =K1, K2, K3, …, K 14 , K 15 , K 16 , P n =P1, P2, P3, …, P 14 , P 15 , P 16 ;

[0109] K1=[(10*A m )+(10*M1)+(20*T1)+(30*R1)+(10*C1)] / (10*P1). After the service management module determines the four conditions of preemptible instance M1, T4 model T1, first region R1, and Alibaba Cloud C1, it queries the corresponding GPU server surplus and GPU server hourly price P1. At this time, the service management module scans that the GPU server surplus is 32 (normal), so it assigns A m=A2=2 / 3, the service management module finds out that the hourly price of the GPU server is P1=3.25; therefore K1=[(10*2 / 3)+(10*1)+(20*1)+(30*1)+(10*1)] / (10*3.25)≈2.3590;

[0110] K2=[(10*A m )+(10*M2)+(20*T1)+(30*R1)+(10*C1)] / (10*P2). After the service management module determines the four conditions of pay-as-you-go M2, T4 model T1, first region R1, and Alibaba Cloud C1, it queries the corresponding GPU server surplus and GPU server hourly price P2. At this time, the service management module scans that the GPU server surplus is 74 (sufficient surplus), so it assigns A m =A3=1, the service management module finds out that the hourly price of the GPU server is P2=7.92; therefore K2=[(10*1)+(10*2 / 3)+(20*1)+(30*1)+(10*1)] / (10*7.92)≈0.9680;

[0111] K3=[(10*A m )+(10*M1)+(20*T2)+(30*R1)+(10*C1)] / (10*P3), the service management module checks the four conditions of preemptible instance M1, A10 model T2, first region R1, and Alibaba Cloud C1, and queries the corresponding GPU server surplus and GPU server hourly price P3. At this time, the service management module scans that the GPU server surplus is 27 (sufficient surplus), so it assigns A m =A2=2 / 3, the service management module finds out that the hourly price of the GPU server is P3=5.80; therefore K3=[(10*2 / 3)+(10*1)+(20*2 / 3)+(30*1)+(10*1)] / (10*5.80)≈1.2069;

[0112] By analogy, K4=[(10*A m )+(10*M1)+(20*T1)+(30*R2)+(10*C1)] / (10*P4)=[(10*2 / 3)+(10*1)+(20*1)+(30*2 / 3)+(10*1)] / (10*3.15)≈2.1164;

[0113] K5=[(10*A m)+(10*M1)+(20*T1)+(30*R1)+(10*C2)] / (10*P5)=[(10*1)+(10*1)+(20*1)+(30*1)+(10*2 / 3)] / (10*8.78)≈0.8732;

[0114] K6=[(10*A m )+(10*M1)+(20*T1)+(30*R1)+(10*C2)] / (10*P6)=[(10*1)+(10*2 / 3)+(20*2 / 3)+(30*1)+(10*1)] / (10*14.2)≈0.4930;

[0115] K7=[(10*A m )+(10*M2)+(20*T1)+(30*R2)+(10*C1)] / (10*P7)=[(10*1)+(10*2 / 3)+(20*1)+(30*2 / 3)+(10*1)] / (10*8.92)≈0.7474;

[0116] K8=[(10*A m )+(10*M2)+(20*T1)+(30*R1)+(10*C2)] / (10*P8)=[(10*1)+(10*2 / 3)+(20*1)+(30*1)+(10*2 / 3)] / (10*12.16)≈0.6031;

[0117] K9=[(10*A m )+(10*M1)+(20*T2)+(30*R1)+(10*C2)] / (10*P9)=[(10*1)+(10*1)+(20*2 / 3)+(30*1)+(10*2 / 3)] / (10*27.6)≈0.2415;

[0118] K 10 =[(10*A m )+(10*M1)+(20*T2)+(30*R1)+(10*C2)] / (10*P 10 )=[(10*2 / 3)+(10*1)+(20*2 / 3)+(30*2 / 3)+(10*1)] / (10*9.6)=0.625;

[0119] K 11 =[(10*A m )+(10*M1)+(20*T2)+(30*R1)+(10*C2)] / (10*P 11)=[(10*1)+(10*1)+(20*1)+(30*2 / 3)+(10*2 / 3)] / (10*11.62)≈0.5737;

[0120] K 12 =[(10*A m )+(10*M1)+(20*T2)+(30*R1)+(10*C2)] / (10*P 12 )=[(10*1)+(10*1)+(20*2 / 3)+(30*2 / 3)+(10*2 / 3)] / (10*26.4)≈0.2272;

[0121] K 13 =[(10*A m )+(10*M1)+(20*T2)+(30*R1)+(10*C2)] / (10*P 13 )=[(10*1)+(10*2 / 3)+(20*1)+(30*2 / 3)+(10*2 / 3)] / (10*13.16)≈0.4813;

[0122] K 14 =[(10*A m )+(10*M1)+(20*T2)+(30*R1)+(10*C2)] / (10*P 14 )=[(10*1)+(10*2 / 3)+(20*2 / 3)+(30*1)+(10*2 / 3)] / (10*32.6)≈0.2045;

[0123] K 15 =[(10*A m )+(10*M1)+(20*T2)+(30*R1)+(10*C2)] / (10*P 15 )=[(10*1)+(10*2 / 3)+(20*2 / 3)+(30*2 / 3)+(10*1)] / (10*15.6)≈0.3846;

[0124] K 16 =[(10*A m )+(10*M1)+(20*T2)+(30*R1)+(10*C2)] / (10*P 16 )=[(10*1)+(10*2 / 3)+(20*2 / 3)+(30*2 / 3)+(10*2 / 3)] / (10*36.7)≈0.1544;

[0125] Obviously, the above K1≈2.3590 is the largest, that is, the optimal GPU server configuration information allocated to the enterprise user is: preemptible instance M1, T4 model T1, first region R1 and Alibaba Cloud C1;

[0126] Step S24: The service management module allocates the corresponding GPU server to the game player based on the optimal GPU server configuration information.

[0127] This embodiment provides K for different user types. n The calculation of K n The corresponding GPU server configuration information is the optimal GPU server required by the user. This embodiment calculates the optimal GPU server configuration information according to different demand factors, which solves the existing problem that different regions, different GPU models, different cloud service providers and different pricing methods lead to a large difference in service quality at the same cost in different user scenarios. This embodiment does not simply pursue the lowest cost, but obtains the GPU server configuration list with the highest service quality within a given budget according to different user scenarios.

[0128] This embodiment can select GPU servers across cloud service providers, giving game players more choices; this embodiment transmits information through the turn service module, and can flexibly convert information flows of different IP addresses.

[0129] Although embodiments of the present invention have been shown and described, it will be appreciated by those skilled in the art that various equivalent changes, modifications, substitutions and variations may be made to the embodiments without departing from the principles and spirit of the present invention, and that the scope of the present invention is defined by the appended claims and their equivalents.

Claims

1. A cloud gaming server architecture, characterized in that: It includes a cloud game client, a service management module and several GPU servers connected in sequence, wherein the GPU server includes an EC2 management module, an Nginx proxy service module and a signal module; the GPU server stores the cloud game program; The cloud game client is used to receive the game player's account login information and the configuration information of the required GPU server, and send the information to the service management module; The service management module is used to receive information sent by the cloud game client, select a corresponding GPU server according to the configuration information of the GPU server, establish a connection with the corresponding GPU server, and publish the image ID of the GPU server to the EC2 management module; The EC2 management module is used to start the GPU server according to the image ID of the GPU server, and on the GPU server, establish a cloud gaming service according to the image ID of the GPU server, start the Nginx proxy service module, and establish a front-end page service and ice service configuration; The cloud gaming service is used to send the public IP of the GPU server to the EC2 management module; The EC2 management module is also used to forward the received public IP of the GPU server to the service management module; The service management module is also used to establish a turn service module and a high-level port; The service management module is also used to map the operating port of the cloud game client to a high-order port, so as to access the cloud game client through the public IP of the GPU server, and then bind the cloud game client to the GPU server; The GPU server is also used to receive control instructions from the cloud game program and send the control instructions to the turn service module; The turn service module is used to forward the control instructions to the cloud game program; The signal module is used to shake hands with the front-end page service and send the game pixel stream to the front-end page service, and the front-end page service forwards the game pixel stream to the Nginx proxy service module; The Nginx proxy service module is used to send the pixel stream to the cloud game client; The service management module is also used to store the game player's game progress information when the game player exits the game.

2. A method for operating a cloud game server architecture, operating on a cloud game server architecture as claimed in claim 1, characterized in that: The following steps are involved: Step S1: The cloud game client receives the game player's account login information and the required GPU server configuration information, and sends the account login information and the GPU server configuration information to the service management module; Step S2: the service management module searches for a GPU server that is adapted to the GPU server configuration information among the GPU servers managed by the service management module according to the GPU server configuration information, and establishes a connection with the adapted GPU server; The GPU servers managed by the service management module include GPU servers with different configurations provided by different cloud service providers; Step S3: The service management module publishes the image ID of the GPU server to the EC2 management module; Step S4, the EC2 management module starts the GPU server according to the image ID of the GPU server; Step S5: On the GPU server, the EC2 management module establishes a cloud gaming service according to the image ID of the GPU server; Step S6: The cloud gaming service sends the public IP of the GPU server to the EC2 management module; after receiving the public IP of the GPU server, the EC2 management module forwards it to the service management module; When a game player accesses the GPU server through the public IP of the GPU server, the service management module maps the running port of the cloud game client to a high-order port, accesses the cloud game client through the public IP of the GPU server, and then binds the cloud game client to the GPU server; The service management module sends the stored game player's game progress information to the cloud game client; the cloud game client starts the game according to the game progress information, and the game player enters the game preparation state; Step S7, after the EC2 management module establishes the cloud gaming service according to the image ID of the GPU server, it starts the Nginx proxy service module and establishes the front-end page service and ice service configuration; Step S8: When the front-end page service has been established and the ice service configuration has changed, establish a turn service module; Step S9, running the turn service module, running the cloud game program and the signal module; Step S10: After the game player enters the game preparation state, the game player controls the cloud game program according to the game script, and the GPU server continuously receives the control instructions of the cloud game program and sends the control instructions to the turn service module; the turn service module forwards the control instructions to the cloud game program; Step S11, the signal module continuously performs handshake connection with the front-end page service, and sends the game pixel stream to the front-end page service, and the front-end page service forwards the game pixel stream to the Nginx proxy service module; At the same time, the signal module continuously conducts handshake connections with the cloud game client, and the Nginx proxy service module sends the pixel stream to the cloud game client; Step S12: When the game player exits the game, the service management module stores the game player's game progress information.

3. The method for operating a cloud gaming server architecture according to claim 2, characterized in that: The step S11 further includes: during the operation of the cloud game program, the service management module sends a detection signal to the GPU server every 5 seconds. If the GPU server receives the detection signal normally, there is no need to change the GPU server; if the GPU server does not receive the detection signal, it is determined that the GPU server is disconnected, and the service management module continuously sends the detection signal to the GPU server several times. If the GPU server does not receive the detection signal once, the service management module continuously sends the detection signal to the GPU server within 3 minutes. If the GPU server receives the detection signal within 3 minutes, there is no need to change the GPU server; if the GPU server does not receive the detection signal within 3 minutes, the cloud service provider is notified to replace the GPU server, and the process returns to step S2; If the GPU server receives the detection signal at least once, the service management module continuously sends the detection signal to the GPU server within 30 seconds. If the GPU server receives the detection signal within 30 seconds, there is no need to change the GPU server; if the GPU server does not receive the detection signal within 30 seconds, the cloud service provider is notified to restart the GPU server; if the restart of the GPU server exceeds 3 minutes, the cloud service provider is notified that the GPU server needs to be replaced and the process returns to step S2.

4. The method for operating a cloud gaming server architecture according to claim 2, characterized in that: The step S2 is specifically as follows: Step S21: The service management module receives the account information of the game player, and determines the user type of the game player according to the account information of the game player; The user types include: cost-sensitive users, rigid-need users, enterprise users, large online gathering users, and single application users; Step S22, the service management module traverses configuration information of all GPU servers connected to it, wherein the GPU server configuration information includes: GPU server surplus A, pricing method M, GPU model T, server location R, cloud service provider C and GPU server hourly price P; The service management module calculates the service quality index value K of the game player based on the user type and GPU server configuration information. n ; Step S23: In all K n Among the values, select the maximum K n value, according to the maximum K n The value corresponds to the determined pricing method M, GPU model T, server region R, cloud service provider C and GPU server hourly price P, and this is used as the optimal GPU server configuration information; Step S24: The service management module allocates the corresponding GPU server to the game player based on the optimal GPU server configuration information.

5. The method for operating a cloud gaming server architecture according to claim 4, characterized in that: Calculate the service quality index value K of the game player n , the calculation formula is: K n =[(X1*A m )+(X2*M s )+(X3*T d )+(X4*R g )+(X5*C j )] / (X6*P n ); Among them, X1, X2, X3, X4, X5 and X6 are weight coefficients, which need to be assigned according to the user type; A m =A1, A2, A3. When the service management module finds that the GPU server surplus that can be provided by a single cloud service provider C is less than or equal to 20, A1 is set to 1 / 3. When the GPU server surplus that can be provided by a single cloud service provider C is greater than 20 and less than 60, A2 is set to 2 / 3. When the GPU server surplus that can be provided by a single cloud service provider C is greater than or equal to 60, A3 is set to 1. That is M s =M1, M2, that is, the pricing method M includes preemptible instance M1 and pay-as-you-go M2. Assign values ​​to M1 and M2: M1=1, M2=2 / 3; T d For one or more of T1, T2, and T3, that is, the GPU model T includes one or more of T4 model T1, A10 model T2, and V100 model T3, T1, T2, and T3 are assigned values, T1=1, T2=2 / 3, and T3=1 / 3; R g is one or more of R1, R2, and R3, that is, the region R where the server is located includes one or more of the first region R1, the second region R2, and the third region R3, and R1, R2, and R3 are assigned values, R1=1, R2=2 / 3, and R3=1 / 3; C j is one or more of C1, C2, and C3, that is, the cloud service provider C includes one or more of the first cloud service provider C1, the second cloud service provider C2, and the third cloud service provider C3, and C1, C2, and C3 are assigned values, C1=1, C2=2 / 3, and C3=1 / 3; In K n and P n In, K n The number of is determined by the pricing method M, the GPU model T, the server region R, and the number of cloud service providers C. That is, the value of n is the number of pricing methods M * the number of GPU models T * the number of server regions R * the number of cloud service providers C. After the service management module determines a single pricing method M, a single GPU model T, a single server region R, and a single cloud service provider C, the service management module can scan and obtain the corresponding GPU server surplus A. According to the GPU server surplus A, A can be obtained. m In addition, after a single pricing method M, a single GPU model T, a single server location R, and a single cloud service provider C are determined, the hourly price P of the GPU server provided by the single cloud service provider C is also uniquely determined; The service management module calculates all K according to all the pricing methods M, GPU models T, server regions R and cloud service providers C. n value; In calculating all K n Before setting the value, assign values ​​to X1, X2, X3, X4, X5 and X6 according to the user type, as follows: When a user is classified as a cost-sensitive user, X1 is set to 10, X2 is set to 10, X3 is set to 10, X4 is set to 10, X5 is set to 10, and X6 is set to 50, that is, K n =[(10*A m )+(10*M s )+(10*T d )+(10*R g )+(10*C j )] / (50*P n ); When the user is classified as a rigid demand user, X1 is set to 10, X2 is set to 10, X3 is set to 10, X4 is set to 50, X5 is set to 10, and X6 is set to 10, that is, K n =[(10*A m )+(10*M s )+(10*T d )+(50*R g )+(10*C j )] / (10*P n ); When a user is classified as an enterprise user, X1 is set to 10, X2 is set to 10, X3 is set to 20, X4 is set to 30, X5 is set to 10, and X6 is set to 10, that is, K n =[(10*A m )+(10*M s )+(20*T d )+(30*R g )+(10*C j )] / (10*P n ); When the user is classified as a large online gathering user, X1 is set to 40, X2 is set to 10, X3 is set to 15, X4 is set to 15, X5 is set to 10, and X6 is set to 10, that is, K n =[(40*A m )+(10*M s )+(15*T d )+(15*R g )+(10*C j )] / (10*P n ); When the user is classified as a single application user, X1 is set to 10, X2 is set to 10, X3 is set to 30, X4 is set to 10, X5 is set to 10, and X6 is set to 30, that is, K n =[(10*A m )+(10*M s )+(30*T d )+(10*R g )+(10*C j )] / (30*P n ).

Citation Information

Patent Citations

  • Adaptive streaming adaptation and resource optimization method applied to cloud-game system

    CN104598292A

  • A GPU service redirection system and method based on cloud and terminal GPU fusion

    CN109582425A