大家好,关于jboss服务器很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于我为什么放弃Jboss和Jboss社区的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

一、什么是JBoss

什么是JBoss

以下内容出自互联网

解释1:

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

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

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

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

---------------------------------------------------------------

JBoss简介

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

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

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

解释2:

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

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

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

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

一、JBoss简介

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

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

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

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

它本身就是面向服务的架构(Service-Oriented Architecture,SOA);

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

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

二、JBoss的发展

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

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

三、JBoss的服务器架构概述

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

JMX-层次

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

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

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

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

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

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

5.JBossMQ使J*a消息规范(JMS)的实现。

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

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

8.Web服务器支持Web容器和Servlet引擎。JBoss 2.4.x版本支持Tomcat 4.0.1,Tomcat 3.23和Jetty 3.x服务.

四、JBoss架构设计中的两个重要的特*

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

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

二、我为什么放弃Jboss和Jboss社区

jboss在那个年代确实很火,很多大行的项目中都在使用jboss,我在过的两家支付公司就使用过jboss,在后来的一家支付公司我在推进去jboss化的工作。

从我了解到的情况,现在仍然在使用使用jboss的大概有这么几种情况

a.老系统就跑在jboss上,遗留项目,没人想动,没人敢动。

b.为了降低成本从weblogic或websphare迁移到jboss上

c.依然顽固不化不思进取的技术决策者(我已经不在顽固)

d.被销售人员忽悠的傻大憨粗的政府部门和国有企业

(2)jboss真的那么不堪吗? NO!

当然不是,从jboss 5-->jboss6-->jboss7--->wildfly(相当于jboss 7,8),一步一步都在进步,尤其是在jboss7,完全重写了jboss的所有,我还记得当初 jboss7 alpha1出来后,我完全看完了jboss 7源代码,jboss7各个模块的加载过程和加载机制,很壮观!

我的观点是:Jboss包括现在的wildfly在技术上是先进的,甚至要好于weblogic和websphare,但是,在理念上已经过时或者错误。

包括jboss(wildfly),weblogic,websphare在内所有的j*aEE服务器,将所有的功能都集成进入服务器(jsf,jpa,ejb,jta,jms,jndi,jms,cache),但现实中在用的j*aee服务器的功能有几个内,很多的项目都是只用到了一个servlet容器,但是还是将应用部署到了Jboss服务器里去了,我觉得一点没有必要。

我唱衰的不仅是jboss也包括 weblogic, websphare这样的j*a EE全栈服务器,如果一个简单的应用只需需要一个 servlet容器,但是仍然部署到jboss中的,有如下几个问题:

a.jboss启动需要占用更大的内存(jboss7以后按模块加载会好些),如果买云服务那内存可不便宜

b.jboss会在同时启动很多的端口(有端口洁癖的人心里很不爽)

c.配置复杂,在配置上花的时间和精力有可能比在代码业务逻辑上花的时间还多。

d.jboss*能不及tomcat,jboss*能好过tomcat那是销售的外交辞令,只要会调优tomcat*能会好过jboss的。

e.jboss提供的负载均衡器mod_cluster虽然智能但是*能不会好过nginx。jboss+mod_cluster我认为不如果 tomcat+nginx

(3)我对jboss社区的反感:

jboss社区人文环境其实不错,但有一点我不喜欢,那就是"自恋"

jboss社区什么都想使用社区以有的项目,社区的其他项目都喜欢依赖jboss社区的其他项目,我知道他们想打造生态系统,但是没有本着简约的理念来做。

比如:HorQ默认使用jboss-logging包,输出日志,infinispan也是这样,ovirt.项目使用jboss作为服务器,太依赖fedora,你能用tomcat为什么非要用jboss,是为了用而用,ovirt项目中使用jboss使用ejb3.1,导致很多不喜欢ejb的社区开发人员不贡献,只能靠红帽提供支持的开发人员推进项目。

jboss更名:将jboss更名为wildfly官方的说法是问了人们更好的区分jboss社区版和企业版,现在jboss名称默认是指jboss EAP,开源版才叫 wildfly,我觉得这个馊主意一定是红帽销售人员出的,为了能让jboss企业版买的更好而将jboss社区版更名为wildfly,这是愚蠢的做法,现在越来越少的人知道wildfly,我认为开发人员对这点是反感的至少我是。

jboss服务器 我为什么放弃Jboss和Jboss社区

三、JBoss Web和 Tomcat的区别

JBoss Web和 Tomcat的区别2009-12-14 11:18在Web2.0的浪潮中,各种页面技术和框架不断涌现,为服务器端的基础架构提出了更高的稳定*和可扩展*的要求。近年来,作为开源中间件的全球领导者,JBoss在J2EE应用服务器领域已成为发展最为迅速的应用服务器。在市场占有率和服务满意度上取得了巨大的成功,丝毫不逊色于其它的非开源竞争对手,如WebSphere、WebLogic、Application Server。JBoss Web的诸多优越*能,正是其广为流行的原因。

基于Tomcat内核,青胜于蓝

Tomcat服务器是一个免费的开放源代码的Web应用服务器,技术先进、*能稳定,而且免费,因而深受J*a爱好者的喜爱并得到了部分软件开发商的认可。其运行时占用的系统资源小,扩展*好,且支持负载平衡与邮件服务等开发应用系统常用的功能。作为一个小型的轻量级应用服务器,Tomcat在中小型系统和并发访问用户不是很多的场合下被普遍使用,成为目前比较流行的Web应用服务器。

而JBoss Web采用业界最优的开源J*a Web引擎,将J*a社区中量最大,用户数最多,标准支持最完备的Tomcat内核作为其Servlet容器引擎,并加以审核和调优。单纯的Tomcat*能有限,在很多地方表现有欠缺,如活动连接支持、静态内容、大文件和HTTPS等。除了*能问题,Tomcat的另一大缺点是它是一个受限的集成平台,仅能运行J*a应用程序。企业在使用时Tomcat,往往还需同时部署Apache Web Server以与之整合。此配置较为繁琐,且不能保证*能的优越*。

JBoss在Tomcat的基础上,对其进行本地化,将Tomcat以内嵌的方式集成到 JBoss中。JBoss Web通过使用APR和Tomcat本地技术的混合模型来解决Tomcat的诸多不足。混合技术模型从最新的操作系统技术里提供了最好的线程和事件处理。结果,JBoss Web达到了可扩展*,*能参数匹配甚至超越了本地Apache HTTP服务器或者IIS。譬如JBoss Web能够提供数据库连接池服务,不仅支持 JSP等 J*a技术,同时还支持其他 Web技术的集成,譬如 PHP、.NET两大阵营。

标准化是减小技术依赖风险,保护投资最好的方式。JBoss Web率先支持全系列JEE Web标准,从根本上保证了应用“一次开发,到处运行”的特点,使应用成品能方便地在JBoss Web和其他J*a Web服务器之间轻易迁移。

集多功能于一身,*能卓越

???

作为Web应用服务器中的明星产品,JBoss Web服务器集多种功能于一身。其关键功能包括:完全支持J*a EE、高度的扩展*、快速的静态内容处理、群集、OpenSSL、URL重写和综合*。

JBoss Web服务器具有原生特*和强大的可扩展*,可支持多种并非基于J*a的服务器内容处理技术,可同时运行JSP, Servlet, Microsoft.NET, PHP及 CGI,为其提供一个单一的、高*能的企业级部署平台。

??与Tomcat相比,JBoss Web在静态资源访问方面*能优越。JBoss Web支持两种组件模式——纯J*a和Native I/O。在Native组件的支持下,动态运行不会受到任何影响,而静态资源的访问利用了操作系统本身提供的0拷贝传送,CPU消耗降低,响应时间缩短,吞吐率大大提高,混合的连接模式支持最大达到10000个并发客户端的同时访问,与Apache Web服务器相当。部署于高*能的操作系统,可利用JBoss Web对纯J*a和Native I/O两种模式的支持,使得应用在开发时可随时跨平台敏捷迁移,而部署于高*能的操作系统相关的Native环境。由于JBoss Web较好地解决了静态资源的访问*能问题,可在解决方案中把它作为强大的LVS的分发对象,和RHEL负载均衡系统结合,形成理论上无限线*扩展的负载均衡场景。

OpenSSL是业界最为快速和安全的开源传输组件,可借助操作系统和硬件的特*实现高效的安全承载。JBoss Web集成了OpenSSL,可提供高效的安全传输服务,使得安全机制更上台阶。研究表明, JBoss Web中的SSL*能比单纯的Tomcat快四倍。

URL重写功能可缩短URL,隐藏实际路径提高安全*,易于用户记忆和键入,及被搜索引擎收录。Tomcat不具备URL重写功能,JBoss Web则可提供一个灵活的URL rewriting操作引擎,支持无限个规则数和规则条件。URL可被重写以支持遗留的URL错误处理,或应对服务器不时产生的其他问题。

JBoss Web既可单独运行,也可无缝嵌入JBoss应用服务器,成为JBoss中间件平台的一部分。不仅后台服务调用的*能将得以提升,也可利用以下JBoss平台的特*提升Web应用功能:

???基于JGroups的多种集群方案的支持

???基于Arjuna技术的JTA和JTS的事务处理支持

???优化的线程池和连接池的支持

???基于JMX控制台的基本管理支持和JBoss On的高级管理维护支持

???基于JBoss AOP技术的面向方面架构的支持

??? Hibernate服务组件的支持

专业团队支持

业界大多数开源产品在技术方面富于创新*,但在可持续*,产品生命周期规划,以及质量保证方面缺乏有效保障,为软件集成商和最终用户所诟病。红帽所力行的“专业化开源技术”则完美解决了这一问题。

来自开源社区的JBoss Web,在红帽专业化开源的锤炼下,在*能、扩展*、稳定*、安全*等方面,已成为一个达到企业级,甚至电信级标准的优秀产品。红帽不仅有专职的技术团队投入JBoss Web的开发,而且具备专门的QA团队为产品作质量保证。完善的集成测试和兼容*测试保证了JBoss Web自身的稳定*,并保证了它的后向兼容和其他JBoss产品协作良好的互操作*。

在服务体系保障方面,JBoss开拓了以产品专家提供的专家级支持服务作为开源软件强大后盾的软件生态模式。公司以及庞大的 JBoss授权服务合作伙伴网络可为包括JBoss Web在内的整个JEMS产品套件提供全面的支持服务。与Tomcat相比,JBoss Web可提供迁移服务与现场专家服务,在迁移服务方面,专家指导应用可从Tomcat向JBoss Web迁移,省时省力。独特的服务订阅模式,全力保障软件生命周期,让企业高枕无忧。

另外,注意JBoss和tomcat是不一样,JBoss是一个可伸缩的服务器平台,当你的EJB程序编制完成后,如果访问量增加,只要通过增加服务器硬件就可以实现多台服务器同时运算,提高了负载容量,这个*能容量理论上是没有限制的,理论上无最大支持在线人数的上限,对于JBoss/EJB这样的平台来说,无最大访问量限制一说。

这是JBoss/EJB不同于Spring/Tomcat等平台的最大优点所在,而且EJB 3.0也将出现轻量化解决方案,其实随着发展,已经模糊了轻量/重量的区别,如果还是以轻量/重量作为架构选择的标准,无疑是不明智的。

可伸缩*应该是架构选择的主要标准,所谓可伸缩*,只在小型系统、一台服务器情况下,我的系统也可以良好运转,多台服务器扩展后,我的系统只需通过增加硬件就可以实现*能扩展,无需修改太多软件。