Software Architecture Document - mstane/software-architecture-lab GitHub Wiki

MyBooks

1. Architectural Goals and Constraints

This section describes the software requirements and objectives that have some significant impact on the architecture.

1.1 Technical Platform

MyBooks Service a web application requires Java 8, Maven 3.x dependency manager and build tool. It will be deployed onto Jakarta Tomcat application server.

1.2 Transaction

Transaction management support of the Spring Framework will be used.

1.3 Security

The system shall be secured, so that a reader can make changes to the system and work with data. The application shall implement authentication: using a user name and a password.

1.4 Persistence

Data persistence will be addressed using a PostgreSQL relational database.

1.5 Reliability/Availability

There is no need to support session replication and load balancing. To achieve high availability we need two-node active/standby cluster, changing the bond virtual IP addresses and all clients to access on IP level.

Maestro Cluster control tool to manage clustering and Keepalived to configure high availability. The web server and database server reside on all machines and share the same VIP. Targeted availability is 24/7: 24 hours a day, 7 days a week

1.6 Performance

Any user operation should have a maximum response time of 1 second

2. Use-Case View

2.1 Use Cases

2.2 Use Case realizations

2.3

3 Logical View

4 Deployment View

5 Process View

6 Implementation View

7 Size and Performance

8 Quality