什么是Avalon?
Apache的Avalon是一个包括核心框架、工具、组件和容器的面向组件编程(COP)的完整开发平台。通过使用关键设计模式,如反向控制模式(IoC)和分离考虑模式(SoC),Avalon实现了传统OOP框架的一些优点:
- 没有执行锁
- 组件之间低耦合
- 管理组件生命周期
- 配置管理和易用的API
- 组件元数据框架和工具
- 服务相关的管理
- 独立的、J2EE或Web环境的嵌入式容器
在COP方面,可重用的组件能够被组合到容器中,以提供应用程序模块。模块可以依次使用来创建你所需要的,从客户桌面应用程序,到FTP服务器,到Web服务,等等。Avalon提供各种基本组件和缺省的应用程序模块,帮助你快速的建立你自己的应用程序解决方案。
Avalon的目标是:
- 提供稳定的COP开发平台
- 创建一系列丰富的客户组件API极其缺省实现
- 开发完整的容器解决方案
- 探究和扩展COP的开发实践
Avalon的产品和子项目
(1)容器:Merlin
Merlin是Avalon的容器参考实现,提供对管理基于组件的复杂系统的全面支持。Merlin使用组件的元模型,使得简单或复合组件的自动装配和开发变得容易。
(2)框架
Avalon的组件模型一组联合的经典接口组成,用来定义容器和组件之间交换的物件。容器中的组件的需求使用和组件相关的元信息描述来表示。接口和缺省实现由Avalon的Framework包描述;元信息描述和相关工具包含在Meta包中。
Avalon的组件模型包括:
- Avalon Framework API及其实现:由定义常用应用程序组件关系的接口组成;采用最佳实践模式,通用组件的独立的轻量级的简易的实现。
- Avalon Meta:Avalon Meta模型定义组件类型和服务的功能标准。类型定义包括开发和运行的依赖信息和组件类型能够提供的服务的信息。
- Avalon Utilities:一组共享的工具集,支持缺省属性管理,环境变量方案,异常报告以及参数化Map实现(在Repository包中使用)。
- Avalon Repository:在开发时结合Avalon项目和Apache Directory项目,提供智能的bootstrapping、资源复制和物件管理框架。
- Avalon Logkit:一个作为Avalon组件的完善的日志框架(类似log4j)。大部分Avalon容器使用它作为缺省的日志实现。
(3)组件库
Avalon的组件库包括:
- Cornerstone Collection:一组可以用于简单应用程序开发的组件块。这些组件通常是表示基础结构块的单独组件。
- Excalibur Utilities:一组服务工具集,包括国际化、配置工具、线程管理、日志子系统等等。
- 第三方的组件库。