J2EE(即Java 2 平台企业版)是由Sun公司主持推出的一项中间件技术。从CORBA、IDL到面向消息的系统,中间件技术已经走过了很长的一段路程,如今J2EE作为中间件技术史上的一块具有决定意义的里程碑,正受到业界越来越广泛的重视和采纳。
J2EE,一方面有着一套相当庞大的标准体系和数个不同版本,另一方面,由于市场上应用服务器品种多样,各家开发商使用的术语又不尽相同,因此,围绕着J2EE,常常有不少被人误解的地方。本文将深入探讨J2EE究竟是什么,它到底能做什么。
什么是J2EE?
在试图给J2EE 下一个明确的定义之前,我们首先要了解J2EE 并不简单地只是一门语言、一种工具或一套服务。
· J2EE——Java 2 平台企业版
简单地说,J2EE是一个标准中间件体系结构,旨在简化和规范多层分布式企业应用系统的开发和部署。J2EE方案的实施可显著地提高系统的可移植性、安全性、可伸缩性、负载平衡和可重用性。
J2EE技术出现之前,几家主要的中间件开发商的产品各自为阵,彼此之间缺乏兼容性,可移植性差,难以实现互操作,没有一个被普遍认可的行业标准。J2EE的出现标志着中间件技术在经历了多年的不断摸索和经验总结后,正逐步走向成熟。
J2EE的核心是一组规范和指南,定义了一个使用Java语言开发多层分布式企业应用系统的标准平台。开发人员在这些规范和指南的基础上开发企业级应用,同时由J2EE供应商确保不同的J2EE平台之间的兼容性。由于基于规范的各J2EE平台之间具有良好的兼容性, 因此J2EE应用系统可以部署在不同的应用服务器上,无需或只需进行少量的代码修改。
· J2EE视点
下面我们将从几个不同的侧面来考察J2EE,以期读者能对J2EE有个更全面清晰的印象。
(1)J2EE:多层、分布式中间件语法
采用多层分布式应用模型,J2EE将应用开发划分为多个不同的层,并在每一个层上定义组件。各个应用组件根据他们所在的层分布在同一个或不同的服务器上,共同组成基于组件的多层分布式系统。典型的J2EE四层结构包括客户层、表示逻辑层(Web层)、商业逻辑层和企业信息系统层。
有了J2EE,分布式系统的开发变得简单了,部署的速度也可以加快。J2EE组件的分布与服务器环境无关,所有的资源都可通过分布式目录进行访问。这意味着开发人员不再需要为组件和资源的分布问题耗费精力,从而可以有更多的时间专注于业务逻辑的实现,提高开发效率。
(2)J2EE:企业级应用系统开发平台
J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。而J2EE的实施,则具体表现为诸如BEA Web logic或IBM Web sphere之类的特定Web服务器产品。利用J2EE应用-编程模型开发的企业应用系统,可以部署在不同厂商生产的、但相互兼容的J2EE 应用服务器上。
目前,市场上基于J2EE的Web服务器品种繁多,性能特点各有千秋,每家厂商的产品都有精心设计的独到之处。但与产品个性无关的是,所有的J2EE应用服务器都为企业级应用系统的开发和部署提供了一个共同的基础。
(3)J2EE:电子化应用开发模型
J2EE应用很容易发布到Web、掌上电脑或移动电话等手持设备上。换言之,应用组件可以很轻松地实现电子化。J2EE的应用-编程模型保证组件在向不同类型的客户端移植过程中,商业逻辑和后端系统保持不变。
此外,J2EE平台的其他主要优点还有:自动负载平衡、可伸缩、容错和具有故障排除等功能。部署在J2EE环境中的组件将自动获得上述特性,而不必增加额外的代码开销。
J2EE所有这些特性对于需要构建全天候网络门户的企业来说显得尤为重要。
(4)J2EE:Web应用服务器上广泛采用的标准
可以说,J2EE是首个获得业界广泛认可和采纳的中间件标准。目前几乎所有的一流Web应用服务器,如BEA的Web logic、IBM的Web sphere、HP的应用服务器、Sun的iPlanet和Macromedia的Jrun等,都是基于J2EE的。迄今为止,还没有哪个其他标准能获得如此众多的中间件供应商的一致支持。
而且,有了J2EE,企业的应用开发对于某个特定的开发商或应用服务供应商的依赖性更小。应用组件只要符合J2EE规范,完全可以部署在不同的应用服务器上。为了确保不同厂商的J2EE应用服务器的兼容性和一致性,Sun公司发布了J2EE兼容性测试包。
· J2EE究竟是什么
至此,我们可以试着用一句话来概括J2EE,那就是:J2EE是一个中间件基础架构,有了它,开发者只需要集中精力编写代码来表达企业应用的商业逻辑和表示逻辑,至于其他系统问题,如内存管理,多线程,资源分布和垃圾收集等,都将由J2EE自动完成。
J2EE如何应对挑战?
在这一部分里,我们将探讨J2EE是如何应对企业开发过程中所面临的问题,以及如何为企业未来发展之需要提供空间。
· 独立于硬件配置和操作系统
J2EE运行在Java虚拟机(JVM)上,利用Java本身的跨平台特性,独立于硬件配置和操作系统。Java运行环境(JRE)——JVM的可安装版本加上其他一些重要组件——几乎可以运行于所有的硬件/OS组合。因此,通过采用Java,J2EE使企业免于高昂的硬件设备和操作系统的再投资,保护已有的IT资源。在很多情况下,J2EE还可以直接运行在EIS服务器环境中,从而节约网络带宽,提高性能。
· 坚持面向对象的设计原则
作为一门完全面向对象的语言,Java几乎支持所有的面向对象的程序设计特征。面向对象和基于组件的设计原则构成了J2EE应用编程模型的基础。
J2EE多层结构的每一层都有多种组件模型。因此,开发人员所要做的就是为应用项目选择适当的组件模型组合,灵活地开发和装配组件,这样不仅有助于提高应用系统的可扩展性,还能有效地提高开发速度,缩短开发周期。此外,基于J2EE的应用还具有结构良好,模块化,灵活和高度可重用性等优点。
· 灵活性、可移植性和互操作性
利用Java的跨平台特性,J2EE组件可以很方便地移植到不同的应用服务器环境中。这意味着企业不必再拘泥于单一的开发平台。
J2EE的应用系统可以部署在不同的应用服务器上,在全异构环境下,J2EE组件仍可彼此协同工作。这一特征使得装配应用组件首次获得空前的互操作性。例如,安装在IBM Websphere环境下的EJB,一方面可以直接与Websphere环境下的CICS直接交互,另一方面也可以通过安装在别处的BEA Weblogic 服务器上的EJB进行访问。
· 轻松的企业信息系统集成
J2EE技术出台后不久,很快就将JDBC、 JMS和 JCA等一批标准纳归自身体系之下,这大大简化了企业信息系统整合的工作量,方便企业将诸如legacy system(早期投资系统),ERP和数据库等多个不同的信息系统进行无缝集成。
由于几乎所有的关系型数据库系统都支持JDBC,因此只需借助必要的JDBC驱动程序,J2EE应用就可以和所有主流数据库系统进行通信。类似的,目前业界正冒出一批基于Java连接器体系标准的EI适配器,也用于提供各类legacy system和ERP/CRM的无缝集成。
· 引进面向服务的体系结构
随着Web服务以及SOAP等开放标准的出现,企业异构系统之间的互操作性成为可能。J2EE,作为一个可扩展平台,很自然需要加入Web服务特性。为此,Sun公司发布了一整套称为“JAX包”的API,支持从XML语法分析、XML绑定、SOAP消息发送、注册表查寻、XML RPC到XML消息传递等所有各种Web服务需求。
虽然J2EE平台的出现早于Web服务技术,但它的可扩展能力使它能很好地适应技术的最新发展。我们有理由相信,在未来,J2EE将引入更多的技术进步而不会动摇它的核心框架和应用-编程模型。
结束语
作为一个被业界广泛采用的中间件标准,J2EE是开发可伸缩的、具有负载平衡能力的多层分布式跨平台企业应用的理想平台。J2EE的首要任务在于提供一个标准中间件基础架构,由该基础架构负责处理企业开发中所涉及的所有系统级问题,从而使得开发人员可以集中精力重视商业逻辑的设计和应用的表示,提高开发工作的效率。
J2EE有效地满足了行业需求,提供独立于操作系统的开发环境。基于J2EE的应用系统灵活且易于移植和重用,可运行在不同厂家的Web服务器上。更为重要的是,J2EE是一个开放体系,完全有能力适应未来技术的进步和发展。
J2EE,一方面有着一套相当庞大的标准体系和数个不同版本,另一方面,由于市场上应用服务器品种多样,各家开发商使用的术语又不尽相同,因此,围绕着J2EE,常常有不少被人误解的地方。本文将深入探讨J2EE究竟是什么,它到底能做什么。
什么是J2EE?
在试图给J2EE 下一个明确的定义之前,我们首先要了解J2EE 并不简单地只是一门语言、一种工具或一套服务。
· J2EE——Java 2 平台企业版
简单地说,J2EE是一个标准中间件体系结构,旨在简化和规范多层分布式企业应用系统的开发和部署。J2EE方案的实施可显著地提高系统的可移植性、安全性、可伸缩性、负载平衡和可重用性。
J2EE技术出现之前,几家主要的中间件开发商的产品各自为阵,彼此之间缺乏兼容性,可移植性差,难以实现互操作,没有一个被普遍认可的行业标准。J2EE的出现标志着中间件技术在经历了多年的不断摸索和经验总结后,正逐步走向成熟。
J2EE的核心是一组规范和指南,定义了一个使用Java语言开发多层分布式企业应用系统的标准平台。开发人员在这些规范和指南的基础上开发企业级应用,同时由J2EE供应商确保不同的J2EE平台之间的兼容性。由于基于规范的各J2EE平台之间具有良好的兼容性, 因此J2EE应用系统可以部署在不同的应用服务器上,无需或只需进行少量的代码修改。
· J2EE视点
下面我们将从几个不同的侧面来考察J2EE,以期读者能对J2EE有个更全面清晰的印象。
(1)J2EE:多层、分布式中间件语法
采用多层分布式应用模型,J2EE将应用开发划分为多个不同的层,并在每一个层上定义组件。各个应用组件根据他们所在的层分布在同一个或不同的服务器上,共同组成基于组件的多层分布式系统。典型的J2EE四层结构包括客户层、表示逻辑层(Web层)、商业逻辑层和企业信息系统层。
有了J2EE,分布式系统的开发变得简单了,部署的速度也可以加快。J2EE组件的分布与服务器环境无关,所有的资源都可通过分布式目录进行访问。这意味着开发人员不再需要为组件和资源的分布问题耗费精力,从而可以有更多的时间专注于业务逻辑的实现,提高开发效率。
(2)J2EE:企业级应用系统开发平台
J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。而J2EE的实施,则具体表现为诸如BEA Web logic或IBM Web sphere之类的特定Web服务器产品。利用J2EE应用-编程模型开发的企业应用系统,可以部署在不同厂商生产的、但相互兼容的J2EE 应用服务器上。
目前,市场上基于J2EE的Web服务器品种繁多,性能特点各有千秋,每家厂商的产品都有精心设计的独到之处。但与产品个性无关的是,所有的J2EE应用服务器都为企业级应用系统的开发和部署提供了一个共同的基础。
(3)J2EE:电子化应用开发模型
J2EE应用很容易发布到Web、掌上电脑或移动电话等手持设备上。换言之,应用组件可以很轻松地实现电子化。J2EE的应用-编程模型保证组件在向不同类型的客户端移植过程中,商业逻辑和后端系统保持不变。
此外,J2EE平台的其他主要优点还有:自动负载平衡、可伸缩、容错和具有故障排除等功能。部署在J2EE环境中的组件将自动获得上述特性,而不必增加额外的代码开销。
J2EE所有这些特性对于需要构建全天候网络门户的企业来说显得尤为重要。
(4)J2EE:Web应用服务器上广泛采用的标准
可以说,J2EE是首个获得业界广泛认可和采纳的中间件标准。目前几乎所有的一流Web应用服务器,如BEA的Web logic、IBM的Web sphere、HP的应用服务器、Sun的iPlanet和Macromedia的Jrun等,都是基于J2EE的。迄今为止,还没有哪个其他标准能获得如此众多的中间件供应商的一致支持。
而且,有了J2EE,企业的应用开发对于某个特定的开发商或应用服务供应商的依赖性更小。应用组件只要符合J2EE规范,完全可以部署在不同的应用服务器上。为了确保不同厂商的J2EE应用服务器的兼容性和一致性,Sun公司发布了J2EE兼容性测试包。
· J2EE究竟是什么
至此,我们可以试着用一句话来概括J2EE,那就是:J2EE是一个中间件基础架构,有了它,开发者只需要集中精力编写代码来表达企业应用的商业逻辑和表示逻辑,至于其他系统问题,如内存管理,多线程,资源分布和垃圾收集等,都将由J2EE自动完成。
J2EE如何应对挑战?
在这一部分里,我们将探讨J2EE是如何应对企业开发过程中所面临的问题,以及如何为企业未来发展之需要提供空间。
· 独立于硬件配置和操作系统
J2EE运行在Java虚拟机(JVM)上,利用Java本身的跨平台特性,独立于硬件配置和操作系统。Java运行环境(JRE)——JVM的可安装版本加上其他一些重要组件——几乎可以运行于所有的硬件/OS组合。因此,通过采用Java,J2EE使企业免于高昂的硬件设备和操作系统的再投资,保护已有的IT资源。在很多情况下,J2EE还可以直接运行在EIS服务器环境中,从而节约网络带宽,提高性能。
· 坚持面向对象的设计原则
作为一门完全面向对象的语言,Java几乎支持所有的面向对象的程序设计特征。面向对象和基于组件的设计原则构成了J2EE应用编程模型的基础。
J2EE多层结构的每一层都有多种组件模型。因此,开发人员所要做的就是为应用项目选择适当的组件模型组合,灵活地开发和装配组件,这样不仅有助于提高应用系统的可扩展性,还能有效地提高开发速度,缩短开发周期。此外,基于J2EE的应用还具有结构良好,模块化,灵活和高度可重用性等优点。
· 灵活性、可移植性和互操作性
利用Java的跨平台特性,J2EE组件可以很方便地移植到不同的应用服务器环境中。这意味着企业不必再拘泥于单一的开发平台。
J2EE的应用系统可以部署在不同的应用服务器上,在全异构环境下,J2EE组件仍可彼此协同工作。这一特征使得装配应用组件首次获得空前的互操作性。例如,安装在IBM Websphere环境下的EJB,一方面可以直接与Websphere环境下的CICS直接交互,另一方面也可以通过安装在别处的BEA Weblogic 服务器上的EJB进行访问。
· 轻松的企业信息系统集成
J2EE技术出台后不久,很快就将JDBC、 JMS和 JCA等一批标准纳归自身体系之下,这大大简化了企业信息系统整合的工作量,方便企业将诸如legacy system(早期投资系统),ERP和数据库等多个不同的信息系统进行无缝集成。
由于几乎所有的关系型数据库系统都支持JDBC,因此只需借助必要的JDBC驱动程序,J2EE应用就可以和所有主流数据库系统进行通信。类似的,目前业界正冒出一批基于Java连接器体系标准的EI适配器,也用于提供各类legacy system和ERP/CRM的无缝集成。
· 引进面向服务的体系结构
随着Web服务以及SOAP等开放标准的出现,企业异构系统之间的互操作性成为可能。J2EE,作为一个可扩展平台,很自然需要加入Web服务特性。为此,Sun公司发布了一整套称为“JAX包”的API,支持从XML语法分析、XML绑定、SOAP消息发送、注册表查寻、XML RPC到XML消息传递等所有各种Web服务需求。
虽然J2EE平台的出现早于Web服务技术,但它的可扩展能力使它能很好地适应技术的最新发展。我们有理由相信,在未来,J2EE将引入更多的技术进步而不会动摇它的核心框架和应用-编程模型。
结束语
作为一个被业界广泛采用的中间件标准,J2EE是开发可伸缩的、具有负载平衡能力的多层分布式跨平台企业应用的理想平台。J2EE的首要任务在于提供一个标准中间件基础架构,由该基础架构负责处理企业开发中所涉及的所有系统级问题,从而使得开发人员可以集中精力重视商业逻辑的设计和应用的表示,提高开发工作的效率。
J2EE有效地满足了行业需求,提供独立于操作系统的开发环境。基于J2EE的应用系统灵活且易于移植和重用,可运行在不同厂家的Web服务器上。更为重要的是,J2EE是一个开放体系,完全有能力适应未来技术的进步和发展。