• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于REST風格的WEB API架構研究?

      2016-03-17 02:02:29王仲洲楊曉洪王劍平
      微處理機 2016年5期
      關鍵詞:客戶端架構聯(lián)網

      王仲洲,楊曉洪,王劍平,張 果

      (昆明理工大學信息工程與自動化學院,昆明650500)

      ·微機應用·

      基于REST風格的WEB API架構研究?

      王仲洲,楊曉洪,王劍平,張果

      (昆明理工大學信息工程與自動化學院,昆明650500)

      (Representational State Transfer)表述性狀態(tài)傳遞,描述了一個架構形式的網絡系統(tǒng),它實際上是設計上的一系列約束,其中主要有無狀態(tài)服務器、分布式緩存等特點。一般來說,REST架構風格的Web Service其實就是和傳統(tǒng)Web Service相結合的一種輕量級實現(xiàn)。REST架構和傳統(tǒng)的單一軟件架構相比不僅能滿足不同平臺之間的相互訪問,同時又剔除了傳統(tǒng)Web Services的繁瑣與笨重,完全符合目前人們對web服務的需求。REST在Web中取得了巨大的成就,目前已取代SOAP和Web成為ASP.NET WEB API最簡單的方法。文中對基于REST風格的ASP.NET WEB API架構進行了研究與分析。

      表述性狀態(tài)傳遞;接口;web服務;無狀態(tài);網絡系統(tǒng);分布式緩存

      1 引 言

      REST是2000年由Roy Fielding在就讀加州大學歐文分校期間在學術論文“Architectural Styles and the Design of Network-based Software Architectures”中提出,目前基于REST風格的框架已經被開發(fā)出來,并且被廣泛應用到各個平臺系統(tǒng)中。

      2 REST簡介

      首先,REST是Web自身的架構風格。它是一種針對網絡應用的設計和開發(fā)方式,可以降低開發(fā)的復雜性,提高系統(tǒng)的可伸縮性。REST是世界上最成功的分布式應用架構風格。它是為“運行在互聯(lián)網環(huán)境”的“分布式”“超媒體”系統(tǒng)量身定制的[1]?;ヂ?lián)網環(huán)境和企業(yè)內網環(huán)境是兩個不同的概念,最主要的差別有以下兩點:

      首先無法控制其可伸縮性需求,無法控制其并發(fā)訪問量,暴漲亦或暴跌。其次無法控制其安全性需求,無法控制客戶端發(fā)來的請求格式,很可能是惡意請求。

      而所謂的“超媒體系統(tǒng)”,即使用了超文本的系統(tǒng),可以把“超媒體”理解為超文本+媒體內容。

      REST是HTTP/1.1協(xié)議等Web規(guī)范的設計指導原則,HTTP/1.1協(xié)議正是為實現(xiàn)REST風格的架構而設計的。新的Web設計必須符合REST的要求,否則整個Web的體系架構會因為引入嚴重矛盾而崩潰。

      2.1REST定義

      表述性狀態(tài)轉移是一組架構約束條件和原則。滿足這些約束條件和原則的應用程序或設計就是RESTful。需要注意的是,REST是設計風格而不是標準。REST通?;谑褂肏TTP,URI,和XML(標準通用標記語言下的一個子集)以及HTML(標準通用標記語言下的一個應用)這些現(xiàn)有的廣泛流行的協(xié)議和標準。

      REST這個概念于2000年由Roy Fielding博士首次提出。論文中對使用Web服務作為分布式計算平臺的一系列軟件體系結構原則進行了分析,同時提出了REST的概念,但是并沒有獲得太多關注。然而今天,REST相關的一些主流框架已經開始出現(xiàn)。

      2.2REST的使用原則

      學習REST一般都是先熟悉它的定義和背景。在此提出一個簡要的定義:REST定義了Web的使用標準,這和很多人實際使用的框架有很大不同,例如HTTP和URI。如果你能堅持使用REST原則來設計應用程序,那你就會得到一個使用了優(yōu)質Web架構的系統(tǒng)。雖然Java語言是世界上目前基于SOAP的web服務技術,但其余的將是另一個web服務,和真正意義上的網絡服務有所區(qū)別?;赗EST的web服務在不久的將來將成為網絡服務的主流技術。其不僅僅是HTTP作為數據傳輸協(xié)議,而且還直接處理數據的工具。和當前web服務技術需要使用其他方法來完成數據處理工作不同,它們是完全獨立的HTTP協(xié)議,這樣增加了許多復雜的軟件架構設計工作,剩下的認為充分利用現(xiàn)有的HTTP技術的網絡容量[2]。HTTP不是一個簡單的傳遞數據協(xié)議。其在傳遞數據時的優(yōu)勢,是REST的使用原則區(qū)別于其他原則的根本所在。

      3 基于REST風格的ASP.NET WEB API架構研究

      3.1ASP.NET WEB API簡介

      ASP.NET WEb Api首次出現(xiàn)是在ASP.NET MVC4的時候,到目前為止已經有一年半的歷史了。它用于建立一個HTTP服務可以被各種客戶端(例如:瀏覽器,智能手機終端,桌面客戶端等)來調用的框架[3]。它并不是ASP.NET MVC框架的一部分,它作為ASP.NET平臺的一部分可以用于MVC、Web Form或者是作為一個獨立的服務存在。

      時至今日,隨著智能手機的飛速發(fā)展和普及,出現(xiàn)單頁應用程序猛增的趨勢。使用一個輕量級的Web Api來把你的服務暴露給客戶端就顯得極其重要[4]。ASP.NET Web Api將使用很多HTTP的特征(URIs,請求/相應的處理模型,標題部分,版本控制以及各種傳輸數據的格式)帶你一起走進基于REST風格服務的精彩世界。

      3.2基于REST風格的ASP.NET WEB API架構研究

      REST定義了一組框架約束原則,設計者可以根據這些約束準則來設計開發(fā)以系統(tǒng)資源為中心的Web服務,比如在使用不同語言編寫的客戶端情況下通過HTTP處理和傳輸資源狀態(tài)的方法[5]。如果按照使用它的Web服務的數量來看的話,REST已經成為最流行的Web服務設計模型。事實上,REST設計風格對Web的發(fā)展具有非常深遠的影響,由于其使用便捷,已經基本取代了傳統(tǒng)的基于SOAP和WSDL的接口設計。

      按照RFC2616定義的協(xié)議規(guī)則開發(fā)使用HTTP方法,是基于REST風格的Web服務的主要特征之一[6]。比如,被定義為數據產生方法的HTTP GET/POST,前者是指在客戶端檢索資源從Web服務器獲取相應數據,亦或是執(zhí)行某個查詢并預期Web服務器將查找某一組匹配資源然后使用該資源進行響應[7],而后者多用于更新資源。

      REST要求使用方式與協(xié)議定義必須一致,同時開發(fā)人員必須要顯式地使用HTTP方法。REST風格的這個基本設計原則建立了增、刪、改和查(create,delete,update,and read,CRUD)操作與HTTP方法的PUT,DELETE,POST,GET之間一對一映射。

      3.3使用REST架構

      其實對于每個研究開發(fā)人員來說,具體怎么使用REST架構才是他們最關心的問題。REST不止是一種新穎的框架架構,它更是用一種全新思維方式來開發(fā)Web,使用URL設計系統(tǒng)結構。REST不是一種具體的標準或架構,而是一套設計原則或者說是一種架構風格。著名的Delicious和Flickr都是成功使用REST的案例,它們的客戶端調用都極其方便,也都提供基于REST風格API的使用[8-9]。使用REST對于ASP.NET WEB API架構有著不可忽視的優(yōu)勢,能夠更好的為實際服務。目前,在國外對于REST的研究已經非常成熟,許許多多的學者對其進行了研究,并且取得了一定的進展,REST架構的應用范圍極其廣泛。我國也進行了相應的研究,但是我國目前對于REST架構的研究還遠遠不能與發(fā)達國家相比,這需要更多的學者致力與此,同時還得參考國外經驗,使REST架構的研究越來越成熟。

      4 基于REST風格的ASP.NET WEB API架構應用

      4.1基于REST風格的ASP.NET WEB API架構應用選擇

      傳統(tǒng)的WCF Web API是基于RPC風格的API。由于WCF主要是基于SOAP的XML消息設計的,為了使Web API融入WCF,需要改動的地方太多,因此為了讓WCF匹配”原生”HTTP世界,遇到了很多麻煩[10]。相比之下,ASP.NET MVC架構的基礎設施既能非常簡潔的創(chuàng)建各種控制器,又能優(yōu)雅地處理HTTP的請求和響應,幾乎是為創(chuàng)建這種新類型服務量身定做的。

      支持URL路由,透過用戶熟悉的MVC風格路由語義,生成干凈的URL,根據Accept標頭對請求和響應的序列化形式進行內容協(xié)商(Content Negotiation),支持大量輸出格式,包括JSON、XML、ATOM等。默認對REST語義有完善支持,同時又不強制限定必須使用REST語義易于擴展的Formatter機制,支持添加新的輸入/輸出類型。可通過Http ResponseMessage類、HttpRequestMessage類和強類型枚舉來描述大量的HTTP操作,提供對更高級的HTTP特性的深度支持?;趹T例的設計引導用戶按HTTP Services的正確方式行事,F(xiàn)ormatters和Filters延續(xù)了MVC的擴展模型,具備出色的擴展能力。用于非Web程序時,可以脫離IIS運行(Self-h(huán)ostable),具備可測試性,測試機制的設計類似于MVC。

      4.2基于REST風格的ASP.NET WEB API架構應用階段

      靜態(tài)HTM階段:在靜態(tài)階段主要是一些科研機構在使用Web。此時,Web就是一個支持超文本的共享文件庫或服務器,因為它主要由一些靜態(tài)HTML文檔組成,比如學術,科研論文等。

      CGI程序階段:在此階段,Web服務器通過編程API來編寫各種應用程序,以此來把一些變化的內容提供給客戶端。通過CGI(Common Gateway Interface)協(xié)議來完成服務器和應用程序之間的通信,應用程序被稱作CGI程序。

      腳本語言應用階段:腳本語言階段,一些支持Session的腳本語言技術開始出現(xiàn)在服務器端,比如ASP、PHP、ColdFusion等。而瀏覽器端也出現(xiàn)了Java Applet、Java Script等相關技術。這些技術的出現(xiàn),更加豐富了Web服務器的動態(tài)內容。

      瘦客戶端應用階段:在此階段,能夠獨立運行的應用服務器出現(xiàn)在了服務器端。同時Web MVC新穎的開發(fā)模式問世,隨之各種各樣的Web MVC開發(fā)框架逐漸流行,并且占據了主導地位[11]。由于基于這些框架來開發(fā)的Web服務都是在服務器端直接生成全部的動態(tài)內容,因此基本都是瘦客戶端應用。

      RIA應用階段:在RIA應用階段,大量RIA(Rich Internet Application)技術的出現(xiàn),極大地改善了Web應用的用戶體驗。最受歡迎的RIA技術無疑是DHTML+Ajax。Ajax技術可以使網頁實現(xiàn)異步更新[12-14]。同時Prototype、Dojo、ExtJS、jQuery/jQuery UI等大量的Web前端DHTML開發(fā)庫也流行開來,其中很多都支持單頁面應用(Single Page Application)的開發(fā)。另外還出現(xiàn)了其他的RIA技術,比如Adobe公司的Flex技術、微軟公司的Silverlight技術、Sun公司的JavaFX技術等等。

      移動Web應用階段:大量面向移動設備的Web應用技術在這個階段開始出現(xiàn)[15]。除了一些原生的開發(fā)技術比如Android、iOS、Windows Phone等操作系統(tǒng)平臺之外,基于HTML5的相關技術開發(fā)也變得越來越流行。

      5 結束語

      通過研究可知,基于REST風格的ASP.NET WEB API架構相對于其他風格有著不可代替的優(yōu)勢,其對于數據的傳遞等方面效果明顯。REST在我國的很多方面都有應用,但是我國目前對于REST架構的研究還遠遠不能與發(fā)達國家相比,這需要更多的學者致力與此,同時還需要參考國外的經驗,使REST架構的研究越來越深入,使得REST風格能更好更多地應用于實踐。

      [1]蒲海濤.物聯(lián)網環(huán)境下基于上下文感知的智能交互關鍵技術研究[D].山東:山東科技大學,2011.PuHaiTao.Research On Key Technologies Of Intelligent Interaction Of Internet Of Things Based On Context-Aware[D].Shandong:Shandong University of Science and Technology,2011.

      [2]李俊霖.物聯(lián)網傳感網絡安全協(xié)議形式化研究[D].云南:云南大學,2011.Li Jun Lin.Things sensor network security protocols Formal Study[D].Yunnan:Yunnan University,2011.

      [3]張智.面向物聯(lián)網的多層次無線感知識和識別系統(tǒng)[D].浙江:浙江大學,2012.Zhang Zhi.Wireless multi-level sense of knowledge and identification systems for the Internet of Things[D].Zhejiang:Zhejiang University,2012.

      [4]劉建華.面向服務的物聯(lián)網動態(tài)維護及其資源配置研究[D].上海:上海大學,2012.Liu Jian Hua.Things dynamic service-oriented maintenance and Resource Allocation[D].Shanghai:Shanghai University,2012.

      [5]王巖.物聯(lián)網控制系統(tǒng)中信息傳輸關鍵技術研究[D].黑龍江:東北林業(yè)大學,2012.Wang Yan.Key Technology of Information Transmission Control System of Things[D].Heilongjiang:Northeast Forestry University,2012.

      [6]閆韜.物聯(lián)網隱私保護及密鑰管理機制中若干關鍵技術研究[D].北京:北京郵電大學,2012.Yan Tao.Things privacy and key management in a number of key technologies[D].Beijing:Beijing University of Posts,2012.

      [7]王延炯.物聯(lián)網若干安全問題研究與應用[D].北京:北京郵電大學,2011.Wang Yan Jiong.Things several security issues Research and Application[D].Beijing:Beijing University of Posts,2011.

      [8]李征.物聯(lián)網帶寬優(yōu)化分配與智能物流監(jiān)管系統(tǒng)研究[D].天津:天津大學,2012. Li Zheng.Distribution and Logistics Supervision System for Intelligent Network bandwidth optimization was[D].Tianjin:Tianjin University,2012.

      [9]何文娜.大數據時代基于物聯(lián)網和云計算的地質信息化研究[D].吉林:吉林大學,2013.He Wen Na.Big Data era based on networking and cloud computinggeologicalinformation[D].Jilin:Jilin University,2013.

      [10]賈冰.基于語義的物聯(lián)網服務架構及關鍵算法研究[D].吉林:吉林大學,2013.Jia Bing.Semantic networking services architecture and key algorithms based on[D].Jilin:Jilin University,2013.

      [11]康玲,傅俊鋒,王懷清,蔡勁松.基于ArcGIS Server的WebGIS應用系統(tǒng)開發(fā)[J].水電能源科學,2007,25(1):26-29.Kang Ling,F(xiàn)u Jun Feng,Wang Huai Qing,Cai Jin Song.WebGISapplicationsystemdevelopmentbasedon ArcGIS Server[J].Hydroelectric Energy,2007,25(1):26-29.

      [12]馬先立,路璐.Web GIS開發(fā)技術的研究與探討[J].中國數據通信,2002,7(7):80-82.Ma Xian Li,Lu Lu.Web GIS Development and Technology Discussion[J].China Data Communications,2002,7(7):80-82.

      [13]方坤.基于RIA技術的構件式WebGIS表現(xiàn)層技術研究[D].湖北:中國地質大學,2009.Fang Kun.RIA technology component-based Web GIS presentation layer technology[D].Hubei:China University of Geosciences,2009.

      [14]Tomokazu Fujino.SVG+Ajax+R:a new framework for Web GIS[J].Computational Statistics,2007,24(4):70-74.

      [15]Arun K.Iyengar,Mark S.Squillante,Li Zhang.Analysis and characterization of large-scale Web server access patterns and performance[J].World Wide Web,1999, 16(22):15-18.

      Research and analysis of ASP.NET WEB API architecture Based on REST-style

      Wang Zhongzhou,Yang Xiaohong,Wang Jianping,Zhang Guo
      (College of Information Engineering and Automation,Kunming University of Science and Technology,Kunming 650500,China)

      Representational State Transfer,actually a series of constraints on the design,describes a form of network system architecture,with the main characteristics of no-status server and distributed caching features.Generally,REST-style Web Service,combining with the traditional one,is a lightweight implementation.The REST architecture,compared with the traditional single software one,not only meets mutual visits between different platforms but also eliminates the tedious and cumbersome of the traditional Web Services.It meets the demand of the users for web services.Because great achievements are made in the Web,REST has replaced SOAP and Web to ASP.NET WEB API.In this article,ASP.NET WEB API based on REST-style is studied and analyzed.

      Interface;Representational state transfer;Web service;No status;Network system;Distributed cache

      10.3969/j.issn.1002-2279.2016.05.013

      TP274.2

      A

      1002-2279(2016)05-0052-04

      ?國家自然科學基金(61364008);云南省應用基礎研究重點項目(2014FA029);云南省教育廳重點基金項目(2013Z127);昆明理工大學復雜工業(yè)控制學科方向團隊建設計劃

      王仲洲(1990-),男,河南省鄭州市人,碩士研究生在讀,主研方向:運動控制。

      楊曉洪(1964-),女,云南昆明人,高級工程師,主研方向:嵌入式運動控制。

      2016-04-18

      猜你喜歡
      客戶端架構聯(lián)網
      基于FPGA的RNN硬件加速架構
      “身聯(lián)網”等五則
      功能架構在電子電氣架構開發(fā)中的應用和實踐
      汽車工程(2021年12期)2021-03-08 02:34:30
      搶占物聯(lián)網
      通信世界(2018年27期)2018-10-16 09:02:56
      縣級臺在突發(fā)事件報道中如何應用手機客戶端
      傳媒評論(2018年4期)2018-06-27 08:20:24
      孵化垂直頻道:新聞客戶端新策略
      傳媒評論(2018年4期)2018-06-27 08:20:16
      基于Vanconnect的智能家居瘦客戶端的設計與實現(xiàn)
      電子測試(2018年10期)2018-06-26 05:53:34
      LSN DCI EVPN VxLAN組網架構研究及實現(xiàn)
      電信科學(2017年6期)2017-07-01 15:45:17
      一種基于FPGA+ARM架構的μPMU實現(xiàn)
      可再生能源與物聯(lián)網
      風能(2015年10期)2015-02-27 10:15:34
      南安市| 平利县| 神农架林区| 东丽区| 景东| 巩留县| 克东县| 湖北省| 桂阳县| 巴南区| 星座| 浑源县| 老河口市| 民和| 通江县| 蓬溪县| 新泰市| 杨浦区| 尚义县| 孙吴县| 安泽县| 班玛县| 伊川县| 古交市| 乌拉特后旗| 漾濞| 达州市| 鸡西市| 永善县| 景德镇市| 家居| 河源市| 常山县| 嵊州市| 富平县| 鄂伦春自治旗| 同江市| 张掖市| 监利县| 武胜县| 丹东市|