JBoss簡介告訴我們JBoss是什么
有人問了JBoss是什么?JBoss是web服務器的一種,主要做EJB容器,和tomcat集成就可以jsp,servlet,ejb通吃了JBoss有兩種版本,一種是獨立的,一種是和tomcat集成的,當然都是免費的啦EJB(enterprise javabean),他不是javabean簡單的升級,而是一些提供分布式訪問的類包括實體bean,會話bean,消息驅動bean
JBoss是一個運行EJB的J2EE應用服務器。它是開放源代碼的項目,遵循最新的J2EE規范。從JBoss項目開始至今,它已經從一個EJB容器發展成為一個基于的J2EE的一個web 操作系統(operating system for web),它體現了J2EE規范中最新的技術,并且它還在the JavaWorld Editors' Choice 2002評選中獲得“最佳Java應用服務器”大獎。無論是學習還是應用,JBoss為我們提供了一個非常優秀的平臺。
剛開始使用JBoss進行EJB開發時,由于可供參考的資源不是很多,所以有一個比較困難的起步階段。JBoss的配置和使用沒有提供圖形向導界面,所以開發部署EJB相對比較復雜。本文通過盡量具體的演示來對JBoss3.0下的EJB開發和部署的進行一個簡單的介紹,從而使剛開始使用JBoss的用戶可以很快地進入到真正的J2EE應用開發中。
Enterprise JavaBean (EJB)規范定義了開發和部署基于事務性、分布式對象應用程序的服務器端軟件組件的體系結構。企業組織可以構建它們自己的組件,或從第三方供應商購買組件。這些服務器端組件稱作 Enterprise Bean,它們是 Enterprise JavaBean 容器中駐留的分布式對象,為分布在網絡中的客戶機提供遠程服務。
JBoss是一個開源的符合J2EE規范的應用服務器,作為J2EE規范的補充,JBoss中引入了AOP框架,為普通Java類提供了J2EE服務,而無需遵循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簡介
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))、JavaMail/JAF、JTA 1.0和JAAS1.0標準,JBoss是100%純Java實現能運行于任何平臺。
從JBoss項目開始至今,它已經從一個EJB容器發展成為一個基于的J2EE的一個web 操作系統(operating system for web),它體現了J2EE規范中最新的技術,并且它還在the JavaWorld Editors' Choice 2002評選中獲得“最佳Java應用服務器”大獎。無論是學習還是應用,JBoss為我們提供了一個非常優秀的平臺。
另外,JBoss應用服務器還具有許多優秀的特質:
它將具有革命性的JMX微內核服務作為其總線結構;
它本身就是面向服務的架構(Service-Oriented Architecture,SOA);
它還具有統一的類裝載器,從而能夠實現應用的熱部署和熱卸載能力。
因此,它是高度模塊化的和松耦合的。JBoss用戶的積極反饋告訴我們,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使Java 消息規范(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代碼。但是這樣做潛在的問題是性能和可測性,因為我們知道java反射機制會引起性能的損失。JBoss中存在著相應的優化方案并且在將來的研究中我們會論述該優化方法在什么時候工作并且是如何工作的。
【編輯推薦】