|
JBoss是一個(gè)另類的開放源碼軟件。它打破了開源軟件不能掙錢的舊觀念,通過提供商業(yè)化服務(wù),來贏得開發(fā)回報(bào)。這是開源軟件開發(fā)的一個(gè)創(chuàng)新。
JBoss是一個(gè)另類的開放源碼軟件,它打破了人們的一個(gè)理解:開源軟件不能掙錢。但是,JBoss組織首席構(gòu)架師Bill Burke卻說:“JBoss與其它開源軟件不同,它為開源軟件提供了商業(yè)化的服務(wù)。而其它的開源軟件并不提供這樣的服務(wù)。”也就是說,你可以免費(fèi)獲得 JBoss的源代碼或安裝包,但如果你有技術(shù)上的問題,就要向JBoss組織咨詢或想得到培訓(xùn),那就得付費(fèi)。 關(guān)于JBoss JBoss是一個(gè)用純Java編寫、開放源代碼、遵循J2EE規(guī)范的應(yīng)用服務(wù)器軟件,它遵循LGPL開放源碼協(xié)議。 JBoss起初只是一個(gè)EJB容器,后來逐步發(fā)展成為一個(gè)具有復(fù)雜功能的應(yīng)用服務(wù)器?,F(xiàn)在,最高的版本是4.0。它從創(chuàng)建到現(xiàn)在,經(jīng)歷了4年的發(fā)展歷程。 JBoss構(gòu)架圖 JBoss是一個(gè)非常重要的項(xiàng)目。它體現(xiàn)在JBoss的開放源碼、與平臺(tái)無關(guān)性、完全遵循J2EE規(guī)范和安裝簡(jiǎn)便。 它包含內(nèi)置的Web服務(wù)器(支持Jsp、Servlet和Html)、EJB2.0容器、內(nèi)置的用Java編寫的關(guān)系型數(shù)據(jù)庫(kù)Hypersonic、Java消息服務(wù)(JMS)、JavaMail、Java事務(wù)接口/Java事務(wù)服務(wù)(JTA/JTS)支持。 另外,JBoss4.0以前的版本,只提供Tomcat充當(dāng)內(nèi)置的Web服務(wù)器。但是,從JBoss4.0開始,提供了另一個(gè)可選的JBoss Web服務(wù)器——Jetty。 JBoss構(gòu)架的特征 微內(nèi)核結(jié)構(gòu) JBoss的核心遵循Sun公司的JMX規(guī)范。JMX相當(dāng)于一個(gè)軟總線,它的主要工作是支持熱插拔服務(wù)組件、對(duì)服務(wù)組件的生存期進(jìn)行管理。 熱插拔的服務(wù)組件 JBoss包含一系列的基于微內(nèi)核的服務(wù)組件。這些服務(wù)組件,可以是事務(wù)組件、消息隊(duì)列組件、郵件服務(wù)組件、安全服務(wù)組件或連接服務(wù)組件等。它借鑒了即插件技術(shù)(Plug-in)的精華,使得這些服務(wù)組件,可以用打包的形式進(jìn)行熱部署。 界面層 界面層采用AOP框架實(shí)現(xiàn)。它允許系統(tǒng)能夠方便地將服務(wù)組件,與任何對(duì)象的任何方法進(jìn)行關(guān)聯(lián)。值得一提的是,JBoss中的EJB容器就是用這種方式來實(shí)現(xiàn)的。 應(yīng)用層 應(yīng)用層就是部署應(yīng)用程序的地方。JBoss支持熱部署功能,不必重啟服務(wù)器,就可以動(dòng)態(tài)地添加或刪除諸如EJB服務(wù),使得開發(fā)新的應(yīng)用更加容易。 JBoss流行的原因 使用JBoss可以得到多種好處: 可以得到免費(fèi)軟件,哪怕是用于商業(yè)用途;100%純Java,安裝簡(jiǎn)便,占用系統(tǒng)資源較小,啟動(dòng)時(shí)間比標(biāo)準(zhǔn)的J2EE服務(wù)器快10倍;部署新的應(yīng)用非常方便,具有高擴(kuò)展性;可以得到廣泛的支持,目前已被Sun公司納入J2EE的標(biāo)準(zhǔn)服務(wù)。 不僅如此,如果用下載量來衡量一套軟件的流行程度的話,可以說, JBoss是非常流行的。據(jù)統(tǒng)計(jì),在2002年JBoss大約被下載200萬次。到目前為止,它的下載量呈不斷上升趨勢(shì)。它是目前全球最流行的J2EE應(yīng)用服務(wù)器軟件之一,具有25%的市場(chǎng)份額。 JBoss的功能強(qiáng)大,它的安裝也非常簡(jiǎn)單:將下載的文件解壓后,修改幾個(gè)環(huán)境變量(不是必須的)就可以運(yùn)行了。 由于JBoss是基于JMX微內(nèi)核的,因此它可以對(duì)那些已部署的組件進(jìn)行動(dòng)態(tài)管理。通過JBoss提供的管理控制臺(tái),可以任意地修改組件的態(tài)。舉例來說,如果部署了一個(gè)EJB,那么JBoss會(huì)自動(dòng)生成一個(gè)部署Mbean,并且會(huì)在管理控制臺(tái)上顯示出來。通過這個(gè)Mbean,來動(dòng)態(tài)地刪除或部署這個(gè)EJB,并可以查看或修改它的狀態(tài)。 由于JBoss是開放源碼,只要需要就可以擴(kuò)展它的管理控制臺(tái),并加入一些界面元素。 也許在有些人眼里,開放源碼意味著沒有質(zhì)量保證。但是,事實(shí)并非如此。開源軟件正以更好的質(zhì)量來面向用戶。由于JBoss組織的經(jīng)營(yíng)方式是收取服務(wù)費(fèi)用,它有財(cái)力進(jìn)行軟件的維護(hù)與新版本的開發(fā)。因此,JBoss比其它的商用應(yīng)用服務(wù)器軟件性價(jià)比更高。 另外,值得一提的是,JBoss的技術(shù)支持,都是由開發(fā)者直接與客戶交流。因此,服務(wù)質(zhì)量會(huì)更好,甚至能夠?yàn)榭蛻袅可矶ㄗ鯦Boss。 最新版本JBoss 4.0 在JBoss4.0版本中,JBoss向.net吸收了一些好的設(shè)計(jì)理念。比如,在源代碼中meta標(biāo)簽的支持??梢哉J(rèn)為,JBoss組織與Borland公司有些相似之處。它并不是只吸收好的技術(shù)經(jīng)驗(yàn),而不管對(duì)方是Mircrosoft或是Sun。 在JBoss4.0中,JBoss組織主席Fleury決定,將這個(gè)版本逐漸脫離J2EE規(guī)范,并加入一些新的特性。Fleury指出:“我們與J2EE標(biāo)準(zhǔn)有些背道而馳,但是我們?nèi)詫⒅С炙?,我們?huì)讓開發(fā)者有一個(gè)更簡(jiǎn)單、更深層次的開發(fā)環(huán)境—AOP(樣式導(dǎo)向的編程)” AOP對(duì)于JBoss組織來說,是一個(gè)非常重要的創(chuàng)新。因?yàn)樗粌H是JBoss的一個(gè)特色,而是對(duì)程序設(shè)計(jì)方法產(chǎn)生影響。如果運(yùn)用得當(dāng), AOP允許從不同類中,找到它們的共同特色,這一點(diǎn)和多重繼承有些相似。因此,AOP能帶來許多好處,比如可以為某個(gè)類添加一個(gè)行為,而不必改變它的源代碼,這就給項(xiàng)目的后期維護(hù)帶來了方便。 AOP框架定義了一些獨(dú)具特色的概念,諸如Interceptor、Pointcut等。Interceptor的中文意思是攔截機(jī),它能攔截對(duì)象的某個(gè)方法,從而為它添加諸如安全、事務(wù)、權(quán)限檢查方面的控制,就好像Windows中的鉤子函數(shù)一樣。JBoss允許定義自己的 Interceptor,關(guān)系到一個(gè)對(duì)象到底要通過哪些Interceptor和Pointcut來確定。所謂Pointcut,就是一個(gè)XML配置文件。它用來對(duì)Interceptor進(jìn)行配置,且非常靈活,可以為任意類的任意方法指定任意的Interceptor。 目前,JBoss4.0還只推出了開發(fā)版本,它的生產(chǎn)版本即將完成。即將發(fā)行的生產(chǎn)版本,將直接支持JDO(Java數(shù)據(jù)對(duì)像,EJB的一種替代方法),此外,增強(qiáng)的JMS允許集群功能,并支持分布式的事務(wù)。更重要的是,它完全遵循J2EE1.4規(guī)范。 關(guān)于JBoss組織 JBoss組織是一家位于美國(guó)亞特蘭大的商業(yè)服務(wù)組織。他們?yōu)镴Boss應(yīng)用服務(wù)器,提供技術(shù)支持和顧問咨詢。JBoss組織首席構(gòu)架師 Bill Burke說,他們?yōu)榭蛻籼峁┑姆?wù)是以小時(shí)計(jì)費(fèi),而不同于傳統(tǒng)的固定收費(fèi)模式。但是,JBoss自身的開發(fā)與維護(hù)是免費(fèi)的。“在我們的CVS服務(wù)器中,更新的Bug和補(bǔ)丁都是免費(fèi)的,任何新特征的添加也是免費(fèi)的,但是如果我們要定制一個(gè)特色,那就要收費(fèi)了。” Burke 如是說。 JBoss組織對(duì)于那些有貢獻(xiàn)的參與者,會(huì)給予獎(jiǎng)金或分紅獎(jiǎng)勵(lì)。JBoss組織的主席Marc Fleury說:“我們對(duì)于那些為JBoss做出貢獻(xiàn)的參與者,會(huì)給予物質(zhì)上的鼓勵(lì)。” JBoss與J2EE規(guī)范 1999年,Marc Fleury建立了JBoss開源項(xiàng)目,現(xiàn)在它有100名活躍的開發(fā)者,30名核心開發(fā)者,每月高達(dá)35萬次的下載量。自從JBoss3.0開始就加入了集群技術(shù),幾乎能對(duì)任何J2EE規(guī)范進(jìn)行集群管理,如JNDI、JSP中的Session、EJB等。 JBoss是一個(gè)建立在J2EE規(guī)范上的應(yīng)用服務(wù)器。 J2EE(Java2 SDK Enterprise Edition)規(guī)范是由Sun公司制訂的。它定義了基于組件的方式設(shè)計(jì)、開發(fā)、組裝和部署企業(yè)應(yīng)用系統(tǒng)的各個(gè)組成部分。 同時(shí),J2EE規(guī)范定義了分布式多層應(yīng)用系統(tǒng)模型、組件重用策略、一體化的安全模型以及靈活的事務(wù)控制策略等,使得獨(dú)立軟件提供商(ISV)能夠比以前更快的速度,向市場(chǎng)推出用戶適應(yīng)的解決方案。 J2EE是一套針對(duì)于企業(yè)級(jí)分布式應(yīng)用的計(jì)算環(huán)境。它定義了動(dòng)態(tài)Web頁(yè)面功能(Servlet和Jsp)、商業(yè)組件(EJB)、異步消息傳輸機(jī)制(JMS)、名稱和目錄定位服務(wù)(JNDI)、數(shù)據(jù)庫(kù)訪問(JDBC)、與子系統(tǒng)的連接器(JCA)、安全服務(wù)等。 另外,平臺(tái)獨(dú)立、基于組件技術(shù)的J2EE解決方案,不受軟件產(chǎn)品類型和不同應(yīng)用環(huán)境的制約。 但是,J2EE并沒有定義企業(yè)級(jí)應(yīng)用所必須的規(guī)范,例如集群。所以,集群的實(shí)現(xiàn)只能由各廠商自行來設(shè)計(jì)實(shí)現(xiàn)。要實(shí)現(xiàn)基于J2EE規(guī)范的集群,通常要做如下考慮:集群的管理、負(fù)載平衡、失效轉(zhuǎn)發(fā)、服務(wù)端狀態(tài)的復(fù)制,還要考慮同步和異步的問題。 |
|
|