路由器的实现方法及路由器的制造方法

文档序号:10515384阅读:361来源:国知局
路由器的实现方法及路由器的制造方法
【专利摘要】本发明公开了一种路由器的实现方法及路由器,其中,一种路由器,包括:应用程序APP层模块、核心业务栈层模块、Java虚拟机层模块、硬件封装层模块、内核层模块。通过本发明解决了相关技术中路由器应用范围较窄、功能较少的问题,进而扩展了传统无线路由器的功能。
【专利说明】
路由器的实现方法及路由器
技术领域
[0001]本发明涉及通信领域,具体而言,涉及路由器的实现方法及路由器。
【背景技术】
[0002]目前,随着通讯第三代(3rd Generat1n,简称为3G)/第四代(4rd Generat1n,简称为4G)网络的迅猛发展,用户对无线路由器产品的应用范围也越来越广泛,用户不仅仅满足于无线路由器产品的基本功能,伴随着智能家居的逐步落地,无线路由器产品越来越需要充当整个局域网络的控制中心。这种控制的外延也越来越大,除了原有的通讯网络控制外,还需要充当家庭安防,家庭监控和智能家居各部分组件的控制中枢。要满足上述需求,当前业界常用的两种实现方法:基于openwrt平台和基于android平台。
[0003]基于openwrt平台的方案是指在无线路由器产品中内置openwrt系统,路由器内部的软件架构完全按照openwrt的要求来实现。这种方法具有以下缺点:
[0004]跨平台特性较差。基于该平台开发的代码只能用于openwrt平台,扩展到其他软硬件平台的工作量和难度较大。
[0005]第三方应用的扩展实现只能基于openwrt,无法复用其他智能平台的海量应用。
[0006]基于android平台的方案倒是可以避免上述缺点,但带来了另外两个缺陷:
[0007]Android系统对硬件平台的性能配置要求高,常用无线路由器平台无法满足android的最低运行要求。
[0008]Android系统的设计目标是带显示屏的移动终端,但无线路由器通常是无屏的,这会带来对android系统的裁剪工作,这个工作难度较大且费时。
[0009]针对相关技术中,路由器应用范围较窄、功能较少的问题,还未提出有效的解决方案。

【发明内容】

[0010]本发明提供了一种路由器的实现方法及路由器,以至少解决相关技术中路由器应用范围较窄、功能较少的问题。
[0011]根据本发明的一个方面,提供了一种路由器,包括:应用程序(Applicat1n,简称为APP)层模块、核心业务栈层模块、Java虚拟机层模块、硬件封装层模块、内核层模块;其中,所述APP层模块,用于提供使用Java程序设计语言开发的各类应用;所述核心业务栈层模块,用于为所述APP层提供符合Java的类库,以及通过所述Java虚拟机层模块与所述硬件封装层模块进行信息交互;所述Java虚拟机层模块,用于为所述核心业务栈层模块提供运行环境,并与所述核心业务栈层模块进行信息交互;所述硬件封装层模块,用于为所述Java虚拟机层模块提供统一接口,并调用所述内核层模块与路由器的硬件进行信息交互;所述内核层模块,用于与所述路由器中的硬件模块进行信息交互。
[0012]进一步地,所述核心业务栈层模块包括:路由业务模块,用于完成所述路由器的路由功能;通信业务模块,用于完成所述路由器与无线通信模块之间的信息交互业务;连接管理模块,用于对所述路由器中的各个硬件进行连接;特色业务模块,用于对所述路由器进行维护处理。
[0013]进一步地,所述核心业务桟层模块通过Java本地调用(Java Native Interface,简称为JNI)功能与所述硬件封装层模块进行信息交互。
[0014]进一步地,所述内核层模块向所述硬件封装层模块通过静态库提供硬件交互接
□ O
[0015]进一步地,所述Java虚拟机层模块,为开放java开发套件(Open JavaDevelopment Kit,简称为JDK)或者甲骨文(Oracle) JDK中的JAVA虚拟机。
[0016]根据本发明的另一个方面,还提供了一种路由器的实现方法,包括:应用程序APP层模块向核心业务栈层模块发送业务请求;所述核心业务栈层在当前业务状态为空闲的情况下,通过Java虚拟机层模块向硬件封装层模块转发所述业务请求;所述硬件封装层模块向内核层模块转发所述业务请求;所述内核层模块将根据所述业务请求得到的反馈信息发送给所述APP层。
[0017]进一步地,所述内核层模块将根据所述业务请求得到的反馈信息发送给所述APP层包括:所述内核层模块依次通过所述硬件封装层模块、所述Java虚拟机层模块、所述核心业务栈层模块将所述反馈信息发送给所述APP层。
[0018]进一步地,所述内核层模块根据所述业务请求以及路由器中的硬件状态得到所述反馈信息。
[0019]进一步地,所述核心业务栈层在当前业务状态为空闲的情况下,通过Java虚拟机层模块向硬件封装层模块转发所述业务请求包括:所述核心业务栈层模块通过Java本地调用JNI功能将所述业务请求发送给所述硬件封装层模。
[0020]进一步地,所述Java虚拟机层模块,为开放java开发套件JDK或者开放JDK中的JAVA虚拟机。
[0021]通过本发明,采用一种路由器,包括:应用程序APP层模块、核心业务栈层模块、Java虚拟机层模块、硬件封装层模块、内核层模块;其中,APP层模块,用于提供使用Java程序设计语言开发的各类应用;核心业务栈层模块,用于为APP层提供符合Java的类库,以及通过Java虚拟机层模块与硬件封装层模块进行信息交互Java虚拟机层模块,用于为核心业务栈层模块提供运行环境,并与核心业务栈层模块进行信息交互;硬件封装层模块,用于为Java虚拟机层模块提供统一接口,并调用内核层模块与路由器的硬件进行信息交互;内核层模块,用于与路由器中的硬件模块进行信息交互。解决了相关技术中路由器应用范围较窄、功能较少的问题,进而扩展了传统无线路由器的功能。
【附图说明】
[0022]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0023]图1是根据本发明实施例的路由器的结构框图;
[0024]图2是根据本发明实施例的核心业务栈层的模块结构框图;
[0025]图3是根据本发明实施例的路由器的实现方法流程图;
[0026]图4是根据本发明实施例的无线路由器产品的各层级协作图;
[0027]图5是根据本发明实施例的移动终端产品中的core stack功能协作图;
[0028]图6是根据本发明实施例的无线路由器产品的软件工作模式流程图。
【具体实施方式】
[0029]下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0030]在本实施例中提供了一种路由器,图1是根据本发明实施例的路由器的结构框图,如图1所示,该路由器包括:应用程序(Applicat1n,简称为APP)层模块12、核心业务栈层模块14、Java虚拟机层模块16、硬件封装层模块18、内核层模块20 ;其中,APP层模块12,用于提供使用Java程序设计语言开发的各类应用;核心业务栈层模块14,用于为APP层12提供符合Java的类库,以及通过Java虚拟机层模块16与硬件封装层模块18进行信息交互Java虚拟机层模块16,用于为核心业务栈层模块14提供运行环境,并与核心业务栈层模块14进行信息交互;硬件封装层模块18,用于为Java虚拟机层模块16提供统一接口,并调用内核层模块20与路由器的硬件进行信息交互;内核层模块20,用于与路由器中的硬件模块进行信息交互。
[0031]通过上述路由器中包括的APP层模块12、核心业务栈层模块14、Java虚拟机层模块16、硬件封装层模块18和内核层模块20,相比于相关技术中存在的平台移植性差,硬件配置高的限制,上述路由器提供了一种基于开放平台的无线路由器开发技术,增强了传统无线路由器的功能扩展,实现了一种基于开放平台的无线路由器的新方法。
[0032]图2是根据本发明实施例的核心业务栈层的模块结构框图,如图2所示,核心业务栈层模块14包括:路由业务模块142,用于完成路由器的路由功能;通信业务模块144,用于完成路由器与无线通信模块之间的信息交互业务;连接管理模块146,用于对路由器中的各个硬件进行连接;特色业务模块148,用于对路由器进行维护处理。
[0033]在一个可选实施例中,核心业务桟层模块14通过Java本地调用(Java NativeInterface,简称为JNI)功能与硬件封装层模块18进行信息交互。
[0034]在另一个可选实施例中,内核层模块20向硬件封装层模块18通过静态库提供硬件交互接口。
[0035]在另一个可选实施例中,Java虚拟机层模块,为Open JDK或者Oracle JDK中的Java虚拟机。
[0036]需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述各个模块均位于同一处理器中;或者,上述各个模块分别位于第一处理器、第二处理器和第三处理器…中。
[0037]在本实施例中提供了一种路由器的实现方法,图3是根据本发明实施例的路由器的实现方法流程图,如图3所示,该流程包括如下步骤:
[0038]步骤S302,应用程序APP层模块向核心业务栈层模块发送业务请求;
[0039]步骤S304,核心业务桟层在当前业务状态为空闲的情况下,通过Java虚拟机层模块向硬件封装层模块转发该业务请求;
[0040]步骤S306,硬件封装层模块向内核层模块转发该业务请求;
[0041]步骤S308,内核层模块将根据该业务请求得到的反馈信息发送给APP层。
[0042]通过上述步骤,通过路由器包括的应用程序APP层模块12、核心业务栈层模块14、Java虚拟机层模块16、硬件封装层模块18、内核层模块20,依次发送业务请求信息,相比于相关技术中存在的平台移植性差,硬件配置高的限制,上述路由器提供了一种基于开放平台的无线路由器开发技术,增强了传统无线路由器的功能扩展,实现了一种基于开放平台的无线路由器的新方法。
[0043]上述步骤S308涉及到内核层模块将根据业务请求得到的反馈信息发送给APP层,在一个可选实施例中,内核层模块依次通过硬件封装层模块、Java虚拟机层模块、核心业务栈层模块将反馈信息发送给APP层。
[0044]在一个可选实施例中,内核层模块根据业务请求以及路由器中的硬件状态得到反馈信息。
[0045]核心业务桟层在当前业务状态为空闲的情况下,通过Java虚拟机层模块向硬件封装层模块转发该业务请求的过程中,在一个可选实施例中,核心业务栈层模块通过Java本地调用JNI功能将该业务请求发送给硬件封装层模。
[0046]在一个可选实施例中,Java虚拟机层模块,为Open JDK或者Oracle JDK中的JAVA虚拟机。
[0047]针对相关技术中存在的上述问题,下面结合可选实施例进行说明,在本可选实施例中结合了上述可选实施例及其可选实施方式。
[0048]1.本可选实施例涉及的名词和缩略语解释:
[0049]①.JDK:
[0050]Java Development Kit的缩写。JDK包括三大部分:JAVA程序设计语言;JAVA虚拟机和JAVA API类库。
[0051]②.0penJDK:
[0052]OpenJDK 是 GPL 许可(GPL-licensed)的 JDK 开源化实现。
[0053]③.JVM:
[0054]Java Virtual Machine (Java虚拟机)的缩写。JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
[0055]④0ΡΕΝΗ0ΜΕ:
[0056]Openhome为智能家庭联盟的认证,包含认证,app开发规范和实验室。由icontrol发起,联盟内包含设备厂商,app厂商,这些通过认证的设备,可以由服务厂商类似ATT,comcast和时代华纳或piper产品渠道向欧美地区的1250万用户服务
[0057]⑤JNI:
[0058]JNI是Java Native Interface的缩写,中文为JAVA本地调用。它允许Java代码和其他语言写的代码进行交互。JNI标准至少保证本地代码能工作在任何Java虚拟机环境下。
[0059]在本可选实施例中,在无线路由器内部将软件分为五个层级:APP应用层;核心业务桟层(Core stack) ;0pen JVM 层;硬件封装层(Hardware Encapsulate Layer,简称为HEL);内核层(Kernel)。通过这五个软件层级,基于开放的Open Jdk平台,就可以实现一种和传统无线路由器差异明显的新型无线路由设备。
[0060]本可选实施例所述的软件部分包括五个软件层级,以下是各层级的功能与实现方式:
[0061]1.内核层(KERNEL):
[0062]本层级是所有软件层级中最低层的,主要是和无线路由器的硬件平台进行直接交互的层级。包括但不限于Linux kernel, windows kernel等等。
[0063]2.硬件封装层(HEL):
[0064]本层级的最主要目的是为了屏蔽低层硬件的差异。HEL层对其上的层级抽象出各种硬件设备的统一接口,在不同的硬件平台上移植时,HEL层以上的软件不需要进行修改,只需要修改HEL层软件的实现。
[0065]3.0pen JVM 层:
[0066]Open JVM层是本发明迥异于其他无线路由产品的最大差异所在。所谓Open JVM就是将Open JDK或Oracle JDK中的JVM在无线路由产品中移植实现。这里的JVM是符合JAVA规范的虚拟机,与此对比的是Android中的Dalvik VM只能称做“虚拟机”,而不能称做“Java虚拟机”。Dalvik VM并不是一个Java虚拟机,它没有遵循Java虚拟机规范,不能直接执行Java的Class文件,使用的是寄存器架构而不是JVM中常见的栈架构。
[0067]4.核心业务桟层(Core Stack):
[0068]核心业务栈层主要完成针对无线路由产品高层的、抽象的管理功能,本层级向下通过Open JVM层与HEL层交互,获取相关硬件信息和下发相关控制逻辑。向上提供给APP应用层符合JAVA标准的类库,本发明中的core stack也符合OPEN Home规范,因此采用本发明的无线路由产品可以极容易的扩展连接到所有支持OPEN HOME规范的智能家居产品。
[0069]5.APP 应用层:
[0070]本层级就是各类使用JAVA程序设计语言开发的海量的应用了,此类应用不仅仅包括硬件相关的控制程序,也包括各种数据分析应用,UI/UX提升应用等等。
[0071]在本可选实施例所定义的功能实现中,各层级间的工作顺序与交互如下文所示。
[0072]步骤一,APP应用层的各个应用程序调用core stack提供的标准JAVA class接口或其他JAVA类库接口实现其程序逻辑。
[0073]步骤二,核心业务栈层运行在Open JVM之上,通过JNI,打通与HEL的交互。
[0074]步骤三,HEL采用C/C++代码封装各个硬件模块的逻辑代码,此类硬件包括但不限于无线保真(Wireless Fidelity,简称为WiFi),蓝牙(Blue Tooth,简称为BT),紫蜂(zigbee),路由(router)等等。
[0075]步骤四,Kernel层将HEL层传递的智力下发给相关硬件以达到硬件控制的目的。
[0076]图4是根据本发明实施例的无线路由器产品的各层级协作图,如图4所示,主要由五部分组成:APP应用层;核心业务桟层(Core stack) ;0pen JVM层;硬件封装层(HardwareEncapsulate Layer,简称为 HEL);内核层(Kernel) ο
[0077]Kernel层完成对硬件的直接控制,并向上个层级通过Iib库方式提供硬件交互接口。HEL层隔离各个硬件的实现,向下对接kernel层,调用kernel提供的接口与硬件交互;向上通过JVM对接核心业务栈层。核心业务栈层是个完全符合JAVA规范的JAVA类库,该库也符合OPEN HOME规范,该层将各个软件功能的抽象实现都在本层内完成,该层向下对接HEL,通过调用JNI的接口来操控HEL提供的各个硬件业务功能。向上提供给上层标准的JAVA class接口。最终,所有无线路由器的软件功能都是以APP层中的各个应用程序来呈现的,这些应用程序向下调用core stack提供的标准接口来实现各种软件逻辑。
[0078]图5是根据本发明实施例的移动终端产品中的core stack功能协作图,下面对core stack层进行说明。
[0079]Core stack是整个软件架构中非常重要的一层,在该层中完成了无线路由器中绝大部分软件功能的抽象和实现。主要有如下几部分组成:路由业务;通信业务;连接管理;特色业务。路由业务是指无线路由器的基本路由功能,包括路由设置,端口过滤,防火墙设置等等。通信业务是指无线路由器对3G/4G模块的交互业务,包括网络注册,网络选择,S頂卡管理等等。连接管理是指对无线路由器中的各个用于连接的硬件进行管理的功能,这些硬件包括但不限于wifi,BT,zigbee,红外等等。特色业务是指对无线路由器本身的一些功能需求,包括在线升级,远程维护等等。
[0080]需要指出的是core stack不是一成不变的,随着无线路由器集成的硬件模块越来越多,该层级的业务也会做相应扩展。
[0081]图6是根据本发明实施例的无线路由器产品的软件工作模式流程图,如图6所示,主要描述使用本可选实施例的无线路由器产品的软件工作流程,包括如下步骤:
[0082]步骤S602,APP应用通过JAVA CLASS向核心业务栈层发出业务请求;
[0083]步骤S604,核心业务栈层收到app发来的业务请求后,查询当前业务状态,如果空闲,通过JNI就向HEL层发送业务请求;否则,回复APP等待信息;
[0084]步骤S606,HEL层收到core stack发来的业务请求后,通过C/C++库向kernel发送具体请求指令;
[0085]步骤S608,Kernel接到HEL发来的请求指令,根据当前硬件的实际状态将反馈消息回复给HEL层;
[0086]步骤S610,HEL层将反馈消息发送给core stack层;
[0087]步骤S612,core stack层将反馈消息发送给APP层。
[0088]至此,APP层的应用程序通过开放平台实现无线路由器的软件功能宣告完成。
[0089]综上所述,通过本发明克服了相关技术中存在的平台移植性差,硬件配置高的限制,提供一种基于开放平台的无线路由器开发技术,增强了传统无线路由器的功能扩展,实现了一种基于开放平台的无线路由器的新方法。
[0090]通过本发明,可以使无线路由器产品具有以下几方面的优势,提高用户体验:
[0091]①基于Open JDK开放平台搭建整个软件架构。有效降低了软件对硬件的最低性能要求,实际项目中只需要256M内存加上512M flash就能完整支持所有无线路由器的软件功能,相比采用android系统的产品,成本降低很多。
[0092]②软件架构完全符合JAVA的各项规范要求。使得海量的JAVA应用都可以不加修改的运行在无线路由器上,扩展性进步明显。
[0093]由于以上几个优点,可见本发明专利在具有一定创新性的同时,也具有极高的实用价值,对于产品的易用性和稳定性,以及用户体验,都有很大程度的改善。
[0094]在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。
[0095]在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。
[0096]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0097]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种路由器,其特征在于,包括: 应用程序APP层模块、核心业务栈层模块、Java虚拟机层模块、硬件封装层模块、内核层模块; 其中,所述APP层模块,用于提供使用Java程序设计语言开发的各类应用; 所述核心业务栈层模块,用于为所述APP层提供符合Java的类库,以及通过所述Java虚拟机层模块与所述硬件封装层模块进行信息交互; 所述Java虚拟机层模块,用于为所述核心业务栈层模块提供运行环境,并与所述核心业务栈层模块进行信息交互; 所述硬件封装层模块,用于为所述Java虚拟机层模块提供统一接口,并调用所述内核层模块与路由器的硬件进行信息交互; 所述内核层模块,用于与所述路由器中的硬件模块进行信息交互。2.根据权利要求1所述的路由器,其特征在于,所述核心业务栈层模块包括: 路由业务模块,用于完成所述路由器的路由功能; 通信业务模块,用于完成所述路由器与无线通信模块之间的信息交互业务; 连接管理模块,用于对所述路由器中的各个硬件进行连接; 特色业务模块,用于对所述路由器进行维护处理。3.根据权利要求1所述的路由器,其特征在于,所述核心业务栈层模块通过Java本地调用JNI功能与所述硬件封装层模块进行信息交互。4.根据权利要求1所述的路由器,其特征在于,所述内核层模块向所述硬件封装层模块通过静态库提供硬件交互接口。5.根据权利要求1所述的路由器,其特征在于,所述Java虚拟机层模块,为开放java开发套件JDK或者甲骨文JDK中的JAVA虚拟机。6.一种路由器的实现方法,其特征在于,包括: 应用程序APP层模块向核心业务栈层模块发送业务请求; 所述核心业务栈层在当前业务状态为空闲的情况下,通过Java虚拟机层模块向硬件封装层模块转发所述业务请求; 所述硬件封装层模块向内核层模块转发所述业务请求; 所述内核层模块将根据所述业务请求得到的反馈信息发送给所述APP层。7.根据权利要求6所述的方法,其特征在于,所述内核层模块将根据所述业务请求得到的反馈信息发送给所述APP层包括: 所述内核层模块依次通过所述硬件封装层模块、所述Java虚拟机层模块、所述核心业务栈层模块将所述反馈信息发送给所述APP层。8.根据权利要求6所述的方法,其特征在于,所述内核层模块根据所述业务请求以及路由器中的硬件状态得到所述反馈信息。9.根据权利要求6所述的方法,其特征在于,所述核心业务栈层在当前业务状态为空闲的情况下,通过Java虚拟机层模块向硬件封装层模块转发所述业务请求包括: 所述核心业务栈层模块通过Java本地调用JNI功能将所述业务请求发送给所述硬件封装层模。10.根据权利要求6所述的方法,其特征在于,所述Java虚拟机层模块,为开放java开 发套件JDK或者甲骨文JDK中的JAVA虚拟机。
【文档编号】H04L12/771GK105871729SQ201510036071
【公开日】2016年8月17日
【申请日】2015年1月23日
【发明人】赵明
【申请人】中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1