/
Landmark Architecture Roadmap

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.