.NET程序:是时候搬来Azure IoT Hub这个救兵了

日期: 2017-03-15 作者:Tom Nolle翻译:蒋红冰 来源:TechTarget中国 英文

将Java和其他平台与.NET混合可以帮助构建物联网应用程序。专家Tom Nolle也对此解释了为什么Azure是一个不错的IoT的起飞之地。

对于物联网(几乎歇斯底里的兴趣使.NET开发人员处于一个艰难的位置。 IoT,即物联网,这通常意味着RESTful接口、Java开发等与.NET无关的东西。一般来说,.NET用户有个强大的架构示例,可以启动物联网开发。你只需遵循Azure IoT Hub模型,无论是否有Azure计划 。专注于您的耦合中间件的服务总线,不要害怕将Java引入到组合中。

任何应用架构师都会告诉你,IoT是一个用例,而不是一个应用程序模型。像会计或零售银行,IoT需要应用架构来架构其组件之间的关系。并将任务分成可以有效开发,再利用和部署的组件。由于很少有公司具有真正的物联网开发经验,定义有效的物联网模型是一个艰巨的挑战。最好的办法是跟随云。

微软和亚马逊都有建设物联网应用的隐性愿景。它所开始的设备联盟从必须以与其他传统用户设备相同的方式进行连接、注册、认证和管理。这些IoT设备是事件的源,可能需要实时处理、存储库编目和分析,或两者皆有。然后,业务应用程序(包括当前的应用程序)必须利用此事件处理的结果。由于Microsoft Azure是.NET开发的首选云合作伙伴,因此通过引用Azure IoT Hub元素可以最简单地构建.NET IoT应用程序。

Azure IoT Hub组件负责设备连接和管理。在此处管理与设备相关的所有内容,Azure IoT中心(或任何IoT中心)的输出是一组代表物联网遥测的消息或事件。到IoT元件的控制消息通过类似于IoT集线器的东西连接。如果你不打算使用Azure,那么自主开发的设备连接和控制元素的结构应尽可能与Azure IoT中心的结构相匹配,特别是在接口方面。

消息还是事件?傻傻分不清楚

为了超越Azure IoT中心,你需要考虑IoT元素生成的内容。术语消息和事件经常容易混淆。消息系统将信息直接指向特定接收者,而事件系统仅仅以一个条件进行报告。最广泛的IoT应用程序将从设备生成,因此将Azure IoT Hub的输出视为一系列并行消息和事件流将会很方便。

Azure IoT倾向于通过公共进程处理事件和消息。事件中心组件可以接收事件,并将其发布到进程中,或根据需要将它们发送到存储元素中。与事件中心集成的Stream Analytics组件可以对复杂事件处理进行实时分析。你可以使用标准的.NET消息和事件工具或Windows 10 Core IoT设备(基于第三方和自定义开发)构建这些组件。

无论您是使用Azure还是有自己的数据中心, 事件路由和流分析逻辑都是分类和分析事件生成阶段的组合。Azure IoT Hub设备通过IoT应用程序的这一部分反馈,允许它们与某些处理逻辑相关联,这些处理逻辑可以是IoT特定的应用程序组件或当前的业务应用程序。重要的是,你的集线器和流分析组件可将各种特定于设备的事件/消息表单,协调为常见的应用程序特定事件或消息。如果不这样做,所有逻辑就必须更改来适应新设备,并且存在IoT数据处理不一致的风险。你可以在事件路由和流分析过程中使用处理程序,或在下一个元素中包含处理程序。对于通常期望响应的真实消息,处理程序应该在应用程序和IoT设备之间提供状态控制和关联,以确保以正确的形式进行响应。

业务逻辑分发过程应基于发布和订阅接口,从而将应用与设备分离,并提高开发效率。理想情况下,IoT应用程序将包括与Hub / Stream Analytics组件中的消息/事件相关联的处理程序。然后转换格式并将结果消息使用某种形式的服务总线队列绑定到应用程序上。这里的关键是要有一个总线架构,可以与所有的应用程序交互,且本身是弹性和可分发。 Microsoft的Service Bus是完全可分发的、云兼容的,可以支持几乎任何类型的应用程序接口。它既可用作Azure服务也可用作Windows Server组件。

在发布-订阅总线组件后面隐藏的是业务逻辑本身。因为如果任何给定的信息源(事件)或消息(请求/响应)具有标准格式都是很理想的,这样就可能需要开发一个存根,以将应用/组件与所选择的消息总线的格式匹配。有些数据的重新映射通常由总线本身支持,但是要准备好适应对遗留应用的特殊要求。

.NET的自由组合

最后一点要记住的是,在任何领域混合.NET(和C#)应用程序与Java都没有问题。在Azure IoT Hub应用程序的设备处理部分中,许多传感器和控制器将通过中间网关连接到互联网或公司虚拟专用网络上。你可以使用Windows 10 Core IoT套件构建一个网络,当然你也可以利用传感器/控制器供应商所支持Java或 其他语言。

当构建物联网应用程序的更深层元素时,你可能会发现Java或其他平台很有用。使用Event Hub的事件分发可以适应多种语言和中间件工具。这在后端的服务总线耦合应用程序中也是如此。 选择最好的,适应你已经有的,并建立你需要符合本文描述的云模型。 你的IoT应用程序随后可以不断增长并满足未来业务需求。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

翻译

蒋红冰
蒋红冰

TechTarget云计算主编,主要负责云计算和虚拟化网站的内容建设。长期专注于IT前沿技术,对云计算、虚拟化、人工智能、区块链等技术都有了解;对行业趋势、市场动态有一定的洞察。

相关推荐