APP下载

大数据时代计算机网络技术中人工智能的应用

2019-09-10陈潜

赤峰学院学报·自然科学版 2019年2期
关键词:计算机网络技术大数据时代人工智能

陈潜

摘要:随着计算机技术和通信技术日益发达,人工智能应运而生.计算机技术与人工智能的结合能够进一步地提高信息的处理能力,使得数据的处理更加迅速和精准,能够解决信息处理过程中遇到的问题以及保障计算机信息的安全性.将人工智能应用在计算机网络技术中,不仅仅能够有效地避免计算机在信息处理过程中所遇到的各种问题,还能够在一定程度上解决计算机网络技术所面临的安全性问题,从而促进社会的稳定发展.

关键词:大数据时代;计算机网络技术;人工智能

中图分类号:TP393.0  文献标识码:A  文章编号:1673-260X(2019)02-0046-03

1 引言

人工智能部分主要是以Mosquitto人工智能作为基础的,Mosquitto这个项目是开源的,我们可以在官网中下载源代码文件,依据自己的需要增加或者删除部分功能并部署在自己的服务器上,完成人工智能服务器的搭建.Mosquitto与客户端进行连接、发布和订阅消息是通过poll模式完成的.除此之外,消息的topic是被放在订阅树中的.假设有订阅者客户端来告诉人工智能自己想要订阅一个topic,那么,人工智能就会查询整个订阅树,找到与订阅者客户端订阅的相符合的topic,并返回给客户端,这样就结束了订阅.大数据的主要目标是实现消息的发布、订阅和简单的消息推送,Mosquitto中有些功能是用不到的,在部署软件的时候把这些功能关闭就可以了,所以我们主要部署的几处模块有业务处理模块、访问控制模块、数据加密模块、主题设计模块.下面来分别介绍一下他们的工作机制和配置流程.

2 基于大数据时代计算机网络技术中人工智能的应用

2.1 业务处理模块配置

Mosquitto业务处理模块是人工智能的关键部分,工作的主要内容是利用Poll模型监督处理socket,Poll機制使用的是I/O多路技能.我们这里使用Poll模型来解决任务,一是因为我们的系统仅仅是个模拟,不需要很多实际的设备,二是这种模型既可以在windows系统下使用,也可以在Linux系统下使用,很方便.

poll模型工作的过程大概有三步:首先,需要建一个数组,而且数组中的所有元素都必须确定好自己的描述符和感兴趣的状态,这个数组的类型是pollfd;接着,在pollfd构造的数组中放一个pollfd结构体,这个结构体是给所有需要被监督状况的设备建的;然后,所有结构体的情况都会被poll函数实时监测.

业务socket:把目光移到loop_handle_reads_ writes(db,pollfds)这个函数上,可以看到里面含_mosquitto_packet_write(context)和_mosquitto_packet_read(db,context),read函数主要是为了处理从socket中获取的数据,然后在订阅树中放入topic,同时它也会使用3_db_message_insert()将消息放入到context中.Write在这里的作用很简单,它能够把需要发送的数据包发送出去.HASH_ITER(hh_sock,db->contexts_by_sock, context,ctxt_tmp)主要被用于查询业务socket、if(3_db_message_write(db,context)==MOSQ_ERR_SUCCESS)主要被用在确定context中有没有read函数发来的消息,如果有的话,这些消息就会被以数据包的形式放到消息队列中.

2.2 访问控制模块配置

访问控制模块主要想使用户在自己的权利范围内,订阅有关的主题,而不是随便订阅自己想要的主题,在Mosquitto这个模块实现的主要方法是在它的配置文件中,自己写进去用户名和想要订阅的主题,ACL的全称是访问控制列表,它对访问权限进行了一定的限制,主要目的是让系统更安全.

订阅者客户端想要订阅消息的时候或者发布者客户端给人工智能发送消息的时候,系统会依据ACL表对这些客户端实行检查操作,看看这些客户端是否有访问的权利,下面就是ACL表的格式.

1.给指定用户制定的权限控制规则:user<username>[read/write]<topic>

2.给所有用户制定的权限控制规则:pattern[read/write]<topic>

read表示的是用户能够实现订阅;write表示的是用户可以实现发布;空格表示订阅、发布.主题是从左至右一层一层的进行检查的,只要符合ACL表格中的任何一项要求,就会通过检查,它给用户可以有的最小的权限.

2.3 信息安全模块配置

2.3.1 SSL/TLS协议

SSL/TLS以TCP协议为底层协议,最早是对Web会话进行保密的.后来使用的范围越来越大,主要是用来传输客户端和服务器之间需要被验证的保密的消息.现在这个协议在互联网方面的使用率非常高,它之所以这么受欢迎是因为它的安全性非常高,基本上可以确保被传输的数据的安全性和保密性.它基于TCP协议,为应用供给了安全服务,它可以确保程序的数据是完整的、没有被修改.

SSL/TLS协议主要供应三种类型的服务:一是对提供服务的客户端和服务器双方进行身份认证,确保发送的数据是对的;二是给需要发送的数据做好保密工作,保证第三方不知道上面的内容;三是确保发送的数据完好无损,不会被篡改.

2.3.2 人工智能通信加密方式

人工智能协议采用不同的方法对通信安全提供保障,主要有三个重要名词:身份、认证和授权.

(1)身份:我们生成一个客户端时,可以使用一串字符串当作客户端的识别码,这个识别码作为往服务器发送数据的唯一的识别码,同时他也是表明客户端身份的一个码字.同样的,在生成一个客户端的时候,人工智能_ConnectOptions的作用是保障用户的ID号码是独一的.同时,ID号不是刚刚生成的客户端唯一拥有的,别的客户端也能够使用这个ID,ID号也是身份确认的一个方式之一.在C语言的接口中,证书所有的内容都是人工智能CIientSSLOption拟定的,负责密钥和密钥库这一块的是Openssl.

(2)认证:服务器端的证书会被客户端使用SSL协议进行审核,这个SSL协议是和HTTP协议差不多的.相同的,服务端也可以利用SSL协议对客户端进行确认,除此之外,它还可以使用密钥钥这种认证的方式.双方都必须进行认证才可以,加入客户端对服务器端确认了,但另一方却没有反过来确认,这个时候的客户端是不被承认的,它是一匿名的方式存在的.

(3)授权:授权这个操作,它不是包括在人工智能协议中的.网络之间的消息传送是人工智能协议管理的,而授权和控制这一块主要服务器这块独立负责的,我们运用服务端的代码控制授权.Mosquitto项目现在已经能够对主题的权限进行控制.

2.3.3 产生CA证书

在Mosquitto项目中,给人工智能协议保密用的是SSL/TLS协议.在这个过程中,最重要的一点是要有CA证书,我们是在Linux系统下面配置的,所以用的是Openssl.我们要在这个过程中设一个密码,这个密码主要被用在服务端文件的签字上面.在Mosquitto项目中,对相关的证书配置一下,再改一改config文件中的一些命令就可以产生这个证书了.

Mosquitto默认情况下的端口是1883.使用SSL/TLS协议进行保密后,SSL缺省端口变成8883,我们需要自己在相关的配置文件中手动把端口改成8883.

2.3.4 Mosquitto中的安全配置

mosquitto.conf文件中包含了Mosquitto代理服務器的一些基础的设置,其他的我们暂时不看,先看一下和安全相关的配置:

(1)psk_int:使用这个性质的时候,TLS协议会被自动的使用在Mosquitto的监测过程中.

(2)psk_le:这个文件中存留了psk键值对identity,指定预共享密钥对放在那个地点.

(3)ciphers:设置被发布服务器使用的加密方法.

(4)allow-anonymous:同意客户端在连接的时候不透露信息,也就是允许接受匿名的客户端的连接.

(5)aclfile:这指的是一个开端为userxx的topicACL文件.topic[read/write]

<topic>表示的是用户可以对这个topic进行哪些操作,这里没有别的要求,表明用户既可以完成读的操作也可以完成写的操作.假设一个文件的开始不是userxxx,这就是给那些没有说明自己的用户名的客户端用的,用来确定他们有什么权限.同时,pattern模式也支持topic主题匹配:%C代表客户端的ID;%u代表客户端的用户名.系统中分工明确,订阅主题由谁管理,发布主题是谁负责的,这些都是规定好的.

2.4 状态监控模块的配置

在Mosquitto代理服务器中,有这样一个模块,它像一个监测器,能够知道现在运行的程序正处在一个什么样的状况.人工智能协议办理业务方面的事情的时候,应用程序能够实时地把用户数量、消息的数量等状态记住.时间长了以后,所有被统计到一起的数值,就会在主题的模式下发布出去.

这个主题发布的接口为3_db_messages_ easy_queue,在这个种类下,全部的主题都是retain类型的.当用户想要获取这类状态数值的时候,只需要订阅相应的主题,就能立即得到最新的统计结果.

2.5 人工智能端接口配置

接口的作用是至关重要的,它就相当于是一个桥梁、一个纽带,连接了一个部分跟另一个部分.大数据的系统由客户端和代理端构成,它们以人工智能协议为基础实现相互间的消息的发布/订阅和消息的简单推送,各个部分都需要接口.人工智能服务器端我们用的是Mosquitto项目,它的主要的接口是mosquitto_broker.3_packethandle()函数在这里面是负责处理数据的;3_handle_connect()函数是用来和客户端取得连接的;3_handle_disconnect()的作用和上一个正好相反,它是使已经取得的连接断掉的.3_handle_publish()是发布消息;3_handle_subscribe()是订阅消息的主题的.3_handle_unsubscribe()函数也和上面的函数作用相反,它是来取消订阅的.3_handle_connack()是对消息进行确认的.这些函数主要是放在src文件里面,每个接口的编辑的思想是差不多的,我们这里放了3_packethandle()接口、3_handle_connack()接口的源代码.

参考文献:

〔1〕张宏涛.大数据背景下人工智能在计算机网络技术中的运用[J].电子技术与软件工程,2018(06).

〔2〕谢晓辉.大数据时代背景下人工智能在计算机网络技术中的应用研究[J].智库时代,2017(17).

〔3〕李世锋.大数据时代人工智能在计算机网络技术中的应用[J].电子技术与软件工程,2017(23).

猜你喜欢

计算机网络技术大数据时代人工智能
2019:人工智能
人工智能与就业
数读人工智能
计算机网络技术及在实践中的应用分析(1)
计算机网络技术及在实践中的应用分析
基于计算机网络技术的数据库管理系统研究
大数据时代下图书馆的服务创新与发展
大数据时代高校学生知识管理
从“数据新闻”看当前互联网新闻信息传播生态
下一幕,人工智能!