可共享应用程序配置参数的电子系统及其方法

文档序号:6472528阅读:160来源:国知局
专利名称:可共享应用程序配置参数的电子系统及其方法
技术领域
本发明涉及一种计算机技术,尤其涉及一种可共享应用程序配置参数的电子系统。
背景技术
在程序开发中经常使用可扩展标记语言(extensible Markup Language, XML)来存贮配 置参数(configuration),应用程序调用XML解析库或利用其解析函数,来解析自已的XML格 式的配置文件,以生成配置树。这方法既简单又直观,因此已被广泛采用。
但是在实践中,应用程序(a卯lication)彼此之间、或应用程序与操作系统(operating system)内核(kernel)之间在需要共享配置时,用现有的方法难以完成。详细情形请参照图 1,内存100中包括了用户空间(user space)及内核空间(kernel space)。应用程序群组 1 0eT1 Ob及记录配置参数的文件l2皆设置于用户空间;而内核程序位于内核空间。任何的应 用程序要存取其配置参数时,会从解析文件12的XML内容以取得配置参数,并依据XML格式的 内容中各配置参数的结构关系以建立配置参数的关系树,或称为配置树,例如图l中的配置 树lla llc。而配置参数关系树中的每一个节点记录配置参数的值。应用程序会将配置参数 关系树设置于内存100中其应用程序本身可以存取的位置,而其它的应用程序则不知道其位 置,也没有权限可以存取。这样会造成各配置树内的参数值难以同步,也难在程序之间共享
然而有些参数需要在程序之间共享。举例来说,在非对称式数字用户线(Asymmetric Digital Subscriber Line,简称ADSL)调制解调器中,在利用点对点协议(Point-To-Point Protocol, PPP)或动态主机组态协议(dynamic host configuration protocol,简称DHCP )取得网络通讯协议(Internet protocol,简称IP)地址后,所述调制解调器中的其它程序例 如网络地址变换(network address translation, NAT )或防火墙(Firewall)程序都需要取 用所述IP地址。需要共享并同步处理的参数在所述的配置树目前架构下难以达成其目的。这 样导致的结果是程序之间无法共享配置参数,操作系统的内核程序13也很难使用配置树或 XML配置参数文件。

发明内容
本发明提供一种可共享应用程序配置参数的电子系统,包括内存、接口模块及装置驱动 程序。所述内存,包括用户空间及内核空间,所述用户空间存储多个应用程序及文件,所述文件记录多个配置参数,其中所述配置参数由第一应用程序使用。所述接口模块响应所述第 一应用程序的请求以解析包括所述配置参数的所述文件,以及取得所述配置参数。所述装置 驱动程序建立所述配置参数的数据结构于所述内存中的内核空间,让所述电子系统的多个应 用程序经由所述装置驱动程序从所述数据结构共同存取所述配置参数,以执行所述电子系统 的不同功能。
本发明还提供一种可共享应用程序配置参数的方法,执行于电子系统中。所述电子系统 包括应用程序、接口模块及装置驱动程序。所述应用程序请求所述接口模块以使用所述应用 程序的配置参数,其中所述应用程序储存于所述电子系统的内存中的用户空间。所述接口模 块响应所述应用程序的请求以解析包括所述应用程序的配置参数的文件,以及取得所述配置 参数。所述装置驱动程序建立所述配置参数的数据结构于所述内存中的内核空间,让所述电 子系统的多个应用程序经由所述装置驱动程序从所述数据结构共同存取所述配置参数,以执 行所述电子系统的不同功能。
ADSL调制解调器的例子中,利用本发明,在PPP或DHCP程序取得IP地址后,所述调制解 调器中的NAT或防火墙程序都可以通过装置驱动程序取用所述IP地址以执行其NAT或防火墙功 能。


图1为配置树在内存中的传统设置示意图。
图2为电子系统的结构方块图。
图3为配置树在内存中的新设置示意图。
图4为所述电子系统的模块示意图。
图5显示配置参数文件的实例示意图。
图6显示配置参数文件中的区块B1转换成配置树的部分的示意图。
图7显示电子系统内的配置树的建立流程图。
图8显示电子系统内的配置树的修改流程图。
图9显示电子系统内的配置树中特定节点的读取流程图。
具体实施例方式
本发明可以执行于各种电子装置或系统,例如路由器、非对称式数字用户线 (Asymmetric Digital Subscriber Line,简称ADSL)装置、缆线调制解调器(cable modem) 、以及机上盒(Set Top Box)。
参阅图2,电子系统200包括非挥发性内存(Nonvolatile Memory) 210、处理器220、主存
5储器230及通讯单元240。通讯单元240可以包括通讯端口及通讯相关的组件,例如无线通讯 的控制器及天线、ADSL装置中的数字讯号处理器(Digital Signal Processor)及模拟至数字 转换器(Analog-to-Digital Converter)、缆线调制解调器中的调谐器(tuner)、以太网络 (Ethernet)控制器、通用串行总线(Universal Serial Bus, USB)控制器及/或外围组件互联 标准(Peripheral Component Interconnect, PCI)控制器。处理器220可以由集成电路 (Integrated Circuit,简构IC)组成,用以处理数据及执行程序。处理器IO可以是由单颗封 装的IC所组成,或连接多颗封装的IC而组成。举例来说,处理器IO可以仅包括中央处理器 (Central Processing Unit,简称CPU),或者是CPU、通讯控制器的组合。所述的通讯控制 器用以控制电子系统200中的各组件的通讯,或电子系统200与外部装置的通讯。在不同的实 施方式中,所述各种通讯组件可以整合在通讯单元240或处理器220之中。
主存储器230可以包括各种随机存取内存(Random Access Memory,简称RAM);非挥发性 内存210的实例如电子可抹除可程序化只读存储器(Electrically Erasable Programmable ROM,简称EEPROM)或闪存(Flash Memory)。非挥发性内存210包括电子系统200的操作系统及 应用程序。非挥发性内存210中的程序及数据可以数据压縮的形式储存,待需执行或使用时 再解压縮至主存储器230。
请参照图3,电子系统200可以包括内存100A。内存100A可以是虚拟内存,实际上可以映 像至主存储器230及/或非挥发性内存210。内存100A包括用户空间及内核空间。配置参数文 件12具有应用程序10c的多个配置参数,其中所述配置参数至少有二个程序使用。
为了达到配置参数共享及同步化的目的,电子系统200的其中一个应用程序(例如图3中 的应用程序10c)启动对配置参数文件12的解析程序后,经由内核程序13根据配置参数文件 12中各配置参数的关系,以建立配置参数文件12中各配置参数的配置树(例如配置树lld)于 内存100A的内核空间。所有要使用到配置树lld中的参数的应用程序皆需通过内核程序13来 执行读取或修改。虽然在此实施方式中,配置参数的数据结构为树状结构,但是并非限定于 此,也可以利用数组、链接串行(linked list)等数据结构。应用程序10a 10c皆可以通过内 核程序13读取或修改配置树lld内的参数,藉此达到配置参数共享与同步化的目的。其具体 实施方式请参照图4。
在图4中,电子系统200具有应用程序群组10,其中包括多个应用程序ArAn,其中n为大 于1的正整数。应用程序A广An的实例可包括图3中的应用程序群组10a 10c。电子系统200还 具有应用程序接口30、内核程序13提供的系统呼叫32、驱动程序34、及装置档案(device file或device special file) 36。
6应用程序接口30包括函式库(library),其中包括多个用以解析配置参数文件(例如配置 参数文件12)的函式(function),根据所述解析结果以建立对应配置树的函式、以及修改及 读取配置树及其中参数值的函式。由于配置树在内核空间中,应用程序接口30的函式可以利 用内核程序13提供的系统呼叫(system call,例如"ioctl"),以驱使内核程序13致动驱动 程序34以完成建立或修改配置树群组38中的配置树的动作。配置树群组38包括多个配置树 TrTm,其中m为大于l的正整数。举例来说,配置树群组38包括图3中的配置树lld。
装置档案在Unix、 Li皿x等以及相类似的操作系统中用以代表特定装置驱动程序及其对 应的装置,例如储存于/dev的目录下,使应用程序可以通过标准的输出/输入系统呼叫来与 所述装置档案代表的驱动程序互动。在本实施方式中,装置档案36的文件名为"xmlconf" ,并且利用装置档案36对应配置树群组38,以代表中的多个配置树。图4中,装置档案36中 的设备主代码(major number)Nl为代表驱动程序34的一个号码,而设备次代码(minor 皿mber)N2包括了代表配置树TrTm的多个笔号码,每一笔设备次代码代表一个配置树。应用 程序群组10中的应用程序、应用程序接口30中的函式或驱动程序34皆能够通过装置档案36以 指定配置树群组38中的特定配置树,并予以读取或修改。
应用程序开启设备文文件/dev/xmlconf就可以找到设备主代码Nl,通过设备号就可以请 求内核程序l3找到并利用驱动程序34。驱动程序34利用一笔设备次代码就可以找到其对应的 特定配置树,并根据所述应用程序的请求以修改所述配置树或读取并回传配置参数值给所述 应用程序。
装置档案的实例包括字符装置档案(character special f ile或character device)及区 块装置档案(block special file或block device)。字符装置档案对应的字符装置与操作系 统以字符为单位来交换数据,而区块装置与操作系统则以较大的数据区块为单位来交换数据 。字符装置的实例包括调制解调器(modem)及电话通讯相关的装置。区块装置的实例包括硬 式磁盘驱动器及光驱。驱动程序34每次读取配置树上一个节点的配置参数值,所以装置档案 36可以是字符装置档案。
实例
图5显示配置参数文件12的实例,其对应的配置树的一部分显示于图6。配置参数文件 12a,其中的配置参数包括在〈ConfigTree〉与〈/ConfigTree〉之间。〈AtmCfg〉与〈/AtmCfg〉中 间包括异步传输模式(asynchronous transfer mode,简称ATM)相关的设置。〈AtmCfgTd〉与 〈/AtmCfgTd〉之间包括关于ATM连接类型(Link Type )的设置,比如〃CBR〃表示用恒定的速 率连接。〈AtmCfgVcc〉与〈/AtmCfgVcc〉之间主要包括ATM层的持久虚拟线路(permanentvirtual circuit,简称PVC)参数。〈SecCfg〉与〈/SecCfg〉之间主要包括网络安全的相关设置 。〈WirelessCfg〉与〈/WirelessCfg〉之间是Wi-Fi(IEEE 802. 11)相关的设置。〈RouteCfg〉与 〈/RouteCfg〉之间主要设置电子系统200的静态路由表。〈PMapCfg〉与〈/PMapCfg〉之间主要是 做埠对应(Port Map)用的设置。〈SNTPCfg〉与〈/SNTPCfg〉之间是设置时间服务器的参数,即 与简单网络时间协议(Simple Network Time Protocol, SNTP)服务器相关的参数。〈Voice〉 与〈/Voice〉之间是网络电话(Voice Over Internet Protocol,简称VoIP)相关的设置。 〈卯psrv—8—35>与〈/pppsrv—8—35〉之间是点X寸点协议(Point-To-Point Protocol, PPP)连接 PPP服务器时的相关设置。〈wan—8—35〉与〈/wan—8—35〉之间的配置参数主要用于建立广域网络 (Wide Area Network,简称WAN)端的接口有关,它和ATM PVC是紧密相关的。
电子系统200中的内核程序13或应用程序皆可以启动配置参数文件12a转换成配置树的工 作。举例来说,内核程序13在电子系统200开机时启动配置树的建立。或者,应用程序Ai(其 中i为正整数,且1S i ^n)启动配置树的建立。电子系统200内执行的内核程序13或应用程 序ArAn可以利用应用程序接口30将配置参数文件12a转换成特定的数据格式,再交给驱动程 序34以建立配置参数文件12a的对应配置树。
请参照图7,当电子系统200内的程序需要建立配置树时,请求执行应用程序接口30中用 来建立配置树的函式(步骤700)。其中所述请求中包对应驱动程序34的装置档案36的名称。 所述函式响应所述程序的请求以分析配置参数文件12a来产生代表配置参数文件12a的结构及 其内配置参数值的数据结构(步骤702) 。 〈protocol〉巻标中的autoScan属性值可以在步骤 702的数据结构中以"protocol. autoScan=enable"来表示。所述函式再通过电子系统200的 操作系统的系统呼叫32以传递所述装置档案36的文件名、所述数据结构及其它数据至内核程 序13(步骤704)。内核程序13根据所述文件名取得装置档案36中的设备主代码N1,再根据设 备主代码N1取得驱动程序34,并将所述数据结构交给驱动程序34,使驱动程序34开始建立所 述数据结构对应的配置树(步骤706)。驱动程序34新增设备次代码N2以作为将要建立的配置 树的代码(步骤708),并根据所述数据结构以建立配置参数文件12a对应的配置树Tj(其中j为 正整数,且l^jSm)(步骤710)。
图6显示配置参数文件12a中的区块Bl转换成配置树的示意图。区块Bl中〈Systemlnfo〉与 〈/Systemlnfo >标签以"Systemlnfo"为名,其间包括了以"protocol" 、 "sysLog"及" sysUserName"为名的标签。因此,在被程序请求的情况下,驱动程序34会在配置参数文件 12aX寸应的配置树中建立"Systemlnfo" 、 "protocol" 、 "sysLog"及"sysUserName" X寸 应的节点,且"Systemlnfo"为"protocol" 、 "sysLog"及"sysUserName"等节点的父节点。"protocol"标签包括"autoScan" 、 "upnp" 、 "igmpSnp" 、 "igmpMode"、 macFilterPolicy" 、 "encodePassword"及"enetwan"的属性,相应地,驱云力禾呈序34会建 立"autoScan" 、 "upnp" 、 "igmpSnp" 、 "igmpMode" 、 "macFilterPolicy"、" encodePassword"及"enetwan"等节点作为"protocol"节点的子节点,且每个属性X寸应 的节点中包括其属性值。同理,驱动程序34也会建立"sysLog"及"sysUserName"节点的 子节点,以及所述配置树的其它节点。
在配置树Tj建立之后,其它的程序就可以读取或修改配置树Tj的节点内的配置参数值。 请参照图8,当电子系统200内的程序需要修改配置树中的特定节点(以下称为目标节点)时, 请求执行应用程序接口30中用来修改配置树的函式(步骤800)。其中所述请求中包括对应驱 动程序34的装置档案36的名称、新的配置参数值及其它数据。举例来说,执行PPP的程序或 动态主机组态协议(Dynamic Host Configuration Protocol,简称DHCP)的程序从WAN取得电 子系统200的新的IP地址作为新的配置参数值,随后更新配置树Tj中用来记录电子系统200的 IP地址的目标节点中的IP地址。应用程序可以在步骤800的所述请求中指明所述目标节点的 名称及从配置树Tj至所述目标节点的路径,其中所述路径包括目标节点的父节点及祖先节点 的名称。
所述函式响应所述程序的请求,通过电子系统200的操作系统的系统呼叫将所述请求中 的文件名、目标节点名称及新的配置参数值传递给内核程序13(步骤802)。内核程序13根据 所述文件名取得装置档案36中的设备主代码N1 ,再根据设备主代码N1取得驱动程序34,并将 所述新的配置参数值交给驱动程序34,使驱动程序34更新配置树T j中目标节点内的配置参数 值(步骤804)。驱动程序34取得配置树Tj中的所述目标节点(步骤806),并以所述新的配置参 数值来更新目标节点内的配置参数值(步骤808)。步骤806中,驱动程序34可以根据所述目标 节点的路径以取得所述目标节点,或搜寻配置树T j以取得。
在图6中配置树Tj的例子上,电子系统200的IP地址是从区块B2中的"entryl"标签的 addreSS= "192. 168. 1. 1"的属性取得的。在所述IP地址更新后,电子系统200中的防火墙 程序可以从配置树Tj读取电子系统200的IP地址,并根据所述节点中新的IP地址以执行其任 务。电子系统200的网络地址变换(network address translation, NAT )程序根据所述节点 中新的IP地址以执行NAT。
请参照图9,当电子系统200内的程序需要读取配置树中的特定节点(以下称为目标节点 )时,请求执行应用程序接口30中用来读取配置树的函式(步骤900)。其中所述请求中包对应 驱动程序34的装置档案36的名称及目标节点的名称。应用程序可以在步骤900的所述请求中
9指明从配置树Tj至所述目标节点的路径,其中所述路径包括目标节点的父节点及祖先节点的 名称。所述函式响应所述程序的请求,通过电子系统200的操作系统的系统呼叫将所述请求中 的文件名及目标节点的名称传递给内核程序13 (步骤902)。内核程序13根据所述文件名取得 装置档案36中的设备主代码N1 ,再根据设备主代码N1取得驱动程序34,并将目标节点的名称 交给驱动程序34,使驱动程序34取得配置树T j中所述目标节点内的配置参数值(步骤904)。 驱动程序34根据目标节点的名称取得配置树T j中的所述目标节点(步骤906),并将目标节点 内的配置参数值回传给内核程序13(步骤908)。内核程序13再将目标节点内的配置参数值回 传给请求读取的程序(步骤910)。步骤906中,驱动程序34可以根据所述目标节点的路径以取 得所述目标节点,或搜寻配置树Tj以取得。利用所述系统结构及方法,电子系统200内的应用程序ArAn及内核程序13可以共享并同 步配置参数。其它的实例如,电子系统200包括系统设定程序。系统设定程序允许的用户名 称记录在图6中"sysUserName"节点的子节点 "value"中,用户名称为"admin"。系统 设定程序提供使用者接口让使用者设定图6中配置树的配置参数值。电子系统200中的每个程 序记录其执行时期相关的事件于记录文件。电子系统200可以将所述记录文件发送至外部服 务器供分析之用。电子系统200中的每个程序根据图6中logLevel节点的配置参数值以决定记 录于所述记录文件的事件类别。换言之,1ogLevel的配置参数值决定电子系统200中的多个 程序记录事件的详细程度。"sysUserName"及"logLevel"节点的配置参数值可以利用所 述方法被修改及读取。电子系统200更包括用户认证程序。系统设定程序提供使用者接口让使用者设定可以从 远程访问电子系统200的用户的远程装置的网络通讯协议(Internet Protocol,简称IP)地址 ,并记录于配置参数文件12a中的区块B3, S卩〈TelnetAcl〉与〈/TelnetAcl〉之间。区块B3中的 配置参数转换成配置树Tj中的节点后,系统设定程序可以增加、删除或修改所述节点中的 IP地址。用户认证程序利用配置树Tj的所述节点(未图标)中的IP地址以容许或拒绝用户使用 的远程装置连接至电子系统200 。本发明提供的方法可以克服现有方法的不足。利用所述系统结构及方法,电子系统内的 应用程序及内核程序可以共享并同步配置参数。所述方法可以广泛应用于Li皿x/Unix环境下 或其它的操作系统环境下的程序开发。
权利要求
1.一种可共享应用程序配置参数的电子系统,其特征在于包括内存,包括用户空间及内核空间,所述用户空间存储多个应用程序及文件,所述文件记录多个配置参数,其中所述配置参数由第一应用程序使用;接口模块,用以响应所述第一应用程序的请求以解析包括所述配置参数的所述文件,以及取得所述配置参数;及装置驱动程序,建立所述配置参数的数据结构于所述内存的内核空间,让所述多个应用程序从所述数据结构存取所述配置参数,以执行所述电子系统的不同功能。
2.如权利要求l所述的可共享应用程序配置参数的电子系统,其特征 在于,还包括操作系统的内核程序,所述内核程序经由所述装置驱动程序从所述数据结构存 取所述第一应用程序的所述配置参数。
3.如权利要求l所述的可共享应用程序配置参数的电子系统,其特征 在于,还包括装置档案,用以表示所述装置驱动程序所控制的对象,使所述装置驱动程序所 控制的对象经由所述电子系统提供的系统呼叫以及所述装置档案的文件名而被存取,所述装 置驱动程序所控制的对象为包括所述第一应用程序的配置参数的所述数据结构的集合。
4.如权利要求3所述的可共享应用程序配置参数的电子系统,其特征 在于,所述装置档案包括设备主代码及设备次代码,若所述第一应用程序具有配置参数的多 个数据结构,每一笔设备次代码用以表示所述多个数据结构中的一个。
5.如权利要求4所述的可共享应用程序配置参数的电子系统,其特征 在于,所述配置参数的数据结构为树状结构,所述装置档案为字符装置档案。
6.如权利要求l所述的可共享应用程序配置参数的电子系统,其特征 在于,所述第一应用程序用以取得所述电子系统的网络通讯协议地址,并记录于所述数据结 构中,所述电子系统的第二应用程序读取所述网络通讯协议地址以执行网络地址变换。
7.如权利要求l所述的可共享应用程序配置参数的电子系统,其特征 在于,所述第一应用程序用以在所述数据结构中的节点中设定配置参数值,以决定所述电子系统中的多个程序记录其相关事件的详细程度,所述第二应用程序读取所述节点的配置参数 值以决定记录于所述记录文件的事件类别。
8 如权利要求l所述的可共享应用程序配置参数的电子系统,其特征 在于,所述第一应用程序于所述数据结构中设定可以从远程访问电子系统的用户的至少一远 程装置的网络通讯地址,所述电子系统的第二应用程序读取并根据所述至少一远程装置的网 络通讯地址以容许或拒绝所述至少一远程装置连接至电子系统。
9 一种可共享应用程序配置参数的方法,执行于电子系统中,所述 电子系统包括内存及接口模块,所述内存包括应用程序及装置驱动程序,其特征在于,所述 方法包括所述应用程序请求所述接口模块以使用所述应用程序的配置参数,其中所述应用程序 储存于所述电子系统的所述内存中的用户空间,并且所述应用程序的配置参数供所述电子系统的至少二个应用程序使用;所述接口模块响应所述应用程序的请求以解析包括所述应用程序的配置参数的文件, 以及取得所述配置参数;及所述装置驱动程序建立所述配置参数的数据结构于所述内存中的内核空间,让所述至 少二个应用程序经由所述装置驱动程序从所述数据结构共同存取所述配置参数,以执行所述 电子系统的不同功能。
10 如权利要求9所述的可共享应用程序配置参数的方法,其特征在 于,所述应用程序用以取得所述电子系统的网络通讯协议地址,并记录于所述数据结构中, 所述电子系统的第二应用程序读取所述网络通讯协议地址以执行网络地址变换。
全文摘要
一种可共享应用程序配置参数的电子系统,包括内存、接口模块及装置驱动程序。多个应用程序及文件储存于所述内存中的用户空间,所述文件记录有多个配置参数。所述接口模块响应所述应用程序的请求以解析所述文件,以及取得所述配置参数。所述装置驱动程序建立所述配置参数的数据结构于所述内存中的内核空间,让所述电子系统的多个应用程序经由所述装置驱动程序从所述数据结构共同存取所述配置参数,以执行所述电子系统的不同功能。
文档编号G06F9/46GK101650670SQ200810303758
公开日2010年2月17日 申请日期2008年8月14日 优先权日2008年8月14日
发明者杜耀宏 申请人:鸿富锦精密工业(深圳)有限公司;鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1