嵌入式系统的企业级应用
扫描二维码
随时随地手机看文章
目前嵌入式系统已经从传统的幕后角色比如飞机、工业仪器以及军用设备的控制走向诸如医疗检查、运输卡车甚至维修工的工具等大众领域。
新技术的出现已经模糊了企业和个人在移动和桌面计算上的界限,以前仅针对企业级应用的系统通过新的技术也可以面对有需要的个人。现在研发者通过功能强劲价格适当的硬件可以在更小的设备上集成更多的功能、应用和数据,软件开发者紧随其后,在这些新平台上任意发挥,最终形成各种创意独特的设备。
日常生活中的嵌入式
嵌入式系统看上去似乎神秘而复杂,但实际上从手机到车载GPS甚至MP3播放器,我们每天都在应用它。将这些消费类产品中的技术用到其他场合将会在更多的市场中增加效率和效用。
来看一个设备维修工。过去他们通过电话与分配中心、器件仓库以及其它资源中心联系,现在他们在现场只需要一个手持仪器,里面会含有从安排列表、诊断测试到器材库存信息和账单软件等一切资料。有时这些设备还可以直接联网,作为一个完整的独立系统,它们可以获取到针对某个特定应用的所有信息,并在工作日结束后与主机保持同步。
嵌入式软件的设计演变
长久以来,嵌入式设备的开发者一直在努力压缩软件字节数目,降低CPU的消耗,以此来在有限的硬件能力上得到更多的性能提升。但是随着功能更加强大的硬件系统和COTS商用嵌入式操作系统的不断涌现,中间件和数据管理系统在转移重心。而几年前,嵌入式的开发者还在写自己的操作、文件和数据管理系统。这样在时间上看上去不够经济,但是有人认为这种针对特定应用定制的软件会比商用软件更精简且更快。
在嵌入式中间件和嵌入式数据管理系统上也有同样的趋势。为了适应空间和内存的限制,传统上这些中间件和管理系统只有有限的功能,占据几十万字节的空间。而现在的系统在相同的限制下采用归一化的功能,使得开发者在核心功能的基础上开发不同的应用方案。利用众多的COTS系统,开发者有机会推出差异化的嵌入式设备。
但是随着硬件和COTS系统的发展,也出现了新的问题。嵌入式设备变得日益复杂,许多应用都要共享和处理海量的数据,有效处理这些数据使得用户可以方便操作成为头等大事。
具有定位功能的设备
GPS以及其它具有定位功能的技术的激增,促使开发者开始找寻一种仍旧基于工业级SQL的新的查询方式,比如在空间或者多维情况下搜索数据。利用设备方位的应用需要执行多维搜索,并综合设备上的其他空间数据。
回想一下我们的设备维修工。假设他提前完成了一个服务,在进行下一个预定计划之前,不用打电话给分配中心,利用具有多维搜索功能的仪器,他就可以在当前位置和下一个服务点间找到一个等待中的预约,在时间和设备都容许的情况下完成这个临时加入的任务。通过他的这个具有定位搜索功能的强大设备,他节约了时间,减少了支出并有可能提高了客户服务。
与这样的搜索类似的企业级应用包括常见的比如人员调配一直到比较专业应用,比如位置识别与群体网络的综合。想象一下医院里的群体网络系统,医生可以与网络里的其他人交互位置,这样一个融合了个人联络数据和位置信息的系统方便于处理紧急情况下的查询。
RDBMS中进行空间搜索需要两个主要的因素。第一个是将特定数据类型转换为空间数据,其次是有效索引数据的方式。最理想的数据类型应该包括X、Y和Z三个坐标分量。X和Y坐标提供映射的矢量数据,Z用于区分这些数据。
以上面的医院网络为例,Z属性可以用来描述不同医生的专业。对于设备维修工,XY用来确定维修地点,Z可以用来描述待修设备的类型或者是否在保修期内。为了提供这些差异化,Z属性应该可以分为不同的字节。
Z属性是个32位的操作数,可以进行逻辑“与”“或”的操作。比如如果第五位代表餐馆,第六位代表亚洲,那么通过第五和第六位的位屏蔽操作就可以找到亚洲的餐馆。
有效的索引对于数据的搜索也很必要。最有效索引空间数据的方法是采用四叉树。四叉树将两维空间分割为四个子空间,把象限递归细分到每个象限中只有一个点。这些象限变为树形结构的叶子。
字母数字搜索的帮手
即使是非定位式的设备,有效找到静态数据的需求也会带来数据检索的问题。地址、号码、文件、客户信息以及其他海量的数据的记录都存储于手持设备中,这使得用户必须有系统的办法输入每个字母和数字。
现在新的嵌入式RDBMS技术可以混合增量文字搜索,它可以帮助用户渐进式的执行搜索,随着每个字符的输入缩小搜索结果,并在每个搜索条目下指导用户下一个可能的字母。在很多应用中已经采用了这个技术。
“别名”是一个更有用的技术,它通过使用变化的名字来帮助使用者找到所需。例如,维修工可以输入一个特定的类型号码来检索维修手册,或者是输入简单的“洗碗机”来获得一些待选的器具型号。别名搜索功能不仅可以通过描述文字来找到使用者的搜索对象,还可以更正误拼写,所以错误敲入的“吸碗机”也可以得到正确的结果。
标准的数据库结构包含表格、横向和纵向的数据。由每一列来定义数据的类型。例如,客户地址可以细分为街道、城市以及州等多个列。横行则是对应与每一列的数据。为了实现别名的功能,RDBMS需要能够建立重复的列。一个重复的列可以使每行具有相同特性的数据有不同的实现。比如对于维修工,这样重复的列可以包含洗碗机、洗衣机、干衣机以及冰箱等多个选项。
大海捞针式的搜索
有时用户并不知道他们到底要找什么。维修工对解决方案的最佳猜测没能奏效,或者按照特定的方案没能消除故障,此时怎么办?搜索技术在这种情况下可以提供一些近似的答案,这会很有帮助。
“什么器件会引起同样类型的问题呢?有什么其他的病会有同样的症状呢?什么药会有效呢?”传统的搜索对此类问题无能为力。新的数据管理系统通过特定描述标签解决了这个问题。
若要嵌入式RDBMS能够大海捞针,它需要合理地索引文字数据。有很多种方法实现这个目标。第一种是只根据整个文字串来建立索引,这种方法有很多优点,但是返回结果很有限。因此,n元语法索引成为最佳方案,它将整个文字串根据n分为几个唯一的小文字串,n通常在2到4之间。
关注嵌入式
新技术使得嵌入式设备的企业级应用日新月异。随着硬件变得日益强大,开发者将会呈现出更多的创新性应用和设备。
本文来源:EDN 作者:Dale Dasker