MaXX Interactive Desktop Layered Architecture
The MaXX Desktop's architecture design is inspired from multi-layered enterprise class application system where each layer clearly defines specific responsibility and its application/service (a.k.a. component) within the layer performs specific actions. At the heart of the architecture are clear communications channels between respective layers and well defined data-contracts exposed by each application/service. Overall, this design will improve robustness of the Desktop experience, provide solid foundations to build upon, allow a clean separation of concern, modularity and overall re-usability.
Another way to see MaXX's architecture design is to look at microservices architecture, but for Desktop application where each layer of the architecture is composed of microservices performing each a specific task.
This approach as been proven and it allows ongoing improvement of modules/components, as long as the data-contracts and exposed interfaces are respected and APIs are properly documented (including versioning).
Layered Architecture by responsibility
The MaXX Desktop architecture is divided into three (3) responsibility layers from which MaXX's application can be built. Below are the layers in question with a short description for each:
- XU/Presentation - layer performing visual-oriented tasks like displaying UI interfaces and/or capturing user's input. Components and/or applications on that layers are communicating with the Desktop Support layer.
- Desktop Support - layer performing desktop support level tasks while providing an abstraction-layer to various Back-end Services where most of the actions are taking place. This layer can also serves the purpose of functionally aggregator (composition design pattern) where a specific Desktop Support function is realized by utilizing one or more Back-end Service.
- Back-end Services - layer performing most of the actual work. This layer should only communicate with components/services from the Desktop Support layer.
The diagram below illustrates the current MaXX Desktop architecture