一本关于tomcat源码分析的书---How Tomcat Works,提供下载地址
Tomcat的设计和实现处处体现着设计模式的思想,它的基本流程是首先通过解析xml格式的配置文件,获得系统的配置和应用信息,然后加载定制的组件模块提供各种系统服务。系统的各部分功能都是通过可以配置的组件模块来实现的。Tomcat实现中像Observer,Facade,Adapter,Singleton等多种设计模型在Tomcat的源码中随处可见,为我们提供了一个很好的学习设计模式的平台。我主要介绍一下Tomcat中程序流程控制所采用的设计模式,这是一个程序运行的框架。前面提到由于Sun公司的参与,Tomcat虽然基本的流程没有变化,但是Tomcat3.3和Tomcat4.0版本之间在概念上还是有很大地不同的。Tomcat3.3整体上是模块化的设计,而Tomcat4.0可以看作是采用面向组件技术进行设计的。组件是比模块更高级的一个层次。我们可以通过比较它们之间的不同来了解实现一个服务器软件可以采用的设计模式和实现方式
Tomcat不但为我们提供了设计和实现系统时的新思路,同时因为它是由组件或者模块构成的,所以它还为我们提供了大量可用的高效软件组件。这些组件都可以在我们的程序开发中使用。我简单列举一些,需要时可以直接从源码中取得。
一些特殊集合类数据结构如池、队列、缓存等可用于服务端开发。
\src\share\org\apache\tomcat\util\collections
一个简单的钩子(Hooks)机制的实现。
src\share\org\apache\tomcat\util\hooks
一个简单线程池(ThreadPool)的实现。
src\share\org\apache\tomcat\util\threads
组件Lifecycle接口的设计和实现。
\src\catalina\src\share\org\apache\Catalina
常用的日志信息的管理(Logger)的实现。
src\catalina\src\share\org\apache\catalina\logger
对xml格式的配置信息进行处理(XmlMapper)的实现。
src\catalina\src\share\org\apache\catalina\util\xml
对socket通讯的高级管理和实现(net)。
\src\catalina\src\share\org\apache\catalina\net
通过以上对Tomcat的简单的介绍,我们可以看出,作为一个开放源码的项目,Tomcat不但为我们提供了一个应用的平台,同时它还为我们提供了一个学习和研究设计模式、面向组件技术等理论的实践平台
How Tomcat Works 一书下载URL:
http://www.brainysoftware.com/
IBM developworks tomcat整体架设分析文章:
http://www-900.ibm.com/developerWorks/cn/java/l-from-tomact/index.shtml#1