实现高内聚与低耦合的多级缓存方法及其系统的制作方法

文档序号:7814267阅读:266来源:国知局
实现高内聚与低耦合的多级缓存方法及其系统的制作方法
【专利摘要】本申请公开了一种实现高内聚与低耦合的多级缓存方法及其系统,该方法为获取业务应用的数据对象的操作请求提供分层安排,包括:发送数据对象的操作请求;根据所述操作请求,按照业务功能采用队列模式将所述数据对象进行归并和分类,并采用面向数据对象的开发方式进行逐层封装;基于配置的定义管理所述数据对象,并提供数据对象的操作接口,以对动态内容进行缓存。本发明实现高内聚与低耦合,系统总体架构按照获取业务应用的数据对象的操作请求进行分层设计,通过统一方式进行调用,对于内容管理等具有扩展性需要的业务逻辑,提供基于配置的快速定义开发方式,支持大多数的数据对象内容发布要求,减少二次开发需求,在语义层实施解耦。
【专利说明】实现高内聚与低耦合的多级缓存方法及其系统

【技术领域】
[0001]本发明属于通信【技术领域】,涉及一种实现高内聚与低耦合的多级缓存方法及其系统。

【背景技术】
[0002]随着互联网技术的普及,大型电子商城应运而生,其给人们的生活带来了诸多的便利,人们开始习惯在大型电子商城上进行各种各样的应用以满足生活需求,典型的应用如电子购物,流程一般包括:浏览商品,商品加入购物车,查询购物车商品,查询订单状态,导出订单等,随之而来对响应速度提出了更高的要求。
[0003]目前,以大型电子商城12580为例,作为中国移动为用户提供的综合信息服务平台,在国内,可随时拨打12580进行餐饮、娱乐、旅游、天气、交通、便民等各类信息的查询,以及酒店、机票的查询、预订,查询结果将以语音及短信、彩信等方式告知用户。12580在商户和消费者之间,构建了一个基于“用户细分需求匹配、广告直接促进销售”的双边市场,致力于为客户提供“专家级”资讯服务。
[0004]公布号为CN103166997A的专利文献公开了一种memcache分布式缓存方法,包括:首先,缓存获取,采用客户端通过请求名字结点服务器返回唯一键对应的缓存节点服务器的一个或多个ip地址。接着,客户端从某个数据源获取数据,客户端通过请求名字结点服务器,令名字结点服务器范围唯一键所对应的缓存结点服务器的一个或多个ip地址。之后,客户端获取第一个ip,将缓存写入对应的缓存结点服务器。现有技术的显著缺点是:不能适应未来各种应用系统对大型电子商城提供统一平台服务的需求,以及提供针对各种已有数据源的接口支持。


【发明内容】

[0005]本发明的目的在于克服上述不足,提供一种实现高内聚与低耦合的多级缓存方法,其能够加快数据对象操作请求的响应速度,满足未来各种应用系统对大型电子商城提供统一平台服务的需求。
[0006]为了实现上述目的,本发明采用的技术方案为:
[0007]—种实现高内聚与低耦合的多级缓存方法,其特征在于,为获取业务应用的数据对象的操作请求提供分层安排,包括:
[0008]发送数据对象的操作请求;
[0009]根据所述操作请求,按照业务功能采用队列模式将所述数据对象进行归并和分类,并采用面向数据对象的开发方式进行逐层封装;
[0010]基于配置的定义管理所述数据对象,并提供数据对象的操作接口,以对动态内容进行缓存。
[0011]优选地,其中,所述基于配置的定义管理数据对象包括:设定各个数据对象对应存储的memcached,根据数据对象的主键值将所述数据对象分发到对应的memcached。
[0012]优选地,其中,所述将数据对象分发到对应的memcached为采用Hash算法。
[0013]优选地,其中,所述对动态内容进行缓存包括:由负载平衡器动态地将负载重新分布在与缓存的内容相关联的操作接口上。
[0014]为了实现上述目的,本发明采用的技术方案为:
[0015]一种实现高内聚与低耦合的多级缓存系统,其特征在于,整体架构按照获取业务应用的数据对象的操作请求进行分层设计,包括:
[0016]客户层,用于发送数据对象的操作请求;
[0017]服务层,用于根据所述操作请求,按照业务功能采用队列模式将所述数据对象进行归并和分类,并采用面向数据对象的开发方式进行逐层封装;
[0018]存储层,用于基于配置的定义管理所述数据对象,并提供数据对象的操作接口,以对动态内容进行缓存。
[0019]优选地,其中,所述存储层包括:采用队列模式分布的memcached。
[0020]优选地,其中,所述存储层还包括扩展程序操作接口,用于扩展数据库服务器。
[0021]优选地,其中,所述存储层还包括负载平衡器,用于动态地将负载重新分布在与单个缓存相关联的操作接口上。
[0022]本发明的有益效果为:
[0023]第一,实现高内聚与低耦合,系统总体架构按照获取业务应用的数据对象的操作请求进行分层设计,包括客户层、服务层与存储层,层与层之间完全解耦,通过统一方式进行调用,对于内容管理等具有扩展性需要的业务逻辑,提供基于配置的快速定义开发方式,支持大多数的数据对象内容发布要求,减少二次开发需求,在语义层实施解耦。
[0024]第二,提高用户的访问速度,采用分布式缓存,对用户动态有关的动态内容采用memcached进行存储,通过在内存中缓存数据和对象减少读取数据库的次数,从而提供动态、数据库驱动网站的速度,另外,负载平衡器动态地将负载重新分布在与单个缓存相关联的操作接口上,减轻了数据库的负担。
[0025]第三,具备数据的无限扩展,初始的用户和访问量只需要一台服务器就可以承受,预留的扩展程序接口,可以方便地扩展数据库服务器,让系统支撑更多的数据。克服了现有技术为了扩展数据库服务器,大都采用第三方开发的程序来实现所造成的技术缺陷,有效地缓解了大量数据存储和高效率的访问。

【专利附图】

【附图说明】
[0026]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0027]图1是本发明的实现高内聚与低耦合的多级缓存方法的流程示意图;
[0028]图2是图1所示方法的实施例交互时序示意图;
[0029]图3是本发明的实现高内聚与低耦合的多级缓存系统的结构示意图。

【具体实施方式】
[0030]如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
[0031]实施例1
[0032]请参照图1,本发明的实现高内聚与低耦合的多级缓存方法,为获取业务应用的数据对象的操作请求提供分层安排,包括:S100,发送数据对象的操作请求;S200,根据所述操作请求,按照业务功能采用队列模式将所述数据对象进行归并和分类,并采用面向数据对象的开发方式进行逐层封装;S300,基于配置的定义管理所述数据对象,并提供数据对象的操作接口,以对动态内容进行缓存。
[0033]优选地,所述将数据对象进行归并和分类包括:采用队列模式将数据对象进行分布。
[0034]优选地,所述基于配置的定义管理数据对象包括:设定各个数据对象对应存储的memcached,根据数据对象的主键值将所述数据对象分发到对应的memcached。
[0035]优选地,所述将数据对象分发到对应的memcached为采用Hash算法。
[0036]优选地,所述对动态内容进行缓存包括:由负载平衡器动态地将负载重新分布在与缓存的内容相关联的操作接口上。
[0037]本实施例将本发明的方法应用在12580大型电子商城,12580是中国移动为用户提供的综合信息服务平台,在国内,可随时拨打12580进行餐饮、娱乐、旅游、天气、交通、便民等各类信息的查询,以及酒店、机票的查询、预订,查询结果将以语音及短信、彩信等方式告知用户。
[0038]以12580提供的商旅服务为例,其服务主要包括:机票预订,可以查询国内机票的正常票价、折扣票价、出发城市、到达城市、航空公司、航班号、起止机场、起飞时间、到达时间、全程时间、机型、舱位、燃油费、备注、签改退政策;并能轻松享受机票的预订、出票、送票、退票、改签等系列服务。酒店预订,可以查询酒店名称、简介、类别、地址、价格、房(床)型、前台电话、有无宽带、周边景点、会议功能、商业配套情况、会所、面积、停车、餐厅情况、装修配置情况、交通情况、相近路口、火车站机场到酒店的距离等各类信息;并能轻松享受酒店的预订、预订变更、预订取消、预订信息查询等系列服务。
[0039]请参照图2,优选地,用户登录12580商城,发送数据对象的操作请求;12580商城平台根据用户的登录操作请求,验证用户身份,并返回验证结果。
[0040]优选地,12580商城平台按照业务功能采用队列模式将所述数据对象进行归并和分类,例如机票预订,包括国内机票的正常票价、折扣票价、出发城市、到达城市、航空公司、航班号、起止机场、起飞时间、到达时间、全程时间、机型、舱位、燃油费、备注、签改退政策,并采用面向数据对象的开发方式进行逐层封装。
[0041]优选地,基于配置的定义管理所述数据对象,用户订购商品,作为具体的实施例,用户订购机票,提交订单,12580商城平台处理机票订单,成功提交支付请求至支付平台,并提供数据对象的操作接口,以对动态内容进行缓存。
[0042]优选地,支付平台向用户发起支付,用户确认支付,支付平台处理支付,向用户返回支付结果。
[0043]优选地,12580商城平台更新支付状态,并将订单信息通知到商户,由负载平衡器动态地将支付状态的更新重新分布在与缓存的内容相关联的操作接口上。
[0044]优选地,12580商城平台发起下发电子券请求至认证平台,认证平台向用户下发电子券,并返回电子券下发结果至12580商城平台。
[0045]优选地,用户持电子券前往商户消费,商户发起验证电子券请求于认证平台,认证平台向商户返回验证结果。
[0046]优选地,认证平台向12580商城平台返回验证结果,更新消费状态,由负载平衡器动态地将消费状态的更新重新分布在与缓存的内容相关联的操作接口上。验证成功,则商户向用户提供机票预订服务。
[0047]优选地,所述将数据对象进行归并和分类包括:采用队列模式将数据对象进行分布。
[0048]优选地,所述基于配置的定义管理数据对象包括:设定各个数据对象对应存储的memcached,根据数据对象的主键值将所述数据对象分发到对应的memcached。
[0049]优选地,所述将数据对象分发到对应的memcached为采用Hash算法。memcached基于一个存储键/值对的hashmap,其守护进程(daemon)是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
[0050]优选地,12580商城平台通过memcached建立分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。
[0051]在具体的实施例中,memcached是高性能的分布式内存缓存服务器,和Squid的前端缓存加速不同,它是通过基于内存缓存对象来减少数据库查询的方式改善网站系统的反应,而其中最吸引人的一个特性就是支持分布式部署,也就是说可以在一群机器上建立一堆memcached服务,每个服务可以根据具体服务器的硬件配置使用不同大小的内存块。
[0052]优选地,memcached的服务器客户端通信使用简单的基于文本行的协议。因此,通过telnet也能在memcached上保存数据、取得数据,例如:
[0053]$telnet 1calhost 11211
[0054]Trying 127.0.0.1...
[0055]Connected to localhost.1ocaldomain(127.0.0.1).
[0056]Escape character is.
[0057]set foo 003 (发起支付)
[0058]bar (订单信息)
[0059]STORED (确认支付)
[0060]get foo (返回支付结果)
[0061]VALUE foo 03 (订单信息)
[0062]bar (订单信息)
[0063]优选地,为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。
[0064]优选地,使用memcached-Server端,在服务端运行:
[0065]#./memcached-d-m 2048-1 10.0.0.40-p 11211
[0066]将会启动一个占用2G内存的进程,并打开11211端口用于接收请求。由于32位系统只能处理4G内存的寻址,所以在大于4G内存使用PAE的32位服务器上可以运行2_3个进程,并在不同端口进行监听。
[0067]优选地,使用memcached-Client端,在应用端包含一个用于描述Client的Class后,就可以直接使用,例如:
[0068]$opt1ns ["servers"] = array ("192.168.1.41:11211","192.168.1.42:11212");
[0069]$opt1ns["debug"] = false ;
[0070]$memc = new MemCachedClient ($opt1ns);
[0071]$myarr = array("one", ^two^, 3);
[0072]$memc->set("key_one", $myarr);
[0073]$val = $memc->get("key_one");
[0074]print$val[0]."\n" ;//prints,one ‘
[0075]print$val[I]."\n" ;//prints,two ‘
[0076]print$val[2]."\n";//prints 3
[0077]本发明的实现高内聚与低耦合的多级缓存方法应用在12580大型电子商城,能够提升:浏览商城的速度,商品加入购物车的速度,查询订单状态的速度,以及商户导出订单的速度。
[0078]实施例2
[0079]请参照图3,本实施例的实现高内聚与低耦合的多级缓存系统,整体架构按照获取业务应用的数据对象的操作请求进行分层设计,包括:客户层,用于发送数据对象的操作请求;服务层,用于根据所述操作请求,按照业务功能采用队列模式将所述数据对象进行归并和分类,并采用面向数据对象的开发方式进行逐层封装;存储层,用于基于配置的定义管理所述数据对象,并提供数据对象的操作接口,以对动态内容进行缓存。
[0080]优选地,所述存储层包括:采用队列模式分布的memcached。
[0081]优选地,所述基于配置的定义管理数据对象包括:设定各个数据对象对应存储的memcached,根据数据对象的主键值将所述数据对象分发到对应的memcached。
[0082]优选地,所述存储层还包括扩展程序接口,用于扩展数据库服务器。
[0083]优选地,所述存储层还包括负载平衡器,用于动态地将负载重新分布在与单个缓存相关联的操作接口上。
[0084]本实施例的分布式缓存是将用户访问或下载的内容对象在采用队列模式分布的memcached中缓存一个副本,当内容对象再次被用户访问或下载的时候,不必连接到内容对象对应的源服务器,而直接由缓存了内容对象副本的缓存设备提供,从而加速内容对象的访问和下载,并降低对缓存设备的上一级网络带宽占用。
[0085]单台服务器内存有限,内存中的数据容易丢失,此时数据库的压力会很大,短时间内无法迅速恢复缓存,此时,需要多台服务器组成分布式以解决单台机的内存限制,数据冗余和性能扩展问题。分布式缓存通过Hash算法将数据切合到缓存集群中不同的memcached上,有效地缓解了大量数据存储和高效率的访问。
[0086]本实施例应用在12580大型电子商城的酒店查询服务,包括:查询酒店名称、简介、类别、地址、价格、房(床)型、前台电话、有无宽带、周边景点、会议功能、商业配套情况、会所、面积、停车、餐厅情况、装修配置情况、交通情况、相近路口、火车站机场到酒店的距离等各类信息。
[0087]优选地,用户登录12580商城,发送数据对象的操作请求;12580商城平台根据用户的登录操作请求,验证用户身份,并返回验证结果。
[0088]优选地,12580商城平台按照业务功能采用队列模式将所述数据对象进行归并和分类,例如酒店名称、简介、类别、地址、价格、房(床)型、前台电话、有无宽带、周边景点、会议功能、商业配套情况、会所、面积、停车、餐厅情况、装修配置情况、交通情况、相近路口、火车站机场到酒店的距离。
[0089]优选地,基于配置的定义管理所述数据对象,作为具体的实施例,用户进行酒店查询,提交查询请求,12580商城平台处理查询请求,成功提交查询请求,并提供数据对象的操作接口,以对动态内容进行缓存。
[0090]优选地,服务器向用户发起酒店信息查询数据,用户进行浏览,同时,12580商城平台更新酒店信息查询数据,并将更新的信息通知到用户以进行浏览,由负载平衡器动态地将支付状态的更新重新分布在与缓存的内容相关联的操作接口上。
[0091]优选地,用户认可了商户的酒店,则向12580商城平台发起预定请求,以下步骤与实施例2相同:用户在支付平台上进行酒店预订,通过认证平台向用户下发电子券,并返回电子券下发结果至12580商城平台。
[0092]优选地,用户持电子券前往商户消费,商户发起验证电子券请求于认证平台,认证平台向商户返回验证结果。
[0093]优选地,认证平台向12580商城平台返回验证结果,更新消费状态,由负载平衡器动态地将消费状态的更新重新分布在与缓存的内容相关联的操作接口上。验证成功,则商户向用户提供酒店查询服务。
[0094]优选地,所述将数据对象进行归并和分类包括:采用队列模式将数据对象进行分布。
[0095]优选地,所述基于配置的定义管理数据对象包括:设定各个数据对象对应存储的memcached,根据数据对象的主键值将所述数据对象分发到对应的memcached。
[0096]优选地,所述将数据对象分发到对应的memcached为采用Hash算法。
[0097]优选地,12580商城平台通过memcached建立分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。
[0098]在具体的实施例中,memcached的服务器客户端通信使用简单的基于文本行的协议。因此,通过telnet也能在memcached上保存数据、取得数据,例如:
[0099]$telnet localhost 11211
[0100]Trying 127.0.0.1...
[0101]Connected to localhost.1ocaldomain(127.0.0.1).
[0102]Escape character is.
[0103]set foo 003(发起查询请求)
[0104]bar (酒店信息)
[0105]STORED (确认商户酒店)
[0106]get foo (返回查询结果)
[0107]VALUE foo 03 (酒店信息)
[0108]bar (酒店信息)
[0109]实施例3
[0110]本实施例应用在12580大型电子商城的电子优惠券服务,当用户搜索生活服务时,坐席将12580电子优惠券以短信和彩信的形式发送至客户手机终端。客户凭12580电子优惠券到签约合作商户消费,可以享受指定优惠的价格。12580电子优惠券覆盖餐饮、休闲、购物、美容美发、健身等行业。
[0111]优选地,用户登录12580商城,发送数据对象的操作请求;12580商城平台根据用户的登录操作请求,验证用户身份,并返回验证结果。
[0112]优选地,12580商城平台按照业务功能采用队列模式将所述数据对象进行归并和分类,例如餐饮、休闲、购物、美容美发、健身等各行业的电子券。
[0113]优选地,基于配置的定义管理所述数据对象,作为具体的实施例,12580商城平台发起下发电子券请求至认证平台,并提供数据对象的操作接口,以对动态内容进行缓存。
[0114]优选地,认证平台向用户下发电子券,同时,向12580商城平台返回电子券下发结果,由负载平衡器地将电子券的下发的动态信息重新分布在与缓存的内容相关联的操作接口上。
[0115]优选地,用户持电子券前往商户消费,商户向认证平台发起验证电子券请求,认证平台向商户返回验证结果,同时,向返回验证结果至12580商城平台。
[0116]优选地,认证平台向12580商城平台返回验证结果,更新消费状态,由负载平衡器动态地将消费状态的更新重新分布在与缓存的内容相关联的操作接口上。验证成功,则商户向用户提供服务。
[0117]优选地,所述将数据对象进行归并和分类包括:采用队列模式将数据对象进行分布。
[0118]优选地,所述基于配置的定义管理数据对象包括:设定各个数据对象对应存储的memcached,根据数据对象的主键值将所述数据对象分发到对应的memcached。
[0119]优选地,所述将数据对象分发到对应的memcached为采用Hash算法。
[0120]优选地,12580商城平台通过memcached建立分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。
[0121]在具体的实施例中,memcached的服务器客户端通信使用简单的基于文本行的协议。因此,通过telnet也能在memcached上保存数据、取得数据,例如:
[0122]$telnet localhost 11211
[0123]Trying 127.0.0.1...
[0124]Connected to localhost.1ocaldomain(127.0.0.1).
[0125]Escape character is.
[0126]set foo 003 (发起下发电子券请求)
[0127]bar (下发电子券)
[0128]STORED (电子券下发结果)
[0129]get foo (验证电子券请求)
[0130]VALUE foo 03 (验证结果)
[0131]bar (提供商品/服务)
[0132]本发明的有益效果为:
[0133]第一,实现高内聚与低耦合,系统总体架构按照获取业务应用的数据对象的操作请求进行分层设计,包括客户层、服务层与存储层,层与层之间完全解耦,通过统一方式进行调用,对于内容管理等具有扩展性需要的业务逻辑,提供基于配置的快速定义开发方式,支持大多数的数据对象内容发布要求,减少二次开发需求,在语义层实施解耦。
[0134]第二,提高用户的访问速度,采用分布式缓存,对用户动态有关的动态内容采用memcached进行存储,通过在内存中缓存数据和对象减少读取数据库的次数,从而提供动态、数据库驱动网站的速度,另外,负载平衡器动态地将负载重新分布在与单个缓存相关联的操作接口上,减轻了数据库的负担。
[0135]第三,具备数据的无限扩展,初始的用户和访问量只需要一台服务器就可以承受,预留的扩展程序接口,可以方便地扩展数据库服务器,让系统支撑更多的数据。克服了现有技术为了扩展数据库服务器,大都采用第三方开发的程序来实现所造成的技术缺陷,有效地缓解了大量数据存储和高效率的访问。
[0136]上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述申请构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。
【权利要求】
1.一种实现高内聚与低耦合的多级缓存方法,其特征在于,为获取业务应用的数据对象的操作请求提供分层安排,包括: 发送数据对象的操作请求; 根据所述操作请求,按照业务功能采用队列模式将所述数据对象进行归并和分类,并采用面向数据对象的开发方式进行逐层封装; 基于配置的定义管理所述数据对象,并提供数据对象的操作接口,以对动态内容进行缓存。
2.根据权利要求1所述实现高内聚与低耦合的多级缓存方法,其特征在于,所述基于配置的定义管理数据对象包括:设定各个数据对象对应存储的memcached,根据数据对象的主键值将所述数据对象分发到对应的memcached。
3.根据权利要求2所述实现高内聚与低耦合的多级缓存方法,其特征在于,所述将数据对象分发到对应的memcached为采用Hash算法。
4.根据权利要求3所述实现高内聚与低耦合的多级缓存方法,其特征在于,所述对动态内容进行缓存包括:由负载平衡器动态地将负载重新分布在与缓存的内容相关联的操作接口上。
5.一种实现高内聚与低耦合的多级缓存系统,其特征在于,整体架构按照获取业务应用的数据对象的操作请求进行分层设计,包括: 客户层,用于发送数据对象的操作请求; 服务层,用于根据所述操作请求,按照业务功能采用队列模式将所述数据对象进行归并和分类,并采用面向数据对象的开发方式进行逐层封装; 存储层,用于基于配置的定义管理所述数据对象,并提供数据对象的操作接口,以对动态内容进行缓存。
6.根据权利要求5所述实现高内聚与低耦合的多级缓存系统,其特征在于,所述存储层包括:采用队列模式分布的memcached。
7.根据权利要求6所述实现高内聚与低耦合的多级缓存系统,其特征在于,所述存储层还包括扩展程序操作接口,用于扩展数据库服务器。
8.根据权利要求7所述实现高内聚与低耦合的多级缓存系统,其特征在于,所述存储层还包括负载平衡器,用于动态地将负载重新分布在与单个缓存相关联的操作接口上。
【文档编号】H04L29/08GK104243581SQ201410468275
【公开日】2014年12月24日 申请日期:2014年9月15日 优先权日:2014年9月15日
【发明者】王君涛, 韩生余 申请人:成都北纬航信网络科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1