基于线性规划的传感网数据实时接入与优化 | ![]() |
随着传感网广泛布设,大量传感器依据特定的采样频率及传输规则,不断地向数据接收端推送采集数据,从而形成海量异构数据流。
传感网数据流的异构性会造成接入系统获取数据困难,其动态性则会导致接入系统可扩展性差。此外,海量性、高并发性会导致传感网数据接入端并发压力大,计算资源消耗高[1, 2]。目前,传感网数据流接入的精细控制与高效管理方面的研究还有所欠缺。
顾及传感网数据流的特点[3-6],本文设计了基于多线程技术实现的接入系统,同时建立线性规划模型对传感网数据流的接入过程进行优化。基于线性规划的接入线程优化模型通过分析数据产生量与数据写入能力的大小关系,根据接入的数据量、传感器类型、接入时限等因素制定最优线程分配方案,保证了传感网数据的高效接入。
1 传感网数据接入系统设计 1.1 接入系统架构为了屏蔽底层传感器数据的物理差异,系统首先采用开放地理空间信息联盟(open geospatial consortium, OGC)对传感网数据进行封装。接入系统可通过传感器观测服务(sensor observation servic, SOS)注册多个传感器,并通过SOS获取传感器的描述信息及观测数值。传感器事件服务(sensor event service, SES)主要用于管理传感器观测消息的订阅与发送。接入系统后端为存储数据库,即传感网数据流的写入位置[7, 8]。
接入系统采用面向对象的方法设计,将数据接入过程抽象为数据元素及数据管道。数据元素对应传感器单次采集的数据,数据管道对应多个数据元素组成的有序队列。
1.2 数据元素接入系统中传感网数据是以数据元素为单位进行组织的,数据元素与传感器形成了一对一的关系。接入系统根据传感器类型将数据元素划分为不同类型:原位传感器数据、移动轨迹数据、图像数据及视频数据。一个数据元素对应一个接入操作,接入操作的数据源是OGC传感网标准服务,接入操作目的地是存储数据库。
接入系统向SOS进行数据请求,若请求成功,系统生成一个数据元素对象封装传感器数据。当数据元素被成功地从OGC服务端接入并写入数据库,就视为接入操作成功,数据元素对象随之被销毁。同一个传感器的采样值按照时间序列组织在一起,形成该传感器的采样数据序列,作为记录存放在数据库中。
1.3 数据管道接入系统将不同类型的数据元素分发到不同的数据管道中,数据管道将数据元素分发到多个线程之中。接入线程持续不断地把数据元素从SOS接入到数据库。系统规定同一个数据管道内的数据元素的传感器数据来源、类型必须相同,写入数据库位置也必须一致,分属于不同管道的传感器数据来源、类型可以是不同的。数据管道、线程、数据元素形成了1:n:m的映射关系,即1个数据管道有n个工作线程,m个数据元素平均分到n个工作线程中。数据管道、数据元素、接入线程关系如图 1所示。
![]() |
图 1 数据管道、数据元素、接入线程关系示意图 Figure 1 Sketch Map of Relationship Between Data Pipes, Data Elements and Transmission Threads |
2 基于线性规划的线程优化模型
对于接入系统而言,数据产生量是指在规定的接入时限内待接入的数据元素个数,数据写入能力则是指在规定的接入时限内能完成接入操作的数据元素个数。在接入过程中,主要面临两个问题:① 在规定时限内,若数据产生量小于数据库写入能力,如何利用最少线程数完成接入操作;② 在规定时限内,若数据产生量大于数据库写入能力,如何利用足够多线程数完成接入尽量多的数据元素。
2.1 数据管道接入的约束变量线性规划模型是利用一系列约束条件求出待解问题的最优解,通常表述形式为:
$ \min Z = f\left( x \right) $ | (1) |
$ {\rm{s}}{\rm{.t}}{\rm{.}}{g_i}\left( x \right) \le 0, i = 1, 2, \ldots, m $ | (2) |
式(1) 表示待求问题的最优解;式(2) 表示所求问题的约束条件,通常用一系列等式或不等式表达[9, 10]。对于接入系统的线程优化模型而言,约束变量主要包括:① 单个数据元素完成接入操作耗时t;② 数据管道的接入时限T,该参数由接入系统预先设定,每个管道的采样时限可能不一样;③ 每秒钟数据库最大的并发写入操作次数Pmax。
2.2 约束变量之间的关系由于单一数据管道内的数据元素类型相同,单一线程内的数据元素接入耗时t(单位ms)可近似地认为相同,每秒钟单个线程的数据为:
$ x = \left[{1000/t} \right] $ | (3) |
假设数据管道内共有y个线程,则每秒钟数据管道的数据写入能力为:
$ w = x \cdot y(w \le {P_{\max }}) $ | (4) |
在规定的时限T内,数据管道的数据写入能力为:
$ w = x \cdot y \cdot T(x \cdot y \le {P_{\max }}) $ | (5) |
假设有e个数据管道,yi表示i号管道的线程数,目标方程为:
$ {Y_{\min }} = \min \sum\limits_{i = 1}^e {{y_i}} $ | (6) |
约束方程为:
$ \sum\limits_{i = 1}^e {{x_i}} \cdot {y_i} \cdot {T_i} \ge N;{x_i} \cdot {y_i} \cdot {T_i} \ge {A_i} $ | (7) |
$ {x_i} \cdot {y_i} \le {P_{\max }} $ | (8) |
$ \sum\limits_{i = 1}^e {{x_i} \cdot {y_i} \le {P_{{\rm{max}}}}} $ | (9) |
式(7)~式(9) 中,i=1, 2, …, e;Ai表示i号数据管道中的数据产生量;Ti表示i号数据管道的接入时限,该参数由系统预先设定,每个管道的接入时限不一定相同;xi表示每秒钟i号数据管道中单个线程的数据库写入次数;N表示系统中数据元素总数。
约束方程中,式(7) 表示数据量限制,分别表示系统总的数据产生量小于数据写入能力,i号管道的数据产生量小于数据写入能力;式(8) 表示每秒钟单个数据管道的数据写入能力小于数据库的最高写入数;式(9) 表示数据库写入并发数限制,指的是每秒钟系统的数据写入能力小于数据库的最大写入数。
2.3.2 数据产生量大于数据写入能力在接入时限内,当数据产生量大于数据写入能力,则用maxP表示数据写入能力最大,即在接入时限内延迟的数据元素最少。设P表示总的数据写入能力,N表示所有的数据元素总数, 则约束方程为:
$ \sum\limits_{i = 1}^e {{x_i} \cdot {y_i} \cdot {T_i} = P} $ | (10) |
$ P \le N $ | (11) |
$ \sum\limits_{i = 1}^e {{x_i}} \cdot {y_i} \cdot {T_i} \le {A_i} $ | (12) |
$ {x_i} \cdot {y_i} \le {P_{\max }} $ | (13) |
$ \sum\limits_{i = 1}^e {{x_i} \cdot {y_i} \le {P_{\max }}} ,i = 1,2, \ldots .e $ | (14) |
式(10) 表示系统总的数据写入能力;式(11) 表示系统总的数据产生量大于数据写入能力;式(12) 表示i号管道的数据产生量大于数据写入能力;式(13) 表示每秒钟每个数据管道的数据写入能力小于数据库的最高写入数;式(14) 表示总的数据库并发限制。
3 实验与分析为了验证设计的接入系统的有效性和优化模型的正确性,本文模拟出数据产生量小于数据写入能力(场景1)、数据产生量大于数据写入能力(场景2) 两种接入场景,通过OGC的SOS发布传感网数据,利用本文设计的接入系统完成数据接入。接入系统利用4个数据管道接入传感器数据,分别代表4种数据元素,4个数据管道用Ci(i=1, 2, 3, 4) 表示,每个数据管道的数据产生量为Ai,ti表示i号管道的数据元素的接入耗时,接入时限Ti是系统预先设定的,数据库写入并发数限制Pmax=250。
3.1 模拟接入场景1本场景模拟出8 000个传感器,传感器共4种类型,每种类型的传感器数量为2 000,即每个数据管道的数据产生量Ai=2 000,如表 1所示。
表 1 模拟的接入场景1的参数 Table 1 Parameters of Simulated Ingestion Scene 1 |
![]() |
将数据代入约束条件式(7)~式(9),求得最优解Ymin=15,即线程数组合(y1,y2,y3,y4)为(4,3,1,7),数据管道的写入能力为(2 040,2 070,2 400,2 100),数据元素的接入并发数为247,比Pmax=250要小,如表 2所示。对比表 2中的劣解、有效解与最优解,其中劣解i与最优解相比,对应i号数据管道少一个线程;有效解i与最优解相比,对应i号数据管道多一个线程。
表 2 接入场景1的劣解、最优解、有效解 Table 2 Inferior, Optimal and Effective Solutions of Ingestion Scene 1 |
![]() |
从表 2与图 2可以看出,劣解1、劣解4虽然数据写入能力的理论值与实际值都达到了8 000,但是劣解1中数据管道的数据写入能力只有1 530,劣解4中数据管道的数据写入能力只有1 800,都低于设定的数据产生量2 000;劣解2、劣解3的数据写入能力理论值、实际值都小于8 000。而有效解不仅总的数据写入能力(理论值、实际值)比设定的数据产生量8 000要大,而且每个数据管道的数据写入能力要比设定的数据产生量要大。从图 2可以看出,受到数据库的限制,当并发数达到极限,即使增加线程,也无法提高系统的数据写入能力。
![]() |
图 2 劣解、最优解、有效解的比较(接入场景1) Figure 2 Comparison Between Inferior, Optimal and Effective Solutions in Ingestion Scene 1 |
3.2 模拟接入场景2
场景2模拟出12 000个传感器,传感器共4种类型,每种类型的传感器数量为3 000,即每个数据管道的数据产生量Ai=3 000,如表 3所示。
表 3 模拟的接入场景2的参数 Table 3 Parameters of Simulated Ingestion Scene 2 |
![]() |
将数据代入约束条件式(10)~式(14),求得最优解Pmax=8 700,从表 4与图 3可以看出,最优解的并发数(理论值、实际值)已经达到了最大。如图 3所示,所有劣解的并发数(理论值、实际值)比最优解都要小,因此劣解总的数据写入能力要比最优解要小。有效解的理论并发数虽然增加,但是实际并发数受到数据库的写入限制,所以实际并发数达到250、实际数据写入能力达到8 700就停止增加。因此,最优解的线程数不能无限的增加,增加过多接入线程不仅不会提高系统的写入能力,还会加大线程创建、切换、销毁开销,造成CPU负担过重。
![]() |
图 3 劣解、最优解、有效解的比较(接入场景2) Figure 3 Comparison Between Inferior, Optimal and Effective Solutions in Ingestion Scene 2 |
表 4 接入场景2的劣解、最优解、有效解 Table 4 Inferior, Optimal and Effective Solutions of Ingestion Scene 2 |
![]() |
4 结束语
本文提出了一种以线性规划模型为核心的传感网数据接入方法,通过线性规划模型提高了系统的线程利用率及运行效率。该方法后续研究包括:① 挖掘更多的约束条件,完善线性规划优化模型;② 采用其他优化模型对接入线程数进行优化(如粒子群算法、贪婪算法等);③ 对于特定时间关键型应用,针对不同类型数据制定不同优先级,保证最重要的数据最先被实时接入。
[1] | Bröring A, Echterhoff J, Jirka S, et al. New Generation Sensor Web Enablement[J]. Sensors, 2011, 11(3): 2 652–2 699 |
[2] | Lai Xiaochen, Liu Quanli, Wei Xin, et al. A Survey of Body Sensor Networks[J]. Sensors, 2013, 13(5): 5 406–5 447 DOI: 10.3390/s130505406 |
[3] |
周希, 薛广涛, 李明禄. SenSVD: 基于时空关联性的无线传感网数据传输整合[C]. 中韩传感器网络学术研讨会, 重庆, 2008 |
[4] | 丁治明, 高需. 面向物联网海量传感器采样数据管理的数据库集群系统框架[J]. 计算机学报, 2012, 35(6): 1 175–1 191 |
[5] | Tan L, Wang N. Future Internet: The Internet of Things[C]. International Conference on Advanced Computer Theory and Engineering, Piscataway, 2010 |
[6] | 陈耀龙, 王涌. 火电厂实时数据接入系统的实现[J]. 能源研究与利用, 2003, (2): 18–22 |
[7] | OGC. Sensor Observation Service.. http://www.opengeospatial.org/standards/sos |
[8] | 52°North. Web Notification Service.. http://52north.org/communities/sensorweb/wns/ |
[9] | Chandran B, Golden B, Wasil E. Linear Programming Models for Estimating Weights in the Analytic Hierarchy Process[J]. Computers and Operations Research, 2005, 32(9): 2 235–2 254 DOI: 10.1016/j.cor.2004.02.010 |
[10] | Guan Xuefeng, Cheng Bo, Song Aihong, et al. Modeling Users' Behavior for Testing the Performance of a Web Map Tile Service[J]. Transactions in GIS, 2014, 18(s1): 109–125 |