一种支持应用程序动态加载运行的嵌入式系统的制作方法

文档序号:6601518阅读:511来源:国知局
专利名称:一种支持应用程序动态加载运行的嵌入式系统的制作方法
技术领域
本发明涉及嵌入式系统领域,特别涉及一种支持应用程序动态加载运行的嵌入式 系统。
背景技术
随着通信技术的飞速发展,电信网、计算机互联网、有线数字电视网日趋呈现多层 次的融合特性,“三网融合”成为通信技术发展的必然产物,国家政策层面也给予了高度重 视,是国家发展信息化的重要战略部署。“三网融合”的发展,为目前国内运营商向全业务 综合运营方向发展提供有力支撑,而运营商竞争的核心是能否向用户提供多样化、丰富的 应用服务产品。多样化和丰富的应用需要来自最大范围业务提供商的积极参与和创作,而 不仅仅是少数业务提供商或运营商自己的工作。终端作为直接面向用户的业务操控和呈现 设备,是业务应用的最终运行载体,运营商希望能够通过吸引更多的第三方应用开发商不 断的快速开发和部署新的增值应用,这就需要在技术上实现终端业务的快速开发、部署、运 行,降低业务设计以及接入运行的门槛。目前传统嵌入式终端业务应用开发运行多采用客户端集成的方式,业务应用程序 由应用开发人员开发完成后,以客户端软件库的形式交由终端开发人员进行软件移植,将 应用程序集成到嵌入式终端平台的整体软件系统中,再通过大规模的终端整体软件升级, 实现该业务的终端部署运行。此种应用开发方式,对于业务应用的丰富和业务开发商的引 入,存在诸多限制因素1、应用开发技术门槛高,开发周期长。目前嵌入式终端多种多样,在主芯片类型、资源配置、操作系统类型、软件架构等 各方面存在差异,应用开发因采取移植的方式集成到终端软件系统中,需要应用开发人员 对终端的软件架构熟悉了解,这对应用开发提出了较高的技术需求。而移植过程中,终端开 发人员与应用开发人员间的技术沟通磨合,势必造成应用开发周期的加长,无法实现业务 的快速开发部署。2、应用采用内置方式,对嵌入式终端资源配置带来挑战。应用程序以客户端软件库形式内嵌在嵌入式终端整体软件系统中,当应用开发快 速发展,应用数量极大丰富时,势必产生对终端资源配置的巨大挑战,造成终端硬件平台的 不断升级换代,使运营商反复重复投资,终端开发商技术重复投入,而分散新业务应用开发 的投入力度。3、业务应用更新流程复杂,维护成本高昂。新应用的开发部署,需应用开发人员、终端开发人员、终端生产厂家、运营商等产 业链各环节的参与,流程繁杂,势必造成维护成本高昂。并且某个应用的更新,需大规模用 户终端软件升级,带来运营风险提高。针对业务应用极大丰富的需求,针对现有应用开发的问题,急需构建一种将应用 程序开发与嵌入式终端平台隔离,并支持应用程序动态加载、运行具有完善的生命周期管理,适合嵌入式系统应用的基础软件框架,为业务应用的快速开发、部署、下载、运行提供技 术支撑。

发明内容
本发明的目的在于,为克服现有技术的应用开发技术门槛高,开发周期长,应用采 用内置方式,对嵌入式终端资源配置要求很高以及业务应用更新流程复杂,维护成本高昂 等缺点,从而提出一种支持应用程序动态加载运行的嵌入式系统。鉴于业务快速开发部署需求和嵌入式终端多样性特点,本发明提供一种支持应用 程序动态加载运行的开放的嵌入式终端基础软件框架,该框架是一个面向嵌入式终端应用 开发和动态加载运行的开放式终端基础软件平台。该软件平台能为应用开发商提供硬件无 关的开发环境,具备应用的动态发现、加载和管理功能,并能够整合终端系统的软硬件资源 为应用提供运行环境,并为第三方应用的运行提供任务管理和资源管理功能。本发明提出的一种支持应用程序动态加载运行的嵌入式系统,该系统包含框架 管理模块、应用执行引擎模块、基础功能组件库模块和API模块,其中,由上至下依次为 API模块、应用执行引擎模块和基础功能组件库模块;所述的应用执行引擎模块用于解释应用程序开发语言,为应用程序提供动态运 行环境;所述的API模块用于提供编程的程序接口,且采用开放的API接口 ;其特征在于,所述的框架管理模块是核心管理单元,用于实施对终端软硬件资源的统一管理 调度,负责嵌入式系统中应用执行引擎模块、基础功能组件库模块和API模块所加载的应 用程序的管理调度,该框架管理模块用于为所加载的应用程序提供系统资源获取和释放接 口,实现系统软硬资源统一管理和调度;其中,所述的框架管理模块,对同时运行的N个应用程序,能动态分配M个应用执 行引擎实例进行解释执行,其中1 <= M <= N;所述的基础功能组件库模块,用于供其他组件或应用执行引擎调用,将基础功能 组件分布到终端可访问的服务器上,终端运行时由所述的框架管理模块根据用户需要进行 远程加载。上述技术方案,所述的管理框架模块,包括初始化单元,用于在系统开机时建立 执行引擎的父本进程,当需要创建新的执行引擎时,从该父本进程创建子进程,能完成新的 执行引擎实例的初始化;及优化分配及调度单元,用于对应用程序和解释执行引擎进行优化分配,提供对进入嵌入式系统的应用代码与所需执行引擎个数的优化分配,该优化分配单元为嵌入式系统 的应用程序建立优先级,调度单元根据优先级提供一种可抢占的资源访问控制策略,该策 略为一个执行引擎实例可以执行多个应用代码,各应用代码占用相互独立的线程;新的 应用代码需要执行时,系统从当前执行引擎实例中为其选择合适的执行引擎,并保证新的 应用代码加入后不会引起该执行引擎上的应用代码之间发生资源冲突;如果当前系统中没 有合适的执行引擎,系统为其建立新的执行引擎实例;执行引擎启动新的线程解释执行该 应用代码,并为各应用代码提供事件转发机制。
上述技术方案,所述的基础功能组件库包括分布式管理单元,用于对分布于网络 服务器的各基础功能组件进行分布式管理,包含基础组件建立子单元,用于开发商对基础功能组件开发面向特定嵌入式系统的基 础功能组件,并为组件建立描述信息;验证发布子单元,用于开发商与运营商联合对新开发的功能组件进行合格验证, 通过后发布到基础功能组件发布服务器;及组件分发子单元,用于框架管理模块启动应用程序时依据应用程序对组件库的需 求,检查终端本地的组件模块是否具有,对于本地没有的组件模块,通过网络下载的方式, 从组件发布服务器下载所需组件模块。上述技术方案,所述的应用执行引擎运行于API模块的下层,基础功能组件库的 上层,是包含Java、JavaScript解释语言开发的应用程序的解释处理单元,为应用程序提 供动态运行环境,通过框架管理模块调度,实现应用程序的动态解释运行。所述的API模 块提供给应用开发人员进行编程的程序接口,接口架构于解释执行引擎之上,可被解释执 行引擎解析处理;采用开放API接口生成的应用程序,以一定机制发布到嵌入式终端可访 问的应用服务器上,可在嵌入式终端运行时,被框架管理模块发现并动态下载,进一步在管 理模块调度下,加载到执行引擎进行运行,而不需将应用程序以移植方式集成到嵌入式终 端的软件系统中。作为本发明的一个改进,所述的嵌入式系统还包括分级系统安全管理模块,用于 对框架管理模块、应用执行引擎模块、基础功能组件库模块和API模块进行分级式状态监 控和维护,具体采用三级进程管理子模块。所述的三级进程管理子模块,还包含第一进程管理单元,用于当操作系统启动后启动第一代进程,该进程单元用于启 动管理进程,并通过与管理进程之间的心跳报文实时监控管理进程的状态,当管理进程发 生异常时对其进行恢复操作;第二代进程管理单元,用于实现管理框架的相关功能,负责启动应用进程,分发事 件,并实时监控应用进程状态;及第三代进程管理单元,为JVM进程单元,用于负责启动应用线程和二次事件分发。上述技术方案,所述的管理框架模块负责应用代码与执行引擎的调度,具体步骤 为(1)基于操作系统的进程拷贝技术,在系统开机时建立执行引擎的父本进程,当需 要创建新的执行引擎时,从该父本进程创建子进程,能完成新的执行引擎实例的初始化;(2)对应用程序和解释执行引擎进行优化分配,提供一种对进入该嵌入式终端基 础软件框架的应用代码与所需执行引擎个数的优化分配方法。其中,所述的优化分配方法,具体步骤如下5-1) 一个执行引擎实例可以执行多个应用代码,各应用代码占用相互独立的线 程;5-2)新的应用代码需要执行时,系统从当前执行引擎实例中为其选择合适的执行 引擎,并保证新的应用代码加入后不会引起该执行引擎上的应用代码之间发生资源冲突;5-3)如果当前系统中没有合适的执行引擎,系统为其建立新的执行引擎实例;
执行引擎启动新的线程解释执行该应用代码,并为各应用代码提供事件转发机 制。上述技术方案,所述的分布式管理,组件可存储于远程网络服务器,框架管理模块 依据应用程序运行需要,从远程网络下载和加载相应组件到本地终端,具体步骤如下(1)基础功能组件开发商开发面向特定嵌入式系统的基础功能组件,并为组件建 立描述信息;(2)开发商与运营商联合对新开发的功能组件进行合格验证,通过后发布到基础 功能组件发布服务器;(3)框架管理模块启动应用程序时,依据应用程序对组件库的需求,检查终端本地 的组件模块是否具有,对于本地没有的组件模块,通过网络下载的方式,可从组件发布服务 器下载所需组件模块。本发明所提出的软件框架采用模块化开放式架构设计,各构成模块通过标准接口 以松耦合的形式结合在一起,内部管理模块除具备对应用的完善管理,同时具有对框架自 身构成模块如基础功能组件、应用执行引擎的管理功能,可实现但不限于功能组件、执行 引擎的注册、加载、更新、卸载等生命周期管理。其他开发人员所开发的执行引擎、功能组 件,在满足接口、功能、运行方式等要求的前提下,可通过管理模块的注册、加载,吸纳到本 发明的软件框架中。框架管理模块是所述软件框架的核心管理单元,实施对终端软硬件资 源的统一管理调度,负责框架中各功能模块及所加载应用程序的管理调度具有对所加载 应用程序的全生命周期管理功能,实现应用的发现、下载、加载、运行、卸载等过程管理调 度;具有对终端平台资源的统一监控调度,确保资源的高效利用并有效避免资源冲突;具 有用户事件分发处理功能,通过维护遥控器等输入设备事件监听,完成用户输入事件获取 并分发给相应的应用程序;具有软件框架自身组件的管理功能,可实现执行引擎、功能组件 等的注册、加载、更新、卸载等生命周期管理;具有系统状态的监控和维护功能,实时检测系 统异常,并进行恢复操作。本发明的优点在于,通过终端平台资源、能力抽象及解释执行引擎优化,将应用程 序与终端平台隔离,并通过框架管理模块,实现应用程序的发现、下载、加载、运行、卸载全 生命周期管理,使应用开发无需关心终端平台技术细节,并提供丰富的终端应用资源,为应 用程序的快速开发、部署、下载和运行提供技术支撑,具有良好的实用价值。


图1系统的状态监控机制图;图2本发明的嵌入式系统架构图;图3是本发明的框架管理模块构成示意图;图4基于本发明的软件框架的事件分发过程示意图。
具体实施例方式为使本发明的技术方案更加清晰,下面将结合附图对本发明做进一步的详细阐 述。本发明提出一种支持应用程序动态加载运行的嵌入式终端基础软件框架,该软件框架 运行于嵌入式终端平台中,通过移植层接口,与终端底层的驱动、操作系统等平台相关软件隔离,可集成到不同嵌入式终端平台中。该软件框架主要由基础功能组件库、应用执行引 擎、API模块和框架管理模块构成。附图1为系统的状态监控机制图;本发明所提供的嵌入式终端基础软件框架中各模块通过标准的移植层接口与终 端平台的底层软件隔离,可移植集成到不同的嵌入式终端平台,如图2所示。本发明所提出的软件框架,如图2所示,至少由管理框架、应用执行引擎、基础功 能组件库、API模块组成,其中1)所述框架管理模块是软件框架的核心管理单元,实施对终端软硬件资源的统一 管理调度,负责框架中各功能模块及所加载应用程序的管理调度。具有应用发现下载、应用 管理、应用调度、事件分发、资源管理、框架组件管理、应用执行引擎调度等功能子模块。应 用发现下载子模块负责应用程序运行前的生命周期管理管理应用程序的发现、下载、加载 和卸载操作;应用管理子模块负责管理下载到终端平台的应用程序,实现应用程序的加载、 卸载,应用程序下载后,以文件形式存储于终端平台特定目录下,为方便管理,每个应用程 序采用独立的目录,应用管理子模块维护一个下载应用程序信息的列表,列表中每一描述 项对应一个应用程序,应用程序的加载和卸载对应为列表项的添加和删除;应用调度子模 块负责应用程序的运行时生命周期管理,并提供统一的应用程序状态控制接口 ;事件分发 子模块负责输入事件向各应用程序的分发管理;资源管理子模块为应用程序和其他模块提 供统一的资源访问接口 ;组件管理子模块对基础功能组件库的组件采用分布式管理,能根 据用户需要动态从远程网络发现和加载相关组件,实现一种分布式的组件管理方法,并对 本地预加载的组件进行维护;应用执行引擎调度子模块为进入运行环境的应用程序选择已 有的执行弓I擎实例或创建新的执行引擎。2)应用执行引擎实现应用程序的解释执行,是应用程序的解释处理单元,为应用 程序提供动态运行环境,实现应用程序的动态解释运行;本发明软件框架所述的解释执行 引擎完全构建于基础功能组件库及终端平台移植层接口之上,通过接口调用终端的软硬件 资源能力;3)基础功能组件库是终端资源能力的集合,针对应用需求,每个组件均具有相对 独立的功能;本软件框架中,还以本地方法实现组合功能组件库,组合功能组件库中的组 件通过对独立功能组件接口调用,将多个功能集成到一起以标准接口形式提供执行引擎调 用;基础功能组件库为终端应用开发提供所需的功能支撑,提高代码复用效率,降低应用开 发难度;基础功能组件模块还为第三方开发接口提供本地方法支持,通过应用执行引擎的 本地方法调用机制提高应用执行效率;基础功能组件提供功能相关的API接口,供其他组 件或执行引擎调用;API模块为应用开发人员提供编程接口,API模块构建于应用执行引擎之上,可被 应用执行引擎解析处理;采用开放API接口生成的应用程序,以一定机制发布到终端可访 问的应用服务器上,并被终端框架管理模块发现和动态加载执行,而不需将应用程序以移 植方式集成到嵌入式终端的软件系统中;API模块与解释执行引擎相结合,利用应用执行 引擎的本地方法调用机制,通过扩展API组件和相应的基础功能组件进行接口扩展;API模 块采用解释执行语言,从而为应用开发者提供硬件无关的开发方法。本发明所述框架管理模块是整个软件框架的核心管理单元,负责框架中各功能模 块及所加载应用程序的管理调度。具有应用发现下载、应用管理、应用调度、事件分发、资源管理、框架组件管理等功能子模块。其构成如图3所示(1)其中,应用发现下载子模块实现新发布应用的发现和下载功能。应用的部署 发现可采用以下方法基于B/S架构的Web部署发现方法和基于C/S架构的消息通告部署 发现方法,但不限于这两种方法。采用基于Web的应用部署发现方法,应用服务器将所要发 布的应用程序以网页的形式呈现给终端用户,应用发现下载子模块通过终端功能组件库的 浏览器组件访问应用发布网页并呈现给用户,由用户选择希望下载的应用启动下载。而基 于消息通告的应用部署发现方法,应用服务器与嵌入式终端之间保持一个网络链接,新应 用注册到应用服务器后,服务器通过该链接向当前在线的嵌入式终端发送通过信息,终端 收到信息后根据发布信息和用户操作启动应用下载。应用下载可采用通用的下载协议,如 FTP, HTTP, TFTP等,也可采用私有下载协议。如果采用通用下载协议,终端得到应用下载协 议和下载路径后直接调用相应的下载器下载应用;如果采用私有协议,终端首先根据下载 提示下载私有协议下载器,然后启动私有协议下载器下载应用;下载后的应用程序存放到 指定目录。所发布的应用程序不仅包括JAVA字节代码,而是以“应用程序+应用描述”的方 式进行打包,完整的应用程序包可具有但不限于以下信息1)应用程序及程序运行所需要的各类辅助数据文件;
2)应用描述,可采用xml文件形式,其中集成了关于应用的详细描述信息。3)应用海报等图片资源,以确保应用展示的美观;(2)其中,应用管理子模块负责管理下载到终端平台的应用程序,实现应用程序的 加载、删除。应用程序下载后,以文件形式存储于终端平台特定目录下,为方便管理,每个应 用程序可采用一个独立的目录。应用管理子模块维护一个下载应用程序信息的列表文件, 列表文件中每一描述项对应一个应用程序,描述项包括但不限于以下信息
描述项名称 Γ^Μ数据类型 是否必选
SERVICE ID应用ID,应该可以唯一标识一个应用 I^tM
应用类型,四个字节,第一个字节用
SERVICE TYPE 于标识应用执行类型(JAVA或者JS,int0 默认为JAVA)
SERVICE NAME 应用的名称stringM
SERVICE PATH 应用的路径stringM
DESCRIPTION应用的描述String0应用管理子模块通过对列表文件的操作维护,实现对下载应用程序的管理。(3)其中,应用调度子模块实现应用程序的加载执行调度和应用生命周期管理功 能
a)应用调度子模块维护一个任务调度请求列表(TRL)和一个任务调度管理列表 (TML),当用户操作触发应用启动请求时,应用请求向TRL注册一个表项;应用调度子模块 实时监控TRL状态,一旦TRL不为空,则取出TRL中的表项,根据表项内容启动相应的应用 进程,并把应用进程信息加入TML ;b)应用调度子模块提供一个应用生命周期调度接口,应用程序和其他模块可通过 该接口改变特定应用程序的状态;应用程序在运行时有就绪、活动、暂停、销毁四种状态,应 用调度子模块提供应用程序的装载、启动、暂停和销毁四个功能接口,管理程序以及其他模 块均可通过这些接口控制相关应用程序的运行时状态;
c)应用调度子模块统计各应用的用户访问特性,根据用户访问关注度为各应用动 态建立优先级;d)应用调度子模块实时监控各应用进程的状态,一旦发现有应用进程发生异常或 退出,则强行终止未退出的异常进程,并从TML中删除相应表项。(4)其中,事件分发子模块负责统一捕获用户操作事件,并采用基于进程间通信的 方式进行事件分发。需监听事件的应用进程向事件分发子模块进行注册,子模块捕获事件 后分发到已注册事件监听的各应用进程。事件分发采用管道通信机制,事件监听注册表节 点包含应用进程号和传递事件所需要写入的描述符信息。应用程序启动时,事件分发子模 块为该应用程序建立事件监听注册表项,加入监听注册表,此时事件分发子模块会将捕捉 到的操作信息经过事件映射后传递给该应用程序进程;应用程序进入后台运行时,事件分 发子模块将应用程序对应的事件监听注册表项设置屏蔽标志,此时事件分发子模块不会向 该应用进程分发事件;应用程序从后台转到前台运行时,将其事件监听注册表项屏蔽标志 复位;当应用程序退出时,删掉其事件监听注册表项。分发过程如图4所示。(5)其中,资源管理子模块实现对嵌入式系统软硬件资源的统一管理和分配;资 源管理模块负责管理的主要资源有内存,实现内存分配的统一管理,应能避免因内存申请 过多引起的异常;解码器和解复用器等平台相关资源。应用程序启动时需向资源管理子模 块进行资源申请,以检查当前终端空闲资源是否满足应用运行的条件,如此将终端资源分 为三类已分配使用的资源、即将被使用的资源、空闲资源。资源管理子模块提供统一的资 源访问接口,应用程序和其他模块访问资源时必须通过该接口完成,如此该模块可检测到 所有的资源冲突即应用马上要访问的资源已经被其他应用程序占用。利用应用调度子模 块提供的应用优先级信息和应用状态调度接口,进行可抢占的资源访问控制。(6)其中,框架组件管理模块负责基础软件框架自身解释执行引擎、各功能组件 等模块的管理,可实现但不限于功能组件、执行引擎的注册、加载、更新、卸载等生命周期管 理。其他开发人员所开发的执行引擎、功能组件,在满足接口、功能、运行方式等要求的前提 下,可通过管理模块的注册、加载,吸纳到本发明的软件框架中。确保软件框架的开放性特 色。(7)其中,系统监控子模块负责监控管理进程的状态,该模块在系统启动时启动一 个监控进程,监控进程与管理进程之间建立一个周期为1秒的心跳报文,报文可采用消息 队列实现,也可采用TCP连接建立,从而监控管理进程的运行状态,并在管理进程发生异常 是进行恢复处理,具体步骤为a)操作系统启动监控进程;
b)监控进程启动管理进程,并于管理进程建立心跳机制,管理进程每隔1秒向监 控进程汇报状态;c)管理进程启动执行引擎实例进程,并实时监控执行引擎实例进程的状态信号, 当发现其退出时进行相应资源清理工作;d)执行引擎实例进程为各应用建立新线程,并监控个应用线程状态;(8)其中,管理框架提供一个应用执行引擎调度子模块,与应用程 序解释执行引擎 相结合,对进入该软件框架的须同时运行的N个应用程序提供所需的执行引擎个数为M的 最优分配,其中1 < = M < = N,实现应用程序的执行调度;具体方法和步骤如下e)为每个执行引擎建立一个空闲资源列表,刚初始化时其空闲资源列表为S ;f)每个应用程序所需要资源列表为S,假设第j个执行引擎上已有应用代码k个, 则其空闲资源列表为Sj = S-sl-s2-. . . _sk,其中si为其中第i个应用程序所需要的资源 列表;g)当新应用程序进入运行环境时,假设其所需资源列表为sn,从当前执行引擎中 选择空闲资源列表包含sn的建立一个可用执行引擎列表L ;h)如果L为空,则初始化一个新的执行引擎运行新应用程序,否则从L中选择一个 执行引擎运行,该执行引擎空闲资源列表减去sn后最小。执行引擎的初始化采用操作系统的进程拷贝技术缩短启动延迟,具体方法和步骤 如下a)系统启动时启动一个执行引擎父本进程b)当需要初始化新的执行引擎时,管理框架通知父本进程建立子进程,并把子进 程相关信息汇报给管理框架,管理框架与该子进程通信,使其启动新的线程运行相关应用 程序(9)对基础功能组件库的组件采用分布式管理,能根据用户需要动态从远程网络 发现和加载相关组件,实现一种分布式的组件管理方法,具体步骤如下a)组件开发商开发面向特定终端的基础功能组件,并为组件建立描述信息;b)开发商与运营商联合对新开发的功能组件进行测试,测试通过后发布到基础功 能组件发布服务器;c)管理框架启动应用程序时发现程序的执行需要一组基础功能组件(k个) SCiscl, sc2, ...,sck}的支持,并且发现本地已经拥有其中的部分组件(m个)SC’ {scl, sc2,. . .,scm},其中m不小于零且不大于k ;如果k等于m,进入步骤5,否则进入步骤4 ;d)管理框架从基础功能组件发布服务器下载应用之程序执行需要而本地没有的 基础功能组件sc-sc’以及这些组件运行所依赖的其他本地没有的组件;e)启动应用程序。其中,基础功能组件描述信息中包含组件所适用的软硬件规格及其依赖关系,框 架管理利用组件的依赖关系和软硬件规格为特定终端选定需要下载的组件包;管理框架与 基础组件发布服务器之间采用HTTP、FTP等标准下载协议进行组件描述信息和组件本身的 下载;针对分布式组件管理会把网络延迟引入到应用程序的启动延迟,管理框架对组件 进行预加载策略,可采用但不限于如下两种方案
1)基于用户关注度的组件预加载策略各应用程序运行时会使用API模块和基础 功能组件库中的相关组件来实现其功能,用户关注度较高的应用被用户使用的概率较大, 因此其所用到的组件被调用的概率交大,本方法综合考虑用户对应用的关注度和终端存储 能力,将用户关注度较高的应用所需要的API组件和基础功能组件预加载到终端本地存 储,从而缩短用户启动应用时的期望延迟,提高用户体验。2)基于组件使用规律的组件预加载策略特定用户在使用终端应用过程中,可以 统计出常用的API组件和基础功能组件,根据使用频率是进行排序,将前N个API组件和基 础功能组件与加载到本地存储。本发明所述终端功能组件库是在嵌入式终端平台资源、能力合理抽象基础上,针 对性组合形成的满足应用开发需求并具备动态扩展能力的组件集合。功能组件的开发采用 C/C++等编译执行语言,确保库的执行效率。以静态库或动态链接库的形式集成于基础软件 框架中,以标准接口形式提供解释执行引擎调用。针对嵌入式终端应用需求,典型的功能组 件举例如下(1)浏览器支持标准HTML、JS网页解析,为B/S架构双向 应用提供功能支撑;(2)媒体播放器支持多格式音视频媒体文件、流式数据等的解码播放,为应用提 供媒体处理功能;(3)网络应用协议栈针对应用需求,基于操作系统内置的TCP/UDP/IP标准网络 协议栈所开发的扩展网络协议栈,如RTP、SIP、FTP等。本发明所述的解释执行引擎是应用程序的解释处理单元,为应用程序提供动态 运行环境,典型的解释执行引擎为JAVA虚拟机(JVM),相应的应用程序采用解释执行语言 JAVA开发。JAVA是由SUN公司发布的一种标准开放程序语言,其源程序被编译为字节码 (Bytecode),通过JVM解释为具体平台的机器指令进行执行,从而使应用程序与具体终端 平台隔离,并可在终端运行时,由JVM动态加载运行JAVA应用程序。面向应用程序开发,提 供标准的JAVA类库包及开放的API接口,同时针对终端平台特有的功能组件库资源,软件 框架扩展JAVA类库包,并提供扩展的API接口供应用程序开发使用,通过扩展接口的调用, 应用程序可访问功能组件库资源。最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参 照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方 案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明 的权利要求范围当中。
权利要求
一种支持应用程序动态加载运行的嵌入式系统,该系统包含框架管理模块、应用执行引擎模块、基础功能组件库模块和API模块,其中,由上至下依次为API模块、应用执行引擎模块和基础功能组件库模块;所述的应用执行引擎模块用于解释应用程序开发语言,为应用程序提供动态运行环境;所述的API模块用于提供编程的程序接口,且采用开放的API接口;其特征在于,所述的框架管理模块是核心管理单元,用于实施对终端软硬件资源的统一管理调度,负责嵌入式系统中应用执行引擎模块、基础功能组件库模块和API模块所加载的应用程序的管理调度,该框架管理模块用于为所加载的应用程序提供系统资源获取和释放接口,实现系统软硬资源统一管理和调度;其中,所述的框架管理模块,对同时运行的N个应用程序,能动态分配M个应用执行引擎实例进行解释执行,其中1<=M<=N;所述的基础功能组件库模块,用于供其他组件或应用执行引擎调用,将基础功能组件分布到终端可访问的服务器上,终端运行时由所述的框架管理模块根据用户需要进行远程加载。
2.根据权利要求1所述的支持应用程序动态加载运行的嵌入式系统,其特征在于,所 述的API模块提供给应用开发人员进行编程的程序接口,被解释执行引擎解析处理;采用 开放API接口生成的应用程序,以一定机制发布到嵌入式终端可访问的应用服务器上,当 嵌入式终端运行时,被框架管理模块发现并动态下载,进一步在框架管理模块调度下,加载 到应用执行引擎进行运行。
3.根据权利要求1所述的支持应用程序动态加载运行的嵌入式系统,其特征在于,所 述的管理框架模块,包括初始化单元,用于在系统开机时建立执行引擎的父本进程,当需 要创建新的执行引擎时,从该父本进程创建子进程,能完成新的执行引擎实例的初始化;及优化分配及调度单元,用于对应用程序和解释执行引擎进行优化分配,提供对进入嵌 入式系统的应用代码与所需执行引擎个数的优化分配,该优化分配单元为嵌入式系统的应 用程序建立优先级,调度单元根据优先级提供一种可抢占的资源访问控制策略,该策略为 一个执行引擎实例可以执行多个应用代码,各应用代码占用相互独立的线程;新的应用代 码需要执行时,系统从当前执行引擎实例中为其选择合适的执行引擎,并保证新的应用代 码加入后不会引起该执行引擎上的应用代码之间发生资源冲突;如果当前系统中没有合适 的执行引擎,系统为其建立新的执行引擎实例;执行引擎启动新的线程解释执行该应用代 码,并为各应用代码提供事件转发机制。
4.根据权利要求1所述的支持应用程序动态加载运行的嵌入式系统,其特征在于,所 述的基础功能组件库包括分布式管理单元,用于对分布于网络服务器的各基础功能组件 进行分布式管理,包含基础组件建立子单元,用于开发商对基础功能组件开发面向特定嵌入式系统的基础功 能组件,并为组件建立描述信息;验证发布子单元,用于开发商与运营商联合对新开发的功能组件进行合格验证,通过 后发布到基础功能组件发布服务器;及组件分发子单元,用于框架管理模块启动应用程序时依据应用程序对组件库的需求, 检查终端本地的组件模块是否具有,对于本地没有的组件模块,通过网络下载的方式,从组 件发布服务器下载所需组件模块。
5.根据权利要求1所述的支持应用程序动态加载运行的嵌入式系统,其特征在于,所 述的嵌入式系统还包括分级系统安全管理模块,用于对框架管理模块、应用执行引擎模 块、基础功能组件库模块和API模块进行分级式状态监控和维护,具体采用三级进程管理 子模块。
6.根据权利要求5所述的支持应用程序动态加载运行的嵌入式系统,其特征在于,所 述的三级进程管理子模块,还包含第一进程管理单元,用于当操作系统启动后启动第一代进程,该进程单元用于启动管 理进程,并通过与管理进程之间的心跳报文实时监控管理进程的状态,当管理进程发生异 常时对其进行恢复操作;第二代进程管理单元,用于实现管理框架的相关功能,负责启动应用进程,分发事件, 并实时监控应用进程状态;及第三代进程管理单元,为JVM进程单元,用于负责启动应用线程和二次事件分发。
全文摘要
本发明涉及一种支持应用程序动态加载运行的嵌入式系统,该系统包含框架管理模块、应用执行引擎模块、基础功能组件库模块和API模块,其中,由上至下依次为API模块、应用执行引擎模块和基础功能组件库模块;所述的框架管理模块是核心管理单元,用于实施对终端软硬件资源的统一管理调度,该框架管理模块用于为所加载的应用程序提供系统资源获取和释放接口,实现系统软硬资源统一管理和调度;所述的基础功能组件库模块,用于供其他组件或应用执行引擎调用,将基础功能组件分布到终端可访问的服务器上,终端运行时由所述的框架管理模块根据用户需要进行远程加载。本发明的嵌入式系统还包含分级的安全管理模块,具体采用三级进程管理子模块。
文档编号G06F9/445GK101833465SQ20101015986
公开日2010年9月15日 申请日期2010年4月23日 优先权日2010年4月23日
发明者孙鹏, 张辉, 朱小勇, 林军, 王劲林, 邓峰, 韩洪波 申请人:中国科学院声学研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1