应用服务器:选择J2EE还是.NET?

JAVA学习 专栏收录该内容
17 篇文章 0 订阅

(作者:中国科学院软件研究所 范国闯 陈宁江)

  目前在Internet/Intranet/Extranet环境中,企业级应用系统大多采用三层或多层应用模式。为了方便开发、部署、运行和管理基于多层结构的应用,需要以网络和分布式计算的底层技术为基础,构建一个完整的应用框架,提供相应的支撑平台作为多层应用的基础设施,这一支撑平台的关键就是位于中间层的应用服务器。应用服务器是一个创建、部署、运行、集成和维护多层分布式企业级应用的平台。如果应用服务器与Web服务器相结合,或者包含了Web服务器的功能,则称之为Web应用服务器。

  在企业应用中,应用服务器可以提供如下好处:提高企业应用开发的有效性,保障业务逻辑和组件的重用性;提高企业应用的性能,如高运行性能和响应时间、可伸缩性、可靠性等;使企业应用更易于监控和管理,降低系统维护和升级成本。由于应用服务器的重要作用和关键地位,它已经成为当今业界的一个热点。

技术决定阵营

  从实现技术的角度看,可以将应用服务器划分为基于J2EE的解决方案、Microsoft .NET解决方案和其他技术3大类。

  近年在应用服务器市场上最具意义的进展,就是J2EE(Java 2 Platform Enterprise Edition)的出现。J2EE 是Sun公司提出的开发、部署、运行和管理基于Java分布式应用的标准平台。它以Java 2平台标准版(J2SE)为基础,继承了标准版的许多优点,还提供了对EJB、Java Servlet、JSP等技术的全面支持。J2EE使用EJB Server作为商业组件的部署环境,在EJB Server中提供了分布式计算环境中组件需要的服务,例如组件生命周期的管理、数据库连接的管理、分布式事务的支持、组件的命名服务等。J2EE用于实现应用服务器有其优势,它可以利用Java语言自身具有的跨平台性、可移植性、对象特性、内存管理等方面的性能,为应用服务器的实现提供一个完整的底层框架。J2EE中定义的各种服务,包括JSP和Servlet容器、EJB容器、JDBC、JNDI(名字目录服务)、JTS/JTA(事务服务)、JMS(消息服务)等,也分别为应用服务器提供了各种支持。目前,基于J2EE的应用服务器主要有BEA WebLogic、IBM Websphere、Oracle 9iAS、Sun iPlanet、SilverStream eXtend等。

  另一方面,微软在应用服务器上的解决方案代表了另一种思路,可以说,选择了微软的应用服务器解决方案也就意味着选择了完全的微软平台。微软的目标是分布式的Web应用开发环境,它并没有提供一个类似通常所说的应用服务器的软件或软件包,而是将Windows NT/2000看做其应用服务器的基础,通过附加一系列具备中间件功能的软件包来实现应用服务器平台。目前,应用服务器的实现体现在微软命名为.Net的Web应用开发框架中。.NET战略引入了许多新概念,包含了一些新的技术,如Web Services和C#语言,但.NET在很大程度上是微软以前开发的企业级应用平台DNA的重新包装。微软在.NET中提供了一系列企业级服务器,为部署、管理和建立基于XML和Web的应用构筑了.NET服务器结构,包括Application Center、BizTalk Server、Commerce Server、Exchange Server、SQL Server等,它们结合Windows平台上的一系列开发工具和技术(包括Visual Studio .NET、ASP .NET等),提供了强有力的应用服务器解决方案。

  由于应用需求和技术的原因,尚有一些应用服务器使用其他语言和技术实现。Macromedia公司的ColdFusion服务器就是采用标记语言CFML(ColdFusion Markup Language)实现,使得熟悉HTML的开发者能够简单快速地进行应用开发,在开发的简单性和快速的生产力方面较有优势。ColdFusion的目标是致力于中小型的企业应用环境,但是它也具有高性能和良好的可靠性,在市场上仍能占有一定的份额。PHP是开放源代码的服务器端脚本语言,它为实现应用服务器提供了一种易于编程的实现手段,PHP应用服务器的代表有Midgard和PhpLens。Zope则是使用Python语言编写的开放源码应用服务器,它也为Web应用提供了完整的实现框架和手段。

选择的标准

  由于目前应用服务器产品的功能多样,实现不尽相同,各自的描述和理解有所混淆。为了帮助企业选择合适的应用服务器构建企业多层应用,快速实现企业信息化,笔者建议从应用服务器的基本特性和扩展特性两个方面来考察企业应用服务器。

  基本特性是指应用服务器的实现应该包括的基本运行环境和支持标准:国际标准的兼容性,指对J2EE等标准的支持程度(.NET除外);操作系统,指支持应用服务器运行的操作系统平台;Web服务器,指应用服务器对Web服务器的支持策略(如内置或集成)及Web服务器产品;数据层支持,指支持的数据库连接标准(JDBC/ODBC)和数据库产品;对象模型支持,指对主要分布式对象模型(EJB/CORBA/DCOM)的支持。

  扩展特性描述了应用服务器为获得高性能和竞争能力而需要提供的特性,主要包括:


  可用性 指系统在预期的长时间内可以进行的持续性操作,保证和提高应用服务器的运行性能和可靠性。用于提供可用性的技术主要有负载均衡、失效恢复、缓存等。

  可伸缩性 指用户负载增加后,系统仍能维持同样的响应时间。用于提供可伸缩性的技术主要是集群。(需要说明的是,集群也可用于实现可用性)。

  可管理性 指对应用服务器及部署在其上的应用进行管理的能力,包括组件的部署能力、系统资源和性能的监控和调整能力等。

  安全性 指保证应用和数据安全的特性,包括加密、访问控制、目录服务、认证和授权等服务。

  集成性 指应用服务器具有哪些与其他应用系统连接和集成的能力。

  开发有效性 指支持建立各层应用开发的能力,用于帮助提高在应用服务器平台上的开发效率。

  Web Services支持 Web Services是Internet上电子商务的标准,它允许企业应用通过标准的协议互相访问,也被认为是下一代Inetrnet上企业应用的标准,所以应用服务器有支持Web Services的必要。

趋势前瞻

  在各种应用服务器的解决方案中,J2EE和微软.net是两大主流阵营,占据了绝大部分的市场。不过需要注意区别的是,.NET是一个产品套件,是产品战略,而J2EE是编写产品时的标准,二者在能力上各有千秋。例如,在对已有系统的集成能力方面,J2EE要优于.NET,它通过JCA(Java Connector API)可以更容易地将已有的企业应用进行集成。微软的解决方案则在Windows平台上提供了一系列快速开发和部署应用的工具,但由于微软对Java的支持并不好,所以在一定程度上影响了其接受程度。J2EE的接受程度则较高,因为它定义了一个应用服务器在Java体系结构下的基本服务和能力的规范,为不同厂商的应用服务器产品的标准化提供了一条可行途径。J2EE应用服务器可以使用户在此标准下创建的应用程序都能运行于其上,更重要的是,在满足J2EE兼容性的条件下,在不同的应用服务器上的应用组件可以很好地互操作,这样可以降低移植的风险和代价,提高应用的灵活性,有助于保护用户的投资。因此,许多应用服务器厂商已经转向采用J2EE标准,而且所实现的J2EE应用服务器在Windows平台上也可以很好地工作。

  虽然目前很难说J2EE和.NET哪一个会在竞争中获胜,但是可以肯定,采用J2EE应用服务器具有切实的可行性,拥有良好的前景,是应用服务器研究和开发中的一个正确方向。
 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

wangpi

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值