一种通用组件调度框架模型

一种通用组件调度框架模型
 

摘要:  本文首先分析了组件软件工程在嵌入式实时系统中面临的挑战;然后讨论了基于进程间通讯的嵌入式组件模型及其运行管理器——软总线,它提供了组件间通讯机制、调度机制、保证组件的即插即用等功能;最后在讨论了软总线中实时组件调度问题的基础上,提出了一种能集成多种调度策略和调度算法的通用组件调度框架模型,并分别讨论了其中调度属性和调度框架结构——属性分配器和请求调度器。
Abstract: In this paper , the challenge of CBSE in embedded and real time application is analysed, and a Soft-Bus based component model for embedded and real time application is proposed. Then the component schedule of Soft-Bus is discussed. Moreover, a General Component Schedule Framework is proposed in this paper, which may integrate several scheduling policies and many scheduling algorithms, and then the scheduling attributes and the scheduling components--attribute allocateeand request dispatcher are analysed.
关键词: 组件软件工程;软总线;组件调度;框架模型
1         引言
软件复用一直是软件工程追求的目标。软件复用在一定程度上提高了软件生产率,有利于解决软件危机。继结构化思想、面向对象的思想之后,面向组件思想的软件工程成为当前主流的软件开发模式。
组件是可用来构成软件系统的即插即用(Plug and Play)的软件成分,是可以独立地制造、分发、销售、装配的二进制软件单元。组件是有一定的功能,能够独立工作和能同其他组件装配起来协同工作的程序体,组件的使用和它的开发、生产无关。
面向组件的软件开发模式的基本思想是:根据领域分析得到的软件系统的需求描述,得到软件系统需要实现的应用框架,将复杂系统分解为若干个子系统,再细分为若干个组件,将已有的和新创的组件以某种有机合理的方式组织起来,再进行优化、调试、测试,最后形成软件系统。这种开发模式有如下优点:从根本上改变了软件开发模式,大大提高了开发效率;提高了软件重用率,保护了已有的投资;使开发者将更多的注意力放到业务流程和业务规则上去;使开发出的系统更加灵活,便于维护和升级;降低了开发人员的要求,在组件装配时不需要有很高的编程技巧,仅仅在构造组件时才需要对编程语言的熟悉和高超的技巧。
目前组件软件工程在传统软件领域中实施得较为成功。主要的组件技术有:微软的COM/DCOM是广泛应用于桌面应用领域的二进制级别的组件模型;对象管理组织(OMG)制定的CORBA规范广泛应用于分布式异构环境的应用系统中;而SUN提出的EJB组件则提供了在JAVA虚拟机中使用的商业应用组件技术;但是,上述主流组件模型在实时嵌入式应用领域中遇到了极大的挑战。实时嵌入式系统要求很快的响应时间、较高的执行效率、性能的可靠稳定、资源的最佳分配等。通用组件模型在运行时需要大量的底层基础设施的支持,且大多没有考虑非功能性限制,这些在实时嵌入式系统中都是受到很大的限制的。如COM主要局限于WINDOWS应用平台,而对在嵌入式应用领域中广泛使用的Linux则不适用,CORBA仅制定了组件互操作的规范,而缺乏具体的实现,同时存在资源消耗大等缺点。Java EJB则存在需要JAVA虚拟机的支持、开发语言较为单一的不足。因此,需要有专门的适应于实时嵌入式应用的组件模型。
目前的嵌入式组件模型主要有Koala模型、ECOS模型、PBO模型、Pecos模型等,在国内主要有EZCOM模型、Delta CORBA等嵌入式组件模型。但这些组件模型在不同程度上存在着不足。如Koala缺乏非功能性约束,Pecos仅适用于设备资源很受限制的现场总线,Ecos仅仅是源代码级别的组件模型。
2         基于软总线的嵌入式组件模型
软总线是组件集成的一个基础设施,是组件软件工程所采用的一种体系结构。计算机软总线是指为多种计算机语言编写的多个、多种类型的组件服务的一组虚拟的数据传输线。这组虚拟的数据传输线是软件,是一组通用的标准组件的接口界面,是一组标准的软件模块。它也是计算机操作系统与各种组件或组件与组件之间进行数据传输与联系的虚拟公共通道和接口界面。软总线是硬件总线的虚拟和映射,其出发点是保证建设过程的规范性,以及系统在应用中的可靠性、适用性和扩展性。图1是面向汽车电器的嵌入式软件系统的框图。从图中可以看出,软总线提供了一种即插即用机制,每个应用组件都通过软总线与底层的嵌入式操作系统或其他应用组件之间进行通信,从而完成整个应用软件的功能。
1 汽车电器体系结构图
在模型具体实现上,整个系统采用客户端、软总线、服务器的三级结构。每个组件设计成一个服务器进程,通过接口函数向客户端提供服务,完成相应的组件服务后向客户端返回执行结果。客户端应用以组件请求的形式向组件服务器提交服务请求。软总线则负责提供服务器与客户端之间的通信机制:接受客户端提交的组件服务请求,经过调度后依次提交给相应的服务器;接受返回的服务器服务执行结果,并转交给客户端程序。从上述结构可以看出,软总线实际上是整个应用系统的核心,负责客户端应用与服务器程序的通讯、调度、控制、接口功能。图2是软总线的基本功能框架图。
其中,通信模块关键是组件间数据传输协议的选择和设计,重点解决的是计算机操作系统与基于软件重用基础上的各种不同语言编写的标准、通用的软构件库之间的双向信息传递问题;调度管理模块主要是计算机操作系统通过软件总线实现对软构件的调用、安装和卸载;接口模块解决软总线和软构件库的接口问题;控制模块完成计算机操作系统与软件组装开发平台及构件库间进行通信和数据交换、数据传递的合理分配和控制使用软总线的问题。
2 软总线功能结构图
3         通用组件调度框架
实时应用在运行过程中,不仅有功能上的要求,而且有实时性能上的约束。实时应用的组件请求如果在给定的时间内没有正确完成,将对整个实时应用带来很大的影响,甚至导致整个系统的崩溃。组件请求通常存在执行周期、最坏执行时间、执行死限、优先级等实时约束。因此,对组件请求提出的对系统资源(主要是处理器资源)的使用请求进行分析,判断组件请求在给定的实时性能约束下是否能够得以满足,以及产生各个组件请求如何使用系统资源的优先级序列。这就是实时组件的调度问题。实时组件调度是软总线的一个重要功能。
<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值