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
6.4. Kann man mit A12 mobile Anwendungen erstellen?
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?
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?
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?
8.4. Auf welchen konkreten Technologien basiert A12?
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
|