![]() |
![]() |
||||
An application framework developed by Metawerx to create workflow-based applications.
A MAPP system is developed in JSP and Java, using the following technologies:
MAPP was written from the ground up to work in a distributed clustered environment using the latest Java 1.4 and 1.5 technologies, as a new modern starting point for future metawerx software.
The framework is in use by a number of web-based and extranet applications, providing back-end administration and workflow management, as well as front-end dynamic websites.
The design principal was to go back to scratch, combining some of the original principals behind software design from the 60's (such as I/P/O), C development techniques from the 80's and early 90's, methodologies borrowed from RAD and Agile, an understanding of customer expectations and realistic needs, our own dissatisfaction with currently available architectures, and a fresh look at the web as a platform for software development.
Internally, the goal was to create software with as much internal reuse and automation as possible and to make the application highly dynamic to avoid recompilation for many of the customer change requests we have had as developers over the years.
By reducing code size, the task of documenting internal features became easier and the code became small and easy to manage. Turnaround time for new feature and change requests was decreased dramatically by keeping rules in the database itself. This meant decreased costs and greater customer satisfaction. Scalability features were in from the beginning, including clustering, load balancing capabilities and database connection pooling via DBCP. High security was also a must, so protection against SQL injection, HTML injection, XSS (Cross Scripting), Session Hijacking, and Brute Forcing was included in the design.
There are around 8 queries used in the entire system. The data for each workflow stage and view is stored in the database itself, allowing dynamic updates without application restart or recompilation, for the most common development tasks.
One of the greatest benefits came from layering the application in a way that meant everyone could work in their own area of expertise without too much overlap. The roles we selected for this were:
For enquiries about the Metawerx Workflow System, please contact Metawerx.