Deutsch English

Architektur Datenbank Client-Module XML-Module XML-Panel Features Beispiel Warenwirtschaft

Datenbank-Anbindung und -Einrichtung

Das Aviantes-Framework ist mandantenfähig, wobei jeder Mandant seine eigene Datenbank verwendet. Eine weitere Datenbank wird als System-Datenbank verwendet. In dieser werden z.B. die Daten der Benutzer-, Rollen- und Modulverwaltung gespeichert. Es ist auch möglich, eine der Mandanten-Datenbanken als System-Datenbank zu verwenden. Auch eine Nutzung mit nur einem Mandanten ist selbstverständlich möglich. Das nachträgliche Hinzufügen weiterer Mandanten in einem bestehenden System kann ebenfalls einfach realisiert werden. Hierfür gibt es ein eigenes Modul zur Verwaltung der Mandanten. In diesem können neue Mandanten angelegt oder bestehende entfernt werden, ohne dass der Server neu gestartet werden muss.

Beim Start des Servers werden die Datenbanken vom Framework so eingerichtet wie die Applikation es benötigt. Dazu wird das gewünschte Datenbank-Schema mit Hilfe von XML-Dateien beschrieben. Für eine Datenbank-Tabelle sieht das z.B. wie folgt aus:

<!-- Benutzer -->
<table name="jafUser" description="Benutzer">
    <column name="nNr"        type="int"                    nullable="false" />
    <column name="sUsername"  type="varchar"  length="32"   nullable="false" />
    <column name="sPassword"  type="varchar"  length="32"   nullable="true" />
    <column name="sSurname"   type="varchar"  length="32"   nullable="true" />
    <column name="sFirstname" type="varchar"  length="32"   nullable="true" />
    <column name="sRemarks"   type="varchar"  length="1024" nullable="true" />
    <column name="sStatus"    type="char"     length="1"    nullable="true" />
    <primaryKey name="pk_jafUser">
        <column name="nNr"/>
    </primaryKey>
</table>

Wenn es bei einem Programm-Update notwendig ist, die Datenbank-Struktur anzupassen, so werden die XML-Dateien vom Entwickler entsprechend verändert. Beim nächsten Serverstart nach dem Einspielen der aktualisierten Applikation wird die Datenbank voll automatisch auf den neusten Stand gebracht. Damit ist gewährleistet, dass die Anwendung immer den gewünschten Zustand der Datenbank-Struktur vorfindet.

Jedem Server-Modul wird ein Objekt zur Verfügung gestellt, über das Datenbankzugriffe sehr einfach abgewickelt werden können. Der Server nutzt dazu einen Connection-Pool, der die Connections für die Threads und damit für die Zugriffe der Clients zur Verfügung stellt. Natürlich ist es auch möglich, eigene Persistenz-Frameworks zu verwenden, die das Object-Relational Mapping, also das Speichern von Java-Objekten in der Datenbank übernehmen.