Software Architectural Roadmap – Landmark
Executive Summary
Landmark is an on premise solution that uses a monolithic architecture and is composed of a set of client server applications using Domain-Driven-Design (DDD) on the back end and the Model-View-View Model (MVVM) pattern for the front-end desktop client and the Model-View-Controller (MVC) pattern for the public facing website.
The planned architectural changes will encompass refactoring critical code paths and algorithms to improve efficiency and reduce computational overhead, query optimization techniques, and security updates identified from SonarQube. Implementing these changes will mitigate technical debt, improve scalability, and enhance performance.
Current Architecture Assessment
Technology Stack:
· IDE: Visual Studio
· Programming Language: C#
· Framework: .NetFramework 4.6
· UI Framework: WPF (Windows Client) and MVC (Website)
· XAML (eXtensible Application Markup Language): XAML is a declarative markup language used to define the UI layout, controls, and visual elements in WPF applications. It allows developers to separate UI design from application logic and enables rapid prototyping and development.
· MVVM (Model-View-ViewModel) Pattern: MVVM is a design pattern commonly used in WPF applications to separate concerns between the UI presentation (View), application logic (ViewModel), and data model (Model).
· Data Access: Entity Framework for ORM (Object-Relational Mapping)
· Database: SQL Server
· Dependency Injection (DI): Microsoft Unity - used to manage object dependencies and promote loose coupling between components.
· Version Control and Collaboration Tools: Azure DevOps and Jira.
· Third-Party Libraries and Controls:
o Accusoft – used for scanning and displaying images
o Atalasoft – used for image stamping
o Crystal Reports – used for form and report generation
o SSRS – used for form and report generation
o Telerik – set of UI controls – grids, combo boxes, date controls, etc.
o ABCPDF – used for pdf manipulation
o BitMiracle – used for image manipulation
o Tesseract – OCR Engine
Scalability:
· User Load Handling: Increasing user loads and concurrent requests will impact the ability to scale.
· Data Volume Scalability: Landmark uses a single SQL Server database on the back end and growing data volumes will impact Database performance and data retrieval times.
· Horizontal and Vertical Scaling: Landmark Web and ERecord Windows Service architecture supports horizontal scaling (adding more instances on premise) and all Landmark applications support vertical scaling (upgrading server resources on premise) to accommodate increased demand.
Performance:
· UI Responsiveness: Landmark is responsive during interactions such as window resizing, scrolling, and input handling and provides a smooth user experience.
· Data Processing Speed: Database query execution times, caching, and memory leaks need to be addressed to improve system performance.
· Application Startup Time: Landmark client launches and becomes responsive in a timely manner.
Reliability:
· Fault Tolerance: Errors are tracked in the LogInfo table as well as local App Logs and windows services will also write to the Event Log. Un-expected errors are routed to global error handling that will display to user for the windows client. Certain routines have implemented retry conditions and service failures will be written into an error column on the record being processed.
· Availability and Uptime: This is handled on premises by the customers, they can run a server farm to load balance the website.
· Data Integrity and Consistency: Data integrity and consistency is handled across the application through database integrity constraints and internal business logic classes. Transaction management at the database level is implemented whenever more than one table needs to be updated in an Atomic Operation.
Architectural bottlenecks and pain points:
· Memory Leaks and Resource Management – there are memory leaks that can cause out of memory errors forcing users to re-start Landmark. There are temp files that are not being deleted after creation and over time can lead to the temp folder getting full.
· Database Access and Data Retrieval - inefficient database queries, lack of proper indexing, or excessive round trips to the database can impact application performance and scalability
· Performance Bottlenecks in Backend Services - blocking I/O calls in backend services can degrade overall system performance by introducing database locks on core tables
· Poor Error Handling and Logging - Inadequate error handling mechanisms and lack of comprehensive logging make it challenging to diagnose and troubleshoot issues in production environments.
Security posture:
· Numerous issues found in SonarQube and Qualys Scans that need to be addressed to resolve vulnerabilities with outdated frameworks
· Third-party libraries and components within Landmark need to be updated to handle known vulnerabilities and security weaknesses
· Security protocols being referenced like TLS need to be updated
Development and deployment processes:
· Jira Ticket created with requirements
· Jira Ticket assigned in Sprint
· Development completed, code checked in to Azure-Dev Ops and ticket moved to pre-publish
· At the of end of the Sprint Pipeline is run that will publish the build locally and send email notifications
· Running pipelines will automatically deploy websites to test servers and will deploy windows desktop clients to network update location where users with shortcuts on their desktops can automatically get the latest version
· QA will test and mark ticket Done
· QA/Support will document and package up files in a zip and send email to customers to download where they will deploy on premises
Vision and Goals
· Since this legacy product and future sales will be made with CORAL, there are no current plans on adopting cloud-native technologies or migrating the existing architecture into Microservices.
· Update all projects in Landmark to the 4.8 .Net Framework
· Implement code hardening to provide security enhancements as recommended by Sonar Cube, Qualys and NuGet
· Work through technical debt to resolve performance bottlenecks, inefficient queries and memory leaks
· Resolve Defects in the Jira Backlog and complete outstanding change order requests where appropriate
Architectural Principles
Domain Driven Design (DDD)
Loose coupling and high cohesion
Model-View-ViewModel (MVVM)
Separation of Concerns (SoC)
Dependency Injection (DI)
Commanding and Data Binding
Event Aggregation and Messaging
Security by design
Key Initiatives
Initiative 1: Framework Update
Description: Update all projects in Landmark to the 4.8 .Net Framework
Objective: Updating the framework will Improve security and patch vulnerabilities and fix existing defects within the current framework
Timeline: Q1 2024 – Q2 2024
Key Milestones: Update projects to new framework, update installation files and build pipelines as needed, regression test updated projects
Initiative 2: Security Enhancements
Description: Security Enhancements as recommended by Sonar Cube, Qualys and NuGet
Objective: Improve security and patch vulnerabilities
Timeline: Q3 2024 – Q1 2025
Key Milestones: Run security scans, refactor codebase, and re-evaluate security scans
Initiative 3: Performance Enhancements
· Description: Resolve performance bottlenecks, inefficient queries and memory leaks
Objective: Increase performance and reduce memory leaks
Timeline: Q1 2026 – Q2 2026
Key Milestones: Replicate performance issues and obtain log files, refactor codebase, and re-evaluate performance
Timeline and Milestones
· Initiative 1: Framework Update
o Dedicating 30% of current Sprints towards this initiative
· Initiative 2: Security Enhancements
o Start Time dependent on completion of Framework Updates for Landmark, TaxSmart, and Jurymark
· Initiative 3: Performance Enhancements
o Start Time dependent on completion of Security Enhancements Initiative for Landmark, TaxSmart, and Jurymark
Dependencies and Risks
There is a resource constraint where Lee Leavenworth is the sole dedicated resource for this product and is currently involved in the development/support/implementation for Landmark, support for TaxSmart, support for Jurymark and development for CORAL. Escalated Support and Implementation issues will impact timelines.
Resource Allocation
Lee Leavenworth is currently the sole dedicated resource for each architectural initiative.
Governance and Oversight
The governance structure and oversight mechanisms will be handled through PI Planning, Sprint Planning, Sprint Demos, and Architecture Meeting updates.
Communication Plan
Architectural changes and progress updates to stakeholders can be delivered by regular status reports, sprint demos, and architecture review meetings.
Metrics and KPIs
The architectural initiatives can be evaluated using latest scans by Sonar Cube and Qualys for security issues and the performance metrics obtained from the replication testing.
Review and Update Process
The architectural roadmap can be updated as needed in response to evolving business needs, emerging technologies, and feedback from stakeholders and this can be initiated through our Architecture Meetings.