应用服务器是为应用程序提供业务逻辑的计算机软件。它提供了诸多服务,如管理大型分布式系统、数据服务、负载均衡、事务支持和网络安全等服务。应用服务器是三层应用体系的一部分,由图形化界面服务器、应用(业务逻辑)服务器和数据库/事务服务器组成。许多应用服务器支持Java平台,但是它们可能出现在其他环境中。
在企业环境部署应用服务器有几个充分的理由。大体上来说,应用服务器能够将应用程序的更新版和升级版分发给所有用户。系统管理员也得益于这个事实:可以集中对应用程序配置进行更改,这大大简化了技术支持,最终大大简化了最终用户体验。应用服务器还可以简化用户管理,不需要为应用程序建立和维护用户管理系统。这种类型的软件还可以改善可扩展性和资源使用状况,通过不同的部署包装器来展现业务组件。
随着云计算变得越来越重要,应用服务器的角色势必只会日益重要。
为了深入了解市面上这种软件的质量,我们列出了七款应用服务器,它们有望最终为部署了企业应用程序的机构大幅节省成本。
值得一提的两款应用软件是IBM WebSphere应用服务器和Apache Tomcat。IBM提供了社区版本的软件,采用免费使用和分发的许可证来发行,但是它基于下文介绍的Apache Geronimo。实际上,Apache Tomcat是一种Web容器,而不是完全成熟的应用服务器。Web容器是Web服务器中与服务器端小程序(servlet)交互的Web组件,而服务器端小程序就是一些Java类,可以扩展让客户端访问应用程序的服务器的功能。不过,Tomcat避免了与功能完备的应用服务器有关的一些开销。
为了深入了解现有软件的质量,我们列出了七款出色的开源应用服务器。但愿需要分层架构的企业会在这里找到感兴趣的一款应用服务器。
现在,我们介绍七款随时可用的应用服务器。我们全面介绍了每一款应用服务器,并深入分析了其特性,还提供了相关资源和评论的链接。
#p# JBoss
JBoss应用服务器是符合J2EE认证的平台,可用于开发和部署企业Java应用程序、Web应用程序和门户网站。除了扩展的企业服务(包括集群、缓存和持久化)外,JBoss应用服务器还提供了一系列齐全的J2EE 1.4特性。
JBoss应用服务器包括对Enterprise Java Beans (EJB) 3.0的支持,旨在显著简化企业Java编程模式。
JBoss是市面上使用最广泛的第一大Java应用服务器。成百上千的专业开源开发人员致力于为JBoss应用服务器从事开发。实际上,所有受雇为JBoss应用服务器从事开发的人都是从开源社区雇来的,他们每个人都为开源项目从事过开发工作。
特性包括:
•支持面向方面的编程(AOP)
•集群
•部署API
•分布式缓存(使用JBoss Cache,这是一个独立产品)
•分布式部署(批量部署)
•Enterprise JavaBeans版本3和2.1
•故障切换(包括会话)
•与Hibernate集成(面向持久化编程;Java持久性API或JPA)
•Java验证和授权服务(JAAS)
•与Java EE连接件架构(JCA)集成
•Java管理扩展件
•Java服务器页面(JSP)/ Java Servlet 2.1/2.5(Tomcat)
•JBoss Web服务(JBossWS),面向JAX-WS等Java EE Web服务
•JDBC
•负载均衡
•管理API
•OSGi框架
•RMI-IIOP(JacORB,Java和CORBA的缩写)
•SOAP with Attachments API for Java(SAAJ)
•Teiid数据虚拟化系统
•与JBoss 5包含在一起的JBoss EJB3实现了最新版的Enterprise Java Beans(EJB)规范。EJB 3.0深入改进和简化了EJB规范。EJB 3.0的目的是简化开发,方便测试驱动方法,并且主要致力于编写普通Java对象(POJO),而不是针对复杂的EJB API来进行编程。
•JBoss Messaging是JBoss企业中间件堆栈(JEMS)中的高性能JMS提供者,与作为默认消息提供者的JBoss 5包含在一起。它还是JBoss企业服务总线(ESB)基础架构的基石。JBoss Messaging对JBossMQ进行了全面改写,JBossMQ是JBoss AS 4.x系列的默认JMS提供者。
•JBossCache 2.0分为两个版本。一种是传统的树状结构、基于节点的缓存;另一种是PojoCache,这种内存中的、事务型的、复制的缓存系统让用户可以透明地处理简单的POJO,不需要用户主动管理复制或持久化方面。
•JBossWS 2是面向JBoss 5的Web服务堆栈,提供了与Java EE兼容的Web服务:JAXWS-2.0。
•JBoss Transactions是JBoss 5的默认事务管理器。JBoss Transactions基于被行业证实的技术,而且18年来一直是分布式事务领域的领导者。
•JBoss Web是JBoss 5中的Web容器,这个基于Apache Tomcat的实现机制包括Apache便携式运行时(APR)和Tomcat原生技术,以获得不亚于Apache Http服务器的可扩展性和性能特点。
#p# Zope
Zope(Z对象发布环境)是一款免费开源的、面向对象的Web应用服务器,用Python编程语言编写而成。
Zope可以帮助你迅速创建动态的Web应用程序,比如门户网站和内联网网站。Zope随带所需的各项功能,包括支持成员、搜索和新闻。
特性包括:
•全面、自动的硬件检测
•结合了Python的优点、ZODB对象数据库和内置安全系统
•内置的Web服务器
•FTP服务器
•WebDAV服务器
•XML-RPC服务功能
•基于Web的界面
•对象数据库——事务型对象数据库,不但能存储内容和自定义数据,还能存储动态HTML模板、脚本、数据引擎、关系数据库(RDBMS)连接和代码。
•与关系数据库集成
•脚本支持
•用于创建HTML模板的两种机制:动态模板标记语言(DTML)和Zope页面模板(ZPT)
#p# Apache Geronimo
Apache Geronimo是一款开源应用服务器,由Apache软件基金会开发,采用Apache许可证来发行。Geronimo目前与Java企业版(Java EE)5.0规范兼容。
Apache Geronimo v2.2.1服务器通过了Sun的JEE5认证测试套件的测试。每个Geronimo服务器包都包括两种可能的Web容器中的一种:Tomcat或Jetty。
Geronimo提供了一种名为GShell的命令外壳环境,用于执行命令。
特性包括:
•易于使用
•Build服务器
•与Java企业版(Java EE)5.0规范兼容,比如JDBC、RMI、电子邮件、JMS、Web服务、XML、Enterprise JavaBeans、连接件、服务器端小程序、门户组件、JavaServer Pages和几项Web服务技术
•组件包括:
○Apache Tomcat
○Jetty
○Apache ActiveMQ
○Apache OpenEJB
○Apache OpenJPA
○Apache ServiceMix
○Apache Axis和Apache Scout
○Apache CXF
○Apache Derby
○Apache WADI
○MX4J
•支持Java SE 6
•插件配置文件
•提供满足开发人员、管理员和系统集成人员要求的运行时环境
•与市面上最佳的开源工具(如Eclipse)集成
•Geronimo管理控制台是一种基于Web的界面,为管理Geronimo服务器的诸多方面提供了一种使用方便、对用户友好的方式
•Geronimo Eclipse插件(GEP)为之前版本的Geronimo服务器环境提供了兼容性支持
#p# GlassFish
GlassFish是一款最初由Sun公司为Java EE平台开发的开源应用服务器,现在由甲骨文公司来支持。这个项目提供了用于开发高质量应用服务器的结构化流程。
GlassFish基于Sun发布的源代码和甲骨文公司的TopLink持久化系统。它使用Apache Tomcat的衍生版本作为用于提供Web内容的服务器端小程序容器。
特性包括:
•开放的、模块化的、可扩展的平台
•轻型、灵活
•基于OSGi的可扩展核心
•企业就绪的应用服务器,拥有大规模可扩展性和先进的管理功能
•全面集群
•集中式管理,基于角色的安全
•SSH或DCOM配置
•高可用性
•易于使用的管理控制台
•命令行工具
•更新中心
•嵌入式API
•为应用服务器消除监控负担的Flashlight基础架构
•支持REST监控
•支持所有的Java EE API规范,比如JDBC、RMI、电子邮件、JMS、Web服务、XML及更多
•支持动态语言,比如Ruby on Rails、Jython和Groovy
•支持Java EE 6
•插入式容器、支持脚本语言
•可与微软.NET协同运行
#p# Zend服务器社区版
Zend服务器社区版是一款简单的、直观的开源软件Web应用服务器,面向PHP 5,旨在消除编程方面的繁琐细节,让用户可以致力于大局。
Zend框架的一个优点是,采用了高度模块化的模型-视图-控制器(MVC)设计,使得代码更容量重复使用、更容易维护。
你可以在开发和测试期间,使用Zend服务器社区版在生产环境中运行应用程序,确保在整个应用程序的生命周期中拥有一致的环境。
Zend Server提供了两个版本:Zend服务器社区版是一款轻型版的Zend服务器,另一个版本是全面的、企业就绪的Web应用服务器,它是为了在生产环境中部署、运行和管理业务关键型PHP应用程序而设计的。
特性包括:
•全面的PHP堆栈,包括Zend框架
•应用程序部署
•基于Web的PHP管理控制台
•调试器界面
•PHP缓存和优化
•字节码加速
•支持充分利用REST的Web API
•Java连接件
•PHP字节码加速(Zend Optimizer+)——无需对应用程序进行变更,即可提升性能
•数据缓存API——一组函数让开发人员可以将数据缓存到共享内存或缓存到磁盘
•可连接到所有常见数据库
•与Apache或IIS集成
•全面支持PHP 5.2和5.3
•原生安装
非开源Zend服务器的额外特性
•PHP监控
○函数错误
○数据库错误
○函数执行速度慢
○查询执行速度慢
○请求执行速度慢
○内存占用率高
○输出大小不一致
○Java错误未发现
○例外情况
○自定义事件
○致命的PHP错误
○PHP错误
•应用程序问题的诊断
•代码跟踪
•集群支持
•作业队列:卸载了执行长时间运行的PHP脚本这一任务
•Zend下载服务器
#p# JOnAS
JOnAS是一款成熟的开源应用服务器,由ObjectWEB联盟开发和运行,它实现了符合Java EE 5认证的应用服务器规范。
该软件通过EasyBeans提供了全面兼容的EJB容器,与嵌入式Tomcat或Jetty Web容器一并提供。
特性包括:
•实现了全面的Java EE 5执行堆栈,并与EasyBeans一起提供了高效的、可插入的、易于使用的EJB3容器,还提供了一些Java EE 6TM预览(JPA 2.0和CDI等),借助OW2 EasyBeans容器支持EJB3、借助Tomcat 6/7或Jetty 6/8支持服务器端小程序、借助CXF 2支持JAX-WS,借助Jersey支持JAX-RS 1.1等
•高级集群机制,确保可扩展性和高可用性
•一目了然的远程管理控制台
•在OSGi架构上运行
•面向许多集成开发环境(IDE)的插件
#p# Jetty
Jetty是一款开源HTTP服务器端小程序服务器(应用服务器),完全用Java编写而成。它旨在确保轻型、高性能、嵌入式、可扩展和灵活,因而使得它成为处理来自任何Java应用程序的动态HTTP请求的理想平台。Jetty可以嵌入到众多设备、工具、框架、应用服务器和集群中。
Jetty用于许多不同的产品,包括Ubuntu、Liferay、Zimbra、雅虎Hadoop集群、Apache Geronimo、Alfresco、谷歌应用引擎、Eclipse及其他许多产品中。
特性包括:
•功能齐全、基于标准
•实现了核心标准服务器端小程序2.5规范
•灵活、可扩展。它可以部署和集成到广泛环境:
○软件框架和工具
○JEE应用服务器
○嵌入式应用程序、产品和服务
○从手机到大型服务器的诸多设备
•占用资源少
•可嵌入式
•异步
•可灵活扩展,适用于企业环境
•灵感源自EE的众多特性,比如Java命名和目录接口(JNDI)、Java事务API(JTA)、Java消息服务(JMS)和邮件服务器
•采用Apache和Eclipse双许可证来发行
原文链接: http://www.linuxlinks.com/article/20120317015727999/ApplicationServers.html