Featured Whitepapers
Newsletter sign-up
View all newsletters

Sign up for our technology specific newsletters.

Enterprise Java
Email Address:

Integrate software development frameworks

Take the best development frameworks and put them to work for you

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone

Many challenges exist in software development: Projects must be developed quickly, yet be high-quality. For better code maintainability and application stability, they should utilize useful design patterns. Development projects must also integrate seamlessly with existing legacy systems while providing a path to more advanced technology, without the downtime or expense. And they must offer the freedom to choose how you implement and use new technology.

In the face of these challenges, the software development community has turned to application frameworks to guide development. Application frameworks allow consistency in software design and provide low-level services that developers can use (and reuse) to speed development. The right application framework can dramatically reduce software development and maintenance costs. By using application frameworks, software developers can achieve the reusability and quality object-oriented programming promises but seldom delivers in the real world.

Application frameworks are available for a variety of development environments and technologies, both commercial and open source. Though these frameworks prove useful, they don't always work cleanly with one another. For example, your development team may find three separate frameworks, one for user interfaces, one for persistence (datastores), and one for data encryption. Each has its own dependencies and its own frame wherein development should occur.

To use all three, extra work is required; code must be written to allow these different frameworks to work together. While the work is usually well worth it, it slows development and introduces a new layer of complexity—one that negates the benefits the three separate frameworks bring to application development. This extra code is also tightly coupled to your application frameworks and possibly to the application itself, reducing its reuse in other projects.

Keel technology

Keel addresses these issues. Keel technology is an open source meta-framework specification and implementation—a framework specifically designed for components and services of any type to work together. Just as an application framework provides guidelines and services for application development, Keel provides a consistent interface in which you can configure different application frameworks and immediately access them in your application development.

By providing this additional abstraction layer, you can use a variety of application frameworks to develop your application and not worry about how the frameworks interact and work together. Using Keel in the example above, the scenario changes in that instead of tying the three frameworks together using special code, you let Keel do that for you, thus reducing time to market and increasing your application's value.

Keel's core: Avalon

Keel is based on the Apache Avalon open source project. Avalon is an abstract set of design principles that allows components and services (a group of one or more components that provide a complete solution, like an application framework) of varying scale to be created, managed, and shared among applications written to use it. The two most important patterns are Inversion of Control and Separation of Concerns.

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Comment
Login
Forgot your account info?
Add comment
Anonymous comments subject to approval. Register here for member benefits.
Have a JavaWorld account? Log in here. Register now for a free account.
Resources