著录项信息
专利名称 | 基于Linux的嵌入式web服务器访问多平台数据的实现方法 |
申请号 | CN201410766920.4 | 申请日期 | 2014-12-12 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2015-04-22 | 公开/公告号 | CN104536837A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/54 | IPC分类号 | G;0;6;F;9;/;5;4;;;G;0;6;F;9;/;4;6;;;H;0;4;L;2;9;/;0;6查看分类表>
|
申请人 | 上海斐讯数据通信技术有限公司 | 申请人地址 | 上海市闵行区春东路508号2幢509室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 上海泰宇信息技术股份有限公司 | 当前权利人 | 上海泰宇信息技术股份有限公司 |
发明人 | 刘玉喜 |
代理机构 | 杭州千克知识产权代理有限公司 | 代理人 | 周希良 |
摘要
本发明提供一种基于Linux的嵌入式web服务器访问多平台数据的实现方法,嵌入式设备调用httpd进程接收数据请求,并通过CGI对数据请求进行解析和分解,获取所请求数据的控制报文类型以及相应的分解数据;根据所请求数据的控制报文类型,确定数据所在平台;判断数据所在平台是否为当前平台;若是,从当前平台上直接获取所要求的数据,并返回给嵌入式设备;若否,访问数据所在平台对应的客户端,客户端再访问对应的服务端,服务端在平台上获取数据,并返回至客户端,客户端将数据返回给嵌入式设备。本发明的基于Linux的嵌入式web服务器访问多平台数据的实现方法不破坏当前各个平台的架构;实现了web服务器对多个不同平台的数据信息的访问,便于移植,易于维护。
1.一种基于Linux的嵌入式web服务器访问多平台数据的实现方法,其特征在于:包括以下步骤:
步骤S1、当访问嵌入式设备的web页面时,嵌入式设备调用httpd进程接收数据请求,并通过CGI对数据请求进行解析和分解,获取所请求数据的控制报文类型以及相应的分解数据;
所述步骤S1中,CGI的处理过程包括如下步骤:
CGI接收httpd进程接收到的数据请求;
判断数据请求的报文头是否是设置操作;
若是设置操作,接收httpd设置数据请求,根据数据请求的页面进行解析,并将页面和数据结构表中的已知数据页面进行匹配;若存在匹配的页面,则将需要设置的功能数据存储于临时缓存中,通过页面索引将页面中所有需要保存的功能数据发送给相应的平台,平台接收数据进行处理,并将处理结果回传;若不存在匹配的页面,则丢弃该数据请求,CGI将结果发送给httpd,再由httpd发送给请求数据的http客户端;
若不是设置操作,接收httpd获取数据请求,接收页面数据,根据数据请求的页面进行解析,并将页面和数据结构表中的已知数据页面进行匹配;若存在匹配的页面,则通过页面索引从所在的平台中获取页面需要的所有数据,将获取的数据存储于临时缓存中,解析页面中需要的功能参数,通过功能参数表,从临时缓存中获取数据,并回传给httpd,httpd再发送给请求数据的http客户端;若不存在匹配的页面,则丢弃该数据请求,CGI将结果发送给httpd,再由httpd发送给请求数据的http客户端;
步骤S2、嵌入式设备根据所请求数据的控制报文类型,确定数据所在平台;判断数据所在平台是否为当前平台;若是,转入步骤S3;若否,转入步骤S4;
步骤S3、从当前平台上直接获取所要求的数据,并返回给嵌入式设备;
步骤S4、访问数据所在平台对应的客户端,数据所在平台对应的客户端再访问对应的服务端,对应的服务端在数据所在平台上获取所要求的数据,并返回至数据所在平台对应的客户端,数据所在平台对应的客户端将所要求的数据返回给嵌入式设备。
2.根据权利要求1所述的基于Linux的嵌入式web服务器访问多平台数据的实现方法,其特征在于:用户端通过设备的浏览器访问嵌入式设备的web页面。
3.根据权利要求1所述的基于Linux的嵌入式web服务器访问多平台数据的实现方法,其特征在于:获取所请求数据的控制报文类型时,通过页面的名字进行匹配来确定。
4.根据权利要求1所述的基于Linux的嵌入式web服务器访问多平台数据的实现方法,其特征在于:所述步骤S4中,数据所在平台对应的客户端将所要求的数据返回给嵌入式设备时,所要求的数据返回给嵌入式设备的httpd进程,httpd进程再将所要求的数据返回给浏览器,以便用户看到嵌入式设备的页面信息。
5.根据权利要求1所述的基于Linux的嵌入式web服务器访问多平台数据的实现方法,其特征在于:所述步骤S4中,客户端和服务端间的通信机制是采用Linux的ipc通信机制来完成。
6.根据权利要求1所述的基于Linux的嵌入式web服务器访问多平台数据的实现方法,其特征在于:所述步骤S4中,客户端到服务端的过程是线程到进程、进程到进程、线程到线程或进程到线程。
基于Linux的嵌入式web服务器访问多平台数据的实现方法\n技术领域\n[0001] 本发明涉及一种web服务器访问平台数据的方法,特别是涉及一种基于Linux的嵌入式web服务器访问多平台数据的实现方法。\n背景技术\n[0002] 在采用Linux作为操作系统的嵌入式设备中,Linux系统提供各个功能模块进程之间及线程之间的通信。如何在Linux环境下实现准确且高效的数据获取成为研发中的重点所在。\n[0003] 在嵌入式设备的研发中,为了快速运行设备和提供高效的功能,通常会将多个平台的架构放在同一个设备中运行,而且所采用的数据则分别存储在对应的平台中,各个平台有自己的数据处理机制。因此,在添加web功能时,需要获取各个平台的数据。由于各个平台的数据处理机制不同,且平台不能直接访问平台数据,会出现各个平台处理数据负荷不一致的情况,导致影响了整个设备的运行,如图1所示的情况。\n[0004] 另外,现有技术中,嵌入式设备只是通过httpd进程通过解析后访问一个平台的数据,并不能访问多个平台的数据。\n发明内容\n[0005] 鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于Linux的嵌入式web服务器访问多平台数据的实现方法,在实现更好的移植且不破坏当前各个平台的架构的基础上,在Linux系统中通过httpd进程获取多个不同平台的数据,以达到页面访问的目的。\n[0006] 为实现上述目的及其他相关目的,本发明提供一种基于Linux的嵌入式web服务器访问多平台数据的实现方法,包括以下步骤:步骤S1、当访问嵌入式设备的web页面时,嵌入式设备调用httpd进程接收数据请求,并通过CGI对数据请求进行解析和分解,获取所请求数据的控制报文类型以及相应的分解数据;步骤S2、嵌入式设备根据所请求数据的控制报文类型,确定数据所在平台;判断数据所在平台是否为当前平台;若是,转入步骤S3;若否,转入步骤S4;步骤S3、从当前平台上直接获取所要求的数据,并返回给嵌入式设备;步骤S4、访问数据所在平台对应的客户端,数据所在平台对应的客户端再访问对应的服务端,对应的服务端在数据所在平台上获取所要求的数据,并返回至数据所在平台对应的客户端,数据所在平台对应的客户端将所要求的数据返回给嵌入式设备。\n[0007] 根据上述的基于Linux的嵌入式web服务器访问多平台数据的实现方法,其中:用户端通过设备的浏览器访问嵌入式设备的web页面。\n[0008] 根据上述的基于Linux的嵌入式web服务器访问多平台数据的实现方法,其中:获取所请求数据的控制报文类型时,通过页面的名字进行匹配来确定。\n[0009] 根据上述的基于Linux的嵌入式web服务器访问多平台数据的实现方法,其中:所述步骤S1中,CGI的处理过程包括如下步骤:\n[0010] CGI接收httpd进程接收到的数据请求;\n[0011] 判断数据请求的报文头是否是设置操作;\n[0012] 若是设置操作,接收httpd设置数据请求,根据数据请求的页面进行解析,并将页面和数据结构表中的已知数据页面进行匹配;若存在匹配的页面,则将需要设置的功能数据存储于临时缓存中,通过页面索引将页面中所有需要保存的功能数据发送给相应的平台,平台接收数据进行处理,并将处理结果回传;若不存在匹配的页面,则丢弃该数据请求,CGI将结果发送给httpd,再由httpd发送给请求数据的http客户端;\n[0013] 若不是设置操作,接收httpd获取数据请求,接收页面数据,根据数据请求的页面进行解析,并将页面和数据结构表中的已知数据页面进行匹配;若存在匹配的页面,则通过页面索引从所在的平台中获取页面需要的所有数据,将获取的数据存储于临时缓存中,解析页面中需要的功能参数,通过功能参数表,从临时缓存中获取数据,并回传给httpd,httpd再发送给请求数据的http客户端;若不存在匹配的页面,则丢弃该数据请求,CGI将结果发送给httpd,再由httpd发送给请求数据的http客户端。\n[0014] 根据上述的基于Linux的嵌入式web服务器访问多平台数据的实现方法,其中:所述步骤S4中,数据所在平台对应的客户端将所要求的数据返回给嵌入式设备时,所要求的数据返回给嵌入式设备的httpd进程,httpd进程再将所要求的数据返回给浏览器,以便用户看到嵌入式设备的页面信息。\n[0015] 根据上述的基于Linux的嵌入式web服务器访问多平台数据的实现方法,其中:所述步骤S4中,客户端和服务端间的通信机制是采用Linux的ipc通信机制来完成。\n[0016] 根据上述的基于Linux的嵌入式web服务器访问多平台数据的实现方法,其中:所述步骤S4中,客户端到服务端的过程是线程到进程、进程到进程、线程到线程或进程到线程。\n[0017] 如上所述,本发明的基于Linux的嵌入式web服务器访问多平台数据的实现方法,具有以下有益效果:\n[0018] (1)实现了更好的移植且不破坏当前各个平台的架构;\n[0019] (2)实现了web服务器对多个不同平台的数据信息的访问;\n[0020] (3)便于移植,易于维护。\n附图说明\n[0021] 图1显示为现有技术中多个平台各自进行数据处理的示意图;\n[0022] 图2显示为本发明的基于Linux的嵌入式web服务器访问多平台数据的实现方法的框架流程图;\n[0023] 图3显示为本发明中CGI的处理流程图;\n[0024] 图4显示为本发明的基于Linux的嵌入式web服务器访问多平台数据的实现方法的详细流程图;\n[0025] 图5显示为本发明中客户端和服务端间的通信机制的示意图。\n具体实施方式\n[0026] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。\n[0027] 需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。\n[0028] 本发明中,web服务器需要跨平台实现对数据的访问,其中跨平台是指运行在多种不同架构上的进程或者线程。\n[0029] 参照图2,本发明的基于Linux的嵌入式web服务器访问多平台数据的实现方法包括以下步骤:\n[0030] 步骤S1、当用户端访问嵌入式设备的web页面时,嵌入式设备调用httpd进程接收数据请求,并通过通用网关接口(Common Gateway Interface,CGI)对数据请求进行解析和分解,获取所请求数据的控制报文类型以及相应的分解数据。\n[0031] 具体地,用户端通过设备如PC的浏览器访问嵌入式设备的web页面。嵌入式设备中当前平台的httpd进程接收该http数据请求,并通过CGI进行解析和分解,以获取所请求数据的控制报文类型。其中,获取所请求数据的控制报文类型时,通过页面的名字进行匹配来确定。\n[0032] 参照图3,CGI的处理过程包括如下步骤:\n[0033] CGI接收httpd进程接收到的数据请求。\n[0034] 判断数据请求的报文头是否是设置(set)操作。\n[0035] 若是set操作,接收httpd设置数据请求,根据数据请求的页面进行解析,并将页面和数据结构表中的已知数据页面进行匹配;若存在匹配的页面,则将需要设置的功能数据存储于临时缓存中,通过页面索引将页面中所有需要保存的功能数据发送给相应的平台,平台接收数据进行处理,并将处理结果回传;若不存在匹配的页面,则丢弃该数据请求,CGI将结果发送给httpd,再由httpd发送给请求数据的http客户端。\n[0036] 若不是set操作,接收httpd获取数据请求,接收页面数据,根据数据请求的页面进行解析,并将页面和数据结构表中的已知数据页面进行匹配;若存在匹配的页面,则通过页面索引从所在的平台中获取页面需要的所有数据,将获取的数据存储于临时缓存中,解析页面中需要的功能参数,通过功能参数表,从临时缓存中获取数据,并回传给httpd,httpd再发送给请求数据的http客户端;若不存在匹配的页面,则丢弃该数据请求,CGI将结果发送给httpd,再由httpd发送给请求数据的http客户端。\n[0037] 步骤S2、嵌入式设备根据所请求数据的控制报文类型,确定数据所在平台;判断数据所在平台是否为当前平台;若是,转入步骤S3;若否,转入步骤S4。\n[0038] 步骤S3、从当前平台上直接获取所要求的数据,并返回给嵌入式设备。\n[0039] 步骤S4、访问数据所在平台对应的客户端,数据所在平台对应的客户端再访问对应的服务端,对应的服务端在数据所在平台上获取所要求的数据,并返回至数据所在平台对应的客户端,数据所在平台对应的客户端最后返回给嵌入式设备。\n[0040] 例如,参照图4,通过页面的名字进行查找时,匹配到该页面的数据在平台a中,那么到对接平台a的客户端中请求数据;当对接a的客户端收到数据请求时,会发送到平台a的服务端,平台a的服务端收到该数据请求后,在a平台的中取出所要求的数据,并将数据返回给对接平台a的客户端,对接平台a的客户端收到数据后再返回给嵌入式设备的httpd进程,httpd进程最终将数据返回给web浏览器,使得用户可以看到嵌入式设备的页面信息。同样,获取b平台的数据也一样,在此不再赘述。\n[0041] 其中,需要说明的是,步骤S4中客户端和服务端间的通信机制是采用Linux的ipc通信机制来完成,如图5所示。具体地,客户端到服务端的过程可以是线程到进程、进程到进程、线程到线程或进程到线程。具体取决于各个平台的架构形式,Linux系统提供了这些方式的通信机制。\n[0042] 综上所述,本发明的基于Linux的嵌入式web服务器访问多平台数据的实现方法实现了更好的移植且不破坏当前各个平台的架构;实现了web服务器对多个不同平台的数据信息的访问,便于移植,易于维护。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。\n[0043] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
法律信息
- 2021-07-06
专利权的转移
登记生效日: 2021.06.23
专利权人由台州市吉吉知识产权运营有限公司变更为上海泰宇信息技术股份有限公司
地址由318015 浙江省台州市椒江区洪家街道东环大道2388号农港城A区2-3167号变更为201100 上海市闵行区春东路508号2幢509室
- 2020-11-13
专利权的转移
登记生效日: 2020.11.03
专利权人由上海斐讯数据通信技术有限公司变更为台州市吉吉知识产权运营有限公司
地址由201616 上海市松江区思贤路3666号变更为318015 浙江省台州市椒江区洪家街道东环大道2388号农港城A区2-3167号
- 2017-11-21
- 2015-09-02
实质审查的生效
IPC(主分类): G06F 9/54
专利申请号: 201410766920.4
申请日: 2014.12.12
- 2015-04-22
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2008-06-18
|
2006-12-15
| | |
2
| |
2008-08-06
|
2008-02-01
| | |
3
| |
2014-06-11
|
2012-11-30
| | |
4
| |
2011-10-12
|
2011-05-31
| | |
5
| |
2014-08-13
|
2014-06-06
| | |
6
| |
2014-03-26
|
2013-12-23
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |