Avalon原意为 凯尔特族传说中的西方乐土岛,据说亚瑟王及其部下死后尸体被移往该岛。
Avalon是五个子项目的父项目:Framework、Excalibur(亚瑟王的神剑)、LogKit、Phoenix(长生鸟、凤凰)、和Cornerstone(墙角石)。Avalon把重点放在服务器端编程和让以服务器应用为中心的项目的设计和维护变得更容易。Avalon可被描述为一个包含了实现的框架。

 

Framework
Avalon Framework是Avalon大伞下的所有其它项目的基础。它定义了接口、契约(contracts)和Avalon的缺省实现。Framework将大部分工作置于其中,因此也是最为成熟的项目。
        框架这个词在应用程序中的含义很广泛。重点放在单一行业的框架被称为垂直市场框架,例如医药系统或通信系统。原因是同样的框架不能胜任其它行业。具有很好通用性,可用于多个行业的框架被称为水平市场框架。Avalon是一个水平市场框架。您可以使用Avalon的Framework构建垂直市场框架。
        用Avalon构建的最有说服力的垂直市场框架的例子是Apache Cocoon出版框架。Apache Cocoon第2版是使用Avalon的Framework、Excalibur和LogKit项目构建的。它利用了Framework中的接口和契约,让开发者能用更少的时间理解Cocoon是如何工作的。它也有效地利用了Excalibur提供的数据源管理和组件管理代码,这样它就不必重新XXXXX子了。最后,它使用了LogKit来处理出版框架中所有的日志问题。

Excalibur
Avalon Excalibur是一组服务器端组件,您可以在自己的项目中使用它们。它包括了池(pooling)的实现、数据库连接管理和其它一些组件管理的实现。
 
LogKit
Avalon LogKit是一个高速日志记录工具集,Framework、Excalibur、Cornerstone和Phoenix都用到它。它的模型与JDK 1.4 Logging package采用相同的原理,但与JDK 1.2+兼容。

Phoenix
Avalon Phoenix是服务器核心,它管理服务(Service,实现为服务器端组件,称作Block)的发布和执行。主要采用了SOP思想[面向服务的编程(Service Oriented Programming ,SOP)的思想是把系统划分为由系统提供的一些服务]。Phoenix把每一种要提供的设施看作是一项服务,由特定接口和相关契约组成。服务的实现被称为Block。一个服务器程序是由多种服务组成的,认识这一点很重要。
 
Cornerstone
Avalon Cornerstone是一组Block或服务,这些Block可以布署在Phoenix环境中。这些Block包括了socket管理和Block之间的任务调度。
 
Scratchpad
Scratchpad并不是一个真正的正式项目,而是那些还没准备好放入Excalibur中的组件的一个临时区域。这些组件品质差别较大,它们的API也不保证会不变,直到它们被提升到Excalibur项目为止。


原理和模式
Avalon整个是基于一些特定设计原理来构建的。最重要的两个模式是反向控制(Inversion of Control) 和分离考虑(Separation of Concerns)。 反向控制(Inversion of Control,IOC)的概念是指组件总是由外部进行管理的。分离考虑(Separation of Concerns,SOC)模式是指不同的思考方向来看待您的系统。分离考虑模式又导致了Aspect Oriented Programming (AOP) 。研究者发现许多考虑不能在类或方法的粒度上进行处理。这些考虑被称为aspect。aspect的例子包括管理对象的生命周期、记日志、处理异常和清理释放资源等