At runtime, Vision App Maker is a set of decoupled components arranged in three layers: front-end clients, the API Gateway and back-end services. Configuration made in App Factory Studio is stored in a configuration database and executed by the App Maker Engine.

Layers at a glance

LayerComponentsTechnology
UI layerInternal and external portals, info kiosk applications, mobile appReact; React Native for the mobile app
API Gateway layerApp Maker Gateway, behind an ingress or reverse proxy.NET Core
Services layerApp Maker Engine and other microservices or distributed components.NET Core
Configuration layerApp Factory Studio and the App Factory back-endAngular, .NET Core
CacheDistributed cache shared by the platform's replicasRedis
DataFactory configuration database and business databasesMicrosoft SQL Server
WorkstationVision Desktop ExperienceWPF desktop application

Front-end clients

The front-end clients handle only the user interface and UI logic. They call the APIs exposed by the API Gateway. Several portal and info kiosk instances can share the same gateway, so business logic is reused across them.

  • Internal portal: all configured features plus the standard administration, security and content management features. At least one internal portal is required to use these standard features.
  • External portal: features configured for citizens, customers or partners. It has no direct access to the database.
  • Info kiosk: a React application with access to local peripherals such as cameras and local ports.
  • Mobile app: presents any feature configured in the platform.

The portals are built with React. They provide:

  • modular components with separate UI, logic and data, and a design system;
  • token or cookie handling, role and permission checks in the interface, SSO and OAuth2 login through the API Gateway or an external identity provider;
  • dynamic routing without full page reloads, route guards by role, lazy loading and code splitting per route;
  • Material UI and Bootstrap 5 libraries, mobile-first responsive layout and dynamic themes (dark, light, custom);
  • runtime language switching and menus shown according to permissions;
  • interactive maps with markers, shapes, routes and tiles from map providers such as OpenStreetMap.

All components run in Microsoft Edge, Mozilla Firefox and Google Chrome. Signing with a certificate on a token and locally connected scanners require Vision Desktop Experience.

API Gateway

The App Maker Gateway is the single entry point for client requests. It routes each request to the right service and returns one unified interface for all services.

  • routing with load balancing, and aggregation of responses from several services;
  • authentication and authorization through tokens or cookies, with single sign-on;
  • rate limiting, throttling, caching and request or response transformation;
  • CORS handling, SSL termination, IP whitelisting, input validation and DDoS protection;
  • logging of requests and responses for audit, debugging and metrics.

Back-end services

The services layer contains microservices and monolithic services that implement business logic. They access databases, process data, handle events and expose their own APIs. They support data persistence and storage of geospatial coordinates.

The App Maker Engine runs the configured applications. It reads the configuration from the Factory configuration database and reads and writes business data. Additional services cover authentication, file processing and external integrations, depending on the project. The architecture diagrams also show an IoT appliance service built on .NET Core.

A distributed cache based on Redis is shared by the platform's replicas.

Communication between components

PathProtocolCharacteristics
Clients to API GatewayREST over HTTPJSON or XML, native caching, support in gateways and load balancers, TLS
API Gateway to services, and between servicesgRPC over HTTP/2Compact binary serialization, multiplexing, synchronous and asynchronous calls, unary and streaming calls, compatible with Kubernetes

Configuration component and databases

App Factory Studio is the integrated administration and configuration component. Configurators use it in a browser to define data models, rules, interfaces and workflows without writing code. The result is published to any of the front-end components.

The platform uses two kinds of databases:

  • the Factory configuration database, which holds the configuration of all application domains;
  • business databases, which store the application-specific data of each domain.

Vision Desktop Experience

Vision Desktop Experience is a WPF application that complements the web portals on the workstation. It gives the portal access to local resources.

  • digital certificates stored on a token, for document signing;
  • signature tablets, for handwritten signatures;
  • locally connected scanners and multifunction devices, using TWAIN and PDFsharp;
  • drawers and other info kiosk peripherals.

The application stores signing profiles locally. Each profile links a portal address, a portal account and a certificate installed on the machine.