如果你是从事于计算机软件相关工作的人, 那你肯定经常见到 Apache 这个单词, 也应该知道 Tomcat 这个服务器软件的名字, Catalina 可能陌生一点, 但你在配置 tomcat 时, 一定会添加一个环境变量, 然后指向 tomcat 的安装路径, 这个环境变量的名字就叫 Catalina_Home, 进入 tomcat 安装目录, 里面很多文件名字也叫 Catalina. 那么这三个单词作为软件的名字有什么含义, 相互之间又是什么关系呢?
上世纪八十年代, 当互联网开始在美国大学流行的时候, 美国计算机名校伊利诺伊大学香槟分校 (UIUC) 的国家超级计算应用中心 (National Center for Supercomputing Applications, NCSA) 组织了一些研究生开始编写基于 HTTP 通信协议的服务器端和客户端程序. 客户端端程序叫做 mosaic, 是第一个被普遍使用的网页浏览器, 也是 Netscape(网景)浏览器的前身, 之后演变为 Mozilla Firefox. 而服务器端程序就是最早的 web 服务器软件之一, 名叫 NCSA HTTPd, 它完整地实现了 HTTP 协议, 整个实验获得了成功. 然而伊利诺伊大学香槟分校也许仅出于学术研究目的, 在实验成功后开发工作就没有继续下去, 研究小组也随之解散, 但他们将这两个软件开源, 其代码可以自由下载修改并发布.
此时的互联网对 HTTP 服务器软件的需求越来越大, 公开源代码的 NCSA HTTPd 成了进一步发展的极好起点. 很多研究者不断地给它添加功能, 增加代码, 并对不断出现的 Bug 打补丁. 但因为缺乏规划和管理, 出现了越来越多的重复劳动, 随之而来的则是越多的补丁带来越多的 Bug.1995 年 2 月, 为解决这种单打独斗的现象, 8 名志同道合的开发者决定成立一个小组, 一起重写整个 NCSA HTTPd 程序, 发布一个基于 NCSA HTTPd 的可靠的服务器软件. 开发工作完成后, 他们将软件命名为 Apache, 全称 Apache HTTP Server.Apache 本是美洲原住民印第安人一支部落的名字, 这个部落因为高超的作战策略和无穷的耐性而闻名, 同时也是最后一个屈服于美国政府的民族. 开发小组以此寓意软件高效, 可靠, 同时表达了大公司迟早会参与竞争并 "教化" 这块最早的开源网络之地的担心. 另外, 因为整个软件是在 NCSA HTTPd 基础上打了很多补丁程序, 他们也戏称它是 "A Patchy Web Server", 意为一个打了很多补丁的 Web 服务器软件."A Patchy" 与 Apache 谐音, 故以 Apache 命名一语双关.
Apache HTTP Server 发布后, 由于其具有坚实的稳定性, 异常丰富的功能和灵活的可扩展性, 得到了极大的成功. 1999 年 6 月, 为有效支持 Apache HTTP Server 以及相关软件的发展, Apache 开发小组成员们成立了一个非盈利性的 Apache 软件基金会(Apache Software Foundation). 大家对 Apache 这个名字的熟悉大概也是因为这个基金会, 它支持开发了诸多享誉全球的开源软件, 这些软件的名字前都会加上 Apache, 其中就包括 Apache Tomcat.
Tomcat 的这个单词的意思是 "公猫", 因为它的开发者姆斯. 邓肯. 戴维森希望用一种能够自己照顾自己的动物代表这个软件, 于是命名为 tomcat, 它的 Logo 兼吉祥物也被设计成了一只公猫形象. Tomcat 是 1999 年 Apache 软件基金会与 Sun 等其他公司一起合作的 Jakarta(雅加达)项目中的一个子项目, 作为服务器的容器支持基于 Java 语言编写的程序在服务器上运行, 这样的程序被称为 Servlet, 因为它是运行在 "Server" 上的 "Applet". 理论上讲这样一个容器并不是一个完整的服务器软件, 因为它只能运行 Java 程序而不能生成 html 页面数据, 也不能处理并发事务. 但它集成了 HTTP 服务器程序, 也就可以单独作为一个服务器软件来部署以处理 HTTP 请求, 但 tomcat 核心技术并不在于此, 所以除了用于开发过程中的调试以及那些对速度和事务处理只有很小要求的用户, 很少会将 Tomcat 单独作为 Web 服务器. 通常开发者会让 tomcat 与其他对 Web 服务器一起协同工作, 比如 Apache HTTP Server.Apache HTTP Server 负责接受所有来自客户端的 HTTP 请求, 然后将 Servlets 和 JSP 的请求转发给 Tomcat 来处理. Tomcat 完成处理后, 将响应传回给 Apache, 最后 Apache 将响应返回给客户端. 于是在 tomcat 中运行 Java 程序也就是 Servlet 的那个模块因为体现了 tomcat 最核心特点而引起了大家的重视, 而这个模块的名字叫做 Catalina.
Catalina 是美国西海岸靠近洛杉矶 22 英里的一个小岛, 因为其风景秀丽而著名. Servlet 运行模块的最早开发者 Craig McClanahan 因为喜欢 Catalina 岛故以 Catalina 命名他所开这个模块, 尽管他从来也没有去过那里. 另外在开发的早期阶段, Tomcat 是被搭建在一个叫 Avalon 的服务器框架上, 而 Avalon 则是 Catalina 岛上的一个小镇的名字, 于是想一个与小镇名字相关联的单词也是自然而然. 还有一个原因来自于 Craig McClanahan 养的猫, 他养的猫在他写程序的时候喜欢在电脑周围闲逛. 但这与 Catalina 有什么关系呢? 我想可能是 Catalina 岛是个悠闲散步的好地方, 猫的闲逛让 Craig McClanahan 想起了那里.
参考文献
- http://en.wikipedia.org/wiki/Apache_Software_Foundation
- http://en.wikipedia.org/wiki/NCSA_HTTPd
- http://en.wikipedia.org/wiki/Apache_HTTP_Server
- http://os.51cto.com/art/200608/30403.htm
- http://baike.baidu.com/link?url=NN4jXdeJMo-iiSEO1b2-vplZybw3cQkMkY7fhfoZXy1SSNbsN3cXizz7uxwbDvzHChcLzWx1XHUYmUBeIdiitK#3
- http://www.quora.com/In-Apache-Tomcat-where-did-the-name-Catalina-come-from
- http://blog.csdn.net/huangtingyu/article/details/3429789
- http://www.cnblogs.com/gaojing/archive/2009/09/15/1565731.html
来源: http://www.bubuko.com/infodetail-3232644.html