Änderungen von Dokument Systemarchitektur


Von Version 2.1
bearbeitet von gru
am 02.07.2021, 11:04
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 1.1
bearbeitet von gru
am 20.01.2021, 16:20
Änderungskommentar: Imported from XAR

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -2,78 +2,6 @@
2 2  
3 3  {{formcycle/}} ist einer reine Java-Anwendung und basiert auf einer modularisierten und schichtenorientierten Komponenten-Architektur, die sich mit jedem Java-fähigen Betriebssystem unter einem Anwendungsserver (Tomcat, JBOSS) nutzen lässt. Der Datenbankzugriff basiert vollständig auf der //Java Database Connectivity API// ({{smallcaps}}Jdbc{{/smallcaps}}).
4 4  
5 -
6 -
7 -== Laufzeitumgebung ==
8 -Für den Betrieb von {{formcycle/}} ist Java in mindestens der Version 11 sowie ein entsprechender Servlet-Container (z.B. Tomcat) nötig. Ferner wird für die Daten-Persistenz eine relationale Datenbank benötigt. FORMCYCLE unterstützt hierbei MySQL, MS SQL, PostgreSQL und Oracle.
9 -
10 -== Überblick der Modularisierung ==
11 -
12 -[BILD]
13 -
14 -{{formcycle/}} basiert auf einer hoch-modulare Anwendungs-Architektur welche sich in die folgenden Teile gruppieren lässt:
15 -
16 -=== Commons ===
17 -
18 -Innerhalb der Commons Module stehen die in der kompletten Anwendung verwendeten Model- und Entitäts-Klassen zur Verfügung.
19 -
20 -=== DAO ===
21 -
22 -Innerhalb der DAO-Module ist die Logik für die Daten-Persistenz gekapselt. Hierbei kommt Hibernate als JPA-Implementierung zum Einsatz und ist für die entsprechenden CRUD-Operationen der einzelnen Entitäten verantwortlich. Die Kommunikation mit der verwendeten Datenbank wird mittels HikariCP und den jeweiligen JDBC-Treibern realisiert.
23 -
24 -=== Logik ===
25 -
26 -Innerhalb der einzelnen Logik-Module ist die eigentliche Business-Logik von {{formcycle/}} gekapselt. Die relevantesten Funktionalitäten einzelner Module sind hierbei folgende:
27 -
28 -* Durchführung der Workflow-Verarbeitung (Abarbeiten der konfigurierten Aktionen)
29 -* Das Integrieren und Ausführen von installierten Plugins
30 -* LDAP-Anbindung an Fremdsysteme (UnboundID LDAP SDK)
31 -* Cluster-Kommunikation mehrerer {{formcycle/}}-Server (JGroups)
32 -* Das Ausführen zeitgesteuerter Aufgaben (Quartz)
33 -
34 -=== Formular-Designer ===
35 -
36 -Die Module des Formular-Designers sind neben dem eigentlichen Design-Prozess auch für das Rendern bestehender Formulare sowie das Validieren von eingegebenen Daten innerhalb eines Formular-Aufrufs verantwortlich.
37 -
38 -=== APIs ===
39 -
40 -Basierend auf den Logik- bzw. Formular-Designer-Modulen setzten mehrere Schnittstellen auf welche es ermöglichen die entsprechenden Funktionalitäten zu nutzen. So steht neben einer Java-API basierend auf RPC (SIMON/MINA) auch eine REST-Schnittstelle zur Verfügung. Ebenso lassen sich hierrüber die CRUD-Operationen der DAO-Schicht aufrufen.
41 -
42 -=== Verwaltungs-Frontend ===
43 -
44 -Das Frontend zur Verwaltung und Konfiguration von {{formcycle/}} besteht aus mehreren Modulen welche mittels entsprechender Beans (JSF) sowohl DAO, Logik oder auch entsprechende API-Module ansteuert und dem Benutzer die dazu benötigten Web-Oberflächen bereitstellt.
45 -
46 -=== Formular-Frontend ===
47 -
48 -Beim Formular-Frontend handelt es sich um Module welche für die Auslieferung und Verarbeitung der Formulare verantwortlich sind. Hierfür wird neben der RPC-API zum Aufruf des eigentlichen Renderns des entsprechenden HTML-Codes (inkl. CSS, JavaScript) auch die REST-API benutzt um weitere Daten oder Dateien innerhalb der Ausführung im Client-Browser bereitzustellen. Ferner werden über die RPC-API auch weitere Funktionalitäten wie z.B. die Benutzer-Authentifizierung oder das Ausführen von Plugins realisiert.
49 -
50 -== Verwendete Technologien/Bibliotheken ==
51 -
52 -Innerhalb von {{formcycle/}} kommen unter anderem folgende Bibliotheken und Technologien zum Einsatz:
53 -
54 -* Java ab Version 8
55 -* JSF inkl. Primefaces und Omnifaces
56 -* HTML, CSS und JavaScript
57 -* Aspose Word, Apache PDFBox, Apache POI
58 -* div. Apache Commons Bibliotheken
59 -* JPA, Hibernate ORM, HikariCP, JDBC
60 -* Liquibase
61 -* Hibernate Validator
62 -* JavaMail
63 -* Log4J über SLF4J
64 -* Quartz
65 -* EHCache
66 -* JGroups
67 -* SIMON, MINA
68 -* UnboundID LDAP SDK
69 -* SimpleXML, fastjson
70 -* Xalan XSLT processor
71 -* Mozilla Rhino
72 -
73 -
74 -
75 -ALT:
76 -
77 77  == Systemarchitektur ohne Einsatz eines optionalen Frontend-Servers ==
78 78  
79 79  {{figure image="systemarchitektur.png" width="300"}}