/
Axia Architecture Documentation

Axia Architecture Documentation

Software Architectural Roadmap - Axia.docx

Version 1.0         2/22/2024 PMCGAHAN

Version 2.0         4/05/2024 PMCGAHAN

 

Executive Summary

Axia is a product that allows homeowners to challenge their property tax in the states of Florida and Georgia.  County employees interact via the Axia Windows Client and non-county employees interact via Web Application.

There is not a mobile device version of Axia.  Axia Web is strictly browser based.

Flavors of Axia include Axia 8x (most counties), Axia 11x (Miami-Dade, Florida) and Axia GA for Georgia.

 

Client & Web:

Axia Webis a feature rich ASPX Web application that can be deployed in any environment where IIS and Sequel Server is supported.  Axia was initially developed between 2007 and 2010.  The product is comprised of as a classic ASPX application and Winforms application developed in the prevailing architecture of the time.  By modern standards, it suffers from its two tier design pattern of presentation and business layer built upon a three tier database model.  Separation of Concerns (SoC) was not a priority in the ASPX model, therefore use of dependency injection and meaningful unit testing is seldom used..

 

Internal Services:

Axia has the following services that all work by presenting a data file to an FTP export.  These exports target other County agencies.

·         Axia.COC .Net 5.0

·         Axia.PAO .Net 5.0

·         EDMS.Agenda .Net 5.0

·         EDMS.Content .Net 5.0

·         Axia.Win.PublicRequest Framework 4.7.2

·         AxiaWcfServiceApplication Framework 4.6.2 – A WCF used to by Axia Client to Read/Write files on the Server File Share.

·         AxiaEvidenceUploader - Framework 4.6.2 – An FTP based API that allows Property Appraisers and Agents to upload in batch evidence files

 

Export Services:

The WCF service named PtgAxiaExciseImportExportWebApi handles request for read-only data out of Excise and Axia.  This service runs a predefined SQL statement and returns a result set in JSON, XML, CSV format.  This might not be in use by Axia Counties any more.

 

Import Services:

All third party imports are handled via the Axia Client or Web applications.  The only exception is a series of custom stored procedures that consume data written to staging tables.  These stored procedures are only used by Broward and Miami-Dade Counties.

 

Current Architecture Assessment

Foreword:

All Axia Web versions run in “Classic 32 bit” mode.  This is important to underline because it immediately rules out “Integrated” mode or use of components that do not execute in this mode.

 

Technology stack

·         IDE: Visual Studio

·         Programming Language: http://VB.NET / C#

·         Axia libraries are based on .Net Framework 4.7.2.  (There are several libraries shared with Benchmark, that range from .Net Frame Work 4.0 and up.)

·         The database layer is provided by CodeSmith, NetTiers and to a lesser degree Dapper.  The database layer has never been deployed on anything other than Sequel Server.

·         Version Control and Collaboration Tools: TFS and Jira.

·         Documentation is maintained in SharePoint.

·         Crystal Reports – used for form and report generation 

·         Telerik – set of UI controls – grids, combo boxes, date controls, etc

·         ABCPDF – used for PDF manipulation

·         Infragistics – used to display most grids and other complex controls

·         Encryption and some data layer components are shared with Benchmark. These are written in http://VB.NET .

·         Componet One.  Used for grids in Winforms.

 

Scalability and Performance:

Axia transactions are isolated both in the data layer and the nature of the user interaction.  The session of each web user is independent of all other sessions.

Web performance has never been reported as an issue by counties.

Client performance has periodically been an issue.  These issues are mostly reported by clerks using very old hardware. 

At this time I do not have experience scaling up Axia, beyond its one database one server design.  As stated, end user performance has not been a significant problem.

 

Identification of architectural bottlenecks and pain points:

Web Forms on ASPX never truly dominated the market and has been a frowned upon environment for years, therefore vendors are less likely to provide innovations and security updates.  Axia has dependences on Infragistics and Telerik on almost every screen, therefore Axia is vulnerable to these vendors and their continued commitment to these API’s.

 

Security posture:

With the exception of Infragistics and Telerik, Axia is “nearly” a pure .Net application using a minimum number of packages and therefore Window Security updates cover most vulnerabilities.  However, some packages are used and must be modernized periodically via the Nuget Packet Manager.  Lastly, manual checking is required for the JQuery library.  On the fly JQuery updates proved to be too problematic especially with Telerik controls.  

 

Development and Deployment:

As with other products, the process agreed to with Deployment, Support and QA is followed.

In brief this includes Jira tickets estimated for time, through the Sprint lifecycle and ending with formal deployment and documentation done by QA.

Axia Web/Client are published to CATALIS QA from the same environment every time.  Releases contain a “WhatsNewxxxx” folder.  The folder contains an index document (green arrow) and specific documents for each item (red arrows).

 

 

Vision and Goals

Axia is a legacy product without a clear replacement in the CATALIS family.  Until we have clear guidance on how to communicate the future of Axia, the main goal is to implement Department Of Revenue (DoR) mandated statues. 

Axia is a necessary product for Counties but not a profit center for counties.  Most taxpayers are charged between $0 and $15 dollars for a petition.

There is a push among the smaller counties to get the Property Appraisers Office to share the Axia responsibilities.  For instances, State Law now requires taxpayers to try to reach an agreement with the Property Appraisers Office before filing a tax exemption petition within Axia.  In turn, the volume of exemption petitions has been reduced by 90% over the last couple of years.  Today 98% of what Axia does is just Real Value Petitions.  Axia main strength is it manages the complexities of scheduling petitions taking into account taking into account such properties as interpersonal relationships and legal credentials of each participant.

 

·         On next major release update .Net 4.7.2 to 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

·         Push back on features not intended for true customers of Axia.  (Agents, Auditors or other governmental departments)

·         Push back on interfaces to non-CATALIS product.

·         Axia is a product that needs to be setup every year, with a unique database and unique release.  Most Axia Support request stem from improper setup.  Therefore, continued investment in the Support Team through SharePoint and documents like ‘Basic Axia Trouble Shooting Steps.docx’.  Document like this are less about Axia and more about environment setup such as how to grant Database or folder rights.

·         Axia has a configuration screen available to the clerks, this screen allows the clerk to verify many of the common problems associated with incorrect setup.

 

 

 

Add label

Related content