让我们从定义开始。
什么是边缘计算?
边缘计算将计算应用程序、数据和服务的前沿从集中式节点推向网络的逻辑极限。[1]它使分析和知识生成能够在数据源发生。这种方法需要利用可能无法连续连接到网络的资源,怎么成为淘客,如笔记本电脑、智能手机、平板电脑和传感器。[2]边缘计算涵盖了广泛的技术,包括无线传感器网络、移动数据采集、移动签名分析、合作分布式对等自组网和网络处理也可分为本地云/雾计算和网格/网格计算、dew计算、[3]移动边缘计算、[4][5]cloudlet、分布式数据存储和检索、自主自愈网络、远程云服务、增强现实、,更多信息。[6]
(来源:Wikipedia)
什么是Apache Edgent
Apache Edgent是一种开源编程模型和微内核风格的运行时,5118大数据,可以嵌入到网关和小型边缘设备中,实现对来自设备、车辆、系统、设备的连续数据流的本地、实时分析,各种设备和传感器(例如,树莓Pis或智能手机)。Apache-Edgent与集中式分析系统协同工作,在整个物联网生态系统中提供高效及时的分析:从中心到边缘。
(来源:Apache-Edgent项目页面)
运行在Rasberry Pi或Android上。目前基于Java一个简单的Linux操作系统可以运行Java和EdgentEdgent是一个编程模型(函数流API)和一个用于边缘分析的轻量级可嵌入运行时Edgent可与中心中心通话,包括:MQTT经纪人阿帕奇·卡夫卡用于分析的其他后端系统
Apache Edgent的主要功能
用于流分析的功能流API(Map、Flatmap、Filter、Aggregate、Split、Union、Join、Deadband Filter)连接器(MQTT、HTTP、Websockets、JDBC、文件、Kafka)javaapi允许您将JSON发送到MQTT设备与后端的双向通信用于查看应用程序图形和度量的基于Web的界面Junit可用Edgent使用Java Lambda表达式
故事
物联网数据非常大。我们需要分析来自传感器的所有数据,但正如我提到的,数据是巨大的,将所有数据从源传输到中心分析可能非常昂贵。这可以通过
减少传输到中央分析服务器的数据量来解决减少存储的数据量。
Apache Edgent帮助我们解决这个问题。它可以在Java7、8(包括RPi设备)和Android上运行。
让我们开始编码。
我将创建一个带有Edgent库的简单Java项目,生成一些数字,全球云购,并对这些数字进行非常简单的分析,并将其发布到MQTT代理到设备主题。SAP IoT将获取存储这些分析数据的值。您可以将EMQ用作MQTT代理。在安装MQTT代理之后,我们需要在sapcloudiot中进行更改。进入IoT配置,输入MQTT代理地址、用户名和密码。
我假设您已经下载了ApacheEdgent。创建一个新的项目Eclipse和jars,如下所示:
现在Java项目已经准备好编码了。
Apache Edgent已经准备好了一些连接器,例如消息系统、数据库、文件、进程等(Edgent连接器)。我不会为SAP IoT创建一个特殊的连接器。Apache Edgent透视视图连接器只是一个名称。它只是一些代码
充当流的接收器–当提供流元组时,它可以将数据传递给外部实体。连接器实现Consumer.apply(T tuple)。充当流的源-当被查询时,或者单独查询时,私人云服务器,可以从外部实体的数据合成元组。e、 例如,连接器实现了T Supplier.get()
,因此我将生成一些数字并将其发送给MQTT代理。SAP物联网将选择这些价值观并将其应用于物联网领域。
现在创建一个简单的类。我们需要两种方法,第一种是生成数字,比如来自一个叫供应商的传感器:
在上面的代码中我只生成数字。它就像一个传感器。
另一种方法是消费者。您可以尝试不同的方法连接到sapiot(HTTP-API、MQTT-TCP-API、WebSocket-API、MQTT-WebSocket-API)。我将使用MQTT-TCP-API.
现在我们已经准备好运行我们的代码了。创建一个新类。
让我们逐行检查上面的代码。
第一步是创建DirectProvider。Provider是一个包含Edgent应用程序运行方式和位置信息的对象。DirectProvider是一种提供程序,当调用其submit()方法时,人工智能的技术有哪些,它直接在当前虚拟机中运行应用程序。
在Edgent中,拓扑是描述应用程序结构的容器:
应用程序中的流来自何处,以及如何修改流中的数据
在应用程序中我们有一个数据源,我们通过调用拓扑.poll(),它同时使用供应商函数和时间参数来指示读取的频率。
我们的目标是过滤/分析源上的数据。因此,我们过滤随机生成的低于50的数字。
我们打印数据以查看值,并使用sink()方法发送数据服务器。
还有其他可能操作边缘数据(流概念)。
现在运行Java应用程序并检查输出。同时打开消息管理服务并检查应用程序数据:
另一个伟大的apacheedgent特性是web控制台。要启用控制台,请在下面添加导入和更改提供程序类型并打印控制台url:
,您将在控制台中看到url:
打开控制台中显示的url: