• 沒有找到結果。

S UMMARY OF C ONTRIBUTIONS

CHAPTER 6 CONCLUSION

6.1 S UMMARY OF C ONTRIBUTIONS

In this dissertation, we design and implement the GOTG system in order to facilitate the development of online tabletop games. We first survey the similarity of online tabletop games and summarize the shared characteristics. According to the shared characteristics, we design two models. The first one is the GOTG model that allows players to search for their friends in a virtual room and then play games with them in the room. The second one is the TG model that defines game objects, game states, and playing operations for tabletop games. For the TG model, we formalize the definition of tabletop games and related terminologies and then prove that it is general for all tabletop games.

Based on the two models, we implement the GOTG system that allows players to search for their friend and play tabletop games over the Internet. For developing an online tabletop game, the GOTG system provides the supports for network communication, player management, matchmaking, etc. Besides, the GOTG system includes a framework based on the TG model that provides graphical supports for tabletop games. The framework helps developers handling game areas and game objects used in tabletop games. It supports move-object, max-Z, and next-face operations for game objects.

The GOTG system provides services for playing tabletop games over the Internet. While implementing the GOTG system practically, we encounter two issues on which the services of our system for online tabletop games are blocked or disrupted. In order to provide the services

correctly and smoothly, we try to solve the two issues. We present our solutions to them in chapter 4 and 5 respectively and summarize the results as follows.

z Resolving problems of blocking I/O operations for server programming

Event-driven programming is a widely used technology for concurrent programming.

However, the major drawback of event-driven programming is the need to pay attention to the blocking I/O operations in event handling. This dissertation addressed two major blocking problems due to the use of blocking I/O operations in game servers and other inter-user communication applications (defined in Section 4.1), namely output blocking and service request blocking. For the former, this dissertation presents an output buffering mechanism to solve this problem. Meanwhile, for the latter, this dissertation presents a service brokering mechanism with helper processes to solve this problem.

Based on the output buffering and service brokering mechanisms, we design an event-driven framework for inter-user communication applications, as shown in Figures 4.5 and 4.9. Application developers can apply this framework to develop their servers simply by implementing some event handlers and service handlers, as in the shadowed classes in Figures 4.5 and 4.9. Therefore, based on this framework, they can easily avoid blocking problems. Besides, the framework has been the basis of the network module of the GOTG system so that the game servers in the GOTG system are immune from the two blocking problems.

In fact, our framework can also be applied to other applications. For example, event-driven based HTTP servers, such as Zeus [97], mathopd [11], and thttpd [1], can be implemented on top of this framework by putting file access operations into helper processes.

z Fast recovery from overflow failures for non-disruptive game services

The services of the GOTG system rely on the collaboration of several kinds of servers.

Since we expect to provide the services without any disruption, the servers should try to recover from failures timely. One of failures that we encountered when developing the GOTG system is the buffer overflow failure that is commonly found in many software recently. In the dissertation, we develop a technique named Buffer Overflow Detection and Recovery (BODAR) to detect and recover from buffer overflow failures efficiently.

The design of BODAR is a miniature of user space management in the kernel of operating system. Each allocated buffer is considered as isolated and guarded regions. With the allocation of guarded regions and faulty address resolution scheme, we can transform all J&K series of OOB detectors and recovery tools into asynchronous execution. Therefore, in normal situations without attacks or OOB accesses, the execution efficiency of BODAR maintains about the same as those without protection, while achieving the same security tolerance of the above OOB detectors at the expense of extra space overhead.

The impact of BODAR resides in security considerations in comparison with Stackguard series and J&K series of OOB detectors. Stackguard series of OOB detectors simply terminate the victim processes and still suffer from denial of service problems since large number of malicious connections will very likely incur frequent service shutdowns.

BODAR can remedy this denial-of-service problem by efficiently recovering from malicious connections as evidenced by experiments on Webstone benchmark with OOB exploits. The experimental results show better throughput than the original server. In regard of J&K series of OOB detectors, execution efficiency is a major concern. These detectors can only be used for the development phase instead of the production purpose.

However, since the absence of OOB bugs is undecidable, an OOB detector for production use is essential. Our BODAR design can resolve such security concerns.

Since the GOTG system provides the supports for network communication, player management, matchmaking, game object and operation handling, etc., it can effectively

reduce the effort to develop online tabletop games. With the help of the GOTG system, developers can focus on the design and implementation of the game rule.

Practically, the GOTG system has been used in the CYC Game League [82], Sina [70, 71], Hinet [16], and other game sites in Taiwan and Hong-Kong. These sites provide dozens of tabletop games, such as Chinese Chess, Bridge, Mahjong, etc. Currently, these sites totally have attracted more than one million people to register as members and supported up to 10,000 concurrent players. Figure 6.1 and 6.2 are the screenshots of the customized GOTG system in the CYC Game League. Figure 6.1 is the screenshot of a game coordinator in which 52 players login to play Chinese Chess. Figure 6.2 is the screenshot of a Chinese Chess game in which two players are playing.

Figure 6.1. The screenshot of a game coordinator in the CYC Game League.

Figure 6.2. The screenshot of a Chinese Chess game in the CYC Game League.