前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >J2EE究竟是什么?「建议收藏」

J2EE究竟是什么?「建议收藏」

作者头像
全栈程序员站长
发布于 2022-11-15 07:05:23
发布于 2022-11-15 07:05:23
2.3K0
举报

大家好,又见面了,我是你们的朋友全栈君。 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是一个开放体系,完全有能力适应未来技术的进步和发展。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/234366.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年11月2日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
RHEL6.4 + Oracle 11g DG测试环境快速搭建参考
     参考:http://www.cnblogs.com/jyzhao/p/4332410.html
Alfred Zhao
2022/05/06
4580
主备库内存不一致的Data Guard环境搭建全过程
墨墨导读:一个单节点RAC,要做一套Data Guard,但是备库能给数据库的内存只有主库的一半左右,可以实现吗?答案是可以的,本文详述整个过程。
数据和云
2020/06/01
1K0
Oracle 2套rac集群指向单机多实例的复制搭建
单实例环境--standby CentOS release 6.10 (Final) hostname dg1 ip 10.*.30 Instance_name cad DB_NAME bol --此次2个一样 db_unique_name cad
星哥玩云
2022/08/17
5360
模拟生产搭建Standby RAC实验环境(11.2.0.4 DG)
目前,我有一套正常运行的Oracle 11.2.0.4 RAC实验环境。这是一套VirtualBox的虚拟化环境,整套环境均放在我的台式机服务器的D盘(SSD固态盘)。也就是说,这套RAC环境的系统磁盘和共享磁盘均在本地D盘。
Alfred Zhao
2019/05/24
8980
Oracle 11G ADG 搭建 RAC to Single 详细教程(RMAN DUPLICATE)
经过交流群中朋友的多次要求,这次给大家分享一下 RAC to Single 的 ADG 搭建教程!
Lucifer三思而后行
2022/01/08
1.9K0
Oracle 11G ADG 搭建 RAC to Single 详细教程(RMAN DUPLICATE)
RAC 主库配置单实例ADG
写在前面: 最终实现环境:11.2.0.4版本 2节点RAC + 1节点DG 本文旨在弄清楚整个搭建过程中涉及到的基础概念; 本文安装maximum performance mode(最大性能模式)也是DG默认的数据保护模式;
Alfred Zhao
2019/05/24
1K0
同一环境下新建Standby RAC库
需求:在同一个环境下新建Standby RAC库,即和Primary RAC在相同的磁盘组。 说明:生产环境一般不建议这样配置DG,因为存储层面是相同磁盘组,灾备的实际意义不大。我这里是用作读写分离。
Alfred Zhao
2019/05/24
7750
oracle11g dataguard安装实施
Oracle DataGuard 实施 1.环境准备 1.1 修改主备机hosts文件 vi /etc/hosts 128.160.11.84    wang 128.160.11.218  dg2 1.2 修改(添加)主备机listener.ora和tnsnames.ora文件 vi $ORACLE_HOME/network/admin/listener.ora SID_LIST_LISTENER =         (SID_LIST =           (SID_DESC =                 (SID_NAME = softdb)                 (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1/)           )         ) LISTENER =   (DESCRIPTION_LIST =     (DESCRIPTION =       (ADDRESS = (PROTOCOL = TCP)(HOST = wang)(PORT = 1521))       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))     )   ) ADR_BASE_LISTENER = /u01/app/oracle vi $ORACLE_HOME/network/admin/tnsnames.ora SOFTPRI =   (DESCRIPTION =     (ADDRESS = (PROTOCOL = TCP)(HOST = wang)(PORT = 1521))     (CONNECT_DATA =       (SERVER = DEDICATED)       (SERVICE_NAME = softdb)     )   ) SOFTSTD =   (DESCRIPTION =     (ADDRESS = (PROTOCOL = TCP)(HOST = dg2)(PORT = 1521))     (CONNECT_DATA =       (SERVER = DEDICATED)       (SERVICE_NAME = softdb)     )   ) 1.3 确定主备机parameter/control/data/log/archivelog file 的路径 audit_file_dest='/u01/app/oracle/admin/softdb/adump' 1.4 设置主库强制写日志 SQL> select force_logging from v$database; FOR --- NO SQL> alter database force logging; Database altered. SQL> select force_logging from v$database; FOR --- YES 1.5 设置主库归档模式 SQL> archive log list; SQL> shutdown immediate; SQL> startup mount; SQL> alter database archivelog; SQL> alter database open; SQL> archive log list; Database log mode              Archive Mode Automatic archival             Enabled Archive destination            /u01/app/oracle/product/11.2.0/db_1//dbs/arch Oldest online log sequence     175 Next log sequence to archive   177 Current log sequence           177 2. 产生用于建立Standby库的全备份集及控制文件 2.1 创建并修改主库参数文件pfile SQL> shutdown immediate; SQL> create pfile from spfile; 修改initsoftdb.ora vi $ORACLE_HOME/db
吹水老王
2022/05/17
7590
Oracle 11g ADG 部署(duplicate)快速参考
本文旨在指导客户完成Oracle 11g的ADG部署工作,主库环境已具备,备库环境已安装完成数据库软件。 环境:RHEL 6.8 + Oracle 11.2.0.4
Alfred Zhao
2020/07/15
2.1K0
爆肝一万字终于把 Oracle Data Guard 核心参数搞明白了
在 Oracle 官方文档中,关于搭建物理备库有完整的说明,之前也写过几篇关于 Data Guard 的文章,感兴趣的可以看看:
JiekeXu之路
2021/10/12
6.2K1
案例:Standby RAC遭遇ORA-1157,1111,1110导致实例crash处理
案例:Standby RAC遭遇ORA-1157,1111,1110导致实例crash处理 环境:RHEL 6.5 + Oracle RAC 11.2.0.4 + Dataguard 今天在实验环境的Pirmary RAC主库上做了一个增加表空间的操作,结果Standby RAC启动同步后直接crash,具体报错如下:
Alfred Zhao
2019/05/24
8160
基于同一主机配置 Oracle 11g Data Guard
       Oracle Data Guard 为企业数据库提供了最有效和最全面的数据可用性、数据保护和灾难恢复解决方案。它集成管理、监视和自动化软件基础架构来创建和维护一个或多个同步备用数据库,从而保护数据不受故障、灾难、错误和损坏的影响。本文主要描述了在同一主机下如何配置Oracle Data Guard。
Leshami
2018/08/13
4310
单实例Primary快速搭建Standby RAC参考手册(19.16 ADG)
上述为这里我做为演示环境的基本规划。 本文作为step by step的快速指导手册,方便快速部署此类ADG环境。
Alfred Zhao
2023/03/06
3870
手工冷备搭建 Oracle 11g DataGuard 物理备库
本文通过手工冷备+pfile文件的方式,搭建oracle11g dataguard 物理备库。在搭建前的规划中,特意将主库的数据库名和服务名、备库的文件存放位置等等做了差异处理。 在进行初始化参数文件的配置时,也进行了最小化处理。这样能够更好的理解DataGuard搭建所需要的的日志传输、应用所需参数配置。
JiekeXu之路
2019/07/30
8740
手工冷备搭建 Oracle 11g DataGuard 物理备库
Oracle 19c DG主库不停机搭建(主库RAC、备库standalone)
备库为什么一定要配置静态监听? nomount状态下必须使用静态监听才能连接到实例
甚至熊熊
2022/04/27
4K0
ARCH和LGWR进程同步DG日志的区别alert日志上也有所区别:
我在做Standby RAC实验时,起初使用的是ARCH传输,后来将其改为LGWR传输(实际是LGWR分出的小工进程LNS):
Alfred Zhao
2019/05/24
8530
Oracle 11g DG手工switchover切换标准化流程
环境:RHEL 6.5 + Oracle GI 11.2.0.4 + Oracle DB 11.2.0.4 Primary RAC(2 nodes) + Standby RAC(2 nodes)
Alfred Zhao
2019/05/24
1.4K0
[Data Guard全解析] 2.Oracle Data Guard 参数介绍
Data Guard作为Oracle提供的一个高可用及灾备解决方案,理解并可以实施它对于DBA来说是非常重要套的技能
bsbforever
2020/08/19
8980
Oracle诊断案例-Spfile案例一则
情况说明: 系统:SUN Solaris8 数据库版本:9203 问题描述:工程人员报告,数据库在重新启动时无法正常启动.检查发现UNDO表空间丢失. 问题诊断及解决过程如下:
数据和云01
2018/09/05
4410
Oracle流复制配置最佳实践
(2) 配置本地归档目标路径,log_archive_dest_1参数,不要使用flash recovery area。
用户1148526
2019/05/25
1.2K0
推荐阅读
相关推荐
RHEL6.4 + Oracle 11g DG测试环境快速搭建参考
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文