新聞中心
在用戶界面方面,當(dāng)今的企業(yè)應(yīng)用程序開發(fā)人員受到來自用戶和運(yùn)營部門的雙重壓力。一方面,代表用戶的業(yè)務(wù)部門希望應(yīng)用程序具有豐富的用戶界面,能夠最大限度地提高用戶的工作效率。他們希望所有應(yīng)用程序都表現(xiàn)得像 Microsoft 的 Excel 或者其他客戶機(jī)應(yīng)用程序一樣。希望應(yīng)用程序能夠提供即時響應(yīng)。

成都創(chuàng)新互聯(lián)公司專注于蒲江縣網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供蒲江縣營銷型網(wǎng)站建設(shè),蒲江縣網(wǎng)站制作、蒲江縣網(wǎng)頁設(shè)計(jì)、蒲江縣網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造蒲江縣網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供蒲江縣網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
此外,若有相同數(shù)據(jù)的多個視圖(例如,一個表格視圖和一個圖形視圖),那么還希望在其中一個視圖中進(jìn)行修改時,其他視圖能夠立即反映出這一修改。
另一方面,IT 運(yùn)營部門喜歡純粹的基于服務(wù)器的交付模型。盡管他們知道 HTML 用戶體驗(yàn)不如基于本機(jī)操作系統(tǒng)(OS)的用戶界面那么健壯,但他們認(rèn)為為了改進(jìn)用戶體驗(yàn),安裝、配置和管理客戶機(jī)代碼的成本太高了。
IT 組織中的許多人都親身體驗(yàn)過 20 世紀(jì) 90 年代的客戶機(jī)/服務(wù)器部署模型,不愿意再重復(fù)那樣的經(jīng)歷。實(shí)際上,如果有客戶機(jī)組件存在,許多 Java 2 Enterprise Edition(Java EE)應(yīng)用程序可能不會構(gòu)建起來,因?yàn)槌杀緦τ趹?yīng)用程序的業(yè)務(wù)目標(biāo)來說太高了。服務(wù)器交付的部署模型為 IT 組織提供了低成本高效率的部署方式,這在 90 年代是 IT 組織的夢想。大多數(shù)組織都意識到了服務(wù)器部署的 Java EE 應(yīng)用程序的經(jīng)濟(jì)優(yōu)勢,因此根本不會考慮部署那些必須在各個客戶機(jī)上進(jìn)行安裝的代碼,除非是不得已。
那么,企業(yè)開發(fā)人員應(yīng)該怎么做呢?用戶不希望由于幾秒的服務(wù)器響應(yīng)時間而降低工作效率,而 IT 部門又不同意采用在客戶機(jī)上部署和管理代碼的老方法。如何能夠滿足這些表面上相互沖突的需求,讓雙方都滿意呢?
幸運(yùn)的是,現(xiàn)有的技術(shù)使您能夠提供比瀏覽器更好的用戶體驗(yàn),同時不必在客戶機(jī)上手工安裝代碼。用這些技術(shù)構(gòu)建的應(yīng)用程序有時候被稱為 Web 2.0 應(yīng)用程序。在 Tim O'Reilly 的文章 “What Is Web 2.0? Design Patterns and Business Models for the Next Generation of Software” 中,他指出:
我們正在進(jìn)入一個前所未有的用戶界面革新時代,Web 開發(fā)人員最終能夠構(gòu)建出與本地 PC 應(yīng)用程序同樣豐富的 Web 應(yīng)用程序。
Web 2.0 應(yīng)用程序同時提供了兩種環(huán)境的優(yōu)點(diǎn):低成本高效率的基于服務(wù)器的部署模型,以及幾乎可以與客戶機(jī)應(yīng)用程序媲美的用戶體驗(yàn)。
對于為當(dāng)今的 Java EE 應(yīng)用程序提供豐富的用戶體驗(yàn),有幾種技術(shù)可供選擇:
1、Flex 和 OpenLaszlo
2、IBM? Workplace? Managed Client 和 IBM Lotus? Expeditor
3、Faces Client Components
4、Ajax
5、HTML
Flex 和 OpenLaszlo
Flex 和 OpenLaszlo 是極其相似的聲明式方法,用來為 Java EE 應(yīng)用程序創(chuàng)建比瀏覽器更好的用戶體驗(yàn)。Flex 由 Adobe/Macromedia 提供,而 OpenLaszlo 是最初由 Laszlo Systems Inc 創(chuàng)建的開放源碼軟件。在這兩種環(huán)境中,都使用獨(dú)特的基于 XML 的語法來布置和創(chuàng)建用戶界面。
例如,為了在 Flex 中使用一個按鈕,可以用 MXML(Multimedia XML)編寫以下代碼:
而對于 OpenLaszlo,可以用 LZX(LasZlo XML)編寫以下代碼:
為了允許不同的 UI 元素與服務(wù)器進(jìn)行交互和通信,可以用 ActionScript(Flex)或 JavaScript(OpenLaszlo)編寫腳本。
盡管這兩種技術(shù)有許多相似性,但關(guān)鍵的一點(diǎn)差異是它們需要的運(yùn)行時基礎(chǔ)設(shè)施。對于需要與服務(wù)器交換數(shù)據(jù)的客戶機(jī),F(xiàn)lex 需要一個 Flex Data Services Server,它與 Flash Player 插件中運(yùn)行的客戶機(jī)進(jìn)行通信。在本質(zhì)上,這個服務(wù)器為客戶機(jī)和應(yīng)用程序的服務(wù)器組件之間的所有通信和數(shù)據(jù)交換提供中介。
OpenLaszlo 的最新版本做了一些運(yùn)行時改進(jìn),使它對于開發(fā)人員更具吸引力。一項(xiàng)改進(jìn)是版本 3 引入了一種 SOLO 開發(fā)模式,使得在某些部署配置中不再需要 Laszlo Presentation Server。另一個主要的改進(jìn)是客戶機(jī)運(yùn)行時環(huán)境。最新版本(OpenLazlo 4)正處于 beta 測試階段,它使基于 Laszlo 的應(yīng)用程序能夠不帶 Adobe/Macromedia Flash Player 插件運(yùn)行。許多公司不愿意被限制于某種專有的插件(比如 Flash Player),他們會歡迎這一改進(jìn)。
如何判斷哪種產(chǎn)品更適合您的組織?Flex 的主要優(yōu)點(diǎn)是可以從 Adobe/Macromedia 獲得充分的產(chǎn)品支持,但是要為 Flex Data Services Server 的許可證付費(fèi)。對于某些公司來說,付出許可證費(fèi)用來換取得到充分支持的產(chǎn)品是值得的。Adobe Flex 2 應(yīng)用程序也需要 Flash Player plug-in V9。盡管 Flex 可以創(chuàng)建豐富的用戶體驗(yàn),但是某些公司不愿意承受費(fèi)用和插件限制。
OpenLaszlo 技術(shù)最初是作為商業(yè)產(chǎn)品發(fā)布的,但是在 2004 年 Laszlo Systems 開放了這種技術(shù)的源碼,采用了 Common Public License(V1.0)許可方式。Laszlo Systems 提供支持訂閱,而且因?yàn)樗且粋€開放源碼項(xiàng)目,您可以選擇使用免費(fèi)資源支持它。對于 OpenLaszlo,費(fèi)用不是大問題,但是有些組織的公司策略不允許使用開放源碼軟件,所以可能不能選用 OpenLaszlo。
IBM Workplace Managed Client 和 Lotus Expeditor
IBM Workplace Managed Client 和 Lotus Expeditor 都是在開放源碼的 EclipseRPC 代碼基上構(gòu)建的。EclipseRPC 這種技術(shù)源自 Eclipse 開發(fā)工具工作臺,這是由 eclipse.org 管理和控制的通用工具開發(fā)平臺。如果業(yè)務(wù)需要進(jìn)行無連接操作,而且可以在客戶機(jī)上安裝組件,那么 Workplace Managed Client 和/或 Lotus Expeditor 是構(gòu)建和部署應(yīng)用程序的最佳技術(shù)。
IBM Workplace Managed Client 是 IBM 的 Workplace 產(chǎn)品系列的一個組件。它將各種協(xié)作服務(wù)組合在一個集成框架(或者說桌面環(huán)境)中。它提供的功能包括文檔管理、消息傳遞(包括即時消息傳遞)、Web 瀏覽、Notes? 7 的直接接口、eLearning、團(tuán)隊(duì)空間、Web 會議以及一個用來跟蹤任務(wù)相關(guān)的線索的活動管理器。Lotus Expeditor 提供一個富客戶機(jī)平臺,它支持企業(yè)應(yīng)用程序、事務(wù)處理、設(shè)備管理和 Web 服務(wù)。盡管選擇 Workplace Managed Client 或 Lotus Expeditor 都有不少合理的理由,但是如果應(yīng)用程序在本質(zhì)上是協(xié)作型的,那么 Workplace Managed Client 通常是最佳選擇。但是,如果應(yīng)用程序在本質(zhì)上是事務(wù)性的,那么通常建議選用 Lotus Expeditor。
Workplace Managed Client 和 Lotus Expeditor 都使開發(fā)人員能夠創(chuàng)建駐留在客戶機(jī)上的富客戶機(jī)應(yīng)用程序,可以支持無連接操作。因?yàn)閼?yīng)用程序駐留在客戶機(jī)上,客戶機(jī)可以充分利用它所在工作站的功能,可以創(chuàng)建出高度交互性的用戶體驗(yàn)。Eclipse 是 Workplace Managed Client 和 Lotus Expeditor 共同的基礎(chǔ),它提供了一個獨(dú)立于操作系統(tǒng)的平臺,對開發(fā)人員隱藏了操作系統(tǒng)的細(xì)節(jié)差異,同時盡可能利用本機(jī)操作系統(tǒng)服務(wù)。因此,您可以開發(fā)一個 Java 代碼基,它能夠在 Linux? 和 Windows? 上運(yùn)行,以后甚至能夠在 Macintosh 上運(yùn)行。
為了利用這種技術(shù),需要讓應(yīng)用程序利用 Eclipse 插件體系結(jié)構(gòu)。用戶界面組件是使用 SWT(Standard Widget Toolkit)部件或 jFace 組件構(gòu)建的。SWT 是一個與本機(jī)窗口系統(tǒng)集成的部件集和圖形庫,但是使用獨(dú)立于操作系統(tǒng)的 API。jFace 是一個使用 SWT 實(shí)現(xiàn)的 UI 工具包,它簡化了許多常見的 UI 編程任務(wù)。jFace 在 API 和實(shí)現(xiàn)兩方面都獨(dú)立于窗口系統(tǒng),其設(shè)計(jì)目的是使用 SWT 而不是隱藏它。最終結(jié)果是更具交互性的用戶體驗(yàn),其外觀和感覺與用戶熟悉的其他本機(jī)操作系統(tǒng)應(yīng)用程序相似。
最后,“由服務(wù)器管理” 這一特性使基于 Workplace Managed Client 或 Lotus Expeditor 的應(yīng)用程序有別于本機(jī) Windows 應(yīng)用程序。這項(xiàng)關(guān)鍵特性消除了與客戶機(jī)駐留的應(yīng)用程序代碼相關(guān)聯(lián)的大多數(shù)(如果不是全部的話)系統(tǒng)管理成本。因此,部署應(yīng)用程序的企業(yè)會獲得服務(wù)器部署的 Java EE 應(yīng)用程序的所有成本優(yōu)勢,同時用戶能夠享受操作系統(tǒng)特有的客戶機(jī)駐留的應(yīng)用程序的用戶體驗(yàn);對于大多數(shù)組織,這都是雙贏的結(jié)果。
Faces Client Components
JavaServer Faces(JSF)是一種 Java EE 1.4 組件,最初是作為 JSR 127 開發(fā)的。這種技術(shù)的關(guān)鍵目標(biāo)是,降低為 Java EE 應(yīng)用程序開發(fā)用戶界面時要求 Java 開發(fā)人員具備的技能水平。因?yàn)?JSF 是一個框架,它提供了許多開箱即用的功能;在過去,開發(fā)人員在用 JavaServer Pages(JSP)構(gòu)建同樣的用戶界面時需要手工編寫這些功能。
例如,假設(shè)您有一個大型 JDBC? 結(jié)果集,需要將它向用戶顯示。JSF 框架提供了一個 DataTable 部件,可以用來顯示數(shù)據(jù)。如果使用簡單的 JSP 構(gòu)建用戶界面,您就必須管理用戶與這個數(shù)據(jù)表的交互,并決定應(yīng)該向用戶顯示哪些數(shù)據(jù)行。
通過使用 JSF DataTable,當(dāng)用戶點(diǎn)擊 Next 來顯示表中的后 x 行數(shù)據(jù)時,JSF 框架將會處理 Next 請求,您不必自己編寫任何代碼。盡管 JSF 簡化了創(chuàng)建豐富的 HTML 用戶界面的過程,但是根據(jù)設(shè)計(jì) JSF 是一種基于服務(wù)器的技術(shù)。對后 x 行數(shù)據(jù)的請求從瀏覽器發(fā)送到服務(wù)器,JSF 框架代碼在服務(wù)器上處理這個請求。JSF 需要一次到服務(wù)器的請求/響應(yīng)往返。
為了改進(jìn)基本的 JSF 部件,IBM 的 Rational? Application Developer V6 引入了 Faces Client Components。Faces Client Components 是 JavaServer Faces 技術(shù)的一種擴(kuò)展,允許在客戶端執(zhí)行某些 JSF 框架服務(wù)。例如,如果在上面的示例中使用 DataGrid Faces Client 組件,那么后 x 行數(shù)據(jù)的顯示就不需要到服務(wù)器的請求/響應(yīng)往返。
對于 Rational Application Developer JSF 開發(fā)人員,使用 Faces Client Components 是自然的選擇。為了使用 Faces Client Components,要創(chuàng)建一個 Faces JSP 頁面并選擇 “Basic with client-side data caching ” 作為模型。當(dāng)在 Rational Application Developer 中構(gòu)造用戶界面時,只需從 Rational Application Developer 的工具面板中的 Faces Client Components 部分中選擇適當(dāng)?shù)?UI 控件。
在 Faces Client Component 的幕后發(fā)生了許多情況。會將 JSF 控件的 JavaScript 實(shí)現(xiàn)下載到瀏覽器中,并使用符合行業(yè)標(biāo)準(zhǔn)的 Service Data Objects 在瀏覽器和服務(wù)器之間進(jìn)行通信。但是,這一切理所當(dāng)然都是對用戶隱藏的;用戶只會注意到,與典
Ajax
Ajax(異步 JavaScript 和 XML)是 Jesse James Garrett 創(chuàng)造的一個術(shù)語,它是指一種基于標(biāo)準(zhǔn)的技術(shù)/設(shè)計(jì)模式,用來為服務(wù)器部署的應(yīng)用程序開發(fā)比瀏覽器更好的用戶體驗(yàn)。Ajax 對服務(wù)器技術(shù)沒有什么要求,可以處理 Java EE 應(yīng)用程序、.Net 應(yīng)用程序和其他應(yīng)用程序。通過使用 Ajax,可以編寫 JavaScript 代碼來改進(jìn) HTML,創(chuàng)建出豐富的交互性用戶體驗(yàn)。例如,JavaScript 可以執(zhí)行本地用戶輸入驗(yàn)證,為相同的數(shù)據(jù)提供不同的視圖(條形圖、表格、餅圖等等),或者通過瀏覽器的 XMLHTTPRequest 對象與應(yīng)用程序的服務(wù)器組件進(jìn)行異步的交互。
根據(jù) Gartner Group 的 Hype Cycle for Emerging Technologies 2000 報(bào)告(2006 年 7 月 18 日),Ajax 已經(jīng)達(dá)到了 “過度期望的頂峰”,“幻想” 已經(jīng)開始成為現(xiàn)實(shí)了??纯磿昀镉心敲炊?Ajax 圖書,就能夠知道這股風(fēng)潮有多么熱了。按照我的觀點(diǎn),有三種東西幫助 Ajax 跨越了 Geoffrey Moore 指出的技術(shù)鴻溝:
1.現(xiàn)代瀏覽器。
在過去,編寫 JavaScript 的開發(fā)人員必須處理 Netscape、Internet Explorer 和其他瀏覽器之間的許多不兼容問題。在某些情況下,甚至同一種瀏覽器的不同版本也有不兼容問題。盡管仍然存在一些不兼容問題,但是大多數(shù)內(nèi)部網(wǎng)應(yīng)用程序通常需要 Internet Explorer 5.5 或更高版本和/或者 Firefox 1.0 或更高版本,在這些瀏覽器中以前存在的大多數(shù)不兼容問題已經(jīng)被糾正了。近來組成了一個開放的行業(yè)協(xié)會 OpenAjax,它的目的是解決 Ajax 的不兼容性問題,以及解決其他 Ajax 相關(guān)問題。
2.Ajax 工具包。
在過去,希望使用 Ajax 的大多數(shù)開發(fā)人員實(shí)際上必須從頭開始,而 Ajax 工具包現(xiàn)在可以替他們完成許多繁重的工作。工具包提供了各種預(yù)制的基于 JavaScript 的用戶界面控件(部件),讓開發(fā)人員可以輕松地創(chuàng)建基于 Ajax 的用戶體驗(yàn)。工具包通常還提供更高級的抽象,從而對開發(fā)人員隱藏前面提到的瀏覽器不兼容問題。
3.工具。
直到最近,大多數(shù) JavaScript 開發(fā)人員實(shí)際上沒有開發(fā)工具來幫助簡化開發(fā)和調(diào)試。從 Firefox 瀏覽器發(fā)布開始,它就為 Ajax 開發(fā)人員提供了一些有用的插件,而且 IBM 最近在 Ajax Toolkit Framework 中集成了一系列有用的技術(shù)來幫助進(jìn)行 Ajax 開發(fā)。ATF(Ajax Toolkit Framework)可以從 Apache 站點(diǎn)免費(fèi)下載,它提供一個基于 Eclipse 的 Ajax 開發(fā)環(huán)境。ATF 提供的工具包括 JavaScript 語法敏感的編輯器、JavaScript 控制臺和 XMLHTTPRequest 對象查看器。ATF 還附帶三個預(yù)制的個性化組件:Dojo、Zimbra 和 Rico。
最后,按照我的觀點(diǎn),當(dāng) Google 發(fā)布基于 Ajax 的 Google Maps 應(yīng)用程序的 beta 版本時,Ajax 真正的轉(zhuǎn)折點(diǎn)到了。以前使用過地圖 Web 站點(diǎn)的任何人都會很快看出 Google 地圖軟件的優(yōu)點(diǎn)。非技術(shù)人員感到吃驚,想知道 Google 是怎么做到的;而知道其原理的程序員開始注意到 Ajax,并開始考慮如何使用基于 Ajax 的技術(shù)改進(jìn)自己應(yīng)用程序的易用性和響應(yīng)性。
純 HTML
盡管許多開發(fā)人員認(rèn)為所有用戶像他們自己一樣,使用最新的 Firefox 瀏覽器并帶 10 個最流行的插件,但事實(shí)是許多機(jī)器仍然使用 Netscape 3.x 或 Internet Explorer 4.x 來訪問互聯(lián)網(wǎng)。使用這種水平的瀏覽器可能是為了使用某一應(yīng)用程序(它的源代碼已經(jīng)丟失了,無法修改了),或者是因?yàn)橛脩舴浅1J?,他們按?“如果沒有出問題,就不必自找麻煩” 的原則來對待瀏覽器升級,所以仍然使用 Internet Explorer 4.0。
盡管 HTML 顯然不能提供其他技術(shù)可以提供的那么豐富的用戶體驗(yàn),但是基于 HTML 的用戶界面仍然會長期占據(jù)一定的地位。還沒有其他技術(shù)能夠像純 HTML 用戶界面一樣讓那么多用戶都能夠使用。因此,在未來的許多年內(nèi),許多應(yīng)用程序仍然會提供這種用戶界面。
結(jié)束語
總的來說,當(dāng)今業(yè)界的重要方向是改進(jìn)服務(wù)器提交的應(yīng)用程序的用戶體驗(yàn)。Ajax 仍然還不太成熟,但是已經(jīng)有了一定的實(shí)力,而且許多企業(yè)(包括小型和大型企業(yè))已經(jīng)開始在生產(chǎn)中使用它。本文提到的其他技術(shù)沒有得到這么大的關(guān)注,但是到目前為止還不能明確地說它們沒有前途。
還存在其他用戶界面技術(shù),包括商業(yè)產(chǎn)品和開放源碼產(chǎn)品(比如 Nexaweb、Backbase 和 JackBE),但是由于篇幅限制本文沒有提到它們。關(guān)鍵一點(diǎn)是,這些技術(shù)都不是放之四海皆準(zhǔn)的,所以沒有任何技術(shù)對于所有場景都是最佳選擇。這些技術(shù)都有各自的優(yōu)點(diǎn),都有其適合的場景。
那么,如何做出選擇呢?對于初學(xué)者來說,如果技術(shù)選擇背后的主要目標(biāo)是接觸盡可能多的用戶,那么沒有任何技術(shù)能夠超越老式的 HTML。在另一個極端,如果您需要無連接操作,而且可以在用戶機(jī)器上安裝應(yīng)用程序的組件,那么基于 EclipseRPC 的替代品之一(Workplace Managed Client 或者 Lotus Expeditor)是最佳選擇。
如果需要的豐富用戶體驗(yàn)只能通過 Flash Player 來獲得,那么可能應(yīng)該使用 Flex 或 OpenLaszlo。如果使用 JavaServer Faces 構(gòu)建應(yīng)用程序,那么使用一些 Faces Client Components 會更好。
最后,如果您的目標(biāo)只是在現(xiàn)有的 HTML 用戶界面中增加一些易用性特性,或者是提供基于標(biāo)準(zhǔn)的插件免費(fèi)的豐富用戶體驗(yàn),那么應(yīng)該考慮使用 Ajax。按照目前的輿論,Ajax 似乎成了最流行的 Web 2.0 技術(shù)選擇,但是我不能肯定其他技術(shù)在成熟之后會不會取代它的地位。
選擇正確技術(shù)的關(guān)鍵是,讓應(yīng)用程序的需求決定對用戶體驗(yàn)技術(shù)的選擇。盡管這個建議似乎是理所當(dāng)然的,但是在許多情況下開發(fā)人員所做的正好相反,他們被時髦的技術(shù)宣傳所蠱惑,做出 “技術(shù)驅(qū)動的選擇”,這常常導(dǎo)致許多困難的實(shí)現(xiàn)和部署問題,從而在開發(fā)項(xiàng)目時導(dǎo)致嚴(yán)重的延誤和問題。不要讓這種情況發(fā)生在您身上。
本文名稱:Web2.0用戶界面技術(shù)
網(wǎng)站路徑:http://fisionsoft.com.cn/article/dpgpgco.html


咨詢
建站咨詢
