嵌入式中间件范文

2024-07-29

嵌入式中间件范文(精选3篇)

嵌入式中间件 第1篇

1 面向行业应用的嵌入式编程中间件的简要概述

嵌入式系统如今逐渐被广泛应用, 对功能更高的要求让系统本身更加复杂化。现阶段硬件配置与计算机系统正在逐步提高, 大家对嵌入式软件开发质量、规模等要求也更加苛刻, 种种因素挑战着此项软件的开发。在这样的背景下, 嵌入式中间件便成为了软件平台在未来阶段的发展方向。

嵌入式中间件即为在嵌入式程序和嵌入式系统间使用中间件。此中间件在编程接口方面有着统一化的规范, 提供给应用程序操作系统的功能。应用编程接口的统一化封装了整个嵌入式系统, 使其形成虚拟化操作系统。此虚拟操作系统是对嵌入式系统的继续加工, 其使得嵌入式程序有更强的可维护性、可移植性和代码继承性, 也使得嵌入式软件完成开发的周期逐年缩短。

一般情况下, 嵌入式操作系统可以为用户提供调度控制、消息队列、时钟管理、内存管理、I/O驱动等接口, 实现这些接口功能可采取如下方式:先完成最小操作系统原语闭集的实现, 接着通过实际应用再完成扩充。

2 此项中间件的实现技术与分析

2.1 国外研究现状

国外对编程接口统一问题的研究起步较早, 80 年代初期相关研究工作就已经开始逐渐展开。

80 年代末期ISO组织与IEEE联合制定了POSIX标准, 此项标准依照UNIX系统的接口调用标准完成。其实现了操作系统接口调用的统一化, 只有与PIOSIX标准相符的系统才可以实现UNIX程序的运行。

欧洲汽车电子相关行业提出了OSEK_VDX接口标准, 此项标准专门为实时、分布式系统结构定制, 其主要目标为在汽车工业中进行嵌入式应用。OSEK_VDX对网络管理、通信及操作系统的问题较为关注, 在其四个模块内用户可以按照需要完成配置。这四个部分有着如图1 所示的关系。

2.2 嵌入式中间件设计的相关理论

2.2.1 面向对象的设计模式研究

封装接口有三种方法、抽象类中、函数回调、条件编译。现阶段很多操作系统采用前两种方法, 然而随着开发规模的逐渐扩大, 此类方法很多缺点也日益明显:一致性差、容易出错、有强制性等。将C++、OO的模板、重载及抽象等特性合理利用, 能较好地完成接口的封装与增强, 为嵌入式平台提供编程界面及灵活性较好的定制能力。

缩减软件开发周期、提高软件质量、减小开发成本是开发软件面临的重要要求, 而要想达到这样的要求务必要确保软件产品有较好的可复用性。而面向对象的设计思想与方法可以确保软件可复用性的提升, 其编程语言、构架与组件认可度高, 其技术使软件质量得到提升并减少软件开发的成本。

运用面向对象的模式进行设计有着如下优点:其一, 有效减小通信类软件开发的耗资;其二, 降低软件开发时的错误率;其三, 改善软件可扩展性与模块性, 提升软件整体质量;其四, 增强软件可复用性;其五, 提升嵌入式软件研发平台的性能。

2.2.2 开放实现的中间件设计初探

为满足不同客户的需求, 笔者选取了开放实现的嵌入式中间件完成设计。开放实现旨在让编程人员在缺省的实现与需要相满足时, 通过常规方式使得模块基本功能得以使用, 如果有需要能够用相应的策略控制模块的实现。除此之外, 开放实现力求确定实现策略、独立完成功能问题的处理。采用这样的模块, 需要提供元界面、基界面两类功能界面。

分离开元界面与基界面, 在开放实现中是基本原则。然而, 针对元界面的使用, 要注意范围控制、概念分离、渐增性及强壮性等几个原则。

2.2.3 可移植的中间件设计研究

现阶段在完成嵌入式中间件的设计时, 往往针对某一操作系统进行, 对系统进行更换时就要依照新系统完成中间件的重新设计。这会导致更换系统时付出大量工作。

通过分析虚拟文件系统, 笔者认为设计中间件时可以依照虚拟文件系统的整体结构来进行。操作系统和应用软件不进行直接的交互, 而是运用中间件完成交互, 扩展操作系统的功能, 并对操作系统进行隔离。

系统总体结构往往分成三部分:首先是VFS部分, 即系统对外的接口, 使用文件系统的任何程序都要经过此层接口;接着是Cache, 系统通过此层缓冲机制的应用来实现速度的提升;然后是实际文件系统, 典型如vfat、ext2 等。

3 此项系统的功能扩展库

操作系统扩展简称OSE, 其是运行在嵌入式OS与UNIX之上的扩展软件包。此中间件扩展、增强了系统的调用。笔者对OSE的体系展开简要概述, 其总体结构如图2 所示。

运用OSE的工程内, 有如图3 所示的运行环境。

此扩展库提供十五个模块, 典型如文件存取模块、信号量模块、通信模块、内存管理模块等, 不同模块作用不同。OSE本身的屏蔽功能确保了不同操作系统间能实现互操作及通信, 扩展库结构如图4 所示。

参考文献

[1]揭育柱.面向移动计算的RFID中间件的设计与应用[D].华南理工大学, 2010.

嵌入式中间件 第2篇

摘要:介绍中间件的基本概念,包括中间件的定义、特点、应用现状及未来发展趋势。在此基础上,针对嵌入式地理信息系统,给出如何将中间件思想应用在该系统设计上,以满足系统能够在各种异构平台上运行的要求。

关键词:中间件 嵌入式地理信息系统 适配层

引言

随着计算机软件技术的迅速发展,应用程序的规模也在不断扩大。应用范围也更加广阔。这不仅存在着多种硬件平台(例如台式机、嵌入式系统),而且在这些硬件平台上,通常又存在着多种的通信介质(例如串口、USB口等)、通信协议(例如TCP/IP等)及操作系统软件平台(例如Windows、Linux、Nucleus等)。我们的软件开发往往要求能够在这些异构的硬/软件平台上运行。

为此,我们引入了“中间件(Middleware)”的概念。本文在介绍中间件基本概念的基础上,结合研究项目“嵌入式地址信息系统的开发”来说明如何以中间件的形式设计该系统。

1 中间件的基本概念

1.1 中间件定义及作用

中间件是位于平台(硬件和操作系统)和应用之间的`通用服务,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。也就是说,中间件是位于底层硬件/操作系统平台之上,应用层之下的中间适配层。该层向下屏蔽掉硬件平台或操作系统平台的差异,向上为应用层操作一个统一的标准接口,应用层的开发基于该接口进行。在以下定义下,中间件具有如下特点:

*满足大量应用的需要;

*运行于多种硬件和OS平台;

*支持分布计算,提供跨网络、硬件和OS平台的透明性应用或服务的交互;

*支持标准的协议;

*支持标准的接口。

在中间件设计思想下,软件的开发变得更加简单。首先,当系统硬件/操作系统平台改变时,只需改变中间适配层的几个参数,只要保持中间件层对应用层的接口定义不变,就可以直接将应用程序移植过去运行。所有的代码只需编写一次就可在任何系统上运行,大大缩短了系统研制的周期,提高了开发效率,同时还保证了系统的高伸缩性、易升级性稳定性。

其次,由于中间件屏蔽了底层平台差异,提供了标准的封装接口,使应用层以组件的形式实现为可能。用户可以根据自己的需要将各个组件有选择地进行组合,像搭积木一样,构成自己的应用系统。

世界著名的咨询机构Standish Group在一份研究报告中归纳了中间件的十大优越

分布式实时嵌入式中间件的调度体系 第3篇

在分布式实时计算中,动态分布式实时中间件越来越需要一种方法实现端到端的时间限制。实时CORBA1.2实现了一种很灵活的调度机制,可以在分布式系统的节点之间传递调度参数,但是所有的调度策略都是针对本地的。每个端系统中都有一个本地调度器,这些调度器使用的参数是由分布式线程传递过来的,所以在分布式线程所经过的每个节点上使用的调度参数相同。例如,一个分布式线程跨越了两个节点的端到端的执行路径,就是说这个分布式线程需要在两个节点上共同完成,在每个节点上以一个子任务的形式,由本地调度器调度执行。第一个节点的本地调度器就会根据传递过来的参数把整个任务的截止期作为它的中间截止期。这样就很可能因为第一个子任务使用了过多的时间而使得第二个节点没有足够的时间来执行第二个子任务。上面叙述的问题主要在于系统缺少了一个全局的分布式调度来为本地调度器提供更加合理的参数。

实时CORBA1.2定义了分布式线程以支持动态分布式环境下的实时计算,但是,该标准不能掌握全局信息,所以不能进行全局调度。分布式调度体系的设计与实现,会使用应用程序指定的端到端的调度参数和本地调度器一起实现全局的分布式调度。

2分布式调度体系的设计

一个分布式线程(Distributed Thread,简称DT)是一个端到端的抽象的控制流,它由一些子任务构成,每个子任务在不同的节点被调度执行[2]。每个DT具有全局唯一的标识。可以透明地穿过任意多个节点。在DT这一级进行并发调度。当一个DT被调度到以后,每个时刻它只在一个节点上执行。一个DT在经过每个节点的时候都会携带它的执行信息,包括调度参数(比如执行时间、截止期和重要性等)、标识和安全度等。如图1描述了分布式线程的执行路径的几种情况。

由于一个DT分布在多个节点上面,在每个节点以子任务的形式被调度执行,但是该DT产生时获得的调度参数是针对整个DT的,而不是这些分布在各节点的子任务。所以为了让本地调度器调度DT子任务的时候获得更加准确的参数,必须能够提供一种机制来为各个子任务计算调度参数。如果本地调度器采用不同的调度算法,就会需求不同的参数,因此根据不同的本地调度算法,分布式调度单元计算全局信息时就要采用不同的算法。这里只讨论本地调度器采用截止期调度算法的情况,所以本节讲述一些经典的中间截止期计算算法,为本地调度器提供服务。

2.1经典的算法

分布式调度体系的目的是提供一种机制来实现一些已经存在的经典的中间截止期算法。这个部分主要描述和比较这些算法。中间截止期算法为分布式线程的各个子任务计算截止期。下面将简单介绍几种计算中间截止期的调度算法[1]:最终截止期、有效截止期、比例截止期和规格化比例截止期。

最终截止期(Ultimate Deadline)就是每个子任务都使用端到端任务的总的截止期。用这种方法计算中间截止期最简单。这种方法有明显的缺点。当第一个子任务用完所有的时间,那么整个任务就会不能在截止期之前完成。有效截止期(Effective Deadline)是用端到端的截止期减去接下来的所有子任务的执行时间来获得当前子任务的中间截止期。这样也给了第一个子任务太多的时间,可能会使得其他子任务不能在截止期之前完成,从而使得整个任务丢失截止期。比例截止期(Proportional Deadline)使得每个中间截止期在端到端截止期中所占的比例与子任务的执行时间占总执行时间的比例一致。换一句话来说,执行之间越长,中间截止期越长。规格化比例截止期(Normalized Proportional Deadline)是比例截止期的改进版本,它考虑了处理器的繁忙程度,在比较忙的处理器上执行的子任务中间截止期要长些。中间截止期是进行全局调度的一项重要的参数,不能简单地在本地调度器中完成。

分布式调度体系可以设计成可插入模式,这样就可以根据意愿采用不同的中间截止期算法。

2.2分布式调度体系的框架

分布式调度体系框架一共有五个组件,该框架可以实现端到端的分布式调度,使任务不能在截止期之前完成的可能性变得更小。在实时CORBA1.2中只有DT和本地调度器两个组件,图2中其他的组件是在该标准的基础上扩展的。下面对框架中的各组件功能逐个进行介绍。

(1)分布式线程在整个系统中是一个可调度实体。当这样一个实体产生的时候它就会有一些调度参数,比如端到端的截止期。当DT在不同的节点被调度的时候,它都会携带它的参数。本地调度器可以从分布式调度代理获取经过分析计算后得到的信息,有了这些信息,本地调度器可以提供更好的服务。

(2)本地调度器可以实现多种调度机制,比如EDF、固定优先级调度和截止期调度等。这里只讨论截止期调度。

(3)分布式调度代理是一个可以在后台运行的程序,每个本地调度器都有一个分布式调度代理来提供全局调度信息。它主要用来和分布式调度单元通讯,比如传递参数发送消息等。使用分布式调度代理可以在远程调用分布式调度单元的时候减小开销。

(4)分布式调度单元的作用是为DT的各个子任务计算调度信息。它能够与系统仓库和分布式调度代理方便地进行通信。

(5)系统仓库中存放一些用来进行全局调度的信息。这些信息包括端到端的任务的标识、他们在哪些节点上运行和他们的调度参数等等。

整个框架的主要功能在于分布式调度单元对系统进行全局分析,给各节点的本地调度器提供合理的调度参数,对DT进行正确地调度,保证端到端的任务在截止期之前完成。

一个DT产生以后,如果它被调度执行,当前执行该DT的节点上的本地调度器就会调用分布式调度代理,分布式调度代理调用分布式调度单元,由分布式调度单元来进行全局分析,来获取该DT的信息并返回给分布式调度代理,然后分布式调度代理把信息返回给本地调度器。本地调度器获取了更加准确的调度参数,使得该DT更加容易在截止期之前完成。在CPU空闲的时候,分布式调度代理会自动调用分布式调度单元来获取参数。需要的时候本地调度器就直接从分布式调度代理中取得信息,而不用调用分布式调度单元。这样可以减小系统开销。

为让分布式调度单元能够很好地发挥作用,在框架中设置几个调度点。如图3所示是在实时CORBA1.2的基础上进行改进并对其进行扩展以后的框架。图中有7个调度点,在每个调度点都可能需要调度分布式调度单元。调度点就是调度器被调用的地方。这7个调度点分别是:Begin_Scheduling_Segment(BSS)、Update_Scheduling_Segment(USS)、End_Scheduling_Segment(ESS)、发送请求、接收请求、发送应答和接收应答。在CORBA1.2中有前三个调度点,后面的四个是在CORBA1.2的基础上增加的部分,这样可以提供更好的服务。

3实验分析

实验由3个分布式线程和4个节点机组成,3个分布式线程是DT1、DT2和DT3,4个节点机是NODE1、NODE2、NODE3和NODE4。DT1在第一个节点机上运行,DT3在第三个节点机上运行。DT2分成3个子任务分别在NODE1、NODE2和NODE3上运行,子任务DT21在NODE1上,子任务DT22在NODE2上,子任务DT23在NODE3上,分布式调度单元和系统仓库放在第四个节点上面。

实验分四次分别在四种不同的环境下完成。这四种情况分别是:仅仅在实时CORBA1.2(RTC1.2)上而不使用分布式调度体系、分布式调度单元中使用最终截止期(UD)、分布式调度单元中使用有效截止期(ED)和分布式调度单元中使用比例截止期(PD)。表1是三个分布式任务的一些信息和调度参数。

表2描述了各任务的中间截止期。DT1和DT3只在NODE1上执行,所以不管什么情况下其截止期就是其周期。DT21、DT22和DT23都是DT2的子任务,所以要按照不同的截止期算法把DT2的周期分配给各个子任务。表3描述了在100个周期内各个任务不能在截止期之前完成的周期个数。实时CORBA1.2实际上跟分布式调度体系中使用UD算法所产生的效果一样,都是将整个DT的周期作为每个子任务的中间截止期。所以试验结果差不多。在这两种情况下,前面的子任务时间放的太宽,后面的任务很难在截止期之前完成。分布式调度体系中使用ED算法时,第一个子任务时间放的太宽,后面的子任务在遇到阻碍的情况下也不能在截止期前完成。分布式调度体系中使用PD算法时,所有任务都在截止期前完成。

4结束语

本文主要在中间件中为调度器提供一种全局的视野,可以获得符合全局的调度参数,因此不至于只限于局部而使用不准确的调度参数。分布式调度单元要根据不同的本地调度策略来计算全局调度参数,所以在分布式调度单元中要有支持各种不同调度策略的机制。这是需要完善的地方。

参考文献

[1]B.Kao,H.Garcia-Molina.Deadline Assignment in a Distributed Soft Real-Time System.in the proceedings of the13th Inter-national Conference on Distributed computing Systems.1993.

[2]P.Li,B.Ravindran,H.Cho and E.D.Jensen.Scheduling Distributable Real-Time Threads in Middleware.IEEE International Conference on Parallel and Distributed Systems,2004.187~194

[3]K.Bryan,L.C.DiPippo,V.Fay-Wolfe,M.Murphy,J.Zhang,D.T.Fleeman,D.W.Juedes,C.Liu,L.R.Welch,D.Niehaus,and C.D.Gill,Integrated CORBAScheduling and Resource Management for Distributed Real-Time Embedded Sys-tems,RTAS2005,San Francisco,California,March7-10,2005.

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

【嵌入式中间件】相关文章:

嵌入式构建06-02

嵌入式网络06-25

嵌入式教育06-27

非嵌入式07-18

嵌入式程序09-01

嵌入式测试09-23

嵌入式监测论文05-24

嵌入式生成代码05-31

嵌入式战略论文06-30

嵌入式监测系统07-07

上一篇:混合注射下一篇:桥头跳车病害