华中科技大学控制科学与工程系自动化专业2008级 沙雨萌
物联网(the internet of things)前景非常广阔,它将极大地改变我们目前的生活方式。物联网把我们的生活拟人化了,万物成了人的同类。在这个物物相联的世界中,物品(商品)能够彼此进行“交流”,而无需人的干预。当信息被分享并相互关联时,智能化的效果就会大大提升。如何让各种智能设备连接 IP 网络并融入上层的应用系统,就变得至关重要。
当前智能建筑系统包括了20~30个子系统,子系统分成两大类:常规应用和专业应用。绝大部分常规类应用子系统和几乎全部专业应用子系统均为网络化/IP网络化架构,建筑设备监控、安防、一卡通等已经构成IP网络平台上的集成融合子系统。智能建筑技术遍及各个行业,从初始的弱电集成,发展成为如今的综合系统集成,智能建筑技术成为构建数字城市的核心技术之一,也是构建绿色建筑的重要技术。
物联网的形态存在如下三部分内容:一部分是传感器联网,一部分是互联网(IP)协议栈,一部分是 web。在智能建筑系统中,设备经过传感器联网技术接入其所在的子系统,再通过以太网技术组建监控网(设备网站),因而可以说许多子系统已经是准物联网形态,或者已经是物联网形态。
图1 智能建筑物联网形态
建筑设备监控系统目前常用三层结构:管理层、控制层、现场总线。设备经传感器联网的特点是物与物、物与人,多IO、实时、面向现场总线。现场总线有 LonWorks/BACnet/Modbus等等,非TCP/IP协议栈网络。形成连接互联网架构的逻辑设备,构建设备网站,实现管理和监控功能。
为方便控制网形成物联网形态,Tridium公司2009年8月推出开源软件编程开放平台 Sedona Framework,利用Sedona技术很容易把现场总线上的物理设备形成Sedona设备,通过B/S(web)访问模式对Sedona设备进行管理和监控。
Sedona技术主要分为三大部分:Sedona语言(Sedona Programming Language),Sedona虚拟机(Sedona Virtual Machine,SVM)和Sedona平台(Sedona Running Environment)。
Sedona程序语言是目前最先进的用于嵌入式应用程序开发的面向组件编程语言,它的语法和Java、C# 相当类似。Sedona的设计者致力于让Sedona语言更为强大,同时他们也尝试避免其他面向对象编程语言(C++,Java)所有的过分复杂的特点。设计者通过让Sedona语言更为简易好用,使得程序员能写出更强大且无错误(bug-free)的代码。
Sedona虚拟机,或称Sedona解释器(interpreter),是Sedona安装系统(installation)最重要的一部分。Sedona程序被设计成具有可移植性,但也只能在安装了Sedona解释器的平台上运行。SVM不只用于桌面系统,它还被移植到DDC、机顶盒、无线收发器等任何安装了具有Sedona解释器的嵌入式操作系统中。虽然解释器在一般的概念中被认为是个不具备高性能的系统,但是 SVM 的性能却表现得非常优异,同时还在不断的进步当中。值得特别注意的是,凭借 SVM 技术编译的应用程序非常小,非常适用于嵌入式硬件平台,同时,Sedona byte code 还可以被转换为本地平台使用的机器语言,从而加快了需要重复运行的程序代码的运行效率。
Sedona平台有时候被称为 Sedona运行环境或是核心Sedona API(Application programming interfaces)。所有使用Sedona语言编写的程序都必须依赖构成 Sedona平台的预定义集合才能顺利运行。Sedona类被分为多个不同的元件(Kit),Sedona平台的元件依功能来定义,如输入/输出、网络、创建、安全性以及其他许许多多的功能。Sedona平台可以使用其他额外的标准扩展功能(standard extensions),而这些扩展API仅存在于某些Sedona安装系统中,并不保证存在于所有的安装系统中。
程序员使用Sedona语言来编写Sedona应用程序、Sedona组件等,Sedona应用程序调用Sedona平台的核心APIs,当Sedona程序被编译时,它会被转换成字节码(byte code),字节码是基于CPU架构(即SVM)的具有可移植性的机器语言。SVM可直接以硬件方式来实现,但通常都是以软件程序的形式来表现,而字节码便是由 SVM 来解释与运行的。综上所述,Sedona平台是一套与硬件平台和操作系统无关的,用于构建以网络为中心的嵌入式智能设备的软件平台架构技术。
经过大量的工程实践表明,基于Sedona技术开发的产品在物联网的实际运用中有如下优势:
3.1 强大的可移植性
Sedona平台最主要的核心价值是“一次编写,到处运行”。以商业术语来说,这句代表Sedona技术最重要的承诺是你只要写一次程序(即可被编译为字节码在Sedona平台上运行),便能在任何地方运行该应用程序。类似于Java虚拟机(JVM),当移植完毕基于自己硬件架构的SVM后,Sedona程序编译的字节码就可由 SVM 解释并运行,一套相同的代码在不同的Sedona设备运行上可以获得相同的输出。
3.2 以网络为中心的程序设计
Tridium一直致力于设计以网络为中心的应用程序平台,Sedona平台的设计者更深信其重要性,同时把 Sedona平台设计为以网络为中心的模式。从程序员的角度来说,Sedona提供了不同网络拓扑结构的通信协议、编程模型。从集成使用者的角度来说,Sedona可以让操作者通过网络在线升级嵌入式固件程序(Firmware),甚至实时删除、增加、修改应用程序的组件。Sedona平台以网络为中心的设计方式,意味着 Sedona应用程序可以动态地凭借网络加载新设备中的功能,也可以重用需要的 Kit元件。使用这些功能的应用程序将不再只是一个个的程序代码而已,而是成为了一个相互作用且独立的集合。Sedona开启了强大的嵌入式应用程序设计与开发的新纪元,它能更充分地利用物联网资源,扩展物与物之间的“交流”,促进信息共享。
3.3 性能优异
正如前面所说,Sedona程序被编译成具有可移植性的中间形式,即所谓的字节码,而不是某种机器的专属机器指令,SVM 就是解释这些具有可移植性的程序代码来运行 Sedona程序的。这个结构意味着Sedona程序的运行效率快过使用纯解释式语言所写成的程序或脚本(script),但一般来说,Sedona程序的运行速度会比编译成某个特定机器码的 C或C++程序的运行速度慢。然而,要特别记得,虽然Sedona程序被转换为字节码,但并非所有的Sedona程序都是使用字节码来实现的。为了要提高效率,Sedona平台在计算的部分具有相当的复杂度,如字符串运作的方法都是使用机器码来实现的。Sedona平台运行的目标平台是小型的嵌入式智能装置,因此,编译后的Sedona程序是一个轻量级的快捷应用程序,甚至可以在小于100kB内存的平台上运行,使得使用性能已不再是个问题了。
3.4 动态及可扩充的程序
Sedona既是动态的(dynamic)也是可扩充的(extensible),Sedona程序代码是由面向对象的模块组件构成的,以这种形式所构成的单位称作类(class)。类又分散存储在不同的Kit中,同时只有在需要的时候才会被加载到SVM解释器中。这表示应用程序可以在运行的时候决定哪些是需要的类,然后在需要的时候才加载它们;也表示程序可以凭借加载它所需要的类来动态扩充它所具备的功能。
3.5 6LoWPAN接入
Sedona提供了基于IEEE 802.15.4运行6LoWPAN的解决方案,将IP协议簇直接扩展到无线工业网。通过制造低成本,电池供电的6LoWPAN传感器,可以很容易让数量庞大的设备接入互联网,极大扩展了物联网的传感网信息。
Sedona通过分布式决策让所有的设备具备控制和管理的能力,变得更加智能,能够连接到网络的任何地方。Sedona可以让制造厂家开发自己的可以支持互联网的设备。这要比完全自己开发, 或是使用当今已有的那些复杂的嵌入式开发工具要简便,快捷。
为智能装置嵌入 Sedona芯片模组,可以解决有线和Sedona无线间通信的局限性而设计。它可以无缝地融合MS/TP总线到802.15.4协议,在802.15.4和 MS/TP上运行6LoWPAN,串行链路变成了高质量的网络间的 802.15.4路由,让每台嵌入了该芯片的设备拥有自己的互联网地址。
开发者的工作流程通常按图2步骤进行:
图2 Sedona开发工作流程
4.1 用面向对象的Sedona编程语言编写Sedona组件,用于实现某种功能或算法。
4.2 用Sedona编译器工具将Sedona组件源代码编译成工具包。在编译的同时,该编译器也能针对每个类产生标准的Java Class file文件,从而可以在Java虚拟机上直接运行Sedona应用代码,以便开发者利用Java的开发调试工具对应用组件进行开发调试,从而大大提高开发效率。
4.3 开发者将组件以工具包的形式发布,由集成商选择将哪些工具包安装到最终的设备上去,这样就由Sedona工具将这些工具包编译成二进制的scode映像文件(这一步通常由工具自动完成)。集成商选择的工具包决定了在设备上能使用的组件功能,这样的自由选择能力,大大提高了设备的适用范围,使得集成者可以根据具体应用环境进行灵活的裁剪。
4.4 为智能装置移植SVM,将scode映像文件加载到设备上运行。这些文件即可以是预先保存在设备的ROM上,从而在设备上电之后直接运行,也可以由集成者临时选择,通过网络用SOX协议动态加载。这样就使得集成者能非常灵活、方便地根据不同需求进行现场定制。
Sedona开源框架整合了最新的IT技术,如:面向对象编程语言、虚拟机、图形化组件开发技术等等,给楼宇自动化领域带来了一种新的解决方案,相信在本文的抛砖引玉作用下,会有越来越多的人参与到这个开源项目的开发与建设中来,那时候就会有源源不断的新思路补充到这个开源框架里来,使其不断壮大,给智能建筑物联网领域注入新的活力。
[1]Tridium公司. Sedona技术手册,2009
[2]解读物联网技术在智能建筑领域的发展[EB/OL]. http://article.ednchina.com/Analog/Internet_Things_intelligent_building_computing.htm