adesso Blog

JSF – stable, but architecturally exhausted

JavaServer Faces was long an established standard: stable, server-centric and deeply rooted in the Java ecosystem. For classic form-based processes, the framework offered a familiar architecture. However, with modern demands for responsiveness, interactivity and scalability, this model is increasingly reaching its limits. Server-side rendering generates a complete round trip for every user action. This slows down interactions and the interface loses its dynamism. At the same time, the stateful structure creates a tight coupling between the UI, logic and backend. Scaling and agile further development are therefore difficult to achieve.

Another key aspect is the underlying lifecycle of JSF applications. Every interaction goes through several defined phases, from state restoration and validation to model updating and the subsequent rendering of the interface. This process is consistent but entails a certain degree of sluggishness. This leads to increased latency, particularly in complex forms with many dependencies, as even minor changes must go through the entire cycle. This often gives users the impression of a sluggish system, even though the actual business logic is implemented efficiently.

Furthermore, the strong server-centric nature restricts flexibility in further development. Changes to the user interface often require adjustments in the backend, which slows down development processes and makes it difficult to separate responsibilities. In growing system landscapes, this leads to increasing complexity that is difficult to manage in the long term.

Angular as a modern foundation for enterprise applications

Angular picks up exactly where traditional server-based frameworks reach their limits. The single-page application approach shifts rendering to the browser. The application loads once and then responds immediately without having to be re-rendered. This approach not only offers a noticeably modern user experience but also an architecture that is clearly structured, modularly extensible and stable in the long term.

Unlike server-side rendering, the client takes responsibility for rendering the user interface. Data is loaded from the backend via clearly defined interfaces and processed in the frontend. This significantly reduces the number of server requests required. At the same time, interactions can be processed directly in the browser, leading to significantly shorter response times.

The single-page application approach is based on the application running as a cohesive system within the browser. Technically, this means that after the application has been initially loaded, routing is handled by the frontend. If, for example, a contract view is opened, there is no longer a complete page reload. Instead, a request is sent to an API, which provides the required data. This data is stored locally in the frontend and displayed directly on the interface. Changes made by the user, in turn, do not result in a complete reload, but instead update only the relevant components.

This process differs fundamentally from the classic request-response model. Whilst in the latter every interaction generates a new page, in a single-page application the context is preserved. The user navigates within a continuous application in which data flow and presentation are closely interlinked. This results in significantly shorter response times and consistent user guidance.

At the same time, this approach brings new requirements. State management shifts to the frontend, which requires a structured approach to data flows and component logic. Issues such as browser performance, memory management and error handling also become increasingly important. A clear structure is crucial, particularly for large applications, to avoid complexity and ensure long-term maintainability.

Architectural change with a noticeable effect

Moving away from server-side rendering changes the entire system structure. Angular manages the UI state directly in the browser and only loads data when needed. This reduces the load on servers, keeps modules clearly separated from one another and makes workflows easier to structure.

This architectural shift not only has technical implications but also requires a rethink in development. Existing applications cannot simply be ported over, as previous concepts are based on a different logic. Business processes must be re-evaluated and transferred into a decoupled structure. In particular, the definition of suitable interfaces plays a central role here, as they form the basis for communication between the frontend and backend.

At the same time, decoupling opens up new possibilities. The front-end and back-end can be developed and scaled independently of one another. Changes to the user interface can be implemented without having to delve deeply into the back-end logic. This leads to faster development and makes it easier to adapt to new requirements.

Although the transition initially involves some effort, the benefits become particularly apparent during ongoing operations. Systems become more flexible, extensions can be implemented in a more targeted manner, and dependencies between individual components decrease. This results in a more stable and manageable system landscape.

A more modern user experience

For administrators, the difference is immediately noticeable. Navigation, search, filtering and data maintenance run without loading interruptions. Inline validations respond immediately and reduce input errors.

Furthermore, client-side processing enables a significantly more flexible design of the user interface. Content can be dynamically adapted without requiring a new request to the server. This is particularly advantageous for complex forms where entries have a direct impact on other fields. Validations take place in real time and provide immediate feedback, enabling errors to be detected at an early stage.

Navigation within the application also becomes more intuitive. Users can switch between different areas without losing context. Data is retained and does not need to be reloaded. This leads to a smoother workflow and reduces interruptions in day-to-day work.

Another benefit is evident in how the application is perceived. Systems appear more responsive and modern overall, which has a positive impact on user acceptance.

A step towards digital sustainability

Angular provides a robust foundation for modern user interfaces. The combination of high-performance SPA architecture, reactive data models and modular structures enables applications to be designed to be maintainable and extensible in the long term. The switch is therefore more than just a framework update; it is a strategic step towards a future-proof system landscape.

The separation of front-end and back-end creates the conditions for developing systems independently of one another. This allows new requirements to be implemented more quickly, as changes no longer need to be coordinated across multiple layers.

At the same time, the architecture enables better integration into existing and future system landscapes, as clearly defined interfaces are utilised.

From a strategic perspective, this means that applications are no longer viewed as monolithic units, but as flexible systems that can be continuously developed. This is particularly crucial against the backdrop of rising demands and increasing digitalisation. Systems must be able to adapt to new processes, technologies and user expectations without having to be fundamentally rebuilt.

The transition to a modern front-end architecture therefore not only delivers short-term improvements in the user experience, but also lays the foundation for sustainable further development. Applications become more adaptable, easier to maintain and better equipped to meet future requirements.

Picture Abdulkadir Erciyas

Author Abdulkadir Erciyas

Abdulkadir Erciyas works as a full-stack software engineer at adesso insurance solutions GmbH and has been involved in Continentale’s ConHealth project since 2021. His focus is on further developing existing applications, whilst he follows new technologies such as Angular and modern front-end architectures with great interest.

Category:

Software Development

Tags:

Angular