Änderungen von Dokument Systemarchitektur


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

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -2,6 +2,78 @@
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 +
5 5  == Systemarchitektur ohne Einsatz eines optionalen Frontend-Servers ==
6 6  
7 7  {{figure image="systemarchitektur.png" width="300"}}