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

        ?

        云平臺分布式智能感知物聯(lián)網(wǎng)應(yīng)用開發(fā)

        2016-10-28 03:14:30呂海東葛日波
        計算機(jī)測量與控制 2016年7期
        關(guān)鍵詞:云端客戶端編程

        呂海東,葛日波

        (大連理工大學(xué) 城市學(xué)院,遼寧 大連 116600)

        云平臺分布式智能感知物聯(lián)網(wǎng)應(yīng)用開發(fā)

        呂海東,葛日波

        (大連理工大學(xué) 城市學(xué)院,遼寧 大連 116600)

        為克服使用傳統(tǒng)嵌入式模式開發(fā)物聯(lián)網(wǎng)應(yīng)用的復(fù)雜性,以實(shí)現(xiàn)將千差萬別的設(shè)備使用標(biāo)準(zhǔn)的方式進(jìn)行連接和訪問,能將各種設(shè)備按統(tǒng)一的接口和協(xié)議進(jìn)行訪問,并構(gòu)建分布式物聯(lián)網(wǎng)架構(gòu),最終實(shí)現(xiàn)物聯(lián)網(wǎng)與云平臺的融合,通過云平臺任何終端均可訪問物聯(lián)網(wǎng)的所有設(shè)備;研究使用基于Node.js[1]的Zetta[2]框架將所有設(shè)備發(fā)布為統(tǒng)一的REST API接口,通過Zetta提供的Link機(jī)制并使用協(xié)議WebSocket實(shí)現(xiàn)與云平臺上Zetta服務(wù)器的實(shí)時數(shù)據(jù)通訊,保持云平臺與物聯(lián)網(wǎng)設(shè)備的同步;實(shí)現(xiàn)了全新的物聯(lián)網(wǎng)應(yīng)用開發(fā)模式和架構(gòu),構(gòu)建了一個高效實(shí)時同步、開發(fā)快捷、維護(hù)簡便的分布式物聯(lián)網(wǎng)應(yīng)用;使用統(tǒng)一的模型化方法和高效Node.js平臺實(shí)現(xiàn)快速開發(fā)基于云平臺的物聯(lián)網(wǎng)應(yīng)用,克服了傳統(tǒng)開發(fā)使用C語言開發(fā)物聯(lián)網(wǎng)的弊病。

        云計算;物聯(lián)網(wǎng);服務(wù)接口;分布式;傳感器

        0 引言

        在國家提出互聯(lián)網(wǎng)+政策推動下,物聯(lián)網(wǎng)(Internet of Things-IoT)[3]成為互聯(lián)網(wǎng)領(lǐng)域發(fā)展最迅猛的產(chǎn)業(yè)領(lǐng)域,尤其是在大眾創(chuàng)業(yè)-萬眾創(chuàng)新的創(chuàng)新項目中絕大部分都是基于IoT的應(yīng)用。根據(jù)IDC公司的分析報告,IoT技術(shù)及服務(wù)到2020年在全球的開支將達(dá)到8.9萬億。

        然而由于各種物聯(lián)網(wǎng)設(shè)備千差萬別,使用的通訊協(xié)議不盡相同,常用的通訊方式有串口、WIFI、3G、4G、并口等,導(dǎo)致物聯(lián)網(wǎng)應(yīng)用開發(fā)異常復(fù)雜,使用的編程語言和技術(shù)紛繁多樣,導(dǎo)致IoT應(yīng)用難以實(shí)現(xiàn)傳統(tǒng)軟件所具有的可維護(hù)性和可伸縮性。如何能將IoT開發(fā)變得簡單而高效,并能以標(biāo)準(zhǔn)化統(tǒng)一的模型表達(dá)各種不同的IoT設(shè)備,屏蔽其內(nèi)部的區(qū)別,將它們以統(tǒng)一API模式與互聯(lián)網(wǎng)連接,實(shí)現(xiàn)分布式IoT應(yīng)用,并使系統(tǒng)能自動感知聯(lián)網(wǎng)設(shè)備的啟動和停止,自動傳輸設(shè)備的監(jiān)測數(shù)據(jù)以及傳遞執(zhí)行動作,以上特點(diǎn)是簡化物聯(lián)網(wǎng)應(yīng)用開發(fā)的核心。

        為解決以上問題,在物聯(lián)網(wǎng)的設(shè)備端和云端使用相同的編程技術(shù)是最佳的選擇,這其中在IoT平臺使用Node.js是最佳的選擇。Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運(yùn)行環(huán)境。Node.js 使用了一個事件驅(qū)動、非阻塞式 I/O 的模型,其輕量和高效,已經(jīng)成為開發(fā)高并發(fā)請求處理的互聯(lián)網(wǎng)應(yīng)用的最佳平臺。

        為簡化IoT應(yīng)用開發(fā),各大軟件公司都開始了基于Node.js的IoT項目開發(fā),如三星電子正在進(jìn)行基于JavaScript和Node.js的IoT.js項目的研究,微軟宣布將為Windows10 IoT Core Insider提供Node.js支持。

        本文以Node.js服務(wù)器平臺為基礎(chǔ),結(jié)合IoT開源框架Zetta開發(fā)了全新模式的云平臺分布式物聯(lián)網(wǎng)應(yīng)用,通過使用創(chuàng)新的物聯(lián)網(wǎng)設(shè)備抽象模型,將所有的設(shè)備包括各種傳感器和執(zhí)行器實(shí)現(xiàn)為Node智能對象,實(shí)現(xiàn)所有IoT設(shè)備標(biāo)準(zhǔn)的JavaScript編程模型,通過實(shí)時WebSocket[4]協(xié)議能使云平臺智能感知設(shè)備的在線或斷線,實(shí)現(xiàn)設(shè)備與云平臺之間雙向高速的數(shù)據(jù)通訊,解決了傳統(tǒng)物聯(lián)網(wǎng)使用HTTP請求/響應(yīng)模式實(shí)現(xiàn)數(shù)據(jù)傳輸時的低速度、大延時的弊病。

        1 系統(tǒng)總體架構(gòu)設(shè)計

        Zetta是基于Node.js的物聯(lián)網(wǎng)開發(fā)開源框架,其通過Node.js的模塊和中間件機(jī)制,在物聯(lián)網(wǎng)平臺如樹莓派(RaspberryPi)[5],BeagleBone Black[6],Intel Edison[7],Spark Core上運(yùn)行Node.js和Zetta框架,并創(chuàng)建發(fā)布Zetta服務(wù)器,將所有連接到物聯(lián)網(wǎng)平臺的各種設(shè)備抽象為統(tǒng)一的Node.js Zetta狀態(tài)機(jī)模型對象。

        Zetta服務(wù)器將連接的每個設(shè)備通過Zetta對象發(fā)布為一個使用JavaScript編寫的基于微服務(wù)的REST API[8],此API發(fā)布了每個設(shè)備的數(shù)據(jù)讀取方法和動作執(zhí)行方法。通過這種統(tǒng)一的API模型,極大簡化了物聯(lián)網(wǎng)應(yīng)用的編程。

        同時在云平臺主機(jī)上部署Zetta服務(wù),與分布IoT平臺上的Zetta服務(wù)器進(jìn)行互聯(lián),將每個本地的IoT平臺上的設(shè)備API發(fā)布為云端的REST API。如此其他客戶端如PC、手機(jī)、平板或其他IoT設(shè)備可以通過云上發(fā)布的API實(shí)現(xiàn)對設(shè)備的操作和監(jiān)測,可構(gòu)建如圖1所示的大規(guī)模的分布式物聯(lián)網(wǎng)應(yīng)用,而且本地的設(shè)備的在線和離線狀態(tài)都可以通過WebSocket實(shí)時協(xié)議在云平臺的Zetta 服務(wù)器上實(shí)現(xiàn)智能感知,實(shí)現(xiàn)對各處IoT設(shè)備的控制和監(jiān)測。

        圖1 云分布式物聯(lián)網(wǎng)總體架構(gòu)示意圖

        2 物聯(lián)網(wǎng)設(shè)備端設(shè)計與實(shí)現(xiàn)

        設(shè)備端負(fù)責(zé)與各種IoT傳感器和執(zhí)行器相連,實(shí)現(xiàn)對監(jiān)控對象的監(jiān)測和控制。此層采用常用的物聯(lián)網(wǎng)主機(jī)如樹莓派、BeagleBone Black、Intel Edison、Arduino等。這些主機(jī)可以采用任何支持Node.js的操作系統(tǒng),如Linux、Window10 IoT版等,它們使用各種接口與傳感器和執(zhí)行器連接。在這些微主機(jī)上安裝Node.js和Zetta模塊,執(zhí)行Zetta Server實(shí)例,將連接設(shè)備使用Zetta機(jī)制抽象為設(shè)備對象,并發(fā)布為REST API接口,通過與云主機(jī)Zetta Server連接后,發(fā)布為面向Internet的API,供外部應(yīng)用調(diào)用。

        2.1 設(shè)備的抽象編程

        在Zetta中使用Zetta Driver將IoT設(shè)備進(jìn)行抽象模型化,在Driver內(nèi)部封裝其不同的數(shù)據(jù)訪問、通訊協(xié)議和操作方法。每個設(shè)備再通過Node.js發(fā)布為REST API接口。

        Zetta已經(jīng)為近70多種設(shè)備編寫了Driver,可在Node.js中直接引用,如直接訪問連接到Intel麥克風(fēng)的zetta-microphone-edison-driver,其引用的語句如下。

        var mic=require("zetta-microphone-edison-driver");

        如果沒有現(xiàn)成的驅(qū)動,可以使用Zetta提供的設(shè)備Device類繼承機(jī)制實(shí)現(xiàn)定制的設(shè)備驅(qū)動。在Zetta中推薦的設(shè)備驅(qū)動的命名規(guī)范為zetta-{device}-{platform}-driver,其中device為設(shè)備名,platform為平臺名,如edison表示Inter Edison,bonescrip表示BeagleBone Black,raspberrypi表示樹莓派驅(qū)動。如下為LED信號燈驅(qū)動的示意實(shí)現(xiàn)代碼。

        /* LED驅(qū)動 文件名:led.js目錄:divers */

        var Device = require('zetta-device');

        var util = require('util');

        var LED = module.exports = function() {

        Device.call(this);

        };

        util.inherits(LED, Device);

        LED.prototype.init = function(config) {

        config

        .state('關(guān)').type('led').name('信號燈')

        .when('開', { allow: ['關(guān)閉', '切換'] })

        .when('關(guān)', { allow: ['打開', '切換'] })

        .map('打開', this.turnOn).map('關(guān)閉', this.turnOff)

        .map('切換', this.toggle);

        };

        LED.prototype.turnOn = function(cb) {

        var self = this; self.state = '開';

        cb(); };

        LED.prototype.turnOff = function(cb) {

        var self = this; self.state = '關(guān)';

        cb(); };

        LED.prototype.toggle = function(cb) {

        if (this.state === '開') {

        this.call('關(guān)閉'); cb();

        } else {

        this.call('打開'); cb();

        } };

        通過繼承Device類,并實(shí)現(xiàn)init方法,定義設(shè)備的state,并定義JavaScript的原型方法prototype實(shí)現(xiàn)對設(shè)備的操作,可實(shí)現(xiàn)任何設(shè)備的驅(qū)動編程。在Zetta的modules網(wǎng)址新的驅(qū)動在不斷地更新和增加。

        2.2 本地端Zetta Server的編程

        在本地IoT主機(jī)連接各種設(shè)備,并準(zhǔn)備設(shè)備驅(qū)動模塊后,需要編寫本地Zetta Server。在其中使用設(shè)備驅(qū)動,將每個設(shè)備發(fā)布為API。本地Server再與云端的Zetta Server互聯(lián),通過云的Server將設(shè)備發(fā)布到互聯(lián)網(wǎng)上實(shí)現(xiàn)全局訪問和調(diào)用。下面代碼簡要示意了一個本地Server的實(shí)現(xiàn)。

        * 本地Zetta Server實(shí)現(xiàn) */

        var zetta = require('zetta');

        var LED = require('./devices/led.js');

        var ledapp=require("./apps/led.js");

        var car=require("zetta-car-mock-driver");

        var mic=require("zetta-microphone-edison-driver");

        zetta()

        .name('CityIOT')

        .use(LED)

        .use(car)

        .use(mic)

        .load(ledapp)

        .link("http://city-iot.herokuapp.com/")

        .listen(9001);

        代碼中先引入各種設(shè)備驅(qū)動,再調(diào)用zetta實(shí)例對象的use方法,將設(shè)備作為中間件嵌入到Zetta Server,通過link方法與云端的Zetta服務(wù)器相連,將本地API發(fā)布為互聯(lián)網(wǎng)API,內(nèi)部使用WebSocket協(xié)議實(shí)現(xiàn)本地設(shè)備與云端API數(shù)據(jù)的實(shí)時傳輸,這樣在云中API中可實(shí)時監(jiān)測各種設(shè)備的狀態(tài)和數(shù)據(jù),也可以使用API調(diào)用對在線的設(shè)備發(fā)送控制指令和參數(shù)。

        2.3 本地端IoT應(yīng)用編程

        物聯(lián)網(wǎng)本地端除了可以引用設(shè)備驅(qū)動外,還可以根據(jù)應(yīng)用功能需求,使用Node.js的事件驅(qū)動、異步、非阻塞的響應(yīng)式編程模式編寫設(shè)備間相互協(xié)作完成的功能模塊,根據(jù)監(jiān)測設(shè)備的狀態(tài)和數(shù)據(jù)以執(zhí)行相關(guān)的動作,如發(fā)送報警信號,切斷電路開關(guān)和控制閥門流量大小等。如下簡要示意代碼展示了IoT應(yīng)用的編程實(shí)現(xiàn)。

        module.exports=function(server){

        var ledquery=server.where({type:"led",name:"LED燈"});

        var micquery=server.where(type:"mic",name:"內(nèi)置麥克"); server.observe([ledquery,micquery],function(led,mic){

        led.state.on("開",function(){

        mic.speek(100); });

        }); };

        IoT應(yīng)用編程使用Node.js的模塊機(jī)制,通過Zetta Server的where方法定位IoT設(shè)備和observe方法智能感知設(shè)備是否啟動、停止或在線,在JavaScript回調(diào)方法中取得在線設(shè)備,最后監(jiān)控設(shè)備的狀態(tài)變化事件,以異步響應(yīng)式編程模式實(shí)現(xiàn)需要的執(zhí)行的動作和功能。

        3 云端服務(wù)器實(shí)現(xiàn)

        通過Zetta實(shí)例對象的link方法可以連接多個Zetta服務(wù)器,由Zetta自身完成連接時使用的協(xié)議、請求握手、防火墻穿越等復(fù)雜的工作細(xì)節(jié),極大減輕了開發(fā)者的編程負(fù)擔(dān),使開發(fā)者集中精力專注于業(yè)務(wù)功能實(shí)現(xiàn)。

        將本地Zetta 服務(wù)器與云中Zetta的服務(wù)器互聯(lián),實(shí)現(xiàn)本地服務(wù)器連接設(shè)備的API公布在互聯(lián)網(wǎng)上,任何連接互聯(lián)網(wǎng)的應(yīng)用客戶端都可以通過此API訪問所有分別各地的IoT設(shè)備,實(shí)現(xiàn)分布式物聯(lián)網(wǎng)。

        云端Zetta服務(wù)器與本地服務(wù)器實(shí)現(xiàn)基本相同,為連接眾多本地的本地Zetta服務(wù)器,并集中發(fā)布每個聯(lián)網(wǎng)Device的API,Zetta提供了最簡單的方法expose(*),可以發(fā)布每個通過link方法連接的本地Device的API。云端服務(wù)器的簡化的示意代碼如下所示。

        var zetta = require('zetta');

        var PORT = process.env.PORT || 3000;

        zetta()

        .name('cloud')

        .expose('*')

        .listen(PORT);

        創(chuàng)建Node.js項目,并將此服務(wù)器啟動代碼保存為server.js,在項目的配置文件package.json中指定依賴的Node.js模塊,包括zetta和其他模塊。在百度云、阿里云或開源云平臺Heroku上申請云主機(jī),推薦使用Linux操作系統(tǒng),并安裝Node.js的最新版。

        本文使用Heroku免費(fèi)云平臺作為測試目的,生產(chǎn)環(huán)境要使用商業(yè)化平臺以保證系統(tǒng)的可靠運(yùn)行和售后服務(wù)。使用平臺提供的Git工具將Zetta服務(wù)器項目部署到Heroku,選擇應(yīng)用類型為node.js即可。

        假如部署的應(yīng)用名稱為city-iot,則Zetta 服務(wù)的請求地址為https://city-iot.heroku.com.

        每個連接的設(shè)備都有一個唯一的請求地址,其格式為:

        https://city-iot.heroku.com:3000/servers/CityIOT/devices/e6f5b480-e96e-4fdc-8718-91aeb0234c99

        其中CityIOT是本地的Server名稱,最后的數(shù)字編碼是Zetta自動生成的設(shè)備ID,使用如下的JSON格式請求數(shù)據(jù),實(shí)現(xiàn)對設(shè)備的控制。

        {

        "method":"POST",

        "href":"https://city-iot.heroku.com:3000/servers/CityIOT/devices/e6f5b480-e96e-4fdc-8718-91aeb0234c99",

        "fields": [ {

        "name": "action",

        "value": "開"

        } ] }

        此控制數(shù)據(jù)可以使用任何客戶端發(fā)送HTTP POST請求給聯(lián)網(wǎng)的IoT設(shè)備。

        4 物聯(lián)網(wǎng)客戶端設(shè)計編程

        分布式物聯(lián)網(wǎng)實(shí)現(xiàn)云服務(wù)與各個端點(diǎn)的IoT設(shè)備連接后,就可以通過互聯(lián)網(wǎng),在任何PC、手機(jī)或平板上使用Web方式控制所有的連接設(shè)備,包括實(shí)時接收監(jiān)測的數(shù)據(jù),以及發(fā)送對IoT設(shè)備的控制指令。

        Web客戶端可以使用任何AJAX框架如jQuery,AngularJS,Dojo等請求云端設(shè)備API實(shí)現(xiàn)對IoT設(shè)備的訪問和控制。如下是演示了使用jQuery的異步AJAX請求方法.post控制LED燈點(diǎn)亮的實(shí)現(xiàn)代碼。

        .post("https://city-iot.heroku.com:3000/servers/CityIOT/devices/e6f5b480-e96e-4fdc-8718-91aeb0234c99",{action:"開"},function(){

        //回調(diào)處理代碼

        })

        Zetta設(shè)備最引人注目的特點(diǎn)是支持實(shí)時WebSocket協(xié)議,支持設(shè)備數(shù)據(jù)的高速、實(shí)時傳輸,客戶端使用此協(xié)議可以實(shí)時接收設(shè)備的監(jiān)控數(shù)據(jù),不再需要定時的HTTP請求,由IoT設(shè)備采用推方式自動發(fā)送給客戶端。

        5 系統(tǒng)的實(shí)際應(yīng)用

        使用此云平臺分布式IoT應(yīng)用模式對傳統(tǒng)的供熱監(jiān)控系統(tǒng)進(jìn)行改造,在系統(tǒng)的投資上大大節(jié)省。原來使用昂貴的工業(yè)控制計算機(jī),現(xiàn)在下位機(jī)全部采用微型樹莓派。在每個供熱鍋爐房設(shè)置一個Zetta Server端點(diǎn),將多個供熱站的Server與云Zetta進(jìn)行互聯(lián),加大簡化了系統(tǒng)的應(yīng)用開發(fā),使得項目的開發(fā)進(jìn)度成倍提高,系統(tǒng)的可維護(hù)性和可伸縮性得到巨大改善,新增換熱站時,通過部署一個Zetta Server可立即進(jìn)行入網(wǎng)監(jiān)測。

        6 結(jié)論

        將新的服務(wù)器平臺Node.js和Zetta開源框架應(yīng)用于基于云的IoT應(yīng)用開發(fā),簡化了IoT應(yīng)用開發(fā)的復(fù)雜性,加快了物聯(lián)網(wǎng)應(yīng)用的開發(fā)效率,提高了應(yīng)用的可維護(hù)性、可升級性和可

        擴(kuò)展性。通過Zetta服務(wù)器互聯(lián)可以實(shí)現(xiàn)超大規(guī)模的分布式IoT應(yīng)用,未來可以在智慧城市,智能社區(qū),智能工廠等各行各業(yè)中廣泛應(yīng)用,開創(chuàng)互聯(lián)網(wǎng)+普及時代。

        [1] 陸凌生,Node.js權(quán)威指南[M].北京:機(jī)械工業(yè)出版社, 2014.

        [2] Zetta online[Z/OL].http://www.zettajs.org.

        [3] 薛燕紅,物聯(lián)網(wǎng)技術(shù)與應(yīng)用[M].北京:清華大學(xué)出版社, 2012.

        [4] 薛瓏斌,劉釗遠(yuǎn).基于Websocket的遠(yuǎn)程實(shí)時通訊[J].計算機(jī)和數(shù)字工程,2014(3).

        [5] 汪 鑫,彭雨薇.基于樹莓派的網(wǎng)絡(luò)監(jiān)控系統(tǒng)的研究與實(shí)現(xiàn)[J].硅谷,2014(14):25-26.

        [6] 孫 溪.800 Mhz TETRA無線政務(wù)專用網(wǎng)的物聯(lián)網(wǎng)數(shù)據(jù)傳輸模塊的開發(fā)[J].中國儀器儀表,2014(7).

        [7] 苗 雪.基于Intel/NXP/TI智能家居安防系統(tǒng)網(wǎng)關(guān)解決方案[J].智能建筑和城市信息,2015(11):36-39.

        [8] 高嘉譯,高強(qiáng)等.面向移動應(yīng)用的后端服務(wù)平臺[J].計算機(jī)系統(tǒng)應(yīng)用,2014(2):22-27.

        Development of Cloud Platform Distributed Intelligent IoT Application

        Lü Haidong,Ge Ribo

        (City Institute of Dalian University of Technology, Dalian 116600, China)

        To overcome the complexity of traditional pattern of development of embedded networking applications, in order to achieve connectivity and access between vastly different device by a standard way, a variety of equipment is accessed by a unified interface and protocol, and build distributed Things architecture, and ultimately the integration of Things and cloud platforms, all devices can access the Internet of Things through any terminal cloud platform. Study of Zetta framework based Node.js how to publish all devices into a unified REST API interfaces, Link mechanism provided by Zetta and use WebSocket protocol to achieve real-time data communication Zetta server cloud platform, cloud platforms to keep pace with networking equipment.A new application development model and infrastructure has been implemented and an efficient real-time synchronization, develop quick, easy maintenance of distributed networking applications was built. Using the unified modeling methods and efficient Node.js platform cloud-based platform for rapid development of networking applications, and overcame disadvantage of the traditional developed using C language development.

        cloud computing; IoT; REST API; distribution; sensor

        2015-12-29;

        2016-01-28。

        呂海東(1964-),男,內(nèi)蒙古興安盟人,副教授,主要從事物聯(lián)網(wǎng)、云計算、應(yīng)用架構(gòu)方向的研究。

        葛日波(1968-),男,山東高密人,教授,主要從事物聯(lián)網(wǎng)、工業(yè)控制、云計算方向的研究。

        1671-4598(2016)07-0212-03

        10.16526/j.cnki.11-4762/tp.2016.07.057

        TP399 文獻(xiàn)標(biāo)識碼:B

        猜你喜歡
        云端客戶端編程
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        云端之城
        縣級臺在突發(fā)事件報道中如何應(yīng)用手機(jī)客戶端
        傳媒評論(2018年4期)2018-06-27 08:20:24
        孵化垂直頻道:新聞客戶端新策略
        傳媒評論(2018年4期)2018-06-27 08:20:16
        基于Vanconnect的智能家居瘦客戶端的設(shè)計與實(shí)現(xiàn)
        電子測試(2018年10期)2018-06-26 05:53:34
        美人如畫隔云端
        行走在云端
        初中生(2017年3期)2017-02-21 09:17:43
        色狠狠一区二区三区香蕉蜜桃| 蜜桃视频在线看一区二区三区| 在厨房被c到高潮a毛片奶水| 国产精品毛片完整版视频| 欧洲-级毛片内射| 亚洲AV日韩AV高潮喷潮无码| 日韩午夜三级在线视频| 国产av一区二区三区在线播放 | 99久久久无码国产aaa精品| 国产无遮挡又黄又爽无VIP| av中文字幕性女高清在线| 曰批免费视频播放免费| 亚洲av综合av一区| 国产无夜激无码av毛片| 国产真人无码作爱视频免费| 国产精品黑色丝袜在线播放| 美女福利视频网址导航| 国产女主播一区二区三区| 女人被狂躁c到高潮视频| 亚洲av日韩av不卡在线观看| 精品久久久久久99人妻| 久久精品国产亚洲av网站| 一边摸一边抽搐一进一出口述| 高清偷自拍第1页| 免费一级黄色大片久久久| 韩国黄色三级一区二区| 夜夜爽夜夜叫夜夜高潮| 日本精品αv中文字幕| 久久国产乱子伦精品免费强| 国产亚洲视频在线观看播放| 人妻一区二区三区免费看| 久久这里都是精品99| 色爱av综合网站| 久久天天躁狠狠躁夜夜96流白浆| 国产精品亚洲综合色区丝瓜| 国产色av一区二区三区| 亚洲av国产av综合av卡| 爱情岛论坛亚洲品质自拍hd| 精品少妇爆乳无码aⅴ区| 亚洲成人免费久久av| 蜜桃视频免费进入观看|