应用模块管理系统、应用模块执行方法以及虚拟机的制作方法

文档序号:6460088阅读:142来源:国知局
专利名称:应用模块管理系统、应用模块执行方法以及虚拟机的制作方法
技术领域
本发明涉及一种软件集成技术,特别涉及可以将应用软件的功能集 成在一起的应用模块管理系统、应用模块执行方法以及虚拟机。
背景技术
目前存在着大量的应用软件,但是用户在使用应用软件时,应用软
件之间的数据和功能不能够很好互通,比如在word (注册商标)文档 中,如何使用一个photo shop (注册商标)的"锐化"功能或者用mse 来画一幅图,如何在任意的软件中都能使用翻译的功能的工具。要实现 这样的功能,要在用户的计算机上安装很多的应用软件。有时仅仅是为 了打幵一种文件来浏览,为了完成一件工作,不得不安装很多软件,并 同时打开很多不同程序的窗口 ,被迫在不同的应用程序之间切换。
对于在同一种应用中,使用不同应用的功能,现在比较好的方式是 采用OLE技术和插件技术。
对于OLE技术来说首先要引入或者定义OLE对象,那么在使用时 才可以在另外一个程序中调用其他的程序来编辑OLE对象,否则就不 能使用,并且用户必须要安装不同的软件才可以,即使用户只需要其中 的一个功能,也必须要完整地安装到计算机上。
如果使用插件技术,首先应用程序要支持插接的结构,其次软件开 发者要针对不同的应用提供不同的插件,比如金山词霸(注册商标)的 插件要在word (注册商标)和acrobat (注册商标)中使用,就必须提 供两个插件来分别安装到不同的软件中。
各个软件都是孤立的,各自有一套自己的程序空间,数据空间,每 个软件都要重新构建和设计这样的环境,造成极大的浪费,同时用户使 用软件时,就必须安装很多软件,并被迫在不同的应用程序之间切换。 这样不仅是对计算机资源的严重浪费,而且也是对程序开发资源的严重
6浪费。

发明内容
本发明正是为了解决上述技术问题,提供一种可以简单将应用软件 的功能集成在一起,而不必安装完整的该应用软件,按需组合成自己的 个性化软件的应用模块管理系统、应用模块执行方法以及虚拟机。
为达到上述目的,本发明的应用模块管理系统,包括界面引擎, 包括选择单元,用于选择至少一个功能子模块,所述至少一个功能子模 块具有对应的应用模块;管理器,包括第一加载单元,用于从物理存储 装置中加载所述应用模块;执行器,包括执行单元,用于组织所述应用 模块,驱动至少一个所述应用模块的执行。
根据本发明的应用模块管理系统,可以改造现有的软件开发模式, 使程序开发向功能开发转变进一步细化软件开发的分工,用户可以按需 组合自己所需的程序,而不必购买完整的应用软件。例如,用户可以随 意在软件中加入word, photo sh叩,rose等等的部分或全部的功能,常用 的工作可以在一个软件中完成,不必切换。
在上述应用模块管理系统中,所述应用模块是计算机可执行的程序 模块,对所述程序模块设置有指针,所述执行器根据所述指针调用所述 程序模块。
在上述应用模块管理系统中,所述执行器还可以包括传递单元,用 于给每个所述应用模块分别传递参数。
在上述应用模块管理系统中,所述管理器还可以包括第二加载单 元,用于将持久化代码加载到所述执行器。
在上述应用模块管理系统中,所述界面引擎还可以包括提供输入 或者选择数据单元的接口;所述管理器还包括第三加载单元,用于将 所述数据单元加载到所述执行器。
在上述应用模块管理系统中,所述程序模块中可以包括通过程序
的Metadata描述形式声明的加载点、输入输出的数据类型以及数据的 呈现手段。所述程序的metadata描述形式包括XML的形式或RDF的形式。在上述应用模块管理系统中,还可以包括中间层,所述中间层包括绑定单元,用于绑定界面元素、数据元素和所述程序模块;处理单元,用于在所述执行器和所述界面引擎之间传递消息,更新数据和请求新的程序单元处理。
为达到上述目的,本发明的虚拟机,包括接口,包括数据访问接口;管理模块,包括,加载模块,用于根据程序模块的描述加载所述程序模块,通过所述数据访问接口将数据单元加载到数据空间中并进行管理;索引器,负责在所述数据空间中査询和检索所述数据单元,并输出选择的数据单元;执行模块,包括执行单元,用于组织多个所述程序模块,分别驱动多个所述程序模块的执行。
所述虚拟机还可以包括界面引擎,用于输入界面元素和数据元素;和中间层,包括绑定单元,用于绑定界面元素、数据元素和所述程序模块;处理单元,用于在所述执行模块和所述界面引擎之间传递消
息,更新数据和请求新的程序模块处理。
所述管理模块还可以包括合法性检査模块,根据数字签名来校验要加载的程序模块的可信性。
所述管理模块还可以包括DRM模块,对要加载的程序模块进行DRM验证。
所述执行模块还可以包括传递单元,用于对每个所述程序模块分别传递参数,构造参数堆栈和输出数据空间。
所述程序模块中还可以包括通过程序的Metadata描述形式声明的加载点、输入输出的数据类型以及数据的呈现手段。所述程序的metadata描述形式包括XML的形式或RDF的形式。
所述管理模块还可以包括维护单元,用于维护加载数据的整个生
命周期,并提供类型检查和合法性检查,自动的垃圾回收。
所述虚拟机还可以包括程序空间,所有程序模块由所述加载模块加载到所述程序空间。
所述接口还可以包括持久化接口,将持久化代码加载到所述程序空间。
利用上述虚拟机,就可以加载不同软件的不同功能模块,统一维护所有数据的类型检查和生命周期,并在不同的应用中传递数据。开发者
只需开发和某一功能相关的数据处理单元并用Metadata的形式声明自己,而不必构建完整的应用,不必维护数据的生命周期。也不必学习和了解要植入系统的接口。因而可以提高软件开发周期。
本发明还提供一种应用模块执行方法,包括选择步骤,选择至少一个功能子模块,所述至少一个功能子模块具有对应的应用模块;加载步骤,从物理存储装置中加载所述应用模块;处理步骤,处理所述应用模块,生成一个可执行的应用模块。


图1表示本发明的应用模块管理系统的主要构成图。
图2表示本发明的应用模块管理系统的处理流程的一实施例。
图3表示本发明的虚拟机的结构示意图。
具体实施例方式
以下,参照附图详细说明本发明的具体实施方式

图1表示本发明的应用模块管理系统的主要构成图。这种应用模块管理系统关键的部分是把软件拆散成合理的粒度(称之为程序单元),比如现在的word软件可以拆分成多个可以独立执行的程序片段,然后用一个通用的虚拟机统一管理,任意组合,用户可以把不同的软件,比如word软件的部分程序单元和photo shop软件的部分程序单元组合成一个应用,按需组合,属于一种开放式的应用模块管理系统。
这种应用模块管理系统主要包括三部分界面引擎(User InterfaceEngine) 10、执行器20以及管理器30。
界面引擎10呈现类似于浏览器的原理,支持基于脚本的组织方式来为用户呈现数据和交互的接口,在呈现时根据原始数据和显示样式描述来做界面的渲染,形成脚本,最后呈现给用户。界面引擎10可以包括人机交互的接口和选择应用模块的选择单元。
执行器20负责组织和驱动程序单元的执行,根据程序单元的指针调用程序,并为程序单元传递参数,构造参数堆栈和输出数据空间。因
9此,执行器20可以包括执行单元和传递单元。
管理器30负载管理程序单元和数据单元,将数据从各种物理存储 装置加载到执行器20,并将执行器20执行后的结果数据存储到各种物 理存储装置中,也可以允许加载持久化代码。上述物理存储装置,例如 可以是文件、数据库,网络等,其中包括程序单元库40和数据单元库 50。所谓持久化(Persistence),即是将数据(如内存中的对象)保存 到可永久保存的存储设备(如磁盘)中。持久化的主要应用是将内存中 的数据存储在关系型的数据库中,当然也可以存储在磁盘文件、XML 数据文件中等等。管理器30可以包括从程序单元库加载程序单元的程 序加载单元、从数据单元库加载数据的数据加载单元以及从数据单元库 加载持久化代码的持久化代码加载单元。
当界面引擎10向执行器20提交处理时,根据数据的ID向执行器 20发出请求,执行器20执行后返回给界面引擎10。界面引擎10和执 行器20之间还可以存在一个中间层,负责绑定界面元素、数据元素和 程序单元;负责在执行器和界面引擎之间传递消息,更新数据和请求新 的程序单元处理。
当管理器30所加载的是持久化代码时,则由执行器20来组织和驱动。
在上述应用模块管理系统中,程序单元通过Metadata的形式声明 程序的加载点以及输入和输出的数据类型,以及数据的呈现手段,并提 供功能说明的描述。
metadata的描述采用XML或RDF的形式,metadata既可以描述程 序单元的输入与输出也可以用来描述一个数据对象,这个数据对象必须 是可以由简单类型组合而来的。
所有发布的程序单元都由用于描述输入/输出的metadata和可加载 到执行器中的二进制程序组成,并且都只负责处理输入的数据并输出结 果,空间的分配和数据的处理流程由执行器处理。
对于程序单元的描述方式,包括程序的名称,返回值,参数列表(输
入数据和输出数据),例如可以将一个翻译程序单元简单描述如下 < function >
<aNAME=', translate " success=,,0,, fail=" -1" >〈PARAMS〉
<p Type="Input" dataType= "String" index="l" value=""></p> <p Type="Output" dataType-" String " index="2" value=""></p> </ PARAMS >
</a> </ function >
数据对象是数据单元的具体形式,包括数据的类型,由那几部分构
成,数据单元的类型名称等。数据对象的描述方式则为 < DataObject NAME="VERSION,,>
<d type="long" name="Major" value="07> <d type="long " name="Minor" value="0"/> <d type=" long " name="Build" value="07> <d type=" long " name="Revision" value-"0'V〉 </DataObject>
图2表示本发明的应用模块管理系统的处理流程的一实施例,由供 应商或用户提供的程序单元被保存在物理存储装置中的程序单元库 中,而用户提供的数据则被保存在物理存储装置中的数据单元库中。在 执行器中可以设置程序空间和数据空间,用于临时保存所集成的多个程 序单元和数据单元。在执行器中还可以设置具有高速处理能力的执行空 间,用于临时保存当前需要执行的程序单元,以加快程序单元的执行速 度。但也可以不设置执行空间,直接通过指针调用方式调用存储在程序 空间中的程序单元。
系统通过管理器将需要加载的程序单元从程序单元库中加载到执 行器中的程序空间(步骤l),并且根据需要,将数据单元从数据单元 库中加载到执行器中的数据空间(步骤2)。
执行器将程序空间中的程序单元和数据空间中的数据单元输出到 界面引擎,供用户通过界面选择需要执行的多个程序单元构成的功能组 合,并且选择该功能组合所需要的数据单元,并将选择结果返回到执行 器(步骤3、 4)。
执行器将用户所选择的多个程序单元和多个数据单元中,当前需要 执行的程序单元和数据单元从程序空间加载到执行器的执行空间(步骤 5、 6)。然后,执行器执行在执行空间中的程序单元,处理数据(步骤7)。 执行器将处理后的数据结果输出到界面引擎,将数据结果通过界厘 呈现给用户(步骤8),用户根据需要选择是否保存数据(步骤9), 当选择保存程序时,则执行器通过管理器将处理后的数据进行持久化, 即将数据从执行器的数据空间中持久地保存到数据单元库中(步骤 10)。
上述处理流程步骤并非全部必须,例如对于有些程序单元的处理并 不需要涉及对数据的处理,则上述有关数据处理的步骤就可以省略。而 且也可以根据所执行的程序单元的不同,还可以适当变更上述处理流程 步骤的顺序。
为了保证作为应用模块管理系统的完整性,还需要补充消息传递模 块、程序及数据索引器、drm模块和数据访问接口等辅助的部分,来构 成一个虚拟机。图3表示本发明的虚拟机的结构示意图。该虚拟机是以 程序单元的Metadata描述来加载和组织程序,用数据的Metadata描述 来做类型校验和生命周期维护。
虚拟机主要包含以下功能模块
1) 程序加载模块,负责读取并解析程序的meta data,根据程序单 元的Meta data来加载程序单元到函数表中,函数表中的函数以指针的 形式存在。每个程序单元都有自己的GUID (全局统一标识符)和数字 签名,表明自己的身份。而GUID可以保证对在同一时空中的所有机器
都是唯一的。
程序加载模块可以包括一个合法性检査模块,该合法性检査模块可 以根据数字签名来校验程序单元的可信性,避免加载恶意的代码。
程序加载模块还可以包括一个DRM模块,每个虚拟机都有一个自 己GUID和一个token用于标识自己对软件单元的使用权限;可以根据 程序单元的DRM key和虚拟机的token来计算出一个key,这个key可 以用来解开程序单元,并允许加载到合法的虚拟机中,否则将不能加 载。
2) 数据加载与维护模块,所有的数据都可以XML或RDF的形式 来表达,但是也可以用压縮和不同的编码方式来对文档进行加密,数据
12加载模块可以将数据加载到数据空间中统一管理。也允许软件提供商定 义自己的文件格式和管理方式,但需要软件提供商提供加载和持久化的 程序单元。数据一旦被加载到虚拟机的数据空间,就将被统一管理起
来,用一个ID来标识在不同的程序单元中传递。
数据加载与维护模块还负责维护加载数据的整个生命周期,并提供 类型检查和合法性检査,自动的垃圾回收等。
3) 执行引擎,其核心是程序执行模块,负责组织和驱动程序单元 的执行,根据程序单元的指针调用程序,并为程序单元传递参数,构造 参数堆栈和输出数据空间。
4) 数据访问接口,负责将数据从不同物理存储中(文件、数据库, 网络等)加载到虚拟机的数据空间;负责从虚拟机的数据空间中将数据 存储到不同的物理存储中(文件、数据库,网络等)。数据访问接口包 括持久化接口,可以允许加载持久化代码。持久化的执行由程序执行模 块来组织和驱动。
5) 索引器,负责在程序空间查询和检索程序单元,在数据空间中 査询和检索数据单元。
6) 程序单元库和数据/文件单元库
7) 中间层,负责绑定界面元素、数据元素和程序单元;负责在执 行器和界面引擎之间传递消息,更新数据和请求新的程序单元处理等。
利用上述虚拟机,就可以加载不同软件的不同功能模块,统一维护 所有数据的类型检查和生命周期,并在不同的应用中传递数据。
通过采用本发明的应用模块管理系统,可以改造现有的软件开发模 式,使程序开发向功能开发转变进一步细化软件开发的分工,用户可以 按需组合自己所需的程序,而不必购买完整的应用软件。例如,用户可 以随意在软件中加入word, photo sh叩,rose等等的部分或全部的功能, 常用的工作可以在一个软件中完成,不必切换。
这种应用模块管理系统具有简单的优点,开发者只需开发和某一功 能相关的数据处理单元并用Meta data的形式声明自己,而不必构建完 整的应用,不必维护数据的生命周期。也不必学习和了解要植入系统的 接口。因而可以缩短软件开发周期。
权利要求
1、一种应用模块管理系统,包括界面引擎,包括选择单元,用于选择至少一个功能子模块,所述至少一个功能子模块具有对应的应用模块;管理器,包括第一加载单元,用于从物理存储装置中加载所述应用模块;执行器,包括执行单元,用于组织所述应用模块,驱动至少一个所述应用模块的执行。
2、 根据权利要求1所述的应用模块管理系统,其特征在于, 所述应用模块是计算机可执行的程序模块,对所述程序模块设置有指针,所述执行器根据所述指针调用所述程序模块。
3、 根据权利要求1所述的应用模块管理系统,其特征在于, 所述执行器还包括传递单元,用于给每个所述应用模块分别传递参数。
4、 根据权利要求1所述的应用模块管理系统,其特征在于, 所述管理器还包括第二加载单元,用于将持久化代码加载到所述执行器。
5、 根据权利要求1 4中任一项所述的应用模块管理系统,其特征 在于,所述界面引擎还包括提供输入或者选择数据单元的接口; 所述管理器还包括第三加载单元,用于将所述数据单元加载到所 述执行器。
6、 根据权利要求2所述的应用模块管理系统,其特征在于, 所述程序模块中包括通过程序的Metadata描述形式声明的加载点、输入输出的数据类型以及数据的呈现手段。
7、 根据权利要求6所述的应用模块管理系统,其特征在于, 所述程序的metadata描述形式包括XML的形式或RDF的形式。
8、 根据权利要求5所述的应用模块管理系统,其特征在于, 还包括中间层,所述中间层包括绑定单元,用于绑定界面元素、数据元素和所述程序模块; 处理单元,用于在所述执行器和所述界面引擎之间传递消息,更新 数据和请求新的程序单元处理。
9、 一种虚拟机,包括 接口,包括数据访问接口;管理模块,包括,加载模块,用于根据程序模块的描述加载所述程 序模块,通过所述数据访问接口将数据单元加载到数据空间中并进行管 理;索引器,负责在所述数据空间中查询和检索所述数据单元,并输出 选择的数据单元;执行模块,包括执行单元,用于组织多个所述程序模块,分别驱 动多个所述程序模块的执行。
10、 根据权利要求9所述的虚拟机,其特征在于,还包括 界面引擎,用于输入界面元素和数据元素;和中间层,包括绑定单元,用于绑定界面元素、数据元素和所述程 序模块;处理单元,用于在所述执行模块和所述界面引擎之间传递消 息,更新数据和请求新的程序模块处理。
11、 根据权利要求9所述的虚拟机,其特征在于, 所述管理模块还包括合法性检査模块,根据数字签名来校验要加载的程序模块的可信性。
12、 根据权利要求9所述的虚拟机,其特征在于, 所述管理模块还包括DRM模块,对要加载的程序模块进行DRM验证。
13、 根据权利要求9所述的虚拟机,其特征在于, 所述执行模块还包括传递单元,用于对每个所述程序模块分别传递参数,构造参数堆栈和输出数据空间。
14、 根据权利要求9所述的虚拟机,其特征在于, 所述程序模块中包括通过程序的Metadata描述形式声明的加载点、输入输出的数据类型以及数据的呈现手段。
15、 根据权利要求9所述的虚拟机,其特征在于,所述管理模块,还包括维护单元,用于维护加载数据的整个生命 周期,并提供类型检査和合法性检査,自动的垃圾回收。
16、 根据权利要求14所述的虚拟机,其特征在于,所述程序的metadata描述形式包括XML的形式或RDF的形式。
17、 根据权利要求9所述的虚拟机,其特征在于, 还包括程序空间,所有程序模块由所述加载模块加载到所述程序空间。
18、 根据权利要求17所述的虚拟机,其特征在于, 所述接口还包括持久化接口,将持久化代码加载到所述程序空间。
19、 一种应用模块执行方法,包括选择步骤,选择至少一个功能子模块,所述至少一个功能子模块具 有对应的应用模块;加载步骤,从物理存储装置中加载所述应用模块;处理步骤,处理所述应用模块,生成一个可执行的应用模块。
20、 根据权利要求19所述的应用模块执行方法,其特征在于, 所述应用模块是计算机可执行的程序模块,对所述程序模块设置有指针,所述处理步骤根据所述指针调用所述程序模块。
21、 根据权利要求19所述的应用模块执行方法,其特征在于, 在所述处理步骤中,对每个所述应用模块分别传递参数。
22、 根据权利要求19所述的应用模块执行方法,其特征在于, 在所述加载步骤中,还加载持久化代码。
23、 根据权利要求19 22中任一项所述的应用模块执行方法,其 特征在于,在所述选择步骤中,进一步选择数据单元; 在所述加载步骤中,还加载所述数据单元。
24、 根据权利要求20所述的应用模块执行方法,其特征在于, 所述程序模块中包括通过程序的Metadata描述形式声明的加载点、输入输出的数据类型以及数据的呈现手段。
25、 根据权利要求24所述的应用模块执行方法,其特征在于,所述程序的metadata描述形式包括XML的形式或RDF的形式。
全文摘要
本发明提供一种应用模块管理系统、应用模块执行方法以及虚拟机,应用模块管理系统包括界面引擎,包括选择单元,用于选择至少一个功能子模块,所述至少一个功能子模块具有对应的应用模块;管理器,包括第一加载单元,用于从物理存储装置中加载所述应用模块;执行器,包括执行单元,用于组织所述应用模块,驱动至少一个所述应用模块的执行。这样,可以简单将应用软件的功能集成在一起,而不必安装完整的该应用软件,按需组合成自己的个性化软件。
文档编号G06F9/44GK101477457SQ20081005590
公开日2009年7月8日 申请日期2008年1月2日 优先权日2008年1月2日
发明者昂 范 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1