New P2P communication base on Smart Proxy Server

來源:互聯網
上載者:User

Abstract

    This paper gives a solution for how the Server/Client software can improve the performance significantly. We try to find way in the software itself, rather than the environment outside.

At last, I write an open source software, named Game Platform, to demonstrate this way is feasible and it can be expanded to all the Server/Client software’s architecture.

Problem statement

    In traditional Server/Client software patterns, clients connect to the server directly (see the diagram below). Server has to handle all kinds of tasks such as user login/off, business logic processing, data management, etc. It costs lots of server resources.

                    Figure 1 traditional pattern of server/client software

 

    As we know, the server resources are limited. As more and more clients connect to the server, for example, over 10,000 users, the server may run out of the memory, the performance may be low, and sometimes, the server may even run down.

    One solution to this problem is to add more servers. However, as more and more users join in, more servers may need to be added. It will result in spending more money on purchasing and maintaining these servers. Obviously, it is not a good approach.

Solution

    I discovered a P2P based approach to solve the problem. The core of this approach is Smart Proxy Server (SPS).

    SPS is the client connecting to the server directly. Other clients connect to the SPS, instead of connecting to server directly.

    The revised pattern has been shown in figure 1 and can be illustrated as below:

                    Figure 2 revised pattern of server/client software

 

    SPS is created by server. When a topic is set up, for example, we set up a meeting; server will set the first client as SPS, notify other clients in this group SPS’s IP and port, and set up the connection between SPS and clients.

    Then we can separate some functions from the server such as complicated logic and special algorithm, and assign them to SPS.

    Because SPS takes over some functions from the server, server only needs to handle registry and maintain SPS. This approach balances server’s burden to the greatest extent.

    Once SPS disconnect to the server, server will detect that and assign a new SPS automatically between the clients left in this group, then all the clients in the group will connect to the new SPS. The process is going on.

    SPS is created by software itself, not depending on the environment outside. That is to say, only one server is enough. We can save more budgets by developing software. We can concentrate ourselves on SPS’s management, rather than server cluster’s configuration.

    The figure below shows the result of a performance test, comparing SPS with traditional mechanism (Supposed only one server here, no server cluster). The server performance is improved significantly.

                        Figure 3 result of performance test

Evidence the solution works

    Game Platform is a good solution to demonstrate SPS thesis. We can get the latest released version at: http://www.codeplex.com/gameplatform.

    In Game Platform, when 4 users set up a new game, such as the Bridge Card, the user who joins in the desk first will be the SPS. The other three users will set up socket connection with SPS. During the whole process, the other three users will send socket messages to the SPS, and SPS receive the messages. The SPS will judge whether the logic is valid or not, and send the result back to the corresponding client. This process will hold on until the game is over. Finally SPS send the messages to the server, including who has won and how much score he has got, then server will record the result.

Competitive approaches

    The SPS mechanism is similar to P2P programming, but a little different from it. We integrate P2P into SPS, and maintain user account in the server, and also, we need server to setup client automatically.

Current status

    Now the project status of Game Platform is:

1. The main platform is implemented, including login different Hall and Desk.

2. The communication is implemented by TCP, paused on UDP develop stage.

Next steps

    The next step in the Game Platform would be to implement NAT protocol, to give a perfect solution in Server/Client domain.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.