Deployment View - SENG-350-2024-fall/Team-8 GitHub Wiki

Deployment View

Primary Presentation

deployment_diagram_v2

Element Catalog

Element Name Description
User Devices A node that represents end-user devices (laptops, desktops, mobile phones) that access the system via the Web Browser.
Web Browser The primary interface that allows users to interact with the Web Application via HTTPS.
Web Server A node that hosts and serves the static application files (HTML, CSS, JavaScript) to User Devices. Acts as the entry point for all user requests and routes them to appropriate backend systems.
Web Application React-based frontend application served from the Web Server.
Application Server A node that hosts multiple backend components responsible for executing business logic, managing processes, and handling data flow between the Web Application and the Database Server.
Triage System Handles logic related to managing the queue of triage requests. Communicates with the Database Server to retrieve, store, or update triage records.
Booking System Handles the booking of appointments.
Support System Handles the management of support tickets. Communicates with the Database Server to create or update the status of tickets.
Messaging System Handles user messaging functionality, allowing admins to send messages to other users.
Auth Service Responsible for user authentication and authorization. Manages login, session handling, and permissions. Communicates with the Database Server to verify user credentials.
Notification System Manages the creation and delivery of in-app notifications.
Log System Logs application events. Provides a centralized location to store and manage logs for troubleshooting and monitoring.
Patient Data Service Ensures secure access to patient records by enforcing authorization rules. Used for retrieving triage records and displaying patient history.
Database Server Hosts the relational database management system (RDBMS) that stores all persistent data for the application. This includes account information, triage records, hospital details, logs, and appointments.
RDBMS A relational database, such as MySQL, used for structured data storage. Communicates with all backend services via SSL/TLS.

Variability Guide

The following variability points highlight where the system can be parameterized and reconfigured to ensure the architecture remains adaptable to evolving demands while ensuring availability, security, modifiability, and usability.

  • Application Server can be scaled by deploying multiple instances of its components (e.g., Triage System, Messaging System) to ensure high availability as demand grows
  • The authorization rules used by Patient Data Service can be reconfigured dynamically via an administrative interface to meet changing security policies
  • Web Application can be built and deployed using different configurations to support various environments (e.g., development, staging, production) using .env files or build scripts
  • Messaging Service and Notification System can integrate with third-party messaging platforms to enhance convenience and improve usability by allowing users to leverage familiar tools

Other Information

The following list outlines the description and rationale for important design decisions, including relevant rejected alternatives.

1. Use of HTTPS for Communication

  • Decision: HTTPS is used between User Devices, Web Server, and Application Server to ensure encrypted communication.
  • Rationale: This enhances security by encrypting data in transit, ensuring the confidentiality and integrity of protected health information (PHI). The alternative of using HTTP was rejected because it does not provide encryption, leaving PHI vulnerable to interception and unauthorized access.

2. React-Based Web Application

  • Decision: The system interface was designed as a web application built with React.
  • Rationale: A web application ensures broad accessibility and compatibility across various devices. The alternative of a native mobile app was rejected due to its limited device compatibility and the need for separate development efforts for different platforms.

3. Relational Database Management System (RDBMS)

  • Decision: A relational database is used for structured data storage.
  • Rationale: The application data (e.g., account information, triage records, hospital information, logs, and appointments) is highly structured and relies on relationships between entities. Relational database management systems offer robust support for maintaining these relationships through features like foreign keys and transactions, making them ideal for ensuring the integrity and consistency of PHI.

4. SSL/TLS for Backend Communication

  • Decision: SSL/TLS is used for secure communication between Application Server and Database Server.
  • Rationale: This contributes to the security of the system by encrypting data in transit, protecting the confidentiality and integrity of PHI. The alternative of using unencrypted communication was rejected because it poses security vulnerabilities that could compromise the entire system.

Related Views

NOTE: May need to update this section once the rest of the views are created.