The purpose of the Aviantes-Business-Application-Framework is to support Java developers in the implementation of professional business applications. The framework provides a fully executable base application with client, server, and database connectivity. Thus a developer can concentrate upon the creation of subject-specific details of the application. For that modules will be created on both client and server-side. Then these modules will be integrated into the framework, building a complete application. Moreover developers are also supported in creating these modules. Standard CRUD modules can be created very easily and fast (based on XML files, more about this below). The framework itself can also be adapted and expanded to own wishes and circumstances. That was and is a very important issue while this framework has been developed.
The Aviantes-Framework has been implemented completely in Java and can therefore run on all platforms where Java is available. Necessary is at least Java 5 (Java 1.5 SE). The framework implements the classic three-tier model consisting of Swing rich clients, a server component, and one or more external databases.
Following databases can be used at the moment: Microsoft SQL-Server, Oracle, MySQL or PostgreSQL. Further databases can be integrated into the framework by writing suitable adapter classes.
The server is used as container for subject-specific modules (business logic). It performs the automatic setup of the database(s). Each tenant uses his own database. The server is preferably embedded into a J2EE container like the Tomcat. But it's also possible to use it in other environments. An appropriate wrapper class has to be created to achieve this. Also a stand-alone operation would be feasible. A wrapper class for J2EE containers is included within the framework. Consequently an immediate deployment is possible (for example into the Tomcat).
Data transmission between client and server is done via standard Java streams. No particular prerequisites must be met. If the standard implementation is used, communication will be performed directly via one port of the J2EE container (e.g. port 80). Therefore clients can be used everywhere where a browser is running too. Special firewall settings aren't necessary. It is also possible to intervene into the data transmission in order to implement special communication models or data encryption between client and server.
The client is based on Swing and can be launched for example via Java Webstart directly from a browser. Subject- specific modules will be integrated into the client. The framework already implements modules for users-, roles-, rights-, modules-, menu- and tenants management. Of course these existing modules can be replaced by own variations if desired. The presentation of the modules can be done in the following variants:
Other variants can be implemented. Standard CRUD modules for creating, reading, updating and deleting data rows can be easily created just by defining XML files. These modules (in the Aviantes-Framework named as XML modules) are completely functional without programming a single line of Java code. This makes it possible to produce complex standard modules within few hours. Subject-specific adjustments are made by extending certain framework classes. Of course it is also possible to develop specific modules completely on your own. The XML module framework itself can be expanded with own panels and widgets (components on the panels). Thus this framework is very powerful and allows a very efficient creation of professional applications. All texts used within the framework can be localized (also all user texts in XML files for modules and panels). Existing icons and graphics can be replaced with your own creations. Customizing the Java UIManager changes colors and fonts of all clients.
Each module consists of one or more panels which are arranged in tabs (inside a JTabbedPane) inside the module. Dependencies between panels in XML modules can be defined in order to build master-detail relationships. Even self implemented panels can be mixed with XML panels within a module.
The Aviantes-Framework uses a role-based user management. One or more roles are assigned to each user and each role gets certain rights within the client modules. Based on these rights each role can only use assigned modules. In addition it will be defined specifically what actions one role can perform in one certain module. For example the role can only view records but has no right to modify them or the role can view and modify records but not delete them etc. This behavior is customizable in each self implemented module. So each module can decide which rights it provides.
The easy possibility to adapt the framework to individual needs was and is one important design goal while the framework has been implemented. Thus it offers not only the already mentioned modularity but also the ability to change and extend core components of the framework.