物联网编程语言Toit宣布开源,可实现代码秒级部署

物联网编程语言Toit宣布开源,可实现代码秒级部署,第1张

编程语言Toit开源了!

Toit 是一种面向对象的物联网编程语言,在 IoT设备上能够实现秒级代码部署(注:如果使用C语言,一个简单的代码更改需要几分钟才能重新部署);同时,Toit也是一种现代的、内存安全的编程语言,集成了先进的编辑器功能,如语法高亮、goto-definitions 、代码自动补全等等。

Toit 编程语言具备以下特征:

Toit的出现是因为有一群软件工程师对IoT开发的现状感到不满,凭借着在Google为Flutter构建V8 JavaScript 引擎和Dart语言的丰富经验,他们开始自己构建适用于IoT的最佳平台。也正是在平台构建过程中,他们意识到必须有一种高效的编程语言来满足物联网的需求。最开始,他们尝试使用了Python和JavaScript,但在微控制器上,这两种语言的速度都不够快。

为了解决性能和健壮性问题,Toit团队开始研究Toit语言,经过测试发现,Toit在 ESP32 上的执行代码速度比 MicroPython 快 30 倍以上,同时学习门槛也很低,Python开发人员在几小时内就可以学会它。

为什么会选择开源Toit?Toit团队表示:“从一开始,我们就明确知道Toit肯定是会在某个时刻开源的,因为所有主流的编程语言都是开源的。开源可以获得充满活力的生态系统,编程语言才能被大规模采用。经过多次迭代和实际环境的应用,Toit语言已经成为微控制器编写强大软件的利器,我们希望更多开发者能够从中受益,因此选择将它开源出来。”
链接:>

物联网时代,大量的数据从不同的设备传感器产生,单机数据库系统肯定无法存储这么大量的数据,在选择数据库方面,肯定要选择具有分布式能力存储的数据库。

在物联网时代,数据之间还有一个非常重要的特性,那就是数据之间的关联性。不同的数据从相互连接的互联网设备传感器中产生,由于不同的传感器相互连接,协同工作和采集数据,如何将大量具有相互关联的数据保存在数据库,这里我推荐使用图数据库来进行存储。

图数据库相对于其他数据库来说,最大的优势就是查询数据之间的关联性会更加快速,消耗的时间会更短。打个比方,在社交网络中,我们想要查询在用户A的粉丝中,粉丝关注了B的用户。如果使用传统关系型数据库来存储用户的关注关系,在上面的数据统计中,要使用两层Join才能算出结果,而关系型数据库Join *** 作会很慢。使用图型数据库存储数据的话,图中的点为用户,边为用户的关注关系,在查询A的粉丝,同时粉丝也关注B的用户,只需要遍历两层关注关系就能很快查询到结果。

图数据库也属于NoSql数据库的一种,常用的图形数据库有,JanusGraph、Neo4j、Cayley、dgraph。不同的图数据库,底层实现也不尽相同。

JanusGraph是一种分布式图数据库,由Java语言开发,可以使用Hadoop生态存储系统作为数据源,构建出数据大图。是TiTan图数据库的开源版本,支持事务的ACID。

Neo4j是一种单机的图数据库,其优势就是能够快速安装并且使用,便于新同学上手。你的数据量一般不大的话,我推荐使用Neo4j,直接使用Neo4j相关的API就可以将数据模型图构建而出,然后使用Neo4jCypher查询语言,就可以分析数据,Cypher是一种类SQL的语言。

Cayley和Dgraph都是使用Go语言实现的图数据库,Go语言的最大特性就是其编译速度和开发便捷性,Cayley和Dgraph都支持分布式存储,不过都不支持SQL语言查询数据,Dgraph不支持事务,而Cayley支持事务,不过在开源社区,Dgraph比Cayley更加活跃,这里优先建议使用Dgraph作为物联网的存储数据库。

总体来说,在物联网时代,一定要学会使用图数据库,在分析大量数据之间的关联性时,图数据库就能够派上用场,图数据库最大的优势就是分析不同数据之间的关联性。

现今世界网络和数据普及,不单止智能手机能连接网络,就连手表,闹钟,家电等日常用品,也能即时在网络中提取资讯,并配合环据数据作出分析,将最好的体验反馈给 用家。而透过网络来连接人,流程,资讯和装置这个概念,亦是我们平常所说的物联网(物联网,又名物联网)。

承接上文介绍了雾计算的简单的应用和由来,下文将会介绍物联网的一个重要技术 - 边缘计算(Edge computing)。下文将会阐述边缘计算的由来,并介绍它与物联网的关系,而且会利用无人驾驶作为用例,介绍云计算的短处和边缘计算的应用。

先定义一下边缘计算(wikepedia,2019):

这里提到很多艰涩的专业名词,例如是“分散式运算”,“节点”等,其实只是描述:边缘技术是一种技术将大型应用程式的一部分转移到(即分散式运算)日常设备中处理(即边缘节点中)。

在云计算的典型结构中(如上图),通常可分为“云(云层) - 网(雾层) - 端(边缘)”三层。“端”这一层覆盖所有终端的应用程式,亦通常是被管理的角色。当云计算一计算出结果,就会到透过“网”层,将指令发送到“端”层的应用程式执行,而应用程式收到数据后,则会发送到“云”层作计算。

而边缘计算则可以想像为给予“端”层一定程度的“自治”。在边缘计算的架构中,终点被赋予简单的存储和计算能力(与雾计算不同,这里重点是“简单”的功能) ,令它能偶尔脱离云的管理,并根据环境数据作出回应。

增加终端系统简单的计算和存取能力看似一小步,但其实这个布局有着莫大的好处,当中包括:

  - 低延迟:数据由近场产生,能快速回应

  - 独立性:在没有网络连接下,系统亦能运作

  - 合规性:无需传送用户资料,保护个人数据

  - 简化数据:终端先处理部份数据,数据简化后才向云服务器传输

  - 安全性:数据传输减少,减少网络安全风险

无人驾驶是边缘计算其中一个经典用例,亦是一个很好例子说明云计算的短处和为什么需要边缘计算。

下图展示的是常用的云计算架构,当中包括1)一架智能汽车(客户端),并且正在使用无人驾驶功能,2)互联网(Internet),用作传输数据,以及3)云服务(云计算)服务器),用作提供无人驾驶服务。

假设汽车正在以60ms-1的速度行驶,并在起始位置感测到前方3m有阻碍物。由于汽车正在使用云计算的架构,汽车本身并没有分析的功能,汽车会将感测到的影像 传送到云服务器中作分析(步骤1)。

很不幸地,由于汽车现在在北区甚远,信息在005s后才能到云服务 无上停驶,但也要经过005s才能将指令发送到汽车上执行(步骤2)。

在这段发送信息到回收指令的过程中(~01s),汽车会继续以均速行驶(60ms-1),并到6m后(= 60ms-1×01s)才会收到指令停下来 。而且会撞到在3m前的路人,酿成车祸。

汽车在起始位置感测到前方3m有阻碍物,会立刻执行停车指令(步骤1)。然后再发送影像和决策内容到云服务器中作进阶分析(步骤2),以改善无人驾驶性能。 (注:这里看似与雾计算方式相似,但在过程中,应用程式没有作任何的数据分析,只根据感应器内容作出回应。若然是雾计算的话,感应器信息会发送到雾服务中,再作分析,然后通知终端设备作出回应。)

由此可见,云服务器距离数据产生的位置较远,因此会造成较大的延迟。而无人驾驶这些需要实时作出决策的活动,则很大机会需要使用边缘计算,使计算的服务靠近产生数据的源头,做到计算更接近实际行动。

随着科技的进步,数据传输速度的快速提升,不少日常物品,例如是家用电器,车辆等,都已经嵌入感测器,并透过网络接结与互联网交换资讯,形成了庞大的物件网络(即物联网)。

物件会在运行时会收集到大量的环境数据。有些人会问,为什么不把数据都在本地(local drive)处理,其他数据再传到云服务做储存。这可能是其中一个可以实行的方法,但如果所有数据都在本地处理,物件本身要设有很多的存储装置和处理服务器。这会大大增加电力消秏和物件重量,增加成本。

因此,最好的方法是结合云计算和边缘计算的优势做出最佳的配置。在一些决定物件重大安全性的事件(例如如上文无人驾驶例子的刹车)可将决定的主导权放到边缘上,其他没有急切性的事情,则放到云服务器低成本集中处理。透过云与边缘的良好分工,大大减少成本,亦能提高运算效率。

物联网是一个非常先进的、综合性的和复杂的系统。其最终目标是为单个产品建立全球的、开放的标识标准,并实现基于全球网络连接的信息共享。物联网(Internet of Things)理念指的是将无处不在(Ubiquitous)的末端设备(Devices)和设施(Facilities),包括具有“内在智能”的设备如传感器、移动终端、工业系统、楼控系统、家庭智能设施、视频监控系统等,以及具有“外在使能”(Enabled)的物品如贴上RFID的各种资产(Assets)、携带无线终端的个人或车辆等“智能化物件或动物”、通过各种无线和/或有线的长距离和/或短距离通信网络实现互联互通(M2M)、应用大集成(Grand Integration)。

物联网功能在于,能基于云计算的SPI等营运模式,在内网(Intranet)、专网(Extranet/)或互联网(Internet)环境下,采用适当的信息安全保障机制,提供安全可控(隐私保护)乃至个性化的实时在线监测、定位追溯、报警联动、调度指挥、预案管理、进程控制、远程维保、在线升级、统计报表、决策支持、领导桌面(Dashboard)等管理和服务功能,实现对“万物”(Things)的“高效、节能、安全、环保”的“管、控、营”一体化服务。

具体的来说,物联网的基本功能特征是提供“无处不在的连接和在线服务”(Ubiquitous Connectivity), 具备十大基本功能。

在线监测:这是物联网最基本的功能,物联网业务一般以集中监测为主、控制为辅。

定位追溯:一般基于GPS(或其他卫星定位,如北斗)和无线通信技术,或只依赖于无线通信技术的定位,如基于移动基站的定位、RTLS等。

报警联动:主要提供事件报警和提示,有时还会提供基于工作流或规则引擎(Rule“s Engine)的联动功能。

指挥调度:基于时间排程和事件响应规则的指挥、调度和派遣功能。

预案管理:基于预先设定的规章或法规对事物产生的事件进行处置。(证据采集)

安全隐私:由于物联网所有权属性和隐私保护的重要性,物联网系统必须提供相应的安全保障机制。

远程维保: 这是物联网技术能够提供或提升的服务,主要适用于企业产品售后联网服务。

在线升级:这是保证物联网系统本身能够正常运行的手段,也是企业产品售后自动服务的手段之一。

领导桌面: 主要指Dashboard或BI个性化门户,经过多层过滤提炼的实时资讯,可供主管负责人实现对全局的”一目了然“。

统计决策: 指的是基于对联网信息的数据挖掘和统计分析,提供决策支持和统计报表功能。

TencentOS tiny 提供业界最精简的RTOS内核,最少资源占用为RAM 06 KB,ROM 18 KB。对于复杂的任务管理、实时调度、时间管理、中断管理、内存管理、异常处理等功能,TencentOS tiny都可支持。

腾讯 科技 讯 9月18日消息,腾讯宣布将开源自主研发的轻量级物联网实时 *** 作系统TencentOS tiny。相比市场上其它系统,腾讯TencentOS tiny在资源占用、设备成本、功耗管理以及安全稳定等层面极具竞争力。该系统的开源可大幅降低物联网应用开发成本,提升开发效率,同时支持一键上云,对接云端海量资源。

据权威资料显示,全球物联网市场规模发展迅猛,2018年,仅国内物联网市场容量已经超过1万亿,预计2020年国内物联网市场容量可望超过15万亿。作为物联网整个产业链重要一环,终端侧物联网 *** 作系统由于直接对接底层物联网设备,已经成为构建整个物联网生态的关键。

腾讯物联网团队表示:“将腾讯自主研发的物联网 *** 作系统TencentOS Tiny开源,不仅可以将腾讯在物联网领域的技术和经验和全球开发者分享,还能够汲取全球物联网领域的优秀成果和创新理念,最终推动整体物联网生态的繁荣以及万物智联时代的到来。”
腾讯云构筑起全链条IoT云开发能力

在全面上云的背景下,物联网设备也不例外。借助TencentOS tiny提供的更简单的软件接口,亿级物联网设备上云的门槛降降进一步降低,从而帮助物联网开发者能够更便捷的使用云端海量的计算、存储资源,以及先进的AI和大数据算法模型,有效支撑众多前沿物联网技术在智慧城市、智能家居、智能穿戴、车联网等行业的加速落地。

同时,随着TencentOS tiny的开源,结合腾讯云物联网开发平台IoT Explorer,加上之前已经建设完成的国内最大规模LoRa网络,腾讯云物联网已经彻底打通从芯片通讯开发、网络支撑服务,物理设备定义管理,数据分析和多场景应用开发等一站式、全链条IoT云开发服务能力,物联网开发将变得更为简单、高效。

近年来,腾讯在开源上的步伐不断加快,截至9月,腾讯自主开源项目已达84个,Star数超过24万。在物联网领域,腾讯不仅通过开源和开放持续构建良性的物联网生态体系,在产品易用性和开发效率上,腾讯物联网团队也都做了许多针对性优化。

体积

最小仅18KB

、功耗

最低2微安

TencentOS tiny 提供业界最精简的RTOS内核,最少资源占用为RAM 06 KB,ROM 18 KB。在类似烟感和红外等实际场景下,TencentOS tiny 的资源占用仅为:RAM 269 KB、ROM 1238 KB,极大地降低硬件资源占用。同时,看似“麻雀虽小”,却“五脏俱全”。对于复杂的任务管理、实时调度、时间管理、中断管理、内存管理、异常处理等功能,TencentOS tiny都可支持。

在功耗上,TencentOS tiny还应用了高效功耗管理框架,可以针对不同场景降低功耗。比如TencentOS tiny内部的定时机制在发现业务没有运行的时候,会自动启动休眠状态,有效降低功耗。根据实测的数据显示,TencentOS tiny最低的休眠功耗仅有2微安。开发者也可以根据业务场景选择可参考的低功耗方案,降低设备耗电,延长设备寿命。

独具创意的调试功能,助力开发者快速排障

由于很多物联网的终端设备在实际场景下,位于荒郊野外或者很远的地方,出现问题的时候非常难定位。为了能够减少这个问题,当终端出现问题的时候,TencentOS tiny会把一些故障信息记录下来,当它再重启的时候首先把错误数据上报云端,这个功能极大的方便了开发者查找故障原因。从而远在千里之外,就可以快速排除故障。

另外,TencentOS tiny的内核以及其上层的物联网组件框架,都做了高度解耦,保证和其它模块之间连接的适配。同时,TencentOS tiny 还提供多种编译器快速移植指南和移植工具,帮助开发者向新硬件开发板的一键移植,省时省力,有效提升开发效率。

目前,TencentOS tiny已支持意法半导体、恩智浦、华大半导体、瑞兴恒方、国民技术等主流厂商多种芯片和模组。

花开半夏
面向物联网的21个开源软件项目有哪些,物联网开源平台搭建
admin 07-26 04:41 166次浏览
2019独角兽企业重金招聘Python工程师标准
51CTOcom直译物联网市场呈现碎片化、无定形化、不断变化的特征,其性质通常只需关注互 *** 作性。 难怪开源在这方面不俗。 ——客户犹豫不决,害怕将物联网的未来寄托在可能难以定制或互联的专有平台上。
本文介绍了主要的开源软件项目,重点讨论了面向家庭和工业自动化的开源技术。 我们忽略了专注于垂直领域的物联网项目,如Automotive Grade Linux和Dronecode。 我们还忽略了面向互联网的开源 *** 作系统发行版,包括Brillo、Contiki、Mbed、OpenWrt、Ostro、Riot和Ubuntusnappping。这次,我们将智能
这里介绍的21个项目包括由Linuxfoundation管理的两个大型项目: Allseen(Alljoyn )和ocf (iotivity ),以及物联网传感器的端点和网关我还介绍了几个专门针对物联网生态系统特定领域的小项目。 我们曾介绍过更多的项目,但越来越难分清物联网软件和普通软件的区别。 从嵌入式环境到云,越来越多的项目都带有物联网元素。
您声称这21个项目都是开源的,但请确保完整的名称不在本文的范围内。 它们至少在生态系统的一个部分运行Linux,大多数都完全支持Linux,从开发环境到云/服务器、网关和传感器端点部件。 大多数组件都有可以在Linux开发板(如Raspberry Pi和BeagleBone )上运行的组件,大多数都支持Arduino。
物联网领域仍然有很多专有技术,特别是在自上而下的企业平台上。 但是,其中也提供了部分开放访问权限。 例如,威瑞森的ThingSpace针对4G智慧城市APP应用,拥有一套免费的开发API,支持开发板,尽管核心平台本身是独一无二的。 相似的是,亚马逊的AWS物联网工具包包括部分开放的设备SDK和开源入门工具包。
其他主要的专有平台包括苹果的HomeKit和微软的Azure物联网工具包。 在拥有230个成员的Thread Group中,该组织监督基于6LoWPAN的对等Thread网络协议。 Thread Group由谷歌的母公司Alphbet旗下的Nest设立,没有提供像AllSeen和OCF那样全面的开源框架。 但是,它与Brillo相关,也与Weave物联网通信协议相关。 5月,Nest发布了名为OpenThread的开源版Thread。
介绍21个面向物联网的开源软件项目。
AllseenAlliance(Alljoyn ) )。
由Allseenalliance(asa )监管的AllJoyn互 *** 作系统框架可能是市场上采用最广泛的开源物联网平台。
Bug Labs dweet和freeboard
bugglas是从制造基于模块化Linux的有bugh的硬件设备开始的,但很久以前就演变成了与硬件无关的企业级物联网平台。 Bug Labs提供“dweet”消息、警告系统和“freeboard”物联网设计APP。 dweet使用HAPI Web API和JSON来帮助发布和描述数据。 freeboard是一种拖放式工具,用于设计物联网仪表板和可视元素。
DeviceHive
DataArt基于AllJoyn的设备管理平台可以运行在许多云服务上,包括Azure、AWS、Apache Mesos和OpenStack。 DeviceHive专注于使用ElasticSearch、Apache Spark、Cassandra和Kafka,分析大数据。 有些网关组件可以在运行Ubuntu Snappy Core的任何设备上运行。 模块化网关软件与DeviceHive云软件和物联网协议配合使用,作为Snappy Core服务进行部署。
DSA
分布式服务架构(DSA )便于集中式设备的互 *** 作性、逻辑和APP应用。 DSA项目正在构建分布式服务链接(DSLinks )库,以支持协议转换以及与第三方数据源的数据集成。 DSA提供了一个可扩展的网络拓扑,其中包括多个DSLinks,用于在连接到分层代理分层结构的物理互联网边缘设备上运行。
EclipseIOT(Kura ) )。
Eclipse基金会的物联网主要围绕基于Java/OSGi的Kura API容器和聚合平台,支持在服务网上运行的m2m APP应用。 Kura基于Eurotech的Everywhere Cloud物联网框架往往与Apache Camel集成,后者是基于Java的基于规则的路由和中介引擎。 Eclipse物联网子项目包括Paho消息传递协议框架、面向轻量级服务器的Mosquitto MQTT体系结构和Eclipse SmartHome框架。 有些项目实现名为Californium的基于Java的受限APP应用协议(CoAP )。
Kaa
CyberVision支持的Kaa项目为云互联的大型物联网提供了可扩展的端到端物联网框架。
该平台包括一种支持REST的服务器功能,可用于服务、分析和数据管理,通常部署成由Apache Zookeeper协调的节点集群。Kaa的端点SDK支持Java、C++和C开发,负责处理客户机/服务器通信、验证、加密、持久性和数据编排。SDK包括针对特定服务器、支持GUI的模式,这些模式可转换成物联网物件绑定。模式治理语义,并抽象一组迥异设备的功能。
Macchinaio
Macchinaio提供了一种“支持Web、模块化、可扩展的”JavaScript和C++运行时环境,可用于开发在Linux开发板上运行的物联网网关应用程序。Macchinaio支持一系列广泛的传感器和连接技术,包括Tinkerforge bricklet、XBee ZB传感器、GPS/GNSS接收器、串行和GPIO联网设备以及方向感应器。
GE Predix
GE面向工业物联网的平台即服务(PaaS)软件基于Cloud Foundry。它增添了资产管理、设备安全、实时预测分析,并支持不同数据的采集、存储和访问。GE Predix是GE为内部运营而开发的,它已成为最成功的企业物联网平台之一,收入大约60亿美元。GE最近与HPE达成了合作伙伴关系,HPE将把Predix整合到自己的服务中。
Home Assistant
这个作为后起之秀的草根项目提供了一种面向Python的家居自动化方法。
Mainspring
M2MLabs的基于Java的框架针对远程监控、车队管理和智能电网等应用领域中的M2M通信。与许多物联网框架一样,Mainspring高度依赖REST Web服务,并提供了设备配置和建模工具。
Node-RED
这种面向Nodejs开发人员的可视化布线工具拥有基于浏览器的数据流编辑器,可用于设计物联网节点当中的数据流。然后,节点可以迅速部署成运行时环境,并使用JSON来存储和共享。端点可以在Linux开发板上运行,支持的云包括Docker、IBM Bluemix、AWS和Azure。
Open Connectivity Foundation(IoTivity)
英特尔和三星支持的开放互联联盟(OIC)组织和UPnP论坛组成的这个组织正在努力成为物联网方面领先的开源标准组织。OCF的开源IoTivity项目依赖充分利用的JSON和CoAP。
openHAB
OpenIoT
这款基于Java的OpenIoT中间件旨在使用一种公用云计算交付模式,为开放、大规模的物联网应用提供便利。除了表示物联网物件的本体、语义模型和标注外,该平台还包括传感器和传感器网络中间件。
OpenRemote
OpenRemote为家庭和楼宇自动化而设计,它以广泛支持众多智能设备和网络规范而出名,比如1-Wire、EnOcean、 xPL、Insteon和X10等规范。规则、脚本和事件都得到支持,还有基于云的设计工具,可用于用户界面、安装、配置、远程更新及诊断。
OpenThread
这是Nest最近从基于6LoWPAN的物联网Thread无线网络标准分离出来的开源项目,它还得到了ARM、Microchip旗下的Atmel、Dialog、高通和德州仪器的支持。OpenThread实现了所有Thread网络层,还实现了Thread的端点设备、路由器、Leader和边界路由器等角色。
Physical Web/Eddystone
谷歌的Physical Web让蓝牙低能耗(BLE)信标可以将URL发送到智能手机。它针对谷歌的Eddystone BLE信标经过了优化,这提供了除苹果的iBeacon之外的一种开放技术。其想法是,行人可以与任何具有BLE功能的支持性设备(比如汽车停放计时器、标牌或零售产品)联系。
PlatformIO
基于Python的PlatformIO包括IDE、项目生成器和基于Web的库管理器,它是为访问来自基于微控制器的Arduino和基于ARM Mbed的端点的数据设计的。它为200多种板卡提供了预先配置的设置,并与Eclipse、Qt Creator及其他IDE整合起来。
The Thing System
这种基于Nodejs的智能家居“监管”软件声称支持真正的自动化,而不是简单的通知。其自学习人工智能软件可处理许多协同式M2M *** 作,不需要由人干预。缺少云组件恰恰提供了更好的安全性、隐私性和控制性。
ThingSpeak
成立五年的ThingSpeak项目专注于传感器日志、位置跟踪、触发器及提醒以及分析。ThingSpeak用户可以使用用于物联网分析和可视化的MATLAB版本,不需要向Mathworks购买许可证。
Zetta
Zetta是一种面向服务器的物联网平台,利用Nodejs、REST和WebSockets构建而成,奉行基于数据流的“响应式编程”开发理念,用Siren超媒体API连接起来。设备被抽取成REST API,用云服务连接起来,这些服务包括可视化工具,并支持Splunk之类的机器分析工具。该平台可将Linux和Arduino开发板之类的端点与Heroku之类的云平台连接起来,以便构建地理分布式网络。
转载于:>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/13422331.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-02
下一篇 2023-08-02

发表评论

登录后才能评论

评论列表(0条)

保存