RU   UA   EN

Abstract

Warning! This abstract refers to a work that has not been completed yet. Estimated completion date: June 2017
Contant author after that date to obtain complete text.

Content

1 Aims and tasks of the research

The purpose is designing of high-performance distributed informational system and defining directions of its development by increasing the user base and the loading.

The tasks of the research:

  • to examine the principles of distributed systems construction;
  • to evaluate the loading on the system (network online game Platformer genre with elements of PvP (player vs player) at different operating conditions;
  • to design a scalable distributed system architecture, which allows to work stably under increasing loading.

2 The review of the research and development

Researched theme is popular not only in international but also in the national scientific communities.

2.1 Overview of international sources

In the international area, and in the English-speaking sources, particularly principles and basic approaches of designing distributed systems is the subject of many books and other works. There are also, many works which are devoted to balancing of the load on the system and approaches to ensure fault tolerance.

The book "Distributed systems principles and paradigms" [1] presents basic knowledge of distributed systems, which describe the concepts, principles and techniques of such systems. The reader's attention is focused on the world of the Internet, the rapid development of which was the reason for the popularity and interest in distributed systems.

The article "Scalable Web Architecture and Distributed Systems" [2] Kate Matsudaira, describes the principles of construction distributed web systems and critical factors that apply to most major web applications (redundancy services, segmentation, treatment failures) on the example of "Hosting Applications images ".

At the development of distributed systems, the CAP-Theorem, is used actively. It was proposed in 2000 by Eric Brewer [3]. This theorem is a heuristic statement, which says that in any implementation of distributed systems only two of the three properties can be achieved. They are consistency, availability and partition tolerance. At the same time, many scholars are criticizing this theory, for the liberty of its interpretation in society [4].

In 2002 a study of Nancy Lynch and Eric Gilbert was published. They gave a definition of the concepts of CAP and formalized them by proving CAP-theorem that was named "Eventual consistency" [5] (BASE) [6].

2.2 Overview of national sources

The theme of design of distributed systems is also popular in national sources, as well as in the international scientific community.

Some interesting publication on this theme you can find in [7, 8, 9].

3 Properties of distributed systems and approaches to their implementation

3.1 Determination of requirements for a distributed system

A distributed system is a collection of independent computers that appears to its users as a single coherent system.

Basic requirements for a distributed system: transparency, openness, scalability and fault tolerance.

The main task of a distributed system - it hides the fact that resources and processes are physically distributed across multiple computers such property of the system is called transparency. Table 3.1 summarizes the types of transparency

Table 3.1 – Types of transparency

Transparency Description
Access hiding differences in methods of data presentation and methods of access to resources
Location hiding the physical location of the resources (all resources should be only logical names, such as URL)
Migration the possibility of resource at different times to change their position, but to be available on a new path from the same logical address
Relocation ability of resource to change it location directly in the process of its use (for example, can serve users who are using a wireless connection can go to another service area without being disconnected from the network)
Replication It hides the fact that the resource has been replicated (replicated across multiple physical locations) (used for balancing resources)
Parallel access Hiding from the user the fact of a distributed system, it is not only a user. For example, working with a DBMS (database management system), the user sending the request must not be aware that, in parallel with his request database handles and receives requests from other users
Failure concealment of a breakdown or failure of one of the parts of a distributed system from its user
Concurrency hide sharing storage space (physical media or memory)

An open distributed system is a system that offers services according to standard rules that describe the syntax and semantics of those services. In distributed systems, services are generally specified through interfaces, which are often described in an Interface Definition Language (IDL). Interface definitions are written in an IDL nearly always capture only the syntax of services. In other words, they specify precisely on the names of the functions that are available together with types of the parameters, return values, and so on. The hard part is specifying precisely on what those services do, that is, the semantics of interfaces. In practice, such specifications are always given in an informal way by means of natural language.

If properly specified, an interface definition allows an arbitrary process that needs a certain interface to talk to another process that provides that interface. It also allows two independent parties to build completely different implementations of those interfaces, leading to two separate distributed systems that operate in exactly the same way.

Flexibility (scalability) - the most important characteristic of a distributed system, which implies the ease of system configuration (eg, the ability to easily add parts, running another operating system).

Scalability in a distributed system can refer to a geographical location, size and administrative structure systems. To achieve scalability necessary to solve the problems associated with the presence of bottlenecks in service (one server to multiple clients), data (multiple access to a single file) and algorithms (overload of communication due to the use of centralized algorithms).

When working with distributed systems, it is understood that at different time points the system can be turned off or turned on but users of the system should not be notified of the changes introduced in components of the system.

Failover - the ability of the system to automatically allocate the functions within the system, in situation where out of order one of the network components (are failed of one of the servers does not lead to the inability to service the user's request) [10].

3.2 The client-server architecture

The basic design of the architecture of distributed network application may be a three-tier client-server architecture. This architecture involves three logical layers (Figure 3.1): the user interface (client part of the application), the logical processing rules (application server) and data management (database server) [11].


Three-tier client-server architecture
Figure 3.1 – Three-tier client-server architecture [11]

The procedure for processing requests in the system goes through a certain sequence of steps:

  1. The client makes a request through the API to the application server;
  2. The application server passes the request to SQL-server databases;
  3. The database server processes the request and returns to the application server set of records;
  4. The application server returns the data to the client;
  5. The client side converts the data received from the application server to the appropriate application format, and displays the results to the user.

At the initial stage of creation, a network application structure will not be distributed and will appear as shown in Figure 3.2. According to the figure, we have a lot of users, one server and one database. If amount of users will increase then waiting time of response from the server will grow and some users cannot receive a response at all.

If we talk about distributed application that meets the set requirements, such as balancing of the system load, ensuring the user always get accurate, reliable and relevant information. In case of an error the system must remain scalable and efficient. Possible scheme of such application is shown in the figure 3.3. In case where load of the system is high, scheme of network application will be more complicated.


Simple variant scheme of network application
Figure 3.2 – Simple variant scheme of network application

Scheme of network application with distributed load between server
Figure 3.3 – Scheme of network application with distributed load between server

In the research the architecture of network application and demo application with minimal functionality will be designed. Idea of application will be similar with game from ZeptoLab "King of Thieves" and Supercell "Boom Beach", where players communicate between themselves in at an unreal time. More information about these games in [12, 13]. Figure 3.4 shows screenshots of example games.


Screenshots of example games
Figure 3.4 – Screenshots of example games [14, 15]
Size 624 kb; Frames: 10; Repeats: no limit; Delay: 2 sec.

Conclusions

Analysis of sources showed that the topic of designing and developing distributed applications is important not only in the international but also national scientific communities.

The main requirements for distributed systems were put forward and described principles of a three-tier client-server architecture, are given the scheme of the simple web-application and a simple diagram of a distributed application.

Further work will focus on the designing architecture of network application with different requirements and system loads and development demo-application with functions needed to simulate and research reaction of application.

References