一种云程序设计方法

文档序号:6364157阅读:301来源:国知局
专利名称:一种云程序设计方法
技术领域
本发明属于云环境下的程序设计领域,特别涉及一种云程序设计方法。
背景技术
随着IT技术的发展,数字化社会每时每刻都在产生新的海量数据,并且生产模式发生了一些变化,越来越多的企业和其业务是以海量数据驱动,并且从中获益。很多应用的数据量都达到了 TB级别甚至PB级别,如=Google已经在全球部署了 100多万台服务器用来处理它庞大的数据量;FaCeB00k每天上载的照片均超过了 I亿张以上,每天照片的浏览量超过150亿张以上,随着FaceBook最近的进入中国市场的步伐加快,其数据量将更加面临着一个直线的上升。2010年9月份图片共享网站Flickr所收录的上传图片数量超过了 50亿张。Twitter在2010年4月14日地的统计情况是,每月搜索量达190亿次;在2010 年7月6日地统计情况是,每月搜索量达240亿次;在2010年10月6日的统计情况是,每月搜索量达310亿次。至今,Twitter每天的搜索量达10亿次,平均每秒I. 2万次。截至 2010年12月底,谷歌每月搜索量达880亿次,雅虎每月搜索量为94亿次,必应每月搜索量为41亿次。所有的这些数据存储在不同的数据中心、集群和服务器中,这是一个非常复杂的异构环境。如何编写程序处理并分析这些存储在云环境下的海量的数据,将面临一个巨大的困难和挑战。

发明内容
为了克服上述现有技术的不足,本发明的目的在于提供一种云程序设计方法,可以实现让包括非专业程序员在内的大部分人都能够在云环境下编写程序,并通过程序获取自己所需要的云环境下的各种服务和资源,从而更好地服务于人类需求。为了实现上述目的,本发明采用的技术方案是一种云程序设计方法,用户在编程接口上编写云程序,并将所编写的云程序送入到云程序编译器进行编译,并在编译过程中调用函数库的相应函数,被调用的函数向数据库发出数据需求请求,在所述函数库中包含了原子函数f [a], f [b], f [c], ......, f [k], f [m], f [n];云程序调用的函数为F[l], F[2], ......, F [Q]总共Q个函数,且按照F [I],
F [2],……,F[Q]的先后顺序调用;其中,F[l], F[2], ......,F[Q]为原子函数或者组合函数。所述函数库中包括Map函数、Reduce函数以及用户自定义函数UDF,所述云程序编译器能够调用上述三种函数。所述云程序编译器进行编译之后,将结果返回到编程接口。所述编程接口为PC机或者手机或者其它任何终端。所述云程序是一种基于类自然语言的程序设计语言。所述数据库为云文件系统或者云数据库。有的分布式文件系统,如Google的GFS文件系统以及 Hadoop的HDFS文件系统。所述云数据库包括Google的BigTable数据库以及Hadoop的Hbase数据库。所述组合函数是由一个以上的所述原子函数通过组合算法实现,所述组合算法为现有的BPEL的Web服务组合算法。与现有技术相比,本发明提供一种云程序方法,可以实现让包括非专业程序员在内的大部分人都能够在云环境下编写程序,并通过程序获取自己所需要的云环境下的各种服务和资源,从而更好地服务于人类需求。


图I为本发明一种云程序设计方法体系架构框图。图2为本发明所述云编译器工作流程示例图。
具体实施例方式下面结合附图和实施例对本发明做进一步详细说明。如图I所示,为本发明一种云程序设计方法体系架构框图,本实施例为所有能够在云环境下由包括非专业程序员在内的大部分人都能够在云环境下编写程序,并通过程序获取自己所需要的云环境下的各种服务和资源的一种云程序设计方法,共包括如下9个步骤(I)用户使用各种编程接口。这里的用户是指包含农民在内的各种非专业程序员, 这里的编程接口是指普通PC机,手机及其他任何终端。(2)用户在各种编程接口上编写云程序。(3)将各种云程序送入到云程序编译器进行编译。云程序编译器的工作流程见图 2。(4)云程序编译器在编译过程中需要给函数库发出调用函数指令,该指定用于调用函数库里所需的各种Map函数、Reduce函数或者用户自定义函数UDF。(5)云程序编译器根据不同的应用找到所需的各种Map函数、Reduce函数或者用户自定义函数UDF函数后,将函数返回给云程序编译器编译器。(6)各种应用所需的Map函数、Reduce函数或者用户自定义函数UDF将对云文件系统或者云数据库发出数据需求请求。(7)云文件系统或者云数据库按照各种Map函数、Reduce函数或者用户自定义函数M)F的需求,将存储的各种数据提交给Map函数、Reduce函数或者用户自定义函数M)F进行处理。(8)应用程序所需的各种函数和各种数据均已具备后,云程序编译器进行编译处理,并将结果返回到编程接口。(9)用户可以从编程接口看到自己的应用的结果。图2给出了云程序编译器的工作流程在Map函数/Reduce函数/UDF用户自定义函数库中包含了 f[a],f[b], f[c],……,f[k],f[m],f[n]等等各种原子函数。
4
某个云程序应用所需的函数的数量为F[1],F[2],……,F[Q]总共Q个函数。并且按照F[1],F[2],……,F[Q]的先后调用。这些调用的函数中有些是原子函数,如F[2]就是一个原子函数f[c];有些是由原子函数组合成的复杂函数,如F[l]是由f[a]与f[b]两个原子函数组合成的复杂函数, F[Q]是由f[k], f [m]与f[n]三个原子函数组合成的复杂函数。原子函数的组合由一个组合算法来完成,该组合算法直接采用现有的BPEL的Web 服务的组合算法。以下为非专业用户使用本发明方法的一个实施例某菜农有10000斤马铃薯与2000斤西红柿已经成熟,急需销售出去,由于不知道市场信息,该菜农很发愁,为了将自己的农产品销卖出最好的价钱,通过本发明的一种云程序设计方法可以编写一程序找出最佳的销售总额。(由于物流等因素,该菜农只考虑在北京市场销售,从而忽略物流价格)下面两个列表为两个北京市场的市场数据集Set [I]与市场数据集Set [2].
权利要求
1.一种云程序设计方法,用户在编程接口上编写云程序,并将所编写的云程序送入到云程序编译器进行编译,并在编译过程中调用函数库的相应函数,被调用的函数向数据库发出数据需求请求,其特征在于,在所述函数库中包含了原子函数f [a],f [b],f [c], ......,f [k],f [m],f [n];云程序调用的函数为F[1],F[2],……,F[Q]总共Q个函数,且按照F[1],F[2],……, F[Q]的先后顺序调用;其中,F[l],F[2], ......,F[Q]为原子函数或者组合函数。
2.根据权利要求I所述的云程序设计方法,其特征在于,所述函数库中包括Map函数、 Reduce函数以及用户自定义函数UDF,所述云程序编译器能够调用上述三种函数。
3.根据权利要求I所述的云程序设计方法,其特征在于,所述云程序编译器进行编译之后,将结果返回到编程接口。
4.根据权利要求I所述的云程序设计方法,其特征在于,所述编程接口为PC机或者手机。
5.根据权利要求I所述的云程序设计方法,其特征在于,所述云程序是一种基于类自然语言的程序设计语言。
6.根据权利要求I所述的云程序设计方法,其特征在于,所述数据库为云文件系统或者云数据库。
7.根据权利要求6所述的云程序设计方法,其特征在于,所述云文件系统包含现有的分布式文件系统。
8.根据权利要求6所述的云程序设计方法,其特征在于,所述云文件系统包含Google 的GFS文件系统以及Hadoop的HDFS文件系统。
9.根据权利要求6所述的云程序设计方法,其特征在于,所述云数据库包括Google的 BigTable数据库以及Hadoop的Hbase数据库。
10.根据权利要求I所述的云程序设计方法,其特征在于,所述组合函数是由一个以上的所述原子函数通过组合算法实现,所述组合算法为现有的BPEL的Web服务组合算法。
全文摘要
本发明为一种云程序设计方法,用户在编程接口上编写云程序,并将所编写的云程序送入到云程序编译器进行编译,并在编译过程中调用函数库的相应函数,被调用的函数向数据库发出数据需求请求,在所述函数库中包含原子函数,云程序按照先后顺序调用函数,调用的函数为原子函数或者将原子函数通过组合算法实现的组合函数,与现有技术相比,本发明可以实现让包括非专业程序员在内的大部分人都能够在云环境下编写程序,并通过程序获取自己所需要的云环境下的各种服务和资源,从而更好地服务于人类需求。
文档编号G06F9/45GK102609257SQ20121002326
公开日2012年7月25日 申请日期2012年2月2日 优先权日2012年2月2日
发明者张勇, 张桂刚, 李超, 邢春晓 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1