The development process of business applications is currently facing significant technological changes. More and more functionality is moved to the client side and built on JavaScript and Web technologies. The trend is towards Single Page Web Applications. Equally important are well-wrought UI/UX concepts and the support of both desktop and mobile devices. The architecture of A12 addresses these challenges and provides a solution for developing modern web-based business applications.

State-of-the-art technology stack

The A12 architecture is built upon a carefully selected set of tried-and-trusted technologies.

  • On the client-side, the BAP client framework lays the foundation for quickly building modularized front-ends. It is built around the established React/Redux ecosystem, integrates the A12 UI components like engines and widgets, and calls to the A12 services in the backend via HTTP/REST endpoints. Custom backend connectivity is of course possible and actually most aspects of the BAP client can be customized and even overridden with extension points and plugins.
  • The A12 services consists of data document persistence including search (Solr), workflow engine (BPMN 2), authentication/login (OAuth 2/JWT) and user/role management. The services are built on Spring Boot and can be used out-of-the-box but also extended with custom code.
  • The A12 validation kernel is an important part of the client- as well as the server-side and validates data and computes derived data based on rules and field types described in data document schemas (we call them document models). Code generation ensures native code for client and server. In the BAP front-end, the rules and computations are run as native JavaScript and allow for immediate feedback to the user during form editing. And the server validates using the same rules as pure Java code to ensure data integrity before storing documents.

Document-based Data Access

The A12 architecture is built around the concept of data documents as hierarchical collections of field values. These documents can be accessed and stored from the client. Search results are provided by the search service using Solr search indizes. There are, however, two distinguished features not found anywhere:

1) document models (schemas) not only specify field types but also validation/integrity rules and computation in a very powerful language.
2) full support for managed relationships; documents can be linked and the relationship properties and constrained can be modelled and are enforced by the data document storage service. To go one step further, the BAP client provides prebuild UI components for the front-end list and editing of relationship links.