容器的概念
广义上讲容器是用来包装或装载物品的贮存器(如箱、罐、坛)或者成形或柔软不成形的包覆材料。在编程领域中,容器提供组件运行的环境,容器本身可以提供一组服务,让组件按标准方式利用。这里的容器容器比现实中的更为抽象,但思想是想通的。
容器与应用服务器(更确切的说,应该是应用服务器软件)
最开始接触Tomcat的时候,有人喊它容器,也有人叫它应用服务器。我就想啦,容器和应用服务器什么关系呀?我查了大量资料,还是没有真正区分开这两个概念。资料显示,在软件开发领域,容器基本上等同于应用服务器,貌似它们是从不同的角度对同一事物的描述。我觉得容器属于应用服务器。
J2EE容器
先来张图片:
对图片的解释说明:
J2EE接口
一组标准Java企业API版本,对实现这些标准接口的JZEE企业组件提供数据库、Web、应用程序服务器平台之间的独立性。
我的理解:这就是所谓的面向接口的编程,不依赖具体的实现,只依赖接口。
J2EE接口实现
Java企业API的Java企业服务提供者实现方法。
我的理解:J2EE应用服务器要实现J2EE的十三种规范。比如:JBoss就实现了J2EE的所有规范,而Tomcat没有全部实现,所以JBoss是J2EE应用服务器,而Tomcat不算是J2EE应用服务器。
资源管理服务
资源管理提供高效、可伸缩、可依赖的计算环境。也用于管理与连接分布式数据库或外部系统过程相关联的资源。
部署/配置服务
可配置和可移植地部署J2EE组件的环境。
J2EE平台
J2EE所用的Java2标准版(J2SE),包括Java运行环境提供的J2SE硬件与操作系统平台无关特性,还包括J2SE
API提供的各种公共编程和分布式通信服务。
容器的分类
J2EE规范定义了四种容器,分别是:小程序容器、应用程序客户机容器、Web应用程序容器、EJB应用程序容器。开发B/S系统的人员,经常接触到的是Web应用程序容器和EJB应用程序容器。
容器的作用
一张图胜过千言万语,来张图。
上图很形象的为我们描述了容器与组件的关系,不同类型的组件存放在不同的容器中,容器为它里面的组件提供运行的环境等基础支持。从某种意义上说,容器也是抽象、提取的结果,它将组件中公用的东西提取出来,提前为我们实现,给我们的开发带来了很大的便利。
就写这么多吧,以上有哪些理解不到位的地方,还望大家批评指正。