CN104615748A - 基于Watir的物联网Web事件处理方法 - Google Patents

基于Watir的物联网Web事件处理方法 Download PDF

Info

Publication number
CN104615748A
CN104615748A CN201510074748.0A CN201510074748A CN104615748A CN 104615748 A CN104615748 A CN 104615748A CN 201510074748 A CN201510074748 A CN 201510074748A CN 104615748 A CN104615748 A CN 104615748A
Authority
CN
China
Prior art keywords
internet
data
things
page
event
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510074748.0A
Other languages
English (en)
Other versions
CN104615748B (zh
Inventor
孔英会
高育栋
李佩玉
车辚辚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
North China Electric Power University
Original Assignee
North China Electric Power University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by North China Electric Power University filed Critical North China Electric Power University
Priority to CN201510074748.0A priority Critical patent/CN104615748B/zh
Publication of CN104615748A publication Critical patent/CN104615748A/zh
Application granted granted Critical
Publication of CN104615748B publication Critical patent/CN104615748B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种基于Watir的物联网Web事件处理方法,首先创建物联网页面,对终端节点的属性描述到网页上并将网页部署到服务器上,采用自动化测试框架Watir方法加载到物联网动态页面,结合Web页面的结构和内容获取包含终端节点信息的HTML文档并对HTML文档进行解析,对解析后的数据进行预处理后添加事件,将某种条件下的事件数据保存,并显示到页面上。本发明实现了在满足事件条件下,实时抓取物联网多网页动态数据的目的,并且响应速度快、准确率高、可扩展性好,不会出现数据遗漏现象。

Description

基于Watir的物联网Web事件处理方法
技术领域
本发明涉及物联网技术领域,特别是涉及物联网中事件的处理方法。
背景技术
物联网(Internet Of Things)泛指“物物相连的互联网”,它的核心和基础是互联网,是在互联网基础上延伸和扩展的网络,其用户端延伸和扩展到了任何物品与物品之间。物联网即是把任何物品与互联网相连接,进行信息交换和通信。
物联网的体系架构可以分为三层,感知层、网络层以及应用层。其中,感知层为最底层,主要实现对物理世界的智能感知识别、信息采集处理和自动控制,并由通信模块将物理实体连接到网络层和应用层。网络层为中间层,由各种私有网络、互联网、有线和无线通信网、网络管理系统和云计算平台等组成,负责传递和处理感知层获取的信息;各种物联网应用借助无线、有线手段接入网络,在网络互联支持下提供信息的传递、共享和服务的支撑。应用层为最上层,应用层即终端处理层,它是输入输出控制终端,包括计算机、 手机等服务器终端,实现对信息的分析、存储、挖掘处理等应用。
物联网包含了海量的实体,这些实体每时每刻都会有新的状态,例如,通过传感器感知室内各种状况、温度、湿度、还有光照程度等,感知道路的实时拥堵信息等。要实现对物联网的智能控制以及扩展对物联网的应用,就必须对这些海量实体的实时信息进行数据分析,从这些海量实体返回的实时状态数据中搜寻得到有用的信息。在现阶段的物联网传感器的数据获取和处理上,基于Web的物联网数据管理获得广泛应用。基于Web的物联网系统可以通过嵌入式设备将日常设备和装置上信息全部集成到Web 实现事物的互联,再对智能物体进行访问,传输协议可采用现有的已经被很好地理解和接受的标准,例如URI、HTTP、REST等。
事件是指在一个流程中,当达到某种状况或条件而触发某种行为的消息或请求,通常可理解为现实世界中某种状态的改变。物联网事件处理的主要工作是检测事件,即根据已知给定的规则和模式,从基于分散信息系统的大量信息中检测并提取被定义好的事件。对物联网海量数据,找出用户感兴趣的数据、过滤掉其他的冗余数据尤为关键,用户不关心传感器产生的所有数据,只关心对他们有用的数据,比如在“所有温度传感器产生的温度数值中,用户只对最高的温度值产生兴趣,看有没有超过设定的阈值”,“在对智能设备的传感器上,传感器的数据包括温度、湿度和光照,在不同的场合只需要其中的温度或者其他数据”等。
目前的网络爬虫或者页面采集工具无法实现动态数据的实时抓取。在对事件的处理上,主要是应用于静态网页,并且没有同时加载添加事件条件下的多物联网页面。 其缺点主要表现在以下几个方面:
1)大多事件处理的数据来源都是数据库,没有从网页实时地获取数据后添加事件处理。国外研究中具有代表性的复杂事件处理方法及原型系统有SASE、ESPER、RCEDA等,这些原型系统可以用于RFID、GPS和传感器网络等数据上的复杂事件处理,没有针对物联网Web网页的事件处理技术。
2)事件处理在主动数据库中已经做了大量的研究,常用的方法都是基于固定的数据结构,如树、图、自动机或Petri网,没有一种方法是针对半结构化的物联网网页提出的事件处理,更没有方法提出对多个物联网页面同时进行实时事件处理。在对动态页面的处理上,没有方法通过设定时间来循环的抓取网页进行事件条件下的解析。
3)对Web网页的事件研究主要是针对静态网页,研究内容主要包括消除冗余、有效的整合事件信息、提高事件的准确性等。
4)现有的动态网页的解析机制无法满足物联网页面数据获取的实时性,客户端与服务器交互的过程中客户端发送请求、服务器端回应这个过程耗时长,且不稳定,不能实现动态实时抓取,同时容易出现数据遗漏现象。
发明内容
本发明针对现有技术的不足,提供一种响应速度快、能够实时准确抓取物联网多网页动态数据的物联网事件处理方法。
为解决上述技术问题,本发明所采取的技术方案如下。
基于Watir的物联网Web事件处理方法,首先创建物联网页面,对终端节点的属性描述到网页上并将网页部署到服务器上,采用自动化测试框架Watir方法加载到物联网动态页面,结合Web页面的结构和内容获取包含终端节点信息的HTML文档并对HTML文档进行解析,对解析后的数据进行预处理后添加事件,将某种条件下的事件数据保存,并显示到页面上。
上述基于Watir的物联网Web事件处理方法,具体包括以下步骤:
A.基于Web的物联网页面创建;
A1.创建包含传感器和无线收发模块的Zigbee网络;
A2.Zigbee网络中对终端节点的属性描述到网页上并将网页部署到服务器上;
B.采用自动化测试框架Watir方法加载到物联网动态页面;
C.获取包含终端节点信息的HTML文档;
D.解析HTML文档,获取页面文本信息;
E.对解析后的数据进行预处理,细化数据内容;
F.给预处理后的数据添加事件;
G.存储事件结果数据;
H.循环执行步骤B~G;
I.将数据显示到页面上。
上述基于Watir的物联网Web事件处理方法,步骤A1的具体方法为:采用两个温度传感器DS18B20与两个无线收发模块CC2530相接作为终端节点,第三个无线收发模块CC2530作为协调器,在 MSSTATE_LRWPAN协议栈的基础上进行应用开发,组建Zigbee网络。
上述基于Watir的物联网Web事件处理方法,步骤A2的具体方法为:将温度传感器描述为静态属性和动态属性,并将两种属性描述到Web网页并部署到不同的服务器上,其中静态数据发布到Apache服务器上,动态数据发布到Jetty服务器上;然后通过链接地址,将两个服务器上的网页连接起来。
上述基于Watir的物联网Web事件处理方法,步骤D中通过“Nokogiri::HTML.parse”方法对获得的HTML文档进行解析,采用CSS Selector 来找页面上所需内容的节点,用ID选择器(#id)取回该时刻的页面文本信息。
上述基于Watir的物联网Web事件处理方法,步骤E中通过利用Ruby的Araay类来创建三个数组以及Ruby的Split方法进行数据的预处理。
上述基于Watir的物联网Web事件处理方法,步骤F添加事件的方法包括极值的查找和阈值的添加;其中,极值的查找对象是同种传感器,找出在同一时刻下的最大值或最小值;阈值的添加对象为每个传感器,通过给每个传感器都添加阈值,找出阈值范围内的数据。
上述基于Watir的物联网Web事件处理方法,步骤H使用rufus-scheduler模块来指定时间执行循环。
由于采用了以上技术方案,本发明所取得的技术进步如下。
本发明从客户端出发,将物联网Web页面放到服务器上,对于任何一个能连网的客户端,通过基于Watir的自动化测试框架,都可以获取事件条件下的物联网页面实时信息并存储,实现了实时抓取事件条件下的物联网多网页动态数据的目的,并且响应速度快、准确率高、可扩展性好,不会出现数据遗漏现象。
附图说明
图1为本发明的总体框架图;
图2为本发明的流程图。
具体实施方式
下面将结合附图和具体实施例对本发明进行进一步详细说明。
本发明针对物联网Web应用,设计了基于Watir的物联网Web事件处理系统框架,框架结构如图1所示,系统框架包括Zigbee网络节点、物联网、Apache服务器、Jetty服务器以及客户端,Zigbee网络节点包含温度传感器、无线收发模块CC2530,物联网包含感知层、网络层以及应用层。Zigbee网络节点采集数据信息后上传给物联网网页,物联网网页分别部署到Apache服务器和Jetty服务器,Apache服务器用于展示静态网页,Jetty服务器用于展示动态网页,客户端对Apache服务器和Jetty服务器进行访问,并采用自动化测试框架Watir方法加载事件并获取事件条件下的数据。
系统框架的搭建过程为:首先创建物联网Web页面,用微数据来描述每一个传感器的静态属性,用Js文件描述动态属性,并将网页在服务器上进行部署,然后用Web自动化测试框架Watir,在添加事件条件后提取关键和有效的数据并保存。
本发明主要工作包括基于Web的物联网页面创建、服务器部署和Watir加载与事件添加几个方面,具体过程为:首先创建物联网页面,将静态属性保存到Apache服务器,动态属性保存到Jetty服务器上,采用自动化测试框架Watir方法加载到物联网动态页面,结合Web页面的结构和内容获取包含终端节点信息的HTML文档并对HTML文档进行解析,对解析后的数据进行预处理后添加事件,将某种条件下的事件数据保存,并显示到页面上,以满足应用需要。
本发明的流程图如图2所示,具体操作包括以下步骤。
A.基于Web的物联网页面创建
A1.创建Zigbee网络
Zigbee技术是常用的一种连接物理实体的通信技术,它基于IEEE802.15.4无线标准研制开发,用于短距离、低速率无线网络通信;其突出优点是应用简单,工作频段灵活,低功耗,低成本,高可靠性,具有自组网和自恢复能力等。
本发明采用两个温度传感器DS18B20与两个无线收发模块CC2530相接作为终端节点,另外一个无线收发模块CC2530充当协调器,在 MSSTATE_LRWPAN协议栈的基础上进行应用开发,组建一个Zigbee网络,实现无线组网。
无线收发模块CC2530 是德州仪器(TI)目前推出的完整的用于2.4GHzIEEE802.15.4/RF4CE/ZigBee 的第二代片上系统解决方案。CC2530在单个芯片上集成了IEEE802.15.4标准2.4GHz频段的RF无线电收发机,具有优良的无线接收灵敏度和抗干扰性。本发明利用无线收发模块CC2530的射频功能创建zigbee网络。
温度传感器DS18B20是美国 DALLAS半导体公司的单总线智能型数字温度传感器,它通过单总线与处理器进行数据传输,主要由64位ROM、温度敏感元件、非易失性温度告警触发器TH和TL、 配置寄存器组成。温度传感器DS18B20用来获取环境的温度值。
本发明将两个温度传感器分别部署到室内和窗台,传感器的地理特性描述为传感器所处的位置。
本发明的终端节点用于采集温度信息,协调器将接收到的温度信息通过串口发送给PC计算机,即将Zigbee网络的传感器数据通过串口显示到网页上。
A2. 对Zigbee网络中对终端节点的属性描述到网页上并将网页部署到服务器上
本发明对传感器的描述分为两类:对静态属性的描述和动态属性的描述。静态属性包括传感器的名称、类型、时间特性等,动态属性包括传感器的动态数据。将两种属性描述到Web网页并部署到服务器上,然后,通过静态网页上的链接地址,链接到动态页面。
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,支持多种方式的HTTP认证。本发明中将静态数据发布到Apache服务器上。
Jetty是一种轻量级Web服务器,Jetty 是一个完全由Java实现的、开源的HTTP服务器和 Servlet容器,其运行速度快、更灵活,体现在其可插拔性和可扩展性,更易于开发者对Jetty本身进行二次开发,定制一个适合自身需求的Web Server。Jetty可以用来作为一个传统的Web 服务器,也可以作为一个动态的内容服务器,并且Jetty 可以非常容易的嵌入到Java 应用程序当中。本发明中将动态数据发布到Jetty服务器上。
本发明用于测试的两个服务器在一台计算机上,所以两个网址的端口号不同。本实施例中,Jetty服务器的设定端口号为80,Apache服务器的端口号为8080,访问地址为均为本地Ip。
在本发明中,通过微数据描述传感器的静态页面,微数据是创建自定义元数据片段,并嵌入到HTML网页里的方法。微数据API通过添加自定义的语义词库来扩展HTML。该技术是一种将机器可读的自定义语义属性嵌入到HTML文档里的标准化途径。微数据表现为可被嵌套的名值对(name-value pairs)。这些名值对的组合被称为条目,每个名值对被称为一个成员属性。属性itemtype描述定义条目词库名字的URL,Itemid描述条目的全局标识符,Itemprop描述条目的对象属性定义,Itemref拥有一个Itemscope属性,Itemscope属性主要描述一个布尔型的属性,可以创建一组名为条目的名值对。
本发明使用Apache2.2将静态网页部署到服务器上。首先,通过Serverroot命令设置保存服务器文件的目录,本实例的保存路径为ServerRoot "D:/Apache Software Foundation/Apache2.2"。其次,配置文件所在位置为D:\Apache Software Foundation\Apache2.2\conf,主要的配置修改如下: 修改Listen为211.82.237.78:8080,其中211.82.237.78为本地IP地址,服务端口号为8080;修改默认的自动运行文件名称,修改dir_module模块,将微数据编写的静态网页index.html保存到dir_module模块中。通过对Apache的部署,实现对网页的访问。
在本发明在对动态页面的处理上,使用JSP编写动态网页,前台数据的展示采用的是JSP进行显示,脚本语言和页面布局采用的是Extjs进行操作。Extjs是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端ajax框架。
JSP全名为Java Server Pages,其根本是一个简化的Servlet设计。JSP的概念与微软公司的ASP非常相似,都是在普通HTML文件中内嵌程序语句,避免了开发Servlet时繁琐的HTML输出,可以更好地格式化输出效果。JSP 技术可以让Web 开发人员和设计人员非常容易的创建和维护动态网页。
对脚本代码的编写中,具体内容如下:首先设置页面的布局,页面的布局包括panel、button和label,首先定义一个Panel,设置Panel在浏览器中的显示方式,Panel的描述包括Title、Width和Maigin,其中Maigin是外边距,通过在items组件中添加两个button和label来显示传感器数据。在button按钮的设置中,主要是添加button的点击事件,用来获取数值。在handler的处理上,添加自定义的task事件,利用SetText方法将数据显示到label上。
在对串口数据的获取过程中,通过定义serialPort类来确定串口设置,包括数据位、校验位和停止位等,用inputStream = serialPort.getInputStream()来读取串口的数据流;inputStream的read方法读取数据流并赋值到readBuffer,通过对每个字节的数据处理,显示出原来的数值,具体处理为每个字节减去0的ASCII码值并处理对应的系数,将值赋值给两个double类型的变量,具体实现如下:
wendu=(((int)readBuffer[2]-48)*10+(int)readBuffer[3]-48+((int)readBuffer[5]-48)/10.0+((int)readBuffer[6]-48)/100.0);
wendu1=(((int)readBuffer[10]-48)*10+(int)readBuffer[11]-48+((int)readBuffer[13]-48)/10.0+((int)readBuffer[14]-48)/100.0);
由于在数值的计算和处理中,计算出的结果小数点位数太多,需要进行后续的数据处理。首先通过valueOf 方法将double类型的变量转换为String类型,通过if(data.contains(".") && data.length()>5)判断,当数值长度超过5位数时,用substring方法截取字符串,通过 data.substring(0,data.indexOf(".")+3)只截取小数点后两位;将截取后的数据用renderJson对数据进行格式转换,render 系列方法将渲染不同类型的视图并返回给客户端。Json是一种将数据从服务器传递到客户端的更为有效的办法,转换成Json格式的,值为light和light1,传递给各自的label标签。在JSP文件中,调用JS文件,将Json变量的数据显示出来。其中,在task事件中,在时间的处理上,用了interval方法,设定interval :3000,每3秒刷新一次数据。
本发明通过将两种属性分开部署到两个服务器上,可以方便查看两种属性的状态值,还可以方便的修改其中一种属性;同时,当传感器的数量增加时,两个属性分开部署可以减少对服务器的压力。
B.采用自动化测试框架Watir方法加载到物联网动态页面
本发明用Watir来加载传感器页面并获取数值,根据需要可实现按一定时间间隔连续获取,如每30秒完成一次获取。该方法实时性高,连续性好,能满足各个领域对物联网实时数据的需求。
Watir是一个用于网页自动化测试的开源工具,在编写脚本过程中,主要通过是使用Watir::IE的一个实例化对象IE来获得页面上的各种元素,Watir::IE 封装的是一个当前页面的DOM Tree,而不是页面源代码,比如页面如果用Js动态产生一个元素,在Watir中仍然可以访问。Watir是用Ruby语言实现的,Ruby是一种跨平台、面向对象的动态类型编程语言。Ruby语言自然简洁,却依然拥有强大的数据分析和处理能力,主要应用于网络开发语言、数据处理和数据挖掘等方面。
采用自动化测试框架Watir方法加载到动态页面的过程具体为:首先,通过“ie = Watir::Browser.new”创建一个浏览器对象实例,从而来模拟浏览器的操作。其次,通过“ie.goto('http://211.82.237.78/')”,采用跳转方式打开预期的页面,同时用span标签下的button按钮来模拟点击按钮,用ie.span(:id, 'button-1011-btnInnerEl').click和ie.span(:id, 'button-1012-btnInnerEl').click点击button让其显示动态的数据。
C.获取包含终端节点信息的HTML文档
在完成Watir加载定位之后,通过“ie.html”方法获取框架下的HTML文档,HTML文档中包含Zigbee网络中终端节点的所有信息。网页的部分HTML文档如下:
D.解析HTML文档
Ruby的插件Nokogiri是一种HTML、XML、SAX阅读解析器,许多关于Ruby解析XML、HTML的插件有很多,其中最出名的的有Hpricot和Nokogiri。Nokogiri的速度比目前应用广泛的Hpricot要快许多。经过Benchmark测试表明,Nokogiri在加载XML文档的速度是Hpricot的7倍,在XPATH搜索的速度是Hpricot的5倍,而在CSS选择器的搜索上是Hpricot的1.62倍。因此Nokogiri被认为有可能取代Hpricot的新一代Ruby的解析库。
本发明中,Nokogiri通过“Nokogiri::HTML.parse”方法对获得的HTML文档进行解析。Nokogiri 提供了 XPath 及CSS Selector方式来寻找文档里的节点,但是CSS locator比XPath locator速度快,并且CSS Selector能非常精准的定位到测试的Elements。CSS Selector可以粗略分成几类基本的类型:ID选择器(#id)、Class选择器(.class)、类型(type)选择器(p)等。这些都是单一的选择器,可以在应用中把它们组合起来,如:div#id,div#p等。本发明采用CSS Selector 来查找页面上所需内容的节点,用ID选择器(#id)取回该时刻的页面文本信息,解析后的数据内容为数据预处理做准备。
E. 对解析后的数据进行预处理
本发明首先将解析后的数据进行预处理,利用Ruby的Araay类来创建三个数组,通过doc.css('#light').text[i]和doc.css('#light1').text[j] (其中i和j为数字在light和light1标签内对应的下标),将解析后的数字逐位保存到数组中。同时,将解析出标签内的完整内容也都保存到数组中wendu = [doc.css('#light').text,doc.css('#light1').text ]。利用Ruby的Split方法,通过“:”来分割Label标签内的内容,将数字部分通过wendu[0].split(":")[1]整体取出并赋值给一个字符串类型的变量。
本发明通过利用Ruby语言对网页进行解析,将解析后的文档进行进一步的数据处理,将数字和内容分的更细、更精确,为后续添加事件处理做好准备工作。
F.给预处理后的数据添加事件
事件方法包括极值的查找和阈值的添加,其中,极值的查找对象是同种传感器,找出在同一时刻下的最大值或最小值;阈值的添加对象为每个传感器,其中,阈值分为最大阈值和区间阈值,通过给每个传感器都添加阈值,找出阈值范围内的数据。对事件的处理过程如下:
F1.对最大值的处理,由于两个温度传感器都在一个环境中,数值相差不是很大,故本发明将两个传感器的温度值通过逐位作比较,找出最大值。具体的实现过程为:首先两个传感器的最高位作比较,如果最高位大小不一样,跳出循环,将最高位大的传感器数值输出,如果最高位相同,比较第二位的大小,找出最大值,依次按照这种规则作比较,直到找出最大值。在最小值的查找过程中,应用的方法类似于最大值的查找。
F2.对温度的阈值处理,分为上限阈值和区间阈值,在本发明中阈值的添加均为整数。 
F21.对上限阈值的处理,设定上限阈值为32°C,由于温度传感器的部署在室内,数值为两位数且变化不大,本发明使用逐位法与阈值作比较,用to_i方法将解析后的数字转换为整数。首先与阈值第一位作比较,如果小于第一位,则将数据显示出来。如果等于第一位,则继续比较第二位,如果小于第二位,将数据显示出来,否则用 “超出阈值”字样来表示,具体的实现使用条件判断语句,将两个条件通过或连接起来,条件为:shuzi[0].to_i<3||(shuzi[0].to_i=3&&shuzi[1].to_i<2)。
F22.对区间阈值的处理,设定阈值范围为24°C到30°C。通过Ruby的区间Range方法来添加区间范围,使用“…”表示一个半闭半开的区间,用to_i方法处理数字,截取小数点后的数字,通过if((24…30) === str.to_i )添加阈值区间。当数值在此范围时显示数据,不在此范围是显示“超出阈值”字样。
在后续的扩展中,当网页上有多个传感器的数据时,可以给每个传感器都设定相应的阈值。本发明通过给预处理后的数据添加事件,给同种传感器找极值,给每个传感器添加阈值,能够高效、实时、准确的获取数据。
G.存储事件结果数据
本发明通过Ruby中的文件操作来存储数据,File类是IO类的子类,本发明通过File类创建文档,用来存储数据。即通过“File.new("d.txt","w")”方法实现创建txt文档,其中‘w’意思是表示以写入的方式打开文件,d为文档名称,在本发明中,文档名称为filewendu。通过 file.puts方法将获取的数据保存到filewendu.txt中。同样可以创建几个文件实例,经过事件处理后的数据,可以分开保存并呈现给用户。
H.循环执行
Rufus-scheduler 是Ruby的一种可定时插件,可以让程序在指定的时间内运行。
本发明使用rufus-scheduler模块来指定时间执行程序,通过scheduler.every '10s' 设定时间,每10秒执行步骤B~G,更新filewendu.txt中的数据,保证数据是最新的。
I.将数据显示到页面上
本发明将数据保存到文本当中,通过本地的网页调用,将结果显示到网页上。同时本发明也可以将物联网事件处理结束后的实时实体数据链接并存入数据库,能满足物联网海量数据量的要求,同时也易于后续对于数据处理分析工作的进行。
Watir处理多个添加事件条件下的物联网页面实验
为了说明本发明提出方法的有效性,设计了一组实验,实验中需要的实验环境和实验内容如表1所示,客户端的配置与相关应用软件如表2所示。
表1
表2
    实验过程主要分为三步: Watir对单个网页在事件条件下的处理,Watir对同一平台两个网页事件条件下的处理,Watir对不同平台多网页事件条件下的处理。具体实验过程如下:
首先,Watir对单个网页的数据处理,实验对象为
本次实验中,循环周期设为10秒,实验中使用Ruby的Time类来确定Watir加载和解析需要的时间,通过Time.now方法,直接获取当前的时间,在程序的开始和结束加上时间戳,该时间可以精确到秒,通过两个时间的差值来确定加载并解析的时间在2秒左右。其中,通过Time类的to_f方法,在数据解析前后加上时间戳,可确定解析时间大概在6毫秒左右。在准确率的研究上,连续10次抓取页面数据,数据都能准确的保存,准确率达到100%。
其次,Watir对同一平台的两个网页处理:实验对象为
实验中使用本地的Watir框架同时加载同一平台的两个页面并解析网页内容,循环周期设为10秒,将两个网页的结果保存到一个文本中;同样,通过添加前后的时间戳确定运行时间,在5秒的时间内加载并解析完成两个网页,其中,通过Time类的to_f方法,在数据解析前后加上时间戳,解析的时间大概在10毫秒左右。而且在连续抓取10次的情况下,准确性达到100%。
最后,Watir对不同平台的三个网页处理:实验对象为
在本次的实验中,循环周期设为10秒,连续抓取十次,加载并解析三个网页,通过添加时间戳,确定对三个网页的加载并解析完成大约需要7秒。其中,通过Time类的to_f方法,在数据解析前后加上时间戳,解析的时间大概在12毫秒左右。在准确性的研究上,在十次中都能抓取到正确的数据,准确性为100%。
由以上实验看出,基于Watir的物联网事件获取方法能按照预先的设定的时间连续抓取以保证获取最新的数据。在同一客户端对三个系统的由少到多逐次测试,随着同时加载网页数量增加,加载并解析的时间也会随之上升,但经测试目前多数计算机终端能在几秒内完成,且准确率一直保持的很稳定,可以100%完成,满足对物联网Web网页实时性事件处理的要求。

Claims (8)

1.一种基于Watir的物联网Web事件处理方法,其特征在于:首先创建物联网页面,对终端节点的属性描述到网页上并将网页部署到服务器上,采用自动化测试框架Watir方法加载到物联网动态页面,结合Web页面的结构和内容获取包含终端节点信息的HTML文档并对HTML文档进行解析,对解析后的数据进行预处理后添加事件,将某种条件下的事件数据保存,并将结果数据显示到页面上。
2.根据权利要求1所述的基于Watir的物联网Web事件处理方法,其特征在于,具体操作按以下步骤进行:
A.创建基于Web的物联网页面;
A1.创建包含传感器和无线收发模块的Zigbee网络;
A2.Zigbee网络中对终端节点的属性描述到网页上并将网页部署到服务器上;
B.采用自动化测试框架Watir方法加载到物联网动态页面;
C.获取包含终端节点信息的HTML文档;
D.解析HTML文档,获取页面文本信息;
E.对解析后的数据进行预处理,细化数据内容;
F.给预处理后的数据添加事件;
G.存储事件结果数据;
H.循环执行步骤B~G;
I.将结果数据显示到页面上。
3.根据权利要求2所述的基于Watir的物联网Web事件处理方法,其特征在于,步骤A1的具体方法为:采用两个温度传感器DS18B20与两个无线收发模块CC2530相接作为终端节点,第三个无线收发模块CC2530作为协调器,在 MSSTATE_LRWPAN协议栈的基础上进行应用开发,组建Zigbee网络。
4.根据权利要求3所述的基于Watir的物联网Web事件处理方法,其特征在于,步骤A2的具体方法为:将温度传感器描述为静态属性和动态属性,并将两种属性描述到Web网页并部署到不同的服务器上,其中静态数据发布到Apache服务器上,动态数据发布到Jetty服务器上;然后通过链接地址,将两个服务器上的网页连接起来。
5.根据权利要求4所述的基于Watir的物联网Web事件处理方法,其特征在于,步骤D中通过“Nokogiri::HTML.parse”方法对获得的HTML文档进行解析,采用CSS Selector 来找页面上所需内容的节点,用ID选择器(#id)取回该时刻的页面文本信息。
6.根据权利要求5所述的基于Watir的物联网Web事件处理方法,其特征在于,步骤E中通过利用Ruby的Araay类来创建三个数组以及Ruby的Split方法进行数据的预处理。
7.根据权利要求6所述的基于Watir的物联网Web事件处理方法,其特征在于,步骤F添加事件的方法包括极值的查找和阈值的添加;其中,极值的查找对象是同种传感器,找出在同一时刻下的最大值或最小值;阈值的添加对象为每个传感器,通过给每个传感器都添加阈值,找出阈值范围内的数据。
8.根据权利要求7所述的基于Watir的物联网Web事件处理方法,其特征在于,步骤H使用rufus-scheduler模块来指定时间执行循环。
CN201510074748.0A 2015-02-12 2015-02-12 基于Watir的物联网Web事件处理方法 Expired - Fee Related CN104615748B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510074748.0A CN104615748B (zh) 2015-02-12 2015-02-12 基于Watir的物联网Web事件处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510074748.0A CN104615748B (zh) 2015-02-12 2015-02-12 基于Watir的物联网Web事件处理方法

Publications (2)

Publication Number Publication Date
CN104615748A true CN104615748A (zh) 2015-05-13
CN104615748B CN104615748B (zh) 2018-02-27

Family

ID=53150190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510074748.0A Expired - Fee Related CN104615748B (zh) 2015-02-12 2015-02-12 基于Watir的物联网Web事件处理方法

Country Status (1)

Country Link
CN (1) CN104615748B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326451A (zh) * 2016-08-26 2017-01-11 武汉大学 一种基于视觉特征提取的网页传感信息块判决方法
CN107015839A (zh) * 2016-09-27 2017-08-04 阿里巴巴集团控股有限公司 一种实现前端事件代理的方法及装置
CN107197443A (zh) * 2017-06-21 2017-09-22 深圳市盛路物联通讯技术有限公司 一种基于物联网的数据传输控制方法及系统
CN107733694A (zh) * 2017-09-25 2018-02-23 苏州耕耘无忧物联科技有限公司 面向物联网实时数据的自动分析方法
CN108804102A (zh) * 2018-05-24 2018-11-13 武汉斗鱼网络科技有限公司 直播间界面样式的扩展方法及系统、服务器及存储介质
CN108874371A (zh) * 2018-05-24 2018-11-23 武汉斗鱼网络科技有限公司 直播间样式的扩展方法及系统、服务器及存储介质
CN110647584A (zh) * 2019-09-23 2020-01-03 青岛聚好联科技有限公司 一种物联网平台文档数据的管理方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020116548A1 (en) * 2001-02-21 2002-08-22 Fridolin Feist Process for adjusting an operating interface belonging to process devices with an internet capability, along with an arrangement exhibiting such an operating interface
CN103092936A (zh) * 2013-01-08 2013-05-08 华北电力大学(保定) 一种物联网动态页面实时信息采集方法
CN202931390U (zh) * 2012-11-29 2013-05-08 上海理工大学 一种基于嵌入式Linux 的家庭物联网监控系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020116548A1 (en) * 2001-02-21 2002-08-22 Fridolin Feist Process for adjusting an operating interface belonging to process devices with an internet capability, along with an arrangement exhibiting such an operating interface
CN202931390U (zh) * 2012-11-29 2013-05-08 上海理工大学 一种基于嵌入式Linux 的家庭物联网监控系统
CN103092936A (zh) * 2013-01-08 2013-05-08 华北电力大学(保定) 一种物联网动态页面实时信息采集方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张明月: "网页设计与制作研究", 《邯郸职业技术学院学报》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326451A (zh) * 2016-08-26 2017-01-11 武汉大学 一种基于视觉特征提取的网页传感信息块判决方法
CN106326451B (zh) * 2016-08-26 2019-11-08 武汉大学 一种基于视觉特征提取的网页传感信息块判决方法
CN107015839A (zh) * 2016-09-27 2017-08-04 阿里巴巴集团控股有限公司 一种实现前端事件代理的方法及装置
CN107197443A (zh) * 2017-06-21 2017-09-22 深圳市盛路物联通讯技术有限公司 一种基于物联网的数据传输控制方法及系统
CN107197443B (zh) * 2017-06-21 2020-09-25 深圳市盛路物联通讯技术有限公司 一种基于物联网的数据传输控制方法及系统
CN107733694A (zh) * 2017-09-25 2018-02-23 苏州耕耘无忧物联科技有限公司 面向物联网实时数据的自动分析方法
CN108804102A (zh) * 2018-05-24 2018-11-13 武汉斗鱼网络科技有限公司 直播间界面样式的扩展方法及系统、服务器及存储介质
CN108874371A (zh) * 2018-05-24 2018-11-23 武汉斗鱼网络科技有限公司 直播间样式的扩展方法及系统、服务器及存储介质
CN108874371B (zh) * 2018-05-24 2022-02-22 武汉斗鱼网络科技有限公司 直播间样式的扩展方法及系统、服务器及存储介质
CN108804102B (zh) * 2018-05-24 2022-02-22 武汉斗鱼网络科技有限公司 直播间界面样式的扩展方法及系统、服务器及存储介质
CN110647584A (zh) * 2019-09-23 2020-01-03 青岛聚好联科技有限公司 一种物联网平台文档数据的管理方法及装置

Also Published As

Publication number Publication date
CN104615748B (zh) 2018-02-27

Similar Documents

Publication Publication Date Title
CN104615748A (zh) 基于Watir的物联网Web事件处理方法
CN102597993B (zh) 利用统一资源标识符管理应用状态信息
US20030040887A1 (en) System and process for constructing and analyzing profiles for an application
CN101561802A (zh) 网页结构化数据提取方法与系统
CN109684607B (zh) Json数据解析方法、装置、计算机设备和存储介质
US9298850B2 (en) System and method for exclusion of irrelevant data from a DOM equivalence
CN103092936B (zh) 一种物联网动态页面实时信息采集方法
CN103443786A (zh) 识别网络浏览器中的并行布局的独立任务的机器学习方法
CN103714115A (zh) 一种网页内容的加载方法和装置
CN104881608A (zh) 一种基于模拟浏览器行为的xss漏洞检测方法
CN104881607A (zh) 一种基于模拟浏览器行为的xss漏洞检测系统
US20210064453A1 (en) Automated application programming interface (api) specification construction
CN104063401A (zh) 一种网页样式地址合并的方法和装置
CN101763432A (zh) 一种轻量级网页动态视图快速构建方法
CN106294885A (zh) 一种面向异构网页的数据收集与标注方法
CN103345532A (zh) 一种网页信息抽取方法及装置
CN110222251A (zh) 一种基于网页分割和搜索算法的服务包装方法
US20140052851A1 (en) Systems and methods for discovering sources of online content
CN103853717A (zh) 网络爬虫
CN113849718A (zh) 互联网烟草科技情报信息自动采集装置、方法与存储介质
CN105930385A (zh) 一种数据爬取方法及系统
CN104156458A (zh) 一种信息的提取方法及装置
CN110719344A (zh) 域名获取方法、装置、电子设备及存储介质
CN104063506A (zh) 重复网页识别方法和装置
Panum et al. Kraaler: A user-perspective web crawler

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180227

Termination date: 20220212

CF01 Termination of patent right due to non-payment of annual fee