介绍
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。
执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或 OS 环境。
中间件是介于操作系统和应用软件之间,为应用软件提供服务功能的软件,有消息中间件,交易中间件,应用服务器等。由于介于两种软件之间,所以,称为中间件。
常用的中间件
- 一般本地开发的话,小项目,或者是个人开发建议使用tomcat
- linux系统建议使用jetty或apache hpptd
- 大型的项目就用JBOSS或webloigc
- 大项目或者商业项目一般采用:weblgoic/webshere,其他的还有jboss、glasshfish等
- 一些示例项目或者小项目常采用jetty
tomcat
Tomcat 是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Java Web 应用服务器(Servlet 容器)。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。Tomcat默认使用 8080 号端口
JBOSS
JBoss是全世界开发者共同努力的成果,一个基于J2EE的开放源代码的应用服务器。 因为JBoss代码遵循LGPL许可,你可以在任何商业应用中免费使用它,而不用支付费用。JBoss支持EJB 1.1和EJB 2.0 EJB3.0的规范,它是一个管理EJB的容器和服务器。类似于Sun’s J2SDK Enterprise Edition(J2EE),JBoss的目标是一个源代码开放的J2EE环境。但是JBoss核心服务仅是提供EJB服务器。JBoss不包括serverlers/JSP page 的WEB容器,当然可以和Tomcat或Jetty绑定使用。
优点:
-
JBoss是免费的,开放源代码J2EE的实现,它通过LGPL许可证进行发布。
-
JBoss需要的内存和硬盘空间比较小。
-
安装非常简单。先解压缩JBoss打包文件再配置一些环境变量就可以了。
-
JBoss能够"热部署",部署BEAN只是简单拷贝BEAN的JAR文件到部署路径下就可以了。如果没有加载就加载它;如果已经加载了就卸载掉,然后LOAD这个新的。
-
JBoss与Web服务器在同一个Java虚拟机中运行,Servlet调用EJB不经过网络,从而大大提高运行效率,提升安全性能。
-
用户可以直接实施J2EE-EAR,而不是以前分别实施EJB-JAR和Web-WAR,非常方便。
weblogic
Weblogic是由Oracle Corporation开发的符合Java Enterprise Edition规范的Weblogic Server。它是根据专有许可证获得许可的。它是完全使用Java编程语言编写的。它最初是由BEA系统开发和维护的,后来于2008年被Oracle Corporation收购。它处理系统和配置级别的功能,并且开发人员可以集中应用程序级别的逻辑或业务逻辑,从而简化了Oracle的开发和部署。将应用程序放入Web容器,即应用程序服务器或Web服务器。它是当今行业中最好的服务器之一。Weblogic为不同的模块处理大量的服务或功能,并且无需任何编程或额外的努力即可立即提供许多应用程序细节。
weblogic和tomcat的区别:
- Weblogic具有不同的功能,例如事务管理,消息队列,数据库连接处理和许多其他功能,而Tomcat具有轻量级,开源,灵活,稳定,servlet,JSP,将应用程序嵌入到tomcat异步日志记录中等等。
- Weblogic是具有EJB支持的完全加载的容器,而Tomcat是Servlet和JSP支持的容器。
- Weblogic是许可版本和基于Java EE的商业Web服务器,具有高度可扩展,快速,安全和高性能的Web服务器,而Tomcat是开源的,基于Servlet和JSP规范的参考实现。
- Weblogic是市场上最好的服务器,具有数据库池功能,而且购买许可证的价格有点昂贵,而Tomcat是免费的,并且在大型应用程序的功能方面存在局限性。
- Weblogic具有针对任何新功能或新JDK版本的更快更新,而Tomcat不会立即提供JDK版本更新或任何其他功能更新,但需要花费较长时间。
- Weblogic具有应用程序版本控制功能,消息传递引擎,故障排除,数据库调优,数据源池,而Apache Tomcat Server没有此功能。
jetty
Jetty目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器。
它有一个基本数据模型,这个数据模型就是 Handler(处理器),所有可以被扩展的组件都可以作为一个 Handler,添加到 Server 中,Jetty 就是帮你管理这些 Handler。
下图是 Jetty 的基本架构图,整个 Jetty 的核心组件由 Server 和 Connector 两个组件构成,整个 Server 组件是基于 Handler 容器工作的,它类似与 Tomcat 的 Container 容器。
Jetty 中另外一个比不可少的组件是 Connector,它负责接受客户端的连接请求,并将请求分配给一个处理队列去执行。
特点:
- Jetty的架构比Tomcat的更为简单
- Jetty的架构是基于Handler来实现的,主要的扩展功能都可以用Handler来实现,扩展简单
- Jetty可以同时处理大量连接而且可以长时间保持连接,适合于web聊天应用等等
- Jetty的架构简单,因此作为服务器,Jetty可以按需加载组件,减少不需要的组件,减少了服务器内存开销,从而提高服务器性能
- Jetty的应用更加快速,修改简单,对新的Servlet规范的支持较好。