国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

J2EE Web的新變革:Apusic OperaMasks

2019-11-18 16:01:56
字體:
供稿:網(wǎng)友

Apusic OperaMasks――開箱即用的Web Framework,它以JSF為基礎(chǔ)引擎,輔以獨(dú)創(chuàng)的原生Ajax技術(shù),同時提供豐富的組件和集成開發(fā)環(huán)境,使Web開發(fā)變得簡單方便。無論是后臺的事務(wù)、存儲、分布式計算等基礎(chǔ)服務(wù),還是前端的UI展現(xiàn)與用戶交互,以及后臺與前端的會話過程,Apusic OperaMasks都提供了完整的解決方案,有效解決Web開發(fā)所面臨的問題。

1.Standard & Open!

J2EE是一個開放的社區(qū),是一個允許各種技術(shù)百花齊放、百家爭鳴的社區(qū),同時,也是一個遵循標(biāo)準(zhǔn)、推崇標(biāo)準(zhǔn)的社區(qū)。與.net相比,J2EE的標(biāo)準(zhǔn)是開放的標(biāo)準(zhǔn),它并不是掌握在少數(shù)人或者少數(shù)廠商的手里,而是允許并鼓勵人們參與標(biāo)準(zhǔn)的制定,并通過標(biāo)準(zhǔn)來規(guī)范與約束不同廠商的實(shí)現(xiàn),從而有效保護(hù)客戶的IT投資。

Apusic OperaMasks首先是標(biāo)準(zhǔn)的,它遵循并實(shí)現(xiàn)JSF規(guī)范,任何基于JSF技術(shù)構(gòu)建的Web應(yīng)用,都能夠平滑移植到Apusic OperaMasks上;同時,它又是開放的,所有的源碼,以及OperaMasks整個開發(fā)過程,全部通過開源社區(qū)OperaMasks.org進(jìn)行。

那么,作為底層支持技術(shù),JSF是否能夠承擔(dān)起“下一代J2EE Web開發(fā)框架”之重任?同樣,有了標(biāo)準(zhǔn)與開放,是否就意味著Apusic OperaMasks能夠引領(lǐng)Web開發(fā)技術(shù)的新潮流呢?

2.From the earth to the moon, and ready for Mars!

Apusic OperaMasks是一種不依賴任何具體展現(xiàn)技術(shù)的解決方案,它支持現(xiàn)有的Web標(biāo)準(zhǔn),譬如Html與WML,同時也為將來可能出現(xiàn)的新技術(shù)、新標(biāo)準(zhǔn)做好了準(zhǔn)備。在Apusic OperaMasks中,所有的UI元素被封裝成Component,而Component通過Render Kit進(jìn)行界面的渲染,當(dāng)系統(tǒng)需要支持其它展現(xiàn)層技術(shù)時,只需要替換Render Kit即可實(shí)現(xiàn)。

當(dāng)AJAX出現(xiàn)之后,人們意識到Web應(yīng)用可以更加豐富多彩,于是各種RIA技術(shù)方案層出不窮,目的是要在AJAX這種“過渡”技術(shù)的思想指引之下完成下一代Web技術(shù)的變革。面對未來可能的新技術(shù),很多用戶和開發(fā)者在迷茫中觀望,對JSF并沒有抱多大的熱情,認(rèn)為JSF也是行將被淘汰的技術(shù)。事實(shí)上這種概念是錯誤的,JSF是一種和具體展現(xiàn)技術(shù)無關(guān)的技術(shù)。在Apusic OperaMasks中唯一和具體展現(xiàn)相關(guān)的部分是Render Kit,而Render Kit的可插拔的性質(zhì)決定了Apusic OperaMasks可以適應(yīng)目前和將來的大多數(shù)RIA技術(shù)。每當(dāng)一種新的RIA技術(shù)出現(xiàn)時,只需要針對這種RIA技術(shù)編寫一個Render Kit,這種新的RIA技術(shù)立即就能在Apusic OperaMasks中獲得支持,而以前所寫的應(yīng)用不需要做任何修改。

Apusic OperaMasks為任何新的展現(xiàn)層技術(shù)做好了準(zhǔn)備!

3.Ajax Everything!

Ajax是當(dāng)今紅得發(fā)紫的技術(shù),它改變了人們對傳統(tǒng)Web應(yīng)用的不佳印象,但同時,它的開發(fā)成本與維護(hù)成本過高。于是乎,各種各樣的Ajax組件與框架應(yīng)運(yùn)而生。與Apusic OperaMasks相比,這些Ajax組件與框架所解決的問題,是簡化Ajax的開發(fā);Apusic OperaMasks則是使Ajax變得透明,是“干掉”了Ajax,用戶甚至不需要知道Ajax的存在,而應(yīng)用是自然而然的Ajax Enable的應(yīng)用。

3.1 與其它JSF引擎相比

Apusic OperaMasks是世界上第一個“原生支持Ajax”的JSF引擎。其它常規(guī)JSF引擎(譬如MyFaces)往往是通過提供一些特殊組件庫來完成對Ajax的支持,而Apusic OperaMasks則在引擎級別提供了對Ajax的原生支持。

舉個簡單的例子,在MyFaces中,為了達(dá)到Ajax效果,需要利用Sandbox子項(xiàng)目或者其它擴(kuò)展組件,常規(guī)的標(biāo)準(zhǔn)JSF組件永遠(yuǎn)無法具備Ajax特性。但這些標(biāo)準(zhǔn)JSF組件,卻可以在Apusic OperaMasks引擎上獲得截然不同的效果:任何利用標(biāo)準(zhǔn)JSF組件構(gòu)建的應(yīng)用,只需要配置一個參數(shù),就能夠在Apusic OperaMasks引擎上獲得完整的Ajax特性,包括與服務(wù)器端的異步交互、頁面的局部刷新等。

<application>    <default-render-kit-id>AJAX</default-render-kit-id></application>

換言之,僅僅將上述參數(shù)中的default-render-kit-id置成AJAX,Apusic OperaMasks就能夠讓標(biāo)準(zhǔn)的JSF應(yīng)用具備Ajax特性!

有點(diǎn)像變魔術(shù)?Apusic OperaMasks是如何做到的?

我們說過:Apusic OperaMasks is “from earth to the moon, and ready for Mars”。Apusic OperaMasks不僅提供了默認(rèn)的HTML_BASIC的Render Kit,還提供了內(nèi)置的Ajax Render Kit。因此,我們只需要將系統(tǒng)默認(rèn)Render Kit置成Ajax Render Kit,整個應(yīng)用就自動變成Ajax Enable的應(yīng)用!

3.2 與其它Ajax組件庫的區(qū)別

Ajax組件庫是為了簡化Ajax的開發(fā)(譬如ajax4jsf),而Apusic OperaMasks則是“干掉了”Ajax。對OperaMasks的用戶來說,應(yīng)用對Ajax的支持是透明的,你所寫的任何一個JSF應(yīng)用都支持AJAX,但不需要編寫任何javascript代碼,甚至不需要了解AJAX的原理。舉個簡單的例子,用戶希望點(diǎn)擊一個按鈕,web頁面產(chǎn)生一次Ajax請求與響應(yīng)并更新某個text文本框時,通過ajax4jsf,我們需要在頁面中指定:

< h:outputText id="dup" value="#{bean.text}" />


< a4j:commandButton reRender="dup" value=" Submit"/>

用戶不僅需要記住額外的tag用法,還需要知道此Ajax請求需要更新頁面哪個控件的值。而通過Apusic OperaMasks技術(shù),用戶只需要采用標(biāo)準(zhǔn)JSF組件的寫法:

< h:outputText value="#{bean.text}" />

< h:commandButton value="Server Submit" />

然后,用戶只需要指定此form的Render Kit是Ajax,或者在配置文件faces-config.xml中,將全局Render Kit置成Ajax即可。用戶無需記住其它tag的用法,也無需了解更新哪些控件,甚至根本就不必要關(guān)心什么是Ajax!

3.3 與其它Ajax開發(fā)框架的區(qū)別

同樣,這個世界還存在許多Ajax Framework,譬如dojo。我們并不否認(rèn)這些Ajax開發(fā)框架的優(yōu)秀,但是,與它們的優(yōu)點(diǎn)同樣明顯的局限之處是:dodo之類的Ajax開發(fā)框架僅僅解決了客戶端的問題,對任何服務(wù)器端邏輯,dojo無能為力。J2EE是一個整體,它不僅需要解決表現(xiàn)層問題,也要解決數(shù)據(jù)層和邏輯層的問題,JSF是JavaEE 5.0的一個重要組成部分,這就使得Apusic OperaMasks不僅可以創(chuàng)建豐富的客戶端體驗(yàn),同時可以和JavaEE應(yīng)用服務(wù)器結(jié)合,從而建立強(qiáng)大的服務(wù)器端邏輯綁定。

3.4 組件對Ajax的支持:

與此同時,Apusic OperaMasks提供了部分特殊組件,以更有效的支持Ajax特性,譬如:

renderGroup:能夠改造過時的應(yīng)用,使其支持AJAX。在AJAX出現(xiàn)之前或基于其他JSF框架所編寫的組件或應(yīng)用有時并不能很好地運(yùn)行在OperaMasks中,renderGroup能夠?yàn)檫@些組件提供一個AJAX的渲染環(huán)境,使其達(dá)到AJAX的運(yùn)行效果。

updater:裝載和刷新頁面的一小部分,使頁面變成桌面。我們可以將頁面的某些區(qū)域定義成一個獨(dú)立刷新區(qū),這些區(qū)域具有獨(dú)立的交互環(huán)境和生命周期,當(dāng)在這些獨(dú)立區(qū)域中進(jìn)行交互操作時他們被單獨(dú)刷新,頁面的其他部分不受影響。你可以單獨(dú)開發(fā)和調(diào)試一些小應(yīng)用,然后用updater將這些小應(yīng)用組裝成一個完整的應(yīng)用。使用這樣的技術(shù)將不再需要購買昂貴的Portal Server,在運(yùn)行的時候和Portal沒有什么區(qū)別。

event binding:如果必要,可以在服務(wù)器端處理客戶端事件(譬如當(dāng)某個客戶端事件需要從服務(wù)器中獲取數(shù)據(jù)進(jìn)行響應(yīng));

client validator:本該由服務(wù)器處理的數(shù)據(jù)校驗(yàn)可以在客戶端執(zhí)行。JSF默認(rèn)提供了許多數(shù)據(jù)驗(yàn)證器,常規(guī)JSF引擎的實(shí)現(xiàn)總是在服務(wù)器端進(jìn)行驗(yàn)證,這樣的話,每次與服務(wù)器的交互總是會帶來一定的性能損失,而Apusic OperaMasks能夠在不更改代碼的情況下,在客戶端進(jìn)行數(shù)據(jù)驗(yàn)證。

總而言之,Apusic OperaMasks對Ajax的支持是原生的,是從引擎級別予以支持的,在Apusic OperaMasks中,Ajax is Everything!

4.Rich Components!

Apusic Operamasks提供了許多豐富的組件,我們稱之為“Rich Components”。無須贅述的是,這些Rich Components從骨子里提供了Ajax的支持。在這里我們沒有重新發(fā)明一次車輪,而是采用了廣受好評的Ext JS(http://extjs.com)來實(shí)現(xiàn)Rich Components,但OperaMasks和Ext JS之間的聯(lián)系并不緊密,如果必要,完全可以通過更換Render Kit的方式用其他的富客戶端組件庫來代替。這些組件都是面向數(shù)據(jù)的,可以用JPA、Hibernate、或直接用JDBC將數(shù)據(jù)準(zhǔn)備好,交給這些組件去展現(xiàn)。同一組數(shù)據(jù)可以用不同的組件來展現(xiàn),無論是DataGrid, DataView還是Chart,對數(shù)據(jù)的展現(xiàn)過程都是一樣的。當(dāng)數(shù)據(jù)需要更新時,通過AJAX和JSON完成與服務(wù)器的交互。我們有:

TreeView:用來組織你的數(shù)據(jù)

DataGrid:用表格展現(xiàn)你的數(shù)據(jù)

Chart & Report:以圖表形式展現(xiàn)數(shù)據(jù)

DataView:用任何你能想到的方式展現(xiàn)你的數(shù)據(jù)

5.Rich Form

OperaMasks 提供的Rich Components提供了許多額外的特性,除了原生的Ajax支持以外,還具備自定義風(fēng)格、換膚功能等,這是對JSF常規(guī)標(biāo)準(zhǔn)組件的一種有益擴(kuò)展。

那么,標(biāo)準(zhǔn)JSF組件是否能夠通過Apusic OperaMasks獲得這些能力?讓我們再變一次魔術(shù)。

J2EE Web的新變革:Apusic OperaMasksJ2EE Web的新變革:Apusic OperaMasks

左圖是一個常規(guī)的標(biāo)準(zhǔn)JSF組件的樣態(tài),當(dāng)我們修改這個form的屬性rich=”true”時,或者在web.xml中配置一個全局環(huán)境變量:

<context-param><param-name>org.operamasks.faces.FORM_RICH</param-name><param-value>true</param-value></context-param>

然后我們可以發(fā)覺,左邊的JSF組件全部變成了右邊的形態(tài)。甚至不僅僅是樣式風(fēng)格的變化:如果一個文本框需要顯示的是一個日期,那么,會變成一個帶日歷選擇器的輸入框;如果是一個只能夠輸入數(shù)字的文本框,那么,會變成一個帶計算器輔助輸入的文本框。

又是一個魔術(shù)?事實(shí)上,這里的原理與Ajax Render Kit大同小異,我們只是更改了組件的Render Kit而已。

6.Apusic Studio!

Apusic OperaMasks是基于JSF規(guī)范的, JSF從規(guī)范中便對工具預(yù)留了支持的空間。同樣,Apusic OperaMasks不僅提供了引擎、組件,我們還有與之相輔相承的集成式開發(fā)工具:Apusic Studio。


作為集成式Web開發(fā)工具,什么是其最主要的核心功能?可視化設(shè)計?重要,但又不是全部。對Web開發(fā)初學(xué)者來說,可視化的頁面設(shè)計器是能夠降低Web開發(fā)學(xué)習(xí)曲線的有力武器,但真正有經(jīng)驗(yàn)的人,卻絕不依賴于設(shè)計器。真正熟練的、富有經(jīng)驗(yàn)的Web開發(fā)人員,所需要的是一款細(xì)節(jié)考慮完善、開發(fā)過程流暢的工具。他們通過可視化去了解工具,但通過細(xì)節(jié)與開發(fā)流暢性去決定是否喜愛這款工具。

Apusic Studio提供了世界一流的可視化Web設(shè)計界面,同時,Apusic Studio又是世界上第一款將開發(fā)、配置、部署、監(jiān)控等過程完美的銜接在一起的集成式開發(fā)環(huán)境!J2EE的Web開發(fā)原本是一個比較繁瑣的過程,即便整個過程你很熟悉,但其復(fù)雜度也足以讓人望而生畏,采用Apusic Studio,將使這一過程變得有如行云流水一般,除了每一階段有向?qū)椭憧焖賹?shí)現(xiàn)以外,過程中的一些細(xì)節(jié)也自有Studio幫你照料得無微不至,當(dāng)你需要完成什么功能時,你會發(fā)現(xiàn)它就在你手邊,使你感覺開發(fā)Web應(yīng)用不再是一種負(fù)擔(dān),而是一種充滿成就感的過程!

7.And More...

7.1 布局

布局是Web應(yīng)用中的常見問題,Apusic OperaMasks優(yōu)雅的解決了此類問題。我們有布局管理器。

J2EE Web的新變革:Apusic OperaMasks

如圖所示的BorderLayout能夠?qū)㈨撁娣指畛啥鄠€部分,不同部分之間能夠進(jìn)行拖動、隱藏等操作。

同樣,我們還提供了類Tiles的模版布局技術(shù),解決Web頁面的代碼復(fù)用問題,并且,與Tiles相比,我們的解決方案更優(yōu)雅,我們采用標(biāo)準(zhǔn)的JSF語法來完成頁面布局的定義,使用戶更易于上手,同時又避免了xml配置文件的繁瑣。

7.2 基于Annotation的Managed Bean的定義

Managed Bean是JSF中非常重要的概念,它是界面層與業(yè)務(wù)層之間的粘接器。JSF規(guī)范規(guī)定,必須在faces-config.xml文件中聲明Managed Bean。如同EJB 3.0通過Annotation來簡化ejb的配置一樣,Apusic OperaMasks提供了以Annotation形式來配置Managed Bean的功能,包括提供支持Managed Bean聲明、Managed PRoperty注入等一系列的Annotations以避免維護(hù)faces-config.xml文件,極大的簡化了應(yīng)用的開發(fā)過程。

如果運(yùn)行在Apusic應(yīng)用服務(wù)器上,我們還可以在Managed Bean中通過Annotation進(jìn)行資源注入,從而將Managed Bean與ejb/jpa等編程模型更好的融合在一起。

7.3 組件開發(fā)人員之利器

組件技術(shù)是解決軟件復(fù)用問題的有效方案,Web開發(fā)同樣如此。但我們卻缺乏Web組件的構(gòu)建基礎(chǔ)。因?yàn)槲覀冃枰獮槠湓O(shè)定很多假設(shè):它的技術(shù)是先進(jìn)的嗎?它的規(guī)范是標(biāo)準(zhǔn)的嗎?它的實(shí)現(xiàn)是開放的嗎?

無庸置疑,Apusic OperaMasks滿足您的所有要求。并且,針對組件開發(fā)人員,它提供了若干基礎(chǔ)服務(wù),包括:

Ajax Engine:引擎級的Ajax支持,簡化組件開發(fā)人員Ajax開發(fā)

Resource Manager:解決組件的資源管理問題

SKIN Manager:提供組件的皮膚管理功能

OperaMasks.org是一個鼓勵創(chuàng)新、鼓勵分享的社區(qū),任何用戶都可以在Apusic OperaMasks上進(jìn)行擴(kuò)展,并形成自己的組件庫,從而有效解決Web軟件開發(fā)復(fù)用問題。

8.構(gòu)建完整解決方案

回顧OperaMasks相關(guān)技術(shù),包括Ajax特性、Rich Components等,不難發(fā)覺,我們解決了界面展現(xiàn)層問題,以及展現(xiàn)層與業(yè)務(wù)邏輯層的粘接器Managed Bean,但我們?nèi)鄙贅I(yè)務(wù)邏輯層所應(yīng)該必備的一些基礎(chǔ)服務(wù),包括事務(wù)、安全、存儲、分布等,而這些,是Managed Bean所無法帶給我們的。

幸運(yùn)的是,就像 JSF 只是JavaEE的組成部分一樣,我們不僅有 Apusic OperaMasks,還有久經(jīng)考驗(yàn)的Apusic應(yīng)用服務(wù)器。

Apusic OperaMasks是開放的技術(shù),它可以運(yùn)行在任何支持Servlet 2.5/jsp 2.1的Web容器上,但無疑,它與Apusic應(yīng)用服務(wù)器的結(jié)合是最緊密的,而Apusic應(yīng)用服務(wù)器也為其平添許多額外特性。

1) Managed Bean 與 ejb3/jpa 的結(jié)合:

在 Apusic 應(yīng)用服務(wù)器上運(yùn)行 Apusic OperaMasks時,支持在Managed Bean里面通過Annotation進(jìn)行資源注入,從而能夠?qū)anaged Bean與ejb3/jpa很好的融合在一起,形成統(tǒng)一的編程模型,并由ejb3/jpa為Managed Bean提供事務(wù)、安全、存儲、分布式計算等基礎(chǔ)服務(wù)。

2) JSF狀態(tài)的傳遞

JSF技術(shù)需要在客戶端與服務(wù)器端之間進(jìn)行狀態(tài)的維護(hù),這就意味著雙方之間的交互可能更頻繁,數(shù)據(jù)量更大。Apusic應(yīng)用服務(wù)器為其提供了許多額外的特性增強(qiáng),包括基于NIO的多路復(fù)用技術(shù)提升并發(fā)處理能力;基于gzip形式的狀態(tài)壓縮技術(shù)降低網(wǎng)絡(luò)流量等。

Apusic OperaMasks是建立在 Apusic 應(yīng)用服務(wù)器之上的,并與Apusic應(yīng)用服務(wù)器一起構(gòu)成了Web開發(fā)完整解決方案!

(出處:http://m.survivalescaperooms.com/)



發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 凤冈县| 道孚县| 金门县| 永定县| 高唐县| 元氏县| 会理县| 根河市| 乐平市| 望都县| 无棣县| 鹰潭市| 原阳县| 湘潭市| 汶川县| 武陟县| 甘德县| 云龙县| 韶山市| 大余县| 措美县| 缙云县| 桐庐县| 镇沅| 阿合奇县| 蕉岭县| 独山县| 赤城县| 和顺县| 绥棱县| 邵阳市| 孟州市| 珲春市| 徐闻县| 襄樊市| 白沙| 奇台县| 西乌珠穆沁旗| 从江县| 灵宝市| 广昌县|