CN102981856B - 基于网络的程序计算结果存储与检索方法及系统 - Google Patents

基于网络的程序计算结果存储与检索方法及系统 Download PDF

Info

Publication number
CN102981856B
CN102981856B CN201210497378.8A CN201210497378A CN102981856B CN 102981856 B CN102981856 B CN 102981856B CN 201210497378 A CN201210497378 A CN 201210497378A CN 102981856 B CN102981856 B CN 102981856B
Authority
CN
China
Prior art keywords
program
function
result
calculation
program function
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
CN201210497378.8A
Other languages
English (en)
Other versions
CN102981856A (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.)
Nankai University
Original Assignee
Nankai 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 Nankai University filed Critical Nankai University
Priority to CN201210497378.8A priority Critical patent/CN102981856B/zh
Publication of CN102981856A publication Critical patent/CN102981856A/zh
Application granted granted Critical
Publication of CN102981856B publication Critical patent/CN102981856B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了基于网络的程序计算结果存储与检索方法及系统,属于计算机领域。本发明所涉及的方法包括:用户计算机从网络中程序函数监控规则服务中获取受监控函数列表;用户计算机上监控受监控函数实例的执行;从网络中程序函数计算结果检索服务中检索受监控函数实例历史计算结果,若存在历史计算结果则作为本次受监控函数实例的计算结果;否则,受监控函数实例在用户计算机上直接执行出计算结果,并将计算结果通过网络中程序函数计算结果更新服务存储到程序函数计算结果存储库中。本发明能够有效地加速在网络环境下多台计算机程序的运行效率,尤其是适合多台计算机上存在大量公共重复且费时函数的程序。

Description

基于网络的程序计算结果存储与检索方法及系统
技术领域
本发明属于计算机领域,主要关注提高网络环境下程序计算的执行效率。
背景技术
目前提高程序计算的执行效率主要有两类手段,一类是提高计算机硬件CPU的处理能力;另外一类是提高程序本身的并发执行度。本发明则从网络上众多用户计算机中存在大量相同程序和相同函数以及相同参数值的多次重复调用的事实为出发,通过有效地共享网络上众多用户计算机中存在大量相同程序和相同函数以及相同参数值的历史计算结果来大大减少相同程序和相同函数及相同参数值情况下的重复执行,从而提高用户计算机中程序的执行效率。
发明内容
本发明目的是通过有效地共享网络上众多用户计算机中存在大量相同程序和相同函数以及相同参数值的历史计算结果来大大减少相同程序和相同函数及相同参数值情况下的重复执行,从而提高用户计算机中程序的执行效率,提供一种基于网络的程序计算结果存储与检索方法及系统。
1.本发明提供的基于网络的程序计算结果存储与检索方法,包括具体步骤如下:
第1、用户计算机设定“程序函数计算结果服务器”的网络访问地址;
第2、用户计算机通过网络中“程序函数计算结果服务器”的“程序函数监控规则检索服务”从“程序函数监控规则存储库”中获取受监控函数列表,并更新到本地受监控函数库中;若用户计算机增加新的本地受监控函数,则首先将新增的本地受监控函数更新到本地受监控函数库中,并通过网络中“程序函数计算结果服务器”的“程序函数监控规则更新服务”更新到“程序函数监控规则存储库”;
第3、用户计算机中“程序函数监控软件”加载用户指定待运行的“用户程序”到内存,根据本地受监控函数库来判断当前用户程序是否是受监控程序,若是受监控程序,则跳到第4步骤运行;否则跳到第5步骤运行;
第4、因用户程序为受监控程序,因此用户计算机中“程序函数监控软件”向网络中“程序函数计算结果服务器”的“程序函数计算结果检索服务”检索当前用户程序实例的历史计算结果,若存在历史计算结果,则直接作为用户程序此次运行计算结果,跳到第10步骤;否则跳到第5步骤运行;
第5、用户计算机中“程序函数监控软件”根据本地受监控函数库对用户指定待运行的“用户程序”设置监控钩子;
第6、用户计算机中“程序函数监控软件”运行用户指定待运行的程序,若执行到监控钩子时,记录当前受监控程序函数实例的名称、参数列表及参数值,并向网络中“程序函数计算结果服务器”的“程序函数计算结果检索服务”检索当前受监控程序函数实例的历史计算结果,并继续跳到第7步骤运行;否则用户计算机上一直运行用户程序,直至用户程序结束点,跳到第9步骤运行;
第7、若网络中“程序函数计算结果服务器”的“程序函数计算结果检索服务”检索到当前受监控程序函数实例的历史计算结果,则向用户计算机中程序函数监控软件返回当前受监控程序函数实例的历史计算结果,用户计算机中程序函数监控软件将当前受监控程序函数实例的历史计算结果作为当前受监控程序函数实例的此次运行计算结果,不再进一步在用户计算机上重新运行当前受监控程序函数实例具体代码,继续跳到第6步骤运行;否则跳到第8步骤运行;
第8、若网络中“程序函数计算结果服务器”的“程序函数计算结果检索服务”检索不到当前受监控程序函数实例的历史计算结果,则用户计算机上直接运行当前受监控程序函数实例具体代码,并得出计算结果,并根据更新策略可进一步将当前受监控程序函数实例最新计算结果通过网络中“程序函数计算结果服务器”的“程序函数计算结果更新服务”更新到网络中的“程序函数计算结果存储库”,继续跳到第6步骤运行;
第9、若运行用户程序到程序结束点,用户计算机中“程序函数监控软件”记录当前用户程序的计算结果,根据本地受监控函数库来判断当前用户程序是否是受监控程序,若是则根据更新策略可通过网络中“程序函数计算结果服务器”的“程序函数计算结果更新服务”更新到网络中的“程序函数计算结果存储库”;
第10、程序执行结束。
第1步骤所述的“程序函数计算结果服务器”可以不止一个,多个“程序函数计算结果服务器”之间定期或实时同步“程序函数监控规则存储库”和“程序函数计算结果存储库”;用户计算机可增加新的本地受监控函数,并通过网络中“程序函数计算结果服务器”的“程序函数监控规则更新服务”更新到“程序函数监控规则存储库”;
第1步骤所述的“程序函数监控规则存储库”存放受监控的函数集合和受监控的程序集合,统称为“受监控程序函数”。每一个受监控程序函数的基本信息包括监控程序函数唯一索引号、程序名、函数名、参数个数、{参数名、参数类型}序列表、程序函数摘要、函数执行结果的有效时间、更新策略。程序函数的返回值属于参数,程序名和函数名至少有一个非空。程序函数摘要为程序及函数代码的消息摘要,以标识其在网络范围内唯一性;
受监控的程序函数实例计算结果的更新策略包括全部更新、随机更新、同步更新、异步更新多种组合更新策略。
第1步骤所述的“程序函数计算结果存储库”存放受监控的程序函数实例的历史上计算结果。每一个受监控程序函数执行实例的参数及执行结果的存储基本信息包括程序函数唯一索引号、程序名、函数名、参数个数、{参数名,参数值}序列表、函数执行时间、用户计算机网络地址、用户计算机计算环境信息、用户身份信息。程序名和函数名至少有一个非空。为了快速检索,在程序函数唯一索引号、函数名、参数名关键字段建立索引;
第1步骤所述的用户计算机从网络中“程序函数计算结果服务器”的“程序函数监控规则服务”中获取受监控函数列表,既可以是定期执行,也可以是每次用户计算机重新启动后执行,也可以是每次运行用户程序前执行;
“程序函数计算结果服务器”的“程序函数监控规则更新服务”根据“程序函数计算结果存储库”存放相同受监控的程序函数实例的历史上多个计算结果,进行程序函数执行性能分析和用户计算机计算环境信息可靠性分析,动态维护“程序函数监控规则存储库”;
所述系统包括程序计算装置和程序函数计算结果服务器装置。程序计算装置包括本地受监控函数库模块、待运行程序集合模块、程序函数监控软件模块;程序函数计算结果服务器装置包括“程序函数监控规则检索服务”模块、“程序函数监控规则更新服务”模块、“程序函数计算结果检索服务”模块、“程序函数计算结果更新服务”模块、“程序函数监控规则存储库”持久存储介质和“程序函数计算结果存储库”持久存储介质;
程序计算装置中的“本地受监控函数库模块”通过程序函数计算结果服务器装置中“程序函数监控规则检索服务”模块从“程序函数监控规则存储库”持久存储介质中获取受监控函数集合,并存储到程序计算装置本地存储中;程序计算装置中的“程序函数监控软件模块”动态监控运行“待运行程序集合模块”中用户指定的程序,当执行到受监控函数时,由程序计算装置中的“程序函数监控软件模块”通过程序函数计算结果服务器装置中的“程序函数计算结果检索服务”模块来检索受监控函数实例的历史执行结果,“程序函数计算结果检索服务”模块在“程序函数计算结果存储库”持久存储介质查询是否存在受监控函数实例的历史执行结果,“程序函数计算结果检索服务”模块将查询结果返回给程序计算装置中的“程序函数监控软件模块”;若存在受监控函数实例的历史执行结果,则“程序函数监控软件模块”跳过受监控函数执行直接使用历史执行结果,若不存在受监控函数实例的历史执行结果,则“程序函数监控软件模块”进一步执行受监控函数,并将受监控函数实例执行结果通过程序函数计算结果服务器装置中的“程序函数计算结果更新服务”模块存储到“程序函数计算结果存储库”持久存储介质中;程序计算装置上的用户可以通过程序函数计算结果服务器装置中的“程序函数监控规则更新服务”模块动态更新受监控函数集合和规则,并存储到“程序函数监控规则存储库”持久存储介质。
“程序函数监控规则存储库”持久存储介质和“程序函数计算结果存储库”持久存储介质等两个持久存储介质或者与“程序函数计算结果服务器”装置直接信号电缆方式连接,或者通过存储网络与“程序函数计算结果服务器”装置网络方式连接。
本发明的优点和有益效果:
本发明通过有效地共享网络上众多用户计算机中存在大量相同程序和相同函数以及相同参数值的历史计算结果来大大减少相同程序和相同函数及相同参数值情况下的重复执行,从而大大提高联网的众多用户计算机中程序的执行效率。当越来越多网络用户运行相同的程序和具有相同函数的程序,那么每个用户单个执行这些程序的速度就会越来越快。
附图说明
图1是本发明中基于网络的程序计算结果存储与检索的架构图。
图2是实例1中Fibonacci程序代码示意图。
图3是实例1中Fibonacci程序中f函数的递归调用示意图。
具体实施方式
实施例1、基于网络的程序计算结果存储与检索的系统
如图1所示,本发明所提供的基于网络的程序计算结果存储与检索的系统包括程序计算装置100和程序函数计算结果服务器装置300。
其中程序计算装置100包括本地受监控函数库模块110、待运行程序集合模块120、程序函数监控软件模块130;程序函数计算结果服务器装置包括“程序函数监控规则检索服务”模块310、“程序函数监控规则更新服务”模块320、“程序函数计算结果检索服务”模块330、“程序函数计算结果更新服务”模块340、“程序函数监控规则存储库”持久存储介质350和“程序函数计算结果存储库”持久存储介质360。
程序计算装置100和程序函数计算结果服务器装置300二者之间可采用网络连接。程序函数计算结果服务器装置300可以有多个,程序计算装置100可以与若干个程序函数计算结果服务器装置中的一个或多个建立网络连接。
程序计算装置中的“本地受监控函数库模块”通过程序函数计算结果服务器装置中“程序函数监控规则检索服务”模块从“程序函数监控规则存储库”持久存储介质中获取受监控函数集合,并存储到程序计算装置本地存储中;程序计算装置中的“程序函数监控软件模块”动态监控运行“待运行程序集合模块”中用户指定的程序,当执行到受监控函数时,由程序计算装置中的“程序函数监控软件模块”通过程序函数计算结果服务器装置中的“程序函数计算结果检索服务”模块来检索受监控函数实例的历史执行结果,“程序函数计算结果检索服务”模块在“程序函数计算结果存储库”持久存储介质查询是否存在受监控函数实例的历史执行结果,“程序函数计算结果检索服务”模块将查询结果返回给程序计算装置中的“程序函数监控软件模块”;若存在受监控函数实例的历史执行结果,则“程序函数监控软件模块”跳过受监控函数执行直接使用历史执行结果,若不存在受监控函数实例的历史执行结果,则“程序函数监控软件模块”进一步执行受监控函数,并将受监控函数实例执行结果通过程序函数计算结果服务器装置中的“程序函数计算结果更新服务”模块存储到“程序函数计算结果存储库”持久存储介质中;程序计算装置上的用户可以通过程序函数计算结果服务器装置中的“程序函数监控规则更新服务”模块动态更新受监控函数集合和规则,并存储到“程序函数监控规则存储库”持久存储介质。
实施例2、基于网络的程序计算结果存储与检索的方法
本发明方法的具体步骤如下:
第1、用户计算机设定“程序函数计算结果服务器”的网络访问地址;
第2、用户计算机通过网络中“程序函数计算结果服务器”的“程序函数监控规则检索服务”从“程序函数监控规则存储库”中获取受监控函数列表,并更新到本地受监控函数库中;若用户计算机增加新的本地受监控函数,则首先将新增的本地受监控函数更新到本地受监控函数库中,并通过网络中“程序函数计算结果服务器”的“程序函数监控规则更新服务”更新到“程序函数监控规则存储库”;
第3、用户计算机中“程序函数监控软件”加载用户指定待运行的“用户程序”到内存,根据本地受监控函数库来判断当前用户程序是否是受监控程序,若是受监控程序,则跳到第4步骤运行;否则跳到第5步骤运行;
第4、因用户程序为受监控程序,因此用户计算机中“程序函数监控软件”向网络中“程序函数计算结果服务器”的“程序函数计算结果检索服务”检索当前用户程序实例的历史计算结果,若存在历史计算结果,则直接作为用户程序此次运行计算结果,跳到第10步骤;否则跳到第5步骤运行;
第5、用户计算机中“程序函数监控软件”根据本地受监控函数库对用户指定待运行的“用户程序”设置监控钩子;
第6、用户计算机中“程序函数监控软件”运行用户指定待运行的程序,若执行到监控钩子时,记录当前受监控程序函数实例的名称、参数列表及参数值,并向网络中“程序函数计算结果服务器”的“程序函数计算结果检索服务”检索当前受监控程序函数实例的历史计算结果,并继续跳到第7步骤运行;否则用户计算机上一直运行用户程序,直至用户程序结束点,跳到第9步骤运行;
第7、若网络中“程序函数计算结果服务器”的“程序函数计算结果检索服务”检索到当前受监控程序函数实例的历史计算结果,则向用户计算机中程序函数监控软件返回当前受监控程序函数实例的历史计算结果,用户计算机中程序函数监控软件将当前受监控程序函数实例的历史计算结果作为当前受监控程序函数实例的此次运行计算结果,不再进一步在用户计算机上重新运行当前受监控程序函数实例具体代码,继续跳到第6步骤运行;否则跳到第8步骤运行;
第8、若网络中“程序函数计算结果服务器”的“程序函数计算结果检索服务”检索不到当前受监控程序函数实例的历史计算结果,则用户计算机上直接运行当前受监控程序函数实例具体代码,并得出计算结果,并根据更新策略可进一步将当前受监控程序函数实例最新计算结果通过网络中“程序函数计算结果服务器”的“程序函数计算结果更新服务”更新到网络中的“程序函数计算结果存储库”,继续跳到第6步骤运行;
第9、若运行用户程序到程序结束点,用户计算机中“程序函数监控软件”记录当前用户程序的计算结果,根据本地受监控函数库来判断当前用户程序是否是受监控程序,若是则根据更新策略可通过网络中“程序函数计算结果服务器”的“程序函数计算结果更新服务”更新到网络中的“程序函数计算结果存储库”;
第10、程序执行结束。
为能进一步了解本发明的技术内容、特点及功效,兹列举以下应用实例,并配合附图详细说明如下:
应用实例1
如图2所示,计算斐波那契数列Fibonacci的Fibonacci程序代码示意图,函数f()为斐波那契数列Fibonacci计算函数。当主程序main调用f(5)后,将递归调用如下斐波那契数列函数f()序列:f(5),f(4),f(3),f(2),f(1),f(0),f(1),f(2),f(1),f(0),f(3),f(2),f(1),f(0),f(1)
上述斐波那契数列函数f()序列中存在大量的重复调用,例如f(3)被重复调用计算2次,f(2)被重复调用计算3次。这无疑使得程序计算装置的不断重复计算多次,从而浪费了程序计算装置宝贵的计算能力。当多个用户在不同的计算机运行此程序,将重复浪费更多计算机的计算能力。
针对应用实例1应用本发明给出的系统:程序计算装置100为一台计算机;程序函数计算结果服务器装置300为另一台计算机,并提供程序计算结果存储与检索服务。程序计算装置100和程序函数计算结果服务器装置300通过网络200实现通信连接。
针对应用实例1应用本发明给出的方法,具体步骤如下(以下是应用实例1首次运行):
第1、在运行应用实例1用户程序120前,用户计算机设定“程序函数计算结果服务器”300的网络访问地址;
第2、用户计算机从网络中“程序函数计算结果服务器”300的“程序函数监控规则检索服务”310中获取受监控函数列表,并更新到本地受监控函数库110中;若用户计算机增加新的本地受监控函数,则首先将新增的本地受监控函数到本地受监控函数库110中,并通过网络中“程序函数计算结果服务器”的“程序函数监控规则更新服务”320更新到“程序函数监控规则存储库”350;对于“用户程序”Fibonacci及其函数f(),若在网络中“程序函数计算结果服务器”300存在,则下载更新到本地受监控函数库110中;若“程序函数计算结果服务器”300中不存在,可以新增加受监控函数,包括“用户程序”Fibonacci本身和它的函数f()。
针对应用实例1中受监控函数:Fibonacci的函数f(),受监控函数的基本信息包括监控程序函数唯一索引号、程序名Fibonacci、函数名f、参数个数2,{参数1名:n、参数1类型:unsigned int},{参数2名:返回值、参数1类型:long long}、程序函数摘要:MD5及SHA1、函数执行结果的有效时间、更新策略:全部更新。
第3、用户计算机中“程序函数监控软件”130加载“用户程序”Fibonacci(120)到内存,根据本地受监控函数库来判断当前用户程序是否是受监控程序,若是受监控程序,则跳到第4步骤运行;否则跳到第5步骤运行;
第4、因用户程序为受监控程序,因此用户计算机中“程序函数监控软件”130向网络中“程序函数计算结果服务器”300的“程序函数计算结果检索服务”330检索当前用户程序实例的历史计算结果,若存在历史计算结果,则直接作为用户程序此次运行计算结果,跳到第10步骤;否则跳到第5步骤运行;
第5、用户计算机中“程序函数监控软件”130根据本地受监控函数库110对用户指定待运行的“用户程序”120设置监控钩子;
第6、用户计算机中“程序函数监控软件”130运行用户指定待运行的程序,若执行到监控钩子时,记录当前受监控程序函数实例的名称、参数列表及参数值,即本实例1中Fibonacci及f(5),并向网络中“程序函数计算结果服务器”300的“程序函数计算结果检索服务”330检索当前受监控程序函数实例的历史计算结果,并继续跳到第7步骤运行;否则用户计算机上一直运行用户程序,直至用户程序结束点,跳到第9步骤运行;
第7、若网络中“程序函数计算结果服务器”的“程序函数计算结果检索服务”检索到当前受监控程序函数实例Fibonacci及f(5)的历史计算结果,则向用户计算机中程序函数监控软件返回当前受监控程序函数实例的历史计算结果,用户计算机中程序函数监控软件将当前受监控程序函数实例的历史计算结果作为当前受监控程序函数实例的此次运行计算结果,不再进一步在用户计算机上重新运行当前受监控程序函数实例具体代码,继续跳到第6步骤运行;否则跳到第8步骤运行;
第8、若网络中“程序函数计算结果服务器”300的“程序函数计算结果检索服务”330检索不到当前受监控程序函数实例的历史计算结果,则用户计算机上直接运行当前受监控程序函数实例具体代码,并得出计算结果,并根据更新策略可进一步将当前受监控程序函数实例最新计算结果通过网络中“程序函数计算结果服务器”300的“程序函数计算结果更新服务”340更新到网络中的“程序函数计算结果存储库”360,继续跳到第6步骤运行;
针对应用实例1中受监控函数:Fibonacci的函数f(),函数f(5)执行实例的参数及执行结果的存储基本信息包括程序函数唯一索引号、程序名Fibonacci、函数名f、参数个数2、(参数1名:n、参数值5),(参数2名:返回值、参数值5)、函数执行时间、用户计算机网络地址、用户计算机计算环境信息、用户身份信息。程序名和函数名至少有一个非空。
第9、若运行用户程序到程序结束点,用户计算机中“程序函数监控软件”130记录当前用户程序Fibonacci的计算结果,根据本地受监控函数库来判断当前用户程序是否是受监控程序,若是则根据更新策略可通过网络中“程序函数计算结果服务器”300的“程序函数计算结果更新服务”340更新到网络中的“程序函数计算结果存储库”360;
第10、程序执行结束。
当“程序函数计算结果服务器”300已存放由网络其它用户计算机运行其它程序实例X也调用了斐波那契数列函数f(),则应用实例1直接得到在“程序函数计算结果服务器”300存放的f(5)的历史计算结果。当“程序函数计算结果服务器”300已存放由网络其它用户计算机运行程序Fibonacci,则应用实例1直接得到在“程序函数计算结果服务器”300存放的Fibonacci的历史计算结果。因此应用实例1运行时,有效地共享网络上众多用户计算机中存在大量相同程序和相同函数以及相同参数值的历史计算结果,从而大大减少了当前实际运行的代码量,从而大大提高程序的运行效率。
考虑到在此公开的对本发明的描述和特例的实施例,本发明的其他实施例对于本领域的技术人员来说是显而意见的。这些说明和实施例仅作为例子来考虑,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.基于网络的程序计算结果存储与检索方法,其特征在于,所述方法包括具体步骤如下:
第1、用户计算机设定“程序函数计算结果服务器”的网络访问地址;
第2、用户计算机通过网络中“程序函数计算结果服务器”的“程序函数监控规则检索服务”从“程序函数监控规则存储库”中获取受监控函数列表,并更新到本地受监控函数库中;若用户计算机增加新的本地受监控函数,则首先将新增的本地受监控函数更新到本地受监控函数库中,并通过网络中“程序函数计算结果服务器”的“程序函数监控规则更新服务”更新到“程序函数监控规则存储库”;所述的“程序函数监控规则存储库”存放受监控的函数集合和受监控的程序集合,统称为“受监控程序函数”;每一个受监控程序函数的基本信息包括监控程序函数唯一索引号、程序名、函数名、参数个数、{参数名、参数类型}序列表、程序函数摘要、函数执行结果的有效时间、更新策略;程序函数的返回值属于参数,程序名和函数名至少有一个非空;程序函数摘要为程序及函数代码的消息摘要,以标识程序函数在网络范围内唯一性;
第3、用户计算机中“程序函数监控软件”加载用户指定待运行的“用户程序”到内存,根据本地受监控函数库来判断当前用户程序是否是受监控程序,若是受监控程序,则跳到第4步骤运行;否则跳到第5步骤运行;
第4、因用户程序为受监控程序,因此用户计算机中“程序函数监控软件”向网络中“程序函数计算结果服务器”的“程序函数计算结果检索服务”检索当前用户程序实例的历史计算结果,若存在历史计算结果,则直接作为用户程序此次运行计算结果,跳到第10步骤;否则跳到第5步骤运行;
第5、用户计算机中“程序函数监控软件”根据本地受监控函数库对用户指定待运行的“用户程序”设置监控钩子;
第6、用户计算机中“程序函数监控软件”运行用户指定待运行的程序,若执行到监控钩子时,记录当前受监控程序函数实例的名称、参数列表及参数值,并向网络中“程序函数计算结果服务器”的“程序函数计算结果检索服务”检索当前受监控程序函数实例的历史计算结果,并继续跳到第7步骤运行;否则用户计算机上一直运行用户程序,直至用户程序结束点,跳到第9步骤运行;
第7、若网络中“程序函数计算结果服务器”的“程序函数计算结果检索服务”检索到当前受监控程序函数实例的历史计算结果,则向用户计算机中程序函数监控软件返回当前受监控程序函数实例的历史计算结果,用户计算机中程序函数监控软件将当前受监控程序函数实例的历史计算结果作为当前受监控程序函数实例的此次运行计算结果,不再进一步在用户计算机上重新运行当前受监控程序函数实例具体代码,继续跳到第6步骤运行;否则跳到第8步骤运行;
第8、若网络中“程序函数计算结果服务器”的“程序函数计算结果检索服务”检索不到当前受监控程序函数实例的历史计算结果,则用户计算机上直接运行当前受监控程序函数实例具体代码,并得出计算结果,并根据更新策略进一步将当前受监控程序函数实例最新计算结果通过网络中“程序函数计算结果服务器”的“程序函数计算结果更新服务”更新到网络中的“程序函数计算结果存储库”,继续跳到第6步骤运行;所述的“程序函数计算结果存储库”存放受监控的程序函数实例的历史上计算结果;每一个受监控程序函数执行实例的参数及执行结果的存储基本信息包括程序函数唯一索引号、程序名、函数名、参数个数、{参数名,参数值}序列表、函数执行时间、用户计算机网络地址、用户计算机计算环境信息、用户身份信息;程序名和函数名至少有一个非空;为了快速检索,在程序函数唯一索引号、函数名、参数名关键字段建立索引;
第9、若运行用户程序到程序结束点,用户计算机中“程序函数监控软件”记录当前用户程序的计算结果,根据本地受监控函数库来判断当前用户程序是否是受监控程序,若是则根据更新策略通过网络中“程序函数计算结果服务器”的“程序函数计算结果更新服务”更新到网络中的“程序函数计算结果存储库”;
第10、程序执行结束。
2.根据权利要求1所述的方法,其特征在于,第1步骤所述的“程序函数计算结果服务器”允许不止一个,多个“程序函数计算结果服务器”之间定期或实时同步“程序函数监控规则存储库”和“程序函数计算结果存储库”;允许用户计算机增加新的本地受监控函数,并通过网络中“程序函数计算结果服务器”的“程序函数监控规则更新服务”更新到“程序函数监控规则存储库”。
3.根据权利要求1所述的方法,其特征在于,受监控的程序函数实例计算结果的更新策略包括全部更新、随机更新、同步更新、异步更新多种组合更新策略。
4.根据权利要求1所述的方法,其特征在于,第1步骤所述的用户计算机从网络中“程序函数计算结果服务器”的“程序函数监控规则服务”中获取受监控函数列表,是定期执行,或者是每次用户计算机重新启动后执行,或者是每次运行用户程序前执行。
5.基于网络的程序计算结果存储与检索的系统,其特征在于,所述系统包括程序计算装置和程序函数计算结果服务器装置;
程序计算装置包括:本地受监控函数库模块、待运行程序集合模块、程序函数监控软件模块;
程序函数计算结果服务器装置包括:“程序函数监控规则检索服务”模块、“程序函数监控规则更新服务”模块、“程序函数计算结果检索服务”模块、“程序函数计算结果更新服务”模块、“程序函数监控规则存储库”持久存储介质和“程序函数计算结果存储库”持久存储介质;所述的“程序函数监控规则存储库”存放受监控的函数集合和受监控的程序集合,统称为“受监控程序函数”;每一个受监控程序函数的基本信息包括监控程序函数唯一索引号、程序名、函数名、参数个数、{参数名、参数类型}序列表、程序函数摘要、函数执行结果的有效时间、更新策略;程序函数的返回值属于参数,程序名和函数名至少有一个非空;程序函数摘要为程序及函数代码的消息摘要,以标识程序函数在网络范围内唯一性;所述的“程序函数计算结果存储库”存放受监控的程序函数实例的历史上计算结果;每一个受监控程序函数执行实例的参数及执行结果的存储基本信息包括程序函数唯一索引号、程序名、函数名、参数个数、{参数名,参数值}序列表、函数执行时间、用户计算机网络地址、用户计算机计算环境信息、用户身份信息;程序名和函数名至少有一个非空;为了快速检索,在程序函数唯一索引号、函数名、参数名关键字段建立索引;
程序计算装置中的“本地受监控函数库模块”通过程序函数计算结果服务器装置中“程序函数监控规则检索服务”模块从“程序函数监控规则存储库”持久存储介质中获取受监控函数集合,并存储到程序计算装置本地存储中;程序计算装置中的“程序函数监控软件模块”动态监控运行“待运行程序集合模块”中用户指定的程序,当执行到受监控函数时,由程序计算装置中的“程序函数监控软件模块”通过程序函数计算结果服务器装置中的“程序函数计算结果检索服务”模块来检索受监控函数实例的历史执行结果,“程序函数计算结果检索服务”模块在“程序函数计算结果存储库”持久存储介质查询是否存在受监控函数实例的历史执行结果,“程序函数计算结果检索服务”模块将查询结果返回给程序计算装置中的“程序函数监控软件模块”;若存在受监控函数实例的历史执行结果,则“程序函数监控软件模块”跳过受监控函数执行直接使用历史执行结果,若不存在受监控函数实例的历史执行结果,则“程序函数监控软件模块”进一步执行受监控函数,并将受监控函数实例执行结果通过程序函数计算结果服务器装置中的“程序函数计算结果更新服务”模块存储到“程序函数计算结果存储库”持久存储介质中;程序计算装置上的用户可以通过程序函数计算结果服务器装置中的“程序函数监控规则更新服务”模块动态更新受监控函数集合和规则,并存储到“程序函数监控规则存储库”持久存储介质。
6.根据权利要求5所述的系统,其特征在于,“程序函数监控规则存储库”持久存储介质和“程序函数计算结果存储库”持久存储介质等两个持久存储介质或者与“程序函数计算结果服务器”装置直接信号电缆方式连接,或者通过存储网络与“程序函数计算结果服务器”装置网络方式连接。
CN201210497378.8A 2012-11-28 2012-11-28 基于网络的程序计算结果存储与检索方法及系统 Expired - Fee Related CN102981856B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210497378.8A CN102981856B (zh) 2012-11-28 2012-11-28 基于网络的程序计算结果存储与检索方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210497378.8A CN102981856B (zh) 2012-11-28 2012-11-28 基于网络的程序计算结果存储与检索方法及系统

Publications (2)

Publication Number Publication Date
CN102981856A CN102981856A (zh) 2013-03-20
CN102981856B true CN102981856B (zh) 2015-08-12

Family

ID=47855920

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210497378.8A Expired - Fee Related CN102981856B (zh) 2012-11-28 2012-11-28 基于网络的程序计算结果存储与检索方法及系统

Country Status (1)

Country Link
CN (1) CN102981856B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108241543A (zh) * 2016-12-30 2018-07-03 深圳壹账通智能科技有限公司 业务操作断点执行的方法、业务服务器及系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110554942A (zh) * 2018-05-31 2019-12-10 北京京东尚科信息技术有限公司 一种监控代码执行的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101055569A (zh) * 2007-05-25 2007-10-17 金蝶软件(中国)有限公司 一种电子数据表的函数收集方法和装置
CN102087613A (zh) * 2009-12-08 2011-06-08 北京大学 用于函数执行的缓存方法和装置
CN102754104A (zh) * 2010-01-29 2012-10-24 赛门铁克公司 在相关计算系统之间共享计算操作结果的系统和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101055569A (zh) * 2007-05-25 2007-10-17 金蝶软件(中国)有限公司 一种电子数据表的函数收集方法和装置
CN102087613A (zh) * 2009-12-08 2011-06-08 北京大学 用于函数执行的缓存方法和装置
CN102754104A (zh) * 2010-01-29 2012-10-24 赛门铁克公司 在相关计算系统之间共享计算操作结果的系统和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《javascript中的memoization(memoizing) 技术介绍》;karry;《Play Google》;20090805;全文 *
Dexter.Yy.《JavaScript Memoization:让函数也有记忆功能》.《YY in Limbo》.2008,全文. *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108241543A (zh) * 2016-12-30 2018-07-03 深圳壹账通智能科技有限公司 业务操作断点执行的方法、业务服务器及系统
CN108241543B (zh) * 2016-12-30 2020-07-07 深圳壹账通智能科技有限公司 业务操作断点执行的方法、业务服务器及系统

Also Published As

Publication number Publication date
CN102981856A (zh) 2013-03-20

Similar Documents

Publication Publication Date Title
CN104969213B (zh) 用于低延迟数据存取的数据流分割
CN102479207B (zh) 一种信息搜索的方法、系统及信息搜索设备
CN108566290A (zh) 服务配置管理方法、系统、存储介质和服务器
US20120297393A1 (en) Data Collecting Method, Data Collecting Apparatus and Network Management Device
CN102685221A (zh) 一种状态监测数据的分布式存储与并行挖掘方法
CN103902593A (zh) 一种数据迁移的方法和装置
CN104699529B (zh) 一种信息获取方法及装置
US9922133B2 (en) Live topological query
CN107104820B (zh) 基于f5服务器节点的动态扩容日常运维方法
CN107844402A (zh) 一种基于超融合存储系统的资源监控方法、装置及终端
CN113900810A (zh) 分布式图处理方法、系统及存储介质
CN102981856B (zh) 基于网络的程序计算结果存储与检索方法及系统
Shieh et al. A statistics-based approach to incrementally update inverted files
CN103051478B (zh) 一种大容量电信网管系统及其设置和应用方法
CN106897458A (zh) 一种面向机电设备数据的存储及检索方法
CN108959614A (zh) 一种快照管理方法、系统、装置、设备及可读存储介质
Yu et al. Sasm: Improving spark performance with adaptive skew mitigation
CN108255710B (zh) 一种脚本的异常检测方法及其终端
CN105302909B (zh) 基于分区偏移计算的网络安全日志系统大数据检索方法
CN110245130A (zh) 数据去重方法、装置、计算机设备及存储介质
CN103019705B (zh) 基于持久存储既有计算结果来加速程序计算的方法及系统
CN115630122A (zh) 一种数据同步方法、装置、存储介质和计算机设备
CN107632890A (zh) 一种数据流体系结构中动态节点分配方法和系统
CN112597354A (zh) 一种提供配置参数的方法、装置、系统及存储介质
CN104580113B (zh) 一种处理外部请求的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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: 20150812

Termination date: 20181128