CN103440289B - 基于MapReduce的网页不兼容标签并行查找方法 - Google Patents

基于MapReduce的网页不兼容标签并行查找方法 Download PDF

Info

Publication number
CN103440289B
CN103440289B CN201310359420.4A CN201310359420A CN103440289B CN 103440289 B CN103440289 B CN 103440289B CN 201310359420 A CN201310359420 A CN 201310359420A CN 103440289 B CN103440289 B CN 103440289B
Authority
CN
China
Prior art keywords
label
incompatible
code
code block
scanning
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.)
Expired - Fee Related
Application number
CN201310359420.4A
Other languages
English (en)
Other versions
CN103440289A (zh
Inventor
李睿
吕江花
马世龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201310359420.4A priority Critical patent/CN103440289B/zh
Publication of CN103440289A publication Critical patent/CN103440289A/zh
Application granted granted Critical
Publication of CN103440289B publication Critical patent/CN103440289B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于MapReduce的网页不兼容标签并行查找方法,用于对不兼容标签快速定位。本方法将要扫描的代码分为n块,在m个计算机上使用Map函数并行查找代码块中的不兼容标签,所使用的不兼容标签库为Trie结构组织;当查找到不兼容标签时,记录标签所在的行数、列数和代码块号;最后通过Reduce操作对所记录的结果进行汇总处理,将中所有不兼容标签的位置返回给用户。本方法可用于大型Web应用程序的多平台部署,能快速定位不兼容标签,以辅助工程师快速定位源代码中需要进行处理的不兼容标签,使部署的Web应用能在不同浏览器上正常显示。

Description

基于MapReduce的网页不兼容标签并行查找方法
技术领域
本发明属于应用软件跨平台迁移领域,尤其是一种基于MapReduce的网页不兼容标签并行查找方法。
背景技术
Web***客户端的迁移相对于其他***客户端的迁移具有其独特的特点。Web***中开发网页使用的javascript等脚本语言具有跨平台性,开发的程序符合W3C的技术规范,Linux、Windows操作***上的浏览器对WEB应用***均能较好的支持。但由于使用的浏览器不同,因此在浏览器引擎对WEB应用***网页进行解析后,会在用户界面上呈现出不同的显示效果。例如,某些在微软IE浏览器能正常显示的标签和属性,在使用FireFox浏览器的解析时,会出现显示异常或错误等问题。
一般来说,浏览器是由浏览器的解释引擎和用户界面组成的。用户界面,也就是常说的浏览器外壳,是用户和浏览器进行交互的平台。而作为浏览器的核心的解释引擎,负责对网页语法的解释(如HTML、JavaScript、XML、图像等等)、整理信息(例如加入CSS(CascadingStyleSheet,级联样式表)等)、以及计算网页的显示方式,最后会输出至显示器或打印机。解释引擎直接决定了网页文件的解析方式,所以也被称为浏览器的内核。解释引擎的不同,直接导致了相同网页在不同引擎下呈现不同的显示方式。以Windows的IE浏览器中使用的Trident解释引擎和Linux下的FireFox浏览器使用的Gecko解释引擎为例进行说明:
Trident是微软开发的一种解释引擎,它的第一个版本是随着1997年10月的Windowsinternetexplorer第四版的发布而发布。随后,trident引擎随着浏览器版本的IE浏览器的版本更新而不断地被更新和完善,并沿用到目前的IE9。Trident引擎的主要工作流程如下:用户在浏览器的地址栏输入地址后,通过向浏览器请求后获得html文件。浏览器加载html文件时,对于外部链接CSS文件,浏览器再发出CSS文件的请求从而获得相应的CSS文件。在此之后,浏览器开始渲染页面,渲染的过程是顺序执行的,但是渲染并不都是一遍就完成的,有时后面遇到的内容导致前面渲染的结果要做出相应的改变,此时就要回到相应的位置重新渲染页面,这也就是reflow过程。
Gecko是一套开放源代码的、以C++编写的网页解释引擎。这个软件原本是由网景通讯公司开发的,现在则由Mozilla基金会维护。Gecko引擎的工作流程和Trident引擎完全相同。但是,在Trident引擎中,javascript的处理功能集成在Trident引擎之中。而对于包括Gecko在内的大多数引擎来说,由于效率的问题,在引擎之外又开发了一个javascript引擎来进行处理,以提高处理速度。
虽然解析引擎的工作流程大同小异,但是不同的解析引擎对标签的解析却不尽相同,这样便使得存在某些标签能被某些浏览器正确识别,却不能被另外一些浏览器所识别的现象,这也就是所谓的浏览器不兼容的问题。
浏览器的兼容性问题在确定使用不同的解释引擎时就已经确定下来了,之后也无法改变,除非重写内核。这也就为开发者提出了要求,要求他们在开发的Web应用的时候要兼顾到不同浏览器内核之间的差异性,尽可能的确保所编写的网页文件能在不同浏览器中正常显示。
由于需要进行迁移的WEB应用***往往规模都较大,例如公共资源交易、人防应急指挥、财政协同办公、政协业务办公等***,每个***包含若干个子***,每个子***包含若干模块,整个需要被迁移的***,客户端网页的数量庞大,若是手动来完成对标签的查找和修改,所面对的工作量是非常巨大的,同时也非常容易出现遗漏或误判等情况。如何在跨平台迁移Web应用***时,保证其中网页显示的内容在迁移后能够正确的被不同的浏览器解析并正确显示,是一个亟待解决的问题。
发明内容
本发明针对跨平台迁移Web应用***存在的问题,提出了一种基于MapReduce的网页不兼容标签并行查找方法,用于对不兼容标签快速定位,以辅助工程师快速定位源代码中需要进行处理的不兼容标签,使部署的Web应用能在不同浏览器上正常显示。
本发明的基于MapReduce的网页不兼容标签并行查找方法,包括如下步骤:
步骤一:确定Web应用的源代码中需要进行不兼容标签定位的代码边界;
步骤二:将需要扫描的代码近均匀地等分成n块,n为整数,每份代码用一个三元组描述<R,B,F>,其中R表示该代码块的总代码行数,B表示代码块号,F表示代码块当前状态,F取值0或1,0为未进行扫描或正在进行扫描,1为扫描结束;
步骤三:将分割后的代码随机分配到m台机器上进行处理;
步骤四:初始化结构体labelContext,结构体labelContext中包含源代码路径,中间文件的保存路径,map函数的个数,reduce函数的个数,以及不兼容标签库的路径;
步骤五:为每个代码块创建map函数,并设置代码块的三元组中的F为0;
步骤六:每台机器对所分配的代码块,开始向下扫描标签;
步骤七:根据不兼容标签库,判断扫描到的标签是否为不兼容标签,若是,执行步骤八,否则,执行步骤九;
步骤八:在中间文件中记录不兼容标签所在的位置,标签所在的位置用三个参数表示:标签所在的行数r、列数c以及标签所在的代码块号b,然后执行步骤九;
步骤九:判断当前代码块是否扫描结束,若结束,将该代码块三元组中的参数F置为1;若没有,返回步骤六,继续执行;
步骤十:判断所有代码块是否都已结束扫描,若结束,执行步骤十一,否则等待其它代码块的扫描结束,然后再执行步骤十一;
步骤十一:所有中间文件通过Reduce函数,根据记录的不兼容标签所在的位置,计算各不兼容标签的实际位置;
步骤十二:合并同一标签的信息;
步骤十三:将合并后的不兼容标签及标签所在的位置放入哈希集合容器中,并返回给用户。
本发明一种基于MapReduce的网页不兼容标签并行查找方法的优点在于:
(1)本发明查找方法基于MapReduce,MapReduce是一种能处理海量数据的并行编程模式,对于代码量大的Web应用,快速定位效果更为显著,适合用于大型Web应用程序的多平台部署;
(2)由于Web网页代码量繁杂,查找时间长,各个不兼容标签相互独立,相互之间不依赖,因此,非常适合使用并行查找方法,本发明在进行不兼容标签定位的时候,将MapReduce的模式用在标签查找过程中,不兼容标签的查找效率将提高;
(3)本发明方法所使用的不兼容标签库,是按照Trie结构组织,可以最大限度地减少无谓的字符串比较,查找效率高于哈希表。同时这种组织结构更易于扩展。
附图说明
图1是本发明提供的并行查找方法的整体流程图;
图2是不兼容标签库的结构示意图;
图3是本发明运行实例的参数信息设置示意图;
图4是本发明运行实例在执行期间的部分运行日志信息图;
图5是本发明运行实例的运行结果示意图。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
本发明是基于MapReduce设计实现的快速网页不兼容标签快速并行查找方法,在实践中可以快速定位不兼容标签,提示工程师需要对此进行相应处理,使部署的Web应用能在不同浏览器上正常显示。
本发明的基于MapReduce的网页不兼容标签并行查找方法,首先将待进行分析的Web界面的源代码进行分割,近均匀地等分为n块,然后,针对分割后的每个代码块使用Map函数,判断源代码中所用到的标签是否为不兼容标签,如果是,记录该标签所在的位置(行数r、列数c),以及标签所在的代码块b;最后通过Reduce操作对所记录的结果进行汇总处理,得到源代码中所有的不兼容标签,以及每个标签出现的所有位置(行数r、列数c)。本发明的网页不兼容标签并行查找方法,用于大型Web应用程序的多平台部署。而Web网页代码量繁杂,查找时间长,各个不兼容标签相互独立,相互之间不依赖,非常适合使用并行查找方法,因此,在进行不兼容标签定位的时候,将MapReduce的模式用在标签查找过程中,不兼容标签的查找效率将提高。MapReduce是一种编程模型,可用于大规模数据集(大于1TB)的并行运算。MapReduce是一种编程模型,可用于大规模数据集(大于1TB)的并行运算,指定了Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定了并发的Reduce(化简)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
如图1所示,本发明提供的基于MapReduce的网页不兼容标签并行查找方法,包括如下步骤:
步骤一:确定Web应用的源代码中需要进行不兼容标签定位的代码边界。
步骤二:将需要扫描的代码等分或近均匀地等分成n块,n为整数,具体值可由用户指定。
第b个代码块分别用一个三元组来描述<Rb,b,Fb>,其中Rb表示的是该代码块的总代码行数,b表示的是代码块号,F表示代码块当前状态,取值0或1,0为未进行扫描或正在进行扫描,1为扫描结束。
例如一个段总行数为378行的代码,根据指定现需要分割成10份,那么前9份代码块的代码行均为38行,最后1个代码块的代码总行数为36行。对于最后1个代码块,总代码行数R10为36,代码块号b为10。
步骤三:将分割后的代码随机分配到m台机器上进行处理。
步骤四:初始化结构体labelContext,用来保存本发明方法所需要的参数,包括源代码路径,中间文件的保存路径,map函数的个数,reduce函数的个数,不兼容标签库的路径等。中间文件用来保存每台机器上运行代码得到的结果,最后还需要汇总中间文件的结果。
结构体labelContext的关键数据结构如下所示:
LPVOID是一个没有类型的指针类型,DWORD是双字节的数据类型。
步骤五:为每个代码块创建map函数,此时代码块的三元组中的F均设置为0。
步骤六:每台机器对所分配的代码块,向下扫描标签。
步骤七:根据不兼容标签库,判断扫描到的标签是否为不兼容标签,若是,执行步骤八,否则,执行步骤九。
不兼容标签库,按照Trie(单词查找树)结构组织,可以最大限度地减少无谓的字符串比较,查找效率高于哈希表。同时这种组织结构是利用了字符串的公共前缀,节约存储空间,而且对于不兼容标签的新增、删除和查找都非常简单,有利于不兼容标签库的扩展。
以IE浏览器IE6.0和FireFox4.0为例,根据现有的W3C规范、公开资料、文档等,在前人工作的基础上总结的不兼容标签,部分典型不兼容标签列举如下:
1.标签!important,FireFox可以识别,而IE不能识别;
2.标签innerText,FireFox可以识别,而IE不能正确识别;
3.FireFox中对象文字常量允许出现多余的逗号,这在IE中是不允许;
4.标签Rgba,FireFox能识别,而IE不能识别;
5.标签HSLT,FireFox能识别,而IE不能识别;
6.标签Multiplebackgrounds,FireFox能识别,而IE不能识别;
7.标签Opacity,FireFox能识别,而IE不能识别;
8.标签Canvas,FireFox能识别,而IE不能识别;
9.event.x与event.y在IE中可识别,而在FireFox中只能识别event.pageX与event.pageY;
10.同一用途的标签,在FireFox中只能识别XMLHttpRequest,而在IE中却只能识别ActiveXObject;
11.标签attributes,IE和FireFox的解析结果不同;
12.其它IE中可识别的标签oncopy、oncut、onpasteondragenter、ondragover、ondragleave、ondrop等等,在FireFox中都不能被识别;
不兼容标签库的组织结构如图2所示,是一个树形结构。例如,这里所列的是提到的标签!important、oncopy和opacity。
判断标签是否为不兼容标签,具体方法是:遍历代码,找到代码中的标签,与已建立的不兼容标签库中的标签进行比对,比对一致的为不兼容标签,若比对不成功,则标签兼容。
本发明所述的不兼容标签,指的是由于浏览器的解析引擎的不同,导致Web应用在不同平台上进行迁移时,不同浏览器有不同的解释,甚至存在部分标签不为部分浏览器所识别的情况,从而导致同一个界面在不同浏览器上会有不同的显示效果。
步骤八:如果是不兼容标签,则在中间文件中记录该不兼容标签所在的位置,标签所在的位置用三个参数表示:标签所在的行数r、列数c以及标签所在的代码块号b;然后执行步骤九。
步骤九:判断当前代码块是否扫描结束,若结束,将该代码块三元组中的参数F置为1;若没有,返回步骤六,继续执行。
步骤十:判断所有代码块是否都已结束扫描,若结束,进入步骤十一,否则等待其它代码块的扫描结束,然后再执行步骤十一。
步骤十一:所有中间文件通过Reduce函数,根据记录的标签所在的位置,计算标签的实际位置。
各不兼容标签的实际位置计算方法为:设某个不兼容标签的位置为(r,c,b),则该不兼容标签的实际位置为(SUM(R1,R2,…,Rb-1,r),c)。SUM表示求和,R1,R2,…,Rb-1分别表示第1个代码块、第2个代码块、…、第b-1个代码块的代码行数。
步骤十二:合并同一标签的信息;
步骤十三:将合并后的不兼容标签及标签所在的位置放入哈希集合容器hash_set中,并返回给用户。
下面通过一个运行实例对本发明的方法进行进一步说明和验证。
如图3所示,首先设置所需的必要的参数信息,获得参数信息后,程序开始执行,图4是执行期间的部分运行日志(log)信息截图。下面对图4所示的部分日志进行说明。
2011-11-2617:46:56org.apache.hadoop.mapred.MapTask$MapOutputBufferflush
信息:Startingflushofmapoutput
//将缓存中的信息写入map的输出中
2011-11-2617:46:56org.apache.hadoop.mapred.MapTask$MapOutputBufferwriteIndexRecord
信息:Index:(0,2,6)
//标签信息
2011-11-2617:46:56org.apache.hadoop.mapred.Taskdone
信息:Task:attempt_local_0001_m_000033_0isdone.Andisintheprocessofcommiting
//任务attempt_local_0001_m_000033_0(注:即对分割的某一块代码的不兼容标签进行查找)完成,处于提交状态
2011-11-2617:46:56org.apache.hadoop.mapred.LocalJobRunner$JobstatusUpdate
信息:file:/home/administrator/input/dao.html:0+1031
//更新文件状态
2011-11-2617:46:56org.apache.hadoop.mapred.TasksendDone
信息:Task'attempt_local_0001_m_000033_0'done
//任务attempt_local_0001_m_000033_0结束
以上所示为一个代码块的执行完成。
程序执行完毕后,由于最终结果是HDFS(HadoopDistributedFileSystem)格式的数据格式,需要使用HDFS命令,使用Linux下的Shell进行数据查看。
图5所示的是运行结果。运行结果文档存储在结果文件夹下的part-00000文档下,储格式是HDFS文件***的SequenceFile格式,是一种二进制的格式。可以借助于HDFS的文档查看命令:/bin/hadoopdfs–cat/目标文件夹/part-00000,来查看文档。通过调用HDFS的解析能力,对目标文档进行解析,使之以可阅读的形式显示在shell下。
Shell中的文档的格式为:Label行信息(行号,列号)。其中label是标签的信息,行信息为该label所在的行的文字内容。
例如,[<event></event>]xxx[572,16],其中xxx信息可以忽略,该行内容表示的信息是,不兼容的标签event出现的位置是第572行的第16列。

Claims (2)

1.一种基于MapReduce的网页不兼容标签并行查找方法,其特征在于,所述查找方法包括如下步骤:
步骤一:确定Web应用的源代码中需要进行不兼容标签定位的代码边界;
步骤二:将需要扫描的代码近均匀地等分成n块,n为整数,每份代码用一个三元组描述<R,B,F>,其中R表示代码块的总代码行数,B表示代码块号,F表示代码块当前状态,F取值0或1,0为未进行扫描或正在进行扫描,1为扫描结束;
步骤三:将分割后的代码随机分配到m台机器上进行处理;
步骤四:初始化结构体labelContext,结构体labelContext中包含源代码路径,中间文件的保存路径,map函数的个数,reduce函数的个数,以及不兼容标签库的路径;
步骤五:为每个代码块创建map函数,并设置代码块的三元组中的F为0;
步骤六:每台机器对所分配的代码块,开始向下扫描标签;
步骤七:根据不兼容标签库,判断扫描到的标签是否为不兼容标签,若是,执行步骤八,否则,执行步骤九;
步骤八:在中间文件中记录不兼容标签所在的位置,标签所在的位置用三个参数表示:标签所在的行数r、列数c以及标签所在的代码块号b,然后执行步骤九;
步骤九:判断当前代码块是否扫描结束,若结束,将该代码块三元组中的参数F置为1;若没有,返回步骤六,继续执行;
步骤十:判断所有代码块是否都已结束扫描,若结束,执行步骤十一,否则等待其它代码块的扫描结束,然后再执行步骤十一;
步骤十一:所有中间文件通过Reduce函数,根据记录的不兼容标签所在的位置,计算各不兼容标签的实际位置;
各不兼容标签的实际位置的计算方法为:设某个不兼容标签的位置为(r,c,b),则该不兼容标签的实际位置为(SUM(R1,R2,…,Rb-1,r),c);其中,SUM表示求和,R1,R2,…,Rb-1分别表示第1个代码块、第2个代码块、…、第b-1个代码块的代码行数;
步骤十二:合并同一标签的信息;
步骤十三:将合并后的不兼容标签及标签所在的位置放入哈希集合容器中,并返回给用户。
2.根据权利要求1所述的基于MapReduce的网页不兼容标签并行查找方法,其特征在于,所述的步骤七中的不兼容标签库,按照单词查找树的结构组织。
CN201310359420.4A 2013-08-16 2013-08-16 基于MapReduce的网页不兼容标签并行查找方法 Expired - Fee Related CN103440289B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310359420.4A CN103440289B (zh) 2013-08-16 2013-08-16 基于MapReduce的网页不兼容标签并行查找方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310359420.4A CN103440289B (zh) 2013-08-16 2013-08-16 基于MapReduce的网页不兼容标签并行查找方法

Publications (2)

Publication Number Publication Date
CN103440289A CN103440289A (zh) 2013-12-11
CN103440289B true CN103440289B (zh) 2016-05-18

Family

ID=49693981

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310359420.4A Expired - Fee Related CN103440289B (zh) 2013-08-16 2013-08-16 基于MapReduce的网页不兼容标签并行查找方法

Country Status (1)

Country Link
CN (1) CN103440289B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105989054A (zh) * 2015-02-06 2016-10-05 北京神州泰岳软件股份有限公司 一种管理客户端侧数据的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541533A (zh) * 2010-12-27 2012-07-04 北大方正集团有限公司 页面显示方法和设备
CN102567366A (zh) * 2010-12-27 2012-07-11 盛乐信息技术(上海)有限公司 实现对网页重新排版的方法
CN102637135A (zh) * 2011-02-09 2012-08-15 北京千橡网景科技发展有限公司 用于编译层叠样式表的方法和设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7818681B2 (en) * 2007-06-28 2010-10-19 International Business Machines Corporation Method and system for internally identifying a specific web browser for displaying a specific web page

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541533A (zh) * 2010-12-27 2012-07-04 北大方正集团有限公司 页面显示方法和设备
CN102567366A (zh) * 2010-12-27 2012-07-11 盛乐信息技术(上海)有限公司 实现对网页重新排版的方法
CN102637135A (zh) * 2011-02-09 2012-08-15 北京千橡网景科技发展有限公司 用于编译层叠样式表的方法和设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于模型的万维应用软件网页自动规范化的重构工具的设计与实现;陈耀森;《中国优秀硕士学位论文全文数据库(电子期刊)》;20120415;全文 *
高校图书馆网站对浏览器兼容性测试;游强华等;《图书馆杂志》;20111031;第30卷(第10期);全文 *

Also Published As

Publication number Publication date
CN103440289A (zh) 2013-12-11

Similar Documents

Publication Publication Date Title
CN108399256B (zh) 异构数据库内容同步方法、装置及中间件
US7720885B2 (en) Generating a word-processing document from database content
US7720814B2 (en) Repopulating a database with document content
WO2020259141A1 (zh) 一种文件处理方法、装置及计算机设备
CN107766130A (zh) 虚拟机向容器迁移的方法和装置
CN107122187A (zh) 一种业务***异构操作***访问设计方法
CN112860777B (zh) 数据处理方法、装置及设备
CN105589959A (zh) 表单处理方法和表单***
CN111367890A (zh) 一种数据迁移的方法、装置、计算机设备及可读存储介质
Andhavarapu Learning Elasticsearch
CN101251799B (zh) 管理实现的方法和装置
US7694315B2 (en) Schema-based machine generated programming models
CN113177168A (zh) 一种基于Web元素属性特征的定位方法
CN115935944A (zh) 一种跨平台的标准文件树形结构生成方法与展示控件
CN113761040A (zh) 数据库与应用程序双向映射方法、设备、介质及程序产品
CN103440289B (zh) 基于MapReduce的网页不兼容标签并行查找方法
CN112783482A (zh) 一种可视化表单生成方法、装置、设备及存储介质
US11010140B2 (en) Integration of workflow and logical data objects using visual programming
CN116400914A (zh) 一种基于数据模型快速构建web应用的方法
US10649743B2 (en) Application developing method and system
CN113254455B (zh) 数据库的动态配置方法、装置、计算机设备及存储介质
CN114968725A (zh) 任务依赖关系校正方法、装置、计算机设备及存储介质
CN114356403A (zh) 一种基于低代码应用开发的组态数据处理方法、装置和***
US8719693B2 (en) Method for storing localized XML document values
EP2972666B1 (en) Visualization interface for information object system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Li Rui

Inventor after: Lv Jianghua

Inventor after: Ma Shilong

Inventor before: Li Rui

Inventor before: Ma Shilong

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160518

Termination date: 20200816