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后,任意模块都可以定义探测点。
分享到:
相关推荐
可扩展GlassFish v3的JavaEE 6帮助文档
java ee 6 with glassfish 3 java ee 6 with glassfish 3
GlassFish V3初探
Beginning Java EE 6 Platform with GlassFish 3, Second Edition is this first tutorial book on the final (RTM) version of the Java EE 6 Platform. Step by step and easy to follow, this book describes ...
解释了什么是应用服务器,以及与JavaEE 5.0规范的关系做了相关的说明,还介绍了Java EE 5.0规范所包含的新增的内容。文中以GlassFish应用服务器为例介绍了什么是参考实现(RI).
Java EE 6 with GlassFish 3 Application Server.rar
最新的Glassfish v3使用指南,希望大家可以使用愉快。
2010 - Beginning Java EE 6 with GlassFish 3 2e (Apress)
jmaki development with sun glassfish v3
Java EE 5 with Glassfish Application Server 英文版 (pdf)
GlassFish Server 是Java EE的开源参考实现
GlassFish v3 使用技术文档。很全面很详细。用到什么直接去找,没必要完全掌握
本书是英文原版的图书 探讨了GlassFish的安装和配置,然后再移动到的Java EE 7的应用程序的开发,涵盖了所有主要的Java EE 7的API。它着重于超越基础开发部署到GlassFish 4应用程序服务器的Java应用程序。本书涵盖了...
Demo of ehCache distributed caching with terracotta in glassFish v3 可以参考:http://blog.csdn.net/guobin0719/archive/2011/04/25/6361940.aspx
glassfish集群的配置在国内很少有人详细的讲 而且细节之处关键之处都是一带而过 很容易忽略 包括官方白皮书也是这样 所以写个文档和大家分享一下 文档中我分别写了界面配置方法和命令行批处理配置方法,希望对研究和...
引起鱼猫之争的东东 可与tomcat 媲美,看好它
glassfish-v3-windows.part1
Java EE 5 Development using GlassFish Application Server
beginning_java_ee_6_with_glassfish_3_2nd_edition 国外最新J2EE教材
glassfish-v3-windows.part4