一种数据返回方法、接收方法、返回装置及接收装置的制造方法

文档序号:9787251阅读:725来源:国知局
一种数据返回方法、接收方法、返回装置及接收装置的制造方法
【技术领域】
[0001] 本发明属于R语言技术领域,尤其涉及一种数据返回方法、接收方法、返回装置及 接收装置。
【背景技术】
[0002] R语言是一种用于统计计算的编程语言和环境,最早由新西兰奥克兰大学的Ihaka 和GentLeman于1996年开发,R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到 大数据的爆发,R语言变成了一门炙手可热的数据分析的利器。随着越来越多的工程背景的 人的加入,R语言的社区在迅速扩大成长。现在已不仅仅是统计领域,教育,银行,电商,互联 网等都在使用R语言。使用R语言的服务器简称R服务器,使用R语言的客户端简称R客户端。
[0003] 然而,现有R服务器程序Rserve不支持计算结果实时返回给客户端,客户端只能控 制服务器实时将数据保存到数据库或其它存储媒介,但却无法控制R服务器实时将数据返 回给客户端自身。
[0004] 例如,R客户端提交单条指令或提交了一个指令序列但只有一个结果要返回时,R 服务器会在执行结束返回相应的结果,但也只能返回最后一条指令的结果,且结果的格式 是内定的,客户端无法自定义;而R客户端提交了一个指令序列且整个计算过程中需要返回 多个结果时,R服务器就无能为力了,只能R客户端在指令序列中显示地指定将结果保存于 何处,然后等结束后去获取结果。其不足之处有以下两方面,一方面,这严重延迟了客户响 应时间,另一方面,结果一般存储在数据库中,存储前的格式转换和存取操作本身都是很麻 烦的。
[0005] 为便于说明,以超文本预处理器(Hypertext Preprocessor,PHP)为例,PHP将必要 的数据都存到数据库后,向R服务器发起一个请求计算,请求的内容是执行一个脚本文件即 可;
[0006] R服务器收到执行脚本的请求后,开始运行脚本,脚本的框架大致如下:首先从数 据库获取最近一次的请求数据,即获知用户想计算什么。知道了用户的意图后,开始访问数 据库的数据表,进行相关计算,并将计算结果保存到数据库中,然后通知PHP已计算完成,此 后PHP即可从数据库查询计算结果,并展示给前端。
[0007] 以上的架构设计有诸多不便,例如要规范用户请求数据的格式以便R服务器能正 确解析,将结果保存于数据库前要进行格式转化,还要考虑R客户端(此处是PHP)、R服务器、 数据库三者之间的同步;除此以外,计算结果不能第一时间展示给客户,极大地延迟了客户 响应。

【发明内容】

[0008] 本发明实施例的目的在于提供一种数据返回方法,旨在解决R服务器程序Rserve 不支持实时向客户端传送计算结果,严重延迟了客户响应时间的问题。
[0009] 本发明实施例是这样实现的,一种数据返回方法,包括:
[0010] 在基于R服务器程序Rserve中,嵌入向客户端发送数据的接口;
[0011] 接收客户端发送的命令序列或执行脚本;
[0012] 运行所述命令序列或执行脚本得到计算结果,通过所述接口向所述客户端实时返 回所述计算结果。
[0013] 本发明实施例的另一目的在于提供一种数据接收方法,包括:
[0014] 在R客户端中,采用非阻塞模式发送命令序列或执行脚本;
[0015] 采用事件驱动模式接收所述计算结果。
[0016] 本发明实施例的另一目的在于提供一种数据返回装置,包括:
[0017] 接口嵌入模块,用于在基于R服务器程序Rserve中,嵌入向客户端发送数据的接 P;
[0018] 接收模块,用于接收客户端发送的命令序列或执行脚本;
[0019] 数据返回模块,用于运行所述命令序列或执行脚本得到计算结果,通过所述接口 向所述客户端实时返回所述计算结果。
[0020] 本发明实施例的另一目的在于提供一种数据接收装置,包括:
[0021] 发送模块,用于在R客户端中,采用非阻塞模式发送命令序列或执行脚本;
[0022]接收模块,用于采用事件驱动模式接收所述计算结果
[0023] 在本发明实施例中,运行所述命令序列或执行脚本得到计算结果,通过所述接口 向所述客户端实时返回所述计算结果,解决了 R服务器程序Rserve不支持实时向客户端传 送计算结果,严重延迟了客户响应时间的问题。有益效果在于以下两方面,一方面,R服务器 可以实时向客户端传送结果,有效缩短结果响应时间,另一方面,R服务器可以减少对外部 存储介质的存取操作,降低结果存取的复杂性,使得结果由被动获取改成了主动推送,更加 尚效。
【附图说明】
[0024] 图1是本发明实施例提供的数据返回方法的实现流程图;
[0025]图2是本发明实施例提供的数据返回方法步骤S102的实现流程图;
[0026] 图3是本发明实施例提供的步骤S202的实现流程图;
[0027] 图4是本发明实施例提供的数据接收方法的实现流程图;
[0028] 图5是本发明实施例提供的R服务器实时结果返回的实现流程图;
[0029] 图6是本发明实施例提供的数据返回装置的结构框图;
[0030] 图7是本发明实施例提供的数据接收装置的结构框图。
【具体实施方式】
[0031] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
[0032] 实施例一
[0033] 图1是本发明实施例提供的数据返回方法的实现流程图,详述如下:
[0034] 在步骤SlOl中,在基于R服务器程序Rserve中,嵌入向客户端发送数据的接口;
[0035] Rserve新增一个向客户端发送数据的接口,以使客户端在向服务器发送一个命令 序列或指示服务器执行某个脚本时,可在命令序列或脚本的任意位置调用该接口,以便实 时控制服务器第一时间将计算结果返回。
[0036]在步骤S102中,接收客户端发送的命令序列或执行脚本;
[0037]在步骤S103中,运行所述命令序列或执行脚本得到计算结果,通过所述接口向所 述客户端实时返回所述计算结果。
[0038] 步骤S103,具体为:
[0039] 运行所述命令序列得到计算结果时,按所述命令序列的运行顺序调用所述接口, 通过所述接口向所述客户端实时返回所述计算结果;
[0040] 运行所述执行脚本得到计算结果时,按所述执行脚本的运行顺序调用所述接口, 通过所述接口向所述客户端实时返回所述计算结果。
[0041 ]在本发明实施例中,解决了R服务器程序Rserve不支持实时向客户端传送计算结 果,严重延迟了客户响应时间的问题。R服务器一方面,可以实时向客户端传送结果,有效缩 短结果响应时间,另一方面,可以减少对外部存储介质的存取操作,降低结果存取的复杂 性,使得结果由被动获取改成了主动推送,更加高效。
[0042] 实施例二
[0043] 本发明实施例描述了嵌入向客户端发送数据的接口的实现流程,详述如下:
[0044] 在基于R服务器程序Rserve中,新增服务启动接口,在所述服务启动接口中,嵌入 一个向客户端发送数据的接口。
[0045] 实施例三
[0046] 本发明实施例描述了新增数据结构的组成,详述如下:
[0047] 新增数据结构,所述数据结构包括执行ID、结果类型以及结果值;
[0048]所述执行ID对应唯一的编号;
[0049] 所述结果类型为文本、图形、失败、结束中的任意一种类型;
[0050] 所述结果值为文本结果的字符串、图形结果的二进制串、失败通知的字符串、结束 通知的字符串中的任意一种值;
[0051] 所述结束的字符串为空值。
[0052] 实施例四
[0053]图2是本发明实施例提供的步骤S103的实现流程图,详述如下:
[0054]步骤S201,运行所述命令序列或执行脚本得到计算结果;
[0055]步骤S202,采用新增的数据结构装载计算结果,通过所述接口向所述客户端实时 返回装载的计算结果。
[0056] 实施例五
[0057]图3是本发明实施例提供的步骤S202的实现流程图,详述如下:
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1