System Architecture - coconutbmp/leash GitHub Wiki
High Level Outline
We decided upon a 3-tier architectural style with closed layers. This made the most sense, as it fits with the business rules; given requirements and allows us to easily make changes to the individual components later on in the development cycles of future sprints if need be. Some more precise reasons why we picked this architectural style include:
We had an idea of what server we would be using for the software to be and knew that it would provide greater scalability; security and maintenance.
Due to the separation of concerns into three layers, we could allocate members to primarily focus on separate aspects of the software solution. This reduces the number of people assigned to a more significant overall task and thus reduces confusion and communication problems between members.
It will be easier to maintain; upgrade and test due to the separate layers.
There are a few layers. This reduces the complexity and reduces the chances of the system drifting into a monolithic system.
As the layers are closed, a significant amount of processing must be done at each layer which prevents the formation of an architectural sinkhole.
Our 3-Tier Client-Server Architectural Style can be described as follows:
Presentation layer: This will be used to handle the user interface and will be rendered on the user’s browser. The languages that will be used to accomplish this task are: XML and Java
Application layer: This will be used to handle the logic of the system and make network requests. The languages that would be used to accomplish this task are Java and PHP and we'll make use of the OkHttp package in Java for the requests.
Database layer: This will handle the storage and retrieval of the data from a database. The Database Management Service that we decided to use is AWS RDS. We'll be using MySQL to query the database.
Some 4+1 Architecture Diagrams
Scenarios: Use Case Diagram
Physical View: Deployment Diagram
Process View: Activity Diagram
Process View: Sequence Diagrams
Logical View: State Diagrams
Logical View: Class Diagram