对于嵌入式系统来说,自主研发和购买两种选择的交替出现延续着软件业的食物链。嵌入式系统的硬件开发商长久以来一直采用购买成品商业组件(COTS)的方式,来缩短研发时间,减少研发成本。相反,嵌入式系统软件开发者却倾向于自主研发。
RTOS与COTS
嵌入式实时操作系统(RTOS)销售商们也许更喜欢通过购买COTS软件的方式来控制软件开发商。究其原因,除了技术方面的限制因素外,还在于成功的市场营销。由于嵌入式系统已经发展得十分复杂,要开发一个功能强大的RTOS就更加困难了。而且对于绝大多数只是应用基础嵌入式技术的公司,开发一个定制RTOS是很不现实的。
对于中间元件和其它复杂软件来说也是如此,例如协议栈、信息管理和数据管理等。以协议栈为例,高性能的嵌入式网络需要快速、可靠的可重入TCP/IP堆栈。它要通过广泛的测试,能够与Windows、
Unix和其它TCP/IP堆栈相互配合。由于内存和动力的限制,应用嵌入式处理器的设备一般都需要轻型的操作系统和高效的堆栈实施。要求有以下特征:堆栈必须是排列紧密且具备模块化特性;必须是可设置的;可以使应用软件根据需要在不同的时间选择分配缓存。
嵌入式堆栈的设计必须消除传输延迟。要实现这一点,嵌入式堆栈需要在运行过程中消除数据复制。这一切都要依靠软件包的中断处理,而并非操作系统的调度。
由于硬件的寿命比软件更短,生产商不得不将嵌入式软件植入新的硬件平台。因此,嵌入式堆栈必须支持不同的CPU架构,而且易于从一个目标架构移植到另一个架构中。无论是从小到大,还是从大到小,都不需要另外对数据进行复制。
嵌入式实时系统的增长速度正越来越快,从而导致越来越多的用户选择购买COTS消息处理中间组件。相对于分布式PC架构来说,嵌入式系统通常携带瞬时数据,这些数据在被处理的过程中由一个计算单元转入另一个计算单元。分布式嵌入式系统至少有一点与其它系统相同,即正确的答案如果送交得太迟了,就会变成错误的答案。COTS通信中间组件可以消除原来烦琐的网络处理过程,使消息传输更加迅速,并且支持多地址通信功能。
嵌入式数据库管理软件
嵌入式系统的数据管理软似乎成长得过快,而超越了自行开发的范畴。随着互联网、高速无线互连、廉价内存及高速处理器的出现,嵌入式系统现在需要管理更多、更复杂的数据。管理更多的数据需要大规模的数据管理软件。换句话说,数据管理软件不能由于所管理数据量的激增而牺牲性能。更加复杂的数据需要数据管理软件必须能够管理复杂的体系结构和数据间的相互关系。
对于RTOS来说,由于所需应用软件和操作环境的增加,导致嵌入式系统的开发者们寻求一种新的COTS数据管理解决方案。该方案必须能满足对成本效果、可伸缩性及对复杂数据适应性的需要。
目前,对于嵌入式系统数据管理方案的需要主要有以下几点:
1. 大量更短、更快的处理过程
那些挑战数据管理性能的嵌入式系统应该具备非常高的数据处理速率,而单一处理过程的持续时间应该十分短暂(单一处理过程指的是对数据进行的一次基本操作,包括只读、写入或读写)。例如,机顶盒以10MB/s的速率从卫星上接收电子信息;IP路由器每秒可进行10万次路由处理;在传感器网络的帮助下,工业控制系统每秒可进行数万次信号传输。
因此,嵌入式系统的数据管理方案必须能满足应用软件的“实时”需要。这要求有极其轻便、灵敏的数据传送管理。由于系统架构间的各种通信延迟都将对速度产生巨大的影响,因此应用进程必须能与数据管理软件直接相互作用。
此外,由于嵌入式系统的不同任务有着不同的优先权,而且它们可以动态改变,因此嵌入式数据管理软件可以根据操作环境的变化,对数据管理过程的优先权进行排列。例如,为了适应输入速率的提高,数据输入系统必须对它的数据处理进程进行调节,以便释放输入缓存,避免数据丢失。在理想情况下,应用软件可以提高与写入数据相关处理过程的优先权,从而迅速清空输入缓存,但同时要牺牲其它处理过程的优先权,例如数据查询、数据读取等。当高峰过后,所有的优先权排列情况便又恢复到正常的状态。
2. 可分享数据和事件处理
嵌入式实时运算是一种典型的由事件推动的操作过程,它会对外界资源的中断做出相应的反应。新数据或发生变化的数据都会引发系统对它进行处理,例如,一个IP路由器向其它路由器发送一个路径选择表或工业控制器导致屏幕上出现一个警示信号等。为了避免在定期对数据库数据查询过程中出现不必要的处理过程,嵌入式系统COTS数据管理方案必须通过将事件传播到其它关联软件模块的方法共享事件处理。例如,一个由传感器产生的中断会导致数据库中的某个数值发生变化。这一变化最终将导致一个数据库事件,而这一事件将通知其它的相关软件模块所发生的变化。
3. 对复杂数据的管理及设计灵活性
嵌入式系统经常需要对高度复杂的数据进行管理。一个理想的嵌入式应用软件应能够在一特殊的结构中对数据库中的数据进行读写。对于C语言程序员来说,这意味着嵌入式结构、嵌套结构、原子类型中固定或不固定长度的各类阵列、白底或隐式数据,以及可选择数据单元。数据库的真正价值在于可以根据不同的标准进行检索。嵌入式系统数据库则需要支持单一或复合索引。理想情况下,数据库可以提供可由程序激活或关闭的索引。
4. 数据定义与源代码分离
嵌入式数据库管理解决方案还应具备将数据定义从应用软件源代码中分离出来的能力,从而可以使用户更灵活、更简单地对数据结构进行修改。这一点需要通过数据库管理系统的数据库主义语言(DDL)来实现。DDL主要用来表达数据组、数据属性(大小和类型)、获取方法及数据的其它特征。编译程序可以对DDL进行编译,验证其正确性,以供数据库管理系统软件使用。
5. 高有效性
诸如通信和网络基础架构之类的嵌入式系统必须十分健壮,即使在硬件或软件发生故障时也必须能正常工作。对于嵌入式数据库来说,这就意味着即使在所依附的硬件发生故障的条件下,仍然确保数据安全。当然,数据库必须备份到其它的硬盘上,简单地映射或复制是不够的。嵌入式数据库必须保证主数据库的所有备份数据库无论何时都是同步的。
6. 与其它系统共享数据
判断一个企业运营情况,往往要对企业的数据进行收集、整理和分析。事实上,企业或组织的所有嵌入式系统和设备都要随着用户数据收集能力、传输和获取需求的增加而不断升级。因此,嵌入式系统数据管理解决方案必须要能与企业中的其它系统进行数据共享。XML正在成为受欢迎的解决方案。COTS嵌入式系统数据库解决方案应该能兼容XML技术。XML是一种开放式标准,它拥有大量的技术信息及开放系统软件的支持。软件开发人员都希望可以将XML的兼容性集成到自行开发的数据库管理解决方案中。但是由于COTS厂商的产品定价正趋于合理,自行开发产品对于大多数企业来说越来越得不偿失。
总结
过去企业为嵌入式系统购买硬件设备,然后再根据项目的需要自行开发软件。现在一切都在改变,新的COTS嵌入式元件完全可以与那些长期开发的企业系统相媲美。这些系统的功能包括数据管理、报文管理和其它重要任务。但是通过仔细研究我们会发现,嵌入式数据库软件和其它新型COTS嵌入式软件存在许多差异。嵌入式数据库软件的开发、性能、可靠性和其它嵌入式需要都是独一无二的。COTS嵌入式软件的应用将拓宽嵌入式技术的发展空间,并优化它的发展进程,使其朝着更可靠、更经济的终端产品发展。
|