## 7 Conclusions and Future Work  
In this paper we presented SARA, a cross-platform microservice-based architecture for collaborative Augmented and Mixed Reality that aims at supporting the deployment of these type of services. SARA also allows the adaptation of applications not intended for collaborative AR, so that they present this functionality. In addition, it supports the management of collaboration models, allowing their reuse between applications with different functional objectives and setting up the schemes and data models required for integrating new ones. These advantages have been demonstrated by the development of a game prototype, the voxel-based world editor, in which a single-user game has been adapted to the collaborative AR context. Further work is needed to make the architecture and its supporting tools usable in generalized scenarios. Firstly, it is required to address the specific issues related to performance, which may be critical in large-scale applications. In this moment, communication between clients is done through the exchange of events encoded in JSON format. Thus, a first step toward enhancing the performance will be to dispense with JSON-based verbose encoding and use a binary format that allows compression. Figure 15: Capture of the voxel-based prototype taken from the HoloLens client. This will reduce the bandwidth required to send the messages, also reducing their size and alleviating JSON parsing times (which generally tend to be high). Second, when defining both the Meshes and the Materials of the AR assets, for the sake of clarity it was decided to keep them simple. However, most 3D editing programs allow, for example, grouping several meshes under one or applying several materials and textures to the same object. The incorporation of these improvements in SARA would not be a problem, since as discussed in Section 5, the data model can be easily extended. Third, a very common practice in 3D development environments is the use of _Shaders_. A Shader is a program fragment in charge of representing the visual elements and what is their appearance. This includes, for example, lights and shadows, as well as more advanced effects such as brightness, emission and reflections. In the practice of these environments, it is possible to change the visual appearance of an element without having to change the associated mesh, i.e., using one of those shaders. They are also used to \"draw\" visual elements that would otherwise consume many resources or calculations, such as particle systems. The incorporation of shaders in SARA will improve its graphic section and homogenize the representation of the elements among all platforms. Fourth and finally, the integration of sound and animations is a highly desired feature. The vast majority of application used every day make use of sound or music effects to give feedback to the user or to improve their experience. With the implementation of SARA presented in this paper, the only way to integrate sound is to have predefined which are the audio files to play. Then, when a certain event is received in the _consumer_ clients, these audio files are played. However, this approach is not flexible. For its part, the animation of 3D elements is also essential in many applications, especially in video games. SARA is able to handle changes in the basic characteristics of the nodes of a session (e.g., position, rotation and mesh information) and when they are animated or changed, participants will be able to see that animation as well. It would be desirable to analyze SARA's behavior with advanced animations as well as the integration of these animations themselves. Thus, we have organized future technical work around (1) performance, (2) representation issues (meshes, materials and shaders) and (3) integration of sound and video.