Java平台,可扩展GlassFish v3的JavaEE 6

Java平台——具备可扩展GlassFish应用服务器v3的JavaEE6的架构师Jerome Dochez和工程师Mahesh Kannan详细介绍了即将推出的GlassFish v3,该产品现在可作为预览版下载。
  对于那些过去四年里一直处于沉睡状态的人来说,GlassFish是由Sun公司赞助开发的JavaEE开源应用服务器。GlassFish v3是对v2版本的主要性能的重新诠释。它操作简单,具有基于OSGi的可扩展核心,带有一个网页和脚本容器以及一个用于配置和管理的控制台。你可以在来自NetBeans 6.7的GlassFish v3上进行开发和部署。GlassFish v3应用服务器与JavaEE6一道组成了服务器端Java平台的基石。

  GlassFish是JavaEE引用执行,Douchez一开始就解释了JavaEE 6的性能怎样一步步引导他们走向了GlassFish。

  配置文件

  配置文件主要是有关JavaEE技术中最重要开发性能的内容。第一类就是Web Profile。未来的配置文件将在Java Community Process中定义。目的是推动同类程序员的工作效率——也就是说提高使用服务应用内部注释的能力而不是编写复杂的XML文件。

  由于GlassFish是引用型执行,它必须用JavaEE 6为不同的配置文件提供不同版本的GlassFish。这种制约增加了为GlassFish3采用模块化结构的倾向。

  简化开发

  业界一直关注如何通过JavaEE简化开发过程。JavaEE 6通过使用所有网络API,减少或消除部署描述符的需求,允许第三方库自主注册,简化数据包,提供用于RESTful网络服务的JAX-RS以及从整合各个技术这几个方面来解决大家在开发方面的顾虑。

  嵌入性

  你可以使用简单的EJB容器作为JavaEE 6应用内部的嵌入式容器。此外整个GlassFish v3应用都是可嵌入的,因此我们可以通过其API启动或停止GlassFish。

  GlassFish v3向所有的Java虚拟机技术开放,特别是JRuby/Rails。Ruby程序员的一个优势在于他们不需要将Ruby应用部署成WAR File。相反,GlassFish v3可以直接援引JRuby注释并在无需修改的情况下,本地部署Rails应用。除了具备多个运行时的部署选项以外,GlassFish v3还提供JRuby运行时池的动态调整。因此,GlassFish能在高负荷的时候运行良好,而在低负荷的时候能以最少的资源消耗运行。

  有了这个新版本,你就可以通过其API扩展GlassFish的功能,并通过Admin 控制台发布这些功能。此外,你还可以以动态的方式向平台添加功能而不需要重启。扩展性可以通过API来获得,它可以替代或扩展性能。OSGi也提供了能用来扩展OSGi运行时的扩展性能。

  GlassFish v3中模块化设计的一个方面就是基于服务的架构。服务由协议定义,协议的执行相对而言容易一些。基于服务的架构也允许基于使用模式的延迟加载。

  模块性

  为GlassFish v3扩展功能要求有新的,模块化的架构。GlassFish v3的模块化性能基于OSGi。OSGi基于服务的架构使得这些组件可以动态发现彼此并进行协作。新架构的微内核是很小的。因此GlassFish v3是轻量级的部署平台,它可以快速被启动且占用的资源很少,因为它会使用延迟加载来启动那些仅仅被要求使用的服务。例如,如果你的应用不使用EJB容器,它就不会被加载。

  许多小模块可以被视为大量的机动部件,而GlassFish v3按照170束的量传输。即便是拥有这样数量的模块,GlassFish的启动也是很快的。技术人员希望能将数量从170减少到100。

  开发项目的时候需要强大的创建工具,这主要考虑到传输的复杂性。GlassFish团队使用的是Maven来简化创建过程,该工具是Apache用于Java项目的创建管理器。

  嵌入式API

  GlassFish v3具备嵌入式API,可以用它们来启动和配置应用服务器。这意味着你可以用Java平台,JavaSE应用来启动和停止GlassFish容器。开发团队对GlassFish应用进行测试的时候,他们使用的是Maven中的技巧,Maven本身就是一个JavaSE应用。可以用Maven制造一个GlassFish v3插件来进行测试。

       运行时

  170个GlassFish v3数据包被分成三种类型:内核,服务和容器。内核提供了 启动/关机 序列,以及基本服务,如部署和配置读取等。内核数据包组成了中心分布:最不可能出现的GlassFish分布。它没有容器,也没有任何运行程序的能力,所占空间约3M大小。

  核心数据包上的是服务数据包,它们能提供垮容器的功能,如安全性,命名管理器和Admin控制台。

  容器数据包在位于前两者之上。容器数据包提供了独立的容器,这些容器可以控制用户程序。例如,Web容器可以运行Web程序,EJB容器可以运行EJB程序。独立的容器对于执行配置文件很重要,后者可以单独指定不同数量的容器。粘接代码用于容器,内核,OSGi和基本服务间的相互联系。

  根据所部署程序的不同要求,GlassFish v3可以确定所要求的容器是哪一个,还可以自动启动这些容器。每个容器都有自己的配置,这些配置保存在中心配置文件中。组织好中央配置文件的配置数据能简化执行过程。应用程序容器能够接受来自命令行或REST调用的命令。

  基于服务的架构

  用来分配GlassFish的模块只是一些能指定输入和输出内容的Jar文件。作为一名程序员,你的主要编码责任就是程序服务,它可以分为两类:OSGi和HK2。HK2概括了OSGi API,且提供了OSGi所没有的服务。

  为了创建一个HK2服务,你要依照@Contract说明进行陈述,并依照@Service 说明进行执行。创建系统会自动生成元数据。不要求使用复杂的XML文件。

  服务查找

  服务查找是依赖驱动型,可以生成自动级联。请求一个服务或许会导致该服务要求贡献服务,依此类推。如果你拥有不能管理的对象,你可以使用API,用名称查找服务,使用哈希表格方法。

  应用容器运行时

  配有粘接代码的内核组件接受Deployment,Configuration,Grizzly,Monitoring和Admin GUI连接。一个容器必须提供匹配的粘接代码。内核或容器都不需要对彼此内部情况有所了解。它们通过服务协议来进行互动。你可以用四个接口编写粘接代码:Sniffer,用来识别应用;Container;Deployer;Application Container。

  配置

  所有的配置接口都由单独的类执行。这个类使用注释来创建集中的XML配置文件。配置自动聚集用于配置数据的支持,Mbeans生成,REST接口以及访问转变数据的处理。虽然GlassFish v3似乎是由零碎的部件组成,但其实它是一个很好的集成产品。

  REST

  你可以使用JAX-RS来提供用于配置数据,命令调用和监控的REST接口。你甚至可以使用REST客户作为管理控制台的替代物。  

  监控

  GlassFish v3中的监控是以探测为基础的。探测由每个模块定义,且会默认关闭以节约开支。探测是动态激活的。当监控者注册时,探测执行会进行动态重写以启动触发事件。

  这一策略执行的是轻量级执行,因为只有需要的才会被激活。探测策略使用Btrace,因此可以实现所有平台的监控。但是GlassFish v3是DTrace 激活的,只要用于Solaris操作系统。模块定义了探测点,而且有了开放的API后,任意模块都可以定义探测点。

你可能感兴趣的:(java,应用服务器,javaee,osgi,Glassfish)