A global provider of enterprise software solutions turned to Altoros to build the front-end application for the Norwegian emergency fire services.
Brief results of the collaboration:
- The customer delivered a front-end application for the 22 operation centers and 300+ fire departments in Norway in 3 months.
- By shifting to a modular architecture, the system has improved maintainability and code reusability, saving the company resources and reducing the time it takes to modify and add new features by 2x.
- With recommendations from Altoros, the organization has a clear roadmap for strengthening the security of the emergency fire services app.
- Thanks to asynchronous programming and the engineering efforts around upgrading the solution to a 64-bit architecture, performance improved, and critical issues that caused the app to crash, such as running out of memory, were resolved.
Based in Canada, the company specializes in developing software solutions for media, utilities, and defense industries. In 2001, the organization signed a $29 million contract with the Norwegian government to modernize the software employed by the country's national emergency fire services.
The system used by the emergency fire services was deployed locally at each of the 22 operation centers and 300+ fire departments in Norway. Over time, this led to data synchronization issues, making the app challenging to maintain and secure. To address the problem, all of the system's databases and back-end apps were moved to virtual private servers to centralize data. However, the front-end Windows Presentation Foundation app, which provides operators with real-time information, such as building types, hazards, map locations, etc., was a 32-bit program prone to crashes due to memory limitations.
Relying on Altoros, the company wanted to engage the necessary talent in .NET development to optimize the system for the emergency fire services.
Under the project, the team at Altoros had to address the following issues:
- Being a monolith with tightly coupled components, the existing app was impossible to maintain.
- The system had access to sensitive data, including information about Norway’s infrastructure and population. As such, security was a top priority.
- The app had to be responsive and free from any performance issues that can impact an operator’s ability to act quickly and save lives.
Stage 1. .NET engineers at Altoros investigated the architecture of the software, identified the existing issues, and created an optimization roadmap.
Stage 2. Then, the developers split the monolith and utilized the modular architecture to build a new component-based front-end app. This significantly improved maintainability and enabled code reusability.
Following the Agile methodology, the team at Altoros delivered viable results in quick iterations. In addition, the engineers conducted master classes for the customer’s in-house team around the best practices of modular design.
Stage 3. To boost performance, the developers at Altoros implemented a bunch of measures. First was upgrading the operating system from 32-bit to 64-bit. With asynchronous programming, the team made it possible to spread workloads across different CPU cores. The software’s mapping module, which uses ArcGIS, was also updated to the latest version. As a result, the engineers at Altoros made the program lightweight, more responsive, and capable of utilizing more than 4 GB of memory, resolving crashes caused by memory limitations.
Stage 4. The developers delivered recommendations around enforcing security. For instance, the team at Altoros suggested enabling load balancing, so that each client and server had an encryption certificate managed by administrators through Active Directory. The engineers also advised to employ the SSL and TLS protocols for encryption.
Stage 5. The developers at Altoros added a few new features, such as multiple display support and a configurable layout. Those allowed operators to simultaneously access the maps while handling emergency calls, as well as dispatching and coordinating first responders.
Stage 6. Finally, the QA engineers created and executed unit, smoke, regression, and acceptance tests.
Partnering with Altoros, the customer developed a new front-end app for the Norwegian emergency fire services in just 3 months. With a modular architecture, the company can modify and add new features 2x faster, saving time and resources with improved maintainability and code reusability. Thanks to asynchronous programming, the software is highly performant and responsive. The organization also has now a clear roadmap for securing the connection between the front-end and the back-end applications.
Frameworks and tools
Windows Presentation Foundation, Autofac, MediatR, Reactive Extensions, ArcGIS, RabbitMQ, Windows Communication Foundation, FluentValidation