<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    空間站

    北極心空

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks
    http://hi.baidu.com/zeorliu/blog/item/11147c27cfe03806918f9d5a.html

     

    http://www.aiz8.cn/html/ROR/News/2007-8-20/ZhuanFang-Restlet-KuangJiaShouXiKaiFaZhe-Jrome-Louvel.html 專訪Restlet框架首席開(kāi)發(fā)者Jérome Louvel 發(fā)布日期:2007-8-20 0:17:03 來(lái)源:ruby-lang.org.cn 作者:Stefan Tilkov譯者 宋瑋

    最近Restlet框架發(fā)布了它的1.0版。JéromeLouve是Java框架Restlet的領(lǐng)導(dǎo)開(kāi)發(fā)者,InfoQ的編輯Stefan Tikov有機(jī)會(huì)和JéromeLouvel進(jìn)行了一次對(duì)話,本次談話的主題討論了Restlet存在的原因、在Java Web服務(wù)框架中的REST支持、Ruby onRails、對(duì)JSR 311的期望以及Restlet的路線圖。
    InfoQ:你能給我們簡(jiǎn)單地介紹下Restlet的目標(biāo)嗎?
    Jérome Louvel(以下簡(jiǎn)稱JL):Restlet是一個(gè)Java下的輕量級(jí)REST框架。通過(guò)擁抱REST(REST是一種Web架構(gòu)風(fēng)格)它模糊了Web站點(diǎn)和Web服務(wù)之間的界限,從而幫助開(kāi)發(fā)人員構(gòu)建Web應(yīng)用。每一個(gè)主要的REST概念(REST concept)都有一個(gè)對(duì)應(yīng)的Java類。你的REST化的Web設(shè)計(jì)和你的代碼之間的映射是非常簡(jiǎn)單直接的。Restlet是一個(gè)以CDDL或GPL發(fā)布的開(kāi)源項(xiàng)目。該項(xiàng)目包含一個(gè)Restlet API,一個(gè)引用實(shí)現(xiàn)(Noelios Restlet引擎)以及一套擴(kuò)展。
    InfoQ:你為什么會(huì)覺(jué)得有必要?jiǎng)?chuàng)建另一種框架?難道Servlet API還不夠好用嗎?
    JL:Servlet AIP在1998年發(fā)布,從那個(gè)時(shí)候起它的核心設(shè)計(jì)一直沒(méi)有很大的變化。它是JavaEE的眾多API中最成功的一個(gè),但是它的幾個(gè)設(shè)計(jì)缺陷和一些限制損害了它。舉個(gè)例子,URI模式和它的處理者(handler)之間的映射是受限制的,而且其配置都集中在一個(gè)配置文件中。還有,他把socket流的控制直接交給了應(yīng)用系統(tǒng)開(kāi)發(fā)人員,Servlet容器阻礙了我們充分使用NIO特性對(duì)IO操作進(jìn)行優(yōu)化。最后,他對(duì)一些HTTP特性,例如緩存、內(nèi)容協(xié)商以及內(nèi)容壓縮支持的不好。這對(duì)開(kāi)發(fā)人員來(lái)說(shuō)是件痛苦的事,因?yàn)檫@阻礙了他們將精力集中在應(yīng)用系統(tǒng)相關(guān)的代碼上。另一個(gè)主要問(wèn)題是,Java EEStack中新的HTTP客戶端API的缺少。JDK的HttpURLConnection類很難用,而且許多HTTP特性都不支持,比如為內(nèi)容協(xié)商而表達(dá)的客戶端選擇等。人們經(jīng)常需要依賴第三方HTTP客戶端API突破這些限制。但是,HttpURLConnection不支持NIO。2005年,我看到了超越這些限制的機(jī)會(huì):在REST原則下設(shè)計(jì)一個(gè)新的API。第一次,我們有了統(tǒng)一Web應(yīng)用客戶端和服務(wù)器端的機(jī)會(huì),這個(gè)API完全支持NIO并能讓開(kāi)發(fā)人員編程控制Web容器、連接器(connector)等,而且不需要經(jīng)常性的依賴XML描述符就能部署應(yīng)用系統(tǒng)
    InfoQ:你怎么看在別的框架中對(duì)REST的支持(例如Axis2,或者CXF/XFire)?
    JL:我想這些支持非常有效,但是作用非常有限。我的主要觀點(diǎn)是設(shè)計(jì)這些項(xiàng)目是為了符合WS-*/SOAP Stack,它們與REST世界并不非常契合。在REST世界里,定義了一個(gè)全新的范例:面向資源的設(shè)計(jì),而非通過(guò)遠(yuǎn)程方法調(diào)用這樣的范例。例如Axis2僅僅支持GET和POST兩種HTTP方法,它需要遠(yuǎn)程方法的傳遞需要一個(gè)URI參數(shù)。這在REST中式不允許的,這種做法也不能被稱之為REST化。XFire1.2不支持REST,但是它發(fā)布了一個(gè)項(xiàng)目用于將POJO映射到REST化的Web服務(wù)。這有點(diǎn)類似最近發(fā)布的JSR-311,此JSR試圖基于一套annotation和助手類標(biāo)準(zhǔn)化這種映射。
    InfoQ:你是JSR 311專家組的成員,能否對(duì)JSR 311做一下展望?
    JL:我期望它能在REST資源和POJO領(lǐng)域?qū)ο笾g實(shí)現(xiàn)一個(gè)完好的映射。就像JPA在關(guān)系數(shù)據(jù)庫(kù)和POJO之間實(shí)現(xiàn)了很好的映射那樣,我們也希望這個(gè)JSR能做到像JPA那樣。我希望以annotation為中心的API能夠相當(dāng)符合(complimentary)Restlet API,后者已經(jīng)是一個(gè)將REST資源映射到POJO的以類為中心的API了。
    這些annotation也能被像Axis2和XFire這樣的項(xiàng)目實(shí)現(xiàn),我認(rèn)為這個(gè)JSR給了REST和WS-*陣營(yíng)一個(gè)達(dá)成和解的機(jī)會(huì)。
    InfoQ:你能告訴我們一些基于Restlet的項(xiàng)目嗎?
    JL:有幾個(gè)不同規(guī)模的組織已經(jīng)部署并應(yīng)用了這樣的應(yīng)用系統(tǒng),包括Overstock.com,這是一個(gè)在線購(gòu)物方面的Internet領(lǐng)導(dǎo)者。Restlet項(xiàng)目也被作為支持技術(shù)用在覆蓋REST構(gòu)架風(fēng)格的不同軟件構(gòu)架類別中。例如在加州Irvine大學(xué),以及在INSA Rouen工程學(xué)院的使用。我們自己的網(wǎng)站也是用Restlet引擎構(gòu)建的??紤]到我們受到拒絕服務(wù)(denial of service)的攻擊量,我們對(duì)我們系統(tǒng)的可伸縮性很自信。最近我們還發(fā)布了一個(gè)公用基準(zhǔn)以證明了其性能品質(zhì)。我們與流行的Servlet容器處在同一水平線上,而且有望在下一個(gè)加入完全的NIO優(yōu)化的連接器(基于Glassfish的Grizzly NIO框架)的版本中比后者表現(xiàn)更為優(yōu)異。
    InfoQ:在構(gòu)建REST化的應(yīng)用系統(tǒng)中,能否比較一下Java和其他語(yǔ)言有何不同?
    JL:流行的REST化技術(shù),例如Rails或者Django這些技術(shù)的經(jīng)驗(yàn)告訴我們,Java/Restlet這樣的技術(shù)在支持REST化的應(yīng)用中會(huì)有更好更高的性能表現(xiàn)。Rails和Django開(kāi)始的設(shè)計(jì)并沒(méi)有考慮到REST,REST的這些概念只是在后來(lái)被加進(jìn)去的。相比Restlet,這導(dǎo)致了很多做作的(contrived)代碼。以Django為例,它并不天然支持在URI和資源之間映射的URI模板。而Rails強(qiáng)迫在關(guān)系數(shù)據(jù)庫(kù)和對(duì)數(shù)據(jù)的CRUD操作間使用一種不自然的映射,REST/HTTP方法導(dǎo)致一種令人不滿意的結(jié)果:開(kāi)發(fā)人員不得不在各種限制下工作,或者采用自己的面向資源的設(shè)計(jì)去迎合Rails。而Restlet不強(qiáng)迫你使用任何持久化技術(shù),它讓你自由的定義你的資源及其特定的表現(xiàn)形式(representation),以及它們?cè)趺幢挥成涞侥愕念I(lǐng)域?qū)ο蠡蚰愕臄?shù)據(jù)庫(kù)
    InfoQ:你能更詳細(xì)的解釋下你剛才對(duì)Rails的批評(píng)嗎? 你認(rèn)為它的CRUD映射什么地方不夠自然?
    JL:除了GET和DETLET這樣的HTTP方法可以很好的映射到SQL的SELECT和DELETE外,我還發(fā)現(xiàn)Rails將HTTP的POST方法用來(lái)進(jìn)行創(chuàng)建行為,這很不幸。在REST中,對(duì)于創(chuàng)建行為最好的方法是使用PUT,它也可以用于更新。PUT比POST優(yōu)越的地方是如果操作行為失敗了,它可以很安全的重復(fù)操作,而POST不行。還有,資源列表是基于表名和行記錄的數(shù)字型id映射的,在實(shí)踐中這并不總是可行的。你不想失去對(duì)你的URI的控制,而URI既是應(yīng)用系統(tǒng)用戶界面的一部分,又是REST最基本的概念之一。在Restlet中,我們并不對(duì)你的URI強(qiáng)加任何限制,你可以自由的使用任一持久化技術(shù)(例如JPA的annotation化POJO,純JDBC調(diào)用,對(duì)象數(shù)據(jù)庫(kù)等等)在你的資源和表現(xiàn)形式(representation)之間進(jìn)行映射。我對(duì)Rails的另一個(gè)小小的批評(píng)是,Rails鼓勵(lì)使用笨拙的“;edit”后綴訪問(wèn)一個(gè)資源的編輯Web頁(yè)面。這有點(diǎn)誤導(dǎo),REST并不鼓勵(lì)使用URI參數(shù)的非一致方法,應(yīng)該使用分隔的Web表單資源,這樣瀏覽器可以使用GET、POST或者PUT方法。
    InfoQ:你好像在Restlet上花了不少時(shí)間。這個(gè)業(yè)余項(xiàng)目占用了你多少時(shí)間,你的公司期望能從這個(gè)項(xiàng)目中得到多大的商業(yè)成就?
    JL:從開(kāi)始這個(gè)項(xiàng)目就不是作為一個(gè)業(yè)余產(chǎn)品啟動(dòng)的。當(dāng)我構(gòu)建另一個(gè)很重要的私人項(xiàng)目是我就感覺(jué)到了對(duì)它的需要。我相信專業(yè)的開(kāi)源項(xiàng)目,也希望Noelios Consulting能提供的專業(yè)服務(wù)(如支持計(jì)劃,顧問(wèn)服務(wù))能讓我們繼續(xù)投入更多的精力。
    InfoQ:第一版發(fā)布之后的路線圖是什么?
    JL:除了維護(hù)1.0版修改bug外,我們還將很快啟動(dòng)1.1版。一些我們?cè)脒^(guò)的對(duì)WAR包(不再需要XML描述符)的增強(qiáng)將被加進(jìn)來(lái)。用戶可以選擇通過(guò)一個(gè)XML描述符配置Restlet組件(可移植的應(yīng)用系統(tǒng)和虛擬主機(jī)容器)從而簡(jiǎn)化管理員的工作。我們還有幾個(gè)連接器原型要實(shí)現(xiàn),一個(gè)是基于GrizzlyNIO框架的HTTP服務(wù)器連接器,它將帶來(lái)更多的可伸縮性和響應(yīng)(responsiveness)。另外兩個(gè)HTTP連接器是基于JXTA的虛擬socket(一個(gè)客戶機(jī)和一個(gè)服務(wù)器)。我們還想更深入的支持HTTP特性,例如內(nèi)容范圍(content range),Digest和WSSE授權(quán)。我們還計(jì)劃在2008年將Restlet API提交給JCP。這有利于逐漸替代Servlet API。
    InfoQ:謝謝你抽出時(shí)間接受我們的采訪。
    查看原文鏈接:Interview: Jérome Louvel about Restlet 作者簡(jiǎn)介:Jérome Louvel是一位軟件架構(gòu)師,它是Noelios Consulting公司的創(chuàng)始人。在軟件版本(Software edition)和咨詢方面有超過(guò)8年的工作經(jīng)驗(yàn),它常年工作在歐洲和北美洲。他對(duì)Java、REST、語(yǔ)義網(wǎng)以及商業(yè)過(guò)程集成有濃厚的興趣。

    http://www.matrix.org.cn/resource/article/2007-11-30/1312be72-9f14-11dc-bd16-451eadcf4db4.html
    Restlet指南[Matrix社區(qū)試讀版] cleverpig 發(fā)表于 2007-11-30 15:15:48
    作者:cleverpig     來(lái)源:Matrix 相關(guān)資源:http://www.restlet.org/documentation/1.0/tutorial     http://www.restlet.org/about/introduction
    摘要:當(dāng)復(fù)雜核心化模式日趨強(qiáng)大之時(shí),面向?qū)ο笤O(shè)計(jì)范例已經(jīng)不總是Web開(kāi)發(fā)中的最佳選擇,Java開(kāi)發(fā)者需要認(rèn)識(shí)到這一點(diǎn),并且在開(kāi)發(fā)新的Web服務(wù)端或是 AJAX Web客戶端時(shí)開(kāi)始思考更加RESTfully的設(shè)計(jì)。Restlet這個(gè)開(kāi)源項(xiàng)目為那些要采用REST結(jié)構(gòu)體系來(lái)構(gòu)建應(yīng)用程序的Java開(kāi)發(fā)者提供了一個(gè)具體的解決方案。朋友們,下面就讓我們開(kāi)始Restlet探索之旅吧! 工具箱
    關(guān)于本指南
    本指南的翻譯工作經(jīng)過(guò)了Restlet社區(qū)的官方授權(quán),cleverpig作為貢獻(xiàn)者完成了本文的翻譯和整理工作。在此發(fā)布Matrix社區(qū)試讀版的目的是為了讓更多的技術(shù)愛(ài)好者閱讀并提出翻譯中的不足之處,以提高本指南的質(zhì)量,以期修改后正式發(fā)布。
    Servlet的限制: 在2003年末,Jetty Web容器的作者、Servlet規(guī)范的貢獻(xiàn)者:Greg Wilkins在其博客上對(duì)Servlet的問(wèn)題進(jìn)行了如下總計(jì):
        * 沒(méi)有對(duì)協(xié)議與應(yīng)用之間的關(guān)系進(jìn)行清洗的劃分。
        * 由于在設(shè)計(jì)Servlet時(shí)存在對(duì)阻塞IO的假設(shè),因此不能充分利用非阻塞NIO機(jī)制
        * 所有的Servlet Web容器對(duì)于某些應(yīng)用來(lái)講是過(guò)度設(shè)計(jì)的。

    他提出構(gòu)思新的API規(guī)范,使其能夠真實(shí)地脫離協(xié)議,并定義能夠暴露內(nèi)容和元數(shù)據(jù)的contentlets。這些想法就是Restlet項(xiàng)目創(chuàng)建的靈感源泉。在之后的文章中,Greg Wilkins解釋了為什么當(dāng)前Servlet API限制非阻塞NIO API得到高效使用的詳細(xì)理由:這種傳統(tǒng)的用法針對(duì)每個(gè)HTTP請(qǐng)求都創(chuàng)建獨(dú)立的線程進(jìn)行處理。并提出了他對(duì)下一代Servlet技術(shù)的設(shè)想。
    另一個(gè)主要問(wèn)題就是Servlet API鼓勵(lì)應(yīng)用開(kāi)發(fā)者在應(yīng)用或者用戶會(huì)話級(jí)別直接將session狀態(tài)保存于內(nèi)存中,盡管這看上去不錯(cuò),但它造成了Servlet容器擴(kuò)展性和高可用性的主要問(wèn)題。為了克服這些問(wèn)題,就必須實(shí)現(xiàn)復(fù)雜的負(fù)載均衡、session復(fù)制、持久化機(jī)制。這導(dǎo)致了可擴(kuò)展性必然成為災(zāi)難。
    Restlet簡(jiǎn)介——當(dāng)復(fù)雜核心化模式日趨強(qiáng)大之時(shí),面向?qū)ο笤O(shè)計(jì)范例已經(jīng)不總是Web開(kāi)發(fā)中的最佳選擇,Java開(kāi)發(fā)者需要認(rèn)識(shí)到這一點(diǎn),并且在開(kāi)發(fā)新的Web服務(wù)端或是AJAX Web客戶端時(shí)開(kāi)始思考更加RESTfully的設(shè)計(jì)。Restlet這個(gè)開(kāi)源項(xiàng)目為那些要采用REST結(jié)構(gòu)體系來(lái)構(gòu)建應(yīng)用程序的Java開(kāi)發(fā)者提供了一個(gè)具體的解決方案。它的非常簡(jiǎn)單易用的功能和RESTfully的Web框架,這使其成為了Web2.0開(kāi)發(fā)中的又一利器。好吧,朋友們,下面就讓我們開(kāi)始Restlet探索之旅吧!

    image

    image

    評(píng)論:目前 Restlet 都是建在 Asyncweb, Jetty, Simple 等 webserver 之上, 如果有建在 Grizzly 上的會(huì)更好看. 至少希望看到有關(guān)的比較. 另外, Restlet 提出的概念和 Grizzly framework 現(xiàn)在所做的都很類似, 特別是 Glassfish V3 版本中提出 Grizzlet 的概念.

    http://www.matrix.org.cn/resource/article/2008-03-04/990c1fb3-e9d0-11dc-91da-b599c3ba16ef.html
    Restlet之AJAX實(shí)踐
    摘要:在下面的實(shí)踐性指南中,我將以一個(gè)簡(jiǎn)單的“微型blog”(microblog)為例詳細(xì)說(shuō)明在Restlet中如何使用AJAX技術(shù)。。。 工具箱。在下面的實(shí)踐性指南中,我將以一個(gè)簡(jiǎn)單的“微型blog”(microblog)為例詳細(xì)說(shuō)明在Restlet中如何使用AJAX技術(shù)。預(yù)備知識(shí):在編寫代碼之前,讓我們先來(lái)回顧一下有關(guān)restlet的知識(shí)(如果你不曾了解或者忘記的話):
             * RESTful是什么?
             * 了解Restlet
             * 如何使用Restlet?        
             * Restlet指南
             * 如何使用db4o簡(jiǎn)化持久化數(shù)據(jù)存儲(chǔ)?
             * 如何在Prototype.js中使用JSON?

    微型blog結(jié)構(gòu):
         * Web client:web瀏覽器通過(guò)JSON協(xié)議以RESTful的方式((GET/PUT/POST/DELETE))調(diào)用后臺(tái)服務(wù);
         * 服務(wù)器端:利用db4o作為數(shù)據(jù)存儲(chǔ)服務(wù)提供者,并通過(guò)Restlet將數(shù)據(jù)暴露給web服務(wù);
         * 服務(wù)端處理過(guò)程:在Restlet中,Application接收到Request后將其分配給相應(yīng)的Router,Router尋找相匹配的Resource類并實(shí)例化匹配好的Resource類、將Request傳送給它,Resource類對(duì)象處理Request并返回相應(yīng)的表達(dá)法(representation)。
    下載源代碼:microblog_sourcecode (application/x-zip, 2.3 MB, info)
    資源鏈接:           * Router           * Application           * Resource           * db4o

    posted on 2008-11-28 14:44 蘆葦 閱讀(1893) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA 、其他
    主站蜘蛛池模板: 中文精品人人永久免费| 国产精品亚洲一区二区麻豆| 黄网站色视频免费看无下截| 全免费a级毛片免费看无码| 亚洲 日韩 色 图网站| 免费看的成人yellow视频| 亚洲私人无码综合久久网| 女人被免费视频网站| 亚洲乱码日产精品一二三| 青青草国产免费久久久91| 国产精品亚洲专区一区| 亚洲а∨天堂久久精品| 国产在线国偷精品免费看| 久久久久久久综合日本亚洲| 久久aa毛片免费播放嗯啊| 久久亚洲私人国产精品| 韩国免费一级成人毛片| 亚洲精品无码日韩国产不卡av| 国产又粗又猛又爽又黄的免费视频| 亚洲av成人无码网站…| 婷婷亚洲天堂影院| 中文字幕不卡高清免费| 久久精品国产亚洲精品2020| 巨波霸乳在线永久免费视频| 亚洲日韩中文字幕一区| 免费大片在线观看网站| 最近更新免费中文字幕大全| 亚洲黄色在线观看视频| 大学生a级毛片免费观看| caoporm碰最新免费公开视频| 亚洲久本草在线中文字幕| 在人线av无码免费高潮喷水| 美女视频黄a视频全免费网站一区| 亚洲一区二区三区免费| 亚洲黄色免费电影| 精品亚洲av无码一区二区柚蜜| 亚洲人成人一区二区三区| 4399好看日本在线电影免费| 深夜特黄a级毛片免费播放| 亚洲av日韩av激情亚洲| 国产成人免费a在线视频app|