久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

網(wǎng)絡(luò)開發(fā)新進(jìn)展 “RIA+SOA”劃時(shí)代

雖然Web 2.0應(yīng)用程序著實(shí)讓人興奮,但它們?cè)谙乱淮鶵IA+SOA集成平臺(tái)形成之前是不會(huì)成為主流的。 下一代RIA+SOA平臺(tái)什么樣子 目前,在基于HTML、CSS、Javascript標(biāo)準(zhǔn)的網(wǎng)絡(luò)環(huán)境下,RIA開發(fā)人員

雖然Web 2.0應(yīng)用程序著實(shí)讓人興奮,但它們?cè)谙乱淮鶵IA+SOA集成平臺(tái)形成之前是不會(huì)成為主流的。

 

      下一代RIA+SOA平臺(tái)什么樣子

      目前,在基于HTML、CSS、Javascript標(biāo)準(zhǔn)的網(wǎng)絡(luò)環(huán)境下,RIA開發(fā)人員在構(gòu)建富用戶界面時(shí),必須對(duì)多種第三方庫(kù)文件和框架進(jìn)行編譯。這種“ 照單選菜”的RIA程序開發(fā)方式給開發(fā)人員增加了多余的負(fù)擔(dān)。他們不能將精力全部用于編寫程序,而必須拿出部分時(shí)間用來尋找、集成和整理各種各樣的RIA 開發(fā)平臺(tái)。

      SOA方面也是如此。開發(fā)人員必須自己解決如何創(chuàng)建服務(wù),以及如何將這些服務(wù)集成到RIA前端程序。開發(fā)人員需要一個(gè)能解決編寫程序時(shí)所需考慮的各種問題的平臺(tái),這樣他們才能把精力放在他們最擅長(zhǎng)的事情上——編寫程序。

      問題是:下一代RIA+SOA平臺(tái)應(yīng)該是什么樣子呢?

      我們可以從建立一個(gè)RIA+SOA應(yīng)用的活動(dòng)開始。一般來說,這些活動(dòng)主要包括:

      1、設(shè)計(jì)程序的“樣子”

      也就是程序的總體外觀。它包括以下方面:顏色、字體、圖表,以及總體頁(yè)面布局。

      常用工具包括:HTML、CSS和圖像工具。

      2、集成控件(widget)

      控件將一系列常用功能封裝在一個(gè)單獨(dú)的組件里。除一些預(yù)定義的動(dòng)態(tài)行為之外,它們通常還包含“感觀”效果。它們是RIA程序的基礎(chǔ)組成模塊。

      常用工具包括:ExtJS、Dojo、Yahoo YUI,以及一些其它小型控件工具。

      3、為用戶界面添加動(dòng)態(tài)行為

      在用戶界面創(chuàng)建動(dòng)態(tài)行為涉及兩件事:

      事件處理

      文檔對(duì)象模型(DOM)操作

      事件處理是對(duì)發(fā)生的特定事件(比如用戶點(diǎn)擊一個(gè)按鈕或者收到服務(wù)響應(yīng))進(jìn)行判定的能力。DOM操作可以讓你根據(jù)接收到的事件動(dòng)態(tài)改變用戶界面。

      常用工具包括:Javascript庫(kù)類,比如JQuery、Prototype和Scriptaculous。

      4、使用服務(wù)

      RIA的一個(gè)主要功能是使用后端服務(wù)。這使它可以用單頁(yè)面用戶界面?zhèn)鬏敺?wù)的應(yīng)用數(shù)據(jù)。用戶界面與服務(wù)層也可以完全分開。Ajax是最常用的與服務(wù)交互的方法。

      常用工具包括:Javascript庫(kù)類,比如Jquery和Prototype。

      5、創(chuàng)建服務(wù)

      服務(wù)為數(shù)據(jù)和應(yīng)用業(yè)務(wù)邏輯層提供了一個(gè)接口。

      常用工具包括:可以根據(jù)你所用的程序設(shè)計(jì)語言選擇適當(dāng)?shù)目蚣軄韯?chuàng)建服務(wù)。

      下一代RIA+SOA平臺(tái)基本特征

      了解了創(chuàng)建RIA+SOA應(yīng)用程序的大致需求,我們?cè)賮砜匆幌略鯓訉⑦@些活動(dòng)整合到一起,從而最大化開發(fā)人員的效率。下面幾個(gè)部分概述了下一代RIA+SOA平臺(tái)的基本特征。

      1、支持HTML和CSS

      這兩種語言非常適合用來實(shí)現(xiàn)應(yīng)用程序的“外觀”,并且大多網(wǎng)絡(luò)用戶界面的開發(fā)人員對(duì)它們都很熟悉。所以沒必要再去另做一些工作實(shí)現(xiàn)重復(fù)的功能。

      2、提供開放的控件框架(Open Widget Framework)

      正如前面講到的,控件是RIA程序的基礎(chǔ)組成模塊。有許多工具可以使用,比如Yahoo、Dojo和ExtJS。也有一些小型項(xiàng)目或個(gè)人開發(fā)的獨(dú)立控件。你可以使用這些控件構(gòu)建RIA程序,但有一些需要注意的地方:

      幾乎不可能僅靠一個(gè)控件來滿足你所有的需求。

      集成各種第三方控件時(shí)可能需要定制代碼,并對(duì)各個(gè)控件有深入的了解。

      編寫新的控件是一項(xiàng)有挑戰(zhàn)性的工作,因?yàn)檫@意味著你得編寫自己所用的控件工具的低層API,甚至要從零開始。

      某些控件框架要求開發(fā)人員為所用的控件編寫大量的JavaScript,這對(duì)那些JavaScript開發(fā)經(jīng)驗(yàn)很少甚至沒有的人來說,無疑是有很大問題。

      為解決以上問題,RIA+SOA平臺(tái)提供的開放控件框架需要具備以下功能:

      ·支持集成現(xiàn)有的第三方控件

      ·為新建控件提供簡(jiǎn)單的API

      ·可以通過簡(jiǎn)單標(biāo)記(markup)使用控件(不需要使用JavaScript)

      ·支持分布模型,以簡(jiǎn)化新控件的提交、發(fā)現(xiàn)和使用。

      開放的控件框架將成為開發(fā)人員獲取控件的資源,并使開發(fā)人員可以很容易地集成控件和應(yīng)用程序。如果沒有所需的控件,使用開放控件框架的API重新創(chuàng)建也很容易。

      由于控件在RIA開發(fā)中的重要性及其分散的特性,開放的控件框架應(yīng)該是任何RIA+SOA平臺(tái)必不可少的組成部分。

      3、提供一個(gè)集成的RIA編程模型

      與傳統(tǒng)的Web應(yīng)用相比,RIA程序需要編寫更多的用戶界面代碼。因此,下一代平臺(tái)需要集成的RIA編程模型來簡(jiǎn)化主要用戶界面設(shè)計(jì)任務(wù)。這些任務(wù)包括:

      ·事件處理

      ·DOM操作

      ·服務(wù)使用(Ajax)

      事件處理、DOM操作和Ajax是富網(wǎng)絡(luò)應(yīng)用中實(shí)現(xiàn)“富”任務(wù)的部分。它們的關(guān)系非常緊密。為說明這一點(diǎn),我們來看一個(gè)典型的RIA登錄過程。

      ·點(diǎn)擊登錄按鈕(事件處理)

      ·發(fā)送服務(wù)請(qǐng)求(Ajax)

      ·顯示相應(yīng)的活動(dòng)指示器(DOM操作)

      ·返回服務(wù)(Ajax)

      ·關(guān)閉活動(dòng)指示器(DOM操作)

      ·顯示登錄“成功”的消息(DOM操作)

      雖然它們關(guān)系緊密,大部分框架和庫(kù)都只提供了簡(jiǎn)單的集成,而讓開發(fā)人員完成剩下的任務(wù)。為表明這一點(diǎn),我們來看一些代碼。在下面的示例中,當(dāng)一個(gè)組合框的值發(fā)生改變時(shí),我們將設(shè)定另一個(gè)組合框的內(nèi)容。示例是用Jquery寫的。

      $(function(){$(“select#comboOne”).change(function(){$.getJSON(“/combo.php”,{id: $(this).val(), ajax: “true”}, function(j){var options = “”;for (var i = 0; i < j.length; i++) {options += “” + j[i].optionDisplay + “”;}$(“select#comboTwo”).html(options);})})})

      現(xiàn)在我們來看看怎么用事件處理、DOM操作和Ajax完全集成的方法來完成同樣的任務(wù)。

      on=“change then r:load.combo2.request”>on=“r:load.combo2.response then value[property=rows,text=text,value=value]”>

      這兩段代碼用不同的方式完成同一件任務(wù)。第一段使用了較多的代碼,并且都是用JavasSript。第二段使用了簡(jiǎn)單的表達(dá)式語言來完成同樣的任務(wù)。我們來分析一下語法。

      on=“change then r:load.combo2.request”

      在這句表達(dá)式中,當(dāng)  on=“r:load.combo2.response then value[property=rows,text=text,value=value]

      and effect[Highlight]”>

      通過在表達(dá)式中添加effect[Highlight],我們就能使用一種微妙的效果來提示使用者組合框的值已經(jīng)發(fā)生變化。

      這些示例代碼顯示了事件處理、DOM操作和Ajax完全集成這一方法的強(qiáng)大與簡(jiǎn)易。沒有JavaScript經(jīng)驗(yàn)的開發(fā)人員也很容易掌握像上面所示的表達(dá)式語言。這將使他們很快進(jìn)入工作狀態(tài),因?yàn)樗麄儾辉傩枰A(yù)先進(jìn)行大量枯燥的學(xué)習(xí)。當(dāng)然,有JavaScript經(jīng)驗(yàn)的開發(fā)人員也可以自由選擇使用 JavaScript。這樣,一個(gè)集成的RIA編程模型也應(yīng)該支持JavaScript,特別是要支持行為與標(biāo)記的分離。通常稱之為低調(diào)(unobtrusive)JavaScript。我們來看一個(gè)示例:

      $(“progress_images”).on(“r:login.request then show”).on(“r:login.response then hide”);

      在這個(gè)示例中,標(biāo)記與JavaScript代碼定義的行為——收到登錄請(qǐng)求消息的時(shí)候“show”及收到登錄響應(yīng)消息的時(shí)候“hide”——就是分離的。 這種編程模型有利于喜歡使用JavasScript進(jìn)行RIA編程的開發(fā)人員。

      一個(gè)集成的RIA編程模型是RIA+SOA平臺(tái)的基礎(chǔ)組成部分。它為開發(fā)人員處理主要的RIA編程活動(dòng)提供了單一、完整的機(jī)制。這樣,相較現(xiàn)在來說,開發(fā)人員可以使用更少的代碼、更快地構(gòu)建富用戶界面。

      4. 提供集成的服務(wù)平臺(tái)(Integrated Services Platform)

      RIA 只是構(gòu)建富應(yīng)用程序的一部分。我們?nèi)孕枰瓿蒖IA+SOA中的SOA部分。不幸的是,當(dāng)前的Web 2.0工具包和框架主要用于RIA,很少甚至不提供對(duì)構(gòu)建服務(wù)的支持。這確實(shí)是個(gè)問題,因?yàn)檫@樣又需要開發(fā)人員來完成大量的工作,使得應(yīng)用開發(fā)和維護(hù)需要耗費(fèi)更多的時(shí)間并變得異常困難。

      下一代RIA+SOA平臺(tái)要解決這個(gè)問題必需提供一個(gè)能滿足以下條件的集成的服務(wù)平臺(tái):

      ·支持使用任何語言創(chuàng)建服務(wù)

      ·實(shí)現(xiàn)RIA與SOA層的無縫交互

      ·可以使用本地模擬服務(wù)(mock service)

      過去,網(wǎng)絡(luò)框架使用單一的編程語言構(gòu)建,但是在RIA+SOA時(shí)代,這種做法將變得過時(shí)并且多余。RIA程序只與服務(wù)交換應(yīng)用數(shù)據(jù),它們應(yīng)該是獨(dú)立于編程語言的。RIA程序與SOA服務(wù)只需要一個(gè)簡(jiǎn)單的消息關(guān)系。RIA與SOA層之間的松耦合特性為集成的服務(wù)平臺(tái)提供了方法,可以使開發(fā)人員使用任何編程語言創(chuàng)建服務(wù)并不會(huì)影響到RIA層。

      集成的服務(wù)平臺(tái)同樣應(yīng)該提供RIA與SOA各層之間的無縫交互。特別是,它應(yīng)該代替開發(fā)人員處理服務(wù)路由選擇和數(shù)據(jù)轉(zhuǎn)換。下面是一個(gè)用簡(jiǎn)單的集成方法創(chuàng)建服務(wù)的示例。這個(gè)示例是用Java編寫的。

      @Service (request = 'login.request‘, response ='login.response’)protected void loginRequest (Message req, Message resp)throws Exception{String username = req.getData().getString(“username”);String password = req.getData().getString(“password”);User user = UserDAO.login(username,password);if (user !=null){response.getData().put(“success”,true);response.getData().put(“user”,user);return;}response.getData().put(“success”,false);}

      在上面的示例中,有兩點(diǎn)需要注意:首先,通過在Java方法中加入一個(gè)簡(jiǎn)單的“Service”注釋便讓一個(gè)平常的Java對(duì)象變成了一個(gè)服務(wù)。注釋中包含了這個(gè)方法所處理的服務(wù)請(qǐng)求和服務(wù)響應(yīng)消息,使路由設(shè)置變得簡(jiǎn)單。其次,可以簡(jiǎn)單明了地處理請(qǐng)求和響應(yīng)數(shù)據(jù)。在這個(gè)示例中,將整個(gè)User對(duì)象放入響應(yīng)消息中。服務(wù)平臺(tái)負(fù)責(zé)處理數(shù)據(jù)轉(zhuǎn)換。這樣開發(fā)人員可以集中精力編寫服務(wù)邏輯而不是膠合代碼(glue code),可以減少代碼量并提高開發(fā)速度。

      然后,如果RIA與服務(wù)之間的關(guān)系是基于消息的,就可以創(chuàng)建本地模擬服務(wù)。本地模擬服務(wù)可以響應(yīng)遠(yuǎn)程請(qǐng)求,但它們只存在于本地RIA中。這是一種很強(qiáng)大的功能,因?yàn)闊o需一行服務(wù)代碼便可創(chuàng)建功能齊全的RIA模型。可以將這些本地模擬服務(wù)放在單個(gè)文件中,并在用戶界面開發(fā)完成后刪除。我們來看一個(gè)例子:

      on=“r:login.request then show or r:login.response then hide”/>Username: Password: on=“click then r:login.request”/>登錄表單$MQ(‘r:login.response’, {'success‘:true,'username’:‘foo'});

      模擬服務(wù)

      在上面的示例中,我們有一個(gè)產(chǎn)生服務(wù)請(qǐng)求r:login.request的登錄表單。我們還有一張圖像,它將在收到r:login.request消息時(shí)顯示,并在收到r:login.response消息后隱藏。第二部分是一個(gè)模擬服務(wù)的示例。這個(gè)模擬服務(wù)監(jiān)聽r:login.request服務(wù)請(qǐng)求,并在一秒后用r:login.response消息響應(yīng)(當(dāng)然這一秒只是模擬服務(wù)延遲)。登錄表單并不知道服務(wù)的位置,它只負(fù)責(zé)響應(yīng)消息。這個(gè)簡(jiǎn)單的示例顯示了如何不靠一行服務(wù)代碼創(chuàng)建一個(gè)完整的RIA模型。這種模型是100%可重用的,并使開發(fā)人員可以在服務(wù)創(chuàng)建之前定義服務(wù)合約。這樣,服務(wù)創(chuàng)建工作得到了很大程度的簡(jiǎn)化,因?yàn)殚_發(fā)人員不僅有一個(gè)功能齊全的模型作為參考,還同時(shí)得到了一個(gè)完整的服務(wù)界面。

      總結(jié)

      開發(fā)人員目前正在經(jīng)歷網(wǎng)絡(luò)應(yīng)用開發(fā)的巨大轉(zhuǎn)變。我們正從Web 1.0的基于服務(wù)器的MVC模式轉(zhuǎn)為面向網(wǎng)絡(luò)的客戶機(jī)/服務(wù)器架構(gòu),或者更準(zhǔn)確一點(diǎn)應(yīng)該稱為RIA+SOA。由于這個(gè)轉(zhuǎn)變,開發(fā)人員要將他們所用的網(wǎng)絡(luò)開發(fā)平臺(tái)集成到一起才能進(jìn)行富網(wǎng)絡(luò)應(yīng)用的開發(fā)。當(dāng)然,轉(zhuǎn)變的同時(shí)也會(huì)帶來機(jī)會(huì)。這個(gè)機(jī)會(huì)便是建立下一代為Web 2.0應(yīng)用提供端對(duì)端支持的網(wǎng)絡(luò)平臺(tái)。

      在 Appcelerator,我們看到公司在一年以前已經(jīng)接受這種轉(zhuǎn)變。他們正在開發(fā)Appcelerator Platform,這是一個(gè)支持RIA+SOA的全新平臺(tái)。本文所用的示例正是基于這一平臺(tái)。當(dāng)然,創(chuàng)建下一代網(wǎng)絡(luò)平臺(tái)有許多不同的方法。但是,即使實(shí)現(xiàn)細(xì)節(jié)上有些許不同,大體特征應(yīng)該都是一樣的。

【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關(guān)文檔推薦

Adobe公司出品的多媒體處理軟件產(chǎn)品線較多,涵蓋了音視頻編輯、圖像處理、平面設(shè)計(jì)、影視后期等領(lǐng)域。這篇文章主要介紹了Adobe Html5 Extension開發(fā)初體驗(yàn)圖文教程,非常不錯(cuò),需要的朋
Kerkee是一個(gè)多主體共存型Hybrid框架,具有跨平臺(tái)、用戶體驗(yàn)好、性能高、擴(kuò)展性好、靈活性強(qiáng)、易維護(hù)、規(guī)范化、集成云服務(wù)、具有Debug環(huán)境、徹底解決跨域問題。Hybrid App兼具了Native
作為一名前端工程師,寫組件的能力至關(guān)重要。雖然javascript經(jīng)常被人嘲笑是個(gè)小玩具,但是在一代代大牛的前仆后繼的努力下,漸漸的也摸索了一套組件的編寫方式。下面我們來談?wù)劊?/div>
Sublime Text作為一個(gè)盡為人知的代碼編輯器,其優(yōu)點(diǎn)不用贅述。界面整潔美觀、文本功能強(qiáng)大,且運(yùn)行速度極快,非常適合編寫代碼,寫文章做筆記。Sublime Text還支持Mac、Windows和Linux各大
本文屬于波瀾不驚,平鋪直敘版本。講述幾點(diǎn)分為:一、基于HTML開發(fā)組件的設(shè)計(jì)思想 二、基于原生HTML的UI組件開發(fā) 三、面向HTML的UI組件開發(fā)的好處 四、總結(jié) ...,HTML5中國(guó),中國(guó)最大的
最近看過幾個(gè)基于HTML5開發(fā)的移動(dòng)一樣,已經(jīng)越來越流暢了,相信隨著職能手機(jī)的配置越來越高性能越來越好,HTML5技術(shù)的使用在移動(dòng)端應(yīng)用的會(huì)越來越普及,應(yīng)用越來越廣泛,因此作為
主站蜘蛛池模板: 欧美一级欧美三级在线观看 | 成人av资源在线 | 日韩一区二区久久 | 国产99热在线 | 一a级片 | 国产一伦一伦一伦 | 青青久久 | 欧美成人精品一区 | 精品久久久久一区 | 久久久久国产精品 | 日韩一区二区在线视频 | 久久久精彩视频 | 久草在线 | 亚洲一区二区三区在线视频 | 999精品在线| 日韩在线一区二区三区 | www.日韩| 国产午夜av片 | 国产精品美女久久久久 | 综合二区 | 国产精品欧美一区二区 | 午夜天堂精品久久久久 | 日本在线视 | 毛片视频观看 | 99久久免费精品国产男女高不卡 | 伊人超碰| 欧美一区二区三区电影 | 91视频国产一区 | 久久国产精品免费一区二区三区 | a在线观看 | 久久久久国产 | jvid精品资源在线观看 | 国产超碰人人爽人人做人人爱 | 日韩中文一区 | 黄色亚洲网站 | 青青草华人在线视频 | 在线观看av不卡 | 欧美日在线 | 99久久视频 | 91一区 | 欧美一区视频 |