http://www.developer.com/java/ejb/article.php/3093651/Keel-The-Meta-Framework.htm
When developing an application—be it a Web, enterprise, or scientific one—developers often rely on different frameworks to provide a base for the application to be built upon. These frameworks consist of a complete set of components, functions, and services, specific to a particular kind of application development. There are various frameworks, free Open Source as well as commercial ones, being widely (and commercially) used at present. Some of these frameworks are listed below: Each of these frameworks provides all things necessary to create an application or an application component of a respective type. Thus, they are very useful in application development if used independently. But, the problem arises when these different frameworks are required to be integrated and work together to build a complete application. There are two common problems: The Keel framework helps overcome both of these problems. Keel is an efficient and highly extensible Open Source meta-framework, i.e. framework of frameworks, written in Java and currently in version 2.0 RC 1. Based on the popular Apache Avalon project, the Keel framework integrates together different types of (Java-based/Open Source or Commercial) frameworks, each specializing in a particular aspect of application development, such as user interface, database, messaging, security, and so forth. Keel brings together these frameworks to create a complete and well-integrated application from the solutions they provide. Keel allows developers to "plug or unplug" desired frameworks anytime to/from the application these frameworks are integrated into. This way, Keel gives developers the freedom to choose frameworks from a wide array of frameworks available, which are best suited for specific application development needs, while avoiding the tight coupling of frameworks. Keel also provides a a common means of communication among different frameworks, which remains unchanged when frameworks are plugged or unplugged. Keel achieves this by treating all application components, where each one may be based on a different framework, as independent units. Each independent unit is accessible through a standard interface, which serves as an invoking point of the services provided by the unit. The remaining units interact with this interface only, oblivious to what unit based on which framework is behind the interface. When a framework is replaced, only the respective unit's interface requires a small amount of change; the rest of the application remains unchanged. Keel is build around three core concepts . They are as follows: The following section shows these concepts at work. Conforming to the COP concept, Keel specifies a generic set of services that can serve as building blocks for an application being integrated. Some major services are listed below: These services, known as roles, are provided by the various components integrated by Keel into the application. Each role is actually an interface to a corresponding component that defines the service contract. The components are the implementations of roles and perform all tasks necessary to "carry out" corresponding roles. Keel provides default implementations for most of the services, while allowing developers to create their own components based on desired frameworks to put behind the interfaces. Figure 1. Example of Keel Roles and Components True to the SOC concept, each aspect of a component is segregated into independent tasks handled by separate interfaces. For example: a component can be logged, secured, persistent, and configurable. Each of these concerns is handled by separate interfaces. Following the IOC concept, all the roles and components are externally manageable. Keel consists of the configuration files roles.xconf and system.xconf for configuration of roles and components, respectively. These files can be modified at any time to change the configuration. Keel currently provides default implementations for most of the roles it defines, along with other implementation choices. Developers can use these default implementations, modify them to suit their requirements, or develop their own implementations and plug them into Keel. Given below is the list of some major roles, the frameworks their default implementations are based on, and other possible options: Work is in progress to add more implementations for all the roles, to provide developers with a wider choice of frameworks to base their implementations on. Keel is a powerful integration framework that brings together different types of application frameworks, yet avoids tight-coupling any of them together. Keel allows a user to plug and unplug desired frameworks into an application at any point in time, thus giving developers freedom to pick and use the best frameworks available to fulfill changing application development needs. Keel can be downloaded freely from Keel's home page. Keel Documentation Wiki is a good starting point for finding Keel-related information and links. Mugdha Chauhan (formerly Mugdha Vairagade) is a senior IT consultant and author. An Open Source supporter, she frequently writes articles and tutorials on useful emerging Open Source projects. Major tech portals including developer.com, IBM developerWorks, CNET Networks, Slashdot, and many eZines regularly publish her work. Her expertise and interests include Java, Linux, XML, wireless application development, and Open Source.
Keel: The Meta-Framework
October 17, 2003
Other Frameworks
Keel Overview
Core Concepts of Keel
Keel Architecture

Conclusion
About the Author