将微服务应用于物联网

  • Ben Linders
  • 谢丽

2016 年 1 月 5 日

话题:架构文化 & 方法

GOTO 2015 柏林大会上,Fred George谈了组织应该做些什么来实现微服务的成功部署以及他们可以在物联网领域扮演什么角色。在早些时候的采访中,InfoQ 就应用微服务需要哪些支持采访了他。在本次采访中,Fred George 解释了物联网如何利用微服务及它所带来的挑战和我们可以采取的措施。InfoQ 还请他就微服务在物联网领域的应用向软件行业提出了建议。

InfoQ:您能详细地描述下物联网(IoT)如何应用微服务吗?

George:单体 IT 架构并不适合其中每个设备都有计算机和无线连接的环境。在我家里,我现在有 7 个灯泡和 10 米光条,它们全都有自己的处理器。另外,我还有 Apple TV 和 XBox。在同它们进行交互方面,我所希望的方式可能不同于你所希望的方式。这就需要某种程度的解耦(而不是由 IBM 或 Oracle 或 Google 或 Amazon 或 Apple 来告诉你应该采用什么样的方式)。因此,我希望设备可以自己发布消息,并响应其他设备(或其他人)的操作。我们再次遇到了一个模糊的问题,一个适合微服务的领域。

因此,我设想,有一个微服务可以简单地指出我是否在家(可以通过我的 iPhone 及其地理定位服务)。另一个微服务对此作出响应,并根据一天中的时间开灯或关灯(通过 Apple HomeKit 及我的 Philips Hue 控制器)。借助微服务,我可以通过其他的服务继续增加复杂性,而不需要等着其中某个大型供应商构建出一个具备那种功能的应用程序。

InfoQ:您可不可以谈一下,根据您的观察,物联网所面临的一些挑战?

George:对我来说,现在谈论这个问题还为时尚早,不过我马上就想到了两点。第一个是互操作,即如何让来自不同供应商的设备相互协作。第二个是安全,即如何防止怀有恶意的陌生人(或者就我的情况来说,我所熟悉的黑客)对我家里的系统的访问。

InfoQ:关于如何应对这些挑战,您有什么建议吗?

George:对于互操作,已经出现了几个标准,而且,主要的供应商也已经认识到,如果他们的 Hub 支持多种互操作标准,那么与竞争对手相比,其 Hub 就更可能被使用。安全问题最好是使用锁定的无线网络来解决,并遵循最佳实践来保证其安全。然后,就只需要保护对外的“外观(facade)”免受攻击。Apple TV、Microsoft XBox 及 Amazon Echo 似乎都在争当那个外观。

InfoQ:微服务是解决互操作的一个方案吗?您能举个例子吗?

George:供应商们都发布了他们的协议,并向各种 Hub 暴露了 API。一个微服务可以充当不同协议之间的适配器。它是轻量级的,并可以随意取用,这两个特性是一个快速发展变化的环境所需要的。正在玩这个的同行经常使用 Arduino 处理器板来执行这些任务。最新一代的处理器运行现代化的语言,只需很少的电量,而且可以安装在任何地方。

InfoQ:关于微服务在物联网领域的应用,您有什么建议向软件行业提吗?

George:在这个领域取得成功的供应商会认识到互操作的必要性,而且不是通过在专利产品中逐步增加特性来解决。他们会开放 API,允许同他们的 Hub 及使用标准协议(如使用 HTTP 协议的 RESTful 接口)的设备进行多样化的通信。我期待出现一个多产的开源模型,就像某些玩具机器人和无人机市场那样。在开放协议方面占得先机,就会在市场份额上取得回报。

最近,Amazon 正在努力成为那样的集成供应商(参见Amazon 将在物联网领域大展身手)。Philips 刚刚撤回了将外部设备排除在其 Hub 之外的决定;这一排外举措在社区引发了激烈的负面反应,Philips 知道,他们这样一个举措会让他们丧失市场份额(参见Philips Hub 重新支持第三方智能灯)。这个行业似乎明白他们需要做什么。

查看英文原文:Using Microservices in the Internet of Things

架构文化 & 方法