**3. Concepts of application architecture**

An accurate application architecture concept is deployed for each of the user interaction sharing systems. The main task of this concept is to ensure the distribution of user data as well as an event sharing in collaborative virtual environments. In fact, different types of application architectures are deployed. The concept of these architectures depends on the network infrastructure and user connections.

Although each of the architectures is specific for its typical features, it is very rigorous to consider its advantages and disadvantages when using its concept. Therefore, the application architecture in systems of collaborative virtual environments is often

adapted to the needs of the intended system. When creating multipurpose environments, it is possible to apply standard types of architectures without their components changing. However, extensions and modifications to application architectures are necessary for specific purpose environments.

#### **3.1 Architectural model client: server**

This architectural model uses the data centralization between users (clients) at the level of one common communication node (server). This type of application architecture is applicable to all types of collaborative virtual environments, and it is also popular in game applications.

The server (**Figure 5**) is responsible for obtaining and mediating each data/information submitted by the client and for their centralization. According to Doležal [26], the client–server architectural model use is required if targeted distribution of data among clients and management of their access is necessary. The main logic of virtual collaboration data sharing is, therefore, implemented primarily at the server level. It makes it possible to provide interaction data, solve different hierarchical levels of clients, operate possible data collection, and maintain a consistent collaboration [27]. Another advantage is the ease of clients' computing performance. Then, it is possible to use their available "power" just for the simulation of the collaborative virtual gaming environment.

The client–server architectural model use is fully dependent on the performance of the centralized node (server). Due to the increasing number of clients, higher demands on server performance are required. The server, therefore, mainly deals with data processing and replication among clients. To reduce the calculation requirements, it is possible to influence the interval of data sent by clients during the game or virtual collaboration [28]. Another way is to limit the number of active clients within the server performance capabilities.

If any of the specific subsystems are deployed on the client side, then the data from the subsystems are also replicated among the other clients. A subsystem may be represented by either a program unit or a device that is used additively and provides some of the whole system's additional functions (e.g., artificial intelligence and speech recognition).

The following subsystems can be considered as subsystems connecting to the client–server application architecture for the purpose of virtual collaboration:


**Figure 5.**

*Topology of virtual collaboration with the client–server architectural model.*

Each of the subsystems can be represented by a specific module on the client side. Then, it is necessary to develop an optimal way of communication with other clients. Dias [29] highlights the potential for dynamically adaptive client–server architecture development. It can contain interfaces for obtaining data from various subsystems and its subsequent transformation for the virtual collaboration needs. The disadvantages of the mentioned architecture depend on the data centralization level. Increasing the number of interfaces at the server level can lead to frequent systemwide service outages or latency in the data processing. According to Khalid [30], these problems can be prevented by data size optimalization using compression.
