Generic Application Architecture (GAA)
GAA has been developed over a number of years and is based on a concept that all transactional web applications have basic core requirements and components (application blocks). Additionally an Enterprise Template has been incorporated, which is a Microsoft Dot Net feature that enables developers to create a template that defines the structure and content of a Visual Studio Solution. The architecture also takes advantage of some of Microsoft’s Application Blocks, although these have been customised to provide extra functionality. Most of the architecture was created when Microsoft had released only 2 of their application blocks (SQL Data Access & Exception Management). Some of the latest MS Application blocks could be used by this architecture, but at this stage no provision has been made for that.
A typical instalment consists of a working prototype that is modified to suit the specific business requirements. A document template can be used to identify the changes required so that the development time for applications can be estimated in advance.
Once in place, GAA enables one or more web applications to be developed, based on the same architecture and code base. It comes to the client with full access to all code and components. It is not a third party tool or product, merely a complete code base and architecture that provides a structure from which new projects can be developed.
The benefits to such architecture include adherence to standards and coding conventions, speed of delivery, rapid skills transference between developers in the organisation and a proven methodology. The enterprise template benefits developers in ensuring that standards and architecture are not compromised. This is particularly beneficial for new or inexperienced developers. Experience and feedback from the collaborative group of developers is that the development process can be grasped within a short time frame.
The code can be further customised at will and an initiative between the collaborative group of developers exists. This collaboration is in place to benefit all stakeholders who implement this architecture. If any issues or enhancements are made, they are made available as upgrades if required. The current version is suitable for implementation as-is and there is no obligation to take advantage of any upgrades.
GAA uses the View, Model, Controller pattern and consists of the following logical layers:
• Web Template (View Layer)
• Workflow Façade (Controller Layer)
• Web Service Layer (Controller Layer for communication across physical boundaries)
• Business Services Layer (Application Model)
• Data Access Layer
GAA has been implemented in Australian Federal Government departments, a large Australian Blue Chip Retail Company and financial institutions in UK and South Africa. It is proven to be a successful model for high performance, volume and availability, transactional web-based applications.
GAA and associated prototype has been fully tested and comes with some automated NUnit tests.