CN101533345A - 基于可扩展标记语言配置信息的装置及方法 - Google Patents
基于可扩展标记语言配置信息的装置及方法 Download PDFInfo
- Publication number
- CN101533345A CN101533345A CN200810085718A CN200810085718A CN101533345A CN 101533345 A CN101533345 A CN 101533345A CN 200810085718 A CN200810085718 A CN 200810085718A CN 200810085718 A CN200810085718 A CN 200810085718A CN 101533345 A CN101533345 A CN 101533345A
- Authority
- CN
- China
- Prior art keywords
- configuration information
- markup language
- software module
- extend markup
- resolver
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了基于可扩展标记语言配置信息的装置及方法,该方法包括:包括以下步骤:可配置软件模块调度可扩展标记语言解析器读取以可扩展标记语言文件的形式存储在配置信息存储模块中的配置信息;可扩展标记语言解析器解析配置信息;以及可配置软件模块根据由可扩展标记语言解析器解析出的配置信息进行配置。本发明增强了维护、扩展、升级等能力,增加了可配置模块的可移植性,缩短了开发周期。
Description
技术领域
本发明涉及利用XML技术在不同平台间移植嵌入式软件模块时配置信息的方法。
背景技术
嵌入式软件开发过程中,一个公共软件模块需要在不同型号的产品间移植。这些不同型号的产品可能硬件芯片、软件平台、用户需求上都存在差异。为了使用一套基础代码适应不同的产品,公共软件模块通常需要抽取出一定数量的公共特性和需求,开发过程中针对这些公共特性定义差异性的配置信息,使得一个公共属性在不同平台上依据配置信息,适应不同的平台。
针对公共信息差异化配置,传统的做法是针对不同的产品定义不同的“宏”开关,在编写和编译代码的时候使用条件编译特性区分。“宏”在C/C++语言中普遍使用,但是有一些语言,例如Java,并没有C/C++那种“宏”的语言特性,这就限制了“宏”的通用性。更重要的是,“宏”只能在源代码编写和编译阶段能够控制和改变,当目标二进制代码下载到设备后,就不可改变了,这点限制了设备上软件模块的动态适应能力。
为了适应动态环境,另外一种做法是使用一个文件来保存一些需要动态改变的配置信息,例如保存用户设置的浏览器“主页”信息。当然,这些信息也可以保存到设备的非易失性存储器中(如Flash存储器),以保证设备断电的情况下,这些内容不会丢失。配置信息存放于文件的方式和存放于非易失性存储区两者相比,前者容量上可以很容易扩展,后者的访问速度更快,更直接。基于文件的配置信息存放另一个主要的优点是调试时很方便,因为大多数的开发环境都允许直接通过开发工具访问设备的文件系统,对于文件内容开发人员很容易控制。相比较而言,基于非易失性存储器的配置信息存放方式操作上通常需要借助专用软件读写内容,灵活性差。基于配置文件的方式明显可以加快软件模块的移植开发和调试速度。对于基础平台相同,仅仅是外观、硬件方面少量不同的产品,采用基本相同的软件代码,通过修改配置信息可以满足绝大部分差异性需求。
不管是基于文件的配置信息存放还是基于非易失性存储区的配置信息存放,就现状而言,在信息组织和管理方面都做得不好。这两种方式对于模块结构简单,信息量不大的模块比较方便。但对信息量较大,扩展性要求较高的模块,不利于扩展和升级,并且在信息量大的时候检索信息的速度也慢。
1998年W3C组织正式推出的可扩展标记语言—XML(Extensible Markup Language),是一种跨平台的,与软、硬件无关的,处理信息的工具。例如,它既可以在Linux平台上使用,也可以在Windows Mobile平台上使用,还可以在BREW等一系列平台上使用。XML采用纯文本的形式存放内容或者数据,其结构化的描述形式,在信息的描述、组织、存储、发送、共享和读取方面非常方便。XML具有诸多优点:首先,它能够直接使用在因特网上,目前主流浏览器都支持XML;其次,XML能满足多种应用程序的要求,例如Microsoft Office 2007就采用XML格式来保存文档内容。第三,XML文件容易阅读并且清晰简单,任何文本编辑工具都可以打开XML文件,并且确定文件所包含的内容。只要对XML有基本的认识,就能阅读XML文件。第四,编写和处理XML文件的应用程序也很简单。
因此,需要一种基于可扩展标记语言配置信息的解决方案,能够解决上述相关技术中的问题。
发明内容
本发明旨在解决嵌入式软件模块的配置信息组织无结构性、不通用、读取和检索速度慢等不足的问题。
根据本发明的一个方面,提供了一种基于可扩展标记语言配置信息的装置,包括:配置信息存储模块,用于以可扩展标记语言文件的形式存储配置信息;可扩展标记语言解析器,用于读取并解析存储在配置信息存储模块中的配置信息;以及可配置软件模块,根据由可扩展标记语言解析器解析的配置信息来进行动态配置。
可扩展标记语言解析器是内置于可配置软件模块中的内置式可扩展标记语言解析器,或外置于可配置软件模块中的独立式可扩展标记语言解析器。
多个可配置软件模块共用一个独立式可扩展标记语言解析器。
可配置软件模块为嵌入式软件模块。
根据本发明的另一个方面,提供了一种用于上述装置的基于可扩展标记语言配置信息的方法,包括以下步骤:可配置软件模块调度可扩展标记语言解析器读取以可扩展标记语言文件的形式存储在配置信息存储模块中的配置信息;可扩展标记语言解析器解析配置信息;以及可配置软件模块根据由可扩展标记语言解析器解析出的配置信息进行配置。
在该方法中,通过网络激活的方式动态更新配置信息,以及通过利用开发工具将更新后的配置信息传输到设备上以替换原配置信息的方式来对配置信息进行更新。
通过使用XML文件来统一组织后,增强了维护、扩展、升级等能力,增加了可配置模块的可移植性,开发周期明显缩短。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1和图2分别示出了根据本发明实施例的采用内嵌式XML解析器和独立式XML解析器的可配置模块的结构示意图;以及
图3是示出了根据本发明实施例的基于可扩展标记语言配置信息的方法的流程图。
具体实施方式
下面将结合附图来详细说明本发明的实施例。
图1和图2分别示出了根据本发明实施例的采用内嵌式XML解析器和独立式XML解析器的软件模块的结构示意图。参照图1和图2,基于可扩展标记语言配置信息的装置100,包括:配置信息存储模块102,用于以可扩展标记语言文件的形式存储配置信息;可扩展标记语言解析器104,用于读取并解析存储在配置信息存储模块中的配置信息;以及可配置软件模块106,根据由可扩展标记语言解析器解析的配置信息来进行动态配置。
可扩展标记语言解析器104是内置于可配置软件模块中的内置式可扩展标记语言解析器,或外置于可配置软件模块中的独立式可扩展标记语言解析器。
多个可配置软件模块106共用一个独立式可扩展标记语言解析器104。
可配置软件模块106为嵌入式软件模块。
图3是示出了根据本发明实施例的基于可扩展标记语言配置信息的方法的流程图。参照图3,用于上述装置的基于可扩展标记语言配置信息的方法,包括以下步骤:
步骤S302,可配置软件模块调度可扩展标记语言解析器读取以可扩展标记语言文件的形式存储在配置信息存储模块中的配置信息;
步骤S304,可扩展标记语言解析器解析配置信息;以及
步骤S306,可配置软件模块根据由可扩展标记语言解析器解析出的配置信息进行配置。
在该实施例中,通过网络激活的方式动态更新配置信息,以及通过利用开发工具将更新后的配置信息传输到设备上以替换原配置信息的方式来对配置信息进行更新。
下面结合表1来说明本发明的另一个实施例。
表1
在该实施例中,该系统构成包括:可配置软件模块、XML解析器、以及XML配置文件。
其中,XML解析器可以有两种存在形式:一种是可配置软件模块自带的功能,称之为“内嵌式”;另一种称之为“独立式”,作为平台的一个公共功能模块,多个不同的可配置软件模块可直接调用这个公共的XML解析器完成所需的功能。不管采用那种形式,可配置软件模块都可以随时读写XML配置信息的内容,既可以在初始化的时候读取配置信息,也可以在运行过程中保存配置信息。整个XML配置信息除了出厂的时候预先存储在设备中之外,也可以通过网络激活的方式动态下载更新。在软件模块开发调试阶段,可以通过开发工具直接对配置信息进行修改,达到快速移植和开发的目的。
随着XML的普及,嵌入式设备支持XML也是大势所趋。例如在新一代移动设备业务架构中,XML是Java Platform Micro Edition(JavaME)规范第172号的一个基本部分。而规范第280号进一步规范了XML在Java嵌入设备上的应用。因此,在该实施例中,XML解析器推荐采用独立式形式:一个解析器可以为多个应用程序模块提供服务。
在该实施例中,公共信息的提取和组织是前提,XML是作为信息存放的载体。该实施例以手机产品中的JavaME模块为例来说明一种通用的嵌入式软件模块的配置结构。
手机上的JavaME模块,包括JavaME虚拟机和扩展编程接口规范部分。JavaME模块需要面对不同运营商的定制需求,一套代码需要应付数十款手机型号,因此提取公共配置信息尤为重要。根据开发中的实际情况,现在虚拟机厂商还没有采用有效的配置信息管理策略,有的厂商采用文件放置一点简单的参数,有的厂商干脆直接写到代码中。当JavaME模块作为平台型产品面临数十款甚至更多手机的时候,提高移植和定制开发效率、强化配置信息管理就显得非常必要了。根据实际经验,JavaME模块可以整理出以下几类基本信息:
1.虚拟机启动模式:控制正常运行模式、自动测试模式、下载安装模式等;
2.自动测试模式控制开关及服务器地址;
3.权限模式开关:用于控制开发过程中是否启用正常权限还是使用工程模式;
4.调试模式开关:用于控制调试信息输出和输出接口的映射;
5.保护域及许可策略信息表:修改这个表即可映射到各个运营商的不同策略配置信息;
6.预装应用配置表及属性:控制预装应用的删除、升级等;
7.运营商网络适配信息表:用户代理、设备简表、网关、其他HTTP报头信息字段等;
8.键盘映射表:不同手机和运营商对手机键盘键值的定义不同;
9.文件系统映射表:Java应用程序存放路径、Java文件系统路径到本地文件系统的映射信息等;以及
10.性能选项配置表:背景图片、界面皮肤等影响性能的选项信息。
以上举例列出的这些类别(仅作为示例,并不是全部),彼此无关,牵涉面非常广泛,可以作为层次结构的第一级,然后分层往下扩展(参见表1)。
使用XML文件来统一组织后,增强了维护、扩展、升级等能力,增加了可配置模块本身的可移植性,开发周期明显缩短。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于可扩展标记语言配置信息的装置,其特征在于,包括:
配置信息存储模块,用于以可扩展标记语言文件的形式存储配置信息;
可扩展标记语言解析器,用于读取并解析存储在所述配置信息存储模块中的所述配置信息;以及
可配置软件模块,根据由所述可扩展标记语言解析器解析的所述配置信息来进行动态配置。
2.根据权利要求1所述的装置,其特征在于,所述可扩展标记语言解析器是内置于所述可配置软件模块中的内置式可扩展标记语言解析器,或外置于所述可配置软件模块中的独立式可扩展标记语言解析器。
3.根据权利要求2所述的装置,其特征在于,多个所述可配置软件模块共用一个所述独立式可扩展标记语言解析器。
4.根据权利要求1至3中任一项所述的装置,其特征在于,所述可配置软件模块为嵌入式软件模块。
5.一种用于前述任一权利要求所述的装置的基于可扩展标记语言配置信息的方法,其特征在于,包括以下步骤:
可配置软件模块调度可扩展标记语言解析器读取以可扩展标记语言文件的形式存储在配置信息存储模块中的配置信息;
所述可扩展标记语言解析器解析所述配置信息;以及
所述可配置软件模块根据由所述可扩展标记语言解析器解析出的所述配置信息进行配置。
6.根据权利要求5所述的方法,其特征在于,通过网络激活的方式动态更新所述配置信息。
7.根据权利要求5所述的方法,其特征在于,通过利用开发工具将更新后的配置信息传输到设备上以替换所述配置信息的方式来对所述配置信息进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810085718A CN101533345A (zh) | 2008-03-13 | 2008-03-13 | 基于可扩展标记语言配置信息的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810085718A CN101533345A (zh) | 2008-03-13 | 2008-03-13 | 基于可扩展标记语言配置信息的装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101533345A true CN101533345A (zh) | 2009-09-16 |
Family
ID=41103965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810085718A Pending CN101533345A (zh) | 2008-03-13 | 2008-03-13 | 基于可扩展标记语言配置信息的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101533345A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117286B (zh) * | 2009-12-30 | 2013-02-06 | 北大方正集团有限公司 | 注册表系统及运行方法 |
CN103412742A (zh) * | 2013-07-01 | 2013-11-27 | 深圳Tcl新技术有限公司 | 应用程序可配置ui的方法及装置 |
CN104461619A (zh) * | 2014-11-26 | 2015-03-25 | 卡斯柯信号有限公司 | 一种嵌入式软件功能可配置方法 |
CN104598263A (zh) * | 2014-12-04 | 2015-05-06 | 广州酷狗计算机科技有限公司 | 应用程序运行方法、配置文件生成方法和装置 |
-
2008
- 2008-03-13 CN CN200810085718A patent/CN101533345A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117286B (zh) * | 2009-12-30 | 2013-02-06 | 北大方正集团有限公司 | 注册表系统及运行方法 |
CN103412742A (zh) * | 2013-07-01 | 2013-11-27 | 深圳Tcl新技术有限公司 | 应用程序可配置ui的方法及装置 |
CN104461619A (zh) * | 2014-11-26 | 2015-03-25 | 卡斯柯信号有限公司 | 一种嵌入式软件功能可配置方法 |
CN104461619B (zh) * | 2014-11-26 | 2017-10-27 | 卡斯柯信号有限公司 | 一种嵌入式软件功能可配置方法 |
CN104598263A (zh) * | 2014-12-04 | 2015-05-06 | 广州酷狗计算机科技有限公司 | 应用程序运行方法、配置文件生成方法和装置 |
CN104598263B (zh) * | 2014-12-04 | 2017-12-08 | 广州酷狗计算机科技有限公司 | 应用程序运行方法、配置文件生成方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105100191B (zh) | 一种云编译实现Java应用安装的方法、装置及系统 | |
CN102411506B (zh) | Java系统业务单元插件式管理系统及业务功能动态变更方法 | |
CN1781075B (zh) | 电子文件更新期间的设备存储器管理 | |
Tavares et al. | A gentle introduction to OSGi | |
CN103677921B (zh) | 一种Android系统兼容wifi芯片的方法及系统 | |
CN107506221B (zh) | 应用程序升级方法、装置及设备 | |
CN103970559B (zh) | 一种基于Android系统的设备加载方法及装置 | |
CN102073520A (zh) | 一种c++应用程序版本动态管理系统和方法 | |
CN106569794A (zh) | 应用程序开发装置 | |
CN102223736B (zh) | 与使用多模式应用的多模式设备进行通信的服务器 | |
CN1973262B (zh) | 使用集中动态寻址(da)管理器的动态寻址 | |
KR20040022461A (ko) | 무선 통신 장치의 현장 업그레이드형 소프트웨어 조직시스템 및 방법 | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
CN101174217A (zh) | Java程序可动态更新化实现方法 | |
CN109542459A (zh) | 应用程序打包方法及装置、计算机装置及计算机存储介质 | |
CN101515238A (zh) | 一种用于计算机自动安装或卸载应用软件的方法及装置 | |
CN107766252A (zh) | 测试脚本自动化执行方法、装置、设备以及存储介质 | |
CN104834541A (zh) | 功能模块挂载方法、挂载系统及更新挂载系统的方法 | |
CN110162464A (zh) | Mcok测试方法及系统、电子设备及可读存储介质 | |
CN112148278A (zh) | 可视化的区块链智能合约框架及智能合约开发部署方法 | |
CN109634840A (zh) | 软件测试方法、装置、设备及存储介质 | |
CN101533345A (zh) | 基于可扩展标记语言配置信息的装置及方法 | |
CN111857801A (zh) | 一种移动应用的构建方法 | |
CN113688186A (zh) | 智能合约执行方法、引擎及区块链节点 | |
CN103309696B (zh) | 一种Java卡扩展库更新方法、装置和Java卡 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20090916 |