| ... |
... |
@@ -2,80 +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 |
|
-{{figure image="Systemarchitektur_Überblick.png" width="300"}} |
| 13 |
|
-Überblick der Modularisierung von {{formcycle case="dat"/}}. |
| 14 |
|
-{{/figure}} |
| 15 |
|
- |
| 16 |
|
-{{formcycle/}} basiert auf einer hoch-modulare Anwendungs-Architektur welche sich in die folgenden Teile gruppieren lässt: |
| 17 |
|
- |
| 18 |
|
-=== Commons === |
| 19 |
|
- |
| 20 |
|
-Innerhalb der Commons Module stehen die in der kompletten Anwendung verwendeten Model- und Entitäts-Klassen zur Verfügung. |
| 21 |
|
- |
| 22 |
|
-=== DAO === |
| 23 |
|
- |
| 24 |
|
-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. |
| 25 |
|
- |
| 26 |
|
-=== Logik === |
| 27 |
|
- |
| 28 |
|
-Innerhalb der einzelnen Logik-Module ist die eigentliche Business-Logik von {{formcycle/}} gekapselt. Die relevantesten Funktionalitäten einzelner Module sind hierbei folgende: |
| 29 |
|
- |
| 30 |
|
-* Durchführung der Workflow-Verarbeitung (Abarbeiten der konfigurierten Aktionen) |
| 31 |
|
-* Das Integrieren und Ausführen von installierten Plugins |
| 32 |
|
-* LDAP-Anbindung an Fremdsysteme (UnboundID LDAP SDK) |
| 33 |
|
-* Cluster-Kommunikation mehrerer {{formcycle/}}-Server (JGroups) |
| 34 |
|
-* Das Ausführen zeitgesteuerter Aufgaben (Quartz) |
| 35 |
|
- |
| 36 |
|
-=== Formular-Designer === |
| 37 |
|
- |
| 38 |
|
-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. |
| 39 |
|
- |
| 40 |
|
-=== APIs === |
| 41 |
|
- |
| 42 |
|
-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. |
| 43 |
|
- |
| 44 |
|
-=== Verwaltungs-Frontend === |
| 45 |
|
- |
| 46 |
|
-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. |
| 47 |
|
- |
| 48 |
|
-=== Formular-Frontend === |
| 49 |
|
- |
| 50 |
|
-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. |
| 51 |
|
- |
| 52 |
|
-== Verwendete Technologien/Bibliotheken == |
| 53 |
|
- |
| 54 |
|
-Innerhalb von {{formcycle/}} kommen unter anderem folgende Bibliotheken und Technologien zum Einsatz: |
| 55 |
|
- |
| 56 |
|
-* Java ab Version 8 |
| 57 |
|
-* JSF inkl. Primefaces und Omnifaces |
| 58 |
|
-* HTML, CSS und JavaScript |
| 59 |
|
-* Aspose Word, Apache PDFBox, Apache POI |
| 60 |
|
-* div. Apache Commons Bibliotheken |
| 61 |
|
-* JPA, Hibernate ORM, HikariCP, JDBC |
| 62 |
|
-* Liquibase |
| 63 |
|
-* Hibernate Validator |
| 64 |
|
-* JavaMail |
| 65 |
|
-* Log4J über SLF4J |
| 66 |
|
-* Quartz |
| 67 |
|
-* EHCache |
| 68 |
|
-* JGroups |
| 69 |
|
-* SIMON, MINA |
| 70 |
|
-* UnboundID LDAP SDK |
| 71 |
|
-* SimpleXML, fastjson |
| 72 |
|
-* Xalan XSLT processor |
| 73 |
|
-* Mozilla Rhino |
| 74 |
|
- |
| 75 |
|
- |
| 76 |
|
- |
| 77 |
|
-ALT: |
| 78 |
|
- |
| 79 |
79 |
== Systemarchitektur ohne Einsatz eines optionalen Frontend-Servers == |
| 80 |
80 |
|
| 81 |
81 |
{{figure image="systemarchitektur.png" width="300"}} |