java

位置:IT落伍者 >> java >> 浏览文章

名词解释 什么是JBoss?


发布日期:2018年08月20日
 
名词解释 什么是JBoss?
每天都在听同事说JBoss JBoss的究竟什么是JBoss呢今天我急切的想知道这个问题的答案多亏这万能的Google每当我遇到问题的时候第一个想到的就是你

以下内容出自互联网

解释:

Jboss是 web服务器的一种主要做ejb容器和tomcat集成就可以jspservletejb通吃了

Jboss有两种版本一种是独立的一种是和tomcat集成的当然都是免费的啦

EJB(enterprise javabean)他不是javabean简单的升级而是一些提供分布式访问的类

包括实体bean会话bean消息驱动bean

JBoss简介

JBoss是一个运行EJB的JEE应用服务器它是开放源代码的项目遵循最新的JEE规范从JBoss项目开始至今它已经从一个EJB容器发展成为一个基于的JEE的一个web 操作系统(operating system forweb)它体现了JEE规范中最新的技术并且它还在the JavaWorld Editors Choice 评选中获得最佳Java应用服务器大奖无论是学习还是应用JBoss为我们提供了一个非常优秀的平台有关JBoss的详细信息请参阅其主页

刚开始使用JBoss进行EJB开发时由于可供参考的资源不是很多所以有一个比较困难的起步阶段JBoss的配置和使用没有提供图形向导界面所以开发部署EJB相对比较复杂本文通过尽量具体的演示来对JBoss下的EJB开发和部署的进行一个简单的介绍从而使刚开始使用JBoss的用户可以很快地进入到真正的JEE应用开发中

Enterprise JavaBean (EJB)规范定义了开发和部署基于事务性分布式对象应用程序的服务器端软件组件的体系结构企业组织可以构建它们自己的组件或从第三方供应商购买组件这些服务器端组件称作 Enterprise Bean它们是 Enterprise JavaBean 容器中驻留的分布式对象为分布在网络中的客户机提供远程服务

解释:

JBoss是一个开源的符合JEE规范的应用服务器作为JEE规范的补充Jboss中引入了AOP框架为普通Java类提供了JEE服务而无需遵循EJB规范Jboss通过类载入时使用Javassist对字节码操作实现动态AOP框架Javassist是一个开源的编辑字节码的类库

Jboss中参考切入点与方面也由普通Java对象实现并使用XML文件配置Jboss的连接点模型与AspectJ略有不同提供了一系列预定义的切入点包括类匹配方法调用构造器调用域访问特定的调用与被调用关系通过这些切入点的逻辑运算可以实现更为复杂的切入点方面为Java类参考是其中的一个方法方面中不含切入点方面主要为各种拦截器(Interceptor)拦截器即为只含一个参考的方面单一连接点上可由多个拦截器形成拦截器链拦截器执行额外的操作对方法的拦截由Advisor类管理在连接点依次调用拦截器并最终调用被逻辑的方法而关于切入点参考已及方面的信息由AspectManager管理此外Jboss提供对元数据的支持用于为类方法构造器以及域添加额外的属性并可在运行期访问

为实现拦截Jboss需要修改类的字节码大致过程如下

XML配置文件中关于切入点拦截器元数据以及混合类的信息在应用程序部署时被读入解析并生成相应的对象这些信息与实例化的对象由AspectManager管理在需要混入方面代码的类载入时AspectManager将创建Advisor类将方面相关信息传递给它并对类的字节码进行修改之后将修改过的字节码交给类载入器完成类的装载字节码的修改主要是对被载入的类添加一系列方法用于代理那些匹配连接点的方法调用构造器调用域访问以及方法导入转为对Advisor类相应方法的调用类中各方法将重命名保留原方法体并添加一个与原方法同名的方法在这个方法中调用那些代理方法用来将调用代理给Advisor类或调用重命名的原方法对于域访问分别添加两个方法对应于读与写操作将域访问代理至Advisor类在访问这个域的类中则需将对域的访问转换为对上述方法的调用对于构造器调用则添加一个方法将调用代理至Advisor类并对构造对象的类的构造代码作相应转换对于导入被导入的类中将添加一个混合类实现的引用并添加混合类接口中的方法将对混合类方法的调用代理至Advisor类并最终调用混合类的实现相关类载入后初始化Advisor类填入拦截器链以完成整个处理过程

JBoss简介

近年来在JEE应用服务器领域JBoss是发展最为迅速的应用服务器JBoss是免费的开放源代码JEE的实现它通过LGPL许可证进行发布这使得JBoss广为流行Boss是一个运行EJB的JEE应用服务器例如数据库访问JDBC交易(JTA/JTS)消息机制(JTS)命名机制(JNDI)和管理支持(JMX)它是开放源代码的项目遵循最新的JEE规范目前的JBoss发布版实现了EJB 和部分EJB 的标准JMS Servlet JSP JMX JNDI JDBC 扩充(支持连接池 (Connection Polling))JavaMail/JAFJTA 和JAAS标准JBoss是%纯Java实现能运行于任何平台

从JBoss项目开始至今它已经从一个EJB容器发展成为一个基于的JEE的一个web 操作系统(operating system for web)它体现了JEE规范中最新的技术并且它还在the JavaWorld Editors Choice 评选中获得最佳Java应用服务器大奖无论是学习还是应用JBoss为我们提供了一个非常优秀的平台

另外JBoss应用服务器还具有许多优秀的特质:

它将具有革命性的JMX微内核服务作为其总线结构

它本身就是面向服务的架构(ServiceOriented ArchitectureSOA)

它还具有统一的类装载器从而能够实现应用的热部署和热卸载能力

因此它是高度模块化的和松耦合的JBoss用户的积极反馈告诉我们JBoss应用服务器是健壮的高质量的而且还具有良好的性能

JBoss的发展

为满足企业级市场日益增长的需求JBoss公司从年开始就推出了*专业级产品支持服务同时为拓展JBoss的企业级市场 JBoss公司还签订了许多渠道合作伙伴JBoss公司宣布JBoss应用服务器通过了Sun公司的JEE认证 这是JBoss应用服务器发展史上至今为止最重要的里程碑与此同时JBoss一直在紧跟最新的JEE规范 而且在某些技术领域引领JEE规范的开发因此无论在商业领域还是在开源社区 JBoss成为了第一个通过JEE 认证的主流应用服务器现在JBoss应用服务器已经真正发展成具有企业强度(即支持关键级任务的应用)的应用服务器

近年来Hibernate已经成为了事实上的持久化引擎JBoss公司致力于将自身发展成为开源项目的社区最新版的JBoss应用服务器已经将Hibernate集成为JMXMBean服务这使得用户能够在应用服务器环境中直接使用Hibernate而不管它是否处于JEE上下文中在最新版的JBoss应用服务器中用户能够直接通过JMXMBean服务访问到JBossCache提供的服务下一代的JBoss应用服务器(暂定名为JBoss)将提供大量的新功能除了支持最新的EJB 规范外新版的JBoss AOP将同它正式发布同时JBoss开发团队还计划开发新的微内核层即独立于JMX使得它能够独立使用

JBoss的服务器架构概述

JBoss的构架和其他JEE应用服务器的构架有着巨大的不同JBoss的模块架构是建立在JMX底层上的下图展现了JBoss主要组件和JMX的联系

JMX 层次

JMX是一个可复用框架它为远程(Remote)和本地(Local)管理工具扩展了应用它的架构是层式架构他们是实现层(instrumentation layer)代理层(agent layer)和发布层(distribution layer)其中发布层还在等待未来的标准化简要的表述是用户使用管理BeanMBean来提供获得相应资源的实现方法实现层实现相关的特性资源并将它发布于JMX相关应用中它的代理层控制和发布相应的注册在MBeanServer代理上的管理资源

JBoss主要模块

主要的JBoss模块是在MeanServer上的可管理MBean

JBoss EJB容器是JBoss服务器的核心实现它有两个特性第一是在运行期产生EJB 对象的Stub和Skeleton类第二是支持热部署

JBossNS是JBoss命名服务用来定位对象和资源它实现了JNDI JEE规范

JBossTX 是由JTA/JTS支持的交易管理控制

部署服务支持EJB(jar)Web应用文档(war)和企业级应用文档(ears)的部署它会时刻关心JEE应用的URL情况一旦它们被改变或出现的时候将自动部署

JBossMQ使Java 消息规范(JMS)的实现

JBossSX支持基于JAAS的或不支持JAAS机制的安全实现

JBossCX实现了部分JCA的功能JCA制订了JEE应用组件如何访问基于连接的资源

Web服务器支持Web容器和Servlet引擎JBoss x版本支持Tomcat Tomcat 和Jetty x服务

JBoss架构设计中的两个重要的特性

第一是使用JMX作为一个软件总线垂直的贯穿其所有的服务通过将新的服务组件遵循JMX规范挂接上总线使得系统扩展现有的服务变得容易可插入式框架被广泛的运用于服务的实现开发者可以选择他们需要的服务并编写他们所需要的相应实现通过定义在部署描述文件中让JBoss服务器知道

第二是容器被设计成为动态代理机制这样使容器的实现变得简单和使开发者避免费劲的将jar文件进行预编译以获得stub和skeleton代码但是这样做潜在的问题是性能和可测性因为我们知道java反射机制会引起性能的损失JBoss中存在着相应的优化方案并且在将来的研究中我们会论述该优化方法在什么时候工作并且是如何工作的

上一篇:Java Web开发Tomcat中三种部署项目的方法

下一篇:Struts2输入校验流程