Apache Avalon provides a complete platform for component programming including a core framework, utilities, tools, components and containers. By using key design patterns such as Inversion of Control (IoC) and Seperation of Concerns (SoC), Avalon achieves a number of advantages over traditional object oriented programming frameworks: No implementation lock Low coupling between components Component lifecycle management Configuration management and easy to use API Component meta-data framework and tools Service dependecy management Embeddable containers for standalone, J2EE and web environments In Component Oriented Programming (COP), reusable and replaceable components can be assembled in a container to provide application blocks. Blocks in turn can be used to build anything from a client desktop application to an FTP server to a web service. Avalon provides a variety of basic components and default application blocks in order to help you quickly build your own application solution. Given this, the Avalon team aims to: Provide a stable COP development platform (currently in JAVA) Create a rich set of client components API’s and default implementations Develop complete container solutions Explore and extend COP development practices