物联网的Ajax技术外文翻译资料

 2022-12-19 06:12

英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料


物联网的Ajax技术

摘要:物联网设备越来越多得出现在各种活动领域。与这些设备的交互主要是通过在固定设备和移动设备上运行的Web应用程序进行的。物联网设备的Web应用程序必须提供直观的动态信息,并允许与其交互。为了构建这些应用程序,使用了各种技术,包括支持动态数据加载的Ajax技术。

关键词:物联网;Ajax;HTML;XML

1介绍

物联网(Internet of Things)为组织打开了一扇前所未有的机遇之窗,为那些致力于提高其流程灵活性和数据能力的人创造了新的业务价值来源[1]。

在过去的三十年中,信息技术(IT)的发展改变了我们所生活的世界,产生了新的商业模式,并以全球消费者正在改变其消费方式的方式影响行业[4]。

作为一名技术主管,物联网有着相当大的潜力,能够为组织带来巨大的价值。就像移动应用程序是一种能动技术一样,物联网也带来了类似的价值[7]。

事实证明,物联网是当今世界各行业(包括医疗、运输和酒店业)高绩效的先决条件。尽管物联网在商业领域具有多个优势,但它同样有可能在运输和制造业等各个行业造成大规模破坏[8]。

虽然传统上在物联网网络设计中忽略了TCP,但当前的趋势表明,TCP将在物联网场景中得到广泛的部署[2]。

TCP面临的新挑战是物联网(IOT)。在这一主要的网络趋势中,预计数百亿连接到日常生活对象的廉价设备(如传感器、执行器等)将连接到互联网,以实现智能场景[2]。

逻辑上的下一步是使用物联网系统,其中元素更标准化、更易于使用,并与其他Web资源链接[3]。

物联网传感器节点使用互联网协议直接链接到服务器和用户[3]。

许多跨域应用程序还可以通过控制多个传感器、执行器和用户生成的数据,并在不同的上下文中进行互操作[5]。

互联网对象系统的设计与开发需要大量的技术,如遥感技术、智能识别技术等[6]。

为了更好地解释异构数据,越来越多的研究开始关注使机器能够智能地理解物联网数据的技术。在所有方法中,向物联网数据添加语义是最普遍的方法之一。语义网作为万维网的延伸,解决了异构信息之间的隔离问题,提供了对环境的更好理解。通过添加常规标记和通知,Somatization使机器能够理解和解释异构数据,并在很大程度上提示跨域交互[9]。

命名法:

IoT Internet of Things

IT Information Technology

TCP Transmission Control Protocol

AJAX Asynchronous JavaScript and XML

HTTP Hypertext Transfer Protocol

2 使用Ajax技术

本文提出了在物联网环境下使用Ajax技术。我们使用基于Ajax的Web应用程序与物联网设备交互,这些应用程序管理物联网设备收集的数据。

数据存储在服务器上客户机可以查询的数据库中。一个Web客户机将它显示在一个动态的网页中。

下面我们将分析使用Ajax技术的各种方法。我们考虑其他技术,如HTML、JavaScript和PHP,并研究两种表示数据的方法:文本格式和XML。下面提出的所有应用程序都依赖于相同的服务器客户机范式:服务器通过将数据存储到数据库中来管理物联网设备收集的数据,并响应通过Ajax发送的客户机连续请求。

2.1基于Ajax和HTML的应用程序

显示从物联网设备收集的信息需要两个应用程序:一个在服务器上,一个在客户机上。服务器应用程序通过查询底层数据库来响应客户机请求,以满足客户机的信息需求。客户机应用程序请求服务器获取最新信息。由于从物联网设备收集的数据是不断变化的,一个简单的一次性服务器请求是不够的。Ajax技术通过向服务器发出异步HTTP请求来解决这个问题,而无需重新加载客户机应用程序。

如上所述,让我们假设服务器应用程序只是查询数据库。

如果客户机发出一个请求,就会显示一个静态页面,显示在固定时间点捕获的信息。刷新显示的信息需要另一个HTTP请求。Ajax使客户机能够发出连续的异步请求,从而显示带有实时数据的动态页面。在客户端应用程序中,我们定义了id为“div_id”的lt;divgt;元素,并设置其大小:

lt;div id='div_id' height:70px;width:650pxgt;lt;/divgt;

接下来,我们定义一个XMLHttpRequest,并调用“open”、“send”和“responseText”方法,以便从服务器获取所需的信息:

xmlhttp = new XMLHttpRequest();

xmlhttp.open('GET', url, false);

xmlhhtp.send(null);

rx = xmlhttp.responseText;

此时,变量rx存储服务器返回的网页内容。剩下的唯一操作是将该内容放在lt;divgt;元素中,并显示在客户端:

function display_iot() {

div_id.innerHTML = rx;

setTimeout('display_iot()', 1000);

}

上面代码片段中的超时控制自动调用函数的频率。

图1 Ajax-HTML应用程序

2.2基于Ajax和JavaScript的应用程序

上面提出的基于Ajax和HTML的应用程序实现了显示物联网设备实时收集的数据所需的最低限度。但是,HTML功能有限。对于更复杂的应用程序,我们建议使用javascript。

服务器现在只返回从物联网设备收集的数据,而不是发送网页的HTML内容,例如文本或XML格式。客户端应用程序现在可以更灵活地显示使用javascript从服务器接收到的数据(图2(a))。假设服务器以文本格式发送数据,作为参数的逗号分隔列表:

'param_1,param_2,...,param_n'

与前一节中的应用程序类似,客户机通过Ajax进行重复请求。给定服务器的“rx”回复,下面是它如何处理传入数据:

data_iot = rx.split(',');

接下来,我们定义一个类,用“set-val”等方法表示一个虚拟仪器(“instr-virt”)。我们实例化一个“instr-virt-1”对象:

instr_virt_1 = new instr_virt('param_1, param_2 ,..., param_n');

为了显示所需的值“param_k”,我们执行以下方法:

function display_iot() {

xmlhttp.open('GET', url, false);

xmlhttp.send(null);

rx = xmlhttp.responseText;

data_iot = rx.split(',');

instr_virt_1.set_val(data_iot[k]);

setTimeout('display_iot()', 1000);

}

2.3基于Ajax和XML的应用程序

或者,对于文本格式,可以使用XML格式在服务器和客户机之间传输数据。XML是一种结构化格式,因此使大量数据更易于管理。

lt;? xml version='1.0'? gt;

lt; virt_i gt;

lt; width gt; w lt; /width gt;

lt; height gt; h lt; /height gt;

lt; sample gt; sample_nr lt; /sample gt;

lt; date gt; date lt; /date gt;

lt; val gt; value lt; /val gt;

lt; /virt_i gt;

lt; /xml gt;

客户机应用程序接收XML格式的数据,这不再是一个简单的值数组。以下是我们如何调整display_iot()方法:

function display_iot(){

xmlhttp.open('GET', url, false);

xmlhttp.send(null);

rx=xmlhttp.responseText;

instr_virt_1.set_val(

rx.getElementsByTagName('val')[0].childNodes[0].nodeValue;); setTimeout('display_iot()',1000);

}

2.4基于Ajax和PHP的应用程序

使用Ajax和Javascript构建的应用程序非常快,因为大多数处理都发生在客户机上,而服务器只查询数据库并发送结果。

但是,如果客户机资源有限,工作负载可以转移到服务器上。在这种情况下,服务器必须构建物联网的虚拟映像(图2(b))。客户机将重复调用以获取物联网的更新图像,只需显示即可。我们提出了一个服务器应用程序的PHP实现,它定义了一个类似的“instr-virt”类,像上面描述的相同API:

instr_virt_1=new instr_virt($img,'param_1,param_2,...,param_n') $instr_virt_1-gt;set_val('param_k')

一旦instr-virt类被实例化,我们就可以创建物联网的虚拟映像:

header('Content-type: image/png');

imagepng($img);

客户机应用程序将此图像包含在HTML标记中,不断将“src”属性更新为服务器提供的最新图像:

lt; img src='server_app.php' name='im_iot' gt;

下面是display_iot()函数的新实现方法:

function display_iot(){

im_iot.src = 'aplicatie_server.php';

setTimeout('display_iot()',1000);

}

图2(a)ajax-javascript应用程序;(b)ajax-php应用程序

2.5基于Ajax和Javascript的趋势应用程序

目前提出的应用程序只显示一个值,即从服务器接收到的最新值。然而,可能需要显示一段时间内值的演变(图3)。我们定义了一个名为“virt_trend”的新类,它使我们能够显示趋势而不是单个值。类的构造函数接受值列表,表示特定参数的时间线:

vals = new Array();

trend1 = new virt_trend('param_11, param_12, ... , param_1n');

trend1.set_vals(vals);

在上面的代码片段中,param_1K是时间步骤k时param_1的值。由于我们要存储k个最新元素的窗口,因此需要删除最旧的条目并将其替换为最新的:

function shift(param_k) {

for(i = 1; i lt; nrv; i ) {

vals[i - 1] = vals[i];

}

vals[nrv - 1] = param_k;

}

客户端显示从其启动时间开始的值。如果用户希望看到自物联网设备开始记录以来的整个趋势,服务器必须发送完整的值数组。客户机不再需要应用移位过程。

以下是display_iot()方法的实现:

function display_iot(){

xmlhttp.open('GET', url, false);

xmlhttp.send(null);

rx = xmlhttp.responseText;

data_iot = rx.split(',');

shift(data_io[k]);

trend1

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[19737],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。