A12: Frequently Asked Questions Teil 2

Diese FAQ beantwortet eine Reihe häufig gestellter Fragen rund um die Enterprise Low Code Plattform A12. Eine strukturierte Einführung in A12 bietet das Whitepaper „A12 – Low Code für individuelle Enterprise Software“. Der Fragenkatalog wird sukzessive erweitert. Haben Sie weitere Fragen? Kommen Sie gerne auf uns zu oder vereinbaren Sie gleich einen Demotermin.

Lesen Sie hier Teil 1 der FAQ

Inhalt

5.1. Wie wird die Sicherheit der A12-Plattform sichergestellt?
5.2. Wie werden A12-Projekte abgesichert?
5.3. Was ist mgm ATLAS?
5.4. Meine Anwendung muss die Sicherheitsanforderungen der IT-Grundschutz-Bausteine nach BSI erfüllen. Ist das mit A12 möglich?
6.1. Was ist A12 Plasma?
6.2. Wie funktioniert in A12 die Modellierung der Oberfläche?
6.3. Unterstützt A12 Barrierefreiheit?
6.4. Kann man mit A12 mobile Anwendungen erstellen?
6.5. Welche Themes bietet A12?
7.1. Welche Optionen bietet mgm für den Betrieb von A12-Anwendungen?
7.2. Unterstützt A12 Kubernetes?
7.3. Läuft A12 auch auf OpenShift-Clustern?
8.1. Lassen sich Teile der A12 Plattform auch einzeln verwenden?
8.2. Welche A12 Komponenten gibt es?
8.3. Wo finde ich den Source Code von A12?
8.4. Auf welchen konkreten Technologien basiert A12?

5. Security

5.1. Wie wird die Sicherheit der A12-Plattform sichergestellt?

A12 folgt dem Grundsatz Security by Design. Sicherheitsanforderungen werden von Anfang an berücksichtigt, um potenziellen Schwachstellen präventiv vorzubeugen. Security-Expert:innen begleiten alle Phasen der Entwicklung – von frühen Anforderungen über Architekturentscheidungen bis hin zu Abnahmetests. Darüber hinaus wird die Enterprise Low Code Plattform mit Hilfe der Security Testplattform mgm ATLAS kontinuierlich intensiv getestet.

5.2. Wie werden A12-Projekte abgesichert?

Die jeweils nötigen Security-Maßnahmen sind individuell nach den Anforderungen des Projekts festzulegen. Grundlegende Richtlinien, Best Practices und Empfehlungen für den sicheren Einsatz von A12 fassen die A12 Security Guidelines zusammen. Sie stehen auf der Dokumentationsplattform GetA12 bereit und skizzieren ausgehend vom A12 Full-Stack Project Template, wie eine sichere Standardkonfiguration aussieht. Neben der Absicherung von Service Endpoints und dem Ansatz für eine Logging-Strategie unter Berücksichtigung von Vorgaben der Datenschutz-Grundverordnung enthält die Dokumentation Tipps für eine sichere Konfiguration von Keycloak als Identity Provider und Empfehlungen zum Einsatz von Security Headers.

5.3. Was ist mgm ATLAS?

ATLAS ist ein von mgm entwickeltes Security Toolset, das eine Reihe von Werkzeugen wie OWASP Dependency Check, ZAP und sqlmap integriert. Es ermöglicht automatisierte Security Tests und stellt ein konsolidiertes Reporting bereit. ATLAS prüft u.a. auf bekannte Schwachstellen in Komponenten von Drittanbietern, erkennt Konfigurationsprobleme wie fehlende HTTP Security Header und testet, wie robust APIs gegenüber Attacken wie Injektionsangriffen sind. Mit Hilfe von ATLAS wird die A12 Plattform kontinuierlich und automatisiert auf Schwachstellen abgeklopft. Auch in A12-Projekten empfehlen wir den Einsatz von ATLAS.

5.4. Meine Anwendung muss die Sicherheitsanforderungen der IT-Grundschutz-Bausteine nach BSI erfüllen. Ist das mit A12 möglich?

Ja. Der Software-Entwicklungszyklus (Software Development Lifecycle, kurz SDLC) von A12 berücksichtigt bereits die Vorgaben des Bausteins CON.8 Softwareentwicklung. Die einschlägigen Anforderungen müssen in der Entwicklungsphase der Anwendung auf Basis Security 16 von A12 fortgeschrieben werden. Schließlich existieren Vorgaben an den Betrieb (Baustein OPS), die zu berücksichtigen sind. mgm hat bereits Erfahrung in der erfolgreichen Umsetzung der strengen Vorgaben der IT-Grundschutz-Bausteine – sowohl als Lieferant, als auch als Betreiber.

6. UI/UX

6.1. Was ist A12 Plasma?

A12 Plasma ist ein Designsystem, das mgm speziell für Geschäftsanwendungen entwickelt hat. Es besteht aus UI/UX-Komponenten, Verwendungsmustern und Gestaltungsrichtlinien, mit denen sich konsistente, effiziente und ansprechende Benutzeroberflächen gestalten lassen. Der A12 Widget Showcase enthält Beispiele für alle verfügbaren Plasma-Komponenten. Im Gegensatz zu reinen Designsprachen wie Material Design berücksichtigt Plasma auch einen erweiterten Funktionsumfang, der typischerweise von Geschäftsanwendungen abverlangt wird. Dazu gehören insbesondere Aspekte wie Skalierbarkeit und der Umgang mit einer hohen Informationsdichte.

6.2. Wie funktioniert in A12 die Modellierung der Oberfläche?

A12 setzt bei der Gestaltung der Benutzeroberfläche auf spezielle Oberflächenmodelle (UI-Modelle). Auch sie sind von der Idee geleitet, Technik und Inhalt voneinander zu trennen. Die Modelle ermöglichen eine abstrahierte Darstellung der Interaktionsstruktur – zum Beispiel den Aufbau eines Formulars – ohne dabei mit einer bestimmten technischen Umsetzung fest verdrahtet zu sein. Das hat den Vorteil, dass die technischen Darstellungsdetails und das Design losgelöst von den Oberflächenmodellen weiterentwickelt werden können. So lässt sich viel einfacher eine flächendeckend konsistente und barrierefreie Benutzeroberfläche realisieren. Für die Darstellung kommt das Plasma Designsystem zum Einsatz.

6.3. Unterstützt A12 Barrierefreiheit?

Ja, die A12-Plattform ist für die Erstellung barrierefreier Web-Anwendungen ausgelegt. Zahlreiche UI-Komponenten – u.a. auch die modellgetriebenen Engines für Formulare und Übersichtslisten – sind barrierefrei out-of-the-box. In der Projektpraxis von individueller Software sind jedoch auch immer zusätzliche Aspekte zu berücksichtigen. Es gibt spezifische Anforderungen, die eine Low Code Plattform per se nicht abdecken kann. Hierfür bietet das A12-Team den Projekten mit einem regelmäßig aktualisierten Leitfaden eine praxisorientierte Hilfestellung. Er enthält beispielsweise Hintergrundinformationen zur Zertifizierung, Vorgaben an das Design sowie Anforderungen an die Modellierung und die Entwicklung.

6.4. Kann man mit A12 mobile Anwendungen erstellen?

Ja. A12 ist für die Entwicklung von responsiven und geräteunabhängigen Webanwendungen ausgelegt. Sie bieten auch auf Mobilgeräten wie Tablet und Smartphone eine erstklassige User Experience.

6.5. Welche Themes bietet A12?

A12 stellt vier offiziell unterstützte Themes zur Auswahl (Default, Compact, Flat und Flat-Compact), die speziell auf die Anforderungen von Geschäftsanwendungen abgestimmt sind. Die Themes Default und Compact folgen einem strukturfokussierten Design. Flat und Flat-Compact bieten ein inhaltsfokussiertes Design mit dezenter gestalteten Navigationselementen. Neben diesen Standard-Themes lassen sich über Erweiterungen auch eigene, individuelle Themes realisieren.

7. Betrieb

7.1. Welche Optionen bietet mgm für den Betrieb von A12-Anwendungen?

Bei geschäftskritischer Software ist es unerlässlich, dass sensible Daten in einer vertrauenswürdigen, sicheren Umgebung liegen und der reibungslose Betrieb sichergestellt ist. Wie wichtig es ist, die volle Kontrolle über den Betrieb zu behalten, sehen wir beispielsweise immer wieder bei unseren Kunden aus dem E-Commerce-Sektor. Die Systeme laufen zu Zeiten hoher Anfragen wie im Weihnachtsgeschäft für lange Zeit auf Höchstlast ohne Downtime. Dafür muss die Software zum Einen hochperformant und skalierbar sein. Zum Anderen ist aber auch die alleinige Kontrolle über die zugrunde liegende Infrastruktur und die verwendeten Release-Stände nötig. Für die Bereitstellung von A12 bieten wir folgende Optionen an:

  • On-Premise Betrieb im unternehmenseigenen Rechenzentrum
  • Betrieb in der Private Cloud von mgm, gehostet in einem Rechenzentren in Deutschland
  • Cloud-Betrieb bei einem beliebigen Cloud-Anbieter

7.2. Unterstützt A12 Kubernetes?

Ja, A12-Anwendungen sind standardmäßig für das Deployment auf Kubernetes-Clustern ausgelegt. Basierend auf den Erfahrungen aus mehreren großen Softwareprojekten haben wir eine Auswahl an Tools aus dem Kubernetes-Ökosystem getroffen, die wir als Standard-Stack empfehlen. Grundsätzlich lassen sich A12-Anwendungen jedoch mit unterschiedlichen Technologie-Stacks betreiben – je nach den Vorgaben des jeweiligen Hosters.

7.3. Läuft A12 auch auf OpenShift-Clustern?

A12-Anwendungen laufen zwar nicht out-of-the-box auf Red Hat OpenShift-Clustern, können durch Anpassungen an der Konfiguration jedoch auch in solchen Umgebungen betrieben werden.

8. Technik

8.1. Lassen sich Teile der A12 Plattform auch einzeln verwenden?

Lassen sich Teile der A12 Plattform auch einzeln verwenden? Ja. A12 ist modular aufgebaut und in verschiedene Komponenten gegliedert. Der Schnitt der A12 Komponenten ist technisch motiviert. Jede Komponente verfügt über einen klaren Scope und klare Schnittstellen nach außen. Die Komponenten lassen sich flexibel einsetzen – auch einzeln. So kann man beispielsweise den Client verwenden und den Server selber schreiben.

8.2. Welche A12 Komponenten gibt es?

Komponente

Enthalten in Plattform-Lizenz

Beschreibung

Client Ja Modellgetriebene, Client-seitige Laufzeit-Komponente. Setzt das UI/UX-Konzept des Plasma Design Systems um und unterstützt Desktop, Tablet und Smartphone. Hauptaufgaben sind die Orchestrierung anderer UI Komponenten, insb. der A12 Engines, Datenbeschaffung und Zustandsverwaltung.
Engines Ja Modellgetriebene UI-Komponenten. Engines interpretieren Daten- und UI-Modelle. Sie basieren auf den Plasma UI/UX-Konzepten und nutzen die Widgets für das Rendering.
Widgets Ja Widget Library, basierend auf Plasma UI/UX-Konzepten. Siehe auch A12 Widget Showcase.
Kernel Ja Bündelt alles für die Erstellung und Verarbeitung von Dokumentenmodellen: Modellierungswerkzeuge, Sprache für Validierungen und Berechnungen, Client- und Server-seitige Laufzeitkomponenten, Java- und Typescript-API.
Data
Services
Ja API für die Verwaltung von Modellen und Daten. Enthält außerdem Routinen für Client/Server Kommunikation, Validierung, Persistenz, Indizierung.
User Man
agement, Authentica-
tion and Authorization
Ja Bündelt Lösungen rund um Authentifikation (Keycloak, OAuth 2.0, SAML, LDAP), Autorisierung (Spring Security, RBAC, ABAC, custom Logik) und User Management.
Workflows Ja Integration von Business Process Model and Notation (BPMN) in A12; ermöglicht grafische Modellierung serverseitiger Workflows und ihre Ausführung.
Simple Model Editor Ja Modellierungswerkzeug für Business Analysten.
Installer Ja Stellt alle aktuellen und aufeinander abgestimmten A12 Komponenten und Tools in einem vorkonfigurierten

Paket zur lokalen Installation bereit – damit kommen Business Analysten an eine Modellierungs-
und Demoumgebung.
ANTLR 4 Code Editor Ja ANTLR (Another Tool for Language Recognition) ist ein etablierter Parsergenerator, der u.a. für den Bau domänenspezifischer Sprachen eingesetzt wird. Die Komponente bietet einen in A12-Anwendungen einbindbaren Code Editor für die Bearbeitung solcher Sprachen – inkl. Syntax-Validierung und Highlighting sowie Auto-Vervollständigung.
Rocket.Chat Integration Ja Ermöglicht die Integration einer Livechat-Funktionalität in A12-Anwendungen – zum Beispiel, um einen Chat von Kunden mit Servicemitarbeitern zu ermöglichen. Nutzt im Hintergrund die Open Source Chat-Plattform Rocket.Chat.
Chatbot Ja Mit Hilfe der Komponente lassen sich Chatbots in A12-Anwendungen bringen. Sie nutzt die Chatbot-Entwicklungsplattform Rasa. Optional kombinierbar mit der A12 Rocket.Chat Integration.
Print Engine Ja Ermöglicht die Generierung von barrierefreien PDFs in A12 Geschäftsanwendungen. Mit dem Print Model Editor können Business Analysten und Fachexperten das Layout, Design und die Inhalte von PDFs gestalten. Die Print Engine befüllt diese Vorlagen eines Druck-Modells während der Laufzeit mit Werten aus Datenfeldern eines zugrundeliegenden A12 Dokumentenmodells.
Data Distribution Nein Transportschicht für die sichere und schnelle Synchronisation von Daten. Der technische Dienst ist dafür ausgelegt, Daten zwischen Servern und Clients zu verteilen und Änderungen zu propagieren – insbesondere auch in Szenarien, in denen Clients temporär offline sind.
Notification Center Nein Bündelt an einem zentralen Ort Meldungen an Nutzer – z.B. Infos zu neuen Aufgaben, Nachrichten, Termine und Erinnerungen. Stellt vordefinierte Benachrichtigungstypen wie Erinnerungen und Workflow-Ereignisse bereit. Mit Hilfe einer API lassen sich eigene, individuelle Benachrichtigungstypen ergänzen.

8.3. Wo finde ich den Source Code von A12?

Der Quellcode von A12 ist aktuell nur für Kunden und Partner in ausgewählten Großprojekten zugänglich.

8.4. Auf welchen konkreten Technologien basiert A12?

Durch die Trennung von Fachlichkeit und Technik lassen sich die eingesetzten Technologien bei Bedarf austauschen. Aktuell ist der Technologie-Stack von A12 folgendermaßen zusammengesetzt:

A12 PRODUCT

TECHNLOLOGY

DESCRIPTION

Kernel Java
Typescript
Groovy
Antlr Parser generator
StringTemplates Template Engine
JAXB Mapping Java objects to XML
Jackson JSON processor for Java
Widgets Typescript
React Building UIs
Styled Components
CSS
styling
Recharts Chart library
DraftJS Rich text editor
React-Dnd
Drag and drop handling
React-virtualized
Rendering partial data into DOM
Redux State management
UAA Typescript
Redux
State management
oidc-client-js
OpenIdConnect authentication protocol
Java
Spring
Application framework for the Java platform
Spring Boot
Auto configuration for Spring application
Spring-security
Spring security approach for Authorization (SpEL-Spring Expression)
KeyCloak
identity and access management
OAuth2/OpenID
protocol for authentication
SAML
protocol for authentication
LDAP
protocol for accessing and maintaining distributed directory information services over an IP network
Data
Services
Java
Apache solr
Search index
WildFly
Application server
Apache Tomcat
Application server
Eclipse Jetty
Application server
PostgreSQL Database
Oracle
Database
H2
Local In-Memory-DB
Spring Security
authentication, authorization
Spring Boot
Auto configuration for Spring application
NodeJS
Java runtime environment
Typescript API
Workflows Kotlin
Spring
Application framework for the Java platform
Spring Boot
Auto configuration for Spring application
Camunda
Platform for BPMN workflow and DMN decision automation
Typescript Frontend
React
Building UIs
Webpack
JavaScript module bundler
NPM
package manager for JavaScript
Overview Engine Typescript
React
Building UIs
Stylus
CSS preprocessor
Recharts
Chart library
DraftJS
Rich text editor
React-DnD
Drag and drop handling
React-virtualized
Rendering partial data into DOM
Redux
State management
Form Engine Typescript
JavaScript
TSLint
Analysing Typescript
NodeJS
Java runtime environment
NPM
package manager for JavaScript
Lerna
Managing multi-package repositories
Webpack
JavaScript module bundler
React
Building UIs
Redux
State management
Marked
Markdown in expression language
Jison
Expression language
moment.js
JavaScript wrapper for the date object
Tree Engine Typescript
React
Building UIs
Stylus
CSS preprocessor
Recharts
Chart library
DraftJS
Rich text editor
React-DnD
Drag and drop handling
React-virtualized
Rendering partial data into DOM
Redux
State management
Chat Solution
A12 Client
frontend
A12 Widgets
frontend
Rocket.Chat
Web chat platform
NodeJS
Java runtime environment
MongoDB
Data persistence
Chatbot Python
Rasa
Chatbot development framework
Tensor-flow
Machine learning/differentiable programming framework
Scikit-learn
Machine learning library
Flask
Web framework
Client Typescript
JavaScript
TSLint
Analysing Typescript
NodeJS
Java runtime environment
NPM
package manager for JavaScript
Lerna
Managing multi-package repositories
Webpack JavaScript module bundler
React
Building UIs
Redux
State management
Inversify
Configuration injection
Data Modeler Java
Tycho
Building Eclilpse plugins
RCP Building Eclilpse plugins
SWT Widget toolkit for Java
JFace UI toolkit
Jackson
JSON processor for Java
JSONSchema
Validating the structure of json data
Slf4J simple facade or abstraction for various logging frameworks
LOGBack
logging framework for Java applications
UI Designer Java
Tycho Building Eclilpse plugins
RCP Building Eclilpse plugins
SWT Widget toolkit for Java
JFace UI toolkit
Jackson JSON processor for Java
JSONSchema
Validating the structure of json data
Slf4J
simple facade or abstraction for various logging frameworks
LOGBack logging framework for Java applications
Simple Model
Editor
A12 Front end
Typescript
React Building UIs
Redux
State management
Redux Saga
library used to handle side effects in Redux
A12 Installer
Typescript
React
Building UIs
Redux
State management
Redux Saga
library used to handle side effects in Redux
Spring Boot
Auto configuration for Spring application
H2 Database
Local In-Memory-DB
Electron
Software framework to develop desktop GUI applications using web technologies
Plasma Design
Adobe illustrator Creating graphical user interfaces
Adobe XD
Creating screens and lo-fi prototypes
Azure
Creating hi-fi prototypes
PUG
Template engine – create reusable HTML
BEM Creating extendable and reusable CSS
Documentation
Asciidoc
User documentation
Typedoc
Generating API documentation for TypeScript
Javadoc Generating API documentation for Java
QA, Testing &
Security
Enzyme
Unit tests
Cypress
Integration tests
Testcontainers Integration/system tests based on Docker containers
JUnit 5
testing framework for java applications
MockK
For Kotlin
H2
Local In-Memory-DB
QFS-Test-Suite
Automated surface tests
PerfLoad
Load testing
Selenium
Browser automation
Mocha
JavaScript test framework
TestCafe
Automating end-to-end web testing
Sonarqube
Continuous inspection of code quality
OWASP Dependency Check
Scanning for vulnerabilities
TestRail
Managing and tracking testing
JAX-RS
Integration tests
jMeter
Functional behavior and performance tests
TestNG
Unit, functional, end-to-end, integration tests
Python
Orchestrating Security Test Suite
Docker
Running Security Test Suite
Sqlite, MariaDB
Persistent Storage for Licenses, Credentials, Configuration
OWASP ZAP
Dynamic Application Security Testing
Postman/Newman
REST client for API Testing
OWASP DefectDojo
Security Reporting and Monitoring
Xanitizer
Static Application Security Testing
Chai
Assertion library for Node
NYC
Test coverage reporting
NPM audit
Security review of project’s dependency tree
Hamcrest
creating customized assertion matchers
Runtime
Docker/Docker-compose
defining and running multi-container Docker applications
Kubernetes
managing containerized workloads and services
Prometheus
systems monitoring and alerting toolkit
Grafana
analytics & monitoring
ELK (Elastic, Logstash, Kibana)
log management
Ansible
Automating configuration management & application deployment
Development-Infrastructure Jenkins Automation of builds and deployment
Artifactory
Managing code repositories
GIT
Version control
Bitbucket
Code Collaboration & Version Control
Gradle
Build automation
Maven
Build automation
Webpack
JavaScript module bundler
NPM
package manager for JavaScript

Sie wünschen weitere Informationen?
Den Kontakt zum A12-Team finden Sie hier.