数据资源共享的一种实现方法(技术发明专利书)

**缩略语的英文全称及中文定义**

BUIW:(BREW User Interface Widget   BREW用户界面的窗口控件系统

ABUIWF:(Applet BUIW’s  Form       应用的BUIW窗口

ABUIWW:(Applet BUIW’s  Widget    应用的BUIW控件

MWMS (Mini Windows Management System) 微型窗口管理系统

CDRMS:(Common Data Resource Memory Share公共数据资源内存共享

CDROI:(Common Data Resource Object Install公共数据资源对象安装

CDROS:(Common Data Resource Object Share) 公共数据资源对象共享

CDROU:(Common Data Resource Object Uinstall公共数据资源对象卸载

I/O (Input and Output)   输入与输出 

  一、技术开发背景

作为高通软件系统的BUIW子系统,是平台应用架构中处在应用层之下,BREW层之上的UI系统,主要为上层应用软件提供用户界面的接口系统,本质上担当一个MWMS的角色。软件最上层的应用软件的每个视窗通过MWMS提供的统一的封装的标准窗口接口对象和与这些窗口关联在一起的各种窗口控件(Widget)接口对象,对外部用户的I/O请求进行处理,提供友好可交互的图形化的功能操作界面。在BUIW应用框架上,每个应用都会创建很多的Form对象,这些Form内部也都会用到大量图片和标题性文本资源,这些图片和文本资源中除了与应用本身特点相关联而具有不同,需要各自应用独立提供外,其它的都是具有一致和相同性。但因为目前高通的BUIW的实现里,并没有包括相同的数据资源的共享机制,即每个构建的BUIW应用,在创建的每个Form中尽管有用到相同的图片或文本资源,还是采用的是“每次创建,每次加载”的数据资源使用方案,结果是大量的系统内存因各个应用窗口的加载相同的重复数据资源而被浪费。这在嵌入式系统里对内存使用效率要求尽可能高效和低耗的基本原则是不相一致的。为此,特提出一种在BREWBUIW应用架构上公共数据资源共享的技术方案。

                 

二、现有技术中与本技术方案的比较

当前应用每创建一个BUIWForm对象,都会使用相同的标题背景栏图片、关闭按钮图片,消息提示框的各种类型图标、标准的提示信息,按钮背景图片等等。这些公用图片或文本目前随每个创建的Form独立创建并占用应用的内存空间,下图所示的是现有的BUIW的公共数据资源应用结构:

  http://blog.5d.cn/user11/visualzb/upload/2007-08/s_20078161737501.bmp

           1、无共享的BUIW的数据资源应用模式  

    现有的技术方案尽管可以让各个应用定制特殊的Form,并在这些Form上使用特定于应用的资源数据,但对于每个Form上使用到的一些公用的数据资源彼此独立,重复装载,无疑存在以下的技术缺陷:

1 效率低下,消耗内存。随每个应用实例创建的Form,不断重复、独立的从同一个资源文件中加载公共的数据资源到各应用的独立内存空间,最终导致整个系统的内存空间大量减少,系统运行效率降低,而且内存消耗随启动应用数目、各个应用创建的Form对象数目规模成比例增长。

2 加载资源耗时,视窗打开慢。每个应用都要对新的Form加载一次公共的数据资源,而且Form切换到其它的Form时,同时要进行公共资源的释放和新的公共数据资源的加载,视窗的打开和相互切换随BUIW的公用数据资源的增加而迟延,应用操作有明显的延滞现象。

本发明与现有技术方案的区别是可以实现BUIW的多个Form实例对象间对公用的图片或文本资源的共享,节约系统内存提高系统运行效率,提升应用的界面操作速度,通过提供一个CDRMS机制,BUIW的每个Form可使用一份公用数据资源对象副本,系统的内存空间里只保留一份所有Form需要用到的公共数据资源。应用创建BUIWForm时,对Form的这些公用数据资源不需要重新从文件里每次都装载到内存里,只需通过已有的预先已准备的指向资源对象的指针,就可在Form中引用到那些公用的图片或文本数据,加快应用及系统运行速度,提高数据的可共享性。

、本发明所要解决的技术问题 

    为了实现BUIW的内部资源的多应用的多Form实例对象间数据共享,减少系统的资源消耗。大大降低因为系统的内存开销太大,导致系统的运行效率低下,甚至死机的风险

   为了实现BUIW的内部资源的文件装载与应用无关性,系统“一次装载,多应用内存共享”的资源共享方式。每个应用创建每个BUIWForm实例时,作为可公用的这些数据资源不必重复装载,加快应用的运行速度,提升系统效率。采用新技术方案后,BUIW的数据资源应用模式如下图所示

 
 http://blog.5d.cn/user11/visualzb/upload/2007-08/s_20078161752241.bmp
                                             2、有共享BUIW数据资源的应用模式
 
 
 四、 该技术方案所包括的所有步骤以及各步骤的详细情况

   CDRMS模块作为BUIW的一个扩展模块解决现有的BUIWUI层处理公用数据资源技术实现中带来的对高通系统的资源比较大的消耗以及系统运行效率低下的缺陷,对高通的目前BUIW系统进行了优化,使之BUIW系统运行更加高效,系统资源消耗更小。考虑到模块的功能特点,分为三个部分,即数据资源的加载及资源对象的创建CDROI),数据资源对象的共享CDROS),共享的数据资源对象的卸载CDROU)。

                                           http://blog.5d.cn/user11/visualzb/upload/2007-08/s_20078161752361.bmp

                                                       3、模块层次结构图

数据资源的加载及资源对象的创建CDROI部分,实现了BUIW公用的的数据资源文件加载和共享资源对象的创建在系统开始切换进入应用之前,由该部分完成所有共享数据资源(图片和文本)的文件装载并以对象的方式全局共享,上述图4反映了CDRMS模块的各部分结构关系

数据资源对象的共享(CDROS部分,是使用最频繁的一个接口。各个应用的每个Form通过该接口部分实现了BUIW的公共图片和文本资源的共享引用Form内部通过使用资源对象间接引用了共享的数据资源,创建窗口的UI元素

     共享的数据资源对象的卸载CDROU部分,实现了在系统关闭时,对共享的数据资源的引用清除和共享对象的释放或卸载过程,确保软件系统在退出BUIW子系统时,共享的数据资源的内存可以完全归还给系统  

在模块的三个部分中,前后两个部分分别是共享的初始化和共享的关闭过程,与应用无关,中间部分和应用结合紧密,是数据资源共享实现的核心部分。

                   http://blog.5d.cn/user11/visualzb/upload/2007-08/s_20078161752481.bmp

                  

                 4 共享方式下的BUIW系统应用结构

   系统初始化过程是在BREW层运行后,进入启动应用之前,会调用CDRMSCDROI完成全局共享资源的(以后所指的共享资源都是BUIW的可共享UI资源)文件到内存的安装和资源对象的创建

   所有的全局共享资源加载到系统的内存后,各应用实例运行创建Form对象及窗口控件,是通过BUIWForm模块提供的接口实例,由这些Form实例去调用CDRMSCDROS引用到共享资源对象,完成各应用实例对BUIW视窗的共享资源数据的访问,最终由应用显示出图形化的视窗界面

   BREW系统关闭或不需要BUIW运行时可以调用的CDROI完成已装载的共享资源的卸载,清空系统的共享内存区及删除相关资源对象恢复系统到共享前初始状态。以上的过程如5所示

   CDRMS模块的数据流图按以上的功能部分可为三种:一是共享资源安装(注册)流程;二是共享资源的应用内存装载流程;三是共享资源的内存卸载和对象释放流程

   安装(注册)流程:

http://blog.5d.cn/user11/visualzb/upload/2007-08/s_2007816175321.bmp

                                           安装(注册)流程

    在安装过程中,BREW的初始化过程通过CDRMSCDROI接口去访问共享资源文件,最终调用IFILE接口把共享资源装载到系统的共享内存区,并返回安装结果和并创建共享对象回溯到上层,系统检查返回结果,确定是否已完成共享资源的安装

  应用内存装载流程:

                                   http://blog.5d.cn/user11/visualzb/upload/2007-08/s_20078161753121.bmp   

                                应用对共享资源的内存装载流程 

    应用共享资源的装载包括共享资源对象的快速查找和资源对象与From的数据捆绑是否装载资源成功消息由CDROS接口逐层上报,请求资源的最上层应用检查装载结果消息,最终完成一次资源请求/应答的加载过程

共享资源的内存卸载流程:

       http://blog.5d.cn/user11/visualzb/upload/2007-08/s_20078161753241.bmp          

                            

                                     共享资源的内存卸载流程

    通过共享资源的卸载流程,由BREW在系统关闭过程中直接以事件触发BUIWCDMRS模块关闭应用的资源共享CDMRS再通过CDROI接口完成实际共享资源对象的释放和共享资源内存区的清除操作

 五、本技术的应用价值

     通过将应用关联的BUIW共享数据资源的文件加载过程从应用中独立出来,改成系统全局公共数据资源共享的,统一由系统预先一次装载的,应用多次内存引用的应用模式。该方案实现了对现有BUIW系统的重大改进,使BREW以及应用系统的运行更加高效和稳定

解决现有高通BUIW系统不能大量加载共享数据资源的技术缺陷

   1、明显节省了系统的内存资源,增加了系统运行稳定性

   2、构建在BUIW之上的应用的资源数据加载速度明显加快,应用运行效率提升

3、改善和加快整个BREW系统的运行速度。

                       

 

标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commenttime}{commentauthor}

{CommentUrl}
{commentcontent}