HID Converge Platform Modernization
Backend, Frontend & NGS Plugin Architecture Transformation
A consolidated case study covering backend modernization to Java 21 and Spring 6, hybrid Angular 20.3.30 migration, UI library replacement with PrimeNG and Apache ECharts, NGS plugin architecture redesign, App Store deployment, security remediation, and quality validation.

Executive Summary
HID Converge is a multi-tenant, web-based enterprise application supporting Human Identification and DNA forensic workflows. Over time, the platform accumulated legacy backend and frontend technologies, third-party UI dependencies and an older extension model. Security findings from SCA (Software Composition Analysis) and SAST (Static Application Security Testing) made technology modernization necessary, but the program was deliberately treated as a broader architecture transformation rather than a sequence of isolated vulnerability fixes.
The backend moved from Java 8 to Java 21 and from Spring Framework 4 to Spring Framework 6. The frontend moved from AngularJS 1.6.10 through an incremental hybrid migration to Angular 18, Angular 19 and the current Angular 20.3.30 implementation. Supporting infrastructure—including routing, authentication, shared services, UI components, grid rendering and charting—was modernized as part of the migration.
The modernization also addressed the NGS plugin model and deployment architecture. The legacy AngularJS-oriented runtime model was redesigned for modern Angular, while the NGS App Store direction introduced pre-installed applications with tenant-specific licensing. Frontend packaging, backend artifacts, startup sequencing and API compatibility were considered together so that application modernization did not create avoidable deployment or integration risks.
Treated upgrade as comprehensive architecture modernization rather than superficial patching.
Controlled progressive migration from AngularJS 1.6 through Angular 18, 19, to Angular 20.3.30.
Shifted from volatile runtime plugin loading to pre-installed applications with tenant licensing.
Project Background & Modernization Drivers
2.1 HID Converge Platform
The platform supports enterprise workflows for Human Identification and DNA forensics. Capabilities include:
The platform follows a modular architecture. Major backend modules include the Common module, Profile module, DNACase module and Platform module, while the user interface is implemented as a single-page application. The Common module supplies shared infrastructure and domain capabilities such as security, workflow, data management, application management, scheduling, reporting, templates and audit functionality.
2.2 Why Modernization Was Required
The primary trigger was the vulnerability footprint identified through SCA (Software Composition Analysis) and SAST (Static Application Security Testing) analysis. The application depended on older framework, library and build-tool generations. Fixing individual findings without changing the underlying technology stack would have left the platform dependent on an aging foundation and made future remediation progressively harder.
The program therefore used technology upgrades as a security and maintainability strategy. The intended outcomes were to reduce vulnerabilities associated with obsolete dependencies, establish a maintainable development platform, remove legacy frontend dependencies, modernize the plugin mechanism and move toward a controlled NGS application deployment model.
2.3 Modernization Objectives
| Objective | Focus & Delivery Strategy |
|---|---|
| Security | Reduce the vulnerability footprint through supported framework and dependency versions. |
| Technology | Move away from legacy Java, Spring and AngularJS generations. |
| Maintainability | Provide current tooling, language features and component-based development. |
| Frontend | Replace AngularJS and legacy UI mechanisms with modern Angular. |
| Plugin | Support Angular-based NGS applications and parent/plugin integration. |
| Deployment | Align packaging, installation, licensing and startup behavior. |
High-Level Architecture
The legacy high-level layering of the HIDC platform provided architectural context for the modernization program. The client layer, web/application layer, persistence layer and data layer were all affected to different degrees by the migration.
3.1 Architectural Interpretation
The legacy single-page application was based on AngularJS 1.6, UI Router, Bootstrap, jQuery, Angular Translate and browser-side state mechanisms such as Local Storage.
Apache Tomcat hosted the Platform WAR and module JARs, with shared libraries providing security, workflow, data management and system utilities.
Hibernate 4.1.7 provided ORM capabilities, with Hibernate Envers supporting auditing and EhCache 2.6 used for second-level caching.
PostgreSQL provided the multi-tenant database model, including specialized audit tables, procedures, and triggers.
Existing Technology Landscape
4.1 Backend Technology Landscape
| Area | Legacy Technology / Capability |
|---|---|
| Runtime | Java 8 |
| Web Framework | Spring Framework 4 |
| Security | Spring Security 3 |
| Persistence | Hibernate 4 |
| Application Server | Apache Tomcat 8 |
| Database | PostgreSQL |
| Reporting | JasperReports |
| Scheduling | Quartz |
| Build | Maven |
| API Documentation | Swagger / Mangofactory |
4.2 Frontend Technology Landscape
| Area | Legacy Technology |
|---|---|
| Framework | AngularJS 1.6.10 |
| Routing | UI Router 1.0.6 |
| UI Framework | Angular UI Bootstrap / Bootstrap 3.3.7 |
| DOM / Utilities | jQuery 2.2.4 |
| Internationalization | Angular Translate |
| Build | Webpack 2.4.1 |
| Transpilation | Babel 6 |
4.3 Modernization Targets
| Layer | Modernized Direction |
|---|---|
| Backend | Java 8 → Java 21; Spring 4 → Spring 6 |
| Frontend | AngularJS → Angular 18 → Angular 19 → Angular 20.3.30 |
| Grid | Kendo Grid → PrimeNG via application-level abstraction (nx-grid) |
| Charts | Kendo Chart → ngx-echarts / Apache ECharts |
Backend Modernization
5.1 Java 8 → Java 21
The backend runtime was upgraded from Java 8 to Java 21. This was a foundational modernization step intended to establish a current long-term-support (LTS) Java runtime and to reduce dependence on obsolete platform generations. Because the application is a mature enterprise system, the change required compatibility analysis across framework integrations and dependencies rather than a simple build-file version change.
5.2 Spring Framework 4 → Spring Framework 6
Spring was upgraded from Framework 4 to Framework 6. Spring is deeply involved in the application through dependency injection, MVC, security, REST APIs and application infrastructure, so the upgrade affected foundational application behavior. The migration therefore required compatibility review and coordinated changes across the backend rather than isolated edits to the framework declaration.
5.3 Enterprise Capabilities Preserved
- REST APIs and backend service contracts remained central to the platform integration model.
- Security, role-based access control (RBAC) and multi-tenant application management remained core platform capabilities.
- Persistence and transaction behavior continued to support the existing business workflows and database model.
- Workflow, reporting, auditing and scheduled processing remained part of the backend validation scope.
5.4 API Compatibility & 5.5 Deployment Artifacts
The deployment and plugin design explicitly considered API compatibility. The goal was to minimize unnecessary disruption to existing endpoints while modernizing the surrounding infrastructure. Keeping business API changes separate from infrastructure modernization reduced the risk that the technology migration would become a simultaneous business-contract rewrite.
The architecture retained backend WAR/JAR artifacts as deployable components while separating frontend packaging into UI.war. This separation avoided unnecessarily duplicating frontend content inside backend application bundles and allowed the deployment model to evolve without discarding the existing modular packaging approach.
Frontend Modernization
6.1 AngularJS → Modern Angular (Incremental Hybrid Migration)
The frontend migration began with AngularJS 1.6.10 and moved to Angular 18, followed by Angular 19 and the current Angular 20.3.30 implementation. The migration was incremental rather than a single rewrite. A hybrid architecture allowed Angular and AngularJS functionality to coexist while application areas were progressively converted.
The work involved more than converting syntax. AngularJS controllers, directives, services, templates, routing and dependency injection patterns had to be mapped to modern Angular concepts. Application startup, authentication, shared services and routing also required coordinated migration because these concerns cross-cut individual UI components.
6.2 Current Frontend Stack
| Technology | Current Direction |
|---|---|
| Angular | 20.3.30 |
| Angular CLI / DevKit | 20.3.30 / 20.3.36 |
| TypeScript | 5.8.3 |
| RxJS | 7.8.1 |
| UI Components | PrimeNG 20 + PrimeIcons |
| Styling | Bootstrap + SCSS |
| Internationalization | ngx-translate |
| Charts | ngx-echarts 20 / Apache ECharts |
6.3 Migration Path & 6.4 Shared Infrastructure
The migration sequence created a controlled path from the legacy application to a maintainable modern Angular platform. The initial Angular 18 implementation provided the modern foundation; after stabilization, the framework was upgraded further to address additional SCA critical and high findings. The documented path is:
Routing and authentication were migrated alongside application modules rather than treated as isolated UI concerns. Shared services and component patterns were redesigned for Angular dependency injection, providing stronger typing and tighter compilation guarantees.
UI & Plugin Architecture Modernization
7.1 Kendo Grid → PrimeNG (nx-grid Abstraction)
One of the largest frontend migration challenges was removing the legacy Kendo-based grid. The Case Dashboard grid was configuration-driven and combined UI behavior with AngularJS-specific templates and expressions. A direct component replacement would not have preserved the complete behavior model.
The migration redesigned the rendering layer while preserving business behavior across:
PrimeNG was adopted through an application-level grid abstraction, including the nx-grid approach. This creates a stable application contract above the underlying third-party component and reduces direct coupling between feature code and the UI library implementation.
7.3 Kendo Chart → ngx-echarts / Apache ECharts
The charting layer was also modernized. Legacy Kendo chart functionality was replaced with ngx-echarts and Apache ECharts. The migration required updating chart configuration, rendering integration and Angular component usage while retaining the intended graphical representation of application data.
7.4 Plugin Architecture: From AngularJS Runtime to Modern Angular
The Converge platform supports extension mechanisms for additional applications and functionality, including NGS (Next-Generation Sequencing) applications. The legacy plugin model was tightly coupled to the older AngularJS runtime. Modern Angular uses Ahead-Of-Time (AOT) static compilation, so the old dynamic registration approach could not simply be carried forward.
The modern architecture introduces explicit plugin startup services, registration, plugin context, mount points, extension points and component resolution/registry mechanisms. This makes parent/plugin interaction a defined architectural contract and allows Angular-based NGS applications to integrate cleanly with the modernized parent application.
NGS App Store, Deployment & Licensing
8.1 Deployment Direction: Pre-Installed vs Dynamic Downloading
The NGS App Store architecture favors pre-installed NGS applications with tenant-specific licensing rather than dynamically downloading and installing applications after user login. This model provides a more controlled deployment lifecycle while keeping activation behavior tied to licensing.
8.2 Packaging Model
| Artifact / Concern | Role & Responsibility |
|---|---|
| UI.war | Frontend packaging for the platform UI and modern Angular integration. |
| Backend WAR/JAR | Deployable backend modules and services. |
| Database scripts / templates | Installation and configuration support for NGS applications. |
| Licensing | Tenant-specific activation and application availability. |
| Startup sequencing | Ensures required platform/dependency services are available before installation. |
8.3 Startup Sequencing Pipeline
A significant design risk was installation occurring before dependent platform services were available. The expected sequence was represented and enforced as:
8.4 Proof of Concept & 8.5 Parent / Plugin Integration
A proof-of-concept approach was used to validate the proposed deployment architecture before full commitment. The POC covered deployment behavior, database script installation, plugin installation, dependency sequencing, backend API compatibility and interaction between Converge and NGS modules. This reduced the risk of implementing a deployment model that later required major rework.
The deployment design keeps frontend and backend concerns aligned without forcing them into a single artifact. The parent application provides the hosting environment and integration contracts, while NGS applications can be packaged and activated under the controlled App Store model.
Migration Approach & Technical Challenges
9.1 End-to-End Migration Flow
9.2 Major Technical Challenges
| Challenge | Why It Required Architectural Design |
|---|---|
| Legacy dependencies | Primary frameworks were coupled to older libraries and tooling generations. |
| AngularJS migration | AngularJS and modern Angular use materially different application models. |
| Kendo migration | Grid configuration mixed UI rendering, callbacks, templates and business behavior. |
| Plugin architecture | Parent and plugin applications required compatible modern Angular integration contracts. |
| Deployment sequencing | App Store installation depended on platform and supporting services being ready. |
9.3 Key Architectural Decisions
Security, Testing & Quality Validation
10.1 Security Modernization
Security improvement was a primary driver of the program. Older frameworks and third-party dependencies contributed to findings from SCA and SAST. The chosen strategy was to address the underlying technology generations so that a significant portion of obsolete-dependency risk could be reduced while creating a platform that can continue to receive incremental security updates.
The Angular migration also established a path for progressive remediation: AngularJS → Angular 18 → Angular 19 → Angular 20, with future supported-version upgrades available as required. The objective is not to treat security as a one-time migration milestone, but to make continued dependency maintenance practical.
10.2 Testing & Validation Scope
| Area | Representative Validation Scope |
|---|---|
| Backend | Startup, REST APIs, security, database access, transactions, workflows, reporting, scheduled jobs. |
| Frontend | Startup, routing, rendering, forms, grids, filtering, sorting, pagination, selection, actions, exports. |
| Plugin Integration | Registration, initialization, mounting, parent/plugin communication, backend API interaction, licensing. |
| Quality Tooling | JUnit, Mockito, Spring integration tests, DB/controller integration tests, Jasmine, Protractor, Checkstyle, PMD, FindBugs, JaCoCo, SonarQube. |
10.4 Validation Principle
The migration must be validated at both technical and functional levels. A successful build alone is insufficient: application startup, business workflows, security behavior, UI interaction, plugin lifecycle and deployment behavior all need validation because the modernization crosses multiple architectural boundaries.
Outcomes, Lessons Learned & Future Evolution
11.1 Key Outcomes
| Dimension | Modernization Outcome |
|---|---|
| Backend | Java 8 → Java 21; Spring Framework 4 → Spring Framework 6. |
| Frontend | AngularJS 1.6.10 → Angular 18 → Angular 19 → Angular 20.3.30. |
| UI | Kendo Grid → PrimeNG (nx-grid); Kendo Chart → ngx-echarts / Apache ECharts. |
| Architecture | Legacy AngularJS plugin model → Angular-compatible plugin architecture. |
| Deployment | Legacy plugin deployment → pre-installed NGS applications with tenant licensing. |
| Security | Reduced vulnerability exposure through technology and dependency modernization. |
11.2 Lessons Learned
11.3 Future Evolution
The modernized foundation supports incremental Angular upgrades beyond Angular 20, continued dependency remediation, further removal of legacy frontend infrastructure, additional UI modernization, stronger plugin standardization and increased automation around compatibility and security validation.
Conclusion & Source Basis
The HID Converge modernization transformed an aging enterprise platform across its backend, frontend, UI and extension layers while keeping the existing business capabilities and modular deployment model in focus. The move to Java 21 and Spring 6 modernized the backend foundation, while the AngularJS-to-Angular migration established a current TypeScript-based frontend and enabled the replacement of legacy Kendo components with PrimeNG and Apache ECharts.
Equally important, the project treated plugin integration and deployment as part of the modernization rather than as downstream concerns. The Angular-compatible plugin architecture, controlled NGS App Store model, tenant-specific licensing and startup sequencing provide a stronger foundation for extensibility and operational consistency. The result is a platform better positioned for ongoing security remediation, maintainability and incremental evolution.
