System for providing saas platform for large-scale real-time game server and method thereof
The MSA-based SaaS platform optimizes resource allocation and auto-scaling by using a proxy server to select low-usage gate servers, addressing inefficiencies in existing cloud-based game server platforms, thereby reducing costs and scaling times.
Patent Information
- Application Number
- PCT/KR2024/009145
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-06-28
- Filing Date
- 2024-06-28
- Publication Date
- 2026-01-02
AI Technical Summary
Conventional cloud-based game server SaaS platforms utilizing Amazon Web Services (AWS) with Docker containers on EC2 infrastructure face inefficiencies in computing resource allocation, leading to increased costs and prolonged auto-scaling times as traffic increases.
A SaaS platform based on a microservice architecture (MSA) structure, utilizing a proxy server to select low-usage gate servers, manage shared resources, and create new servers when needed, without EC2 creation or Host OS startup times, optimizing resource allocation and auto-scaling.
This approach reduces computing power waste and shortens auto-scaling execution times, providing a cost-effective and efficient large-scale game server solution.
Smart Images

Figure KR2024009145_02012026_PF_FP_ABST
Abstract
Description
System and method for providing a SAAS platform for large-scale real-time game servers { SYSTEM AND METHOD FOR PROVIDING A SAAS PLATFORM FOR LARGE-SCALE REAL-TIME GAME SERVERS}
[0001] The present invention relates to a system and method for providing a SaaS platform for large-scale real-time game servers. More specifically, the invention relates to a SaaS platform system and method that operates based on a microservice architecture (MSA) structure to provide large-scale game servers.
[0002] Conventional cloud-based game server SaaS (Software as a Service) platforms utilize Amazon Web Services (AWS) as their primary server infrastructure. Business logic runs in Docker containers on EC2, an Infrastructure as a Service (IaaS). The business layer servers of game server SaaS run a Web Application Server (WAS) and TCP server (Server) virtualized with Docker on the IaaS (EC2) infrastructure. All virtual machines (Virtual Machines (EC2)) run by loading a single Docker container.
[0003] The business layer servers of this game server SaaS architecture run on IaaS, requiring mandatory allocation of CPU and memory computing resources to run the Docker environment. Furthermore, as traffic increases and autoscaling occurs, wasted costs increase linearly.
[0004] Therefore, there is a growing demand for platforms that provide large-scale game servers as SaaS by reducing computing power waste and shortening auto-scaling call times.
[0005] The technical problem that the present invention seeks to solve is to provide a system that supports a platform that provides a large-scale game server as SaaS.
[0006] The technical problem that the present invention seeks to solve is to provide a method for supporting a platform that provides a large-scale game server as SaaS.
[0007] The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below.
[0008] According to one embodiment of the present invention for achieving the above technical task, a SaaS platform may include a proxy server that is connected to a user terminal and selects a gate server with the lowest usage rate and assigns the user terminal to the selected gate server; a gate server that manages shared resources, relays communication between a simulation server and the user terminal, and creates a new gate server when the usage rate is higher than a predetermined reference usage rate; and a simulation server that provides a game service to the user terminal through the gate server.
[0009] According to the present invention as described above, there is an effect of being able to provide a SaaS platform for a game server based on an MSA structure by utilizing the PaaS infrastructure provided at the container level.
[0010] In addition, according to the present invention as described above, in an already containerized PaaS environment, there is no EC2 creation and Host OS startup time, and by providing a service based on an MSA structure, there is an effect of structurally shortening the AutoScaling execution time.
[0011] FIG. 1 is a configuration diagram of a SaaS platform system according to one embodiment of the present invention.
[0012] Figure 2 is a hierarchical diagram of SaaS according to one embodiment of the present invention.
[0013] Figure 3 is a configuration diagram of a SaaS platform app according to one embodiment of the present invention.
[0014] Figure 4 is a configuration diagram of a SaaS platform app according to one embodiment of the present invention.
[0015] Figure 5 is a configuration diagram of a gate server according to one embodiment of the present invention.
[0016] FIG. 6 is a configuration diagram of a user manager of a gate server according to one embodiment of the present invention.
[0017] FIG. 7 is a configuration diagram of a resource manager of a gate server according to one embodiment of the present invention.
[0018] FIG. 8 is a configuration diagram of a shared resource manager of a gate server according to one embodiment of the present invention.
[0019] Figure 9 is a configuration diagram of a simulation server processing unit according to one embodiment of the present invention.
[0020] Figure 10 is a configuration diagram of a simulation server according to one embodiment of the present invention.
[0021] Figure 11 is a flowchart of a SaaS service method according to one embodiment of the present invention.
[0022] FIG. 12 is a signal flow diagram of a game server running on a SaaS platform according to one embodiment of the present invention.
[0023] FIG. 13 is a flowchart of a method for scaling a SaaS platform according to one embodiment of the present invention.
[0024] Figure 14 is a configuration diagram of a cloud server according to one embodiment of the present invention.
[0025] Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the attached drawings. The advantages and features of the present invention, and methods for achieving them, will become clear with reference to the embodiments described in detail below together with the attached drawings. However, the present invention is not limited to the embodiments disclosed below, but can be implemented in various different forms. These embodiments are provided only to ensure that the disclosure of the present invention is complete and to fully inform those skilled in the art of the scope of the invention, and the present invention is defined only by the scope of the claims. Like reference numerals refer to like elements throughout the specification.
[0026] Unless otherwise defined, all terms (including technical and scientific terms) used herein may be used in their common sense to those of ordinary skill in the art to which the present invention pertains. Furthermore, terms defined in commonly used dictionaries are not to be interpreted ideally or excessively unless explicitly and specifically defined otherwise.
[0027] Figure 1 is a schematic diagram of a system providing a SaaS platform according to one embodiment of the present invention. The system providing a SaaS platform and its configuration will be described with reference to Figure 1.
[0028] A system (10) supporting a SaaS platform may include a user terminal (50), a developer terminal (60), and a cloud server (100).
[0029] The user terminal (50) may be a terminal on which a game client program is executed. The terminal may include a PC, a mobile phone, a smart device, or a console game machine.
[0030] The user terminal (50) can connect to the cloud server (100) via the network (20). The user terminal (50) can connect to a game server based on a SaaS platform running on the cloud server (100). The user terminal (50) can receive game services through the game server.
[0031] The developer terminal (60) may be a terminal for developing a game server program based on a SaaS platform running on a cloud server (100). The developer terminal (60) may develop a game server program that runs by utilizing the resources of the SaaS platform using an API provided by the SaaS platform.
[0032] The developer terminal (60) may include a PC, a smart device or a pad, and may include a device running an operating system based on MS Windows, iOS, Android or Linux.
[0033] The cloud server (100) may include a physical hardware server on which a cloud-based SaaS platform runs. The cloud server (100) may utilize a public cloud service known to those skilled in the art to which the present invention pertains.
[0034] Figure 2 is a hierarchical diagram of SaaS according to one embodiment of the present invention. The hierarchy of SaaS will be described with reference to Figure 2.
[0035] According to one embodiment of the present invention, a SaaS platform for a real-time large-scale game server can be provided as an app on a PaaS (Platform as a service) container.
[0036] The PsaS container can run various apps by sharing the OS kernel, rather than operating as a virtual machine on the hardware of the cloud server (100). By utilizing the container, the scaling load is reduced compared to utilizing a virtual machine, thereby improving management efficiency.
[0037] FIGS. 3 and 4 are diagrams illustrating the configuration of a SaaS platform app according to one embodiment of the present invention. Referring to FIGS. 3 and 4, the configuration of the SaaS platform app will be described together.
[0038] The SaaS platform can run as an app on a PassS container. The SaaS platform app can include a proxy server (210), a gate server (200), a database server (230), a log server (240), and a simulation server (250) running in a microservice architecture (MSA) structure.
[0039] The proxy server (210) can process the connection when the user terminal (50) connects to the cloud server (100).
[0040] The proxy server (210) can perform security verification regarding the connection of the user terminal (50). For example, it can verify whether the connection IP address of the user terminal (50) is on a blacklist, verify whether the connection is intended for a DoS (denial of service) attack, and strengthen security by hiding internal SaaS services in the user terminal (50).
[0041] The proxy server (210) can select a gate server (200) to execute a response to a user terminal (50). For example, the gate server (200) with the lowest current usage rate among one or more gate servers can be selected.
[0042] The proxy server (210) can transmit a connection regarding the user terminal (50) to the selected gate server (200). For example, by transmitting a socket communication regarding the user terminal (50) to the selected gate server (200), the gate server (200) can process information received from the socket.
[0043] The gate server (200) can provide a connection management function between the simulation server (250) and the user terminal (50).
[0044] The gate server (200) can manage one or more user terminals (50), and for this purpose, can manage the user terminals (50) based on multiple threads.
[0045] The gate server (200) can provide management of shared resources. Synchronization is required for multiple threads to directly access the shared resources. As the number of threads managing user terminals (50) increases, the increased load caused by synchronization can lead to performance degradation. To prevent this, the gate server (200) can include a shared resource manager that provides access to shared resources in a single manner.
[0046] The gate server (200) can process message transmissions to one or more user terminals (50) on behalf of the simulation server (250). The simulation server (250) may not directly process broadcasting occurring during the game, but may delegate the process to the gate server (200). The gate server (200) may process the broadcasting using multiple threads that handle the user terminals (50).
[0047] The DB server (230) can provide a service that allows the simulation server (250) to store data.
[0048] For example, the simulation server (250) can run a game server, and the game server can request the DB server (230) to store game information (level, game money, equipment, quest progress, friend list, location information, etc.) necessary to provide game services.
[0049] The log server (240) can provide a service for recording logs generated from the simulation server (250).
[0050] For example, the simulation server (250) can run a game server, and the game server can request that log records generated during game service be stored in a log server.
[0051] The simulation server (250) can provide a game server as SaaS.
[0052] A game server developer can program a simulation server (250) for a game server service using a SaaS platform API according to one embodiment of the present invention. The SaaS platform API can provide an API that can access a gate server (200), a DB server (230), and a log server (240).
[0053] Game server developers can use the SaaS platform API to receive shared resource management, communication management, DB management, and log management required during game server development without having to develop them separately.
[0054] The proxy server (210), gate server (200), DB server (230), log server (240), and simulation server (250) can be serviced in an MSA structure.
[0055] MSA is a structure comprised of multiple smaller services, each developed and deployed independently. Applications built using MSA are distributed across the entire system, allowing for independent development and deployment, and can facilitate scalability and maintenance.
[0056] Fig. 5 is a configuration diagram of a gate server according to one embodiment of the present invention. The configuration of the gate server (200) will be described based on Fig. 5.
[0057] The gate server (200) may include a user manager (310), a resource manager (320), a shared resource manager (330), and a simulation server processing unit (340).
[0058] The user manager (310) can handle the user terminal (50). The configuration of the user manager (310) is described with reference to Fig. 6.
[0059] Referring to FIG. 6, the user manager (310) may include a user information DB (312).
[0060] The user information DB (312) can store information on users who have accessed the user terminal (50). For example, the IP address of the user terminal (50) and the ID of the user who has accessed the user terminal (50) can be stored in the user information DB (312).
[0061] Referring to FIG. 7, the resource manager (320) may include a communication unit (322) and a thread unit (324).
[0062] The communication unit (322) can process communication with the user terminal (50). The communication unit (322) can manage TCP or UDP socket communication with the user terminal (50).
[0063] The communication unit (322) can transmit a message from a user terminal (50) received from a proxy server (210) to a simulation server (250).
[0064] The communication unit (322) can transmit messages received from the simulation server (250) to the simulation server processing unit (340).
[0065] The thread unit (324) may include a thread that handles a user terminal (50). One thread may handle one or more user terminals (50). The thread may transmit a message to the user terminal (50) or process a message received from the user terminal (50).
[0066] The shared resource manager (330) can manage shared resources within the gate server (200). If the management thread accesses the shared resources within the gate server (200) in a synchronous manner, increased load and performance degradation due to locking and unlocking may occur. To prevent this, the shared resource manager (330) can manage the shared resources in a single manner.
[0067] Information can be shared between one or more gate servers (200).
[0068] For example, the first gate server (210) and the second gate server (220) can share user information and shared resources stored in each gate server through requests to each other.
[0069] For example, when a game server running on a simulation server (250) requests broadcasting, the first gate server (210) can request user information from the second gate server (220) and perform broadcasting based on the user information thus obtained and the user information stored in the first gate server (210).
[0070] The configuration of the shared resource manager (330) is described with reference to Fig. 8.
[0071] The shared resource manager (330) may include one or more shared resources (324, 336, 338) and a shared resource DB (332).
[0072] The shared resource database (332) may include access addresses and indexes for each shared resource. If the shared resource is memory, the access address may include a physical address related to the memory. The index is a data structure that speeds up search performance for database tables.
[0073] When a request regarding shared resources is received, the shared resource manager (330) can search for shared resources through the shared resource DB (332) and access the searched shared resources to process the request.
[0074] In another embodiment, when a request for a shared resource is received, the shared resource manager (330) can store the request in a request list and then sequentially process the requests in the request list asynchronously. By processing asynchronously using the request list, processing efficiency can be improved compared to processing each request as it is received.
[0075] In the case of a creation request regarding a shared resource, a new shared resource can be allocated and information regarding the allocated shared resource can be stored in the shared resource DB (332).
[0076] In the case of an update request regarding a shared resource, the address of the shared resource can be obtained from the shared resource DB (332) and the value of the shared resource pointed to by the address can be updated.
[0077] In the case of a search request regarding shared resources, shared resources matching the search conditions can be searched in the shared resource DB (332), and the values of the searched shared resources can be read and provided as a response to the search request.
[0078] For example, when information about a user of a specific level is requested from a game server, the index of the shared resource DB (332) can be utilized to quickly search for information that meets the above conditions and provide the results.
[0079] The simulation server processing unit (340) can process requests from the simulation server (250). The configuration of the simulation server processing unit (340) is described with reference to FIG. 9.
[0080] The simulation server processing unit (340) may include a broadcast unit (342) and a shared resource processing unit (344).
[0081] The broadcast unit (342) can process a broadcast request from the simulation server (250). The simulation server (250) can request message transmission to one or more user terminals (50). The broadcast unit (342) can receive the request and transmit the message using the communication unit (322) of the user manager (310). The broadcast transmission can be transmitted using a TCP or UDP socket.
[0082] The shared resource processing unit (344) can process shared resource requests from the simulation server (250). For example, the shared resource requests may include creation, inquiry, update, and search. The shared resource processing unit (344) can forward the shared resource requests to the shared resource manager (330), receive the results, and then reply with the results to the simulation server (250).
[0083] FIG. 10 is a configuration diagram of a simulation server according to one embodiment of the present invention. Referring to FIG. 10, the configuration of the simulation server will be described.
[0084] The simulation server (250) may include an API section (252) and a server execution section (254).
[0085] The API section (252) may include an API for requesting a function of the gate server (200). The API may be a SaaS platform API according to one embodiment of the present invention.
[0086] The API section (252) may include APIs for socket communication, shared resource requests, DB requests, or log requests.
[0087] The API unit (252) can be interconnected with the simulation server processing unit (340) of the gate server (220). A request from the API unit (252) can be processed by the simulation server processing unit (340).
[0088] The server execution unit (254) can execute a game server program. The game server program can be provided by a game developer.
[0089] Game developers can write and upload a game server program using the SaaS platform API, and the server execution unit (254) can execute the uploaded game server program. Accordingly, the game server can be serviced as SaaS.
[0090] Figure 11 is a flowchart of a SaaS service method according to one embodiment of the present invention. The SaaS service method will be described with reference to Figure 11.
[0091] The user terminal (50) connects to the proxy server (210) (S100).
[0092] The proxy server (210) assigns a gate server (200) to a user terminal (50) (S110). The proxy server (210) can assign the gate server (200) with the lowest usage rate to the user terminal (50).
[0093] It is connected to the user terminal (50) and the gate server (200) (S120).
[0094] The gate server (200) notifies the simulation server (250) of user access (S130).
[0095] The simulation server (250) communicates with the user terminal (50) via the gate server (220) (S140).
[0096] FIG. 12 is a signal flow diagram of a game server running on a SaaS platform according to one embodiment of the present invention. Referring to FIG. 12, the signal flow of the game server will be described.
[0097] The user terminal (50) connects to the proxy server (210) by executing the game app installed on the terminal (S200).
[0098] When the above connection is received, the proxy server (210) transmits connection data regarding the connection to the gate server (220) with the lowest usage rate (S210).
[0099] When the gate server (220) receives the above connection data, it allocates information and resources to the user information DB (312) and shared resource DB (32) regarding the connection, and transmits a user connection notification to the simulation server (250) (S220).
[0100] When the above user connection notification is received, the simulation server (250) performs processing related to the connection on the game server (S230).
[0101] When connection processing is completed, the simulation server (250) transmits a connection completion message to the gate server (220) (S240).
[0102] The gate server (220) transmits the connection completion message to the proxy server (210) (S242).
[0103] The proxy server (210) transmits the connection completion message to the user terminal (50) (S244).
[0104] When input for a game is provided while the game is running, the user terminal (50) generates game data related to the game input and transmits it to the proxy server (210) (S250).
[0105] For example, the game data may include data such as character movement in the game, character information requests, etc.
[0106] When the above game data is received, the proxy server (210) provides the game data to the gate server (220) (S252).
[0107] When the above game data is received, the gate server (220) provides the game data to the simulation server (250) (S254).
[0108] When the above game data is provided, the simulation server (250) processes the game data on the game server running in the server execution unit (254) (S260).
[0109] When the simulation server (250) completes processing of game data, it transmits response data according to the processing to the gate server (220) (S270).
[0110] The gate server (220) transmits the above response data to the proxy server (210) (S272).
[0111] The proxy server (210) transmits the above response data to the user terminal (50) (S274).
[0112] Figure 13 is a flowchart of a method for expanding a SaaS platform according to one embodiment of the present invention.
[0113] The gate server (200) determines whether the usage rate is greater than the standard usage rate (S310).
[0114] The above usage rate may include any one of the number of managed users of the gate server (200), memory usage rate, or CPU usage rate.
[0115] For example, the above baseline usage rate may include any one of 80% of the maximum number of users, 80% usage of allocated memory, or 80% usage of allocated CPU occupancy.
[0116] For example, the maximum number of users may be 200.
[0117] If the usage rate is higher than the standard usage rate, the gate server (200) creates a new gate server (S320).
[0118] After the new gate server is created, the proxy server (210) assigns a newly connected user terminal (50) to the gate server with the lowest usage rate (S330).
[0119] FIG. 14 is a configuration diagram of a cloud server according to one embodiment of the present invention. Referring to FIG. 14, the configuration and operation of a cloud server (100) that executes a SaaS platform according to one embodiment of the present invention will be described.
[0120] The cloud server (100) may include a communication device (1010), storage (1020), memory (1030), and a processor (1040). Not all of the illustrated components are essential. The cloud server (100) may be implemented with more components than the illustrated components, or with fewer components. The aforementioned components will be described below.
[0121] The communication device (1010) can communicate with various types of external devices according to various types of communication methods. The communication device (1010) can include at least one of a Wi-Fi chip, a Bluetooth chip, an NFC chip, and a wireless communication chip. The processor (1040) can communicate with various external devices using the communication device (1010).
[0122] WiFi chips and Bluetooth chips can communicate in WiFi and Bluetooth modes, respectively. When using a WiFi chip or Bluetooth chip, various connection information such as SSID and session key are first sent and received, and then communication is established using this, and various information can be sent and received. An NFC chip refers to a chip that operates in the NFC (Near Field Communication) mode using the 13.56 MHz band among various RF-ID frequency bands. A wireless communication chip refers to a chip that performs communication according to various communication standards such as IEEE (Institute of Electrical and Electronics Engineers), Zigbee, 3G (3rd Generation), 3GPP (3rd Generation Partnership Project), LTE (Long Term Evoloution), and 5G (5th Generation).
[0123] Storage (1020) may store various software and information required for a cloud server (100) that provides a SaaS platform for game servers. For example, storage (1020) may store programs, applications, and various data used on the platform running on the cloud server (100).
[0124] The memory (1030) can store software or programs. The memory (1030) can store instructions executable by the processor (1040).
[0125] The processor (1040) can execute a program stored in the memory (1030), read data or files stored in the memory (1030), or store new files in the memory (1030). The memory (1030) can store program commands, data files, data structures, etc., singly or in combination.
[0126] The processor (1040) controls the overall operation of the cloud server (100) and may include at least one processor, such as a CPU. The processor (1040) may include at least one specialized processor corresponding to each function, or may be an integrated processor.
[0127] The names of the components of the aforementioned cloud server (100) may vary. In addition, the cloud server (100) according to the present disclosure may be configured to include at least one of the aforementioned components, and some components may be omitted or additional components may be further included.
[0128] Meanwhile, the operating method of the SaaS platform for the game server can be implemented in the form of a computer-readable storage medium that stores instructions or data executable by a computer or processor. It can be written as a program that can be executed on a computer, and can be implemented in a general-purpose digital computer that runs such a program using the computer-readable storage medium. Such a computer-readable storage medium can be a read-only memory (ROM), a random-access memory (RAM), a CD, a DVD, a magnetic tape, a floppy disk, a magneto-optical data storage device, an optical data storage device, a hard disk, a solid-state disk (SSD), and any device that can store instructions or software, related data, data files, and data structures, and can provide instructions or software, related data, data files, and data structures to a processor or a computer so that the processor or the computer can execute the instructions.
[0129] Although embodiments of the present invention have been described with reference to the attached drawings, those skilled in the art will appreciate that the present invention can be implemented in other specific forms without altering the technical concept or essential features thereof. Therefore, the embodiments described above should be understood to be illustrative in all respects and not restrictive.
Claims
1. In a SaaS platform system that provides large-scale real-time game services, including proxy servers, gate servers, and simulation servers, A proxy server that is connected to a user terminal and selects a gate server with the lowest usage rate and assigns the user terminal to the selected gate server; A gate server that manages shared resources, relays communication between the simulation server and the user terminal, and creates a new gate server when the usage rate exceeds a predetermined standard usage rate; and A simulation server that provides game services to the user terminal through the gate server; SaaS platform.
2. In paragraph 1, The above proxy server, Selecting a gate server with the lowest usage rate among the above gate servers and assigning the selected gate server to the connected user terminal. SaaS platform.
3. In paragraph 1, The above gate server, A user manager who manages the above user terminals; A resource manager including a communication unit that handles communication and a thread unit that manages threads; A shared resource manager that manages access to shared resources; and A simulation server processing unit that processes requests from the above simulation server; SaaS platform.
4. In paragraph 3, The above user manager, Including a user information DB in which information about the user terminal is stored, SaaS platform.
5. In paragraph 3, The above shared resource manager, A shared resource DB that stores physical addresses and indexes for searching for one or more shared resources, and processes creation, update, and search requests for the shared resources and returns responses thereto. SaaS platform.
6. In paragraph 3, The above simulation processing unit, A broadcast unit that processes message transmission regarding one or more user terminals assigned to the gate server; and A shared resource processing unit that processes requests for shared resources included in the above gate server; SaaS platform.
7. In paragraph 1, The above simulation server, API section for interconnection with the above gate server; and A server execution unit provided from a game developer terminal and executing commands for a game server; SaaS platform.
8. In paragraph 1, A DB server where game information of the above simulation server is stored; and Further comprising a log server in which the log of the above simulation server is stored; SaaS platform.
9. In paragraph 1, The above proxy server, the gate server and the simulation server are served in an MSA structure. SaaS platform.
10. In paragraph 9, The step of selecting the above gate server is; A step of creating a new gate server and selecting the created gate server as the gate server to be connected to the user terminal, when all of the above gate servers have a pre-determined standard usage rate or higher; How to provide a SaaS platform
Citation Information
Patent Citations
Game server distribution method and system and storage medium
CN115869616A
Domain control system micro-service design method, system and device and storable medium
CN116112541A
SaaS access optimization method and device and storage medium
CN116633860A
Intelligent SaaS cloud computing transaction platform system
CN118118486A