JAVA EE 6 规范综述

 

1.JAVA EE规范综述

JAVA EE是作为JAVA语言的企业级规范进行指定的,其目的是满足于行业软件的企业的应用的需求,在复杂的业务逻辑的前提下,尽可能将屏蔽网络,硬件等复杂的设施,将这些内容转嫁给一些实现了部分JAVA EE规范服务的供应商或者完全实现JAVA EE规范的应用服务器厂商和来做,让系统集成商只关注与业务。

JAVA EE部分规范服务的提供商,以开源项目居多,以实用比较广泛的Tomcat为例,实现了JSP,Servlet等部分的JAVA EE规范,但其不能算作JAVA EE应用服务器,只能被称为web规范的容器而已;

对于JAVA EE规范的应用服务器的提供厂商,开源项目和商业产品并存,举例来说,开源的glassfish为JAVA EE规范的参考实现;对于IBM的Webaphere和Oracle的Weblogic来说,之所以称之为JAVA EE应用服务器,也是因为其实现了JAVA EE的全集规范。

         在JAVA EE6规范之前,所有的规范都实现才可以叫做JAVA EE应用服务器,但是由于时代的发展,JAVA EE规范越来越多,越来越重,将重量级JAVA EE规范进行轻量级的呼声尤为突出;JAVA EE6规范,首先做出改革,将最常用的web容器相关的规范,做成了一个集合,叫做Web Profiler,JAVA EE应用服务器可以选择只实现WebProfiler,或者实现一个全集规范,例如开源项目TomEE就是只是选择实现了WebProfiler;

         总之,JAVA EE其实就是一个社区推动起来的一个企业级的规范,可以简单的说,就是一系列关注与企业级领域的API,由此而引申的关于如何做企业级应用,和围绕着JAVA EE的一些API(例如Servlet,JPA)等一些兴起的开源项目社区,日益的庞大,使得企业级应用开发越来越便利;未来的JAVA EE规范仍旧会不断的向前发展,向着模块化各种规范,向着轻量级,高性能,云计算,海量数据处理等方向前进。

2.JAVA EE整体架构


可以看到,在JAVA EE6的最新规范中,是按照容器进行划分的,这里的容器的概念其实可大可小,对于整个JAVA EE6的大块来看,一共分成4个大的容器:

a.      应用客户端容器,一般这个客户端为直接在操作系统中存在的JRE环境中,实质上可以理解为在JRE中启动一个JVM的进程,也就是main函数,在这个main函数中,可以直接在这个环境中引入一些对应的规范,在上面的竖条中的规范可以看到,n次出现在各种容器中,其代表就是,对应的JAVA EE规范是否可以再当前的容器中运行。

b.      Applet容器,实质就是在嵌入到浏览器环境中的JRE的一个插件,通过Swing和Awt等图形化的API,在浏览器宿主环境中,显示具体的图形。

c.      Web容器,可以理解为其主要支撑的JAVA EE规范是WebProfiler的,其核心为Servlet和JSP,在Web容器中的竖条规范中,即为JAVA EE的WebProfiler。

d.      EJB容器,即为除了WebProfiler特性之外的所有的规范的内容集合,注意,一定不要理解为仅仅支持单纯的EJB规范,只是在EJB容器中的核心为EJB规范而已,可以看到在EJB容器中的很多内容都是与Web容器相重复的,只是容器的核心不同而已,并且在EJB容器中,例如在Web容器中的JSTL,EL等规范就不能使用了;

 

上述的四个容器构成了整个JAVA EE的环境,可以看到上图中还有一些连线,这里面描述了容器和容器之间的调用关系,和一些调用协议,例如加密协议SSL和普通的HTTP协议;对于数据库也可以看到一些连线,通过Web容器,EJB容器,应用客户端可以对数据库进行操作。

 

 

3.JAVA EE规范的角色划分图

JAVA EE的规范中,还需要明确的就应该是JAVAEE平台的角色的划分,我们可以根据目前的行业软件的一个非常典型的合作情况,来看整个JAVA EE规范的角色的划分;


可以看到上述的几个角色:

a.      JAVA EE Product Provider :JAVA EE产品的提供商,也就是JAVAEE应用服务器,对于国产的JAVA EE应用服务器来说,就是东方通,金蝶,中创;对于国外来说,就是IBM的Websphere,和Oracle的Weblogic的服务器。

b.      Application component provider :应用组件提供商,相当于实现了Servlet,EJB的一些Bean,但是可以看到目前的企业级软件市场的领域中,对于这些Bean都进行了二次的封装,例如一些公用的服务,通用的领域组件,这些部分通常一些开源的项目,例如Spring,Struts等开源项目,都会通过优良的设计模式和架构模式将一些API接口更好的使用起来,这部分的封装也有一些商业上的实现,如国内比较著名的普元,起步软件等等;

c.      Tool Provider:对于工具的支撑再好理解不过了,例如Eclipse中有对应的应用服务器的一些的插件,也有对应着领域平台,如用友NC平台的一些插件;

d.      Application Assembler :系统集成,对应的就是系统的集成商,也就是中软,神州数码,用友,东软这一个层级的行业软件的公司,进行业务的组装,俗称系统集成;

e.      Deployer:JAVA EE角色中,将部署提高到一个非常高的高度,成为了一个角色,其实来说部署确实是一个非常繁重的任务,将大家开发的源码都集成起来,进行编译工作,编译完成打成应用服务器识别的包,进行部署的工作;虽然这里面大部分有一些自动化的脚本来完成,但是在部署中出现的错误和问题,需要部署人员去定位,然后找到对应的系统集成人员进行修改;

f.       System administrator:系统管理员指的是系统集成商中,维护这个JAVA EE系统的监控,运维这部分的内容;</

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值