WEB框架 之 Avalon概述
Avalon是一套服务器设计的框架,包含五个子系统:Framework,Excalibur,LogKit,Phoenix和Cornerstone。
1. Framework
是Avalon中其他工程的基础,定义了服务器所需的接口,规范和默认实现。
2. Excalibur
是所有的服务器均需要的共享工具,按照Avalon的规范编写,包括线程池,连接池,高效队列,和IO工具等等。
3. LogKit
是Avalon使用的日志工具,开发思想类似于JAXP。
4.
是可运行的服务器软件,带有内核的概念,可以嵌入其他服务器运行。
5. Cornerstone
是按照Avalon规则开发的可重用服务器构件,比如Socket管理和job队列等。
Avalon应用了两个重要的服务器设计思想:Inversion of Control和Separation of Concerns.这两个思想是由Component Oriented Programming, Aspect Oriented Programming, and Service Oriented Programming发展而来的。
IOC的概念是,所有的组件(Component)均应该由外部管理,换句话讲,对象的生命周期由其父对象控制,这可以减少对象耦合,提供系统的安全性(Scalable Security)。
SOC的概念是:大型系统应分解为小的层面,比如HTTP服务器需要:安全,扩展,配置,日志,异常处理,生命周期等等。
COP设计思想的核心是将大的复杂系统分解不同的组件,每个组件由接口(规范)和相应的实现组成,它与OOP的区别就在于系统分解的粒度。COP有如下优点:
1. 修改独立的部件不会影响其他部件和整个系统;
2. 一个功能可以选择不同实现方式。
SOP设计思想的核心是将系统分解为不同的服务,比如日志服务,认证服务,HTTP服务等等。服务与组件的区别就像硬件中主板和集成电路的区别。