a6fw is a Java framework for the rapid development of a rich GUI web client and/or rich GUI windows client, OLTP type applications using Model Driven Architecture (MDA) and declarative principles. It consists of modular pluggable application layers (UI, network, business layer, server layers) which can be combined, substituted, and scaled to meet the demands of the specific application being built.
Introduction to the Problems of Modern Application Development
Modern applications generally force the development staff to make early decisions regarding whether they are creating a rich GUI client application or a not so rich GUI web application. Most end users want a rich GUI client with features such as multiple windows, intelligent windows resizing, hot-keys for rapid screen and application navigation, customizable preferences, etc. Most IT managers want zero-downloads for ease of application deployment, and easily maintained applications that can adapt to changes in the marketplace and technology, and a rapid application development process so they can get to market or deploy quickly. The rich windows application client is well defined and implemented, but the rich web application client is still evolving. New rich web application clients are starting to look more and more like rich windows applications (e.g. Oracle’s PeopleSoft GUI and Microsoft’s Avalon). As technology and user preferences change most applications are stuck in the architecture environment that they were originally built. It can be very difficult for them to evolve without a total rewrite of the application.
a6fw allows end users to get the rich client they want while also satisfying the demands of the IT managers for zero-maintenance deployment and rapid application development. It can be used to produce both rich windows applications and rich web applications using the exact same code. The application can even run the same declarative windows code on both rich windows clients and rich web clients at the same time against the same server backend. All major component layers (UI, network, business, and server layers) are pluggable. Different solutions can be “plugged in” as appropriate and as technology and user preferences evolve. E.g.: An Ajax web GUI can be plugged in to the GUI layer to instantly allow the application to have Ajax like features; the persistent layer can be switched from TOPLink to Hibernate; the network communication layer can be plugged into SOA, EJB, JINI, or direct.