-
Notifications
You must be signed in to change notification settings - Fork 6
System Design
- Technical Overview
Living History application is an client-server application so it consists of a client side which is a mobile application executing both on Android and iOS platforms. On the other hand, a server side which is a Restful API makes required operations over data. In order to make this system available, Ubuntu servers, web service written in JAVA Spring platform and a client side written using React Native will be used.
For architectural design of Wild application, multi-tier architecture approach was chosen. The details of high level architecture are as following.
The multi-tier approach provides variety of advantages to system and these positive sides can be summarized as follows.
-
Security: The system is divided different tiers and each of them runs on different physical servers; hence, for each layer, different security precautions can be applied. For example, the web server is hacked, application server can stay safe without being affected.
-
Scalability: Each tier is independent from each other; hence, middle-tier can be scaled if it is necessary.
-
Reuse and Maintenance: A single physical middle-tier can be shared by a number of clients; therefore, reuse and maintenance are increased substantially.
Model-View-Controller(MVC) design pattern will be implemented during system development since separated presentation is essence of MVC; that is, separated presentation makes separation between domain and presentation clearly. Therefore, it is suitable choice for multi-tier architecture. View part of MVC will represent presentation tier of multi-tier architecture, controller is equals to middle-tier and finally model part is highly connected to database. Ultimately, structure model of application will look like as following figure abstractly.
In respect of system structure model, class design also follows basic principles. Controller classes will communicate with database with repository classes and handover data transfer objects throughout the system.