偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Tapestry和JSF對(duì)比

開發(fā) 后端
本文介紹JSF和Tapestry性能方面,開發(fā)方面,集群支持方面的對(duì)比。

1.JSF和Tapestry性能方面

JSF

從測試數(shù)據(jù)可以看出在只使用JSF及JSF自定義組件的情況下,webmail demo應(yīng)用速度最快,200用戶并發(fā)訪問的響應(yīng)時(shí)間為1.8秒,基本上可以達(dá)到servlet + jsp的性能。

使用JSF + 5個(gè)Facelet composition組件的情況下,webmail demo應(yīng)用仍可達(dá)到200用戶并發(fā)訪問的響應(yīng)時(shí)間為2.6秒的性能。

使用JSF + 20個(gè)Facelet composition組件的情況下,webmail demo應(yīng)用可達(dá)到200用戶并發(fā)訪問的響應(yīng)時(shí)間為3.1秒的性能。

如果在業(yè)務(wù)層方法沒有大的效率問題、并在壓力較大的頁面適當(dāng)使用緩存的情況下,JSF應(yīng)用程序可以達(dá)到在dell 2850機(jī)器上100-200并發(fā)5秒內(nèi)響應(yīng)的性能

Tapestry

從測試數(shù)據(jù)可以看到tapestry在使用相同數(shù)量框架自身提供組件的情況下,運(yùn)行效率比JSF明顯要低一些,但也算是在可以接受的范圍內(nèi)。

2.JSF和Tapestry開發(fā)方面

JSF

JSF對(duì)servlet API進(jìn)行了封裝,程序員在使用組件做JSF應(yīng)用程序的開發(fā)時(shí)基本上不需要直接操作HttpRequest和HttpResponse,并且對(duì)用戶輸入驗(yàn)證,手機(jī)等其它設(shè)備(通過rendererKit),多語言(通過資源文件方式)和換膚(通過rendererKit)的支持都有相應(yīng)的封裝,可以方便的實(shí)現(xiàn)。目前開源的組件庫有MyFaces,ADF等可以使用,其中有些組件內(nèi)置AJAX支持。

開發(fā)工具中IBM WebSphere Studio,Oracle JDeveloper 10g和FaceIDE等IDE對(duì)JSF應(yīng)用開發(fā)提供可視化編輯支持。下面是對(duì)JSF自定義組件和JSF+facelet composition組件開發(fā)進(jìn)行比較

JSF自定義組件開發(fā):

JSF自定義組件由java代碼和tag庫文件組成,開發(fā)難度應(yīng)該與現(xiàn)有I2SS組件開發(fā)的難度基本一致,JSF自定義組件通過自定義標(biāo)記構(gòu)造頁面,在頁面上增加組件的數(shù)量對(duì)性能有較大的影響。

JSF + facelet composition組件開發(fā):

facelet composition組件在個(gè)性化、重用方面對(duì)JSF提供了很好的補(bǔ)充。通過編寫tag庫文件,使用facelet可以把多個(gè)JSF自定義組件組合成facelet composition組件,或者把幾個(gè)facelet composition組件組合成新的facelet composition組件,這個(gè)過程不需要開發(fā)或設(shè)計(jì)人員編寫Java代碼。facelet composition組件是live模式運(yùn)行時(shí)生成,從測試結(jié)果上看組件數(shù)量對(duì)性能的影響不大

學(xué)習(xí)曲線上,開發(fā)難度與組件基本一致,只要寫過組件或?qū)戇^servlet+jsp的人,加上適當(dāng)培訓(xùn),一周內(nèi)都可掌握J(rèn)SF或Tapestry開發(fā)

Tapestry

組件和頁面的開發(fā)過程完全一致,都是由模板、page/component class和specification文件組成。IDE方面目前有開源社區(qū)開發(fā)的eclipse插件Spindle和Tapestry Palette可用,對(duì)開發(fā)效率有一定的提升。

3.JSF和Tapestry集群支持方面

JSF

目前在I2SS上做的集群實(shí)驗(yàn)是使用apache+jboss來實(shí)現(xiàn),結(jié)構(gòu)是apache做集群前端實(shí)現(xiàn)stick session,jboss做應(yīng)用服務(wù)器。

I2SS架構(gòu)應(yīng)用程序Session中放入的對(duì)象并不能全部串行化,所以在做集群時(shí)只能使用粘貼會(huì)話方式(stick session)實(shí)現(xiàn),這樣容易出現(xiàn)的情況是如果一臺(tái)機(jī)器down掉,這臺(tái)機(jī)器上的所有在線用戶都會(huì)無法繼續(xù)當(dāng)前的會(huì)話。如果用戶重新發(fā)起登錄請求,任務(wù)會(huì)轉(zhuǎn)移到其它正常工作的機(jī)器上。如果down掉的機(jī)器重新恢復(fù),轉(zhuǎn)移到其它機(jī)器上的用戶不能重新使用這臺(tái)新啟動(dòng)的機(jī)器,只有新發(fā)起的用戶請求和在線用戶調(diào)用session.invalidate()顯式退出后,工作才會(huì)轉(zhuǎn)移到新啟動(dòng)的機(jī)器上,這樣負(fù)載的均衡時(shí)間會(huì)比較長。I2SS架構(gòu)應(yīng)用程序可以通過更改框架層,將現(xiàn)有放入session中的對(duì)象實(shí)現(xiàn)串行化,并且將不能串行化的對(duì)象放到session以外的地方來實(shí)現(xiàn)使用session replication的集群模式。

在JSF上做的集群實(shí)驗(yàn)是使用apache+jboss來實(shí)現(xiàn),支持stick session和session replication兩種模式。stick session模式的結(jié)構(gòu)和討論如上述,session replication的結(jié)構(gòu)是apache做集群前端,通過jboss的TreeCache實(shí)現(xiàn)session replication。在編寫JSF程序時(shí)要把放入會(huì)話中的backing-beans實(shí)現(xiàn)串行化,如果一臺(tái)機(jī)器down掉,在線用戶的會(huì)話會(huì)轉(zhuǎn)移到其它正常工作的機(jī)器上,對(duì)于用戶的感受來說可能是速度變慢,但是不會(huì)出現(xiàn)會(huì)話斷掉的情況。如果down掉的機(jī)器重新恢復(fù),TreeCache通過網(wǎng)卡或文件系統(tǒng)完成session replication的過程后,在線用戶的任務(wù)就可以實(shí)現(xiàn)與機(jī)器未down時(shí)相同的負(fù)載均衡狀態(tài)。如果想減少網(wǎng)卡或文件系統(tǒng)的I/O操作,可以通過集群分區(qū)來實(shí)現(xiàn)。
 
Tapestry

Tapestry本身提供兩種state持久方式:傳統(tǒng)的session方式和client-side方式。狀態(tài)保存在session中的情況下,實(shí)現(xiàn)集群和JSF方式一樣,需要session replication。保存在client-side的情況下,有一些局限性,但是可以實(shí)現(xiàn)無狀態(tài)的應(yīng)用,自動(dòng)支持集群。

4.對(duì)于I2SS組件與JSF組件混合使用的說明

JSF組件應(yīng)用程序是標(biāo)準(zhǔn)J2EE應(yīng)用程序,JSF組件對(duì)servlet API提供了封裝,同時(shí)也提供了直接得到servlet上下文的方法,所以I2SS組件與JSF組件的混合使用與現(xiàn)在已經(jīng)實(shí)現(xiàn)的郵件系統(tǒng)中servlet+JSP與I2SS組件的混合使用方法是一樣的,都可以用手動(dòng)創(chuàng)建EbiContext實(shí)例的方法來實(shí)現(xiàn)。


5.目前JSF標(biāo)準(zhǔn)的進(jìn)展情況,以及行業(yè)的支持情況

JSF 體系結(jié)構(gòu)
JavaServer Faces 的 MVC 實(shí)現(xiàn)
JSF 的主要優(yōu)勢之一就是它既是 Java Web 用戶界面標(biāo)準(zhǔn)又是嚴(yán)格遵循模型-視圖-控制器 (MVC) 設(shè)計(jì)模式的框架。用戶界面代碼(視圖)與應(yīng)用程序數(shù)據(jù)和邏輯(模型)的清晰分離使 JSF 應(yīng)用程序更易于管理。為了準(zhǔn)備提供頁面對(duì)應(yīng)用程序數(shù)據(jù)訪問的 JSF 上下文和防止對(duì)頁面未授權(quán)或不正確的訪問,所有與應(yīng)用程序的用戶交互均由一個(gè)前端“Faces”servlet(控制器)來處理。

【編輯推薦】

  1. 簡述JSF是什么
  2. Facelets非常適合JSF組件
  3. JSF的八大優(yōu)勢
  4. JavaServer Faces(JSF)簡介
  5. 簡述JSF組件模型
責(zé)任編輯:佚名 來源: CSDN
相關(guān)推薦

2009-06-24 16:16:30

JSF和Tapestr

2009-07-03 14:46:42

JSP開發(fā)框架JSFTapestry

2009-06-23 14:01:27

StrutsTapestryJSF

2009-06-23 16:29:51

JSFSpring MVCStruts 2

2009-07-14 14:16:03

Tapestry 5.Tapestry教程Tapestry頁面

2009-06-26 13:48:57

G4JSFGWTJSF

2009-06-24 13:50:29

JSF和MVC

2009-06-24 16:42:17

JSF和Facelet

2011-06-30 10:20:38

JSFMVC

2009-06-23 13:21:26

JSF和Spring

2009-06-24 17:43:24

Struts和JSF

2009-06-22 15:35:31

JSF和Struts

2009-06-24 14:17:00

BackingBeanJSF配置文件

2009-06-25 14:26:33

JSFDojo小部件

2009-09-23 17:56:45

JSF入門

2009-07-03 16:33:13

Tapestry函數(shù)執(zhí)

2009-07-03 10:48:12

JSP和JSF

2009-06-23 16:52:16

JSFHibernateWeb應(yīng)用

2009-06-25 11:11:25

控制JSF切入點(diǎn)

2009-06-29 17:42:03

Tapestry5新特
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)