Application Server是一套软件,可以提供各种各样应用程序服务,例如Web服务(就是Web容器),EJB容器服务,分布式事务,安全性管理等等。AS提供的服务可以使程序员从一些低层但是又必须(例如分布式事务)的开发中解脱出来,只须针对AS提供的API作简单的开发就行。
中间件也就是上面说的这些组件,叫中间件是因为它既不是操作系统,又不是给客户直接使用(否则叫应用程序),只是给开发人员使用。
EJB容器就是实现了EJB标准的组件,也可以认为是个中间件。Web Server同理。
通常只有Java世界上才有中间件的说法,因为微软所有像事务处理这样的东西都是和操作系统绑死,没有中间件的生存空间。
这是我的认识,欢迎指正。