亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于REST風(fēng)格的WEB API架構(gòu)研究?

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

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

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

        ·微機應(yīng)用·

        基于REST風(fēng)格的WEB API架構(gòu)研究?

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

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

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

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

        1 引 言

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

        2 REST簡介

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

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

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

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

        2.1REST定義

        表述性狀態(tài)轉(zhuǎn)移是一組架構(gòu)約束條件和原則。滿足這些約束條件和原則的應(yīng)用程序或設(shè)計就是RESTful。需要注意的是,REST是設(shè)計風(fēng)格而不是標(biāo)準(zhǔn)。REST通常基于使用HTTP,URI,和XML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個子集)以及HTML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用)這些現(xiàn)有的廣泛流行的協(xié)議和標(biāo)準(zhǔn)。

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

        2.2REST的使用原則

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

        3 基于REST風(fēng)格的ASP.NET WEB API架構(gòu)研究

        3.1ASP.NET WEB API簡介

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

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

        3.2基于REST風(fēng)格的ASP.NET WEB API架構(gòu)研究

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

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

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

        3.3使用REST架構(gòu)

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

        4 基于REST風(fēng)格的ASP.NET WEB API架構(gòu)應(yīng)用

        4.1基于REST風(fēng)格的ASP.NET WEB API架構(gòu)應(yīng)用選擇

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

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

        4.2基于REST風(fēng)格的ASP.NET WEB API架構(gòu)應(yīng)用階段

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

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

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

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

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

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

        5 結(jié)束語

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

        [1]蒲海濤.物聯(lián)網(wǎng)環(huán)境下基于上下文感知的智能交互關(guān)鍵技術(shù)研究[D].山東:山東科技大學(xué),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)網(wǎng)傳感網(wǎng)絡(luò)安全協(xié)議形式化研究[D].云南:云南大學(xué),2011.Li Jun Lin.Things sensor network security protocols Formal Study[D].Yunnan:Yunnan University,2011.

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

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

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

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

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

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

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

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

        [11]康玲,傅俊鋒,王懷清,蔡勁松.基于ArcGIS Server的WebGIS應(yīng)用系統(tǒng)開發(fā)[J].水電能源科學(xué),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ā)技術(shù)的研究與探討[J].中國數(shù)據(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技術(shù)的構(gòu)件式WebGIS表現(xiàn)層技術(shù)研究[D].湖北:中國地質(zhì)大學(xué),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

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

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

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

        2016-04-18

        猜你喜歡
        客戶端架構(gòu)聯(lián)網(wǎng)
        基于FPGA的RNN硬件加速架構(gòu)
        “身聯(lián)網(wǎng)”等五則
        功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實踐
        汽車工程(2021年12期)2021-03-08 02:34:30
        搶占物聯(lián)網(wǎng)
        通信世界(2018年27期)2018-10-16 09:02:56
        縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
        傳媒評論(2018年4期)2018-06-27 08:20:24
        孵化垂直頻道:新聞客戶端新策略
        傳媒評論(2018年4期)2018-06-27 08:20:16
        基于Vanconnect的智能家居瘦客戶端的設(shè)計與實現(xiàn)
        電子測試(2018年10期)2018-06-26 05:53:34
        LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實現(xiàn)
        一種基于FPGA+ARM架構(gòu)的μPMU實現(xiàn)
        可再生能源與物聯(lián)網(wǎng)
        風(fēng)能(2015年10期)2015-02-27 10:15:34
        中文字幕一区二区区免| 欧美日韩国产码高清综合人成 | 麻豆精产国品| 国产极品喷水视频| 亚洲国产精品av麻豆一区| 日本熟女精品一区二区三区| 日日日日做夜夜夜夜做无码| 日本人与黑人做爰视频网站| 国产精品久久久久久2021| 中文字幕一区二区人妻痴汉电车| 国产白浆一区二区三区佳柔| 亚洲综合网国产精品一区| 婷婷色香五月综合激激情| 亚洲va中文字幕无码久久不卡| 亚洲综合网站精品一区二区| 经典亚洲一区二区三区| 日韩精品在线一二三四区| 看全色黄大色黄大片 视频| 亚洲五月天综合| 激情 一区二区| 99热婷婷一区二区三区| 亚洲中文字幕人妻av在线 | 毛片内射久久久一区| 久久精品国产亚洲AV高清特级| 久久国产精品一区二区| 亚洲一区二区三区免费网站| 国产精品国产精品国产专区不卡| 精品国产aⅴ无码一区二区 | 国产精品亚洲片夜色在线| 中文字幕一区二区三在线| 91精品久久久中文字幕| 国产无套粉嫩白浆在线观看| 开心婷婷五月激情综合社区 | 毛片无遮挡高清免费久久| 在线视频亚洲一区二区三区| 伊人狼人大香线蕉手机视频| av一区二区三区在线| 337p西西人体大胆瓣开下部| 欧美日韩国产亚洲一区二区三区| 亚洲一区有码在线观看| 亚洲综合色区一区二区三区|